From a1acad6dc44d57eb7d89317293b187c8ac08d7e0 Mon Sep 17 00:00:00 2001 From: Ben Meadors Date: Sat, 16 May 2026 09:48:17 -0500 Subject: [PATCH] Add support for Wi-Fi HaLow on Seeed XIAO ESP32-S3 --- .gitignore | 7 + extra_scripts/esp32_extra.py | 17 +- lib/MorseWlan/extra_script.py | 28 + lib/MorseWlan/include/mbin.h | 77 + lib/MorseWlan/include/mm_mbedtls_config.h | 124 + lib/MorseWlan/include/mmhal.h | 331 +++ lib/MorseWlan/include/mmhal_flash.h | 145 ++ lib/MorseWlan/include/mmhal_uart.h | 89 + lib/MorseWlan/include/mmhal_wlan.h | 640 +++++ lib/MorseWlan/include/mmipal.h | 383 +++ lib/MorseWlan/include/mmlog.h | 64 + lib/MorseWlan/include/mmosal.h | 1036 ++++++++ lib/MorseWlan/include/mmpkt.h | 515 ++++ lib/MorseWlan/include/mmpkt_list.h | 172 ++ lib/MorseWlan/include/mmwlan.h | 2178 +++++++++++++++++ lib/MorseWlan/include/mmwlan_regdb.def | 302 +++ lib/MorseWlan/lib/esp32-xtensa-lx7/libmorse.a | Bin 0 -> 2734914 bytes lib/MorseWlan/library.json | 14 + lib/MorseWlan/src/bcf_aw_hm593.mbin.o | Bin 0 -> 1156 bytes lib/MorseWlan/src/bcf_aw_hm593_4v3.mbin.o | Bin 0 -> 1180 bytes lib/MorseWlan/src/bcf_mf03120.mbin.o | Bin 0 -> 752 bytes lib/MorseWlan/src/bcf_mf08251.mbin.o | Bin 0 -> 740 bytes lib/MorseWlan/src/bcf_mf08551.mbin.o | Bin 0 -> 744 bytes lib/MorseWlan/src/bcf_mf08651_us.mbin.o | Bin 0 -> 1224 bytes lib/MorseWlan/src/bcf_mf16858_us.mbin.o | Bin 0 -> 764 bytes lib/MorseWlan/src/hostap_morse_common.h | 148 ++ lib/MorseWlan/src/lwip_compat_shim.c | 27 + lib/MorseWlan/src/mm6108.mbin.o | Bin 0 -> 364252 bytes lib/MorseWlan/src/mmbuf.c | 216 ++ lib/MorseWlan/src/mmbuf.h | 457 ++++ lib/MorseWlan/src/mmcrc.c | 50 + lib/MorseWlan/src/mmcrc.h | 40 + lib/MorseWlan/src/mmhal.c | 100 + lib/MorseWlan/src/mmhal_wlan_binaries.c | 72 + lib/MorseWlan/src/mmipal_lwip.c | 726 ++++++ lib/MorseWlan/src/mmnetif.c | 218 ++ lib/MorseWlan/src/mmnetif.h | 29 + .../src/mmosal_shim_freertos_esp32.c | 563 +++++ lib/MorseWlan/src/mmpktmem_heap.c | 245 ++ lib/MorseWlan/src/mmport.h | 12 + lib/MorseWlan/src/mmutils.h | 301 +++ lib/MorseWlan/src/mmutils_wlan.c | 163 ++ lib/MorseWlan/src/wlan_hal.c | 267 ++ src/main.cpp | 10 +- src/mesh/RadioInterface.cpp | 20 + src/mesh/halow/HaLowFrame.h | 18 + src/mesh/halow/HaLowInterface.cpp | 287 +++ src/mesh/halow/HaLowInterface.h | 56 + src/mesh/wifi/HaLowWiFi.cpp | 53 + src/mesh/wifi/HaLowWiFi.h | 47 + src/platform/esp32/main-esp32.cpp | 2 +- .../seeed_xiao_s3_halow/pins_arduino.h | 20 + .../seeed_xiao_s3_halow/platformio.ini | 104 + .../esp32s3/seeed_xiao_s3_halow/variant.h | 38 + 54 files changed, 10407 insertions(+), 4 deletions(-) create mode 100644 lib/MorseWlan/extra_script.py create mode 100644 lib/MorseWlan/include/mbin.h create mode 100644 lib/MorseWlan/include/mm_mbedtls_config.h create mode 100644 lib/MorseWlan/include/mmhal.h create mode 100644 lib/MorseWlan/include/mmhal_flash.h create mode 100644 lib/MorseWlan/include/mmhal_uart.h create mode 100644 lib/MorseWlan/include/mmhal_wlan.h create mode 100644 lib/MorseWlan/include/mmipal.h create mode 100644 lib/MorseWlan/include/mmlog.h create mode 100644 lib/MorseWlan/include/mmosal.h create mode 100644 lib/MorseWlan/include/mmpkt.h create mode 100644 lib/MorseWlan/include/mmpkt_list.h create mode 100644 lib/MorseWlan/include/mmwlan.h create mode 100644 lib/MorseWlan/include/mmwlan_regdb.def create mode 100644 lib/MorseWlan/lib/esp32-xtensa-lx7/libmorse.a create mode 100644 lib/MorseWlan/library.json create mode 100644 lib/MorseWlan/src/bcf_aw_hm593.mbin.o create mode 100644 lib/MorseWlan/src/bcf_aw_hm593_4v3.mbin.o create mode 100644 lib/MorseWlan/src/bcf_mf03120.mbin.o create mode 100644 lib/MorseWlan/src/bcf_mf08251.mbin.o create mode 100644 lib/MorseWlan/src/bcf_mf08551.mbin.o create mode 100644 lib/MorseWlan/src/bcf_mf08651_us.mbin.o create mode 100644 lib/MorseWlan/src/bcf_mf16858_us.mbin.o create mode 100644 lib/MorseWlan/src/hostap_morse_common.h create mode 100644 lib/MorseWlan/src/lwip_compat_shim.c create mode 100644 lib/MorseWlan/src/mm6108.mbin.o create mode 100644 lib/MorseWlan/src/mmbuf.c create mode 100644 lib/MorseWlan/src/mmbuf.h create mode 100644 lib/MorseWlan/src/mmcrc.c create mode 100644 lib/MorseWlan/src/mmcrc.h create mode 100644 lib/MorseWlan/src/mmhal.c create mode 100644 lib/MorseWlan/src/mmhal_wlan_binaries.c create mode 100644 lib/MorseWlan/src/mmipal_lwip.c create mode 100644 lib/MorseWlan/src/mmnetif.c create mode 100644 lib/MorseWlan/src/mmnetif.h create mode 100644 lib/MorseWlan/src/mmosal_shim_freertos_esp32.c create mode 100644 lib/MorseWlan/src/mmpktmem_heap.c create mode 100644 lib/MorseWlan/src/mmport.h create mode 100644 lib/MorseWlan/src/mmutils.h create mode 100644 lib/MorseWlan/src/mmutils_wlan.c create mode 100644 lib/MorseWlan/src/wlan_hal.c create mode 100644 src/mesh/halow/HaLowFrame.h create mode 100644 src/mesh/halow/HaLowInterface.cpp create mode 100644 src/mesh/halow/HaLowInterface.h create mode 100644 src/mesh/wifi/HaLowWiFi.cpp create mode 100644 src/mesh/wifi/HaLowWiFi.h create mode 100644 variants/esp32s3/seeed_xiao_s3_halow/pins_arduino.h create mode 100644 variants/esp32s3/seeed_xiao_s3_halow/platformio.ini create mode 100644 variants/esp32s3/seeed_xiao_s3_halow/variant.h diff --git a/.gitignore b/.gitignore index eebd94ef9..00b18a2f8 100644 --- a/.gitignore +++ b/.gitignore @@ -62,3 +62,10 @@ userPrefs.jsonc.mcp-session-bak # compiled .proto outputs are ephemeral build artifacts. build/fixtures/ bin/_generated/ + +# Build artifacts: anything compiling .o/.a outside .pio/ is accidental. +# Explicit exceptions for vendored binaries (Morse Micro mm-iot-esp32 SDK). +*.o +*.a +!lib/MorseWlan/lib/**/*.a +!lib/MorseWlan/src/*.mbin.o diff --git a/extra_scripts/esp32_extra.py b/extra_scripts/esp32_extra.py index f7698561a..753c9afda 100755 --- a/extra_scripts/esp32_extra.py +++ b/extra_scripts/esp32_extra.py @@ -82,5 +82,18 @@ if esp32_kind == "esp32": ] ) else: - # For newer ESP32 targets, using newlib nano works better. - env.Append(LINKFLAGS=["--specs=nano.specs", "-u", "_printf_float"]) + # For newer ESP32 targets, using newlib nano works better. Skip on + # variants that explicitly opt out — the IDF 5.1 framework override the + # HaLow variant uses already includes nano.specs, so re-adding it triggers + # a duplicate spec definition error at link time. + cppdefines = env.get("CPPDEFINES", []) + if not any( + (isinstance(d, str) and d == "MESHTASTIC_SKIP_NANO_SPECS") + or ( + isinstance(d, (list, tuple)) + and len(d) > 0 + and d[0] == "MESHTASTIC_SKIP_NANO_SPECS" + ) + for d in cppdefines + ): + env.Append(LINKFLAGS=["--specs=nano.specs", "-u", "_printf_float"]) diff --git a/lib/MorseWlan/extra_script.py b/lib/MorseWlan/extra_script.py new file mode 100644 index 000000000..76343e1b3 --- /dev/null +++ b/lib/MorseWlan/extra_script.py @@ -0,0 +1,28 @@ +""" +PlatformIO doesn't natively link .o files vendored inside a library directory. +The Morse Micro SDK ships the chip firmware (mm6108.mbin.o) and per-region BCF +(bcf_mf08651_us.mbin.o) as pre-built object files containing data sections. +This script appends them to LINKFLAGS so they land in the final ELF. + +US region only for now — when we add EU/JP/KR variants, gate the BCF here on a +build flag and pick the matching .o file. +""" + +import os + +Import("env", "projenv") + +LIB_DIR = os.path.join(env.subst("$PROJECT_DIR"), "lib", "MorseWlan") + +mbin_objects = [ + os.path.join(LIB_DIR, "src", "mm6108.mbin.o"), + os.path.join(LIB_DIR, "src", "bcf_mf08651_us.mbin.o"), +] + +# Only add objects that actually exist; missing ones surface as link errors, +# not silent corruption. +for obj in mbin_objects: + if not os.path.isfile(obj): + print("warning: mm-iot-esp32 blob missing: %s" % obj) + +env.Append(LINKFLAGS=mbin_objects) diff --git a/lib/MorseWlan/include/mbin.h b/lib/MorseWlan/include/mbin.h new file mode 100644 index 000000000..cba689b92 --- /dev/null +++ b/lib/MorseWlan/include/mbin.h @@ -0,0 +1,77 @@ +/* + * Copyright 2023 Morse Micro + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/** + * @defgroup MBIN Morse BINary Loader API + * + * This file defines the structure of the @c MBIN file. + * + * @{ + */ + +#pragma once + +#ifndef PACKED +/** Macro for the compiler packed attribute */ +#define PACKED __attribute__((packed)) +#endif + +/** Enumeration of TLV field types */ +enum mbin_tlv_types { + FIELD_TYPE_FW_TLV_BCF_ADDR = 0x0001, + FIELD_TYPE_MAGIC = 0x8000, + FIELD_TYPE_FW_SEGMENT = 0x8001, + FIELD_TYPE_FW_SEGMENT_DEFLATED = 0x8002, + FIELD_TYPE_BCF_BOARD_CONFIG = 0x8100, + FIELD_TYPE_BCF_REGDOM = 0x8101, + FIELD_TYPE_BCF_BOARD_DESC = 0x8102, + FIELD_TYPE_BCF_BUILD_VER = 0x8103, + FIELD_TYPE_SW_SEGMENT = 0x8201, + FIELD_TYPE_SW_SEGMENT_DEFLATED = 0x8202, + FIELD_TYPE_EOF = 0x8f00, + FIELD_TYPE_EOF_WITH_SIGNATURE = 0x8f01, +}; + +/** TLV header data structure. */ +struct PACKED mbin_tlv_hdr { + /** Type (see mbin_tlv_types). */ + uint16_t type; + /** Length of payload (excludes header). */ + uint16_t len; +}; + +/** Data header in a FIELD_TYPE_XX_SEGMENT field. */ +struct PACKED mbin_segment_hdr { + /** Destination base address at which the data should be loaded. */ + uint32_t base_address; +}; + +/** Data header in a FIELD_TYPE_XX_SEGMENT_DEFLATED field. */ +struct PACKED mbin_deflated_segment_hdr { + /** Destination base address at which the data should be loaded. */ + uint32_t base_address; + /** Size of deflated data, infer size of compressed data from TLV length */ + uint16_t chunk_size; + /** ZLib header */ + uint8_t zlib_header[2]; +}; + +/** Data header in a @c FIELD_TYPE_BCF_REGDOM field. */ +struct PACKED mbin_regdom_hdr { + /** Country code that this @c regdom applies to. */ + uint8_t country_code[2]; + /** Reserved */ + uint16_t reserved; +}; + +/** Expected value of the magic field for a SW image @c MMSW. */ +#define MBIN_SW_MAGIC_NUMBER (0x57534d4d) +/** Expected value of the magic field for a firmware image @c MMFW. */ +#define MBIN_FW_MAGIC_NUMBER (0x57464d4d) +/** Expected value of the magic field for a BCF @c MMBC. */ +#define MBIN_BCF_MAGIC_NUMBER (0x43424d4d) + +/** @} */ diff --git a/lib/MorseWlan/include/mm_mbedtls_config.h b/lib/MorseWlan/include/mm_mbedtls_config.h new file mode 100644 index 000000000..2531180c2 --- /dev/null +++ b/lib/MorseWlan/include/mm_mbedtls_config.h @@ -0,0 +1,124 @@ +/* + * Copyright 2024 Morse Micro + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/* + * This file should be included from the application mbedtls_config.h file to ensure that + * the mbedTLS features necessary for morselib functionality are enabled. + * + * It is recommended to include this file at the _end_ of the application mbedtls_config.h file + * to avoid redefinition of macros. + */ + +/* Cipher modes */ +#ifndef MBEDTLS_CIPHER_MODE_CBC +#define MBEDTLS_CIPHER_MODE_CBC +#endif + +#ifndef MBEDTLS_CIPHER_MODE_CTR +#define MBEDTLS_CIPHER_MODE_CTR +#endif + +/* EC curves */ +#ifndef MBEDTLS_ECP_DP_SECP256R1_ENABLED +#define MBEDTLS_ECP_DP_SECP256R1_ENABLED +#endif + +#ifndef MBEDTLS_ECP_DP_SECP384R1_ENABLED +#define MBEDTLS_ECP_DP_SECP384R1_ENABLED +#endif + +#ifndef MBEDTLS_ECP_DP_SECP521R1_ENABLED +#define MBEDTLS_ECP_DP_SECP521R1_ENABLED +#endif + +/* Features */ +#ifndef MBEDTLS_AES_C +#define MBEDTLS_AES_C +#endif + +#ifndef MBEDTLS_ASN1_PARSE_C +#define MBEDTLS_ASN1_PARSE_C +#endif + +#ifndef MBEDTLS_ASN1_WRITE_C +#define MBEDTLS_ASN1_WRITE_C +#endif + +#ifndef MBEDTLS_BIGNUM_C +#define MBEDTLS_BIGNUM_C +#endif + +#ifndef MBEDTLS_CIPHER_C +#define MBEDTLS_CIPHER_C +#endif + +#ifndef MBEDTLS_CMAC_C +#define MBEDTLS_CMAC_C +#endif + +#ifndef MBEDTLS_CTR_DRBG_C +#define MBEDTLS_CTR_DRBG_C +#endif + +#ifndef MBEDTLS_ECDH_C +#define MBEDTLS_ECDH_C +#endif + +#ifndef MBEDTLS_ECP_C +#define MBEDTLS_ECP_C +#endif + +#ifndef MBEDTLS_ENTROPY_C +#define MBEDTLS_ENTROPY_C +#endif + +#ifndef MBEDTLS_MD_C +#define MBEDTLS_MD_C +#endif + +#ifndef MBEDTLS_NIST_KW_C +#define MBEDTLS_NIST_KW_C +#endif + +#ifndef MBEDTLS_OID_C +#define MBEDTLS_OID_C +#endif + +#ifndef MBEDTLS_PK_C +#define MBEDTLS_PK_C +#endif + +#ifndef MBEDTLS_PK_PARSE_C +#define MBEDTLS_PK_PARSE_C +#endif + +#ifndef MBEDTLS_PK_WRITE_C +#define MBEDTLS_PK_WRITE_C +#endif + +#ifndef MBEDTLS_PKCS5_C +#define MBEDTLS_PKCS5_C +#endif + +#ifndef MBEDTLS_SHA1_C +#define MBEDTLS_SHA1_C +#endif + +#ifndef MBEDTLS_SHA224_C +#define MBEDTLS_SHA224_C +#endif + +#ifndef MBEDTLS_SHA256_C +#define MBEDTLS_SHA256_C +#endif + +#ifndef MBEDTLS_SHA384_C +#define MBEDTLS_SHA384_C +#endif + +#ifndef MBEDTLS_SHA512_C +#define MBEDTLS_SHA512_C +#endif diff --git a/lib/MorseWlan/include/mmhal.h b/lib/MorseWlan/include/mmhal.h new file mode 100644 index 000000000..a2e9a3c70 --- /dev/null +++ b/lib/MorseWlan/include/mmhal.h @@ -0,0 +1,331 @@ +/* + * Copyright 2021-2023 Morse Micro + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/** + * @defgroup MMHAL Morse Micro Hardware Abstraction Layer (mmhal) API + * + * This API provides abstraction from the underlying hardware/BSP. + * + * @{ + */ + +#pragma once + +#include "mmhal_flash.h" +#include "mmhal_wlan.h" +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/** Initialization before RTOS scheduler starts. */ +void mmhal_early_init(void); + +/** Initialization after RTOS scheduler started. */ +void mmhal_init(void); + +/** Enumeration of ISR states (i.e., whether in ISR or not). */ +enum mmhal_isr_state { + MMHAL_NOT_IN_ISR, /**< The function was not executed from ISR context. */ + MMHAL_IN_ISR, /**< The function was executed from ISR context. */ + MMHAL_ISR_STATE_UNKNOWN, /**< The HAL does not support checking ISR state. */ +}; + +/** + * Enumeration for different LED's on the board. + * + * @note Some of these LED's may not be available on all boards and some of these values + * may refer to the same LED. + */ +enum mmhal_led_id { LED_RED, LED_GREEN, LED_BLUE, LED_WHITE }; + +/** Enumeration of MCU sleep state. */ +enum mmhal_sleep_state { + MMHAL_SLEEP_DISABLED, /**< Disable MCU sleep. */ + MMHAL_SLEEP_SHALLOW, /**< MCU to enter shallow sleep. */ + MMHAL_SLEEP_DEEP, /**< MCU can enter deep sleep. */ +}; + +/** A value of 0 turns OFF an LED */ +#define LED_OFF 0 + +/** + * A value of 255 turns an LED ON fully. + * + * Some boards support varying an LED's brightness. For these boards a value between 1 and 255 + * will result in proportionately varying levels of brightness. LED's that do not have a + * brightness control feature will just turn ON fully for any non zero value. + */ +#define LED_ON 255 + +/** + * Get the current ISR state (i.e., whether in ISR or not). + * + * @returns the current ISR state, or @c MMHAL_ISR_STATE_UNKNOWN if the HAL does not support + * checking ISR state. + */ +enum mmhal_isr_state mmhal_get_isr_state(void); + +/** + * Write to the debug log. + * + * It is assumed the caller will have mechanisms in place to prevent concurrent access. + * + * @param data Buffer containing data to write. + * @param len Length of data in buffer. + */ +void mmhal_log_write(const uint8_t *data, size_t len); + +/** + * Flush the debug log before returning. + * + * @warning Implementations of this function must support being invoked with interrupts disabled. + */ +void mmhal_log_flush(void); + +/** + * Generate a random 32 bit integer within the given range. + * + * @param min Minimum value (inclusive). + * @param max Maximum value (inclusive). + * + * @returns a randomly generated integer (min <= i <= max). + */ +uint32_t mmhal_random_u32(uint32_t min, uint32_t max); + +/** Reset the microcontroller. */ +void mmhal_reset(void); + +/** + * Set the specified LED to the requested level. Do nothing if the requested LED does not exist. + * + * @param led The LED to set, if the platform supports it. See @ref mmhal_led_id + * @param level The level to set it to. 0 means OFF and non-zero means ON. If the platform supports + * brightness levels then 255 is full. Defines @ref LED_ON and @ref LED_OFF are + * provided for ease of use. + */ +void mmhal_set_led(uint8_t led, uint8_t level); + +/** + * Set the error LED to the requested state. + * + * @note This function is called by the bootloader and so needs to do all the initialization + * required to set the LED's as the bootloader does not use the regular BSP initialization + * located in main.c for configuring @c GPIO's and setting clock gates as required. + * + * @param state Set to true if the LED needs to be turned on, + * or false if the led needs to be turned off. + */ +void mmhal_set_error_led(bool state); + +/** + * Enumeration for buttons on the board. + * + * @note The support for each button is platform dependent. + */ +enum mmhal_button_id { BUTTON_ID_USER0 }; + +/** + * Enumeration for button states + */ +enum mmhal_button_state { BUTTON_RELEASED, BUTTON_PRESSED }; + +/** Button state callback function prototype. */ +typedef void (*mmhal_button_state_cb_t)(enum mmhal_button_id button_id, enum mmhal_button_state button_state); + +/** + * Registers a callback handler for button state changes. + * + * @note The callback will be executed in an Interrupt Service Routine context + * + * @param button_id The button whose state should be reported to the callback + * @param button_state_cb The function to call on button state change, or NULL to disable. + * @returns True if the callback is registered successfully, False if not supported + */ +bool mmhal_set_button_callback(enum mmhal_button_id button_id, mmhal_button_state_cb_t button_state_cb); + +/** + * Returns the registered callback handler for button state changes. + * + * @param button_id The button whose callback should be returned + * @returns The registered callback or NULL if no callback registered + */ +mmhal_button_state_cb_t mmhal_get_button_callback(enum mmhal_button_id button_id); + +/** + * Reads the state of the specified button. + * + * @param button_id The button state to read + * @returns The current button state, or BUTTON_RELEASED if not supported + */ +enum mmhal_button_state mmhal_get_button(enum mmhal_button_id button_id); + +/** + * Reads information that can be used to identify the hardware platform, such as + * hardware ID and version number, in the form of a user readable string. + * + * This function attempts to detect the correct hardware and version. + * The actual means of detecting the correct hardware and version will vary from + * implementation to implementation and may use means such as identification + * information stored in EEPROM or devices detected on GPIO, SPI or I2C interfaces. + * Returns false if the hardware could not be identified correctly. + * + * @param version_buffer The pre-allocated buffer to return the hardware ID and version in. + * @param version_buffer_length The length of the pre-allocated buffer. + * @returns True if the hardware was correctly identified and returned. + */ +bool mmhal_get_hardware_version(char *version_buffer, size_t version_buffer_length); + +/** + * Macro to simplify debug pin mask/value definition. + * + * @param _pin_num The pin number to set in the mask. Must be 0-31 (inclusive). + * + * Example: + * + * mmhal_set_debug_pins(MMHAL_DEBUG_PIN(0), MMHAL_DEBUG_PIN(0)); + */ +#define MMHAL_DEBUG_PIN(_pin_num) (1ul << (_pin_num)) + +/** Bit mask with all debug pins selected. */ +#define MMHAL_ALL_DEBUG_PINS (UINT32_MAX) + +/** + * Set the value one or more debug pins. + * + * Each platform can define up to 32 GPIOs for application use. If a GPIO is not supported + * by a platform then attempts to set it will be silently ignored. These GPIOs are intended + * for debug/test purposes. + * + * @param mask Mask of GPIOs to modify. Each bit in this mask that is set will result in + * the corresponding GPIO being being set to the corresponding value given in + * @p values. + * @param values Bit field, where each bit corresponds to a GPIO, specifying the direction + * to drive each GPIO with 1 meaning drive high and 0 meaning drive low. + * Only GPIOs with the corresponding bit set in @p mask will be modified. + * + * @sa MM_DEBUG_PIN_MASK + */ +void mmhal_set_debug_pins(uint32_t mask, uint32_t values); + +/** + * Returns the time of day as set in the RTC. + * Time is in UTC. + * + * @return Epoch time (seconds since 1 Jan 1970) or 0 on failure. + */ +time_t mmhal_get_time(); + +/** + * Sets the RTC to the specified time in UTC. + * + * @note While Unix epoch time supports years from 1970, most Real Time Clock + * chips support years from 2000 only as they store the year as years + * from 2000. So do not attempt to set any years below 2000 as this could cause + * the year to wrap around to an unreasonably high value. Definitely do not do: + * @code + * mmhal_set_time(0); + * @endcode + * + * @param epoch Time in Unix epoch time (seconds since 1 Jan 1970). + */ +void mmhal_set_time(time_t epoch); + +/** + * Function to prepare MCU to enter sleep. + * This will halt the timer that generates the RTOS tick. + * + * @param expected_idle_time_ms Expected time to sleep in milliseconds. + * + * @returns the type of sleep permitted by the current system state. + */ +enum mmhal_sleep_state mmhal_sleep_prepare(uint32_t expected_idle_time_ms); + +/** + * Function to enter MCU sleep. + * + * @param sleep_state Sleep state to enter into. + * @param expected_idle_time_ms Expected time to sleep in milliseconds. + * + * @returns Elapsed sleep time in milliseconds. + */ +uint32_t mmhal_sleep(enum mmhal_sleep_state sleep_state, uint32_t expected_idle_time_ms); + +/** + * Function to abort the MCU sleep state. + * + * @note This must only be invoked after @ref mmhal_sleep_prepare() + * and before @ref mmhal_sleep(). + * + * @param sleep_state Sleep state to abort. + */ +void mmhal_sleep_abort(enum mmhal_sleep_state sleep_state); + +/** + * Function to cleanup on exit from the MCU sleep state. + */ +void mmhal_sleep_cleanup(void); + +/** Enumeration of veto_id ranges for use with @ref mmhal_set_deep_sleep_veto() and + * @ref mmhal_clear_deep_sleep_veto(). */ +enum mmhal_veto_id { + /** Start of deep sleep veto ID range that is available for application use. */ + MMHAL_VETO_ID_APP_MIN = 0, + /** End of deep sleep veto ID range that is available for application use. */ + MMHAL_VETO_ID_APP_MAX = 7, + /** Start of deep sleep veto ID range that is available for HAL use. */ + MMHAL_VETO_ID_HAL_MIN = 8, + /** End of deep sleep veto ID range that is available for HAL use. */ + MMHAL_VETO_ID_HAL_MAX = 15, + /** Start of deep sleep veto ID range that is allocated for morselib use. Note that this + * must not be changed as it is built into morselib. */ + MMHAL_VETO_ID_MORSELIB_MIN = 16, + /** End of deep sleep veto ID range that is allocated for morselib use. Note that this must not + * be changed as it is built into morselib. */ + MMHAL_VETO_ID_MORSELIB_MAX = 19, + /** Deep sleep veto ID for data-link subsystem. */ + MMHAL_VETO_ID_DATALINK = 20, + /** Deep sleep veto ID allocated to @ref MMCONFIG. */ + MMHAL_VETO_ID_MMCONFIG = 21, + /** Start of deep sleep veto ID range reserved for future use. */ + MMHAL_VETO_ID_RESERVED_MIN = 22, + /** End of deep sleep veto ID range reserved for future use. */ + MMHAL_VETO_ID_RESERVED_MAX = 31, +}; + +/** + * Sets a deep sleep veto that will prevent the device from entering deep sleep. The device + * will not enter deep sleep until there are no vetoes remaining. This veto can be cleared + * by a call to @ref mmhal_clear_deep_sleep_veto() with the same veto_id. + * + * Up to 32 vetoes are supported (ID numbers 0-31). Each veto should be used exclusively by + * a given aspect of the system (e.g., to prevent deep sleep when a DMA transfer is in progress, + * or to prevent deep sleep when there is log data buffered for transmit, etc.). + * + * @param veto_id The veto identifier. Valid values are 0-31, and these are split up into ranges + * for use by different subsystems -- see @ref mmhal_veto_id. + */ +void mmhal_set_deep_sleep_veto(uint8_t veto_id); + +/** + * Clears a deep sleep veto that was preventing the device from entering deep sleep (see + * @ref mmhal_set_deep_sleep_veto()). If the given veto was not already set then this has + * no effect. + * + * @param veto_id The veto identifier. Valid values are 0-31, and these are split up into ranges + * for use by different subsystems -- see @ref mmhal_veto_id. + */ +void mmhal_clear_deep_sleep_veto(uint8_t veto_id); + +#ifdef __cplusplus +} +#endif + +/** @} */ diff --git a/lib/MorseWlan/include/mmhal_flash.h b/lib/MorseWlan/include/mmhal_flash.h new file mode 100644 index 000000000..1b667b631 --- /dev/null +++ b/lib/MorseWlan/include/mmhal_flash.h @@ -0,0 +1,145 @@ +/* + * Copyright 2021-2023 Morse Micro + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/** + * @ingroup MMHAL Morse Micro Flash Hardware Abstraction Layer (mmhal_flash) API + * + * This API provides abstraction from the underlying flash hardware/. + * + * @{ + */ + +#pragma once + +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * This is the value erased flash bytes are set to. This shall be @c 0xFF as this is the + * value that hardware flash erases to. + */ +#define MMHAL_FLASH_ERASE_VALUE 0xFF + +/** LittleFS configuration structure. Include @c lfs.h for definition. */ +struct lfs_config; + +/** + * Flash partition configuration structure + * + * This should be initialized using @c MMHAL_FLASH_PARTITION_CONFIG_DEFAULT. + * For example: + * + * @code{.c} + * struct mmhal_flash_partition_config partition = MMHAL_FLASH_PARTITION_CONFIG_DEFAULT; + * @endcode + */ +struct mmhal_flash_partition_config { + /** The start address of the partition, this may be a physical address + * or a relative address depending on implementation + */ + uint32_t partition_start; + + /** The size of the partition */ + uint32_t partition_size; + + /** + * If true, then the partition is not memory mapped and cannot be directly accessed + * at the physical @c partition_start address + */ + bool not_memory_mapped; +}; + +/** Initial values for @ref mmhal_flash_partition_config. */ +#define MMHAL_FLASH_PARTITION_CONFIG_DEFAULT \ + { \ + 0, 0, false \ + } + +/** + * Get MMCONFIG flash partition configuration. + * + * MMCONFIG initialization is done by @c mmconfig_init() in @c mmconfig.c. + * which in turn calls this function to fetch the partition configuration for config store + * from the HAL layer. If config store is not supported by the platform then we just + * return NULL. This function returns a static pointer to + * @c struct @c mmhal_flash_partition_config. + * + * @return A static pointer to the partition config for MMCONFIG, or NULL if not supported. + */ +const struct mmhal_flash_partition_config *mmhal_get_mmconfig_partition(void); + +/** + * Erases a block of Flash pointed to by the block_address. + * + * The block address may be anywhere within the block to erase. The entire block gets erased. + * Once erased all bytes in the block shall be @c MMHAL_FLASH_ERASE_VALUE (@c 0xFF). + * + * @param block_address The address of the block of Flash to erase. + * @return 0 on success, negative number on failure + */ +int mmhal_flash_erase(uint32_t block_address); + +/** + * Returns the size of the Flash block at the specified address. + * + * @param block_address The address of the Flash block. + * @return The size of the Flash block in bytes. + * Returns 0 if an invalid address is specified. + */ +uint32_t mmhal_flash_getblocksize(uint32_t block_address); + +/** + * Read a block of data from the specified Flash address into the buffer. + * + * @param read_address The address in Flash to read from. + * @param buf The buffer to read into. + * @param size The number of bytes to read. + * @return 0 on success, or a negative number on failure. + */ +int mmhal_flash_read(uint32_t read_address, uint8_t *buf, size_t size); + +/** + * Write a block of data to the specified Flash address. + * + * There is no alignment or minimum size requirement. This function will + * take care of aligning the data and merging with existing Flash contents. + * The Flash block is not erased, it is up to the application to determine + * if the block needs to be erased before programming. + * + * @param write_address The address in Flash to write to. + * @param data A pointer to the block of data to write. + * @param size The number of bytes to write. + * @return 0 on success, or a negative number on failure. + */ +int mmhal_flash_write(uint32_t write_address, const uint8_t *data, size_t size); + +/** + * Get LittleFS configuration. + * + * LittleFS initialization is done by @c littlefs_init() in @c mmosal_shim_fileio.c. + * which in turn calls this function to fetch the hardware configuration for LittleFS + * from the HAL layer. The LittleFS configuration will vary from platform to platform. + * If LittleFS is not supported by the platform then we just return NULL. This function + * returns a static pointer to @c struct @c lfs_config which is defined in @c lfs.h. + * + * See @c mmhal_littlefs.c for the full HAL layer implementation for your platform. + * See @c mmosal_shim_fileio.c for the @c libc shims for LittleFS. + * See @c README.md in the @c src/littlefs folder for detailed information on LittleFS. + * + * @return A static pointer to the LittleFS config structure, or NULL if not supported. + */ +const struct lfs_config *mmhal_get_littlefs_config(void); + +#ifdef __cplusplus +} +#endif + +/** @} */ diff --git a/lib/MorseWlan/include/mmhal_uart.h b/lib/MorseWlan/include/mmhal_uart.h new file mode 100644 index 000000000..fab7faf64 --- /dev/null +++ b/lib/MorseWlan/include/mmhal_uart.h @@ -0,0 +1,89 @@ +/* + * Copyright 2024 Morse Micro + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/** + * @ingroup MMHAL + * @defgroup MMHAL_UART Morse Micro Abstraction Layer API for UART + * + * This provides an abstraction layer for a UART. This is used by MM-IoT-SDK example + * applications. + * + * This is a very simple API and leaves UART configuration to the HAL. + * + * @{ + */ + +#pragma once + +#include "mmhal.h" +#include "mmosal.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * Function type for UART RX callback. + * + * @note The UART HAL must not invoke this function from interrupt context. However, the + * implementation should not block for long periods of time or received data may be lost. + * + * @param data The received data. + * @param length Length of the received data. + * @param arg Opaque argument (as passed in to @ref mmhal_uart_init()). + */ +typedef void (*mmhal_uart_rx_cb_t)(const uint8_t *data, size_t length, void *arg); + +/** + * Initialize the UART HAL and perform any setup necessary. + * + * @param rx_cb Optional callback to be invoked on receive (may be NULL). + * This callback may be invoked from interrupt context so should return + * quickly. + * @param rx_cb_arg Optional opaque argument to be passed to the RX callback. May be NULL. + */ +void mmhal_uart_init(mmhal_uart_rx_cb_t rx_cb, void *rx_cb_arg); + +/** + * Deinitialize the UART HAL, and disable the UART. + */ +void mmhal_uart_deinit(void); + +/** + * Transmit data on the UART. This will block until all data is buffered for transmit (but may + * return before transmission has completed). + * + * @param data Data to transmit. + * @param length Length of @p data. + */ +void mmhal_uart_tx(const uint8_t *data, size_t length); + +/** Enumeration of deep sleep modes for the UART HAL. */ +enum mmhal_uart_deep_sleep_mode { + /** Deep sleep mode is disabled. */ + MMHAL_UART_DEEP_SLEEP_DISABLED, + /** Enable deep sleep until activity occurs on data-link transport. */ + MMHAL_UART_DEEP_SLEEP_ONE_SHOT, +}; + +/** + * Set the deep sleep mode for the UART. See @ref mmhal_uart_deep_sleep_mode for possible deep + * sleep modes. Note that a given platform may not support all modes. + * + * @param mode The deep sleep mode to set. + * + * @returns true if the mode was set successfully; false on failure (e.g., unsupported mode). + */ +bool mmhal_uart_set_deep_sleep_mode(enum mmhal_uart_deep_sleep_mode mode); + +#ifdef __cplusplus +} +#endif + +/** @} */ diff --git a/lib/MorseWlan/include/mmhal_wlan.h b/lib/MorseWlan/include/mmhal_wlan.h new file mode 100644 index 000000000..3d72d7286 --- /dev/null +++ b/lib/MorseWlan/include/mmhal_wlan.h @@ -0,0 +1,640 @@ +/* + * Copyright 2023 Morse Micro + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/** + * @ingroup MMHAL + * @defgroup MMHAL_WLAN WLAN HAL + * + * API for communicating with the WLAN transceiver. + * + * There are different interfaces supported for communicating with the transceiver: + * + * * @ref MMHAL_WLAN_SDIO + * * @ref MMHAL_WLAN_SPI + * + * @warning These functions shall not be called directly by the end application they are for use + * by Morselib. + * + * @{ + */ + +#pragma once + +#include "mmpkt.h" +#include "mmwlan.h" +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * Function prototype for interrupt handler callbacks. + */ +typedef void (*mmhal_irq_handler_t)(void); + +/** + * Initialize the WLAN HAL. + * + * Things to do here may include: + * * Enable SPI peripheral + * * Configure GPIOs + * * Enable power to the Morse Micro transceiver + * + * @note If enabling power for the Morse Micro transceiver in this function you may need to add a + * blocking delay to allow the power rail to stabilize. This is hardware specific so is not + * accounted for in the calling function. + */ +void mmhal_wlan_init(void); + +/** + * Deinitialize the WLAN HAL. + * + * Things to do here may include: + * * Disable SPI peripheral + * * Disable GPIOs + * * Disable power to the Morse Micro transceiver + */ +void mmhal_wlan_deinit(void); + +/** + * Get MAC address override. + * + * This function allows the HAL to override the MAC address to be used by the device. The + * MAC address override should be written to @p mac_addr. If no override is required then + * @p mac_addr should be left untouched. + * + * @param[out] mac_addr Location where the MAC address will be stored. This will be initialized + * to zero the first time this function is invoked, and to the previously + * configured MAC address on subsequent invocations. + */ +void mmhal_read_mac_addr(uint8_t *mac_addr); + +/** + * Assert the WLAN wake pin. + */ +void mmhal_wlan_wake_assert(void); + +/** + * Deassert the WLAN wake pin. + */ +void mmhal_wlan_wake_deassert(void); + +/** + * Tests whether the busy pin is currently asserted. + * + * @note This is whether it is logically asserted and does not necessarily + * represent the level of the GPIO pin. + * + * @returns @c true if asserted, else @c false. + */ +bool mmhal_wlan_busy_is_asserted(void); + +/** + * Register a handler for busy interrupts. + * + * @param handler The handler to register. + */ +void mmhal_wlan_register_busy_irq_handler(mmhal_irq_handler_t handler); + +/** + * Sets whether the busy interrupt is enabled. + * + * @warning The interrupt handler function must be configured using + * mmhal_wlan_register_busy_irq_handler() before enabling the interrupt. + * + * @param enabled @c true to enable or @c false to disable. + */ +void mmhal_wlan_set_busy_irq_enabled(bool enabled); + +/** + * Read-only buffer data structure. + * + * The design of this data structure allows the buffer to exist either in statically or + * dynamically allocated memory. + * + * For statically allocated memory, the field @c free_cb may be set to @c NULL and @c free_arg + * ignored. For example: + * + * @code{.c} + * const uint8_t some_data[] = { 0x00, 0x01, 0x02 }; + * + * void put_some_data_into_buf(struct mmhal_robuf *robuf) + * { + * robuf->buf = some_data; + * robuf->len = sizeof(some_data); + * robuf->free_cb = NULL; + * } + * @endcode + * + * For dynamically allocated memory, the field @c free_cb is set to the appropriate function to + * free the buffer and @c free_arg is an opaque argument to the free function. This approach might + * be used, for example, when reading into a temporary buffer from storage that is not memory + * mapped. For example: + * + * @code{.c} + * #define SOME_DATA_MAXLEN (64) + * + * void put_some_data_into_buf(struct mmhal_robuf *robuf) + * { + * uint8_t *buf = malloc(SOME_DATA_MAXLEN); + * robuf->buf = buf; + * if (robuf->buf == NULL) + * return; + * + * // HERE: copy data into buf and set robuf->len as appropriate + * + * robuf->free_cb = free; + * robuf->free_arg = buf; + * } + * @endcode + * + */ +struct mmhal_robuf { + /** Pointer to the start of the read-only buffer. May be NULL only if @c len is zero. */ + const uint8_t *buf; + /** Length of the buffer contents. */ + uint32_t len; + /** + * Optional callback to be invoked by the consumer to release the buffer when it is + * no longer required. If not required, set to @c NULL. + * + * @note The values of @c buf and @c len in this structure may be modified before + * @c free_cb() is invoked. However, the value of @c free_arg will be passed + * to @c free_cb(). + */ + void (*free_cb)(void *arg); + /** Optional argument to @c free_cb. Ignored if @c free_cb is @c NULL. */ + void *free_arg; +}; + +/** Minimum length of data to be returned by @ref mmhal_wlan_read_bcf_file() and + * @ref mmhal_wlan_read_fw_file(). */ +#define MMHAL_WLAN_FW_BCF_MIN_READ_LENGTH (4) + +/** + * Retrieves the content of the Morse Micro Board Configuration File and places it into the given + * buffer. + * + * @param offset Offset from which to start reading the bcf + * @param requested_len Length of data we would like to read. The length of the data returned + * by this function may be less than @p requested_len, but must be at + * least @ref MMHAL_WLAN_FW_BCF_MIN_READ_LENGTH. + * @param robuf Read-only buffer data structure to be filled out by this function. + * + * @note On error, this function should set @c robuf->buf to @c NULL. + * @note The caller must zero @p robuf before invoking the function. + * @note The BCF must be in mbin format. + * + * @warning The caller is responsible for checking @c robuf->free_cb and calling when the buffer is + * no longer required. Ignored if @c robuf->free_cb is @c NULL. + */ +void mmhal_wlan_read_bcf_file(uint32_t offset, uint32_t requested_len, struct mmhal_robuf *robuf); + +/** + * Retrieves the content of the Morse Micro Chip Firmware and places it into the given buffer. + * + * @param offset Offset from which to start reading the bcf + * @param requested_len Length of data we would like to read. The length of the data returned + * by this function may be less than @p requested_len, but must be at + * least @ref MMHAL_WLAN_FW_BCF_MIN_READ_LENGTH. + * @param robuf Read-only buffer data structure to be filled out by this function. + * + * @note On error, this function should set @c robuf->buf to @c NULL. + * @note The caller must zero @p robuf before invoking the function. + * @note The firmware must be in mbin format. + * + * @warning The caller is responsible for checking @c robuf->free_cb and calling when the buffer + * is no longer required. Ignored if @c robuf->free_cb is @c NULL. + */ +void mmhal_wlan_read_fw_file(uint32_t offset, uint32_t requested_len, struct mmhal_robuf *robuf); + +/** + * @defgroup MMHAL_WLAN_SPI WLAN HAL API for SPI interface + * + * API for communicating with the WLAN transceiver over an SPI interface. + * + * @note These functions should only be implemented if using a SPI interface. They are not + * required when using the @ref MMHAL_WLAN_SDIO. + * + * @warning These functions shall not be called directly by the end application they are for use + * by Morselib. + * + * @{ + */ + +/** + * Assert the WLAN SPI chip select pin. + */ +void mmhal_wlan_spi_cs_assert(void); + +/** + * Deassert the WLAN SPI chip select pin. + */ +void mmhal_wlan_spi_cs_deassert(void); + +/** + * Simultaneously read and write on the SPI bus. + * + * @param data Data to be written. + * + * @return the value that was read. + */ +uint8_t mmhal_wlan_spi_rw(uint8_t data); + +/** + * Receive multiple octets of data from SPI bus. + * + * @param buf The buffer to receive into. + * @param len The number of octets to receive. + */ +void mmhal_wlan_spi_read_buf(uint8_t *buf, unsigned len); + +/** + * Transmit multiple octets of data to SPI bus. + * + * @param buf The buffer to transmit from. + * @param len The number of octets to transmit. + * + * @note Blocks until transfer complete. + */ +void mmhal_wlan_spi_write_buf(const uint8_t *buf, unsigned len); + +/** + * Hard reset the chip by asserting and then releasing the reset pin. + * + * @warning This function must return with the chip in a fully booted state. i.e only return once + * the reset_n line has been high for at least the boot time specified in the data sheet. + * Failure to do so may lead to undefined behavior. + */ +void mmhal_wlan_hard_reset(void); + +/** + * Invoked by the driver to check whether the external crystal initialization sequence is required. + * + * Implementation of this function is optional if the external crystal initialization sequence + * is not required. If this function is not implemented then the external crystal initialization + * sequence will be disabled. Refer to the data sheet for your module to check if this initialization + * is required. + * + * @returns true if the external crystal initialization sequence is required else false. + */ +bool mmhal_wlan_ext_xtal_init_is_required(void); + +/** + * Issue the training sequence required to put the transceiver into SPI mode. + */ +void mmhal_wlan_send_training_seq(void); + +/** + * Register a handler for SPI interrupts. + * + * @param handler The handler to register. + */ +void mmhal_wlan_register_spi_irq_handler(mmhal_irq_handler_t handler); + +/** + * Sets whether the SPI interrupt is enabled. + * + * @warning The interrupt handler function must be configured using + * @ref mmhal_wlan_register_spi_irq_handler() before enabling the interrupt. + * + * @param enabled @c true to enable or @c false to disable. + */ +void mmhal_wlan_set_spi_irq_enabled(bool enabled); + +/** + * Tests whether the SPI interrupt pin is currently asserted. + * + * @note This is whether it is logically asserted and does not necessarily + * represent the level of the GPIO pin. + * + * @returns @c true if asserted, else @c false. + */ +bool mmhal_wlan_spi_irq_is_asserted(void); + +/** + * Clear the SPI IRQ. + * + * @deprecated Do not invoke this function because it is deprecated and will be removed from the + * mmhal API in a future release. This function need not be implemented as a weak + * stub is used in morselib. + */ +void mmhal_wlan_clear_spi_irq(void); + +/** @} */ + +/** + * @defgroup MMHAL_WLAN_PKT WLAN HAL API for packet memory allocation + * + * API for allocating and freeing packet memory. + * + * @warning These functions shall not be called directly by the end application they are for use + * by Morselib. + * + * @{ + */ + +/** + * Flow control callback that can be invoked by the transmit packet memory manager to pause + * and resume the data path in response to resource availability. + * + * @param state Current flow control state. + */ +typedef void (*mmhal_wlan_pktmem_tx_flow_control_cb_t)(enum mmwlan_tx_flow_control_state state); + +/** Initialization arguments passed to @ref mmhal_wlan_pktmem_init(). */ +struct mmhal_wlan_pktmem_init_args { + /** Flow control callback that can be used by the transmit packet memory manager. */ + mmhal_wlan_pktmem_tx_flow_control_cb_t tx_flow_control_cb; +}; + +/** + * Invoked by the driver to initialize the packet memory in the HAL. + * + * @param args Initialization arguments. + */ +void mmhal_wlan_pktmem_init(struct mmhal_wlan_pktmem_init_args *args); + +/** + * Invoked by the driver to deinitialize the packet memory in the HAL. + * + * This can free reserved memory and check for memory leaks. + */ +void mmhal_wlan_pktmem_deinit(void); + +/** + * Enumeration of packet classes used by @ref mmhal_wlan_alloc_mmpkt_for_tx(). + * These definitions must match the corresponding values in @c mmdrv_pkt_class. + */ +enum mmhal_wlan_pkt_class { + MMHAL_WLAN_PKT_DATA_TID0, /**< Data TID0 */ + MMHAL_WLAN_PKT_DATA_TID1, /**< Data TID1 */ + MMHAL_WLAN_PKT_DATA_TID2, /**< Data TID2 */ + MMHAL_WLAN_PKT_DATA_TID3, /**< Data TID3 */ + MMHAL_WLAN_PKT_DATA_TID4, /**< Data TID4 */ + MMHAL_WLAN_PKT_DATA_TID5, /**< Data TID5 */ + MMHAL_WLAN_PKT_DATA_TID6, /**< Data TID6 */ + MMHAL_WLAN_PKT_DATA_TID7, /**< Data TID7 */ + MMHAL_WLAN_PKT_MANAGEMENT, /**< 802.11 Management and other important frames */ + MMHAL_WLAN_PKT_COMMAND, /**< Commands from driver to chip */ +}; + +/** + * Allocates an mmpkt for transmission. + * + * When the pool of mmpkt buffers available for TX is exhausted, the HAL should pause the TX + * path using the flow control callback that was registered when @ref mmhal_wlan_pktmem_init() + * was invoked. Similarly, when the buffers become available again (and assuming the TX path is + * not otherwise blocked) the driver should unpause the TX path. + * + * @param pkt_class The class of packet (to allow for prioritization). + * @param space_at_start Amount of space to allocate at start of mmpkt (for prepend). + * @param space_at_end Amount of space to allocate at end of mmpkt (for append). + * @param metadata_length Amount of space to allocate for metadata (used internally by the + * Morse driver). + * + * @returns a pointer to the allocated packet on success or @c NULL on allocation failure. + */ +struct mmpkt *mmhal_wlan_alloc_mmpkt_for_tx(uint8_t pkt_class, uint32_t space_at_start, uint32_t space_at_end, + uint32_t metadata_length); + +/** + * Allocates an mmpkt for reception. + * + * @param capacity Amount of space to allocate for data. + * @param metadata_length Amount of space to allocate for metadata (used internally by the + * Morse driver). + * + * @returns a pointer to the allocated packet on success or @c NULL on allocation failure. + */ +struct mmpkt *mmhal_wlan_alloc_mmpkt_for_rx(uint32_t capacity, uint32_t metadata_length); + +/** @} */ + +/** + * @defgroup MMHAL_WLAN_SDIO WLAN HAL API for SDIO interface + * + * API for communicating with the WLAN transceiver over an SDIO interface + * + * @warning These functions shall not be called directly by the end application they are for use + * by Morselib. + * + * @{ + */ + +/** Enumeration of error codes that may be returned from @c mmhal_wlan_sdio_XXX() functions. */ +enum mmhal_sdio_error_codes { + /** Invalid argument given (e.g., incorrect buffer alignment). */ + MMHAL_SDIO_INVALID_ARGUMENT = -1, + /** Local hardware error (e.g., issue with SDIO controller). */ + MMHAL_SDIO_HW_ERROR = -2, + /** Timeout executing SDIO command. */ + MMHAL_SDIO_CMD_TIMEOUT = -3, + /** CRC error executing SDIO command. */ + MMHAL_SDIO_CMD_CRC_ERROR = -4, + /** Timeout transferring data. */ + MMHAL_SDIO_DATA_TIMEOUT = -5, + /** CRC error transferring data. */ + MMHAL_SDIO_DATA_CRC_ERROR = -6, + /** Underflow filling SDIO controller FIFO. */ + MMHAL_SDIO_DATA_UNDERFLOW = -7, + /** Overflow reading from SDIO controller FIFO. */ + MMHAL_SDIO_DATA_OVERRUN = -8, + /** Another error not covered by the above error codes. */ + MMHAL_SDIO_OTHER_ERROR = -9, +}; + +/** + * Perform transport specific startup. + * + * @returns 0 on success, an error code from @ref mmhal_sdio_error_codes on failure. + */ +int mmhal_wlan_sdio_startup(void); + +/** + * Execute an SDIO command without data. + * + * @param[in] cmd_idx The Command Index. + * @param[in] arg Command argument. This corresponds to the 32 bits of the command between + * the Command Index field and the CRC7 field. + * @param[out] rsp The contents of the command response between the Command Index field + * and the CRC7 field. May be @c NULL if the response is not required. + * The returned value is undefined if the return code is not zero. + * + * @returns 0 on success, an error code from @ref mmhal_sdio_error_codes on failure. + */ +int mmhal_wlan_sdio_cmd(uint8_t cmd_idx, uint32_t arg, uint32_t *rsp); + +/** + * Arguments structure for @ref mmhal_wlan_sdio_cmd53_write(). + */ +struct mmhal_wlan_sdio_cmd53_write_args { + /** The SDIO argument. This corresponds to the 32 bits of the command between + * the Command Index field and the CRC7 field. */ + uint32_t sdio_arg; + /** Pointer to the data buffer. 32 bit word aligned. */ + const uint8_t *data; + /** Transfer length measured in blocks if block_size is non-zero otherwise in bytes. + * If transfer_length is measured in bytes, it will be a multiple of 4. */ + uint16_t transfer_length; + /** + * If non-zero this indicates that the data should be transferred in block mode with + * the given block size. If zero then the data should be transferred in byte mode and + * @c transfer_length is guaranteed to not exceed the block size of the function. + */ + uint16_t block_size; +}; + +/** + * Execute an SDIO CMD53 write. + * + * @param args The write arguments. + * + * @returns 0 on success, an error code from @ref mmhal_sdio_error_codes on failure. + */ +int mmhal_wlan_sdio_cmd53_write(const struct mmhal_wlan_sdio_cmd53_write_args *args); + +/** + * Arguments structure for @ref mmhal_wlan_sdio_cmd53_read(). + */ +struct mmhal_wlan_sdio_cmd53_read_args { + /** The SDIO argument. This corresponds to the 32 bits of the command between + * the Command Index field and the CRC7 field. */ + uint32_t sdio_arg; + /** Pointer to the data buffer to receive the data. 32 bit word aligned. */ + uint8_t *data; + /** Transfer length measured in blocks if block_size is non-zero otherwise in bytes. + * If transfer_length is measured in bytes, it will be a multiple of 4. */ + uint16_t transfer_length; + /** + * If non-zero this indicates that the data should be transferred in block mode with + * the given block size. If zero then the data should be transferred in byte mode and + * @c transfer_length is guaranteed to not exceed the block size of the function. + */ + uint16_t block_size; +}; + +/** + * Execute an SDIO CMD53 read. + * + * @param args The read arguments. + * + * @returns 0 on success, an error code from @ref mmhal_sdio_error_codes on failure. + */ +int mmhal_wlan_sdio_cmd53_read(const struct mmhal_wlan_sdio_cmd53_read_args *args); + +/** + * @defgroup MMHAL_WLAN_SDIO_UTILS SDIO Utilities + * + * Useful macros and inline utilities function for use by SDIO and SPI HALs. + * + * @{ + */ + +/* + * SDIO argument definition, per SDIO Specification Version 4.10, Part E1, Section 5.3. + */ + +/** SDIO CMD52/CMD53 R/W flag. */ +enum mmhal_sdio_rw { + MMHAL_SDIO_READ = 0, /**< Read operation */ + MMHAL_SDIO_WRITE = (1ul << 31), /**< Write operation */ +}; + +/** SDIO CMD52/CMD53 function number. */ +enum mmhal_sdio_function { + MMHAL_SDIO_FUNCTION_0 = 0, /** Function 0 */ + MMHAL_SDIO_FUNCTION_1 = (1ul << 28), /** Function 1 */ + MMHAL_SDIO_FUNCTION_2 = (2ul << 28), /** Function 2 */ +}; + +/** SDIO CMD53 block mode*/ +enum mmhal_sdio_mode { + MMHAL_SDIO_MODE_BYTE = 0, /** Byte mode */ + MMHAL_SDIO_MODE_BLOCK = (1ul << 27), /** Block mode */ +}; + +/** SDIO CMD53 OP code */ +enum mmhal_sdio_opcode { + /** Operate on a single, fixed address. */ + MMHAL_SDIO_OPCODE_FIXED_ADDR = 0, + /** Increment address by 1 after each byte. */ + MMHAL_SDIO_OPCODE_INC_ADDR = (1ul << 26), +}; + +/** CMD52/53 Register Address (17 bit) offset. */ +#define MMHAL_SDIO_ADDRESS_OFFSET (9) +/** CMD52/53 Register Address maximum value. */ +#define MMHAL_SDIO_ADDRESS_MAX ((1ul << 18) - 1) + +/** CMD53 Byte/block count offset (9 bit). */ +#define MMHAL_SDIO_COUNT_OFFSET (0) +/**CMD53 Byte/block count maximum value. */ +#define MMHAL_SDIO_COUNT_MAX ((1ul << 10) - 1) + +/** CMD52 Data (8 bit) offset */ +#define MMHAL_SDIO_CMD52_DATA_OFFSET (0) + +/** + * Construct an SDIO CMD52 argument based on the given arguments. + * + * @param rw Flag indication direction (read or write). + * @param fn The applicable function. + * @param address The address to read/write. Must be <= @c MMHAL_SDIO_ADDRESS_MAX. + * @param write_data The data to write if this is a write operation. Should be set to zero + * for a read operation. + * + * @return the SDIO CMD52 argument generated based on the given arguments. + */ +static inline uint32_t mmhal_make_cmd52_arg(enum mmhal_sdio_rw rw, enum mmhal_sdio_function fn, uint32_t address, + uint8_t write_data) +{ + uint32_t arg; + + arg = rw | fn; + arg |= (address << MMHAL_SDIO_ADDRESS_OFFSET); + arg |= (write_data << MMHAL_SDIO_CMD52_DATA_OFFSET); + return arg; +} + +/** + * Construct an SDIO CMD53 argument based on the given arguments. + * + * @param rw Flag indication direction (read or write). + * @param fn The applicable function. + * @param mode Selects between byte and block mode. + * @param address The address to read/write. Must be <= @c MMHAL_SDIO_ADDRESS_MAX. + * @param count The count of bytes/blocks (depending on @p mode) to transfer. Must + * be <= @c MMHAL_SDIO_COUNT_MAX. + * + * @note OP Code 1 (incrementing address) is assumed. See also @ref MMHAL_SDIO_OPCODE_INC_ADDR. + * + * @return the SDIO CMD53 argument generated based on the given arguments. + */ +static inline uint32_t mmhal_make_cmd53_arg(enum mmhal_sdio_rw rw, enum mmhal_sdio_function fn, enum mmhal_sdio_mode mode, + uint32_t address, uint16_t count) +{ + uint32_t arg; + + arg = rw | fn | MMHAL_SDIO_OPCODE_INC_ADDR | mode; + arg |= (address << MMHAL_SDIO_ADDRESS_OFFSET); + arg |= (count << MMHAL_SDIO_COUNT_OFFSET); + return arg; +} + +/** @} */ + +/** @} */ + +#ifdef __cplusplus +} +#endif + +/** @} */ diff --git a/lib/MorseWlan/include/mmipal.h b/lib/MorseWlan/include/mmipal.h new file mode 100644 index 000000000..1db6baf7a --- /dev/null +++ b/lib/MorseWlan/include/mmipal.h @@ -0,0 +1,383 @@ +/* + * Copyright 2023 Morse Micro + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/** + * @defgroup MMIPAL Morse Micro IP Stack Abstraction Layer (MMIPAL) API + * + * This API provides a layer of abstraction from the underlying IP stack for common operations + * such as configuring the link and getting link status. + * + * @{ + */ + +#pragma once + +#ifdef __cplusplus +extern "C" { +#endif + +#include +#include + +/** Maximum length of an IP address string, including null-terminator. */ +#ifndef MMIPAL_IPADDR_STR_MAXLEN +#define MMIPAL_IPADDR_STR_MAXLEN (48) +#endif + +/** Maximum number of IPv6 addresses supported. */ +#ifndef MMIPAL_MAX_IPV6_ADDRESSES +#define MMIPAL_MAX_IPV6_ADDRESSES (3) +#endif + +/** Enumeration of status codes returned by MMIPAL functions. */ +enum mmipal_status { + /** Completed successfully. */ + MMIPAL_SUCCESS, + /** One or more arguments were invalid. */ + MMIPAL_INVALID_ARGUMENT, + /** The operation could not complete because the link is not up. */ + MMIPAL_NO_LINK, + /** Failed due to memory allocation failure. */ + MMIPAL_NO_MEM, + /** This functionality is not supported (e.g., due to build configuration). */ + MMIPAL_NOT_SUPPORTED, +}; + +/** Enumeration of link states. */ +enum mmipal_link_state { + /** Link is down. */ + MMIPAL_LINK_DOWN, + /** Link is up. */ + MMIPAL_LINK_UP, +}; + +/** Enumeration of IP address allocation modes. */ +enum mmipal_addr_mode { + /** Disabled. */ + MMIPAL_DISABLED, + /** Static IP address. */ + MMIPAL_STATIC, + /** IP address allocated via DHCP. @c LWIP_DHCP must be set to 1 if using LWIP. */ + MMIPAL_DHCP, + /** IP address allocated via AutoIP. @c LWIP_DHCP must be set to 1 if using LWIP. */ + MMIPAL_AUTOIP, + /** DHCP offloaded to chip. */ + MMIPAL_DHCP_OFFLOAD, +}; + +/** IP address string type. */ +typedef char mmipal_ip_addr_t[MMIPAL_IPADDR_STR_MAXLEN]; + +/** + * IPv4 configuration structure. + * + * This should be initialized using @c MMIPAL_IP_CONFIG_DEFAULT. + * For example: + * + * @code{.c} + * struct mmipal_ip_config config = MMIPAL_IP_CONFIG_DEAFULT; + * @endcode + */ +struct mmipal_ip_config { + /** IP address allocation mode. */ + enum mmipal_addr_mode mode; + /** local IP address */ + mmipal_ip_addr_t ip_addr; + /** Netmask address */ + mmipal_ip_addr_t netmask; + /** Gateway address */ + mmipal_ip_addr_t gateway_addr; +}; + +/** Initializer for @ref mmipal_ip_config. */ +#define MMIPAL_IP_CONFIG_DEFAULT \ + { \ + MMIPAL_DHCP, "", "", "", \ + } + +/** Enumeration of IPv6 address allocation modes. */ +enum mmipal_ip6_addr_mode { + /** Disabled. */ + MMIPAL_IP6_DISABLED, + /** Static IPv6 addresses. */ + MMIPAL_IP6_STATIC, + /** IPv6 address allocated via autoconfiguration. + * @c LWIP_IPV6_AUTOCONFIG must be set to 1 if using LWIP. */ + MMIPAL_IP6_AUTOCONFIG, + /** IPv6 address allocated via stateless DHCPv6. + * @c LWIP_IPV6_DHCP6_STATELESS must be set to 1 if using LWIP. */ + MMIPAL_IP6_DHCP6_STATELESS, +}; + +/** + * IPv6 configuration structure. + * + * This should be initialized using @c MMIPAL_IP6_CONFIG_DEFAULT. + * For example: + * + * @code{.c} + * struct mmipal_ip6_config config = MMIPAL_IP6_CONFIG_DEFAULT; + * @endcode + */ +struct mmipal_ip6_config { + /** IPv6 addresses allocation mode. */ + enum mmipal_ip6_addr_mode ip6_mode; + /** Array of IPv6 addresses. */ + mmipal_ip_addr_t ip6_addr[MMIPAL_MAX_IPV6_ADDRESSES]; +}; + +/** Initializer for @ref mmipal_ip6_config. */ +#define MMIPAL_IP6_CONFIG_DEFAULT \ + { \ + MMIPAL_IP6_AUTOCONFIG \ + } + +/** + * Initialize arguments structure. + * + * This should be initialized using @c MMIPAL_INIT_ARGS_DEFAULT. + * For example: + * + * @code{.c} + * struct mmipal_init_args args = MMIPAL_INIT_ARGS_DEFAULT; + * @endcode + */ +struct mmipal_init_args { + /** IP address allocation mode to use. */ + enum mmipal_addr_mode mode; + /** IP address to use (if @c mode is @c MMIPAL_STATIC). */ + mmipal_ip_addr_t ip_addr; + /** Netmask to use (if @c mode is @c MMIPAL_STATIC). */ + mmipal_ip_addr_t netmask; + /** Gateway IP address to use (if @c mode is @c MMIPAL_STATIC). */ + mmipal_ip_addr_t gateway_addr; + + /** IPv6 address allocation mode to use. */ + enum mmipal_ip6_addr_mode ip6_mode; + /** IPv6 address to use (if @c ip6_mode is @c MMIPAL_IP6_STATIC). */ + mmipal_ip_addr_t ip6_addr; + /** Flag requesting ARP response offload feature */ + bool offload_arp_response; + /** ARP refresh offload interval in seconds */ + uint32_t offload_arp_refresh_s; +}; + +/** + * Default values for @ref mmipal_init_args. This should be used when initializing the + * @ref mmipal_init_args structure. + */ +#define MMIPAL_INIT_ARGS_DEFAULT \ + { \ + MMIPAL_DHCP, {0}, {0}, {0}, MMIPAL_IP6_DISABLED, {0}, false, 0 \ + } + +/** + * Initialize the IP stack and enable the MMWLAN interface. + * + * This will implicitly initialize and boot MMWLAN, and will block until this has completed. + * + * @note This function will boot the Morse Micro transceiver using @ref mmwlan_boot() in order + * to read the MAC address. It is the responsibility of the caller to shut down the + * transceiver using @ref mmwlan_shutdown() as required. + * + * @warning @ref mmwlan_init() must be called before invoking this function. + * + * @param args Initialization arguments. + * + * @return @c MMIPAL_SUCCESS on success. otherwise a vendor specific error code. + */ +enum mmipal_status mmipal_init(const struct mmipal_init_args *args); + +/** + * Structure representing the current status of the link. + */ +struct mmipal_link_status { + /** State of the link (up/down). */ + enum mmipal_link_state link_state; + /** Current IP address. */ + mmipal_ip_addr_t ip_addr; + /** Current netmask. */ + mmipal_ip_addr_t netmask; + /** Current gateway IP address. */ + mmipal_ip_addr_t gateway; +}; + +/** + * Prototype for callback function invoked on link status changes. + * + * @param link_status The current link status. + */ +typedef void (*mmipal_link_status_cb_fn_t)(const struct mmipal_link_status *link_status); + +/** + * Sets the callback function to be invoked on link status changes. + * + * This will be used when DHCP is enabled. + * + * @note This is for IPv4 only. To get IPv6 status use @c mmipal_get_ip6_config. + * @note If an opaque argument is required then use @ref mmipal_set_ext_link_status_callback() + * instead. + * + * @param fn Function pointer to the callback function. + */ +void mmipal_set_link_status_callback(mmipal_link_status_cb_fn_t fn); + +/** + * Prototype for callback function invoked on link status changes. + * + * This is similar to @ref mmipal_link_status_cb_fn_t but with the addition of the @p arg + * parameter. + * + * @param link_status The current link status. + * @param arg Opaque argument that was provided when the callback was registered. + */ +typedef void (*mmipal_ext_link_status_cb_fn_t)(const struct mmipal_link_status *link_status, void *arg); + +/** + * Sets the extended link status callback function to be invoked on link status changes. + * This is similar to @ref mmipal_set_link_status_callback() with the exception that + * an opaque argument may also be specified. + * + * This will be used when DHCP is enabled. + * + * @note This is for IPv4 only. To get IPv6 status use @c mmipal_get_ip6_config. + * + * @param fn Function pointer to the callback function. + * @param arg Opaque argument to be passed to the callback. + */ +void mmipal_set_ext_link_status_callback(mmipal_ext_link_status_cb_fn_t fn, void *arg); + +/** + * Get the total number of transmitted and received packets on the MMWLAN interface + * + * @note If using LWIP, this function requires LWIP_STATS to be defined in your application, + * otherwise packet counters will always return as 0. + * + * @param tx_packets Pointer to location to store total tx packets + * @param rx_packets Pointer to location to store total rx packets + */ +void mmipal_get_link_packet_counts(uint32_t *tx_packets, uint32_t *rx_packets); + +/** + * Set the QoS Traffic ID to use when transmitting. + * + * @param tid The QoS TID to use (0 - @ref MMWLAN_MAX_QOS_TID). + */ +void mmipal_set_tx_qos_tid(uint8_t tid); + +/** + * Gets the local address for the MMWLAN interface that is appropriate for a given + * destination address. + * + * The following table shows how the returned @c local_addr is selected: + * + * | @p dest_addr | @c local_addr returned | + * |--------------|---------------------------| + * | type is IPv4 | IPv4 address | + * | type is IPv6 | An IPv6 source address selected from interface's IPv6 addresses or ERR_CONN | + * + * (X = don't care) + * + * If the given parameters would result in a @p local_addr type of IPv4 and IPv4 is not enabled, + * or IPv6 and IPv6 is not enabled, then @c MMIPAL_INVALID_ARGUMENT will be returned. + * + * @param[out] local_addr Output local address for the MMWLAN interface, as noted above. + * @param[in] dest_addr Destination address. + * + * @return @c MMIPAL_SUCESS if @p local_addr successfully set. otherwise an + * appropriate error code. + */ +enum mmipal_status mmipal_get_local_addr(mmipal_ip_addr_t local_addr, const mmipal_ip_addr_t dest_addr); + +/** + * Get the IP configurations. + * + * This can be used to get the local IP configurations. + * + * @param config Pointer to the IP configurations. + * + * @returns @c MMIPAL_SUCCESS on success, @c MMIPAL_NOT_SUPPORTED if IPv4 is not supported. + */ +enum mmipal_status mmipal_get_ip_config(struct mmipal_ip_config *config); + +/** + * Set the IP configurations. + * + * This can be used to set the local IP configurations. + * + * @param config Pointer to the IP configurations. + * + * @returns @c MMIPAL_SUCCESS on success, @c MMIPAL_NOT_SUPPORTED if IPv4 is not supported. + */ +enum mmipal_status mmipal_set_ip_config(const struct mmipal_ip_config *config); + +/** + * Gets the current IPv4 broadcast address. + * + * @param[out] broadcast_addr Buffer to receive the broadcast address as a string. + * + * @returns @c MMIPAL_SUCCESS on success, @c MMIPAL_NOT_SUPPORTED if IPv4 is not supported. + */ +enum mmipal_status mmipal_get_ip_broadcast_addr(mmipal_ip_addr_t broadcast_addr); + +/** + * Get the IP configurations. + * + * This can be used to get the local IP configurations. + * + * @param config Pointer to the IP configurations. + * + * @returns @c MMIPAL_SUCCESS on success, @c MMIPAL_NOT_SUPPORTED if IPv6 is not supported.. + */ +enum mmipal_status mmipal_get_ip6_config(struct mmipal_ip6_config *config); + +/** + * Set the IPv6 configurations. + * + * This can be used to set the local IPv6 configurations. + * + * @param config Pointer to the IPv6 configurations. + * + * @returns @c MMIPAL_SUCCESS on success, @c MMIPAL_NOT_SUPPORTED if IPv6 is not supported. + */ +enum mmipal_status mmipal_set_ip6_config(const struct mmipal_ip6_config *config); + +/** + * Get current IPv4 link state. + * + * @returns the current IPv4 link state (up or down). + */ +enum mmipal_link_state mmipal_get_link_state(void); + +/** + * Set the DNS server at the given index. + * + * @warning Depending on IP stack implementation, this setting may be overridden by DHCP. + * + * @param[in] index Index of the DNS server to set. + * @param[out] addr Address of the DNS server to set. + * + * @returns @c MMIPAL_SUCCESS on success, @c MMIPAL_INVALID_ARGUMENT if an invalid index or IP + * address was given. + */ +enum mmipal_status mmipal_set_dns_server(uint8_t index, const mmipal_ip_addr_t addr); + +/** + * Get the DNS server at the given index. + * + * @param[in] index Index of the DNS server to set. + * @param[out] addr IP address buffer to receive the IP address of the DNS server at the given + * index. Will be set to empty string if no server at the given index. + * + * @returns @c MMIPAL_SUCCESS on success. + */ +enum mmipal_status mmipal_get_dns_server(uint8_t index, mmipal_ip_addr_t addr); + +#ifdef __cplusplus +} +#endif + +/** @} */ diff --git a/lib/MorseWlan/include/mmlog.h b/lib/MorseWlan/include/mmlog.h new file mode 100644 index 000000000..ff22e9b9b --- /dev/null +++ b/lib/MorseWlan/include/mmlog.h @@ -0,0 +1,64 @@ +/* + * Morse logging API + * + * Copyright 2023 Morse Micro + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#pragma once + +#ifdef __cplusplus +extern "C" { +#endif + +#include +#include + +/** + * Macro for printing a @c uint64_t as two separate @c uint32_t values. This is to allow printing of + * these values even when the @c printf implementation doesn't support it. + */ +#define MM_X64_VAL(value) ((uint32_t)(value >> 32)), ((uint32_t)value) + +/** Macro for format specifier to print @ref MM_X64_VAL */ +#define MM_X64_FMT "%08lx%08lx" + +/** + * Macro for printing a MAC address. This saves writing it out by hand. + * + * Must be used in conjunction with @ref MM_MAC_ADDR_FMT. For example: + * + * @code + * uint8_t mac_addr[] = { 0, 1, 2, 3, 4, 5 }; + * printf("MAC address: " MM_MAC_ADDR_FMT "\n", MM_MAC_ADDR_VAL(mac_addr)); + * @endcode + */ +#define MM_MAC_ADDR_VAL(value) ((value)[0]), ((value)[1]), ((value)[2]), ((value)[3]), ((value)[4]), ((value)[5]) + +/** Macro for format specifier to print @ref MM_MAC_ADDR_VAL */ +#define MM_MAC_ADDR_FMT "%02x:%02x:%02x:%02x:%02x:%02x" + +/** + * Initialize Morse logging API. + * + * This should be invoked after OS initialization since it will create a mutex for + * logging. + */ +void mm_logging_init(void); + +/** + * Dumps a binary buffer in hex. + * + * @param level A single character indicating log level. + * @param function Name of function this was invoked from. + * @param line_number Line number this was invoked from. + * @param title Title of the buffer. + * @param buf The buffer to dump. + * @param len Length of the buffer. + */ +void mm_hexdump(char level, const char *function, unsigned line_number, const char *title, const uint8_t *buf, size_t len); + +#ifdef __cplusplus +} +#endif diff --git a/lib/MorseWlan/include/mmosal.h b/lib/MorseWlan/include/mmosal.h new file mode 100644 index 000000000..8663b57bf --- /dev/null +++ b/lib/MorseWlan/include/mmosal.h @@ -0,0 +1,1036 @@ +/* + * Copyright 2021-2023 Morse Micro + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/** + * @defgroup MMOSAL Morse Micro Operating System Abstraction Layer (mmosal) API + * + * This API provides a layer of abstraction from the underlying operation system. Functionality + * is provided for typical RTOS features. + * + * @{ + */ + +#pragma once + +#include +#include +#include +#include +#include + +#include "mmport.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @defgroup MMOSAL_MAIN Main loop + * + * Provides the "main" function that runs the operating system scheduler. + * + * @{ + */ + +/** Application initialization callback (see @ref mmosal_main for details). */ +typedef void (*mmosal_app_init_cb_t)(void); + +/** + * OS main function. + * + * This should be invoked after early initialization. If further initialization is required after + * the scheduler is started an optional @p app_init_cb argument can be provided and the given + * function with be executed in a thread that will subsequently be destroyed if it returns. + * + * @param app_init_cb Application initialization callback that will be invoked after the + * scheduler has been started. This optional (may be NULL). If specified, + * the function will run in its own thread and may or may not return. + * + * @returns an error code if something goes wrong, otherwise does not return. + */ +int mmosal_main(mmosal_app_init_cb_t app_init_cb); + +/** + * @} + */ + +/* + * --------------------------------------------------------------------------------------------- + */ + +/** + * @defgroup MMOSAL_MEMMGMT Memory management + * + * Provides memory management functionality (allocation and free). + * + * @{ + */ + +/** + * Allocate memory of the given size and return a pointer to it (malloc). + * + * No guarantees made about initialization. + * + * @warning This function should not be used directly. Instead use @ref mmosal_malloc(). + * + * @param size The amount of memory to allocate (in bytes). + * + * @returns pointer to the allocated memory on success, or NULL on failure. + */ +void *mmosal_malloc_(size_t size); + +/** + * Allocate memory of the given size and return a pointer to it (malloc) -- debug version. + * + * No guarantees made about initialization. + * + * @warning This function should not be used directly. Instead use @ref mmosal_malloc(). + * + * @param size The amount of memory to allocate (in bytes). + * @param name Name of the function that allocated the memory. + * @param line_number The line number at which the allocation happened. + * + * @returns pointer to the allocated memory on success, or NULL on failure. + */ +void *mmosal_malloc_dbg(size_t size, const char *name, unsigned line_number); + +/** + * Free the given memory allocation. + * + * @param p The memory to free. + */ +void mmosal_free(void *p); + +/** + * Equivalent of standard library realloc(). + * + * @param ptr Previously allocated memory block to resize. + * @param size The new size. + * + * @returns pointer to the resized block of memory, or @c NULL. + */ +void *mmosal_realloc(void *ptr, size_t size); + +/** + * Equivalent of standard library calloc(). + * + * @param nitems Number of blocks to allocate + * @param size Size of each block. + * + * @returns pointer to the allocated memory on success, or NULL on failure. + */ +void *mmosal_calloc(size_t nitems, size_t size); + +#ifndef MMOSAL_TRACK_ALLOCATIONS +/** + * Allocate memory of the given size and return a pointer to it (malloc). + * + * No guarantees made about initialization. + * + * @param size The amount of memory to allocate (in bytes). + * + * @returns pointer to the allocated memory on success, or NULL on failure. + */ +#define mmosal_malloc(size) mmosal_malloc_(size) +#else +/* Note: we use function name because it should be shorter than the full filename path. */ +/** + * Allocate memory of the given size and return a pointer to it (malloc). + * + * No guarantees made about initialization. + * + * @param size The amount of memory to allocate (in bytes). + * + * @returns pointer to the allocated memory on success, or NULL on failure. + */ +#define mmosal_malloc(size) mmosal_malloc_dbg(size, __FUNCTION__, __LINE__) +#endif + +/** + * @} + */ + +/* + * --------------------------------------------------------------------------------------------- + */ + +/** + * @defgroup MMOSAL_TASKS Task (thread) management + * + * Provides memory management functionality managing tasks (create, destroy, yield, etc.). + * + * @{ + */ + +/** + * Type definition for task main functions. + * + * @param arg Opaque argument passed in at task creation. + */ +typedef void (*mmosal_task_fn_t)(void *arg); + +/** Enumeration of task priorities (ordered lowest to highest). */ +enum mmosal_task_priority { + /** Idle task priority. */ + MMOSAL_TASK_PRI_IDLE, + /** Minimum priority. */ + MMOSAL_TASK_PRI_MIN, + /** Low priority. */ + MMOSAL_TASK_PRI_LOW, + /** Normal priority. */ + MMOSAL_TASK_PRI_NORM, + /** High priority. */ + MMOSAL_TASK_PRI_HIGH, +}; + +/** + * Create a new task. + * + * @param task_fn Task main function. + * @param argument Argument to pass to main function. + * @param priority Task priority. + * @param stack_size_u32 Size of stack to allocate for task (in units of 32 bit words). + * @param name Name to give the task. + * + * @returns an opaque task handle, or @c NULL on failure. + */ +struct mmosal_task *mmosal_task_create(mmosal_task_fn_t task_fn, void *argument, enum mmosal_task_priority priority, + unsigned stack_size_u32, const char *name); + +/** + * Delete the given task. + * + * @param task Handle of the task to delete (or NULL to delete the current task). + * + * @note With FreeRTOS deleted tasks will not be cleaned up until the idle task runs. + */ +void mmosal_task_delete(struct mmosal_task *task); + +/** + * Block until the given task has terminated. + * + * @param task Handle of the task to wait for. + * + * @note With FreeRTOS deleted tasks will not be cleaned up until the idle task runs. + * + * @deprecated Do not invoke this function because it is deprecated and will be removed from + * the mmosal API in a future release. + */ +void mmosal_task_join(struct mmosal_task *task); + +/** + * Get the handle of the active task. + * + * @returns the handle of the active task. + */ +struct mmosal_task *mmosal_task_get_active(void); + +/** + * Yield the active task. + */ +void mmosal_task_yield(void); + +/** + * Sleep for a period of time, yielding during that time. + * + * @param duration_ms Sleep duration, in milliseconds. + */ +void mmosal_task_sleep(uint32_t duration_ms); + +/** + * Enter critical section. + * + * This may result in interrupts being disabled so critical sections must be kept short. + * Each entry to a critical section must be matched to a corresponding exit + * (@ref MMOSAL_TASK_EXIT_CRITICAL()). + */ +#define MMOSAL_TASK_ENTER_CRITICAL() \ + do { \ + MMPORT_MEM_SYNC(); \ + mmosal_task_enter_critical(); \ + } while (0) + +/** + * Exit critical section. + * + * Used to exit a critical section previously entered with @ref MMOSAL_TASK_ENTER_CRITICAL()). + */ +#define MMOSAL_TASK_EXIT_CRITICAL() \ + do { \ + MMPORT_MEM_SYNC(); \ + mmosal_task_exit_critical(); \ + } while (0) + +/** + * Enter critical section. + * + * This may result in interrupts being disabled so critical sections must be kept short. + * Each entry to a critical section must be matched to a corresponding exit + * (@ref mmosal_task_exit_critical()). + * + * @note This function should not be invoked directly. Use @ref MMOSAL_TASK_ENTER_CRITICAL(). + */ +void mmosal_task_enter_critical(void); + +/** + * Exit critical section. + * + * Used to exit a critical section previously entered with @ref mmosal_task_enter_critical()). + * + * @note This function should not be invoked directly. Use @ref MMOSAL_TASK_EXIT_CRITICAL(). + */ +void mmosal_task_exit_critical(void); + +/** + * Disable interrupts. + * + * @warning This function should generally not be used. Use @ref mmosal_task_enter_critical() + * instead. + */ +void mmosal_disable_interrupts(void); + +/** + * Enable interrupts. + * + * @warning This function should generally not be used. Use @ref mmosal_task_exit_critical() + * instead. + */ +void mmosal_enable_interrupts(void); + +/** + * Get the name of the running task. + * + * @returns the name of the running task. + */ +const char *mmosal_task_name(void); + +/** + * Blocks the current task until a notification is received. + * + * Notifications can be sent using @ref mmosal_task_notify() or @ref mmosal_task_notify_from_isr(). + * + * @param timeout_ms The time to wait before giving up (or @c UINT32_MAX to wait forever). + * + * @returns @c true of a notification was received or @c false if it timed out. + * + * @see mmosal_task_notify() + * @see mmosal_task_notify_from_isr() + */ +bool mmosal_task_wait_for_notification(uint32_t timeout_ms); + +/** + * Notifies a waiting task (@ref mmosal_task_wait_for_notification()) that it can continue. + * + * @warning Must not be called from ISR context. + * + * @param task Handle of the task to notify. + * + * @see mmosal_task_wait_for_notification() + */ +void mmosal_task_notify(struct mmosal_task *task); + +/** + * Notifies a waiting task (@ref mmosal_task_wait_for_notification()) that it can continue. + * + * @warning Must only be called from ISR context. + * + * @param task Handle of the task to notify. + * + * @see mmosal_task_wait_for_notification() + */ +void mmosal_task_notify_from_isr(struct mmosal_task *task); + +/** + * @} + */ + +/* + * --------------------------------------------------------------------------------------------- + */ + +/** + * @defgroup MMOSAL_MUTEX Mutex + * + * Provides mutex support for mutual exclusion. + * + * @{ + */ + +/** + * Create a new mutex. + * + * @param name The name for the mutex. + * + * @returns an opaque handle to the mutex, or @c NULL on failure. + */ +struct mmosal_mutex *mmosal_mutex_create(const char *name); + +/** + * Delete a mutex. + * + * @param mutex Handle of mutex to delete + */ +void mmosal_mutex_delete(struct mmosal_mutex *mutex); + +/** + * Acquire a mutex. + * + * @param mutex Handle of mutex to acquire. + * @param timeout_ms Timeout after which to give up. To wait infinitely use @c UINT32_MAX. + * + * @returns @c true if the mutex was acquired successfully otherwise @c false. + */ +bool mmosal_mutex_get(struct mmosal_mutex *mutex, uint32_t timeout_ms); + +/** + * Release a mutex. + * + * @param mutex Handle of mutex to release. + * + * @returns @c true if the mutex was released successfully otherwise @c false. + */ +bool mmosal_mutex_release(struct mmosal_mutex *mutex); + +/** + * Attempt to get a mutex, waiting infinitely long for it. Panics on failure. + */ +#define MMOSAL_MUTEX_GET_INF(_mutex) \ + do { \ + bool ok__ = mmosal_mutex_get((_mutex), UINT32_MAX); \ + MMOSAL_ASSERT(ok__); \ + } while (0) + +/** + * Same as @ref mmosal_mutex_release() except it panics on failure. + */ +#define MMOSAL_MUTEX_RELEASE(_mutex) \ + do { \ + bool ok__ = mmosal_mutex_release(_mutex); \ + MMOSAL_ASSERT(ok__); \ + } while (0) + +/** + * Check whether the given mutex is held by the active thread. + * + * @param mutex Handle of the mutex to check. + * + * @returns @c true if the mutex is held by the active thread, else @c false. + */ +bool mmosal_mutex_is_held_by_active_task(struct mmosal_mutex *mutex); + +/** + * @} + */ + +/* + * --------------------------------------------------------------------------------------------- + */ + +/** + * @defgroup MMOSAL_SEM Counting semaphores + * + * Provides counting semaphore support for task synchronization. + * + * @{ + */ + +/** + * Create a new counting semaphore. + * + * @param max_count The maximum count (i.e., number of times the semaphore can be given). + * @param initial_count The initial count (i.e., number of times the semaphore is implicitly + * given when it is created). + * @param name The name of the semaphore. + * + * @returns an opaque handle to the semaphore, or @c NULL on failure. + */ +struct mmosal_sem *mmosal_sem_create(unsigned max_count, unsigned initial_count, const char *name); + +/** + * Delete the given counting semaphore. + * + * @param sem Semaphore to delete. + */ +void mmosal_sem_delete(struct mmosal_sem *sem); + +/** + * Give a counting semaphore. + * + * @warning May not be invoked from an ISR. + * + * @param sem The semaphore to give. + * + * @returns @c true on success, else @c false. + */ +bool mmosal_sem_give(struct mmosal_sem *sem); + +/** + * Give a counting semaphore (from ISR context). + * + * @warning May only be invoked from an ISR. + * + * @param sem The semaphore to give. + * + * @returns @c true on success, else @c false. + */ +bool mmosal_sem_give_from_isr(struct mmosal_sem *sem); + +/** + * Wait for a counting semaphore. + * + * @param sem The semaphore to wait for. + * @param timeout_ms Timeout after which to give up waiting (in milliseconds). + * + * @returns @c true if the the semaphore was taken successfully, else @c false. + */ +bool mmosal_sem_wait(struct mmosal_sem *sem, uint32_t timeout_ms); + +/** + * Returns the current count of the semaphore. + * + * @param sem The semaphore being queried. + * + * @returns The count of the semaphore being queried. + */ +uint32_t mmosal_sem_get_count(struct mmosal_sem *sem); + +/** + * @} + */ + +/* + * --------------------------------------------------------------------------------------------- + */ + +/** + * @defgroup MMOSAL_SEMB Binary semaphores + * + * Provides binary semaphore support for task synchronization. + * + * @{ + */ + +/** + * Create a new binary semaphore. + * + * @param name The name of the semaphore. + * + * @returns an opaque handle to the semaphore, or @c NULL on failure. + */ +struct mmosal_semb *mmosal_semb_create(const char *name); + +/** + * Delete the given binary semaphore. + * + * @param semb Semaphore to delete. + */ +void mmosal_semb_delete(struct mmosal_semb *semb); + +/** + * Give a binary semaphore. + * + * @warning May not be invoked from an ISR. + * + * @param semb The semaphore to give. + * + * @returns @c true on success, else @c false. + */ +bool mmosal_semb_give(struct mmosal_semb *semb); + +/** + * Give a binary semaphore (from ISR context). + * + * @warning May only be invoked from an ISR. + * + * @param semb The semaphore to give. + * + * @returns @c true on success, else @c false. + */ +bool mmosal_semb_give_from_isr(struct mmosal_semb *semb); + +/** + * Wait for a counting semaphore. + * + * @param semb The semaphore to wait for. + * @param timeout_ms Timeout after which to give up waiting (in milliseconds). + * + * @returns @c true if the the semaphore was taken successfully, else @c false. + */ +bool mmosal_semb_wait(struct mmosal_semb *semb, uint32_t timeout_ms); + +/** + * @} + */ + +/* + * --------------------------------------------------------------------------------------------- + */ + +/** + * @defgroup MMOSAL_QUEUE Queues (aka pipes) + * + * Provides queue support for inter-task communication. + * + * @{ + */ + +/** + * Create a new queue. + * + * @param num_items The maximum number of items that may be in the queue at a time. + * @param item_size The size of each item in the queue. + * @param name The name of the queue. + * + * @returns an opaque handle to the queue, or @c NULL on failure. + */ +struct mmosal_queue *mmosal_queue_create(size_t num_items, size_t item_size, const char *name); + +/** + * Delete a queue. + * + * @param queue handle of the queue to delete. + */ +void mmosal_queue_delete(struct mmosal_queue *queue); + +/** + * Pop an item from the queue. + * + * @warning May not be invoked from an ISR. + * + * @param queue The queue to pop from. + * @param item Pointer to memory to receive the popped item. The item will be copied into + * this memory. The memory size must match the @c item_size given at creation. + * @param timeout_ms Timeout after which to give up waiting for an item if the queue is empty + * (in milliseconds). + * + * @returns @c true if an item was successfully popped, else @c false. + */ +bool mmosal_queue_pop(struct mmosal_queue *queue, void *item, uint32_t timeout_ms); + +/** + * Push an item into the queue. + * + * @warning May not be invoked from an ISR. + * + * @param queue The queue to push to. + * @param item Pointer to the item to push. This item will be copied into the queue. + * The size of the item must match the @c item_size given at creation. + * @param timeout_ms Timeout after which to give up waiting for space if the queue is full + * (in milliseconds). + * + * @returns @c true if an item was successfully pushed, else @c false. + */ +bool mmosal_queue_push(struct mmosal_queue *queue, const void *item, uint32_t timeout_ms); + +/** + * Pop an item from the queue (from ISR context). + * + * @warning May only be invoked from an ISR. + * + * @param queue The queue to pop from. + * @param item Pointer to memory to receive the popped item. The item will be copied into + * this memory. The memory size must match the @c item_size given at creation. + * + * @returns @c true if an item was successfully popped, else @c false. + */ +bool mmosal_queue_pop_from_isr(struct mmosal_queue *queue, void *item); + +/** + * Push an item into the queue (from ISR context). + * + * @warning May only be invoked from an ISR. + * + * @param queue The queue to push to. + * @param item Pointer to the item to push. This item will be copied into the queue. + * The size of the item must match the @c item_size given at creation. + * + * @returns @c true if an item was successfully pushed, else @c false. + */ +bool mmosal_queue_push_from_isr(struct mmosal_queue *queue, const void *item); + +/** + * @} + */ + +/* + * --------------------------------------------------------------------------------------------- + */ + +/** + * @defgroup MMOSAL_TIME Time + * + * Provides support for reading the system time. + * + * @{ + */ + +/** + * Get the system time in milliseconds. + * + * @returns the system time in milliseconds. + */ +uint32_t mmosal_get_time_ms(void); + +/** + * Get the system time in ticks. + * + * @returns the system time in ticks. + */ +uint32_t mmosal_get_time_ticks(void); + +/** + * Get the number of ticks in a second. + * + * @returns the number of ticks in a second. + */ +uint32_t mmosal_ticks_per_second(void); + +/** + * Check if time a is less than time b, taking into account wrapping. + * + * | a | b | return | + * |---------------|---------------|--------| + * | 0 | 0 | false | + * | 0 | 1 | true | + * | 1 | 0 | false | + * | @c 0xffffffff | 0 | true | + * | 0 | @c 0xffffffff | false | + * + * + * @param a time a + * @param b time b + * + * @returns true if time a < time b. + */ +static inline bool mmosal_time_lt(uint32_t a, uint32_t b) +{ + return ((int32_t)(a - b)) < 0; +} + +/** + * Check if time a is less than or equal to time b, taking into account wrapping. + * + * | a | b | return | + * |---------------|---------------|--------| + * | 0 | 0 | true | + * | 0 | 1 | true | + * | 1 | 0 | false | + * | @c 0xffffffff | 0 | true | + * | 0 | @c 0xffffffff | false | + * + * + * @param a time a + * @param b time b + * + * @returns true if time a <= time b. + */ +static inline bool mmosal_time_le(uint32_t a, uint32_t b) +{ + return ((int32_t)(a - b)) <= 0; +} + +/** + * Given two times, return the one that is greatest (taking into account wrapping). + * + * | a | b | return | + * |---------------|---------------|--------| + * | 0 | 0 | 0 | + * | 0 | 1 | 1 | + * | 1 | 0 | 1 | + * | @c 0xffffffff | 0 | 0 | + * | 0 | @c 0xffffffff | 0 | + * + * @param a time a + * @param b time b + * + * @returns a if time a >= time b else b. + */ +static inline uint32_t mmosal_time_max(uint32_t a, uint32_t b) +{ + if (mmosal_time_lt(a, b)) { + return b; + } else { + return a; + } +} + +/** + * Check if the given time has already passed. i.e the system time is greater than the given time. + * + * @param t The time to check. + * + * @return @c true if the given time has passed, else @c false. + */ +static inline bool mmosal_time_has_passed(uint32_t t) +{ + return mmosal_time_le(t, mmosal_get_time_ms()); +} + +/** + * @} + */ + +/* + * --------------------------------------------------------------------------------------------- + */ + +/** + * @defgroup MMOSAL_TIMER Timers + * + * Provides support for RTOS timers. + * + * @note The timer service must have a priority higher than @ref MMOSAL_TASK_PRI_HIGH. This is + * because tasks may yield to allow the timer service to execute. In some RTOS implementations + * if there are no other tasks at a higher or equal priority to the task that calls @ref + * mmosal_task_yield() then the RTOS scheduler will simply select the task that called + * @ref mmosal_task_yield() to run again. + * + * @{ + */ + +/** Timer opaque handler data type. */ +struct mmosal_timer; + +/** + * Function type definition for timer callbacks. + * + * @param timer The timer that triggered the callback. + */ +typedef void (*timer_callback_t)(struct mmosal_timer *timer); + +/** + * Create a new timer. + * + * @param name The name of the timer. + * @param timer_period_ms The period of the timer in milliseconds. + * @param auto_reload If @c true then the timer will automatically be reloaded when + * it expires. + * @param arg Void pointer that can be used to store a value for the timer callback. + * Pass NULL if unused. + * @param callback Callback to be triggered when the timer expires. + * + * @returns an opaque handle to the timer, or @c NULL on failure. + * + * @warning Ensure that the timer callback function does not block or cause the calling task to + * be placed in a blocked state. + */ +struct mmosal_timer *mmosal_timer_create(const char *name, uint32_t timer_period_ms, bool auto_reload, void *arg, + timer_callback_t callback); + +/** + * Delete a timer. + * + * @param timer The timer to delete. + */ +void mmosal_timer_delete(struct mmosal_timer *timer); + +/** + * Start a timer. + * + * @param timer The timer to start. + * + * @returns @c true if the timer was started successfully, else @c false. + */ +bool mmosal_timer_start(struct mmosal_timer *timer); + +/** + * Stop a timer. + * + * @param timer The timer to stop. + * + * @returns @c true if the timer was stopped successfully, else @c false. + */ +bool mmosal_timer_stop(struct mmosal_timer *timer); + +/** + * Change timer period. + * + * @warning May not be invoked from an ISR. + * + * @param timer The timer to assign the new period. + * @param new_period Period to assign to the timer. + * + * @returns @c true if the timer period was stopped change, else @c false. + */ +bool mmosal_timer_change_period(struct mmosal_timer *timer, uint32_t new_period); + +/** + * Get the opaque argument associated with a given timer. + * + * @param timer The timer to retrieve the argument from. + * + * @returns void pointer to the argument. + */ +void *mmosal_timer_get_arg(struct mmosal_timer *timer); + +/** + * Queries the timer to determine if it running. + * + * @param timer The timer to retrieve the argument from. + * + * @returns @c true if the timer is running, else @c false. + */ +bool mmosal_is_timer_active(struct mmosal_timer *timer); + +/** + * @} + */ + +/* + * --------------------------------------------------------------------------------------------- + */ + +/** + * @defgroup MMOSAL_ASSERT Assertions and failure handling + * + * Provides support for assertions and logging failure data. + * + * @{ + */ + +#ifndef MMOSAL_FILEID +/** File identifier: if not provided by compiler then define to zero. */ +#define MMOSAL_FILEID 0 +#endif + +/** Data structure used to store information about a failure that can be preserved across reset. */ +struct mmosal_failure_info { + /** Content of the PC register at assertion. */ + uint32_t pc; + /** Content of the LR register at assertion. */ + uint32_t lr; + /** File identifier. */ + uint32_t fileid; + /** Source code line at which the assertion was triggered. */ + uint32_t line; + /** Arbitrary platform-specific failure info. + * Will be zeroes in the case of assertion failure. */ + uint32_t platform_info[4]; +}; + +/** + * Log failure information in a way that it is preserved across reboots so that it can be + * available for postmortem analysis. + * + * @param info Failure information to log. + */ +void mmosal_log_failure_info(const struct mmosal_failure_info *info); + +#ifdef MMOSAL_NO_DEBUGLOG +/** Empty logging handler. */ +#define MMOSAL_LOG_FAILURE_INFO(...) +#else +/** Initialize a mmosal_failure_info struct based on current state and invoke + * mmosal_log_failure_info(). */ +#define MMOSAL_LOG_FAILURE_INFO(...) \ + do { \ + void *pc; \ + struct mmosal_failure_info info = { \ + .lr = (uint32_t)MMPORT_GET_LR(), \ + .fileid = MMOSAL_FILEID, \ + .line = __LINE__, \ + .platform_info = {__VA_ARGS__}, \ + }; \ + MMPORT_GET_PC(pc); \ + info.pc = (uint32_t)pc; \ + mmosal_log_failure_info(&info); \ + } while (0) +#endif + +/** + * Assertion handler implementation. + * + * @note This function does not return. + */ +void mmosal_impl_assert(void); + +#ifndef MMOSAL_NOASSERT +/** + * Assert that the given expression evaluates to true and abort execution if not. + * + * @param expr Expression to evaluation. If it evaluates to @c false then the assertion handler + * will be triggered. + */ +#ifndef MMOSAL_ASSERT +#define MMOSAL_ASSERT(expr) \ + do { \ + if (!(expr)) { \ + MMOSAL_LOG_FAILURE_INFO(0); \ + mmosal_impl_assert(); \ + while (1) { \ + } \ + } \ + } while (0) +#endif + +/** + * Assert that the given expression evaluates to true and abort execution if not. + * + * @param expr Expression to evaluation. If it evaluates to @c false then the assertion handler + * will be triggered. + * @param ... Up to 4 32-bit unsigned integers to log. + */ +#ifndef MMOSAL_ASSERT_LOG_DATA +#define MMOSAL_ASSERT_LOG_DATA(expr, ...) \ + do { \ + if (!(expr)) { \ + MMOSAL_LOG_FAILURE_INFO(__VA_ARGS__); \ + mmosal_impl_assert(); \ + while (1) { \ + } \ + } \ + } while (0) +#endif +#else +/** Empty assertion handler. */ +#define MMOSAL_ASSERT(expr) (void)(expr) +/** Empty assertion handler. */ +#define MMOSAL_ASSERT_LOG_DATA(expre, ...) (void)(expr) +#endif + +/** @} */ + +/** + * @defgroup MMOSAL_MISC Miscellaneous functions + * + * @{ + */ + +/** + * A safer version of @c strncpy. + * + * Up to `size - 1` bytes will be copied from @p src to @p dst and the result will be + * null-terminated. + * + * @param dst The buffer to copy the string into. + * @param src The source string. This must be null-terminated. + * @param size The size of the @p dst buffer. + * + * @returns true if the string was truncated else false (note that a size of 0 will always result + * this function returning true). + */ +static inline bool mmosal_safer_strcpy(char *dst, const char *src, size_t size) +{ + bool ret; + + if (size == 0) { + return true; + } + + strncpy(dst, src, size); + + ret = dst[size - 1] != '\0'; + dst[size - 1] = '\0'; + return ret; +} + +/** @} */ + +#ifdef __cplusplus +} +#endif + +/** @} */ diff --git a/lib/MorseWlan/include/mmpkt.h b/lib/MorseWlan/include/mmpkt.h new file mode 100644 index 000000000..cf08a16aa --- /dev/null +++ b/lib/MorseWlan/include/mmpkt.h @@ -0,0 +1,515 @@ +/* + * Copyright 2022-2024 Morse Micro + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/** + * @defgroup MMPKT Morse Micro Packet Buffer (mmpkt) API + * + * This API provides support for buffers tailored towards packets. + * + * @{ + */ + +#pragma once + +#include +#include +#include + +#include "mmosal.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * Round @p x up to the next multiple of @p m (where @p m is a power of 2). + * + * @warning @p m must be a power of 2. + */ +#ifndef MM_FAST_ROUND_UP +#define MM_FAST_ROUND_UP(x, m) ((((x)-1) | ((m)-1)) + 1) +#endif + +struct mmdrv_cmd_metadata; +struct mmdrv_tx_metadata; +struct mmdrv_rx_metadata; +struct mmpkt_ops; + +/** + * Union of pointer types for mmpkt metadata. + * + * The metadata is accessed through one of these pointers, depending on which context the packet + * is being used in. + */ +union mmpkt_metadata_ptr { + /** Opaque pointer for contexts which are unaware of the specific metadata structure. */ + void *opaque; + /** Metadata for a packet which is being transmitted. */ + struct mmdrv_tx_metadata *tx; + /** Metadata for a packet which is being received. */ + struct mmdrv_rx_metadata *rx; + /** Control block for a command response sent to the host. */ + struct mmdrv_cmd_metadata *cmd; +}; + +/** + * Core mmpkt data structure. + * + * @note The contents of this data structure should never need to be accessed directly. Rather + * the various functions provided as part of this API should be used. + * + * @code + * +----------------------------------------------------------+--------------+ + * | RESERVED | Data | RESERVED | METADATA | + * +----------------------------------------------------------+--------------+ + * ^ ^ ^ ^ + * | | | | + * | |<-----------data_len--------->| | + * | start_offset | + * | | + * |<-----------------------buf_len-------------------------->| + * buf + * @endcode + */ +struct mmpkt { + /** The buffer where data is stored. */ + uint8_t *buf; + /** Length of the buffer. */ + uint32_t buf_len; + /** Offset where actual data starts in the buffer. */ + uint32_t start_offset; + /** Length of actual data in the buffer. */ + uint32_t data_len; + /** Packet metadata used by driver (context dependent). */ + union mmpkt_metadata_ptr metadata; + /** Reference to operations data structure for this mmpkt. */ + const struct mmpkt_ops *ops; + /** Pointer that can be used to construct linked lists. */ + struct mmpkt *volatile next; +}; + +/** Operations data structure for mmpkt. */ +struct mmpkt_ops { + /** Free the given mmpkt. */ + void (*free_mmpkt)(void *mmpkt); +}; + +/** + * Opened view of an mmpkt. + * + * In this implementation, this structure does not actually exist. We only use it as a pointer type + * which is incompatible with @ref mmpkt, to distinguish between functions which operate on opened + * packet views versus functions which can operate on unopened packets. + * + * In other implementations of this API, packets must be "opened" (mapped into memory) before their + * contents can be accessed. Thus the distinction between opened and unopened packets is important + * for those implementations. + */ +struct mmpktview; + +/** + * Initialize an mmpkt header with the given values. + * + * @param mmpkt mmpkt to initialize. + * @param buf Pointer to buffer. + * @param buf_len Length of @p buf. + * @param data_start_offset Initial value for @c start_offset. + * @param ops Operations data structure. + */ +static inline void mmpkt_init(struct mmpkt *mmpkt, uint8_t *buf, uint32_t buf_len, uint32_t data_start_offset, + const struct mmpkt_ops *ops) +{ + memset(mmpkt, 0, sizeof(*mmpkt)); + mmpkt->buf = buf; + mmpkt->buf_len = buf_len; + mmpkt->start_offset = data_start_offset; + mmpkt->ops = ops; +} + +/** + * Initialize an mmpkt in a single buffer using the given values. + * + * @param buf Pointer to buffer. + * @param buf_len Length of @p buf. + * @param space_at_start Amount of space to reserve at start of buffer. + * @param space_at_end Amount of space to reserve at end of buffer. + * @param metadata_size Size of metadata (0 for no metadata). + * + * @param ops Operations data structure. + * + * @note @p buf_len must be large enough to contain the @c mmkpt header, the data buffer + * (rounded up to the nearest 4 bytes) and metadata (rounded up to the nearest 4 bytes). + * + * @returns a pointer to the initialized @c mmpkt (will be the same address as @p buf) or @c NULL + * on error (@p buf length too short). + */ +static inline struct mmpkt *mmpkt_init_buf(uint8_t *buf, uint32_t buf_len, uint32_t space_at_start, uint32_t space_at_end, + uint32_t metadata_size, const struct mmpkt_ops *ops) +{ + struct mmpkt *mmpkt = (struct mmpkt *)buf; + + uint8_t *data_start; + uint32_t header_size = MM_FAST_ROUND_UP(sizeof(*mmpkt), 4); + uint32_t data_len = MM_FAST_ROUND_UP(space_at_start + space_at_end, 4); + metadata_size = MM_FAST_ROUND_UP(metadata_size, 4); + + if (header_size + data_len + metadata_size > buf_len) { + return NULL; + } + + data_start = ((uint8_t *)mmpkt) + header_size; + + mmpkt_init(mmpkt, data_start, data_len, space_at_start, ops); + + if (metadata_size != 0) { + mmpkt->metadata.opaque = data_start + data_len; + memset(mmpkt->metadata.opaque, 0, metadata_size); + } + + return mmpkt; +} + +/** + * Allocate a new mmpkt on the heap (using @ref mmosal_malloc()). + * + * @param space_at_start Amount of space to reserve at start of buffer. + * @param space_at_end Amount of space to reserve at end of buffer. + * @param metadata_size Size of metadata (0 for no metadata). + * + * @note @c start_offset will be set to @p space_at_start, and @c buf_len will be the sum + * of @p space_at_start and @p space_at_end (rounded up to a multiple of 4). + * + * @returns newly allocated mmpkt on success or @c NULL on failure. + */ +struct mmpkt *mmpkt_alloc_on_heap(uint32_t space_at_start, uint32_t space_at_end, uint32_t metadata_size); + +/** + * Release a reference to the given mmpkt. If this was the last reference (@c addition_ref_cnt + * was 0) then the mmpkt will be freed using the appropriate op callback. + * + * @param mmpkt The mmpkt to release reference to. May be @c NULL. + */ +void mmpkt_release(struct mmpkt *mmpkt); + +/** + * Open a view of the given mmpkt. + * + * Packets must be opened before the contents of their buffer can be accessed. Most of the + * functions below expect to be passed an opened view of a packet to operate on. + * + * The view must be closed by calling @ref mmpkt_close() before the packet is released by + * @ref mmpkt_release(). + * + * @param mmpkt The mmpkt to be opened. + * + * @returns a pointer representing the opened view. + */ +static inline struct mmpktview *mmpkt_open(struct mmpkt *mmpkt) +{ + return (struct mmpktview *)mmpkt; +} + +/** + * Close the given view. + * + * @param[in,out] view Pointer to a variable holding the view to be closed. + * This will be modified to indicate it is no longer valid. + */ +static inline void mmpkt_close(struct mmpktview **view) +{ + (void)(view); +} + +/** + * Get the underlying mmpkt from an opened view. + * + * @param view View of an mmpkt. + * + * @returns the underlying mmpkt. + */ +static inline struct mmpkt *mmpkt_from_view(struct mmpktview *view) +{ + return (struct mmpkt *)view; +} + +/** + * Gets a pointer to the start of the data in the mmpkt. + * + * @param view The opened mmpkt to operate on. + * + * @returns a pointer to the start of the data in the mmpkt. + */ +static inline uint8_t *mmpkt_get_data_start(struct mmpktview *view) +{ + struct mmpkt *mmpkt = (struct mmpkt *)view; + return mmpkt->buf + mmpkt->start_offset; +} + +/** + * Gets a pointer to the end of the data in the mmpkt. + * + * @param view The opened mmpkt to operate on. + * + * @returns a pointer to the end of the data in the mmpkt. + */ +static inline uint8_t *mmpkt_get_data_end(struct mmpktview *view) +{ + struct mmpkt *mmpkt = (struct mmpkt *)view; + return mmpkt->buf + mmpkt->start_offset + mmpkt->data_len; +} + +/** + * Peek the length of the data currently from an unopened mmpkt. + * + * @param mmpkt The unopened mmpkt to operate on. + * + * @returns the length of the data currently in the mmpkt (note that this is different from the + * length of the available buffer space). + */ +static inline uint32_t mmpkt_peek_data_length(struct mmpkt *mmpkt) +{ + return mmpkt->data_len; +} + +/** + * Gets the length of the data currently in the mmpkt. + * + * @param view The opened mmpkt to operate on. + * + * @returns the length of the data currently in the mmpkt (note that this is different from the + * length of the available buffer space). + */ +static inline uint32_t mmpkt_get_data_length(struct mmpktview *view) +{ + struct mmpkt *mmpkt = (struct mmpkt *)view; + return mmpkt->data_len; +} + +/** + * Returns the amount of space available for prepending to the data in the buffer. + * + * @param view The opened mmpkt to operate on. + * + * @returns the available space in bytes. + */ +static inline uint32_t mmpkt_available_space_at_start(struct mmpktview *view) +{ + struct mmpkt *mmpkt = (struct mmpkt *)view; + return mmpkt->start_offset; +} + +/** + * Returns the amount of space available for appending to the data in the buffer. + * + * @param view The opened mmpkt to operate on. + * + * @returns the available space in bytes. + */ +static inline uint32_t mmpkt_available_space_at_end(struct mmpktview *view) +{ + struct mmpkt *mmpkt = (struct mmpkt *)view; + return mmpkt->buf_len - (mmpkt->start_offset + mmpkt->data_len); +} + +/** + * Reserves space immediately before the data currently in the given mmpkt and returns + * a pointer to this space. + * + * For a function that also copies data in, see @ref mmpkt_prepend_data(). + * + * @warning @p len must be less than or equal to @ref mmpkt_available_space_at_start(). + * + * @param view The opened mmpkt to operate on. + * @param len Length of data to be prepended. + * + * @returns a pointer to the place in the buffer where the data should be put. + */ +static inline uint8_t *mmpkt_prepend(struct mmpktview *view, uint32_t len) +{ + struct mmpkt *mmpkt = (struct mmpkt *)view; + MMOSAL_ASSERT(len <= mmpkt_available_space_at_start(view)); + mmpkt->start_offset -= len; + mmpkt->data_len += len; + return mmpkt->buf + mmpkt->start_offset; +} + +/** + * Prepends the given data to the data already in the mmpkt. + * + * @warning @p len must be less than or equal to @ref mmpkt_available_space_at_start(). + * + * @warning The memory area pointed to by data must not overlap with the mmpkt data. + * + * @param view The opened mmpkt to operate on. + * @param data The data to be prepended. + * @param len Length of data to be prepended. + */ +static inline void mmpkt_prepend_data(struct mmpktview *view, const uint8_t *data, uint32_t len) +{ + uint8_t *dest = mmpkt_prepend(view, len); + memcpy(dest, data, len); +} + +/** + * Reserves space immediately after the data currently in the given mmpkt and returns + * a pointer to this space. + * + * For a function that also copies data in, see @ref mmpkt_append_data(). + * + * @warning @p len must be less than or equal to @ref mmpkt_available_space_at_end(). + * + * @param view The opened mmpkt to operate on. + * @param len Length of data to be append. + * + * @returns a pointer to the place in the buffer where the data should be put. + */ +static inline uint8_t *mmpkt_append(struct mmpktview *view, uint32_t len) +{ + struct mmpkt *mmpkt = (struct mmpkt *)view; + uint8_t *ret = mmpkt_get_data_end(view); + MMOSAL_ASSERT(len <= mmpkt_available_space_at_end(view)); + mmpkt->data_len += len; + return ret; +} + +/** + * Appends the given data to the data already in the mmpkt. + * + * @warning @p len must be less than or equal to @ref mmpkt_available_space_at_start(). + * + * @param view The opened mmpkt to operate on. + * @param data The data to be prepended. + * @param len Length of data to be prepended. + */ +static inline void mmpkt_append_data(struct mmpktview *view, const uint8_t *data, uint32_t len) +{ + uint8_t *dest = mmpkt_append(view, len); + memcpy(dest, data, len); +} + +/** + * Retrieve a reference to the metadata associated with the given mmpkt. + * + * @param mmpkt The mmpkt to operate on. + * + * @returns a reference to the mmpkt metadata. + */ +static inline union mmpkt_metadata_ptr mmpkt_get_metadata(struct mmpkt *mmpkt) +{ + return mmpkt->metadata; +} + +/** + * Remove data from the start of the mmpkt. + * + * @param view The opened mmpkt to operate on. + * @param len Length of data to remove. + * + * @returns a pointer to the removed data or NULL if the mmpkt data length was less than @p len. + */ +static inline uint8_t *mmpkt_remove_from_start(struct mmpktview *view, uint32_t len) +{ + struct mmpkt *mmpkt = (struct mmpkt *)view; + uint8_t *ret; + + if (mmpkt_get_data_length(view) < len) { + return NULL; + } + + ret = mmpkt_get_data_start(view); + + mmpkt->start_offset += len; + mmpkt->data_len -= len; + + return ret; +} + +/** + * Remove data from the end of the mmpkt. + * + * @param view The opened mmpkt to operate on. + * @param len Length of data to remove. + * + * @returns a pointer to the removed data or NULL if the mmpkt data length was less than @p len. + */ +static inline uint8_t *mmpkt_remove_from_end(struct mmpktview *view, uint32_t len) +{ + struct mmpkt *mmpkt = (struct mmpkt *)view; + uint8_t *ret; + + if (mmpkt_get_data_length(view) < len) { + return NULL; + } + + ret = mmpkt_get_data_end(view) - len; + + mmpkt->data_len -= len; + + return ret; +} + +/** + * Truncate the mmpkt data to the given length. + * + * @param mmpkt mmpkt to operate on. + * @param len New data length. (Must be less than or equal to the data length + * of the mmpkt). + */ +static inline void mmpkt_truncate(struct mmpkt *mmpkt, uint32_t len) +{ + MMOSAL_ASSERT(len <= mmpkt->data_len); + mmpkt->data_len = len; +} + +/** + * Get the `next` pointer embedded in the mmpkt. + * + * Used by the mmpkt_list structure for making linked lists of mmpkts. + * + * @param mmpkt The mmpkt to operate on. + * + * @returns pointer to the next mmpkt in the chain (may be NULL). + */ +static inline struct mmpkt *mmpkt_get_next(struct mmpkt *mmpkt) +{ + return mmpkt->next; +} + +/** + * Set the `next` pointer embedded in the mmpkt. + * + * Used by the mmpkt_list structure for making linked lists of mmpkts. + * + * @param mmpkt The mmpkt to operate on. + * @param next The next mmpkt in the chain. + */ +static inline void mmpkt_set_next(struct mmpkt *mmpkt, struct mmpkt *next) +{ + mmpkt->next = next; +} + +/** + * Check whether the given pointer is pointing inside the mmpkt's buffer. + * + * @note This checks against the full buffer, which includes any unused regions at the beginning and + * end of the buffer which do not contain valid packet data. + * + * @param view The opened mmpkt to operate on. + * @param ptr The pointer to check. + * + * @returns true if the pointer points into the buffer. + */ +static inline bool mmpkt_contains_ptr(struct mmpktview *view, const void *ptr) +{ + struct mmpkt *mmpkt = (struct mmpkt *)view; + return ((const uint8_t *)ptr >= &mmpkt->buf[0] && (const uint8_t *)ptr < &mmpkt->buf[mmpkt->buf_len]); +} + +#ifdef __cplusplus +} +#endif + +/** @} */ diff --git a/lib/MorseWlan/include/mmpkt_list.h b/lib/MorseWlan/include/mmpkt_list.h new file mode 100644 index 000000000..312db3ffc --- /dev/null +++ b/lib/MorseWlan/include/mmpkt_list.h @@ -0,0 +1,172 @@ +/* + * Copyright 2022-2024 Morse Micro + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/** + * @ingroup MMPKT + * + * @{ + */ + +#pragma once + +#include + +#include "mmpkt.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** Structure that can be used as the head of a linked list of mmpkts that counts its length. */ +struct mmpkt_list { + /** First mmpkt in the list. */ + struct mmpkt *volatile head; + /** Last mmpkt in the list. */ + struct mmpkt *volatile tail; + /** Length of the list. */ + volatile uint32_t len; +}; + +/** Static initializer for @ref mmpkt_list. */ +#define MMPKT_LIST_INIT \ + { \ + NULL, NULL, 0 \ + } + +/** + * Initialization function for @ref mmpkt_list, for cases where @c MMPKT_LIST_INIT + * cannot be used. + * + * @param list The mmpkt_list to init. + */ +static inline void mmpkt_list_init(struct mmpkt_list *list) +{ + list->head = NULL; + list->tail = NULL; + list->len = 0; +} + +/** + * Add an mmpkt to the start of an mmpkt list. + * + * @param list The list to prepend to. + * @param mmpkt The mmpkt to prepend. + */ +void mmpkt_list_prepend(struct mmpkt_list *list, struct mmpkt *mmpkt); + +/** + * Add an mmpkt to the end of an mmpkt list. + * + * @param list The list to append to. + * @param mmpkt The mmpkt to append. + */ +void mmpkt_list_append(struct mmpkt_list *list, struct mmpkt *mmpkt); + +/** + * Remove an mmpkt from an mmpkt list. + * + * @param list The list to remove from. + * @param mmpkt The mmpkt to remove. + */ +void mmpkt_list_remove(struct mmpkt_list *list, struct mmpkt *mmpkt); + +/** + * Remove the mmpkt at the head of the list and return it. + * + * @param list The list to dequeue from. + * + * @returns the dequeued mmpkt, or @c NULL if the list is empty. + */ +struct mmpkt *mmpkt_list_dequeue(struct mmpkt_list *list); + +/** + * Remove the mmpkt at the tail of the list and return it. + * + * @param list The list to dequeue from. + * + * @returns the dequeued mmpkt, or @c NULL if the list is empty. + */ +struct mmpkt *mmpkt_list_dequeue_tail(struct mmpkt_list *list); + +/** + * Remove all mmpkts from the list and return as a linked list. + * + * @param list The list to dequeue from. + * + * @returns the dequeued mmpkts, or @c NULL if the list is empty. + */ +static inline struct mmpkt *mmpkt_list_dequeue_all(struct mmpkt_list *list) +{ + struct mmpkt *head = list->head; + list->head = NULL; + list->tail = NULL; + list->len = 0; + return head; +} + +/** + * Checks whether the given mmpkt list is empty. + * + * @param list The list to check. + * + * @returns @c true if the list is empty, else @c false. + */ +static inline bool mmpkt_list_is_empty(struct mmpkt_list *list) +{ + return (list->head == NULL); +} + +/** + * Returns the head of the mmpkt list. + * + * @param list The list to peek into. + * + * @returns the mmpkt at the head of the list. + */ +static inline struct mmpkt *mmpkt_list_peek(struct mmpkt_list *list) +{ + return list->head; +} + +/** + * Returns the tail of the mmpkt list. + * + * @param list The list to peek into. + * + * @returns the mmpkt at the tail of the list. + */ +static inline struct mmpkt *mmpkt_list_peek_tail(struct mmpkt_list *list) +{ + return list->tail; +} + +/** + * Free all the packets in the given list and reset the list to empty state. + * + * @param list The list to clear. + */ +void mmpkt_list_clear(struct mmpkt_list *list); + +/** + * Safely walk the mmpkt list. + * + * @warning This macro cannot be used following an if statement with no parentheses if there + * is an else clause. For example, do not do: + * `if (x) MMPKT_LIST_WALK(a,b,c) else foo();` -- instead: + * `if (x) { MMPKT_LIST_WALK(a,b,c) } else foo();` + */ +#define MMPKT_LIST_WALK(_lst, _wlk, _nxt) \ + if ((_lst)->head != NULL) /* NOLINT(readability/braces) */ \ + for (_wlk = (_lst)->head, _nxt = mmpkt_get_next(_wlk); _wlk != NULL; \ + _wlk = _nxt, _nxt = _wlk ? mmpkt_get_next(_wlk) : NULL) + +#ifdef __cplusplus +} +#endif + +/** + * @} + */ diff --git a/lib/MorseWlan/include/mmwlan.h b/lib/MorseWlan/include/mmwlan.h new file mode 100644 index 000000000..f6c69dccf --- /dev/null +++ b/lib/MorseWlan/include/mmwlan.h @@ -0,0 +1,2178 @@ +/* + * Copyright 2021-2024 Morse Micro + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/** + * @defgroup MMWLAN Morse Micro Wireless LAN (mmwlan) API + * + * Wireless LAN control and datapath. + * + * @warning Aside from specific exceptions, the functions in this API must not be called + * concurrently (e.g., from different thread contexts). The exception to this + * is the TX API (@ref mmwlan_tx() and @ref mmwlan_tx_tid()). + * + * @section MMWLAN_THREADS Thread priorities + * + * The following table documents the threads created by the Morse WLAN driver and Upper MAC + * included in morselib. + * + * | Thread | Thread Name | Priority | + * | ----------------- | ----------------------- | ------------------------- | + * | SPI driver | @c spi_irq | @ref MMOSAL_TASK_PRI_HIGH | + * | Morse driver | @c drv | @ref MMOSAL_TASK_PRI_HIGH | + * | WLAN event loop | @c evtloop | @ref MMOSAL_TASK_PRI_HIGH | + * | Morse health check| @c health | @ref MMOSAL_TASK_PRI_LOW | + * + * Note that to get the best performance, the WLAN driver/UMAC threads run at a high priority + * while it is expected that application threads run at a lower priority. + * + * @{ + */ + +#pragma once + +#include +#include +#include +#include +#include + +#include "mmpkt.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** Enumeration of status return codes. */ +enum mmwlan_status { + /** The operation was successful. */ + MMWLAN_SUCCESS, + /** The operation failed with an unspecified error. */ + MMWLAN_ERROR, + /** The operation failed due to an invalid argument. */ + MMWLAN_INVALID_ARGUMENT, + /** Functionality is temporarily unavailable. */ + MMWLAN_UNAVAILABLE, + /** Unable to proceed because channel list has not been set. + * @see mmwlan_set_channel_list(). */ + MMWLAN_CHANNEL_LIST_NOT_SET, + /** Failed due to memory allocation failure. */ + MMWLAN_NO_MEM, + /** Failed due to timeout */ + MMWLAN_TIMED_OUT, + /** Used to indicate that a call to @ref mmwlan_sta_disable() did not shutdown + * the transceiver. */ + MMWLAN_SHUTDOWN_BLOCKED, + /** Attempted to tune to a channel that was not in the regulatory database or not supported. */ + MMWLAN_CHANNEL_INVALID, + /** The request could not be completed because the given resource was not found. */ + MMWLAN_NOT_FOUND, + /** Indicates that the operation failed because the UMAC was not running (e.g., the + * device was not booted). */ + MMWLAN_NOT_RUNNING, +}; + +/** Maximum allowable length of an SSID. */ +#define MMWLAN_SSID_MAXLEN (32) + +/** Maximum allowable length of a passphrase when connecting to an AP. */ +#define MMWLAN_PASSPHRASE_MAXLEN (100) + +/** Maximum allowable Restricted Access Window (RAW) priority for STA. */ +#define MMWLAN_RAW_MAX_PRIORITY (7) + +/** Length of a WLAN MAC address. */ +#define MMWLAN_MAC_ADDR_LEN (6) + +/** Maximum allowable number of EC Groups. */ +#define MMWLAN_MAX_EC_GROUPS (4) + +/** Size of an 802.11 OUI element in octets. */ +#define MMWLAN_OUI_SIZE (3) + +/** Default Background scan short interval in seconds. + * Setting to 0 will disable background scanning. */ +#define DEFAULT_BGSCAN_SHORT_INTERVAL_S (0) + +/** Default Background scan signal threshold in dBm. */ +#define DEFAULT_BGSCAN_THRESHOLD_DBM (0) + +/** Default Background scan long interval in seconds. + * Setting to 0 will disable background scanning. */ +#define DEFAULT_BGSCAN_LONG_INTERVAL_S (0) + +/** Default Target Wake Time (TWT) interval in micro seconds. */ +#define DEFAULT_TWT_WAKE_INTERVAL_US (300000000) + +/** Default min Target Wake Time (TWT) duration in micro seconds. */ +#define DEFAULT_TWT_MIN_WAKE_DURATION_US (65280) + +/** + * The maximum length of a user-specified payload (bytes) for Standby status + * frames. + */ +#define MMWLAN_STANDBY_STATUS_FRAME_USER_PAYLOAD_MAXLEN (64) + +/** The maximum allowed length of a user filter to apply to wake frames */ +#define MMWLAN_STANDBY_WAKE_FRAME_USER_FILTER_MAXLEN (64) + +/** Enumeration of supported security types. */ +enum mmwlan_security_type { + /** Open (no security) */ + MMWLAN_OPEN, + /** Opportunistic Wireless Encryption (OWE) */ + MMWLAN_OWE, + /** Simultaneous Authentication of Equals (SAE) */ + MMWLAN_SAE, +}; + +/** Enumeration of supported 802.11 power save modes. */ +enum mmwlan_ps_mode { + /** Power save disabled */ + MMWLAN_PS_DISABLED, + /** Power save enabled */ + MMWLAN_PS_ENABLED +}; + +/** Enumeration of Protected Management Frame (PMF) modes (802.11w). */ +enum mmwlan_pmf_mode { + /** Protected management frames must be used */ + MMWLAN_PMF_REQUIRED, + /** No protected management frames */ + MMWLAN_PMF_DISABLED +}; + +/** Enumeration of Centralized Authentication Control (CAC) modes. */ +enum mmwlan_cac_mode { + /** CAC disabled */ + MMWLAN_CAC_DISABLED, + /** CAC enabled */ + MMWLAN_CAC_ENABLED +}; + +/** + * Enumeration of Target Wake Time (TWT) modes. + * + * @note TWT is only supported as a requester. + */ +enum mmwlan_twt_mode { + /** TWT disabled */ + MMWLAN_TWT_DISABLED, + /** TWT enabled as a requester */ + MMWLAN_TWT_REQUESTER, + /** TWT enabled as a responder */ + MMWLAN_TWT_RESPONDER +}; + +/** Enumeration of Target Wake Time (TWT) setup commands. */ +enum mmwlan_twt_setup_command { + /** TWT setup request command */ + MMWLAN_TWT_SETUP_REQUEST, + /** TWT setup suggest command */ + MMWLAN_TWT_SETUP_SUGGEST, + /** TWT setup demand command */ + MMWLAN_TWT_SETUP_DEMAND +}; + +/** + * @defgroup MMWLAN_REGDB WLAN Regulatory Database API + * + * @{ + */ + +/** + * If either the global or s1g operating class is set to this, the operating class will + * not be checked when associating to an AP. + */ +#define MMWLAN_SKIP_OP_CLASS_CHECK -1 + +/** Regulatory domain information about an S1G channel. */ +struct mmwlan_s1g_channel { + /** Center frequency of the channel (in Hz). */ + uint32_t centre_freq_hz; + /** STA Duty Cycle (in 100th of %). */ + uint16_t duty_cycle_sta; + /** Boolean indicating whether to omit control response frames from duty cycle. */ + bool duty_cycle_omit_ctrl_resp; + /** Global operating class. If @ref MMWLAN_SKIP_OP_CLASS_CHECK, check is skipped */ + int16_t global_operating_class; + /** S1G operating class. If @ref MMWLAN_SKIP_OP_CLASS_CHECK, check is skipped */ + int16_t s1g_operating_class; + /** S1G channel number. */ + uint8_t s1g_chan_num; + /** Channel operating bandwidth (in MHz). */ + uint8_t bw_mhz; + /** Maximum transmit power (EIRP in dBm). */ + int8_t max_tx_eirp_dbm; + /** The length of time to close the tx window between packets (in microseconds). */ + uint32_t pkt_spacing_us; + /** The minimum packet airtime duration to trigger spacing (in microseconds). */ + uint32_t airtime_min_us; + /** The maximum allowable packet airtime duration (in microseconds). */ + uint32_t airtime_max_us; +}; + +/** A list of S1G channels supported by a given regulatory domain. */ +struct mmwlan_s1g_channel_list { + /** Two character country code (null-terminated) used to identify the regulatory domain. */ + uint8_t country_code[3]; + /** The number of channels in the list. */ + unsigned num_channels; + /** The channel data. */ + const struct mmwlan_s1g_channel *channels; +}; + +/** + * Regulatory database data structure. This is a list of @c mmwlan_s1g_channel_list structs, where + * each channel list corresponds to a regulatory domain. + */ +struct mmwlan_regulatory_db { + /** Number of regulatory domains in the database. */ + unsigned num_domains; + + /** The regulatory domain data */ + const struct mmwlan_s1g_channel_list **domains; +}; + +/** + * Look up the given country code in the regulatory database and return the matching channel + * list if found. + * + * @param db The regulatory database. + * @param country_code Country code to look up. + * + * @returns the matching channel list if found, else NULL. + */ +static inline const struct mmwlan_s1g_channel_list *mmwlan_lookup_regulatory_domain(const struct mmwlan_regulatory_db *db, + const char *country_code) +{ + unsigned ii; + + if (db == NULL) { + return NULL; + } + + for (ii = 0; ii < db->num_domains; ii++) { + const struct mmwlan_s1g_channel_list *channel_list = db->domains[ii]; + if (channel_list->country_code[0] == country_code[0] && channel_list->country_code[1] == country_code[1]) { + return channel_list; + } + } + return NULL; +} + +/** + * Set the list of channels that are supported by the regulatory domain in which the device + * resides. + * + * @note Must be invoked after WLAN initialization (see @ref mmwlan_init()) but only when inactive + * (i.e., STA not enabled). + * + * @warning This function takes a reference to the given channel list. It expects the channel + * list to remain valid in memory as long as WLAN is in use, or until a new channel + * list is configured. + * + * @param channel_list The channel list to set. The list must remain valid in memory. + * + * @return @ref MMWLAN_SUCCESS if the channel list was valid and updated successfully, + * @ref MMWLAN_UNAVAILABLE if the WLAN subsystem was currently active. + */ +enum mmwlan_status mmwlan_set_channel_list(const struct mmwlan_s1g_channel_list *channel_list); + +/** @} */ + +/** + * @defgroup MMWLAN_CTRL WLAN Control API + * + * @{ + */ + +/** Maximum length of the Morselib version string. */ +#define MMWLAN_MORSELIB_VERSION_MAXLEN (32) +/** Maximum length of the firmware version string. */ +#define MMWLAN_FW_VERSION_MAXLEN (32) + +/** Structure for retrieving version information from the mmwlan subsystem. */ +struct mmwlan_version { + /** Morselib version string. Null terminated. */ + char morselib_version[MMWLAN_MORSELIB_VERSION_MAXLEN]; + /** Morse transceiver firmware version string. Null terminated. */ + char morse_fw_version[MMWLAN_FW_VERSION_MAXLEN]; + /** Morse transceiver chip ID. */ + uint32_t morse_chip_id; +}; + +/** + * Retrieve version information from morselib and the connected Morse transceiver. + * + * @param version The data structure to fill out with version information. + * + * @note If the Morse transceiver has not previously been powered on then the @c fw_version + * field of @p version will be set to a zero length string. + * + * @returns @c MMWLAN_SUCCESS on success else an error code. + */ +enum mmwlan_status mmwlan_get_version(struct mmwlan_version *version); + +/** Maximum length of a BCF board description string (excluding null terminator). */ +#define MMWLAN_BCF_BOARD_DESC_MAXLEN (31) +/** Maximum length of a BCF build version string (excluding null terminator). */ +#define MMWLAN_BCF_BUILD_VERSION_MAXLEN (31) + +/** Board configuration file (BCF) metadata. */ +struct mmwlan_bcf_metadata { + /** BCF semantic version. */ + struct { + /** Major version field. */ + uint16_t major; + /** Minor version field. */ + uint8_t minor; + /** Patch version field. */ + uint8_t patch; + } version; + + /** + * Board description string. This is a free form text field included in the BCF. + * + * This string will be null-terminated and if it exceeds @ref MMWLAN_BCF_BOARD_DESC_MAXLEN + * characters in length it will be truncated. + */ + char board_desc[MMWLAN_BCF_BOARD_DESC_MAXLEN + 1]; + + /** + * Build version string. + * + * This string will be null-terminated and if it exceeds @ref MMWLAN_BCF_BOARD_DESC_MAXLEN + * characters in length it will be truncated. + */ + char build_version[MMWLAN_BCF_BUILD_VERSION_MAXLEN + 1]; +}; + +/** + * Read the metadata from the board configuration file (BCF)r. + * + * @param metadata Pointer to a metadata data structure to be filled out on success. + * + * @returns @c MMWLAN_SUCCESS on success else an error code. + */ +enum mmwlan_status mmwlan_get_bcf_metadata(struct mmwlan_bcf_metadata *metadata); + +/** + * Override the maximum TX power. If no override is specified then the maximum TX power used + * will be the maximum TX power allowed for the channel in the current regulatory domain. + * + * @note Must be invoked after WLAN initialization (see @ref mmwlan_init()). Only takes + * effect when switching channel (e.g., during scan or AP connection procedure). + * + * @note This will not increase the TX power over the maximum allowed for the current channel + * in the configured regulatory domain. Therefore, this override in effect will only + * reduce the maximum TX power and cannot increase it. + * + * @param tx_power_dbm The maximum TX power override to set (in dBm). Set to zero to disable + * the override. + * + * @return @ref MMWLAN_SUCCESS if the country code was valid and updated successfully, + * @ref MMWLAN_UNAVAILABLE if the WLAN subsystem was currently active. + */ +enum mmwlan_status mmwlan_override_max_tx_power(uint16_t tx_power_dbm); + +/** + * Set the RTS threshold. + * + * When packets larger than the RTS threshold are transmitted they are protected by an RTS/CTS + * exchange. + * + * @param rts_threshold The RTS threshold (in octets) to set, or 0 to disable. + * + * @return @ref MMWLAN_SUCCESS on success, else an appropriate error code. + */ +enum mmwlan_status mmwlan_set_rts_threshold(unsigned rts_threshold); + +/** + * Sets whether or not Short Guard Interval (SGI) support is enabled. Defaults to enabled + * if not set otherwise. + * + * @note This will not force use of SGI, only enable support for it. The rate control algorithm + * will make the decision as to which guard interval to use unless explicitly overridden + * by @ref mmwlan_ate_override_rate_control(). + * + * @note This must only be invoked when MMWLAN is inactive (i.e., STA mode not enabled). + * + * @param sgi_enabled Boolean value indicating whether SGI support should be enabled. + * + * @return @ref MMWLAN_SUCCESS on success, else an appropriate error code. + */ +enum mmwlan_status mmwlan_set_sgi_enabled(bool sgi_enabled); + +/** + * Sets whether or not sub-band support is enabled for transmit. Defaults to enabled + * if not set otherwise. + * + * @note This will not force use of sub-bands, only enable support for it. The rate control + * algorithm will make the decision as to which bandwidth to use unless explicitly overridden + * by @ref mmwlan_ate_override_rate_control(). + * + * @note This must only be invoked when MMWLAN is inactive (i.e., STA mode not enabled). + * + * @param subbands_enabled Boolean value indicating whether sub-band support should be enabled. + * + * @return @ref MMWLAN_SUCCESS on success, else an appropriate error code. + */ +enum mmwlan_status mmwlan_set_subbands_enabled(bool subbands_enabled); + +/** + * Sets whether or not the 802.11 power save is enabled. Defaults to @ref MMWLAN_PS_ENABLED + * + * @param mode enum indicating which 802.11 power save mode to use. + * + * @return @ref MMWLAN_SUCCESS on success, else an appropriate error code. + */ +enum mmwlan_status mmwlan_set_power_save_mode(enum mmwlan_ps_mode mode); + +/** + * Sets whether or not Aggregated MAC Protocol Data Unit (A-MPDU) support is enabled. + * This defaults to enabled, if not set otherwise. + * + * @note This must only be invoked when MMWLAN is inactive (i.e., STA mode not enabled). + * + * @param ampdu_enabled Boolean value indicating whether AMPDU support should be enabled. + * + * @return @ref MMWLAN_SUCCESS on success, else an appropriate error code. + */ +enum mmwlan_status mmwlan_set_ampdu_enabled(bool ampdu_enabled); + +/** + * Minimum value of fragmentation threshold that can be set with + * @ref mmwlan_set_fragment_threshold(). + */ +#define MMWLAN_MINIMUM_FRAGMENT_THRESHOLD (256) + +/** + * Set the Fragmentation threshold. + * + * Maximum length of the frame, beyond which packets must be fragmented into two or more frames. + * + * @note Even if the fragmentation threshold is set to 0 (disabled), fragmentation may still occur + * if a given packet is too large to be transmitted at the selected rate. + * + * @warning Setting a fragmentation threshold may have unintended side effects due to restrictions + * at lower bandwidths and MCS rates. In normal operation the fragmentation threshold + * should be disabled, in which case packets will be fragmented automatically as necessary + * based on the selected rate. + * + * @param fragment_threshold The fragmentation threshold (in octets) to set, + * or zero to disable the fragmentation threshold. Minimum value + * (if not zero) is given by @ref MMWLAN_MINIMUM_FRAGMENT_THRESHOLD. + * + * @return @ref MMWLAN_SUCCESS on success, else an appropriate error code. + */ +enum mmwlan_status mmwlan_set_fragment_threshold(unsigned fragment_threshold); + +/** + * Scan configuration data structure. + * + * Use @ref MMWLAN_SCAN_CONFIG_INIT for initialization. For example: + * + * @code{.c} + * struct mmwlan_scan_config scan_config = MMWLAN_SCAN_CONFIG_INIT; + * @endcode + * + * @see mmwlan_set_scan_config() + */ +struct mmwlan_scan_config { + /** + * Set the per-channel dwell time to use for scans that are requested internally within the + * mmwlan driver (e.g., when connecting or background scanning). + * + * @note This does not affect scans requested with the @ref mmwlan_scan_request(). + */ + uint32_t dwell_time_ms; +}; + +/** Initializer for @ref mmwlan_scan_config. */ +#define MMWLAN_SCAN_CONFIG_INIT \ + { \ + MMWLAN_SCAN_DEFAULT_DWELL_TIME_MS \ + } + +/** + * Update the scan configuration with the given settings. + * + * @param config The new configuration to set. + * + * @return @ref MMWLAN_SUCCESS on success, else an appropriate error code. + */ +enum mmwlan_status mmwlan_set_scan_config(const struct mmwlan_scan_config *config); + +/** Structure for storing Target Wake Time (TWT) configuration arguments. */ +struct mmwlan_twt_config_args { + /** Target Wake Time (TWT) modes, @ref mmwlan_twt_mode. */ + enum mmwlan_twt_mode twt_mode; + /** + * TWT service period interval in micro seconds. + * This parameter will be ignored if @c twt_wake_interval_mantissa or + * @c twt_wake_interval_exponent is non-zero. + */ + uint64_t twt_wake_interval_us; + /** + * TWT Wake interval mantissa + * If non-zero, this parameter will be used to calculate @c twt_wake_interval_us. + */ + uint16_t twt_wake_interval_mantissa; + /** + * TWT Wake interval exponent + * If non-zero, this parameter will be used to calculate @c twt_wake_interval_us. + */ + uint8_t twt_wake_interval_exponent; + /** Minimum TWT wake duration in micro seconds. */ + uint32_t twt_min_wake_duration_us; + /** TWT setup command, @ref mmwlan_twt_setup_command. */ + enum mmwlan_twt_setup_command twt_setup_command; +}; + +/** + * Initializer for @ref mmwlan_twt_config_args. + * + * For example: + * + * @code{c} + * struct mmwlan_twt_config_args twt_config_args = MMWLAN_TWT_CONFIG_ARGS_INIT; + * @endcode + */ +#define MMWLAN_TWT_CONFIG_ARGS_INIT \ + { \ + MMWLAN_TWT_DISABLED, DEFAULT_TWT_WAKE_INTERVAL_US, 0, 0, DEFAULT_TWT_MIN_WAKE_DURATION_US, MMWLAN_TWT_SETUP_REQUEST \ + } + +/** + * Add configurations for Target Wake Time (TWT). + * + * @note This is used to add TWT configuration for a new TWT agreement. + * This function should be invoked before @ref mmwlan_sta_enable. + * + * @param twt_config_args TWT configuration arguments @ref mmwlan_twt_config_args. + * + * @return @ref MMWLAN_SUCCESS on success, else an appropriate error code. + */ +enum mmwlan_status mmwlan_twt_add_configuration(const struct mmwlan_twt_config_args *twt_config_args); + +/** + * Arguments data structure for @ref mmwlan_boot(). + * + * This structure should be initialized using @ref MMWLAN_BOOT_ARGS_INIT for sensible + * default values, particularly for forward compatibility with new releases that may add + * new fields to the struct. For example: + * + * @note This struct currently does not include any sensible arguments yet, and is provided + * for forwards compatibility with potential future API extensions. + * + * @code{.c} + * enum mmwlan_status status; + * struct mmwlan_boot_args boot_args = MMWLAN_BOOT_ARGS_INIT; + * // HERE: initialize arguments + * status = mmwlan_boot(&boot_args); + * @endcode + */ +struct mmwlan_boot_args { + /** Note this field should not be used and will be removed in future. */ + uint8_t reserved; +}; + +/** + * Initializer for @ref mmwlan_boot_args. + * + * @see mmwlan_boot_args + */ +#define MMWLAN_BOOT_ARGS_INIT \ + { \ + 0 \ + } + +/** + * Boot the Morse Micro transceiver and leave it in an idle state. + * + * @note In general, it is not necessary to use this function as @ref mmwlan_sta_enable() + * will automatically boot the chip if required. It may be used, for example, to power + * on the chip for production test, etc. + * + * @warning Channel list must be set before booting the transceiver. @ref mmwlan_set_channel_list(). + * + * @param args Boot arguments. May be @c NULL, in which case default values will be used. + * + * @return @ref MMWLAN_SUCCESS on success, else an appropriate error code. + */ +enum mmwlan_status mmwlan_boot(const struct mmwlan_boot_args *args); + +/** + * Perform a clean shutdown of the Morse Micro transceiver, including cleanly disconnecting + * from a connected AP, if necessary. + * + * Has no effect if the transceiver is already shutdown. + * + * @return @ref MMWLAN_SUCCESS on success, else an appropriate error code. + */ +enum mmwlan_status mmwlan_shutdown(void); + +/** + * Enumeration of states in STA mode. + */ +enum mmwlan_sta_state { + MMWLAN_STA_DISABLED, + MMWLAN_STA_CONNECTING, + MMWLAN_STA_CONNECTED, +}; + +/** + * Enumeration of S1G non-AP STA types. + */ +enum mmwlan_station_type { + MMWLAN_STA_TYPE_SENSOR = 0x01, + MMWLAN_STA_TYPE_NON_SENSOR = 0x02, +}; + +/** Result of the scan request. */ +struct mmwlan_scan_result { + /** RSSI of the received frame. */ + int16_t rssi; + /** Pointer to the BSSID field within the Probe Response frame. */ + const uint8_t *bssid; + /** Pointer to the SSID within the SSID IE of the Probe Response frame. */ + const uint8_t *ssid; + /** Pointer to the start of the Information Elements within the Probe Response frame. */ + const uint8_t *ies; + /** Value of the Beacon Interval field. */ + uint16_t beacon_interval; + /** Value of the Capability Information field. */ + uint16_t capability_info; + /** Length of the Information Elements (@c ies). */ + uint16_t ies_len; + /** Length of the SSID (@c ssid). */ + uint8_t ssid_len; + /** Center frequency in Hz of the channel where the frame was received. */ + uint32_t channel_freq_hz; + /** Bandwidth, in MHz, where the frame was received. */ + uint8_t bw_mhz; + /** Operating bandwidth, in MHz, of the access point. */ + uint8_t op_bw_mhz; + /** TSF timestamp in the Probe Response frame. */ + uint64_t tsf; +}; + +/** mmwlan scan rx callback function prototype. */ +typedef void (*mmwlan_scan_rx_cb_t)(const struct mmwlan_scan_result *result, void *arg); + +/** STA status callback function prototype. */ +typedef void (*mmwlan_sta_status_cb_t)(enum mmwlan_sta_state sta_state); + +/** + * Arguments data structure for @ref mmwlan_sta_enable(). + * + * This structure should be initialized using @ref MMWLAN_STA_ARGS_INIT for sensible + * default values, particularly for forward compatibility with new releases that may add + * new fields to the struct. For example: + * + * @code{.c} + * enum mmwlan_status status; + * struct mmwlan_sta_args sta_args = MMWLAN_STA_ARGS_INIT; + * // HERE: initialize arguments + * status = mmwlan_sta_enable(&sta_args); + * @endcode + */ +struct mmwlan_sta_args { + /** SSID of the AP to connect to. */ + uint8_t ssid[MMWLAN_SSID_MAXLEN]; + /** Length of the SSID. */ + uint16_t ssid_len; + /** + * BSSID of the AP to connect to. + * If non-zero, the STA will only connect to an AP that matches this value. + */ + uint8_t bssid[MMWLAN_MAC_ADDR_LEN]; + /** Type of security to use. If @c MMWLAN_SAE then a @c passphrase must be specified. */ + enum mmwlan_security_type security_type; + /** Passphrase (only used if @c security_type is @c MMWLAN_SAE, otherwise ignored. */ + char passphrase[MMWLAN_PASSPHRASE_MAXLEN + 1]; + /** Length of @c passphrase. May be zero if @c passphrase is null-terminated. */ + uint16_t passphrase_len; + /** Protected Management Frame mode to use (802.11w) */ + enum mmwlan_pmf_mode pmf_mode; + /** + * Priority used by the AP to assign a STA to a Restricted Access Window (RAW) group. + * Valid range is 0 - @ref MMWLAN_RAW_MAX_PRIORITY, or -1 to disable RAW. + */ + int16_t raw_sta_priority; + /** S1G non-AP STA type. For valid STA types, @ref mmwlan_station_type */ + enum mmwlan_station_type sta_type; + /** + * Preference list of enabled elliptic curve groups for SAE and OWE. + * By default (if this parameter is not set), the mandatory group 19 is preferred. + */ + int sae_owe_ec_groups[MMWLAN_MAX_EC_GROUPS]; + /** Whether Centralized Authentication Controlled is enabled on the STA. */ + enum mmwlan_cac_mode cac_mode; + /** + * Background scan short interval, measured in seconds. + * + * When the signal strength falls below @c bgscan_signal_threshold_dbm, this interval + * will be used between iterations of background scan. After several iterations, or + * if the signal threshold increases above @c bgscan_signal_threshold_dbm background + * scan will return to using the long interval. + * + * @note Setting this to zero will disable background scanning. + */ + uint16_t bgscan_short_interval_s; + /** + * Background scan signal strength threshold that switches between short and long intervals. + */ + int bgscan_signal_threshold_dbm; + /** + * Background scan long interval, measured in seconds. + * + * When the signal strength is above @c bgscan_signal_threshold_dbm, this interval + * will be used between iterations of background scan. If the signal threshold + * falls below @c bgscan_signal_threshold_dbm, background scan will use the short + * interval. + * + * @note Setting this to zero will disable background scanning. + */ + uint16_t bgscan_long_interval_s; + /** Optional callback for scan results which are received during the connection process. */ + mmwlan_scan_rx_cb_t scan_rx_cb; + /** Opaque argument to be passed to @ref scan_rx_cb. */ + void *scan_rx_cb_arg; +}; + +/** + * Initializer for @ref mmwlan_sta_args. + * + * @see mmwlan_sta_args + */ +#define MMWLAN_STA_ARGS_INIT \ + { \ + {0}, 0, {0}, MMWLAN_OPEN, {0}, 0, MMWLAN_PMF_REQUIRED, -1, MMWLAN_STA_TYPE_NON_SENSOR, {0}, MMWLAN_CAC_DISABLED, \ + DEFAULT_BGSCAN_SHORT_INTERVAL_S, DEFAULT_BGSCAN_THRESHOLD_DBM, DEFAULT_BGSCAN_LONG_INTERVAL_S, NULL, NULL \ + } + +/** + * Enable station mode. + * + * This will power on the transceiver then initiate connection to the given Access Point. If + * station mode is already enabled when this function is invoked then it will disconnect from + * (if already connected) and initiate connection to the given AP. + * + * @note The STA status callback (@p sta_status_cb) must not block and MMWLAN API functions + * may not be invoked from the callback. + * + * @warning Channel list must be set before enabling station mode. @ref mmwlan_set_channel_list(). + * + * @param args STA arguments (e.g., SSID, etc.). See @ref mmwlan_sta_args. + * @param sta_status_cb Optional callback to be invoked on STA state changes. May be @c NULL. + * + * @return @ref MMWLAN_SUCCESS on success, else an appropriate error code. + */ +enum mmwlan_status mmwlan_sta_enable(const struct mmwlan_sta_args *args, mmwlan_sta_status_cb_t sta_status_cb); + +/** + * Disable station mode. + * + * This will disconnect from the AP. It will also shut down the transceiver if nothing else + * is holding it open. Note that if the transceiver was booted by @c mmwlan_boot() then + * this function will shut down the transceiver. + * + * @return @ref MMWLAN_SUCCESS if successful and the transceiver was also shut down, + * @ref MMWLAN_SHUTDOWN_BLOCKED if successful and the transceiver was not shut down, + * else an appropriate error code. + */ +enum mmwlan_status mmwlan_sta_disable(void); + +/** + * Gets the current WLAN STA state. + * + * @return the current WLAN STA state. + */ +enum mmwlan_sta_state mmwlan_get_sta_state(void); + +/** Default value for @c mmwlan_scan_args.dwell_time_ms. Note that reducing the dwell time + * below this value may impact scan reliability. */ +#define MMWLAN_SCAN_DEFAULT_DWELL_TIME_MS (105) + +/** Minimum value for @c mmwlan_scan_args.dwell_time_ms. */ +#define MMWLAN_SCAN_MIN_DWELL_TIME_MS (15) + +/** + * Enumeration of states in Scan mode. + */ +enum mmwlan_scan_state { + /** Scan was successful and all channels were scanned. */ + MMWLAN_SCAN_SUCCESSFUL, + /** Scan was incomplete. One or more channels may have been scanned and therefore an + * incomplete set of scan results may still have been received. */ + MMWLAN_SCAN_TERMINATED, + /** Scanning in progress. */ + MMWLAN_SCAN_RUNNING, +}; + +/** mmwlan scan complete callback function prototype. */ +typedef void (*mmwlan_scan_complete_cb_t)(enum mmwlan_scan_state scan_state, void *arg); + +/** + * Structure to hold scan arguments. This structure should be initialized using + * @ref MMWLAN_SCAN_ARGS_INIT for forward compatibility. + */ +struct mmwlan_scan_args { + /** + * Time to dwell on a channel waiting for probe responses/beacons. + * + * @note This includes the time it takes to actually tune to the channel. + */ + uint32_t dwell_time_ms; + /** + * Extra Information Elements to include in Probe Request frames. + * May be @c NULL if @c extra_ies_len is zero. + */ + uint8_t *extra_ies; + /** Length of @c extra_ies. */ + size_t extra_ies_len; + /** + * SSID used for scan. + * May be @c NULL, with @c ssid_len set to zero for an undirected scan. + */ + uint8_t ssid[MMWLAN_SSID_MAXLEN]; + /** Length of the SSID. */ + uint16_t ssid_len; +}; + +/** + * Initializer for @ref mmwlan_scan_args. + * + * For example: + * + * @code{c} + * struct mmwlan_scan_args scan_args = MMWLAN_SCAN_ARGS_INIT; + * @endcode + */ +#define MMWLAN_SCAN_ARGS_INIT \ + { \ + MMWLAN_SCAN_DEFAULT_DWELL_TIME_MS, NULL, 0, {0}, 0 \ + } + +/** + * Structure to hold arguments specific to a given instance of a scan. + */ +struct mmwlan_scan_req { + /** Scan response receive callback. Must not be @c NULL. */ + mmwlan_scan_rx_cb_t scan_rx_cb; + /** Scan complete callback. Must not be @c NULL. */ + mmwlan_scan_complete_cb_t scan_complete_cb; + /** Opaque argument to be passed to the callbacks. */ + void *scan_cb_arg; + /** Scan arguments to be used @ref mmwlan_scan_args. */ + struct mmwlan_scan_args args; +}; + +/** + * Initializer for @ref mmwlan_scan_req. + * + * For example: + * + * @code{c} + * struct mmwlan_scan_req scan_req = MMWLAN_SCAN_REQ_INIT; + * @endcode + */ +#define MMWLAN_SCAN_REQ_INIT \ + { \ + NULL, NULL, NULL, MMWLAN_SCAN_ARGS_INIT \ + } + +/** + * Request a scan. + * + * If the transceiver is not already powered on, it will be powered on before the scan is + * initiated. The power on procedure will block this function. The transceiver will remain + * powered on after scan completion and must be shutdown by invoking @ref mmwlan_shutdown(). + * + * @note Just because a scan is requested does not mean it will happen immediately. + * It may take some time for the request to be serviced. + * + * @note The scan request may be rejected, in which case the complete callback will be + * invoked immediately with an error status. + * + * @param scan_req Scan request instance. See @ref mmwlan_scan_req. + * + * @return @ref MMWLAN_SUCCESS on success, else an appropriate error code. + */ +enum mmwlan_status mmwlan_scan_request(const struct mmwlan_scan_req *scan_req); + +/** + * Abort in progress or pending scans. + * + * The scan callback will be called back with result code @ref MMWLAN_SCAN_TERMINATED for + * all aborted scans. + * + * @return @ref MMWLAN_SUCCESS on success, else an appropriate error code. + */ +enum mmwlan_status mmwlan_scan_abort(void); + +/** + * Gets the MAC address of this device. + * + * The MAC address address comes from one of the following sources, in descending priority order: + * 1. @c mmhal_read_mac_addr() + * 2. Morse Micro transceiver + * 3. Randomly generated in the form `02:01:XX:XX:XX:XX` + * + * @note If a MAC address override is not provided (via @c mmhal_read_mac_addr()) then the + * transceiver must have been booted at least once before this function is invoked. + * + * @param mac_addr Buffer to receive the MAC address. Length must be @ref MMWLAN_MAC_ADDR_LEN. + * + * @return @ref MMWLAN_SUCCESS on success, @ref MMWLAN_UNAVAILABLE if the MAC address was not + * able to be read from the transceiver because it was not booted, else an appropriate + * error code. + */ +enum mmwlan_status mmwlan_get_mac_addr(uint8_t *mac_addr); + +/** + * Gets the station's AID + * + * @return AID of station, or 0 if not associated + */ +uint16_t mmwlan_get_aid(void); + +/** + * Gets the BSSID of the AP to which the STA is associated. + * + * @param bssid Buffer to receive the BSSID. Length must be @ref MMWLAN_MAC_ADDR_LEN. + * Will be set to 00:00:00:00:00:00 if the station is not currently associated. + * + * @return @ref MMWLAN_SUCCESS on success, else an appropriate error code. + */ +enum mmwlan_status mmwlan_get_bssid(uint8_t *bssid); + +/** + * Gets the RSSI measured from the AP. + * + * When power save is enabled, this will only be updated when traffic is received from the AP. + * + * @returns last known RSSI of the AP or INT32_MIN on error. + */ +int32_t mmwlan_get_rssi(void); + +/** @} */ + +/** + * @defgroup MMWLAN_OFFLOAD WLAN offload features + * + * @{ + * + * WLAN offload features enable offloading some high level networking features to the WLAN chip. + * Features like ARP response, ARP refresh and DHCP lease updates can be offloaded to the chip + * allowing the host processor to sleep for longer resulting in better power savings. + * + */ + +/** + * Enables ARP response offload. + * + * When enabled the chip will automatically respond to ARP requests with the specified + * IPv4 address. + * + * @note ARP offload is not supported for IPv6 addresses. + * + * @param arp_addr The IPv4 address to respond with for ARP requests for this interface. + * + * @returns @ref MMWLAN_SUCCESS on success or @ref MMWLAN_ERROR on failure. + */ +enum mmwlan_status mmwlan_enable_arp_response_offload(uint32_t arp_addr); + +/** + * Enables ARP refresh offload. + * + * When enabled the Morse chip will periodically send ARP requests to the AP to refresh + * its ARP table. This keeps this stations ARP entry from expiring. ARP response offload + * needs to be enabled first for this feature to work. + * + * @note ARP refresh offload is not supported for IPv6 addresses. + * + * @param interval_s The interval in seconds to refresh the ARP entries on the AP. + * @param dest_ip The IP to send the ARP packets to. + * @param send_as_garp If true, send as gratuitous ARP. + * + * @returns @ref MMWLAN_SUCCESS on success or @ref MMWLAN_ERROR on failure. + */ +enum mmwlan_status mmwlan_enable_arp_refresh_offload(uint32_t interval_s, uint32_t dest_ip, bool send_as_garp); + +/** + * DHCP lease info structure. + */ +struct mmwlan_dhcp_lease_info { + /** local IP address */ + uint32_t ip4_addr; + /** Netmask address */ + uint32_t mask4_addr; + /** Gateway address */ + uint32_t gw4_addr; + /** DNS address */ + uint32_t dns4_addr; +}; + +/** DHCP Lease update callback function prototype - this is called whenever a lease is updated. */ +typedef void (*mmwlan_dhcp_lease_update_cb_t)(const struct mmwlan_dhcp_lease_info *lease_info, void *arg); + +/** + * Enables DHCP offload. + * + * When enabled the Morse chip will handle DHCP discovery and lease updates automatically. + * + * @note DHCP offload is not supported for IPv6 addresses. + * + * @note The DHCP lease update callback (@p dhcp_lease_update_cb) must not block and MMWLAN API + * functions may not be invoked from the callback. + * + * @note Once enabled this feature can only be disabled by a complete system reset or by calling + * @c mmwlan_shutdown(). + * + * @param dhcp_lease_update_cb The callback to call whenever the DHCP lease is updated. + * @param arg An opaque argument to pass to @c dhcp_lease_update_cb. + * + * @returns @ref MMWLAN_SUCCESS on success or @ref MMWLAN_ERROR on failure. + */ +enum mmwlan_status mmwlan_enable_dhcp_offload(mmwlan_dhcp_lease_update_cb_t dhcp_lease_update_cb, void *arg); + +/** + * Keep-alive offload configuration options for @ref mmwlan_tcp_keepalive_offload_args.set_cfgs + * bitmap. + */ +enum mmwlan_tcp_keepalive_offload_cfg { + /** Bitmap for TCP keep alive period parameter */ + MMWLAN_TCP_KEEPALIVE_SET_CFG_PERIOD = (0x01), + /** Bitmap for TCP keep alive retry count parameter */ + MMWLAN_TCP_KEEPALIVE_SET_CFG_RETRY_COUNT = (0x02), + /** Bitmap for TCP keep alive retry interval parameter */ + MMWLAN_TCP_KEEPALIVE_SET_CFG_RETRY_INTERVAL = (0x04), + /** Bitmap for TCP keep alive source IP parameter */ + MMWLAN_TCP_KEEPALIVE_SET_CFG_SRC_IP_ADDR = (0x08), + /** Bitmap for TCP keep alive destination IP parameter */ + MMWLAN_TCP_KEEPALIVE_SET_CFG_DEST_IP_ADDR = (0x10), + /** Bitmap for TCP keep alive source port parameter */ + MMWLAN_TCP_KEEPALIVE_SET_CFG_SRC_PORT = (0x20), + /** Bitmap for TCP keep alive destination port parameter */ + MMWLAN_TCP_KEEPALIVE_SET_CFG_DEST_PORT = (0x40), + /** Bitmap for TCP keep alive timing parameters only */ + MMWLAN_TCP_KEEPALIVE_SET_CFG_TIMING_ONLY = (0x07), + /** Bitmap for all TCP keep alive parameters */ + MMWLAN_TCP_KEEPALIVE_SET_CFG_ALL = (0x7F), +}; + +/** + * Arguments data structure for TCP keep-alive arguments. + * + * This structure should be initialized using @ref MMWLAN_TCP_KEEPALIVE_OFFLOAD_ARGS_INIT + * for sensible default values, particularly for forward compatibility with new releases + * that may add new fields to the struct. For example: + * + * @code{.c} + * struct mmwlan_tcp_keepalive_offload_args args = MMWLAN_TCP_KEEPALIVE_OFFLOAD_ARGS_INIT; + * @endcode + */ +struct mmwlan_tcp_keepalive_offload_args { + /** + * A bitmap specifying which configs to set. + * See @ref mmwlan_tcp_keepalive_offload_cfg for values. + */ + uint8_t set_cfgs; + /** + * The interval in seconds to send the keep alive in. @c MMWLAN_TCP_KEEPALIVE_SET_CFG_PERIOD + * bit in @ref set_cfgs must be set if specifying this parameter + */ + uint16_t period_s; + /** Number of times to retry before giving up. @c MMWLAN_TCP_KEEPALIVE_SET_CFG_RETRY_COUNT + * bit in @ref set_cfgs must be set if specifying this parameter + */ + uint8_t retry_count; + /** The time to wait between retries in seconds. @c MMWLAN_TCP_KEEPALIVE_SET_CFG_RETRY_INTERVAL + * bit in @ref set_cfgs must be set if specifying this parameter + */ + uint8_t retry_interval_s; + /** The source IP for the keep alive packet. @c MMWLAN_TCP_KEEPALIVE_SET_CFG_SRC_IP_ADDR + * bit in @ref set_cfgs must be set if specifying this parameter + */ + uint32_t src_ip; + /** The source port for the keep alive packet. @c MMWLAN_TCP_KEEPALIVE_SET_CFG_SRC_PORT + * bit in @ref set_cfgs must be set if specifying this parameter + */ + uint16_t src_port; + /** The destination IP for the keep alive packet. @c MMWLAN_TCP_KEEPALIVE_SET_CFG_DEST_IP_ADDR + * bit in @ref set_cfgs must be set if specifying this parameter + */ + uint32_t dest_ip; + /** The destination port for the keep alive packet. @c MMWLAN_TCP_KEEPALIVE_SET_CFG_SRC_PORT + * bit in @ref set_cfgs must be set if specifying this parameter + */ + uint16_t dest_port; +}; + +/** + * Initializer for @ref mmwlan_tcp_keepalive_offload_args. + * + * @see mmwlan_tcp_keepalive_offload_args + */ +#define MMWLAN_TCP_KEEPALIVE_OFFLOAD_ARGS_INIT \ + { \ + 0 \ + } + +/** + * Enables TCP keep-alive offload. + * + * When enabled the Morse chip will periodically send TCP keep-alive packets to the destination + * even when the host processor is in standby mode. This function needs to be called before + * opening a TCP connection. + * + * @note TCP keep-alive offload will only be applied to the first TCP connection matching the + * given configuration that is opened after this function is called. + * + * @note TCP keep-alive offload is not supported for IPv6 addresses. + * + * @param args A pointer to arguments of @c struct @c mmwlan_tcp_keepalive_offload_args. + * + * @returns @ref MMWLAN_SUCCESS on success or @ref MMWLAN_ERROR on failure. + */ +enum mmwlan_status mmwlan_enable_tcp_keepalive_offload(const struct mmwlan_tcp_keepalive_offload_args *args); + +/** + * Disables the TCP keep-alive offload feature. + * + * Has no effect if TCP keep-alive offload is not enabled. + * + * @returns @ref MMWLAN_SUCCESS on success or @ref MMWLAN_ERROR on failure. + */ +enum mmwlan_status mmwlan_disable_tcp_keepalive_offload(void); + +/** + * If this bit is set in the flags parameter of @ref mmwlan_config_whitelist then any active + * whitelist filters are cleared, + */ +#define MMWLAN_WHITELIST_FLAGS_CLEAR 0x01 + +/** + * Whitelist filter configuration + */ +struct mmwlan_config_whitelist { + /** Flags - clear any active whitelist filters if bit 0 is set */ + uint8_t flags; + /** The IP protocol to match - 6 for TCP, 17 for UDP, 0 for any */ + uint8_t ip_protocol; + /** The @c LLC protocol to match - 0x0800 for IPv4 and 0x86DD for IPv6, 0 for any */ + uint16_t llc_protocol; + /** The IPv4 source address to match, 0.0.0.0 for any. */ + uint32_t src_ip; + /** The IPv4 destination address to match, 0.0.0.0 for any - this is usually our IP address */ + uint32_t dest_ip; + /** The netmask to apply to the source or destination IP, 0.0.0.0 for any */ + uint32_t netmask; + /** The source TCP or UDP port to match, 0 for any */ + uint16_t src_port; + /** The destination TCP or UDP port to match, 0 for any */ + uint16_t dest_port; +}; + +/** + * Sets and enables the IP whitelist filter. + * + * The IP whitelist filter specifies which incoming IP packets can wake the host from standby. + * The filter can be used to specify parameters such as source or destination IP addresses to + * match on, source or destination ports and even IP layer (Such as TCP, ICMP or UDP) or @c LLC + * layer (Such as IPv4 or IPv6) protocols. If any filter parameter is set to 0, then it is + * excluded from the filtering process. + * + * If the @c flags parameter is set to @c MMWLAN_WHITELIST_FLAGS_CLEAR, then all active whitelist + * filters are cleared. + * + * @note Address/port level filtering is not supported for IPv6 packets. + * + * @param whitelist The whitelist filter to set. + * + * @returns @ref MMWLAN_SUCCESS on success or @ref MMWLAN_ERROR on failure. + */ +enum mmwlan_status mmwlan_set_whitelist_filter(const struct mmwlan_config_whitelist *whitelist); + +/** @} */ + +/** + * @defgroup MMWLAN_STANDBY WLAN Standby features + * + * @ingroup MMWLAN_OFFLOAD + * + * @{ + * + * The standby mode allows the system to power off or put the host processor in a deep sleep mode + * while the Morse chip takes over certain functionality to keep the connection alive with the + * provision to wake up the host processor when certain conditions are met. + * + * When in Standby mode, the chip will: + * - Not try to communicate with the host in any way. + * - Use normal Power Save mechanisms to wake for DTIM beacons and to receive data frames when a + * DTIM beacon indicates pending data. + * - Directly respond to ARP requests if ARP offload is enabled, handle DHCP lease expiry/renewal + * if DHCP offload is enabled, and drop all other traffic other than a wake request packet from + * the access point. + * - Monitor access point reach-ability and provide status by periodically transmitting encrypted + * keep-alive frames to the access point. + * - If access point is no longer reachable, then the chip will enter a snooze mode where + * it stops listening for beacons, waking up only occasionally to see if the access point is + * reachable again. This allows the chip to conserve power when the access point is not reachable. + * + * The chip will wake the host only if one of the following occurs. + * - An encrypted Standby wake packet is received. + * - Association has been lost (indicated via a @c deauth response to a keep-alive frame from the + * access point). + * - The access point was not reachable and beacons are now detected indicating the access point + * is available again. + * - The input trigger GPIO pin on the chip was toggled indicating some on board hardware requires + * attention. + * - A TCP connection maintained by the TCP keep-alive offload feature was lost. + * + * The host will be powered on by toggling a GPIO pin, the BUSY pin is also toggled to interrupt + * the host. By offloading features like ARP response, ARP refresh, TCP keep-alive, and DHCP lease + * updates while in standby mode allows the host processor to sleep for longer resulting in better + * power savings. + */ + +/** + * Reasons we can exit standby mode. + */ +enum mmwlan_standby_exit_reason { + /** No specific reason for exiting standby mode */ + MMWLAN_STANDBY_EXIT_REASON_NONE, + /** The STA has received the wake-up frame */ + MMWLAN_STANDBY_EXIT_REASON_WAKEUP_FRAME, + /** The STA needs to (re)associate */ + MMWLAN_STANDBY_EXIT_REASON_ASSOCIATE, + /** The external input pin has fired */ + MMWLAN_STANDBY_EXIT_REASON_EXT_INPUT, + /** Whitelisted packet received */ + MMWLAN_STANDBY_EXIT_REASON_WHITELIST_PKT, + /** TCP connection lost */ + MMWLAN_STANDBY_EXIT_REASON_TCP_CONNECTION_LOST, +}; + +/** + * Standby mode callback whenever an event requiring an exit from standby mode occurs. + * + * @param reason The reason we exited standby mode. See enum @ref mmwlan_standby_exit_reason. + * @param arg An opaque pointer passed from @ref mmwlan_standby_enter() + */ +typedef void (*mmwlan_standby_exit_cb_t)(uint8_t reason, void *arg); + +/** Arguments for @ref mmwlan_standby_enter */ +struct mmwlan_standby_enter_args { + /** Callback function to call when we exit standby mode */ + mmwlan_standby_exit_cb_t standby_exit_cb; + /** Arguments to pass to callback function */ + void *standby_exit_arg; +}; + +/** + * This function puts the Morse chip into standby mode allowing the host processor to go to sleep. + * + * When in standby mode the Morse chip takes over certain functionality to keep the connection + * alive with the provision to wake up the host processor when certain conditions are met. + * Exit from standby mode can be triggered by the Morse chip under certain conditions or by the host by + * invoking @ref mmwlan_standby_exit(). Before invoking this function, standby mode parameters can be + * configured by calling @ref mmwlan_standby_set_config(), @ref mmwlan_standby_set_status_payload() and/or + * @ref mmwlan_standby_set_wake_filter() + * + * @param args A pointer to the arguments for this function. + * + * @returns @ref MMWLAN_SUCCESS on success or @ref MMWLAN_ERROR on failure. + */ +enum mmwlan_status mmwlan_standby_enter(const struct mmwlan_standby_enter_args *args); + +/** + * Forces the Morse chip to exit standby mode. + * + * here may be certain instances such as a timer expiry, which cause the host chip to wake up + * independent of the Morse chip. In such situations, the host calls this function to instruct + * the Morse chip to exit standby mode and return to normal operating mode. + * + * Triggers @ref mmwlan_standby_exit_cb_t with reason @c MMWLAN_STANDBY_EXIT_REASON_NONE. + * + * @returns @ref MMWLAN_SUCCESS on success or @ref MMWLAN_ERROR on failure. + */ +enum mmwlan_status mmwlan_standby_exit(void); + +/** Arguments for @ref mmwlan_standby_set_status_payload */ +struct mmwlan_standby_set_status_payload_args { + /** User data to append to the standby status packets */ + uint8_t payload[MMWLAN_STANDBY_STATUS_FRAME_USER_PAYLOAD_MAXLEN]; + /** + * The length of the payload in bytes. + * See @ref MMWLAN_STANDBY_STATUS_FRAME_USER_PAYLOAD_MAXLEN for maximum payload length. + */ + uint32_t payload_len; +}; + +/** + * Sets the user payload in the standby status packet. + * + * Once standby mode is enabled, the Morse chip will periodically emit a UDP packet of the + * following format regardless of whether it is in standby or not. The UDP packet + * will also be sent immediately upon entering or exiting Standby mode. + * + * @code + * +----------------------+----------------------+--------------------------------+---------+ + * | Morse OUI (0c:bf:74) | Type: Standby (0x01) | Awake (0x00) or Standby (0x01) | Payload | + * +----------------------+----------------------+--------------------------------+---------+ + * @endcode + * + * @note The payload is optional and is not present if this function is not called. + * + * @param args A pointer to the arguments for this function. + * + * @returns @ref MMWLAN_SUCCESS on success or @ref MMWLAN_ERROR on failure. + */ +enum mmwlan_status mmwlan_standby_set_status_payload(const struct mmwlan_standby_set_status_payload_args *args); + +/** Arguments for @ref mmwlan_standby_set_wake_filter */ +struct mmwlan_standby_set_wake_filter_args { + /** Data to match with for filtering */ + uint8_t filter[MMWLAN_STANDBY_WAKE_FRAME_USER_FILTER_MAXLEN]; + /** + * The length of the filter data in bytes. + * See @ref MMWLAN_STANDBY_WAKE_FRAME_USER_FILTER_MAXLEN for maximum filter length. + */ + uint32_t filter_len; + /** The offset within the packet to search for the filter match */ + uint32_t offset; +}; + +/** + * Configures the standby mode UDP wake packet filter. + * + * The system can be woken up from standby mode by sending it a UDP wake packet of the following + * format. If a wake filter is set using this function then the wake packet will only wake up + * the system if the specified filter pattern matches the payload at the specified offset within + * the payload. + * + * The wake packet has the following format: + * @code + * +----------------------+----------------------+----------------+--------------------+ + * | Morse OUI (0c:bf:74) | Type: Standby (0x01) | Wake up (0x02) | Payload (optional) | + * +----------------------+----------------------+----------------+--------------------+ + * @endcode + * + * @note If a wake filter is not configured then the system will wake on any wake packet and + * the payload (if any) is ignored. + * + * @param args A pointer to the arguments for this function. + * + * @returns @ref MMWLAN_SUCCESS on success or @ref MMWLAN_ERROR on failure. + */ +enum mmwlan_status mmwlan_standby_set_wake_filter(const struct mmwlan_standby_set_wake_filter_args *args); + +/** + * Standby mode configuration parameters. If the @ref mmwlan_standby_set_config() + * function is not called, then the defaults are as specified. + */ +struct mmwlan_standby_config { + /** Interval in seconds for transmitting Standby status packets. (Default 15s) */ + uint32_t notify_period_s; + /** Source IP address to use for the standby status packets. (Default 0.0.0.0) */ + uint32_t src_ip; + /** Destination IP address for the standby status packets. (Default 0.0.0.0) */ + uint32_t dst_ip; + /** + * Destination UDP Port for the standby status packets, also used the source port for + * outgoing UDP port for outgoing UDP packets. (Default 22000) + */ + uint16_t dst_port; + /** + * The interval in seconds to wait after beacon loss before entering snooze. In + * snooze mode the chip stops listening for beacons to save power. (Default 120s) + */ + uint32_t bss_inactivity_before_snooze_s; + /** + * The interval in seconds to wake periodically from snooze and check for beacons. + * If no beacons are found then the chip will re-enter snooze. If beacons are found + * then the chip will exit standby mode so the host can re-associate. (Default 60s) + */ + uint32_t snooze_period_s; + /** + * The amount in seconds to increase successive snooze intervals. This saves power + * by sleeping for longer before checking for beacons again if no beacons are found. + * (Default 0s) + */ + uint32_t snooze_increment_s; + /** The maximum time in seconds to snooze for after increments. (Default @c UINT32_MAX) */ + uint32_t snooze_max_s; +}; + +/** + * Sets the configuration for standby mode. + * + * @param config A pointer to the configuration structure. See @ref mmwlan_standby_config. + * + * @returns @ref MMWLAN_SUCCESS on success or @ref MMWLAN_ERROR on failure. + */ +enum mmwlan_status mmwlan_standby_set_config(const struct mmwlan_standby_config *config); + +/** @} */ + +/** + * @defgroup MMWLAN_WNM WNM Sleep management + * + * @{ + * + * @note It is highly recommended to refer to Morse Micro App Note 04 on WNM sleep for a more + * detailed explanation on how this feature works. + * + * WNM sleep is an extended power save mode in which the STA need not listen for every DTIM beacon + * and need not perform rekey, allowing the STA to remain associated and reduce power consumption + * when it has no traffic to send or receive from the AP. While a STA is in WNM sleep it will be + * unable to communicate with the AP, and thus any traffic for the STA may be buffered or dropped + * at the discretion of the AP while the STA is in WNM sleep. + * + * @note WNM sleep can only be entered after the STA is associated to the AP. The AP must also + * support WNM sleep. + * + * When entry to WNM sleep is enabled via this API, the STA sends a request to the AP and after + * successful negotiation, the chip is either put into a lower power mode or powered down + * completely, depending on arguments given when WNM sleep mode was enabled. The datapath is paused + * during this time. If the STA does not successfully negotiate with the AP to enter WNM Sleep, it + * will return an error code and the chip will not enter a low power mode. + * + * When WNM sleep is disabled, the chip returns to normal operation and sends a request to the AP + * to exit WNM sleep. Note that the chip will exit low power mode regardless of whether or not the + * exit request was successful. WNM sleep will be exited if @ref mmwlan_shutdown or + * @ref mmwlan_sta_disable is invoked. + * + * If the AP takes down the link, then the station will be unaware until it sends the WNM Sleep + * exit request. At that point the AP will send a de-authentication frame with reason code + * "non-associated station". After validating this is actually the AP the station was connected + * to, the station will bring down the connection and return @ref MMWLAN_ERROR. The station will + * attempt to re-associate but will not re-enter WNM sleep. The application needs to enable WNM + * sleep again via this API if required. + * + * A high level overview of enabling and disabling WNM sleep is shown below. + * + * @include{doc} wnm_sleep_overview.puml + */ + +/** Structure for storing WNM sleep extended arguments. */ +struct mmwlan_set_wnm_sleep_enabled_args { + /** Boolean indicating whether WNM sleep is enabled. */ + bool wnm_sleep_enabled; + /** Boolean indicating whether chip should be powered down during WNM sleep. */ + bool chip_powerdown_enabled; +}; + +/** + * Initializer for @ref mmwlan_set_wnm_sleep_enabled_args. + * + * For example: + * + * @code{c} + * struct mmwlan_set_wnm_sleep_enabled_args wnm_sleep_args = MMWLAN_SET_WNM_SLEEP_ENABLED_ARGS_INIT; + * @endcode + */ +#define MMWLAN_SET_WNM_SLEEP_ENABLED_ARGS_INIT \ + { \ + false, false \ + } + +/** + * Sets extended WNM sleep mode. + * + * Provides an extended interface for setting WNM sleep. See @ref mmwlan_set_wnm_sleep_enabled_args + * for parameter details. If WNM sleep mode is enabled then the transceiver will sleep across + * multiple DTIM periods until WNM sleep mode is disabled. This allows the transceiver to use less + * power with the caveat that it will not wake up for group- or individually-addressed traffic. If + * a group rekey occurs while the device is in WNM sleep it will be applied when the device exits + * WNM sleep. + * + * @note Data should not be queued for transmission (using, e.g., @ref mmwlan_tx()) during + * WNM sleep. + * @note 802.11 power save must be enabled for any benefit to be obtained + * (see @ref mmwlan_set_power_save_mode()). + * @note Negotiation with the AP is required to enter WNM sleep. As such the transceiver will only + * be placed into low power mode when a connection has been establish and the AP has accepted + * the request to enter WNM sleep. This will automatically be handled within mmwlan once WNM + * sleep mode is enabled. + * + * @param args WNM sleep arguments - see @ref mmwlan_set_wnm_sleep_enabled_args. + * + * @return @ref MMWLAN_SUCCESS on success, MMWLAN_UNAVAILABLE if already requested, + * else an appropriate error code. + * @ref MMWLAN_TIMED_OUT if the maximum retry request reached. For WNM sleep exit request, + * this means that the device exited WNM sleep but failed to inform the AP. + */ +enum mmwlan_status mmwlan_set_wnm_sleep_enabled_ext(const struct mmwlan_set_wnm_sleep_enabled_args *args); + +/** + * Sets whether WNM sleep mode is enabled. + * + * If WNM sleep mode is enabled then the transceiver will sleep across multiple DTIM periods + * until WNM sleep mode is disabled. This allows the transceiver to use less power with the + * caveat that it will not wake up for group- or individually-addressed traffic. If a group + * rekey occurs while the device is in WNM sleep it will be applied when the device exits + * WNM sleep. + * + * @note Data should not be queued for transmission (using, e.g., @ref mmwlan_tx()) during + * WNM sleep. + * @note 802.11 power save must be enabled for any benefit to be obtained + * (see @ref mmwlan_set_power_save_mode()). + * @note Negotiation with the AP is required to enter WNM sleep. As such the transceiver will only + * be placed into low power mode when a connection has been establish and the AP has accepted + * the request to enter WNM sleep. This will automatically be handled within mmwlan once WNM + * sleep mode is enabled. + * + * @param wnm_sleep_enabled Boolean indicating whether WNM sleep is enabled. + * + * @return @ref MMWLAN_SUCCESS on success, MMWLAN_UNAVAILABLE if already requested, + * else an appropriate error code. + * @ref MMWLAN_TIMED_OUT if the maximum retry request reached. For WNM sleep exit request, + * this means that the device exited WNM sleep but failed to inform the AP. + */ +static inline enum mmwlan_status mmwlan_set_wnm_sleep_enabled(bool wnm_sleep_enabled) +{ + struct mmwlan_set_wnm_sleep_enabled_args wnm_sleep_args = MMWLAN_SET_WNM_SLEEP_ENABLED_ARGS_INIT; + wnm_sleep_args.wnm_sleep_enabled = wnm_sleep_enabled; + return mmwlan_set_wnm_sleep_enabled_ext(&wnm_sleep_args); +} + +/** + * @} + */ + +/** + * @defgroup MMWLAN_BEACON_VENDOR_IE_FILTER_API Beacon Vendor Specific IE Filter API + * + * @{ + * + * This API enables access to Vendor Specific information elements (IEs) in beacons. The application + * can register a callback to be executed if Vendor Specific IEs containing one of the specified + * Organizational Unique Identifiers (OUIs). Up to @ref MMWLAN_BEACON_VENDOR_IE_MAX_OUI_FILTERS can + * be specified. + */ + +/** Max number of OUIs supported in vendor IE OUI filter, @ref mmwlan_beacon_vendor_ie_filter. */ +#define MMWLAN_BEACON_VENDOR_IE_MAX_OUI_FILTERS (5) + +/** + * Beacon vendor ie filter callback function prototype. + * + * @param ies Reference to the list of information elements (little endian order) present in + * the beacon that matched the filter. + * @param ies_len Length of the IE list in octets. + * @param arg Reference to the opaque argument provided with the filter. + */ +typedef void (*mmwlan_beacon_vendor_ie_filter_cb_t)(const uint8_t *ies, uint32_t ies_len, void *arg); + +/** 24-bit OUI type. */ +typedef uint8_t mmwlan_oui_t[MMWLAN_OUI_SIZE]; + +/** Structure for storing beacon vendor ie filter parameter. */ +struct mmwlan_beacon_vendor_ie_filter { + /** + * Callback that will be executed upon reception of a beacon containing a Vendor Specific + * information element that has an OUI that matches this filter. Must not be @c NULL. + * + * @note This is executed in the MMWLAN main processing loop. As such, processing within the + * callback itself should be kept as short as possible. If extensive processing is done within + * the callback this could have an impact on throughput and/or connection stability. + */ + mmwlan_beacon_vendor_ie_filter_cb_t cb; + /** Opaque argument to be passed to the callbacks. */ + void *cb_arg; + /** Number of OUIs contained within @ref ouis. This can be @ref + * MMWLAN_BEACON_VENDOR_IE_MAX_OUI_FILTERS max. */ + uint8_t n_ouis; + /** List of OUIs to filter on. */ + mmwlan_oui_t ouis[MMWLAN_BEACON_VENDOR_IE_MAX_OUI_FILTERS]; +}; + +/** + * Function to update the filter used to pass beacon back. + * + * @note This will block until the filter has been installed or some error has occurred. + * + * @param filter Reference to the filter to use. This must reside in memory and not be modified + * until after the filter is **successfully** cleared. To clear the filter pass @c + * NULL here. + * + * @return @ref MMWLAN_SUCCESS on success, else an appropriate error code. + */ +enum mmwlan_status mmwlan_update_beacon_vendor_ie_filter(const struct mmwlan_beacon_vendor_ie_filter *filter); + +/** @} */ + +/* + * --------------------------------------------------------------------------------------------- + */ + +/** + * @defgroup MMWLAN_INIT WLAN Initialization/Deinitialization API + * + * @note If using LWIP, this API is invoked by the LWIP @c netif for MMWLAN, and thus does not + * need to be used directly by the application. + * + * @{ + */ + +/** + * Initialize the MMWLAN subsystem. + * + * @warning @ref mmhal_init() must be called before this function is executed. + */ +void mmwlan_init(void); + +/** + * Deinitialize the MMWLAN subsystem, freeing any allocated memory. + * + * Must not be called while there is any activity in progress (e.g., while connected). + * + * @warning @ref mmwlan_shutdown must be called before executing this function. + */ +void mmwlan_deinit(void); + +/** @} */ + +/** + * @defgroup MMWLAN_HEALTH WLAN Health check API + * + * @{ + */ + +/** + * The default minimum interval to wait after the last health check before triggering another. + * If this is 0 then health checks will always happen at the + * @ref MMWLAN_DEFAULT_MAX_HEALTH_CHECK_INTERVAL_MS value. + * @ref MMWLAN_DEFAULT_MIN_HEALTH_CHECK_INTERVAL_MS must always be less than or equal to + * @ref MMWLAN_DEFAULT_MAX_HEALTH_CHECK_INTERVAL_MS. + */ +#define MMWLAN_DEFAULT_MIN_HEALTH_CHECK_INTERVAL_MS 60000 + +/** + * The default maximum interval to wait after the last health check before triggering another. + * If this parameter is 0 then periodic health checks will be disabled. + * @ref MMWLAN_DEFAULT_MIN_HEALTH_CHECK_INTERVAL_MS must always be less than or equal to + * @ref MMWLAN_DEFAULT_MAX_HEALTH_CHECK_INTERVAL_MS. Set this to @c UINT32_MAX to have the + * maximum unbounded. + */ +#define MMWLAN_DEFAULT_MAX_HEALTH_CHECK_INTERVAL_MS 120000 + +/** + * Specify the periodic health check intervals. + * + * The system will always schedule the periodic health check for the @c max_interval_ms + * interval. It will however monitor system activity and opportunistically perform health + * checks after @c min_interval_ms time has passed and some activity was detected. If no + * activity was detected then the health check will be performed after @c max_interval_ms + * as originally scheduled. Every time the health check is performed, the next one will be + * rescheduled to occur after @c max_interval_ms. If both @c min_interval_ms and + * @c max_interval_ms are set to 0, then periodic health checks will be disabled. + * + * @param min_interval_ms The minimum interval to wait after the last health check before + * triggering another. If this parameter is 0 then health checks will + * always happen at the @c max_interval_ms value. @c min_interval_ms + * must always be less than or equal to @c max_interval_ms. + * + * @param max_interval_ms The maximum interval to wait after the last health check before + * triggering another. If this parameter is 0 then periodic health checks + * will be disabled. @c min_interval_ms must always be less than or + * equal to @c max_interval_ms. Set this to @c UINT32_MAX to have the + * maximum unbounded. + * + * @return @ref MMWLAN_SUCCESS on success, else an appropriate error code. + */ +enum mmwlan_status mmwlan_set_health_check_interval(uint32_t min_interval_ms, uint32_t max_interval_ms); + +/** @} */ + +/* + * --------------------------------------------------------------------------------------------- + */ + +/** + * @defgroup MMWLAN_DATA WLAN Datapath API + * + * @{ + */ + +/** Enumeration of link states. */ +enum mmwlan_link_state { + MMWLAN_LINK_DOWN, /**< The link is down. */ + MMWLAN_LINK_UP, /**< The link is up. */ +}; + +/** + * Prototype for link state change callbacks. + * + * @param link_state The new link state. + * @param arg Opaque argument that was given when the callback was registered. + */ +typedef void (*mmwlan_link_state_cb_t)(enum mmwlan_link_state link_state, void *arg); + +/** + * Register a link status callback. + * + * @note Only one link status callback may be registered. Further registration will overwrite the + * previously registered callback. + * + * @note The link status callback must not block and MMWLAN API functions may not be invoked + * from the callback. + * + * @param callback The callback to register. + * @param arg Opaque argument to be passed to the callback. + * + * @return @ref MMWLAN_SUCCESS on success, else an appropriate error code. + */ +enum mmwlan_status mmwlan_register_link_state_cb(mmwlan_link_state_cb_t callback, void *arg); + +/** + * Receive data packet callback function. + * + * @param header Buffer containing the 802.3 header for this packet. + * @param header_len Length of the @p header. + * @param payload Packet payload (excluding header). + * @param payload_len Length of @p payload. + * @param arg Opaque argument that was given when the callback was registered. + */ +typedef void (*mmwlan_rx_cb_t)(uint8_t *header, unsigned header_len, uint8_t *payload, unsigned payload_len, void *arg); + +/** + * Register a receive callback. + * + * @note Only one receive callback may be registered. Further registration will overwrite the + * previously registered callback. + * + * @note Only a single receive callback may be registered at a time. + * + * @param callback The callback to register (@c NULL to unregister). + * @param arg Opaque argument to be passed to the callback. + * + * @return @ref MMWLAN_SUCCESS on success, else an appropriate error code. + */ +enum mmwlan_status mmwlan_register_rx_cb(mmwlan_rx_cb_t callback, void *arg); + +/** + * Receive data packet callback function, consuming an mmpkt. + * + * @param mmpkt The mmpkt containing the received packet, including an 802.3 header. + * Ownership of the mmpkt is passed to this callback. + * @param arg Opaque argument that was given when the callback was registered. + */ +typedef void (*mmwlan_rx_pkt_cb_t)(struct mmpkt *mmpkt, void *arg); + +/** + * Register a receive callback which consumes an mmpkt. + * + * @note Only one receive callback of any type may be registered. Further registration will + * overwrite the previously registered callback. + * + * @param callback The callback to register (@c NULL to unregister). + * @param arg Opaque argument to be passed to the callback. + * + * @return @ref MMWLAN_SUCCESS on success, else an appropriate error code. + */ +enum mmwlan_status mmwlan_register_rx_pkt_cb(mmwlan_rx_pkt_cb_t callback, void *arg); + +/** + * Blocks until the transmit path is ready for transmit. + * + * @param timeout_ms The maximum time to wait, in milliseconds. If zero then this function + * does not block. + * + * @return @ref MMWLAN_SUCCESS on success, @ref MMWLAN_TIMED_OUT if the transmit datapath + * was not ready within the given timeout, or another error code as appropriate. + */ +enum mmwlan_status mmwlan_tx_wait_until_ready(uint32_t timeout_ms); + +/** + * Allocate an @c mmpkt data structure for transmission with at least enough space for the given + * payload length. + * + * The return mmpkt can be passed to @ref mmwlan_tx_pkt(). + * + * @param payload_len Minimum space required for payload. + * @param tid The TID that this packet will be transmitted at. This may be used + * by the allocation function to, for example, prioritize allocation of + * certain classes of traffic. + * + * @returns the allocated mmpkt on success or @c NULL on failure. + */ +struct mmpkt *mmwlan_alloc_mmpkt_for_tx(uint32_t payload_len, uint8_t tid); + +/** Default transmit timeout. Used by @ref mmwlan_tx() and @ref mmwlan_tx_tid(). */ +#define MMWLAN_TX_DEFAULT_TIMEOUT_MS (1000) + +/** Default QoS Traffic ID (TID) to use for transmit (@c mmwlan_tx()). */ +#define MMWLAN_TX_DEFAULT_QOS_TID (0) + +/** Maximum Traffic ID (TID) supported for QoS traffic. */ +#define MMWLAN_MAX_QOS_TID (7) + +/** + * Metadata for TX packets. + * + * This structure should be initialized using @ref MMWLAN_TX_METADATA_INIT for sensible + * default values, particularly for forward compatibility with new releases that may add + * new fields to the struct. For example: + * + * @code{.c} + * enum mmwlan_status status; + * struct mmwlan_tx_metadata metadata = MMWLAN_TX_METADATA_INIT; + * // HERE: initialize metadata + * status = mmwlan_tx_pkt(pkt, &metadata); + * @endcode + */ +struct mmwlan_tx_metadata { + /** + * Traffic ID (TID) to use. Must be less than or equal to @ref MMWLAN_MAX_QOS_TID. + * @see MMWLAN_TX_DEFAULT_QOS_TID + */ + uint8_t tid; +}; + +/** + * Initializer for @ref mmwlan_tx_metadata. + */ +#define MMWLAN_TX_METADATA_INIT \ + { \ + MMWLAN_TX_DEFAULT_QOS_TID \ + } + +/** + * Transmit the given packet. The packet must start with an 802.3 header, which will be + * translated into an 802.11 header by this function. + * + * @code + * + * +----------+----------+-----------+------------------+ + * | DST ADDR | SRC ADDR | ETHERTYPE | Payload | + * +----------+----------+-----------+------------------+ + * ^ ^ ^ + * |--------802.3 MAC Header---------| | + * | | + * | | + * | | + * |<----------------------len------------------------->| + * data + * + * @endcode + * + * @note The TID should be set in the tx metadata of @p txbuf before invoking this function. + * + * @note This function is non-blocking. It will return immediately if the tx path is blocked. + * Use the tx flow control callback. + * + * @warning The given @p txbuf must be allocated by @ref mmwlan_alloc_mmpkt_for_tx(). + * + * @param pkt mmpkt containing the packet to transmit. This will be consumed by this + * function. + * @param metadata Extra information relating to the packet transmission. May be @c NULL, + * in which case default values will be used. + * + * @return @ref MMWLAN_SUCCESS on success, else an appropriate error code. + */ +enum mmwlan_status mmwlan_tx_pkt(struct mmpkt *pkt, const struct mmwlan_tx_metadata *metadata); + +/** + * Transmit the given packet using the given QoS Traffic ID (TID). The packet must start with + * an 802.3 header that will be translated into an 802.11 header. + * + * @code + * + * +----------+----------+-----------+------------------+ + * | DST ADDR | SRC ADDR | ETHERTYPE | Payload | + * +----------+----------+-----------+------------------+ + * ^ ^ ^ + * |--------802.3 MAC Header---------| | + * | | + * | | + * | | + * |<----------------------len------------------------->| + * data + * + * @endcode + * + * @param data Packet data. + * @param len Length of packet. + * @param tid TID to use (0 - @ref MMWLAN_MAX_QOS_TID). + * + * @return @ref MMWLAN_SUCCESS on success, else an appropriate error code. + */ +static inline enum mmwlan_status mmwlan_tx_tid(const uint8_t *data, unsigned len, uint8_t tid) +{ + enum mmwlan_status status; + struct mmpkt *pkt; + struct mmpktview *pktview; + struct mmwlan_tx_metadata metadata = MMWLAN_TX_METADATA_INIT; + + status = mmwlan_tx_wait_until_ready(MMWLAN_TX_DEFAULT_TIMEOUT_MS); + if (status != MMWLAN_SUCCESS) { + return status; + } + + pkt = mmwlan_alloc_mmpkt_for_tx(len, tid); + if (pkt == NULL) { + return MMWLAN_NO_MEM; + } + + pktview = mmpkt_open(pkt); + mmpkt_append_data(pktview, data, len); + mmpkt_close(&pktview); + + metadata.tid = tid; + return mmwlan_tx_pkt(pkt, &metadata); +} + +/** + * Transmit the given packet using @ref MMWLAN_TX_DEFAULT_QOS_TID. The packet must start with an + * 802.3 header that will be translated into an 802.11 header. + * + * @code + * + * +----------+----------+-----------+------------------+ + * | DST ADDR | SRC ADDR | ETHERTYPE | Payload | + * +----------+----------+-----------+------------------+ + * ^ ^ ^ + * |--------802.3 MAC Header---------| | + * | | + * | | + * | | + * |<----------------------len------------------------->| + * data + * + * @endcode + * + * @param data Packet data. + * @param len Length of packet. + * + * @return @ref MMWLAN_SUCCESS on success, else an appropriate error code. + */ +static inline enum mmwlan_status mmwlan_tx(const uint8_t *data, unsigned len) +{ + return mmwlan_tx_tid(data, len, MMWLAN_TX_DEFAULT_QOS_TID); +} + +/** + * Enumeration of states that can be returned by the transmit flow control callback (as + * registered by @ref mmwlan_register_tx_flow_control_cb(). + */ +enum mmwlan_tx_flow_control_state { + MMWLAN_TX_READY, /**< Transmit data path ready for packets (not paused). */ + MMWLAN_TX_PAUSED, /**< Transmit data path paused (blocked). */ +}; + +/** + * Transmit flow control callback function type. When registered, this callback will be + * invoked when the transmit data path is paused and when unpaused. + * + * @note This function will always be invoked from the Upper MAC thread context. Therefore its + * invocation may not be synchronous with changes in flow control state. + * + * @param state Current transmit flow control state. + * @param arg Opaque argument that was given when the function was registered. + * + * @return @ref MMWLAN_SUCCESS on success, else an appropriate error code. + */ +typedef void (*mmwlan_tx_flow_control_cb_t)(enum mmwlan_tx_flow_control_state state, void *arg); + +/** + * Register a transmit flow control callback. This callback will be invoked when the tx data path + * is paused and when unpaused. + * + * @note This function will always be invoked from the Upper MAC thread context. Therefore its + * invocation may not be synchronous with changes in flow control state. + * + * @param cb The callback to register. + * @param arg Opaque argument to pass to the callback. + * + * @return @ref MMWLAN_SUCCESS on success, else an appropriate error code. + */ +enum mmwlan_status mmwlan_register_tx_flow_control_cb(mmwlan_tx_flow_control_cb_t cb, void *arg); + +/** @} */ + +/* + * --------------------------------------------------------------------------------------------- + */ + +/** + * @defgroup MMWLAN_STATS Statistics API + * + * API for retrieving statistics information from the WLAN subsystem. + * + * @{ + */ + +/** Rate control statistics data structure. */ +struct mmwlan_rc_stats { + /** The number of rate table entries. */ + uint32_t n_entries; + /** Rate info for each rate table entry. */ + uint32_t *rate_info; + /** Total number of packets sent for each rate table entry. */ + uint32_t *total_sent; + /** Total successes for each rate table entry. */ + uint32_t *total_success; +}; + +/** + * Enumeration defined offsets into the bit field of rate information (@c rate_info in + * @ref mmwlan_rc_stats). + * + * ``` + * 31 9 8 4 0 + * +----------+-------+------+----+ + * | Reserved | Guard | Rate | BW | + * | 23 | 1 | 4 | 4 | + * +----------+-------+------+----+ + * ``` + * * BW: 0 = 1 MHz, 1 = 2 MHz, 2 = 4 MHz + * * Rate: MCS Rate + * * Guard: 0 = LGI, 1 = SGI + */ +enum mmwlan_rc_stats_rate_info_offsets { + MMWLAN_RC_STATS_RATE_INFO_BW_OFFSET = 0, + MMWLAN_RC_STATS_RATE_INFO_RATE_OFFSET = 4, + MMWLAN_RC_STATS_RATE_INFO_GUARD_OFFSET = 8, +}; + +/** + * Retrieves WLAN rate control statistics. + * + * @note The returned data structure must be freed using @ref mmwlan_free_rc_stats(). + * + * @returns the statistics data structure on success or @c NULL on failure. + */ +struct mmwlan_rc_stats *mmwlan_get_rc_stats(void); + +/** + * Free a mmwlan_rc_stats structure that was allocated with @ref mmwlan_get_rc_stats(). + * + * @param stats The structure to be freed (may be @c NULL). + */ +void mmwlan_free_rc_stats(struct mmwlan_rc_stats *stats); + +/** + * Data structure used to represent an opaque buffer containing Morse statistics. This is + * returned by @c mmwlan_get_morse_stats() and must be freed by @c mmwlan_free_morse_stats(). + */ +struct mmwlan_morse_stats { + /** Buffer containing the stats. */ + uint8_t *buf; + /** Length of stats in @c buf. */ + uint32_t len; +}; + +/** + * Retrieves statistics from the Morse transceiver. The stats are returned as a binary blob + * that can be parsed by host tools. + * + * @param core_num The core to retrieve stats for. + * @param reset Boolean indicating whether to reset the stats after retrieving. + * + * @note The returned @c mmwlan_morse_stats instance must be freed using + * @ref mmwlan_free_morse_stats. + * + * @returns a @c mmwlan_morse_stats instance on success or @c NULL on failure. + */ +struct mmwlan_morse_stats *mmwlan_get_morse_stats(uint32_t core_num, bool reset); + +/** + * Frees a @c mmwlan_morse_stats instance that was returned by @c mmwlan_get_morse_stats(). + * + * @param stats The instance to free. May be @ NULL. + */ +void mmwlan_free_morse_stats(struct mmwlan_morse_stats *stats); + +/** @} */ + +/* + * --------------------------------------------------------------------------------------------- + */ + +/** + * @defgroup MMWLAN_TEST Test (ATE) API + * + * Extended API particularly intended for test use cases. + * + * @{ + */ + +/** Enumeration of MCS rates. */ +enum mmwlan_mcs { + MMWLAN_MCS_NONE = -1, /**< Use-case specific special value */ + MMWLAN_MCS_0 = 0, /**< MCS0 */ + MMWLAN_MCS_1, /**< MCS1 */ + MMWLAN_MCS_2, /**< MCS2 */ + MMWLAN_MCS_3, /**< MCS3*/ + MMWLAN_MCS_4, /**< MCS4 */ + MMWLAN_MCS_5, /**< MCS5 */ + MMWLAN_MCS_6, /**< MCS6 */ + MMWLAN_MCS_7, /**< MCS7 */ + MMWLAN_MCS_MAX = MMWLAN_MCS_7 /**< Maximum supported MCS rate */ +}; + +/** Enumeration of bandwidths. */ +enum mmwlan_bw { + MMWLAN_BW_NONE = -1, /**< Use-case specific special value */ + MMWLAN_BW_1MHZ = 1, /**< 1 MHz bandwidth */ + MMWLAN_BW_2MHZ = 2, /**< 2 MHz bandwidth */ + MMWLAN_BW_4MHZ = 4, /**< 4 MHz bandwidth */ + MMWLAN_BW_8MHZ = 8, /**< 8 MHz bandwidth */ + MMWLAN_BW_MAX = MMWLAN_BW_8MHZ, /**< Maximum supported bandwidth */ +}; + +/** Enumeration of guard intervals. */ +enum mmwlan_gi { + MMWLAN_GI_NONE = -1, /**< Use-case specific special value */ + MMWLAN_GI_SHORT = 0, /**< Short guard interval */ + MMWLAN_GI_LONG, /**< Long guard interval */ + MMWLAN_GI_MAX = MMWLAN_GI_LONG, /**< Maximum valid value of this @c enum. */ +}; + +/** + * Enable/disable override of rate control parameters. + * + * @param tx_rate_override Overrides the transmit MCS rate. Set to @ref MMWLAN_MCS_NONE for no + * override. + * @param bandwidth_override Overrides the TX bandwidth. Set to @ref MMWLAN_BW_NONE for no + * override. + * @param gi_override Overrides the guard interval. Set to @ref MMWLAN_GI_NONE for no + * override. + * + * @return @ref MMWLAN_SUCCESS on success, else an appropriate error code. + */ +enum mmwlan_status mmwlan_ate_override_rate_control(enum mmwlan_mcs tx_rate_override, enum mmwlan_bw bandwidth_override, + enum mmwlan_gi gi_override); + +/** + * Execute a test/debug command. The format of command and response is opaque to this API. + * + * @param[in] command Buffer containing the command to be executed. Note that buffer + * contents may be modified by this function. + * @param[in] command_len Length of the command to be executed. + * @param[out] response Buffer to received the response to the command. + * May be NULL, in which case @p response_len should also be NULL. + * @param[in,out] response_len Pointer to a @c uint32_t that is initialized to the length of the + * response buffer. On success, the value will be updated to the + * length of data that was put into the response buffer. + * May be NULL, in which case @p response must also be NULL. + * + * @returns @c MMWLAN_SUCCESS on success, else an appropriate error code. + */ +enum mmwlan_status mmwlan_ate_execute_command(uint8_t *command, uint32_t command_len, uint8_t *response, uint32_t *response_len); + +/** @} */ + +#ifdef __cplusplus +} +#endif + +/** @} */ diff --git a/lib/MorseWlan/include/mmwlan_regdb.def b/lib/MorseWlan/include/mmwlan_regdb.def new file mode 100644 index 000000000..202b16172 --- /dev/null +++ b/lib/MorseWlan/include/mmwlan_regdb.def @@ -0,0 +1,302 @@ +/* + * + * Copyright 2022-2023 Morse Micro + */ +/** + * @ingroup MMWLAN_REGDB + * @defgroup MMWLAN_REGDB_TEMPLATE Template S1G regulatory database + * + * \{ + * + * @section MMWLAN_REGDB_TEMPLATE_DISCLAIMER Disclaimer + * + * While every effort has been made to maintain accuracy of this database, no guarantee is + * given as to the accuracy of the information contained herein. + * + * @section MMWLAN_REGDB_TEMPLATE_COUNTRIES Country code list + * + * | Country Code | Country | + * | ------------ | ------- | + * | AU | Australia | + * | EU | EU | + * | IN | India | + * | JP | Japan | + * | KR | South Korea | + * | NZ | New Zealand | + * | SG | Singapore | + * | US | USA | + */ + +#include "mmwlan.h" + +/** List of valid S1G channels for Australia. */ +static const struct mmwlan_s1g_channel s1g_channels_AU[] = { + /* Ctr Freq (Hz), Duty Cycle (%/100), Omit Control Response, Global Op Class, S1G Op Class, S1G Chan #, Op BW, Max Tx EIRP (dBm), Min Packet Spacing Window (microsec), airtime_min (microsec), airtime_max (microsec) */ + { 915500000, 10000, false, 68, 22, 27, 1, 30, 0, 0, 0 }, + { 916500000, 10000, false, 68, 22, 29, 1, 30, 0, 0, 0 }, + { 917500000, 10000, false, 68, 22, 31, 1, 30, 0, 0, 0 }, + { 918500000, 10000, false, 68, 22, 33, 1, 30, 0, 0, 0 }, + { 919500000, 10000, false, 68, 22, 35, 1, 30, 0, 0, 0 }, + { 920500000, 10000, false, 68, 22, 37, 1, 30, 0, 0, 0 }, + { 921500000, 10000, false, 68, 22, 39, 1, 30, 0, 0, 0 }, + { 922500000, 10000, false, 68, 22, 41, 1, 30, 0, 0, 0 }, + { 923500000, 10000, false, 68, 22, 43, 1, 30, 0, 0, 0 }, + { 924500000, 10000, false, 68, 22, 45, 1, 30, 0, 0, 0 }, + { 925500000, 10000, false, 68, 22, 47, 1, 30, 0, 0, 0 }, + { 926500000, 10000, false, 68, 22, 49, 1, 30, 0, 0, 0 }, + { 927500000, 10000, false, 68, 22, 51, 1, 30, 0, 0, 0 }, + { 917000000, 10000, false, 69, 23, 30, 2, 30, 0, 0, 0 }, + { 919000000, 10000, false, 69, 23, 34, 2, 30, 0, 0, 0 }, + { 921000000, 10000, false, 69, 23, 38, 2, 30, 0, 0, 0 }, + { 923000000, 10000, false, 69, 23, 42, 2, 30, 0, 0, 0 }, + { 925000000, 10000, false, 69, 23, 46, 2, 30, 0, 0, 0 }, + { 927000000, 10000, false, 69, 23, 50, 2, 30, 0, 0, 0 }, + { 918000000, 10000, false, 70, 24, 32, 4, 30, 0, 0, 0 }, + { 922000000, 10000, false, 70, 24, 40, 4, 30, 0, 0, 0 }, + { 926000000, 10000, false, 70, 24, 48, 4, 30, 0, 0, 0 }, + { 924000000, 10000, false, 71, 25, 44, 8, 30, 0, 0, 0 }, +}; + +/** Channel list structure for Australia. */ +static const struct mmwlan_s1g_channel_list s1g_channel_list_AU = { + .country_code = "AU", + .num_channels = (sizeof(s1g_channels_AU)/sizeof(s1g_channels_AU[0])), + .channels = s1g_channels_AU, +}; + +/** List of valid S1G channels for EU. */ +static const struct mmwlan_s1g_channel s1g_channels_EU[] = { + /* Ctr Freq (Hz), Duty Cycle (%/100), Omit Control Response, Global Op Class, S1G Op Class, S1G Chan #, Op BW, Max Tx EIRP (dBm), Min Packet Spacing Window (microsec), airtime_min (microsec), airtime_max (microsec) */ + { 863500000, 280, false, 66, 6, 1, 1, 16, 0, 0, 0 }, + { 864500000, 280, false, 66, 6, 3, 1, 16, 0, 0, 0 }, + { 865500000, 280, false, 66, 6, 5, 1, 16, 0, 0, 0 }, + { 866500000, 280, false, 66, 6, 7, 1, 16, 0, 0, 0 }, + { 867500000, 280, false, 66, 6, 9, 1, 16, 0, 0, 0 }, +}; + +/** Channel list structure for EU. */ +static const struct mmwlan_s1g_channel_list s1g_channel_list_EU = { + .country_code = "EU", + .num_channels = (sizeof(s1g_channels_EU)/sizeof(s1g_channels_EU[0])), + .channels = s1g_channels_EU, +}; + +/** List of valid S1G channels for India. */ +static const struct mmwlan_s1g_channel s1g_channels_IN[] = { + /* Ctr Freq (Hz), Duty Cycle (%/100), Omit Control Response, Global Op Class, S1G Op Class, S1G Chan #, Op BW, Max Tx EIRP (dBm), Min Packet Spacing Window (microsec), airtime_min (microsec), airtime_max (microsec) */ + { 865500000, 280, false, 66, 6, 5, 1, 16, 0, 0, 0 }, + { 866500000, 280, false, 66, 6, 7, 1, 16, 0, 0, 0 }, + { 867500000, 280, false, 66, 6, 9, 1, 16, 0, 0, 0 }, +}; + +/** Channel list structure for India. */ +static const struct mmwlan_s1g_channel_list s1g_channel_list_IN = { + .country_code = "IN", + .num_channels = (sizeof(s1g_channels_IN)/sizeof(s1g_channels_IN[0])), + .channels = s1g_channels_IN, +}; + +/** List of valid S1G channels for Japan. */ +static const struct mmwlan_s1g_channel s1g_channels_JP[] = { + /* Ctr Freq (Hz), Duty Cycle (%/100), Omit Control Response, Global Op Class, S1G Op Class, S1G Chan #, Op BW, Max Tx EIRP (dBm), Min Packet Spacing Window (microsec), airtime_min (microsec), airtime_max (microsec) */ + { 921000000, 1000, true, 73, 8, 9, 1, 16, 2000, 2000, 100000 }, + { 923000000, 1000, true, 73, 8, 13, 1, 16, 2000, 2000, 100000 }, + { 924000000, 1000, true, 73, 8, 15, 1, 16, 2000, 2000, 100000 }, + { 925000000, 1000, true, 73, 8, 17, 1, 16, 2000, 2000, 100000 }, + { 926000000, 1000, true, 73, 8, 19, 1, 16, 2000, 2000, 100000 }, + { 927000000, 1000, true, 73, 8, 21, 1, 16, 2000, 2000, 100000 }, + { 923500000, 1000, true, 64, 9, 2, 2, 16, 2000, 2000, 100000 }, + { 924500000, 1000, true, 64, 10, 4, 2, 16, 2000, 2000, 100000 }, + { 925500000, 1000, true, 64, 9, 6, 2, 16, 2000, 2000, 100000 }, + { 926500000, 1000, true, 64, 10, 8, 2, 16, 2000, 2000, 100000 }, + { 924500000, 1000, true, 65, 11, 36, 4, 16, 2000, 2000, 100000 }, + { 925500000, 1000, true, 65, 12, 38, 4, 16, 2000, 2000, 100000 }, +}; + +/** Channel list structure for Japan. */ +static const struct mmwlan_s1g_channel_list s1g_channel_list_JP = { + .country_code = "JP", + .num_channels = (sizeof(s1g_channels_JP)/sizeof(s1g_channels_JP[0])), + .channels = s1g_channels_JP, +}; + +/** List of valid S1G channels for South Korea. */ +static const struct mmwlan_s1g_channel s1g_channels_KR[] = { + /* Ctr Freq (Hz), Duty Cycle (%/100), Omit Control Response, Global Op Class, S1G Op Class, S1G Chan #, Op BW, Max Tx EIRP (dBm), Min Packet Spacing Window (microsec), airtime_min (microsec), airtime_max (microsec) */ + { 918000000, 10000, false, 74, 14, 1, 1, 4, 50000, 0, 4000000 }, + { 919000000, 10000, false, 74, 14, 3, 1, 4, 50000, 0, 4000000 }, + { 920000000, 10000, false, 74, 14, 5, 1, 4, 50000, 0, 4000000 }, + { 921000000, 10000, false, 74, 14, 7, 1, 4, 50000, 0, 4000000 }, + { 922000000, 10000, false, 74, 14, 9, 1, 10, 50000, 0, 4000000 }, + { 923000000, 10000, false, 74, 14, 11, 1, 10, 50000, 0, 4000000 }, + { 918500000, 10000, false, 75, 15, 2, 2, 4, 50000, 0, 4000000 }, + { 920500000, 10000, false, 75, 15, 6, 2, 4, 50000, 0, 4000000 }, + { 922500000, 10000, false, 75, 15, 10, 2, 10, 50000, 0, 4000000 }, + { 921500000, 10000, false, 76, 16, 8, 4, 4, 50000, 0, 4000000 }, + { 926500000, 10000, false, 74, 14, 18, 1, 17, 264, 0, 220000 }, /* Warning: regulatory requirements may not be met */ + { 927500000, 10000, false, 74, 14, 20, 1, 17, 264, 0, 220000 }, /* Warning: regulatory requirements may not be met */ + { 928500000, 10000, false, 74, 14, 22, 1, 17, 264, 0, 220000 }, /* Warning: regulatory requirements may not be met */ + { 929500000, 10000, false, 74, 14, 24, 1, 17, 264, 0, 220000 }, /* Warning: regulatory requirements may not be met */ + { 927000000, 10000, false, 75, 15, 19, 2, 20, 264, 0, 220000 }, /* Warning: regulatory requirements may not be met */ + { 929000000, 10000, false, 75, 15, 23, 2, 20, 264, 0, 220000 }, /* Warning: regulatory requirements may not be met */ +}; + +/** Channel list structure for South Korea. */ +static const struct mmwlan_s1g_channel_list s1g_channel_list_KR = { + .country_code = "KR", + .num_channels = (sizeof(s1g_channels_KR)/sizeof(s1g_channels_KR[0])), + .channels = s1g_channels_KR, +}; + +/** List of valid S1G channels for New Zealand. */ +static const struct mmwlan_s1g_channel s1g_channels_NZ[] = { + /* Ctr Freq (Hz), Duty Cycle (%/100), Omit Control Response, Global Op Class, S1G Op Class, S1G Chan #, Op BW, Max Tx EIRP (dBm), Min Packet Spacing Window (microsec), airtime_min (microsec), airtime_max (microsec) */ + { 915500000, 10000, false, 68, 26, 27, 1, 30, 0, 0, 0 }, + { 916500000, 10000, false, 68, 26, 29, 1, 30, 0, 0, 0 }, + { 917500000, 10000, false, 68, 26, 31, 1, 30, 0, 0, 0 }, + { 918500000, 10000, false, 68, 26, 33, 1, 30, 0, 0, 0 }, + { 919500000, 10000, false, 68, 26, 35, 1, 30, 0, 0, 0 }, + { 920500000, 10000, false, 68, 26, 37, 1, 36, 0, 0, 0 }, + { 921500000, 10000, false, 68, 26, 39, 1, 36, 0, 0, 0 }, + { 922500000, 10000, false, 68, 26, 41, 1, 36, 0, 0, 0 }, + { 923500000, 10000, false, 68, 26, 43, 1, 36, 0, 0, 0 }, + { 924500000, 10000, false, 68, 26, 45, 1, 36, 0, 0, 0 }, + { 925500000, 10000, false, 68, 26, 47, 1, 36, 0, 0, 0 }, + { 926500000, 10000, false, 68, 26, 49, 1, 36, 0, 0, 0 }, + { 927500000, 10000, false, 68, 26, 51, 1, 36, 0, 0, 0 }, + { 917000000, 10000, false, 69, 27, 30, 2, 30, 0, 0, 0 }, + { 919000000, 10000, false, 69, 27, 34, 2, 30, 0, 0, 0 }, + { 921000000, 10000, false, 69, 27, 38, 2, 36, 0, 0, 0 }, + { 923000000, 10000, false, 69, 27, 42, 2, 36, 0, 0, 0 }, + { 925000000, 10000, false, 69, 27, 46, 2, 36, 0, 0, 0 }, + { 927000000, 10000, false, 69, 27, 50, 2, 36, 0, 0, 0 }, + { 918000000, 10000, false, 70, 28, 32, 4, 30, 0, 0, 0 }, + { 922000000, 10000, false, 70, 28, 40, 4, 36, 0, 0, 0 }, + { 926000000, 10000, false, 70, 28, 48, 4, 36, 0, 0, 0 }, + { 924000000, 10000, false, 71, 29, 44, 8, 36, 0, 0, 0 }, +}; + +/** Channel list structure for New Zealand. */ +static const struct mmwlan_s1g_channel_list s1g_channel_list_NZ = { + .country_code = "NZ", + .num_channels = (sizeof(s1g_channels_NZ)/sizeof(s1g_channels_NZ[0])), + .channels = s1g_channels_NZ, +}; + +/** List of valid S1G channels for Singapore. */ +static const struct mmwlan_s1g_channel s1g_channels_SG[] = { + /* Ctr Freq (Hz), Duty Cycle (%/100), Omit Control Response, Global Op Class, S1G Op Class, S1G Chan #, Op BW, Max Tx EIRP (dBm), Min Packet Spacing Window (microsec), airtime_min (microsec), airtime_max (microsec) */ + { 866500000, 277, false, 66, 17, 7, 1, 29, 100000, 0, 1000000 }, + { 867500000, 277, false, 66, 17, 9, 1, 29, 100000, 0, 1000000 }, + { 868500000, 277, false, 66, 17, 11, 1, 29, 100000, 0, 1000000 }, + { 868000000, 277, false, 67, 19, 10, 2, 29, 100000, 0, 1000000 }, + { 920500000, 10000, false, 68, 18, 37, 1, 22, 0, 0, 0 }, + { 921500000, 10000, false, 68, 18, 39, 1, 22, 0, 0, 0 }, + { 922500000, 10000, false, 68, 18, 41, 1, 22, 0, 0, 0 }, + { 923500000, 10000, false, 68, 18, 43, 1, 22, 0, 0, 0 }, + { 924500000, 10000, false, 68, 18, 45, 1, 22, 0, 0, 0 }, + { 921000000, 10000, false, 69, 20, 38, 2, 22, 0, 0, 0 }, + { 923000000, 10000, false, 69, 20, 42, 2, 22, 0, 0, 0 }, + { 922000000, 10000, false, 70, 21, 40, 4, 22, 0, 0, 0 }, +}; + +/** Channel list structure for Singapore. */ +static const struct mmwlan_s1g_channel_list s1g_channel_list_SG = { + .country_code = "SG", + .num_channels = (sizeof(s1g_channels_SG)/sizeof(s1g_channels_SG[0])), + .channels = s1g_channels_SG, +}; + +/** List of valid S1G channels for USA. */ +static const struct mmwlan_s1g_channel s1g_channels_US[] = { + /* Ctr Freq (Hz), Duty Cycle (%/100), Omit Control Response, Global Op Class, S1G Op Class, S1G Chan #, Op BW, Max Tx EIRP (dBm), Min Packet Spacing Window (microsec), airtime_min (microsec), airtime_max (microsec) */ + { 902500000, 10000, false, 68, 1, 1, 1, 36, 0, 0, 0 }, /* Warning: regulatory requirements may not be met */ + { 903500000, 10000, false, 68, 1, 3, 1, 36, 0, 0, 0 }, + { 904500000, 10000, false, 68, 1, 5, 1, 36, 0, 0, 0 }, + { 905500000, 10000, false, 68, 1, 7, 1, 36, 0, 0, 0 }, + { 906500000, 10000, false, 68, 1, 9, 1, 36, 0, 0, 0 }, + { 907500000, 10000, false, 68, 1, 11, 1, 36, 0, 0, 0 }, + { 908500000, 10000, false, 68, 1, 13, 1, 36, 0, 0, 0 }, + { 909500000, 10000, false, 68, 1, 15, 1, 36, 0, 0, 0 }, + { 910500000, 10000, false, 68, 1, 17, 1, 36, 0, 0, 0 }, + { 911500000, 10000, false, 68, 1, 19, 1, 36, 0, 0, 0 }, + { 912500000, 10000, false, 68, 1, 21, 1, 36, 0, 0, 0 }, + { 913500000, 10000, false, 68, 1, 23, 1, 36, 0, 0, 0 }, + { 914500000, 10000, false, 68, 1, 25, 1, 36, 0, 0, 0 }, + { 915500000, 10000, false, 68, 1, 27, 1, 36, 0, 0, 0 }, + { 916500000, 10000, false, 68, 1, 29, 1, 36, 0, 0, 0 }, + { 917500000, 10000, false, 68, 1, 31, 1, 36, 0, 0, 0 }, + { 918500000, 10000, false, 68, 1, 33, 1, 36, 0, 0, 0 }, + { 919500000, 10000, false, 68, 1, 35, 1, 36, 0, 0, 0 }, + { 920500000, 10000, false, 68, 1, 37, 1, 36, 0, 0, 0 }, + { 921500000, 10000, false, 68, 1, 39, 1, 36, 0, 0, 0 }, + { 922500000, 10000, false, 68, 1, 41, 1, 36, 0, 0, 0 }, + { 923500000, 10000, false, 68, 1, 43, 1, 36, 0, 0, 0 }, + { 924500000, 10000, false, 68, 1, 45, 1, 36, 0, 0, 0 }, + { 925500000, 10000, false, 68, 1, 47, 1, 36, 0, 0, 0 }, + { 926500000, 10000, false, 68, 1, 49, 1, 36, 0, 0, 0 }, + { 927500000, 10000, false, 68, 1, 51, 1, 36, 0, 0, 0 }, + { 903000000, 10000, false, 69, 2, 2, 2, 36, 0, 0, 0 }, /* Warning: regulatory requirements may not be met */ + { 905000000, 10000, false, 69, 2, 6, 2, 36, 0, 0, 0 }, + { 907000000, 10000, false, 69, 2, 10, 2, 36, 0, 0, 0 }, + { 909000000, 10000, false, 69, 2, 14, 2, 36, 0, 0, 0 }, + { 911000000, 10000, false, 69, 2, 18, 2, 36, 0, 0, 0 }, + { 913000000, 10000, false, 69, 2, 22, 2, 36, 0, 0, 0 }, + { 915000000, 10000, false, 69, 2, 26, 2, 36, 0, 0, 0 }, + { 917000000, 10000, false, 69, 2, 30, 2, 36, 0, 0, 0 }, + { 919000000, 10000, false, 69, 2, 34, 2, 36, 0, 0, 0 }, + { 921000000, 10000, false, 69, 2, 38, 2, 36, 0, 0, 0 }, + { 923000000, 10000, false, 69, 2, 42, 2, 36, 0, 0, 0 }, + { 925000000, 10000, false, 69, 2, 46, 2, 36, 0, 0, 0 }, + { 927000000, 10000, false, 69, 2, 50, 2, 36, 0, 0, 0 }, + { 906000000, 10000, false, 70, 3, 8, 4, 36, 0, 0, 0 }, + { 910000000, 10000, false, 70, 3, 16, 4, 36, 0, 0, 0 }, + { 914000000, 10000, false, 70, 3, 24, 4, 36, 0, 0, 0 }, + { 918000000, 10000, false, 70, 3, 32, 4, 36, 0, 0, 0 }, + { 922000000, 10000, false, 70, 3, 40, 4, 36, 0, 0, 0 }, + { 926000000, 10000, false, 70, 3, 48, 4, 36, 0, 0, 0 }, + { 908000000, 10000, false, 71, 4, 12, 8, 36, 0, 0, 0 }, + { 916000000, 10000, false, 71, 4, 28, 8, 36, 0, 0, 0 }, + { 924000000, 10000, false, 71, 4, 44, 8, 36, 0, 0, 0 }, +}; + +/** Channel list structure for USA. */ +static const struct mmwlan_s1g_channel_list s1g_channel_list_US = { + .country_code = "US", + .num_channels = (sizeof(s1g_channels_US)/sizeof(s1g_channels_US[0])), + .channels = s1g_channels_US, +}; + +/** Array of all channel list structs used for the regulatory database. */ + +static const struct mmwlan_s1g_channel_list *regulatory_db_domains[] = { + &s1g_channel_list_AU, + &s1g_channel_list_EU, + &s1g_channel_list_IN, + &s1g_channel_list_JP, + &s1g_channel_list_KR, + &s1g_channel_list_NZ, + &s1g_channel_list_SG, + &s1g_channel_list_US, +}; + +/** Regulatory database. */ +static const struct mmwlan_regulatory_db regulatory_db = { + .num_domains = (sizeof(regulatory_db_domains)/sizeof(regulatory_db_domains[0])), + .domains = regulatory_db_domains, +}; + +/** + * Get a pointer to regulatory_db. This function isn't strictly necessary, since regulatory_db + * can be accessed directly, but will prevent the compiler from generated warnings about + * regulatory_db being unused. + * + * @return Reference to the regulatory database + */ +static inline const struct mmwlan_regulatory_db *get_regulatory_db(void) +{ + return ®ulatory_db; +} + + +/** \} */ diff --git a/lib/MorseWlan/lib/esp32-xtensa-lx7/libmorse.a b/lib/MorseWlan/lib/esp32-xtensa-lx7/libmorse.a new file mode 100644 index 0000000000000000000000000000000000000000..144d196f7f6131fc04e6f1a24ad215f26812d251 GIT binary patch literal 2734914 zcmeFa4V+z9S?|ARCP~v|3P~DDX;YY{Zz+~?&OYy@U=os0plT_lAR?3fcAC&hW|*1u zh0E0@a7zlcpHdK8L~p2wwOXkKYcE=C3%6D*-g^;|KO%yEU#S(Tp3-ZkcEM ziYQusWfc9|wn4b__9#+#-%X2$4_zNcAHH-DK6h0VEfPkSzCSvqaQ3Cq$iJ8HM^BAL z{+)!;HOrzhJmrFDbmJ=@KfJOXjV=r`zZH!hOL*HaN23lxXbE^P{nQz8H=Dx6x?q4<3%j9(n38eEQST zn8N3NYw_@nk4IyKC8Hl0gz;t35`~k#_T3BFXtcz_?%Sg!3iGc#ws6lq(Gm+E06tpy z>vu;>2uqjz_#iy<;b`d(dbsZ1Xz3f%Xz9(b9E3Zc9xXju_~)OAmVO6e*{ZKahlEo< z87=!>hnJ_(vSSHXzb#t!A3Pj)-lfsMIy~o==(uAEuXs2*?nvSKd!ysN)9@Q_i;g=| z_=}H6$1Mzh`}yd&qlD!zx;Od{6F$8nT7E3yTVIQohj9FwlcM9F_3h~Ri?09o7d|!{ z9sk*{9}-p^|D4Ffvu}!4EEZn;#c0K`gquDZt@u8MmCHXK{fk3#d9-q2*!O{G<#!rB zdsDP>kuW~CBKlW_?wV-)2RNMY%rsgwv_BA?@LdQ`IOmq=-z5Cmn&=6CdDSrd-TBcI z{_)$<6Tbb?fAjFfb)S!(c-BM57Jl}o=!uJko34tU_#YswdiJ*HsNtt(qgDS_;d5)E zRgV)^Kk)_8zbIV(*U{?#%fgyRKOP+tKKJct&0^uJ?~c~|I}Ink_KVTuhMPVao%o%E zyWbX__yZ8uKIh)(u<(NSM{CnBfB(bRz8S6kK7^Bg=4;VO`)>bNhbRBTozee|;pAtY z5*-pQ{d{!t4`6so@x|!75l-29Q*_jD{g_+ZIng;s3cFqqowHc@ z#gn3QzFXl7H$~@sAHs$kFOMEK{LaUt4UZT8d_}b3-!Po}>W88uhFdR<&V9V_?zczh zE*^I6+PQmvvXR6|-0LRMAX=~YidMJQB|3BE{A4mUHJwdP@1ERIBr_pxwwNlCxgx}- zcFxUD&de4w#qPYCl*}wlnJsorUvv1pb^{rM}zbNv4V$oL7FY<2BGq>yAcH-^L>J-&(^g^wQxajng zZZkyN-AqVnhvuCqjN~hP;@NAanjaECip3EA(TC3i*%yF~T z>9@MVqjJcSPTZ^I_TEm`&YMZE9qu-=v{}zO)^+`6v)S)CIqtSP&AJtp=JmMW=~xpQt*qVa zwJn+^{g`T7^V3>C?=h(MqP&rJyIt!I2Dg>B5}Q@+te=6h-h@uK)$bJ6&#k)LsJz>o zout=DGkdm|B%M}Xv-j5ealO~gy>rrDoOfa?Iqk$n)@WKaY8k`b&n$D%>E*qC$9kh) zYi4PqYt<-_6M#r9wo9$ZOs#(eH4h>9w!uIQ}W~0`&S~Z$^Qcs6C znRmJn4tqAKK^l5>!woRM-%VqSGTil~R=1vPG+Mo)og1MbZz~2#177vxPCv`LUgtdN z6j^G>&?~xW28xHwS-;V(=S@TYJk~sNjBPa;hnk~z(Q74Hk{YTsdwmAbM?bD*S*z2s zI>+6($lHz#aV>7uv%0;gQ}1=MX2*((J9)F0ISI;Z6kPZ5ZPXi3mDHM__PRx{(X;mE zMXT0nw{6Jiiw-?v4eUd6do`yUqA5&C>zsscOPWpVoUEw#lFpD6G_p?7EUc1w-0QVE zsWmX`#u=2tp6xauP)#SBjc%^{S?A!Q6_s%>#g|>kS=Ye_M&bpP1|YDN=})}wPwrSTkAKw?MAu& zUOkoU4ouO2LF!M>PR?Hw-r1|ylf2V6H0kE`Ca7%+5yE^(CU{CeWYQda>Ef@-XxE)wR~pwnnepvXO7c z;5JAWUX*p)X}{~Uq=;d0pj~#i-)Tw(JyMtt3`r`_sz;Y~ux^?IY8*PNon-A=33@|mqii&onj2#;E{IzBBLB6KZhY8p+bBF~4C zA&E%`dL5z+O1BmlR_9h;ha`HfnDPa4)tZnNJvf}$=0UGnOB)?u^fK1?M$PGZ-iDf{ zskN70Ytklrw$bj>u|xFC>#cOiFVyPol-X&R122`;YD4z0+l00BS|zj(Ud2Wb)&e5m zw}DV3$xd(F{eVe$E_ky>mBPH#0=<-uj)OJ4o=nZstd~2YIVz;GI3bhZ7wAB ze%h_|EHk~xOmN;gt|iRD!tfbMA%$hP(Qn4EIINPPR!LDbx=^bSg=0*W2KA%8Dv#_guFhe!?0dcEaEK?D(Ttgq@x zGw-&W*0C%n%`Ef2YNw1yt!KT#>dBF5*BNrZ(J7(yUcL`t4b$YP+b}A`rus z_gLD)-9|SBOItSjOnvB4$L=CHbfG{-b2>?*-phQJ!KcJ<8}_0e3_uK{6H4y)Yu$bv zTLXJZuUWvHg}d#PnbYoBW(YE<;w_>U?M~sVMy-IAZh7Y*o)l^Bi!ESQ&z!+eSqM6r zGgDwu2L{1jL<92na1m*=ih8r>q#%Wqr4WZu$pqq@4CT3Qt5#2Y-jht;ZcM$cy=k}K z?ze4PwVO!}0kiiOkd-DhI%KZHf~P&7uqmjJwtXQ;v#dZw_mW`%dG#UsVF6(!bq@B|Pq2yY^hzYEi^ zmm^tj3y7>$5?rqL`a|ZC#kmF14JD(GXtxqq3`itFlVE+-tml0eUF-HNhjP@qwgA=W ziW+k|6qOWd29IIUZh>M0^ayv`dAF$Lv7uSFQO}a@5WN$Gx!6Ue0(P(2^98rX0^6k? z6jky#SI;DKlhZSEp=jt20-Q^%F=RE4y}`X!z0vCWnwleL*7}9@9TKZvWu4Uok>JH_ z2z$`8v~Wqe3o^r)`m^0;yWZ$nceG)hS?O&}&C&J1o)~f$$LhG7CHVDq8T~FFJ`Qa_w32a8_D^|g*-f#?t z*XR_D*eE0Vrdr$^N}Y@tsAMAw_tA}$zLlJyCO}Fx`c-SN9<^O2Wd!0@)-r;H)~*fH zZe5pk5@ejAFqjl|G#K_GR0b^V!%;}PjegxJRMJY5Zrj%wNn{M5;Tbv;s7R?Jlx_!g z8oaV|7;%D}0oM_F19=5`-UarghBOa%6YeIBChUu|n=r`rdggi(&`fKPy%!cZ1`BO` z`*9;j&tRk9>E{W2pGR5RTd}vOp41t#VXfdNnk`o{6wv)n;smRcw;)M%y|ul^zLd>n)N4l74y)CdErA@I6BeU*`0YY zxhuH_QDSmt`s!lVZmRs*`MJsY9ka#Uj_E12u6#;2=C0T|S?o^Isj?4-$$Qc?*`3cV zcCRdaaxS@w*G-peTlv_al*wdvW|H^JOz)m6Ca3%Tsp(S5dU%$;YIB4f`HpPn2)E|B zb7fJ?BvU)7z=9Xd%~R?0T53ICX}=|2GaLcSSa!jDGQVeTawfU9TGwihtCK5>$^Oo% zN}>7AId$6PF;%A=;pyG|omW)5{^}h&=ZjMHeQ43jo$Q*)_bk@=RBJNXGe4b8gD;um zN;*9)SW~IrZ?xO>l7bC}bH|?feEMp~A(b!~E3b^FOzxh(Iyt15CPPE3d9Ce-W)`}t zY{I-K#Ng!_vhJ)@^h3O!Q(BTv&wB0k=&mH2gfn)mRa!bXx6`pz39}?v(X+)BOqODn zIkWr9!CNOY5&81Pes}hoBc#eSG0d+?bEQ{^nEGLI&+hr1Q`A4nueE~9CLW=_vsqaW zEqG-mK=ER7VWNij>fO60=cd478{*008h`no8K!nI$%4ipLjiW@=m&N#L_ihOpG~gV z1+FhXwK2C$&F_G;6xo%NU`8=}RU&)HU|@K>90=Y~!OQup!M!}69Hj1w-aAk2Vt?Ex(x{vsvW6Pn{d}#Gyhw5$^Xt&TZL)3XpcVWM?v~YC`)sIVAF?{!Wt8?6-#zAaj53nKw~yKpx_QQkyV6{0Bb(@xJ>HdeDn zJ#{r)j%G0FxE>i}725u;E#ZCi9=%?}qRnmtmb7NfK~qc_s^;(_g}WKX95u?K^fK&^@d~Y0)}>=D zbDYyXXaYj!B0;&-a*?Y82UG7lf5UTF6`cD)wZh8l3~UdkI&KWb;v_||^=IMkP|FVW z97y^Zx~uTs78)Q_8^%c>nk7h$&2YEffeFjKMFm_0EQHxgJ~I4`Rtrq_NxG`=DQBKW&rHE$w7qZA88A*^8% z^=Z|G*@I`bqGH$Xw9xS`Gu0lL9WdoNXN zU{kZA8t5A`7{X8#%I-#QXfs2YN$R=xMx(*xMm=utMH|x`wkSti-!0tCNy*(FvQWs3 z*0^4@oCR-4;9^9>T@UhrEHg zt+0|AvVMvNBGf8_RJT$2S|zbKA?;b_P8)4LD#CD=3EM$lx6Gh&qXvH;?&j#38z4xC zrZrTtgMhh$M%$?YYChLS6lg#gZKDj>(@^?)G(miks2fU- zrB}`xR&o!OUt>sfTHOwIF2`pqW)LM;Amvc&0-u3U6rI|^7GfpSgih8OMw#rLcHi2| zVhdq$sTgH{k)xXmMP=wm5YDaZ3Jj!i%h$3Fx`%e+R!=AFD`78s;nEF1TIF|G=&sv>XGKskIDNmc7KEyo~)orA;PNQWg+RH&n7Q=8i z$IYUdI&*?nxj>t4-OiLlly!q5Ci(=Y4l4?kUIXK-O)J@9>xFX#;46wBC!6>z6p$Uy z+(#{s)+|&5t2735U%Tm?ULAQo+--I7Vn}M%u~<)Qvc`tHNv}mW`-}P*Kv7~_<~D8! zb#NtQ#%2xG$!sp*bJJ+R`GmV591N3>LLEAywcYNf%un?6A&Rz_NBc$@(Au=owAzcB zaDXu?wvf5T8iK;x-iyAo-x*r+AcE+CnuZ%av_svd8`&g$rTw9sLNDnzF$IQ_F=?XI zcJhS{yURLZFG5Et^Ro37Mi+FTzQh#0xYfzrJ%TP~-E(Um?hM`DP;ZAdT&h)D7r+d8 zDcKld=7U9a%|*td$iiX6jZPD7l&b(S@3hd=*~F>A0Jm#RYf(b;QQSHb7CDp74M&g| zwB?HqEi zhT#Y=j_@L^fM}z<`54?fS?Zn^%^vi)?<^utR5>%&2BnEAuAaG5PKM^Gk4ei0w2nbz zxX>dnq)l)w+%1y0(H)veJ5c1tkhswp=!{dOtOFM})Y=wtua4>2@EOx2xZ`snhB?E& zWp{IEY$J8@g>|moLgOE*fpWMVw|%ve@*jiY~4^tJMt)-Zi8cuSl zZws1hcoo;7UPJRvQSZRkCf0Rzn2Rj)YNVikr={BWO^w2LY>D_^C@LS7VKQ!3PDU5R+@Hf!5(c4G<5aY!?K zZewF&$PM}HaZZQ0I~PcY%;y~o*9MJhSm(ge_nQ#bP{ls#;RH2yh;~t5w|Zq?dCTVV zozs)qE=`w1(~ziV=l9GUmQLPQWAf@*R7FR)C+$S_7Mg^~Vc+hYE7dPMXMGWE$}tSd zhG*0}Sh`rgT$u`;zzFNJy)RvB-F=i`KVT=FBthC_y)-Pue*;`_O|v|S(Bc|tz*CWF z=-N~4W>}4VAw(5ilO;9O3VyiW8Jb+-iIM7tGq&54!-$nkxj2LQf)pccWq5CfqIfW` zVWtaF_;!3x+zP=WlJ(#+!rfkvr2u9vL}MH#aQUz(Zc(i5Zjgmm#|dI@$c%X3V}2X< zQxaYPjLKp25Ggcm_!8(7th6vA8Ak)CX} zck{T0H-^;;AJBfM;S?EFKQ?G*87WBCd3zS$E+ky{&4BVXWGt`-VxC5!VI|{SkT!>o z4gGeEho$2cmIV6IscN?YE80ozS-h;^dtL2P;1!$UOcY*}vK}FqTJw9*eGD-+V_WUC zTZdwW%yGM~L9=de)DyUTcTIsnfhum_!2Z_7E6bkkW5>r>ZzU%X=Qi{ql#IHk4*zU- zu?%7Ba!UfvJUI?ehWst0C0wNpfpG=GZN-~_TVto0Cf1V)oG2@u4JhLa#deMv652w1 zu=ipHM1*x8QrSJ@j`OBi=P+=%g$g^qZ0?5bH9YK?9M)buKw=hadoMaC90;1$b$Ab8 zu69Eid@05}*Ga){bXY{J3G#xCS?@w$v3Rqg|Awcj;Ied$H(HR~MwI5Dw#=VUCK9i+NYEBr5ubm+*8Pe-F-uEimw zC*4xW++&$<4>c(aAdaoheB)kOfR;x3;f`^baC#NvGnyxTyNjMLY1W-7L|8!I;fjVP ztSGCOH33r{CM!1trIGFxpi`9XQig-IZVX?ck2-D_@?{H$%Z2?>pS5or>Ze&O+#_ z1hBQ=!#}}Lg_+$O8U|4z;>GT&gjOw)ho&_U_o%!NV;i20LGBL5-Vl|GEEsH279W@| zFADW5447*b(cr)qy21`pkmB=WL_ThxH4q;QGhZm$XH zue-d|YGE^l3l4W-w>k{BO}YXV4q7;yIMf23!Fh3Pk+jem4i-t&drtY$(e&9rU_F^8 zjShaKRt=alxGiVw(9b~)Trk670&&=9H@avXq+QL_fCuj2P9N$_?VA!dLo}t6(eB!y zP~`##bL%<=2vXrKN^3ZEr>EM`AGC3)LdUcStEHgv_JzL_V02M@nvcAgjCV~sHxu3EHfT>{Z&2Vywb6*Ex z^KyJhYy?q*qY8GC+oHiZ;2Ns*Q7Pi{WTb#wFutxwtHDs<(Pl5gCV~Pgnp5DBRh^;c_@lmEdjIE+H1@DywANtf3wm zTDjm7P#qXi#Zj!*!f`z`fqsLrabpa$J!ap9BLgg7jKglojAtbNo{m>J?w+m2(5;lM zK6s{B^O5ITxT08Jbufb9-)DH0C1{cRZU%tEjS&zmGrCMxBiH-mbShcX>Rdz1k4R)u z)Gi2tPF3(;MPuP?5ALXJGfE9(8)R+|y~PkaJ29+5XkgMpqCveN^slOS8`B9zPIw$>GB8vUh8S;VZxMTg(7^eWWWycqt3IH(x@o(n;T2;k z7Sf7>3U)zQLtqA!7P}-OgCHGZy^*7WU>UV(g@D_DF*h=jx3OvrrA72p?Cf(}6mDA0 z{&2qwmS&WnKD)cP$>OzXlP+nr>iLkG!6CvXxI-V@1DX^cqjrrQ6&U?P=OD5nskwRw zC(;zBYAcyZQb!)N=CgUAkHfu>FC zp(~wm=K$|qbx^}-z>YoZ9F!0VU0`GcJka(Y>zsZ+g+lofleC#h>|_X)#Mc4+r8@?r zn@7{)>MW!-NZn9~L(z$;**dntVwTt4ry2$Wk-$kGLJ2!notVq}fju%-$%1`52)#z@ z;ucthycKE%&8fAa_94n1LIet*bZsouZ2PqavXU_iozFpM-o@%;4J@Px#aI`LDzFdY z!eUWYDt3PP+RfSwGcrW)MpmG(vs!6MWv`>vnFS?or+&A^9$2i&M%$%B#G%(_C}@&P z>Iv1L#_UXX^$vVplc{8N##f)se?DYA_HM#K+OyhU2w!8F@n0!2_}Wl14mIpL8*)%h z`F0NpMF%EmsLTZ?yG(CGLKHF#*^pPk2!aOAh8y7#Vbeu;4T>}^Hb!jPW+RVvEStk| z=y1PaTnE5mXA-~@jG%5YYBQ;Dt?+)v!YOawP%<1LyKh~Dui?xLFK6wA=a*}@y%&Fl zI$j&LSfemSUUXp!_8GT>p}fEpg`u_=;XE-Tq-2P>%U_d7P`Ml?$Fy zk}@Z)H@a{|{k~HbRH~g`;!Vi9_;$cj8Ztm9+Leu02r4a{C&FEJNFpt|RUVBRguo5$ zO)A*JH9BO*%?EwWa3R1W0SA36s)z9i@!07GOEKy&LnP1!+oGGp@sMlrto1WBWYKW> z7w-nP@ViihIh@T!eS1+i>oY0cc8;Sad$yc&YoKF6UuR>)`rCr@v+2xcdZvx9p)vj) z_@mi8!pg-4gQ40GO9mUp?OBv)=y`qHP7C1(BbVU@`gArAxrm4S2J7lLi5nEi?#xL7 z!<4g6GIT6D7er;Ztv0%Fo`{onx88&6apgSPDom+P332#O+kJP=)5bA$`_}vxRyr1Y z8$nK4NRXwh&TKD8_w)xlDZ|S;vP<{fsGubm*3OX_IUPyBa4S4NFgD3mGZYfiXZFk= znlL!WBAcGMHl*X#gEa0Gk}c#AIyW@Hps|#?TR@6{Rt&eO)X^kkKd`p2;|eP0q^Zw# zW@)0si}3F%_wt3P%$3j#zl*jT^R_iBVFhGAi;X)jS}fy3Ahr*5I||`4m5DpaBS{LiKvQ4l6{8)eu2__CW)2^Kf2K8&2Sb?L}zjP$LXA?RDfN)JBFI2=6GajWls~1Dvyy z2#h`WfDMhisAXZpjp$K7wtF}ejvEp@k2~Jw=$9I8UrpFV(IaZlVkSmQ?>-YfbmL9- z^MzVL4e`Ns+X1`}e3mnKtQF|iJ#zv(09)EOn}U0c)Z2m%S-zlQwm?PxJ-A<7!XD(8ym96_fx+(f3WmRJM~V{-_% zY?3w#aC9~N5keF#Us`KA%Ze41W!)WEYuF*M9NM!T1YevKt&(!n>eOAES~M_zbe+1g zFrfiJIZH2RG+yJPVvcYKz95b?m!j256fcD)CSAzIww zJi<(fs@7>c$|&5g3|0ErAn80qvlP}5RI&zk*_F&@J{tvGhhWm(UfE!#FmtS*nN!-^ zW#fxE9vRvf0(v>6yU|vQ!Wd!3r@3za=)$8z+^xg6_N_KTvg zaGnjjSpvsu&m#5Kv7T5HSm$87ogG4Nhcw_0**N^L9=Q~W>lFRtIzaqWV+1@KP`N<0 z(Hev%z}%y0bz3Kz8MGkoZPQ{}A%z-CgK`y_#5)#+Fs1{y8neAj?)cWRU=ftw$u&Gz zj8CH#mE&iYQYY6Pw#cFfG3t$DES_|J#t*K%Y%O*a=2@!oZ9Ih+foVZV#^q2L?}qoNte+)um-=w{mJIc)?xEQ2WO zt#cae38|cU)51=OFR539Ud3?i&lWATM!x=H%wWf;3wLZf2VY$|gT8?U%Qd3#^9Z|6 z`m%!kq-{5hB4fhYI3t`SSPkJg10sP6?5}V=JbHJOxQ?Qz5-~`+Xn?yhYA@G&AlReE zaz9_QrLUvUosEi)Z=WlsB4uc%3fp;6KEvHwkm~7T`EdkszCRcwEUJ&eC z_jLi^5%wFn!htTvUDr)=F_OLH+wda#7-t1ErZ`oJnUb0?{E@K0`TPgbg)L+%Rr}&92Eonq|PvAJ|k8x}8Nt(Z)>iN^+_k?j-IWr&CbCVe4lORDsuYb1iEz z+8QUSkV%xOK0{MZSzs5BNrHJsolt@sB5A?l{JRiMLG?BYnh=#8khyLYsg=WeHJydP zV^J=ib{Fdvn~i*0K?fKU=gc{O25p*~(7H49qUQqW(ia+fa<2&f&3r|5bks{(-^v2Af~Y8 z-8J4|XNTZX(b;;j(xIe#X61g(mgjgZ$$nyR%edf zLRI677w7n3DsWsTCCld|z40Ig~v(>qW0}X7Up|{R)N^uJbqt7t{s5l+@WAuTLB%=&k z>9C{Pq{GO9CB@kuCK=?})p{`pIYOX}KI0?b#LdNMJNg@_hL3)Ry%HStS%%sRze>YN zRQe#2+gVr#n|SuyOp#(euDKb4zvKaFEW|q3p&G;R;E- zo>}PqloXwY28U%uA&JCT_`HEQBfvHoisFo3J>wR>1VgZ!nOfK?v3OZgu&tOnoiO73 z#0+#pu(pD7e2Wb?2Pok{s=Iw9H<(a&+3|>88eK~#fKT;+&igvH#ku8kc~JHJCUaQMM% z&$Wp7SFkt3SDX~%AC@!gNzS-pE0&X>P70YAdQim39<1zp zs%s|&IzAP0V3Qrs1$2xq4zui&-CLBg!40F8jRL3Aad45_(6QygA-T7wywNKr159BU zEPU-Q&{V^X*}BlgFrtl#Hb$sh(eKz~@3Ee+SlfH$X@m=qO*%B_2|N33SuB_*I>I{? zg&4{{2=_3DT4Qw^(pdZ>`Y4V=X1vrmd&)%~jyFqDJK8EawH0PX$Z%MrXhLbp5gkv9Xd0F{V}2BGJ5z6J$XU4!)jp}hZ=uNIjnM(8w*N3tj?B| z8zJjVdL{hIq-q*c*m1@R;<`sRCUfkl^NJ$0_|DkaCB+;&rn1>0O~J(~MMoQdK+z7YddEWL|68FxT)5VYD19L%y>-ydd3q#qK@3s?9(A#v~`Cgx4=} za}OP{=-oql>d*)0rzg{$I!8yHc<3#)cF`M{iWg1inr)P7WRJ6#0I?ASe_|R_P8Qm$LTl9`inqj?_e*qGxVr6R0O6U2fuw7-uoTU>j>{F@p}OZ`D5AiE-doJZ~9AW}dbQ20X3icPdQ)(lDQN=OQI<5BPxH3p0OT11D%$Ww`J1jaOSUn}SEJ}wJT zepf=H!eVQe^J^&2&@y`~khSHjW)u|$^pO2zX$-&WY8#|4OiZrOWnWUvaUNFDj<(3) z=oXqG^Bae8n{Y;p5GP&n#_m9NWe!yWd^LfhtgG>+#5(7yVjO+g3*ej)Vm!w{xFBfhXU7` z=+ain$r+&xAxgQX0zjlIKi|`Oa()BYOu{p>+ z!q6A}J6?>gdzmGetzAeePzhicGTcCUfWg$2E9i$%j61f2>9`j-64p3B8d25IjKj8x zIBu{p2|m^P3R3`{^{$k~)s906T{FR!a+D9Q(bV=7Jcn!qIl@Ngo|y8CEo`{b__Nru z8f+G@CKTFMJ3M*_9W;KcZZ*PRjw3u>M8J0fhnS(KZK2bueS2AH=iwyfFl1~2!&Bay zz`5So7~M6Vtr{FBb@2D96@AUwFd3Nm(ttIhZ1lVcWpPKDfwN>M^b0ch0|cvdCV+# z&Es?#R59*Li*lF4j9uf^uW^VR%2ews?H|Il5TfiDVbO8@5SDq=!@f;3<6toiaJHP` zIK|v>5`;1#MWbSK5EUz1S-ibC%ZN_c=tH|Wk>&T-lItYA$Abn+qt}*+1u$ z5PZcp@3mr^fHbF`87E|1Nvx7+FgOCp55CZ`RP4R8yV!*AfN&`VhfX<27y{$pi1E=| z)S?CW_}Fx2W^nwntK@Nn&*^5n%ej8&?|s6uXP56RILU3GX<@UlWoA9)5CNZ7>~uh^ z^nT``4qS`fQy!_EvzT0xtD$P*h(aq0*G4F(OZgnF&Ndk@nXS@zrVdSN<;SMnwu7UL z&R{cSU_4m+eX&OK!tC%S@X-+M~vwDK8>PYQWmUBqEJ zShk$hqu=3MC%)paBaV|Ghu$K%N$D#q0b@Dk5q-X^7SI}FZFDAzeTPg@FS*@h=P-U& z;aSjvrP|k&jFLF<$$Ap%jTfuyvpE19&A1<0g(oqZNB2F2^x<3LW>5A+;p#bb0l*Uj zJD=4VvVq5o(+#=rW1Kbe#qh~b(C`^{16N45zG7*|i_EPz9L*pVJ;cCTfhF3FW zV9i5YHeA~HiU|%Y3${& zfxhCP8RVlz&LefYm?wt2bF^ka%?%0pToiT~gfZ5O0u045OK{u@^h$7={D^9HenPG(vce^^A5Q!p0@tk08d&zuT3WcOkXKj(e zW8au<4okrV352Y_aY%xHL^PPE^ z)7XCHDMjyV> z#jZ@3yii)|lNHu=7^^T6`z(W1VUxO}D4UJYcRR<()@Jr!xI0V(!HnZJOniVrJmds? zT<-AjF=XH{Lu^0proqNod@6lF`AP%EXRjpN8=K4udYZ8o*Auz7E`0BdP9fxY+Waizj z4?b`Nq0uXLjNlmOMbUETk$cr)wZ#|R(TvSCFj!tPR%vFilTA@YgcGCQkbPW|%JcC{ z9SnQ3=y=CT)+YSats3&SWKXYk9sDAv>AIhS&bmWoZJ9a8kWP2>)+x;FQ?_}8;Kc-W zhhn^M*>~wn430!N_qlzw#VvdatyXmoW8t`HBT(>l@UcT)1wVCWl_3KM3Szo$MeC$et2oKi<_Q&BhZFCZ$n|;*o>&KBqxM%v1af{mUYmT+(d9f(W37JAXkJSg)Mj;yEUypKQt8$HB#G#c@zNN5JZgkqbV- zw{);3a>9U1B5YA)1B^?2kUCEEb~Q@_GfQpAs`dF0o<#gW>N$m*9onviz!Rv6C#1a> zSrA>2i^F_hQYY6~1BDBiI*kWr2NbfDKZ_Ct7SY{)(fzQ*IwG-EhLg5@KsmmSog_Xb z#hGwIw9O-gOl+0D;3ChVT5;0HxmukXR$yDam~jlbAw#|V43cYm^erA5Ky`}iXz0pZ97Yh%dmD& zT6=L|frs?98=;$>Meer1P8oLoyRHvuP#;dTXZg-k`8mfhzFm%=?+j1GVNp-$5kp{f zuN+X|QVe1!pDuIu5)B6K#J&*p@y28yxnW(46X;m`hFyoN3ED54NBVLnZqGI~APt;U zV_3%rVs#{p5oGq5!>aiQ0Qv4I42BDFxUb=|##jKJXpTiLgP6~8d4sEpdY6Bt? zunh{V33eraFGIqC?QXcHMYv12NUK#4-GV>M!L&#@)*=pUf))3ff{2F>!$mE)OO8Hs zh6+v-XA6H;`~1aXhS5jB1*LriDVVA6M?3Iw26otadm&Erv)2lD;e^j=TW{cl1gGLU zbH4P+-1k)jW`wV-JJ!K?v0KC!dY!ziku~2O3dF zTVLT^t1l!QWx!DcO5uu7Y)zcL>!?EQbuz8Z1(dby9P-R8PUt0^b7Nx&T(CD^$Ncp< zPs-*IJ;gUGEs8!z4ye}8xI5|l5=PANQQ#zLpBhERAsBp*Ar!?qL-?OMV*@5|n!D3U zl=wKRxPnfb=98fZ6KfC4f~%xh1;me7$KvgP;lr5(RyK-u??twpz{~g|f})m3UBQlP zH5x5vdcka5Ze3Bv(GGa`4S6#TNkl(jBo`Y22V6NX%7>=WY&(r*w-UQ5UGzZLj9zJY zyqP{>j;BWGoF4o75ch4!*j|hI$@h+cM$BJ#WX5%u{Sz*CL*~)5xYCIu#lTUY`>4gx zxVq;f`^}i@Zsg)QJkXp1Yl_9FKW+4NtmE)Bdz=+9bGpMC^G{#Pv&EY2)KZ}vL5Ah$ zHNHxs_d@&Q?#6sFf?be4ojE}thc53cR8SBwA2N?K!)H9o_-MN? zZG1x)QN>9gwg@a6{vy2ZSgIY{@#JF(_N5J6U}bbu1zT>|q~R75*ack2Tt$ORC?~o* zeMSKVC+bTKUwX&3<_n*Wjl*VUV}xX^y%aW`u>dpk{Y)~JSI$>;og2qlr(8DKwQUz4 zYKtN^Gq+tXLk7o+=_@}s ztGdoDEhSBN-G$s>B5|e&X;(IEdzQ5eHL^RZ%R3(7%DSCi@ zcXV+SW5~aK1)pou=g0Usl)l3>cmDJ`lZ(AiZ3E!nc z?&R}TN=o+3@8By|JG1g@Q)Q-Nku<)zHa9n&?ettck2emloSUEBBNszGIx{<+^3kpE z1v;h7)vw?)PaGDpb86@O&SF?u^bW-=drylp*PfY~DXJjXEPgm_`8~Xm2Y2n7-mTP~?8(9UIa#k)5;<66a?W3)Y{B2+>glQe+}xB> zR@isYiaAwuVxm?VqX9hl%g0;FJA5L+N9AX?Uc7B&WF)d{Bzk2uj78B7MaH72S!UP} zt&CPg2g@rw@x13g_kxKH+3fV(-2C+P)H8nkc@uQxGwSjA@%gn$I9GjAqr&uMex8 zFQkjk=W}w=`LolCoImh6^AZnD=F8H9lF!$Of|}9!*ObjWzx?3Xg4!QBdMdZnHnl_7 zpx+0u{#v_F4=_VhUPsDz4tJLmj+XB{@~G@lf-aS3bx_>i``iFqz6*|!@8uz1jbB|G z2?i^!@)R<{aRj?&02m&>?7jN6ck1RH1eJF@LHCvrR)x5=m1y({!qWtV%gS3#yqfR- z5ZAlyvV6OC@r}Q7Rt=_%%^bxRn_F;hU@BpA>q*gCd%gd*H$^KOPjCG6 z=*oONp6E|ZG$w9;_^B7%x%dAZ{LJ#`87qGC&e;#ITQ@$w@{jM_`wvR`$@MS#`-7)8 zt{v^I`N>Of{Llrz_UoHZeRzE3-oMk$)4p;hCI9u$-0*3C0YH0ibl2!fvrG10dgF%u z%fEHsc@%fo$lwice(d09u3LTcFF$GGwvp@hZMu2?#0{(We&yg@BR8CW;mJ4D_x`<# z-TP(zU3Tywg_Um!rGFo3gT`K0wFj4M7^Dd|Mu7Dz`lGQ`{vRg@r(PL;*Ymrbpi6Vc zE-OcADo4Loj^6hIf|Vnj(*1-WSY_q}-51;^=u#fLtbB_v{2e=FCaT=((~7U~HeJHQ zYsmkkN+D{i#@#N(e}tgAUrJa*c|CsZ()|}%gkQzg2D=o8zUph3g9DCO()n`a3~AGI zd|6}HAT`=m>>4;!E9Y!6RV1Y+a+zmp`ijYZvU7?>P~MmF=q=NC?wXkze)+LXD$iNc zD@W9!T+bz}4HHyjIs&=ZwSk~?r3qdc(rY1Ia-2i@ z%R;)+1Y3T5R^x0f>(xgz-Xkh#u__N)`9$XS$g^2(Elgv*#N5z z2CE+ozOVvcBsi3LSq0u+fu}0)H5K^v75L@~{EiBIhv0xGkGIIf*A=tL6pQ-dXng*m zHw|;oKb$e(D>P;5;>GabA-BDt@`iI2s(_|X`Q7uy*@yGXC$5=S&EQ8=E)n?F8Jc^{ z*Qw;xPz7{8jJH@4O6neCKH=Hpl^4*W#5KV-EY0v9`>}kQ8^XDxC!#YxxGWK%dthFnmYj z^|V)ZqP&jI>%C$nFQT%|^1U0Pbr67CuslrQ}-)jJ%74u9({{` zlpd!er+o!pZBsP9T=(_B{?SKw@Y5UJHd>anMv*c_PQ4JEACa|!SLi36w3m#+_h z;QP40fApl~E6U%_t*i8_l5ZFtU%u@W@|8FEbKj0-%c9?X%Q)bz%5d9`>(}V!tylis z%KMMM{8`_A=)eR#;}^sT*8k?m9_O||tC=dM2ev+#`TlhO4D=GP}< zd;h9r8_T}~woyf`>D;!2-y2l<{p(i_x?x<6KQ{|)|2f4rjQ-}=^rL>bHRaE3CA4AX zZGt!O=k^UF=;pMssgy$o8Wax*s$itd-QY4{iA!osmcuRliVGB#~43% zC};OogAAWKaa?J=_4=b5y)~zOg`fS|U1QH)zU=DVoQ`?zq*u1@M#1++a~B*>{+FaY#7|LDXco`IhCnr^{ad$Nhc6= zZ!1BU(gm*~C|&G{E~N{;h@f^u%EVXbcUD8mmhPw1)Bx0X48|DF1AJmG)a@eB~kQ zjt12_6R;fQmkJ1%?!PL)%D0C4{AYgEx#C&YP@kU<@n@Cs)zQ28wM)+jc|^pUEkVT$ zd-|$L$;`r(*iRC_HQ zTjTd6!C;Tl)cb;MA{sv{WLOLKAK-U$fF+|`8sG!`P6e2s=(+%_AKxBe{R-(+&IA0O z8DLEUO+ckl_yu?qZ| z3ViJHWl1dp#aSR-Rtd>~YAlvvKt7HxfgVEt27;ob)*zpjcLOP0{HE2h6fqY*Y29F$t3bL-TL%KK;FYI&jyPtyb8vhuz`T=2$_K1F$=+p3?|YAbJo=d0y? zh{$5~JC*cmdGDY+(R-CAS=Gwxg!1$*U1Otz_YPu%cjkHyDZ<20aWYvISN0MOse0L2v)zz1?9bt^1ft+kk7!EFDP$0$gO-TPwTXm zr~DM**9eAj6)oPDz+&I5(YJBDG4~<^8W%UD%)qB4#v2(Fj?b|%^k+J)izVLQTFx&)Q_8YektS`XF-Tu(3y- zt8n>jsGH`d@rh?v;A7!C1~{GW**TR@&RkWS+;zpSQp?PlBGKcs5!zbe-S|CIM<452 zy;1EZuq2e%!nHbdRkV$}g2PZAac#YrJQ}Z~<-0tTSAB0znq2`MN;{e0jp4=}RN`h} ztuta(bx&h@B|-J85p>;3Fj#TjQ7o+9Zhy45uE*@69>{3~}_7bY~>oO5l zAJwnAR=cn?51>;v5K&emhUH@ zWG=f@j;@8Ye4awyF}PL!wS1)mPBJfNoRUHxO^3_&mH1d``6Ck2K^&vyYf;&pl}()0 zo!T?;T)aN;Sen2GW@2u~^z8f!zjbMFESlicGu8WLy)_R;@5XXY7$J-u0R97D!tr#_ z_;saKz0CWs`NJABe&6%DPagOI3|5Jctho56-uYJt9~M6B8(VtI*pln^ug1dv$NR6l z?y)yC|MaBKFL`9y_+x+AJZBsPkMHA^VrzFt)rW_ zj_n&;zIp8UeOs4r-g^ALv1Oabj(h0Quk72pZ1dLRn4%w9wr^}~^VsN{KX{N=ZQMU` z^UaU_!mXnZ|7i5)KR5{dhTa)(zF)vEoZNcz@0Y->qub7l-u!-p&xo$y6219%L-gTR z^yc3Q@b#_e;b%vi$8cVFbjkRsca84-T~%=N*a_pOKDy+!|3t$3lyK7DoI(xOQ;)5q z>$g&yL?^_gocw00+e*ZYpn-%?~70aHBmU{0^<-H$`?)mSl zCT^eD`zA%-_V(omHq76?bqN(aY1)&(Z_|9`q`A<`~pL5FSwnq<+pL;z>``Rtf zd;4+YKlyOUKVJU+uMWm_@Us5NC!h4TCEaD~MmzUx9)E63SB}M7m!7)}OncD_4_$q(jcwqYj^MCZ_nU@~8f7xB5GcUP$;J5O~n`LAwERTNuSI=AiYxh0-Bg^kO5Mk#i z=R@+TgQtJ$;Abvby?ytSCi)|nT)JudOD4`e9XrQ6TbCvyvU7Yw&kp`#=eU2F#_`XT z_Q^1>Aj;5|JlK7K|9*|edOMzLU*27=~m<7)N>>J(eD<) z1m#~&5Ea*IC8D^V@J52tbniyOvj|H6LxP@D`Xhv=6O{fnf-a>CejY*Ty+F#9E?5*& z>6cZ~1#9I{`cDIEbr8H8SSz<+Nng5Dj$m<&O8*OB-BS9e07U(i{smyI*nu1#2Z-PuNgN7koxYe<845p>i$;egVJA`ZoRHQo3NRkn0KW z2A1R{`1gSA+204YIzL!}9|mTjD$Dt!0Iw(hDDZ|*&SSv3^e(~nt|dHZ^?xF;y-Sje z<(UB1b1HKKu!<7=bYQLQg3kxmrF?c7UMX#4!{FXJ!35!-a7krd5Pp^KLIPRKGIM@) zDP6F&eJ8Nh^HsoBAK|LB*{aWj1YLSo@VNw~f03X|>5qRM?uS+7)YRk0m$lGaAEFAf zlc>k+5`4Nv_*J~h&nm82W0&H>47(KnNsI8S_>Kkfs~5yY&FoVCpSK9Vioa_?{Jjg} z4=srQuLbeXEQtR-agF4|1lfhYz2N={8m4gR{p%LQ&sY$D)`IwtFNkaQ+okd_u}FaF zu!F3|5w%21!_Is%cje@6e7`M0NA1n)WX4@{5ohP^p0}L<9B-bpUDP%t;0n+FI^U|q zNhJDUsER3H!;WJ%>6-gKXBTi5lpjElu=S=nJb9as7iT#K@r7sE>C2W?-!7;P6zrR^ zyE=J>jR3Z1wasZ~EjHcTdpTT$<5ui$t)openLW#XuNEKcu_#~Z;*c?IB{hG%@4(ij zR`Q)kK3=75=>utc3EgaRsk+?Y*8|ILrRxm@!5`rFz5wgF4+Z#M?g>|v=P`c28DP!A zamG~Xf}a#%QR$}!SmXTk0IvmZ2UwI;D~6sGU$Qm8qA)M2AL}dk^N&2e^f^Xz^ z1HtVbAzf)&fz8kHJmrCp()AjGo>iJ)^BMf5kgn$r1X!!@uLbxKerp7K*PS6DM z*JnZ=r3p5B>*qtdIGBsMXSUbJLb}ofo9*=y<&hxIC0(=Xqcp)QL;7XJM&10x zNZ%gdl_C9QAzfV5%Pa6}0xV8Q`f9cD2Ez3L)*OFRfW>v)9AMSq7X$oGet$W@%Ks|? z7B}`AmGrvhV+v{y2@M^U~zIg$TxDLo`fR`=}Hs4GNkLC=}!?iOWXaY_)P-*Nq+kQ zp5piB0P_>QCBRGgE$IN|>UTL|L~JeB3kmWEP@3SCAzj?O($yC6K7wDx?<)hWca0N9 z#5!_aMNl5430@h}uM6o9@+-6(kvPEhMuPGyP4LQ)z7}}oWd3m7Lr@;230@h}^)n(P z2G@NA?Wqzdsf2#s79~tIZTY)Dk@Oc%u^g{@3+)_!uqyoR9 z0`I86^A-5I3VdS)F8vTf`R}Tv-(7*V7FfF;slXqrz@qb(=Svm%8x?p7@3B0qD)71r ztToT_G%K*^t)+{vGFWug=s;e9XDaY(EAajb{MHJ5paTD91s3mQ<$tIG|IZ5isS5ms z3jA0FJ{B8^>53K7R+UBUCxab=o_#@q+GJQizaBjI zgImQRV#*;d6}sar{rAiQGtjJnE=RPjEa9H6XA_Pk-z$!iPi5#z34)DOHI-PoEZ+{& zMAMFzZx?y=Oia+F@~U#Q?kT)I{06qQ^c6QP1-DAgg?=R?tL+;Jx;DUPJ%*}5tcBQC z-4jhM=@q|L-T^B5MdEf@|GkHVYI*A@NOVBuNsDFW{SmP0DO#-SjodI;achUxh`>H8 zIeI_&x+OIDqkOtPM=)6NuaR$+fN<36xcI8n}ebq;m*F+y8A+J=#K$Tz3_b5EX zH%YV0@|DvxP0U1e^!?I&n|Y$Vj&AQiS?e{G7~u2-`rU^>}yRrip#;*|%@g z>EkC~vVZj@jn&sRR&Cs}8hd~IqSf((r`$h=u6Xlgv2oLqN7pX< z-v_U}_<=2}U$E`E>rY>|Z2SJ_?t4j`j-B$*fo18|m} z-!oNANRc5)#To-S8 z63B7k2W$IR#qS!e?Vs4U>B-9YRQ#W3;Y4fIan;$%bbPg{ro3_e)|s(_D+u2AEqd?|4&K-P zyJdf=!T+GrKlT2-59xRBgZlfC6(3zT`p(}i?YtjQLf9VT>j!kB?3ca&q`P0w&VJy< zt6%=|eM_Tv+;`qj-jx{ zplh*bm8NI)EAdv(>KR>&_zi!OslouLc%-pgcDM^S^{|62PT$?6R>a$8N)54A11Is#qhujG)K%6Rsny zCrH-SJ;B{jXTcZfA+95q&po|I{jV~&gkL?oji76>XO%XxVQ{Y;N8%?F5`xOPmY`QF z-)jg;Q<<-=z&``5Yq9c$e|lcOXA|_i`q;`j4_H_A*+I&of5*z!4b#R-FQjT*wI5z% zB?nrKuN_8!#tu1MLGhq83c1Eg&(`51V~lzjf-+HWtG-dNEX;N(e!fNcRa`Qd+Nn9U zhLnr>wM+MZ$|C$Ko)Ru1Y@@T*@bA^YcIo~N7U5U%cPxni#)A0!iPs1#XviAcFImMd zJ^x9I@T>UWE{K0~L42Vda4qEu2QMJ3p+98@6fX74_*0^oxbR>@8D|y^3~-#t$LV5z zRz4@KRlkMGS$}-4#7}uHx_rZubD+bsb&l8K+*mt;Gt)WE96>rXlSvNm@e%Tzk2CPh zcW5=k5jEvZQ#yq z4n6cQAfz1c%NOShy0N^>&Tt7aje)Lm-ie5EZ6qjNX@bqRAY3$i!V7?vM`?o1o}lqG zdxFN%##pe~6HZV%IC?t2x<*1Bq_$PMF2O5F7hZ|ZACf=V6J&aj-c*-hvon-!(Suy4 z5R^x0g3ZoQ)-$}TY}X2IhU*YNUOmV)L(sl7Mc)`;{r+))wFdoTfJNt@Ox>0L4@vul z0P8*X1Xy|gJivPPvjJAUp2R&pdm+C+8erwWD!|I~V+7^-IeyjDkMVT2l&0elHOH0VZJ;R(v>FI`twghy74(? zpDAtQwDCgn3pV@AKZN}MAHQD@uR{_v|t{`8g77 zpQ!jP!OANef?$=Q;j}tGC*)U}V5_s(gYj6X$~8{eLCb(nqb4Xa^9Ul0@ptgRKC@_4Yl|>{fbfpP4yP4*a+09N5d6XvD>}HxvW;YXmp!z6Hu-VOs`dFwh z)|QGOet~T)%5{Nsjfr@EE zBI0Y6f$N0?!7Bf%0P9z`4VNZDy3zz&{m%~Rui>{7;Mek7;$e92=8!A7HW+tz|t zg*-|VY-@q~%GQFJkVk2PZ7l%wdg>i(k5|f|4pz^y|4D!P;FkAo*~T!}%KC(Lyu?*? z2-gI`{7p6prf+rC2-csXW#)gOdp34uKY$au$}$6dCUMJCmJ`xN<81Ck2{PPv~x(a+_1-`Wcm-f$4PHF!PaB2Sx@FU94yw>%x z3jCQ0{G|%~jS5`aKf|-7{WHL&{WHK?gAA9N6?kI>zPJLvtOA$zPa!W?Y5xpxY5xrH ze&rAFTPyH^3jCWD_`V8U+CRfQD(#;EF72NI{(|xc_^}Fn%=XVTnVi3dlXa(3jytu3 z&w_$=Pcr%fojMe{zo7Iu*G5DDq*? z+ub9TFU#y~G5AH%c?V}cH$C7XRG3G1jGI_(aKg92vd@4iNkA!?-DLSmZmah&V@^rL(l56x#wH-5hQMhc}z;mJx}dywk)}L$DW9%O7nFAie5uxF<&~Uo<-LAEd5>^!J;5$3?`Id3cO&Ip zL?)HDieTma@`Ccd#68o~0+#vod)tEYK1O-VDMaO&9b4^vZzwO;LtL*J8}OKe*r0F8 zQtFrWYyJEH`AmPSyw(os3j}XeBG;!dertWydnM*rJ0z1;%lj5Lw&{UzS$SVwP~P46 z{fTE$dD3oLdF47v-0HVw=|FElQh8Z2LzH)3 zct$@~-dPLEJDEn-xUcd=Q>;AcNK~Hg>G}%g8LYVODO^Opz(OiHnxH}55*qwb9$oSs zHCS<-O|elxxa{6b$X9LeMbvLQc~n2?cCCJrPwg3!qg&OHV}b^k-AfmgcZUX*d@ApB zf|aNIWcBM-c!95wcqS<;2+FsLAQqwWnrJ_IiB0x0?imOg9g^>klLx#F$>nAFo>`kX zy8{KwJbnCC2x8fJxKl<>Q(ZrSm7cF_i zThF-Vp>^XsuG+u$j^iJ_bK{n~C$`+Z`9mi^JQ|(4<(5CXXm|$Vz=XJOEPB&>CvH9P z{Nwj+QStjfNHKRTx%E#kI`M`N-}cG<|L?8;aKjgG`{uqgR^4*O>PLR%`KRoA)v8-w zwfaqW?){{!j68AcuS~rD!2adk6K~nEVxnifGVHGVef#^q_m?y0 zIq!MzbN<|O&pr2^n{z4(%77WlYs)x0Icv$>zAfcvO-Rt*to^;ae9Ocob$v@~I{CT%_2LCpidDpLGW)52T``=DX zE?E29Os@9bkIB`u>s@a57jvs94HNudEJ|z&W>n7_S5`BHYcKZx3w0>kTh0Tf+nI-z zV|(sCEwUxBvUPS(-u(y5zK2^!$U`a^uG;xnG{3j*`&Y&)uH5mqnyKN7_norv+4p@v zTy{GuAY8?~nSbQ`kL2xRL)Xt!rPoj8f2w|l$;00k%L5X_X>!j|U2t1f&C?Z3-z?f` zH9cHAayHH6e$5oqNPjP9(S1kqU)7fWZHRoj-%%hNTY@`R^w*8qS2y-_{3G?}<5<}9 z@lVB8kJ+($Ec5cw4B2qZG4e+O((N3`hG# za1`1T$ittzj2IP~{CC0E{C|jcpIP$Xg7oEr`m_1Kxf6#H0Lqi*U4O$G^hr|GsikKb48+u+28N=Np(@$DTcSca-VChEJI^ z)^2tG*L9FZ_ZsZ< zblx7l*l7~`#SU!FS0CdJW%^IbnS3sn#a@TyIH63Ps$=X-(%*;*&9L3963)Q zWFcI2ncLYe6MT@qV9t-Qz0l?$eAYX04SZgJs%IM_o(}(POV3W8dUobbf_XzRb0pBS z4N>&}3al_2yK!6Pl!nREt>WFpDgI62B1K^G33=0E# zd8idVb;O#7gy?z0GWn4@oGW_jh;=T_&d+6HLmjc^2he-xZt9985R(=#gYSpqTq*q; z!D;x0U-EE{=&2*tJTO}4Z_NB6c&H=R`5RVQfF~Tn^Tf2MBi6ZdM(a7^bxIrRh_!w? zMBfd60-T*P_1?;sG z;G*>d{fPAgn-S{=HY3&#Z2a|O+6nZm8@ueLexRqWpq-q|l1teIo3aCYWe4`k4qUYC z(2rPl*o;_q*o;_q*!au79%bNMauDjrT~M zOC}z~!;vY(v>(By4uQQo1or9>xM&?hKVluiX2d##&2V*?MP50V%sM32@|rq?ehYM_ z%>efR+x2-D!aSBb;z9Lb*C$_;LG1dRjBqvdQTVJEty_*SsHcv25N7}i2{hz-pq3gHuKzqU!uLVhhrB0PtS7; zX9DM0+gP)Ohn?p}zeF+f+=9(Kw_r2RE%;t?O1tf|@SkO#8*NIj3$CN0c!Gs%EgU75 zYiE{)7g%_?g;!d*lsWZ*-E7S+x4ud3!r0C(Y?epUfeCBB(S~(vuwCtlX8JG6T{pK| zv)_I){L574`WF0?bIXQy>}rZ_Z@V#l-rklTCIiacmRmP;F4f50H&s6*@F!2JG&TXg zG3Wj}we`Q&e$zGUGFXisPi6c*p)+^G@JXx9uzR%e+0T0-ESUWEo(c2?2ln9U1`C*x|VlZiFTKlXvcZ$Qqp~B1Uqt2z94q!-i-Lq zo7(*)0K4*$?6{T@kFo2e)}=PTS}*%yMBFTKZ6Wvhx(;Cu$r#6R%=dhJE1-J@PDT0n zy|T@>9ef-kkZ%l}@^K9${CWACgaA2Jl98dq-)kt}OdlWb$;I;5 z=;KS_`*6+Q1dEUJ+je<*f91P770urgA726|LHYO|N%Obf$9Et2&Qvn7WAHj3UlfD% z1<y>`1tIsqWRnG=GS0?!BBHM-9&KV0elzcTv?zcgZw7XM*w z{!_Z|{7CGZ+1}%v&g_dH{MopZ@r8uhJ>scfp9qisQQ5w}EHvK#Un>_l@PFh%_hX8w z6Hl5tt>X4_Cw%GcFbH4Y{PlxMBXh&BceD7T;L}f!a{u$2QAyZewQ|O7%3I9GHwMhF z`Ep@jrE@{$n|DnQql(NNEQ&uF8(KtVomV%{+Wv z|CE`pT{1u9gzxJ88B2cnx^M+_n=&(>tVG6tLfy7kZ~x5+6sFAGaIz*d)0*Zs*_3)T zlf|e<=FyzB{=V1y9_n%PyQ%-sowtQKRo}m$Jp7Ju<)7e!r|O-rFI%>7p0{ZH!gV*M+ty?wXLd#~ z>|WKiI&$WQfhFZNwmse1*}l31`)UtZMX>n6y7gU=%PwEE=v+)`V44Es{OpW@qnFLT zC}JIn&wDql>A;c-TsEN-DlsmpQ#r;UdZTHVt{-kQm-~Q~xga2aI8!+d3KKcu+nvgv3F8A{U z_ZMr=|M5&Fm~&F#^m*reD|{(vj!}I<9++VJLVAha%&P{ULtNZ%Q zDh=OecoaJBeWwMmM1587GgM&7`*VZ-tHo>2rr)`M^f)m|R--21NA#g*aM&R4>1 zPX?dc;}$Ty@%qQUv&&uDqGsI5HOr-w76LimO&7V3os~K@-1gk#xXjHpZ)ehPTlSUI zI7!O2ozPczo4X2yVINda!|77}k z)BB>IUtIa-1E!xhTm9Dmph$!Lo-X?HC45t6+O_*@*6Rp8-B;cJRK#7gXWvui)S1;z z-u&T{m2xeZHeQcKObXT$dQz$P@mes=+WiIh(y^ya`f2jxmxV{~8#{jYQ$HF#Yg?~b z>Eww$vC6W1ydhRuzO*v9uks`;bF(BKalSq_`t?Zt7f-At=znVWiJ$a2kryL-zcQO0 z`d(f$SDZhgzjo%f`@_NBM;MM}XU4{!cEz~y;k$5Me1R&H*e`W=gn zEQ-{(C9-$R*sYV1A3M2yac!`9Cj~rVt1h8 zlGxXwMQg^<5@*H}iz_jTh&~qCvrDf1s%?9)N>91lLvp1q$%y62@uq*BgQKHemt1mf z<-k$ls)t<;GjIy+!MCB)CeG;#pe6Rbblbku%KA?WM86qvhmd`>_Y_+&Vv<^rIBc?r+H4#f#Ab;VHF?KyPsRR^Eny1nS9{B{3~iO~?on)*{&uCl!XLw6W-x!$_ zGC0{m<-v*C)c5)TpPpMOi)n&r&OPxdJ@cl-uIiq1)y-<6JZiIPVt2T#=e{YhJ?kCQ zdg2EGqP;73+<$Y=mMNdCn-KlzJ@CC2xdlJ~uAlj&tmDNG$1_ z>@O~RGT1jQ(!5J=e>MB2E*)*!mN|>~E_O7RkqT~$?+aEu@Q^!38~@xN+rF2a_^!5} zCijeqVKbQ4hYEQ|_6ML3Ye55YtVY`+zyu=T<&(-2>N!PYNeT zRbr!>Uj%-1vU%<>O=(MDX8!Q;6=jF2n)kDNKX#Hc3eRS1w}*#K689HL;vP+667%|yNyGdijq%Tv?<=q9f990l&rr{@FZr_J z+iCdjD8lz4<(oo2v&EA83%)s1_I)L>^u<2pwGuV^{HeVkF}$yOb$X}a#ht2PJh4W3 zr<1prcJ42Dc~|=oHQ|{+A0UFi(b$+@gl=W%KxO{)y4aL``DHaw-9**STY7Iah8y^c z&U6_bU3xnifQh+hy1(ufhHE+$4_Aawj~>A4ZUfKZ3(>mu8K=6$mX5agWbk0biItV3 z3mbo1d8+1#pSu4CFsH_GpK|K)P*YGBKSN!dJ-KGr?z8I`&UT-`-Cxwj*J|d!+X;^& z?VR%PxM%Uv*P$}}4}>$R+4-g!Q7n5fe9GdA@Krb7`RtL3A8ad|Kf^gP;Rhe)US9`4 zHTM3^D^d&U#$V1Z1pUGI>dF;m`G&FmHNi)pJAqTz_gtj+Fl%RF+0?`tQ|H}~ul>;O z*wiy`={3(X=x6chb=8gY`NGjz5MzgjO9bmNVmwjti%k`;O30bXQkaSw}sC~ zA9MPrHXRxhEkFR#sT~Vm^S`YbbWfc2RYNdI2%2_O{31M)hy8+YCHB~371n@# zY|RhLHkBPg7LpSt;puAXiZVR;nWMtz91dcHX6^*BIY$OM-bHKHT_3>&WY>ny2)>NO zKMH5AH*Xj^a;w&K;thj&xqx)O2B+H6gY`vsmq(h8$`hn1n?htk_*BeeIIcz)~A zs}{8P=iK)G*{o^rc=E=zZ+_kOe$POAKkZq3^}V~S{u?Jag8r;&@3{xVeQ2_UNLcgge}m0$e4Ei`1r};iN}J@vuyC)vG&hLdOyz$Zkl%f1(jH| zvl4hqX4~!qod(`M3TAG1>i(j~xtBf8r+HBL93KCGIsSWPn<|bRKG5HPG0Li|q`*xntVCjR&@G z8IzxIDl*C!lzZG~6}#WD+dZ+2$;=y@M}K!BT=9HxapjNjaI-bw9(+M%_*UFd{*4(s z`WPN%>jK*@aYupu{fBC@Gs83SEb|LS+wX?-dCH{W_H|~w8J>iPpT(7YF8dvidGrm8 zJf07_X`Nen_;HY;UG4Jsb((MKx6HHDqrX3~xDpRGB$Gz~9(^f}{tdZVZZse>=chwH zogdO}hxw$_eu6JYXv?QhirS+~H^OHkwV{Gx9@f4-G(Bwy20U-|U7-M)Ni zc{See?-F~}Pmr+YPx-0Vf4pK@*kfE|#I^<-! zQ{l*YzJ$qn862e;4|P12KIepa>=|$r>WJCq$uk8`ZEJzKJQ(%-wvked-{cc<^p)QX zwT7@a`Kfccc#SbVriELD$=eO^DYPTT6uHU62jNqwC&tvJ(Qk*Z`TPtp%SW3B;W)R* z{67pwJ@J>|D6~=0I=9c=GDPy27BL#ho^zSBZxEkpaW0Hf>{xS7>)bwtFxvq2e*s4!KXC+(`ftEds3+#Rq5f$&O0oP<7pQaNQp9l0a2LXr z!F>>pLOWs(kIA_WjzT^0&2ZFn-d6KG3V`1pQ$NMh*8;O1s80ZEK2yLHa;oS#(rbbK zd2nTL?-rwC_T(fTeXU!zJ08b$&w!(hbZi}Lc+7P1dF%{0%1Fn)12#OCbwHoTz6*|0 z>{#lUXZm$;JSHkWkBz}miX9tdla96{T?_3%}s3*P>KJ}Y{ z*|v!91)e4N1qie4{v-LjwLG5AcwNHKes9Yr;Dz;;Ia zIpQ;|d2p0s$J%MJf8ep~rzyqkSr(>6e>xoP+4s{ZDP|V(LC(1wBu#arNK=>Dl&vSIyFvsforB7St zjqO^;46}hL%qOvq8OT2cj>oKr)AQL5tk?A|z!V-!Om5n5w6J~OgxZK+n>6b#8yNjTmk>TrV7tKbr~&k0o9JpZqsi zdg83;|IX4AGat0)+B_8U5U+qw{Re<~2=yNXzC!db0kf~5%};>wXYk7e5ZbF~S?u;x z%9xYqK2TRU*18;eCbLx%U|PgF9=_Ys6YE&?0bni5PT*N^HE>7ZIQAv}SGdW7$HACg zH2KE^^BSQI$2{5&=K?b?w7Cda&-?Yj_%r%80BxT)S^92Z&GQF<$HJcccLP(%siJjA z9i! zpjV#Rz&PC4&jHqZoPK{xd;U)k#|JfVTo0K-Ju!83p9R)Db1zfn+z-riPn%x?FBF_a z<5!y$u+}r*0c%+<;{^g?S}Mib>SRQMx}a@P$8;OvD8+b8zftGj_f6Y?9iIul{z5oPv16&%x*{$n zLGP)-jSc$#TOsJxoW^q`HXuQ7H0J7prq=9u&7sCO4@3e52dyH(@LXT~MZPfacmonN zt;r5wIuHN~ni2niD(JjtAYkI(>kD&aHy}aNE7)N^5e!JsdEY<)C}>9d1FE2-BSKdf z^xhn3I6Ytt6f~<@45)&p#o6KfK)~2*D|FRCvnum|NziE<2pIcyzHqxQ+~Es%`NB8) z!ri{`Exz!rzVHWp;Sc%3y}s~mzVL^A;X8ccExz!bzA#5Q0}?d-Iw+h2&XaGLL>|a$FZq@*NhV2&0@cVu7YklF3zVKbX@cq8wrbAJRC=J&8K{13h`_dcNAd2m%& zYKr?Fs8G*)uL{F&N0|4NiEvd|>3^z(rP58YI_c<7_U*_~6titr~K$z*XomQd0`vk(9fp3Rjg*PC)udC3W_j477zv&CV z=nMaoFZ{YMe8LwVE%$t;LH>98!qa`>nZEEP2(vuA4y({Vzt0!H8e#IX%~helzR4GV zyD$84gvmGB*k9}H^2I-fFzcW9p zrYhVICLzr888P9!bB=`hY*2+!$@$Ez2-96S$o@KKg)e^9p!hcDMqm7gC7#dZRn9u+ zUSIq}67RO3cJ2}B3DbWHVXEBYJDe9Jd_Qyii?F^X`od=;%=+VawhB-7 zDG9sn|2F4h3A_Erhn*|r_-5FT#r-db@Gjszrhd0LT@nwKId8Z5!aIE72YunazVKfm z%>236&z;V9eepj+nB#GlzY4PnuleHt;0srt>|QT!dGB`Kfv^her_L8nB22xT{&uVj zCJTY-@?QL(@I-w)nNGLHWc{pct|6Adc3`?Z82@RVTa31>?G%edQ$C(aCA84mLozTqH=j(Iv zsJBO3rm3|dovqjX;xgH6yrD6x>1N_h(T4hz)>16dkjyuvQkv(%JJBUGjoCyR#pbed zYum*ro@q_gXOemv@`*$upGs-58=KPEhE!COPv=stty!;N^=bU)VmitV;#euIxh7;S zropB}v^AbgYAs}%Qn_^Aqe4t3nu=*&^RaXT3Z{)Ck31!!-i~qcWIT~UYFe;dQ!19u zd(|CFM$_3uLSoYm`D7-a*Ak^;`PTZpSHH<@CYeiS^h${3qS;&~sr0w@QN>Y-o)&HAKB4WLxv;L?)pn zLcKI36ZM)aRCz3qOIUK{E$iS?#Tzn>O-+p&>n-iz#*re zTX9V!wVB1^4NbX$W|qq}#2ZsF&2uu_(8OL!s4{t^+|Z=44GqayJsOL|=3=e!XgsU2 zP3d&9A?r17^uD+>8uf%m^RapqQ7@}#Yf~(n97uQYzKp5X#!O?zYi6yEWti~8cpI-x5*d2Eu0>+E9o?qCX9odXB|8W+JYIZ_0ZC0EExs)Kfk^n8w`J$1w((X&}le*=6|x6)2n zP1I9ItnJ6tZ8H>*Ryf*FM;vO#52P9{z>Gsy!_kI1;*jXOME^nfHw%6cKI=0u2S1P= zI37zKaY*#Hi+(%&NpOL=_<`IDM|WD+4H}!up6cAJYu<`0&^o$#nmW-QCdyusFOvm*Id1_3$ zd`N}V!0BFi#39j}bmcsnYX`?tN37@3oNFo}#$K@D7tFYT;2f~-CAV5IZOwT+#oc>! zo9KDS1A-62|B7Iy`E|kfz~|*k&PDJ|ySfwr!qY}Qb;Kdj^DQ#<-SpuCJP@)Rj(X~d zL!virN&1kh#D+Rz?OROySquflTvOnojyNRxTY<^{7w{u+nl9Te_0$n-y0yRoNp~|a zZKxyGbn9p%{HzPwP)Drk_KE%*@J(BV4e@k1&BN!!hB{)+LzFg>hlj<6I%3TOpcAO% zuk<0n9|PVB$F&uCUA`n3p7V;}a`^0RFaheU7M1{)OQlW?@5jyNRx z&xoGoGVNq36p&qTw5N_ZB>D(&K>GQ=1f~sj#M=LVS@irauNFA43_lQ_SK3oY91{IA zqNhFEhu+`6D|+gP^}3!;n`Zn#ehWuV>WD+l_<=;>w10jRm^RcAYyX^}4KF50CDNu1 zb;KdjSBbtBehP7c%V~}KyXdJS4vBsi!htJjfqSCZP)8gRJ>#_fj0dg`QRBY1(e_i0 zaA1W|I}v!ap^i8tdeaUi-DzS&9kJ$zZ7%RW{6J!GWK9^Vytpj0auTqX7Ii5T?kV@8-4*N^nOlrE+pN!97`Q>v2;yY#v&3z ztYvuza5ePP;M?h%`ylkxnfsumg`ig!!^r|c3OJ$n>L=~m7*6OtPSG<~>&KjBXp_+I$Uh|_WJU81LsSjWAe6g|Inokx4QmvIk1 z=7Bn5y_YSZjpTW+*ic8TW%-KeUx5Ej3oqiadHg`06FqgrA<-{ESox2N4RyrIznnH4 z2tZyI8|sKdqF;e;l*02Qpst)Dee7KUwtm!cPh2_sh&ypp8djeLvAtM;sFUHqrCj=lccs z!Dn<}Esu1Ze$i7$91?vy!g{@P&Vgm2j##hvF4~Aa=O1Z99kKFsTRh(p8|sLaXCrN- zo$%X2@=!;t=kZn1^PB4)+ONY8qzvtt_C10_qGw!y8HV7t?Nsx|2q6xMo?*SlCjwWG zr$*jCG`P4NUZBIpweV;|9dStX(?mZ9eg&MapB)oDb;Kd$l{gF+=)@0X792ULBMylk z&f&ty`1-n_PX3*ic6t61~Ykj!i*l@{cx6iNcYS zI^q!Y%qK+&s6jk3Xe8&L^Y|fJx^2E1Hsq;=3yGd_gLs$-q=2W_)tmg_ z$IFlC89RuF14&2$&uy;W@W9675j|rE@kCtv0-g`MdQ`Vl4IA|f`^ID+ZyDmh3k?2_# zUJv@5%P{S!Bi85KrJ`q_VXk-Buz6o2`gZtP!5iV5x;oRnhUQTZyaYZ)-z~5`P){*! z<2^1m^&s};Pz65X>d%2kd+LZoqUWuG`UUV83uaS6*Xac0g2gS$37mx=2(N9$rtG3O z^(L5hYI7X8TJ-$3nV5N)DwzIk!Q{Byvf+2mw5PvIFw;C>*}N#2{u_dsM}8xvY1Ig( z&;19eXPH)7Hn#|-|JQ<92kf4-ZGQ=v$5KbEZ7c$;=jCx=+E7QV?|i-``k#Qi7C7)x z{6M}7M|>+Vq<>u9s`_F#GCgR z%>WSIBXrCkk@}>LSjYUluLZW_2Xcm;C%v?5QKx`p?p)89xv+p2xA&neluxwK8s>?czytjjTqH zSo2vYdj2m?8{z^VbL|^NPaSbc^!(<=6C3J?wLZHM z*81!c8|sKPpKJ<&9r%Ithz)hbA=M)sxQ7;aS0FY$fHU#2R=ay$Nc{$d8p$vPe}B;zTr$pt>iBe4g(=&2(P ziQc>q0Vj`Tw)7qQ*TtSXVjcV4M;jUAJta2O5$iklowVUi1M*$5p^jL`etifBcp&8a zV$&x$B>G(l2R?-#$WgJOjyNQG#swbWugoph4d9UI!%ziq45b1tz|4pQ&UV2Hc-4a0 z7KzK@-!7OwZ}Zgix@Q)NZv*}d!Q}p_V5Vu_S;2!JskHq;U8b@7eq2 zAcRdY@EHT0%fy~K;*jWt+y&`E?@!lUUrZbl zh6|i)pxcK$>|M)|Bf&Z{J%^zP4B+UF!j_C>wP&&8@Vq( zCN|U&>wTH+Uhm5X#fCa!y)UO|BV(BFhz)hbI=1kdM?7Er;b?bwp#QP;q(7u z^!zU1vE}%IaJ))Ab;Kd)8MO#5@HzZI%)An8s3Q)EehI?b{-eS}9kI6m<+S-cejw(( zH+ZNc4vBsR!djM#g@-y~Ez32u*^M8_GO?kKI3)V_iJonECE|3vofkcI#5&&2(ni{6 zhuBa@tm&?%4J!mWHf$hGje*ic8T*TP2H$Qbq8VnZFVUJE_6k@A``D$=5kSj+ok zIrf+EH`8A3iLZ#BI%2&Rw$SDa_<_7GHq;S^M86GTyWKAOfcq+`{e84wgdfO6(NjmP^}G{dt>=i?P)Drw+(#R! z=NV!{9kJFk?|)1;jO&}C?PoM_H3uUQVr@U~0H&Vz^eKW9@Oi2NyYK@6ow1>gI3#*N zC-6o7;`)WFjvDA5EA9Ub(eqehO}7F#@Cbe&aX21J9dStXVPI|Bq@xXW#M-tm5`7jv ztC%*+;g5mS`O3>gPaUz&S60(T%JP1(p^kV^8NUPt1k_G-y@7+uXvSmEvy8-p%82tp z!BEc}%Q6xVn(NsM1tbYaewL9qBzjYJ=$UtxLG!!-nD*2W56bhSP(UWZRmTh*l;`oH zXP$`%0~^nfgi>v+RM8in1qV3@7dV~B{Z=8s z69stzF2F%Ic9%&|??&>)X)N$hyV(DjA5Jz2`mBeVP6psA@ z(k2-WAWSjsN-(QT^~}0r(kY&0;RVF#(>mTURAh54MN`Y{&fxKZ_W z#B%K?EZl5i&O4~h3JYf~+-~8G7T#jvdoA2&;fF1JfLQvUXDs}Jg^ya8;}*4l!@>^Q zi0aM0$HK|+gX+z`$D;oa?RzYJBliK+ezM!bn=QPZm=_{sr-gT0c)x`YTKF)r^tVSW z{IZ2#xA2=5u0VU&{+a*Npg3aT=@w2|cpkCz=SwVnjfGcRxXZ#l#ADp@ZnN-x7T#sy zy%v6gSnd~xEc}v%k6HLN3m+$z`%5{lOT}X>Jjud!7ETb${ixZ(i!8jt!dVNq6U+T; zqlLFv_+AV5S@>ZKAF%K<7Jk9PM=kt{h2OBSgZ@MF6SnXK3)fmWYT;QHUSQ$n7G7!L zHVb!Kc(aAK6U#k)r-gT0c)x`Y63c!6u!WCU_+<;fZs9kHWt>ofeo-<1Cqr?>!qbU) zV}ztEJkP>QEPRcHR};(FqsziQ7T#vz`z*YRSjH-QE&POq4_Wvn3m>!aYZg9k;qnUb z%lK!Eg(q3K&cX>|86!1Yc#(xySU5{8jxT>GenXIXfGg_jdgaqU-HxXr@d7T#>(?Zmb2 zu{$li+rs-Te9*#&EquhnFI)I^3%_aM3f$i`UH-3t;)sQ(6QAkkEoI?(7G7fEYb?Cl z!d({bvG6tv-$#6wo7OH1@3rs~7CvO*mn?kD!mnBQxP{Acf7Z0dSa_0!>nxnGaI=LM zS$Ktov&407S=ueU(ZX9Sd@u3Yu6>_{AGYuT3qNDw7c6|#!mn8P4GVM7uW5xXJi)@X z7LHnYmW3Bsc)5jFTDZ-^-4@<#;q4aQY2n?()7(1QZ{dR$K5XG57Jk{nuM?l+^1Nx` z3XGdn&;RXE9I^0p;_2?ODGSfD@DdAOW8u{n?y_)?g|`vUaQW}E@GcAQweS-bK4jsS zEPTwuuUYuGh0F0=uIY}k@FWY@SvX~hsD)=)c!7nN6QAdv$CVatvv9YCH(PkSg?AG3 zfg7^h!uu_J(87l;e8j>pTljTic@OZWg)1-yS3UnXNO8o%(=D7LmUjsAEWE_R*I0P9 zg}aFPq7l+VoN%!-qx0sqUFlZ%T^+8!T2b2?Y>DuVf)>wCDeFjU)sDA@+SI01UUV|(TO_#+6l*7fFt*?Hxq3);O{X4p z!_Wm%Ytwc+awQSxT;uMcSxdUUHmobj%-c1USL-k>l647-7H*(Ebk5Ah+>&0GZQ0PC zWmE6y#x>R6mLBG!Qf983G;9N7@*qtQZV@)#-JshNqSjm*J!s2~xpi4|hih^z`893mU58F& zhyz-ru?>A7@{?`LwXD7g=fw0dxe+c{(~E5AS}#5P0JGiYBk%dnwJk!PLpg@&xx@;4 z?U_D$!!RvQOr^AK>pO?BeMppb_ZSP4!UyPs9E<4KriXcz+z}=qb=n=JdE++JMqwl#qY&K+ZVqZ4{fg< zs`}pjc;FCOV@lV3v#P+2$><_)Gdk9@rV47N;3mw`P5q2|yEa`aZ$-F*M7+h{3St^` zUABT4ZxObF7;inc!WdnetuRJcX)B2F7HlhsY0|aZ3Szuv+zMj6rQ8Z)yj9%_Vxqcs zT0xArZdyT%w@6w+jJH5qL5#OJ+EAx@@U3mg^Xx5@R*-_XW?Dgvw|rVbjJI@JL5#O- zT49VXnN|?vEtggh<1Lj|5aX?yRuGfc1=I>+yv5Uos>>p`jv*`5TWhT#8E-|if*5c4 zvVs_It+Ij`Z`rbf7;gnLEzU5vfFX8`F`TiZG&& zgA#NwRbym6eoL`iTcX_qCEERUiFW^9qTK|}y~1{+@|rp366`W1@@*>7uCGKpe!Gjm z5zF!O679xuUbX~2uJv7t-Bl&p>Haz+osTb+$oE`{c7H6NUn1YPO0@e`iFRC@yOi=SDABH`M7yt*X!o-c z?Z)8(Dy1A|-nfMGv8qJAdrGu3bHyd3`_Covjo}<>34Ak4w9A!fw|xXV=85tNvBPC& z#D8B^yPdGZlqf%i8P@J|Mbd4RW9Xr|8+j0R#LaHdnU3$HHv``f$5+OT!_=jy4l%C3!E$mpqK7w&TCtIN5RLsR#CoFU`O06 z5v%9o|3-xm(BrG~@o~*joDxrzZ;Fra&5PXc*qJ{-k8h5TZ#nqn^9aMKd>8omw#|3H z$0gsz7T+~KzAo_1Fih@`@?GiUdjfns|KwW;M>}4ZH~RQ?flofiK&)#={{|o5aVvk9 ziXHjPHx2Oh{PKGxZ4*$Nbm`ya>4UpI`% z_Z~Rqd&bAd`;$!b8cOB+D<9t*R{q{=@%^KZZ#DRemG|#`de0=;C=6od+I|euS_$tuowEeN4R=#_EeEdG9 zl>{Q1zmNL(dce0EHY{%%PWiqdeA?!|kMLySqQ`SjcU0{3yz!eDmQzL3{Q>mE%@R?! z#Qip&>1N?H-QW87_zg^*979j}e(mFPaPgpNnR4XCj_tsFivwTt*8{#{{aOfmJAVr- zzSS1rG}y7+%C~oj{GI9J+ivk)XYtMR@f{h0@7+GWBNktq#rJ+6A3NhS5wD{4_dXwA zWa&Wtt%I?ik8U4d9r&gynbEl~%@$oH=^6l{PEdih1t~7ri@$u~iUoCjpUOFs3 z^F0&7dOo_qhfB^A<@>yk?>M9o3Y};zc*yqwi!bftI|#nJnPCyl-!(qI zYrw~E@5%QeIL+U!KE5SY#ryjkeSAyaKQNB%wfH{nZ>7{rOe9cNGb_{Ou*>PcjV&(XZ*hPh73G5V8rR`uh z>~K0g>49C!3%Pa-J}!J3bpUqlBoR^gW!SMy&7$9o^78+CSbv{@)AD}X$5%HI=WC1{ z1W);%_VGP@y=zCl`z$`%Yuy1l`_cJD(I-9t+yKXPNsr;4_bvj^c^Q%OtqRa|$NKD2 z8}a=&@}i=4`psB=&8ive&x=H&kpXeB`-=_5Oa!+0in?fJ<%cd>G(QkfCYJgAUb&gh zMqb20_dNthJ9j%DaaO+SI0yMpSdhlqPNYB5`^OWUk&fxbk*2!#ipyqZ@Og0qy<}_3s2bk!`@$=2)|>~bz^#ed1A*Ur|!69{HE*1 zzVmfI-+jR?<33fHnzD6b(=<1BaC+xfddECc7L9hfxrkj77GpbaHI=G09E0pnEo!gY z!D%*K;-%@8yKX=?h_|{ZuWAePaavJ()fU>1FKVyaLi@KDwO6gLoY%R=b{*Cg(KX#t z#IA_0>D3~313K2*8*=`x8dEHv6IJWW=lw-^i|Cs66tNr74N6~{;-I!&Gf}l(y?Xi8 z8n^4JW}<36d#`=YC|15o)%wc!T#{{M+4#`TukCzt!@-Rr^18{{KI}+wS;Vto^^$^Y#Cl{hz!2 z{7&r+EBqE0$q3a3vcj+Z}Nq2_Jwcth52@NK!WD& zsvYhf2ml4~cGDiaR-wJ}no}Wu7o3h&tI&S=ev)CvRpF}&wm62_S5~3@atzEc$C6cO zzj)Pa#Wy+E4T_&>_9h(QyTE%->GHqZd?zr#Kilk$IKV&G`SKwCi=1Z$@n7tGZ&3U~ z=O=^WFLi!BC?4$>6*9p89_MWmcJuRIvu70J-S9Gpdr%F8FL!1Q3SVi~;~a>8pL5lq z_^X{Y5_aqFTBlpWZvC~Gy`Kh-Pdi*sb0C~?K07F!bM_AkuQGcz(ca}><8bc)hF$*a zoqv+B8^6}9$vP0f-Z?QS{sw0>I>3SWPUoExcI#tv#qHlc9IsV`h06cYuwu@JCAM9u@SWtAstO8qD}R>6M77rm8V)`8pJ2}+~{8Sv-WKx z4%>zp_HP%ed@PyIWK)`r#%wy7%e3l#siRhQ}x+|Zf~89B@+38&CMGU zI1f>8=l5JwLpqag)h)RbO?hmE?d|Rzi)Jzn$p+1HEEUUT8@(O6@yev3KI849ovd$4 zW)exIiY2p&rc7Fkkd1=4-aEhX`gkrLZPntpHl=b+@g~pMw=?+Qt={wTbfPKRr1hLc z&0;@#t(-KfEuBcTqG_7-r>k-8P%eQZW;^E?BXBN$AecV#_T(lGiJoz4!`C|1X!8`} zA#L#PnKG0O-%oHoCkpY9JSQ2G;dx{tWmq10Pd`+COu1yhHLMLM0U$%!m~t@^GHiY@ zzd#w5hXjyec}{h0hUFRU+6>F{wi0;QDME(jVMh)bDnHa$vvEO&wc!n5BpZ40G%Sz2 zJQ~&p^MfO%B`>Xp;$fZWK5E0(&pS#;i!b6JL#0K%?nySRjXW3(Yx7Q%)R1YJa>)z9 zVavsV8Dyxm3{S+E4BvhxyEen})Re$8Wq2O)bH6CcP-z*PGfS|UT7u14CD_!JU~_f} zHq%P5IcEqPxks4$g7ove>~+0Mj&lOiZ%2rwe`eNo&BrLQ^tUNu=~tVHrT<(&%nF7q zfz$N|R}izYKvu%(x`C^Sr5|f2mj0@nm>Goh!0EbsTZpBf*-k9|$$iAqZ}bsM|FD}_ z`hmT~a=jlQo`4_7K{#D2?GUkCr!NqnjvvSoI9;>s7_nSmuMo?1^g6LzFUN@^_@SWg z1JeG@x}Va{$51crc>=Mt+X%6=&pKjhhf!i_Z~VSEQ0LM&6HEJ9KrHQK39+;XlMRF^ zJPkU<%qmdKQ=B>ceMhEKvvUU zaF>O9ENs?YmFwj`>IIv1R|W62^k&^vxuy<@>#hpU(nhdZcU7=icU7+OEwmBLZ{HR7S=g+*D*b?2 zcUAB+v=MC9T@`HBT^-}r|0}c+%x}LG<0XWL&AO{Ho-ymL3a+J%V6*P3;91m5pR>Ti z%PqXp!e-r7>6gs9tAaPvMzC3TRj^riRr)To?y6w3?yBH}JXWw-cUAf~v+k(KzKR4^H zir%cdDq||M?yBGf?FBbm*sQxM{l8gvRdALzg3Y?Cg3Y?Ca*r_Ut_r@F_JaE?Y}Q?s z`-oY0RWSdLLGLeS-Br<>byp*%`W>_Gs^B+hFPI;tDK_h_PIio#byo$Obyo#PX)oCP z|6Gl0Z`NHEY}Q>Bypr~U&AO{oTzj+bs$jG3s$hOMs`ozre}Ufn%(| z8?)}}nXZjlcU7=icUAD~v={s)@l@B|th*}Mth*{Wg1%gB%(|<3pQT=~S$9>iS$9>i zS$DP0#hnm>#hnuMt;F& z-Br2on{`(Omsh|>uvvFi@LO324d1k3^|NA&fH9^cgO!H5TGro~>*!dMwN|LHK8d3d zS40}o$Skh1p|urj`gFGB)^W+3BCGjGvgr=2I##N&VP3UnMA9{#EuABoxw&lTGCH{| z)_O~0skpY5o7QBxmfM#lKah(3N6GKDMTo&P;k;OZKK57AfSSMgt35*;k^r zz0$17y*Ay=<-|TdIoVnE+&c8ASPu;gHw|5-B^i=&T^23BV|^>TL({7i z=R`kHU^!IxN?I;8)t=^>Ufnma6%<{|PAj-%V=}jQVqvqP?iFkS!y1rbh~?sn7o3c5 z=>Vp%I+t!k+1W~nenCz%Rjy!ocW7@c}5i1B8j3Szto zse+iS&P^4>c+*q`G2V<-L5w$fRS@INV->`BQ(6Tv-t1OEj5pC$5aZ2x6~v@<`l~QT zXTl0%yh*Ww7;k>8AjX?2D~R!C%?e_?3ABP3Z!WDM#+z0vh{@;-TS1IB*;Wwa&AS!E zcvEl%G2U!kL5w#sR~VynbcHcGT~`p}&D<5lc$0VqG2VP$L5w%GR}kaP@)g8nb;7S8 z2J@gvoY!RG0)5^zV8Jooj9@{GH#zucTRzL-V{-rwk5xtz;;V;8aU%`*EyeDt674=z zqTRzK+Wmcrc6=vVN;&FEv@`Drk@iUSx4T3>?kQSI{!S_@&913LyS5VTxHn}f`Qv`- zrP%$vL_70tuY`JjH{Y9;V3#k^?(P!pzEYx{d9PPO{;K#6tOPsrPOk*J_m{}GxkS4? zCEERPOAjFREc)0MzCXAl(k}q%hQPe{-$=Fu)`}gPAv>;_kkkmu8?Esp}8CBh8=OU z8+4+0Pd^LzF1YjH7{_UvPx|<_K_{<~fd=??`1snuSBrS^)r%eZ9`*6@{wY%pKm&Xa z`}p|(+{zahJMw+U$9E7qnJNGp;Ct4`x8LI9*g?zt&py5*h?A)e(s}jAcc46`nM%kJ zi!X_=@}2PUajvjf{{G#^_ol_yWbwU&?^O{-^EXm~K(YK)!_LlM1c}z-2%e9baGJlk zk1qngV&`Lqk8hsEcY(#X*vFR`f^UJ3Z?(nuZi{b~k8c6^iq&7Mk8hjBH{0Ut_3^C) zU$Oe*{#|zc?X~#kT6_=q__~M4-zR*0FIjvSS$tpi@ogU>e|vp=$1T2#Exy0;@o}67 zQ%_h%%5y%xNti#=_OcN1+FpL{<2yJ+{$BR+HCud_T71D%2Dj%UL*(yIKEABQx7gx) zr;qRTA@avP(CqWO#o~L9#h3K)RbV_=?D~lL_#U?S-fQu_*T={C@M3(6e0(ohe9J7p z>wSFDA^7q>zBeqs%PqbS`}pP!!Pn#Cn}GRKZ7)|^e4p|0aSp#&dGGh}&9eC3XYqZ_ z$H(V_Vtm|3&OW~@ExxNQzVG??dcarg`uMJoZ?naBt;P2XAK!i8E7rff;^W(G@wHfd zCsz)>KK2e#-ZI$PlX(JHOZY_^z?|)>wR7eSCcGD|UW2`}le+zUwW% zhkShe7Nl7I{=&z%%i>#W@jdC|<2NM5@^`?;cgW&fZ}D+`G<2cfcw^-d`FqjF_nO6b zgT=@7(QH0`vr;U7+|STHzhm$sNZU)N#mDv0Y(9SLQmj3Xf}PEmu=qAud|V&R=G!#{ zU&P0^!s5Hh;^X>gHs66E_|Et7ZM67qw)nU{n$5@WbBdLBxsR{U;=9%28wP(Zd>X~?lva>HMB!_`{4GcR%F$Qe1-m=oaG0sTKl%9H#Pk0ojHOhR@Ap2w z6?n*_9r?DxDIe{Tj3*QDeO(VYw?Q) zKaw|dN(HlDRQp;BM~UUwSr%Sk;pG;73*TtrOQ@n>XhHAoci7pM%e9*g4@aJq*3(!p z)#RO|Ki^bS$#YF?DXelmm2STQg@~TM6$lS!C#MaouDN#F5BmAkE(<%hgOTjk6-iew zb3~c;N?*sd%?v>JJ$4&>UUw`T%fa@w1N;dW*pt;;Ou+mqX-wfXC4rHct(DXU#6)-F3MwY%tJFAh2MMgnxQSrsrmaB zupR^G{2p#4fr!Q(MA+uzcj7CdBOgCIS3cS!$`gLW--D3e`)J2w{P)bGuv-MZil(c_ zsh-aa-_-zowL34Kir6yJ+JH?>jbbwLJ+pfX5<3cjfJv`>YNbm1>+x*xYCnmpf;#kkv?SFAv(+Ng@DUArRMa^t zUGuZsJ^_PrH*|n)Lc{?r$s6TIbcboCl zXASPTx{<Dbk_2}oiiK351`um*T8;PH|b9y)&LOwegs=u;GK9?Y$ zXHQ=ABCdz)Y1Dfif00R~yoM0|YVlXme|CwpZ%P@oS%v_)R%I*k{7Z0x5V4Yh{IqxT z6e4&ngNrM-?WvnFLQ_F@xX=Qt9cXTr74U5_Dhjd!ZNzCAF9Cr#W~H_%|>*bAGun2AHT0FJ1^ys_N%*nIT-A?T(X zU6~u0#sEg`!2rgAaFgMpaI?|C=`IFN!`%z_8Muexz6!^0BVK`f1ovaOU&8$X?o8;X!BxT~;huo*zjLic?ektivMT!czFSC3_(DC~FNHkB=Su?P&LmqCKynGvPCQp`~vI=6S4vyAqhi zr~L|G)*X1om05iPfHc28DWJwSNtm`J$eEit5?7P^c$XJ>RFPJ^LKh zza3c1%f3p}onqOuuVS0w@$9oGbg;C180}*f%jxDhx+70H0w#=czEve(n{xt5JVd;J;iW;WIw#3wQd$n|$Gq z`NDiIQX${N8i3F6*L~sVeBrjnP1;fW^})2py=~LoSgbRa zYiNyW#pTjTY<8W{T*cF^4avN>$d|VfwtH;8HI>T5;`*{RlTW9ks933s#$-bV|16@b zYvmG|6wbDnP_{k+V=Z8^KAynX{k8e36Dt*eH{RHh-3)jWHfuDe%fK>CR&f_&dg;k|*Fx2~%N(~k(| z_?Pz=T{~i$=&2*tcf}l!=)2#@-!GVZ=X46*3V*xc@50|H zn4G&Uyx+nvS(yDd^Uw(QN5L1M3}HCxS&oQc7WsU^^w~Gl=1Tb7JDHey*esa!v0X6p zvtKal?2uq`{#Y>me-})9^3f5`6#O0VFBi-)=}N)0Su2=j*(ms1u-|Ig?6mO17XF%r zpRw@YTKK4ie{SL97CuSxZSrs7h=tD*%yk+Pmi}K+7c4K^$ZrH29$;NFm@Ao)PsB1WIT8{dfgN~k4MSf~JaNxA@a~1Y= zkp9hd;J|4v-Xw1tA1(;&nBuser#SCFi;RZ@d;hrrog)27PBa}ju=k&f6!!kJ)^y;& z-hZBt4w;h7G95T@+W5J~a~(`S;>Y_E>G_&Yi;af^r)@U8Bc|VuJ{P)@3yp^Zr;Wed zc&?$BDbCjtxzczzaGDEg$qG4NKZG@KNE;kDJpm0}=gRq-A&f22fdi-QhE5kc@7AA$ zeWL>hP8;8?u&)g=U^;N%wB5kH$9S&wuSK5=MadV9hXZ>(_9*Q2_yf~{1A9HLM#s)~ zKQSFRu-9WhI$8Zm7~hh9IB+@(8$GL#oEYKPOlPfv;I#4U6i${!I&YW`95`+Kt>{dO zbW++6`+@_fjo*Myd8Big>A->0#&1N22@c88rUM5~8$Z!_<}d~nmz=CW$rR%U45y8+ zHojT@2Mlu#x?6h5c|6)`lg7h= z)5brju&){NNz;J?rx_4Q9+FF*5Mbgq(}4r0jo*&W)JW$Z(}4r0jei84X_3yCO$QF_ zYlQAZ=fp_oo2CN?P8eHIBooM=+x>@a+vCdI)VeIjekMmWE~osZ!;Y@aN78n z6iza!Cppn{UNW3E{$+)e4f>P3*L2{(Y2%6Wv8Cu79udQt7#}Cx++7@Vppa5W|aN`1}}N62t8=yex)S#PG@( z?uy~=7``@!dt!KX3=8JY@A0~b^PygJZbm}+8xG}cIFzU1P;Q1p`52Cu!xGu@GLPpg zp8j|`*TwWV#_(VaKNQ0|V|aHAKNrI<$MEYhyeEc7DD9q3uB9AjW0-3n=Nn^~>mcXn z#qjwtyex*hVz?)U*T(RM7`{7(AB^EgV)%&|<{HY=^HL1I7Q=sx;X<9`Tz^yy^R9yP zJS*b3HinyHnDLV9@Z7)S_849n!;Dp2r$2@ndpOS+!}0ww%(EQMKOVzR$M6d={7MXS zPWNpS>MtEomFXvK1^T+_1R#H(5WKEHUP)8P@(jw`i-idOMj z(XlFV;yXNVmSH>o6d}4-e&W}|J=iB4EuG+ z9`qSBh7O0KH}@cV*g)pXfvpygC6On%)LzsCJGOWuD8I5 z?-$!~z3wuNlY>U|=X!p`uekKml{{K*55Q%S2uJ_^{oIDSMpHTXGjhBGO(JT;E-Umb z^E93jFMDQWU)g&eDA-ZBcFtpE*_U$9kH?aigVN{uo$#3Xz=hcv1H<%m)|)(_azXLN zH9Ly+?8@&6?GQiX@x8sjC9v?;KT9h-K9?!pa$BaNV9Wa9VqPQCznmNGg1U`Me1DnD znZ-LY(cW609XUI#XMlWv+WV_d6=#lqps@FKtUfR-+TT+JI|{`8E8Na(qPnPCALkwW z;XRoWh011Mea!3Xp($+JX?*{-?>%f={rt$jNyjW)meOW@GrNEBhrOHru=klw?+U@I zpMG)lV*`cRZQ0)6p}e{67<&Xio)v!{|4*otJwH;LZcBAP_+ZzbpH>ef6{?=mU0rs} z{l9@#(BPfyp_?QiL8#;v|HOK*QI zZGB()G50Uib7qeXB%{`m$xKsCs*XZkZ7x41s;t?}ogZj@NZS__V|uepkL^xnAIr-8 zUuxUzhFnD{ie9780kOI4nCO{MrRJ~rWm#{1?t72uzISMx$q@HF-hFy77k_eriBx(t z_tgRA-t2QbY~%W*At{GnBFDB&j7*ke+j(+K4uUU~BW++mTOQ0NXF+V%%OU84Pn5$> zyBr-B_!>E6D4TG}iYP8%g((NF{;)sSeC(VhhYV$hZOAYF`{mg7LvnEFlV2uJv9nx` zc<@DX$WS&Z6Sl`^gv2&BAvvVJrysxE^ry;4hO!^mr!G8AZ>Jy6;~djpgt7!%V7GBz z44*HI43&oe37dWf#;3iJCLck?(;#{XDF{!#?TaYbZ)CwKkoLS!3c^`E9_AR?Ck46V zB;pD}JBY{Iq_?>s+4iwn{x} zQeW+lL^L$Cw^uf``?tKBT54MAYqeZz^h{l;>cNi|zxPScUdkaW0sFmA+JoQwoGOeC z9N6!DGB$;uC!hA<_d%x{4+r-9pwzkF2mPSwz=8cf=$XcI_M*-Bz0di^!-4(YCp{l& z;22pP!;Jm?o+$Z82M+A_L~GzR#)d=u{%9x@y8sAf!Uczf{3oq#lRmbE19M*!3FV-D zA)y?klPd@DoS|pP`F=y0*tVw|4+nOep&UrOB$R_}=E}kNkYBU&G3j9+4(xU=Hl8zg z$cuDbk`NMZm6USPB%$8|6BY7h<-nO99uDmHkIRgoD?j9mNXbk&^x?qq`@5yO_Vcrv zmw&J?9*NtpP#AsA==Cui@?v>^ukmnT&wEHeg)f;chaEVu-=hs_wtKFjoTUR7+MDq$ zw(UImh^M(&n05LQu$Kv8*Evj>wUrRC>xA^{S{@lM=j$(l{r)R)``O`QR&szHYkOq1 zR65uOr>*Us1Fr;f+#qf>)U3*>O+ul zzsGR6-(xu3?=c+i_ZSZMdklyBJ%+omX?52V!{L69@!@`t;c&ml>Nni)F&ysq7!LP) z3_pua>swxm;c&ml_;A0+aJb)N?IhgqF&ysq7!LP)4A-ijbL}dI!~Gu93HN(+Od;WZ zkKu5?$8fmcV>sOJF?=gF4G+X{xZh*#Hr($q9PalR4)=QuAIf{|HXF4#+*$~u$K3q{ zkGi;J`6UOe@6IPcx?1$ab51?CLWLqUy)^`{b?{eRamgk6WWZ3dzB_5z;Bg2O?aTGi zfv&b?i#x9DxMYZL11MRtv-q+rI<7eII}Gv2#Vz`H!`o#56IZodBn$6w2W9ysS6+IN zN+Ei?zh%XW)|R%5;&)1N8RD)@RJ8kUqj+RgxbgcZZI^o4zU|$Y+|d4j`!cy9{Q)t# zf%^e5xiS0!F}ZR30WrBD{DCn(d_N#2H`fq8^2EDCNTS@}cPQj?6ph5r@n%Jv$A)?R~Ygq(?V@Fug@)&rUhP zo;_|E_Qx0n;TczOGXcp;_1|=#C&)1_C64gbdG=@*m&m!eJ^^C`I5;(AmFtA*Jw*WbS1-{jd_r|?C#4W8TkWuCo4J)gW&@z|qY+#cg8spitR zM}hcUl-q*`H_IW9%U-#B>~Wdn_Kwc8$2onf;$7U{Sn+XtugKmUDPd2uM>%_SdG_Wg zT;|41k6>kTk&kge2jEmd* zMxMRLWe+{<9WUqh(2s4NcufahRs?NOO)ThX(*y47W;8Z!^_?l+Vg7yH0nKN8H?{-U z^ZUA&9pZXnwe|J3Sjxfg>vGST4!BkxZx0-;EB^XZ6N6>n>zi=Ll{b#qQT+9B4~*!0 zVqV{twQKrrEQ{Y^litp3qBq>*>@T}cS1F^%o}heB+U;qxD!`;T~!4FZODk zjGoUNk?l`vos6EaPR5I2{fYDYwEo0PLFwoGYyF9POKwcks69P|ttWlWjW*WY_=lhu{xO%ju_RM6yCgAq^drwt&8+)+u=PaH`Q{L| zzUH=;W9#pOUig=-8;>q}ZSS-Z6zn&MP{A@!NVyJGj8U1Ll8S1fA~kk>;r20mZVC&C z{DJLnetqvm-B>?xp_;OR+xuFQDw=R-J^I)F`%7*t*gfLLF`0s<5)$#7C=sgr{?u$e z7cy?);NHLPjZQxmHe3ED#LB^MKyq5+NW$mJkkc#E7>I8Vc6~TnC_Z{@J6R4HN}t0# zSrH8bD#3Eiau>?6?N&L2ZNYG5a`($|We)z59D)vbjvV~|kwf6Yq#r)TP9*T)neyR3 z5aYpa|MVCSri()V+!(K5kp0S`BHBl(Vo;@g&z4KcT`Y%?1~5K0uaKjg1Ya$eHoRIs zf}Tr!U)c0Gd>p3=?C7i$#N#b^pvPK#aVZEhp8J@BFzSnk>Gbvq_xP+#Lglj-9~F#M z8bgWf#m6ngO_y^ayg;s5j(bt+ND^(rF2vI?TnN)Qx)8q61M&%Pl%wF6$(3mIdY^oR zLMcHby6u#={9ot3yHNXX;ppO8PZ+kXTHd9bN-OreyVKFFdrq+!y{@}>-z}Vui`!P} zo#+3;i__T2yIKg)l@F!o+B%zocAjKA0LT;+#6VUx5}7)F1F zVf+so{!j7Lv*%r1Y1kGH?0G-Scn;ujKyqYBJ}T$;RKWhOA=j?(bSNC4U^<;k4bvHo zlk+*#D~*Q(`}>HrJ-;XSIn#jy`#rg=u-}v0B+S0xz6ed>pDf4=aZ3UIWR%`4lq7#(c4V9@o->o zGvptAI^rtBv<0&5dFPcDbl||A_fhCrnSac5;J}{u&<;63CGB$9fdhNq>EGZvF@*MJ z<#4U>a9}S7PFmcPE0&M*`+0(iq>gtaH}4~WT~ zH4lvO6X^fgl5~InGk@Fp z$A0P1ryNXgz1b_0k5Dd*JzTt8J}m;=Y!SC=1NtNSA@)NY;rr#{`Jk_vEa&3(7>~s5 z4anXcaoD4ebbGsmgALI)LJ^V)vHxrP&B759>!XD{zdoKyc?Qtxw7UzN<@>4l* zvm7#@KAt`Zdz>EJ-k*fy_PC$sgL_5g()S0$&5)8oWfEIB`g^x`xQtDmdk{gkp z!|FVHFUuZ!*c%(OhrUeYXOicjwL@ zU9B}lno_fsu?-{iHNEZQ2EMWL*GC_={ip{Y-ua`85=|rSDA2?0pB}kk8FSnNFUmV4so#|7 z4RbHmTV5ErCYxDMS=O^tQz_y7hQ`$Hy9k6g9A=j%7LA#A?#|o3^46k)kA&H@SD9~F zRx@F)*7huzKPk1mw{=os??1t^*~@?pCF|P~)vde-z`WOp#GbEA&FC$PWbe-iRXxj` zQ{I}fPy3wHPnmQ2A$rlj=6nWwmwYv=H!xlrmRLCJ51~x*GpaITZ{eB!zAZ1TDXU2B z{v}LU4f)#N@$JJzMF~uJrz83wDASt)J!Kz0=Jildvo(J-BAP#n+gDsPskozX`t%oz zo*KqmBjFCJmXf5i#pm@oWuGc!*XLw`cy5fy@lEZVzOQ?;;BX)m_K$vLE48MMimM!k<2&EsY zqqQy3`zs2xKY7}uHCyM5?w@$?m>Xx#Xe&?*8@@>71H-gN@lQce&j%{i`xE?W!w<-c z%7he!_YI`4*Jq*<*|z0{hrhZZok?-j9DQT@-jR14eRSF9M?CVA!Q=Z!Zn>p)uxZP! zCk>vq<%pMdjZ6$yY#*`ZmI;H6TW&paaL$&`mVA9=FfgcX?j3RC(c4FUdZdnp^ujrR zCQ-j6F$W|iR*Dg{w1qc$NZU2pUM+>KS6Q~au%qC`VNVqfZ0U&_`zghk4NZMo!Pv_S zH+EKxiDnx04#|(M(Hk7c7hNx-_ZCf1jYB#yoD9f8$ti=x|uS+SpQ?~wV(YzmKn;#GFl!O<0LJFdnRXR(CKQKIMRkHtA zd^g0;j+`YB&h|(}_c&@xTdxKAvLx$Qf zGgc`%e9pFqG_70_*^(E|tkebNik(?;eRWK zz`J-^p_7!upCp%(V-^k{{W>}73_J7WkfH3r`8KWt=Vj<4x}mluU!(zlsvLHxYp<^v z!e0J5DFhkHPK9EygMXSFb}p0iHg=^j!nWWK%azG}R}LA(!pjW$`bU!*uc$~ zL*T*a!?Q0>|24vluHdhe^Y+{?j0}~Ata$Q;PdiA-kuNy(SINO)vrFzo!<*$hf449) zl>K-fv(jN3>cQ<#6Q=&Kf3h4lz_a9B=L5ptR^#O$I*7M7+BVzZ&yiza=bMjBW|EM2 zIwL0kzaZ>yA6u~BRRg6wdS9eaL3k5)A61Z>VUD=J=DRoyZ%dRujyhVIk{9N*<%0ela`?@1yo)m^AE9=6_vUNzX${ju_^8A#`4w`TLip&! z59PaH=VcGbC;a=oF!Q?DFqZ$>Me6$Om4r!Q$*S6kQC($?W` zyTsn|;eJT&p}i=_xhLqNU_)nHXG3+RuiDwr*k0Gtq@^RG*v3}9deoNtBvf5vT|;|K zQ>V(1-nUd`I#xc{jo?$|)BeC5&Ghij(^G=|j18V3ZnE+8%JeSqV73QOls^Wn!?|Am zF@{f(&)EbX9PAsW=W~794mg)ivr`_^IX;F%8cc__%C=egoOPLx=M0Sa{N;JV%s2nL z{09xoOFV8^QHh@!#;5o3_k%+Er2q$h+xLT{LtFnKI%G)lAvyMYfqW=`KWKsRaA1Ew zsMUCSd5#0uUtv5P*!8JXe{ZPIbl|}L-VpVdwDjC$I&ff5XI9wvwNaQf!-0KYn~nd4 z{Bk+p?^fgCz`kGljUWj$wxe2 zv>SK??D=9u15X>5>0BO32Rt0u^Ee`=6WWz@;J~hvL5B`g(kzD^IIy=3QQ@5(jw77E zzayC278Cvs4%oL1=}e&+)d4ziSvlT|K|=b)&k(MXL#I)GNPkj5a+X97v`K{@mpafGyuhmGE!^ml*eD(vey(wus>{uP$U^;MMFK3PuPutz50|)lBO+d%W^NXef z2ln#J3j49c`IEfBfjvFt!oIHM-wUGy2ljO>8D;Sf6m|6>!`H}1ypBqQ(Lunz=4PR= z=jGkP{w@{R^MYOY>*UjJz}OG~EHT zo?+4%+MBhdj~NdK_O`Ut_*M9F-Z%b@@o-@88{=(njp@LFJzt^i*|Bh^>A-f@HyQqb{P!8A{l?qC>Bhr>JgnbRYc6*s zq5Vr44(!J%aXzjHX`r*0gl&gMIMgqZlB}HH=dS=4>rYZCm$Z6m1d}im?{h->lMxwg z8ZH;*I>Ckv~_7Ui2a|+2=C10KDcYzL+P}&T+-ID!tEVg zWAUYz4EY|RUQ+Zl`EG|!R9+6=@r}axz0=DUcU%&lCW+^H-|K_>tFG#}_|hvoNbAtr zdGjR)JSLKxIyoRFHONjZYtxz7@yTRASO4#aX?INuH%2~ zv6tK(3+rm_o^;fo@o%Sr@SGf{;e+Wh&O8*oPadLPIQJgHe#80q5cK|Zi2KcQzB&YZ zryZi+ii7B}FJzVJshbVLxHK-V*Db)Q>0o+&W-nfEGh+t5ey@`rxY^>CX}Wub@CkB) zA&zeLfjoPRt4@`3aeIS#_MVlI)l$M9mmBC|k8e!qmupv#2y4BRqqH&a- z;St6j^L1|T_&j@Ah3)byZ0YvO^X$DOd*jR=mj!NbW}ZFX*P9(IMSpJZeR=l&D0{2T z9#bK1k8hjB^V_ZPcZaaYc#CbCE$&)X!UiipE-~ERReAPisloQ!HhAbEtMcrXsuErn zPx&1q=k{*Sv&R_ZZpFK}y|sDv{wRC%EPd~hvfH~a&)!N!%y(m^NAR9JdvjE&^i8C1 zqMY0NcAmY*6~VQ%3wp@TJbQa&Z>M^2-iEQ z?l1esdQH=zuOB;sj!yfG`tl0R;nE|7XRS7uC40lVqnQ!W^HuP3m8e?=d$xlA64A3( z$M;qg_N9*8mKxjBKl;J`?1K;1u3Xvm!pHkk$>Uy0&0dno^k20-HG5j3vf;rOCe1z} zky&%q!>QTF6JB^%QPFXF{A}&kuiqR!O11swuaDVw_h&Pihrh9TU|jU*&SgK|d+(UR z-W|iA8Av=;5IwUq*!$G*Uk)THe~{gF*DKMJRI5@)_9+opjqbTByRvKIst@Z3Pp-VO zaMetn){(3lljvD}>J7J_FgWJ^3l-N_kW%zj8;;&StbcmmRb&DtBMKm5&W9*ABIR0ezc3Ku@{=k75Rt{Xh=#xYw? zIYrNbjnH#o53z04eR~gl4s44(2e#=Po&%GHo&yX2dJZhHz2TMNo1c7T+xN!Zd)(I> zZoK&?naqm+FFKU_I zn`)xR%Feyz=YQSjX8a&N*_t4Y*v0R6qr(w|&+HpDtBxXwT{s8q`q)TTL}zY#F}B4% zM+V!jltb7S%+XsW*DHs>gXsa_Za(yjwd_rxfrcVf}(mxj={U ze9_MNH3IK7{@cQweX#ROVe$$7HOdn9<>Gk^Wl|C85|1kR2B+joEsUM49OVVBmqX$< zBPRd9V85Q8T-!u|Df%~Zy;e%3Pl>sJ8DmlMTa`S%fjiA3%YFI9+NQeNhK_n}3=^rP zYA$Wl#p2>+9W5(u``q+*J%yQAU?mvsfqi;2-v@Y6zz=8c;FUG?@m-d+Hz=8eUs(&}0G`|tUdt;dAHb^Hu!UXYN zzhjMu1AF?j=uqJjo?~a*tYQB);`@wezg#1tL(ft!y`-8uGT(SOu)oJxp|H<^U1K_M zV1HL_Dmn~^Bt51B2ljW>Di!v0-fcQ?U{5FWyQGb_Q;R;0O2TyxJRI1|yis8QWa$e4d@ckD))uL6< zmg$AF&Q&c-eI|0>Y-XOq+eXO1@=KO$_Vu7ItmV!x2h6qQPA&(;&JVs^*}2^y%-UM;tdyJyo-rozy z?bYg7@e!J$a`qlJ+zcrhB_kZ`*rS_wd(R4EkNyO?Q1%=XCJy(a9Qks&Q+kaakdF?+ zdCf85XQVd{VB&GFDoh%hjqg|b%7sba;c}k7&^MS4-m9{=%#A4Q@IQp(_U@NG^svWh z-R+?-6FFI+2>PN@IdpKNmQIq=m}h09~1kFsbf79`bZbz?OLO{t+TGWx{>AI-(kTKu2fbmzg(9qD_3@0(r(+fR#i5&)`vCn zW7`g~B1vaQOKWRmYp1r$S@QR@Ns3=vgs~L`Apxgps}ejPuT2u>Tn`7{Z=7WvCv6)Y zY69%v>nmt+t#!^kavvUK>p$2E_UK9vf_vKThEJpnmZ#zF*(Y`EnU}$^-IUFFbhQ2dZB1 zKG-;+wzkq17CiX--Ft4=j+9>?C-f$IIHzx@{&XsnYG^uqu%co_mTkT3-ir0h z3K#$=UQ^iXQwh!6uiKEl;gylMFE1*4Y}EBKb)QxqRQ&o>^3$m^%7!mbl|3=)fI)-w zq%*nTT}5i1gU{&w+VHKpo%-fk$)X!pzm`cAr4!M+sne(LDojL63l4mF=RHS{8GI&s zN7I#mx$F0PGp%74N6YS?UinFzyqwhcCbrM8b@jqP=VrbBy8ohjH;$J52av|Ub=;jt_7w~-D=1P+ z&Gu(|Dn|G8v&LjL`-Vzmsy>c>tQ@0p?dU}7rJ*N8<=>12~j^UXVn;#t&EzG%UbfRxlzwW}VIy=#G#prp9PMvpd zcH2Ov`R?qzd2g)x!rtCpY;*3{vPFeTTCY|<7?GGfCADjDV)n21erdbPT4@X`a`yKw z8r=Qa%&?F2Ui%+KbmCHf81>F6|2%(mB6DQ+D$=}dAgR~H=bxR3?z~-BeB0?`1|IB^ z@|RG)x3~Z1o`viBju>@xe^1XFedmmtKRUg$fAqY0wLRyMruk>5-|Rd|>i0yp%LVTS zZoE_IE>M5*2fN>;+iSyi6p8xZP)p|3@^bp;!Sm0~Eb5)mKl$5-&Hwi6eFMq$1BrPz z-lBbEhMhZp)P~yi-+lL*8#71UFg-Qzv)KzqW~Od?beuBzzu0!d+8s&ZPlG#$57&1h zXO7#YRTSsQUm0?715rDQR?R#@`~DPx%`=Y-3Hc;}wOd;Y#;qDiuI$XV&KxI|PXv|c zQ?12sp7G_@nMbu2|Ho6qT4#=bE+n{{SZQ5_uc|KWy#iFE^PBMH;LypaxVz-kzB3E- zLCdi4?8eidD%Ps7sr0Pq0&(H2x3u(X!aoh_t()_wwxf8$W{>`9Z|-=Ge?^pIXVP}r zTl02cRS*K^~j$^Gx@Y$|!e?m_NKCIrLrdd%xx-JNz;I9>LKI_5V(OXG4E}^S|t!_%B2DVRzkaeOR>CZTMH0V1;D) z4ENNV#-BFDzl#~?t1p~3YV<(#uNWE zO!pEP1ipj3Q-AUfo8_Vor7wx=Fjm9mi|ZULJqL@=xBHib{}S8v$>gH)WrgQ;&M!)| z7A1Q+N6+ib&YNF4`PkI;f6(!fxqtJc<=a|D%xD?ayU7ln0sM=LH%}Zj;ilfdC2;R= zuPfg3@Q&iJ^zWT8RckrFTlQ}2ej9&Dw_T>G+=9VM2eW#fAD+?nMW5-|A zH}UZGBNBZhk_^?lvn%f|UwP}Pou{X+|3b2FV8pt0wS6t6H{9`IC1>7Ovb{ZQl}pQY zAuSgTk(LfmOEYQd3TX-dO3VD>gnGyMEv3KtO+)u@S8mDnUP63dabkXPa(!`X-l9?K z&Kb47xFGx&hW}yw5A41Dv#HsW6T8Y2eG`wEKVsPMe@gB8cv4Br+|>IqZ0soB^Q0Yj z9}Q{yzz}JBpQmjeX`3I?7XFpCL?)x&>qBr0pA5(Onc&&2N$qmfqQ*Brm72Xc*X*8g-d_G>m$kG%cjmBp6nZ*(8;dnQ`s#Ysp}UcZ(mkJ4o|^K zSmEZqppDP(Iy3pZiKYKq_{^itk3D+wwr@33Cw0V~Sv+?7{P`0{b=SRlLu%J#zF}Mm zf7zIDt{k7*HBmim_ir2T={*6yb4u~r%d3Ycm;NesePc3nlk_LU?|C)X2TdYeRX9Xh z{O4O5N42ENHm50z@#sbWl*O`R8;3nGd{JHRSojNTUM$urN*!wN7{arUNz&7g2I~xa z{ZYw^d)BV6_-$D#x%8K*T}Mza71Q7BOBIbt_KrmB;^ML6XI1=m{-arKHw@-Fz7(x= z>0B{#T5;x;^(|v}4Bz}{j@5`;p{RiT!cE5Gtaq*btaiEnvzJ^}(uRN|PThe{%su_va8Obu5k&^Rk6qXfi z{Hm5+N@ZT_{T1QulgcI~G{|@E56~Y=S)9G$KyXhw+>5I4@;iLJ*SyYSc9*~}pU zZ#(At;}SLi{RSIVtr?;q{>BPo(+4yJ-G*B9PhH>l6=nVJ;Kn|G{BJr>+x4@(nUIG2 z;C2*eCMf>iDE_$C^3%9l2yLPa!b=NDazB6ul`PH==atyn0YwrLtMe|7S z!h8O(>rBr78^iWbmh`Jn?5=%aSYON7-VJc;i!ID_45+*YI?BMnX}dYHntWATeCDrSW{W~ zM&{cMUrFt1PMkgVt$8&AjRgZbc}L$pUl{bJD;R}89K!Wc;A{d#HHqejvh*)!g}9TV zxVa&YE1dBC^wUCIh2}NdYbTFQ?K+kU`vBy{#hL#Uo(aCLcN|;I=h{onE&mUGjC4l zpSSFmrC&?Uo}K9ZG5zC?aMJ!^1Q$*pwP;dz!FgA;4o}Y4`NoG8^gK0*4K)+GZ{OZ@ zNAK5f)*4mcWs}Erd=)33DNgmQ9rbkosAq}`HuMI+aC7l6fr0)}n+Nu8zj@1sQ+Ac< z$kDa;BWzdol_Aai8U6uV>=kPV{tz(O> z8k=3Sdex#LP2#kcSLlCL`3VoCuIY@PKwLWgU9+l?VkBn8U%7MQE1x9{l? z7ma^54{X?acXU0}`x&B%3714_QehkfaT77Kb#)=~M)1;y#|Vb&Bkk#Ws9oxR(On$^ z??SaNs7`+tI*g898@74i?i~dKclY#$@sT37k#=sCU4!!M;R&T^M}g85E|Y>nMWhhM zNSIoMCi%Gx;MYtV_dk`Ia9`y>S9I;e_0F+v*<%}5T#-HPk}F$QEN{;)IBiz;*ei;M zY}(qsvQpQsU;U&lIu~8WJXO5ujlC}x%>8I|A(JWQdQEd~zh~cmO~t+ocNApf`(`Kc z@vw9jRafe|a#(Z;cV=o@@%>Z!%Nq-K3|nK@T8ts0nY-aXu-D&&uI-)4jO|kIVZcOV|RUK z^1_#kGGmvP7OnY|a7EE>>ZV=C_2{-IJEt^X{~vo54(rir zk};8Jd0r2%O8J4*($5x0>-=Sku2-WEvl!G-__j#VpEP4a_xA}hMy^lQ*ah;qmD!&I(Wm@Sj zOhDZ`dNA3m%TkR_3g%3@uK4r{PEFwwbVe%Ks@dCFqqT3qLt$^yboWM{gY%cw_T|aWhh5cWxcs+*~^_D?4Mx*uiA;oUR!&j_myrw$Ch{ zJf$#GKKtmz;FjIvuRkiW>bPUq9(nzd9KQd6!tU|2OF5FBBCx7BF??x8QBM-elwoePC_16@T_H;225@!kNYQ_tObz7E#kN18cXcKgrE$N2?mDyuzB6%A%4KW)js&Fh|mr zJaGQP+k&SD-*G%$L-F}~b{-4OB#hsGLn<#wRfO^@8BO_Zo|1ZIz*aEbQT*uhdvzlE zIcn32*KSqk@FIBESy~>l_uiW`Crr40^P}12o1)|BiA_6FnQOf5j6Hqyj#P9osT--? zQ8c~3vGm^Fo|>K7r0M3emg3&;W9+FSo@Sq(?fo91Grp{ygcfw)m*;&U+xrCMwr`CR zy9>Df$fH{S?upi!I$$rnqjhF--MTl{pLYI6F<^=61 zni$MnzHMT0_34SS)5Az6w4yyv+I4woLshznKj6Cj^LDeI(%E`KVu?a9LG)5ntNFgK_aZzjb%Qqmj%4NSg8lVba?lo|SFji=Nq!gCgxMQgW) ztIhwz7N0K8n+^|Eu5FlEruzw6rxb6TqU-3;9`7Bt`$;vc&>l1AT_4T{vK`u^pAWp< z|6gI&aJ0#{cEMNaLQgy11S9OA^moID;)Z2`Qad!A9`&0ubN&cr@QR{toSu!&J;L)#7wNyRbdjz+G^yQFLm5{ufQ)(_&1=Jy zF4}WWb@{YMm=g%8So>sI`Lu22CuYWTpT(G z*$~>7E`t6z7dF+~g$L*H%j9^N2XXsg*XM>ZdiZ1u9c+*Xw#~{RLv2es+17pZdAJC9 zJAL+nJ`WJEEib$JesyhG|*G@xPN!$~IXMm2tq9pE~*Eow~*+zwehr4whfq9CgYuq+wgwzEeKJwqPzfvAI$X z4(!MH+uAo>+C6Ea4YLonjkj9`gZOcWJ@SaZ0xU59UD{Z1Tz+0uO$d zeDo`Y)xQUwdSQ+)^xrQ`Jo={!uQi?z_8x2acfz!F^to_GA3Q>!-0)OL33kAZ^3h>& zpZ6O6-@-B#bOwaIJhuuXZ0oXLIfx`~m>jC)DJxedH%$&99_+_m6{KV+oALHTJZa*X z_P((~7#V6?*T*OCq-Uxe0tdz?ZMAa5gZ*K2;#@qB>^oTzrGd6Vda%uL%l0?QA#4kF zn>Rs9hO!y*s5pG;j%~1w988}FQqiZaA_vny6#Esjlhhx6cnL*5=Sj~`k{wFe7kI7w zGPzI3c(AwI+k_ckpmT??x3_;3Mz8~3Bp;pQrA)cPPZ8$40zWgxv)I8z<2!^A^uYu% zy-a|1#40fJ@Lv+>V)QEGXc4yhu1@{Kdi_GyU%gdwO;Y`}y?wnEngGUgrNKj9?#pvV81L zRLA0W%7l5jfV9=o;YiR2A1@#Mj|qDoKQ8RsUMq|)+pZQy2!lT?pKX5}(|=BwaS8gr zkMZ2>_j5oMlj9QXfZrz{{Y!GBDGL)g>vh%mg}^?D~N)9?VM}*kSS>!2`Sg1YzRgncR2&1Yu9-RN*;_XTM#h1MU^ZK6st* zG{ZZDIp4u^6G6X#e<+YL{9{Ooc>#NWMZhuf$%;si^CD^LmfI>9Y(YrS za4yZl2x)ftucpEGi$7hC{ra&&e&@;|L+uMLsr2Jhcciskj=m8)7sz>+rlL)qPSULxw&#)*0%}Q%3+7JA#4Ly_Y(Mjl#jrJ z@zMW@96}gO9|HetIRqZ;eQA=NOW?uur6K(>o)@O!a7%=|7e-4d(hK>ML0h)!QPlT)P~{DK;rjPtSwG#FNg@ zW)#5wm*hLYO~8-+S0N?ngA3)O|8Fr~!62S5bcx2#%8`Z&Ip21wFhabGZyRq{Y{Rys z#oI0Q#M`2hp z)PBh)(fEFhOc!1v$F_IMAwz9DPCVPYZ)yeO$!(nff zzaTt8zmF~m2IFBWY@Zb5E}9~)Ah$CQSM5_4DhMa%eN;hsZ!jKi*cS-;O?hEX`un6H zbSUw#U!+G|L6}sD$Isjs5Gu&Muju+8%!{9s7p4>4Ck45aR>T$LR`B=mynV_-1^cZq zMtDJ9{KCBOqP*}&^1>g@3v(jeCk2Vc`vO7*iI%)@TVB{Z$cQf3?@KIf&&hS46oeH+ z;^B+;1%wK69YI7Fgw^)CwdErfY;Ro}=f1elreqQ*+yzpyz;s4AF7jx{Jklv&6 z!WDU8zSHS~{_MQ)IeFpsyzr{LaIeA{*`cc{Nz4qx?zsK`t$4bg6GQw5!tgsDza!7y zZiUOGur%n;3F}10^*J@t)p3d_(V*tf79JbIbM-a7c>Gz3qZMX)V6nzFC0fC83jLx9 z`ESY#&&dm)n-}iP3ty2J_TfCc!2a62_|N5qeag!9zn&NWL|*vEdEsB@h5wKjE-b)u zB&26dUbrkTT$LAY&I^AiFZ{8*@WpxIYZdO+ep!dIME%`OdGUAVg};&)ekw2go4hd3 z=DUzT)|Yl6d}LmDa$cCJ6sV{@ElkYHi~q2~#5Ky5BtDY3I4}MadErkf3>De?XyR4{ zNXN-x`wJ3xDO@i6PzWzhY(v=uy+`xHPb&-`9X~CJpXbH@TVD9jdEwz2+s)PXm+BZO zNwg)#D(r&YWAnnb3Ue%fSgu69;Y@|wh1Z1bmxk#ej_2|azdX^BxBW_m_vQDZ#NQ}f zDczTX{>6#U?L9Ubt9OIxfT?l^33> z@Hp{3awR%ny*DrZ^t|v#6wXTb!JvP6Vp(4N)e2K3jGRhXQNR`rxV+=y*2Pz~Xz>~& z_WRt|U;gDTt#fv<7DKb;&MxNTTUDJ^9lHDPpVw+?X{c_hY_GMI2%73!JKL%n8Z6k> z)LPflUgaO(YOU;SZ>sC8wAh-uw)&=~dNeciy>uw4SMJ+?RZBxnZLan@8e3c2t8#@} z-CAGQ(&1^ZZfvNlt7~`VN>xsMeZ2?U+ZsAL>gwHcb#+H|U0a=}y_2eIZ1iAbOOy7K zE0xOXhRT-qT5nS=)t#+XomzR%(%#Y9Sy|uaIcsffYj0?4@+we?wl%fX`L=BhE$!7! zwO%T9RkhVMwY6TrtqoPxm9=%=h-#{8bdNO1`=#%amWw+QD_5xzdCr@vs#@9`I{n~kY_F9y6V1yWiY8ayAB9hDu8b=B>O z#fz_KUw&o#a&O!%4K0lwZPmV6ZA*1SRb7Lpuc5t8Yo%0qTW@S{Z)m8i^mwYIgix8@G_j*gCo_RdN#*w%*Xj<%Xw z5}B(tUwS3VZf8@K($eS&%`Frb#a7ifR#nxuctKXx)U>xYHFYbc*;F#b2)Q`u>%KA`y3BC8gC%wa;1hDyMigVkWOLzc-lf;h=&Vx z@pfsG&Oy^AogvevYcQl%j&JxObL7CJt<^AoNWb_F;dnYJ4)o!`LzN-3DCm$*@K9xV zzUh!o@P1{8amlfAeA5mIbuFALL*ZOq3lCY>;`Mvyx|YI0%Tqc-mgmTjw5U7{GlRyr z>vH8OOnEXT4^Mf9d>JNvNvrEnw&LO5v23Mt(6W`zkY&rkEeZV$or;9CCMyFB$Gm?J zkK;dWe3>wO?s!Z``k`$bo{Nq!_Sy{NPc*zz{_%!8<;U}0Z9E)!sCE_l1lcF=;GxWb4xBcA zg0R=i&rJso>}8l0PHLY>k(Ei-uzxQzV?2*Xl`Ae;r#}hjSoRACP8&boc*_15!viYM z3h5;&9LW^p;lQi`JVLnE_*3OiRoM46(|9I1c-D0! z&7_B7O46xFRvHfnP8)xx@jU9q@#yJc?hiX~U{B8%V)`eekAh^Y@o?a@@ejuIn-!O& zGnPDLe6!)S@sGsxXDKc@U4N4A7!L^c*TpDKR=`V@$y-gr20+W18ZC#_?gX*zJ= zwDISo^FIAaSlfdA!hzGqFEpM@sEbte@0=pMSrqk{AR;ECe|9m>tmR; z0@;?fQ78jo@;A;fHmeQeFEEVFR}51&dko79^WE5C-g~Ybn8(wW8D`rj4D)E=j}7yv z;4fqNw}z>QVT!{J_TOz7zuNGZq}y$nNB??b_*uj3_jSWOHpsI#*vtxY?c(-NG>pH( zFxzgA;qMwQ*S0Uk_}63j&oP|Q_SnbHQ88Q*!|SX)+$R4P!#wg?p?&yqcbD;SU_b7r zqEoFu$$h2+2lg>xrNTa@+HN{{RGW_(iZs}_AaYRQwv!-0LjjSBnm&UuA->gcyCtNulEbAZNq`nv;*N;=*-ifq{MXKz-i;h8BaM^8s@xR6XSVY zkaTjco1^W$Ot=pT4+r)#Im>t+VV;Y=mB~Wm;lN%dB*n|*6Q%0U<@9pSV|36;aurD~U=Y1JEmdC8=z=6FztU%{%{Yg$V9XN2> z_*&z6^n0b^lAMSn(~XA%r;R_&cf9uCYmNwjI=N#mcE&wXFgz_zQ|)~=g=WIP<$uPI(I{#E%ukKvbN zn0v?Aq}=+ksbe1bH{;>J-rn9Yo=5E0D$d*6TgJnIy}hkN$J!hBnb{W{*xTE!=vaH> zJICn2fxW$LK*#FweWn8k_Ilii&N=#%oMk$2;I#1r3VXSoXF70TFSjMecgk-wO!+J` z%&P;J#_+0`&NYU6w$8b-(fKYfy3CpR6|?4($EO{peVkY&0D> zu$Re$=%n>0`I_m#f%(SHIN^unT<0;F7-wLa&U#>0WV4LpL5 zwSi*J70Npt*xSHPbgT`GG95Uuw}HpevG#d_>A-=#ebyMyD;iIrpV6P>y~e|V{kn32 z@sv5|a?*CWeD2wUdHkO+_-grA8b*J&Z239;TI1oseokL&Jg;;-jlO*37USW-eh$6Q zcwY7RqT${0pOv2H{j0{qfj#e!8PC}5+lEOe&j*lxUZHq4hJS9D@z`_Nw|e{+z=3_7z%vJ=ne?Azm{(X{k)D^s zbmQT`UJkFJW9J~fMjq_If&JVx*LduoW0+TGUT0hR$Rgw6z&^+LhQi5(Xy}_@rUM5~ z8~+L8dBx|Cic6l0wyqD2hXbdLUu!&du}5)!?B8iT9N3TjdyIchenQ7Ya*=$=H;jh^ zr;UF!reBEuM{p196 zblyVFG95Uumw6T)F8U>%rUM5~8()sj`H{}$rUM5~8-KO&q;0j~HS%wW@jRpGXd@#}} zGaWc^+W3=jq4fCqmBDR%7E-@Ys?E6BGvg(z8eoX)4#>0VKA3gMWWo=1Je~s~QVApR)r!7ju z2GfB9r;T5RPJ5)Y*>vE*Y2yct=k>T1=yyc=Uo##KoHl+XI-QZucT5KkoHo7-otcr& zKbQ_2*ylfq^?9Dc7?w(o&&2Sk7%q+BaWOn0hO;qT9>WzeJT-*fD1!^|<IVko=n*`-KC0KRE$C@w_f6FL%zGY&;y; z&sm`j*g5Mg(}4r~IV+1D8w+vFV;>Ie=d7j1ljaL!n6{4oI{8<|_^V_5Ck#^#Yhw6s z4fBfUJuyDC&t*!0womcpLqBTWYm>}j5Zj+MzI(}4qfnS^`CN<*`_x#*ky6HOlu z?E9UEj`el*rUM7|JT5@T%5A3Uz=1t&i_o#Oon<<3U{BiuA->A4n>x{RDY6i|6Sz?2TmKm zQem(6FPI%Tu-AJRI*^htnhqQ|Z9H+wRs5@M$dw)yV8ChPVUpt`o=d6Hqa#c^1Jed3 z7;ctdD3@eMl5l@bI&k6sn(-qPPEJL`?zKq=?pQg0jw>Uayh4AHS~>Ow2TmJ5N;r9$ z{v66vcW6+46&u}~C3d5f+Kjcy4Jmf?nGxX_P|;4(!hxgglzgEYpDlyAFp(>AUqOxk?VaRzCN}z#Qhc8h%{<9fnEI7Y#ov zf2ZO5G(1AurT|D1N$+R74|;u`@-nJfxS-?%-uuOur*Q2!65;AnNxqs z!(i3N%Ao@XPK&3GjyGPri0biL0m+GS=%WKp8z0K~IuVk3IdtH_Y2&{GpH(~6dFJ~u z{G%BDRSdsn_-oRCuN>RXmd}_TOqv;gfRVp7jDEcBEl?afa9}TokmhO;l8?!u0|)l` zsL&qRP(l}p4jkB@JL)(7Hhj5co&F@D9e2Ye6o(z!+it`EDF0c*Kan5WjLmiY z)Oa|s&w>2H_+QHp?WaIM@`@bx;lMs-`>pX@BPlx9mfkcT4(x5IT-cxU3FAU3z=8ca zp9*wN)}Q1g@$454?9Z0e8UH@{Qx%u&(Vt|#@o?aD53HUOFn)>rN`;fXfljm<4+l;g zf3fjB@@vumM5NzsJRCS}d?PwE9?5FcfdlicN$Pj4@tfq6JwNUkUy?^Su$NUcI@UjI zFdaCs_Zzd&IaPm>aNjc<^~d49r}1+Xm*gZPVT{YZ;K2SIORK`A6Zb8jmK-5MQYHtF zfW3W^Re!D^9KX_m3&-zl0ZEe_+j2RHIUg6j&v-bnk6}1Ye7tdn>A-<~yg@noSYmk8R<=-iL%d_KJ{n$)N)W_V!6Me6D}6cK8|N$uHR3XUH#! zlzdK(ZQ;P)KJPM~bI1faZ+lyehXZ@t%L*q)>QC}bIc#PP^X*j9P%h_VHu@%X;J`kf zdB*rxRaOKuJn=*)JT}uODj__GdLSrUM7| zXEhtqfs`C+I&ffrR`X_B78zXSn_(D@+Ft?0H{h{5JV> z6z6%o#&|fe=W#AN9F&sHrUM7|Yvg$f`!({Q>A->g8hHUaBlIVE$aLVq-X|!-3PrPlqp$%2hDo_JbYq2-xi_SwWxn5bQJHl}why4jedbJk56rIX(g+5j;L zN*y~*BE?9tL(!?g(3wc>6s=TCZA(?A)NvfzVz1Ndw6wK%xYp@7t>bk%PV4Pp`F`GO zujgcO5=h1wo%_f4dA**!KI>V}e%6n@_F8MNz4qG3z}EgG(eY^`+vp$zTbetNpBsxk zB=`S%{Cl~Owa;^e(Sg9$&X7K9lNSi1gA8nKvP-9bHgEMh$iUX#x^yBG-6X~iGO*Q+ z3BvIK9YkBi=pX|Zd-){c_?zFro{1$I*9ONC*^UmmzT+JebDn>2N~GPf*SH##v1}^sU z*S!1*xwFJJmd?|Cfj%;@jiu$yUSC&#sAwWre|-OvkUxHh6GzWM(m^&?T%nQ;6wI*8Vb z(Ln|-_HuU}eV^j$uyl~QI_%{P*Cw48^~-|UYxGVpM+P409z5UcB;glyv+f2*XwQxMD1d9kb#T6+?B25l!v=^J}>=V9~s#C6nE|JkwC;{z$P+q zv6p`mxeDj|a_UH>iJ5v{Tg7&2ZUW7JuZ~r?o*dX z$&rDr+$f7UgDBChV$zHZTyT5JqF!;F42cHB_Ks;Ym;w}S701tVFg6H2C&IhH6rku4ar_+)Mr&!fK}Gw; z@ppmzI+m1!(HfGe5k4d*UK-)U;As(l30xN8SHWt-q1VN6DmbL}Jg$2ODg>8Dcmmj8 zJ0$l0(bZLjL1fS5L}NG&&eK6OS8RAufR_chF~A+*d>usV#D>=g*p;o<*?~NvgUFSq z$JA+)?+@_70K0PY`Y#4@S5{trB#^uE@$yNOkH@J1&kAr2c$^G~>I1wa!0uhG*I5zB zdji}W;7wqEU+@fW`2GMt65uBSd;sk4BgVRh4+r?=0KXpKgs!LQPYCc7aAB0k@&H!_ zn0Fhd!@D2DHw3sfz^tpc=akz5JP_b}0z4SthXTAez)yjF`|xalpAYa$0e&sOG1WCY zmo@y>woDFiS%A|4o*Upr0bUm1#sGJKeS5Vo!0Q9d8dTHS5#U|mlcQ_#Xn^+z_+Wq! z1(>y~Y zF9-Pb04LPOo1F;(X6tN|mj}2iz;yv$9AMTv*}1I&?hNp40UikOJpmpJ@IwLK8{nq` z{A_@q5AaI?el5Uk2x93>26%FS%L1GZ@Z10|3h=T3HwL&P!0Q6MKERs;yd%K70{m!z z_Xqf3fDZ-u#Q?t=;3EMpRR3w^zA)0QUxX zQ-HSy`2GMt65uBSd?3Kj1^94)Uk>o=0ZtSTrFlYtrv$h>z*PaR3-ICq-w@!|0CxuX zHn4wo7zpq^0UiwSLty`Wu{Xd^1^C$jKOf+i0{mKlc^I|llw^P>2e>T2X|R8mnH%6m z0bUm1#sGJK{j<-y0Iv`5<^b;q@U8$q8sPl_J{aIb0e&&SuLk%?fD1LYvb6E7w&7HO zX9c(>!1V!M65!=v|9rP1z&!!(4e+J_Zw04x6N&B*@FM|!BESa%{9J$!2l(XxzaHR( z##8Z>A`(pq@RR_T2e>N0bpc)+;2Q$m8sN?V-xlD30N)efLGaWlZ4U)_Z-Ac)@UsDa zKEN-5OCvk41vsX;0h1>KJUPH+0Zs>aZh#jBcv*lO1Kbhdb>L}Hde#ScbAWdQcvpZQ z1(!wV?ho+603QnQivfN$z()dHs4=X~A@JS2;Z%TU1-K@_^#NWI;N<~c5#XKx_kyQK zdD#@;tpUD2z>fs@3GjK*xd#ILT!0S;_~ih<9^k~pAv+Vm<&n)P0WJ@4RebC0hG?_A2JP6``mu)Cg{HY`RcqJH4Q$KVwXR`RTaWga>uCyu*&MF3 ztF5zbb!%B?Q&&$}Iycns^*4gao{>zptXbXNytZ8_>2B+~xoybWv56*09UUzVZ9Oa6 zx_Um=*)}Y8GZe*NhPS7)Yfb0y6#DeL5;D$2Y|+CwU>YkDdwTwB?#CUPWs>oM|U>(#JkL9OtRjpMY#p~6Tlac;P^ z#i869c&c2sfge(^W;EL#4+R~Yf#bKxLuZ(=k=o=Tt*ESzZIy>YkB!xum7zOsbj@Q6 zmYrO)J0Txa{>&`$mu(&r*yOx7gh|nn%xw6nAPlN$iqUi`yvku$!?K6 zEF`;IauhORLam&Jn%ALnigs+xZV5ches<4YD}&=UuOk-4@iyii7Eg9B-eDoxZFz@> z*bcqJLRxG)-eDox9e0O?WVhEH7Lwg*cUVYv)7@bq*$sDxg=F{M9Tt+^Rd-lOb_?8L zA=&+IhlON!y0t6Uy}GHhp(dSas8|uZuw~7vRc)))hOO&qTixAs;mXzRYkVzU*F#4+ zNwvJKn8)MXac8q#tb}acV z8>3#`81>xyMx}AI>%li=V@cmv$Ef$h81;TXM!hoL)r}z^*N;)JZ;W~mj8X49W7In` zM!k3OPHqhOy<&`dtH-GK=`rd(JVw3e#;E7sL5?B6=kmU840`O1HWs~4k5O;;81=q4 zM!lEDsK@_H#*z>AIXRIYVbDCUr_16fw|zFf%cZB+BfJ(rq2ARa#OtSa-FeEUBi@OE z>mqOLpn#@b-M36k-4KSqC&wOZNK#@Wv$rP4-l4jfTSxatQe^tX>}|@i*P}51N>wP* z!@VQN-jTYY^v(2or0@P5djpa+iH$6Mf1YEna9*_E2gtN z_j2sLE_=JAguRQzW{-XP;_{olMecC!Gjy=|nyhq_iqzP)wu~&ClwDt^pwPMTfy*c)#=!Rm=lablml4EZ`_E@`w zy-UPqZ(okRdt{F_ibiH{Z;rjjh0)qs>|H80dq2&wcR=wXuTx%=84VTj2wHs|M%0f?o6{+mSZoucqqTB zI$3)Qa_l`Td#qJAGJEgNvDYYj9a18Fx-?mPH+Xw?4GQGft(7Ip0{%o!yh-^#mDP&u z;k{Mzuv`u*Ue=ot?;^34%eEYQtP}9BTQTGGaPP^n_xgK>+Q}=uUQ+H?bL_Fc;A{+d zvU2%yj=d@G8?vXQX4Cgfj=h8OkCZ;vD}?#23+xGI?fqkpy%**GQK6-7D8Db{*lU%M zxoYq!za@b^)~9h@tg7=4A?yn+zejTH4K@z7lS>187kGPC?_ZU@ubXkNCnv`Gi7>x& zoAgbEDh%nPuOp1>ae0otU0SmQd_ zxUNQ4E}zVaH+f?$wqHu*gZA9=@ojm6=E~kk>0>Pj zX{ZxJugV_lNJ$@S*e!iO&#^Zkd$hYo=t2K0$KIwD(YHj{YY>~gH*)MXYAw{eG2qGU zy`E#Q@gqa&QtH`mpTgUn#$(?-M!pUXs0$>dUP;_7-&yjSoH=*xQz4uS$(1>!^(^ zzxU+WJ0g3mwI#odPb__3&9PUn36$+-%<%4zHG-gu|>lF++dBQyQp9DC3I zVWfw>+r-3`6r*otA{cv0neA1XenQxuXC??slzqk%jMZPPZybUGw0KF1Zr3ag-lgwh zlolh?i(Xe=xaOi%L}~BhL^wLmsj6}znd-_pkxFCHCoWsOFdjEcMBz+rj`zVY*M*cJO6(ko%*-L)BEYuQv<}) zOFWBT*d4E(IHRIZVT$Bgj*8@&yp0d`eIL((Y3CpO&NSuz@&yYnPL;QGt?BOWS+l0& zg7;mXYU}R2pdxc&=E8JCCY`BFXVNt@Qjx&bwUmm8t9FB%OK!M=x#VlFxvXK{{A=F7 z_}XQcH7vej*=0-TExzW`bkV%|SLhg(som?xwD09ZVR2z}>c!OMMNv>pU8lpirQ#)G z!oiHmAi|6ilCg)nYPOqz+Cy3P5Qiji^dyTzA_vH3|cgd9x&hy0gf2sxN+A%9Jb z49vGB5dITU{xPi<)x6N9h5R!PE>Sr5E9rgK`3v3NL4uA5o9;0Ve)3?1|7!Ed#ow6Y z_y0C*)AeoDA4|Pgf6biJRykY068w+@y2#*qQzIhISksWMIC@hbD{d zyPA82(Lo00`)BC$V&v4p-5ygnr-CX-Dq5x9|%zk5l zI|95e!0Q9NIlwytyeq(u26%sf4+i*9fXA{<%dP%sSlQjswWfJ(caL8NG_-0W3ipeH z+-i(b)-do!J9}pje_Lob`CIp9F#4wtm(7M3Rl*@9yyp_RW6|S&K9QcUBJOz)Y~z>Q zculWGI@HC{^ccVA#%ukKf?S`4yTao-JffFmn0m>*PZ^M3>i8Yv(B6RjN5n=}F8vaK z>wG|39=`p<9_coFuAa)zy#cM4j$!=71%E;8n-(EG??_nVP;@{C`i9sre!d?hP9qE3 zBSDxx=9sx}(IuajzNduk9KqNTd0qr~vM}1>&|X4?h934#@nP6SUrkJw4$CtrpN(0u z!8y5O-CkXf8zncgcRdd7;xu9EEon;+a?{g{nAf5W)$Gyi&Y>c1X6 z+&gjepPioC7Vqt!w|PM0!QF96SxUVoqcx&?9peHwrl##R+QvHg%n*89f2adI-bbTAzaxtA`SoNQaV@T}c=eLqKS=fblG zcfGcA;W?YWu{ZI|xSdZ=>HA;ElQVbcuc%*|NcQ~{@1~C=$9G*BTY6>unQ{9H6vvN{ z%KahkzI>T`E{p!B5Bot@;s)YRCMNA|)hTWuuI!(q{N$Fq%6wnmk^WgpJy86P(<^j& zQxntgK0Q?#S0SfeA^+MHa_Qh=o+thVwdkl~-j$iM=Zl#{GVkfrVq0e(DBk(q7q@TP z@|`K$W#8bA(#=bMo7T`>(w@?DP+`cKKWyGSYc&;tIH*a$ykb|d^e7f`6*6PL(7 zg=Iwe67$H#-;m>9o#X#_j(<~*|4(!L59av4DL<9*&&4J5Xm8>Pt8GgA8oXgESPA zG>)J=YCT>e7qa~h-Xn|-1m+(_&}Cxe=#ziDrZ;#wGBE!SAl^nX`ZP+e9Et@*%ugdn z2IfCQkh^vqM4u3&gBQ#{d!SE?%_jM`{NC&3$iS9gS0+ji^cP~zMFzHXKIG*zm^9pW z-JkGsWMKBG2Tu{(o&`?{V-p#eeR83c*!Cm%zA!q-!0e?3m5FUnfkVRRAOjbls)MLp z94Awv!(w!hfs4I-mazS=^q0cuAOjaOcon6^mapFmqk{}=`4Wu96CC}0=dr6N!gy)e z*#`pm4?O;gTsj@(bP(=Z(=&+PB}R@6JW`!s=ykZn;F0S5Vy{D%!B*!#;N?wnZ}ND# zT*&IDOOL;QIp6k|;aXaLLw(X==Q_QyJ+Q;3NY&rOkNY<`T)EAZgkxt zx8IG&ZvCmpJ%N62fX6Z)VxJFWzeTX`m@L4)Z!o!^AQ^f@(`RM+Ohr>EezxR9irt<1 zWUQ@0U$ybM$qBv_BwiR!8wCHNLpg0_8V& zQFV1Hq*3RdG|Z3mN1uDThYF%ZaPKqvn5^8C3k}{|-{3_4@K(+}4fyydYslQl7abM< zlrL%CSlrL-70PF2xWNeyiVV5j!spEa$n%?j?emme@}euyw29llr71^d-t5W zYvw@lmhb%H!GWFMJ^O)~+b-F4$#1UIbkD+fXu9W+rhATTf99%f%=RQtNuJaDtJ@E! zdairrjs1J>zV1_R>?w@DP#DuJ&*5LCN)Jr9<5%NSds6ql693ZPZ%&(WT4~|r{=&1i z|15g3-hWN3KN&Ag`uFVp*A(<8^GlO?7CL_CHHAOECRy^1SLe)&rPDnJTlz~1HgK+Gd=#ma1X1LE+3%b!$s? zTXlBYr+Uup_L}NU#-%`2lsYP^67!4zRg1wCf3wH9|F6yE+(g>)^xr(W_joKP+ACOc z(*G?l$K|?OerI|)GO*1baBZ>4HFV8_uRibba%5n8*S*Zkd*pJh&He|y92wZ`H+nf~ z{zH$swLj_clel7=8~e1EBLmwr_hfWv4@8XVNHa39J#)Jz$PdK6>2;8S?U_3zY;#3V z3u6Zv*yf4^v(J&|3NzmTm5afY^HPs-c@9ASid>o$FwKiAf7%t%yTr(mfh}LI%zeHV zdL3k7%apRdJU2N~G%^&u}`Ew|HSnyk-w+%5Os06*aI9=Q*D{HR=73+6m%jz|`m zxK0n`Zf%R#kvLliTz*xakV~`jYh?Ar<=5YL?wWdBCPmXp2biYSP zpYYhtPk8L+Cp>oZ6CU>jHhaOkUJ&Dc!&?Jv;n3bXdAOI2%-)j{g!Yyx^W5jyqy02{|64e;w?gd|V<025 z_q+t5y(LN%Z6Nke_F?4rH)8A&25pl)!}tkm(E%N3qJUxiv_X>r zo-8aW5T>tJ=_`{C>6<7fjP$)T$KF}8cfgD&+#vHRp}qTM4?XOiCN_KME9qHcKH^#V zn75!?MQ?(bYiM;(F!rbdZw7d>cu8xh*P)Abo&_q*;6=5wQz4BuACXDVi57sTMxT$U zBjHL!l}lT>#={dGJ}~ptuuFQA_io#N@5Qz*#!U@W zXpzXU@lKa|*5`qCt4l_`cjgUQs+RJ2qilPJv0pPWgY zl$n1Pt5@dCi}mNlx8(7JtkpKjyvE7AK8yv8c?+uz;=6Jh-v>9LRcz;#5A z>rMTcAx1_Ub-ws=ajEzwF@zk99`fyC2)U8PML0G?x6CVr`gUIE=DS)uB;nc3(%LU^ ziNZ<05tz9*Bm5VcM=t*PIsU7?pEQ-w3Pe3%MMY&rYnnIZ|LKL#(VO?0>e;hrx3;?2 zY*MV}hF$#~|=pzI3-!+K##-16P zh0#FV1KlS!jGyNc%E`#Wc1RGW?{JX5aP0JD>Df8hXqAU^jV$Z|2|{}>%N}~-X-G6NRF*pCnB_6Hqno9n}Rv(YocAY1kv9w+E#kuiP z=0+-cN3(PU*Eyfs51m9=Glh>F#=lUEJ!@ZX2(X|FBmDj1u&o)8f26ji$)6*~(S9Ax zHUexx%f(^(cn^vm>7yJhedvd6!>jV6M|*@Ey$RynwjrexksDdOxoty-0zP6&a!v1| zipt8MX-JLMHe{-*Y9js7pEI^nX@a(a?@PJ>XN&tj&a=g_YwjPctj%nk$)kh&-pk^fBtIO|ocpw# zeRtk7i9O#=eW33HpIO>ebT~hD;J$t1k{hF!o~!aMD7yaaj(y{zb?{qD2Qm-zZQM3c zqBFEse|N#1oK*KzO6TppkB69lylW6pXc()X{i(R99UaCO`UDi>a4wVhBAjZmD>c z7{YHfl1O>dlz6MS zMB4M^8WH}cA7UzM)lpPu^!aD>F=s_ZQ)_j5t=YCdqDlh#5onPZOdHVbF>aa1R_-=` zd!d(;N3i|#-CaM7h^`Z36B*c^X~>&B)6jOIgA8oXG=ec3`ws~7TmmuX0TTu9M8LSD z!=7*EdO0$%J>SqiqtEqr>GXNO%FB^~?VXNGr`PHBI>^AL^D!^SCUw@zr{BwwfvtR8 zUG(MiMX!SlY~?dW*veSt!CSMfbWngc= zF~A)GUKil?0p1+o9RWVkIK)=@MH>s-T0E0R+gOL&ZJ%)5!amDpB6m4o_C6V9Jfo=J z>b+G*8jGm7vgE6btDjuP(Z))&o#>4=R^s`M`ZJndleZVfYwfRs-2I5V+~Ybtq9roC zOD^{f=aLWVCHGC3kNf4{D>kzH_DBG(^8v5RUP>ook93>8PYYv@`V8@0W*9$V@V(-2 z?8SSc8p({%fq33BjQ=Tlh||czNOzdN$$FUOUPG6BTKZ@o>>NS&Pjkw}$iluNL1-^6 zdscp@_%L^03kSD+>^6CNC7USbT4IAV+Z~x`!OOv8`=0u-9r;NTkyrFEqzB_dLiRin-!u~5`^RJBW%HKNejNc^& zPIDh(Ug9?cabr5|7&28W*M_epTl|7wOXfalj6Q5+$y#FHIDL%iK5QJAwlDw6MORGI z2aIk-+kejxZ`M!=Wgm&TRpYvrxK@2BR;nV^nBfIPI2gB7Y)uS)BOBs5JLQqRlme-u z#64Av&G(8~rhuJxF}nRB^mz-E*F7C9B1XKyeSxyxfJIQ@~8=O21G zGO&$Hr=UXyMLWgVK?b&QX-e3}rMraDK?b&QX_>I?Bk~PlbdZ5B2E5 zawF5bUV;?vX$7HPEft?;-Gq3E#2IMfO5_i#)+Ab*&T`{lQeNHA;fc8}{2 zitbTFTXiD#3dO|Bz419Q_P7V2Zg~vjCk*}z@p!S(=OwH$k6d)1y<)@oe<}}g8d=y^ zB_IuTK7e&C+@I)@E=%8E3)?w@v0uq^5a7we_RAmItCv0Wuy>*{G5;BVL^>12DspFo zb8^STD-?LM0mVQ2{U;_4pX1z{*_t;{IxF)H_Mq4> zGdA_-NB4a1`EO+YW#f$gCnw*T-~Z%3T?)w|Y*Js@N8z+}=)surS_5GC_beAOa2dCYh zO7*+f(3>Y#<&3QqL)^7sX5vf5J>qd5^P~)+170mg=O4w?K;$op z=Zle_@2e&96BFw+P%ane3H(>A%dnwiRa;H7-j2WNp=guNZ*HwstDVq{=D_arYTuChRXvX>(Ro4&l+aaM?3*-8&`dGy%X^f;|ByS{S+ zyePoS0^AtjjsUL<@cICcWt?^FaB9ro5=Rs4l~&u|xrbaaUC8}nGCZg`($Bm9r8h);aP?> zP&c4IkjF57!r*RkIClB8gf)^Gp#yzVY#6_`k9GM1Ll)L6Od9IM&;fZ!59wpvVCl0p zz7je5z6@+Ok6g2NmvCtBIeE~-Ua=2z_lR(w*r-vSPI(yLAjif8F=?=CAsBmBfmZ`O zS-iPpmsS<-pPG_f(_7oKvZH%w>)%n|%~s4#`{B*#?`D^iP;r%uHyXPHNni~}jm8%n zE7PA(MH^&ox;R-1$?F$Ic*w*{6u8^G4|8qk^19z1qP@O7v}h_|E;NLs;;ck{;kI@W6W8{5qYy) zOv)DNr9WT|B4qs{Z8vfVZ1V=T|10^Wj#?jio-q2zz}81z;N>Z~l!x_~881f$w*FEu z+c$*R-7`UYtp6wr^eID=AFp2-d*3j$uP5)GPPoH_?-lGCymh_8*!SmT+(dC5umA8x z>AryjTN@MIyApUZz02h1T8*a1T9@2-?S8-{^#i(646YMH&*`Mia%m^Wi3#JHw~DdH zwS_vxhVc^yuM&s-!l3*k^$U!_&^J0H5ZIJjVoGvNuW4m#@RrB+floP#I)LbC zd%{=z2lmMM)1G|tHT#86n7BgwF%^*cnzeKS(OLtkb@k}fijT>QSH8QPle zKfL}vGHC7fRC(z?xIejX!O&tcm@34x9vGMLF_@y6;W5SGiq$t#!}=I6cg2lCkv-cX z3!m-CqxDsd!o-CP{C4$Kv=3H3#A|pgeb~yjhTxVS!%T71hh?wl|KEol+jsV<{Ed9o z8P$#<; zVP)IU!_BDkvgxtU%kE%MqIj!Z;-Y7p8-;H_dj8KWy}7RXvt%)gH(zI-^1VfRwsF(4 z14YSmiU+hC%gnn|y*=0MJhg7`-Pc`ps{1Ccx&OdKeG^y9CvipYlQ?bLtVOH;go%0D z^*H7KPND^$b#B4u-)BFF(~?j3`;q9VwE`PUowek@K9fIlXEZh2|L~#y`LWFWcqTD9 zGe56CaaJaAcK`hR%=|=uVoD})&X&YGGy}UckxCDwV%sKW67TBWmg-MT-IFNoeQ;v> z!BlKu;^07Pb4^e01AKmVj&NqX0AnLn<7e(~nb|Mtj$@c1X^>$AI} z{`tvFVp?YY$(h8t{fV;7{8RhqpOQ&T&&;3j_IAXn;1Z405!0Dc>(FB~r5nb*MUvz0 zun)_v7nh3f6GPm2;LnSZ*UJFsfwi%NcH1Ggx^;GK^PGyBH!+h-bk;{%ze;J`Bsu*j^hq(8w&%}0#tr-J zaxX^)wr5Y;Dtq3vz8#r+e)Nszyo&>TjmKQUR*&zK8}{=b^>Soj>*pCK+5G7i zuY(M1^P#ThjF&*PRZJR?fo(nN6k!`veA(+D16y2z*)j~V%e!nsE-sJDI&@E!a_+OBRd>L6-mjq$@_(qKM^1 z@3KP>-YNeOz39joq~2N7*vI`*A^C5Y7CkdASv>RpzW;$<|HD7-ua7OQk4xbog3tag z@fTORC@0*P>O0`#{L2yI-0NOrPuZhE&wdx-w>T<7eS4b78+>r$k_S^e>+?2f!gBiU zWyw!g&p!1xm5C=#TX=SC`hw)bA{FTLub#e;`rV(%TRd(+_5I6N%p5W%@^4raqydO$1$9bmTGrEzq6# zD{dJfU29yrmM>Mh`cUfY<><;N)_?waOA`fy0~1{~3uO0J0?*hUXT-V=d_&RYYZdwU zrGte|X?*{*S?!YxmnOzX-pt*L|KhYF?W~aeq{~#HwpU1=>)=VUw*niRwj+$f5w;?% zDZ2Mx$CVDg@pL{}ZA4UF^u?~1O9y|S89b6oP12t-v;-lYQI0ioJmvgS2}|TwZiS}w7>E|jN^>Y;!&9QqmmgeQ9rq*NL(H!=PNNTL! zJ862&_|N?N(T#VO7RKK3YTo#h-p=3f_4wpW@-EG#kqu-Ci)*}u+XxnO9?cvr2tzMq zRQU~Jx}#F@GhzrinBf}ocT1V`kk<*H>gDejHal$DG{MUo5sJ_U)4gJ+UD)ifm6OR= z2l7r~&O?8lFoYk>qbl;gKn}L_&_qJ$gD;j#eBTY^;IqB_MPY_r*hCRE&W#H*t%RIy zco%xyEUXsV>9h$~c{$tESQ>T-Q_iL0ZwjY8{;@FK81i2TTi#z5hKLtTn$ej~L?Yxy zc70tM%cC&5Thh(7o+rlKwPFZ8FfKM3@vO@9#kYF@Mv?8^G#VU`d8=p8*}_?a{Pak;}83O?Cr=2|C0O^_!VOIi+oHj z1;==t{UH7GRd$8+o86P7Dl@yew!Ko1VA1Z7>DJoWm6i7UkCv+0T2IzI$6~8(YM#^7 zW^eu~+AG>B)9G3}S4-6@wT+MWX7oFd*4b%0x4Er$PHSbR!iUyYrJF0OtDBUa=(&g* zCUTX{V=6-2W5Nvg3-ipw`+dp{3_T(SQ%i%aMUC-k*Cp zoqlJa|B9C*1DpPDyqv)U#I=Ra74sbhR4xW5Clqcv69P<|Wpd_63|E1D{izG^;sDz6H9R8~VdqVc6NM>Z| zdqILQeXq%0nPk{wC}Z|q+aVA^fyr&2PEpD_4L9sDo?v0GbM z<4|-!2bv*Z82n{I6ZbyW6hL=r%SHO?DUAAYZI2&%gX$BBr~#jnQ#d89+Kca7N{_Tv_@+>+q z$fM0)S5#%jydTqC5+JT}i7Qthe@e7hn`StZGkQ~r)VBS-U#U9h@y(li_AH2RSrAL+ z-Fr!@_uNG99rH>TXT8Js?*0m!pnBSS_Iyj{1+5=Gm>4=}g*tTjw-2S2j26!ltChxPu(+djHbu6;T+WfN7%EPi6G&mvDhq+>%5;a z8P^O(2L@jy4(;70ztvp9tUco3oH{YYxQ^?H4bo!v8ildPwTGBDGK`-vc%?Y(AATqQ zNc{tIGw2&-hIk;H+_3q>A2(_*HxZVzd`vP-yT1wzOiXu@xXQE zN9SX$EO~nDw7S^r`|2tu9BfXXd-v0nNBV}lm+RsDl<^JSkZTX$cpQ{ar1-|hRI zy-RoJJy{$Z_{cf4QUm+XpE=`$cYY)?S3ZAhkxTi-hpv>_AJt}_-88XyVD9e^52Vf+ z=-n{&Cj)nU^PTBwWzTNgpW60FX;JcT9yoRTACE_Sv4^yC!V>RB!KV&%QG8jbyUFdh2CN9!wXU6WhF`Z1dey zx8Jknr1%GKi;b(>-1wDSO2;*B?$OK6B}@0mPOpn?yRUIuN`3RQ+a~OIVB@yUy|3MI z_xNNNSp86YK)q3jGgA)b^ zd!jm^V(fJlA?Kj?a`W@zQx@+Tj7`vcUH7@q{HNadQ2(7*U(uxO{$dipy?=-1XcE2C z=go-s_SH}Q=c9K{yyFMU3;yrXy;m1+>o1O-^LX#zq~6j*@9p!xdG!NROXnr;oVTrM zU;gy--!=W>^66)vqJ?rVP%|I;NU~%@5t}`_m(~maT`xlWen!ZK*N-B0+vjZfx1+JG zO~05ixZ&{IygMQ-17vPEO0{tSVN^=ocZzjW#7ey%ce)s&r8gSs+{+cnxz;+PzgWzO z6FXOnr+VBa7hQCE#I(lf+$u&6rd5YVig$tJ=$VVoWnx-G&RrxnJ68%rBiU(|96fVO zgmWZU zwzB$xFxLz@Gwu*}jE=cR<&iEnxz^MJiClbjav{#G6EoVv=5=BSIk;Mk{4Ozs9Ly6L z@~vVBIoRZ%7bZ^R_Xl$FYw|~YICl1mA@sp{o*$D7AwMy_nRkSt#e6q|I3&r}D_2r# zr9IL+#IT>GFTTL*uanC=JjRj`wUKvt+$B(}n18x`(D|Y(S)%wEYfKjJbm0?^Sm=& zv<@z9(mzkw#p}vUXBcG??r07 zyiV>Cj~|h{*5j>m*Li%uT*l_4jh2g+#NIphdO0$%y>}!{=wmY}ws&cN?B&S7_AYG# zItWFsY;`U&u)S+>t?9=_YOmK8*=Y3Jg!H_WA_fjWA_fjWA_fj@c6kv|1j8JYxfSrWA_fjWA_fjWA_fjWA_fjWA_fj<0@Tq zvso8l_YTABxOW&HyLT8KGw*2U-WK420N)ef!2mxLV4gkA&WYwya$b7qv9zImjB-_Cb3(5Ai!$Pv% z?y!(-4?N0@kP7Op-cz_r_l>Hf8;Noc;Sb5*e%XD|e3dz_9(&fD$R1(PC&XaiWDK)s zdY_aI?c`{BwA;DyPM6Hc@=(fz>Z-qm91M>V(G9$D1YY9SoX=ReOAA6_zFw!?s=ZE$h)iyjPxslmRN-4DW zqU_NwV{f9EFzikD_UP-NvsEDs<0medbwFH4qbsFXV;;HaK=T9)0(RY`*Q4Um%XQyXCt$BMUK5r*+UO|XNt`p`oZb3Ms7R_&z58Lbb>H- zOi^X2QGwiBMiwt+8R}K(J>2ycs4#=Pn{HXNYSo(6(Ny7R^MskIv40QwJb6$eqBbV_ z-`|{hvAVjRi!)EFpPbo$N9Ec2!`{q+jY1RjqrJ<|I`x9W>dZeRCo^%EEMKTY;f~WY zdGYH{OKzH;%*-fA<`qy*n+onMxNb62G7-&bid~%9^6<2$i)44tH!A1vl-*lz?YgD1 zMoW6O4?I8l`ioE97Jp{k?nK{fO!91v@A$|CGLVupvbX3O9 zHafHv)JSv|i%sWhVF(=~OB?#cjce(oWw7)R=L|76YsI=i4lj^vI`zWTa&)c=7jC=e|?~TgD`1C-YACfH;VH-H_L^>yhM`RBi~zwWdAHgMhfivOLG1P&OiQ`IeT*M zpWm|&_kOu7YNCZ`+>lXt_70qzL!x&W^a@a6#T0Q+?A3NU@I$@d5NV1N$=_{9Lf z8sH-VF4Q$Qn_P3lsQ|m@E}tIv+~u)*?(*0@cX{ldyF4D_v%$@6t6Q~@sk^hSWo7%y z7XOSe>hL~$YYiKAx7%Iz)(yMen=cj9sN-o@UrwNh4QRd?oR3Eo^_>ysXnNGSLh)#N zOZ_>tmJs&1H;fV3dWj(nI>_ z#R$XyfY{CvjD1iZ#;ZmK@0TF7w_hIguosTI(YM~OJu+uDh*5`ctjicI( z_rv@0v+smA>YebEkKIx0-wJcRUzzepOg&~v?*a$%ww4}T_ov&ol@`#e?J7xrYV(8p zzj%p#YwCt^e3>`wA8l-3Jha!-uNdz2xuZU7+&+NC|Dq-!$SPpGW7 zh(c@A6|HTV<~Q@#XyUT@P}&muRLET~KcqZEe&oo&HlCT{<>hjx1z0fKFHc3Ti}X3U z^ebR!i5QH{k9drGj>lZb3q0o9QO35Ge~yTpl+DxFf)B4CZy#2lCAUc72K0*%ipgIG$0H z+tAt6)ilCvCqXM$x395f;iC?6^vPXRSBDL9vh~zfXAeco%qh?IZL2k{xUQ#db$8Q+ z#5y#`_~s`ZsZ(4kbvKTxylW115TY)PMUOGbiS&H6$Uf~^pO+i2>G9k_JsVAraY}By zvm`UJd^Ae{uJZwD8K$1m|565oQGffyp}j`=t!)%^dbqcFT!%-rUiS9O#UAN4d!H4? zp09?nqr%}+DPho;#Nad@Q9>TW_z8m_6^G-fDhWp#M?LNJM=R|uP+LVn(q% zDAXU)>e(0K`zY+JFB%-^>0b~Z>|Hy!Yi<96yqyd3lM6ESr?4l*)2Q?pO-SZxONjF( zYpwVsZ55HKOi7@E-Q=LHp+3o{p{ z8#3t(i=1m_q#}WD_Ds|4*>hT3%zNy(P+!Nlw^Uba>CJz5H`8cfnVH?z+FVg>pW9bd z)K<3CR@k@sRraaAPup8Lj%3`-c&<$4yU1grUG6cp^Jb56&-0iX#9STcQfsIUHjbR{ z<;cJzjU#PrN;?i7X&l)pIrh13U>iqH61H_8f9Z9QfoprFk+qw@u={X%_U|aVw!OOWDAe-ZJd6!Kile<33>$)^}To#<04zL>ItWBp1xy+-DiQP3lfu64_Zr&Pf9bx%L9VC4 zZS%Mek0`B%fHc#agkxP-*St(ltWj(|1b&_7=o22-Mc&wY1=K4c*dyKOaldR6lRmqh zHppW(Bz9rAdpzd;fi_CdFn(;nkBh^x?qd?xNM?i%^o-ar{$I;80pQ8P4#-b>>b(4b z#)#b8b?E8|x0LLfj=iBa0XN zR#ymnNEh|zrX<(&E~==_Fjr_a+E}-uwyGjJVf6oiy!IYNq(nq@x?JyRu41k*`##r_ zqxZUu>)f{_{YBcfrsusy)sx?uEZ$vw@aI>3Wp~~)@#tqDd*iz%_Wdivzf67QJ6=7v zC3S91$J*3_6-}#Gw{@gCR(AKKRXA1=D?r>Q3gC+z%os_%JZ8veTP5uX1^-%s#I$7hP}`~J~AgO~OF2w8IehRv~k zMV#{-{_C!sa#fqYuW_5|^^Z$*jT_fFkm?#&;Ev?D3?CZT6`#5@p6Yxs z)fF#w$7$|Z=8os;sING76eT$*1Ywtw&YCX&H*YkN0N z?7FOAu=C#rclBs5;I7NY_g|anikJ6KJgw`pWdF6})_rAP!N)F}xpw#XzTKR&s_2QI z%u4PVbl-kFfTTjZ-wk^XxyPPEZf76CXe&K;)N{zr)8l&v^PU_m>eCKbuw3zI_DSA2-_@vHfZEq9fbkCENFn-<{XkGNErH0oQ#!A^Uv; z&iHqoaeXuLNoRZ22)5hJ_C46X&DnNG(tT}w&$rXN^CsxZxn1>CnZMn4Gdc^;RNGjx zLCZjr&8e9au6rSoY`-!8imM*m`Q5y}H7@eU{O|laT-@&;A@0j9?)!!QZ*Ty#0m!2LkU8Zkuxd}JwM&RCfGxx)s`&?ai&yvk&Yg6kpzJAJiEho)q9+I4b<-cP zwY~LEj!xALkoG%Vr!({FDpND2mJa@6cijIA`w)83&#sj}J$5dOE5hs67A*N%YRMN; z(d`f&uWH>_knGTPi}smJ6m3Zq_s`Q-*2#V2<}Tiy*fMWw|Gd(^?_hCv!IOgp6Tae~ zF`MJ5FI6?y7cGrXogXhJvQ^fXgBa=$-&@;w7}*UsRMV+4TCBqT>DqF?~$7 zWkI}jfj)<}m_pt1D^2RY*CTxvzib@3>M>`X`fqV;gxyi{3 zwvrwC4)7|=OExvbR8#D>g-y%s;TQ^sph8D zt+%Xf?OBmJcWqJ3w9Z|ddheoJqh4lhXXl!(p0?JZP_yB`vR{2;s`(b3J}cF>PH((> z1T`U{-fG&V=dPVG{4|TY!o`6i-C7v^wX3@=*3|s#Q|Bt~h^EV_7yqI6e?cz$K)u=f z+nX7)qj@K;-9J#LmY%JK{<_Oli5A`w>&lP)rh44c{P-A^n?7^eSdp& z@rMdr&*yr)>mQpI-PF+$o%nsqPQ} z#L1kpk5j%!*uq~Q)y@HVx73~$?I9Z-F`Reb*QE9IOGmX%aNHRyPT7+m+nHbR;ghCc ze&%nkKc)T5ybV>c_Ve-z=ER;pD>nU(`3onE_Hq3Oe*bhlHtWV)w!f?Yz!CMR zQ_j4jdgV=@KiWAkxUO(;d@Olx!Hn3<4?KNdY;a(I`#FhA1`6_HGY9m4Gv`nK;XrT0 zxQ*8?xq9k`;@C&Co)3QD>G83?`&@=xXQz(;(?>ghl%ntd9O4aHzWIejw*TCQtm2Ll z`hweiUvS?(`hv~Qq&w19j?<7kdHO zHf^6?l(*roqXqXJmHKT?w~v5ieyx5Sz-(Nsa$4WVo$lF#l?(Re)A`{XcYoHZ?W3+5-xFYynR|iP&3N~Zy>7Mq zc8|VqO=?wBPs@sxy8rAZD(`B$v7vR%s!Px9o|RhD+0fF_)ZMMSaF)~X_u~m_`+9|` zZFw@kU{5|B*Kf(d%fE|$QFCTp-p_=$A%E^AMI*dJ2 z;LYooo7$p7T;1>u=DD?zaP9yFN1OR;K|i9j1rO=5F<{ z=AKk>A&UcSI-IXc=EXc{8p(c`o-*lhPPunW<(@BwMmu+cbU1es%A%3*1BWGtSlh+AM^Ky3cg|GuI zkcJs-pcV74u~vGIZJn z?D}>I)25Y**$I_)3cODkLf^>RL;Qwaoi8718_5!F;{q`z=zox5r%_CsgZ)l1G?IPN z#yPm}7Gvj1F>!J3`^3;l=eqPL3^%+7XUNaF*n`4zBT4Qt|Cn9Jso|8<5anlgFO6jR zuKtDLv~@$2pKb3VS-$JH!f@_`AW`*2$F z64h_!?6DVx&y2-&9q}^)DN+5NAiohd&-CHkDJANwr{{#vmfu>264n3uWBiqFKWf71 zT}xE|n{&>;DaYTN_2pEJ8=c2i|Vb_bHCs+OjzDs2?v_8gg0J-fQ1 zCS&U$X1Ay3WLh%WZA2oail(a8nmJX~I%iFHQ%6HjQ};(3RyVC`GXcBW>cj4~hE?4$ z&0($Xv40dawPf0wYN}^TafMFoYHMn3Sk=_h(A3)6<-UvR{Fnu4wr$O-hP9R1-B2nk zE1J{p_XaM~jx{$nv^TBnSlgwgS**+PiCMX-v!g-J@@-u`5-IM6O8o%6rJ~7l+}5h^ z8JpW|32>&Wwyn0R#k}p!)#)njZ|Kjht!}EWZO&Nw+bdf#={c38AIt6Sm2>7)WXwCK zx~;Ogy3NjQZECA%YR^zAD7RJ5Zf~DmWf7%YtE$p-nr;7<6R!}dozvXjQc+EbW2&aT zR$I4eFW$)8+)`E5o^CbEO%?6UHR)O@M<1GbrJ9knp&&d ztde9`q(tZD{CFa}*TWVS@t+lgN^sTkojcKZ8SJqZm*)BG< zO;wquiW)1jCjE1;rn=Qa+qg0<*&kk1x6f{xqi^VZM46iE>dc&$TGf7y5NISsydPz~ z2Lvwm@{}-g?j2jx!kOGZac(*hJt8{Dz{Orp8x!~4H|L;(3|#ExjH2V5D5C8#%>8QE z#pQL-vvocPgxOaH`k@#+C13rO+B+~$?u7<+9O6M<#91Uv{#J$$8yWW@u@n99up%+1}^sUa^ZNX4x;^H zbdZ6Iy?mB%e3}lT?~Bnv1}^sU|Bt=*fv>A5^Z)Nn(vl_@Owv+nTlF>#HPnJ>nzjiP zO=~IPpB5~&AlUrh0;Mf!fr6+>sE}gS@@KWJ=%!ti!ope+wIX#}L>95Qh^$*#bSvU6 zDy!9HS=6rmecp4P=Vp47(yYI)>+kjY{+`#JJD>TS=R7lKX3m^BbLPyc5l&-V@*_EP z;J~HEzhFG0B6Y&)6ZI$gg&g{D;8Np{PbWO(&Zq=BjO5fyC(XrEvcPyaaH;Wg6i!>$ zaEa-_flG~VM2CZwY%rZh!==V^M?}1g4$ap#FQd;G4+r)#YC?x@wM4_=VP80KsqyD3 zoaSOJ*=ss*;8NokDx9{i>yJza4qR&dB6KJS$9{@)o72ln(| zf{vxLQu}c1a9~e=Gdh+|)@4Bl4(#b~M~5K-$!Vqo2QD>!uJMeXEz`ENbzILh9u8b; z{CUQIRQ_`G?YvlQJRI1MWfeMhEFUx-IIthf8g%Sf)|n0**pFo`IurFL*q&{Wv3?i=_Ig6xV~$DgWluGHihRWPJx&-M1nm3L z_3?eFqkgVc8V?8dbB!W#eewm&aUmX8NGFw95~q`q%`xK1bL24nQ3)68$2uYXY?Q?5 zf4#zE#7~tU(r$c_eLmD{IB!ki*e#kV4f2}kGo5vo( zrg+LW9M_ygCmfgfoK54|>cBm*a3OrjMTUTZG5R=GO|Wk7xE7 zV}bvP{Lmj0#>Ouqea21DA)bkbeF0<2YJfpRp5x&as4f59+=9q3Z%!unJ zBD~e`7vz7=@Ym&k)i9&Jk4N|ihRLEA4fEXlpkeZrF%OP~@}FuL|E-2eLtTVh40F6$ zIWON^gs}q$_By~A7yPH?_Zz-P{^txoBEL#5JxPBOwxJIP9;(0ndDEe-03X)ho-0D~ zs2p~t87?*c3FCh)pYzA#ebRV1u*XaL<^BBcnGPJ-;|*=~WDyeT4e`Q(y`TSI#%I&2 z8^Rv%?~I27d%TUp9&bwfU=t4P@y;h`@s2eeIIzb%+4q&-g#IM`Nv0SN2ljZ+RoLU5 zW;$?SkM|wM^EBa|hA)$UzG0rWEHZqteAbX6{pb@0H_H#-UKFN|u@5{?Ko~a!uaSR^ zVVA->g7?+@9dHcNSz=1t) zIp45P`Y%D>`qi%(4+r+^elt2J=}*G<@7TB5u=g$7752VOmFd8Ny>GJ&oq76`G@1?^ zxYYOs#&^kIu5Iaepq+dpk9gt2_wtOt$n<%d^IpT8>+dtXN&2hgyx+3icsQ{4Th^dM zC6s)~bl||H#(&uOTja0Rw)7cj>*<>DaNtto|I&EUaD!ZWf&L_)F&++FYW(LS{cdeb zpQ%5|1IBk7E;XKQY2^u0BI#oxJV4nm?LSE@U0tv@EGQnAS{tjI=n4Kgwa=x}gJ-7r`?Sq`JXG{{) z6pCb_T>97mld%puhLUEv^y@%2&OkyWtK`zwPg@JNbEg}uGD7;~(w5H~!6e)ytu_$} z^~7*EF2hyYmbQGTiEya%#)tG9rariSbA*?JEe}IF4X=y%kT&D*jQH&lelWtjBfK}l z`y%{8gbzgcV1$cxte&rL7Lr|8zVt!iEd}oBWNBBXowGX=^yf?ypi_djli0}ch zwI>H7T>dB*b`XCpifZ0%2dgy%H-N1j+Z5ruBD^EQ z4}-0(dpyF=M0kIMUyAUn5iZg>=XO{#!tuliS4X%m!i^C=H^NII+#cao5xyb9eG$GR z!u=7xFTy(`{Ah%qituw0elfx?M>wVP-j6pE;c*eJif~PY=R~+E!iyr@9O2~=UK`PA!7$@^_j4ar$q0=HU4Fqtz6N0 z*_a`RUPZOKh#8N8)-W@|&IW|thHG~%)kEu1Re5XF;MhC}UT zrD>ni9^MYgXSa{6J48y7>X(~CGw6VG^JfNa$xWsCv#%YuSlvI}YS7IH!o7AZ>V^gB z(*JPuZXKrH7l*0G{F33si_&oPs)ng|)-d(18m8VShN<`HF!g>qOucZAs60Gc`JTZ& z*D&-}3{&q@!_@n`Ve0*2n0m|~c&+1L8I(~TFDq1!A9w^Pa^@z+KI{797BwBFWJWJ>BVM`aW|w}?u`Hwjsw?|7jM5f zf7?qi*u%deFW!TSm-`gr<@vV9`>8y8+~>Z{GtKnmr9P2oZ(pV62dONv$1`EK_oY00 zDaEO%bAleSBhOyViK$eTcGu91&mQ-RjFq~$y(jYQEt0);Qo`OOIk)$-JbRbO z-c&bcdIY(bXP-s_l6|trm>l*d%elQm0kX^M3-^~}6m~%m`9q$);wb~iE7Li9Z^*NE zr|eA&7Lq@=H%HdZh0~v*%^-nC$Hq??PR|WmWERz3Mw=;B6;# zJ>Ch@12;lS##N`n_j<^edO45xU1m>BN{}Xv6*d{hb9-m!*;{)`vH~OanCIj6-f#B& zI5x`OTnw4`aolTqI?N!?NN<&4JdgLYdGRh(C1EU^czHhJ@rE%Xh27qK&6#~Rb3e0S&QYOR6u zo3JuNNl#eEXrwYVGrs3naN4F7a*H)rVC2YDPgt%Y`PZr(KVfx|pR+Z$yv$*1*X%6G z6t6GQx(vTFo&UvE6{r_TRpO=WF-Zs=_SU8tuR~N9Rj(jN)K~k5epZgUf_<)s?E5Y` zIQCsA$917nu0sxi2UBn1KPbn3;BGl&sCePrE`2ffAzmcbPng61kN%BmHJFhU>MBB9 z93$t|k-i~K{Fj97CBu6EP^v+&d8uJM!mIMa*DB0$ajX?w)sh?hj+qUe8Y%MEU|MIk z)pgF+;HlmIx6f#q(NUj!ZK{37tQqaOrDhx2X4SWLhSzWYhp%omXnEY)&f0cMqd(gt z*T#@h5^!nUhEPC~bLIH{akIk>!M^6Kax(YKZ-ME+fql(c%EO-vUSK+KVAtUs@#l*dn+_b<;~Iw!86zQm zqz4Y{Yu8e~{#@`1(}4r~dbL?$f9AJV7&~xaU$0g$_so??c089uz@CRt{ydd9(18Q{ zy1jzAb!kI>DlR1CiP%k@#_MVH+rls3<6#`qBKKyXPB<2?KJ?XxqvzL>quJ{`iao1_xo=rnRkXgx zKnh*2OB8kgXnHpc5if0kiytp-Ik?d_@VvcB7+tzSY@-djRgN@xf1mS%>#7Uea9=jx z^JR^~-EuD2L%tvfZj?iKhQCGzh?i!`<9$jPyKe7g;VL;7xA$!ku|1wolSb^3ez*5i zVeE0+=J}RYJWfR&u%24mtl151t+|f^%$!+QQ`6DPyU*d>_<HCIjv)Sjoc78b5#n7V+6|!p}@vr%)G?xW~ zu2s3*`2WDQivA^8=xt+iK8P@}>nwo=uOrgye<^5gZYO$2@lwCCwj zhF+y(y`{EKBcx=zj8hNjA98HiqrO}xN4(Svl=~}3mv`f zUNuXRDG^B>tk&3VlF~yz(X!SO8v_aJ6jx7uwdBXYJ(L-hnV9|7?K{Ws|5g7DB^&pa z&-?s`GUr|M(fzM{ynV@W``4G>a%2C9)CJ>G{TG(qG#Zc@D>$+&z$tl_P6ivEAQ?s%bXCnV|rUM+AplT+qdVw-*p{- z%&lKL)OvS8^Iv2)c9wNtTb8Iv=NrVktmMs|rORe!ZtlJ|tu2?$?AdXs_4twZ7szC9 z|DoO3R#YRC_2!qA{LR&$ye6}3X7AQivgxv!vh>Bo(%oUpw%nFwGkZRBX!{wmq_uNp z=CYXwpV(D0Eu(e7?`DtbT0M8ry7PbOYp93y+dqSztmt3s=BDPnC0TJkXD3;Icl{7{ zeEr@2PYzyxmsS45s`CdQvh;i;q-X6AcCPaDd1jQFMDGdd*7M6+Pbla; zzr6MQiq;a=f_*<)V{b`yJ$7i-s+X1XJ9{$YcdVVS!cC27Ox?2estXTwcfZ`caZPjc z{8e8oD{WGdHeZo#?91+W@UwH@b7)6jS!1Wp$27Utb6!cN^UP7>&b;yXrdw;vD{gqK zv9YLmMp>hllRv-WrgZA;`K6tUAN%i#|1qz;tb0cJnKu^PbV{oB?nCp+%Xf$1V^dSL z>Fm7E?{1t?HgUf8+diUpZg#_#+Wu6}`J}aB#I`-z9xZ8KtX1TD-id#DNiK8FAw0cy zh|D=jnZu&+3(1>#s3rfD)ssb;(w?`&wU$?`?P(a%)sb$!u!t3^PlG+@jMNj8cNJ-n zw?6DRoBwT3wBK{#_A`2B5{TBMSL8~<=pm9Y%FE{`q~WAsD*P)AYGWF8mUI5U*2!+` zW{2g3PcGRuwdjHV+GIK5To!~e>RbQ)&?K#^-(9}(GskB)r@MRSZtT;V`1%HJ|4Y3s zY2yD`h(G)*{_O=l{|1pM-ac=AL9#Hn(lq~nm?pJ!O4Qh&k04!PapPS54`b#Gif7Ba zKX!b!FRky$b%*cBz3BP!JJJ=tAea18Hrop_g-LR@&ug$R05qrtO`gXNm0w)Dl~4B< zs2xgL++5y-G5zVvp+V>JFD(sQKSUbBCkc{&rQx=cRAyZ1=1j@PTW)ObE5Brv^0H=r zxlV!Jcc*$s7u-;i`D%Y(nb_WU7xa!U+EwVGqTbOX9jl@0`2kr>+7}KZU%ejK@lYE> zj`m+p9xH=6zL2ZA;|tFqZvEMzNh;PM%6{t|R`y}t^(0p*`;pIGti_*|?w%i$!0iiq z_TxWxZ0gAoB15Zx=eo><%&3~Lm1ml+={vUOTm9Q6rY3Ce|C{W#OW5K2>=4$f4&NE! z7?=MKj?s_ReXHl;=q@eUezp#E?9WSjN2hMhz+-d!w;*<>zoedwB*9%n%4i>-TykiR;3q?@noe&twlJ> zJ4?0~Y&bjlZp8L^J>Mk{lGWvD94;UeOyd5)={)NRU$5z#(YMC?=4TN z*gX~7L*QQmUzr4cNT9yrp4zd6rJE`L3Xq>|Dd*Ji`#h%c0&Im`Nxh5@w4n1KBe)$_#}{4262B!63mVARatnV z`8DQqH;MQiTUio3?2gL^SI|jUC%Q#oIpX6Enma6d*$8@I?x^7Dc_Z*(MmFH-jU(`2 z=i4DA@L=cZwIlFg=dTyW9z4Bz=jq)e@L=cZ@gwlyw>oobUUrFai&D{v}8WJa~*8cKmi19{hTF@UIsxkk9@Th)5E25|~?; zm!OwXD3|Kwt`=Q(qm14thpnmRV}F_)GL%i~M_P99yTNihpCn_>PZf6FSKlOU;FC;$i|{tdD(@dz=NmA!GA~2&ynYa5p-OJ%BwnUB;Gl4SITiL z_sDr(F;c_%j{Ti-45Wa6DTi(FD{{0IU`A963>RWVa>O*)wrct8!?BmiVW&|J8ERj2 zFpYnr9Q*PF4WE5^8jcLLFXwhz5#l$2V?Rz{RpYT(8;pg(gzsL*!E-ySP z$`I_0%L~6HFWjgwEhEQOks24iWI2ms zEuA$!2`KlLQ!)vtt#0P@*|S(I`H%Qubrhv$I9P&nFIXiJXo=yOtuq=}fjFplc6E5l zI$LULW=yZkZMsr#U9N0f>UL^dX1BD>@YzaQf_VDumJWi!4pS<8<>Uh^Y5T2^}; zZ7mJTy*dwS&F1MdXSXxwDN201cFE;eT}$n3>G(pdi) zV|IIIjj!uGQ=cv5ttwM)RpGU_)c8uuEMYvWuGSZ0?rfP^H+}j{pMO=?(a_q^GHYOA z{WYZZ>&_&1n7z3z~nasf%D9QttJQsbuy`?KKc2xlW4 z(l$bbB&6T)-w`%U*@Hl>e-Da5l*kYKZvW^Hk*yHLBCO=r07mWX^VdBrIF1yYY z!}yJcv(i}<>F^#G`uO)6mP+dH4Oa>Or{P2LFV*!Cee&Qc!=&dH!}$9RlV>kSI>+gt z*%!Y?+tOARUlxXk1D6_KhmLhUo;DpgFl+xH`{mg8*YfM-(qxpR#PS3VTxxuU@#Os+ zZFBpl7!L<_`?Dhb#z>zvV~7_H?E0O?bGJ1=(qC&l9N6`{jpur~%`kUiP3&tAlkYVi z4qR&dx#*15pX6!NfdiKszfj@y3212kjOoCEOO0QoaGFAtykI(T;8Np%ZajB_OSH|? z_8a5jz@D~C(6Ka(xB3GI_OvylV`<2m4jkCi){YLh-4dSXlIL*XQsZll=WcYFwt3o4 zH69M^XmU^qCGExYYQM8NWq7cg3WiyWoF` z@Ik|DKgQ0NW963^<}P@w;feBJAMtNB%-!@_#qH~L)fo>5_H`w1Kxd-vOy<|Usi%)4>OyX3%9O7Yeh^4AL$KCf`127=KW{Nhd$wW|{sb`Eef3F&+-=c{tDbUionzo^3oFc&I$= zG9B^|JX9X8H68L0JX9XuWIE&__^>>z5+T_rN1kL2`?nVq%+1lS7iNuWHDkc9dyn{Z&ypK$EnCW|LtxOM0lAMSC)Zx=^h zNuQ`c$tUH|hXea}HnPHg4*r!eI&fe=2PyaToAoETPYxY8uzyb@l!f^3h}&g4;A%Oy z|CI4?V7EUF9hDvOtQ_{?z=xG-i3rJBIo3o+-Y*BHOh0EBzgW)8F`U2BfdhLvhPGEc zaW4^%o%hLquVHw?@ZgNFx3}%a!-2irFE{>P`Ej{-84m{@s@%7j4&@FWs@(fchjIsd zx!-5}PWhqSPZE%Xa#8x>z`jOrR@lqsAz_XY4(#PZ8K<-QlRP4a4ji~Nt3S!NO z9N3Sm9-XZIB*cLoIB;oJe}`9n&+xzGO>*eKfnBFq*zItNq5}tZ9Zb8^i~Du_8=-9mMY| zJVyLv)&E90FtW%n=~-bIzt1rC?u>N4Y#2YJrwl7e`;Seyi{(6T+lAp7QAgG5%oWDN zfxXULWjy+vKi+4))_6Fu_nALre3$eoFYg!KY&;y;&(m;DogzXK+E}Fx4(#6*$qIYC zoWGb|)c6z0 zFY(WcqmKHy!BckuQHQ==*G@Ga4($0>kIq>ANm@+@4(#pQ9EJV5zsz*t zz}~(!qBBW8y zE~HV;-=7S}m4Q8cU1Y+Z1~xkm@hYtdb=Or7`i?2ho>2=9yV3lTmL;e!z_R@&VrX>8dlHI<@??cVa8;fzazr^5xy_NJ0tvPgrABq<27#c#R$I~VLiOe>4bHQ z{k(&>^R6nwH4$b^$90+_yePuW5f1AXACr`6Shv_P<0pPzZ;bGr5oT<}bsmiH?g)o< zi;ENcVclZGFQ8-iK!guQm~jc$VSL?j7Hn-xShv{QnTVes;jnJ8>4bHQ4KIsy)hAJ#24{CK4EOoaDGIILT2`maWOk;>fTDvR($u=Vk(BU~5Z z#t4UXi%mbQTWsxZJ35AWFVyi35$=od9bjEkkp2jVb&HJ;>lPahYtk5gD$?hjOtY@CWK|KiFaZ02jVx2$Oy97ktI zM|*2a+ZBViBx|NFy?T{))brXwY32#=(&UiV3~~HC*d5r)x~8d9k|eaQmioZ!@2{1q zLCaRrd`-P*@l4D6Bfc)5d-NWq!5*UfBlf{t{PFXkEx9MrgSO-zKo8oIdlo%tOYS-J zpe?zF&V#n(o<9%Tl6w^WCw!$c%-GT;_lWOGsyPbscKr`W@4{i~g+7;b?NS!{=OH5d z^LTrQX^;Ds;iPZ(F!la*n0iDyoOrXt)O-6d_4t<4YsJepq|NknNe#k1Pb{v-_oTQK zA5Cwy*^A4~XR>0~%Z>YMa3iGTDczUQ@8q`hb#iRu(zDs@sp}Jjernb*p4+=ad~9!; z#(bN#9eX@#cYC4lsc@|vvP%2;F%ecUxE~6D{W$3RPD8=O)U7 zf92WhSJ-EmV$$vLtTVRvs_Z?eL|~8GJGWO(Ur=FB--Eg~-mb8V+sjBVws&7v_gdN! zd)zCzy|?7qV|_x-85g(5GymA$3zKwzYWBuU+3n@8_xghDJ>+r;QQQQKYI9?xyTjke*E>SXpN_A2Gv-u==eIbObx%ie6;2hZ(o&$G8f z_PGDVUX|&Qf6Tjx?WNS8^qHL6oU`{xp1pHV(s`s41bb6V4}0MrMLze{$Ybh1Iwnk9 zxSz_N-7Y|~<-&8rzzapjC_rc6f zvd6b8TzngIPuQo?Hq@M)=wVN$bN0}eYEE`m2r3SSo{p2lMwuM90ituVQ)5aeL_2!C zv`MjE^9-$F5)rPKyi?91^~r1H$?6~3APG+XeLavFHPdU8tw(>Se3~`rNt>Un*Y|cV zGy~Fr`|sBev@qr?@MP!URsd6Mf`!1zu0nmreI`Qs`|~%Hyy}U_xBcL z&Kx&lLgxZy%>5&hx8Lp?f7@+EQ$|hfy=}yl;;|byuKDEXvhMCRH{bqGs*%+vym{81 z1;6C|${T+);TdED2a1n9^HU`| zi=X=1wjB@r%5+ldI7Fv==UHKV6RPs(#w8#>eK_w$!!P&#Iek!S-6s zS*_14{nydaP}kNrV_+6>-Ry=Lxw*BoT5Gi0PeX$&suU?k3F#X{_DDj`TN_8|!^44n zy*P4wjM^DWlXe(PiHB!{#&;S&Sw7-pMZuel^3O2rHOG%-wDIf$_WYqXvM>5I zhDk4H4t$gRM#El{)5>RrL-n=nr~^L6$u`$fO~_&TU(Q!Wn0TEhAKfN#J6;sw<_Is3 z@Y)Eki}1z>-x=ZU5q>bjyCb|e!u!C=6XXRs#|I*OFv4N1+Vsb${J@9cu3OqRctOALHJC(cS<8wQ9r+)oNw#-hwxZp? zG_$nzx}_Q_xoYW^%dQ`48Nhhtf~)wT6dZ9NW4bpLgKqqD&BUNBxhCRIHYC6!Top^M zUs@*|ix*3y$l>TU4^!`>N6{lLoukRxm;=<;4 z3|sRX+SZ9En0UT?OJQ)M@r-wKj*pQeJ#3?mcu@|!Zf}vWUv&k89{x`ZHxiK0MsZ$Z zkE^NME0D3+-fnGsr<@CV$bZX$8|4tjo@qz0N4ne|^UbkGTZJ5_fMddJ!)5gs_y75Z zLp=&6=peNMjtMi*c^tsRx1B5yr;jn}D(R5EGC5D5kCWK$sgG$t#ur>1@_aY8$9Oh+ z*rSW@_RzOxKA3n(fqo$#8EcoINBpDY;`*^cfpf*Vc)a=jf9{W)e4~^dhPI0jdku3v zzy`gkGu;0FS}vMOUtLICwR(+j4k+&TXNohg-J>nzgPlzELa_=k2RP1fKZEAXB^^I(QpLU^)x5@vpT%}h~;Xg(!Z^K&b2Y<4w@R9y(+19Kr z#QxJmlYV+=e~m3WQ&T&)dxqA+sqFvs{ps3dEu64CMY2c*bz$c>4t^@sg|IwD&p#cS z^p8XB|C!wWVP%kHeGu*6_q~HVcNGT%Pm@7Ce}8DwH-|FtSHZwZ(|f)Z)WUy=zwqGS zgx$55cK_<3Nm^`TaQgdm@jo2&!aw_ODtYOwou@XGZ1{cWglUx1m)Sm&3qocB^(d@@ zr6tc&o5t^LXc&J}TDr*T!C6@<4gn_LfKbU(6hrxiUFHA1N8}KuO`H zEb|f;Ga5U-xc(gnzqqS#T4vjxs$@-+o@WnD`sYD~`UP#T{OjK|Y&~gDkG87p!@tV( zkwUE{lzL=taqs!5-Vp^_^sJ|@_wjV^+))pVPA4nSY&g5VWPz?DwWHJLfAi478NChV z^+mhV_1_4sgG%gwaWxUHb4YdKrLyL8%}0Fu!X%iYY9h|pB*BC;BW$CYz&}Nf>!AY0fb?CqOzAJ=}mqY(XIoDq& ze7anL+#WfExWI7ee?ty|ck$y2c_~f$tNb--iCJkP`I4^j+aM31bJmCDKtai0421u^Hd< zs7l!Pog$2|-NpBf^Z71qWS{M(G?acQ>*}PeiGz4K5C2k*eZMJ(urGM39O?g+oTu@C zFwd3XM~Y-WF!$<69B;xL{$H3n_AugqzUBjG!GIKoS;KLdk{po2@I*Qezabn8d3TCj zh0;?tusPs2DXeS?^II$QbP+ulbZ2@%K4I#n3*lzDtlVGARp@ErO8G8q|DXrt6aJ_i zWkb7Bq0yx~<&!?zmI|Hqe27Ds;U2x%ejC}IIzc?6;4~cpA$w04(#z(346Tv38MoC_IL$zW1w8u z7#H3ne~#g$@-K?`WfAU<@J7S(!kCedO@G~Z{7}A@|5J>I1AG2YGk%`@8pE9T+*4z7 zq5S!VSI9rh@TKz4F--b1a%lzyB=44EUpTO@6+l_0EA%I6l|u&(Tx$F(2lhM(WrShL+vKnb2lhM>%%vxs%XH=>@wrUCj1kXqg?t`~hLwxq z5SL-L`Ll%O!o2T^aBTpS&Mk)V?=y^z&l^VPS;P4MZkTdEU>Ke8YQM3G&-gf)G``g^ zIu{$pUt^d)%en|N2FAYdp>9~+UTkr}fxV0_G5$01Lp`xJq|n-Vl1ADx6=vcgrf1(2i_IT^jv3R+LpaTc?c(caSZ=Hj_ul?G}VfcH{V6S^)ji;=O;G#(D@X%Nii+bP1lON)R#-w6AhaQeu+ zn~7|a17q_M!}u>5{;mA~FpSxZoTq=5@o->If1~jub=;h*UZ&&=alwH-ZDY`}t}f>w zI&ffrPx%t#vB|mTYeZaOJRI29h~V7wcjex1I&ffrSFXo+Y~Ey;dxfl=r}^W?!+|}` zl#SQJFAI}qII!2lYILj~K5RO0V6TVM&>>-x=jE^i2llliUNruIe8iuBQy$*$3i+&S z6B6==0+nRt($?mO^ynN!YUKRggnBT>B#m-jPY8QlnFt5_$}=S7gW+JaAmQi8^RzWZ zcu|C#BfLDqYa_fa!W$!eC)kd6dxRg1@a_ojjqtt*zYyUA5k44U?gu?C+AhbmU5>-E zTT4%U#D{0M#)oIOhI!87`_kq(UIVtW>yGe-2-7yX&Rr4S5#fg;{5aU^z%vovAK{lG z{Az^5dq!4g!h1%B!+S=C!+S=C>s0>UH)xD-c+bdm!h1%B!+S=C!+S=C!+S=C!+S=C z?}%*nM>xD^WIEwJBg5f6Bg5f6Bg0`1pW*PHk>QuI$-oDqvT_{WGctZ$#8*W)yk}(R zQFzbDaCpzi@FMgLH-mM)BjG(G!{I$6!|NiQ@Sc(J;XNb6;XNb64@UaCBOKl{GM!=1 z8{pa7P;Yw#e#loi!j_iSm4n^{2^%!8pk1$)EW388J{`#GB7fz;|A@d^wR{y?n^sS9Psy>sY;dsr**G0n)Krudckt`yI)R zbDNJP44RUV8%G$lB{x7YXiIK1V9=J_z`&p_Z9YaYXiILmV9=J_$ibj3xj}?K*+dG} z_uD$usJx zbN$60w+3#HzP)}qdoL)kKw%fR$8|imx4bNwvyQ#da>$^6X91b%{Q|i`)BLp1oov zihdaO7+rRI-^{be^>~Xo7q_=N&tARkah<~6336`lU-Im|D4i*8%=8F8n`dv+m}JgB z_UQ7vz2D~9E7OMU7%=hly_{$7CE2Tz4)$nM+}>y%pHy?@u~Qr9$GNz@^}v<+p- zH2O=}dxMi7Kp%q6l1Xb#eh8_IKp!XU?3J4RZ83{||GYr9>ocTeZ$7 zN;u3NsIKLyfB1r2W>jBE{rJr#o5z20+^9aySJ9UJ#i%V7nSA0G}*g4t1skZU1 zZ1SCyCF7TsTvU=7alz&3{;ApIBPaJ%R)4>(nuN-=^By+6hHhe8atad0DMdF-Ci%jB zhcd@LIYQgQT#~L4Q^$TK^}si)PzYZ>$-D*lx9s@9)|B+_1721zWlC}9tb&nMsmJD| zmelGUj=SM^mRwn4b8hY;JpB_xWYNczMU^cDmHi!jH|104CI8Bz8~&r=78%#BApw-8!pdWaTE2ANi>B$AA(za?;jrM zFHkjCBXE<>$qAc#A1~9V&tCayW<-7EMU{)c_Y)On?YtsY((AM*b#%AZNY-?9a3CjCRFCM#al*QuqV4~gqS_VE`K-v$tAgT>w~NmUo_*>q@U!M~UMu#hI|b6DBCMfK<#Wj&$xCau}5xhc(r_61WFu=#B{bm8~P(Z`1WfgA!4rf&xS8}q?qv?KKb>~kQ| z2XiHbXYMg&4nI$rz7PEM!c~SpBaEN}K1V(}KZ|&<>mOU7jS}?1^n=m&_jcjwAD?P` zr?4OI6~dk#*5mf$x>=a$*q8Ao`ZSetw+Vax|FtlJj*FM$I1%aUWURFbEY~dOb$XTX z8FJYClAOoI`0#w=eZoM%dTIk2kLWevH&XWGMY)%i#aQ&|@6n3&R-{hpCYRGMqUz zmh7+-X~VgICwo9XVZRSuC0wq%uDS9#ciyUuV-C$iVHfn@;{o}ESLTI#^TN00h5Pfu zpU(?_Jum!ZUii7Z@GtVhUXP$jUpmSV!ex2kH|2#-$qS#J7d|&H{NB9q<#}P7UlL8K z8RB~w%s{E1Su?%0p~k1H)VI`j&T4P)4_ORMlldb){DJw|oo$`7YioQaO>2Gq^xD=2 z|JDUx!Kk0z?$d4>X1C04Xw~N{Y&J}7eNAUg?pqff4KrKXTEYkIu{^VGW?PHK{Y-h_ zgCZSQwynC(*xA!-XEfB$^yxM;Wv;d@H|0okdg|(C*88V6^4^B5t)D%+c2=7wylY4OCw~rD=fFbw zh}+>jheyC}C$tH6@>jD>I&ffr$B}aley)5}eZ2c@ky*yfyI-;MGaGXoR%~sPq@A|a)9|l`@k^u!|2p|Nx6il&xJUjn!ylBt&M@}7WfvW;*B>^_HJ!5Xb*VmX zJRG=`#7n|;%9>Qh%di6n_Gg*Y2Y;5i%XHwt{w(ul<7sRD%P`l?gN6%qjE5qg^?r$q zx)q!-$HFxXzEb`~!}H{4wXfH=HyaNJ_WD+Z&g=9inPoa~V1J%kt+3l!U^;MMw=)eL z3QO{C(}4r~x}`M=dt9xi0|)lFt}vdyO&$7l93*RuhXea_`g(hXZ>)+-E#}t@-F%oq51`II!2H zCUmSWF|J2B!hyXmor?~gM9F^BfdhM8TBvZEiYob)>A-<~z1>9$`*X72n+_b<+ZLWp zk_P&OOVHPSF*4qGIIyo1nl+w!c!{=o{?r%`2lo7FMkkEMsBdXHaA03ov>lxj^d~vf zbl||guIMs_)8o)k|J-!oz`pM7a)o^k#QRJK4(xLvcvi~s(vMw*ewqFxUB<(Ky$-K6 zp8hcHi?4nBapURR(+*;jK0ig0w)Pg&KF1;hF4CW*Sk5tF$Dv&^oz3Ezi$?GP!}xm* zV`INzbV7R~fPXw?ElfMQ$T0CQGmL&XcLeZ5ofjs(p*{=$z4$MhKF37Xds&n3*oOmq zSzlv3{qu=(elC2-csQ`13t3@57d|J9O*pWh3su5?F5D-K4jkCeg=%ydxR&gcLkAA* z^Hk^`!qfInlk>ENYk+t-u&1pC9Xn6yE3z*f*wa>rj-98!HXS&yr|qEe+>h|Q2|Kjk z^e4fTQE0=3D}~=={3`8NFX!`Gs*HyN`@EKE#&d5n2mNF?Hfh^s6E3vv#y6s44?%ct zL>l10{tc4Q=8NwYHy{0s{v_`-eK@e^Rg=P=SF2424(xe#E;^Q1*O?9+*z;;3I@aE< zGaWdv*Re(Dyh(qOyG#cT?B7SZ*Ld#TmS~%|X@6%t9N615p6ieg+{ayleyRQ>lnp!_ z*ym=k&2`8c=6xby*8%%I#6+;{Ak*a1YA=uwm*M3KJI^-Xw>aXFi;Xms}nY-zqT!rLSKV1#!^cyEOF zMfimXABgb52=koEuVo(D=C!<{R005#}2i4)cu+hxtY$ zRdJA0R$q6eR&JHQrYrH6Ir5cS?b+JW&ec~g4Rdss>T{L@vuNVYLrkKHH`_#>j%zwr zMDu83jTKrI)z=9b90i}nTzU1HrHP%c*PLV%Ta8jZu*zzz5T$!SA-SW^4JSksUgBL3 zPw~Lst}`gj@d~a<6uAM6Ki$k3x(Yg7a?iEvDEmmPiiNSz;pknYeTSp>{$c8UdYF3j zX1dqz6>@y>E%@;(3l!EmE(D^h=oYYh3%Pz8Ei zqyAGaw#T*b0y!7AM_UhWv<;22w@w&)T(aHXSQ(4$?bbFQhZfAGuUty8y+>t_wW+a3 z*U#no?e-Ss*{fHaV=!Ri_TH6euS)kwRnoy8 zx5;kL=i#Us48nTcs|@40y{YMp}IG>y$AQ{H{dC&#_9exDv`YtF{_4QrXO5f+Dd?fDwX zM1tS*Ftlm>l9IDZGDT;NKe@zbYn*v}S@l2OU$~3e8hT3pALzZ|0Oh{%lv@{gUf|E_ z(c_~{m1CC`ZLiqUxAETHvmcsckE&l`uUr4)&?N1C`0^~tx+d4zx+edQUQhVfpSbge4%7f2AdJ&iXw%{GXD*zCG8Ke|ycmF=Kllue`Kmefqjd^LX0K zG>znG`<E1I6IiM*=I3DF8vu}P!GzahP ze<(XGQ>N7`!df}Xd-5-TJ(2s_ZdOaGA-z3aKRI)bmR3pP)4Y+9H`VIdW#O@3t}D3dt*M*F zr^wx8EsYZzD`edRCC5HKY2Wl$PCJhMN_@WwnF)JUmok~Z|KxW@R;DIg`t@@$`b@QWt2$ zg_HMRSbkB7r8DH$r6r5+{oQ>JsyfxGI<4y4-8;X4iZnm9ZGO6Uexc@1k&a}!k;S+C ze&m5eIy+Bn%br-j{Oat2mdloRv}f0>%yz8pXw%o`vrX?=`tEnkeP_09<&{@z26}jk zaJ!Dj&*i7Q@e?;3p>3s2rJ2eX@(Fn@9k%Pd-K_~yL(aPjlUJr|KGmR;RkKT&ceSlB z%)9zW3bp4M{&liy-qkJ2+A)}&S2Xg&ilna~GbS~zF|{sCySiiR+(!>(MqF8xdC&Hu zyZZ_jtW9knbNBj!1=pl@Us!(e;-Wh z)B0auTJpf2?EQu7w_exN)iNrXXcd^A&tm5B5lP^$32fTBvH#`G-|g8-pzqh`l^lG? z=Jk9UX8ML9vhKs)&Nb7{-GN^6udKVLXZzM&#rNF0ZBO>Pt;t-gr;mSQX8A`;b{+G? zz3YGdgCF;VsaAcz-t^slKR);D)}~bE6Wf{!TAMQ4zV-655!;%I`nRvy)-+<<$kfwK z#oL<7wv9|bwQugWrt)ng3tC4OZfmOOYASrXX;fEJx~u8fuBPLX?jE~JL>{A|R%dvl}9Kya}&)chn*_1x$j(zLp$Tw`p`3%-&KJbkFBj|(QEQdb#vLg&{laHVS#z*H~ zIfO9S^*;|Ofd`k!707*64uJ=sD2JUN$3{Rgnc+}cENtN9QO>^q0S@l;K_3Ei{$)x8Am|S0pnw{MGheh_H$>s z@LT1u^C>w59WZHP-@lRb^xS70`hP2jpzq?x73xEE(jE{8`*+K6Pmax}MGtNTFs9lJ72*Jt;=7 zqF30ure*aNOINg9*^ye+rO8~(_zFB<{Yt*itNfg48S2lA->gx#cOs>^o0B=f6M0Bo25uus_2T z%sp4B6Xuye!nG2N{Z_;HoTcy`@=uI#h|8XZhBQbA4(!iDX<>Zs%wpRY4(xMhsHZ-E z;S$q<1N;01!Bm=rNfyfSJQHb`0~7q9Vf>J`asf$=96E4dpMw+9Rv|({-vAvru+PD1 zG`>eZY4T^kXB!U(_T#1O{CK-e2M+AVORMO|yVi8zz<#_F(Xn#5*>vE*rQ)%fmGk*Q z+l5I#9N6av{jKqP^Odc+k<2f*X$U`EMyipDw4(xMts*IE~-zz@km6g|2h0%cndwHE^ z{9O5OGfdh-zUdf|COP(n1DA@YZiKuNPh8>L6y7Er^3&qITw(Tw1ADxyjQ=XWoYw)) z6ZGN09@j^Vr_Z~^F!7Ri=+iGIzrge5f6MTX=Lw^~NdEbT*_SlI)811L+)ii{#KVO)!OHh~)328Q0mGy}Bj;%j zby)ktfj!Ni6(+70`Jp~wToU%B<1PtlusLyreeUg6Vb+;Jz9a|c82`aA{xgP2$9}`F z79`KR(8u<3l$S7Z9x#lZFxOQ){x{{&A&q^|G=K%8jjbniW`#MWE7|*>6^YPI6u>4-b+~3q= zhfb5^X5-<&o}M`hr*-Zle`PvwV7^a7*)_`f9IG%-N^!w~nPWw9&qs$!DEW%nfdiL{ zuM%#O^Er2qnhqS;=iGhAc<$lOMgKVcNxpA99N6pRLWR9f{=szMz+NX8p+h1i%yS{H z;J{udmniJ#ewfE99k?)$Rp;Uu;Y-l5^zhCKcHqFCo@R6`KR;qRaA42Rc65|)$R|t( z4($24OkvN@zcw8>u;=G;bSNOn=S>F=>~sCTWIXr2tF+DM`hCTCIB@A31SD(Zybrv~ zbl||=2VRTL8}%o7!gS!kJ|FM~g?-N5)20Il_BnUV%^?ptcb*52m4f6~#{WT>whtYy zYZcNWF#qGyw2sSM})Nj`b zc8s4B@l6q?{<(fL*p7wrb4;E(UKinw5xx_w`iX3pbNpb0cSm?{g!e`Gg$N%2TV5TE zFzvJR+*diKO?FIs>zMw8zr^M?*ANT zBRnm_^%0&Q;e`>tB*M!gye7ik5#A8tO%c8;!aE}TaD*R^@H60&sL6 zU~*x+DVhi9vmf=*_tmXece1KiN7psc>R`Sf3TwKqZd;RE{_CoxYnER#5JCR8)RNDn zEp1t&HPYHU)($8Rw%BI6%P(8K=5V8fbyuytwxet5ku^E=!zW-t9A|CW)vEsjb!+-A4kNH8-`X=*eTwx%T>dK3cGA zWTxQm87FVqbir9-w`{6BD~kd{dapyPFugHx8&6IU+5h_asAfb@e|hH+Ph`^`kuZg z)?d~4(E66Xd)J@ew`Kj@zFXE$@4J5eq`u47m-k(~KK<(1FP^$@>f_^gmTZ0DP%`<` z4xRe&KXsaKNnRabUf0Pbnc{yh$-FD`2Fm$!+PB-$$7#jQR!OUBqf21yR-jnIZ2Q}j^Ss82W<-gCo>G?-a&0Jcx zC!6qLLAS9#|1JD!nJaUA_)Or~%U{LJtjq^;{FA}_&tIAL@ozt$`KZMiJ`*^0%YUL= zpZT=M8Rnyoo%%Ai=Va~=H1h}lF4(yDH<@=m|43tISB`%u@Kb*cKR@$ijt}z<$KLxZ z_@>Mcb9|UnZ5J$X?zt> z-y8i;^6}PRADW~I;X}w5!R(CwduAl5Ok#}B6#8sWd<@-{WE9Kbt{c^}q`%>1# zg-^E;eI9A6w;s~jCZDb&`*zB`Udp7O$85+@Ha!ja!%n|+IS#t3q=DNfWGMS_-g4W9 zzV2*-98Dj)=#wtwX!`#*q=!66S0{Nv{!p}>v**i^SAJ`b9+HpJx#)i{+Z$XhFmo1a98Ndw7-|{LL8&%iJ1_dqATFsYtymtR*?H{rs?QBw-q_3f2Fs4%5Fd)qR+~_oO~<;Y9zU zuuk@X{r74tCyxKp6!S~io}_PS>f07h($kXr4oi~Wwy@UrfPP2HpMNC!e~~&yy$QA_ z`j@4~S~#(PMe0NgC;C^Wm}fGezcTd>3n%HnDy((L_C$Yms^u{Kt5eK1VSA!~ZFt@> zpnqNJV~6R#KlSOu^gobdzR7_8hf-fVOut9H=Xhz}8TG9-?R7JAYyZ}?&6wUgLqUHJ zhDCm7G<3|at(`q<;58B0_Sss~x4r%UVeW0<(nDbj%vb2# zp!~J#y1Uxry_giyCyEd%S(8laapj3vGS!%D(rBX5cw;^H?DP01#8 zreoNAxhAU4`kGj@p{_wSH`dn1>*Ec&6Lc&dZ%Cm8L{%h?i<_>~%F>jIr0e6gS~!i3 zHOX`=qG6M%+H^AF77osUuW9N`yGPVxkLUVSI*K;Jm#uQNZw_jZ{MC-l{+E0bak22} z_Fv3@=UZ?&+J@p{;j``dIj9WcJ%KXh5f=*|(4E)U4a~VmBokKjuzw|=JYv<)zSCcW zKTt0WWym8g7Jdi$82$K|>-}y!UPT`YBtn!}{KIM6zQ2Dh*h5cu)Trl5ih*_RD3Z~7X(Xt8)pFCnMPu3fT z<&!#-u6L|^4(yj#t(3@+M_ep?(`MzmGj8f3k2qU> zU~!Z)A`r2rpLy0a^BIgXR|zU^e~C#;Il6!jVaGr4sSx85^zEpPObsj zGA3T|v&Q@OOnGv~r0x71WI~xTCSLHf#ycldo}4l9vLS-(ywE*Hrh=SFWGZuznVW;m zyc}dM$U%lTFVKYfx-bWs`8mj3G>#1JPbAX^;+c(P`Yv`3Ak+WgzDWwf=)8I+UFXtA zh^YV+gVFiq&BV+cs0~Kfa4jWfrvh39qifGQh^0SYLyW$T)D5HSo;DFnztm4G{m&q= z^fTLur9at8Ed9n1vGfnSiKQRdLp&3IpnWj9uI&J^wBIAd(l(D1OJ#nRSlZf2VrfUO z5KDVGMI6E(=uH^E)OjDu-Y<2#kXY()39-~wKL7ZoPKJo3?s1-^U+Ng2dHhvIy;=L} zmpao-zSIpq=lG=#P*R_Zco`J42oy7V#Ssf%LM-*9&B7}z++pD^VyR1;EPT6#w_Er= z3-2bDy7!oc4_Nr9h0V1P`IjudDSzRgCSRVrOqmPjdyn!>ISZe2F14P=EX?s5I!%{m}yQ%A@be8R#fE&M96JdeF;VY3cM z_$9cWDr43GN!v8*fCO`VM%!$&h0Qu3c}_FyfCQU$K!Q0oqix)*1Clmw)&U8=hcbeP zENs>RNk3rL0SPwifCL|>ykN5qNU&K4B=~hp1_P#Ue`3}Fl{nYS?2|3H(vmUzWJ{l8 z)&U7N>wpBCbwGkU7*_fvvkpkGSqCK8tOF8k)&WW1W!3=+HtT={n{_~f4^Y4KZ)P2k zV6zTLuvrHr*sKGRKG3WK5^UB13FiB>_LCuE=_k!PAi-uGkYKY8NU&K4Bz>t_2PD|6 z0}|Xvor3#`+1Y^1Iv~Mj9gtwN4oI+B2PDs0W*v}Vvkpk`3F;Jll34ofS1tUeh4axL zs7#54XA?_5UuEGs3pZPs`wi>8V3mba7UukEmEj)CdcPR7@I4kDvhX7o-bXC=mnSWJ z+``XW_!VNg2fc1#PTp63(84o`L%1j)?o;d!0e~VFzQn?97G6O-$C2-_aF>NQS@?G1 zup__S!uMHtw}l@gu5jcJSoo-gpSAEy#FdWxDGQ&ra3S8CRfg}-?tRw6)fSFfxRrRG zqkpM|Z?Nzh3-=LU;K=t|c$?YH-c73uZy$+`w zv?K0#cf4;+d(Wm1w|Dkn`>5XbRL=$!L2BGoywxyHqTXt#ENSff1Jamd7*85=3?!r2EEi06B^}3CU4dF5;N_ zxn}L^HSM>cUG}uEi}&0#Zo$0eKu*fuaxiZiSwG)$8gmWgNn@_TylL#&)V^-@y1w>5 zAf<0Ds3*N|E%0bHv@S|}GP$l>KPzT$pllXzEktHACyymd>QX&xZ$`C5E}iWF<>O}# zseDTzJ*j<5VJA#=Pdc7@3q?B`@#F!=O|vKH1PjaUoB!yFY-feE`+5ChSvYO=lDzqk zyX@NitvXZX0^@iTnfPx_fY`gK3U$NkWs;p2Yu&+u_S|7ZBP zGXXMu+(`i$KJNU03?Fx@K!%SyYaqkNoj{Q3qjL!|d^&YnL57bz!yv;ap_2_VeB5~l z89we5gbW{dHbRDvJ24@{$DN~);p0wM$nbGzE@b$)lNd65-1!U{K0LnKOl|lRZm7T^ z0Suq<)!9&;*lJ;D!O%PKpNm{uj&kuFLfPL|)-a@5B&v2!Vxc#d+P z%Tey>9Ob5Pd@zUnzB5O;H95+CHb=R=Im-QGj&i@wQSN+>HRez*SLG;oOOA48>@$aW zf0Uy>AIJW3&}YUtbC6q?qdqf^nS;LPbJSPLal9P#wdE+cB}ch~Im-P$N4W-$!{v~V zH95+eal;(+J)fh#=^QJ|LErKm z)wfvmMMVL>Cw@pUE#{ZzMo+x_F8EOxC5<=jiMJWw6*?fqcxz!a-rGI;HX#ySXbCYR zNBiR*eM8X4?_JbaFLErGzw+pN6EY$2l{9_#dh|8pTXY+QsIL)5)3?u~kKelF^N>-g z`o8YbHwb-|qOZx)_d}1qYUq>CL1XkC^XPlT()UhF->V*dt3g50ug9a0-;J~7cb!My^On93 zSo*ek^znOhw*21d(dU~pdObd9>3hJVkKd`$lw9I;NPX-nT(m>c7VTl=dg z#>wv)kYgD&!;p?z>01rAmS2@e--&VZTj9}n%F?&i(znQ?@6~bgd#OiXIXX$bzBgI= zZt&>iynt-=`FfAOR_LpQo~x=zG)B zcZ;R(O^?3&$I0(&9(}VbMz8O!mcBA{`eWM1IQcyja(4S@w)F9NTiZvqN8gEY@_T_t zU&_+=F-zZKk3P-;$yT3RJo*MLeIK{UAgNI4@C2;U_)mJC5{mULf1=9WZ)5zUa~S6FhgP zV3btfPLIALa~(PAyAwwBQ9e%t!@dM_2X}kzN zMy?t!l@A~-N-CFF+wGn)9s))9C*)w~zoD+qaHDlK4UYHZ`yH}QF%ix?brsTowr}Kn zBO{uIw_-O8_=0D>aMqHe`=>PDA99YRURN~z;WPFY<>5$Vvyf!I@4ZJ|F zT|XX)&hQ$O=1fnem@L)V&BzL53QC1ZWanal}5m|<7IHOJtz_5 zRl_B^IgX-4_oeE9P4^Oyo6qY?^k*WK=#HxcHr>1*Dbf8Ab-<>3z~h!htBuh_Lw!6Q z5obIdOC(Y?T;a_1&#`E%zOk-Gm$cT_CmWiY8gylCBHkHIHlz~1r1|FVuDZ6@Rc}}q zPu8@@F@LHi8uOV`_qaG4lYyKV5LvVn-#UE{A$_`@_1A)R-()>sVzKbq{}A(hB+`3e z7?u~A7tc=t&`KEc$s^_&CZro+$WOrLbF+qJm!xypR|}s!Vx9*@;&YD5vs`r^I`7}) zlSj;RS4bSU(Yfb?bVG(bVxGG~;@FAKJ^vCgWymAum>_93jLJL#Od0ZsRVDl`uLF{hxs;LmqK4p0`Oqg(07fqY6gno4+i4@`&|3pK43yHIX5YSY;xV zVPS&U=~6#=#CpcdRPe}u6+F|3&jbLyQ~2Z&k2&WMZY959Mx)r2t?*6W1)KB;zQmGm zv+xQF=Q2kU_pkP~z3n$+S|jEOPB5Rssrzo*`xAZ&HD^0An^GO+{s)GTGzoK#*+gQ#oVy<&w6=Bn4K6u@4fT2EK zUlPZ471K>Wnly|wKOmf61SW47N|Yh7Ei0z`=WsAzO6u1G2Gh_i9-PC?^e}yFdYZo5 zfi(=E??2$^AP`c&kHc;2;|1&hkNWV~@9LvGiovC&aGZqeEEw{sqXfqLtj2W`+rd}T zc)ibR9fMm^ zZxhMMB{KaZF`FmJX`c?}zskJ}n00G1xi$%7r%$Ufyv((yeVO29IzTTWqAu9lELb0S ztvRO3G-!YSMGFHOKl*pV*nR&oxU=>Bnb?=#|jBUOa1zRnWttL(hbl@Ip%kwzCQ&8OCd8^-~SloE{2?v#_R3-_aNR+s}O9J z!)*P|wW~*a|H=CPhI)Bn&*5BxHh#E5#c}FZ6~=+e&2#RI7n5JNlH$WV_!E2QmA$(< z7%awK=Vt%&&%7}*=Z%ppd!5hTv9%fJQ&^rg+c5IKQ|eg8^aL- zi?L%;Iu+{M5Hc?`nCKpIvKs1yN60xa3R@}_`6dW)?X_37hB`O&NYKe;aZXidx@Sy~ zUhdPBUN|@9{3ePnv6_nnLRpkdkjCD4y1g6QK;5#TC-nyeUEQ-`V|Q=1fX)?SfAS%i z&%o?5tY+UcuuHW98Q!1vuY3aa{{{H(@9&$w%7196VDERs!%xi~c)*D#IHM_48ZKOZ?`X58ZP94KL2U_~0i-X8#iHaVJB<{v7S$r~He;zJbpg zocdZ@-lEE{-Ez-413SnV_zeF|!Z(f-#2Dz)`DE5+l`AB54U}JUisPcDjQe6es(M`*t#e= zck!jZSl;Y{L^7O6R>W@@8J;_LQSv8=G@|aNZ1>IKNuRgiSk1?hGso5u$FK*bsjR;aX2(wdEWl118Ji!?Au&< z-pXhF0|`2vf7FwAn|jht-eFY28wZ2=i`slhOR#)V;>!c?H({NmtjM2TG;lo`!-@N! zziQw*qi6;HO<64%Dfkt%4ILUP+4GJ5f%np*Am7)xBX7%xMlj~Mgp9)<7~wwq4K1dd z`*ZGjuT6}@6G~&AaI2hKsd+?$0Oc3KpthT#8dyHwYB_Afr{FNm2VmHPkk8jV-Xh8G zfFaqpW{oQZz8`VXzK0M`kB z(Bf|e<}I1>{{*~7a7!Klh;b3mfK3^*EMNHV1HW4McL4L1hccfBCNV7WMX<^LuEi&= z6#l;hFA{taZmmd$3Cn3fEy7<1OrlO=zGZ}AK5p@e`G^2@zU>yDm^{kkRm%|dDCxD} zBNyfL(aV-m*)ev&eR6f!0h7E@k$`!twcW)gbIK_Jup^;6q@J+pu7zQRcm^pegT6(; zO7vf*4%l>ec-$NhRHA>sI$+cN4<7g39`~@v{Wl)>0gwB89`|vN`zIdv%O3ZCiJKRp zj8Bv9Hkfa5Z7{zWld*Ix;7Hgq2ju9Z4zr;xCx_)rZ3)m zQ~P?Xt5pUUj&Y%A`?_9bt#ej#$%|(s-B?%G;BJ=L*wh(MH^eY*?QHegyS}>zBi5Zh zJfwA{*Gr(rR6TZvtkJjC##pL8)mWoxOs0|zjgeTwl!%TOR>8%0PZApzF*}-T1=C(7 zn9n$DxRhZ>^)|umoLKL4EIBNE@`!aT*>rvdV1TZGp&s&xb^MrhNXL(_5gGD`b^LfX zW%BR`nhB%WgcZJtOR!0sVCGHb8D8=0z~$1I^N=oLHgvO>A8dx>Isx*-F#LW=%so{$ z3uZibSTZAmnHJ8?r##d6F2U4uonXH6d`>Xqy!3RuU{pBFxP z#5zX)lJF^C4XoqkY{S$;9M<~OWLeQ%)lp&8;$H;k8(!E-KD>CE}>-q8ATZds+ zz>ZN~hTF~(K6%7?w*3s@^JaJn<%9SGohy9uh&7$faBDh4B10arrn8kYyc2^OM20+K zZ7*$b`&nT?Jj;`5CXcvS_)Fl{J*Tb`8S;pWdG`V>g;6~#MTR_L)w6;!QVx8tHsu2z zv6e%(@OhJ8MR_TQ9^sQmtmSY6W#oEs&M|e8N37-0K^fkCLEIObG97}8g?~W!e4t3d zPvwsapFCofe@*y&p!gpPuVL6}_yh4hgK?2ZTrB)9xczK&ptD4VJmO;Ecf+k^b*{*e zN33PV{fVf*1$H0hrL1_yCi&zMYguigjFeT4$dE^@Wpx{6Bn_8|40*(wwtmV;xxH6p z$RpPBxt%h6x&nPjWXK~f7JjGj`5<dHJBokVmX}d5khrhBu20dBj?Vyx%a7 zcff2G?87zQ$FS4!2f9=E!+*}kE>Z|#QlqZ@YI(jCXPA{@oVZYS}HKUQbgB#Zq$ zipE{+@4hXV&*B$5AHdxQ@c#$Cfi$7KQS|N`XB{tqMRFO;Sr-$@(T}tWhFGeB85|&A zN#*zs!FE5H+#1MuUxMeLnZV2kZ)uv3{{hx8 zfWFtDZ#LSflKQ<4hOMs(`Y1Lp-U{yHK41M{@-YmmjU44!mReT;ecQpv*T~>j z$VXjUt`*NQe2-I7=!GPFt$NJgsXu7HN+Dgw0PcCON?F zxvs&&@ci)R8^hw|`0w&9KRA2;6bx&cb9}EUy6v~GzW%;Bt7-=W%Ugo0Dz^IH*Rr|d z9m^|bL@TC0nz!G-wRCw)c~d-C=6vlLT6A~wP{#s2)EDt#I6u!hNY>>#=VwZ)eG{+q+`JM{rLU@rq!h5gGJ5Fuiy6D=QlFSCjZ*fMayvhwR7(7(DJ*NT2V6J zS>x2}p?1SheQnd8Z`~URB7tUBL$GY9@)My@$Ci1%RbRTKVD%k&TPl2sC;#`G^YRwY z@h!pp&yroC#8CCXuQ=qp`kd0)i&uYk-J&N?2V=px&3D|5ix8aIR(s?Vi&}hJORMw0 zSGROu?BY5Z+q?V6yI&X>8ve39PkA{umyz?yc+rcZ>GqtCM-joG5lmj z|JN&=%QNbw#mDc0iw>6K)NH9Mm$I(ZUO8vcoRYtJW8})3MRQ6Y%{%75)&IWID_d}} zUSkwP(YqsZu|ifeM0|&a_Tc+sz=;m&|IGi4Z2j52uVqFI+2QcCV8F@oaClBMG0n;E zaJV9xnB(Lnny5fQJ%H4H>&q|P&3EwsgNE1#o5oA*r~gz$-KcA<%cd6Woj>QAqHR~- z_M3uRFtKL-v?o4W9mJ=Y=UF^8Cq_<&N+a(&CsgYXg!27^74f%e>@f6JABo_{Zq&`hlVd-v5*26vCw=k{u`5qU0Krbc}>GsreU{9gZW1q_7@#9k$st5XuqHKaH?#$B7EQ94nP}S z)9x!eR1w}=F=ybf$cR>iqp9+mJ4c3xN}{Q^*K8Syrp|Z1j}52hOkY?q8(*-UZ)4DS z4}+XsSh~D&&hUz6R6O%_?4c=e@1F9+jmH9z{S;*$%?r+QK8`Ip8Z1UjyNldl#iA$M z9?fg=UpWU2dJ9>_^S9*r@FDGXIu_q)J_t#r!kP1?;hTfA=lpi$XwjG>)Y;ygKJwDM zq50D1Mdj$`LFix|egXC>)Zs%g0s96far`msaKkR7_rigJpEE0{u$LB{{{Eq%5V}8S z27S#xXStp~(d*gF>-ijmI{&zyzTlL-H-?wrIA`D)@)uQ9^i+heFMlU16)LKkLtpc~ zEJ_cG(xFqBR$z|3cmAPs_lyG%mtOtwz+q|}PF6hsk=+Bqi<}RW%J6qr4LnHZ{-V>LH|^Wh;2Ko2jP|`%%dLR%e8I$H z{t?e`k$>Ke?m6>+NxzzbEIKx+jza1%_15`^j;{cZNI@6T%T|6!78*TGuh)~MJw<6 z{r;la!Qq25ox9|!Y41C@ys~2YIsdz6%GE#Kaz5VG4?cS4KRq4n8hDx7o_+e7q8}bB zS-G&_z%8X;d2sK+w-0@}f8Zp&ra$*TAGsqjGk?>}#ImyzGtbzcKfC&(U8|kfnPsOxoMcLkiGto4cy$_EGg#-UcU6&SZdv5WMMrPfz zdPd&ie;L_we8g#xrbgkuU%~sneP?wFg!h`Vl1uZ3pIYVIVipul|Hv6vKX=0t^lfK4 z&mX~kTk{5MUntsvPNC?bz4s0e7y5%;{STLJe>n8e@Q%VfOpqM9H$;A*|6%|3&jao# z%zyOEd-v`woYMbz>GsD%-`=~UumEyXdAm2-B^SosenRZ~~xJ@Mn};P!8uzR4`JsX?31Xk&W6 z8@iS4!^{D3{uyV$=_Ve^3s=sG<;4QiUwd0{T2om;CkDf&4m~imujup_OqR^;ZsNY; z)71YplPB}fHhj15&_#t0R{LkI+)wM`KR)mfC3YTMc~$H%Lvm95XGCi9;t z?4R53550alrSpo*E?XF?O7?8%?d{vJp=-f=t_Y=jyBE|%FOFUuX^%#tIEgV5yD;Q1 z%y>@-iqY-*R`sRV_r}|=eD#Tb5jVX{4xS(Utgj zQle$9`BAspUVga~%;)8+yw(G+J?IIi;q|>JB>vjpE1ztgV8U?{-d1RnR0pxjaIA7!vu!9Pc9k zei#z@#PeXte+q^~K5-rl`A04M17H$ml(asOr`L|*7=FG8Ws|qB7smrB&#^ob<%wxi zmtALwSue@Q(4qd?yUUvd(IK zxEh$0O^*o+J+!qPsORl4)H6}JQBLFKyc)_k!jQ7X#W7bu;-cM63^NErH^UCW=ylr# z+zb;4+B%D)cGYe#v0&m>V^Nz=xA8@*|N6^7aPJFyw|01PQx z*zvC2HIS#CgA52_SmFy{sFP`?46(P3%o4u&b_&d}%aA}VfA96uybnRt-vIvhnV*!@;P^mL_TpFZ1Q=2IEj4XD%j+6 z&IbD>;-`U0lp$t$lF#`V^djcm3KC_M^xCQ0YX^*`QEtHPsU2Rxy-TQ@t$UOLZVPvK z0bgj;6DVL(Hp&W^8ELkgcgj%;nB3cL?X?|Vz}$swf4vi_e`M4X2umwH?mCZ~t!tD5 z<_W-d^J!$10%k^;?bat0hZpcQk9q-#qTuJ#Ks4n(>!OJ7=2cp5t*x zJnnaU-0$(YwO>+wDUW}z$GzF({*1U8t`zlKr$pnF`$#&iyK}_TiDXSpT%D=AE*vCjIWo=)G8iea*Lv{u44#T%ndk(3^EAFHiN z#$)yB+nI=_BgrO>w>AzOO=?6nNz4oHtkGnolTDp)k~%THHlC<&>}=HZ z#G{G&RDE1`I7xOkG^A_m-E!de^fl20qBZl>oefLOUMQ((qOPGf!GLdZrhK$9Ro9e^ zCnYbQsqvlB#?E9a=1z?tJMBFhNha$X>vew?_f!Zc=QTA=>H1hi^A_uDs);k#as{fQXAjL=O4Gj?MO6UNDM_g-_0ywDD#FveU-<2+yM99gOMlSK<%E z`w98v5f=*|(C3%iu}PaeNSL$<--N|W?@`Eh!juEw1be68r(o|A{3Pt}3BC(9pYbWr z_iU2?LdOolBA*n3DHeV`F!}F<9TQCbyyKGJ3cJPPGe3F`-Ft*j9&zz}{DD@$Fzi~` z?-NX&H(Qw5_FsfQP(KXi$s;Zn{-E%`0GrQf{%ZVzJ`F>8@`#It|Cho)3Y*u|e*ykL zUxlGOdBnxSe^U7O!zO9IOg$`ec;;G5zVa!<7e7!4rW`Wl5f=-e(^JcFF&Sirg-sm> zpH&Oh!pLwufYDH%@ti3*L|d?A&8KH)R|+4NdCD7ehWk6nm3EP`@I z2r~JSw#Mfp^2sCCHW(8A6|l{xUlve5ZxaJZ(UlG;JRd%ywkn5oZB_J`F<|@`$xhzE}9WVBatJr?7cVwT(P1eDa93 z?T3K7=)&vsz@xBi3}rC?oyVB_cx}vG!wpHm3f= zurHy!)bneFPad(Rt(h_n_ye_zOtau(;irX9ovrZm%Rt(V!Y7ZoSoqzR{6__IOskDy zB|V#kPad(RX9;DbtR5B_@`$ypmQqHp-5!x4k66oU1!bhH4u}kS#9CIXD8m8-9T6Gw zh>L}PLinuvH^9%|L}{$G5M_erY+u&9`D@2AoV%5`6nFaU*trnSn!Funz9d2#2eIi31v9?(_ zef~@M?|kDZ=L<9_AI5*Ffo7*C^2uY@Uo8BYz~s+%#C-mDIRLj$UwPRmE*8GgDSaKg zb;^)OtbJWM@RvShhW-A1>(H{@FroDZz;yo-cS z9#$dE^@ zb;*>o$m|mt@`zOi$@S^lL{rYw!2p@Cf=yh4>8J9a0WKH*mjyGO%meu*FMbD8hk4%t zpEBls2blIXBExSi=H3TB<2Uy{kvI1~VA@ZLJk$HEVCwvhVA|$B2zid_a@>~bp?i-a;pNrry>8fGT0MpE1`IGUSq0DUPAd6{DF20pFCpi_sn|}^t=h)*G1+H*h?X&Y5qIm zlSiy&yMi*3=9fi=JYr4rD#}QjUlkehh&9b@GtA2wunPq9dv8#18SJwKvux?6JipD} zK>c!EW(c1=V!bZs3!mRZss;02`VPU=*+D%~{DJ64{T+gJ+=gwKe17}=pkRL2O+ik} zs#Eyn5o=kkp^TK(r$vT5VlAsK%1Bw=BQoR>YgsWqrh(s(yD2Ye{;KfFBi1yt@1VSX zXZFv404N_uaUn4W%s@dH|6Bu|`(TxW%gHZu@JwP{A5tZZzrsM%=KZrB%=Y6y%fW5L z^3KKj;eVUMH|2J&gZs%Zaq#WLj1a`z$iXy;b$%U z60uybQx-mL;X>92ktrvZYs&W{#nl#$S(xujDzlWh5Q;&jjtO34@%t>?PmD2t68mJu zJ1u;_h1vJ2%o7$qV&M}OK51e0pBk2Zx8i)(e@TN`yDyk)f0bWl;W}ci&lX-{VY4}$ z$naaR*74`dglbr+AfxQx@*F@NE_zwD3I^ z98l- z#j`D3W#KvtH(Pj#g;!ZPW#MiM-$u*_4bsKEx324pCt&yWIQAMvU2FT&J@GE=#A0S` zaQ{VaB#rH0dN+3U^+reciV+EH7ri0578}ZB_%Ljux0h$0c(nFX>&EWx_U;WmeHp%~ zbbMpqn)Ld1R!ReX1)89X*SETLCk?o$Hyw9;Xs!$c?RrnciJp z8&LPNR>TZp6Q^AjWj`u(Z#5U!_?#;xJn!tZKiO_m9OK0+0B`?>>cmzHk4J_$?w*U> z^*PFYI7c~-o97bmS96s6UXF7AnxourbCjFL_bkXxR?g8J<=&H{-0B?V?#fYaC`Y;d zIm-PoM>+GJnnU?kq#E$8MOgkl9_d_CxxeT%kcm^ zzxynGfNuJx@*Np&ZNIMozY9i5^P2}bTi^4c(fo!Xtofbe(N_iK+44Kvqc1XNG{2RW zKJGzkr>_}~A86u4j?M;;z7^2NaVTDoc_PR1?2VY6^yVRra2r}6QA?mAw z(fsy!^j!jd7ppRnqm%ofGE6fapppuFTZ2t~j9>L}A8b2)Y*#Wg3@JyB_Mk_fp1(|e z)gs6Ie$}Io<4}}Q()>Q;(f3G&^X;6n%#WtejKRRI_2mTgWh=k$dGyV!bmm-8U&PY) zb5Hu%fi%KjNz?bDN8bwQ>w*yVakyX87X+}&FNSa*M;et>-&6qNX7M;siEjt!h^UW! z9Q{~+l>oLrj!UpTDp8JfJ^*nu9iRvbMe9og-1MWq%K&VB&qCiE@RcY>dKUn3GaaB! zmcAI=^rOD_1K9dbLti3Gey{WBI{a!lVYkG?e+dp!WYlIpw9qc2qB>}5=S?2lC64?Oy+ibmH0Qm5+s2amodppWBG z)YmL>Oy4g>AL|fl8op6j*)^E%5s}lPoy`zmR?zxBi$LuEb%A;xzJ(rrGcgB?a?J0QFshI8R&n_X(W!OAa|!tD-zbMDGWOKmbRO!E z6;R{lP$-(VOG7PaZ%B)h%B8zDY_Jc6pWW#n_{~WF*5UpwEnBDT*;=}N@WA%Lq2q(4ThAFA@kH_dG4qLd z%&t9IY*VJ-kFo!ZTd(MK)E2-dOj5V{lc&p&*=$*JwfU;7EkmBa%F$ym+|*SM!?2gb zuxW&0*qlh?>JdLSCx)E^L&_#kos5^Z#>+e{f??SAz-YY7fl1l)Xjt00#B1cM99Xf%WqC+xZR#J@y$+n(e`&||Y&v0T2Xqt?>DC>G}cp0J`$76UgS((a^Ki(gd z=>Gv2=6W$q8S;B0Y$f{N3NsqMBsc*YUssPMt7%;k z+*DsvTOUj7(Medc+SwR&k9SI?8=E4XXlzvx6H)YX{IpokmJH&1Gch|JUVq}tVVjNu&od;xi;zzqv7R@NM$> zrWO_%@`&{e5tAswT~lVH!-Dg>TAPUfN7K15?J7 zGjP^&20v>#qgs*sdBK&G z7yS_n^Swj)Z5Cc(;SLLT5lh-OS@?DfZ@2J$#4I$>ZWzUnS@?j3k6QRy3%^7x*YT8v zPg|JpTq;veEaelju$iwTd^2B1u$iwT*v!`vZ075*BLc0V9>IMU?kDC&1DW|cg3Wv# z!8y;@k=xY?>J)s^!e+h>D>BH8g9bqxBKb@yDmYWV$Oi-}Vjbt?#c+__e(n){QD{eTsF2QfcQCA~Dnby})L=cLba1-WP19dv~yz z?mfb0x_62{*_R?`4FIa8JEm1+)O4Y1!e53Lon<{ zD93IfACcPe4uUraMoIOJfI-|W9><}t4LAg2^oad-kG@C1*OwnaH+@{&X6u`YLelh| zC34hj`efMB{hGvPOJA)=-|f(+=_|4HE%&6a67Fo}$F&@G`i@%Z;~N0|m_F|}v~Glx z+Y)?7^Lv{o-c94kea0i#KaSi39=Sodv(=Z!J#yQ}kvr~@*KkBk zPMtsc(QqxB9sVETj(OyallLHtKNapO%dLLD1F)}0>MgD{jG@dR&ZYmflh%r2Ye1)Q3vZ6g1c=T(8u|0XEU&nLhqQ{Zrr1% zTM?)nj=M^2Soaprv1zQ0h73(U=Jq5T6FMZPkFLV=E1wL<62^)C^LHaZ{oTlsvj@-G z_1lq!(O`aXWANqRj4kK+t|{oh{O;nx{{Ge<=K1y>IoCJ4`S=S1d-k+mb#$n0XlMS= z<3sz3w|_CR=ibQPBjw;5#?!wT0ppkZ)IBQ<=SN*99J6f4_C1xyjh?$(wtpdVZ~iq? zFSz@TZI%CU_SUmxUuvW=;|v<`#*BY4S4TqY-?_cz`I}e8_g)kF#J*p>@}*~<*>foM zg-tIO4gEO}5obLivCb&zKnwl+sQ9!oTx;sw0ue&jWA^CmhaHA_6oyrX_-imE$|$K$ z#>4tVoAr)ibaWz{Jo_!mX#e$x%0PuXfHx7QpO+>-BU>JVC1Ak3#f@so9M54Z9i`0i zowH3DvE2U}rVMu)VlA^Wl<3@vaUeMDu$w)Gt)RBNlw6nf0 z;_l;>?76kOZ$mq$C^>CiLe)eY8j?|WIH5LPAE|3>h%gG?Z}feJ*GAtl%yo8ekl;(l zYu;C-L*XlIIWT2ezlf=0zTo>|Cj~Pex+%jt_@H3cJCe@3=j#Q>2uQ?w?l0YbiPxl4 zWNg04i^#C|QTa*>GtQO(F&!3(p=<5>?v1F=8~V%ySoQb) zKk(kc@3X9K+DyiKKQZ-b0y(L&zW0m1$)4*wAjc{&ncR({&rYBA?eKE%8EL`IWP-Sc zgLRtin_*dP*|x~D^UHdveLtY9@8g1-$pmpdMkQ?OW4hrq`tF5o>pKm%-X{QEeP8v+ z@%DyyM`d-Lf|PeUJ}QO?egPzjr!4F@lSJAnY!5&|Lh<6J4j1{Y+mBTdxJ6ZwQW)usQz8XIsiKz24{Ce$>C~z*o|Ez0bK^ zuX3?^LRjHDqBZiZIAq9nIN15uZ_73HO?5FNIr($$W4vHUpVQW>eAoL{`rZN7GXKke zq3Kn-VZgUDIv9So?5?f-FC5sNw?A+!|BC(YnNY8rGgkg{1ZT1IfBKxzpdV+k^qaF- zex+wZeT-+Z{L;vof1Jhg`Frk--u3XnD`bvymWsxo&2Bho&Vw>X`YkHLX+4kh?Vf-1 z>&_ui+kShv0)aX!3Y{aM4$tuI4m^Q-8?_I@)f^x3Z?UZtZ3J3BYTG~cg~n9Kwa_ee$IUApE8Ndw&IJ9dg3;7 z6s}?1dxw0e17==CFtM-VSRP!aChwaTIur`+>K{Oj#@RsAe8ZKc;bjHkX$8mp;bl|9 z)20T$5?)qVb?t@A!qW;bjAyUHcAA65CbuOxM#`M>xp&%>9n%U1FFX4EXux-GOOt)5O68yb~N`hTDX3O*^oW$~%NIU!To?CGAp+&r3(s-$1mk$Tr z{_=sN37n~S5q*Q7#Pl8H`eQ}YAO3yh>o`-eVEACjsg=PlL^ynKp3|o`54QBzVZKo) z`0Cz+p+~1imrZw$*4sbjSV8xLp#gIc+rBI046~n7Yt6H~UwF~@%PjwC-T@X0$6w1Jq25fUc?a0_{o9yB~=3I*f zMb$y4{hMnzSh2HqYs=uYXdn+q*T$nQv+rHz)SAJoYJNS^Sa^1@w#gqow=lY_Fj`a= zZ7Jg!w@%)Jfzh-35Vx5>^k}XZS_}ouJ(BPG+wW* z>C^a_1|5o_E`OEtD9gtvKK?LYe01Vt*E$#y<%l^19){uP4U(pXSamXf>ZDyw48t@q z9CdQooi@X+fMLGr*8xK!zXOJ^?&RMDLmlLI!SE9d`QL?6{$XHE+X)N52+VX){$&^v z^(bkY$x~hYY@P=*M{I`WBMm8ASd(A)(GI~dY^B%?I}e65ZrCa(td>8o6CVeu=Q6Pw z_HvjrVW?9-U1ZZqp5}#1rKo43^t1daPn*3DYNS}3nm?I)ABhlm-DX`2B< znk+2q9K&c|olV}9bCpy7nSYic`zt=WGc1Q_I8?xR-whLhp`JxBd|xB~X&4gu#4LaE zPr;C~#Y>%eFtkb8WcUhC8QP?5GNx>+GW(FLAkVNLg349lgkU3QDWDL_}J`5DPU$}+3wm= z2T;IF)g5I8+$Q1h0&bO8w|0Z-=8VTt3Yh9+yIV#bKs-~&rhw`4M>zp=f}HKXa?}A7 z@bQw5QozjAx82v6%B>vUaO{decSt>9(`}as-E0gIm~X=HOddN0^j`&|ME7cSz^40V zkNXaf`yP+`OCI+LwoW1H+Y7@y@J3gL)E|VcME~P3Y#?lmJOk)oVY5@c$V|v*km0_04G59MnfBz)% zY&m6^q5F!*|G&kboqQSUZvlH0A%^GLRhBP1^)g?J*$0_!-bBh!pKHaRc`ieJUIcdp z_<(U=;ald>*Wqz*5H~x?GSs&JBW`w9Whk{z!A;#A#(lN#K2P|sc-((GCj2#cs+E&& z-oj}!_MtebSX~0gwdi>|p3{IDQgx}ictmH};z*a;XlG1MeMvSYn(ERiJ@q9~U*Fl- zlyZGjv4+OlI-PVIZHP2AMbdicOkGWVeO)Y}hw-GElC`nAI-QbR-x+JDi8r|M;`p6- zt(mZE&eZ9P_ukaLKE94;2^j{z-EhiU`?_9VcMrbMXvj{UR#cnPImMo{ZKCPU#&m5| zXAL*T>LSr5_Xr>ySCmTQEF}4W*pzOHMdO{SIgZRGJ3BSEk=jOlU~F(F5l7R}`eePH zON6s`8Zb**=OZT@o zSiVDoUxLj%`@{GHnS4PHc_v@NZ-JZoyI@}~cm-@zCKUjnD_|%?9&xeo(SsO%2W*C+ z46!MzN&wLHFyxa*tmhP&vXV!fgvgLbTr7N3R{Ssy>Vcsi@`&}i@Znak-6uqbJYtoZ zO&NI;-61mM5f=;p^TIz2I|Spu0Dqt%7{(hCtY`b|7Cz;fReu%!K;MF)JbA>$!apMX z6R^qh%j4To;gd(K=O#TP{1;(Y!>Igo!Y7Yd`{h1V%_r< zaBN(>P@oCpg3Ls5u|wtAQ;dr^TU_Sa6~hx`UpqTr^Wn#{r^q87ldljMpco8g7#DGI z2!9}RO+yBnxjd91Z!wI@m}@HKvmSiPkVmX(=37WP0$vT9H0HWcA!x#~f{eGUSY4>I z8Mb|m-XnbSh&2s>W8*!Ooblr|^&c{fmv~IMNq$X#4jIN}`g7sKIX14d$QeH_Q}-a_ z&7++!(_SD$o@p=R#dWrcYU1*Q%%pKaX41HLp+OT~JIG8Fm#OEFVO-kYq?|D4)p%OOJ>VG%> zKzytrpFCnc1B7Yy^I-~P`d-M8XZl{@(@*yu=jG=a1tenKcihCqiUuz~^!c0l4}ThbQzsD@HxoH?A-D&&c)8C8CT-x8OxmRHrQ09EAIOwH z6D4>|ynLttG27+9zlJ>|7?zonMn3cP1L4ztMlkcj{*5w=V6*G-voiy=!jMlMak221 z2%mL_)!iS$A7~W}<;f$~bg~@$A^d?lVJJf$vC4qu&e{98$dE@|>~{tWSx@v?dYj0Q zN31gU2%iIfAsBrI`@HbUBi6pF5?G&~4*@f6F zVW@{Z;$q>qkT43lV|E)3niR-rsGw`r_*Dy=ea%J2>}xK4quJM7@NBeQ?K923=EASD_{|nJ`}=1@i}2yWz4?jeDDC7ea!`%ea!{uGKYWNy6&6$+T-2b-0*hnUdbD|7qZzty0mXgeoOQaZi%W^0}G zs7QCuh9uS)v^!f@k1jPBmEfko*wWhGh1uh|$==6#)K67&ms}*Fw>z75SBRT&L&|K* zJ*hM^Edf3}k=Bjtp}!A>nZ~6sn{($ZEip_a?`)&p-r2+PeRrqu(E`8()wP|sw#(MY zNo;1lI;$LaIPT$wkpCV-75;!`NN4$MV|~J!?~ToTJ|3E94i7 z4Y#cK?AbjUvKRGwG`H(E^z^3N`)p$dD(yd5jxvgMQS>Q0{)T$?$PM*kt&)-)=H|+|M`}KJFKt z3?KL7PKJ;BohQQwd*nEud@_98uRj?+?uVcZpOk(R%J6YN31#@WpMx@d+)qInKJHhc z3?KIcQHGEEt;k-^iv9#hSl9^RAc_-7Gr=Y|^a zpNrgkbCg?`quhNt%Kd$gazD*c?)N#$oy%u@$l?}nXuR@!caC!Fa+Kq_e7VH?ogC#} z%TaC?pX+nT?`1j4b>=A7pQGH)9Ob^1qa4qj%O$`6nWNkpd^gCU{N_v|M;)XKL=KiA zZ~arb1rXrt>SS__qR+0+9~IrSv_HUV3xk`*Zxh}NjsmZMVV^=dzAnC3^hJS5UxU#! z(M?R#>xp*{crU{!X}s$_@wVdqg73`C8I=!-yz`ob`(?+MYTK_y#MBj z_cY=?06E4x7e?dF2cT}fzT6kL0&XSMH{#Lv1m1%<{zQEjz^J~rd-M%LU!y7$IXd44 zIfiMb1C)uml^`V?rI;zaS>Rav6w;k_xw?l&Z-T^~7=64H#oj#5) zybF9K%8>>Dh@0sEm1C@5%dZA*`cdByfUPeG_ag9>C`bAN0C6)NpngkVE!^~@zP|;q z^>OSWo4#*=&oIp}q*pC{^>EXV`pmciY`wnsz$4rB{YQ_!RcPFrU)C?x_iF$ zmcD=Y=zG%A*JSA{^Ku_Hmv^ z-zMnWgz&5{m%^w%hPTt#2RGBNr0Hw)=sN{{T7K__uiwdD3@#7)wgQXZrZfM$`Ado_PD9FI&82h>+#Xdll)U5K>Gx z{b*)+()|_4#V8;|8PWpL=eUqw$n8@HY?Z5m9Mjq?e$^G|+u+H3EQQg0EcEF60v={~ z{-2WStM}+@u5{$6kM~X0NBKMr4Erd?o=?K_I$(5NMy>=lhvU&DyYvXgZ~wsxsPS^B z*p};_kHtP&(r3m6Fp!};E;*~tLxvpe{OdaO#=4pY$9M8|=xgu{#zfSa)K+1B3h%6# zOVMK1N1OG}x=H~bN)!Pnd)`NR6iw!j;8`P=#mZuHHo%fml5eVU5(%!`(l z_rwc(;%7K(&-Wgz`e2c>O7fbbTRxvx@IhZypfh?_Vp?H1Q1)oSvAq3Lx18bIec8Ti z7fjs}@Ri);AKKLtKI9*IAhhRiT2}t^@8i#nJlOE_p^n$F4td}OE`l7|)YsE`=1}*> z!DLVCS&7!lJ)8PE*0l7rmL^)~?&;o`7#itmExYUH{?6^)tG|9I|J;r>a}uo;iTt;1 zE-mjrTH0|mlz61Q<7i3Gm-@G_Dedko0VjTNq$3QklG$%`be496OF~CO)l-LCgL_*` zx~oHb_H7*6y>V~rv~cU&hFi~0Jo&azRo~tzdEv!=S;zS;vySs`Ml#oNJ}T=thrYpe zoL@ETIL$xSaYh5PgW)$W>$)v3bhKn)ZTHbo_#9v4Xec-he}`J%7G73z;7DKi$(a{^ z=Fnn)cfGr+{QcGQwGu&QZyC|Nl;HC*(z(45N7vi5MGU~^!~j=tbZ;meDB2u2!{KZW6z>fb`UXp(J{$;cKhoD9_Cs>VRkOBl|F0caowxa_^ZR%9 zg{n68_iv0oHS5q-v-e*0_8nJ+HeWR-d{sCY4qt`ksNt*p;j8eEC9=+h3+4mV5Fg!t zpz2)gFmO%LyzrFHXyx>2dEs&_jSnyLg`b>#Vd2}Ee>nTheB92Jp5F|Stz|DT!Izpcb-vtC~whlSqLrjHD1eyUi|iN9BpIUeE6vd zQv7FJNy|=_q&E6$L)Bs{Uu`}pk=Wsqly7jAVHqAfTl(=kA^YGm7?SEI))kq-^r!QJyv*FsMHSL&_%4v{HsP;|jx+!;r?4_g6Xc{LaI;SRVX#NagjGQ_+&k$(paiF{&IPs88HNI>Kh^X5kRr-1W>e-xNEFY;fo0N7QOcmMb9h8XrgN^9y%TWYnXm0Idc$@~4x zd7gV`&)&^m+uGmn*`0g7^PT5B^XJUWnRCvZIq>ZNcfth0^P&kHc77CL9*868xKuhu zgtI?&!Q&-e2w`APCvhNC**r};*yQ-TO$N7|sM&X}+<9jV95QKK zP08^moUD?5jxYNwDA>Tx#m0eGM)*y_$W->Ri+$3_fD8L8AKv&~|^AE<<@4Q~s@;U1ZX$5#X#4h~RRrhX6c)uAZJ4qZXL(nqnl zfL|>~IF{>`-bLDyRho9a3V|l&g8nk|(1h!i{>wd3Tf%=;ZlT-}9fNum-mtI>;k(?U zE&h+D{GXPe^icikbw%_g^M611UlG1tz#(25{AZTFT_A6;_e0w*4&kpXeY?QJpBKPB zN1~qGC$FODHI2vI>-AE2-xjV{yry#dWH@h z*uO8p_^Lr9b%grpbDBEg)ko32zT5CU+U_)bo3_*`bdVS2z}RPQ6c~GJ43o93hS~ms zVY=z>8K#^5L4==~ku@@0hv>#wPjkGUOQ$JRI1|hqmSOao%A%aA5!L zL!a^MwH-9fspuNRoc1US?7v^zJ0nav`%Oj^lx@kXNZ!{hb?8mEs zj?LK_G95T@&iHxgkP*qS>A->gn-T9Zo-%Jzn9t2QXgnM^XIL(B(e|x|(Z4dn#R!MvD}7GG9q?3U3H96a$Z!uH4(xfPuZO1$8x3Eq z?O74VT$aR3-XMoQ95`qE`Nor{W-#L`Nt}jIZsOskdOxJyFz=cP596*)E1C}T-NGI6If-AkYAtA z*bTP4_kt~6!BSiy{T6SqZ+Kp$6Kq;~=qs{@$-m>(5nczjG!I93dxUpIcrTa(A-PM= z@%{)u5aAIelo&ONBG$YzYyUW%B$PqeB!te;e`>V&vBjq@;p{c|DMR^?GX<1 zSWPF)V>KM+u^N6f(tiSM_2F2Ae;ncGBOKV>N2M0H5%3g(VpKiAyJn#0TGwZ)pUsedeQqINg6;t-s zMD|`TWw*B@WpBO03U18w@V+-???%}pZqmm%+U?z$vbS4d4RS7?z7MDDeM|PpANCk~ zyS)ce_86mZUUhMMtnmWwwSdQEuSw@A>~T5Z_WpOu9_PVE+lP(Y`@@vI=XDS~zub9o zdtA5azjQn}XZ`>~CT{Qlr0n(Tf@HsRNFPIIw^yV6V|#m4!QN!H*tos_NZETv_I4>8 zd-N%8FN`VV_xksg?5&jF#qFK0c)`6EFsw@A_NZTOuQQdtCIwKwF6bdGDSOY#-aPT7 zk82ILcZu0!oQs^N0LS<#3*2hyy#&H!qx2YKyP$*kT)4!S$$UzB95)x&E2h%dFf)0! zPx@XX=jq#K>GS=6qJUv<^djBfrj)%M*pnXi&Wh}zFV&JK>3vJbY5~J%wY_#w~ZNXQPK}XYR8Y-2U#LA6#(Cfvl3_F)1B4{`8S-#@DG; zGI!Tp@%)P(?&+OsOFolD$HOBeE#aH2RI8Z7n$6liOEGBsPqqzfDa-#8^Z(ekVKs8` zKf-^abP#7)Jo=ovVASdLrorxbY4VbkDnL5p&a z6mD2QxJiq2>+O*tttwR5u&uyL6W0&g7<;lZD5c}ly4JDmLkp5boL6_(k1YC-2(8`y zPhsuuu!3*C?IzXG!!-w{CFQ|-xvh&j7qy?GS5MknGiP15DExbzoEIjO&Z3pWrFHq& z%sM#j3(pEAA9{t;|>e?4*`Yd=ki)@{cx?V-8{a&Cp!7rd+sb8EF=$l z^D}tnpUzk3U)!3%h2D|#>hksXU2}L^a)4JJ&F3!JXDft1s{GX6Y>z<;3)GrN{)cQS zQL`U9H=kR1^zMhJB}aSC>?Aew=O)Fy=bHSC>2#nR0PvuI6|Y$i4H zKV>h!XU_h^(;lnVUa7o7iJ!6Z=)tj!YE_cMLx;2KO-Wg3wN<9)p>uc6o4NAj-|Sgv z`3yVHd35DU&u3_NA)lcitYo*8E-y2)IZs{vDJ%EPdD3l#27Tf(E7_`$$AvTgQ+d2^ z{4soHVg46L4=v$@bzZGdz$xBai7{)r&FDupO)+C*Wf^5WOHHL`s+pp^nP3E40N{a-S^2e^LJ>QmULdy z;lHRqZLf1*Hh#rersIL@mZ4XegqTBp4JfOAE@=Cya$EFV&jxAN$mn#-2asJ=%) zV=>eC@G8z9-^IIg?A}{O=g-|)teyFVf*RZCpTh2WOhxo3APq+(`A;dTgLCKa`6Jms z8u)M#K&QKU^baBO9fxZ!D>h)_5&Y-WU2)Axqu&B1zdGlBF`RQBhC5udFt0C4d>!1P zxla?;y8o=rk-B>^bELi;?1W#-@Qm zV`B^Es(?NQl@wsh%}cEOJ_@<#K?Q#pbQ9&5zq_$G|3GcNX7odFjhdV_cYe8woga^T zY%o-+WK~p@33Ws5reUetO&IOz0}G*LyU_Mj45!IfQt{@VmOlSZmDSKE{I#8?l&vtjRknUUU9p6`Dpw1p_ugw?VR-6C zNnVp*Ws9-Y1xZ%(E2irTRf!25ft@J+He~X7bs##g&gZ=PLzr{w4ou58Bwx7cZEP;= z7@3&zO2?pH*-iIdUpZstH^x@Bj_KU`rTX z{}m3-L6u?7d$4lpc{zm-*Qjd<7pFkIbYKZ4>sR_ z|43}N)W;{IBR;s{z2oKjVt1i9thcWR-mTGkL3fFD4_RMxtIN1bxdYW5;?4c~x?7>| zx}l-Lt%ae@TML7lx>;PiVQ`x&{Ku6A`qRJCmTv*OkRKe^!T-}@W%#&YdAzJ>d zLcj7S-mmm(Pe(5j2hIj1Z!svs5^Xg{(D7$mP%)6c({YuaaziJ=%hV~IU*L>?u z-87GbC_MGOq=y~7ADSHx`)jQ&?+qG_m$c2#_ROV4 zkM0SK&Wm;Q5Vr*1xNlB*-KyAr&Z*Pf&YDNK_EXW#YC6s(ht3Pu30>0281Uw7W6>_E zuc-SEwW*}9jbbUarNcGl*5nauTXlGay`z1bziC%><*(z6v;7N&bE>CZM#&rpb$=u2 zV|I>Zb}lI#J+<}Wg5D+k^7~${emRWO@{QBOP1i$9tsaN2?n6I1K35&vj#Ku2;ao6Xlb@r43n!pBXXEl#p=5r6@YLQa)6%te z+|$PWeQBH;I@(L?X4RcU<(Si^>JhFz=;CWKjWyZUB{Pz~zH!OPNq65E#;enMS{gN8 zt<>Lh&TLgbZ`b}5d>l7^#eZo{zI?X%)jFL8_dL)&E#Eln){|PN&G=dWgJZ#B@H_tUZZ+(^O6I#Z=aid4NAj+o_F0`Je;Mk3S;{)4hZ9{ z(l|ip|2^MV8~c9JvrXqgMeE$t3-3Gfx4X{`=Np}<)OY?7=Zn<02mip%7x#A1&W;AX z@T+##Q`0(kR!^zdnyd{_4$-wO9WSGr&eK!<~eDZllKWBrdea zWbC>-8M|JzXuN|k)f7j09^rT^g@oP9*oU8J8%chzmzvU~(P+v=R??Lsfs-t1( zmDDJ5nnMTsz<#^A~LEdg=XnR)D0pe)33fC)0C& zD*bf)o=#8Sj*y!2vzcb|yIwdgiE}%*TX>rH@Ts;1+kY}WPnX-DZTjharuX-B`~I%) z<>dC#`(eJ))O_~iu}pfuSRY#q!`U(~4*gfzwo%)H9O7|;J+63PblG=-9P#02P8{-! z>^qr0WkNdHVvo4IeDH&L#!bAWAE^}YLh;yP%luXB+$4uo(&yNr&$dMl{fp#~O8Oz4 zO-VX^U+Q6x9Q(di4twl-g&g+)Nb@>5_5}~fA(iaIWo4hO+b;-TD2M&4&WBBZ)>=s)&hvAI=@TFOv7IM}Otmk0VV{DWr}ISnQn!hh z?YVO7d$DbaccmOsDc=9CeVG?ZyywgDJe0VW%Q1I?G+Zv{WwTn?^R-48sgySAG5fG} z`^?`a9&9d=L#EpI4bovBuNUllqIw(0+iCkQwJrNDlS3-S8X`wzhC4CEVuY8H4I2d8yNfWzZLP|6~_Nr#Dl4q=)X>p>p$2zN5JDcQ# z%AsA3Xu9RzBFAnw%OUIwrd?q3kLA#Xe_YPfe@qx#=sYclOcn1!>0ql_?ov78{WUqa z|Lek}37cP*bNdepBbDsO_2g~R!R9tOw>cv0Y2GF5Hg^jnm25JGVSl#0a@brg=lhU=p*Gxp%vm-^E#*C;n2hg7l&r{sn(x9M{i|GV|8Io5G{W-DFf zryz$+m7ZUkep3=R_9?4^9LIvRQO4wpa%L>y{Tt^yuW#vogFY7hJLQn6^7a3R<3hV8 z?`&TtN8WwTY^C(ab@fWqPoJCEk8;>9hg~q^aHNt=FMqc4aaz5VReB|Z! zbz$N}=V7^Ja*c8)ks%2@_+)M2Ul#H52Jt?SG!x9WntB)?Q_6^RoT!}XpRvz&sT}&3 z*_O1emP1Ihi>EEF^M0OXOoTo3hvl$~ofFk_bbX&Qgh>PYkY~0WccfAp;(g;|oz@Qq zQa`mJ$7Qm%bXAjZwPC~)hp#AmgeHF1b!962O)3AXl%J7SS!&0+Jwmma(UkvvDgUmN|E83GcglZD z%D*S&|6t1h+bREtQvO?0{tu`8A5Ho1NclgO^7Hh)EVY?WmOVnXnSCk$Jt_aEQhs{J zveafiQ}zheWvtZtJhttxP}lOA2Iy*$+_T=e0r_1|5oaITAHD2zPSt3U5gg>M}f{*KHCQsH;XPdXNd{jbV=Ar*ck z<^SVx`tQvALn{2|7M_&vy3A>{GHgOTyce6-wnMI7UyQoY{O1M#KxTvayMuoyvrB&V z>ka<(8NSU@_FtoizKOl|5I&sw6AMq`-<0{Og(v%O$<(Vbi9gZbn(30iY;Pp2`{j2b{Oj^_Y&i4PYZUWGsqpW~50xC>U(c{U=??k7 zrFv7Z^U1#xXo9^N3=&Q77gGMVl>dU1f3^ISE$zNuZ$}NK!mmsDcgf!@UCu=Hdb06x z`N_|4@bAvBPAKEJWx;<-<}vvxFRtN9s_?n#9o z92fqv%%iFB?~V)qc;=r|;k@uwkZnd5^*TSkOnw*2V@}HdI{C}_-Ioaq@!1aOzja*r zJ(-QE{cp7JB)^}^>`jG#Qhurw*8=sK-_1Ob3je13l>hn={+Z0v@>4cR`ahScBXK6A z=N0nPp3ar4&m72frNWn|{BJe=1wsG!GS{cV-=Ff|CO=eT(Emc_bE)tLEj;P}zL@!L zD*SKdZ`Qtl754v9=0D^w=l?62({vF<`jhm0HPb9V`AX{Z*D`P6BFhARo&4qUIh=W~ z{6xw1ZGGnJnOjr(cUyQ;zaGwfEfwyIBZW`5Up=Vz>BAdKzN%4Ihd%nz?h7+@x9P+4 z?QQdr&ZcLve$aaoW6fZTM8o22HEvMf!~! zZx}9aO4bfYmSyS~8tCtA>GDswr#_$FG1S@J)7R&pG4I!!P~APP{*m+k!Iqw4SC4-$ zy{)sm*wNPNrb=(!ClT@a^Uh+?O|^A2_qR0$5yN3n_l}mwRCB1t7OHkZTgas?D2{ElAXT(p|u+aM~dMiPswi0Lj!F^8FIDFic8<%QG$xw z*N$voyJhnY`jAqh+c{9|8tm_*G=oWUxpidQ+L85|d%J$~uqUP1Tx@UdY2k>K^tN5S zK_6vGKKzte8|oR<$Lve#?`rLDZtLl1F|P7X*Y)*j*@$haJzEC)y1Uv2snR9Ykj}N+ ziq|XUn+GUg3bU`Ld$31VT{B6++TzwN;fqb1H|bMAn}>#mHy25JFg8v_&0*X6Ni+u5 z_ivdbXhb2`4i0W94(rXqw2qdn*fh}hZu>-)XTeE6O_ky(X6-a`-8Owf>D_T!-4q%( z6t5jzJG5b#?_QY!`_k6hs*)3`Y*-${cMn$AZx|V*2B%CDR@}H{;JVbI>Fnw(HurUw zN)tV$GJFHfJ^&{39GaeDv8!XCxm20@Hg6{9p$T-i_ILFRdaE58YU}K5X)V_bdm+ZO z+q#>FI(u5^(SCuopo-S-9HA_iPDugKvwhnd;6}#2SLP`f( z+uMh_2TGYBt5$(FZKkh`4cXzSK&dy4m1*)=k{j`w+~3pJQ5AQPZm`_D zYz#Bq*OnqcrP#MQtd$qCgJHhtrlnB4P4{&64XHEh@|{r8hrKp?&?<%;$bz9VR53cPSEUGc-w6JMFr{WD!yXTk;b+mT%G!K;y zDQ!@ne7l+zb|&=IgM%G9!M1XI*|(#mo%Ir1JVN$eKUf^r2l4cwH+`8;N`qUkFAkf2 zXIDp8i<+x>sVn`R1EuN^nm^Uh7S%~2QQ|sUi|wUenWcOtuFjL_mKLS4A_`SFe8SBO zyIi`-r`^W!BU?9IeYL7%|7NWuSz0(U>_S17&URW6h*gR@ZBn)uv{gD+1%CI*P<^OdSRBTa&ml2HMy&;ziY64u+7GZ zSq6?0hSd#r?GMfwPgwQ>ev>hHgIzx}9?u!i_!6EmC1cg>a{WjcL&C#>{af0CrSC># zXWW{U7ZRG-f@ho?Y_14&xHj?iDGQ=<#uJ*oh~H#9%vzO>bH)cdW;GFS{&$DmR zkK~PV=)i$<#uH!m&H9m0+~~l8bH+3N&#uysgx%1A1Luq*)PD@91&AcqbdIA?q~7FUUoERjP84xBSyFyrgSEfe;&9ytu) zb=rn}S>9i5JRI2bPP=mbkVk9F3yp^ZdmC>zp5hJp<={&?<*)+>&KV!_yHkYaM2BBrudZ3RA(!w2hHun%i(&Q) zdAG9SxT6mj>VWa*7|*^T@BIRjE;;n!z&YbX-ic81D{|<-fpf-(ybp?ytdv6s4xBUo zZN^`%Z77E!0SQHnJ{&k_{2bvd%988l(18Qzj2FygH}Gp~vXXeiIpgtr+mVS(!%Jag z17~G2OBkN}9F$}BTK!1Qkb{Q<=ZqH|Z}Vj^<87WQe}njfw!!8`0SWnphXdz~7cAKf z`@S5;){(t5!3Av^#8an&&CLlv&v-a+&iGIttUN>g(Y|nCFK3D@yG1{eH_Blj4xBSy zaD3Wk!c<6`_)^-oCORQ);!9~WenQ%$GiBPOlTKT&qG`|#+|}ByGECYLKklJCxydU5 z`*DAzu)NpLmL+l7uvX`KTc60jeOkT&rZ z(}5W_2G-g!-2i8E(m*l_=Yg{;lMfNiSn5z=k?)9VRYcY zULXF-_jru-A=dbgT}OF46!8_Pn&Cvqe9W zGff8$?CE@s@yws;R#^6(XzLtjJRI1sPZ!IdU5kd&X*zIVzdr4iKf6vpl5NWz=1veE6}-FKN9BqkViOh&iIw`XKz76-_0}~IB?GRRq}h9$tQN;z@FyS zkq+I|5fN%Iv+6|IIyRG9XgiIqoxA~_Vf>+^8x)x zn1@8#;J`WK*UO*XgNA+MMLKYN?rXS?}lI#4(#=xuTk08h;K1JhP;cCRUO4+f{YV%W!oz`c#?zc! zf2MHuxAh}oC+KwL*6By`>vGtK z1LxN1M^cc>+If>Ig$^9p&!?hFb>^eO=)i%!&NQK;I)r>y4jnkK*O`UFUS}RM9XPPp znQs{XxVFu5US}RL9uDkvrX3yC59GUY#0v+mRA+|KIZHp1_sD_2tnD;8uP1HB!+|T+ zlQ)>o3~j+)PtG?Uo74%fCo7DH1A9GLWjy*b<-DFymq;5N*z3tv#)so6?DZtnH|bMP zz?JIBfbB~?0avOgTTO?00?w_|kE9^y^<;-IX@dh-swaEIqccxi@VI)iMTF!Na_BS} z_Byaoem|z6E=dP2)FmD38N!%oI6LVB1WU(`_}~$+AG>M7K7PO!I&fegKTvPrcWFx; z-cR-#4+r+Va!{ zo9Tz+yCA3}c{dD`HT)Uj2E&I9WA@Jtvwg-eW%Yt#bY`i)WM8&ThC^8yM&}B{Y8_HVpCh&!4+r*h#AA-=#o}65h*km66cJx1@A4%SLIB?E*p8t~u#=JKw%*%)O2H@eqUOqd}vGU+zvuT{(}4qfe)phb?P8_rz=1u#d(okwB=0mGII#Es zL&nq3+@>%;*AE*H2ljKp>*R0HPoK7kx0i5UBTzEoyk_l%a~b>_ zIk!PN*a_!f;|U#S=k+iZ?0hoeXKB+Q9qfQ}#uGZuPBTmeJNpto*pW`jj`4(!v(u93 zPskT1H%YJ~osu2n3Cr>@L9$G)LHKrU=@Y@om2zPAy~!}!P{-_;zQ%YsupeuRiGAC( z?J|6^wxRBQNgpNCo6qICw zozEtGup^z49pecdXQw04pJ3;{gb(#xI@k&I+;~E>pHFn^v}x!p~&zCF#L9HiO>6`P&dTGf&Dm!dZlv@ak+CEJRI1sM@HbgGa0T)5iie1VR!`W`C1?hPraaf0x#B9hq=V}L^#g-GUMUE zmGXYM>5zADrMwTA4tWQA-mfwK-P*=^-()--*z-PWJb9tbWWS&v$!U3fFS81!u;L^V2Kl?@fNM0w04jedVe4FvF(3Y~uKA<1TxpL^k zfpf+SX0l)ASK&AU*~;aNCmrx=+DV5S*@p75Jci>X9uDkz4{i1%A|!8= zV_!J1j~g#B{y}X+y`_Ol2ISC(1ABYnnEJhoou&f^_Vz-4y|1{oFZUb&u(k!c>}j5X&KCVh7RjLl2ljFnEX5VtLNAP+6RrNxHX3@9b9;#QhzJRJgNFm>j_5}c;Ulx&gn zZ=P=l*TZHqJLIwyo@BRNmJUaH1n&iRC-`=-#sEd5ndNz`USryygkCZBD^=kcSShV$!Q`aoWH!?9f|PK2tNt7_V{#!Lwz&; zg@~U)nHb*?;R4v&^1=vrM|fF;SAng)Ulrl?5$3tM>+AqqpTPY@$DwW*&$=4Uhx%YV z_tTsYb-?&1B0d~<>t}upZ}|BLPgCFKeE9yn>4a~^8fKn}>$FF>7fi*GaBs@-ng|a> zIDCKJ`ZvBy>U|yG-F19hgvTO$AK3cCLlOQ~gv0meP3NhIe+F#*=W`Lxs4sUue1G0_ z!uRJ5hwsnNO!64MKW{jEf8Ov4>=+K;pEtY?o{Lur-+y(yJ;JQZ;r!kR-xcBg5q==T zN5IzSAC2&n5q>(t&qnwKu$?1jsBJms{UpbQ2rrCqH`vZ8%Obog!dFFjeS}BAb`IJR z;XM()J;L`!m^DHCob^zIAC2%65k3~-AA{{2_k4t>sogt2Gs1Hs+ytgml(a{5uOd6 zlcafGgqtJ0IKnF;yc%p{fOQcbj_~#f?~3qVu#Fk+itzpjKM>&~5k3mGF~*Y-emcU> zM)-vY&rqN3`|@s6wvgn#5aERp?vC&>aATssD#BMqczuLNBD^EQdm?;$gzt^;{SkgB z!jDGyi3lHy@Q)+>e1xaXD5rmBgy(?gCHZQKaC?M%BfK)gYa%=l;VluqF~Yke%sM4L z_8W`veGxts;crFw@d!T^;b$WJ9Qf=cUo8CSI3MBJ5uO)e)--Yb#SvZser;lNb%a^t z#QEU}Z;$XUa8t7H-U#0n;r$VQ0BmF3BN09t;U^>fbcCOc@Cy;1p^I&|*%0AEg!$&U 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�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�&pl5o^QYtY@1)6tg88eC^SA4{ zz>fZU#UJfubA~c-P%FfWaZJhmn9Ci52zRk-D!|Z+7Q7QYkrV`5E>5q`vD^JRj+30( z2ea$wx^;CUe#XR4rZZMu7l~v>21CHX|J#kYlt>`Bh8=-Z7HO%w6dtYQkIjqf%A!TZb=6gi z>dT^4mGxz{MOAe-WR5B-uEc*B`;e3o02>rHhBYkg1F>K>7_U1UrVK;bT!^3lTQ>hw zd4dw2_dn6KszEt1WGfSBiLs-i<*h<2uPe<>Ju*_nBnS+nx;XW7)Y*-bOEb25E))~vSK zGjp19e6}&OF)t6lJo;>YOICAEYknJ-f~Mn}Gy6zm_S?qkWWS?k3UePdy@KrbNsf7q z8-&}*+&>W3A{wt3-c0tJWV`S#;l1SH_=nJsXna`sf4Y}u=z9<1Dp`Nxi&eFXtybYG z#;RS#Smmo2+XR2-m#qK8AFpr<=-Q*No_D-fJ;~cyHyZR;5Ph&7?i%FT;{TrAbl7kn zT`t?V1;5!tMG(}EZAkY(vs)ZzSBm^l{%(!4t9l2!?l?QP(V_f(I?iqx@Z5< zfuRx6n0c-v;|qwooKGP?)Uo{i1EkPF3iMpRSUM<_+u;IgYf(GcdNhm&ej|XCl3sqthZ8Vb^g^Ja>e3XWCvHao?NFKQ!vvWOc>5&;5CF&(6{vX;)s}dslMjH^%h5 zp77e#%eU+-y!_Euc7(e3MGALDdRB(+`vV>PXkKXDo5LrBV7_H%>E(~Ya@R`0q-`J1mNU0ymnI_1hK?@zfZBdKR+*X)Zg@6Fm-`2R5XHtA?nN!Lin;n2oNaL5FkbjHAcQfkW9V|3X;Ykh^U!>5jD0H5z*4q zVML4^XgR6JqCyMQB1Jg0R4G#MSjthf)>=wiMI`Tat$p9HNb%`;-}gMv?^(a>S^stI zYp=cb+H0@9_D5z0d_QwoZt|)PiwhDmpNbDk9dJW#*HH^@eqiob@A>xe4QT`1AHMIO z9orX(9%hz9QZAI(lsAg&f%-LPm zUT|H3-e9c4Z1Z{#wxBt-8s*Pi5g*X|$l<2FfwF%OG(<|U%bcBU_Dyjrx3xW3 z0w;aHsedgH{g~@olX4E5dN8&c8`>P4^5Mr@JP!vy=ys3$i=@nB2fX1Q1)~2&-0d3N$^PY5HpAD z!Is9euRM?tJwex@nXY0pdVw*X-8(%qu{pcP(NClAI9c?7T$J5o{|SE|)bJ6COHZ|g z@O|K+s}3X_%iosPw#Z*tC>N4_wt>p|sLCij7^J)d+yY|hR~U+itp?!ImXQai9@ z_ubi7#It)v_Zr_4_n!AUqI<~k>h7=;ojkme$F`uyf|>qI3DgB%-`E%TVJl{ z?8QquWx;&bhgo)VO6$HIDaR5HBw&M0Z)MhQigRI&7q;Plns^-9;h&||+u8TO(rvHJ zU$)GpJnCiqW%DnkUrMv{`k&$v(S%Us=AuY--p~H%Zy(w2DSq7@{7y$;SS&Xo=5a0E zjgwH;sXd9VrN>*mE`Ni$_FY#ixruyV zO7sCon;E^IFg7K6pCe2OtgndP>+rPb5(jSar$iS!SQU@Cqjx)85s!JIjSg4(M@JhR zj6}cbz^rJ!1GA%dIxsyt-+>v?d4$T~%y{Hhe{X+E#q-Nz6^;8xhvzP9-RMugFS$7~ zb?Er~n)(QAzK@)t>Ob>Jo)jni-dCPqh7UvuU!yMt49B%=Eq>7-A!2d8j8kJ({H z+V|%jUd$iL1mZAbEYu#XoS%a3Vu&#<`P0GREm+i9aDdT9e;g0qQusn3n!{v!5c?FX zF8g^P+Si%?(SZcB>VQd3`oqECEX>7OXiJx9meEo^j0b0-=gDL${IkH0Em%O?&7XPdHObCQkp$nWF9*;r2! zQ|+-mSnDxw>EO&)q8?}d@7iO_VG;4%IoQ^Wei!X4wlN(2oXO+slXu6KW7*7)3*QW6 z?oWNCDHdyt{+09M>yvkQGdD&5ViJ+5>5m*`y?nxCdoU6YPBpvak4&%GG{h8nDmD#8 z{(u_JgL}5};58fQ)bR;pJ~HrNaK?c|jCZ)r?;7pt0rB7r=6{Sy-Q}$JBhLK(2ZPhw zgHxS+4jFA`PCPiB%lz6|24$M=?5j7N`PrsW)15-?H(F+2Qyi)9y+%6{JQ%$7e0g3q z+S7q}@K)x%i^+EEi3GHppE`b=>*a*$q_05P&5Ah~+2$;tWg6g%Okj`wJL4fKpdXRu zrsgf=F-7fBD$8^ntchVGpttDxtgLsd4BRkn>oU%#}(KVj>WvuyJ#Mgf@3fV zyQAL8@2sinJDI@xWM$0yc4z*X^Xo(X*BUM5GiTc-{SFo4)L{S(zk)NdF+1GRTZxaQ z@Yk!@Th3382WK`%YW#hoH*=1&|ED|tDedU9r#d{XJ?4tu!UU+eI#SnEV0#*9hP2@cgi7l;-)^Q*YdLWe8JUw62YJjUUO-xnQi zaD8&=piS$e1tt;O(;h2|t#67BXEGF9UOFg%)G($nvT{dnH6<+>NT+*i;_D-viMD>~!P7<^EpL*9}Gdf~U?-icMeEI(6ykq!rkJ_8>ax2ctVppZzqib=udrR_11|!b)IMbCJ^`|?Y%=bM~SRBUEohZkbeuGCE%oYB+dl=P?1Ag>)M@&3J|w=D<^AU1is=QOmhW}6;34?< zBk}b!cO;>L%{XdyO8UUJ^UQYj?H&CZ^BtR#KH7&(J&@vTtTT>ENii*_eOD^a%QBEk zrY#}f{|a0|ebsE*(_JbK1<)$nca_sO$cU4YZvSSy%jK(r522gJ4IpRygxb3O1w-RX)4A3*JIUAqK6#l@7!{T_YFmVO=U|$du)S0!MW{_S9#T?Y5?1`IgW9`8IwgQlj|~<$nj7g ztjk;@?~XP3eej&7=Te#clTIA#!14*sjllFHDah&*v%1)Z=${N!UWG$py@%li)F21#${c2T^#5Bc|wex=`&)Ds0k9!`B$XQdDHZkvQ`+N(43 z;;tV*!xfu)EKYH?jh1?>zAF9pb9vcW@#-tKRkhvJUfsv3ym)nB+LALZr#j4|N8WE3 zoZNp~mofP8G{*{g9)-4QJ>{3Wu3F!OIWM_O%?Z|=Fe7)>1sWFwCgNX*`TsXx5_s+W zzdA>L$zn$S?_76}7}sT6QCnVKSn;09rY+BzgGm1iS*Yv#G4@QonTQ+T~DDq}e@V9;X1%l(Q8+R~xbZpAZ zQ0s5DbZLmZ72VIgp1;vQ1f53F;e_MQ6z&clX%8O0&izI5yC<7?OutIYnn&Ef+R^ca z=lHJF0|^-2a>h?N+C(t#c-O=xH=8%;AM{v6EM4x8L?`gRl z1A)W1T4erf%;Fz@(H?vommLYw$DQ=qW1a&^=H}B%BOLi0cT#x|>oF$F(T}~AQ0jBe zs_fyOaYY~I9ITxk!b4;p)$Ztn#CY&9j?raC?E-2xl*D7W$(jE)RCD{{%MROr)`tGs z{1Ll6ZK2s7=SW3Qy(zS9_Ed?@A3tN}W#6@9DqEQ+yL|4dSAHcVy!3NU_t^ zy_cCd-#a;BY!a5mc(^k5YF^~pqDaZ@l}`6IIpqMZv|OyyH@Qi9vE`%lPObMIU+*8~ zK6C2BFDG zPFWdioc2;;_>sq_%}5-QoL-Gfg~bR}`S$T|W>uafzw21aw&5ro+DLSZ$>+!y2ZN<;{ZLgqJkFTz&?eWOKX>?X z42<>6_n51N4Q6@XYktO%5968jr2jAbwDbP#oYwwk#CrFPqV|5?w&704JEQ2nlx;O_ zQ~f<Th=;UqoFKYZpCi$VeJvaat zN&mQ)c|Ps2r>mEvCf3@M7v9rd-ssDEaPnaXtd-5U^^I}Iw<0_^oEC0F# zzqcWBO?jlaGIH&8J+58l9+FTVyvCpH?@^ZjcwVH$pKu?Rn9zb3BFckBgFVyRJxNcw z@*?B19*Mre+QF##k?iX-(OjHsy~vn&l_!04!09F8k@4~1n9`8bz~Ygy&$TD)xdM-d zf@7T%S9x%3Jo0sO@|zh7MG8Z~;_~3Np~&!1@S2;)r5|*mD-T6RIGx1vH=}Pi`L-XX6nJ+U&Pj9w|X9d5Dw4 zz%EjV6{f&TOd*nb;hCCM26IYUGukNwZgoCDZ|wF!?2*9sOcX4-l)_^vnX%o<$u=-7#?VMk}d3KR$im7pH>P91mW5Fj(yD zwdgD}=ce?5XG6hptp`VWlJI;xFF3B)G-lc~4iX$DN-~>5jw{~jmosWtCUH3o2 zJa&SKMUgc{IaifOo($g=NPly1QFiZXFSw{=XC3`(F$#A)_~gOhnga=eb~9!%=hs8~ zz9?>Ex$ztl^;w>s>Ga2WIam3;MOD3K4&RcH7g?+4*VWFEvnsgS-{UcFJo3cKWy_jk zjn`&)_IwM~{lw&yrt!OE!Gp}#f8~5W;^WkAQ3fp65uw_o3YaYo6VVhF&LRq0u z=C)zab@v5!2iTU(QIh9Qjs0*aN)R5M8jq|o1JS&3snOLe{8%&elY<2(W{gykS2GG0 z%8JLwG5Wy+7fT^U~ap=7v?Xs zF#|cq%3d(=vjIulrXm5x#K&7a-UFa0$yKfEG%pc zjUStS`gmUO$^OGUEf06#wq)z+cyKjp5C{G@XpUF*LP2E z?a#xzAc?L}(vqb=3x`re#Y=FOE#iFp6$bnG;xW-VjEL|?)zL0XPwkoLTG68+l(lHB zCux|gAYs~H&h7cE}L}AQ2X42Xl{x9t z_MA=nEuNX>d6xLo3Wo*qik4vCo3q!D6zqDqP%-hGUe4v#mIMgSQ05oR7k4M(wY~EC z_L}yy&y#+Ed@$rrMA!B+&TI}{6?xlXXJ4G`0Jfpzmxe7V*kT|`$;Ee{bgg)|2L~05#)`Ub<1#{ zCjIsl=h^{>?T4l%n-M4W`k%}@8^=<1!<@+ChMb+^h%hmV=e_3N5_e=|ig z15K0|{Z;xiU7ax|%A1)KWOlJ50lXU09>R@~UeQfvT_}ecmq{6~XwOc=F>0m!S$mvFhIHZdNZ7OE2$Dglx1T*?`@nrJ84_rx*oV5TlH+k;FQd#p6@z81!tA=XX~1OotQcG;Y8f6N9BMc3I${)8RLI6X8UNnCZrv#PF}*{HQ$;~U;sRhPQyo9O*dJzIGE*$MZ! z&wTpfN&giG_@XsU&S}<-1K~VtS}m&hSgOb@y6NlRJ<5)Zu(-UWv;-!-}BqjB58fcYXbyJt&*Gndfunpb5I7UCHM5 zNf%PfW$2yYvilA$)j4oJgY9GXn*OrbUPkl4wHIoB|A?ihitAnN-3w6mcTEYC{pp2u z%bGn)Dk>Vgobi$(W;%Bqk=l{6J2x|)+wGWNUJ^TV1}YrQxxF{9 zc=;7%YA%8y9!NQuo7tY*oRm;mnYQNxr~Pn0W4{(|J^j6e{Z)8%==!G~ z>hqNqUEj<2>qC7KOAoeu1^igWc{Q3IkCBqugc9VdiC7O+U9Ft>~s6Ig%fvX{q5QpyR8bQw|2d!Yh|!kdXB58 z)-`Dn4ublLJAb^vQ#``OKFC}M;Bxh4e~G6yzZ;%Pw7$F}$+;7=KeMI8g-+y$+~KX6 z#S@v>!o=j1X^*6$1Y45YbFY*eYfCPVhcbB;Y?>ctR#s->*s9FUdgIBaRgtun3wNgf z?efZ)yK!jl1pv!e+^0m)-iht9A2iK*8@e+l(Fj#Zs zGz$_;+nt>W&ABjm`Y+I$gK2SU2U0e*InPiJWuAh*BPpKUGkPm452<##dPi?zGG5)2 zN_NlmNB=}|I>q#TA46Pa%CU07%F1BB)-|Rf^=qo$Ik#)!!krsOW;J_Vm9dW7*7m6M zx?2x5yw3-MCKb%6#LT)-JSX(gq?Ye=xSS`b z&#hhq;{h)g!vJHD*@PvZC%wy#;eeMf()6c>W&O!0)}-3zV%MZ=D}&kTYc4YzGe{$c(c1A^`j&+qEb^X?c>n%5t3-P+&n-#NqTPt`+xmksGyTYs zuT4PHuGkZBo|N7`p|ED>#u4{nEe)}bMQa-yyzcb(FZZo^vcIQgtZNlk^qWP!J$pvG za0Gs>@t&@jk0Tg$+A!C(@$QKYUe`lUUIX#P>7#tLw>_7SqE*HkZd*HOP<6%Bor|9J zw0xtZ+?!D8^)^j)yK1{tObt|elZw2FfTjuE3MU4NDzTr_S{utlJ*VRyOHoHrsK?P4 zib6ea+MrB9pKHM>-F4$DNF|PY`CL&Y->Z&icS}E$h*47Xw|r}5+Gvhsal>N& z&qJ6Q>V5R-q5pcW_;TEx=)QdkhP=^(w56wOS?3)?%+^*LhjPY(gi}S;d^eM^B-90z{wWBCIb$Ui( z^Imszxd%s7g7e05dw0+C6xS~j4yLj z2j%q7|MTvFnd#fl9nbBSe(SkaxxKgdKA77xeajc8a(krT@CC+s%@G%`Kg^YFG5+!W zK+>QeVMymZ!`?i4&mT}P2XoWX?>loUw|n|kXRye_Zd?HUp2awH=4{LFJMbMW0}@%H zYfKF~A2^3T<_Vtd_*+RbJ_9RapZvdG8qs4qiS~^}*bYU1~blfpA$1FXQFfshI zb+K-_jxm^UVQBIhhnRuOk{4iNo?2i36M2?Mo)05txKy60&{-#p2Vr74zlMo{elkYC zrffGLrk8pdCjP$}%N)VP{Y|dH#Bix~+4Y|b57(8CN$Z65%)n*I6EHE)`!F$FD$g)< zmWeUj81pQ}q-DdutDoPe`hSSbXC5ZT%%5#uw`(C-m&Myq{8u*PV;yQ6YXfss&1HX# zNtfLQ9xVC^#0*>qS=-eqFz=mkSw9yTL%k4YU3MZDM4*SP$IEOm+kFUA6kH?x9=JsKYODUkV4m~nznPVfz&y!E5mO(I zjk;HOD>o2<9u2zfg%DVD#yc@#l}2F9d|1Z}ms-~D6NbXWWyVR&WyfP;xYV*?=**gN z6(%nGI3{|z>~}FyWBPlT*bh>F2@{5&hF?X@Ko6P6Ha#C>VxUgu=2K@M&Olv*)&sYN z>tn2b9uo|g^0UvUpRxLTgBdR6r^lV^c15Rpg7tVm3f8vwJIhaIoid;MxpIU{m3azuF2?veOtf;jw=i+p2F%oTEd}ek zqFe}pd6KoQZnAVT=QE#nF#Bin8(^-7%xz(~RM}=g=WND2Z*iGNFlpO(0?fc=$=R5g zC)>~6!e2!OJbdWM15Xm2+oIdW{{+$PderjsJH50`a$9(ho%x>tGhC|7Y+IbonDbd? z_5ln`lZRkpJ`*u9Tq+-G?p$Xc+Ys|yiiz9EJY$&fN`=X%^EgM_)gH_rE1m>oz&x0* z7f>Mj7%;EZSe|>qTDPnd2KvcC#PmD|?kddhfMuYE%<|F0@0dc@ZFm@%HhTE|*t0}m z37#PQCb*~Y2bTXsaDUOeVJGVT>I2q1v%q>T2!Ziu*40lqgmf-g$7UmGKwx<^X#Zdz zzuXqCqX`rD8H(asi%IL}8L*aN16aq6KLK+U%zqcAZ)0K^%3xOijerHB?*xa1KcNAE z%aV1xn#GkPP$#nwVxGe-ovg>;tza!f1Uz5-|6%#bn$P=SuA2Fu1hZX+Fb%Qlimc;= zLU2Gl6<|GfYAiol+b6$Ant}Oi&^phBz;!d`e5~HohvqpPX$HEU#Pr6XyA)`{H?W0*rL+nBb)?O;6?c#LaZy$+_A>)MY=+vIy-?gHu` zVAB20^Sb^pE&_Fz8qIRMsv;I!o@Yd`b3<^KX)F8TAj_BEdy0Ru(97tE}f|57mPJcOyq z;^km%OZ;A4UDxwqU3L>#_XWq{n$I>c^A2I!3D!RI7hnd?BkQrr?~Lax>Kv=>LE+&*c9WV3p*58#YAs+rcaw*E=>mPuuoAU4X+js@|LDA!2UN_Qn7|e4y`6L*BCZ7)g+Qz=-fhane zNls%eo%0!Vds!9Ci!s|gt-QCvz;cqc{5-a(g)p%_s@@l@<;e!?d7on?-7fZ-WG-8P zN!w}>n1T6{b=fkC2-L~C-Wgz)mHF@-&cJyZbi2|ZxO1Ir&2?l9O!< za6TsH*$+n5uLjdgJq*^qBErlNxL&gM6?a-Xc{S#9Sr0N{dC2Ktt+zg4{F!{N0Nf@X z9`AaLKMH2HTvscYbsfU=LrdQZ<~f7cCu%dOcW=wY$L#oJZC=UvBAS?t3o# zgr$=?hQTUb8^D9a^GmRn^9`^b?|%a0&#dbdphf&VPA3R&2Nw#T1#5XyP*GZMy!Pih zS>^!PFaE*cD}=8D>$20q4D^#VpF6->&Us+%S04du{`~%SZ39n$8JG_l#WQvCl%;b% zgSI_-+_{dI=Sr?G3lrDHb#VOt4NM_SD=;xIe{v2c>Oa7w>uLux(4#@u#d=`=jCo8k ze;%hS9`oUOPq&w47%4jYD%GceyNh0nn0atrb(nNNJ_J@j%c*5+wRk0%;Zo(K=FWBI zabIv9EDvLrlXb&zsb!rx|M;0;&iohj1T(U-)9jrugak7(wbN|97ea!$BC^vw%UuWw zrU$Uo!!9I12^amU3)8Ia3n9VWv9{B^3cnB%&VPfXqa~OtB76S03kgud`MVzKpV(=B zai?@ir}U&w>C#SVw$ckB;r!iJM@ukg9(z7p)rFAYntCAtN^ni@l)kxB`j$@VS)J0i zc1l-tN>_GDS9MC)bV{?wy$}*yb1x)739dUjr8!Ev5E9JQlbx==kN_pP8ak!#GRKgL zsQ`|RH85?rD5mW_!n9ptrtik2f$0Y|ftcylozl;AO7HBHe!ElpWT!N*-!(9Qj?pzR zUC=3wr|;(j=YO+PnqzPcoc}MK(px&Ew|7c&e6E4ZAL*3VaXLMme;GR*2~1~qN{{Z8 zp3y0NSEn@3&l;HD#!l&7ozllTrO$Lq_vFb^0`uejR}D;G( zPV=Acl;&?9X`p{^r}R6W(tqrf=5GjT;PQb^>9L*CrAQaTw;NM;Ts7a)X+GZcI3Ji_ z6lumhPP*eR+DfFuU}yPK*Y`X5f6yttqf`1|r}Rgi(n&m#O5l2XN}A`e?l_BQOS-p7 zm$~>GHX7)^zEirYQ~F+{dH%g0?Y2AmOO8W0#%(p}=`M~lm=DL#-CZ}k+K^rfeg*BO zJ4V1iMp^@Xze2hRF@Gcv!#sId9a+g8YJ^BV?{*TT?Zse!<*38!yiI;&slw z6ThPAd@b_GVfiBqs%vzOoinkV7iUpj^N+L6uNpsA{UwE(d*|IX4Z7}&bF5ih-#C9k z^~DQHC7H$Us*!mYe&<<)QMJQHjH(%_^;9`5Ts^XOxF$y-QInT<{tL9Lh8Bz(Rr8P4 z#^2H`*qG;HJ2`7!(DZAYcD+uc`mq9>#nxCvTD?b5d{~o z;d}$BZCEfL2Y@#FQ3aKe+VIePao3K-Z`?*kX`2k^)eg@OS7|b@GCZPcXpMebdSrO@ z@JQZ>ynkGi?li2Z@h+JyM{s>Zt*z#dK$93+`Hwr&Ig;>;wDk)cYv$ZD2RleIsvJJD zIy|hP(@r_RffpSf1yv*St80eU>gH9}M5=~{HF=@gT(r=ra5z7VAKjLPMvkb=AAwdb z$*LM0{oxv|?)(B&;fN|dc=Cp`&PHg9zp#c&9YDR=QPwI)@RzkjG*aE9i@L??xp#}6UmG4(P+OpzI%;TD!HB9F zt@sg@;mTnJHCitJgFrq4{6dz;Q4{8t34ri&^9MNNFxKz6%0R8)%Ie1fDJ~2*XE( zht=kd)Q!&@SyekKZY+I@Z&c-|aHa0i;o(s=HI?|O0uCwCF#ZT3 z=0xT>Hk*ub#RSCp7V{nj^#O<(+(Vq0_XMajkbR=_s-5~M#26;H+*jiRff03TWS{7~ z%BEh7nB{QGW&PJhr$+YKIx_hIGzNFri8W9A5CpXe+H^>K(fTm3hQPK~Von?)ak z*px@Maii$e$Uf*CyO?sKQXc{{X#S==GJgAq@<6|2d7xjiJkZaVhX#cEF{MFgdB{HK zED!IYreWL_L0oDv(B=T{Ojj5L*Hg&}f zMJUEZof_FEdb#K<8_ViuLqoU)6aCc4KG8=|#~AQl#0+i@v=K}jld&S%CptHS{_|~5 zblyp!&hnGh&vH}e>P-1*Kxn{3of=u|wvIZ)HpJhwc$vj72p75W&XT2fMOv5Tb-6Mu zE;lz6!L%8!RM;o_IHc+4{xthV^zouoBdg!kGyJomF+0tF3Yhs&Bdec2El;iRJj4rx z7a}(MOKzDh5uF;@Cwi0U4Ru9q6wC;CRw=}*Jt<_<;J zjER0~WS{66U^j2vBJ9CL4>ht+^!=i@Av)-`d$wrh0of=usWz5%Igb#$PG0{Vf>=Pa6a(CmW%f2(PX^BMRoi~Ha_Mi1ZXiq4x7iC>6`%A)n_tVtRcxPKa5}g{^CpzoGJ;Cw(T|CstKG98^ndo@T zvqG$w8rdg0B$vC`@$eod%SMgt6W#Pi;M?BQX z>dCh}w~L1wSv~9vw9LHM%k82@)-sQ=JbY(^9%^Lu6k47K#Y2s(9`1f!*SEw&jjWy$ z%k!josFBsPMRd0LcHy0f_gMNbEk11V?=0qfZrm2;^B0THTAXMdQ@tz>SUkYuJd1}5 zmm)6Zc5y=x3RM^OiC!!^-vKYfJoj~UW50_|jqDSh?z_li!9tmTPX{#o>2j}L@ziB65|6MePiufROF^tay?of_E(oyU7MJ**gn zXT(E|>=V5XX|0DJiH90l>)|EQxn1+}Bx9X}kf{Pmcp-l}H=&X|%=BfWV z(W#Nuzs2%zpdaTsh8IPrM%M9L8`5s%&2UgW)W|;3HzVzyOb5mQ;-N9&6?IyJIx`wR4p!3V-QT~=6+3$Hb1*oJw!f4hrLjjZ*bAv*szWjp<{e+P+9jja23 zsOTJ%?6myXh)#{H{)v|VRr+QBenWI>WZlNS^hleWBOYpGEpv_NEW>`wf0yXg$m+kx z^1ng9l%ZL4YGf_LoAgLMKQ10>WUXgD<6^sI84lAgWqwX{YGf_L7R!H>eyQhIM5jj9 zdfR3B-?jX|6rCDb{cle=-kGS=>G;j5Iz^3 z8rdg0e+yIVO`kT);`2fkMtES z;-N;?J|vYM=_?)=4>hv(A?rkEIn(HuI*f}>jjVN;K~LCJkLyM8P$TQMY#043;w;Pm zy6Du%>VHf0-y%LN%xjYXmz8b&gXq-Ax{cZN$oT)y;-N;?vEpZCwxy*>tvvKsF8IW!=f|Ke9M20=+wySpC~&2SC8+P zXnU9^IyJJkhcWcX@wh}h)W~`~Hi^zM6w)u-^^oY)$hut<=m|S@^|W}Xk+qyL(V1t7 z<^O@|(8%h4L3PBX^vnKzU36+>-M?k@+~}0yka(z(eWFjHNA6jDA|7gFy+1R<@_a5H zYGn1yvOHaqoqbJ>tey(X(?dMe$m*%KJXeW_8d*JcmS>Q7sFBq(&+?2E4>huS>MhTB z@lYeHr_u7Uk=4^=dFsVOjjW#KmgipaP$R2nh2?oj zJk-eQX|+6$i-#InJu5BG_r*hvte(}DXOnoSk=3)7o^q!h{#ZQJ$Uf26Sss2@8v6=r zWc9=>&zs_*Mpn-T%kz$SsFBsflDLsSgBO!BEa%y8F|F!JvpB=zEQv#3g6o@o!u;RsfjHKwGZYEGhj=WH=?>NVEL_E~UdVkNhuSI1XU`>}NZKlfkCmra(Zr3~73(k$s}4iOywB z-G+_bb+zc!$l3?yTYgjjQyqVa=+wwQ(Z6B&%|4R+D@CV9*8J-%e*p8e4__iWHM077 zeCoEFea*^2_?GC@$Uf-YcGCu?(Sg2QJk-cO(cciA``z5zM7{A|#bEff&p#m^YGm#6 zxq13L)Z81yveeAI!65*IWNAOlGaqU9bR(PRuG|)CY4G?&FQ8|J;~6Q-QX~6B=l_gw zS^n>MiSTU1W4P?i&a%@*r$+XPUL$%GaUuOa$G=!~YGfaDw&4kwbZqvhc&L$eZ1%V= zi@1dTnfO5X7tyJaeWI5lt>?i_;-N;?evJP&!EG!=Tt+`13?jTPIyJIS^eISdp1%uk~aF6bm-{x4dYF#8E} zPYn4}H}}E7JO(S6zl?jU#7~W^b!+aAiNBhDsl&U)PmQc~d%x)Hqw45qMIk&YIyJJ6 zA-`k!=V6{6gWngO8d;CQXDxp{{W6wo7o8ee$8y^&f1{N@?{TrtsgX5*bH58Z%fFa@ z)Dr{WZKawavarw|_q3CNfEGzt3(0SL=6xw*p;x{HSz*(dr6 zq;-rJ6c07Bj`3RQk@M`=#6yj&=fsut$T;v?@lYdcTU~8=%Ed#Cte&-&=T`AhBdcc} zJ+twF!2i+Xwo@bfM2{h@&x!694>htrC)z-dl(|_v)X2K7HhONt2f~x$p+?r@Wi!(1 z*(e@rWc7?kIxUSx=lcefp}5?0_=zzgCZh}cL`OE~%gL^R9%^JQXR_tFO+3`d>hW8i zyTn6{te#ZM^MH7$k=0{1L+b5O@lYeHCj+c?Yo3Y2K+QZ8mu0go&of|d7d5ix698)) z{vntiYGiH0*cct}o-n{|3+_&=6`9E6f z%0A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�R-A?Mz~z#Zp3blpF&Kb5C2F!ea;A3A6pa?PoFC-=3l1#<~aNl zLORN)#mp5puN|2;PUmwirGp=rDQe9ehO_D5pP};^(Vn~_OfQlIVy5qRq&tx2_;ewp zvxn{1)k;Fe;d;E>tdpTeykuKgUn;rbn!KXC+7g{CEzAq&7v~k}WJ5_oU13RGfh5DB z+Wgwm8l5Z%H{vDI{6d|?d%g7~jYVQy94>7vs>d6vwi|fYHe6d&8?x`|WMI(i;OFfK z#1vdsE6h1@jmF$h)STm>Ljnl2r;gaC^|Yg&Wx19F7aRCajRS}|A6)t(fMsY;9kEaA zxgIhwHra@A$)zy&O3rWUha(=NG55_9jVB_$l^B!ukFd)HH}O`)MFzgnz|#zTtAXz_ z@O%T`W8lvl_{#=<(7-(!pF%twK8bHX(wKku`H9AFAfBN8FGGBz#@t_S)>!s*7dJFW zGXgmGQG1x!7U2WlL({u^3P9kJLyt@X55W2A3zd`Ii4Blc@PLu zvE)|<{+-4=mb|Soj~{0><}m}eBb3iPPF&Qu8rY4%w(xks`x?Y8hhl`DZ?9h7Zh<#fBJ+0^Qfa~5x1IW*{o;qTm)@LB?;sy(O zOWROK?9=))TF+z2S&ey&;oO!n{kzyeM=WDB5@pzyT*RX_W?Qn1vNvlzb;MG((y$L0 z_V;Q%b;M%-MZ=!!(51(HwboNdEc0Q#*7Nw+sWE-~j>bIxJ!{~-8uR$KU*lI0e_vyk z<&@3fM1@R8AfAg@?I*yT?+dh^nD^RflZ*IT12auMkCAFk0nY@k(E3@3nWhbog{*_P z8ZpzvOAs>srck zEej49nESctxsM3uv$lfy9D?9^23}xb?j2&&YT!--Z!s{R4Ho;|2HtPr!v;QXVD9@; zmg`;c1p|9ACZgwaD1x&LoMYfZ14j%z!@zS5TyNlJ1FteLpDUGmHygOiz&j1Rk66#) zg9bik;FAVEW8m`!<_V_o_zgVNz}W^48F+$$D-2v|;A#W&-k{XA(!hy+ch~-!pnVsv z?W5 z)b|dd(4wb@+IJJN;~t!dUH!+{k%O`bffz%rq)^8aiCr@k+@C+r?sKql`Zr(55KDV; zJ6Pd}&f|Mt+&_7q%~M?3aj)kw!sO$AE7$vgQN9N?j!+5N2|n)qQ3QFb`$+~N+cp15IaaG(_mWw&>^tSci{$CJ3}*gowa*nRgS*tK@F1v=7Vc3aZ@DUUuk zxWgTKc;aIn?I~omJdxJchgw^`{1XA{+y|S_e|_V_6JP1-J><5wyEp9UPPKmYm@l(q z-PUus-_Nn=3V4rg8T5dA8;lPjJz&wm%#N-nCpLDRUv=TJj#clzu+OFbfx@8^>2qHRN|wd4Rb|t)Q9S!>Z6h)HNB%#w4`_bI z^ojheixSTt`pWj2J`-mkh;Phi*&GBcRi)=W1NIs9+*`O$(VqJ+=K%4|2rNrH3xQ(# zU~BsR?};7_ZN0})!lSNgVr4vP=P}b9g_wA-L&(^2Ow+;7Jwt@}lL+i9mP|)|;}DB5 z{|24lIHjZh8GX|J=>0DCb2?af+@!G0>8wrPNGd7Cx4sJG23CGi2%okpmfKtTwRyPl zR4VtR!gVEu_4qKCF54KcFKjFcOId!j3!euI>)gWP`r_LB!aAMI%g-w*DK0KhPT)Ve zPG|cv*clLFxlZR;Q_udP$aORhYwCUxb;NRQ%e|M^(QL26=saQ`b26X^Am%*DNVf0I zUaRrVh`H}ke?4M#y$Q^DrS4e)bMA$-4d)W)7VU{68dEn-V{%gD+Kuze#Yv|{^gKQZ z<{B4FzXh{i!8|_@o(cn38o1iPO~m@(veLk747}06+lbL`lu$6d~{*;%ZVeB>3r!@wrrKBTh|L}*9(0RnLZfpQTE z@sImI^O$}M!Q?xMG{;;-_;~$c@}*!uYJ!gKP1AYg`zr$ZI93$yErOY59s~a~uT!|E zgsIn}Y=F}N1T$+h60A=|@-71~{cC}L^o=0{LE0yx(#T2_E0%dX@h2yhzptpt=`&KYA_NRB=-{D#HZs*X}(Re;#L@0l* zh5uISHt0i?g=d5waQoe(uAF|)-+LeWTkrUA^`on|y6&v}Lds${t`c7N;#K12YkSrY zI^fx66J6Yt@BE?zDOe26e5DJ_-eUzjwm7cDWb3?Lv<{=9<2`yTWR$^j;TS z>#^FC-PZ?i-{Q@jl>C0L-_4phA5iXqXP4W)Q1hqw)4OsW4g{*Bj?jjpZTU=C+uzyv zS+n5vkaxW8saEHS;qUd1$;o$H{`NpY+O{kGO?$d}@o>z$H1xZZvAOuuANS1K^zgP9 z+Yi6?xTkf~>TOq#*>S*YKNZ$>E$f_OS*zZSR*X8?rle>u%uIb`j62!|k1TTaOd53O z>aIzFvI;Bnw(Ek84L|j}`*YM-Gu{4V|5a--OEWvVQ>?OAe;SFjJfHpN*{>e*duL5u zJ*WPo^{%$_YD8Ukr9QI3-JRmPuA=Q6HIM9Y_1rdS(dw?-0<%$1xFFtGPnADYhmQi#EgE+>w4GgZufdNdA()cr2W17t7N=u)d%`U0Qv=!Z~UhAf$06#))rj89|`*ke)il)>iXQjetdppYtNKq%eNX= z@ZDI!SM!E|<&AW8J==xb0_B#kpk&i2OfKj`p=a~U)O~^$!>#dj5UVk~{|H%Q*+k@V4y<6jM zdrx&k>PP4X-#6I}9M=(bF%RKib#==^mw&*0S6)9pAA5{@3in!!$Qjqm@Ao#>^&CjX zCZmYd7Bhdm*H?h&!??ek@Rj(zW#v}jzMioIlxsYOajjhbX3|mb0T1uHs3pp}CGQh) z^5(6iXNF%BEqasn{FIT_P3FSA}Rb4~H%e+z4V-eD-(yBekp5V!=-nQ84Z{E=0|mi98& zb-_b8qiH{S3R7g>+v`dPfFd(^$YZ_yMsMJ`9*oZk_Uevc<|IDW`19T=CwilfqdynB zOI?2VydO=u(VFYZ%)h}C@X61du+*3-dZm+AoYstD{)lY{D?;AGd>5>t-IqQa1 zbiaD6>sZV454hKcEG&aJQ{Vl`v2z<+-e2!N6toTn;7(V=x?z)(M+3C18&=fbwQ}9C zNPE|^b;E*(uC>ODocF`oXs8z`HwR6{_>39pe`XUNQmmYkMf^tc#a={Pr+k1Y>&3Mf z=<{`zyOP>oV{3kPr>ooRZu^OvFYkE9jO;G6uCK&bV-&inGT8^?WEXVjezChf$!b4* zthKA<{SDsC+gjh;J!T~OXo}l5#$I%Td#q<>628ef=cPY|T_t;x$2^bmyD2(*)f_qM ze$zAjV(*bvub?azn`Q0kYD4c{pbwl(m`7?(aXt;4_YOwjv34xX_QM>Rb>s0UV9D0A zYCrR*YkPl6)&~bt{8@**)`m@+23n84bmgWWx4r4xcyjfT2QoWKww!U;`~Aa`lTr1i z!|xyPZ+vO>?u{)cuWvv6m)6HtA9*n|h{uiR#nMpfGey(zQcS%uNe7@h?_CEUyi_k1)x_C(p?mccRH+$;WM`i}$ z=ATJ4hTEI(U8zIfNy^Md@;}KtGj&(ekQVeuU{4_ORG{sbR6gUu{8Nu6AHq!!nEssF z0q>0Lx@BVKx7z;0F1T&cfz(+)46u*YTFALAz4cyKq{d+TVer@sL+P z+~p}dc%kiW);)dlGv3@^VwYBZ@IdN%*Dg=)zv<_)T{om|JM6!@>yd|#tbaP3+~HlH zf&C_Pd)u2VdWg<#_db)+`J2pw2a?J>)||q>-jK2u+8dI#yX|(Dy6?yHx_Vwe?%tW6 zgImH_;oApxZQs2w^@RfO_F*M2rQ+uCrvLK0Sys)^Tx-Pg5i8VxV-Zt$&dc@1>olie z4&3F=NguK-xhH>6prB`b0b2A|I*F%>$0UuP{)JS(=Mb&{79_p)hu-SC-Di?73~8?K z`RfxIomam0cJIsY^s3{-f2nqPEhta-zWm$X>gNN^PY3M2!FlQY@t0wA)idjuy*PgE zxG%F{!QlA?PoshG!Jo2j(*Ujno)`tTbZr?p=Z@ZZkJe)hSGvjk0V~9$^4R;us=r0< z2rW*%9rfsgl|MBZb85%l%xsp@d87XD4${uDOs z(M(Tf$JVTyb_5Q0?elluy(M+dGan%%(9z|0k50iBn%RM^*j%jO-R}1LUU-Z>P?9kr z^Lt%4byaxhWcOZ2--rB`*&cfrDdo0u>ZU=Mm-ccU^U?I_?FTQErj#ALc!xLYGW+yy zxT^l>fphd>E^KA1-o`W9{?T~s8ixo!o~gFIpzZZ9bth!Y-k|+J|IoVzhUTu0Y+1eW zw!o31z?UEH4CC~AkTuskYsACYFEfMKT#np5+ijgpI&`5I1Eo%D=G^%a4nbDtY?|D* zC&@Z;{T<#Z9t-(uSq<6nQS#qo-GjQ0dPC0zq}My&>F{pCpLp)i+_Ke+bB_x9H4ZgM z^lK;{6W_9WmuKVdmLsK+uRPpYfklHq6Lmhk30vLDbz85--U%|bC2Li3=lINEH(pOj z$^F8-e?R22d@tQT^hd9_t)FKl{XXk5EL>bfO|zz`^)uv`AMAPcBiOrn3O^0a+~wP_ zdCrcDx9@W!Y4&M9U)VucT1V2btiYx~*+Ew@1=R&7Sz`xgPI`LF@!R(#&F->hPm<%LuN{ZPthfE?>t4jU zhdH@o)3*=8Ix6e3u%%90ZJ*nXO`SSy?4DGdUj)}>rtj$r*uyn-SfFgWwKf@pwWIA1 zTysZWg8OQ@<4;ysSY^{)2VBscvDf3aVTWD0DL)GP4y67V!_f8{s*$bE$FXhyn(2zw z{&c@5qOP_4EX+jugLdmmAG=`U9J7o1$mL2U5{3YU@B8J?9a}mA{?uMy+9^ z`huLFx(d(!<0Splh+*eX`F8r}M_ya`enHZ@hcleX zO^z~E_jh^EjrVyO2N8IWk0QLp@^@P5Tqw(!_3(Uxya5E3&qbgxpO}A-BIk4j>WF6} zP?#p>-?*r+K_CZl9Rh_mBH}{;3feKI&?bPud$BA#4ncTAz?67A)VXwC4q}#}J=;Yd z`<`9=veI_O!x30^1OkP;#PYY?d@3Q-6AOPal@RJhq>Uy&?|+j28f|n*`y88_R4 z0+jwi#N?pOLkQx}*MKRs7m@jv3Y^S0e!;r9&oQPhfWWm%em?UcK9m7dXhSUf-Yvl5!)?G6+K9*)Nxh7@*R#HVG#39y z_Bs9AXs$c@MBmuA)U%BN1Pb*51okiW+;b?@6H9w5sDw~Y%zKQqXFpJ=C+7U4{&oZk z^~8KOkosB#3iZUIUrZ&0dScN#*9+$fc{&heeXR$^<7}#Lw;`sGhnRmiru_>D6zWA} zjHnYX9*^7zoFf$G5l=%PPZfgLRs%~vECi;|o|t&)s%Rg(niLVcsA@G@-wE;hL~%d{0tQ8iRmZfkqDG{oHF+q zQ)olX{eopppNWNY955vwCw+1wNK6~)V{)2hiG?#Cm=ceZYY@Yuj(wj%OnxWN<afAbDv~6a?U{zKWc%c-bP?byn3mV^4!Zk4=nBK0j8g{ zc^!emvLdohIUmT&m_i$3IlgdhN?oIXg+B+F<;XwA!0dZUyt>r=QW$s|Kb$>uN@zke^t_bOrEW1lnvsU_S9C1hIJ(SopU9OTT>+n8Gq5(m%9uBQTcz zO8Sia^vjPx%(+2{$3r{T&G=IY zyn4BQT{-qTWa_-4o<#`c>_QV_y+T4afK4PBpP-r6}KB&He zlCktpj!v`eKbqVBH)ZLIi~;v#`Z^pz+G`%0h-puM#vxFcCYFAPJU^t+o|yB4_IDvrs3#VlyQzdwPfULqcz#HsUL;=MlAHEy3;T^}jw9vc%JO`M zWjP1L|4#x-y8^(n$BqT2kds*UlS#k>5m@g`1PX14WzO^XLZP0RG3^@>WFJ@v%(|)X zK#;a{0#jH;urV-x=p2ui-#m z63++fq&}9V59}*SJbUg5w2_$ntcMcMo_$Du#)SwhI|IRwz_N1@q+MJi;tS^t`;IpE zAW-7*bI!PO?73skhfCSBUe>`lfIxq8ba ziDh1G1ZF?eW-|hXHX^b%CGCto(cQ_;@kEaVk{;Wqh({gaV=9kY9cH>9mH_fZ&xCC? z{#fbAm!6aS>mB*rv6TORV>pbdg*v#iuNlZM^GYnhjvF?av0(qiuzev6u$t2CQ zs+f4xnU$HYizR?OR)Zrw-;tIb%~pG&Z`(*(X0oJZ7nXFh4fOvWb;mfS@~FGUX8PV( z0>~4+dugjZ>gn^CiN{(MODOv+f*bZ*ZhL9qF$+(p;f2 z!4tEw1dzviSnUs@=Yo6y*=~!Rp3SrsF2#gz5eo3Dh zM?Gf%`NpgKQZ*t>*Q)gORvTjSbAL+*`$ohp_hprisPC`<>g&Za^_>-_ZN5p?0VcGt z++hSBlk8*W6zk_Yj}h~K=SaVYH0uu|q+@-0xq)h-J@4Pp-Cp1| z_gMNf*7e%{yDERSHC?9zh||$Kcjz?t&~)4-;QKWc9{bX<9`Dm>yFc#WgK|oEJW9uU z{F+YZtMpy!x7p|?S9Ut?-aUtW`pca(9qaKGZI7gC|7%EdY=5fq>#S3b{69I;A34&O zx$XXaUX^dK_#Flj`f;5j9de{^)M&IvxAPJr4U;q}kpfDu09ZAkyrwph|aIPaw_uc;26G zeHD+j*!gyQHd_0U7GeL$`;9e)HI0p>`I0OwDk>?cm3I{LOAAZznXNpXTbx%{7cOk5 zwW{h`?r(0W((1Z!xUr)fUuAZm2#~Qdb;(p|Y^9rlu~` zAa6ky*5&0j7Uvaf=KSLPqJp{xp(-rS3zz2A)>u_lwaf3TXTxQF4tHS z&MPbp$*02{-wG>jsIL#_*VSA1E??5TY~hj?DOOXMSJW7)7iSuaN(+li>KZg@Q8*6` zsfjw1UsD%uER?Pa*X5NoHa12b$}cD>t%sRIb2v$QdAO> z*GLOW>xvr-8ssZ!C55Gp#f3HERUsTKY6wZ$QhWuiAwOTeQ_@h3w@<8^mZb}|uC%beqy|lsWMeo~94eKs zu7&CviW@`G&%5D6aA99Q70SWsM0(h$lQ{^Gon za9)0+cvOOKz!jiD+BjU-7|yS)m1JIiQBgx-vGh|xT}?rKQH@NchKACj+TyTG<-Eqc z#{8lZ8Qc8Qg8ITxt@K1uQGH%rL%qxk3|^=(6lE^TuP?4Etr4n*{F;WE{2FOyejUDQ zS5zd)qSBI*f`X8E6>g}*SVw!TG+bNL7|N3dHZ-8cwbA8QREPOq+8|A+DG1fn7uCbK zVe#^Y7W-aQ2KI4YLtcg;nEQka`J6H|CSNL-1S`zx_rpApwU$GyeH zgENE?_0$pjw0@G-^Xzx3#ynn=m-ak1Ttf^8c-*_(z`XZBeE@Nep$D{F`gC5|^MDE= z_G!Ip3-lrA*fz1}IS=1$rjA(bd7qYg+H?QpyUK-#Kc%q`F~v2(j;}yO8w#;c>v_+O zdLFY?yMRXkk1_OsmP?lagmm$8(z&!RyyXv%_I%4sG z!;^uF&j@0Qj0=xH)KiFMTzLGW9$nFA9C?hSo^2!+`)sYJeX+(|2ZM-H?QdEtpMlvo z%1_`0zyWQ;F}%*efKfj=KgdHNmU`9vhrSUyH5PgvmLW}h>WIa@LhETiSL15L?1BtT z1h(l~jdKuFWbUas&&dK&b6(HA45V3hBx2P+!0dnJ4}lh!#<@smpmR7^r)f-+6&kNc zyi#LwsQC>0F~FSDEXzKaq%mzVEuwqEQmv0leOf=1Hrk%^gFMs`3y<2j zF{#7Qskx2+xaUz^GwgT_q6}t2h<#cg0;Znz7HCW!iYwiYGZAH=gE_Wptl8O+8xg2y zx6qXM7R2mF8PiW`J$1w~rfQ#oJ^Nm*7hv`u>mW}6F~!9}hA4hIsj&}w_Bo}G4JQMH z_I+&FNf34ce~aQfh}E6|ybXA=)~`o=v&Ni*l^VAqt}^f<1FJOx9@>0a>vtmFYGBsE zdMSGmh&e`T?0^Hn*J}Okh`DZQ!##Pl#}V8PaUz03;Tuj(#K~tX18NVtPD&%oTM`QNc9U7lOT&FSTNt4Fk zLcC1l=Mk^e_zA=m+4EllCO?H(&Nq61sec2p8f$&rIi&T}5zBGsh}P53_ci_q@l{BZ zX9#eX#(Zvt;tJa_wp1(QY8zv^D9rv;>lAwSxAI|@ZKL`edg_RMT0a0d0~-v-N}Z1Z zX9IH?Q%_qpj=-tFJk(`m+4@l$=OR|~6MF7#>UgKIsu%cj=v7^CjO*+=gbZNrf69Mg zj=%CjW3>i>{bCQ|>A%UKftU@^$!UlYK}oq z9kJ}~EF*Q5Y0Np5f*{8QQqYDvVkt|%#pX_JLmjc$pqQ0`MsqLWagi9^rNniI9jh^A z$3TdETCc_hdbY`I%NV4|LmjcyrF;nB`@PWZL&(thoPkw8K>u0jD6W69#LIF|Z6|nsw_Gx`JFw5>otoAXDRo`msjyT46OQG z^RLl*>WHP@PQyM8So-;4t*4Gy`uTCKKf@To#f=@Z9fAH+N9@!3p}?+r_z$uNfi~0; z`?Q{8?79p8LH-qiHq;UOwEm#hvyA}+@$-n*Q%5X*9@l!>XCt`E@gL+@2;`@Z*r)ZU zwf;Qf90c)MwKHJrh{b2MW{2Cq^Q!h|;0ef|f{+1x4Dn+c??%l1l=_{B_iOwLVzuW( zPd?U5o4ts~XWJk$ zjb*5(U#kDL{TH>KI%2V3qxGB%>oneiI154McBj@;M=WFagw}H{u#YmZfXJ`L4w!9J zV+YJJQf*22YR+ijVUnoY7GKY2WnNe6fs5S5BCCcQi!GhRl9WGa?hj!n+j@7;~I);5(e@xA(nFz zHAdQ=eM%md{fx$}i}RKG&m!j75HCc`Kunu2X*?5gyT>C^>+EYg?`$igVSP0ULKpX0aeOkX#>mNY;MFVp_%eBust*4Gyu17d0 z#fJyA4Ryrg1LuR-JgRM|BNiLL=(t}FoWTtiLM-F1`m;r;?Y#mv)Nzb`TAvD>k#EmI zwo|a`Hw@HL=qRrH>{!h`4j_csr}b)ohJG$|s$Omy5H$y&r%ufQtvAQ61bG>-p^jL_ zE~51_5Ua7%WhZGpb;QzM`Y+cDYJP%~I$}8&QhOToYW!)>O$DOnF!UTRVi_;yx%5G2 z0B}YjHTsx^#hPm;qhrDH8C=AS5yUsuC!9EtPax2SI%1#Jt3H_r1!N=wZKxxbaledu z96SSvDK1?$9hiCwv2dz-H7CcNHq@y(p!L^KkB(uJA1W7>1g(4NA5MCwxg27MEBS806!vGN&u4gu4&=N!w?cn#vQ8k2vT zfoVs3)~UuDm^Q3K>IJl1tN6byE{`3nu}HFU8X{M+jfWC*B0vHNE*e7Uk87ZUs^45( zSdcJ+%cr0^cXV+8Ar%NN5<_MoxY!vG`s}(=LA4LN*fEd=2(G~js=df{m5o|>{klMBK&ySP{(TM%3U{0Hema1AH2ujO6YHr|cM#mNBKhu|8epw&anhC&V_ zxJE0eu7O=+YK4M_ix7y~kp;!H>^%tqv^H%kt#=M6vdev`QufEr;@&BvuHMg=Z zy@E+raw`e3&=|4T2mu@F@eIHSh%kd)=|JX$Drm<)b;(Z~17fe#=MW zh+(gO%SW$k^;_3F2L^j^eo%gVl_e#=Me)o=M|tbWT!<4VK6+Q90! ze6)@FEg!wVt)Y#^8x6e8z}pSH*T6jn=I@~h&j|ycHt;zEUo>zE)`W{EL=Zm5Avj>* zTmy#LfzKKEqJdMe*Gk*@jE~@efpZNUHt-|^&m!i*6Ee@h3k=+1;8p{78hDF= zpEB@n1MfHRVFMpG@F@eIHSh%kd$E^`&uIqEGH{N83k@7G@C*abHE_Lwn+?q07Ls~9 z47}OET?XE1;C%)@Xy9W8K55`H20m|KKExwF_=)v7;ZOr-8#rX(2?nk(aHWB(iFslU z;cp}fUTNSp#Js5k*=XQx2HtMqy$0?v@DT%_AkMNmPaF80fiD_31;;(H=QB`(0|w3| z<^>QWY~V=-o@L;923}y`76Z2u>vQi;18*_#QwH8`;QaF` zxWmAkiAUM>b{Tl5f%h5spn;DW_@sf)82G$_`3DuL%WvSJ2F^Bc$iNebb8J5=3|wj8 zY6CYJc%^~Y7LfzJ_#Z2OA_PQkUE==prB;DCX14IDP`Bm>Vf@H_)AFmMZTp6x@cfjbSn#lTMy z=iBzX4ZPpLhYft3xWKkQW#F?0zF=T4t|`Sn&A?d(&M|NyaiPs0G4Kon&oyv8vAz%4 zY~WP}?lACX19uVY`<6QmywAV~4SdYNCyDia&NBu+Z(#nxTx|RX9%|rh1BVPe!N3&; zt~7A9ftw7x(!gsBywSkh47}aIdkx$}tpDbc$Zx-?pL~}0=BgGntc?Bq8xr}o_qX7e z-ThdRtxMum?4fR!V^YGJ2%{6r`@iSQ>-=J$) zxx8gre(l2eRaCX`hpEL){<`)2hL)-&EzMOe3l}#mZ>d?_+&6o9oxCd8r;#|-Nf4Zlv~l<+_0>!X1URE_G^h%4NK~l*7sNACBHsu#khQ7ecx6sZdf+Ip^5`i zRkLha&Hc+`EvjG9T!pSd55;sOsav|Fap8P>ysD79aLN3b0e;l)o~mUvOF-JRaCwV! zRGry<$nlb;?F6f+t1#j$M6q<*>Zrhe(-s>L;RRh(!sUmY1$ zcQ-UNS1nz!FlJE)|EgM+-rZnKkT|LpEsbGR+pxT@rrB^ysh!H@90JE&CncuSvKFKF zIn`iRvpD8W?cV_I<8l+0vMv#p{|HYL->mKdC4)7K0a8zp$a9Asouj%d4te zP_tx7Llc_FqUh5lb@%_npJY_ySI2q3Y-xQ>OU<}`D}5Zi$s31H2P|u7su{=McJFUv zX6j#1l~;<5Vs=jS?P4RR?~W0x$Sx6m0of>F=S1H@?w=#?ANR|NzKYy0C;C>h^o4ed zyAu~#oSv}Vh`ztvk23lybHAMETh0A*uJoajr}{c@tORQJ!3SEr>v)8ErqHkvR%Za{~-7hElf_A^0=)2nea-y$o_sfaC!QC$>`Z9OFoalSq{d44cFPmAdoV$}oeA2#lAzts614kM zf_8kbE0KN~k)U09f_8T$XxEmYoqARQZT`6V^4$daewd)$sRZrLCuldA&kiKe4)y#) z0(Q3~$ai;wcKoJJBK~bp(C*~~?S7M>-Cq;5OXYJ13H0Ca1nr6ww40uw-DeZD<2Qa1 zX~+5m?Ve1~?!^S{e*H0a^qum1ZHGvSbH5k6KfnNgI^`oX|IqHQn$O%1aLXksa{PD~ zcEk~#lZJ}YbGD$HY0&!-@kdMknJ5JaTjQ2@jd zosolj`K%f1^6}QB@YOl^&L9t_QK22> zvjD^qCLrfwRE?N?ylu!l`u7C@(?7lotZ$Ve*S2H4(!p0*6yqzhKez;`e5MUbszhlB3~Ncj97`FQ(|cJ%MZ4n985RtCL@ z@EvsU?MA1pgc138t4#QQ1SKQ`?~@-}MN>_o0Jt8~F5}S72q^ zG3K*JEE8b@atwTxh{<;Yg7BsDIUS^B-X8+rok)u?kD*xG$vh2UU42cA5R;FR2RpOg z?6CcQDC>cQjPE7~-#PGQBcFU_+K%J4$ia6UeB+@P5&s$-d>I(5 zp)exfBn0tqje{=@8B2sr+cEhi2VXAujzCYoDG0*%goCdY8558%LOaS<2j2zo$++=c zSoogPd@^o)P7ROSL`B9;J)Z@wj2q|eZBeUOKmXiO?+kR_8rZQNHz7#9?>pMT=hxzm z+n*hL$H14Z`DPk?X>g3bihtot@X7arBCw^LH~2n-wD>nd^GUx{f-hdbOm);d4|Xpo zX8S+#QOaOP9AN@7^m@z_ILv;TjUe^bIQaO@Cq4r$B7E~4eDg2~_-risIL^ZNc?aJF zG$P(Qzt_Q6{pr|znPc#&XWo#8xe`7rh9*Zv{M+HEw;6ULqgJ+mOn%Ez?_Sg^$D=!t zFYP$!;NvrA`pxIWk~|77s}%E8BH(qybjD12`?_yRY^`0g_JE;#ru zg0GQ8T7>T}4!(KdI{_Q|SA`($O-FfiKJ&RW9;_YjD9DMatV*6T?!S|YjuL*pu$QKd+jyU)_z;_x( z>=zzyXh;A4%fWXRe0M@GB7DDd@HI`ftR5JVuNgu3k}!|hk20_LY}M^ZiwGZ2#)%_3 zBex=U9=i-W;rpb6uM2#+x(p-X8|L6U3_jU6S`5BY2OpoiipR(2L{0xL7<@br6#s5@ z@Ld4kVmhWp{JYt~mov?NKZgCc5<&PDJNWqQ)fgeuc1$jC@C}_F+lM}F&cU}C ze4QlFBL1~I_$tA74mR{}6@vKpq=PSTdHnMi?k6l0L7+^+!G1ep@_i9O_`c`h+Xz1V zc|R)R-}4T>v*2U<$k&P>eE;F#dkTF2jC>K{5qlq( zMTPGj2j5DZj8q_>{;kn=^mibiTSYAEV-@&5fwYM5d0|H!(HTA9lk>^7&@qpE*E;z4 z+|@n03?t$DgoEz{`1sxs{p-+n$Xw9M(7? z({@bGcJN&QAJ+x_>qHQ~dmMaxPAiCf5%G`DD-%a_Ml(+4{SZ z|FE`Wy+6`?Ar^)V1)pH1Sueve*kLP=N(Jn~(Ufh&(EzT(4Ap{wsdjYJWLx z)5{URuk^L7@;3+mA!YrqxBmJ5hd%TiP2S~OKWM9K^vn4*?zVUNL*&a|bu~Y&f9bsA z*IWKPHg*5>4?Qe&H2J`Q(&03>f0jP)x4mIc=TARO-S^t|m;c~?GwG=Jl*c+SKz`c% znsYc=)dC+Ma1X!O`~HFy{2%D(3g+Oqz$ecwpM2}B)8O!Ykk#fZG?740@OIgnn z1eR?_AWsm1`!RLI+)F9(IH{u#jLF3^JolBda@>nomd84lWvnn_wzD3A~_0q=w6U;JB@${*QOO`zo6OTGFn`xYM8RFrC+lF}hT#1m6DiiDD+_v9$Z|lQj#8`zF8H^zsh>DPd;XV{U}CbeO`T0NuzwyydYfA zP+U?_)9-Woj!)A^|G=$T@=8lfYK!GN>ETdaAwIq@-?1+&sjqJ=Es}4nhZ`DeiyKQM zw+0(}xHK#uMlY(X&Cf>x`7V56V@*MEQJwN$-f8CXHY2v}N8fdBqMnl(!hVr=PbUCV zPaUyOPZ!Q_7dsPDfj}GTh<#dLsr6i=Je&w;qt;VLES&dfeLG@O$h)LG$0R>>#6BJ% zA<9qV1VY|@=M3k&w-lbg6En&3#9a5BZ}M)ss!QJ}QhsWz+Nd$hi#=cz^S(dtgHg&6 zh-rJP#^k8gnB2=WW}R#&?dgl!R|p`S-_%n_?9=*))^A44Hpn}y>~q>vr}|&p&(eC@ z2N1-5uGUjWEd15L~2ls$b~7m5s)#e>4u!UUPDd z2(B=2rGcvr++<+(m6TmWtbN;P;B5xpZs5HJ?jgoFQjQ=9K4IX~20mxtiw5R3nS48e zdxq>G0b+eVs=no*4>{^v4n7b-c>mbN&ZCT5e*fZ@np(sy%j|f8AbFB=!BRXP+FW1N zv~>RbhGkXD8s_8KT7Wu~ifyKKkj{*84qx6y4$F zSv7;06<_i>wMN52cphdV6JgMRuvBo`rIB9{Y@sNZIX)9y1JG z^uS^0qDPN$_LEeL`OI-xjv@bT4^v@!WFla?MDIfs0-K_jfyFcYMC^EvFA=-u1noLM z#*TGSHX#tJb8*DZc8J{;b%YFZUsGM-V9dy9)PH*2`nM)SC)Yv)*@+cO8O=)SIX6q}~A1?0XUNQMiYh_41|! zzZJuJ(-5TIn>3%aaUas`XA$9>;^2DL> zIc{gsnXH%n%soZ=S$(euX_0y0nAV^gm=r*ixM2m1>5$w{Ga z2HGyL%rkC(dRO+ta3ML<+Ltlc`_gkS6eauJYk65Xw{X@h@6Mv_*=>KM?by^K(^tKl zjPBT;an$4Y?dY~|e~ivPG|<}R-Scm0ZNH=4%+w)^KHNU+KvMUsX-7Rfo|=6yt?k#$ zxFdU-J11j&aJ2W(?|N+)>3^5_|BH_CrKzRE{8xrL0;9*QAMa=fY`5iii6zb~!{@;lNWcjp8*6l@4~3@p96WM5Joj$Q5{SGo>(ZHlAb z10K_cdjfdahZj|Q-D6WbHyriA{%@u?+HQM#AYWV3?(miSuI+C}TM=;Y|Eb?QHQiN_ zzWvG_PqqD3)snhxQD^(%^nJm$^GuUxm)E{ug?{)mb-O%m=NOOm#(KnN6@GH>nVVkn zFD0;5Ghk-w&eT~2J)!3U_PsEUY};Q{4X6t>*v#(!%*9Vy(`xRxXJOm@4|Sl&_qpGC zIqmhAL;eSkdRo8Nvth^EgWhocZMg02Baflqx42uk_B=X1$)?)Tu|D1DrgQ=Ocb9vn z+wQ0V?~Luro5=otU$riE+p8E6)e8qwk9wpRIyXo^_}w7>|9H2JI}t^CUE)jWB|pP1 z7QKh#)H7S|P?3u}4`bfr;f}{mg6SXvcSMSC5KCFs!?KKN$Fg|{6xtK>Oolu+A~2u& zi3q%6r@j(_7vIEu+Jbzvxf4Nb76VhLCnhiLpFp5cPfUJ>E(8koBI2{zUh#Q2jHJCI zbb)wfsT2QrglAp+OBMC>hk-iA*$9-6<6&R341JKY*8)@Gl{Nim-7LeiEGZiRro<~t zo%kqmuHOIMvgRD)*)8h}AkcsMJ|2O3;wcCm7vi}Hv?ab1 zffCO*lb>fPEHeXvXTU7WCy#`OoRoMxX5W^=hGixq@T`2>d(1C! z*z5bp_UUF-O;giSxyPMf6v}TbDwg}tB}I9~`HeO5Go{gAO4T<~`u+fJNke`^O-b~} zL`y^XEz!oD>B)P(x`$iTsXgZGK&GLven7zx(-ldHHoE4TaJtj$e-ns_iKge_h>Zv1^`|jLzsORpSG1lwV&Mer+qbxOq4eup=!Zkk+mgKZA4JSQVGs{POp)(4 za*a?=A@=F5k1Da@nx+kP#A2iPlkB>nj{46tl?>=9#Nxl=WF-*p8?>R0Snhwbdft!c zxKUg~?U)hu6k?y&Uk1!?F0zdj`Sv1*fqDwDPjBJM2fcl(cEKjvF0E%7nM<5H85~>) zvCJjq5A@m4DNbFNntRYwr{*5?x_FdR&3}C_nYa%p^l>?%cXF~x{NCPN#Hv4m1HcsV zpIo$|5KCRTz|?acs5J=8HN`sQ{&%6ap^n(6+rsvUO$3-c)cr5^-aS65>f9TjJu|tG z84*H=K(L)mLI^jT8zdmMA%<`fZ46hb9+=z+luH_-Ak8^V2803QDUDPDrR@-HjZ}^_ z2Q5Hq4ikb*3)BqsI`{1+Cwe1RFS;j@7n8`SxkcDecyB5-}}e!`DD%du4g^# zS9 z&3ap)`Q#B_QEwI)AZ3Ho#wx9z4_P%9jR*PQY!4Sb$h*ZCy_t7mAM&+EL%_zbL`q3JeK&(Jhh&(JjH zKBTlG_l*VD8Mu*HUu&8T+-hL;jU-##ufB(_@qg9#&xYyD#*cW3<`WJhkr`o%=<%KF9Vyv%xz z{VY+mR!w7~TwT{!NoLk|tVra>t)E$ud$@ivk=wa`F_AmFeld|-yZ^Sw-CVa}ioE8t z?!rOJaUC@ned`7(7aXMAql1(?IY_ym4pQ!~gOua{#~w_*_y;LBV~}!p4pQ#3*N{WB zqR(kLO!11i4mL^THUaRmcrCdWtxsR-)wJQ}0#Wf&v&@xEE~{Uk=; zScEgFK$F<_qZoaBkh>Bxw2w=B(f3Y_zG8$k5HBS9&c*0k34N>^>f^1o=u_(=grz;I zkhCrrHLr?ULkJ0z0VITX0=$jLxuM_&R z2GCa$qpt|}Pf}jq!il~$G5TJ`wj_twr z6Z^gvqi+$yyvGru9BE&Sz8A2m#CrqkV}BKW>i_E?EbYtxy>mOlLZa`VWAq&u7VUrI zAuRe{fgFk$(RT@9?gt2ozB4iUE%{k{zAZwj2)cYTaLKO*=)d4xnCzlFmz#X6!M z8(oy6zE8l3KFTBO2=QI$958r4k1nC)P*wfTZcN6#FVFP|353~^IhS#BQ?VyEfPL#W zU|APEy5YOl*$sShF3)~z=h|mCN*iq>3TOaM;y$L|5}t;$3a@y!&YZAg`VE~W$12X~ zQwHI%yXlQ^-q!7qZu<2U7ax*Cc2cmpIkWd%@YK)8?%eTgM)1`B$wPKLo0g{7$J(A+ zy}xbjuDvr7dn^aeZy+t-M?t#Doja00J`+D{g*EG?GA-QiLG;6T{~S~_Bb3r4AH(by}iAx1*8cc{-Q5*r0vmdP4DlRKJ-g}>)YMg z5$>2}pQw;yE0Ak_)qm=Y_hGMleEwYT3q8XeI7bpnJkjn6veom0r!F-;yEl}S_xvBc zr*cXj-k#|2pZd9X)K}fU_N}{pjR*XQ$=SBGxw+AMsu}Ufz3ELk-C^6_nb>r(_4m8l zW=`6BbE40`JM0e!{g%9oWVRaQzx@I0$!(uzxjhLrrcSKfgA**hFYuhp;W+yg$RU5E zJy1Ub=HWE+m=#}$9gWp9~>hOj-nh~{%>3oeR zEu7p?ZP)rz)4R1}GP5neGa(*h|KNLllZT)!LP@Q2yAtEar^VlPsOeqQgFi9Bw$Ppv z?EI0j(n1}+xz>TBD3IH3l%{h##$0zKV|b3gJI5a`a^pwR(;C#xVHYg1(`O|molN4} zU#fPbJ;iFs-ii0te2sJCo_zC>=ba^Ct1?{B9#_0=H+pF2C~ulwhlTsSC*3HRI!v?O za-@~6+Vfh|`&X!I7Ns#h@(BF3&zrI=e&(Fs8kE>aflz$$qTS7l!<{3Mhk8@3aLkaj z(oK7Qv;Dn39N=?%$KdeJJ3J&4IM;Ve(vi>jHpid1AvC9RX-;TZ`JrLqknhQCRLO5B z5==;VynUp1@=51|kGH%*PVbtI1b6Sx%YNP0^7FpiYFD*)Z$I1Tz`3S>x6j=~YwXJU zo|1$%3t0y)7R_C@?1o>b%`EM~9DBxj*mW|_KBtrL`}j2foVGv6IFBjr6+x6e=)W`d zVqDO_Fl$s?R`$f66dr9-uj(y19`Anzy<<7fq&54)*-l@6H{#T5dhyt70#@Z;GQ+Lq zeq+l0mIcAvdYD~N0saLCPD85Y7ky9&ZGOMQm(k6J|0U(Zc@NvO?-k}n0=AteHj9~~ z;yuh>oz{ACOb}KkF30Jq?TV{9LF;kNeY-C{9v5lk9}Hvx=@BoGIW*V%wKO@ z(_faC#;d#%i)ZgHdEvvJBuDudYL?jdWsZte z769_K=bw0cdf-c!G63F^Uum}`ihGi z?eX3^KWj{G*=Tf=)QtG_cl*5KmpKp2Zi|awweR{f2{-}+YWnAO<;}XUf z{3$vjVr`?1EVn9qi*4uOc)PC3%NtK7wJy&ZQ&on?92WP*QI_%T-|xW< zT3!NeeY)JA5Vt+qQD+^fI#8wx){}^-fdyNRf;GMS_D@jV@hv|ktLfKBGUmp-_=Liz zZ}7**mBDbtCbYb)V&53QzmtVsILC2Yg=5xYNB#5HIYv#o&f)$a*Ev!yUFW#ehwyXP zIkt`9O7BYg$?cWHxNO6y85E(ftaEyuz6zgr{FmP8JCm^cfpAB*W92jYZRRCwhI+=m z*KmEyZ|%_*R*O#W;`D#-OIzIYZr{N-aG^XIZy#s{```MOtoa}wZ&|UR3Zp3obKW7;#NcsNMJ-(1H zxMUAPwF~31xq!%u)IHwJ;>A92DwgcYn^W%33KUl6`m@R>yL-5A0vRNPjNj)+Qa=Q3 zsX3J%NR@#|K?zq?-RMr52X8!b>l)f-~}G}q5NGL z4qORxp7+_aRnr@fOtkE^1P-&}`m4{PMz4udcj80G+&uqNeU-0T9r1VB^7kY?ay%{= zzpS;ccGN;|b{TeQMqzn7ZcdkbG|W-wtnJ@d;+L1a@P#Q!@3_w-dDE~iQ?HuiyepR! z>M{l!)OqWiL*3qFuPdCvW85%@WfmJg%AeNan2?+O6Wmfxur5BDoiTUod*d+bdp^TN zmEpcsBjYMwv?^|O)a9PJe%Z8>?ur+`un#i{Y*BMt;H|#!W8EvabcLVFt-m)t{CM|i z>xtnforqV*y~7=hym%*~PYbxS!WVX#x;ZYGxphb%u9ct zl)C?~o~On?<|+1fuk?5L#?8V+GN)s#FSC1PB^z&LP5MfI_aVRU>v0qJ?fz0ayV^4o zJ&#Pd@Ye~>_#gMNQis%je2CXMVd2=49_(agFKqg0TF0s+=l1XS)jAWhty;gc?FZJ~ z&a6)-SN{0&XmPGl#;3uB?<8*RU_>_glo~V{`VI&HTr^;vK;x$BwV0rX4MQ zv3s9&{5$rV%CorL@|50{oL0It^RzDigeFm>V@gFa-=G|fEZC?wpPk?LD$3AwuwLH3E)yzliyl&li53GD;ZH>Uue<%x&^T{|z_H zb{hPM{?yb`%iu@!j~rR%#)UXanERgbJd3a&oC<%7?KU zq5SaSB@w==G|2P%K5WFW*o*I$2|Q~0PFMdS}1I^PmLszwpl3tsOmx4AD- zj2QAgo-6sB2)Uj}N-B1W{4kv_`9p?8`K3xb&W&I#l9)Kp5_v}l3I$UAB)-I&t=r|0 zS~J-7;C9bRT)a>#7>45^y1iVkGIxZJ#*+4OI%hkDU#iIN50+JG3IC9yBnQIC61_xs zP}#l`KOWiA=|}C3K7&|P3DVpwIQmR0d{#Hl!jO;ck_ewVZ_@k(gU{lgkQ19Q(__+t&sy?5dB%$#8Ep$qmIINiX017{dG6PP`W?ZCZh z(ZjZyq50ztKI=(jCK#AHgg?o^tUuv%?^ZC|RxtNq1+!iSbAMJa_h1F*8(4Vs*?!yL z=(B%p*FO7O2#$P~Q_`@%vHaw-zp>0r$Nnb$ArV;Why6|Z1N)owPxd$I5A1KWmFd{u z3gD=p{Z0Bg`y2Pi$!C9)dS-u{srl@0($Cr7iZx&Q8`H7BRck)`TP+;zXMd}Mqki_c zHE=99``cPL^4Z_k!%?37tsahi_O}K&+Ry&h2uD8q+kJ49XMfuaN4^hk3mo;Q!!^N? z?}z&bILfoXHN%mg2`BZ>{`O_fXWj3GqdfcDJ~+x}!+iyg`q|&U3P(QM2y0qki_c!*JxY4WELeJp0?X;mCg%#=i&m zKHOzE#{KH>|-PeOS-H1?E562`i{DKR%1a#$B+q)cpqxJI zj<&K)Qbv}Ab0GChg(D55N2P@x`kWtV1Jke`IDf^~v&6G3f;nDE*V2z{R2s@lTG}Z% z2bgp%JyKrEaUNs(SUWin`{Aa;NjuH}mb^GeQx9c|;YioYm-8Fbo9!4|52Evbrz}3L zpY@cK+*9I+3M_6&ARu^vSK z)%q&O8Fj|?PZ@)=5J#d7#9Rwez7&r35|_b|C?h2E9(iJe%w_EVl9u&Mx>j1LTed07 z#eB2jNCTx+WrqNL#?uD2vpL662VE%~iE_kJ|MP%lZvQkeX`sAR|3O~#ITo0g502|D zmXq^2>y2qShjU%Td>6top8UmdOiTW1xI&G?@JW;j!*Q)h8Ll~`UY`VJ-sB&HBT-&x zptg`}8P`6dXELzZPz+4lsI$btW?g};Nc7VNE4zO^u8zCZ&Lr=aALzfz_f$> zop2e;KgY$+?ST zit?M`#GWQ#(m?h|f1odVXbac#)Wh-#KNDE4BeC^1RLkFL$g^FTC-p3VBQZ?ugd_hB zII*(=m^6@`oD-OaK8Z5KqF=7_40Bv2!BIc2Q8IR7`;}MA6u~DkEwPl5V~s>UvB)nb z6GT3-)KxXGl%)=sL>VFJla#TtZCUDM{c?_#{?D-~bzT50`4$6{2GU6$b<$TDK6NrJ z>y34SXjLbr@TGoO|BPo{mBW#kUPx?KI-!8R*vx)Hy-c42M`Ap&=;s{HwxRw-a57h{ z047nMSo$sRuSnz*i*3!CM?E1pnFIe3m@<^#t$oV0!%5oxz$D5D4OFgCh-AI{;5Z*L z{Vj0P7Q8OVxMNvZPUf`@PRjK~V3DUiGA_ObOrj0MtT(1T4kvT(&wwTEYrxVEe+MjO z`2#R%pt7*Tb{8%v@LvB=yEOx@)3*&6Tb8D3_{6AuB8c?Ez) zXRRSaENvvu<*1XG^3-{sA&;OU=_d>bW;%+}=U8Ie1#rT<9hh}Xd&=R&p4fSV=_$kO z3yEQ3>0=v#MQ0;0W$7M)bHY)+9WEP={BAhuZ$APiQASAYcY|Re5q*W>Q!X8jdMCh< z21+YqpT4a1rvWn^ZD1cH4V0GshvlKqd6{WArbv`0{xlr*JOn2?*;h#e=`_od2^s3o zh8qdT^c=rZ|0TfE=Vt@649x3JxUCw$3ZKNhh-F^-GqAM91z_o)E;2!sCzkpj4lMG? z0NlS~UK4J4L6lsPyC|FIitI2*cyd%2 z$fb5gqb!%&4K>5L(SVZAj|oqW3G+@TO0LLmfz5NN|K4ZDbC!vcOMTq2=8US)#@!uyImYL5MbE&(nXcCv>{%Am@-x3r4d`y@#V3b_y3p-}`AEE&u zm*WdD;pUidOH4Qz6Xw+}N-nj6HNy`?13)hI)G5kxsjpU>;ZQW7#^*<{RDoS_)z%$AH$G5kb0Ue=PaTf-3@ zjh~ADUSh{*s(5^nNXOr;!qX$yRG$jptiC0~d~;Oz7FcZS^QrKs)UzYzH${bKMfPkE zRBMWE_>AWoEgAFIk9C-9zhr!g>6bd}Q{g#|ci?;BIMXHL?)egYAyq$I9B5*AB*H%U ztm$OTZ4^cD!$tB107CR z;abOQ2($cld)7JltyS8~nIjobFW*Br8@LsIGM-?@Iqmk~Oq7hLnEbAg5bfqS1Zdw{ zxMV!poD>s3GbVhi4zte;=hM#>E7oqTYp7l=pL?pQDJ-a}otopox4G9>t*h4`g{rNY zo}V+VQa<*SQ&p2wm6KDXW2fa5)lQvS7>UiB8py@}WYDpJs_LTYRnz64Hxy3I&n?W$ zmyc)V=j0ZFCI77qz~AW$o+DyLQ#<>%%}Y-Mgv;q;u^0^7RC2dxTfa;vA~zfkB5 zYbvYo{~!t_!-7CjRaH$ShnlMVnxfhQDR3Y^Cr~}Lx&Sp1*jTqVS`#_B`O|7^@}^4- zk*w-zQsmlv{7VcdwO^z!niinG9yy~i{Rrna0jxDUoL2XTy zjA|;Yi*oXEYIJOMb#9<2FHd5NPz$hG3Rn}Unm#>H164Ka)@`^?5>3xVMHJ;q4$;@x zDHrV^xka^wd4Wn^p*i=Yp#SndkoOJ5?9zq<8o%t2)%>O4fYxh^4%oS1HeY*jI>Wz^A#Q z2k^>zNFvAH592qiXus-Xz_e4fk;XS7Od0Z3-vFKn%=>G8--)E^4VX44oAqXok_VqW zVvptnM(i00%-(-+J=VH!xtN?M9GKL6F%-s{X+zk679W&F`?5;Rlon$F$@Tdo=$h&F2~e zraP>q_yMVUfINA`9?fUm751|MK@fGM0Q=}0SoI%NSUz}42AFkEvKHFDYIjyDh}fg~ zs&2t&lxkCrRoQiAs(J>WJYtVjGO&ytRd!4srQorz@P7}ISY~4KnO^KsHiJ)|>hszj z)la~ujDF^E{otMr3UJ*w;)E88&7lT;rApFB1H zfKROILCaIl(tTd#HG&+Sm*%G;oC1C(e5L>ID52*W@X6zxO;U-es^@6DP|9fjlSxPjYJYp&1T+L?_ z+^#XxvW=`t{D3|KM;pi^_GtcRH9ri0i-A!E4r@7nK>q;8wB!+cG=GQYhvBo2$+c{^ z=95P(^Ts2ZABO)Gjh}@74UJdBXaBc!8~u~!lSeFVludrB-EM$a_J8n6Eaw&dAN*qQ zRR7mlwH+|)Qnl}=0YG_h)K4CAnHKva38nb@Bq%rf!(wKUfH`7jq{|Sxnf$xR0T=)SM!cm4iVvpu4 z`@yGv)|JR}N}@b@#3HZy0}TVMfTIj~#2(GB(R}Ju{Xz3TuleK=i+ro*Q(m>Z69Dum z9QBh&%m;j8+G z4Eul=PU`I@Ekho$)LVh(Q;(`=T_>fQPad(<$$ZVH{M{OFrVnT7dRVFX6xVAT)7F9WYw^NHtaduM=bLm^I+Nn_^J=D0s!%H zLOyxK9?hryRvmso)8HsW9d(OBss607vJIGRs%+C` zQS%A-J~Eiv+HdD`_-BUlk_8yQF#HA z7Qv+eQ|H|pQ|9v;x5IzXz^W{qz(A_4k(NASxh`Y_Q)do*nnKL^OpOs>>YSFOFI1OY5}^dBmc#QS+PO-)~^* zqW!e_0Rum*aR@%^PS&n~5lov>&_R9+U#%b5SwP$1$Y;7%jVbdLjeiIKRRf!KuIdwM z$s?9JS8WRZC&4S!X}<=)SYzsBJ<7Uej^>j`EbEpfnok=)V_>rm>olJ{VyVLhL%v1h z*WmBenC<&zjcHF< zpUqQ!0~mkm{b=$@`{0NvdqCq%_^N)uXIrQ`0p=NyqX<);_4XZ&Y1bKze+i#$Lm4-G zhKVP`XI~^{nfTrsG5ZPkpNW}2_nwIpf%&|in6~9<%sMYJn9`4U08y z1Fq7TI@fF52%l$BsE6`JaMDli116t5V(BMMn$NQ>EgJ8EKNC*UKC1cT5lh;C(tO(R zFB-oLzZg!^p3;2sh$Zbyn$NVQa3at2w39qyk^gtir+k7g<0$xZ5tg+4A9qYk9mE_>LHI<l_yHxtSw8%L*mo@-en7+E zEFXSADR7n#KcG=?mJdImd2lIyyX@*(1KbPVa?SrN{CbVM;j3!_WH=X*tb1%9ETxAb zVvpvlIUEeut-3A)F9yB^j`=piFV>jXjaxOQOqs@1rLHNEZwG!*^Sj}zc>sK3RVTFo zpcmk%pFCoZ=6lG`zz;~tqkc)8+Q=u5Smr=LhqZyfcD_lgUI84_eiA5 z^N(sidBh^$t@)IHQR7$P(^3Bg_;kcPgU0d`Q~rI8Ssx!7eAWwPcs5PVtH2)vR&%LN z%P?hl4a_j`B#l|0d@f5Fo@GmceoMFeQq3oiSo(vSi*&oI>mbsSM=bqeEcMjm2gK*L z)K4C?ehGYKe;EKM5zd;epq+22jg?MT zBuMouCItE5tXV{Qjasar+BdK`k$@({S!@tc4xGgf04jpBbc52fI2nVA;Ve!bAZBk( zSI}O=FcFCDWECo?`iV8o#%xP#s*RTs7ucBXZm~f?E8(m>BK`hzu8r&9Su_x|7S7_0 zHK-oWV&?*}eyu4A+V3#4a3J;rYm$QM$6~{RRNZQ<>Nd{id*R7?UezrxjGz=a;j4Pq zX~&YUG3Bm!)`@XNQu^aoVwZlrbaXmb1gpD^7v!I}6IBO)4e#bu5#=GHJH`utH zc$AI9#A!C}Bxc2cj=)(rDyZ(`tdH5an|vRBK&Rm>zk+JbY-QN^HS#lUe3p2ejn5Hd zJ|vxov&JjvxJaCBWByvY{#Bc5Oml@#)q-;jJk!8)iJkZXErJug(!gsCyxG9p46N!+ z>p5WXI}Lo4*o7ZZH=N*J1FJgGGH;Ua#t%r*gDn!BGFj=FA|Ll4EbUMFEFtBUnE+-+Thn4xQSSg-;ja#7&vTTeji%o)wiQ{ z+7}G|%fxyfc-_F~41B@B+>93ae*cR^&mozV(KyGzGYve~!2iepi$v#jfI9Wu)oI|P z2JSX+uYvh}XPN8XH1K%?Uovna#)Qc8tcqYCv7RR<8@R~8r3NlH@ZH42?7mcI;6?*C z8@ScL?FN3#z(1HWM4mks>7 zfzKKE0x@r_NVrA`_8NGUfin%9W8j$vo@?Mm23~34wFcg7;B5xpZQuh2?lkaG19uba z^<=MsUo-HV20m}#O9oEFwN&)*{FA;3o}y%)l=g_+^R_*Da+HSpU8zGz@K?uo^Q zVFn&+;A{gI7`T`?!?u5cftMM$+Q9V&ZX(XK(}oPZ$G~9&KWX4&#N+I=FBte`1HW$I za|XU(U>@WZJznB0TjwYPXBs%iz%vaz*T9PmywbpH4ZPXF+YG$hzy}Q6Y2c#;{xKFY+OwI2^%jU z&av?_;#?b76YKrDdSbng*F;=k%Y=yazTX~Vy&o7R*87A{5*OL>$B6a5;tRxjzwu>a zy$|_1F*j*I=ZN*b_}>QN*)soJm|_;~e5!Z9J2>)W&m(XWMuY zahZ)*63?~qTH<*&-b_5-#@mQ*v+-`?1vWlFe7lW1iSMxSp#IM$|EJK3jk&8Mrd%Z30kf;BTCs{b)>K8z+E7~yBVx0Zd>S_>^H_!fMDWi)KeyteMVNAhoyUqb z#y{wcmP|=NiOw=M8`fo1Brj(L{z>OL#rY`7%1r~sMk)u{Rc*L;ePhG@*A%N;v1xU6 zW8Fu}iG8e(j}(ll*1^b|bv%$fniN{EC3QuQtVJKQ`&+EBhJ6C7YSuT_Gz=uDB8;{f zuu*i6W1|Hc?vHdP42W2jc0;o}Niz*3p~r!Ud{i@DMO2x2mHgG&tOHW0hZRSXa@-J}C)s@fQ^=Mv^F^-7fk2}jIis`@}f zU|ql2rJ;sz*sZ|7&t1E^3OYBg2&}JOv2g<`q4M6^Sf#7iZ>&Mg#(V4QAyHFpG}cG` zZ`^B6i^ji~RkG6k>KY4j%zs^L&l?hZUtMF-M@RGJ#hV&7@P8NI^bu3;O?bsL_omz{ za$2`~edCJAJE;BsF>T~E)P6CMH&Xk>L|#tq7n39JsrHMByt3LaCi3=bznI92to>pl z@3i)diM-z0KSthk?H3by*|lFxVuYqR}gB5%<4i;28U+b<^aUTwda$SbxnofcQYt4~f>?Y*_~hOV8@ zmE+(eRrVhVk=J|s*&KP(w_i-;rQd!rk@tW5#YA2O?iUkzE4W`wW=A6qtd0GmsYv zY+RKWwE%&r1shl8MlC=fY5@XK3qISB8?^v|s09c_Em%{Z8_g7fXr>56GhI_3&2vqC zG|QTMqnX^hF{<|7jnQ)5yD^%>y&Iz$Trth+x(?JuFS6<~peAd!l1%e@Rcy516)|dI zdDY13n%cmbB_B=@s!sSC2;Of&pTyHmqBR1(D;X&5bqd zHwJE6y}ot>RMxBwfWv=P9}U#wpU>+%ia~kYX2oMuJ~C0HZ{2jrJ}bchZ-WLSw`P!X zZG)6k&&45oE&F~kNPR5CV9Jp(NICVKd=U1n8l=824N~r@LCXDfkaCv?DL0jJ{Ur%LJeHF@Mqb ztk#zY9_cKc)H%a!54zvQ0n(v!2`5r;OEHm@v7OCXx!i9)><$5$00ll3H zZdBjp7<~({-zoLNtyR%?V~oDJ(5JUsuh7S{3rth2xOjia(3cCI=qrrTw;B2*4U7=4}4$8BHQ z$E{=0_dtxk6wK=@5ica=ZI03RCiHEC5cP4(S@eB9MqeZJWr{K_$Kd`LeRWX6cB4LS zRg1o7WAwE{Uoql^C`aP?58`45K<&`C8$R`Mi(B;lBu3wBSF!I$G5WHxmoE142(ajT zCq~~T=o@H!oQu)74Em(M%rf*P@C*jR5LZ-yL0P6TJt?mfa%Op7hCV6pty+%rT6&DW zCg_uGepBDr7=0_z2x}q0`kM_W<-IvZ-wEjBJS8OdO^eaj3w_d`=RjEWEsoL0b7`Lz zWm=9wo}n?z>qBRj`Gt=UMBj!OeFca(Mg^KEM_Lo3?*#Pmd?m}v#}1-zXN*3c7b~R# zO`>mGjJ`#vWN8mRt`L2X#^~eq>4+%PatwYgM&Fyz$Md4JkM$$^PR8gv3w=#gph@gI z7Nc)LG3E`e?@q{yzMsYDyBi&`LX>Ga249KMw|Q2yybHA)``@2p^c{h|Ix5g4_VFAN zak1tnme}vGu)K@m#6C~rmE&U+(n%U76@BrLGxeQ-KItz@4SnNc^euzFaw^g!`g}3^ zmSK=}Lx%R<1t<1>Dn?%?^zBEykm#Ecqi<9x&f)9!_zZ+a-(4~KN)i5pDARHbE{f6D zib2csytMBgEywm)ul31w{}VXxgTDwNiJE^NkIADL3$+M~edA;ForXSKG9x7V{4x5Ppl=(b zXkQ(i=$jRzkBinXMzlrkE-WYwQL!;mKrXJB(AER$G2Ahn_^@hGL#^^f%ea%#)N%ZZC(U*eBOxm{| zvSQz3S|3bT#B&;=gABpy>>R=(R}8sk3TP6!@5bco#w5ve{;ZdcaFj!pI(`VbXI%!8yAUJCvo8b5IWQla{hnuG29oo}$nk8Nvj%R5GlAEdJ^3*JXYcAwC?+CGsbmcMnc<#n0Lhxl?yA5*0 z#X4>g7IQ0s55l#<$-Gvl_2E*ls1^D|2N{B^V)Pw_KH5ipd$b(G%`x`z%n#oS5)yr1 zjgfPV99ZsOV&v*?7`VLu5hJ%7au}Ksl6)`6$b}&%b2o)WZY&DJ`p(fBIw2>REXL7| zgB+HI5qb@BMUjv#!(gG-CsD)L38+Amz&yy&hGNa{Mm;wp@*u)rg<~8<9Hp`PM&r7V zx)u_BpNi2}j72!*sPF4=qL1=MGdW(Eg!=##tONW{YdO{@E=LaOD}atg`M9qz5=y=p zhF8d4ScPvn&~Qy6SGj6qRbc&18$RK)DM$PCY;6BdD=1Jgc<4UO7Fn6}h1mgOY!ufx~!ejmhVe(SKirZ6e zp42*{>B9CnM`+|3*U9+9PVj=ScslAvq^`MKQI|Z$edBrPZ-ZSElD*EHfA)4OxJy=;w?-tUBTj>(%w{+e`9fmb$H1UY@hR_vBMl^v z8A{2EPkD@XMFYu8nZ>94KxNk|uJl~0Xi=W)idlx;+RTz+-3mI1>x!!fe-nHm#@`|V_zW+I3G;rJMv67Nu&;2T7=aUS3cT)?KK{{xeR2q&MxS1tFJEP^ z$qUp3@&fW9`huLQsWmx;^8NFiyn>wEK$U#Nz9zReFs-_Bnwry6(9_sZuu9!$5p!;o zcW?nC?>)}~=C{L1szU-(b~zmRjquqz@*Xfd82RK8d-Mf^)1kccnyqEXBj$RZG!>3% znGfq+-e<)&oZ^#5?7?-7#K9r&v);il(vnB)p>og?IP&j-zg}YwCRKJ6MA=Ke#+>t0 zFw)rZm5j!mW#30VD5iD~!4&sq$*fekN0Qrh#*aVH;^CoZz_zUS!~v23~7m z4tz*iK1z;pBs}s``gAwc>jxF3engJ_GZF4ua%GT-%~vi2R4De%(zuvR z&|E}toN#Qh+fj~Vi1RG<<-w7#L{woF(3tU`*I4R>$^zH%5Z<>0g?`kn$d^}UU-Tu=d(9Q{KY7c&5=GxV`OMBfj9 zO?_?z2CC;5bedxLq-H}O=Qq*!OJM5Dfg|xOj9`WtNB3JeJ*5MoJ-{qd$o`=W>2Gj? z8GaA})~}GnT>yhN6zhm~*vE3RJ-Ead`{I#6(omG&FygZSA%UD{O?{6+ALXbo1y1x) z-YJRUcQXJc+l1w#+%UMdbABd&}9PPnS+m3zCo(xB4Me3o%&XUL5 z>y~6B?khQLwfvcD`cOx^l~%O((afUC4u3-7#Id<=_j$c1orhg5Z!_LI^cPMn_JYsE?HBrb|BU?p-OjJb z`c|kgdoL_E?M7J+Ug|sP^m#*xoz}FVAf`JVCUgp4j@6hMoQ8}Fbp0DK{WitkKX9=pT za_|1@(?abHJ1h5QUl(da5iG|yN4Y$qos}J@vRhPvW9%QO{s-bsJ7{%;b6VbIe)l-1 zB&9Bo_a@$zG;hq#i8+sIJDv#Q&dk;F2g;-#a;ME;%FPLbaMN1{Bj6OR1H z;5fe#KMg1R?*NmoWhdjAAIm%rj_GsZNY_fsIhbi#*4yBib_JZ+zY-YRLCQ9{=b}zx z&f~PX8IHFM#1F!eu9YvZeawUH^*K1^`wch}(-PCC&ckqQGvY2d661)aZchO7T0)r@ z;aDExe}nsk##}c`+hsCy(6#JjJVjZzwAl&AwVLG1^%!X&J$6k0Uzf5p${)=Ac2t^| zAhueRTsJSZE7Gk*ES5_q$KShhHr@pFNg_q9VtZll@fr@@P?T1 zKg5I|(qWFZ;k-Mv@5!f5tEnw0%$5IGHhpSt{?sD=n=y4ul20f=lS z&{Vm<<9xvLQKVWp;(vsHug37~?^1)$vHf+;XFThi^5fw9HKxpX15ehN^9cJfH6JYv}^XwZD-#lA0l3v4&alSeG_Y-8C^ zVEHLS9P8uR-1V*{VlnAgH=VEHE513s`(TAnc#7~Lm6WBA*r`d zYCd_yQg48fJyn$#Y$K_(+6FJevhO#H7&ZLaaOVy{wET{128hDX`R~mS&fj1j?n}K&5_<(^s4SdwV-3IO@)@6Uq zz;7D(yn!znSoJMkS86{~V;|~3=63Ee2re?PdRIuxt8Z#*e77M}XW&KyHxui2X*Dp< zdYJJxt8Z%RK3RbFm;O_1 zVD(K+Eu+4vsj>Q|rpD@OCRt}##vzp=sg>jdHDx0;5)+MBM}OIfjgLnA+E zv2pdP^?|kOo%~fb(U;8!mc`@PtBEwOURSf>UTi!MoSVHVJ#bug%~iInxraTl)s=V^ zb;J44dOwICgu9v+4Q|<$urkG3+zrDzLjL*=x+~rir>&i_r`YwPc`vZVVjy}K1 z&osphfcX7DUN@+ZdPE=hr12N&2iXY7eLvU{eRss@^T8-y1E`P7LD8q?WQ3(&jv}4h zpMxFI$8YtU_6@^2nDZO;4byV8vkh|ii|FI~9AyX#Q3r|tpWW2Q@2&CLNPS%Xh<%5( zzC7?qA45YY*iij4FS_Tn9I{iC4LM%Rg(P2IJIs9fy|uXzV!k8cB;VJxz8tNf82SX0 z#XRYLg&)(NddL+~Koez1e+CfDFuxU?O`u8Q{s>^&$M3kY57NHTaAF@fLnIAV@V!ZX zt650mK8VrBZ@W>B`qJP;ALWhY4!-|X4Ccqc=Q5IVY-eI*6(N2PmFpED$(KuHQ;y&D z8e(K1a+Mo5Mh^}7;xmIzXS>TgYVXA1 z-o(B8y`9O~BfO)>Pqe<8_|T9kiQHs|Owj3Qb6U+I%dv0x?vSs|>GC_B0L}j4zHA?a zAOiu2saQrqM*X_|&Nu)cgqs_^L%hk&6CTD6?z);OxC*YXscLkHPqR2?grM`=AM|0@ z_Y(JxmrS(2eUTw`LaBE?Hn34?*=s_{h3)UEX8}xyG~Tr*T|CpIQh5`-$>D5dC`#e8 z?ZiR8%m1muuf%(k@lXW+>*ST|gV{q1NBw8;6>l)xT{!BkB_BBQp7&vA{XDIBd;az$ z$El1F!AT=_jE(a;x2NJh^oNr>o}X;*$fu6^u;*`m(32dx)L!=2zOL}=$GebNZN)Fy z^|!9@8!D_GillD&uL1j2_+v=;K1=< zlB+Gr*&Jd^?B2bo_ldUT(&p{6c8qogD@t`qk)|W;wo|lD^p4t@#M4&MNQnyuUkvdkqQVYecP=UI*ehq;g{7w`j&@gQ#OYgij^3BpnbDq) zSl7-G`^G#mWM{_C{GfmBVQ27kU$Am**YiI6`BFzldh5@#lRW+jNlPjmEk9!oq9%Vz zU+RN>fdspI|2cRtT_hoAbMmY#p8x>dpy;pG^T{$0YX??(I%T`k(qdhbDga z3HP%pMJbS)o^s>);lAQ#!lIW(&tig$MJ3PE*8#cU}u#ji=Q zF`;V6u~M{#dNz224yeO_54ti(d}nMz+NK9XJ?LD=tewMK)Zh*cM}OG<+dfA}M#kfXKf*)N&5P1D-M^^8 zpC4M(Fn;l-BJXoQ>QmPID@%TRd|mv~6ldAb^h{tE%q$-{C}YXNaD~5ae#z35zsHkR z)nh|eVRk)wP@cbTr?t%G&Dwqg`YRhuO=L@6atEF7tO^Z3X>~l`Xg}P2`*<1mJ=*+R zyzM(i|0d}FWa`BaG1;}(?LF|bW6L>ezn;ci3@5?LQ26La> zisCGD%`b^hut%UefZBWfxp(dSR6{YpIS>DbbZGPs7ER5N!sECGU)iWG2E8-9?lPQF zJs2+WuioX4rvQfV3;Kv_@0z(Ofn zAyo3BR&rqZfs~FH8oOR>v^!LI_QTte{`RnGBdERR3)cIT8KCw}11%m{{$?AkUldw&U3_HZ4IRl%gnEur4m zo|)}g`AwfanG}v0zC6pfjruB_R$9%Dte=TKRVd?!W7wZ@kG}Hb8Tm_bG$68& z&JnGdgEGC9eWED2cPnDmoJ2dUcgr1axWN$0f7qG+=f3eNzBzfrn_lr{4x1UbGPD|KzK}DGeO*|Wgi-FY*9`Gk^nkCX$9rtPdWwHb((6y7b1_a$k2;N- z9q&oP;8_HT$Z1n+Hcg8N@-ADVtGik(wUc~y3UF0aN3H;zvwShY>R`}X0!NsqT2 zQ`(My*t5ohhRJb-Q?0*GnzZz`X|E($XX0>HAJb_?AU!YOYxyUN-jlTCP-aEe$d0U( zyaa3cp@#60`a{hvopxO6@+EEl^}!c?X-{-iuHQGi&A+ZI-M6o%J>I)^-@VP9zF@%L z@-@nargeTZSd$VeJN8VlW@Iom>C}sj!Nrq#T! z$;|0(?&?{#Msd#0!7#kF@m*EoH6 zUfka2#`fg}9O3VFw-hiLCWUr>M!m&Ai)7GI~&kgIqbu@!fsWT?zrFt4hPH7vLlCvqN zXqq=EXJ5B>#O@heJI0M}-(FvTVec5Xcf#&`-<(x$?>zW7z~51y?>jXvqaiD0)7aGK z-o3o?8DIG~d@a{gWy3+o>&Nl>3a*^!D2Kk$;vsj*mJfTl^MUALGrcSXRJ6n~s&~fZ z1O%RY<1*PTmd#s0o_DO){NZH^ZfOWNgS*}3m^oR=UL-qp%VjKLy$L&OLhV)85azs^IkaM3!OXcoI91{_lK12^4Fh9`f38!e;xh};U~hK zNso_=Yx{xqoqc~iHm-B(6KT&Td6T-bMm{m_iK&Ixq@e*9D*19kRY>cBua zm7Wp)xi2*-uESsd_-MSdv?07N{K{%aFg<<8mz}Rvekz#m-|=O4MY`|be$(pxx3QRc zP#l=Oy!X)IR{|Mmu$CvN>y`A3ima51b@&}wu`ctT>o&U|d;o)D>dqT>x_4CFToT?h zf40|iDjbhlwdJc!q9)J-L~7vQe2C+IAH%K3IqoU=2!j}OC*x(z9ge%p-SQ=}af8P@ z)Gyj18@#Sce|_PeVQM*9yfNG`-m&zCC3(+Vs~$dI;{RNpzkUu@wqajuN^wDR&K)CB z)=SlA|9N;zGZj2}yrXhMUghUX{2QKhLpH6dva-H7KYW*q*WBmkURHC%eH4wqd^vK@ zYF)fy?&SR+l0uN+L z)O}mw{?TfobSl8Jc4~d3R!VARf|XKD_gh)V^-4+I2wb^hQ|lmanlDcu=fi4Z)cF0G zJub)oUBN_0b8~gGf8j$zP_CJiFw3ZWO7E!GU*btpOu%XFp3rx)e-eMOZ-ya`tqvSW z^@R3jpOZDYlpXmYH>~>gq8wWF8qw>#Cuw|&6AM*u;*OEdV4Ss!laI>r_4z%+9FARk z+J-oH9pAmXy6rYcS_qT!L+;jUZ(^I<+ME3=ESNv*+QiPt%POmbKF3-;aSNteB&B5QH6docdA=iL6lHh=iY z#Ehu8ho%^as2*p0VtOWNnhW>D}#}xE2OF(&wHETP<&KTIvV{ zQ>eW}iCv@-SQ$f9ULZ>2k|2)O7dKxQg^Gn||Z$+2iO) z-*z&-ExydoIR}$@0Z6S{QfwrA8QAlBxgsU**l~p{eiZ?&iI9nNsB514_3Gx!SD~z@I4D0{y>XA{lPNsY2$s) zV0ue=01+Oobj1hWO>qd zpe9cRzIZY*7}(VkqTOxjTklEojtTF>a$xJJ^e?84i+?>8QeBw*TPUz(O&nGZjs+9L zCx$J#?J}Z1^msq^i}*8fEn8H4(uX}>N5_aeylF=c`8pQf(UrcdBOJ!O7Jjt3r9sur zxRi>ji4_UgmoIi#-1=m^A=PloTKc%N z=dr$EdTZ)3lx%0)GF0qCy~}Wm!?mqHy}2#@A^$u_{0Ds)B^~L(mfL7wzw!Gk7y35l zbd+GpBnNu7_r_t*`Rwfr^lPZQ5q)xg>ioX0^s3Z9T=tH&4{N8+xEvbOKGExZCi{+4 zLmb{4ySv@q&v&2PI_c)ZqM4KS1y5f-zVAq=yXlYEdjy>tVojP^Smf^-;&|QDHN<)3 zNP#1**m3gUkuKj6--YfUb?5AB?hZA-H}}<+pWBvhst>HdUi^yMwfAnUb6gQxQF;H0 z0G>AsQ-1?}!`kW^d>Q}V^`Bk8Vbl77WB;!nOU5jxNNzXe7DvM3^OlMv@wgjRBz*C+ zHDBc9agxZ#>Wk$|e5^0}cq>IZtA3;QNdBTv!Z}(__zcR?>9N3kx+17kROP`H{!8nQ&YLlQ$iXb`#HoBTh5st(#vDE)wVA0bKJOYmL-!k}50&|Or{4O{W^$;^J zx}$I;@`VPf!zqZQJRe8X_rtMWNY_fsGBORG21WYV7+}&sX~~naNm^5$m`BQJ1M8o} zG{k(ANd9~{>CblnlLpF*?Jeytd1WbSTb_6V9Cd!$;1f%mE&}FQqD(zpsm82ZPO;>F z4~{gD4IHDifj)IQ;aCoCMKP_6Q>Nwkpq=D%d{LJCJdMdOfRnz*F(P&ON#LPylvw~L z_TLFCdKLn+FELyTN1}e>csTOc!jZ@)W<8V7vXjUclDwcc~tn=DyA7*dL3gFon9(cAV-9UDj7ws@qSnG{NNShp|bOWVDGSwCgIcKTQvf!@1 z%6A4rUgDQB2=6m^)=_xgF&6zcgWqi6$AMk&wAlquH&EGR>@lPpNXM)@%P-@WYZ2?h zaY~+faV|)|PXU&4&H|QkWwtXh=O@#0EsBO`S!&?vSRP_>)cFRy*lz-sd^Z4Nr>1lw z*CZ<@KS!(SH{Dmz*6^Zz)VYhjsd!X%IOAAJ%)4x>6raa zIrHY2a>FxiIy@a^#Giv_z8ud|o;kqOCI4ybq0A|UTq~G{{YE!X*`z!S*@o2TdPPT$ zSjHRMk8<)Ht8xtGxZcVhkYnExweT-wj13* zHmSpUGUQmNeX}nRRZiOQe@9=A5yN3o+Ln1TKbAiWo{r@tmN_*YnE6s?COq9gtBdq6 z)38p|9|O<)$W4V8`;q-ied^4GryD3Qj$77&p&OoQSZ1kLHt^@+X{QdJHi%cjOCPNP zW;*gM25tqW8z^6Ljx<}w`Y^wAc&YDfVA`Y}>m~Du<5SAE2$+4qd}|G!<>Vt<0cKrD|{j_k4@CS99WKPd<;>JFFC+;)Db6R-VMT$X7_V9G5iVm zYvEZw{#2c72g{HTEaPgHVUt+ee5t_`v+hh=1)K~|+yukY=9_`(STo>=N0g9e|b^P0iNhhrIt zWnMG^PXyQ@sn;)oGc_NN3Z`kC0Ze<;&ogiVF!u)JX90)X9GH%2mI8C$ zQl}9ZStx#`#!-mh4J><`4Tk$ z)1k|>?*NPa_km?Dv$L2Tbz*>J>`el`QS)~Jr)s6edy*$%YD*Axlw0w%|@T?S0Yyu`_zVqQ$ca4bC28c+?Rmq zs81~XSAnI>Rlsxum5n;I%Ww=l^U8pyF3Xh%FKgEgz*2^pz%m~f1Jf}LvE*B>Ioeqc zPe&bMN!tW0W9&X)I_eN}ysob)LmjH&9yElW7@pKfp9| z;H58?0AmU$J3fSTv_o79Py5foe^KKY7`s*D+kmBB{J9Vv(-LzGFl{q1^CZ6pnB$N9 zL0}#)i7$tOw3U3;hx+^pk6c^00ho?Fu^c1rGbj{rqm9D@BW zS}nn5T(-wH7j0eBF9eDXUmg%SyR_d$U+`-S>ho~b@1oV)CCqqke*`ExyzJR@v^qTY zt3-z{S&IA%{X(Epb}td%-$_iwRqQOX z><_<+`z(Glhy8c2iU+Lw5EsYtJfij8z=>9wwIf2l5Ah7heua7^TFb2GBjmq|i2orX zemWu^&Cb@2`6ouiMlP9L~%Jco@rFr3Zt>)wg0zSXI zJ~iUSD|vXEYNNH&fpFQktKemzh&0Qm@}XIX5F)ENA3o z=0hr`a?1kw`8hs`X8W`K<(c6Zz69{YF1!LZLs!8cC=Zlpd!_mrfk1hV7hj3hP3O(` zP0k6w9VU>Qn^o@jOEGeDb0<$O&6H?fCYmBPW zJ1Yl0DxH#x{>kre_KX~VetsZaqd;~ZUXD{Lt&v%tU7C{_keB12_SsODVr1uMXZZ0# zXkDYpS-CmBfWJ%{cCs%c8y%se<>lpBD2iCdJ$`)0yu?>sT`SF}sXF{#+-@R&W=3gl zd3c26XJlk$pmVe|+m}}!@CBq^-po8-me(uBO0&xFBH!Fn$^F8&24$A#mzCya$UA__ zGt2yW*#T+5Y+shI93xw&&B)Fy&&YL@zP%W|@_rCz@B41Z2(nG6_=248+2-Vtn9 zA;*`So8d1P%lW8JnKwKJvI1HD3=~=`V;*|*Fn@Hk)SHzvIpCA_%*e##o17;ZWoG2% z;=M_dQEo;~UTJoAxNAzwvL<8fYE%9|zBfN3+^rZL-b`yF@I)Zy6x+-P`Ws&V}z=EWYat&WNK2ghR;d2+-FnrD9Gvk-DE z6a8_TCr2#$>6)j0p2pla(K$5W@mAhBLY$y^?zfU~aiR-hk;XjMEiicQ0;w|(;T;Bk zP~$5Qb{P13h7M2Yn05@p35E{O49GKWj>fYP(mC{+{{>*`&=DtSemXGuYJ|6Fya*xN zTI%~%&66XR`j%>*C$+U2??R~h1;<>vuffwkIpPHHv=h`k%gjEI_fy=bd2+;}|DT#? zIeDxS{qJa=9I@zc*F4*qWnvjNA*6HYQ!VC^#Dc*QCupAgHS#?1Of~Q|1_rboRDg5B zCk<9m;RMaIOys%WR%0HDvw>9~0rLWw8cV=zLzOQu`&7lr3$EF%r8nX$=--3|Nk!6Q!{D7xZ<45yfLY(@XL#hmz zYjhk#`&jSdEix0JulssZWkLLGxQRzZcup!}|glAfE#0i>b zexmb~)*(kMI-ettgyjgiWDr*)oTBl3gg0wUoq)#F!H!7jUxVW5qdRdyYeia{2YX;JuzSCu7@X2j#$Py=Q(+HhicDB0C0=p$&(|NIlENz zw9oobhxw!VtfbH29~{pMiEl($pfU4h(aDozxsxu#KR8uRF351o4tR3J37WqKI0=oU zt8Y1&37o1s8&Bf|&8xh?&j7FNvvJ_Q2v0lYh!ZqVJ@N|>s&=3dPW2sla>NOmryliv z2+;(VqX7Tlz5-949C1Pc{=rd?JjbmXSJTMa4=9i)R|TJ-dFqkBhatS95dYv-!jmUQ zoS=E72fhv52zUoO8LkDM`s9ccG*3P9n-OwNa7@QPxCh|LlOs;hJoU&wj?fM7V1vQ6 z!;^PwoS^wJh&zh#4{j$sb;uDXXdcjVa3H{O$|Yd|`xQd9CIIgTW}A?I1>tIqzl-oe z13#fL$8x8})PGK61ojx90vzi`n=u+EXx^jws}YXV_&7qwsZXrN295=E96IF55%Y!v z`-M#=Wxhe<1qjtxg8p9MV$IheyiH@)wannv7=S*D*Q|NswFbUl<4p+FIGh9kw*{VM zAV)0ocbn!nAbe8eCWMDHegz@NqJx_PxL$bLAxE5`dG-@|w#n-nbIqf3Ot3>W*M`~O z>Ir~K0%rbg8b6AV3mj+Ls9I^CQhURJ0>=)JM&?iSM{c@AmXTI|_ zu0Y5(ayal0PR(DWC8y@E=6#5>3@k7EjF^4cVBoJAnC&I|pL;b=j#&C)o#xe80G2j? zSo0i9#M0)EXy2p(HoEx6}9E7Sp2LZsTb^}k2SlTBCnEIT; zsy#CS;8Z_?Cr2#hVSdz4M@Z*jMsQB}q+|u{{fy?-v2wUQSH@5WnC1Pv#)v8>$383> zN{1w|9Q%-^;zuD=^@;<4R0s%hEjOsA?bRu+7GkA7MXGF;nB45z|Rt}ChLGz3|7V^K=VdHC@ zpm~nhq$}*Te6q$|>aWt6{V>|VfR-bQ|Mhx{w1N{f&#^_DOq;LqbcEA1MswNrQCaq{ zsyi^-S?w8srvguePtq7LoNuP)$q`GwDlctEeUON#;Emcmn?9C3o? zUBHg7;2#{1H`F0VoS^v?n$Jdfx5h09Io=#g@DJ|m@JvgNI6?EOP23>hRK48xxhmT( z37F+qWd_c2*n4I2?ciJCi8~R7G=3K0lNujD__W49M%bXM^W8eA?tg zH5^04ix8?g2+VR#gD2mHaJqqS(Ky_;#US9=l+a^A{)75UQ$*$2e$B79Ec7ZK8vKY=h_w=LUTy^|L_A7rAZ4%-|-_&AuNd2+;Z z92`R(J$}Y%9dg7nuF?!0zFUs=$q|c=sv{>ooNDLMHdg(jG5gGsZu1u(yLhfZO%tFqcQ8wI*@03$0JV6dn0Pz0dvl|A#-pMg*yXJ9k<2_njeF> z?7Q$IHl;(3I02rHV~c5-uNnh9sKTlD|AHr{-v6t4HO90)#~;(OZ^s*U*!?n3Gc-?* zSmr4oyklBEAeTXXZT}0JCr2!EXS(K>BAlZ!AG*t8+DZ5aw?Omch-Liqz993WewoG` zdwI}vaG`?xhUUo;CupAc2$_}-q)mlPuKE0z=E)JuHJ`1TXL}YG#0i@BX}$^JBFG$mTfbWK_SB_6zY++SFsmmc#pa!w=el=~fmbnY0RP~g&^$R}vA-H|#}sPdeeqg{9C3o?n-F)z;~(6Q zwN8`93E*RZ*T6g2uy8-sI^>8GG=EIy?J-R;4lOvY(Fcy03JEl$3m=B%OljlRH^uz@S`Emi`r3g2`mcxyIaQNx8;>i&w zxb5?}uV|hRnm!1bjN1y$lOvXKyIk`;{%oSY8~@<$)jT<3vA<69JQi(%%;CmAxQ8`Q zj#%^`)jS_?ZHLU^#y_}Sns3)w^t&|Ahh4Wp=5XU5+_Rb|M=bg;Xr2$vc0eX`|4q%4 zBbK?pi#mEeoTQJH zGwt&M-F?t=lrbg7r{>8KCushd=J_1M361#>?_V|ML%e4-R!>~(<2xVXJpfzMCc`yP zj#$dieFMwGhkLuJzZC!AW^2A%bJaUdW`(4VouMEMG|z{YpVycVGryuS^Bs-kJUL?N$2Sc9lLkJ{v^;r*i-Ilo1vz55 zR+EExQmXw!59(cTt_q%R6#NC}s^Hgyn-0&kJQtax@tp{7HZZ10_*|8j45&|zSk6^% z)jZR(=^cyl53U@Z`s9cQI#;dJIxd97(vM%$Jf~!n#%&0Pz{@$s8qJdo#7+!&IWJS~4?E}9w9I@z3(0m3$ zuf}-@Ro_(tz;PNdEji)@%@=B(UA#nN_H97pnFuR1ZbEpk#>)}1pOVJe*MtDWFFBtLFfhp|54+Q z5WcVR9}wQ4?Q?$6Icn@s%>~$`Q*%M{YA%51mQ|IX6^E;WSLM_=LGuloXIrk)_&J1M z*Z2dJLG?>52)GB}X@?wfg621Cp8DU>css(7!E=r|>hKS4Cp_(tBTmr#9?jFvPc&wE z4jKIO8uOaLQG@@Z#(zQhw!xp$_#X)WZt#q&Ho@L#2(YZ}=QU4`Sk?rNbJ0=f^(a3% zV$m5v9er)25IpUZBbIT+=QqjoykDKWY22XsyAa-~F&~V7RAZiFwQJ1wd0gXf1AkZJ zPJ~Yye2>Px2wyOGKC{U(Fzv53{vE>KXw32Xmd0-*{G-8-Vja1F!F{NCa>NOmAA ze4*Y{l(K>F86Er_s^DM(ejW0(y26~Qq{Db?v=E)H!XnvZZp9Y!q z*H<-9j#&EZKQzyF*r+jo1o4E%Y=3nwhVrigzfW`!KBqCS!KiC8&>>dmS-||k1+USt z9Zn$py~aG3N@v+P>EO<5o*c0pMnPCPS9(@ z)taA-FiT_R#ZwpBAvV{FFKV6~v8)v{G*5kYGt;&sTx#IE4cw&hg9uq}>aRc;4=;6Z z*E~65sXJhJ@2d3U$mn@G$i`}}Q3&UTcMK-NID>aM6|}FhB-l8QyvxP~#GkS8OybLI zJeT;hHeN)WXyc{C!)#nZe7TM5hQIoJFZYr z)!m^xw1fOrHou41jel_a;2jH|e{j|Cf>#-M4RI{~!EJySyv4vB z2HtDnZUgrk_%#E+MXblqDFdG~Ft0g_P7<*mV{QYd8#vFvyhbPba}BJ%+obJqEfAeX z12-AC&A^)syv@LS46MG}r0pLu_*V^l!ocqs_^g3r(1%hsuG@mucbl|*uHAB8lV#un z1J5zA`fgJ^8W^sWyq=qN2IhA&gl{$Qg9dIV)^nNHump1*7JS&iFB$l_flnIvw1F** zO|j!5)@#KG1CKE_Uq8JO3J#D0>2-3CrKFs}uP{&WM+HSiJx^V*K+Hxlc$x5>b52Hs>~UZWBH zJqA8Ntk>-$27cARCk*_KfzJ}_bv_1bkKiE&9%bM(17{hyz`%11yvV?%2IjRJ$!oQN zTMf*6C5|EX+-W!PE(7l)*2kv927bxF#|?baz^4t&>oQ`;W#AD89%JAP15Y*ZOat?J zi`ZOh;A#V}GVmG$Z!j>gMT(sc1Mf9(w}E->L-b!W@LRbTmvsLaD{;z4cuhlHsU0^-!~a}n}PQb>%GST10ON)s|G${;CBps*1$1X zr^V(F1CJusdmDa_OK_Hf3k*DmSnq!p8MxHIbp~E-;8p`aXyA4O?=tW{10N>lh6U~= z10Of=NduoYFyA;JX11~jjwSiX|cn$GL+s+09Z!vI( zf%h7?+rYgBevMe~Io~qyDFdG~a6FE&4!tksGundP22M9{92%oqFo4x8+~M;SQHz*z<^Fz_4$ zFEVhcf$I#s+Q6;EZhH(oXyA4O?=tW{10Oc zR0Gd6@B#xbHE^|oR~dMXfj1aR0Gd6@B#xbHE^|oR~dMXfj1a4BTkoCIhz_c$0y*8F-I@4;c6e z@fbVbR}Fl^!2D*S=$tih%+P**h=E5LIL*LW1}-r090M;ha4GRvyKHp^UTxr313zfs zb_4G+@IC_{Ht!>d zDg&=E@CE~KF>r^0_Zqm{z`X{3&A@LN_>_Uq88{y22U1QxgD==^;B*7$8F;#Z=Nfp4 zfh!E$Xy7ITw;6bofwviWkAV*u_=tgDHSh@ozeAj6_r+NQ$Kaep_#p-!W#BXeXBoJ_ zz;g_|$iSrrt~2nZe79R(k{+li3*25(SGK&ga{00n`Qm5zgWF||6=n4$zS7eAlCnEi z_^SIq#VrOZmzS()Fh24ve83kdSyt9q(pXVn)=+_$u#bW9hQ_-3+PX0r7n|`dzoSn7 zoI9Mkm{PJ8%Nr_u^<|%=W54YEV!J3pKN;{<2Ub-38p}#n)Ri*er?>mXk{^rSfTGv? zmY3Gnl-%j7USVkIZ=CZb^nnWB@?~ZCTDW|JTr6nwXw{2l>dp1?uKJ5o+V8c$h?b9h zM`pwpMoB6M$R{i+VT~J%W{^@+qtd9^g?tG?Q62_>{nuPu} zzeiu&fO@0FYLG!$d2KxkuD(BW)k)G? z1J3_R4dzGWmGw{6H;dPwm-Jx&hwH_NtQi+e{>iG*pTK@ULO|X&GAU9Le$&WBlJHAM zE|P>_DRQwyUMF&qB>ZNPizMNBmLt;rD-BBniI?H9ND_Wm$VHOyYeO!Qgx?@?ktF=~kc%YYH-}s# z@ykm@E|P@bCt^q-vVN$rn>tSR%DDtx18}8hd$L)mXN?!8fULd3mi~ z5>_?xP}U#e;osgUUBZ7}X2b0?UP@OkONSERR)cbd_V1y)OE01QaxYPjzrVT^dv{!--sVfx zJM>TVSSGq7S`UG8k?Wf1{R|4YrNUe3pQ@+sNkhY&=N_Ggfvl6ifFa@nl5i*U>}S9D z>=5-S!=+nG-OENO_7(xB!iy7o(Ew&UuZBW~C?OQRQCiQdWxEjKbT#Z~gZ}0Sd)?r! zgBK_E_}c~I0xfXiVd4&8)`OQsC}TbNdpfgxjObe{koK3aKEmE!*c$^m?Om<)Xzzgt zdv4g<3tk+=%6%)s-fOVOXH97D8hGl_-tGu{e7+UuR{fsERv!{M~{$v3Fa9 zy_qxY^^f*u!;8Ju5%xM@?@BSI^%z|lVecI5jR8-4bKu1uf4^gvkI!UqT^1+h`_Bk_ z?xOyA$^H|2dm`+ehCO|YUYQho-;J<07xu1;Q0yuo?D!hZ(@YKEoc-z>&W`@ zcPnDANZXV3su|BDu>9g^n!Y|F-`AigADf`A5{%H^GOfq*T^4_#y={2ritQp!$~PE##06Tg0iAjdnD#2+ zrF^N{9)_H9bA}@ijTx})bU6`vi=lV9EmHqQZ&rj}E%eNFQuLNY=-m%JR3+?0uU6}2 zXvtRS2_{87`c=?F6NcR{pqCep_19y)wkM*55%xHcxa9jy=$Y-;_SOF5?;TK<_Io(O z-bb*vI!Ubc=ese&-f2t<>ajl>413I9`hr$gVRKc0iron;`{E(MSWd#{P=MCHEVK&? zrJdA+dm3!f!mh5-viO{wIML(P`pRXKYOi(ME<=Y5Y;6C}$;wia$r+RJx?RGh&Tq_^ zQ{-@nCD!??;c>%!lFA`NAy7oPG`#cvl$C?;sYmILGy`X>3GI$5K4N9;ZMMI#-U3aR z^WXWJxymH`54J-dEBIG_X}KdY_^t{)!M~``Yk!KqqtO1mdB?oq+lu!G|D?it`@8fV z&A~sa_(uDC=N+NoA5{EM@GTX-68yai-weK~!uNu|V|c|WkH_*Yze@^Z_5(ST%@b?& zdR)E{BvGzCRSHIW0*p=uB3<{836vQ06ql2eumA@fd{az6|FY$^~H!qwsM=Jj*A@V@&k;xfa=&jn}xXBrZ#ZG1X zcXBs5lb!L43foq+I=;Lwx(E|w(Y&@lv^v)Qz=;pO|5;@`+*;&0;$1xdXlC1-Bhg%A zJ7U|a?4Ekj*%5o(`A!U!RS&rmTez57ZEv+Yp5Np=7-N5*KKamCnmp|neUtrPX~TiqEnBr)j^JYx9=FFHj*KRqS`l)lBf!Y!6#jgK= zU9w|n^3DWT)NRh2qFlp^QmvGQ{#fgNXIIaOJ!|i6YHBP#a=xqQ3~+JY`Q(;CHL;k! zDdijEtljZlFPzxy*z?2#ZTq`kII}yRXk_u{&b#6}PxLhxSr|KNKK0&RH{D%??IQ;5 zF^=vxm@n3;v2i>mb^eN+8g{)^7!c4!4xUAhw(Tj!C`((8%UN`+uVZNNWu|L;u(y6* zYT6Cob{0ijg@Lry?_pIzs8m?QkSd_?#>1Cg*iguFK;VSt--~G1jAl zLOmzizkTn94UNSwoDcP!0WQuzpZru(O^oWydUWRCuIEqe+0L$f{><*dL?erH&$|Y9 z_V#T=SH=WiQ=K-&HKr%t>O9g{u+43+2fd5uX1a@T!K(AwKB&E<)E;rIDads95igzL0g@j--Fvh?kUY}vwD65ZacXyvAGmBUspEU$?q0^?)0HWzfk;tk?&A^l`Cm3 z^k3}je3;}mMc(a7YM<_iJJN>{+V(_B5th+JsK`+XhIn-M^wttvf^XA{of#$VtnU4uf$LYYa^BG1y!AXCsgEsoR%H@i> z&UsIiD=BWQm6ACx+S(o0_1uX)+wN^|Z!A7~zU#R&z{OL}C%-@FwrKV@C-_0bqR9j*2W12R$e8zS*+)|NTPEf6LYVU!ja>l#j?swi3H!%*ABg0B* z#lHI{CswgNGwv-YXe>T_9_tuzan||dKRF+bXJc)Cb1+7K*U$9i_}Q7=G4|y6!g*Ir z;VdkLuC{eUH&6c4=%r7&cMl34V=-HYZkl{@^o!2pv%#n~LCw{1boG02SR~qu_7omI zdoX76LCIsz7TmeV6~AuK zy5XVJ>a~ecaiguZBO4xd-s3zN6^A|9!OQMj**YlY&&4zQT89^(J-?^C+ckXYst4+p zHog&GIjtwbIy=}k`~$~}F$ZH;W=9oYZn;vfJ9X!MNvm8Hj+GB3toq#9QD+{GNohrk z-PfD)#(kSBrnM#i@wy{xzx`QEo&Qp$N^FV49e}9dX2uEw)jd&G@L`RMp6=7z{cvA? z62N%qinY=`#YaEtaa!rF zu4iZSII8AA`viCKv9pD-1;veLpUkHBo7W*v-~kdfPl>!i(DInTuIj`jFB>$*ly{@(ng+_I?TSFdm2T!p@L!nWJ+Bdio zM((t0gQ2GsB?dfb8b=GyAbMDUW-Uk?0XIlq8Y(Dzo+MLcoZ$H`HHMBiA&Hbb9 z7vr0KPwwwT@qSCA&7+@u$oav>(5R7{H_U5a7mEdZ>&lH$alh?LnO}rsNNDsf6oa)@ z``Xax-Ce2}`#bH8#?>)A-5Fadl`%r}S*Sh9Zl&v@COWt5eCAAF#xLAmAk}HgsJtik z4aQhk?L;%nS5#M9V;im;+u%eXrXu%fusb{RWb_+RsAuw*9mSKZ-~FTSnSb;hjI+(E z{nC~zpZR;=8<&AoL;s-(*0L#%)gN+cWCo?UrWfhLc5#*v*Y^A~XZ!5EpSsrc%=@q= zecRusNK+V#twnDVC+dgx#9IAc+p$pU4s6%$0u=^!^rukgte=!-r;%o-nMTTr{Mfsa z(b)sDTfOTuTcdZyABo@Oe0a;qt_e{cX?C4^k789(=SZ#*>Rc|`-u}4aXGKqpx2?lo z*JE4ue;>o)91Gum?c{K_kTu8RjBQuz##qO$d{6Y2wHpV8q91i7K0GqH`T8xMSVyRR zi|6`B+qX8^XRiHczL+Bi9WI<0&Gg!aTOD2T*6OpzZ{Jk-@Px#)c~5vgGdpurv};8B z=I$NQ8}56+E)nt!8_{)DhqTr2Jw9@zXV>HI2}62A&8eOzMmR$OPm81fMA>ek$YWc$ z-F%iSwkEdcbJ&sKJ(1&{KjXUM_GfT*9A&pq+XU`HQWm;;aa4%2PlxVt_U;FMhwXy% zz9H7!=Qf<^9g0ms@9CfJv}YLf9XN`pwPSZwdV+m5W1_QWP+KALDIWeoN3<)-o@$lR zx5lt>c@F?}JM?T?*Rx}!;q@__<%jHzShbi$*=?s~;dB{Y&!+zi>DUJ750{G<17>=p zKX6z_f84sS@P`wIvOiq2Gt=Xu={9jGqX{7J`H_|_8q<`|?NdFZh{a5~t z^ox!3i_P?U&Z)J4ZP#`*l)4QA_ybOY!oW7_sy3GKROr!zG|kZ*g=x~ePfcqq5g11H zAo}g|eLTo=TyyQ}pU+(^`@qsLz+`lpBRx43Z!D= zhgphzjwA1^^&X^;fN1d*CT*|?fEx*i<&GXDkOv%jmxMC;9O6#h& z>PWmvH?1o^FKS)lI?rwK6XUT=-8u~Wj2Qb^wEApbbbH#?;s?(6r-k)@$>FS2z4MLX z|JM%f+cD4EzAN}k4ycf4)D&;<7dCVUU$Maz_C`PCxzaul3VEu7KclG2lOFP16YRCs zCfaAqA})-Wb@w5{e}6Rn`y)t=4Og_j0pPb6{EqtI2^I*IS4)0J$UeP5BfO#bL-w`V zkSEc;>KyV6vrjcbo+SHnOvrP&KD~U!KE3RC(;j}<6t!<{?{KDM+C#6}enaM; zWZWftUx^RC$ZSHXR}|uqp{~z_Qm+giwaKgW&`Wje5tr(*M_ed%Z16eiFpq7_W4b-$ znp4w5sgu@b{Yj6v)QR>*n~wKn&qA zh27D`6Z$&5HlrrAVnUu7-p581K2~5i>J;zn!j5R~v--l<4G;Vc_l{IkVhE@ijILML zzd8=tP1^BF@ENukx>ZePG^IMj4|#^zZOgHtXY`daov*U5i-kOHnbf0YQhV&nVyYQ!;CF0$&j z$nv6aEj)JhSsc#NQg4gSi*~opFV5@>Z9SQiCnriO_=nyc{fEAm6sscf z;Go@6Z^XP9dm_&2{9PZevt(>_+k5EaBSYh_l6BR)>?&N8!F5S>tx{d7Nq+m|&i~SU;$F8kd2 z6Y9q6;A#t54iS*Jp6kEINGV za1XDjsB^K2gH&Ie=ZUT>j`;V@!*(M5vu_@nUGTwWci zS#|Z5we^*acUcW}C1G3_Xb4zkzB()1tN5MW6iffKr?M13(yJ`5EUUL_@DsJtYW#w4 zdFjf^(#DFCidy_ql<;z2Tm4(Y+CW2{ z)lgYevV292RknOtPpns#%P~A`E%IY%T&7ww#R;{E(OQDPOKn|Fhm*#l{F2OsBm@J za^JEt3qPCnp{*KLl$TeoDyi``1}ZdX)#0vi*@(sH$Fn}JK*{5!KdMW3jbU9zry#y59Rs8|3SxdC3=>G{)7?9z=o>IWbDk@Lw^QO;AFN^+@?ViW@=DxGaRiq!-qYjoW%l9F zgZn(eQZnbJbY}Fq=CE`=#^0F&>m@|R>qmCfyM_gCV+7<9hCAx>n|q$eJ;_v-X_3+! zsp?ittg1Ao;6; zIf(KCL;i)Zd_v22`Z_Jjrx^0Qu>6{qhxJ{64Z~XSB@e>+GcbjFP`? zaiqLY9P$q>!pMxl*m{rgo1DEG&5KLt9QZbq{Z`42Vz2!hCG*FP?XwQXLGo+H zYn(_|AADWO>MNUDuITG*Wx8LgbjNUp@~V<;j2ljy&6K^QWuf5Dl`IrDgtFC?{Zz^J z%2o%;1G%9PM+0t6Bhati#|HfIbNmY2Sh$B zxZjo!EBd>V2bBCNktYTB+VZ5LKP&kXCEp|R%Y#qa^2>{UujC6^vYq764zC1v5Y2ie z?l^>Aq!~}l|4_L@4QxJ+p6Rv zmHet;i!HyZ=gIR{=jBY_Oy-@%M;xx_yuBai{vf91LA2$;n9!lp;A+b99A1CBYna!6 zxTn$T9LzK;Rhmb_X`)-!;<&vvX=ez}!QEje^1Kq8e~8I4;+CPTE~dMkqT?eEZ5`4T zYI-B)=%M{x$fjrrl9ZqA>D#61Dj!@~UxtdoovFOJD`q{rs|AS!MNCtsImG){lhc^&gc%6mt~ z6{Dd?A91A2&&b?^rVjbt^ZcW+rbGv)Qv*-&-P@CCbslF~3dr2%EZ*-@wo*eL&!P5K z82h|3Hl?Q!x%)k-A-|_PXJ}Psd*&XjJTbv6o!95Bl&X2Nt%9EJ`u3*hpNPV9Fe;~s zlw%c3XBY~&kti-W!A{gO(N47Vad&W>l3%|@$;W6p9`2w~%H5=%niAFHrnM^>OF0^9 z|K`rExG9*zsMnLqH7pf{8o_wa)ff|xvu>9&dfXl}V}rvOEA)@;84dY&DE}-O%z^iU zml4f+FD`}Sar4Jqh@7^NmmlKoltYS!o!=ePvgwtG z^s%MsV^^g2-}~fN54S@so=4I}?oU5$Uy4zqo^9j)RQ96W&+>WZ$UQ0dpt83#_oCbj z%YO7NVD4+peJS_5+?(?L3-_nuFrxpjcHH;jxtUHp2^FoM#+uUMiHouL7*w=<{i*mE zE^tTNSDxa&g~sXpPs;YIBkLo$v=~Yq*K&r(f;RH%0&?%-j>4Ar$hDGFmyM4fgRUp_ zie5i%ORQ!i?@R26vM(yN@WU0IU#G79JeF;DOv~?R<1X^*vT(1>k8k-k`9|{Ul9A@q zT7F5smi%T_zPnZVu5S5xU+3*)ziqG+;*R!pmXqCJ)a9C%!?e-AlfB1Te0PE>dU~?= z^t|?a_AKPH7itH~r;-1@crkC3Vt&HCJiX8T?e5}n*2~xTHK$H|=1YB5t#8I#xP9ou zm8!d#&nDkPvu}BLN>t0|9nGnec6ypx+Bd}~=f|}0L9mx|`rPk#7pGY-XZJl**mv-= z>%O$v_rWxzRr}S}FKzOjo%Yb|8_yv9HIAJg^%TzigEn-upLCXA)}2z03$tsViYj`e zuP2pF-05Zg)YeqD(X}mYtlvcPYF~=Jn%9!d_P?6k0@W6aJNzv}$&Dqa_N2Xw)9T~K z(WZx-+LQK9>DbsZ$kBNfnOQ33l#Wnbw4*bH%nWU-t3@3jhm)ITb7_a-I4L`ak-JXo zz0z`;+-J$AS zl8fE|caFy=wI5}_#^QjS{QF<|(W&J_vAlYyj85JE%c`o|oOovb<(JOS&FStP{_@Yy zH+zOZ^X~bkwe2V4apNjBID)zlJ>t#9+I+;?xiDpAvuDKG+}@VwnD<-EXNbz%9)nl5 z9JD%5kX1X;UYortZlBfpYqEo=`_5vo=Wy~bUi5m}lN(-~l9`eTNt7*GQH0_xPbqIQdFiY?aUpb^+Qk0D^`WM_>zfaiUgu1Ip=U6j zgWPyM9zc9;(Bi!>#%KJfdv`PkYVZx}bCB-LOew!{UUo%!uD4pg!92IJ z+-i4;WA2nV|0}VD<1&)>{|M1(d}yb0{FJD;t1YzmLKq*PeV}Ko)p-*${-(}&XB;***drtdI>H%$LuWkYiK?o5 zm~pem)BT5`i{E`Y>3q|>d+Kt!i^p0oC!XKf{>?}Jd-KqZm#ujw|NLghdz0K4LxX~K zO#aZ@QMvoC*|{=hVY4T7ZT5i{9;iDr)MmAk3dM^bQ>*XTV7Z;$MD^SVt`Vnsaf`e) z@xm+e;Pbq$7xuCZE_j6c^*qa2{-#kU!Ej!h0;fIgrsdeMbzh z+3xV_M@x9Ezr(ApzV92^>dZ~K@=@pR_~Mbc`W_djFTQ*2i~9II2bQ9dw&yZ|wv`dEz-_GP?iLPyhRX-}+da|(UC$7fAs(ja&!m2M7RxK=SZ}LBuURbrL zx&4UiwCi$z)j@w%eRI`(S6p-Z-oh%MYe8YvZOv5+I*<3=I{Vhe^Q!jGtNQV+JLgqR z^;cc*uiE0Ty47E`B=lJCs5$MSCi_ld=PP}o$4=P9Yiy#8kDc!PS>Gd}&5lEOL`^;K zR`^O(=h41Vb3%vX?VDJ*&lfs8XJ7o05l=VnOKZ)0`oVSEumN~sjiUA{>eY2`;ZD>G zhZS|2R9ETH=F&vmdpcA)glt#ouzhKVN|R>hZF0<-^7Mql_Ng2FKPdG7aGw9^dHw_Q z{5^jEua^yX);;02Z$0g3ZrjSis~*x0`4gu;>-GOs-#<~mi=AeD>EphdsQPw?r`>8D zyQTF=c1P^TgZ>ipM)bir4!S9hotf>^yW2f{R%_mKqt<@=wIcq`sQ)Gm??DX0(?NC1 zPBoRc?~B8+Q$1(awlihrlHz3#|9O#ESaZG!rr4%OJ=&F9?o-*KG*lsx}j}<-_X&GNqS_8E5S9g`@0X|$* z&|quo>kp4iNLh%|e*2l#A7Xl@ys>Hcv0va}swgz&iNV%GRaW`PSUjAM`xTSl>YH2M zol)LCv)naoNaoPo2V;1;R_*nC6_4e6{a@9SgVPh2QPlTaSwQZ`8UG?9aNI74&Xqb& z9pPjT&+uA!I?B0+B==Q#I>x!bXF74hQC}QxRMb}EZHx81!fpBLO8C-4%fCzorIign ze|4GSN@~l?)xCsrUjtrOSms;NSYg%TrJfCe68jbcF6D!&yFJh_dGbJ1O>OB47*kp* zVMBFEpt24x|7@^$(}YG#dBL5yu5vkUNi_0?LUjplRam9C;$Bvd)b&0@Y8xj{#>4#6 zu2(;koO{!ab1KWr)SEUh7R^&-T_EoWjZ8d$+5)`iuy#eG#p;!m-i2Ejc%>rm-~?({ zEN{ep9^OacD;!l^#mZLIRpOP6XtNUDi=cu*sTW7u%H@^SsD!$y(qQRGJ#MjBw1?X- zB@KA}BAUIjp_Z@EwAkbg4YdK>w^>=@3*2s1E=PLY9K4-(dn(G*-5FmX08p~LtdW9} z#=GjutYx(&7pNlsX=+HzBzTGCin5Yr^|dSN`lHHToj(ABB{h>R^mMHn4lC=BXL+Ec zwCv83x|O^m6J{z(>Q?x9YsX~JV;4{=8GF^f>4O`dxcL>h9dG)y>b!L&C=MH?a=9Ofr8i3;^tkcWxqa@nXng>9B=%rlhQ@V;4lX7ClE z<-EmKU5QtqRxYn>ti+)0XYApyqFzy!iXjQ#`HE8E?V9S=Tv?zIq6*%C!wj@*4GojS zP{IAM(z0sbT~=dhHHVy@Ah=D}SYKOh)i$gsDXpxxR@SbphLOhl%4N&c^g{DCl=?pl2Rto`oYYMDWGn1^ZzhLw2#t!7zGV|WeVtxZfvd$ADp2Hg5nw;XHh z(7^YlmLU?mz|Zs+NdA^{JY>SSpY}{V#z^qlWgF z(h*Kv{4m^B@>gSysF7vIS5{OumZ^A6Sq%zReOC#eBfxFS##(i!ls$zN+#W}InAiC# z>sMCd9m;yDbHb}G`QbWzWUrGf6@N675n6Ozp%SnoP8n}pF*SE9O&!eZStJaCDM zZ6h324@THqqVj6rvIeWHzK+jwl<+v~!=&M%3QMP&?B(^oWqcq&nPF`u%m6g@=NLf?43JXx63_o1qL|jp} zJa88_4J6gX#Dfpqj+K?xEVKAey&QabS+!bI>l$yz(nd2}VKLjVE;Qbrp*c10HP**3 zKZ;oz;BL;|RA524@bHU9(k~{j!_uP`biHDhax2ro)y-Z{YFEl8f{1I9MZh8%EoZ+c z8?DKseuWQDxp4D?#gr|Kg|q=fS2tEz6>X^+TOX&n%2|zA+8c0?<$`SQQ0=4q?coKz z49k~ptSt3ndDSnfdZk#VSzoN+wT)O$xb3a?tz=R9pW#6vVj-i^!4`)Bi6SP`w%f zq4~Q6TDbz8q~j$P(|HjQ8L!iu?hA;}7V}Cs1;Af|7gk(P-{jUnSVOtP&y2Wo(xyD7&_hI3(95!VIcoqyYsUN>JYr01b z*%DwnQTd)BYtk}X1J9}%vNaL19~!c@2wArw<9B1}BtL$K8y8cQlnW?WSg{1Z1Q`tQui%dW~a6dh^#$AmH^{YmW~M7XhXIwLdN%licNm=mQKpT@65_t zULmBdV&ND2VOe#Atkkes7a_ybHsSmlBV_j*vON*ye9VyTjgaj#Wc*gI>G-~28S{Kc zv*~_i$X>cY7GwP{!{)0O$Z#LnkiDj5VHGr{v?sp_Y`S5F>_kMmv4-reh;%uIEIf#` z;p+`q49aD?#fB_CLblA1oznS9cgVYcIp;^{bRzpE(n))cy1-_X^^jrHeSyrfwi>cA z5jHywSz3hbCx$FN!sf3GS%#KL)15SA{6;dJ)Zt@8R&jwW-WrUD4IozQ9lxPWC+R+C z$m$|w*@kS9olK{5TSbuF4F6?#ac%(aXV{i>ZuKAU>eF_%={N(){|?BQW+1onQ)Kud zv#QfT>G-}|)^{McIq-ALX$llYk^Z{faX<5bqvUuDi za-$4c1IRAdvb+cxqgQL$)Cd`?!*6W65f%&}o1_ zJJRv@4{neb?6tL0P}{s+!E73Cd0I~;lS>{H_7~QO8iy~wYS^PG+8{v`xWV^I%=>W1HXj$n1vY*2q*UupX z$euwu$`%YDdqLZb-1|b^dR@yR_r8?Z)sV_0J1ZXvHvy=AdAChgR)%%$cAZI2MZSAo=2SN;$@?0$a#=-BYxQ61oC%F zlpPVm2zf2a4euJj=2f~ZLk5uXemToB1U}NG>U8M?r1L`NMuK-7k*V-41fA~O0J1|+ zXMSS_kj>KRDh80)YgWyr)tm6qihGJy?{xsk3w2w-t{>vYo%nZR#C z_DSx3oz5-FP?WN4(z2O`EHBZP;@JyThXsaA((Tr=IRnU^*0Q-;hG_V`et2k2+1zEM zlXAbRWqS;nz>``Qd5+AqvWGq(%3=`VX`QaykO_2Rps|lm3Sp)LN7*|A$atS=|2Mw9njKxb{S@%tb42M1ClC^A$A(M0? zwQQduo2t|CdbS(*fFaW&ORnv88?w1t=+QP08!~B^Of5TN$Z$AOZjP26H)K-IC6Em? zc2&X~uD^bYJ1tOO+tAQhTU$Nx<{R92PGI6>?I|fh4?y(vM6s0GX|{}I zXIi!id8TE)xRj#u9gUEVGGewN%ft61QCuJk|@8&fbX=#5RyyUe2m~NoF zq%I6I;hE-(@T?#83*e<*Gl1#H6SEJP*DQFtf$XdPO0#v@MzrgOm%hu@9Mf_xvoC3L zKD?BHZ;X@_25I@%OBP@iT%$n>o51o$X;zYdwU6rO#+ytcwiIUfh+ zy=?M(;iX@m2Bu?L;&JfQ`7L}DJo(?jkB288kIW_QXIKz&@Wi5%1WKTl zy85aqO`P-0&R3Y!|K@bZisiG4O1wrSNp*m%{TIWAa>MxV95N1TTHM8Cb^N zcY$e}X?Mfp?R8535JEcg#G?NyNjUPvqW>q7aO8=Z7xR4wUi$rSz;x6hmN{~UBpi8S zj%}9dBX~OU;$#eDfpDbR>m1vHZN=jXpPyjb`{C)BmRQ=VlO!B@Vzw>I`6B#qjo(5@ zM;&7J1$EBCGavFFz)RgP11W9GpLR)G@pob@3-$TTfbh8npARf{ZUz=RUjmjjf!Ad4 zr|gs&Jgd6U*2bXYf!{PR0hy<4Cj1#qrO)5e<)x z8NhVRgILB!B}q8)#4w2m-Sp|W;*|paNxM;p$r!R;tiwvPSa zqfKIITh3ED^2E}QoTn@=dA145%Y2i7Kdr)+XQik$<%JT5TbBUFH+9b(~MHF#pCrT>+|BdVPA7yE)@hV;~* z2~XS1Yc9OB`9fgoQdSHv>sSTwIC$!R3!XNpvjJX?K~DnHktde^Jx&siyf`VF%vpx? zw3`7h<;e!7V_IU_BTWS!4bSr2X7HuJvS(`mmNoEBU}=AjJv!PXmOgrbBpi9-7%y;5Cgw`zX5$?yeSbY6_I>mtF=@1V*{-6hZ2P?Z^o_UwDlu)L zuI9kkh)JWxOmP&GlILj?+r)Wy&*w%oVdgXxn^c@6QEd(rE2WV?)nT`o4P!W~DRvFOr8gT%zpPwMNru1IGpF zOmXN(;?yg9n@_hc=LGzeq%+08R37|{NfLh8k2{V761pD~w12GodWyX41Ih`?)Wva0 zA|{MR%qnI27rt8A_uVz(KQX;cC5d(6nacQ?=diPshOjZGVk6 zZk#fG;A4Yx2x+u!=bA#FQeL3Uy74&mu|^+q?j=6lr98>_E|tDtR*0zwPrtH{nLiVg zcn+>m#`9_AamJrfNgA!4>HMkZC@)cFo&5RA<8Xc^{r_=JKA(@Jf9Nycmla~xsj_ma z$}5yfqxEe(j(nYI@_N1Type+F;iO|wD-pxvP{*aptk1qCp}}V<)1K3fRj-%xB#CuB zovB{7llAlQyyQD)tx%C5gl?60ZUh-o*T0c8^Fdh)(S^ZGc~6RXlpJO^{$A*S+ z2)Y(i@@;3F5R;NLS{t@XCj=$Wx>^BgV(BTSY+VGt65(Rp>KBWWk^t$E*mlweA%3)BC^{JWsT%#YE(D;}>B z|M$hrsnGvRtiPoHRzUmEFP7Q$3NdX(zn&mU#DT9>iOzfLv=N>Ef2dH2{@LJ%U4J_0 zuf&f`4qAKl70!GgdgVog}+hkahk*xrr#9&uY`LV}Q?Bd)p?9y{?&@K$M6HyZ;Shuj`FLzb)vu2mQ~*B;vpx=aWH) zz22{g83y>j7W97&`VWHshoBef!1Op5i#^UIVz2jAVsHPegZ{Rl-z4@pcZxmE-D36w z`LD#@ZyUva-u}GU~{@$Q(4EkS->s1f+{^rb<6SJ3&tN)p=$dwl+I`0oz>wZZ=(akbW+s{DkQ#CE~@xLVS8i@A4< z=T~CimS2m#&r2D=N~{aJp1*d_(DTHZCy%%JE#hlT|G3!W-!GnJ`oD-t#D_WU6X$^V z6~?8yX8F1=6kl!njbak(!oKcX#8*fo&OKsZca_-JeNs$fUD((CN3qv?TPw&XZ z=U+d(AR1rryFBi1$vyw3-13`q%Wugozb&^sKezn$-10ke%kRuB-<(@+%`La*mOFFH zi*n1|x#e4P%RRYeM%!>2pYGbmWk%g_8edp8ydWB1Se{$HBe#54Zu#!q@_Ta2@69dW zlUrVuTV9=8UXxq?KyH~MXE=>7+&jD=8edqOTmEovd0lS#zTEQq-15hA%Nugb59F3N z=9WK^TOQ0UKbTwIlv{o%x4b#G{BUl0OK$mdx#iF2mj5od{Ds`|7jw&B$}N96xBOUc z`SINH6S?KD=9YKnmY>Wme?7PS_qpY#a?87O%iqW?@5wEHE4REixBN_Qd0%e%UvkUO z=9d3gZuz^pvc~o zPxl3tEWbLpJU6!-&#?I88IR?7#$h?00a*UHvL}|~5yNsE!7T4`vr3l#Iky~pgy(;m zdp>pu&%cO^y(N|}&MjY=Tb`9$eqC<)?YZT}xn<^to~V!iwfDsGhjYt+om-Co!;1g$ z-1FbaEps2k6MjBRSE90Cd6Ihj-)*@rEpILy(=unVhgD9}r$NV$(}E?|=iWxI%E{^Z zErm<$dFES_^vSqtEpHWXPS1b7!2Jx;A1hDNr%3&My-8{L3x#*;dD?S*TK;08$ChWO zNg{SO! zJZ#T?E%TniFSNp>!q*Ew5f7^EOU`Ebslsn^{VeNritYJgDU|@dwkg&S$slr#baSy=@I$^)qKS*)iA>r+h044Gpz3XVliUxw)>PVP->horkLK?3meAt?$}Qk!Lh@)GwOR<&9j_ z&@rQ?t;rkNRM*+iRy)I=o!M5`wrEk4H?pRtwxgk|&YRIxtwt@X_h;3{hK~9f-p^fK z4RsxhW>y#UC7XTvPGsB8y1I_0ni{X5qp?vfSmZmSaZywIqRvKtwsvN9?V_3W>XfeA zm+OnN+xnL33%k>1G&C)0>#A?`{%UM!t81vK@%_{_qoby}afbIueS3BLjK(f+S!3tS zhK|N|ue77Hwzj6Orp6=d>CT24f3`uRr?a-pLp9XZ*48(5_%_d&+0j;0-{!+*QF~ic zO+%OWX0^JYPQC42KeMi;t-Z-3ceOQDcQy{Sxv`_*KKHOo6*@`<8AJ3zpZmo z?ZV~VZQjnBMO}4mb#=a*YiG1~X%$~=?`mk8Ib&$FEt=U>SKrX#?X1%-ZffiBmegrn zHr6-#x;6Dp4Kq4tdS}+o=xSx|@Su@kSX-0i@M`K5g z4?1paB00FGsNib_&ZTUK&DMJK_frn6ks z&SQ2@&d*oZXt~sM&KK^vL5v3tb`R$u_q@qGXs~-|n|pXAMjSNQJ)CokI`p7K^?13nR(D)_s~b~dAE7cVE0sr-LqOuU1+d-D#h-(SBwV@c25-^ zYyW-bL4$p}rr}{jl^#$g4jSxn*x~MZ&^&0cd+LJcVe_ED?&134aUL-b8tk65-+8c9 zWXw1#*9E;r#l^`@i2?w@5k{)x&( zU3yTOtxSA0xYYEyroTmHv9fQAaEQ}(>AHTSw6tAf64y%qZmqOk((~JOnR(bQ*xSke zW8M6Au|Lq+F4+CA4F0%X*O-n5`*z)6`kPdyKGB8#dh?VUYjLQ5UMxl@!5-&AF?zGg z)IW;^N{mr-G`Q4sUI(CGtCDRlxmBX{9oCp~0o5 zf57wyR1O$#p;Y#I*P4z7d%dhfO#Gh+JXu_1`}$L+qrpA~{>JosRZda%x;|$*8tip# zH+`o{_D9hKJy`Ow@hUBs^G1|X>MLAN9&epx#(6sD7{&kbO@a~y9yGYr^mm#55T&w@ zx4TS7gMGZMGM)CPePMOoYdRY2ZAkrZSlpa?`uP`n( z{p+UFpOwl*b~|#9>1c4N>Cc${1C>?EJ|4bfIvVWb;U}i^ztR5@c$(P9-ci%hU>|$G zF`adPAGliV`)iz@W4q8`@2k4t;rBrCpuz4b#xp?=mQEU=|7M* zVth&;b$m)68lT3~sLRfcj7j!28hq0DG=CbO#*D?2#;0_&(~eJh^5Zj&nHOqBCB|Hl zG0V>kF>xaHee81_$+ibi;zsa$IOK9zR|evfgh%8AN; zd<~e62K({#VbfC|h~1yAiK@3;8tnc}=BIDc`MFb|l;+a%qoujD>D#qT`=3<#lrimp zIxxq>N#{)Y(c(GtfcZIJ{%hbL8FN1~jjc8CM0a3|tX7wZZ&pyNua>kCXb- zboQU?j1TAHz``LtUB49I=Q?+NPI|fc3o8G~SVcNM(K){zGM#w8HhxYzV=H-7mTDPB zKhKzURTvZJQe)ZDIm_eoy#z4Z$GuwD-)Kx9v<1D(n0~q==zK2$>sCnrV9-BgOn?8+ zpnuw!ee$KC^SuPbVZZTtGjGo`#?{gf1^w5?e<8hWT;`vulFyZ~Zl%gU30x6w?_ybAta0)6rn} zSDVh5nj8FAnT`g#f41q2wU*$2tLbR4`xltb7@QaUx0;RyyT8|T#^(Is=XcH7zi6=g z`Coo?#_WRNzt40u*!>$!XDqh{|HG!E!S3H`I%B*u_@6W#4R-%-(;55S!T+r3Xt4Xg zZ~9@C&lxj5e;K%kIPH2+`km=$u+K{icD(Q%9^(R^W6b9?%d}3>c|^(PYR<)4cIG+f zYsBS~^f_6Ti;S6n{kgG<_%! zn3pQ$%6<%T{-SMYuRp9p< z->R}$xoDgol+yhT`O#qiy__^or0boK}9PEt9+m~EFd)K1=C#e)WW8`3di+g@oNG}yPD*QKnx zP5P^id4I9lnDZ{nc=(Q%`Nl0O-x+wN@oJTPb`d|-T)Oq?AmIaYnYe9m+<*tfSLcvy#Z(O~z)<1t-R{b zEh-louTz=EYKK6Hrm!v=?C&*96c;VigVMW|@u0z_rmLF@Mb_qZ=0StK%^x$pTV)!1 zG(>4onV4v>zb@WvI{vhOZx<*%s*E2E_Sfv`8YjI)+TWW8u2A;(Q@&+78tmIxi++Cg z8O&beYL)3+A^jubb-^PX+TM#zM}vKPuP}Y4$}0n>>!V__&znrAuC(8m3zV)>rafqI zsp;35j{l9u?^MbD_Wqw|IvVWlN#{w$?3C7Ko;y{hF|b6Sl*WcUXt1Aqd7AcoK;=Yb zzo(JLgLJes9#~1KUl~7jrLoa2P#RE1M}z&C5)R$x915tzZ5AB zDfP2-G`LhcV=48C)mx`!)0BPrSE@|=!j3yaqocvz&a{uDKOyZN z^VF$a9k^WV_ryMKIvVW9*P!XF`*~wx{+;ocRBkiIqbi5q>v_s_G`N&Whf+GOji1#r z?MH*%BPcV}=4c8tnJ|Dop1XO8tMQKq>80`O(roHJx)Zahg@8 zebFvZYE(u?gMIv@m={V=O6@Ubxybl3aXA~Mbh$E&mp+2$sC<<%@hXfNS1&bYz0@9S z=XBH2;8N3BhnP32Ok=}z#vwWy?0)KY|LcrfRHkjQKG$NQ=pr7o&-j&JoN<*3nEpuT zH!L=_GJZ7J&u?kJzfXeF5@kGSaH;7WkN%!My95s!?C0=uJa_0pX^k=-G}y0e z^b7jOR5IU!t5i-_F0yt$U^*J??GzS@rv**^1#;lV1$Hru(>1eRGKlOuo(!4@(&|vonPi_M{S&8h9}kR6^eUCq;m47tGD$~+Pa0!(&Y6hE z20!fA$24b?uG3E8QuDw}0n0f-DP5rqv$}@S5T`b*l%SN_EDu_0v+3t++1E|&l!tz+ zG+kYh)m1N0O7X>NlPThI>GZ>S zuvVm9DUO))?rTk7uCm8?h04^Q@(gXGxI%i`E^)b-DnQ^ zQd)WsQ9En;I4vmonA{>RXD2GbJ|~Yv1?)jd1&|vpW#&fG4lzyU2U1+d>7Kkz9agLe?4fZ${V)y)3 zOdK@WJ@l!2#ua5AG}t{H|L#fe(I^fY?4D`ClkN-4g9f{&8jo#Ph1G=y`*v{*x@Ves z&|vpym==o0>p^LzdC*{fXMC2J?4GO4g9f{&Ie2a`4;t*A*?4TMruRU#U1;e&P}AoG zPrJoIgMHiQ2G4EgL4)1X5T-9yHiJ^Mfbd_g0(HVD~Htp1-g-Xs~-) z@!03tlRerO&v*gb24C%ylxy3k5VF9 z8uK3XM%Mi^Jt)1(bTqis^g%6q{Oinv27CM;Xu14V+5bXb%l3-jqLSoe=`Jxk3HJ6E zi+xPqBgTUU`^put|(M6r85ZXPt)J>|jkKh1*%yJs>U zJB~hM9yHk7GX;;eXRCS8V2@KFcF&i^v>6R{Po>yBPm1xN!S1OFo^P554R+78;Q43s zpuz5`#$(&{J@cT!zFl>AY`cDH9yHkF{Fmv6R5mKR|97UN!S0_GJZIbZL4)1X96Y?Q zNk5>$?wK7t7n%nRcF&yPsWcB7?4G&7bESFEVE42HPrZ52VE4=mo-x@r(mp6=jTVIDNtJw3tGZyq$*Jzvyv z`Kz-r`wzzZRFaC;WaVQj@Q~nA)6 z4l1Lg!G3?TOzfUti1DDo?)kOp cKeA0N9A1#jO^57XqpU8s-d!I}Wo(bkbgWWSF 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 z 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

fnQO?hM;n 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 Lq)9WetoZ){Vb>sc literal 0 HcmV?d00001 diff --git a/lib/MorseWlan/library.json b/lib/MorseWlan/library.json new file mode 100644 index 000000000..3496e92b6 --- /dev/null +++ b/lib/MorseWlan/library.json @@ -0,0 +1,14 @@ +{ + "name": "MorseWlan", + "version": "0.1.0", + "description": "Morse Micro mm-iot-esp32 SDK vendored for Meshtastic HaLow transport. Static morselib (Apache-2.0) + open-source shims.", + "frameworks": ["arduino", "espidf"], + "platforms": ["espressif32"], + "build": { + "srcDir": "src", + "srcFilter": ["+<*.c>"], + "includeDir": "include", + "libArchive": false, + "extraScript": "extra_script.py" + } +} diff --git a/lib/MorseWlan/src/bcf_aw_hm593.mbin.o b/lib/MorseWlan/src/bcf_aw_hm593.mbin.o new file mode 100644 index 0000000000000000000000000000000000000000..b27b7b463922dc077ce99f55461602116226d79b GIT binary patch literal 1156 zcmb<-^>JflWMqH=Mus>B1doAX4>Lr@1Wai#urjbPFf_0*`1(3IGc=koyx+I>-t@e> zooo#33@RWsEPOzMiNza8GO~mMNmdpn79Kt}7CxW^2a703ys?5YG?;-wZu1i144`E| zw%$pW1W7)IQ!E@n`7;OvOw2yqEj zgt*U1UWRi}^(JQ#Y?+G)Hp^86d(Q(9`#%tzWLfeA!R~p1V3)i>uwy?h28 zaC_(QgV+!=TZ9qp9B~BOMjoMFMH#`?I1e%t;@=7kzZVrni8K{TwrVzUzD1Ynpm6~pPOG) zoSK$dlv|!ylo}5-C_S~LI6f&cFAZ#bJjj~F^7xEgQ%mFcT%d*V#hF#93=De3mANH} zNkF=!2tsGTSVj3Mi6x0>{=>(W21u6$+^cwxS|^?ym`C6WQGw>%}g5 z6ztK1M~{kEPu@hS+N6NRi+)J!bo7S4Z$=xsPs_||Vl<)Iu{gg)|@{$m|f&E#sOrr68e zaTVK*8jP9_;ikG&sp{O)mUy}DxQ5OR=Ta`qZKG-^j=`8H zHM5K0Jo5F0<06vvcwL)4IDEg9k35Gzz^&DUuL8OHaQDqvWJh%NC)iW z95D27I?9Z6z-B%JXN${Q%t!|;_a33}WdfTN3(-^@rSB9#`ZQ_d~Q-290A zlxm>6W%8EYo9yjK_Sk(^x*Pb)+4ZBge=+K2D}`fK$o{)J|NaSP-j-&uWVoBs^9|Rp z1*&8r44Ui3RZBYgby+BTzOtn9*3v2Is#RrpN;+lNQ+CmHHVjuu+Gs`jo-~b;9c(Z8 z7{^YgyHiQ&(0S4;eo;We+jM-xBazjAo3M8Nv)YEb q9OmN`7$)05lXK{mAx85JO=jWPr{GTLkPY{HOS(2MLKo=#Pu??1_<6(t literal 0 HcmV?d00001 diff --git a/lib/MorseWlan/src/bcf_mf08251.mbin.o b/lib/MorseWlan/src/bcf_mf08251.mbin.o new file mode 100644 index 0000000000000000000000000000000000000000..4e9f883e90ee410b9bbd10b0cc3a4c23482ef8c2 GIT binary patch literal 740 zcmaKqK}#D!6vzLYOkzr*#6T~t2a6SYiqWKWJqT4vtuYZXgo22}Zgy4!ZX&xYCW37P zz4hQ%=urgm)Kft}fFPa=6?*GI2))!}eQ(WT0^-2z`@i3N`)1zEe99N!X_|&`XjsFY z2Mk4SBe}r5LJR`D@%t!}pei67_{q=(x>3|iMfWqFzDKpXmTUe$# z=YME(0O^1&t^j9^(J5x616G~`4lfSAG9w+ZN*Vb1t(XO^TBq-G(yko^~Z{@?#FtF|<2b;E5*&o^AZ7pS_0FlcVq zHZAE?x8+8|^OYr)x0RicuG&+O7i9Ud!Q1x?LHOoTM2vTKfA}!m&07Az+19W hnw-Ozm!$cKCbMufDflsT$cFU>N%!Xcqrk{Lc{h*Pc69&% literal 0 HcmV?d00001 diff --git a/lib/MorseWlan/src/bcf_mf08551.mbin.o b/lib/MorseWlan/src/bcf_mf08551.mbin.o new file mode 100644 index 0000000000000000000000000000000000000000..4ef7c9675c6eb6212563d24db85dca11de36fb08 GIT binary patch literal 744 zcmaKqyGsK>5XQfYml#1L21L+C(Lxkrq7frl_#nO&A1G+ya+llFfS1VKi729`5v=?N zEG%s-ENm2Q&qKB1zA* zAqW*XR53k0G>k$L?>86Ecc1q!AylH3bJQC81k^E>DgvQUPz~2aqaigK1;T0_aitK! z;3Dww_Vh?D>lm{%vD4k#6=tM8Ha-Jf9XBunX^&0J0?p_3v=M-`$0p~2_QuXzW~4nf zLzT|1UyqoP_SnKGa2L$SnUVI`;sS6v*TEYH=~$ppjiJHusr0f~N^}7gw6|o&FjMhV zQ@q#gGrAMN31^p&(sPT@DN@4-7a{x2W&Xz(^o%L=Y)-RxgyU+qTMA^(fFIPivKxl5 zGFxIj@3_(s(%J0p61Losnj?jkw;gF_ZEIVzrJzD<(shKc``#vcgXtnYDt&oeNv$1kGyXMrgY%| literal 0 HcmV?d00001 diff --git a/lib/MorseWlan/src/bcf_mf08651_us.mbin.o b/lib/MorseWlan/src/bcf_mf08651_us.mbin.o new file mode 100644 index 0000000000000000000000000000000000000000..3d6d3f674826bbc705d2baeb2e355ff1aefd1bfa GIT binary patch literal 1224 zcmchXO=uHA6vy9YCr!nCw0@w{iWU_Gr8F_x9!jyb^#jtARuqckZg$oNvWe_&kb1ET z9tAym@TLbZ-o#V&CK^o@L7|7V^iZUSf(n8cF}~S!`eH%!b&Hiq31)Lcy@{S z;WF{<6=Hvtc=8MJ=r_sDeSb8Fm-XbjUW-X??)zjj@%t*zuQ?jSzjMV`Suq`z9E zz3zP?o{y5}QG({4*{yUfsKf9Cz{1ngTn*0``5(VY>vw29`~O+@-|LG6aTpmsn;W~t zFQhX7daw;_Q&+cktQJTJJ>%-jXdiz7lDgWZv^z{L#zPrd^29oxxf0B^ntR=;YhajiAnuNjGu(GxNCSk_7 + +/* + * ---- + * Endianness operations + * ---- + */ + +#ifdef __big_endian__ +#define __BYTE_ORDER __BIG_ENDIAN +#else +#define __BYTE_ORDER __LITTLE_ENDIAN +#endif + +#define bswap_16(x) __builtin_bswap16(x) +#define bswap_32(x) __builtin_bswap32(x) + +#define INET_ADDRSTRLEN 16 +#define INET6_ADDRSTRLEN 46 + +/* Protocol families. */ +#define PF_INET 2 /* IP protocol family. */ +#define PF_INET6 10 /* IP version 6. */ + +/* Address families. */ +#define AF_INET PF_INET +#define AF_INET6 PF_INET6 + +/* + * ---- + * Type definitions + * ---- + */ +typedef signed char __s8; +typedef unsigned char __u8; +typedef signed short __s16; +typedef unsigned short __u16; +typedef signed int __s32; +typedef unsigned int __u32; + +struct in_addr { + __u32 s_addr; +}; + +struct in6_addr { + union { + __u32 u32_addr[4]; + __u8 u8_addr[16]; + } un; +#define s6_addr un.u8_addr +}; + +/* Stub function declaration for inet_ntop which is called from write_ipv4_info + * function in robust_av.c. Since they are not used we will create a dummy + * function declarion here. + */ +const char *inet_ntop(int __af, const void *__cp, char *__buf, int __len); + +/* Rename crypto functions to match symbol name mangling in morselib for avoidance of namespace + * collisions. */ +#define aes_decrypt mmint_aes_decrypt +#define aes_decrypt_deinit mmint_aes_decrypt_deinit +#define aes_decrypt_init mmint_aes_decrypt_init +#define crypto_bignum_add mmint_crypto_bignum_add +#define crypto_bignum_addmod mmint_crypto_bignum_addmod +#define crypto_bignum_cmp mmint_crypto_bignum_cmp +#define crypto_bignum_deinit mmint_crypto_bignum_deinit +#define crypto_bignum_div mmint_crypto_bignum_div +#define crypto_bignum_exptmod mmint_crypto_bignum_exptmod +#define crypto_bignum_init mmint_crypto_bignum_init +#define crypto_bignum_init_set mmint_crypto_bignum_init_set +#define crypto_bignum_init_uint mmint_crypto_bignum_init_uint +#define crypto_bignum_inverse mmint_crypto_bignum_inverse +#define crypto_bignum_is_odd mmint_crypto_bignum_is_odd +#define crypto_bignum_is_one mmint_crypto_bignum_is_one +#define crypto_bignum_is_zero mmint_crypto_bignum_is_zero +#define crypto_bignum_legendre mmint_crypto_bignum_legendre +#define crypto_bignum_mod mmint_crypto_bignum_mod +#define crypto_bignum_mulmod mmint_crypto_bignum_mulmod +#define crypto_bignum_rand mmint_crypto_bignum_rand +#define crypto_bignum_rshift mmint_crypto_bignum_rshift +#define crypto_bignum_sqrmod mmint_crypto_bignum_sqrmod +#define crypto_bignum_sub mmint_crypto_bignum_sub +#define crypto_bignum_to_bin mmint_crypto_bignum_to_bin +#define crypto_ec_deinit mmint_crypto_ec_deinit +#define crypto_ec_get_a mmint_crypto_ec_get_a +#define crypto_ec_get_b mmint_crypto_ec_get_b +#define crypto_ec_get_generator mmint_crypto_ec_get_generator +#define crypto_ec_get_order mmint_crypto_ec_get_order +#define crypto_ec_get_prime mmint_crypto_ec_get_prime +#define crypto_ec_init mmint_crypto_ec_init +#define crypto_ec_order_len mmint_crypto_ec_order_len +#define crypto_ec_point_add mmint_crypto_ec_point_add +#define crypto_ec_point_cmp mmint_crypto_ec_point_cmp +#define crypto_ec_point_x mmint_crypto_ec_point_x +#define crypto_ec_point_compute_y_sqr mmint_crypto_ec_point_compute_y_sqr +#define crypto_ec_point_deinit mmint_crypto_ec_point_deinit +#define crypto_ec_point_from_bin mmint_crypto_ec_point_from_bin +#define crypto_ec_point_init mmint_crypto_ec_point_init +#define crypto_ec_point_invert mmint_crypto_ec_point_invert +#define crypto_ec_point_is_at_infinity mmint_crypto_ec_point_is_at_infinity +#define crypto_ec_point_is_on_curve mmint_crypto_ec_point_is_on_curve +#define crypto_ec_point_mul mmint_crypto_ec_point_mul +#define crypto_ec_point_to_bin mmint_crypto_ec_point_to_bin +#define crypto_ec_prime_len mmint_crypto_ec_prime_len +#define crypto_ec_prime_len_bits mmint_crypto_ec_prime_len_bits +#define crypto_ecdh_deinit mmint_crypto_ecdh_deinit +#define crypto_ecdh_get_pubkey mmint_crypto_ecdh_get_pubkey +#define crypto_ecdh_init mmint_crypto_ecdh_init +#define crypto_ecdh_init2 mmint_crypto_ecdh_init2 +#define crypto_ecdh_set_peerkey mmint_crypto_ecdh_set_peerkey +#define crypto_ecdh_prime_len mmint_crypto_ecdh_prime_len +#define crypto_get_random mmint_crypto_get_random +#define crypto_unload mmint_crypto_unload +#define hmac_md5 mmint_hmac_md5 +#define hmac_sha1 mmint_hmac_sha1 +#define hmac_sha1_vector mmint_hmac_sha1_vector +#define hmac_sha256 mmint_hmac_sha256 +#define hmac_sha256_vector mmint_hmac_sha256_vector +#define hmac_sha384 mmint_hmac_sha384 +#define hmac_sha384_vector mmint_hmac_sha384_vector +#define hmac_sha512 mmint_hmac_sha512 +#define hmac_sha512_vector mmint_hmac_sha512_vector +#define omac1_aes_vector mmint_omac1_aes_vector +#define omac1_aes_128 mmint_omac1_aes_128 +#define pbkdf2_sha1 mmint_pbkdf2_sha1 +#define sha1_prf mmint_sha1_prf +#define sha1_vector mmint_sha1_vector +#define sha256_prf mmint_sha256_prf +#define sha256_prf_bits mmint_sha256_prf_bits +#define sha256_vector mmint_sha256_vector +#define sha384_prf mmint_sha384_prf +#define sha384_vector mmint_sha384_vector +#define sha512_prf mmint_sha512_prf +#define sha512_vector mmint_sha512_vector + +#define wpabuf_alloc mmint_wpabuf_alloc +#define wpabuf_alloc_copy mmint_wpabuf_alloc_copy +#define wpabuf_clear_free mmint_wpabuf_clear_free +#define wpabuf_put mmint_wpabuf_put diff --git a/lib/MorseWlan/src/lwip_compat_shim.c b/lib/MorseWlan/src/lwip_compat_shim.c new file mode 100644 index 000000000..f598dc76d --- /dev/null +++ b/lib/MorseWlan/src/lwip_compat_shim.c @@ -0,0 +1,27 @@ +#ifdef USE_MM_IOT_ESP32 +/* + * Stubs for LWIP netif callback API that Arduino-ESP32's prebuilt LWIP omits + * (CONFIG_LWIP_NETIF_STATUS_CALLBACK / _LINK_CALLBACK are disabled in its + * sdkconfig, so the real functions are absent from the static library). + * + * mmipal calls these once during init to register a single callback for + * link-up / IP-configured events. With these stubs, the callback never fires — + * mmwlan_register_link_state_cb (driven by the radio firmware) remains the + * authoritative source of link state, so this only costs us LWIP-level + * notifications (e.g. "DHCP got an address"). HaLowInterface polls + * mmipal_get_ip_config when it needs to know. + */ +#include "lwip/netif.h" + +void __attribute__((weak)) netif_set_link_callback(struct netif *netif, netif_status_callback_fn link_callback) +{ + (void)netif; + (void)link_callback; +} + +void __attribute__((weak)) netif_set_status_callback(struct netif *netif, netif_status_callback_fn status_callback) +{ + (void)netif; + (void)status_callback; +} +#endif diff --git a/lib/MorseWlan/src/mm6108.mbin.o b/lib/MorseWlan/src/mm6108.mbin.o new file mode 100644 index 0000000000000000000000000000000000000000..7d021ff5d972c9dedb3ebd8cd4ce86fee2420453 GIT binary patch literal 364252 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 zƖ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

@;l%{b&zVToKc2dV~llvsaf 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 z zwQg#!HKF(MlGd2JM+R40WQ0S`8dY7&p86zjEG|Z88?1-5#bV#rl)khT0`**Y-HaYgA9Cwb}3hzUg(u*zkOISnHQ7 z6=j(M-{5u~;Iq^XXg=O=2Yq!EGVdPM|Y7<%;cs>l;V zPkmlJ{LDJ8f5e6{!u%%c$1x!+i&cFrr8?P?eR3BAfMJm(mkJj(jJXn}@GDvXaULZ7{88vT# zZZ>-Jn;&MVbPDw4GlyHotJ3v(=5&TqE#zu3&*;)}GJERf*^;ML25GiJzPn|g$2t+{ z@9rb8p1|8Hu2+PLq2%}uUAM{?mxqP0rEN>P-%Jl-)zm?}3np~o`mwQCqq3^+n6%kt zpRF6qlIIweC#QXbJgIQB;3$+=9~>J?jm(%qG>qqm8Nso2boOB;UqgrJFjL!IHUH1j zU_nLmg|QUAQ^0tPrNg9_#5U6n7nPR(BrY4GSC zq?W662CTB}L5cen7&WiL8~Rwo-PFYVn!yjUKT1+qpDK8S84yLY+d2(;Nhn$kGqI5F zvCe+ju3x5SAIqNV5xF1(Z880EJ=EanYtT!W(G6Wq*2bMVELvPBf^=O$ce8ZU>|WIk7Q^|@U(ZN_JuC4J zQ+W*Zw2Je6iR8%V)pcFD7h3pcjr+TYLy)p~ysE3#uXwg(=V~!mN-aL=Gqvn9$&b z%0U$vQ=WV|GA|;+G^eNYeC!=^?qQna;ym{}PtM=k`<$}<`ekzd^IoSesq%B`l51v+ z0oS#sJ=?BdwnM+ubhn-eqidBB*b>%4RN;#zY@ZX4i6yqCvysPr#3B7W$cG{m$hNRZd<9q zRkqsi8zgs@4c@ky3hv?<4LykIZmWH>9&duP)?1o3;ckq#it9}YuJUfCZ>BM-?*l2x zvl|ul{fX~seCdW*@!+qfFv(pHt#xyW$`%W{Qc^b7uT^uQ(ixY~T~StB-6Lj@3$?7P zG`VZ&@UE)&yM_jf7MV%*45Jz^sDl-ijOyY{_2<&6ER(^T>7`$3=#&0(mZ1B?!^=gW zJUv(r-?O`K^NoHQQhUKb#cNoNj$<8j=~kbsk1#8tHfkK}2>a%QNs)-^RX5WrtaO%6 z+e1}n?DP^5vnuqD8N_2UDXP_J8G^hR`iF*=t#X z-WBs}n1zbKEL61LgzqNE-n~0=X4HwO;iF1M`HlW=bOaBoFJE<_G_t$AZ04 ziAm-|>HYT#-F~60v$B29)Np7P-FcD1RxS#9!eq1X|^7YAf244?XrFk!a5WJTqQ zRV(lvkLu=7*fTkqgAYdJlG~7GBH$!`i!mMOCi-!)wjVnl*!RYB<@( zL`U$j%~Vv{zD0vDGhlAB!b3%xt&rM#m-g<=djFZ=uownKun~dOL{U(8nM#VaUjq~v zMN?D|GV{;`m{tSDK}_ZQ-D}N=TKoT9*LQtf*RW2{b3dp1d7k_HWJu}LS`?gFcpsL| z16v`Ba29mk^oB&DH&C}Pka++p*;$ay;79Eue7tGqjEL*wpr{O)X6gsdMqjxan#<4$ zab|`y1;omJ()QLMCg5;xRX}X-hXIG3fwDd=i<7y**0+KWU=7ubTrBGjM|>#bdg;Qk z1!MDf_FhZe3+R)fCO^`Cur&bxM zKC2YC|-9x{}OBQ>KRY&`baLbbTxSCtv-xJ58s3`)JAD}eyn}A zs@&%i5B;96Qm%e@lQ|BgZ>m*pG&e4iGMO?k=>`SZ!GsPv~Kaorav3SJ^px|rmU-x zJ(@lJ%)mKO+)dxI>)Wx{tNgG#W|v(#fIT}{89ygV#q`;`x|L;b!{_LFk8fl46rb|i zK1fb7*~s@VFyxVIU&piMnm(qiJBTf7sbTE}R;H|F2{S9Z?0Pdhy{Qaork@=6to`ll zzP0@2?60t^&1TA4yV-y<0Z)~4x7nX^BKum|2i0Y;PbquPcDlH1F_$X4JvphYG3tIsI(tF$ks{Nw(9jeYcw`qlaN(yM>jp7vDQ)UWnw&1`I1 zEF0&1pyjFz#r%Ttpk3MS``kVm{^~z_;J3YTKm5Z}{sa8)msQBQ-_Uz?5+zeg#8kq^?SA|1@gYtw^r|67f=;2XXcz+tC!(Eu`1w&nJ>uq0W~w{2h5M` z>1H}|zQ|9ikzot-iW6e*#yT19DGo(?{Jfn@U4m&?@fn@i0{sPtT zG1xi6dK-3*@0rtJ*VdI|;*RFLC-sQj?xgvfiF>&y_Yu(&oZsAOpMfK4`n>nU&rZ&* zYo1Rzm*g}{X-KY0_KXpSrn&VVWYd_GMBdB7EM7G?DQ&4ey{E5iX+9IB#h3Gz5ecl; zh`!V4NB1(}PtY^j>%pS2r>BSBB_$~mS|Eu`f~}&gS&C92XS|#%>4<++Qv6=S2XT}> z33_ow0^z+!4(72yuCGpS?gG92EAoj z>(FlvR_fmA@wLC*<~!B;?TIwAXu>{fmG+p>rrSb#i>h3sfz4tjqsuoFWv)cdo3nEC zTdy!14}-o}Tvvm>XRoUyi$V1j1<6Vai2t-eHe0(Q6&e&X{JaLY+@P9;ngRP}C`J$x z=9ip*+kX?+u#R#$mpwRxIK(5s+jsgQ*m<#!zT4r`T3~`qz)->?RXtKI?oZ{+4(u&3 zMyiQ99U$&E_2@0siFFHi~`+T>J*siqg~P zCeJf)8*iFl;6NLvFwNgIzkqt)lCGd?n~{U+C#Ruxpg#p?J|NA&|0FBa!L}nZu9O+H zN*AnxgvdUpC&qrZl+|_iD9f}>%#^i|i7N-Cm)X8HKz}zd$_5Ko?T&G?zKTg^k1PwA zs;U!X(p`S-Z!EbkWNJ0`rrsFcxh6K!mH-$_nHg(!@4m};r$>4v#0Zrt&C%EFwy%FZ zS}o^2A>|$ScjWc*QrYL+U?WvGm|-?9Q}^5;!{AlI5taIr%BmE*t#qm2tyM1@G*ye3 z6VGW8`m{d9IY@gu<~8AjN~P1j_FtPT@2OAnlIy=fTJDiel1}GylwCOWx$>CT)|3x= z4Xv0rsiNw&jrchOv^Qd2t173GnpQdoYp?5U)*534q>nYPm+NdP|1}Gg4N(+HFO;iU z*qh2LBhMy%lk@`F3{xBs8aWyVd5w@Iz%C~BEgz0_YzJWV#3~(b8Viq6P6V4NuMuci(OshOWsj-^(Cbw>%0NmM%7L$xUM1EG@-MN zvExo>WzP(ZMHEzf4HIgfPIu`w3gMrP%w&;T5enV#usFnGs)gRJGG4N0C7spf@_2KN zWSu&r)+4!<{2i#d+jd`vehifR0_jt}bv#rjl>N|`W`(W^RD0;^R+p4z74bAPi~c}AGif;mrm zQ2pwTR?t~-J?aH>l-uGo!r3;an1#>ZYPNNYIQVh>3U)X3M=|30Qy+ieUabkT9pw;o zr%rpr4gCf|cgDBefY0}joY^Tf-4G?~11e`hg=j8jI~mudr#4&$FTwv!j?Iq9O^UI3 zj~#jS2$iZmCWOE{SEW*<8G$LxOn<6Z9<;J3qg1)gtm(%w>OEN_I2Klzglm(<7l-Op z!WUGe3p`lP{qQ*OZv35Ah_vevu98-fb{*Mzz|JkXeTdU>^iX3`EMxA>hh+#cQvUnrhy84z!EVh6%i?$Db19=CRaQpuhiq0Msas*s zSF=@?Xsd9xl_|4!84e+~xsGR4!ipBeu3$7mR-+2f3RrxuXmQ*1St(RTf>1o7pb>#XtMMS|y_?DF$_C`QzB z2g?za)@+k_BALg2=J@Qod9@xcd&Y_9j}VW&Giz+t-j$PAO_64qu3@&pzNFJv&%mlo z#VOW|nvL=3tKDgH)nEK=XZo&H^ThA)Cg&2(fGjINN=heL1>pm*iisg%hB;jBhvSQ?D}ix4-wbcVdTI+Ua|=?*83gw{`@RmV=$ccZT@x z7`t_CUu3$~5c!ud7Frlz-CLc$k=n2r?JE1y=a@3Sljt8`tXpbb7i7(gddMHRtpGlb zF>SCg<@e6qnO}CcO))GH5jR_5rPTU+ez`dF)Q7|~>o|k@XgM3VKsZg#YnL;SlxQ~$9plo-)VI(42ZF(bG$ukA0O%Ug~9%{Ek-GR#zd+!KgJNVzu`yChnc`FjLsllmX>E+Ca;{0drR22yck4+; zFc0(b{&vTR)aKDv>VH9sKPOXMjTMn|x(ty~mmrU!zRfn3!IwLbXfQfUrn{PBMhGpH@wY%Ag%^hS&SlNf(zwiD|a{JQK` z_7>v$FnR?rob7@w3VqkMr8(g7ddt?fLrS$GwNSe1Sq>@gUUy_ICv5ZmU|-10)L9$> zjJLTfSc)g$h-3T@vqq|0be_dAoLO_2jU(I}1|JR&ef>w!>K_=L9wELyNzJj@l=5Zn zgSZ9Kn#E$x`@Ky8%J-!m-TrQu?~x~!Bebf`=ErSnZb4vVU@1ep^|m;&s9$5wj-$Be zh+nNjzbj#59|z6Q_oLINi4RAW@e^Zczk^Rg_RDSylm#MDE5EPfdojvtw!y|nCUzRs zs!yVZkx}sRM@U% zOMMO*rlLz48{9FS44qPwR1d!4ynZW(#+8!WLDJM$JHl1J`ytZqD-JRS`xw;OPrArx<=@>p~b1uLhlIn6OyM5 z622e7;!XHh<`+$KQn=oVexejjiZAlD+mqrEMG6|_#hNlln<9_* zHV-WdjfYL;AbPGt-cH0i31D`Zh4wbZCnn)RSc0L?AZJ;EH49&d7Ev84DlAAvqbv;S zWrV^Vh>jA+2Nm;`-xGr6E3={jU3AhD| z+8@~gx%{7c71>9?Stzh}4D4hE7uor*B^%4a9GTa$vZr`mkd^(8UyyOxYFAgjc2;VG5oXFWk>y>^dy)iNezENUM=y$a}fYtje9mn{> z>Z*gdthMF{EA5(HAA$!i;*o|&Oc)jVrK%y=2)kacWu)uUr-zBVmT`Jf3C%gRBsq{d z1EN%f41OeGq3{7+^H|u1=klTDkd>T|wXGCZ^Fgo(zqI^EX^c+<9>r|*?vzLToCPZk zXZAM=);7dJ(Har&3-ioXpObDef5wV@F;e<(r~ATdq4A)J%xiHMz6I@g3@}@i_+m3V zyV{_+p`N7`3%cd&@EwDc1wNs$)DJxjh?kcCi@Y4b8>jGWfuq3u`1%5@)NBK!wyA9- z<;`e=rxu>pH>p_D9^-h_qN2^;Tv)`KE*nvv0?(~l+&?V6SwP=gI6TwckQS}Ujx=(* zC%zwa*VBBb)=X>c+9x02#W?I^?a=xhlXO7f!DP)&LF^J}f=GA7`H}8uDRf5#Q^6nq zR&c2LFr}qfjqtJrk48EpSN)L=a0>!hgOdB#-`(=A>q#xjpNaXrz^E)7MCUIccVpzM$MIbf(Z% z>IGQrSI%2lLD!@pUWnDYBcy(3KJoaW%~W#I3uE)*n|s$MeIxN^(n&p*xB$rQ!7X6E z4~LZ&Vtitzjl!JkL7A`+&ZOD3<|J`5h1YJ4rv2`IE;Xl z=6o&X({=awc2q1_qUDHclz6H8>Si7CySnZC|5P{R`v0SDfo9=Sn_`f8mQh&NgD6M| zMxhXUC)y95O0bRGbLQfmxk2~xR_BN!{aemO%481bN_HDGIx9MvY|s zED=YTn1yz8FaxW~id##_jlmH6r>`sL^_&u^T+HjO z9am@ulmpIr)1(wT*HfW`7H52N%!-87n3F|hnOl#DCjDtYA*p`Oj+7U3%2CH=SoeCM z?32Fi`Hx@L{J|G#_L|o$WQ{bpWmu5jK?2gVd|6K6ALRIhd79D_A+I5hYyI<-+SF{q zeiJ-`J!&~$YtI0-O%*b08H>aJhZ+2S{;!ZagR=2$30p>XdKY_hxD>Rx5;n-vngY$g zyMJhWVKV}V(@jc81kSTD!DdTdOCp!@&|A@Jl2l8O1q&aftX&BEiPwCD`3`YdQWw{dsT|yslU(H_LnU6vH7yBm2l`VV*+BE&Dgue?tp^} zsk~c3dwG&Iqa{p>O2%|;%GWuQD*j{MtZvo)d7Y}3o9{}q#2{!iD=oB)UZc<} zJuXDcIC(j`nKIn=MyKl&{mt=RD9rx7tJY@RtjrBUXP>K5X&$Mq>(>z{= zQkUfHMgM72MAM5o!k-#3hx~u&y)z3Z^B!F5?-yn5+swNM^_i!xOwM@ypt9Eghw&+P z6Io04U{zQK>+%w^F}HRBi|oPs<@-K*Uke$&+|tSFQ#peU$~8Z_k0ee9E1cG@R*M69 zrSTE>NtiL;jTvbBw`KkKr{j$9huZuZt$?^*k*;Apqc2i3!V5)e-F(Qqd|iF)46UzS z(bZ?!&N0ejBjc~uHD8ah&-pc`EIx#dJe|J z7S!gG&Ak$qpPM=1#p{d^2fNYdPO<{;11;1%CiJkrsFvk?oc=Yx$!oEPcEJam zIK#qZyV&yT1aZ;`c*H4%lU9Wt5;Z~FslJSO6T)n(3Uh@iQ}^POuMJZGXX;#U7OQTm{{;=6A8)k(_2&!?gO@b?UPbr%6&n)^K~X8ndEp!n7^Ml8k5Y44TNb z)2iI2Jxu(qz9<1v!8+<-y>i=PRxz3*pqEP%4#9g89)iz-5)-=G)Ff}YTf3FbCmM#C zL#u^3O~jQ^yr96jl_LDvI_gMv1N+%J{npEM{qh@<+t{tM8RyY9(pxEGx= z*-4x=Yrb5bZGIi?m&Z$%)zUb*Dk(zKTmFzJnxj-Df?j7a zru*CTIkw8G&+Ry_U(<0y|3OFno*Fy<%76?`XB~PR=Z?YqM7fSvXn7m2_j4$e>)QG@ ztJ!${5XWuYE7Rij{tlJ?V|AZ?S5TjR6Mq{&20w)}ul#1qQc#a!`T;6GeQ2j&u?FQ1 zQh617sk}TCAJG^0*PST%^Us3E8bD|J2@W+g-swr7+~=xXzAGd?bS9z(D(IxkvWzw< zayMr>l&`6tUR|uI_R?$di}>Cv0F=2Wr>nAWr^TE&K!><7nj_PX$hG<2YvZ+$xX|e{ zrw__jnqToR%P5tg?alY$^~1M%B^?hqK4ooa;@re&Q2SkwlxZ508nP=wfmlw_hL3q>n!QjCVI zFWjwNz7|n;2f!!HVPo^0@M=M;k21Sf>a0BC!_jGa0(LU+uA9ImEo)(ZZ`(w8k9}Oz zi;>iNNpXhjH+2#>0{QiTbVcOEm2UatT>@yivE2Q(>+Akg?E*w#d>!0{VhSs(IJqIF1`+FZcZqV_s4Z!I@K|G`7g>{XL zen79EUZX{9LgzXM=DBvj=id~>HyG@}K}=n~etnydetnadoex6FqkhD5#SkyT=m+-t zO)A$9)cOquX2|$0bMhV=0E>CjfWkJyOpm^2G(4hrr9POJPx72wc(yY3_R7eg$S&-yF*u)1| z%r#2Hhz~$d`*bO2)>S`C9@wrOU#dpiMDxK^Eu>t%kP>Ll!>6o_q*~{nkGi9|Q(zZ7 ze~xS{3S!3_$qKUo{PXLuCn3ubUR7|ItS$Y_x`k@i&*5i&{6jxS6y#wZ+e)M&uKO@- zEYA{$eYa!+-01GU8{qLD1MmMWS%V}&!qIh6$E7pSPh7B=0w4_|sguyzgc(&dL0&aT zS1Mf3hn#V^l2+|cOZPxJB`o)7%!i4@H>1Unc90YUy?0cJvNxNB2YM8Q6QOP!RPcrG zhn@_DwpOyzOC_6dD&t=N0+JB?UfOZ@$a=c!X^7(6`y!8&GLcK2Or++zft_KzW?%X% zQxngbZP#?q#xnHO5mM-Met6|}l$vS3HBaC)>aw?wFjJvLNW1y~zlJY++abvry3Psl z@a5vwJk0=S5>C>oyRL`~xz0q+c~w!CdEHRf^bkuNb6HR@+nW>l&Z~;aA7!_xHMc?p zFAd{t)Z7?f6d3|4X6~zssUPjg*3Ei|5l(P!4V~KtHArsbwu!DvSC?*{4%ABIyd%mo z9v&%CZzyUk(V+gQHG?bm8c6FvJxM+Iy5w(4eIn~2X%6m8A8Vyua+z3W-OB99i4?IC z9ph9x#YnElfW7|5o#JR4t}S)Ip^EQ!ir(Y{G8~dq=jim9gu#g?%+?Nu`Z8dZ%?;3-*3xQccoP z&b-DPQWN^s0&|`@NNuS0%?XP7>WDOFeanS(s+b3~}vVv=;Zu z5;2o;?RHs3b0!0SDj7K!Kk?^T9v*zQPG;na5kRQS( zGXG#kB3_q4vEq=T8fS4OjA1jigG{qVWtf9zH)t~W$P9;K6+GR(M4kPfhNo;0JY|F6 zDI2r|wIv*q?JmYjx^O#hP(shF$j6Mdi((icE3wBGUF?EHT_OBnRR!mhRB8llRX{@+ zD5gxlWDU)44*i-n5}tUZU-?K0N#CF7J-w6DnLi5sno`N{*d@IZKEQwdpB|5A@?KY; z@UoA!O-SFLJ|*i*+o3G|80C-D$~2tQb@BSn%)yrkKcF905XR`?rNJ8eCEgytb76)` z1Dbw_aK_419Vt$m3mPPWwFgdQKIh6>YZS1wVD+g5u+7LstOwY1ro}6ZQy*1EI%*VU zlj|9r{K&T|^xLlhe@hj*j1hg_E9^m&;epc1L}v0a`jR7zerq$Nyvd6XgYaf(hvqF-51Y z1fIHzhFncFgv9N%YNkh;niOjGL;w}J;gRv>ikWf3v+8j0l0Lf+ z3-zr&Wi|U1ktY1q`xQaz_QO#bIDb;Dju*Tf1BLmmK2bq9e^RZ^6$UsShzi0D8@1 z9d+P`Q(FU|hsxRyS$m|q6?P4|P4e197z8~7?8zR&Sn(=qkMlvtFDQ$4Wp|yO1+AT0 zs@J1Zy$05xO>^{8jZ_Dk4wgqDE*NqS7Xlp$aS=OZ2O-zLoI?FK^a2pOkVa z4m3@|$_rdw@Okg?kX$lViaFEI=T_cs_RpW*BdpCNKq@;AYlv{J4>DIwD z@M+p?T3}x5C^R)VnvdB`1t(>hjP;EJ$JQPjY93YLZ-z$U7@#Vf@!z17(nzz+`nLne z8V)x&{LPIADSpLJvy^Tir7QATL$L0oTZ>e^`v}$`IhC4HRjNH{91A_LlJ~7WQ*&_b znLV)JDD^KmV>^h}TMEwXDQA}q;Cmk);RVWT`#>f$p5Gk-j+17WPR@~jVwKJ(mF+TzCR!B z4X&3e11V=Bc5yjp;O}xOYdFPgUu7n6@%mIARt?}A)5xj;*A+YqY)52to((YBp9y5_ z^TQc2tJu=S1ekR5p^ckoWW*I>mOfp2GjA57do~#!jz}ZDvCmy1ojHA)!%DL97#{^?nORy#?7lH7O2D|uGG3bq(j)=IQs6^~KNj0wkzMQs!`T!^x`R+Sx} znILF%gT#0}6T%iV@C`T|s3^~b_hP0dUeCS?$xen+Q0bJE+7>VP>R6>7av)w8oER2(pnAN}zB7_}PB;RS6Vg=qPam7!s!WBO~Y^sX!)2ngCPtW6upXErPLMYH6s&u$Q zYOgYcmF}By!U5W^S9zXC%Kd?7E>^F(!W3%&Mf)lfa%VKSmBrdCc=n72XW>@ry`(o7 z4g1_=MvFJa(wpJ|uVOToFy54Az!hmUV9mmCS=`D$9ucWF%n^lt;5(qxw=;V0xlFM) zJl%Y*u*E*jtlswsTkK1{ctxRfOj3B80GXBVsV2p^zitwEheEHouIMy*)2c~*1wDm( zEMlCYx;8yVVdKGKq```*cvbOr1@$pJ5YekI!d_lW^vM{|C!;~1j2s%Qj~E}UA088| zAM2r2D3a9_iSyN|Wr_tf&k>wubzE^mQLi|yXi%JW70pk*L$?&=^w~A6w@#C$d5?L< z>WO{@y6Gg*Fs_$&Pbc~XK3To@QZR^>m3kiyGj8|eG7SS7v*M4a7@YbSRuv2?CKyyq zuyPa|Y#9ZrW^`K6pan$vJ^kjgceXT^oT)o?;^gVC&K}EX@+$De=K?hWT0(>URi*=1 zRIWI*qIyN`iX$uPRvce(VnzLm(<>TQpmmFWL5p~uhE<)l-rb`4^)jXCdTH?!GL^XK zjE71**?1q7IIewMKb2S%`{m5Bi615UJa;?cjcFIAy)M<3eDR-YP)=i2%l;|*}&u((Lll7h(>STCNi-~|eNi>gRrFNzohM(kx#`Z+1FoW+vv-~X zT}7WZ(vx%oNRg{Sz6T7otH`(iN$VFlK1p=KyYhP>#+ohLxf`KrGLCy&2Y0sFtBPgl&dp1T8S)9I(NKGE7u zQbS2*IIa?L!8R3pqT12gPI6U}^z_SpJoaytBhAQ}R`%6Q1WodxE8sRvpy}zT@qH^@ z1#doJbb7Xtr8JYjGTu&qTuQyscpFrF`w&XgVthY~u68a=aogrCeYY8JXUT9c8{c0^ zU-OLbyT5&FELL_sB7ZG=qMg;_sY)tUdQx;fV&@DB%0th^c>V+)?wt>4jHk?&aMd{b z>_CICwsTNZG1R4PP(e*iiWOIL`6e{1Y1r*2^N$TD#~^D=rpr*hH{A=5qn z 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 R=p3#F;ePK81k)St{{XG^{YU@+ literal 0 HcmV?d00001 diff --git a/lib/MorseWlan/src/mmbuf.c b/lib/MorseWlan/src/mmbuf.c new file mode 100644 index 000000000..99681010f --- /dev/null +++ b/lib/MorseWlan/src/mmbuf.c @@ -0,0 +1,216 @@ +#ifdef USE_MM_IOT_ESP32 +/* + * Copyright 2024 Morse Micro + * + * SPDX-License-Identifier: Apache-2.0 + * + */ + +#include "mmbuf.h" +#include "mmosal.h" +#include "mmutils.h" + +static const struct mmbuf_ops mmbuf_heap_ops = {.free_mmbuf = mmosal_free}; + +struct mmbuf *mmbuf_alloc_on_heap(uint32_t space_at_start, uint32_t space_at_end) +{ + struct mmbuf *mmbuf; + uint8_t *buf; + uint32_t alloc_len = MM_FAST_ROUND_UP(sizeof(*mmbuf), 4) + MM_FAST_ROUND_UP(space_at_start + space_at_end, 4); + mmbuf = (struct mmbuf *)mmosal_malloc(alloc_len); + if (mmbuf == NULL) { + return NULL; + } + + /* We zero the buffer as a defensive measure to reduce the likelihood of unintentionally + * leaking information. */ + memset((uint8_t *)mmbuf, 0, alloc_len); + + buf = ((uint8_t *)mmbuf) + MM_FAST_ROUND_UP(sizeof(*mmbuf), 4); + + mmbuf_init(mmbuf, buf, MM_FAST_ROUND_UP(space_at_start + space_at_end, 4), space_at_start, &mmbuf_heap_ops); + + return mmbuf; +} + +struct mmbuf *mmbuf_make_copy_on_heap(struct mmbuf *original) +{ + struct mmbuf *mmbuf; + uint8_t *buf; + uint32_t alloc_len = MM_FAST_ROUND_UP(sizeof(*original), 4) + original->buf_len; + mmbuf = (struct mmbuf *)mmosal_malloc(alloc_len); + if (mmbuf == NULL) { + return NULL; + } + + buf = ((uint8_t *)mmbuf) + MM_FAST_ROUND_UP(sizeof(*mmbuf), 4); + mmbuf_init(mmbuf, buf, original->buf_len, original->start_offset, &mmbuf_heap_ops); + mmbuf->data_len = original->data_len; + + if (original->data_len) { + memcpy(mmbuf_get_data_start(mmbuf), mmbuf_get_data_start(original), mmbuf_get_data_length(original)); + } + + return mmbuf; +} + +void mmbuf_release(struct mmbuf *mmbuf) +{ + if (mmbuf == NULL) { + return; + } + + MMOSAL_ASSERT(mmbuf->ops != NULL && mmbuf->ops->free_mmbuf != NULL); + mmbuf->ops->free_mmbuf(mmbuf); +} + +#ifdef MMBUF_SANITY +static void mmbuf_list_sanity_check(struct mmbuf_list *list) +{ + unsigned cnt = 0; + struct mmbuf *walk; + struct mmbuf *prev = NULL; + + for (walk = list->head; walk != NULL; walk = walk->next) { + cnt++; + prev = walk; + } + + MMOSAL_ASSERT(cnt == list->len); + MMOSAL_ASSERT(prev == list->tail); +} +#endif + +void mmbuf_list_prepend(struct mmbuf_list *list, struct mmbuf *mmbuf) +{ + mmbuf->next = list->head; + list->head = mmbuf; + list->len++; + + if (list->tail == NULL) { + list->tail = list->head; + } + +#ifdef MMBUF_SANITY + mmbuf_list_sanity_check(list); +#endif +} + +void mmbuf_list_append(struct mmbuf_list *list, struct mmbuf *mmbuf) +{ + mmbuf->next = NULL; + if (list->head == NULL) { + list->head = mmbuf; + list->tail = mmbuf; + } else { + list->tail->next = mmbuf; + list->tail = mmbuf; + } + list->len++; + +#ifdef MMBUF_SANITY + mmbuf_list_sanity_check(list); +#endif +} + +static struct mmbuf *mmbuf_find_prev(struct mmbuf_list *list, struct mmbuf *mmbuf) +{ + struct mmbuf *walk, *next; + for (walk = list->head, next = walk->next; next != NULL; walk = next, next = walk->next) { + if (next == mmbuf) { + return walk; + } + } + return NULL; +} + +bool mmbuf_list_remove(struct mmbuf_list *list, struct mmbuf *mmbuf) +{ + struct mmbuf *prev = NULL; + + if (list->head == NULL) { + return false; + } + + if (list->head == mmbuf) { + list->head = mmbuf->next; + } else { + prev = mmbuf_find_prev(list, mmbuf); + if (prev == NULL) { + return false; + } + prev->next = mmbuf->next; + } + + if (list->tail == mmbuf) { + list->tail = prev; + } + + list->len--; + mmbuf->next = NULL; + +#ifdef MMBUF_SANITY + mmbuf_list_sanity_check(list); +#endif + + return true; +} + +struct mmbuf *mmbuf_list_dequeue(struct mmbuf_list *list) +{ + if (list->head == NULL) { + return NULL; + } else { + struct mmbuf *mmbuf = list->head; + list->head = mmbuf->next; + list->len--; + + if (list->tail == mmbuf) { + list->tail = NULL; + } + +#ifdef MMBUF_SANITY + mmbuf_list_sanity_check(list); +#endif + if (mmbuf != NULL) { + mmbuf->next = NULL; + } + return mmbuf; + } +} + +struct mmbuf *mmbuf_list_dequeue_tail(struct mmbuf_list *list) +{ + if (list->tail == NULL) { + return NULL; + } + + struct mmbuf *mmbuf = list->tail; + mmbuf_list_remove(list, mmbuf); + + return mmbuf; +} + +void mmbuf_list_clear(struct mmbuf_list *list) +{ + struct mmbuf *walk; + struct mmbuf *next; + +#ifdef MMBUF_SANITY + mmbuf_list_sanity_check(list); +#endif + + if (list->head == NULL) { + return; + } + + for (walk = list->head, next = walk->next; walk != NULL; walk = next, next = walk ? walk->next : NULL) { + mmbuf_release(walk); + } + + list->len = 0; + list->head = NULL; + list->tail = NULL; +} + +#endif /* USE_MM_IOT_ESP32 */ diff --git a/lib/MorseWlan/src/mmbuf.h b/lib/MorseWlan/src/mmbuf.h new file mode 100644 index 000000000..f26e2574c --- /dev/null +++ b/lib/MorseWlan/src/mmbuf.h @@ -0,0 +1,457 @@ +/* + * Copyright 2024 Morse Micro + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/** + * @defgroup MMBUF Morse Micro Buffer (mmbuf) API + * + * This API provides support for buffers tailored towards packet-like data that has + * headers and trailers that are applied at subsequent layers. + * + * It is designed to support various backends for memory allocation. The default + * is allocation on the heap, but other methods could be used due to the flexible API. + * + * @{ + */ + +#pragma once + +#include +#include +#include + +#include "mmosal.h" + +#ifdef __cplusplus +extern "C" { +#endif + +struct mmbuf_ops; + +/** + * Core mmbuf data structure. + * + * @note The contents of this data structure should never need to be accessed directly. Rather + * the various functions provided as part of this API should be used. + * + * @code + * +----------------------------------------------------------+ + * | RESERVED | Data | RESERVED | + * +----------------------------------------------------------+ + * ^ ^ ^ ^ + * | | | | + * | |<-----------data_len--------->| | + * | start_offset | + * | | + * |<-----------------------buf_len-------------------------->| + * buf + * @endcode + */ +struct mmbuf { + /** The buffer where data is stored. */ + uint8_t *buf; + /** Length of the buffer. */ + uint32_t buf_len; + /** Offset where actual data starts in the buffer. */ + uint32_t start_offset; + /** Length of actual data in the buffer. */ + uint32_t data_len; + /** Reference to operations data structure for this mmbuf. */ + const struct mmbuf_ops *ops; + /** Pointer that can be used to construct linked lists. */ + struct mmbuf *volatile next; +}; + +/** Operations data structure for mmbuf. */ +struct mmbuf_ops { + /** Free the given mmbuf. */ + void (*free_mmbuf)(void *mmbuf); +}; + +/** + * Initialize an mmbuf header with the given values. + * + * @param mmbuf mmbuf to initialize. + * @param buf Pointer to buffer. + * @param buf_len Length of @p buf. + * @param data_start_offset Initial value for @c start_offset. + * @param ops Operations data structure. + */ +static inline void mmbuf_init(struct mmbuf *mmbuf, uint8_t *buf, uint32_t buf_len, uint32_t data_start_offset, + const struct mmbuf_ops *ops) +{ + memset(mmbuf, 0, sizeof(*mmbuf)); + mmbuf->buf = buf; + mmbuf->buf_len = buf_len; + mmbuf->start_offset = data_start_offset; + mmbuf->ops = ops; +} + +/** + * Allocate a new mmbuf on the heap (using @ref mmosal_malloc()). + * + * @param space_at_start Amount of space to reserve at start of buffer. + * @param space_at_end Amount of space to reserve at end of buffer. + * + * @note @c start_offset will be set to @p space_at_start, and @c buf_len will be the sum + * of @p space_at_start and @p space_at_end (rounded up to a multiple of 4). + * + * @returns newly allocated mmbuf on success or @c NULL on failure. + */ +struct mmbuf *mmbuf_alloc_on_heap(uint32_t space_at_start, uint32_t space_at_end); + +/** + * Make a copy of the given mmbuf. Note that regardless of the backend that allocated + * @p original, the newly allocated mmbuf will be allocated on the heap using + * @ref mmbuf_alloc_on_heap(). + * + * @param original mmbuf to copy. + * + * @returns newly allocated mmbuf on success or @c NULL on failure. + */ +struct mmbuf *mmbuf_make_copy_on_heap(struct mmbuf *original); + +/** + * Release a reference to the given mmbuf. If this was the last reference (@c addition_ref_cnt + * was 0) then the mmbuf will be freed using the appropriate op callback. + * + * @param mmbuf The mmbuf to release reference to. May be @c NULL. + */ +void mmbuf_release(struct mmbuf *mmbuf); + +/** + * Gets a pointer to the start of the data in the mmbuf. + * + * @param mmbuf The mmbuf to operate on. + * + * @returns a pointer to the start of the data in the mmbuf. + */ +static inline uint8_t *mmbuf_get_data_start(struct mmbuf *mmbuf) +{ + return mmbuf->buf + mmbuf->start_offset; +} + +/** + * Gets a pointer to the end of the data in the mmbuf. + * + * @param mmbuf The mmbuf to operate on. + * + * @returns a pointer to the end of the data in the mmbuf. + */ +static inline uint8_t *mmbuf_get_data_end(struct mmbuf *mmbuf) +{ + return mmbuf->buf + mmbuf->start_offset + mmbuf->data_len; +} + +/** + * Gets the length of the data currently in the mmbuf. + * + * @param mmbuf The mmbuf to operate on. + * + * @returns the length of the data currently in the mmbuf (note that this is different from the + * length of the available buffer space). + */ +static inline uint32_t mmbuf_get_data_length(struct mmbuf *mmbuf) +{ + return mmbuf->data_len; +} + +/** + * Returns the amount of space available for prepending to the data in the buffer. + * + * @param mmbuf The mmbuf to operate on. + * + * @returns the available space in bytes. + */ +static inline uint32_t mmbuf_available_space_at_start(struct mmbuf *mmbuf) +{ + return mmbuf->start_offset; +} + +/** + * Returns the amount of space available for appending to the data in the buffer. + * + * @param mmbuf The mmbuf to operate on. + * + * @returns the available space in bytes. + */ +static inline uint32_t mmbuf_available_space_at_end(struct mmbuf *mmbuf) +{ + return mmbuf->buf_len - (mmbuf->start_offset + mmbuf->data_len); +} + +/** + * Reserves space immediately before the data currently in the given mmbuf and returns + * a pointer to this space. + * + * For a function that also copies data in, see @ref mmbuf_prepend_data(). + * + * @warning @p len must be less than or equal to @ref mmbuf_available_space_at_start(). + * + * @param mmbuf The mmbuf to operate on. + * @param len Length of data to be prepended. + * + * @returns a pointer to the place in the buffer where the data should be put. + */ +static inline uint8_t *mmbuf_prepend(struct mmbuf *mmbuf, uint32_t len) +{ + MMOSAL_ASSERT(len <= mmbuf_available_space_at_start(mmbuf)); + mmbuf->start_offset -= len; + mmbuf->data_len += len; + return mmbuf->buf + mmbuf->start_offset; +} + +/** + * Prepends the given data to the data already in the mmbuf. + * + * @warning @p len must be less than or equal to @ref mmbuf_available_space_at_start(). + * + * @warning The memory area pointed to by data must not overlap with the mmbuf data. + * + * @param mmbuf The mmbuf to operate on. + * @param data The data to be prepended. + * @param len Length of data to be prepended. + */ +static inline void mmbuf_prepend_data(struct mmbuf *mmbuf, const uint8_t *data, uint32_t len) +{ + uint8_t *dest = mmbuf_prepend(mmbuf, len); + memcpy(dest, data, len); +} + +/** + * Reserves space immediately after the data currently in the given mmbuf and returns + * a pointer to this space. + * + * For a function that also copies data in, see @ref mmbuf_append_data(). + * + * @warning @p len must be less than or equal to @ref mmbuf_available_space_at_end(). + * + * @param mmbuf The mmbuf to operate on. + * @param len Length of data to be append. + * + * @returns a pointer to the place in the buffer where the data should be put. + */ +static inline uint8_t *mmbuf_append(struct mmbuf *mmbuf, uint32_t len) +{ + uint8_t *ret = mmbuf_get_data_end(mmbuf); + MMOSAL_ASSERT(len <= mmbuf_available_space_at_end(mmbuf)); + mmbuf->data_len += len; + return ret; +} + +/** + * Appends the given data to the data already in the mmbuf. + * + * @warning @p len must be less than or equal to @ref mmbuf_available_space_at_start(). + * + * @param mmbuf The mmbuf to operate on. + * @param data The data to be prepended. + * @param len Length of data to be prepended. + */ +static inline void mmbuf_append_data(struct mmbuf *mmbuf, const uint8_t *data, uint32_t len) +{ + uint8_t *dest = mmbuf_append(mmbuf, len); + memcpy(dest, data, len); +} + +/** + * Remove data from the start of the mmbuf. + * + * @param mmbuf mmbuf to operate on. + * @param len Length of data to remove. + * + * @returns a pointer to the removed data or NULL if the mmbuf data length was less than @p len. + */ +static inline uint8_t *mmbuf_remove_from_start(struct mmbuf *mmbuf, uint32_t len) +{ + uint8_t *ret; + + if (mmbuf_get_data_length(mmbuf) < len) { + return NULL; + } + + ret = mmbuf_get_data_start(mmbuf); + + mmbuf->start_offset += len; + mmbuf->data_len -= len; + + return ret; +} + +/** + * Remove data from the end of the mmbuf. + * + * @param mmbuf mmbuf to operate on. + * @param len Length of data to remove. + * + * @returns a pointer to the removed data or NULL if the mmbuf data length was less than @p len. + */ +static inline uint8_t *mmbuf_remove_from_end(struct mmbuf *mmbuf, uint32_t len) +{ + uint8_t *ret; + + if (mmbuf_get_data_length(mmbuf) < len) { + return NULL; + } + + ret = mmbuf_get_data_end(mmbuf) - len; + + mmbuf->data_len -= len; + + return ret; +} + +/** + * Truncate the mmbuf data to the given length. + * + * @param mmbuf mmbuf to operate on. + * @param len New data length. (Must be less than or equal to the data length + * of the mmbuf). + */ +static inline void mmbuf_truncate(struct mmbuf *mmbuf, uint32_t len) +{ + MMOSAL_ASSERT(len <= mmbuf->data_len); + mmbuf->data_len = len; +} + +/* --------------------------------------------------------------------------------------------- */ + +/** Structure that can be used as the head of a linked list of mmbufs that counts its length. */ +struct mmbuf_list { + /** First mmbuf in the list. */ + struct mmbuf *volatile head; + /** Last mmbuf in the list. */ + struct mmbuf *volatile tail; + /** Length of the list. */ + volatile uint32_t len; +}; + +/** Static initializer for @ref mmbuf_list. */ +#define MMBUF_LIST_INIT \ + { \ + NULL, NULL, 0 \ + } + +/** + * Initialization function for @ref mmbuf_list, for cases where @c MMBUF_LIST_INIT + * cannot be used. + * + * @param list The mmbuf_list to init. + */ +static inline void mmbuf_list_init(struct mmbuf_list *list) +{ + list->head = NULL; + list->tail = NULL; + list->len = 0; +} + +/** + * Add an mmbuf to the start of an mmbuf list. + * + * @param list The list to prepend to. + * @param mmbuf The mmbuf to prepend. + */ +void mmbuf_list_prepend(struct mmbuf_list *list, struct mmbuf *mmbuf); + +/** + * Add an mmbuf to the end of an mmbuf list. + * + * @param list The list to append to. + * @param mmbuf The mmbuf to append. + */ +void mmbuf_list_append(struct mmbuf_list *list, struct mmbuf *mmbuf); + +/** + * Remove an mmbuf from an mmbuf list. + * + * @param list The list to remove from. + * @param mmbuf The mmbuf to remove. + * + * @returns @c true if the given @c mmbuf was present in @c list, else @c fase. + */ +bool mmbuf_list_remove(struct mmbuf_list *list, struct mmbuf *mmbuf); + +/** + * Remove the mmbuf at the head of the list and return it. + * + * @param list The list to dequeue from. + * + * @returns the dequeued mmbuf, or @c NULL if the list is empty. + */ +struct mmbuf *mmbuf_list_dequeue(struct mmbuf_list *list); + +/** + * Remove the mmbuf at the tail of the list and return it. + * + * @param list The list to dequeue from. + * + * @returns the dequeued mmbuf, or @c NULL if the list is empty. + */ +struct mmbuf *mmbuf_list_dequeue_tail(struct mmbuf_list *list); + +/** + * Remove all mmbufs from the list and return as a linked list. + * + * @param list The list to dequeue from. + * + * @returns the dequeued mmbufs, or @c NULL if the list is empty. + */ +static inline struct mmbuf *mmbuf_list_dequeue_all(struct mmbuf_list *list) +{ + struct mmbuf *head = list->head; + list->head = NULL; + list->tail = NULL; + list->len = 0; + return head; +} + +/** + * Checks whether the given mmbuf list is empty. + * + * @param list The list to check. + * + * @returns @c true if the list is empty, else @c false. + */ +static inline bool mmbuf_list_is_empty(struct mmbuf_list *list) +{ + return (list->head == NULL); +} + +/** + * Returns the head of the mmbuf list. + * + * @param list The list to peek into. + * + * @returns the mmbuf at the head of the list. + */ +static inline struct mmbuf *mmbuf_list_peek(struct mmbuf_list *list) +{ + return list->head; +} + +/** + * Returns the tail of the mmbuf list. + * + * @param list The list to peek into. + * + * @returns the mmbuf at the tail of the list. + */ +static inline struct mmbuf *mmbuf_list_peek_tail(struct mmbuf_list *list) +{ + return list->tail; +} + +/** + * Free all the packets in the given list and reset the list to empty state. + * + * @param list The list to clear. + */ +void mmbuf_list_clear(struct mmbuf_list *list); + +#ifdef __cplusplus +} +#endif + +/** @} */ diff --git a/lib/MorseWlan/src/mmcrc.c b/lib/MorseWlan/src/mmcrc.c new file mode 100644 index 000000000..4efa97946 --- /dev/null +++ b/lib/MorseWlan/src/mmcrc.c @@ -0,0 +1,50 @@ +#ifdef USE_MM_IOT_ESP32 +/* + * Copyright 2024 Morse Micro + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "mmcrc.h" + +/** + * Static table used for the table_driven implementation. + */ +static const uint16_t crc16_xmodem_lookup_table[256] = { + 0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5, 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b, 0xc18c, 0xd1ad, 0xe1ce, + 0xf1ef, 0x1231, 0x0210, 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6, 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c, + 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401, 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b, 0x8528, 0x9509, 0xe5ee, + 0xf5cf, 0xc5ac, 0xd58d, 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6, 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738, + 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5, 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823, 0xc9cc, 0xd9ed, 0xe98e, + 0xf9af, 0x8948, 0x9969, 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96, 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc, + 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a, 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03, 0x0c60, 0x1c41, 0xedae, + 0xfd8f, 0xcdec, 0xddcd, 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6, 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70, + 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a, 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb, 0xd10c, 0xc12d, 0xf14e, + 0xe16f, 0x1080, 0x00a1, 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067, 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c, + 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2, 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb, 0x95a8, 0x8589, 0xf56e, + 0xe54f, 0xd52c, 0xc50d, 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447, 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8, + 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2, 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634, 0xd94c, 0xc96d, 0xf90e, + 0xe92f, 0x99c8, 0x89e9, 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827, 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c, + 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a, 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0, 0x2ab3, 0x3a92, 0xfd2e, + 0xed0f, 0xdd6c, 0xcd4d, 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07, 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1, + 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba, 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74, 0x2e93, 0x3eb2, 0x0ed1, + 0x1ef0}; + +/** + * @note This implementation(with a few modifications) and corresponding table was generated using + * pycrc v0.9.2 (MIT) using the XMODEM model. https://pycrc.org/. The code generated by pycrc + * is not considered a substantial portion of the software, therefore the licence does not + * cover the generated code, and the author of pycrc will not claim any copyright on the + * generated code (https://pypi.org/project/pycrc/0.9.2/). + */ +uint16_t mmcrc_16_xmodem(uint16_t crc, const void *data, size_t data_len) +{ + const uint8_t *d = (const uint8_t *)data; + + while (data_len--) { + crc = (crc16_xmodem_lookup_table[((crc >> 8) ^ *d++)] ^ (crc << 8)); + } + return crc; +} + +#endif /* USE_MM_IOT_ESP32 */ diff --git a/lib/MorseWlan/src/mmcrc.h b/lib/MorseWlan/src/mmcrc.h new file mode 100644 index 000000000..7508ed4b4 --- /dev/null +++ b/lib/MorseWlan/src/mmcrc.h @@ -0,0 +1,40 @@ +/* + * Copyright 2024 Morse Micro + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/** + * @defgroup MMCRC Morse Micro Cyclic Redundancy Check (mmcrc) API + * + * This API provides support for CRC algorithms used by Morse Micro code. + * + * @{ + */ + +#pragma once + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @brief Compute the CRC-16 for the data buffer using the XMODEM model. + * + * @param crc Seed for CRC calc, zero in most cases this is zero (0). If chaining calls + * then this is the output from the previous invocation. + * @param data Pointer to the start of the data to calculate the crc over. + * @param data_len Length of the data array in bytes. + * + * @return Returns the CRC value. + */ +uint16_t mmcrc_16_xmodem(uint16_t crc, const void *data, size_t data_len); + +#ifdef __cplusplus +} +#endif + +/** @} */ diff --git a/lib/MorseWlan/src/mmhal.c b/lib/MorseWlan/src/mmhal.c new file mode 100644 index 000000000..efcf7bcba --- /dev/null +++ b/lib/MorseWlan/src/mmhal.c @@ -0,0 +1,100 @@ +#ifdef USE_MM_IOT_ESP32 +/* + * Copyright 2021-2023 Morse Micro + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "mmhal.h" +#include "mmosal.h" +#include "mmutils.h" +#include "mmwlan.h" + +#include "driver/gpio.h" +#include "esp_random.h" +#include "esp_system.h" +#include "sdkconfig.h" + +void mmhal_init(void) +{ + /* We initialise the MM_RESET_N Pin here so that we can hold the MM6108 in reset regardless of + * whether the mmhal_wlan_init/deinit function have been called. This allows us to ensure the + * chip is in its lowest power state. You may want to revise this depending on your particular + * hardware configuration. */ + gpio_config_t io_conf = {}; + io_conf.intr_type = GPIO_INTR_DISABLE; + io_conf.mode = GPIO_MODE_OUTPUT; + io_conf.pin_bit_mask = (1 << CONFIG_MM_RESET_N); + io_conf.pull_down_en = 0; + io_conf.pull_up_en = 0; + gpio_config(&io_conf); + + gpio_set_level(CONFIG_MM_RESET_N, 0); + + /* Initialise the gpio ISR handler service. This allows per-pin GPIO interrupt handlers and is + * what is used to register all the wlan related interrupt. */ + gpio_install_isr_service(0); +} + +void mmhal_log_write(const uint8_t *data, size_t length) +{ + while (length--) { + putc(*data++, stdout); + } +} + +void mmhal_log_flush(void) {} + +void mmhal_read_mac_addr(uint8_t *mac_addr) +{ + /* We do not override the MAC address here. Therefore the driver will attempt to read it from + * the chip and failing that will assign a randomly generated address. */ + (void)(mac_addr); +} + +uint32_t mmhal_random_u32(uint32_t min, uint32_t max) +{ + /* Note: the below implementation does not guarantee a uniform distribution. */ + + uint32_t random_value = esp_random(); + + if (min == 0 && max == UINT32_MAX) { + return random_value; + } else { + /* Calculate the range and shift required to fit within [min, max] */ + return (random_value % (max - min + 1)) + min; + } +} + +void mmhal_reset(void) +{ + esp_restart(); + while (1) { + } +} + +void mmhal_set_deep_sleep_veto(uint8_t veto_id) +{ + MM_UNUSED(veto_id); +} + +void mmhal_clear_deep_sleep_veto(uint8_t veto_id) +{ + MM_UNUSED(veto_id); +} + +void mmhal_set_led(uint8_t led, uint8_t level) +{ + MM_UNUSED(led); + MM_UNUSED(level); +} + +bool mmhal_get_hardware_version(char *version_buffer, size_t version_buffer_length) +{ + /* Note: You need to identify the correct hardware and or version + * here using whatever means available (GPIO's, version number stored in EEPROM, etc) + * and return the correct string here. */ + return !mmosal_safer_strcpy(version_buffer, "MM-ESP32S3 V1.0", version_buffer_length); +} + +#endif /* USE_MM_IOT_ESP32 */ diff --git a/lib/MorseWlan/src/mmhal_wlan_binaries.c b/lib/MorseWlan/src/mmhal_wlan_binaries.c new file mode 100644 index 000000000..00a8528d2 --- /dev/null +++ b/lib/MorseWlan/src/mmhal_wlan_binaries.c @@ -0,0 +1,72 @@ +#ifdef USE_MM_IOT_ESP32 +/* + * Copyright 2021-2023 Morse Micro + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "mmhal_wlan.h" +#include "mmosal.h" + +/* + * --------------------------------------------------------------------------------------------- + * BCF Retrieval + * --------------------------------------------------------------------------------------------- + */ + +/* + * The following implementation reads the BCF File from the config store. + */ + +void mmhal_wlan_read_bcf_file(uint32_t offset, uint32_t requested_len, struct mmhal_robuf *robuf) +{ + /** Points to the start of the BCF binary image. Defined as part of the Makefile */ + extern uint8_t bcf_binary_start; + /** Points to the end of the BCF binary image. Defined as part of the Makefile */ + extern uint8_t bcf_binary_end; + + size_t bcf_len = &bcf_binary_end - &bcf_binary_start; + + /* Initialise robuf */ + robuf->buf = NULL; + robuf->len = 0; + robuf->free_arg = NULL; + robuf->free_cb = NULL; + + /* Sanity check */ + if (bcf_len < offset) { + printf("Detected an attempt to start reading off the end of the bcf file.\n"); + return; + } + + robuf->buf = (uint8_t *)&bcf_binary_start + offset; + robuf->len = bcf_len - offset; + robuf->len = (robuf->len < requested_len) ? robuf->len : requested_len; +} + +/* + * --------------------------------------------------------------------------------------------- + * Firmware Retrieval + * --------------------------------------------------------------------------------------------- + */ +/** Points to the start of the firmware binary image. Defined as part of the Makefile */ +extern uint8_t firmware_binary_start; +/** Points to the end of the firmware binary image. Defined as part of the Makefile */ +extern uint8_t firmware_binary_end; + +void mmhal_wlan_read_fw_file(uint32_t offset, uint32_t requested_len, struct mmhal_robuf *robuf) +{ + uint32_t firmware_len = &firmware_binary_end - &firmware_binary_start; + if (offset > firmware_len) { + printf("Detected an attempt to start read off the end of the firmware file.\n"); + robuf->buf = NULL; + return; + } + + robuf->buf = (&firmware_binary_start + offset); + firmware_len -= offset; + + robuf->len = (firmware_len < requested_len) ? firmware_len : requested_len; +} + +#endif /* USE_MM_IOT_ESP32 */ diff --git a/lib/MorseWlan/src/mmipal_lwip.c b/lib/MorseWlan/src/mmipal_lwip.c new file mode 100644 index 000000000..ac2dcf5f8 --- /dev/null +++ b/lib/MorseWlan/src/mmipal_lwip.c @@ -0,0 +1,726 @@ +#ifdef USE_MM_IOT_ESP32 +/* + * Copyright 2021-2023 Morse Micro + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "mmipal.h" +#include "mmnetif.h" +#include "mmosal.h" +#include "mmutils.h" +#include "mmwlan.h" + +#include "lwip/api.h" +#include "lwip/autoip.h" +#include "lwip/def.h" +#include "lwip/dhcp.h" +#include "lwip/dhcp6.h" +#include "lwip/dns.h" +#include "lwip/etharp.h" +#include "lwip/ethip6.h" +#include "lwip/igmp.h" +#include "lwip/inet.h" +#include "lwip/ip4_frag.h" +#include "lwip/ip6_frag.h" +#include "lwip/ip_addr.h" +#include "lwip/mem.h" +#include "lwip/sockets.h" +#include "lwip/stats.h" +#include "lwip/tcp.h" +#include "lwip/tcpip.h" +#include "lwip/udp.h" + +static struct mmipal_data { + struct netif lwip_mmnetif; + /** This stores the IPv4 link state for the IP stack. I.e., do we have an IP address or not. */ + enum mmipal_link_state ip_link_state; + /** Flag requesting ARP response offload feature */ + bool offload_arp_response; + /** ARP refresh offload interval in seconds */ + uint32_t offload_arp_refresh_s; + bool dhcp_offload_init_complete; + /** The link status callback function that has been registered. */ + mmipal_link_status_cb_fn_t link_status_callback; + /** The extended link status callback function that has been registered. */ + mmipal_ext_link_status_cb_fn_t ext_link_status_callback; + /** Argument for the extended link status callback function that has been registered. */ + void *ext_link_status_callback_arg; +#if LWIP_IPV4 + enum mmipal_addr_mode ip4_mode; +#endif +#if LWIP_IPV6 + enum mmipal_ip6_addr_mode ip6_mode; +#endif +} mmipal_data = {}; + +/** Getter function to retrieve the global mmipal data structure.*/ +static inline struct mmipal_data *mmipal_get_data(void) +{ + return &mmipal_data; +} + +static void netif_status_callback(struct netif *netif); + +#if LWIP_IPV4 + +/** + * DHCP Lease update callback, invoked when we get a new DHCP lease. + * + * @param lease_info The new DHCP lease. + */ +static void mmipal_dhcp_lease_updated(const struct mmwlan_dhcp_lease_info *lease_info, void *arg) +{ + struct mmipal_data *data = mmipal_get_data(); + + ip4_addr_t ip_addr, netmask, gateway; + ip_addr_t dns_addr = ip_addr_any; + + MM_UNUSED(arg); + + data->dhcp_offload_init_complete = true; + + ip4_addr_set_u32(&ip_addr, lease_info->ip4_addr); + ip4_addr_set_u32(&netmask, lease_info->mask4_addr); + ip4_addr_set_u32(&gateway, lease_info->gw4_addr); + ip4_addr_set_u32(ip_2_ip4(&dns_addr), lease_info->dns4_addr); + + LOCK_TCPIP_CORE(); + netif_set_addr(&data->lwip_mmnetif, &ip_addr, &netmask, &gateway); + dns_setserver(0, &dns_addr); + UNLOCK_TCPIP_CORE(); + + netif_status_callback(&data->lwip_mmnetif); +} + +enum mmipal_status mmipal_get_ip_config(struct mmipal_ip_config *config) +{ + struct mmipal_data *data = mmipal_get_data(); + char *result; + + config->mode = data->ip4_mode; + + result = ipaddr_ntoa_r(&data->lwip_mmnetif.ip_addr, config->ip_addr, sizeof(config->ip_addr)); + LWIP_ASSERT("IP buf too short", result != NULL); + + result = ipaddr_ntoa_r(&data->lwip_mmnetif.netmask, config->netmask, sizeof(config->netmask)); + LWIP_ASSERT("IP buf too short", result != NULL); + + result = ipaddr_ntoa_r(&data->lwip_mmnetif.gw, config->gateway_addr, sizeof(config->gateway_addr)); + LWIP_ASSERT("IP buf too short", result != NULL); + + return MMIPAL_SUCCESS; +} + +enum mmipal_status mmipal_set_ip_config(const struct mmipal_ip_config *config) +{ + struct mmipal_data *data = mmipal_get_data(); + int result; + ip_addr_t ip_addr = ip_addr_any; + ip_addr_t netmask = ip_addr_any; + ip_addr_t gateway = ip_addr_any; + struct netif *netif = &data->lwip_mmnetif; + + if (config->mode != MMIPAL_DHCP_OFFLOAD && data->ip4_mode == MMIPAL_DHCP_OFFLOAD) { + printf("Once enabled DHCP offload mode cannot be disabled\n"); + return MMIPAL_NOT_SUPPORTED; + } + + switch (config->mode) { + case MMIPAL_DISABLED: + printf("%s mode not supported\n", "DISABLED"); + return MMIPAL_INVALID_ARGUMENT; + + case MMIPAL_AUTOIP: + printf("%s mode not supported\n", "AutoIP"); + return MMIPAL_INVALID_ARGUMENT; + + case MMIPAL_DHCP_OFFLOAD: + /* Currently we only support enabling DHCP offload when initialising */ + printf("%s mode not supported\n", "DHCP_OFFLOAD"); + return MMIPAL_INVALID_ARGUMENT; + + case MMIPAL_STATIC: + result = ipaddr_aton(config->ip_addr, &ip_addr); + if (!result) { + return MMIPAL_INVALID_ARGUMENT; + } + result = ipaddr_aton(config->netmask, &netmask); + if (!result) { + return MMIPAL_INVALID_ARGUMENT; + } + result = ipaddr_aton(config->gateway_addr, &gateway); + if (!result) { + return MMIPAL_INVALID_ARGUMENT; + } + break; + + case MMIPAL_DHCP: + break; + } + + LOCK_TCPIP_CORE(); + + if (config->mode != MMIPAL_DHCP && data->ip4_mode == MMIPAL_DHCP) { + /* Stop DHCP if it was started earlier before setting static IP */ + dhcp_stop(netif); + } + + data->ip4_mode = config->mode; + + netif_set_addr(netif, ip_2_ip4(&ip_addr), ip_2_ip4(&netmask), ip_2_ip4(&gateway)); + if (data->ip4_mode == MMIPAL_DHCP) { + result = dhcp_start(netif); + LWIP_ASSERT("DHCP start error", result == ERR_OK); + } + + UNLOCK_TCPIP_CORE(); + return MMIPAL_SUCCESS; +} + +enum mmipal_status mmipal_get_ip_broadcast_addr(mmipal_ip_addr_t broadcast_addr) +{ + struct mmipal_data *data = mmipal_get_data(); + char *result; + + uint32_t ip_addr = ip_addr_get_ip4_u32(&data->lwip_mmnetif.ip_addr); + uint32_t netmask = ip_addr_get_ip4_u32(&data->lwip_mmnetif.netmask); + uint32_t broadcast_u32 = (ip_addr & netmask) | (0xffffffff & ~netmask); + ip_addr_t broadcast_ip_addr; + ip_addr_t *_broadcast_ip_addr = &broadcast_ip_addr; + ip_addr_set_ip4_u32(_broadcast_ip_addr, broadcast_u32); + + result = ipaddr_ntoa_r(&broadcast_ip_addr, broadcast_addr, MMIPAL_IPADDR_STR_MAXLEN); + LWIP_ASSERT("IP buf too short", result != NULL); + + return MMIPAL_SUCCESS; +} + +#else +enum mmipal_status mmipal_get_ip_config(struct mmipal_ip_config *config) +{ + MM_UNUSED(config); + LWIP_ASSERT("IPv4 not enabled", false); + return MMIPAL_NOT_SUPPORTED; +} + +enum mmipal_status mmipal_set_ip_config(const struct mmipal_ip_config *config) +{ + MM_UNUSED(config); + LWIP_ASSERT("IPv4 not enabled", false); + return MMIPAL_NOT_SUPPORTED; +} + +enum mmipal_status mmipal_get_ip_broadcast_addr(mmipal_ip_addr_t broadcast_addr) +{ + MM_UNUSED(broadcast_addr); + LWIP_ASSERT("IPv4 not enabled", false); + return MMIPAL_NOT_SUPPORTED; +} + +#endif + +#if LWIP_IPV6 + +enum mmipal_status mmipal_get_ip6_config(struct mmipal_ip6_config *config) +{ + struct mmipal_data *data = mmipal_get_data(); + unsigned ii; + struct netif *netif = &data->lwip_mmnetif; + + if (config == NULL) { + return MMIPAL_INVALID_ARGUMENT; + } + config->ip6_mode = data->ip6_mode; + for (ii = 0; ii < LWIP_IPV6_NUM_ADDRESSES; ii++) { + char *result; + const ip_addr_t *addr = &ip6_addr_any; + + if (ip6_addr_isvalid(netif_ip6_addr_state(netif, ii))) { + addr = &data->lwip_mmnetif.ip6_addr[ii]; + } + + result = ipaddr_ntoa_r(addr, config->ip6_addr[ii], sizeof(config->ip6_addr[ii])); + LWIP_ASSERT("IP buf too short", result != NULL); + } + return MMIPAL_SUCCESS; +} + +enum mmipal_status mmipal_set_ip6_config(const struct mmipal_ip6_config *config) +{ + struct mmipal_data *data = mmipal_get_data(); + struct netif *netif = &data->lwip_mmnetif; + err_t result; + unsigned ii; + ip_addr_t ip6_addr[LWIP_IPV6_NUM_ADDRESSES]; + + for (ii = 0; ii < LWIP_IPV6_NUM_ADDRESSES; ii++) { + int result = ipaddr_aton(config->ip6_addr[ii], &ip6_addr[ii]); + if (!result) { + return MMIPAL_INVALID_ARGUMENT; + } + } + + LOCK_TCPIP_CORE(); + + if (config->ip6_mode == MMIPAL_IP6_STATIC) { + if (data->ip6_mode != MMIPAL_IP6_STATIC) { +#if LWIP_IPV6_DHCP6 + dhcp6_disable(netif); +#endif + netif_set_ip6_autoconfig_enabled(netif, 0); + data->ip6_mode = MMIPAL_IP6_STATIC; + } + + if (!ip6_addr_islinklocal(ip_2_ip6(&(ip6_addr[0])))) { + printf("First address must be linklocal address (address start with fe80)\n"); + } + + for (ii = 0; ii < LWIP_IPV6_NUM_ADDRESSES; ii++) { + if (ip_addr_isany_val(ip6_addr[ii])) { + netif_ip6_addr_set(netif, ii, IP6_ADDR_ANY6); + netif_ip6_addr_set_state(netif, ii, IP6_ADDR_INVALID); + } else { + netif_ip6_addr_set(netif, ii, ip_2_ip6(&(ip6_addr[ii]))); + netif_ip6_addr_set_state(netif, ii, IP6_ADDR_TENTATIVE); + netif_ip6_addr_set_valid_life(netif, ii, IP6_ADDR_LIFE_STATIC); + } + } + } else { + if (data->ip6_mode == MMIPAL_IP6_STATIC) { + for (ii = 0; ii < LWIP_IPV6_NUM_ADDRESSES; ii++) { + netif_ip6_addr_set(netif, ii, IP6_ADDR_ANY6); + netif_ip6_addr_set_state(netif, ii, IP6_ADDR_INVALID); + } + } + netif_set_ip6_autoconfig_enabled(netif, 1); + netif_create_ip6_linklocal_address(netif, 1); + data->ip6_mode = MMIPAL_IP6_AUTOCONFIG; + } + + if (config->ip6_mode == MMIPAL_IP6_DHCP6_STATELESS) +#if LWIP_IPV6_DHCP6 + { + result = dhcp6_enable_stateless(netif); + LWIP_ASSERT("Stateless DHCP6 start error", result == ERR_OK); + data->ip6_mode = MMIPAL_IP6_DHCP6_STATELESS; + } else { + dhcp6_disable(netif); + } +#else + { + printf("LWIP_IPV6_DHCP6 is not enabled\n"); + } +#endif + + UNLOCK_TCPIP_CORE(); + return MMIPAL_SUCCESS; +} + +#else +enum mmipal_status mmipal_get_ip6_config(struct mmipal_ip6_config *config) +{ + MM_UNUSED(config); + LWIP_ASSERT("IPv6 not enabled", false); + return MMIPAL_NOT_SUPPORTED; +} + +enum mmipal_status mmipal_set_ip6_config(const struct mmipal_ip6_config *config) +{ + MM_UNUSED(config); + LWIP_ASSERT("IPv6 not enabled", false); + return MMIPAL_NOT_SUPPORTED; +} + +#endif + +static bool mmipal_link_status_check(struct netif *netif) +{ + bool ip4_addr_check = true; + +#if LWIP_IPV4 + ip4_addr_check = !ip_addr_isany(&(netif->ip_addr)); +#endif + + return ip4_addr_check && netif_is_link_up(netif); +} + +/** Handler for @c netif status callbacks from LWIP. */ +static void netif_status_callback(struct netif *netif) +{ + struct mmipal_data *data = mmipal_get_data(); + enum mmipal_link_state new_link_state = MMIPAL_LINK_DOWN; + +#if LWIP_IPV4 + if (data->ip4_mode == MMIPAL_DHCP_OFFLOAD) { + /* Initialize DHCP offload on link up */ + if (mmwlan_enable_dhcp_offload(mmipal_dhcp_lease_updated, NULL) != MMWLAN_SUCCESS) { + printf("Failed to enable DHCP offload!\n"); + } + + if (!data->dhcp_offload_init_complete) { + /* This just prevents a spurious 'Link Up' message on very first call */ + return; + } + } +#endif + + if (mmipal_link_status_check(netif)) { + new_link_state = MMIPAL_LINK_UP; + } + + if (data->ip_link_state != new_link_state) { + data->ip_link_state = new_link_state; + + if (data->link_status_callback || data->ext_link_status_callback) { + struct mmipal_link_status link_status; + memset(&link_status, 0, sizeof(link_status)); + link_status.link_state = data->ip_link_state; + +#if LWIP_IPV4 + char *result = ipaddr_ntoa_r(&netif->ip_addr, link_status.ip_addr, sizeof(link_status.ip_addr)); + LWIP_ASSERT("IP buf too short", result != NULL); + + result = ipaddr_ntoa_r(&netif->netmask, link_status.netmask, sizeof(link_status.netmask)); + LWIP_ASSERT("IP buf too short", result != NULL); + + result = ipaddr_ntoa_r(&netif->gw, link_status.gateway, sizeof(link_status.gateway)); + LWIP_ASSERT("IP buf too short", result != NULL); + + if (data->ip_link_state == MMIPAL_LINK_UP) { + /* Check if ARP response offload feature is enabled */ + if (data->offload_arp_response) { + mmwlan_enable_arp_response_offload(ip4_addr_get_u32(netif_ip4_addr(netif))); + } + + /* Check if ARP refresh offload feature is enabled */ + if (data->offload_arp_refresh_s > 0) { + mmwlan_enable_arp_refresh_offload(data->offload_arp_refresh_s, ip4_addr_get_u32(netif_ip4_gw(netif)), true); + } + } +#endif + if (data->link_status_callback) { + data->link_status_callback(&link_status); + } + if (data->ext_link_status_callback) { + data->ext_link_status_callback(&link_status, data->ext_link_status_callback_arg); + } + } + } +} + +void mmipal_set_link_status_callback(mmipal_link_status_cb_fn_t fn) +{ + struct mmipal_data *data = mmipal_get_data(); + data->link_status_callback = fn; +} + +void mmipal_set_ext_link_status_callback(mmipal_ext_link_status_cb_fn_t fn, void *arg) +{ + struct mmipal_data *data = mmipal_get_data(); + data->ext_link_status_callback = fn; + data->ext_link_status_callback_arg = arg; +} + +static volatile bool tcpip_init_done = false; + +struct lwip_init_args { + enum mmipal_addr_mode mode; + enum mmipal_ip6_addr_mode ip6_mode; + ip_addr_t ip_addr; + ip_addr_t netmask; + ip_addr_t gateway_addr; + ip_addr_t ip6_addr; +}; + +static void tcpip_init_done_handler(void *arg) +{ + struct mmipal_data *data = mmipal_get_data(); + struct netif *netif = &data->lwip_mmnetif; + struct lwip_init_args *args = (struct lwip_init_args *)arg; + + netif_add_noaddr(netif, NULL, mmnetif_init, tcpip_input); + netif_set_default(netif); + netif_set_up(netif); + +#if LWIP_IPV4 + err_t result; + data->ip4_mode = args->mode; + if (args->mode == MMIPAL_DHCP) { + result = dhcp_start(netif); + LWIP_ASSERT("DHCP start error", result == ERR_OK); + } else if (args->mode == MMIPAL_STATIC) { + netif_set_addr(netif, ip_2_ip4(&(args->ip_addr)), ip_2_ip4(&(args->netmask)), ip_2_ip4(&(args->gateway_addr))); + } +#endif + + netif_set_link_callback(netif, netif_status_callback); + netif_set_status_callback(netif, netif_status_callback); + +#if LWIP_IPV6 + err_t result6; + data->ip6_mode = args->ip6_mode; + if (args->ip6_mode == MMIPAL_IP6_STATIC) { + netif_ip6_addr_set(netif, 0, ip_2_ip6(&(args->ip6_addr))); + netif_ip6_addr_set_state(netif, 0, IP6_ADDR_TENTATIVE); + } else if (data->ip6_mode == MMIPAL_IP6_AUTOCONFIG) { + netif_set_ip6_autoconfig_enabled(netif, 1); + netif_create_ip6_linklocal_address(netif, 1); + } else if (data->ip6_mode == MMIPAL_IP6_DHCP6_STATELESS) +#if LWIP_IPV6_DHCP6 + { + result6 = dhcp6_enable_stateless(netif); + LWIP_ASSERT("Stateless DHCP6 start error", result6 == ERR_OK); + } +#else + { + printf("LWIP_IPV6_DHCP6 is not enabled\n"); + } +#endif +#endif + + mmosal_free(args); + + tcpip_init_done = true; +} + +enum mmipal_status mmipal_init(const struct mmipal_init_args *args) +{ + struct mmipal_data *data = mmipal_get_data(); + enum mmipal_status status = MMIPAL_INVALID_ARGUMENT; + int result; + + struct lwip_init_args *lwip_args = (struct lwip_init_args *)mmosal_malloc(sizeof(*lwip_args)); + if (lwip_args == NULL) { + printf("malloc failure\n"); + return MMIPAL_NO_MEM; + } + + memset(lwip_args, 0, sizeof(*lwip_args)); + lwip_args->mode = args->mode; + lwip_args->ip6_mode = args->ip6_mode; + + data->link_status_callback = NULL; + + data->offload_arp_response = args->offload_arp_response; + data->offload_arp_refresh_s = args->offload_arp_refresh_s; + + /* Validate arguments */ +#if LWIP_IPV4 + switch (args->mode) { + case MMIPAL_DISABLED: + printf("%s mode not supported\n", "DISABLED"); + goto exit; + + case MMIPAL_DHCP_OFFLOAD: + case MMIPAL_STATIC: + result = ipaddr_aton(args->ip_addr, &lwip_args->ip_addr); + if (!result) { + goto exit; + } + result = ipaddr_aton(args->netmask, &lwip_args->netmask); + if (!result) { + goto exit; + } + result = ipaddr_aton(args->gateway_addr, &lwip_args->gateway_addr); + if (!result) { + goto exit; + } + + if (ip_addr_isany_val(lwip_args->ip_addr)) { + printf("IP address not specified\n"); + goto exit; + } + break; + + case MMIPAL_DHCP: + if (LWIP_DHCP == 0) { + printf("DHCP not compiled in\n"); + goto exit; + } + break; + + case MMIPAL_AUTOIP: + printf("%s mode not supported\n", "AutoIP"); + break; + } +#endif + +#if LWIP_IPV6 + switch (args->ip6_mode) { + case MMIPAL_IP6_DISABLED: + break; + + case MMIPAL_IP6_STATIC: + result = ipaddr_aton(args->ip6_addr, &lwip_args->ip6_addr); + if (!result) { + goto exit; + } + + if (ip_addr_isany_val(lwip_args->ip6_addr)) { + printf("IP address not specified\n"); + goto exit; + } + break; + + case MMIPAL_IP6_AUTOCONFIG: + if (LWIP_IPV6_AUTOCONFIG == 0) { + printf("AUTOCONFIG not compiled in\n"); + goto exit; + } + break; + + case MMIPAL_IP6_DHCP6_STATELESS: + if (LWIP_IPV6_DHCP6_STATELESS == 0) { + printf("DHCP6_STATELESS not compiled in\n"); + goto exit; + } + break; + } +#endif + + tcpip_init(tcpip_init_done_handler, lwip_args); + + /* Block until initialisation is complete */ + while (!tcpip_init_done) { + mmosal_task_sleep(10); + } + + return MMIPAL_SUCCESS; + +exit: + mmosal_free(lwip_args); + return status; +} + +void mmipal_get_link_packet_counts(uint32_t *tx_packets, uint32_t *rx_packets) +{ +#if LWIP_STATS + *tx_packets = lwip_stats.link.xmit; + *rx_packets = lwip_stats.link.recv; +#else + *tx_packets = 0; + *rx_packets = 0; +#endif +} + +void mmipal_set_tx_qos_tid(uint8_t tid) +{ + struct mmipal_data *data = mmipal_get_data(); + bool ok = tcpip_init_done; + MMOSAL_ASSERT(ok); + mmnetif_set_tx_qos_tid(&data->lwip_mmnetif, tid); +} + +enum mmipal_link_state mmipal_get_link_state(void) +{ + struct mmipal_data *data = mmipal_get_data(); + return data->ip_link_state; +} + +static enum mmipal_status mmipal_get_local_addr_(ip_addr_t *local_addr, const ip_addr_t *dest_addr) +{ + struct mmipal_data *data = mmipal_get_data(); + struct netif *netif = &data->lwip_mmnetif; +#if LWIP_IPV6 + if (IP_IS_V6(dest_addr)) { + const ip_addr_t *src_addr = ip6_select_source_address(netif, ip_2_ip6(dest_addr)); + if (src_addr == NULL) { + return MMIPAL_NO_LINK; + } + ip_addr_copy(*local_addr, *src_addr); + return MMIPAL_SUCCESS; + } else { + MM_UNUSED(dest_addr); + } +#endif + +#if LWIP_IPV4 + if (IP_IS_V4(dest_addr)) { + ip_addr_copy(*local_addr, netif->ip_addr); + return MMIPAL_SUCCESS; + } else { + MM_UNUSED(dest_addr); + } +#endif + +#if !LWIP_IPV4 && !LWIP_IPV6 + MM_UNUSED(local_addr); + MM_UNUSED(dest_addr); +#endif + + return MMIPAL_INVALID_ARGUMENT; +} + +enum mmipal_status mmipal_get_local_addr(mmipal_ip_addr_t local_addr, const mmipal_ip_addr_t dest_addr) +{ + ip_addr_t lwip_dest_addr; + ip_addr_t lwip_local_addr; + int ok; + enum mmipal_status status; + + if (dest_addr == NULL) { + return MMIPAL_INVALID_ARGUMENT; + } + + ok = ipaddr_aton(dest_addr, &lwip_dest_addr); + if (!ok) { + return MMIPAL_INVALID_ARGUMENT; + } + + status = mmipal_get_local_addr_(&lwip_local_addr, &lwip_dest_addr); + if (status != 0) { + return status; + } + + if (ipaddr_ntoa_r(&lwip_local_addr, local_addr, MMIPAL_IPADDR_STR_MAXLEN) == NULL) { + return MMIPAL_NO_MEM; + } else { + return MMIPAL_SUCCESS; + } +} + +enum mmipal_status mmipal_set_dns_server(uint8_t index, const mmipal_ip_addr_t addr) +{ + ip_addr_t dns_addr; + int ok; + + if (index >= DNS_MAX_SERVERS) { + return MMIPAL_INVALID_ARGUMENT; + } + + ok = ipaddr_aton(addr, &dns_addr); + if (!ok) { + return MMIPAL_INVALID_ARGUMENT; + } + + dns_setserver(index, &dns_addr); + return MMIPAL_SUCCESS; +} + +enum mmipal_status mmipal_get_dns_server(uint8_t index, mmipal_ip_addr_t addr) +{ + const ip_addr_t *dns_addr; + + if (index >= DNS_MAX_SERVERS) { + return MMIPAL_INVALID_ARGUMENT; + } + + dns_addr = dns_getserver(index); + +#if LWIP_IPV4 + /* dns_getserver() returns ip_addr_any if no address configured. */ + if (!memcmp(dns_addr, &ip_addr_any, sizeof(*dns_addr))) { + addr[0] = '\0'; + return MMIPAL_SUCCESS; + } +#endif + + if (ipaddr_ntoa_r(dns_addr, addr, MMIPAL_IPADDR_STR_MAXLEN) == NULL) { + return MMIPAL_NO_MEM; + } else { + return MMIPAL_SUCCESS; + } +} + +#endif diff --git a/lib/MorseWlan/src/mmnetif.c b/lib/MorseWlan/src/mmnetif.c new file mode 100644 index 000000000..f8298fe0f --- /dev/null +++ b/lib/MorseWlan/src/mmnetif.c @@ -0,0 +1,218 @@ +#ifdef USE_MM_IOT_ESP32 +/* + * Copyright 2021-2023 Morse Micro + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "mmnetif.h" +#include "mmosal.h" +#include "mmwlan.h" + +#include "lwip/etharp.h" +#include "lwip/ethip6.h" +#include "lwip/tcpip.h" +#if LWIP_SNMP +#include "lwip/snmp.h" +#endif + +struct netif_state { + volatile uint8_t tx_qos_tid; +}; + +static struct netif_state *get_netif_state(struct netif *netif) +{ + MMOSAL_ASSERT(netif->state != NULL); + return (struct netif_state *)netif->state; +} + +/** pbuf wrapper around an mmpkt. */ +struct mmpkt_pbuf_wrapper { + struct pbuf_custom p; + struct mmpkt *pkt; + struct mmpktview *pktview; +}; + +LWIP_MEMPOOL_DECLARE(RX_POOL, MMPKTMEM_RX_POOL_N_BLOCKS, sizeof(struct mmpkt_pbuf_wrapper), "mmpkt_rx"); + +static void mmpkt_pbuf_wrapper_free(struct pbuf *p) +{ + struct mmpkt_pbuf_wrapper *pbuf = (struct mmpkt_pbuf_wrapper *)p; + if (p == NULL) { + return; + } + mmpkt_close(&pbuf->pktview); + mmpkt_release(pbuf->pkt); + LWIP_MEMPOOL_FREE(RX_POOL, pbuf); +} + +static void mmnetif_rx(struct mmpkt *rxpkt, void *arg) +{ + struct netif *netif = (struct netif *)arg; + LWIP_ASSERT("arg NULL", netif != NULL); + + LWIP_DEBUGF(NETIF_DEBUG, ("mmnetif: packet received\n")); + + struct mmpkt_pbuf_wrapper *pbuf = (struct mmpkt_pbuf_wrapper *)LWIP_MEMPOOL_ALLOC(RX_POOL); + if (pbuf != NULL) { + struct pbuf *p; + + pbuf->p.custom_free_function = mmpkt_pbuf_wrapper_free; + pbuf->pkt = rxpkt; + pbuf->pktview = mmpkt_open(pbuf->pkt); + + p = pbuf_alloced_custom(PBUF_RAW, mmpkt_get_data_length(pbuf->pktview), PBUF_REF, &pbuf->p, + mmpkt_get_data_start(pbuf->pktview), mmpkt_get_data_length(pbuf->pktview)); + int ret = tcpip_input(p, netif); + if (ret == ERR_OK) { + LINK_STATS_INC(link.recv); + } else { + LWIP_DEBUGF(NETIF_DEBUG, ("mmnetif: input error\n")); + pbuf_free(p); + LINK_STATS_INC(link.memerr); + LINK_STATS_INC(link.drop); + } + } else { + LWIP_DEBUGF(NETIF_DEBUG | LWIP_DBG_LEVEL_SERIOUS, ("mmnetif: alloc error\n")); + LINK_STATS_INC(link.memerr); + mmpkt_release(rxpkt); + } +} + +static void mmnetif_link_state(enum mmwlan_link_state link_state, void *arg) +{ + struct netif *netif = (struct netif *)arg; + LWIP_ASSERT("arg NULL", netif != NULL); + + LOCK_TCPIP_CORE(); + if (link_state == MMWLAN_LINK_DOWN) { + LWIP_DEBUGF(NETIF_DEBUG | LWIP_DBG_LEVEL_ALL, ("mmnetif: link down\n")); + /* Note: we cast netif_set_link_down to tcpip_callback_fn since the tcpip_callback_fn + * has a "void *" parameter and netif_set_link_down has "struct netif *". */ + err_t err = tcpip_callback_with_block((tcpip_callback_fn)netif_set_link_down, netif, 0); + LWIP_ASSERT("sched callback failed", err == ERR_OK); + } else { + LWIP_DEBUGF(NETIF_DEBUG | LWIP_DBG_LEVEL_ALL, ("mmnetif: link up\n")); + /* Note: we cast netif_set_link_down to tcpip_callback_fn since the tcpip_callback_fn + * has a "void *" parameter and netif_set_link_down has "struct netif *". */ + err_t err = tcpip_callback_with_block((tcpip_callback_fn)netif_set_link_up, netif, 0); + LWIP_ASSERT("sched callback failed", err == ERR_OK); + } + UNLOCK_TCPIP_CORE(); +} + +static err_t mmnetif_tx(struct netif *netif, struct pbuf *p) +{ + struct mmpkt *pkt; + struct mmpktview *pktview; + enum mmwlan_status status; + struct pbuf *walk; + struct mmwlan_tx_metadata metadata = { + .tid = get_netif_state(netif)->tx_qos_tid, + }; + + status = mmwlan_tx_wait_until_ready(1000); + if (status != MMWLAN_SUCCESS) { + LWIP_DEBUGF(NETIF_DEBUG | LWIP_DBG_LEVEL_SERIOUS, ("mmnetif: transmit blocked\n")); + LINK_STATS_INC(link.drop); + return ERR_BUF; + } + + pkt = mmwlan_alloc_mmpkt_for_tx(p->tot_len, metadata.tid); + if (pkt == NULL) { + LWIP_DEBUGF(NETIF_DEBUG | LWIP_DBG_LEVEL_SERIOUS, ("mmnetif: allocation failure\n")); + LINK_STATS_INC(link.memerr); + return ERR_MEM; + } + pktview = mmpkt_open(pkt); + for (walk = p; walk != NULL; walk = walk->next) { + mmpkt_append_data(pktview, (const uint8_t *)walk->payload, walk->len); + } + mmpkt_close(&pktview); + + status = mmwlan_tx_pkt(pkt, &metadata); + if (status != MMWLAN_SUCCESS) { + LWIP_DEBUGF(NETIF_DEBUG | LWIP_DBG_LEVEL_SERIOUS, ("mmnetif: error sending packet\n")); + LINK_STATS_INC(link.drop); + return ERR_BUF; + } + + LWIP_DEBUGF(NETIF_DEBUG | LWIP_DBG_LEVEL_ALL, ("mmnetif: packet sent\n")); + LINK_STATS_INC(link.xmit); + return ERR_OK; +} + +err_t mmnetif_init(struct netif *netif) +{ + static bool initialised = false; + if (initialised) { + return ERR_IF; + } + + LWIP_MEMPOOL_INIT(RX_POOL); + + LWIP_DEBUGF(NETIF_DEBUG | LWIP_DBG_LEVEL_ALL, ("mmnetif: initialising mmnetif\n")); + +#if LWIP_SNMP + NETIF_INIT_SNMP(netif, snmp_ifType_ethernet_csmacd, 1000000UL); +#endif + + enum mmwlan_status status; + + /* Boot the transceiver so that we can read the MAC address. */ + struct mmwlan_boot_args boot_args = MMWLAN_BOOT_ARGS_INIT; + status = mmwlan_boot(&boot_args); + if (status != MMWLAN_SUCCESS) { + LWIP_DEBUGF(NETIF_DEBUG | LWIP_DBG_LEVEL_SEVERE, ("mmwlan_boot failed with code %d\n", status)); + } + MMOSAL_ASSERT(status == MMWLAN_SUCCESS); + + /* Set MAC hardware address */ + netif->hwaddr_len = MMWLAN_MAC_ADDR_LEN; + status = mmwlan_get_mac_addr(netif->hwaddr); + MMOSAL_ASSERT(status == MMWLAN_SUCCESS); + + netif->mtu = 1500; +#if LWIP_IPV4 && !LWIP_IPV6 + netif->flags |= NETIF_FLAG_BROADCAST | NETIF_FLAG_ETHARP | NETIF_FLAG_IGMP; +#else + netif->flags |= NETIF_FLAG_BROADCAST | NETIF_FLAG_ETHARP | NETIF_FLAG_IGMP | NETIF_FLAG_MLD6; +#endif + + netif->state = NULL; + netif->name[0] = 'M'; + netif->name[1] = 'M'; + +#if LWIP_IPV4 + netif->output = etharp_output; +#endif +#if LWIP_IPV6 + netif->output_ip6 = ethip6_output; +#endif + netif->linkoutput = mmnetif_tx; + + struct netif_state *state = (struct netif_state *)mmosal_malloc(sizeof(*state)); + MMOSAL_ASSERT(state != NULL); + state->tx_qos_tid = MMWLAN_TX_DEFAULT_QOS_TID; + netif->state = state; + + status = mmwlan_register_rx_pkt_cb(mmnetif_rx, netif); + MMOSAL_ASSERT(status == MMWLAN_SUCCESS); + status = mmwlan_register_link_state_cb(mmnetif_link_state, netif); + MMOSAL_ASSERT(status == MMWLAN_SUCCESS); + + printf("Morse LwIP interface initialised. MAC address %02x:%02x:%02x:%02x:%02x:%02x\n", netif->hwaddr[0], netif->hwaddr[1], + netif->hwaddr[2], netif->hwaddr[3], netif->hwaddr[4], netif->hwaddr[5]); + + initialised = true; + + return ERR_OK; +} + +void mmnetif_set_tx_qos_tid(struct netif *netif, uint8_t tid) +{ + MMOSAL_ASSERT(tid <= MMWLAN_MAX_QOS_TID); + get_netif_state(netif)->tx_qos_tid = tid; +} + +#endif diff --git a/lib/MorseWlan/src/mmnetif.h b/lib/MorseWlan/src/mmnetif.h new file mode 100644 index 000000000..eccd2dd47 --- /dev/null +++ b/lib/MorseWlan/src/mmnetif.h @@ -0,0 +1,29 @@ +/* + * Copyright 2021-2023 Morse Micro + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#pragma once + +#include "lwip/err.h" +#include "lwip/netif.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** Initializer for the Morse Micro network interface */ +err_t mmnetif_init(struct netif *netif); + +/** + * Configure the QoS TID for the @c netif. QoS data will be sent using this TID. + * + * @param netif The @c netif to configure. + * @param tid The TID value to set. + */ +void mmnetif_set_tx_qos_tid(struct netif *netif, uint8_t tid); + +#ifdef __cplusplus +} +#endif diff --git a/lib/MorseWlan/src/mmosal_shim_freertos_esp32.c b/lib/MorseWlan/src/mmosal_shim_freertos_esp32.c new file mode 100644 index 000000000..a0ac717d7 --- /dev/null +++ b/lib/MorseWlan/src/mmosal_shim_freertos_esp32.c @@ -0,0 +1,563 @@ +#ifdef USE_MM_IOT_ESP32 +/* + * Copyright 2021-2023 Morse Micro + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "esp_debug_helpers.h" +#include "esp_private/startup_internal.h" +#include "freertos/FreeRTOS.h" +#include "freertos/queue.h" +#include "freertos/semphr.h" +#include "freertos/task.h" +#include "freertos/timers.h" +#include "rom/ets_sys.h" + +#include "mmhal.h" +#include "mmosal.h" + +/* --------------------------------------------------------------------------------------------- */ + +/** Maximum number of failure records to store (must be a power of 2). */ +#define MAX_FAILURE_RECORDS 4 + +/** Fast implementation of _x % _m where _m is a power of 2. */ +#define FAST_MOD(_x, _m) ((_x) & ((_m)-1)) + +/** Duration to delay before resetting the device on assert. */ +#define DELAY_BEFORE_RESET_MS 1000 + +/** Data structure for assertion information to be preserved. */ +struct mmosal_preserved_failure_info { + /** Magic number, to check if the info is valid. */ + uint32_t magic; + + /** Number of failures recorded. */ + uint32_t failure_count; + + /** Number of most recently displayed failure. */ + uint32_t displayed_failure_count; + + /** Preserved information from the most recent failure(s). */ + struct mmosal_failure_info info[MAX_FAILURE_RECORDS]; +}; + +/** Magic number to put in @c mmosal_assert_info.magic to indicate that the assertion info + * is valid. */ +#define ASSERT_INFO_MAGIC (0xabcd1234) + +/* Persistent assertion info. Linker script should put this into memory that is not + * zeroed on boot. Be careful to update linker script if renaming. */ +struct mmosal_preserved_failure_info preserved_failure_info __attribute__((section(".noinit"))); + +void mmosal_log_failure_info(const struct mmosal_failure_info *info) +{ + uint32_t record_num; + + if (preserved_failure_info.magic != ASSERT_INFO_MAGIC) { + preserved_failure_info.failure_count = 0; + preserved_failure_info.displayed_failure_count = 0; + } + + preserved_failure_info.magic = ASSERT_INFO_MAGIC; + record_num = FAST_MOD(preserved_failure_info.failure_count, MAX_FAILURE_RECORDS); + preserved_failure_info.failure_count++; + memcpy(&preserved_failure_info.info[record_num], info, sizeof(*info)); +} + +static void mmosal_dump_failure_info(void) +{ + unsigned first_failure_num = preserved_failure_info.displayed_failure_count; + unsigned new_failure_count = preserved_failure_info.failure_count - preserved_failure_info.displayed_failure_count; + unsigned failure_offset; + + if (new_failure_count >= MAX_FAILURE_RECORDS) { + first_failure_num = FAST_MOD(preserved_failure_info.failure_count, MAX_FAILURE_RECORDS); + new_failure_count = MAX_FAILURE_RECORDS; + } + + for (failure_offset = 0; failure_offset < new_failure_count; failure_offset++) { + unsigned ii; + unsigned idx = FAST_MOD(first_failure_num + failure_offset, MAX_FAILURE_RECORDS); + struct mmosal_failure_info *info = &preserved_failure_info.info[idx]; + + ets_printf("Failure %u logged at pc 0x%08lx, lr 0x%08lx, line %ld in %08lx\n", first_failure_num + failure_offset, + info->pc, info->lr, info->line, info->fileid); + + for (ii = 0; ii < sizeof(info->platform_info) / sizeof(info->platform_info[0]); ii++) { + ets_printf(" 0x%08lx\n", info->platform_info[ii]); + } + } + + preserved_failure_info.displayed_failure_count = preserved_failure_info.failure_count; +} + +void mmosal_impl_assert(void) +{ + ets_printf("MMOSAL Assert, CPU %d (current core) backtrace", xPortGetCoreID()); + (void)esp_backtrace_print(100); +#ifdef HALT_ON_ASSERT + if (preserved_failure_info.magic == ASSERT_INFO_MAGIC) { + mmosal_dump_failure_info(); + } + mmosal_disable_interrupts(); + mmhal_log_flush(); + MMPORT_BREAKPOINT(); +#else + mmosal_task_sleep(DELAY_BEFORE_RESET_MS); + mmhal_reset(); +#endif + while (1) { + } +} + +/* Function to be called as part of the secondary initialization. See [System + * Initialization](https://docs.espressif.com/projects/esp-idf/en/latest/esp32s3/api-guides/startup.html#system-initialization) + * for more information. */ +ESP_SYSTEM_INIT_FN(mmosal_dump_failure_info, BIT(0), 999) +{ + if (preserved_failure_info.magic == ASSERT_INFO_MAGIC) { + mmosal_dump_failure_info(); + } + return ESP_OK; +} + +/* --------------------------------------------------------------------------------------------- */ + +void *mmosal_malloc_(size_t size) +{ + return pvPortMalloc(size); +} + +#ifdef MMOSAL_TRACK_ALLOCATIONS +void *mmosal_malloc_dbg(size_t size, const char *name, unsigned line_number) +{ + return pvPortMalloc_dbg(size, name, line_number); +} +#else +void *mmosal_malloc_dbg(size_t size, const char *name, unsigned line_number) +{ + (void)name; + (void)line_number; + return pvPortMalloc(size); +} +#endif + +void mmosal_free(void *p) +{ + vPortFree(p); +} + +void *mmosal_realloc(void *ptr, size_t size) +{ + return realloc(ptr, size); +} + +void *mmosal_calloc(size_t nitems, size_t size) +{ + void *ptr = pvPortMalloc(nitems * size); + if (ptr == NULL) { + return NULL; + } + + memset(ptr, 0, nitems * size); + return ptr; +} + +/* --------------------------------------------------------------------------------------------- */ + +struct mmosal_task_arg { + mmosal_task_fn_t task_fn; + void *task_fn_arg; +}; + +void mmosal_task_main(void *arg) +{ + struct mmosal_task_arg task_arg = *(struct mmosal_task_arg *)arg; + mmosal_free(arg); + task_arg.task_fn(task_arg.task_fn_arg); + mmosal_task_delete(NULL); +} + +struct mmosal_task *mmosal_task_create(mmosal_task_fn_t task_fn, void *argument, enum mmosal_task_priority priority, + unsigned stack_size_u32, const char *name) +{ + TaskHandle_t handle; + UBaseType_t freertos_priority = tskIDLE_PRIORITY + priority; + + struct mmosal_task_arg *task_arg = (struct mmosal_task_arg *)mmosal_malloc(sizeof(*task_arg)); + if (task_arg == NULL) { + return NULL; + } + task_arg->task_fn = task_fn; + task_arg->task_fn_arg = argument; + + BaseType_t result = xTaskCreate(mmosal_task_main, name, stack_size_u32 * 4, task_arg, freertos_priority, &handle); + if (result == pdFAIL) { + mmosal_free(task_arg); + return NULL; + } + + return (struct mmosal_task *)handle; +} + +void mmosal_task_delete(struct mmosal_task *task) +{ + vTaskDelete((TaskHandle_t)task); +} + +/* + * Warning: this function should not be used since eTaskGetState() is not a reliable + * means of testing whether a task has completed. + * + * This function will be removed in future. + */ +void mmosal_task_join(struct mmosal_task *task) +{ + while (eTaskGetState((TaskHandle_t)task) != eDeleted) { + mmosal_task_sleep(10); + } +} + +struct mmosal_task *mmosal_task_get_active(void) +{ + return (struct mmosal_task *)xTaskGetCurrentTaskHandle(); +} + +void mmosal_task_yield(void) +{ + taskYIELD(); +} + +void mmosal_task_sleep(uint32_t duration_ms) +{ + vTaskDelay(duration_ms / portTICK_PERIOD_MS); +} + +static portMUX_TYPE task_spinlock = portMUX_INITIALIZER_UNLOCKED; + +void mmosal_task_enter_critical(void) +{ + taskENTER_CRITICAL(&task_spinlock); +} + +void mmosal_task_exit_critical(void) +{ + taskEXIT_CRITICAL(&task_spinlock); +} + +void mmosal_disable_interrupts(void) +{ + taskDISABLE_INTERRUPTS(); +} + +void mmosal_enable_interrupts(void) +{ + taskENABLE_INTERRUPTS(); +} + +const char *mmosal_task_name(void) +{ + TaskHandle_t t = xTaskGetCurrentTaskHandle(); + return pcTaskGetName(t); +} + +bool mmosal_task_wait_for_notification(uint32_t timeout_ms) +{ + TickType_t wait = portMAX_DELAY; + if (timeout_ms < UINT32_MAX) { + wait = pdMS_TO_TICKS(timeout_ms); + } + uint32_t ret = ulTaskNotifyTake(pdTRUE, /* Act as binary semaphore */ + wait); + return (ret != 0); +} + +void mmosal_task_notify(struct mmosal_task *task) +{ + xTaskNotifyGive((TaskHandle_t)task); +} + +void mmosal_task_notify_from_isr(struct mmosal_task *task) +{ + BaseType_t higher_priority_task_woken = pdFALSE; + vTaskNotifyGiveFromISR((TaskHandle_t)task, &higher_priority_task_woken); + portYIELD_FROM_ISR(higher_priority_task_woken); +} + +/* --------------------------------------------------------------------------------------------- */ + +struct mmosal_mutex *mmosal_mutex_create(const char *name) +{ + struct mmosal_mutex *mutex = (struct mmosal_mutex *)xSemaphoreCreateMutex(); +#if (configUSE_TRACE_FACILITY == 1) && defined(ENABLE_TRACEALYZER) && ENABLE_TRACEALYZER + if (name != NULL) { + vTraceSetMutexName(mutex, name); + } +#else + (void)name; +#endif + return mutex; +} + +void mmosal_mutex_delete(struct mmosal_mutex *mutex) +{ + if (mutex != NULL) { + vQueueDelete((SemaphoreHandle_t)mutex); + } +} + +bool mmosal_mutex_get(struct mmosal_mutex *mutex, uint32_t timeout_ms) +{ + uint32_t timeout_ticks = portMAX_DELAY; + if (timeout_ms != UINT32_MAX) { + timeout_ticks = timeout_ms / portTICK_PERIOD_MS; + } + return (xSemaphoreTake((SemaphoreHandle_t)mutex, timeout_ticks) == pdPASS); +} + +bool mmosal_mutex_release(struct mmosal_mutex *mutex) +{ + return (xSemaphoreGive((SemaphoreHandle_t)mutex) == pdPASS); +} + +bool mmosal_mutex_is_held_by_active_task(struct mmosal_mutex *mutex) +{ + return xSemaphoreGetMutexHolder((SemaphoreHandle_t)mutex) == xTaskGetCurrentTaskHandle(); +} + +/* --------------------------------------------------------------------------------------------- */ + +struct mmosal_sem *mmosal_sem_create(unsigned max_count, unsigned initial_count, const char *name) +{ + struct mmosal_sem *sem = (struct mmosal_sem *)xSemaphoreCreateCounting(max_count, initial_count); +#if (configUSE_TRACE_FACILITY == 1) && defined(ENABLE_TRACEALYZER) && ENABLE_TRACEALYZER + if (name != NULL) { + vTraceSetSemaphoreName(sem, name); + } +#else + (void)name; +#endif + return sem; +} + +void mmosal_sem_delete(struct mmosal_sem *sem) +{ + vQueueDelete((SemaphoreHandle_t)sem); +} + +bool mmosal_sem_give(struct mmosal_sem *sem) +{ + return xSemaphoreGive((SemaphoreHandle_t)sem); +} + +bool mmosal_sem_give_from_isr(struct mmosal_sem *sem) +{ + BaseType_t task_woken = false; + BaseType_t ret = xSemaphoreGiveFromISR((SemaphoreHandle_t)sem, &task_woken); + if (ret == pdPASS) { + portYIELD_FROM_ISR(task_woken); + return true; + } else { + return false; + } +} + +bool mmosal_sem_wait(struct mmosal_sem *sem, uint32_t timeout_ms) +{ + uint32_t timeout_ticks = portMAX_DELAY; + if (timeout_ms != UINT32_MAX) { + timeout_ticks = timeout_ms / portTICK_PERIOD_MS; + } + return (xSemaphoreTake((SemaphoreHandle_t)sem, timeout_ticks) == pdPASS); +} + +uint32_t mmosal_sem_get_count(struct mmosal_sem *sem) +{ + return uxSemaphoreGetCount((SemaphoreHandle_t)sem); +} + +/* --------------------------------------------------------------------------------------------- */ + +struct mmosal_semb *mmosal_semb_create(const char *name) +{ + struct mmosal_semb *semb = (struct mmosal_semb *)xSemaphoreCreateBinary(); +#if (configUSE_TRACE_FACILITY == 1) && defined(ENABLE_TRACEALYZER) && ENABLE_TRACEALYZER + if (name != NULL) { + vTraceSetSemaphoreName(semb, name); + } +#else + (void)name; +#endif + return semb; +} + +void mmosal_semb_delete(struct mmosal_semb *semb) +{ + vQueueDelete((SemaphoreHandle_t)semb); +} + +bool mmosal_semb_give(struct mmosal_semb *semb) +{ + return (xSemaphoreGive((SemaphoreHandle_t)semb) == pdPASS); +} + +bool mmosal_semb_give_from_isr(struct mmosal_semb *semb) +{ + BaseType_t task_woken = pdFALSE; + BaseType_t ret = xSemaphoreGiveFromISR((SemaphoreHandle_t)semb, &task_woken); + if (ret == pdPASS) { + portYIELD_FROM_ISR(task_woken); + return true; + } else { + return false; + } +} + +bool mmosal_semb_wait(struct mmosal_semb *semb, uint32_t timeout_ms) +{ + uint32_t timeout_ticks = portMAX_DELAY; + if (timeout_ms != UINT32_MAX) { + timeout_ticks = timeout_ms / portTICK_PERIOD_MS; + } + return (xSemaphoreTake((SemaphoreHandle_t)semb, timeout_ticks) == pdPASS); +} + +/* --------------------------------------------------------------------------------------------- */ + +struct mmosal_queue *mmosal_queue_create(size_t num_items, size_t item_size, const char *name) +{ + struct mmosal_queue *queue = (struct mmosal_queue *)xQueueCreate(num_items, item_size); +#if (configUSE_TRACE_FACILITY == 1) && defined(ENABLE_TRACEALYZER) && ENABLE_TRACEALYZER + if (name != NULL) { + vTraceSetQueueName(queue, name); + } +#else + (void)name; +#endif + return queue; +} + +void mmosal_queue_delete(struct mmosal_queue *queue) +{ + vQueueDelete((SemaphoreHandle_t)queue); +} + +bool mmosal_queue_pop(struct mmosal_queue *queue, void *item, uint32_t timeout_ms) +{ + uint32_t timeout_ticks = portMAX_DELAY; + if (timeout_ms != UINT32_MAX) { + timeout_ticks = timeout_ms / portTICK_PERIOD_MS; + } + return (xQueueReceive((SemaphoreHandle_t)queue, item, timeout_ticks) == pdPASS); +} + +bool mmosal_queue_push(struct mmosal_queue *queue, const void *item, uint32_t timeout_ms) +{ + uint32_t timeout_ticks = portMAX_DELAY; + if (timeout_ms != UINT32_MAX) { + timeout_ticks = timeout_ms / portTICK_PERIOD_MS; + } + return (xQueueSendToBack((SemaphoreHandle_t)queue, item, timeout_ticks) == pdPASS); +} + +bool mmosal_queue_pop_from_isr(struct mmosal_queue *queue, void *item) +{ + BaseType_t task_woken = pdFALSE; + if (xQueueReceiveFromISR((SemaphoreHandle_t)queue, item, &task_woken) == pdTRUE) { + portYIELD_FROM_ISR(task_woken); + return true; + } else { + return false; + } +} + +bool mmosal_queue_push_from_isr(struct mmosal_queue *queue, const void *item) +{ + BaseType_t task_woken = pdFALSE; + if (xQueueSendToBackFromISR((SemaphoreHandle_t)queue, item, &task_woken) == pdTRUE) { + portYIELD_FROM_ISR(task_woken); + return true; + } else { + return false; + } +} + +/* --------------------------------------------------------------------------------------------- */ + +uint32_t mmosal_get_time_ms(void) +{ + return xTaskGetTickCount() * portTICK_PERIOD_MS; +} + +uint32_t mmosal_get_time_ticks(void) +{ + return xTaskGetTickCount(); +} + +uint32_t mmosal_ticks_per_second(void) +{ + return portTICK_PERIOD_MS * 1000; +} + +/* --------------------------------------------------------------------------------------------- */ + +struct mmosal_timer *mmosal_timer_create(const char *name, uint32_t timer_period, bool auto_reload, void *arg, + timer_callback_t callback) +{ + /* + * The software timer callback functions execute in the context of a task that is + * created automatically when the FreeRTOS scheduler is started. Therefore, it is essential that + * software timer callback functions never call FreeRTOS API functions that will result in the + * calling task entering the Blocked state. It is ok to call functions such as xQueueReceive(), but + * only if the function’s xTicksToWait parameter (which specifies the function’s block time) is set + * to 0. It is not ok to call functions such as vTaskDelay(), as calling vTaskDelay() will always + * place the calling task into the Blocked state. + */ + return (struct mmosal_timer *)xTimerCreate(name, pdMS_TO_TICKS(timer_period), (UBaseType_t)auto_reload, arg, + (TimerCallbackFunction_t)callback); +} + +void mmosal_timer_delete(struct mmosal_timer *timer) +{ + if (timer != NULL) { + BaseType_t ret = xTimerDelete((TimerHandle_t)timer, 0); + configASSERT(ret == pdPASS); + } +} + +bool mmosal_timer_start(struct mmosal_timer *timer) +{ + BaseType_t ret = xTimerStart((TimerHandle_t)timer, 0); + + return (ret == pdPASS); +} + +bool mmosal_timer_stop(struct mmosal_timer *timer) +{ + BaseType_t ret = xTimerStop((TimerHandle_t)timer, 0); + + return (ret == pdPASS); +} + +bool mmosal_timer_change_period(struct mmosal_timer *timer, uint32_t new_period) +{ + BaseType_t ret = xTimerChangePeriod((TimerHandle_t)timer, pdMS_TO_TICKS(new_period), 0); + + return (ret == pdPASS); +} + +void *mmosal_timer_get_arg(struct mmosal_timer *timer) +{ + return pvTimerGetTimerID((TimerHandle_t)timer); +} + +bool mmosal_is_timer_active(struct mmosal_timer *timer) +{ + BaseType_t ret = xTimerIsTimerActive((TimerHandle_t)timer); + + return (ret != pdFALSE); +} + +#endif /* USE_MM_IOT_ESP32 */ diff --git a/lib/MorseWlan/src/mmpktmem_heap.c b/lib/MorseWlan/src/mmpktmem_heap.c new file mode 100644 index 000000000..69c8c05ab --- /dev/null +++ b/lib/MorseWlan/src/mmpktmem_heap.c @@ -0,0 +1,245 @@ +#ifdef USE_MM_IOT_ESP32 +/* + * Copyright 2024 Morse Micro + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include +#include + +#include "mmhal.h" +#include "mmosal.h" +#include "mmpkt.h" +#include "mmpkt_list.h" +#include "mmutils.h" + +/* MMPKTMEM_TX_POOL_N_BLOCKS and MMPKTMEM_RX_POOL_N_BLOCKS provide an upper bound on the number + * of packets we will allocate in the transmit and receive directions respectively. */ + +#ifndef MMPKTMEM_TX_POOL_N_BLOCKS +#error MMPKTMEM_TX_POOL_N_BLOCKS not defined +#endif + +#ifndef MMPKTMEM_RX_POOL_N_BLOCKS +#error MMPKTMEM_RX_POOL_N_BLOCKS not defined +#endif + +/* Packet pool for data/management frames configuration. */ +#define TX_DATA_POOL_UNPAUSE_THRESHOLD (MMPKTMEM_TX_POOL_N_BLOCKS - 2) +#define TX_DATA_POOL_PAUSE_THRESHOLD (MMPKTMEM_TX_POOL_N_BLOCKS - 1) + +/* Packet pool for commands configuration. */ +#define TX_COMMAND_POOL_BLOCK_SIZE (256) +#define TX_COMMAND_POOL_N_BLOCKS (2) + +#ifndef MMPKT_LOG +#define MMPKT_LOG(...) printf(__VA_ARGS__) +#endif + +struct pktmem_data { + /** Count of allocated tx packets (excluding command pool -- see below). */ + volatile atomic_int_least32_t tx_data_pool_allocated; + /** Boolean tracking whether the data path is currently paused. */ + volatile atomic_uint_fast8_t tx_data_pool_tx_paused; + /** Count of allocated rx packets. */ + volatile atomic_int_least32_t rx_pool_allocated; + + /** Command pool free (unallocated) packet list. */ + struct mmpkt_list tx_command_pool_free_list; + /** Statically allocated memory for the command pool. */ + uint8_t tx_command_pool[TX_COMMAND_POOL_BLOCK_SIZE * TX_COMMAND_POOL_N_BLOCKS]; + + /** Flow control callback function pointer. */ + mmhal_wlan_pktmem_tx_flow_control_cb_t tx_flow_control_cb; +}; + +static struct pktmem_data pktmem; + +void mmhal_wlan_pktmem_init(struct mmhal_wlan_pktmem_init_args *args) +{ + unsigned ii; + + memset(&pktmem, 0, sizeof(pktmem)); + + pktmem.tx_flow_control_cb = args->tx_flow_control_cb; + + /* Initialize the free (unallocated) packet list of the transmit command pool. */ + for (ii = 0; ii < TX_COMMAND_POOL_N_BLOCKS; ii++) { + size_t offset = TX_COMMAND_POOL_BLOCK_SIZE * ii; + mmpkt_list_append(&pktmem.tx_command_pool_free_list, (struct mmpkt *)(pktmem.tx_command_pool + offset)); + } +} + +void mmhal_wlan_pktmem_deinit(void) +{ + size_t ii; + + /* If there is still memory allocated, allow some time for other threads to clean up. */ + for (ii = 0; ii < 100; ii++) { + if ((pktmem.tx_command_pool_free_list.len | pktmem.tx_data_pool_allocated | pktmem.tx_data_pool_allocated) == 0) { + break; + } + mmosal_task_sleep(10); + } + + /* Check for memory leaks. */ + if (pktmem.tx_data_pool_allocated != 0) { + MMPKT_LOG("Potential memory leak: %d %s pool allocations at deinit\n", (int)pktmem.tx_data_pool_allocated, "data"); + } + + if (pktmem.tx_command_pool_free_list.len != TX_COMMAND_POOL_N_BLOCKS) { + MMPKT_LOG("Potential memory leak: %d %s pool allocations at deinit\n", + TX_COMMAND_POOL_N_BLOCKS - (int)pktmem.tx_command_pool_free_list.len, "command"); + } +} + +/* + * -------------------------------------------------------------------------------------- + * Command pool + * -------------------------------------------------------------------------------------- + */ + +static void tx_command_reserved_free(void *mmpkt) +{ + struct mmpkt *pkt = (struct mmpkt *)mmpkt; + MMOSAL_TASK_ENTER_CRITICAL(); + mmpkt_list_append(&pktmem.tx_command_pool_free_list, pkt); + MMOSAL_TASK_EXIT_CRITICAL(); +} + +static const struct mmpkt_ops tx_command_pool_ops = { + .free_mmpkt = tx_command_reserved_free, +}; + +static struct mmpkt *alloc_pkt_from_list(struct mmpkt_list *list, uint32_t pktbufsize, uint32_t space_at_start, + uint32_t space_at_end, uint32_t metadata_length) +{ + struct mmpkt *mmpkt_buf; + struct mmpkt *mmpkt; + + MMOSAL_TASK_ENTER_CRITICAL(); + mmpkt_buf = mmpkt_list_dequeue(list); + MMOSAL_TASK_EXIT_CRITICAL(); + + if (mmpkt_buf == NULL) { + return NULL; + } + + mmpkt = mmpkt_init_buf((uint8_t *)mmpkt_buf, pktbufsize, space_at_start, space_at_end, metadata_length, &tx_command_pool_ops); + if (mmpkt == NULL) { + /* Command was too big for the reserved buffer. Return the reserved buffer. */ + tx_command_reserved_free(mmpkt_buf); + } + + return mmpkt; +} + +static struct mmpkt *command_pool_alloc(uint32_t space_at_start, uint32_t space_at_end, uint32_t metadata_length) +{ + return alloc_pkt_from_list(&pktmem.tx_command_pool_free_list, TX_COMMAND_POOL_BLOCK_SIZE, space_at_start, space_at_end, + metadata_length); +} + +/* + * -------------------------------------------------------------------------------------- + * Data pool + * -------------------------------------------------------------------------------------- + */ + +static void tx_data_pool_pkt_free(void *mmpkt) +{ + atomic_int_least32_t old_value = atomic_fetch_sub(&pktmem.tx_data_pool_allocated, 1); + MMOSAL_ASSERT(old_value > 0); + mmosal_free(mmpkt); + + if (pktmem.tx_data_pool_allocated < TX_DATA_POOL_UNPAUSE_THRESHOLD) { + atomic_uint_fast8_t old_tx_paused = atomic_exchange(&pktmem.tx_data_pool_tx_paused, 0); + if (old_tx_paused) { + pktmem.tx_flow_control_cb(MMWLAN_TX_READY); + } + } +} + +static const struct mmpkt_ops tx_data_pool_pkt_ops = { + .free_mmpkt = tx_data_pool_pkt_free, +}; + +struct mmpkt *mmhal_wlan_alloc_mmpkt_for_tx(uint8_t pkt_class, uint32_t space_at_start, uint32_t space_at_end, + uint32_t metadata_length) +{ + atomic_int_least32_t old_value; + struct mmpkt *mmpkt; + + /* For command packets, try allocating from the command pool first. If that fails then + * we proceed to allocate from the data pool. */ + if (pkt_class == MMHAL_WLAN_PKT_COMMAND) { + mmpkt = command_pool_alloc(space_at_start, space_at_end, metadata_length); + if (mmpkt != NULL) { + return mmpkt; + } + } + + old_value = atomic_fetch_add(&pktmem.tx_data_pool_allocated, 1); + + if (old_value >= MMPKTMEM_TX_POOL_N_BLOCKS) { + /* Maximum allocations reached. Do not attempt to increase further. */ + atomic_fetch_sub(&pktmem.tx_data_pool_allocated, 1); + return NULL; + } + + mmpkt = mmpkt_alloc_on_heap(space_at_start, space_at_end, metadata_length); + if (mmpkt == NULL) { + atomic_fetch_sub(&pktmem.tx_data_pool_allocated, 1); + return NULL; + } + + mmpkt->ops = &tx_data_pool_pkt_ops; + + if (pktmem.tx_data_pool_allocated > TX_DATA_POOL_PAUSE_THRESHOLD) { + atomic_uint_fast8_t old_tx_paused = atomic_exchange(&pktmem.tx_data_pool_tx_paused, 1); + if (!old_tx_paused) { + pktmem.tx_flow_control_cb(MMWLAN_TX_PAUSED); + } + } + + return mmpkt; +} + +static void rx_pkt_free(void *mmpkt) +{ + if (mmpkt != NULL) { + atomic_fetch_sub(&pktmem.rx_pool_allocated, 1); + mmosal_free(mmpkt); + } +} + +static const struct mmpkt_ops mmpkt_rx_ops = {.free_mmpkt = rx_pkt_free}; + +struct mmpkt *mmhal_wlan_alloc_mmpkt_for_rx(uint32_t capacity, uint32_t metadata_length) +{ + atomic_int_least32_t old_value; + struct mmpkt *mmpkt; + + old_value = atomic_fetch_add(&pktmem.rx_pool_allocated, 1); + + if (old_value >= MMPKTMEM_RX_POOL_N_BLOCKS) { + /* Maximum allocations reached. Do not attempt to increase further. */ + atomic_fetch_sub(&pktmem.rx_pool_allocated, 1); + return NULL; + } + + /* For now we do not put an explicit limit on the of packets buffers on the RX path. */ + mmpkt = mmpkt_alloc_on_heap(0, capacity, metadata_length); + if (mmpkt == NULL) { + atomic_fetch_sub(&pktmem.rx_pool_allocated, 1); + return NULL; + } + + /* Override packet ops to use a custom free function that also decrements the + * allocation count. */ + mmpkt->ops = &mmpkt_rx_ops; + return mmpkt; +} + +#endif diff --git a/lib/MorseWlan/src/mmport.h b/lib/MorseWlan/src/mmport.h new file mode 100644 index 000000000..36efe7581 --- /dev/null +++ b/lib/MorseWlan/src/mmport.h @@ -0,0 +1,12 @@ +/* + * Copyright 2023 Morse Micro + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#pragma once + +#define MMPORT_BREAKPOINT() while (1) +#define MMPORT_GET_LR() (__builtin_return_address(0)) +#define MMPORT_GET_PC(_a) ((_a) = 0) // TODO +#define MMPORT_MEM_SYNC() __sync_synchronize() \ No newline at end of file diff --git a/lib/MorseWlan/src/mmutils.h b/lib/MorseWlan/src/mmutils.h new file mode 100644 index 000000000..739aa262d --- /dev/null +++ b/lib/MorseWlan/src/mmutils.h @@ -0,0 +1,301 @@ +/* + * Copyright 2024 Morse Micro + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/** + * @defgroup MMUTILS Morse Micro Utilities + * + * Utility macros and functions to improve quality of life. + * + * @{ + */ + +#pragma once + +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * Get the minimum of 2 values. + * + * Note that this macro is not ideal and should be used with caution. Caveats include: + * * The two parameters may be evaluated more than once, so should be constant values that + * do not have side effects. For example, do NOT do `MM_MIN(a++, b)`. + * * There are no explicit constraints on types, so be careful of comparing different integer + * types, etc. + * + * @param _x The first value to compare. + * @param _y The second value to compare. + * + * @returns the minimum of @p _x and @p _y. + */ +#define MM_MIN(_x, _y) (((_x) < (_y)) ? (_x) : (_y)) + +/** + * Get the maximum of 2 values. + * + * Note that this macro is not ideal and should be used with caution. Caveats include: + * * The two parameters may be evaluated more than once, so should be constant values that + * do not have side effects. For example, do NOT do `MM_MAX(a++, b)`. + * * There are no explicit constraints on types, so be careful of comparing different integer + * types, etc. + * + * @param _x The first value to compare. + * @param _y The second value to compare. + * + * @returns the maximum of @p _x and @p _y. + */ +#define MM_MAX(_x, _y) (((_x) > (_y)) ? (_x) : (_y)) + +/** + * Round @p x up to the next multiple of @p m (where @p m is a power of 2). + * + * @warning @p m must be a power of 2. + */ +#ifndef MM_FAST_ROUND_UP +#define MM_FAST_ROUND_UP(x, m) ((((x)-1) | ((m)-1)) + 1) +#endif + +/** Casts the given expression to void to avoid "unused" warnings from the compiler. */ +#define MM_UNUSED(_x) (void)(_x) + +/** Tells the compiler to pack the structure. */ +#ifndef MM_PACKED +#define MM_PACKED __attribute__((packed)) +#endif + +/** Used to declare a weak symbol. */ +#ifndef MM_WEAK +#define MM_WEAK __attribute__((weak)) +#endif + +#ifndef MM_STATIC_ASSERT +/** + * Assertion check that is evaluated at compile time. + * + * The constant expression, @p _expression, is evaluted at compile time. If zero then + * it triggers a compilation error and @p _message is displayed. If non-zero, no code + * is emitted. + * + * @param _expression Constant expression to evaluate. If zero then a compilation error + * is triggered. + * @param _message Message to display on error. + */ +#define MM_STATIC_ASSERT(_expression, _message) _Static_assert((_expression), _message) +#endif + +/** + * Return the number of elements in the given array. + * + * @param _a The array to get the element count for. Note that this must be an _array_ + * and not a pointer. Beware that array-type function arguments are + * actually treated as pointers by the compiler. Must not be NULL. + * + * @returns the count of elements in the given array. + */ +#define MM_ARRAY_COUNT(_a) (sizeof(_a) / sizeof((_a)[0])) + +/** + * Convert the least significant 4 bits of the given argument to a character representing their + * hexadecimal value. + * + * For example, for input 0xde this will return 'E', for 0x01 it will return '1'. + * + * @param nibble The input nibble (upper 4 bits will be discarded). + * + * @return The character that represents the hexadecimal value of the lower 4 bits of @p nibble. + * Values greater than 0x09 will be represented with upper case characters. + */ +static inline char mm_nibble_to_hex_char(uint8_t nibble) +{ + nibble &= 0x0f; + if (nibble < 0x0a) { + return '0' + nibble; + } else { + return 'A' + nibble - 0x0a; + } +} + +/** + * @defgroup MMUTILS_WLAN WLAN Utilities + * + * Utility macros and functions relating to WLAN. + * + * @{ + */ + +/** Enumeration of Authentication Key Management (AKM) Suite OUIs as BE32 integers. */ +enum mm_akm_suite_oui { + /** Open (no security) */ + MM_AKM_SUITE_NONE = 0, + /** Pre-shared key (WFA OUI) */ + MM_AKM_SUITE_PSK = 0x506f9a02, + /** Simultaneous Authentication of Equals (SAE) */ + MM_AKM_SUITE_SAE = 0x000fac08, + /** OWE */ + MM_AKM_SUITE_OWE = 0x000fac12, + /** Another suite not in this enum */ + MM_AKM_SUITE_OTHER = 1, +}; + +/** Enumeration of Cipher Suite OUIs as BE32 integers. */ +enum mm_cipher_suite_oui { + /** Open (no security) */ + MM_CIPHER_SUITE_AES_CCM = 0x000fac04, + /** Another cipher suite not in this enum */ + MM_CIPHER_SUITE_OTHER = 1, +}; + +/** Maximum number of pairwise cipher suites our parser will process. */ +#ifndef MM_RSN_INFORMATION_MAX_PAIRWISE_CIPHER_SUITES +#define MM_RSN_INFORMATION_MAX_PAIRWISE_CIPHER_SUITES (2) +#endif + +/** Maximum number of AKM suites our parser will process. */ +#ifndef MM_RSN_INFORMATION_MAX_AKM_SUITES +#define MM_RSN_INFORMATION_MAX_AKM_SUITES (2) +#endif + +/** Tag number of the RSN information element, in which we can find security details of the AP. */ +#define MM_RSN_INFORMATION_IE_TYPE (48) +/** Tag number of the Vendor Specific information element. */ +#define MM_VENDOR_SPECIFIC_IE_TYPE (221) + +/** Explicitly defined errno values to obviate the need to include errno.h. MM prefix to + * avoid namespace collision in case errno.h gets included. */ +enum mm_errno { + MM_ENOMEM = 12, + MM_EFAULT = 14, + MM_ENODEV = 19, + MM_EINVAL = 22, + MM_ETIMEDOUT = 110, +}; + +/** + * Data structure to represent information extracted from an RSN information element. + * + * All integers in host order. + */ +struct mm_rsn_information { + /** The group cipher suite OUI. */ + uint32_t group_cipher_suite; + /** Pairwise cipher suite OUIs. Count given by @c num_pairwise_cipher_suites. */ + uint32_t pairwise_cipher_suites[MM_RSN_INFORMATION_MAX_PAIRWISE_CIPHER_SUITES]; + /** AKM suite OUIs. Count given by @c num_akm_suites. */ + uint32_t akm_suites[MM_RSN_INFORMATION_MAX_AKM_SUITES]; + /** Number of pairwise cipher suites in @c pairwise_cipher_suites. */ + uint16_t num_pairwise_cipher_suites; + /** Number of AKM suites in @c akm_suites. */ + uint16_t num_akm_suites; + /** Version number of the RSN IE. */ + uint16_t version; + /** RSN Capabilities field of the RSN IE (in host order). */ + uint16_t rsn_capabilities; +}; + +/** + * Get the name of the given AKM Suite as a string. + * + * @param akm_suite_oui The OUI of the AKM suite as a big endian integer. + * + * @returns the string representation. + */ +const char *mm_akm_suite_to_string(uint32_t akm_suite_oui); + +/** + * Search a list of Information Elements (IEs) from the given starting offset and find the first + * instance of matching the given type. + * + * @warning A @p search_offset that is not aligned to the start of an IE header will result in + * undefined behaviour. + * + * @param ies Buffer containing the information elements. + * @param ies_len Length of @p ies + * @param search_offset Offset to start searching from. This **must** point to a IE header. + * @param ie_type The type of the IE to look for. + * + * @return If the information element is found, the offset of the start of the IE within @p ies; if + * no match is found then -1; if the IE is found but is malformed then -2. + */ +int mm_find_ie_from_offset(const uint8_t *ies, uint32_t ies_len, uint32_t search_offset, uint8_t ie_type); + +/** + * Search a list of Information Elements (IEs) and find the first instance of matching the + * given type. + * + * @param ies Buffer containing the information elements. + * @param ies_len Length of @p ies + * @param ie_type The type of the IE to look for. + * + * @return If the information element is found, the offset of the start of the IE within @p ies; + * if no match is found then -1; if the IE is found but is malformed then -2. + */ +static inline int mm_find_ie(const uint8_t *ies, uint32_t ies_len, uint8_t ie_type) +{ + return mm_find_ie_from_offset(ies, ies_len, 0, ie_type); +} + +/** + * Search through the given list of Information Elements (IEs) from the given starting offset to + * find the first Vendor Specific IE that matches the given id. + * + * @warning A @p search_offset that is not aligned to the start of an IE header will result in + * undefined behaviour. + * + * @param[in] ies Buffer containing the information elements. + * @param[in] ies_len Length of @p ies + * @param[in] search_offset Offset to start searching from. This **must** point to a IE header. + * @param[in] id Buffer containing the IE ID, usually OUI+TYPE. + * @param[in] id_len Length of the ID. + * + * @return If the information element is found, the offset of the start of the IE within @p ies; if + * no match is found then -1; if the IE is found but is malformed then -2. + */ +int mm_find_vendor_specific_ie_from_offset(const uint8_t *ies, uint32_t ies_len, uint32_t search_offset, const uint8_t *id, + size_t id_len); + +/** + * Search through the given list of Information Elements (IEs) to find the first Vendor Specific IE + * that matches the given id. + * + * @param[in] ies Buffer containing the information elements. + * @param[in] ies_len Length of @p ies + * @param[in] id Buffer containing the IE ID, usually OUI+TYPE. + * @param[in] id_len Length of the ID. + * + * @return If the information element is found, the offset of the start of the IE within @p ies; if + * no match is found then -1; if the IE is found but is malformed then -2. + */ +static inline int mm_find_vendor_specific_ie(const uint8_t *ies, uint32_t ies_len, const uint8_t *id, size_t id_len) +{ + return mm_find_vendor_specific_ie_from_offset(ies, ies_len, 0, id, id_len); +} + +/** + * Search through the given list of information elements to find the RSN IE then parse it + * to extract relevant information into an instance of @ref mm_rsn_information. + * + * @param[in] ies Buffer containing the information elements. + * @param[in] ies_len Length of @p ies + * @param[out] output Pointer to an instance of @ref mm_rsn_information to receive output. + * + * @returns -2 on parse error, -1 if the RSN IE was not found, 0 if the RSN IE was found. + */ +int mm_parse_rsn_information(const uint8_t *ies, uint32_t ies_len, struct mm_rsn_information *output); + +/** @} */ + +#ifdef __cplusplus +} +#endif + +/** @} */ diff --git a/lib/MorseWlan/src/mmutils_wlan.c b/lib/MorseWlan/src/mmutils_wlan.c new file mode 100644 index 000000000..7ab7e4407 --- /dev/null +++ b/lib/MorseWlan/src/mmutils_wlan.c @@ -0,0 +1,163 @@ +#ifdef USE_MM_IOT_ESP32 +/* + * Copyright 2024 Morse Micro + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include + +#include "mmutils.h" + +const char *mm_akm_suite_to_string(uint32_t akm_suite_oui) +{ + switch (akm_suite_oui) { + case MM_AKM_SUITE_NONE: + return "None"; + + case MM_AKM_SUITE_PSK: + return "PSK"; + + case MM_AKM_SUITE_SAE: + return "SAE"; + + case MM_AKM_SUITE_OWE: + return "OWE"; + + default: + return "Other"; + } +} + +int mm_find_ie_from_offset(const uint8_t *ies, uint32_t ies_len, uint32_t search_offset, uint8_t ie_type) +{ + while ((search_offset + 2) <= ies_len) { + uint8_t type = ies[search_offset]; + uint8_t length = ies[search_offset + 1]; + + if (type == ie_type) { + if ((search_offset + 2 + length) > ies_len) { + return -2; + } + return search_offset; + } + + search_offset += 2 + length; + } + + return -1; +} + +int mm_find_vendor_specific_ie_from_offset(const uint8_t *ies, uint32_t ies_len, uint32_t search_offset, const uint8_t *id, + size_t id_len) +{ + int offset = 0; + + while ((search_offset + id_len) <= ies_len) { + offset = mm_find_ie_from_offset(ies, ies_len, search_offset, MM_VENDOR_SPECIFIC_IE_TYPE); + if (offset < 0) { + return offset; + } + + uint8_t ie_type = ies[offset]; + uint8_t ie_length = ies[offset + 1]; + const uint8_t *ie_data = ies + (offset + 2); + + if (ie_type == MM_VENDOR_SPECIFIC_IE_TYPE && id_len <= ie_length && (memcmp(id, ie_data, id_len) == 0)) { + if (((uint32_t)offset + 2 + ie_length) > ies_len) { + return -2; + } + return offset; + } + + search_offset = 2 + ie_length + (uint32_t)offset; + } + + return -1; +} + +int mm_parse_rsn_information(const uint8_t *ies, uint32_t ies_len, struct mm_rsn_information *output) +{ + uint8_t length; + uint16_t num_pairwise_cipher_suites; + uint16_t num_akm_suites; + uint16_t ii; + + int offset = mm_find_ie(ies, ies_len, MM_RSN_INFORMATION_IE_TYPE); + + memset(output, 0, sizeof(*output)); + + if (offset < 0) { + return offset; + } + + /* Note that we rely on mm_find_ie() to validate that the IE does not extend past the end + * of the given buffer. */ + + length = ies[offset + 1]; + offset += 2; + + if (length < 8) { + printf("*WRN* RSN IE too short\n"); + return -2; + } + + /* Skip version field */ + output->version = ies[offset] | ies[offset + 1] << 8; + offset += 2; + length -= 2; + + output->group_cipher_suite = ies[offset] << 24 | ies[offset + 1] << 16 | ies[offset + 2] << 8 | ies[offset + 3]; + offset += 4; + length -= 4; + + num_pairwise_cipher_suites = ies[offset] | ies[offset + 1] << 8; + offset += 2; + length -= 2; + + output->num_pairwise_cipher_suites = num_pairwise_cipher_suites; + if (num_pairwise_cipher_suites > MM_RSN_INFORMATION_MAX_PAIRWISE_CIPHER_SUITES) { + output->num_pairwise_cipher_suites = MM_RSN_INFORMATION_MAX_PAIRWISE_CIPHER_SUITES; + } + + if (length < 4 * num_pairwise_cipher_suites + 2) { + printf("*WRN* RSN IE too short\n"); + return -2; + } + + for (ii = 0; ii < num_pairwise_cipher_suites; ii++) { + if (ii < output->num_pairwise_cipher_suites) { + output->pairwise_cipher_suites[ii] = + ies[offset] << 24 | ies[offset + 1] << 16 | ies[offset + 2] << 8 | ies[offset + 3]; + } + offset += 4; + length -= 4; + } + + num_akm_suites = ies[offset] | ies[offset + 1] << 8; + offset += 2; + length -= 2; + + output->num_akm_suites = num_akm_suites; + if (num_akm_suites > MM_RSN_INFORMATION_MAX_AKM_SUITES) { + output->num_akm_suites = MM_RSN_INFORMATION_MAX_AKM_SUITES; + } + + if (length < 4 * num_akm_suites + 2) { + printf("*WRN* RSN IE too short\n"); + return -2; + } + + for (ii = 0; ii < num_akm_suites; ii++) { + if (ii < output->num_akm_suites) { + output->akm_suites[ii] = ies[offset] << 24 | ies[offset + 1] << 16 | ies[offset + 2] << 8 | ies[offset + 3]; + } + offset += 4; + length -= 4; + } + + output->rsn_capabilities = ies[offset] | ies[offset + 1] << 8; + return 0; +} + +#endif /* USE_MM_IOT_ESP32 */ diff --git a/lib/MorseWlan/src/wlan_hal.c b/lib/MorseWlan/src/wlan_hal.c new file mode 100644 index 000000000..cae932468 --- /dev/null +++ b/lib/MorseWlan/src/wlan_hal.c @@ -0,0 +1,267 @@ +#ifdef USE_MM_IOT_ESP32 +/* + * Copyright 2021-2023 Morse Micro + * + * SPDX-License-Identifier: Apache-2.0 + */ +#include +#include +#include +#include + +#include "mmhal.h" +#include "mmosal.h" + +#include "driver/gpio.h" +#include "driver/spi_common.h" +#include "driver/spi_master.h" +#include "esp_random.h" +#include "esp_system.h" + +/** 10x8bit training seq */ +#define BYTE_TRAIN 16 + +/** SPI hw interrupt handler. Must be set before enabling irq */ +static mmhal_irq_handler_t spi_irq_handler = NULL; + +/** busy interrupt handler. Must be set before enabling irq */ +static mmhal_irq_handler_t busy_irq_handler = NULL; + +static spi_device_handle_t spi_handle; + +static void wlan_hal_gpio_init(void) +{ + gpio_config_t io_conf = {}; + io_conf.intr_type = GPIO_INTR_DISABLE; + io_conf.mode = GPIO_MODE_OUTPUT; + io_conf.pin_bit_mask = ((1ull << CONFIG_MM_WAKE) | (1ull << CONFIG_MM_SPI_CS)); + io_conf.pull_down_en = 0; + io_conf.pull_up_en = 0; + gpio_config(&io_conf); + + gpio_set_level(CONFIG_MM_WAKE, 0); + gpio_set_level(CONFIG_MM_SPI_CS, 0); + + io_conf.intr_type = GPIO_INTR_DISABLE; + io_conf.mode = GPIO_MODE_INPUT; + io_conf.pin_bit_mask = (1ull << CONFIG_MM_BUSY); + io_conf.pull_down_en = 1; + gpio_config(&io_conf); + + io_conf.intr_type = GPIO_INTR_DISABLE; + io_conf.mode = GPIO_MODE_INPUT; + io_conf.pin_bit_mask = (1ull << CONFIG_MM_SPI_IRQ); + io_conf.pull_down_en = 0; + gpio_config(&io_conf); +} + +static void wlan_hal_spi_init(void) +{ + esp_err_t ret; + + spi_bus_config_t buscfg = { + .miso_io_num = CONFIG_MM_SPI_MISO, + .mosi_io_num = CONFIG_MM_SPI_MOSI, + .sclk_io_num = CONFIG_MM_SPI_SCK, + .quadwp_io_num = -1, + .quadhd_io_num = -1, + /* max_transfer_sz defaults to 4092 if 0 when DMA enabled, or to SOC_SPI_MAXIMUM_BUFFER_SIZE + * if DMA is disabled. */ + .max_transfer_sz = 0, + .flags = SPICOMMON_BUSFLAG_MASTER, + }; + ret = spi_bus_initialize(SPI2_HOST, &buscfg, SPI_DMA_CH_AUTO); + if (ret != ESP_OK) { + printf("spi_bus_initialize failed\n"); + } + + /* Selected the highest available SPI clock speed that is still below the MM6108's maximum of + * 50MHz */ + spi_device_interface_config_t dev_cfg = { + .clock_speed_hz = SPI_MASTER_FREQ_40M, + .mode = 0, + .spics_io_num = -1, + .queue_size = 1, + }; + ret = spi_bus_add_device(SPI2_HOST, &dev_cfg, &spi_handle); + if (ret != ESP_OK) { + printf("spi_bus_add_device failed\n"); + } + + /* The actual clock frequency may not be the one that was set as it is re-calculated by the + * driver to the nearest hardware-compatible number. Importantly it is the "nearest", so it could be above + * the value set. */ + int actual_freq_khz = 0; + spi_device_get_actual_freq(spi_handle, &actual_freq_khz); + printf("Actual SPI CLK %dkHz\n", actual_freq_khz); +} + +static void wlan_hal_spi_deinit(void) +{ + esp_err_t ret = spi_bus_remove_device(spi_handle); + if (ret != ESP_OK) { + printf("spi_bus_remove_device failed\n"); + } + + ret = spi_bus_free(SPI2_HOST); + if (ret != ESP_OK) { + printf("spi_bus_initialize failed\n"); + } +} + +/** + * Minium transfer length in bytes before interrupt based transactions are used. This is because + * there is some setup time associated with using the interrupt based method when compared to the + * polling method. In the cases where the difference in setup time exceeds the transaction duration + * it is more efficient to uses the polling method instead of the interrupt based one. The below + * equation was used to calculate this. + * + * (DMA_TRANSACTION_DURATION - POLL_TRANSACTION_DURATION) / (8/SPI_FREQ) + * + * The typical duration for the ESP32 can be found in the [transaction + * duration](https://docs.espressif.com/projects/esp-idf/en/v5.1.1/esp32s3/api-reference/peripherals/spi_master.html#transaction-duration) + * section of the docs. + */ +#define INTERRUPT_TRANSFER_MIN_LENGTH 75 + +static void spi_master_rw(const uint8_t *w_data, uint8_t *r_data, size_t len) +{ + spi_transaction_t trans_desc = { + .rx_buffer = r_data, + .tx_buffer = w_data, + .length = (len * 8), + .flags = 0, + }; + + esp_err_t err; + if (len < INTERRUPT_TRANSFER_MIN_LENGTH) { + err = spi_device_polling_transmit(spi_handle, &trans_desc); + } else { + err = spi_device_transmit(spi_handle, &trans_desc); + } + + if (err != ESP_OK) { + printf("SPI rw error = %x\n", err); + } +} + +void mmhal_wlan_hard_reset(void) +{ + gpio_set_level(CONFIG_MM_RESET_N, 0); + mmosal_task_sleep(5); + gpio_set_level(CONFIG_MM_RESET_N, 1); + mmosal_task_sleep(20); +} + +void mmhal_wlan_spi_cs_assert(void) +{ + gpio_set_level(CONFIG_MM_SPI_CS, 0); +} + +void mmhal_wlan_spi_cs_deassert(void) +{ + gpio_set_level(CONFIG_MM_SPI_CS, 1); +} + +uint8_t mmhal_wlan_spi_rw(uint8_t data) +{ + uint8_t readval; + spi_master_rw(&data, &readval, 1); + return readval; +} + +void mmhal_wlan_spi_read_buf(uint8_t *buf, unsigned len) +{ + spi_master_rw(NULL, buf, len); +} + +void mmhal_wlan_spi_write_buf(const uint8_t *buf, unsigned len) +{ + spi_master_rw(buf, NULL, len); +} + +void mmhal_wlan_send_training_seq(void) +{ + mmhal_wlan_spi_cs_deassert(); + /* Send >74 clock pulses to card to stabilize CLK. + * This method of stacking up the TX data is described in RM0090 rev 19 Figure 253. + * It results is a reduction in the time between bytes of ~85% (316ns -> 48ns). + * Could not get this to work for the other transactions however. + */ + uint8_t buf[BYTE_TRAIN] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}; + spi_master_rw(buf, NULL, BYTE_TRAIN); +} + +void mmhal_wlan_register_spi_irq_handler(mmhal_irq_handler_t handler) +{ + spi_irq_handler = handler; + gpio_isr_handler_add(CONFIG_MM_SPI_IRQ, (gpio_isr_t)spi_irq_handler, NULL); +} + +bool mmhal_wlan_spi_irq_is_asserted(void) +{ + return !gpio_get_level(CONFIG_MM_SPI_IRQ); +} + +void mmhal_wlan_set_spi_irq_enabled(bool enabled) +{ + if (enabled) { + gpio_set_intr_type(CONFIG_MM_SPI_IRQ, GPIO_INTR_LOW_LEVEL); + } else { + gpio_set_intr_type(CONFIG_MM_SPI_IRQ, GPIO_INTR_DISABLE); + } +} + +void mmhal_wlan_init(void) +{ + wlan_hal_gpio_init(); + wlan_hal_spi_init(); + /* Raise the RESET_N line to enable the WLAN transceiver. */ + gpio_set_level(CONFIG_MM_RESET_N, 1); +} + +void mmhal_wlan_deinit(void) +{ + /* Lower the RESET_N line to disable the WLAN transceiver. This will put the transceiver in its + * lowest power state. */ + gpio_set_level(CONFIG_MM_RESET_N, 0); + + wlan_hal_spi_deinit(); + + /* Clean up any ISR handlers that have been added. These will be added again if the WLAN + * interface is brought back up. */ + gpio_isr_handler_remove(CONFIG_MM_SPI_IRQ); + gpio_isr_handler_remove(CONFIG_MM_BUSY); +} + +void mmhal_wlan_wake_assert(void) +{ + gpio_set_level(CONFIG_MM_WAKE, 1); +} + +void mmhal_wlan_wake_deassert(void) +{ + gpio_set_level(CONFIG_MM_WAKE, 0); +} + +bool mmhal_wlan_busy_is_asserted(void) +{ + return gpio_get_level(CONFIG_MM_BUSY); +} + +void mmhal_wlan_register_busy_irq_handler(mmhal_irq_handler_t handler) +{ + busy_irq_handler = handler; + gpio_isr_handler_add(CONFIG_MM_BUSY, (gpio_isr_t)busy_irq_handler, NULL); +} + +void mmhal_wlan_set_busy_irq_enabled(bool enabled) +{ + if (enabled) { + gpio_set_intr_type(CONFIG_MM_BUSY, GPIO_INTR_POSEDGE); + } else { + gpio_set_intr_type(CONFIG_MM_BUSY, GPIO_INTR_DISABLE); + } +} + +#endif /* USE_MM_IOT_ESP32 */ diff --git a/src/main.cpp b/src/main.cpp index 28842734c..ad37f4333 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -801,7 +801,15 @@ void setup() #endif #else // ESP32 -#if defined(HW_SPI1_DEVICE) +#if defined(USE_HALOW_RADIO) && !defined(USE_SX1262) && !defined(USE_RF95) && !defined(USE_LR11X0) + // HaLow-only ESP32 variant: Morse's wlan_hal claims SPI2_HOST itself via + // ESP-IDF's spi_bus_initialize() (lib/MorseWlan/src/wlan_hal.c). Calling + // Arduino SPI.begin() on the default LORA_* pins both (a) collides on + // SPI2_HOST and (b) reconfigures GPIO 5 as SPI clock, clobbering the + // HaLow BUSY input. Skip Arduino's bus init — there's no LoRa, no + // display, no SD card on this board. + LOG_DEBUG("Skipping Arduino SPI.begin() — HaLow owns SPI2_HOST"); +#elif defined(HW_SPI1_DEVICE) SPI1.begin(LORA_SCK, LORA_MISO, LORA_MOSI, LORA_CS); LOG_DEBUG("SPI1.begin(SCK=%d, MISO=%d, MOSI=%d, NSS=%d)", LORA_SCK, LORA_MISO, LORA_MOSI, LORA_CS); SPI1.setFrequency(4000000); diff --git a/src/mesh/RadioInterface.cpp b/src/mesh/RadioInterface.cpp index f4f25f80c..0cd2d239c 100644 --- a/src/mesh/RadioInterface.cpp +++ b/src/mesh/RadioInterface.cpp @@ -34,6 +34,10 @@ #include "STM32WLE5JCInterface.h" #endif +#ifdef USE_HALOW_RADIO +#include "halow/HaLowInterface.h" +#endif + static const meshtastic_Config_LoRaConfig_ModemPreset PRESETS_STD[] = { meshtastic_Config_LoRaConfig_ModemPreset_LONG_FAST, meshtastic_Config_LoRaConfig_ModemPreset_LONG_SLOW, meshtastic_Config_LoRaConfig_ModemPreset_MEDIUM_SLOW, meshtastic_Config_LoRaConfig_ModemPreset_MEDIUM_FAST, @@ -520,6 +524,22 @@ std::unique_ptr initLoRa() rebootAtMsec = millis() + 5000; } } + +#ifdef USE_HALOW_RADIO + // HaLow is the only radio on the dedicated XIAO+HaLow variant, so we only + // try it when no LoRa chip claimed the slot. The interface itself stubs + // out cleanly when USE_MM_IOT_ESP32 is not yet wired in (Phase 0 of plan). + if (!rIf) { + auto halowIf = std::unique_ptr(new HaLowInterface()); + if (!halowIf->init()) { + LOG_WARN("HaLow init failed (stub or SDK not present)"); + } else { + LOG_INFO("HaLow init success"); + rIf = std::move(halowIf); + } + } +#endif + return rIf; } diff --git a/src/mesh/halow/HaLowFrame.h b/src/mesh/halow/HaLowFrame.h new file mode 100644 index 000000000..265f89b3d --- /dev/null +++ b/src/mesh/halow/HaLowFrame.h @@ -0,0 +1,18 @@ +#pragma once + +#include +#include + +// IEEE 802 Local Experimental EtherType 1, valid on private LANs. Carries a +// Meshtastic RadioBuffer (PacketHeader + payload, ≤255 bytes) end-to-end so the +// LoRa wire format is preserved on HaLow. +static constexpr uint16_t ETHERTYPE_MESHTASTIC_HALOW = 0x88B5; + +static constexpr uint8_t HALOW_BROADCAST_MAC[6] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}; + +struct __attribute__((packed)) HaLowEthFrameHeader { + uint8_t dst[6]; + uint8_t src[6]; + uint16_t ethertype; // network byte order on the wire +}; +static_assert(sizeof(HaLowEthFrameHeader) == 14, "HaLow ethernet header must be 14 bytes"); diff --git a/src/mesh/halow/HaLowInterface.cpp b/src/mesh/halow/HaLowInterface.cpp new file mode 100644 index 000000000..3458fa81f --- /dev/null +++ b/src/mesh/halow/HaLowInterface.cpp @@ -0,0 +1,287 @@ +#include "configuration.h" +#ifdef USE_HALOW_RADIO + +#include "HaLowFrame.h" +#include "HaLowInterface.h" +#include "MeshTypes.h" +#include "RTC.h" // getValidTime / RTCQualityFromNet +#include +#if HAS_UDP_MULTICAST +#include "main.h" // for `udpHandler` +#include "mesh/generated/meshtastic/config.pb.h" +#endif + +#ifdef USE_MM_IOT_ESP32 +extern "C" { +#include "mmhal.h" +#include "mmipal.h" +#include "mmwlan.h" +#include "mmwlan_regdb.def" +} + +#ifndef HALOW_COUNTRY_CODE +#define HALOW_COUNTRY_CODE "US" +#endif +// SSID/PSK supplied at build time. Empty SSID means "don't auto-associate" — +// the chip boots and idles, useful for testing without an AP nearby. +#ifndef HALOW_SSID +#define HALOW_SSID "" +#endif +#ifndef HALOW_PASSPHRASE +#define HALOW_PASSPHRASE "" +#endif +#endif + +HaLowInterface::HaLowInterface() : concurrency::OSThread("HaLow") {} + +#ifdef USE_MM_IOT_ESP32 +// Static glue so the C callbacks can reach into the (non-static) instance. +// Only one HaLowInterface exists, owned by Router::iface or constructed at +// boot, so a single pointer is sufficient. +static HaLowInterface *s_instance = nullptr; + +static void halow_link_state_cb(enum mmwlan_link_state link_state, void *arg) +{ + (void)arg; + if (link_state == MMWLAN_LINK_UP) { + struct mmipal_ip_config ipcfg = {}; + if (mmipal_get_ip_config(&ipcfg) == MMIPAL_SUCCESS) { + LOG_INFO("HaLow: link UP, ip=%s netmask=%s gw=%s", ipcfg.ip_addr, ipcfg.netmask, ipcfg.gateway_addr); + } else { + LOG_INFO("HaLow: link UP (no IP yet)"); + } + int32_t rssi = mmwlan_get_rssi(); + if (rssi != INT32_MIN) { + LOG_INFO("HaLow: AP RSSI %ld dBm", (long)rssi); + } + } else { + LOG_INFO("HaLow: link DOWN"); + } +} + +// mmwlan delivers Ethernet-framed packets here: 14-byte 802.3 header + payload. +// The payload is whatever EtherType we used on the TX side — we filter for our +// own marker and decode the inner RadioBuffer. +void HaLowInterface::rxTrampoline(uint8_t *header, unsigned header_len, uint8_t *payload, unsigned payload_len, void *arg) +{ + HaLowInterface *self = static_cast(arg); + if (!self || header_len < sizeof(HaLowEthFrameHeader)) { + return; + } + // EtherType is big-endian in the header (bytes 12-13). + uint16_t et = ((uint16_t)header[12] << 8) | header[13]; + if (et != ETHERTYPE_MESHTASTIC_HALOW) { + return; + } + self->onFrameReceived(payload, payload_len, /*rssi*/ 0); +} +#endif + +HaLowInterface::~HaLowInterface() = default; + +bool HaLowInterface::init() +{ + RadioInterface::init(); + +#ifdef USE_MM_IOT_ESP32 + LOG_INFO("HaLow: mmhal_init()"); + mmhal_init(); + + LOG_INFO("HaLow: mmwlan_init()"); + mmwlan_init(); + + const struct mmwlan_s1g_channel_list *channel_list = mmwlan_lookup_regulatory_domain(get_regulatory_db(), HALOW_COUNTRY_CODE); + if (!channel_list) { + LOG_ERROR("HaLow: country %s not in regdb", HALOW_COUNTRY_CODE); + return false; + } + if (mmwlan_set_channel_list(channel_list) != MMWLAN_SUCCESS) { + LOG_ERROR("HaLow: set_channel_list failed"); + return false; + } + + struct mmwlan_boot_args boot_args = MMWLAN_BOOT_ARGS_INIT; + enum mmwlan_status st = mmwlan_boot(&boot_args); + if (st != MMWLAN_SUCCESS) { + LOG_ERROR("HaLow: mmwlan_boot failed (%d) — firmware load or SPI wiring", (int)st); + return false; + } + + struct mmwlan_version version; + if (mmwlan_get_version(&version) == MMWLAN_SUCCESS) { + LOG_INFO("HaLow: chip 0x%lx, fw %s, lib %s", (unsigned long)version.morse_chip_id, version.morse_fw_version, + version.morselib_version); + } + + // Bring up the LWIP netif (DHCP by default). mmipal plugs into the + // Arduino-ESP32 framework's LWIP — no separate stack. + struct mmipal_init_args ipal_args = MMIPAL_INIT_ARGS_DEFAULT; + if (mmipal_init(&ipal_args) != MMIPAL_SUCCESS) { + LOG_ERROR("HaLow: mmipal_init failed"); + return false; + } + + if (HALOW_SSID[0] == '\0') { + LOG_INFO("HaLow: no SSID configured, chip will idle (set -DHALOW_SSID=...)"); + return false; + } + + struct mmwlan_sta_args sta_args = MMWLAN_STA_ARGS_INIT; + sta_args.ssid_len = strnlen(HALOW_SSID, sizeof(sta_args.ssid)); + memcpy(sta_args.ssid, HALOW_SSID, sta_args.ssid_len); + sta_args.passphrase_len = strnlen(HALOW_PASSPHRASE, sizeof(sta_args.passphrase)); + memcpy(sta_args.passphrase, HALOW_PASSPHRASE, sta_args.passphrase_len); + sta_args.security_type = (sta_args.passphrase_len > 0) ? MMWLAN_SAE : MMWLAN_OPEN; + + s_instance = this; + mmwlan_register_link_state_cb(halow_link_state_cb, NULL); + if (mmwlan_register_rx_cb(rxTrampoline, this) != MMWLAN_SUCCESS) { + LOG_ERROR("HaLow: register_rx_cb failed"); + return false; + } + + LOG_INFO("HaLow: associating with SSID '%s'", HALOW_SSID); + if (mmwlan_sta_enable(&sta_args, NULL) != MMWLAN_SUCCESS) { + LOG_ERROR("HaLow: mmwlan_sta_enable failed"); + return false; + } + + // From here on out, HaLow is the radio. send() encodes packets as 802.3 + // frames addressed to broadcast MAC with EtherType 0x88B5; the AP relays + // them to all associated STAs (Phase 3 closes the AP-less gap). + return true; +#else + LOG_WARN("HaLow: built without USE_MM_IOT_ESP32, transport is a stub"); + return false; +#endif +} + +bool HaLowInterface::reconfigure() +{ + return true; +} + +bool HaLowInterface::sleep() +{ + return true; +} + +bool HaLowInterface::canSleep() +{ + return true; +} + +ErrorCode HaLowInterface::send(meshtastic_MeshPacket *p) +{ + if (!p) { + return ERRNO_UNKNOWN; + } + +#ifdef USE_MM_IOT_ESP32 + // beginSending() serializes the MeshPacket into radioBuffer (PacketHeader + // + payload). We then prepend a 14-byte 802.3 header so mmwlan can wrap + // it as an 802.11 data frame and ship it through the AP. + size_t encoded = beginSending(p); + if (encoded == 0) { + packetPool.release(p); + return ERRNO_UNKNOWN; + } + + uint8_t txbuf[sizeof(HaLowEthFrameHeader) + sizeof(RadioBuffer)]; + if (encoded > sizeof(RadioBuffer)) { + LOG_ERROR("HaLow: encoded %u > radioBuffer", (unsigned)encoded); + packetPool.release(p); + return ERRNO_UNKNOWN; + } + + // Ethernet header: DA(6) || SA(6) || EtherType(2, big-endian). + memcpy(txbuf, HALOW_BROADCAST_MAC, 6); + if (mmwlan_get_mac_addr(txbuf + 6) != MMWLAN_SUCCESS) { + memset(txbuf + 6, 0, 6); // fallback so the frame still goes out + } + txbuf[12] = (uint8_t)(ETHERTYPE_MESHTASTIC_HALOW >> 8); + txbuf[13] = (uint8_t)(ETHERTYPE_MESHTASTIC_HALOW & 0xFF); + memcpy(txbuf + sizeof(HaLowEthFrameHeader), &radioBuffer, encoded); + + enum mmwlan_status st = mmwlan_tx(txbuf, sizeof(HaLowEthFrameHeader) + encoded); + packetPool.release(p); + sendingPacket = NULL; + return (st == MMWLAN_SUCCESS) ? ERRNO_OK : ERRNO_UNKNOWN; +#else + packetPool.release(p); + return ERRNO_DISABLED; +#endif +} + +meshtastic_QueueStatus HaLowInterface::getQueueStatus() +{ + meshtastic_QueueStatus qs = meshtastic_QueueStatus_init_zero; + qs.free = 16; + qs.maxlen = 16; + return qs; +} + +uint32_t HaLowInterface::getPacketTime(uint32_t totalPacketLen, bool /*received*/) +{ + // bytes * 8 bits / (HALOW_NOMINAL_KBPS * 1000 bits/sec) * 1000 ms/sec. + // Floor to 1 ms so the slot-time math upstream never divides by zero. + uint32_t ms = (totalPacketLen * 8u + HALOW_NOMINAL_KBPS - 1u) / HALOW_NOMINAL_KBPS; + return ms ? ms : 1u; +} + +int32_t HaLowInterface::runOnce() +{ + return 1000; // nothing to do until the SDK is wired in +} + +void HaLowInterface::onFrameReceived(const uint8_t *payload, size_t payload_len, int8_t rssi) +{ + if (!payload || payload_len < sizeof(PacketHeader)) { + return; + } + // Cap at our RadioBuffer size — anything larger is malformed for our wire + // format and we drop it rather than corrupt memory. + if (payload_len > sizeof(RadioBuffer)) { + LOG_WARN("HaLow: rx %u > RadioBuffer, dropping", (unsigned)payload_len); + return; + } + + meshtastic_MeshPacket *p = packetPool.allocZeroed(); + if (!p) { + return; + } + + // Unpack the RadioBuffer into a MeshPacket (mirrors the LoRa RX decode). + const PacketHeader *h = reinterpret_cast(payload); + p->from = h->from; + p->to = h->to; + p->id = h->id; + p->channel = h->channel; + p->hop_limit = h->flags & PACKET_FLAGS_HOP_LIMIT_MASK; + p->want_ack = !!(h->flags & PACKET_FLAGS_WANT_ACK_MASK); + p->via_mqtt = !!(h->flags & PACKET_FLAGS_VIA_MQTT_MASK); + p->hop_start = (h->flags & PACKET_FLAGS_HOP_START_MASK) >> PACKET_FLAGS_HOP_START_SHIFT; + p->relay_node = h->relay_node; + p->next_hop = h->next_hop; + + size_t payload_only = payload_len - sizeof(PacketHeader); + if (payload_only > sizeof(p->encrypted.bytes)) { + packetPool.release(p); + return; + } + memcpy(p->encrypted.bytes, payload + sizeof(PacketHeader), payload_only); + p->encrypted.size = payload_only; + p->which_payload_variant = meshtastic_MeshPacket_encrypted_tag; + + // mmwlan's rx callback doesn't carry per-frame RSSI on this SDK version — + // fall back to the connection-level RSSI for visibility in the phone UI. + (void)rssi; + int32_t link_rssi = mmwlan_get_rssi(); + p->rx_rssi = (link_rssi == INT32_MIN) ? 0 : (int8_t)link_rssi; + p->rx_snr = 0; + p->rx_time = getValidTime(RTCQualityFromNet); + + deliverToReceiver(p); +} + +#endif // USE_HALOW_RADIO diff --git a/src/mesh/halow/HaLowInterface.h b/src/mesh/halow/HaLowInterface.h new file mode 100644 index 000000000..1cbed5553 --- /dev/null +++ b/src/mesh/halow/HaLowInterface.h @@ -0,0 +1,56 @@ +#pragma once +#ifdef USE_HALOW_RADIO + +#include "RadioInterface.h" +#include "concurrency/OSThread.h" + +/** + * HaLow (802.11ah) transport. Derives directly from RadioInterface because + * RadioLib has no MM6108 driver and the model doesn't fit — mmwlan is a + * frame-level API, not a register-level SPI interface. + * + * Frames go out as Ethernet payloads (broadcast MAC, EtherType 0x88B5) carrying + * the same RadioBuffer the LoRa path builds via beginSending(), so the + * Meshtastic wire format is unchanged. + * + * True peer-broadcast requires MAC-layer support that mm-iot-esp32 does not + * currently expose (no 802.11s / IBSS / monitor mode). Until that gap closes, + * the send path is a no-op and packets must travel over UDP multicast via the + * existing UdpMulticastHandler path (HaLow operating as a STA against an AP). + * See the plan for the SDK-side workstream. + */ +class HaLowInterface : public RadioInterface, private concurrency::OSThread +{ + public: + HaLowInterface(); + ~HaLowInterface() override; + + bool init() override; + bool reconfigure() override; + bool sleep() override; + bool canSleep() override; + + ErrorCode send(meshtastic_MeshPacket *p) override; + meshtastic_QueueStatus getQueueStatus() override; + uint32_t getPacketTime(uint32_t totalPacketLen, bool received = false) override; + + protected: + int32_t runOnce() override; + + private: + void onFrameReceived(const uint8_t *payload, size_t payload_len, int8_t rssi); + +#ifdef USE_MM_IOT_ESP32 + // Trampoline registered with mmwlan_register_rx_cb. The callback hands us + // the 802.3 header and payload separately. + static void rxTrampoline(uint8_t *header, unsigned header_len, uint8_t *payload, unsigned payload_len, void *arg); +#endif + + // Approximate bytes-per-millisecond at the configured channel width / MCS. + // HaLow is 150 kbps to 32.5 Mbps depending on configuration — picking a + // single value is fiction, but airtime accounting needs *something*, and + // duty cycle isn't the constraint on HaLow that it is on LoRa. + static constexpr uint32_t HALOW_NOMINAL_KBPS = 1000; // 1 Mbps, 2 MHz MCS3 ballpark +}; + +#endif // USE_HALOW_RADIO diff --git a/src/mesh/wifi/HaLowWiFi.cpp b/src/mesh/wifi/HaLowWiFi.cpp new file mode 100644 index 000000000..c0a35449e --- /dev/null +++ b/src/mesh/wifi/HaLowWiFi.cpp @@ -0,0 +1,53 @@ +#include "configuration.h" +#ifdef USE_HALOW_WIFI + +#include "HaLowWiFi.h" + +#ifdef USE_MM_IOT_ESP32 +extern "C" { +#include "mmwlan.h" +} +#endif + +namespace halow +{ + +HaLowWiFiClass HaLowWiFi; + +void HaLowWiFiClass::begin(const char *ssid, const char *passphrase) +{ + (void)ssid; + (void)passphrase; +#ifdef USE_MM_IOT_ESP32 + // Phase 1: mmwlan_sta_connect(ssid, passphrase, ...). +#endif +} + +uint8_t HaLowWiFiClass::status() +{ +#ifdef USE_MM_IOT_ESP32 + // Phase 1: translate mmwlan link state to the Arduino-WiFi-compat enum. + return HALOW_WL_DISCONNECTED; +#else + return HALOW_WL_DISCONNECTED; +#endif +} + +IPAddress HaLowWiFiClass::localIP() +{ + return IPAddress(0, 0, 0, 0); +} + +String HaLowWiFiClass::macAddress() +{ + return String("00:00:00:00:00:00"); +} + +bool HaLowWiFiClass::isConnected() +{ + return status() == HALOW_WL_CONNECTED; +} + +} // namespace halow + +#endif // USE_HALOW_WIFI diff --git a/src/mesh/wifi/HaLowWiFi.h b/src/mesh/wifi/HaLowWiFi.h new file mode 100644 index 000000000..e0b9463a6 --- /dev/null +++ b/src/mesh/wifi/HaLowWiFi.h @@ -0,0 +1,47 @@ +#pragma once +#ifdef USE_HALOW_WIFI + +#include +#include +#include + +// Subset of the Arduino WiFi API that WiFiAPClient.cpp and UdpMulticastHandler +// touch, backed by Morse Micro mmwlan STA-mode association. Lets the existing +// mesh-over-IP path ride HaLow with no changes to call sites — required while +// the peer-broadcast HaLowInterface remains gated on SDK work. + +namespace halow +{ + +enum WiFiStatusCompat : uint8_t { + HALOW_WL_IDLE_STATUS = 0, + HALOW_WL_NO_SSID_AVAIL = 1, + HALOW_WL_CONNECTED = 3, + HALOW_WL_DISCONNECTED = 6, +}; + +class HaLowWiFiClass +{ + public: + void begin(const char *ssid, const char *passphrase); + uint8_t status(); + IPAddress localIP(); + String macAddress(); + bool isConnected(); +}; + +extern HaLowWiFiClass HaLowWiFi; + +} // namespace halow + +// When the HaLow variant is being built, redirect the Arduino WiFi handle +// expected by call sites to the HaLow shim. Including this header in the +// preprocessor-conditional places that currently #include is enough +// to swap the implementation at build time. +#define WiFi ::halow::HaLowWiFi +#define WL_CONNECTED ::halow::HALOW_WL_CONNECTED +#define WL_NO_SSID_AVAIL ::halow::HALOW_WL_NO_SSID_AVAIL +#define WL_DISCONNECTED ::halow::HALOW_WL_DISCONNECTED +#define WL_IDLE_STATUS ::halow::HALOW_WL_IDLE_STATUS + +#endif // USE_HALOW_WIFI diff --git a/src/platform/esp32/main-esp32.cpp b/src/platform/esp32/main-esp32.cpp index dbc573c95..4570c8824 100644 --- a/src/platform/esp32/main-esp32.cpp +++ b/src/platform/esp32/main-esp32.cpp @@ -165,7 +165,7 @@ void esp32Setup() // #define APP_WATCHDOG_SECS 45 #define APP_WATCHDOG_SECS 90 -#ifdef CONFIG_IDF_TARGET_ESP32C6 +#if defined(CONFIG_IDF_TARGET_ESP32C6) || (defined(ESP_IDF_VERSION) && ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(5, 0, 0)) esp_task_wdt_config_t *wdt_config = (esp_task_wdt_config_t *)malloc(sizeof(esp_task_wdt_config_t)); wdt_config->timeout_ms = APP_WATCHDOG_SECS * 1000; wdt_config->trigger_panic = true; diff --git a/variants/esp32s3/seeed_xiao_s3_halow/pins_arduino.h b/variants/esp32s3/seeed_xiao_s3_halow/pins_arduino.h new file mode 100644 index 000000000..6f71b9f66 --- /dev/null +++ b/variants/esp32s3/seeed_xiao_s3_halow/pins_arduino.h @@ -0,0 +1,20 @@ +#ifndef Pins_Arduino_h +#define Pins_Arduino_h + +#include + +#define USB_VID 0x2886 +#define USB_PID 0x0059 + +// I2C is unused on this variant (HaLow BUSY claims GPIO 5), but the Arduino +// framework's default Wire still needs valid SDA/SCL values to compile. +static const uint8_t SDA = 47; +static const uint8_t SCL = 48; + +// Default SPI is shared with the HaLow module. SS = HaLow CS. +static const uint8_t MISO = 8; +static const uint8_t SCK = 7; +static const uint8_t MOSI = 9; +static const uint8_t SS = 4; + +#endif /* Pins_Arduino_h */ diff --git a/variants/esp32s3/seeed_xiao_s3_halow/platformio.ini b/variants/esp32s3/seeed_xiao_s3_halow/platformio.ini new file mode 100644 index 000000000..562a4dfd8 --- /dev/null +++ b/variants/esp32s3/seeed_xiao_s3_halow/platformio.ini @@ -0,0 +1,104 @@ +[env:seeed-xiao-s3-halow] +; HW_MODEL: using PRIVATE_HW (255) until a SEEED_XIAO_S3_HALOW slot is allocated upstream. +custom_meshtastic_hw_model = 255 +custom_meshtastic_hw_model_slug = SEEED_XIAO_S3_HALOW +custom_meshtastic_architecture = esp32-s3 +custom_meshtastic_actively_supported = false +custom_meshtastic_support_level = 1 +custom_meshtastic_display_name = Seeed Xiao ESP32-S3 + Wi-Fi HaLow +custom_meshtastic_tags = Seeed, HaLow, Experimental +custom_meshtastic_requires_dfu = true +custom_meshtastic_partition_scheme = 8MB + +extends = esp32s3_base +board = seeed-xiao-s3 + +; Morse Micro mm-iot-esp32 requires ESP-IDF 5.1.x; PlatformIO's default +; espressif32 platform ships IDF 4.4.7. Override with the pioarduino fork + +; vidplace7's v5.1 framework artifact (same combination the ESP32-C6 variant +; uses). This unlocks IDF 5.1 driver APIs (spi_master, gpio) at the cost of +; some Arduino-ESP32 2.x APIs that aren't in 3.x — expect to compile-fix +; downstream callers (BLE/NimBLE most likely; that's why we keep BLE on by +; default but accept it may need to be disabled). +platform = + https://github.com/Jason2866/platform-espressif32/archive/22faa566df8c789000f8136cd8d0aca49617af55.zip +platform_packages = + framework-arduinoespressif32 @ https://github.com/vidplace7/platform-espressif32/releases/download/meshtastic-esp32c6/framework-arduinoespressif32-all-release_v5.1-124d64e.zip + +board_level = pr +board_check = true +board_build.partitions = default_8MB.csv +upload_protocol = esptool +upload_speed = 921600 + +build_unflags = + ${esp32s3_base.build_unflags} + -DARDUINO_USB_MODE=1 + +build_flags = + ${esp32s3_base.build_flags} + -D SEEED_XIAO_S3_HALOW + -I variants/esp32s3/seeed_xiao_s3_halow + -DBOARD_HAS_PSRAM + -DARDUINO_USB_MODE=0 + ; Compile the HaLow transport into the firmware. The SDK glue inside the + ; transport is gated on USE_MM_IOT_ESP32, which is OFF here until the + ; mm-iot-esp32 ESP-IDF component is wired into the PlatformIO build (Phase 0 + ; step 1 of the plan). With it OFF the variant builds as a no-radio node. + ; NimBLE-Arduino 1.4.3 (pinned in esp32-common.ini) doesn't compile against + ; IDF 5.1, so disable Bluetooth on this variant for now. Phone API still + ; works over Wi-Fi/HaLow. Mirrors the workaround the ESP32-C6 variant uses. + -DHAS_BLUETOOTH=0 + -DMESHTASTIC_EXCLUDE_BLUETOOTH=1 + ; The v5.1 framework already adds --specs=nano.specs; tell esp32_extra.py + ; to skip its own addition or the linker fails on a duplicate spec. + -DMESHTASTIC_SKIP_NANO_SPECS=1 + -DMESHTASTIC_EXCLUDE_PAXCOUNTER=1 + -DMESHTASTIC_EXCLUDE_WEBSERVER=1 + ; No I2C peripherals on the HaLow stack (BUSY claims SDA pin). The cardKB + ; rescan was spamming "Unknown error at address 0x1f" etc on boot. Skipping + ; just the rescan path is enough — main.cpp's I2C scan is already gated on + ; HAS_WIRE which we set to 0. We avoid MESHTASTIC_EXCLUDE_I2C because + ; InputBroker.cpp unconditionally references cardKbI2cImpl. + -DI2C_NO_RESCAN=1 + -DUSE_HALOW_RADIO=1 + -DUSE_HALOW_WIFI=1 + -DUSE_MM_IOT_ESP32=1 + ; Pin map fed to the vendored mm_shims (replaces Kconfig defaults at + ; framework/mm_shims/Kconfig — same values, just delivered as -D flags + ; because PlatformIO/Arduino doesn't run idf.py menuconfig). + -DCONFIG_MM_RESET_N=1 + -DCONFIG_MM_WAKE=2 + -DCONFIG_MM_BUSY=5 + -DCONFIG_MM_SPI_SCK=7 + -DCONFIG_MM_SPI_MOSI=9 + -DCONFIG_MM_SPI_MISO=8 + -DCONFIG_MM_SPI_CS=4 + -DCONFIG_MM_SPI_IRQ=3 + -DCONFIG_MM_SPI_FREQ_HZ=20000000 + -DCONFIG_MM_SPI_HOST=2 + -DMMPKTMEM_TX_POOL_N_BLOCKS=20 + -DMMPKTMEM_RX_POOL_N_BLOCKS=23 + ; HaLow STA credentials. Empty SSID = chip boots and idles (default — useful + ; for first-flash hardware verification). To actually join an AP, override + ; in your own platformio_override.ini or pass at the pio command line: + ; -DHALOW_SSID=\\\"MyHaLowAP\\\" -DHALOW_PASSPHRASE=\\\"secret\\\" + ; The trailing escaped quotes survive shell+SCons quoting. + -DHALOW_SSID=\"\" + -DHALOW_PASSPHRASE=\"\" + ; HaLow is the only transport on this variant — UDP multicast mesh-over-IP + ; needs to be on by default or the firmware boots into a useless state. + -DUSERPREFS_NETWORK_ENABLED_PROTOCOLS=meshtastic_Config_NetworkConfig_ProtocolFlags_UDP_BROADCAST + ; libmorse.a is precompiled for esp32-xtensa-lx7. The .mbin.o firmware blobs + ; are picked up via library.json's srcFilter; libmorse needs an explicit + ; -L/-l on the link line. + -Llib/MorseWlan/lib/esp32-xtensa-lx7 + -lmorse + +lib_ignore = + ${esp32_common.lib_ignore} + NimBLE-Arduino + libpax + +build_src_filter = + ${esp32_common.build_src_filter} - diff --git a/variants/esp32s3/seeed_xiao_s3_halow/variant.h b/variants/esp32s3/seeed_xiao_s3_halow/variant.h new file mode 100644 index 000000000..3c8a090f9 --- /dev/null +++ b/variants/esp32s3/seeed_xiao_s3_halow/variant.h @@ -0,0 +1,38 @@ +/* + * Seeed Studio XIAO ESP32-S3 + Wi-Fi HaLow add-on (Quectel FGH100M-H / Morse Micro MM6108) + * + * Pin map fixed by the Seeed HaLow add-on hardware. SCK/MOSI/MISO are the + * same XIAO pins the LoRa hat uses (7/9/8), but CS/IRQ/RST/WAKE/BUSY collide + * with the L76K GPS standby (GPIO 1) and I2C SDA (GPIO 5) used by the LoRa + * variant — so this variant deliberately ships without LoRa, GPS, or the + * SSD1306 OLED. The HaLow module replaces all of them. + * + * Hardware: https://wiki.seeedstudio.com/getting_started_with_wifi_halow_module_for_xiao/ + */ + +#define LED_POWER 48 +#define LED_STATE_ON 1 + +#define BUTTON_PIN 21 +#define BUTTON_NEED_PULLUP + +// No battery monitoring on this variant — leaving BATTERY_PIN undefined skips +// the legacy adc1_* ADC code in Power.cpp that isn't compatible with IDF 5.1. + +// HaLow BUSY claims GPIO 5 (the I2C SDA used by the LoRa variant), and HaLow +// RST claims GPIO 1 (the GPS standby). Disable I2C, the OLED screen, and GPS +// so nothing else drives those lines. +#define HAS_WIRE 0 +#define HAS_SCREEN 0 +#define HAS_GPS 0 +#define NO_GPS 1 + +// HaLow module pin map (Seeed XIAO HaLow add-on, fixed by hardware) +#define HALOW_SPI_SCK 7 +#define HALOW_SPI_MISO 8 +#define HALOW_SPI_MOSI 9 +#define HALOW_CS 4 +#define HALOW_IRQ 3 +#define HALOW_RST 1 +#define HALOW_WAKE 2 +#define HALOW_BUSY 5

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%0A69fJnv)@e6o`6%Q-Gi_dEezQFN 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≀u=piW_;VBJ?-Y(sSbkgp#9WA@K0+$a}a#T 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