diff --git a/.github/onie-build/Dockerfile b/.github/onie-build/Dockerfile index 500e8aedf..3550ba3a3 100644 --- a/.github/onie-build/Dockerfile +++ b/.github/onie-build/Dockerfile @@ -1,16 +1,17 @@ # ONIE build environment for CI. # -# Debian 11 is required: onie/build-config/Makefile still pulls in -# python2-era tooling (python-all-dev) that is unavailable on newer -# Debian releases. +# Debian 13 (trixie) host for the modernized toolchain. Required because +# kernel 6.18's objtool needs a newer host libelf than Debian 11 ships +# (0.183 fails with "elf_update: invalid section alignment"), and +# crosstool-NG 1.28 / GCC 14 align with the trixie host toolchain. (The +# old crosstool-NG 1.24 / GCC 8.3 toolchain could NOT build on trixie.) # # This image builds the generic kvm_x86_64 target with secure boot -# enabled. It includes the secure-boot key-generation and EFI signing -# tooling (gnupg2, efitools, sbsigntool), the NSS command-line tools the -# shim signing step shells out to (libnss3-tools: pk12util/certutil), and -# the build dependencies for the pesign that ONIE compiles from source -# (NSS/NSPR dev packages). -FROM debian:11 +# enabled. It includes the secure-boot tooling needed to exercise the SB +# build path -- pesign, efitools, sbsigntool and gnupg2 (for key +# generation and EFI signing) -- and meson/ninja, which flashrom 1.x +# requires to build. +FROM debian:13 WORKDIR /onie # Tolerate transient Debian mirror hiccups (connection resets mid-fetch). @@ -24,7 +25,7 @@ RUN apt-get update && apt-get install -y \ autopoint \ bc \ bison \ - bsdmainutils \ + bsdextrautils \ build-essential \ coreutils \ cpio \ @@ -43,19 +44,17 @@ RUN apt-get update && apt-get install -y \ libelf-dev \ libexpat1 \ libexpat1-dev \ - libncurses5 \ - libncurses5-dev \ - libnspr4-dev \ - libnss3-dev \ - libnss3-tools \ + libncurses-dev \ libpopt-dev \ libssl-dev \ libtool \ libtool-bin \ locales \ + meson \ mtools \ + ninja-build \ + pesign \ pkgconf \ - python-all-dev \ python3-all-dev \ python3-sphinx \ python3-venv \ diff --git a/.github/workflows/build-onie.yml b/.github/workflows/build-onie.yml index f5b94c5e7..a68e9ccca 100644 --- a/.github/workflows/build-onie.yml +++ b/.github/workflows/build-onie.yml @@ -12,6 +12,17 @@ name: Build ONIE (kvm_x86_64) # filtering would risk skipping validation on build-affecting changes. on: workflow_dispatch: + inputs: + oce_scope: + description: >- + OCE compliance test scope: "default" (a fast representative + subset, also what push/PR runs) or "full" (the entire OCE + installer+updater sweep, tests 3-121 -- slow, many VM boots). + type: choice + default: default + options: + - default + - full push: pull_request: @@ -29,6 +40,18 @@ jobs: - name: Checkout uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + # The GCC 14 / Debian 13 toolchain build plus the full image (restored + # x-tools cache + every package + kernel + recovery ISO) exceeds the + # ~14 GB free on a stock ubuntu-latest runner. Reclaim ~25 GB of + # preinstalled toolchains we do not use so the build has headroom. + - name: Free up runner disk space + run: | + echo "Disk before cleanup:"; df -h / + sudo rm -rf /usr/local/lib/android /opt/hostedtoolcache /usr/share/dotnet \ + /usr/local/.ghcup /usr/share/swift /usr/local/share/powershell \ + /usr/local/lib/node_modules || true + echo "Disk after cleanup:"; df -h / + - name: Set up Docker Buildx uses: docker/setup-buildx-action@d7f5e7f509e45cec5c76c4d5afdd7de93d0b3df5 # v4.1.0 @@ -300,3 +323,63 @@ jobs: name: onie-install-serial-log path: onie-install-*.log retention-days: 7 + + # Run ONIE's own OCE (ONIE Compliance Environment, contrib/oce) compliance + # suite against the image. Where install-test hands ONIE the installer URL + # directly (install_url=), OCE exercises the REAL OCP discovery path: it + # stands up isc-dhcp-server advertising the ONIE VIVSO vendor option (DHCP + # option 125) plus an nginx HTTP server, and ONIE must DHCP, read the VIVSO + # installer URL, and fetch+install the image itself. OCE needs L2 to the DUT + # (it validates the DUT shares the host interface's subnet), so the VM is on a + # tap interface rather than user-mode SLIRP. contrib/oce is python3 (it was + # ported in the python2-to-3 PR this is stacked on). See + # emulation/ci-oce-test.sh. + oce-test: + name: OCE compliance kvm_x86_64 + # Chained after install-test (not parallel) so only one VM-heavy job runs + # at a time, keeping CI resource use low. + needs: install-test + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + - name: Enable KVM (grant /dev/kvm access) + run: | + echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' \ + | sudo tee /etc/udev/rules.d/99-kvm4all.rules + sudo udevadm control --reload-rules + sudo udevadm trigger --name-match=kvm + - name: Install QEMU + OCE service backends + python deps + run: | + sudo apt-get update + sudo apt-get install -y --no-install-recommends \ + qemu-system-x86 qemu-utils isc-dhcp-server nginx-light tftpd-hpa \ + dnsmasq dosfstools python3-venv + python3 -m venv /tmp/oce-venv + /tmp/oce-venv/bin/pip install --quiet jinja2 netifaces psutil + - name: Download install-test images + uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4 + with: + name: onie-kvm-install-images + path: build/images + - name: Run OCE compliance test (full install/update via OCP discovery) + run: | + # On push/PR (no dispatch input) run the fast "default" subset; a + # human can manually dispatch this workflow with oce_scope=full to + # run the entire OCE installer+updater sweep. + SCOPE="${{ inputs.oce_scope }}" + [ -z "$SCOPE" ] && SCOPE=default + OCE_PYTHON=/tmp/oce-venv/bin/python SERIAL_PREFIX="$PWD/onie-oce" \ + emulation/ci-oce-test.sh \ + build/images/kvm_x86_64-r0.vmlinuz \ + build/images/kvm_x86_64-r0.initrd \ + build/images/demo-installer-x86_64-kvm_x86_64-r0.bin \ + build/images/onie-updater-x86_64-kvm_x86_64-r0 \ + "$SCOPE" + - name: Upload OCE serial logs + if: always() + uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4 + with: + name: onie-oce-serial-log + path: onie-oce-*.log + retention-days: 7 diff --git a/build-config/Makefile b/build-config/Makefile index 4aa83d247..14a35f77f 100644 --- a/build-config/Makefile +++ b/build-config/Makefile @@ -358,8 +358,6 @@ SECURE_GRUB ?= no ifeq ($(SECURE_BOOT_ENABLE),yes) SHIM_ENABLE = yes - PESIGN_ENABLE = yes - GNU_EFI_ENABLE = yes OPENSSL_ENABLE = yes MOKUTIL_ENABLE = yes KEYUTILS_ENABLE = yes @@ -374,9 +372,6 @@ ifeq ($(XTOOLS_ENABLE),yes) include make/xtools.make endif include make/sysroot.make -ifeq ($(GNU_EFI_ENABLE),yes) - include make/gnu-efi.make -endif include make/kernel.make ifeq ($(UBOOT_ENABLE),yes) include make/u-boot.make @@ -398,6 +393,8 @@ ifeq ($(GPT_ENABLE),yes) include make/gptfdisk.make endif ifeq ($(LVM2_ENABLE),yes) + # lvm2 >= 2.03 requires libaio for its bcache I/O engine. + include make/libaio.make include make/lvm2.make endif ifeq ($(PARTED_ENABLE),yes) @@ -420,6 +417,8 @@ ifeq ($(DMIDECODE_ENABLE),yes) include make/dmidecode.make endif ifeq ($(ETHTOOL_ENABLE),yes) + # ethtool's netlink interface needs libmnl. + include make/libmnl.make include make/ethtool.make endif ifeq ($(MTREE_ENABLE),yes) @@ -441,9 +440,6 @@ endif ifeq ($(IPMITOOL_ENABLE),yes) include make/ipmitool.make endif -ifeq ($(PESIGN_ENABLE),yes) - include make/pesign.make -endif ifeq ($(OPENSSL_ENABLE),yes) include make/openssl.make endif diff --git a/build-config/conf/busybox.config b/build-config/conf/busybox.config index 3cb98e71d..24eaf4131 100644 --- a/build-config/conf/busybox.config +++ b/build-config/conf/busybox.config @@ -1,59 +1,43 @@ # # Automatically generated make config: don't edit -# Busybox version: 1.25.1 -# Mon Feb 6 14:00:48 2017 +# Busybox version: 1.38.0 +# Wed Jun 3 03:36:56 2026 # CONFIG_HAVE_DOT_CONFIG=y # -# Busybox Settings -# - -# -# General Configuration +# Settings # # CONFIG_DESKTOP is not set # CONFIG_EXTRA_COMPAT is not set +# CONFIG_FEDORA_COMPAT is not set # CONFIG_INCLUDE_SUSv2 is not set -# CONFIG_USE_PORTABLE_CODE is not set -CONFIG_PLATFORM_LINUX=y -CONFIG_FEATURE_BUFFERS_USE_MALLOC=y -# CONFIG_FEATURE_BUFFERS_GO_ON_STACK is not set -# CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set +CONFIG_LONG_OPTS=y CONFIG_SHOW_USAGE=y CONFIG_FEATURE_VERBOSE_USAGE=y CONFIG_FEATURE_COMPRESS_USAGE=y -CONFIG_BUSYBOX=y -# CONFIG_FEATURE_INSTALLER is not set -# CONFIG_INSTALL_NO_USR is not set -# CONFIG_LOCALE_SUPPORT is not set -# CONFIG_UNICODE_SUPPORT is not set -# CONFIG_UNICODE_USING_LOCALE is not set -# CONFIG_FEATURE_CHECK_UNICODE_IN_ENV is not set -CONFIG_SUBST_WCHAR=0 -CONFIG_LAST_SUPPORTED_WCHAR=0 -# CONFIG_UNICODE_COMBINING_WCHARS is not set -# CONFIG_UNICODE_WIDE_WCHARS is not set -# CONFIG_UNICODE_BIDI_SUPPORT is not set -# CONFIG_UNICODE_NEUTRAL_TABLE is not set -# CONFIG_UNICODE_PRESERVE_BROKEN is not set +CONFIG_LFS=y +CONFIG_TIME64=y # CONFIG_PAM is not set -# CONFIG_FEATURE_USE_SENDFILE is not set -CONFIG_LONG_OPTS=y CONFIG_FEATURE_DEVPTS=y -# CONFIG_FEATURE_CLEAN_UP is not set # CONFIG_FEATURE_UTMP is not set # CONFIG_FEATURE_WTMP is not set CONFIG_FEATURE_PIDFILE=y CONFIG_PID_FILE_PATH="/var/run" +CONFIG_BUSYBOX=y +CONFIG_FEATURE_SHOW_SCRIPT=y +# CONFIG_FEATURE_INSTALLER is not set +CONFIG_FEATURE_VERSION=y +# CONFIG_INSTALL_NO_USR is not set CONFIG_FEATURE_SUID=y CONFIG_FEATURE_SUID_CONFIG=y CONFIG_FEATURE_SUID_CONFIG_QUIET=y -# CONFIG_SELINUX is not set # CONFIG_FEATURE_PREFER_APPLETS is not set CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe" +# CONFIG_SELINUX is not set +# CONFIG_FEATURE_CLEAN_UP is not set +CONFIG_FEATURE_SYSLOG_INFO=y CONFIG_FEATURE_SYSLOG=y -# CONFIG_FEATURE_HAVE_RPC is not set # # Build Options @@ -62,26 +46,17 @@ CONFIG_FEATURE_SYSLOG=y # CONFIG_PIE is not set # CONFIG_NOMMU is not set # CONFIG_BUILD_LIBBUSYBOX is not set +# CONFIG_FEATURE_LIBBUSYBOX_STATIC is not set # CONFIG_FEATURE_INDIVIDUAL is not set # CONFIG_FEATURE_SHARED_BUSYBOX is not set -CONFIG_LFS=y CONFIG_CROSS_COMPILER_PREFIX="" CONFIG_SYSROOT="" CONFIG_EXTRA_CFLAGS="" CONFIG_EXTRA_LDFLAGS="" CONFIG_EXTRA_LDLIBS="" - -# -# Debugging Options -# -# CONFIG_DEBUG is not set -# CONFIG_DEBUG_PESSIMIZE is not set -# CONFIG_DEBUG_SANITIZE is not set -# CONFIG_UNIT_TEST is not set -# CONFIG_WERROR is not set -CONFIG_NO_DEBUG_LIB=y -# CONFIG_DMALLOC is not set -# CONFIG_EFENCE is not set +# CONFIG_USE_PORTABLE_CODE is not set +CONFIG_STACK_OPTIMIZATION_386=y +CONFIG_STATIC_LIBGCC=y # # Installation Options ("make install" behavior) @@ -96,16 +71,40 @@ CONFIG_INSTALL_APPLET_SYMLINKS=y CONFIG_PREFIX="./_install" # -# Busybox Library Tuning +# Debugging Options +# +# CONFIG_DEBUG is not set +# CONFIG_DEBUG_PESSIMIZE is not set +# CONFIG_DEBUG_SANITIZE is not set +# CONFIG_UNIT_TEST is not set +# CONFIG_WERROR is not set +# CONFIG_WARN_SIMPLE_MSG is not set +CONFIG_NO_DEBUG_LIB=y +# CONFIG_DMALLOC is not set +# CONFIG_EFENCE is not set + +# +# Library Tuning # # CONFIG_FEATURE_USE_BSS_TAIL is not set +CONFIG_FLOAT_DURATION=y CONFIG_FEATURE_RTMINMAX=y +CONFIG_FEATURE_RTMINMAX_USE_LIBC_DEFINITIONS=y +CONFIG_FEATURE_BUFFERS_USE_MALLOC=y +# CONFIG_FEATURE_BUFFERS_GO_ON_STACK is not set +# CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set CONFIG_PASSWORD_MINLEN=6 CONFIG_MD5_SMALL=1 +CONFIG_SHA1_SMALL=3 +CONFIG_SHA1_HWACCEL=y +CONFIG_SHA256_HWACCEL=y CONFIG_SHA3_SMALL=1 -CONFIG_FEATURE_FAST_TOP=y -# CONFIG_FEATURE_ETC_NETWORKS is not set -CONFIG_FEATURE_USE_TERMIOS=y +CONFIG_FEATURE_NON_POSIX_CP=y +# CONFIG_FEATURE_VERBOSE_CP_MESSAGE is not set +# CONFIG_FEATURE_USE_SENDFILE is not set +CONFIG_FEATURE_COPYBUF_KB=4 +# CONFIG_MONOTONIC_SYSCALL is not set +CONFIG_IOCTL_HEX2STR_ERROR=y CONFIG_FEATURE_EDITING=y CONFIG_FEATURE_EDITING_MAX_LEN=1024 # CONFIG_FEATURE_EDITING_VI is not set @@ -116,14 +115,22 @@ CONFIG_FEATURE_REVERSE_SEARCH=y CONFIG_FEATURE_TAB_COMPLETION=y # CONFIG_FEATURE_USERNAME_COMPLETION is not set CONFIG_FEATURE_EDITING_FANCY_PROMPT=y +CONFIG_FEATURE_EDITING_WINCH=y # CONFIG_FEATURE_EDITING_ASK_TERMINAL is not set -CONFIG_FEATURE_NON_POSIX_CP=y -# CONFIG_FEATURE_VERBOSE_CP_MESSAGE is not set -CONFIG_FEATURE_COPYBUF_KB=4 -CONFIG_FEATURE_SKIP_ROOTFS=y -# CONFIG_MONOTONIC_SYSCALL is not set -CONFIG_IOCTL_HEX2STR_ERROR=y -# CONFIG_FEATURE_HWIB is not set +# CONFIG_LOCALE_SUPPORT is not set +# CONFIG_UNICODE_SUPPORT is not set +# CONFIG_UNICODE_USING_LOCALE is not set +# CONFIG_FEATURE_CHECK_UNICODE_IN_ENV is not set +CONFIG_SUBST_WCHAR=0 +CONFIG_LAST_SUPPORTED_WCHAR=0 +# CONFIG_UNICODE_COMBINING_WCHARS is not set +# CONFIG_UNICODE_WIDE_WCHARS is not set +# CONFIG_UNICODE_BIDI_SUPPORT is not set +# CONFIG_UNICODE_NEUTRAL_TABLE is not set +# CONFIG_UNICODE_PRESERVE_BROKEN is not set +# CONFIG_LOOP_CONFIGURE is not set +# CONFIG_NO_LOOP_CONFIGURE is not set +CONFIG_TRY_LOOP_CONFIGURE=y # # Applets @@ -142,92 +149,105 @@ CONFIG_FEATURE_AR_LONG_FILENAMES=y CONFIG_FEATURE_AR_CREATE=y # CONFIG_UNCOMPRESS is not set CONFIG_GUNZIP=y +CONFIG_ZCAT=y # CONFIG_FEATURE_GUNZIP_LONG_OPTIONS is not set CONFIG_BUNZIP2=y +CONFIG_BZCAT=y # CONFIG_UNLZMA is not set -# CONFIG_FEATURE_LZMA_FAST is not set +CONFIG_LZCAT=y # CONFIG_LZMA is not set CONFIG_UNXZ=y +CONFIG_XZCAT=y CONFIG_XZ=y CONFIG_BZIP2=y +CONFIG_BZIP2_SMALL=8 +CONFIG_FEATURE_BZIP2_DECOMPRESS=y CONFIG_CPIO=y CONFIG_FEATURE_CPIO_O=y CONFIG_FEATURE_CPIO_P=y +CONFIG_FEATURE_CPIO_IGNORE_DEVNO=y +CONFIG_FEATURE_CPIO_RENUMBER_INODES=y CONFIG_DPKG=y CONFIG_DPKG_DEB=y -# CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY is not set CONFIG_GZIP=y CONFIG_FEATURE_GZIP_LONG_OPTIONS=y CONFIG_GZIP_FAST=0 # CONFIG_FEATURE_GZIP_LEVELS is not set +CONFIG_FEATURE_GZIP_DECOMPRESS=y CONFIG_LZOP=y +# CONFIG_UNLZOP is not set +# CONFIG_LZOPCAT is not set # CONFIG_LZOP_COMPR_HIGH is not set -# CONFIG_RPM2CPIO is not set # CONFIG_RPM is not set +# CONFIG_RPM2CPIO is not set CONFIG_TAR=y +CONFIG_FEATURE_TAR_LONG_OPTIONS=y CONFIG_FEATURE_TAR_CREATE=y CONFIG_FEATURE_TAR_AUTODETECT=y CONFIG_FEATURE_TAR_FROM=y CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY=y CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY=y CONFIG_FEATURE_TAR_GNU_EXTENSIONS=y -CONFIG_FEATURE_TAR_LONG_OPTIONS=y CONFIG_FEATURE_TAR_TO_COMMAND=y CONFIG_FEATURE_TAR_UNAME_GNAME=y CONFIG_FEATURE_TAR_NOPRESERVE_TIME=y # CONFIG_FEATURE_TAR_SELINUX is not set CONFIG_UNZIP=y +CONFIG_FEATURE_UNZIP_CDF=y +# CONFIG_FEATURE_UNZIP_BZIP2 is not set +# CONFIG_FEATURE_UNZIP_LZMA is not set +# CONFIG_FEATURE_UNZIP_XZ is not set +# CONFIG_FEATURE_LZMA_FAST is not set +# CONFIG_FEATURE_PATH_TRAVERSAL_PROTECTION is not set # # Coreutils # +# CONFIG_FEATURE_VERBOSE is not set + +# +# Common options for date and touch +# +# CONFIG_FEATURE_TIMEZONE is not set + +# +# Common options for cp and mv +# +CONFIG_FEATURE_PRESERVE_HARDLINKS=y + +# +# Common options for df, du, ls +# +CONFIG_FEATURE_HUMAN_READABLE=y CONFIG_BASENAME=y CONFIG_CAT=y -CONFIG_DATE=y -CONFIG_FEATURE_DATE_ISOFMT=y -# CONFIG_FEATURE_DATE_NANO is not set -CONFIG_FEATURE_DATE_COMPAT=y -CONFIG_DD=y -CONFIG_FEATURE_DD_SIGNAL_HANDLING=y -CONFIG_FEATURE_DD_THIRD_STATUS_LINE=y -CONFIG_FEATURE_DD_IBS_OBS=y -# CONFIG_FEATURE_DD_STATUS is not set -CONFIG_HOSTID=y -CONFIG_ID=y -CONFIG_GROUPS=y -# CONFIG_SHUF is not set -CONFIG_STAT=y -CONFIG_FEATURE_STAT_FORMAT=y -CONFIG_FEATURE_STAT_FILESYSTEM=y -CONFIG_SYNC=y -# CONFIG_FEATURE_SYNC_FANCY is not set -CONFIG_TEST=y -CONFIG_FEATURE_TEST_64=y -CONFIG_TOUCH=y -# CONFIG_FEATURE_TOUCH_NODEREF is not set -CONFIG_FEATURE_TOUCH_SUSV3=y -CONFIG_TR=y -CONFIG_FEATURE_TR_CLASSES=y -CONFIG_FEATURE_TR_EQUIV=y -# CONFIG_TRUNCATE is not set -# CONFIG_UNLINK is not set -CONFIG_BASE64=y -# CONFIG_WHO is not set -# CONFIG_USERS is not set -CONFIG_CAL=y -CONFIG_CATV=y +CONFIG_FEATURE_CATN=y +CONFIG_FEATURE_CATV=y CONFIG_CHGRP=y CONFIG_CHMOD=y CONFIG_CHOWN=y CONFIG_FEATURE_CHOWN_LONG_OPTIONS=y CONFIG_CHROOT=y CONFIG_CKSUM=y +CONFIG_CRC32=y CONFIG_COMM=y CONFIG_CP=y CONFIG_FEATURE_CP_LONG_OPTIONS=y +CONFIG_FEATURE_CP_REFLINK=y CONFIG_CUT=y +CONFIG_FEATURE_CUT_REGEX=y +CONFIG_DATE=y +CONFIG_FEATURE_DATE_ISOFMT=y +# CONFIG_FEATURE_DATE_NANO is not set +CONFIG_FEATURE_DATE_COMPAT=y +CONFIG_DD=y +CONFIG_FEATURE_DD_SIGNAL_HANDLING=y +CONFIG_FEATURE_DD_THIRD_STATUS_LINE=y +CONFIG_FEATURE_DD_IBS_OBS=y +# CONFIG_FEATURE_DD_STATUS is not set CONFIG_DF=y CONFIG_FEATURE_DF_FANCY=y +CONFIG_FEATURE_SKIP_ROOTFS=y CONFIG_DIRNAME=y CONFIG_DOS2UNIX=y CONFIG_UNIX2DOS=y @@ -236,39 +256,55 @@ CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K=y CONFIG_ECHO=y CONFIG_FEATURE_FANCY_ECHO=y CONFIG_ENV=y -CONFIG_FEATURE_ENV_LONG_OPTIONS=y CONFIG_EXPAND=y -CONFIG_FEATURE_EXPAND_LONG_OPTIONS=y +CONFIG_UNEXPAND=y CONFIG_EXPR=y CONFIG_EXPR_MATH_SUPPORT_64=y +CONFIG_FACTOR=y CONFIG_FALSE=y CONFIG_FOLD=y -CONFIG_FSYNC=y CONFIG_HEAD=y CONFIG_FEATURE_FANCY_HEAD=y +CONFIG_HOSTID=y +CONFIG_ID=y +CONFIG_GROUPS=y CONFIG_INSTALL=y CONFIG_FEATURE_INSTALL_LONG_OPTIONS=y +CONFIG_LINK=y CONFIG_LN=y CONFIG_LOGNAME=y CONFIG_LS=y CONFIG_FEATURE_LS_FILETYPES=y CONFIG_FEATURE_LS_FOLLOWLINKS=y CONFIG_FEATURE_LS_RECURSIVE=y +CONFIG_FEATURE_LS_WIDTH=y CONFIG_FEATURE_LS_SORTFILES=y CONFIG_FEATURE_LS_TIMESTAMPS=y CONFIG_FEATURE_LS_USERNAME=y CONFIG_FEATURE_LS_COLOR=y CONFIG_FEATURE_LS_COLOR_IS_DEFAULT=y CONFIG_MD5SUM=y +CONFIG_SHA1SUM=y +CONFIG_SHA256SUM=y +CONFIG_SHA384SUM=y +CONFIG_SHA512SUM=y +# CONFIG_SHA3SUM is not set + +# +# Common options for md5sum, sha1sum, sha256sum, ..., sha3sum +# +CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y CONFIG_MKDIR=y -CONFIG_FEATURE_MKDIR_LONG_OPTIONS=y CONFIG_MKFIFO=y CONFIG_MKNOD=y +CONFIG_MKTEMP=y CONFIG_MV=y -CONFIG_FEATURE_MV_LONG_OPTIONS=y CONFIG_NICE=y +CONFIG_NL=y CONFIG_NOHUP=y +CONFIG_NPROC=y CONFIG_OD=y +CONFIG_PASTE=y CONFIG_PRINTENV=y CONFIG_PRINTF=y CONFIG_PWD=y @@ -277,76 +313,76 @@ CONFIG_FEATURE_READLINK_FOLLOW=y CONFIG_REALPATH=y CONFIG_RM=y CONFIG_RMDIR=y -CONFIG_FEATURE_RMDIR_LONG_OPTIONS=y CONFIG_SEQ=y -CONFIG_SHA1SUM=y -CONFIG_SHA256SUM=y -CONFIG_SHA512SUM=y -# CONFIG_SHA3SUM is not set +CONFIG_SHRED=y +# CONFIG_SHUF is not set CONFIG_SLEEP=y CONFIG_FEATURE_FANCY_SLEEP=y -CONFIG_FEATURE_FLOAT_SLEEP=y CONFIG_SORT=y CONFIG_FEATURE_SORT_BIG=y +# CONFIG_FEATURE_SORT_OPTIMIZE_MEMORY is not set CONFIG_SPLIT=y CONFIG_FEATURE_SPLIT_FANCY=y +CONFIG_STAT=y +CONFIG_FEATURE_STAT_FORMAT=y +CONFIG_FEATURE_STAT_FILESYSTEM=y CONFIG_STTY=y CONFIG_SUM=y +CONFIG_SYNC=y +# CONFIG_FEATURE_SYNC_FANCY is not set +CONFIG_FSYNC=y CONFIG_TAC=y CONFIG_TAIL=y CONFIG_FEATURE_FANCY_TAIL=y CONFIG_TEE=y CONFIG_FEATURE_TEE_USE_BLOCK_IO=y +CONFIG_TEST=y +CONFIG_TEST1=y +CONFIG_TEST2=y +CONFIG_FEATURE_TEST_64=y +CONFIG_TIMEOUT=y +CONFIG_TOUCH=y +CONFIG_FEATURE_TOUCH_SUSV3=y +CONFIG_TR=y +CONFIG_FEATURE_TR_CLASSES=y +CONFIG_FEATURE_TR_EQUIV=y CONFIG_TRUE=y +# CONFIG_TRUNCATE is not set +CONFIG_TSORT=y CONFIG_TTY=y CONFIG_UNAME=y CONFIG_UNAME_OSNAME="" -CONFIG_UNEXPAND=y -CONFIG_FEATURE_UNEXPAND_LONG_OPTIONS=y +CONFIG_BB_ARCH=y CONFIG_UNIQ=y +# CONFIG_UNLINK is not set CONFIG_USLEEP=y CONFIG_UUDECODE=y +CONFIG_BASE32=y +CONFIG_BASE64=y CONFIG_UUENCODE=y CONFIG_WC=y CONFIG_FEATURE_WC_LARGE=y +# CONFIG_WHO is not set +# CONFIG_W is not set +# CONFIG_USERS is not set CONFIG_WHOAMI=y CONFIG_YES=y -# -# Common options -# -# CONFIG_FEATURE_VERBOSE is not set - -# -# Common options for cp and mv -# -CONFIG_FEATURE_PRESERVE_HARDLINKS=y - -# -# Common options for ls, more and telnet -# -CONFIG_FEATURE_AUTOWIDTH=y - -# -# Common options for df, du, ls -# -CONFIG_FEATURE_HUMAN_READABLE=y - -# -# Common options for md5sum, sha1sum, sha256sum, sha512sum, sha3sum -# -CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y - # # Console Utilities # # CONFIG_CHVT is not set -# CONFIG_FGCONSOLE is not set CONFIG_CLEAR=y # CONFIG_DEALLOCVT is not set # CONFIG_DUMPKMAP is not set +# CONFIG_FGCONSOLE is not set # CONFIG_KBD_MODE is not set # CONFIG_LOADFONT is not set +# CONFIG_SETFONT is not set +# CONFIG_FEATURE_SETFONT_TEXTUAL_MAP is not set +CONFIG_DEFAULT_SETFONT_DIR="" +# CONFIG_FEATURE_LOADFONT_PSF2 is not set +# CONFIG_FEATURE_LOADFONT_RAW is not set # CONFIG_LOADKMAP is not set # CONFIG_OPENVT is not set CONFIG_RESET=y @@ -354,28 +390,30 @@ CONFIG_RESET=y # CONFIG_FEATURE_RESIZE_PRINT is not set # CONFIG_SETCONSOLE is not set # CONFIG_FEATURE_SETCONSOLE_LONG_OPTIONS is not set -# CONFIG_SETFONT is not set -# CONFIG_FEATURE_SETFONT_TEXTUAL_MAP is not set -CONFIG_DEFAULT_SETFONT_DIR="" # CONFIG_SETKEYCODES is not set # CONFIG_SETLOGCONS is not set # CONFIG_SHOWKEY is not set -# CONFIG_FEATURE_LOADFONT_PSF2 is not set -# CONFIG_FEATURE_LOADFONT_RAW is not set # # Debian Utilities # -CONFIG_MKTEMP=y CONFIG_PIPE_PROGRESS=y CONFIG_RUN_PARTS=y CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS=y CONFIG_FEATURE_RUN_PARTS_FANCY=y CONFIG_START_STOP_DAEMON=y -CONFIG_FEATURE_START_STOP_DAEMON_FANCY=y CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS=y +CONFIG_FEATURE_START_STOP_DAEMON_FANCY=y CONFIG_WHICH=y +# +# klibc-utils +# +# CONFIG_MINIPS is not set +# CONFIG_NUKE is not set +CONFIG_RESUME=y +CONFIG_RUN_INIT=y + # # Editors # @@ -393,6 +431,7 @@ CONFIG_VI=y CONFIG_FEATURE_VI_MAX_LEN=4096 # CONFIG_FEATURE_VI_8BIT is not set CONFIG_FEATURE_VI_COLON=y +CONFIG_FEATURE_VI_COLON_EXPAND=y CONFIG_FEATURE_VI_YANKMARK=y CONFIG_FEATURE_VI_SEARCH=y # CONFIG_FEATURE_VI_REGEX_SEARCH is not set @@ -406,6 +445,7 @@ CONFIG_FEATURE_VI_ASK_TERMINAL=y CONFIG_FEATURE_VI_UNDO=y CONFIG_FEATURE_VI_UNDO_QUEUE=y CONFIG_FEATURE_VI_UNDO_QUEUE_MAX=256 +CONFIG_FEATURE_VI_VERBOSE_STATUS=y CONFIG_FEATURE_ALLOW_EXEC=y # @@ -414,15 +454,22 @@ CONFIG_FEATURE_ALLOW_EXEC=y CONFIG_FIND=y CONFIG_FEATURE_FIND_PRINT0=y CONFIG_FEATURE_FIND_MTIME=y +CONFIG_FEATURE_FIND_ATIME=y +CONFIG_FEATURE_FIND_CTIME=y CONFIG_FEATURE_FIND_MMIN=y +CONFIG_FEATURE_FIND_AMIN=y +CONFIG_FEATURE_FIND_CMIN=y CONFIG_FEATURE_FIND_PERM=y CONFIG_FEATURE_FIND_TYPE=y +CONFIG_FEATURE_FIND_EXECUTABLE=y CONFIG_FEATURE_FIND_XDEV=y CONFIG_FEATURE_FIND_MAXDEPTH=y CONFIG_FEATURE_FIND_NEWER=y CONFIG_FEATURE_FIND_INUM=y +CONFIG_FEATURE_FIND_SAMEFILE=y CONFIG_FEATURE_FIND_EXEC=y # CONFIG_FEATURE_FIND_EXEC_PLUS is not set +CONFIG_FEATURE_FIND_EXEC_OK=y CONFIG_FEATURE_FIND_USER=y CONFIG_FEATURE_FIND_GROUP=y CONFIG_FEATURE_FIND_NOT=y @@ -430,14 +477,16 @@ CONFIG_FEATURE_FIND_DEPTH=y CONFIG_FEATURE_FIND_PAREN=y CONFIG_FEATURE_FIND_SIZE=y CONFIG_FEATURE_FIND_PRUNE=y +CONFIG_FEATURE_FIND_QUIT=y CONFIG_FEATURE_FIND_DELETE=y +CONFIG_FEATURE_FIND_EMPTY=y CONFIG_FEATURE_FIND_PATH=y CONFIG_FEATURE_FIND_REGEX=y # CONFIG_FEATURE_FIND_CONTEXT is not set CONFIG_FEATURE_FIND_LINKS=y CONFIG_GREP=y -CONFIG_FEATURE_GREP_EGREP_ALIAS=y -CONFIG_FEATURE_GREP_FGREP_ALIAS=y +CONFIG_EGREP=y +CONFIG_FGREP=y CONFIG_FEATURE_GREP_CONTEXT=y CONFIG_XARGS=y CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION=y @@ -445,6 +494,8 @@ CONFIG_FEATURE_XARGS_SUPPORT_QUOTES=y CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT=y CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM=y # CONFIG_FEATURE_XARGS_SUPPORT_REPL_STR is not set +CONFIG_FEATURE_XARGS_SUPPORT_PARALLEL=y +CONFIG_FEATURE_XARGS_SUPPORT_ARGS_FILE=y # # Init Utilities @@ -453,6 +504,9 @@ CONFIG_BOOTCHARTD=y CONFIG_FEATURE_BOOTCHARTD_BLOATED_HEADER=y CONFIG_FEATURE_BOOTCHARTD_CONFIG_FILE=y CONFIG_HALT=y +CONFIG_POWEROFF=y +CONFIG_REBOOT=y +CONFIG_FEATURE_WAIT_FOR_INIT=y # CONFIG_FEATURE_CALL_TELINIT is not set CONFIG_TELINIT_PATH="" CONFIG_INIT=y @@ -462,12 +516,10 @@ CONFIG_FEATURE_USE_INITTAB=y CONFIG_FEATURE_KILL_DELAY=0 CONFIG_FEATURE_INIT_SCTTY=y CONFIG_FEATURE_INIT_SYSLOG=y -CONFIG_FEATURE_EXTRA_QUIET=y +CONFIG_FEATURE_INIT_QUIET=y CONFIG_FEATURE_INIT_COREDUMPS=y CONFIG_INIT_TERMINAL_TYPE="linux" # CONFIG_FEATURE_INIT_MODIFY_CMDLINE is not set -# CONFIG_MESG is not set -# CONFIG_FEATURE_MESG_ENABLE_ONLY_GROUP is not set # # Login/Password Management Utilities @@ -477,13 +529,12 @@ CONFIG_USE_BB_PWD_GRP=y CONFIG_USE_BB_SHADOW=y # CONFIG_USE_BB_CRYPT is not set # CONFIG_USE_BB_CRYPT_SHA is not set -CONFIG_ADDGROUP=y -CONFIG_FEATURE_ADDGROUP_LONG_OPTIONS=y -CONFIG_FEATURE_ADDUSER_TO_GROUP=y +# CONFIG_USE_BB_CRYPT_YES is not set # CONFIG_ADD_SHELL is not set # CONFIG_REMOVE_SHELL is not set +CONFIG_ADDGROUP=y +CONFIG_FEATURE_ADDUSER_TO_GROUP=y CONFIG_ADDUSER=y -CONFIG_FEATURE_ADDUSER_LONG_OPTIONS=y # CONFIG_FEATURE_CHECK_NAMES is not set CONFIG_LAST_ID=60000 CONFIG_FIRST_SYSTEM_ID=100 @@ -506,6 +557,7 @@ CONFIG_FEATURE_PASSWD_WEAK_CHECK=y CONFIG_SU=y CONFIG_FEATURE_SU_SYSLOG=y CONFIG_FEATURE_SU_CHECKS_SHELLS=y +# CONFIG_FEATURE_SU_BLANK_PW_NEEDS_SECURE_TTY is not set CONFIG_SULOGIN=y CONFIG_VLOCK=y @@ -520,29 +572,29 @@ CONFIG_TUNE2FS=y # # Linux Module Utilities # -CONFIG_MODINFO=y CONFIG_MODPROBE_SMALL=y -CONFIG_FEATURE_MODPROBE_SMALL_OPTIONS_ON_CMDLINE=y -CONFIG_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED=y +# CONFIG_DEPMOD is not set # CONFIG_INSMOD is not set -# CONFIG_RMMOD is not set # CONFIG_LSMOD is not set # CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT is not set +CONFIG_MODINFO=y # CONFIG_MODPROBE is not set # CONFIG_FEATURE_MODPROBE_BLACKLIST is not set -# CONFIG_DEPMOD is not set +# CONFIG_RMMOD is not set # # Options common to multiple modutils # +# CONFIG_FEATURE_CMDLINE_MODULE_OPTIONS is not set +# CONFIG_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED is not set # CONFIG_FEATURE_2_4_MODULES is not set -# CONFIG_FEATURE_INSMOD_TRY_MMAP is not set # CONFIG_FEATURE_INSMOD_VERSION_CHECKING is not set # CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS is not set # CONFIG_FEATURE_INSMOD_LOADINKMEM is not set # CONFIG_FEATURE_INSMOD_LOAD_MAP is not set # CONFIG_FEATURE_INSMOD_LOAD_MAP_FULL is not set # CONFIG_FEATURE_CHECK_TAINTED_MODULE is not set +# CONFIG_FEATURE_INSMOD_TRY_MMAP is not set # CONFIG_FEATURE_MODUTILS_ALIAS is not set # CONFIG_FEATURE_MODUTILS_SYMBOLS is not set CONFIG_DEFAULT_MODULES_DIR="/lib/modules" @@ -551,45 +603,27 @@ CONFIG_DEFAULT_DEPMOD_FILE="modules.dep" # # Linux System Utilities # +CONFIG_ACPID=y +CONFIG_FEATURE_ACPID_COMPAT=y # CONFIG_BLKDISCARD is not set +CONFIG_BLKID=y +# CONFIG_FEATURE_BLKID_TYPE is not set CONFIG_BLOCKDEV=y +CONFIG_CAL=y +CONFIG_CHRT=y +CONFIG_DMESG=y +CONFIG_FEATURE_DMESG_PRETTY=y +# CONFIG_EJECT is not set +# CONFIG_FEATURE_EJECT_SCSI is not set +CONFIG_FALLOCATE=y # CONFIG_FATATTR is not set -# CONFIG_FSTRIM is not set -CONFIG_MDEV=y -CONFIG_FEATURE_MDEV_CONF=y -CONFIG_FEATURE_MDEV_RENAME=y -CONFIG_FEATURE_MDEV_RENAME_REGEXP=y -CONFIG_FEATURE_MDEV_EXEC=y -CONFIG_FEATURE_MDEV_LOAD_FIRMWARE=y -CONFIG_MOUNT=y -CONFIG_FEATURE_MOUNT_FAKE=y -CONFIG_FEATURE_MOUNT_VERBOSE=y -# CONFIG_FEATURE_MOUNT_HELPERS is not set -CONFIG_FEATURE_MOUNT_LABEL=y -# CONFIG_FEATURE_MOUNT_NFS is not set -CONFIG_FEATURE_MOUNT_CIFS=y -CONFIG_FEATURE_MOUNT_FLAGS=y -CONFIG_FEATURE_MOUNT_FSTAB=y -# CONFIG_FEATURE_MOUNT_OTHERTAB is not set -# CONFIG_NSENTER is not set -# CONFIG_FEATURE_NSENTER_LONG_OPTS is not set -CONFIG_REV=y -CONFIG_SETARCH=y -# CONFIG_UEVENT is not set -# CONFIG_UNSHARE is not set -CONFIG_ACPID=y -CONFIG_FEATURE_ACPID_COMPAT=y -CONFIG_BLKID=y -# CONFIG_FEATURE_BLKID_TYPE is not set -CONFIG_DMESG=y -CONFIG_FEATURE_DMESG_PRETTY=y # CONFIG_FBSET is not set # CONFIG_FEATURE_FBSET_FANCY is not set # CONFIG_FEATURE_FBSET_READMODE is not set -# CONFIG_FDFLUSH is not set # CONFIG_FDFORMAT is not set CONFIG_FDISK=y # CONFIG_FDISK_SUPPORT_LARGE_DISKS is not set +CONFIG_FEATURE_FDISK_BLKSIZE=y CONFIG_FEATURE_FDISK_WRITABLE=y # CONFIG_FEATURE_AIX_LABEL is not set # CONFIG_FEATURE_SGI_LABEL is not set @@ -599,42 +633,92 @@ CONFIG_FEATURE_FDISK_WRITABLE=y CONFIG_FEATURE_FDISK_ADVANCED=y CONFIG_FINDFS=y CONFIG_FLOCK=y +# CONFIG_FDFLUSH is not set CONFIG_FREERAMDISK=y # CONFIG_FSCK_MINIX is not set -CONFIG_MKFS_EXT2=y -# CONFIG_MKFS_MINIX is not set -# CONFIG_FEATURE_MINIX2 is not set -# CONFIG_MKFS_REISER is not set -CONFIG_MKFS_VFAT=y +CONFIG_FSFREEZE=y +# CONFIG_FSTRIM is not set CONFIG_GETOPT=y CONFIG_FEATURE_GETOPT_LONG=y CONFIG_HEXDUMP=y -CONFIG_FEATURE_HEXDUMP_REVERSE=y CONFIG_HD=y +CONFIG_XXD=y CONFIG_HWCLOCK=y -CONFIG_FEATURE_HWCLOCK_LONG_OPTIONS=y # CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS is not set +CONFIG_IONICE=y CONFIG_IPCRM=y CONFIG_IPCS=y +# CONFIG_LAST is not set +# CONFIG_FEATURE_LAST_FANCY is not set CONFIG_LOSETUP=y +CONFIG_LSBLK=y CONFIG_LSPCI=y CONFIG_LSUSB=y +CONFIG_MDEV=y +CONFIG_FEATURE_MDEV_CONF=y +CONFIG_FEATURE_MDEV_RENAME=y +CONFIG_FEATURE_MDEV_RENAME_REGEXP=y +CONFIG_FEATURE_MDEV_EXEC=y +CONFIG_FEATURE_MDEV_LOAD_FIRMWARE=y +CONFIG_FEATURE_MDEV_DAEMON=y +# CONFIG_MESG is not set +# CONFIG_FEATURE_MESG_ENABLE_ONLY_GROUP is not set +CONFIG_MKE2FS=y +CONFIG_MKFS_EXT2=y +# CONFIG_MKFS_MINIX is not set +# CONFIG_FEATURE_MINIX2 is not set +# CONFIG_MKFS_REISER is not set +CONFIG_MKDOSFS=y +CONFIG_MKFS_VFAT=y CONFIG_MKSWAP=y CONFIG_FEATURE_MKSWAP_UUID=y CONFIG_MORE=y +CONFIG_MOUNT=y +CONFIG_FEATURE_MOUNT_FAKE=y +CONFIG_FEATURE_MOUNT_VERBOSE=y +# CONFIG_FEATURE_MOUNT_HELPERS is not set +CONFIG_FEATURE_MOUNT_LABEL=y +# CONFIG_FEATURE_MOUNT_NFS is not set +CONFIG_FEATURE_MOUNT_CIFS=y +CONFIG_FEATURE_MOUNT_FLAGS=y +CONFIG_FEATURE_MOUNT_FSTAB=y +# CONFIG_FEATURE_MOUNT_OTHERTAB is not set +CONFIG_MOUNTPOINT=y +CONFIG_NOLOGIN=y +# CONFIG_NOLOGIN_DEPENDENCIES is not set +# CONFIG_NSENTER is not set CONFIG_PIVOT_ROOT=y CONFIG_RDATE=y CONFIG_RDEV=y CONFIG_READPROFILE=y +CONFIG_RENICE=y +CONFIG_REV=y CONFIG_RTCWAKE=y CONFIG_SCRIPT=y CONFIG_SCRIPTREPLAY=y -CONFIG_SWAPONOFF=y +CONFIG_SETARCH=y +CONFIG_LINUX32=y +CONFIG_LINUX64=y +CONFIG_SETPRIV=y +CONFIG_FEATURE_SETPRIV_DUMP=y +CONFIG_FEATURE_SETPRIV_CAPABILITIES=y +CONFIG_FEATURE_SETPRIV_CAPABILITY_NAMES=y +CONFIG_SETSID=y +CONFIG_SWAPON=y # CONFIG_FEATURE_SWAPON_DISCARD is not set CONFIG_FEATURE_SWAPON_PRI=y +CONFIG_SWAPOFF=y +CONFIG_FEATURE_SWAPONOFF_LABEL=y CONFIG_SWITCH_ROOT=y +# CONFIG_TASKSET is not set +# CONFIG_FEATURE_TASKSET_FANCY is not set +# CONFIG_FEATURE_TASKSET_CPULIST is not set +# CONFIG_UEVENT is not set CONFIG_UMOUNT=y CONFIG_FEATURE_UMOUNT_ALL=y +# CONFIG_UNSHARE is not set +CONFIG_UUIDGEN=y +# CONFIG_WALL is not set # # Common options for mount/umount @@ -650,6 +734,7 @@ CONFIG_VOLUMEID=y # CONFIG_FEATURE_VOLUMEID_BCACHE is not set CONFIG_FEATURE_VOLUMEID_BTRFS=y CONFIG_FEATURE_VOLUMEID_CRAMFS=y +CONFIG_FEATURE_VOLUMEID_EROFS=y # CONFIG_FEATURE_VOLUMEID_EXFAT is not set CONFIG_FEATURE_VOLUMEID_EXT=y # CONFIG_FEATURE_VOLUMEID_F2FS is not set @@ -657,9 +742,11 @@ CONFIG_FEATURE_VOLUMEID_FAT=y CONFIG_FEATURE_VOLUMEID_HFS=y CONFIG_FEATURE_VOLUMEID_ISO9660=y CONFIG_FEATURE_VOLUMEID_JFS=y +# CONFIG_FEATURE_VOLUMEID_LFS is not set CONFIG_FEATURE_VOLUMEID_LINUXRAID=y CONFIG_FEATURE_VOLUMEID_LINUXSWAP=y CONFIG_FEATURE_VOLUMEID_LUKS=y +CONFIG_FEATURE_VOLUMEID_MINIX=y # CONFIG_FEATURE_VOLUMEID_NILFS is not set CONFIG_FEATURE_VOLUMEID_NTFS=y CONFIG_FEATURE_VOLUMEID_OCFS2=y @@ -667,49 +754,23 @@ CONFIG_FEATURE_VOLUMEID_REISERFS=y CONFIG_FEATURE_VOLUMEID_ROMFS=y # CONFIG_FEATURE_VOLUMEID_SQUASHFS is not set CONFIG_FEATURE_VOLUMEID_SYSV=y +CONFIG_FEATURE_VOLUMEID_UBIFS=y CONFIG_FEATURE_VOLUMEID_UDF=y CONFIG_FEATURE_VOLUMEID_XFS=y # # Miscellaneous Utilities # -# CONFIG_CONSPY is not set -# CONFIG_CROND is not set -# CONFIG_FEATURE_CROND_D is not set -# CONFIG_FEATURE_CROND_CALL_SENDMAIL is not set -CONFIG_FEATURE_CROND_DIR="" -# CONFIG_I2CGET is not set -# CONFIG_I2CSET is not set -# CONFIG_I2CDUMP is not set -# CONFIG_I2CDETECT is not set -CONFIG_LESS=y -CONFIG_FEATURE_LESS_MAXLINES=9999999 -CONFIG_FEATURE_LESS_BRACKETS=y -CONFIG_FEATURE_LESS_FLAGS=y -# CONFIG_FEATURE_LESS_TRUNCATE is not set -CONFIG_FEATURE_LESS_MARKS=y -CONFIG_FEATURE_LESS_REGEXP=y -CONFIG_FEATURE_LESS_WINCH=y -CONFIG_FEATURE_LESS_ASK_TERMINAL=y -CONFIG_FEATURE_LESS_DASHCMD=y -CONFIG_FEATURE_LESS_LINENUMS=y -CONFIG_NANDWRITE=y -CONFIG_NANDDUMP=y -# CONFIG_RFKILL is not set -CONFIG_SETSERIAL=y -# CONFIG_TASKSET is not set -# CONFIG_FEATURE_TASKSET_FANCY is not set -# CONFIG_UBIRENAME is not set -CONFIG_UBIATTACH=y -CONFIG_UBIDETACH=y -CONFIG_UBIMKVOL=y -CONFIG_UBIRMVOL=y -CONFIG_UBIRSVOL=y -CONFIG_UBIUPDATEVOL=y -# CONFIG_WALL is not set CONFIG_ADJTIMEX=y +CONFIG_ASCII=y # CONFIG_BBCONFIG is not set # CONFIG_FEATURE_COMPRESS_BBCONFIG is not set +CONFIG_BC=y +# CONFIG_DC is not set +CONFIG_FEATURE_DC_BIG=y +# CONFIG_FEATURE_DC_LIBM is not set +CONFIG_FEATURE_BC_INTERACTIVE=y +CONFIG_FEATURE_BC_LONG_OPTIONS=y CONFIG_BEEP=y CONFIG_FEATURE_BEEP_FREQ=4000 CONFIG_FEATURE_BEEP_LENGTH_MS=30 @@ -721,27 +782,26 @@ CONFIG_FEATURE_BEEP_LENGTH_MS=30 # CONFIG_FEATURE_CHAT_SEND_ESCAPES is not set # CONFIG_FEATURE_CHAT_VAR_ABORT_LEN is not set # CONFIG_FEATURE_CHAT_CLR_ABORT is not set -CONFIG_CHRT=y +# CONFIG_CONSPY is not set +# CONFIG_CROND is not set +# CONFIG_FEATURE_CROND_D is not set +# CONFIG_FEATURE_CROND_CALL_SENDMAIL is not set +# CONFIG_FEATURE_CROND_SPECIAL_TIMES is not set +CONFIG_FEATURE_CROND_DIR="" # CONFIG_CRONTAB is not set -# CONFIG_DC is not set -# CONFIG_FEATURE_DC_LIBM is not set # CONFIG_DEVFSD is not set # CONFIG_DEVFSD_MODLOAD is not set # CONFIG_DEVFSD_FG_NP is not set # CONFIG_DEVFSD_VERBOSE is not set # CONFIG_FEATURE_DEVFS is not set CONFIG_DEVMEM=y -# CONFIG_EJECT is not set -# CONFIG_FEATURE_EJECT_SCSI is not set # CONFIG_FBSPLASH is not set -CONFIG_FLASHCP=y +CONFIG_FLASH_ERASE=y CONFIG_FLASH_LOCK=y CONFIG_FLASH_UNLOCK=y -CONFIG_FLASH_ERASE=y -CONFIG_IONICE=y -# CONFIG_INOTIFYD is not set -# CONFIG_LAST is not set -# CONFIG_FEATURE_LAST_FANCY is not set +CONFIG_FLASHCP=y +CONFIG_UBOOT_ENV=y +CONFIG_GETFATTR=y # CONFIG_HDPARM is not set # CONFIG_FEATURE_HDPARM_GET_IDENTITY is not set # CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF is not set @@ -749,26 +809,61 @@ CONFIG_IONICE=y # CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET is not set # CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF is not set # CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA is not set +CONFIG_HEXEDIT=y +# CONFIG_I2CGET is not set +# CONFIG_I2CSET is not set +# CONFIG_I2CDUMP is not set +# CONFIG_I2CDETECT is not set +CONFIG_I2CTRANSFER=y +# CONFIG_INOTIFYD is not set CONFIG_IORW=y +CONFIG_LESS=y +CONFIG_FEATURE_LESS_MAXLINES=9999999 +CONFIG_FEATURE_LESS_BRACKETS=y +CONFIG_FEATURE_LESS_FLAGS=y +# CONFIG_FEATURE_LESS_TRUNCATE is not set +CONFIG_FEATURE_LESS_MARKS=y +CONFIG_FEATURE_LESS_REGEXP=y +CONFIG_FEATURE_LESS_WINCH=y +CONFIG_FEATURE_LESS_ASK_TERMINAL=y +CONFIG_FEATURE_LESS_DASHCMD=y +CONFIG_FEATURE_LESS_LINENUMS=y +CONFIG_FEATURE_LESS_RAW=y +CONFIG_FEATURE_LESS_ENV=y +CONFIG_LSSCSI=y # CONFIG_MAKEDEVS is not set # CONFIG_FEATURE_MAKEDEVS_LEAF is not set # CONFIG_FEATURE_MAKEDEVS_TABLE is not set # CONFIG_MAN is not set # CONFIG_MICROCOM is not set -CONFIG_MOUNTPOINT=y +CONFIG_MIM=y # CONFIG_MT is not set +CONFIG_NANDWRITE=y +CONFIG_NANDDUMP=y +# CONFIG_PARTPROBE is not set # CONFIG_RAIDAUTORUN is not set CONFIG_READAHEAD=y +# CONFIG_RFKILL is not set # CONFIG_RUNLEVEL is not set # CONFIG_RX is not set -CONFIG_SETSID=y +CONFIG_SEEDRNG=y +CONFIG_SETFATTR=y +CONFIG_SETSERIAL=y # CONFIG_STRINGS is not set CONFIG_TIME=y -CONFIG_TIMEOUT=y +CONFIG_TREE=y +CONFIG_TS=y # CONFIG_TTYSIZE is not set -CONFIG_UBOOT_ENV=y +CONFIG_UBIATTACH=y +CONFIG_UBIDETACH=y +CONFIG_UBIMKVOL=y +CONFIG_UBIRMVOL=y +CONFIG_UBIRSVOL=y +CONFIG_UBIUPDATEVOL=y +# CONFIG_UBIRENAME is not set # CONFIG_VOLNAME is not set CONFIG_WATCHDOG=y +# CONFIG_FEATURE_WATCHDOG_OPEN_TWICE is not set # CONFIG_SYS_EEPROM is not set # CONFIG_SYS_EEPROM_DEVICE_I2C is not set # CONFIG_SYS_EEPROM_DEVICE_MTD is not set @@ -776,10 +871,10 @@ CONFIG_WATCHDOG=y # CONFIG_SYS_EEPROM_SYSFS_FILE is not set CONFIG_SYS_EEPROM_I2C_DEVICE="" CONFIG_SYS_EEPROM_I2C_ADDR= -CONFIG_SYS_EEPROM_I2C_MEM_ADDR_BITS=8 -CONFIG_SYS_EEPROM_I2C_WRITE_1B_DELAY=10 -CONFIG_SYS_EEPROM_I2C_WRITE_2B_DELAY=1000 -CONFIG_SYS_EEPROM_I2C_WRITE_3B_DELAY=10 +CONFIG_SYS_EEPROM_I2C_MEM_ADDR_BITS=0 +CONFIG_SYS_EEPROM_I2C_WRITE_1B_DELAY=0 +CONFIG_SYS_EEPROM_I2C_WRITE_2B_DELAY=0 +CONFIG_SYS_EEPROM_I2C_WRITE_3B_DELAY=0 CONFIG_SYS_EEPROM_MTD_DEVICE="" CONFIG_SYS_EEPROM_DISK_DEVICE="" CONFIG_SYS_EEPROM_SYSFS_FILE_PATH="" @@ -790,28 +885,14 @@ CONFIG_SYS_EEPROM_MAX_SIZE=0 # # Networking Utilities # -CONFIG_NAMEIF=y -CONFIG_FEATURE_NAMEIF_EXTENDED=y -CONFIG_NBDCLIENT=y -CONFIG_NC=y -CONFIG_NC_SERVER=y -CONFIG_NC_EXTRA=y -# CONFIG_NC_110_COMPAT is not set -CONFIG_PING=y -CONFIG_PING6=y -CONFIG_FEATURE_FANCY_PING=y -CONFIG_WGET=y -CONFIG_FEATURE_WGET_STATUSBAR=y -CONFIG_FEATURE_WGET_AUTHENTICATION=y -CONFIG_FEATURE_WGET_LONG_OPTIONS=y -CONFIG_FEATURE_WGET_TIMEOUT=y -# CONFIG_FEATURE_WGET_OPENSSL is not set -# CONFIG_FEATURE_WGET_SSL_HELPER is not set -CONFIG_WHOIS=y CONFIG_FEATURE_IPV6=y # CONFIG_FEATURE_UNIX_LOCAL is not set CONFIG_FEATURE_PREFER_IPV4_ADDRESS=y CONFIG_VERBOSE_RESOLUTION_ERRORS=y +# CONFIG_FEATURE_ETC_NETWORKS is not set +# CONFIG_FEATURE_ETC_SERVICES is not set +# CONFIG_FEATURE_HWIB is not set +# CONFIG_FEATURE_TLS_SHA1 is not set CONFIG_ARP=y CONFIG_ARPING=y CONFIG_BRCTL=y @@ -819,16 +900,17 @@ CONFIG_FEATURE_BRCTL_FANCY=y CONFIG_FEATURE_BRCTL_SHOW=y # CONFIG_DNSD is not set CONFIG_ETHER_WAKE=y -CONFIG_FAKEIDENTD=y # CONFIG_FTPD is not set -# CONFIG_FEATURE_FTP_WRITE is not set +# CONFIG_FEATURE_FTPD_WRITE is not set # CONFIG_FEATURE_FTPD_ACCEPT_BROKEN_LIST is not set -# CONFIG_FEATURE_FTP_AUTHENTICATION is not set +# CONFIG_FEATURE_FTPD_AUTHENTICATION is not set CONFIG_FTPGET=y CONFIG_FTPPUT=y CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS=y CONFIG_HOSTNAME=y +CONFIG_DNSDOMAINNAME=y # CONFIG_HTTPD is not set +CONFIG_FEATURE_HTTPD_PORT_DEFAULT=0 # CONFIG_FEATURE_HTTPD_RANGES is not set # CONFIG_FEATURE_HTTPD_SETUID is not set # CONFIG_FEATURE_HTTPD_BASIC_AUTH is not set @@ -840,6 +922,10 @@ CONFIG_HOSTNAME=y # CONFIG_FEATURE_HTTPD_ERROR_PAGES is not set # CONFIG_FEATURE_HTTPD_PROXY is not set # CONFIG_FEATURE_HTTPD_GZIP is not set +# CONFIG_FEATURE_HTTPD_ETAG is not set +# CONFIG_FEATURE_HTTPD_LAST_MODIFIED is not set +# CONFIG_FEATURE_HTTPD_DATE is not set +# CONFIG_FEATURE_HTTPD_ACL_IP is not set CONFIG_IFCONFIG=y CONFIG_FEATURE_IFCONFIG_STATUS=y CONFIG_FEATURE_IFCONFIG_SLIP=y @@ -848,11 +934,10 @@ CONFIG_FEATURE_IFCONFIG_HW=y CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS=y CONFIG_IFENSLAVE=y CONFIG_IFPLUGD=y -CONFIG_IFUPDOWN=y +CONFIG_IFUP=y +CONFIG_IFDOWN=y CONFIG_IFUPDOWN_IFSTATE_PATH="/var/run/ifstate" CONFIG_FEATURE_IFUPDOWN_IP=y -CONFIG_FEATURE_IFUPDOWN_IP_BUILTIN=y -# CONFIG_FEATURE_IFUPDOWN_IFCONFIG_BUILTIN is not set CONFIG_FEATURE_IFUPDOWN_IPV4=y CONFIG_FEATURE_IFUPDOWN_IPV6=y CONFIG_FEATURE_IFUPDOWN_MAPPING=y @@ -865,79 +950,118 @@ CONFIG_FEATURE_IFUPDOWN_MAPPING=y # CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN is not set # CONFIG_FEATURE_INETD_RPC is not set CONFIG_IP=y +CONFIG_IPADDR=y +CONFIG_IPLINK=y +CONFIG_IPROUTE=y +CONFIG_IPTUNNEL=y +CONFIG_IPRULE=y +CONFIG_IPNEIGH=y CONFIG_FEATURE_IP_ADDRESS=y CONFIG_FEATURE_IP_LINK=y +CONFIG_FEATURE_IP_LINK_CAN=y CONFIG_FEATURE_IP_ROUTE=y CONFIG_FEATURE_IP_ROUTE_DIR="" CONFIG_FEATURE_IP_TUNNEL=y CONFIG_FEATURE_IP_RULE=y CONFIG_FEATURE_IP_NEIGH=y -CONFIG_FEATURE_IP_SHORT_FORMS=y # CONFIG_FEATURE_IP_RARE_PROTOCOLS is not set -CONFIG_IPADDR=y -CONFIG_IPLINK=y -CONFIG_IPROUTE=y -CONFIG_IPTUNNEL=y -CONFIG_IPRULE=y -CONFIG_IPNEIGH=y CONFIG_IPCALC=y -CONFIG_FEATURE_IPCALC_FANCY=y CONFIG_FEATURE_IPCALC_LONG_OPTIONS=y +CONFIG_FEATURE_IPCALC_FANCY=y +CONFIG_FAKEIDENTD=y +CONFIG_NAMEIF=y +CONFIG_FEATURE_NAMEIF_EXTENDED=y +CONFIG_NBDCLIENT=y +CONFIG_NC=y +# CONFIG_NETCAT is not set +CONFIG_NC_SERVER=y +CONFIG_NC_EXTRA=y +# CONFIG_NC_110_COMPAT is not set CONFIG_NETSTAT=y CONFIG_FEATURE_NETSTAT_WIDE=y CONFIG_FEATURE_NETSTAT_PRG=y CONFIG_NSLOOKUP=y +CONFIG_FEATURE_NSLOOKUP_BIG=y +CONFIG_FEATURE_NSLOOKUP_LONG_OPTIONS=y # CONFIG_NTPD is not set # CONFIG_FEATURE_NTPD_SERVER is not set # CONFIG_FEATURE_NTPD_CONF is not set +# CONFIG_FEATURE_NTP_AUTH is not set +CONFIG_PING=y +CONFIG_PING6=y +CONFIG_FEATURE_FANCY_PING=y CONFIG_PSCAN=y CONFIG_ROUTE=y CONFIG_SLATTACH=y +CONFIG_SSL_CLIENT=y +CONFIG_SSL_SERVER=y +# CONFIG_TC is not set +# CONFIG_FEATURE_TC_INGRESS is not set # CONFIG_TCPSVD is not set +# CONFIG_UDPSVD is not set CONFIG_TELNET=y CONFIG_FEATURE_TELNET_TTYPE=y CONFIG_FEATURE_TELNET_AUTOLOGIN=y +CONFIG_FEATURE_TELNET_WIDTH=y CONFIG_TELNETD=y +# CONFIG_FEATURE_TELNETD_SELFTEST_DEBUG is not set CONFIG_FEATURE_TELNETD_STANDALONE=y +CONFIG_FEATURE_TELNETD_PORT_DEFAULT=23 # CONFIG_FEATURE_TELNETD_INETD_WAIT is not set CONFIG_TFTP=y +CONFIG_FEATURE_TFTP_PROGRESS_BAR=y +CONFIG_FEATURE_TFTP_HPA_COMPAT=y # CONFIG_TFTPD is not set - -# -# Common options for tftp/tftpd -# CONFIG_FEATURE_TFTP_GET=y CONFIG_FEATURE_TFTP_PUT=y CONFIG_FEATURE_TFTP_BLOCKSIZE=y -CONFIG_FEATURE_TFTP_PROGRESS_BAR=y # CONFIG_TFTP_DEBUG is not set +CONFIG_TLS=y CONFIG_TRACEROUTE=y CONFIG_TRACEROUTE6=y CONFIG_FEATURE_TRACEROUTE_VERBOSE=y -# CONFIG_FEATURE_TRACEROUTE_SOURCE_ROUTE is not set # CONFIG_FEATURE_TRACEROUTE_USE_ICMP is not set CONFIG_TUNCTL=y CONFIG_FEATURE_TUNCTL_UG=y -CONFIG_UDHCPC6=y +# CONFIG_VCONFIG is not set +CONFIG_WGET=y +CONFIG_FEATURE_WGET_LONG_OPTIONS=y +CONFIG_FEATURE_WGET_STATUSBAR=y +CONFIG_FEATURE_WGET_FTP=y +CONFIG_FEATURE_WGET_AUTHENTICATION=y +CONFIG_FEATURE_WGET_TIMEOUT=y +CONFIG_FEATURE_WGET_HTTPS=y +# CONFIG_FEATURE_WGET_OPENSSL is not set +CONFIG_WHOIS=y +CONFIG_ZCIP=y # CONFIG_UDHCPD is not set -# CONFIG_DHCPRELAY is not set -# CONFIG_DUMPLEASES is not set -# CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY is not set +# CONFIG_FEATURE_UDHCPD_BOOTP is not set # CONFIG_FEATURE_UDHCPD_BASE_IP_ON_MAC is not set +# CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY is not set CONFIG_DHCPD_LEASES_FILE="" +# CONFIG_DUMPLEASES is not set +# CONFIG_DHCPRELAY is not set CONFIG_UDHCPC=y CONFIG_FEATURE_UDHCPC_ARPING=y # CONFIG_FEATURE_UDHCPC_SANITIZEOPT is not set +CONFIG_UDHCPC_DEFAULT_SCRIPT="/usr/share/udhcpc/default.script" +CONFIG_UDHCPC6_DEFAULT_SCRIPT="/usr/share/udhcpc/default6.script" +CONFIG_UDHCPC6=y +CONFIG_FEATURE_UDHCPC6_RFC3646=y +CONFIG_FEATURE_UDHCPC6_RFC4704=y +CONFIG_FEATURE_UDHCPC6_RFC4833=y +CONFIG_FEATURE_UDHCPC6_RFC5970=y + +# +# Common options for DHCP applets +# +CONFIG_UDHCPC_DEFAULT_INTERFACE="eth0" # CONFIG_FEATURE_UDHCP_PORT is not set CONFIG_UDHCP_DEBUG=9 +CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=80 CONFIG_FEATURE_UDHCP_RFC3397=y CONFIG_FEATURE_UDHCP_8021Q=y -CONFIG_UDHCPC_DEFAULT_SCRIPT="/usr/share/udhcpc/default.script" -CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=80 CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS="-R -n" -# CONFIG_UDPSVD is not set -# CONFIG_VCONFIG is not set -CONFIG_ZCIP=y # # Print Utilities @@ -949,8 +1073,8 @@ CONFIG_ZCIP=y # # Mail Utilities # -# CONFIG_MAKEMIME is not set CONFIG_FEATURE_MIME_CHARSET="" +# CONFIG_MAKEMIME is not set # CONFIG_POPMAILDIR is not set # CONFIG_FEATURE_POPMAILDIR_DELIVERY is not set # CONFIG_REFORMIME is not set @@ -960,16 +1084,37 @@ CONFIG_FEATURE_MIME_CHARSET="" # # Process Utilities # +CONFIG_FEATURE_FAST_TOP=y +CONFIG_FEATURE_SHOW_THREADS=y +CONFIG_FREE=y +CONFIG_FUSER=y CONFIG_IOSTAT=y +CONFIG_KILL=y +CONFIG_KILLALL=y +CONFIG_KILLALL5=y CONFIG_LSOF=y CONFIG_MPSTAT=y CONFIG_NMETER=y +CONFIG_PGREP=y +CONFIG_PKILL=y +CONFIG_PIDOF=y +CONFIG_FEATURE_PIDOF_SINGLE=y +CONFIG_FEATURE_PIDOF_OMIT=y CONFIG_PMAP=y CONFIG_POWERTOP=y +CONFIG_FEATURE_POWERTOP_INTERACTIVE=y +CONFIG_PS=y +CONFIG_FEATURE_PS_WIDE=y +CONFIG_FEATURE_PS_LONG=y +# CONFIG_FEATURE_PS_TIME is not set +# CONFIG_FEATURE_PS_UNUSUAL_SYSTEMS is not set +# CONFIG_FEATURE_PS_ADDITIONAL_COLUMNS is not set CONFIG_PSTREE=y CONFIG_PWDX=y CONFIG_SMEMCAP=y +CONFIG_BB_SYSCTL=y CONFIG_TOP=y +CONFIG_FEATURE_TOP_INTERACTIVE=y CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE=y CONFIG_FEATURE_TOP_CPU_GLOBAL_PERCENTS=y CONFIG_FEATURE_TOP_SMP_CPU=y @@ -978,25 +1123,7 @@ CONFIG_FEATURE_TOP_SMP_PROCESS=y CONFIG_FEATURE_TOPMEM=y CONFIG_UPTIME=y # CONFIG_FEATURE_UPTIME_UTMP_SUPPORT is not set -CONFIG_FREE=y -CONFIG_FUSER=y -CONFIG_KILL=y -CONFIG_KILLALL=y -CONFIG_KILLALL5=y -CONFIG_PGREP=y -CONFIG_PIDOF=y -CONFIG_FEATURE_PIDOF_SINGLE=y -CONFIG_FEATURE_PIDOF_OMIT=y -CONFIG_PKILL=y -CONFIG_PS=y -CONFIG_FEATURE_PS_WIDE=y -CONFIG_FEATURE_PS_LONG=y -# CONFIG_FEATURE_PS_TIME is not set -# CONFIG_FEATURE_PS_ADDITIONAL_COLUMNS is not set -# CONFIG_FEATURE_PS_UNUSUAL_SYSTEMS is not set -CONFIG_RENICE=y -CONFIG_BB_SYSCTL=y -CONFIG_FEATURE_SHOW_THREADS=y +CONFIG_VMSTAT=y CONFIG_WATCH=y # @@ -1012,46 +1139,59 @@ CONFIG_RUNSVDIR=y # CONFIG_FEATURE_RUNSVDIR_LOG is not set CONFIG_SV=y CONFIG_SV_DEFAULT_SERVICE_DIR="/var/service" +CONFIG_SVC=y +CONFIG_SVOK=y CONFIG_SVLOGD=y # CONFIG_CHCON is not set -# CONFIG_FEATURE_CHCON_LONG_OPTIONS is not set # CONFIG_GETENFORCE is not set # CONFIG_GETSEBOOL is not set # CONFIG_LOAD_POLICY is not set # CONFIG_MATCHPATHCON is not set -# CONFIG_RESTORECON is not set # CONFIG_RUNCON is not set -# CONFIG_FEATURE_RUNCON_LONG_OPTIONS is not set # CONFIG_SELINUXENABLED is not set +# CONFIG_SESTATUS is not set # CONFIG_SETENFORCE is not set # CONFIG_SETFILES is not set # CONFIG_FEATURE_SETFILES_CHECK_OPTION is not set +# CONFIG_RESTORECON is not set # CONFIG_SETSEBOOL is not set -# CONFIG_SESTATUS is not set # # Shells # +CONFIG_SH_IS_ASH=y +# CONFIG_SH_IS_HUSH is not set +# CONFIG_SH_IS_NONE is not set +# CONFIG_BASH_IS_ASH is not set +# CONFIG_BASH_IS_HUSH is not set +CONFIG_BASH_IS_NONE=y +CONFIG_SHELL_ASH=y CONFIG_ASH=y +CONFIG_ASH_OPTIMIZE_FOR_SIZE=y +CONFIG_ASH_INTERNAL_GLOB=y CONFIG_ASH_BASH_COMPAT=y -# CONFIG_ASH_IDLE_TIMEOUT is not set +# CONFIG_ASH_BASH_SOURCE_CURDIR is not set +CONFIG_ASH_BASH_NOT_FOUND_HOOK=y CONFIG_ASH_JOB_CONTROL=y CONFIG_ASH_ALIAS=y -CONFIG_ASH_GETOPTS=y -CONFIG_ASH_BUILTIN_ECHO=y -CONFIG_ASH_BUILTIN_PRINTF=y -CONFIG_ASH_BUILTIN_TEST=y -# CONFIG_ASH_HELP is not set -CONFIG_ASH_CMDCMD=y -# CONFIG_ASH_MAIL is not set -CONFIG_ASH_OPTIMIZE_FOR_SIZE=y CONFIG_ASH_RANDOM_SUPPORT=y CONFIG_ASH_EXPAND_PRMT=y +# CONFIG_ASH_IDLE_TIMEOUT is not set +# CONFIG_ASH_MAIL is not set +CONFIG_ASH_ECHO=y +CONFIG_ASH_PRINTF=y +CONFIG_ASH_TEST=y +# CONFIG_ASH_HELP is not set +CONFIG_ASH_GETOPTS=y +CONFIG_ASH_CMDCMD=y CONFIG_CTTYHACK=y # CONFIG_HUSH is not set +# CONFIG_SHELL_HUSH is not set +# CONFIG_HUSH_NEED_FOR_SPEED is not set # CONFIG_HUSH_BASH_COMPAT is not set # CONFIG_HUSH_BRACE_EXPANSION is not set -# CONFIG_HUSH_HELP is not set +# CONFIG_HUSH_BASH_SOURCE_CURDIR is not set +# CONFIG_HUSH_LINENO_VAR is not set # CONFIG_HUSH_INTERACTIVE is not set # CONFIG_HUSH_SAVEHISTORY is not set # CONFIG_HUSH_JOB is not set @@ -1059,24 +1199,45 @@ CONFIG_CTTYHACK=y # CONFIG_HUSH_IF is not set # CONFIG_HUSH_LOOPS is not set # CONFIG_HUSH_CASE is not set +# CONFIG_HUSH_ALIAS is not set # CONFIG_HUSH_FUNCTIONS is not set +# CONFIG_HUSH_FUNCTION_KEYWORD is not set # CONFIG_HUSH_LOCAL is not set # CONFIG_HUSH_RANDOM_SUPPORT is not set -# CONFIG_HUSH_EXPORT_N is not set # CONFIG_HUSH_MODE_X is not set -# CONFIG_MSH is not set -CONFIG_FEATURE_SH_IS_ASH=y -# CONFIG_FEATURE_SH_IS_HUSH is not set -# CONFIG_FEATURE_SH_IS_NONE is not set -# CONFIG_FEATURE_BASH_IS_ASH is not set -# CONFIG_FEATURE_BASH_IS_HUSH is not set -CONFIG_FEATURE_BASH_IS_NONE=y -CONFIG_SH_MATH_SUPPORT=y -CONFIG_SH_MATH_SUPPORT_64=y +# CONFIG_HUSH_ECHO is not set +# CONFIG_HUSH_PRINTF is not set +# CONFIG_HUSH_TEST is not set +# CONFIG_HUSH_HELP is not set +# CONFIG_HUSH_EXPORT is not set +# CONFIG_HUSH_EXPORT_N is not set +# CONFIG_HUSH_READONLY is not set +# CONFIG_HUSH_KILL is not set +# CONFIG_HUSH_WAIT is not set +# CONFIG_HUSH_COMMAND is not set +# CONFIG_HUSH_TRAP is not set +# CONFIG_HUSH_TYPE is not set +# CONFIG_HUSH_TIMES is not set +# CONFIG_HUSH_READ is not set +# CONFIG_HUSH_SET is not set +# CONFIG_HUSH_UNSET is not set +# CONFIG_HUSH_ULIMIT is not set +# CONFIG_HUSH_UMASK is not set +# CONFIG_HUSH_GETOPTS is not set +# CONFIG_HUSH_MEMLEAK is not set + +# +# Options common to all shells +# +CONFIG_FEATURE_SH_MATH=y +CONFIG_FEATURE_SH_MATH_64=y +CONFIG_FEATURE_SH_MATH_BASE=y CONFIG_FEATURE_SH_EXTRA_QUIET=y # CONFIG_FEATURE_SH_STANDALONE is not set # CONFIG_FEATURE_SH_NOFORK is not set +CONFIG_FEATURE_SH_READ_FRAC=y CONFIG_FEATURE_SH_HISTFILESIZE=y +CONFIG_FEATURE_SH_EMBEDDED_SCRIPTS=y # # System Logging Utilities @@ -1091,6 +1252,7 @@ CONFIG_FEATURE_ROTATE_LOGFILE=y CONFIG_FEATURE_REMOTE_LOG=y CONFIG_FEATURE_SYSLOGD_DUP=y CONFIG_FEATURE_SYSLOGD_CFG=y +# CONFIG_FEATURE_SYSLOGD_PRECISE_TIMESTAMPS is not set CONFIG_FEATURE_SYSLOGD_READ_BUFFER_SIZE=256 CONFIG_FEATURE_IPC_SYSLOG=y CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=16 diff --git a/build-config/conf/crosstool/gcc-14.3.0/uClibc-ng-1.0.54/crosstool.x86_64.defconfig b/build-config/conf/crosstool/gcc-14.3.0/uClibc-ng-1.0.54/crosstool.x86_64.defconfig new file mode 100644 index 000000000..279dbe145 --- /dev/null +++ b/build-config/conf/crosstool/gcc-14.3.0/uClibc-ng-1.0.54/crosstool.x86_64.defconfig @@ -0,0 +1,49 @@ +CT_CONFIG_VERSION="4" +CT_LOCAL_TARBALLS_DIR="${DOWNLOADDIR}" +CT_WORK_DIR="${CT_TOP_DIR}/build" +CT_PREFIX_DIR="${XTOOLS_INSTALL_DIR}/${CT_TARGET}" +CT_STRIP_TARGET_TOOLCHAIN_EXECUTABLES=y +CT_LOG_INFO=y +# CT_LOG_PROGRESS_BAR is not set +CT_ARCH_X86=y +CT_ARCH_64=y +CT_TOOLCHAIN_PKGVERSION="ONIE-${LSB_RELEASE_TAG}" +CT_TARGET_VENDOR="onie" +CT_TARGET_ALIAS="x86_64" +CT_TOOLCHAIN_ENABLE_NLS=y +CT_KERNEL_LINUX=y +CT_BINUTILS_FOR_TARGET=y +CT_LIBC_UCLIBC_NG=y +CT_LIBC_UCLIBC_CONFIG_FILE="${UCLIBC_CONFIG}" +CT_LIBC_UCLIBC_LOCALES=y +CT_GCC_V_14=y +# CT_CC_GCC_LIBMPX is not set +CT_CC_LANG_CXX=y +CT_DEBUG_DUMA=y +CT_DEBUG_GDB=y +CT_DEBUG_LTRACE=y +CT_DEBUG_STRACE=y +CT_GETTEXT_V_0_19_8_1=y +CT_LIBICONV_V_1_15=y +CT_NCURSES_V_6_0=y +CT_COMP_TOOLS_AUTOCONF=y +CT_AUTOCONF_V_2_69=y +CT_COMP_TOOLS_AUTOMAKE=y +CT_AUTOMAKE_V_1_15=y +CT_COMP_TOOLS_LIBTOOL=y +CT_LIBTOOL_V_2_4=y +CT_COMP_TOOLS_M4=y +CT_COMP_TOOLS_MAKE=y + +# +# Component versions that match the crosstool-NG 1.28.0 defaults are pinned +# explicitly here so the toolchain spec stays visible and is protected against +# silent drift if crosstool-NG is ever bumped (savedefconfig omits defaults). +# +CT_BINUTILS_V_2_45=y +CT_UCLIBC_NG_V_1_0_54=y +CT_GDB_V_16=y +CT_GMP_V_6_3=y +CT_ISL_V_0_27=y +CT_MPC_V_1_3=y +CT_MPFR_V_4_2=y diff --git a/build-config/conf/crosstool/gcc-4.9.2/uClibc-ng-1.0.22/crosstool.armv7a.config b/build-config/conf/crosstool/gcc-4.9.2/uClibc-ng-1.0.22/crosstool.armv7a.config deleted file mode 100644 index 9f5ed7bd6..000000000 --- a/build-config/conf/crosstool/gcc-4.9.2/uClibc-ng-1.0.22/crosstool.armv7a.config +++ /dev/null @@ -1,641 +0,0 @@ -# -# Automatically generated file; DO NOT EDIT. -# Crosstool-NG Configuration -# -CT_CONFIGURE_has_static_link=y -CT_CONFIGURE_has_wget=y -CT_CONFIGURE_has_curl=y -CT_CONFIGURE_has_stat_flavor_GNU=y -CT_CONFIGURE_has_make_3_81_or_newer=y -CT_CONFIGURE_has_libtool_2_4_or_newer=y -CT_CONFIGURE_has_libtoolize_2_4_or_newer=y -CT_CONFIGURE_has_autoconf_2_63_or_newer=y -CT_CONFIGURE_has_autoreconf_2_63_or_newer=y -CT_CONFIGURE_has_gnu_m4_1_4_12_or_newer=y -CT_CONFIGURE_has_svn=y -CT_CONFIGURE_has_git=y -CT_MODULES=y - -# -# Paths and misc options -# - -# -# crosstool-NG behavior -# -CT_OBSOLETE=y -CT_EXPERIMENTAL=y -# CT_ALLOW_BUILD_AS_ROOT is not set -# CT_DEBUG_CT is not set - -# -# Paths -# -CT_LOCAL_TARBALLS_DIR="${DOWNLOADDIR}" -CT_SAVE_TARBALLS=y -CT_WORK_DIR="${CT_TOP_DIR}/build" -CT_BUILD_TOP_DIR="${CT_WORK_DIR}/${CT_HOST:+HOST-${CT_HOST}/}${CT_TARGET}" -CT_PREFIX_DIR="${XTOOLS_INSTALL_DIR}/${CT_TARGET}" -CT_RM_RF_PREFIX_DIR=y -CT_REMOVE_DOCS=y -CT_PREFIX_DIR_RO=y -CT_STRIP_HOST_TOOLCHAIN_EXECUTABLES=y -CT_STRIP_TARGET_TOOLCHAIN_EXECUTABLES=y - -# -# Downloading -# -# CT_DOWNLOAD_AGENT_WGET is not set -# CT_DOWNLOAD_AGENT_CURL is not set -CT_DOWNLOAD_AGENT_NONE=y -CT_FORBID_DOWNLOAD=y - -# -# Extracting -# -# CT_FORCE_EXTRACT is not set -CT_OVERRIDE_CONFIG_GUESS_SUB=y -# CT_ONLY_EXTRACT is not set -# CT_PATCH_BUNDLED is not set -# CT_PATCH_LOCAL is not set -# CT_PATCH_BUNDLED_LOCAL is not set -# CT_PATCH_LOCAL_BUNDLED is not set -CT_PATCH_BUNDLED_FALLBACK_LOCAL=y -# CT_PATCH_LOCAL_FALLBACK_BUNDLED is not set -# CT_PATCH_NONE is not set -CT_PATCH_ORDER="bundled,local" -CT_PATCH_SINGLE=y -CT_PATCH_USE_LOCAL=y -CT_LOCAL_PATCH_DIR="${CROSSTOOL_NG_LOCAL_PATCHDIR}" - -# -# Build behavior -# -CT_PARALLEL_JOBS=0 -CT_LOAD="" -CT_USE_PIPES=y -CT_EXTRA_CFLAGS_FOR_BUILD="" -CT_EXTRA_LDFLAGS_FOR_BUILD="" -CT_EXTRA_CFLAGS_FOR_HOST="" -CT_EXTRA_LDFLAGS_FOR_HOST="" -# CT_CONFIG_SHELL_SH is not set -# CT_CONFIG_SHELL_ASH is not set -CT_CONFIG_SHELL_BASH=y -# CT_CONFIG_SHELL_CUSTOM is not set -CT_CONFIG_SHELL="${bash}" - -# -# Logging -# -# CT_LOG_ERROR is not set -# CT_LOG_WARN is not set -CT_LOG_INFO=y -# CT_LOG_EXTRA is not set -# CT_LOG_ALL is not set -# CT_LOG_DEBUG is not set -CT_LOG_LEVEL_MAX="INFO" -# CT_LOG_SEE_TOOLS_WARN is not set -# CT_LOG_PROGRESS_BAR is not set -CT_LOG_TO_FILE=y -CT_LOG_FILE_COMPRESS=y - -# -# Target options -# -CT_ARCH="arm" -# CT_ARCH_alpha is not set -CT_ARCH_arm=y -# CT_ARCH_avr is not set -# CT_ARCH_m68k is not set -# CT_ARCH_microblaze is not set -# CT_ARCH_mips is not set -# CT_ARCH_nios2 is not set -# CT_ARCH_powerpc is not set -# CT_ARCH_s390 is not set -# CT_ARCH_sh is not set -# CT_ARCH_sparc is not set -# CT_ARCH_x86 is not set -# CT_ARCH_xtensa is not set -CT_ARCH_alpha_AVAILABLE=y -CT_ARCH_arm_AVAILABLE=y -CT_ARCH_avr_AVAILABLE=y -CT_ARCH_m68k_AVAILABLE=y -CT_ARCH_microblaze_AVAILABLE=y -CT_ARCH_mips_AVAILABLE=y -CT_ARCH_nios2_AVAILABLE=y -CT_ARCH_powerpc_AVAILABLE=y -CT_ARCH_s390_AVAILABLE=y -CT_ARCH_sh_AVAILABLE=y -CT_ARCH_sparc_AVAILABLE=y -CT_ARCH_x86_AVAILABLE=y -CT_ARCH_xtensa_AVAILABLE=y -CT_ARCH_SUFFIX="" - -# -# Generic target options -# -# CT_MULTILIB is not set -CT_DEMULTILIB=y -CT_ARCH_SUPPORTS_BOTH_MMU=y -CT_ARCH_DEFAULT_HAS_MMU=y -CT_ARCH_USE_MMU=y -CT_ARCH_SUPPORTS_BOTH_ENDIAN=y -CT_ARCH_DEFAULT_LE=y -# CT_ARCH_BE is not set -CT_ARCH_LE=y -CT_ARCH_ENDIAN="little" -CT_ARCH_SUPPORTS_32=y -CT_ARCH_SUPPORTS_64=y -CT_ARCH_DEFAULT_32=y -CT_ARCH_BITNESS=32 -CT_ARCH_32=y -# CT_ARCH_64 is not set - -# -# Target optimisations -# -CT_ARCH_SUPPORTS_WITH_ARCH=y -CT_ARCH_SUPPORTS_WITH_CPU=y -CT_ARCH_SUPPORTS_WITH_TUNE=y -CT_ARCH_SUPPORTS_WITH_FLOAT=y -CT_ARCH_SUPPORTS_WITH_FPU=y -CT_ARCH_SUPPORTS_SOFTFP=y -CT_ARCH_EXCLUSIVE_WITH_CPU=y -CT_ARCH_CPU="cortex-a9" -CT_ARCH_FPU="" -# CT_ARCH_FLOAT_AUTO is not set -# CT_ARCH_FLOAT_HW is not set -# CT_ARCH_FLOAT_SOFTFP is not set -CT_ARCH_FLOAT_SW=y -CT_TARGET_CFLAGS="" -CT_TARGET_LDFLAGS="" -CT_ARCH_FLOAT="soft" - -# -# arm other options -# -CT_ARCH_ARM_MODE="arm" -CT_ARCH_ARM_MODE_ARM=y -# CT_ARCH_ARM_MODE_THUMB is not set -# CT_ARCH_ARM_INTERWORKING is not set -CT_ARCH_ARM_EABI=y - -# -# Toolchain options -# - -# -# General toolchain options -# -CT_USE_SYSROOT=y -CT_SYSROOT_NAME="sysroot" -CT_SYSROOT_DIR_PREFIX="" -CT_WANTS_STATIC_LINK=y -CT_WANTS_STATIC_LINK_CXX=y -# CT_STATIC_TOOLCHAIN is not set -CT_TOOLCHAIN_PKGVERSION="ONIE-${LSB_RELEASE_TAG}" -CT_TOOLCHAIN_BUGURL="" - -# -# Tuple completion and aliasing -# -CT_TARGET_VENDOR="onie" -CT_TARGET_ALIAS_SED_EXPR="" -CT_TARGET_ALIAS="armv7a" - -# -# Toolchain type -# -# CT_NATIVE is not set -CT_CROSS=y -# CT_CROSS_NATIVE is not set -# CT_CANADIAN is not set -CT_TOOLCHAIN_TYPE="cross" - -# -# Build system -# -CT_BUILD="" -CT_BUILD_PREFIX="" -CT_BUILD_SUFFIX="" - -# -# Misc options -# -CT_TOOLCHAIN_ENABLE_NLS=y - -# -# Operating System -# -CT_KERNEL_SUPPORTS_SHARED_LIBS=y -CT_KERNEL="linux" -CT_KERNEL_VERSION="${LINUX_RELEASE}" -# CT_KERNEL_bare_metal is not set -CT_KERNEL_linux=y -CT_KERNEL_bare_metal_AVAILABLE=y -CT_KERNEL_linux_AVAILABLE=y -CT_KERNEL_LINUX_CUSTOM=y -CT_KERNEL_LINUX_CUSTOM_LOCATION="${DOWNLOADDIR}/${LINUX_TARBALL}" -CT_KERNEL_LINUX_CUSTOM_VERSION="${LINUX_RELEASE}" -CT_KERNEL_windows_AVAILABLE=y - -# -# Common kernel options -# -CT_SHARED_LIBS=y - -# -# linux other options -# -CT_KERNEL_LINUX_VERBOSITY_0=y -# CT_KERNEL_LINUX_VERBOSITY_1 is not set -# CT_KERNEL_LINUX_VERBOSITY_2 is not set -CT_KERNEL_LINUX_VERBOSE_LEVEL=0 -CT_KERNEL_LINUX_INSTALL_CHECK=y - -# -# Binary utilities -# -CT_ARCH_BINFMT_ELF=y -CT_BINUTILS="binutils" -CT_BINUTILS_binutils=y - -# -# GNU binutils -# -# CT_BINUTILS_CUSTOM is not set -CT_BINUTILS_VERSION="2.24" -# CT_BINUTILS_SHOW_LINARO is not set -# CT_BINUTILS_V_2_28 is not set -# CT_BINUTILS_V_2_27 is not set -# CT_BINUTILS_V_2_26 is not set -# CT_BINUTILS_V_2_25_1 is not set -CT_BINUTILS_V_2_24=y -# CT_BINUTILS_V_2_23_2 is not set -CT_BINUTILS_2_24_or_later=y -CT_BINUTILS_2_23_2_or_later=y -CT_BINUTILS_HAS_HASH_STYLE=y -CT_BINUTILS_HAS_GOLD=y -CT_BINUTILS_GOLD_SUPPORTS_ARCH=y -CT_BINUTILS_GOLD_SUPPORT=y -CT_BINUTILS_HAS_PLUGINS=y -CT_BINUTILS_HAS_PKGVERSION_BUGURL=y -CT_BINUTILS_LINKER_LD=y -# CT_BINUTILS_LINKER_GOLD is not set -# CT_BINUTILS_LINKER_LD_GOLD is not set -# CT_BINUTILS_LINKER_GOLD_LD is not set -CT_BINUTILS_LINKERS_LIST="ld" -CT_BINUTILS_LINKER_DEFAULT="bfd" -# CT_BINUTILS_PLUGINS is not set -CT_BINUTILS_EXTRA_CONFIG_ARRAY="" -CT_BINUTILS_FOR_TARGET=y -CT_BINUTILS_FOR_TARGET_IBERTY=y -CT_BINUTILS_FOR_TARGET_BFD=y - -# -# binutils other options -# - -# -# C-library -# -CT_LIBC="uClibc" -CT_LIBC_VERSION="1.0.22" -# CT_LIBC_glibc is not set -# CT_LIBC_musl is not set -CT_LIBC_uClibc=y -CT_LIBC_avr_libc_AVAILABLE=y -CT_LIBC_glibc_AVAILABLE=y -CT_THREADS="nptl" -CT_LIBC_mingw_AVAILABLE=y -CT_LIBC_musl_AVAILABLE=y -CT_LIBC_newlib_AVAILABLE=y -CT_LIBC_none_AVAILABLE=y -CT_LIBC_uClibc_AVAILABLE=y -# CT_LIBC_UCLIBC_CUSTOM is not set -CT_LIBC_UCLIBC_NG_V_1_0_22=y -# CT_LIBC_UCLIBC_NG_V_1_0_21 is not set -# CT_LIBC_UCLIBC_NG_V_1_0_20 is not set -# CT_LIBC_UCLIBC_V_0_9_33_2 is not set -CT_LIBC_UCLIBC_NG_1_0_15_or_later=y -CT_LIBC_UCLIBC_NG_1_0_0_or_later=y -CT_LIBC_UCLIBC_0_9_33_2_or_later=y -CT_LIBC_UCLIBC_PARALLEL=y -CT_LIBC_UCLIBC_NG=y -CT_LIBC_UCLIBC_VERBOSITY_0=y -# CT_LIBC_UCLIBC_VERBOSITY_1 is not set -# CT_LIBC_UCLIBC_VERBOSITY_2 is not set -CT_LIBC_UCLIBC_VERBOSITY="" -CT_LIBC_UCLIBC_DEBUG_LEVEL_0=y -# CT_LIBC_UCLIBC_DEBUG_LEVEL_1 is not set -# CT_LIBC_UCLIBC_DEBUG_LEVEL_2 is not set -# CT_LIBC_UCLIBC_DEBUG_LEVEL_3 is not set -CT_LIBC_UCLIBC_DEBUG_LEVEL=0 -CT_LIBC_UCLIBC_CONFIG_FILE="${UCLIBC_CONFIG}" -CT_LIBC_SUPPORT_THREADS_ANY=y -CT_LIBC_SUPPORT_THREADS_NATIVE=y -CT_LIBC_SUPPORT_THREADS_LT=y -CT_LIBC_SUPPORT_THREADS_NONE=y - -# -# Common C library options -# -CT_THREADS_NATIVE=y -# CT_THREADS_LT is not set -# CT_THREADS_NONE is not set -# CT_CREATE_LDSO_CONF is not set -CT_LIBC_XLDD=y - -# -# uClibc other options -# -CT_LIBC_UCLIBC_LNXTHRD="" -# CT_LIBC_UCLIBC_LOCALES is not set -CT_LIBC_UCLIBC_IPV6=y -CT_LIBC_UCLIBC_WCHAR=y -CT_LIBC_UCLIBC_FENV=y -# CT_LIBC_UCLIBC_RPC is not set -CT_LIBC_UCLIBC_USE_GNU_SUFFIX=y - -# -# C compiler -# -CT_CC="gcc" -CT_CC_CORE_PASSES_NEEDED=y -CT_CC_CORE_PASS_1_NEEDED=y -CT_CC_CORE_PASS_2_NEEDED=y -CT_CC_gcc=y -# CT_CC_GCC_CUSTOM is not set -CT_CC_GCC_VERSION="${GCC_VERSION}" -# CT_CC_GCC_V_6_3_0 is not set -# CT_CC_GCC_V_5_4_0 is not set -# CT_CC_GCC_V_4_9_4 is not set -# CT_CC_GCC_V_4_8_5 is not set -CT_CC_GCC_4_8_or_later=y -CT_CC_GCC_4_9_or_later=y -CT_CC_GCC_5_or_later=y -CT_CC_GCC_6_or_later=y -CT_CC_GCC_latest=y -CT_CC_GCC_HAS_LIBMPX=y -CT_CC_GCC_ENABLE_CXX_FLAGS="" -CT_CC_GCC_CORE_EXTRA_CONFIG_ARRAY="" -CT_CC_GCC_EXTRA_CONFIG_ARRAY="" -CT_CC_GCC_STATIC_LIBSTDCXX=y -# CT_CC_GCC_SYSTEM_ZLIB is not set -CT_CC_GCC_CONFIG_TLS=m - -# -# Optimisation features -# -CT_CC_GCC_USE_GRAPHITE=y -CT_CC_GCC_USE_LTO=y - -# -# Settings for libraries running on target -# -CT_CC_GCC_ENABLE_TARGET_OPTSPACE=y -# CT_CC_GCC_LIBMUDFLAP is not set -# CT_CC_GCC_LIBGOMP is not set -# CT_CC_GCC_LIBSSP is not set -# CT_CC_GCC_LIBQUADMATH is not set - -# -# Misc. obscure options. -# -CT_CC_CXA_ATEXIT=y -# CT_CC_GCC_DISABLE_PCH is not set -CT_CC_GCC_SJLJ_EXCEPTIONS=m -CT_CC_GCC_LDBL_128=m -# CT_CC_GCC_BUILD_ID is not set -CT_CC_GCC_LNK_HASH_STYLE_DEFAULT=y -# CT_CC_GCC_LNK_HASH_STYLE_SYSV is not set -# CT_CC_GCC_LNK_HASH_STYLE_GNU is not set -# CT_CC_GCC_LNK_HASH_STYLE_BOTH is not set -CT_CC_GCC_LNK_HASH_STYLE="" -CT_CC_GCC_DEC_FLOAT_AUTO=y -# CT_CC_GCC_DEC_FLOAT_BID is not set -# CT_CC_GCC_DEC_FLOAT_DPD is not set -# CT_CC_GCC_DEC_FLOATS_NO is not set -CT_CC_SUPPORT_CXX=y -CT_CC_SUPPORT_FORTRAN=y -CT_CC_SUPPORT_JAVA=y -CT_CC_SUPPORT_ADA=y -CT_CC_SUPPORT_OBJC=y -CT_CC_SUPPORT_OBJCXX=y -CT_CC_SUPPORT_GOLANG=y - -# -# Additional supported languages: -# -CT_CC_LANG_CXX=y -# CT_CC_LANG_FORTRAN is not set -# CT_CC_LANG_JAVA is not set -# CT_CC_LANG_ADA is not set -# CT_CC_LANG_OBJC is not set -# CT_CC_LANG_OBJCXX is not set -# CT_CC_LANG_GOLANG is not set -CT_CC_LANG_OTHERS="" - -# -# Debug facilities -# -CT_DEBUG_duma=y -CT_DUMA_SO=y -CT_DUMA_CUSTOM_WRAPPER=y -CT_DUMA_V_2_5_15=y -CT_DUMA_VERSION="2_5_15" -CT_DEBUG_gdb=y -CT_GDB_CROSS=y -# CT_GDB_CROSS_STATIC is not set -# CT_GDB_CROSS_SIM is not set -CT_GDB_CROSS_PYTHON=y -CT_GDB_CROSS_PYTHON_BINARY="" -CT_GDB_CROSS_EXTRA_CONFIG_ARRAY="" -# CT_GDB_NATIVE is not set -CT_GDB_GDBSERVER=y -CT_GDB_GDBSERVER_HAS_IPA_LIB=y -# CT_GDB_GDBSERVER_STATIC is not set -# CT_GDB_GDBSERVER_BUILD_IPA_LIB is not set - -# -# gdb version -# -# CT_GDB_CUSTOM is not set -CT_GDB_VERSION="7.11.1" -# CT_DEBUG_GDB_SHOW_LINARO is not set -# CT_GDB_V_7_12_1 is not set -CT_GDB_V_7_11_1=y -# CT_GDB_V_7_10_1 is not set -# CT_GDB_V_7_10 is not set -# CT_GDB_V_7_9_1 is not set -# CT_GDB_V_7_9 is not set -# CT_GDB_V_7_8_2 is not set -# CT_GDB_V_7_8_1 is not set -# CT_GDB_V_7_8 is not set -# CT_GDB_V_7_7_1 is not set -# CT_GDB_V_7_7 is not set -# CT_GDB_V_7_6_1 is not set -# CT_GDB_V_7_5_1 is not set -# CT_GDB_V_7_4_1 is not set -# CT_GDB_V_7_4 is not set -# CT_GDB_V_7_3_1 is not set -# CT_GDB_V_7_3a is not set -# CT_GDB_V_7_2a is not set -# CT_GDB_V_7_1a is not set -# CT_GDB_V_7_0_1a is not set -# CT_GDB_V_7_0a is not set -# CT_GDB_V_6_8a is not set -CT_GDB_7_2_or_later=y -CT_GDB_7_0_or_later=y -CT_GDB_HAS_PKGVERSION_BUGURL=y -CT_GDB_HAS_PYTHON=y -CT_GDB_INSTALL_GDBINIT=y -CT_DEBUG_ltrace=y -CT_LTRACE_V_0_7_3=y -# CT_LTRACE_V_0_5_3 is not set -CT_LTRACE_VERSION="0.7.3" -CT_DEBUG_strace=y -# CT_STRACE_V_4_16 is not set -# CT_STRACE_V_4_15 is not set -# CT_STRACE_V_4_14 is not set -# CT_STRACE_V_4_13 is not set -# CT_STRACE_V_4_12 is not set -# CT_STRACE_V_4_11 is not set -# CT_STRACE_V_4_10 is not set -CT_STRACE_V_4_9=y -# CT_STRACE_V_4_8 is not set -# CT_STRACE_V_4_7 is not set -# CT_STRACE_V_4_6 is not set -# CT_STRACE_V_4_5_20 is not set -# CT_STRACE_V_4_5_19 is not set -# CT_STRACE_V_4_5_18 is not set -CT_STRACE_VERSION="4.9" - -# -# Companion libraries -# -CT_COMPLIBS_NEEDED=y -CT_LIBICONV_NEEDED=y -CT_GETTEXT_NEEDED=y -CT_GMP_NEEDED=y -CT_MPFR_NEEDED=y -CT_ISL_NEEDED=y -CT_MPC_NEEDED=y -CT_EXPAT_NEEDED=y -CT_NCURSES_NEEDED=y -CT_COMPLIBS=y -CT_LIBICONV=y -CT_GETTEXT=y -CT_GMP=y -CT_MPFR=y -CT_ISL=y -CT_MPC=y -CT_LIBELF_TARGET=y -CT_EXPAT=y -CT_NCURSES=y -# CT_ZLIB is not set -CT_LIBICONV_V_1_15=y -# CT_LIBICONV_V_1_14 is not set -CT_LIBICONV_VERSION="1.15" -CT_GETTEXT_V_0_19_8_1=y -# CT_GETTEXT_V_0_19_7 is not set -CT_GETTEXT_VERSION="0.19.8.1" -# CT_GMP_V_6_1_2 is not set -# CT_GMP_V_6_1_0 is not set -CT_GMP_V_6_0_0=y -# CT_GMP_V_5_1_3 is not set -# CT_GMP_V_5_1_1 is not set -# CT_GMP_V_5_0_2 is not set -# CT_GMP_V_5_0_1 is not set -# CT_GMP_V_4_3_2 is not set -# CT_GMP_V_4_3_1 is not set -# CT_GMP_V_4_3_0 is not set -CT_GMP_5_0_2_or_later=y -CT_GMP_VERSION="6.0.0a" -# CT_MPFR_V_3_1_5 is not set -# CT_MPFR_V_3_1_3 is not set -CT_MPFR_V_3_1_2=y -# CT_MPFR_V_3_1_0 is not set -# CT_MPFR_V_3_0_1 is not set -# CT_MPFR_V_3_0_0 is not set -# CT_MPFR_V_2_4_2 is not set -# CT_MPFR_V_2_4_1 is not set -# CT_MPFR_V_2_4_0 is not set -CT_MPFR_VERSION="3.1.2" -# CT_ISL_V_0_18 is not set -# CT_ISL_V_0_17_1 is not set -# CT_ISL_V_0_16_1 is not set -# CT_ISL_V_0_15 is not set -# CT_ISL_V_0_14 is not set -CT_ISL_V_0_12_2=y -CT_ISL_V_0_12_or_later=y -CT_ISL_VERSION="0.12.2" -# CT_CLOOG_V_0_18_4 is not set -# CT_MPC_V_1_0_3 is not set -CT_MPC_V_1_0_2=y -# CT_MPC_V_1_0_1 is not set -# CT_MPC_V_1_0 is not set -# CT_MPC_V_0_9 is not set -# CT_MPC_V_0_8_2 is not set -# CT_MPC_V_0_8_1 is not set -# CT_MPC_V_0_7 is not set -CT_MPC_VERSION="1.0.2" - -# -# libelf version needed to build for target -# -CT_LIBELF_V_0_8_13=y -# CT_LIBELF_V_0_8_12 is not set -CT_LIBELF_VERSION="0.8.13" -# CT_EXPAT_V_2_2_0 is not set -CT_EXPAT_V_2_1_1=y -CT_EXPAT_VERSION="2.1.1" -CT_NCURSES_V_6_0=y -CT_NCURSES_VERSION="6.0" -# CT_NCURSES_NEW_ABI is not set -CT_NCURSES_HOST_CONFIG_ARGS="" -CT_NCURSES_HOST_DISABLE_DB=y -CT_NCURSES_HOST_FALLBACKS="linux,xterm,xterm-color,xterm-256color,vt100" -CT_NCURSES_TARGET_CONFIG_ARGS="" -# CT_NCURSES_TARGET_DISABLE_DB is not set -CT_NCURSES_TARGET_FALLBACKS="" - -# -# Companion libraries common options -# -# CT_COMPLIBS_CHECK is not set - -# -# Companion tools -# -# CT_COMP_TOOLS_FOR_HOST is not set -CT_COMP_TOOLS_autoconf=y -CT_AUTOCONF_V_2_69=y -# CT_AUTOCONF_V_2_65 is not set -CT_AUTOCONF_VERSION="2.69" -CT_COMP_TOOLS_automake=y -CT_AUTOMAKE_V_1_15=y -# CT_AUTOMAKE_V_1_14 is not set -# CT_AUTOMAKE_V_1_11_6 is not set -# CT_AUTOMAKE_V_1_11_1 is not set -CT_AUTOMAKE_VERSION="1.15" -CT_COMP_TOOLS_libtool=y -CT_LIBTOOL_V_2_4_6=y -CT_LIBTOOL_VERSION="2.4.6" -CT_COMP_TOOLS_m4=y -CT_M4_V_1_4_18=y -# CT_M4_V_1_4_17 is not set -# CT_M4_V_1_4_13 is not set -CT_M4_VERSION="1.4.18" -CT_COMP_TOOLS_make=y -CT_MAKE_V_4_2_1=y -# CT_MAKE_V_4_1 is not set -# CT_MAKE_V_4_0 is not set -# CT_MAKE_V_3_81 is not set -# CT_MAKE_GMAKE_SYMLINK is not set -CT_MAKE_VERSION="4.2.1" - -# -# Test suite -# -# CT_TEST_SUITE_GCC is not set diff --git a/build-config/conf/crosstool/gcc-4.9.2/uClibc-ng-1.0.22/crosstool.powerpc-softfloat.config b/build-config/conf/crosstool/gcc-4.9.2/uClibc-ng-1.0.22/crosstool.powerpc-softfloat.config deleted file mode 100644 index 516d2c508..000000000 --- a/build-config/conf/crosstool/gcc-4.9.2/uClibc-ng-1.0.22/crosstool.powerpc-softfloat.config +++ /dev/null @@ -1,630 +0,0 @@ -# -# Automatically generated file; DO NOT EDIT. -# Crosstool-NG Configuration -# -CT_CONFIGURE_has_static_link=y -CT_CONFIGURE_has_wget=y -CT_CONFIGURE_has_curl=y -CT_CONFIGURE_has_stat_flavor_GNU=y -CT_CONFIGURE_has_make_3_81_or_newer=y -CT_CONFIGURE_has_libtool_2_4_or_newer=y -CT_CONFIGURE_has_libtoolize_2_4_or_newer=y -CT_CONFIGURE_has_autoconf_2_63_or_newer=y -CT_CONFIGURE_has_autoreconf_2_63_or_newer=y -CT_CONFIGURE_has_gnu_m4_1_4_12_or_newer=y -CT_CONFIGURE_has_svn=y -CT_CONFIGURE_has_git=y -CT_MODULES=y - -# -# Paths and misc options -# - -# -# crosstool-NG behavior -# -CT_OBSOLETE=y -CT_EXPERIMENTAL=y -# CT_ALLOW_BUILD_AS_ROOT is not set -# CT_DEBUG_CT is not set - -# -# Paths -# -CT_LOCAL_TARBALLS_DIR="${DOWNLOADDIR}" -CT_SAVE_TARBALLS=y -CT_WORK_DIR="${CT_TOP_DIR}/build" -CT_BUILD_TOP_DIR="${CT_WORK_DIR}/${CT_HOST:+HOST-${CT_HOST}/}${CT_TARGET}" -CT_PREFIX_DIR="${XTOOLS_INSTALL_DIR}/${CT_TARGET}" -CT_RM_RF_PREFIX_DIR=y -CT_REMOVE_DOCS=y -CT_PREFIX_DIR_RO=y -CT_STRIP_HOST_TOOLCHAIN_EXECUTABLES=y -CT_STRIP_TARGET_TOOLCHAIN_EXECUTABLES=y - -# -# Downloading -# -# CT_DOWNLOAD_AGENT_WGET is not set -# CT_DOWNLOAD_AGENT_CURL is not set -CT_DOWNLOAD_AGENT_NONE=y -CT_FORBID_DOWNLOAD=y - -# -# Extracting -# -# CT_FORCE_EXTRACT is not set -CT_OVERRIDE_CONFIG_GUESS_SUB=y -# CT_ONLY_EXTRACT is not set -# CT_PATCH_BUNDLED is not set -# CT_PATCH_LOCAL is not set -# CT_PATCH_BUNDLED_LOCAL is not set -# CT_PATCH_LOCAL_BUNDLED is not set -CT_PATCH_BUNDLED_FALLBACK_LOCAL=y -# CT_PATCH_LOCAL_FALLBACK_BUNDLED is not set -# CT_PATCH_NONE is not set -CT_PATCH_ORDER="bundled,local" -CT_PATCH_SINGLE=y -CT_PATCH_USE_LOCAL=y -CT_LOCAL_PATCH_DIR="${CROSSTOOL_NG_LOCAL_PATCHDIR}" - -# -# Build behavior -# -CT_PARALLEL_JOBS=0 -CT_LOAD="" -CT_USE_PIPES=y -CT_EXTRA_CFLAGS_FOR_BUILD="" -CT_EXTRA_LDFLAGS_FOR_BUILD="" -CT_EXTRA_CFLAGS_FOR_HOST="" -CT_EXTRA_LDFLAGS_FOR_HOST="" -# CT_CONFIG_SHELL_SH is not set -# CT_CONFIG_SHELL_ASH is not set -CT_CONFIG_SHELL_BASH=y -# CT_CONFIG_SHELL_CUSTOM is not set -CT_CONFIG_SHELL="${bash}" - -# -# Logging -# -# CT_LOG_ERROR is not set -# CT_LOG_WARN is not set -CT_LOG_INFO=y -# CT_LOG_EXTRA is not set -# CT_LOG_ALL is not set -# CT_LOG_DEBUG is not set -CT_LOG_LEVEL_MAX="INFO" -# CT_LOG_SEE_TOOLS_WARN is not set -# CT_LOG_PROGRESS_BAR is not set -CT_LOG_TO_FILE=y -CT_LOG_FILE_COMPRESS=y - -# -# Target options -# -CT_ARCH="powerpc" -# CT_ARCH_alpha is not set -# CT_ARCH_arm is not set -# CT_ARCH_avr is not set -# CT_ARCH_m68k is not set -# CT_ARCH_microblaze is not set -# CT_ARCH_mips is not set -# CT_ARCH_nios2 is not set -CT_ARCH_powerpc=y -# CT_ARCH_s390 is not set -# CT_ARCH_sh is not set -# CT_ARCH_sparc is not set -# CT_ARCH_x86 is not set -# CT_ARCH_xtensa is not set -CT_ARCH_alpha_AVAILABLE=y -CT_ARCH_arm_AVAILABLE=y -CT_ARCH_avr_AVAILABLE=y -CT_ARCH_m68k_AVAILABLE=y -CT_ARCH_microblaze_AVAILABLE=y -CT_ARCH_mips_AVAILABLE=y -CT_ARCH_nios2_AVAILABLE=y -CT_ARCH_powerpc_AVAILABLE=y -CT_ARCH_s390_AVAILABLE=y -CT_ARCH_sh_AVAILABLE=y -CT_ARCH_sparc_AVAILABLE=y -CT_ARCH_x86_AVAILABLE=y -CT_ARCH_xtensa_AVAILABLE=y -CT_ARCH_SUFFIX="" - -# -# Generic target options -# -# CT_MULTILIB is not set -CT_DEMULTILIB=y -CT_ARCH_USE_MMU=y -CT_ARCH_SUPPORTS_BOTH_ENDIAN=y -CT_ARCH_DEFAULT_BE=y -CT_ARCH_BE=y -# CT_ARCH_LE is not set -CT_ARCH_ENDIAN="big" -CT_ARCH_SUPPORTS_32=y -CT_ARCH_SUPPORTS_64=y -CT_ARCH_DEFAULT_32=y -CT_ARCH_BITNESS=32 -CT_ARCH_32=y -# CT_ARCH_64 is not set - -# -# Target optimisations -# -CT_ARCH_SUPPORTS_WITH_ABI=y -CT_ARCH_SUPPORTS_WITH_CPU=y -CT_ARCH_SUPPORTS_WITH_TUNE=y -CT_ARCH_SUPPORTS_WITH_FLOAT=y -CT_ARCH_ABI="" -CT_ARCH_CPU="" -CT_ARCH_TUNE="" -# CT_ARCH_FLOAT_AUTO is not set -# CT_ARCH_FLOAT_HW is not set -CT_ARCH_FLOAT_SW=y -CT_TARGET_CFLAGS="" -CT_TARGET_LDFLAGS="" -CT_ARCH_FLOAT="soft" - -# -# powerpc other options -# -CT_ARCH_powerpc_ABI="" -CT_ARCH_powerpc_ABI_DEFAULT=y -# CT_ARCH_powerpc_ABI_SPE is not set - -# -# Toolchain options -# - -# -# General toolchain options -# -CT_USE_SYSROOT=y -CT_SYSROOT_NAME="sysroot" -CT_SYSROOT_DIR_PREFIX="" -CT_WANTS_STATIC_LINK=y -CT_WANTS_STATIC_LINK_CXX=y -# CT_STATIC_TOOLCHAIN is not set -CT_TOOLCHAIN_PKGVERSION="ONIE-${LSB_RELEASE_TAG}" -CT_TOOLCHAIN_BUGURL="" - -# -# Tuple completion and aliasing -# -CT_TARGET_VENDOR="onie" -CT_TARGET_ALIAS_SED_EXPR="" -CT_TARGET_ALIAS="powerpc-softfloat" - -# -# Toolchain type -# -# CT_NATIVE is not set -CT_CROSS=y -# CT_CROSS_NATIVE is not set -# CT_CANADIAN is not set -CT_TOOLCHAIN_TYPE="cross" - -# -# Build system -# -CT_BUILD="" -CT_BUILD_PREFIX="" -CT_BUILD_SUFFIX="" - -# -# Misc options -# -CT_TOOLCHAIN_ENABLE_NLS=y - -# -# Operating System -# -CT_KERNEL_SUPPORTS_SHARED_LIBS=y -CT_KERNEL="linux" -CT_KERNEL_VERSION="${LINUX_RELEASE}" -# CT_KERNEL_bare_metal is not set -CT_KERNEL_linux=y -CT_KERNEL_bare_metal_AVAILABLE=y -CT_KERNEL_linux_AVAILABLE=y -CT_KERNEL_LINUX_CUSTOM=y -CT_KERNEL_LINUX_CUSTOM_LOCATION="${DOWNLOADDIR}/${LINUX_TARBALL}" -CT_KERNEL_LINUX_CUSTOM_VERSION="${LINUX_RELEASE}" -CT_KERNEL_windows_AVAILABLE=y - -# -# Common kernel options -# -CT_SHARED_LIBS=y - -# -# linux other options -# -CT_KERNEL_LINUX_VERBOSITY_0=y -# CT_KERNEL_LINUX_VERBOSITY_1 is not set -# CT_KERNEL_LINUX_VERBOSITY_2 is not set -CT_KERNEL_LINUX_VERBOSE_LEVEL=0 -CT_KERNEL_LINUX_INSTALL_CHECK=y - -# -# Binary utilities -# -CT_ARCH_BINFMT_ELF=y -CT_BINUTILS="binutils" -CT_BINUTILS_binutils=y - -# -# GNU binutils -# -# CT_BINUTILS_CUSTOM is not set -CT_BINUTILS_VERSION="2.24" -# CT_BINUTILS_SHOW_LINARO is not set -# CT_BINUTILS_V_2_28 is not set -# CT_BINUTILS_V_2_27 is not set -# CT_BINUTILS_V_2_26 is not set -# CT_BINUTILS_V_2_25_1 is not set -CT_BINUTILS_V_2_24=y -# CT_BINUTILS_V_2_23_2 is not set -CT_BINUTILS_2_24_or_later=y -CT_BINUTILS_2_23_2_or_later=y -CT_BINUTILS_HAS_HASH_STYLE=y -CT_BINUTILS_HAS_GOLD=y -CT_BINUTILS_HAS_PLUGINS=y -CT_BINUTILS_HAS_PKGVERSION_BUGURL=y -CT_BINUTILS_LINKER_LD=y -CT_BINUTILS_LINKERS_LIST="ld" -CT_BINUTILS_LINKER_DEFAULT="bfd" -# CT_BINUTILS_PLUGINS is not set -CT_BINUTILS_EXTRA_CONFIG_ARRAY="--enable-64-bit-bfd" -CT_BINUTILS_FOR_TARGET=y -CT_BINUTILS_FOR_TARGET_IBERTY=y -CT_BINUTILS_FOR_TARGET_BFD=y - -# -# binutils other options -# - -# -# C-library -# -CT_LIBC="uClibc" -CT_LIBC_VERSION="1.0.22" -# CT_LIBC_glibc is not set -# CT_LIBC_musl is not set -CT_LIBC_uClibc=y -CT_LIBC_avr_libc_AVAILABLE=y -CT_LIBC_glibc_AVAILABLE=y -CT_THREADS="nptl" -CT_LIBC_mingw_AVAILABLE=y -CT_LIBC_musl_AVAILABLE=y -CT_LIBC_newlib_AVAILABLE=y -CT_LIBC_none_AVAILABLE=y -CT_LIBC_uClibc_AVAILABLE=y -# CT_LIBC_UCLIBC_CUSTOM is not set -CT_LIBC_UCLIBC_NG_V_1_0_22=y -# CT_LIBC_UCLIBC_NG_V_1_0_21 is not set -# CT_LIBC_UCLIBC_NG_V_1_0_20 is not set -# CT_LIBC_UCLIBC_V_0_9_33_2 is not set -CT_LIBC_UCLIBC_NG_1_0_15_or_later=y -CT_LIBC_UCLIBC_NG_1_0_0_or_later=y -CT_LIBC_UCLIBC_0_9_33_2_or_later=y -CT_LIBC_UCLIBC_PARALLEL=y -CT_LIBC_UCLIBC_NG=y -CT_LIBC_UCLIBC_VERBOSITY_0=y -# CT_LIBC_UCLIBC_VERBOSITY_1 is not set -# CT_LIBC_UCLIBC_VERBOSITY_2 is not set -CT_LIBC_UCLIBC_VERBOSITY="" -CT_LIBC_UCLIBC_DEBUG_LEVEL_0=y -# CT_LIBC_UCLIBC_DEBUG_LEVEL_1 is not set -# CT_LIBC_UCLIBC_DEBUG_LEVEL_2 is not set -# CT_LIBC_UCLIBC_DEBUG_LEVEL_3 is not set -CT_LIBC_UCLIBC_DEBUG_LEVEL=0 -CT_LIBC_UCLIBC_CONFIG_FILE="${UCLIBC_CONFIG}" -CT_LIBC_SUPPORT_THREADS_ANY=y -CT_LIBC_SUPPORT_THREADS_NATIVE=y -CT_LIBC_SUPPORT_THREADS_LT=y -CT_LIBC_SUPPORT_THREADS_NONE=y - -# -# Common C library options -# -CT_THREADS_NATIVE=y -# CT_THREADS_LT is not set -# CT_THREADS_NONE is not set -# CT_CREATE_LDSO_CONF is not set -CT_LIBC_XLDD=y - -# -# uClibc other options -# -CT_LIBC_UCLIBC_LNXTHRD="" -# CT_LIBC_UCLIBC_LOCALES is not set -CT_LIBC_UCLIBC_IPV6=y -CT_LIBC_UCLIBC_WCHAR=y -CT_LIBC_UCLIBC_FENV=y -# CT_LIBC_UCLIBC_RPC is not set - -# -# C compiler -# -CT_CC="gcc" -CT_CC_CORE_PASSES_NEEDED=y -CT_CC_CORE_PASS_1_NEEDED=y -CT_CC_CORE_PASS_2_NEEDED=y -CT_CC_gcc=y -# CT_CC_GCC_CUSTOM is not set -CT_CC_GCC_VERSION="${GCC_VERSION}" -# CT_CC_GCC_V_6_3_0 is not set -# CT_CC_GCC_V_5_4_0 is not set -# CT_CC_GCC_V_4_9_4 is not set -# CT_CC_GCC_V_4_8_5 is not set -CT_CC_GCC_4_8_or_later=y -CT_CC_GCC_4_9_or_later=y -CT_CC_GCC_5_or_later=y -CT_CC_GCC_6_or_later=y -CT_CC_GCC_latest=y -CT_CC_GCC_HAS_LIBMPX=y -CT_CC_GCC_ENABLE_CXX_FLAGS="" -CT_CC_GCC_CORE_EXTRA_CONFIG_ARRAY="" -CT_CC_GCC_EXTRA_CONFIG_ARRAY="--enable-targets=powerpc64" -CT_CC_GCC_STATIC_LIBSTDCXX=y -# CT_CC_GCC_SYSTEM_ZLIB is not set -CT_CC_GCC_CONFIG_TLS=m - -# -# Optimisation features -# -CT_CC_GCC_USE_GRAPHITE=y -CT_CC_GCC_USE_LTO=y - -# -# Settings for libraries running on target -# -CT_CC_GCC_ENABLE_TARGET_OPTSPACE=y -# CT_CC_GCC_LIBMUDFLAP is not set -# CT_CC_GCC_LIBGOMP is not set -# CT_CC_GCC_LIBSSP is not set -# CT_CC_GCC_LIBQUADMATH is not set - -# -# Misc. obscure options. -# -CT_CC_CXA_ATEXIT=y -# CT_CC_GCC_DISABLE_PCH is not set -CT_CC_GCC_SJLJ_EXCEPTIONS=m -CT_CC_GCC_LDBL_128=m -# CT_CC_GCC_BUILD_ID is not set -CT_CC_GCC_LNK_HASH_STYLE_DEFAULT=y -# CT_CC_GCC_LNK_HASH_STYLE_SYSV is not set -# CT_CC_GCC_LNK_HASH_STYLE_GNU is not set -# CT_CC_GCC_LNK_HASH_STYLE_BOTH is not set -CT_CC_GCC_LNK_HASH_STYLE="" -CT_CC_GCC_DEC_FLOAT_AUTO=y -# CT_CC_GCC_DEC_FLOAT_BID is not set -# CT_CC_GCC_DEC_FLOAT_DPD is not set -# CT_CC_GCC_DEC_FLOATS_NO is not set -CT_CC_SUPPORT_CXX=y -CT_CC_SUPPORT_FORTRAN=y -CT_CC_SUPPORT_JAVA=y -CT_CC_SUPPORT_ADA=y -CT_CC_SUPPORT_OBJC=y -CT_CC_SUPPORT_OBJCXX=y -CT_CC_SUPPORT_GOLANG=y - -# -# Additional supported languages: -# -CT_CC_LANG_CXX=y -# CT_CC_LANG_FORTRAN is not set -# CT_CC_LANG_JAVA is not set -# CT_CC_LANG_ADA is not set -# CT_CC_LANG_OBJC is not set -# CT_CC_LANG_OBJCXX is not set -# CT_CC_LANG_GOLANG is not set -CT_CC_LANG_OTHERS="" - -# -# Debug facilities -# -CT_DEBUG_duma=y -CT_DUMA_SO=y -CT_DUMA_CUSTOM_WRAPPER=y -CT_DUMA_V_2_5_15=y -CT_DUMA_VERSION="2_5_15" -CT_DEBUG_gdb=y -CT_GDB_CROSS=y -# CT_GDB_CROSS_STATIC is not set -# CT_GDB_CROSS_SIM is not set -CT_GDB_CROSS_PYTHON=y -CT_GDB_CROSS_PYTHON_BINARY="" -CT_GDB_CROSS_EXTRA_CONFIG_ARRAY="" -# CT_GDB_NATIVE is not set -CT_GDB_GDBSERVER=y -CT_GDB_GDBSERVER_HAS_IPA_LIB=y -# CT_GDB_GDBSERVER_STATIC is not set -# CT_GDB_GDBSERVER_BUILD_IPA_LIB is not set - -# -# gdb version -# -# CT_GDB_CUSTOM is not set -CT_GDB_VERSION="7.11.1" -# CT_DEBUG_GDB_SHOW_LINARO is not set -# CT_GDB_V_7_12_1 is not set -CT_GDB_V_7_11_1=y -# CT_GDB_V_7_10_1 is not set -# CT_GDB_V_7_10 is not set -# CT_GDB_V_7_9_1 is not set -# CT_GDB_V_7_9 is not set -# CT_GDB_V_7_8_2 is not set -# CT_GDB_V_7_8_1 is not set -# CT_GDB_V_7_8 is not set -# CT_GDB_V_7_7_1 is not set -# CT_GDB_V_7_7 is not set -# CT_GDB_V_7_6_1 is not set -# CT_GDB_V_7_5_1 is not set -# CT_GDB_V_7_4_1 is not set -# CT_GDB_V_7_4 is not set -# CT_GDB_V_7_3_1 is not set -# CT_GDB_V_7_3a is not set -# CT_GDB_V_7_2a is not set -# CT_GDB_V_7_1a is not set -# CT_GDB_V_7_0_1a is not set -# CT_GDB_V_7_0a is not set -# CT_GDB_V_6_8a is not set -CT_GDB_7_2_or_later=y -CT_GDB_7_0_or_later=y -CT_GDB_HAS_PKGVERSION_BUGURL=y -CT_GDB_HAS_PYTHON=y -CT_GDB_INSTALL_GDBINIT=y -CT_DEBUG_ltrace=y -CT_LTRACE_V_0_7_3=y -# CT_LTRACE_V_0_5_3 is not set -CT_LTRACE_VERSION="0.7.3" -CT_DEBUG_strace=y -# CT_STRACE_V_4_16 is not set -# CT_STRACE_V_4_15 is not set -# CT_STRACE_V_4_14 is not set -# CT_STRACE_V_4_13 is not set -# CT_STRACE_V_4_12 is not set -# CT_STRACE_V_4_11 is not set -# CT_STRACE_V_4_10 is not set -CT_STRACE_V_4_9=y -# CT_STRACE_V_4_8 is not set -# CT_STRACE_V_4_7 is not set -# CT_STRACE_V_4_6 is not set -# CT_STRACE_V_4_5_20 is not set -# CT_STRACE_V_4_5_19 is not set -# CT_STRACE_V_4_5_18 is not set -CT_STRACE_VERSION="4.9" - -# -# Companion libraries -# -CT_COMPLIBS_NEEDED=y -CT_LIBICONV_NEEDED=y -CT_GETTEXT_NEEDED=y -CT_GMP_NEEDED=y -CT_MPFR_NEEDED=y -CT_ISL_NEEDED=y -CT_MPC_NEEDED=y -CT_EXPAT_NEEDED=y -CT_NCURSES_NEEDED=y -CT_COMPLIBS=y -CT_LIBICONV=y -CT_GETTEXT=y -CT_GMP=y -CT_MPFR=y -CT_ISL=y -CT_MPC=y -CT_LIBELF_TARGET=y -CT_EXPAT=y -CT_NCURSES=y -# CT_ZLIB is not set -CT_LIBICONV_V_1_15=y -# CT_LIBICONV_V_1_14 is not set -CT_LIBICONV_VERSION="1.15" -CT_GETTEXT_V_0_19_8_1=y -# CT_GETTEXT_V_0_19_7 is not set -CT_GETTEXT_VERSION="0.19.8.1" -# CT_GMP_V_6_1_2 is not set -# CT_GMP_V_6_1_0 is not set -CT_GMP_V_6_0_0=y -# CT_GMP_V_5_1_3 is not set -# CT_GMP_V_5_1_1 is not set -# CT_GMP_V_5_0_2 is not set -# CT_GMP_V_5_0_1 is not set -# CT_GMP_V_4_3_2 is not set -# CT_GMP_V_4_3_1 is not set -# CT_GMP_V_4_3_0 is not set -CT_GMP_5_0_2_or_later=y -CT_GMP_VERSION="6.0.0a" -# CT_MPFR_V_3_1_5 is not set -# CT_MPFR_V_3_1_3 is not set -CT_MPFR_V_3_1_2=y -# CT_MPFR_V_3_1_0 is not set -# CT_MPFR_V_3_0_1 is not set -# CT_MPFR_V_3_0_0 is not set -# CT_MPFR_V_2_4_2 is not set -# CT_MPFR_V_2_4_1 is not set -# CT_MPFR_V_2_4_0 is not set -CT_MPFR_VERSION="3.1.2" -# CT_ISL_V_0_18 is not set -# CT_ISL_V_0_17_1 is not set -# CT_ISL_V_0_16_1 is not set -# CT_ISL_V_0_15 is not set -# CT_ISL_V_0_14 is not set -CT_ISL_V_0_12_2=y -CT_ISL_V_0_12_or_later=y -CT_ISL_VERSION="0.12.2" -# CT_CLOOG_V_0_18_4 is not set -# CT_CLOOG_V_0_18_1 is not set -# CT_CLOOG_V_0_18_0 is not set -# CT_MPC_V_1_0_3 is not set -CT_MPC_V_1_0_2=y -# CT_MPC_V_1_0_1 is not set -# CT_MPC_V_1_0 is not set -# CT_MPC_V_0_9 is not set -# CT_MPC_V_0_8_2 is not set -# CT_MPC_V_0_8_1 is not set -# CT_MPC_V_0_7 is not set -CT_MPC_VERSION="1.0.2" - -# -# libelf version needed to build for target -# -CT_LIBELF_V_0_8_13=y -# CT_LIBELF_V_0_8_12 is not set -CT_LIBELF_VERSION="0.8.13" -# CT_EXPAT_V_2_2_0 is not set -CT_EXPAT_V_2_1_1=y -CT_EXPAT_VERSION="2.1.1" -CT_NCURSES_V_6_0=y -CT_NCURSES_VERSION="6.0" -# CT_NCURSES_NEW_ABI is not set -CT_NCURSES_HOST_CONFIG_ARGS="" -CT_NCURSES_HOST_DISABLE_DB=y -CT_NCURSES_HOST_FALLBACKS="linux,xterm,xterm-color,xterm-256color,vt100" -CT_NCURSES_TARGET_CONFIG_ARGS="" -# CT_NCURSES_TARGET_DISABLE_DB is not set -CT_NCURSES_TARGET_FALLBACKS="" - -# -# Companion libraries common options -# -# CT_COMPLIBS_CHECK is not set - -# -# Companion tools -# -# CT_COMP_TOOLS_FOR_HOST is not set -CT_COMP_TOOLS_autoconf=y -CT_AUTOCONF_V_2_69=y -# CT_AUTOCONF_V_2_65 is not set -CT_AUTOCONF_VERSION="2.69" -CT_COMP_TOOLS_automake=y -CT_AUTOMAKE_V_1_15=y -# CT_AUTOMAKE_V_1_14 is not set -# CT_AUTOMAKE_V_1_11_6 is not set -# CT_AUTOMAKE_V_1_11_1 is not set -CT_AUTOMAKE_VERSION="1.15" -CT_COMP_TOOLS_libtool=y -CT_LIBTOOL_V_2_4_6=y -CT_LIBTOOL_VERSION="2.4.6" -CT_COMP_TOOLS_m4=y -CT_M4_V_1_4_18=y -# CT_M4_V_1_4_17 is not set -# CT_M4_V_1_4_13 is not set -CT_M4_VERSION="1.4.18" -CT_COMP_TOOLS_make=y -CT_MAKE_V_4_2_1=y -# CT_MAKE_V_4_1 is not set -# CT_MAKE_V_4_0 is not set -# CT_MAKE_V_3_81 is not set -# CT_MAKE_GMAKE_SYMLINK is not set -CT_MAKE_VERSION="4.2.1" - -# -# Test suite -# -# CT_TEST_SUITE_GCC is not set diff --git a/build-config/conf/crosstool/gcc-4.9.2/uClibc-ng-1.0.22/crosstool.x86_64.config b/build-config/conf/crosstool/gcc-4.9.2/uClibc-ng-1.0.22/crosstool.x86_64.config deleted file mode 100644 index a9e18078a..000000000 --- a/build-config/conf/crosstool/gcc-4.9.2/uClibc-ng-1.0.22/crosstool.x86_64.config +++ /dev/null @@ -1,625 +0,0 @@ -# -# Automatically generated file; DO NOT EDIT. -# Crosstool-NG Configuration -# -CT_CONFIGURE_has_static_link=y -CT_CONFIGURE_has_wget=y -CT_CONFIGURE_has_curl=y -CT_CONFIGURE_has_stat_flavor_GNU=y -CT_CONFIGURE_has_make_3_81_or_newer=y -CT_CONFIGURE_has_libtool_2_4_or_newer=y -CT_CONFIGURE_has_libtoolize_2_4_or_newer=y -CT_CONFIGURE_has_autoconf_2_63_or_newer=y -CT_CONFIGURE_has_autoreconf_2_63_or_newer=y -CT_CONFIGURE_has_gnu_m4_1_4_12_or_newer=y -CT_CONFIGURE_has_svn=y -CT_CONFIGURE_has_git=y -CT_MODULES=y - -# -# Paths and misc options -# - -# -# crosstool-NG behavior -# -CT_OBSOLETE=y -CT_EXPERIMENTAL=y -# CT_ALLOW_BUILD_AS_ROOT is not set -# CT_DEBUG_CT is not set - -# -# Paths -# -CT_LOCAL_TARBALLS_DIR="${DOWNLOADDIR}" -CT_SAVE_TARBALLS=y -CT_WORK_DIR="${CT_TOP_DIR}/build" -CT_BUILD_TOP_DIR="${CT_WORK_DIR}/${CT_HOST:+HOST-${CT_HOST}/}${CT_TARGET}" -CT_PREFIX_DIR="${XTOOLS_INSTALL_DIR}/${CT_TARGET}" -CT_RM_RF_PREFIX_DIR=y -CT_REMOVE_DOCS=y -CT_PREFIX_DIR_RO=y -CT_STRIP_HOST_TOOLCHAIN_EXECUTABLES=y -CT_STRIP_TARGET_TOOLCHAIN_EXECUTABLES=y - -# -# Downloading -# -# CT_DOWNLOAD_AGENT_WGET is not set -# CT_DOWNLOAD_AGENT_CURL is not set -CT_DOWNLOAD_AGENT_NONE=y -CT_FORBID_DOWNLOAD=y - -# -# Extracting -# -# CT_FORCE_EXTRACT is not set -CT_OVERRIDE_CONFIG_GUESS_SUB=y -# CT_ONLY_EXTRACT is not set -# CT_PATCH_BUNDLED is not set -# CT_PATCH_LOCAL is not set -# CT_PATCH_BUNDLED_LOCAL is not set -# CT_PATCH_LOCAL_BUNDLED is not set -CT_PATCH_BUNDLED_FALLBACK_LOCAL=y -# CT_PATCH_LOCAL_FALLBACK_BUNDLED is not set -# CT_PATCH_NONE is not set -CT_PATCH_ORDER="bundled,local" -CT_PATCH_SINGLE=y -CT_PATCH_USE_LOCAL=y -CT_LOCAL_PATCH_DIR="${CROSSTOOL_NG_LOCAL_PATCHDIR}" - -# -# Build behavior -# -CT_PARALLEL_JOBS=0 -CT_LOAD="" -CT_USE_PIPES=y -CT_EXTRA_CFLAGS_FOR_BUILD="" -CT_EXTRA_LDFLAGS_FOR_BUILD="" -CT_EXTRA_CFLAGS_FOR_HOST="" -CT_EXTRA_LDFLAGS_FOR_HOST="" -# CT_CONFIG_SHELL_SH is not set -# CT_CONFIG_SHELL_ASH is not set -CT_CONFIG_SHELL_BASH=y -# CT_CONFIG_SHELL_CUSTOM is not set -CT_CONFIG_SHELL="${bash}" - -# -# Logging -# -# CT_LOG_ERROR is not set -# CT_LOG_WARN is not set -CT_LOG_INFO=y -# CT_LOG_EXTRA is not set -# CT_LOG_ALL is not set -# CT_LOG_DEBUG is not set -CT_LOG_LEVEL_MAX="INFO" -# CT_LOG_SEE_TOOLS_WARN is not set -# CT_LOG_PROGRESS_BAR is not set -CT_LOG_TO_FILE=y -CT_LOG_FILE_COMPRESS=y - -# -# Target options -# -CT_ARCH="x86" -# CT_ARCH_alpha is not set -# CT_ARCH_arm is not set -# CT_ARCH_avr is not set -# CT_ARCH_m68k is not set -# CT_ARCH_microblaze is not set -# CT_ARCH_mips is not set -# CT_ARCH_nios2 is not set -# CT_ARCH_powerpc is not set -# CT_ARCH_s390 is not set -# CT_ARCH_sh is not set -# CT_ARCH_sparc is not set -CT_ARCH_x86=y -# CT_ARCH_xtensa is not set -CT_ARCH_alpha_AVAILABLE=y -CT_ARCH_arm_AVAILABLE=y -CT_ARCH_avr_AVAILABLE=y -CT_ARCH_m68k_AVAILABLE=y -CT_ARCH_microblaze_AVAILABLE=y -CT_ARCH_mips_AVAILABLE=y -CT_ARCH_nios2_AVAILABLE=y -CT_ARCH_powerpc_AVAILABLE=y -CT_ARCH_s390_AVAILABLE=y -CT_ARCH_sh_AVAILABLE=y -CT_ARCH_sparc_AVAILABLE=y -CT_ARCH_x86_AVAILABLE=y -CT_ARCH_xtensa_AVAILABLE=y -CT_ARCH_SUFFIX="" - -# -# Generic target options -# -# CT_MULTILIB is not set -CT_DEMULTILIB=y -CT_ARCH_USE_MMU=y -CT_ARCH_SUPPORTS_32=y -CT_ARCH_SUPPORTS_64=y -CT_ARCH_DEFAULT_32=y -CT_ARCH_BITNESS=64 -# CT_ARCH_32 is not set -CT_ARCH_64=y - -# -# Target optimisations -# -CT_ARCH_SUPPORTS_WITH_ARCH=y -CT_ARCH_SUPPORTS_WITH_CPU=y -CT_ARCH_SUPPORTS_WITH_TUNE=y -CT_ARCH_ARCH="" -CT_ARCH_CPU="" -CT_ARCH_TUNE="" -CT_TARGET_CFLAGS="" -CT_TARGET_LDFLAGS="" -CT_ARCH_FLOAT="" - -# -# Toolchain options -# - -# -# General toolchain options -# -CT_USE_SYSROOT=y -CT_SYSROOT_NAME="sysroot" -CT_SYSROOT_DIR_PREFIX="" -CT_WANTS_STATIC_LINK=y -CT_WANTS_STATIC_LINK_CXX=y -# CT_STATIC_TOOLCHAIN is not set -CT_TOOLCHAIN_PKGVERSION="ONIE-${LSB_RELEASE_TAG}" -CT_TOOLCHAIN_BUGURL="" - -# -# Tuple completion and aliasing -# -CT_TARGET_VENDOR="onie" -CT_TARGET_ALIAS_SED_EXPR="" -CT_TARGET_ALIAS="x86_64" - -# -# Toolchain type -# -# CT_NATIVE is not set -CT_CROSS=y -# CT_CROSS_NATIVE is not set -# CT_CANADIAN is not set -CT_TOOLCHAIN_TYPE="cross" - -# -# Build system -# -CT_BUILD="" -CT_BUILD_PREFIX="" -CT_BUILD_SUFFIX="" - -# -# Misc options -# -CT_TOOLCHAIN_ENABLE_NLS=y - -# -# Operating System -# -CT_KERNEL_SUPPORTS_SHARED_LIBS=y -CT_KERNEL="linux" -CT_KERNEL_VERSION="${LINUX_RELEASE}" -# CT_KERNEL_bare_metal is not set -CT_KERNEL_linux=y -# CT_KERNEL_windows is not set -CT_KERNEL_bare_metal_AVAILABLE=y -CT_KERNEL_linux_AVAILABLE=y -CT_KERNEL_LINUX_CUSTOM=y -CT_KERNEL_LINUX_CUSTOM_LOCATION="${DOWNLOADDIR}/${LINUX_TARBALL}" -CT_KERNEL_LINUX_CUSTOM_VERSION="${LINUX_RELEASE}" -CT_KERNEL_windows_AVAILABLE=y - -# -# Common kernel options -# -CT_SHARED_LIBS=y - -# -# linux other options -# -CT_KERNEL_LINUX_VERBOSITY_0=y -# CT_KERNEL_LINUX_VERBOSITY_1 is not set -# CT_KERNEL_LINUX_VERBOSITY_2 is not set -CT_KERNEL_LINUX_VERBOSE_LEVEL=0 -CT_KERNEL_LINUX_INSTALL_CHECK=y - -# -# Binary utilities -# -CT_ARCH_BINFMT_ELF=y -CT_BINUTILS="binutils" -CT_BINUTILS_binutils=y - -# -# GNU binutils -# -# CT_BINUTILS_CUSTOM is not set -CT_BINUTILS_VERSION="2.24" -# CT_BINUTILS_SHOW_LINARO is not set -# CT_BINUTILS_V_2_28 is not set -# CT_BINUTILS_V_2_27 is not set -# CT_BINUTILS_V_2_26 is not set -# CT_BINUTILS_V_2_25_1 is not set -CT_BINUTILS_V_2_24=y -# CT_BINUTILS_V_2_23_2 is not set -CT_BINUTILS_2_24_or_later=y -CT_BINUTILS_2_23_2_or_later=y -CT_BINUTILS_HAS_HASH_STYLE=y -CT_BINUTILS_HAS_GOLD=y -CT_BINUTILS_GOLD_SUPPORTS_ARCH=y -CT_BINUTILS_GOLD_SUPPORT=y -CT_BINUTILS_HAS_PLUGINS=y -CT_BINUTILS_HAS_PKGVERSION_BUGURL=y -CT_BINUTILS_LINKER_LD=y -# CT_BINUTILS_LINKER_GOLD is not set -# CT_BINUTILS_LINKER_LD_GOLD is not set -# CT_BINUTILS_LINKER_GOLD_LD is not set -CT_BINUTILS_LINKERS_LIST="ld" -CT_BINUTILS_LINKER_DEFAULT="bfd" -CT_BINUTILS_PLUGINS=y -CT_BINUTILS_EXTRA_CONFIG_ARRAY="" -CT_BINUTILS_FOR_TARGET=y -CT_BINUTILS_FOR_TARGET_IBERTY=y -CT_BINUTILS_FOR_TARGET_BFD=y - -# -# binutils other options -# - -# -# C-library -# -CT_LIBC="uClibc" -CT_LIBC_VERSION="1.0.22" -# CT_LIBC_glibc is not set -# CT_LIBC_musl is not set -CT_LIBC_uClibc=y -CT_LIBC_avr_libc_AVAILABLE=y -CT_LIBC_glibc_AVAILABLE=y -CT_THREADS="nptl" -CT_LIBC_mingw_AVAILABLE=y -CT_LIBC_musl_AVAILABLE=y -CT_LIBC_newlib_AVAILABLE=y -CT_LIBC_none_AVAILABLE=y -CT_LIBC_uClibc_AVAILABLE=y -# CT_LIBC_UCLIBC_CUSTOM is not set -CT_LIBC_UCLIBC_NG_V_1_0_22=y -# CT_LIBC_UCLIBC_NG_V_1_0_21 is not set -# CT_LIBC_UCLIBC_NG_V_1_0_20 is not set -# CT_LIBC_UCLIBC_V_0_9_33_2 is not set -CT_LIBC_UCLIBC_NG_1_0_15_or_later=y -CT_LIBC_UCLIBC_NG_1_0_0_or_later=y -CT_LIBC_UCLIBC_0_9_33_2_or_later=y -CT_LIBC_UCLIBC_PARALLEL=y -CT_LIBC_UCLIBC_NG=y -CT_LIBC_UCLIBC_VERBOSITY_0=y -# CT_LIBC_UCLIBC_VERBOSITY_1 is not set -# CT_LIBC_UCLIBC_VERBOSITY_2 is not set -CT_LIBC_UCLIBC_VERBOSITY="" -CT_LIBC_UCLIBC_DEBUG_LEVEL_0=y -# CT_LIBC_UCLIBC_DEBUG_LEVEL_1 is not set -# CT_LIBC_UCLIBC_DEBUG_LEVEL_2 is not set -# CT_LIBC_UCLIBC_DEBUG_LEVEL_3 is not set -CT_LIBC_UCLIBC_DEBUG_LEVEL=0 -CT_LIBC_UCLIBC_CONFIG_FILE="${UCLIBC_CONFIG}" -CT_LIBC_SUPPORT_THREADS_ANY=y -CT_LIBC_SUPPORT_THREADS_NATIVE=y -CT_LIBC_SUPPORT_THREADS_LT=y -CT_LIBC_SUPPORT_THREADS_NONE=y - -# -# Common C library options -# -CT_THREADS_NATIVE=y -# CT_THREADS_LT is not set -# CT_THREADS_NONE is not set -# CT_CREATE_LDSO_CONF is not set -CT_LIBC_XLDD=y - -# -# uClibc other options -# -CT_LIBC_UCLIBC_LNXTHRD="" -# CT_LIBC_UCLIBC_LOCALES is not set -CT_LIBC_UCLIBC_IPV6=y -CT_LIBC_UCLIBC_WCHAR=y -CT_LIBC_UCLIBC_FENV=y -# CT_LIBC_UCLIBC_RPC is not set - -# -# C compiler -# -CT_CC="gcc" -CT_CC_CORE_PASSES_NEEDED=y -CT_CC_CORE_PASS_1_NEEDED=y -CT_CC_CORE_PASS_2_NEEDED=y -CT_CC_gcc=y -# CT_CC_GCC_CUSTOM is not set -CT_CC_GCC_VERSION="${GCC_VERSION}" -# CT_CC_GCC_V_linaro_6_3 is not set -# CT_CC_GCC_V_6_3_0 is not set -# CT_CC_GCC_V_linaro_5_4 is not set -# CT_CC_GCC_V_5_4_0 is not set -# CT_CC_GCC_V_linaro_4_9 is not set -# CT_CC_GCC_V_4_9_4 is not set -# CT_CC_GCC_V_linaro_4_8 is not set -# CT_CC_GCC_V_4_8_5 is not set -CT_CC_GCC_4_8_or_later=y -CT_CC_GCC_4_9_or_later=y -CT_CC_GCC_5_or_later=y -CT_CC_GCC_6_or_later=y -CT_CC_GCC_latest=y -CT_CC_GCC_HAS_LIBMPX=y -CT_CC_GCC_ENABLE_CXX_FLAGS="" -CT_CC_GCC_CORE_EXTRA_CONFIG_ARRAY="" -CT_CC_GCC_EXTRA_CONFIG_ARRAY="" -CT_CC_GCC_STATIC_LIBSTDCXX=y -# CT_CC_GCC_SYSTEM_ZLIB is not set -CT_CC_GCC_CONFIG_TLS=m - -# -# Optimisation features -# -CT_CC_GCC_USE_GRAPHITE=y -CT_CC_GCC_USE_LTO=y - -# -# Settings for libraries running on target -# -CT_CC_GCC_ENABLE_TARGET_OPTSPACE=y -# CT_CC_GCC_LIBMUDFLAP is not set -# CT_CC_GCC_LIBGOMP is not set -# CT_CC_GCC_LIBSSP is not set -# CT_CC_GCC_LIBQUADMATH is not set -CT_CC_GCC_LIBMPX=y - -# -# Misc. obscure options. -# -CT_CC_CXA_ATEXIT=y -# CT_CC_GCC_DISABLE_PCH is not set -CT_CC_GCC_SJLJ_EXCEPTIONS=m -CT_CC_GCC_LDBL_128=m -# CT_CC_GCC_BUILD_ID is not set -CT_CC_GCC_LNK_HASH_STYLE_DEFAULT=y -# CT_CC_GCC_LNK_HASH_STYLE_SYSV is not set -# CT_CC_GCC_LNK_HASH_STYLE_GNU is not set -# CT_CC_GCC_LNK_HASH_STYLE_BOTH is not set -CT_CC_GCC_LNK_HASH_STYLE="" -CT_CC_GCC_DEC_FLOAT_AUTO=y -# CT_CC_GCC_DEC_FLOAT_BID is not set -# CT_CC_GCC_DEC_FLOAT_DPD is not set -# CT_CC_GCC_DEC_FLOATS_NO is not set -CT_CC_SUPPORT_CXX=y -CT_CC_SUPPORT_FORTRAN=y -CT_CC_SUPPORT_JAVA=y -CT_CC_SUPPORT_ADA=y -CT_CC_SUPPORT_OBJC=y -CT_CC_SUPPORT_OBJCXX=y -CT_CC_SUPPORT_GOLANG=y - -# -# Additional supported languages: -# -CT_CC_LANG_CXX=y -# CT_CC_LANG_FORTRAN is not set -# CT_CC_LANG_JAVA is not set -# CT_CC_LANG_ADA is not set -# CT_CC_LANG_OBJC is not set -# CT_CC_LANG_OBJCXX is not set -# CT_CC_LANG_GOLANG is not set -CT_CC_LANG_OTHERS="" - -# -# Debug facilities -# -CT_DEBUG_duma=y -CT_DUMA_SO=y -CT_DUMA_CUSTOM_WRAPPER=y -CT_DUMA_V_2_5_15=y -CT_DUMA_VERSION="2_5_15" -CT_DEBUG_gdb=y -CT_GDB_CROSS=y -# CT_GDB_CROSS_STATIC is not set -# CT_GDB_CROSS_SIM is not set -CT_GDB_CROSS_PYTHON=y -CT_GDB_CROSS_PYTHON_BINARY="" -CT_GDB_CROSS_EXTRA_CONFIG_ARRAY="" -# CT_GDB_NATIVE is not set -CT_GDB_GDBSERVER=y -CT_GDB_GDBSERVER_HAS_IPA_LIB=y -# CT_GDB_GDBSERVER_STATIC is not set -CT_GDB_GDBSERVER_BUILD_IPA_LIB=y - -# -# gdb version -# -# CT_GDB_CUSTOM is not set -CT_GDB_VERSION="7.11.1" -# CT_DEBUG_GDB_SHOW_LINARO is not set -# CT_GDB_V_7_12_1 is not set -CT_GDB_V_7_11_1=y -# CT_GDB_V_7_10_1 is not set -# CT_GDB_V_7_10 is not set -# CT_GDB_V_7_9_1 is not set -# CT_GDB_V_7_9 is not set -# CT_GDB_V_7_8_2 is not set -# CT_GDB_V_7_8_1 is not set -# CT_GDB_V_7_8 is not set -# CT_GDB_V_7_7_1 is not set -# CT_GDB_V_7_7 is not set -# CT_GDB_V_7_6_1 is not set -# CT_GDB_V_7_5_1 is not set -# CT_GDB_V_7_4_1 is not set -# CT_GDB_V_7_4 is not set -# CT_GDB_V_7_3_1 is not set -# CT_GDB_V_7_3a is not set -# CT_GDB_V_7_2a is not set -# CT_GDB_V_7_1a is not set -# CT_GDB_V_7_0_1a is not set -# CT_GDB_V_7_0a is not set -# CT_GDB_V_6_8a is not set -CT_GDB_7_2_or_later=y -CT_GDB_7_0_or_later=y -CT_GDB_HAS_PKGVERSION_BUGURL=y -CT_GDB_HAS_PYTHON=y -CT_GDB_INSTALL_GDBINIT=y -CT_DEBUG_ltrace=y -CT_LTRACE_V_0_7_3=y -# CT_LTRACE_V_0_5_3 is not set -CT_LTRACE_VERSION="0.7.3" -CT_DEBUG_strace=y -# CT_STRACE_V_4_16 is not set -# CT_STRACE_V_4_15 is not set -# CT_STRACE_V_4_14 is not set -# CT_STRACE_V_4_13 is not set -# CT_STRACE_V_4_12 is not set -# CT_STRACE_V_4_11 is not set -# CT_STRACE_V_4_10 is not set -CT_STRACE_V_4_9=y -# CT_STRACE_V_4_8 is not set -# CT_STRACE_V_4_7 is not set -# CT_STRACE_V_4_6 is not set -# CT_STRACE_V_4_5_20 is not set -# CT_STRACE_V_4_5_19 is not set -# CT_STRACE_V_4_5_18 is not set -CT_STRACE_VERSION="4.9" - -# -# Companion libraries -# -CT_COMPLIBS_NEEDED=y -CT_LIBICONV_NEEDED=y -CT_GETTEXT_NEEDED=y -CT_GMP_NEEDED=y -CT_MPFR_NEEDED=y -CT_ISL_NEEDED=y -CT_MPC_NEEDED=y -CT_EXPAT_NEEDED=y -CT_NCURSES_NEEDED=y -CT_COMPLIBS=y -CT_LIBICONV=y -CT_GETTEXT=y -CT_GMP=y -CT_MPFR=y -CT_ISL=y -CT_MPC=y -CT_LIBELF_TARGET=y -CT_EXPAT=y -CT_NCURSES=y -# CT_ZLIB is not set -CT_LIBICONV_V_1_15=y -# CT_LIBICONV_V_1_14 is not set -CT_LIBICONV_VERSION="1.15" -CT_GETTEXT_V_0_19_8_1=y -# CT_GETTEXT_V_0_19_7 is not set -CT_GETTEXT_VERSION="0.19.8.1" -# CT_GMP_V_6_1_2 is not set -# CT_GMP_V_6_1_0 is not set -CT_GMP_V_6_0_0=y -# CT_GMP_V_5_1_3 is not set -# CT_GMP_V_5_1_1 is not set -# CT_GMP_V_5_0_2 is not set -# CT_GMP_V_5_0_1 is not set -# CT_GMP_V_4_3_2 is not set -# CT_GMP_V_4_3_1 is not set -# CT_GMP_V_4_3_0 is not set -CT_GMP_5_0_2_or_later=y -CT_GMP_VERSION="6.0.0a" -# CT_MPFR_V_3_1_5 is not set -# CT_MPFR_V_3_1_3 is not set -CT_MPFR_V_3_1_2=y -# CT_MPFR_V_3_1_0 is not set -# CT_MPFR_V_3_0_1 is not set -# CT_MPFR_V_3_0_0 is not set -# CT_MPFR_V_2_4_2 is not set -# CT_MPFR_V_2_4_1 is not set -# CT_MPFR_V_2_4_0 is not set -CT_MPFR_VERSION="3.1.2" -# CT_ISL_V_0_18 is not set -# CT_ISL_V_0_17_1 is not set -# CT_ISL_V_0_16_1 is not set -# CT_ISL_V_0_15 is not set -# CT_ISL_V_0_14 is not set -CT_ISL_V_0_12_2=y -CT_ISL_V_0_12_or_later=y -CT_ISL_VERSION="0.12.2" -# CT_CLOOG_V_0_18_4 is not set -# CT_CLOOG_V_0_18_1 is not set -# CT_CLOOG_V_0_18_0 is not set -# CT_MPC_V_1_0_3 is not set -CT_MPC_V_1_0_2=y -# CT_MPC_V_1_0_1 is not set -# CT_MPC_V_1_0 is not set -# CT_MPC_V_0_9 is not set -# CT_MPC_V_0_8_2 is not set -# CT_MPC_V_0_8_1 is not set -# CT_MPC_V_0_7 is not set -CT_MPC_VERSION="1.0.2" - -# -# libelf version needed to build for target -# -CT_LIBELF_V_0_8_13=y -# CT_LIBELF_V_0_8_12 is not set -CT_LIBELF_VERSION="0.8.13" -# CT_EXPAT_V_2_2_0 is not set -CT_EXPAT_V_2_1_1=y -CT_EXPAT_VERSION="2.1.1" -CT_NCURSES_V_6_0=y -CT_NCURSES_VERSION="6.0" -# CT_NCURSES_NEW_ABI is not set -CT_NCURSES_HOST_CONFIG_ARGS="" -CT_NCURSES_HOST_DISABLE_DB=y -CT_NCURSES_HOST_FALLBACKS="linux,xterm,xterm-color,xterm-256color,vt100" -CT_NCURSES_TARGET_CONFIG_ARGS="" -# CT_NCURSES_TARGET_DISABLE_DB is not set -CT_NCURSES_TARGET_FALLBACKS="" - -# -# Companion libraries common options -# -# CT_COMPLIBS_CHECK is not set - -# -# Companion tools -# -# CT_COMP_TOOLS_FOR_HOST is not set -CT_COMP_TOOLS_autoconf=y -CT_AUTOCONF_V_2_69=y -# CT_AUTOCONF_V_2_65 is not set -CT_AUTOCONF_VERSION="2.69" -CT_COMP_TOOLS_automake=y -CT_AUTOMAKE_V_1_15=y -# CT_AUTOMAKE_V_1_14 is not set -# CT_AUTOMAKE_V_1_11_6 is not set -# CT_AUTOMAKE_V_1_11_1 is not set -CT_AUTOMAKE_VERSION="1.15" -CT_COMP_TOOLS_libtool=y -CT_LIBTOOL_V_2_4_6=y -CT_LIBTOOL_VERSION="2.4.6" -CT_COMP_TOOLS_m4=y -CT_M4_V_1_4_18=y -# CT_M4_V_1_4_17 is not set -# CT_M4_V_1_4_13 is not set -CT_M4_VERSION="1.4.18" -CT_COMP_TOOLS_make=y -CT_MAKE_V_4_2_1=y -# CT_MAKE_V_4_1 is not set -# CT_MAKE_V_4_0 is not set -# CT_MAKE_V_3_81 is not set -# CT_MAKE_GMAKE_SYMLINK is not set -CT_MAKE_VERSION="4.2.1" - -# -# Test suite -# -# CT_TEST_SUITE_GCC is not set diff --git a/build-config/conf/crosstool/gcc-6.3.0/glibc-2.25/crosstool.armv8a.config b/build-config/conf/crosstool/gcc-6.3.0/glibc-2.25/crosstool.armv8a.config deleted file mode 100644 index 15bc2f6dd..000000000 --- a/build-config/conf/crosstool/gcc-6.3.0/glibc-2.25/crosstool.armv8a.config +++ /dev/null @@ -1,554 +0,0 @@ -# -# Automatically generated file; DO NOT EDIT. -# Crosstool-NG Configuration -# -CT_CONFIGURE_has_static_link=y -CT_CONFIGURE_has_wget=y -CT_CONFIGURE_has_curl=y -CT_CONFIGURE_has_stat_flavor_GNU=y -CT_CONFIGURE_has_make_3_81_or_newer=y -CT_CONFIGURE_has_libtool_2_4_or_newer=y -CT_CONFIGURE_has_libtoolize_2_4_or_newer=y -CT_CONFIGURE_has_autoconf_2_63_or_newer=y -CT_CONFIGURE_has_autoreconf_2_63_or_newer=y -CT_CONFIGURE_has_automake_1_15_or_newer=y -CT_CONFIGURE_has_gnu_m4_1_4_12_or_newer=y -CT_CONFIGURE_has_svn=y -CT_CONFIGURE_has_git=y -CT_MODULES=y - -# -# Paths and misc options -# - -# -# crosstool-NG behavior -# -# CT_OBSOLETE is not set -CT_EXPERIMENTAL=y -# CT_ALLOW_BUILD_AS_ROOT is not set -# CT_DEBUG_CT is not set - -# -# Paths -# -CT_LOCAL_TARBALLS_DIR="${DOWNLOADDIR}" -CT_SAVE_TARBALLS=y -CT_WORK_DIR="${CT_TOP_DIR}/build" -CT_BUILD_TOP_DIR="${CT_WORK_DIR}/${CT_HOST:+HOST-${CT_HOST}/}${CT_TARGET}" -CT_PREFIX_DIR="${XTOOLS_INSTALL_DIR}/${CT_TARGET}" -CT_RM_RF_PREFIX_DIR=y -CT_REMOVE_DOCS=y -CT_PREFIX_DIR_RO=y -CT_STRIP_HOST_TOOLCHAIN_EXECUTABLES=y -CT_STRIP_TARGET_TOOLCHAIN_EXECUTABLES=y - -# -# Downloading -# -# CT_DOWNLOAD_AGENT_WGET is not set -# CT_DOWNLOAD_AGENT_CURL is not set -CT_DOWNLOAD_AGENT_NONE=y -CT_FORBID_DOWNLOAD=y - -# -# Extracting -# -# CT_FORCE_EXTRACT is not set -CT_OVERRIDE_CONFIG_GUESS_SUB=y -# CT_ONLY_EXTRACT is not set -# CT_PATCH_BUNDLED is not set -# CT_PATCH_LOCAL is not set -# CT_PATCH_BUNDLED_LOCAL is not set -# CT_PATCH_LOCAL_BUNDLED is not set -CT_PATCH_BUNDLED_FALLBACK_LOCAL=y -# CT_PATCH_LOCAL_FALLBACK_BUNDLED is not set -# CT_PATCH_NONE is not set -CT_PATCH_ORDER="bundled,local" -CT_PATCH_SINGLE=y -CT_PATCH_USE_LOCAL=y -CT_LOCAL_PATCH_DIR="${CROSSTOOL_NG_LOCAL_PATCHDIR}" - -# -# Build behavior -# -CT_PARALLEL_JOBS=0 -CT_LOAD="" -CT_USE_PIPES=y -CT_EXTRA_CFLAGS_FOR_BUILD="" -CT_EXTRA_LDFLAGS_FOR_BUILD="" -CT_EXTRA_CFLAGS_FOR_HOST="" -CT_EXTRA_LDFLAGS_FOR_HOST="" -# CT_CONFIG_SHELL_SH is not set -# CT_CONFIG_SHELL_ASH is not set -CT_CONFIG_SHELL_BASH=y -# CT_CONFIG_SHELL_CUSTOM is not set -CT_CONFIG_SHELL="${bash}" - -# -# Logging -# -# CT_LOG_ERROR is not set -# CT_LOG_WARN is not set -CT_LOG_INFO=y -# CT_LOG_EXTRA is not set -# CT_LOG_ALL is not set -# CT_LOG_DEBUG is not set -CT_LOG_LEVEL_MAX="INFO" -# CT_LOG_SEE_TOOLS_WARN is not set -# CT_LOG_PROGRESS_BAR is not set -CT_LOG_TO_FILE=y -CT_LOG_FILE_COMPRESS=y - -# -# Target options -# -CT_ARCH="arm" -# CT_ARCH_alpha is not set -CT_ARCH_arm=y -# CT_ARCH_avr is not set -# CT_ARCH_m68k is not set -# CT_ARCH_microblaze is not set -# CT_ARCH_mips is not set -# CT_ARCH_nios2 is not set -# CT_ARCH_powerpc is not set -# CT_ARCH_s390 is not set -# CT_ARCH_sh is not set -# CT_ARCH_sparc is not set -# CT_ARCH_x86 is not set -# CT_ARCH_xtensa is not set -CT_ARCH_alpha_AVAILABLE=y -CT_ARCH_arm_AVAILABLE=y -CT_ARCH_avr_AVAILABLE=y -CT_ARCH_m68k_AVAILABLE=y -CT_ARCH_microblaze_AVAILABLE=y -CT_ARCH_mips_AVAILABLE=y -CT_ARCH_nios2_AVAILABLE=y -CT_ARCH_powerpc_AVAILABLE=y -CT_ARCH_s390_AVAILABLE=y -CT_ARCH_sh_AVAILABLE=y -CT_ARCH_sparc_AVAILABLE=y -CT_ARCH_x86_AVAILABLE=y -CT_ARCH_xtensa_AVAILABLE=y -CT_ARCH_SUFFIX="" - -# -# Generic target options -# -# CT_MULTILIB is not set -CT_DEMULTILIB=y -CT_ARCH_SUPPORTS_BOTH_MMU=y -CT_ARCH_DEFAULT_HAS_MMU=y -CT_ARCH_USE_MMU=y -CT_ARCH_SUPPORTS_BOTH_ENDIAN=y -CT_ARCH_DEFAULT_LE=y -# CT_ARCH_BE is not set -CT_ARCH_LE=y -CT_ARCH_ENDIAN="little" -CT_ARCH_SUPPORTS_32=y -CT_ARCH_SUPPORTS_64=y -CT_ARCH_DEFAULT_32=y -CT_ARCH_BITNESS=64 -# CT_ARCH_32 is not set -CT_ARCH_64=y - -# -# Target optimisations -# -CT_ARCH_SUPPORTS_WITH_ARCH=y -CT_ARCH_SUPPORTS_WITH_CPU=y -CT_ARCH_SUPPORTS_WITH_TUNE=y -CT_ARCH_EXCLUSIVE_WITH_CPU=y -CT_ARCH_ARCH="" -CT_ARCH_CPU="" -CT_ARCH_TUNE="" -CT_TARGET_CFLAGS="" -CT_TARGET_LDFLAGS="" -CT_ARCH_FLOAT="" - -# -# arm other options -# -CT_ARCH_ARM_MODE="arm" -CT_ARCH_ARM_MODE_ARM=y -# CT_ARCH_ARM_MODE_THUMB is not set -# CT_ARCH_ARM_INTERWORKING is not set -CT_ARCH_ARM_EABI_FORCE=y -CT_ARCH_ARM_EABI=y - -# -# Toolchain options -# - -# -# General toolchain options -# -CT_FORCE_SYSROOT=y -CT_USE_SYSROOT=y -CT_SYSROOT_NAME="sysroot" -CT_SYSROOT_DIR_PREFIX="" -CT_WANTS_STATIC_LINK=y -CT_WANTS_STATIC_LINK_CXX=y -# CT_STATIC_TOOLCHAIN is not set -CT_TOOLCHAIN_PKGVERSION="ONIE-${LSB_RELEASE_TAG}" -CT_TOOLCHAIN_BUGURL="" - -# -# Tuple completion and aliasing -# -CT_TARGET_VENDOR="onie" -CT_TARGET_ALIAS_SED_EXPR="" -CT_TARGET_ALIAS="x86_64" - -# -# Toolchain type -# -# CT_NATIVE is not set -CT_CROSS=y -# CT_CROSS_NATIVE is not set -# CT_CANADIAN is not set -CT_TOOLCHAIN_TYPE="cross" - -# -# Build system -# -CT_BUILD="" -CT_BUILD_PREFIX="" -CT_BUILD_SUFFIX="" - -# -# Misc options -# -CT_TOOLCHAIN_ENABLE_NLS=y - -# -# Operating System -# -CT_KERNEL_SUPPORTS_SHARED_LIBS=y -CT_KERNEL="linux" -CT_KERNEL_VERSION="${LINUX_RELEASE}" -# CT_KERNEL_bare_metal is not set -CT_KERNEL_linux=y -CT_KERNEL_bare_metal_AVAILABLE=y -CT_KERNEL_linux_AVAILABLE=y -CT_KERNEL_LINUX_CUSTOM=y -CT_KERNEL_LINUX_CUSTOM_LOCATION="${DOWNLOADDIR}/${LINUX_TARBALL}" -CT_KERNEL_LINUX_CUSTOM_VERSION="${LINUX_RELEASE}" -CT_KERNEL_windows_AVAILABLE=y - -# -# Common kernel options -# -CT_SHARED_LIBS=y - -# -# linux other options -# -CT_KERNEL_LINUX_VERBOSITY_0=y -# CT_KERNEL_LINUX_VERBOSITY_1 is not set -# CT_KERNEL_LINUX_VERBOSITY_2 is not set -CT_KERNEL_LINUX_VERBOSE_LEVEL=0 -CT_KERNEL_LINUX_INSTALL_CHECK=y - -# -# Binary utilities -# -CT_ARCH_BINFMT_ELF=y -CT_BINUTILS="binutils" -CT_BINUTILS_binutils=y - -# -# GNU binutils -# -# CT_BINUTILS_CUSTOM is not set -CT_BINUTILS_VERSION="2.28" -# CT_BINUTILS_SHOW_LINARO is not set -CT_BINUTILS_V_2_28=y -# CT_BINUTILS_V_2_27 is not set -# CT_BINUTILS_V_2_26 is not set -CT_BINUTILS_2_27_or_later=y -CT_BINUTILS_2_26_or_later=y -CT_BINUTILS_2_25_1_or_later=y -CT_BINUTILS_2_25_or_later=y -CT_BINUTILS_2_24_or_later=y -CT_BINUTILS_2_23_2_or_later=y -CT_BINUTILS_HAS_HASH_STYLE=y -CT_BINUTILS_HAS_GOLD=y -CT_BINUTILS_GOLD_SUPPORTS_ARCH=y -CT_BINUTILS_GOLD_SUPPORT=y -CT_BINUTILS_HAS_PLUGINS=y -CT_BINUTILS_HAS_PKGVERSION_BUGURL=y -CT_BINUTILS_FORCE_LD_BFD_DEFAULT=y -CT_BINUTILS_LINKER_LD=y -# CT_BINUTILS_LINKER_LD_GOLD is not set -# CT_BINUTILS_LINKER_GOLD_LD is not set -CT_BINUTILS_LINKERS_LIST="ld" -CT_BINUTILS_LINKER_DEFAULT="bfd" -# CT_BINUTILS_PLUGINS is not set -CT_BINUTILS_EXTRA_CONFIG_ARRAY="" -CT_BINUTILS_FOR_TARGET=y -CT_BINUTILS_FOR_TARGET_IBERTY=y -CT_BINUTILS_FOR_TARGET_BFD=y - -# -# binutils other options -# - -# -# C-library -# -CT_LIBC="glibc" -CT_LIBC_VERSION="2.25" -CT_LIBC_glibc=y -# CT_LIBC_musl is not set -# CT_LIBC_uClibc is not set -CT_LIBC_avr_libc_AVAILABLE=y -CT_LIBC_glibc_AVAILABLE=y -CT_THREADS="nptl" -# CT_LIBC_GLIBC_CUSTOM is not set -# CT_CC_GLIBC_SHOW_LINARO is not set -CT_LIBC_GLIBC_V_2_25=y -# CT_LIBC_GLIBC_V_2_24 is not set -# CT_LIBC_GLIBC_V_2_23 is not set -CT_LIBC_GLIBC_2_23_or_later=y -CT_LIBC_GLIBC_2_20_or_later=y -CT_LIBC_GLIBC_2_17_or_later=y -CT_LIBC_mingw_AVAILABLE=y -CT_LIBC_musl_AVAILABLE=y -CT_LIBC_newlib_AVAILABLE=y -CT_LIBC_none_AVAILABLE=y -CT_LIBC_uClibc_AVAILABLE=y -CT_LIBC_SUPPORT_THREADS_ANY=y -CT_LIBC_SUPPORT_THREADS_NATIVE=y - -# -# Common C library options -# -CT_THREADS_NATIVE=y -# CT_CREATE_LDSO_CONF is not set -CT_LIBC_XLDD=y - -# -# glibc other options -# -CT_LIBC_GLIBC_NEEDS_PORTS=y -CT_LIBC_glibc_family=y -CT_LIBC_GLIBC_EXTRA_CONFIG_ARRAY="" -CT_LIBC_GLIBC_CONFIGPARMS="" -CT_LIBC_GLIBC_EXTRA_CFLAGS="" -# CT_LIBC_ENABLE_FORTIFIED_BUILD is not set -# CT_LIBC_DISABLE_VERSIONING is not set -CT_LIBC_OLDEST_ABI="" -CT_LIBC_GLIBC_FORCE_UNWIND=y -CT_LIBC_ADDONS_LIST="" -# CT_LIBC_LOCALES is not set -# CT_LIBC_GLIBC_KERNEL_VERSION_NONE is not set -CT_LIBC_GLIBC_KERNEL_VERSION_AS_HEADERS=y -# CT_LIBC_GLIBC_KERNEL_VERSION_CHOSEN is not set -CT_LIBC_GLIBC_MIN_KERNEL="${LINUX_RELEASE}" - -# -# C compiler -# -CT_CC="gcc" -CT_CC_CORE_PASSES_NEEDED=y -CT_CC_CORE_PASS_1_NEEDED=y -CT_CC_CORE_PASS_2_NEEDED=y -CT_CC_gcc=y -# CT_CC_GCC_CUSTOM is not set -CT_CC_GCC_VERSION="6.3.0" -# CT_CC_GCC_SHOW_LINARO is not set -CT_CC_GCC_V_6_3_0=y -# CT_CC_GCC_V_5_4_0 is not set -# CT_CC_GCC_V_4_9_4 is not set -CT_CC_GCC_4_8_or_later=y -CT_CC_GCC_4_9_or_later=y -CT_CC_GCC_5_or_later=y -CT_CC_GCC_6=y -CT_CC_GCC_6_or_later=y -CT_CC_GCC_HAS_LIBMPX=y -CT_CC_GCC_ENABLE_CXX_FLAGS="" -CT_CC_GCC_CORE_EXTRA_CONFIG_ARRAY="" -CT_CC_GCC_EXTRA_CONFIG_ARRAY="" -CT_CC_GCC_STATIC_LIBSTDCXX=y -# CT_CC_GCC_SYSTEM_ZLIB is not set -CT_CC_GCC_CONFIG_TLS=m - -# -# Optimisation features -# -CT_CC_GCC_USE_GRAPHITE=y -CT_CC_GCC_USE_LTO=y - -# -# Settings for libraries running on target -# -CT_CC_GCC_ENABLE_TARGET_OPTSPACE=y -# CT_CC_GCC_LIBMUDFLAP is not set -# CT_CC_GCC_LIBGOMP is not set -# CT_CC_GCC_LIBSSP is not set -# CT_CC_GCC_LIBQUADMATH is not set -# CT_CC_GCC_LIBSANITIZER is not set - -# -# Misc. obscure options. -# -CT_CC_CXA_ATEXIT=y -# CT_CC_GCC_DISABLE_PCH is not set -CT_CC_GCC_SJLJ_EXCEPTIONS=m -CT_CC_GCC_LDBL_128=m -# CT_CC_GCC_BUILD_ID is not set -CT_CC_GCC_LNK_HASH_STYLE_DEFAULT=y -# CT_CC_GCC_LNK_HASH_STYLE_SYSV is not set -# CT_CC_GCC_LNK_HASH_STYLE_GNU is not set -# CT_CC_GCC_LNK_HASH_STYLE_BOTH is not set -CT_CC_GCC_LNK_HASH_STYLE="" -CT_CC_GCC_DEC_FLOAT_AUTO=y -# CT_CC_GCC_DEC_FLOAT_BID is not set -# CT_CC_GCC_DEC_FLOAT_DPD is not set -# CT_CC_GCC_DEC_FLOATS_NO is not set -CT_CC_SUPPORT_CXX=y -CT_CC_SUPPORT_FORTRAN=y -CT_CC_SUPPORT_JAVA=y -CT_CC_SUPPORT_ADA=y -CT_CC_SUPPORT_OBJC=y -CT_CC_SUPPORT_OBJCXX=y -CT_CC_SUPPORT_GOLANG=y - -# -# Additional supported languages: -# -CT_CC_LANG_CXX=y -# CT_CC_LANG_FORTRAN is not set -# CT_CC_LANG_JAVA is not set -# CT_CC_LANG_ADA is not set -# CT_CC_LANG_OBJC is not set -# CT_CC_LANG_OBJCXX is not set -# CT_CC_LANG_GOLANG is not set -CT_CC_LANG_OTHERS="" - -# -# Debug facilities -# -CT_DEBUG_duma=y -CT_DUMA_SO=y -CT_DUMA_CUSTOM_WRAPPER=y -CT_DUMA_V_2_5_15=y -CT_DUMA_VERSION="2_5_15" -CT_DEBUG_gdb=y -CT_GDB_CROSS=y -# CT_GDB_CROSS_STATIC is not set -# CT_GDB_CROSS_SIM is not set -CT_GDB_CROSS_PYTHON=y -CT_GDB_CROSS_PYTHON_BINARY="" -CT_GDB_CROSS_EXTRA_CONFIG_ARRAY="" -# CT_GDB_NATIVE is not set -CT_GDB_GDBSERVER=y -CT_GDB_GDBSERVER_HAS_IPA_LIB=y -# CT_GDB_GDBSERVER_STATIC is not set -CT_GDB_GDBSERVER_BUILD_IPA_LIB=y - -# -# gdb version -# -# CT_GDB_CUSTOM is not set -CT_GDB_VERSION="7.12.1" -CT_GDB_V_7_12_1=y -# CT_GDB_V_7_11_1 is not set -CT_GDB_7_12_or_later=y -CT_GDB_7_2_or_later=y -CT_GDB_7_0_or_later=y -CT_GDB_HAS_PKGVERSION_BUGURL=y -CT_GDB_HAS_PYTHON=y -CT_GDB_INSTALL_GDBINIT=y -# CT_DEBUG_ltrace is not set -CT_DEBUG_strace=y -CT_STRACE_V_4_16=y -# CT_STRACE_V_4_15 is not set -CT_STRACE_VERSION="4.16" - -# -# Companion libraries -# -CT_COMPLIBS_NEEDED=y -CT_LIBICONV_NEEDED=y -CT_GETTEXT_NEEDED=y -CT_GMP_NEEDED=y -CT_MPFR_NEEDED=y -CT_ISL_NEEDED=y -CT_MPC_NEEDED=y -CT_EXPAT_NEEDED=y -CT_NCURSES_NEEDED=y -CT_COMPLIBS=y -CT_LIBICONV=y -CT_GETTEXT=y -CT_GMP=y -CT_MPFR=y -CT_ISL=y -CT_MPC=y -CT_EXPAT=y -CT_NCURSES=y -# CT_ZLIB is not set -CT_LIBICONV_V_1_15=y -# CT_LIBICONV_V_1_14 is not set -CT_LIBICONV_VERSION="1.15" -CT_GETTEXT_V_0_19_8_1=y -CT_GETTEXT_VERSION="0.19.8.1" -CT_GMP_V_6_1_2=y -CT_GMP_5_0_2_or_later=y -CT_GMP_VERSION="6.1.2" -CT_MPFR_V_3_1_5=y -CT_MPFR_VERSION="3.1.5" -# CT_ISL_V_0_18 is not set -# CT_ISL_V_0_17_1 is not set -CT_ISL_V_0_16_1=y -# CT_ISL_V_0_15 is not set -CT_ISL_V_0_16_or_later=y -CT_ISL_V_0_15_or_later=y -CT_ISL_V_0_14_or_later=y -CT_ISL_V_0_12_or_later=y -CT_ISL_VERSION="0.16.1" -CT_MPC_V_1_0_3=y -CT_MPC_VERSION="1.0.3" -CT_EXPAT_V_2_2_0=y -CT_EXPAT_VERSION="2.2.0" -CT_NCURSES_V_6_0=y -CT_NCURSES_VERSION="6.0" -# CT_NCURSES_NEW_ABI is not set -CT_NCURSES_HOST_CONFIG_ARGS="" -CT_NCURSES_HOST_DISABLE_DB=y -CT_NCURSES_HOST_FALLBACKS="linux,xterm,xterm-color,xterm-256color,vt100" -CT_NCURSES_TARGET_CONFIG_ARGS="" -# CT_NCURSES_TARGET_DISABLE_DB is not set -CT_NCURSES_TARGET_FALLBACKS="" - -# -# Companion libraries common options -# -# CT_COMPLIBS_CHECK is not set - -# -# Companion tools -# -# CT_COMP_TOOLS_FOR_HOST is not set -CT_COMP_TOOLS_autoconf=y -CT_AUTOCONF_V_2_69=y -CT_AUTOCONF_VERSION="2.69" -CT_COMP_TOOLS_automake=y -CT_AUTOMAKE_V_1_15=y -CT_AUTOMAKE_VERSION="1.15" -CT_COMP_TOOLS_libtool=y -CT_LIBTOOL_V_2_4_6=y -CT_LIBTOOL_VERSION="2.4.6" -CT_COMP_TOOLS_m4=y -CT_M4_V_1_4_18=y -CT_M4_VERSION="1.4.18" -CT_COMP_TOOLS_make=y -CT_MAKE_V_4_2_1=y -# CT_MAKE_GMAKE_SYMLINK is not set -CT_MAKE_VERSION="4.2.1" - -# -# Test suite -# -# CT_TEST_SUITE_GCC is not set diff --git a/build-config/conf/crosstool/gcc-6.3.0/uClibc-ng-1.0.22/crosstool.armv7a.config b/build-config/conf/crosstool/gcc-6.3.0/uClibc-ng-1.0.22/crosstool.armv7a.config deleted file mode 100644 index 87010f529..000000000 --- a/build-config/conf/crosstool/gcc-6.3.0/uClibc-ng-1.0.22/crosstool.armv7a.config +++ /dev/null @@ -1,572 +0,0 @@ -# -# Automatically generated file; DO NOT EDIT. -# Crosstool-NG Configuration -# -CT_CONFIGURE_has_static_link=y -CT_CONFIGURE_has_wget=y -CT_CONFIGURE_has_curl=y -CT_CONFIGURE_has_stat_flavor_GNU=y -CT_CONFIGURE_has_make_3_81_or_newer=y -CT_CONFIGURE_has_libtool_2_4_or_newer=y -CT_CONFIGURE_has_libtoolize_2_4_or_newer=y -CT_CONFIGURE_has_autoconf_2_63_or_newer=y -CT_CONFIGURE_has_autoreconf_2_63_or_newer=y -CT_CONFIGURE_has_gnu_m4_1_4_12_or_newer=y -CT_CONFIGURE_has_svn=y -CT_CONFIGURE_has_git=y -CT_MODULES=y - -# -# Paths and misc options -# - -# -# crosstool-NG behavior -# -# CT_OBSOLETE is not set -CT_EXPERIMENTAL=y -# CT_ALLOW_BUILD_AS_ROOT is not set -# CT_DEBUG_CT is not set - -# -# Paths -# -CT_LOCAL_TARBALLS_DIR="${DOWNLOADDIR}" -CT_SAVE_TARBALLS=y -CT_WORK_DIR="${CT_TOP_DIR}/build" -CT_BUILD_TOP_DIR="${CT_WORK_DIR}/${CT_HOST:+HOST-${CT_HOST}/}${CT_TARGET}" -CT_PREFIX_DIR="${XTOOLS_INSTALL_DIR}/${CT_TARGET}" -CT_RM_RF_PREFIX_DIR=y -CT_REMOVE_DOCS=y -CT_PREFIX_DIR_RO=y -CT_STRIP_HOST_TOOLCHAIN_EXECUTABLES=y -CT_STRIP_TARGET_TOOLCHAIN_EXECUTABLES=y - -# -# Downloading -# -# CT_DOWNLOAD_AGENT_WGET is not set -# CT_DOWNLOAD_AGENT_CURL is not set -CT_DOWNLOAD_AGENT_NONE=y -CT_FORBID_DOWNLOAD=y - -# -# Extracting -# -# CT_FORCE_EXTRACT is not set -CT_OVERRIDE_CONFIG_GUESS_SUB=y -# CT_ONLY_EXTRACT is not set -# CT_PATCH_BUNDLED is not set -# CT_PATCH_LOCAL is not set -# CT_PATCH_BUNDLED_LOCAL is not set -# CT_PATCH_LOCAL_BUNDLED is not set -CT_PATCH_BUNDLED_FALLBACK_LOCAL=y -# CT_PATCH_LOCAL_FALLBACK_BUNDLED is not set -# CT_PATCH_NONE is not set -CT_PATCH_ORDER="bundled,local" -CT_PATCH_SINGLE=y -CT_PATCH_USE_LOCAL=y -CT_LOCAL_PATCH_DIR="${CROSSTOOL_NG_LOCAL_PATCHDIR}" - -# -# Build behavior -# -CT_PARALLEL_JOBS=0 -CT_LOAD="" -CT_USE_PIPES=y -CT_EXTRA_CFLAGS_FOR_BUILD="" -CT_EXTRA_LDFLAGS_FOR_BUILD="" -CT_EXTRA_CFLAGS_FOR_HOST="" -CT_EXTRA_LDFLAGS_FOR_HOST="" -# CT_CONFIG_SHELL_SH is not set -# CT_CONFIG_SHELL_ASH is not set -CT_CONFIG_SHELL_BASH=y -# CT_CONFIG_SHELL_CUSTOM is not set -CT_CONFIG_SHELL="${bash}" - -# -# Logging -# -# CT_LOG_ERROR is not set -# CT_LOG_WARN is not set -CT_LOG_INFO=y -# CT_LOG_EXTRA is not set -# CT_LOG_ALL is not set -# CT_LOG_DEBUG is not set -CT_LOG_LEVEL_MAX="INFO" -# CT_LOG_SEE_TOOLS_WARN is not set -# CT_LOG_PROGRESS_BAR is not set -CT_LOG_TO_FILE=y -CT_LOG_FILE_COMPRESS=y - -# -# Target options -# -CT_ARCH="arm" -# CT_ARCH_alpha is not set -CT_ARCH_arm=y -# CT_ARCH_avr is not set -# CT_ARCH_m68k is not set -# CT_ARCH_microblaze is not set -# CT_ARCH_mips is not set -# CT_ARCH_nios2 is not set -# CT_ARCH_powerpc is not set -# CT_ARCH_s390 is not set -# CT_ARCH_sh is not set -# CT_ARCH_sparc is not set -# CT_ARCH_x86 is not set -# CT_ARCH_xtensa is not set -CT_ARCH_alpha_AVAILABLE=y -CT_ARCH_arm_AVAILABLE=y -CT_ARCH_avr_AVAILABLE=y -CT_ARCH_m68k_AVAILABLE=y -CT_ARCH_microblaze_AVAILABLE=y -CT_ARCH_mips_AVAILABLE=y -CT_ARCH_nios2_AVAILABLE=y -CT_ARCH_powerpc_AVAILABLE=y -CT_ARCH_s390_AVAILABLE=y -CT_ARCH_sh_AVAILABLE=y -CT_ARCH_sparc_AVAILABLE=y -CT_ARCH_x86_AVAILABLE=y -CT_ARCH_xtensa_AVAILABLE=y -CT_ARCH_SUFFIX="" - -# -# Generic target options -# -# CT_MULTILIB is not set -CT_DEMULTILIB=y -CT_ARCH_SUPPORTS_BOTH_MMU=y -CT_ARCH_DEFAULT_HAS_MMU=y -CT_ARCH_USE_MMU=y -CT_ARCH_SUPPORTS_BOTH_ENDIAN=y -CT_ARCH_DEFAULT_LE=y -# CT_ARCH_BE is not set -CT_ARCH_LE=y -CT_ARCH_ENDIAN="little" -CT_ARCH_SUPPORTS_32=y -CT_ARCH_SUPPORTS_64=y -CT_ARCH_DEFAULT_32=y -CT_ARCH_BITNESS=32 -CT_ARCH_32=y -# CT_ARCH_64 is not set - -# -# Target optimisations -# -CT_ARCH_SUPPORTS_WITH_ARCH=y -CT_ARCH_SUPPORTS_WITH_CPU=y -CT_ARCH_SUPPORTS_WITH_TUNE=y -CT_ARCH_SUPPORTS_WITH_FLOAT=y -CT_ARCH_SUPPORTS_WITH_FPU=y -CT_ARCH_SUPPORTS_SOFTFP=y -CT_ARCH_EXCLUSIVE_WITH_CPU=y -CT_ARCH_CPU="cortex-a9" -CT_ARCH_FPU="" -# CT_ARCH_FLOAT_AUTO is not set -# CT_ARCH_FLOAT_HW is not set -# CT_ARCH_FLOAT_SOFTFP is not set -CT_ARCH_FLOAT_SW=y -CT_TARGET_CFLAGS="" -CT_TARGET_LDFLAGS="" -CT_ARCH_FLOAT="soft" - -# -# arm other options -# -CT_ARCH_ARM_MODE="arm" -CT_ARCH_ARM_MODE_ARM=y -# CT_ARCH_ARM_MODE_THUMB is not set -# CT_ARCH_ARM_INTERWORKING is not set -CT_ARCH_ARM_EABI_FORCE=y -CT_ARCH_ARM_EABI=y - -# -# Toolchain options -# - -# -# General toolchain options -# -CT_FORCE_SYSROOT=y -CT_USE_SYSROOT=y -CT_SYSROOT_NAME="sysroot" -CT_SYSROOT_DIR_PREFIX="" -CT_WANTS_STATIC_LINK=y -CT_WANTS_STATIC_LINK_CXX=y -# CT_STATIC_TOOLCHAIN is not set -CT_TOOLCHAIN_PKGVERSION="ONIE-${LSB_RELEASE_TAG}" -CT_TOOLCHAIN_BUGURL="" - -# -# Tuple completion and aliasing -# -CT_TARGET_VENDOR="onie" -CT_TARGET_ALIAS_SED_EXPR="" -CT_TARGET_ALIAS="armv7a" - -# -# Toolchain type -# -# CT_NATIVE is not set -CT_CROSS=y -# CT_CROSS_NATIVE is not set -# CT_CANADIAN is not set -CT_TOOLCHAIN_TYPE="cross" - -# -# Build system -# -CT_BUILD="" -CT_BUILD_PREFIX="" -CT_BUILD_SUFFIX="" - -# -# Misc options -# -CT_TOOLCHAIN_ENABLE_NLS=y - -# -# Operating System -# -CT_KERNEL_SUPPORTS_SHARED_LIBS=y -CT_KERNEL="linux" -CT_KERNEL_VERSION="${LINUX_RELEASE}" -# CT_KERNEL_bare_metal is not set -CT_KERNEL_linux=y -CT_KERNEL_bare_metal_AVAILABLE=y -CT_KERNEL_linux_AVAILABLE=y -CT_KERNEL_LINUX_CUSTOM=y -CT_KERNEL_LINUX_CUSTOM_LOCATION="${DOWNLOADDIR}/${LINUX_TARBALL}" -CT_KERNEL_LINUX_CUSTOM_VERSION="${LINUX_RELEASE}" -CT_KERNEL_windows_AVAILABLE=y - -# -# Common kernel options -# -CT_SHARED_LIBS=y - -# -# linux other options -# -CT_KERNEL_LINUX_VERBOSITY_0=y -# CT_KERNEL_LINUX_VERBOSITY_1 is not set -# CT_KERNEL_LINUX_VERBOSITY_2 is not set -CT_KERNEL_LINUX_VERBOSE_LEVEL=0 -CT_KERNEL_LINUX_INSTALL_CHECK=y - -# -# Binary utilities -# -CT_ARCH_BINFMT_ELF=y -CT_BINUTILS="binutils" -CT_BINUTILS_binutils=y - -# -# GNU binutils -# -# CT_BINUTILS_CUSTOM is not set -CT_BINUTILS_VERSION="2.28" -# CT_BINUTILS_SHOW_LINARO is not set -CT_BINUTILS_V_2_28=y -# CT_BINUTILS_V_2_27 is not set -# CT_BINUTILS_V_2_26 is not set -CT_BINUTILS_2_27_or_later=y -CT_BINUTILS_2_26_or_later=y -CT_BINUTILS_2_25_1_or_later=y -CT_BINUTILS_2_25_or_later=y -CT_BINUTILS_2_24_or_later=y -CT_BINUTILS_2_23_2_or_later=y -CT_BINUTILS_HAS_HASH_STYLE=y -CT_BINUTILS_HAS_GOLD=y -CT_BINUTILS_GOLD_SUPPORTS_ARCH=y -CT_BINUTILS_GOLD_SUPPORT=y -CT_BINUTILS_HAS_PLUGINS=y -CT_BINUTILS_HAS_PKGVERSION_BUGURL=y -CT_BINUTILS_LINKER_LD=y -# CT_BINUTILS_LINKER_GOLD is not set -# CT_BINUTILS_LINKER_LD_GOLD is not set -# CT_BINUTILS_LINKER_GOLD_LD is not set -CT_BINUTILS_LINKERS_LIST="ld" -CT_BINUTILS_LINKER_DEFAULT="bfd" -# CT_BINUTILS_PLUGINS is not set -CT_BINUTILS_EXTRA_CONFIG_ARRAY="" -CT_BINUTILS_FOR_TARGET=y -CT_BINUTILS_FOR_TARGET_IBERTY=y -CT_BINUTILS_FOR_TARGET_BFD=y - -# -# binutils other options -# - -# -# C-library -# -CT_LIBC="uClibc" -CT_LIBC_VERSION="1.0.22" -# CT_LIBC_glibc is not set -# CT_LIBC_musl is not set -CT_LIBC_uClibc=y -CT_LIBC_avr_libc_AVAILABLE=y -CT_LIBC_glibc_AVAILABLE=y -CT_THREADS="nptl" -CT_LIBC_mingw_AVAILABLE=y -CT_LIBC_musl_AVAILABLE=y -CT_LIBC_newlib_AVAILABLE=y -CT_LIBC_none_AVAILABLE=y -CT_LIBC_uClibc_AVAILABLE=y -# CT_LIBC_UCLIBC_CUSTOM is not set -CT_LIBC_UCLIBC_NG_V_1_0_22=y -CT_LIBC_UCLIBC_NG_1_0_15_or_later=y -CT_LIBC_UCLIBC_NG_1_0_0_or_later=y -CT_LIBC_UCLIBC_0_9_33_2_or_later=y -CT_LIBC_UCLIBC_PARALLEL=y -CT_LIBC_UCLIBC_NG=y -CT_LIBC_UCLIBC_VERBOSITY_0=y -# CT_LIBC_UCLIBC_VERBOSITY_1 is not set -# CT_LIBC_UCLIBC_VERBOSITY_2 is not set -CT_LIBC_UCLIBC_VERBOSITY="" -CT_LIBC_UCLIBC_DEBUG_LEVEL_0=y -# CT_LIBC_UCLIBC_DEBUG_LEVEL_1 is not set -# CT_LIBC_UCLIBC_DEBUG_LEVEL_2 is not set -# CT_LIBC_UCLIBC_DEBUG_LEVEL_3 is not set -CT_LIBC_UCLIBC_DEBUG_LEVEL=0 -CT_LIBC_UCLIBC_CONFIG_FILE="${UCLIBC_CONFIG}" -CT_LIBC_SUPPORT_THREADS_ANY=y -CT_LIBC_SUPPORT_THREADS_NATIVE=y -CT_LIBC_SUPPORT_THREADS_LT=y -CT_LIBC_SUPPORT_THREADS_NONE=y - -# -# Common C library options -# -CT_THREADS_NATIVE=y -# CT_THREADS_LT is not set -# CT_THREADS_NONE is not set -# CT_CREATE_LDSO_CONF is not set -CT_LIBC_XLDD=y - -# -# uClibc other options -# -CT_LIBC_UCLIBC_LNXTHRD="" -# CT_LIBC_UCLIBC_LOCALES is not set -CT_LIBC_UCLIBC_IPV6=y -CT_LIBC_UCLIBC_WCHAR=y -CT_LIBC_UCLIBC_FENV=y -# CT_LIBC_UCLIBC_RPC is not set -CT_LIBC_UCLIBC_USE_GNU_SUFFIX=y - -# -# C compiler -# -CT_CC="gcc" -CT_CC_CORE_PASSES_NEEDED=y -CT_CC_CORE_PASS_1_NEEDED=y -CT_CC_CORE_PASS_2_NEEDED=y -CT_CC_gcc=y -# CT_CC_GCC_CUSTOM is not set -CT_CC_GCC_VERSION="6.3.0" -# CT_CC_GCC_SHOW_LINARO is not set -CT_CC_GCC_V_6_3_0=y -# CT_CC_GCC_V_5_4_0 is not set -# CT_CC_GCC_V_4_9_4 is not set -CT_CC_GCC_4_8_or_later=y -CT_CC_GCC_4_9_or_later=y -CT_CC_GCC_5_or_later=y -CT_CC_GCC_6=y -CT_CC_GCC_6_or_later=y -CT_CC_GCC_HAS_LIBMPX=y -CT_CC_GCC_ENABLE_CXX_FLAGS="" -CT_CC_GCC_CORE_EXTRA_CONFIG_ARRAY="" -CT_CC_GCC_EXTRA_CONFIG_ARRAY="" -CT_CC_GCC_STATIC_LIBSTDCXX=y -# CT_CC_GCC_SYSTEM_ZLIB is not set -CT_CC_GCC_CONFIG_TLS=m - -# -# Optimisation features -# -CT_CC_GCC_USE_GRAPHITE=y -CT_CC_GCC_USE_LTO=y - -# -# Settings for libraries running on target -# -CT_CC_GCC_ENABLE_TARGET_OPTSPACE=y -# CT_CC_GCC_LIBMUDFLAP is not set -# CT_CC_GCC_LIBGOMP is not set -# CT_CC_GCC_LIBSSP is not set -# CT_CC_GCC_LIBQUADMATH is not set - -# -# Misc. obscure options. -# -CT_CC_CXA_ATEXIT=y -# CT_CC_GCC_DISABLE_PCH is not set -CT_CC_GCC_SJLJ_EXCEPTIONS=m -CT_CC_GCC_LDBL_128=m -# CT_CC_GCC_BUILD_ID is not set -CT_CC_GCC_LNK_HASH_STYLE_DEFAULT=y -# CT_CC_GCC_LNK_HASH_STYLE_SYSV is not set -# CT_CC_GCC_LNK_HASH_STYLE_GNU is not set -# CT_CC_GCC_LNK_HASH_STYLE_BOTH is not set -CT_CC_GCC_LNK_HASH_STYLE="" -CT_CC_GCC_DEC_FLOAT_AUTO=y -# CT_CC_GCC_DEC_FLOAT_BID is not set -# CT_CC_GCC_DEC_FLOAT_DPD is not set -# CT_CC_GCC_DEC_FLOATS_NO is not set -CT_CC_SUPPORT_CXX=y -CT_CC_SUPPORT_FORTRAN=y -CT_CC_SUPPORT_JAVA=y -CT_CC_SUPPORT_ADA=y -CT_CC_SUPPORT_OBJC=y -CT_CC_SUPPORT_OBJCXX=y -CT_CC_SUPPORT_GOLANG=y - -# -# Additional supported languages: -# -CT_CC_LANG_CXX=y -# CT_CC_LANG_FORTRAN is not set -# CT_CC_LANG_JAVA is not set -# CT_CC_LANG_ADA is not set -# CT_CC_LANG_OBJC is not set -# CT_CC_LANG_OBJCXX is not set -# CT_CC_LANG_GOLANG is not set -CT_CC_LANG_OTHERS="" - -# -# Debug facilities -# -CT_DEBUG_duma=y -CT_DUMA_SO=y -CT_DUMA_CUSTOM_WRAPPER=y -CT_DUMA_V_2_5_15=y -CT_DUMA_VERSION="2_5_15" -CT_DEBUG_gdb=y -CT_GDB_CROSS=y -# CT_GDB_CROSS_STATIC is not set -# CT_GDB_CROSS_SIM is not set -CT_GDB_CROSS_PYTHON=y -CT_GDB_CROSS_PYTHON_BINARY="" -CT_GDB_CROSS_EXTRA_CONFIG_ARRAY="" -# CT_GDB_NATIVE is not set -CT_GDB_GDBSERVER=y -CT_GDB_GDBSERVER_HAS_IPA_LIB=y -# CT_GDB_GDBSERVER_STATIC is not set -# CT_GDB_GDBSERVER_BUILD_IPA_LIB is not set - -# -# gdb version -# -# CT_GDB_CUSTOM is not set -CT_GDB_VERSION="7.12.1" -CT_GDB_V_7_12_1=y -# CT_GDB_V_7_11_1 is not set -CT_GDB_7_12_or_later=y -CT_GDB_7_2_or_later=y -CT_GDB_7_0_or_later=y -CT_GDB_HAS_PKGVERSION_BUGURL=y -CT_GDB_HAS_PYTHON=y -CT_GDB_INSTALL_GDBINIT=y -CT_DEBUG_ltrace=y -CT_LTRACE_V_0_7_3=y -CT_LTRACE_VERSION="0.7.3" -CT_DEBUG_strace=y -CT_STRACE_V_4_16=y -# CT_STRACE_V_4_15 is not set -CT_STRACE_VERSION="4.16" - -# -# Companion libraries -# -CT_COMPLIBS_NEEDED=y -CT_LIBICONV_NEEDED=y -CT_GETTEXT_NEEDED=y -CT_GMP_NEEDED=y -CT_MPFR_NEEDED=y -CT_ISL_NEEDED=y -CT_MPC_NEEDED=y -CT_EXPAT_NEEDED=y -CT_NCURSES_NEEDED=y -CT_COMPLIBS=y -CT_LIBICONV=y -CT_GETTEXT=y -CT_GMP=y -CT_MPFR=y -CT_ISL=y -CT_MPC=y -CT_LIBELF_TARGET=y -CT_EXPAT=y -CT_NCURSES=y -# CT_ZLIB is not set -CT_LIBICONV_V_1_15=y -# CT_LIBICONV_V_1_14 is not set -CT_LIBICONV_VERSION="1.15" -CT_GETTEXT_V_0_19_8_1=y -CT_GETTEXT_VERSION="0.19.8.1" -CT_GMP_V_6_1_2=y -CT_GMP_5_0_2_or_later=y -CT_GMP_VERSION="6.1.2" -CT_MPFR_V_3_1_5=y -CT_MPFR_VERSION="3.1.5" -# CT_ISL_V_0_18 is not set -# CT_ISL_V_0_17_1 is not set -CT_ISL_V_0_16_1=y -# CT_ISL_V_0_15 is not set -CT_ISL_V_0_16_or_later=y -CT_ISL_V_0_15_or_later=y -CT_ISL_V_0_14_or_later=y -CT_ISL_V_0_12_or_later=y -CT_ISL_VERSION="0.16.1" -CT_MPC_V_1_0_3=y -CT_MPC_VERSION="1.0.3" - -# -# libelf version needed to build for target -# -CT_LIBELF_V_0_8_13=y -CT_LIBELF_VERSION="0.8.13" -CT_EXPAT_V_2_2_0=y -CT_EXPAT_VERSION="2.2.0" -CT_NCURSES_V_6_0=y -CT_NCURSES_VERSION="6.0" -# CT_NCURSES_NEW_ABI is not set -CT_NCURSES_HOST_CONFIG_ARGS="" -CT_NCURSES_HOST_DISABLE_DB=y -CT_NCURSES_HOST_FALLBACKS="linux,xterm,xterm-color,xterm-256color,vt100" -CT_NCURSES_TARGET_CONFIG_ARGS="" -# CT_NCURSES_TARGET_DISABLE_DB is not set -CT_NCURSES_TARGET_FALLBACKS="" - -# -# Companion libraries common options -# -# CT_COMPLIBS_CHECK is not set - -# -# Companion tools -# -# CT_COMP_TOOLS_FOR_HOST is not set -CT_COMP_TOOLS_autoconf=y -CT_AUTOCONF_V_2_69=y -CT_AUTOCONF_VERSION="2.69" -CT_COMP_TOOLS_automake=y -CT_AUTOMAKE_V_1_15=y -CT_AUTOMAKE_VERSION="1.15" -CT_COMP_TOOLS_libtool=y -CT_LIBTOOL_V_2_4_6=y -CT_LIBTOOL_VERSION="2.4.6" -CT_COMP_TOOLS_m4=y -CT_M4_V_1_4_18=y -CT_M4_VERSION="1.4.18" -CT_COMP_TOOLS_make=y -CT_MAKE_V_4_2_1=y -# CT_MAKE_GMAKE_SYMLINK is not set -CT_MAKE_VERSION="4.2.1" - -# -# Test suite -# -# CT_TEST_SUITE_GCC is not set diff --git a/build-config/conf/crosstool/gcc-6.3.0/uClibc-ng-1.0.22/crosstool.powerpc-softfloat.config b/build-config/conf/crosstool/gcc-6.3.0/uClibc-ng-1.0.22/crosstool.powerpc-softfloat.config deleted file mode 100644 index 1bf141c61..000000000 --- a/build-config/conf/crosstool/gcc-6.3.0/uClibc-ng-1.0.22/crosstool.powerpc-softfloat.config +++ /dev/null @@ -1,558 +0,0 @@ -# -# Automatically generated file; DO NOT EDIT. -# Crosstool-NG Configuration -# -CT_CONFIGURE_has_static_link=y -CT_CONFIGURE_has_wget=y -CT_CONFIGURE_has_curl=y -CT_CONFIGURE_has_stat_flavor_GNU=y -CT_CONFIGURE_has_make_3_81_or_newer=y -CT_CONFIGURE_has_libtool_2_4_or_newer=y -CT_CONFIGURE_has_libtoolize_2_4_or_newer=y -CT_CONFIGURE_has_autoconf_2_63_or_newer=y -CT_CONFIGURE_has_autoreconf_2_63_or_newer=y -CT_CONFIGURE_has_gnu_m4_1_4_12_or_newer=y -CT_CONFIGURE_has_svn=y -CT_CONFIGURE_has_git=y -CT_MODULES=y - -# -# Paths and misc options -# - -# -# crosstool-NG behavior -# -# CT_OBSOLETE is not set -CT_EXPERIMENTAL=y -# CT_ALLOW_BUILD_AS_ROOT is not set -# CT_DEBUG_CT is not set - -# -# Paths -# -CT_LOCAL_TARBALLS_DIR="${DOWNLOADDIR}" -CT_SAVE_TARBALLS=y -CT_WORK_DIR="${CT_TOP_DIR}/build" -CT_BUILD_TOP_DIR="${CT_WORK_DIR}/${CT_HOST:+HOST-${CT_HOST}/}${CT_TARGET}" -CT_PREFIX_DIR="${XTOOLS_INSTALL_DIR}/${CT_TARGET}" -CT_RM_RF_PREFIX_DIR=y -CT_REMOVE_DOCS=y -CT_PREFIX_DIR_RO=y -CT_STRIP_HOST_TOOLCHAIN_EXECUTABLES=y -CT_STRIP_TARGET_TOOLCHAIN_EXECUTABLES=y - -# -# Downloading -# -# CT_DOWNLOAD_AGENT_WGET is not set -# CT_DOWNLOAD_AGENT_CURL is not set -CT_DOWNLOAD_AGENT_NONE=y -CT_FORBID_DOWNLOAD=y - -# -# Extracting -# -# CT_FORCE_EXTRACT is not set -CT_OVERRIDE_CONFIG_GUESS_SUB=y -# CT_ONLY_EXTRACT is not set -# CT_PATCH_BUNDLED is not set -# CT_PATCH_LOCAL is not set -# CT_PATCH_BUNDLED_LOCAL is not set -# CT_PATCH_LOCAL_BUNDLED is not set -CT_PATCH_BUNDLED_FALLBACK_LOCAL=y -# CT_PATCH_LOCAL_FALLBACK_BUNDLED is not set -# CT_PATCH_NONE is not set -CT_PATCH_ORDER="bundled,local" -CT_PATCH_SINGLE=y -CT_PATCH_USE_LOCAL=y -CT_LOCAL_PATCH_DIR="${CROSSTOOL_NG_LOCAL_PATCHDIR}" - -# -# Build behavior -# -CT_PARALLEL_JOBS=0 -CT_LOAD="" -CT_USE_PIPES=y -CT_EXTRA_CFLAGS_FOR_BUILD="" -CT_EXTRA_LDFLAGS_FOR_BUILD="" -CT_EXTRA_CFLAGS_FOR_HOST="" -CT_EXTRA_LDFLAGS_FOR_HOST="" -# CT_CONFIG_SHELL_SH is not set -# CT_CONFIG_SHELL_ASH is not set -CT_CONFIG_SHELL_BASH=y -# CT_CONFIG_SHELL_CUSTOM is not set -CT_CONFIG_SHELL="${bash}" - -# -# Logging -# -# CT_LOG_ERROR is not set -# CT_LOG_WARN is not set -CT_LOG_INFO=y -# CT_LOG_EXTRA is not set -# CT_LOG_ALL is not set -# CT_LOG_DEBUG is not set -CT_LOG_LEVEL_MAX="INFO" -# CT_LOG_SEE_TOOLS_WARN is not set -# CT_LOG_PROGRESS_BAR is not set -CT_LOG_TO_FILE=y -CT_LOG_FILE_COMPRESS=y - -# -# Target options -# -CT_ARCH="powerpc" -# CT_ARCH_alpha is not set -# CT_ARCH_arm is not set -# CT_ARCH_avr is not set -# CT_ARCH_m68k is not set -# CT_ARCH_microblaze is not set -# CT_ARCH_mips is not set -# CT_ARCH_nios2 is not set -CT_ARCH_powerpc=y -# CT_ARCH_s390 is not set -# CT_ARCH_sh is not set -# CT_ARCH_sparc is not set -# CT_ARCH_x86 is not set -# CT_ARCH_xtensa is not set -CT_ARCH_alpha_AVAILABLE=y -CT_ARCH_arm_AVAILABLE=y -CT_ARCH_avr_AVAILABLE=y -CT_ARCH_m68k_AVAILABLE=y -CT_ARCH_microblaze_AVAILABLE=y -CT_ARCH_mips_AVAILABLE=y -CT_ARCH_nios2_AVAILABLE=y -CT_ARCH_powerpc_AVAILABLE=y -CT_ARCH_s390_AVAILABLE=y -CT_ARCH_sh_AVAILABLE=y -CT_ARCH_sparc_AVAILABLE=y -CT_ARCH_x86_AVAILABLE=y -CT_ARCH_xtensa_AVAILABLE=y -CT_ARCH_SUFFIX="" - -# -# Generic target options -# -# CT_MULTILIB is not set -CT_DEMULTILIB=y -CT_ARCH_USE_MMU=y -CT_ARCH_SUPPORTS_BOTH_ENDIAN=y -CT_ARCH_DEFAULT_BE=y -CT_ARCH_BE=y -# CT_ARCH_LE is not set -CT_ARCH_ENDIAN="big" -CT_ARCH_SUPPORTS_32=y -CT_ARCH_SUPPORTS_64=y -CT_ARCH_DEFAULT_32=y -CT_ARCH_BITNESS=32 -CT_ARCH_32=y -# CT_ARCH_64 is not set - -# -# Target optimisations -# -CT_ARCH_SUPPORTS_WITH_ABI=y -CT_ARCH_SUPPORTS_WITH_CPU=y -CT_ARCH_SUPPORTS_WITH_TUNE=y -CT_ARCH_SUPPORTS_WITH_FLOAT=y -CT_ARCH_ABI="" -CT_ARCH_CPU="" -CT_ARCH_TUNE="" -# CT_ARCH_FLOAT_AUTO is not set -# CT_ARCH_FLOAT_HW is not set -CT_ARCH_FLOAT_SW=y -CT_TARGET_CFLAGS="" -CT_TARGET_LDFLAGS="" -CT_ARCH_FLOAT="soft" - -# -# powerpc other options -# -CT_ARCH_powerpc_ABI="" -CT_ARCH_powerpc_ABI_DEFAULT=y -# CT_ARCH_powerpc_ABI_SPE is not set - -# -# Toolchain options -# - -# -# General toolchain options -# -CT_FORCE_SYSROOT=y -CT_USE_SYSROOT=y -CT_SYSROOT_NAME="sysroot" -CT_SYSROOT_DIR_PREFIX="" -CT_WANTS_STATIC_LINK=y -CT_WANTS_STATIC_LINK_CXX=y -# CT_STATIC_TOOLCHAIN is not set -CT_TOOLCHAIN_PKGVERSION="ONIE-${LSB_RELEASE_TAG}" -CT_TOOLCHAIN_BUGURL="" - -# -# Tuple completion and aliasing -# -CT_TARGET_VENDOR="onie" -CT_TARGET_ALIAS_SED_EXPR="" -CT_TARGET_ALIAS="powerpc-softfloat" - -# -# Toolchain type -# -# CT_NATIVE is not set -CT_CROSS=y -# CT_CROSS_NATIVE is not set -# CT_CANADIAN is not set -CT_TOOLCHAIN_TYPE="cross" - -# -# Build system -# -CT_BUILD="" -CT_BUILD_PREFIX="" -CT_BUILD_SUFFIX="" - -# -# Misc options -# -CT_TOOLCHAIN_ENABLE_NLS=y - -# -# Operating System -# -CT_KERNEL_SUPPORTS_SHARED_LIBS=y -CT_KERNEL="linux" -CT_KERNEL_VERSION="${LINUX_RELEASE}" -# CT_KERNEL_bare_metal is not set -CT_KERNEL_linux=y -CT_KERNEL_bare_metal_AVAILABLE=y -CT_KERNEL_linux_AVAILABLE=y -CT_KERNEL_LINUX_CUSTOM=y -CT_KERNEL_LINUX_CUSTOM_LOCATION="${DOWNLOADDIR}/${LINUX_TARBALL}" -CT_KERNEL_LINUX_CUSTOM_VERSION="${LINUX_RELEASE}" -CT_KERNEL_windows_AVAILABLE=y - -# -# Common kernel options -# -CT_SHARED_LIBS=y - -# -# linux other options -# -CT_KERNEL_LINUX_VERBOSITY_0=y -# CT_KERNEL_LINUX_VERBOSITY_1 is not set -# CT_KERNEL_LINUX_VERBOSITY_2 is not set -CT_KERNEL_LINUX_VERBOSE_LEVEL=0 -CT_KERNEL_LINUX_INSTALL_CHECK=y - -# -# Binary utilities -# -CT_ARCH_BINFMT_ELF=y -CT_BINUTILS="binutils" -CT_BINUTILS_binutils=y - -# -# GNU binutils -# -# CT_BINUTILS_CUSTOM is not set -CT_BINUTILS_VERSION="2.28" -# CT_BINUTILS_SHOW_LINARO is not set -CT_BINUTILS_V_2_28=y -# CT_BINUTILS_V_2_27 is not set -# CT_BINUTILS_V_2_26 is not set -CT_BINUTILS_2_27_or_later=y -CT_BINUTILS_2_26_or_later=y -CT_BINUTILS_2_25_1_or_later=y -CT_BINUTILS_2_25_or_later=y -CT_BINUTILS_2_24_or_later=y -CT_BINUTILS_2_23_2_or_later=y -CT_BINUTILS_HAS_HASH_STYLE=y -CT_BINUTILS_HAS_GOLD=y -CT_BINUTILS_HAS_PLUGINS=y -CT_BINUTILS_HAS_PKGVERSION_BUGURL=y -CT_BINUTILS_LINKER_LD=y -CT_BINUTILS_LINKERS_LIST="ld" -CT_BINUTILS_LINKER_DEFAULT="bfd" -# CT_BINUTILS_PLUGINS is not set -CT_BINUTILS_EXTRA_CONFIG_ARRAY="--enable-64-bit-bfd" -CT_BINUTILS_FOR_TARGET=y -CT_BINUTILS_FOR_TARGET_IBERTY=y -CT_BINUTILS_FOR_TARGET_BFD=y - -# -# binutils other options -# - -# -# C-library -# -CT_LIBC="uClibc" -CT_LIBC_VERSION="1.0.22" -# CT_LIBC_glibc is not set -# CT_LIBC_musl is not set -CT_LIBC_uClibc=y -CT_LIBC_avr_libc_AVAILABLE=y -CT_LIBC_glibc_AVAILABLE=y -CT_THREADS="nptl" -CT_LIBC_mingw_AVAILABLE=y -CT_LIBC_musl_AVAILABLE=y -CT_LIBC_newlib_AVAILABLE=y -CT_LIBC_none_AVAILABLE=y -CT_LIBC_uClibc_AVAILABLE=y -# CT_LIBC_UCLIBC_CUSTOM is not set -CT_LIBC_UCLIBC_NG_V_1_0_22=y -CT_LIBC_UCLIBC_NG_1_0_15_or_later=y -CT_LIBC_UCLIBC_NG_1_0_0_or_later=y -CT_LIBC_UCLIBC_0_9_33_2_or_later=y -CT_LIBC_UCLIBC_PARALLEL=y -CT_LIBC_UCLIBC_NG=y -CT_LIBC_UCLIBC_VERBOSITY_0=y -# CT_LIBC_UCLIBC_VERBOSITY_1 is not set -# CT_LIBC_UCLIBC_VERBOSITY_2 is not set -CT_LIBC_UCLIBC_VERBOSITY="" -CT_LIBC_UCLIBC_DEBUG_LEVEL_0=y -# CT_LIBC_UCLIBC_DEBUG_LEVEL_1 is not set -# CT_LIBC_UCLIBC_DEBUG_LEVEL_2 is not set -# CT_LIBC_UCLIBC_DEBUG_LEVEL_3 is not set -CT_LIBC_UCLIBC_DEBUG_LEVEL=0 -CT_LIBC_UCLIBC_CONFIG_FILE="${UCLIBC_CONFIG}" -CT_LIBC_SUPPORT_THREADS_ANY=y -CT_LIBC_SUPPORT_THREADS_NATIVE=y -CT_LIBC_SUPPORT_THREADS_LT=y -CT_LIBC_SUPPORT_THREADS_NONE=y - -# -# Common C library options -# -CT_THREADS_NATIVE=y -# CT_THREADS_LT is not set -# CT_THREADS_NONE is not set -# CT_CREATE_LDSO_CONF is not set -CT_LIBC_XLDD=y - -# -# uClibc other options -# -CT_LIBC_UCLIBC_LNXTHRD="" -# CT_LIBC_UCLIBC_LOCALES is not set -CT_LIBC_UCLIBC_IPV6=y -CT_LIBC_UCLIBC_WCHAR=y -CT_LIBC_UCLIBC_FENV=y -# CT_LIBC_UCLIBC_RPC is not set - -# -# C compiler -# -CT_CC="gcc" -CT_CC_CORE_PASSES_NEEDED=y -CT_CC_CORE_PASS_1_NEEDED=y -CT_CC_CORE_PASS_2_NEEDED=y -CT_CC_gcc=y -# CT_CC_GCC_CUSTOM is not set -CT_CC_GCC_VERSION="6.3.0" -# CT_CC_GCC_SHOW_LINARO is not set -CT_CC_GCC_V_6_3_0=y -# CT_CC_GCC_V_5_4_0 is not set -# CT_CC_GCC_V_4_9_4 is not set -CT_CC_GCC_4_8_or_later=y -CT_CC_GCC_4_9_or_later=y -CT_CC_GCC_5_or_later=y -CT_CC_GCC_6=y -CT_CC_GCC_6_or_later=y -CT_CC_GCC_HAS_LIBMPX=y -CT_CC_GCC_ENABLE_CXX_FLAGS="" -CT_CC_GCC_CORE_EXTRA_CONFIG_ARRAY="" -CT_CC_GCC_EXTRA_CONFIG_ARRAY="--enable-targets=powerpc64" -CT_CC_GCC_STATIC_LIBSTDCXX=y -# CT_CC_GCC_SYSTEM_ZLIB is not set -CT_CC_GCC_CONFIG_TLS=m - -# -# Optimisation features -# -CT_CC_GCC_USE_GRAPHITE=y -CT_CC_GCC_USE_LTO=y - -# -# Settings for libraries running on target -# -CT_CC_GCC_ENABLE_TARGET_OPTSPACE=y -# CT_CC_GCC_LIBMUDFLAP is not set -# CT_CC_GCC_LIBGOMP is not set -# CT_CC_GCC_LIBSSP is not set -# CT_CC_GCC_LIBQUADMATH is not set - -# -# Misc. obscure options. -# -CT_CC_CXA_ATEXIT=y -# CT_CC_GCC_DISABLE_PCH is not set -CT_CC_GCC_SJLJ_EXCEPTIONS=m -CT_CC_GCC_LDBL_128=m -# CT_CC_GCC_BUILD_ID is not set -CT_CC_GCC_LNK_HASH_STYLE_DEFAULT=y -# CT_CC_GCC_LNK_HASH_STYLE_SYSV is not set -# CT_CC_GCC_LNK_HASH_STYLE_GNU is not set -# CT_CC_GCC_LNK_HASH_STYLE_BOTH is not set -CT_CC_GCC_LNK_HASH_STYLE="" -CT_CC_GCC_DEC_FLOAT_AUTO=y -# CT_CC_GCC_DEC_FLOAT_BID is not set -# CT_CC_GCC_DEC_FLOAT_DPD is not set -# CT_CC_GCC_DEC_FLOATS_NO is not set -CT_CC_SUPPORT_CXX=y -CT_CC_SUPPORT_FORTRAN=y -CT_CC_SUPPORT_JAVA=y -CT_CC_SUPPORT_ADA=y -CT_CC_SUPPORT_OBJC=y -CT_CC_SUPPORT_OBJCXX=y -CT_CC_SUPPORT_GOLANG=y - -# -# Additional supported languages: -# -CT_CC_LANG_CXX=y -# CT_CC_LANG_FORTRAN is not set -# CT_CC_LANG_JAVA is not set -# CT_CC_LANG_ADA is not set -# CT_CC_LANG_OBJC is not set -# CT_CC_LANG_OBJCXX is not set -# CT_CC_LANG_GOLANG is not set -CT_CC_LANG_OTHERS="" - -# -# Debug facilities -# -CT_DEBUG_duma=y -CT_DUMA_SO=y -CT_DUMA_CUSTOM_WRAPPER=y -CT_DUMA_V_2_5_15=y -CT_DUMA_VERSION="2_5_15" -CT_DEBUG_gdb=y -CT_GDB_CROSS=y -# CT_GDB_CROSS_STATIC is not set -# CT_GDB_CROSS_SIM is not set -CT_GDB_CROSS_PYTHON=y -CT_GDB_CROSS_PYTHON_BINARY="" -CT_GDB_CROSS_EXTRA_CONFIG_ARRAY="" -# CT_GDB_NATIVE is not set -CT_GDB_GDBSERVER=y -CT_GDB_GDBSERVER_HAS_IPA_LIB=y -# CT_GDB_GDBSERVER_STATIC is not set -# CT_GDB_GDBSERVER_BUILD_IPA_LIB is not set - -# -# gdb version -# -# CT_GDB_CUSTOM is not set -CT_GDB_VERSION="7.12.1" -CT_GDB_V_7_12_1=y -# CT_GDB_V_7_11_1 is not set -CT_GDB_7_12_or_later=y -CT_GDB_7_2_or_later=y -CT_GDB_7_0_or_later=y -CT_GDB_HAS_PKGVERSION_BUGURL=y -CT_GDB_HAS_PYTHON=y -CT_GDB_INSTALL_GDBINIT=y -CT_DEBUG_ltrace=y -CT_LTRACE_V_0_7_3=y -CT_LTRACE_VERSION="0.7.3" -CT_DEBUG_strace=y -CT_STRACE_V_4_16=y -# CT_STRACE_V_4_15 is not set -CT_STRACE_VERSION="4.16" - -# -# Companion libraries -# -CT_COMPLIBS_NEEDED=y -CT_LIBICONV_NEEDED=y -CT_GETTEXT_NEEDED=y -CT_GMP_NEEDED=y -CT_MPFR_NEEDED=y -CT_ISL_NEEDED=y -CT_MPC_NEEDED=y -CT_EXPAT_NEEDED=y -CT_NCURSES_NEEDED=y -CT_COMPLIBS=y -CT_LIBICONV=y -CT_GETTEXT=y -CT_GMP=y -CT_MPFR=y -CT_ISL=y -CT_MPC=y -CT_LIBELF_TARGET=y -CT_EXPAT=y -CT_NCURSES=y -# CT_ZLIB is not set -CT_LIBICONV_V_1_15=y -# CT_LIBICONV_V_1_14 is not set -CT_LIBICONV_VERSION="1.15" -CT_GETTEXT_V_0_19_8_1=y -CT_GETTEXT_VERSION="0.19.8.1" -CT_GMP_V_6_1_2=y -CT_GMP_5_0_2_or_later=y -CT_GMP_VERSION="6.1.2" -CT_MPFR_V_3_1_5=y -CT_MPFR_VERSION="3.1.5" -# CT_ISL_V_0_18 is not set -# CT_ISL_V_0_17_1 is not set -CT_ISL_V_0_16_1=y -# CT_ISL_V_0_15 is not set -CT_ISL_V_0_16_or_later=y -CT_ISL_V_0_15_or_later=y -CT_ISL_V_0_14_or_later=y -CT_ISL_V_0_12_or_later=y -CT_ISL_VERSION="0.16.1" -CT_MPC_V_1_0_3=y -CT_MPC_VERSION="1.0.3" - -# -# libelf version needed to build for target -# -CT_LIBELF_V_0_8_13=y -CT_LIBELF_VERSION="0.8.13" -CT_EXPAT_V_2_2_0=y -CT_EXPAT_VERSION="2.2.0" -CT_NCURSES_V_6_0=y -CT_NCURSES_VERSION="6.0" -# CT_NCURSES_NEW_ABI is not set -CT_NCURSES_HOST_CONFIG_ARGS="" -CT_NCURSES_HOST_DISABLE_DB=y -CT_NCURSES_HOST_FALLBACKS="linux,xterm,xterm-color,xterm-256color,vt100" -CT_NCURSES_TARGET_CONFIG_ARGS="" -# CT_NCURSES_TARGET_DISABLE_DB is not set -CT_NCURSES_TARGET_FALLBACKS="" - -# -# Companion libraries common options -# -# CT_COMPLIBS_CHECK is not set - -# -# Companion tools -# -# CT_COMP_TOOLS_FOR_HOST is not set -CT_COMP_TOOLS_autoconf=y -CT_AUTOCONF_V_2_69=y -CT_AUTOCONF_VERSION="2.69" -CT_COMP_TOOLS_automake=y -CT_AUTOMAKE_V_1_15=y -CT_AUTOMAKE_VERSION="1.15" -CT_COMP_TOOLS_libtool=y -CT_LIBTOOL_V_2_4_6=y -CT_LIBTOOL_VERSION="2.4.6" -CT_COMP_TOOLS_m4=y -CT_M4_V_1_4_18=y -CT_M4_VERSION="1.4.18" -CT_COMP_TOOLS_make=y -CT_MAKE_V_4_2_1=y -# CT_MAKE_GMAKE_SYMLINK is not set -CT_MAKE_VERSION="4.2.1" - -# -# Test suite -# -# CT_TEST_SUITE_GCC is not set diff --git a/build-config/conf/crosstool/gcc-6.3.0/uClibc-ng-1.0.22/crosstool.x86_64.config b/build-config/conf/crosstool/gcc-6.3.0/uClibc-ng-1.0.22/crosstool.x86_64.config deleted file mode 100644 index 5cd3dcde6..000000000 --- a/build-config/conf/crosstool/gcc-6.3.0/uClibc-ng-1.0.22/crosstool.x86_64.config +++ /dev/null @@ -1,525 +0,0 @@ -# -# Automatically generated file; DO NOT EDIT. -# Crosstool-NG Configuration -# -CT_CONFIGURE_has_static_link=y -CT_CONFIGURE_has_wget=y -CT_CONFIGURE_has_curl=y -CT_CONFIGURE_has_stat_flavor_GNU=y -CT_CONFIGURE_has_make_3_81_or_newer=y -CT_CONFIGURE_has_libtool_2_4_or_newer=y -CT_CONFIGURE_has_libtoolize_2_4_or_newer=y -CT_CONFIGURE_has_autoconf_2_63_or_newer=y -CT_CONFIGURE_has_autoreconf_2_63_or_newer=y -CT_CONFIGURE_has_gnu_m4_1_4_12_or_newer=y -CT_CONFIGURE_has_svn=y -CT_CONFIGURE_has_git=y -CT_MODULES=y - -# -# Paths and misc options -# - -# -# crosstool-NG behavior -# -# CT_OBSOLETE is not set -# CT_EXPERIMENTAL is not set -# CT_DEBUG_CT is not set - -# -# Paths -# -CT_LOCAL_TARBALLS_DIR="${DOWNLOADDIR}" -CT_SAVE_TARBALLS=y -CT_WORK_DIR="${CT_TOP_DIR}/build" -CT_BUILD_TOP_DIR="${CT_WORK_DIR}/${CT_HOST:+HOST-${CT_HOST}/}${CT_TARGET}" -CT_PREFIX_DIR="${XTOOLS_INSTALL_DIR}/${CT_TARGET}" -CT_RM_RF_PREFIX_DIR=y -CT_REMOVE_DOCS=y -CT_PREFIX_DIR_RO=y -CT_STRIP_HOST_TOOLCHAIN_EXECUTABLES=y -CT_STRIP_TARGET_TOOLCHAIN_EXECUTABLES=y - -# -# Downloading -# -# CT_DOWNLOAD_AGENT_WGET is not set -# CT_DOWNLOAD_AGENT_CURL is not set -CT_DOWNLOAD_AGENT_NONE=y -CT_FORBID_DOWNLOAD=y - -# -# Extracting -# -# CT_FORCE_EXTRACT is not set -CT_OVERRIDE_CONFIG_GUESS_SUB=y -# CT_ONLY_EXTRACT is not set -# CT_PATCH_BUNDLED is not set -# CT_PATCH_LOCAL is not set -# CT_PATCH_BUNDLED_LOCAL is not set -# CT_PATCH_LOCAL_BUNDLED is not set -CT_PATCH_BUNDLED_FALLBACK_LOCAL=y -# CT_PATCH_LOCAL_FALLBACK_BUNDLED is not set -# CT_PATCH_NONE is not set -CT_PATCH_ORDER="bundled,local" -CT_PATCH_SINGLE=y -CT_PATCH_USE_LOCAL=y -CT_LOCAL_PATCH_DIR="${CROSSTOOL_NG_LOCAL_PATCHDIR}" - -# -# Build behavior -# -CT_PARALLEL_JOBS=0 -CT_LOAD="" -CT_USE_PIPES=y -CT_EXTRA_CFLAGS_FOR_BUILD="" -CT_EXTRA_LDFLAGS_FOR_BUILD="" -CT_EXTRA_CFLAGS_FOR_HOST="" -CT_EXTRA_LDFLAGS_FOR_HOST="" -# CT_CONFIG_SHELL_SH is not set -# CT_CONFIG_SHELL_ASH is not set -CT_CONFIG_SHELL_BASH=y -# CT_CONFIG_SHELL_CUSTOM is not set -CT_CONFIG_SHELL="${bash}" - -# -# Logging -# -# CT_LOG_ERROR is not set -# CT_LOG_WARN is not set -CT_LOG_INFO=y -# CT_LOG_EXTRA is not set -# CT_LOG_ALL is not set -# CT_LOG_DEBUG is not set -CT_LOG_LEVEL_MAX="INFO" -# CT_LOG_SEE_TOOLS_WARN is not set -# CT_LOG_PROGRESS_BAR is not set -CT_LOG_TO_FILE=y -CT_LOG_FILE_COMPRESS=y - -# -# Target options -# -CT_ARCH="x86" -# CT_ARCH_alpha is not set -# CT_ARCH_arm is not set -# CT_ARCH_avr is not set -# CT_ARCH_m68k is not set -# CT_ARCH_mips is not set -# CT_ARCH_nios2 is not set -# CT_ARCH_powerpc is not set -# CT_ARCH_s390 is not set -# CT_ARCH_sh is not set -# CT_ARCH_sparc is not set -CT_ARCH_x86=y -# CT_ARCH_xtensa is not set -CT_ARCH_alpha_AVAILABLE=y -CT_ARCH_arm_AVAILABLE=y -CT_ARCH_avr_AVAILABLE=y -CT_ARCH_m68k_AVAILABLE=y -CT_ARCH_microblaze_AVAILABLE=y -CT_ARCH_mips_AVAILABLE=y -CT_ARCH_nios2_AVAILABLE=y -CT_ARCH_powerpc_AVAILABLE=y -CT_ARCH_s390_AVAILABLE=y -CT_ARCH_sh_AVAILABLE=y -CT_ARCH_sparc_AVAILABLE=y -CT_ARCH_x86_AVAILABLE=y -CT_ARCH_xtensa_AVAILABLE=y -CT_ARCH_SUFFIX="" - -# -# Generic target options -# -# CT_MULTILIB is not set -CT_DEMULTILIB=y -CT_ARCH_USE_MMU=y -CT_ARCH_SUPPORTS_32=y -CT_ARCH_SUPPORTS_64=y -CT_ARCH_DEFAULT_32=y -CT_ARCH_BITNESS=64 -# CT_ARCH_32 is not set -CT_ARCH_64=y - -# -# Target optimisations -# -CT_ARCH_SUPPORTS_WITH_ARCH=y -CT_ARCH_SUPPORTS_WITH_CPU=y -CT_ARCH_SUPPORTS_WITH_TUNE=y -CT_ARCH_ARCH="" -CT_ARCH_CPU="" -CT_ARCH_TUNE="" -CT_TARGET_CFLAGS="" -CT_TARGET_LDFLAGS="" -CT_ARCH_FLOAT="" - -# -# Toolchain options -# - -# -# General toolchain options -# -CT_FORCE_SYSROOT=y -CT_USE_SYSROOT=y -CT_SYSROOT_NAME="sysroot" -CT_SYSROOT_DIR_PREFIX="" -CT_WANTS_STATIC_LINK=y -CT_WANTS_STATIC_LINK_CXX=y -# CT_STATIC_TOOLCHAIN is not set -CT_TOOLCHAIN_PKGVERSION="ONIE-${LSB_RELEASE_TAG}" -CT_TOOLCHAIN_BUGURL="" - -# -# Tuple completion and aliasing -# -CT_TARGET_VENDOR="onie" -CT_TARGET_ALIAS_SED_EXPR="" -CT_TARGET_ALIAS="x86_64" - -# -# Toolchain type -# -CT_CROSS=y -# CT_CANADIAN is not set -CT_TOOLCHAIN_TYPE="cross" - -# -# Build system -# -CT_BUILD="" -CT_BUILD_PREFIX="" -CT_BUILD_SUFFIX="" - -# -# Misc options -# -CT_TOOLCHAIN_ENABLE_NLS=y - -# -# Operating System -# -CT_KERNEL_SUPPORTS_SHARED_LIBS=y -CT_KERNEL="linux" -CT_KERNEL_VERSION="${LINUX_RELEASE}" -# CT_KERNEL_bare_metal is not set -CT_KERNEL_linux=y -CT_KERNEL_bare_metal_AVAILABLE=y -CT_KERNEL_linux_AVAILABLE=y -CT_KERNEL_LINUX_CUSTOM=y -CT_KERNEL_LINUX_CUSTOM_LOCATION="${DOWNLOADDIR}/${LINUX_TARBALL}" -CT_KERNEL_LINUX_CUSTOM_VERSION="${LINUX_RELEASE}" -CT_KERNEL_windows_AVAILABLE=y - -# -# Common kernel options -# -CT_SHARED_LIBS=y - -# -# linux other options -# -CT_KERNEL_LINUX_VERBOSITY_0=y -# CT_KERNEL_LINUX_VERBOSITY_1 is not set -# CT_KERNEL_LINUX_VERBOSITY_2 is not set -CT_KERNEL_LINUX_VERBOSE_LEVEL=0 -CT_KERNEL_LINUX_INSTALL_CHECK=y - -# -# Binary utilities -# -CT_ARCH_BINFMT_ELF=y -CT_BINUTILS="binutils" -CT_BINUTILS_binutils=y - -# -# GNU binutils -# -CT_BINUTILS_VERSION="2.28" -# CT_BINUTILS_SHOW_LINARO is not set -CT_BINUTILS_V_2_28=y -# CT_BINUTILS_V_2_27 is not set -# CT_BINUTILS_V_2_26 is not set -CT_BINUTILS_2_27_or_later=y -CT_BINUTILS_2_26_or_later=y -CT_BINUTILS_2_25_1_or_later=y -CT_BINUTILS_2_25_or_later=y -CT_BINUTILS_2_24_or_later=y -CT_BINUTILS_2_23_2_or_later=y -CT_BINUTILS_HAS_HASH_STYLE=y -CT_BINUTILS_HAS_GOLD=y -CT_BINUTILS_GOLD_SUPPORTS_ARCH=y -CT_BINUTILS_GOLD_SUPPORT=y -CT_BINUTILS_HAS_PLUGINS=y -CT_BINUTILS_HAS_PKGVERSION_BUGURL=y -CT_BINUTILS_LINKER_LD=y -# CT_BINUTILS_LINKER_GOLD is not set -# CT_BINUTILS_LINKER_LD_GOLD is not set -# CT_BINUTILS_LINKER_GOLD_LD is not set -CT_BINUTILS_LINKERS_LIST="ld" -CT_BINUTILS_LINKER_DEFAULT="bfd" -# CT_BINUTILS_PLUGINS is not set -CT_BINUTILS_EXTRA_CONFIG_ARRAY="" -CT_BINUTILS_FOR_TARGET=y -CT_BINUTILS_FOR_TARGET_IBERTY=y -CT_BINUTILS_FOR_TARGET_BFD=y - -# -# binutils other options -# - -# -# C-library -# -CT_LIBC="uClibc" -CT_LIBC_VERSION="1.0.22" -# CT_LIBC_glibc is not set -CT_LIBC_uClibc=y -CT_LIBC_avr_libc_AVAILABLE=y -CT_LIBC_glibc_AVAILABLE=y -CT_THREADS="nptl" -CT_LIBC_mingw_AVAILABLE=y -CT_LIBC_musl_AVAILABLE=y -CT_LIBC_newlib_AVAILABLE=y -CT_LIBC_none_AVAILABLE=y -CT_LIBC_uClibc_AVAILABLE=y -CT_LIBC_UCLIBC_NG_V_1_0_22=y -CT_LIBC_UCLIBC_NG_1_0_15_or_later=y -CT_LIBC_UCLIBC_NG_1_0_0_or_later=y -CT_LIBC_UCLIBC_0_9_33_2_or_later=y -CT_LIBC_UCLIBC_PARALLEL=y -CT_LIBC_UCLIBC_NG=y -CT_LIBC_UCLIBC_VERBOSITY_0=y -# CT_LIBC_UCLIBC_VERBOSITY_1 is not set -# CT_LIBC_UCLIBC_VERBOSITY_2 is not set -CT_LIBC_UCLIBC_VERBOSITY="" -CT_LIBC_UCLIBC_DEBUG_LEVEL_0=y -# CT_LIBC_UCLIBC_DEBUG_LEVEL_1 is not set -# CT_LIBC_UCLIBC_DEBUG_LEVEL_2 is not set -# CT_LIBC_UCLIBC_DEBUG_LEVEL_3 is not set -CT_LIBC_UCLIBC_DEBUG_LEVEL=0 -CT_LIBC_UCLIBC_CONFIG_FILE="${UCLIBC_CONFIG}" -CT_LIBC_SUPPORT_THREADS_ANY=y -CT_LIBC_SUPPORT_THREADS_NATIVE=y -CT_LIBC_SUPPORT_THREADS_LT=y -CT_LIBC_SUPPORT_THREADS_NONE=y - -# -# Common C library options -# -CT_THREADS_NATIVE=y -# CT_THREADS_LT is not set -# CT_THREADS_NONE is not set -# CT_CREATE_LDSO_CONF is not set -CT_LIBC_XLDD=y - -# -# uClibc other options -# -CT_LIBC_UCLIBC_LNXTHRD="" -# CT_LIBC_UCLIBC_LOCALES is not set -CT_LIBC_UCLIBC_IPV6=y -CT_LIBC_UCLIBC_WCHAR=y -CT_LIBC_UCLIBC_FENV=y -# CT_LIBC_UCLIBC_RPC is not set - -# -# C compiler -# -CT_CC="gcc" -CT_CC_CORE_PASSES_NEEDED=y -CT_CC_CORE_PASS_1_NEEDED=y -CT_CC_CORE_PASS_2_NEEDED=y -CT_CC_gcc=y -CT_CC_GCC_VERSION="6.3.0" -# CT_CC_GCC_SHOW_LINARO is not set -CT_CC_GCC_V_6_3_0=y -# CT_CC_GCC_V_5_4_0 is not set -# CT_CC_GCC_V_4_9_4 is not set -CT_CC_GCC_4_8_or_later=y -CT_CC_GCC_4_9_or_later=y -CT_CC_GCC_5_or_later=y -CT_CC_GCC_6=y -CT_CC_GCC_6_or_later=y -CT_CC_GCC_HAS_LIBMPX=y -CT_CC_GCC_ENABLE_CXX_FLAGS="" -CT_CC_GCC_CORE_EXTRA_CONFIG_ARRAY="" -CT_CC_GCC_EXTRA_CONFIG_ARRAY="" -CT_CC_GCC_STATIC_LIBSTDCXX=y -# CT_CC_GCC_SYSTEM_ZLIB is not set -CT_CC_GCC_CONFIG_TLS=m - -# -# Optimisation features -# -CT_CC_GCC_USE_GRAPHITE=y -CT_CC_GCC_USE_LTO=y - -# -# Settings for libraries running on target -# -CT_CC_GCC_ENABLE_TARGET_OPTSPACE=y -# CT_CC_GCC_LIBMUDFLAP is not set -# CT_CC_GCC_LIBGOMP is not set -# CT_CC_GCC_LIBSSP is not set -# CT_CC_GCC_LIBQUADMATH is not set -# CT_CC_GCC_LIBMPX is not set - -# -# Misc. obscure options. -# -CT_CC_CXA_ATEXIT=y -# CT_CC_GCC_DISABLE_PCH is not set -CT_CC_GCC_SJLJ_EXCEPTIONS=m -CT_CC_GCC_LDBL_128=m -# CT_CC_GCC_BUILD_ID is not set -CT_CC_GCC_LNK_HASH_STYLE_DEFAULT=y -# CT_CC_GCC_LNK_HASH_STYLE_SYSV is not set -# CT_CC_GCC_LNK_HASH_STYLE_GNU is not set -# CT_CC_GCC_LNK_HASH_STYLE_BOTH is not set -CT_CC_GCC_LNK_HASH_STYLE="" -CT_CC_GCC_DEC_FLOAT_AUTO=y -# CT_CC_GCC_DEC_FLOAT_BID is not set -# CT_CC_GCC_DEC_FLOAT_DPD is not set -# CT_CC_GCC_DEC_FLOATS_NO is not set -CT_CC_SUPPORT_CXX=y -CT_CC_SUPPORT_FORTRAN=y -CT_CC_SUPPORT_JAVA=y -CT_CC_SUPPORT_ADA=y -CT_CC_SUPPORT_OBJC=y -CT_CC_SUPPORT_OBJCXX=y -CT_CC_SUPPORT_GOLANG=y - -# -# Additional supported languages: -# -CT_CC_LANG_CXX=y -# CT_CC_LANG_FORTRAN is not set -# CT_CC_LANG_JAVA is not set - -# -# Debug facilities -# -CT_DEBUG_duma=y -CT_DUMA_SO=y -CT_DUMA_CUSTOM_WRAPPER=y -CT_DUMA_V_2_5_15=y -CT_DUMA_VERSION="2_5_15" -CT_DEBUG_gdb=y -CT_GDB_CROSS=y -# CT_GDB_CROSS_STATIC is not set -# CT_GDB_CROSS_SIM is not set -CT_GDB_CROSS_PYTHON=y -CT_GDB_CROSS_PYTHON_BINARY="" -CT_GDB_CROSS_EXTRA_CONFIG_ARRAY="" -# CT_GDB_NATIVE is not set -CT_GDB_GDBSERVER=y -CT_GDB_GDBSERVER_HAS_IPA_LIB=y -CT_GDB_GDBSERVER_BUILD_IPA_LIB=y - -# -# gdb version -# -CT_GDB_VERSION="7.12.1" -CT_GDB_V_7_12_1=y -# CT_GDB_V_7_11_1 is not set -CT_GDB_7_12_or_later=y -CT_GDB_7_2_or_later=y -CT_GDB_7_0_or_later=y -CT_GDB_HAS_PKGVERSION_BUGURL=y -CT_GDB_HAS_PYTHON=y -CT_GDB_INSTALL_GDBINIT=y -CT_DEBUG_ltrace=y -CT_LTRACE_V_0_7_3=y -CT_LTRACE_VERSION="0.7.3" -CT_DEBUG_strace=y -CT_STRACE_V_4_16=y -# CT_STRACE_V_4_15 is not set -CT_STRACE_VERSION="4.16" - -# -# Companion libraries -# -CT_COMPLIBS_NEEDED=y -CT_LIBICONV_NEEDED=y -CT_GETTEXT_NEEDED=y -CT_GMP_NEEDED=y -CT_MPFR_NEEDED=y -CT_ISL_NEEDED=y -CT_MPC_NEEDED=y -CT_EXPAT_NEEDED=y -CT_NCURSES_NEEDED=y -CT_COMPLIBS=y -CT_LIBICONV=y -CT_GETTEXT=y -CT_GMP=y -CT_MPFR=y -CT_ISL=y -CT_MPC=y -CT_LIBELF_TARGET=y -CT_EXPAT=y -CT_NCURSES=y -# CT_ZLIB is not set -CT_LIBICONV_V_1_15=y -# CT_LIBICONV_V_1_14 is not set -CT_LIBICONV_VERSION="1.15" -CT_GETTEXT_V_0_19_8_1=y -CT_GETTEXT_VERSION="0.19.8.1" -CT_GMP_V_6_1_2=y -CT_GMP_5_0_2_or_later=y -CT_GMP_VERSION="6.1.2" -CT_MPFR_V_3_1_5=y -CT_MPFR_VERSION="3.1.5" -CT_ISL_V_0_16_1=y -# CT_ISL_V_0_15 is not set -CT_ISL_V_0_16_or_later=y -CT_ISL_V_0_15_or_later=y -CT_ISL_V_0_14_or_later=y -CT_ISL_V_0_12_or_later=y -CT_ISL_VERSION="0.16.1" -CT_MPC_V_1_0_3=y -CT_MPC_VERSION="1.0.3" - -# -# libelf version needed to build for target -# -CT_LIBELF_V_0_8_13=y -CT_LIBELF_VERSION="0.8.13" -CT_EXPAT_V_2_2_0=y -CT_EXPAT_VERSION="2.2.0" -CT_NCURSES_V_6_0=y -CT_NCURSES_VERSION="6.0" -CT_NCURSES_HOST_CONFIG_ARGS="" -CT_NCURSES_HOST_DISABLE_DB=y -CT_NCURSES_HOST_FALLBACKS="linux,xterm,xterm-color,xterm-256color,vt100" -CT_NCURSES_TARGET_CONFIG_ARGS="" -# CT_NCURSES_TARGET_DISABLE_DB is not set -CT_NCURSES_TARGET_FALLBACKS="" - -# -# Companion libraries common options -# -# CT_COMPLIBS_CHECK is not set - -# -# Companion tools -# -# CT_COMP_TOOLS_FOR_HOST is not set -CT_COMP_TOOLS_autoconf=y -CT_AUTOCONF_V_2_69=y -CT_AUTOCONF_VERSION="2.69" -CT_COMP_TOOLS_automake=y -CT_AUTOMAKE_V_1_15=y -CT_AUTOMAKE_VERSION="1.15" -CT_COMP_TOOLS_libtool=y -CT_LIBTOOL_V_2_4_6=y -CT_LIBTOOL_VERSION="2.4.6" -CT_COMP_TOOLS_m4=y -CT_M4_V_1_4_18=y -CT_M4_VERSION="1.4.18" -CT_COMP_TOOLS_make=y -CT_MAKE_V_4_2_1=y -# CT_MAKE_GMAKE_SYMLINK is not set -CT_MAKE_VERSION="4.2.1" diff --git a/build-config/conf/crosstool/gcc-8.3.0/glibc-2.29/crosstool.armv8a.config b/build-config/conf/crosstool/gcc-8.3.0/glibc-2.29/crosstool.armv8a.config deleted file mode 100644 index 950b7ac74..000000000 --- a/build-config/conf/crosstool/gcc-8.3.0/glibc-2.29/crosstool.armv8a.config +++ /dev/null @@ -1,780 +0,0 @@ -# -# Automatically generated file; DO NOT EDIT. -# crosstool-NG Configuration -# -# So, to edit this, you'll be updating xtools.make to set the -# version numbers of components that it "can't download from the internet." -# to pre-download them. -# To update this file to begin with: -# 1 - Copy it over the .config crosstool-ng is using. Note that compiler -# and glibc (not uclibc, as non-x86 builds do it differently) will vary -# depending on the versions being used. Point is, put the config in -# there as .config -# cp ./conf/crosstool/gcc-8.3.0/glibc-2.34/crosstool.armv8a.config ../build/x-tools/armv8a-g8.3.0-lnx5.4.86-glibc-2.34/build/.config -# -# 2 - cd to the crosstool-ng build directory: -# cd ../build/x-tools/armv8a-g8.3.0-lnx5.4.86-glibc-2.34/build/ -# -# 3 - run 'ct-ng oldconfig' to update it. Be prepared to answer a bunch of -# questions about new features. -# ../../../crosstool-ng/crosstool-ng-1.24.0/ct-ng oldconfig -# -# 4 - once you're done being interrogated, replace the config you want to upgrade -# with the freshly created .config file -# cp .config ../../../../build-config/conf/crosstool/gcc-8.3.0/glibc-2.34/crosstool.armv8a.config -# -# 5 - Then you'll be fine-tuning the corrected .cfg, and updating new versions of compoennts in xtools.make -# -# TIPS -# Do not set CT_GLIBC_EXTRA_CFLAGS =y - this adds the y to CT_ALL_TARGET_CFLAGS used in glibc.sh conmpiler --version config and breaks compiler detection. -# -CT_CONFIGURE_has_static_link=y -CT_CONFIGURE_has_cxx11=y -CT_CONFIGURE_has_wget=y -CT_CONFIGURE_has_curl=y -CT_CONFIGURE_has_make_3_81_or_newer=y -CT_CONFIGURE_has_make_4_0_or_newer=y -CT_CONFIGURE_has_libtool_2_4_or_newer=y -CT_CONFIGURE_has_libtoolize_2_4_or_newer=y -CT_CONFIGURE_has_autoconf_2_65_or_newer=y -CT_CONFIGURE_has_autoreconf_2_65_or_newer=y -CT_CONFIGURE_has_automake_1_15_or_newer=y -CT_CONFIGURE_has_gnu_m4_1_4_12_or_newer=y -CT_CONFIGURE_has_python_3_4_or_newer=y -CT_CONFIGURE_has_bison_2_7_or_newer=y -CT_CONFIGURE_has_python=y -CT_CONFIGURE_has_dtc=y -CT_CONFIGURE_has_git=y -CT_CONFIGURE_has_md5sum=y -CT_CONFIGURE_has_sha1sum=y -CT_CONFIGURE_has_sha256sum=y -CT_CONFIGURE_has_sha512sum=y -CT_CONFIGURE_has_install_with_strip_program=y -CT_CONFIG_VERSION_CURRENT="3" -CT_CONFIG_VERSION="3" -CT_MODULES=y - -# -# Paths and misc options -# - -# -# crosstool-NG behavior -# -# CT_OBSOLETE is not set -# CT_EXPERIMENTAL is not set -# CT_DEBUG_CT is not set - -# -# Paths -# -CT_LOCAL_TARBALLS_DIR="${DOWNLOADDIR}" -CT_SAVE_TARBALLS=y -CT_TARBALLS_BUILDROOT_LAYOUT=y -CT_WORK_DIR="${CT_TOP_DIR}/build" -CT_BUILD_TOP_DIR="${CT_WORK_DIR:-${CT_TOP_DIR}/.build}/${CT_HOST:+HOST-${CT_HOST}/}${CT_TARGET}" -CT_PREFIX_DIR="${XTOOLS_INSTALL_DIR}/${CT_TARGET}" -CT_RM_RF_PREFIX_DIR=y -CT_REMOVE_DOCS=y -CT_INSTALL_LICENSES=y -CT_PREFIX_DIR_RO=y -CT_STRIP_HOST_TOOLCHAIN_EXECUTABLES=y -CT_STRIP_TARGET_TOOLCHAIN_EXECUTABLES=y - -# -# Downloading -# -# CT_DOWNLOAD_AGENT_WGET is not set -# CT_DOWNLOAD_AGENT_CURL is not set -CT_DOWNLOAD_AGENT_NONE=y -CT_FORBID_DOWNLOAD=y - -# -# Extracting -# -# CT_FORCE_EXTRACT is not set -CT_OVERRIDE_CONFIG_GUESS_SUB=y -# CT_ONLY_EXTRACT is not set -CT_PATCH_BUNDLED=y -# CT_PATCH_BUNDLED_LOCAL is not set -CT_PATCH_ORDER="bundled" - -# -# Build behavior -# -CT_PARALLEL_JOBS=0 -CT_LOAD="" -CT_USE_PIPES=y -CT_EXTRA_CFLAGS_FOR_BUILD="" -CT_EXTRA_LDFLAGS_FOR_BUILD="" -CT_EXTRA_CFLAGS_FOR_HOST="" -CT_EXTRA_LDFLAGS_FOR_HOST="" -# CT_CONFIG_SHELL_SH is not set -# CT_CONFIG_SHELL_ASH is not set -CT_CONFIG_SHELL_BASH=y -# CT_CONFIG_SHELL_CUSTOM is not set -CT_CONFIG_SHELL="${bash}" - -# -# Logging -# -# CT_LOG_ERROR is not set -# CT_LOG_WARN is not set -CT_LOG_INFO=y -# CT_LOG_EXTRA is not set -# CT_LOG_ALL is not set -# CT_LOG_DEBUG is not set -CT_LOG_LEVEL_MAX="INFO" -# CT_LOG_SEE_TOOLS_WARN is not set -# CT_LOG_PROGRESS_BAR is not set -CT_LOG_TO_FILE=y -CT_LOG_FILE_COMPRESS=y - -# -# Target options -# -# CT_ARCH_ALPHA is not set -# CT_ARCH_ARC is not set -CT_ARCH_ARM=y -# CT_ARCH_AVR is not set -# CT_ARCH_M68K is not set -# CT_ARCH_MIPS is not set -# CT_ARCH_NIOS2 is not set -# CT_ARCH_POWERPC is not set -# CT_ARCH_S390 is not set -# CT_ARCH_SH is not set -# CT_ARCH_SPARC is not set -# CT_ARCH_X86 is not set -# CT_ARCH_XTENSA is not set -CT_ARCH="arm" -CT_ARCH_CHOICE_KSYM="ARM" -CT_ARCH_CPU="" -CT_ARCH_TUNE="" -CT_ARCH_ARM_SHOW=y - -# -# Options for arm -# -CT_ARCH_ARM_PKG_KSYM="" -CT_ALL_ARCH_CHOICES="ALPHA ARC ARM AVR M68K MICROBLAZE MIPS MOXIE MSP430 NIOS2 POWERPC RISCV S390 SH SPARC X86 XTENSA" -CT_ARCH_SUFFIX="" -# CT_OMIT_TARGET_VENDOR is not set - -# -# Generic target options -# -# CT_MULTILIB is not set -CT_DEMULTILIB=y -CT_ARCH_SUPPORTS_BOTH_MMU=y -CT_ARCH_DEFAULT_HAS_MMU=y -CT_ARCH_USE_MMU=y -CT_ARCH_SUPPORTS_FLAT_FORMAT=y -CT_ARCH_SUPPORTS_EITHER_ENDIAN=y -CT_ARCH_DEFAULT_LE=y -# CT_ARCH_BE is not set -CT_ARCH_LE=y -CT_ARCH_ENDIAN="little" -CT_ARCH_SUPPORTS_32=y -CT_ARCH_SUPPORTS_64=y -CT_ARCH_DEFAULT_32=y -CT_ARCH_BITNESS=64 -# CT_ARCH_32 is not set -CT_ARCH_64=y - -# -# Target optimisations -# -CT_ARCH_SUPPORTS_WITH_ARCH=y -CT_ARCH_SUPPORTS_WITH_CPU=y -CT_ARCH_SUPPORTS_WITH_TUNE=y -CT_ARCH_EXCLUSIVE_WITH_CPU=y -CT_ARCH_ARCH="" -CT_TARGET_CFLAGS="" -CT_TARGET_LDFLAGS="" - -# -# Toolchain options -# - -# -# General toolchain options -# -CT_FORCE_SYSROOT=y -CT_USE_SYSROOT=y -CT_SYSROOT_NAME="sysroot" -CT_SYSROOT_DIR_PREFIX="" -CT_WANTS_STATIC_LINK=y -CT_WANTS_STATIC_LINK_CXX=y -# CT_STATIC_TOOLCHAIN is not set -CT_SHOW_CT_VERSION=y -CT_TOOLCHAIN_PKGVERSION="ONIE-${LSB_RELEASE_TAG}" -CT_TOOLCHAIN_BUGURL="" - -# -# Tuple completion and aliasing -# -CT_TARGET_VENDOR="onie" -CT_TARGET_ALIAS_SED_EXPR="" -CT_TARGET_ALIAS="x86_64" - -# -# Toolchain type -# -CT_CROSS=y -# CT_CANADIAN is not set -CT_TOOLCHAIN_TYPE="cross" - -# -# Build system -# -CT_BUILD="" -CT_BUILD_PREFIX="" -CT_BUILD_SUFFIX="" - -# -# Misc options -# -CT_TOOLCHAIN_ENABLE_NLS=y - -# -# Operating System -# -CT_KERNEL_SUPPORTS_SHARED_LIBS=y -# CT_KERNEL_BARE_METAL is not set -CT_KERNEL_LINUX=y -CT_KERNEL="linux" -CT_KERNEL_CHOICE_KSYM="LINUX" -CT_KERNEL_LINUX_SHOW=y - -# -# Options for linux -# -CT_KERNEL_LINUX_PKG_KSYM="LINUX" -CT_LINUX_DIR_NAME="linux" -CT_LINUX_PKG_NAME="linux" -CT_LINUX_SRC_RELEASE=y -CT_LINUX_PATCH_ORDER="global" -# CT_LINUX_V_4_20 is not set -# CT_LINUX_V_4_19 is not set -# CT_LINUX_V_4_18 is not set -# CT_LINUX_V_4_17 is not set -# CT_LINUX_V_4_16 is not set -# CT_LINUX_V_4_15 is not set -# CT_LINUX_V_4_14 is not set -# CT_LINUX_V_4_13 is not set -# CT_LINUX_V_4_12 is not set -# CT_LINUX_V_4_11 is not set -# CT_LINUX_V_4_10 is not set -# CT_LINUX_V_4_9 is not set -# CT_LINUX_V_4_4 is not set -# CT_LINUX_V_4_1 is not set -# CT_LINUX_V_3_16 is not set -# CT_LINUX_V_3_13 is not set -# CT_LINUX_V_3_12 is not set -# CT_LINUX_V_3_10 is not set -# CT_LINUX_NO_VERSIONS is not set -CT_LINUX_VERSION="ONIE set by xtools.make" -CT_LINUX_MIRRORS="$(CT_Mirrors kernel.org linux ${CT_LINUX_VERSION})" -CT_LINUX_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_LINUX_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_LINUX_ARCHIVE_FORMATS=".tar.xz .tar.gz" -CT_LINUX_SIGNATURE_FORMAT="unpacked/.sign" -CT_LINUX_later_than_4_8=y -CT_LINUX_4_8_or_later=y -CT_LINUX_later_than_3_7=y -CT_LINUX_3_7_or_later=y -CT_LINUX_REQUIRE_3_7_or_later=y -CT_LINUX_later_than_3_2=y -CT_LINUX_3_2_or_later=y -CT_LINUX_REQUIRE_3_2_or_later=y -CT_KERNEL_LINUX_VERBOSITY_0=y -# CT_KERNEL_LINUX_VERBOSITY_1 is not set -# CT_KERNEL_LINUX_VERBOSITY_2 is not set -CT_KERNEL_LINUX_VERBOSE_LEVEL=0 -CT_KERNEL_LINUX_INSTALL_CHECK=y -CT_ALL_KERNEL_CHOICES="BARE_METAL LINUX WINDOWS" - -# -# Common kernel options -# -CT_SHARED_LIBS=y - -# -# Binary utilities -# -CT_ARCH_BINFMT_ELF=y -CT_BINUTILS_BINUTILS=y -CT_BINUTILS="binutils" -CT_BINUTILS_CHOICE_KSYM="BINUTILS" -CT_BINUTILS_BINUTILS_SHOW=y - -# -# Options for binutils -# -CT_BINUTILS_BINUTILS_PKG_KSYM="BINUTILS" -CT_BINUTILS_DIR_NAME="binutils" -CT_BINUTILS_USE_GNU=y -CT_BINUTILS_USE="BINUTILS" -CT_BINUTILS_PKG_NAME="binutils" -CT_BINUTILS_SRC_RELEASE=y -CT_BINUTILS_PATCH_ORDER="global" -CT_BINUTILS_V_2_32=y -# CT_BINUTILS_V_2_31 is not set -# CT_BINUTILS_V_2_30 is not set -# CT_BINUTILS_V_2_29 is not set -# CT_BINUTILS_V_2_28 is not set -# CT_BINUTILS_V_2_27 is not set -# CT_BINUTILS_V_2_26 is not set -# CT_BINUTILS_NO_VERSIONS is not set -CT_BINUTILS_VERSION="2.32" -CT_BINUTILS_MIRRORS="$(CT_Mirrors GNU binutils) $(CT_Mirrors sourceware binutils/releases)" -CT_BINUTILS_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_BINUTILS_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_BINUTILS_ARCHIVE_FORMATS=".tar.xz .tar.bz2 .tar.gz" -CT_BINUTILS_SIGNATURE_FORMAT="packed/.sig" -CT_BINUTILS_later_than_2_30=y -CT_BINUTILS_2_30_or_later=y -CT_BINUTILS_later_than_2_27=y -CT_BINUTILS_2_27_or_later=y -CT_BINUTILS_later_than_2_25=y -CT_BINUTILS_2_25_or_later=y -CT_BINUTILS_REQUIRE_2_25_or_later=y -CT_BINUTILS_later_than_2_23=y -CT_BINUTILS_2_23_or_later=y - -# -# GNU binutils -# -CT_BINUTILS_HAS_HASH_STYLE=y -CT_BINUTILS_HAS_GOLD=y -CT_BINUTILS_HAS_PLUGINS=y -CT_BINUTILS_HAS_PKGVERSION_BUGURL=y -CT_BINUTILS_GOLD_SUPPORTS_ARCH=y -CT_BINUTILS_GOLD_SUPPORT=y -CT_BINUTILS_FORCE_LD_BFD_DEFAULT=y -CT_BINUTILS_LINKER_LD=y -# CT_BINUTILS_LINKER_LD_GOLD is not set -CT_BINUTILS_LINKERS_LIST="ld" -CT_BINUTILS_LINKER_DEFAULT="bfd" -# CT_BINUTILS_PLUGINS is not set -CT_BINUTILS_RELRO=y -CT_BINUTILS_EXTRA_CONFIG_ARRAY="" -CT_BINUTILS_FOR_TARGET=y -CT_BINUTILS_FOR_TARGET_IBERTY=y -CT_BINUTILS_FOR_TARGET_BFD=y -CT_ALL_BINUTILS_CHOICES="BINUTILS" - -# -# C-library -# -CT_LIBC_GLIBC=y -# CT_LIBC_UCLIBC is not set -CT_LIBC="glibc" -CT_LIBC_CHOICE_KSYM="GLIBC" -CT_THREADS="nptl" -CT_LIBC_GLIBC_SHOW=y - -# -# Options for glibc -# -CT_LIBC_GLIBC_PKG_KSYM="GLIBC" -CT_GLIBC_DIR_NAME="glibc" -CT_GLIBC_USE_GNU=y -CT_GLIBC_USE="GLIBC" -CT_GLIBC_PKG_NAME="glibc" -CT_GLIBC_SRC_RELEASE=y -CT_GLIBC_PATCH_ORDER="global" -CT_GLIBC_V_2_29=y -# CT_GLIBC_V_2_28 is not set -# CT_GLIBC_V_2_27 is not set -# CT_GLIBC_V_2_26 is not set -# CT_GLIBC_V_2_25 is not set -# CT_GLIBC_V_2_24 is not set -# CT_GLIBC_V_2_23 is not set -# CT_GLIBC_V_2_19 is not set -# CT_GLIBC_V_2_17 is not set -# CT_GLIBC_V_2_12_1 is not set -# CT_GLIBC_NO_VERSIONS is not set -CT_GLIBC_VERSION="2.29" -CT_GLIBC_MIRRORS="$(CT_Mirrors GNU glibc)" -CT_GLIBC_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_GLIBC_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_GLIBC_ARCHIVE_FORMATS=".tar.xz .tar.bz2 .tar.gz" -CT_GLIBC_SIGNATURE_FORMAT="packed/.sig" -CT_GLIBC_2_29_or_later=y -CT_GLIBC_2_29_or_older=y -CT_GLIBC_later_than_2_27=y -CT_GLIBC_2_27_or_later=y -CT_GLIBC_later_than_2_26=y -CT_GLIBC_2_26_or_later=y -CT_GLIBC_later_than_2_25=y -CT_GLIBC_2_25_or_later=y -CT_GLIBC_later_than_2_24=y -CT_GLIBC_2_24_or_later=y -CT_GLIBC_later_than_2_23=y -CT_GLIBC_2_23_or_later=y -CT_GLIBC_later_than_2_20=y -CT_GLIBC_2_20_or_later=y -CT_GLIBC_later_than_2_17=y -CT_GLIBC_2_17_or_later=y -CT_GLIBC_later_than_2_14=y -CT_GLIBC_2_14_or_later=y -CT_GLIBC_DEP_KERNEL_HEADERS_VERSION=y -CT_GLIBC_DEP_BINUTILS=y -CT_GLIBC_DEP_GCC=y -CT_GLIBC_DEP_PYTHON=y -CT_GLIBC_BUILD_SSP=y -CT_GLIBC_HAS_LIBIDN_ADDON=y -CT_GLIBC_USE_LIBIDN_ADDON=y -CT_GLIBC_NO_SPARC_V8=y -CT_GLIBC_HAS_OBSOLETE_RPC=y -CT_GLIBC_EXTRA_CONFIG_ARRAY="y" -#CT_GLIBC_CONFIGPARMS is not set -#CT_GLIBC_EXTRA_CFLAGS is not set -CT_GLIBC_ENABLE_OBSOLETE_RPC=y -# CT_GLIBC_DISABLE_VERSIONING is not set -CT_GLIBC_OLDEST_ABI="" -CT_GLIBC_FORCE_UNWIND=y -# CT_GLIBC_LOCALES is not set -# CT_GLIBC_KERNEL_VERSION_NONE is not set -CT_GLIBC_KERNEL_VERSION_AS_HEADERS=y -# CT_GLIBC_KERNEL_VERSION_CHOSEN is not set -CT_GLIBC_MIN_KERNEL="4.20.8" -CT_GLIBC_SSP_DEFAULT=y -# CT_GLIBC_SSP_NO is not set -# CT_GLIBC_SSP_YES is not set -# CT_GLIBC_SSP_ALL is not set -# CT_GLIBC_SSP_STRONG is not set -# CT_GLIBC_ENABLE_WERROR is not set -CT_ALL_LIBC_CHOICES="AVR_LIBC BIONIC GLIBC MINGW_W64 MOXIEBOX MUSL NEWLIB NONE UCLIBC" -CT_LIBC_SUPPORT_THREADS_ANY=y -CT_LIBC_SUPPORT_THREADS_NATIVE=y - -# -# Common C library options -# -CT_THREADS_NATIVE=y -# CT_CREATE_LDSO_CONF is not set -CT_LIBC_XLDD=y - -# -# C compiler -# -CT_CC_CORE_PASSES_NEEDED=y -CT_CC_CORE_PASS_1_NEEDED=y -CT_CC_CORE_PASS_2_NEEDED=y -CT_CC_SUPPORT_CXX=y -CT_CC_SUPPORT_FORTRAN=y -CT_CC_SUPPORT_ADA=y -CT_CC_SUPPORT_OBJC=y -CT_CC_SUPPORT_OBJCXX=y -CT_CC_SUPPORT_GOLANG=y -CT_CC_GCC=y -CT_CC="gcc" -CT_CC_CHOICE_KSYM="GCC" -CT_CC_GCC_SHOW=y - -# -# Options for gcc -# -CT_CC_GCC_PKG_KSYM="GCC" -CT_GCC_DIR_NAME="gcc" -CT_GCC_USE_GNU=y -CT_GCC_USE="GCC" -CT_GCC_PKG_NAME="gcc" -CT_GCC_SRC_RELEASE=y -CT_GCC_PATCH_ORDER="global" -CT_GCC_V_8=y -# CT_GCC_V_7 is not set -# CT_GCC_V_6 is not set -# CT_GCC_V_5 is not set -# CT_GCC_NO_VERSIONS is not set -CT_GCC_VERSION="8.3.0" -CT_GCC_MIRRORS="$(CT_Mirrors GNU gcc/gcc-${CT_GCC_VERSION}) $(CT_Mirrors sourceware gcc/releases/gcc-${CT_GCC_VERSION})" -CT_GCC_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_GCC_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_GCC_ARCHIVE_FORMATS=".tar.xz .tar.gz" -CT_GCC_SIGNATURE_FORMAT="" -CT_GCC_later_than_7=y -CT_GCC_7_or_later=y -CT_GCC_later_than_6=y -CT_GCC_6_or_later=y -CT_GCC_later_than_5=y -CT_GCC_5_or_later=y -CT_GCC_REQUIRE_5_or_later=y -CT_GCC_later_than_4_9=y -CT_GCC_4_9_or_later=y -CT_GCC_REQUIRE_4_9_or_later=y -CT_GCC_later_than_4_8=y -CT_GCC_4_8_or_later=y -CT_CC_GCC_HAS_LIBMPX=y -CT_CC_GCC_ENABLE_CXX_FLAGS="" -CT_CC_GCC_CORE_EXTRA_CONFIG_ARRAY="" -CT_CC_GCC_EXTRA_CONFIG_ARRAY="" -CT_CC_GCC_MULTILIB_LIST="" -CT_CC_GCC_STATIC_LIBSTDCXX=y -# CT_CC_GCC_SYSTEM_ZLIB is not set -CT_CC_GCC_CONFIG_TLS=m - -# -# Optimisation features -# -CT_CC_GCC_USE_GRAPHITE=y -CT_CC_GCC_USE_LTO=y - -# -# Settings for libraries running on target -# -CT_CC_GCC_ENABLE_TARGET_OPTSPACE=y -# CT_CC_GCC_LIBMUDFLAP is not set -# CT_CC_GCC_LIBGOMP is not set -# CT_CC_GCC_LIBSSP is not set -# CT_CC_GCC_LIBQUADMATH is not set -# CT_CC_GCC_LIBSANITIZER is not set - -# -# Misc. obscure options. -# -CT_CC_CXA_ATEXIT=y -# CT_CC_GCC_DISABLE_PCH is not set -CT_CC_GCC_SJLJ_EXCEPTIONS=m -CT_CC_GCC_LDBL_128=m -# CT_CC_GCC_BUILD_ID is not set -CT_CC_GCC_LNK_HASH_STYLE_DEFAULT=y -# CT_CC_GCC_LNK_HASH_STYLE_SYSV is not set -# CT_CC_GCC_LNK_HASH_STYLE_GNU is not set -# CT_CC_GCC_LNK_HASH_STYLE_BOTH is not set -CT_CC_GCC_LNK_HASH_STYLE="" -CT_CC_GCC_DEC_FLOAT_AUTO=y -# CT_CC_GCC_DEC_FLOAT_BID is not set -# CT_CC_GCC_DEC_FLOAT_DPD is not set -# CT_CC_GCC_DEC_FLOATS_NO is not set -CT_ALL_CC_CHOICES="GCC" - -# -# Additional supported languages: -# -CT_CC_LANG_CXX=y -# CT_CC_LANG_FORTRAN is not set - -# -# Debug facilities -# -# CT_DEBUG_DUMA is not set -# CT_DEBUG_GDB is not set -# CT_DEBUG_LTRACE is not set -CT_DEBUG_STRACE=y -CT_DEBUG_STRACE_PKG_KSYM="STRACE" -CT_STRACE_DIR_NAME="strace" -CT_STRACE_PKG_NAME="strace" -CT_STRACE_SRC_RELEASE=y -CT_STRACE_PATCH_ORDER="global" -CT_STRACE_V_4_26=y -# CT_STRACE_V_4_25 is not set -# CT_STRACE_V_4_24 is not set -# CT_STRACE_V_4_23 is not set -# CT_STRACE_V_4_22 is not set -# CT_STRACE_V_4_21 is not set -# CT_STRACE_V_4_20 is not set -# CT_STRACE_V_4_19 is not set -# CT_STRACE_V_4_18 is not set -# CT_STRACE_V_4_17 is not set -# CT_STRACE_V_4_16 is not set -# CT_STRACE_V_4_15 is not set -# CT_STRACE_NO_VERSIONS is not set -CT_STRACE_VERSION="4.26" -CT_STRACE_MIRRORS="https://strace.io/files/${CT_STRACE_VERSION}" -CT_STRACE_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_STRACE_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_STRACE_ARCHIVE_FORMATS=".tar.xz" -CT_STRACE_SIGNATURE_FORMAT="" -CT_ALL_DEBUG_CHOICES="DUMA GDB LTRACE STRACE" - -# -# Companion libraries -# -# CT_COMPLIBS_CHECK is not set -# CT_COMP_LIBS_CLOOG is not set -# CT_COMP_LIBS_EXPAT is not set -CT_COMP_LIBS_GETTEXT=y -CT_COMP_LIBS_GETTEXT_PKG_KSYM="GETTEXT" -CT_GETTEXT_DIR_NAME="gettext" -CT_GETTEXT_PKG_NAME="gettext" -CT_GETTEXT_SRC_RELEASE=y -CT_GETTEXT_PATCH_ORDER="global" -CT_GETTEXT_V_0_19_8_1=y -# CT_GETTEXT_NO_VERSIONS is not set -CT_GETTEXT_VERSION="0.19.8.1" -CT_GETTEXT_MIRRORS="$(CT_Mirrors GNU gettext)" -CT_GETTEXT_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_GETTEXT_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_GETTEXT_ARCHIVE_FORMATS=".tar.xz .tar.lz .tar.gz" -CT_GETTEXT_SIGNATURE_FORMAT="packed/.sig" -CT_COMP_LIBS_GMP=y -CT_COMP_LIBS_GMP_PKG_KSYM="GMP" -CT_GMP_DIR_NAME="gmp" -CT_GMP_PKG_NAME="gmp" -CT_GMP_SRC_RELEASE=y -CT_GMP_PATCH_ORDER="global" -CT_GMP_V_6_1=y -# CT_GMP_NO_VERSIONS is not set -CT_GMP_VERSION="6.1.2" -CT_GMP_MIRRORS="https://gmplib.org/download/gmp https://gmplib.org/download/gmp/archive $(CT_Mirrors GNU gmp)" -CT_GMP_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_GMP_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_GMP_ARCHIVE_FORMATS=".tar.xz .tar.lz .tar.bz2" -CT_GMP_SIGNATURE_FORMAT="packed/.sig" -CT_GMP_later_than_5_1_0=y -CT_GMP_5_1_0_or_later=y -CT_GMP_later_than_5_0_0=y -CT_GMP_5_0_0_or_later=y -CT_GMP_REQUIRE_5_0_0_or_later=y -CT_COMP_LIBS_ISL=y -CT_COMP_LIBS_ISL_PKG_KSYM="ISL" -CT_ISL_DIR_NAME="isl" -CT_ISL_PKG_NAME="isl" -CT_ISL_SRC_RELEASE=y -CT_ISL_PATCH_ORDER="global" -CT_ISL_V_0_20=y -# CT_ISL_V_0_19 is not set -# CT_ISL_V_0_18 is not set -# CT_ISL_V_0_17 is not set -# CT_ISL_V_0_16 is not set -# CT_ISL_V_0_15 is not set -# CT_ISL_NO_VERSIONS is not set -CT_ISL_VERSION="0.20" -CT_ISL_MIRRORS="http://isl.gforge.inria.fr" -CT_ISL_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_ISL_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_ISL_ARCHIVE_FORMATS=".tar.xz .tar.bz2 .tar.gz" -CT_ISL_SIGNATURE_FORMAT="" -CT_ISL_later_than_0_18=y -CT_ISL_0_18_or_later=y -CT_ISL_later_than_0_15=y -CT_ISL_0_15_or_later=y -CT_ISL_REQUIRE_0_15_or_later=y -CT_ISL_later_than_0_14=y -CT_ISL_0_14_or_later=y -CT_ISL_REQUIRE_0_14_or_later=y -CT_ISL_later_than_0_13=y -CT_ISL_0_13_or_later=y -CT_ISL_later_than_0_12=y -CT_ISL_0_12_or_later=y -CT_ISL_REQUIRE_0_12_or_later=y -# CT_COMP_LIBS_LIBELF is not set -CT_COMP_LIBS_LIBICONV=y -CT_COMP_LIBS_LIBICONV_PKG_KSYM="LIBICONV" -CT_LIBICONV_DIR_NAME="libiconv" -CT_LIBICONV_PKG_NAME="libiconv" -CT_LIBICONV_SRC_RELEASE=y -CT_LIBICONV_PATCH_ORDER="global" -CT_LIBICONV_V_1_15=y -# CT_LIBICONV_NO_VERSIONS is not set -CT_LIBICONV_VERSION="1.15" -CT_LIBICONV_MIRRORS="$(CT_Mirrors GNU libiconv)" -CT_LIBICONV_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_LIBICONV_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_LIBICONV_ARCHIVE_FORMATS=".tar.gz" -CT_LIBICONV_SIGNATURE_FORMAT="packed/.sig" -CT_COMP_LIBS_MPC=y -CT_COMP_LIBS_MPC_PKG_KSYM="MPC" -CT_MPC_DIR_NAME="mpc" -CT_MPC_PKG_NAME="mpc" -CT_MPC_SRC_RELEASE=y -CT_MPC_PATCH_ORDER="global" -CT_MPC_V_1_1=y -# CT_MPC_V_1_0 is not set -# CT_MPC_NO_VERSIONS is not set -CT_MPC_VERSION="1.1.0" -CT_MPC_MIRRORS="http://www.multiprecision.org/downloads $(CT_Mirrors GNU mpc)" -CT_MPC_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_MPC_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_MPC_ARCHIVE_FORMATS=".tar.gz" -CT_MPC_SIGNATURE_FORMAT="packed/.sig" -CT_MPC_1_1_0_or_later=y -CT_MPC_1_1_0_or_older=y -CT_COMP_LIBS_MPFR=y -CT_COMP_LIBS_MPFR_PKG_KSYM="MPFR" -CT_MPFR_DIR_NAME="mpfr" -CT_MPFR_PKG_NAME="mpfr" -CT_MPFR_SRC_RELEASE=y -CT_MPFR_PATCH_ORDER="global" -CT_MPFR_V_4_1=y -# CT_MPFR_V_3_1 is not set -# CT_MPFR_NO_VERSIONS is not set -CT_MPFR_VERSION="4.1.0" -CT_MPFR_MIRRORS="http://www.mpfr.org/mpfr-${CT_MPFR_VERSION} $(CT_Mirrors GNU mpfr)" -CT_MPFR_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_MPFR_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_MPFR_ARCHIVE_FORMATS=".tar.xz .tar.bz2 .tar.gz .zip" -CT_MPFR_SIGNATURE_FORMAT="packed/.asc" -CT_MPFR_later_than_4_0_0=y -CT_MPFR_4_0_0_or_later=y -CT_MPFR_later_than_3_0_0=y -CT_MPFR_3_0_0_or_later=y -CT_MPFR_REQUIRE_3_0_0_or_later=y -CT_COMP_LIBS_NCURSES=y -CT_COMP_LIBS_NCURSES_PKG_KSYM="NCURSES" -CT_NCURSES_DIR_NAME="ncurses" -CT_NCURSES_PKG_NAME="ncurses" -CT_NCURSES_SRC_RELEASE=y -CT_NCURSES_PATCH_ORDER="global" -# CT_NCURSES_V_6_1 is not set -CT_NCURSES_V_6_0=y -# CT_NCURSES_NO_VERSIONS is not set -CT_NCURSES_VERSION="6.0" -CT_NCURSES_MIRRORS="ftp://invisible-island.net/ncurses $(CT_Mirrors GNU ncurses)" -CT_NCURSES_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_NCURSES_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_NCURSES_ARCHIVE_FORMATS=".tar.gz" -CT_NCURSES_SIGNATURE_FORMAT="packed/.sig" -CT_NCURSES_HOST_CONFIG_ARGS="" -CT_NCURSES_HOST_DISABLE_DB=y -CT_NCURSES_HOST_FALLBACKS="linux,xterm,xterm-color,xterm-256color,vt100" -CT_NCURSES_TARGET_CONFIG_ARGS="" -# CT_NCURSES_TARGET_DISABLE_DB is not set -CT_NCURSES_TARGET_FALLBACKS="" -CT_COMP_LIBS_ZLIB=y -CT_COMP_LIBS_ZLIB_PKG_KSYM="ZLIB" -CT_ZLIB_DIR_NAME="zlib" -CT_ZLIB_PKG_NAME="zlib" -CT_ZLIB_SRC_RELEASE=y -CT_ZLIB_PATCH_ORDER="global" -CT_ZLIB_V_1_2_11=y -# CT_ZLIB_NO_VERSIONS is not set -CT_ZLIB_VERSION="1.2.11" -CT_ZLIB_MIRRORS="http://downloads.sourceforge.net/project/libpng/zlib/${CT_ZLIB_VERSION}" -CT_ZLIB_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_ZLIB_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_ZLIB_ARCHIVE_FORMATS=".tar.xz .tar.gz" -CT_ZLIB_SIGNATURE_FORMAT="packed/.asc" -CT_ALL_COMP_LIBS_CHOICES="CLOOG EXPAT GETTEXT GMP ISL LIBELF LIBICONV MPC MPFR NCURSES ZLIB" -CT_LIBICONV_NEEDED=y -CT_GETTEXT_NEEDED=y -CT_GMP_NEEDED=y -CT_MPFR_NEEDED=y -CT_ISL_NEEDED=y -CT_MPC_NEEDED=y -CT_NCURSES_NEEDED=y -CT_ZLIB_NEEDED=y -CT_LIBICONV=y -CT_GETTEXT=y -CT_GMP=y -CT_MPFR=y -CT_ISL=y -CT_MPC=y -CT_NCURSES=y -CT_ZLIB=y - -# -# Companion tools -# -# CT_COMP_TOOLS_FOR_HOST is not set -# CT_COMP_TOOLS_AUTOCONF is not set -# CT_COMP_TOOLS_AUTOMAKE is not set -# CT_COMP_TOOLS_BISON is not set -# CT_COMP_TOOLS_DTC is not set -# CT_COMP_TOOLS_LIBTOOL is not set -# CT_COMP_TOOLS_M4 is not set -# CT_COMP_TOOLS_MAKE is not set -CT_ALL_COMP_TOOLS_CHOICES="AUTOCONF AUTOMAKE BISON DTC LIBTOOL M4 MAKE" diff --git a/build-config/conf/crosstool/gcc-8.3.0/uClibc-ng-1.0.35/crosstool.x86_64.config b/build-config/conf/crosstool/gcc-8.3.0/uClibc-ng-1.0.35/crosstool.x86_64.config deleted file mode 100644 index 36be7b39a..000000000 --- a/build-config/conf/crosstool/gcc-8.3.0/uClibc-ng-1.0.35/crosstool.x86_64.config +++ /dev/null @@ -1,934 +0,0 @@ -# -# Automatically generated file; DO NOT EDIT. -# crosstool-NG Configuration -# -CT_CONFIGURE_has_static_link=y -CT_CONFIGURE_has_cxx11=y -CT_CONFIGURE_has_wget=y -CT_CONFIGURE_has_curl=y -CT_CONFIGURE_has_make_3_81_or_newer=y -CT_CONFIGURE_has_make_4_0_or_newer=y -CT_CONFIGURE_has_libtool_2_4_or_newer=y -CT_CONFIGURE_has_libtoolize_2_4_or_newer=y -CT_CONFIGURE_has_autoconf_2_65_or_newer=y -CT_CONFIGURE_has_autoreconf_2_65_or_newer=y -CT_CONFIGURE_has_automake_1_15_or_newer=y -CT_CONFIGURE_has_gnu_m4_1_4_12_or_newer=y -CT_CONFIGURE_has_python_3_4_or_newer=y -CT_CONFIGURE_has_bison_2_7_or_newer=y -CT_CONFIGURE_has_python=y -CT_CONFIGURE_has_dtc=y -CT_CONFIGURE_has_git=y -CT_CONFIGURE_has_md5sum=y -CT_CONFIGURE_has_sha1sum=y -CT_CONFIGURE_has_sha256sum=y -CT_CONFIGURE_has_sha512sum=y -CT_CONFIGURE_has_install_with_strip_program=y -CT_CONFIG_VERSION_CURRENT="3" -CT_CONFIG_VERSION="3" -CT_MODULES=y - -# -# Paths and misc options -# - -# -# crosstool-NG behavior -# -# CT_OBSOLETE is not set -# CT_EXPERIMENTAL is not set -# CT_DEBUG_CT is not set - -# -# Paths -# -CT_LOCAL_TARBALLS_DIR="${DOWNLOADDIR}" -CT_SAVE_TARBALLS=y -# CT_TARBALLS_BUILDROOT_LAYOUT is not set -CT_WORK_DIR="${CT_TOP_DIR}/build" -CT_BUILD_TOP_DIR="${CT_WORK_DIR:-${CT_TOP_DIR}/.build}/${CT_HOST:+HOST-${CT_HOST}/}${CT_TARGET}" -CT_PREFIX_DIR="${XTOOLS_INSTALL_DIR}/${CT_TARGET}" -CT_RM_RF_PREFIX_DIR=y -CT_REMOVE_DOCS=y -CT_INSTALL_LICENSES=y -CT_PREFIX_DIR_RO=y -CT_STRIP_HOST_TOOLCHAIN_EXECUTABLES=y -CT_STRIP_TARGET_TOOLCHAIN_EXECUTABLES=y - -# -# Downloading -# -# CT_DOWNLOAD_AGENT_WGET is not set -# CT_DOWNLOAD_AGENT_CURL is not set -CT_DOWNLOAD_AGENT_NONE=y -CT_FORBID_DOWNLOAD=y - -# -# Extracting -# -# CT_FORCE_EXTRACT is not set -CT_OVERRIDE_CONFIG_GUESS_SUB=y -# CT_ONLY_EXTRACT is not set -CT_PATCH_BUNDLED=y -# CT_PATCH_BUNDLED_LOCAL is not set -CT_PATCH_ORDER="bundled,local" -CT_PATCH_SINGLE=y -CT_PATCH_USE_LOCAL=y -CT_LOCAL_PATCH_DIR="${CROSSTOOL_NG_LOCAL_PATCHDIR}" - - -# -# Build behavior -# -CT_PARALLEL_JOBS=0 -CT_LOAD="" -CT_USE_PIPES=y -CT_EXTRA_CFLAGS_FOR_BUILD="" -CT_EXTRA_LDFLAGS_FOR_BUILD="" -CT_EXTRA_CFLAGS_FOR_HOST="" -CT_EXTRA_LDFLAGS_FOR_HOST="" -# CT_CONFIG_SHELL_SH is not set -# CT_CONFIG_SHELL_ASH is not set -CT_CONFIG_SHELL_BASH=y -# CT_CONFIG_SHELL_CUSTOM is not set -CT_CONFIG_SHELL="${bash}" - -# -# Logging -# -# CT_LOG_ERROR is not set -# CT_LOG_WARN is not set -CT_LOG_INFO=y -# CT_LOG_EXTRA is not set -# CT_LOG_ALL is not set -# CT_LOG_DEBUG is not set -CT_LOG_LEVEL_MAX="INFO" -# CT_LOG_SEE_TOOLS_WARN is not set -# CT_LOG_PROGRESS_BAR is not set -CT_LOG_TO_FILE=y -CT_LOG_FILE_COMPRESS=y - -# -# Target options -# -# CT_ARCH_ALPHA is not set -# CT_ARCH_ARC is not set -# CT_ARCH_ARM is not set -# CT_ARCH_AVR is not set -# CT_ARCH_M68K is not set -# CT_ARCH_MIPS is not set -# CT_ARCH_NIOS2 is not set -# CT_ARCH_POWERPC is not set -# CT_ARCH_S390 is not set -# CT_ARCH_SH is not set -# CT_ARCH_SPARC is not set -CT_ARCH_X86=y -# CT_ARCH_XTENSA is not set -CT_ARCH="x86" -CT_ARCH_CHOICE_KSYM="X86" -# CT_ARCH_ALPHA_EV4 is not set -# CT_ARCH_ALPHA_EV45 is not set -# CT_ARCH_ALPHA_EV5 is not set -# CT_ARCH_ALPHA_EV56 is not set -# CT_ARCH_ALPHA_EV6 is not set -# CT_ARCH_ALPHA_EV67 is not set -CT_ARCH_CPU="" -CT_ARCH_TUNE="" -CT_ARCH_X86_SHOW=y - -# -# Options for x86 -# -CT_ARCH_X86_PKG_KSYM="" -CT_ALL_ARCH_CHOICES="ALPHA ARC ARM AVR M68K MICROBLAZE MIPS MOXIE MSP430 NIOS2 POWERPC RISCV S390 SH SPARC X86 XTENSA" -CT_ARCH_SUFFIX="" -# CT_OMIT_TARGET_VENDOR is not set - -# -# Generic target options -# -# CT_MULTILIB is not set -CT_DEMULTILIB=y -CT_ARCH_USE_MMU=y -CT_ARCH_SUPPORTS_32=y -CT_ARCH_SUPPORTS_64=y -CT_ARCH_DEFAULT_32=y -CT_ARCH_BITNESS=64 -# CT_ARCH_32 is not set -CT_ARCH_64=y - -# -# Target optimisations -# -CT_ARCH_SUPPORTS_WITH_ARCH=y -CT_ARCH_SUPPORTS_WITH_CPU=y -CT_ARCH_SUPPORTS_WITH_TUNE=y -CT_ARCH_ARCH="" -CT_TARGET_CFLAGS="" -CT_TARGET_LDFLAGS="" - -# -# Toolchain options -# - -# -# General toolchain options -# -CT_FORCE_SYSROOT=y -CT_USE_SYSROOT=y -CT_SYSROOT_NAME="sysroot" -CT_SYSROOT_DIR_PREFIX="" -CT_WANTS_STATIC_LINK=y -CT_WANTS_STATIC_LINK_CXX=y -# CT_STATIC_TOOLCHAIN is not set -CT_SHOW_CT_VERSION=y -CT_TOOLCHAIN_PKGVERSION="ONIE-${LSB_RELEASE_TAG}" -CT_TOOLCHAIN_BUGURL="" - -# -# Tuple completion and aliasing -# -CT_TARGET_VENDOR="onie" -CT_TARGET_ALIAS_SED_EXPR="" -CT_TARGET_ALIAS="x86_64" - -# -# Toolchain type -# -CT_CROSS=y -# CT_CANADIAN is not set -CT_TOOLCHAIN_TYPE="cross" - -# -# Build system -# -CT_BUILD="" -CT_BUILD_PREFIX="" -CT_BUILD_SUFFIX="" - -# -# Misc options -# -CT_TOOLCHAIN_ENABLE_NLS=y - -# -# Operating System -# -CT_KERNEL_SUPPORTS_SHARED_LIBS=y -# CT_KERNEL_BARE_METAL is not set -CT_KERNEL_LINUX=y -CT_KERNEL="linux" -CT_KERNEL_CHOICE_KSYM="LINUX" -CT_KERNEL_LINUX_SHOW=y - -# -# Options for linux -# -# ONIE xtools.make will apply the value of LINUX_VERSION -# to set: -# CT_LINUX_VERSION a.b.c -# CT_LINUX_V_a_b=y -# Note this will require adding entries for newer kernels. -CT_KERNEL_LINUX_PKG_KSYM="LINUX" -CT_LINUX_DIR_NAME="linux" -CT_LINUX_PKG_NAME="linux" -CT_LINUX_SRC_RELEASE=y -CT_LINUX_PATCH_ORDER="global" -# CT_LINUX_V_4_20 is not set -# CT_LINUX_V_4_19 is not set -# CT_LINUX_V_4_18 is not set -# CT_LINUX_V_4_17 is not set -# CT_LINUX_V_4_16 is not set -# CT_LINUX_V_4_15 is not set -# CT_LINUX_V_4_14 is not set -# CT_LINUX_V_4_13 is not set -# CT_LINUX_V_4_12 is not set -# CT_LINUX_V_4_11 is not set -# CT_LINUX_V_4_10 is not set -# CT_LINUX_V_4_9 is not set -# CT_LINUX_V_4_4 is not set -# CT_LINUX_V_4_1 is not set -# CT_LINUX_V_3_16 is not set -# CT_LINUX_V_3_13 is not set -# CT_LINUX_V_3_12 is not set -# CT_LINUX_V_3_10 is not set -# CT_LINUX_V_3_4 is not set -# CT_LINUX_V_3_2 is not set -# CT_LINUX_V_2_6_32 is not set -# CT_LINUX_NO_VERSIONS is not set -CT_LINUX_VERSION="ONIE set by xtools.make" -CT_LINUX_MIRRORS="$(CT_Mirrors kernel.org linux ${CT_LINUX_VERSION})" -CT_LINUX_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_LINUX_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_LINUX_ARCHIVE_FORMATS=".tar.xz .tar.gz" -CT_LINUX_SIGNATURE_FORMAT="unpacked/.sign" -CT_LINUX_later_than_4_8=y -CT_LINUX_4_8_or_later=y -CT_LINUX_later_than_3_7=y -CT_LINUX_3_7_or_later=y -CT_LINUX_later_than_3_2=y -CT_LINUX_3_2_or_later=y -CT_KERNEL_LINUX_VERBOSITY_0=y -# CT_KERNEL_LINUX_VERBOSITY_1 is not set -# CT_KERNEL_LINUX_VERBOSITY_2 is not set -CT_KERNEL_LINUX_VERBOSE_LEVEL=0 -CT_KERNEL_LINUX_INSTALL_CHECK=y -CT_ALL_KERNEL_CHOICES="BARE_METAL LINUX WINDOWS" - -# -# Common kernel options -# -CT_SHARED_LIBS=y - -# -# Binary utilities -# -CT_ARCH_BINFMT_ELF=y -CT_BINUTILS_BINUTILS=y -CT_BINUTILS="binutils" -CT_BINUTILS_CHOICE_KSYM="BINUTILS" -CT_BINUTILS_BINUTILS_SHOW=y - -# -# Options for binutils -# -CT_BINUTILS_BINUTILS_PKG_KSYM="BINUTILS" -CT_BINUTILS_DIR_NAME="binutils" -CT_BINUTILS_USE_GNU=y -CT_BINUTILS_USE="BINUTILS" -CT_BINUTILS_PKG_NAME="binutils" -CT_BINUTILS_SRC_RELEASE=y -CT_BINUTILS_PATCH_ORDER="global" -CT_BINUTILS_V_2_32=y -# CT_BINUTILS_V_2_31 is not set -# CT_BINUTILS_V_2_30 is not set -# CT_BINUTILS_V_2_29 is not set -# CT_BINUTILS_V_2_28 is not set -# CT_BINUTILS_V_2_27 is not set -# CT_BINUTILS_V_2_26 is not set -# CT_BINUTILS_NO_VERSIONS is not set -CT_BINUTILS_VERSION="2.32" -CT_BINUTILS_MIRRORS="$(CT_Mirrors GNU binutils) $(CT_Mirrors sourceware binutils/releases)" -CT_BINUTILS_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_BINUTILS_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_BINUTILS_ARCHIVE_FORMATS=".tar.xz .tar.bz2 .tar.gz" -CT_BINUTILS_SIGNATURE_FORMAT="packed/.sig" -CT_BINUTILS_later_than_2_30=y -CT_BINUTILS_2_30_or_later=y -CT_BINUTILS_later_than_2_27=y -CT_BINUTILS_2_27_or_later=y -CT_BINUTILS_later_than_2_25=y -CT_BINUTILS_2_25_or_later=y -CT_BINUTILS_later_than_2_23=y -CT_BINUTILS_2_23_or_later=y - -# -# GNU binutils -# -CT_BINUTILS_HAS_HASH_STYLE=y -CT_BINUTILS_HAS_GOLD=y -CT_BINUTILS_HAS_PLUGINS=y -CT_BINUTILS_HAS_PKGVERSION_BUGURL=y -CT_BINUTILS_GOLD_SUPPORTS_ARCH=y -CT_BINUTILS_GOLD_SUPPORT=y -CT_BINUTILS_LINKER_LD=y -# CT_BINUTILS_LINKER_GOLD is not set -# CT_BINUTILS_LINKER_LD_GOLD is not set -# CT_BINUTILS_LINKER_GOLD_LD is not set -CT_BINUTILS_LINKERS_LIST="ld" -CT_BINUTILS_LINKER_DEFAULT="bfd" -# CT_BINUTILS_PLUGINS is not set -CT_BINUTILS_RELRO=m -CT_BINUTILS_EXTRA_CONFIG_ARRAY="" -CT_BINUTILS_FOR_TARGET=y -CT_BINUTILS_FOR_TARGET_IBERTY=y -CT_BINUTILS_FOR_TARGET_BFD=y -CT_ALL_BINUTILS_CHOICES="BINUTILS" - -# -# C-library -# -# CT_LIBC_GLIBC is not set -# CT_LIBC_NEWLIB is not set -# CT_LIBC_NONE is not set -CT_LIBC_UCLIBC=y -CT_LIBC="uClibc" -CT_LIBC_CHOICE_KSYM="UCLIBC" -CT_THREADS="nptl" -# CT_GLIBC_USE_GNU is not set -# CT_GLIBC_SRC_RELEASE is not set -# CT_GLIBC_V_2_29 is not set -# CT_GLIBC_V_2_28 is not set -# CT_GLIBC_V_2_27 is not set -# CT_GLIBC_V_2_26 is not set -# CT_GLIBC_V_2_25 is not set -# CT_GLIBC_V_2_24 is not set -# CT_GLIBC_V_2_23 is not set -# CT_GLIBC_V_2_19 is not set -# CT_GLIBC_V_2_17 is not set -# CT_GLIBC_V_2_12_1 is not set -# CT_NEWLIB_USE_REDHAT is not set -# CT_NEWLIB_SRC_RELEASE is not set -# CT_NEWLIB_V_3_1 is not set -# CT_NEWLIB_V_3_0 is not set -# CT_NEWLIB_V_2_5 is not set -CT_LIBC_UCLIBC_SHOW=y - -# -# Options for uClibc -# -CT_LIBC_UCLIBC_PKG_KSYM="UCLIBC" -CT_UCLIBC_DIR_NAME="uClibc" -CT_UCLIBC_USE_UCLIBC_NG_ORG=y -CT_UCLIBC_USE="UCLIBC_NG" -CT_UCLIBC_NG_PKG_NAME="uClibc-ng" -CT_UCLIBC_NG_SRC_RELEASE=y -CT_UCLIBC_NG_PATCH_ORDER="global" -# CT_UCLIBC_NG_V_1_0_31 is not set -# CT_UCLIBC_NG_V_1_0_30 is not set -# CT_UCLIBC_NG_V_1_0_29 is not set -# CT_UCLIBC_NG_V_1_0_28 is not set -# CT_UCLIBC_NG_V_1_0_27 is not set -# CT_UCLIBC_NG_V_1_0_26 is not set -CT_UCLIBC_NG_V_1_0_35=y -# CT_UCLIBC_NG_NO_VERSIONS is not set -CT_UCLIBC_NG_VERSION="1.0.35" -CT_UCLIBC_NG_MIRRORS="http://downloads.uclibc-ng.org/releases/${CT_UCLIBC_NG_VERSION}" -CT_UCLIBC_NG_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_UCLIBC_NG_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_UCLIBC_NG_ARCHIVE_FORMATS=".tar.xz .tar.lz .tar.bz2 .tar.gz" -CT_UCLIBC_NG_SIGNATURE_FORMAT="packed/.asc" -CT_UCLIBC_later_than_1_0_23=y -CT_UCLIBC_1_0_23_or_later=y -CT_UCLIBC_later_than_1_0_21=y -CT_UCLIBC_1_0_21_or_later=y -CT_UCLIBC_later_than_1_0_15=y -CT_UCLIBC_1_0_15_or_later=y -CT_UCLIBC_later_than_1_0_0=y -CT_UCLIBC_1_0_0_or_later=y -CT_UCLIBC_later_than_0_9_33_2=y -CT_UCLIBC_0_9_33_2_or_later=y -CT_LIBC_UCLIBC_HAS_LIBICONV=y -CT_LIBC_UCLIBC_PARALLEL=y -CT_LIBC_UCLIBC_NG=y -CT_UCLIBC_MERGED_LINUXTHREADS=y -CT_LIBC_UCLIBC_VERBOSITY_0=y -# CT_LIBC_UCLIBC_VERBOSITY_1 is not set -# CT_LIBC_UCLIBC_VERBOSITY_2 is not set -CT_LIBC_UCLIBC_VERBOSITY="" -CT_LIBC_UCLIBC_DEBUG_LEVEL_0=y -# CT_LIBC_UCLIBC_DEBUG_LEVEL_1 is not set -# CT_LIBC_UCLIBC_DEBUG_LEVEL_2 is not set -# CT_LIBC_UCLIBC_DEBUG_LEVEL_3 is not set -CT_LIBC_UCLIBC_DEBUG_LEVEL=0 -CT_LIBC_UCLIBC_CONFIG_FILE="${UCLIBC_CONFIG}" -CT_LIBC_UCLIBC_LNXTHRD="" -# CT_LIBC_UCLIBC_LOCALES is not set -# CT_LIBC_UCLIBC_LIBICONV is not set -CT_LIBC_UCLIBC_IPV6=y -CT_LIBC_UCLIBC_WCHAR=y -CT_LIBC_UCLIBC_FENV=y -CT_LIBC_UCLIBC_HAS_SSP=y -# CT_LIBC_UCLIBC_BUILD_SSP is not set -CT_ALL_LIBC_CHOICES="AVR_LIBC BIONIC GLIBC MINGW_W64 MOXIEBOX MUSL NEWLIB NONE UCLIBC" -CT_LIBC_SUPPORT_THREADS_ANY=y -CT_LIBC_SUPPORT_THREADS_NATIVE=y -CT_LIBC_SUPPORT_THREADS_LT=y -CT_LIBC_SUPPORT_THREADS_NONE=y - -# -# Common C library options -# -CT_THREADS_NATIVE=y -# CT_THREADS_LT is not set -# CT_THREADS_NONE is not set -# CT_CREATE_LDSO_CONF is not set -CT_LIBC_XLDD=y - -# -# C compiler -# -CT_CC_CORE_PASSES_NEEDED=y -CT_CC_CORE_PASS_1_NEEDED=y -CT_CC_CORE_PASS_2_NEEDED=y -CT_CC_SUPPORT_CXX=y -CT_CC_SUPPORT_FORTRAN=y -CT_CC_SUPPORT_ADA=y -CT_CC_SUPPORT_OBJC=y -CT_CC_SUPPORT_OBJCXX=y -CT_CC_SUPPORT_GOLANG=y -CT_CC_GCC=y -CT_CC="gcc" -CT_CC_CHOICE_KSYM="GCC" -CT_CC_GCC_SHOW=y - -# -# Options for gcc -# -CT_CC_GCC_PKG_KSYM="GCC" -CT_GCC_DIR_NAME="gcc" -CT_GCC_USE_GNU=y -CT_GCC_USE="GCC" -CT_GCC_PKG_NAME="gcc" -CT_GCC_SRC_RELEASE=y -CT_GCC_PATCH_ORDER="global" -CT_GCC_V_8=y -# CT_GCC_V_7 is not set -# CT_GCC_V_6 is not set -# CT_GCC_V_5 is not set -# CT_GCC_V_4_9 is not set -# CT_GCC_NO_VERSIONS is not set -CT_GCC_VERSION="8.3.0" -CT_GCC_MIRRORS="$(CT_Mirrors GNU gcc/gcc-${CT_GCC_VERSION}) $(CT_Mirrors sourceware gcc/releases/gcc-${CT_GCC_VERSION})" -CT_GCC_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_GCC_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_GCC_ARCHIVE_FORMATS=".tar.xz .tar.gz" -CT_GCC_SIGNATURE_FORMAT="" -CT_GCC_later_than_7=y -CT_GCC_7_or_later=y -CT_GCC_later_than_6=y -CT_GCC_6_or_later=y -CT_GCC_later_than_5=y -CT_GCC_5_or_later=y -CT_GCC_later_than_4_9=y -CT_GCC_4_9_or_later=y -CT_GCC_later_than_4_8=y -CT_GCC_4_8_or_later=y -CT_CC_GCC_HAS_LIBMPX=y -CT_CC_GCC_ENABLE_CXX_FLAGS="" -CT_CC_GCC_CORE_EXTRA_CONFIG_ARRAY="" -CT_CC_GCC_EXTRA_CONFIG_ARRAY="" -CT_CC_GCC_STATIC_LIBSTDCXX=y -# CT_CC_GCC_SYSTEM_ZLIB is not set -CT_CC_GCC_CONFIG_TLS=m - -# -# Optimisation features -# -CT_CC_GCC_USE_GRAPHITE=y -CT_CC_GCC_USE_LTO=y - -# -# Settings for libraries running on target -# -CT_CC_GCC_ENABLE_TARGET_OPTSPACE=y -# CT_CC_GCC_LIBMUDFLAP is not set -# CT_CC_GCC_LIBGOMP is not set -# CT_CC_GCC_LIBSSP is not set -# CT_CC_GCC_LIBQUADMATH is not set -# CT_CC_GCC_LIBMPX is not set - -# -# Misc. obscure options. -# -CT_CC_CXA_ATEXIT=y -# CT_CC_GCC_DISABLE_PCH is not set -CT_CC_GCC_SJLJ_EXCEPTIONS=m -CT_CC_GCC_LDBL_128=m -# CT_CC_GCC_BUILD_ID is not set -CT_CC_GCC_LNK_HASH_STYLE_DEFAULT=y -# CT_CC_GCC_LNK_HASH_STYLE_SYSV is not set -# CT_CC_GCC_LNK_HASH_STYLE_GNU is not set -# CT_CC_GCC_LNK_HASH_STYLE_BOTH is not set -CT_CC_GCC_LNK_HASH_STYLE="" -CT_CC_GCC_DEC_FLOAT_AUTO=y -# CT_CC_GCC_DEC_FLOAT_BID is not set -# CT_CC_GCC_DEC_FLOAT_DPD is not set -# CT_CC_GCC_DEC_FLOATS_NO is not set -CT_ALL_CC_CHOICES="GCC" - -# -# Additional supported languages: -# -CT_CC_LANG_CXX=y -# CT_CC_LANG_FORTRAN is not set - -# -# Debug facilities -# -CT_DEBUG_DUMA=y -CT_DEBUG_DUMA_PKG_KSYM="DUMA" -CT_DUMA_DIR_NAME="duma" -CT_DUMA_PKG_NAME="duma" -CT_DUMA_SRC_RELEASE=y -CT_DUMA_PATCH_ORDER="global" -CT_DUMA_V_2_5_15=y -# CT_DUMA_NO_VERSIONS is not set -CT_DUMA_VERSION="2_5_15" -CT_DUMA_MIRRORS="http://downloads.sourceforge.net/project/duma/duma/${CT_DUMA_VERSION//_/.}" -CT_DUMA_ARCHIVE_FILENAME="@{pkg_name}_@{version}" -CT_DUMA_ARCHIVE_DIRNAME="@{pkg_name}_@{version}" -CT_DUMA_ARCHIVE_FORMATS=".tar.gz .zip" -CT_DUMA_SIGNATURE_FORMAT="" -CT_DUMA_SO=y -CT_DUMA_CUSTOM_WRAPPER=y -CT_DEBUG_GDB=y -CT_DEBUG_GDB_PKG_KSYM="GDB" -CT_GDB_DIR_NAME="gdb" -CT_GDB_USE_GNU=y -CT_GDB_USE="GDB" -CT_GDB_PKG_NAME="gdb" -CT_GDB_SRC_RELEASE=y -CT_GDB_PATCH_ORDER="global" -# CT_GDB_V_8_2 is not set -# CT_GDB_V_8_1 is not set -# CT_GDB_V_8_0 is not set -CT_GDB_V_7_12=y -# CT_GDB_V_7_11 is not set -# CT_GDB_NO_VERSIONS is not set -CT_GDB_VERSION="7.12.1" -CT_GDB_MIRRORS="$(CT_Mirrors GNU gdb) $(CT_Mirrors sourceware gdb/releases)" -CT_GDB_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_GDB_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_GDB_ARCHIVE_FORMATS=".tar.xz .tar.gz" -CT_GDB_SIGNATURE_FORMAT="" -CT_GDB_8_0_or_older=y -CT_GDB_older_than_8_0=y -CT_GDB_later_than_7_12=y -CT_GDB_7_12_or_later=y -CT_GDB_later_than_7_2=y -CT_GDB_7_2_or_later=y -CT_GDB_later_than_7_0=y -CT_GDB_7_0_or_later=y -CT_GDB_CROSS=y -# CT_GDB_CROSS_STATIC is not set -# CT_GDB_CROSS_SIM is not set -CT_GDB_CROSS_PYTHON=y -CT_GDB_CROSS_PYTHON_BINARY="" -CT_GDB_CROSS_EXTRA_CONFIG_ARRAY="" -# CT_GDB_NATIVE is not set -CT_GDB_GDBSERVER=y -# CT_GDB_NATIVE_STATIC_LIBSTDCXX is not set -CT_GDB_HAS_PKGVERSION_BUGURL=y -CT_GDB_HAS_PYTHON=y -CT_GDB_INSTALL_GDBINIT=y -CT_GDB_HAS_DISABLE_CXX_BUILD=y -CT_GDB_HAS_IPA_LIB=y -CT_DEBUG_LTRACE=y -CT_DEBUG_LTRACE_PKG_KSYM="LTRACE" -CT_LTRACE_DIR_NAME="ltrace" -CT_LTRACE_PKG_NAME="ltrace" -CT_LTRACE_SRC_RELEASE=y -CT_LTRACE_PATCH_ORDER="global" -CT_LTRACE_V_0_7_3=y -# CT_LTRACE_NO_VERSIONS is not set -CT_LTRACE_VERSION="0.7.3" -CT_LTRACE_MIRRORS="http://ftp.debian.org/debian/pool/main/l/ltrace ftp:://ftp.debian.org/debian/pool/main/l/ltrace" -CT_LTRACE_ARCHIVE_FILENAME="@{pkg_name}_@{version}.orig" -CT_LTRACE_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_LTRACE_ARCHIVE_FORMATS=".tar.bz2" -CT_LTRACE_SIGNATURE_FORMAT="" -CT_DEBUG_STRACE=y -CT_DEBUG_STRACE_PKG_KSYM="STRACE" -CT_STRACE_DIR_NAME="strace" -CT_STRACE_PKG_NAME="strace" -CT_STRACE_SRC_RELEASE=y -CT_STRACE_PATCH_ORDER="global" -CT_STRACE_V_4_26=y -# CT_STRACE_V_4_25 is not set -# CT_STRACE_V_4_24 is not set -# CT_STRACE_V_4_23 is not set -# CT_STRACE_V_4_22 is not set -# CT_STRACE_V_4_21 is not set -# CT_STRACE_V_4_20 is not set -# CT_STRACE_V_4_19 is not set -# CT_STRACE_V_4_18 is not set -# CT_STRACE_V_4_17 is not set -#CT_STRACE_V_4_16=y -# CT_STRACE_V_4_15 is not set -# CT_STRACE_NO_VERSIONS is not set -CT_STRACE_VERSION="4.26" -CT_STRACE_MIRRORS="https://strace.io/files/${CT_STRACE_VERSION}" -CT_STRACE_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_STRACE_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_STRACE_ARCHIVE_FORMATS=".tar.xz" -CT_STRACE_SIGNATURE_FORMAT="" -CT_ALL_DEBUG_CHOICES="DUMA GDB LTRACE STRACE" - -# -# Companion libraries -# -# CT_COMPLIBS_CHECK is not set -# CT_COMP_LIBS_CLOOG is not set -CT_COMP_LIBS_EXPAT=y -CT_COMP_LIBS_EXPAT_PKG_KSYM="EXPAT" -CT_EXPAT_DIR_NAME="expat" -CT_EXPAT_PKG_NAME="expat" -CT_EXPAT_SRC_RELEASE=y -CT_EXPAT_PATCH_ORDER="global" -CT_EXPAT_V_2_2=y -# CT_EXPAT_NO_VERSIONS is not set -CT_EXPAT_VERSION="2.2.6" -CT_EXPAT_MIRRORS="http://downloads.sourceforge.net/project/expat/expat/${CT_EXPAT_VERSION}" -CT_EXPAT_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_EXPAT_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_EXPAT_ARCHIVE_FORMATS=".tar.bz2" -CT_EXPAT_SIGNATURE_FORMAT="" -CT_COMP_LIBS_GETTEXT=y -CT_COMP_LIBS_GETTEXT_PKG_KSYM="GETTEXT" -CT_GETTEXT_DIR_NAME="gettext" -CT_GETTEXT_PKG_NAME="gettext" -CT_GETTEXT_SRC_RELEASE=y -CT_GETTEXT_PATCH_ORDER="global" -CT_GETTEXT_V_0_19_8_1=y -# CT_GETTEXT_NO_VERSIONS is not set -CT_GETTEXT_VERSION="0.19.8.1" -CT_GETTEXT_MIRRORS="$(CT_Mirrors GNU gettext)" -CT_GETTEXT_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_GETTEXT_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_GETTEXT_ARCHIVE_FORMATS=".tar.xz .tar.lz .tar.gz" -CT_GETTEXT_SIGNATURE_FORMAT="packed/.sig" -CT_COMP_LIBS_GMP=y -CT_COMP_LIBS_GMP_PKG_KSYM="GMP" -CT_GMP_DIR_NAME="gmp" -CT_GMP_PKG_NAME="gmp" -CT_GMP_SRC_RELEASE=y -CT_GMP_PATCH_ORDER="global" -CT_GMP_V_6_1=y -# CT_GMP_NO_VERSIONS is not set -CT_GMP_VERSION="6.1.2" -CT_GMP_MIRRORS="https://gmplib.org/download/gmp https://gmplib.org/download/gmp/archive $(CT_Mirrors GNU gmp)" -CT_GMP_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_GMP_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_GMP_ARCHIVE_FORMATS=".tar.xz .tar.lz .tar.bz2" -CT_GMP_SIGNATURE_FORMAT="packed/.sig" -CT_GMP_later_than_5_1_0=y -CT_GMP_5_1_0_or_later=y -CT_GMP_later_than_5_0_0=y -CT_GMP_5_0_0_or_later=y -CT_GMP_REQUIRE_5_0_0_or_later=y -CT_COMP_LIBS_ISL=y -CT_COMP_LIBS_ISL_PKG_KSYM="ISL" -CT_ISL_DIR_NAME="isl" -CT_ISL_PKG_NAME="isl" -CT_ISL_SRC_RELEASE=y -CT_ISL_PATCH_ORDER="global" -CT_ISL_V_0_20=y -# CT_ISL_V_0_19 is not set -# CT_ISL_V_0_18 is not set -# CT_ISL_V_0_17 is not set -# CT_ISL_V_0_16 is not set -# CT_ISL_V_0_15 is not set -# CT_ISL_NO_VERSIONS is not set -CT_ISL_VERSION="0.20" -CT_ISL_MIRRORS="http://isl.gforge.inria.fr" -CT_ISL_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_ISL_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_ISL_ARCHIVE_FORMATS=".tar.xz .tar.bz2 .tar.gz" -CT_ISL_SIGNATURE_FORMAT="" -CT_ISL_0_18_or_older=y -CT_ISL_older_than_0_18=y -CT_ISL_later_than_0_15=y -CT_ISL_0_15_or_later=y -CT_ISL_later_than_0_14=y -CT_ISL_0_14_or_later=y -CT_ISL_REQUIRE_0_14_or_later=y -CT_ISL_later_than_0_13=y -CT_ISL_0_13_or_later=y -CT_ISL_later_than_0_12=y -CT_ISL_0_12_or_later=y -CT_ISL_REQUIRE_0_12_or_later=y -CT_COMP_LIBS_LIBELF=y -CT_COMP_LIBS_LIBELF_PKG_KSYM="LIBELF" -CT_LIBELF_DIR_NAME="libelf" -CT_LIBELF_PKG_NAME="libelf" -CT_LIBELF_SRC_RELEASE=y -CT_LIBELF_PATCH_ORDER="global" -CT_LIBELF_V_0_8=y -# CT_LIBELF_NO_VERSIONS is not set -CT_LIBELF_VERSION="0.8.13" -CT_LIBELF_MIRRORS="http://www.mr511.de/software https://fossies.org/linux/misc/old" -CT_LIBELF_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_LIBELF_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_LIBELF_ARCHIVE_FORMATS=".tar.gz" -CT_LIBELF_SIGNATURE_FORMAT="" -CT_COMP_LIBS_LIBICONV=y -CT_COMP_LIBS_LIBICONV_PKG_KSYM="LIBICONV" -CT_LIBICONV_DIR_NAME="libiconv" -CT_LIBICONV_PKG_NAME="libiconv" -CT_LIBICONV_SRC_RELEASE=y -CT_LIBICONV_PATCH_ORDER="global" -CT_LIBICONV_V_1_15=y -# CT_LIBICONV_NO_VERSIONS is not set -CT_LIBICONV_VERSION="1.15" -CT_LIBICONV_MIRRORS="$(CT_Mirrors GNU libiconv)" -CT_LIBICONV_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_LIBICONV_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_LIBICONV_ARCHIVE_FORMATS=".tar.gz" -CT_LIBICONV_SIGNATURE_FORMAT="packed/.sig" -CT_COMP_LIBS_MPC=y -CT_COMP_LIBS_MPC_PKG_KSYM="MPC" -CT_MPC_DIR_NAME="mpc" -CT_MPC_PKG_NAME="mpc" -CT_MPC_SRC_RELEASE=y -CT_MPC_PATCH_ORDER="global" -CT_MPC_V_1_1=y -# CT_MPC_V_1_0 is not set -# CT_MPC_NO_VERSIONS is not set -CT_MPC_VERSION="1.1.0" -CT_MPC_MIRRORS="http://www.multiprecision.org/downloads $(CT_Mirrors GNU mpc)" -CT_MPC_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_MPC_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_MPC_ARCHIVE_FORMATS=".tar.gz" -CT_MPC_SIGNATURE_FORMAT="packed/.sig" -CT_MPC_1_1_0_or_later=y -CT_MPC_1_1_0_or_older=y -CT_COMP_LIBS_MPFR=y -CT_COMP_LIBS_MPFR_PKG_KSYM="MPFR" -CT_MPFR_DIR_NAME="mpfr" -CT_MPFR_PKG_NAME="mpfr" -CT_MPFR_SRC_RELEASE=y -CT_MPFR_PATCH_ORDER="global" -CT_MPFR_V_4_1=y -# CT_MPFR_V_3_1 is not set -# CT_MPFR_NO_VERSIONS is not set -CT_MPFR_VERSION="4.1.0" -CT_MPFR_MIRRORS="http://www.mpfr.org/mpfr-${CT_MPFR_VERSION} $(CT_Mirrors GNU mpfr)" -CT_MPFR_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_MPFR_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_MPFR_ARCHIVE_FORMATS=".tar.xz .tar.bz2 .tar.gz .zip" -CT_MPFR_SIGNATURE_FORMAT="packed/.asc" -CT_MPFR_later_than_4_0_0=y -CT_MPFR_4_0_0_or_later=y -CT_MPFR_later_than_3_0_0=y -CT_MPFR_3_0_0_or_later=y -CT_MPFR_REQUIRE_3_0_0_or_later=y -CT_COMP_LIBS_NCURSES=y -CT_COMP_LIBS_NCURSES_PKG_KSYM="NCURSES" -CT_NCURSES_DIR_NAME="ncurses" -CT_NCURSES_PKG_NAME="ncurses" -CT_NCURSES_SRC_RELEASE=y -CT_NCURSES_PATCH_ORDER="global" -# CT_NCURSES_V_6_1 is not set -CT_NCURSES_V_6_0=y -# CT_NCURSES_NO_VERSIONS is not set -CT_NCURSES_VERSION="6.0" -CT_NCURSES_MIRRORS="ftp://invisible-island.net/ncurses $(CT_Mirrors GNU ncurses)" -CT_NCURSES_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_NCURSES_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_NCURSES_ARCHIVE_FORMATS=".tar.gz" -CT_NCURSES_SIGNATURE_FORMAT="packed/.sig" -CT_NCURSES_HOST_CONFIG_ARGS="" -CT_NCURSES_HOST_DISABLE_DB=y -CT_NCURSES_HOST_FALLBACKS="linux,xterm,xterm-color,xterm-256color,vt100" -CT_NCURSES_TARGET_CONFIG_ARGS="" -# CT_NCURSES_TARGET_DISABLE_DB is not set -CT_NCURSES_TARGET_FALLBACKS="" -CT_COMP_LIBS_ZLIB=y -CT_COMP_LIBS_ZLIB_PKG_KSYM="ZLIB" -CT_ZLIB_DIR_NAME="zlib" -CT_ZLIB_PKG_NAME="zlib" -CT_ZLIB_SRC_RELEASE=y -CT_ZLIB_PATCH_ORDER="global" -CT_ZLIB_V_1_2_11=y -# CT_ZLIB_NO_VERSIONS is not set -CT_ZLIB_VERSION="1.2.11" -CT_ZLIB_MIRRORS="http://downloads.sourceforge.net/project/libpng/zlib/${CT_ZLIB_VERSION}" -CT_ZLIB_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_ZLIB_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_ZLIB_ARCHIVE_FORMATS=".tar.xz .tar.gz" -CT_ZLIB_SIGNATURE_FORMAT="packed/.asc" -CT_ALL_COMP_LIBS_CHOICES="CLOOG EXPAT GETTEXT GMP ISL LIBELF LIBICONV MPC MPFR NCURSES ZLIB" -CT_LIBICONV_NEEDED=y -CT_GETTEXT_NEEDED=y -CT_GMP_NEEDED=y -CT_MPFR_NEEDED=y -CT_ISL_NEEDED=y -CT_MPC_NEEDED=y -CT_LIBELF_TARGET=y -CT_EXPAT_NEEDED=y -CT_NCURSES_NEEDED=y -CT_ZLIB_NEEDED=y -CT_LIBICONV=y -CT_GETTEXT=y -CT_GMP=y -CT_MPFR=y -CT_ISL=y -CT_MPC=y -CT_EXPAT=y -CT_NCURSES=y -CT_ZLIB=y - -# -# Companion tools -# -# CT_COMP_TOOLS_FOR_HOST is not set -CT_COMP_TOOLS_AUTOCONF=y -CT_COMP_TOOLS_AUTOCONF_PKG_KSYM="AUTOCONF" -CT_AUTOCONF_DIR_NAME="autoconf" -CT_AUTOCONF_PKG_NAME="autoconf" -CT_AUTOCONF_SRC_RELEASE=y -CT_AUTOCONF_PATCH_ORDER="global" -CT_AUTOCONF_V_2_69=y -# CT_AUTOCONF_V_2_65 is not set -# CT_AUTOCONF_NO_VERSIONS is not set -CT_AUTOCONF_VERSION="2.69" -CT_AUTOCONF_MIRRORS="$(CT_Mirrors GNU autoconf)" -CT_AUTOCONF_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_AUTOCONF_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_AUTOCONF_ARCHIVE_FORMATS=".tar.xz .tar.gz" -CT_AUTOCONF_SIGNATURE_FORMAT="packed/.sig" -CT_COMP_TOOLS_AUTOMAKE=y -CT_COMP_TOOLS_AUTOMAKE_PKG_KSYM="AUTOMAKE" -CT_AUTOMAKE_DIR_NAME="automake" -CT_AUTOMAKE_PKG_NAME="automake" -CT_AUTOMAKE_SRC_RELEASE=y -CT_AUTOMAKE_PATCH_ORDER="global" -# CT_AUTOMAKE_V_1_16 is not set -CT_AUTOMAKE_V_1_15=y -# CT_AUTOMAKE_NO_VERSIONS is not set -CT_AUTOMAKE_VERSION="1.15.1" -CT_AUTOMAKE_MIRRORS="$(CT_Mirrors GNU automake)" -CT_AUTOMAKE_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_AUTOMAKE_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_AUTOMAKE_ARCHIVE_FORMATS=".tar.xz .tar.gz" -CT_AUTOMAKE_SIGNATURE_FORMAT="packed/.sig" -# CT_COMP_TOOLS_BISON is not set -# CT_COMP_TOOLS_DTC is not set -CT_COMP_TOOLS_LIBTOOL=y -CT_COMP_TOOLS_LIBTOOL_PKG_KSYM="LIBTOOL" -CT_LIBTOOL_DIR_NAME="libtool" -CT_LIBTOOL_PKG_NAME="libtool" -CT_LIBTOOL_SRC_RELEASE=y -CT_LIBTOOL_PATCH_ORDER="global" -CT_LIBTOOL_V_2_4=y -# CT_LIBTOOL_NO_VERSIONS is not set -CT_LIBTOOL_VERSION="2.4.6" -CT_LIBTOOL_MIRRORS="$(CT_Mirrors GNU libtool)" -CT_LIBTOOL_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_LIBTOOL_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_LIBTOOL_ARCHIVE_FORMATS=".tar.xz .tar.gz" -CT_LIBTOOL_SIGNATURE_FORMAT="packed/.sig" -CT_COMP_TOOLS_M4=y -CT_COMP_TOOLS_M4_PKG_KSYM="M4" -CT_M4_DIR_NAME="m4" -CT_M4_PKG_NAME="m4" -CT_M4_SRC_RELEASE=y -CT_M4_PATCH_ORDER="global" -CT_M4_V_1_4=y -# CT_M4_NO_VERSIONS is not set -CT_M4_VERSION="1.4.18" -CT_M4_MIRRORS="$(CT_Mirrors GNU m4)" -CT_M4_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_M4_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_M4_ARCHIVE_FORMATS=".tar.xz .tar.bz2 .tar.gz" -CT_M4_SIGNATURE_FORMAT="packed/.sig" -CT_COMP_TOOLS_MAKE=y -CT_COMP_TOOLS_MAKE_PKG_KSYM="MAKE" -CT_MAKE_DIR_NAME="make" -CT_MAKE_PKG_NAME="make" -CT_MAKE_SRC_RELEASE=y -CT_MAKE_PATCH_ORDER="global" -CT_MAKE_V_4_2=y -# CT_MAKE_NO_VERSIONS is not set -CT_MAKE_VERSION="4.2.1" -CT_MAKE_MIRRORS="$(CT_Mirrors GNU make)" -CT_MAKE_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_MAKE_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_MAKE_ARCHIVE_FORMATS=".tar.bz2 .tar.gz" -CT_MAKE_SIGNATURE_FORMAT="packed/.sig" -CT_MAKE_later_than_4_0=y -CT_MAKE_4_0_or_later=y -# CT_MAKE_GMAKE_SYMLINK is not set -# CT_MAKE_GNUMAKE_SYMLINK is not set -CT_ALL_COMP_TOOLS_CHOICES="AUTOCONF AUTOMAKE BISON DTC LIBTOOL M4 MAKE" diff --git a/build-config/conf/crosstool/gcc-8.3.0/uClibc-ng-1.0.38/crosstool.x86_64.config b/build-config/conf/crosstool/gcc-8.3.0/uClibc-ng-1.0.38/crosstool.x86_64.config deleted file mode 100644 index 40b4254a7..000000000 --- a/build-config/conf/crosstool/gcc-8.3.0/uClibc-ng-1.0.38/crosstool.x86_64.config +++ /dev/null @@ -1,936 +0,0 @@ -# -# Automatically generated file; DO NOT EDIT. -# crosstool-NG Configuration -# -CT_CONFIGURE_has_static_link=y -CT_CONFIGURE_has_cxx11=y -CT_CONFIGURE_has_wget=y -CT_CONFIGURE_has_curl=y -CT_CONFIGURE_has_make_3_81_or_newer=y -CT_CONFIGURE_has_make_4_0_or_newer=y -CT_CONFIGURE_has_libtool_2_4_or_newer=y -CT_CONFIGURE_has_libtoolize_2_4_or_newer=y -CT_CONFIGURE_has_autoconf_2_65_or_newer=y -CT_CONFIGURE_has_autoreconf_2_65_or_newer=y -CT_CONFIGURE_has_automake_1_15_or_newer=y -CT_CONFIGURE_has_gnu_m4_1_4_12_or_newer=y -CT_CONFIGURE_has_python_3_4_or_newer=y -CT_CONFIGURE_has_bison_2_7_or_newer=y -CT_CONFIGURE_has_python=y -CT_CONFIGURE_has_dtc=y -CT_CONFIGURE_has_git=y -CT_CONFIGURE_has_md5sum=y -CT_CONFIGURE_has_sha1sum=y -CT_CONFIGURE_has_sha256sum=y -CT_CONFIGURE_has_sha512sum=y -CT_CONFIGURE_has_install_with_strip_program=y -CT_CONFIG_VERSION_CURRENT="3" -CT_CONFIG_VERSION="3" -CT_MODULES=y - -# -# Paths and misc options -# - -# -# crosstool-NG behavior -# -# CT_OBSOLETE is not set -# CT_EXPERIMENTAL is not set -# CT_DEBUG_CT is not set - -# -# Paths -# -CT_LOCAL_TARBALLS_DIR="${DOWNLOADDIR}" -CT_SAVE_TARBALLS=y -# CT_TARBALLS_BUILDROOT_LAYOUT is not set -CT_WORK_DIR="${CT_TOP_DIR}/build" -CT_BUILD_TOP_DIR="${CT_WORK_DIR:-${CT_TOP_DIR}/.build}/${CT_HOST:+HOST-${CT_HOST}/}${CT_TARGET}" -CT_PREFIX_DIR="${XTOOLS_INSTALL_DIR}/${CT_TARGET}" -CT_RM_RF_PREFIX_DIR=y -CT_REMOVE_DOCS=y -CT_INSTALL_LICENSES=y -CT_PREFIX_DIR_RO=y -CT_STRIP_HOST_TOOLCHAIN_EXECUTABLES=y -CT_STRIP_TARGET_TOOLCHAIN_EXECUTABLES=y - -# -# Downloading -# -# CT_DOWNLOAD_AGENT_WGET is not set -# CT_DOWNLOAD_AGENT_CURL is not set -CT_DOWNLOAD_AGENT_NONE=y -CT_FORBID_DOWNLOAD=y - -# -# Extracting -# -# CT_FORCE_EXTRACT is not set -CT_OVERRIDE_CONFIG_GUESS_SUB=y -# CT_ONLY_EXTRACT is not set -CT_PATCH_BUNDLED=y -# CT_PATCH_BUNDLED_LOCAL is not set -CT_PATCH_ORDER="bundled,local" -CT_PATCH_SINGLE=y -CT_PATCH_USE_LOCAL=y -CT_LOCAL_PATCH_DIR="${CROSSTOOL_NG_LOCAL_PATCHDIR}" - - -# -# Build behavior -# -CT_PARALLEL_JOBS=0 -CT_LOAD="" -CT_USE_PIPES=y -CT_EXTRA_CFLAGS_FOR_BUILD="" -CT_EXTRA_LDFLAGS_FOR_BUILD="" -CT_EXTRA_CFLAGS_FOR_HOST="" -CT_EXTRA_LDFLAGS_FOR_HOST="" -# CT_CONFIG_SHELL_SH is not set -# CT_CONFIG_SHELL_ASH is not set -CT_CONFIG_SHELL_BASH=y -# CT_CONFIG_SHELL_CUSTOM is not set -CT_CONFIG_SHELL="${bash}" - -# -# Logging -# -# CT_LOG_ERROR is not set -# CT_LOG_WARN is not set -CT_LOG_INFO=y -# CT_LOG_EXTRA is not set -# CT_LOG_ALL is not set -# CT_LOG_DEBUG is not set -CT_LOG_LEVEL_MAX="INFO" -# CT_LOG_SEE_TOOLS_WARN is not set -# CT_LOG_PROGRESS_BAR is not set -CT_LOG_TO_FILE=y -CT_LOG_FILE_COMPRESS=y - -# -# Target options -# -# CT_ARCH_ALPHA is not set -# CT_ARCH_ARC is not set -# CT_ARCH_ARM is not set -# CT_ARCH_AVR is not set -# CT_ARCH_M68K is not set -# CT_ARCH_MIPS is not set -# CT_ARCH_NIOS2 is not set -# CT_ARCH_POWERPC is not set -# CT_ARCH_S390 is not set -# CT_ARCH_SH is not set -# CT_ARCH_SPARC is not set -CT_ARCH_X86=y -# CT_ARCH_XTENSA is not set -CT_ARCH="x86" -CT_ARCH_CHOICE_KSYM="X86" -# CT_ARCH_ALPHA_EV4 is not set -# CT_ARCH_ALPHA_EV45 is not set -# CT_ARCH_ALPHA_EV5 is not set -# CT_ARCH_ALPHA_EV56 is not set -# CT_ARCH_ALPHA_EV6 is not set -# CT_ARCH_ALPHA_EV67 is not set -CT_ARCH_CPU="" -CT_ARCH_TUNE="" -CT_ARCH_X86_SHOW=y - -# -# Options for x86 -# -CT_ARCH_X86_PKG_KSYM="" -CT_ALL_ARCH_CHOICES="ALPHA ARC ARM AVR M68K MICROBLAZE MIPS MOXIE MSP430 NIOS2 POWERPC RISCV S390 SH SPARC X86 XTENSA" -CT_ARCH_SUFFIX="" -# CT_OMIT_TARGET_VENDOR is not set - -# -# Generic target options -# -# CT_MULTILIB is not set -CT_DEMULTILIB=y -CT_ARCH_USE_MMU=y -CT_ARCH_SUPPORTS_32=y -CT_ARCH_SUPPORTS_64=y -CT_ARCH_DEFAULT_32=y -CT_ARCH_BITNESS=64 -# CT_ARCH_32 is not set -CT_ARCH_64=y - -# -# Target optimisations -# -CT_ARCH_SUPPORTS_WITH_ARCH=y -CT_ARCH_SUPPORTS_WITH_CPU=y -CT_ARCH_SUPPORTS_WITH_TUNE=y -CT_ARCH_ARCH="" -CT_TARGET_CFLAGS="" -CT_TARGET_LDFLAGS="" - -# -# Toolchain options -# - -# -# General toolchain options -# -CT_FORCE_SYSROOT=y -CT_USE_SYSROOT=y -CT_SYSROOT_NAME="sysroot" -CT_SYSROOT_DIR_PREFIX="" -CT_WANTS_STATIC_LINK=y -CT_WANTS_STATIC_LINK_CXX=y -# CT_STATIC_TOOLCHAIN is not set -CT_SHOW_CT_VERSION=y -CT_TOOLCHAIN_PKGVERSION="ONIE-${LSB_RELEASE_TAG}" -CT_TOOLCHAIN_BUGURL="" - -# -# Tuple completion and aliasing -# -CT_TARGET_VENDOR="onie" -CT_TARGET_ALIAS_SED_EXPR="" -CT_TARGET_ALIAS="x86_64" - -# -# Toolchain type -# -CT_CROSS=y -# CT_CANADIAN is not set -CT_TOOLCHAIN_TYPE="cross" - -# -# Build system -# -CT_BUILD="" -CT_BUILD_PREFIX="" -CT_BUILD_SUFFIX="" - -# -# Misc options -# -CT_TOOLCHAIN_ENABLE_NLS=y - -# -# Operating System -# -CT_KERNEL_SUPPORTS_SHARED_LIBS=y -# CT_KERNEL_BARE_METAL is not set -CT_KERNEL_LINUX=y -CT_KERNEL="linux" -CT_KERNEL_CHOICE_KSYM="LINUX" -CT_KERNEL_LINUX_SHOW=y - -# -# Options for linux -# -# ONIE xtools.make will apply the value of LINUX_VERSION -# to set: -# CT_LINUX_VERSION a.b.c -# CT_LINUX_V_a_b=y -# Note this will require adding entries for newer kernels. -CT_KERNEL_LINUX_PKG_KSYM="LINUX" -CT_LINUX_DIR_NAME="linux" -CT_LINUX_PKG_NAME="linux" -CT_LINUX_SRC_RELEASE=y -CT_LINUX_PATCH_ORDER="global" -# CT_LINUX_V_4_20 is not set -# CT_LINUX_V_4_19 is not set -# CT_LINUX_V_4_18 is not set -# CT_LINUX_V_4_17 is not set -# CT_LINUX_V_4_16 is not set -# CT_LINUX_V_4_15 is not set -# CT_LINUX_V_4_14 is not set -# CT_LINUX_V_4_13 is not set -# CT_LINUX_V_4_12 is not set -# CT_LINUX_V_4_11 is not set -# CT_LINUX_V_4_10 is not set -# CT_LINUX_V_4_9 is not set -# CT_LINUX_V_4_4 is not set -# CT_LINUX_V_4_1 is not set -# CT_LINUX_V_3_16 is not set -# CT_LINUX_V_3_13 is not set -# CT_LINUX_V_3_12 is not set -# CT_LINUX_V_3_10 is not set -# CT_LINUX_V_3_4 is not set -# CT_LINUX_V_3_2 is not set -# CT_LINUX_V_2_6_32 is not set -# CT_LINUX_NO_VERSIONS is not set -CT_LINUX_VERSION="ONIE set by xtools.make" -CT_LINUX_MIRRORS="$(CT_Mirrors kernel.org linux ${CT_LINUX_VERSION})" -CT_LINUX_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_LINUX_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_LINUX_ARCHIVE_FORMATS=".tar.xz .tar.gz" -CT_LINUX_SIGNATURE_FORMAT="unpacked/.sign" -CT_LINUX_later_than_4_8=y -CT_LINUX_4_8_or_later=y -CT_LINUX_later_than_3_7=y -CT_LINUX_3_7_or_later=y -CT_LINUX_later_than_3_2=y -CT_LINUX_3_2_or_later=y -CT_KERNEL_LINUX_VERBOSITY_0=y -# CT_KERNEL_LINUX_VERBOSITY_1 is not set -# CT_KERNEL_LINUX_VERBOSITY_2 is not set -CT_KERNEL_LINUX_VERBOSE_LEVEL=0 -CT_KERNEL_LINUX_INSTALL_CHECK=y -CT_ALL_KERNEL_CHOICES="BARE_METAL LINUX WINDOWS" - -# -# Common kernel options -# -CT_SHARED_LIBS=y - -# -# Binary utilities -# -CT_ARCH_BINFMT_ELF=y -CT_BINUTILS_BINUTILS=y -CT_BINUTILS="binutils" -CT_BINUTILS_CHOICE_KSYM="BINUTILS" -CT_BINUTILS_BINUTILS_SHOW=y - -# -# Options for binutils -# -CT_BINUTILS_BINUTILS_PKG_KSYM="BINUTILS" -CT_BINUTILS_DIR_NAME="binutils" -CT_BINUTILS_USE_GNU=y -CT_BINUTILS_USE="BINUTILS" -CT_BINUTILS_PKG_NAME="binutils" -CT_BINUTILS_SRC_RELEASE=y -CT_BINUTILS_PATCH_ORDER="global" -CT_BINUTILS_V_2_32=y -# CT_BINUTILS_V_2_31 is not set -# CT_BINUTILS_V_2_30 is not set -# CT_BINUTILS_V_2_29 is not set -# CT_BINUTILS_V_2_28 is not set -# CT_BINUTILS_V_2_27 is not set -# CT_BINUTILS_V_2_26 is not set -# CT_BINUTILS_NO_VERSIONS is not set -CT_BINUTILS_VERSION="2.32" -CT_BINUTILS_MIRRORS="$(CT_Mirrors GNU binutils) $(CT_Mirrors sourceware binutils/releases)" -CT_BINUTILS_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_BINUTILS_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_BINUTILS_ARCHIVE_FORMATS=".tar.xz .tar.bz2 .tar.gz" -CT_BINUTILS_SIGNATURE_FORMAT="packed/.sig" -CT_BINUTILS_later_than_2_30=y -CT_BINUTILS_2_30_or_later=y -CT_BINUTILS_later_than_2_27=y -CT_BINUTILS_2_27_or_later=y -CT_BINUTILS_later_than_2_25=y -CT_BINUTILS_2_25_or_later=y -CT_BINUTILS_later_than_2_23=y -CT_BINUTILS_2_23_or_later=y - -# -# GNU binutils -# -CT_BINUTILS_HAS_HASH_STYLE=y -CT_BINUTILS_HAS_GOLD=y -CT_BINUTILS_HAS_PLUGINS=y -CT_BINUTILS_HAS_PKGVERSION_BUGURL=y -CT_BINUTILS_GOLD_SUPPORTS_ARCH=y -CT_BINUTILS_GOLD_SUPPORT=y -CT_BINUTILS_LINKER_LD=y -# CT_BINUTILS_LINKER_GOLD is not set -# CT_BINUTILS_LINKER_LD_GOLD is not set -# CT_BINUTILS_LINKER_GOLD_LD is not set -CT_BINUTILS_LINKERS_LIST="ld" -CT_BINUTILS_LINKER_DEFAULT="bfd" -# CT_BINUTILS_PLUGINS is not set -CT_BINUTILS_RELRO=m -CT_BINUTILS_EXTRA_CONFIG_ARRAY="" -CT_BINUTILS_FOR_TARGET=y -CT_BINUTILS_FOR_TARGET_IBERTY=y -CT_BINUTILS_FOR_TARGET_BFD=y -CT_ALL_BINUTILS_CHOICES="BINUTILS" - -# -# C-library -# -# CT_LIBC_GLIBC is not set -# CT_LIBC_NEWLIB is not set -# CT_LIBC_NONE is not set -CT_LIBC_UCLIBC=y -CT_LIBC="uClibc" -CT_LIBC_CHOICE_KSYM="UCLIBC" -CT_THREADS="nptl" -# CT_GLIBC_USE_GNU is not set -# CT_GLIBC_SRC_RELEASE is not set -# CT_GLIBC_V_2_29 is not set -# CT_GLIBC_V_2_28 is not set -# CT_GLIBC_V_2_27 is not set -# CT_GLIBC_V_2_26 is not set -# CT_GLIBC_V_2_25 is not set -# CT_GLIBC_V_2_24 is not set -# CT_GLIBC_V_2_23 is not set -# CT_GLIBC_V_2_19 is not set -# CT_GLIBC_V_2_17 is not set -# CT_GLIBC_V_2_12_1 is not set -# CT_NEWLIB_USE_REDHAT is not set -# CT_NEWLIB_SRC_RELEASE is not set -# CT_NEWLIB_V_3_1 is not set -# CT_NEWLIB_V_3_0 is not set -# CT_NEWLIB_V_2_5 is not set -CT_LIBC_UCLIBC_SHOW=y - -# -# Options for uClibc -# -CT_LIBC_UCLIBC_PKG_KSYM="UCLIBC" -CT_UCLIBC_DIR_NAME="uClibc" -CT_UCLIBC_USE_UCLIBC_NG_ORG=y -CT_UCLIBC_USE="UCLIBC_NG" -CT_UCLIBC_NG_PKG_NAME="uClibc-ng" -CT_UCLIBC_NG_SRC_RELEASE=y -CT_UCLIBC_NG_PATCH_ORDER="global" -# CT_UCLIBC_NG_V_1_0_31 is not set -# CT_UCLIBC_NG_V_1_0_30 is not set -# CT_UCLIBC_NG_V_1_0_29 is not set -# CT_UCLIBC_NG_V_1_0_28 is not set -# CT_UCLIBC_NG_V_1_0_27 is not set -# CT_UCLIBC_NG_V_1_0_26 is not set -#CT_UCLIBC_NG_V_1_0_35 is not set -CT_UCLIBC_NG_V_1_0_38=y -# CT_UCLIBC_NG_NO_VERSIONS is not set -CT_UCLIBC_NG_VERSION="1.0.38" -CT_UCLIBC_NG_MIRRORS="http://downloads.uclibc-ng.org/releases/${CT_UCLIBC_NG_VERSION}" -CT_UCLIBC_NG_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_UCLIBC_NG_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_UCLIBC_NG_ARCHIVE_FORMATS=".tar.xz .tar.lz .tar.bz2 .tar.gz" -CT_UCLIBC_NG_SIGNATURE_FORMAT="packed/.asc" -CT_UCLIBC_later_than_1_0_23=y -CT_UCLIBC_1_0_23_or_later=y -CT_UCLIBC_later_than_1_0_21=y -CT_UCLIBC_1_0_21_or_later=y -CT_UCLIBC_later_than_1_0_15=y -CT_UCLIBC_1_0_15_or_later=y -CT_UCLIBC_later_than_1_0_0=y -CT_UCLIBC_1_0_0_or_later=y -CT_UCLIBC_later_than_0_9_33_2=y -CT_UCLIBC_0_9_33_2_or_later=y -CT_LIBC_UCLIBC_HAS_LIBICONV=y -CT_LIBC_UCLIBC_PARALLEL=y -CT_LIBC_UCLIBC_NG=y -CT_UCLIBC_MERGED_LINUXTHREADS=y -CT_LIBC_UCLIBC_VERBOSITY_0=y -# CT_LIBC_UCLIBC_VERBOSITY_1 is not set -# CT_LIBC_UCLIBC_VERBOSITY_2 is not set -CT_LIBC_UCLIBC_VERBOSITY="" -CT_LIBC_UCLIBC_DEBUG_LEVEL_0=y -# CT_LIBC_UCLIBC_DEBUG_LEVEL_1 is not set -# CT_LIBC_UCLIBC_DEBUG_LEVEL_2 is not set -# CT_LIBC_UCLIBC_DEBUG_LEVEL_3 is not set -CT_LIBC_UCLIBC_DEBUG_LEVEL=0 -CT_LIBC_UCLIBC_CONFIG_FILE="${UCLIBC_CONFIG}" -CT_LIBC_UCLIBC_LNXTHRD="" -CT_LIBC_UCLIBC_LOCALES=y -# CT_LIBC_UCLIBC_LIBICONV is not set -CT_LIBC_UCLIBC_IPV6=y -CT_LIBC_UCLIBC_WCHAR=y -CT_LIBC_UCLIBC_FENV=y -CT_LIBC_UCLIBC_HAS_SSP=y -# CT_LIBC_UCLIBC_BUILD_SSP is not set -CT_ALL_LIBC_CHOICES="AVR_LIBC BIONIC GLIBC MINGW_W64 MOXIEBOX MUSL NEWLIB NONE UCLIBC" -CT_LIBC_SUPPORT_THREADS_ANY=y -CT_LIBC_SUPPORT_THREADS_NATIVE=y -CT_LIBC_SUPPORT_THREADS_LT=y -CT_LIBC_SUPPORT_THREADS_NONE=y - -# -# Common C library options -# -CT_THREADS_NATIVE=y -# CT_THREADS_LT is not set -# CT_THREADS_NONE is not set -# CT_CREATE_LDSO_CONF is not set -CT_LIBC_XLDD=y - -# -# C compiler -# -CT_CC_CORE_PASSES_NEEDED=y -CT_CC_CORE_PASS_1_NEEDED=y -CT_CC_CORE_PASS_2_NEEDED=y -CT_CC_SUPPORT_CXX=y -CT_CC_SUPPORT_FORTRAN=y -CT_CC_SUPPORT_ADA=y -CT_CC_SUPPORT_OBJC=y -CT_CC_SUPPORT_OBJCXX=y -CT_CC_SUPPORT_GOLANG=y -CT_CC_GCC=y -CT_CC="gcc" -CT_CC_CHOICE_KSYM="GCC" -CT_CC_GCC_SHOW=y - -# -# Options for gcc -# -CT_CC_GCC_PKG_KSYM="GCC" -CT_GCC_DIR_NAME="gcc" -CT_GCC_USE_GNU=y -CT_GCC_USE="GCC" -CT_GCC_PKG_NAME="gcc" -CT_GCC_SRC_RELEASE=y -CT_GCC_PATCH_ORDER="global" -CT_GCC_V_8=y -# CT_GCC_V_7 is not set -# CT_GCC_V_6 is not set -# CT_GCC_V_5 is not set -# CT_GCC_V_4_9 is not set -# CT_GCC_NO_VERSIONS is not set -CT_GCC_VERSION="8.3.0" -CT_GCC_MIRRORS="$(CT_Mirrors GNU gcc/gcc-${CT_GCC_VERSION}) $(CT_Mirrors sourceware gcc/releases/gcc-${CT_GCC_VERSION})" -CT_GCC_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_GCC_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_GCC_ARCHIVE_FORMATS=".tar.xz .tar.gz" -CT_GCC_SIGNATURE_FORMAT="" -CT_GCC_later_than_7=y -CT_GCC_7_or_later=y -CT_GCC_later_than_6=y -CT_GCC_6_or_later=y -CT_GCC_later_than_5=y -CT_GCC_5_or_later=y -CT_GCC_later_than_4_9=y -CT_GCC_4_9_or_later=y -CT_GCC_later_than_4_8=y -CT_GCC_4_8_or_later=y -CT_CC_GCC_HAS_LIBMPX=y -CT_CC_GCC_ENABLE_CXX_FLAGS="" -CT_CC_GCC_CORE_EXTRA_CONFIG_ARRAY="" -CT_CC_GCC_EXTRA_CONFIG_ARRAY="" -CT_CC_GCC_STATIC_LIBSTDCXX=y -# CT_CC_GCC_SYSTEM_ZLIB is not set -CT_CC_GCC_CONFIG_TLS=m - -# -# Optimisation features -# -CT_CC_GCC_USE_GRAPHITE=y -CT_CC_GCC_USE_LTO=y - -# -# Settings for libraries running on target -# -CT_CC_GCC_ENABLE_TARGET_OPTSPACE=y -# CT_CC_GCC_LIBMUDFLAP is not set -# CT_CC_GCC_LIBGOMP is not set -# CT_CC_GCC_LIBSSP is not set -# CT_CC_GCC_LIBQUADMATH is not set -# CT_CC_GCC_LIBMPX is not set - -# -# Misc. obscure options. -# -CT_CC_CXA_ATEXIT=y -# CT_CC_GCC_DISABLE_PCH is not set -CT_CC_GCC_SJLJ_EXCEPTIONS=m -CT_CC_GCC_LDBL_128=m -# CT_CC_GCC_BUILD_ID is not set -CT_CC_GCC_LNK_HASH_STYLE_DEFAULT=y -# CT_CC_GCC_LNK_HASH_STYLE_SYSV is not set -# CT_CC_GCC_LNK_HASH_STYLE_GNU is not set -# CT_CC_GCC_LNK_HASH_STYLE_BOTH is not set -CT_CC_GCC_LNK_HASH_STYLE="" -CT_CC_GCC_DEC_FLOAT_AUTO=y -# CT_CC_GCC_DEC_FLOAT_BID is not set -# CT_CC_GCC_DEC_FLOAT_DPD is not set -# CT_CC_GCC_DEC_FLOATS_NO is not set -CT_ALL_CC_CHOICES="GCC" - -# -# Additional supported languages: -# -CT_CC_LANG_CXX=y -# CT_CC_LANG_FORTRAN is not set - -# -# Debug facilities -# -CT_DEBUG_DUMA=y -CT_DEBUG_DUMA_PKG_KSYM="DUMA" -CT_DUMA_DIR_NAME="duma" -CT_DUMA_PKG_NAME="duma" -CT_DUMA_SRC_RELEASE=y -CT_DUMA_PATCH_ORDER="global" -CT_DUMA_V_2_5_15=y -# CT_DUMA_NO_VERSIONS is not set -CT_DUMA_VERSION="2_5_15" -CT_DUMA_MIRRORS="http://downloads.sourceforge.net/project/duma/duma/${CT_DUMA_VERSION//_/.}" -CT_DUMA_ARCHIVE_FILENAME="@{pkg_name}_@{version}" -CT_DUMA_ARCHIVE_DIRNAME="@{pkg_name}_@{version}" -CT_DUMA_ARCHIVE_FORMATS=".tar.gz .zip" -CT_DUMA_SIGNATURE_FORMAT="" -CT_DUMA_SO=y -CT_DUMA_CUSTOM_WRAPPER=y -CT_DEBUG_GDB=y -CT_DEBUG_GDB_PKG_KSYM="GDB" -CT_GDB_DIR_NAME="gdb" -CT_GDB_USE_GNU=y -CT_GDB_USE="GDB" -CT_GDB_PKG_NAME="gdb" -CT_GDB_SRC_RELEASE=y -CT_GDB_PATCH_ORDER="global" -# CT_GDB_V_8_2 is not set -# CT_GDB_V_8_1 is not set -# CT_GDB_V_8_0 is not set -CT_GDB_V_7_12=y -# CT_GDB_V_7_11 is not set -# CT_GDB_NO_VERSIONS is not set -CT_GDB_VERSION="7.12.1" -CT_GDB_MIRRORS="$(CT_Mirrors GNU gdb) $(CT_Mirrors sourceware gdb/releases)" -CT_GDB_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_GDB_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_GDB_ARCHIVE_FORMATS=".tar.xz .tar.gz" -CT_GDB_SIGNATURE_FORMAT="" -CT_GDB_8_0_or_older=y -CT_GDB_older_than_8_0=y -CT_GDB_later_than_7_12=y -CT_GDB_7_12_or_later=y -CT_GDB_later_than_7_2=y -CT_GDB_7_2_or_later=y -CT_GDB_later_than_7_0=y -CT_GDB_7_0_or_later=y -CT_GDB_CROSS=y -# CT_GDB_CROSS_STATIC is not set -# CT_GDB_CROSS_SIM is not set -CT_GDB_CROSS_PYTHON=y -CT_GDB_CROSS_PYTHON_BINARY="" -CT_GDB_CROSS_EXTRA_CONFIG_ARRAY="" -# CT_GDB_NATIVE is not set -CT_GDB_GDBSERVER=y -# CT_GDB_NATIVE_STATIC_LIBSTDCXX is not set -CT_GDB_HAS_PKGVERSION_BUGURL=y -CT_GDB_HAS_PYTHON=y -CT_GDB_INSTALL_GDBINIT=y -CT_GDB_HAS_DISABLE_CXX_BUILD=y -CT_GDB_HAS_IPA_LIB=y -CT_DEBUG_LTRACE=y -CT_DEBUG_LTRACE_PKG_KSYM="LTRACE" -CT_LTRACE_DIR_NAME="ltrace" -CT_LTRACE_PKG_NAME="ltrace" -CT_LTRACE_SRC_RELEASE=y -CT_LTRACE_PATCH_ORDER="global" -CT_LTRACE_V_0_7_3=y -# CT_LTRACE_NO_VERSIONS is not set -CT_LTRACE_VERSION="0.7.3" -CT_LTRACE_MIRRORS="http://ftp.debian.org/debian/pool/main/l/ltrace ftp:://ftp.debian.org/debian/pool/main/l/ltrace" -CT_LTRACE_ARCHIVE_FILENAME="@{pkg_name}_@{version}.orig" -CT_LTRACE_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_LTRACE_ARCHIVE_FORMATS=".tar.bz2" -CT_LTRACE_SIGNATURE_FORMAT="" -CT_DEBUG_STRACE=y -CT_DEBUG_STRACE_PKG_KSYM="STRACE" -CT_STRACE_DIR_NAME="strace" -CT_STRACE_PKG_NAME="strace" -CT_STRACE_SRC_RELEASE=y -CT_STRACE_PATCH_ORDER="global" -CT_STRACE_V_4_26=y -# CT_STRACE_V_4_25 is not set -# CT_STRACE_V_4_24 is not set -# CT_STRACE_V_4_23 is not set -# CT_STRACE_V_4_22 is not set -# CT_STRACE_V_4_21 is not set -# CT_STRACE_V_4_20 is not set -# CT_STRACE_V_4_19 is not set -# CT_STRACE_V_4_18 is not set -# CT_STRACE_V_4_17 is not set -# CT_STRACE_V_4_16 is not set -# CT_STRACE_V_4_15 is not set -# CT_STRACE_NO_VERSIONS is not set -CT_STRACE_VERSION="4.26" -CT_STRACE_MIRRORS="https://strace.io/files/${CT_STRACE_VERSION}" -CT_STRACE_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_STRACE_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_STRACE_ARCHIVE_FORMATS=".tar.xz" -CT_STRACE_SIGNATURE_FORMAT="" -CT_ALL_DEBUG_CHOICES="DUMA GDB LTRACE STRACE" - -# -# Companion libraries -# -# CT_COMPLIBS_CHECK is not set -# CT_COMP_LIBS_CLOOG is not set -CT_COMP_LIBS_EXPAT=y -CT_COMP_LIBS_EXPAT_PKG_KSYM="EXPAT" -CT_EXPAT_DIR_NAME="expat" -CT_EXPAT_PKG_NAME="expat" -CT_EXPAT_SRC_RELEASE=y -CT_EXPAT_PATCH_ORDER="global" -CT_EXPAT_V_2_2=y -# CT_EXPAT_NO_VERSIONS is not set -CT_EXPAT_VERSION="2.2.6" -CT_EXPAT_MIRRORS="http://downloads.sourceforge.net/project/expat/expat/${CT_EXPAT_VERSION}" -CT_EXPAT_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_EXPAT_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_EXPAT_ARCHIVE_FORMATS=".tar.bz2" -CT_EXPAT_SIGNATURE_FORMAT="" -CT_COMP_LIBS_GETTEXT=y -CT_COMP_LIBS_GETTEXT_PKG_KSYM="GETTEXT" -CT_GETTEXT_DIR_NAME="gettext" -CT_GETTEXT_PKG_NAME="gettext" -CT_GETTEXT_SRC_RELEASE=y -CT_GETTEXT_PATCH_ORDER="global" -CT_GETTEXT_V_0_19_8_1=y -# CT_GETTEXT_NO_VERSIONS is not set -CT_GETTEXT_VERSION="0.19.8.1" -CT_GETTEXT_MIRRORS="$(CT_Mirrors GNU gettext)" -CT_GETTEXT_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_GETTEXT_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_GETTEXT_ARCHIVE_FORMATS=".tar.xz .tar.lz .tar.gz" -CT_GETTEXT_SIGNATURE_FORMAT="packed/.sig" -CT_COMP_LIBS_GMP=y -CT_COMP_LIBS_GMP_PKG_KSYM="GMP" -CT_GMP_DIR_NAME="gmp" -CT_GMP_PKG_NAME="gmp" -CT_GMP_SRC_RELEASE=y -CT_GMP_PATCH_ORDER="global" -CT_GMP_V_6_1=y -# CT_GMP_NO_VERSIONS is not set -CT_GMP_VERSION="6.1.2" -CT_GMP_MIRRORS="https://gmplib.org/download/gmp https://gmplib.org/download/gmp/archive $(CT_Mirrors GNU gmp)" -CT_GMP_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_GMP_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_GMP_ARCHIVE_FORMATS=".tar.xz .tar.lz .tar.bz2" -CT_GMP_SIGNATURE_FORMAT="packed/.sig" -CT_GMP_later_than_5_1_0=y -CT_GMP_5_1_0_or_later=y -CT_GMP_later_than_5_0_0=y -CT_GMP_5_0_0_or_later=y -CT_GMP_REQUIRE_5_0_0_or_later=y -CT_COMP_LIBS_ISL=y -CT_COMP_LIBS_ISL_PKG_KSYM="ISL" -CT_ISL_DIR_NAME="isl" -CT_ISL_PKG_NAME="isl" -CT_ISL_SRC_RELEASE=y -CT_ISL_PATCH_ORDER="global" -CT_ISL_V_0_20=y -# CT_ISL_V_0_19 is not set -# CT_ISL_V_0_18 is not set -# CT_ISL_V_0_17 is not set -# CT_ISL_V_0_16 is not set -# CT_ISL_V_0_15 is not set -# CT_ISL_NO_VERSIONS is not set -CT_ISL_VERSION="0.20" -CT_ISL_MIRRORS="http://isl.gforge.inria.fr" -CT_ISL_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_ISL_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_ISL_ARCHIVE_FORMATS=".tar.xz .tar.bz2 .tar.gz" -CT_ISL_SIGNATURE_FORMAT="" -CT_ISL_later_than_0_18=y -CT_ISL_0_18_or_later=y -CT_ISL_later_than_0_15=y -CT_ISL_0_15_or_later=y -CT_ISL_REQUIRE_0_15_or_later=y -CT_ISL_later_than_0_14=y -CT_ISL_0_14_or_later=y -CT_ISL_REQUIRE_0_14_or_later=y -CT_ISL_later_than_0_13=y -CT_ISL_0_13_or_later=y -CT_ISL_later_than_0_12=y -CT_ISL_0_12_or_later=y -CT_ISL_REQUIRE_0_12_or_later=y -CT_COMP_LIBS_LIBELF=y -CT_COMP_LIBS_LIBELF_PKG_KSYM="LIBELF" -CT_LIBELF_DIR_NAME="libelf" -CT_LIBELF_PKG_NAME="libelf" -CT_LIBELF_SRC_RELEASE=y -CT_LIBELF_PATCH_ORDER="global" -CT_LIBELF_V_0_8=y -# CT_LIBELF_NO_VERSIONS is not set -CT_LIBELF_VERSION="0.8.13" -CT_LIBELF_MIRRORS="http://www.mr511.de/software https://fossies.org/linux/misc/old" -CT_LIBELF_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_LIBELF_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_LIBELF_ARCHIVE_FORMATS=".tar.gz" -CT_LIBELF_SIGNATURE_FORMAT="" -CT_COMP_LIBS_LIBICONV=y -CT_COMP_LIBS_LIBICONV_PKG_KSYM="LIBICONV" -CT_LIBICONV_DIR_NAME="libiconv" -CT_LIBICONV_PKG_NAME="libiconv" -CT_LIBICONV_SRC_RELEASE=y -CT_LIBICONV_PATCH_ORDER="global" -CT_LIBICONV_V_1_15=y -# CT_LIBICONV_NO_VERSIONS is not set -CT_LIBICONV_VERSION="1.15" -CT_LIBICONV_MIRRORS="$(CT_Mirrors GNU libiconv)" -CT_LIBICONV_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_LIBICONV_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_LIBICONV_ARCHIVE_FORMATS=".tar.gz" -CT_LIBICONV_SIGNATURE_FORMAT="packed/.sig" -CT_COMP_LIBS_MPC=y -CT_COMP_LIBS_MPC_PKG_KSYM="MPC" -CT_MPC_DIR_NAME="mpc" -CT_MPC_PKG_NAME="mpc" -CT_MPC_SRC_RELEASE=y -CT_MPC_PATCH_ORDER="global" -CT_MPC_V_1_1=y -# CT_MPC_V_1_0 is not set -# CT_MPC_NO_VERSIONS is not set -CT_MPC_VERSION="1.1.0" -CT_MPC_MIRRORS="http://www.multiprecision.org/downloads $(CT_Mirrors GNU mpc)" -CT_MPC_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_MPC_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_MPC_ARCHIVE_FORMATS=".tar.gz" -CT_MPC_SIGNATURE_FORMAT="packed/.sig" -CT_MPC_1_1_0_or_later=y -CT_MPC_1_1_0_or_older=y -CT_COMP_LIBS_MPFR=y -CT_COMP_LIBS_MPFR_PKG_KSYM="MPFR" -CT_MPFR_DIR_NAME="mpfr" -CT_MPFR_PKG_NAME="mpfr" -CT_MPFR_SRC_RELEASE=y -CT_MPFR_PATCH_ORDER="global" -CT_MPFR_V_4_1=y -# CT_MPFR_V_3_1 is not set -# CT_MPFR_NO_VERSIONS is not set -CT_MPFR_VERSION="4.1.0" -CT_MPFR_MIRRORS="http://www.mpfr.org/mpfr-${CT_MPFR_VERSION} $(CT_Mirrors GNU mpfr)" -CT_MPFR_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_MPFR_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_MPFR_ARCHIVE_FORMATS=".tar.xz .tar.bz2 .tar.gz .zip" -CT_MPFR_SIGNATURE_FORMAT="packed/.asc" -CT_MPFR_later_than_4_0_0=y -CT_MPFR_4_0_0_or_later=y -CT_MPFR_later_than_3_0_0=y -CT_MPFR_3_0_0_or_later=y -CT_MPFR_REQUIRE_3_0_0_or_later=y -CT_COMP_LIBS_NCURSES=y -CT_COMP_LIBS_NCURSES_PKG_KSYM="NCURSES" -CT_NCURSES_DIR_NAME="ncurses" -CT_NCURSES_PKG_NAME="ncurses" -CT_NCURSES_SRC_RELEASE=y -CT_NCURSES_PATCH_ORDER="global" -# CT_NCURSES_V_6_1 is not set -CT_NCURSES_V_6_0=y -# CT_NCURSES_NO_VERSIONS is not set -CT_NCURSES_VERSION="6.0" -CT_NCURSES_MIRRORS="ftp://invisible-island.net/ncurses $(CT_Mirrors GNU ncurses)" -CT_NCURSES_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_NCURSES_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_NCURSES_ARCHIVE_FORMATS=".tar.gz" -CT_NCURSES_SIGNATURE_FORMAT="packed/.sig" -CT_NCURSES_HOST_CONFIG_ARGS="" -CT_NCURSES_HOST_DISABLE_DB=y -CT_NCURSES_HOST_FALLBACKS="linux,xterm,xterm-color,xterm-256color,vt100" -CT_NCURSES_TARGET_CONFIG_ARGS="" -# CT_NCURSES_TARGET_DISABLE_DB is not set -CT_NCURSES_TARGET_FALLBACKS="" -CT_COMP_LIBS_ZLIB=y -CT_COMP_LIBS_ZLIB_PKG_KSYM="ZLIB" -CT_ZLIB_DIR_NAME="zlib" -CT_ZLIB_PKG_NAME="zlib" -CT_ZLIB_SRC_RELEASE=y -CT_ZLIB_PATCH_ORDER="global" -CT_ZLIB_V_1_2_11=y -# CT_ZLIB_NO_VERSIONS is not set -CT_ZLIB_VERSION="1.2.11" -CT_ZLIB_MIRRORS="http://downloads.sourceforge.net/project/libpng/zlib/${CT_ZLIB_VERSION}" -CT_ZLIB_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_ZLIB_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_ZLIB_ARCHIVE_FORMATS=".tar.xz .tar.gz" -CT_ZLIB_SIGNATURE_FORMAT="packed/.asc" -CT_ALL_COMP_LIBS_CHOICES="CLOOG EXPAT GETTEXT GMP ISL LIBELF LIBICONV MPC MPFR NCURSES ZLIB" -CT_LIBICONV_NEEDED=y -CT_GETTEXT_NEEDED=y -CT_GMP_NEEDED=y -CT_MPFR_NEEDED=y -CT_ISL_NEEDED=y -CT_MPC_NEEDED=y -CT_LIBELF_TARGET=y -CT_EXPAT_NEEDED=y -CT_NCURSES_NEEDED=y -CT_ZLIB_NEEDED=y -CT_LIBICONV=y -CT_GETTEXT=y -CT_GMP=y -CT_MPFR=y -CT_ISL=y -CT_MPC=y -CT_EXPAT=y -CT_NCURSES=y -CT_ZLIB=y - -# -# Companion tools -# -# CT_COMP_TOOLS_FOR_HOST is not set -CT_COMP_TOOLS_AUTOCONF=y -CT_COMP_TOOLS_AUTOCONF_PKG_KSYM="AUTOCONF" -CT_AUTOCONF_DIR_NAME="autoconf" -CT_AUTOCONF_PKG_NAME="autoconf" -CT_AUTOCONF_SRC_RELEASE=y -CT_AUTOCONF_PATCH_ORDER="global" -CT_AUTOCONF_V_2_69=y -# CT_AUTOCONF_V_2_65 is not set -# CT_AUTOCONF_NO_VERSIONS is not set -CT_AUTOCONF_VERSION="2.69" -CT_AUTOCONF_MIRRORS="$(CT_Mirrors GNU autoconf)" -CT_AUTOCONF_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_AUTOCONF_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_AUTOCONF_ARCHIVE_FORMATS=".tar.xz .tar.gz" -CT_AUTOCONF_SIGNATURE_FORMAT="packed/.sig" -CT_COMP_TOOLS_AUTOMAKE=y -CT_COMP_TOOLS_AUTOMAKE_PKG_KSYM="AUTOMAKE" -CT_AUTOMAKE_DIR_NAME="automake" -CT_AUTOMAKE_PKG_NAME="automake" -CT_AUTOMAKE_SRC_RELEASE=y -CT_AUTOMAKE_PATCH_ORDER="global" -# CT_AUTOMAKE_V_1_16 is not set -CT_AUTOMAKE_V_1_15=y -# CT_AUTOMAKE_NO_VERSIONS is not set -CT_AUTOMAKE_VERSION="1.15.1" -CT_AUTOMAKE_MIRRORS="$(CT_Mirrors GNU automake)" -CT_AUTOMAKE_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_AUTOMAKE_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_AUTOMAKE_ARCHIVE_FORMATS=".tar.xz .tar.gz" -CT_AUTOMAKE_SIGNATURE_FORMAT="packed/.sig" -# CT_COMP_TOOLS_BISON is not set -# CT_COMP_TOOLS_DTC is not set -CT_COMP_TOOLS_LIBTOOL=y -CT_COMP_TOOLS_LIBTOOL_PKG_KSYM="LIBTOOL" -CT_LIBTOOL_DIR_NAME="libtool" -CT_LIBTOOL_PKG_NAME="libtool" -CT_LIBTOOL_SRC_RELEASE=y -CT_LIBTOOL_PATCH_ORDER="global" -CT_LIBTOOL_V_2_4=y -# CT_LIBTOOL_NO_VERSIONS is not set -CT_LIBTOOL_VERSION="2.4.6" -CT_LIBTOOL_MIRRORS="$(CT_Mirrors GNU libtool)" -CT_LIBTOOL_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_LIBTOOL_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_LIBTOOL_ARCHIVE_FORMATS=".tar.xz .tar.gz" -CT_LIBTOOL_SIGNATURE_FORMAT="packed/.sig" -CT_COMP_TOOLS_M4=y -CT_COMP_TOOLS_M4_PKG_KSYM="M4" -CT_M4_DIR_NAME="m4" -CT_M4_PKG_NAME="m4" -CT_M4_SRC_RELEASE=y -CT_M4_PATCH_ORDER="global" -CT_M4_V_1_4=y -# CT_M4_NO_VERSIONS is not set -CT_M4_VERSION="1.4.18" -CT_M4_MIRRORS="$(CT_Mirrors GNU m4)" -CT_M4_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_M4_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_M4_ARCHIVE_FORMATS=".tar.xz .tar.bz2 .tar.gz" -CT_M4_SIGNATURE_FORMAT="packed/.sig" -CT_COMP_TOOLS_MAKE=y -CT_COMP_TOOLS_MAKE_PKG_KSYM="MAKE" -CT_MAKE_DIR_NAME="make" -CT_MAKE_PKG_NAME="make" -CT_MAKE_SRC_RELEASE=y -CT_MAKE_PATCH_ORDER="global" -CT_MAKE_V_4_2=y -# CT_MAKE_NO_VERSIONS is not set -CT_MAKE_VERSION="4.2.1" -CT_MAKE_MIRRORS="$(CT_Mirrors GNU make)" -CT_MAKE_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_MAKE_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_MAKE_ARCHIVE_FORMATS=".tar.bz2 .tar.gz" -CT_MAKE_SIGNATURE_FORMAT="packed/.sig" -CT_MAKE_later_than_4_0=y -CT_MAKE_4_0_or_later=y -# CT_MAKE_GMAKE_SYMLINK is not set -# CT_MAKE_GNUMAKE_SYMLINK is not set -CT_ALL_COMP_TOOLS_CHOICES="AUTOCONF AUTOMAKE BISON DTC LIBTOOL M4 MAKE" diff --git a/build-config/conf/uclibc/1.0.22/uclibc.armv7a.config b/build-config/conf/uclibc/1.0.22/uclibc.armv7a.config deleted file mode 100644 index aa7e26c63..000000000 --- a/build-config/conf/uclibc/1.0.22/uclibc.armv7a.config +++ /dev/null @@ -1,244 +0,0 @@ -# -# Automatically generated file; DO NOT EDIT. -# uClibc-ng 1.0.22 C Library Configuration -# -# TARGET_aarch64 is not set -# TARGET_alpha is not set -# TARGET_arc is not set -TARGET_arm=y -# TARGET_avr32 is not set -# TARGET_bfin is not set -# TARGET_c6x is not set -# TARGET_cris is not set -# TARGET_frv is not set -# TARGET_h8300 is not set -# TARGET_hppa is not set -# TARGET_i386 is not set -# TARGET_ia64 is not set -# TARGET_lm32 is not set -# TARGET_m68k is not set -# TARGET_metag is not set -# TARGET_microblaze is not set -# TARGET_mips is not set -# TARGET_nds32 is not set -# TARGET_nios2 is not set -# TARGET_or1k is not set -# TARGET_powerpc is not set -# TARGET_sh is not set -# TARGET_sparc is not set -# TARGET_x86_64 is not set -# TARGET_xtensa is not set - -# -# Target Architecture Features and Options -# -TARGET_ARCH="arm" -FORCE_OPTIONS_FOR_ARCH=y -CONFIG_ARM_EABI=y -TARGET_SUBARCH="" - -# -# Using ELF file format -# -ARCH_HAS_DEPRECATED_SYSCALLS=y -ARCH_ANY_ENDIAN=y -ARCH_LITTLE_ENDIAN=y -# ARCH_WANTS_BIG_ENDIAN is not set -ARCH_WANTS_LITTLE_ENDIAN=y -ARCH_HAS_MMU=y -ARCH_USE_MMU=y -UCLIBC_HAS_FLOATS=y -# UCLIBC_HAS_FPU is not set -UCLIBC_HAS_SOFT_FLOAT=y -# DO_C99_MATH is not set -# DO_XSI_MATH is not set -UCLIBC_HAS_FENV=y -KERNEL_HEADERS="/usr/include" -HAVE_DOT_CONFIG=y - -# -# General Library Settings -# -DOPIC=y -ARCH_HAS_UCONTEXT=y -HAVE_SHARED=y -# FORCE_SHAREABLE_TEXT_SEGMENTS is not set -LDSO_LDD_SUPPORT=y -# LDSO_CACHE_SUPPORT is not set -LDSO_PRELOAD_ENV_SUPPORT=y -# LDSO_PRELOAD_FILE_SUPPORT is not set -LDSO_STANDALONE_SUPPORT=y -LDSO_PRELINK_SUPPORT=y -# UCLIBC_STATIC_LDCONFIG is not set -# LDSO_RUNPATH is not set -LDSO_SEARCH_INTERP_PATH=y -LDSO_LD_LIBRARY_PATH=y -# LDSO_NO_CLEANUP is not set -UCLIBC_CTOR_DTOR=y -LDSO_GNU_HASH_SUPPORT=y -# HAS_NO_THREADS is not set -# UCLIBC_HAS_LINUXTHREADS is not set -UCLIBC_HAS_THREADS_NATIVE=y -UCLIBC_HAS_THREADS=y -UCLIBC_HAS_TLS=y -# PTHREADS_DEBUG_SUPPORT is not set -UCLIBC_HAS_SYSLOG=y -UCLIBC_HAS_LFS=y -# MALLOC is not set -# MALLOC_SIMPLE is not set -MALLOC_STANDARD=y -UCLIBC_DYNAMIC_ATEXIT=y -# COMPAT_ATEXIT is not set -UCLIBC_HAS_UTMPX=y -UCLIBC_HAS_UTMP=y -# UCLIBC_SUSV2_LEGACY is not set -UCLIBC_SUSV3_LEGACY=y -# UCLIBC_HAS_CONTEXT_FUNCS is not set -# UCLIBC_SUSV3_LEGACY_MACROS is not set -UCLIBC_SUSV4_LEGACY=y -# UCLIBC_STRICT_HEADERS is not set -# UCLIBC_HAS_STUBS is not set -UCLIBC_HAS_SHADOW=y -# UCLIBC_HAS_PROGRAM_INVOCATION_NAME is not set -# UCLIBC_HAS___PROGNAME is not set -UCLIBC_HAS_PTY=y -ASSUME_DEVPTS=y -UNIX98PTY_ONLY=y -# UCLIBC_HAS_GETPT is not set -UCLIBC_HAS_LIBUTIL=y -UCLIBC_HAS_TM_EXTENSIONS=y -UCLIBC_HAS_TZ_CACHING=y -UCLIBC_HAS_TZ_FILE=y -UCLIBC_HAS_TZ_FILE_READ_MANY=y -UCLIBC_TZ_FILE_PATH="/etc/TZ" -UCLIBC_FALLBACK_TO_ETC_LOCALTIME=y - -# -# Advanced Library Settings -# -UCLIBC_PWD_BUFFER_SIZE=256 -UCLIBC_GRP_BUFFER_SIZE=256 - -# -# Support various families of functions -# -UCLIBC_LINUX_SPECIFIC=y -UCLIBC_HAS_GNU_ERROR=y -UCLIBC_BSD_SPECIFIC=y -UCLIBC_HAS_BSD_ERR=y -# UCLIBC_HAS_OBSOLETE_BSD_SIGNAL is not set -# UCLIBC_HAS_OBSOLETE_SYSV_SIGNAL is not set -# UCLIBC_NTP_LEGACY is not set -# UCLIBC_SV4_DEPRECATED is not set -UCLIBC_HAS_REALTIME=y -UCLIBC_HAS_ADVANCED_REALTIME=y -UCLIBC_HAS_EPOLL=y -UCLIBC_HAS_XATTR=y -UCLIBC_HAS_PROFILING=y -UCLIBC_HAS_CRYPT_IMPL=y -# UCLIBC_HAS_SHA256_CRYPT_IMPL is not set -# UCLIBC_HAS_SHA512_CRYPT_IMPL is not set -UCLIBC_HAS_CRYPT=y -UCLIBC_HAS_NETWORK_SUPPORT=y -UCLIBC_HAS_SOCKET=y -UCLIBC_HAS_IPV4=y -UCLIBC_HAS_IPV6=y -# UCLIBC_HAS_RPC is not set -UCLIBC_USE_NETLINK=y -UCLIBC_SUPPORT_AI_ADDRCONFIG=y -# UCLIBC_HAS_BSD_RES_CLOSE is not set -UCLIBC_HAS_COMPAT_RES_STATE=y -# UCLIBC_HAS_EXTRA_COMPAT_RES_STATE is not set -UCLIBC_HAS_RESOLVER_SUPPORT=y - -# -# String and Stdio Support -# -UCLIBC_HAS_STRING_GENERIC_OPT=y -UCLIBC_HAS_STRING_ARCH_OPT=y -UCLIBC_HAS_STDIO_FUTEXES=y -UCLIBC_HAS_CTYPE_TABLES=y -UCLIBC_HAS_CTYPE_SIGNED=y -UCLIBC_HAS_CTYPE_UNSAFE=y -# UCLIBC_HAS_CTYPE_CHECKED is not set -# UCLIBC_HAS_CTYPE_ENFORCED is not set -UCLIBC_HAS_WCHAR=y -UCLIBC_HAS_LIBICONV=y -# UCLIBC_HAS_LIBINTL is not set -# UCLIBC_HAS_LOCALE is not set -# UCLIBC_HAS_HEXADECIMAL_FLOATS is not set -# UCLIBC_HAS_GLIBC_CUSTOM_PRINTF is not set -UCLIBC_PRINTF_SCANF_POSITIONAL_ARGS=9 -# UCLIBC_HAS_STDIO_BUFSIZ_256 is not set -# UCLIBC_HAS_STDIO_BUFSIZ_512 is not set -# UCLIBC_HAS_STDIO_BUFSIZ_1024 is not set -# UCLIBC_HAS_STDIO_BUFSIZ_2048 is not set -UCLIBC_HAS_STDIO_BUFSIZ_4096=y -# UCLIBC_HAS_STDIO_BUFSIZ_8192 is not set -UCLIBC_HAS_STDIO_BUILTIN_BUFFER_NONE=y -# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_4 is not set -# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_8 is not set -# UCLIBC_HAS_STDIO_SHUTDOWN_ON_ABORT is not set -UCLIBC_HAS_STDIO_GETC_MACRO=y -UCLIBC_HAS_STDIO_PUTC_MACRO=y -UCLIBC_HAS_STDIO_AUTO_RW_TRANSITION=y -# UCLIBC_HAS_FOPEN_LARGEFILE_MODE is not set -# UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE is not set -# UCLIBC_HAS_FOPEN_CLOSEEXEC_MODE is not set -UCLIBC_HAS_GLIBC_CUSTOM_STREAMS=y -# UCLIBC_HAS_PRINTF_M_SPEC is not set -UCLIBC_HAS_ERRNO_MESSAGES=y -# UCLIBC_HAS_SYS_ERRLIST is not set -UCLIBC_HAS_SIGNUM_MESSAGES=y -# UCLIBC_HAS_SYS_SIGLIST is not set -UCLIBC_HAS_GNU_GETOPT=y -UCLIBC_HAS_GETOPT_LONG=y -UCLIBC_HAS_GNU_GETSUBOPT=y -# UCLIBC_HAS_ARGP is not set - -# -# Big and Tall -# -UCLIBC_HAS_REGEX=y -UCLIBC_HAS_REGEX_OLD=y -UCLIBC_HAS_FNMATCH=y -UCLIBC_HAS_FNMATCH_OLD=y -# UCLIBC_HAS_WORDEXP is not set -UCLIBC_HAS_NFTW=y -UCLIBC_HAS_FTW=y -UCLIBC_HAS_FTS=y -UCLIBC_HAS_GLOB=y -# UCLIBC_HAS_GNU_GLOB is not set - -# -# Library Installation Options -# -RUNTIME_PREFIX="/" -DEVEL_PREFIX="/usr" -MULTILIB_DIR="lib" -HARDWIRED_ABSPATH=y - -# -# Security options -# -# UCLIBC_BUILD_PIE is not set -# UCLIBC_HAS_ARC4RANDOM is not set -# UCLIBC_HAS_SSP is not set -UCLIBC_BUILD_RELRO=y -# UCLIBC_BUILD_NOW is not set -UCLIBC_BUILD_NOEXECSTACK=y - -# -# Development/debugging options -# -CROSS_COMPILER_PREFIX="" -UCLIBC_EXTRA_CFLAGS="" -# DODEBUG is not set -DOSTRIP=y -# DOASSERTS is not set -SUPPORT_LD_DEBUG=y -# SUPPORT_LD_DEBUG_EARLY is not set -# UCLIBC_MALLOC_DEBUGGING is not set -# UCLIBC_HAS_BACKTRACE is not set -WARNINGS="-Wall" -EXTRA_WARNINGS=y diff --git a/build-config/conf/uclibc/1.0.22/uclibc.powerpc-softfloat.config b/build-config/conf/uclibc/1.0.22/uclibc.powerpc-softfloat.config deleted file mode 100644 index ac8d556f4..000000000 --- a/build-config/conf/uclibc/1.0.22/uclibc.powerpc-softfloat.config +++ /dev/null @@ -1,244 +0,0 @@ -# -# Automatically generated file; DO NOT EDIT. -# uClibc-ng 1.0.22 C Library Configuration -# -# TARGET_aarch64 is not set -# TARGET_alpha is not set -# TARGET_arc is not set -# TARGET_arm is not set -# TARGET_avr32 is not set -# TARGET_bfin is not set -# TARGET_c6x is not set -# TARGET_cris is not set -# TARGET_frv is not set -# TARGET_h8300 is not set -# TARGET_hppa is not set -# TARGET_i386 is not set -# TARGET_ia64 is not set -# TARGET_lm32 is not set -# TARGET_m68k is not set -# TARGET_metag is not set -# TARGET_microblaze is not set -# TARGET_mips is not set -# TARGET_nds32 is not set -# TARGET_nios2 is not set -# TARGET_or1k is not set -TARGET_powerpc=y -# TARGET_sh is not set -# TARGET_sparc is not set -# TARGET_x86_64 is not set -# TARGET_xtensa is not set - -# -# Target Architecture Features and Options -# -TARGET_ARCH="powerpc" -FORCE_OPTIONS_FOR_ARCH=y -# CONFIG_CLASSIC is not set -CONFIG_E500=y -TARGET_SUBARCH="e500" - -# -# Using ELF file format -# -ARCH_HAS_DEPRECATED_SYSCALLS=y -ARCH_BIG_ENDIAN=y - -# -# Using Big Endian -# -ARCH_HAS_MMU=y -ARCH_USE_MMU=y -UCLIBC_HAS_FLOATS=y -# UCLIBC_HAS_FPU is not set -UCLIBC_HAS_SOFT_FLOAT=y -# DO_C99_MATH is not set -# DO_XSI_MATH is not set -UCLIBC_HAS_FENV=y -KERNEL_HEADERS="/usr/include" -HAVE_DOT_CONFIG=y - -# -# General Library Settings -# -DOPIC=y -HAVE_SHARED=y -# FORCE_SHAREABLE_TEXT_SEGMENTS is not set -LDSO_LDD_SUPPORT=y -# LDSO_CACHE_SUPPORT is not set -LDSO_PRELOAD_ENV_SUPPORT=y -# LDSO_PRELOAD_FILE_SUPPORT is not set -LDSO_STANDALONE_SUPPORT=y -LDSO_PRELINK_SUPPORT=y -# UCLIBC_STATIC_LDCONFIG is not set -# LDSO_RUNPATH is not set -LDSO_SEARCH_INTERP_PATH=y -LDSO_LD_LIBRARY_PATH=y -# LDSO_NO_CLEANUP is not set -UCLIBC_CTOR_DTOR=y -LDSO_GNU_HASH_SUPPORT=y -# HAS_NO_THREADS is not set -# UCLIBC_HAS_LINUXTHREADS is not set -UCLIBC_HAS_THREADS_NATIVE=y -UCLIBC_HAS_THREADS=y -UCLIBC_HAS_TLS=y -# PTHREADS_DEBUG_SUPPORT is not set -UCLIBC_HAS_SYSLOG=y -UCLIBC_HAS_LFS=y -# MALLOC is not set -# MALLOC_SIMPLE is not set -MALLOC_STANDARD=y -UCLIBC_DYNAMIC_ATEXIT=y -# COMPAT_ATEXIT is not set -UCLIBC_HAS_UTMPX=y -UCLIBC_HAS_UTMP=y -# UCLIBC_SUSV2_LEGACY is not set -UCLIBC_SUSV3_LEGACY=y -# UCLIBC_SUSV3_LEGACY_MACROS is not set -UCLIBC_SUSV4_LEGACY=y -# UCLIBC_STRICT_HEADERS is not set -# UCLIBC_HAS_STUBS is not set -UCLIBC_HAS_SHADOW=y -# UCLIBC_HAS_PROGRAM_INVOCATION_NAME is not set -# UCLIBC_HAS___PROGNAME is not set -UCLIBC_HAS_PTY=y -ASSUME_DEVPTS=y -UNIX98PTY_ONLY=y -# UCLIBC_HAS_GETPT is not set -UCLIBC_HAS_LIBUTIL=y -UCLIBC_HAS_TM_EXTENSIONS=y -UCLIBC_HAS_TZ_CACHING=y -UCLIBC_HAS_TZ_FILE=y -UCLIBC_HAS_TZ_FILE_READ_MANY=y -UCLIBC_TZ_FILE_PATH="/etc/TZ" -UCLIBC_FALLBACK_TO_ETC_LOCALTIME=y - -# -# Advanced Library Settings -# -UCLIBC_PWD_BUFFER_SIZE=256 -UCLIBC_GRP_BUFFER_SIZE=256 - -# -# Support various families of functions -# -UCLIBC_LINUX_SPECIFIC=y -UCLIBC_HAS_GNU_ERROR=y -UCLIBC_BSD_SPECIFIC=y -UCLIBC_HAS_BSD_ERR=y -# UCLIBC_HAS_OBSOLETE_BSD_SIGNAL is not set -# UCLIBC_HAS_OBSOLETE_SYSV_SIGNAL is not set -# UCLIBC_NTP_LEGACY is not set -# UCLIBC_SV4_DEPRECATED is not set -UCLIBC_HAS_REALTIME=y -UCLIBC_HAS_ADVANCED_REALTIME=y -UCLIBC_HAS_EPOLL=y -UCLIBC_HAS_XATTR=y -UCLIBC_HAS_PROFILING=y -UCLIBC_HAS_CRYPT_IMPL=y -# UCLIBC_HAS_SHA256_CRYPT_IMPL is not set -# UCLIBC_HAS_SHA512_CRYPT_IMPL is not set -UCLIBC_HAS_CRYPT=y -UCLIBC_HAS_NETWORK_SUPPORT=y -UCLIBC_HAS_SOCKET=y -UCLIBC_HAS_IPV4=y -UCLIBC_HAS_IPV6=y -# UCLIBC_HAS_RPC is not set -UCLIBC_USE_NETLINK=y -UCLIBC_SUPPORT_AI_ADDRCONFIG=y -# UCLIBC_HAS_BSD_RES_CLOSE is not set -UCLIBC_HAS_COMPAT_RES_STATE=y -# UCLIBC_HAS_EXTRA_COMPAT_RES_STATE is not set -UCLIBC_HAS_RESOLVER_SUPPORT=y - -# -# String and Stdio Support -# -UCLIBC_HAS_STRING_GENERIC_OPT=y -UCLIBC_HAS_STRING_ARCH_OPT=y -UCLIBC_HAS_STDIO_FUTEXES=y -UCLIBC_HAS_CTYPE_TABLES=y -UCLIBC_HAS_CTYPE_SIGNED=y -UCLIBC_HAS_CTYPE_UNSAFE=y -# UCLIBC_HAS_CTYPE_CHECKED is not set -# UCLIBC_HAS_CTYPE_ENFORCED is not set -UCLIBC_HAS_WCHAR=y -UCLIBC_HAS_LIBICONV=y -# UCLIBC_HAS_LIBINTL is not set -# UCLIBC_HAS_LOCALE is not set -# UCLIBC_HAS_HEXADECIMAL_FLOATS is not set -# UCLIBC_HAS_GLIBC_CUSTOM_PRINTF is not set -UCLIBC_PRINTF_SCANF_POSITIONAL_ARGS=9 -# UCLIBC_HAS_STDIO_BUFSIZ_256 is not set -# UCLIBC_HAS_STDIO_BUFSIZ_512 is not set -# UCLIBC_HAS_STDIO_BUFSIZ_1024 is not set -# UCLIBC_HAS_STDIO_BUFSIZ_2048 is not set -UCLIBC_HAS_STDIO_BUFSIZ_4096=y -# UCLIBC_HAS_STDIO_BUFSIZ_8192 is not set -UCLIBC_HAS_STDIO_BUILTIN_BUFFER_NONE=y -# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_4 is not set -# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_8 is not set -# UCLIBC_HAS_STDIO_SHUTDOWN_ON_ABORT is not set -UCLIBC_HAS_STDIO_GETC_MACRO=y -UCLIBC_HAS_STDIO_PUTC_MACRO=y -UCLIBC_HAS_STDIO_AUTO_RW_TRANSITION=y -# UCLIBC_HAS_FOPEN_LARGEFILE_MODE is not set -# UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE is not set -# UCLIBC_HAS_FOPEN_CLOSEEXEC_MODE is not set -UCLIBC_HAS_GLIBC_CUSTOM_STREAMS=y -# UCLIBC_HAS_PRINTF_M_SPEC is not set -UCLIBC_HAS_ERRNO_MESSAGES=y -# UCLIBC_HAS_SYS_ERRLIST is not set -UCLIBC_HAS_SIGNUM_MESSAGES=y -# UCLIBC_HAS_SYS_SIGLIST is not set -UCLIBC_HAS_GNU_GETOPT=y -UCLIBC_HAS_GETOPT_LONG=y -UCLIBC_HAS_GNU_GETSUBOPT=y -# UCLIBC_HAS_ARGP is not set - -# -# Big and Tall -# -UCLIBC_HAS_REGEX=y -UCLIBC_HAS_REGEX_OLD=y -UCLIBC_HAS_FNMATCH=y -UCLIBC_HAS_FNMATCH_OLD=y -# UCLIBC_HAS_WORDEXP is not set -UCLIBC_HAS_NFTW=y -UCLIBC_HAS_FTW=y -UCLIBC_HAS_FTS=y -UCLIBC_HAS_GLOB=y -# UCLIBC_HAS_GNU_GLOB is not set - -# -# Library Installation Options -# -RUNTIME_PREFIX="/" -DEVEL_PREFIX="/usr" -MULTILIB_DIR="lib" -HARDWIRED_ABSPATH=y - -# -# Security options -# -# UCLIBC_BUILD_PIE is not set -# UCLIBC_HAS_ARC4RANDOM is not set -# UCLIBC_HAS_SSP is not set -UCLIBC_BUILD_RELRO=y -# UCLIBC_BUILD_NOW is not set -UCLIBC_BUILD_NOEXECSTACK=y - -# -# Development/debugging options -# -CROSS_COMPILER_PREFIX="" -UCLIBC_EXTRA_CFLAGS="" -# DODEBUG is not set -DOSTRIP=y -# DOASSERTS is not set -SUPPORT_LD_DEBUG=y -# SUPPORT_LD_DEBUG_EARLY is not set -# UCLIBC_MALLOC_DEBUGGING is not set -# UCLIBC_HAS_BACKTRACE is not set -WARNINGS="-Wall" -EXTRA_WARNINGS=y diff --git a/build-config/conf/uclibc/1.0.22/uclibc.x86_64.config b/build-config/conf/uclibc/1.0.22/uclibc.x86_64.config deleted file mode 100644 index 68b85b19c..000000000 --- a/build-config/conf/uclibc/1.0.22/uclibc.x86_64.config +++ /dev/null @@ -1,243 +0,0 @@ -# -# Automatically generated file; DO NOT EDIT. -# uClibc-ng 1.0.22 C Library Configuration -# -# TARGET_aarch64 is not set -# TARGET_alpha is not set -# TARGET_arc is not set -# TARGET_arm is not set -# TARGET_avr32 is not set -# TARGET_bfin is not set -# TARGET_c6x is not set -# TARGET_cris is not set -# TARGET_frv is not set -# TARGET_h8300 is not set -# TARGET_hppa is not set -# TARGET_i386 is not set -# TARGET_ia64 is not set -# TARGET_lm32 is not set -# TARGET_m68k is not set -# TARGET_metag is not set -# TARGET_microblaze is not set -# TARGET_mips is not set -# TARGET_nds32 is not set -# TARGET_nios2 is not set -# TARGET_or1k is not set -# TARGET_powerpc is not set -# TARGET_sh is not set -# TARGET_sparc is not set -TARGET_x86_64=y -# TARGET_xtensa is not set - -# -# Target Architecture Features and Options -# -TARGET_ARCH="x86_64" -FORCE_OPTIONS_FOR_ARCH=y -TARGET_SUBARCH="" - -# -# Using ELF file format -# -ARCH_HAS_DEPRECATED_SYSCALLS=y -ARCH_LITTLE_ENDIAN=y - -# -# Using Little Endian -# -ARCH_HAS_MMU=y -ARCH_USE_MMU=y -UCLIBC_HAS_FLOATS=y -UCLIBC_HAS_FPU=y -# DO_C99_MATH is not set -# DO_XSI_MATH is not set -UCLIBC_HAS_FENV=y -KERNEL_HEADERS="/usr/include" -HAVE_DOT_CONFIG=y - -# -# General Library Settings -# -DOPIC=y -ARCH_HAS_UCONTEXT=y -HAVE_SHARED=y -# FORCE_SHAREABLE_TEXT_SEGMENTS is not set -LDSO_LDD_SUPPORT=y -# LDSO_CACHE_SUPPORT is not set -LDSO_PRELOAD_ENV_SUPPORT=y -# LDSO_PRELOAD_FILE_SUPPORT is not set -LDSO_STANDALONE_SUPPORT=y -LDSO_PRELINK_SUPPORT=y -# UCLIBC_STATIC_LDCONFIG is not set -# LDSO_RUNPATH is not set -LDSO_SEARCH_INTERP_PATH=y -LDSO_LD_LIBRARY_PATH=y -# LDSO_NO_CLEANUP is not set -UCLIBC_CTOR_DTOR=y -LDSO_GNU_HASH_SUPPORT=y -# HAS_NO_THREADS is not set -# UCLIBC_HAS_LINUXTHREADS is not set -UCLIBC_HAS_THREADS_NATIVE=y -UCLIBC_HAS_THREADS=y -UCLIBC_HAS_TLS=y -# PTHREADS_DEBUG_SUPPORT is not set -UCLIBC_HAS_SYSLOG=y -UCLIBC_HAS_LFS=y -# MALLOC is not set -# MALLOC_SIMPLE is not set -MALLOC_STANDARD=y -UCLIBC_DYNAMIC_ATEXIT=y -# COMPAT_ATEXIT is not set -UCLIBC_HAS_UTMPX=y -UCLIBC_HAS_UTMP=y -# UCLIBC_SUSV2_LEGACY is not set -UCLIBC_SUSV3_LEGACY=y -# UCLIBC_HAS_CONTEXT_FUNCS is not set -# UCLIBC_SUSV3_LEGACY_MACROS is not set -UCLIBC_SUSV4_LEGACY=y -# UCLIBC_STRICT_HEADERS is not set -# UCLIBC_HAS_STUBS is not set -UCLIBC_HAS_SHADOW=y -# UCLIBC_HAS_PROGRAM_INVOCATION_NAME is not set -# UCLIBC_HAS___PROGNAME is not set -UCLIBC_HAS_PTY=y -ASSUME_DEVPTS=y -UNIX98PTY_ONLY=y -# UCLIBC_HAS_GETPT is not set -UCLIBC_HAS_LIBUTIL=y -UCLIBC_HAS_TM_EXTENSIONS=y -UCLIBC_HAS_TZ_CACHING=y -UCLIBC_HAS_TZ_FILE=y -UCLIBC_HAS_TZ_FILE_READ_MANY=y -UCLIBC_TZ_FILE_PATH="/etc/TZ" -UCLIBC_FALLBACK_TO_ETC_LOCALTIME=y - -# -# Advanced Library Settings -# -UCLIBC_PWD_BUFFER_SIZE=256 -UCLIBC_GRP_BUFFER_SIZE=256 - -# -# Support various families of functions -# -UCLIBC_LINUX_SPECIFIC=y -UCLIBC_HAS_GNU_ERROR=y -UCLIBC_BSD_SPECIFIC=y -UCLIBC_HAS_BSD_ERR=y -# UCLIBC_HAS_OBSOLETE_BSD_SIGNAL is not set -# UCLIBC_HAS_OBSOLETE_SYSV_SIGNAL is not set -# UCLIBC_NTP_LEGACY is not set -# UCLIBC_SV4_DEPRECATED is not set -UCLIBC_HAS_REALTIME=y -UCLIBC_HAS_ADVANCED_REALTIME=y -UCLIBC_HAS_EPOLL=y -UCLIBC_HAS_XATTR=y -UCLIBC_HAS_PROFILING=y -UCLIBC_HAS_CRYPT_IMPL=y -# UCLIBC_HAS_SHA256_CRYPT_IMPL is not set -# UCLIBC_HAS_SHA512_CRYPT_IMPL is not set -UCLIBC_HAS_CRYPT=y -UCLIBC_HAS_NETWORK_SUPPORT=y -UCLIBC_HAS_SOCKET=y -UCLIBC_HAS_IPV4=y -UCLIBC_HAS_IPV6=y -# UCLIBC_HAS_RPC is not set -UCLIBC_USE_NETLINK=y -UCLIBC_SUPPORT_AI_ADDRCONFIG=y -# UCLIBC_HAS_BSD_RES_CLOSE is not set -UCLIBC_HAS_COMPAT_RES_STATE=y -# UCLIBC_HAS_EXTRA_COMPAT_RES_STATE is not set -UCLIBC_HAS_RESOLVER_SUPPORT=y - -# -# String and Stdio Support -# -UCLIBC_HAS_STRING_GENERIC_OPT=y -UCLIBC_HAS_STRING_ARCH_OPT=y -UCLIBC_HAS_STDIO_FUTEXES=y -UCLIBC_HAS_CTYPE_TABLES=y -UCLIBC_HAS_CTYPE_SIGNED=y -UCLIBC_HAS_CTYPE_UNSAFE=y -# UCLIBC_HAS_CTYPE_CHECKED is not set -# UCLIBC_HAS_CTYPE_ENFORCED is not set -UCLIBC_HAS_WCHAR=y -UCLIBC_HAS_LIBICONV=y -# UCLIBC_HAS_LIBINTL is not set -# UCLIBC_HAS_LOCALE is not set -# UCLIBC_HAS_HEXADECIMAL_FLOATS is not set -# UCLIBC_HAS_GLIBC_CUSTOM_PRINTF is not set -UCLIBC_PRINTF_SCANF_POSITIONAL_ARGS=9 -# UCLIBC_HAS_STDIO_BUFSIZ_NONE is not set -# UCLIBC_HAS_STDIO_BUFSIZ_256 is not set -# UCLIBC_HAS_STDIO_BUFSIZ_512 is not set -# UCLIBC_HAS_STDIO_BUFSIZ_1024 is not set -# UCLIBC_HAS_STDIO_BUFSIZ_2048 is not set -UCLIBC_HAS_STDIO_BUFSIZ_4096=y -# UCLIBC_HAS_STDIO_BUFSIZ_8192 is not set -UCLIBC_HAS_STDIO_BUILTIN_BUFFER_NONE=y -# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_4 is not set -# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_8 is not set -# UCLIBC_HAS_STDIO_SHUTDOWN_ON_ABORT is not set -UCLIBC_HAS_STDIO_GETC_MACRO=y -UCLIBC_HAS_STDIO_PUTC_MACRO=y -UCLIBC_HAS_STDIO_AUTO_RW_TRANSITION=y -# UCLIBC_HAS_FOPEN_LARGEFILE_MODE is not set -# UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE is not set -# UCLIBC_HAS_FOPEN_CLOSEEXEC_MODE is not set -UCLIBC_HAS_GLIBC_CUSTOM_STREAMS=y -# UCLIBC_HAS_PRINTF_M_SPEC is not set -UCLIBC_HAS_ERRNO_MESSAGES=y -# UCLIBC_HAS_SYS_ERRLIST is not set -UCLIBC_HAS_SIGNUM_MESSAGES=y -# UCLIBC_HAS_SYS_SIGLIST is not set -UCLIBC_HAS_GNU_GETOPT=y -UCLIBC_HAS_GETOPT_LONG=y -UCLIBC_HAS_GNU_GETSUBOPT=y -# UCLIBC_HAS_ARGP is not set - -# -# Big and Tall -# -UCLIBC_HAS_REGEX=y -UCLIBC_HAS_REGEX_OLD=y -UCLIBC_HAS_FNMATCH=y -UCLIBC_HAS_FNMATCH_OLD=y -# UCLIBC_HAS_WORDEXP is not set -UCLIBC_HAS_NFTW=y -UCLIBC_HAS_FTW=y -UCLIBC_HAS_FTS=y -UCLIBC_HAS_GLOB=y -# UCLIBC_HAS_GNU_GLOB is not set - -# -# Library Installation Options -# -RUNTIME_PREFIX="/" -DEVEL_PREFIX="/usr" -MULTILIB_DIR="lib" -HARDWIRED_ABSPATH=y - -# -# Security options -# -# UCLIBC_HAS_ARC4RANDOM is not set -# UCLIBC_HAS_SSP is not set -UCLIBC_BUILD_RELRO=y -# UCLIBC_BUILD_NOW is not set -UCLIBC_BUILD_NOEXECSTACK=y - -# -# Development/debugging options -# -CROSS_COMPILER_PREFIX="" -UCLIBC_EXTRA_CFLAGS="" -# DODEBUG is not set -DOSTRIP=y -# DOASSERTS is not set -SUPPORT_LD_DEBUG=y -# SUPPORT_LD_DEBUG_EARLY is not set -# UCLIBC_MALLOC_DEBUGGING is not set -# UCLIBC_HAS_BACKTRACE is not set -WARNINGS="-Wall" -EXTRA_WARNINGS=y diff --git a/build-config/conf/uclibc/1.0.35/uclibc.x86_64.config b/build-config/conf/uclibc/1.0.35/uclibc.x86_64.config deleted file mode 100644 index dbc19fd9a..000000000 --- a/build-config/conf/uclibc/1.0.35/uclibc.x86_64.config +++ /dev/null @@ -1,243 +0,0 @@ -# -# Automatically generated file; DO NOT EDIT. -# uClibc-ng 1.0.25 C Library Configuration -# -# TARGET_aarch64 is not set -# TARGET_alpha is not set -# TARGET_arc is not set -# TARGET_arm is not set -# TARGET_avr32 is not set -# TARGET_bfin is not set -# TARGET_c6x is not set -# TARGET_cris is not set -# TARGET_frv is not set -# TARGET_h8300 is not set -# TARGET_hppa is not set -# TARGET_i386 is not set -# TARGET_ia64 is not set -# TARGET_lm32 is not set -# TARGET_m68k is not set -# TARGET_metag is not set -# TARGET_microblaze is not set -# TARGET_mips is not set -# TARGET_nds32 is not set -# TARGET_nios2 is not set -# TARGET_or1k is not set -# TARGET_powerpc is not set -# TARGET_sh is not set -# TARGET_sparc is not set -TARGET_x86_64=y -# TARGET_xtensa is not set - -# -# Target Architecture Features and Options -# -TARGET_ARCH="x86_64" -FORCE_OPTIONS_FOR_ARCH=y -TARGET_SUBARCH="" - -# -# Using ELF file format -# -ARCH_HAS_DEPRECATED_SYSCALLS=y -ARCH_LITTLE_ENDIAN=y - -# -# Using Little Endian -# -ARCH_HAS_MMU=y -ARCH_USE_MMU=y -UCLIBC_HAS_FLOATS=y -UCLIBC_HAS_FPU=y -# DO_C99_MATH is not set -# DO_XSI_MATH is not set -UCLIBC_HAS_FENV=y -KERNEL_HEADERS="/usr/include" -HAVE_DOT_CONFIG=y - -# -# General Library Settings -# -DOPIC=y -ARCH_HAS_UCONTEXT=y -HAVE_SHARED=y -# FORCE_SHAREABLE_TEXT_SEGMENTS is not set -LDSO_LDD_SUPPORT=y -# LDSO_CACHE_SUPPORT is not set -LDSO_PRELOAD_ENV_SUPPORT=y -# LDSO_PRELOAD_FILE_SUPPORT is not set -LDSO_STANDALONE_SUPPORT=y -LDSO_PRELINK_SUPPORT=y -# UCLIBC_STATIC_LDCONFIG is not set -# LDSO_RUNPATH is not set -LDSO_SEARCH_INTERP_PATH=y -LDSO_LD_LIBRARY_PATH=y -# LDSO_NO_CLEANUP is not set -UCLIBC_CTOR_DTOR=y -LDSO_GNU_HASH_SUPPORT=y -# HAS_NO_THREADS is not set -# UCLIBC_HAS_LINUXTHREADS is not set -UCLIBC_HAS_THREADS_NATIVE=y -UCLIBC_HAS_THREADS=y -UCLIBC_HAS_TLS=y -# PTHREADS_DEBUG_SUPPORT is not set -UCLIBC_HAS_SYSLOG=y -UCLIBC_HAS_LFS=y -# MALLOC is not set -# MALLOC_SIMPLE is not set -MALLOC_STANDARD=y -UCLIBC_DYNAMIC_ATEXIT=y -# COMPAT_ATEXIT is not set -UCLIBC_HAS_UTMPX=y -UCLIBC_HAS_UTMP=y -# UCLIBC_SUSV2_LEGACY is not set -UCLIBC_SUSV3_LEGACY=y -# UCLIBC_HAS_CONTEXT_FUNCS is not set -# UCLIBC_SUSV3_LEGACY_MACROS is not set -UCLIBC_SUSV4_LEGACY=y -# UCLIBC_STRICT_HEADERS is not set -# UCLIBC_HAS_STUBS is not set -UCLIBC_HAS_SHADOW=y -UCLIBC_HAS_PROGRAM_INVOCATION_NAME=y -UCLIBC_HAS___PROGNAME=y -UCLIBC_HAS_PTY=y -ASSUME_DEVPTS=y -UNIX98PTY_ONLY=y -# UCLIBC_HAS_GETPT is not set -UCLIBC_HAS_LIBUTIL=y -UCLIBC_HAS_TM_EXTENSIONS=y -UCLIBC_HAS_TZ_CACHING=y -UCLIBC_HAS_TZ_FILE=y -UCLIBC_HAS_TZ_FILE_READ_MANY=y -UCLIBC_TZ_FILE_PATH="/etc/TZ" -UCLIBC_FALLBACK_TO_ETC_LOCALTIME=y - -# -# Advanced Library Settings -# -UCLIBC_PWD_BUFFER_SIZE=256 -UCLIBC_GRP_BUFFER_SIZE=256 - -# -# Support various families of functions -# -UCLIBC_LINUX_SPECIFIC=y -UCLIBC_HAS_GNU_ERROR=y -UCLIBC_BSD_SPECIFIC=y -UCLIBC_HAS_BSD_ERR=y -# UCLIBC_HAS_OBSOLETE_BSD_SIGNAL is not set -# UCLIBC_HAS_OBSOLETE_SYSV_SIGNAL is not set -# UCLIBC_NTP_LEGACY is not set -# UCLIBC_SV4_DEPRECATED is not set -UCLIBC_HAS_REALTIME=y -UCLIBC_HAS_ADVANCED_REALTIME=y -UCLIBC_HAS_EPOLL=y -UCLIBC_HAS_XATTR=y -UCLIBC_HAS_PROFILING=y -UCLIBC_HAS_CRYPT_IMPL=y -# UCLIBC_HAS_SHA256_CRYPT_IMPL is not set -# UCLIBC_HAS_SHA512_CRYPT_IMPL is not set -UCLIBC_HAS_CRYPT=y -UCLIBC_HAS_NETWORK_SUPPORT=y -UCLIBC_HAS_SOCKET=y -UCLIBC_HAS_IPV4=y -UCLIBC_HAS_IPV6=y -# also unused in 1.0.25 UCLIBC_HAS_RPC is not set -UCLIBC_USE_NETLINK=y -UCLIBC_SUPPORT_AI_ADDRCONFIG=y -# UCLIBC_HAS_BSD_RES_CLOSE is not set -UCLIBC_HAS_COMPAT_RES_STATE=y -# UCLIBC_HAS_EXTRA_COMPAT_RES_STATE is not set -UCLIBC_HAS_RESOLVER_SUPPORT=y - -# -# String and Stdio Support -# -UCLIBC_HAS_STRING_GENERIC_OPT=y -UCLIBC_HAS_STRING_ARCH_OPT=y -UCLIBC_HAS_STDIO_FUTEXES=y -UCLIBC_HAS_CTYPE_TABLES=y -UCLIBC_HAS_CTYPE_SIGNED=y -UCLIBC_HAS_CTYPE_UNSAFE=y -# UCLIBC_HAS_CTYPE_CHECKED is not set -# UCLIBC_HAS_CTYPE_ENFORCED is not set -UCLIBC_HAS_WCHAR=y -UCLIBC_HAS_LIBICONV=y -# UCLIBC_HAS_LIBINTL is not set -# UCLIBC_HAS_LOCALE is not set -# UCLIBC_HAS_HEXADECIMAL_FLOATS is not set -# UCLIBC_HAS_GLIBC_CUSTOM_PRINTF is not set -UCLIBC_PRINTF_SCANF_POSITIONAL_ARGS=9 -# also unused in 1.0.25 UCLIBC_HAS_STDIO_BUFSIZ_NONE is not set -# UCLIBC_HAS_STDIO_BUFSIZ_256 is not set -# UCLIBC_HAS_STDIO_BUFSIZ_512 is not set -# UCLIBC_HAS_STDIO_BUFSIZ_1024 is not set -# UCLIBC_HAS_STDIO_BUFSIZ_2048 is not set -UCLIBC_HAS_STDIO_BUFSIZ_4096=y -# UCLIBC_HAS_STDIO_BUFSIZ_8192 is not set -UCLIBC_HAS_STDIO_BUILTIN_BUFFER_NONE=y -# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_4 is not set -# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_8 is not set -# UCLIBC_HAS_STDIO_SHUTDOWN_ON_ABORT is not set -UCLIBC_HAS_STDIO_GETC_MACRO=y -UCLIBC_HAS_STDIO_PUTC_MACRO=y -UCLIBC_HAS_STDIO_AUTO_RW_TRANSITION=y -# UCLIBC_HAS_FOPEN_LARGEFILE_MODE is not set -# UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE is not set -# UCLIBC_HAS_FOPEN_CLOSEEXEC_MODE is not set -UCLIBC_HAS_GLIBC_CUSTOM_STREAMS=y -# UCLIBC_HAS_PRINTF_M_SPEC is not set -UCLIBC_HAS_ERRNO_MESSAGES=y -# UCLIBC_HAS_SYS_ERRLIST is not set -UCLIBC_HAS_SIGNUM_MESSAGES=y -# UCLIBC_HAS_SYS_SIGLIST is not set -UCLIBC_HAS_GNU_GETOPT=y -UCLIBC_HAS_GETOPT_LONG=y -UCLIBC_HAS_GNU_GETSUBOPT=y -# UCLIBC_HAS_ARGP is not set - -# -# Big and Tall -# -UCLIBC_HAS_REGEX=y -# was set in 1.0.22 UCLIBC_HAS_REGEX_OLD=y -UCLIBC_HAS_FNMATCH=y -# was set in 1.0.22 UCLIBC_HAS_FNMATCH_OLD=y -# UCLIBC_HAS_WORDEXP is not set -UCLIBC_HAS_NFTW=y -UCLIBC_HAS_FTW=y -UCLIBC_HAS_FTS=y -UCLIBC_HAS_GLOB=y -# UCLIBC_HAS_GNU_GLOB is not set - -# -# Library Installation Options -# -RUNTIME_PREFIX="/" -DEVEL_PREFIX="/usr" -MULTILIB_DIR="lib" -HARDWIRED_ABSPATH=y - -# -# Security options -# -# UCLIBC_HAS_ARC4RANDOM is not set -# UCLIBC_HAS_SSP is not set -UCLIBC_BUILD_RELRO=y -# UCLIBC_BUILD_NOW is not set -UCLIBC_BUILD_NOEXECSTACK=y - -# -# Development/debugging options -# -CROSS_COMPILER_PREFIX="" -UCLIBC_EXTRA_CFLAGS="" -# DODEBUG is not set -DOSTRIP=y -# DOASSERTS is not set -SUPPORT_LD_DEBUG=y -# SUPPORT_LD_DEBUG_EARLY is not set -# UCLIBC_MALLOC_DEBUGGING is not set -# UCLIBC_HAS_BACKTRACE is not set -WARNINGS="-Wall" -EXTRA_WARNINGS=y diff --git a/build-config/conf/uclibc/1.0.38/uclibc.x86_64.config b/build-config/conf/uclibc/1.0.54/uclibc.x86_64.config similarity index 100% rename from build-config/conf/uclibc/1.0.38/uclibc.x86_64.config rename to build-config/conf/uclibc/1.0.54/uclibc.x86_64.config diff --git a/build-config/make/acpica-tools.make b/build-config/make/acpica-tools.make index f7ba9fc0a..9a445de5d 100644 --- a/build-config/make/acpica-tools.make +++ b/build-config/make/acpica-tools.make @@ -10,9 +10,12 @@ # This is a makefile fragment that defines the build of acpica-tools # -ACPICA_TOOLS_VERSION = 20150410 +ACPICA_TOOLS_VERSION = 20260408 +# acpica.org's old download area was retired (it redirects to an Intel +# page). The ACPICA project now publishes the official acpica-unix +# tarball as a GitHub release asset. ACPICA_TOOLS_TARBALL = acpica-unix-$(ACPICA_TOOLS_VERSION).tar.gz -ACPICA_TOOLS_TARBALL_URLS += $(ONIE_MIRROR) https://acpica.org/sites/acpica/files/ +ACPICA_TOOLS_TARBALL_URLS += $(ONIE_MIRROR) https://github.com/acpica/acpica/releases/download/$(ACPICA_TOOLS_VERSION) ACPICA_TOOLS_BUILD_DIR = $(USER_BUILDDIR)/acpica-tools ACPICA_TOOLS_DIR = $(ACPICA_TOOLS_BUILD_DIR)/acpica-unix-$(ACPICA_TOOLS_VERSION) diff --git a/build-config/make/btrfs-progs.make b/build-config/make/btrfs-progs.make index 0f5915b84..4dde95841 100644 --- a/build-config/make/btrfs-progs.make +++ b/build-config/make/btrfs-progs.make @@ -9,7 +9,7 @@ # This is a makefile fragment that defines the build of btrfs-progs # -BTRFSPROGS_VERSION = v4.9.1 +BTRFSPROGS_VERSION = v7.0 BTRFSPROGS_TARBALL = btrfs-progs-$(BTRFSPROGS_VERSION).tar.xz BTRFSPROGS_TARBALL_URLS += $(ONIE_MIRROR) \ https://www.kernel.org/pub/linux/kernel/people/kdave/btrfs-progs @@ -37,11 +37,10 @@ PHONY += btrfs-progs btrfs-progs-download btrfs-progs-source \ btrfs-progs-configure btrfs-progs-build btrfs-progs-install \ btrfs-progs-clean btrfs-progs-download-clean -BTRFSPROGS_LIBS = libbtrfs.so libbtrfs.so.0 libbtrfs.so.0.1 -BTRFSPROGS_SBIN = btrfs mkfs.btrfs btrfs-debug-tree btrfs-map-logical \ - btrfs-image btrfs-zero-log btrfs-find-root btrfstune \ - btrfs-show-super btrfs-select-super btrfs-convert \ - btrfsck +BTRFSPROGS_LIBS = libbtrfs.so.0.1.5 libbtrfs.so libbtrfs.so.0 libbtrfs.so.0.1 +BTRFSPROGS_SBIN = btrfs mkfs.btrfs btrfs-map-logical \ + btrfs-image btrfs-find-root btrfstune \ + btrfs-select-super btrfsck btrfs-progs: $(BTRFSPROGS_STAMP) @@ -81,6 +80,12 @@ $(BTRFSPROGS_CONFIGURE_STAMP): $(E2FSPROGS_BUILD_STAMP) \ --disable-documentation \ --disable-backtrace \ --disable-convert \ + --disable-zstd \ + --disable-libudev \ + --disable-python \ + --with-crypto=builtin \ + ac_cv_func_malloc_0_nonnull=yes \ + ac_cv_func_realloc_0_nonnull=yes \ CC=$(CROSSPREFIX)gcc \ CFLAGS="$(ONIE_CFLAGS)" \ $(ONIE_PKG_CONFIG) diff --git a/build-config/make/busybox.make b/build-config/make/busybox.make index 972dfa397..ea7edf2e2 100644 --- a/build-config/make/busybox.make +++ b/build-config/make/busybox.make @@ -14,7 +14,7 @@ # This is a makefile fragment that defines the build of busybox # -BUSYBOX_VERSION = 1.25.1 +BUSYBOX_VERSION = 1.38.0 BUSYBOX_TARBALL = busybox-$(BUSYBOX_VERSION).tar.bz2 BUSYBOX_TARBALL_URLS += $(ONIE_MIRROR) https://www.busybox.net/downloads BUSYBOX_BUILD_DIR = $(MBUILDDIR)/busybox diff --git a/build-config/make/crosstool-ng.make b/build-config/make/crosstool-ng.make index 1ceb90604..eb26e0a22 100644 --- a/build-config/make/crosstool-ng.make +++ b/build-config/make/crosstool-ng.make @@ -16,17 +16,24 @@ # To upgrade sha1 for new package: # sha1sum ./gcc-8.3.0.tar.xz > ./upstream/gcc-8.3.0.tar.xz.sha1 # https://ftp.gnu.org/pub/gnu/gcc/gcc-8.3.0/gcc-8.3.0.tar.xz -GCC_VERSION ?= 8.3.0 +GCC_VERSION ?= 14.3.0 # https://uclibc-ng.org/ XTOOLS_LIBC ?= uClibc-ng -XTOOLS_LIBC_VERSION ?= 1.0.38 +XTOOLS_LIBC_VERSION ?= 1.0.54 + +# Kernel-headers version the cross toolchain (uClibc) is built against. +# Deliberately decoupled from LINUX_VERSION (the image kernel): a libc +# built against an older-but-recent header set runs fine on a newer +# kernel, so the image kernel can advance without rebuilding the cross +# toolchain. Pinned to a version crosstool-NG knows about. +XTOOLS_LINUX_VERSION ?= 6.16 # http://crosstool-ng.github.io/ CROSSTOOL_NG_DESC = crosstool-NG -CROSSTOOL_NG_VERSION = 1.24.0 +CROSSTOOL_NG_VERSION = 1.28.0 CROSSTOOL_NG_TARBALL = crosstool-ng-$(CROSSTOOL_NG_VERSION).tar.xz -CROSSTOOL_NG_URLS += $(ONIE_MIRROR) http://crosstool-ng.org/download/crosstool-ng +CROSSTOOL_NG_URLS += $(ONIE_MIRROR) https://github.com/crosstool-ng/crosstool-ng/releases/download/crosstool-ng-$(CROSSTOOL_NG_VERSION) CROSSTOOL_NG_BUILD_DIR = $(BUILDDIR)/crosstool-ng CROSSTOOL_NG_STAMP_DIR = $(CROSSTOOL_NG_BUILD_DIR)/stamp CROSSTOOL_NG_DIR = $(CROSSTOOL_NG_BUILD_DIR)/crosstool-ng-$(CROSSTOOL_NG_VERSION) diff --git a/build-config/make/dmidecode.make b/build-config/make/dmidecode.make index 3f106a1aa..c3c92e8c3 100644 --- a/build-config/make/dmidecode.make +++ b/build-config/make/dmidecode.make @@ -9,7 +9,7 @@ # This is a makefile fragment that defines the build of dmidecode # -DMIDECODE_VERSION = 3.1 +DMIDECODE_VERSION = 3.7 DMIDECODE_TARBALL = dmidecode-$(DMIDECODE_VERSION).tar.xz DMIDECODE_TARBALL_URLS += $(ONIE_MIRROR) http://download.savannah.gnu.org/releases/dmidecode/ DMIDECODE_BUILD_DIR = $(USER_BUILDDIR)/dmidecode diff --git a/build-config/make/dosfstools.make b/build-config/make/dosfstools.make index 549720353..acbf6f3d7 100644 --- a/build-config/make/dosfstools.make +++ b/build-config/make/dosfstools.make @@ -9,9 +9,9 @@ # This is a makefile fragment that defines the build of dosfstools # -DOSFSTOOLS_VERSION = 3.0.26 -DOSFSTOOLS_TARBALL = dosfstools-$(DOSFSTOOLS_VERSION).tar.xz -DOSFSTOOLS_TARBALL_URLS += $(ONIE_MIRROR) http://daniel-baumann.ch/files/software/dosfstools +DOSFSTOOLS_VERSION = 4.2 +DOSFSTOOLS_TARBALL = dosfstools-$(DOSFSTOOLS_VERSION).tar.gz +DOSFSTOOLS_TARBALL_URLS += $(ONIE_MIRROR) https://github.com/dosfstools/dosfstools/releases/download/v$(DOSFSTOOLS_VERSION) DOSFSTOOLS_BUILD_DIR = $(USER_BUILDDIR)/dosfstools DOSFSTOOLS_DIR = $(DOSFSTOOLS_BUILD_DIR)/dosfstools-$(DOSFSTOOLS_VERSION) @@ -19,19 +19,25 @@ DOSFSTOOLS_SRCPATCHDIR = $(PATCHDIR)/dosfstools DOSFSTOOLS_DOWNLOAD_STAMP = $(DOWNLOADDIR)/dosfstools-download DOSFSTOOLS_SOURCE_STAMP = $(USER_STAMPDIR)/dosfstools-source DOSFSTOOLS_PATCH_STAMP = $(USER_STAMPDIR)/dosfstools-patch +DOSFSTOOLS_CONFIGURE_STAMP = $(USER_STAMPDIR)/dosfstools-configure DOSFSTOOLS_BUILD_STAMP = $(USER_STAMPDIR)/dosfstools-build DOSFSTOOLS_INSTALL_STAMP = $(STAMPDIR)/dosfstools-install DOSFSTOOLS_STAMP = $(DOSFSTOOLS_SOURCE_STAMP) \ $(DOSFSTOOLS_PATCH_STAMP) \ + $(DOSFSTOOLS_CONFIGURE_STAMP) \ $(DOSFSTOOLS_BUILD_STAMP) \ $(DOSFSTOOLS_INSTALL_STAMP) +# As of 4.x dosfstools installs three programs (mkfs.fat, fsck.fat and +# fatlabel). The legacy program names (dosfsck, mkdosfs, ...) are +# provided as compatibility symlinks via --enable-compat-symlinks. DOSFSTOOLS_PROGRAMS = fsck.fat dosfsck fsck.msdos fsck.vfat \ mkfs.fat mkdosfs mkfs.msdos mkfs.vfat \ fatlabel dosfslabel PHONY += dosfstools dosfstools-download dosfstools-source dosfstools-patch \ - dosfstools-build dosfstools-install dosfstools-clean dosfstools-download-clean + dosfstools-configure dosfstools-build dosfstools-install \ + dosfstools-clean dosfstools-download-clean dosfstools: $(DOSFSTOOLS_STAMP) @@ -59,25 +65,36 @@ $(DOSFSTOOLS_PATCH_STAMP): $(DOSFSTOOLS_SRCPATCHDIR)/* $(DOSFSTOOLS_SOURCE_STAMP $(Q) $(SCRIPTDIR)/apply-patch-series $(DOSFSTOOLS_SRCPATCHDIR)/series $(DOSFSTOOLS_DIR) $(Q) touch $@ +dosfstools-configure: $(DOSFSTOOLS_CONFIGURE_STAMP) +$(DOSFSTOOLS_CONFIGURE_STAMP): $(DOSFSTOOLS_PATCH_STAMP) | $(DEV_SYSROOT_INIT_STAMP) + $(Q) rm -f $@ && eval $(PROFILE_STAMP) + $(Q) echo "==== Configure dosfstools-$(DOSFSTOOLS_VERSION) ====" + $(Q) cd $(DOSFSTOOLS_DIR) && PATH='$(CROSSBIN):$(PATH)' \ + $(DOSFSTOOLS_DIR)/configure \ + --prefix=/usr \ + --host=$(TARGET) \ + --without-iconv \ + --enable-compat-symlinks \ + CC=$(CROSSPREFIX)gcc \ + CFLAGS="$(ONIE_CFLAGS)" \ + LDFLAGS="$(ONIE_LDFLAGS)" \ + $(ONIE_PKG_CONFIG) + $(Q) touch $@ + ifndef MAKE_CLEAN DOSFSTOOLS_NEW_FILES = $(shell test -d $(DOSFSTOOLS_DIR) && test -f $(DOSFSTOOLS_BUILD_STAMP) && \ - find -L $(DOSFSTOOLS_DIR) -newer $(DOSFSTOOLS_BUILD_STAMP) -type f \ + find -L $(DOSFSTOOLS_DIR) -newer $(DOSFSTOOLS_BUILD_STAMP) -type f \ \! -name filelist-rpm -print -quit) endif -DOSFSTOOLS_MAKE_VARS = \ - CC=$(CROSSPREFIX)gcc LD=$(CROSSPREFIX)ld \ - CFLAGS="$(ONIE_CFLAGS)" LDFLAGS="$(ONIE_LDFLAGS)" \ - DESTDIR=$(DEV_SYSROOT) PREFIX=/usr - dosfstools-build: $(DOSFSTOOLS_BUILD_STAMP) -$(DOSFSTOOLS_BUILD_STAMP): $(DOSFSTOOLS_PATCH_STAMP) $(DOSFSTOOLS_NEW_FILES) \ +$(DOSFSTOOLS_BUILD_STAMP): $(DOSFSTOOLS_CONFIGURE_STAMP) $(DOSFSTOOLS_NEW_FILES) \ | $(DEV_SYSROOT_INIT_STAMP) $(Q) rm -f $@ && eval $(PROFILE_STAMP) $(Q) echo "==== Building dosfstools-$(DOSFSTOOLS_VERSION) ====" - $(Q) PATH='$(CROSSBIN):$(PATH)' $(MAKE) -C $(DOSFSTOOLS_DIR) $(DOSFSTOOLS_MAKE_VARS) - $(Q) PATH='$(CROSSBIN):$(PATH)' $(MAKE) -C $(DOSFSTOOLS_DIR) $(DOSFSTOOLS_MAKE_VARS) \ - install-symlinks + $(Q) PATH='$(CROSSBIN):$(PATH)' $(MAKE) -C $(DOSFSTOOLS_DIR) + $(Q) PATH='$(CROSSBIN):$(PATH)' $(MAKE) -C $(DOSFSTOOLS_DIR) \ + DESTDIR=$(DEV_SYSROOT) install $(Q) touch $@ dosfstools-install: $(DOSFSTOOLS_INSTALL_STAMP) diff --git a/build-config/make/dropbear.make b/build-config/make/dropbear.make index d795519e7..2eb027507 100644 --- a/build-config/make/dropbear.make +++ b/build-config/make/dropbear.make @@ -10,7 +10,7 @@ # This is a makefile fragment that defines the build of dropbear # -DROPBEAR_VERSION = 2020.81 +DROPBEAR_VERSION = 2026.91 DROPBEAR_TARBALL = dropbear-$(DROPBEAR_VERSION).tar.bz2 DROPBEAR_TARBALL_URLS += $(ONIE_MIRROR) https://matt.ucc.asn.au/dropbear/releases DROPBEAR_BUILD_DIR = $(USER_BUILDDIR)/dropbear diff --git a/build-config/make/e2fsprogs.make b/build-config/make/e2fsprogs.make index a730ce6c6..f318c743f 100644 --- a/build-config/make/e2fsprogs.make +++ b/build-config/make/e2fsprogs.make @@ -9,7 +9,7 @@ # This is a makefile fragment that defines the build of e2fsprogs # -E2FSPROGS_VERSION = 1.46.3 +E2FSPROGS_VERSION = 1.47.4 E2FSPROGS_TARBALL = e2fsprogs-$(E2FSPROGS_VERSION).tar.xz E2FSPROGS_TARBALL_URLS += $(ONIE_MIRROR) \ https://www.kernel.org/pub/linux/kernel/people/tytso/e2fsprogs/v$(E2FSPROGS_VERSION) diff --git a/build-config/make/efibootmgr.make b/build-config/make/efibootmgr.make index f5b3ecbbc..e4b34aa18 100644 --- a/build-config/make/efibootmgr.make +++ b/build-config/make/efibootmgr.make @@ -9,10 +9,13 @@ # This is a makefile fragment that defines the build of efibootmgr # -EFIBOOTMGR_VERSION = 16 -EFIBOOTMGR_TARBALL = efibootmgr-$(EFIBOOTMGR_VERSION).tar.bz2 +EFIBOOTMGR_VERSION = 18 +# efibootmgr (like efivar) no longer ships dist tarballs; use the GitHub +# source archive (unpacks to efibootmgr-$(EFIBOOTMGR_VERSION)/). v18 +# matches efivar 39's efidp_format_device_path() signature. +EFIBOOTMGR_TARBALL = $(EFIBOOTMGR_VERSION).tar.gz EFIBOOTMGR_TARBALL_URLS += $(ONIE_MIRROR) \ - https://github.com/rhboot/efibootmgr/releases/download/$(EFIBOOTMGR_VERSION)/$(EFIBOOTMGR_TARBALL) + https://github.com/rhboot/efibootmgr/archive EFIBOOTMGR_BUILD_DIR = $(USER_BUILDDIR)/efibootmgr EFIBOOTMGR_DIR = $(EFIBOOTMGR_BUILD_DIR)/efibootmgr-$(EFIBOOTMGR_VERSION) diff --git a/build-config/make/efivar.make b/build-config/make/efivar.make index c2b0b17e9..ba67b2a98 100644 --- a/build-config/make/efivar.make +++ b/build-config/make/efivar.make @@ -11,26 +11,27 @@ # This is a makefile fragment that defines the build of efivar # -EFIVAR_VERSION = 37 -EFIVAR_TARBALL = efivar-$(EFIVAR_VERSION).tar.bz2 -EFIVAR_TARBALL_URLS += $(ONIE_MIRROR) https://github.com/rhboot/efivar/releases/download/${EFIVAR_VERSION}/${EFIVAR_TARBALL} +EFIVAR_VERSION = 39 +# efivar stopped publishing dist tarballs after v37; use the GitHub source +# archive (unpacks to efivar-$(EFIVAR_VERSION)/). efivar 39's build system +# is fully cross-compile aware (derives CC/AR/HOSTCC from CROSS_COMPILE), so +# none of the old ONIE efivar patches are needed any longer. +EFIVAR_TARBALL = $(EFIVAR_VERSION).tar.gz +EFIVAR_TARBALL_URLS += $(ONIE_MIRROR) https://github.com/rhboot/efivar/archive EFIVAR_BUILD_DIR = $(USER_BUILDDIR)/efivar EFIVAR_DIR = $(EFIVAR_BUILD_DIR)/efivar-$(EFIVAR_VERSION) -EFIVAR_SRCPATCHDIR = $(PATCHDIR)/efivar/$(EFIVAR_VERSION)/ EFIVAR_DOWNLOAD_STAMP = $(DOWNLOADDIR)/efivar-$(EFIVAR_VERSION)-download EFIVAR_SOURCE_STAMP = $(USER_STAMPDIR)/efivar-source -EFIVAR_PATCH_STAMP = $(USER_STAMPDIR)/efivar-patch EFIVAR_BUILD_STAMP = $(USER_STAMPDIR)/efivar-build EFIVAR_INSTALL_STAMP = $(STAMPDIR)/efivar-install EFIVAR_STAMP = $(EFIVAR_SOURCE_STAMP) \ - $(EFIVAR_PATCH_STAMP) \ $(EFIVAR_BUILD_STAMP) \ $(EFIVAR_INSTALL_STAMP) EFIVAR_PROGRAMS = efivar -PHONY += efivar efivar-download efivar-source efivar-patch \ +PHONY += efivar efivar-download efivar-source \ efivar-build efivar-install efivar-clean efivar-download-clean EFIVAR_BINS = efivar @@ -61,26 +62,19 @@ $(EFIVAR_SOURCE_STAMP): $(USER_TREE_STAMP) $(EFIVAR_DOWNLOAD_STAMP) $(Q) $(SCRIPTDIR)/extract-package $(EFIVAR_BUILD_DIR) $(DOWNLOADDIR)/$(EFIVAR_TARBALL) $(Q) touch $@ -efivar-patch: $(EFIVAR_PATCH_STAMP) -$(EFIVAR_PATCH_STAMP): $(EFIVAR_SRCPATCHDIR)/* $(EFIVAR_SOURCE_STAMP) - $(Q) rm -f $@ && eval $(PROFILE_STAMP) - $(Q) echo "==== Patching efivar ====" - $(Q) $(SCRIPTDIR)/apply-patch-series $(EFIVAR_SRCPATCHDIR)/series $(EFIVAR_DIR) - $(Q) touch $@ - ifndef MAKE_CLEAN EFIVAR_NEW_FILES = $(shell test -d $(EFIVAR_DIR) && test -f $(EFIVAR_BUILD_STAMP) && \ find -L $(EFIVAR_DIR) -newer $(EFIVAR_BUILD_STAMP) -type f -print -quit) endif efivar-build: $(EFIVAR_BUILD_STAMP) -$(EFIVAR_BUILD_STAMP): $(EFIVAR_PATCH_STAMP) $(EFIVAR_NEW_FILES) $(POPT_BUILD_STAMP) \ +$(EFIVAR_BUILD_STAMP): $(EFIVAR_SOURCE_STAMP) $(EFIVAR_NEW_FILES) $(POPT_BUILD_STAMP) \ | $(DEV_SYSROOT_INIT_STAMP) $(Q) rm -f $@ && eval $(PROFILE_STAMP) $(Q) echo "==== Building efivar-$(EFIVAR_VERSION) ====" - $(Q) PATH='$(CROSSBIN):$(PATH)' $(MAKE) -C $(EFIVAR_DIR) \ + $(Q) PATH='$(CROSSBIN):$(PATH)' $(MAKE) -C $(EFIVAR_DIR) SUBDIRS=src \ CROSS_COMPILE=$(CROSSPREFIX) PKG_CONFIG=pkg-config $(ONIE_PKG_CONFIG) DESTDIR=$(DEV_SYSROOT) - $(Q) PATH='$(CROSSBIN):$(PATH)' $(MAKE) -C $(EFIVAR_DIR) \ + $(Q) PATH='$(CROSSBIN):$(PATH)' $(MAKE) -C $(EFIVAR_DIR) SUBDIRS=src \ CROSS_COMPILE=$(CROSSPREFIX) PKG_CONFIG=pkg-config $(ONIE_PKG_CONFIG) DESTDIR=$(DEV_SYSROOT) install $(Q) touch $@ diff --git a/build-config/make/ethtool.make b/build-config/make/ethtool.make index 1fdb19e09..026676f5d 100644 --- a/build-config/make/ethtool.make +++ b/build-config/make/ethtool.make @@ -9,7 +9,7 @@ # This is a makefile fragment that defines the build of ethtool # -ETHTOOL_VERSION = 3.14 +ETHTOOL_VERSION = 6.15 ETHTOOL_TARBALL = ethtool-$(ETHTOOL_VERSION).tar.xz ETHTOOL_TARBALL_URLS += $(ONIE_MIRROR) https://www.kernel.org/pub/software/network/ethtool ETHTOOL_BUILD_DIR = $(USER_BUILDDIR)/ethtool @@ -50,7 +50,7 @@ $(ETHTOOL_SOURCE_STAMP): $(USER_TREE_STAMP) | $(ETHTOOL_DOWNLOAD_STAMP) $(Q) touch $@ ethtool-configure: $(ETHTOOL_CONFIGURE_STAMP) -$(ETHTOOL_CONFIGURE_STAMP): $(ETHTOOL_SOURCE_STAMP) | $(DEV_SYSROOT_INIT_STAMP) +$(ETHTOOL_CONFIGURE_STAMP): $(ETHTOOL_SOURCE_STAMP) $(LIBMNL_BUILD_STAMP) | $(DEV_SYSROOT_INIT_STAMP) $(Q) rm -f $@ && eval $(PROFILE_STAMP) $(Q) echo "==== Configure ethtool-$(ETHTOOL_VERSION) ====" $(Q) cd $(ETHTOOL_DIR) && PATH='$(CROSSBIN):$(PATH)' \ @@ -58,7 +58,8 @@ $(ETHTOOL_CONFIGURE_STAMP): $(ETHTOOL_SOURCE_STAMP) | $(DEV_SYSROOT_INIT_STAMP) --prefix=/usr \ --host=$(TARGET) \ CFLAGS="$(ONIE_CFLAGS)" \ - LDFLAGS="$(ONIE_LDFLAGS)" + LDFLAGS="$(ONIE_LDFLAGS)" \ + $(ONIE_PKG_CONFIG) $(Q) touch $@ ethtool-build: $(ETHTOOL_BUILD_STAMP) @@ -70,7 +71,7 @@ $(ETHTOOL_BUILD_STAMP): $(ETHTOOL_CONFIGURE_STAMP) $(Q) touch $@ ethtool-install: $(ETHTOOL_INSTALL_STAMP) -$(ETHTOOL_INSTALL_STAMP): $(SYSROOT_INIT_STAMP) $(ETHTOOL_BUILD_STAMP) +$(ETHTOOL_INSTALL_STAMP): $(SYSROOT_INIT_STAMP) $(ETHTOOL_BUILD_STAMP) $(LIBMNL_INSTALL_STAMP) $(Q) rm -f $@ && eval $(PROFILE_STAMP) $(Q) echo "==== Installing ethtool in $(SYSROOTDIR) ====" $(Q) cp -av $(DEV_SYSROOT)/usr/sbin/$(ETHTOOL_BIN) $(SYSROOTDIR)/usr/sbin diff --git a/build-config/make/flashrom.make b/build-config/make/flashrom.make index 02951a370..fe8fa4a92 100644 --- a/build-config/make/flashrom.make +++ b/build-config/make/flashrom.make @@ -9,25 +9,32 @@ # This is a makefile fragment that defines the build of flashrom # -FLASHROM_VERSION = 0.9.8 -FLASHROM_TARBALL = flashrom-$(FLASHROM_VERSION).tar.bz2 -FLASHROM_TARBALL_URLS += $(ONIE_MIRROR) http://download.flashrom.org/releases/ +FLASHROM_VERSION = 1.7.0 +FLASHROM_TARBALL = flashrom-v$(FLASHROM_VERSION).tar.xz +FLASHROM_TARBALL_URLS += $(ONIE_MIRROR) https://download.flashrom.org/releases/ FLASHROM_BUILD_DIR = $(USER_BUILDDIR)/flashrom -FLASHROM_DIR = $(FLASHROM_BUILD_DIR)/flashrom-$(FLASHROM_VERSION) +FLASHROM_DIR = $(FLASHROM_BUILD_DIR)/flashrom-v$(FLASHROM_VERSION) +FLASHROM_MESON_BUILD = $(FLASHROM_DIR)/onie-build +FLASHROM_CROSS_FILE = $(FLASHROM_DIR)/onie-cross.ini -FLASHROM_SRCPATCHDIR = $(PATCHDIR)/flashrom FLASHROM_DOWNLOAD_STAMP = $(DOWNLOADDIR)/flashrom-download FLASHROM_SOURCE_STAMP = $(USER_STAMPDIR)/flashrom-source -FLASHROM_PATCH_STAMP = $(USER_STAMPDIR)/flashrom-patch FLASHROM_BUILD_STAMP = $(USER_STAMPDIR)/flashrom-build FLASHROM_INSTALL_STAMP = $(STAMPDIR)/flashrom-install FLASHROM_STAMP = $(FLASHROM_SOURCE_STAMP) \ - $(FLASHROM_PATCH_STAMP) \ $(FLASHROM_BUILD_STAMP) \ $(FLASHROM_INSTALL_STAMP) FLASHROM_PROGRAMS = flashrom +# flashrom 1.x builds with meson/ninja (the old Makefile was dropped after +# 0.9.x). Select the programmers ONIE needs: 'internal' for on-board chipset +# flashing and 'nicintel_eeprom' to program the Intel NIC EEPROM (useful in +# manufacturing to set the eth0 MAC). Both rely only on libpci, so no extra +# USB/FTDI/serial dependencies are pulled in. A platform can override this to +# enable additional programmers. +FLASHROM_PROGRAMMERS ?= internal,nicintel_eeprom + PHONY += flashrom flashrom-download flashrom-source flashrom-build \ flashrom-install flashrom-clean flashrom-download-clean @@ -50,39 +57,48 @@ $(FLASHROM_SOURCE_STAMP): $(USER_TREE_STAMP) $(FLASHROM_DOWNLOAD_STAMP) $(Q) $(SCRIPTDIR)/extract-package $(FLASHROM_BUILD_DIR) $(DOWNLOADDIR)/$(FLASHROM_TARBALL) $(Q) touch $@ -# Disable all flashrom methods, except for 'internal' by default. -# Individual platforms can define FLASHROM_MAKE_CONFIG_PLATFORM to -# enable support for specific flashing methods, for example: -# -# FLASHROM_MAKE_CONFIG_PLATFORM = CONFIG_XYZ=yes -# -# See the Makefile in the flashrom source directory for the complete -# list of CONFIG_XYZ variables. -# -# Note: Leaving the Intel NIC EEPROMs enabled, as that could be useful -# in manufacturing to program the MAC address for eth0. -FLASHROM_MAKE_CONFIG = \ - CC=$(CROSSPREFIX)gcc CFLAGS="-Wall -Wshadow $(ONIE_CFLAGS)" \ - LDFLAGS="$(ONIE_LDFLAGS)" \ - PREFIX=/usr DESTDIR=$(DEV_SYSROOT) \ - CONFIG_SERPROG=no CONFIG_RAYER_SPI=no CONFIG_PONY_SPI=no \ - CONFIG_NIC3COM=no CONFIG_GFXNVIDIA=no CONFIG_SATASII=no \ - CONFIG_ATAHPT=no CONFIG_ATAVIA=no CONFIG_FT2232_SPI=no \ - CONFIG_USBBLASTER_SPI=no CONFIG_MSTARDDC_SPI=no CONFIG_PICKIT2_SPI=no \ - CONFIG_DRKAISER=no CONFIG_NICREALTEK=no CONFIG_NICNATSEMI=no \ - CONFIG_OGP_SPI=no CONFIG_BUSPIRATE_SPI=no CONFIG_DEDIPROG=no \ - CONFIG_SATAMV=no CONFIG_IT8212=no CONFIG_PRINT_WIKI=no \ - $(FLASHROM_MAKE_CONFIG_PLATFORM) - flashrom-build: $(FLASHROM_BUILD_STAMP) $(FLASHROM_BUILD_STAMP): $(FLASHROM_SOURCE_STAMP) $(PCIUTILS_BUILD_STAMP) \ | $(DEV_SYSROOT_INIT_STAMP) $(Q) rm -f $@ && eval $(PROFILE_STAMP) $(Q) echo "==== Building flashrom-$(FLASHROM_VERSION) ====" - $(Q) PATH='$(CROSSBIN):$(PATH)' $(MAKE) -C $(FLASHROM_DIR) \ - $(FLASHROM_MAKE_CONFIG) all - $(Q) PATH='$(CROSSBIN):$(PATH)' $(MAKE) -C $(FLASHROM_DIR) \ - $(FLASHROM_MAKE_CONFIG) install + # Generate a meson cross file describing the ONIE cross toolchain. + # flashrom is only enabled for x86_64 (see arch/x86_64.make). + $(Q) { \ + echo "[binaries]" ; \ + echo "c = '$(CROSSPREFIX)gcc'" ; \ + echo "ar = '$(CROSSPREFIX)ar'" ; \ + echo "strip = '$(CROSSPREFIX)strip'" ; \ + echo "pkgconfig = 'pkg-config'" ; \ + echo "" ; \ + echo "[host_machine]" ; \ + echo "system = 'linux'" ; \ + echo "cpu_family = 'x86_64'" ; \ + echo "cpu = 'x86_64'" ; \ + echo "endian = 'little'" ; \ + echo "" ; \ + echo "[properties]" ; \ + echo "sys_root = '$(DEV_SYSROOT)'" ; \ + echo "" ; \ + echo "[built-in options]" ; \ + echo "c_args = ['-Os']" ; \ + echo "c_link_args = ['--sysroot=$(DEV_SYSROOT)']" ; \ + } > $(FLASHROM_CROSS_FILE) + $(Q) rm -rf $(FLASHROM_MESON_BUILD) + $(Q) cd $(FLASHROM_DIR) && PATH='$(CROSSBIN):$(PATH)' $(ONIE_PKG_CONFIG) \ + meson setup --cross-file $(FLASHROM_CROSS_FILE) --prefix=/usr \ + -Dprogrammer=$(FLASHROM_PROGRAMMERS) \ + -Dclassic_cli=enabled \ + -Dtests=disabled \ + -Dman-pages=disabled \ + -Ddocumentation=disabled \ + -Dich_descriptors_tool=disabled \ + -Dbash_completion=disabled \ + -Duse_git_version=disabled \ + onie-build + $(Q) PATH='$(CROSSBIN):$(PATH)' ninja -C $(FLASHROM_MESON_BUILD) + $(Q) PATH='$(CROSSBIN):$(PATH)' DESTDIR=$(DEV_SYSROOT) \ + ninja -C $(FLASHROM_MESON_BUILD) install $(Q) touch $@ flashrom-install: $(FLASHROM_INSTALL_STAMP) diff --git a/build-config/make/gnu-efi.make b/build-config/make/gnu-efi.make deleted file mode 100644 index 9dd8e0025..000000000 --- a/build-config/make/gnu-efi.make +++ /dev/null @@ -1,99 +0,0 @@ -#------------------------------------------------------------------------------- -# -# Copyright (C) 2017 Curt Brune -# -# SPDX-License-Identifier: GPL-2.0 -# -#------------------------------------------------------------------------------- -# -# This is a makefile fragment that defines the build of gnu-efi -# - -GNU_EFI_VERSION = 3.0.12 -GNU_EFI_TARBALL = gnu-efi-$(GNU_EFI_VERSION).tar.bz2 -GNU_EFI_TARBALL_URLS += $(ONIE_MIRROR) https://downloads.sourceforge.net/project/gnu-efi -GNU_EFI_BUILD_DIR = $(USER_BUILDDIR)/gnu-efi -GNU_EFI_DIR = $(GNU_EFI_BUILD_DIR)/gnu-efi-$(GNU_EFI_VERSION) - -GNU_EFI_SRCPATCHDIR = $(PATCHDIR)/gnu-efi -GNU_EFI_DOWNLOAD_STAMP = $(DOWNLOADDIR)/gnu-efi-download -GNU_EFI_SOURCE_STAMP = $(USER_STAMPDIR)/gnu-efi-source -GNU_EFI_PATCH_STAMP = $(USER_STAMPDIR)/gnu-efi-patch -GNU_EFI_BUILD_STAMP = $(USER_STAMPDIR)/gnu-efi-build -GNU_EFI_INSTALL_STAMP = $(STAMPDIR)/gnu-efi-install -GNU_EFI_STAMP = $(GNU_EFI_SOURCE_STAMP) \ - $(GNU_EFI_PATCH_STAMP) \ - $(GNU_EFI_BUILD_STAMP) \ - $(GNU_EFI_INSTALL_STAMP) - -GNU_EFI_LIB_PATH = $(DEV_SYSROOT)/usr/lib -GNU_EFI_INCLUDE = $(DEV_SYSROOT)/usr/include/efi - - -PHONY += gnu-efi gnu-efi-download gnu-efi-source gnu-efi-patch \ - gnu-efi-build gnu-efi-install gnu-efi-clean gnu-efi-download-clean - -gnu-efi: $(GNU_EFI_STAMP) - -DOWNLOAD += $(GNU_EFI_DOWNLOAD_STAMP) -gnu-efi-download: $(GNU_EFI_DOWNLOAD_STAMP) -$(GNU_EFI_DOWNLOAD_STAMP): $(PROJECT_STAMP) - $(Q) rm -f $@ && eval $(PROFILE_STAMP) - $(Q) echo "==== Getting upstream gnu-efi ====" - $(Q) $(SCRIPTDIR)/fetch-package $(DOWNLOADDIR) $(UPSTREAMDIR) \ - $(GNU_EFI_TARBALL) $(GNU_EFI_TARBALL_URLS) - $(Q) touch $@ - -SOURCE += $(GNU_EFI_SOURCE_STAMP) -gnu-efi-source: $(GNU_EFI_SOURCE_STAMP) -$(GNU_EFI_SOURCE_STAMP): $(USER_TREE_STAMP) $(GNU_EFI_DOWNLOAD_STAMP) - $(Q) rm -f $@ && eval $(PROFILE_STAMP) - $(Q) echo "==== Extracting upstream gnu-efi ====" - $(Q) $(SCRIPTDIR)/extract-package $(GNU_EFI_BUILD_DIR) $(DOWNLOADDIR)/$(GNU_EFI_TARBALL) - $(Q) touch $@ - -gnu-efi-patch: $(GNU_EFI_PATCH_STAMP) -$(GNU_EFI_PATCH_STAMP): $(GNU_EFI_SRCPATCHDIR)/* $(GNU_EFI_SOURCE_STAMP) - $(Q) rm -f $@ && eval $(PROFILE_STAMP) - $(Q) echo "==== Patching gnu-efi ====" - $(Q) $(SCRIPTDIR)/apply-patch-series $(GNU_EFI_SRCPATCHDIR)/series $(GNU_EFI_DIR) - $(Q) touch $@ - -ifndef MAKE_CLEAN -GNU_EFI_NEW_FILES = $(shell test -d $(GNU_EFI_DIR) && test -f $(GNU_EFI_BUILD_STAMP) && \ - find -L $(GNU_EFI_DIR) -newer $(GNU_EFI_BUILD_STAMP) -type f -print -quit) -endif - -gnu-efi-build: $(GNU_EFI_BUILD_STAMP) -$(GNU_EFI_BUILD_STAMP): $(GNU_EFI_PATCH_STAMP) $(GNU_EFI_NEW_FILES) \ - | $(DEV_SYSROOT_INIT_STAMP) - $(Q) rm -f $@ && eval $(PROFILE_STAMP) - $(Q) echo "==== Building gnu-efi-$(GNU_EFI_VERSION) ====" - $(Q) PATH='$(CROSSBIN):$(PATH)' \ - $(MAKE) -j1 -C $(GNU_EFI_DIR) \ - CROSS_COMPILE=$(CROSSPREFIX) - $(Q) PATH='$(CROSSBIN):$(PATH)' \ - $(MAKE) -j1 -C $(GNU_EFI_DIR)/apps \ - CROSS_COMPILE=$(CROSSPREFIX) - $(Q) touch $@ - -gnu-efi-install: $(GNU_EFI_INSTALL_STAMP) -$(GNU_EFI_INSTALL_STAMP): $(SYSROOT_INIT_STAMP) $(GNU_EFI_BUILD_STAMP) - $(Q) rm -f $@ && eval $(PROFILE_STAMP) - $(Q) echo "==== Installing gnu-efi in $(DEV_SYSROOT) ====" - $(Q) PATH='$(CROSSBIN):$(PATH)' \ - $(MAKE) -j1 -C $(GNU_EFI_DIR) \ - CROSS_COMPILE=$(CROSSPREFIX) \ - INSTALLROOT=$(DEV_SYSROOT) PREFIX=/usr \ - install - $(Q) touch $@ - -USER_CLEAN += gnu-efi-clean -gnu-efi-clean: - $(Q) rm -rf $(GNU_EFI_BUILD_DIR) - $(Q) rm -f $(GNU_EFI_STAMP) - $(Q) echo "=== Finished making $@ for $(PLATFORM)" - -DOWNLOAD_CLEAN += gnu-efi-download-clean -gnu-efi-download-clean: - $(Q) rm -f $(GNU_EFI_DOWNLOAD_STAMP) $(DOWNLOADDIR)/$(GNU_EFI_TARBALL) diff --git a/build-config/make/gptfdisk.make b/build-config/make/gptfdisk.make index c72024cb8..e50bada33 100644 --- a/build-config/make/gptfdisk.make +++ b/build-config/make/gptfdisk.make @@ -9,7 +9,7 @@ # This is a makefile fragment that defines the build of gptfdisk # -GPTFDISK_VERSION = 0.8.8 +GPTFDISK_VERSION = 1.0.10 GPTFDISK_TARBALL = gptfdisk-$(GPTFDISK_VERSION).tar.gz GPTFDISK_TARBALL_URLS += $(ONIE_MIRROR) http://sourceforge.net/projects/gptfdisk/files/gptfdisk/$(GPTFDISK_VERSION)/ GPTFDISK_BUILD_DIR = $(USER_BUILDDIR)/gptfdisk diff --git a/build-config/make/grub.make b/build-config/make/grub.make index 81d3fb12d..9c73857f2 100644 --- a/build-config/make/grub.make +++ b/build-config/make/grub.make @@ -13,9 +13,9 @@ # This is a makefile fragment that defines the build of grub # -GRUB_VERSION = 2.04 +GRUB_VERSION = 2.14 GRUB_TARBALL = grub-$(GRUB_VERSION).tar.xz -GRUB_TARBALL_URLS += $(ONIE_MIRROR) http://git.savannah.gnu.org/cgit/grub.git/snapshot/ ftp://alpha.gnu.org/gnu/grub/ +GRUB_TARBALL_URLS += $(ONIE_MIRROR) https://ftp.gnu.org/gnu/grub GRUB_BUILD_DIR = $(USER_BUILDDIR)/grub GRUB_DIR = $(GRUB_BUILD_DIR)/grub-$(GRUB_VERSION) GRUB_I386_DIR = $(GRUB_BUILD_DIR)/grub-i386-pc diff --git a/build-config/make/i2ctools.make b/build-config/make/i2ctools.make index 66c75214e..36e94a79e 100644 --- a/build-config/make/i2ctools.make +++ b/build-config/make/i2ctools.make @@ -11,9 +11,9 @@ # This is a makefile fragment that defines the build of i2ctools # -I2CTOOLS_VERSION = 3.1.1 -I2CTOOLS_TARBALL = i2c-tools-$(I2CTOOLS_VERSION).tar.bz2 -I2CTOOLS_TARBALL_URLS += $(ONIE_MIRROR) http://jdelvare.nerim.net/mirror/i2c-tools +I2CTOOLS_VERSION = 4.4 +I2CTOOLS_TARBALL = i2c-tools-$(I2CTOOLS_VERSION).tar.gz +I2CTOOLS_TARBALL_URLS += $(ONIE_MIRROR) https://mirrors.edge.kernel.org/pub/software/utils/i2c-tools I2CTOOLS_BUILD_DIR = $(MBUILDDIR)/i2c-tools I2CTOOLS_DIR = $(I2CTOOLS_BUILD_DIR)/i2c-tools-$(I2CTOOLS_VERSION) @@ -65,8 +65,8 @@ $(I2CTOOLS_PATCH_STAMP): $(I2CTOOLS_SRCPATCHDIR)/* $(MACHINE_I2CTOOLS_PATCHDIR_F $(Q) rm -f $@ && eval $(PROFILE_STAMP) $(Q) echo "==== Patching i2ctools ====" $(Q) mkdir -p $(I2CTOOLS_DIR)/sys_eeprom - $(Q) cp $(I2CTOOLS_DIR)/eepromer/24cXX.c $(I2CTOOLS_DIR)/sys_eeprom/24cXX.c - $(Q) cp $(I2CTOOLS_DIR)/eepromer/24cXX.h $(I2CTOOLS_DIR)/sys_eeprom/24cXX.h + $(Q) cp $(I2CTOOLS_DIR)/eeprog/24cXX.c $(I2CTOOLS_DIR)/sys_eeprom/24cXX.c + $(Q) cp $(I2CTOOLS_DIR)/eeprog/24cXX.h $(I2CTOOLS_DIR)/sys_eeprom/24cXX.h $(Q) mkdir -p $(I2CTOOLS_PATCHDIR) $(Q) cp $(I2CTOOLS_SRCPATCHDIR)/* $(I2CTOOLS_PATCHDIR) ifneq ($(MACHINE_I2CTOOLS_PATCHDIR),) diff --git a/build-config/make/images.make b/build-config/make/images.make index 02cc36fbf..21216022e 100644 --- a/build-config/make/images.make +++ b/build-config/make/images.make @@ -195,12 +195,8 @@ endif ifeq ($(REQUIRE_CXX_LIBS),yes) SYSROOT_LIBS += libstdc++.so libstdc++.so.6 - ifeq ($(GCC_VERSION),6.3.0) - SYSROOT_LIBS += libstdc++.so.6.0.22 - else ifeq ($(GCC_VERSION),4.9.2) - SYSROOT_LIBS += libstdc++.so.6.0.20 - else ifeq ($(GCC_VERSION),8.3.0) - SYSROOT_LIBS += libstdc++.so.6.0.25 + ifeq ($(GCC_VERSION),14.3.0) + SYSROOT_LIBS += libstdc++.so.6.0.33 else $(error C++ support: Unsupported GCC version: $(GCC_VERSION)) endif diff --git a/build-config/make/ipmitool.make b/build-config/make/ipmitool.make index d32191faf..57101dc9d 100644 --- a/build-config/make/ipmitool.make +++ b/build-config/make/ipmitool.make @@ -9,9 +9,14 @@ # This is a makefile fragment that defines the build of ipmitool # -IPMITOOL_VERSION = 1.8.18 -IPMITOOL_TARBALL = ipmitool-$(IPMITOOL_VERSION).tar.bz2 -IPMITOOL_TARBALL_URLS += $(ONIE_MIRROR) https://github.com/ipmitool/ipmitool/releases/download/IPMITOOL_$(subst .,_,$(IPMITOOL_VERSION))/ +IPMITOOL_VERSION = 1.8.19 +# 1.8.19 ships no release dist tarball, so use the upstream GitHub source +# tag archive. It unpacks to ipmitool-$(IPMITOOL_TAG)/ and has no +# generated configure, so the source step renames the dir and the +# configure step runs ./bootstrap (autoreconf) first. +IPMITOOL_TAG = IPMITOOL_$(subst .,_,$(IPMITOOL_VERSION)) +IPMITOOL_TARBALL = $(IPMITOOL_TAG).tar.gz +IPMITOOL_TARBALL_URLS += $(ONIE_MIRROR) https://github.com/ipmitool/ipmitool/archive/refs/tags IPMITOOL_BUILD_DIR = $(USER_BUILDDIR)/ipmitool IPMITOOL_DIR = $(IPMITOOL_BUILD_DIR)/ipmitool-$(IPMITOOL_VERSION) @@ -47,12 +52,16 @@ $(IPMITOOL_SOURCE_STAMP): $(USER_TREE_STAMP) | $(IPMITOOL_DOWNLOAD_STAMP) $(Q) rm -f $@ && eval $(PROFILE_STAMP) $(Q) echo "==== Extracting upstream ipmitool ====" $(Q) $(SCRIPTDIR)/extract-package $(IPMITOOL_BUILD_DIR) $(DOWNLOADDIR)/$(IPMITOOL_TARBALL) + $(Q) if [ -d "$(IPMITOOL_BUILD_DIR)/ipmitool-$(IPMITOOL_TAG)" ] ; then \ + mv "$(IPMITOOL_BUILD_DIR)/ipmitool-$(IPMITOOL_TAG)" $(IPMITOOL_DIR) ; \ + fi $(Q) touch $@ ipmitool-configure: $(IPMITOOL_CONFIGURE_STAMP) $(IPMITOOL_CONFIGURE_STAMP): $(IPMITOOL_SOURCE_STAMP) | $(DEV_SYSROOT_INIT_STAMP) $(Q) rm -f $@ && eval $(PROFILE_STAMP) $(Q) echo "==== Configure ipmitool-$(IPMITOOL_VERSION) ====" + $(Q) cd $(IPMITOOL_DIR) && PATH='$(CROSSBIN):$(PATH)' ./bootstrap $(Q) cd $(IPMITOOL_DIR) && PATH='$(CROSSBIN):$(PATH)' \ $(IPMITOOL_DIR)/configure \ --prefix=/usr \ diff --git a/build-config/make/kernel.make b/build-config/make/kernel.make index 996209374..9edaca9c9 100644 --- a/build-config/make/kernel.make +++ b/build-config/make/kernel.make @@ -109,6 +109,18 @@ LINUX_NEW_FILES = \ -type f -print -quit 2>/dev/null) endif +# Pre-6.x kernels do not build cleanly with the modern GCC 14 toolchain: their +# in-tree objtool cannot parse the objects emitted by the toolchain's binutils +# (e.g. "arch/x86/entry/thunk_64.o: objtool: missing symbol table"), and GCC 14 +# promotes several new warnings to errors. For those old kernels only, skip the +# objtool stack-validation pass and relax warnings-as-errors. Passing +# CONFIG_STACK_VALIDATION= on the command line overrides the value from .config +# in every (sub-)make, so objtool is not invoked, WITHOUT having to disable the +# RETPOLINE/ORC kconfig options that select it. Modern kernels (6.x+) keep full +# stack validation. +KERNEL_OLD_GCC_COMPAT = $(if $(shell [ "$(LINUX_MAJOR_VERSION)" -lt 6 ] 2>/dev/null && echo old),\ + CONFIG_STACK_VALIDATION= KBUILD_HOSTCFLAGS=-Wno-error KCFLAGS=-Wno-error) + kernel-build: $(KERNEL_BUILD_STAMP) $(KERNEL_BUILD_STAMP): $(KERNEL_SOURCE_STAMP) $(LINUX_NEW_FILES) $(LINUXDIR)/.config | $(XTOOLS_BUILD_STAMP) $(Q) rm -f $@ && eval $(PROFILE_STAMP) @@ -118,6 +130,7 @@ $(KERNEL_BUILD_STAMP): $(KERNEL_SOURCE_STAMP) $(LINUX_NEW_FILES) $(LINUXDIR)/.co ARCH=$(KERNEL_ARCH) \ CROSS_COMPILE=$(CROSSPREFIX) \ MODULE_SIG_KEY_SRCPREFIX=$(ONIE_MODULE_SIG_KEY_SRCPREFIX)/ \ + $(KERNEL_OLD_GCC_COMPAT) \ V=$(V) \ all $(Q) touch $@ diff --git a/build-config/make/kexec-tools.make b/build-config/make/kexec-tools.make index 4b379c7fb..c061f1df7 100644 --- a/build-config/make/kexec-tools.make +++ b/build-config/make/kexec-tools.make @@ -9,7 +9,7 @@ # This is a makefile fragment that defines the build of kexec-tools # -KEXEC_VERSION = 2.0.22 +KEXEC_VERSION = 2.0.32 KEXEC_TARBALL = kexec-tools-$(KEXEC_VERSION).tar.xz KEXEC_TARBALL_URLS += $(ONIE_MIRROR) \ https://www.kernel.org/pub/linux/utils/kernel/kexec diff --git a/build-config/make/keyutils.make b/build-config/make/keyutils.make index c1aad6b4a..eda105aee 100644 --- a/build-config/make/keyutils.make +++ b/build-config/make/keyutils.make @@ -9,10 +9,13 @@ # This is a makefile fragment that defines the build of keyutils # -KEYUTILS_VERSION = 1.5.10 -KEYUTILS_TARBALL = keyutils-$(KEYUTILS_VERSION).tar.bz2 +KEYUTILS_VERSION = 1.6.3 +KEYUTILS_TARBALL = keyutils-$(KEYUTILS_VERSION).tar.gz +# Upstream tarballs used to live at people.redhat.com/~dhowells, which was +# retired. The maintainer's git tree on kernel.org serves a reproducible +# snapshot tarball (keyutils-.tar.gz) instead. KEYUTILS_TARBALL_URLS += $(ONIE_MIRROR) \ - https://people.redhat.com/~dhowells/keyutils + https://git.kernel.org/pub/scm/linux/kernel/git/dhowells/keyutils.git/snapshot KEYUTILS_BUILD_DIR = $(USER_BUILDDIR)/keyutils KEYUTILS_DIR = $(KEYUTILS_BUILD_DIR)/keyutils-$(KEYUTILS_VERSION) @@ -29,7 +32,7 @@ PHONY += keyutils keyutils-download keyutils-source \ keyutils-download-clean KEYUTILS_BIN = keyctl -KEYUTILS_LIB = libkeyutils.so libkeyutils.so.1 libkeyutils.so.1.6 +KEYUTILS_LIB = libkeyutils.so libkeyutils.so.1 libkeyutils.so.1.10 keyutils: $(KEYUTILS_STAMP) diff --git a/build-config/make/libaio.make b/build-config/make/libaio.make new file mode 100644 index 000000000..5a9b1cd66 --- /dev/null +++ b/build-config/make/libaio.make @@ -0,0 +1,90 @@ +#------------------------------------------------------------------------------- +# +# SPDX-License-Identifier: GPL-2.0 +# +#------------------------------------------------------------------------------- +# +# This is a makefile fragment that defines the build of libaio +# +# libaio provides the Linux asynchronous I/O interface. It is required +# by lvm2 (>= 2.03, which uses it for its bcache I/O engine). + +LIBAIO_VERSION = 0.3.113 +LIBAIO_TARBALL = libaio-$(LIBAIO_VERSION).tar.gz +LIBAIO_TARBALL_URLS += $(ONIE_MIRROR) https://releases.pagure.org/libaio +LIBAIO_BUILD_DIR = $(USER_BUILDDIR)/libaio +LIBAIO_DIR = $(LIBAIO_BUILD_DIR)/libaio-$(LIBAIO_VERSION) + +LIBAIO_DOWNLOAD_STAMP = $(DOWNLOADDIR)/libaio-$(LIBAIO_VERSION)-download +LIBAIO_SOURCE_STAMP = $(USER_STAMPDIR)/libaio-source +LIBAIO_BUILD_STAMP = $(USER_STAMPDIR)/libaio-build +LIBAIO_INSTALL_STAMP = $(STAMPDIR)/libaio-install +LIBAIO_STAMP = $(LIBAIO_SOURCE_STAMP) \ + $(LIBAIO_BUILD_STAMP) \ + $(LIBAIO_INSTALL_STAMP) + +PHONY += libaio libaio-download libaio-source \ + libaio-build libaio-install libaio-clean libaio-download-clean + +# libaio builds via a plain Makefile (no ./configure); soname is +# libaio.so.1, real lib libaio.so.1.$(minor).$(micro) = libaio.so.1.0.2. +LIBAIO_LIBS = libaio.so libaio.so.1 libaio.so.1.0.2 + +libaio: $(LIBAIO_STAMP) + +DOWNLOAD += $(LIBAIO_DOWNLOAD_STAMP) +libaio-download: $(LIBAIO_DOWNLOAD_STAMP) +$(LIBAIO_DOWNLOAD_STAMP): $(PROJECT_STAMP) + $(Q) rm -f $@ && eval $(PROFILE_STAMP) + $(Q) echo "==== Getting upstream libaio ====" + $(Q) $(SCRIPTDIR)/fetch-package $(DOWNLOADDIR) $(UPSTREAMDIR) \ + $(LIBAIO_TARBALL) $(LIBAIO_TARBALL_URLS) + $(Q) touch $@ + +SOURCE += $(LIBAIO_SOURCE_STAMP) +libaio-source: $(LIBAIO_SOURCE_STAMP) +$(LIBAIO_SOURCE_STAMP): $(USER_TREE_STAMP) | $(LIBAIO_DOWNLOAD_STAMP) + $(Q) rm -f $@ && eval $(PROFILE_STAMP) + $(Q) echo "==== Extracting upstream libaio ====" + $(Q) $(SCRIPTDIR)/extract-package $(LIBAIO_BUILD_DIR) $(DOWNLOADDIR)/$(LIBAIO_TARBALL) + $(Q) touch $@ + +ifndef MAKE_CLEAN +LIBAIO_NEW_FILES = $(shell test -d $(LIBAIO_DIR) && test -f $(LIBAIO_BUILD_STAMP) && \ + find -L $(LIBAIO_DIR) -newer $(LIBAIO_BUILD_STAMP) -type f -print -quit) +endif + +libaio-build: $(LIBAIO_BUILD_STAMP) +$(LIBAIO_BUILD_STAMP): $(LIBAIO_SOURCE_STAMP) $(LIBAIO_NEW_FILES) | $(DEV_SYSROOT_INIT_STAMP) + $(Q) rm -f $@ && eval $(PROFILE_STAMP) + $(Q) echo "==== Building libaio-$(LIBAIO_VERSION) ====" + $(Q) PATH='$(CROSSBIN):$(PATH)' $(MAKE) -C $(LIBAIO_DIR) \ + CC=$(CROSSPREFIX)gcc prefix=/usr + $(Q) PATH='$(CROSSBIN):$(PATH)' $(MAKE) -C $(LIBAIO_DIR) \ + CC=$(CROSSPREFIX)gcc prefix=/usr DESTDIR=$(DEV_SYSROOT) install + $(Q) touch $@ + +libaio-install: $(LIBAIO_INSTALL_STAMP) +$(LIBAIO_INSTALL_STAMP): $(SYSROOT_INIT_STAMP) $(LIBAIO_BUILD_STAMP) + $(Q) rm -f $@ && eval $(PROFILE_STAMP) + $(Q) echo "==== Installing libaio in $(SYSROOTDIR) ====" + $(Q) for file in $(LIBAIO_LIBS) ; do \ + cp -a $(DEV_SYSROOT)/usr/lib/$$file $(SYSROOTDIR)/usr/lib/ ; \ + done + $(Q) touch $@ + +USER_CLEAN += libaio-clean +libaio-clean: + $(Q) rm -rf $(LIBAIO_BUILD_DIR) + $(Q) rm -f $(LIBAIO_STAMP) + $(Q) echo "=== Finished making $@ for $(PLATFORM)" + +DOWNLOAD_CLEAN += libaio-download-clean +libaio-download-clean: + $(Q) rm -f $(LIBAIO_DOWNLOAD_STAMP) $(DOWNLOADDIR)/$(LIBAIO_TARBALL) + +#------------------------------------------------------------------------------- +# +# Local Variables: +# mode: makefile-gmake +# End: diff --git a/build-config/make/libmnl.make b/build-config/make/libmnl.make new file mode 100644 index 000000000..bc66ef2a2 --- /dev/null +++ b/build-config/make/libmnl.make @@ -0,0 +1,102 @@ +#------------------------------------------------------------------------------- +# +# SPDX-License-Identifier: GPL-2.0 +# +#------------------------------------------------------------------------------- +# +# This is a makefile fragment that defines the build of libmnl +# +# libmnl is a minimal netlink library (netfilter.org). It is required +# by ethtool's netlink interface (the default since ethtool moved most +# functionality to netlink). + +LIBMNL_VERSION = 1.0.5 +LIBMNL_TARBALL = libmnl-$(LIBMNL_VERSION).tar.bz2 +LIBMNL_TARBALL_URLS += $(ONIE_MIRROR) https://www.netfilter.org/projects/libmnl/files +LIBMNL_BUILD_DIR = $(USER_BUILDDIR)/libmnl +LIBMNL_DIR = $(LIBMNL_BUILD_DIR)/libmnl-$(LIBMNL_VERSION) + +LIBMNL_DOWNLOAD_STAMP = $(DOWNLOADDIR)/libmnl-$(LIBMNL_VERSION)-download +LIBMNL_SOURCE_STAMP = $(USER_STAMPDIR)/libmnl-source +LIBMNL_CONFIGURE_STAMP = $(USER_STAMPDIR)/libmnl-configure +LIBMNL_BUILD_STAMP = $(USER_STAMPDIR)/libmnl-build +LIBMNL_INSTALL_STAMP = $(STAMPDIR)/libmnl-install +LIBMNL_STAMP = $(LIBMNL_SOURCE_STAMP) \ + $(LIBMNL_CONFIGURE_STAMP) \ + $(LIBMNL_BUILD_STAMP) \ + $(LIBMNL_INSTALL_STAMP) + +PHONY += libmnl libmnl-download libmnl-source libmnl-configure \ + libmnl-build libmnl-install libmnl-clean libmnl-download-clean + +LIBMNL_LIBS = libmnl.so libmnl.so.0 libmnl.so.0.2.0 + +libmnl: $(LIBMNL_STAMP) + +DOWNLOAD += $(LIBMNL_DOWNLOAD_STAMP) +libmnl-download: $(LIBMNL_DOWNLOAD_STAMP) +$(LIBMNL_DOWNLOAD_STAMP): $(PROJECT_STAMP) + $(Q) rm -f $@ && eval $(PROFILE_STAMP) + $(Q) echo "==== Getting upstream libmnl ====" + $(Q) $(SCRIPTDIR)/fetch-package $(DOWNLOADDIR) $(UPSTREAMDIR) \ + $(LIBMNL_TARBALL) $(LIBMNL_TARBALL_URLS) + $(Q) touch $@ + +SOURCE += $(LIBMNL_SOURCE_STAMP) +libmnl-source: $(LIBMNL_SOURCE_STAMP) +$(LIBMNL_SOURCE_STAMP): $(USER_TREE_STAMP) | $(LIBMNL_DOWNLOAD_STAMP) + $(Q) rm -f $@ && eval $(PROFILE_STAMP) + $(Q) echo "==== Extracting upstream libmnl ====" + $(Q) $(SCRIPTDIR)/extract-package $(LIBMNL_BUILD_DIR) $(DOWNLOADDIR)/$(LIBMNL_TARBALL) + $(Q) touch $@ + +ifndef MAKE_CLEAN +LIBMNL_NEW_FILES = $(shell test -d $(LIBMNL_DIR) && test -f $(LIBMNL_BUILD_STAMP) && \ + find -L $(LIBMNL_DIR) -newer $(LIBMNL_BUILD_STAMP) -type f -print -quit) +endif + +libmnl-configure: $(LIBMNL_CONFIGURE_STAMP) +$(LIBMNL_CONFIGURE_STAMP): $(LIBMNL_SOURCE_STAMP) | $(DEV_SYSROOT_INIT_STAMP) + $(Q) rm -f $@ && eval $(PROFILE_STAMP) + $(Q) echo "==== Configure libmnl-$(LIBMNL_VERSION) ====" + $(Q) cd $(LIBMNL_DIR) && PATH='$(CROSSBIN):$(PATH)' \ + $(LIBMNL_DIR)/configure \ + --enable-shared \ + --prefix=/usr \ + --host=$(TARGET) \ + CC=$(CROSSPREFIX)gcc \ + CFLAGS="$(ONIE_CFLAGS)" + $(Q) touch $@ + +libmnl-build: $(LIBMNL_BUILD_STAMP) +$(LIBMNL_BUILD_STAMP): $(LIBMNL_CONFIGURE_STAMP) $(LIBMNL_NEW_FILES) + $(Q) rm -f $@ && eval $(PROFILE_STAMP) + $(Q) echo "==== Building libmnl-$(LIBMNL_VERSION) ====" + $(Q) PATH='$(CROSSBIN):$(PATH)' $(MAKE) -C $(LIBMNL_DIR) DESTDIR=$(DEV_SYSROOT) + $(Q) PATH='$(CROSSBIN):$(PATH)' $(MAKE) -C $(LIBMNL_DIR) DESTDIR=$(DEV_SYSROOT) install + $(Q) touch $@ + +libmnl-install: $(LIBMNL_INSTALL_STAMP) +$(LIBMNL_INSTALL_STAMP): $(SYSROOT_INIT_STAMP) $(LIBMNL_BUILD_STAMP) + $(Q) rm -f $@ && eval $(PROFILE_STAMP) + $(Q) echo "==== Installing libmnl in $(SYSROOTDIR) ====" + $(Q) for file in $(LIBMNL_LIBS) ; do \ + cp -a $(DEV_SYSROOT)/usr/lib/$$file $(SYSROOTDIR)/usr/lib/ ; \ + done + $(Q) touch $@ + +USER_CLEAN += libmnl-clean +libmnl-clean: + $(Q) rm -rf $(LIBMNL_BUILD_DIR) + $(Q) rm -f $(LIBMNL_STAMP) + $(Q) echo "=== Finished making $@ for $(PLATFORM)" + +DOWNLOAD_CLEAN += libmnl-download-clean +libmnl-download-clean: + $(Q) rm -f $(LIBMNL_DOWNLOAD_STAMP) $(DOWNLOADDIR)/$(LIBMNL_TARBALL) + +#------------------------------------------------------------------------------- +# +# Local Variables: +# mode: makefile-gmake +# End: diff --git a/build-config/make/libpcap.make b/build-config/make/libpcap.make index 9b0c91994..b1d591b9c 100644 --- a/build-config/make/libpcap.make +++ b/build-config/make/libpcap.make @@ -9,7 +9,7 @@ # This is a makefile fragment that defines the build of libpcap # -LIBPCAP_VERSION = 1.10.4 +LIBPCAP_VERSION = 1.10.6 LIBPCAP_TARBALL = libpcap-$(LIBPCAP_VERSION).tar.gz LIBPCAP_TARBALL_URLS += $(ONIE_MIRROR) \ https://www.tcpdump.org/release diff --git a/build-config/make/lvm2.make b/build-config/make/lvm2.make index 468f6675f..ee3617fbe 100644 --- a/build-config/make/lvm2.make +++ b/build-config/make/lvm2.make @@ -11,11 +11,11 @@ # This is a makefile fragment that defines the build of lvm2 # -LVM2_VERSION ?= 2_02_105 -LVM2_TARBALL = lvm2-$(LVM2_VERSION).tar.xz -LVM2_TARBALL_URLS += $(ONIE_MIRROR) https://git.fedorahosted.org/cgit/lvm2.git/snapshot/ +LVM2_VERSION ?= 2.03.41 +LVM2_TARBALL = LVM2.$(LVM2_VERSION).tgz +LVM2_TARBALL_URLS += $(ONIE_MIRROR) https://sourceware.org/ftp/lvm2 LVM2_BUILD_DIR = $(USER_BUILDDIR)/lvm2 -LVM2_DIR = $(LVM2_BUILD_DIR)/lvm2-$(LVM2_VERSION) +LVM2_DIR = $(LVM2_BUILD_DIR)/LVM2.$(LVM2_VERSION) LVM2_SRCPATCHDIR = $(PATCHDIR)/lvm2 LVM2_DOWNLOAD_STAMP = $(DOWNLOADDIR)/lvm2-$(LVM2_VERSION)-download @@ -45,7 +45,6 @@ LVM2_PROGS = \ sbin/lvcreate \ sbin/lvdisplay \ sbin/lvextend \ - sbin/lvmchange \ sbin/lvmdiskscan \ sbin/lvmsadc \ sbin/lvmsar \ @@ -122,7 +121,7 @@ LVM2_CONFIGURE_OVERRIDES = \ lvm2-configure: $(LVM2_CONFIGURE_STAMP) -$(LVM2_CONFIGURE_STAMP): $(LVM2_SOURCE_STAMP) $(LVM2_PATCH_STAMP)\ +$(LVM2_CONFIGURE_STAMP): $(LVM2_SOURCE_STAMP) $(LVM2_PATCH_STAMP) $(LIBAIO_BUILD_STAMP)\ | $(DEV_SYSROOT_INIT_STAMP) $(Q) rm -f $@ && eval $(PROFILE_STAMP) $(Q) echo "==== Configure lvm2-$(LVM2_VERSION) ====" @@ -131,9 +130,14 @@ $(LVM2_CONFIGURE_STAMP): $(LVM2_SOURCE_STAMP) $(LVM2_PATCH_STAMP)\ $(LVM2_DIR)/configure \ --prefix=/usr \ --host=$(TARGET) \ - --with-clvmd=none \ --disable-nls \ --disable-selinux \ + --disable-readline \ + --disable-systemd-journal \ + --without-systemd \ + --without-udev \ + --disable-use-lvmlockd \ + --disable-use-lvmpolld \ CC=$(CROSSPREFIX)gcc \ CFLAGS="$(ONIE_CFLAGS)" \ LDFLAGS="$(ONIE_LDFLAGS)" @@ -150,7 +154,7 @@ $(LVM2_BUILD_STAMP): $(LVM2_CONFIGURE_STAMP) $(UTILLINUX_BUILD_STAMP) $(Q) touch $@ lvm2-install: $(LVM2_INSTALL_STAMP) -$(LVM2_INSTALL_STAMP): $(SYSROOT_INIT_STAMP) $(LVM2_BUILD_STAMP) $(UTILLINUX_INSTALL_STAMP) +$(LVM2_INSTALL_STAMP): $(SYSROOT_INIT_STAMP) $(LVM2_BUILD_STAMP) $(UTILLINUX_INSTALL_STAMP) $(LIBAIO_INSTALL_STAMP) $(Q) rm -f $@ && eval $(PROFILE_STAMP) $(Q) echo "==== Installing lvm2 programs in $(SYSROOTDIR) ====" $(Q) for file in $(LVM2_PROGS) ; do \ diff --git a/build-config/make/lzo.make b/build-config/make/lzo.make index be4ee0c8a..a16ff886c 100644 --- a/build-config/make/lzo.make +++ b/build-config/make/lzo.make @@ -10,7 +10,7 @@ # This is a makefile fragment that defines the build of lzo # -LZO_VERSION = 2.09 +LZO_VERSION = 2.10 LZO_TARBALL = lzo-$(LZO_VERSION).tar.gz LZO_TARBALL_URLS += $(ONIE_MIRROR) http://www.oberhumer.com/opensource/lzo/download LZO_BUILD_DIR = $(USER_BUILDDIR)/lzo diff --git a/build-config/make/mokutil.make b/build-config/make/mokutil.make index 50f40540b..71f17f8a2 100644 --- a/build-config/make/mokutil.make +++ b/build-config/make/mokutil.make @@ -10,7 +10,7 @@ # This is a makefile fragment that defines the build of mokutil # -MOKUTIL_VERSION = 0.4.0 +MOKUTIL_VERSION = 0.7.2 MOKUTIL_TARBALL = $(MOKUTIL_VERSION).tar.gz MOKUTIL_TARBALL_URLS += $(ONIE_MIRROR) https://github.com/lcp/mokutil/archive MOKUTIL_BUILD_DIR = $(USER_BUILDDIR)/mokutil @@ -57,11 +57,15 @@ $(MOKUTIL_SOURCE_STAMP): $(USER_TREE_STAMP) $(MOKUTIL_DOWNLOAD_STAMP) $(Q) touch $@ mokutil-patch: $(MOKUTIL_PATCH_STAMP) -$(MOKUTIL_PATCH_STAMP): $(EFIVAR_BUILD_STAMP) $(OPENSSL_BUILD_STAMP) $(MOKUTIL_SRCPATCHDIR)/* $(MOKUTIL_SOURCE_STAMP) +$(MOKUTIL_PATCH_STAMP): $(EFIVAR_BUILD_STAMP) $(OPENSSL_BUILD_STAMP) $(KEYUTILS_INSTALL_STAMP) $(MOKUTIL_SRCPATCHDIR)/* $(MOKUTIL_SOURCE_STAMP) $(Q) rm -f $@ && eval $(PROFILE_STAMP) $(Q) echo "==== Patching mokutil ====" $(Q) $(SCRIPTDIR)/apply-patch-series $(MOKUTIL_SRCPATCHDIR)/series $(MOKUTIL_DIR) - $(Q) cd $(MOKUTIL_DIR) && ./autogen.sh + # NOCONFIGURE: autoreconf only. autogen.sh would otherwise run an + # unconfigured ./configure that lacks ONIE's pkg-config sysroot env and + # fails mokutil's new libkeyutils check; the real configure step below + # runs it with $(ONIE_PKG_CONFIG) set. + $(Q) cd $(MOKUTIL_DIR) && NOCONFIGURE=1 ./autogen.sh $(Q) touch $@ ifndef MAKE_CLEAN @@ -70,7 +74,7 @@ MOKUTIL_NEW_FILES = $(shell test -d $(MOKUTIL_DIR) && test -f $(MOKUTIL_BUILD_ST endif mokutil-configure: $(MOKUTIL_CONFIGURE_STAMP) -$(MOKUTIL_CONFIGURE_STAMP): $(MOKUTIL_PATCH_STAMP) $(EFIVAR_BUILD_STAMP) | $(DEV_SYSROOT_INIT_STAMP) +$(MOKUTIL_CONFIGURE_STAMP): $(MOKUTIL_PATCH_STAMP) $(EFIVAR_BUILD_STAMP) $(KEYUTILS_INSTALL_STAMP) | $(DEV_SYSROOT_INIT_STAMP) $(Q) rm -f $@ && eval $(PROFILE_STAMP) $(Q) echo "==== Configure mokutil-$(MOKUTIL_VERSION) ====" $(Q) cd $(MOKUTIL_DIR) && PATH='$(CROSSBIN):$(PATH)' \ diff --git a/build-config/make/mtdutils.make b/build-config/make/mtdutils.make index be6f3c134..a554407a4 100644 --- a/build-config/make/mtdutils.make +++ b/build-config/make/mtdutils.make @@ -10,26 +10,28 @@ # This is a makefile fragment that defines the build of mtdutils # -MTDUTILS_VERSION = 1.5.2 -MTDUTILS_COMMIT = e4c8885bddac201ba0ef88560d6444f39e1ff870 -MTDUTILS_TARBALL = mtd-utils-$(MTDUTILS_VERSION).tar.gz -MTDUTILS_TARBALL_URLS += $(ONIE_MIRROR) http://git.infradead.org/mtd-utils.git/snapshot +MTDUTILS_VERSION = 2.3.1 +MTDUTILS_TARBALL = mtd-utils-$(MTDUTILS_VERSION).tar.bz2 +MTDUTILS_TARBALL_URLS += $(ONIE_MIRROR) https://infraroot.at/pub/mtd MTDUTILS_BUILD_DIR = $(USER_BUILDDIR)/mtd-utils -MTDUTILS_DIR = $(MTDUTILS_BUILD_DIR)/mtd-utils-e4c8885 +MTDUTILS_DIR = $(MTDUTILS_BUILD_DIR)/mtd-utils-$(MTDUTILS_VERSION) MTDUTILS_DOWNLOAD_STAMP = $(DOWNLOADDIR)/mtdutils-$(MTDUTILS_VERSION)-download MTDUTILS_SOURCE_STAMP = $(USER_STAMPDIR)/mtdutils-source +MTDUTILS_CONFIGURE_STAMP = $(USER_STAMPDIR)/mtdutils-configure MTDUTILS_BUILD_STAMP = $(USER_STAMPDIR)/mtdutils-build MTDUTILS_INSTALL_STAMP = $(STAMPDIR)/mtdutils-install MTDUTILS_STAMP = $(MTDUTILS_SOURCE_STAMP) \ + $(MTDUTILS_CONFIGURE_STAMP) \ $(MTDUTILS_BUILD_STAMP) \ $(MTDUTILS_INSTALL_STAMP) -MTDBINS = mkfs.jffs2 mkfs.ubifs ubinize ubiformat ubinfo mtdinfo +MTDBINS = mkfs.jffs2 mkfs.ubifs ubinize ubiformat ubinfo mtdinfo UBIBINS = ubiattach ubimkvol ubidetach ubirmvol -PHONY += mtdutils mtdutils-download mtdutils-source mtdutils-build \ - mtdutils-install mtdutils-clean mtdutils-download-clean +PHONY += mtdutils mtdutils-download mtdutils-source mtdutils-configure \ + mtdutils-build mtdutils-install mtdutils-clean mtdutils-download-clean \ + mtdutils-configure-help mtdutils: $(MTDUTILS_STAMP) @@ -39,8 +41,7 @@ $(MTDUTILS_DOWNLOAD_STAMP): $(PROJECT_STAMP) $(Q) rm -f $@ && eval $(PROFILE_STAMP) $(Q) echo "==== Getting upstream mtdutils ====" $(Q) $(SCRIPTDIR)/fetch-package $(DOWNLOADDIR) $(UPSTREAMDIR) \ - $(MTDUTILS_COMMIT).tar.gz $(MTDUTILS_TARBALL_URLS) - $(Q) cd $(DOWNLOADDIR) && ln -fs $(MTDUTILS_COMMIT).tar.gz $(MTDUTILS_TARBALL) + $(MTDUTILS_TARBALL) $(MTDUTILS_TARBALL_URLS) $(Q) touch $@ SOURCE += $(MTDUTILS_SOURCE_STAMP) @@ -51,29 +52,66 @@ $(MTDUTILS_SOURCE_STAMP): $(USER_TREE_STAMP) | $(MTDUTILS_DOWNLOAD_STAMP) $(Q) $(SCRIPTDIR)/extract-package $(MTDUTILS_BUILD_DIR) $(DOWNLOADDIR)/$(MTDUTILS_TARBALL) $(Q) touch $@ +mtdutils-configure-help: $(UTILLINUX_BUILD_STAMP) $(LZO_BUILD_STAMP) \ + $(ZLIB_BUILD_STAMP) \ + $(MTDUTILS_SOURCE_STAMP) | $(DEV_SYSROOT_INIT_STAMP) + $(Q) echo "==== Configure help for mtd-utils-$(MTDUTILS_VERSION) ====" + $(Q) cd $(MTDUTILS_DIR) && PATH='$(CROSSBIN):$(PATH)' \ + $(MTDUTILS_DIR)/configure --help + +# mtd-utils 2.x uses an autotools (./configure) build. +# +# Optional dependencies: +# - zlib, lzo, libuuid (util-linux) are provided by ONIE and enabled +# (UBIFS/JFFS2 support). +# - crypto (UBIFS authentication) is disabled: ONIE does not need it and +# the prior 1.5.2 build did not use it. +# - zstd is NOT provided by ONIE, so ZSTD compression is disabled. +# - selinux is NOT provided by ONIE, so SELinux support is disabled. +# - xattr is disabled to match the prior 1.5.2 build (WITHOUT_XATTR=1). +# - The unit/test programs are disabled (--without-tests); they are not +# installed and pull in extra dependencies (pthread, clock_gettime). +mtdutils-configure: $(MTDUTILS_CONFIGURE_STAMP) +$(MTDUTILS_CONFIGURE_STAMP): $(UTILLINUX_BUILD_STAMP) $(LZO_BUILD_STAMP) \ + $(ZLIB_BUILD_STAMP) \ + $(MTDUTILS_SOURCE_STAMP) | $(DEV_SYSROOT_INIT_STAMP) + $(Q) rm -f $@ && eval $(PROFILE_STAMP) + $(Q) echo "==== Configure mtd-utils-$(MTDUTILS_VERSION) ====" + $(Q) cd $(MTDUTILS_DIR) && PATH='$(CROSSBIN):$(PATH)' \ + $(MTDUTILS_DIR)/configure \ + --prefix=/usr \ + --host=$(TARGET) \ + --with-zlib \ + --with-lzo \ + --with-ubifs \ + --with-jffs \ + --without-crypto \ + --without-zstd \ + --without-xattr \ + --without-selinux \ + --without-tests \ + --without-lsmtd \ + --disable-unit-tests \ + --disable-ubihealthd \ + CC=$(CROSSPREFIX)gcc \ + CFLAGS="$(ONIE_CFLAGS)" \ + LDFLAGS="$(ONIE_LDFLAGS)" \ + $(ONIE_PKG_CONFIG) + $(Q) touch $@ + ifndef MAKE_CLEAN MTDUTILS_NEW_FILES = $(shell test -d $(MTDUTILS_DIR) && test -f $(MTDUTILS_BUILD_STAMP) && \ - find -L $(MTDUTILS_DIR) -newer $(MTDUTILS_BUILD_STAMP) -type f -print -quit) + find -L $(MTDUTILS_DIR) -newer $(MTDUTILS_BUILD_STAMP) -type f -print -quit) endif mtdutils-build: $(MTDUTILS_BUILD_STAMP) -$(MTDUTILS_BUILD_STAMP): $(MTDUTILS_NEW_FILES) $(UTILLINUX_BUILD_STAMP) \ - $(LZO_BUILD_STAMP) $(ZLIB_BUILD_STAMP) \ - $(MTDUTILS_SOURCE_STAMP) | $(DEV_SYSROOT_INIT_STAMP) +$(MTDUTILS_BUILD_STAMP): $(MTDUTILS_NEW_FILES) $(MTDUTILS_CONFIGURE_STAMP) $(Q) rm -f $@ && eval $(PROFILE_STAMP) + $(Q) echo "==== Building mtd-utils-$(MTDUTILS_VERSION) ====" $(Q) PATH='$(CROSSBIN):$(PATH)' \ - $(MAKE) -C $(MTDUTILS_DIR) \ - PREFIX=$(DEV_SYSROOT)/usr \ - CROSS=$(CROSSPREFIX) \ - CFLAGS="-g $(ONIE_CFLAGS)" \ - WITHOUT_XATTR=1 + $(MAKE) -C $(MTDUTILS_DIR) DESTDIR=$(DEV_SYSROOT) $(Q) PATH='$(CROSSBIN):$(PATH)' \ - $(MAKE) -C $(MTDUTILS_DIR) \ - PREFIX=$(DEV_SYSROOT)/usr \ - CROSS=$(CROSSPREFIX) \ - CFLAGS="-g $(ONIE_CFLAGS)" \ - WITHOUT_XATTR=1 \ - install + $(MAKE) -C $(MTDUTILS_DIR) DESTDIR=$(DEV_SYSROOT) install $(Q) touch $@ mtdutils-install: $(MTDUTILS_INSTALL_STAMP) @@ -101,8 +139,7 @@ mtdutils-clean: DOWNLOAD_CLEAN += mtdutils-download-clean mtdutils-download-clean: - $(Q) rm -f $(MTDUTILS_DOWNLOAD_STAMP) $(DOWNLOADDIR)/$(MTDUTILS_COMMIT).tar.gz \ - $(DOWNLOADDIR)/$(MTDUTILS_TARBALL) + $(Q) rm -f $(MTDUTILS_DOWNLOAD_STAMP) $(DOWNLOADDIR)/$(MTDUTILS_TARBALL) #------------------------------------------------------------------------------- # diff --git a/build-config/make/openssl.make b/build-config/make/openssl.make index 6591df9fc..64068b8f7 100644 --- a/build-config/make/openssl.make +++ b/build-config/make/openssl.make @@ -10,9 +10,13 @@ # This is a makefile fragment that defines the build of openssl # -OPENSSL_VERSION ?= 1.1.1g +OPENSSL_VERSION ?= 3.5.7 OPENSSL_TARBALL = openssl-$(OPENSSL_VERSION).tar.gz +# openssl.org/source/ only keeps the newest release of each line (older +# ones move to /source/old/), so prefer the stable per-version GitHub +# release asset and keep openssl.org as a fallback. OPENSSL_TARBALL_URLS += $(ONIE_MIRROR) \ + https://github.com/openssl/openssl/releases/download/openssl-$(OPENSSL_VERSION) \ https://www.openssl.org/source OPENSSL_BUILD_DIR = $(USER_BUILDDIR)/openssl OPENSSL_DIR = $(OPENSSL_BUILD_DIR)/openssl-$(OPENSSL_VERSION) @@ -31,13 +35,7 @@ PHONY += openssl openssl-download openssl-source \ openssl-configure openssl-build openssl-install openssl-clean \ openssl-download-clean -ifeq ($(OPENSSL_VERSION),1.1.1g) -OPENSSL_ARCH = -OPENSSL_LIBS = \ - engines-1.1 \ - libcrypto.so libcrypto.so.1.1 \ - libssl.so libssl.so.1.1 -else ifeq ($(OPENSSL_VERSION),3.4.0) +# ONIE standardizes on OpenSSL 3.x (SONAME major 3, "engines" dir). ifeq ($(ARCH),arm64) OPENSSL_ARCH = linux-aarch64 else @@ -48,9 +46,6 @@ OPENSSL_LIBS = \ engines \ libcrypto.so libcrypto.so.3 \ libssl.so libssl.so.3 -else - $(error OPENSSL_LIBS: Unsupported OpenSSL version: $(OPENSSL_VERSION)) -endif OPENSSL_BINS = openssl diff --git a/build-config/make/pciutils.make b/build-config/make/pciutils.make index 39cfedab6..0751b52e1 100644 --- a/build-config/make/pciutils.make +++ b/build-config/make/pciutils.make @@ -9,7 +9,7 @@ # This is a makefile fragment that defines the build of pciutils # -PCIUTILS_VERSION = 3.2.1 +PCIUTILS_VERSION = 3.15.0 PCIUTILS_TARBALL = pciutils-$(PCIUTILS_VERSION).tar.xz PCIUTILS_TARBALL_URLS += $(ONIE_MIRROR) https://www.kernel.org/pub/software/utils/pciutils PCIUTILS_BUILD_DIR = $(USER_BUILDDIR)/pciutils @@ -70,9 +70,9 @@ $(PCIUTILS_BUILD_STAMP): $(PCIUTILS_PATCH_STAMP) $(PCIUTILS_NEW_FILES) $(ZLIB_BU $(Q) rm -f $@ && eval $(PROFILE_STAMP) $(Q) echo "==== Building pciutils-$(PCIUTILS_VERSION) ====" $(Q) PATH='$(CROSSBIN):$(PATH)' $(MAKE) -C $(PCIUTILS_DIR) lib/libpci.so.$(PCIUTILS_VERSION) CROSS_COMPILE=$(CROSSPREFIX) \ - HOST=onie-$(ARCH)-linux ZLIB=yes DNS=no SHARED=yes LIBKMOD=no PREFIX=/usr DESTDIR=$(DEV_SYSROOT) + HOST=$(ARCH)-linux ZLIB=yes DNS=no SHARED=yes LIBKMOD=no PREFIX=/usr DESTDIR=$(DEV_SYSROOT) $(Q) PATH='$(CROSSBIN):$(PATH)' $(MAKE) -C $(PCIUTILS_DIR) install-lib CROSS_COMPILE=$(CROSSPREFIX) \ - HOST=onie-$(ARCH)-linux ZLIB=yes DNS=no SHARED=yes LIBKMOD=no PREFIX=/usr DESTDIR=$(DEV_SYSROOT) + HOST=$(ARCH)-linux ZLIB=yes DNS=no SHARED=yes LIBKMOD=no PREFIX=/usr DESTDIR=$(DEV_SYSROOT) $(Q) touch $@ pciutils-install: $(PCIUTILS_INSTALL_STAMP) diff --git a/build-config/make/pesign.make b/build-config/make/pesign.make deleted file mode 100644 index a2909d1d1..000000000 --- a/build-config/make/pesign.make +++ /dev/null @@ -1,90 +0,0 @@ -#------------------------------------------------------------------------------- -# -# Copyright (C) 2020 Alex Doyle -# Copyright (C) 2017 Curt Brune -# -# SPDX-License-Identifier: GPL-2.0 -# -#------------------------------------------------------------------------------- -# -# This is a makefile fragment that defines the build of pesign -# - -PESIGN_VERSION = 113 -PESIGN_TARBALL = pesign-$(PESIGN_VERSION).tar.bz2 -PESIGN_TARBALL_URLS += $(ONIE_MIRROR) https://github.com/rhinstaller/pesign/releases/download/$(PESIGN_VERSION) -PESIGN_BUILD_DIR = $(USER_BUILDDIR)/pesign -PESIGN_DIR = $(PESIGN_BUILD_DIR)/pesign-$(PESIGN_VERSION) - -PESIGN_SRCPATCHDIR = $(PATCHDIR)/pesign -PESIGN_DOWNLOAD_STAMP = $(DOWNLOADDIR)/pesign-download -PESIGN_SOURCE_STAMP = $(USER_STAMPDIR)/pesign-source -PESIGN_PATCH_STAMP = $(USER_STAMPDIR)/pesign-patch -PESIGN_BUILD_STAMP = $(USER_STAMPDIR)/pesign-build -PESIGN_INSTALL_STAMP = $(STAMPDIR)/pesign-install -PESIGN_STAMP = $(PESIGN_SOURCE_STAMP) \ - $(PESIGN_PATCH_STAMP) \ - $(PESIGN_BUILD_STAMP) \ - $(PESIGN_INSTALL_STAMP) - -PESIGN_INSTALL_DIR = $(PESIGN_BUILD_DIR)/install -PESIGN_BIN_DIR = $(PESIGN_INSTALL_DIR)/usr/bin - -PHONY += pesign pesign-download pesign-source pesign-patch \ - pesign-build pesign-install pesign-clean pesign-download-clean - -pesign: $(PESIGN_STAMP) - -DOWNLOAD += $(PESIGN_DOWNLOAD_STAMP) -pesign-download: $(PESIGN_DOWNLOAD_STAMP) -$(PESIGN_DOWNLOAD_STAMP): $(PROJECT_STAMP) - $(Q) rm -f $@ && eval $(PROFILE_STAMP) - $(Q) echo "==== Getting upstream pesign ====" - $(Q) $(SCRIPTDIR)/fetch-package $(DOWNLOADDIR) $(UPSTREAMDIR) \ - $(PESIGN_TARBALL) $(PESIGN_TARBALL_URLS) - $(Q) touch $@ - -SOURCE += $(PESIGN_SOURCE_STAMP) -pesign-source: $(PESIGN_SOURCE_STAMP) -$(PESIGN_SOURCE_STAMP): $(USER_TREE_STAMP) $(PESIGN_DOWNLOAD_STAMP) - $(Q) rm -f $@ && eval $(PROFILE_STAMP) - $(Q) echo "==== Extracting upstream pesign ====" - $(Q) $(SCRIPTDIR)/extract-package $(PESIGN_BUILD_DIR) $(DOWNLOADDIR)/$(PESIGN_TARBALL) - $(Q) touch $@ - -pesign-patch: $(PESIGN_PATCH_STAMP) -$(PESIGN_PATCH_STAMP): $(PESIGN_SRCPATCHDIR)/* $(PESIGN_SOURCE_STAMP) - $(Q) rm -f $@ && eval $(PROFILE_STAMP) - $(Q) echo "==== Patching pesign ====" - $(Q) $(SCRIPTDIR)/apply-patch-series $(PESIGN_SRCPATCHDIR)/series $(PESIGN_DIR) - $(Q) touch $@ - -ifndef MAKE_CLEAN -PESIGN_NEW_FILES = $(shell test -d $(PESIGN_DIR) && test -f $(PESIGN_BUILD_STAMP) && \ - find -L $(PESIGN_DIR) -newer $(PESIGN_BUILD_STAMP) -type f -print -quit) -endif - -pesign-build: $(PESIGN_BUILD_STAMP) -$(PESIGN_BUILD_STAMP): $(PESIGN_PATCH_STAMP) $(PESIGN_NEW_FILES) | $(DEV_SYSROOT_INIT_STAMP) - $(Q) rm -f $@ && eval $(PROFILE_STAMP) - $(Q) echo "==== Building pesign-$(PESIGN_VERSION) ====" - $(Q) $(MAKE) -C $(PESIGN_DIR) all - $(Q) touch $@ - -pesign-install: $(PESIGN_INSTALL_STAMP) -$(PESIGN_INSTALL_STAMP): $(SYSROOT_INIT_STAMP) $(PESIGN_BUILD_STAMP) - $(Q) rm -f $@ && eval $(PROFILE_STAMP) - $(Q) echo "==== Installing pesign in $(DEV_SYSROOT) ====" - $(Q) rm -rf $(PESIGN_INSTALL_DIR) - $(Q) $(MAKE) -C $(PESIGN_DIR) install DESTDIR=$(PESIGN_INSTALL_DIR) - $(Q) touch $@ - -USER_CLEAN += pesign-clean -pesign-clean: - $(Q) rm -rf $(PESIGN_BUILD_DIR) - $(Q) rm -f $(PESIGN_STAMP) - $(Q) echo "=== Finished making $@ for $(PLATFORM)" - -DOWNLOAD_CLEAN += pesign-download-clean -pesign-download-clean: - $(Q) rm -f $(PESIGN_DOWNLOAD_STAMP) $(DOWNLOADDIR)/$(PESIGN_TARBALL) diff --git a/build-config/make/popt.make b/build-config/make/popt.make index 59a41f416..80e3119bd 100644 --- a/build-config/make/popt.make +++ b/build-config/make/popt.make @@ -9,9 +9,11 @@ # This is a makefile fragment that defines the build of popt # -POPT_VERSION = 1.16 +POPT_VERSION = 1.19 POPT_TARBALL = popt-$(POPT_VERSION).tar.gz -POPT_TARBALL_URLS += $(ONIE_MIRROR) http://rpm5.org/files/popt/ +# popt's old home rpm5.org is defunct; it is maintained under +# rpm-software-management and released on ftp.rpm.org. +POPT_TARBALL_URLS += $(ONIE_MIRROR) http://ftp.rpm.org/popt/releases/popt-1.x POPT_BUILD_DIR = $(USER_BUILDDIR)/popt POPT_DIR = $(POPT_BUILD_DIR)/popt-$(POPT_VERSION) @@ -32,7 +34,7 @@ PHONY += popt popt-download popt-source popt-patch \ popt-configure popt-build popt-install popt-clean \ popt-download-clean -POPT_LIBS = libpopt.so libpopt.so.0 libpopt.so.0.0.0 +POPT_LIBS = libpopt.so libpopt.so.0 libpopt.so.0.0.2 popt: $(POPT_STAMP) diff --git a/build-config/make/shim.make b/build-config/make/shim.make index 0bcbf1d6a..cb380dcca 100644 --- a/build-config/make/shim.make +++ b/build-config/make/shim.make @@ -9,10 +9,10 @@ # This is a makefile fragment that defines the build of shim # -SHIM_VERSION = 15 +SHIM_VERSION = 16.1 SHIM_TARBALL = shim-$(SHIM_VERSION).tar.bz2 SHIM_TARBALL_URLS += $(ONIE_MIRROR) \ - https://github.com/rhinstaller/shim/releases/download/$(SHIM_VERSION) + https://github.com/rhboot/shim/releases/download/$(SHIM_VERSION) SHIM_BUILD_DIR = $(MBUILDDIR)/shim SHIM_DIR = $(SHIM_BUILD_DIR)/shim-$(SHIM_VERSION) @@ -100,22 +100,19 @@ SHIM_BUILD_ARGS = \ VENDOR_CERT_FILE=$(ONIE_VENDOR_CERT_DER) \ ARCH=$(ARCH) \ TOPDIR=$(SHIM_DIR) \ - LIB_PATH="$(DEV_SYSROOT)/usr/lib" \ - EFI_PATH="$(GNU_EFI_LIB_PATH)" \ - EFI_INCLUDE="$(GNU_EFI_INCLUDE)" + LIB_PATH="$(DEV_SYSROOT)/usr/lib" # Note that ONIE_VENDOR_CERT_DIR must reference the key to be # embedded in the shim shim-build: $(SHIM_BUILD_STAMP) -$(SHIM_BUILD_STAMP): $(SHIM_PATCH_STAMP) $(SHIM_NEW_FILES) $(GNU_EFI_INSTALL_STAMP) \ - $(PESIGN_INSTALL_STAMP) | $(DEV_SYSROOT_INIT_STAMP) +$(SHIM_BUILD_STAMP): $(SHIM_PATCH_STAMP) $(SHIM_NEW_FILES) | $(DEV_SYSROOT_INIT_STAMP) $(Q) rm -f $@ && eval $(PROFILE_STAMP) $(Q) echo "==== Building shim-$(SHIM_VERSION) ====" $(Q) echo "Using ONIE vendor certificate: $(ONIE_VENDOR_CERT_DER)" $(Q) openssl x509 -in "$(ONIE_VENDOR_CERT_DER)" -inform der -text -noout - $(Q) PATH='$(CROSSBIN):$(PESIGN_BIN_DIR):$(PATH)' \ + $(Q) PATH='$(CROSSBIN):$(PATH)' \ $(MAKE) -C $(SHIM_DIR) $(SHIM_BUILD_ARGS) - $(Q) PATH='$(CROSSBIN):$(PESIGN_BIN_DIR):$(PATH)' \ + $(Q) PATH='$(CROSSBIN):$(PATH)' \ $(MAKE) -C $(SHIM_DIR) $(SHIM_BUILD_ARGS) \ DESTDIR="$(DEV_SYSROOT)" \ DATATARGETDIR="usr/share/shim" \ @@ -146,6 +143,9 @@ shim-self-sign: $(SHIM_SELF_SIGN_STAMP) $(SHIM_SELF_SIGN_STAMP): $(SHIM_BUILD_STAMP) | $(DEV_SYSROOT_INIT_STAMP) # Save copies of unsigned binaries as *.unsigned if signing with # different keys is required. + # shim-self-sign is invoked standalone (before "make all") to populate + # safe-place/, so the machine stamp dir may not exist yet. + $(Q) mkdir -p $(dir $@) $(Q) rm -f $@ && eval $(PROFILE_STAMP) $(Q) echo "==== Self signing shim-$(SHIM_VERSION) ====" $(Q) echo " This is for testing purposes only." diff --git a/build-config/make/tcpdump.make b/build-config/make/tcpdump.make index 166e77484..871d9686a 100644 --- a/build-config/make/tcpdump.make +++ b/build-config/make/tcpdump.make @@ -12,7 +12,7 @@ include make/libpcap.make include make/openssl.make -TCPDUMP_VERSION = 4.99.4 +TCPDUMP_VERSION = 4.99.6 TCPDUMP_TARBALL = tcpdump-$(TCPDUMP_VERSION).tar.gz TCPDUMP_TARBALL_URLS += $(ONIE_MIRROR) \ https://www.tcpdump.org/release diff --git a/build-config/make/util-linux.make b/build-config/make/util-linux.make index 13c18882b..b34ea962b 100644 --- a/build-config/make/util-linux.make +++ b/build-config/make/util-linux.make @@ -9,11 +9,11 @@ # This is a makefile fragment that defines the build of some libraries # from the util-linux package. # -UTILLINUX_MAJOR_VERSION = 2.37 -UTILLINUX_VERSION = $(UTILLINUX_MAJOR_VERSION).2 +UTILLINUX_MAJOR_VERSION = 2.41 +UTILLINUX_VERSION = $(UTILLINUX_MAJOR_VERSION).4 UTILLINUX_TARBALL = util-linux-$(UTILLINUX_VERSION).tar.xz UTILLINUX_TARBALL_URLS += $(ONIE_MIRROR) \ - https://www.kernel.org/pub/linux/utils/util-linux/v$(UTILLINUX_VERSION)/ + https://www.kernel.org/pub/linux/utils/util-linux/v$(UTILLINUX_MAJOR_VERSION)/ ifneq ($(filter yes, $(EXT3_4_ENABLE) $(LVM2_ENABLE)),) UTILLINUX_FLAVOR = util-linux diff --git a/build-config/make/xtools.make b/build-config/make/xtools.make index a4fbad85a..b211b4c69 100644 --- a/build-config/make/xtools.make +++ b/build-config/make/xtools.make @@ -20,9 +20,9 @@ # CT_DEBUG_CT_SAVE_STEPS_GZIP=y # -XTOOLS_CONFIG ?= conf/crosstool/gcc-$(GCC_VERSION)/$(XTOOLS_LIBC)-$(XTOOLS_LIBC_VERSION)/crosstool.$(ONIE_ARCH).config +XTOOLS_CONFIG ?= conf/crosstool/gcc-$(GCC_VERSION)/$(XTOOLS_LIBC)-$(XTOOLS_LIBC_VERSION)/crosstool.$(ONIE_ARCH).defconfig XTOOLS_ROOT = $(BUILDDIR)/x-tools -XTOOLS_VERSION = $(ONIE_ARCH)-g$(GCC_VERSION)-lnx$(LINUX_RELEASE)-$(XTOOLS_LIBC)-$(XTOOLS_LIBC_VERSION) +XTOOLS_VERSION = $(ONIE_ARCH)-g$(GCC_VERSION)-lnx$(XTOOLS_LINUX_VERSION)-$(XTOOLS_LIBC)-$(XTOOLS_LIBC_VERSION) XTOOLS_DIR = $(XTOOLS_ROOT)/$(XTOOLS_VERSION) XTOOLS_BUILD_DIR = $(XTOOLS_DIR)/build XTOOLS_INSTALL_DIR = $(XTOOLS_DIR)/install @@ -56,40 +56,10 @@ CT_NG_COMPONENTS = \ make-4.2.1.tar.bz2 \ ncurses-6.0.tar.gz -ifeq ($(GCC_VERSION),8.3.0) -CT_NG_COMPONENTS += \ - binutils-2.32.tar.bz2 \ - expat-2.2.6.tar.bz2 \ - gcc-8.3.0.tar.xz \ - gdb-7.12.1.tar.xz \ - gmp-6.1.2.tar.xz \ - isl-0.20.tar.xz \ - mpc-1.1.0.tar.gz \ - mpfr-4.1.0.tar.xz \ - strace-4.26.tar.xz \ - zlib-1.2.11.tar.xz -else ifeq ($(GCC_VERSION),6.3.0) -CT_NG_COMPONENTS += \ - gcc-6.3.0.tar.bz2 \ - binutils-2.28.tar.bz2 \ - gdb-7.12.1.tar.xz \ - gmp-6.1.2.tar.xz \ - mpfr-3.1.5.tar.xz \ - isl-0.16.1.tar.xz \ - mpc-1.0.3.tar.gz \ - expat-2.2.0.tar.bz2 \ - strace-4.16.tar.xz -else ifeq ($(GCC_VERSION),4.9.2) -CT_NG_COMPONENTS += \ - gcc-4.9.2.tar.bz2 \ - binutils-2.24.tar.bz2 \ - gdb-7.11.1.tar.xz \ - gmp-6.0.0a.tar.xz \ - mpfr-3.1.2.tar.xz \ - isl-0.12.2.tar.bz2 \ - mpc-1.0.2.tar.gz \ - expat-2.1.1.tar.bz2 \ - strace-4.9.tar.xz +ifeq ($(GCC_VERSION),14.3.0) +# crosstool-NG 1.28.0 fetches the GCC 14.3.0 toolchain component set itself +# (the generated crosstool config enables downloads) using its own pinned +# per-component checksums, so no component tarballs are pre-fetched here. else $(error CT_NG_COMPONENTS download: Unsupported GCC version: $(GCC_VERSION)) endif @@ -122,12 +92,12 @@ $(XTOOLS_DOWNLOAD_STAMP): $(XTOOLS_PREP_STAMP) | $(KERNEL_DOWNLOAD_STAMP) $(UCLI # # Set CT_LINUX_VERSION and CT_LINUX_V_a_b=y in the new uClibc config. # -CT_LINUX_V = $(subst .,_,$(LINUX_VERSION)) -$(XTOOLS_BUILD_DIR)/.config: $(XTOOLS_CONFIG) $(XTOOLS_PREP_STAMP) - $(Q) echo "==== Copying $(XTOOLS_CONFIG) to $@ ====" - $(Q) cp -v $< $(XTOOLS_BUILD_DIR)/.config - $(Q) echo "==== Setting kernel version to $(LINUX_VERSION).$(LINUX_MINOR_VERSION) in .config ====" - $(Q) sed -i 's/CT_LINUX_VERSION=.*"/CT_LINUX_VERSION="$(LINUX_VERSION).$(LINUX_MINOR_VERSION)"/g' $(XTOOLS_BUILD_DIR)/.config +CT_LINUX_V = $(subst .,_,$(XTOOLS_LINUX_VERSION)) +$(XTOOLS_BUILD_DIR)/.config: $(XTOOLS_CONFIG) $(XTOOLS_PREP_STAMP) $(CROSSTOOL_NG_BUILD_STAMP) + $(Q) echo "==== Expanding $(XTOOLS_CONFIG) into $@ via ct-ng defconfig ====" + $(Q) cd $(XTOOLS_BUILD_DIR) && DEFCONFIG=$(abspath $(XTOOLS_CONFIG)) $(CROSSTOOL_NG_DIR)/ct-ng defconfig + $(Q) echo "==== Setting toolchain kernel-headers version to $(XTOOLS_LINUX_VERSION) in .config ====" + $(Q) sed -i 's/CT_LINUX_VERSION=.*"/CT_LINUX_VERSION="$(XTOOLS_LINUX_VERSION)"/g' $(XTOOLS_BUILD_DIR)/.config $(Q) sed -i 's/CT_LINUX_V_$(CT_LINUX_V) is not set/CT_LINUX_V_$(CT_LINUX_V)=y/g' $(XTOOLS_BUILD_DIR)/.config xtools-config: $(XTOOLS_BUILD_DIR)/.config $(CROSSTOOL_NG_BUILD_STAMP) diff --git a/build-config/make/zlib.make b/build-config/make/zlib.make index ffc187797..f1db1e6af 100644 --- a/build-config/make/zlib.make +++ b/build-config/make/zlib.make @@ -9,10 +9,11 @@ # This is a makefile fragment that defines the build of zlib # -ZLIB_VERSION = 1.2.11 +ZLIB_VERSION = 1.3.2 ZLIB_TARBALL = zlib-$(ZLIB_VERSION).tar.xz -ZLIB_TARBALL_URLS += $(ONIE_MIRROR) http://zlib.net \ - http://softlayer-dal.dl.sourceforge.net/project/libpng/zlib/$(ZLIB_VERSION) +ZLIB_TARBALL_URLS += $(ONIE_MIRROR) \ + https://github.com/madler/zlib/releases/download/v$(ZLIB_VERSION) \ + https://zlib.net ZLIB_BUILD_DIR = $(USER_BUILDDIR)/zlib ZLIB_DIR = $(ZLIB_BUILD_DIR)/zlib-$(ZLIB_VERSION) diff --git a/build-config/recovery/xorriso-options-bios.cfg b/build-config/recovery/xorriso-options-bios.cfg index 75118e251..7270a363a 100644 --- a/build-config/recovery/xorriso-options-bios.cfg +++ b/build-config/recovery/xorriso-options-bios.cfg @@ -29,6 +29,12 @@ boot_image any boot_info_table=on boot_image any next # BIOS GRUB hard disk image +# +# Declare an APM/MBR partition table so newer xorriso (libisofs 1.5.6+, as +# on the Debian 13 build host) does not mis-read the embedded GRUB boot +# block 0x55AA signature as a partition table and abort. Harmless on +# older xorriso. +boot_image any partition_table=on boot_image any system_area=embedded.img # Boot catalog file diff --git a/build-config/scripts/mk-grub-efi-image b/build-config/scripts/mk-grub-efi-image index 6a6450996..d67c05eb0 100755 --- a/build-config/scripts/mk-grub-efi-image +++ b/build-config/scripts/mk-grub-efi-image @@ -66,7 +66,6 @@ GRUB_MODULES=" loadenv loopback linux - linuxefi lsefi lsefimmap lsefisystab @@ -114,7 +113,6 @@ GRUB_ENCRYPTION_MODULES=" fshelp crypto bufio archelp - is_sb_enabled " @@ -189,11 +187,31 @@ EOF fi +# SBAT (Secure Boot Advanced Targeting) metadata. +# +# shim >= 15 enforces SBAT: before chainloading this GRUB image it reads the +# image's .sbat section and rejects it unless every component's generation +# (the integer 2nd field) meets the policy in the firmware's SbatLevel +# variable -- otherwise the boot fails with "Verification failed: (0x1A) +# Security Violation" before the GRUB menu ever appears. GRUB built without +# an .sbat section is rejected outright. grub-mkimage embeds the section when +# given --sbat. ONIE's shim (16.1) enforces a baseline of grub generation 4, +# so declare a grub generation that meets it. The "version" fields are +# informational; only the generation integers are compared by shim. +grub_version="$("$grub_mkimage" --version 2>/dev/null | awk '{print $NF}')" +sbat_csv="$(mktemp)" +cat < "$sbat_csv" +sbat,1,SBAT Version,sbat,1,https://github.com/rhboot/shim/blob/main/SBAT.md +grub,4,Free Software Foundation,grub,${grub_version},https://www.gnu.org/software/grub/ +grub.onie,1,Open Compute Project,grub,${grub_version},https://github.com/opencomputeproject/onie +EOF + "$grub_mkimage" --format="${ARCH}-efi" \ --directory="$GRUB_TARGET_LIB_UEFI_DIR" \ --prefix="/bogus" \ --config="$tmp_config" ${GPG_PUB_KEY} \ + --sbat="$sbat_csv" \ --output="$OUTPUT_IMAGE" \ $GRUB_MODULES -rm -f $tmp_config +rm -f $tmp_config $sbat_csv diff --git a/build-config/scripts/onie-mk-iso.sh b/build-config/scripts/onie-mk-iso.sh index be641c42d..6d8b1a719 100755 --- a/build-config/scripts/onie-mk-iso.sh +++ b/build-config/scripts/onie-mk-iso.sh @@ -287,19 +287,32 @@ if [ "$UEFI_ENABLE" = "yes" ] ; then zfscrypt zfsinfo " - # linuxefi is an x86 specific - if [ ${ARCH} != "arm64" ]; then - GRUB_MODULES=$GRUB_MODULES" linuxefi" - fi + # grub 2.12+ unified linuxefi into the standard linux/initrd commands; + # the linuxefi module no longer exists. # Generate UEFI format GRUB image mkdir -p $RECOVERY_EFI_BOOT_DIR + # SBAT metadata: shim (>= 15) enforces SBAT and refuses to chainload a GRUB + # image lacking a .sbat section (or below the firmware's SbatLevel policy), + # failing with "Verification failed: (0x1A) Security Violation" before the + # menu appears. grub-mkimage embeds the section when given --sbat. ONIE's + # shim (16.1) enforces grub generation 4; only the generation integers are + # compared by shim -- the version strings are informational. + grub_version="$($GRUB_HOST_BIN_UEFI_DIR/grub-mkimage --version 2>/dev/null | awk '{print $NF}')" + sbat_csv="$(mktemp)" + cat < "$sbat_csv" +sbat,1,SBAT Version,sbat,1,https://github.com/rhboot/shim/blob/main/SBAT.md +grub,4,Free Software Foundation,grub,${grub_version},https://www.gnu.org/software/grub/ +grub.onie,1,Open Compute Project,grub,${grub_version},https://github.com/opencomputeproject/onie +EOF $GRUB_HOST_BIN_UEFI_DIR/grub-mkimage \ --format=${ARCH}-efi \ --directory=$GRUB_TARGET_LIB_UEFI_DIR \ --prefix=/boot/grub \ --config=$RECOVERY_CONF_DIR/grub-uefi.cfg \ + --sbat="$sbat_csv" \ --output=$RECOVERY_GRUBX86_IMG \ $GRUB_MODULES + rm -f "$sbat_csv" # For UEFI, the GRUB loader image is embedded inside a UEFI ESP # (fat16) disk partition image. Create that here and copy the diff --git a/emulation/ci-oce-test.sh b/emulation/ci-oce-test.sh new file mode 100755 index 000000000..50397d402 --- /dev/null +++ b/emulation/ci-oce-test.sh @@ -0,0 +1,240 @@ +#!/bin/bash + +# Copyright (C) 2026 Brad House +# +# SPDX-License-Identifier: GPL-2.0 + +# +# OCE (ONIE Compliance Environment) CI harness. +# +# Drives ONIE's own contrib/oce/test-onie.py compliance suite against the +# kvm_x86_64 image, headless under QEMU. Where install-test hands ONIE the +# installer URL directly (install_url=), this exercises the REAL OCP discovery +# paths: for each selected OCE test, OCE generates the matching server set +# (isc-dhcp-server with the ONIE VIVSO option, nginx, tftpd-hpa, dnsmasq) and +# ONIE must discover + fetch the installer itself. USB tests instead attach a +# USB mass-storage image carrying the installer. +# +# Each test runs a FULL install: ONIE discovers via the method, fetches the +# installer, and installs it -- the harness asserts "ONIE: NOS install +# successful". To avoid re-embedding per test, ONIE is embedded onto a base +# disk ONCE up front; each test gets a fresh copy-on-write qcow2 overlay of that +# base (instant reset) as its install target. +# +# Tests run CHAINED (one VM at a time), ordered fast->slow, and the run STOPS on +# the first failure (fail-fast). Each test is capped by a timeout so a method +# that never installs fails in bounded time instead of looping ONIE's +# retry/sleep waterfall forever. +# +# Usage: ci-oce-test.sh [scope] +# scope: "default" (broad per-method installer+updater set, the per-PR sweep), +# "full" (every feasible test 3-121), or an explicit space/comma list +# of test numbers. Default: "default". +# Env: OCE_DIR= OCE_PYTHON= +# SERIAL_PREFIX= WORKDIR= TAP= +# PER_TEST_TIMEOUT= +# +# Requires (install in the workflow): qemu-system-x86_64, qemu-utils, dosfstools, +# isc-dhcp-server, nginx, tftpd-hpa, dnsmasq, and python3 with +# jinja2/netifaces/psutil. Needs sudo. ONIE is serial end-to-end -> no OCR. + +set -uo pipefail + +VMLINUZ="${1:?usage: ci-oce-test.sh [scope]}" +INITRD="${2:?need initrd}" +INSTALLER="${3:?need demo-installer.bin}" +UPDATER="${4:?need onie-updater}" +SCOPE="${5:-default}" +for f in "$VMLINUZ" "$INITRD" "$INSTALLER" "$UPDATER"; do + [ -r "$f" ] || { echo "ERROR: not readable: $f" >&2; exit 2; } +done +VMLINUZ="$(realpath "$VMLINUZ")"; INITRD="$(realpath "$INITRD")" +INSTALLER="$(realpath "$INSTALLER")"; UPDATER="$(realpath "$UPDATER")" + +OCE_DIR="${OCE_DIR:-$(cd "$(dirname "$0")/../contrib/oce" 2>/dev/null && pwd)}" +OCE_PYTHON="${OCE_PYTHON:-python3}" +[ -r "$OCE_DIR/test-onie.py" ] || { echo "ERROR: OCE not found at OCE_DIR=$OCE_DIR" >&2; exit 2; } + +WORKDIR="${WORKDIR:-$(mktemp -d)}"; mkdir -p "$WORKDIR" +SERIAL_PREFIX="${SERIAL_PREFIX:-$WORKDIR/oce}"; mkdir -p "$(dirname "$SERIAL_PREFIX")" +TAP="${TAP:-onie-oce0}" +HOST_V4="192.168.1.1"; DUT_V4="192.168.1.100"; CIDR="24"; DUT_MAC="52:54:00:0c:e0:01" +PER_TEST_TIMEOUT="${PER_TEST_TIMEOUT:-180}" +EMBED_PORT=8920 +ACCEL="accel=kvm:tcg"; CONSOLE="console=tty0 console=ttyS0,115200n8" +BASE_DISK="$WORKDIR/onie-base.qcow2" + +# ---- test sets (ordered fast->slow: USB/DHCP-direct, then DHCP+server, then no-DHCP/fallback) ---- +DEFAULT_TESTS="3 9 10 69 70 11 12 13 14 20 26 32 71 72 73 74 80 86 92 44 50 56 104 110 116" +FULL_TESTS="$(seq 3 121)" +case "$SCOPE" in + default) TESTS="$DEFAULT_TESTS" ;; + full) TESTS="$FULL_TESTS" ;; + *) TESTS="$(echo "$SCOPE" | tr ',' ' ')" ;; +esac + +echo "== ONIE OCE compliance sweep (full install) ==" +echo " scope : $SCOPE ($(echo $TESTS | wc -w) tests)" +echo " tap iface : $TAP ($HOST_V4/$CIDR, DUT $DUT_V4 mac $DUT_MAC)" +echo " accel : kvm:tcg ($([ -w /dev/kvm ] && echo KVM || echo TCG))" +echo " per-test : ${PER_TEST_TIMEOUT}s cap" + +stop_services() { + sudo pkill -f "dhcpd.leases.oce" 2>/dev/null + sudo pkill -f "nginx.*$WORKDIR" 2>/dev/null + sudo pkill -x in.tftpd 2>/dev/null + sudo pkill -f "dnsmasq.*$WORKDIR" 2>/dev/null + true +} +cleanup() { + stop_services + sudo ip link del "$TAP" 2>/dev/null + [ -n "${KEEP:-}" ] || rm -rf "$WORKDIR" +} +trap cleanup EXIT + +# ---- poll a serial log until a marker (regex) or panic or timeout; kill QEMU; echo elapsed ---- +wait_marker() { # + local log="$1" ok_re="$2" tmo="$3" qpid=$! t=0 + while kill -0 "$qpid" 2>/dev/null; do + grep -Eaq "$ok_re" "$log" && break + grep -aq 'Kernel panic' "$log" && break + [ "$t" -ge "$tmo" ] && break + sleep 1; t=$((t + 1)) + done + kill "$qpid" 2>/dev/null; sleep 1; kill -9 "$qpid" 2>/dev/null; wait "$qpid" 2>/dev/null + echo "$t" +} + +# ---- one-time setup: stop conflicting services, set up the tap ---- +echo "== setup ==" +sudo systemctl stop nginx isc-dhcp-server dnsmasq tftpd-hpa 2>/dev/null +sudo pkill -x nginx 2>/dev/null; sudo pkill -x dnsmasq 2>/dev/null; sudo pkill -x dhcpd 2>/dev/null +sudo ip link del "$TAP" 2>/dev/null +sudo ip tuntap add dev "$TAP" mode tap user "$(id -un)" +sudo ip addr add "$HOST_V4/$CIDR" dev "$TAP" +sudo ip -6 addr add fd00:ce::1/64 dev "$TAP" 2>/dev/null +sudo ip link set "$TAP" up + +# ---- embed ONIE onto the base disk ONCE (reused via overlays); via SLIRP + a temp HTTP updater ---- +echo "== embed ONIE onto base disk (one-time) ==" +qemu-img create -f qcow2 "$BASE_DISK" 4G >/dev/null 2>&1 +python3 -m http.server "$EMBED_PORT" --directory "$(dirname "$UPDATER")" >"$WORKDIR/embed-http.log" 2>&1 & +EHP=$!; sleep 1 +: > "$WORKDIR/embed.log" +qemu-system-x86_64 \ + -machine pc,${ACCEL} -m 2048 -smp 2 \ + -kernel "$VMLINUZ" -initrd "$INITRD" \ + -append "quiet ${CONSOLE} boot_env=recovery boot_reason=embed install_url=http://10.0.2.2:${EMBED_PORT}/$(basename "$UPDATER")" \ + -drive file="$BASE_DISK",if=virtio,format=qcow2 \ + -netdev user,id=n0 -device virtio-net,netdev=n0 \ + -display none -serial "file:$WORKDIR/embed.log" -no-reboot >/dev/null 2>&1 & +esecs="$(wait_marker "$WORKDIR/embed.log" 'ONIE: NOS install successful|ONIE: Rebooting' 240)" +kill "$EHP" 2>/dev/null +if ! grep -aqE 'ONIE: NOS install successful|ONIE: Rebooting|Installing ONIE on' "$WORKDIR/embed.log"; then + echo "ERROR: embed failed (${esecs}s) -- cannot run install tests" + sed 's/\x1b\[[0-9;?]*[A-Za-z]//g; s/\r/\n/g' "$WORKDIR/embed.log" | grep -avE '^\s*$' | tail -20 + exit 1 +fi +echo " embedded in ${esecs}s -> $BASE_DISK (cached; tests overlay this)" + +# ---- build a vfat USB image carrying the installer under ONIE's default names ---- +build_usb_image() { # + local img="$1" + # The vfat must hold the installer under all 4 names below; size it to fit + # (installer size x4) plus slack for FAT overhead, so a >16MB installer does + # not overflow a fixed 64MB image partway through the copies. + local mb=$(( ($(stat -c%s "$INSTALLER") / 1048576 + 1) * 4 + 32 )) + qemu-img create -f raw "$img" "${mb}M" >/dev/null 2>&1 + mkfs.vfat -n ONIE-USB "$img" >/dev/null 2>&1 + local mnt; mnt="$(mktemp -d)" + sudo mount -o loop "$img" "$mnt" + for n in onie-installer-x86_64-kvm_x86_64-r0 onie-installer-kvm_x86_64 \ + onie-installer-x86_64 onie-installer; do + sudo cp "$INSTALLER" "$mnt/$n" + done + sudo sync; sudo umount "$mnt"; rmdir "$mnt" +} + +# ---- run one OCE test (full install); return 0 on "NOS install successful" ---- +run_one() { # + local t="$1" + local tdir="$WORKDIR/oce-out/test-$t" + local log="${SERIAL_PREFIX}-test${t}.log" + local disk="$WORKDIR/target-$t.qcow2" + rm -rf "$tdir"; : > "$log" + stop_services; sleep 1 + + # installer tests = 3-61, updater tests = 63-121 (onie-tests.json). An + # updater is discovered/run only under boot_reason=update and reports a + # different success line than an installer. + local reason ok_re + if [ "$t" -ge 62 ]; then reason=update; ok_re='ONIE: Success: Firmware update|Firmware update install successful' + else reason=install; ok_re='ONIE: NOS install successful'; fi + + # fresh CoW overlay of the embedded base = this test's install target (instant reset) + qemu-img create -f qcow2 -b "$BASE_DISK" -F qcow2 "$disk" >/dev/null 2>&1 + + ( cd "$OCE_DIR" && "$OCE_PYTHON" test-onie.py -D \ + -I "$TAP" -m "$DUT_MAC" -i "$DUT_V4/$CIDR" -t "$t" \ + -o onie_installer "$INSTALLER" onie_updater "$UPDATER" \ + onie_arch x86_64 onie_vendor kvm onie_machine x86_64 onie_machine_rev 0 \ + onie_switch_asic qemu \ + -O "$WORKDIR/oce-out" ) >"$WORKDIR/oce-gen-$t.log" 2>&1 + + chmod -R o+rX "$WORKDIR" 2>/dev/null # nginx/tftpd/dnsmasq workers run as nobody/tftp + + local is_usb=no; local -a qemu_src + if [ -f "$tdir/dhcpd.conf" ] || [ -f "$tdir/nginx.conf" ] || [ -f "$tdir/tftp.sh" ] || [ -f "$tdir/dnsmasq.conf" ]; then + if [ -f "$tdir/dhcpd.conf" ]; then # dhcpd is AppArmor-confined -> use allowed paths + sudo cp "$tdir/dhcpd.conf" /etc/dhcp/oce-ci.conf + sudo sh -c ': > /var/lib/dhcp/dhcpd.leases.oce' + sudo dhcpd -f --no-pid -cf /etc/dhcp/oce-ci.conf -lf /var/lib/dhcp/dhcpd.leases.oce "$TAP" \ + >"$WORKDIR/dhcpd-$t.out" 2>&1 & + fi + [ -f "$tdir/nginx.conf" ] && sudo nginx -c "$tdir/nginx.conf" >"$WORKDIR/nginx-$t.out" 2>&1 & + [ -f "$tdir/tftp.sh" ] && ( cd "$tdir" && sudo bash tftp.sh >"$WORKDIR/tftp-$t.out" 2>&1 & ) + [ -f "$tdir/dnsmasq.conf" ] && sudo dnsmasq -k -C "$tdir/dnsmasq.conf" >"$WORKDIR/dnsmasq-$t.out" 2>&1 & + sleep 3 + qemu_src=(-netdev tap,id=n0,ifname="$TAP",script=no,downscript=no + -device virtio-net,netdev=n0,mac="$DUT_MAC") + else + is_usb=yes + build_usb_image "$WORKDIR/usb-$t.img" + qemu_src=(-device qemu-xhci -device usb-storage,drive=ud + -drive id=ud,if=none,format=raw,file="$WORKDIR/usb-$t.img" + -netdev user,id=n0 -device virtio-net,netdev=n0) + fi + + qemu-system-x86_64 \ + -machine pc,${ACCEL} -m 2048 -smp 2 \ + -kernel "$VMLINUZ" -initrd "$INITRD" \ + -append "quiet ${CONSOLE} boot_env=recovery boot_reason=${reason}" \ + -drive file="$disk",if=virtio,format=qcow2 \ + "${qemu_src[@]}" \ + -display none -serial "file:$log" -no-reboot >/dev/null 2>&1 & + local secs; secs="$(wait_marker "$log" "$ok_re" "$PER_TEST_TIMEOUT")" + stop_services + rm -f "$disk" + + local kind; kind="$([ "$is_usb" = yes ] && echo USB || echo net)" + if grep -Eaq "$ok_re" "$log"; then + printf ' PASS test %-3s [%s/%s] %ss ok\n' "$t" "$kind" "$reason" "$secs" + return 0 + fi + printf ' FAIL test %-3s [%s/%s] %ss did NOT reach "%s"\n' "$t" "$kind" "$reason" "$secs" "$ok_re" + echo "---- serial tail (test $t) ----" + sed 's/\x1b\[[0-9;?]*[A-Za-z]//g; s/\x1b[=>]//g; s/\r/\n/g' "$log" 2>/dev/null | grep -avE '^\s*$' | tail -25 + return 1 +} + +# ---- chained, fail-fast ---- +echo "== running '$SCOPE' sweep ($(echo $TESTS | wc -w) tests), full install, fail-fast ==" +pass=0 +for t in $TESTS; do + if run_one "$t"; then pass=$((pass + 1)); else + echo "RESULT: FAIL (OCE sweep stopped at test $t; $pass passed before it)"; exit 1 + fi +done +echo "RESULT: PASS (OCE sweep: all $pass tests installed via discovery)" +exit 0 diff --git a/machine/accton/accton_833435_b21/machine.make b/machine/accton/accton_833435_b21/machine.make index d2fec61eb..f02f156a3 100644 --- a/machine/accton/accton_833435_b21/machine.make +++ b/machine/accton/accton_833435_b21/machine.make @@ -34,7 +34,6 @@ CONSOLE_DEV = 1 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as4222_28pe/machine.make b/machine/accton/accton_as4222_28pe/machine.make index 6b1f01419..bdb6df2c3 100644 --- a/machine/accton/accton_as4222_28pe/machine.make +++ b/machine/accton/accton_as4222_28pe/machine.make @@ -37,7 +37,6 @@ PXE_EFI64_ENABLE = yes LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as4510_52t/machine.make b/machine/accton/accton_as4510_52t/machine.make index 410f1383a..1baddf742 100644 --- a/machine/accton/accton_as4510_52t/machine.make +++ b/machine/accton/accton_as4510_52t/machine.make @@ -29,8 +29,6 @@ VENDOR_ID = 259 LINUX_VERSION = 3.2 LINUX_MINOR_VERSION = 69 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 # Set the desired U-Boot version UBOOT_VERSION = 2012.10 diff --git a/machine/accton/accton_as4600_54t/machine.make b/machine/accton/accton_as4600_54t/machine.make index ef6225a9c..7b1b533e0 100644 --- a/machine/accton/accton_as4600_54t/machine.make +++ b/machine/accton/accton_as4600_54t/machine.make @@ -33,8 +33,6 @@ VENDOR_ID = 259 LINUX_VERSION = 3.2 LINUX_MINOR_VERSION = 69 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 # Exclude ext3/4 file system tools EXT3_4_ENABLE = no diff --git a/machine/accton/accton_as4610_30/machine.make b/machine/accton/accton_as4610_30/machine.make index 19ed22cd4..cf6bc9a53 100644 --- a/machine/accton/accton_as4610_30/machine.make +++ b/machine/accton/accton_as4610_30/machine.make @@ -29,8 +29,6 @@ VENDOR_ID = 259 LINUX_VERSION = 3.2 LINUX_MINOR_VERSION = 69 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 KERNEL_LOAD_ADDRESS = 0x61008000 KERNEL_ENTRY_POINT = 0x61008000 diff --git a/machine/accton/accton_as4610_54/machine.make b/machine/accton/accton_as4610_54/machine.make index cd54ae12a..4ccdc03be 100644 --- a/machine/accton/accton_as4610_54/machine.make +++ b/machine/accton/accton_as4610_54/machine.make @@ -29,8 +29,6 @@ VENDOR_ID = 259 LINUX_VERSION = 3.2 LINUX_MINOR_VERSION = 69 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 KERNEL_LOAD_ADDRESS = 0x61008000 KERNEL_ENTRY_POINT = 0x61008000 diff --git a/machine/accton/accton_as4620_54pe/machine.make b/machine/accton/accton_as4620_54pe/machine.make index 7c5bf8722..754279e84 100644 --- a/machine/accton/accton_as4620_54pe/machine.make +++ b/machine/accton/accton_as4620_54pe/machine.make @@ -33,7 +33,6 @@ CONSOLE_DEV = 1 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as4625/machine.make b/machine/accton/accton_as4625/machine.make index e49000110..4eab06a7d 100644 --- a/machine/accton/accton_as4625/machine.make +++ b/machine/accton/accton_as4625/machine.make @@ -35,7 +35,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as4630/machine.make b/machine/accton/accton_as4630/machine.make index 4294ae97d..e695d7a87 100644 --- a/machine/accton/accton_as4630/machine.make +++ b/machine/accton/accton_as4630/machine.make @@ -35,7 +35,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as5512_54x/machine.make b/machine/accton/accton_as5512_54x/machine.make index 347e7ec0b..1a565df9a 100644 --- a/machine/accton/accton_as5512_54x/machine.make +++ b/machine/accton/accton_as5512_54x/machine.make @@ -34,7 +34,6 @@ CONSOLE_DEV = 1 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as5600_52x/machine.make b/machine/accton/accton_as5600_52x/machine.make index e257ae5a6..bf6774b55 100644 --- a/machine/accton/accton_as5600_52x/machine.make +++ b/machine/accton/accton_as5600_52x/machine.make @@ -38,8 +38,6 @@ VENDOR_ID = 259 LINUX_VERSION = 3.2 LINUX_MINOR_VERSION = 69 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 # Exclude ext3/4 file system tools EXT3_4_ENABLE = no diff --git a/machine/accton/accton_as5610_52x/machine.make b/machine/accton/accton_as5610_52x/machine.make index eb2c7d11c..c57daf9e0 100644 --- a/machine/accton/accton_as5610_52x/machine.make +++ b/machine/accton/accton_as5610_52x/machine.make @@ -38,8 +38,6 @@ VENDOR_ID = 259 LINUX_VERSION = 3.2 LINUX_MINOR_VERSION = 69 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 # Exclude ext3/4 file system tools EXT3_4_ENABLE = no diff --git a/machine/accton/accton_as5700_96x/machine.make b/machine/accton/accton_as5700_96x/machine.make index bae8b3727..579032869 100644 --- a/machine/accton/accton_as5700_96x/machine.make +++ b/machine/accton/accton_as5700_96x/machine.make @@ -27,8 +27,6 @@ LINUX_TARBALL_URLS = http://git.freescale.com/git/cgit.cgi/ppc/sdk/linux.git/sna LINUX_RELEASE = fsl-sdk-v1.5 LINUX_TARBALL = linux-$(LINUX_RELEASE).tar.bz2 -# Older GCC required for older fsl-sdk-v1.5 kernel -GCC_VERSION = 4.9.2 UBOOT_MACHINE = AS5700_96X KERNEL_DTB = as5700_96x.dtb diff --git a/machine/accton/accton_as5710_54x/machine.make b/machine/accton/accton_as5710_54x/machine.make index bc967e033..99897f137 100644 --- a/machine/accton/accton_as5710_54x/machine.make +++ b/machine/accton/accton_as5710_54x/machine.make @@ -27,8 +27,6 @@ LINUX_TARBALL_URLS = http://git.freescale.com/git/cgit.cgi/ppc/sdk/linux.git/sna LINUX_RELEASE = fsl-sdk-v1.5 LINUX_TARBALL = linux-$(LINUX_RELEASE).tar.bz2 -# Older GCC required for older fsl-sdk-v1.5 kernel -GCC_VERSION = 4.9.2 UBOOT_MACHINE = AS5710_54X KERNEL_DTB = as5710_54x.dtb diff --git a/machine/accton/accton_as5712_54x/machine.make b/machine/accton/accton_as5712_54x/machine.make index b3fadefc5..6270639eb 100644 --- a/machine/accton/accton_as5712_54x/machine.make +++ b/machine/accton/accton_as5712_54x/machine.make @@ -34,7 +34,6 @@ CONSOLE_DEV = 1 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as5812_54t/machine.make b/machine/accton/accton_as5812_54t/machine.make index 664a766e5..9f3b4a2c1 100644 --- a/machine/accton/accton_as5812_54t/machine.make +++ b/machine/accton/accton_as5812_54t/machine.make @@ -34,7 +34,6 @@ CONSOLE_DEV = 1 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as5812_54x/machine.make b/machine/accton/accton_as5812_54x/machine.make index 6313d5f28..ffdd09b0e 100644 --- a/machine/accton/accton_as5812_54x/machine.make +++ b/machine/accton/accton_as5812_54x/machine.make @@ -34,7 +34,6 @@ CONSOLE_DEV = 1 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as5816_54x_td2/machine.make b/machine/accton/accton_as5816_54x_td2/machine.make index 5f63005ca..0faadb8eb 100644 --- a/machine/accton/accton_as5816_54x_td2/machine.make +++ b/machine/accton/accton_as5816_54x_td2/machine.make @@ -30,7 +30,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as5822_54x/machine.make b/machine/accton/accton_as5822_54x/machine.make index 8739ca4fb..50b6f2fe2 100644 --- a/machine/accton/accton_as5822_54x/machine.make +++ b/machine/accton/accton_as5822_54x/machine.make @@ -35,7 +35,6 @@ CONSOLE_DEV = 1 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as5835_54/machine.make b/machine/accton/accton_as5835_54/machine.make index 5bb3accd7..e6a3b5e10 100644 --- a/machine/accton/accton_as5835_54/machine.make +++ b/machine/accton/accton_as5835_54/machine.make @@ -33,7 +33,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as5912_42x/machine.make b/machine/accton/accton_as5912_42x/machine.make index 1f07adcf2..b579cd9be 100644 --- a/machine/accton/accton_as5912_42x/machine.make +++ b/machine/accton/accton_as5912_42x/machine.make @@ -33,7 +33,6 @@ CONSOLE_DEV = 1 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as5912_54x/machine.make b/machine/accton/accton_as5912_54x/machine.make index 9ffb7a113..618a600b8 100644 --- a/machine/accton/accton_as5912_54x/machine.make +++ b/machine/accton/accton_as5912_54x/machine.make @@ -35,7 +35,6 @@ CONSOLE_DEV = 1 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as5912_54xk/machine.make b/machine/accton/accton_as5912_54xk/machine.make index 3a75c779f..c5a7a5a2c 100644 --- a/machine/accton/accton_as5912_54xk/machine.make +++ b/machine/accton/accton_as5912_54xk/machine.make @@ -35,7 +35,6 @@ CONSOLE_DEV = 1 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as5915_16x/machine.make b/machine/accton/accton_as5915_16x/machine.make index 94060f833..90e8ed7c3 100644 --- a/machine/accton/accton_as5915_16x/machine.make +++ b/machine/accton/accton_as5915_16x/machine.make @@ -35,7 +35,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as5915_18x/machine.make b/machine/accton/accton_as5915_18x/machine.make index 2875c1ac8..d9bf9812f 100644 --- a/machine/accton/accton_as5915_18x/machine.make +++ b/machine/accton/accton_as5915_18x/machine.make @@ -37,7 +37,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as5916_26xb/machine.make b/machine/accton/accton_as5916_26xb/machine.make index 5b0905cfc..d77d64dbb 100644 --- a/machine/accton/accton_as5916_26xb/machine.make +++ b/machine/accton/accton_as5916_26xb/machine.make @@ -35,7 +35,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as5916_54x/machine.make b/machine/accton/accton_as5916_54x/machine.make index 64f7a6535..1ea144909 100644 --- a/machine/accton/accton_as5916_54x/machine.make +++ b/machine/accton/accton_as5916_54x/machine.make @@ -39,7 +39,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as5916_54xk/machine.make b/machine/accton/accton_as5916_54xk/machine.make index d87d3a526..5af9388ef 100644 --- a/machine/accton/accton_as5916_54xk/machine.make +++ b/machine/accton/accton_as5916_54xk/machine.make @@ -37,7 +37,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as5916_54xks/machine.make b/machine/accton/accton_as5916_54xks/machine.make index d644c8c9f..310378b1b 100644 --- a/machine/accton/accton_as5916_54xks/machine.make +++ b/machine/accton/accton_as5916_54xks/machine.make @@ -35,7 +35,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as5916_54xl/machine.make b/machine/accton/accton_as5916_54xl/machine.make index 77b4355b7..2489b3791 100644 --- a/machine/accton/accton_as5916_54xl/machine.make +++ b/machine/accton/accton_as5916_54xl/machine.make @@ -35,7 +35,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as5916_54xm/machine.make b/machine/accton/accton_as5916_54xm/machine.make index 85a494d3d..d89c393c3 100644 --- a/machine/accton/accton_as5916_54xm/machine.make +++ b/machine/accton/accton_as5916_54xm/machine.make @@ -33,7 +33,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as5916_54xmk/machine.make b/machine/accton/accton_as5916_54xmk/machine.make index f483af05e..bbb2768cd 100644 --- a/machine/accton/accton_as5916_54xmk/machine.make +++ b/machine/accton/accton_as5916_54xmk/machine.make @@ -33,7 +33,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as6700_32x/machine.make b/machine/accton/accton_as6700_32x/machine.make index c92adeaac..75dd2f84b 100644 --- a/machine/accton/accton_as6700_32x/machine.make +++ b/machine/accton/accton_as6700_32x/machine.make @@ -36,8 +36,6 @@ LINUX_TARBALL_URLS = http://git.freescale.com/git/cgit.cgi/ppc/sdk/linux.git/sna LINUX_RELEASE = fsl-sdk-v1.5 LINUX_TARBALL = linux-$(LINUX_RELEASE).tar.bz2 -# Older GCC required for older fsl-sdk-v1.5 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as6701_32x/machine.make b/machine/accton/accton_as6701_32x/machine.make index e32be3af6..d229af94b 100644 --- a/machine/accton/accton_as6701_32x/machine.make +++ b/machine/accton/accton_as6701_32x/machine.make @@ -34,8 +34,6 @@ VENDOR_ID = 259 LINUX_VERSION = 3.2 LINUX_MINOR_VERSION = 69 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as6710_32x/machine.make b/machine/accton/accton_as6710_32x/machine.make index bb7fb5ab8..c5c7ddbbc 100644 --- a/machine/accton/accton_as6710_32x/machine.make +++ b/machine/accton/accton_as6710_32x/machine.make @@ -27,8 +27,6 @@ LINUX_TARBALL_URLS = http://git.freescale.com/git/cgit.cgi/ppc/sdk/linux.git/sna LINUX_RELEASE = fsl-sdk-v1.5 LINUX_TARBALL = linux-$(LINUX_RELEASE).tar.bz2 -# Older GCC required for older fsl-sdk-v1.5 kernel -GCC_VERSION = 4.9.2 UBOOT_MACHINE = AS6710_32X KERNEL_DTB = as6710_32x.dtb diff --git a/machine/accton/accton_as6712_32x/machine.make b/machine/accton/accton_as6712_32x/machine.make index 4c255502e..c2d771dde 100644 --- a/machine/accton/accton_as6712_32x/machine.make +++ b/machine/accton/accton_as6712_32x/machine.make @@ -34,7 +34,6 @@ CONSOLE_DEV = 1 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as6812_32x/machine.make b/machine/accton/accton_as6812_32x/machine.make index 3a61f65be..e5d4b3788 100644 --- a/machine/accton/accton_as6812_32x/machine.make +++ b/machine/accton/accton_as6812_32x/machine.make @@ -34,7 +34,6 @@ CONSOLE_DEV = 1 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as7112_54x/machine.make b/machine/accton/accton_as7112_54x/machine.make index 39339ff5c..3369ab5ad 100644 --- a/machine/accton/accton_as7112_54x/machine.make +++ b/machine/accton/accton_as7112_54x/machine.make @@ -33,7 +33,6 @@ CONSOLE_DEV = 1 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as7116_54x/machine.make b/machine/accton/accton_as7116_54x/machine.make index cae672a8b..3c85552f2 100644 --- a/machine/accton/accton_as7116_54x/machine.make +++ b/machine/accton/accton_as7116_54x/machine.make @@ -35,7 +35,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as7212_54x/machine.make b/machine/accton/accton_as7212_54x/machine.make index c28f4e687..d20a19cb4 100644 --- a/machine/accton/accton_as7212_54x/machine.make +++ b/machine/accton/accton_as7212_54x/machine.make @@ -32,7 +32,6 @@ CONSOLE_DEV = 1 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as7312_54x/machine.make b/machine/accton/accton_as7312_54x/machine.make index 76d90ac45..0a5c2a929 100644 --- a/machine/accton/accton_as7312_54x/machine.make +++ b/machine/accton/accton_as7312_54x/machine.make @@ -35,7 +35,6 @@ CONSOLE_DEV = 1 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as7312_54xs/machine.make b/machine/accton/accton_as7312_54xs/machine.make index e6b0a00eb..5149d2613 100644 --- a/machine/accton/accton_as7312_54xs/machine.make +++ b/machine/accton/accton_as7312_54xs/machine.make @@ -33,7 +33,6 @@ CONSOLE_DEV = 1 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as7315_27xb/machine.make b/machine/accton/accton_as7315_27xb/machine.make index 7069fed47..88e4df2cb 100644 --- a/machine/accton/accton_as7315_27xb/machine.make +++ b/machine/accton/accton_as7315_27xb/machine.make @@ -39,7 +39,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as7315_30x/machine.make b/machine/accton/accton_as7315_30x/machine.make index d7139c727..e8546c154 100644 --- a/machine/accton/accton_as7315_30x/machine.make +++ b/machine/accton/accton_as7315_30x/machine.make @@ -39,7 +39,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as7316_26xb/machine.make b/machine/accton/accton_as7316_26xb/machine.make index 8fd14d915..5e802e065 100644 --- a/machine/accton/accton_as7316_26xb/machine.make +++ b/machine/accton/accton_as7316_26xb/machine.make @@ -35,7 +35,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as7316_54x/machine.make b/machine/accton/accton_as7316_54x/machine.make index ff5a8daca..a8e201652 100644 --- a/machine/accton/accton_as7316_54x/machine.make +++ b/machine/accton/accton_as7316_54x/machine.make @@ -33,7 +33,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as7316_54xs/machine.make b/machine/accton/accton_as7316_54xs/machine.make index ff976bfce..5efcb3dea 100644 --- a/machine/accton/accton_as7316_54xs/machine.make +++ b/machine/accton/accton_as7316_54xs/machine.make @@ -34,7 +34,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as7326_56x/machine.make b/machine/accton/accton_as7326_56x/machine.make index a89d275a0..be7a7f0c8 100644 --- a/machine/accton/accton_as7326_56x/machine.make +++ b/machine/accton/accton_as7326_56x/machine.make @@ -33,7 +33,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as7412_32x/machine.make b/machine/accton/accton_as7412_32x/machine.make index dba6b73fa..73196ea20 100644 --- a/machine/accton/accton_as7412_32x/machine.make +++ b/machine/accton/accton_as7412_32x/machine.make @@ -32,7 +32,6 @@ CONSOLE_DEV = 1 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as7512_32x/machine.make b/machine/accton/accton_as7512_32x/machine.make index c3d55f54c..705820539 100644 --- a/machine/accton/accton_as7512_32x/machine.make +++ b/machine/accton/accton_as7512_32x/machine.make @@ -34,7 +34,6 @@ CONSOLE_DEV = 1 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as7515_24x/machine.make b/machine/accton/accton_as7515_24x/machine.make index 94fc0655e..503d1405f 100644 --- a/machine/accton/accton_as7515_24x/machine.make +++ b/machine/accton/accton_as7515_24x/machine.make @@ -35,7 +35,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as7515_24xb/machine.make b/machine/accton/accton_as7515_24xb/machine.make index e22810794..3529c11bc 100644 --- a/machine/accton/accton_as7515_24xb/machine.make +++ b/machine/accton/accton_as7515_24xb/machine.make @@ -36,7 +36,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as7515_30xb/machine.make b/machine/accton/accton_as7515_30xb/machine.make index a233a6f5c..8635efc7d 100644 --- a/machine/accton/accton_as7515_30xb/machine.make +++ b/machine/accton/accton_as7515_30xb/machine.make @@ -36,7 +36,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as7535_28xb/machine.make b/machine/accton/accton_as7535_28xb/machine.make index 1cb9162b1..64731eff5 100644 --- a/machine/accton/accton_as7535_28xb/machine.make +++ b/machine/accton/accton_as7535_28xb/machine.make @@ -36,7 +36,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as7535_32xb/machine.make b/machine/accton/accton_as7535_32xb/machine.make index 9d8dfbac2..5a82383b9 100644 --- a/machine/accton/accton_as7535_32xb/machine.make +++ b/machine/accton/accton_as7535_32xb/machine.make @@ -36,7 +36,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as7710_32x/machine.make b/machine/accton/accton_as7710_32x/machine.make index dfc5775e5..65f393abe 100644 --- a/machine/accton/accton_as7710_32x/machine.make +++ b/machine/accton/accton_as7710_32x/machine.make @@ -26,8 +26,6 @@ LINUX_TARBALL_URLS = http://git.freescale.com/git/cgit.cgi/ppc/sdk/linux.git/sna LINUX_RELEASE = fsl-sdk-v1.7 LINUX_TARBALL = linux-$(LINUX_RELEASE).tar.bz2 -# Older GCC required for older fsl-sdk-v1.7 kernel -GCC_VERSION = 4.9.2 # Set the desired u-boot version. UBOOT_TARBALL_URLS = http://git.freescale.com/git/cgit.cgi/ppc/sdk/u-boot.git/snapshot diff --git a/machine/accton/accton_as7712_16x/machine.make b/machine/accton/accton_as7712_16x/machine.make index 412da5840..811dc8441 100644 --- a/machine/accton/accton_as7712_16x/machine.make +++ b/machine/accton/accton_as7712_16x/machine.make @@ -32,7 +32,6 @@ CONSOLE_DEV = 1 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as7712_32x/machine.make b/machine/accton/accton_as7712_32x/machine.make index cf141e230..44e9ef208 100644 --- a/machine/accton/accton_as7712_32x/machine.make +++ b/machine/accton/accton_as7712_32x/machine.make @@ -35,7 +35,6 @@ CONSOLE_DEV = 1 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as7715_32x/machine.make b/machine/accton/accton_as7715_32x/machine.make index 8095a8cd1..bb9c64a80 100644 --- a/machine/accton/accton_as7715_32x/machine.make +++ b/machine/accton/accton_as7715_32x/machine.make @@ -33,7 +33,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as7716_24sc/machine.make b/machine/accton/accton_as7716_24sc/machine.make index ba763aae6..92dd099df 100644 --- a/machine/accton/accton_as7716_24sc/machine.make +++ b/machine/accton/accton_as7716_24sc/machine.make @@ -33,7 +33,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as7716_24xc/machine.make b/machine/accton/accton_as7716_24xc/machine.make index c7cd3936c..6f69a58b7 100644 --- a/machine/accton/accton_as7716_24xc/machine.make +++ b/machine/accton/accton_as7716_24xc/machine.make @@ -33,7 +33,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as7716_32x/machine.make b/machine/accton/accton_as7716_32x/machine.make index eee508deb..f4d657d7c 100644 --- a/machine/accton/accton_as7716_32x/machine.make +++ b/machine/accton/accton_as7716_32x/machine.make @@ -36,7 +36,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as7716_32xb/machine.make b/machine/accton/accton_as7716_32xb/machine.make index 80a9401ba..37b4c417a 100644 --- a/machine/accton/accton_as7716_32xb/machine.make +++ b/machine/accton/accton_as7716_32xb/machine.make @@ -35,7 +35,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as7726_32x/machine.make b/machine/accton/accton_as7726_32x/machine.make index 3dc893762..3117252ce 100644 --- a/machine/accton/accton_as7726_32x/machine.make +++ b/machine/accton/accton_as7726_32x/machine.make @@ -37,7 +37,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as7816_64x/machine.make b/machine/accton/accton_as7816_64x/machine.make index 1307be380..8fd9e6189 100644 --- a/machine/accton/accton_as7816_64x/machine.make +++ b/machine/accton/accton_as7816_64x/machine.make @@ -39,7 +39,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as7916_54xk/machine.make b/machine/accton/accton_as7916_54xk/machine.make index c0d57dbc8..3c7faa64c 100644 --- a/machine/accton/accton_as7916_54xk/machine.make +++ b/machine/accton/accton_as7916_54xk/machine.make @@ -33,7 +33,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as7916_80xk/machine.make b/machine/accton/accton_as7916_80xk/machine.make index f4c52dc6d..bef6b0751 100644 --- a/machine/accton/accton_as7916_80xk/machine.make +++ b/machine/accton/accton_as7916_80xk/machine.make @@ -33,7 +33,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as7926_40xfb/machine.make b/machine/accton/accton_as7926_40xfb/machine.make index 5b6b46d73..b664001cd 100644 --- a/machine/accton/accton_as7926_40xfb/machine.make +++ b/machine/accton/accton_as7926_40xfb/machine.make @@ -36,7 +36,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as7936_22xke/machine.make b/machine/accton/accton_as7936_22xke/machine.make index d32bacde0..e7535c58f 100644 --- a/machine/accton/accton_as7936_22xke/machine.make +++ b/machine/accton/accton_as7936_22xke/machine.make @@ -35,7 +35,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as7946_30xb/machine.make b/machine/accton/accton_as7946_30xb/machine.make index 9744a4b17..9506fa9d9 100644 --- a/machine/accton/accton_as7946_30xb/machine.make +++ b/machine/accton/accton_as7946_30xb/machine.make @@ -36,7 +36,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as7946_74xkb/machine.make b/machine/accton/accton_as7946_74xkb/machine.make index da16682ab..8f24ee8d1 100644 --- a/machine/accton/accton_as7946_74xkb/machine.make +++ b/machine/accton/accton_as7946_74xkb/machine.make @@ -36,7 +36,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as9716_32d/machine.make b/machine/accton/accton_as9716_32d/machine.make index fabfdb281..891eeab25 100644 --- a/machine/accton/accton_as9716_32d/machine.make +++ b/machine/accton/accton_as9716_32d/machine.make @@ -33,7 +33,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as9726_32d/machine.make b/machine/accton/accton_as9726_32d/machine.make index 5f152dec7..23368901a 100644 --- a/machine/accton/accton_as9726_32d/machine.make +++ b/machine/accton/accton_as9726_32d/machine.make @@ -35,7 +35,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as9726_32db/machine.make b/machine/accton/accton_as9726_32db/machine.make index 861fbcadd..be3ffb530 100644 --- a/machine/accton/accton_as9726_32db/machine.make +++ b/machine/accton/accton_as9726_32db/machine.make @@ -36,7 +36,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as9736_64d/machine.make b/machine/accton/accton_as9736_64d/machine.make index b4d18bc62..89c9d92c4 100644 --- a/machine/accton/accton_as9736_64d/machine.make +++ b/machine/accton/accton_as9736_64d/machine.make @@ -35,7 +35,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as9737_32db/machine.make b/machine/accton/accton_as9737_32db/machine.make index fa6bfeebc..b8a73a3d5 100644 --- a/machine/accton/accton_as9737_32db/machine.make +++ b/machine/accton/accton_as9737_32db/machine.make @@ -36,7 +36,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as9817/machine.make b/machine/accton/accton_as9817/machine.make index 2208968ae..ae8069295 100644 --- a/machine/accton/accton_as9817/machine.make +++ b/machine/accton/accton_as9817/machine.make @@ -37,7 +37,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as9926_24d/machine.make b/machine/accton/accton_as9926_24d/machine.make index 3759d3f35..b9bec70ae 100644 --- a/machine/accton/accton_as9926_24d/machine.make +++ b/machine/accton/accton_as9926_24d/machine.make @@ -35,7 +35,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as9926_24db/machine.make b/machine/accton/accton_as9926_24db/machine.make index 758e2d42b..eded2353c 100644 --- a/machine/accton/accton_as9926_24db/machine.make +++ b/machine/accton/accton_as9926_24db/machine.make @@ -36,7 +36,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as9947_36xkb/machine.make b/machine/accton/accton_as9947_36xkb/machine.make index 68f37219c..3cec0879e 100644 --- a/machine/accton/accton_as9947_36xkb/machine.make +++ b/machine/accton/accton_as9947_36xkb/machine.make @@ -36,7 +36,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as_28t_ops/machine.make b/machine/accton/accton_as_28t_ops/machine.make index 5f20db3c5..3b42d1758 100644 --- a/machine/accton/accton_as_28t_ops/machine.make +++ b/machine/accton/accton_as_28t_ops/machine.make @@ -29,8 +29,6 @@ VENDOR_ID = 259 LINUX_VERSION = 3.2 LINUX_MINOR_VERSION = 69 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 # Set the desired U-Boot version UBOOT_VERSION = 2012.10 diff --git a/machine/accton/accton_asgvolt64/machine.make b/machine/accton/accton_asgvolt64/machine.make index 176a663d6..9e9971bac 100644 --- a/machine/accton/accton_asgvolt64/machine.make +++ b/machine/accton/accton_asgvolt64/machine.make @@ -35,7 +35,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_asxvolt16/machine.make b/machine/accton/accton_asxvolt16/machine.make index 9c7bfbc80..d02bd93b8 100644 --- a/machine/accton/accton_asxvolt16/machine.make +++ b/machine/accton/accton_asxvolt16/machine.make @@ -35,7 +35,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_bacon/machine.make b/machine/accton/accton_bacon/machine.make index 41ec72d0e..9e530d649 100644 --- a/machine/accton/accton_bacon/machine.make +++ b/machine/accton/accton_bacon/machine.make @@ -35,7 +35,6 @@ CONSOLE_DEV = 1 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_csp9250/machine.make b/machine/accton/accton_csp9250/machine.make index 6fd0b9851..12318925e 100644 --- a/machine/accton/accton_csp9250/machine.make +++ b/machine/accton/accton_csp9250/machine.make @@ -32,7 +32,6 @@ SERIAL_CONSOLE_ENABLE = no LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_ebof/machine.make b/machine/accton/accton_ebof/machine.make index 973fa7310..a930eb731 100644 --- a/machine/accton/accton_ebof/machine.make +++ b/machine/accton/accton_ebof/machine.make @@ -36,7 +36,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_minipack/machine.make b/machine/accton/accton_minipack/machine.make index 6cccc7a10..6b0980237 100644 --- a/machine/accton/accton_minipack/machine.make +++ b/machine/accton/accton_minipack/machine.make @@ -34,7 +34,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_p9532x/machine.make b/machine/accton/accton_p9532x/machine.make index 402872dc4..adcebaef1 100644 --- a/machine/accton/accton_p9532x/machine.make +++ b/machine/accton/accton_p9532x/machine.make @@ -32,7 +32,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_p9572x/machine.make b/machine/accton/accton_p9572x/machine.make index 4506a748c..7600d86fa 100644 --- a/machine/accton/accton_p9572x/machine.make +++ b/machine/accton/accton_p9572x/machine.make @@ -32,7 +32,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_wedge100_32x/machine.make b/machine/accton/accton_wedge100_32x/machine.make index 62cc295fe..77167bd3d 100644 --- a/machine/accton/accton_wedge100_32x/machine.make +++ b/machine/accton/accton_wedge100_32x/machine.make @@ -37,7 +37,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_wedge100bf_32q/machine.make b/machine/accton/accton_wedge100bf_32q/machine.make index a6f016e66..76b92fcad 100644 --- a/machine/accton/accton_wedge100bf_32q/machine.make +++ b/machine/accton/accton_wedge100bf_32q/machine.make @@ -38,7 +38,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_wedge100bf_32qs/machine.make b/machine/accton/accton_wedge100bf_32qs/machine.make index 9ffc4e1f5..0ceb6ffb0 100644 --- a/machine/accton/accton_wedge100bf_32qs/machine.make +++ b/machine/accton/accton_wedge100bf_32qs/machine.make @@ -38,7 +38,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_wedge100bf_32x/machine.make b/machine/accton/accton_wedge100bf_32x/machine.make index 84c49f209..b1ae10cbf 100644 --- a/machine/accton/accton_wedge100bf_32x/machine.make +++ b/machine/accton/accton_wedge100bf_32x/machine.make @@ -40,7 +40,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_wedge100bf_65x/machine.make b/machine/accton/accton_wedge100bf_65x/machine.make index 2e59b6a16..eb943b74b 100644 --- a/machine/accton/accton_wedge100bf_65x/machine.make +++ b/machine/accton/accton_wedge100bf_65x/machine.make @@ -38,7 +38,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_wedge100s_32x/machine.make b/machine/accton/accton_wedge100s_32x/machine.make index 149372852..9fd1dae56 100644 --- a/machine/accton/accton_wedge100s_32x/machine.make +++ b/machine/accton/accton_wedge100s_32x/machine.make @@ -36,7 +36,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_wedge100sbf_32x/machine.make b/machine/accton/accton_wedge100sbf_32x/machine.make index 4dc5b1ab7..21fe384bd 100644 --- a/machine/accton/accton_wedge100sbf_32x/machine.make +++ b/machine/accton/accton_wedge100sbf_32x/machine.make @@ -34,7 +34,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_wedge_16x/machine.make b/machine/accton/accton_wedge_16x/machine.make index 22ff2b082..d29db892e 100644 --- a/machine/accton/accton_wedge_16x/machine.make +++ b/machine/accton/accton_wedge_16x/machine.make @@ -34,7 +34,6 @@ CONSOLE_DEV = 1 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/agema/agema_ag7648c/machine.make b/machine/agema/agema_ag7648c/machine.make index 2caa2f3ae..e1c265c56 100644 --- a/machine/agema/agema_ag7648c/machine.make +++ b/machine/agema/agema_ag7648c/machine.make @@ -35,8 +35,6 @@ EXTRA_CMDLINE_LINUX = i2c-ismt.bus_speed=100 acpi=off dhcp=eth0 LINUX_VERSION = 3.2 LINUX_MINOR_VERSION = 69 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/alphanetworks/alphanetworks_bes2348t/machine.make b/machine/alphanetworks/alphanetworks_bes2348t/machine.make index 52e6d0148..1b3a8a915 100755 --- a/machine/alphanetworks/alphanetworks_bes2348t/machine.make +++ b/machine/alphanetworks/alphanetworks_bes2348t/machine.make @@ -39,11 +39,8 @@ UEFI_ENABLE = yes LINUX_VERSION = 4.9 LINUX_MINOR_VERSION = 95 -# Set GCC version -GCC_VERSION = 8.3.0 # Set uClibc-ng version -XTOOLS_LIBC_VERSION = 1.0.38 include $(MACHINEDIR)/rootconf/grub-machine.make diff --git a/machine/alphanetworks/alphanetworks_scg60d0_484t/machine.make b/machine/alphanetworks/alphanetworks_scg60d0_484t/machine.make index f97368660..bda13402e 100755 --- a/machine/alphanetworks/alphanetworks_scg60d0_484t/machine.make +++ b/machine/alphanetworks/alphanetworks_scg60d0_484t/machine.make @@ -41,11 +41,8 @@ UEFI_ENABLE = yes LINUX_VERSION = 4.9 LINUX_MINOR_VERSION = 95 -# Set GCC version -GCC_VERSION = 8.3.0 # Set uClibc-ng version -XTOOLS_LIBC_VERSION = 1.0.38 include $(MACHINEDIR)/rootconf/grub-machine.make diff --git a/machine/alphanetworks/alphanetworks_snc60a0_486f/machine.make b/machine/alphanetworks/alphanetworks_snc60a0_486f/machine.make index ce55beb43..df38621c1 100755 --- a/machine/alphanetworks/alphanetworks_snc60a0_486f/machine.make +++ b/machine/alphanetworks/alphanetworks_snc60a0_486f/machine.make @@ -34,8 +34,6 @@ CONSOLE_DEV = 1 LINUX_VERSION = 3.14 LINUX_MINOR_VERSION = 27 -# Older GCC required for older 3.14.27 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/alphanetworks/alphanetworks_snc60a0_488f/machine.make b/machine/alphanetworks/alphanetworks_snc60a0_488f/machine.make index 1964f6f11..c026b51b3 100755 --- a/machine/alphanetworks/alphanetworks_snc60a0_488f/machine.make +++ b/machine/alphanetworks/alphanetworks_snc60a0_488f/machine.make @@ -33,8 +33,6 @@ CONSOLE_DEV = 1 LINUX_VERSION = 3.14 LINUX_MINOR_VERSION = 27 -# Older GCC required for older 3.14.27 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/alphanetworks/alphanetworks_snc61a0_486f/machine.make b/machine/alphanetworks/alphanetworks_snc61a0_486f/machine.make index 2c7c99b88..7596bd5da 100755 --- a/machine/alphanetworks/alphanetworks_snc61a0_486f/machine.make +++ b/machine/alphanetworks/alphanetworks_snc61a0_486f/machine.make @@ -34,8 +34,6 @@ CONSOLE_DEV = 1 LINUX_VERSION = 3.14 LINUX_MINOR_VERSION = 27 -# Older GCC required for older 3.14.27 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/alphanetworks/alphanetworks_snh60a0_320f/machine.make b/machine/alphanetworks/alphanetworks_snh60a0_320f/machine.make index a4c7ff68d..f5c92fbfa 100755 --- a/machine/alphanetworks/alphanetworks_snh60a0_320f/machine.make +++ b/machine/alphanetworks/alphanetworks_snh60a0_320f/machine.make @@ -39,5 +39,3 @@ CONSOLE_DEV = 1 LINUX_VERSION = 3.14 LINUX_MINOR_VERSION = 27 -# Older GCC required for older 3.14.27 kernel -GCC_VERSION = 4.9.2 diff --git a/machine/alphanetworks/alphanetworks_snh60a0_320fv2/machine.make b/machine/alphanetworks/alphanetworks_snh60a0_320fv2/machine.make index 232c604a8..f2bade1e1 100755 --- a/machine/alphanetworks/alphanetworks_snh60a0_320fv2/machine.make +++ b/machine/alphanetworks/alphanetworks_snh60a0_320fv2/machine.make @@ -34,8 +34,6 @@ CONSOLE_DEV = 1 LINUX_VERSION = 3.14 LINUX_MINOR_VERSION = 27 -# Older GCC required for older 3.14.27 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/alphanetworks/alphanetworks_snh60a0_640f/machine.make b/machine/alphanetworks/alphanetworks_snh60a0_640f/machine.make index c21e6af8e..d2c4f152c 100755 --- a/machine/alphanetworks/alphanetworks_snh60a0_640f/machine.make +++ b/machine/alphanetworks/alphanetworks_snh60a0_640f/machine.make @@ -33,8 +33,6 @@ CONSOLE_DEV = 1 LINUX_VERSION = 3.14 LINUX_MINOR_VERSION = 27 -# Older GCC required for older 3.14.27 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/alphanetworks/alphanetworks_snh60b0_640f/machine.make b/machine/alphanetworks/alphanetworks_snh60b0_640f/machine.make index 7a57ec045..76f79ac1c 100755 --- a/machine/alphanetworks/alphanetworks_snh60b0_640f/machine.make +++ b/machine/alphanetworks/alphanetworks_snh60b0_640f/machine.make @@ -33,8 +33,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 3.14 LINUX_MINOR_VERSION = 27 -# Older GCC required for older 3.14.27 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/alphanetworks/alphanetworks_snh61a0_320f/machine.make b/machine/alphanetworks/alphanetworks_snh61a0_320f/machine.make index e826bacdf..39c8e61f0 100755 --- a/machine/alphanetworks/alphanetworks_snh61a0_320f/machine.make +++ b/machine/alphanetworks/alphanetworks_snh61a0_320f/machine.make @@ -34,8 +34,6 @@ CONSOLE_DEV = 1 LINUX_VERSION = 3.14 LINUX_MINOR_VERSION = 27 -# Older GCC required for older 3.14.27 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/alphanetworks/alphanetworks_snh61a0_640f/machine.make b/machine/alphanetworks/alphanetworks_snh61a0_640f/machine.make index 23860945a..f5329fd4b 100755 --- a/machine/alphanetworks/alphanetworks_snh61a0_640f/machine.make +++ b/machine/alphanetworks/alphanetworks_snh61a0_640f/machine.make @@ -33,8 +33,6 @@ CONSOLE_DEV = 1 LINUX_VERSION = 3.14 LINUX_MINOR_VERSION = 27 -# Older GCC required for older 3.14.27 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/alphanetworks/alphanetworks_snh61a2_320f/machine.make b/machine/alphanetworks/alphanetworks_snh61a2_320f/machine.make index 93bf8c90a..f7aeac8b6 100755 --- a/machine/alphanetworks/alphanetworks_snh61a2_320f/machine.make +++ b/machine/alphanetworks/alphanetworks_snh61a2_320f/machine.make @@ -33,8 +33,6 @@ CONSOLE_DEV = 1 LINUX_VERSION = 3.14 LINUX_MINOR_VERSION = 27 -# Older GCC required for older 3.14.27 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/alphanetworks/alphanetworks_snh61b0_640f/machine.make b/machine/alphanetworks/alphanetworks_snh61b0_640f/machine.make index 0ebfbf0c6..55f7cc917 100755 --- a/machine/alphanetworks/alphanetworks_snh61b0_640f/machine.make +++ b/machine/alphanetworks/alphanetworks_snh61b0_640f/machine.make @@ -33,8 +33,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 3.14 LINUX_MINOR_VERSION = 27 -# Older GCC required for older 3.14.27 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/alphanetworks/alphanetworks_snj60b0_320f/machine.make b/machine/alphanetworks/alphanetworks_snj60b0_320f/machine.make index c8e526889..dbb8b4967 100755 --- a/machine/alphanetworks/alphanetworks_snj60b0_320f/machine.make +++ b/machine/alphanetworks/alphanetworks_snj60b0_320f/machine.make @@ -33,8 +33,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 3.14 LINUX_MINOR_VERSION = 27 -# Older GCC required for older 3.14.27 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/alphanetworks/alphanetworks_snj61d0_320f/machine.make b/machine/alphanetworks/alphanetworks_snj61d0_320f/machine.make index 3b08a43c9..49e0a0f75 100755 --- a/machine/alphanetworks/alphanetworks_snj61d0_320f/machine.make +++ b/machine/alphanetworks/alphanetworks_snj61d0_320f/machine.make @@ -42,11 +42,8 @@ UEFI_ENABLE = yes LINUX_VERSION = 4.9 LINUX_MINOR_VERSION = 95 -# Set GCC version -GCC_VERSION = 8.3.0 # Set uClibc-ng version -XTOOLS_LIBC_VERSION = 1.0.38 include $(MACHINEDIR)/rootconf/grub-machine.make diff --git a/machine/alphanetworks/alphanetworks_snj62d0_640f/machine.make b/machine/alphanetworks/alphanetworks_snj62d0_640f/machine.make index e832ef449..9f5842ae4 100755 --- a/machine/alphanetworks/alphanetworks_snj62d0_640f/machine.make +++ b/machine/alphanetworks/alphanetworks_snj62d0_640f/machine.make @@ -39,11 +39,8 @@ UEFI_ENABLE = yes LINUX_VERSION = 4.9 LINUX_MINOR_VERSION = 95 -# Set GCC version -GCC_VERSION = 8.3.0 # Set uClibc-ng version -XTOOLS_LIBC_VERSION = 1.0.35 include $(MACHINEDIR)/rootconf/grub-machine.make diff --git a/machine/alphanetworks/alphanetworks_snk60i0_320f/machine.make b/machine/alphanetworks/alphanetworks_snk60i0_320f/machine.make index e0127e564..4acddd88c 100755 --- a/machine/alphanetworks/alphanetworks_snk60i0_320f/machine.make +++ b/machine/alphanetworks/alphanetworks_snk60i0_320f/machine.make @@ -44,11 +44,8 @@ UEFI_ENABLE = yes LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -# Set GCC version -GCC_VERSION = 8.3.0 # Set uClibc-ng version -XTOOLS_LIBC_VERSION = 1.0.38 include $(MACHINEDIR)/rootconf/grub-machine.make diff --git a/machine/alphanetworks/alphanetworks_snq6070_320f/machine.make b/machine/alphanetworks/alphanetworks_snq6070_320f/machine.make index 1af27f306..630b51af6 100644 --- a/machine/alphanetworks/alphanetworks_snq6070_320f/machine.make +++ b/machine/alphanetworks/alphanetworks_snq6070_320f/machine.make @@ -24,8 +24,6 @@ VENDOR_ID = 31874 LINUX_VERSION = 3.2 LINUX_MINOR_VERSION = 69 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 # Exclude ext3/4 file system tools EXT3_4_ENABLE = no diff --git a/machine/alphanetworks/alphanetworks_snq60a0_320f/machine.make b/machine/alphanetworks/alphanetworks_snq60a0_320f/machine.make index 960e3ef12..f9064a417 100755 --- a/machine/alphanetworks/alphanetworks_snq60a0_320f/machine.make +++ b/machine/alphanetworks/alphanetworks_snq60a0_320f/machine.make @@ -34,8 +34,6 @@ CONSOLE_DEV = 1 LINUX_VERSION = 3.2 LINUX_MINOR_VERSION = 69 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/alphanetworks/alphanetworks_snx6070_486f/machine.make b/machine/alphanetworks/alphanetworks_snx6070_486f/machine.make index 9a97324d5..edfae7e4c 100644 --- a/machine/alphanetworks/alphanetworks_snx6070_486f/machine.make +++ b/machine/alphanetworks/alphanetworks_snx6070_486f/machine.make @@ -24,8 +24,6 @@ VENDOR_ID = 31874 LINUX_VERSION = 3.2 LINUX_MINOR_VERSION = 69 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 # Exclude ext3/4 file system tools EXT3_4_ENABLE = no diff --git a/machine/alphanetworks/alphanetworks_snx60a0_486f/machine.make b/machine/alphanetworks/alphanetworks_snx60a0_486f/machine.make index 94168e53b..4b8ae722d 100755 --- a/machine/alphanetworks/alphanetworks_snx60a0_486f/machine.make +++ b/machine/alphanetworks/alphanetworks_snx60a0_486f/machine.make @@ -34,8 +34,6 @@ CONSOLE_DEV = 1 LINUX_VERSION = 3.2 LINUX_MINOR_VERSION = 69 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/alphanetworks/alphanetworks_snx60a0_486t/machine.make b/machine/alphanetworks/alphanetworks_snx60a0_486t/machine.make index 6053d30fb..22c162e27 100755 --- a/machine/alphanetworks/alphanetworks_snx60a0_486t/machine.make +++ b/machine/alphanetworks/alphanetworks_snx60a0_486t/machine.make @@ -34,8 +34,6 @@ CONSOLE_DEV = 1 LINUX_VERSION = 3.14 LINUX_MINOR_VERSION = 27 -# Older GCC required for older 3.14.27 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/alphanetworks/alphanetworks_snx61a0_486f/machine.make b/machine/alphanetworks/alphanetworks_snx61a0_486f/machine.make index 35829c857..f8d44d978 100755 --- a/machine/alphanetworks/alphanetworks_snx61a0_486f/machine.make +++ b/machine/alphanetworks/alphanetworks_snx61a0_486f/machine.make @@ -34,8 +34,6 @@ CONSOLE_DEV = 1 LINUX_VERSION = 3.14 LINUX_MINOR_VERSION = 27 -# Older GCC required for older 3.14.27 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/alphanetworks/alphanetworks_snx61a0_486t/machine.make b/machine/alphanetworks/alphanetworks_snx61a0_486t/machine.make index 0af6c5c9f..916d0456f 100755 --- a/machine/alphanetworks/alphanetworks_snx61a0_486t/machine.make +++ b/machine/alphanetworks/alphanetworks_snx61a0_486t/machine.make @@ -34,8 +34,6 @@ CONSOLE_DEV = 1 LINUX_VERSION = 3.14 LINUX_MINOR_VERSION = 27 -# Older GCC required for older 3.14.27 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/alphanetworks/alphanetworks_snx62b0_486t/machine.make b/machine/alphanetworks/alphanetworks_snx62b0_486t/machine.make index 55371c9dd..353505af7 100755 --- a/machine/alphanetworks/alphanetworks_snx62b0_486t/machine.make +++ b/machine/alphanetworks/alphanetworks_snx62b0_486t/machine.make @@ -33,8 +33,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 3.14 LINUX_MINOR_VERSION = 27 -# Older GCC required for older 3.14.27 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/alphanetworks/alphanetworks_spx70d0_082f/machine.make b/machine/alphanetworks/alphanetworks_spx70d0_082f/machine.make index 1ea911f85..d0775f4d4 100755 --- a/machine/alphanetworks/alphanetworks_spx70d0_082f/machine.make +++ b/machine/alphanetworks/alphanetworks_spx70d0_082f/machine.make @@ -39,11 +39,8 @@ UEFI_ENABLE = yes LINUX_VERSION = 4.9 LINUX_MINOR_VERSION = 95 -# Set GCC version -GCC_VERSION = 8.3.0 # Set uClibc-ng version -XTOOLS_LIBC_VERSION = 1.0.35 include $(MACHINEDIR)/rootconf/grub-machine.make diff --git a/machine/alphanetworks/alphanetworks_spx70d0_168f/machine.make b/machine/alphanetworks/alphanetworks_spx70d0_168f/machine.make index bc44c787f..7de9904f1 100755 --- a/machine/alphanetworks/alphanetworks_spx70d0_168f/machine.make +++ b/machine/alphanetworks/alphanetworks_spx70d0_168f/machine.make @@ -39,11 +39,8 @@ UEFI_ENABLE = yes LINUX_VERSION = 4.9 LINUX_MINOR_VERSION = 95 -# Set GCC version -GCC_VERSION = 8.3.0 # Set uClibc-ng version -XTOOLS_LIBC_VERSION = 1.0.38 include $(MACHINEDIR)/rootconf/grub-machine.make diff --git a/machine/alphanetworks/alphanetworks_stx60a0_486f/machine.make b/machine/alphanetworks/alphanetworks_stx60a0_486f/machine.make index 09772b3b9..e947599f4 100755 --- a/machine/alphanetworks/alphanetworks_stx60a0_486f/machine.make +++ b/machine/alphanetworks/alphanetworks_stx60a0_486f/machine.make @@ -34,8 +34,6 @@ CONSOLE_DEV = 1 LINUX_VERSION = 3.14 LINUX_MINOR_VERSION = 27 -# Older GCC required for older 3.14.27 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/alphanetworks/alphanetworks_stx60b0_486f/machine.make b/machine/alphanetworks/alphanetworks_stx60b0_486f/machine.make index 1043f9cb6..1fa937fc7 100755 --- a/machine/alphanetworks/alphanetworks_stx60b0_486f/machine.make +++ b/machine/alphanetworks/alphanetworks_stx60b0_486f/machine.make @@ -34,8 +34,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 3.14 LINUX_MINOR_VERSION = 27 -# Older GCC required for older 3.14.27 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/celestica/cel_d2030/machine.make b/machine/celestica/cel_d2030/machine.make index 095568f79..9ff14c2c0 100644 --- a/machine/celestica/cel_d2030/machine.make +++ b/machine/celestica/cel_d2030/machine.make @@ -21,8 +21,6 @@ VENDOR_ID = 12244 LINUX_VERSION = 3.2 LINUX_MINOR_VERSION = 69 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/celestica/cel_e1031/machine.make b/machine/celestica/cel_e1031/machine.make index c6450f11f..ffe8f72e2 100755 --- a/machine/celestica/cel_e1031/machine.make +++ b/machine/celestica/cel_e1031/machine.make @@ -40,8 +40,6 @@ CONSOLE_FLAG = 1 LINUX_VERSION = 3.2 LINUX_MINOR_VERSION = 69 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/celestica/cel_kennisis/machine.make b/machine/celestica/cel_kennisis/machine.make index 6237a8dbe..8b507e75e 100644 --- a/machine/celestica/cel_kennisis/machine.make +++ b/machine/celestica/cel_kennisis/machine.make @@ -21,8 +21,6 @@ VENDOR_ID = 12244 LINUX_VERSION = 3.2 LINUX_MINOR_VERSION = 69 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 # Exclude ext3/4 file system tools EXT3_4_ENABLE = no diff --git a/machine/celestica/cel_redstone/machine.make b/machine/celestica/cel_redstone/machine.make index cbf5985eb..aeaa50494 100644 --- a/machine/celestica/cel_redstone/machine.make +++ b/machine/celestica/cel_redstone/machine.make @@ -20,8 +20,6 @@ VENDOR_ID = 12244 LINUX_VERSION = 3.2 LINUX_MINOR_VERSION = 69 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 # Exclude ext3/4 file system tools EXT3_4_ENABLE = no diff --git a/machine/celestica/cel_redstone_xp/machine.make b/machine/celestica/cel_redstone_xp/machine.make index b2ba3d8f8..792ca4e08 100755 --- a/machine/celestica/cel_redstone_xp/machine.make +++ b/machine/celestica/cel_redstone_xp/machine.make @@ -30,8 +30,6 @@ PARTITION_TYPE = gpt LINUX_VERSION = 3.2 LINUX_MINOR_VERSION = 69 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/celestica/cel_seastone/machine.make b/machine/celestica/cel_seastone/machine.make index 52b962261..54cf8ab5c 100755 --- a/machine/celestica/cel_seastone/machine.make +++ b/machine/celestica/cel_seastone/machine.make @@ -36,8 +36,6 @@ PARTITION_TYPE = gpt LINUX_VERSION = 3.2 LINUX_MINOR_VERSION = 69 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/celestica/cel_smallstone/machine.make b/machine/celestica/cel_smallstone/machine.make index 4bb2c38f1..2a54c1331 100644 --- a/machine/celestica/cel_smallstone/machine.make +++ b/machine/celestica/cel_smallstone/machine.make @@ -21,8 +21,6 @@ VENDOR_ID = 12244 LINUX_VERSION = 3.2 LINUX_MINOR_VERSION = 69 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 # Exclude ext3/4 file system tools EXT3_4_ENABLE = no diff --git a/machine/celestica/cel_smallstone_xp/machine.make b/machine/celestica/cel_smallstone_xp/machine.make index 7c73e07a8..19b9614f7 100755 --- a/machine/celestica/cel_smallstone_xp/machine.make +++ b/machine/celestica/cel_smallstone_xp/machine.make @@ -35,8 +35,6 @@ PARTITION_TYPE = gpt LINUX_VERSION = 3.2 LINUX_MINOR_VERSION = 69 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/centec/centec_e580_20q4z/machine.make b/machine/centec/centec_e580_20q4z/machine.make index 9eb84953e..cb4dc8111 100644 --- a/machine/centec/centec_e580_20q4z/machine.make +++ b/machine/centec/centec_e580_20q4z/machine.make @@ -19,8 +19,6 @@ LINUX_TARBALL_URLS = http://git.freescale.com/git/cgit.cgi/ppc/sdk/linux.git/sna LINUX_RELEASE = fsl-sdk-v1.5 LINUX_TARBALL = linux-$(LINUX_RELEASE).tar.bz2 -# Older GCC required for older fsl-sdk-v1.5 kernel -GCC_VERSION = 4.9.2 # Vendor ID -- IANA Private Enterprise Number: # http://www.iana.org/assignments/enterprise-numbers diff --git a/machine/centec/centec_e580_48x2q4z/machine.make b/machine/centec/centec_e580_48x2q4z/machine.make index b1191c984..0bcf49513 100644 --- a/machine/centec/centec_e580_48x2q4z/machine.make +++ b/machine/centec/centec_e580_48x2q4z/machine.make @@ -19,8 +19,6 @@ LINUX_TARBALL_URLS = http://git.freescale.com/git/cgit.cgi/ppc/sdk/linux.git/sna LINUX_RELEASE = fsl-sdk-v1.5 LINUX_TARBALL = linux-$(LINUX_RELEASE).tar.bz2 -# Older GCC required for older fsl-sdk-v1.5 kernel -GCC_VERSION = 4.9.2 # Vendor ID -- IANA Private Enterprise Number: # http://www.iana.org/assignments/enterprise-numbers diff --git a/machine/centec/centec_e580_48x6q/machine.make b/machine/centec/centec_e580_48x6q/machine.make index 9eb84953e..cb4dc8111 100644 --- a/machine/centec/centec_e580_48x6q/machine.make +++ b/machine/centec/centec_e580_48x6q/machine.make @@ -19,8 +19,6 @@ LINUX_TARBALL_URLS = http://git.freescale.com/git/cgit.cgi/ppc/sdk/linux.git/sna LINUX_RELEASE = fsl-sdk-v1.5 LINUX_TARBALL = linux-$(LINUX_RELEASE).tar.bz2 -# Older GCC required for older fsl-sdk-v1.5 kernel -GCC_VERSION = 4.9.2 # Vendor ID -- IANA Private Enterprise Number: # http://www.iana.org/assignments/enterprise-numbers diff --git a/machine/dell/dell_s3000_c2338/machine.make b/machine/dell/dell_s3000_c2338/machine.make index 85d70dc13..8a65a3f47 100644 --- a/machine/dell/dell_s3000_c2338/machine.make +++ b/machine/dell/dell_s3000_c2338/machine.make @@ -35,8 +35,6 @@ EXTRA_CMDLINE_LINUX = i2c-ismt.bus_speed=100 LINUX_VERSION = 3.2 LINUX_MINOR_VERSION = 69 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/dell/dell_s4000_c2338/machine.make b/machine/dell/dell_s4000_c2338/machine.make index c17ba5812..f38735cb5 100644 --- a/machine/dell/dell_s4000_c2338/machine.make +++ b/machine/dell/dell_s4000_c2338/machine.make @@ -35,8 +35,6 @@ EXTRA_CMDLINE_LINUX = i2c-ismt.bus_speed=100 LINUX_VERSION = 3.2 LINUX_MINOR_VERSION = 69 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/dell/dell_s4048t_c2338/machine.make b/machine/dell/dell_s4048t_c2338/machine.make index 1b17593a1..6a6eed7ef 100644 --- a/machine/dell/dell_s4048t_c2338/machine.make +++ b/machine/dell/dell_s4048t_c2338/machine.make @@ -32,8 +32,6 @@ EXTRA_CMDLINE_LINUX = i2c-ismt.bus_speed=100 LINUX_VERSION = 3.2 LINUX_MINOR_VERSION = 69 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/dell/dell_s4810_on_p2020/machine.make b/machine/dell/dell_s4810_on_p2020/machine.make index 0acde8cbb..3e6245c1b 100644 --- a/machine/dell/dell_s4810_on_p2020/machine.make +++ b/machine/dell/dell_s4810_on_p2020/machine.make @@ -21,8 +21,6 @@ VENDOR_ID = 5324 LINUX_VERSION = 3.2 LINUX_MINOR_VERSION = 69 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 # Exclude ext3/4 file system tools EXT3_4_ENABLE = no diff --git a/machine/dell/dell_s6000_s1220/machine.make b/machine/dell/dell_s6000_s1220/machine.make index 60b9d4019..7dfc6f679 100644 --- a/machine/dell/dell_s6000_s1220/machine.make +++ b/machine/dell/dell_s6000_s1220/machine.make @@ -26,8 +26,6 @@ PXE_EFI64_ENABLE = yes LINUX_VERSION = 3.2 LINUX_MINOR_VERSION = 69 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 # Enable the i2ctools and the onie-syseeprom command for this platform I2CTOOLS_ENABLE = yes diff --git a/machine/dell/dell_s6010_c2538/machine.make b/machine/dell/dell_s6010_c2538/machine.make index 57b5b2196..1e5bf2d49 100644 --- a/machine/dell/dell_s6010_c2538/machine.make +++ b/machine/dell/dell_s6010_c2538/machine.make @@ -32,8 +32,6 @@ EXTRA_CMDLINE_LINUX = i2c-ismt.bus_speed=100 LINUX_VERSION = 3.2 LINUX_MINOR_VERSION = 69 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/dell/dell_s6100_c2538/machine.make b/machine/dell/dell_s6100_c2538/machine.make index faa7606a9..9d8fff7c1 100644 --- a/machine/dell/dell_s6100_c2538/machine.make +++ b/machine/dell/dell_s6100_c2538/machine.make @@ -33,8 +33,6 @@ CONSOLE_FLAG = 0 LINUX_VERSION = 3.2 LINUX_MINOR_VERSION = 69 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 EXTRA_CMDLINE_LINUX = i2c-ismt.bus_speed=100 diff --git a/machine/dell/dell_z9100_c2538/machine.make b/machine/dell/dell_z9100_c2538/machine.make index 938124945..a2c253ae9 100644 --- a/machine/dell/dell_z9100_c2538/machine.make +++ b/machine/dell/dell_z9100_c2538/machine.make @@ -35,8 +35,6 @@ EXTRA_CMDLINE_LINUX = i2c-ismt.bus_speed=100 LINUX_VERSION = 3.2 LINUX_MINOR_VERSION = 69 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/dni/dni_3048up/machine.make b/machine/dni/dni_3048up/machine.make index aede7f10c..fcf326805 100755 --- a/machine/dni/dni_3048up/machine.make +++ b/machine/dni/dni_3048up/machine.make @@ -29,8 +29,6 @@ VENDOR_ID = 5324 LINUX_VERSION = 3.2 LINUX_MINOR_VERSION = 69 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 KERNEL_LOAD_ADDRESS = 0x61008000 KERNEL_ENTRY_POINT = 0x61008000 diff --git a/machine/ingrasys/ingrasys_s8810_32q/machine.make b/machine/ingrasys/ingrasys_s8810_32q/machine.make index 07812e26b..de560a6f6 100644 --- a/machine/ingrasys/ingrasys_s8810_32q/machine.make +++ b/machine/ingrasys/ingrasys_s8810_32q/machine.make @@ -40,8 +40,6 @@ EXTRA_CMDLINE_LINUX = i2c-ismt.bus_speed=100 LINUX_VERSION = 3.2 LINUX_MINOR_VERSION = 69 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/ingrasys/ingrasys_s8900_54xc/machine.make b/machine/ingrasys/ingrasys_s8900_54xc/machine.make index ac4902563..68c9a9967 100644 --- a/machine/ingrasys/ingrasys_s8900_54xc/machine.make +++ b/machine/ingrasys/ingrasys_s8900_54xc/machine.make @@ -40,8 +40,6 @@ EXTRA_CMDLINE_LINUX = i2c-ismt.bus_speed=100 LINUX_VERSION = 3.2 LINUX_MINOR_VERSION = 69 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/ingrasys/ingrasys_s8900_64xc/machine.make b/machine/ingrasys/ingrasys_s8900_64xc/machine.make index ac4902563..68c9a9967 100644 --- a/machine/ingrasys/ingrasys_s8900_64xc/machine.make +++ b/machine/ingrasys/ingrasys_s8900_64xc/machine.make @@ -40,8 +40,6 @@ EXTRA_CMDLINE_LINUX = i2c-ismt.bus_speed=100 LINUX_VERSION = 3.2 LINUX_MINOR_VERSION = 69 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/ingrasys/ingrasys_s9100/machine.make b/machine/ingrasys/ingrasys_s9100/machine.make index e5cb42658..ada91b3ff 100644 --- a/machine/ingrasys/ingrasys_s9100/machine.make +++ b/machine/ingrasys/ingrasys_s9100/machine.make @@ -40,8 +40,6 @@ EXTRA_CMDLINE_LINUX = i2c-ismt.bus_speed=100 LINUX_VERSION = 3.2 LINUX_MINOR_VERSION = 69 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/ingrasys/ingrasys_s9130_32x/machine.make b/machine/ingrasys/ingrasys_s9130_32x/machine.make index b62aed9ed..350262f9b 100644 --- a/machine/ingrasys/ingrasys_s9130_32x/machine.make +++ b/machine/ingrasys/ingrasys_s9130_32x/machine.make @@ -37,8 +37,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 4.1 LINUX_MINOR_VERSION = 38 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/inventec/inventec_d10056/machine.make b/machine/inventec/inventec_d10056/machine.make index 0cb193880..6fbfc1df9 100644 --- a/machine/inventec/inventec_d10056/machine.make +++ b/machine/inventec/inventec_d10056/machine.make @@ -27,8 +27,6 @@ I2CTOOLS_ENABLE = yes LINUX_VERSION = 4.9 LINUX_MINOR_VERSION = 95 -# Use gcc-6.3.0 -GCC_VERSION = 6.3.0 # # Console parameters can be defined here diff --git a/machine/inventec/inventec_d10064/machine.make b/machine/inventec/inventec_d10064/machine.make index 72d68ef47..9f0d29dfd 100644 --- a/machine/inventec/inventec_d10064/machine.make +++ b/machine/inventec/inventec_d10064/machine.make @@ -27,8 +27,6 @@ I2CTOOLS_ENABLE = yes LINUX_VERSION = 4.9 LINUX_MINOR_VERSION = 95 -# Use gcc-6.3.0 -GCC_VERSION = 6.3.0 # # Console parameters can be defined here diff --git a/machine/inventec/inventec_d6254qs/machine.make b/machine/inventec/inventec_d6254qs/machine.make index 9d6e87755..8daae3960 100644 --- a/machine/inventec/inventec_d6254qs/machine.make +++ b/machine/inventec/inventec_d6254qs/machine.make @@ -27,8 +27,6 @@ I2CTOOLS_SYSEEPROM = no LINUX_VERSION = 4.9 LINUX_MINOR_VERSION = 95 -# Use gcc-6.3.0 -GCC_VERSION = 6.3.0 # # Console parameters can be defined here diff --git a/machine/inventec/inventec_d6356/machine.make b/machine/inventec/inventec_d6356/machine.make index e8916ea97..3dc835ca3 100644 --- a/machine/inventec/inventec_d6356/machine.make +++ b/machine/inventec/inventec_d6356/machine.make @@ -27,8 +27,6 @@ I2CTOOLS_ENABLE = yes LINUX_VERSION = 4.9 LINUX_MINOR_VERSION = 95 -# Use gcc-6.3.0 -GCC_VERSION = 6.3.0 # # Console parameters can be defined here diff --git a/machine/inventec/inventec_d7054q28b/machine.make b/machine/inventec/inventec_d7054q28b/machine.make index 7e995a09c..0493239fa 100644 --- a/machine/inventec/inventec_d7054q28b/machine.make +++ b/machine/inventec/inventec_d7054q28b/machine.make @@ -26,8 +26,6 @@ I2CTOOLS_ENABLE = yes LINUX_VERSION = 4.9 LINUX_MINOR_VERSION = 95 -# Use gcc-6.3.0 -GCC_VERSION = 6.3.0 # # Console parameters can be defined here diff --git a/machine/inventec/inventec_d7332/machine.make b/machine/inventec/inventec_d7332/machine.make index 4be3b3cb5..31173b67f 100644 --- a/machine/inventec/inventec_d7332/machine.make +++ b/machine/inventec/inventec_d7332/machine.make @@ -27,8 +27,6 @@ I2CTOOLS_ENABLE = yes LINUX_VERSION = 4.9 LINUX_MINOR_VERSION = 95 -# Use gcc-6.3.0 -GCC_VERSION = 6.3.0 # # Console parameters can be defined here diff --git a/machine/inventec/inventec_dcs7032q28/machine.make b/machine/inventec/inventec_dcs7032q28/machine.make index 472019039..533ba15bf 100644 --- a/machine/inventec/inventec_dcs7032q28/machine.make +++ b/machine/inventec/inventec_dcs7032q28/machine.make @@ -27,8 +27,6 @@ I2CTOOLS_SYSEEPROM = no LINUX_VERSION = 3.2 LINUX_MINOR_VERSION = 69 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 # # Console parameters can be defined here diff --git a/machine/inventec/inventec_dcs7032q28b/machine.make b/machine/inventec/inventec_dcs7032q28b/machine.make index f128d86f5..39c051bba 100644 --- a/machine/inventec/inventec_dcs7032q28b/machine.make +++ b/machine/inventec/inventec_dcs7032q28b/machine.make @@ -27,8 +27,6 @@ I2CTOOLS_SYSEEPROM = no LINUX_VERSION = 4.9 LINUX_MINOR_VERSION = 95 -# Use gcc-6.3.0 -GCC_VERSION = 6.3.0 # # Console parameters can be defined here diff --git a/machine/juniper/juniper_qfx5200/machine.make b/machine/juniper/juniper_qfx5200/machine.make index c4fef02e4..66b96e363 100644 --- a/machine/juniper/juniper_qfx5200/machine.make +++ b/machine/juniper/juniper_qfx5200/machine.make @@ -40,8 +40,6 @@ LINUX_MINOR_VERSION = 95 # ONIE defaults the serial console baud rate to 115200 CONSOLE_SPEED = 9600 -# Older GCC required for older 3.14.27 kernel -GCC_VERSION = 4.9.2 RECOVERY_DEFAULT_ENTRY = embed diff --git a/machine/juniper/juniper_qfx5210/machine.make b/machine/juniper/juniper_qfx5210/machine.make index 5a05c586c..caafd6a2c 100644 --- a/machine/juniper/juniper_qfx5210/machine.make +++ b/machine/juniper/juniper_qfx5210/machine.make @@ -41,8 +41,6 @@ LINUX_MINOR_VERSION = 95 # ONIE defaults the serial console baud rate to 115200 CONSOLE_SPEED = 9600 -# Older GCC required for older 3.14.27 kernel -GCC_VERSION = 4.9.2 RECOVERY_DEFAULT_ENTRY = embed diff --git a/machine/lenovo/lenovo_g8272/machine.make b/machine/lenovo/lenovo_g8272/machine.make index 654e7a222..35ba7ab0b 100644 --- a/machine/lenovo/lenovo_g8272/machine.make +++ b/machine/lenovo/lenovo_g8272/machine.make @@ -41,8 +41,6 @@ VENDOR_ID = 19046 LINUX_VERSION = 3.2 LINUX_MINOR_VERSION = 69 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 #Disable BRTFS BTRFS_PROGS_ENABLE = no diff --git a/machine/lenovo/lenovo_g8296/machine.make b/machine/lenovo/lenovo_g8296/machine.make index 17f3811b7..4a2d967c1 100644 --- a/machine/lenovo/lenovo_g8296/machine.make +++ b/machine/lenovo/lenovo_g8296/machine.make @@ -44,8 +44,6 @@ LINUX_TARBALL = linux-$(LINUX_RELEASE).tar.bz2 #LINUX_VERSION = fsl-sdk-v1.7 #LINUX_MINOR_VERSION = 27 -# Older GCC required for older fsl-sdk kernel -GCC_VERSION = 4.9.2 #Add EXT 3 support EXT3_4_ENABLE = yes diff --git a/machine/lenovo/lenovo_ne0152t/machine.make b/machine/lenovo/lenovo_ne0152t/machine.make index af962975e..82b22d511 100755 --- a/machine/lenovo/lenovo_ne0152t/machine.make +++ b/machine/lenovo/lenovo_ne0152t/machine.make @@ -52,7 +52,6 @@ CONSOLE_DEV = 1 LINUX_VERSION = 4.9 LINUX_MINOR_VERSION = 95 -GCC_VERSION = 6.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/lenovo/lenovo_ne10032/machine.make b/machine/lenovo/lenovo_ne10032/machine.make index a5dcb0df9..75acd8448 100755 --- a/machine/lenovo/lenovo_ne10032/machine.make +++ b/machine/lenovo/lenovo_ne10032/machine.make @@ -53,7 +53,6 @@ LINUX_MINOR_VERSION = 38 # Specify uClibc version #UCLIBC_VERSION = 0.9.32.1 -GCC_VERSION = 4.9.2 #Extra kernel command line EXTRA_CMDLINE_LINUX ?= quiet diff --git a/machine/lenovo/lenovo_ne1032/machine.make b/machine/lenovo/lenovo_ne1032/machine.make index 1ea35c921..470baee20 100644 --- a/machine/lenovo/lenovo_ne1032/machine.make +++ b/machine/lenovo/lenovo_ne1032/machine.make @@ -48,7 +48,6 @@ LINUX_TARBALL = linux-$(LINUX_RELEASE).tar.bz2 # Specify uClibc version #UCLIBC_VERSION = 0.9.32.1 -GCC_VERSION = 4.9.2 # Set the desired u-boot version. UBOOT_TARBALL_URLS = http://git.freescale.com/git/cgit.cgi/ppc/sdk/u-boot.git/snapshot diff --git a/machine/lenovo/lenovo_ne1032t/machine.make b/machine/lenovo/lenovo_ne1032t/machine.make index a6cf53edf..8774fbecf 100644 --- a/machine/lenovo/lenovo_ne1032t/machine.make +++ b/machine/lenovo/lenovo_ne1032t/machine.make @@ -48,7 +48,6 @@ LINUX_TARBALL = linux-$(LINUX_RELEASE).tar.bz2 # Specify uClibc version #UCLIBC_VERSION = 0.9.32.1 -GCC_VERSION = 4.9.2 # Set the desired u-boot version. UBOOT_TARBALL_URLS = http://git.freescale.com/git/cgit.cgi/ppc/sdk/u-boot.git/snapshot diff --git a/machine/lenovo/lenovo_ne1064t/machine.make b/machine/lenovo/lenovo_ne1064t/machine.make index fd9977f22..4e5d90950 100755 --- a/machine/lenovo/lenovo_ne1064t/machine.make +++ b/machine/lenovo/lenovo_ne1064t/machine.make @@ -53,7 +53,6 @@ LINUX_MINOR_VERSION = 95 # Specify uClibc version #UCLIBC_VERSION = 0.9.32.1 -GCC_VERSION = 6.3.0 #Extra kernel command line EXTRA_CMDLINE_LINUX ?= quiet diff --git a/machine/lenovo/lenovo_ne1072t/machine.make b/machine/lenovo/lenovo_ne1072t/machine.make index 56be24b47..4e5a1aca0 100644 --- a/machine/lenovo/lenovo_ne1072t/machine.make +++ b/machine/lenovo/lenovo_ne1072t/machine.make @@ -48,7 +48,6 @@ LINUX_TARBALL = linux-$(LINUX_RELEASE).tar.bz2 # Specify uClibc version #UCLIBC_VERSION = 0.9.32.1 -GCC_VERSION = 4.9.2 # Set the desired u-boot version. UBOOT_TARBALL_URLS = http://git.freescale.com/git/cgit.cgi/ppc/sdk/u-boot.git/snapshot diff --git a/machine/lenovo/lenovo_ne2572/machine.make b/machine/lenovo/lenovo_ne2572/machine.make index 87682205d..b4120c547 100755 --- a/machine/lenovo/lenovo_ne2572/machine.make +++ b/machine/lenovo/lenovo_ne2572/machine.make @@ -54,7 +54,6 @@ LINUX_MINOR_VERSION = 38 # Specify uClibc version #UCLIBC_VERSION = 0.9.32.1 -GCC_VERSION = 4.9.2 #Extra kernel command line EXTRA_CMDLINE_LINUX ?= quiet diff --git a/machine/lenovo/lenovo_ne2580/machine.make b/machine/lenovo/lenovo_ne2580/machine.make index 1a6cf2970..f95b7bc44 100755 --- a/machine/lenovo/lenovo_ne2580/machine.make +++ b/machine/lenovo/lenovo_ne2580/machine.make @@ -53,7 +53,6 @@ LINUX_MINOR_VERSION = 95 # Specify uClibc version #UCLIBC_VERSION = 0.9.32.1 -GCC_VERSION = 6.3.0 #Extra kernel command line EXTRA_CMDLINE_LINUX ?= quiet diff --git a/machine/marvell/a7020-comexp/machine.make b/machine/marvell/a7020-comexp/machine.make index 84c4c731a..38d079a02 100644 --- a/machine/marvell/a7020-comexp/machine.make +++ b/machine/marvell/a7020-comexp/machine.make @@ -18,7 +18,6 @@ XTOOLS_ENABLE?=yes ifeq ($(XTOOLS_ENABLE),no) TARGET = aarch64-linux-gnu CROSSBIN = /local/store/projects/toolChain/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin - GCC_VERSION = 5.2.1 XTOOLS_BUILD_STAMP = $(CROSSBIN)/$(TARGET)-gcc STRACE_ENABLE = no endif diff --git a/machine/netberg/netberg_aurora_221/machine.make b/machine/netberg/netberg_aurora_221/machine.make index 03ac0fd66..1819c29c0 100755 --- a/machine/netberg/netberg_aurora_221/machine.make +++ b/machine/netberg/netberg_aurora_221/machine.make @@ -39,10 +39,8 @@ RECOVERY_DEFAULT_ENTRY = embed LINUX_VERSION = 4.9 LINUX_MINOR_VERSION = 95 -GCC_VERSION = 8.3.0 # Set uClibc-ng version -XTOOLS_LIBC_VERSION = 1.0.35 #------------------------------------------------------------------------------- # diff --git a/machine/netberg/netberg_aurora_610/machine.make b/machine/netberg/netberg_aurora_610/machine.make index 783bee6bb..7e018cff2 100644 --- a/machine/netberg/netberg_aurora_610/machine.make +++ b/machine/netberg/netberg_aurora_610/machine.make @@ -26,8 +26,6 @@ I2CTOOLS_ENABLE = yes LINUX_VERSION = 4.9 LINUX_MINOR_VERSION = 95 -# Use gcc-6.3.0 -GCC_VERSION = 6.3.0 # # Console parameters can be defined here diff --git a/machine/netberg/netberg_aurora_615/machine.make b/machine/netberg/netberg_aurora_615/machine.make index b3543f24e..b0ac5ac0e 100755 --- a/machine/netberg/netberg_aurora_615/machine.make +++ b/machine/netberg/netberg_aurora_615/machine.make @@ -38,7 +38,6 @@ CONSOLE_SPEED ?= 115200 #LINUX_MINOR_VERSION = 38 LINUX_VERSION = 4.9 LINUX_MINOR_VERSION = 95 -GCC_VERSION = 4.9.2 #EXTRA_CMDLINE_LINUX = acpi_osi=Linux #GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- diff --git a/machine/netberg/netberg_aurora_621/machine.make b/machine/netberg/netberg_aurora_621/machine.make index e8704a8c8..b9345a88f 100755 --- a/machine/netberg/netberg_aurora_621/machine.make +++ b/machine/netberg/netberg_aurora_621/machine.make @@ -51,8 +51,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 4.9 LINUX_MINOR_VERSION = 95 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/netberg/netberg_aurora_705/machine.make b/machine/netberg/netberg_aurora_705/machine.make index c88937e9d..81b7a62ac 100644 --- a/machine/netberg/netberg_aurora_705/machine.make +++ b/machine/netberg/netberg_aurora_705/machine.make @@ -37,8 +37,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 4.1 LINUX_MINOR_VERSION = 38 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/netberg/netberg_aurora_710/machine.make b/machine/netberg/netberg_aurora_710/machine.make index e830f2366..0b702ea9e 100644 --- a/machine/netberg/netberg_aurora_710/machine.make +++ b/machine/netberg/netberg_aurora_710/machine.make @@ -48,8 +48,6 @@ EXTRA_CMDLINE_LINUX = i2c-i801.disable_features=0x10 LINUX_VERSION = 4.1 LINUX_MINOR_VERSION = 38 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/netberg/netberg_aurora_715/machine.make b/machine/netberg/netberg_aurora_715/machine.make index 98ec9a85d..4e9d17240 100755 --- a/machine/netberg/netberg_aurora_715/machine.make +++ b/machine/netberg/netberg_aurora_715/machine.make @@ -38,7 +38,6 @@ CONSOLE_SPEED ?= 115200 #LINUX_MINOR_VERSION = 38 LINUX_VERSION = 4.9 LINUX_MINOR_VERSION = 95 -GCC_VERSION = 4.9.2 #EXTRA_CMDLINE_LINUX = acpi_osi=Linux #GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- diff --git a/machine/netberg/netberg_aurora_721/machine.make b/machine/netberg/netberg_aurora_721/machine.make index 45c7ab3a1..ec7dbea97 100755 --- a/machine/netberg/netberg_aurora_721/machine.make +++ b/machine/netberg/netberg_aurora_721/machine.make @@ -51,8 +51,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 4.9 LINUX_MINOR_VERSION = 95 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/netberg/netberg_aurora_740/machine.make b/machine/netberg/netberg_aurora_740/machine.make index 9602aac59..9040eca12 100755 --- a/machine/netberg/netberg_aurora_740/machine.make +++ b/machine/netberg/netberg_aurora_740/machine.make @@ -48,8 +48,6 @@ EXTRA_CMDLINE_LINUX = i2c-i801.disable_features=0x10 LINUX_VERSION = 4.1 LINUX_MINOR_VERSION = 38 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/netberg/netberg_aurora_750/machine.make b/machine/netberg/netberg_aurora_750/machine.make index 83261d60b..6de341202 100644 --- a/machine/netberg/netberg_aurora_750/machine.make +++ b/machine/netberg/netberg_aurora_750/machine.make @@ -48,8 +48,6 @@ EXTRA_CMDLINE_LINUX = i2c-i801.disable_features=0x10 LINUX_VERSION = 4.1 LINUX_MINOR_VERSION = 38 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/netberg/netberg_aurora_810/machine.make b/machine/netberg/netberg_aurora_810/machine.make index 379e63fdd..0833b4b48 100755 --- a/machine/netberg/netberg_aurora_810/machine.make +++ b/machine/netberg/netberg_aurora_810/machine.make @@ -37,10 +37,8 @@ RECOVERY_DEFAULT_ENTRY = embed LINUX_VERSION = 4.9 LINUX_MINOR_VERSION = 95 -GCC_VERSION = 8.3.0 # Set uClibc-ng version -XTOOLS_LIBC_VERSION = 1.0.35 #------------------------------------------------------------------------------- # diff --git a/machine/netberg/netberg_aurora_820/machine.make b/machine/netberg/netberg_aurora_820/machine.make index cb0be0cdf..5f10bda26 100644 --- a/machine/netberg/netberg_aurora_820/machine.make +++ b/machine/netberg/netberg_aurora_820/machine.make @@ -25,8 +25,6 @@ I2CTOOLS_ENABLE = yes LINUX_VERSION = 4.9 LINUX_MINOR_VERSION = 95 -# Use gcc-6.3.0 -GCC_VERSION = 6.3.0 # # Console parameters can be defined here diff --git a/machine/netberg/netberg_aurora_830/machine.make b/machine/netberg/netberg_aurora_830/machine.make index e88e3e2d3..dd4e71060 100755 --- a/machine/netberg/netberg_aurora_830/machine.make +++ b/machine/netberg/netberg_aurora_830/machine.make @@ -49,8 +49,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 4.9 LINUX_MINOR_VERSION = 95 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/netberg/netberg_rangeley_p1330/machine.make b/machine/netberg/netberg_rangeley_p1330/machine.make index be710d626..82bd77729 100755 --- a/machine/netberg/netberg_rangeley_p1330/machine.make +++ b/machine/netberg/netberg_rangeley_p1330/machine.make @@ -31,8 +31,6 @@ RECOVERY_DEFAULT_ENTRY=embed LINUX_VERSION = 3.2 LINUX_MINOR_VERSION = 69 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/pegatron/pegatron_dm2118_b/machine.make b/machine/pegatron/pegatron_dm2118_b/machine.make index 09f7e0c4e..e8c28c156 100755 --- a/machine/pegatron/pegatron_dm2118_b/machine.make +++ b/machine/pegatron/pegatron_dm2118_b/machine.make @@ -13,8 +13,6 @@ MACHINE_REV = 0 ifeq ($(XTOOLS_ENABLE),no) TARGET = aarch64-marvell-linux-gnu CROSSBIN = /opt/toolchains/mvl/armv8/ac5/bin - GCC_VERSION = 7.3.0 - XTOOLS_LIBC_VERSION = 2.27 XTOOLS_BUILD_STAMP = $(CROSSBIN)/$(TARGET)-gcc STRACE_ENABLE = no endif diff --git a/machine/pegatron/pegatron_dm6218_b/machine.make b/machine/pegatron/pegatron_dm6218_b/machine.make index 5aabb7da0..b11d9c379 100755 --- a/machine/pegatron/pegatron_dm6218_b/machine.make +++ b/machine/pegatron/pegatron_dm6218_b/machine.make @@ -13,8 +13,6 @@ MACHINE_REV = 0 ifeq ($(XTOOLS_ENABLE),no) TARGET = aarch64-marvell-linux-gnu CROSSBIN = /opt/toolchains/mvl/armv8/cn91xx/bin - GCC_VERSION = 7.3.0 - XTOOLS_LIBC_VERSION = 2.27 XTOOLS_BUILD_STAMP = $(CROSSBIN)/$(TARGET)-gcc STRACE_ENABLE = no endif diff --git a/machine/pegatron/pegatron_em21t54/machine.make b/machine/pegatron/pegatron_em21t54/machine.make index ff664c9bb..836929ced 100755 --- a/machine/pegatron/pegatron_em21t54/machine.make +++ b/machine/pegatron/pegatron_em21t54/machine.make @@ -13,8 +13,6 @@ MACHINE_REV = 0 ifeq ($(XTOOLS_ENABLE),no) TARGET = aarch64-marvell-linux-gnu CROSSBIN = /opt/toolchains/mvl/armv8/ac5/bin - GCC_VERSION = 7.3.0 - XTOOLS_LIBC_VERSION = 2.27 XTOOLS_BUILD_STAMP = $(CROSSBIN)/$(TARGET)-gcc STRACE_ENABLE = no endif diff --git a/machine/plexxi/px_switch2/machine.make b/machine/plexxi/px_switch2/machine.make index ff60daeb7..6ec6f042c 100644 --- a/machine/plexxi/px_switch2/machine.make +++ b/machine/plexxi/px_switch2/machine.make @@ -27,8 +27,6 @@ PXE_EFI64_ENABLE=yes LINUX_VERSION = 3.14 LINUX_MINOR_VERSION = 27 -# Older GCC required for older 3.14.27 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/qemu_armv8a/machine.make b/machine/qemu_armv8a/machine.make index 99caa7cd0..fc6c40078 100644 --- a/machine/qemu_armv8a/machine.make +++ b/machine/qemu_armv8a/machine.make @@ -24,9 +24,6 @@ XTOOLS_ENABLE = yes ifeq ($(XTOOLS_ENABLE),no) TARGET = aarch64-linux-gnu CROSSBIN = $(HOME)/gcc-linaro-5.3-2016.02-x86_64_aarch64-linux-gnu/bin - GCC_VERSION = 5.3.1 - XTOOLS_LIBC = glibc - XTOOLS_LIBC_VERSION = 2.21 LINUX_VERSION = 4.1.23 STRACE_ENABLE = no XTOOLS_BUILD_STAMP = $(CROSSBIN)/$(TARGET)-gcc diff --git a/machine/quanta/quanta_common_p2020/machine.make b/machine/quanta/quanta_common_p2020/machine.make index 2c2f79661..2ec2419d2 100755 --- a/machine/quanta/quanta_common_p2020/machine.make +++ b/machine/quanta/quanta_common_p2020/machine.make @@ -21,8 +21,6 @@ VENDOR_ID = 7244 LINUX_VERSION = 3.2 LINUX_MINOR_VERSION = 69 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 # Exclude ext3/4 file system tools EXT3_4_ENABLE = no diff --git a/machine/quanta/quanta_common_rangeley/machine.make b/machine/quanta/quanta_common_rangeley/machine.make index 0b5718858..d6bfaecf1 100755 --- a/machine/quanta/quanta_common_rangeley/machine.make +++ b/machine/quanta/quanta_common_rangeley/machine.make @@ -32,8 +32,6 @@ RECOVERY_DEFAULT_ENTRY=embed LINUX_VERSION = 3.2 LINUX_MINOR_VERSION = 69 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/quanta/quanta_common_rglbmc/machine.make b/machine/quanta/quanta_common_rglbmc/machine.make index be0995b0d..2e6358e1e 100644 --- a/machine/quanta/quanta_common_rglbmc/machine.make +++ b/machine/quanta/quanta_common_rglbmc/machine.make @@ -55,8 +55,6 @@ PXE_EFI64_ENABLE = yes LINUX_VERSION = 4.9 LINUX_MINOR_VERSION = 95 -# Use gcc-6.3.0 -GCC_VERSION = 6.3.0 # # Console parameters can be defined here (default values are in diff --git a/machine/quanta/quanta_lb8d/machine.make b/machine/quanta/quanta_lb8d/machine.make index d4720cd9f..5c1e2e36e 100755 --- a/machine/quanta/quanta_lb8d/machine.make +++ b/machine/quanta/quanta_lb8d/machine.make @@ -21,8 +21,6 @@ VENDOR_ID = 7244 LINUX_VERSION = 3.2 LINUX_MINOR_VERSION = 69 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/quanta/quanta_lb9/machine.make b/machine/quanta/quanta_lb9/machine.make index 07ca210ce..808e429a2 100755 --- a/machine/quanta/quanta_lb9/machine.make +++ b/machine/quanta/quanta_lb9/machine.make @@ -21,8 +21,6 @@ VENDOR_ID = 7244 LINUX_VERSION = 3.2 LINUX_MINOR_VERSION = 69 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 # Exclude ext3/4 file system tools EXT3_4_ENABLE = no diff --git a/machine/quanta/quanta_ly2/machine.make b/machine/quanta/quanta_ly2/machine.make index 0abd2a3fe..70130c29b 100755 --- a/machine/quanta/quanta_ly2/machine.make +++ b/machine/quanta/quanta_ly2/machine.make @@ -21,8 +21,6 @@ VENDOR_ID = 7244 LINUX_VERSION = 3.2 LINUX_MINOR_VERSION = 69 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 # Exclude ext3/4 file system tools EXT3_4_ENABLE = no diff --git a/machine/quanta/quanta_ly2r/machine.make b/machine/quanta/quanta_ly2r/machine.make index ff776b88b..05f4e4d48 100755 --- a/machine/quanta/quanta_ly2r/machine.make +++ b/machine/quanta/quanta_ly2r/machine.make @@ -21,8 +21,6 @@ VENDOR_ID = 7244 LINUX_VERSION = 3.2 LINUX_MINOR_VERSION = 69 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 # Exclude ext3/4 file system tools EXT3_4_ENABLE = no diff --git a/machine/quanta/quanta_ly3/machine.make b/machine/quanta/quanta_ly3/machine.make index 61ac30d04..4023126ba 100755 --- a/machine/quanta/quanta_ly3/machine.make +++ b/machine/quanta/quanta_ly3/machine.make @@ -21,8 +21,6 @@ VENDOR_ID = 7244 LINUX_VERSION = 3.2 LINUX_MINOR_VERSION = 69 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/quanta/quanta_ly4r/machine.make b/machine/quanta/quanta_ly4r/machine.make index 5eef981ef..f8ca72843 100644 --- a/machine/quanta/quanta_ly4r/machine.make +++ b/machine/quanta/quanta_ly4r/machine.make @@ -55,8 +55,6 @@ PXE_EFI64_ENABLE = yes LINUX_VERSION = 4.9 LINUX_MINOR_VERSION = 95 -# Use gcc-6.3.0 -GCC_VERSION = 6.3.0 # # Console parameters can be defined here (default values are in diff --git a/machine/senao/senao_snd12000/machine.make b/machine/senao/senao_snd12000/machine.make index 51754cdc1..47d75c110 100755 --- a/machine/senao/senao_snd12000/machine.make +++ b/machine/senao/senao_snd12000/machine.make @@ -40,10 +40,8 @@ RECOVERY_DEFAULT_ENTRY = embed LINUX_VERSION = 4.9 LINUX_MINOR_VERSION = 95 -GCC_VERSION = 8.3.0 # Set uClibc-ng version -XTOOLS_LIBC_VERSION = 1.0.35 include $(MACHINEDIR)/rootconf/grub-machine.make diff --git a/machine/senao/senao_snd9000/machine.make b/machine/senao/senao_snd9000/machine.make index 51754cdc1..47d75c110 100755 --- a/machine/senao/senao_snd9000/machine.make +++ b/machine/senao/senao_snd9000/machine.make @@ -40,10 +40,8 @@ RECOVERY_DEFAULT_ENTRY = embed LINUX_VERSION = 4.9 LINUX_MINOR_VERSION = 95 -GCC_VERSION = 8.3.0 # Set uClibc-ng version -XTOOLS_LIBC_VERSION = 1.0.35 include $(MACHINEDIR)/rootconf/grub-machine.make diff --git a/machine/ufispace/ufispace_dvtn_s9501series/machine.make b/machine/ufispace/ufispace_dvtn_s9501series/machine.make index 1ffe3bda0..742d198f1 100755 --- a/machine/ufispace/ufispace_dvtn_s9501series/machine.make +++ b/machine/ufispace/ufispace_dvtn_s9501series/machine.make @@ -53,8 +53,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 4.9 LINUX_MINOR_VERSION = 95 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/ufispace/ufispace_dvtn_s9502series/machine.make b/machine/ufispace/ufispace_dvtn_s9502series/machine.make index b181c958f..0b7ef016d 100755 --- a/machine/ufispace/ufispace_dvtn_s9502series/machine.make +++ b/machine/ufispace/ufispace_dvtn_s9502series/machine.make @@ -54,8 +54,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/ufispace/ufispace_dvtn_td3_x5_series/machine.make b/machine/ufispace/ufispace_dvtn_td3_x5_series/machine.make index 581dede6c..fdb818c97 100755 --- a/machine/ufispace/ufispace_dvtn_td3_x5_series/machine.make +++ b/machine/ufispace/ufispace_dvtn_td3_x5_series/machine.make @@ -53,8 +53,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/ufispace/ufispace_icl_emux_series/machine.make b/machine/ufispace/ufispace_icl_emux_series/machine.make index f7576f700..e758be725 100755 --- a/machine/ufispace/ufispace_icl_emux_series/machine.make +++ b/machine/ufispace/ufispace_icl_emux_series/machine.make @@ -52,8 +52,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/ufispace/ufispace_icl_s9321series/machine.make b/machine/ufispace/ufispace_icl_s9321series/machine.make index 46a0782c5..dc327b1fa 100755 --- a/machine/ufispace/ufispace_icl_s9321series/machine.make +++ b/machine/ufispace/ufispace_icl_s9321series/machine.make @@ -52,8 +52,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/ufispace/ufispace_s6301_56st/machine.make b/machine/ufispace/ufispace_s6301_56st/machine.make index cc007eca9..fec00b6b8 100755 --- a/machine/ufispace/ufispace_s6301_56st/machine.make +++ b/machine/ufispace/ufispace_s6301_56st/machine.make @@ -53,8 +53,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/ufispace/ufispace_s6301_56stp/machine.make b/machine/ufispace/ufispace_s6301_56stp/machine.make index cc007eca9..fec00b6b8 100755 --- a/machine/ufispace/ufispace_s6301_56stp/machine.make +++ b/machine/ufispace/ufispace_s6301_56stp/machine.make @@ -53,8 +53,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/ufispace/ufispace_s9110_32x/machine.make b/machine/ufispace/ufispace_s9110_32x/machine.make index 6fe34bded..9a172513a 100755 --- a/machine/ufispace/ufispace_s9110_32x/machine.make +++ b/machine/ufispace/ufispace_s9110_32x/machine.make @@ -54,8 +54,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/ufispace/ufispace_s9300_32d/machine.make b/machine/ufispace/ufispace_s9300_32d/machine.make index 2fa5c59f9..0a766a619 100755 --- a/machine/ufispace/ufispace_s9300_32d/machine.make +++ b/machine/ufispace/ufispace_s9300_32d/machine.make @@ -49,8 +49,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 4.9 LINUX_MINOR_VERSION = 95 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/ufispace/ufispace_s9310_32d/machine.make b/machine/ufispace/ufispace_s9310_32d/machine.make index 48c138cc2..9d22bcba9 100755 --- a/machine/ufispace/ufispace_s9310_32d/machine.make +++ b/machine/ufispace/ufispace_s9310_32d/machine.make @@ -49,8 +49,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 4.9 LINUX_MINOR_VERSION = 95 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/ufispace/ufispace_s9311_64d/machine.make b/machine/ufispace/ufispace_s9311_64d/machine.make index fd09891ca..27d1f592c 100755 --- a/machine/ufispace/ufispace_s9311_64d/machine.make +++ b/machine/ufispace/ufispace_s9311_64d/machine.make @@ -52,8 +52,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/ufispace/ufispace_s9321_64e/machine.make b/machine/ufispace/ufispace_s9321_64e/machine.make index bc4e185c5..7399c46c9 100755 --- a/machine/ufispace/ufispace_s9321_64e/machine.make +++ b/machine/ufispace/ufispace_s9321_64e/machine.make @@ -52,8 +52,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/ufispace/ufispace_s9500_22xst/machine.make b/machine/ufispace/ufispace_s9500_22xst/machine.make index b72c69d35..b8fbdaad8 100755 --- a/machine/ufispace/ufispace_s9500_22xst/machine.make +++ b/machine/ufispace/ufispace_s9500_22xst/machine.make @@ -52,8 +52,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 4.9 LINUX_MINOR_VERSION = 95 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/ufispace/ufispace_s9500_30xs/machine.make b/machine/ufispace/ufispace_s9500_30xs/machine.make index e817c7026..254149fda 100755 --- a/machine/ufispace/ufispace_s9500_30xs/machine.make +++ b/machine/ufispace/ufispace_s9500_30xs/machine.make @@ -45,8 +45,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 4.1 LINUX_MINOR_VERSION = 38 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/ufispace/ufispace_s9501_16smt/machine.make b/machine/ufispace/ufispace_s9501_16smt/machine.make index 3cc915a44..a408cf5a5 100755 --- a/machine/ufispace/ufispace_s9501_16smt/machine.make +++ b/machine/ufispace/ufispace_s9501_16smt/machine.make @@ -51,8 +51,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 4.9 LINUX_MINOR_VERSION = 95 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/ufispace/ufispace_s9501_18smt/machine.make b/machine/ufispace/ufispace_s9501_18smt/machine.make index 3cc915a44..a408cf5a5 100755 --- a/machine/ufispace/ufispace_s9501_18smt/machine.make +++ b/machine/ufispace/ufispace_s9501_18smt/machine.make @@ -51,8 +51,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 4.9 LINUX_MINOR_VERSION = 95 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/ufispace/ufispace_s9501_28smt/machine.make b/machine/ufispace/ufispace_s9501_28smt/machine.make index 634db1d49..fce5f39a5 100755 --- a/machine/ufispace/ufispace_s9501_28smt/machine.make +++ b/machine/ufispace/ufispace_s9501_28smt/machine.make @@ -51,8 +51,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 4.9 LINUX_MINOR_VERSION = 95 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/ufispace/ufispace_s9510_28dc/machine.make b/machine/ufispace/ufispace_s9510_28dc/machine.make index acb0fe448..8add6691e 100755 --- a/machine/ufispace/ufispace_s9510_28dc/machine.make +++ b/machine/ufispace/ufispace_s9510_28dc/machine.make @@ -53,8 +53,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 4.9 LINUX_MINOR_VERSION = 95 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/ufispace/ufispace_s9510_30xc/machine.make b/machine/ufispace/ufispace_s9510_30xc/machine.make index 1ab60e9dd..7753f5494 100755 --- a/machine/ufispace/ufispace_s9510_30xc/machine.make +++ b/machine/ufispace/ufispace_s9510_30xc/machine.make @@ -53,8 +53,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/ufispace/ufispace_s9511_20ct/machine.make b/machine/ufispace/ufispace_s9511_20ct/machine.make index 0d2cd5e65..0a307ce04 100755 --- a/machine/ufispace/ufispace_s9511_20ct/machine.make +++ b/machine/ufispace/ufispace_s9511_20ct/machine.make @@ -54,8 +54,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/ufispace/ufispace_s9600_102xc/machine.make b/machine/ufispace/ufispace_s9600_102xc/machine.make index fb64a31f1..790342e5a 100755 --- a/machine/ufispace/ufispace_s9600_102xc/machine.make +++ b/machine/ufispace/ufispace_s9600_102xc/machine.make @@ -52,8 +52,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/ufispace/ufispace_s9600_104bc/machine.make b/machine/ufispace/ufispace_s9600_104bc/machine.make index 71fd50697..2558bc422 100755 --- a/machine/ufispace/ufispace_s9600_104bc/machine.make +++ b/machine/ufispace/ufispace_s9600_104bc/machine.make @@ -52,8 +52,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/ufispace/ufispace_s9600_28dx/machine.make b/machine/ufispace/ufispace_s9600_28dx/machine.make index bdaea215f..c45699dd6 100755 --- a/machine/ufispace/ufispace_s9600_28dx/machine.make +++ b/machine/ufispace/ufispace_s9600_28dx/machine.make @@ -49,8 +49,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/ufispace/ufispace_s9600_30dx/machine.make b/machine/ufispace/ufispace_s9600_30dx/machine.make index 18cf91099..ded8d6f80 100755 --- a/machine/ufispace/ufispace_s9600_30dx/machine.make +++ b/machine/ufispace/ufispace_s9600_30dx/machine.make @@ -52,8 +52,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/ufispace/ufispace_s9600_32x/machine.make b/machine/ufispace/ufispace_s9600_32x/machine.make index b2aa0909c..3c346d215 100755 --- a/machine/ufispace/ufispace_s9600_32x/machine.make +++ b/machine/ufispace/ufispace_s9600_32x/machine.make @@ -49,8 +49,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 4.9 LINUX_MINOR_VERSION = 95 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/ufispace/ufispace_s9600_48x/machine.make b/machine/ufispace/ufispace_s9600_48x/machine.make index 7b3c2c1ff..3208f693d 100755 --- a/machine/ufispace/ufispace_s9600_48x/machine.make +++ b/machine/ufispace/ufispace_s9600_48x/machine.make @@ -49,8 +49,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 4.9 LINUX_MINOR_VERSION = 95 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/ufispace/ufispace_s9600_56dx/machine.make b/machine/ufispace/ufispace_s9600_56dx/machine.make index 15f7570d8..d778a9bf8 100755 --- a/machine/ufispace/ufispace_s9600_56dx/machine.make +++ b/machine/ufispace/ufispace_s9600_56dx/machine.make @@ -49,8 +49,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/ufispace/ufispace_s9600_64x/machine.make b/machine/ufispace/ufispace_s9600_64x/machine.make index 3b8ee21f6..41d545445 100755 --- a/machine/ufispace/ufispace_s9600_64x/machine.make +++ b/machine/ufispace/ufispace_s9600_64x/machine.make @@ -49,8 +49,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 4.9 LINUX_MINOR_VERSION = 95 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/ufispace/ufispace_s9600_72xc/machine.make b/machine/ufispace/ufispace_s9600_72xc/machine.make index f76e440d5..4b4eb0e65 100755 --- a/machine/ufispace/ufispace_s9600_72xc/machine.make +++ b/machine/ufispace/ufispace_s9600_72xc/machine.make @@ -49,8 +49,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 4.9 LINUX_MINOR_VERSION = 95 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/ufispace/ufispace_s9601_102xc/machine.make b/machine/ufispace/ufispace_s9601_102xc/machine.make index 81b2ca026..555be9598 100755 --- a/machine/ufispace/ufispace_s9601_102xc/machine.make +++ b/machine/ufispace/ufispace_s9601_102xc/machine.make @@ -52,8 +52,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/ufispace/ufispace_s9601_104bc/machine.make b/machine/ufispace/ufispace_s9601_104bc/machine.make index b15355af4..29e5e6684 100755 --- a/machine/ufispace/ufispace_s9601_104bc/machine.make +++ b/machine/ufispace/ufispace_s9601_104bc/machine.make @@ -53,8 +53,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/ufispace/ufispace_s9610_36d/machine.make b/machine/ufispace/ufispace_s9610_36d/machine.make index cf936edaf..33f7a2ff2 100755 --- a/machine/ufispace/ufispace_s9610_36d/machine.make +++ b/machine/ufispace/ufispace_s9610_36d/machine.make @@ -52,8 +52,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/ufispace/ufispace_s9610_46dx/machine.make b/machine/ufispace/ufispace_s9610_46dx/machine.make index eccb2c4cd..5921bdc59 100755 --- a/machine/ufispace/ufispace_s9610_46dx/machine.make +++ b/machine/ufispace/ufispace_s9610_46dx/machine.make @@ -51,8 +51,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/ufispace/ufispace_s9610_48dx/machine.make b/machine/ufispace/ufispace_s9610_48dx/machine.make index fcc7a81f3..3094c31c4 100755 --- a/machine/ufispace/ufispace_s9610_48dx/machine.make +++ b/machine/ufispace/ufispace_s9610_48dx/machine.make @@ -52,8 +52,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/ufispace/ufispace_s9700_23d/machine.make b/machine/ufispace/ufispace_s9700_23d/machine.make index 04860620d..8b8e4fa0a 100755 --- a/machine/ufispace/ufispace_s9700_23d/machine.make +++ b/machine/ufispace/ufispace_s9700_23d/machine.make @@ -52,8 +52,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 4.9 LINUX_MINOR_VERSION = 95 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/ufispace/ufispace_s9700_53dx/machine.make b/machine/ufispace/ufispace_s9700_53dx/machine.make index c3700d5ab..6df9ad42e 100755 --- a/machine/ufispace/ufispace_s9700_53dx/machine.make +++ b/machine/ufispace/ufispace_s9700_53dx/machine.make @@ -52,8 +52,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 4.9 LINUX_MINOR_VERSION = 95 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/ufispace/ufispace_s9701_78dc/machine.make b/machine/ufispace/ufispace_s9701_78dc/machine.make index 7a041927e..724178a90 100755 --- a/machine/ufispace/ufispace_s9701_78dc/machine.make +++ b/machine/ufispace/ufispace_s9701_78dc/machine.make @@ -49,8 +49,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 4.9 LINUX_MINOR_VERSION = 95 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/ufispace/ufispace_s9701_82dc/machine.make b/machine/ufispace/ufispace_s9701_82dc/machine.make index 7fed22075..ce253db5d 100755 --- a/machine/ufispace/ufispace_s9701_82dc/machine.make +++ b/machine/ufispace/ufispace_s9701_82dc/machine.make @@ -49,8 +49,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 4.9 LINUX_MINOR_VERSION = 95 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/ufispace/ufispace_s9705_48d/machine.make b/machine/ufispace/ufispace_s9705_48d/machine.make index 0ed43e038..bfe997a01 100755 --- a/machine/ufispace/ufispace_s9705_48d/machine.make +++ b/machine/ufispace/ufispace_s9705_48d/machine.make @@ -52,8 +52,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 4.9 LINUX_MINOR_VERSION = 95 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/ufispace/ufispace_s9710_76d/machine.make b/machine/ufispace/ufispace_s9710_76d/machine.make index 66d038ddd..0d12fb75e 100755 --- a/machine/ufispace/ufispace_s9710_76d/machine.make +++ b/machine/ufispace/ufispace_s9710_76d/machine.make @@ -52,8 +52,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/ufispace/ufispace_s9720_56ed/machine.make b/machine/ufispace/ufispace_s9720_56ed/machine.make index 179347dfc..057022372 100755 --- a/machine/ufispace/ufispace_s9720_56ed/machine.make +++ b/machine/ufispace/ufispace_s9720_56ed/machine.make @@ -52,8 +52,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/ufispace/ufispace_s9725_64e/machine.make b/machine/ufispace/ufispace_s9725_64e/machine.make index 557eff997..8f35f5bb4 100755 --- a/machine/ufispace/ufispace_s9725_64e/machine.make +++ b/machine/ufispace/ufispace_s9725_64e/machine.make @@ -52,8 +52,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/ufispace/ufispace_skl_ncplite_series/machine.make b/machine/ufispace/ufispace_skl_ncplite_series/machine.make index 0552dadec..fcde23bfa 100755 --- a/machine/ufispace/ufispace_skl_ncplite_series/machine.make +++ b/machine/ufispace/ufispace_skl_ncplite_series/machine.make @@ -52,8 +52,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/ufispace/ufispace_skl_nighthawk_series/machine.make b/machine/ufispace/ufispace_skl_nighthawk_series/machine.make index bb21f6e5b..049dc5dd3 100755 --- a/machine/ufispace/ufispace_skl_nighthawk_series/machine.make +++ b/machine/ufispace/ufispace_skl_nighthawk_series/machine.make @@ -52,8 +52,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/ufispace/ufispace_skl_s9300series/machine.make b/machine/ufispace/ufispace_skl_s9300series/machine.make index fa8d31a29..0a1abf904 100755 --- a/machine/ufispace/ufispace_skl_s9300series/machine.make +++ b/machine/ufispace/ufispace_skl_s9300series/machine.make @@ -54,8 +54,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/wiwynn/wiwynn_andromeda/machine.make b/machine/wiwynn/wiwynn_andromeda/machine.make index 6173ed502..b9548c79e 100644 --- a/machine/wiwynn/wiwynn_andromeda/machine.make +++ b/machine/wiwynn/wiwynn_andromeda/machine.make @@ -40,8 +40,6 @@ I2CTOOLS_SYSEEPROM = no LINUX_VERSION = 3.14 LINUX_MINOR_VERSION = 27 -# Older GCC required for older 3.14.27 kernel -GCC_VERSION = 4.9.2 #UEFI_ENABLE = yes IPMITOOL_ENABLE = yes diff --git a/machine/wnc/wnc_osw1800/machine.make b/machine/wnc/wnc_osw1800/machine.make index c8bdd6f5e..b8ced5c7c 100644 --- a/machine/wnc/wnc_osw1800/machine.make +++ b/machine/wnc/wnc_osw1800/machine.make @@ -36,8 +36,6 @@ I2CTOOLS_ENABLE = yes # Set the desired kernel version. LINUX_VERSION = 3.14 LINUX_MINOR_VERSION = 27 -# Older GCC required for older 3.14.27 kernel -GCC_VERSION = 4.9.2 UEFI_ENABLE = yes PXE_EFI64_ENABLE = yes diff --git a/machine/wnc/wnc_rseb_w1_32/machine.make b/machine/wnc/wnc_rseb_w1_32/machine.make index a1e99d545..559470575 100644 --- a/machine/wnc/wnc_rseb_w1_32/machine.make +++ b/machine/wnc/wnc_rseb_w1_32/machine.make @@ -38,8 +38,6 @@ LINUX_MINOR_VERSION = 95 EXTRA_CMDLINE_LINUX = acpi_osi=Linux -# Older GCC required for older 3.14.27 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # # Local Variables: diff --git a/machine/wnc/wnc_ssb1_w1/machine.make b/machine/wnc/wnc_ssb1_w1/machine.make index be41715ee..ce090c811 100644 --- a/machine/wnc/wnc_ssb1_w1/machine.make +++ b/machine/wnc/wnc_ssb1_w1/machine.make @@ -40,8 +40,6 @@ I2CTOOLS_SYSEEPROM = no LINUX_VERSION = 3.14 LINUX_MINOR_VERSION = 27 -# Older GCC required for older 3.14.27 kernel -GCC_VERSION = 4.9.2 #UEFI_ENABLE = yes IPMITOOL_ENABLE = yes diff --git a/machine/wnc/wnc_sst1_n1/machine.make b/machine/wnc/wnc_sst1_n1/machine.make index 459301a5e..cd035f11f 100644 --- a/machine/wnc/wnc_sst1_n1/machine.make +++ b/machine/wnc/wnc_sst1_n1/machine.make @@ -40,8 +40,6 @@ I2CTOOLS_SYSEEPROM = no LINUX_VERSION = 3.14 LINUX_MINOR_VERSION = 27 -# Older GCC required for older 3.14.27 kernel -GCC_VERSION = 4.9.2 #UEFI_ENABLE = yes IPMITOOL_ENABLE = yes diff --git a/patches/busybox/dhcp-additional-options.patch b/patches/busybox/dhcp-additional-options.patch deleted file mode 100644 index 462660d5a..000000000 --- a/patches/busybox/dhcp-additional-options.patch +++ /dev/null @@ -1,131 +0,0 @@ -dhcp additional options patch - -Copyright (C) 2013 Curt Brune -Copyright (C) 2014 david_yang - -SPDX-License-Identifier: GPL-2.0 - -Enable the send/receive of additional DHCP options: - - DHCP_LOG_SERVER - DHCP_WWW_SERVER - DHCP_DEFAULT_URL - -diff --git a/networking/udhcp/common.c b/networking/udhcp/common.c -index 0cf4dab63c55..ad4522deb0b0 100644 ---- a/networking/udhcp/common.c -+++ b/networking/udhcp/common.c -@@ -26,7 +26,7 @@ const struct dhcp_optflag dhcp_optflags[] = { - // { OPTION_IP | OPTION_LIST , 0x04 }, /* DHCP_TIME_SERVER */ - // { OPTION_IP | OPTION_LIST , 0x05 }, /* DHCP_NAME_SERVER */ - { OPTION_IP | OPTION_LIST | OPTION_REQ, 0x06 }, /* DHCP_DNS_SERVER */ --// { OPTION_IP | OPTION_LIST , 0x07 }, /* DHCP_LOG_SERVER */ -+ { OPTION_IP | OPTION_LIST , 0x07 }, /* DHCP_LOG_SERVER */ - // { OPTION_IP | OPTION_LIST , 0x08 }, /* DHCP_COOKIE_SERVER */ - { OPTION_IP | OPTION_LIST , 0x09 }, /* DHCP_LPR_SERVER */ - { OPTION_STRING_HOST | OPTION_REQ, 0x0c }, /* DHCP_HOST_NAME */ -@@ -44,6 +44,7 @@ const struct dhcp_optflag dhcp_optflags[] = { - { OPTION_STRING_HOST , 0x28 }, /* DHCP_NIS_DOMAIN */ - { OPTION_IP | OPTION_LIST , 0x29 }, /* DHCP_NIS_SERVER */ - { OPTION_IP | OPTION_LIST | OPTION_REQ, 0x2a }, /* DHCP_NTP_SERVER */ -+ { OPTION_BIN , 0x2b }, /* DHCP_VENDOR_OPTS */ - { OPTION_IP | OPTION_LIST , 0x2c }, /* DHCP_WINS_SERVER */ - { OPTION_U32 , 0x33 }, /* DHCP_LEASE_TIME */ - { OPTION_IP , 0x36 }, /* DHCP_SERVER_ID */ -@@ -51,13 +52,16 @@ const struct dhcp_optflag dhcp_optflags[] = { - //TODO: must be combined with 'sname' and 'file' handling: - { OPTION_STRING_HOST , 0x42 }, /* DHCP_TFTP_SERVER_NAME */ - { OPTION_STRING , 0x43 }, /* DHCP_BOOT_FILE */ -+ { OPTION_IP | OPTION_LIST , 0x48 }, /* DHCP_WWW_SERVER */ - //TODO: not a string, but a set of LASCII strings: - // { OPTION_STRING , 0x4D }, /* DHCP_USER_CLASS */ -+ { OPTION_STRING , 0x72 }, /* DHCP_DEFAULT_URL */ - #if ENABLE_FEATURE_UDHCP_RFC3397 - { OPTION_DNS_STRING | OPTION_LIST , 0x77 }, /* DHCP_DOMAIN_SEARCH */ - { OPTION_SIP_SERVERS , 0x78 }, /* DHCP_SIP_SERVERS */ - #endif - { OPTION_STATIC_ROUTES | OPTION_LIST , 0x79 }, /* DHCP_STATIC_ROUTES */ -+ { OPTION_BIN , 0x7d }, /* DHCP_VIVSO_OPTS */ - #if ENABLE_FEATURE_UDHCP_8021Q - { OPTION_U16 , 0x84 }, /* DHCP_VLAN_ID */ - { OPTION_U8 , 0x85 }, /* DHCP_VLAN_PRIORITY */ -@@ -65,6 +69,7 @@ const struct dhcp_optflag dhcp_optflags[] = { - { OPTION_STRING , 0xd1 }, /* DHCP_PXE_CONF_FILE */ - { OPTION_STRING , 0xd2 }, /* DHCP_PXE_PATH_PREFIX */ - { OPTION_6RD , 0xd4 }, /* DHCP_6RD */ -+ { OPTION_IP , 0x96 }, /* DHCP_TFTP_SERVER_IP */ - { OPTION_STATIC_ROUTES | OPTION_LIST , 0xf9 }, /* DHCP_MS_STATIC_ROUTES */ - { OPTION_STRING , 0xfc }, /* DHCP_WPAD */ - -@@ -97,7 +102,7 @@ const char dhcp_option_strings[] ALIGN1 = - // "timesrv" "\0" /* DHCP_TIME_SERVER */ - // "namesrv" "\0" /* DHCP_NAME_SERVER */ - "dns" "\0" /* DHCP_DNS_SERVER */ --// "logsrv" "\0" /* DHCP_LOG_SERVER */ -+ "logsrv" "\0" /* DHCP_LOG_SERVER */ - // "cookiesrv" "\0" /* DHCP_COOKIE_SERVER */ - "lprsrv" "\0" /* DHCP_LPR_SERVER */ - "hostname" "\0" /* DHCP_HOST_NAME */ -@@ -112,13 +117,16 @@ const char dhcp_option_strings[] ALIGN1 = - "nisdomain" "\0" /* DHCP_NIS_DOMAIN */ - "nissrv" "\0" /* DHCP_NIS_SERVER */ - "ntpsrv" "\0" /* DHCP_NTP_SERVER */ -+ "vendoropts" "\0" /* DHCP_VENDOR_OPTS */ - "wins" "\0" /* DHCP_WINS_SERVER */ - "lease" "\0" /* DHCP_LEASE_TIME */ - "serverid" "\0" /* DHCP_SERVER_ID */ - "message" "\0" /* DHCP_ERR_MESSAGE */ - "tftp" "\0" /* DHCP_TFTP_SERVER_NAME */ - "bootfile" "\0" /* DHCP_BOOT_FILE */ -+ "wwwsrv" "\0" /* DHCP_WWW_SERVER */ - // "userclass" "\0" /* DHCP_USER_CLASS */ -+ "url" "\0" /* DHCP_DEFAULT_URL */ - #if ENABLE_FEATURE_UDHCP_RFC3397 - "search" "\0" /* DHCP_DOMAIN_SEARCH */ - // doesn't work in udhcpd.conf since OPTION_SIP_SERVERS -@@ -126,6 +134,7 @@ const char dhcp_option_strings[] ALIGN1 = - "sipsrv" "\0" /* DHCP_SIP_SERVERS */ - #endif - "staticroutes" "\0"/* DHCP_STATIC_ROUTES */ -+ "vivso" "\0" /* DHCP_VIVSO_OPTS */ - #if ENABLE_FEATURE_UDHCP_8021Q - "vlanid" "\0" /* DHCP_VLAN_ID */ - "vlanpriority" "\0"/* DHCP_VLAN_PRIORITY */ -@@ -133,6 +142,7 @@ const char dhcp_option_strings[] ALIGN1 = - "pxeconffile" "\0" /* DHCP_PXE_CONF_FILE */ - "pxepathprefix" "\0" /* DHCP_PXE_PATH_PREFIX */ - "ip6rd" "\0" /* DHCP_6RD */ -+ "tftpsiaddr" "\0" /* DHCP_TFTP_SERVER_IP */ - "msstaticroutes""\0"/* DHCP_MS_STATIC_ROUTES */ - "wpad" "\0" /* DHCP_WPAD */ - ; -@@ -149,6 +159,7 @@ const uint8_t dhcp_option_lengths[] ALIGN1 = { - [OPTION_IP] = 4, - [OPTION_IP_PAIR] = 8, - // [OPTION_BOOLEAN] = 1, -+ [OPTION_BIN] = 1, /* ignored by udhcp_str2optset */ - [OPTION_STRING] = 1, /* ignored by udhcp_str2optset */ - [OPTION_STRING_HOST] = 1, /* ignored by udhcp_str2optset */ - #if ENABLE_FEATURE_UDHCP_RFC3397 -diff --git a/networking/udhcp/dhcpc.c b/networking/udhcp/dhcpc.c -index fc7b6216d777..838c8093e969 100644 ---- a/networking/udhcp/dhcpc.c -+++ b/networking/udhcp/dhcpc.c -@@ -114,6 +114,7 @@ static const uint8_t len_of_option_as_string[] ALIGN1 = { - [OPTION_IP_PAIR ] = sizeof("255.255.255.255 ") * 2, - [OPTION_STATIC_ROUTES ] = sizeof("255.255.255.255/32 255.255.255.255 "), - [OPTION_6RD ] = sizeof("132 128 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff 255.255.255.255 "), -+ [OPTION_BIN ] = 2, - [OPTION_STRING ] = 1, - [OPTION_STRING_HOST ] = 1, - #if ENABLE_FEATURE_UDHCP_RFC3397 -@@ -256,6 +257,9 @@ static NOINLINE char *xmalloc_optname_optval(uint8_t *option, const struct dhcp_ - dest += sprintf(dest, type == OPTION_U32 ? "%lu" : "%ld", (unsigned long) ntohl(val_u32)); - break; - } -+ case OPTION_BIN: -+ *bin2hex(dest, (void*) option, len) = '\0'; -+ return ret; - /* Note: options which use 'return' instead of 'break' - * (for example, OPTION_STRING) skip the code which handles - * the case of list of options. diff --git a/patches/busybox/feature-flash-erase-command.patch b/patches/busybox/feature-flash-erase-command.patch index 8e3204478..eaff49981 100644 --- a/patches/busybox/feature-flash-erase-command.patch +++ b/patches/busybox/feature-flash-erase-command.patch @@ -9,129 +9,83 @@ Add flash_erase command. Renamed flash_eraseall.c to flash_erase.c Removed flash_eraseall command as its functionality is covered with "flash_erase /dev/mtd2 0 0". -diff --git a/include/applets.src.h b/include/applets.src.h -index 267a8f3032c8..b9df5a1b3449 100644 ---- a/include/applets.src.h -+++ b/include/applets.src.h -@@ -135,7 +135,7 @@ IF_FDISK(APPLET(fdisk, BB_DIR_SBIN, BB_SUID_DROP)) - IF_FGCONSOLE(APPLET(fgconsole, BB_DIR_USR_BIN, BB_SUID_DROP)) - /* Benefits from suid root: better access to /dev/BLOCKDEVs: */ - IF_FINDFS(APPLET(findfs, BB_DIR_SBIN, BB_SUID_MAYBE)) --IF_FLASH_ERASEALL(APPLET(flash_eraseall, BB_DIR_USR_SBIN, BB_SUID_DROP)) -+IF_FLASH_ERASE(APPLET(flash_erase, BB_DIR_USR_SBIN, BB_SUID_DROP)) - IF_FLASH_LOCK(APPLET_ODDNAME(flash_lock, flash_lock_unlock, BB_DIR_USR_SBIN, BB_SUID_DROP, flash_lock)) - IF_FLASH_UNLOCK(APPLET_ODDNAME(flash_unlock, flash_lock_unlock, BB_DIR_USR_SBIN, BB_SUID_DROP, flash_unlock)) - IF_FLASHCP(APPLET(flashcp, BB_DIR_USR_SBIN, BB_SUID_DROP)) -diff --git a/miscutils/Config.src b/miscutils/Config.src -index e5bc7013bdf8..4d6425f7652f 100644 ---- a/miscutils/Config.src -+++ b/miscutils/Config.src -@@ -279,12 +279,13 @@ config FLASH_UNLOCK - The flash_unlock binary from mtd-utils as of git head 5ec0c10d0. This - utility unlocks part or all of the flash device. - --config FLASH_ERASEALL -- bool "flash_eraseall" -+config FLASH_ERASE -+ bool "flash_erase" - default n # doesn't build on Ubuntu 8.04 - help -- The flash_eraseall binary from mtd-utils as of git head c4c6a59eb. -- This utility is used to erase the whole MTD device. -+ The flash_erase binary based on mtd-utils as of git head -+ c4c6a59eb. This utility is used to erase specific erase -+ blocks within a MTD device. - - config IONICE - bool "ionice" -diff --git a/miscutils/Kbuild.src b/miscutils/Kbuild.src -index 25382f57efc4..917781898d36 100644 ---- a/miscutils/Kbuild.src -+++ b/miscutils/Kbuild.src -@@ -19,7 +19,7 @@ lib-$(CONFIG_DEVMEM) += devmem.o - lib-$(CONFIG_EJECT) += eject.o - lib-$(CONFIG_FBSPLASH) += fbsplash.o - lib-$(CONFIG_FLASHCP) += flashcp.o --lib-$(CONFIG_FLASH_ERASEALL) += flash_eraseall.o -+lib-$(CONFIG_FLASH_ERASE) += flash_erase.o - lib-$(CONFIG_FLASH_LOCK) += flash_lock_unlock.o - lib-$(CONFIG_FLASH_UNLOCK) += flash_lock_unlock.o - lib-$(CONFIG_IONICE) += ionice.o -diff --git a/miscutils/flash_erase.c b/miscutils/flash_erase.c -new file mode 100644 -index 000000000000..aec6d3c45740 ---- /dev/null +diff --git a/miscutils/flash_eraseall.c b/miscutils/flash_erase.c +similarity index 63% +rename from miscutils/flash_eraseall.c +rename to miscutils/flash_erase.c +index c76d9a6..7030ef8 100644 +--- a/miscutils/flash_eraseall.c +++ b/miscutils/flash_erase.c -@@ -0,0 +1,253 @@ -+/* vi: set sw=4 ts=4: */ +@@ -1,6 +1,5 @@ + /* vi: set sw=4 ts=4: */ +-/* +- * eraseall.c -- erase the whole of a MTD device +/* eraseall.c -- erase the whole of a MTD device -+ * -+ * Ported to busybox from mtd-utils. -+ * -+ * Copyright (C) 2000 Arcom Control System Ltd -+ * -+ * Renamed to flash_eraseall.c -+ * -+ * Licensed under GPLv2 or later, see file LICENSE in this source tree. + * + * Ported to busybox from mtd-utils. + * +@@ -9,26 +8,25 @@ + * Renamed to flash_eraseall.c + * + * Licensed under GPLv2 or later, see file LICENSE in this source tree. + * + * 4/2013 -- Curt Brune + * Renamed to flash_erase.c + * Added flash_erase command. + * Removed flash_eraseall command. + * -+ */ -+ -+//usage:#define flash_eraseall_trivial_usage -+//usage: "[-jNq] MTD_DEVICE" -+//usage:#define flash_eraseall_full_usage "\n\n" -+//usage: "Erase an MTD device\n" -+//usage: "\n -j Format the device for jffs2" -+//usage: "\n -N Don't skip bad blocks" -+//usage: "\n -q Don't display progress messages" -+ -+#include "libbb.h" -+#include -+#include -+ -+#define OPTION_J (1 << 0) -+#define OPTION_N (1 << 1) -+#define OPTION_Q (1 << 2) -+#define IS_NAND (1 << 3) -+ -+/* mtd/jffs2-user.h used to have this atrocity: -+extern int target_endian; -+ -+#define t16(x) ({ __u16 __b = (x); (target_endian==__BYTE_ORDER)?__b:bswap_16(__b); }) -+#define t32(x) ({ __u32 __b = (x); (target_endian==__BYTE_ORDER)?__b:bswap_32(__b); }) -+ -+#define cpu_to_je16(x) ((jint16_t){t16(x)}) -+#define cpu_to_je32(x) ((jint32_t){t32(x)}) -+#define cpu_to_jemode(x) ((jmode_t){t32(x)}) -+ -+#define je16_to_cpu(x) (t16((x).v16)) -+#define je32_to_cpu(x) (t32((x).v32)) -+#define jemode_to_cpu(x) (t32((x).m)) -+ -+but mtd/jffs2-user.h is gone now (at least 2.6.31.6 does not have it anymore) -+*/ -+ -+/* We always use native endianness */ -+#undef cpu_to_je16 -+#undef cpu_to_je32 -+#define cpu_to_je16(v) ((jint16_t){(v)}) -+#define cpu_to_je32(v) ((jint32_t){(v)}) -+ + */ +-//config:config FLASH_ERASEALL +-//config: bool "flash_eraseall (5.9 kb)" ++ ++//config:config FLASH_ERASE ++//config: bool "flash_erase" + //config: default n # doesn't build on Ubuntu 8.04 + //config: help +-//config: The flash_eraseall binary from mtd-utils as of git head c4c6a59eb. +-//config: This utility is used to erase the whole MTD device. ++//config: The flash_erase binary based on mtd-utils as of git head ++//config: c4c6a59eb. This utility is used to erase specific erase ++//config: blocks within a MTD device. + +-//applet:IF_FLASH_ERASEALL(APPLET(flash_eraseall, BB_DIR_USR_SBIN, BB_SUID_DROP)) +-/* not NOEXEC: if flash operation stalls, use less memory in "hung" process */ ++//applet:IF_FLASH_ERASE(APPLET(flash_erase, BB_DIR_USR_SBIN, BB_SUID_DROP)) + +-//kbuild:lib-$(CONFIG_FLASH_ERASEALL) += flash_eraseall.o +- +-//usage:#define flash_eraseall_trivial_usage +-//usage: "[-jNq] MTD_DEVICE" +-//usage:#define flash_eraseall_full_usage "\n\n" +-//usage: "Erase an MTD device\n" +-//usage: "\n -j Format the device for jffs2" +-//usage: "\n -N Don't skip bad blocks" +-//usage: "\n -q Don't display progress messages" ++//kbuild:lib-$(CONFIG_FLASH_ERASE) += flash_erase.o + + #include "libbb.h" + #include +@@ -62,30 +60,51 @@ but mtd/jffs2-user.h is gone now (at least 2.6.31.6 does not have it anymore) + #define cpu_to_je16(v) ((jint16_t){(v)}) + #define cpu_to_je32(v) ((jint32_t){(v)}) + +-static void show_progress(mtd_info_t *meminfo, erase_info_t *erase) +//static void show_progress(mtd_info_t *meminfo, erase_info_t *erase) +static void show_progress(unsigned erasesize, unsigned current, unsigned start, unsigned total) -+{ -+ printf("\rErasing %u Kibyte @ %x - %2u%% complete.", + { + printf("\rErasing %u Kibyte @ %x - %2u%% complete.", +- (unsigned)meminfo->erasesize / 1024, +- erase->start, +- (unsigned) ((unsigned long long) erase->start * 100 / meminfo->size) + erasesize / 1024, + current, + (unsigned) (((unsigned long long)(current - start) * 100) / total) -+ ); -+ fflush_all(); -+} -+ + ); + fflush_all(); + } + +-int flash_eraseall_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; +-int flash_eraseall_main(int argc UNUSED_PARAM, char **argv) +//usage:#define flash_erase_trivial_usage +//usage: "[-jq] MTD_DEVICE START_OFFSET BLOCK_COUNT" +//usage:#define flash_erase_full_usage "\n\n" @@ -142,19 +96,21 @@ index 000000000000..aec6d3c45740 + +int flash_erase_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; +int flash_erase_main(int argc, char **argv) -+{ -+ struct jffs2_unknown_node cleanmarker; -+ mtd_info_t meminfo; -+ int fd, clmpos, clmlen; -+ erase_info_t erase; -+ struct stat st; + { + struct jffs2_unknown_node cleanmarker; + mtd_info_t meminfo; + int fd, clmpos, clmlen; + erase_info_t erase; + struct stat st; +- unsigned int flags; +- char *mtd_name; + unsigned n_erase_bytes; + unsigned flags; + char* mtd_name; + unsigned start, n_blocks; -+ -+ opt_complementary = "=3"; -+ flags = getopt32(argv, "jNq"); + +- flags = getopt32(argv, "^" "jNq" "\0" "=1"); ++ flags = getopt32(argv, "^" "jNq" "\0" "=3"); + + argc -= optind; + argv += optind; @@ -166,17 +122,15 @@ index 000000000000..aec6d3c45740 + + /* n_blocks parameter */ + n_blocks = xstrtoul(argv[2], 0); -+ -+ fd = xopen(mtd_name, O_RDWR); -+ fstat(fd, &st); -+ if (!S_ISCHR(st.st_mode)) -+ bb_error_msg_and_die("%s: not a char device", mtd_name); -+ -+ xioctl(fd, MEMGETINFO, &meminfo); -+ erase.length = meminfo.erasesize; -+ if (meminfo.type == MTD_NANDFLASH) -+ flags |= IS_NAND; -+ + +- mtd_name = argv[optind]; + fd = xopen(mtd_name, O_RDWR); + fstat(fd, &st); + if (!S_ISCHR(st.st_mode)) +@@ -96,12 +115,30 @@ int flash_eraseall_main(int argc UNUSED_PARAM, char **argv) + if (meminfo.type == MTD_NANDFLASH) + flags |= IS_NAND; + + if (n_blocks == 0) { + /* erase entire device */ + n_erase_bytes = meminfo.size; @@ -195,337 +149,64 @@ index 000000000000..aec6d3c45740 + if ((start + n_erase_bytes) > meminfo.size) + bb_error_msg_and_die("%s: erase region is outside of device", mtd_name); + -+ clmpos = 0; -+ clmlen = 8; -+ if (flags & OPTION_J) { -+ uint32_t *crc32_table; -+ + clmpos = 0; + clmlen = 8; + if (flags & OPTION_J) { + uint32_t *crc32_table; + +- crc32_table = crc32_new_table_le(); + crc32_table = crc32_filltable(NULL, 0); -+ -+ cleanmarker.magic = cpu_to_je16(JFFS2_MAGIC_BITMASK); -+ cleanmarker.nodetype = cpu_to_je16(JFFS2_NODETYPE_CLEANMARKER); -+ if (!(flags & IS_NAND)) -+ cleanmarker.totlen = cpu_to_je32(sizeof(struct jffs2_unknown_node)); -+ else { -+ struct nand_oobinfo oobinfo; -+ -+ xioctl(fd, MEMGETOOBSEL, &oobinfo); -+ -+ /* Check for autoplacement */ -+ if (oobinfo.useecc == MTD_NANDECC_AUTOPLACE) { -+ /* Get the position of the free bytes */ -+ clmpos = oobinfo.oobfree[0][0]; -+ clmlen = oobinfo.oobfree[0][1]; -+ if (clmlen > 8) -+ clmlen = 8; -+ if (clmlen == 0) + + cleanmarker.magic = cpu_to_je16(JFFS2_MAGIC_BITMASK); + cleanmarker.nodetype = cpu_to_je16(JFFS2_NODETYPE_CLEANMARKER); +@@ -120,7 +157,7 @@ int flash_eraseall_main(int argc UNUSED_PARAM, char **argv) + if (clmlen > 8) + clmlen = 8; + if (clmlen == 0) +- bb_simple_error_msg_and_die("autoplacement selected and no empty space in oob"); + bb_error_msg_and_die("autoplacement selected and no empty space in oob"); -+ } else { -+ /* Legacy mode */ -+ switch (meminfo.oobsize) { -+ case 8: -+ clmpos = 6; -+ clmlen = 2; -+ break; -+ case 16: -+ clmpos = 8; -+ /*clmlen = 8;*/ -+ break; -+ case 64: -+ clmpos = 16; -+ /*clmlen = 8;*/ -+ break; -+ } -+ } -+ cleanmarker.totlen = cpu_to_je32(8); -+ } -+ -+ cleanmarker.hdr_crc = cpu_to_je32( -+ crc32_block_endian0(0, &cleanmarker, sizeof(struct jffs2_unknown_node) - 4, crc32_table) -+ ); -+ } -+ -+ /* Don't want to destroy progress indicator by bb_error_msg's */ -+ applet_name = xasprintf("\n%s: %s", applet_name, mtd_name); -+ + } else { + /* Legacy mode */ + switch (meminfo.oobsize) { +@@ -149,7 +186,7 @@ int flash_eraseall_main(int argc UNUSED_PARAM, char **argv) + /* Don't want to destroy progress indicator by bb_error_msg's */ + applet_name = xasprintf("\n%s: %s", applet_name, mtd_name); + +- for (erase.start = 0; erase.start < meminfo.size; + for (erase.start = start; erase.start < (start + n_erase_bytes); -+ erase.start += meminfo.erasesize) { -+ if (!(flags & OPTION_N)) { -+ int ret; -+ loff_t offset = erase.start; -+ -+ ret = ioctl(fd, MEMGETBADBLOCK, &offset); -+ if (ret > 0) { -+ if (!(flags & OPTION_Q)) -+ printf("\nSkipping bad block at 0x%08x\n", erase.start); -+ continue; -+ } -+ if (ret < 0) { -+ /* Black block table is not available on certain flash -+ * types e.g. NOR -+ */ -+ if (errno == EOPNOTSUPP) { -+ flags |= OPTION_N; -+ if (flags & IS_NAND) + erase.start += meminfo.erasesize) { + if (!(flags & OPTION_N)) { + int ret; +@@ -168,15 +205,15 @@ int flash_eraseall_main(int argc UNUSED_PARAM, char **argv) + if (errno == EOPNOTSUPP) { + flags |= OPTION_N; + if (flags & IS_NAND) +- bb_simple_error_msg_and_die("bad block check not available"); + bb_error_msg_and_die("bad block check not available"); -+ } else { + } else { +- bb_simple_perror_msg_and_die("MEMGETBADBLOCK error"); + bb_perror_msg_and_die("MEMGETBADBLOCK error"); -+ } -+ } -+ } -+ -+ if (!(flags & OPTION_Q)) + } + } + } + + if (!(flags & OPTION_Q)) +- show_progress(&meminfo, &erase); + show_progress(meminfo.erasesize, erase.start, start, n_erase_bytes); -+ -+ xioctl(fd, MEMERASE, &erase); -+ -+ /* format for JFFS2 ? */ -+ if (!(flags & OPTION_J)) -+ continue; -+ -+ /* write cleanmarker */ -+ if (flags & IS_NAND) { -+ struct mtd_oob_buf oob; -+ -+ oob.ptr = (unsigned char *) &cleanmarker; -+ oob.start = erase.start + clmpos; -+ oob.length = clmlen; -+ xioctl(fd, MEMWRITEOOB, &oob); -+ } else { -+ xlseek(fd, erase.start, SEEK_SET); -+ /* if (lseek(fd, erase.start, SEEK_SET) < 0) { -+ bb_perror_msg("MTD %s failure", "seek"); -+ continue; -+ } */ -+ xwrite(fd, &cleanmarker, sizeof(cleanmarker)); -+ /* if (write(fd, &cleanmarker, sizeof(cleanmarker)) != sizeof(cleanmarker)) { -+ bb_perror_msg("MTD %s failure", "write"); -+ continue; -+ } */ -+ } -+ if (!(flags & OPTION_Q)) -+ printf(" Cleanmarker written at %x.", erase.start); -+ } -+ if (!(flags & OPTION_Q)) { + + xioctl(fd, MEMERASE, &erase); + +@@ -208,11 +245,12 @@ int flash_eraseall_main(int argc UNUSED_PARAM, char **argv) + printf(" Cleanmarker written at %x.", erase.start); + } + if (!(flags & OPTION_Q)) { +- show_progress(&meminfo, &erase); + show_progress(meminfo.erasesize, erase.start, start, n_erase_bytes); -+ bb_putchar('\n'); -+ } -+ -+ if (ENABLE_FEATURE_CLEAN_UP) -+ close(fd); -+ return EXIT_SUCCESS; + bb_putchar('\n'); + } + + if (ENABLE_FEATURE_CLEAN_UP) + close(fd); + return EXIT_SUCCESS; + -+} -diff --git a/miscutils/flash_eraseall.c b/miscutils/flash_eraseall.c -deleted file mode 100644 -index d95d214d914c..000000000000 ---- a/miscutils/flash_eraseall.c -+++ /dev/null -@@ -1,207 +0,0 @@ --/* vi: set sw=4 ts=4: */ --/* eraseall.c -- erase the whole of a MTD device -- * -- * Ported to busybox from mtd-utils. -- * -- * Copyright (C) 2000 Arcom Control System Ltd -- * -- * Renamed to flash_eraseall.c -- * -- * Licensed under GPLv2 or later, see file LICENSE in this source tree. -- */ -- --//usage:#define flash_eraseall_trivial_usage --//usage: "[-jNq] MTD_DEVICE" --//usage:#define flash_eraseall_full_usage "\n\n" --//usage: "Erase an MTD device\n" --//usage: "\n -j Format the device for jffs2" --//usage: "\n -N Don't skip bad blocks" --//usage: "\n -q Don't display progress messages" -- --#include "libbb.h" --#include --#include -- --#define OPTION_J (1 << 0) --#define OPTION_N (1 << 1) --#define OPTION_Q (1 << 2) --#define IS_NAND (1 << 3) -- --/* mtd/jffs2-user.h used to have this atrocity: --extern int target_endian; -- --#define t16(x) ({ __u16 __b = (x); (target_endian==__BYTE_ORDER)?__b:bswap_16(__b); }) --#define t32(x) ({ __u32 __b = (x); (target_endian==__BYTE_ORDER)?__b:bswap_32(__b); }) -- --#define cpu_to_je16(x) ((jint16_t){t16(x)}) --#define cpu_to_je32(x) ((jint32_t){t32(x)}) --#define cpu_to_jemode(x) ((jmode_t){t32(x)}) -- --#define je16_to_cpu(x) (t16((x).v16)) --#define je32_to_cpu(x) (t32((x).v32)) --#define jemode_to_cpu(x) (t32((x).m)) -- --but mtd/jffs2-user.h is gone now (at least 2.6.31.6 does not have it anymore) --*/ -- --/* We always use native endianness */ --#undef cpu_to_je16 --#undef cpu_to_je32 --#define cpu_to_je16(v) ((jint16_t){(v)}) --#define cpu_to_je32(v) ((jint32_t){(v)}) -- --static void show_progress(mtd_info_t *meminfo, erase_info_t *erase) --{ -- printf("\rErasing %u Kibyte @ %x - %2u%% complete.", -- (unsigned)meminfo->erasesize / 1024, -- erase->start, -- (unsigned) ((unsigned long long) erase->start * 100 / meminfo->size) -- ); -- fflush_all(); --} -- --int flash_eraseall_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; --int flash_eraseall_main(int argc UNUSED_PARAM, char **argv) --{ -- struct jffs2_unknown_node cleanmarker; -- mtd_info_t meminfo; -- int fd, clmpos, clmlen; -- erase_info_t erase; -- struct stat st; -- unsigned int flags; -- char *mtd_name; -- -- opt_complementary = "=1"; -- flags = getopt32(argv, "jNq"); -- -- mtd_name = argv[optind]; -- fd = xopen(mtd_name, O_RDWR); -- fstat(fd, &st); -- if (!S_ISCHR(st.st_mode)) -- bb_error_msg_and_die("%s: not a char device", mtd_name); -- -- xioctl(fd, MEMGETINFO, &meminfo); -- erase.length = meminfo.erasesize; -- if (meminfo.type == MTD_NANDFLASH) -- flags |= IS_NAND; -- -- clmpos = 0; -- clmlen = 8; -- if (flags & OPTION_J) { -- uint32_t *crc32_table; -- -- crc32_table = crc32_filltable(NULL, 0); -- -- cleanmarker.magic = cpu_to_je16(JFFS2_MAGIC_BITMASK); -- cleanmarker.nodetype = cpu_to_je16(JFFS2_NODETYPE_CLEANMARKER); -- if (!(flags & IS_NAND)) -- cleanmarker.totlen = cpu_to_je32(sizeof(struct jffs2_unknown_node)); -- else { -- struct nand_oobinfo oobinfo; -- -- xioctl(fd, MEMGETOOBSEL, &oobinfo); -- -- /* Check for autoplacement */ -- if (oobinfo.useecc == MTD_NANDECC_AUTOPLACE) { -- /* Get the position of the free bytes */ -- clmpos = oobinfo.oobfree[0][0]; -- clmlen = oobinfo.oobfree[0][1]; -- if (clmlen > 8) -- clmlen = 8; -- if (clmlen == 0) -- bb_error_msg_and_die("autoplacement selected and no empty space in oob"); -- } else { -- /* Legacy mode */ -- switch (meminfo.oobsize) { -- case 8: -- clmpos = 6; -- clmlen = 2; -- break; -- case 16: -- clmpos = 8; -- /*clmlen = 8;*/ -- break; -- case 64: -- clmpos = 16; -- /*clmlen = 8;*/ -- break; -- } -- } -- cleanmarker.totlen = cpu_to_je32(8); -- } -- -- cleanmarker.hdr_crc = cpu_to_je32( -- crc32_block_endian0(0, &cleanmarker, sizeof(struct jffs2_unknown_node) - 4, crc32_table) -- ); -- } -- -- /* Don't want to destroy progress indicator by bb_error_msg's */ -- applet_name = xasprintf("\n%s: %s", applet_name, mtd_name); -- -- for (erase.start = 0; erase.start < meminfo.size; -- erase.start += meminfo.erasesize) { -- if (!(flags & OPTION_N)) { -- int ret; -- loff_t offset = erase.start; -- -- ret = ioctl(fd, MEMGETBADBLOCK, &offset); -- if (ret > 0) { -- if (!(flags & OPTION_Q)) -- printf("\nSkipping bad block at 0x%08x\n", erase.start); -- continue; -- } -- if (ret < 0) { -- /* Black block table is not available on certain flash -- * types e.g. NOR -- */ -- if (errno == EOPNOTSUPP) { -- flags |= OPTION_N; -- if (flags & IS_NAND) -- bb_error_msg_and_die("bad block check not available"); -- } else { -- bb_perror_msg_and_die("MEMGETBADBLOCK error"); -- } -- } -- } -- -- if (!(flags & OPTION_Q)) -- show_progress(&meminfo, &erase); -- -- xioctl(fd, MEMERASE, &erase); -- -- /* format for JFFS2 ? */ -- if (!(flags & OPTION_J)) -- continue; -- -- /* write cleanmarker */ -- if (flags & IS_NAND) { -- struct mtd_oob_buf oob; -- -- oob.ptr = (unsigned char *) &cleanmarker; -- oob.start = erase.start + clmpos; -- oob.length = clmlen; -- xioctl(fd, MEMWRITEOOB, &oob); -- } else { -- xlseek(fd, erase.start, SEEK_SET); -- /* if (lseek(fd, erase.start, SEEK_SET) < 0) { -- bb_perror_msg("MTD %s failure", "seek"); -- continue; -- } */ -- xwrite(fd, &cleanmarker, sizeof(cleanmarker)); -- /* if (write(fd, &cleanmarker, sizeof(cleanmarker)) != sizeof(cleanmarker)) { -- bb_perror_msg("MTD %s failure", "write"); -- continue; -- } */ -- } -- if (!(flags & OPTION_Q)) -- printf(" Cleanmarker written at %x.", erase.start); -- } -- if (!(flags & OPTION_Q)) { -- show_progress(&meminfo, &erase); -- bb_putchar('\n'); -- } -- -- if (ENABLE_FEATURE_CLEAN_UP) -- close(fd); -- return EXIT_SUCCESS; --} + } diff --git a/patches/busybox/feature-iorw-command.patch b/patches/busybox/feature-iorw-command.patch index 0818fe813..59f34e3af 100644 --- a/patches/busybox/feature-iorw-command.patch +++ b/patches/busybox/feature-iorw-command.patch @@ -7,54 +7,12 @@ SPDX-License-Identifier: GPL-2.0 Add the iorw command, which allows root to peek/poke arbitrary memory locations. -diff --git a/include/applets.src.h b/include/applets.src.h -index caf3c8259eae..267a8f3032c8 100644 ---- a/include/applets.src.h -+++ b/include/applets.src.h -@@ -170,6 +170,7 @@ IF_INETD(APPLET(inetd, BB_DIR_USR_SBIN, BB_SUID_DROP)) - IF_INOTIFYD(APPLET(inotifyd, BB_DIR_SBIN, BB_SUID_DROP)) - IF_INSTALL(APPLET(install, BB_DIR_USR_BIN, BB_SUID_DROP)) - IF_IONICE(APPLET(ionice, BB_DIR_BIN, BB_SUID_DROP)) -+IF_IORW(APPLET(iorw, BB_DIR_USR_SBIN, BB_SUID_DROP)) - #if ENABLE_FEATURE_IP_ADDRESS \ - || ENABLE_FEATURE_IP_ROUTE \ - || ENABLE_FEATURE_IP_LINK \ -diff --git a/miscutils/Config.src b/miscutils/Config.src -index 682173640853..e5bc7013bdf8 100644 ---- a/miscutils/Config.src -+++ b/miscutils/Config.src -@@ -375,6 +375,13 @@ config FEATURE_HDPARM_HDIO_GETSET_DMA - help - Enables the 'hdparm -d' option to get/set using_dma flag. - -+config IORW -+ bool "iorw" -+ default n -+ help -+ Enables the 'iorw' command, a way to peek/poke arbitrary -+ memory mapped locations. -+ - config MAKEDEVS - bool "makedevs" - default y -diff --git a/miscutils/Kbuild.src b/miscutils/Kbuild.src -index 5d42ede9f252..25382f57efc4 100644 ---- a/miscutils/Kbuild.src -+++ b/miscutils/Kbuild.src -@@ -24,6 +24,7 @@ lib-$(CONFIG_FLASH_LOCK) += flash_lock_unlock.o - lib-$(CONFIG_FLASH_UNLOCK) += flash_lock_unlock.o - lib-$(CONFIG_IONICE) += ionice.o - lib-$(CONFIG_HDPARM) += hdparm.o -+lib-$(CONFIG_IORW) += iorw.o - lib-$(CONFIG_INOTIFYD) += inotifyd.o - - ifeq ($(CONFIG_FEATURE_LAST_FANCY),y) diff --git a/miscutils/iorw.c b/miscutils/iorw.c new file mode 100644 -index 000000000000..c397159d89c7 +index 0000000..93ff43c --- /dev/null +++ b/miscutils/iorw.c -@@ -0,0 +1,255 @@ +@@ -0,0 +1,265 @@ +/* +* Author: Curt Brune, curt@cumulusnetworks.com +* @@ -76,6 +34,16 @@ index 000000000000..c397159d89c7 +* Foundation, Inc., 59 Temple Place, Suite 330, Boston, +* MA 02111-1307 USA +*/ ++//config:config IORW ++//config: bool "iorw" ++//config: default n ++//config: help ++//config: Enables the 'iorw' command, a way to peek/poke arbitrary ++//config: memory mapped locations. ++ ++//applet:IF_IORW(APPLET(iorw, BB_DIR_USR_SBIN, BB_SUID_DROP)) ++ ++//kbuild:lib-$(CONFIG_IORW) += iorw.o + +#include "libbb.h" +#include diff --git a/patches/busybox/feature-onie-syseeprom-command.patch b/patches/busybox/feature-onie-syseeprom-command.patch index 88bbcf3ae..d57dfc566 100644 --- a/patches/busybox/feature-onie-syseeprom-command.patch +++ b/patches/busybox/feature-onie-syseeprom-command.patch @@ -78,18 +78,6 @@ index 0000000..5fb4641 +int eeprom_write_byte(struct eeprom *e, __u16 mem_addr, __u8 data); + +#endif -diff --git a/include/applets.src.h b/include/applets.src.h -index b9df5a1..71b8cbd 100644 ---- a/include/applets.src.h -+++ b/include/applets.src.h -@@ -344,6 +344,7 @@ IF_WC(APPLET(wc, BB_DIR_USR_BIN, BB_SUID_DROP)) - IF_WHOAMI(APPLET_NOFORK(whoami, whoami, BB_DIR_USR_BIN, BB_SUID_DROP, whoami)) - IF_YES(APPLET_NOFORK(yes, yes, BB_DIR_USR_BIN, BB_SUID_DROP, yes)) - IF_ZCIP(APPLET(zcip, BB_DIR_SBIN, BB_SUID_DROP)) -+IF_SYS_EEPROM(APPLET_ODDNAME(onie-syseeprom, onie_syseeprom, BB_DIR_USR_BIN, BB_SUID_DROP, onie_syseeprom)) - - #if !defined(PROTOTYPES) && !defined(NAME_MAIN) && !defined(MAKE_USAGE) \ - && !defined(MAKE_LINKS) && !defined(MAKE_SUID) diff --git a/include/i2c-dev.h b/include/i2c-dev.h new file mode 100644 index 0000000..23f7c2c @@ -802,12 +790,12 @@ index 0000000..ccc0965 + } +} diff --git a/miscutils/Config.src b/miscutils/Config.src -index 4d6425f..cdae45b 100644 +index d10b00b..7f04b9b 100644 --- a/miscutils/Config.src +++ b/miscutils/Config.src -@@ -546,4 +546,108 @@ config WATCHDOG - certain amount of time, the watchdog device assumes the system has - hung, and will cause the hardware to reboot. +@@ -7,4 +7,108 @@ menu "Miscellaneous Utilities" + + INSERT +config SYS_EEPROM + bool "ONIE system EEPROM" @@ -914,17 +902,6 @@ index 4d6425f..cdae45b 100644 +endmenu + endmenu -diff --git a/miscutils/Kbuild.src b/miscutils/Kbuild.src -index 9177818..a78273d 100644 ---- a/miscutils/Kbuild.src -+++ b/miscutils/Kbuild.src -@@ -51,3 +51,6 @@ lib-$(CONFIG_TTYSIZE) += ttysize.o - lib-$(CONFIG_UBOOT_ENV) += fw_env.o - lib-$(CONFIG_VOLNAME) += volname.o - lib-$(CONFIG_WATCHDOG) += watchdog.o -+lib-$(CONFIG_SYS_EEPROM) += sys_eeprom.o onie_tlvinfo.o -+lib-$(CONFIG_SYS_EEPROM_DEVICE_I2C) += sys_eeprom_i2c.o 24cXX.o -+lib-$(CONFIG_SYS_EEPROM_DEVICE_MTD) += sys_eeprom_mtd.o diff --git a/miscutils/onie_tlvinfo.c b/miscutils/onie_tlvinfo.c new file mode 100644 index 0000000..26b6ec5 @@ -1687,10 +1664,16 @@ index 0000000..26b6ec5 +} diff --git a/miscutils/sys_eeprom.c b/miscutils/sys_eeprom.c new file mode 100644 -index 0000000..a24d6bb +index 0000000..65ae160 --- /dev/null +++ b/miscutils/sys_eeprom.c -@@ -0,0 +1,188 @@ +@@ -0,0 +1,194 @@ ++//applet:IF_SYS_EEPROM(APPLET_ODDNAME(onie-syseeprom, onie_syseeprom, BB_DIR_USR_BIN, BB_SUID_DROP, onie_syseeprom)) ++ ++//kbuild:lib-$(CONFIG_SYS_EEPROM) += sys_eeprom.o onie_tlvinfo.o ++//kbuild:lib-$(CONFIG_SYS_EEPROM_DEVICE_I2C) += sys_eeprom_i2c.o 24cXX.o ++//kbuild:lib-$(CONFIG_SYS_EEPROM_DEVICE_MTD) += sys_eeprom_mtd.o ++ +#include "libbb.h" +#include "onie_tlvinfo.h" +#include @@ -1711,7 +1694,7 @@ index 0000000..a24d6bb +//usage: "\n If no value, TLV is deleted." +//usage: "\n" + -+cmd_usage() ++static void cmd_usage(void) +{ + static const char *usage = + "Display and program the system EEPROM data block.\n" diff --git a/patches/busybox/feature-onie-syseeprom-disk.patch b/patches/busybox/feature-onie-syseeprom-disk.patch index 5134d02c0..6ff5ed08e 100644 --- a/patches/busybox/feature-onie-syseeprom-disk.patch +++ b/patches/busybox/feature-onie-syseeprom-disk.patch @@ -1,10 +1,10 @@ Support "eeprom" on disk for platforms without a real eeprom. diff --git a/miscutils/Config.src b/miscutils/Config.src -index cdae45b750b1..290046a217c2 100644 +index 7f04b9b..f0d2fc6 100644 --- a/miscutils/Config.src +++ b/miscutils/Config.src -@@ -568,6 +568,9 @@ config SYS_EEPROM_DEVICE_I2C +@@ -29,6 +29,9 @@ config SYS_EEPROM_DEVICE_I2C config SYS_EEPROM_DEVICE_MTD bool "MTD" @@ -14,7 +14,7 @@ index cdae45b750b1..290046a217c2 100644 endchoice config SYS_EEPROM_I2C_DEVICE -@@ -624,8 +627,16 @@ config SYS_EEPROM_MTD_DEVICE +@@ -85,8 +88,16 @@ config SYS_EEPROM_MTD_DEVICE help MTD device name of the eeprom. e.g., /dev/mtd-hw-info. @@ -31,7 +31,7 @@ index cdae45b750b1..290046a217c2 100644 range 0 65536 default 0 depends on SYS_EEPROM -@@ -634,7 +645,9 @@ config SYS_EEPROM_OFFSET +@@ -95,7 +106,9 @@ config SYS_EEPROM_OFFSET config SYS_EEPROM_SIZE int "usable eeprom size in byte" @@ -41,7 +41,7 @@ index cdae45b750b1..290046a217c2 100644 default 0 depends on SYS_EEPROM help -@@ -642,6 +655,7 @@ config SYS_EEPROM_SIZE +@@ -103,6 +116,7 @@ config SYS_EEPROM_SIZE config SYS_EEPROM_MAX_SIZE int "total size in byte" @@ -49,21 +49,14 @@ index cdae45b750b1..290046a217c2 100644 range 256 65536 default 2048 depends on SYS_EEPROM -diff --git a/miscutils/Kbuild.src b/miscutils/Kbuild.src -index a78273de6ca7..8ff4e9853415 100644 ---- a/miscutils/Kbuild.src -+++ b/miscutils/Kbuild.src -@@ -54,3 +54,4 @@ lib-$(CONFIG_WATCHDOG) += watchdog.o - lib-$(CONFIG_SYS_EEPROM) += sys_eeprom.o onie_tlvinfo.o - lib-$(CONFIG_SYS_EEPROM_DEVICE_I2C) += sys_eeprom_i2c.o 24cXX.o - lib-$(CONFIG_SYS_EEPROM_DEVICE_MTD) += sys_eeprom_mtd.o -+lib-$(CONFIG_SYS_EEPROM_DEVICE_DISK) += sys_eeprom_disk.o diff --git a/miscutils/sys_eeprom_disk.c b/miscutils/sys_eeprom_disk.c new file mode 100644 -index 000000000000..440b490b4824 +index 0000000..0035fba --- /dev/null +++ b/miscutils/sys_eeprom_disk.c -@@ -0,0 +1,112 @@ +@@ -0,0 +1,114 @@ ++//kbuild:lib-$(CONFIG_SYS_EEPROM_DEVICE_DISK) += sys_eeprom_disk.o ++ +#include "libbb.h" +#include "onie_tlvinfo.h" +#include "sys_eeprom.h" diff --git a/patches/busybox/feature-onie-syseeprom-sysfs.patch b/patches/busybox/feature-onie-syseeprom-sysfs.patch index 868d90060..2cab06368 100644 --- a/patches/busybox/feature-onie-syseeprom-sysfs.patch +++ b/patches/busybox/feature-onie-syseeprom-sysfs.patch @@ -1,7 +1,7 @@ Support for reading and writing sysfs based eeprom entries diff --git a/include/onie_tlvinfo.h b/include/onie_tlvinfo.h -index b602736287ec..2713b8602443 100644 +index 23ec9c5..baa39ab 100644 --- a/include/onie_tlvinfo.h +++ b/include/onie_tlvinfo.h @@ -143,6 +143,7 @@ static inline const char* tlv_type2name(u_int8_t type) @@ -13,10 +13,10 @@ index b602736287ec..2713b8602443 100644 #define SYS_EEPROM_OFFSET CONFIG_SYS_EEPROM_OFFSET diff --git a/miscutils/Config.src b/miscutils/Config.src -index 290046a217c2..e97b0c3c24d0 100644 +index f0d2fc6..d102de3 100644 --- a/miscutils/Config.src +++ b/miscutils/Config.src -@@ -571,6 +571,9 @@ config SYS_EEPROM_DEVICE_MTD +@@ -32,6 +32,9 @@ config SYS_EEPROM_DEVICE_MTD config SYS_EEPROM_DEVICE_DISK bool "disk (not recommended)" @@ -26,7 +26,7 @@ index 290046a217c2..e97b0c3c24d0 100644 endchoice config SYS_EEPROM_I2C_DEVICE -@@ -634,6 +637,13 @@ config SYS_EEPROM_DISK_DEVICE +@@ -95,6 +98,13 @@ config SYS_EEPROM_DISK_DEVICE help device name of the on-disk "eeprom". e.g., /dev/sda. @@ -40,21 +40,14 @@ index 290046a217c2..e97b0c3c24d0 100644 config SYS_EEPROM_OFFSET int "offset" range 0 0 if SYS_EEPROM_DEVICE_DISK -diff --git a/miscutils/Kbuild.src b/miscutils/Kbuild.src -index 8ff4e9853415..72ddcd1ce9bf 100644 ---- a/miscutils/Kbuild.src -+++ b/miscutils/Kbuild.src -@@ -55,3 +55,4 @@ lib-$(CONFIG_SYS_EEPROM) += sys_eeprom.o onie_tlvinfo.o - lib-$(CONFIG_SYS_EEPROM_DEVICE_I2C) += sys_eeprom_i2c.o 24cXX.o - lib-$(CONFIG_SYS_EEPROM_DEVICE_MTD) += sys_eeprom_mtd.o - lib-$(CONFIG_SYS_EEPROM_DEVICE_DISK) += sys_eeprom_disk.o -+lib-$(CONFIG_SYS_EEPROM_SYSFS_FILE) += sys_eeprom_sysfs_file.o diff --git a/miscutils/sys_eeprom_sysfs_file.c b/miscutils/sys_eeprom_sysfs_file.c new file mode 100644 -index 000000000000..68f33c9cd51b +index 0000000..9e61d67 --- /dev/null +++ b/miscutils/sys_eeprom_sysfs_file.c -@@ -0,0 +1,85 @@ +@@ -0,0 +1,87 @@ ++//kbuild:lib-$(CONFIG_SYS_EEPROM_SYSFS_FILE) += sys_eeprom_sysfs_file.o ++ +#include "libbb.h" +#include "onie_tlvinfo.h" +#include "sys_eeprom.h" diff --git a/patches/busybox/fw_env-modify-crc-size-in-getenvsize.patch b/patches/busybox/fw_env-modify-crc-size-in-getenvsize.patch index 241a4fb81..885aec265 100644 --- a/patches/busybox/fw_env-modify-crc-size-in-getenvsize.patch +++ b/patches/busybox/fw_env-modify-crc-size-in-getenvsize.patch @@ -13,10 +13,10 @@ in other machines, so modify it with sizeof(uint32_t) Signed-off-by: Zhao Qiang diff --git a/miscutils/fw_env.c b/miscutils/fw_env.c -index f6f0d2743c36..777c3697e4a5 100644 +index 93ea868..b988c9c 100644 --- a/miscutils/fw_env.c +++ b/miscutils/fw_env.c -@@ -122,7 +122,7 @@ static int get_config (const char *); +@@ -133,7 +133,7 @@ static int get_config (const char *); #endif static inline ulong getenvsize (void) { diff --git a/patches/busybox/series b/patches/busybox/series index 097b3d93f..ea895b328 100644 --- a/patches/busybox/series +++ b/patches/busybox/series @@ -1,9 +1,8 @@ -# This series applies on GIT commit 6bbd082c82c805ed17d4270ed18e41b5545c189b +# This series applies on busybox 1.38.0 (upstream release tarball) gitignore.patch u-boot-env-tools.patch fw_env-modify-crc-size-in-getenvsize.patch feature-iorw-command.patch -dhcp-additional-options.patch feature-flash-erase-command.patch feature-onie-syseeprom-command.patch feature-onie-syseeprom-disk.patch diff --git a/patches/busybox/u-boot-env-tools.patch b/patches/busybox/u-boot-env-tools.patch index 8d35f10ab..c238589f6 100644 --- a/patches/busybox/u-boot-env-tools.patch +++ b/patches/busybox/u-boot-env-tools.patch @@ -4,22 +4,9 @@ Copyright (C) 2013 Curt Brune SPDX-License-Identifier: GPL-2.0 -diff --git a/include/applets.src.h b/include/applets.src.h -index 6e1b02fc399c..caf3c8259eae 100644 ---- a/include/applets.src.h -+++ b/include/applets.src.h -@@ -321,6 +321,8 @@ IF_TRUE(APPLET_NOFORK(true, true, BB_DIR_BIN, BB_SUID_DROP, true)) - IF_TTY(APPLET(tty, BB_DIR_USR_BIN, BB_SUID_DROP)) - IF_TTYSIZE(APPLET(ttysize, BB_DIR_USR_BIN, BB_SUID_DROP)) - IF_TUNCTL(APPLET(tunctl, BB_DIR_SBIN, BB_SUID_DROP)) -+IF_UBOOT_ENV(APPLET(fw_setenv, BB_DIR_USR_SBIN, BB_SUID_DROP)) -+IF_UBOOT_ENV(APPLET(fw_printenv, BB_DIR_USR_SBIN, BB_SUID_DROP)) - IF_UDHCPC(APPLET(udhcpc, BB_DIR_SBIN, BB_SUID_DROP)) - IF_UDHCPD(APPLET(udhcpd, BB_DIR_USR_SBIN, BB_SUID_DROP)) - IF_UDPSVD(APPLET_ODDNAME(udpsvd, tcpudpsvd, BB_DIR_USR_BIN, BB_SUID_DROP, udpsvd)) diff --git a/include/fw_env.h b/include/fw_env.h new file mode 100644 -index 000000000000..ffec527b4f2e +index 0000000..ffec527 --- /dev/null +++ b/include/fw_env.h @@ -0,0 +1,52 @@ @@ -75,41 +62,12 @@ index 000000000000..ffec527b4f2e +extern int fw_printenv(int argc, char *argv[]); +extern char *fw_getenv (char *name); +extern int fw_setenv (int argc, char *argv[]); -diff --git a/miscutils/Config.src b/miscutils/Config.src -index 06f1c52ba053..682173640853 100644 ---- a/miscutils/Config.src -+++ b/miscutils/Config.src -@@ -513,6 +513,13 @@ config TTYSIZE - error, but returns default 80x24. - Usage in shell scripts: width=`ttysize w`. - -+config UBOOT_ENV -+ bool "uboot environment" -+ default n -+ help -+ Enables setting and printing u-boot environment varaibles. -+ The fw_printenv and fw_setenv tools are included. -+ - config VOLNAME - bool "volname" - default y -diff --git a/miscutils/Kbuild.src b/miscutils/Kbuild.src -index 503f549047b6..5d42ede9f252 100644 ---- a/miscutils/Kbuild.src -+++ b/miscutils/Kbuild.src -@@ -47,5 +47,6 @@ lib-$(CONFIG_STRINGS) += strings.o - lib-$(CONFIG_TIME) += time.o - lib-$(CONFIG_TIMEOUT) += timeout.o - lib-$(CONFIG_TTYSIZE) += ttysize.o -+lib-$(CONFIG_UBOOT_ENV) += fw_env.o - lib-$(CONFIG_VOLNAME) += volname.o - lib-$(CONFIG_WATCHDOG) += watchdog.o diff --git a/miscutils/fw_env.c b/miscutils/fw_env.c new file mode 100644 -index 000000000000..f6f0d2743c36 +index 0000000..93ea868 --- /dev/null +++ b/miscutils/fw_env.c -@@ -0,0 +1,1259 @@ +@@ -0,0 +1,1270 @@ +/* + * u-boot flash environment variable get/set commands + * @@ -137,6 +95,17 @@ index 000000000000..f6f0d2743c36 + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + */ ++//config:config UBOOT_ENV ++//config: bool "uboot environment" ++//config: default n ++//config: help ++//config: Enables setting and printing u-boot environment varaibles. ++//config: The fw_printenv and fw_setenv tools are included. ++ ++//applet:IF_UBOOT_ENV(APPLET(fw_setenv, BB_DIR_USR_SBIN, BB_SUID_DROP)) ++//applet:IF_UBOOT_ENV(APPLET(fw_printenv, BB_DIR_USR_SBIN, BB_SUID_DROP)) ++ ++//kbuild:lib-$(CONFIG_UBOOT_ENV) += fw_env.o + +#include "libbb.h" +#include "common_bufsiz.h" diff --git a/patches/crosstool-NG/series b/patches/crosstool-NG/series index 50a68b046..ae5b7f905 100644 --- a/patches/crosstool-NG/series +++ b/patches/crosstool-NG/series @@ -1,4 +1,5 @@ # Previous patches not applied on new revisions. #allow-patching-custom-kernel-tarballs.patch -Ignore-a-bad-id-command-to-allow-docker.patch +# Ignore-a-bad-id-command-to-allow-docker.patch -- merged upstream in 1.28.0 +# (scripts/crosstool-NG.sh already uses `id -un 2>/dev/null || echo unknown`). diff --git a/patches/dmidecode/dmidecode-onie-cross-compile.patch b/patches/dmidecode/dmidecode-onie-cross-compile.patch index 8a8e3e254..c2a55c86f 100644 --- a/patches/dmidecode/dmidecode-onie-cross-compile.patch +++ b/patches/dmidecode/dmidecode-onie-cross-compile.patch @@ -4,32 +4,19 @@ Copyright (C) 2017 Curt Brune SPDX-License-Identifier: GPL-2.0 -Small modifications to the dmidecode Makefile for cross compiling in -the ONIE build environment. ---- - Makefile | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - +Use $(CROSS_COMPILE)gcc as the compiler so dmidecode cross-compiles in +the ONIE build environment. (dmidecode's Makefile honors CFLAGS/LDFLAGS +from the environment, so no further changes are needed.) diff --git a/Makefile b/Makefile -index 1f54a1f..1d03628 100644 +index 985992e..ae70e4d 100644 --- a/Makefile +++ b/Makefile @@ -12,7 +12,7 @@ # (at your option) any later version. # --CC = gcc -+CC = $(CROSS_COMPILE)gcc - CFLAGS = -W -Wall -Wshadow -Wstrict-prototypes -Wpointer-arith -Wcast-qual \ - -Wcast-align -Wwrite-strings -Wmissing-prototypes -Winline -Wundef - -@@ -29,6 +29,9 @@ CFLAGS += -O2 - # Pass linker flags here - LDFLAGS = - -++CFLAGS += $(ONIE_CFLAGS) -++LDFLAGS += $(ONIE_LDFLAGS) -+ - DESTDIR = - prefix = /usr/local - sbindir = $(prefix)/sbin +-CC ?= gcc ++CC = $(CROSS_COMPILE)gcc + # Base CFLAGS can be overridden by environment + CFLAGS ?= -O2 + # When debugging, disable -O2 and enable -g diff --git a/patches/dmidecode/series b/patches/dmidecode/series index b9265a16e..bc707ba6f 100644 --- a/patches/dmidecode/series +++ b/patches/dmidecode/series @@ -1,2 +1,2 @@ -# This series applies on GIT commit 230d76a606e09f77b0e74e445e35dadeeac756ee +# This series applies on dmidecode 3.7 dmidecode-onie-cross-compile.patch diff --git a/patches/dosfstools/remove-local-support.patch b/patches/dosfstools/remove-local-support.patch deleted file mode 100644 index d4a490732..000000000 --- a/patches/dosfstools/remove-local-support.patch +++ /dev/null @@ -1,37 +0,0 @@ -Remove local support patch - -uClibc in the ONIE environment does not do locales well, so removing -local support from dosfstools. - -This patch makes the locale init and locale translation no-ops. - -diff --git a/Makefile b/Makefile -index 81256ef..711b170 100644 ---- a/Makefile -+++ b/Makefile -@@ -40,9 +40,9 @@ all: build - - build: fatlabel fsck.fat mkfs.fat - --fatlabel: boot.o check.o common.o fat.o file.o io.o lfn.o charconv.o fatlabel.o -+fatlabel: boot.o check.o common.o fat.o file.o io.o lfn.o fatlabel.o - --fsck.fat: boot.o check.o common.o fat.o file.o io.o lfn.o charconv.o fsck.fat.o -+fsck.fat: boot.o check.o common.o fat.o file.o io.o lfn.o fsck.fat.o - - mkfs.fat: mkfs.fat.o - -diff --git a/src/charconv.h b/src/charconv.h -index 3ac3e56..a33b803 100644 ---- a/src/charconv.h -+++ b/src/charconv.h -@@ -3,7 +3,7 @@ - - #define DEFAULT_DOS_CODEPAGE 437 - --int set_dos_codepage(int codepage); --int dos_char_to_printable(char **p, unsigned char c); -+static inline int set_dos_codepage(int codepage) { return 0; } -+static inline int dos_char_to_printable(char **p, unsigned char c) { return 0; } - - #endif diff --git a/patches/dosfstools/series b/patches/dosfstools/series index 66fd9cb60..096515335 100644 --- a/patches/dosfstools/series +++ b/patches/dosfstools/series @@ -1,2 +1,10 @@ -# This series applies on GIT commit 277b73b04cda1663511bb28ce9221d7b9561385b -remove-local-support.patch +# This series applies on dosfstools release v4.2 +# +# No patches required. +# +# The former remove-local-support.patch (which stubbed out the gettext/ +# locale/iconv support that uClibc handles poorly) was dropped for 4.x. +# dosfstools 4.x switched to an autotools build and gates iconv behind +# --with-iconv/--without-iconv. We configure with --without-iconv, which +# compiles charconv.c with its built-in CP850 table and no iconv/gettext +# dependency, achieving the same result without source patching. diff --git a/patches/efivar/30/XX-Provide-char16_t-and-char32_t-definitions-for-ONIE.patch b/patches/efivar/30/XX-Provide-char16_t-and-char32_t-definitions-for-ONIE.patch deleted file mode 100644 index 87a671359..000000000 --- a/patches/efivar/30/XX-Provide-char16_t-and-char32_t-definitions-for-ONIE.patch +++ /dev/null @@ -1,36 +0,0 @@ -Provide char16_t and char32_t definitions for ONIE - -Copyright (C) 2020 Alex Doyle -Copyright (C) 2015 Curt Brune - -SPDX-License-Identifier: GPL-2.0 - -Since uClibc does not provide provide explicit typedefs for -char16_t and char32_t using the compiler's internal definitions. -Updated patch for efivar 37 - Alex -Summary: - -diff --git a/src/export.c b/src/export.c -index 8321bd3..3ac9316 100644 ---- a/src/export.c -+++ b/src/export.c -@@ -23,6 +23,19 @@ - #include - #include - #include -+ -+#ifdef __UCLIBC__ -+/* -+ * Define the 16-bit and 32-bit character types as is -+ * missing from uClibc. Use the information provided by the compiler -+ */ -+#if !defined __CHAR16_TYPE__ || !defined __CHAR32_TYPE__ -+# error "definitions of __CHAR16_TYPE__ and/or __CHAR32_TYPE__ missing" -+#endif -+typedef __CHAR16_TYPE__ char16_t; -+typedef __CHAR32_TYPE__ char32_t; -+#else - #include -+#endif - - #include "efivar.h" diff --git a/patches/efivar/30/makefile-changes-for-onie.patch b/patches/efivar/30/makefile-changes-for-onie.patch deleted file mode 100644 index c39449da7..000000000 --- a/patches/efivar/30/makefile-changes-for-onie.patch +++ /dev/null @@ -1,86 +0,0 @@ -Makefile changes for ONIE patch - -Copyright (C) 2020 Alex Doyle -Copyright (C) 2017 Curt Brune - -SPDX-License-Identifier: GPL-2.0 - -Minor Makefile changes for ONIE build environment. -Updated for efivar 37 - Alex - -diff --git a/Make.defaults b/Make.defaults -index 57cee6e..cf91cd1 100644 ---- a/Make.defaults -+++ b/Make.defaults -@@ -16,6 +16,8 @@ CC_FOR_BUILD ?= cc - CC := $(if $(filter default,$(origin CC)),$(CROSS_COMPILE)$(COMPILER),$(CC)) - CCLD_FOR_BUILD ?= $(CC_FOR_BUILD) - CCLD := $(if $(filter undefined,$(origin CCLD)),$(CC),$(CCLD)) -+HOST_CC := gcc -+HOST_CCLD := $(HOST_CC) - OPTIMIZE ?= -O2 -flto - CFLAGS ?= $(OPTIMIZE) -g3 - CFLAGS := $(CFLAGS) -@@ -29,6 +31,10 @@ ABIDIFF := abidiff - - PKGS = - -+host_cflags := $(HOST_CFLAGS) -I${TOPDIR}/src/include/efivar/ \ -+ $(if $(findstring clang,$(HOST_CC)),$(clang_cflags),) \ -+ $(if $(findstring gcc,$(HOST_CC)),$(gcc_cflags),) -+ - clang_cflags = -D_GNU_SOURCE -std=gnu11 -Wno-address-of-packed-member - gcc_cflags = -specs=$(TOPDIR)/gcc.specs - cflags = $(CFLAGS) -I${TOPDIR}/src/include/ \ -@@ -44,6 +50,9 @@ ccldflags = $(cflags) -L. $(CCLDFLAGS) $(LDFLAGS) \ - $(if $(findstring ccc-analyzer,$(CCLD)),$(clang_ccldflags),) \ - $(if $(findstring gcc,$(CCLD)),$(gcc_ccldflags),) \ - $(call pkg-config-ldflags) -+host_ccldflags := $(host_cflags) -L. $(HOST_CCLDFLAGS) $(HOST_LDFLAGS) \ -+ $(if $(findstring clang,$(HOST_CCLD)),$(clang_ccldflags),) \ -+ $(if $(findstring gcc,$(HOST_CCLD)),$(gcc_ccldflags),) - SOFLAGS=-shared - LDLIBS=$(foreach lib,$(LIBS),-l$(lib)) $(call pkg-config-ldlibs) - -diff --git a/Make.rules b/Make.rules -index 042585b..6227eb7 100644 ---- a/Make.rules -+++ b/Make.rules -@@ -58,6 +58,7 @@ define substitute-version - sed \ - -e "s,@@VERSION@@,$(VERSION),g" \ - -e "s,@@LIBDIR@@,$(LIBDIR),g" \ -+ -e "s,@@DESTDIR@@,$(DESTDIR),g" \ - -e "s,@@PREFIX@@,$(PREFIX),g" \ - -e "s,@@EXEC_PREFIX@@,$(EXEC_PREFIX),g" \ - -e "s,@@INCLUDEDIR@@,$(INCLUDEDIR),g" \ -diff --git a/Makefile b/Makefile -index 8c67b9d..5ea8280 100644 ---- a/Makefile -+++ b/Makefile -@@ -7,7 +7,12 @@ include $(TOPDIR)/Make.defaults - include $(TOPDIR)/Make.coverity - include $(TOPDIR)/Make.scan-build - --SUBDIRS := src docs -+# ONIE build environment changes -+export CC = $(CROSS_COMPILE)gcc -+export LDFLAGS += $(ONIE_LDFLAGS) -+export CFLAGS += $(ONIE_CFLAGS) -+ -+SUBDIRS := src - - all : | efivar.spec Make.version - all : -diff --git a/src/Makefile b/src/Makefile -index 76bc474..533d1bd 100644 ---- a/src/Makefile -+++ b/src/Makefile -@@ -55,6 +55,7 @@ include/efivar/efivar-guids.h : makeguids guids.txt - makeguids : CPPFLAGS+=-DEFIVAR_BUILD_ENVIRONMENT - makeguids : LIBS=dl - makeguids : $(MAKEGUIDS_SOURCES) -+ $(HOST_CCLD) $(host_ccldflags) $(CPPFLAGS) -o $@ $^ $(LDLIBS) - makeguids : CCLD=$(CCLD_FOR_BUILD) - - guids.o : guids.S | guids.bin names.bin diff --git a/patches/efivar/30/series b/patches/efivar/30/series deleted file mode 100644 index 588893078..000000000 --- a/patches/efivar/30/series +++ /dev/null @@ -1,3 +0,0 @@ -# This series applies on GIT commit aee7302f16d85e21bc0898157348c063d2cb7ce8 -XX-Provide-char16_t-and-char32_t-definitions-for-ONIE.patch -makefile-changes-for-onie.patch diff --git a/patches/efivar/37/0001-Fix-the-error-path-in-set_disk_and_part_name.patch b/patches/efivar/37/0001-Fix-the-error-path-in-set_disk_and_part_name.patch deleted file mode 100644 index 94ca2f3b1..000000000 --- a/patches/efivar/37/0001-Fix-the-error-path-in-set_disk_and_part_name.patch +++ /dev/null @@ -1,74 +0,0 @@ -From 22bc0866e941cbfe57de6522db51e9cf2c6b3ff1 Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Wed, 2 Oct 2019 17:01:00 -0400 -Subject: [PATCH] Fix the error path in set_disk_and_part_name() - -Signed-off-by: Peter Jones - -[ dannf: Context adjustments due to upstream whitespace cleanup; - Included to simplify the application of - 0003-Try-even-harder-to-find-disk-device-symlinks-in-sysf.patch ] - -Bug-Ubuntu: https://bugs.launchpad.net/bugs/1891718 -Bug: https://github.com/rhboot/efivar/issues/157 -Origin: upstream, https://github.com/rhboot/efivar/commit/22bc0866e941cbfe57de6522db51e9cf2c6b3ff1 -Last-Updated: 2020-09-30 - -Index: efivar-37/src/linux.c -=================================================================== ---- efivar-37.orig/src/linux.c -+++ efivar-37/src/linux.c -@@ -1,6 +1,6 @@ - /* - * libefiboot - library for the manipulation of EFI boot variables -- * Copyright 2012-2015 Red Hat, Inc. -+ * Copyright 2012-2019 Red Hat, Inc. - * Copyright (C) 2001 Dell Computer Corporation - * - * This library is free software; you can redistribute it and/or -@@ -169,6 +169,8 @@ set_disk_name(struct device *dev, const - int HIDDEN - set_disk_and_part_name(struct device *dev) - { -+ int rc = -1; -+ - /* - * results are like such: - * maj:min -> ../../devices/pci$PCI_STUFF/$BLOCKDEV_STUFF/block/$DISK/$PART -@@ -200,6 +202,7 @@ set_disk_and_part_name(struct device *de - set_disk_name(dev, "%s", penultimate); - set_part_name(dev, "%s", ultimate); - debug("disk:%s part:%s", penultimate, ultimate); -+ rc = 0; - } else if (ultimate && approximate && !strcmp(approximate, "nvme")) { - /* - * 259:0 -> ../../devices/pci0000:00/0000:00:1d.0/0000:05:00.0/nvme/nvme0/nvme0n1 -@@ -207,6 +210,7 @@ set_disk_and_part_name(struct device *de - set_disk_name(dev, "%s", ultimate); - set_part_name(dev, "%sp%d", ultimate, dev->part); - debug("disk:%s part:%sp%d", ultimate, ultimate, dev->part); -+ rc = 0; - } else if (ultimate && penultimate && !strcmp(penultimate, "block")) { - /* - * 253:0 -> ../../devices/virtual/block/dm-0 (... I guess) -@@ -220,15 +224,19 @@ set_disk_and_part_name(struct device *de - set_disk_name(dev, "%s", ultimate); - set_part_name(dev, "%s%d", ultimate, dev->part); - debug("disk:%s part:%s%d", ultimate, ultimate, dev->part); -+ rc = 0; - } else if (ultimate && approximate && !strcmp(approximate, "mtd")) { - /* - * 31:0 -> ../../devices/platform/1e000000.palmbus/1e000b00.spi/spi_master/spi32766/spi32766.0/mtd/mtd0/mtdblock0 - */ - set_disk_name(dev, "%s", ultimate); - debug("disk:%s", ultimate); -+ rc = 0; - } - -- return 0; -+ if (rc < 0) -+ efi_error("Could not parse disk name:\"%s\"", dev->link); -+ return rc; - } - - static struct dev_probe *dev_probes[] = { diff --git a/patches/efivar/37/0002-sysfs-parsers-make-all-the-sys-block-link-parsers-wo.patch b/patches/efivar/37/0002-sysfs-parsers-make-all-the-sys-block-link-parsers-wo.patch deleted file mode 100644 index 46dfbfd28..000000000 --- a/patches/efivar/37/0002-sysfs-parsers-make-all-the-sys-block-link-parsers-wo.patch +++ /dev/null @@ -1,92 +0,0 @@ -From 4718694094647b981b74453445d000b0296b6544 Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Tue, 15 Oct 2019 16:53:27 -0400 -Subject: [PATCH] sysfs parsers: make all the /sys/block link parsers work the - same way - -Apparently I wrote some of these one way and some the other, and the one -special case where everything was "current+sz" instead of some form of -"current += pos; sz += pos; ...; return sz;" or the subtraction version. - -Make them all the same, where possible. - -Signed-off-by: Peter Jones - -[ dannf: Restrict to just linux-nvme.c; - Context adjustments due to upstream whitespace cleanup; - drop call to dbgmk() call - it didn't exist in v37; - included to simplify application of later patches in series ] - -Bug-Ubuntu: https://bugs.launchpad.net/bugs/1891718 -Bug: https://github.com/rhboot/efivar/issues/157 -Origin: upstream, https://github.com/rhboot/efivar/commit/4718694094647b981b74453445d000b0296b6544 -Last-Updated: 2020-09-30 - -Index: efivar-37/src/linux-nvme.c -=================================================================== ---- efivar-37.orig/src/linux-nvme.c -+++ efivar-37/src/linux-nvme.c -@@ -24,6 +24,7 @@ - #include - #include - #include -+#include - #include - - #include "efiboot.h" -@@ -48,25 +49,28 @@ - */ - - static ssize_t --parse_nvme(struct device *dev, const char *current, const char *root UNUSED) -+parse_nvme(struct device *dev, const char *path, const char *root UNUSED) - { -+ const char *current = path; - int rc; - int32_t tosser0, tosser1, tosser2, ctrl_id, ns_id, partition; - uint8_t *filebuf = NULL; -- int pos0 = 0, pos1 = 0; -+ int pos0 = -1, pos1 = -1, pos2 = -1; - - debug("entry"); - - debug("searching for nvme/nvme0/nvme0n1 or nvme/nvme0/nvme0n1/nvme0n1p1"); -- rc = sscanf(current, "nvme/nvme%d/nvme%dn%d%n/nvme%dn%dp%d%n", -- &tosser0, &ctrl_id, &ns_id, &pos0, -- &tosser1, &tosser2, &partition, &pos1); -- debug("current:\"%s\" rc:%d pos0:%d pos1:%d\n", current, rc, pos0, pos1); -+ rc = sscanf(current, "%nnvme/nvme%d/nvme%dn%d%n/nvme%dn%dp%d%n", -+ &pos0, &tosser0, &ctrl_id, &ns_id, -+ &pos1, &tosser1, &tosser2, &partition, &pos2); -+ debug("current:\"%s\" rc:%d pos0:%d pos1:%d pos2:%d\n", current, rc, pos0, pos1, pos2); - /* - * If it isn't of that form, it's not one of our nvme devices. - */ - if (rc != 3 && rc != 6) - return 0; -+ if (rc == 3) -+ pos2 = pos1; - - dev->nvme_info.ctrl_id = ctrl_id; - dev->nvme_info.ns_id = ns_id; -@@ -77,8 +81,9 @@ parse_nvme(struct device *dev, const cha - if (dev->part == -1) - dev->part = partition; - -- pos0 = pos1; -+ pos1 = pos2; - } -+ current += pos1; - - /* - * now fish the eui out of sysfs is there is one... -@@ -110,7 +115,8 @@ parse_nvme(struct device *dev, const cha - memcpy(dev->nvme_info.eui, eui, sizeof(eui)); - } - -- return pos0; -+ debug("current:'%s' sz:%zd", current, current - path); -+ return current - path; - } - - static ssize_t diff --git a/patches/efivar/37/0003-Try-even-harder-to-find-disk-device-symlinks-in-sysf.patch b/patches/efivar/37/0003-Try-even-harder-to-find-disk-device-symlinks-in-sysf.patch deleted file mode 100644 index ef89d1748..000000000 --- a/patches/efivar/37/0003-Try-even-harder-to-find-disk-device-symlinks-in-sysf.patch +++ /dev/null @@ -1,209 +0,0 @@ -From c9c1424d0e09bf33b747d37c43177c63367b1290 Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Fri, 11 Oct 2019 14:20:54 -0400 -Subject: [PATCH] Try even harder to find disk device symlinks in sysfs. - -Today's realization is that the thing encoded into the structure of -sysfs is, in the best case, the dependency graph of the makefile targets -to build a device driver. - -In the case of nvme-fabric, or really wherever the kernel has -class_create() and device_create() in the same function, there's an -extra level of indirection. - -Anyway, in this patch we stop pretending sysfs isn't completely absurd, -and just try adding "/device" in the middle of the driver symlink path, -until we actually either get ENOENT on the device symlink or find a -device symlink that actually has a driver symlink under it. - -Signed-off-by: Peter Jones - -[ dannf: Context adjustments due to upstream whitespace cleanup; - Adjust to omit efi_error_pop() call that didn't exist in v37; - included to simplify application of later patches in series ] - -Bug-Ubuntu: https://bugs.launchpad.net/bugs/1891718 -Bug: https://github.com/rhboot/efivar/issues/157 -Origin: upstream, https://github.com/rhboot/efivar/commit/c9c1424d0e09bf33b747d37c43177c63367b1290 -Last-Updated: 2020-09-30 - -Index: efivar-37/src/linux-nvme.c -=================================================================== ---- efivar-37.orig/src/linux-nvme.c -+++ efivar-37/src/linux-nvme.c -@@ -88,13 +88,12 @@ parse_nvme(struct device *dev, const cha - /* - * now fish the eui out of sysfs is there is one... - */ -- rc = read_sysfs_file(&filebuf, -- "class/block/nvme%dn%d/eui", -- ctrl_id, ns_id); -- if ((rc < 0 && errno == ENOENT) || filebuf == NULL) { -- rc = read_sysfs_file(&filebuf, -- "class/block/nvme%dn%d/device/eui", -- ctrl_id, ns_id); -+ char *euipath = NULL; -+ rc = read_sysfs_file(&filebuf, "class/block/nvme%dn%d/eui", ctrl_id, ns_id); -+ if (rc < 0 && (errno == ENOENT || errno == ENOTDIR)) { -+ rc = find_device_file(&euipath, "eui", "class/block/nvme%dn%d", ctrl_id, ns_id); -+ if (rc >= 0 && euipath != NULL) -+ rc = read_sysfs_file(&filebuf, "%s", euipath); - } - if (rc >= 0 && filebuf != NULL) { - uint8_t eui[8]; -Index: efivar-37/src/linux.c -=================================================================== ---- efivar-37.orig/src/linux.c -+++ efivar-37/src/linux.c -@@ -410,24 +410,32 @@ struct device HIDDEN - goto err; - } - -- if (dev->device[0] != 0) { -- rc = sysfs_readlink(&tmpbuf, "block/%s/device/driver", dev->disk_name); -+ /* -+ * So, on a normal disk, you get something like: -+ * /sys/block/sda/device -> ../../0:0:0:0 -+ * /sys/block/sda/device/driver -> ../../../../../../../bus/scsi/drivers/sd -+ * -+ * On a directly attached nvme device you get: -+ * /sys/block/nvme0n1/device -> ../../nvme0 -+ * /sys/block/nvme0n1/device/device -> ../../../0000:6e:00.0 -+ * /sys/block/nvme0n1/device/device/driver -> ../../../../bus/pci/drivers/nvme -+ * -+ * On a fabric-attached nvme device, you get something like: -+ * /sys/block/nvme0n1/device -> ../../nvme0 -+ * /sys/block/nvme0n1/device/device -> ../../ctl -+ * /sys/block/nvme0n1/device/device/device -> ../../../../../0000:6e:00.0 -+ * /sys/block/nvme0n1/device/device/device/driver -> ../../../../../../bus/pci/drivers/nvme-fabrics -+ * -+ * ... I think? I don't have one in front of me. -+ */ -+ -+ char *filepath = NULL; -+ rc = find_device_file(&filepath, "driver", "block/%s", dev->disk_name); -+ if (rc >= 0) { -+ rc = sysfs_readlink(&tmpbuf, "%s", filepath); - if (rc < 0 || !tmpbuf) { -- if (errno == ENOENT) { -- /* -- * nvme, for example, will have nvme0n1/device point -- * at nvme0, and we need to look for device/driver -- * there. -- */ -- rc = sysfs_readlink(&tmpbuf, -- "block/%s/device/device/driver", -- dev->disk_name); -- } -- if (rc < 0 || !tmpbuf) { -- efi_error("readlink of /sys/block/%s/device/driver failed", -- dev->disk_name); -- goto err; -- } -+ efi_error("readlink of /sys/%s failed", filepath); -+ goto err; - } - - linkbuf = pathseg(tmpbuf, -1); -@@ -438,7 +446,7 @@ struct device HIDDEN - - dev->driver = strdup(linkbuf); - } else { -- dev->driver = strdup(""); -+ dev->driver = strdup(""); - } - - if (!dev->driver) { -Index: efivar-37/src/linux.h -=================================================================== ---- efivar-37.orig/src/linux.h -+++ efivar-37/src/linux.h -@@ -1,6 +1,6 @@ - /* - * libefiboot - library for the manipulation of EFI boot variables -- * Copyright 2012-2015 Red Hat, Inc. -+ * Copyright 2012-2019 Red Hat, Inc. - * Copyright (C) 2001 Dell Computer Corporation - * - * This library is free software; you can redistribute it and/or -@@ -196,6 +196,22 @@ extern ssize_t HIDDEN make_mac_path(uint - bufsize_; \ - }) - -+#define sysfs_access(mode, fmt, args...) \ -+ ({ \ -+ int rc_; \ -+ char *pn_; \ -+ \ -+ rc_ = asprintfa(&pn_, "/sys/" fmt, ## args); \ -+ if (rc_ >= 0) { \ -+ rc_ = access(pn_, mode); \ -+ if (rc_ < 0) \ -+ efi_error("could not access %s", pn_); \ -+ } else { \ -+ efi_error("could not allocate memory"); \ -+ } \ -+ rc_; \ -+ }) -+ - #define sysfs_readlink(linkbuf, fmt, args...) \ - ({ \ - char *_lb = alloca(PATH_MAX+1); \ -@@ -251,6 +267,57 @@ extern ssize_t HIDDEN make_mac_path(uint - dir_; \ - }) - -+/* -+ * Iterate a /sys/block directory looking for device/foo, device/device/foo, -+ * etc. I'm not proud of this method. -+ */ -+#define find_device_file(result, name, fmt, args...) \ -+ ({ \ -+ int rc_ = 0; \ -+ debug("searching for %s from in %s", name, dev->disk_name); \ -+ for (unsigned int try_ = 0; true; try_++) { \ -+ char slashdev_[sizeof("device") \ -+ + try_ * strlen("/device")]; \ -+ \ -+ char *nul_ = stpcpy(slashdev_, "device"); \ -+ for (unsigned int i_ = 0; i_ < try_; i_++) \ -+ nul_ = stpcpy(nul_, "/device"); \ -+ \ -+ debug("trying /sys/" fmt "/%s/%s", \ -+ ## args, slashdev_, name); \ -+ \ -+ rc_ = sysfs_access(F_OK, fmt "/%s", ## args, slashdev_);\ -+ if (rc_ < 0) { \ -+ if (errno == ENOENT) { \ -+ break; \ -+ } \ -+ efi_error("cannot access /sys/"fmt"/%s: %m", \ -+ ## args, slashdev_); \ -+ goto find_device_link_err_; \ -+ } \ -+ \ -+ rc_ = sysfs_access(F_OK, fmt "/%s/%s", \ -+ ## args, slashdev_, name); \ -+ if (rc_ < 0) { \ -+ if (errno == ENOENT) { \ -+ break; \ -+ } \ -+ efi_error("cannot access /sys/"fmt"/%s/%s: %m", \ -+ ## args, slashdev_, name); \ -+ goto find_device_link_err_; \ -+ } \ -+ \ -+ rc_ = asprintfa(result, fmt "/%s/%s", \ -+ ## args, slashdev_, name); \ -+ if (rc_ < 0) { \ -+ efi_error("cannot allocate memory: %m"); \ -+ goto find_device_link_err_; \ -+ } \ -+ } \ -+find_device_link_err_: \ -+ rc_; \ -+ }) -+ - #define DEV_PROVIDES_ROOT 1 - #define DEV_PROVIDES_HD 2 - #define DEV_ABBREV_ONLY 4 diff --git a/patches/efivar/37/0004-Handle-sys-devices-virtual-nvme-fabrics-nvme-subsyst.patch b/patches/efivar/37/0004-Handle-sys-devices-virtual-nvme-fabrics-nvme-subsyst.patch deleted file mode 100644 index 6b7329c9c..000000000 --- a/patches/efivar/37/0004-Handle-sys-devices-virtual-nvme-fabrics-nvme-subsyst.patch +++ /dev/null @@ -1,309 +0,0 @@ -From c41da0bdce04ab0f99b992d51ff6fd0ab55d040a Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Wed, 2 Oct 2019 17:04:12 -0400 -Subject: [PATCH] Handle /sys/devices/virtual/{nvme-fabrics,nvme-subsystem} - devices - -Signed-off-by: Peter Jones - -[ dannf: Context adjustments due to upstream whitespace cleanup and - dbgmk() calls; - drop new calls to dbgmk() - it didn't exist in v37 ] - -Bug-Ubuntu: https://bugs.launchpad.net/bugs/1891718 -Bug: https://github.com/rhboot/efivar/issues/157 -Origin: upstream, https://github.com/rhboot/efivar/commit/c41da0bdce04ab0f99b992d51ff6fd0ab55d040a -Last-Updated: 2020-09-30 - -Index: efivar-37/src/linux-nvme.c -=================================================================== ---- efivar-37.orig/src/linux-nvme.c -+++ efivar-37/src/linux-nvme.c -@@ -15,7 +15,6 @@ - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, see - * . -- * - */ - - #include "fix_coverity.h" -@@ -35,6 +34,12 @@ - * /sys/dev/block/$major:$minor looks like: - * 259:0 -> ../../devices/pci0000:00/0000:00:1d.0/0000:05:00.0/nvme/nvme0/nvme0n1 - * 259:1 -> ../../devices/pci0000:00/0000:00:1d.0/0000:05:00.0/nvme/nvme0/nvme0n1/nvme0n1p1 -+ * or: -+ * 259:0 ->../../devices/virtual/nvme-fabrics/ctl/nvme0/nvme0n1 -+ * 259:1 ->../../devices/virtual/nvme-fabrics/ctl/nvme0/nvme0n1/nvme0n1p1 -+ * or: -+ * 259:5 -> ../../devices/virtual/nvme-subsystem/nvme-subsys0/nvme0n1 -+ * 259:6 -> ../../devices/virtual/nvme-subsystem/nvme-subsys0/nvme0n1/nvme0n1p1 - * - * /sys/dev/block/259:0/device looks like: - * device -> ../../nvme0 -@@ -56,14 +61,41 @@ parse_nvme(struct device *dev, const cha - int32_t tosser0, tosser1, tosser2, ctrl_id, ns_id, partition; - uint8_t *filebuf = NULL; - int pos0 = -1, pos1 = -1, pos2 = -1; -+ ssize_t sz = 0; -+ struct subdir { -+ const char * const name; -+ const char * const fmt; -+ int *pos0, *pos1; -+ } subdirs[] = { -+ {"nvme-subsysN/", "%nnvme-subsys%d/%n", &pos0, &pos2}, -+ {"ctl/", "%nctl/%n%n", &pos0, &pos1}, -+ {"nvme/", "%nnvme/%n%n", &pos0, &pos1}, -+ {NULL, } -+ }; - - debug("entry"); - -- debug("searching for nvme/nvme0/nvme0n1 or nvme/nvme0/nvme0n1/nvme0n1p1"); -- rc = sscanf(current, "%nnvme/nvme%d/nvme%dn%d%n/nvme%dn%dp%d%n", -- &pos0, &tosser0, &ctrl_id, &ns_id, -- &pos1, &tosser1, &tosser2, &partition, &pos2); -- debug("current:\"%s\" rc:%d pos0:%d pos1:%d pos2:%d\n", current, rc, pos0, pos1, pos2); -+ /* -+ * in this case, *any* of these is okay. -+ */ -+ for (int i = 0; subdirs[i].name; i++) { -+ debug("searching for %s", subdirs[i].name); -+ pos0 = tosser0 = pos1 = -1; -+ rc = sscanf(current, subdirs[i].fmt, &pos0, &pos1, &pos2); -+ debug("current:'%s' rc:%d pos0:%d pos1:%d\n", current, rc, -+ *subdirs[i].pos0, *subdirs[i].pos1); -+ if (*subdirs[i].pos0 >= 0 && *subdirs[i].pos1 >= *subdirs[i].pos0) { -+ sz += *subdirs[i].pos1; -+ current += *subdirs[i].pos1; -+ break; -+ } -+ } -+ -+ debug("searching for nvme0/nvme0n1 or nvme0/nvme0n1/nvme0n1p1"); -+ rc = sscanf(current, "%nnvme%d/nvme%dn%d%n/nvme%dn%dp%d%n", -+ &pos0, &tosser0, &ctrl_id, &ns_id, &pos1, -+ &tosser1, &tosser2, &partition, &pos2); -+ debug("current:'%s' rc:%d pos0:%d pos1:%d pos2:%d\n", current, rc, pos0, pos1, pos2); - /* - * If it isn't of that form, it's not one of our nvme devices. - */ -@@ -81,13 +113,15 @@ parse_nvme(struct device *dev, const cha - if (dev->part == -1) - dev->part = partition; - -- pos1 = pos2; -+ pos1 = pos2; - } -+ - current += pos1; - - /* - * now fish the eui out of sysfs is there is one... - */ -+ debug("looking for the eui"); - char *euipath = NULL; - rc = read_sysfs_file(&filebuf, "class/block/nvme%dn%d/eui", ctrl_id, ns_id); - if (rc < 0 && (errno == ENOENT || errno == ENOTDIR)) { -@@ -110,6 +144,9 @@ parse_nvme(struct device *dev, const cha - errno = EINVAL; - return -1; - } -+ debug("eui is %02hhx:%02hhx:%02hhx:%02hhx:%02hhx:%02hhx:%02hhx:%02hhx", -+ eui[0], eui[1], eui[2], eui[3], -+ eui[4], eui[5], eui[6], eui[7]); - dev->nvme_info.has_eui = 1; - memcpy(dev->nvme_info.eui, eui, sizeof(eui)); - } -Index: efivar-37/src/linux-virtual-root.c -=================================================================== ---- /dev/null -+++ efivar-37/src/linux-virtual-root.c -@@ -0,0 +1,87 @@ -+/* -+ * libefiboot - library for the manipulation of EFI boot variables -+ * Copyright 2012-2019 Red Hat, Inc. -+ * -+ * This library is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU Lesser General Public License as -+ * published by the Free Software Foundation; either version 2.1 of the -+ * License, or (at your option) any later version. -+ * -+ * This library is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ * Lesser General Public License for more details. -+ * -+ * You should have received a copy of the GNU Lesser General Public -+ * License along with this library; if not, see -+ * . -+ */ -+ -+#include "fix_coverity.h" -+ -+#include -+#include -+#include -+#include -+#include -+ -+#include "efiboot.h" -+ -+/* -+ * Support virtually rooted devices (fibre+nvme, etc.) -+ * -+ * /sys/dev/block/$major:$minor looks like: -+ * 259:0 ->../../devices/virtual/nvme-fabrics/ctl/nvme0/nvme0n1 -+ * 259:1 ->../../devices/virtual/nvme-fabrics/ctl/nvme0/nvme0n1/nvme0n1p1 -+ * or: -+ * 259:5 -> ../../devices/virtual/nvme-subsystem/nvme-subsys0/nvme0n1 -+ * 259:6 -> ../../devices/virtual/nvme-subsystem/nvme-subsys0/nvme0n1/nvme0n1p1 -+ */ -+ -+static ssize_t -+parse_virtual_root(struct device *dev UNUSED, const char *current, const char *root UNUSED) -+{ -+ int rc; -+ ssize_t sz; -+ int pos0 = 0, pos1 = 0; -+ struct subdir { -+ const char * const name; -+ const char * const fmt; -+ } subdirs[] = { -+ {"../../devices/virtual", "%n../../devices/virtual/%n"}, -+ {"nvme-subsystem/", "%nnvme-subsystem/%n"}, -+ {"nvme-fabrics/ctl/", "%nnvme-fabrics/ctl/%n"}, -+ {NULL, NULL} -+ }; -+ -+ debug("entry"); -+ -+ for (int i = 0; subdirs[i].name; i++) { -+ debug("searching for %s", subdirs[i].name); -+ pos0 = pos1 = -1; -+ rc = sscanf(current, subdirs[i].fmt, &pos0, &pos1); -+ debug("current:'%s' rc:%d pos0:%d pos1:%d\n", current, rc, pos0, pos1); -+ if (rc == 1) { -+ sz += pos1; -+ current += pos1; -+ if (i > 0) -+ goto found; -+ } -+ } -+ -+ sz = 0; -+found: -+ debug("current:'%s' sz:%zd\n", current, sz); -+ return sz; -+} -+ -+static enum interface_type virtual_root_iftypes[] = { virtual_root, unknown }; -+ -+struct dev_probe HIDDEN virtual_root_parser = { -+ .name = "virtual_root", -+ .iftypes = virtual_root_iftypes, -+ .flags = DEV_ABBREV_ONLY|DEV_PROVIDES_ROOT, -+ .parse = parse_virtual_root, -+}; -+ -+// vim:fenc=utf-8:tw=75:noet -Index: efivar-37/src/linux.h -=================================================================== ---- efivar-37.orig/src/linux.h -+++ efivar-37/src/linux.h -@@ -99,7 +99,8 @@ struct emmc_info { - - enum interface_type { - unknown, -- isa, acpi_root, pci_root, soc_root, pci, network, -+ isa, acpi_root, pci_root, soc_root, virtual_root, -+ pci, network, - ata, atapi, scsi, sata, sas, - usb, i1394, fibre, i2o, - md, virtblk, -@@ -344,6 +345,7 @@ extern struct dev_probe pmem_parser; - extern struct dev_probe pci_root_parser; - extern struct dev_probe acpi_root_parser; - extern struct dev_probe soc_root_parser; -+extern struct dev_probe virtual_root_parser; - extern struct dev_probe pci_parser; - extern struct dev_probe sas_parser; - extern struct dev_probe sata_parser; -Index: efivar-37/src/linux.c -=================================================================== ---- efivar-37.orig/src/linux.c -+++ efivar-37/src/linux.c -@@ -170,16 +170,17 @@ int HIDDEN - set_disk_and_part_name(struct device *dev) - { - int rc = -1; -- -- /* -- * results are like such: -- * maj:min -> ../../devices/pci$PCI_STUFF/$BLOCKDEV_STUFF/block/$DISK/$PART -- */ -- - char *ultimate = pathseg(dev->link, -1); - char *penultimate = pathseg(dev->link, -2); - char *approximate = pathseg(dev->link, -3); - char *proximate = pathseg(dev->link, -4); -+ char *psl5 = pathseg(dev->link, -5); -+ -+ -+ /* -+ * devlinks look something like: -+ * maj:min -> ../../devices/pci$PCI_STUFF/$BLOCKDEV_STUFF/block/$DISK/$PART -+ */ - - errno = 0; - debug("dev->disk_name:%p dev->part_name:%p", dev->disk_name, dev->part_name); -@@ -188,6 +189,7 @@ set_disk_and_part_name(struct device *de - debug("penultimate:\"%s\"", penultimate ? : ""); - debug("approximate:\"%s\"", approximate ? : ""); - debug("proximate:\"%s\"", proximate ? : ""); -+ debug("psl5:'%s'", psl5 ? : ""); - - if (ultimate && penultimate && - ((proximate && !strcmp(proximate, "nvme")) || -@@ -232,6 +234,34 @@ set_disk_and_part_name(struct device *de - set_disk_name(dev, "%s", ultimate); - debug("disk:%s", ultimate); - rc = 0; -+ } else if ((proximate && ultimate && !strcmp(proximate, "nvme-fabrics")) || -+ (approximate && ultimate && !strcmp(approximate, "nvme-subsystem"))) { -+ /* -+ * 259:0 ->../../devices/virtual/nvme-fabrics/ctl/nvme0/nvme0n1 -+ * ^ proximate ^ ultimate -+ * or -+ * 259:5 -> ../../devices/virtual/nvme-subsystem/nvme-subsys0/nvme0n1 -+ * ^ approximate ^ penultimate -+ * ultimate ^ -+ */ -+ set_disk_name(dev, "%s", ultimate); -+ debug("disk:%s", ultimate); -+ rc = 0; -+ } else if ((psl5 && penultimate && ultimate && !strcmp(psl5, "nvme-fabrics")) || -+ (proximate && penultimate && ultimate && !strcmp(proximate, "nvme-subsystem"))) { -+ /* -+ * 259:1 -> ../../devices/virtual/nvme-fabrics/ctl/nvme0/nvme0n1/nvme0n1p1 -+ * ^psl5 ^ penultimate -+ * ultimate ^ -+ * or -+ * 259:6 -> ../../devices/virtual/nvme-subsystem/nvme-subsys0/nvme0n1/nvme0n1p1 -+ * ^ proximate ^ penultimate -+ * ultimate ^ -+ */ -+ set_disk_name(dev, "%s", penultimate); -+ set_part_name(dev, "%s", ultimate); -+ debug("disk:%s part:%s", penultimate, ultimate); -+ rc = 0; - } - - if (rc < 0) -@@ -248,6 +278,7 @@ static struct dev_probe *dev_probes[] = - &acpi_root_parser, - &pci_root_parser, - &soc_root_parser, -+ &virtual_root_parser, - &pci_parser, - &virtblk_parser, - &sas_parser, diff --git a/patches/efivar/37/0005-Fix-variable-sz-uninitialized-error.patch b/patches/efivar/37/0005-Fix-variable-sz-uninitialized-error.patch deleted file mode 100644 index 40edaa836..000000000 --- a/patches/efivar/37/0005-Fix-variable-sz-uninitialized-error.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 9dc04c2fd88b6e0e0fe411885041925d52f71af3 Mon Sep 17 00:00:00 2001 -From: Chih-Wei Huang -Date: Wed, 22 Jan 2020 12:16:12 +0800 -Subject: [PATCH 2/2] Fix variable 'sz' uninitialized error - -To fix the error: - -external/efivar/src/linux-virtual-root.c:66:4: error: variable 'sz' is uninitialized when used here [-Werror,-Wuninitialized] - sz += pos1; - ^~ -external/efivar/src/linux-virtual-root.c:45:12: note: initialize the variable 'sz' to silence this warning - ssize_t sz; - ^ - = 0 -1 error generated. - -Fixes: c41da0bd ("Handle /sys/devices/virtual/{nvme-fabrics,nvme-subsystem} devices") - -Signed-off-by: Chih-Wei Huang - -Bug-Ubuntu: https://bugs.launchpad.net/bugs/1891718 -Bug: https://github.com/rhboot/efivar/issues/157 -Origin: upstream, https://github.com/rhboot/efivar/commit/9dc04c2fd88b6e0e0fe411885041925d52f71af3 -Last-Updated: 2020-09-30 - -Index: efivar-37/src/linux-virtual-root.c -=================================================================== ---- efivar-37.orig/src/linux-virtual-root.c -+++ efivar-37/src/linux-virtual-root.c -@@ -42,7 +42,7 @@ static ssize_t - parse_virtual_root(struct device *dev UNUSED, const char *current, const char *root UNUSED) - { - int rc; -- ssize_t sz; -+ ssize_t sz = 0; - int pos0 = 0, pos1 = 0; - struct subdir { - const char * const name; diff --git a/patches/efivar/37/0006-Fix-parsing-for-nvme-subsystem-devices.patch b/patches/efivar/37/0006-Fix-parsing-for-nvme-subsystem-devices.patch deleted file mode 100644 index 0ae0b07bc..000000000 --- a/patches/efivar/37/0006-Fix-parsing-for-nvme-subsystem-devices.patch +++ /dev/null @@ -1,91 +0,0 @@ -From 4e12f997f8b6af76ef65e7045c232b7d642a1af4 Mon Sep 17 00:00:00 2001 -From: dann frazier -Date: Mon, 17 Aug 2020 13:11:15 -0600 -Subject: [PATCH] Fix parsing for nvme-subsystem devices - -nvme-subsystem devices have a link that looks like: - ../../devices/virtual/nvme-subsystem/nvme-subsys0/nvme0n1 - -However, the current code expects an additional /nvme0/ component, i.e.: - ../../devices/virtual/nvme-subsystem/nvme-subsys0/nvme0/nvme0n1 - -Fix this by adding a separate branch for parsing nvme-subsystem devices. - -Resolves github issue #157. - -Signed-off-by: dann frazier - -[ dannf: Context adjustments due to upstream whitespace cleanup and - dbgmk() calls ] - -Bug-Ubuntu: https://bugs.launchpad.net/bugs/1891718 -Bug: https://github.com/rhboot/efivar/issues/157 -Origin: upstream, https://github.com/rhboot/efivar/commit/4e12f997f8b6af76ef65e7045c232b7d642a1af4 -Last-Updated: 2020-10-08 - -Index: efivar/src/linux-nvme.c -=================================================================== ---- efivar.orig/src/linux-nvme.c -+++ efivar/src/linux-nvme.c -@@ -57,7 +57,7 @@ static ssize_t - parse_nvme(struct device *dev, const char *path, const char *root UNUSED) - { - const char *current = path; -- int rc; -+ int i, rc; - int32_t tosser0, tosser1, tosser2, ctrl_id, ns_id, partition; - uint8_t *filebuf = NULL; - int pos0 = -1, pos1 = -1, pos2 = -1; -@@ -78,7 +78,7 @@ parse_nvme(struct device *dev, const cha - /* - * in this case, *any* of these is okay. - */ -- for (int i = 0; subdirs[i].name; i++) { -+ for (i = 0; subdirs[i].name; i++) { - debug("searching for %s", subdirs[i].name); - pos0 = tosser0 = pos1 = -1; - rc = sscanf(current, subdirs[i].fmt, &pos0, &pos1, &pos2); -@@ -91,18 +91,31 @@ parse_nvme(struct device *dev, const cha - } - } - -- debug("searching for nvme0/nvme0n1 or nvme0/nvme0n1/nvme0n1p1"); -- rc = sscanf(current, "%nnvme%d/nvme%dn%d%n/nvme%dn%dp%d%n", -- &pos0, &tosser0, &ctrl_id, &ns_id, &pos1, -- &tosser1, &tosser2, &partition, &pos2); -- debug("current:'%s' rc:%d pos0:%d pos1:%d pos2:%d\n", current, rc, pos0, pos1, pos2); -- /* -- * If it isn't of that form, it's not one of our nvme devices. -- */ -- if (rc != 3 && rc != 6) -- return 0; -- if (rc == 3) -- pos2 = pos1; -+ if (!subdirs[i].name) -+ return 0; -+ -+ debug("searching for nvme-subsysN/"); -+ if (!strncmp("nvme-subsysN/", subdirs[i].name, 13)) { -+ debug("searching for nvme0n1"); -+ rc = sscanf(current, "%nnvme%dn%d%n", -+ &pos0, &ctrl_id, &ns_id, &pos1); -+ debug("current:'%s' rc:%d pos0:%d pos1:%d\n", current, rc, pos0, pos1); -+ if (rc != 2) -+ return 0; -+ } else { -+ debug("searching for nvme0/nvme0n1 or nvme0/nvme0n1/nvme0n1p1"); -+ rc = sscanf(current, "%nnvme%d/nvme%dn%d%n/nvme%dn%dp%d%n", -+ &pos0, &tosser0, &ctrl_id, &ns_id, &pos1, -+ &tosser1, &tosser2, &partition, &pos2); -+ debug("current:'%s' rc:%d pos0:%d pos1:%d pos2:%d\n", current, rc, pos0, pos1, pos2); -+ /* -+ * If it isn't of that form, it's not one of our nvme devices. -+ */ -+ if (rc != 3 && rc != 6) -+ return 0; -+ if (rc == 3) -+ pos2 = pos1; -+ } - - dev->nvme_info.ctrl_id = ctrl_id; - dev->nvme_info.ns_id = ns_id; diff --git a/patches/efivar/37/Always-initialize-any-variable-we-use-with-sscanf-s-.patch b/patches/efivar/37/Always-initialize-any-variable-we-use-with-sscanf-s-.patch deleted file mode 100644 index 2448f1696..000000000 --- a/patches/efivar/37/Always-initialize-any-variable-we-use-with-sscanf-s-.patch +++ /dev/null @@ -1,76 +0,0 @@ -From 5dc12cc56c79d293cf68d12a0b84373a785745e7 Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Tue, 28 May 2019 16:27:31 -0400 -Subject: [PATCH] Always initialize any variable we use with sscanf's %n - -Signed-off-by: Peter Jones - -Bug-Ubuntu: https://bugs.launchpad.net/bugs/1892792 -Origin: upstream,https://github.com/rhboot/efivar/commit/5dc12cc56c79d293cf68d12a0b84373a785745e7 -Last-Updated: 2020-08-24 - -Index: efivar/src/linux-acpi-root.c -=================================================================== ---- efivar.orig/src/linux-acpi-root.c -+++ efivar/src/linux-acpi-root.c -@@ -44,7 +44,7 @@ static ssize_t - parse_acpi_root(struct device *dev, const char *current, const char *root UNUSED) - { - int rc; -- int pos; -+ int pos = 0; - uint16_t pad0; - uint8_t pad1; - char *acpi_header = NULL; -Index: efivar/src/linux-pci-root.c -=================================================================== ---- efivar.orig/src/linux-pci-root.c -+++ efivar/src/linux-pci-root.c -@@ -44,7 +44,7 @@ static ssize_t - parse_pci_root(struct device *dev, const char *current, const char *root UNUSED) - { - int rc; -- int pos; -+ int pos = 0; - uint16_t root_domain; - uint8_t root_bus; - const char *devpart = current; -Index: efivar/src/linux-pci.c -=================================================================== ---- efivar.orig/src/linux-pci.c -+++ efivar/src/linux-pci.c -@@ -46,7 +46,7 @@ static ssize_t - parse_pci(struct device *dev, const char *current, const char *root) - { - int rc; -- int pos; -+ int pos = 0; - const char *devpart = current; - - debug("entry"); -Index: efivar/src/linux-soc-root.c -=================================================================== ---- efivar.orig/src/linux-soc-root.c -+++ efivar/src/linux-soc-root.c -@@ -41,7 +41,7 @@ static ssize_t - parse_soc_root(struct device *dev UNUSED, const char *current, const char *root UNUSED) - { - int rc; -- int pos; -+ int pos = 0; - const char *devpart = current; - - debug("entry"); -Index: efivar/src/linux-virtblk.c -=================================================================== ---- efivar.orig/src/linux-virtblk.c -+++ efivar/src/linux-virtblk.c -@@ -48,7 +48,7 @@ static ssize_t - parse_virtblk(struct device *dev, const char *current, const char *root UNUSED) - { - uint32_t tosser; -- int pos; -+ int pos = 0; - int rc; - - debug("entry"); diff --git a/patches/efivar/37/XX-Provide-char16_t-and-char32_t-definitions-for-ONIE.patch b/patches/efivar/37/XX-Provide-char16_t-and-char32_t-definitions-for-ONIE.patch deleted file mode 120000 index 404617fe9..000000000 --- a/patches/efivar/37/XX-Provide-char16_t-and-char32_t-definitions-for-ONIE.patch +++ /dev/null @@ -1 +0,0 @@ -../30/XX-Provide-char16_t-and-char32_t-definitions-for-ONIE.patch \ No newline at end of file diff --git a/patches/efivar/37/include-search-one-directory-up.patch b/patches/efivar/37/include-search-one-directory-up.patch deleted file mode 100644 index 1862206d6..000000000 --- a/patches/efivar/37/include-search-one-directory-up.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 6e79c3ac4f1e6aeb7781813b5f65896b3c2b34d0 Mon Sep 17 00:00:00 2001 -From: Alex Doyle -Date: Fri, 18 Dec 2020 08:19:22 -0800 -Subject: [PATCH] Patch the search path to search one directory up, so that - files looking for search ${TOPDIR}/src/include and find - ${TOPDIR}/src/include/efivars/efivars.h ...instead of looking for: - ${TOPDIR}/src/include/efivars/efivars/efivars.h - ---- - Make.defaults | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/Make.defaults b/Make.defaults -index cf91cd1..7985d0d 100644 ---- a/Make.defaults -+++ b/Make.defaults -@@ -30,8 +30,9 @@ ABIDW := abidw - ABIDIFF := abidiff - - PKGS = -- -+# ONIE - search src/include to NOT use host's header files. - host_cflags := $(HOST_CFLAGS) -I${TOPDIR}/src/include/efivar/ \ -+ -I${TOPDIR}/src/include/ \ - $(if $(findstring clang,$(HOST_CC)),$(clang_cflags),) \ - $(if $(findstring gcc,$(HOST_CC)),$(gcc_cflags),) - --- -2.20.1 - diff --git a/patches/efivar/37/makefile-changes-for-onie.patch b/patches/efivar/37/makefile-changes-for-onie.patch deleted file mode 100644 index c39449da7..000000000 --- a/patches/efivar/37/makefile-changes-for-onie.patch +++ /dev/null @@ -1,86 +0,0 @@ -Makefile changes for ONIE patch - -Copyright (C) 2020 Alex Doyle -Copyright (C) 2017 Curt Brune - -SPDX-License-Identifier: GPL-2.0 - -Minor Makefile changes for ONIE build environment. -Updated for efivar 37 - Alex - -diff --git a/Make.defaults b/Make.defaults -index 57cee6e..cf91cd1 100644 ---- a/Make.defaults -+++ b/Make.defaults -@@ -16,6 +16,8 @@ CC_FOR_BUILD ?= cc - CC := $(if $(filter default,$(origin CC)),$(CROSS_COMPILE)$(COMPILER),$(CC)) - CCLD_FOR_BUILD ?= $(CC_FOR_BUILD) - CCLD := $(if $(filter undefined,$(origin CCLD)),$(CC),$(CCLD)) -+HOST_CC := gcc -+HOST_CCLD := $(HOST_CC) - OPTIMIZE ?= -O2 -flto - CFLAGS ?= $(OPTIMIZE) -g3 - CFLAGS := $(CFLAGS) -@@ -29,6 +31,10 @@ ABIDIFF := abidiff - - PKGS = - -+host_cflags := $(HOST_CFLAGS) -I${TOPDIR}/src/include/efivar/ \ -+ $(if $(findstring clang,$(HOST_CC)),$(clang_cflags),) \ -+ $(if $(findstring gcc,$(HOST_CC)),$(gcc_cflags),) -+ - clang_cflags = -D_GNU_SOURCE -std=gnu11 -Wno-address-of-packed-member - gcc_cflags = -specs=$(TOPDIR)/gcc.specs - cflags = $(CFLAGS) -I${TOPDIR}/src/include/ \ -@@ -44,6 +50,9 @@ ccldflags = $(cflags) -L. $(CCLDFLAGS) $(LDFLAGS) \ - $(if $(findstring ccc-analyzer,$(CCLD)),$(clang_ccldflags),) \ - $(if $(findstring gcc,$(CCLD)),$(gcc_ccldflags),) \ - $(call pkg-config-ldflags) -+host_ccldflags := $(host_cflags) -L. $(HOST_CCLDFLAGS) $(HOST_LDFLAGS) \ -+ $(if $(findstring clang,$(HOST_CCLD)),$(clang_ccldflags),) \ -+ $(if $(findstring gcc,$(HOST_CCLD)),$(gcc_ccldflags),) - SOFLAGS=-shared - LDLIBS=$(foreach lib,$(LIBS),-l$(lib)) $(call pkg-config-ldlibs) - -diff --git a/Make.rules b/Make.rules -index 042585b..6227eb7 100644 ---- a/Make.rules -+++ b/Make.rules -@@ -58,6 +58,7 @@ define substitute-version - sed \ - -e "s,@@VERSION@@,$(VERSION),g" \ - -e "s,@@LIBDIR@@,$(LIBDIR),g" \ -+ -e "s,@@DESTDIR@@,$(DESTDIR),g" \ - -e "s,@@PREFIX@@,$(PREFIX),g" \ - -e "s,@@EXEC_PREFIX@@,$(EXEC_PREFIX),g" \ - -e "s,@@INCLUDEDIR@@,$(INCLUDEDIR),g" \ -diff --git a/Makefile b/Makefile -index 8c67b9d..5ea8280 100644 ---- a/Makefile -+++ b/Makefile -@@ -7,7 +7,12 @@ include $(TOPDIR)/Make.defaults - include $(TOPDIR)/Make.coverity - include $(TOPDIR)/Make.scan-build - --SUBDIRS := src docs -+# ONIE build environment changes -+export CC = $(CROSS_COMPILE)gcc -+export LDFLAGS += $(ONIE_LDFLAGS) -+export CFLAGS += $(ONIE_CFLAGS) -+ -+SUBDIRS := src - - all : | efivar.spec Make.version - all : -diff --git a/src/Makefile b/src/Makefile -index 76bc474..533d1bd 100644 ---- a/src/Makefile -+++ b/src/Makefile -@@ -55,6 +55,7 @@ include/efivar/efivar-guids.h : makeguids guids.txt - makeguids : CPPFLAGS+=-DEFIVAR_BUILD_ENVIRONMENT - makeguids : LIBS=dl - makeguids : $(MAKEGUIDS_SOURCES) -+ $(HOST_CCLD) $(host_ccldflags) $(CPPFLAGS) -o $@ $^ $(LDLIBS) - makeguids : CCLD=$(CCLD_FOR_BUILD) - - guids.o : guids.S | guids.bin names.bin diff --git a/patches/efivar/37/remove-arrows.patch b/patches/efivar/37/remove-arrows.patch deleted file mode 100644 index dc9a9e060..000000000 --- a/patches/efivar/37/remove-arrows.patch +++ /dev/null @@ -1,357 +0,0 @@ -commit e39fb5b9e590c6616459c15b5d95fbc09fb077d6 -Author: Peter Jones -Date: Thu Feb 21 15:26:23 2019 -0500 - - Get rid of the arrows in our debug messages. - - They're not *that* useful, and the code is clever and problematic. - - Resolves github issue #124 - - Signed-off-by: Peter Jones - -diff --git a/src/linux-acpi-root.c b/src/linux-acpi-root.c -index 06e69ee..30728de 100644 ---- a/src/linux-acpi-root.c -+++ b/src/linux-acpi-root.c -@@ -51,13 +51,6 @@ parse_acpi_root(struct device *dev, const char *current, const char *root UNUSED - char *colon; - - const char *devpart = current; -- char *spaces; -- -- pos = strlen(current); -- spaces = alloca(pos+1); -- memset(spaces, ' ', pos+1); -- spaces[pos] = '\0'; -- pos = 0; - - debug("entry"); - -diff --git a/src/linux-emmc.c b/src/linux-emmc.c -index 87e9247..b290ed0 100644 ---- a/src/linux-emmc.c -+++ b/src/linux-emmc.c -@@ -50,13 +50,6 @@ parse_emmc(struct device *dev, const char *current, const char *root UNUSED) - int rc; - int32_t tosser0, tosser1, tosser2, tosser3, slot_id, partition; - int pos0 = 0, pos1 = 0; -- char *spaces; -- -- pos0 = strlen(current); -- spaces = alloca(pos0+1); -- memset(spaces, ' ', pos0+1); -- spaces[pos0] = '\0'; -- pos0 = 0; - - debug("entry"); - -@@ -65,8 +58,6 @@ parse_emmc(struct device *dev, const char *current, const char *root UNUSED) - &tosser0, &tosser1, &tosser2, &slot_id, - &pos0, &tosser3, &partition, &pos1); - debug("current:\"%s\" rc:%d pos0:%d pos1:%d\n", current, rc, pos0, pos1); -- arrow(LOG_DEBUG, spaces, 9, pos0, rc, 4); -- arrow(LOG_DEBUG, spaces, 9, pos1, rc, 6); - /* - * If it isn't of that form, it's not one of our emmc devices. - */ -diff --git a/src/linux-md.c b/src/linux-md.c -index 0a5c1cd..cb584c9 100644 ---- a/src/linux-md.c -+++ b/src/linux-md.c -@@ -44,13 +44,6 @@ parse_md(struct device *dev, const char *current, const char *root UNUSED) - int rc; - int32_t md, tosser0, part; - int pos0 = 0, pos1 = 0; -- char *spaces; -- -- pos0 = strlen(current); -- spaces = alloca(pos0+1); -- memset(spaces, ' ', pos0+1); -- spaces[pos0] = '\0'; -- pos0 = 0; - - debug("entry"); - -@@ -58,7 +51,6 @@ parse_md(struct device *dev, const char *current, const char *root UNUSED) - rc = sscanf(current, "md%d/%nmd%dp%d%n", - &md, &pos0, &tosser0, &part, &pos1); - debug("current:\"%s\" rc:%d pos0:%d pos1:%d\n", current, rc, pos0, pos1); -- arrow(LOG_DEBUG, spaces, 9, pos0, rc, 3); - /* - * If it isn't of that form, it's not one of our partitioned md devices. - */ -diff --git a/src/linux-nvme.c b/src/linux-nvme.c -index d68d11a..1d8fc65 100644 ---- a/src/linux-nvme.c -+++ b/src/linux-nvme.c -@@ -54,13 +54,6 @@ parse_nvme(struct device *dev, const char *current, const char *root UNUSED) - int32_t tosser0, tosser1, tosser2, ctrl_id, ns_id, partition; - uint8_t *filebuf = NULL; - int pos0 = 0, pos1 = 0; -- char *spaces; -- -- pos0 = strlen(current); -- spaces = alloca(pos0+1); -- memset(spaces, ' ', pos0+1); -- spaces[pos0] = '\0'; -- pos0 = 0; - - debug("entry"); - -@@ -69,8 +62,6 @@ parse_nvme(struct device *dev, const char *current, const char *root UNUSED) - &tosser0, &ctrl_id, &ns_id, &pos0, - &tosser1, &tosser2, &partition, &pos1); - debug("current:\"%s\" rc:%d pos0:%d pos1:%d\n", current, rc, pos0, pos1); -- arrow(LOG_DEBUG, spaces, 9, pos0, rc, 3); -- arrow(LOG_DEBUG, spaces, 9, pos1, rc, 6); - /* - * If it isn't of that form, it's not one of our nvme devices. - */ -diff --git a/src/linux-pci-root.c b/src/linux-pci-root.c -index 5d1df06..0605acf 100644 ---- a/src/linux-pci-root.c -+++ b/src/linux-pci-root.c -@@ -48,13 +48,6 @@ parse_pci_root(struct device *dev, const char *current, const char *root UNUSED) - uint16_t root_domain; - uint8_t root_bus; - const char *devpart = current; -- char *spaces; -- -- pos = strlen(current); -- spaces = alloca(pos+1); -- memset(spaces, ' ', pos+1); -- spaces[pos] = '\0'; -- pos = 0; - - debug("entry"); - -diff --git a/src/linux-pci.c b/src/linux-pci.c -index f63f591..64aaefb 100644 ---- a/src/linux-pci.c -+++ b/src/linux-pci.c -@@ -48,13 +48,6 @@ parse_pci(struct device *dev, const char *current, const char *root) - int rc; - int pos; - const char *devpart = current; -- char *spaces; -- -- pos = strlen(current); -- spaces = alloca(pos+1); -- memset(spaces, ' ', pos+1); -- spaces[pos] = '\0'; -- pos = 0; - - debug("entry"); - -@@ -75,7 +68,6 @@ parse_pci(struct device *dev, const char *current, const char *root) - rc = sscanf(devpart, "%hx:%hhx:%hhx.%hhx/%n", - &domain, &bus, &device, &function, &pos); - debug("current:\"%s\" rc:%d pos:%d", devpart, rc, pos); -- arrow(LOG_DEBUG, spaces, 9, pos, rc, 3); - if (rc != 4) - break; - devpart += pos; -diff --git a/src/linux-sata.c b/src/linux-sata.c -index 8526502..3564117 100644 ---- a/src/linux-sata.c -+++ b/src/linux-sata.c -@@ -148,13 +148,6 @@ parse_sata(struct device *dev, const char *devlink, const char *root UNUSED) - uint64_t scsi_lun, tosser3; - int pos = 0; - int rc; -- char *spaces; -- -- pos = strlen(current); -- spaces = alloca(pos+1); -- memset(spaces, ' ', pos+1); -- spaces[pos] = '\0'; -- pos = 0; - - debug("entry"); - if (is_pata(dev)) { -@@ -169,7 +162,6 @@ parse_sata(struct device *dev, const char *devlink, const char *root UNUSED) - debug("searching for ata1/"); - rc = sscanf(current, "ata%"PRIu32"/%n", &print_id, &pos); - debug("current:\"%s\" rc:%d pos:%d\n", current, rc, pos); -- arrow(LOG_DEBUG, spaces, 9, pos, rc, 1); - /* - * If we don't find this one, it isn't an ata device, so return 0 not - * error. Later errors mean it is an ata device, but we can't parse -@@ -183,7 +175,6 @@ parse_sata(struct device *dev, const char *devlink, const char *root UNUSED) - debug("searching for host0/"); - rc = sscanf(current, "host%"PRIu32"/%n", &scsi_bus, &pos); - debug("current:\"%s\" rc:%d pos:%d\n", current, rc, pos); -- arrow(LOG_DEBUG, spaces, 9, pos, rc, 1); - if (rc != 1) - return -1; - current += pos; -@@ -193,7 +184,6 @@ parse_sata(struct device *dev, const char *devlink, const char *root UNUSED) - rc = sscanf(current, "target%"PRIu32":%"PRIu32":%"PRIu64"/%n", - &scsi_device, &scsi_target, &scsi_lun, &pos); - debug("current:\"%s\" rc:%d pos:%d\n", current, rc, pos); -- arrow(LOG_DEBUG, spaces, 9, pos, rc, 3); - if (rc != 3) - return -1; - current += pos; -@@ -203,7 +193,6 @@ parse_sata(struct device *dev, const char *devlink, const char *root UNUSED) - rc = sscanf(current, "%"PRIu32":%"PRIu32":%"PRIu32":%"PRIu64"/%n", - &tosser0, &tosser1, &tosser2, &tosser3, &pos); - debug("current:\"%s\" rc:%d pos:%d\n", current, rc, pos); -- arrow(LOG_DEBUG, spaces, 9, pos, rc, 4); - if (rc != 4) - return -1; - current += pos; -diff --git a/src/linux-scsi.c b/src/linux-scsi.c -index a5e81cf..04892f0 100644 ---- a/src/linux-scsi.c -+++ b/src/linux-scsi.c -@@ -45,13 +45,6 @@ parse_scsi_link(const char *current, uint32_t *scsi_host, - int rc; - int sz = 0; - int pos0 = 0, pos1 = 0; -- char *spaces; -- -- sz = strlen(current); -- spaces = alloca(sz+1); -- memset(spaces, ' ', sz+1); -- spaces[sz] = '\0'; -- sz = 0; - - debug("entry"); - /* -@@ -108,7 +101,6 @@ parse_scsi_link(const char *current, uint32_t *scsi_host, - debug("searching for host4/"); - rc = sscanf(current, "host%d/%n", scsi_host, &pos0); - debug("current:\"%s\" rc:%d pos0:%d\n", current+sz, rc, pos0); -- arrow(LOG_DEBUG, spaces, 9, pos0, rc, 1); - if (rc != 1) - return -1; - sz += pos0; -@@ -126,8 +118,6 @@ parse_scsi_link(const char *current, uint32_t *scsi_host, - rc = sscanf(current+sz, "port-%d:%d%n:%d%n", &tosser0, - &tosser1, &pos0, &tosser2, &pos1); - debug("current:\"%s\" rc:%d pos0:%d pos1:%d\n", current+sz, rc, pos0, pos1); -- arrow(LOG_DEBUG, spaces, 9, pos0, rc, 2); -- arrow(LOG_DEBUG, spaces, 9, pos1, rc, 3); - if (rc == 2 || rc == 3) { - sz += pos0; - pos0 = 0; -@@ -153,7 +143,6 @@ parse_scsi_link(const char *current, uint32_t *scsi_host, - debug("searching for expander-4:0/"); - rc = sscanf(current+sz, "expander-%d:%d/%n", &tosser0, &tosser1, &pos0); - debug("current:\"%s\" rc:%d pos0:%d\n", current+sz, rc, pos0); -- arrow(LOG_DEBUG, spaces, 9, pos0, rc, 2); - if (rc == 2) { - if (!remote_target_id) { - efi_error("Device is PHY is a remote target, but remote_target_id is NULL"); -@@ -169,7 +158,6 @@ parse_scsi_link(const char *current, uint32_t *scsi_host, - debug("searching for port-2:0:2/"); - rc = sscanf(current+sz, "port-%d:%d:%d/%n", &tosser0, &tosser1, &tosser2, &pos0); - debug("current:\"%s\" rc:%d pos0:%d\n", current+sz, rc, pos0); -- arrow(LOG_DEBUG, spaces, 9, pos0, rc, 3); - if (rc != 3) { - efi_error("Couldn't parse port expander port string"); - return -1; -@@ -192,8 +180,6 @@ parse_scsi_link(const char *current, uint32_t *scsi_host, - - pos1 = 0; - rc = sscanf(current + sz + pos0, ":%d%n", &tosser2, &pos1); -- arrow(LOG_DEBUG, spaces, 9, pos0, rc + 2, 2); -- arrow(LOG_DEBUG, spaces, 9, pos0 + pos1, rc + 2, 3); - if (rc != 0 && rc != 1) - return -1; - if (remote_port_id && rc == 1) -@@ -217,7 +203,6 @@ parse_scsi_link(const char *current, uint32_t *scsi_host, - rc = sscanf(current + sz, "target%d:%d:%"PRIu64"/%n", &tosser0, &tosser1, - &tosser3, &pos0); - debug("current:\"%s\" rc:%d pos0:%d\n", current+sz, rc, pos0); -- arrow(LOG_DEBUG, spaces, 9, pos0, rc, 3); - if (rc != 3) - return -1; - sz += pos0; -@@ -230,7 +215,6 @@ parse_scsi_link(const char *current, uint32_t *scsi_host, - rc = sscanf(current + sz, "%d:%d:%d:%"PRIu64"/%n", - scsi_bus, scsi_device, scsi_target, scsi_lun, &pos0); - debug("current:\"%s\" rc:%d pos0:%d\n", current+sz, rc, pos0); -- arrow(LOG_DEBUG, spaces, 9, pos0, rc, 4); - if (rc != 4) - return -1; - sz += pos0; -@@ -247,13 +231,6 @@ parse_scsi(struct device *dev, const char *current, const char *root UNUSED) - ssize_t sz; - int pos; - int rc; -- char *spaces; -- -- pos = strlen(current); -- spaces = alloca(pos+1); -- memset(spaces, ' ', pos+1); -- spaces[pos] = '\0'; -- pos = 0; - - debug("entry"); - -@@ -265,7 +242,6 @@ parse_scsi(struct device *dev, const char *current, const char *root UNUSED) - &dev->scsi_info.scsi_lun, - &pos); - debug("current:\"%s\" rc:%d pos:%d\n", dev->device, rc, pos); -- arrow(LOG_DEBUG, spaces, 9, pos, rc, 3); - if (rc != 4) - return 0; - -diff --git a/src/linux-soc-root.c b/src/linux-soc-root.c -index 394f496..373cd59 100644 ---- a/src/linux-soc-root.c -+++ b/src/linux-soc-root.c -@@ -43,13 +43,6 @@ parse_soc_root(struct device *dev UNUSED, const char *current, const char *root - int rc; - int pos; - const char *devpart = current; -- char *spaces; -- -- pos = strlen(current); -- spaces = alloca(pos+1); -- memset(spaces, ' ', pos+1); -- spaces[pos] = '\0'; -- pos = 0; - - debug("entry"); - -diff --git a/src/linux-virtblk.c b/src/linux-virtblk.c -index c54a813..2e9889d 100644 ---- a/src/linux-virtblk.c -+++ b/src/linux-virtblk.c -@@ -50,20 +50,12 @@ parse_virtblk(struct device *dev, const char *current, const char *root UNUSED) - uint32_t tosser; - int pos; - int rc; -- char *spaces; -- -- pos = strlen(current); -- spaces = alloca(pos+1); -- memset(spaces, ' ', pos+1); -- spaces[pos] = '\0'; -- pos = 0; - - debug("entry"); - - debug("searching for virtio0/"); - rc = sscanf(current, "virtio%x/%n", &tosser, &pos); - debug("current:\"%s\" rc:%d pos:%d\n", current, rc, pos); -- arrow(LOG_DEBUG, spaces, 9, pos, rc, 1); - /* - * If we couldn't find virtioX/ then it isn't a virtio device. - */ -diff --git a/src/util.h b/src/util.h -index ba8fee3..6d3c10e 100644 ---- a/src/util.h -+++ b/src/util.h -@@ -388,7 +388,6 @@ swizzle_guid_to_uuid(efi_guid_t *guid) - #undef log - #endif - #define log(level, fmt, args...) log_(__FILE__, __LINE__, __func__, level, fmt, ## args) --#define arrow(l,b,o,p,n,m) ({if(n==m){char c_=b[p+1]; b[o]='^'; b[p+o]='^';b[p+o+1]='\0';log(l,"%s",b);b[o]=' ';b[p+o]=' ';b[p+o+1]=c_;}}) - #define debug(fmt, args...) log(LOG_DEBUG, fmt, ## args) - - #endif /* EFIVAR_UTIL_H */ diff --git a/patches/efivar/37/series b/patches/efivar/37/series deleted file mode 100644 index dc13aca35..000000000 --- a/patches/efivar/37/series +++ /dev/null @@ -1,12 +0,0 @@ -# This series applies on GIT commit aee7302f16d85e21bc0898157348c063d2cb7ce8 -XX-Provide-char16_t-and-char32_t-definitions-for-ONIE.patch -makefile-changes-for-onie.patch -include-search-one-directory-up.patch -remove-arrows.patch -0001-Fix-the-error-path-in-set_disk_and_part_name.patch -0002-sysfs-parsers-make-all-the-sys-block-link-parsers-wo.patch -0003-Try-even-harder-to-find-disk-device-symlinks-in-sysf.patch -0004-Handle-sys-devices-virtual-nvme-fabrics-nvme-subsyst.patch -0005-Fix-variable-sz-uninitialized-error.patch -0006-Fix-parsing-for-nvme-subsystem-devices.patch -Always-initialize-any-variable-we-use-with-sscanf-s-.patch diff --git a/patches/gnu-efi/series b/patches/gnu-efi/series deleted file mode 100644 index cc7123c75..000000000 --- a/patches/gnu-efi/series +++ /dev/null @@ -1,2 +0,0 @@ -# This series applies on GIT commit 57632e2e12d41deed491f5d1e90353b6e335c7ce -update-makefile-patch diff --git a/patches/gnu-efi/update-makefile-patch b/patches/gnu-efi/update-makefile-patch deleted file mode 100644 index 4471f2fa3..000000000 --- a/patches/gnu-efi/update-makefile-patch +++ /dev/null @@ -1,42 +0,0 @@ -update makefile patch - -Minor updates to the Makefile to pass in ONIE build environment -variables. - -diff --git a/Make.defaults b/Make.defaults -index d825397..7c2f7d2 100755 ---- a/Make.defaults -+++ b/Make.defaults -@@ -75,6 +75,11 @@ ifeq ($(ARCH),amd64) - override ARCH := x86_64 - endif - -+# Seed compiler and linker flags ONIE build environment flags -+CFLAGS = $(ONIE_CFLAGS) -+CPPFLAGS = $(ONIE_CPPFLAGS) -+LDFLAGS = $(ONIE_LDFLAGS) -+ - # - # Where to build the package - # -diff --git a/apps/Makefile b/apps/Makefile -index cfae62d..3377d2a 100644 ---- a/apps/Makefile -+++ b/apps/Makefile -@@ -45,14 +45,14 @@ TOPDIR = $(SRCDIR)/.. - CDIR=$(TOPDIR)/.. - LINUX_HEADERS = /usr/src/sys/build - CPPFLAGS += -D__KERNEL__ -I$(LINUX_HEADERS)/include --CRTOBJS = ../gnuefi/crt0-efi-$(ARCH).o -+CRTOBJS = ../$(ARCH)/gnuefi/crt0-efi-$(ARCH).o - - LDSCRIPT = $(TOPDIR)/gnuefi/elf_$(ARCH)_efi.lds - ifneq (,$(findstring FreeBSD,$(OS))) - LDSCRIPT = $(TOPDIR)/gnuefi/elf_$(ARCH)_fbsd_efi.lds - endif - --LDFLAGS += -shared -Bsymbolic -L../lib -L../gnuefi $(CRTOBJS) -+LDFLAGS += -shared -Bsymbolic -L../$(ARCH)/lib -L../$(ARCH)/gnuefi $(CRTOBJS) - - LOADLIBES += -lefi -lgnuefi - LOADLIBES += $(LIBGCC) diff --git a/patches/gptfdisk/add-onie-partition-types.patch b/patches/gptfdisk/add-onie-partition-types.patch deleted file mode 100644 index d7457cc29..000000000 --- a/patches/gptfdisk/add-onie-partition-types.patch +++ /dev/null @@ -1,30 +0,0 @@ -Add ONIE partition types - -Copyright (C) 2014 Curt Brune - -SPDX-License-Identifier: GPL-2.0 - -Add GUID for two ONIE partition types: - - // Open Network Install Environment (ONIE) Boot Partition - AddType(0x3100, "7412F7D5-A156-4B13-81DC-867174929325", "ONIE boot"); - - // Open Network Install Environment (ONIE) Configuration Partition - AddType(0x3100, "D4E6E2CD-4469-46F3-B5CB-1BFF57AFC149", "ONIE config"); - -diff --git a/parttypes.cc b/parttypes.cc -index 87f5c86..f78489b 100644 ---- a/parttypes.cc -+++ b/parttypes.cc -@@ -91,6 +91,11 @@ void PartType::AddAllTypes(void) { - AddType(0x1e00, "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7", "Microsoft basic data", 0); // Hidden FAT-16 LBA - AddType(0x2700, "DE94BBA4-06D1-4D40-A16A-BFD50179D6AC", "Windows RE"); - -+ // Open Network Install Environment (ONIE) specific types. -+ // See http://www.onie.org/ -+ AddType(0x3000, "7412F7D5-A156-4B13-81DC-867174929325", "ONIE boot"); -+ AddType(0x3001, "D4E6E2CD-4469-46F3-B5CB-1BFF57AFC149", "ONIE config"); -+ - // PowerPC reference platform boot partition - AddType(0x4100, "9E1A2D38-C612-4316-AA26-8B49521E5A8B", "PowerPC PReP boot"); - diff --git a/patches/gptfdisk/gptfdisk-onie-cross-compile.patch b/patches/gptfdisk/gptfdisk-onie-cross-compile.patch index bed41a0d5..f38f0c2bb 100644 --- a/patches/gptfdisk/gptfdisk-onie-cross-compile.patch +++ b/patches/gptfdisk/gptfdisk-onie-cross-compile.patch @@ -9,8 +9,12 @@ the ONIE build environment. Main changes: -- prefix gcc and g++ with $(CROSS_PREFIX) -- remove Unicode support +- prefix gcc and g++ with $(CROSS_COMPILE) +- append $(ONIE_CXXFLAGS) and $(ONIE_LDFLAGS) + +Note: as of gptfdisk 1.0.10 the default Linux build no longer enables +Unicode (USE_UTF16) or links against ICU (-licuio -licuuc), so those +removals from earlier versions are no longer necessary. diff --git a/.gitignore b/.gitignore new file mode 100644 @@ -21,42 +25,25 @@ index 0000000..61758e7 +gdisk +sgdisk diff --git a/Makefile b/Makefile -index 3364082..ae7d862 100644 +index af9701c..2c46185 100644 --- a/Makefile +++ b/Makefile -@@ -1,7 +1,7 @@ --CC=gcc --CXX=g++ +@@ -64,6 +64,8 @@ endif + $(info Build target is $(TARGET)) + + # Default/Linux settings.... +CC=$(CROSS_COMPILE)gcc +CXX=$(CROSS_COMPILE)g++ - CFLAGS+=-D_FILE_OFFSET_BITS=64 --CXXFLAGS+=-Wall -D_FILE_OFFSET_BITS=64 -D USE_UTF16 -+CXXFLAGS+=-Wall -D_FILE_OFFSET_BITS=64 - #CXXFLAGS+=-Wall -D_FILE_OFFSET_BITS=64 - LDFLAGS+= - LIB_NAMES=crc32 support guid gptpart mbrpart basicmbr mbr gpt bsd parttypes attributes diskio diskio-unix -@@ -11,11 +11,14 @@ MBR_LIB_OBJS=$(MBR_LIBS:=.o) - LIB_HEADERS=$(LIB_NAMES:=.h) + STRIP?=strip + #CXXFLAGS+=-O2 -Wall -D_FILE_OFFSET_BITS=64 -D USE_UTF16 + CXXFLAGS+=-O2 -Wall -D_FILE_OFFSET_BITS=64 +@@ -142,6 +144,9 @@ LIB_HEADERS=$(LIB_NAMES:=.h) DEPEND= makedepend $(CXXFLAGS) + ALL_EXE=$(ALL:=$(FN_EXTENSION)) +CXXFLAGS+= $(ONIE_CXXFLAGS) +LDFLAGS+= $(ONIE_LDFLAGS) + - all: cgdisk gdisk sgdisk fixparts + all: $(ALL) gdisk: $(LIB_OBJS) gdisk.o gpttext.o - # $(CXX) $(LIB_OBJS) gdisk.o gpttext.o $(LDFLAGS) -luuid -o gdisk -- $(CXX) $(LIB_OBJS) gdisk.o gpttext.o $(LDFLAGS) -licuio -licuuc -luuid -o gdisk -+ $(CXX) $(LIB_OBJS) gdisk.o gpttext.o $(LDFLAGS) -luuid -o gdisk - - cgdisk: $(LIB_OBJS) cgdisk.o gptcurses.o - # $(CXX) $(LIB_OBJS) cgdisk.o gptcurses.o $(LDFLAGS) -luuid -lncurses -o cgdisk -@@ -23,7 +26,7 @@ cgdisk: $(LIB_OBJS) cgdisk.o gptcurses.o - - sgdisk: $(LIB_OBJS) sgdisk.o gptcl.o - # $(CXX) $(LIB_OBJS) sgdisk.o gptcl.o $(LDFLAGS) -luuid -lpopt -o sgdisk -- $(CXX) $(LIB_OBJS) sgdisk.o gptcl.o $(LDFLAGS) -licuio -licuuc -luuid -lpopt -o sgdisk -+ $(CXX) $(LIB_OBJS) sgdisk.o gptcl.o $(LDFLAGS) -luuid -lpopt -o sgdisk - - fixparts: $(MBR_LIB_OBJS) fixparts.o - $(CXX) $(MBR_LIB_OBJS) fixparts.o $(LDFLAGS) -o fixparts diff --git a/patches/gptfdisk/series b/patches/gptfdisk/series index 5b6085b5f..8c985546d 100644 --- a/patches/gptfdisk/series +++ b/patches/gptfdisk/series @@ -1,3 +1,6 @@ -# This series applies on GIT commit fbfb51abe2cf88fcac9d36c46b0e3fe56495233d +# This series applies on the gptfdisk 1.0.10 upstream release tarball +# (gptfdisk-1.0.10.tar.gz). As of 1.0.10 the ONIE partition type codes +# (0x3000 "ONIE boot" / 0x3001 "ONIE config") are present in upstream +# parttypes.cc, so the former add-onie-partition-types.patch is no longer +# needed and has been dropped. gptfdisk-onie-cross-compile.patch -add-onie-partition-types.patch diff --git a/patches/grub/2.02/bootp_new_net_bootp6_command.patch b/patches/grub/2.02/bootp_new_net_bootp6_command.patch deleted file mode 100644 index 9126db1f3..000000000 --- a/patches/grub/2.02/bootp_new_net_bootp6_command.patch +++ /dev/null @@ -1,1117 +0,0 @@ -From 8157f994be34098f4e82e91dda70629a940c1f78 Mon Sep 17 00:00:00 2001 -From: Michael Chang -Date: Thu, 27 Oct 2016 17:41:04 -0400 -Subject: bootp: New net_bootp6 command - -Implement new net_bootp6 command for IPv6 network auto configuration via the -DHCPv6 protocol (RFC3315). - -Signed-off-by: Michael Chang -Signed-off-by: Ken Lin - -Patch-Name: bootp_new_net_bootp6_command.patch ---- - grub-core/net/bootp.c | 908 +++++++++++++++++++++++++++++++++++++++++++++++++- - grub-core/net/ip.c | 39 +++ - include/grub/net.h | 72 ++++ - 3 files changed, 1018 insertions(+), 1 deletion(-) - -diff --git a/grub-core/net/bootp.c b/grub-core/net/bootp.c -index 9e2fdb795..172528ee8 100644 ---- a/grub-core/net/bootp.c -+++ b/grub-core/net/bootp.c -@@ -24,6 +24,98 @@ - #include - #include - #include -+#include -+#include -+ -+static int -+dissect_url (const char *url, char **proto, char **host, char **path) -+{ -+ const char *p, *ps; -+ grub_size_t l; -+ -+ *proto = *host = *path = NULL; -+ ps = p = url; -+ -+ while ((p = grub_strchr (p, ':'))) -+ { -+ if (grub_strlen (p) < sizeof ("://") - 1) -+ break; -+ if (grub_memcmp (p, "://", sizeof ("://") - 1) == 0) -+ { -+ l = p - ps; -+ *proto = grub_malloc (l + 1); -+ if (!*proto) -+ { -+ grub_print_error (); -+ return 0; -+ } -+ -+ grub_memcpy (*proto, ps, l); -+ (*proto)[l] = '\0'; -+ p += sizeof ("://") - 1; -+ break; -+ } -+ ++p; -+ } -+ -+ if (!*proto) -+ { -+ grub_dprintf ("bootp", "url: %s is not valid, protocol not found\n", url); -+ return 0; -+ } -+ -+ ps = p; -+ p = grub_strchr (p, '/'); -+ -+ if (!p) -+ { -+ grub_dprintf ("bootp", "url: %s is not valid, host/path not found\n", url); -+ grub_free (*proto); -+ *proto = NULL; -+ return 0; -+ } -+ -+ l = p - ps; -+ -+ if (l > 2 && ps[0] == '[' && ps[l - 1] == ']') -+ { -+ *host = grub_malloc (l - 1); -+ if (!*host) -+ { -+ grub_print_error (); -+ grub_free (*proto); -+ *proto = NULL; -+ return 0; -+ } -+ grub_memcpy (*host, ps + 1, l - 2); -+ (*host)[l - 2] = 0; -+ } -+ else -+ { -+ *host = grub_malloc (l + 1); -+ if (!*host) -+ { -+ grub_print_error (); -+ grub_free (*proto); -+ *proto = NULL; -+ return 0; -+ } -+ grub_memcpy (*host, ps, l); -+ (*host)[l] = 0; -+ } -+ -+ *path = grub_strdup (p); -+ if (!*path) -+ { -+ grub_print_error (); -+ grub_free (*host); -+ grub_free (*proto); -+ *host = NULL; -+ *proto = NULL; -+ return 0; -+ } -+ return 1; -+} - - static void - parse_dhcp_vendor (const char *name, const void *vend, int limit, int *mask) -@@ -270,6 +362,578 @@ grub_net_configure_by_dhcp_ack (const char *name, - return inter; - } - -+/* The default netbuff size for sending DHCPv6 packets which should be -+ large enough to hold the information */ -+#define GRUB_DHCP6_DEFAULT_NETBUFF_ALLOC_SIZE 512 -+ -+struct grub_dhcp6_options -+{ -+ grub_uint8_t *client_duid; -+ grub_uint16_t client_duid_len; -+ grub_uint8_t *server_duid; -+ grub_uint16_t server_duid_len; -+ grub_uint32_t iaid; -+ grub_uint32_t t1; -+ grub_uint32_t t2; -+ grub_net_network_level_address_t *ia_addr; -+ grub_uint32_t preferred_lifetime; -+ grub_uint32_t valid_lifetime; -+ grub_net_network_level_address_t *dns_server_addrs; -+ grub_uint16_t num_dns_server; -+ char *boot_file_proto; -+ char *boot_file_server_ip; -+ char *boot_file_path; -+}; -+ -+typedef struct grub_dhcp6_options *grub_dhcp6_options_t; -+ -+struct grub_dhcp6_session -+{ -+ struct grub_dhcp6_session *next; -+ struct grub_dhcp6_session **prev; -+ grub_uint32_t iaid; -+ grub_uint32_t transaction_id:24; -+ grub_uint64_t start_time; -+ struct grub_net_dhcp6_option_duid_ll duid; -+ struct grub_net_network_level_interface *iface; -+ -+ /* The associated dhcpv6 options */ -+ grub_dhcp6_options_t adv; -+ grub_dhcp6_options_t reply; -+}; -+ -+typedef struct grub_dhcp6_session *grub_dhcp6_session_t; -+ -+typedef void (*dhcp6_option_hook_fn) (const struct grub_net_dhcp6_option *opt, void *data); -+ -+static void -+foreach_dhcp6_option (const struct grub_net_dhcp6_option *opt, grub_size_t size, -+ dhcp6_option_hook_fn hook, void *hook_data); -+ -+static void -+parse_dhcp6_iaaddr (const struct grub_net_dhcp6_option *opt, void *data) -+{ -+ grub_dhcp6_options_t dhcp6 = (grub_dhcp6_options_t )data; -+ -+ grub_uint16_t code = grub_be_to_cpu16 (opt->code); -+ grub_uint16_t len = grub_be_to_cpu16 (opt->len); -+ -+ if (code == GRUB_NET_DHCP6_OPTION_IAADDR) -+ { -+ const struct grub_net_dhcp6_option_iaaddr *iaaddr; -+ iaaddr = (const struct grub_net_dhcp6_option_iaaddr *)opt->data; -+ -+ if (len < sizeof (*iaaddr)) -+ { -+ grub_dprintf ("bootp", "DHCPv6: code %u with insufficient length %u\n", code, len); -+ return; -+ } -+ if (!dhcp6->ia_addr) -+ { -+ dhcp6->ia_addr = grub_malloc (sizeof(*dhcp6->ia_addr)); -+ dhcp6->ia_addr->type = GRUB_NET_NETWORK_LEVEL_PROTOCOL_IPV6; -+ dhcp6->ia_addr->ipv6[0] = grub_get_unaligned64 (iaaddr->addr); -+ dhcp6->ia_addr->ipv6[1] = grub_get_unaligned64 (iaaddr->addr + 8); -+ dhcp6->preferred_lifetime = grub_be_to_cpu32 (iaaddr->preferred_lifetime); -+ dhcp6->valid_lifetime = grub_be_to_cpu32 (iaaddr->valid_lifetime); -+ } -+ } -+} -+ -+static void -+parse_dhcp6_option (const struct grub_net_dhcp6_option *opt, void *data) -+{ -+ grub_dhcp6_options_t dhcp6 = (grub_dhcp6_options_t)data; -+ grub_uint16_t code = grub_be_to_cpu16 (opt->code); -+ grub_uint16_t len = grub_be_to_cpu16 (opt->len); -+ -+ switch (code) -+ { -+ case GRUB_NET_DHCP6_OPTION_CLIENTID: -+ -+ if (dhcp6->client_duid || !len) -+ { -+ grub_dprintf ("bootp", "Skipped DHCPv6 CLIENTID with length %u\n", len); -+ break; -+ } -+ dhcp6->client_duid = grub_malloc (len); -+ grub_memcpy (dhcp6->client_duid, opt->data, len); -+ dhcp6->client_duid_len = len; -+ break; -+ -+ case GRUB_NET_DHCP6_OPTION_SERVERID: -+ -+ if (dhcp6->server_duid || !len) -+ { -+ grub_dprintf ("bootp", "Skipped DHCPv6 SERVERID with length %u\n", len); -+ break; -+ } -+ dhcp6->server_duid = grub_malloc (len); -+ grub_memcpy (dhcp6->server_duid, opt->data, len); -+ dhcp6->server_duid_len = len; -+ break; -+ -+ case GRUB_NET_DHCP6_OPTION_IA_NA: -+ { -+ const struct grub_net_dhcp6_option_iana *ia_na; -+ grub_uint16_t data_len; -+ -+ if (dhcp6->iaid || len < sizeof (*ia_na)) -+ { -+ grub_dprintf ("bootp", "Skipped DHCPv6 IA_NA with length %u\n", len); -+ break; -+ } -+ ia_na = (const struct grub_net_dhcp6_option_iana *)opt->data; -+ dhcp6->iaid = grub_be_to_cpu32 (ia_na->iaid); -+ dhcp6->t1 = grub_be_to_cpu32 (ia_na->t1); -+ dhcp6->t2 = grub_be_to_cpu32 (ia_na->t2); -+ -+ data_len = len - sizeof (*ia_na); -+ if (data_len) -+ foreach_dhcp6_option ((const struct grub_net_dhcp6_option *)ia_na->data, data_len, parse_dhcp6_iaaddr, dhcp6); -+ } -+ break; -+ -+ case GRUB_NET_DHCP6_OPTION_DNS_SERVERS: -+ { -+ const grub_uint8_t *po; -+ grub_uint16_t ln; -+ grub_net_network_level_address_t *la; -+ -+ if (!len || len & 0xf) -+ { -+ grub_dprintf ("bootp", "Skip invalid length DHCPv6 DNS_SERVERS \n"); -+ break; -+ } -+ dhcp6->num_dns_server = ln = len >> 4; -+ dhcp6->dns_server_addrs = la = grub_zalloc (ln * sizeof (*la)); -+ -+ for (po = opt->data; ln > 0; po += 0x10, la++, ln--) -+ { -+ la->type = GRUB_NET_NETWORK_LEVEL_PROTOCOL_IPV6; -+ la->ipv6[0] = grub_get_unaligned64 (po); -+ la->ipv6[1] = grub_get_unaligned64 (po + 8); -+ la->option = DNS_OPTION_PREFER_IPV6; -+ } -+ } -+ break; -+ -+ case GRUB_NET_DHCP6_OPTION_BOOTFILE_URL: -+ dissect_url ((const char *)opt->data, -+ &dhcp6->boot_file_proto, -+ &dhcp6->boot_file_server_ip, -+ &dhcp6->boot_file_path); -+ break; -+ -+ default: -+ break; -+ } -+} -+ -+static void -+foreach_dhcp6_option (const struct grub_net_dhcp6_option *opt, grub_size_t size, dhcp6_option_hook_fn hook, void *hook_data) -+{ -+ while (size) -+ { -+ grub_uint16_t code, len; -+ -+ if (size < sizeof (*opt)) -+ { -+ grub_dprintf ("bootp", "DHCPv6: Options stopped with remaining size %" PRIxGRUB_SIZE "\n", size); -+ break; -+ } -+ size -= sizeof (*opt); -+ len = grub_be_to_cpu16 (opt->len); -+ code = grub_be_to_cpu16 (opt->code); -+ if (size < len) -+ { -+ grub_dprintf ("bootp", "DHCPv6: Options stopped at out of bound length %u for option %u\n", len, code); -+ break; -+ } -+ if (!len) -+ { -+ grub_dprintf ("bootp", "DHCPv6: Options stopped at zero length option %u\n", code); -+ break; -+ } -+ else -+ { -+ if (hook) -+ hook (opt, hook_data); -+ size -= len; -+ opt = (const struct grub_net_dhcp6_option *)((grub_uint8_t *)opt + len + sizeof (*opt)); -+ } -+ } -+} -+ -+static grub_dhcp6_options_t -+grub_dhcp6_options_get (const struct grub_net_dhcp6_packet *v6h, -+ grub_size_t size) -+{ -+ grub_dhcp6_options_t options; -+ -+ if (size < sizeof (*v6h)) -+ { -+ grub_error (GRUB_ERR_OUT_OF_RANGE, N_("DHCPv6 packet size too small")); -+ return NULL; -+ } -+ -+ options = grub_zalloc (sizeof(*options)); -+ if (!options) -+ return NULL; -+ -+ foreach_dhcp6_option ((const struct grub_net_dhcp6_option *)v6h->dhcp_options, -+ size - sizeof (*v6h), parse_dhcp6_option, options); -+ -+ return options; -+} -+ -+static void -+grub_dhcp6_options_free (grub_dhcp6_options_t options) -+{ -+ if (options->client_duid) -+ grub_free (options->client_duid); -+ if (options->server_duid) -+ grub_free (options->server_duid); -+ if (options->ia_addr) -+ grub_free (options->ia_addr); -+ if (options->dns_server_addrs) -+ grub_free (options->dns_server_addrs); -+ if (options->boot_file_proto) -+ grub_free (options->boot_file_proto); -+ if (options->boot_file_server_ip) -+ grub_free (options->boot_file_server_ip); -+ if (options->boot_file_path) -+ grub_free (options->boot_file_path); -+ -+ grub_free (options); -+} -+ -+static grub_dhcp6_session_t grub_dhcp6_sessions; -+#define FOR_DHCP6_SESSIONS(var) FOR_LIST_ELEMENTS (var, grub_dhcp6_sessions) -+ -+static void -+grub_net_configure_by_dhcp6_info (const char *name, -+ struct grub_net_card *card, -+ grub_dhcp6_options_t dhcp6, -+ int is_def, -+ int flags, -+ struct grub_net_network_level_interface **ret_inf) -+{ -+ grub_net_network_level_netaddress_t netaddr; -+ struct grub_net_network_level_interface *inf; -+ -+ if (dhcp6->ia_addr) -+ { -+ inf = grub_net_add_addr (name, card, dhcp6->ia_addr, &card->default_address, flags); -+ -+ netaddr.type = GRUB_NET_NETWORK_LEVEL_PROTOCOL_IPV6; -+ netaddr.ipv6.base[0] = dhcp6->ia_addr->ipv6[0]; -+ netaddr.ipv6.base[1] = 0; -+ netaddr.ipv6.masksize = 64; -+ grub_net_add_route (name, netaddr, inf); -+ -+ if (ret_inf) -+ *ret_inf = inf; -+ } -+ -+ if (dhcp6->dns_server_addrs) -+ { -+ grub_uint16_t i; -+ -+ for (i = 0; i < dhcp6->num_dns_server; ++i) -+ grub_net_add_dns_server (dhcp6->dns_server_addrs + i); -+ } -+ -+ if (dhcp6->boot_file_path) -+ grub_env_set_net_property (name, "boot_file", dhcp6->boot_file_path, -+ grub_strlen (dhcp6->boot_file_path)); -+ -+ if (is_def && dhcp6->boot_file_server_ip) -+ { -+ grub_net_default_server = grub_strdup (dhcp6->boot_file_server_ip); -+ grub_env_set ("net_default_interface", name); -+ grub_env_export ("net_default_interface"); -+ } -+} -+ -+static void -+grub_dhcp6_session_add (struct grub_net_network_level_interface *iface, -+ grub_uint32_t iaid) -+{ -+ grub_dhcp6_session_t se; -+ struct grub_datetime date; -+ grub_err_t err; -+ grub_int32_t t = 0; -+ -+ se = grub_malloc (sizeof (*se)); -+ -+ err = grub_get_datetime (&date); -+ if (err || !grub_datetime2unixtime (&date, &t)) -+ { -+ grub_errno = GRUB_ERR_NONE; -+ t = 0; -+ } -+ -+ se->iface = iface; -+ se->iaid = iaid; -+ se->transaction_id = t; -+ se->start_time = grub_get_time_ms (); -+ se->duid.type = grub_cpu_to_be16_compile_time (3) ; -+ se->duid.hw_type = grub_cpu_to_be16_compile_time (1); -+ grub_memcpy (&se->duid.hwaddr, &iface->hwaddress.mac, sizeof (se->duid.hwaddr)); -+ se->adv = NULL; -+ se->reply = NULL; -+ grub_list_push (GRUB_AS_LIST_P (&grub_dhcp6_sessions), GRUB_AS_LIST (se)); -+} -+ -+static void -+grub_dhcp6_session_remove (grub_dhcp6_session_t se) -+{ -+ grub_list_remove (GRUB_AS_LIST (se)); -+ if (se->adv) -+ grub_dhcp6_options_free (se->adv); -+ if (se->reply) -+ grub_dhcp6_options_free (se->reply); -+ grub_free (se); -+} -+ -+static void -+grub_dhcp6_session_remove_all (void) -+{ -+ grub_dhcp6_session_t se; -+ -+ FOR_DHCP6_SESSIONS (se) -+ { -+ grub_dhcp6_session_remove (se); -+ se = grub_dhcp6_sessions; -+ } -+} -+ -+static grub_err_t -+grub_dhcp6_session_configure_network (grub_dhcp6_session_t se) -+{ -+ char *name; -+ -+ name = grub_xasprintf ("%s:dhcp6", se->iface->card->name); -+ if (!name) -+ return grub_errno; -+ -+ grub_net_configure_by_dhcp6_info (name, se->iface->card, se->reply, 1, 0, 0); -+ grub_free (name); -+ -+ return GRUB_ERR_NONE; -+} -+ -+static grub_err_t -+grub_dhcp6_session_send_request (grub_dhcp6_session_t se) -+{ -+ struct grub_net_buff *nb; -+ struct grub_net_dhcp6_option *opt; -+ struct grub_net_dhcp6_packet *v6h; -+ struct grub_net_dhcp6_option_iana *ia_na; -+ struct grub_net_dhcp6_option_iaaddr *iaaddr; -+ struct udphdr *udph; -+ grub_net_network_level_address_t multicast; -+ grub_net_link_level_address_t ll_multicast; -+ grub_uint64_t elapsed; -+ struct grub_net_network_level_interface *inf = se->iface; -+ grub_dhcp6_options_t dhcp6 = se->adv; -+ grub_err_t err = GRUB_ERR_NONE; -+ -+ multicast.type = GRUB_NET_NETWORK_LEVEL_PROTOCOL_IPV6; -+ multicast.ipv6[0] = grub_cpu_to_be64_compile_time (0xff02ULL << 48); -+ multicast.ipv6[1] = grub_cpu_to_be64_compile_time (0x10002ULL); -+ -+ err = grub_net_link_layer_resolve (inf, &multicast, &ll_multicast); -+ if (err) -+ return err; -+ -+ nb = grub_netbuff_alloc (GRUB_DHCP6_DEFAULT_NETBUFF_ALLOC_SIZE); -+ -+ if (!nb) -+ return grub_errno; -+ -+ err = grub_netbuff_reserve (nb, GRUB_DHCP6_DEFAULT_NETBUFF_ALLOC_SIZE); -+ if (err) -+ { -+ grub_netbuff_free (nb); -+ return err; -+ } -+ -+ err = grub_netbuff_push (nb, dhcp6->client_duid_len + sizeof (*opt)); -+ if (err) -+ { -+ grub_netbuff_free (nb); -+ return err; -+ } -+ opt = (struct grub_net_dhcp6_option *)nb->data; -+ opt->code = grub_cpu_to_be16_compile_time (GRUB_NET_DHCP6_OPTION_CLIENTID); -+ opt->len = grub_cpu_to_be16 (dhcp6->client_duid_len); -+ grub_memcpy (opt->data, dhcp6->client_duid , dhcp6->client_duid_len); -+ -+ err = grub_netbuff_push (nb, dhcp6->server_duid_len + sizeof (*opt)); -+ if (err) -+ { -+ grub_netbuff_free (nb); -+ return err; -+ } -+ opt = (struct grub_net_dhcp6_option *)nb->data; -+ opt->code = grub_cpu_to_be16_compile_time (GRUB_NET_DHCP6_OPTION_SERVERID); -+ opt->len = grub_cpu_to_be16 (dhcp6->server_duid_len); -+ grub_memcpy (opt->data, dhcp6->server_duid , dhcp6->server_duid_len); -+ -+ err = grub_netbuff_push (nb, sizeof (*ia_na) + sizeof (*opt)); -+ if (err) -+ { -+ grub_netbuff_free (nb); -+ return err; -+ } -+ -+ if (dhcp6->ia_addr) -+ { -+ err = grub_netbuff_push (nb, sizeof(*iaaddr) + sizeof (*opt)); -+ if (err) -+ { -+ grub_netbuff_free (nb); -+ return err; -+ } -+ } -+ opt = (struct grub_net_dhcp6_option *)nb->data; -+ opt->code = grub_cpu_to_be16_compile_time (GRUB_NET_DHCP6_OPTION_IA_NA); -+ opt->len = grub_cpu_to_be16 (sizeof (*ia_na)); -+ if (dhcp6->ia_addr) -+ opt->len += grub_cpu_to_be16 (sizeof(*iaaddr) + sizeof (*opt)); -+ -+ ia_na = (struct grub_net_dhcp6_option_iana *)opt->data; -+ ia_na->iaid = grub_cpu_to_be32 (dhcp6->iaid); -+ -+ ia_na->t1 = grub_cpu_to_be32 (dhcp6->t1); -+ ia_na->t2 = grub_cpu_to_be32 (dhcp6->t2); -+ -+ if (dhcp6->ia_addr) -+ { -+ opt = (struct grub_net_dhcp6_option *)ia_na->data; -+ opt->code = grub_cpu_to_be16_compile_time (GRUB_NET_DHCP6_OPTION_IAADDR); -+ opt->len = grub_cpu_to_be16 (sizeof (*iaaddr)); -+ iaaddr = (struct grub_net_dhcp6_option_iaaddr *)opt->data; -+ grub_set_unaligned64 (iaaddr->addr, dhcp6->ia_addr->ipv6[0]); -+ grub_set_unaligned64 (iaaddr->addr + 8, dhcp6->ia_addr->ipv6[1]); -+ -+ iaaddr->preferred_lifetime = grub_cpu_to_be32 (dhcp6->preferred_lifetime); -+ iaaddr->valid_lifetime = grub_cpu_to_be32 (dhcp6->valid_lifetime); -+ } -+ -+ err = grub_netbuff_push (nb, sizeof (*opt) + 2 * sizeof (grub_uint16_t)); -+ if (err) -+ { -+ grub_netbuff_free (nb); -+ return err; -+ } -+ -+ opt = (struct grub_net_dhcp6_option*) nb->data; -+ opt->code = grub_cpu_to_be16_compile_time (GRUB_NET_DHCP6_OPTION_ORO); -+ opt->len = grub_cpu_to_be16_compile_time (2 * sizeof (grub_uint16_t)); -+ grub_set_unaligned16 (opt->data, grub_cpu_to_be16_compile_time (GRUB_NET_DHCP6_OPTION_BOOTFILE_URL)); -+ grub_set_unaligned16 (opt->data + 2, grub_cpu_to_be16_compile_time (GRUB_NET_DHCP6_OPTION_DNS_SERVERS)); -+ -+ err = grub_netbuff_push (nb, sizeof (*opt) + sizeof (grub_uint16_t)); -+ if (err) -+ { -+ grub_netbuff_free (nb); -+ return err; -+ } -+ opt = (struct grub_net_dhcp6_option*) nb->data; -+ opt->code = grub_cpu_to_be16_compile_time (GRUB_NET_DHCP6_OPTION_ELAPSED_TIME); -+ opt->len = grub_cpu_to_be16_compile_time (sizeof (grub_uint16_t)); -+ -+ /* the time is expressed in hundredths of a second */ -+ elapsed = grub_divmod64 (grub_get_time_ms () - se->start_time, 10, 0); -+ -+ if (elapsed > 0xffff) -+ elapsed = 0xffff; -+ -+ grub_set_unaligned16 (opt->data, grub_cpu_to_be16 ((grub_uint16_t)elapsed)); -+ -+ err = grub_netbuff_push (nb, sizeof (*v6h)); -+ if (err) -+ { -+ grub_netbuff_free (nb); -+ return err; -+ } -+ -+ v6h = (struct grub_net_dhcp6_packet *) nb->data; -+ v6h->message_type = GRUB_NET_DHCP6_REQUEST; -+ v6h->transaction_id = se->transaction_id; -+ -+ err = grub_netbuff_push (nb, sizeof (*udph)); -+ if (err) -+ { -+ grub_netbuff_free (nb); -+ return err; -+ } -+ -+ udph = (struct udphdr *) nb->data; -+ udph->src = grub_cpu_to_be16_compile_time (DHCP6_CLIENT_PORT); -+ udph->dst = grub_cpu_to_be16_compile_time (DHCP6_SERVER_PORT); -+ udph->chksum = 0; -+ udph->len = grub_cpu_to_be16 (nb->tail - nb->data); -+ -+ udph->chksum = grub_net_ip_transport_checksum (nb, GRUB_NET_IP_UDP, -+ &inf->address, -+ &multicast); -+ err = grub_net_send_ip_packet (inf, &multicast, &ll_multicast, nb, -+ GRUB_NET_IP_UDP); -+ -+ grub_netbuff_free (nb); -+ -+ return err; -+} -+ -+struct grub_net_network_level_interface * -+grub_net_configure_by_dhcpv6_reply (const char *name, -+ struct grub_net_card *card, -+ grub_net_interface_flags_t flags, -+ const struct grub_net_dhcp6_packet *v6h, -+ grub_size_t size, -+ int is_def, -+ char **device, char **path) -+{ -+ struct grub_net_network_level_interface *inf; -+ grub_dhcp6_options_t dhcp6; -+ -+ dhcp6 = grub_dhcp6_options_get (v6h, size); -+ if (!dhcp6) -+ { -+ grub_print_error (); -+ return NULL; -+ } -+ -+ grub_net_configure_by_dhcp6_info (name, card, dhcp6, is_def, flags, &inf); -+ -+ if (device && dhcp6->boot_file_proto && dhcp6->boot_file_server_ip) -+ { -+ *device = grub_xasprintf ("%s,%s", dhcp6->boot_file_proto, dhcp6->boot_file_server_ip); -+ grub_print_error (); -+ } -+ if (path && dhcp6->boot_file_path) -+ { -+ *path = grub_strdup (dhcp6->boot_file_path); -+ grub_print_error (); -+ if (*path) -+ { -+ char *slash; -+ slash = grub_strrchr (*path, '/'); -+ if (slash) -+ *slash = 0; -+ else -+ **path = 0; -+ } -+ } -+ -+ grub_dhcp6_options_free (dhcp6); -+ return inf; -+} -+ - void - grub_net_process_dhcp (struct grub_net_buff *nb, - struct grub_net_card *card) -@@ -302,6 +966,77 @@ grub_net_process_dhcp (struct grub_net_buff *nb, - } - } - -+grub_err_t -+grub_net_process_dhcp6 (struct grub_net_buff *nb, -+ struct grub_net_card *card __attribute__ ((unused))) -+{ -+ const struct grub_net_dhcp6_packet *v6h; -+ grub_dhcp6_session_t se; -+ grub_size_t size; -+ grub_dhcp6_options_t options; -+ -+ v6h = (const struct grub_net_dhcp6_packet *) nb->data; -+ size = nb->tail - nb->data; -+ -+ options = grub_dhcp6_options_get (v6h, size); -+ if (!options) -+ return grub_errno; -+ -+ if (!options->client_duid || !options->server_duid || !options->ia_addr) -+ { -+ grub_dhcp6_options_free (options); -+ return grub_error (GRUB_ERR_BAD_ARGUMENT, "Bad DHCPv6 Packet"); -+ } -+ -+ FOR_DHCP6_SESSIONS (se) -+ { -+ if (se->transaction_id == v6h->transaction_id && -+ grub_memcmp (options->client_duid, &se->duid, sizeof (se->duid)) == 0 && -+ se->iaid == options->iaid) -+ break; -+ } -+ -+ if (!se) -+ { -+ grub_dprintf ("bootp", "DHCPv6 session not found\n"); -+ grub_dhcp6_options_free (options); -+ return GRUB_ERR_NONE; -+ } -+ -+ if (v6h->message_type == GRUB_NET_DHCP6_ADVERTISE) -+ { -+ if (se->adv) -+ { -+ grub_dprintf ("bootp", "Skipped DHCPv6 Advertised .. \n"); -+ grub_dhcp6_options_free (options); -+ return GRUB_ERR_NONE; -+ } -+ -+ se->adv = options; -+ return grub_dhcp6_session_send_request (se); -+ } -+ else if (v6h->message_type == GRUB_NET_DHCP6_REPLY) -+ { -+ if (!se->adv) -+ { -+ grub_dprintf ("bootp", "Skipped DHCPv6 Reply .. \n"); -+ grub_dhcp6_options_free (options); -+ return GRUB_ERR_NONE; -+ } -+ -+ se->reply = options; -+ grub_dhcp6_session_configure_network (se); -+ grub_dhcp6_session_remove (se); -+ return GRUB_ERR_NONE; -+ } -+ else -+ { -+ grub_dhcp6_options_free (options); -+ } -+ -+ return GRUB_ERR_NONE; -+} -+ - static char - hexdigit (grub_uint8_t val) - { -@@ -582,7 +1317,174 @@ grub_cmd_bootp (struct grub_command *cmd __attribute__ ((unused)), - return err; - } - --static grub_command_t cmd_getdhcp, cmd_bootp; -+static grub_err_t -+grub_cmd_bootp6 (struct grub_command *cmd __attribute__ ((unused)), -+ int argc, char **args) -+{ -+ struct grub_net_card *card; -+ grub_uint32_t iaid = 0; -+ int interval; -+ grub_err_t err; -+ grub_dhcp6_session_t se; -+ -+ err = GRUB_ERR_NONE; -+ -+ FOR_NET_CARDS (card) -+ { -+ struct grub_net_network_level_interface *iface; -+ -+ if (argc > 0 && grub_strcmp (card->name, args[0]) != 0) -+ continue; -+ -+ iface = grub_net_ipv6_get_link_local (card, &card->default_address); -+ if (!iface) -+ { -+ grub_dhcp6_session_remove_all (); -+ return grub_errno; -+ } -+ -+ grub_dhcp6_session_add (iface, iaid++); -+ } -+ -+ for (interval = 200; interval < 10000; interval *= 2) -+ { -+ int done = 1; -+ -+ FOR_DHCP6_SESSIONS (se) -+ { -+ struct grub_net_buff *nb; -+ struct grub_net_dhcp6_option *opt; -+ struct grub_net_dhcp6_packet *v6h; -+ struct grub_net_dhcp6_option_duid_ll *duid; -+ struct grub_net_dhcp6_option_iana *ia_na; -+ grub_net_network_level_address_t multicast; -+ grub_net_link_level_address_t ll_multicast; -+ struct udphdr *udph; -+ -+ multicast.type = GRUB_NET_NETWORK_LEVEL_PROTOCOL_IPV6; -+ multicast.ipv6[0] = grub_cpu_to_be64_compile_time (0xff02ULL << 48); -+ multicast.ipv6[1] = grub_cpu_to_be64_compile_time (0x10002ULL); -+ -+ err = grub_net_link_layer_resolve (se->iface, -+ &multicast, &ll_multicast); -+ if (err) -+ { -+ grub_dhcp6_session_remove_all (); -+ return err; -+ } -+ -+ nb = grub_netbuff_alloc (GRUB_DHCP6_DEFAULT_NETBUFF_ALLOC_SIZE); -+ -+ if (!nb) -+ { -+ grub_dhcp6_session_remove_all (); -+ return grub_errno; -+ } -+ -+ err = grub_netbuff_reserve (nb, GRUB_DHCP6_DEFAULT_NETBUFF_ALLOC_SIZE); -+ if (err) -+ { -+ grub_dhcp6_session_remove_all (); -+ grub_netbuff_free (nb); -+ return err; -+ } -+ -+ err = grub_netbuff_push (nb, sizeof (*opt) + sizeof (grub_uint16_t)); -+ if (err) -+ { -+ grub_dhcp6_session_remove_all (); -+ grub_netbuff_free (nb); -+ return err; -+ } -+ -+ opt = (struct grub_net_dhcp6_option *)nb->data; -+ opt->code = grub_cpu_to_be16_compile_time (GRUB_NET_DHCP6_OPTION_ELAPSED_TIME); -+ opt->len = grub_cpu_to_be16_compile_time (sizeof (grub_uint16_t)); -+ grub_set_unaligned16 (opt->data, 0); -+ -+ err = grub_netbuff_push (nb, sizeof (*opt) + sizeof (*duid)); -+ if (err) -+ { -+ grub_dhcp6_session_remove_all (); -+ grub_netbuff_free (nb); -+ return err; -+ } -+ -+ opt = (struct grub_net_dhcp6_option *)nb->data; -+ opt->code = grub_cpu_to_be16_compile_time (GRUB_NET_DHCP6_OPTION_CLIENTID); -+ opt->len = grub_cpu_to_be16 (sizeof (*duid)); -+ -+ duid = (struct grub_net_dhcp6_option_duid_ll *) opt->data; -+ grub_memcpy (duid, &se->duid, sizeof (*duid)); -+ -+ err = grub_netbuff_push (nb, sizeof (*opt) + sizeof (*ia_na)); -+ if (err) -+ { -+ grub_dhcp6_session_remove_all (); -+ grub_netbuff_free (nb); -+ return err; -+ } -+ -+ opt = (struct grub_net_dhcp6_option *)nb->data; -+ opt->code = grub_cpu_to_be16_compile_time (GRUB_NET_DHCP6_OPTION_IA_NA); -+ opt->len = grub_cpu_to_be16 (sizeof (*ia_na)); -+ ia_na = (struct grub_net_dhcp6_option_iana *)opt->data; -+ ia_na->iaid = grub_cpu_to_be32 (se->iaid); -+ ia_na->t1 = 0; -+ ia_na->t2 = 0; -+ -+ err = grub_netbuff_push (nb, sizeof (*v6h)); -+ if (err) -+ { -+ grub_dhcp6_session_remove_all (); -+ grub_netbuff_free (nb); -+ return err; -+ } -+ -+ v6h = (struct grub_net_dhcp6_packet *)nb->data; -+ v6h->message_type = GRUB_NET_DHCP6_SOLICIT; -+ v6h->transaction_id = se->transaction_id; -+ -+ grub_netbuff_push (nb, sizeof (*udph)); -+ -+ udph = (struct udphdr *) nb->data; -+ udph->src = grub_cpu_to_be16_compile_time (DHCP6_CLIENT_PORT); -+ udph->dst = grub_cpu_to_be16_compile_time (DHCP6_SERVER_PORT); -+ udph->chksum = 0; -+ udph->len = grub_cpu_to_be16 (nb->tail - nb->data); -+ -+ udph->chksum = grub_net_ip_transport_checksum (nb, GRUB_NET_IP_UDP, -+ &se->iface->address, &multicast); -+ -+ err = grub_net_send_ip_packet (se->iface, &multicast, -+ &ll_multicast, nb, GRUB_NET_IP_UDP); -+ done = 0; -+ grub_netbuff_free (nb); -+ -+ if (err) -+ { -+ grub_dhcp6_session_remove_all (); -+ return err; -+ } -+ } -+ if (!done) -+ grub_net_poll_cards (interval, 0); -+ } -+ -+ FOR_DHCP6_SESSIONS (se) -+ { -+ grub_error_push (); -+ err = grub_error (GRUB_ERR_FILE_NOT_FOUND, -+ N_("couldn't autoconfigure %s"), -+ se->iface->card->name); -+ } -+ -+ grub_dhcp6_session_remove_all (); -+ -+ return err; -+} -+ -+static grub_command_t cmd_getdhcp, cmd_bootp, cmd_bootp6; - - void - grub_bootp_init (void) -@@ -593,6 +1495,9 @@ grub_bootp_init (void) - cmd_getdhcp = grub_register_command ("net_get_dhcp_option", grub_cmd_dhcpopt, - N_("VAR INTERFACE NUMBER DESCRIPTION"), - N_("retrieve DHCP option and save it into VAR. If VAR is - then print the value.")); -+ cmd_bootp6 = grub_register_command ("net_bootp6", grub_cmd_bootp6, -+ N_("[CARD]"), -+ N_("perform a DHCPv6 autoconfiguration")); - } - - void -@@ -600,4 +1505,5 @@ grub_bootp_fini (void) - { - grub_unregister_command (cmd_getdhcp); - grub_unregister_command (cmd_bootp); -+ grub_unregister_command (cmd_bootp6); - } -diff --git a/grub-core/net/ip.c b/grub-core/net/ip.c -index aba4f8908..59970ab74 100644 ---- a/grub-core/net/ip.c -+++ b/grub-core/net/ip.c -@@ -238,6 +238,45 @@ handle_dgram (struct grub_net_buff *nb, - { - struct udphdr *udph; - udph = (struct udphdr *) nb->data; -+ -+ if (proto == GRUB_NET_IP_UDP && udph->dst == grub_cpu_to_be16_compile_time (DHCP6_CLIENT_PORT)) -+ { -+ if (udph->chksum) -+ { -+ grub_uint16_t chk, expected; -+ chk = udph->chksum; -+ udph->chksum = 0; -+ expected = grub_net_ip_transport_checksum (nb, -+ GRUB_NET_IP_UDP, -+ source, -+ dest); -+ if (expected != chk) -+ { -+ grub_dprintf ("net", "Invalid UDP checksum. " -+ "Expected %x, got %x\n", -+ grub_be_to_cpu16 (expected), -+ grub_be_to_cpu16 (chk)); -+ grub_netbuff_free (nb); -+ return GRUB_ERR_NONE; -+ } -+ udph->chksum = chk; -+ } -+ -+ err = grub_netbuff_pull (nb, sizeof (*udph)); -+ if (err) -+ { -+ grub_netbuff_free (nb); -+ return err; -+ } -+ -+ err = grub_net_process_dhcp6 (nb, card); -+ if (err) -+ grub_print_error (); -+ -+ grub_netbuff_free (nb); -+ return GRUB_ERR_NONE; -+ } -+ - if (proto == GRUB_NET_IP_UDP && grub_be_to_cpu16 (udph->dst) == 68) - { - const struct grub_net_bootp_packet *bootp; -diff --git a/include/grub/net.h b/include/grub/net.h -index ccc169c2d..38a3973f3 100644 ---- a/include/grub/net.h -+++ b/include/grub/net.h -@@ -442,6 +442,66 @@ struct grub_net_bootp_packet - grub_uint8_t vendor[0]; - } GRUB_PACKED; - -+struct grub_net_dhcp6_packet -+{ -+ grub_uint32_t message_type:8; -+ grub_uint32_t transaction_id:24; -+ grub_uint8_t dhcp_options[0]; -+} GRUB_PACKED; -+ -+struct grub_net_dhcp6_option { -+ grub_uint16_t code; -+ grub_uint16_t len; -+ grub_uint8_t data[0]; -+} GRUB_PACKED; -+ -+struct grub_net_dhcp6_option_iana { -+ grub_uint32_t iaid; -+ grub_uint32_t t1; -+ grub_uint32_t t2; -+ grub_uint8_t data[0]; -+} GRUB_PACKED; -+ -+struct grub_net_dhcp6_option_iaaddr { -+ grub_uint8_t addr[16]; -+ grub_uint32_t preferred_lifetime; -+ grub_uint32_t valid_lifetime; -+ grub_uint8_t data[0]; -+} GRUB_PACKED; -+ -+struct grub_net_dhcp6_option_duid_ll -+{ -+ grub_uint16_t type; -+ grub_uint16_t hw_type; -+ grub_uint8_t hwaddr[6]; -+} GRUB_PACKED; -+ -+enum -+ { -+ GRUB_NET_DHCP6_SOLICIT = 1, -+ GRUB_NET_DHCP6_ADVERTISE = 2, -+ GRUB_NET_DHCP6_REQUEST = 3, -+ GRUB_NET_DHCP6_REPLY = 7 -+ }; -+ -+enum -+ { -+ DHCP6_CLIENT_PORT = 546, -+ DHCP6_SERVER_PORT = 547 -+ }; -+ -+enum -+ { -+ GRUB_NET_DHCP6_OPTION_CLIENTID = 1, -+ GRUB_NET_DHCP6_OPTION_SERVERID = 2, -+ GRUB_NET_DHCP6_OPTION_IA_NA = 3, -+ GRUB_NET_DHCP6_OPTION_IAADDR = 5, -+ GRUB_NET_DHCP6_OPTION_ORO = 6, -+ GRUB_NET_DHCP6_OPTION_ELAPSED_TIME = 8, -+ GRUB_NET_DHCP6_OPTION_DNS_SERVERS = 23, -+ GRUB_NET_DHCP6_OPTION_BOOTFILE_URL = 59 -+ }; -+ - #define GRUB_NET_BOOTP_RFC1048_MAGIC_0 0x63 - #define GRUB_NET_BOOTP_RFC1048_MAGIC_1 0x82 - #define GRUB_NET_BOOTP_RFC1048_MAGIC_2 0x53 -@@ -468,6 +528,14 @@ grub_net_configure_by_dhcp_ack (const char *name, - grub_size_t size, - int is_def, char **device, char **path); - -+struct grub_net_network_level_interface * -+grub_net_configure_by_dhcpv6_reply (const char *name, -+ struct grub_net_card *card, -+ grub_net_interface_flags_t flags, -+ const struct grub_net_dhcp6_packet *v6, -+ grub_size_t size, -+ int is_def, char **device, char **path); -+ - grub_err_t - grub_net_add_ipv4_local (struct grub_net_network_level_interface *inf, - int mask); -@@ -476,6 +544,10 @@ void - grub_net_process_dhcp (struct grub_net_buff *nb, - struct grub_net_card *card); - -+grub_err_t -+grub_net_process_dhcp6 (struct grub_net_buff *nb, -+ struct grub_net_card *card); -+ - int - grub_net_hwaddr_cmp (const grub_net_link_level_address_t *a, - const grub_net_link_level_address_t *b); diff --git a/patches/grub/2.02/bootp_process_dhcpack_http_boot.patch b/patches/grub/2.02/bootp_process_dhcpack_http_boot.patch deleted file mode 100644 index 88fe68cfa..000000000 --- a/patches/grub/2.02/bootp_process_dhcpack_http_boot.patch +++ /dev/null @@ -1,129 +0,0 @@ -From a8af1751591a24f32ea0bed24da74b96f8d1ef9d Mon Sep 17 00:00:00 2001 -From: Michael Chang -Date: Thu, 27 Oct 2016 17:42:19 -0400 -Subject: bootp: Add processing DHCPACK packet from HTTP Boot - -The vendor class identifier with the string "HTTPClient" is used to denote the -packet as responding to HTTP boot request. In DHCP4 config, the filename for -HTTP boot is the URL of the boot file while for PXE boot it is the path to the -boot file. As a consequence, the next-server becomes obseleted because the HTTP -URL already contains the server address for the boot file. For DHCP6 config, -there's no difference definition in existing config as dhcp6.bootfile-url can -be used to specify URL for both HTTP and PXE boot file. - -This patch adds processing for "HTTPClient" vendor class identifier in DHCPACK -packet by treating it as HTTP format, not as the PXE format. - -Signed-off-by: Michael Chang -Signed-off-by: Ken Lin - -Patch-Name: bootp_process_dhcpack_http_boot.patch ---- - grub-core/net/bootp.c | 67 +++++++++++++++++++++++++++++++++++++++++++++++++-- - include/grub/net.h | 1 + - 2 files changed, 66 insertions(+), 2 deletions(-) - -diff --git a/grub-core/net/bootp.c b/grub-core/net/bootp.c -index 172528ee8..de9239c16 100644 ---- a/grub-core/net/bootp.c -+++ b/grub-core/net/bootp.c -@@ -207,6 +207,11 @@ parse_dhcp_vendor (const char *name, const void *vend, int limit, int *mask) - taglength); - break; - -+ case GRUB_NET_BOOTP_VENDOR_CLASS_IDENTIFIER: -+ grub_env_set_net_property (name, "vendor_class_identifier", (const char *) ptr, -+ taglength); -+ break; -+ - case GRUB_NET_BOOTP_EXTENSIONS_PATH: - grub_env_set_net_property (name, "extensionspath", (const char *) ptr, - taglength); -@@ -282,6 +287,66 @@ grub_net_configure_by_dhcp_ack (const char *name, - } - #endif - -+ if (size > OFFSET_OF (vendor, bp)) -+ { -+ char *cidvar; -+ const char *cid; -+ -+ parse_dhcp_vendor (name, &bp->vendor, size - OFFSET_OF (vendor, bp), &mask); -+ cidvar = grub_xasprintf ("net_%s_%s", name, "vendor_class_identifier"); -+ cid = grub_env_get (cidvar); -+ grub_free (cidvar); -+ -+ if (cid && grub_strcmp (cid, "HTTPClient") == 0) -+ { -+ char *proto, *ip, *pa; -+ -+ if (!dissect_url (bp->boot_file, &proto, &ip, &pa)) -+ return inter; -+ -+ grub_env_set_net_property (name, "boot_file", pa, grub_strlen (pa)); -+ if (is_def) -+ { -+ grub_net_default_server = grub_strdup (ip); -+ grub_env_set ("net_default_interface", name); -+ grub_env_export ("net_default_interface"); -+ } -+ if (device && !*device) -+ { -+ *device = grub_xasprintf ("%s,%s", proto, ip); -+ grub_print_error (); -+ } -+ if (path) -+ { -+ *path = grub_strdup (pa); -+ grub_print_error (); -+ if (*path) -+ { -+ char *slash; -+ slash = grub_strrchr (*path, '/'); -+ if (slash) -+ *slash = 0; -+ else -+ **path = 0; -+ } -+ } -+ grub_net_add_ipv4_local (inter, mask); -+ inter->dhcp_ack = grub_malloc (size); -+ if (inter->dhcp_ack) -+ { -+ grub_memcpy (inter->dhcp_ack, bp, size); -+ inter->dhcp_acklen = size; -+ } -+ else -+ grub_errno = GRUB_ERR_NONE; -+ -+ grub_free (proto); -+ grub_free (ip); -+ grub_free (pa); -+ return inter; -+ } -+ } -+ - if (size > OFFSET_OF (boot_file, bp)) - grub_env_set_net_property (name, "boot_file", bp->boot_file, - sizeof (bp->boot_file)); -@@ -346,8 +411,6 @@ grub_net_configure_by_dhcp_ack (const char *name, - **path = 0; - } - } -- if (size > OFFSET_OF (vendor, bp)) -- parse_dhcp_vendor (name, &bp->vendor, size - OFFSET_OF (vendor, bp), &mask); - grub_net_add_ipv4_local (inter, mask); - - inter->dhcp_ack = grub_malloc (size); -diff --git a/include/grub/net.h b/include/grub/net.h -index 38a3973f3..e4bf678db 100644 ---- a/include/grub/net.h -+++ b/include/grub/net.h -@@ -517,6 +517,7 @@ enum - GRUB_NET_BOOTP_DOMAIN = 0x0f, - GRUB_NET_BOOTP_ROOT_PATH = 0x11, - GRUB_NET_BOOTP_EXTENSIONS_PATH = 0x12, -+ GRUB_NET_BOOTP_VENDOR_CLASS_IDENTIFIER = 0x3C, - GRUB_NET_BOOTP_END = 0xff - }; - diff --git a/patches/grub/2.02/core_in_fs.patch b/patches/grub/2.02/core_in_fs.patch deleted file mode 100644 index ec8e7cafd..000000000 --- a/patches/grub/2.02/core_in_fs.patch +++ /dev/null @@ -1,45 +0,0 @@ -From a252840b98e8b67294738f197286d550d67b60f0 Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Mon, 13 Jan 2014 12:12:51 +0000 -Subject: Write marker if core.img was written to filesystem - -The Debian bug reporting script includes a warning in this case. - -Patch-Name: core_in_fs.patch ---- - util/setup.c | 8 ++++++++ - 1 file changed, 8 insertions(+) - -diff --git a/util/setup.c b/util/setup.c -index 8aa5a39a7..3b5c46fde 100644 ---- a/util/setup.c -+++ b/util/setup.c -@@ -58,6 +58,8 @@ - - #include - -+#define CORE_IMG_IN_FS "setup_left_core_image_in_filesystem" -+ - /* On SPARC this program fills in various fields inside of the 'boot' and 'core' - * image files. - * -@@ -600,6 +602,8 @@ SETUP (const char *dir, - - grub_free (sectors); - -+ unlink (DEFAULT_DIRECTORY "/" CORE_IMG_IN_FS); -+ - goto finish; - } - -@@ -642,6 +646,10 @@ unable_to_embed: - /* The core image must be put on a filesystem unfortunately. */ - grub_util_info ("will leave the core image on the filesystem"); - -+ fp = grub_util_fd_open (DEFAULT_DIRECTORY "/" CORE_IMG_IN_FS, -+ GRUB_UTIL_FD_O_WRONLY); -+ grub_util_fd_close (fp); -+ - grub_util_biosdisk_flush (root_dev->disk); - - /* Clean out the blocklists. */ diff --git a/patches/grub/2.02/disable-build-of-documentation.patch b/patches/grub/2.02/disable-build-of-documentation.patch deleted file mode 100644 index 0e659f57f..000000000 --- a/patches/grub/2.02/disable-build-of-documentation.patch +++ /dev/null @@ -1,18 +0,0 @@ -GRUB2: Disable build of documentation - -ONIE does not require the building of the documentation - -diff --git a/Makefile.am b/Makefile.am -index 00a9663..93e1c0e 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -5,7 +5,7 @@ SUBDIRS = grub-core/gnulib . - if COND_real_platform - SUBDIRS += grub-core - endif --SUBDIRS += po docs util/bash-completion.d -+SUBDIRS += po util/bash-completion.d - - include $(top_srcdir)/conf/Makefile.common - include $(top_srcdir)/conf/Makefile.extra-dist - diff --git a/patches/grub/2.02/dont-fail-efi-warnings.patch b/patches/grub/2.02/dont-fail-efi-warnings.patch deleted file mode 100644 index 529143daf..000000000 --- a/patches/grub/2.02/dont-fail-efi-warnings.patch +++ /dev/null @@ -1,47 +0,0 @@ -From ba2b2485acc94bee484d08ae774cddf61758a21a Mon Sep 17 00:00:00 2001 -From: Mathieu Trudel-Lapierre -Date: Wed, 1 Nov 2017 17:03:36 -0400 -Subject: Don't fail build on some warnings we know might show up building - linuxefi - -Specifically: - -Wno-error=format= - -Wno-error=cast-align - -Wno-error=int-to-pointer-cast - -Wno-error=pointer-to-int-cast - -Wno-error=unused-parameter - -There are a few cases where we legitimately cast to memory that is bigger -than we need when building on one arch, because on a different arch it will -be just right. For example, grub_status_t can be int32 or int64, depending -on the size of void*. - -Signed-off-by: Mathieu Trudel-Lapierre - -Forwarded: no -Last-Updated: 2017-11-01 -Patch-Name: dont-fail-efi-warnings.patch ---- - grub-core/Makefile.core.def | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def -index e3662bb03..208b8c136 100644 ---- a/grub-core/Makefile.core.def -+++ b/grub-core/Makefile.core.def -@@ -1747,6 +1747,7 @@ module = { - - module = { - name = linuxefi; -+ cflags = '-Wno-error=format= -Wno-error=cast-align -Wno-error=int-to-pointer-cast -Wno-error=pointer-to-int-cast -Wno-error=unused-parameter'; - efi = loader/i386/efi/linux.c; - efi = lib/cmdline.c; - efi = loader/efi/linux.c; -@@ -1756,6 +1757,7 @@ module = { - - module = { - name = chain; -+ cflags = '-Wno-error=format= -Wno-error=cast-align -Wno-error=int-to-pointer-cast -Wno-error=pointer-to-int-cast -Wno-error=unused-parameter'; - efi = loader/efi/chainloader.c; - efi = loader/efi/linux.c; - i386_pc = loader/i386/pc/chainloader.c; diff --git a/patches/grub/2.02/efinet_set_dns_from_uefi_proto.patch b/patches/grub/2.02/efinet_set_dns_from_uefi_proto.patch deleted file mode 100644 index 1dcb302ff..000000000 --- a/patches/grub/2.02/efinet_set_dns_from_uefi_proto.patch +++ /dev/null @@ -1,339 +0,0 @@ -From 0b5adf8d3745cf68e40a745d7382717297516a0e Mon Sep 17 00:00:00 2001 -From: Michael Chang -Date: Thu, 27 Oct 2016 17:43:21 -0400 -Subject: efinet: Setting DNS server from UEFI protocol - -In the URI device path node, any name rahter than address can be used for -looking up the resources so that DNS service become needed to get answer of the -name's address. Unfortunately the DNS is not defined in any of the device path -nodes so that we use the EFI_IP4_CONFIG2_PROTOCOL and EFI_IP6_CONFIG_PROTOCOL -to obtain it. - -These two protcols are defined the sections of UEFI specification. - - 27.5 EFI IPv4 Configuration II Protocol - 27.7 EFI IPv6 Configuration Protocol - -include/grub/efi/api.h: -Add new structure and protocol UUID of EFI_IP4_CONFIG2_PROTOCOL and -EFI_IP6_CONFIG_PROTOCOL. - -grub-core/net/drivers/efi/efinet.c: -Use the EFI_IP4_CONFIG2_PROTOCOL and EFI_IP6_CONFIG_PROTOCOL to obtain the list -of DNS server address for IPv4 and IPv6 respectively. The address of DNS -servers is structured into DHCPACK packet and feed into the same DHCP packet -processing functions to ensure the network interface is setting up the same way -it used to be. - -Signed-off-by: Michael Chang -Signed-off-by: Ken Lin - -Patch-Name: efinet_set_dns_from_uefi_proto.patch ---- - grub-core/net/drivers/efi/efinet.c | 163 +++++++++++++++++++++++++++++++++++++ - include/grub/efi/api.h | 76 +++++++++++++++++ - 2 files changed, 239 insertions(+) - -diff --git a/grub-core/net/drivers/efi/efinet.c b/grub-core/net/drivers/efi/efinet.c -index 2d3b00f0e..82a28fb6e 100644 ---- a/grub-core/net/drivers/efi/efinet.c -+++ b/grub-core/net/drivers/efi/efinet.c -@@ -30,6 +30,8 @@ GRUB_MOD_LICENSE ("GPLv3+"); - /* GUID. */ - static grub_efi_guid_t net_io_guid = GRUB_EFI_SIMPLE_NETWORK_GUID; - static grub_efi_guid_t pxe_io_guid = GRUB_EFI_PXE_GUID; -+static grub_efi_guid_t ip4_config_guid = GRUB_EFI_IP4_CONFIG2_PROTOCOL_GUID; -+static grub_efi_guid_t ip6_config_guid = GRUB_EFI_IP6_CONFIG_PROTOCOL_GUID; - - static grub_err_t - send_card_buffer (struct grub_net_card *dev, -@@ -325,6 +327,125 @@ grub_efinet_findcards (void) - grub_free (handles); - } - -+static grub_efi_handle_t -+grub_efi_locate_device_path (grub_efi_guid_t *protocol, grub_efi_device_path_t *device_path, -+ grub_efi_device_path_t **r_device_path) -+{ -+ grub_efi_handle_t handle; -+ grub_efi_status_t status; -+ -+ status = efi_call_3 (grub_efi_system_table->boot_services->locate_device_path, -+ protocol, &device_path, &handle); -+ -+ if (status != GRUB_EFI_SUCCESS) -+ return 0; -+ -+ if (r_device_path) -+ *r_device_path = device_path; -+ -+ return handle; -+} -+ -+static grub_efi_ipv4_address_t * -+grub_dns_server_ip4_address (grub_efi_device_path_t *dp, grub_efi_uintn_t *num_dns) -+{ -+ grub_efi_handle_t hnd; -+ grub_efi_status_t status; -+ grub_efi_ip4_config2_protocol_t *conf; -+ grub_efi_ipv4_address_t *addrs; -+ grub_efi_uintn_t data_size = 1 * sizeof (grub_efi_ipv4_address_t); -+ -+ hnd = grub_efi_locate_device_path (&ip4_config_guid, dp, NULL); -+ -+ if (!hnd) -+ return 0; -+ -+ conf = grub_efi_open_protocol (hnd, &ip4_config_guid, -+ GRUB_EFI_OPEN_PROTOCOL_GET_PROTOCOL); -+ -+ if (!conf) -+ return 0; -+ -+ addrs = grub_malloc (data_size); -+ if (!addrs) -+ return 0; -+ -+ status = efi_call_4 (conf->get_data, conf, -+ GRUB_EFI_IP4_CONFIG2_DATA_TYPE_DNSSERVER, -+ &data_size, addrs); -+ -+ if (status == GRUB_EFI_BUFFER_TOO_SMALL) -+ { -+ grub_free (addrs); -+ addrs = grub_malloc (data_size); -+ if (!addrs) -+ return 0; -+ -+ status = efi_call_4 (conf->get_data, conf, -+ GRUB_EFI_IP4_CONFIG2_DATA_TYPE_DNSSERVER, -+ &data_size, addrs); -+ } -+ -+ if (status != GRUB_EFI_SUCCESS) -+ { -+ grub_free (addrs); -+ return 0; -+ } -+ -+ *num_dns = data_size / sizeof (grub_efi_ipv4_address_t); -+ return addrs; -+} -+ -+static grub_efi_ipv6_address_t * -+grub_dns_server_ip6_address (grub_efi_device_path_t *dp, grub_efi_uintn_t *num_dns) -+{ -+ grub_efi_handle_t hnd; -+ grub_efi_status_t status; -+ grub_efi_ip6_config_protocol_t *conf; -+ grub_efi_ipv6_address_t *addrs; -+ grub_efi_uintn_t data_size = 1 * sizeof (grub_efi_ipv6_address_t); -+ -+ hnd = grub_efi_locate_device_path (&ip6_config_guid, dp, NULL); -+ -+ if (!hnd) -+ return 0; -+ -+ conf = grub_efi_open_protocol (hnd, &ip6_config_guid, -+ GRUB_EFI_OPEN_PROTOCOL_GET_PROTOCOL); -+ -+ if (!conf) -+ return 0; -+ -+ addrs = grub_malloc (data_size); -+ if (!addrs) -+ return 0; -+ -+ status = efi_call_4 (conf->get_data, conf, -+ GRUB_EFI_IP6_CONFIG_DATA_TYPE_DNSSERVER, -+ &data_size, addrs); -+ -+ if (status == GRUB_EFI_BUFFER_TOO_SMALL) -+ { -+ grub_free (addrs); -+ addrs = grub_malloc (data_size); -+ if (!addrs) -+ return 0; -+ -+ status = efi_call_4 (conf->get_data, conf, -+ GRUB_EFI_IP6_CONFIG_DATA_TYPE_DNSSERVER, -+ &data_size, addrs); -+ } -+ -+ if (status != GRUB_EFI_SUCCESS) -+ { -+ grub_free (addrs); -+ return 0; -+ } -+ -+ *num_dns = data_size / sizeof (grub_efi_ipv6_address_t); -+ return addrs; -+} -+ - static struct grub_net_buff * - grub_efinet_create_dhcp_ack_from_device_path (grub_efi_device_path_t *dp, int *use_ipv6) - { -@@ -377,6 +498,8 @@ grub_efinet_create_dhcp_ack_from_device_path (grub_efi_device_path_t *dp, int *u - grub_efi_ipv4_device_path_t *ipv4 = (grub_efi_ipv4_device_path_t *) ldp; - struct grub_net_bootp_packet *bp; - grub_uint8_t *ptr; -+ grub_efi_ipv4_address_t *dns; -+ grub_efi_uintn_t num_dns; - - bp = (struct grub_net_bootp_packet *) nb->tail; - err = grub_netbuff_put (nb, sizeof (*bp) + 4); -@@ -438,6 +561,25 @@ grub_efinet_create_dhcp_ack_from_device_path (grub_efi_device_path_t *dp, int *u - *ptr++ = sizeof ("HTTPClient") - 1; - grub_memcpy (ptr, "HTTPClient", sizeof ("HTTPClient") - 1); - -+ dns = grub_dns_server_ip4_address (dp, &num_dns); -+ if (dns) -+ { -+ grub_efi_uintn_t size_dns = sizeof (*dns) * num_dns; -+ -+ ptr = nb->tail; -+ err = grub_netbuff_put (nb, size_dns + 2); -+ if (err) -+ { -+ grub_free (ddp); -+ grub_netbuff_free (nb); -+ return NULL; -+ } -+ *ptr++ = GRUB_NET_BOOTP_DNS; -+ *ptr++ = size_dns; -+ grub_memcpy (ptr, dns, size_dns); -+ grub_free (dns); -+ } -+ - ptr = nb->tail; - err = grub_netbuff_put (nb, 1); - if (err) -@@ -470,6 +612,8 @@ grub_efinet_create_dhcp_ack_from_device_path (grub_efi_device_path_t *dp, int *u - struct grub_net_dhcp6_option *opt; - struct grub_net_dhcp6_option_iana *iana; - struct grub_net_dhcp6_option_iaaddr *iaaddr; -+ grub_efi_ipv6_address_t *dns; -+ grub_efi_uintn_t num_dns; - - d6p = (struct grub_net_dhcp6_packet *)nb->tail; - err = grub_netbuff_put (nb, sizeof(*d6p)); -@@ -533,6 +677,25 @@ grub_efinet_create_dhcp_ack_from_device_path (grub_efi_device_path_t *dp, int *u - opt->len = grub_cpu_to_be16 (uri_len); - grub_memcpy (opt->data, uri_dp->uri, uri_len); - -+ dns = grub_dns_server_ip6_address (dp, &num_dns); -+ if (dns) -+ { -+ grub_efi_uintn_t size_dns = sizeof (*dns) * num_dns; -+ -+ opt = (struct grub_net_dhcp6_option *)nb->tail; -+ err = grub_netbuff_put (nb, sizeof(*opt) + size_dns); -+ if (err) -+ { -+ grub_free (ddp); -+ grub_netbuff_free (nb); -+ return NULL; -+ } -+ opt->code = grub_cpu_to_be16_compile_time (GRUB_NET_DHCP6_OPTION_DNS_SERVERS); -+ opt->len = grub_cpu_to_be16 (size_dns); -+ grub_memcpy (opt->data, dns, size_dns); -+ grub_free (dns); -+ } -+ - *use_ipv6 = 1; - } - -diff --git a/include/grub/efi/api.h b/include/grub/efi/api.h -index d5a12569b..99ba068e3 100644 ---- a/include/grub/efi/api.h -+++ b/include/grub/efi/api.h -@@ -334,6 +334,16 @@ - { 0x8B, 0x8C, 0xE2, 0x1B, 0x01, 0xAE, 0xF2, 0xB7 } \ - } - -+#define GRUB_EFI_IP4_CONFIG2_PROTOCOL_GUID \ -+ { 0x5b446ed1, 0xe30b, 0x4faa, \ -+ { 0x87, 0x1a, 0x36, 0x54, 0xec, 0xa3, 0x60, 0x80 } \ -+ } -+ -+#define GRUB_EFI_IP6_CONFIG_PROTOCOL_GUID \ -+ { 0x937fe521, 0x95ae, 0x4d1a, \ -+ { 0x89, 0x29, 0x48, 0xbc, 0xd9, 0x0a, 0xd3, 0x1a } \ -+ } -+ - struct grub_efi_sal_system_table - { - grub_uint32_t signature; -@@ -1749,6 +1759,72 @@ struct grub_efi_block_io - }; - typedef struct grub_efi_block_io grub_efi_block_io_t; - -+enum grub_efi_ip4_config2_data_type { -+ GRUB_EFI_IP4_CONFIG2_DATA_TYPE_INTERFACEINFO, -+ GRUB_EFI_IP4_CONFIG2_DATA_TYPE_POLICY, -+ GRUB_EFI_IP4_CONFIG2_DATA_TYPE_MANUAL_ADDRESS, -+ GRUB_EFI_IP4_CONFIG2_DATA_TYPE_GATEWAY, -+ GRUB_EFI_IP4_CONFIG2_DATA_TYPE_DNSSERVER, -+ GRUB_EFI_IP4_CONFIG2_DATA_TYPE_MAXIMUM -+}; -+typedef enum grub_efi_ip4_config2_data_type grub_efi_ip4_config2_data_type_t; -+ -+struct grub_efi_ip4_config2_protocol -+{ -+ grub_efi_status_t (*set_data) (struct grub_efi_ip4_config2_protocol *this, -+ grub_efi_ip4_config2_data_type_t data_type, -+ grub_efi_uintn_t data_size, -+ void *data); -+ -+ grub_efi_status_t (*get_data) (struct grub_efi_ip4_config2_protocol *this, -+ grub_efi_ip4_config2_data_type_t data_type, -+ grub_efi_uintn_t *data_size, -+ void *data); -+ -+ grub_efi_status_t (*register_data_notify) (struct grub_efi_ip4_config2_protocol *this, -+ grub_efi_ip4_config2_data_type_t data_type, -+ grub_efi_event_t event); -+ -+ grub_efi_status_t (*unregister_datanotify) (struct grub_efi_ip4_config2_protocol *this, -+ grub_efi_ip4_config2_data_type_t data_type, -+ grub_efi_event_t event); -+}; -+typedef struct grub_efi_ip4_config2_protocol grub_efi_ip4_config2_protocol_t; -+ -+enum grub_efi_ip6_config_data_type { -+ GRUB_EFI_IP6_CONFIG_DATA_TYPE_INTERFACEINFO, -+ GRUB_EFI_IP6_CONFIG_DATA_TYPE_ALT_INTERFACEID, -+ GRUB_EFI_IP6_CONFIG_DATA_TYPE_POLICY, -+ GRUB_EFI_IP6_CONFIG_DATA_TYPE_DUP_ADDR_DETECT_TRANSMITS, -+ GRUB_EFI_IP6_CONFIG_DATA_TYPE_MANUAL_ADDRESS, -+ GRUB_EFI_IP6_CONFIG_DATA_TYPE_GATEWAY, -+ GRUB_EFI_IP6_CONFIG_DATA_TYPE_DNSSERVER, -+ GRUB_EFI_IP6_CONFIG_DATA_TYPE_MAXIMUM -+}; -+typedef enum grub_efi_ip6_config_data_type grub_efi_ip6_config_data_type_t; -+ -+struct grub_efi_ip6_config_protocol -+{ -+ grub_efi_status_t (*set_data) (struct grub_efi_ip6_config_protocol *this, -+ grub_efi_ip6_config_data_type_t data_type, -+ grub_efi_uintn_t data_size, -+ void *data); -+ -+ grub_efi_status_t (*get_data) (struct grub_efi_ip6_config_protocol *this, -+ grub_efi_ip6_config_data_type_t data_type, -+ grub_efi_uintn_t *data_size, -+ void *data); -+ -+ grub_efi_status_t (*register_data_notify) (struct grub_efi_ip6_config_protocol *this, -+ grub_efi_ip6_config_data_type_t data_type, -+ grub_efi_event_t event); -+ -+ grub_efi_status_t (*unregister_datanotify) (struct grub_efi_ip6_config_protocol *this, -+ grub_efi_ip6_config_data_type_t data_type, -+ grub_efi_event_t event); -+}; -+typedef struct grub_efi_ip6_config_protocol grub_efi_ip6_config_protocol_t; -+ - #if (GRUB_TARGET_SIZEOF_VOID_P == 4) || defined (__ia64__) \ - || defined (__aarch64__) || defined (__MINGW64__) || defined (__CYGWIN__) - diff --git a/patches/grub/2.02/efinet_set_network_from_uefi_devpath.patch b/patches/grub/2.02/efinet_set_network_from_uefi_devpath.patch deleted file mode 100644 index 45dae0d62..000000000 --- a/patches/grub/2.02/efinet_set_network_from_uefi_devpath.patch +++ /dev/null @@ -1,388 +0,0 @@ -From 914f8b7c71bb707d48a1c8b951975795c9a352f0 Mon Sep 17 00:00:00 2001 -From: Michael Chang -Date: Thu, 27 Oct 2016 17:43:05 -0400 -Subject: efinet: Setting network from UEFI device path - -The PXE Base Code protocol used to obtain cached PXE DHCPACK packet is no -longer provided for HTTP Boot. Instead, we have to get the HTTP boot -information from the device path nodes defined in following UEFI Specification -sections. - - 9.3.5.12 IPv4 Device Path - 9.3.5.13 IPv6 Device Path - 9.3.5.23 Uniform Resource Identifiers (URI) Device Path - -This patch basically does: - -include/grub/efi/api.h: -Add new structure of Uniform Resource Identifiers (URI) Device Path - -grub-core/net/drivers/efi/efinet.c: -Check if PXE Base Code is available, if not it will try to obtain the netboot -information from the device path where the image booted from. The DHCPACK -packet is recoverd from the information in device patch and feed into the same -DHCP packet processing functions to ensure the network interface is setting up -the same way it used to be. - -Signed-off-by: Michael Chang -Signed-off-by: Ken Lin - -Patch-Name: efinet_set_network_from_uefi_devpath.patch ---- - grub-core/net/drivers/efi/efinet.c | 268 +++++++++++++++++++++++++++++++++++-- - include/grub/efi/api.h | 11 ++ - 2 files changed, 270 insertions(+), 9 deletions(-) - -diff --git a/grub-core/net/drivers/efi/efinet.c b/grub-core/net/drivers/efi/efinet.c -index fc90415f2..2d3b00f0e 100644 ---- a/grub-core/net/drivers/efi/efinet.c -+++ b/grub-core/net/drivers/efi/efinet.c -@@ -23,6 +23,7 @@ - #include - #include - #include -+#include - - GRUB_MOD_LICENSE ("GPLv3+"); - -@@ -324,6 +325,221 @@ grub_efinet_findcards (void) - grub_free (handles); - } - -+static struct grub_net_buff * -+grub_efinet_create_dhcp_ack_from_device_path (grub_efi_device_path_t *dp, int *use_ipv6) -+{ -+ grub_efi_uint16_t uri_len; -+ grub_efi_device_path_t *ldp, *ddp; -+ grub_efi_uri_device_path_t *uri_dp; -+ struct grub_net_buff *nb; -+ grub_err_t err; -+ -+ ddp = grub_efi_duplicate_device_path (dp); -+ ldp = grub_efi_find_last_device_path (ddp); -+ -+ if (GRUB_EFI_DEVICE_PATH_TYPE (ldp) != GRUB_EFI_MESSAGING_DEVICE_PATH_TYPE -+ || GRUB_EFI_DEVICE_PATH_SUBTYPE (ldp) != GRUB_EFI_URI_DEVICE_PATH_SUBTYPE) -+ { -+ grub_free (ddp); -+ return NULL; -+ } -+ -+ uri_len = GRUB_EFI_DEVICE_PATH_LENGTH (ldp) > 4 ? GRUB_EFI_DEVICE_PATH_LENGTH (ldp) - 4 : 0; -+ -+ if (!uri_len) -+ { -+ grub_free (ddp); -+ return NULL; -+ } -+ -+ uri_dp = (grub_efi_uri_device_path_t *) ldp; -+ -+ ldp->type = GRUB_EFI_END_DEVICE_PATH_TYPE; -+ ldp->subtype = GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE; -+ ldp->length = sizeof (*ldp); -+ -+ ldp = grub_efi_find_last_device_path (ddp); -+ -+ if (GRUB_EFI_DEVICE_PATH_TYPE (ldp) != GRUB_EFI_MESSAGING_DEVICE_PATH_TYPE -+ || (GRUB_EFI_DEVICE_PATH_SUBTYPE (ldp) != GRUB_EFI_IPV4_DEVICE_PATH_SUBTYPE -+ && GRUB_EFI_DEVICE_PATH_SUBTYPE (ldp) != GRUB_EFI_IPV6_DEVICE_PATH_SUBTYPE)) -+ { -+ grub_free (ddp); -+ return NULL; -+ } -+ -+ nb = grub_netbuff_alloc (512); -+ if (!nb) -+ return NULL; -+ -+ if (GRUB_EFI_DEVICE_PATH_SUBTYPE (ldp) == GRUB_EFI_IPV4_DEVICE_PATH_SUBTYPE) -+ { -+ grub_efi_ipv4_device_path_t *ipv4 = (grub_efi_ipv4_device_path_t *) ldp; -+ struct grub_net_bootp_packet *bp; -+ grub_uint8_t *ptr; -+ -+ bp = (struct grub_net_bootp_packet *) nb->tail; -+ err = grub_netbuff_put (nb, sizeof (*bp) + 4); -+ if (err) -+ { -+ grub_free (ddp); -+ grub_netbuff_free (nb); -+ return NULL; -+ } -+ -+ if (sizeof(bp->boot_file) < uri_len) -+ { -+ grub_free (ddp); -+ grub_netbuff_free (nb); -+ return NULL; -+ } -+ grub_memcpy (bp->boot_file, uri_dp->uri, uri_len); -+ grub_memcpy (&bp->your_ip, ipv4->local_ip_address, sizeof (bp->your_ip)); -+ grub_memcpy (&bp->server_ip, ipv4->remote_ip_address, sizeof (bp->server_ip)); -+ -+ bp->vendor[0] = GRUB_NET_BOOTP_RFC1048_MAGIC_0; -+ bp->vendor[1] = GRUB_NET_BOOTP_RFC1048_MAGIC_1; -+ bp->vendor[2] = GRUB_NET_BOOTP_RFC1048_MAGIC_2; -+ bp->vendor[3] = GRUB_NET_BOOTP_RFC1048_MAGIC_3; -+ -+ ptr = nb->tail; -+ err = grub_netbuff_put (nb, sizeof (ipv4->subnet_mask) + 2); -+ if (err) -+ { -+ grub_free (ddp); -+ grub_netbuff_free (nb); -+ return NULL; -+ } -+ *ptr++ = GRUB_NET_BOOTP_NETMASK; -+ *ptr++ = sizeof (ipv4->subnet_mask); -+ grub_memcpy (ptr, ipv4->subnet_mask, sizeof (ipv4->subnet_mask)); -+ -+ ptr = nb->tail; -+ err = grub_netbuff_put (nb, sizeof (ipv4->gateway_ip_address) + 2); -+ if (err) -+ { -+ grub_free (ddp); -+ grub_netbuff_free (nb); -+ return NULL; -+ } -+ *ptr++ = GRUB_NET_BOOTP_ROUTER; -+ *ptr++ = sizeof (ipv4->gateway_ip_address); -+ grub_memcpy (ptr, ipv4->gateway_ip_address, sizeof (ipv4->gateway_ip_address)); -+ -+ ptr = nb->tail; -+ err = grub_netbuff_put (nb, sizeof ("HTTPClient") + 1); -+ if (err) -+ { -+ grub_free (ddp); -+ grub_netbuff_free (nb); -+ return NULL; -+ } -+ *ptr++ = GRUB_NET_BOOTP_VENDOR_CLASS_IDENTIFIER; -+ *ptr++ = sizeof ("HTTPClient") - 1; -+ grub_memcpy (ptr, "HTTPClient", sizeof ("HTTPClient") - 1); -+ -+ ptr = nb->tail; -+ err = grub_netbuff_put (nb, 1); -+ if (err) -+ { -+ grub_free (ddp); -+ grub_netbuff_free (nb); -+ return NULL; -+ } -+ *ptr = GRUB_NET_BOOTP_END; -+ *use_ipv6 = 0; -+ -+ ldp->type = GRUB_EFI_END_DEVICE_PATH_TYPE; -+ ldp->subtype = GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE; -+ ldp->length = sizeof (*ldp); -+ ldp = grub_efi_find_last_device_path (ddp); -+ -+ if (GRUB_EFI_DEVICE_PATH_SUBTYPE (ldp) == GRUB_EFI_MAC_ADDRESS_DEVICE_PATH_SUBTYPE) -+ { -+ grub_efi_mac_address_device_path_t *mac = (grub_efi_mac_address_device_path_t *) ldp; -+ bp->hw_type = mac->if_type; -+ bp->hw_len = sizeof (bp->mac_addr); -+ grub_memcpy (bp->mac_addr, mac->mac_address, bp->hw_len); -+ } -+ } -+ else -+ { -+ grub_efi_ipv6_device_path_t *ipv6 = (grub_efi_ipv6_device_path_t *) ldp; -+ -+ struct grub_net_dhcp6_packet *d6p; -+ struct grub_net_dhcp6_option *opt; -+ struct grub_net_dhcp6_option_iana *iana; -+ struct grub_net_dhcp6_option_iaaddr *iaaddr; -+ -+ d6p = (struct grub_net_dhcp6_packet *)nb->tail; -+ err = grub_netbuff_put (nb, sizeof(*d6p)); -+ if (err) -+ { -+ grub_free (ddp); -+ grub_netbuff_free (nb); -+ return NULL; -+ } -+ d6p->message_type = GRUB_NET_DHCP6_REPLY; -+ -+ opt = (struct grub_net_dhcp6_option *)nb->tail; -+ err = grub_netbuff_put (nb, sizeof(*opt)); -+ if (err) -+ { -+ grub_free (ddp); -+ grub_netbuff_free (nb); -+ return NULL; -+ } -+ opt->code = grub_cpu_to_be16_compile_time (GRUB_NET_DHCP6_OPTION_IA_NA); -+ opt->len = grub_cpu_to_be16_compile_time (sizeof(*iana) + sizeof(*opt) + sizeof(*iaaddr)); -+ -+ err = grub_netbuff_put (nb, sizeof(*iana)); -+ if (err) -+ { -+ grub_free (ddp); -+ grub_netbuff_free (nb); -+ return NULL; -+ } -+ -+ opt = (struct grub_net_dhcp6_option *)nb->tail; -+ err = grub_netbuff_put (nb, sizeof(*opt)); -+ if (err) -+ { -+ grub_free (ddp); -+ grub_netbuff_free (nb); -+ return NULL; -+ } -+ opt->code = grub_cpu_to_be16_compile_time (GRUB_NET_DHCP6_OPTION_IAADDR); -+ opt->len = grub_cpu_to_be16_compile_time (sizeof (*iaaddr)); -+ -+ iaaddr = (struct grub_net_dhcp6_option_iaaddr *)nb->tail; -+ err = grub_netbuff_put (nb, sizeof(*iaaddr)); -+ if (err) -+ { -+ grub_free (ddp); -+ grub_netbuff_free (nb); -+ return NULL; -+ } -+ grub_memcpy (iaaddr->addr, ipv6->local_ip_address, sizeof(ipv6->local_ip_address)); -+ -+ opt = (struct grub_net_dhcp6_option *)nb->tail; -+ err = grub_netbuff_put (nb, sizeof(*opt) + uri_len); -+ if (err) -+ { -+ grub_free (ddp); -+ grub_netbuff_free (nb); -+ return NULL; -+ } -+ opt->code = grub_cpu_to_be16_compile_time (GRUB_NET_DHCP6_OPTION_BOOTFILE_URL); -+ opt->len = grub_cpu_to_be16 (uri_len); -+ grub_memcpy (opt->data, uri_dp->uri, uri_len); -+ -+ *use_ipv6 = 1; -+ } -+ -+ grub_free (ddp); -+ return nb; -+} -+ - static void - grub_efi_net_config_real (grub_efi_handle_t hnd, char **device, - char **path) -@@ -340,6 +556,11 @@ grub_efi_net_config_real (grub_efi_handle_t hnd, char **device, - grub_efi_device_path_t *cdp; - struct grub_efi_pxe *pxe; - struct grub_efi_pxe_mode *pxe_mode; -+ grub_uint8_t *packet_buf; -+ grub_size_t packet_bufsz ; -+ int ipv6; -+ struct grub_net_buff *nb = NULL; -+ - if (card->driver != &efidriver) - continue; - cdp = grub_efi_get_device_path (card->efi_handle); -@@ -359,11 +580,21 @@ grub_efi_net_config_real (grub_efi_handle_t hnd, char **device, - ldp = grub_efi_find_last_device_path (dp); - if (GRUB_EFI_DEVICE_PATH_TYPE (ldp) != GRUB_EFI_MESSAGING_DEVICE_PATH_TYPE - || (GRUB_EFI_DEVICE_PATH_SUBTYPE (ldp) != GRUB_EFI_IPV4_DEVICE_PATH_SUBTYPE -- && GRUB_EFI_DEVICE_PATH_SUBTYPE (ldp) != GRUB_EFI_IPV6_DEVICE_PATH_SUBTYPE)) -+ && GRUB_EFI_DEVICE_PATH_SUBTYPE (ldp) != GRUB_EFI_IPV6_DEVICE_PATH_SUBTYPE -+ && GRUB_EFI_DEVICE_PATH_SUBTYPE (ldp) != GRUB_EFI_URI_DEVICE_PATH_SUBTYPE)) - continue; - dup_dp = grub_efi_duplicate_device_path (dp); - if (!dup_dp) - continue; -+ -+ if (GRUB_EFI_DEVICE_PATH_SUBTYPE (ldp) == GRUB_EFI_URI_DEVICE_PATH_SUBTYPE) -+ { -+ dup_ldp = grub_efi_find_last_device_path (dup_dp); -+ dup_ldp->type = GRUB_EFI_END_DEVICE_PATH_TYPE; -+ dup_ldp->subtype = GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE; -+ dup_ldp->length = sizeof (*dup_ldp); -+ } -+ - dup_ldp = grub_efi_find_last_device_path (dup_dp); - dup_ldp->type = GRUB_EFI_END_DEVICE_PATH_TYPE; - dup_ldp->subtype = GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE; -@@ -375,16 +606,31 @@ grub_efi_net_config_real (grub_efi_handle_t hnd, char **device, - } - pxe = grub_efi_open_protocol (hnd, &pxe_io_guid, - GRUB_EFI_OPEN_PROTOCOL_GET_PROTOCOL); -- if (! pxe) -- continue; -- pxe_mode = pxe->mode; -+ if (!pxe) -+ { -+ nb = grub_efinet_create_dhcp_ack_from_device_path (dp, &ipv6); -+ if (!nb) -+ { -+ grub_print_error (); -+ continue; -+ } -+ packet_buf = nb->head; -+ packet_bufsz = nb->tail - nb->head; -+ } -+ else -+ { -+ pxe_mode = pxe->mode; -+ packet_buf = (grub_uint8_t *) &pxe_mode->dhcp_ack; -+ packet_bufsz = sizeof (pxe_mode->dhcp_ack); -+ ipv6 = pxe_mode->using_ipv6; -+ } - -- if (pxe_mode->using_ipv6) -+ if (ipv6) - { - grub_net_configure_by_dhcpv6_reply (card->name, card, 0, - (struct grub_net_dhcp6_packet *) -- &pxe_mode->dhcp_ack, -- sizeof (pxe_mode->dhcp_ack), -+ packet_buf, -+ packet_bufsz, - 1, device, path); - if (grub_errno) - grub_print_error (); -@@ -393,10 +639,14 @@ grub_efi_net_config_real (grub_efi_handle_t hnd, char **device, - { - grub_net_configure_by_dhcp_ack (card->name, card, 0, - (struct grub_net_bootp_packet *) -- &pxe_mode->dhcp_ack, -- sizeof (pxe_mode->dhcp_ack), -+ packet_buf, -+ packet_bufsz, - 1, device, path); - } -+ -+ if (nb) -+ grub_netbuff_free (nb); -+ - return; - } - } -diff --git a/include/grub/efi/api.h b/include/grub/efi/api.h -index 92f9b5a6f..d5a12569b 100644 ---- a/include/grub/efi/api.h -+++ b/include/grub/efi/api.h -@@ -825,6 +825,8 @@ struct grub_efi_ipv4_device_path - grub_efi_uint16_t remote_port; - grub_efi_uint16_t protocol; - grub_efi_uint8_t static_ip_address; -+ grub_efi_ipv4_address_t gateway_ip_address; -+ grub_efi_ipv4_address_t subnet_mask; - } GRUB_PACKED; - typedef struct grub_efi_ipv4_device_path grub_efi_ipv4_device_path_t; - -@@ -879,6 +881,15 @@ struct grub_efi_sata_device_path - } GRUB_PACKED; - typedef struct grub_efi_sata_device_path grub_efi_sata_device_path_t; - -+#define GRUB_EFI_URI_DEVICE_PATH_SUBTYPE 24 -+ -+struct grub_efi_uri_device_path -+{ -+ grub_efi_device_path_t header; -+ grub_efi_uint8_t uri[0]; -+} GRUB_PACKED; -+typedef struct grub_efi_uri_device_path grub_efi_uri_device_path_t; -+ - #define GRUB_EFI_VENDOR_MESSAGING_DEVICE_PATH_SUBTYPE 10 - - /* Media Device Path. */ diff --git a/patches/grub/2.02/efinet_uefi_ipv6_pxe_support.patch b/patches/grub/2.02/efinet_uefi_ipv6_pxe_support.patch deleted file mode 100644 index 1c12c3e59..000000000 --- a/patches/grub/2.02/efinet_uefi_ipv6_pxe_support.patch +++ /dev/null @@ -1,126 +0,0 @@ -From 559610a5daacf7f6da1316d0fa3977bd59e574f7 Mon Sep 17 00:00:00 2001 -From: Michael Chang -Date: Thu, 27 Oct 2016 17:41:21 -0400 -Subject: efinet: UEFI IPv6 PXE support - -When grub2 image is booted from UEFI IPv6 PXE, the DHCPv6 Reply packet is -cached in firmware buffer which can be obtained by PXE Base Code protocol. The -network interface can be setup through the parameters in that obtained packet. - -Signed-off-by: Michael Chang -Signed-off-by: Ken Lin - -Patch-Name: efinet_uefi_ipv6_pxe_support.patch ---- - grub-core/net/drivers/efi/efinet.c | 24 +++++++++++++---- - include/grub/efi/api.h | 55 +++++++++++++++++++++++++++++++++++++- - 2 files changed, 73 insertions(+), 6 deletions(-) - -diff --git a/grub-core/net/drivers/efi/efinet.c b/grub-core/net/drivers/efi/efinet.c -index 5388f952b..fc90415f2 100644 ---- a/grub-core/net/drivers/efi/efinet.c -+++ b/grub-core/net/drivers/efi/efinet.c -@@ -378,11 +378,25 @@ grub_efi_net_config_real (grub_efi_handle_t hnd, char **device, - if (! pxe) - continue; - pxe_mode = pxe->mode; -- grub_net_configure_by_dhcp_ack (card->name, card, 0, -- (struct grub_net_bootp_packet *) -- &pxe_mode->dhcp_ack, -- sizeof (pxe_mode->dhcp_ack), -- 1, device, path); -+ -+ if (pxe_mode->using_ipv6) -+ { -+ grub_net_configure_by_dhcpv6_reply (card->name, card, 0, -+ (struct grub_net_dhcp6_packet *) -+ &pxe_mode->dhcp_ack, -+ sizeof (pxe_mode->dhcp_ack), -+ 1, device, path); -+ if (grub_errno) -+ grub_print_error (); -+ } -+ else -+ { -+ grub_net_configure_by_dhcp_ack (card->name, card, 0, -+ (struct grub_net_bootp_packet *) -+ &pxe_mode->dhcp_ack, -+ sizeof (pxe_mode->dhcp_ack), -+ 1, device, path); -+ } - return; - } - } -diff --git a/include/grub/efi/api.h b/include/grub/efi/api.h -index c7c9f0e1d..92f9b5a6f 100644 ---- a/include/grub/efi/api.h -+++ b/include/grub/efi/api.h -@@ -1452,14 +1452,67 @@ typedef struct grub_efi_simple_text_output_interface grub_efi_simple_text_output - - typedef grub_uint8_t grub_efi_pxe_packet_t[1472]; - -+typedef struct { -+ grub_uint8_t addr[4]; -+} grub_efi_pxe_ipv4_address_t; -+ -+typedef struct { -+ grub_uint8_t addr[16]; -+} grub_efi_pxe_ipv6_address_t; -+ -+typedef struct { -+ grub_uint8_t addr[32]; -+} grub_efi_pxe_mac_address_t; -+ -+typedef union { -+ grub_uint32_t addr[4]; -+ grub_efi_pxe_ipv4_address_t v4; -+ grub_efi_pxe_ipv6_address_t v6; -+} grub_efi_pxe_ip_address_t; -+ -+#define GRUB_EFI_PXE_BASE_CODE_MAX_IPCNT 8 -+typedef struct { -+ grub_uint8_t filters; -+ grub_uint8_t ip_cnt; -+ grub_uint16_t reserved; -+ grub_efi_pxe_ip_address_t ip_list[GRUB_EFI_PXE_BASE_CODE_MAX_IPCNT]; -+} grub_efi_pxe_ip_filter_t; -+ -+typedef struct { -+ grub_efi_pxe_ip_address_t ip_addr; -+ grub_efi_pxe_mac_address_t mac_addr; -+} grub_efi_pxe_arp_entry_t; -+ -+typedef struct { -+ grub_efi_pxe_ip_address_t ip_addr; -+ grub_efi_pxe_ip_address_t subnet_mask; -+ grub_efi_pxe_ip_address_t gw_addr; -+} grub_efi_pxe_route_entry_t; -+ -+ -+#define GRUB_EFI_PXE_BASE_CODE_MAX_ARP_ENTRIES 8 -+#define GRUB_EFI_PXE_BASE_CODE_MAX_ROUTE_ENTRIES 8 -+ - typedef struct grub_efi_pxe_mode - { -- grub_uint8_t unused[52]; -+ grub_uint8_t started; -+ grub_uint8_t ipv6_available; -+ grub_uint8_t ipv6_supported; -+ grub_uint8_t using_ipv6; -+ grub_uint8_t unused[16]; -+ grub_efi_pxe_ip_address_t station_ip; -+ grub_efi_pxe_ip_address_t subnet_mask; - grub_efi_pxe_packet_t dhcp_discover; - grub_efi_pxe_packet_t dhcp_ack; - grub_efi_pxe_packet_t proxy_offer; - grub_efi_pxe_packet_t pxe_discover; - grub_efi_pxe_packet_t pxe_reply; -+ grub_efi_pxe_packet_t pxe_bis_reply; -+ grub_efi_pxe_ip_filter_t ip_filter; -+ grub_uint32_t arp_cache_entries; -+ grub_efi_pxe_arp_entry_t arp_cache[GRUB_EFI_PXE_BASE_CODE_MAX_ARP_ENTRIES]; -+ grub_uint32_t route_table_entries; -+ grub_efi_pxe_route_entry_t route_table[GRUB_EFI_PXE_BASE_CODE_MAX_ROUTE_ENTRIES]; - } grub_efi_pxe_mode_t; - - typedef struct grub_efi_pxe diff --git a/patches/grub/2.02/ext4_feature_encrypt.patch b/patches/grub/2.02/ext4_feature_encrypt.patch deleted file mode 100644 index 65b9b9f69..000000000 --- a/patches/grub/2.02/ext4_feature_encrypt.patch +++ /dev/null @@ -1,143 +0,0 @@ -From 47a39db1b92abd0030b6be6c3a809bd9e4f39def Mon Sep 17 00:00:00 2001 -From: Eric Biggers -Date: Thu, 29 Jun 2017 13:27:49 +0000 -Subject: Allow GRUB to mount ext2/3/4 filesystems that have the encryption - feature. - -On such a filesystem, inodes may have EXT4_ENCRYPT_FLAG set. -For a regular file, this means its contents are encrypted; for a -directory, this means the filenames in its directory entries are -encrypted; and for a symlink, this means its target is encrypted. Since -GRUB cannot decrypt encrypted contents or filenames, just issue an error -if it would need to do so. This is sufficient to allow unencrypted boot -files to co-exist with encrypted files elsewhere on the filesystem. - -(Note that encrypted regular files and symlinks will not normally be -encountered outside an encrypted directory; however, it's possible via -hard links, so they still need to be handled.) - -Tested by booting from an ext4 /boot partition on which I had run -'tune2fs -O encrypt'. I also verified that the expected error messages -are printed when trying to access encrypted directories, files, and -symlinks from the GRUB command line. Also ran 'sudo ./grub-fs-tester -ext4_encrypt'; note that this requires e2fsprogs v1.43+ and Linux v4.1+. - -Signed-off-by: Eric Biggers - -Origin: upstream, https://git.savannah.gnu.org/cgit/grub.git/commit/?id=734668238fcc0ef691a080839e04f33854fa133a -Bug-Debian: https://bugs.debian.org/840204 -Last-Update: 2017-07-06 - -Patch-Name: ext4_feature_encrypt.patch ---- - grub-core/fs/ext2.c | 23 ++++++++++++++++++++++- - tests/ext234_test.in | 1 + - tests/util/grub-fs-tester.in | 10 ++++++++++ - 3 files changed, 33 insertions(+), 1 deletion(-) - -diff --git a/grub-core/fs/ext2.c b/grub-core/fs/ext2.c -index cdce63bcc..b8ad75a0f 100644 ---- a/grub-core/fs/ext2.c -+++ b/grub-core/fs/ext2.c -@@ -102,6 +102,7 @@ GRUB_MOD_LICENSE ("GPLv3+"); - #define EXT4_FEATURE_INCOMPAT_64BIT 0x0080 - #define EXT4_FEATURE_INCOMPAT_MMP 0x0100 - #define EXT4_FEATURE_INCOMPAT_FLEX_BG 0x0200 -+#define EXT4_FEATURE_INCOMPAT_ENCRYPT 0x10000 - - /* The set of back-incompatible features this driver DOES support. Add (OR) - * flags here as the related features are implemented into the driver. */ -@@ -109,7 +110,8 @@ GRUB_MOD_LICENSE ("GPLv3+"); - | EXT4_FEATURE_INCOMPAT_EXTENTS \ - | EXT4_FEATURE_INCOMPAT_FLEX_BG \ - | EXT2_FEATURE_INCOMPAT_META_BG \ -- | EXT4_FEATURE_INCOMPAT_64BIT) -+ | EXT4_FEATURE_INCOMPAT_64BIT \ -+ | EXT4_FEATURE_INCOMPAT_ENCRYPT) - /* List of rationales for the ignored "incompatible" features: - * needs_recovery: Not really back-incompatible - was added as such to forbid - * ext2 drivers from mounting an ext3 volume with a dirty -@@ -138,6 +140,7 @@ GRUB_MOD_LICENSE ("GPLv3+"); - #define EXT3_JOURNAL_FLAG_DELETED 4 - #define EXT3_JOURNAL_FLAG_LAST_TAG 8 - -+#define EXT4_ENCRYPT_FLAG 0x800 - #define EXT4_EXTENTS_FLAG 0x80000 - - /* The ext2 superblock. */ -@@ -706,6 +709,12 @@ grub_ext2_read_symlink (grub_fshelp_node_t node) - grub_ext2_read_inode (diro->data, diro->ino, &diro->inode); - if (grub_errno) - return 0; -+ -+ if (diro->inode.flags & grub_cpu_to_le32_compile_time (EXT4_ENCRYPT_FLAG)) -+ { -+ grub_error (GRUB_ERR_NOT_IMPLEMENTED_YET, "symlink is encrypted"); -+ return 0; -+ } - } - - symlink = grub_malloc (grub_le_to_cpu32 (diro->inode.size) + 1); -@@ -749,6 +758,12 @@ grub_ext2_iterate_dir (grub_fshelp_node_t dir, - return 0; - } - -+ if (diro->inode.flags & grub_cpu_to_le32_compile_time (EXT4_ENCRYPT_FLAG)) -+ { -+ grub_error (GRUB_ERR_NOT_IMPLEMENTED_YET, "directory is encrypted"); -+ return 0; -+ } -+ - /* Search the file. */ - while (fpos < grub_le_to_cpu32 (diro->inode.size)) - { -@@ -859,6 +874,12 @@ grub_ext2_open (struct grub_file *file, const char *name) - goto fail; - } - -+ if (fdiro->inode.flags & grub_cpu_to_le32_compile_time (EXT4_ENCRYPT_FLAG)) -+ { -+ err = grub_error (GRUB_ERR_NOT_IMPLEMENTED_YET, "file is encrypted"); -+ goto fail; -+ } -+ - grub_memcpy (data->inode, &fdiro->inode, sizeof (struct grub_ext2_inode)); - grub_free (fdiro); - -diff --git a/tests/ext234_test.in b/tests/ext234_test.in -index c986960a8..5f4553607 100644 ---- a/tests/ext234_test.in -+++ b/tests/ext234_test.in -@@ -30,3 +30,4 @@ fi - "@builddir@/grub-fs-tester" ext3 - "@builddir@/grub-fs-tester" ext4 - "@builddir@/grub-fs-tester" ext4_metabg -+"@builddir@/grub-fs-tester" ext4_encrypt -diff --git a/tests/util/grub-fs-tester.in b/tests/util/grub-fs-tester.in -index 2337771a1..5219aa8b4 100644 ---- a/tests/util/grub-fs-tester.in -+++ b/tests/util/grub-fs-tester.in -@@ -135,6 +135,12 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + - # Could go further but what's the point? - MAXBLKSIZE=$((65536*1024)) - ;; -+ xext4_encrypt) -+ # OS LIMITATION: Linux currently only allows the 'encrypt' feature -+ # in combination with block_size = PAGE_SIZE (4096 bytes on x86). -+ MINBLKSIZE=$(getconf PAGE_SIZE) -+ MAXBLKSIZE=$MINBLKSIZE -+ ;; - xext*) - MINBLKSIZE=1024 - if [ $MINBLKSIZE -lt $SECSIZE ]; then -@@ -766,6 +772,10 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + - MKE2FS_DEVICE_SECTSIZE=$SECSIZE "mkfs.ext4" -O meta_bg,^resize_inode -b $BLKSIZE -L "$FSLABEL" -q "${LODEVICES[0]}" - MOUNTFS=ext4 - ;; -+ xext4_encrypt) -+ MKE2FS_DEVICE_SECTSIZE=$SECSIZE "mkfs.ext4" -O encrypt -b $BLKSIZE -L "$FSLABEL" -q "${MOUNTDEVICE}" -+ MOUNTFS=ext4 -+ ;; - xext*) - MKE2FS_DEVICE_SECTSIZE=$SECSIZE "mkfs.$fs" -b $BLKSIZE -L "$FSLABEL" -q "${LODEVICES[0]}" ;; - xxfs) diff --git a/patches/grub/2.02/gcc7.patch b/patches/grub/2.02/gcc7.patch deleted file mode 100644 index 97012606d..000000000 --- a/patches/grub/2.02/gcc7.patch +++ /dev/null @@ -1,23 +0,0 @@ -When building grub using gcc-7, with -Werror=unused-value enabled, we -hit this error: - - grub_script.yy.c:19:22: error: statement with no effect [-Werror=unused-value] - #define fprintf(...) 0 - -This patch follows the approach from the gcc manual, -https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html, and casts the -0 value to (void). - -diff --git a/grub-core/script/yylex.l b/grub-core/script/yylex.l -index 95b2191..71d288f 100644 ---- a/grub-core/script/yylex.l -+++ b/grub-core/script/yylex.l -@@ -91,7 +91,7 @@ typedef size_t yy_size_t; - #define stdin 0 - #define stdout 0 - --#define fprintf(...) 0 -+#define fprintf(...) ((void)0) - #define exit(...) grub_fatal("fatal error in lexer") - #endif - diff --git a/patches/grub/2.02/gcc8.patch b/patches/grub/2.02/gcc8.patch deleted file mode 100644 index feb325c98..000000000 --- a/patches/grub/2.02/gcc8.patch +++ /dev/null @@ -1,64 +0,0 @@ -When building with GCC 8, there are several errors regarding packed-not-aligned. - - -./include/grub/gpt_partition.h:79:1: error: alignment 1 of ‘struct -grub_gpt_partentry’ is less than 8 [-Werror=packed-not-aligned] - -This patch tries to fix the build error by cleaning up the ambiguity of placing -aligned structure in a packed one. In "struct grub_btrfs_time" and "struct -grub_gpt_part_type", the aligned attribute seems to be superfluous, and also -has to be packed, to ensure the structure is bit-to-bit mapped to the format -laid on disk. I think we could blame to copy and paste error here for the -mistake. In "struct efi_variable", we have to use grub_efi_packed_guid_t, as -the name suggests. :) - -Signed-off-by: Michael Chang -Tested-by: Michael Chang - ---- - grub-core/fs/btrfs.c | 2 +- - include/grub/efiemu/runtime.h | 2 +- - include/grub/gpt_partition.h | 2 +- - 3 files changed, 3 insertions(+), 3 deletions(-) - -diff --git a/grub-core/fs/btrfs.c b/grub-core/fs/btrfs.c -index 4849c1ceb..be195448d 100644 ---- a/grub-core/fs/btrfs.c -+++ b/grub-core/fs/btrfs.c -@@ -175,7 +175,7 @@ struct grub_btrfs_time - { - grub_int64_t sec; - grub_uint32_t nanosec; --} __attribute__ ((aligned (4))); -+} GRUB_PACKED; - - struct grub_btrfs_inode - { -diff --git a/include/grub/efiemu/runtime.h b/include/grub/efiemu/runtime.h -index 9b6b729f4..36d2dedf4 100644 ---- a/include/grub/efiemu/runtime.h -+++ b/include/grub/efiemu/runtime.h -@@ -29,7 +29,7 @@ struct grub_efiemu_ptv_rel - - struct efi_variable - { -- grub_efi_guid_t guid; -+ grub_efi_packed_guid_t guid; - grub_uint32_t namelen; - grub_uint32_t size; - grub_efi_uint32_t attributes; -diff --git a/include/grub/gpt_partition.h b/include/grub/gpt_partition.h -index 1b32f6725..9668a68c3 100644 ---- a/include/grub/gpt_partition.h -+++ b/include/grub/gpt_partition.h -@@ -28,7 +28,7 @@ struct grub_gpt_part_type - grub_uint16_t data2; - grub_uint16_t data3; - grub_uint8_t data4[8]; --} __attribute__ ((aligned(8))); -+} GRUB_PACKED; - typedef struct grub_gpt_part_type grub_gpt_part_type_t; - - #define GRUB_GPT_PARTITION_TYPE_EMPTY \ --- -2.13.6 diff --git a/patches/grub/2.02/gettext_quiet.patch b/patches/grub/2.02/gettext_quiet.patch deleted file mode 100644 index 162b01afd..000000000 --- a/patches/grub/2.02/gettext_quiet.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 56c88e431207238935aee7d7245a458ddb21e3d2 Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Mon, 13 Jan 2014 12:13:02 +0000 -Subject: Silence error messages when translations are unavailable - -Bug: https://savannah.gnu.org/bugs/?35880 -Forwarded: https://savannah.gnu.org/bugs/?35880 -Last-Update: 2013-11-14 - -Patch-Name: gettext_quiet.patch ---- - grub-core/gettext/gettext.c | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/grub-core/gettext/gettext.c b/grub-core/gettext/gettext.c -index 4880cefe3..3098e8918 100644 ---- a/grub-core/gettext/gettext.c -+++ b/grub-core/gettext/gettext.c -@@ -427,6 +427,11 @@ grub_gettext_init_ext (struct grub_gettext_context *ctx, - if (locale[0] == 'e' && locale[1] == 'n' - && (locale[2] == '\0' || locale[2] == '_')) - grub_errno = err = GRUB_ERR_NONE; -+ -+ /* If no translations are available, fall back to untranslated text. */ -+ if (err == GRUB_ERR_FILE_NOT_FOUND) -+ grub_errno = err = GRUB_ERR_NONE; -+ - return err; - } - diff --git a/patches/grub/2.02/grub-install-efibootmgr-check.patch b/patches/grub/2.02/grub-install-efibootmgr-check.patch deleted file mode 100644 index 621eb61e5..000000000 --- a/patches/grub/2.02/grub-install-efibootmgr-check.patch +++ /dev/null @@ -1,178 +0,0 @@ -From 10cafca84f4bf65bed8c0fcd0c171a9d50a08cf0 Mon Sep 17 00:00:00 2001 -From: Steve McIntyre <93sam@debian.org> -Date: Mon, 30 Jan 2017 19:04:51 +0000 -Subject: Make grub-install check for errors from efibootmgr - -Code is currently ignoring errors from efibootmgr, giving users -clearly bogus output like: - - Setting up grub-efi-amd64 (2.02~beta3-4) ... - Installing for x86_64-efi platform. - Could not delete variable: No space left on device - Could not prepare Boot variable: No space left on device - Installation finished. No error reported. - -and then potentially unbootable systems. If efibootmgr fails, -grub-install should know that and report it! - -Signed-off-by: Steve McIntyre <93sam@debian.org> - -Bug-Debian: https://bugs.debian.org/853234 -Forwarded: https://lists.gnu.org/archive/html/grub-devel/2017-01/msg00107.html - -Patch-Name: grub-install-efibootmgr-check.patch ---- - grub-core/osdep/unix/platform.c | 24 +++++++++++++++--------- - include/grub/util/install.h | 2 +- - util/grub-install.c | 14 +++++++++++--- - 3 files changed, 27 insertions(+), 13 deletions(-) - -diff --git a/grub-core/osdep/unix/platform.c b/grub-core/osdep/unix/platform.c -index 28cb37e15..f9c376c35 100644 ---- a/grub-core/osdep/unix/platform.c -+++ b/grub-core/osdep/unix/platform.c -@@ -78,19 +78,20 @@ get_ofpathname (const char *dev) - dev); - } - --static void -+static int - grub_install_remove_efi_entries_by_distributor (const char *efi_distributor) - { - int fd; - pid_t pid = grub_util_exec_pipe ((const char * []){ "efibootmgr", NULL }, &fd); - char *line = NULL; - size_t len = 0; -+ int error = 0; - - if (!pid) - { - grub_util_warn (_("Unable to open stream from %s: %s"), - "efibootmgr", strerror (errno)); -- return; -+ return errno; - } - - FILE *fp = fdopen (fd, "r"); -@@ -98,7 +99,7 @@ grub_install_remove_efi_entries_by_distributor (const char *efi_distributor) - { - grub_util_warn (_("Unable to open stream from %s: %s"), - "efibootmgr", strerror (errno)); -- return; -+ return errno; - } - - line = xmalloc (80); -@@ -119,23 +120,25 @@ grub_install_remove_efi_entries_by_distributor (const char *efi_distributor) - bootnum = line + sizeof ("Boot") - 1; - bootnum[4] = '\0'; - if (!verbosity) -- grub_util_exec ((const char * []){ "efibootmgr", "-q", -+ error = grub_util_exec ((const char * []){ "efibootmgr", "-q", - "-b", bootnum, "-B", NULL }); - else -- grub_util_exec ((const char * []){ "efibootmgr", -+ error = grub_util_exec ((const char * []){ "efibootmgr", - "-b", bootnum, "-B", NULL }); - } - - free (line); -+ return error; - } - --void -+int - grub_install_register_efi (grub_device_t efidir_grub_dev, - const char *efifile_path, - const char *efi_distributor) - { - const char * efidir_disk; - int efidir_part; -+ int error = 0; - efidir_disk = grub_util_biosdisk_get_osdev (efidir_grub_dev->disk); - efidir_part = efidir_grub_dev->disk->partition ? efidir_grub_dev->disk->partition->number + 1 : 1; - -@@ -151,23 +154,26 @@ grub_install_register_efi (grub_device_t efidir_grub_dev, - grub_util_exec ((const char * []){ "modprobe", "-q", "efivars", NULL }); - #endif - /* Delete old entries from the same distributor. */ -- grub_install_remove_efi_entries_by_distributor (efi_distributor); -+ error = grub_install_remove_efi_entries_by_distributor (efi_distributor); -+ if (error) -+ return error; - - char *efidir_part_str = xasprintf ("%d", efidir_part); - - if (!verbosity) -- grub_util_exec ((const char * []){ "efibootmgr", "-q", -+ error = grub_util_exec ((const char * []){ "efibootmgr", "-q", - "-c", "-d", efidir_disk, - "-p", efidir_part_str, "-w", - "-L", efi_distributor, "-l", - efifile_path, NULL }); - else -- grub_util_exec ((const char * []){ "efibootmgr", -+ error = grub_util_exec ((const char * []){ "efibootmgr", - "-c", "-d", efidir_disk, - "-p", efidir_part_str, "-w", - "-L", efi_distributor, "-l", - efifile_path, NULL }); - free (efidir_part_str); -+ return error; - } - - void -diff --git a/include/grub/util/install.h b/include/grub/util/install.h -index 9f517a1bb..58648e209 100644 ---- a/include/grub/util/install.h -+++ b/include/grub/util/install.h -@@ -209,7 +209,7 @@ grub_install_get_default_x86_platform (void); - const char * - grub_install_get_default_x86_platform (void); - --void -+int - grub_install_register_efi (grub_device_t efidir_grub_dev, - const char *efifile_path, - const char *efi_distributor); -diff --git a/util/grub-install.c b/util/grub-install.c -index a4f253918..fae92f40b 100644 ---- a/util/grub-install.c -+++ b/util/grub-install.c -@@ -2020,9 +2020,13 @@ main (int argc, char *argv[]) - if (!removable && update_nvram) - { - /* Try to make this image bootable using the EFI Boot Manager, if available. */ -- grub_install_register_efi (efidir_grub_dev, -+ int error = 0; -+ error = grub_install_register_efi (efidir_grub_dev, - "\\System\\Library\\CoreServices", - efi_distributor); -+ if (error) -+ grub_util_error (_("efibootmgr failed to register the boot entry: %s"), -+ strerror (error)); - } - - grub_device_close (ins_dev); -@@ -2117,6 +2121,7 @@ main (int argc, char *argv[]) - { - char * efifile_path; - char * part; -+ int error = 0; - - /* Try to make this image bootable using the EFI Boot Manager, if available. */ - if (!efi_distributor || efi_distributor[0] == '\0') -@@ -2133,8 +2138,11 @@ main (int argc, char *argv[]) - efidir_grub_dev->disk->name, - (part ? ",": ""), (part ? : "")); - grub_free (part); -- grub_install_register_efi (efidir_grub_dev, -- efifile_path, efi_distributor); -+ error = grub_install_register_efi (efidir_grub_dev, -+ efifile_path, efi_distributor); -+ if (error) -+ grub_util_error (_("efibootmgr failed to register the boot entry: %s"), -+ strerror (error)); - } - break; - diff --git a/patches/grub/2.02/grub-install-extra-removable.patch b/patches/grub/2.02/grub-install-extra-removable.patch deleted file mode 100644 index 5a9c9ab71..000000000 --- a/patches/grub/2.02/grub-install-extra-removable.patch +++ /dev/null @@ -1,220 +0,0 @@ -From c5486f3a81aacdbb9f0092fa9e8c106b6928d7ca Mon Sep 17 00:00:00 2001 -From: Steve McIntyre <93sam@debian.org> -Date: Wed, 3 Dec 2014 01:25:12 +0000 -Subject: Add support for forcing EFI installation to the removable media path - -Add an extra option to grub-install "--no-extra-removable". On EFI -platforms, this will cause the copy of the grub-efi image to not be -written to the removable media path /boot/efi/EFI/BOOT/BOOT$ARCH.EFI. -This will help with broken UEFI implementations where you can't install -to the removable path as a fallback option if Boot Entries get corrupt. - -Signed-off-by: Steve McIntyre <93sam@debian.org> -Signed-off-by: Mathieu Trudel-Lapierre - -Bug-Debian: https://bugs.debian.org/767037 https://bugs.debian.org/773092 -Forwarded: Not yet -Last-Update: 2014-12-20 - -Patch-Name: grub-install-extra-removable.patch ---- - util/grub-install.c | 128 +++++++++++++++++++++++++++++++++++++++++++++++++++- - 1 file changed, 126 insertions(+), 2 deletions(-) - -diff --git a/util/grub-install.c b/util/grub-install.c -index a7c0f566e..a4f253918 100644 ---- a/util/grub-install.c -+++ b/util/grub-install.c -@@ -56,6 +56,7 @@ - - static char *target; - static int removable = 0; -+static int no_extra_removable = 0; - static int recheck = 0; - static int update_nvram = 1; - static char *install_device = NULL; -@@ -113,7 +114,8 @@ enum - OPTION_LABEL_BGCOLOR, - OPTION_PRODUCT_VERSION, - OPTION_UEFI_SECURE_BOOT, -- OPTION_NO_UEFI_SECURE_BOOT -+ OPTION_NO_UEFI_SECURE_BOOT, -+ OPTION_NO_EXTRA_REMOVABLE - }; - - static int fs_probe = 1; -@@ -216,6 +218,10 @@ argp_parser (int key, char *arg, struct argp_state *state) - removable = 1; - return 0; - -+ case OPTION_NO_EXTRA_REMOVABLE: -+ no_extra_removable = 1; -+ return 0; -+ - case OPTION_ALLOW_FLOPPY: - allow_floppy = 1; - return 0; -@@ -322,6 +328,9 @@ static struct argp_option options[] = { - N_("do not install an image usable with UEFI Secure Boot, even if the " - "system was currently started using it. " - "This option is only available on EFI."), 2}, -+ {"no-extra-removable", OPTION_NO_EXTRA_REMOVABLE, 0, 0, -+ N_("Do not install bootloader code to the removable media path. " -+ "This option is only available on EFI."), 2}, - {0, 0, 0, 0, 0, 0} - }; - -@@ -835,6 +844,109 @@ fill_core_services (const char *core_services) - free (sysv_plist); - } - -+/* Helper routine for also_install_removable() below. Walk through the -+ specified dir, looking to see if there is a file/dir that matches -+ the search string exactly, but in a case-insensitive manner. If so, -+ return a copy of the exact file/dir that *does* exist. If not, -+ return NULL */ -+static char * -+check_component_exists(const char *dir, -+ const char *search) -+{ -+ grub_util_fd_dir_t d; -+ grub_util_fd_dirent_t de; -+ char *found = NULL; -+ -+ d = grub_util_fd_opendir (dir); -+ if (!d) -+ grub_util_error (_("cannot open directory `%s': %s"), -+ dir, grub_util_fd_strerror ()); -+ -+ while ((de = grub_util_fd_readdir (d))) -+ { -+ if (strcasecmp (de->d_name, search) == 0) -+ { -+ found = xstrdup (de->d_name); -+ break; -+ } -+ } -+ grub_util_fd_closedir (d); -+ return found; -+} -+ -+/* Some complex directory-handling stuff in here, to cope with -+ * case-insensitive FAT/VFAT filesystem semantics. Ugh. */ -+static void -+also_install_removable(const char *src, -+ const char *base_efidir, -+ const char *efi_suffix, -+ const char *efi_suffix_upper) -+{ -+ char *efi_file = NULL; -+ char *dst = NULL; -+ char *cur = NULL; -+ char *found = NULL; -+ char *fb_signed = NULL; -+ char *fb_file = NULL; -+ char *generic_efidir = NULL; -+ -+ if (!efi_suffix) -+ grub_util_error ("%s", _("efi_suffix not set")); -+ if (!efi_suffix_upper) -+ grub_util_error ("%s", _("efi_suffix_upper not set")); -+ -+ efi_file = xasprintf ("BOOT%s.EFI", efi_suffix_upper); -+ fb_signed = xasprintf ("fb%s.efi.signed", efi_suffix); -+ fb_file = xasprintf ("fb%s.efi", efi_suffix); -+ -+ /* We need to install in $base_efidir/EFI/BOOT/$efi_file, but we -+ * need to cope with case-insensitive stuff here. Build the path one -+ * component at a time, checking for existing matches each time. */ -+ -+ /* Look for "EFI" in base_efidir. Make it if it does not exist in -+ * some form. */ -+ found = check_component_exists(base_efidir, "EFI"); -+ if (found == NULL) -+ found = xstrdup("EFI"); -+ dst = grub_util_path_concat (2, base_efidir, found); -+ cur = xstrdup (dst); -+ free (dst); -+ free (found); -+ grub_install_mkdir_p (cur); -+ -+ /* Now BOOT */ -+ found = check_component_exists(cur, "BOOT"); -+ if (found == NULL) -+ found = xstrdup("BOOT"); -+ dst = grub_util_path_concat (2, cur, found); -+ free (cur); -+ free (found); -+ grub_install_mkdir_p (dst); -+ generic_efidir = xstrdup (dst); -+ free (dst); -+ -+ /* Now $efi_file */ -+ found = check_component_exists(generic_efidir, efi_file); -+ if (found == NULL) -+ found = xstrdup(efi_file); -+ dst = grub_util_path_concat (2, generic_efidir, found); -+ free (found); -+ grub_install_copy_file (src, dst, 1); -+ free (efi_file); -+ free (dst); -+ -+ /* Now try to also install fallback */ -+ efi_file = grub_util_path_concat (2, "/usr/lib/shim/", fb_signed); -+ dst = grub_util_path_concat (2, generic_efidir, fb_file); -+ free (generic_efidir); -+ grub_install_copy_file (efi_file, dst, 0); -+ free (efi_file); -+ free (dst); -+ -+ free (fb_file); -+ free (fb_signed); -+} -+ - int - main (int argc, char *argv[]) - { -@@ -852,6 +964,7 @@ main (int argc, char *argv[]) - char *relative_grubdir; - char **efidir_device_names = NULL; - grub_device_t efidir_grub_dev = NULL; -+ char *base_efidir = NULL; - char *efidir_grub_devname; - int efidir_is_mac = 0; - int is_prep = 0; -@@ -884,6 +997,9 @@ main (int argc, char *argv[]) - bootloader_id = xstrdup ("grub"); - } - -+ if (removable && no_extra_removable) -+ grub_util_error (_("Invalid to use both --removable and --no_extra_removable")); -+ - if (!grub_install_source_directory) - { - if (!target) -@@ -1093,6 +1209,8 @@ main (int argc, char *argv[]) - if (!efidir_is_mac && grub_strcmp (fs->name, "fat") != 0) - grub_util_error (_("%s doesn't look like an EFI partition"), efidir); - -+ base_efidir = xstrdup(efidir); -+ - /* The EFI specification requires that an EFI System Partition must - contain an "EFI" subdirectory, and that OS loaders are stored in - subdirectories below EFI. Vendors are expected to pick names that do -@@ -1984,9 +2102,15 @@ main (int argc, char *argv[]) - fprintf (config_dst_f, "configfile $prefix/grub.cfg\n"); - fclose (config_dst_f); - free (config_dst); -+ if (!removable && !no_extra_removable) -+ also_install_removable(efi_signed, base_efidir, efi_suffix, efi_suffix_upper); - } - else -- grub_install_copy_file (imgfile, dst, 1); -+ { -+ grub_install_copy_file (imgfile, dst, 1); -+ if (!removable && !no_extra_removable) -+ also_install_removable(imgfile, base_efidir, efi_suffix, efi_suffix_upper); -+ } - free (dst); - } - if (!removable && update_nvram) diff --git a/patches/grub/2.02/include-compatible-unifont-bdf.patch b/patches/grub/2.02/include-compatible-unifont-bdf.patch deleted file mode 100644 index 8fb56e61c..000000000 --- a/patches/grub/2.02/include-compatible-unifont-bdf.patch +++ /dev/null @@ -1,22543 +0,0 @@ -Include compatible unifont.bdf file - -Compiling coreboot requires a working unifont.bdf file. - -Do not rely on the build host having a good copy. Provide our own. - -diff --git a/unifont-5.1.20080820.bdf.gz b/unifont-5.1.20080820.bdf.gz -new file mode 100644 -index 0000000000000000000000000000000000000000..c3d53ba0bbea8cb0c1431707bc32391c89ffbe47 -GIT binary patch -literal 1313861 -zcmbq(c_5Tu^!K+EsgR|GFtQ{|D3rCyQuZa3$dV#NcCs}pvX-5)jcf_o_kGP+XY5;K -z8H{}!+c5auXY~Hw_y6}Fp1IGx=iYnnIiK@6=RUBYGiTl}v+Dmx=4@m6%GSo|rl`Oz -zf!jhtVnSlKg#=!hzWT4}KreT>reG$Z8lzz!mfI}a^l&WYM{MS~NMU+6+Xk~*&hu{- -z>tZM)4adjNYN?%9dqn4Lpgkb;2#6;dqr9~G;r%n79ObAMTqBP93$uA2*M*EjoEEfjtHiyb_mdwLK5Fj);Pd -zwFj7^)LC1MF;%-R9=?V@Xn=2ndA7Y44zcie6`(IcBTGZ>DB~bvS$T`GvS2rIGsE`J -z`X**Mv5nxx8JEiPAk#3l?M6>gHes`(50=tC-|K`=*Y6ys59q5@OwgV#<%3uEY`=_r -z4Of%&%8U{)WA7B`F=f!RWnXl;RPGrbSX8MPr)|2QF#G3CoW|I&3!(2$wyJ4)5Wi#K -z($Yj?>)x}TUU8kxYNhK1BM+X4Cn`NCt?ccKcu3GFS@tQd{QF=)+@t3_ry9#WN{@o! -z2Y19D+`;l^J06~ahN-_XjK(3V#8 -zix(>L-6YYPA)R<68F3?f*HP)UDTd1K2Rqx}1))(o@j>o@vLHfMwe -zHHryszIMO!Z!fl_F!lVHmC5Iu>y>ivFc5Fixt*h<=f~PF@y6wGM&PNa^Zbv|`F>eC -z?c6)kVagAqC2&K+(%n7RFApvT_eR!yHCx3r-E*4!ptHMW98MdSDuz7`RUW_aSvYNIl2$R{rT8F)Ti9y -zp^GiddJg+YcZHFOFI?z|yF{h$oTqfY>f9%{&pW!(h*{cD^4|5AaWfT>b>GlBmUkOE -zY75hhEoR5X5wCcWwehuXZ#k~y#Yo6B5SxdCa|kYb`*7_6=APO1CxdiXzQkOgdAPYx -zf6EK`p*b3sHNS&N6yy@>yPd7tFnQ4*!OW;IEIWGc8SXO5D(saYr;uWSGOr8_ajlZL -zv-Ma|=wtz7GDr3@V)p2UG!x6a*|*$mA11%31qSaL^!2uq(S_Cx{ccOfZlw*eP%1uu -z{z5w$JDG{X*`7+Fj$>eHtp0A3%prF+j*jKrvVeyt?XSul&MVF5?(j(55fOPL)?{@! -zt0o8X^6C6xI>1ePK;(LT9 -zrl?SUzTB2NXE6rF|91( -z_*dWZGmAWr_hsA`jik3f{JdOL1;K<7Lt!dccFavys2zLH0ojpryOQig1Y;;PE-?56 -z<)2X6Xz;8Y5Ztb4_SN|3-QdENeOyZr9eHWmv%BBh)yQsVSiuOEU%~5nL -zCf^G9nMa#Xw}W?If@7~cIXcBqT=g36-fG`cv}6?2Q4(H!6{ERd^ZlClgLG(HnUQlX -zs85Yo9vLerfKhGqEazOLDZ8Rc;uf1t8fYZx#73opNj+UBPXE1pcj6VJU>{h9Y=fFX -z9x-0?l8XUidHbObtk+QGd6j0myn^fLW-L8vO$iJvsJb5PvQ)!uqn{DU*rw1o)l$mi -zY(ZwEjz@=`JI=@pk5^*hLtARqkzh~i0l{}X$EqVgUtWlun}bz~H)C|c`giS3Nh9_S -zR`i<{OV3NxhB=KXlBPqEl_}i!Y;{di3JmrO+i-K@XA~51OXjGY<$i$>`FXkH)2Zfj -zYRXPh+p>kHKJBCOO{=<0O%z6c@LD7vIlW5)KU3uuo-Rs_T|2A%9Q=5wFnP6}B<^+j -zwjrg;ptlj!tbkg6u(m4uSlW%5kTKabH>b;ZAdCGl4-DMMLMxf0_FUUTX`rYPd6#Lc -zI@-lxF6^f#tSpT!MFv=C32*2m3t~jAmF6qAK83H#@&yNPVRD8hGjln?c(ZQ%XWqC3 -z2lvy^FX5FoW`VQg*C;On5f@l?%%Uh{PlD4gQmVXdUBy4zgY6yG`R$r?Q33TOc=qzI -zhFgIa8}8pSL67;x;B%rAbd8;gdbfJPzeFHr_1DiUnCIdBovq(K~ -zkN?H@7QKM0=&L&r=XLgexNBs$^QG+yH^-|dqB{dW8A8u*dBg4;&|mGUOAzKg@YJyD -zaNy9tPqy>>=O)=b54e=EQ%3pXgS5iwW*X1d$rZN=;&-hdBf8$RU&zrkyb0Geo-o@m -z{+K0x?FBA#(uFH-N=7l6LK*y%}= -zu6~8=`fDwZL~#@etlVFJQy93F>ACzAhg-PCFPY?cZIst`{l{uz5?^Js^<4Kpka;sW -zVm6sVs@Y)d9GXU-nfr?uS5^eKkMRkrc-Y1WqJ)8BJ1&0d`=o!^;Eo(3- -z^z0QEiTQ=@E#WSmCdxC3j&J^0*T`7=;h1wTPlNnE1cFgj?}u -zB?98-%O{@cmxWe*xvFk{9e2Ytfv18i<>52_#8)v5WvwUB)6Ac&mF|v}6tM}veK^=5 -z^Wb7b{7EWvsR+@n4^PO>Ev)bqzq&vj%}n-Y;89C}WZTlG+u}SU@hO_O(DY%xM%Ru4 -zwEP&dFWrj^<%h(Nd^kzhY27!<=s3zxoD&Fdb?belR_z#RY3TZOY%?1Fqce6xZL9aT -zyvylo)zfa+ZK^K-!MQN$mN{sJW>R);y+lv5gvz;~A=ih9KxAhh*0%UisOXBao -zK|g9KtMB3R-e9CRY`Ze~eAwY{k+?z<;f-EO+LPV})GBBbuZq%V_B;PEi}=cqjAEQ?%soab7GhRUDZyMwiXF| -zU}SmwHeZJ`0{<$;k%6~4>@8Ky$$d{w9bx&Z -z);o8ZP~Q<8@gnw*t@MM5-t-|~F7@*6x?4i6E4rU?++MF39gmD&PkjD5y~7u1R@kxG -z{v+wAPJ@qJ#O}SyZ6ZOt;?O?_E_WCw%JKa}uU96gnli_OJeak*EUp>JPK25}9rU&5>Y5NoR;I7xj -zU!2MINCuv4eaqEcrbL;5oA{Wi-*0h -z_#-H><6I_Sea9G0qjc&16)~Ztma*yyV(9dVs&au~0WWd5qT2iPj34YsB{Yrf<%w%B -z6IvD+5IFo_(2JN6>!G|4O=^K{f;c};*msw7$N8N-TKURTVPoNq69AU{I5{RBd8akH -zj_l9nhBUqthjWUb$htT^iz^IVq(IY9KB@ayO}#i=n66Offu`v;s++N1WBTgTYUqxp -zS$|cB5V!jJ;{#r<=xW!|UsEd0GPXPFv4q;hNh3Ri|2EkM;nha~i`~BWk31en`~+Jb -zrF~k~!S1fcD&@Eot@tfxULRV7%7j{5Qc!*+ZsxzhA+c7hx74HtCgR|7w|)3;zf)9F -zQC>w{p(yC-5%g3WN6F;MbZDW%RvooyZ|2sMh~yp)DLqwyyC&1vA}Wum9L9%!H<@C3 -zf#vjKoo4d=Xw?!GVLf#{=uf<nwRH(LyksZ+6e`0S)xd}R6|jmnHwwQoLU(5MhXI+OSY$oj(_fOx>6U^gnSh#~p1e!uQCt;u -zNR>TmI{Hk$5j4s_J4vWyte~Y?IgRskRblhEOD_V{QF3bIt*{K(E?BphARW|HdTPVt -znz}rA41IR;@+<7T)R-Ni<+hX^LNV`@RzkCM`6w+Z -z1ZIvg1E{l$ZdcO%;cF0t%oZbRQ_NF=w)LC;_ep4VR^@^ghz6>AFwZ({H>=WND)$&PMJHxXp??HAoI -zP8mUxTC?LG`+Go=L`!X+Tw4L&7&+rhF0oZAbg&MT} -zQh}A<5eUuGI0~h)o4t(@JVRDL_|sLr#nfYc+)8=D+3NnCYLttG{n4m4nC>>i_}T5oD4>{iM7(yOq_l^fv!EDU@j$Fr`GppH)<@tiFkC!m%06^{ -zA&$wMIly1#_w8LPus%Q<+a@;tMgZh|ba1rEW6eGqurNeCJ(vAK9e|pUmsee`E9eKQ -zUW|t&ABcI-aHjI<2IA$yVG5py9}13cQ#FW*@6<*1fMJ}7_+>ZxM789lT2*hU;+GBj -zx6F>rNM3P3zek$BG0Go2fED>E%#&u{!p46wxCKp>%{u4|FN<)7*u?E!d)b4D!digF -zz^}1u-Mo{4`9Mnzp16g9Y#NTfsBte5djp^l9GxStqc6(?93K(iJI63iS_<=bQ9ZZ? -zsf{lO@s|dWpstWYKH6;v0N`jfxX(^358s_$w$BmoUI6`qX?&h2q%2fuJ+c0AZI5W0 -z@7h(8$3KKg{xzg3*S0q;+ow%*kDMj4@nb}f@agS{A*X-Ks}l&{{Csz&@D)=J<}~HD -zTNLQDj{SBX>`G<@bxY}>ZnvJH8*g*ZrfuJ3g2~iAoR4-307q&^rS0D2$E>X;(H4wG -zj^6|C1G}Vp1_L>#cvGCt495GBf!v%+_7`MTK(r8>JGxY(WtSiZ5QX -zU&k>U+xYk7?V@MUF}4KrriL^w?}UQR0@XU1)A^nx#sl?{>tM7F;n-rOHe?>$j= -z!-$;0jj0BhuGoshTU4CJwj2A)EJ=?S-yYZjECMz}F_lV$%wh*?tt=1brU-zg>tmAi -z%7HT|A>zAiORYa~eg|F2;p%xXCs!B>0M4#G;;pV%Zk${643TXMJIYfIAOYC9V~rPW -z_OXj(O+S=th1!J2rQ((x(=*SgdfUC*P;X5Df`Peh{IQB=v+(hh!G{PyL3hvoe(Mva -zI1h3`l^U)5kA~h~f+M7KX)4ccx)oj-Z(ax|IUZU_aRk!AP^zQM*8{uXG+a1}3>eO- -zst!@sM_K~e{^17hcnN4BT1c6$aP@jk`2{LmiacPaK>r$XOoG2D5 -zvG4Sl7YdcYJE~aVQGz8|Wp02X0EBp6Rkq@nzQs -z6PiLCcW*+lc3~A|Liw5w!il~R$L#46*lWmpneQ!r-I42r)?NO{0rG91Eqmll=~{E8*}2Ezk%)m33vZI5MTMp -zaK1Nm<(ZV!`4HlmCh(G1kj-bnP@0DbR`oAGu -z>u;*FlycB;LR3PS$i -zRH(QH*@7eNV)b+V$V(T0z<2@bs3Wf(q)11W%rb>9ycM?XtLJtWHY%cm$kV%#)&jAe -zB!kx$<>ckI>u5iRj1TMHY8%*}4?P8I4CIvKHyNo9JbMc+;}LK2mdkw^kVHee(LwTD -zOh7T&U}!@`yH10lPH1V$1M!N{oqawkj=@l)uiFd!S=5%_%0Tz&Q_e!)#y^j-;QW}k -z?9n+_b5=-J5WK_weH!owzui4CqLB_W@_^&g8Wl)d<-nWIR@Y|krKh!eZ0n&>0#5}1|jTL$n)=5r)Pnl-JLep@< -zgN?uT9#UGr7zmU^(>TC`1ulJ*Fud_M^frJu@4S2H2BAURN9IWi01d!4qq$9_`&i!H -z%fv!~h=FF-{jT-6JwkB*}BEMYKg+Ahf7ZwGt`hI`n$9KQn|S5Q2G?@ByI -z7pfER2$J#hGpWD3amgVXigl3aw~j1j^BqPz5qlHL5bt@%e9r~ON?t*GFg7yr74Kbi -z4=rJ2T^V?|*4lf}2_*s`K2Iw&L)ZyGdAU^EdTIEMvh!URkW4h~+iN!7vAg=jB(Gw| -zPY|+ZKfZZP)KHKk8%RO!@TliFRgZ>kxqLf(Lec{o9ii@BD~kCGDiFZoh;BnJ7YPG@ -z$M67)0I)qSXm$Ok5%KoyXWTT+HfS2g1#BJDnP(}LvF2Oxu<0#(S-zr>**IwkI?ZdG -z932e-p#?!?&8xtRliJh+3NEoQZlBFk>v2bfe{P6&#pSMpoh)}fukY>VtazQ1%gOOoitucgGt3g%HP$64~W>Zr7A=!0f6UROF9k> -zC1+DDp)n&NjiQ{J$Hs$L_IQ2%+6n}lASR%0h&P@GL=r&FE#(Fw4$>l#aH%xdLz41> -zK0ALDTmWJLS4BQXBo|ZH7VBz+!rRmb0Y0}Jh)MMxs%|`}v=!|cPPK}@3JAl2*nLgJ -z>5lPpy5tb$2j)m^m?Xj0JEOneLPEXA=0a03AarhG*LXd`-ESOE8phe^Rwei^RIOfZ -z!)OEpTH22izgn3~9OEE`?qfm#meNR!fFe7XtCYYE<>7!1F(w{5NvFvzY_F)pstBbH>J}2u)m2d9=4~guf@wE#5t&}4VWfH)ghywnL42z^#jNg|U`X=$af@EBiZ%KA> -z1|%vNIn!eXUS}A(lD|Oe>*%kuejIZr1X}*(F8|x4KHk<_ev}4W1<9gEM)Nj_-rCaA&drS_6F&75h84@fLow9h<@O_A!Oa%isxpB*k(8kH&UC?h+8h6 -zf&zlLd*Dr#6em0=QM62;PH5Z`zHAHt=lSWyh;+RanuyNIb+F;4kV31cxxH!Sd{ls^ -z01;v?FcBX|YKu<7wR*q~5Pm+dV$q3lt231uplU*}4}4|p*>&mr%4~HPDPQV~9aMiq -zNntRvq5`xrjfkJRb9bp9L>_=_%u&Qy-|8NKkqam#$;+vL@tDGct)-O#yzO8o49oQW -zC|7M?1Cq4>47@yeQAqb#^}BB31W#>8(*C1HElKCLezcx_N$Dpa3G;UCku9X0dI4og -zmk1maumpj~Q41jw^Vk&Ms|Ub1fGXF9SPNid*sq68Zij%Ru;qpnZZ#)SAp0b{e4#gm -zT`Cs7{em&iobmu#C@x?}g|m|u17YVOm`*Q4E??km8(lG5juPv!f -zM5RX7j@4m7l@vuXAY33Qxw4*Qs%m%-%z<*tUZmQ)DdM1@T}rrP+irVM%8~@0lagap -z?PnHZGLJ-{?SfczHZ*@)81*Za28wk9sP(U}bjRwx-rX1Tg>1>3_Io_`rM~P`c-JpI -zCsDu-|5P -zU*AVo+r5zl!U2!ei!3u{f+C&PJ7(6Dg_}H!6{_w8kjb@Z!W1gsoD2UTZx6i=hndIO -zqS%S+-%C3MmPArYtRUQ`nHyyHR{WQ(^(S*a*$Nhc0=(V$<1KJ{69a -z`v@~Y>3Z$U1(E*GT(!aZSpCh=hzFx%JIbToDEF-s%uXRZD!ZVpPeT_4JWdMq0 -z+(XmxVy$B40kHV)iOEn2m{@}A96yj)9A;(-GcIhnfm@%JMeLHsEb)9%`^&oApuM)5Bu#SO`}I=c-~8=cg={Wf!9}FGaBF{FLV5re -zWZ?HwNMoQ0B!I13_6@B0S?|CCpfq05ySxIFAa3`e#9y_$O+{squ#lQ57=!!d3%nGV -zD`REp)3MbbzvI@EK_&(K0F%u>R}KKX{?*e&DaoLzyG|diWTZ@8WrD29j)mQg`h$^M=Rsn;w6D4So^q)jgh9vV2_yg;o#`UqxKd3MOk~>4NqRi+R_|Nt9s}LB(&t%kLl`zfc -z&@|#iu_VGQRJ-fh6Z2bd5Tx5vf(g(;R2$NQ6wRX2XY8%dK?n=5%|4U~F)yCuW;8xx -z#0x*Ast)QUz=VEG+WGcMvu>67v_Y5v%q1Fk?cU{|HsbJ9f_($i=VugWpe1U;xM%pS -z0L2G1*A-S0c?r*I0N@>9$cMkX33G7cw~&2Y96sVE&hHc)jd9aQ -z#H>4v*8-H9Kut=`hw!`D^mN}`+0T+50CgbX>b-U@W7B1eV$h-k3-L5WRofQ6K~l~V -zAFQ{J9(fGHFre5CF9%Y}jZjdgGK|;NfV)*)-J6AofCC&I;7cggRk`;jMPO%3g49y( -z+x*2~=B#c#w9sjk-h~SN#kxKE*__#w3b(sJsk`kQ^!K$#re*R6JuEtaCWyMK5*(B%CD -zPvi$CEIN~3sC;lyHT!sosig@g=9~+w7 -zKG3;lhNKYD4|X4teym{`_V?B-oj{#uH%Xu%K2fLpK*)|NyHDj>L2*)P2p!Z5W>??9?kF>(RVu`J{Lzd{cWptgidBq?f!Wp3k8ewh?65Umnzo)b)_)+nzmg$q6Fb;5_Inh@L`F@6iy) -zZ-;(Q$e^va9EklW7pHXs9s$~4BBJM@=mSo7a?ogJ(tY(gVDI%IWS0x?{FCD7{)X`- -zG!h(kywy{hvVYdF9@LM|?KMZysEd9hF?qaa9t62;8`!)gy-Xk;)Hthm@xWVw9dO&f -z>0%&N*tm7Ppt-w3gw+CoRKWN!mzNvC6F8KB#qA$J!X~z3vN%%!Iy(l74=MIJyfGGgkkt%Lr|Bs0vE&d-lKDh4O~~qyWmoqdP)e(3yLHX=z6==19g59!n0iFX{jq2iB|eDfAMz3TUhhB^Gsrz?6&Fe_5^2yl -zzKk{KJ8`RG3f$zrbHG-=2Os^kuyS7>E&gh+br%xRdX~yZw8)^*cnQ1aU3`M-Gb|Pa -zgWod|G(Mu9<-YLY)mQVEPcpgZObWV&3u>McId9OIxW@TRmD=J;xo@q1geP!nfP{za -z>Kg%sa&i#-OJU{_`2v|xU2c~Tj&?R;cqs-aM#0Q0I>t=TSLbQF} -zK8Ex+jmI|a#(p8O7i{k81*qyy4G)&Hm>Ipl4V7YB5zLN#U2w=HLtr?&jDFsW(@J1A -z@MCA=>dGV(?RrBR$7wPBNuH_A$J*Y^+|$TvG}Q1lW$=CFmmg0>Pe@A4RgKP3*U(>IZ;BOrdW5u3^5}Pa3hl`oI!4 -zobvDF@gD1RSD;e_w}Ed2V(dWK8aiC}Hx%7uknjA2yfN=06bJ#&n$V`rnKa{vj288{ -zf`8v5>@}iY2+FPAB5eT53VUa6o2y-uKP55Xr}^gW+5G+ -z=g{O|x-`Vx=+R2cF;b8+5HYBPqE`;S(jCoG%b?=|9P5@e+-G9n~Rd$9Tig>Uj9QWp(Jo4S#;g{u=LV{dKe)a+C?< -zSx);>&PTWEaUVDy`qD|%4idB4MI$UAfv)Yr9`hvy;yoVqv>X{e=-+08*5fCrm~VwE -z&pnNPB2@qrdyyK|#p7=VaQTI4$r7;brJk7h(`&TN;VG010=(R0{(70P|6vV|GZB5_Gl! -zq+f~4i6{!cl2+NbTf~_H)jOiPVwz{Dwkka_?Xs~T70{wgC_gGKSA{-6*r1be+6pqn -zvICC6n1`6LD-tVG!1NPQiER-+{PJ^Y&LIct>RSG`?VP;v-UPK&r-Qxyc%2mdD9WEK`yy`i!a$+`GKax%Ovox@2qbCk)V^ -zJL(&V?_RFY5%!M6a?5gG@Fk1r8WKM0U+K|p4~lW&RzrN`M+Spj5^DGvCZoUzX{dCU -z1lxOg1m}0QiTz;Z%Aq&0}zb%c3UJgdxujQT7J@d7{0m?~$1gUG|CSJ<|_ke{IEVbz6fXf=w;dKgqxk2a< -z8|Wl(FL&_vh2X}7Cn@5CCAemRtgx)yoW`tipi_7l_*rzCp6Nft*6|P%o6spw1IGqt{wfTQKDVQx}^*f0eX1* -z78u_V39-&?#La*-C!9`#f-1cH=qn@=_x3=hK?q!(0ILiqeJs{m(1=0XBQxU5+u-pe -zwiVfx#UvU-GKNjU`Sz2KS>um)PB)#4kkml#37g_hX>zKcYt1ZAC9kRnO!lC?)uwVSVQs& -zYcr3p{HHN);PW+^r?R-O)-+bMhi|A*V1s}~SCXGok^2e(Olyea{mX~-wcqNUSfE`f -z&&B7+jyAQD=sWerxjb&tae*va6FwR;CXMscfvZmj+q^E>%%{4fi+z9r4hlo5E>`@M -z&L@NL0P=TM>`Q0xLXMJ!vKL(3fUirOoa5i)#a&6vlFKPa_Zk$v6afZ_5}g{nAwtBP -zgco)ZT%<8*bdK#n;=NOS)F0jFj1*D@H#SdYDV|*8gm}FYWde58`1UJsJ0IC4ZgBxz -z2}5m-uS4dJOUX;pcKPWpla2s+fiC%NC_=f| -z=KIe@oC%nG9lMlLa+ODYkb4zEjmWNH4ESDzM95~1mtp%5!1oZv77Oe)za8^zerC}G -zAOE;rArkAhe)J*+f5)al(s%}yW61%57${!k>^$YMG=s89z^1#tIY(VK1Fi?s;sNf` -zfOM3v^A9&t1#kkzGt?t(OjUV&!#_OkZ*Oe=ef^`}JKOD8Pzy+=lQ0iCMMZBFrd6YO -zh2(-E+LN)<;or&H>q#c^L>84BHn8Y!Y5z{}AuuomGlnLT?}uaYM7)U_Awql*GYu|Z -zG$<1S1v|HFLTsxc^@A18mJ&^iGU1=}{|?we`F?a4C1#5R5IVBv!w)vr%ae(oqdYFh -zg-Tfk=Y4Tz(R)zMCc{U)`m`T%&s3axx@G(NlMrBbDsyEgMiS|Jt!TdOzl~TYo2h9( -zaRI5Ty6#$Vw}g!ydp6BDpj*SG3PmlS>eKeuvtq;Z;@qrj&+cj3`Fw}N-}jcsuFrh% -zXO(a9PBVJ4sBw2-1sQNcKJ{Vy`$$Pz4u8dXgsnD<1m})tg{V3kyQq=7ZFJmoJ%OoM -zvmYnrQw4RNAXw@I9(rI0<#M(h>Y}V5BnPm^pnztxfMCVA-lFOgrxGqR3 -zHnp~#^G5GFTf;~H&Cb=E@-}y85O@z>8F}BaRfM$C$i(QPvixcG+t!N=DkoLlsR!mC -zzWcJLO~p>fF>5(gGmeXU&pl0^u>9acz<)?Zhq)!%kF|*!&B2te?5)X;Lx&-G?5cJ2 -z8D`GE(iRx{W2IgVA~;`U6ez -z7USbMPa3#fW@lLQX(}rWVJUm@_FI@yAoQ-Jks|viKh={H8bh2xDI$-39@o*+tx|{3 -z%OW-F=(}eV8i(>(42G%ZS7Ple9wlDaK%%Pe&liUw?~2Z+uv=E -z*D?SNO^;8;P=37_Zcd=gK8aMkz1GrLauOLT=33&Me+p<{=@Kj9M&^6&a4D(4>SVvS -zTk6pE0u-vWUP2;+D5jiL?_A6R9jv9MBB7;m5?m2STN)m+WEz}|ZcR#8e=1(Nyxu19 -zqaR3n!fM}kD(eGxc$Jhx7ige-g)HO<5qeNV2iEe$(0uGgKxgc8Q6M=1H+7JTdhjmr -zf}SPV101t{8Fr^J#~nJUF2~nnYlF`0RFEWQ>1VI^#;q#KS%Ca#WW^alDg*Bva-`zM -zW*u45;Hb(++RrNP+WS`{Bq3!OQQVeFeQRAtbw6UYmC -z9&01=%=Z_yAl;Ojb9WAHQIbi8nXd2*G5Ev75e!@6_>=7KxqC*X6=OZVj>74|Qny*} -zMQ?Bg?n7O#t?!&N?sg8ClF|52gY)93o;!Pn{ilA5VoDIQKp4V -zrGB|^>lC~mvE%ZehUtx34!y*@I(l*9y(F%{EF>_`+eC)XzorJb`N5>95Yu-JCp9?r -z5Yb}xV0G2^Ou$h|!#x@LLk79|ag>iupLY~;1;#OcW4SL+j=@wY=ihuZnyWEHD-Yfr -zng&e0de;D8OwK5|@Nr5N7s6O?m1@UaHT;{1;#av4Cj7@NAJ$ssaa~N~=P3-P -zO?~0KkZrJRw5b0Dg^uOZv;h|PeWYIOk$pS7M2v6aHz;7HXXpk9=&zT^(pn`RqUXZK -zPWBSX+FC`s4q#bau=Kfeo}K}4&QN#6ZiZ^TvKl3@9pc&v)q+=#PiiPi!Tm0tX%)#k -zg;d-kGW=F5K3AjnP9Pb08efO@WKtK3vda22@Iu0{JG&8NJvfE(Fzo_Cec(rK2!Zdj -zuNbnSL&ld)KduSfXBKELPL>=Civt)HrjvkUGwWTyPa0+}UR4mS91ClHQ;2<4n*t`t -z#1tw`N+2Ql-5~DPJ7!qHIlQ(qklV-oBO08g=z)|4!ep`FF8NRbIQX@kJQ`awFu -z2fz&75VQGqNFDU$?7*kV8E*IT4Zi|A43~l%wB-h?04I>egedrRg;^rsv#|kFT_FtL -zIpwwUVD&*?9sMf9LOyU~tu!R}N67S(rQvH1$||fQOu&Efj-d_CqsJ?IT4=sDV72{Q -zj_D6%mz)?3n%;&}a;^-RoXJa$+0PttGXhE6@40=Duu%4S$dNH2+nU2UgUs1kW={vV -z_b#4BwrJ)nsK|pgyCO<0D-9EEkJ -zz$8t8)j}KPM8alxFLu)Y2nzyM;fk;h`wP6C9TQT? -z@`sNXz}&TU;+4{ClJIAgptlQ#W~OcQao4KL?OB>yiBYdarV%SaCpk=jhn7<#;x$i} -zkwREQm`Dof%x -z)!ZrGFfl(?J>yQTu6t}Jf6C7>SHQ>JIZpoMY!y#+yQE*k`D{!riRpXz`QrCwv1+J< -zGvC8SaG|jO44vB<-*eolyb50RzYh*rtk9To$T!M%D7w$3g$sSA5tgoI@jtBZT2|D7(w@dn$cMR2Il -zkc!q9_V%CiPV=@-FrU?boFo5V6sNeKjh3ZBe1pXa@d9x_b>eMZ$k^iL?&|S3Jb3=* -z9KauO2C4t-xu5_bZaQ}RyRlhjX*R#t+Ma}{E_nUqYKsb?``8^E{hv0+>n8W#1u|}n -z`4uH4aO7e${HdX#A`+*=k#nT>hd;3Skj>$`Ca>K4cCy24Xob{{b{>Udu>G`IerR+W5tn5d#u}i-|Dwoqg`rvQy*-~^sx3Zi?)W48El^Kt{naO=>OSBB?qg13P+isbJOCbf3Ji7SN0k<_QqdQ-?3WqH0ikyICx2E~S)-dj6?txT -zk!i?F`bo9yj$hLV9wpOIjF;iuSiS!i%#?YFQ}Ds<|1{1d$QcB3qT2t1Rx%RZx?QMlO}h;3mK=8h-j+XK -zwn#ZadG+coFRaf`2m#Say<)Vz08YTnhl?}4bteEp0Lq}dMa2vtHbE}wDy{BM^Z$?+ -zB>d2*VBD~)0s!^bGFxRj_D@*tN;nrv&7Bk`D3cuLgk0iP>6EydDOb?L -z2}-x(?}mYFsP;2}_A-C`strMxEbfA07{qXk9OpzH{aJN};{Tbf(__GtzP4`R&sI0w_C2IKdMR -zD2M+xk@(ji|GRH7$@3)gf;-})R#`Aa&ybkca69On)Ay>r`x*}IY??rz($?HveG%n#64^3Am{gGu -z9XnD6a$<259xo8`$msj=@3|dZ5l=N-SxVX405a9%8|OAWFO)-cc7kBSbs1-@)Z2Xq -zEQu1CD5~c>?0IU&o$9XAgMXbj*siK@Te>>9Hq?%8GT2$r<+5p;!!}*oWVFJ@0dL|}TtC)>lg=#!TIo72+DQ;hNC2irp -zd`?2*GOwhBpF(|`f&cDD|MRqXp@Rm|s`nsoHpLU2RA4$;-`oG(dhdU}(4m8uz*%aV -zA*S(71fx;friO}R*)-5!P8W3?xj+}ztz!)zm^dP_ygMhKmRexUzwl` -zz;XM5fF*(nk*<8LUtOsuCJYkf{*OZoh6md34@f|XGk?~vw89GKhD}aXtEm<+!uh7?Tyzm4?a|G?dtqJW@kPH`*0|c -z1_X6H*s}BEkd!BI6X5IhInzG5i)wig(Y)l;A@xX#<_XE~f|}aiVn}voeiZemO@1p6 -zIInfjFHaxstACsq2|QE~(b6XJUtUgkMD5d?r-95Q^OBBre?aU^QzE>la3<~?piZD| -z^J)q1>Z6LSzBo}n5a2a$&b?)r(VZ#D@CM$}lX+TCxfCHbT$C_bvvf=gxy!X%Dg(ZO -zgr*gbO{DbFtb9e$YO9j_^%6+D36u40d8v#0Gl7G9hOK~WQkLUzZ?A5YCw(ufqmRiv -zop8)=!NbIuyXoEv6cjQqnNllh9i$B`0>20AcKl24qNL|UQvv4a#P`1#bckLE10?J8NaQSJ6b5<8=G?cI?Az>Z_YojfBDygtpg5{;Z#I5YVs$?KT -z04YiT4R>i5(8&^+*qxnLiQhy#dRN|&ekBJS7mzL&f|L}pU-Cuz4nTPkK+b1MiH&BB -z#hmS=bf>T~@x@plRMo(tGCy=hKcu-G)#(m&6+8_egQ*uV2bBn_RYQzltPHLQ4B<|YjJl=_g&V5Q6e&FEw -z%9aZ}gT!i_N~!Y0O;8uZr;JU?B@|p8I;mm$6YqFC^`eT}Tpln|S4@bwDbkEsmt^x71_5&Wg#(jENr -zkSi|`ZcT^ub(Y2+e(f$X!u50HZp1u1ePuwsVR -z`2*1yvU-ggA$%!PeDZ64Uxkd -zw3v_xdc@*zvQ1lP%w>qN-TJNlOa|;4fGAcNb{*Ksg#ki&jm7Eoa%vDc=r9^L?lb|K -z>63@XboMV@`5)Te0xFKKSsNYPLU2eRNU*^PGVo#<5-fOdhu{tY2KNXWAh>04cXv&2 -zC%6+_g1i4ceCPLj&pPL>bJt=`Pj~NKQ@y2jRXxvcUH~okvIsDHx6asF-u~bBB -zN+2d^+60fEv`zs_8k?2M -z@D8JZ-p%sxk*h4KqAp2JZ^A&BlB?z#2jPEWfVcoqA;5bS2vb(BdS5<{o&U&z#t3MZ -zvsXSptVTFg&f`)GWkqE}Z+15zS_9|eKrX?+S9i-{~Zi*za-w*`& -zQBK%Rl>CcrhN!^zv2g0l*V^pP1sA)s+uU+AD|mDpolVAUqT)s!s{ZM>X6Sst?5E;V -z{L2u>a-<(JLPN`CbU%r5G6lQ)5RNWRFDbW3bawIqqWxG(V*VSYF%|*^AbiFqure@1 -z4s`lvF!#hsy8s5;v=tP9wdbK1>1&nw#{(*{L3gDiDtud^;nSIR_Ttg#q&^=0wUh$$2(hC6Ux(iks%VED`&UY68gE+XdJ~{8oMU3h>zU`L -z-{;*ZR!zQE&igN>X57nwb-O6*TI%CjDD}W=LZlznp6SX<Wj= -zQ4Q=IY>91pyFt;2!kgl;1SK#?k2!&btu>u_nFzvY?u$I47W`SBQ{AWx$a7(I$+bym-k4iRqhs?ak-ZbA2 -zGYt}%Enn}cgsNa6LWsmfYHK;iZMsEI(59sh(sBrQ}i8#<9e;2c`Jh9KQ>!1Y*aL1G%laXW@ -z6qepty}929mI%kJxN<=@NuSu1|B%K69Zz9O}XN1n~Zzv$6w=Ze;qm -ziSti~V~6}G2|!Mk)wuJ7rV|mCuo$DoU*|=YIO;|x86Yl{Rb9<|k3)Q`uG-T$OUxZ3 -zB|-SKS=zJbUI7lkFRaD!{i8nb`;9_^x;3MX$Wb=gC9@vk2NY!6x+^71d{6bW`P%Z< -z6wCtPHfEOA9Y7u6fh#n_3G6;k-rkVA+}`aY@=ThuKWT;k<{^>{`Eh)yL&L65p8rjF -zILE%ieH2y?83n2;v)d+#&=SxBK*wxOUt*(SQuq>9(0iJ+cT)+X7yU>YWx>E^VF9ARLW7PH`W_A_UvO1;!gb~VRNvb_c -z+e;2e;$r1-s+r#~W-w--%Lx6;! -zvB*>hKN44L^%IL!IEz?zp$dV%|I=qGtT$)`QEAt8Y!Y=~5B!(H!|w@PS -zZ+Ha`mPaGgO5(r7E0C@=29TGuf_brAy^NBj&IeBd2AaT*v-8uP&jQtjgx~4Xf5&EH -zMDOro+eu;dyex&Cy|T3zMMad6oT`D)dA^br4Y!z@Gdwb2LHx_ql}X!S=i~M_0t}905#>^feC1oNwlb)6*oY0R!Ay+o -zgk3!ex!l)i>wcJ`<(IUEb9;x+VeI?t6}K3G(^N?>@spH*BXiP`_?Nu4Q3{qH6GB9B -z>u=UWtELJJTEFjW5>57o0J1M*Y7UGmy`V|J -z93++uNf5uf!9;ik2_^gX-OY%+!nPH4Gd++5`7#f4b`U!C1_C8ad5vY)D1?7I0z)%l -zz#j!79eE89gb+|lc`P>7FJfQ2p7G}#kV^or$Jo~X!u|daa8E!^BbU}gLuMub;an${ -zl!(8VDGvqw*&g$T6(QBdMP+nW3RQN%_H6Ieg2yuvPC7(y&nLGIgUF3`2FBne1UyF$ -z>k`Iq#4R2@+l7yZDbB9ltUAlVpN&ViORJ5B*3NZi^wnH6E{Obe1U(j?~Ln#G)@N$n5IHBYx?S8Fz1D5!^Pga#b -zFe+Bawsib3rQa`z2T>1{A`?V$dRIv+YF4i(VW6n?Wh6GTeLO&#FEpascv9c2l4A&J+)ATbpX@k9TS9fD_Cp< -z2!_|*@#)?Dr9-(ul|U?f5dqA|a|3Z-D4<5@9 -zXXoItD*QZyR#Gz<3hT -zw?K^I%@ISS*T6OLPflBbMYPA|r@%tHIZ_(r&Rd$K7${(e0<4T#LoYRkq)Thk5i!|2 -zr>BtL=0E`TT`2IWp(hom7ymOCRQd!D58$55Q#5g#TqQ&rfLkC?^KzCH$4mMg@o>pK -z3H=SC}Wo0Vd -z*!B{e5ePY$_DNb~kYnmolr?o<0A6?epmMP}zobd8PZ~q%S1GPmdt0hi$jMA5&K_oh -zTOOXY*&-R8sg+qT$5;SqRuToLB{c2CDJoV#W{8NwM6ELlbUe{xp>k=w -z$RoXlcJZ~>Kd9@!>)xaMN8A_3vtrdQ1iGsfy$7*iGKgAk9 -zmO3ebB5_Diam8a-x_!ssVMAV4ULg<~X?lkW6jE;;ozTtZJc(Y#T+_@Bqkrlsyd5ON -z4>XQr(eEAp1|?ad4P}9)j7-6mY*{)9A+pn8{?B@nO&%37oOMamp_bT)k`i>mp{_c# -zH6p&cllQ69qKsxhZuG{?PJdqKDr74Z&U{+l<7rLjEXSBI%-izoU=(UiuSP$#iOa -z=AZ0(o+dfJ7taeK@8TNIA_^W+|ER)9E@oANcFOUz;?^@nmeQj0)h_9C8CR8>uYunt -z#CDLsXOjH-`&=nG3`BA9WTHQJRgrod!0G395~dpF`l%z?!zwisW=YpF=_NA2^s#VKPFQCb@T2oq=%l`RUBGw`G;Lg@~aCYQZ8gc -z&k<(5cP?TnIbH0s*UfKhReLA5FUBwSVHHCBYvf}~yDvm@-He@fxh952e?o39bT6)7 -zx7<2u2uh7GV-9XV-`_PtCXlvt2($7yAcmznmPAezfZ+M2G&{x5@5CTWeH%QZgzkzu -z%p#OHTO{6Ea;F26iq0$}&ncJTu6cGp>UYg0{#x3oz3?SxC^`B#c{(oVlu8V-eLYyZ -z^TKMX>ny_o>OHQ74hxx?+gm?acQ}uSso&&#l4CO_#XbiQ^t!Zn;A$(vv`3iD4$>3^ -z=anM11!aK~d!EtLVEr(w)~bgzd+HW!@t~O-Rq-QLaa>yN7j`q`kcqGeN43%KB3Yxd -znPz&ijuV$5sfT1ESWG#NZuPZYwqw8LR3Id{HFgZ6?=$1d3le5G(t)_}i{r<;q>r+W -zD*ltIlggq2G4%mQ#x@f;3ry5x!7=HzHRr5#t~Cc`L|V -zB2c8*(r33yhKt}jsr$mxN}D#L%`iWmMDAgQ*zV0Z -zzlXJ|XfAr1Y>^Ouiim$n<$Pjb$bOX;#ZRKM1SKGH3}|qwwwC0N8o{?`By(ruJr$W1 -z`FIdFJM>X^8+9Xk3f^c#-0Psm{!J)TyK&!HZ`8dCzE2cc$@bP2x5P-VL9i{)6G}i@9KP(3mc80xKr!8C`?UXKYEO))?Q!=Ua%|7;5d)epjw)?Yx5n)cNI1a$0lr=wq5%LOOXT>fkUDD2DPUTa -zMOxgu)>qmm0d!yzF+;IOG -zD+h5zMR@~QY+X=TjNO5YeMkx^vEHhDT2+U#ZP@-)mrXwhzx4`fn}kW$n&M{7KitZz -zldxODyqj$wOh%958RWX2u$UsndE{cxE8VX&7wFd$a8x)$Sy&d|a_^Z+&p6cGkf4q4 -zc-HS#(w(|Wvz&*_wnJS|YhF$t4i%8-nak3msm)jhvIMru?B7`qV{tx5)x!Ivz{HyV`>2{i -zEFdpEu(Z@Xv0O)}L`Fl)XT*_SmR>}9#wUroFLCHHjxF9HIY30SJu4xBq -z%J>sM}^3|pi^??{KBIEa{~L}D+hJ4i0=~HkLoreqej(vOKq8`)uycLBZop#Amzlj -zd|H}6qtq*`YEz9xfV!*#i6 -zYdwZA!LYyA+Q7JP;#;=IPtTI*{8jtxJ6$o~hd&h?JF&d;#)b>Vqf7HoMZ`IEe5sI^ -zY@WZ@U1#onhM`K!LY*K?S_l?I(iLAv$%GXU!4`{y$)x}(i#ppBbP0j~w{Um#QGXt(uBZ7uemp-KUT-VP$4Jlgb88XYXIugY -zfPvG``}GRu4cM5vcTMka3%<~Tbni!S);(DPlPk)XS`b7QOlAe$WH`VA#cwq@wV)(zu)MrN0UXd#NpPe3urv|So?L?L=2gjG -z=8n)(zCVKx7^4Bkjz}%;?bJOn5>(QGXXzGMar{$IV*BwKT1p-o0S~}e!Fq%!{tFME -z0Wu+NuWyy9Uxi0&&5!pQV(ti9AXM4sKL6tL>p3+8`yxc}`Jkl4hPJiQf9pnW$Jha2 -zhmKe^$O=_Aq37T!Jj5vOz0ag3X!(@Y`V*LLQMXb}C-OwjK*A(SrcBFa;%?X*LF9UQ -zL=6u)?82U7Gbbv1L_rU!DLst7Avj)Z(4HEy3XJ?v-K>L9J?~l$} -z3(g#HwR4QT+0E~CxEaCc3x3i$<^#^YX9noAK#JRK_Bcng&Mw^a9LV*AV -zbg9kxOA&1aMl;{F5Gn(6)QZ5ZgSc?-*Ti^bli#@L|-YiTw?* -z5Ow%wrQBU3Iuy7T<+{?Y75B(3co2t0c0GQu|)02dpX^il0L@pyC^liU70yS42l>jfUW<}gACay@nfl{fKE{?G6)`;xQ0?6u+qL&mSBFIpO3V%|IRKu -zjt!bY)EHJo)cF5$KqtWd?`AmV(BuI1G8%Y7*ANN_w%ZDPMKbIWyG6jMZrvwi -zOu#K+C~)mRe}ev4$KqcC{*ROY3#t8ogm3@j7rBF8{d+C)1I(l}%StPQf27dCOA_P; -zHcBEFZzAH7N12*^r$cIqjd5| -z>A3$c+37z}9PN=C1&|#67j6{rsM?Rx*&n5oKI)G1sQbEbdZ;U{8Nkzzr!~Vsj3R(5 -zq1^HJO@}Oj69_TX2oOUJj2J%j7N1IyLJ1qTTdU=@px26 -zXx{A|WIWgAft{NWeveq^(xq+&fvM}5>C -zm~(*ckA3<7Ry_FR3o|f)P=ef;jlvPONx(lygVs!km}Ui73`nuXZ3t9IbkXkYz{dB7 -zg~s<0WP8H)EPV&_BQy1H&pMAkZ!xB+d>)c1h;|gbl+4*z&qab)t8Pk+*$>XdD>`eB -z%wWR!PARNhGtcI~ot-N6EqGZyfn;h?VHPu5ZET7?_jt#6{pJt3b8#gq+}6>zz{lrm -zL0$PzQbESSC|HPp^4s`8Doh^wY#T$O`ksOl=6K81D8Z~{E+NSJTPt!X1g4%9opd!; -zR7ndb+0K&Om4!pLRC@(;uY6Cy7th}F42ES${epDzmhjJt;B&kk-}iLc9!KEfR{jcN -zjw}tfJ9y4DX=5fkiqz?R@Z8D@R-6x#?U5Eap$xpFqx@>{umj9-U|mzW8A_^YwZN`kwMmZ>r8} -zD_0O{E5=P&utmzlefCK#b?F{kIkz{I|Adp5c#~wpgwtckVy~fMpYw(&K{2?CZl@>% -z9WK&L-`$0#bbYa9n{}2x_SJ3Tk}(ZPpJ8>;sr@}DzZL>=>MY*E*K}~~Wo6l}%wB1m -zxM!Cdg8tBI3*q0fzA6un^QvvB+T2vkQ>jGG-Es!L*+iErp-ziKAx4F5*GSEHkHmQDl -zgOfyndYsMY$}(HM{B!`w9Nv#_pJZl3@kBPdE^M;jm8TY^(=sx~K75sS4X{lNdxd_nnec7_?+iGQEx3B2P5W1`1a$5!JODKIkJd2+0UuaQ7FV=AN03mQHmL_izRR#O9iwTbIa2HnGv1yQ9ev*x7RbvAG){n -zP0B7f{aGzn>(cw)r3(xPX%yet)1!B1RSGw1BmSOGcD}yI0LoE^NfATt*v49wN?6bC -zvDuvpS%K%`^AnC^3u`%3cTw-zfI-#1=`_2T -zw<_zKNpx8`0D;cBr9jmBnx;X%aWh?XYbLdwCVYfvtX{hz+Z73=CCRQ(oOC3jlz_8xg(WMB3Au1v9@2fNRk{}kKT1OJe3d6;F%gEGzBfGv78 -zBO^G#^U1elLb6?DaW1|6U*yZfu74Ygk?Op>yG33%PG+0ux5%4MjfH@*uO -zyOmKV=hgV(HfE#6MyFC2V9;R!0Nv}T0mpY>Ax+YW>F)|O-7>GDo_V0KCf!rGW(2nI -zN{DA3QhSt)Aq%KyM0TJB8zslyOZ#d+$`7`l#ibrR^EB~)v3nXxf2`&THl1fKJJ$xl -zLHO$^@trLF@#Ga8z??W=4=^fI`ZSDSt!aju^X)&+Jaz2tc0m#Je_?&(wifY=R0lR( -z0%%GaAr*c-LA?V&e4VSKIVxv!9gspmD{bCN2Xm>(XenQkO`y)G+ZrA=-~H5Wtb$*^ -zHZK*W`q2Y0q|E8aBjzt#QiQJ&!*USnA283GQ$s=1o+ -zk%E;E*gjVFI(JV15XhRxHoJrJO_~TR^uYS(fzT_1WNTIiE7sXms3kd+IAyo!A5!JZ -zzN|5kQ1M{;QJ?C$BBooPke9NhXAdBAD^*y@FHga@aWyjjLpD0hh1v39&VOpD@2IkV -z>AL#OOI$p!zD#>x=lw|qP7b>_CT(LA3569@Tg=47fvE_hA#F>jx -z0QI`Vga7x~a;rDy0l3d|oUG;W9Ccw+tLG^A6eGP?V`lHv(%`A1?B?!-d~@DQ_Vs$L -zwfy`PloMnyGfmLR+-0)E#5V6-=5|uwI+w%n(ZL|z)?Yx@QBTo1PHX=1YXR8+PxD*l -zk+_03&ZJq4gHe#+SU24|g^~QGiBiWK+&?;EIj~K#%9a@gdy%qmRk|%X>WC)ho|3!# -z1ed;}KY|}K2HQRGP!(4;Q3ZLvNpUQya`^nF)5t%wYoxAA_l5@lwjchvK`k()h2jfn -z`*HT~O_5LK84J>Tz^LT1skK)RQF5e?sv^#!zDfD~b-EdyNX^d5_lGVqi_c90L!CIo -z)|#f<6??P>0*uD57IWkY2k^I5wz#4f3NL4C(6v2t@ojZbLYh^AYKr|U^{dtt$JUjG -z$^T(ZW`NEf7wyB4%}vYJJkOm@{O)a9Dn=h_=sS`Q8&q+BoMFV>GVSj2ex1y=S}yt) -zce@vKAXYd!=xy&;xtO0k#|Kh!Y;8`iid}oC)?mdk3bF!aa9{5EQfMovdfcfN;Vm6! -z_m`yYJ0pvm9?n63yI(g0>!a2I@s=&ca*>zWbv;p$^?-1Fm9ygDJLyr_!>EKr;^;>E -z8zqu7Bda(Shz1;uDb6OR^qslfsG2?ml`FUJ1p%%TOFt}G9l6G{$ -zHsr2*qN?P1@ts!D6&`EfJEJ&Bh*_fcvkU$mTYcAPlM&#)jpSlT;M2ER(}kn>G4v7@jlwkL)Ja9<2YeVq -zI(1TEvSKofPnXj_(NRb>vrB}2>sJgtYWGA%lof)zSkK3Iot1-8W{sUJJw0UWyLs(H -za(3c#FW!Q`uL^w)okK4>g#YZcMHz^<`s|wC{`HlNn4nbi)!pBzE^p~KO&OA80aU!Q -zM*()Gdb+Q**k7fNpxb+o=#W4BP_6nfJ4lBG8Jko+;ZYxLl_DEruvSMg^0nQxM#5QQ -z_MNY3^E!xu+UbBAR8fQm3FrOMWTan1*?@oCLT+3_vPv}>4D;9Fh0cSP~ -zq^&RLE^ZZD-!0x){1fp8ZeL{mH*0h118rwawx?pwdIi(MHzf8~2Cq?WYWlW~%=EO# -zQBK*uCAByji?;5wgam8b%Ct^yrAJ0FF -z`*be&0I>01&!7D593NtnF#8~OF*ZU9Pv@cCsr#q0J~0^s{SRpZXT1M{*1fkNf4sc; -z?6_?(j1*iW^vRfN3w1-5x2$pR9~M-#m@2me_BIYz@R46i>{jB%28Pk!yMR3N*Qtj` -zf)4691M&TBL&vrCpA8Kz)~hgA!-m_->e8r*NQ>i9n_6}qYu;zx-j{V -zo+evoDoRt~>D}f}7LZBRD~>ECw)q7YIQVT}G-5>gwf+t6v7oZYnqVPRAB-N2NQX3Z -z{`pXvs)$&xso0&s2|U!tG!4O(8KP-P9*O^OF6r=`ajLha4L$8qGWu))YcLqIS!JB< -zze9R5E0k41dt;F?Xn%h0n`xOpEVC3@TQp1928&y93R-v4BA%Fi-)-;HU)-UGKYV`20wju$ -z%olakpWOcBSnuDZjnDGrjDqFUJ?UwaFp@2yIoHb;@)(FBfz&O7X3J)#-R{HpsEemy -z07qG+!d^)V_?u*d4v{#P8N8JhqG-TJb?}o-?7n0Br^LG!AC-?NJ$LSWkGgdL6we)T -z6RZ$O!10g9T=|fdNY2hnT#HVFrev<7v48$`{|0ES!?j2 -z;^q<3LEkjojba32=q -zd6mBy;8t{vJi<^n7GeA#+`vBv>tS!+^$~kNtC)U}=#y-_=(kDcSJJEQV5$e}sb+pa -z+wkmdyGKiV{M7FM@PUk1k^8BS|D@xy>4jV~&x&g~MbZ&%bQB@pk_3w457%c4F+CVn -zjQnL|72$K6rI?K@A;xwGz8NWDGD2=8l^EL56w?dXi9$NtE7Pv@yJ52Lvr-tD8oqgn -zAf()!biv=i0wxFLNcjZMKrmpwJJ<`zuDII1*hSjnem0%TKWAyU8N$7Lfh;I+G8lQ& -z{OvRUffAPB(sP?@Z1E;1?7Gr7;x4;aRmDM#APptsa^?lafR{#Z86R?ctB2PTgv; -zxqX!=zX=k2@HcKFJ-z50Vuk;>>U)yo(2AkkAhHa>QsuHCowB;2%eAcdB?un58hZ8$ -zNPfV%KD-A$*E8OH4swkPMMvau7g0oGJis1!qVF0zuc=v)F)c3?AB-hHFS92d9w@0D -z2MsZ3vf^*YP?m>f@3)Z-HyIvIL6;{{z8;{O$O#3hA4}nDFYs0pe3&Ul^5$F_g!+8-(7itYQ>%wZObh@9o|k^cvZ`dF>~af8~JCuMW%~ -zvA>M=XbXn9ch2!9KW7DQ@S+>cbBUIVhgL6;^L>7C(Ys21)m7XsR;D3{)X5#gtMR%# -zo+ABRdOz;gd{$+|w%l}1tob)qRb2bmVmNycI)?o7t!fAPO1`If^M(sXJQ0__cc&CS -z5%_V8e%HJ%dOkNJCi7ZvplQ5ag?KaUXvpnr}dBQ -z#U)tEP7F#(l`>9+gu@fVdl9kWqCA(Zi%C^AIzCb_Aeeu*3afwp7lKU67{}ZFz3S(O -z@}O5sdz}K-}UIK6Lsy9jA8I1+A_u3#9 -z*L$e&{#>`wRMGI~GD)7hv5f~qy=~~(VkP6CDl{0fK#qI;oql*BN*$Oq>0DTBf6Zi} -zD2!si_JuV6l_Z#^`w7Efyx9R?^LeiJ0&PjH2!`;1qF+C7)% -zZAhxsFeeF{>;9fUHd85Lj1y@w5GJR)(q$%Rj)$kWq;Sc#rRIkp!lzb}t%mndMonT~<*Dzhc)#w;0STt#~y -z^7G%(KA#I4tx_&yKglT*mNZDBxqIoba6RVuu(4l~Q5TD6DG*5d -zpdAaLRjIckU%`=yiR#0Sf=A~po{=>l>^}p3)plSfVY-Xo_s|5Xc)cL6xn#e@{$Oo! -zCfuWOmYk(?tM4Fe=Z!CNvFR&%PxyH1U#hXmDQ_jx;J&jh5FG$Cg4`}mt$=)&$n -zGJCn2p{|GPW)OD_pn4qQXuRkj{<7|9J7VkI7{ZH!fqHFEfrrc5&9Iq0k -zvDL`uejJ}qu2jt{L(WPc(%rLwnf>`BaT`WaTSB$UN4#C2IR$GzvgYh@$s{T(8-!(9 -zJ?F3Wt6y-9Yn*S~rdo2P>E=6dt0MVw^0hwXlbR^&-=wpr+cNBj4On?W6OSRI@R}pwh-Hl^KgQkNyZ&!1IMuVR? -zTd4N~??Jbx8wd9(`B^%PrS{{!Krs2Qt3}Yzq^=$h5t)thnY*+H${1uI$Le&Idy%-} -zzf0P^qV{^KzA|^dTCkpH+?j(!X@gbjIe1f1 -zF!%87trzj84zSwn#O(twFKN$Fs<+=EgKbdS`26|J4c7NKEj10RUTr>B5t+iU!7%wgI%;p<1{NQgLg+jR6Q!>8B{2R7p^vDvOIG*Vn -z!@XhPJz~6RJi7xMkwYSxgVhQ+f=e?pTns^%yOAA~q8!t(vu)lH)ij=mcTvp8iR7>r -zNBshxHm~{+JLrB=0?ExRy#WWXAHGkNm9u_OPA2kvJCyY7NoHw{F9;6g3X=}LZ^5sV@kMI~1QieKO&0I)am3Jq_8McUP-Y{z&6a4|*=KjCam314 -z6pXKYrF@Eh%lxpVJF*_)O2GYxB<9GWkZKD6VeVmwA;1>DlDKbD -z=Y4rG^1v2eqc@wy?k0lw&UgUU!A6{z$#2jyD_nTRUIh7Wto>%wT}JpSI&y$*_R%UWs)634FV -z20b9>Wavj0I-6JSkfR35$zII{u#|urTtk>#AtSRw5;2YB@BhMS`}A;sOf*%7sGx{L -z4vJQIMc)kqST52nfq>V;%ieMFHtNV<7t~R5#Ynfk>xW;vYzEIRfV}yA)xnny^l8R; -z?^?T{;(4~%kdS0E+I~FB$~4_t3BB(bOTtz_#>OUkutn#+NOVAwi=7o@=%Xf#2f}i_ -zxaFac{|xR2#X8q>bu`uqKGdS)rXJACAK23Uq5Y+0QnwwzCo2 -zzje>`R-?+_8)keeAZCMvq-1(LL0os_^FwKJs{Rq$PRo2qw>bvQk)NP$9c$u0`4N+M9YR{W}ym -zHY^04!UeVNy6{c;MA``)OA6Tc0x0|s{s#(PiU4rk9r(;4<1NwnJA$LYxV7FD9d>vPz7bC~gXtyf!5Kf~=_ -zn^V9w1StR^@pJA|uAYs&_&m{;`cWnSOu4fl_^I7tx4tqpl&H?kqXReTs -zb5CJrNizvPP9Dmc^YLK^GE;LdI5&#UK5xu(^z0;@dmtjQo|#E@>q|!LQ-tY6JzViv -z)9c?=6=(;E*yK%ZWakd%tgGqOJc|BxtCMD3EZ6!x+U&+KkVOXkJ+n_Oee+p-*IFIw -zN9H3edotYAI1ZLZ$*TeAWP^PL)QKYl#c^PR$n5h9sn4`S@};FS#v0QR)c1X}WD*{}DNMb{VUuej5s|c-q62tT>$- -z#*#KO+=DrJEJ!2ePO@v|-9?Hr;*&WXevEZZ)T5-^d7W$Nwi@1(Z}y;H%j^R@?-4_- -z1BPZop?I~U>ICXR(Q*zlsTr%1w*ao{pbM#^(6O6&$QB4kB4CXN9wuv6lS4OAHJ!;s -za3qZN@grq(&KMGDl2@QpyffqaSdK#IUn8xUkSQ$9gv^m@yp_4@Mr*GW`VE2LuAfiK -zUX_oWB`P#he`F|e5rQDYfq?(X*OI%N{f&&9AI|e#&mV?5!17nf0!gmtd#$43!D>Y_ -z^0qaDWL7(8(Kq^|-4XOal@6B4X^Rloq>Mj{c{gZzfNAfJ|1k`t4Vs2FJt+Pf1vCTs -z%AZw)6M;c1W^Fd)Hd8-to%}50zUdEBzixZ$5WGVTr!cH_$6UeD1RAy)$fJJ_+QB<} -zf=WPM_DU>xXI&)6Oy|vMWH+BIGk@nd<_KqGftIzO_sFD=pC{|A9Fz<5Cbl=oCo>({ -zthFA84)>7}tgRO|+dDX-@%>-*<{5~DIHB%mZYU$ty3<2ebIN0Nx3-#+)J!)-CWcebQ4dY1Di== -zOHJD6`Xll_xYSc6l-^>Pwa;yy|5echwy!a3FIbbyAK2mV(wS6@(`3f#Ui -zM>AAv*uYoS -zxN5lG-m>^s77n$7B8r{Syk5qMC_SgcMAG(rtGkdM6;8< -z@*71|^)6i69`v>VSj!QK0Mm4g56SU1gD7Q#vNan>ZR-p=Cm_}1sA6}}np^LrFvzjV -z#F`38z;QyWWPujLw1b_+wJp#uDKCXiR$z~t+52s7IbCuCD;I*@+-^_ -zI&(WV1AGyESItc>QLb00%*?hf1bC^51 -zdTre2U5i2M`1G=W%%g!Oi8@LBMgb&~)ZXbYW+ESds)xx7i|CeTW6kZn8h--^!2t1` -zfnP0)K5E6yK}23ey!Y6?_~ri>u|+>J>EWhWV-kvSa_HS -z{uEJ=8-tM#j_A`fnT}ghzZbNtdr;b?*;>#VKDqsZ&q?Qy(^I%81Iy-1*Gr6;bWY$c -zE+0orziikeEobl?m81v9+D=LCvVVPBd3C@0awi9QZtZx3yx_xYS=}Tp@JvyyWOBWd -z*caSw9nd{+ry((>zvO_eu4S8P)khk~Hd_dpy7Ji}yWjT;cc)t68?%8dA{v%t{)>^+ -zs#6u^TbSuN>4D4-h21%noZ7U%7e091)#8910nDgQI@%K{=55;1Wi_8JO3 -zoq-q4mpTz(`zh=fI9L0e)hw3O+{R_=_nX!qRC{>ZWKh|o4O}QBE|nsudFBorXdo4v -zp8RUKs2_}fe^Tf-NqAdU^`vCd^rHlGcGUurl|tZ`B#Es4{X)=IMeJ4fAmi$PqwFi7 -zqI$n}2@w%caS)`D5F|wykVYw`yGxMn?h>U#I)|Yfq`Oo?xi1R+c*nG^CD0r6DRn!)B;pvGFfO(}gN -zwf)@(@zJ_k}%{EEeaDzx*M@oYI2i9ExK4Vj{xDYgKH?)wKV7=*WLi~*t6spka -z?=!t6$Y#qnlr=e+_4ZamxT)bwScVkvJBcL^se5bWeOq=n$64Hl2+#bpXY@=xLSViA -zf?3&Dxn~O`;H{TjZ7CKGQ{CE{e(d!2CVGedeX~y#G2u3*{p$^u`r=pG-Q9{tBI&H6 -z*i;4DJ@lGPE<%3{-h&WQx-H)co8S1|1=JId7@m(N2KGp|$*#R*WE8FHoF+Cuf+c5n -zncn>Dq}K(JsebLa_g(;#qh{7UMxfXcUpD%C0sVw-!8@@tJCWC+gGeu7lxtX2sXbLEu+%BSfjQMwOEpOzq*>f1-ONF)$+4aOpXD) -zAo)E+}MXE -z*Q~jrMyS{=TaKFhH#8oH#eyGZ`g`#rOMFK;U$@99HiIN;>LJc&@|9zkdZt#^PS -zD25g2Q+1lQ_m4e-9Z{=;Kga!8%*H_t{&TZuvk$5wZrxm|_A*yp!T?VWzuW>xcJ;Q# -znQN*2;&iPtSX88xvmF&Hv^{<^mv#$1inE4fx8JOMsynn{^q%7b(HsVeS<#tKD6?dT -z6tQB(YEPZ|Li%kj=F&6D@mbZi+-~j$0sW(NH_R6gJ6|dfZE(X>TjW%rk{0sLSPhIN -zdj2dY)HBKgnD~-VxT32_#+}m}y_0%{QC9$_0W2azY^~GiM`zXnXX7PMCg@DxWcy7( -z+M~VnDRaDty>Idt>bE%-9meLiPpPiF9BKu6Bde70YnMuik33_Bm-mRP4o351Lnnb` -zoN-g_fpIuVK*d?aTy8R`FYni61{j(tfNUDhA8LaZUeagXVG3%zwi3d?H2zlwD?7UN`s@nk^ -zpGDW?9Q83I*^C(>EUX-DGnWj+(cOz^V6;0L7~MD@6lznbZ=$f5Qr_g@hC6zuSr~y-+&i*{jP}hI`1Vd;vNPR_ -zbtSxZIf><^-m=h9Zy+ijZdbY5S?K -z;?w8$GM_?-1$#1n%fsIF&EjQRR}GuPo}w$-{O~!~3XDzg4mUXZ)8qDZF;S+@Z%SQV -zP>&H-GzuB3SuWyo&N>`?0Oj`-j_>U)a&-V-lzHqcf{9<#ROt>w2JX()5$yo}s2^Y4 -z%tG339t0uAd~uxyH@>(%>dW>&X0_qmy*%~(6iA6`s%*FsTj4>I*i@@~{oE8=-!mVq -zmN&>_EOxbrw;Ovqsmjx*72i!fg??O>mD(e(R5G3%2J}<*d{*d~1`0$1Dgw{IbC|(! -zL4Y_2xy4W`_uV4Q?xkX;OMpWd6dX8$iY0iOr?%gG=~a0DSHsQADo#l`BZ>=^t{VyBw02b{rYk#fEj+0}tU0WMe -zzMEY5PiESkBGUdTOvi|ut91%S=@KFPNNFA~*KXC^NI!!#C^UNRBFQqE}Us4ax$9TeUnt)A0ZK>i3F{D9UL_NOmuz;>>5j -z%FZIYmVrCD^xc?}RY~x*1C_|gD2RZwm+vH3QY^9A-#*?THYKnRJX?BFeqoEb`F9gI -zZQwLjA7I?1R|idHW{<*jbAr#+Wh?C%mqv+KktngHm;Oc^xWRKq>v4#^3(t`aIK%^{ -zscmFWhhDuIx>|9c1SlqeQxV&5z|kq?#_`Z^smgyeg9r81^brtNn&6O^t>5gqtGXrt -zKi?U~(kcCeV2c*8{<$=H$6^omtYi5O@M`?0&2!nc5a9@%<^7{77q#pyGpnuQt@@s; -ztmphlpX2Ws=B7tqmrw(lPtAM@_dbACk$X6fzhFSof8Dh5PQ~{YSS*~(?S*+>g0t3H -zNXmLVE6Rmc>(o{o^&j*5738{w#TbgOl(lxhi_vd_X0!MMP;5g^{x(OAxVFjv*9NtC#7-h1o^nr_=G1$u@K{{)gvx>))SnrQ -z=UmKuxR8Wa_vnK{zrPc2!(!H9Q?5^+maX!)2 -zwvXYW&4Ni<>+pOiK*7G>RTciW8Tg(N1L}Alv-G10!_Kxz8}aSCh}o`jct;@tmH-(E -z`MHUw%boK16d2T2eow^J+N3tDd7piAP+h3J_#B|E?ovb^s%@XYEBCe$gIF~+7*CvOl?@haZDm#Tbn}(`4*B_K?SfCNz=_K_>+TJ_k-zoD -zO-k~^*Q4~o?{%|gp@0_r20dZ7rDd4&LzWpBAdt9^?RNKpu`}yV3PVNNl;sE8rSCO2 -zvCb6a&`1FI9%R;?i(lFaGKx1?Xh{ATWAg~aPcdqfzIw<;IHRt1EUBeNt_XN5$nc>) -zb1#!o@%i(L`7X!GRHo^l<_~f$@8lF1-44M-JE+wkVssw~dVj%oNb+OqyxXaL4r33( -ze7=((_Z8b=T2^5ileYiu{9OlUt&@nwr=zM9Zy-<+0t{u&RDE>pd9VWe-ngvU3_A8) -zvx5O_z*$!e2hYA;0gS}fw{BDcG6v6DqQw|NacQw=P@JB&7ZfM@xC)Bj`gQ<{-vCzW -zt^i18E%6wT%j19yWzRhhnqZeLe!WvH8Jp&mxm -z)jC#9-74+xF0%IZtne^AyTzRJ>1TP%er**(wxUJqm{|0vrwFe_f6TX)s-p2E4kP8vN0nvM$r@47Y?Z! -z#O_VSAFgZLwnSi=AyEoL?rwJdBbsB$Yg@?XGw*UTHumx67sYS3aL^&7ng`v&)WvrG -z>0U!qRd3;ca#o1G+)p)2j#qS{HwFLPddq?Xci&i=Du -zUS|^v-8nbp3UT>o_w~YO!PE$2!FOK3mQYu%!&eaRaFZeO$8M-s|bufL-*D5L4 -znH1ceVfDTOMl$Fn -zASS&HlPtumtn@P1jo -z{ZNoou$Z=uum{eHa#NnAW@^?3spUT_I!wTk-80{gL0sz0u7CXC%tG&Xw5P;`@AByb -zj1GcIela>bmMpD$r}~Qin^bT4CO7@ghvI3#K!VAfG}121jU^L{AQ#@fjyS>VA})<1-mdiL!fb@%p9I-5bK>L|4G^uQjY;8`VHl{6S}XkEbnPJN_}u -zD%4v9v-|$QY?3v1(1SK^x71H^!!$3=Db2@W4<^R=Pb@&sCLT~9uFrYz!QQsr-?pDV -zpOXzHA@X)*5N>ihdp|WJ3?CXl)w$(m?^jB=uzdqq#TmAS7^Calm^C^gN)X#TTI6lQ -zBS%iWr-sqt4ecc(NhNK4xvH2X;Ves;#~T_MCfEMdz>wM33iHO%N*R)ov#B_mBi0SW -z=zy;oEO1rSVBoK77|Wp6XX5sj0dFWclWHY(#RMSCkg~4Et^Q}1Bs`D){J#bJPgLiAC?vnBVMDgHr+W!%vx@L8J)v6FWb={daj -z|5)}knTI$<6f3$!XK_zFzQyF|j?!#tBoD7+8&x9q8Fnjl#)7@(rbv=2&mQ6o-!jG4 -zmeF73TVFK`Z^nQ%neih1kjIAUQ0t}`bzP^KTfmFo--M75-gNF4&x~MlJcSisxQBN+E -zJuGJ%8%f#oLoPaqNYeWDT*>jJ{6hanyB8a*=3(B8fw#ttYCyOx-hl7w_;uW~3W6=p -zO=3dcXE3`;Pl9A%9;frCMbB#SH5~W;sb6_@Fe5qiN^1rqndMDom30H5tWz120Q>}v -zYZHxX8d>oDv>4i;@aUwc5%r*!!c=Y{>z2b4l%l-=)y(-+lzJh2o%j1K7xI7sz3Z)X -zT8;o&Y=_kHORjmhyr}pmp7UcEdI%Q(Rz(&Ta{YcYxLO(0m^$zU=-nQm`Ba#@V6$-7 -zEiZ3uhxz+z0dqtRa1-loYqqktVLHhb*+!}>>nXELAt;CmKbpL>HHrLar(Hew%G||b -zRfBKAYhAO5G_#vd)tcQ1R!RqTHHZ2S#H|-t=;$K%!eA8 -zi^&gTiv6Z3j6~x1C}$<8uRHO|z)Av=GV&@o%$IwBu&_?3ZvKM;{-8O-*Y_IUX&bfR2^%vlW6p0^7{F$jJKT>!?v4=gKne+4~k1tpl%OP6*%&)eV -z%I#hJfjiuW<2Bq}<;uS%{Qt2RL9xp?^jkpanrzAOt -z@1DvrI(S@c5WdvOyFaOolr>6skDNQ|cP2`GSz|kNy2VT%P~gRq<}jx+p){ea>X(}% -zk8>JdN?db3EC6L>A5Hj58zfnb^|D_#{OpBlQ~Ap|H|C@2uMfclul`5Ayupb3#GBjw -zELkJAx##W;Ob`#|OzmL>YkL{4lLumIywV=XOCMjHdx=9tcIWExeDF6l5xy0W=cU6| -zeQaQ4GX?aqWBld!1Wlu -z{w#{r?)5^Wt7GzLAG>Gyj=?ovk;!50@q;?U%QJwG~$2 -z_}j;BDs9(o^Q#i4j#td)d$~8D1sSzVOq@;^y(^JE$KLr}ILrD}3Qh5BO7705PO8bb -zEKEM)IxQAGBv=zhUiphr+JkU#rj9mhg06pREEO80VJJ5`W`!&ivMSGnmgrZwO#GGwf_Kk#%5Qdcv^$s{@ -zR%Lf=ugbWEe%Dp)Hgx=@H_sRiMWUnGeCvB#Wth?>utB%AWpp?hA>E*!O(ePCuc5OjwY@E9o4`LA8{K -zMuj{&Ex19{6dY!v(8@KHF%BRhGf!VUrb}iI*yxfSN3Y4hN?d1n$YTpQvy*PsrS=Fj -z8Pu(JN7l0&3X!ukxhq%j@+Ng`4B{uZ<&d%9g^Niq_xctsS-F@b`))zKI -z0AjjrVP-do&YYr1d-K#dG%a4=(UPqYpGa1QK?8@6KKF2@G;^Lnt_lTq9>M^eonxbB -zd&Y*`Z6Iu;hpY+hTI+u~!Uc59Sn>7Q_JLSdnZX6jwc3qD|8-I*O;oTm_wh -z*lZ9Gr0%_l3X5{@x)00oroUs<`H|W)6Gy2NgL4 -z(%ll!7^v^;3>V;6U1P3=PS}5EPn)+Z4C;|Ggn}l@|Cl6sX_}8+XH? -zM{GQc3zLqx_&T)Gsi-rJjZFrmfb_Vw)OwOlAf@T>M*KxZTHU*_QW6zn*+VQtoQga$ -zafoCz`^VgGXS>+3xwVNi#5mqb-p$KY!4yQAFUzB0^e&lx -z)BV|BCkdx#&Oco-k{^HdsLgji4C8sW-nE0l;jC502RqgfH=n(B`#@ZrWw529+zql$ -z&F@4UW5ZmMBwUsG4+K^eW4q6Hg>#0T7R@Xd^tPWUfAJAGf2*&s))+}Z^{eokaoZpA -zI$L|WO3otY?zm57lLQ|&#a;uj`d4ErpO`qOpRS#7ezxhE{T3c3gTK44)XdTD?gE`M -zJ}ozq;SBUuMv~d4sXFt&8T*cFw-`#OnkVuQvQQ1Ze$)tn>Dpzc0wL!ioFI2VFPv?f -z$u~|EROMg^!KLtL-56Gx!1`=A+(?p$33J3N6AT#WD%sF&<)YYXyj?^E!*rFmFIJG{ -z}sB|?Cd5(q8 -zvGmMJy^sag-2%B~RGM~C3`|R;E6?h-J?rj-yI^gF4ae_#05?!Fr)Lw0C2Py1eHtM9 -zkUIUj;1xA7*kL+nR1@nV&(OZCW_|qZv;Lif*}Z&!GytG3@9a&F1Fwhm_Q>?H`QXw9 -z={IGA@r9F(dd~WeVmIBdlvDKraQ>NKZ2dmWkF$3~v+0~O?evf{P0Lmeh -zX(`Vz`TA|6ealwlop=C%MfI^n3C?sZ8GL0GTn<8j(D5KsDUV+X%AtP9HA~o%dOBb) -z@Ju4Hhtq3AX@l<(lfmBt)YG2Nf1Y-makHf13Iv{&4D#Q+h`%nY@|=Tr`aFyAmbb5c -zOw`Z#AkRRk;LBq7Qri(GEa1cbB)hC2Rc^D`$O2eaE$e~M}LLfT8NbL@l -zKZ^P3z2P4$#@P(fl$HRb{!$hKyAsn=^-+l-}%8Z6*81Ikb -zKKWq0^y&HEqo%y~@+P$|{;;c@V -z7VK(o8g3b1)~XFv6-X&leM#HisoT4ZDKB9$^LZF(>onUIWmOonCxfbTvpdSn2!$$p -zOVF<<-f3}Ht6^wmO%h+5ejq10h4(&T2zgaYcF9$7oqJp0a;}k%w@`pzBDUcwF*)xB -z5r_j+VG%VYZPhTfQdp0s4j^H|KNi0S4BO-f{MK`~lYHlP%zM)7xVj$;0Q?9#4?`0# -zVfn2?0#cCfGRCjIu41I9+!AAgE8tAzvp$|y=G{nke<{jvG}SiMK)KFZxZ|sto!Se0 -zTbEq*7MN^|;P$iMS=_b^meW0{_ib9BF0UBae=I%+*Q4)i$Elw>;7vb}__*?RP0K=s -z>WB4xk*P9-X)<1xT^wX73Icpw_`t!^Qj7uHmwWyghpu`WHV^aiDmB~^Y1;43&radl -z9OV6O(~zw2%u>_C&01~KWg<}lTVOdgUar$;8+PLz=ow&mrM-*BUvKIcc~6yE=;{6Rw8HS0Ga>1 -z!Qcl5Wp-aIwH-4CKZD4RPELY?cP#@%z*C`ir~q5f#$f4FH`k5|R!NR+`%t~&TC07= -zxawCZxI-c7`50Kt0kRbW12qcr0=VP+gJ0&Hre_lw94(30Q<*PG;AH!*AR^6;8UMP? -z1^Kp)r|x31JZkJC(c9FRs22dz74~?gyx8`26H{|A)R*s1MRb{hzIjGO(=W5pG#M7& -z?(-*Th@UQOy{5aw7XCT;OPVoBU@#Ufizduea;t&oILA7nz?kDLwx$}s#sm=~ylbZk -z?f-O5YG`BQlNLf4M~(Cg5C<5~ZnN17Kt1L3-alh^HErT8fue2cB`(anIHNixcpgsH -zkTtoCmLkiUf{dPElF_WN{_N+(VCe;Juv13f8Y17on_t=|y=)Q{-dub;g>&|XT<%R< -zoitCEt)iklYa70Jzp>NRVO`ZOg7DiQ;Z9&62#Zb5E6WO-*d{ -zh9ra&O3yyQs#8$7X2c<%VjX!={b)Q)CX%1I^9$u2L(w>;R{EH1SKwV|tI8oT%ui$7 -z-d=;dqp?=$UuSIabEe7K^m#dMPpqYIgmV5Ij0nPV8eIPc%N=nVU|+NqEWMhX{N4iv -z4P|)b@Fp7hFW@usu$p6fkgMAXRc9WSf{h1GVT0hNw-sB?O}fxb3=a9!BugnmaA@4c -zyvR+!Ic8j#q#auxMa6wRZ}6P;SM{hsh=g*$hxLrmzNC)0oMMhjJgvyK=>;Z#L0Z5` -z@YJuIgzzZYidTMLr^hcuI;2%;K-`CG>_#gzINDfyF8EX80Ij@u>;Q6wj(CcJTb1%H -z2Kr1sSgna(bb?Z|Ui!3YqK30cBDWoZ@)huDl{Owd%Y_a-qaItVD6U$Zdk(jK53;$R -z?O-y9Mm(8DC{57YndM?~{OOcwjfGfmvnpDN0duwN+T|4;;bwUCj)l#_$!!^Hm5e+| -zF!WvzZu4qH$r`?zu(!EAZ}5B@4)_11$@D3^k6UMDm~ -zjo6(@xc1^VBnmCt$~G))*E#YTLb=e?2M8w$-L&g-wNKdv(G+}8;2vu@sIUB4qowlu -z?w>v=$Cxh#K%$G*G)2v`M^)>fj&`F&*Y&zHd>#V0c18FcvgkN!nD=qiVHQZob)>ip -ztZ|d3UBvgn`0BH(O6y#D!}|dPKI_#~VP6ld#ru>HsompU+cz4~H}&rMlP0{MTunW= -zgbvyp0zEDyE_#ob*)NHg8?(?h_h!A|z4>N2Zx_2hsEBw<`o0Rpa~YF^n|RSJ2!;#y -zC3Xp-BaE>FAwRQ~WBe^1jO5vHyOzECIy+M?ZYnfi7+`zq%48pJ{;iAGTV%=;l8o>F -z^l!0~otnmzoYdRMKVcae6afP^k`0A^y8ikoc#E8I$?Rj%>zGDSA>mQ<+uN*Xnf{zk -zIEmC&>W=%;5jy{v8zUJYwM!k_=BLZQQjwpqNx)uE6LgwZA4L-4pb -zc89EUX4Jo=r3Ftz^|xxB!Xp5i#eM=3Tw`63Wal#mf4fN)HG$C^dYZ=z+K>j!-86C2 -zFY!Gv=jE8TWntcc54P==1Ad)yFrF&1{F~TX-yah|LgMYsw};b01lWzTE2U03s-j~b -z=7TV)VbrgQ^!@0qy*|d~J%Fwa_%KWPW5hLSUa?me{l)4%93P)?Q+2{zevda8z{$+Y -zh^TX&(_Bm9yxeYY-(a&@CVR~W*8b8S^70d66RH!oLn>Oxg8>4NPfBE95Z -zc$Ia#O&1fSj(x*Tk=zi29oLQ4rc0bmJnE<6`wr65oF@l?cGblD+=47VQ73k2Kc6sk -zalH2Empa$oWst5;{+eZcR>gt(i5ZXXYP*YQ(a&37z$`ZLN@e2d*ywC^{=rpoF>Cp* -zDK!A8GGq(+_|a-f2Z>GkP2K>mGJsAEfdOmmtAsWnZ+c9bk43a^^DZG{y3DJ4n=b*) -z64oY*Pq$Q+k-!-0f!+l;$j}?0@*J{pBsiP;6B|bwcM8DHss0=(VO_Vb!l`8d&iisg -z93aJ_{k@nm^_C74?=mX&30`kygCIb!sBl66<^E}5@w11du>*NCWr=SG3g%dhDyEiO -zxjUy)yTctw56ZB>yu^P#8{1=x_vMgs0<2CsiW759D4+`6y|uvZnJu} -z4Q5hSJFxg$zRpa~d5Xh#abV*L4>Sbip28%vy@MXby8V&c(&G}T10_rnvl?%2+@-mq -z{YKi9MRMER;h-t8=-J(+3dj9HW47nkMMd&o{;`lK(dusF3R##Q@?p2?O?R#acAz$93Mn`Vm>My-n!V=o%G8`o`O`#%R1 -zAGnk~+ucH2BQ8$12^33&&Z@pX>zaNwUv#xu=s$cf{yQnfoQvxHc!C|&@k5TS$R -zvbJ(bAmyH*a~uGJCMSE}A(a(#fLb`e$M5`dgY(2r0M;krOZWlm{hqNv{oVL>RoE~%0K3y2`R#ggMr8~f=eENBS@T!>E -zw4q?I4JGQ^zE3=MC#nK~kt!<_6m@^KlTO9GxHxJTe7Cgf_L>z`}eN1lPw@{ -z@SWYXQ;VEslQLwM(CE$C@Y692RN_7Xgb+iYgOry?J8mBe(n+@`5_5MAad|7KI)zEqYK{XBUiT=TuR4Q_{)XTnE279<)I>c -z#K@%IN5hE}kq(fBpZ^Vv(b4?7hkc1!TgBN7BD26$?$`SsUZ1T;!f?`OE2oywV(Uke -z?v~TwbMu<>!TNbUlI@VPV4KeBqy(pNaOI1E%6T)Lk}tP(QB$t$xu%xrH}80})swIE -zAOse!|NVIK)15bP0@fA2>vF -z6XX?uyz=$UY@9})LZ_oq0B=_1_p-pmcTUZ1!|Wd9d^^zsz04#rx6ltJmz8Z?wx6_m -z1HjS)lx^^67UsHu24_+?Td(9YPqygbK@cAP&@?#ao%=*KHQ&dSknmyD^uQ0yi7rCO -z-vd3cCW|L}qY6&KWzJZl1yf%9m?VJM{%N^HUC@0^y1_k~(&0TamAIEBP8%<)tuHeV -z?-hd1(8pt|T{%ieGVWs3e&Fo?+fIkdxiKG`%_c4w&wX3kd%@}26n57{0CY>z-)`?d -z@3^FYPY87?+wz4osW)ex-*ow{%Re3_8$60hQqWl05JZ#L=nmOUJCApoBdu*ynS62u -zQ0hOwERhSuh+)>aep5N&zCEfst0r;NidyE}ttZG{z1!#wt`@V)n?F7IZf3>RIXru7 -zG}h^4>Md5t&P+s=uV9DKazBp)#pUqJED0pI5W?vVg+PY(c)=@i6UTYKUPbBG3*Kq{ -zM{a(48=}>ME+=co>aRe{498E0E2!|aO)k1c0+#zX8=S1?mh05xjq3>jCZCM2J0_bG -z;X2z(Lm?9Zq`>G%>jjrrtS^7-I?QPl)H5J0SCw%=0JT}y);T%H5S5uSc5r{q8`+L+m5n0`V7G#)f6kLt>iwspAUA8?z-c#s3 -zi=S>gTsTQX+BB?(XCrL)=ihQ*UZ)P*V+u?lq}h(={I2O0_0CyFQ%!`( -zEob${s`(kix2deh`_gPf25mQddyDek7!rb=ON?^?Wk>GOp#klXRDA)df`&`=`~5iqD19N#mz_0@nhTj5T! -zsg>)#?|08iW{4}#wk~k221R9)eazo=!NIBa%9?$i$ajEacS&9mK0XUF=KJpM$mm#W -zzzTxR5_m{eg2SbFNvfUm0Y~zf9iTdbm -zn^-_4zYJnjcX=<)?z;PcyjuPf1aMk$dM*GT6N_%$SKH!hH}^3rDjN;b@|A#2Qjl;# -zaS77=7%6=24i?rBLUwk$nkTdEc8#Z12`7jX^MU7AIgYDJ%5@sE>>lO3jo}YK;7rmrQZ0aHxp-s@8 -zwGSh#Ts_WFW=IP)RTtEE!M^D(P(-wHZC|6(H+sY1{5jh$Cca?_YzZ4+*c$dRHw_Nw -zPsFTWcC-y7Pus!$WE>WRv}33#vY@EpcHg_qzg6BGQ7a9$#w+FH4nNy}Tf7Z|1)d9@ -z&Phr90%Rx*u#{LeU`wqTj{BAgMHm1O4{wa1y_A|y!BwCFNEGgED=;yrjYLvVh`p;# -zfdXX)A*4a!KsnGoyE&*91`yhZUJG#EE8dWlciK)j#j28J(g3idiC{NwIEOvpNy@ne -z#&9*5@vt2FyWy&(q$Smk)KX@5r3 -zWc8+%0kWzZ4GUr%+DmHk+E<)u+?#6)8wE(`(mei!6GnDaW~8THHIFpW4K$yOzwdG{ -zJ}lB1;V89Ib_i3?AbP&TIB|OGo_br*2H+hy -z1~5Q$z$m4YcMAAEI`h2%>t>=FfC!33Z^J_QF%{JSMi9_d=ATbMeo6G4Pw1{jgcGoy -z6z`v#CZIgA*1l=_3&@plaQ)#+Qe(=B10jLwk5{v9Z|51#or@RyU(PDh6oY#Gn0OR1 -zIF1FgJ+T~$m+^)m0kT&L7MU1&+sQAv!DkhVn*ajCB!t=6x&{He4G!@@`60olf|!jw -zpCksWFdQrm!ct5ySH^GAA$~l&>fIg@dOhZG1_wGDjjwK#(o}ewJvB_Y9jHH?*->orC974xm;CO2L<+&sbU%7sq@L3=M#?oW%_y6!SY4r!Mqo93s?j -zw?RV?h|6bhyBIa*ap57GAvchRQ2pyijAS6C)|0K5a2UUtlR(pHWCVd0v_(GUWgY -zzf{ROVScHakrKk%Vlee;?29e(J)nQCZK8Wj(^(RplT-q3Td|gm4)N*M4B56Zvt|a< -zx7%qfFO})UPZ;d7b8<%JT&2X`V-al;IU`87FPSryfYhY4+~TmRi`Nq?_eA7g<&1sE -zGg>=gi=&P6%b=l)PYOr4)&AH9+!6K$%)!gx?A9+zA6T_WWRif#(e7Cm2C^StyHYaiYl}l~q&hC*6 -zAXv`3w>P1zW(X*%KN9B%Klt%PQ*$KP2~_w*;^JtpaT|zfzkW2A8|tb-jRKt9n@8H7 -z*~!D9S{&n@5CI@@{G3Y^GEt+fhOM|c8EX0V?qfjR9O$Ez!}<7pD0)Of(ORQ>-}TWKpox%S#^nB1 -zf11z6_m2vi3EHy$()gHbwW$EeMlvxd)Lc~h0w^R?^FwF>-h@Ub8_>=TefeNQAUcmEMuB|LpNTo5c;S=i6rO-5GkYBj%1!9|MDNHn -zMc|IULSKJS@;dEI1BNw4kLDwH9{X|oC#(f%rZDvr?4$^nC%{%tu)k>KG;v^ITfUd1Q| -zU6O7|FE1lhL>c`=^}0-A(GR3cPvY7IUpn+Bs0G|e;Y@wFmfKyD@3Nq|G%@FOiWshQ -zf`)|1!6$O&OR>{7Xal_UkGMz=2F|V9@gKlkz0d-T;COsy<;4%Y9XG%2o#U|kXqxtS -z*1Ge*^~YOEXEo!{zlH%p=l8_ji^%}o6ikG*P{LdIfPJ|dExyaN&E~!CB`jW@QM`q8 -z!KBPF}8B7*cc0?<4{5(6GdQ-wE#jfev -z5Uq`c7QzmZC7r}Y>1V?0$B%pKyU2io$U*dmIa?sp(!pgUBY1_G@G3w^+zUv?{?c^! -z{H5t0(E@O!HmnOB_*S$iH~jH$ndj`%AeWrZy5YX8yUP -z!}lp@ME`LC%#td=1zw0T^&Rk2s|Hxv{BsO6k)>h|Xgv^L$%HRY@Wgy80S(^U?-GhD -z=DNYdg@A9~12k;#+~(hVbO=(t=+OrjfibmmtoE9zZn?d-u`= -zS4g>_!olQHeA7r-3ZYy(MCOlGs16ysrH_ipO^cXxjo}%fD1A?u>*`Lnea0yC6bND -z2S6lR!rPC8C~T>d6D@mSPNHlEUO2i!I=VX0IO2pwf5<}LZ0wSv8;CPw4t}BE>EEtN -zCN=i=l-@`V3lU@tS~7<+6W+Ow`yKreG?lGso^s`uKyZ8R+n165+6aR|3WYsmdKd;o -zDnPpmF%$~?)bTA^eGxr#c=$!mU*-{b4{66?*Ye|{hf^U@%~Yn$e-4t*KsIipKLd*J -z2_W|=BzjrmRp0hY=#RvIP^pLhzC6{AlA-JbZ0i;ycTMB3Q-5@UhXD4k^@)yQD|UJN -zktgHupnuy>VNs3;#WFx%_fa`&qOo`x`w3cF1CW#dL)DHA^nnCK9Vr~ahiC!OA8QbF -z!|QYPn~q&<_C;0u*E{e6ncK;;1I|!gfvBZ3K(;=i=(U_y4M?fv)7=0|FRaA%FSd(GnwPePGB$lhFS^h}{1*n*6sL^l%M9HP(9B$?=og%=DKdh9qjN?J7s^(Bj>% -z0+{@6x}%1hW$D^X>W% -zAk#MM%9Z^9T9F!-3hYnT^`vSIPvRe^%m+;cN`!wbtFCI9)7Ilnm+@h-Da5qWjI>iZ -zSqHTi2!kq=xX`K-U+<^5cUpqWtlT3OvN8`ec`LHZXt}@oAzH?KG+c9a^Jzkuid -z_Jl_A*xYfvu|3y6fKF+g5lT$3`AC(W$aTH4Ig10HUa$2S3+>$Z?7zQfzdoS_$mw*F -zHjk#f@8M(UJxgHBaW=XR=+?$u4FDo@JP~pD6W6!QU&#Q4a#`w#xS8zXk`}Z))mvs+ -z9>aF*{=+6vY^_@2x{7%*wswP#CqVX{WZw`&Z3kBTP$f8aBVwGgw0$SiOnCK=7Fy<< -zZLE)N=PWJyrbBEpqmIOL9E1Ktm^2W&ier=MhsES^r*Es`QYK*%VQ@G_#7&p-4RH!= -z7R>{tt19NR2!YNx$cvdHv7#czM}%r%7kjezeak1oDL3w@i2_OUM^(&w*dfmIGf0%5 -zbY|HL3(zekEj?MT&b0YPDp#FKP94D<#h{hoRZ=8vf;cLkamkE9FAUjau65!HpX0P^ -zhHnUEgNej6OsuQS$SGBB?;PA7mb{WgN$7k_BZ7fJwD -zT5;79-jyttcZ1)l?*tzoI4V8_)`fPCNu|?>gkI${psyTp|E>lq>Y*Oh=*H*%zZZ2G -zir)=Hc3-xzzCf3_A2EJtMSz?w(|e(@5flat$k?~abEI2(#DytUevJ_D{d10s6Mx|k -zpBlB!2vIViI218H4M9b^=~jBza+n4%-Di{e5uq51R%*^+mq9tpE7GN9b5x+`ACCx? -zw!?w=5PD`T590=AMm9uaKA9})C;#q|n;9Qzz-`kRcqZo`Hgr;7FVZ+}$K|3bzaX$7 -z<13pj4~slWi_=B11XJOCovi!9OM?ssJhJk^Urj&RZDY{Ab)5M_u3kBKr$fZe^^x%n -zqOEDA<{U{mS~}SUsII4j8!xJr2=fQ(MEQn4R#6dgiktCV_j8qEn975RT53&p5OshYWT}CGsTX%JsHcI)1I* -z$=NIf4|J_N$_F{n#GRm86Qw(Xo{1wBnCK9Nu6dN^G4yETaI<#t4*afU(`BWLDjg8h -zd*9kPc4?%ujOlkPio8>11<%uw{*TdcL(RjYKN~Y$_PL_qodQWVD%{G-F$P7|J@ -zdj@zagSAHLMAW@ObS$91jad?nv869gZ=^?fJ!M7TWbXEW6Ee99t%uHOx3=1~gsU9E -z00z*a##qv^@p}U9;zWM5UqDs&!zttkZaDbK62kFBfI1rx|4W6MOkG+H8ohwS>HTrg -z6{xk;yg*@SeSr6)mrKfy^fYBXa9S$#y6qdgj5JC&1MF^++^S3w=wRdiq;k0Oh98#w -z3A`?FxK2-8Q9!sd$TB<^#4qU1|95OIIUDI-pMe -z(pb5_(m?~*PO1wQCEy*9VH6oycB@YF2K#q&oShOC>XujiSW@tV05S8V@jGiHS -z%``@mk55#Koij6`x^q_k&-J#>t2wBAeql%u3dQOySnLNo?g!@>mP~#?o4C3O9Cp%s -z5q)YW(6l3RWAKV-d!Roi|A;RzAhDhoV#Gi`W= -zHd%5aD5AP`f@q&8fT~FOwlAFdUgd#azxh+@N+OV->);Z&F(d>-EOcGv!1A4Fk1{7W -zi0toDol>AN>E+`BXCgvy3FpuyVeja8B4Hri2#Rw^NJQp<{jJUx!hPaz933L0;y^YaPd?B^jF`JkMWW3KC&&3xwjZHE`=hcKMYjw|s^<#ZRltQHJ; -zN%n*e{MOy!>~Gxfg0U3FnxwO}M9%j0GjV?ea^^~xN8&*zenszpmATRi915{RdJ-dn`U+Yzt7s#q_FVeXt&yG1 -z&j*F}VCY=ssuKAvZ=PpJ;|s+q{RwT$@N=r2a`Ar(p4!_Y|61XcUPuNhoj?yH$?WEA -zuv31Lu$%vlH5K63^Q3=Fx!ig`8^F861W7+D(&3<01@nzF{GZm%fA)Dhw#OFw?Q071 -z)Xdjyg`O7V^J~);R8VP4h8BrQB!zBan?{C`OS}zB(d+u*qbDYTO;`QYtSxhqN6|Y6 -z=n)dd8$?CFT5hhCx7N9W5K)mnYQUkIibS&Qj2sLFgmQ+yicIlyOpZ1!hU$rsbv9F@ -zbz2RIVjhbwV$fZ8byh62Y%56PNJP@ok(wZxo*$f=i2;?gXT$v`kc5ehGg6hsrrwvQ!e8d9%`QoY4w^;4a<|?43S_EiO<;XQ4+2_RXRo-Fw0F&%rgmi|a$S;?^%Pf4qIlF`du|+2G0bA^O`Nz -zE6Y9wt>JzVm|e4CA;QvMd)Tnv>hYOb7R$lN1*FsTgr@s9Q#f=&g4Qyb8nq~O$7@-u -zg%@eR`={rZb~N>Ovj*lcWXlfK$;InvZ=OWUEn2wj(wr)Fk+CIlc^ET`h}xvEKMx4w -z`!lSkUD`WzM1+^7y=0eJm@^d|j;~d)WN8#vcb_{$oOI`1DK5gD{l8x6pBMt**~_>D -zYk>(%FLw^_%%6NmYUj8rQIms2Ue_ir*U?MNXjvy4fYgxCcD(OX5RZ5+qpDr(S!q$r -z=sL8ZWDs;FG7<&rsFfEEQSN`ZR&urUo5>-miz6|x#%qO*RXD|U(V}D^zepwyWDLjR -z)_93=v69(n`8Aa*1cE)%-3n#eOC~4l^f2tvGoWI2*^qT631MYkXy72ucJyR -z=>k6H5E`XQU|dU3bRLER5b-}>8(+ytgF$qK?gWm)3-4$z_&C_dFhP2jD>~M+kpPAm_v{)8G_%%h#M2f1C*U~t5+`jpVA>5WZm_8Js8{AV0?u~-gR1WgYwCHz -zr3ly%`2i|Y1r;fRbO|M(6cHgRO*&Gg3esypREh!uN{2}AAcWpUiU=h1-lT;dsiB6u -z2mjB#&;68~J$rU%XJ==3XLsIlV^qL<;mXSwn53WgJ)f<&)EGZB3{czn5xhdwa2??r -zEY&Y6M=37a%4SVZzq8Vpo2^WVWslD5?kj&1t(GH;uOb%W4mZ#RC4Y#(ypLa58C -z_YfWv)Op4%TT@@0->YhEo*=L~w_?a^12VazJG8!hXti_@;%^^Hx#S@W!oi*an6*0j -zT+X|gnHSj_nLjLg)FyC77F|p|9a8?7#DLJ8oDZ}Nm9~#($_gB(cprGAVO(;_An4m{ -zxFnC}Blars!f@4WeoNUbvLp$rgzstx$%j_&0D?Ue=1+ZO -zq6dB$Z+|S5!YiEg0ymxxxbFL(a02%k{apPh)Ume?+NbKJ*V4i@b@X&=3eW?U8aiBX -zqITeIh6n=7^mCv^DlLoCSUJayLn9~M{8YYLZO$?gyaz42Z-WbzIZkT6yOnd;6uZ!H -zRD|QX>F1V7M`k|YCZ`K#<5yCMi%$$EhFpL7$!rfRPQ}`Gg_S(Z=XI*F0V$M5>m`Fd -zP`?0RnbZODivGi--0~kzug3}F2<)X9;GdJk!$ -zP`MmiOkE!OxtUo}Y}5`p!qj4-qNuCNxak#(Ffwm(4*CncFzyv=7Pp -zR-QVSCYcCzzlombAm^3%CjnjjJ)*w9WQdK_vOApG0UU0yp*XAW8+lBnkv)}$&MV9! -zJwlv5OENtvKZA&8Dn;J@xP4#3Z7Od9u|&{|53L#CX#f40vQi}VYq_Snvg*LqmS>Xc -zw%1eC{8XY`zB_iDv8PR$ynT6$z;TsUq%kAnqF4>{>_uM|t5n4*?d&NFG478n*QcMG -z#buoA$-jPYWX6PRob1)Ld)TJ9o2f~^zLZ5>r_@JZrk+B||2}$Tc{Yp;L-Hs7H{wPf -z-rFl4oNLmF+VxdzOV?df<^Y`!5=Q$zI3-bX1w|rlv?q@mm&wOU(&9 -zN8(_1;8%zqnRr%Fv$|etBm%k2aCGD+uyjAY4_{r$>i#5GNH_i5KJKd+wV3InED&&8 -z&*FWk-l4H7OFszL26{rpG&|+hbfQ~JO#F=_A>g%w{B2NX-S9E&57}7Q46cs^dM28u -z5`Jl{aE){TyuG8i>D&n?=BK7kZMVpetZo5$i0QndO!xK`6#Hk~y(a79eWy_i=$_Km -z)-kG3uchDf>fn{7{cHhe=$k|Oqsagw2#9v_XSRoUX}1Hw7f)lK3$Y4b;_fv}$vb^z -zB2_(yC=>nCHo$fd27=q^oNrBw$1ql>ciX5-*^1bVBjnf3n3?-N-oor+dhrz0o050O;|#4KAmdi6rwz&XWZHm2o6 -z_I?coF`u|##$1E$?NYgL#J$0Xk9pgn{YfC1?~0zEO0cCz!{FnqG972{(tn@h07tCM -zdHTW$Kg%oic0^<2Zpp_&cN{efBbu#v)<$2smsGB{ft%}j`eQIJ&$~mWgYB*;&lKRV -z&NK9=sdp`L{8bG~%mX+p75^5ETy0a~V-kMSz^Y|UvGxv;2FN|e;P8-~NWHWIkb&AW|SGSj}dm!~(TRc;6 -zf&bHmy0^XD2Z}W#jAE^8Y`u?Owo-+In}&DUZs&@Md{#ClM&{aUyRz^udfB0U1%k+~ -zg8PEjJ@*`YQP%5-zOSX0BH~7)UUne>yffMHusGZW1Pz<Q#^6nkignLjYgQ$KPFPB8~ww8IjH -z!#69Vo+}h52d4LE`pm*E#J+aR;#wIW8a0?56fB?MotFs}1fEav0A6eeHo>ER6+}iT -z+NWACU#*(1T0nG8TSMRll{V*0w-?(vpesJOZhuWpm) -zo`bGEms}Fdj`BM88U -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 -zzgs#7QZL9MAdbRw2j`87s)8(OG(%n6(k07 -z;*bq7TV!Ptn8Qh+IH?Z^1nDC_{ijBd!EN{( -zTLym~Fow-j9(O33{ybzYH9>?Lz=MZCDS$rL>34+t;uyC^6yVA0z8Z@Uh+2HHSg`&O -zDe^q^0jX-Ou99jnfn`tKwwuP;yaE2TEv6UJ$V}UWR@t=7Edoa}m?ozYadIcyy4b5l -z)nS3%kg}HwAntS(ZA5JYJr4>>p?Y(o!NE_8TwvTDIvI-TDg;oxmV^NMBx#69ym$pK -zr}gXdstJK$XcGupu>q4z0p$Xo<}4lm*pgX=KtZ9_{fAgyH_C(RES5ty%qyXJ7#I5- -z93C-`L-t9KgEyD4L68j=k3roD|0UG=`UmtSph4+k{4rv?(g{7ancb4`uYi-19vE@W -z1LCRJBA)u4yIpyvJdi?AOhYI<+J4LA;JFw4QSU!)iDd0u9&G>moHb?zf@^4@JYK%Y -z>3qgHZue6E#4h*D4R9bu{KB}s_WIgS)w)j3rSwc!_GFRepcZt!K^ -zA#sa!tq<1Yb>@g$d{J9NiKjmwcJ+K#NPNpNy8?~`qG$@9o`;E0ylpKrgqTkQO|Ft_ -zs1DlVN}g(xxma+u82%0D7yIt3+m-<20w@;h16sT!0J0-Y;1ELh=a)XYhljD;XsQNKe$6V{jCLtVU`m{4kIO#~@JNAwPf`z{p$+Pj<1GAP7L(x8VXBPJL3- -z?!)-P_3YyIK01PFJB=v^L*aa744$g4Lg&-F8vkoDoQbzv$5qNY+osixP7Wm}O%pOq58GaErPKMTt-6N~Ew$bn`Ir~q?Un8u$5Pr+AK^^f(88~dia=X@@j3{#A?dzO6`${d@ -z4`gKv-*YZ;N*%EX?g1wV#C`W>e0i5UefGo4peifkj(dL<$E&Xki1D1yq_=?Z_5pin -zb{dBa!vMaRnqeb{Kcos$Xcjl6f^0Z=lp$RJ{qNt`PZ0#!g*pGo<*S8KhvEfmMM(c; -zyV&B4R{K0?K|T24QlA^0E!Y1(dengTPYr~c#CVQoCO#yiF7+|qkj6;Y}Pq6&m$I`LN)6+l$x$}|xXNM^Tzyjg_Ser#vhSUwwp8I-FM2~mO -zMixNF9-R{RXc=2$k`L8mPRFWWuQV06d8p3vqfF5G*BhUTZ8T7Z$S;2zha~J=lwj6c -zNt{+l->HUEsyJN2ynN`j693n-IWMz4Xt?5B5B -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 -zr;p8xwJ#z-?|>zT+;nNwFC2XNd= -zj=E@?$Xqwk;0=8lBj;z?Uwf>Zp -zqPohNrnEr%OHd#{_6w$Og{_89f<)rC@YzIrkJX3QPe3@=1@p^6ctkRhrr&#<^9Vw2 -zOO*4|zUd(t+4mza{n7OSlx*1MMY6=qB&RxVZAUSV$kr7AENOZ9m#+-l4DKxGV>$N3 -zkt)|T*sTwF3)`k~oZzY$C8@1NmiwgO>!dwxjo5otP0b)XAb208>2j;e)p}&0c2?^5THsk$dgkfBVR%SVGHEKLKjzHz8+S`R9QoY+S~SQ630U`Lr@f=#UQH1xePa`i@k^k? -zgJ+~)(~J%6^x*^drPDKK&e45+_UPy8zn6ECaG4XOa3Gz`CFL$)!o7aQm*m1$@t@D4k%=ytFmt{N<}613crE}j=HYSnzeC}37vO&Hl~~`Nh}>6`+3Mll -zqcO5zdM(r62`oa-0rF#nSuZ<>&CUI#d}~QA^n+ie;unz1**Q5m+U$w$njcI -z1O6>l5alHFCPxze_MIcm4qNRMGAQV{Xk?=gYVp>e5ZeoNlr9$a?{X-T@MfY3u*(~2 -z{P8(dv=l;TnW^y_KJd>1O=|U4S--Emi1#I;{eT%P`WO3m@xhO>HaT>6D@HA5ERH9S -z4A`RWi}P%-Dz;HrZyyUve`6|NnX&ZE)$xxqzlD8dEhl?5BQa4kTuH!0rdR!V1v?1< -z#~*D{B$Zb<0v1JU)@Vgr -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 -z=Km&aBjve>%|DdU_@?e4JH3&*WYgetDF|GGzQ -zN{1!rP8m0>@ -zPN!028Tin)9x*jW_3AxX2n6aPm*$ZHhjb5Vba6 -z7@=DYx{UfJKax1~NZivKBN`RaxCF-$1gzd48v>UC%zK@oEq8(Y$l=hl-y(G>(P4v& -zIr;*+LS_l2BlTOd{hUvOyR&_y=njhdkX^oIu;*vkm6FKOEN&zeA0iHnwA%)xp{xC6 -z>?YM6uPO(J3_|b6ZI(ab)eNLk&%jKJx8A#2Byg7E>6XX(a_%HW8TFiVPX*lBRZbW0`wNgD=`u%Id-cF)c52NUPsWm{#(CbX#sV;u@wC5B -z@_Rgk4R6Nzag8PhG3ugq8W{vNLfLW!psDeIKF?*zIwbZ7yur|lx?XWlUOhiAn%rH(8?Q;0zZpx)x}X8WM*FT -zh#%dt1eNNxhv{mzh27U?yXAN_OPE3GA7pe2y@pq+BA{k;^ -z2Y6jvs&0q;UB3Du12;{_XIg@BciTaAC_2Go#%s7+LCIf{{#*x%K{^%NZwm9rH5y&9 -zW;+zgi(78K{q?5nO|70whaPQ!SnTNjA0wpUz#y&gcYw^1ez3k_Y-solDty3AfUPqs -zD3HpDGIXZ;Us^1`mA?0mi#!IUkV531yc{1u?O4~aom -zOTG6DMjs-nEGCsY8BafwLEK3uw^ykN|0F?!|W3Sx%ncboA-kr6}MWLLqNfU|K##7FriCz~;-e -z*c??I9;*VPs$J{TV{qiXxw4i$L_?4+zH>RECAP1e)dX2L663lyxLh!rCwfY4L2tkqie+Y_X5Xx}>#g_sY -zmS2C563abpe{EW{LcIxqK-YhC{>y*#VeLav<#&KBO*qp3#6oT02r>vs!4Cz{ET69l -z`a}QuZJnsngP%6iEhVE+#SeSw&bxC=Y;8&UDFY?R(Xo|g3p>ZeKTto2zq=6#<^nSh -z->`2IfB$PiR9*zVe%Zr!S2D8a6bm-o>4iD)#gQ+;QPIEf3O2r@-AJdC%%)qPf5PLH -zsIU=l@pI}~I6&NrSlch=!d$Or8Ra-}W){EjubgoSV-GO<1Ob{1+r2>L6I-*F2pf(b -zoU`WuZwW`kW!pQsdfrd}LVh!!J$;8iC -z!hG$CcK33>nhI$DB@J)zvWGIvC9~BGnPjAcngQ0WwVS}+pX@#e>IZP|CzfELbiI7}vD|GkbfSOd -zt8rZRUr&g94LPUXRB>Sy0q6#~9rKQ$f1m|U9JOpiix6~^8Gx((jRHc+F#_OuH!UIl -zc=>wM>R~GWudq1l0_K{z`}+E>?5~f583@Q&BTs|=X*0H%%IUQBZ6Gp)t@%CTvtj{Y6s>UDY%mDcivd| -zA0Y^3FHI9bwuI%5<*Ax@(s&~OH3I*?V|d(37P|^a7DN_0`&=To$GW&g#Y38sPU4g -z``6Q-KadwGAp-?ZCEMr0ssOK%Av8b$II$GS4*Evib3W*mcXIbvZx;0EYM)+^h8KxB -zdeMi~pbw}NW;s^*ng59tjG -z+L@r7+DB#735Kmh|hLm8@mQ!tNm(j86r&tzfM7OO3yYM?DRbz{=bs{v4BM%pogE*>>slkVfLyZ2=`f494q!DI5l>0rdEI*Kay#jvCo=66QrL -z1_NJGP+9C(?H=^z>3{#<+BtMHwC)^fm~et`CZy|!_LulAXCkBo$slHoUtFzlR&F8@ -z10pO9_W;TPaE)JW4k$;^B&S2!@hrGF=c#D8QeFX(FM#@Uk|h5K`A-AEI+2AI@_-Vl -z&PEeRAXkpEDPno-DF2nG)J)&ms5l*b5sQ7pszA5E0=z`QgmH%Vs|?iON} -zgJ~e?z;W2BKy69GUDg-Pwm({P;ml1Nv -zXe#7|ti12t_O*AL{6S%t;0zL?>J%Jv=r^^C6$cq}uRGcjl>LM9KQ$S?E%5Xwt0e%y -z)pR*|Eyb57gXzK9;NRW;=BNBqrAks>Q^wO~?sDQ$X -zbS#S?-JMH_ba!{>N;ljyy#KiI<$htPDdBw;2?#cAp~sgEB_w^MDjSPuaW}x31>{*etc>=Gu4;cEFqfChm1E){IfN=2u%` -z?_OUmKSD;gbaxWz@6RIt8=P*VNvvN3zCtU_;aNQG>&DfxNuKS05CZ4=Sv;MY5tw9P -z1=+yS6HfCexjpUs_Z&gUTM8zimUQ-{t4mJhhfCWFTrN^Vi0`adSmQmbxY&fYmATmgokJQB4Y -zAT*QPEH(vB%>#igjobU+VvH`K;eXCETk4WZ3$$FWp@;#2SnV5+v>DFCx$ -z__$&sRSC>A)s9`KHo83^awJ7BGeLuayIVO4d~>4&6vv|W0$U}PGTH9g)d&N$1!za( -zB8x_ppzhTda9hS7dd$mV#0eIi1lmhp;ygOW_#&OFXGdw4Uk2XcLrc`Lkp2^B<=+E% -z@AV3h=!P#UF;0+WJD!gK{TFyQf!07z={q0>0QZx?^20oPERP8Uf;#ie@#rmb#c0nh -zej|Qh8X@SuJstA9AQ?#cH{E=sL2s)5*`){TSfFD9YPDM00a84Dm(AHK)-;7Y;y?0{ -zLyLlOx4?bRmZ0@(O|%DA0IwFTdFi|TwCKAK+m6BVvMc$_&Xv&X>7&$*x8JN;a3%hz -zB2ii6s#@~@EnHhuhSk)AjUoX1Q`EuDM`JN7ak}%_(Cu2`x44&gPXkXrbzc-P-ZVR> -z^3D8sN#MP9?3tY)@-1TP5*N^!Km5wU{DSFrA&2*xd|FsbaHh-XL{DuN>l7SBg=shn -zetiZz@G*Aw_(O3qV5iuqs3o?JXD`$tbNSkwt3SinX5oVV60eop|1Xl*hAdxEw)632 -z$0R4+j-hGP<;!64 -z!9M19aj?r!k?K$eoDs$b_(H_A*p5OYGT=jaH-GBg-CU7f=jgMn5z^3LDoKAYMNL|G -z*?OP_34OqiygP1X4g3DwHF3@#}2m?NZHAR%Q+G*c23 -z?Mc5cZL*z0@d?Qyc~@FO}Qqe>oEZL#-~fIvv}pryzIKqweB4b=LTA0$M7y_AJ -z?`t8nXP+YU_?jV!)$y{|9pNI|zXVw)K(3p%WNFY&^^Z1#-hia<{EbaHi7J?{M~Jgp -z-E-$!%?DeMHgYa^!BZY&L2*w5Q}!qJs@hNQ233@w;AH_k-%(J~WI-#j<7FuKxKH{PqA;)*qzpPnynI6$ -zC+zG^Bq_~u+3Vrl8~Ay6nvhPxePVTItsQoV8;uPnr-Y-(qDtjV>5!%IRi?XOnfPguct(il;>Y(Aa+h4x^EQ^Ij2MoFdNr;2F2RHGviB6p_zZ -zr~xfr -z5_x4if8FeSYYCbUa-CkD%$CQNdhd4rEDW%i3t&2?yuy&ovd53@n5O&$ST8xA+m@6+WFo8Dn4TeAJY@#6(AZP`e -z=}P1~MTD6DNuauixNrXl#}gO&f&lwH@+y0%0H+}Ji+uqD7KncYRCY}Nc{br`9OB5e -zo)zeB;M@P@O556&{Tl*MCctDR8b@YLFYEhwqyg;<)E|mF8Oh_}Oh*C{!@#9glDWuW -ztaL`D(Dzb(iMQV=c@6^$9^E8-VIElxiOuJ7%5-!84KljeSc?vSQgIKSDv6Fdps;}Q -z;ACo$jy(#8;Uz^de3h8|6Z(^5w4kJL>Pph0J#IGU0fQQR3#AG*b34;fe2n?k>(U>( -z*at0+Q6Ts4zFupor`K8Mb#p{NHX|8Ey-2#9#+a%4nGT7O2M9gY_1H;71ux(dv* -zOtIV7n+e)-BJO}Dg5I5ckC)tRB<~^fk?Gc@YBm1CQ@gi>ErPi}_?%$}A4bKu50x%C -zNA%V=u!Q>B?`|SXx&+VJHb*zFett$xhGpxL_&(ezl-?TEzr2nh>Iv<(z1|Y47r6pr -ziEo{@o(Qc$iJyIV?lb!Vjx3rDUG}lb!Ch#{$9J!KYV`#+v>3k5T -z6=GKX6z<8Z2m3@(>%<0Dz^PFsjM<%E49Q|#)4jjag8X332FlMQL=4T9T?R61ZD?dq -z@nJ)w8aoKs0r?8=+{M7KTPatl}{mTN?`utWrTA+1h+`4Bp2qsK&sRB-v -z?q+E3SDEYVQzopoiDRz{6R(inJ5}x;sqGu}RXPrdrbg=KzH?Y~s~`+P-&PHtAawrI -zYQq+g*NJvx0>-zw_kSpR_s26^WkvS|WGGQEmMD((7M}1#RMDmB}5F^JmR>pEF5@Q#`-8IK2c|k<3W^ -z<2a=fzIE@sQr!!u>3(M%X-kp?OzkCV4KLs>Rh?eYL!BE9@efq*@L@??-mk|9IGY|w -z@Wke1M18LCwpUy~pMOW%LlDo9r)o<2hi{(MVVdi^fDqtw+@aD`l1{dq-hl<|&#r7> -z#YfDNoF4bD&h)o<&!@Bk-n6cto_~EV_evzFs9A6Xvm}FAb?uol@GN<-%ohjK3vV|U -zmTZ3(h{J{+W#;UuC{(nXVRg0TsxEpY{Yfa#`Q1Z=r3$J!7#5`ntD@k>d2BkIo>>}Z -zC_h*kOY)DYOg3W9UttyO)Io#kCmi9X%3tvT<;KELdL_$!7dAkqvPB|NOMg#nRcJ9e -z4uUGL;LF^~be;?Zs8pVR_f`+_J(#a{6M7eg*g`uwHSNP@rwd3UqIVHa&UBeSZI!@oPPLC9P5z4*zw^p~A-8endI{@*4013;H0dw*TQqOu-5{?Js7x!1$0hJn?rFu!b+8`N -zQ}{53Fx>RKi&27h9D3P65<7})8nCpP45Sz0Mz}@`Edss0U6yzEK -zpJ=!n&-_+_@d;GTcPh=G3!}!yfLzZ-*}r(As)@3Lk>5OzbklAhWUk49433DAW7+J6 -zva#HQ?fQ7ArwaDFo#7td?s8Ysftb-cYW)JX8^*bl0d2@M+^+m_@x@L_t?oEL30B=V -z-qcTdtEgL_4pk4n1E#)sSKQS3ZL_P%mox(CRa_W8sXcJGfq=B)!vLg5l02kxxCdt% -zFSWWSe9sZRDCd)B@9$0Xq2o43PXCwGb@eJGUKtXnwWEA=)EiVDDVIUFi+nLQoVbN~D3I#Hl9a2-j$?=Qy -z%Q`uR%qtJ-Cj3U9YIE@HYHs)uh=$r?RncXI$iTKC*H6n+-wckTpVT5Z>?cNg#T9*O -zKu2E7*Z-SW)vRB0`rov`YWn!>_x$V`@NLndIm6cpJY9~}@Mt+fs0(16@I9uZDvQ6z -zVszl1l(VoNT@!F_qF#IhDB`2o?o00H@2pN%A*aUziTY&;hl}LdIQQ@)se}rKe=gaD -zZyav>RF6UiOF;d|k2@~$SB#W6;K%age=^xGD)2krl5hmvk?Tk~Sx>9=sm0&Fu+N^> -zuC1LwP&-`*B|3>;Y;_*I52j -zX|QDHz7lvF6!-d0K{pyATakLmO*yq(K_ikd9l`}YNLstdtF2sNUT7HS_PgP}M1gtO -zT<;~JCHWVJ4!l~e(1$O^Xvs;;H=wgQa*=Isx-l(6j^GKx!3v=?4ryNZQ(uH}GY&Ap -z5H5aGVV7cn1SRmlw1yl%DpuyKuDEKw~5ZfRe#@Kg(7&JUzCqDTGGx)-eH^IxAaqqW?<9IEx2_1M$y}wZXhf -zK=m)A#i=t&fMx(AQ0!UH+T=ZvV@tqA0+c=8-*ePCFOTRH -zkj=ailuQX`?~3VWzx_Zp|GodVPbjMt=$*624v0);x3aW5mNI`RLk$-fp8S#h2AKsG -zMJ1{NBJ-esM-ylLg?hQQehN(h8h|EZ7_?C)=$c#-TlzkXQvGeofDN(BW?Vvau( -zZT!z#zG42v(eW4wlLX1|7C?(_0;=f7RN~aozl5uG -zU1B_p+g&}8;QHC}|w|j{XsA2Nf(VeKFb?^f5 -zN-i9AHNhja?Ota^kVMKTK|igToE4KP6UwgW{;#8$AD7x|7SpRtyJOPxGa-+M4J8+@ -zG!Kh?f|O)X^pUM$LUOGBMt=UK*heta*YZn(Op2LBKG6=ZbIX>64Q(_+bbFw5`WQn4XcvA@D`QcLtefwvF~-_LN8ih&YI0+ -ziw#(uB*cPvz8e|jOo+@=eI~Xo7Hbvd(YF~Z?=}0Q_+yw+gR>Hi8^WDVKeOIoOH<3H -zRiEavaQ{YU7{4kldagd!;`~Ve^80>TJR-lQi-Z;k2ZKxI0q4D~2ZA`;HS|co*J;q2SA(ZV${brX=1AvE#?d@2Z;(pwkYf -zzspV0=Kql1vIs&&%xN*x`B=THf$kdgJKRaG&fZ&M>*~pjTt3PGC!n%*YfdXptUbB< -z7u9Dq#=`%}EW9T7kr90HHw<8R60HwK1dM%X{tnz=6m2=WqK=z^^c|>DORY(bS(+bw -zPYty!hy-i3<%%}wYZSbieUB@pj3p;ThQ?P)YK?V)z|+Ab;H!DS{7o^uA#J#%Olj{a -z!5{zx!5t|H2+cDG)B)h%lpBrLr|AH6r|G@AOnRnQCnDG4BUGPsRHa6e?VaXs?Edk; -z7SQ(8*FCBew(%|6mUODO3B@F3i?y4ld@11GUb(*9?X5iE3!)}R@@}M*u}R_O2Tx$R -zJpMGCHN-Ckn8dzdcfc8CGig>_goe7;U4aY`vG+OM-R>YjY}+H@@oC`JAwfjk^`UNO -zatphj;bXfu4jX4X(e?MckaEFGrnO_VufZ8_n`a8aqdmGdLbf`2!gIz$kH^IKWK3)s -zKLv;-n}8^x2Nl5^Qh%eq`q_O4L}Ww{V$gzwZ@|lFJPXiL(%Z7p9}JKAju;zDy(ys3 -zFLDs<-i)R9CA)asKwUl5MX7RwT<6&4yG_7E2DbpH>|UfjApl}!TjuxF)5MSqAI||Sb7F?!nZxmqd5rvf -z>Yp#QC7BXOR2+#fX!w_ELYXjyTq-x#E$7li -z9w(ZARl4gKr7tqDM^d(Z^VTs4GLF)nw!)~WYVuyc8{2KI<|aHPPtAxQN%@pB+$qW~ -z>=w(3A(0N(I}{f~2E|!khM$Chb3m=m7+PfU1^@ndng%!vboSNQH|b?c&F%q<<}xLW -zV(P0{Bm2*{7-dPLjvdP!^dH -z^PKqs+Cu4VT^qdn+;M_0ca?z3(|GV+b$Rmxol@F0=zp#g9^SZseh_Bu$fj_Sbs-q{ -z&k*2zy%Ud+ps_UV{`4a?WdZ;W?`EjYt8ScbU65Vuf*@JUpLSK5cqUU!2{;+MejxNfbe17A6BNcuZhQ(=0J|Bb!xKU~|u%aq^-Z^>5 -z^G3aMdA@w~Y?c8WP-A0tO)kRN6s=Cw0=z8y3_@c5sPolNx8MpJ-4ruwQE_MSpOoz4 -z#8x&8Wv?T_o#os7Q>O-wYP~pmLn#z>KN-onF`k6>+LTluli9{>D-P{q7*lxKjUN%0RLyV+oYiw$>Z`jyO=2D8^_F(wf7C6dt+if@Jr -z9_#s*Jn1P7;7ka>$(waJ&++JqlZ)^&sOo}uk>AAL%hi_nw8lyAnfyG!>X}fO@M!Hu -z_!n}Lx_gUcSYUH5zL|@&Zg-fN4#0BcJ*E#_tFn2mKDALn_(A@pb2DrZTPQX=bRqT4 -zX-4UhsZ$UZqtE+|oJ~Hl=U%xmYp;uob-8 -z^sTw-qp1c*STUnxX$^xlN~13e&oAJa{}uGV>4-x7Nueh2ri%=vM{E>uP!~Yzq5@9NPLZc76t);CUf~V*2p{9@eC|kZ>8|;Bf&## -z5;4i}i6XCY_Vr6Z;1`!ThAZ7F)=nZkYDfJ6oQao?*kLzZGjVduckd&(quEyEl@WIH -z&(}C6B$jH5XnT}!b3vu$|C?^Lc%AbX0M587@$_f7+cb94Lc-#B)Ng;Knd~>!dN6Ra -zhk$t~=<($N1IsT`i=40!xkD~_0wfkpe+ir>>c@0$(@-Bvggkk~r~^Pha^W5m50n;u -z9gs0hxeaJ|@>DV^fYT?b@RR74RR_C}!vMpqf@!Kj4PDYS02bf=0I@e>NBq^+7CaGW -zx!WGhSTF(NGs`!2n&??&?czfJsyS85oymv2wWYc{KGWlq?1Xi(5wz4J7%WFgM0r_r -zyAGw_`;aPad*##YT@b+RBI6{CY)U5l@(P@E9wirhrTkMp_dEgfTaf(g -z`6#jNS++_h-=Zg}+lD0lC+VsCc#`42V>3OsB-;kt?^0m)Bv^`jNCsbtfDBv}`vJPulCb|0AQ!{zV^d)^c*7Bgn@F({Q$hbS&NnSk7tKB!o}_ -zo3|(16V->jb7jRhF3x8Qn8eAU+eJ4pu5#Z%urLL8H|_`xr}7KyxBlIvupo7hzjt;8 -zk6JMZI4PN`-wo}*)zvDfUf2jFzJCw$^|XekNm%@x=SV@tvZZL1hOUR#xkK3q>K -z?nVaOl74wlotEGutQH9?`Kqs9NO)=o*{q)oYQSYi;;C5v`(K&sPiGj(6~K1t+K%m* -zwOQ)s^6sG>WGM&zt5%;94lxAE^JxmG<<$;Wyv{j=^*n8ZBCB3zW+b>7o$ntAJ2hR| -z7Pg1JvPs4<13CVuRVG#5nCuNtaauST8Q>{`(t7@x3^_^wsx;IDjQ0xo$_YO-)H(jW -zQv!wptIS*G9=8U^*iv_i_y7_y7#A52KDhlemX(H_eVG|FwM#+H^T6T|0ER++h8+Av -z6|#PVam37fE}Q>fD+d#b_{KFur)S4=V_qL7id@xP+1w)@7{#^R5Bw01GgCeICd;FJ -zp@Z9}LOb+^r?wsA(u94Jwi2=aX#6FAKWHlFVk6N^UB=h_o&X40EXR!JzzFADiLs -zsGE?f2lNHSy*5C%4caI0ofdMrfh6%spK1*9E4_gY_{p1ELy}*MMW9Opv#m0%lnK}0 -z6u=f1mO(oUPL69aYW}BJRJ(uIT<9 -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 -zI& -z`PfLW=!<_3<51akWM3;Hb5Qd0@lZzTu}aZgTQd==wkaDI7j79>svXzFXOlx`w}vI$ -zPW$FwJe%FaLoURGZtqeD=7#V$t|n))M<))8KOFQtU3xk_5P>g0G=4ft+{H#VGD=W> -zRk?kOsKv_kNw{zg{<3vpDuF`T{BJGB -z_p^`?$=OezHIYrTuA8y368oO&a^^RY*o01wbQ_-hyu{{CQ6-1SAk%SWvY&1OLCVzt -zvxA-eZ8LgW>0;SPKfk`H`N60KYtMrnR6u^+S07=yjC -zC*tm4mdJOm#8`0OLa{bX{sXp7f6NaIr-)YB@a}hSY_k4OuZ^N87nOg_4Z%&^+$gZ) -zH3@HA?DV;b1!4tc;^V=ca_qc#F7_LeZ#?>~bBCLYi&Lz0l4O5^)K>x=%{O4puNBe3 -z%U9$Gi2h|Rwb|O4)y(n_XGV>XZfTO|7mL&$U`|w6i#Ng8@9Qf6MN|7egmU2##IC5g -zCCW5KlLz9vCHXKN&f$ov)`odHfaCR;Yw6JG|7ywZcLFVM|NtZs$=Te$CtU^!s -zO9ET(8TBklY{I3yBvZa3x7<<2to&Z%YhmyNz7X9` -zW$B8wsqo06<-i#`RqBiSLE9EZa~9urBNw}8X_=M30p6XXi``21%?B6Qn7eGJa;p6R -z9Ic$)?69UUBU1bYC`hPEfY|qZ08{nq7?6P%zIC?CDmr0tD%VU_tExa4pt2>v^>?in1bnuIo~GE@T9P4?Y=rO7IP6|&oUVDk$5R>YlWbU( -zu4|5mH!U`il@l=G2Fk~Xsa&-oDZgFI(n(D6_qjs652P7ByLpq<%^a}^+mniXZ=vhZ^RoB7qUH)qf)pC;7 -z3~Lcwx!-dANR?Qt%Kec%eZm<3=!a9!tdziW66-G6IlDb -zE5x8A3EWErPJ0ez62Di+cjqhl4xa36_5;d+w{MevSCDf5>?#NcgwWrAE_n?F_E&Iy -z%`cq*KF1iTipWqAm -zT`GiP)d}AgRg6h+^xOTV1dL4Vs(oJHb~QqRsXh_$JqdtVF2Jpc){H^UUh9NI1_=7S -zamgZY)kV=}XKNI~p}DKsU3DIrl?0ybW+phvJDnp=`j?e6v)=lzbH)fNFJlSsy6TR> -z8=UuVK>vNH#5S5cQK4knRsyIiOPJEP$c8RdBTOl=sLuAAZgK|VQDu2P{3hPEa4opy -zMmFHi{!AX$l~{D}winNVyrWuuQ6K@g=gk4q@vD0!%In3Hn5wc((@Xj9P;WJ^bNx9+ -z=a&NqZ}@`}ee-SaGU2l1o1S%*=y3$-L!R$r<%pRrPtOuPE_VdLmkk=m2=n#oz4${_ -zGp_#_0&i|y&$*jRqO(69H1Z}W3~}~)XB)JFU9~!)pWwdMEkA_wV%{*{Rl*8~^~XV& -zgEFFSz{+*MasBX1gYtarNhBXB7!;Ar1{kBo$3qY+yLOVBSkqnr@u487fgxzPYFYip -zJ|t^_|3#1mgpVLm{2O^*o>q|77qxHu2AnnN)xV$w6^-lq`IkK({9tcV{woyT=)C9G -zzA8#%3Sg(8lF_%DzDWH%w$5OCKy@Arqb&ukRjHoJ*iA#J4?$E=W~r=#>HQT%tb3wB6mg+i7M21V1>B4x58fvf+7)^+S-$#xO3ng& -z-`}i)TwdO#k}9T~4W(C|HC|n4rmW>kp7jLkuoTw(Si!%DCl1fHWaGa2DMB4qsDXb* -z=(qgo%Y0+&edr6TlmB}dZItrM-k_b)2})tAMt)>h;XJp!j(NA>(+?KHqaw*noChPT -zOLnhN8y?AHQLIdw&k4`8=``z&!sONKOmK+=mW1Chg83Sr#yUgq8!Mp*o8Ii&-Z1#J -z0bqpH4XUSxTLs2G=sL*pw)Kqy6i8+R6j}fOGYsseEfTCkz^cT6y#`Hj(4>(gA(gY= -z3U#=*WnLI{LsTkYxWJujw$?lYL5f#^{drGuZ*Wo1y>V$<*)p09>N$!QGnFdx-zPop -z1>eIV<0e40=YKCIo&2k%9Ml=vV)hQzh`Xw0m+ANTHS;E$z7NN>`tT2_ -z-@QLosC?H}J^#&(;n;KTAU1e(5>G?jCxOEEH6tlDx*kZ3iNE -z>?5mRo?8A8T(hHXs9S|vS7ahHrmUC0aqez0r!0$+h}Z)g@khGNcz6%n?k~$l^Gcq? -z=2g5dR+ZmKzJkgZ*`3JfG*UsfqL-(t`t4J$O1U4leCkwO+^*XJo1^K%*ZqdQ -zv38Zs8Ean#6$psYPI_6@?|u~d=Q*zqAPUo_yItRl+Iq|}1GuXsUM)PXJIzfHhy>Cp -z+-%{opn(U~=P%yLKGQkV2wp8$xmbuf6FeA+i-l43RWvEQSf2c@_$Mj@%t-)C?l4`^ -z^sdv~kB{2DZ%aM=D+d^!;6C=BXB?~6YOcJj%2!~j&u5MYwra9)fYM(iO@m|Wrd~Z( -z1Y@z*ZUZ>AP>TkS*B?I?gl1M`%ZnLFCD(zTo0&G1D^N$b6hCXlFytngY(Im -zc2vuYJ9_GFK7$yT3)t;Es8O!Tyj9e+(<^F}b~wVGJ=$}6yAkilD$LO{WC1GJNL+}A -zQ_j&#X=*^iRo4n0lBh0Dvw3`c=4{vd7`TvbuXveT!|}>BFdsG%k|ArzoO6Xm -zXEFjY?y(>>z#{s;`!Sc|I0~Ze50C+Xm)pV+s$ui0EN>Pg9OY`0wX^@@Z#*Exe&*a& -zN6Hl=Y(5hh^%}|Z@9(SBuKR9tDWAHa|M8K~{hPwwAPqSz0RS<9CJ~ADq9OloCFI|g -zK2-aQm#}hG-}zO2aHzgLjC2Q3ZQxAM;ofr*5-040mFYmB%t&7XP%&So6HpEg@Dr1A -zQ_cj=A_FS0l!>mg7y&CV$kG56W#k4GMZ_foj-<~*y~SM()%yji_wPT2zYkeaOfB~! -zJSDvf$cbCty$Jr58n<%K2_X@Ex|!|S@p0*wS|ZP79eU2ot&MMtuZa(B%~=S$4g=Wf -z@R@{fc=zrO#Z@(ZH*+nPUd?`PUW1)ogfu-ZeT$GSq^IA=vgRv -zgQ&z*UUa9$zRvEt1v1qMZ_!1q7y#8bm%l2&;dX9pGOC*fdXTLY5_^^!jV>@upzT~a -z757!De`m~9lC58+e_?*g!0;-O{pDj4@t_!-EzUT{!OymQeMp;($6Q7H^ox>nav|1s -zDL -ztKCz>in_09b|_m_kjFH=ZTceP@b3GU*m`CfF^zG`w@u(Uw8MM3t4Yv3iu7lm`!pGr -zv^2ybs+JnV!mDB+H-2V^V>)*e-=67vs_uW?=R4+UFcj-Q6grlFiTA@;mSA)_vA@zRT~Dj& -zXEKgs2m9mp+q6tRPTlvWyVu>N#u~0KyiN3HC(Oz^AG~*~z|V652r~}}!+-F_-+Zm9 -zsz@!y%nH1Wu3ZM}mt7~cdEJLDC41B!nj0mTAawmvGtU0|3Ywr&?xV8NCG|AM)FR)9 -zgacno{M*Zd4Q5fRYvQR-l(fiy%!}NrevVC1Ghg?B?CCW01Gguzt(4|H+Os2=x)-eW -zS3md5ZK#%;aSG{xro_-znkwM-0>lTb+zhwLDfRlBY|TvDlwp?lO1qj5a3M-+C4I0? -zc^LxEc~H#^V{UskNR(Wfa21iI0HQ~Y(*0$z6DF{uGO><(3?18@kVY%3l}1qFZ|)sb -zETsSg+)`M$&Eg_^=eJMQxw)6YO7Cj!n(Eq7mGH+q`YfDwDc6x@0N`=@2vy`s(0tGlmj@!Z&6m6p`gDWv}9yGS2ZO?)=ec -zMaIAW{vyKo!3YKCPNr=S@8Nq|Sx*&!?56dO#(vP%`&H*mZ0cALvw_AFP)!%BD(m2u -z!l9=zp@`I>}<4cD(Siwok!V$t29jYBao5^CFD4K(eHZ$xZ}rHSYH4B -z*v$SD9ABk5esTTv)8T*G6e-7r%R1mpU61@k6D8eV?xQz&Ad=R`%ZHIy&pK}fI$ChI -zY++* -zenJ)ZToAXG;r^4GInoOf@}O}mV8n0 -z*NDCGCvbfCiS2xUia2~eDuh7mV$e=FSEd*MK9+3@eK5SWc6QSVT8Zv(2OAp#UvS2L*tlfG?mQ!LQpxxb*1c)*BZq%VkK44_ZFWvKVk-5M7d_p@-3kY?CaY#r*YPKZgIyKz_kNp3lVW3NLi)m3s4>G|`F+UjXw{wz6KQg>S@y -z-E4f+KmhtPv%i^sz_td!TB_CG+XK9(sf?$BFo3J4aqpq(7Y3c%>VO`=LlnUHAN~ -zN(CHNnNgz@>`qKYV?xj_d|UdhsLVYlO0oRl7HjuG?tzb)R2DpMHiMfI#Ih08=T$*n -zM(j>1Ofv}Z_~(c!+~8qe`9vaLLF6*c4f(ASSQ>{$N|~Qc=6V@W>JJkOM79}EYCy;~ -zI?^0DP&`0%^g99O(hHO`1vd`FE|KgD_4%kk3`t@%DDVEV^5cu7*BkGe!t2J-aENY}rEb=oIGjT%gMgOd9kSre+vjT;0?y -zB9o2U!tKXpQ-a|d*st6;j&`_uLB#$g6#M`$1ru) -zu_%RTIssf^nqUcN&L<#Onz -zt$X%93ENwqB*`7uEpq%l2kb(=>$dSJ-?s<*?9k0}Ib7ii?SJjo1<(k@pGbB+U+pU- -z00!QD)1p`h$HxD`+k1y&{l5R>Br+-q$qq>xBzv!0Qbrjmg+f+F_9msQkWtCFiLx?^ -zvPVNvcJ?kKEAuwOjo*1a_4>^B=lC9s;6QNX?XxKI~_GEtLoG -zK$kuj#Jy|V&7=|i#~bd*&FQ-i8XVe;RftZ8vjc(`dv4CY;b6UIymy8ZGz|t*G!_PO -zqXV*{#2>!gDEa+@xQj#YcxYMEZ^(SFAz$bLIXGwO`~2B5{d=sx>Sl(hCNPlSS5V7cUmUo;nhGDFJ+M`DRUOsyqSVP%sZix>m91F!VgEYPJ7l -zF;*4XeO`{_sdD#xP*bjW!+>*JXj*stT6}X7{oL3ER~e~(w*#(~5XjMAJ}|#*tE-Fg -zhLQXb*`3#82$s_6s4L6#OiU-s&sP=HM!&OKb`m9HYIB_yEyy)G#}=XQFI@MHDXiH -znYHfb9+)pw2ltnn-h~{6>aA&`Rek?P?gA?P!3QI4#(ZUWk6cXGx|MTmUj=PbknNX> -zi!~0iV_$;PlI{0MZABKnbX9q3yT4o~>+3;GLf3HjYHkld=)6`kxwp&m8huUyX(EiK -z(Ay);-FG$TZH9__IpSMaYE^I1?Dd#n>2H0NGMKs-M0*YIi8i|Q2-mS5y@(p4+f8&#QKs9W!c4bJgx##@M -z;y=G2j6YqcdAl4Xy+QN#$wjTM)x^RFnhH|0L5>=!;>z`cr~Bl~NSv9M0&YqP?!9ZTpychA?5c$uZ8=|n!zk8o%I8n%%u5qJ&wLi4Xbhco2FoxdB3uBWR5W9eA65!oI~ -zuNGl*#L?Il>^`wtBSjWxOp1O~wExCN?ewaj(b&BEOB#cC;Eodf-BwdjYh2z;y;5omaVhAvMLo%y%7tM -z(Fgf;hZ7T(7Kj|x -z+c%X!T!o~`Yj@=Vt4PV%0)B;W`4BYGw_{z`wp -z(0e7d`(|$ZjpbSut=iL%de-y(icQ~pM^S%$ek(EXov5sE%;Ne_cCzH-H?CJ%TKBwq -z*L%vw3O`Y@`F4@4F|$LpPl%*cOkQK%VOp?jt%en%*DKtD)Li7pS5*du6ol07k7VEv -zim}5fiz~d|qaT~=YmSchDS@8%5|#04MPr=HUJ=DBtfC#g2JZ{onL2>wPi}O)%x95p -zl9+SoHnUu2VE9n%yBQ#N9;shw?14#s*8(>F;S;9}BSuiIMxOGeb+>v=n1dcv5&y* -z9j?iOK&=&iXy|3oD!4*|Zi`AyaSWZa7~mh5=>V?!vUv@Q`w)BG3C55GT)F8p_C3H{ -zKk05k?02(=2zDVOq7d#Gr0K5CF{^1@c2M5qnR+Bu!U9iq8OL-JZDsP(8wn3!U-1yj|52Gbm3#6#a){Sl0^*`Xx@g&n|@nh=O;zpw#Pt~NlK -z7~lkGoCr~w47sy=f`2@XDO|KZkATOPSrW8eL!KlC|7fnC?E{ta>Sp;#n? -zs5QSqGRWcaE+m8OcZOF3{8Un|(1kHO*`=Yo&fN`%R4Z7j|ESNzG_?OwpNVzXCbWP| -zt9)d20yL)!#6@U8lNM^g-#Ymg{{rhk=QNI8k7L&d6{^qEwT=aE -z@-{Wip?OsgOa_Bc6`E&~_kx~+x)n`J9;{+?sA5f&sA3j7QN@HoH$1Y+jJ4_^=z2YT -zAv7wqdr-7P?Lp5DwFfmj)E-86Wc3*+*%yfF*lcq8SI?nUN3aV1 -z57`jNQD*<|ej&gnswURS^;jpHW7R>5c6<^j-Jw;xu~t!Ft@_`6UI64_1VuA}P5=iY -zXe>lofgywt`pQe7b7w)+>Y4%ei!eZ|uR%0@_@&r4uU*Zi2(yPkhWxPU5qa`O_b{7& -zLY4CG1nG1CO3zXV2#uu@^?q8irei&gd$}viF_)Lofzx`}_ZYbpxv2MXl`8+;CkrRi -z{8Du8X{u>>bYyzz*AoX9A^g~9(NR&+>|%q>V9o2Sdbw%kX=%^TlnCl&fHv<>YDh;+ -zlCtQ8bao7z@chvhYnX!GrhI(9{;@<>^Ukjs|1rRnAwgW;)6=Ea^^ -z|4H_u(ug*yeJ>qveX|cU*b402EAlGnO%JQ^(mIbimtyOBn(sZ>Xl_3d(A61u+qx*e -z*I>&kU(6xZxJDsAwoFQ2n~^=qVdO{yHbVaUw*ir!M= -z{Fl^M>zXc?ju~9K%F9yPd#hEO>$azP``XAR|K{H6>dtc~KAMxSjmY(-nyitu030Uzkg8J~w+ -z8rCbd_r1LSYPT#!23QCo3=%3w)lCEhGT`3s?Wh@4wZN@^~7#bVa0G&Lv&+@b^?0XMht3n -z&GGjcd*orOtDLkpvFisi?snY&lIm%|lhE?&RPRHtg32>We+$ffCJ`|6#tUrJS&xXObgB1)hAQaxU4 -zb*}u?#M=}x(*jKqYvxXXJhX-CgsC=2ndjQmitZ5&`M9}|gDcl1^DBf=J1E}X*6fV` -zOkL9eEj}sAp$Cm-x&QiN!J}xvFuWwg!Cv&8X!q_g99D#^pp)|Jc*a^uiPRf5)exot -z>1*h6*a`V>`kh<0(m>aB^{ace6l;`3s|PDVg20GAIghuv^I+C1Ort=aCdAj;_%%NQ -zjfKJtr_6Z2h^D8zty_UWWub5F%V6jJDd>82v1rt$1ipROEFhlgPs%9&@k#&0v>$4a -zXepDz{3xY@+qb=@hPkwe?t58EemWYwrbv@9Lf=Bunp4D|c%JXTMY5{AiR_YI*XvfV~62Ilq -zCSmm%nNPSe=J90Jn`D>1ODd2NyP4uRpK0b08hnYl(J$Ujq`hP2U&_C-rR6#Z@exeM -zm<5*U9`>sKP!6>ko7xS*8Z2e9j;g+O+xyxskU=)M2EfO|Qk?dn-#eH4S*PiSL<-cIdeOXMJzIc#M>(ZCRMq -zBhBm^jw06nsOuN-B^C<_cE(4zeJZ}VF?*de -zz16fbe6xFN0`De#r_sbq?3SMxW8zMu*^*geLV!hl9G&wMmWXkiaVgPhTjAogn|zqctmn5D|wj^D#|yYyZlS -z3wRE;xmQ2QeNgq=(CPAoCYRh9@Er_I$KySef7kZIz_xU?G -z?t%sZygR~Fg#>+ieC!o0_-QBAY(hTCCl`<>!daA5wE;TX@!tv-CBi#%Co&w=PP1ep -zI7y9;;S}XXzc@j;3}5e>jd&!tYg5tYUbke|KXdm-|W1((SZ*u4+^3-08O#U -z{5DMvuk#MckbLIbgA+XL)$%Rfr0C9h=8Vn&H%(BJzl0v&qtv7EimLZ=KF2ET2-^>4 -zUzP6Nf9$4)6F0>kd3cRR2-%-`2eCDZ;UwN2k9IPvlx+HpZ$dw$uO`BL+ebm^I35{78qa#`8fJ)y7jsBBws!4N1^w|t{w -za&m10LL~%wrVmZ0lPPWg5k1h|u0lG=(Fn$#-u~=zq1;`Ck&>exR4p3*>wb4mk<;wUR%?{*y5e|7g6tz -zwp8`LU=s8@Cpl_sO6yhDenEQdc}AT?H~BI>Xow!c^PiQirhi^OUUf-3Tr~@^Xc88T -z{P5=cuKF#vC8^EQflGM0jJWH<1-*fC#TNSH%MM3X&p`aC%MWx0PP%YNgL%#^`JIWT -zhxOz$1vQ*6of2rS-$~;?l`fRVpt<~78HIa+`p>RrFMo(8vf3Qz#y5!o*@kZmGcCroX1Qd2 -zS#p4&#^~VV109^yLe7J=f387JTBMF#1|jyM -ztAJ8_*-we$pZgJ;*1>NdUjL-)_T;l>$zD`mzNW{KdecP3R*&6j?smFy@F+!dRVP8; -zM*UG^1jM+xtLcH~Tw-N+`jjW{_R_)L_br%1bbiIqR?dc;NRH8}NPQ48tsBxY)j@L3 -zzRkrh1}O-ip|WihZQn2#J&1U3xklE;CPgj--foWH(nZs9mrYa7zlM#JS98@n(X~H- -z$>SrmSVeQylttI9Z;cptVuua4dn>jjccm37W1I4||Bi?TF6{(rZ@cAIW -z)h08k0QTq4wtYu)p1G@J;>lylSH9%??Aq4++AQNJtiRbl3J`+%wEK6wrh&+`ZEK$K -zrHx#tL~rZ`GVE=w>No+-Qbi`PZw -z^$XhwUlN+YsMaS_n&C+WSjlBOO?dqa{ -zAaY!}Fm3Fyee;bn*R{bK?D77EV)b$OTxSpWfaH)gGm-%lFxfD{yYS*{OyZV0rmWJ$ -zlvSGlU0D^J1Ijo+Tie#eJVB8`E`X*20=J6YcBlA)7u1HpPmj+qctUS@5uO8GQ -z6mW{dLMaPUn;b -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 -zA{mA3y;An_ZNF5D0MBQT6!(Cea6n#y0P^- -zV&h=Yuf -zK1W8g-|0Ir_-B`iY}6*6+(#kB<&)!;d(fYm$y&|3=$DfsQ@{E0&u@(Hy!0+P)vV3Fu*fSP%3*H5JEPMmiwMFBaW224 -z|3b-ZaIZed%ep5mn|iDaFF(f@(*t}s#3YDWN}2|m%(WU3Val*`P+m&1!Y$W0V5uF*InH0j!m1GsXMm4{t1EQOz*xfv<8Syr0stcpDqe%9T)^!ClCl~+ -z8(cODQYLqvL9?wEA}yz)f+iwT;&x|?DQ`S^AxE(aa+uY-Lrrn+#@cqRd^+^nf-b~i9BN*}(FXvIJnoK|{8Ae`T|6*fBPUB7hBz0-SV -zxdH)kK@-fK%Fw*2e%5>xa(Kni?4-35U_WvG+6qyRSpd{qkQ{e^_>MchZ2bhXFG7yIbB%5Q-L6SISQ8RypugyW;OLhl5(2ZD-`k)O%e#$lO_@ul$H -zP40!gDudueaNUWWS#OG1unX+=+qkG9Xijnq#1j|aM(qnV(P*+r$v4T;c}g1q&xube -z!&9QIVVP)Yzpu$1U~yrQ85$;yYI(r*cUk$3$k$@2z*XY#oO|zE@LQo;!x4y840Dy> -z^dxE-lpsMe@^;KFR06Nd{OGrZz2eIrZgVp~0f!X?id_TGvVNcUuHtdeggT*3uQl8#53DUf;4ass^<_a_3O4ag3VkXIu? -z!MDDBY%hc0s>|)IRBuMr1;JaS4ltBN7-xC -zxU-tCXUq0%ezMfs(?!3tCQk1H9Pr2wDzWv5-AE&Lgx;D(K&_#Z#2?RCE^4(MQmTy| -z*x{eSw>xOxsb4Q&alPSV*~ewBu766Yjs9fNqmk=d9+C}4{JEpwyPEJxm1K0Q1&$Yy -z=tm%4TgFLT#^62ol`G5AQTNIsVcE&^2=Rigys8XLpA;$i_IC{FJb!gIA@rMb@TPhj -zTvR`#l@4iZMpoyIHSfPH=I+e)#9&Y#-Mv$yC-l~eQc3tVDYi8U%IGei&6hhu>iWD} -zK8NjhFe#SIne9JKFzQQWa{;vk9YeK}-@(bSOGS?Hm14vMp3?WzBi0#q*N1w-2>)k% -z)q&^TZCemh_Q7GAqk2dEw=&_3s;rZv@9Ro3;tF+v!@LU}bSs0JfZo{13X;sy*WtgCr@Rm%l9r*l?TK2nyB -z0jBlL>YG#y*@=?*3mBq%1yD6gR -zg7aaf;%^Krh|^vo66>Yw_0pO#hOsH4N`kBD*%~P-EaB4G8H|a6?bX5F3hgHdaaQ1K -z%r>QT7fwPn6Gl1L{JNDa#MAh{4XCkM4yE>lqHl~KxB+EQZ_G70E -zS0=&f;SJa^%h@rFr=9+0F5g`k^887njP&n&aCKTnzDOGnV~1*&u8qHS9dhvW^%WcX -zjsplQ=tz#1TCXAC_!o#fYmcdHZybDasBNI(QZjpt`2K#vaHJmU0vM-{+mE^lPIu!j -zSjZsedYRbwNG}9QD`R7CSn;2h!CPu_HP~Ak)dh-h%?v3rn)KJve-`?xQr>F?NTsJQ -z{)G&PX(ky_KBKNAtin(SZZogZ2&ioRA#PC3D+9hQ%%?=(%cnD+JhF+B`H`0#h$aR(|tnTnmgCDC?~l7?-wtY|nEKBwPcbVo~9h -zeFHn&6tQ{=*gE!1-!>D`WWvm!Neg#ov~_ -zsD+Ht(02pJ{JtP4w0UA50oS*Eb?petSy*krFOQw>R5%CYV%ENTrR&RWkCQ9$0^r|u -z3Gfnn_C~l7A{{>%)j0~n5WZ@Rklt;Xs899aE;+i>8qMqJDp>OAyHH7@HPXKNMr(+F -zI-uWoQtiU)+KC;&GmVX%`BoA166Oo2hLi41yRbVP9ZOIYFEY&pF5bnr@A5HN#$1cU -zw-rU%C+M~>z3bjx!`SWCp6PU>ZHjnBDW#zNvkNo0> -zBETH*ZnZl>gC1ItP0;Cmd&&`>PPq6k)180DLvCCOyvCxGd>N%}w*fHEKywN}<#(;4Jj<+s23*`o9g>{s`81-}kj) -z8b^={P)VW1eu@Z$4xW4C=ln*kei2TswqQM<#CLkT7rpVdm=wM`@4>CSJ(tIVcVj&d -zs-3?dX-?6j@q=M$T?@DX%rlJopPvijZ@NquDqe!U#M75}n;+FKi*Rq99aRdn*Y~%t -zpno@g15u5^#8EYf8Uc)G$w)BLEkKs%@n@N^NAn&^znKiJvA!7%7SsQqYV+T#JXTH5 -z#jds8<9zsiA*VRB7WH`J9~=L6`?2&o+Xn0h4c`QprN85VR)Ec6#_dILhGM|&OPghb -zkw*Zf(IGL3;Hw%JM1cze1KA3E_!hiPUDR8_R@xz?LCYPr^34aRRuGf$ouH8lM|&S` -z09kqBPzp#8 -z9njTEj?yfc^n8|I6q$|1-@0TmVBq=H{bx7#mtbnH)A5z?e*V2^-L^*++5e -zPk{T@9!p0q5HRM~tCR;YI;9o7y+OYB4J=2BReaKZ#Bu*#m7H~}^-RIYaa!v2>a6R> -zOIQrYEUf&Ily9{%Mg^1S->2X|a}l;B4s25X+XWORup%wSPPIJ*PuJNewy)AR_UgxU -z-@koJZK~93ds1CadIS>ODakRRzw20YogGas;3@iMAE9-=0x?+vb+OU6I4@bWiz@5O -zOY-gfGz0eRKb)e;)IzHDqI2~P*Xh=*ZtSvq<)urw)jKk@5GClY9EskGE!4=z`WZ&h -zWw0I1dn!3H@}B&ER|jlV50+&zVv4 -zZVQN}uqTWp{k1mhI;`?x2$3@Kde=5VYk+Aq)c@-hERfVM%{tqU5y`Cf`R6+650UuV4^H^MD-X}7;sv_jq(nNDD)HP6a6sWEPsqoZmSw}m_UiNyf=fT -z>Btb9k(5NBe{OZ?@jFTlvR&ZflbF=%n7h4pwH_KTBA=<(jsIMMQe~K_0z?!b2i1R6 -zkUJ78el=I!fmiG(vPEnn%%INzQsR?NQmX8lMSl<8nOCXqawsonVVu?q!Wj*ay2El -z-P}qDJhltm@ng+R^UD3%vvDD`@xx>L*x@JIeey -zG40oa^_d_J5EGt{@tvuj-d5Ul1#46|g`LWo--Vb4Xxm?!yvD6oC66urI@gkkCb+!f -z;yZG653ta{PRK0<<|36^@EG4h=`_ZfYtP{+l_+OTtbSG4HUg7hmyUbpObZpZH*vbx9Rw{e2q%k8aW}V!b}HCv{GSss3oGVf1ACKl$v9LD -zYR&iKz&3|!bIG+#hFeql4^TU>r3(Jt^(GuzRWN1s-+dW6EWP?THKr4r5XAaR -zUJSq8Urr^0aVJc+cf9ucL8}N45sn6=3XLd=LmMCv)zwj|NLW@N7twBS-Lmp4k~*C; -zw#!#;Y^x%jl7vN(@CpQoc02`nC(IKQ-2akx*xhApn?d8eNbFKPy}c!;3r6YQ0?qX@ -z@%>r=;;(?u%)a6wIA&E+E3^ALw!{WspJV|%Sy*;eH?D5)5*?k0MUW$(jUR(gynD*>#k^opF6(#70GUkM6*zkA2t@) -z>40sQH$1#w=>Om&l|_wXco@6XF4=I0lAN3ROg#ggoYpvSk71NI -z{{4bLG01s-MIA~ZryB~gvM>+_W6@q5F*V4_>;9O;wsDzLoLM)j;fltRjW?Z%u?Mfb -zLm|*CPz2ct7@KSlcIsM}$_!eH;HP15VtCjsf@Xsh1_5@4so6qSxrklDm>EJ=UZ^QR -z5Gmym>*gC)!EO-hsRRZGS^0z+FWaTF$`m<)zXyZ6f?9Q_zcO(J$Ldq(l9R*YjF~64 -z$xc)ByqYmZuAeXl`u;bCkG1755uZv)z$@IlbumqI=JOk_#D!zVjv{cVq*2$$x!c3Yj-@flZO}($E@gB$ge2&kxRgiL^=IR**@AbiwV^bsP*z!^#czv0tt|Eg96n+9*03Yiru>t} -za>2%?p%%$zZJ1`eZ}oTHNe2&We7I3A_Z{08pTiQuZ%C)U@qH~x$=(TGUAO5Di040T -zD0V3ATLFUn_-rU^w}gSQYn87EaIu+^IvGz><+6&AXO+-pB!NqL-^RK+0Z7~h_gZT?`NT&>4P^B;K -z5jly>&993iD=vMp`Lz)j-Zn7qT4}Jk#>6>`&Dhxyc!a?WiqZ -z4ezBfM!7twsBg$YL#L?K(*#tQCh9a -z>{Qf1jt3vtR5#yMmWO;jKR+h1egCv*c)5YGr_h|Q+FrBP)n}- -z^C$So>%~vvT!Tkn1W*S3-e0FiMYpez_eu1A?n5^4mKUec#X)Uj)Vkv#;^;A~uo{`}f4P1!9dqvDA6BI2r6Z@a=NebRMJ{`7;MJF%j*J5xQ;kX&kX7h8iXo^V!p -zzdVa8_!a!D9#s8c`q+V61l+ZEk6VL>_Q7Umkm}}{+3EI$j2raLniOVk -z(pFRto-PR%F?{6qR?516gym}1mykJnUX{>sg@D&>UETwoXT7Dtks!X2KaUJ2D|Cml -z+j-_se;@AzSogS+8cPzwe|pg!07tNAttD$#_7aD7be*wInP=#m0t@(Ux;V?M!RpIa -zAE+~MmMItIQ}r#|c@Dv$1S1KHip6Sj$K~USI9eGlk(O)5`j3#o8!mUMbhRZ9AP0<# -z-*Kiqmv4T`U?2E}?R3GvE(Xw~qA7RfzEfi-qZwKrW{i!iVfZR6`NjO(jl9@XhEpvH -z3|sz~LwwYcxbwBhB7f8>r6d4*^!-R2=Rc491BY+?hJEQkqlfnGcoi?SCGaOWF=hK6 -zg35xIrNr3KhirlE8*Pd7_t%_Z2?!)Ot%!7$@;-38z9(svwm%%y<|VfqQ-hXz@>3QL -z*rIjk_%q=k-3&EIbVq;l2^F%rRz0qvu?wYz`uj#T3%6)QVCJFd7~d}O$4|CuN|_cjICl5BYcF2L>M^#?a?bFih)ZvhFZClEBO&@|Y3Xv4_v#P>b;Dfe0ob -z2tivs6l~_hG=Ae+v3a_SQ3+cIZQfC=Hm_=PY~(~fkN-Jo>-+*}%x-x#m+bh`-W#o6 -zIOG~yk~A_-yIdu@`En~R5J*n#Ty)oxq)|+!s@%ihyV+0r)O=Y&1g9h^AUC-FaGchB -z$&EoNRS -z{i3taozldYK?DIS;27Vt+iv%?rt(PNUh*@reFf%kVD;pKb6WCGsK#q&-bB-5G1?|| -zw3=`NYGnbS4!81v`4Wj=#xof@7Tiev -zxAtk5<0%w$&(cHfd^d6^$w0x=Iv1jFm0Twrxt|6cGST+`7I|#repDXZBa57K-h=R0 -zR0qNPG-xDf!YJ(Z^f4vSJBK6)I3BlrbLDLnS$oVNFJP1|k&qGu -z36Z50>DomFk(QPcrB*^fQlu571VkyRrCX5hP(YfcySuyd&V%3kdq4Mn-hbfPi8E*7 -zoH=u1<{M`#EvI0!lFB?y$iflkrTE3YquTk)aIa2U2cicNg`L3xAET9gQl>AxV~Fog -z;zEg|7bZY-RpxS%KcvSJW!jK*b-3#p;@NuHc|mhFnU&B?a(u!c -z_{F!iJZYbgzOGa}_{xiNF!azJuSD*Eao9fC$^Id}ge>}A3$ax)PVTwA8GY73%--0x -z=l0%KhZjOV`me92w!%E$t*pGUXQ~ZRpD*|>k!J{7@XEB@HT_en)17|l>ol?n>3))1 -z0x3gji;~JEl-(Zpt2r!O4T|2Zq+j6p-Jpvb%lyIr^vOnjCx+^yqu;kQ3jG9GCWVzA-Wfm0nf23 -zDLa>QWw@oDwm5N!-%6wiaL04u_CnmK)bN(c#odxMisWR*8d|tp*@rd7lCKa>hNL`wS}20;CM3*^EE1lzGndWR;iM5t+`Sm(Es@%xgasT$xXGI9oK -z%Pb*1Rifb)2YKrofE}9*r;0UV`&LtL7A7%5k$cSr3ZkQpCnm*F3DY$`A3y~9gEh5E -z;n!5#N>qt}FRiOp`B$cfT7_)B&K+R@0x9TYfg@W`fA{Udlb1q=zvVGiOomd|w$_Jv -z_3x&=O6UoJlrM8m9HrTtVzrL01S%eesQ}QL+CY{}Wvb*Y@mk-~-5RTMwK@uyd1ot) -zm#*M})fd}7;Gzqt!PZUU6PwpdCo8o!jotQ){hv=U6+sijsX6M){AWSe4fY;(?@NSn -z0lREv*pE`CpM#coJyswh^WCG@k#^4thf~+)$!!jy-6;Dkc!oImqRcdJgz%;;ije^7YK0P5(BN_DcAm{v#o9UsKTRUszo~z{*%H_9!87Cz?JxkD+&z#|EaO -z0i9E~qi01gP#rce8Tqd;Dj_-kxo_=h_zjXiK!E|@P}e{3C=P&|PqCxL=jfW_ReTTP -za`|xFz~JFRAguy}k)E&9=mBR43C~Z_no2_yh#1i+c3d&nBgr_dM)cdtMUeHg5QH@zmQ#seR-mUcfFDx>@BAc5#UT$;bKIr&4RfFy -zw68Sq?z=knYw8S%Ln3))-||kcOi_O*?>~j6L94RxTDgw!{?OlFq66RZ{z2iDoE6!) -zzIrkZIWrBVmITt~E`$m3AVT(jPf&UY^^da?L8B9w`<^C$g2b=^azKB&rdB%`AyBYr -za@&;?T$~^XHSMUs8__AFt*2(4J>{~a4i4sPY8OHGc~1+5cP_G4L@^_>ykV?PnX^5% -z477>+z3jSIMK&xfmEQ>b=@0fy{^{`^2Hel~g^`G;gG?)nPLAXd%Jfnos;Z`VB%7B$ -z)ZcyZ0-0Sn0bW&*1{bs*P`+ODHFj}h6C(@d=Mr`*Y@y+^cVeiqmf2%s;Wwh&@OONK -z8>edT3NykWFWs~V0yAJ$7j_<_i6_XdFY0pZdyFy~iZ~ -zApc(5K%@7kh66Qo+K-CG$OerB^~mm)kl3DRo4ZN|nJERHG|TCfR!d}s?r@X?XV;JN -z2d>;+F4Kp!y;=2dDYr;q(Iw~mnj1(FXq-?L;q#g~w{dA^GP_y03 -z+^euaUiLUriC(zfGdnnRFxJL~(^kuAIiq^&rDT1;1n@7)S?f_nu*3%M>jEowp-*tu -z8_Odk|H`}7+bQ@Nl(Vf?<6)8ZX> -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 -zoP)M$4qTTYp{zK -zBMiNoxMKDLwEB+iZ33afaj9ImECmMz`Y!J-9a3F*UDLRL%OhvtFNH=k`)6Z}pU+uB -zj(Ht4Kl-&tqn~Nqt@s;|OYHYmbyw^175YVrfZIe(6-Bp~AB$+5*3xXu>L$g^SjW{D_+72P;T^+i-B -z(7Gao!i#>GHw|_1D{i|FeCzOnqu;nb5PL-n^c6j{#wS;meIQoFH_rafFNz3IXQN4= -zgiWQakk6)g5NYXSOqIFvsI0=YNgK!(1h$eA_++WgQd`-snlA8KFi@;6)n)|_iJ^-| -zI~MfXFCsk7i-^*JQX(R-Wvy1t1)Zj+S`L()q4P#|rGMAw7%I`EKuxXM-Z-~qD3jA} -z0dyjZMvut%9Vj1p0`g&YSeb0#-4U -zS}XeAS(tAur{pQvo)st7o$jqKSXNvKx<)(KJTG5d?GgHlqnoqcZ63M9X$+9Mv#pVm -z(;*pEf-C}jz>e=tZQi^SL-kRckUVIwBrx+s>W$K;Mtx9RZqA9UUW!_in%o+TKPc?T -zr>XyY;O_eaphg4SU_YcJzD&*5@Ru%#cnJ;6lnI&dFP_*tfnpY$8wKnv-0Yo)?VDdg -zQaKI9T?#^tM7u$e3wN7@Cm^gxU-6wd_X6YMVG`i{puA6Ma(t=V-afs%xCJ29z?NDD -z6U$SpNW-q#X{WwA3Kp8)Whb}G0b%8P95%ARozRZYg(dbw5fZw4p*-prEZW~f*5Sws -zijriXHd=YLGFaju+2sVHcGitfj(@^{Neslo=qsjA(m`IIgN=Km6mNlRdy-dR%lR^4 -zHWV!sADB5}NPW>OjBdY}hqPn*G~XvLOJLA#LSSsnYiaghoCs||ftBi)%{1f?|D3Cc -z8Y||^@Z70_LXW_&VC$(z8r{(LY@p~yA0J`n{TbCZ#iqa9s4VffcSLd(5Wd|+hZ7OhD%F>_1UzP>~WEc2toiGy| -z&RphMViI)e!0nPL)OX>o7S(l-!>C$dk9GY|PY>r5y0RM~}g -zlo;pj0a4i(JNRUiPA*d9)jdrzTp~m+x!c -zSN!RuO&%=RFgEN1mvGzxz8}BzNakSegn{6uhzqf_(|s-ZSU+m%X5{=di63-91fTJQ -zgOrcoZRuv(-c`c>4eA6UxQ`5oFm8|PqL>D8)6=`sD1-9XL-N8uz1=cOK4^vAvM8%% -zU?dBrG4A0fra{<@(9e$7KP!O;;Lxpq-AsFTNYwkEIUyM=( -z(F2j{670au{Rb@~#zNsZc}+FjLxsTMG5|dDQXU?-6kS@XvAvj~T?AYgch0O5TN<sEg*5* -zsb;{g?%~>Ll_`Oh>{OrMuHxB-*Dy#z*fmkV?|o6!wRYy>0i7VR;u(>72$xkz7z)eK -z7kIVcAN6Jh95vCqy*Ald1D?2em#%Z0KtKVmUC2rs%i6s9L|3RDstq~A{CpqCY2krb -z=mzLCUDYZxjZCU!Yy|~CcRTpEzurv62LfXG(#(%{8-VCQwMisP5~M$nK=>A$raZ7* -zy=T3rwYUCzxd*65T|AVjW6V;xTCKs;H{e&WAzEA5nh_f1W-b~Abc5SEWi_RE>7k?EvwLtg3=!6Hlkq0TQ_DcgzIQ#VRkIwQ&2nTRc -zM%m~?mmbS61SX&UOW*kMOAILsA|z(pJD!<+iQcKA1OWxiZNSk2SFq@>9iKtuNdfa^!}@rOjn2Z3A(pu;<( -zn(sD{UtK05CbIzD7K9ZZC?>EGPcIB{=DVCU=j?t^6y97sW01CFT&+DYo`MjjV@=y0 -z$PpEM@*y@G{m-F^Zk9xJEJvd!p)HyD@T}~k^JxG7YLqX17Oepj1OOG@<3imCA2FRz -z2Zql7FRxQ!{cM1CI{eXh@OG_|G)w1#e5RSFZ=^PXW$jdjaFe8Id-9M1xF>& -z2Z!RYHuHH+!FYx$2xU_Vgoc)t`yE}2QO+kENc`O-`YvzD~utKAQi&tZtF2Mu8&sk@X4tooYhJQB?FjOU~4*JJvfO -z#HQ6`X6VhU{Jf<;FFzLY!jpUw1f*i7{d@LyS<-(=O4_5J$d$&bM?7FywKN%@Jk^dS -zROM^nZ}rnMTcPVrNg55T<(_6DplU?euq4LJ8mBKk!g*En9|NdwP!DWFW~8W*`ux&2d0I@!rAhti$)n>44*p^VjW3`E+F$B -zj>>wLkvg7Z!c}vQhw&2!^)gCF&lnh|C{m*tD`N!Lcv&wxf;aGwq<<_RE8R@SBYNT4 -z)D!Yv7;x2;WB+91)AywFm;_T4EFCJ3Bx4hgk1QE7hmnA*8@Si-uaZ8fgEyV7wn%O4?eS6SB>V#gp?Me!u -zegceeBma=eONG+XgQR4Ki_IA7zFG&mTMLeh301VW;4&ly*pOLxeEYm(t_1KJIKv@a -z55$`7HJ_r`?*-tW?-t6vUKX&O>8*qL@`C0cbf{FYZG2|m@@MHl%P5U`UyZ}CO+wlR -z1!%0VdAEM>kwN6@>9MFE?UA%jJY)UfU>@Uf1rBKQ>2BfWgQ3w0Zv`-X9gG#ogLf#Gy$28FAR1)(DG4!%SW&HEJ<8B3!^4Sd&gsf^fA -zoT^~(0>U}6YJ#0>^Kb~JbovX}KdnwBf5X6($bPC?e3-1zFN=lqHG@Sa{KrNjs}#oL -zZ(Lb3%i#)RhTa&TSv52=c}yl7!LnWod8XQLcoYdA+P#0>_EuujN(o(GP#ne#i>Ai7 -z=3`HFiaPm#LiSJD2%(0%1TXK(=!6|;PnvjRw5mqSaCp2$ndW%eQJSbeB6A-YO9V68 -zl0B9LUtK0_>=TW{0@*S5ZEK^SB)Wf9jw0} -zNh`z+ci;ekMst$G>p<*5C5U7aG9JO=F1Ru`?*fvM3E&s5hgu>)}~B2Deuhr -z8~4s-m^@)JXj)Yx^#gM%SfXFqvx)*Er`>LTytp;tsc=~k5%1&N3oUMrtPe2*%t>Xm -zo74!RBOhti{>oXLw{P!CT~+GSiT$8RRtH-#Q5D-v(RK%jG00Hq>)mz9btQR(jbc~V -zcy)WHmkXl9nxvH-uE#68G4MohsOjTXar~Eb056MxtZJhLh{k0CvTAB4VRBc*pRqGo -z@XJtp2APAnBIBf1!`-99_rQ(SontYN`oBWDw@ib(ok?)`uNyVN@J2Sc9Xab}Zp -z0|C<*TZ5foocUCmCtW -z&1!sAXj#fVTPw&Lq9Y{3lhT-rausl9;`YiY2^o&XXHxQdjVb-pz1_t>URfsC*s7&c~Yjh~akIlpmg4POA3 -z2!4LD+2^DB8K6qd_%C}s#+d5ZJ;58|lV7>Au>9sL-Ia2}w_UKn9C;^MlzNsqeZq7m -z&jT~e-j-B!?axZgEZL<1wCGf+Q?bkAkW7=>Ox%D$$@F_Kp!vUTa)A{9uqZaBbDA8I -z5YaWOI%Md@f}l(IDgT^QV(3lgQ-Kx?S5{Ko(&dPEH?hNIv-0yP3OgCiShk3rdaAAI -zQ`vvZ?Lbe{p>OLfXABFKk&uxTh!zhPchLrU%~YDFU#oZqJzc5eg~5vO(O1QN>+Ry& -zP=W?s0cCY_2X1X%C!^g&3xc&|8jvMWS(QzA^);@e-_?$gduhVGMVOdmfqpF!v{kgi -zQCLt1^9kTw3a>xeza8MYN&+!?8LHbs8?+q^|6r`I4%)a|gLfz?9s%;1R$kj-C?CJ5 -z$n>WM`&$xcMfLoNPH`QqwSav)vfIdZl}rWQdR4gJW1iw~qes_-ApTXGwF?q-{xGK` -zT(GZY5Z#$^^@DQ!KXA*Z7k(anSdNA1_9#k*!$e0!zs+y|`2I#THlT9qm3H(S#QQ5! -zM5@}Y>gW@E#(@{gfe{Bx=1sacer=LC_`zwSYEfdkO_yTf2F;^6b!xSJFPy8zpa}=A -z8YZ*+HO -zET5VX3;>vbX%o!+7uHX}aJx{aE^s9^)##0NRf29j+bx6%PI63cr0?8@e%U`K8y)A| -zqlGw5H0out-JP+R+egwslo)B1F1rNV14Uyr<68K3#TU-k@24oJ1Q3(m+W11XCSrEX?v%54kD+=6UKeNc!MaO`*V@f?<6cS1WCwRyX*Ui -z&}r`zHZ*DyJZ$`w`1*cC=#iJQHIK*LZU@z;^94g#^btC+O^ZM@l!a^&TlHhqXX|Sm>>=keqVjeZ5vUczh+PwMYn5r -zVIP8(FLEUW{DgC8L~1!SCla0}CJ47nAnFJuEHfT_@9N8^S}825R9neP2x+K&I)%e2 -zME(^~h+ix5ujF75?OWFzVQO_|dN6*5r#RoD!k4>>oaHzjcs8 -zJOgswaRb@ROXCvbrQ&224<)|)n9X|jlnOQKYQ3q1@7i=JT;jR=pc-qd{}9I7uwOHK -z>YYx!{#AEISYL#0PrqGyOLUi!rX)4w*(-V^Hm5TEbw9xJ>QAN=|%JyS=$gERNVA33DUnd?#H_{UKIb`}Yflmiq`M(G=*8DNYL=L+-n8kh|?{DzuS!dj0K+HOyFK*bDc&XpSwt|ax -zqD4j+59ZV~yE=dVdNN|Vs?)x>AEu43`IwX`gMqOX5YkX8a`ok`Yyc0|jk0&2a?Cc_DC#G!x@`g-x -z6qdFCk4>-DEul8GuwWA!zfK;j-!!`^{z?|LY63T__`P>=MJzj6t-1yHWV2m%jS{j_ -zoEbek&wYo-~S<)yBf<`eVf~S-)9>jTw7Suj%k?)x9+ahk(i927}?G -z6^Hw6eZV6Ib{yT%HK%wD*D{{h1aEE+atSSf?j;}q0K-IMtkRaj?S5K@x;FrZD8UIU!ITgSgJEfK9Sk&176}?}5nlgOp0U6T -zM809M8eghkBm2C#SnRST!JDFfZP8#a?%sABW!1p|JQ1X&jF4WKhk#A7d0<=8hM?Xt -z0?2rYp|#nyGVM=7(eW;wahv*0sn)>T9-cdg;pkxyok -ze^+mQl{ptVlYkg5csw{~Ku9L#xnt_fxd~2dCwD>_(%8acb?|_I?DS5uS`q_u -zFI@n4lqVX8AOX=>P%kb8l@BoSor|Aj%~SaIO+#RP)+3vM*qJlmc0ftwN2`<`9&g2S -zX*3|u$S%Pkfrj=!>QJ3Z0x*E&R -zl_xki`l;h6Z{Mor1P6?nGmFN3m(dNWBwfB1ZU0B^&GbKsUkWE#=*2wissuWU|SevYGO<{D_lRUD)0&@UkTte{2G#a -zsF!ZNM91dq5=3Oxp*gaKWc|`o*`0hZBV!j+&%PfPv&6PWWg*=+Ht#Ku1^ZPjHZo?m -zsqu8FlRlgOt+Lb-QE_?82Z?K>)_=-Hym$M17H%^{bYrV&pro#4o7-nDEryb5y&!`$3B0M~sCiRO>Gif`m`s -zG(HPTVeo{dJjlVs5<#(szq(E)wZxi9Z0Utj!X{_>92@5upB!gB5z~Ssnnit&f{aLt -zpd`@3s|#aBnA%?G>Tk)_Uu(<;8}5ZMOuxzJ?dAAnwfRwn*wEiy3?>f~zC*W13Ug6{ -zQdO7@A>0cDP!a-TMwZ$hiwsc^#qV|G-&k~gi%`=Z^}A+dAul;8^$*EMHv_9%3G`WM -zY7@^E-ev2ZBONNG+<2TNd45Zac!y_1pAs*e7kEa@AwN?_Uzf9SO|5g4^ZA-JLtu5kxu@tQgE;;W$L|=@nshm6P -zty$l{Ym4!2g*-DZ@dU#Ulr8t;Sa_}`k1dfDv`MKk(R<SPLWJKciF7VA<#a4}g@xp-om -zpImtgm9`?v&G7x+(vv?eFJ&(keJGC7GsPIYPco7*>J+9gMh<=JN(%Nvu`YBJaN0lR -zw+H*u{0ylubx(QCkPa~R43MsCaq_IK&uU)V1asv%a0B!7M1XRrttK+bQej)W50n%6Ea>{6?}K{{}PTe9HsvhW&Gh)Xc|jjy~ooCIzA8=La^9| -zR;0WavZDS4^x>yC;~SATIV$FrmH_UC2SZ{nCc|J(&4+iNpjK~C -zG^MXsJqxWeYpvqkc7@_KGr_NIVuaeHG_sDhc$n?^?9(efJe8l`z3r?q+njSt&wOrn -z3qzHXE9q7Kz^YAR^lJGBy~kfCyfHcl1HQj%Y*#rwbAK^o7g<|x!Q}AGC!0!HPvDoJ -z+@F3rpwf}MkvjlXI11lvi}47UR6#bN%g5hX^?zalO%3a`#dWf}H>`x(fG%fP$S1Tg -zUU`K-^(h5~=D%JQ0*9QdLNL~E!vLVl(<^{(k63;H2teQQKo1)S9DPhm@POd|4?ODs -zU-Jq)oLR0+7b^P?v;P4Cm|+oIb4%i$=5%@bh9<9K&*{f1RTMY|hS~P}auG)kn-UL3 -zmMj0fN^!glkA5i8e%G95i%`3W6OqD$&HzW)Tvi!D_f^a40eF6O6$vR4%Ds^k8J#ej -zx5gxVaDL%~3!j!(*H8)j9nXtO|Fju18b^1{?NRhxpP^ZGpX>Fu)3=_+g)bsO51YTo -z_ViyCUsx#TDu9EN{;TH^8{exSb-+z|?uEd6@-LgU?5^ikd;$p9!gYwHS&gg2?C=YXWnZc7Yx3ZMlt=!sHYBnzto)*C((q!?IbO_eG5_=P<2n -z0~KTI5c8ZZz1z2m#Hj{hTPo%9J9vxwBM8?ilwG(|e3CQ(6 -z(`lRw4lTJ8_9B>NV*01+iNq8TH`Dxf8)ho{a%3ZL;aS-^i}|6bQF`gW3>pz^v6{eN -zvx`e;>$g~!l-aC2nM9&bPji1I+9pP&d)*As186jI${C_OT)L&U*;r@g44ZQRUo(Pw -z2>UID3HUAe)EmX**=;215D@d%K9SIQu)4$AXUK=H5KBx0c;H%GPcSiB=N-E=@spovFs-tB( -zsoZ)3Uh?SLAUR5Zes}q;5QF!-hlzVyOV6I+)KVR2jm=yQ#QWGjFU#b=A6AB9_dd0s -zT&2aAxZcR2p1S(pSmhsJ5YB4+6G!vkcr5M{3Ob$q-34WbsXJt8Y>9s#hwXvxzUc;R -zye(@hb-ay+mpX!I@pV{lWyb+I??e&5T_9k;5^dbs_M)n%TvhE{Yx82An3t5uA8!^u -z55!pWL_bdalQ+e>tHfPW`)t=Xh~fyzHJPUXH1zIu8SB?S$?#`eLbI)7CVFWa*og5- -zEiqw_c9Mf(uqd1m8h;(L{v+z -z|Cn>z#PySG?)ZT#1SIoRO83#c4r=D^Bv-Z6Mcf~%-i_wy7DPddrSn0Xd5d_!`Bu`S -zMVhe4Ln5%w-bUysIrgX)S3fQKeUCrTQXGMCxt6lqoez(B{P4Z|2^HK~UNQB?Y9Weu -z@euO}35yHiwZ-#uqnSLiIE4DqSZ?9?ScD_FTY>LBrvSAOW!SOfr)sX;Qvh5icjR+S -z&`M$Ai9``M)%p&X1I@}tj@sr57!v@fv&ofc@%UZsU&6D(@13$^VGNDZZaTOI_S$2_ -zClGA$Ww)>rlo*Mlo*Ebi*JU>c -zyeH0BA4c|xLUf|OI?sN}4sLtA}>}_kj -zptA7;FcqSWEQLD{Agfi6V()T~x6+GFHB -zCzayz6&WHYB^fr?8oLaSbxix9DLF8h$6H)na{q(0(3vl(e4My*@-G=vnfLXiK@1E+ -zvv4zQbX1=az{C|4_>T}0nFTi-u&&$>DPg;*9F37j26Q&>-+zDx>U2ZYuwsEZFFbE4 -z&C}~&ip-_JZ^c)9f;#IYSGB6(>0Kk!rWACOwQi8;0xFRs1-_@J$RW`&HdCm_{rluG -zD0Q^W`vK%IT6hbcXayIWify-iV=U%)h-?1Zt=ptS7AgqD%ecvVJIjNX({Y)ZT~1u_ -zvp5%`Kq!3oclxuLVtee7@_oi?Z%+~+0Y(IyYJY5@S|WPaeCufOnIqf?LC0V#gb9l? -zJ8f*T2g}Fz!8v){xeif+F-KakcFfz~74ci&CX447&-8tF@BrK{#t!my5)p&COyOAj -zh}^~MMO0C`?w9XE6Wso=D%VZ9-Y{kBEnc(L>Z&h*Z#+ZQ -zjOW959nv<1r*aZ}-9LO^`xBNr>ly-z-##evR36%3)#S_Ljs;q#hos_4=(V1(!3_$i -zY^n?wS3z%0v&VU?aIhJaot-gmj+|>(nmBD0KjCoKx}?8#Rm(APobYDgRHa$vY#jOI -zhR$wx1_tuevEN_5kfmGVC}GAR*9&t^kg)J(G&Hv=xx07dCp(>NGG;8*LNZ^Gt8ATE -z;7gZ&xY_R4ZmdqC-B7|^v!2qJReqbQ5T2TGGMDzr<^&MulP#PwH8|&PG*C&oUK8rC=zqX(>g-SXi -z28<}^&efOjTV*5n&&N;6?k!JkUqC@$nXkt8pp)&e0w2V^7HH7#TXlR55Ke6 -z!?CV@>Y_?7nAd(Z)^Cz5UV%CRT9ot0LxthXZP11aH7c@s{y4t$^j~&`r&G`bJ$G%a95@Op#FLmXArZo+?cpU$#6EPR|@ii0Xcx$aJhGz;IPWeH -zpQ+OWY}Ls-|5}S^-e~~X)1v@b!_1O>v>haGH6fqQrU-c5Yb8B?FgvgjgaL7Nx6gqm -z^!Sq_pCCLyg|u4>d4uSM)0`LA=2-%rH8j~7l%K)URjjbdDe&Aq*>iJ0^_k+_c4oXQ$<%Hc;Dj6?7; -z_}FF4U?Lm?v*^BfNF}=b^b9B#J7F!e7w+y8i -zD=uT$S6Bn94pd_2#0Lw`+%g-VN!oZ~NvN(eVkWsU}6 -z3m7b;MlXi^iODFunv0|4#6z_y_#sc6Lb)Jo3~8RgAB2xE{i3ONUF=_9XUclsZuLI> -zI#iNIFckX_mS2+QvByR;9YX~!*)aXC(MB^y{vyR2r`v~fW1;v-_+*;gW`bCN^2sXTOs`&-03FhZ -z({$m@?7sRqjC>M3nEkgAUBQx(`buh);M#T~T -zoCW9;44SM3Fb}J@8JPjg`Kv6Q_9{50+n<4=C|Yo89s-T)2b+7V4CzwyhZyTlQI!1G -z_^)Dav)kRk25bfT?SukVEp^)4p{iQLP3<-$pk!;7Tl53bG+g+r?3`9P*08!z$l2qk -z?aplNy=@7|yFss$?>sU!9`*6Hw@T44^{zt<+xoX3P^pfRC?QC}4)505;@!a$Z?h_` -zgN<-b$e3jASU@#vLgWY{3edoQoWwKPw8s@(GjBg}G$Rh?juwRCp1% -z5_N0-ihAW>G6crXprldays`oYr7b8Du3VYS%s(4WVmj11-AIWjjEJ#h7P0!<%eqwi389lV!j4S8I-b*LnXK9B_+wdznQ -z5ZwXxUw^S^)Zee&?dAZ#<7iaxgsitu!Ii1y%*`{%h|J}25k5RL@A&wlJR;@}=@pQW -z8HHU_W9?^SEU{nD(L3`;(2#@Hw=at>=`O=9CYdF;NkgaE{(<4HH!l|{8(>V8{Pjy^ -z9(Ck=4g9;uoPXV7#6$&l`g08xB_AbAYU+46d2I^ -zy3aDgXqEbXMtA*l$s2Z~knnevJWksJyn#5%xFT&cE|iqphpe_1b(xojvB>@SI&%!9 -zPE|dYL#YVQ6nCKWbFU3*f0ukKZZZ&+R4sb@q -z{y*RLSg{|DUz>f`$a^{!i<$lsPPfdM_dIr%9-LfugoPA&v#Fp1=iTF5amhKN(fsxU -zWePx)$;8?1wmjaGQSolJe3o7B}d@rX_drSA>6&f1!{C5*XM$jq6YA -z`U7x)1d?-Rne&iy8kMMJ>P@Gxqb8rUe^lwKvVjiBF40=E>m;pjhMulWWGBjIM4E}l%_=qc9Fidxdt}3y)fd#e{x9R=DVHm -zj9>+kcSv= -zTLvg!v@?h@d4-!;65SJPFh@W2!e|Zs$)V`zXDf-djR#kiRev2p!WZW{1p{k6Bbh^A -zirZKcA0iSZW)EM)=z)RvgL`f*x1a?NfT%pgDa~nu7JnBdoX2TrvM#C|6l)7Q{E*QzBLQUUg*eOu -z;!}O7ezQ{M2_OxSN<7Yz4j6s&Amxnn(c9_MhRjKQi2A_@3HyDtT;&HXK?7$zzdFkY -z=nBk%0D&QGh}4&>^rpPci@u_RFY{(D$B-u{s7B~FIN6iYRy-zw2N_<~kH)FJb>T3< -zJ6E})1PaRZf=sWpc^P^dr(489g(FZx1v8=i1D)uhGUj9{a1Qj0fO} -z2M84pzXbunE1?ynGB*q*_DC3MP+VI@9k)Uok3h&!jmjKU1f&-|oPEdB8hNaH32}e+ -z&O0S%8|D<;9d4HyR}6{hxQi+`^HQ&we|zy_ZQTCfU`!IgH)~DZEA`ttgn@tuu{*Hl -zjrqqRs20(G+JRXdtOr)RVnSPcs8b%d^EbQmIo#}_wUEML<@9Gs_A%v=w4lxO5U;Wq -z^u@S`t-smuuVL(i8|Gv@USDeno`f;8{T?_i#=tvJPt6o*nM?%q<|i@UqKw@}=@ -zcyV|4lc)Xd&))xi&bjx#xUYCtRx&f0Op?jWH>~jv$W}@c{%Z^??nX~d=~VL)f(L|@ -zc!tn(;j-=X1N|2!8@3CjJjPO7j4?uhS}Hwc60da67QXy82lEUaSe#Y;5%uMCAJ@iH -z07sJy8TuSY(Ivv5M;gWrHnC{Q0lm}{CI`a=TV16G06$LQGmvzvVa56D#|G&5a%r1` -zp+7kd$Ps2U)h+y|e8Gpy+4#@aIZWmV-Od!C$M)gOIBg3bScJ>ZsYAP6ZiTA-3V&2% -zFLZ2q$v-R0CdS<3S?Aa}k>#id>%9f9aD|!UtIE@W{kB)htb~~_1b~f-kfPWg+FbLn -zGODsLjhh(8jsDgRjvNcKq)sT(Pe1Yq=C9?4*RUs?86Ks)tNgaf>p6Ay7L!WxSp&V4 -z9iom-0G_;n;u8B}X5$t`92E4oEDhYBCDm++f})dpr?N0`ieaxcBP2)4=&A|Pg}8%^ -zgGyo>MkX-;O(iusD6PpCzsD$^;kSz7kyRb!NS$_V4CqxqM#9b{qy=)<@X}C8$Kv~ -zE^J|~!yIRLa)OGVvu$AR3nE`wW_|86ec@65Ziyyc(BX9!yRHS-*!h}S#akgS+WdF} -zIr^_w&Kg(%aiS_qc&$_M&JzJcMaXN%NaA!*c=vPOAb_X%1{KUG*>%)ZB6PJuW%xWi -zQI&nGpzXem*zao8pjo<}>oHoRC^JTVKK;u30lOeRM23<^ak`%z^(+r-PA3)Jd1Wk& -z&3JW;EVuWeW?VM=qpq5DP`!_h%xE~X=mi5rijSf1(Z -z8{Nk0tdBp3xLT4jVpylSe8e19G`^c8**6?i+YAlYd6GWRbHyM#bnkuLD@P~6l_uWXfm)62hzsMG^jqS^1QDPX7hvxhulc*57(}p-Q@P;cQt!= -zna<9&oCru;3KiNridcFLv;bB)HxVJjPWSB4dYLoh@F^yG9BISE>!s0$52u_vZ54S@ -z$p|>NZ*&xt@dIS^NTPVrx~<-6Q1>ktAud{?!W%nXm<0G&`g*q_(xt`%+T -znZ=0GUryRN$DcNM^^AvcO{FC-M=?uBaKOtEf*%SMv)aS5h_$LYD;RD>VlCX2fWLW5 -z5;@nn)UJM;@tdtbv|*88QpoG3^7)?47;3Nx?}tQt7b>HI>{dPe;5>BQ+bf#2UUv&` -zlJgjYa#l>nlQe)g2;2!aC_ilVT7#F+!=O4U)8BwbK9zW>#B-wnmfAX+v7&4K?~6<2=mL#5+J{ma -zuNZS&Ym6<$7TK`UqS~g1GWHfsyy4Z9bJgwaU-GrCMh#w$-$Q|LN}p1;`fhhh+*WcJge&W^n+lgObC)60Iq1>CE>=OI6`DzwHXo7n+Y5QFqk}#Tk=}*=jiYI@# -z8ncvL9+1{`;8pR|xq9gM{yIfcFI2bq^@DD26$Y&q;cw!HAVHXbC4fkNb -z{BgU})lq)*Dr9|2`@97_!R^UfIUiBk`dijz0DUgdwKRWrNJ(Uv_X{yN4HP8k?)Nj{ -zsTrz+9UXgn(hORlv`MU$;jaBo80_j1JCo&<7tvQ$AS96~Rkm^abMZ}APa!AdMu}7z -z?gvk%MK=V{0h)?nd7TmGsCvXHwLk}9I -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 -zh%B9nvDgci3Mc -zJEV%pCcG~=T{dzz&0*ina!%HYq)TyxIu|isjK;=3hgHfNevP`5+AjQJ(co43HytTd -zVq_;CjM)d2eQw3iM&nYsDTc%gYH?FqZ@zRc%Td>`Pg5i6tqJg0WS(J{O#kRLgrSa- -zBhy7+#`o{Ws6y#5t=m-_>=U_KSSzH4#_r9<_%uo3V{7f6h;uFf4DyWFvThbc7@ja} -z#P!<#w@DK}yl2<)7g6R(svlWy5RN9fup^gEKB$f6@UFkASBH(E#4F8%aK*l=eRs`{ -z6wz-D)kScBtRO2HYZScA2;AxXbR^lsC)eU85&ASr?kxwapRZenOIsVK;C8}c))iiz -z2VfgHAj|S`R*FA*wI<@H8zS2Yu4~uf4b<2j-Z61K6wuWhliUEC*;vlVGD*+sIq8jx -z&W@l*(##g9Aoqzkcw&1I-pUbMV%^m_d0=1XQ=>2uq1jmpEht-C -zCJuIUcFJuFTB-jKU?By@c3-UE^}}lyErAJ`C{E6@>JmcQOtfBlx5lk~_wdz1){nL# -zrM0XRzGnT&t?6B{wYmgziXrz+yc5~e)xP`Q17BeQT7{o(Q20mIFJV1DAFeR<07I-6 -zpS#4i -ztJC~*_h9#GW;~`)?J&Wu*-p>q!K0I!ZaVoi9N&Cuv{SXWq)KwEzsS;iBs+VZulu=* -zM2f(-AjUP(hLv6wU;b*l`+LK6i-~U}DYvdiQhdhQ#WT6qn7JwLxGyEi)3(1d#E#(4 -zJy-~U3TSB8HP~GxHVjW5)3xbr^peZLt3#IDg=3d+ayRECRo|(Aa&}4UI|Q9^rSR>& -z`}dWA=Cw1K8}bWbi6ALsGmoExdzyj^VBvPsL7Mg7>jhe*SmTGvc^d+&D8SAIvpycS -z33^={l@MsUJsg`J&nZSavOQihPO&7O?%CVUAN_b?QVK*}r*YXXfAhB8z_>>)fKVgp -zqSLb}nCQN_&R6$@;11(~`Eh2!JWgDIwy#&Frd>GsUI1&7x{eO9ByH)?C9ayc5_`1d8f1kPMPWSo5Ta;wm|Hl -zjUUNlq|x6@CsFnKsZ-N+T0)5ra3Iyp9qRCj(x$hP)w6oY*IgWL_nTNh*bfva8AY{? -z=3X+4{agwdzs2SL{b^#`BN$F0^@PLf+ZXO68g2WIGx-?V-6Om3c(Y)*Lr%<#R`H7| -z8MWs@UbZnSnT-)G=TS4?;WkTFR$!M0H`-UHP8erqed@;50ZJV`m -zaA50AsM>i#r1%A8Uuf{VH*Q8MS7$BNw84T>FxW_`VmNYr# -z3~SvkqkVuj{+X+EDH{K6dgJdAK|M|_e<0CZY_|m;Q7Ge2J~M?%Xc>1DUZYPZYqjJ2 -zBW@w;LXp1%E9btJ{ch1-q!O$bxY0So((JWcYJbL^PM+y)0L|-Ak(wKwnv12jez`2A -z3?FjO=kL^g&eZ&6OM-ubMDCkEHZ$KfcVEPBGfr2>rg<@ct;Om6Z1aPR^O4#qDJbzo -z>M)x3i8ka3!S`eOvzz*#2xnuMU6rixaSX*jZf~|;j}YCOLt%jW?spEayUuRs~@9|aFVXR -z*_}Mx@e1K5tyS{!fsu|8D?VgO)7m>4bQ8N5*Ey3a{8C`(GI^Xw*|;@ened%Z=V4Ls -zQo0nAIzk0?rP+rK&BNpL<*2(VUQayo>kcdPMuoC2DpuJ{As%uC)S`~M6dlgmD#TLJ -zw*}~aDMp!@EZz}(&8{h=_oP~O@P|-=^lj=5_5RW@s!DFN -z#L^R$_Uvf6VIi{FhbmmsbTXKjPw{$)_P~mJA!OGf_AtgXfQE-bHf()MIuaV -zG(}3kb>7f_YJ)8dy4?y9>J)A!RaDM&!X9(YH5)P&S2%Q}>1@Ch=_eU4MIY-VT` -z%#quQ;u#mbIog#hlD?8a1GD~dbcb5-6(quSWlk<9;7(p0z+)Z`NtK30CH -zKBuz*SmWWOO(9emoMG9fTq^8p&gG{hyByB2o!zVLV--AjFN7kc->mIRrf29hBrG&@ -z_u@{0jXAQJf8p$jJv|I?UdTTwOqpTbn6Z{(z-UW;F6a;U+lmMeTHBxg9Ejo=#R%Dm -z3|wwe6|HVOck@ZXCLn%t0jnrOEl_n&AaDpj1CaBxEW=?C_h>HsX9JbmJfhR}q3_Z< -zsUb30IHT&)A~9E7EsS7kDW5&-h(z6(v=OiyT#E?b(Xz;8O?Q_Z<{RO=0M9|#N8O+g -zSkOdBGvz;4*T))7@Fnz&pu`2V^1Z{KE=`+h_?2I^6ia}`68mU7S28^pZp$0EU)~B+ -zTZA|HOWx^93W${aMA6of&|nLeg7)H%um8>dRx=a`NAsH)>O2F#HjEb1>uhg9C=V=T -zxn-jooro0dJFB!h6MP^7&Jk_njPoH**xT)zh~s*jGqA)zHn_|`Tx`_42npOI&G+1U -z8=Z3YM&3dvtbM8^yM!GRi)7|!i-Mc -zJX0z@Y^mzTW#lWYn^@>6u5!e|)y$4ifR`g8wt1#@d@IwumQL%6NWMm?TH*WB4|?0H -zQ|NUA6-!%hu1JL-%I8$I_wgET-&0QhitCE#Ey9YC$aMKg{%|w$zDZrl`ln0+|=a+J>a% -z*)+xF7*&H1Dh>Dut4wihLz4U#>Tg`G_o&Y5E}s3V$PdH*Lt1W-z`@A*Wxk<#h^809 -zIR9ZNu4UQkyJB&(hFc(ei)I)M -z$Vz&^P1rDZYaUb5ZGW3_t_b-2aM9Iy=?5l^?5Fn2BhC{iEaa|^p846c+0_lb@&{aE -z>_dU?-6+8B;#-SGEhmOgi;&a;_An@HGl^t2IcpY+ZqFKjSD_^WR{>NZ*iBO46xCOx -z<3qD&&$wf~*w~gP20g*dC1$`vi;6u88R`~YSF8I*rSBqzw0-?Rs1^{staM_%;b_)9BSn|uj;)xgr_ -zV#ss=xd~-(3k-QO%Mct8+apxW2ph`3!9R)nXAR1a^<=N96!gq@;CLg>bHn=iFh4wO -zLUJ43m0f|2codxcr};=`u(!9upYxVV;>)(6kk-j5NI@JsZ3IA#l<0oBpDolRY+7i_ -zPT2HbyKRxXuC?e?f0EF}ij>BZb6uRz&*v4WAE8Lbe!mTiRv) -zXlpd*m6RG2GISRb5BD;O@4 -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 -zkiuigF`#GR9<9+tjs%O6?`zbc{(2 -zRDi2Ld@H-sxa$R_OrgkUF*J!z -zeoKSgNLB5UJZkJklyhSbOowoY+>S8RuXFRw7-0+F!drw@e{KIgssM0Zg|%aj-85Y+ -z-?L0M#Bkg%!NyqX+PGEk-;cE*G!>?BIx+h@l(mR-@VCz=7;5Dzuk2te4J+6ARI9|N -z=}bnSYV1e*l=vO>2@9;TGYVc`%XfC5)ZKT&E0Q~dS05$?KhC!3&ufQByx!89bGV~x -z!U=6c2qG*GVsxEOT>f=DVyxiXzQE2u_7lHxD}_jW)e~Qi>DMSPNPNmTjP@#d;ixmg -ztT(|aW(WE;ZjIr$z<}&$>NdASi7ECt#i}z2;x|)Qc^$%s?O~2-5W-edVgnzM6p%mL -zQiCn=^?x#sL~JSLw^(yc4txg?R5eSjL&|bdVnB6p9!5zp!Vy1Jlh)PWg*7TbB~vfb -z+X>AWBdIh3y6VLbG9mZ~UxlD&18rs$r#-2?ZDcq)XW-_I25CePn$e85zd~~0v^{%A_dp4=V`4FNJoRu05=y+@48soEE -z6G@?0?P0{S3ZOg1bl**&u#Xm|R{=gi05-^|suYTMirU308RrF9swPx%4)|-cKuux? -zRUJ*Tk*ZuY(ft>|H+3+cH}&{7Payso>Do;7g;O!B@mz_i>nU6Du-fUF5r7oz&=w~= -zO`&rpn<*w>3JSAOS>-~G(BU-Hem`O23I#kctg-}W+7lOqj(+;nY%9Q`gajd+{Y{cq -zt3-*fuf?~z=G1B6%;6gx!78#c^xV8ac8x`{7XyR`Wc>wZL%xK#QkI3&i|;B>TT?f5mm0MLSh|-bY^A -zI~W_Z9Y``BvTKCis&V#mnab(l8+DrBfgw*^R_Bi(~908@5{q{Jcj- -zuY+6(L2!Jek)7UCJ){zZI^PN_j-oZX-bK9$ng{Zpn}_}VHimd)s+GU*vv%Wxg%4c1}9qYj1AFFne)~*B%T3 -zA{P{dNI*>tPO;I2#0@0iJ3cq; -z1`TLR@=U8uAk0v>L#4{O*3g60u-D8C)5^M-#Bz+cDMUrC+Gr*dg!bbX+9aF6Zco)p -z;O5Sk?42}n)y(iuvk7SMfZH_ -zUW#n94bgv}W;B-^(Sk#%diYDp;))8u-eUUdGhXvk+fJM~O_exFL!fZ5Q*R2b%;7&J -zF^IaH7=LvUNz`B{aAiAaW{Gu8fCfvDU-nM(J42I~gFlx|1fJ(4*iOA0&ARLL_J0Eb -z1luT|!zz}TY@+0B9mNKHHNn%XURC1*C%EcY1w6GpUYu#v${LtUzX{W`iJ>(uz?nvX -zRwd<@B3Q5H$}hN0(^zA$>m-^w;v=q+tl&gKxclUu(~)CX){jZ4w%_aG4j_|nDk})z -zmuG$d6kaeIAcQp|SopEsvpYRQt9ggIwe#S4CAN?7oN5t!bGZy%@wbeR3Aez9JYre+ -zp(pV6-u<4}3U}WGU;;iE0A@&L;YY1rO1-9Cb8>?QV1TF)fEwXfF`;*_xo{DR{20WV -zo9FYjZ~lBh6ABzn0Kv*~Ve?F1Qgb)Q2S|8`0|oB3iCP13<}UI6++a2#QW_clR)G1( -zjV1LM8cQQ1IDAx7h{Sv7Tu~o}@4|4W4?c6m%=F%lY83J{wNoIDWm&Ou`x5q}4|p#v -zGbiJS#Cv`si`VXwS60A#s)C8UbF7Iih4*W7`3h5zpiNHP_|?{nh!ZOXw$Y!#w^@cU -z3XSNCcTd6I+>~YJ(W#iAG+i*ZyI<8viBYWuda}ifol_Mt( -z3ad?Y#q%E1iEI0O`5{7O61|sr;f%wt%!z{kiD#N?TMIt9D!bUpOKLZNyA!E8{cQYD -zfPH>!kQ9o9RPM${Ei}u?v@2cEmX?fB&5|ml4OrvGyEoSt!ANB<<~lr-##twUPhbBj -zcw@YWeD-N6g@MoEl^6S;iV8lucxdi5x~M0m$fVbw$M45iaDfkjPwIl}Q(IP&4yC0{ -zed4k%^6nYBBni=Vz)#`K8gPXCgd=ux+(ecdz_PMjPui|>Wp(?5fWA}q;Y49e}^fQvVf$+&ux)NGauRtvx5#?3r -z6Rd+P@8$CCfwbK*aH>^{n7v&-ad~@5n3%M(5GlBAotC~l`D%tfVpcRX6<3MKR&9O~ -z>?<$@_Y@-mEP((7_2=Qm$n$iH5ZAr@VISJHEO_Nxl~7ll$c5iE%bL2Oe@kE$bBU_W -z%czsC5<+OO{xtKb41diY1ns(aLH|zyWo|a9krA1?crrJ1AF<%mc6s;z;jD3#~Q}Q3b))xE8g(yNAG@ -z-~$H~yes*6lC34Gc(&-lMuC!jf%a4YHv#O@)j}WAU|hc{L8$fRTr|mjaeGOTkN`+a -z?V~JTdl|os{*F+irr -z=u^Ac#?mw=vV$K$wJM4q*#!B9$cpG+jrBC`n9^K!{_tpTTbo4vTJSN~$bsZA%9N%p -zpYd?RVa5!gS~dGRjIVf;7(yJSB0Z;lB3V!=W+Gde!dHGUi}0|ijE=L<3EybpUEspo -zrep-AGP+ku>L2dH1j>f4Et~r3;c(0u^>(`X#yQ?CTD26^XvqnZ0xLxP<#4Y}TGlJ_g -z6~0~CE_-;T9lFc%vHhruvXLRr$MH$^UVWlEy8o2Xw4H!dmHmUr8~!$G{|-AGA;bc1wB -zci-9D?|IJso%1`-bMJlbKWyH2X4b^JW@gP=>$7HKprT5%`lRZG4n{^(vHRVdCL+=NSzs_3!?IZuA(ZLuYoh?~NVwBbfv(O6Tq6nHz6soJ1*G3Ey(beL -znoPC%3DT(K-Cl^6#P2U=oG<}PQw+w#o3t$K^zOJRJOKk>N4`xG(?&WnJ1mw*&yHaX -z{#)WVniO5B-Ygh6L^>65;6>V2lyTbf>*W5Y)V<(_H(9JGnp*y8m@Khe()~MdJjijb -zLijCw!%q#ShYY=v%gqWon$0XDqnKnfLJ;eZucJ4w%g-?OYz+m2SrxElUo&;l??>%Q -zO|7z~Qi_tf#xF57px -zGl_J37OkIGy55fv0UTipX}2<)L-qSF(*vFf?<28*)vjSni!}a;z=+%tGFb4yW6CDu -zjZ9^A6QhMUsVhtM-%Fpbo?<8CaScG3BE{95JNIlQaO+^Hrl_^Gb(Opfq5kp32^&}n -z*|Nuw4+wt=HI*p99^kgDbHfPxN6fDx3Ri(Uel70k_7jwci1D8X_iC=K?M9K!DiN~X -z2a6ORU-y|pW;9T@?dWZI9xOq%MIgpwEcffo_*$h!`wi{fSS;y@OgQVvBv0_h9c3#);_PfVo)K_om7GOp -zQL@YDcA7w~W9${^Xjyv$HdajL-0lND1D}AF;E~oL9(K7Nanmo-{4AGzPe0HG9709n -ze_5n62=k}^kP%@TN{1_(i_aEDVF2xI`#=op!AqjOh;S%%xZlA_DQH*uC4}pTYWUxb -zhfRS#1##l)qvfDpE>rE(MQ>(Ny|->U~;9eD@si(^r+sN}0s^frx5Y=r2(H -zf#5Z86PkJ_T4?P#BxLXIxM~aGRje%Sl<@St8WY=%bhP&sb9t!FL)!Z>Quv_V_X|jnEH_9G~ -z0~yAjb`9GT{`4*(%n^J)rn3n*gI4LUGKQ8;XFc(Sl<48UOFf#X7x68Pg$(-AY*GF< -zD=#Wj99eXBQ#=8dYM9sfgT6FkkU_B!+UQ`SC?8Q(_H&N{uvFMD+lB+dIEp&)s=w;u -z0v&NG<|gdxuwy2!=puy@>q(q7(9FRqHlo`OyBnU--VDO*tz556Fq|Gt2k-Noob -zEGyu4`)Gfnq>rnQxSN^)a0T{gI*v7-FZ}gGx=~A+!Ux4Hw0ED_L@P@c#0f?_U3xpr -z*ZFoLBvmB|356*piUEiYG+KO2ty(P7tS{Q1zdAKz#ckxIbhD~e3MxU8IbX`~uJ}{& -zIpAG5LWMe0a&%A45<%|%Oh_|M@MFN7fB=7qYRxBYcpmczydjt>pCB-wRsW=aZmah-Jub`is+PPkN}WK;)PEWhz1t -z!mr23V0#?(ka|PhDxJ2;`9B_-*A68C50X>p9Ud%V)~>W9-r{$8u_}-vJ=_<+@)8bNk)BE%HrQF1Ac#p+Vy30i6hvkV~U-i}kePgF|qV4{zeKQB(3tq74kl$2@ -znX86!JyutF?xB^%UM2?Axl+&hL>wYL~qThh>Bj$cKyD{G_P|eN^ -zKt8yz}$&NA89D -zSl!e>k^E%)dB*E0$O3=~-!`7schJm2J)9?wgB?5hCz7;fHF&QZFU~CrNq{~qe6o+x -z!X3$YWdm~8=4w7dz|YM&%@5Ahr)lfhnLfwgxKVfzT>%INNPMMF*v8J9OG -z_jKZWl}6ege3>>Bvmk7LUrzWv?EyWP9TluV3%4sAXP54(&WPY){dR>aVb~d~f#*a9 -znwO&WvbHTe#P&?1h3ns&cpXjE@bLL*ogQ(ili=W;BdBhq`Z)L?=ta$9$Xy)cvTa#A -z_VEbqRaXb4r;(@q`^ySe5=+2~cBk{%I^;8V1T=Q|LUKaOO`u1=NBB#@?ZS;EVwSS` -zi(qx#+WK6*FQ&YN|DmtALcdiF{dD8cW+)KF6~hOdEn?nl_YGp`3;jv*KktgWrI -z$@~j-6NiG-R5sp!iJ=z$P1aAZ8k1OBIgS+)!uV=kZRkx~G3_f9B7xdKIWuecAk}d5 -z2CN$4eRiiG{l@%oQ5!LZIk%^b!TL$TbhlJ=m6*I>e?$O9GZ#Z$o)}koQpLanodks8DPf$hq -zEdmSdL(cD&b(l$`2W0g<6tMGt)W4#RpzM2<;5pT0Y_|UxdCf~SaDWEx2X|TA3qn?) -z-PRT)wM~m8R$z1l=d#{c33)E!5BUrciPgTO?aFWFGXxe@-bh`w?dw@rHA=Jqo^n(f -z2~L|?5cYP!?)?BT%cV7}N54KC97`&?C5U-v7b-u$UuaCt5cs7`j>Ml3L4RQ(p3|_i -zD&aqik+SS4$|L5jnHM|Sm`7|K`)<~KWcaWaOn-Y?eWY-KIJ~>!_&i`5wl~p7;)meN -z4pXc)6&he$9{_Xxw!H7aAAcc*l?FECDIE1?k2Nfy(nU^aJJ~%NK^k}>snR^~2j}b( -zs=|ezxZ>!)WEYi$^fay&o!*K?N;BNavTmDFN2DLw9?^tFAZc=?LG2{pcy~L4=tNysQq#0)dS-XS-h%J+^a+Q{Bmk_xfQk$(&0Ga_)_d4(_#8HnMXg2-c -z-pOYd8!bFEi`)ciC}M(QIho@!Kq -zV>3&0#h`IrtmI&S$PsX#Hx2XJTlgd1uv%`@-(>nVci=JAm3U;uCY(1`>0298mUTpv -zM1Z3+^Nqw#pplAw*ZR_^1QW?Wc&$C^a|SAnpBpZDBUV4vo?qfz9&P^EIKtN_^>-OQ`utHN3lESz|lb~(faQbQu -zw@ge|&6;0#<4C8aP(#i}TiDM=g{M_+vP^60=?D-{@xu_gS8XYwhFn7}zmX8^5R?&q -zGjbP|2erwNa~xJzP1$jv_|8b3yQ^$>esfGC2dCakz$lXz_ZOV!8g8kddg?5+nM -zXfsG@Hm|pn9(^ehFICW~?Y{OHJq2W>`dZ)oF;L4LEa$25>Vd0vlA`^hhL*(zUB13F -zb3*Q{layLxg+iBS?CnXO6c=JYFwFafFj++0JTZx?1&TdU##HL@L}90eaPv2KmwW4P -zz<~+#bj3J*5M&eUF==r`bf?P>R5@Gmkh&>8EO_zb>0a6+aBK?F#`n$@NWuI7&});w -zgVQFAT=H9w^~Pn%_EnCj55El*TU64tdxJ{> -z;ay&aTpUhu4bmG|k6m%&O?dk2T2&Nj{n%3r1zI%p&We&$> -z5bT0<2C}JTsIIE12`5@XGt}6!%~MrXhY0Zh%Dq0Kw%4!A?oJ*flPBf&MFxwv;Y<)^ -z3Q&F&-cDhr@{oM7iB4E%{TtwJLZvIjex1g=8>#w8_|CW1OS|FdF|du8ytiCz-j%3c -z9^ex`%lHHC5E=0Vds>1%TaM$Qn*r6UO7^=C%Ubf+K<5g&7{4DJy^n*c^|u7a9b^g( -z*`{&oUGd@uC9*XcTUyVh4#c^QZ~V^byjuT;&&|Sj`i}(&Exg}4qMJ2szo-q)9sMW>+O}IrWP8Y^I5z4(?0+enqt~DXCyF+G=aaB4 -zDxd?m)qibR59Q&w+JkFq1k4M7i$7c6>r)(S{Cx`IGyqdjba9%a)<+W;?8H=CW!$8S6Lv3F@;+F{4!a;}MtR^S!2^;l-h8O$O-ER;e<& -zl?)X>DD)##u2Cht3zq2pB(nQt{`7TkW-vC6n0Q)uV3G9K+9-^I5<# -zOI;9dNp4>JDrflTdx2(xl-q@CGZeqQ2dHbth!CQiRh>#k0!}J7E3a_a(I^pAJE@4s -zgA#ys%~ysiF7EhOEvqACZV`1x1MG-=>N0TPMzSX2FQ?)@8QbpKv1UG&pmNop9B`0F -zDp@G}tA|BVpgF2aKg-^s7juZR{e{Y5$d{B}T=1y;9ZB+Tz{|(&l!*GzuooffJ=AsV -z8XaU`)0j`%|#V6Gz*9?TA9AR?iN!(QQCR^g}+OD&W&k -zvv50yw45ZVFGxIjy0Pe(C7P%v9AEm?nWc0lE&F(p1JfjNN|O<(8fufE>|@C#^71qJ -z!qbR*R#>y{dOH0DU{*OHvaj1zyy+NR_)7fqM|5ad;tuUf>O!p<92XX!%fkeCFo%h5ZeM{r&eQ -z82W!Bmcs2X2Zx`GG1sAce_ce5@aAUT!TzEKtccf~fMWXGOVED-&f+?9PsAewyol7v -zCz=6n{yxrvJCsmS%av9=f2d1OUQ9TLpF0$51hXRyFW12~-b~Zt&)|BXp*hre*yB -zM8>ujnlCE35sXo5gb_6uKo61;`AH~*Br~HJidqp7{)hlY#rRdgNTPm$k|f9NL#9Sr -z!``zr+XTK8QEy;${_~XS0V_zZVFArLyEHunT<<}>?}%HCKqH>4VK2anW!^vsYUB>u -ziHNn>5@>DYwPrB-^3yRCDi7Z007HD6c@w(lM$)xcn#=c9|zz6OM3X1 -z1jvIVa${9!=@BrvEfG2(+*k_Z8ulG@+=B0+Ur6);HhQp%tzd&X4;$1Aytykek7YoA -zsfW>n+{cBi^)mALPU!85ICDP7G0J~QCr@De*TiDj_(&QI0(R56mH2Qf=5a)(HG+55 -z6>cYLxrWU@irF0bza@|zqV)YZdj+(|fU&}GVSkZee_^Z^_9pW(bPt~!%46@&16DX{ -zZ0%rw@n3X-wjQF~fhsP=AfWYRnU|4!x5Pn2Gegf507nc#^PTvBMmJ=l9|sd{2l0X4 -zWYb*}gWi;G{r{I>Bn0c|H&{*2VBLKMtB(@aX&G3piLfzYC4tuc|GvP#p$vi5fCH<6 -z1y+LrtcJmVHAL!EflvJ3CVivW>_`VTEiipeNe;`VbU1#Q)h#o}IWu)5f$0JAeTheRJBwlWW@xNJ -z`4Ea%20ZU0wu0Kfv=n|Sh{-XDMP6~kzy{1AVJG?o0x59|`Ersk3VZaYTk}81T;?`) -z93usM+mI=&jiu)b|pB`f-h|=Nn#|jH98E>enI{8KxPs>N)`GLNWr{ -z^Fuk~S?o>o%f?-7SaBtYYtiy)$%GIrIr#7TB%8*)jVJGGGFY-vbu6vX)y}=26{@FC -z5Y*`kns2W$w{^gPX5cjuIFUeKkVzv6yLNDU?Ji9-n#%l2#Y1x=zDi_^M?Pgjt`5;4C|jrCZDK!0 -zrU?*nf$Zv$ZfutI{!(|6$CeNzAI*~Z<}fwtdXdn6lhhypCFL&XbZ@d}qI)n{1S7pS -zX!^R@f7jqGT{bbswu0Hqi;EhbUi#|aWxca;as9%s=4+UWF9J`g!y?W7v}X0>W;9Yw -zZX1Cj6-wTcjHv8r*l4AP&-(&j%{WJtfSVhEtgrm- -zL@jJIXx^&tnM^e0PTGZB1|)(@V}mSa_v!Pv?dHU{I$$oLy%INTwPCpSRjh#_F_`sv -zI&U#}q#8fP9{kPv7MtZk@*9J!dD>vuHO@5kLEGG|pwv+HP7FdJ=Ca{l7F%n$aJs2& -zw|ddBfd?VWq+b51OLgkBV1cxQo=MF#+TZz>;lQZSH(_^WP%c@AUnk>H>1T50d@EzV -zN+WLdN5xY%59$Yu3IhQvRN@+0#xF#d&&{IwM(PVuvR;Tjd!jw}Wv(Y(CbXQ%QAR%m -z)QZn}cyu6~f=6lbJd=8c{}3C0hlgi~NkShG?WkUgcXLVp9ML18FP}$!PQ`_;{x~p1 -z1j*hdRBOmOOpuf;QjkD=r_QF=m8{Ts9pS -z7KfWw&L<{-H)0f*{LB}=&tn~2KsregBdK$S26tm@lRv}Kx}RA(=8w%7cE7^{Gm^$0 -ze_&a}up9o`G+Gaqo)_I({q8@BXXe_K;kNW(4k+$SlP=5Wxw`!iDon@r`L>?_dCC*x -zJK*ewRn5 -zXMA}l-j@D@<+HB7Fw0+0VRdmT9*JzeB&Y;a_pTza;%IzDNs -zI8+^$?FT~(y8Zqx@BkI5wr^sMEd5eWk2zv%Uv;~N0o-Q;O?Iu?GKM-pPwIy(l{Kms -zD#S??%=f4)JMl&yUnEzey4tZX=cYWXLr(oylz=zv&1BDE?F;2rrpD)?VaZR7$W|*D -zB6=VNHIreN%XeZ9h=-}ncFEQNA_#qnw*NLgWoL4)8<<3BY$jBv|7iG$`OlUBWa?Lt -zOwahXIG91hyz)$;lK$C)8kbWLfDT5Qn3jYQM05k@2YIfEsizHW3C?x%cCiFK6bfg9 -z)L!%u0BKdU@Xc9f%20FSPn~{Y`{u?8l2&R(^Q!|*Y1yfgJWf}7kC(Af^sGcRVq%bS -zQ2^DDH1BcnlD-cvkiJ1-&ygV!sW|)HFVkTb&4R6eZ{ -z`d|*T2G+XmIb5HjLMx4;KS2HC{E!b~H3MF3rH;~vTM#XsSUN?4CKe;a@Axc0fsLAQ -z^5LM(QPnnw&sc-+H%fH?PBBWqZJoQ_g0X{W7MLwtBP1%m^3Qo}QrlC2r%M_3{2$^T -zM@eS#YXNA~@69%Q44BObJMDLNhx7ZftYM9LLQe@5ph+cF?Ha8bZ>TcWp<+Mk&fM3z -z!9ZTtzCjOgYEUSyHHn%6Y6)ynm!eN?Ctv_x?37GCD_QPHiyY1|i?MBiT2Qm7mYiM2HsDp&y -zlK1dC?}Cf45?+ed?@7be3o)?i*YtEQc~ -z^-}cR!F<`1aY}o~DbsUsSc!bzS2os-*2L2R0%cr@BI3kcw3)P`nE)3s@KFRy?AwOE -zFVcmw+cZ$w15W$;yzjVPw|38NGy=zR7p(f4NI(rWFvfA?6IqtIu!V$DiE9spO3{Mn -zLFG=m_~Ll+GbRidcWkY%0ju|>4~X9SU|{$G)Fr1;S6-@m+{BzY^Tl8gIN^Nr%)y2e%L3+&GVH?#0AA#YT_m~ -z1V5kGL8r+mCn9~GK&gCFqz=S5nLaG+&i+-MQ631V@6{UCZUq^&aOpHB`4^(()4n{pa_6Bz`X0PqqIh~)pq -zPq~h`W%D^B{{eJ1lFy{0P0{?D%K$o@A$I_+Bb_cP{Wa*qcF=joMDr?cZ?Sx31ay)4 -zTDpY`%>T#1W?GTqZW}(&dg~_xz}cD3B+-@L5j4BUUX7zRC_+54^lAAT2t%QeO-K5G!gxMLU#LefmBne_Z6gL?=ysy3Xgx~M -zk+&0FeDHDW9O6NT@!}|E%BLB)dLSHRQsa&5L9k9(EHFpHBPcqKD9xbFBGnq1Q9YB7P4T=05l_FBw0AD;`03vcVm$M=z3G~38d -zjbIU$qEV!x_%V+patZr4<&x97?zihwC3-~+sl8%yD11a7kbnYg-iPiw(mt_e9vGgY -zU-zNU5lFEMTt`EM<{Fh8jedjSKFrGHyniMbt08m%^ATb_5RRcRmTpY$$&HjHask|82d*37^@B`2uI;5y%i$F)(7^8>`VRlZ#5D!P;Us8mJ$D-j-<(Hv9^zSB|LQL_kdkFsSrw1~l_%c -z(lCRV09zN%(cUl2jC_PeU-{K*w&bSG=#-Lq$=buXlkH;C;-Ei})37xL=3&H6ug)r; -zCpFRP)rl|kD_|<}vdu9(rar9k>4HAz;8N}K3jN*5zJFW$6GTx_Aek6**3$eHatnyr -zl_-yF_V<3F9z$#UxcuQhR7w?F@kKpYy|END*TSs}l^lDS_)rxiu4mF6yn79gcdYjt -z;}^_1kL3V!3bE&ZvVU%QBD(2av;*bOn4s8w0c8h;La=t_#H*(wd<@;#KQRP0GiDp6 -z3BD=ZcLo`M53hSp#)uzrVDX`;un -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 -zB|c@fpD}+77;_4zFh6iwA!XwT_ -zxruBop+%|uqk>GAm@LlhGfg#-x!;-Y^+N9>9|r-=29=%m(VCeb+Q4mR3;%5t5~RPPdbuDPc&1AVhD@7;VbQ%_dNY1i5|>f0=ppsFwnnm{~T} -zn)PfotvUdjCE@yLSRRB@HR5J$=%on4Qiw6cmvM-ugMh(0nKDgBt0`Bsz>E&$TSW!KxJ}Tm+fSDip -zSGQsvYi7=0MNgi>`@(X#%u>@>mOx3i_HuIJ{Li1rK^dg0E=%Sx+5h#&mwXlGmE;j^ -zZO058IR5KT7I9Xxkr&L5>c1(C^^fHL{?n-(Eeb3lAzA;YpU5}4h2OwDu8A+ifKFJw -z!uO!V`oRUX(ADL?Chh?T8=%l-QXzo6f&EfIXK|PEcQ9#su#{9l=wVU~X_aSSa)3<# -z9~0f62z;Q-~xvM}J^iDrW$sfQ{dLeme -zU>u@oWC?&-i(Dxg1fXq|%;mHPXS4sDk~)=P2cduh*g@!}(!YaH?!S|o^uNPcJnVSY -z+Dj+F)CUK2eo${TQdpL*L*U&;*7_PK{eZ=+1D2!*ZBitNR4fgpd?^#uTp;ej1YDPZ -z_nIHf$qhqG0d^K^$i$`g(s@1@ZU#aL19v1@s8^gV%*U=&5K>(+_(Nc%+u}pnuC+oE(F;grdKCrZi={$)}5CdB6Hx@@E! -z3IeT9`16%?mkI5m$i9h$hI~>e{yPK0e|5Bfcq@s63)~np1l~*TsXwL-`aZa#6GL0{ -z)=Hh$4{5QE9)!hULOnLKO-Ao5*zC%fV58`%43&l7dzsH!%WkM<+yY0AvQQotZ&#$O -zX5!*Fa*F0{0w*6UYui?jOJEwiS08mP82N~cSpK6LJc{oi%}N^0?w}g{7K%5xdQ2^= -z_iNF0+oo9qxQ3=mm2jMKOfE%0cSNzxJBB*(C8o*7r9~cy$`FJx8Y!a?BzBU{!5zK8 -zVtE5@*iaDSlIi&HG$Q5lg_z+ -znl_$_%a}-()TwPTd#>5bya#neRXG?|GyC`O^;uw=ZLL$OgqxQ?gW@?UjQ7HP0>wpN -zi~IRSeQ#bcLf{Z!qu4_9iue@NE{GQ|+owAAL2-#M-5j -z)9$On!H! -zFZ|p9I`HjEJ{cU3)LUR3b|OT}nNtwS_OnHjZUao=BOmPFX>jL!)=V -zF2DU#k1M_geqL?bSL@BTP852sD%%cwB6l((b3_&;GggAba`O}>$}&_xk}xa2^t9BF -zYmVa))u>Hw3`4@R*^-+x5Wh5sJu)@?KksimndAUsuf)!vBGmA`2vgjIXp#T={)8gA -zXEWw)6tYLH(lX;jZZshfp+G~5HQr?Wpo1J`6J>U95qZH%nJs$u!UHs- -zzjo(VC@lVFb>&%yCwLasus5mpiu5|f;9{7adiA1QRmlKE*qnVoDQywlN$9NnI8p9B -z)VrSF5@3Q!r5s_jm6qTB?^`f`-El$ozNw;K`XOrs2#SrSjR2VEQM09aN -zi%Fj^tzDzxm((|)3n_MkRc8Z?>9njTV~gO{0k^8?zZ++deZ$c-!e;lT!xTr%E!BpM -z@@qNNWf?j|D=jXKk=HHpzC)3+(RCbu9Z+54v&y%+uSP()n;voQ-hnlDi}tN&jJrc; -zut$iu>;u|X0LWdOa36Y&>MbjZgo?injfj!f19x>Acr@s5oc(SDe9$-GF(C} -zwDUVZhUgb4ggqc_ZM|uj5#80iOeW{Df$bPa*97fk^CtuK@aUR%CqJ`JXzajBGosDR -z($&Xf{pzS{cC>yfgE$8mHFJ2Q2gP!l%fw&>xCjXfl$XQ9{E^U)PnpjcyQWX$v=PYu -z6u(7-C;r_GXLRajrRiF -z-{M$HX!*l!3}#vXwTR1X`)`ApiRKMy@@SDbGz=DFe1dE^#~8u)8QSCy@q;-i&%5>} -z(m12xVar-yBvT@_j8*w(ZQJ!GIydkl5k-cdlXf=>EIH<#p4v?R*^Wl+(RH>FPZnRx -zDm60b+s)!hIBxNH_+;t^f?hpl8M8oMFZ=Sy-}nqp-2}lfDq#ooRF;c{Ai~+Hj;NPt -z`$%BT%i-@BU==RsTrSzpHs@GQ-q+a4yj`szI@D$ThFUVh9Wjyp*97CK2&GE?nT^o- -zEqr#l=^ZXzX()$r^$v7qId5V=b>ykzrLM_Z+xt`dJ1~g0UlNUad71$9TeiX=NC4eP -zPJ7=mqr#1WAHW5S20L{c_hL$1gDk4ExSh%5;p8QNo -zh&rL1Y!44I=Kw$j@N!t1hZZfmz;mWpgL=NMMNKEQ6^2NS68`>#W6l(BDEum&rKJih -zh{5A=a1kHCszwQ)nT?*KMEqIQ+jd*1;W|>}o$h#mZd&r9PW}YH>)2{`UmH4dFjx|S -zZ3@3o=ezR{E=c`1aijt1 -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 -zzH`YgImVu;-U@MN6lAQ)Wax -zyOJrOX^3tRmw@ovM9%Y$6@oiVs8aN)^TH@|!u1xOqiM#TauU?m;sOAUkl@V^eO9iy -z6YgGURpDrbQwl$XEFoat@+>6p*2lMY6WV@x0kk6tUUDkhg0%EfjuzanP1RW)D;7n< -zo;k#@ygJy5nOz_nnmk`Sd>7B6oRiF($j84sB;x4b>JFYyP -z5%rG?TGT9Ktq&|1>KY^dahER9Y=s|+dqNIx>3O{aP0=1=8`K~0maEiZuU -z7SwT*9)kJ#Z>!AaYNq8w=L^kETfZ3E(R`amv`;s%fDb91DEYLS#Q@G9 -z6)_T0Z^6G8!Vrw}Mfa-cSgNn9Zk^lo4CB2Qe1u4?wu4tSFW3|5dGMU%ZOMCL*Inoh -zmPUBDq({IK?eG;S=q(r2Rm+cuF}8b{$b#a*0C!}Cm^$>ROI=se3F%jv&<8&r8VTxq -zA&Bso#>6bj-RhUd|3(Mdd@nv(@%xlQZ}d{dNqCiv`+NnXk@ti8sl3`y>hVdcC>lfSSRNpkKSHJyD -z$2ArBtps85P=shi_aB;C>yHnD4Eagk*l@b2@PY#m&`steBr5}UxKw6FBvs#;>$YZH -zH?i&)#j^cJo{()y4z9Y>NY8RDZW+mlj~V=PRsOp+{u=+1D4wnL4`04iY(`$F;{1yVp**&Y>Q8ob9bI=*~{2V`n)~wA}wUlOwbkClVm<`-WCky?NH{YLf -z4%Ne|D`+{npBgU_S|=B;eFghq+t_&{@h}T#a?uiTP>W*8j)coflg4QN{{;a-BNTm5bx$kiRf8tWeWUk9ct4x -zk)jIAjTzGu-b%#}{X&=5mc}P1eQdu++`4-5rFce$ArF%J-O=HqPdB}3@^t)oZiAQ0 -z6yuVcS#v%a^^KOH;GQR|$jXZuJk1Wm6s -z!onUE=O=uSX$__2*ULL0YMI;H$k&Lu(y1Tn-3*`K>I?9%<8Wbbk&Zar)=Q_Nyq@_r -z!B{PZkg)kTwc6hxe@%KT>~UMr=ADktRlST#)uqWFf0tl@R0-Z}dyNh53|B}=qrFxT -z9(2LQuEkMMK-U!)ditq$o}?kE^4z(JOkM<-)x;0{NIa0#zMx7f>ZZ7nO-Rxs*3}

(9G9*#;*0VUG8v@$<&~2JSue1_<~(!=JIM_|Uo$+h=|eIv)*@VgJ&4M#hk` -z68IU8dK~GGZw_P|L~&;0=}4%x`3KMjBigyE`%*kqa`_%i>Mm#(?V`pCSQsjYw?kjk -z_{|;83~0c)>vHkJ`evt}(HHAAGtEs=Y%^Kju{OG-p)WlER_>T8Rs}4(A6gXOW}SRQ -zzLJmH!^FYfUQn?%hr=C>d0A);77#9B233bF!dGvOxi`D@sbLm904B3s!8~UsVeadq -zj6PsZRgA(vr0%P;+yR3g@H$FOJmt-p+>r3zRzm`yjI_b~SD&ZI}8Cc$B-{yw2t+ -zqCBS?#Df_Y0Mflb{D`ZGellOFNo#x$VeIX;Esdy`b5T*aGH~g7gxsGg@@Dr%(Y;X- -zAd~&vzrCk>Lt(FZpcSY^JyrNOmonX?l3cS*0aptHLq@9#GKGQ)@Q4u8AAwtBI{dcoV6(X#l1x)dllTxkucA}wGcoO1Y4ND -zwd;%bZxg(4&5zILZ-ZM)^XnVaiGKd|y_W<61i`d1H@909%YE!}G9SxdDRt%$a5LCZ -zT~Gyj!ri<+84oM|eqkxUv#Q&R$Q^J?7BYB#GkAwU|K_2e2dT1mrjGl*2#RbYcsOeL -z3ye2-`BHokm8MlRlFWdQQ4RdzzL#klgrd2EmnQ+0pDnj$T3ZSLQnK8qPE0U>5v+$e -z02_!-44Mc{38OMoSjKiHVRduj1kPGoD+c*>=`AcH?B3HhEM?rCz^k{DP(4W@c%$L( -zwbGk|13O#c`((N86*JTul??8Qwa|SkO9|#JX*9Z#g#g|=z)Z;TE5SIo;+LO>fKalW -z&7kpj(76%&KneKcEfTT1L?D$!12NqnQaog-UPC9P>Hg@-ATV1;8)45htG+(2h9_9^ -zE}_=)IzJ1``!b`;T+h@N>JY~8Pj-J?1Kb+|R5{Ie-^4G*4QIGj%CA|x_e1hCMzoV!!(;g{{{@W6K&3I -zpVX{8_P~X;5mdBkmx8l@Q+;{8HwVr@&WYOSMX6@`h3$6las-%dzoN3|5F8Pxe931f -zS2YFbi69Sdt&$whbWQ@p{=G1boCLc4(*r>vwyai4m%1d9U6($}n70FQD)^G!bJmk~ -z$oaF-7QwMdSRB%E9g;~b6H#L_XrqX-)Y}i*{qIt(TSCPA4LG7uNo@(z3d5$SP -z_EPg&ZNILg;R43~K#TNY*LxX}*74-mCfmVi{1$(2i{i1`f;Hr~P8|G-Q`t9)hH-|A -zRYy4=VkEXd|0z@!0U4n07JkcPOHeaD}e|$Rj`4;4N|zzgjRFyMsVuca0tw0;7d0nbyBlt7q$QwVXsE -z?28$G_Ahc45I=0$L8&}HF!Rk*vm5pImg4GH_KaP78@cVcDsX9-P81s9pK-3f#`_gJ -zlmr1k#j(gUmn6jkCQ*oqqOj2*vcjSO!o}@o!!UH}V~XMV9|d -zSb8a}cB4ECPm}zbdy`?4_6k*xF-|xxt1@o(y?Y0hA`fwI2vMJ!KZ)%TADv9baN1Yp -zqZUv3I#^`&F9vz9D9jq+^~*Ls`n -zf8-J0%#pm+-SthtJ%BTwEy$uiM2K0=6=J7x|zOvN|p>aql{}aP`1U -zZudgajXoYL<$uCq)k+cjiW&alUo{k+><{D!krMkY!A)P{eWf*V{PYa~>cy&1p -zTuc?t*)GwG0V=L>BZHU%0d^xJ^=V$p3FJ-bzEi5bevdYp`qaWe_SBuDz&LSZ}gaw -z&deQ_*>aO}-Z%7qPM^np0(cL?D^sy(q0MU5su%BItrM>7YbdDD)+h)celMX3wT7IX -zju8FK>Mp$c%fbG>H#@3~A=bqLRe4|7tQ(RP_y!$hQHiLvjy58o@GoqwoLkS!6Nt95 -z9of0sBdH`NGMIM7ax!U&QMSOp2Xg`>UjaEUuji3k@pJ;+M}%v3CU`#u0*eLhl)<)Nx)wEWqi*cd0OEVZ0Kbc -zimXn!c4p|RJz*%diy1^U10(*oKD(%s%!{=0-}rkB@MWoYuJ-WV;R0DqG_hALN?q3vYi>80^r9$_rM-s{m0 -z;<#llQxUa%((n6}YQdfv#P@-(U;*+%p|6Yeyi%c-u!W7`^M#z%IWnX&?}W8j{hAYp -zPk_DoB*9tSL@Ga9nS#d9mj?XCkr=+0kk2`{DiW{mJFcaic_L$si1R#F=XCAsS+^pY -z&(H;vwX%rX?s*J=t9nZ5SQF&DIpOAq1ep(_g^f2-xo6N(Ln2P{DT!(Rolvd09s$fu -z4ua+q?V&lX9KTS)JkG>yRsyD`vkq*Va6S~wYtY{Abm;8|+wR?HHC{!d68bOny)T*M -z$=nDnW)7HHSDFZWNJ0T0?jgQ#pA5W@Qdix6ZXcDo_gIBGt0jYiGumKFg|qyd9Q8{% -z4flR`!-`;JB;yE$vk+ds=v*wvyQ3L@*fBucF>}C(sb7K(BR8o39|HxT_x1O73tmCu -z7GG`*F3(%q5sIi{2_W+qKyQc`l_a?64OYcS8$tJdFj1!RPsO;qp?Zn=?>`euXF11p -z{(R7@ggQ5M0Vk1*f%9rYxw!b(8$I{gTY!k@d!c#7Pt?I-^72YvYm3d=KMr%^J1UIM -z;w}wkQuVud2LAYxev9YN7lHu6C+7F+zW@a>JUGIdn|LYP#!FUWMCF=9KsT9Cu#gn9 -z50{35Zht}+>@tc6wLcO9xHNziwd4f{&YMBcr-NSOM1Ypqz>?3SBc9v~v3tR^B&0`4 -z$(b^B6Y7DSBPegp-uN{W9}fTi*Qx{jHycS7C&i#d_vU)Z3Rf<$IvXrYyuJUi=I&ma -z7FdGB4HKhtEcj6%-C@bWY6>RRwkv6d1o>FB>uAh%Ded>He;@#zu0~T!LRRh<)h@s$ -z$#iA8PKV1zBb((CqJD4gp;NvQzJ$)l{hj9^c&5s+{0{`L&hX)r@?z6OhP`R)`nyppwO*)qgh{UXC~B -zcSX;9^{MDl0_ctjSWyA3rt)toIA6OdMknLW{Y>@5ahfnMDF=&@_TuKpff&XTjgcQF -zZ3wivEP$J%-&W^`Y=T!&Bk#Hef-7CAToOBt5&>C%T<9~-$~jwUs&=V&uP|Xk(h;M> -zdV_CO{p1$?x|X~V-dXlv8Srs_qhaR+O=uDDC6F8_>C}|i02c#?Zi?B-wPKO-j-~8r -zh;T3&RCUNq_&j6S@5guBVpGWxF}FI~+Riz|EgK2Z7EahXk;UK3j#H3nx?l-||5c5? -z)QutPE`!#qM?6o8?ow<`hjd1J9U+t6_wNFjM -z6h2ZgF|jXKQ`mi=2T_I7e1GK#Ni-kw|Hx4`V5p=OPBnw7E`#8vAVA&k9K*o@?Sx}g -zjES*&k2#`xcHL1!@nyp!tqSif?lUrg<6OtJP63)Y}@E%@$WDv8*;2PG5$@7**6prF&_Fj7K>=i^_H@4ITmVvN9T=!zyokB -z-y5XlBcATjEu+#G$9Xk65n`x@c!vCoADN{lWb)l}nszPy34mM04``6-)VfGa)BPp$ -zwACApV1MNt&Dms6hB@l@70|Qjgz>F_dAh|Tc+7Xq-#)VLFPT8J;K=hkRpRKE7E=pv -z;KltYUJpSq+vxlJmTlT*1Iw*30_)Ha_0@3p^PDGJ@rcVh25%Y%4OUxx;oPEA1FczH -zeiD2!nl@jLBK9r*eMZs$Cw1jb!x1Qp5}u(-!T4OhD*E1ePQDy-i;RJuC9DitteKm!Pse$2Ws>~o -zJMNDxK+d-NFics&{(|9;&`(*>2xgf9&c^OuIW^vrgs~8{;L*TtQL0~W -zXA~*5R6(*Y`I8=yX~r{H_p+EdFsfj@%aF@zeHs%Yu0!(+DRos#8lA=qv_2yQT(S|O -z6tDmOsLoSrhCt}COGQ?2{%Ci&m(A*P5}Ee>QTxTmuvf9g!k- -zZ?UimuR^ks#jr_>MlEv|XP_j9X1hF?7K(TM$hG6@0?2VBKryrD)tB|*DlK6HZY=@Z -z_~9qejuBff5m~`Jt$(0!YS?-`-7zsOZV~r+ponX1hxB+;9chej9)E=^?t)%BRMo4U -zX`d4oo%nXQ)vjV~JD(3L&}($V_RH8Bf1L0gd_EQ3-b?<3q%K(g98ywSq!kFFwu_F!dTyCv1ZEnmYtz?{!{uj -zJPIoZ$9-mRv%>GFY0KORCJ2dwwK~UAk%Rq$#aLHl$05yZQCpdS6^XAe -z!3XT?F;m$8-EpI~8P4}1@!FTkPadzC(EeUhT%GkRm*-Q9A9xq&N+Y_4mVT7F`p~u< -zFclM_b<%41?qPWX8F=)$TW{gJ;P>x(2}Tm~gC5ADEMKVDbk!v;%6!tze?gHTK~L|$ -z1+Y41$jQwbIHeEebxWw=;I*0fT|o0P=MZTKgie`n!VG{H1H2j7q-y4} -z+NZForfzeyfTa+iDS?W@nWN21Gwb`FZ{!xRmgOFG2Y8HyS@Lk01 -z#QRa8j`^m{Hyelih$s2Z0dh??qGXxS^+^~TW}OO?`z`hxE`_46{8Z>-RH0mDK4+v> -z*wo?P8uVNQ=b~H}57H$C;CyL~v3Eqa;}ZH1b>)v#J8h@f&)-hY7QSl;!I$$5ae}oO -zsJiylm)DGzFaNjf -z$1Bl9qE!ul3t+oiF2kuh>g_dK$S4w8ng^rJhD=&F^%vD@uFqvN{l~9iysU_lJLnk%QACXbG!>?lSRS@8{Fke^}-rF|s -z_{Lny`{o*cYg~Of6E(Nw&6{!w*CguD?&T@INdhk&mBzSt -zUdwakSB0@&Vs$0r=+3=LduRb8|9P6Q>?zOtugyU?C9l`#8e7E@{r&TEr(xhNn(`t} -z`D2=S$LNGUtWQJHL+4)z4_HBO0^j^?2zx3dkZhyV&7;_O8FCK)r1}|=Z2e0LeWT2g -z26eh0Y!}2`K`{WsZa^Dm9RY0pF?rrmuPhMRW6i08ZWfO`)}C{P&K4X-e|yXYx&)Tc -zyM9Dk%2YotuR2|lPn=`ohagkuB(jZFH>@L)zdcecobhY682R)HKvH?Wh@qy^FjQy7p -zdK5!4e887lgs>CeWr!CPzrXh5$#7_HJSmYt?Ii8*#~)t9aqLL+Vsok573$I;#P8jr -zl`k~&N^AdITzpP??lAS&VHvI^@N&Xxe@Lo6R$rh{gkc>TJJ^VBx=1=J{|K)gxa0(C -z0o3}Ti=dyCuaR#(8`Dyc(8O;@RM_~h{S`B>}gYdfm?yvHMQ -z%g9Nmt7Db>N;_P6sDp0@-0572jh7R@9U@=0+!K;FLPAJl?y8FVC%*hXf1R!;)DIrA -z>RktEp&l$b!0MM5g@M_LB*kCb&%4(e-G}Q-k%G0!dM?7H7@i)MTsra!03=G`gm5(d -zQsg_fGO%u_$9tvFytyA;A|B3na0y(Rxlb#7sw6^D406(2pU;}QGPqW$zo{#XS4vMu -zV|^_1_qb^(HQboAuwxcAL>o0!i)JJ(>rq^Lp~C3VlPgTq=Do$33MB8JurKoG1Bo*q -z95n5ct8kMPw{)%XrK2N7t|j3F=dGgF+d)ESedNFNFqN;35Q|+U|26w_39Z9HmAWyi -zn~HnB7=Q|{zYH-u+G{P@QJ0<7h(zz}cZSi<+@(Lg!LrwF*u9(M}A2zQuTY-lpAr-XSJ!viv -z>hR9Gjs&k$y;L+elNj*k{wV=ab^xYq(HDN}ADQ;;DZ>&R7l15vZN}x+a-k$~+A)l* -z(~r2;&|RvnolDf*?(ARxYI?BQ%HeJ7+TlGH1yF;D(w4^*ltIZ^0(-p$tCX)j(Z66} -z`M$>bT?WYPpNpdY0wD$a>~NU)p3oEL20mO$;Hm0-I+AA6Rj5#V$BLYiL^7J?PDSk>272V -zvfKw&VjzfBG@{ns#I|Sg`st9Gdr1It&ezJ2soPNSs#U9X^M}|>eBHwL3eS_sNQc26 -z!Zxq@a4v_%@)F+(j#(sZHkHiavMiEWFjzu1Jsc~Dq|}>)O&+g25N{crpo}HZpynUN -z8iFrG52QD6+5}hs9k&ixH|DYe0O@*&bYNfG+kuz9{LDV35d$5z-ji)TrgmdC>+?^W -zO)#k6q(Hzhkhu5x+6r;dGPQIuDH~frePjM+wq3{kwLygIWht_?K{Wm^YEFXL)6Fi~ -zA}5VF#l%11Pl5E3rl60ZhKVm|V{-qhmc9C(3$1{Iws@`MWmkJ0{d$Lsv|(N^8uARp -zDij8>VKX-STN4CV`9NkQ`X(Xq?`f*$1fvp7={z{h>m+j^tzEAklmU=k?!N%wRye#@ -zYPZk6%AHpJ-fub3b{{Zm0)Bz$=l-xmVO5gf&MKirTn0rj80VnuhqFv@3{p=hHNgCD2ZgA8Fqh;XE6+O|1m{5Sc2rg38B#|ff91N4># -zgOZL1#TjJA*x&o?32YvokC?qBCUuDZu!H>IpM@u1b(TpWZJa?nXQ(($pJ?zKn^IcK -zA2_Y3_l1P{xApRV2KMr6uS*)0aDl7f*7@gRSE!TtOCDp5Zt%bs_Le-u^)2UqG@xU?m -zLyzvbmR1F;uJPUfRZ}uC+rR!Cu>^lDY$R!^TJg)TfaUDVsa0*apAnC#Hn})TtnO8- -ziGx~HVnE4yj}3dIB^ -z7A?P18d6foc~DVc5ln|Z_U0R_Ot2G$=vO;8K{55iJ00F6 -z+f5;>^U809onvA_5w7}r^0Y-eS7e&GR~ORkjv|9So3~ic_tqw1%?lf~5;q1X~)+4E2#(ZwOPIp*-m8oY?5+8J9Owa;jXe7>m -z7u~2Vd|`ojmlw;9kC)E!eapa%YCEAsVN;^ph&@_69zxZ@Q-xFgl;H=g0n-72PKc*P -zdcP7_6S;J!z~UQwohCy5TDaYXszMzWdxJ2hnwSSb5`Z=%G+>?W63 -zL`sTH!rrMsP9?!8>Fb+52wS^fVA+hePV$IVH7OU(o?`$t^-tKNmY#!q7nTM}%CekU -z`?X1q022pEV(S)?3jtVW2B1V(<0~ILd2&1T?;5O_VSZXRHW&Pq70xFSe{yRS>hn@- -z=Bn%y;|}q+jqrT5I1>fUZpBSmpvn>!J-I>Co+ch*q4}8vyR;kcWn=BGRVHO^)DTU) -zp)^!|rt}5YM=VfB8ZetUN`n8T84?({#-M9HP2fT(+KFG%*yJVhy=S6P4YnMS -zhFE-d(ozv9Y53`})yi~3u*m6WqBosMbg`M2Q`V@oy%Y@RUf9UnQa -zrMHNQ;f)QEoxuJY$anqw6t1tcK2@0CFDo(@_a(?Nm$M4X0~gSVFYR?R)bYx`{%lzC -zFq(Y>FE|=GK>0^n-EYEa%HO3>sBLD=QOQ5Thyu8wbFFQ#cDPLejFxAl?DNmjUTxdzQuk3l)XOHlYC~iN}9<-nRhKt5nL+EgyrGO;uG6E+{+ -zAfif1hRZzC3R&Rcj7cO0kQyEJ1{Xc(S)8{)zxCb5rD}Kr#oFf@2?@B(5|psBNQ%Nh -z(`2%5w^iqW<;N?Va%JS*Kn;mQSWh469BXgoMwQjav@&>L8iuECeImsqU>fsHT^1x^ -zr;ns=d2oNCtwu|TAfUeOsK1uED&v@F=Fsc<+iA9$G0}y?5;`^c$pqAan+1X`Uvw

fNMMh4M|d!-prNP0oh?SyEzBZ|nnBihhlC}jY>T#@m5PZyyhO?)ARXo;Tj -zt_rC|uoQBmd~!&2;U`Ol3g9bvZT(eSO00quAYyfs9)rBWP9uuSEHCd7d^9C -z@oR^Gm3svguNqtdaYI1`g< -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 -zcp$p!;>D3jt`zQf|5XauuE~;HUawawgkdRHb0 -zP*K{hWw(S+tVqu{E?#39^P(OQwGAw{`@^$lAHkxv1?pv=Nc7ohhN-sH4L%iAvjreS -zsk;7rhqFkvklQr^i}gsK=Fhr9g7e{7*8oNbr>;!P9Iy2LqGM!ASRW7?L&E0kbSCzv -z|B_a$dkN&T{kHj}1~-w}&GSOX2!5M4cjrzv7ID(3lhG-6)LdQ~dXj>LZ8}FuT0Efq -zxK5j~>?a>@pw5CE=4g-AKXn^o&1?4q;q|g2n4y@WlY-lw*m5 -zB~9n<&hqA^qE{|Jkr;V22Ij#(s8cmzA2{oJB(ce}S+Ke6>r@dzvvX&!PV -zrf_(%4=KRr01g3dgsFnQ?8LjzY#X^eDn$V`zi{su9(E)u`61)s5WjcYIs9@8mVbe}dHM`%L+>IBbwMSLC#V%Xh?WrCj%F#9YY -zPUC0+9QM*R**|3&XtDBsH3qmBCMA3O`H$+{;s=~E#gVglOv;SoBw)$cE605;iot_N -z<#_fA@_=&=R`S@EF_)!#I&byBg~9TKX&$oRA2nPVRW0`Yedi*E;bIK1)Otp&`5oCB -zTx>-J>rPUwnu9wTiSrV -zUfANtr-RwB0O-^Chxq8Ci_s=}aWc(7B0AN~@n4WU8`u%xNumKu8tc2}53%+|HmqbP -zT4;*Fl4(lOHtDgL|5YEd1Q26c_tH9dk+4QZ^$Bv7Kxgkj0uUVN*+TON*b|UlILx-! -z!YUM61p%xZ;VuB3pd -zZqXn?|IVQQX{%u+|DmCbB^mwUe8a*OJ?)Bl1cq2n -zG5N(&(&Nje!ZlAC5IhLy@EZx26z8?`h|ujx;6c?sjADA^vFWMOmcl#QihKst9@@d) -z7)64X#>md7y9QLwrk<8iRp~?9ts!V9Bp_oc+jwc43GgI<(_ti7mIl)99NW1OchKYO -zm+C0udvR_y5`9A2+BXlsq^`hPbw!O+QZ#M8$9rx51C2ttLCKR39#{>FNf6VKhe9D9 -z+z=)0xKV!2`b@zhdQZlL?s0C+wqt)zjwoBRCQpBjHF&yYFq8%Ch1e${N<2~_rH#qk -z(`@aAnzP$fSx1m1mE|%Hfs1d1Stn7dx)uB3bFwkFkQ%0;<|IFH@E*;ABD_d^PPW$D -z$|8Aw`=!JN)+bNGBn1w(03YG2i-p&haoaO8_{B%8siH3BJ`~`kguk#vNN8=Ok<@z| -z1od+FlCfXa3MxnB_DrDuy%?8U&nX{x-@3^I^{ovH--sMho>(6aas)}74qk=Z!UoVO -zJ*^Nut-=qTcx^*j3g23_dgDra$o2H)~NAHe|s -zn#bN8gT*;H-WplvJ)=L3tcAa;lDEy;snC!N{q&Blvdn|P_ncIT_xt7cZ_-@dcDW{6 -z{3)zmwhk-(MGPV}Fz(EPZ(z-kC6xRqGdSL8p`wJhEPxjBrC88B!6YJL=O;#5de-ie -zpLm4F+M_$Jdm9yiV{P;tB}B*W`6~uyBH0|)N`x_o#@MeoS+Lazjn$QUY~QqSDd_7K -zxGf8N$UR4^E}M*gPH*DVd4_!s73uuNRrf4>0?=NaRok1S`90TQd*4%xY%RvvlGqoS -zqVnh;nNk$(M!l8WT#Q4*u^0#jHp)pqF6zx0l%f%2v{hN1XBv=Pe}Yd&B!}t+toMe?BRwN+ -zO&`mtoMilP>{#vun`|1py;c$#+R`e#2BfZek6=#*cn?T%N$;9GG0c*B{E^Y18-ye(^Cn{f@v{#W#U#zz+rT^s~sr@oTVx8aSpjZzEhK$&J=&8>3IyH&^WTw$;*sgpF@l -zFufk6XL<{>97KL=Cy7z)jEjHoEcy!nUbHs$R_I3VNs17`w{#l18WiNAE}&(y=2jj= -zE}Ub{FGw;&6LavQTJcDOylX4V4-*Zx%ogoQ0-^@hZ96Zg5fxF?kOThJ3UmLn=W!UB -ze{iG4|Mv7`@AQ@=*tn$FAj=yGghJhD1Wh&+j0*meEK0*0*!dt$5LWb6qKp~;lI6** -z9>#nu*rV#*;Up9JyYXJO?AIv01t(A&fMW -zT2kU{{T{v8TzDO=-^m;3X@4Z^nO?za07VJ>hr#+8y|+B$t5|r&9;jd_(AGM -z3sGpa%fHzuD!`(tolMgD0m>CocQ2;Sh%WIG8I!FggT2P71sZV*7I})6H%qqDp^F?k -z9FA_vycjHojE~sD)n64^Tai;|hy};!o>RXvAdW^dxaw|?7kG+{rRK}44l!iZQFExX6WVP^V%Ce}` -zF6?&9mlJ3}>_=yNS_aaeujL&Aw0ynl02Cu5@)OcNs$Ul$lZ0L*lmq1nE282tN0hMb -z!O+Em89Pl{HFy!|q>rb%I4P-(J8AY#-)IHoOEEt_=V(0esFp*h7W-_u&;W1(1@e^5 -zuewpl`JeGi9XD03+*Z>=^HFY|jr@Yvw~u)2iKZz;D*Ed<8ed{@h>Wp9!TBQqR%ckE -zcg7TE9bYOZ&=!k}eK)nxAJEPmDgJv*Oa>4;SsG{HaGhJBOgdA+RLQ|*>U1Kn6hD&% -zWg<-L%eb#v-%Zz$LvHC&!_1b=2W+ODjg&hh917DZJs@NQW!vf@5?p|^Y1A$ -z0L`G&`Fv1n*g>*fG4StbL;P2dvww>uq<0K*3nsbF0WcoQS1?lvdKI>p**){K6Vmm#>Dq$`6v_~ -zc)jua7A`POd;U{q{~hI@pb4IdBeZ0a1b)wh!H=M5ip)g!TpH-f8r)~3X@PH7XDWqb -zG=t|n`k0)tgk>Ul=?$SsfxbZX$^jfXpkvV!K+ds~p>2)h!eSOg>^1fa)2?l_aoui; -zSf!}~a8x)yC0{W;W@%3#ljYwA<7&D_b8OR7)4+>f#Oy&msmS;WaChTL{d -z4qe)hmDG&r67nX)SHPJQRBp?#1L(<2WUt@*id3 -zYRMmq=&5619`|hKolvSdypG(>hL75U=@@4Hx*F96#kPvvhHEtaWdGVKD96aP416r* -zw}aWCqwdO1^;OU%vzyzI3V_phy}9%X_Wv?jvcZ%>jg5rz%7t3w{b%pCg3CDU -zvbfr3;7txA053%-BFg(d!xI+6&KiFz`|JYQCOPer9nS3Vl~XZt$a>;;nwdb%Dne$8 -z|JqeOp+nhxc=XFN$?q`jk?s}FuTee&dL$+apJn`NKOHbo5s?f2kEW}DsF(}MiT}M9{&T+balCi$`|i%p&OGzX?5?t@ -zpeSvJn8ji2vk?62y{4V3H;r)Ju}oILivd%3o?Nnx*z7zcOX&KA2$ -zUdTq-{f6zrE%CY3gXpNT*Zj(okdnl+$n{F`%ypTx%uYuHO7dFn`FNI2DV6R~0ikj< -z2c{&ulX`tqX)QltkL^E3lay0PoPXj4!|8i_UxH2>^*qI}r}C4h|4No2us?{%GSDl%wTe@@COkT_VRLnsXkO_0X -zw9oOP^<0-6ole=lF1-8a9{C31xU%Nx3(I$n8f{L4tz6Sgm0njE<~ba6?8Ewe)m -z51fHU4T{Y3j30hJFQ%P~RZx8)BFO#W{7BUdMPSiMb(8^R2dCZTIR&)FI5L9yWf7J; -zM@jxlyMYX-KLCOj)!|;s5xR5wXbTOFaOU{b|-%aP?uz}ey|e8(O8o%g2w4~*W;>KFG5$oVOsEk0!~MqI9UEgcP< -zEIxH3^FeyTc>!nit>rJJa{YlCPh7nsZJYLvq(q0-sZJ%Uc9b>@WM!d0zKsgkDSd7DDz-G20P -zDFpO?pzIk^70U+?G5S=6R8PXxB66CuyETj|+PUQ(G@X!`9EL -z0U9O$m(Y;yj4qa|O>8zc^<_2k(GR@Gum?&3t|hfqZ;)}?pEGtNAL(c!Dx%u~h5zN& -zkyG0w&PH3#ea!^lBvp9U{AzMh#K>5mg|IIFZ^sGmUXE(KrlBX1#cfavo&1)WfA{?m -zzH=^p3Ek|C>fv}>An~ubW3ro$Z!4@ -zAZI{kSNAV)_jzO16?b+u_wSg7x2#TtStivqzfEBe#DAp4;A7Z7GrAp5vtz)GuyGq` -z$Rj%P-%oJ2HGa%wBaD?GuSrXdX9p)9zA&QoVpg$m86v_4_R`HIiMOQL? -zI3w}32jl8d>K)cXJS}q};Yu?4eYD2mMaY;smob-|+?AKPEcaV}(Yqp$oaH|gw>Bf1 -zrJI(N2hQ^a3x6@LO-#_X|1x0EuUv6F%f5S17i1^)Su-?l>4;TCD;2S2mslnJj)Mx4 -z>xAW)|3fgW+Mfp8*z)}iS<>kzlsTD?X%%s1=M(>CRP1j~fU`S*YU%PI28kN;LRwrk -zljbv{uXynZWh4KzN$(+3=YK+wPO+=RbKYz-p~iv{Xm;$I&Df7Jb9eFf4-dq4#@#8@ -zg973oTm$t9t8pcg*-1CyL<~8eofj_%zN#s|I7<@-&}fS2-9SS-)gFC{$Z -z`Fl*Q+v7=8*~w;XU7y+Ewrar7@F -zEVVM#p5#G7vDLJ&yMWGI@$DLPGj~SMe#jw&XYst2V)*fqunE($oH{2DH0%VgGM9fV -z@c2@J&xD|Kq)v~qAlMnpuI0#Vvkl^p350p%mHwgci%GYS}xkQPXOl~47bUZ;9 -z7CUBpl~MQO5BOb#!9%wCUup6W-fEV?J41xS`y%$p$Y(`x?3>9acS+T6+1;BIXmv5_ -zyT$t>GDzH0^>yttfZK>S{24HzQCB$o9qpY -z?>C;?oL4X(%g>RSSlG-ngbQFd93XGt!iBK%CyBk9QThRK(}I5ZDa`W5c0(>dO>o?z -z0p(-0rdv$<9~!q=&!R6<5bczQ8zK8ddYzGd7d=_q43BUhaxIl -zv+F}p8V}KpkOJOv$a!zxrC^44%+a$BAzQ8xB93*!5e!_{_ -z)B0B3Lr7G3RlPA~cD#SBk -zRzlYXF9y;k@^DGF66W=4@=24?NSoNU9GpEjV4iKKg&HsQHE_RFesGF9a7?7c8K4VS -zHcx}xO9lN`{s9p8zN6@T-|vDl!8&>H-`O_C1k!dh>I83qx;!> -zUMqEqF|Q(pI|1)SA;?F{4=o*q%jSc_tzlL07aR5@O|I~z5T#s)7lg*(_b&8}8g3*q -zKD_#}`;tkWd|6$EEdt!S4q@A$`%PGHBDWoE6GF)4K>lsp0SP^!6IyntNMf{RiCSnq -zUMQ7ydKm=LpH`UK#aY5aUW$Hv^R=Mm*>I`!b8*x4_5TaIzl!5o%}GN{gcg;Ahn2X# -z-g#!0?1tV>6(1B+AX{ezRxPfw`O({QLY!zoXA@E0E4t=Y;dh+4_9)erWSu+_Fe(>n -zx9gdPk|S8*#Wvbaf&GxuGV5TOf<8x5I&S^!KnD{io#SBwO|EKB$0b^(xYJQ7AN%Js -z&1@cs2X}0DbG3^U^_JaR=p`lM7>`s8b{XweEj*GilCK({0a|9JFcl`9&w=Ay5m7wP -z7I~#SX992z9WFcNbVjYDTUU(_={Z}E_7Yb{kv~MW)^OAoIyqE~losfn(ihkKEOApodRD#`rsLm#_EjMS#u-WkT -z8X_KZ@(Hr*LAgGQSw0U83dF>DO<$VdsHNM{!L0pThzNW}dFm{m*2#a<7GgkYD_)LK -z*#ozjrP&Q*{lDre_fzCoZkF=z(M|`bLNkbEOE9aO#abR&Pp5Bq9A6H3gV&aLZS3gB -z`ikZEKwv~KA2ts+id_~BuC5T1ej^gkZexzqde}RlwiMWxW=APb5%J!5;jdca&$*R28BtX+55;#VZ<@+8&*1ET7J;=7Z@mdKb&IyAN*7oL@7{9 -zf#rSngvTjlpgxndPbi2+)uh%!=iVZ -zJ<%FP35!RoBQcF-{16aV{yKzV!Z3q^fO%~>rk43X5AYFMfYT;S{@%4iaeT;(R?5^I -zH`q@7hb=!s7lfmMcJcsuOAplPHNBdfogV{L5X#AQE}tXS8v@`=4`5s0Mlvt!d;^N# -z@F1TL8xn@0sY)-QaYb$aD0yM)XQ8M@Kbc5K3CMEj}cEnT!&Hnc%!s4P2I8Q@}zH<~>?Poagw! -zBe?EC!zUAM+-^Rx84v2q@kAG$H;8%Buq&(X)TC)3G32?amc=DgfJ@ZtM!?7 -zSP$9!_Vm;rse>6>==(gOLa-P+0jhT1Qqq0$=K1S4Dfa$bh3~qH;I861ubt1AfET_+ -z=*AIYSwhL#LHT7plQ+>B&b9jq?*hvFqxa+fq#X};u-I1uRMWk06{5z8`RNgpQPbpd -z9598JW6;)eYXKyr~8g!T?5=r?bn@+hZ6LI9BKUBhthe? -z$Zul3W>$zH%Sfbo?&@mbrmfo`=?3j`2&Q6jj-$T3CIl;ez@^9#DOxlw|W -zXz2O^W0MLZrg3;VE`Foh#pc0b_eRwZ{vD6=^v!#>BV6g&RM~<6k!=5U+(Y)lnm?;L -zj;%<`yCE%vqg+NBr{yK}13H)kd)0+e3;HwLPyRR9DLOMwh7wE#1z8=d-Far@lX{lioLhM!n_3#d=Fyb`=ctKKG& -z)MLF#_Q)-TwD5#-X%eqQf`b{U`>T5~6uBE^{wxDxqeFQeH}#f4kIah?I&=l=v|Zs3 -zl%O(k9P$H5C=t#59W&2Q%Z)~3ef?7JRuyHiM#B;c_K%30?x*TT-K$0ISc!7BZAV8I -z!=a2qk*v&I?wIb<%!DbItUDp#9k@usL&Qbq9^0rAn`wbFHwIHl`1&s24)d+cjw&UM -zqzCV5^-?A^q}6SEZ%{&QJ12!Uvdg)R_3#DmnSN9mo4luRdEsx|LvlSbtsjEHkg4A2 -z8#>MI!VYmaq7pHMW9t9OlSf336w>H@hM) -zjpZ*nXd-Do@8jg#1#zjRHr~*j3Eh1eJ<>detoRe7$~XeqR8x(aR~{`Y41&&*of50xLIJc)^EMM3)=nL!&UQFw-9jIzFy_?=mB) -zLP988v5D*vlG?7iIJ6*^$3V6y>D|3AU$o`~v@ye*h;;wBG8yw(>+Bpi-aW|s|8Cft -zW1q3bX=#*wi&#}iHi4(4SJS1mO@dpAXfW5lZd#H8&uX8t_WKl{JzQ&gUk=l4aa`Op -z^6_XEv?NWIow9YOKF;Ls;E=4!u*S__Yd+;SJFTU1{tO6QzL5eomHddB+#L5Fb5o_Ao>IY_25~)I}$fVkWfqI)8OU!p6?`bSxv^$(+pW9MZQ32a+BZw(7`1db;Bu#97BQ&(e?!dmJ-%WGh -zk34>H-l8?{cIY%|6|+DrZsCxj4=eu$dntE0@$Y;+V}=Zk{CMSQdmXq#B*6`JM9c$F -zQwV=2anCCDvdyVq#;2!bM1h1cCVI0!gO{d%N8W!ie0rSml(R(QKeCWN8C}1vG0)1+ -z^4zK{>%HWod~T&%iInKb=`!%%drZSlAgx){*ywFi-%98%HK+QQUEs=WV4Y(jz{+^! -z;x4geA+4ejDX=CE(r<3PWBU(QH5(?~!tvZ5GafAV&%9XaXY4CyS4rZYAe9aiZmVRgIBuo87 -z=ip@(prOWaVy`O~2vz%^414`i>M+!k|iY5)za7CW( -zJ2*#0M^}w)a<7dGbZb_0rT6+N`7i1Y>FTeNvxLYbN9>}Grt5&Fe@3*K;3on(`zQUB -zE-Pos9J`Mh1?~}ZX;|Y5_VFP_R(bLf`B8Kq0=eS+s)|Pi9~$z6pSp?oh2^%O1Zpwy -zh}|AXPZC0ks(K1l11giWImec7*>UgJg5T3S6=T5I6dO)({&6ByUDk~a+1pFz{q{C$ -z(T+y)$Sq^YaE%{Z4qmP)>yJu~8LZx9(vR`^E=H`c6&Rzt60>#KTy@x`qs>=WLka67 -zJmWNULT~pmej&k@KF+l5i;-h}-Q2oWwvxC;nnb*Gaa?HE(_Qr4{(iLMC@PECo9Q=nTt=92~Aq -zWHQ6S=H;WiQ7I8D4h%ViKgM!oJWfu -z81P92frZnVg8?YWK{!XE_HiLaw&x~$#$;9^>_MOZqP!jf&OEXpIGf{0yf1M4fuYqgSzg8WahT^aYI@S)*!u#qmfE*3m5>&TdGw#7Z7 -zb2f~JK>hB$!r53p&BQ5Y!wu!(or^@1rz5^ebt70|Ltvn{@5M*QP!5+zR!2d}YRSkEZ!~FSlq346;XSg2a;mMrLe(;vJTX~l2AhnW3pj&V0GQB2aj0HhzN#EV}f!gWJZ;;yUF_TBAx -zM}3x;rO_iF+o3+^$nju0&~|g;cnK?onbOlF7qI=@&Wn~ZXv{srgY;>%llS;sGee?c -ze8AvWBvN&)@Isi7wO>k8wP0Eh -zswZRJytxvrC+P1^ItrAZ*I+g~H}DYP@GR*=hj8>gn2zOye;Nn)40|yWwNS~Qob7@8 -zSAYiqfbAoQ(MUua`L9yR{g>7rw?A?pFI7W^N;A-R&AW{WMIde_C)HGct@K*_Koj3G -zFR3?LG_J>SuxSa^h3K1hPxHRzu~7;HALpDAGoz6>*--hu<4i5d4)e=`8@I=5`SSj$ -zsw<6CaBtGlj!ov--M|iNbrGqXC@s^CgY&(zf*->iKncuj-Ay- -zM|cBwIG-Qz!$ZG`-3c<%*9f+wyB?}I-OTmt{ZP#C4DGi-O)Uf-tEQu+4<)7haydHB -z;CR}S#!~0R$iq63)Osu>$xkc$>=(YwTTxkNH6?O{gAuiBDD}HP!UiJPTq1D;t<+`# -z8>_iG=LC%r3lb2du~#ASJGNI?&;0#Hq^&Xm8iJ%@Bxf@3ioe)@jmGb^ubvLftrljV -zt-SC6-V(YWk%(OoYb4V9=3FI#Q>rwQ7KvnoTjB5r`e(#P?LjWh8+F`oB(D97@C{q` -zoG=QTrLfBDypoF_EE)+F$u*(rkV$y$F(v1rv6kYP?v0^bfk`n4zf&HX7c?CLECwJ} -znpTqY;jQ1~Yd9{y5^u2?dh9b@RJ$taESdy&1_+jh@I=lqYU&qvqN-eS7xa8)fRcT_Q6?_?VPiCw-1Br_%eMNvuUXcJPbw*x(=D8nf{YbyYAg**UR^ -zK;DRHpk0AfSTR(K_Sx62V>FZE7|8K`=_fI{YNPxVW{T< -zh_rKx4Z}Sa^mX(8;_LJGhZEV4I@#Z~_4Wv=(IPSOBkDJVG(#2@)3>0s|181?01kT9 -z+q!&OC8xQZ4du$j9)XoB>Wjg79D(NsBPHwfb&U2n2EzV8(;e -zgB*SWX9xt?#xiD17dV4H23;SxeNu`8yH^{Uy{v-uo?~@|hOcpzJ!~~7#}4 -z&LfM`l{63xS~7aw^XAKZ?bf5=k&JSIKGA5A$rKNtf+LjHc4;gFq-U9$8EP6(s2#cL -z8E=Hr``uFHel>8_oncJY3okqD3PWU70;&&?3??(w#>1GZa;?HAr?yOqqm56w6+Uhv -zhbSvq&AaoT>c17{it?u}@!ba|h8@Y_C;7NClcgNU(Ho_uH$PvxaR9gvhS%$6I3pv@Ivn1jOa;aak_)U0m-=cBccLRU)CGr*LVcLpj@3+n^m4(vZcU0a~1uL?vIpBv&Bv4@Z1?~pcK+X(eVC4}v=p76?t5DxCjHza+N*VZ2> -zI=?>$C^r}b1>;7pX!Lfw17G%9dN;=8-kkRnn}!I)Jbt<>jkQPs3%5geR&i76R}{y% -z8wrA5R00b^~$k^Ert49x^)8K -z&-PO$)!rqe6o@6DNTC(`BOcfiQOr`5tA1tpK@&G(WXU-kGgYAHAN#fe@3*nDwEeBE -zA;{F%M`I#NqHrMRu8@x&!Z97{cD0SlFmQ)({x$yV#?^j-e>i7^!~-RiY$cU^&2U-} -z0pp8)TzKzyc0wbCT*{r%5~^XPzncjnxMt{?w!w0_h))tcar=_Y2_XJ0@5~Jyu`oD| -ziG*L{ePwLuEV;RoptK#ySy^&)R97O`jh)!-!g%{PWo-yKSg(w?k`=!yqgk)el4t6Rc!7hn%i_-Io#{q5% -zvMoD@e+uej`$e#8zcM`?@fQOp;f>v~CBqSG#|}vcA`0Vy -z%^Ov*=f$}VBY+hqsK7rRtq05Im1MobV}R~053?5T*v3Y3@yS|N_Z@h=bigrQG@o@U -zfGQ{Gk5^wLb++xvkVUWg^6O%m+=Xez)~l*ToAUYqdH;j~5h|Fd&_EScHL%hy+LqbUz{F@$+uJDhX9LGZyh#*r~k`5mkOgi7$w#LKXArjkOeb -zP!0sBKUsqly6F?==&6Y^472>-8=2*0@_lZjSnA#h{k*&Y#q;Oy2ShDMd~tFL3(Z@U -z`L4f_L^xhNTE+^sHNHA6K#_dcSt!k?&;1|sk7#f(tUI=gTLAy}FRd_^@4p@inK-QI -z`$kHRY=yXC1rHm#n-wce?t<^wWvB;JHPjQ -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 -zY4+5K)}6H7D`FeQEP)2KQK^>#9^$t -z7O|1Q_95_^1P*sPS*Wb7_#U|%s-*EmXR-`7m+T1Lv`hw>@QE9mjCz6?T6$lMNZU3? -z?iap7A}rXNhireSPch-|>-SJKuPu4CAG|nEAk^A@Ki%G@_3RpFg9`BYyLX%ZK^)Y9Bs}3Zrbe;0xYb6wV(#Y>=^qG -z&F^s^r^TCdV_(%Vd{`pg^02Q195JARY2)}D$kzPuv4g2V@suL=8!#X17w$qI7t}g&drc} -zKZ05xbHcJ^EG@q+sX%Pmn)ixdn$^Hl7l1-WwK+-1Aqx)Y_OI_*$iW_Z-TNjiz_E+Nqxy^zrW5jkH~*FV$76Cktvb_wlv`FxIWD!b -zcQ-6t?rZjKqJRMY{V*OWa1`> -z7OB#Xw#I6@9!iT22?{mBOy*WA3M~pi4q1rw-OJK|=z%mhF=mVR?MpPOVIcSsSN<#} -z%<4WS8lp^;2(YymSrg^Puh#mmHBQ8l<_3R^{u`_kWcvKE6g2n?>@tCe^jm}0a}yKl -zxLlunL&v@OV+dVP=Pd+=r@;CG%u#pox&O#)bnIN;=C?=eps(ScRb$8X_EiJ5wn6A3!BRQmi~^P -zJ;t`*oi|l^kv_pfCU4S%S}J*GD_vryI9894Dwge>s)1rN1p7qk({+Mc; -zNa+V6--GF%7(}VZ3*i}3(wH@}$&6qLgiT;K3zS%thhmW`6d=6ox+5x4KB?xf@4$Y8 -z0s7BGHL8dPkyaefse?CO096oi|3ds5b%HF38@3`FYb({36hEu|< -z)^GaD*aHTEnH)P;KthweL)f3sZ -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 -zZog(Id`(k&=EgoIw7C5JboU5`W? -z9tl=2W0!N}!wlDv3Zr>icKO32Txv0-k( -z>DKC$3Kje|yQ@O@P2YCZ0ge@+I{+ZjCp2j3{BlH&{~xJ@*imisMTjt1T5aWvPfkCU -zDh)n2Cbr7^CmNGStmh864>7{o(lVd+mNxFi^-2TXr7OGwTPAkG25-$!!Ky -z$79J%{T75KjD&7B?yo-=c~7e$r1jDh)MM8yX~_kxvUQ~29my7X7_I}fObL3<1IrBUK-NOPp#F>ul~n299c3e3ilb0e%`8$ -z)u|_MhYLLaUiE9X4FOpSGq#GPsUM$|SksP1Mn&j~8k2VjL_mXURlk0YRmw(aXa$5$ -z*wCVwT=6;OKT=|SU6ghZMiv9H&#s5XlH4GjyFW-sI~%Mu{aK9Ip~IS7kj6A#(e*G) -z{MM380^NO36nZMDI?^?#aPa}_;R6ilG*Zz|{wb?Ec|wsAWo0bm -zBJ##+YLqgC<6ifO%H712_g-(ziJp-p%`FE4zdI64GctuQbt)oF9IVT4cj}LG3ieSz -z%^_8yHKAV`LMAY7^`bJAV2o5sW9TKQ`lcPBTtLm-1xo4ggu%vt{Eo&SpE97h<% -zE@UAJE5z=jf5?j*aV0yKJC_qGt63{30+g+MQOBu-q1mIO -zXhkJ#7a&WPy6%!N%r7D06~^|TBVQDvwJ3EXKnb8d^er+%$PsRmD}Vwz{ejjVJY_P1 -zISbIsKsdV|%y*`!V1V=ADNSMoKR-|y1O&MYc-XX|Uxn`WN33AImjeS}(3aL*P<{PA?JF^7Hb>Mvz>!n9`ALgaMmp5pLmEraVzV_mPX!<~| -zGP2p2Pb3o5Yf(9tMvLjoD&)rJSaFA2z@V-L7U9ZS6rq+1e*ug;f&B|WHo07%!e_M+ -zB`Ba<^9(lbKoo+|Xx|J+cT;9$r*XT#m(`AWecZLu1VKKdcPHu@XM&~;?XFOISCe+* -z-JJ<%I8NVotRSMWKfY^B)y%T< -z`CClmy}J`9$oHVs!ys5uq;PAf>=JrsM(;8~fs2fC^AV^De2ArMUr_^{e9No43pmVWME;~pVUGlP4aqur#COj1%>(=ea-B(42}~4gme8_-Iiynu+0~g5Z&MM46ON4?hiYWur4Pz6R;xgo9sc0 -zkTPf;!Y?756Xw*GRN8u3>@z3Eb}n`3k*@JW7ZfJy^!O(jW+6h+P2OyDjJ!z?nTJ-8 -zdDdtmtmD1J$6U0IQ0#oq)t#J#@}b`fZ@cch1C -z?hnSqA^)SEs!a-^px$k*5m}y| -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 -z5ok9Ahq-{&sH4aY1l -zo3cF5uzN_We*A>1+Dr4_@$eE9Y+CUBASiZ`q2AZhAIHwFyFsIlkBYw9{Rw%Qpwh@2 -zar@zYrL@(nGl|iA;H`^BsBGfp6GAK9jAt7V{pU2g-OrV;of2irVN);*6;K3f;+WE2 -zBG~BGm(#jIla$4zr8BT#dq1yT^Q-@7qtAU#;^keB7o>q$JCkVIPkoM96t?a;)8+eh -z5lAF5osL}&a5{K3ijNzB=~{M}pe3K}^gd}?m{PHy -z4#d%Hrkc;!eQe@JamKvzqK0X8`;vMpVfVA8ge%N2o|gVY_(a6eLf6XI^qzOo94?~r -z&G!cQtl?s1^8JYSqv?i)lGBg)1MQ+D{t+>Hvum5G6t5@b>j5ZT2C0R*n{tfqqY$fhr}7`l -zTq$wU=&UavI_(8RE1K6cE?*wENBGzl|wgwK}Og+)^m5 -z$WAnK`mL5JFV4*)Y^$62bF1p7S^#nb_3V%)~;1neIXMGKcD-PW?K;5SJ-(~7@yg;G?}93i~2gVh!UwOeQwqq7d5;p -z+Hjn76h)wUWsVJ^7q+N$wE|@N$>HF*?pfiO&y`VTxm^5hLunu}0oBTtxW6-W4@qwp&DA@&bdox8zK8F` -zmW7O2y~({_Dwns$8*SI)9Y7fW@3#qy@CJHYBLu?I4ZWx5eYH|)8(?!^@~v$56K!Z@r){n2MsXZE``3G^9*ypVH&+gz4{9al5JxDYa623K@TYnj6 -zM^-UGD*8{628%&?faj?O`RLfFSGyQ7|H0)OP>%stHlbEh@;InTCeU`@qeJHSThKmq -z$v|tU;JCdeQz{z`Uag~@+HWkObn9FDR(ZNvxbr#m6U0aeYrLjS=BXWC_(Gw9oAF-Y -zKn@h_yW{|uO_y*5r*ogpeN#U43+MeP3b-M~KOB<m4H8D;$*>>vT9b?`LZt?_T`P!TmC)X=>Xam7JM=`OCg)%e*USGR-?8KW{1rGs;DysYDbL~w~IR?r+jMiVeuSLX>`zw$ -zB97Zl96&dwrOhmj!;x2amAkM2t^z&r2QeJMG^?45o9u|;v~@CQ(}do)<0@~Nv9i`7DCzgo28#dprzFDM(53>e0F=#iM}Uv`Wc~yjqVV<`y@ooqQUtj=O#0#r+8rUa!aQ9)vTPJy5J!Njk08(s8x0d?j}!Zkp(mKmS0E`2e>dz+gP> -z`Ks?edMHHa7*6QOBr#0V&^V-=t`h6!DW!&)o1G}~_lncs=5$zjsFIEzgDT>>O&=}7 -zO@)L*l9`gB`_vh9X14efSOF~u -z1ic)S_qCEQSCeypD+LbK(Jz8y+)*@1Ej3Mw@3j58xSj{PFVup7`V8 -zE6BD-O8`NAjx4VweU)W*$cOdtdlO9%r{n8T)L9BmUC{C7`UEYl0{hv?W=?+F_*~d9 -zq3X*xWcYPwxW@0Vc)}G9M{nDRlv6CH3vrNDnPV`6tFhr=P`v+o14yF@%z(8xhukg`rQMcndakRAl -zy~B`Q)3{`d!kMmd0$9ddBJ|jJBbr!k?ofrFaH;}Q!dnyQ_ywH77Pamt^)!&iCuQWt -zLv~RqYFmda7@~J>hp@5z0TRt{ -z2N65?sCM6D%BQV|Of$PtPs||$u&_WHL(J&Ek7@6ido7QR!b@}S2qk(RPEFR66ZuO@ -zx7X8#-yNImymuaUedt&ldvkHi)`I6@)&8U(U-Z9HDny($-P7pHT|c0K2++)=PUbFM -z-e=S=QrSC@NsrL<^Qrf9YgQh{&AwcHyV#~?QXw)HkkVOjom2A*Y9HX7enDayn?dp2 -zpuTSyML{RLeZ^pGN3Jv6X?mvA6G{wO@?9r%rAf_Dcl&447Q9~(O(j9Gde!joZM8yC -zn=17pW$|4@26>b3IUEHa(IAzdZgXMni3f4>MQo81C;@ScKC~X&52;AXl~hQ&Y5DMW -zb6Ft_;sxbe`)uw!wj8V&N9?&UzP6w!>Db7_&y-udC!TP{FnC&Qnb+sB=_-9OpI)Ex -z=Zg_coyA<%b6T|hX@L}f=t7WPd-F+O90a@Zx1cNxC=60YcKhpn)Ilp|Lb{zpW8*_f -zJGRM&4YkU6D`<^QYW`F8me#MLPW#xfw -zj0VYEC;ZE&+^64WZ0HrR=+#|NRi0F;3%|I!pi2tt4n*?L9{QcQ&fyCt996~7|moyytK{kj_H8QnvQlCN(n;q|em{D@-eb3YR -z4Dj>VxN?34v%;P_5U*kUJndt`itqyWt<}eAl=!{LK-j>T2o$@ey6+43*ea1lCGp3PoV{AGRK+pl-8+T3BR5qki7wWvQ! -zGEL3LA0X3%Kazw!HERkwwCm@E)qaP1L_}4~q!Q648Ae2=k!}%JBudhgE=Qk+LSViP -z;At}_(}d5~mPG4m`K91wN&eP)w)(>uWC)}JdKe= -zr$j)eBJ$yT0;^$CDHozjga{zW -zP#6r~f{s|woi|_?xgwvqOb?2#>(8gZ7j(UA^uqGuyDulM~hpG7e*A6rnb>351p1xXudb_9zL#yB8ya0OKi1bf|tV+^JAWfgmyCT1;Xk&*@% -z4NQ{eqR^-Rie}_}MkMmbtH~gbIFyiGXkQp;DT-{bWQndKrVnB={cCsF#kZ1GFD(5j -z9)W}yn4^i_9*!=$mB#0EGlD6GYNKKo*Bd6B8+x8S!ZZ{#GIh3c!#?^Vrs_O`Aqr?U -zIE(81q?a7sScH_kr`nH{Rk$dGN7S?x*H9 -zv!${UcjiJ-9q%a*j<{xP)nd(peKQ761KI68!oN!Wk+vzMnH -zO7eGpT&PP-UEeM1_=crBkvlIJgwE}r{>cOCbDZ2!2L)N;O+WS#S)xA}7ag -zBTT=01I;OhWhJ;?qN_*we)|$b9^SBG@$K_s1bFJ -zo7q=5R#kbMB!jDGzqxNeN{fWxB4m|D^XK3+FT)Jlew#hmP|r@OqDyDYHl{fGI6t>MD`)5z+4+B{;@>67EZD(wdsqov* -znyP1>lVHa7>S;;LU69z=WW$isbfM;0uf-&XB-R>jm!!;xG*iboG%-5yA5j%DcW+W6 -zPTS*+a%`)`XelpT>j#x`uLGgvpN&PeRWHn<0W=C81S0PcUuWA&%94EPmJ*KPi8+Jz -z9qPx|(Qe1@(I8s4YFqK&vX;DpSg-_S(3?csJ@3)j-k>Kd6r>Yy&Z4;iS^*>8;`Bu^ -zT7Nu}uAck?t_c)BL|!yp?$?}QxEg!U`$Axflqy#oRbKOyGbw6cZi1MLtB++d*;Hsw -z>)ZkG2qwajCd-qv92vJwZ##Rhsa57O5c1^L2=)%ijxywtT_#riPi`_OJ8Q|8%=9Rs -zQV6RW62FOB$@2EU*i!i+Wy?~DmM>M)@V)nZF-8_*NbOdm+Tm>EKQ`6(EMlEoY+*&e -zsTf;kxgz>Dm!%A1c&#=)p)CT_y^HNIUCvrp@Z8R?D>=gTbk{4{FZUlo(?Pa8-ym$TkkVRO6 -z{`%G&W?s`pB_0d@$Vh}0w-?1ZQlHKu@?5s$t6&j7?kwmnP_Bo`pAexJUjld5D4Pd>e3#A(`*|t)6IdIM@=@j8M{IjH$9)k&03VXM7 -zi&nju0ELZ$!V*&FZDXmUDSs?pisKC}mw<}Y68(Rw6%CjkB=+N9%}^_qZADiHf3p~v -zq{o}4i<6C8OV4OOFnlWMj437L;EoK7i`v*|e1wv7udC08soiSNppYV{I#u5e=!G;- -zQdhEHep(m=W5 -ztJj3+hB8+f_fRZ@oK}GF!#loBMoCj4`Ld-{Nx0%d5byy#Sd~b9*`$a!U%!viMdyHf -zcd?fI3bk52Se|n+`;R~A4S|*TSSp+*u+wz>q(|@w2@*-xpH}(*5h`BMtvh|7C%*w*qh>XPP-DQsa;3@_qidL>R4W0 -zt!kB?O!i;eZT7|PLs^Unu7YdV9>i@b$gxU&4r4=b+U<=xsq61%!=$=-{ov2)}v -z{UvH5PrGBJP5t)5#M73nc8Xuv(Y}^mdSTBSzSi=?5?-JtaqNP^W{B~5@(E=u -zJG))sQ{*hY|8_it*>Yt}w@L0n7#2!b4PVNvs0DNSRO(0mIRw)_O){tV0n_Lhts?~z -zp~a5Fm(T1I@-6mukg~3&>-*40t?wekGU3hFiFv~m4+aar(8#?@ukd$?7jpaqK>Q5! -zC2SPt_$RROgl4w*w~BOHzbNq;PCk;Vfd(ak@M3lXs~W{KB2~neZ*Ss17cvbOZxP(9 -zv6&eLaLt5upnR=*`d_L}wZ2t0jNgdNvOlH9a~VA>UO{U=DDi`~`dx>)lwCXna~Gp? -zEBRx&sUA{qP`Fw4r5kwPX`f8NGq)iAz9gP0N786%7T-Qx(%~n@M~N}GVi2n@`u=dE -zd8#<_2$#Pw>7#hXK?57XP)SAXH6$=BS_0y#)&M@V;QRaiF9N4gENuogniRvM0jm1& -zClHHb2+Q6oS~NgG0f?n#F)KDE8=Os}fQ{1u-*!cpz@7a0@Y(q0o_{33dciT}C^&Lg -z&J$lrin`CW^Dc@-L{W&t8Gn6N{vHeN -z!YDwx4e~j5@(^An)rIB5ahQxK)XD9UJb+Novl5;%6m+;JZ8voUYa<7j?8r_nv1jl4 -za6wwokbnCjoHvY8b225pcP~l6 -zwZu@Lq(g%%zjr=o5q9@0ZMr-3_6gfl59{hMcYfo>qA?gZ5IEqquhZ3ARjZh5>-0}- -zC)<|8MY)lr{?#9&Ys1Fy8lHwjY{-j#{xQ+N+?Dg_4coIz#gcmfe2G3jAjgPLaRcL7 -zRQHb?>vVAtd{kE`zZa~BBcu~ix)0Jc*!t1Gz2BGZ)+WRdRACHX` -z+{Mg>DZo8!NV(Mf++_cag -z)liJ3#3V7uLgGVx=x`=H676db!%f2YDvp -zKeYvytux@CAQxTa`WpXz9Jj1r?4PCDu*0dCpmQX^l)-ySa_fy^pw9UmSAzkWu -zrE43G$GqF!93f|I%Rj>YKh&QYMB{~C_g8%XQ~~-o!JyEVa74Oyzl~F-+JgR0WH25> -z_4wcym+f0`{~B~636pzS4BD+wSr#b!mtkD;pNTkHd-+^Cm9 -z^zKE`h*#7DC(QfnnV^_vVAqLA<-{k@Yufdmj@@NPhvJxua*99?fI -zSwx5f`4vm@84I+iT=pE^T_EVHT--*omL>G;tK7>HI5FfvZzY?R_MNiy#E9U0cCu`Z -zd|L;H`Kq_u_FQ`9;Q|dVQcgfri%UR-xx}W@N!GP%^o$DA=^00ERp9G_j9kFdv&!CX -z&O(h4@YcqfTKt=}>#UNvqMR7hciG;3M=XJqw;s+jWND3-s9s**!kOM&uS2S&B-*i> -zmF`h^pe^jRN)B_ -z!8hE0I{wHgW3weSD(t?J2pe;+EQuCL<%bG8R1cO@To0L47nK(D-=TI-ndIfJnk1|a -zk4L8P&X6cMv4?)@%Om*2I>Wq$1uk4D#1?VM`4ka++nR{y?c(G(iz=O}O!qSIgSZb3 -zKXJdSYh3F!ze-egArzIU7Qy;sta_Z>y~4*cXDm79uAu9$V5|&q4B7sr>Dm<*9$TPi -z2xLd{Zn%z_)}kZ -zz_3q$B1x)K=A764L(jH?TF{YvRSho^)mmRR;)h-SqV&h)e&Y4e(^vV+@Uyfabz^j) -zmG)w04y|lIc_(LPtIE~yM5lD9RwB~pT)2j>EO-Cqf$AWLXTPNfKFg{8dMBy!2bM}y -z1_v{hnNwv|puRZY*m#Q6a?e(jVM3RmQINE8=AQLT+pl@35KVs7iNI78)uuq5#5)`Izh(_%uAiYiG8ROb@7rP$V){Z2IG{xX)6Q%=>X -zHa=&Jt_)}_~ -z!EvK@ba*?AQH8!Pc}q;F+jy8GB4Rm*T1rVy*Q|#$Wp($y_my`nK(+4dr}(bfrga|G -zhoLx!Y5M@o6DO?pEjZIcdrR!M6Y}L{W2y{4@pi22MIEC8TOp6wM%;kGlFAE;txktcZ{6re^v4- -zq~qPcjaO6lItcCyYeG@dwm;f?keR>lc2E^TZVy@%^YWn$57Ud^GWL$>i+_x%N_vn} -z%tXgRtLoqm!rx+QzJZbUeTpTX%9GBKnlSpLKZHs~o={@f&RflY6j2RfgePK&pCZqj -zA!anN(_z(#_#rhkXfa{%exHCy=XNPQBASkMcKX-Q9ScL86}MB9Ej0boBRc?7BmCg? -z?GMJh44uB^ioW3i5&LD55Iu%V?Ial!h;pYI1AgTz(Ow=W~R8@pB -z7)PF{E=eWmR7$cXQdZ7CoVc4tvyr-?J0f} -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 -z_%uZaf`yI%b&-(abE#|aDNUyb8niG4-f -zE^ztRd$MZd+qGYTGgG=$QIg_D)Z -z>xkMMA;$ZWavjeXvM!=3T}8nqU2g$NS%UuA<@_Jh`&5@s`Xc&k*{N%l^`CL&fYF8eJx{cja+CR89jNMJAg{n>Yt%Pkiq474fq6zL!;=uVsmXDb9At -z4S$Ww;*je;hQ7eJ_M%R%LP_P@^;vmEAwMde?p}cno6k$OOdv#Et-DgEyO+xfZJq}u -z_di=o9jur=t_>@g)3*1GZR<*P&;HYIZA*pT5Cv?z>E#p^Kcj48h5Md%;h?yyqb&?^ -z1n;)7N`RO`OYD3dZbUyXMhW*^?&kI` -z?_u2kxcKXeM+BdICrAGd3QZdswD6|E8v+IcVPO_7WT -zQ~ndSPZ0GqCW*V>rS*|3rLn`#1AolkoaN1wG@O=lXM$*a;&8{eb+d1!|84p92rf=* -zWAyCdm371BQpoKkBJB_)wSD$u=l+3OxMxS3PV<_z_b)H>Z!uXO8KM1uqlcz*7Y(p% -ze{dTNybwe^qE0ruheNqen%{*dFNHiU`YvZj-xi}6G__^UehQT^u-0FVmKM -zMRzZuGT&gU#|9HD*6Z;x#Zr8rYA;ec;J2dbf3_2y7-So|^Npz{V;+z|1y(Uys*W|Jvmr0+H{ZP(isC37; -zSuKp?iS?VjcDUKcH%d|iG7OjDHrag$J4W&oILy6x->jIIirE`~;5UBP^qE%S1U)j1 -zJ>qNYF%ddw*M*wiJSRYlw<0m`2W<`R33r~E(F)cbSymK(K7n85K{Qi{y1G5bKp_O# -zc;ti59SZZrKc|Hu{n`P(CV%XMT_SH8i87ujR?*qFY6Zgvqut30x4pX8noJ -zmqpwthe)xgqWRp}F}teDNDl&PE-}^L+9gg}cDIm7`dx47f7gYXL2B{J)>fC)lxN1U -zaU8pn;|Rp<(mC?S&HsBR*fc%Xjc78(M^;^ynCHU>Z3W^FUr$>Sr^l}^K+GhcRxF@U -z@)?~wDFQKhb-V){YWTW%g{gcKZevgEIxTk}S5&=9fSGLn_DXm?=z??4V)3UAToUdlhteC%VU#WAPFAw(?^U-Hge2Z_oIKlcNxcTH>P_>?R5m=U7&YlIm{`zmiHm^5$&!% -zOE|5}Nvqj?CAd?G{;$+3OaFIQMN%R1R -zo)nhj5T;d1wT3G^vbau?J=c40XKx2uA_$HO&)68X!g4ylPJLKK0tpFJjvtWtUq}q~ -zSgZD>oHPWQaMC|H)**|gN8dyxxkpEbF_@Qzh|Y0V6-u|vkNJ0+ccD@wfKWxO@{K}( -zMa5BbAfS53q++RcjhQP=qh<7Ld8}B-cJ{u)UJ)-(#$W9aFpA-9{3=RlvElx-faIH% -ziJ8A397tgEi;UYvK$}df%7iB^f1@$_bq4e6J*3%`k@bS;YfThArc2+95w`_>GlkDP -zZIt*=cbBjaAiVF7?J^+)JzO`)2NeEm4$VVClRD=Ytkba$T`;^8p+IV{ojEn&^&8wb -zx-W?in_f#T(BSVtczGYiG_EuyZf-TG!H%WRa8(f6cQ%MwEV1mvB6tU1blWa_156%(K3gS4$HWPQ@RZ0q}Ryk<@EulKNRTnC>@AX6`! -z(^@Ub_3#tBII?cTyGy_GRJJPNJh -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 -zQ=9iBnRiou(DozM#eMdvgw -zY{Bd06D|tgzE4F_DdAPC=AHXEgim5^++cT46pGy=Kfn$bTMdqp?Z?{^2u~D7G<& -zoARrbI9Ow@JymFs{OnE@rdJz{gjmWSgSej+nqRU^o}3A5&jni-JhDm8PKJ!&+_89C -znB0^>tvc<+vZDXQ8r8&Je+rioa6>gwba? -z5QL@l8(wKXMUF?WcTC%!dw*dbpxHcWppocppHz>5B673K(hr!oU{^iSG5p6g#@8P=PAII=MABUZ{JmH9uT432* -zF`vY;E9oV1+P_<9-hbw@tPLoJ6%7**X=_&jnKNwD6}sz@N4Bh1r)0uFSk7lg#Bg-G*7twILCq00 -z8R9THlvPIamQ=HM^b^6`yj`vI7$6U*W-iZ*!y@&(jY5OqAH(1YOP3pPg9lX<^teI( -z)v--xCUJFoc6guGi6$Vnd9Wuy0vUNMhGh(=>3eJ089}1?kF1Q3i9PGv`7h|7 -zK=8GW)VW6Mt9A&w;H$5R@h`2Cv*^WWnJ@nd;yFJ)zJyEW|>r(A#>%7Zfzve8OW -z!to!G^Xq@84bc#VNAnwH142=}C@c=lmN~m7oGefUZ?$0UDm2m&jj02y^9ft_u`Va( -zEc}}7*NcB?$x~$1JR@{v_D-Thx7?@J#`Z8rmzvY+S`MVkkv>vC7gMhGu&{~syp0a3H -zWW64mvSE&L!u#Ggnuvwf#xe(-y?_W{_oXc-&EA4b%Rv0w*lV`>`PAD(m)mlNU-3|u -z71&iamXdTEB@zXXkHQ&wTWXM(Z<{0G+l?01dpjw-R8F+H_ZynakbPbfOx$r@v_%(E -zOn9?9=!F%7P4hPD>&xiXCvE?jOoabPJY;JgC<0#q&Y+U^(~1ed0Y~J;iBns*mm~mO -z$3wY+uB=E*fnR7Gd~x10^K?oYw$^{IedM`_uGfqm539OniOBWZhgLw8>^LtFnR5uv -zYf9+}STC=Gn)%`DpB^pc@lIA@O9J*IyBZv2QZ)B$&56dSyR$}p3h<64Uws>l8QueD -zer73ayZ|~B&UnAdO-?bHg)P@FS_1T!!o8i%dNs}7G1xi`RT;BPpQ -zwp&tWaftq0_|Hmc{tBXo*NOta7GC|A7Ao`FL(6}$UhL8UZ8Qt#pVH3}nkIPH@*q?x -zNa9YVQph1|!J8!Cf^sG;pu5MktX1~KS6St`dS6aLAHiRmXg9E~=aMf))iOFdr25;f -z$9|C%Wmefdve2SgV?x*+-QSVc_m$8dIr!nMm_m-Y+*PE5*%`>0Yyf=JcisDBB_BRY -z&;3$rT&yjCrZ5Mgo;!D@j(3?+up=Yjxw)rnxoQq^DYgd57ys*%h?pU~g5sD!_}nSm -zNg5iKu~(Ooun_5bygYN?3g9O4;P^Fi%9y;d+*+KHcE#if6UzJWQ-h1H1ncuN;Sa*S -z;|w0N8Ud!9pNMXs_B$6Y -z9YwjEADQdC({!7boGdG~#5f}jCC5|XQ#bgz4Y7gv(6e}sIBJ9RJORAlS-J6LU+Gy! -z&NBPTVYS&0oRZY>OTQ&kzPpaBRp1K0jB?3Pm_Dmj1F+B5u#D;5FpvF4>`UCo!pz<$uE<#I3R8=&Cq5g=k>6}{) -z$P94w2i2{d%eZ?w`yZIXB0%S^{wUq1RX$D!MFV@8&_I=XZ)6Dd!y^XXW2ftp2#zis -zzrTm)D7(eKe!|1YnT7xo;gB#gyptR(9h#1O~kL_Ax|>rExyr7*5b78y@g+Cgd=X -zeAg^mMi4hxg#{#hZ@wYqITBoJ=a$T}`$v6kh-ib_I`=Gl42jp3%X-UK7vh7DJxSV)gCYE8P5V -zDh6hB+RL!}xs8TV62}uhl2>tT5iGA4wcTWf%@(l=3tGPKOC7<{NPqRv_8sgfNY%Pb -zLW`iQ6}q7X6x&Jv@F_4|sZINxOaHs!S$PH)hJeF;i`m^B8jR;6aVCkcK;c -zyE|BC*YDyh&sOETE*_0wZ`=HT8hVl^GZS-j_eLF_W6Bo%mn@22w7ryKNs_E(nP~I# -zw6mFdPd#BVD662o7apMsv$Edhank#m#_x#+D$_sN;C+9|hS<|Dp2|WxUE+aj*fSK& -zWMMu}?5@T9h9c=;Ly}urqWwNI_uHhiaqsgVgt002cm_vX6Y)@Y7kc8-Vmd~&C@Qbd -zUMsI8m$Ibl)}SsnV2cQKA2VJ|qmTQgFWh-+{J7F{%4TAG6c>h#5x@u*+HOP@VD+NR -zx!_AELG|R9n2kZwgHGcBWSUJ|Iw8i+D0_$ReJ!3P(ty+oM(+ntp#7K2zd8ZPU0pM> -z&7|#uTi#pnm-41hKXkW6m&gWqO-1AfO^O>-F<6|)ArrcAX75)Q<*vZoBs0PdN5VMl -z^H`tgRCF-S>HJ)MY@CUFp~4F%YGyoC$|DX|#I!TqC;GienALJ76L1Fuy@^li2P7mc -zL_Lak?ey+cQ%>5RHn-}fTF6M{cx;`lDB^H)Z#ZZ>78nkl0r -zX?W~$CEM#Za4Wq4rn4vr*Y;8oIW>JUHJMdC-8>I`{|g01eM#h{7@!Uv0Kxx?1cBE> -zRjhLCg`)->1yYiBXdzupP_s=S`gI;z!Yy=k<19xS-}i~!Ay6!w^&1+=%P(|#?FtvK -zgkcVv0IN2u;82r*A*HOS)%yOjJT3HtUj!NHr-HjP?V-=0{|Uky9NW27lOIZyYsZ0i -z=WtU(j&IRo(<|eGsaJbzW+J&|IY@UyIo*Kl3R325V6+o2^EILeL8-9ZUgp=@Jq#_l -zB$6`cEQP=4?d!+^i))+k(Lq#>Bv(Qg=Y{5;R2fHDe~j`=-3W055EHZ7?=D`RC`P)B -zybUgbJzng`J?nYs)e>xUZ5d6kVCbbl=mBzJO*q6aR -z$rv34PIv;++jJvG{25+;qL%5CrV%q2b1=>7A&xa-L7jR?{&kVUcPIsm2|aj$N7Z!9uM3rTD#oL -z+t01Z6N5*k&a8of`a&6hC6*+y=d|4MEvyv&OG7Aq$;k!WOP9Wwt6N-hStV@yxCIi@OAAM+ -z4mNG?0Htz*=TgBIBI0M3I2^7Z1`m?-T~Iy~1mY$gp -zNs=RWCIG#&|&m!L}^J|X%5C~&ujF9WphBL%`07O5rnDDS -zau% -zCP+rklk}9zJ@17vUb`{wu0c%fh$gTc3Hz;RqHG+DioT7)lwEuip^#+Y+8s-D8EOris;*l=DH*LF!Mf`MaC76me5#Xv -z5UHh;u6@@G+$I0niLE?ql-@(MPqM&sSSJ1!@DVSTRdc?wX`2^z?pIPry~9-6e`fcp -zxNGcz@mvKf`xM1oSAG+JwuL94KmwVNM;mrOo*hc6lwK?sHhK4=+&&?jr6zM?EIKqr -zy#vZ$pN3G$U2f+7_l+ZR4uq7=+)D4M-}iRQjC>_9HtH4fUx#npei%x%u^TA%)hdAq;`kaEdQ-X+W*c$NyC=cl#mDDDzh!EW(JN!NT+Hck7+6QWaUyi8 -zf<52A3a$}^Y?+242frAm1mr#nw)>UMeHh5c`iCIvF4OL0l}hgf8!wfc%&bhqOyn#* -zr=s;CI-G4BM1zCa9j`m6_%NuAKaTmq{#iHUS95Z! -zDr#3)-Au)Q{$G&CGWpMVh9T}6?`k}`RCPmGwUA>KsR`{%EavigZ_riO`yoS%|F95z -zPfRzVVvgWIs@Ps1Eb96%Ncb4{b-`ONxvRU^CxQ7-wO#J}upenB-=x|G%4HKnJVo-l -z85;Dzu)ZFJVBNymuFjD`?!%KTc6Gb^Z4;8xV}3t}TRIk;3&>lx>#KR5eD_!(t@Gy6 -zeO(5EQQ&GUUWX>ngIuVRli3}1bka`1Ob|XYT6YEYKmZI%frQgd*B@Ax6Csb2TSJVC -zgl#CJ5H_FF;m=_!fo?I_+CL`zDN&WB_?S;YRaNc9xX|5j514-P^HIKnIZ;{zHO7aJ -zX9GMW{E3!WYt$08{`dM9u4#E4A_C?-JKL$C?>cHBfbw2Zn8%(Oxv7(&W%qY}6!NL4 -zJKm+teRv|85x=de8{UF@C7M(C%EI&V5N6#DR0<`Bb3!R;A)me4Vmt)k;HS`x!d)ed -zs2|u$s~cjJB6T)zmb^@~6lCjaRF|_e{9$OqVR|_MY-3iI(Rczz$Pd}chrtY)77e-% -zN{2Da=IpQ-PDGmPUo{_}nJ4|R=qR_`mjIOi(kG9w>;xgNR;=)#*v>t7;(l7fNRCVq -zk$!gVb_7N82zWE(XFl5uM!vdPf578xa_pNyd-)zZ(7V2T2A~BQMStActFBVUmt}>Z -z0u5jx)Cr*{py16Rq@>Np{W8eS)nV#ylMBUO*v_e^jAz8X3E?gF5E`(+@QzQ2$mKpf -zS55tC+6Ce!Fkg;G323LQKZ43YoH{kb-!v>0 -zv%v08cu_7L?}$EZFLOND2y=d171+-AMje7ZVv1wMu2F>KlBmf}2;0qObw%sY2jWe5 -zQs0ua{S2Lheku6H+fR`@&$K%WF+Q}ZzI>lOC&v82jx?f -zgaeZ;^K`97NF5y0TcVJ##Q9E&xnI+kP%$mibbYJ=)2TZ3EVC*c=^9M0+Npe_}EdiQmw|-1(ip992f~{JTI3`^`AEP}O$z -zB%DXu?j~ut=DdiMI;gVboK7S7q36ejl#2TWZmi&JYcADPQ5!%{dyHq{GuvyYjjZ%cFVs0Dd8=GM!4qrU$0MG3#V;&A}~Me~B}G -z9V~>MMGy~G|8-wGw-ozGqT+X-%!^;4Ui)K2EU4v*4e+9&N7^3Sb67u~e@#{thO}F6 -z_(AOarc%MI1hya)oI5>)7&_F5Bkm%9@e!UwKm($;w|`qVh=d -zppe1aml;GVg)-PF$Q6O|qJ^lNt|b%aG&rjW#ut>z?HX`=z7C_D!MxOGv*+|fj@CZc -z_X56g7O{>(n=DdaeGZ}jaU#KdqhcYVPE`43vX@G=K`QL}5G7Oqb|9@|kpgRyw}mn> -z9g{+?OB&zTpUkxV1bCMJVVNyg5rt`y5LDe6)_ycryJ1fict%>NZ4QxT-x)x#x;Q9+N`E5IW6!L6F438$gD -z8zfi(#gP2|e&1!f$)l{`Ub>R>A&6xACdo(AiIOOPcu7V^|5%7hdrla-MMA%rSCtdu -zJ%}iUkAUT7(-)%k83Ki_fL(Pe--VyIoYoBE0==Nks!^(_SyR6sI#!_EkOZc9&Cq!E -zgf=9s7`{NvWN^hW45o5Uxh++9eEL$o;PAnAfZxF>#j#8Nkt;!)tCrJMlzxL3*dNi5VBhC`jLn3AFHR+co$Yl3W#rkVXyP)zrBqXc|c+4 -z@?#rE_Z-hr%B2`8qvv|OLi|fvsKyxY?S9W@{z9IhluUl!rO8oc_)yZm%DKYG1dle0 -z*LKvSRl4}X+ZKKSg*Pf41MQ(>zw96@hCJtEuS~ZO*SO|uFI)bk+<2Y9mo^~fIWxN2o(h`Jwdh-x$QPEk7=C1VsD_zG1?1OXZz -zZ(_axMTuSOH#C~xPlknr4>a;O_IXF%eH;HCR7)n8%efVmVUwSCYf|uFWy!W`Cw2n6 -zD6u;VNtF0CR!e;`Zw$=QafvvRXKKw5Z!tQ`fYzhPPN@Cmvh_rE#$9uwi+!-B>ifQ> -z4m8oDPj{mxN74ZH!OJ$_Gxv9RO+$kA8NZSz{wgE^s^Gm!y#Lt5vFWBq))ChUSlw9C -zwve!OU}*Uq68)CY4JA}PTk{ScehP(Y8-+Z6hGuzZpb0z2K@q^HQG+V#V*X}@`W{iG -zKlk4>)_-d5^U-OJgP*2~d)$X{AO6SDh{Li%wrZb%%3^~(gilxB<2~Bn!mHhPGbGBeTtg&?<)PGzwz850%47~KjJDgHu -zs#K?pORS3kqBU|s)y^xC24NV%a)J1dxzr@FE6(TfA99moi}f-qtWUe}wQL`-6u->N -zfwjNe)vF-XC2i(E4e?`D5r_4 -zK77UUvwz4R!k(N5ae>%CX>6bs2tq~#W&wRe`iGes8Q!qr1QA$rjd;Ze>O(86_{b*M -zPyrzp(tez=u$s>7;8V_#c*hmzMg~Gc*v*}o+;EK}Mcu|T|J`1OZblslhhi$0w0;-) -zs>=PTQfF%LljJFGvb+~}20H84h^#8*f8+P`GdqFe+=j-8NiSuVRbqh`ZvFc|5vt~I -zpui}Q(SQ{&VpN#hjvla@C$6?N8bd@n)bvu>?{7oReW~=P?)(qO1a-*- -ztDkOoO4y;ruZdY`;}x{|(!!lz#HwQ7@Rnu}C*^&;NxH%6Xj{L04(G~M>t(ikT|XUz -z)9d_nGMR~4lanZ4nGIriY&}VleAQ4KGU>O;vU4*EUzuAbRG;n8BT3Mx#IneK_MaJh -zuI;SZ_$#NiN83EvdobMqb>rkF!7MZ^Krl1687j`9j!LIY)#EcqDk??c8G-WzzXZN1 -z&(yil?qHon>(*To53JZPx!l2lPb8h)ODv}Xgjsyq>o9N=8#W}EFB9$pwFsm+0+<@U -zb6<7_znL~f%pPqp1W9I!vOndyhwbD^AbE{&@a)CNl7U -zFI7mFj^_>ql&<9IFKW8tkL=xDqnAWhuYV{F9y+*!n}N~2ydxr- -z-PK@KR<~Mc=@g)`MR2XuutKMHF!Og0Kgu2;=yySTY~Te}8ArB|K;Qkrb&`lR)Kx8d -z0g3%XGcd9P2#0nH{zOl3r3zDQaA%JOBoTet;#WmQFAtkGbR$<;KqGd|*9_N5>c1@9 -z&hN-c(Jws;i+uP};GHY-(Au)`zL2f5i%v@E#)Bwl%$8jOjkEc1gWrjxi=flSjUp)s -zc^x|?^TuAE`i%m+LKlJ8+rYN{v<-l -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 -zbZplAE@g>?s)1bD-QO-`jgo(& -z{NN3<#Bhe^O9|!two-ICaB)r~n5!lQKN?OYC9Wua4-6HQb9e-=4MKN7Xg!jhD_x_8E3pW!Lk7WNE|}tqKhOsm-$$={TUsey6G1J^7o;_sHyLCNvF6U8(^mc -zfrws_2sF)!A)o=mdihNc=K&WUAcCZDJYEyEqOEnS -znf#^PrOIoD4*lIr6GZ)_AK4qBy@9qR^_3g>sCz+wj@Rsd*=7PE<^qC0>N%^8U+#>? -zhd`oG_e-yX=rfAxD6bR&fHVMhiInvd?>%fSEs~fG`pamjCyeEp0*6hUBi^@h%?~0! -z96R{EPAAUVzy11>Av&SZ)6tHY?36feeymtS8g@x^H<&Y4cz;f+Dfd*E+VEm_Z7A`x -zUP#Xt^`h+y)6BuxN@)rHZLXqv$Eg~k;bPjs`SHnH2!@|{VJD9Jv&L;!Rlc5y_<~S@ -ze*=ymW`3LAxZmy^H8;6z`bNB>2R=HzN_9E=DT}8q$$vC&{Cqs8zdkkj_FB!9(>UNx -zi%r2Dd&Exbo6T|XZA%oo0988hiT5kD4mDY2GN^4XX`Hn!t%{Wt`T=!bRgS$0GygXguj3*H -z3W?zbm^c&>ZZTOZbv-qd6-kU&_JVK6HyWmg0R<5(=PwM{hVL``xvPE`Q@aSI2>pE9 -zM6K}a#3qArG#{q)cPCrxtRr3@oI -zQ7P?%^p<780XL$=u;7>X6`hsBCUF?#U9(bm|@Fb#gd4u}EjR+9N)q -z*KaHELZmG2{ckvB_3OJzvgg0E#Wa{~jc)uM;4u|$Vn~AlZCke69lKn42LJp0#;)xK -zaMX1n*gfX>E^p2zUDogX3$3&hi!42Jeh$vV%<#q5*8D?k_wQ@zi`qE+pwWjd=kFuR -zf!`k3y>)1taOsIvgFi`;s*wED(UUiy^jtXW4GFHr+u}%JWvwvflgO -zse;jev&-h7DF8(Kv}fuJIi=E;s2`!Sr<4aTAI2CiETOIOmy0=$!}GDH@#7KipNB$p -z6u;M6mk-Q9Y3E@6GEBVol!Me}#h}eLCH?{h10fuFc76f@YVW-6b)a*{PM -zMaqeL)BE;VrZh0T>1^>SY$kQ%Cd?7$zb-lvs64l1P2I&_o22rav_6-)fsrFK<{(dg -z)P?bx`91N6g&O%~*J={kax%ny9r?eZ_M+S*n7@?*r9%HcJLnAsDCdv3aA*lY5GiUb -zyKRr_5Kd%rtmulO%WrBQg~1wPKO!T91id^g72WNLB;c{;B1B_A;#gPTgMfE%BK`td5YI!m;L7E32wu -z$~`#F=qI8B)Ju7a*82Qga}d2XI(Ets`V(TpGW>cMFBAc%8obdla}Wq+)fBvw$|G<(DS -z*rnxn2B4<_Q<)Bvk0T+Wz6n+RT^$EyXvk%{U9Ik8u$UC&T~m(|o>$SL9HRLwJ{loW -z1|I=tcF(W-!e>s6K1R}sv0RM?!Pi(nzx`S7jbAivlC1rvB^|Yt&qEPG;O2jUCB{p*%UmH3yGc -zf0h0b#b$6HS|))Fi4eC`9@EqD8I{K(5A9P{7Qviz0%+55&h*EFWRbd&8Lvd~i|p_x -z6k^Y||y_f0zp#>^*YT%F)8XAvTGZ## -z&)z9wAF37YI98kGuP!_cLC -zDiV}XMAY@FOC_z}*oi?P8WMpvi-{bsqm6f3 -zWx`)P_jPAEnosOf6ZCc=db?=KJ@g0kT0=K&4i#iMU(j^14J;flWU&{|p&=Y?f^4V3 -zMpg`-rTUXXWVuPZIZmlgpu*Oe(7oHOF}%}+zEdx>vExC^Cp4>m!U8o}6ye7je7EdL -z?qy;`u3^?oZu9ZDX#%oLi}$ZHfmmiQJEo##Sj49GqD|*T<5M~3{Ea39I)lDs2e~Dm -zyR;d50O$vqwR>B(^E^V(%B$i%K9%AB@MTXME#8XS2`a%B$B)F#FV9RH@wmm&8&SAW -zd2gR^)YUDU!vw)pW+F;e9$)y|Of4Q3?y7kk{GsTzTqW7HfwI~_t!SA~wNfU>Ad=cN -zvqT1(nQh%ljqxqJQ=273fA_GDULDe6IuTJfgk8rl+4;0jBkmBH0Dd7`yILc=qRctW -z-3WjRf=-=%DNnv0+_7x1m!3;!ol>HYPB%0Ce(i^`HS{E$K-)7CddvX_HiH|RuF%Av -z&8Ej4rq^}omqB&Vf(D=nNJ~jlbD)vDnPbp=tyl&-#;fV&BbK9;94+m!gX5=NxI=F%ISCMPHymnk{~cOV^X*^2@r*s(IgI -z*f&Z{DI`5QObEKtek2K6HbV%*vk-z*b3Td;*g`xaPgL5gE03rOof4j_aRmPa$uKTD -z3qv(?clC24#`aG#1eG$0h@ET}P_51--;xg5PV*)75W{q9wg>A2bi_1D|HSm70yY2p -z-mm#Olj`Q=6m+1#n8?~R1^+#oI~th#@%TzYwIg1-!UfvqQU`>)+^lq4W+NKqve^_u -z7nts>r2m02*{QZ<958L9vB5~A*WeM-{{w6r0b(zzxHJ5Kzaiua|4>+TdqojzYG!N! -z!s0$Z^d8_mF@4^_sP%`8J48+VNBORg+#F2`qK>lu@QT^O6nbU*|hx -zY6qVYzz9aLi-*L7ln^wI#P`82pj}27C*r~^TC-+~l6HYaie_>-LSti>8du##dp?a` -zRawzu+MY=HJ90lwm613eQR#K{-?y;(5fB&~R>e^|CE~Qh7T>nJwdD~#;FE!OSJA^d -zKJUFPVa*#hc!iFMHgy15+}o_OxNu&89gulMm?Q#59>~k6z3t=ZeaFUSDt=l~*yJ1s -zZ?pb%H!!>a?^^clZWmTDP79Waz})Mj6hzoEY(yXHh`XFl9$TJWu=^ZS#MSq_^xe?RC4{U1wL -z8CKO6L@5acq)WPy5a|Z#l13Ei?go*N?(XhJLb?$Uq#Hq`JES`V-oBUjef;8{v(L`i -zGqYyaBrCV^{}AT8jr=_r7ecM`*9%V{X{ORN6*}u$`Pdmd!dDJU4mO$PmK;7Uw!DxM -zmtgMMhXylSVu?p;?tNFzSVAhCmghQ)sLtd>te|vlF@^yN73}77`FbM2yKUTscS-u9-)0>V%50d3Oz -z?rt@>9}U7n%MO<1mE -zGO9~FN1Vr<_Cx}$BTq3H20WNRjM4PISpSBpnC478?yZTuS>=HhbR|-kpWHZ^7C?5lBv&i -zO|grI&CDz41!F<_B`Gd6AuIOKo)U@rW6qwt(-I_k2ecRTlccyPs>NA6U@R+d@R3Nf -zt#5&s`PFxY4Nem4=MJZ!Kq5Fw2VwC1S$CK#-=W4~W9oaoujU?W6O#ztkH51G84CRi -zmACsie1$)>9qyRi8|gC;iM%cF$AOG9yaH0m`fSNg1ZPRr_@~4VAKvIAUaBOX7H#|3 -zMN@tV(gkW_I>tMr!bP!&v+Eps=@L9^ti9NQ(7^Y@#<2Hq#>%+-9sWgp1^Vc@`D=-P`Oc5NnK9OtZ%kKd)CL9ni^=m -z)8#e!7o(=*7{R{m;|yPaC?srY`}>-A@^O4m)BZ}k@w+F0V7*=29Rl}kdP{#;`>9(P -z(vYQmwfXyj{bpi9y?bX^_xBvgA_Sj!(;BO#nPoouF)bwWI(b*BFacfLsD%(~^6rtC -zsdIee2ge^+KU0nF;E!H0SviGzij{$B7&Ja!6@ND&WfDty$c-A#n`2&i7BaM4CI3C= -zkw3fwa?3Sp`k3Ju$|UC1zYVJQ#?7LC<3 -znRCVuccdjeaKo~-n2-pG>>wSi_7*@>q(|_QFRqS+#4g5{kCD(GhI@~PfB8}K!7;7^ -zw(>WNQRbdeX1HUB_YE<|!cEJU*wFh#*m1>9?tRnqPZ3my&*(qoL8>N%SPhU&8+XHn -zFTV}8qmx))ku)2GOGyLO;7V`<1s81!fd<%=qT-;mZq;Ev8e&5|K@$y6_e0V~2*z|P -zQH+?;_4jsv)WZUY$OrtAZAC(i{-CHY_KB^ZJE%Ik9KAdIN56%-$c?mFQPb$#@{&&{ -zsi`G!D%`{Km{IsX`|G8jB_e+uh)h>ixP%5<_ccIiL(a0oIRP*?jMggt-b^nwj2eIT -zaq+<{MlkQ|Y4}jR;8>@KdU#+dLFb9fQ1ia&PMK}Vw(v5MR|4F0n4F9kJBk2b2_T9c -zc505=R(jdWfc7iN*UoJLgdKdt?g<={;Hdw~`AKMIe#0cm+;dBTgu9N?mI`R@@S@SV -zSp@OPRD$0XLW~ObWsdecygmZ|Eg^SN5JHDVTfTq!ZpkSu=e<*-#wR@Q$334oszGL2#@~!*uh$S{q9lTS3$H -z%Za(~>nq=(*X2}8yHxy#yBPNZ<;c~G^n>9IKn@Cm@P8!KuM%7H)m<@H!N&idRHM91 -zv2*=*_^}m2R2m5nSJSSN0wXJ`=j%RYAA9QeKv*ORM-KOK{3_{%#}R(7RX8`~NJ40@ -zj`8u~ZubzM_vHVW4b`zSRdG7)4_^c@9t3Sp1)FUfRXx%VMiPYvk7QCH2%cyE_d^Xc -zI`XcK*=fX||KYv``E?>wt)#z}io*qoSn+ya504*X33IP_J|VLZh#0ODUYJ=tLuW)t -zd3!2!yPi_$njxWQ&%WdyYz-BsBZL?!L$+-vqRCuZ_W}+LP$%LxpLK*eN>Phq)J>=r -zRFPFE`9Zfe!a)8`C+qMAq;P>dRO0Hb$X;q0`P(*z-pTa4aS%fRP0Y$oXWw%%dKVC@ -zz!gP#?M&!dSndbk6*UX{`nwIG_G5w=?Uq(r*n5Ju3B_3a(%U%q&{Sxf2rHxr&2}}z -zi3*O$W{JATPfC*!U1b+pHsQ16F&nZ?C;O#;&^qh>_GTQ -z9v(bxht~>wF5x|Et{(PfqbK~|Mi8_3zNtu6@<7TM0ae|8HeZTmc7nIw+5nv{MXVe4 -zj?wmIH)sav&~L8-skmp?8a>^Ju!k;VHFO0UweptYbU~b@kk2%%bNM#3p5Uqx -zyFIP)lgliWW+F(5!EK-|77;f%rsy3os-5O#YP>#xB7lHne2C!NU+%r<4op@EiuRnM -zJj;B4Z~=^%Qfn&8}*77+07!j -zLN$K0GLW$Xr!L#AeF2oK_Ym2 -zVPi;0%Dv7;-2RZ<$~!uRWD=k0+-^UbwM{%@It1CyH2z)xPC|}sM8iSjz+oaf!MQ(q -zlNIog?C%#h)w0+3(65RW4%K^}!F#r37xxF~b+0AkSup7zX%tG)yx~%9sQN#*tO6w6 -z4h!po&G|d#1$YNEXVKIY8$KMgLn%v$NtPBfQ3Z;Ln%u(^I|RW#Z#H>K36 -zTYb(LV9Yv?mkB@F{Ic%=Qm6p#cW*RrkAhx_BB|44Zq&f30sag0qzZ!^p5k}9200t4 -zQE++>`jFUd5P5*2i9i44jBr#~CuE4bLGX^r_%Dd021+jA{O*jxeS?O;$GaZ$EKnqG -za~aVQ`47pvU(^38>ZyW>$)I_PK(o`yi|zfObx?#pq-s86lF7A%2G~e}KxnVMbi;Ye -z`y>vVqY5TP(`Tf-4aTpC!L}2sYtn<-vXquGqVoN}|5?-HZ(V-LdHkU`R0o$evqBwR -z;+;+J#KkV&<`Ymo5kwT{$I6@)c;U{mzhjeHk2kuPd0t^on~wN>l{c>JZy)5N!0%8H -zSH_n%psjnO1p-zf<8MP+g36<-tJKy7evn3j=$Y}O@%R5|&@~G#j!3!~< -zqXH-hm?Qzcyu95KCwU(GM3)dr2GKS#4F6Jx6x;XtYSTB$_YdXSJ_H_t#IT2C_|;YQ -z9R`#~5Gk(o_}ga1nW;y5I0@(@P??dA-7qmW&W441ME#&DmXC1*rl1Z>9$EbwD%nc5 -zt`b&!s9&zCl!PzzXMI%|_pUokrCc01xCQzfAs1LP64Us(<+Av|akV9q(gq84-ySNM*-FLz;e=|i4BWNf`i#F@eHKn?UaU?yrS}t)ATx`{Q -zylhJjjnL}pcEOIkn#Li#g-~>WVsy8ST5oNUP&zd$fEykwwh^_4W~xQKtO#RwZx#FEeIeYBHKZ87iOAX3q=BnYA%Mb=9{`B(Knk -zE}^W(#bH39YUGc(tciqhS$m-H`0_D%+}_kewN+uS3*;Xlwx9bNz%)*u;u0Qpnzcgre -z-f0A?XmtuHLU$iyCJ9}g@&N1sYa~uPjnN;FOb$+V5g9+m762!`n}9m^VR-f!vs{7pq!-K%h@htK)LQQ8;* -zn*+XT?%;Ft_%8AzGc|jWqrhyvJto(eBbBpjPPA~YA}IucfC<+UvAf6wWaE^{j%z9W -zEX-ymkPF|MQf`!MZuxSgqC7mTMxf2xO+Uy?q#@3Sz!hCq0GFZlJ~_`|+(imhaX#l( -z#W^EW)08;AQMLSe@~5`ui|ivYmp;#OPYBzC -zOQ|fP$A0?gc)wMPaAK>wCPJ0%dm2D!g|WsJesfXr7)4gB6k9}!w1rL-(X(00w5jod -z@ic7I^B}F-xmcb#WU=5;-|5_;0mRk?DSA*TmOV=+PZ)SI}wHCkff~-|KlxwLz)mWW? -zCJy6TsD28NZ|5DQX3p`tTu0=ja+Ot1OagLLQFJnN2~DBQL??ls`JpXMWsp7sWNIVH -zXvFlO`ETI##41&x0MeApv?}ILhl}8(< -zGrc4&5lPTm(?EV`pJxLMq0Zoz<;*NGRdJ)jRE^*{>a1nMHYRfJBw#=bMW;z3`Fx3@ -z3El_uI!yh-2(eot=f@DoBzK+Y|LQ2tw0`9LxYr95zl1p7FwNJxKhE$1D&BYg!&cjA -z`Qr3QUD~LD(-PF@coo7i`G3M_+WRrRyCXwoxg)3%{nD6HoV=5SVDK+%cIYuKW}h$y -zsrVJPyF2(9TT&xCb_& -znm77l0my-W(lEyRZT`KoP+jze2JKn0xpOlT{d;{j+j=3h@%b(s`U)-m&7(n-cvc+*;M@tB}DH>k9mCq3Cm#%OT -ze7!9&;*AU)SjEl!xXTC2o@QkJsqF64V(Dl|&@i$PSybNbcS6mf$d~>)lwQO+H=d-i -z!np$?W9QxFHn_5WXltBsjwGhCYtJ%kkOO#0%2hC;wQE -z4v$hkItYg4W#5Sw*?)pmjam2Z;4qxY^BK^mw#EpV4$DHss#$A?!!{Pl`}af1&yK~S -zIf~^GfJ{MNrh2aXQ&i4F?M)~tm`5W -z5;*a7t<0(y3W4$cE~1EcFxT)fYNJNJJ51;E~;Wo5L -z3J?x}O*i&YyC3F-2ZV&rYgE*_skw4Or`&Er2GQo#RO%D|2KdMfJq_e_K}rs;0L>`_ -zEYlX0NtYklxQ_@4_oudEd*Cd!F!mejJ8)@01?fcKsC{Ql&61x~*%qqOdrWK+NV`45 -zYe$N&9{Lu)X}Es0tAc%c(sI@yO}XG;Rt5>H1aqq4kdC>Cyqu3xjEmykDYNX{fnVI7 -zJb;h3Gzs@I%|@)9723IF?N>7Nl{XRxF=>?Yhv^2>^`edYXpjMc-GqNGpIC^Knf52^ -znA;yh!Mf^gR!G`AiGC?4sEneMJ!wIkj{rN$k?{`40JW(=oOBLa7X%PLNlaru*?!A- -zp%P|J4e&Ov|5lw;3FJeHTuA#L9~|%>X|q*0d;a-Bv5c)u>5PmuQ}&zLZcD{6cpL12 -z{$azw&QA;tMB1ge%dk4w_LtpR6kf>cRwnPYSBL)swt1*{c8H~5W{;IFA@{Yl_I6Bp}wqpJ=K|D6~LdhAk^Qo*d0a8kJ<^k_5D!TIKH -zYDdxiCXK%&F!H9ECD;?PVn3w5&fJOz%P&H-32P -zJ2c}+o!#5#fl2kMg4<^{a$p8ke)AAM{?uV9%*1|xK -zk1PaW*NM==w+uEzMBS=)<4e8r{@?MQgWYQGuMZq1Y;sAN|K)k^&H|_s7!HD)PZVXU -z&MSxheSNSkCL9vlBw^5mSJ%fV(I*@%Cq6`RAL-eSZyEhPI)wSTy@FTd+04|x#{)`Qs-nk5;p -zRTkV|v+_;U$rB+*93LP0Wh5);(?$7rsD>PQ -zSx0$FiTi6wUJEOn9?dCyq}KRrNH1^NU_jf$=g8B4&}dwJW4P9xywP8&8T_x8l-W&_ -zq=d?`6j4YNFU3m$MhYZ8VX0}H4&wILv`aRRhwhk1xYtaJkG39N`Jm;)PnU9H47p~4 -zNMZNnAYtfL7R(Eui{dxYbL~P_8PmlLt8d5mS1vtAe00g0QH5B|;L%!q?;~Afak-_o -zv(UY+Bsoh;<``qkQ>pLy7EDlpe_U;;EDLW@yi$43?jU@vc;+{Sf$+64)JL?^J+%~c -zXt95ymAIAn2wtt?SeX&8Za9agl=*tIXBE%xiyPsRYCI6Tb5DY90OeDIQIsW~`(Ngi -zG`g>jc?Qo8LqEReC4^0+7j|5Zi3fMqWpvyDW9jW9a`<7?NZy1}uJ~2qsBGP&5Y?X2 -zBwNZd8l}sJMKD-!u3g$90ye30Q*mE28xDlB9w`%SB{4Nm)r3K1PncEjN<`-7(fqh- -zxm7jGmZ;{x$zrw1n>As}*U1+qzz?PlOu{Ku1sUtUnoYWU)R8u1p*{ATK^oU=(pc1!Fh%8@Ue(fb>%Wn`hm=LCYJeYB;)NTj{4VnsUBOx`BKvN -zA>Gs^p1aPieM8#L&f&ro3^;ChUjh29ZZ4t~kNm2tsFWv}hekT7H|l++C9hNryQM|! -zFt~O&$x|`6a$y}lm%cnXq4c6}g`oA|o$Y;3R6427l?iDph0qG#N?kZB8G&-=WzfC* -zH}JUyX`hbek8nN`FPbEM%r*i`Qv@4hpok=ESD5KAfHAtda=P{=c1H-QzblM<7Oa9K -zd@h!nKGurAz-0JSil?tX3d!K|vpVY|(+0N<`2NW`zbKVw -zIjd)ra@49n&D`yJr -z%J`H$*F+QJdtpxv_K?gPO0Y0QXvkai%%+os5}8-Ij+?fZ|7~?IUu&8Cx@bar|FdkX>)#kr)*oJ#< -zl`H&5Z>EMkQn20#;eE6062p_Ab -zZ=PP63l*Hd0$AmScoa(McjWOhf-hJ^OD@WlcA=BJdO=Jx{q5~mF{Az$<~S?pWE>NC -zM~5?QTH-2VH0Q3X9!&2kc6~=JN=)_#66Z1rkjbMz$ -z>Oi1NeEQGtFpVh#6b~#w6i4S5)o`nym7)9;f*b#B5MAJjcwr263Vt@-O9CH%;U94( -zdk`Yf5?G3jZTXiECcMpBd`dC8jTYq(&51Vn@x -zvcTr&+ng6_5;?`3+?jk1v5p!-?u$2cn>N}x;3Yn^U|HnlA2BULol+!@3xl^f5R6s< -zp3)ENCskZYK-$)*xuDk5tCYoj3P*jSKya~6ct^isI{lagIZ{3=3e7-`ep_2gLtmHZ(a)ThbkWaS-X625*s# -zFl`mDlF|CH|M|0k1tBF7w|a;J{~POd56#{9nV9^SOXPLi-w(q>3jn56fu~#d6p2e6eGAH<#Rc)sh&bQRy?WrQJ@M&Q#E=b0fxk$dR -z&+)`a?XLx=p$+CkpHuK51^6zbD$BLc+ZWx4WY6Q-#41YEUPnn)m~N7()YTlOLhIpy -zofdP`EbbV7ec0u~;*~T{K*k+sEeT1-QYXT=erk>6V0^ky&mJ}D_@?{%tz!ttF3Ujd -zM(f&Q!{ms7Z}5Vvm!;vMc+h^SN4+dyPg-CORs~4oL4@*Cqv~V^sn-(Q>`#K`*Z2r* -z$eeXD#ZdjQY6!*d?7!rVFL{Tb- -zFW;hqbS{in?nGQ}eBb{Lej-c>C(I=9=)D^Z$)4qoD*7QScK(@mz}_LmjW$NhsCFpz -zR6e)3pwyH|Gi}FiLJ0(({Gla-NyNT4#4cu&R`;0biCKb>9 -zf)d`uYVll(4(*r3sSA2+qIz**kYu~~Kug++v -zx0r1Y#Duv1VqvZQ_#pRI43z4{9p-m4FP6;+b{**0+&1F)QI&qY5Ps{W591r<>GtP3 -z!Edfz}PHI}nt{QqMb@(kxPKhr0A68{U>}H;(G=lm+ -z7{s3hZewEHU`>@Jd@?dpZuFV3I~k4a`+Zi=8LbtA~zr$P$K~S-rI2@Q9+ULe=jI>iTM! -z5V-46n3iwt_fLt&8lSNJq05_x3ykYm$aM5n$cVNug}EZy-=a*d?X$nIoY5iq?IP7- -zC^4oVMh%k!0W)$|X@S(I#g#4NAh*ETZfi~#Mx@K!$nS5{N{VbK8$~+>*#*}H69;DlCOmki8o3apjqlnLt+ma5WW>Cl@dnX2Y(P0-voF?+Cc2m#m@ -z?7p|We8?Nu%=mT0%3dDSm=4iDP&e$loNQd>N@AvoHcoyHC|PHkqf+zG^P}n!$T^gAU;u1p8Xtdxt>3)3#{I0F&ieTlGXLHVG%8Q5qkp)WC -z6LqUd9#t9H}<=?lE^EV=HI;Cs998*#+>SJ8Z^Zre3MCf~;%$KB_8 -zMk%kleiIh?pd!ttvSIxhVFbe9S^(RrEXMJgr{T_vJvW2B^!=8haK>AaJi>zs)L!$S -z1+`)@mWA(frc{E*uosFeXfl7cl(DIi4ChgDFpYlBKe|irx;(@5Qpt4rcbtA(Xh-Cc -z%LTs=sf?C@D9)0(_7Ahc1aoVABb<-kM5pls4q0!C-t@a@2w^FhXb0mTX}+)*DN1}! -z-zeb&en!`7&%+-=uzd>-@<#bS8~f*zb}Uj^?RmN~n#O*$PgODnMDB6x;O14z8k7(B -z7nJ}!ssQg>sf1uA7CNt@74^Z7zTsz+5E^=C8!kTln|H)lB-bD3J@6l14Qtzi09rr9 -z?#4~hFor;>5n7GcE|wk-?73f_VLI8*IEseD!AFJ9L$K#bZ*uhCiDCEkoWGvfb}Lx3=mVp{z08yd0vMwOdk6$fa%U-f2~ENxn9Q}V3&0BoI6Ci3V-L5?@m3j)eF|8S -zF>4xxfXU$2$uW+!EW=pSmuDLOyp$sRuIA^ZARR0ya>{tTt;<2KQtwB|+T=)F@Dn36 -zRB*V-g>Z!Ai43c>dU;^Z<3xo!ww9Y-ho{UZ>Iu+UBY|N9E98tf`;U65Rdysd$FGCd -z5ehxO_Cc-DW)myi+>Qnhi~m*f^JD*jKWXoc+Aw<2CgOsN({=_Sv4{n*E2@7}1u>kL -z&sI#6Vo+`ZhLM+sz#n|*mfh0GM#Z64^HDDz00g0{;W{ar>IDkp+Q&H3eT@Ap#af6& -z;fs4`&RkRPC7pAOKfCcbani@iE(aK7C5VxK$9mCTw{D0lDv_ihiXTuQ7-QVjjb@ZV -zIuG_gYJecs_Jbgr^v_FsymT9FH92!R9{t`9o;u(c5DSwZCc% -zhlHo<20hO*Up%VP%fnL{59@{|n`aj6FZi~(q!c9m|cWzfO?DW<%71vg&;{11g -zduNX(+j0O1oq*Uq_s4kAf|Vm%?w@Ni&W|D-_PR|=N!fG|R3HkUyGu)xrhP1xfxH31 -zqRm9amEZ*axF>O=JGUN{Tpxrc8km^e9mjkr=eS+rIh2X4hUjr%`%te8BYlaSKeJQh -zN&P{Qab`b6_Ez~Y6aS<^GYyh_I_@3ZL3l$9n`VR;PMo_ud?wb;^GPe6eH^8k7mMTl -zy`gO`9Z1lW1)D${v3a}b%iAKMK-l1?uK7`29MY%Ditpo0UVjkSFJTrS7Sk_YHEBlH -zQ&kHWxA`5;V>UW{A7WL>ozW>Z!anjP;HS*wqqeZl -zVj7XY>OTLCBf0e0J;ciR -zSeCfOq=GaQ7@QX=wrYIFIf<@1Ig$FDm$jVPt)yHk@=${c9PX_kN^)d=dqKIZ-Kno; -z?NP?QA@+EK*^T6(t84pZ!NAO@gzb!3XUa1$>L#R9Wv~!*_%grDui7J@+N%nt9T;q{ -z%aif>ChoSyx|FY}GRlYI?T%84$GMDm%W^ES3`i -zcwHcS7hF6>*1aYvV@rNUAaR!u4f#TJ^zAB!fj45`dIvSpFzM;gNTCwK$W2}zeZHdo -zriu+=YD;^Z>sgk$NH^)6&tFEv9C#2%H1{=BD{hS{&{!^YCk?uw2sY`CJQ^*+5vfsV -zRvPPsy&;({0zG?_MFb49W)23JVKdc?e-?p{7#y(BM1>l7OB#gOHgzmTcR42#KIlp& -z)US=$k77q%xe6Xr_K}(EEr|ay#v#l3`IF$!fdh2PRwcdS>EFNJ^JX^Md|nkAm0#{9 -z`^N>^D8@Bi(pK;j`P(4Ael=HG+B?5i8Tsl|)oB5#M}7aBAwzNVevrt|!P4Uy-57~88-`DPt`%w)2pk!UF9OyCz>My4kR$WhPT?RPZ`ECT$sU$-IR1%~uN-NpVxD_oMdG4~t5VC!yWV#$6&_qf|lH5!O*9 -zm(-D-ZQA?$ktlGixuGFX{OBzZ93Oid|L@E`JL-DoH+@f0e>koI&rwF5; -z9KJ9)&6r5sG_L<&hRk+|z(&kx?JMDAvbcHxfCGQQc~ck`=RFmNidxX&!1PjS!}G`g -zFPz7~Qn+VXHSPE7(qJP&JLEgDzxC!*wkJ94YDhElG`H&KhpD+0|6k%HG%m24b3$@c -zsNm%`LC)1e)Nc!6v1CmmxB!AOt7T?dpx}l*jj!#rmih -zfFTxG=>}tBw|2tOu)QN0!^l_^7+?C}J^i`Azfue07vuBh?^?SvJSt!9fS}rw-r0_b -z63qGGqE$tPbB6EY*~wL9V9beodSngNXq@19&8aYzH#l23Q0SEDhQQ1 -zjcbDH=cpC;2lbv>1MdV#z&!yrh>GB(erGM&#Y#y~dbVx#qT*+Z-Ay#Gv|u7s#l1w{ -zJsf4`Zi>e0{hoVxHdELDGIqh{U*w38e-oQ*>Ts`-1qpWqH@g^9F$O8h2%b6a34#Y| -zq0&qf!oi)N=H?i5nyyk#>Wv0ooE;^fTomYKO_CyLgbP{oC{fm8H-e0L(La}uE6-*>pL>5m8 -zqbnh5yWSoir||LKp}(OL7g6WuVqVf>&Zxo3?K?+0Bq3XGl1Hqgdx`8AD1=?UXk@w+ -zZ;Z1=^1s3$Mt!TqMqm!8OekZY(A%ovV=*zT9SqqY>An7mD9!aQHoS=;wxlp2OjEP+ -z%eM(7&xUg?qqpuEL}@Gu0xqDm^(LJdN#VBmIY%Dz-MBumP@OqO6aOjOiwsULoqhsZ -z3gcN2t>BL_8L@}#v>-y7f(u@JxJ?JfUERh#WoBDy%6Jlz&HUGdTD18 -zf?js^^Hh+nYpX8(uw!w!ScC%YrWhu^Bz -zUgaHEnEF%#xA>Q*v5;634)WA5o;K72{iC^QPtVb(-?m+6aYCH5<*@cMnD-NS_dQv} -z!(VbBkxf9p`DLxqdZ^mC-b*KYe?{!X9VKd7QsYDfg$Ic+a2T4L2Clq#zL@ -zL>TGMv`0B*JzTP{GjY$P<$_X^siF_Zy62l8?0nU5N(QWmZ!TLXarCXPTv;GK1$j!0KZLVqtXn?@&9q<-LOr*95fh_mNJ -z7%85UBRu|7w}FX20v8OMs%S7tOgHH{9)0O6v5aiKvwsZhE{aR{_+Jv_9`XniB`p0c -ztL$;kQFDADhm=|gy3f`%f`JMr{~X)qLPSzkbNy`JMevDzqyP(6vp{!7*dD|>{=R5-)=hR2*CfM%?H=B>8BcSc>e0 -zm%fQf-t!Dp+U1a-9TmH1VeU7NfoTMKySiKAwoyC41ee}P{yMfGfOdEtPpLpoNiCV_ -z2~`udM=nfvf#-bKo&(r*m9YBadK3-^{p&V(YUPU>!y}Bo(~gFd6wsr|nzAjs8ard2 -zA6$h -zaz!UOR3>E@i>5N>f6`5xwA1}QZ^tk^vL7yu||D@6u(*B<>WUrWs$I1H+&0T=me!`NM4Ux6juYz&;<=GJ|$RAN#{KdAWJq -z%LfCxzf@sL8rjsVc<@z@k(*<2wt*ymP^FZZh%98Ar#dlIrd8@?wR}qv*+s&P!>GAZ -ztQ(clE(7CYvnY5F_?nkJ1gp;&`*ObYVEdEPJAT*a&DXuWA}QVV$vla3c7GNHj=D1u -z1_d6)VV}#;k6p_;c~^Y)Tsd|NhMg7??hX0IOj|{P{m~CGKwe0~cS$E5WNy=*3`u=? -zX-h?$mMSv`{tq;>LHZb9IED0LRZ&dRwX0-P&nFY^Bi~b1I6D?q-5kL>}U3uIW-_6{meQd(zhhpZdpUG@#}d -za#olo5t8Y~(YR)P@o-+Dz6-B4ad8@|`1s|!xXi~DZk(FO%>x=C<36LrOl_xuIcGJc -znWzZ+6g@M+_8g08yEZ_Yhex|NKO -z5$i}uhB~mOB-20Oc*-e~>s-+5twcpn>mNHg%^5_fMe>j;eKE&+1_>@9!uWM8u5;W} -zFrFWRJ5^i_%j;po0-Mo{2^-VSQP0$5w>|nlQfAM46jt|Jp6Q`ub#;e<>-5?h61Otp -z-G@*<&aS1ISHDD`Ra^=4E=Ll_6W}TUDiNh>I69~8TnVepoIs~1IW}bMfu!kA0I4(A -zVz7bb&c{+kM``Fd*;lJX2I12NMoU>*!;e$p*!MMq}jF=PJkZM8V%-hft;cB`8 -zDs-PbhH^;Q(2V!D*!{i`2`t*&@HO(9!KMs*?y{KKdkNCd(2r9PVkG4v8szGRwOg}% -zZoFRle-xd&Bq9fPNrp+%-vVXE>pT!%C8tl&v%gB(x{+ss5NMl={8kI$Q#eH$-zcrb -z@-sTE?C}9h0Cr@w27QAG3U5#P$Hrw=l2dGM^AP3{GHe6r0tL%|Ea73{4q>q|ZB|`H -zZ9h+)W)u88p{4adn1e7)s2LEhFG_BzNYlxrELr^ANZ=&_T6dHK{7jo2d64UGRJ^o~ -z&md7d5BAOBV7Be8v^lG&?6$5XG5K_#k%Esf5`A9O83_(Y6Plr-^~$K%k{^_d88|aW -zEK&KZwb?UG)aZV~XF2GPWr-W;2P*wh*kOy6XZ+Q1b?|1+9<*El8>2xR^4Srvi`dZd -zIG|J3);_(~fGem?Jg%&6B)A|{i>PDZ5d^y9xc9cp9-)!$cF2X)>_>GJ^dN$H7R~y_&@?5z#5OYVtIQLqglGNkjz== -zI7%PR%fq*)4Pz`6aLf8b!YR;@4Nt;j=?`$)c@(Mw@T)kQ6KHnL$=yW%_xWoiDp&+` -z481$V)=wuG3wSonI-RfZ6UW=?1ym)^rNpyxA7P>Lc%ha4j%tF&@C#*?0Sh`cUySbm -zM)|TVH8L!D2rJcG6}e1xS#i^eR9XA#p$pG8Og3x?P0+QA-3Jmt?r(VY*d5u|2Cu@I -zZdBHFlM6U|-JPng8sETUksWtus=Ot!Sp-32KuO^lMR-Fyar|RyNMFX8iO28GD -zy5Zv{5sc8%$)qB}YiU%9A!@)#5+LE7$w+h0@N_6F&OGP1{DXz-D55i&Jc@% -zt!-x2aQ0yXMUjgUPh?=ZPX%$$y?HORb{rDi0buyl%I~%F3mQ0TqraY0otugoPlhNj -zGsJ!35!#Jnf!Zy_n>M=Gh7d9P@9y{;bsU -zWr$d?kd9c^wLwS`%|&3`t4W1cl(qcQ+Z~BrXl?4@B^N&62;Xbt$rdcq;nj&UMSZe- -z6gC&ySy_eOXj#IeCWy*TOxSA{vMZHlTL0ohwa9c+wvy0@!S6|<;G+0|{t!ubmBOF6(281IDO}l_BIJON6PLwwZey^Gnd`#* -z$|U*)I%vVm@Cvv0*;>?gsaY{+^`Z&1L@L2nk|ppr$!s -zR2-1AN>5f0aV9vcrCJkjlXO@SR9lqxNE0iUcGC}Fust9w;o{`(ts&QNH3%uP?!wGAgd)9Y+X0ucnuH2q!>(g7S8 -zyhqo~;%2QMRXLAD=LL{kGf4@bWd9sum**Ryjm;u8c?=X-<%v>9;%W{JPGm0`LYV{a3A+VJ~eq(YOuN^AbtrF9AOdapGI$m)&s7lV4yf -zOwnz7GV33RvDWo -zfDZX98@lU;$#}xq0Fu}9gyUN5MeSJA6T;=z;CupPJ17=|dwjvK$gZLhUD?d?8>z+hK{K!WS4vai!YCCXnOsoQi+8V)YR`3KnONJ+U|rE){xY{9C`IvJ -zI7|N7078j*zNIXq6?B{q5?k--U7b`Wuur9K&Jeneg5iEM43# -zkv4@|z7)4MKa0fai1QZOb1CgZ$GPY1KzszGU**Sud!D*^$$sn-?5b&w -zQpxu1O>6K3C%IW+I(40@;4|EBN_#O|FT8^29zI4}K_f|gULIm2?w1Vk1Ft0}d|;-0 -zsR0%D!vL9a+bb9$oA;iNG78z$Ff}>vbGIqH*&1Ef`TJ1z0;lI$t?JF8^id|;CVW{| -zOQ<_wNT4@Z^v8Yn3_&MeW03ge5WU)O=_h^{$)JEKgcWimY!8o=&i`j3H&rK9H}3oOk#Y3=sJJF*j(JWO*D>JxMW-&xpQac&YXJAb56mMS5C1TB6_+)9=+j1(#GjdlI-v5 -z0891&AXNG=6LlWV^$Ph6F7F~2?!wJ`SXVA^sM=eWy1(CGz{}I%h7Jnd&yS+a7jD9X -zTv^%}LgV#dpLWv!+;>UMt10W~U?&3ZpS!=x=Xny~9Qhw6ogwR)M6XKQ9Rlezlg#&G -zWvC-;|JB{ME9b24z4sXZgqw0yEx0fGS`Ajm75E;_F(W;zIRumDFZ^IhOTagh$YrIC -zzA%PWwz0tt#TP{$)YZ%+bK3|V6QtEfRfAmBJHT6?Es3CQS3S_UW|5Y)54$+6zso?k?5m}ZT^z(ZylXnT2Ms7XCSf}^#I8b -z>f1T!YU@3G_~u>4<%RjI6EFOJ4@3++Hsbfj5_y$XwEP#b>V{8ZjduBDPWy9RCyC&? -z+VIi|uQbF`v`bQ_d^}JwJQvj67wx#a4Gk~z-!+~8<27*1Kz~*8Bp&x}dT7jOf{#ld -z3#O}Nc3Cxe<8)zzqYJ)-nRGEpEhl!OUrr6F%S4CQ=dkHpNO%OGYl8p>HBD=SOAk^j -z)Uy)yL4gh)_z@s>q~&$^D(mRd0kQdcb}TkXqUOh6m(SSksqFo0CbQeMSSU_T{#y~H -zfS>nd&f47_@6=aZvsMB@)W*o0j9&TEwhfyNWl^Fzo2O4KV5Nfrm?^SOHe_~G -zpp{ao_F*!F&jvo0A^z21R^x((eh12yPf^6=3^^DiAL)=Hx;BeTqzvZbfJOZ?dw_qt -z5^g5?PRxcDrfwtAyRZ3-lXiy*J>Aq(H=Pl$uxj(fiYq5mH5Ve8@Q^^@3T5e~EgPn9 -z-XH&}HhnYr8wRF>&r^|gbbP4&;hu*aQocCsN(0L~?t6c|y7_u(8oJZYQt^+p?!i5WZxKv3$ -zR@t)XEi%Nxb^I~Qc0%zoYSlYH&LYL|s@R9`Bqn&f`HKL01-kcDypr{FZD>V4&xCr< -zuuLTGe()QItJmWX1~jqHRaluWDp{q!@M?eIyYZCMnuG|pWNEO%UT{7rXm-j%5hW&O -zgaPp}n3~x?hZwuGP#A$csXr=46@QDjwe2gPPokZoQwo2Ss(%rG^53z`e`3QW$-x}< -zEJV1ilz1n#U&s8bw2eOwW?}@gK0dANS@d|ocRb4TTUnZKyk&n*H0jp!nEPI|<1qCN -z8cMAJMeu#m-`2czj}*nmIKS`J!IY*UO6w$09tNqLF0l5n`h;!nOZSb3`Hg&@BQEkW3kE-cK -zk13PY3IW3U>b?ML*A@zZ!UB;+CST&=F(p2PIIPPm7&vfe8fe+P#bm%@-2Bttca_ -z$*?3s5VUF{UJH84A+9$cM%Cq49;9%ae|Gh^9R@*LNly7LEJWN;>J`ABcG|JLsZG^? -zHYiGJ5Dm5i+*ZM$Ber+s8;$8m61(n4eJ=hDiF0ikh_`2UySnXkSfS -z-?Kx9rc%dwQskjhQmk`&Bi#r$sE-d3x7d -z3=X>FBgI~M;(Vity0~%>8J*FZ`nPFpVuc~Jf~iC>`~k!6=SBrUCBb*6c`x>dk7;kE -za=L)n@kfRH?6`U*;Uy#-P_e1+oi3^s;v){g)wcKXkeVF&cqK1AE0^gxp -zqu9)-k1IiAuWL91%q_c=^}6BlCjx_5J|RUacJ3KQWq%@G$xe$-N#Rrcr=##+8)(jd -z@qNb_+1})ER20&`#Sn#+S^<}bu=k;U -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 -zKK+_Msp_h1W<*CF(dbs8jr#_k1IM{pp+B5zE -zp2}ZU;81V({=2C|texYFHOFg79;;@&O|y~Weoh9}D^`OWwXUv3M5O3m60%@!V$<;`v@VF~D!-=Gg@mc19i-oiC(h9xHW=9Ke$Ra@fVjwy` -zc5ev@7Mb^WCETxMqigD4QD>rTj(pLByzzH4BI*I4&y{q2F@kYh0Tl7sRJlKRRK1pe -z1x7;!!7;_aIIU_G0p^a$vXz8g_@OwDVcH^p$N#P+YI4cNKGB_tTAP@)o5)sF&NfifZ=G>SyaCq{!-5AVZ -zZ1^}LoJzs$gt|V+E%Ns%vDgPBB#jdR^PNi$T%AP~(mC!$l^T33=qBsUDs>3EqPw(( -zuaAa%ox{XfTh)(z_69MZzQfRSBc;XVt3~OzY}1As>FkpyQf?pQy?{RNOy$Ch!q!)5 -zkrH{4C8YC`0+o^Pl~WC5$^rXqKLj?}bxgS@M5h(Vct}1D5^+3o -zqN@@Ye_z7XIPu@yCWIcYLHvEF -zhu}W%ujYrquTz{6&8G^{juvW>pcfghS5@pIkD^zV7S=p%yaX8~q@Z0W#zl9R*ARCd -zH8MKbb3!kruf>ebdB832VW&FN-$yug_~80(-y~T!naAnS5q!NbJVJw#{H0l&=t_3z -z41jpRf>5R|`l3d-$>IH^-=R&BlL~%%?L~U2n;XS-7(kV5g38{TTy(gOg@Me*#)tBQ -zkB+rMjT$Q~uX#Ep;1>`x<;=iG3)NR7_b=tMeyHZ%=o&#k`m;d)#oR-xRH@tyY^rdD -zU?Li3`g=3LAp?4%5D7_Z#F?vTy=g(7#-d(pHa3c3V3;}TBa5{c92jy;HKT<{b&F<= -z#G5<|T8Lx`cEOxKqYh;E<4<60Nd#xkU!lW-BJ`|QOZGvW@wB9${0j;}`NPcO_qbUj -zfj>XoQCf}lh0(-}{f~KuR{frFgLOZ1sHhd=ppGs=G4*9e3e&XsO93lP4AK^c(N<1Z -zvpyW-jWTgU#wkuqutns}U?wyXK -z6T~#9uZl14v9Ke9oDogN4>@JEuyKKik%r{h1jR5@DGtr}V2V~K&cz<7+#AvOIe7pF -z@ImOM(C;mp>`}MQu9U3}_2SV29HIhp(ON|FA&yij6_a#UEQa=r&1HeNy?`AI_@y$w -zJ5`Vwd1)tgp}_#p@1EN%rfUyGp%1(8!8-xcO^6Kn$!%$U*m+o`iK3njA~(QngG>)* -zAh$tB_XieT)yEbN*SJ$?q*Evp>S2sy5OvppMu^EpC77`tW$Hhj;Iys;;3!ZduDe^I -z=F0Pv2@%;m&&o}$>5XY05cf<{S*2!SVt(QHfp}WG8~HbT@;#Xia>+9eSsy7I3WNLl -z*#@f!X0U>r*mO|jRAN|D(qwryeU|^4-o5qM5|p%IGhmWiOOlADF(Vmvu!cJX3=nz$~v))3mNQpkl~$#T`545xy=O2Se4HV#7A4jqFM-= -zEQenALoJhYeKMtE{g%YFR7c%z4J)c%E&KVqln@zC=U)0u@?$|?bhn?e_w}XC;?}!r -z@1V|0P8YJ)hvhpCS -zb2OpDH;19{*{5s+hLJ{wH^I$Q^rQ3f0T2Fjqn-*|;vw8G_4-V@+<9pVOlJm9`ZpX7 -zbOXfJ_j3G7)3*`|-A~No`jE?!QWQSsRM>H$6~eq*Se$L_d%;)dnOK<~>p#2`O@H6) -z{t6J5T6oLn1}o?c!r~S#!xeIz{5Y^blQdW$kqrqRGc!IOnZgsq>}ur*#vHazQ4(9smywkt{Lk}9=V(4M@h;_$y?^vbEdD1Od73O+ -zHaP)|P79ojLE3}}t@?O-t__@vDsHCAl-ur_?_A!U&JWYBG^Tp7q;JzK8Dda($?xS( -zXkAsTorY=!oI;uc4-VZEciTgI&xSD0te1R2ah~L^rBa_@=Uico3Z3`qJ*+_b8V~+Q}dBB8ma|nXc7F}F6UJ^ -zF8zFzh4n&QX?dd3D=eB?ihd1`0nWhzm8g(e-;C46WU=AeO4*_{Da$rCjG9mZQ_|NtIkru7{r2uB*|~DFExdGxQBRM6#t##oy(jPE -zoBG#gCqDvHAGmK7c@lwHhN>bDQ|+D>71j50$bEJ3HZ1wSr(&yJySxmAQdBe9$(A)O -zPn4on?NfnfQ$X>T`oo1QW0S4X)5oLqe03x5PxLTvG5=?WI9!0Q0Q<#!M6hS= -z&3=5qflAQrbL}zDzcT>Yx(z~?dCc=u39ZAc#BmYolz1eaZ=kv9`WF^3q(b5aOMt;(+b -z7&f0x)w$Pa&b0!-{64j`QJx}6-0bT9sS=yBn)kCdeSsJyuYN-PId3%P=bM&c{4#VT -z@)}=Ax#J4j -z!dwn}noO}x+pLtThMtby0Nwi;HHXhD)zVAVH~>(v_- -zO+zj(jp^r3f{Y1AAu%wlzR*@|ogJo~+~u2vG_E=V-QnTawd4yyqU3N10e?y$$$ -zzAm*(RX%|1vh%rVqL_+Ay+8@zIJ;9~4M~9%@#dV4R8$F-XpVB}9Lj({wVqDj>LrZ< -z&un8lkgls;<3hX7AEJ+ozU8smDGyDG|K`rod5!S4s_7G78*@^Y -z2%dBxBG0R7oo*zG5O#d!Lri}r{O#9^o3EwW@h%Qw1<+uK+~@~y+p_X(b_dcE0dX{M -z0w!rG@80;{gD+4Ecw%C#Y;55`7vZ~H6dy~W9+}f29s=<^51N;>9>JFV-H7)R)D5!Z -zPS93S@T$7vC9fCA*nP+L6lqj8ewX_ZrYA6Mce8}hxT-V5a_WLJ3XRN*X}rzk?Dv}O -zE~XqnsTH^`!7vyNCNk1y?OaxUT6EHAONN05Uu}4^jL#W#E&OZoR5I(=VD@{$EetITElVt4PF;PO-m%io(hScw#nf5VNo!oz);v~s!>t=WO;C%`1fWvf~7 -zI__eKDL+cD)h|36Hast#l?K=BL0_LVIs3Z|`qS}Pcl#m-Yuh~lH0n?g@L%*2*9QqB -z?@Z|{_sf+59`KpMWhB%6`6mJhRbid5;3#MQ) -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 -zmK9WDIl~TOl%L4&-TH7tMiEAn -zhU71_{ZAxX5pF7bPeZ;B&OZr-F9}BhoCD$mvFU?Uj%rKqo3J7ne`}oAqjt?tZXkF> -z=VO{-_n3ajJ8QQPxwBHBj)%R|#VPNK&>FP-jRfAKMmY&w@;o_ -zpJIQ=(egWF14jG<#_~(L`t5e53d}wWCXG&M9^CI>p_Be4sJ)uIvADFO-Y*nICcLz&?2EP&}uWxmFMdCP$x6^>h~SxjAd3ut#^RCW-S^= -zoAcXR=y4pwhzhGml%NB`0@Qj{$fvi3`F4>0Afd||mb?TmR`O=T13I@T>_&!F-OPc4 -zAf-bM?}B=JT39D^Fsu8^%6hzU#+nVH-?HdTgw>?(mG(7BFPWi?|KivAg8Wl)qY?wc3QoVhw+mx4Nq{)NAnLzwWXv&!1(fz-$HwtUuY;Sa@lv!1=g#76x_ -z|7`D4t-Se6X%V?`rNb%}P9kLFtnYOpPjJEtsou()`|VTGwV=ALa(z{*hrc;@Rz -zO;B8Qhe|Za<;EeQFI!8DQmRS)(d@WT8in`6?IZ4Q#)!B=w2Nu984hXgC3zW-m0gn_ -zEwBS7vT?9|XGdv^eyy`S?&o=X$J<)cc(<4&5Mv0bgz7{nEA2|?XIM@i|5Kh -z!@@3=rSRC>@#TA_o|ib80YnqrI#wA(mWLC3MYgcIoj_c1MJ92fuoBYT7I@yiJ*kC9 -z73kh`@S$wuwbsEi=JS!pYeUK%*o&;n#NsiM2T%+8VWy6btz^Q75yxZ<^zIABYl^ko -z&NZ#u4`+xGLIF^Y!ah{3$yv_9cf-X}s7CqGfdWRX1i^E!)AcXOKQnZSRe#@l9C*0L -zsE8u&8JYQwJ~Dw$IAJk?UTFTtL_mnca|)GaiYvG;aG0K(Q1)R^6L;PsJmG!Q&kufJ -zxC#Gr54qv0nafa@ZK~jD-qS2RxH0o2s#uArJv4{p;4fyIVVhpor}5On;=L>9{E09RTIKbZ{bUr8#4U&;5u_&@th -z@SIKTQr}sC9Da@`1nMvNir1GU-l?53(BVrAB)K-fwJYjJe5Iw>YPo*(yruaSD@~L& -z;g5CSOaAY=U3?ZjAkS)-v#c(b*%@cvrjy{Nan(M1sG2gfvaAM2cxBSqyNnk4CBjiM -zK@TyWRCA2hpaKjmcInJO=m5Ru%FHA?E`(p -zv_|sclZQ+^5@51?pqzibYQ>@CKNlW}t=!z3$iTv%lnv7_TIY^3oa -zq?|>cY#U)fBJj*U**;ph`jkt5@1^Y>kqlD;D#gt?v3jj0x4Xe0f9@@OcgCK{zY(_# -z9fe%3Q5dhXnZIei29Y;$yZK@_56**!6N^UQZtBVFkfT>_ -zWz*3Y8H=sDMMpBj*f;7~DAhfq$M|sTKzur@^tICNsY&X_?Ss{^QpWCmDBhROjbmXf -z?5Q=6+&!n;wsaUT(OPniTD81x?k6$Vv!8E&fs}&ih4=PPx9KOpROt@UiqLbMO^m6+ -zazPFz(B14&@Hu#-p-!Kcvc6O1rYoqORBDoM7lIgc|E=GU6^L5T@E8Th=DE0tY50pL -zM!g#l5eSV)W=Ai`>*aU+2Iz!~le#zys&1qA1~s+*3Nd&aGhP|0s<>2-J*v;xWy8Im -z86fajYOZLcYuo -z8;5yjv6bH?5mZ|*`ou}(UR=;BORlawA{K6UxjX!Uf^ak}^}EQeyA^|Xv!e8LCW?U{ -zuMTVTY|QdJEs9NY>!$`Ti)JBXGK}OzKN@6$_aN!s<#@ucN<_G8?Q81!BO05|U4qQ6 -z0c6@>RRbGZit~~}rOsm!5=h -z0@bG<!5!+@ -zWK%sK!SAn{wbxYnby_*gd=VDA)CG(479%a2Dw9hvKIYL12v(9ZP)2IAccG>4`gjjD -ztya(_{vDf3VcRE?{C}_%U=V*Ixn`(Ya9TGmL*IQ5b!A*}$Biql$=P@UZIWCvAWk9EX;Plz%>KDZD_q>|_{m`#5bA9=%(mzA=As -z%MXC!GG4lyqwP%+r;R;oSiTTUUDX`g2Qact!>S7aJLr=b_qxe`$iQ#fJL>mhXoUd( -z_jH7YapQSWXug({jrf;d*^f-5;+9I`py#2v+!y!LdW_FhcjEW_o#Cs0e0*k|M(@e*E9N0G -z7%;yNKR?>Q9gK}N&PIpUWyudL6Q13Zr{pKDlX~&IoXLF~zS67e9o*zEf2V44 -z)js6j+4B{FP*F$e@7vAd7S3Pt>8c;-zeJ5wyfj>5H7pF`ros9pX+bbuP^@)p* -z+mai69Tk9nNl#?ZulI(jjzX(&Ux{is#(tv%IPEX^^AS|DV~X|uf`h>P$W`JOxvbC;Ce%w_MB)HLZz@;1 -z*e1TWX}hS1>OO*e*nM0f(A&PZwO&!l%Vkm0;UBV}mM0MpKc!B#kc9SYS6Ux+j8YXk -z+#;R-lpHjr5KozC#6gME-f{ -zfIfY#hWbO&A<%*nD5&`_;|4j!kUo{^$|2T&|*retk2uOOb?;SonNgSm|3dPL65RSYxTcRQ8w -z%M2^p@R{F5)TiAknArq4lg@I76#}*xsv?H|qQwk(EQKbj8c)AKp)l$!s6cqNt>HO< -zYIOBmmW<;{Ae8{0*>39Qrx|?sdVR|YI7_lwsEKZNrObOv@2npAlzQs9_Ea)|RWobb4z?LbspNttsW@m?=U_e?g~M1|_`PraZ~Dr0XH`qzo=9ZHZ%$N;}U_FVn`{8cvXNS!DW=>jDTrkwD9y24Od@V%WW -zJvTrV#YemMKpw8{Ge(h{Fxj|7o0z}N9}liIe9OLXG;4-gUyiU>3AIu$eMiVi_EC7( -z#CX@(t9aw7s8uYs`j4#*M~kN?b@R*UMLSN5i|;gteR)SYB#!REJ0IqrA@uN6jUkt( -zhN}FvCV$ut*mQ4=ZDbn?)elO~u<*%wv>Yp=^YB5RM}J!1^>4`){qLzjU9qw`Pk!Dr -zUK>sv%iJ|9w(ni|9TM@Fy?}k#kQ$i#VR|bnv1grI(sn+c$j4t(!Xj0wBt^FLgaDe`5ReZ?kVAEI>Zc=a&0NC7Car!(s7nGT(N?>-k)-c=^ax -z>0i(WU_^#j1TUv=N-ybunLWM!WOTbuMe6P{VI?{L9Xi~z;7nc;QqU#oQ@<5vwqY=L -zX(ESjUDD+In!JHi@4KM2{4#`A|041YIG^0BdcB21izL_qvB70iVcy=>y=glM`W3W) -zMBT#hyJxW2>f0yH8aTDoJdI~>Ps+E_>KHndU}fyW?TS{h0=gP#o%r6pw6dZ7p~rUm -z?;tir`9JADTBku?+Ag@N6wouJmt|KH@16bw)jXI>h_f@^^c&uuZ;QZ+dzZa_rO=$E -zYe55LtkA`0Qgn>t=*L8FZAyhTIR}Q6s-k&4(*q+%-mQfDOH}tV(h=@pH=5wifz_Eg -z%x$)o#4IAU++&aF(u5R2h>sKCq83P(~Dh9iOmG~b=A#OhozMq<6x`K)mV -zgnb#>&i>M?BmZ5A+x2q=OREZ4pK6fbFDj-?FX?-VHjgj(#eIf&HDdb6F$!JyKy3&o -zs3gP)Rsa{+rhil%x%Z3+nJDWZunyM1Vf8unUV3Bx&%E7&p?=jAVwY2CVX9a09>41D -zcQJWq);G&RNpuDZmET7(ZZ2H%L>-mV4Pp_mb&;%=2oU$5fAT+?t^%s6r3+IMN{1jw -zwB{NAI8KRr{9-6f?vLM|DE8Y*I+ -zeBE8YlTgt{&g6Xgd};zGvBo(WLr4`jWCk-l@&PhDulnC6y9#Yb;xtqpd0AOIi%y8Y -zgWzlaM`}w1E*wzL08Tet$gLihO -z40SyBHnvnLsYGddjV$HlytxUD-hu1(EEYfwO@ -zhW&!hUBPX!PiGUEBGrK6n}lLC{!tASj^M?U*rL#v*w1d1Fd8qN{7r(Pgp#Z+ -zRCe*UxlGJE!vE^HqwX5_4*9w7g>_C6R7QUAo*00=Pf7F9QTE7r&kPbO$KZYPU;81b -zZ6z|dtuV9`7#`0ImV=XS(Ox085uT~ij!M$Ts4@Vmg3L_8pG)nWy@;oD|D*$G5S7}E -zHZ&iQfA%{(5%p$loll!xh4Wn>ynb=Hg)ZuTxF$~8eXt@<^LRm#LHsOeDQn<9@!k3% -zr2D{$KXo$}qYcADkWfly=u+@$^V-9|4_(H8j2hh|PB_k)AT#yh_jaG3hrw$+kwWdP -zRGR(_4?);2v|ss$G@G-?>AaX;EQ@?d;U`ETVFp!2s>-4-SjWA5I>SJb0?!>El(m~J -zWxq&C4VPcm^orOB^WUUpFexz&d&in{V24a>*mF -z#EuMp=^TB6mGWacCx)B#G|DjV7G(cl!4%dh5w@R -zCQlpFn^kU3htc%~#r{7qa6J>1{_kj0--Ifrep0DE?5mR``(b6x7PR&qIr&3mz9whf -zQ0xcdJ{{O^x*-wKJDuzK1rz4C@w#_iXhCvpxny7^-UkOsoZ7K%!$MJm3C(da(5GvH -z4K_64qZ2DyEMa_#Ko6&UyIlYMjUO!Ku;ZBf9)}RAW#fIE{5_ZTLXn7XQ9^&cBK%~di-4ft{N_s;XNq0q8IttN2v1TFU1qw&#;eWhRd@rkbzx&&elb?G=U -zLKIenjw^gFx1-ktyQ8~({NExr2{crc4rxesyZyf^cHyi$IZ#mC$ir4a@=!_TNjJ4# -zI->}!lSG};3#D?{Ww;v{pACXo#OpF?mNWy&<2jG^U`=c999}&kR*Kgu^T7>TR2G7y -z;C@%_vVtBPTtp9jIFYK4VRB?qWSrJV^Y57o&3tWBGJMlegglV+5Lakn#J5)!0fEmf0|dU&c+oFuI6I9(gh>CZmlhvTS7K|6-v6rS7lQ%p$X -zo#-04i1xJo7YTK}v!t{0OBMVORYw9>&HfP)T+>SPhu@!rwB2F;B-%}Fuajxc$ -z?5#25N18iSaU>2LAimOyn8{7|Hw1@Cj=Jn^73cW*x6>uCT|+v$__Kvlh_oF^FdAMyGQ8DxstFtBhDoQ?OfQM-2M^_-%`J@bHVs-)RQ{npIQX+l@e5Se4?Yt~o=KeJW6{ -zoR!c0EMl9MVkBk9JJlp7x@WG9g{XxzP`&G*nvqDwUlnuPmvaLqsMO^2{1 -ze}RZT=r=-ISPzvecWAAMDA>1bc&oqjuYnO1z%GMc98EwV?N{GQvuhzLnmm4TCq+49 -zd*8n16{1kpHGhVc3yo|UF+ZLnr`&ZyIPQ3fo?MBKP_sK&=Pv$O%);4xVPp*Gj2eVL}PkRIhZdf -zUbY>VVZof@5RY5v9Pu1on)7Ups1Br`MJz?55Q7z?V}#k%44bJiBY2aO7_UZL2}Tw| -zvQR{XTN}Ki?mA%lI_=EP^5%|){qXDa7{~G1?{#o#Jjx^Z&K;QtxSn}}BmRQ166Vg$ -zP}x^T&YmUxQsuIoafHsKz7zM+T29U@2HUkV+?f^v1fk$39+C7G^{%;joz4q|cmY21 -zmako5C%J(1Hms#nPT2$FnDANpKAQ&U_CL{G7*3ZN;GsVGGEI(;Q=6VFH_5n-*v$hR -z!$C7M_lmO<`pH@6UE|chpPj1T019H1+4O&f{`rXhKVK6Cc!aE*<6jr)MYF-fL3S-u -z!Kx1mIdjjU+e|z&AF!u?^8SWp{zmT -zB;Kg+9i6~wmhK$2oKY;VkZVhIyQ5O-MN>!>)*}M?OeOyMeLm?uwlZfiCx_wBt$DpK -znl7@Jp$VU!2)(CRpZ~i9y94@1^JaAKcb~cD$kzwku(&z!$)j$mHLLiK&;rI`<7K%QV;ObuwJ}+glA;jj`8)53(MCd;jSTzA5grM`4P}K>u4m38eu~1V9>j!OW8Z` -zeowD))z`Wx+!+Z^D7lQN$a_^WY -z#Z=J~@3%@#m1wV~V9wP(Nc)#TeLHo0xpMN$m$FDgFU+@^wam}te&jgzJn0zOkJ3wp -zNvEPq$lx=faKHV6az?xVl20Lm>QVIRS{(1MF6WD3j>ns-!Txu51Z3^N!WO82(P3X) -z1mmFWG=KjOSajjA_*3^h%WFJI#5NcH=$Z>uy4Mh%E_xhu^aT#`V08 -zTj>N)D7;Mt`T;7Lg8Hdo{sKr;?A;zT-@4w#i(t3-$3SCGQ-i;YZa$KKE)bmgI9Nku -zIquII3WQ=8o@`ym2x}Zgqp6k~<3}@&`Tcyc_xN{{B*YW|kD!T)?6v)N^wG)a>8Ge+ -zaYf-VRyKwSR$8pNTFs{$RUOFlAS@X5>$KSaO4Bc^{t;`n$ej9d1%#dAbCDUGTS@P< -z(PX}s&+oPrecp6%B_ik>c(APhW(whZV8*kwzcIL3#zqB&dDX(d!d17uB}(URlvrNr -zz{49)8aIqKvA>ckVkwKb1B~eCPQ+>aac{LZ=fqG_PU;VPtYN2UUGZfirdrvMpdxbF!mZZ(nNZ{M>MUFz{2moSF}dAi4f -z4e+&SkXp2^v27uLupVL0;K0ggIgHURJKu-MLx8O}vlG3+A545_$4312@z?ae>eDeT -zdN^B55cqNy&{tVNf50#w<>3Ve(-q!Co-;M?z?~TJECegL5g>dWw_>ZO;8%A}PK+Mxqy}diI{*D_TeIw9~-ufsoFcvT<7U)g4H= -zoc%lQyIU%A(RPO4dd`2zTVHhazHFG32>LbRC|*H3Ur3u~5mGxyxA=z>rmuq12S=HF`$e1Gocni22x{{%L%^x`q?tU*;w8gOG`C>vp -z1b)mH3{!B)O|>WcF{n6Q(VvHO=S~icq~{9T4n8$wyjJW_Viruvf^#RmF`M$;2x@qc -z7Ks(Qw)$3JNlDFEqZ(C6Nbzj;Y8H^8ltae8g7TwfrW7B|Kh!Ma3(QC~Po+b1({bds -zJSToWwTNRP{sV+yd5B_p>r#x^H1x5NHoR5=3dho3e$892R-?cvTCYq>7Crs%gaFK~ -zwOU?_F>DNz{-5{UbuA!itDwx$zRLS@#GF2|_jBgr_yw1gi -z{cyxABGEqs?Id`hefpgM<74Dc7KP?>cEYi+*l{rg8S_=?7I%VI=I4)0Ek*oR05p7e -zgn2_!a_$ZS_`0-?k9jz9ky&P(IH(=I_=#6TwP0aD7p!wnx^K*0x1xijFME!@BhEs?u-Vii1 -z#gE>w)V*nszD*}hoSdp~Cwx2NS5shUeE7z6Ww3c_^|`d0zsG<)E#570&}LmR<2vg< -zzVNG|(KLGO;Dt!n(9$C*CYN2*seeRoBZKyN*k -zsFt1TCY9(f3dOHp7R(n&cA>`C8R042lGkzkb4u(#OY}g`-9HVrGeC@EBOsbA-MCQd -zudyDGG4YG?+UN)uX0)l-BfSU~j4i??%XyQ=R9dO|;3nI0*h#Ri=MOd3*r^%mlVLKo -zqU|od071ur;n*{o>wpSsayuZxmlj$w=ujGfh4%HWQthuOOV&;N@Rwf=sM=>gkm7dQ -zn7wX*sn9XtseESf+>(BWq87~P`{HM*aIT9`9fHo8Fm -z{8=KSQ$|ph2leZx1T#B!(fIRkBwU6BV}sgB*Hc|9^saWHvNH6FWwHaQqoM4oWpCS6 -zs!!HPiQGrQ=|;CvsEhir|Ml&eSIhdV1|E^{uaM -z%!-I7BR3a6C~$OKoImuY&f>h(BE6^<93eknoqn9!hCM0geiBz}w7C!Yiq)slBqMQ~ -zzcIa2Ine$Et6q&dC~|#!Cp221RVkkhGqs%N$d_^B|Lv*2(a>{R*FbS8e+`a^%6^Cy -zRyfuhDE7!=puW{pl$~K{1v0F_&eL_AtJFUo@Jt+^)eQ*KK8@mZY~qPe0JtANR>;(q -z#);v|QgfW@O7}SbuNohSd)n>iLB?H=yKEB(uBVG+Li+zC70H0K#HCT{Ux5y&7Jrk# -z9c&27bAmHbgQ;ZsE{rgJvCHv3GJ8-;~p3Ca)C}p~BD;46}bwbv~3zKuWG#I|Lglm=2tU(QocwT27 -ziK#JoE7+Koq(&3N##AJ!#5>BaR8YEyJp3-yYxl^=QiXZq;M99*51K=pb~N| -z(i98fF%nRg9Fc+m;u+W>!sKV_h+Fhd%SQ*CIV8fRL-9zyM=%&6pdQ7{RKP5rI4qL= -zJ=Kfmt1^kx-eF4BV-&@fw6^n7n-cf|jwdP9O>s`{Yla07K3BeSQ=3BgqC5W%p8X+> -zjyY-ijIa01@}O`TJ_=Sm@I`YXNrExGY^W8Z36~?hjDq5Z`tq|1Xa$m96l>r$hiYKXT;sszeH}nB>?cFuKewxQw(MICevf8j{ -z&+N0cyR<(jUe5LB%${Nvn+%O{$Y%I+DZIAUulSDg11T)}J_2xcQo*Bwxn@z!%! -z93U@UgE#!FjiB|yLH-~m7t>K7Vw;_`#WYSFBN=ERzva~E11CW?(`8Xvq=ji;&|MI? -z96jDo<&LMNzf?`Nfc>o8A{Zh5z7A<d4*Z^!bSO*KDxC^lv^zuyau7%?f4aaTLQ_rk-wdc`^jPtL%}7kZ -zV3zp>4x$=ebVM6HW-v_!b5WcAow){PB@ju=GLRI&7UKUz5A0V;k`@oj+-#cfX}8c6b+05JM?sOqdV( -zPa+VVDBuTOoYi06fh?F&H4BwQ`9p`_>@4R@9`mMYX^dm$iOE*BAwuNC>@{r4<zT&#SYIy)a_3;=Ehajy*1z -zt(r$`?(n(`Vk~sXH2xblMjHoDM_E7mpNv|+coP#0v)wt*NO3lpVJG)|gE=w=XzjsP -z6HiPcKnua?`4YKl^hZedV~}Jl_rGHLmU=ynV1f;^G;-t)MV9fGpIIR9@^yZNH*VJp -zqQT*)(Z!|Nu5oLw*4u*e`(Byt`z-uJ57vl3rMc%;6u+asg5#B+yU9fSgI^wz>N$8K -z#Tk4nlO$POU%l5-LeZFZ>{E})=Uw93GtyhAkU$K(W8R(IXIc>@x4z*HQZd -zq5X$TTDu0*$OkUt2{ZHJCIq6Ff0_CS3pU(mLRVx}Su)&Xo{AN>^Qc__%>~2~ -zpA)s?2Qgd@N4mI-s+)6oWQTt$x7?-9;5ypzMIja3{rTJVy?>K#UV6i8Q1W@{g^ART -z&n9Urrz!0rgGX!$z+mE9xLLPpEw(x|E^g%dqLZQ$4YtU-;p3$pF3>rV8U@f2V{o!lIUGID!1 -zOPoZnb8kl;MkdZr0sAopEo8$(<$+9cKhOgcoY`~_E6Ykd>GeP0LHc+II;7hs7=-S+ -zib9aZSrt9`bA?}YPyWIG+2ZXr9HI^oKw$Vt<;umMcb1qt@6v^`JK?0>aVEf`l$8GJ -zi;F4iKs9}I_7&tY)mej -z5`vn1LeTxzGs#hid~-^Mf$DW~(jDOhsC{6iY!m`1yEX3uYxqP-l*H?ri^UbU%aBo( -z@uR=b$sLf=eZvzO{)i8=HBHJ~-v}u~Pe6BTonQPlJ&j$YaD`pJ0fQsa`c!Qv|}Tj3bVTU=CwE+pa%K&)U*o)c6l(W^^_O9leq1jWitN=H`Foj;OG%(S{l{Syb{Yo0u3#JXg1WKV$0Z& -zSHK}_Uzdeo{H*6GPxom}c?4*Q -ze`(p-??kJSugc(g@QyVhm}tHR+#F0#V)g>d(71Mx7v&i*CLuDe{o0hsM_m) -z)d%>fIw@|B6IHEPg%q>s=lBNCE0{BRVtj}{bX022g$=FMc;z=_;-Q&u$`ft*8EJs|B{H;=>K7jY)hq@!@r -zcFFwjTmK7n+AKyUJbsx`CCTxZSVe}?67Ib4B8JiCCyLlz -zLA7x@eFw%5k07L7$VVLsnxaq4;>4oxQ!uLTm>FQy&XZ~ld5}G34Anoc9I?`Llmn>e(a6v%w{b8h0FJ){It@1l9Ux@iFtSv9$VgqI2s$lfrOg^ioZzmHz;8MEm%w_&Ecy=9-d4O^?Q(9aj%{WB2nhC(;Jak9mnR$I<%Na##6pbk1l6)#r;~ -zPkffia=ztuBKP%MMEvMtwOlz214co7RCwjel823{F|DlaN|#`lV0;^lG!FYwvH@xx -zx|rlXVOMdwvD<>kIph%9Zjt6nVI_cHB(BtYW{MmK{t(z?d8kr>*@CxZo)1-87rT&-uzKz#`c;CQ41py`*}XnE7$q^R&K5XSnN+n3?jZJe~Geu;F#l0xT|j@eE8G; -z7WNQvzZkCb6IIvv_uZS`*fG>9;s+udI7!2&XMBm(AUpuNaD%+%pg*X*Hb2yRC&N9y -zbFx<4I;_}G;8>Vup*`cEYGVL~-v+crpnDK%95-h^e|A<@|Kdun+47>Zgc5bv{Y`{w -zLJ}O}T6oyKoBa02;vnjO-#CqpEa<7O#V9ByZQbjhY-4iwua6~fwb0o(OuYh -zmQp1{9(G&ssFMo*PJM2W`h{<#KOv4IMdfqPefgs0g51FY-pPq*?$^WMN1=z`{z`tr -z&b&gS`Yg>_ao1HBgoJUPxdQ56i=9(^u#un` -zM#(t^TLYys|KN}9S}|loOU*_{_hH2R(;BGfkL}yOs=G=z@S<7IJ+n#Ptbi(gp`33s -z=e~IA!PF@1^62rL*Kpcwdx$0zJ=aBB=`9u~^f*OvdyC>>5v`AUkEbncD{m4KocDUO -z3^*IVp3n_As9UpzC00S9NmYb+c9k?V-N*#N(2*HoD5DL*q}hSv{QsmgYUP*_9xbcH -zwg_oUYkq>fPl*YXECQuIze;CqyluZ?*uVzZ&6gOZqc)b#l_(^*FU^oJ;TAePRO{94 -z!*|!=5m@~Smbw(r_5Q)mK$X2P9yt$G-IzboSLUQ=Sy_)LZ!w){1m{!igo^rF|I>rP -zH7NA6^qOyr%;dWAc?b-0c?=`w^EqO_`>u#$0gTvEt1TSY!u%YoN+xly$ -z5b`>>9MsS~BYC4sb;K>OY!2D^8#ZbD$zTqA3FFM))#X1u*f{P{6zeBJl6R` -z&rIKzB-oQdMumRT>jAxs`7FIB=(9bd-t)d=y^#i70L)FYUM}QVa}-|y?WM0@@KKhw -zFPxw0AdvNSp@NB^{+oe46qo!=hP&cC3tR#U-RCFF@p6}p+dda{!r|gvOR9%rZa*t8 -zFL=-?RtRVOTyWq+i9$@Jgh;IMX2u_uR|#{iPnyduLRW6<`DL1^_b{ -z&~AB;R`0*JPd@an#2=U-Zo#nQ%;^*B(NG~AOd%}Zz_Tv9_3+akzAPb4Qow&zqS=<% -zWIrC1-+<*A-aEQILVH;~;>`$}6PpQ`Icv(a5-VV=6pi^@!|t_2u|`B;+qmzoGFJC1 -zOW#-sjtmn$Aro`V#AaN4C%m6`>`?B!MX7xAwcWNhCOi&(2JHr13wq8c=_%j7a^!Xh -z9DbBH;sx34E8Bl4tD_@1#7x0Qi{Sqjz0vL-Idq_09fmx8jh0Ds?I-VOnD4}XT#=g8 -z^})w+0f#TLiM9pTwrx{q_Ygk6?m+Iq%S&f%dW{vZ*#M#rHXCO0`K!K6k(iygV}T00 -zW-n3zatw5Nc~)rp)jjzOOLS$GKBn5Lb2ZN{?dp|0VdjIMp1g!AAGQ#1IPzJrkuFF| -z?QR%i-a32D|Ba-8`!s)%HP(T2lL*S`2=&XF=NCOg4SYPJ9fR|K4~03q^zSkIa87muiZhX)t39gG*k)eQN -z^lOLYwMmx+TA5RFUN%$EBGQ|ou(e-XZ}Iu6JOR`ZnSRly -z?I-3d-=1am=b+2@l#$3vGFq8{O{TcmzH=4QcI?Ifk4tGNC?WKL2xN~>kn?4)lBXGX1SQfDQ>2kovId7+I? -zYO*9Dnm+HYQ-el|vE?lSe?1*m`Z^#PxbWdisz_aN-iPBVL`VUu-JYiv&?*#E#TMYc -zoINOLD!x^}hHh7lf5oDU+f3Z((gsQ@o6uLtx!n^YZ$_06Sp-IO@rA1~U51ss*PCg? -z`NTiP9H&BtZ670sL~T+mhg0aUMib8fp>Yp}ZQ6K=W#K)~P3mu2ZG?zvhtdP5&Es7-M+J}OcFyj_yYW8Wu -z949j0dcP)XBbYB~R#~-TeuU>Uh-`uEv}cHN;3U0pm0F3+VyCyuDTT;gOtUCOwh?8Ud -zqbEs*ip{j&P}F}vKRH>wt2D_$RHpwXkvu*s^DO2-lZnv>&5j}|G?y~YAhK7IBtOOB -zzYEhcSZg_&*G_y~o|1UQ&t3kx<|4>KdVPzQ -ztM%3Y?0bky3a3wIRwPn8|xNv@SY7>XjOm7_5}s5nn?pN5a*J3jT` -zNR%WKF^)Zt``Y_6lizwG9g$^3NOK}=18T&R3NKmVB?2}?wEDY}cH1L*O`Kegk-)nm -z+(Gr=4K=RShTDGjHxZU**4H6@wJ)8w=~T@Ni^g0e8aa!L_yzkw2XRJPdIAe6jvaIf -z^A2fnC2&2uQ=(%$=`*;1{MYxrG)s_dh!(^iO@CSa}--QodN&MC(5WfV2WKQc~#6%=tzWL%VrEv|(z9 -zs*J^)`yoRrbt=;@FFSL%OmD>lJ7JvqdF~LcMWMmL3nUU-$b%aW+X%A16$s-ho^v*~fx1mKZSd -z2L6P8*4Xh$$*EPLqZ6i}q$jmaEp<3Sw(2y0)ym+bD;6F>72qarSPneTQu-r+Waj&4K6 -zYi%E&5_KVHLXKycYAh5FFDDrLTzV*;gTBZSic3PD({g_*8mytoHWL-23R^^L-^Y`~ -zkcYK;1?75vu}AAfPVeLx80y3gzc^;2_=-#YdiXMW*jrQ){*D#6&%D2EKYB*6B;chW -z7=GoD8R@akH(o-up1R3C4L@|{7y2KKP(Sjob@h;iJQ~Ggc=q_L*Fo4Jz=E+ItRYAo -z3^->BS3=Es;@uIG;qz*EbxGdi6p>tyOb@yC`?22efH%=8v-T)kckL{NOe0@)5#{5R -zwB5fEhv}KSrwsdTMC3=eDDFpU9S3t#eRnWiBp1gNJ|Ch-AN?41_s_Stn&4sTKtTTl -z>%rrvlM!)xbfGl8T9lt17@qa~&0j>RgzhsCqtyj3HRr%Kn1ha!G^vF%Wi9z<1JoBs -zg87+5{OD@6la3?{y6!qXPu}ya?CbKqWdV!Z&3Y3d>9j5g;N<9 -z{q@^1;p4Z+RHs6I)bG6ew@{3|6~5&82-~ZUH=eMq@8SpWf3F~Pa+TTU -zwmJ!x;BPF!nXM9uNbF7Fv-SW){A<4Q4V-I!sh@ibx_1Kt%P<-;r?PDkvHL15>nvk0 -zsCoF~`iKS7&90aB$StOuI1io_d8)f29O-NeU*ivFF1m6EyK#_%CJY60WDMNoj%uHO?aYVgW9}ORV?y($fCq%{EwcW98Y+CBNsowD#GyNep~L7D-Zc7 -zj4gN*p3!*=&rnOr&fCmTjJ=vU_k<&>43a3J#|B598jOmGTfTv9s+p&_Pp7-eN@;r2edBW3_s`Bcd#F{Wr;Ztv?HKfTCzDE~8)`dPV%#LQkC -zdC$jSM1V!^G10SGUn9l5;M-g9NXjL!3UdeM?Qw(1_?C=mZN5yJ{HEE3(yAVhQYbA$ -zK3Bv2S_q>ABIL#3Chl^j>qqAAy|?CY@;@<$<@WqN1N=)y#3iI{8Y*e{GWdPVe -ztbGuAX2n>KZ3`Xf9@YAc;k@#3H1p{4pWZKV2m_=s64OM}f_WI|c^GPIMkEi;X%AyUG-^n;$g#+|IuP -zuZI*X=x&4vUH>7x|OA56q^w4UPRXYTSf73}x&2JSxzk9xSEhpkvs?4KNX -z6rZQSxBr;ZWd*|Lh)WaRMzxPPu#XEeH`1(18p$Q>BIyG@?3gqZE&dy{KXMoGeVi~L -z?u=LZiNgZL1ByUo%l@RJ263zsCEd#7k53{0o!uvZ&c18Cl&zKgvov0P?cb7$?2H)F -z-I%fZ%tf#~gja>}p(V#qQXHKX{3B_l8nKN;ijlWuMNlW_P!??uKrO?$aB_wnjKsDM -z5K1_Df_@L6i+)8Mqtd&naXLW80;*-QT_a|x*Mw8L_wqov(>aTik&|9-el^KCwn*;U -zNELBO5Oxbe8Wi^u}GvA%8VD?EiM{;Zm=_^-q3+f7mJkNLH{N>b34pFUC# -zC?4crjriX>Gk=kJPNtG#G9)5-y@4U2C_g<-*ZMvt$nwK9g;D}Hg~VH_A0eGOgJj#1 -zq|o(JvdRv=6rpUpm@d>$OkV4C3`|cag -z+i8E4VaT;j!D{d$h^xKhdVpudJUe5$-=9!{AKOlaX)|QI2T#xAOAaG~y5iZMU}K+; -zXEUQ=3gVIJhB)Tz5NL^VSFM%1yU<=fpvd4N<`~M*n~Dzs@rhi-Q^76@&)Yd=KE!M@ -z?>C;VPaaU5fRCU8ddjIsaf$r#wIYY}s~;N{-4o%U%;!j7y#l)dry8ieYYbG} -zR__KcP6t9mnq}s<>%~a7D_l|4jik_6NnIy}2(;<3*eTM(DH73ccx5Ci_1FsqXKy#g -z0A$tIcU+|xEQtNkdw#i#cAI4SeFqGHZ^vL=Xmkm6r#u{qOMSQ?@-ltmzGt#6qbEne -zd`(<(#((Jl;Z9~5iF7A6-Epm4NO7OU;r7xl$hq-4b39q|SCAr~k`sk$dF3{gDLQUwrvBR+u$# -z=g2xvG(mliVV8l8d-7^GEYRTR%b$(vxWAH>w!dgOl3a66wQqgUnlfJbi{$FwLRJ6$#y*41P^gm7(?V( -z35<$}c}TR@M)oH)jN$bMfGx*U&96@h!@84?CV>Hezz} -zXpCfIgZcsBYO70ygUSD^AW*+qn~hz?k9B%DQ2Vq{Ssi$6=E3?`4X~y@eH|R2=h;3+C4LxbKA0_FvQX1c-GfkLs?84tjU?%UUQoD#J8`MCbuI`5<&7{IBk_Y<#>r5VT^ -z53J(seVenuut7?3C>~&vq(;8(*^?1?8Vr7=^Mu -z(yHR%VC!B{r;l%1ct1Ala15?*@h=@^MYPpLSdyEUwm}K>YC}`lpb+{uG>CdnSSGGd -z{fC#5zp8zW#XA6dcc86k33(cm)R5lV6RdFMB5L7FNTD{Pl7EC9$?wOWiLmfU7pu}j -zimk)sXxZe!J!jdWNh)-}hfXayu>AR_a@TB+q+ro|LazQtV;p8X&$_e!_a*Uq8P}51 -zlhif$akv!zrPPpa;@eYv&fxqIm)=1@ztKkBAY6#bz2kNL92R_fNRj_pb9iV(Q;K<| -zcg(F*FM8%8&km#1+3(~451}RR4nv;Vq -zj8A~a1G##Vw*QE>C~$A!kDnW4R{8!bB4E_WQoI@YlYyXUk~9)Oru;D{EJc6jxsW$Z -znwE2u?X>su6PwTdWU4jxRG5|yZ(w#5e1~89DpJ4M;I+l?ztHJHa26WK7Z1I^rJL;mnRyWhSQdeMb)xE&3&c;Xd5N-Q-xB0b0N;}syDv&#OH5N}nr -z={{Cn^Y>k6)qA`3VW9!s5r~955`D^qQZLp$Kw7K!;f}*w2r}xJFWjz8PIpt~44bE2 -zF?~VW6lmy#N0w`Z>+{6%1S}gr&Gyki&(RXZA{bl5W+MME2WtAjg|=8if{c%ANLWC| -z-vvtKT@BZ+7Nqsc6lAYaBuTAM!^l$6V4Y{Il+{p5!~|(-9H-}ffyY3el+?cXJ_*$k`?5$Sg=Cq$skkog$j)*RC3OLH=9FYsc3Mg -z*%D=RY!&Et6Moqu*D{|#pnNz@*mi`>88e`_r$9>@R1gyyQ -zX2Au+fqg##i}JqG+?pwVfM|_%Ylmje6iCLw)J5<>VXdlDSfURX -zNqR*UMdUBT;a03ig;HiJ71SW4uXjKGQ=;iWnI4lxEX&#V;?G*v%AZpq=3Dytt<;-R -zxdG3XgGfyq@g@UXSGR7@0?n%KUdh%WWr+Fw%G!zEmt!J&Su -zzHK6r^HrU*O=R@HA&G4Z*qt1Nr1d;+V`QcF(suY#Pwmf%aR0l=%(t$hj{N5_71d0P)MlG=gMHxF -zvA&hA9H%nbM+5nanW)SBR67+3`TvBIX9|!1*pgU+f}u@Q?Fcn}d1JXvV^B-RJ=vM~ -zNO;M!?qn#fC!)%Q!v@Hj;CL}aZIi^E9dG_;z>xw?`63%Lc6Jm_x^e3#Gt(!!J1#46 -ztIipDb@52Io5!**u(_n84Dw70r~l6yctEF_WrsA!uMN;hV+;HzQ)2Z>$nt9MbBqv5 -zq6%)%z7xnjeaUd@z@@ciu*6-hwJ@KS`?Te{NiE&NY0dEOJ5=f}7Oyk4^^yzW<+br? -z4-HfMLltl40kQdM{-p~0>V*s_jvAq*urV6AQv2~|Cdncu=tk9c&c3me)!>ap=xDLi -zHj4_@An!sy?}j9PvQ2Hz%yX=3X`T`CUP=zmDyXcAtC|)zmISfIhDZ(gpuG=nuu9M$ -zxwgzPJhq10i+s|3GmO9*Tb$~J-3d6Gzum^Q?9J$A*I@?Xo~P#td8Jj$0q4)A`)~WV -z{R~^fGa66iBe-ait>VV}so9_(j0||i;|{cDMxt-&a*kiAuan{U!p@)$)lwE5>UkbS -z*4D+Y4^AAM(=fLNI%SMd}g -z{fD|SM!xb?F9vRB`GYcqLxRy5Z&goMSSrOqE6d6=$!p;syPf6;;wZI+w4C^%P!M+5 -zP1Gxrmq$CVGQh)tR8`NTMXWu1`Qsj;iw8nGaBFEdaDH?895LETXeOTJ4i^RzQL)ID -zPEq0bZvxY&^2Gn$*>PZ3OWcHLuw$;2V&>HwZ+=UAd)}K{%;MDpjIEuQGt6&I)v)Xb -zPuFuZatmOxy1=w!tW0su{LnuQFR;nhOlvF5ZK-aH02uSFII=im@&}~;BLe$5*g6Ud -zxcys+uAE)QM7UI53`5$AxJhG_Y -zo7FA6b7SBk-M{U9KlETV@+d0WP_Yv2tqQdOCvkB(_ -zt~<#WkgXC-e;#LQ=R6WtsZNzwe)<`{3oF`eo`x(erSz~>9q8Ir1YkisMQkoN>+Zks#)P2 -zXnP$`O3w{| -zb#BuoYv4nQe>MHo+BIFr71ainYJaEq=>5f=QWe-v#tCN6#-sY?b8rdNv7#aiU%^%S -zTm%EX1iu`(hfz_bC?BLlMC_%j@pN8z)r!Mm$E-5x&i}|ZmMu1vr(%Z{oD+td0&N2v -zCn6W4Wvjq5LHsDGQ$BkgKm9J{zx^6Qq%KBce3xw_JWP4`a?7ljV7`75>8W4KTl3st -zWo{jsKbg+0mSk3l%Bp--QMQS!7(FbC0mR%r-%?F-ySP`v77ZvQzh|^eQy?k@j~ -zfGHvjf5DlP?#g>HU-jdC#S%?!58*&+r%=@!{7|H0$(BrF3fpm;SDeM;cjfSR(I(HR -zv`SCY{cLNYyB8Blkl+7&L$DQon_oQArU#%` -zu;!XZh54G%K+YdNmb05pwoMeFXFHz9+t8<9KTVew8}j|r!~}l{6imyRJa&e#r32Be -zG|A-Q96OxIMW5@1_-44y}nlz#;Rhb^rrKJ -zo_hM2a?~160g3fm;8}8#f9iL15qMMj>(vPDPP&rEQ{rU4kc5}Ja>VNzaZJ_Qz`W>f -znJ{n;W7Uadib7b2FHCbE_@^3+l<(j>#AL#}ekjbY3N0Cm6lDJH -z32r1I?Spc}3{b#KzuR4Sk5WO>n(>4qq5z{rkkU8>xWVK8bm7~c#Z)>h5;*+@{1?R$ -zNK%?)_eBu;oZP25bm$eF -zOFWTyjrwoJ_6*)+LDq}~$Hn!eKi?rw$)0w_`UI2FmUYE*YuW9kw1<3Xq>`u9WKN(; -zHq(l*!4FOk2%`DLl+j*tj1k)KI;#J&R$#o<4Rmq^@3c8NL8OF(qo9#g+QDWwKgTn6M(!IO|(*w)& -z?;8n$N#+B~93xGlR}Dyqp>{r=Z*FG7(-2xsZP2Tyho57m@y4k#r~$!B^`73KDbY;V -z`*BepJK4RWo|_T9Vxglk66MJn-PmC;OQBARPrAHU?qN6WzvJ}#4cbic0185;*G*5E -zJNYbnJ^-V)t2WCWyhe=~%9!$;{Aw@l#3E)dv0-;qYNkG*)&R;ur%;PFJ$FJJs2|A^ -zgZ{@%E+w#qbLlfYYBO@rfm?fWxhelyW*5+ynU=@?_K?e&BnN-W>YW)uehxtv!j!0B -zP>c{?60r?{4*J?Mz>6|lPDyB4vqf%yUCzM|j{SaPa&%9#Tl|=M$NN~H1CTFnZs|5M -zEuQNd)oP(Iqi)Oy;RBqDt_y-{aHr+AO5;7Znkktv)7(e^x8W~<>7XmZ?17#HBYxCW -z3bd9GWG0tVqn)3_4=X9LwoqsiF9G$niW!+1nZ$O&62AQq^^KNw?K@z&CjLfsWU1V? -z69-=x+J;|???}-T-a*$y`)TC?Z9?}s7F)a?heOWG5GrRwe+ub2f1pn>Qnjic^51c@ -zEDq3h_*@dYw3~PtjLut<%?_IdMh_e|1?TI -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 -zYQB9p7>n{@Fz>&L&@s$v^(O)3ez3czXgL -z>^UjCC-usR8z`dAq<6(D7VFdfM-P`x=d-RhyQ=-(ch-Bg02=6ATJu)&l)xUEsMes^@?FaH6sCa*;_l;;3zC_dB1{wpMrkn~_ -z?y{REMIAe~F8`Poq9)YqIW`9iu(CJ@*;Eq_sxvbezf?!*AqxU^)a}EM*=e2IHP2V;Pmu6cs%TcI-0ak@3fqP|{;()-fE)rky@Lmnx6@ -zTi6zc%f{rLSM&e=EiVuL=a|3Dw#7BlE>RYSco3lfSiLM}?be?*mKj>H#VCODE#%kd9o#1D<(7TO8(hiGZv|!f703PN -zbGA-%g^(|Y&Y3%9hJ06X4}MI91)c!xZNWenI=yJjDQ)y2@>^K@LgD#jyT31qy4=Vl -z=%*&5H6enyMeIfk>eH_sWpEjR!P|D?kW?hUk6HtJ!mssLgyvosWl<>_!eF4NnSjCfe9Qnt-XZM| -zn#MN2a|6#qUD{J2olppLab9odZHE6SKM25}0*d7-HjaH1ryqaxEpGVeHA2>MP&aVF -zl>m(r%>m6Tl&8|yp0^A2r3D$#&k%d4dEr7o*At974ecJ9?Bz}1Qkjhc81`?>v>;-F -z`}QBRK8}^%PbiVOAj6q3I>11j>C8XycKgClJ62cHG}1RLEy~;oW9=?$wz> -zg#j44agw5o)2Z#04ohPZ9(217vF1U7$`*w&arpBEE14O+ -z;`>sz2{e+6>GdX{FeIX?6g}|5Y$KS1djywJivJ2;FImoGQ4u+hiv@8epRpc{H6%8) -zc6&c)ee!q_iOPi;G#ulBafIqMW&=#PQy20;h7Twz+IzFP^(l~dz{D;Y!~^dpD-3e} -zzGA<<10H$p%^5`oow?`=?=oAqud(P4h;{ZF?XPmRzl)%f!$T#w_7;z(LaK72rqo{6R{DRwur9E+!>k{Ay!HQ -zub*{i{aUnF647>Eg7#V?_Kl;F0DDg?Swe`&oYNsU`04i7c|li_GitCC1(r5_;xFVj -zjWs(3Fu^@&n;>?%DDxBxKp -zY7m8z{avN}nj%WS-k`$(?`4d-W#4+Z74oAO0H6YfVG0z>?!ngP<6apA5Gu$@))c)H -zHu7|aeD-RvI`FLXql8(cb9g-%YYJ$~@|K2uHAl3W@W?nQvF&2GKOkdmP)8NbUkE|6 -z@UdFuDgk!=oecbPk^D_oL*;1cNdE -zaDQ(fux7S^y+=m?`M~_1S+=UYLbjSzio}WYm%~yvl_2{D^%%4z({tjBmYC3RL#k@ -z3Z`R69e_)#LBww=*5iBKefjI@d^KK(zw% -zywb;5NFvsCMspT3WTS4{SJ!d3AMW0Nw1bF?_K(yXTIr>f8(AdG5gsWf@0hU>@r3PLE2Xsviy7 -z5jlwHS}Bt-n+PltQ-k08WIy0-R_q35$@&rTK<)cDqa$$P+Alrx9P=ZG3Sg{W&8le- -z(OJ~Lte3hWXdK(!9Ua8-ro8YBnFaGy9*a50BGa6Av|%5Bh62hn0@RE&rI&R*Q{(lv -ztG$Bxnoq_JQdJnm+v5@VwLJrI?8YfjI3o|}(D-UB9}k)qXCg+AS5m~RNrxm6U&(o8 -z6^7d5;zOp8D19GOpc(x25EK((gH1rr&fBHku^3`2K#@kiuy-?=}jQ$ -zDzQ+5VR_BrZbXb2>DaCod -zQarF&GHU{u$bX#3)l+x%$gD(O#*RSAlpiwYE1s|25&iGPE(gZ`oH-#5cn{qKGz-T2aLEV!-YZF;x_q##6=Z>ZDBk -z?iR!h{?BHGE8*J0BRtwp8c2TsghF5DN8Vum7HyiNcVGOhiyK5HIb>=67L4zmqBrcO -zxd+^{t4bF@opFQPnC3=;>~nT3*4`9CXT7dx<}$H{>w{cbiz{zlk`KBcKl&&g4Wr@4 -zeolO2$^qW+M5UjJy@Z`Q_R2i^LuXiImN7~)hP_-+@(tU2T)i5fQICF8{vHuRY-ThE -z1XNBuX;fA=(F_U96N$JDAHlo(z(Nn*BUY)T(?H6P+so;RPiDd0&;~*YxVDeoAl)Y) -z&e4Eohgx9Y6Ay?Vpci8tGW-T#kHnkZI!>Yw#W^H6-nDCC-b%rq3M?*F;CYqx!Jdkj -z@JDvIQ`Mq{mSV;&h_jMvLGexhpLgA7rO29goDirKj{Wv~J@q`(f;STnEe$;WiR35- -zlbv(zX0asQ?Tpfhm(uh9fockm8PFI{$(0+!#bxnnaFsmXEsJ*{q5G~DzbI6wD(mRB -zTI)B&MKJy`^lqI#M6QR)zl&G0l!WIu%Ia+_Vc+j^WiavbT2(PM_Ae~6v#gFN$TL;4 -z@(e6h-Up7Tq%q%H$%rss_vSb{N%1j^3xmKSPx3uAm#@-!H*ZSlOp=&y?TYbc&>ZM- -z#|$hhs~HF-k!oMRrA|#^ok;S2c>XUCd&D%NX*@#O?Tuw&7FzJ`tSjTVl^>mhOps-A -zHBDYtHffa0ET-d*;$7Qjl5;{($?#voW0O%CfXidD#OAV3=vB`WUn|v#8(sdno -z%Ra#U*b^Pt>v%@GNb;SX8#~q*D -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 -z=Hx15l6{6n!WwLPoTuI1CfGo8zf?_GBSjA$nJ -z2Zta)CdsOV$P}u;i(jjtP@C(h-{0a}x1#@F6t(2izCv7sVAxIl^@OqwH_2R!1Y{clvzpiULdS;<+9+Gz07Pbw -zZ&d2`SwwtS`?2l|S4*~me*hKdivDKE^iVZeT-C`4>F)2ReY>PfA@!0VC{Z^N;pobK -zfp(%Q_R;=H(}FKo%{cTgp68i>v}-L}AKJ~zde7((dLJ<1&DBevM&PQ_>0xHI=v$6X+7|F4{MUuTFpyubckwPTi -zU?;v{M8Rxw_v}IaggVJlbFz!GE41JVFmW-XAa~2mWUjQAK;44H{>XA&lrgb4FFOyW -zXzsidwJU5o(G^K073~9F4Ctk%c3d^0lY$%9HX$X(luNr}p`LV7vb-e(Ns2R<3vW48 -z)P@E`@<(7=2Lw0^tEjK4mdfmgG;}nV%8S^#VVq^*o1Q3%OE*Nu*kr$(XA%14PYC7x_kmfqKvmli;zY+G9A6D3 -zobi8VbQ{Y$Eh-n8wd)w7iu}(*DY!D_&w<$-tZlKUa6D_@JKVg%7`}d-2AywoE}hU> -zW{hola+>f4XLHH}eUp<3e$Z0X2yJ?wHK)t)YY+2CYjXU)rUVAif51b%Z{kNe4H#iq -zHABhx{)(x2rO~p7$wESbZ6fAx)OY}8Gea+L&q4^M93o1ZmIJi{Q=L<01{2+vJ3A(q -zwCbEh{&<`urFe+@dRy0(u_@q$FajiV#*p7ZKUe7M3Q8rsR-qduXjDJ=ZCjsn_lHuX8Vk{0J@dH=olWA*@(<=4 -zpzqVymy^MdLT0%<+iIw3}wR3oFe&~Oq!27 -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 -zCZ4N`i)F{$IQ}9~n^;6L=cEMrfkmfZrdF{ -zH}-lbj)6nNW@%s3A&;-(2C+vwdxs`M>vDv*SsC&jmg^D0w=1WAu&f&QwKtbHC7Oi~ -z=SD>`b5`)uU1c&mF<=mn! -zONpm1@s@OrnH)b~38WT0q{Ocp*|bNqng8MsMwuIZ+A{%)uhwDQTm#q4jLJH9wa5{8 -zmlE4?gFwxI!rIQX^T*_iij|-nrwZTnO&x8C0DiM#^0v*Aas8jr_4@1dD8aQsTnEjN -zjK$_WF<|c9@>ENbIQ;ckTEVZjy{1E04tMgAA4ZG{9pwZu(R~;Orc#W^);FdnE<(Pe+3v;b`Mopmx$P04IJxfm>&TGMg0nKQlAOC)fl=z?*61O<_)xJ)%6Q6#uw3 -zh|atiFq;cLhEGv?oQQ>6&1Ru4r=SdxKIi#4e#ix4N&2!KbaifpNH2ud9|1M-S|zm2n*SkD_D$qOg`b# -zszn8v#zuZ&;r{o8Hvh0}Q|ORIstdL?T$E@&E2F}?!=yQUU&jxRN}J!zQx({fb0* -z(rStPP2<-8jKLvDN3QBXdyy}VIMI`S8gz31zQk!j<{eMJ;|;@uXSW5-gXz7fqRRh2 -znyxw^s;`Mk2uOE#cXvy7{{)m!8j_U?W6 -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 -zlL$|Yf0&yYsqdPRs9oJ*?PYbVK(~J0%_d}a; -z>}3L>(MQ3MPcxqi7c?uwAZ}aJ>AVCLKbAOePArTp_{8|&7D}PYs$;4%neJtcd#8l|8O^3Ty>1sE$_-MU#f|jEuIs90=$sJ3N#? -zst~Z3MU^?hLksGKesjjRg(Rb*?Z}mVNuUHv4w*-&YqkPj1B_jbHq_(!t_qh~T64+s -zrbSul(V*}~yqp3OaN}Ok{)(7c^EEh2XF@}jVsP1gRb)K!bsuMl1oHVxj2sNz^>X}t -zr~r=cS?zS*23pNz~Vnp5LU>j2Rfl^xjm%e3u>$l6aTHM}E6w4aD^TDj(4> -zMtvz-g5q!Sq!j|Bk&(o`Qt@K=uL}ji_~c5?D&VTuqOU!9wrAv3Q#qZkpi3Jd)o_8F -zD81|d1K^^7wVBaI{IM2n{PZ2T13tiI`wNk?V%U1;Nq1S1o&!82*rBtaUeo)_SacJ`(oU0i -zF;SGgS*q}09s!OW-VdXG4YB`H3b|L3X_mwO?L9hdE4wU3gVak4rh_G#{UD_xTLEos -z$mDp@v&V|<=&e;i)%DV#Am)~KQ79# -zdgnS^RV0z#}l^%_1NUsPa!A9mCqv5_a0xu&GN$2Kg^xfg5LQ4$sdfX -zu5=-b)5Nlz&5s>*tqW*=&+AssanH9ne73VqeG;V8WiW|uRb|08l|#-)MX?+9fCaHp -z*wCuwFRICcHHdf%8=P4BFUVF1Zgac -zhy&g!&q&3WJ0j%RJGWw81)XwSb%R@Z;4lWBt{OTrrlgo4zE{2hjb4=ch3e<4R`J=( -zrp5KeKhP7bXA+OBo2mB5dU#s)f+A#>@%uNgZO7S8If>pSi!@yFZk}uDFufEi!N08< -z{;Nl+W|LphYBN+eW@kg(OE0`%2~>NWPd*BE2Si)n$atnV^G`W(PqW+CXA0wg(@)Me -zu4g<>rCN)AN5`3sM-Pb;)YcF-*5|i_q0*k+&a1(prttzV@!y2R_vTNis@K81{c3N3(6zcy7v -z!M{|S|CpKuC|(o-WTQ{9iNa1Htz?I=fY{#yt5&b>nh?c}^T -z$DcY0*&18{L$R;oyZP-R29jO09oH#oIfA^< -zOV8ot2P!i+VEVAB7MGu-r@(o{9@?YgLa{$q{P+v%TjPV0a-)xG;E&P7u0H(!6=1^h -z53ac`$?V(Y{xQuNK1o&4)nPJ5w0tx%=G<%(!O!Yn?=_4%k;R&8g8e}ZYWJ7h1l*xX -zPKh>klz*Xa;#lbOJo7t=!v4}K@X2T_Ie`KOawV?oXkZhn6&>0#U3zsJ)XfHeVmu^j -zXpk)-lhWV8d@s(do{8i+Qm`(`k6|IQcX{<+9F$UaROia?ANZs>?5 -z9a)qem*wI*wH33KpK#1^=b2uID~#Ksi)Io%i8-^RNiqNYa~+xPY%=R*0&3{jhoF{@ -z#8=NcX6hoBl?hYtgCRtc$@V^pNMnjA0#T_jux!9V@pA(8y=wz8v8VssaTtx*SJ(GQ -zn+jn$qrR6~dc~Iaj1#54Pz=b)r=~%jPD12K8a^p=3ZHV9%sY?#P41TbKFJSnyzbh* -zKuYiNnJ(TV+r-(rUnRryzQ`+*F(({oqZA7tn*H)L6yTmPxA3$Ua*VrEKNu;6-|;58 -z^Pa^lL4ybrKf9Zr9GyYut<#JNm<`xt#?N%WJm=hk@{0`3!iRpkLjZLzCNP&ee-oAtTRN -z>h>3~UKE?<44BWW8kKkyyu)L%CYf^Gx;et34*b;FR3b{x@V^wa+L? -z$;P!YWJBy1OS!(kn~Z|M2h>5>Cc5-qTA|FNjBcD`azK0wL`XV8$_O=~jfTjXG&N!j -zdi2LKFqA%Jo5)Vl((a9P*q;W*B&NYK${{MSY^wq$A28;$aPP|peU^QBAbfZ1Fm0aa -z9I2$McXlJ8=-YjYf1b5U-$p}B>y>tn>sgtmAORboP+Jz8SBdadw#iiRP$TTDdf&-# -zYIe(*E&M*;tM%eZ2n@u8Fkg!Zh&gpY=lZbQFHHJFj|gdB3=Jj5unz5i+lGxGR#-i? -zgy=x5C3V8o+3!o;#MU@HOH;!!$G*Bx`BJ;jJb@O?mzI_3VoiFSlS7UHw+dng -z#dn;@SeIMfMdpNWSgHPOwo*hx9!*z67^;%sAE5PrUcyhjgIf)|9HW?jh5+~jFw0_7 -zQQ)*%W6?REQRrRu{#m=2EW{T2SBtpoNv{h^A|yxa(5{7 -ztb+!;zkE(L*NTs7U2>t1s9_<&yQ2dGBirNbzhtf)xZf^+)3}~22yubl#6M!_U-ET=WvEmis)>IC{pz5uVs+D -zwnLbz`$+-(&w-N44|;Y<#=vj$qlJ5wZ>MQF&wQb9E%%jQCR5KQg(e$2D!xt9Y8BFM -z<92C$%AvPt)D!XJgn-dtIi(@N;M`=FmOS$qd9;m$S`xnon;j^VYzGH(HI&F{lpPbs -zJF3;t!VyuL^d^x2utc8r1p@bG?r1vIK4ikIsj -zV1;N0ysgu#9=3LKjY|ZxBSchd(%Y^efMy1wD^?~sA#idAh3^&|BORrcRplwrwgV!A -z79(K7rLxJ87#uf0%agn=Kg!C`#Ea1SK^De&)i?JALUy?Ey!^?%K^U{}a!nrt^{s)q -z7lD-j$QQD5k%8sf?;H@r`S?4|9rrR%!*^dq0y(1eAdfpNPv-jhVHmt8-=5IUz64Ke -zP39d_`CPs1Foxh+18mImDu!TVKmHgLR9V=L&1|&mmK;A;<>&CCO%&|c$nZXgD(1=$ -zSVo|(uNoZ8Nqilwt&6t3DAp14kfyN}a`chMb~TQ{6hbZlE|87UvIIxdn57DMLG2IqAKt&M|VliKTr9nfFwJVvL5HhN_}}a2ot$w?0JPO-<0nFJzKx -zY|Lq^%a4S5k4?}sILP?O$i46#cCEnz;1xBDuz!lsWLb0={8&8)S`81g&A -z{WTCq@I9S%Y(trb28^`TYnopH-Fdx-fn`Y)MFjXpXe{EPT@&G-fg&7WEC8bO`njbCW&d$+H!ff|L+s20 -zF++EI5NppN*kT3s<<^I_Ap4>-M=+!Pr1I`JhylgZ|ECsjc$ODW>nyRaVn1nq|5OQ|BE+MGqNH@T&C}T1Hn^p!pUKt>Zn*+qjYPOAK;^Z -zVOXJ+Cy?f(b{mvqC-5HDk;u*h8USD;46lMhV6-pzHpaczH1Ta+-|$Y+_WSy|K)3(^ -zn6eS2l~NOd;Avm)Ru$kMn-eWPF>RV|ds%vw%t2iRmF -zpGq7&`XbSfEWQK|f6eN(y7O*dEUS)2Ls3XWksb9_2}GcRCi?@_rBP*njXxr|Kgx2N -z_kr$jFwZ48{fZWMc(?!g{B?OLBb!rdB{D;k7(_g=^dm?Hx4Ldm!Yf1`2G!qRK7y$L -z>xIzbWwYg}$5EA~Xq4BBD~q5R&lDK0W&#t>2gbHVS@lsM*oXk%9z{G@NuYI43%3RR -z`pBURo?TsSZoaM>frIG0FTyqx8V#O3@J-FS7p|4FB#v8ZVw;)#12GqIYd -zqTsQ&8QI#psClFR7()&WG}PrIrp%||XClY`4Tm2mZTf`gL;UJTst<&^otwyO{hyb; -z(yg6;YdG^)93*mzud?fYy0*+s4eunt==s5HIT~IyD(2zmQ%O$by?Vy~RLGE^#$WR) -zykp{ngFs4s7SLDJkGZ(}Pf_!c>HgvEunlkpj+4?W+H74I-7gRGaD;wI!JyGPynIy- -z6{hUIt=3W61v!A~$t)%+HIS*SDt$Ag@1;*E-?`~CYC=XKsI`;(q{so7@;Wjd!L6d$ -zh3~D04UIzk06T9Bs3Moe)T*{FVyGy}$X&Q|>H=DOkCeA=*FxZOGh^N91XVTfco*YhI&>Q`p&!S@>YEptzAiou|}>#=N> -zD#%Z299xY9Xy(_({w8^N@87VU_zAM%5_1}E)hhQ_CKA8mhA7a@CvECJm5JpcbYTby -z^N|Smap$j=ZIVT|c|i;4riOLOj*Uk0Xld1uM?S9!SwL|~pRcGO)^EN}>#}dg)iwVp -zLfMz0ic9M8s2#_ZMNJSHgB}DaD?U8^k2= -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 -zFC>j0^C4ey?GbUQ<>qP -zVD|RWQ|13;K)rf&8&i0{aU%P0yxX2r2IO9BBwao?twyL=&nZ_b(lNJYSpSRVD9u>~ -zW&Sir?HwpA3{xHs9Me(=>hu{B%#-7#nW$a5MxG43=q`LfJI64SlC8q8Cf2?!|tpgC$T1l*k}Glo_Wm)0zE;x -zns3d6)iLiRf}tFAuppgXI2HqrD0998gUXv!(vbeebT8j+(`WTCS{t&ub5~_`M|uSu -z-@+(KbCrNJ{8IL>Hw+dZlk2@0^C~Q9F&m%!EMU?KzI0p?JvN@GDBC=xj2l-BfNmP# -z`!n_4Be=xL*r|z_9L)qRu4B@Mc_)NG>a&5WZ^xYcDt2y4t!xzu%Y&^bXReF#)4iwt -z1wbRZtF8eyCl77*-)hAT?6X?YODEZPz}5u@O~G8MlMx?u@W(cps5mmV9h&g{%@oNy!^L0ei^Br|eY~>z8L(nRh;IQt`)l`VR7u9lb -zV-CS;0D1sw#QD4ONyS4y)^+N#%#7y2wjm!u!=PI$Tvuw3Lau#WwxGv)m2R{+HU$19xC$9@TM{zv8ARlktYDI3MVxS -z{y1J<6>4cgdJnofjRM|nm!VhFw2L4CJ)|{la?ZK5XK>bAshA?mZocw#Cwjzy1fIx5 -zz?Ux3VsYimS79ndD_;G_6Nu9!UT|^Vaz94@v{DlR3Yu0%_-_cX0=zir -z{TqU*$v5BOf$sL6q$$Are)F@O+$Xe^Ewltcd(rTUlTC$%chyfg69|%IbX!rwx45Og -zz5heHRc^8>ANB8i*a@ERg*}p%7(_j$3h)KBsNnT1_y=Cb?`EH*Gj}0nwz(fS22k|G -zXW(mGny#s{_UEmu^Q*JgH0*}SAw^-pj`~9-*Hvi|f!&^0yM1QJCi-FiAGCZ|CZ1+O -zC4PZrusj>$U40zoGvmi6XqwHKpy(5z$CVLtqj0JpcGk2bG!ee9uN-KTA3I+|YdsTp -zSdq`w#wH*9aHUGYGwg-U`Kcw|&~nO+g#P~5ek~?S6xYi|TsY~6&!w$w;nO&^HSp6c -zJPuiqW2bqLeLC;asbIjptr0LrU@`KUJMQ$P1|np7giY6PA9YMJAQ$!tR;T(-DZC{6 -z(UbgcW{xAl3^EHOJ5v3vZpG0*$b12KkH>hQm)}f*MF}`b#0ssHREbO@Tk_PpeJwkI -zYFl6pxhZ|nKkGUmlQ;DLZSizg?jM*r2sJ4*Pi=^5#Cwhgh4R2 -zRS9d7#8we@O3PC}LNeUq3qw<gh_17$~u -zW4!21F<`&HA%5ZDH6RI_p<-)55zk}(!Skhtz9$|(tG8PY2s6z%xxSSaK^Rbh?<}j) -z*KK{2kKC^lAu1S@M`r#@ai9N`y_J6TS;-}?hHUl6mYhC&~?r9Gx{o!EfPEAo;j!hW&=kXte#Y -zN$q`s3Cu^TqMQO9;~g0-+VnS5@^dUppFJJNL*JSda@(d0BxJr(MXKG!NOn55 -zZd*Wje8Azd`1jH7Pt31y$Gl}OShxLsBfd@w*+z?X?|0?}zRk92KM)<|jX`QdWdg*+ -zch6}g-&LlM!uji;5x_Kpu}}o=XdMk_94r1kF5VhK5l&*|djhl<^YT>rZ&Tloc7(M0 -zBnDJ8J(r{!!)%+_n$kQR3|j9$qu^FHu07ss^AV~hz4b9^b%5go7#?L>MX?LH;2*q8 -zQ|pq*xu}Rr#g{p!A0btwaZUq6iHDzx-5zI>q6xM?G_L(J4x5-)p#-6}ZO9j&4VX+K -zMlS-B1`ymRk0LHIw;iTB(IX#Cc{%!HtGg#KNFmI4ab2%L1JTi6O_BN>RJ4|Kg4-9D -z@#Ahm0V&pGVjEg&%6EK+aqvja*z*nN -zA1s$@xD}p{Kd2^(A{q>>pACkqwvA!G3~>RQl#Urx{+i@BZxgDmVCn7 -zKPAls0i8-1t*`_eq7wJ@t~pZ806Go; -zy32{Mb8WVpvQ%p*uSJ93+;sNlejLJq1y@*uVfi_76ny2s=QRKX8W5P|YuY<((Dk;w -z=fz<3n7kX943_iZ%KZ^8^T4^8_qS~78j@Si#X1j}ByUlkKpvF(F|JZ)b6yK5mu*KE(mTC`GtcK0dq#ZWX}R0)|4btIB%UX%^167z -zC)6B9fQj6@4|e&z_51ly=PQpwPr6sZeq=Q`kjw*c#w!yh{wtR43tN-&{{TQfK!HJ? -zlck@=mv3&kn$^ejD`|n;cHvfJcNOE8Cq$yP%J>+ILB~oXUVakE(%J&MZJ{-q=CZe8 -zU&l@k2j4{RFdtAHim~e>}?& -zQ4(Cgq{R@iXkX>!;N2L$DD%vLR>3+Mti3e*_jrj+9=84ou4ztx7>?yAkS>Zr7uw$(x=-sdH`VceAw -z)naRmne{(4qcGqN$dxM)3XwXmC^#|sGqQ8NC3kO5S8)mxV;kHEbRM$_uRt7VXrg{+ -zM(lKn723kUzaMeX!sGjrmM&8-mddSrmlb`VZWmC&2a-{ux);y!L`q{ehw)p -ze$Q-bpH1%RnK(m@?>gCe#<2ED#v8JRQq24wtAg&F=K@~p!1#y6m;^>&H%?}q -zVuZ8uKxZsSITTb>lfRDky_Y5-HJ!P`juoX{*TUpz9Vzp%2J95(4fg1Z0Ji%mS>r)Qt@hTjkj+PsTm7}i0IK_n<}F|)b-qZ5N$38*s#+~RG_%%iQV -zy7)iFd6gtQk@8w0K~OJY)8(xyBn~6?me~Z+^JURy+Af30v1^6WavRa^1*4hG6+ -z0g&mJr840W7gMypU32KJ8$Z0@19ogY>75%K$=Bc+b=gL9;*(1=|1YdXu -z9^$@G^0`q^=X|t!R~hnDEbBiOFa~P1P-6e)Xj5ngtsLerI5#26K;NmYGX=?!AE6+5 -zDKjROjD9mPp(gVT;?t9DqhE22>$M3z}^wik%E#1`#jNF}XQ?W=B5_DX5mnbu#aF$^vn4n8hQ8;V91hbEBXC_}j13HW&= -zqcD!@E>yb_t<3n*mNngEwKnE6NU-NP+6mfSVy8u{{z3a+G>c7M*Qr -zX8yuu=^hw9ZIIz{PASdpTdwCSWhA^=`;vQ`%-B+699Ny|PV*)+_yiH|YgBR6Xdhs* -z;{k+}ViQp>DU`KQreq4^P{St=?`%7ML5qAl9dX$#G^vM71-Bn9a65p10v1>i=sI%Y -zwpwpYvnjB8HVo~e5VwfV-=z}R=GZ%?ksV%sGR!i<$ZmxHDW{S37rb82!^SV5m=-v; -zaFf|Qiur%GFo7b% -zAIB*Q$IP9qj2O2_`m%N+Z;pV5AsDWOYNLNVthn87lDKOP_)uNYqJL{l_T!%S^CCrj -zQm(hNAXtcv{Od=9(Uxo32OsTXN+YpmwJ&iiOY$)qeAjoEYN-k%V7;iOu{Vgy^q&mx -zAt1)c(}&9?S6beqCvVHcIaIeTwsxW%6!6UYxg6`*Q#|+KGbK&v96zhC?2Q(llW8AaG(I2wVJ->3sO8Dx*pZeFS-M7m)A{NAL}?5)mFqFjgS2Z-b* -z17f*+JXhmJR+~CHCA3C2wIW2F_Vx!3lUeGX)IGp-uABGM8wTwMR{ZyB#31}%^C4b4 -z+owj3;^Z%DDU5HXo#tmPfnHTlFDFv+a}nnJ;`r+zp%dl9M)P-@Qc%p>pI<*a_nnm*@Y4^dF{ -zLhu1BzF!w!+vPQ*e<K=x -zVwWSdwBjU4Pz6$HG#TI_{oPN1w<;(_ZXgl|Hx(St_%NxVdoo%wgG$%JM}8dOhbQ!fTy6zQdx$$W4y@N%-m+q47e*V5 -z{wPWakbc3ruToxGc9j-r2Z^Xse;b+F2mM)5Tif{vkRm}>Ma+#O75Pg-1H&@P*W?#? -ztsbatV*!HeWVXeb=|%diJ9r9CF7NtscS6$Xh&?Y&r-v7WUxlByRiNFI02{b4NPf9X -z#nAlVAAHveWDl$W1jT{lFBAKkdzqG&-3G^!mxBc349s3Vy3ItEtS)B&<;hK{V=3L) -z*PTaUGLpzEqVz>W{1)0bH`qA}JVJ-M&JHI97jt}WDcZT-CRsY;VI&s%exi>IC>F*? -zLzAz^B^0#2KD9J|4>3Pl}V(B=bH;Z -zvo~f}6M_Uf-7hKI|7mPo_yB&dTZKFh04;&N -zUeG9*c&AsKTWn)XO*xdupum*)fAnvHm#f|WhTkY@G4JZkTS3Ic2X*4kI$wb`qw1Np -z)?%yq$=0;!+{<0OAwS(lrzqw6f2HEM!?}{&8@=_29l{0l*K$g&bB6T{PY@x9S|eAG&@jVc-j+*=W#Na$9*QO-=>hR( -zJ#W94$x1%=g~SKRYf-v-q|LP>w%ZrCR3JZ=NWX{7r=lFgw71mh2V9Nuhw*l3T -z9QYX;k|RL&_Z8pKn;7(RJ|`1?iOTP5}w&uBD_AK|%>Bk(N$rfu#hI4k-~7 -zP#UDWk?szqJHNZTe1Gvg%bP9K#tBs+K-;Yxo+BHtoOOZ-T1e`rWtZWmy&OOhO!tc*JM96Ho_AULMLVA -zVxl-66ZZE6hBrWg+%;swGKMubeB1VEb<(^l%f6CFg$k9v))9H9WWT%0udvxk0Yy}5u;m&Wd -z0hCOqj5A^i?)Z=G)ttF@h*aQdA=q;?@i#1GX**O2LOC4RQl+n=tku^VmU>=7lhgoQAT5bmp+bxME;=H6*UhcEI?h9*q1yag9q($cf -zuD(~QQI-Tl{As(bym8vSlsLZ7I+8BrbF9={>Duvbfk^m9=zBIKo=4vAy^>5NcP2u2 -zz@Qx${D1jIraGA$^l&U@UHLIaGDUa%mL>UNtF~h+P4gqLaFT-qZC414?**3VPW|D6NQz%XJWTRf$ur4F4!M35B|Pq9VJ4>z$q*a -zSFQtC`wM=mo?bnR5ng@bC&|OTQ26;<&p)ty_M$4pQf3jxs;&=Lzg9fS#X%!JsPnpF -zjuizJlwtopoZp+Bo*N&cWi}v=_VOjCPDIL7$Fi)v@cN2kThp+6%O&fZ4wV!QpDnd| -z7VA$8Dxd=hoTn`JqEs*bep;(4k0wMsG{i1a=ImL^w*C6Sf>r-n%mLgF60DL=V=4!- -zftS(ERov)~?{4zDSI#|U#3YMZr*LOI5iaNZ(N_fJ3hdd!N^#grq}}MxTAF0!Jze%; -z5FRKiT27sb0gA2Qh!|zRsw{86tW}B1Vs9cth(90dge0p8VsrHFFFMD1F4^@#J3#a=8c4Na%}l -zxxVRrM=!M`B}-@bnIYa5V529S7Cv)~6~?OCR^{uSUC#FR+gsyc10@A+!r3}%2OK~} -z05%(R^)YV_$MVgW{BmMNgY;pvVA^y61siLfB@0H*hXX`MQEAa5%P$&wUM78G6?i(I -zeoO}lx5bX~Jw=bh`hB89FRF6VIw{^=XJh~Dt@yJ-;+s$sz!KK~pVBrh*}8b;79qs7 -zeoOK~m%^rNZHTWcWWZtxpJtq8R{JgTx^8ye_tw2u75@yo?VNp5DwxJ_TXp)-e&5hd -z`D@Uj@|v;~=j9dsSz68H`a=aPO6tRt?Re{v5CgS5a<#q1rFxouEsRz4lTMkp#P*(? -zEAGjWKiAs7rjL%}8N+?LC-tuUN;BiJB{$8FU%HRidP;J;pkY9{z{>9@?wEPyyjXwk -z?aCB8RQHQ^Y*sZ?;HVS}EknYX{5b{n4aMrbeGz^9NC>%Fo(QUzC)X@h{m(yaN9e)6 -zt9$t%Gg(`UlBrWc0wl*~ZB$W@G`{Gvtu^fUaaf$Lt+t{|@4lLVHssnZH}1B%X&-?- -z0!r~|swGFm#mOm34wbq=dK1xo+^Bjp58Fnr`V`3q*%PwX;y1M(EG(pI&RWUa7F$a_PEVs~ps#zNsiVf -z=3l{!HXnL#5 -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 -z{usEQtR&qPMG@do~UiR5fX2Miw* -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 -z8!Qa@pPdY;{6LEe6z#aLzx30Vg -zvp=MWyr4mSq<4~K0V;crIxnK=kgCDYSUkr~s|=?iph>LhPY7b4{2uU! -zko>)%e~AbD3952-gyx5GLVEt+eiUU=jh$7o%DXctdBl<{l!NALr%dnf7`|MRDwevO -z(G2MIT`}^eGDZF0J8EqQwcdtXujcW_S=EVS1{wT&J?JUcNYqqs1rU!B~EQswQ_nU}% -z!{dNsv_5v4uHZGgD5c`CL(|ov(5nq}Wd(sq5gRF(9u$OmJinJ8ue$z~E$TzVg#zpA -zq}$W~?ysGH_Rg-9L9?3aH{h4AltL{2 -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 -zuIxA3)!=_8L+g)bp#(Y3|6bP! -zU{OxH0Zb0#r!f5^JPBpP3n7r2!sbb%UqsOA2tjg&_7Y?3E@5;($w2o -zyA!E^>DooZl5KlVwo)U!f5e#K>-=U}bIq9lj -z@j@Qrn)!=ug?$}&NZ@3wz3DmV186lUI}6J&g>>Z13-x<5q-_{dKY!M>mIiI`)pWs- -zY^pXpbY<;#7<(@JQEPzNwb3nn1*U8HuigM>Mm)K@JL4meua)-x -z_^8>^{HjBcJ^_pYL>3ur_RAy*f~;me1>Y<0AvbcF!X)gpOhQB -zxUnxRCc@D4eS|i1YwB9ie=PK -zr(h_+FG)58K+&jZJZuUsZo9#J%QaZ -z;-|ymEq;Wu`}<6gXX5D%v}X2jUx@4!$A%L=^t9Gn+lyq0AbL0w9fn!6M|$eo%e}Ie -z|8B9M%IG$7`OkpGZDruQ$H&KaM#6ezC}*04c7vZ-2W|tng(lSSe4Y8m{lb^MO{%BC -zTMH5aGtrPpp{|xtUW27Yy@Q?^Emg^nO#pHRcln87zlZpJhST?%-Ec&INg}0VW<>r+ -z=HI%5N*Y+P1SCUWw+=c*v>&0<+#0!hfP!`j(opL$n!K^G{Lb*`k`_(-2S+Lud@~$W -zma5_u23VixJS4|}ro$3{=S|C|n_ai}Pl_YSzhY -z7`-_dZ&i(on9~5q -zNy-hF$slW0iqo~cSkbp1WrM-Ez@4p1ftVub>L3qg`Ao@$c~u&*^_T9ox8|6+();i%L6qgZxRZ*;5WPPkjvq``E%N3^?nI*d^Y -z?8&>=&RvW-IH^oX@wgguRI=)nX!7h6yJlIsi~)0J(_Bk4tS-kZo(shxT|GX-mTM{z -zW8-wmx)ewlgp$prG(NtzZ1?!WD$;)}46Ubq<-M+`d4BK1^!HSCA9+U7i$AM+qp(h* -z1`S5ryf*lm<@dMZ -z-?O9-ElE{3r%yRc^94pJ`F?hD`+MkSc%iXL+}k~$>OOhm>1hXoH$p7pLFL6HOR*=?HgHOrE8t(=V6g829)2m%WWMKxBAp$c_B%I^>CjH~vgL -z4qzxfp+3a#uHODS5GzW8z8R3bYAGf}(t2DiZ7BoUiMrX?0UnRoXi5Un*6mCCx!tnH -z?fzd;C!{zaTqTsImz{hsgqk-OZ@#^Z3Y8GF2ZoThKm_7Z#X0ncC{Zn@Jq4*ekD0Y# -zHU`ZN2p&uMX_3V>tBlOs7x(n~7|B1h`1yx6&K&HWY69Vt+O&RZp$al5afuz1{4cz-_#7EZmD(&KDAYLZ%%Gsh0G0Pw!#K?W=%d%^$YMj+5$fB&KA=B1Wd{ -zF-$P0Wh(b$Q`0M$_y|M#$o@*V-2>#(B}k5|YlTo2*6@f^{=`9OsGbx(iNUh0ABc3G@rpvE)nDcC*4qVBIf2Npn`Y$d}@Q)fewhWDVH0{|SAn#g5!v}C~Ftz72o|G($ -zRM7mKK`eZQKP7Hd$nngh#9|*vuM2)R<`M{!dxS0=dI_dE$gzQscU!z%^Fu7@E+Ht& -zqEZST&J|ZP&Dy`Wd_WrwPUss?^KrRL_vLefYH*w3iF?@VM~|Ins^VT*67;2=y>e#B -zBkgvmuGHVh)iQy904*6Ux&v~}^P`!BBRi<)Y{~n*;JYyGHr14?A&_4JbwMn8Wc7Y` -zV=3QedtB+(G5D4Mn0S~E9$Gq=@JZnFJ)KciRW}wGNf-`*6`Mdog`cq&Z<@I+w-PFf*J<(T1$C5@?Mic -z5xDS5fo~=$iMnMu4GXE;(J^G`X%@kz$=30KycsZYU3x#`+I}9ZHt_6-#Xj%r25yR5zBBxQ43iK#|M}n)EQ+-NS$8!YTKyOpG*q|}Z -z)7n5&e(h@&R9KWH`ISBcR#68wMN;7d;Y|2>HVGy-A{mH}ZmEj=JA3p9TW4p&y-n_| -zZn5KxM{fcO0VcKJq*zzFt}NJM4mMtprjAYrUsc#9;_MWZ#hOt`n5V*qWT2L(bK0y; -zv;X>S$;W53lM8k#-|1<69L{p!Mj?yzX(zo>JFO6n?Bze+$c9g!kA^wR5=JcL^Nv#U -z)%OS`z5V{-SI)|i$-l0YCtWp&T3HZ#7?$pCVT}gYQ|py+-Pj@U+Kl@v&MKAsGcCSm -zNV3-Y8J_!y<{E?;V2TGPyW^C9t>Mq -z!Pn&AbKrMEM#9!jZ4LMMO!dJvZ126tx$p@0cy+qqxbuc&u{!UOBn<|_ii -zOlENM9}w=Zr}M{)Ns;;K>sO1;YFi0CG~c;Q@Y?!S7I2V>bv@m6B&~bDGYFmaTs-Lg -zp|NS+U8}PZf3$ynxz3Ghbr_H=l|S!8G-hHP0mo?e1=2dFj1P?~`Ci>+L%?eRGtR -z4t%z?`Wx!n=M&l?Db?+O_veUMIdm*-4I76v{}7Zzg+sY@sN4rOZhgKL@!){Kkpx6= -zDS9H)xyJJaIJX8G7C;>j#%g0Jo9_HkfpS;_?UY`?R^Om8@#5Z)5}8eOa@}V%pE@Tm -z6;r9D$KSLAd-xagoLF9|lB{{aBY$H<5#-QzPI+}m0-jA0UU&R*x0xk5b@QSPaos#e -z;^05L`>^wjlS75ILvEMxRSb6{j;ub95)2P~b|yqe;|;%jJOJM%ShF|EGxIYXuMgxn -zkGwJGhm;yNAE1ISU!b~Xi_3~ELK8*1d4*JsF{HoNgb6Qy0~rHe8hDCg$p>SKk4xW> -z?64A3Opu6>B+T-o&XG_6%u@gxjr?MY>1@%dIMpD0&!?H-e!`DR2*xJ<-XD|1Pv|B` -zUOQ4QS}>tv0$aER?lM)Hv%#;|@(RSUXFaI1NVjjE`u$oOXdZjI=?-54Wu-}grNrji -zw@vg9Xml-K7&3H|YLVr{d$YUx(2WhG*l%6llt48^OZX%lYa$YF0JnpGN{&}(m0}{wU6&uX7VtAt<~;g< -z^0+$u@%s{Jwq&Lt@O>Y&p5DZ?OW086bQwM3j4g1iMERk)Jk)3=I% -z@^E$)eSS@N@z_kWNcpDIuII9~`1yIDQ4N#QSdu1r2Z(2h`FKL!6a3+G6HxpSFk-GY -z!(f7m*b -znJ8|%4U?bkd_Vk`m$$ahS$A29Mn5P2@+etBR_aV)oUF2yy+yrN{k$Cc*5SS9rsLXp*o{4uorcv#MCSYf#qq_II#ZeI;e6`Dif=0){a}*v?T@ -zSO864yO&YD>d`182Vp9CC%$+SQvK299#Q-wRx$EOay*oTmCsK1n7-J)ys6E~0g*S0 -zcHg^@nYJ)!Zan%cF?tNPcr>98!rq0a$XeyRqwVCklW!;AFq?{3ptrMVE#rQPoJCWc -z?>K%1{C7sf4R?%Q$9X@uwJ|&%k5|*F-Ez&pChuqEaG`i0W%DfLvnlhbKHAIsyC?@} -zs)u3~c>m!5a~MjQTdK65S+@*h?jIqpxnIb-kPaQb(34RPw;QyB6yq5-M7e>Z>|=b+8BJJP1-yf9%3(`Zipoh`^&f0=aP- -z5In%z*Wm9V8{nbqSC*F+%XW^(1rWsgMRQZ5y`XIiTy<$J5hYflMG6;fi1$pa>4|IM -zj&;@*M4i_W3jwFr<#e1#D80i^ZD4ki%mgqS7*@?nlv)12>RN31l=7Q*6O*I}e_R$r -zV%eX8iCKjfplnxww9jK$V*dBTC+9_5^_%olet2T|5~p-QB$M8z7DHm`;AMMqYv6UC -z=mkoL$1vQ3g62YI`}MF-mPs#>G{<}1(Gp-|`p}K2dXPb?J{i+leZe+redx%(W2yd; -z?FCUn(=+qKmcc&pr(o#^#rs)J-j7kjVh>tBoU(WvUjg!rUbu$GLp1O5tM1JJA7Ludf`~#o9VZ?tc%1PV&>ow*u -zs5wy^9*()Ek8YHgbp@?N)6}NMAvDvge3sO26O#vIl0TSJzGArM^j&ksROl9Wg)x0V -z=t0eJ+CW@%yOaYfXo3n0WtJ}Maa5L{s0@5HtP_>tP$4lHW!|0>3&L&IS%!511_qjM5Za>iG4L?O!c6J3bN%%+Pxt -zBW{+|zHsBy)(4vOUO=$J+(ekX?YWhM?0J!ZeI6q0r}ktY7D3+*XZ3COY?OtGpuvo7 -z?1u{cUYIWGM2!D1I?p9=52C%(6!4GOqWSmNP4bKb8D=sZ?nXE{3+$_u$`(5%qcRp} -zTzDOw`!yR#xA7Ita8Ob%Vmre_@qXg6293BxbY$>*l|R8fW!Zy{+C(035K<9me*M`4 -zsV4-OV$_8h69f_&rR%-@4|ret82@HlJCGYYWkv#75X`USM_rDDW$Hr)?WC?fVuZo-6*I=ih?d=Qk8=2YB!6ely!qoR)Waz= -z9oyI!1*tPAa_VWCHE3oE`i?lAX}Z4ec(Y7@QyoYhua -z%0h(ao?rpdEi6dOt=#=DrQuOCxjkc@idY;&T`$c)sw^-#V(hS$imVNR*FTX7Fk8hQ -zI1%P8<&f}lCCUuqC#u=t{GCI9smdBmKW{13@vWhomOL5@oOuFtG#KG{dJjG2n;j|O -zN@#vsmmTz0g3ULI1*DWoabENe)N6YqP+;t337-=rL6X({{948Tc_wO@_Zf(gL_1?7 -z*$ek0ZjoEaGi=qqiYQDkdnN^xPu#y5B;z}8edncJ -zbjywb>Ny}Nni)&>MJu8Wy)AdRVSA1Exc4AiY*j;Ed&)X4Mdc@&>kxkR(_$!mY1R@H -z>c2?7?pO{_zvrx+8_yZetaiN9N`5NhK%Xy1=mY2O4f$&vUnF>`7PZ6$_dmBsFIk~B -zQxjF1$E5Z-5^TPPk$ylz;sYtCOj{vqPj!4bkY;(F_ZSC5&^eH@8afMWO$&ymbHlpL -zu(D>Ih;xflcB~>@OeX@R!w%coMTnZS|H<{Gb%qkVGweF%N>uiK5YzFz*OQMd2S5GL -z{Bg-QE1Sb^Y;*~3DgsPn -zK5aF?U$|`2!R`oDX|z-n`)lM2%|at?NY0Eej^Pz{(=Ba9gm4LO(g(vMt{{Cg$m^J% -zMOr3b7G!^5L_@an+QF&766|ROtuZ!HH0MRh;(tO~<$;I?_jB54l*kP4H5@#+4G%?J -zYn}6%JC&G)%FBQEdm=`KBpPg{%ieGlRE8cOSvYP`Bk-5ezwwNG&I&e~xeb(|X;<|l -z0w5d&l;p&JoodraO|u`E@|+gTUboOrM(n`s6+sZUJIA~H9`qtHRB}O&66I#+|59I)KZ~TpC8tbu -z0(M{iN7Ge@MfJ2%k?!v9k`C$aMnFPR8tLwm7FfDLx)cyWT9Az -zy}Ng2?%bJo-gDk_CZ^j*D~8nR^E7Fg!dM**A<69mn-j}WT*^+`*qfT5e~nl(%XL3l -zz*`5a{7=H9`qF?a{W|hmp$Ef)v-i%y{}G1@m&{qKl%3DZJqRuR`c}^^vG)an)a8uAEgYKg6Zvj^0Jn+ -z`|cDXzEajqGDKR<-bYzLnMAMPr#}A)hAcUFIo2x=dMng>70e_~*q%U(K&EcLj -zao9&T018SE&F&Wd-h^p5GDi5t-Rb=X_!4~S({XMJ`eblJNwI^rxkm6~@fuWp3kx0V -zfX1E^=}UzzUD{hR=AU7+vJK7+0-zkFH&Cx0i3dLbv}}J)gJcB1`pMbQX?T6+(Z&kaK0p -zNiD!g0VJ*jK1m*acS?3w;UeyBWNAswAfJ$KuF_fm1PS)-pdk{4eFRNrmC0UMPPUof;BY&4kc;wLA)Y&Iwpql -zF@`e9pi1;8F*_ -zBj;p)^Z|vCfG5KP%dD^9N!j|1CM4iopd_}%YyDKyvv|4GMhLw8`ikt+Q#Re{+s>9r -z#XuYBsDIU1R|SVs)>R{3GXuIHm+miVq5^o`%H6@oB1t(^oNrC_rbBPX{_iE{Ge=u9 -zB)x#0ncVQbl#5+)U-rrN_tW1fP~KOf0B|=N9BfP~(H$F6j}X7rgj~NBdME)eoQe$x -z26*4%dRY?nw5_pUk7>2KHI~8NsvkWUWs>^=UmXubF#Ftrt3D6KpSW(dbEO-A^XTT2 -zKsIz&@MgDj4tF|i_Jx}XJdk&aj>A4Q{7oIU{QgJ}zbQR@0UI=M2f5#5FEo=dXG@h9 -zc*P|(R5R+Qsv)Z6u{CrY_IafN?#y0sMI23Z=(JSdg%-N;>%-Pew`kFog*(f0VT~!#E -z)zgX*P~KDhT$lsdRNXi{puf_`CQ8|VY%b7FDC%l-)S7kU?SJaiAr~`h+6q>UvgI=avJy?>BR@^Al3io=pH6YfCEJE;fnyU; -zbc&LSA=&u6Ivxq)dj6~!VsrpU826tER# -z(v!D4b@w5(yNWoy;3;hl>#^(!v7Ei(z-x8q=zgfN=%Q2&jx+z*Z&JPX0|E5( -z-)?+t=?#4paD{Xd?>o-;4}APv03>Y$$3g~%y1wy}-D=u;f;)Lb>eg`h(N?1kn*mN_ -z@b}peAfXJXSp2Y(G$NJs*=$w?J%Qz@I|go?5YUFa4XsEqdUL+@6iScL(?&gse|i8{ -zgm&z66rE$=s(-!AQFA%pM=}E0hA%r6RyiJh=Ue@N5@Uov97YbVw*}5ulHDq|8K$&p -z-s2#9`6uY`vf4-*gCB9kaIIFxen6{$JaPU0x1D))zG057#K?J&9~+hIw#aZR1bvM& -zFft>p-DAgAvoo^FAz^Hbc63|%cv -zSF*~s-k0U^ZrTy{JI;Xw6#Nn%+JPjtzBrO)@?oE)6$G4N&jvWFwF^^;0>Eu)Xep45 -zzkCywV@>hl>XMVzwNI9z(>!Q&aqBF(t(*T$x1-VC)bI~nSKKgg;L7=V(?b!J~Q@mvQFi7IpDnvF@+@! -z;O3J0@WjBS@(E8j-+m2S^|2MD6`T&f86-EyH#N7$#eK+fiX{)vJ_L7TR!?`rBmS5{ -zPeP2;>s4pXFEa9xfLA*-^BI4H^D&fM42U)nYQT%L8OTY}SC4)noAL8#R2W=A8h-pSKDH+_XIc1SBBWzWW$F9sSkd -zEVL(B>g`J8*BRv|CfUg?4|iy%ID+1C!#U3Q-oIF3_8J3_`;>#ChPs^R*wJMMP~p~1+c5T{T9XAO)iUmm@Ueg -zlkkec+RIN2NwUSHojrAzz<2@kURsrZ*i$qtF|&_P|09^x9G}z_y1r$`pVRVsGrjY= -zuq%S!Sjr`dA+N4}1gdv0^lX~zMNS$hKA#VXV%Hs~Ij6N~8suj2s72#_#F&AU&c3Ds -zPGIw1!5x2Fnu7!XM!2S5zBt1IW&&MVXGp*{Q7)S4ay|8qllIKQ2Ci#82g(V^FTkTB -z)LvqTzA_-GVln6&G4p@CyV0yY?0JDkftf@1Pw9y1L$GO4OF@|A67s9%B{lC}A2<^o -ziFj?H#E6Ufn_O%P%$C@Nu#DV@lD>LY7W0j(7_~jHlM|IR3BeHV -zg;k~QmWy+t2M#S2ceJPa)2 -zZ(dG*4v}+UP0XOH~v9kZLN_B>AwFSTVR}^kRI3-{9!LFUa?8ImDgKq41l}X&ZBt#7$5jPsx -zOMIIzFvvFB-xU_rhyc|`{9vBw<_Od^4im9GsH;1S{B~6i$VL$Q*>&@Y)Y626J8VvO -zeSKO^lN5PPAgMx%1^yTO*myhY)z1?)PuR4#gMtz%l>oUJsDi8>V7AMmnemsAvD(KE -zb5!!nyKzrt)S-0nT#_)SjaUt9;X5iI -z3CcTZVjICFfpdl&>=g7=bZ?=m48swr6)h4;U)5U>O6e|v=>!k-8?~Yr{j?M -z%>wS4Nyh4~=8{wKW7v8lg|pmAA3F>Er8naJp3S@gn)g2;cPgsNl9io6@po=`$P#z( -z{l@$4`NDKcQh0XxViiyuCGv6B&!melK32QMT{`;llM-Kiu&yc??&u5xd2BJx4~YQ^ -z^pnY)cesjXc$&wDj2kQs-rJ(aIUJtjLj<1Ba_(h$Xw(*Z -z&Q)pKE8DbTNj|S(Mdb-YNA>-T1;fC&trWIX5~l39p9VeI;?G66_?+KGEurGT$}a&O -z9A>ZRqgIq&*E(2hXZEQ0`)LUTAdDG6+_yT$Vy3D##hC76tD|>7WKMpxJ;^7v1D4PJ -z2Pz&@$`2=ZF`v+o^hNi1P0M*-%QxHQG;(b9Rs#znIZb{kYk;MSjYSz%w@wj0B13FJx+?J^NayV}uJNV`A -zWoO%1Es-FJZ`O3T;E_!;u6UBtoDh5>NCG<%0hCn6?21F4C98k>al -z*z7H!#}_xaX1I_8Y8zA*UBb-4Y$$Ym0+o#K%XH2o-=wGx#v(f)TGrXtaU;}CB{ZN= -zL2t*-DiU{G7w6|)Br-p<^6t4s0B8Wl#YQ=A*HUkp+whi?Rwt$s-^f5HlsBE)75vh2AXmbpC@a8XDyYBFsUHvNjMcC1JW3=n8g_JTDn@_fPSsb# -z4}@bv#k7Ta5v4Pxh>tKK;9cSLy&7z2==tQby3WbZXdU;6sT-62awg60%PiC*ZA@mc -zaUQTipKugl^t;7Mvd&HSwU1C1KUhKkNUqyPvKwiwl{f(h{22tS$)rEh@uaDgn!L>A -z6is#m2FOvt6_ipMmd?8Q5_?MGB3lC3Oe*&mQh0YodrAWhIqi#f*@)jo%}bTvve8TF -z+aoGj3fuo0WRtxu9zXMEQ^$sYvlh|_bL{%BvD>9qKs9tSd{vPPErjX}o~qE8N>7_m -zk%@?YK^~A2TSxPCwcnu{>}KS*nl!8R)O~piAECrj;O>@-Pf+k3nm<#-AHPf&0FW@n-hxNlLN(+ -z4_{(kAma-I@=W;3iGFWv;#!O -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 -z`zZJEKR*UYs`3Qn#U62NIr8^; -zuU#YL(QkNvee>CLu&d@p)r1FN=CbgHjH3pBvyL?{9K3RO-r$ya+eRMM0)EjLIF^-n -z+^r*SnFX)2B?lFc~dfoU(6r;W?xv%N{2ohKy5yntjh-Ee)%UM0b41ts8f00porLA~BLkLrrG# -zh9=)(aP|0u4dP#|$8@2~vzm*YW`9>OR(>keL+FR}l=jgJ`LPY~%t1V2CE3=qYw(X$d(}{Ftkd}H>0ESm6k9X)(R8rF0Hpq~| -zE&uL2a@qNTKUh5x6@(r>f2MYJEtyA*n2Au55K{Ftd_;W_3x7!iMTc5eo4i5$%7M*8 -zAw*?UhbY=^$+k<;x7u9s!nwjjMW8ocPuEZyv9xI?ni0CHjEy4Qo<0maPKj -z2Wx2wo5@)Lo&&JyNKq$`W6SDKpyI{H=p1qKFuq^5DNG5N)0}*_KJ=pP38W?)2+03g -ze_m~778`f@5UQ~vK1X&mQ#Lb3sKl&s2m^D908oMIfoDt#fJ_b7z3ULG*K)hEiiq_m=bJ5o -z@;PANn)BnTLc9+5L3s31a3OzFe}x -z&bJ-~7(hMsArXeQo$Nb!HG>ON3;f=KuM#PDOpm5OeF(sC0BGrJ73FZb@DANTQsyD46%zbr1psv({%lfhy{< -zz1|VEPSW`Cd5tJ9=DsaulG7+7G(~W&Jdm!K?XB%>|Ay#qP|PV6l0Vxh-Y}Y}>G!S? -zB@bcltT^-KJPU-H)-Ycg7DzfleL=p6j_+b~np<&*H<-*;{oCA@A%uV3Pc1#<=1f?+ -zPW_l_2x_J4p`vKgvbz}j%y^K7FCi9*DE>pN$s#s4i=X$xSaeRqijx27A9SWF$sfEw0jjywa!115A{2KUWoO9c^mn=wPxnn)uSBBjd%iPWg~_1?`LCWF*V!c -zf1#Czirhhzc)MmuEcu4B_gn=KPm-}#fo}rgEP}0I<7*DYhr@eAs?7<|kq@5gCoC-t -z)i*4v`|d_nqF}Q;xs!r%+VEkJ*M>0d`WqysS4EP210qzMAaOrb%~x0}E`@{*s*V7==Q5My|NS{W&V)zttTZr5d-f|wHc -z11Zd`QcQL))iZ$;%P*tzBiZ+k-)OGSEIQiEVW8JSpiK^bA-?>?7q~7r7@8WdR5G!i -z?*s@_S~7`w0k;hRmKZI}58m2;-P7S`#^PuCD`I*j#B&yI2CL8&%^CGF{MQ28Vkd`J -z%hjs^U!deT+3?0{ZpM&tq?5WYCb5IWF^Z1sp~rS&qeOI|HaX!?gS -zmrl@$Mm=6VxZT2W-6!Q;322ltswgJhDNLE`{~q-_T?w?}d`qzEL^vU8`j>O)ckt{> -zV*ptM^AiJC8#IK(h`dtPyBS1P*}~B)sKVdzd&Gg?6&<~b4{t5~?3W-d-yo?}4Mpn^ -zGMxIVerzqSXCc0fUFlo6M6YD{79~Ld>U~=mAJBbZi^s92_+k86n~(D}MH|Y?!ch3c -zr|M9O8Qb^?2A$W$YN3_|T|fKY>iEC+MU@4DfzxST_@E4>c3MGC0Ae9 -zzJ{8)gbHDWmZv)W5A2?JXEP1lCF?4wr%nf9NqF!Bl}5*3%amvM#oaXNidaq74gZ_Y -z-OQr_(<+~VK!$fg3f>avGfaP#v%7)eLnB^Rh(am -z|D|Q3LaLPB{*6hrKSBT43j0$)Q+k&2Y9}}WLdEc5kbe_hv_s+`Z36U~RrnnDO)^@yrbbws- -z!yL=4w|20ZjNg6iTkLnMK7FCbD_aQvNJIt0K%1G?K;|D{j9Gu%R0w&sH!^xlt9!af -z1>=xvVtFKuWdbf?2CDR03cLt>%cC}O_OX-VbXM}pgU*c-tofZ{VH7jiM}^aY?gNX8 -zaz$Dn$P(*uRV#)1pZ`vh968)yrcvhLL9-p3U8T?9l|P8yoRB6oB`~RX(|F%fi3p>E -zsIpDF#Mv}~M>-%^e&JD3p2(_91MSN=Wm%amU;3a~& -zvn92-humA8uB4S%8@!KH%(}`4>+b^1M -z$8^r%tr=mlS-~i+wwoX2ea8w5Y62FEG=V@hCr{DcY*duSPD(pHn4=((B!COO9PMv7B;if|N_4XN3e89KY -z+ly)->!c-s0;Z2Sd9zv{4~&8aa%=W|>n -z-%EI2Q>BIyKJ{Ag95^b87os80h6+}`Hnf__HUc5K^s6NbjK$^bSD#1e5?zd|9iwK~ -zp|!eobM^&W=)b}C|GR4Q2j718azS~$6!q7S?g@-c8ZOrZt>mwy`D`dt!Xqbt7^F(? -zbV(vQlFTUmd@lei=XC3DZ)1s{-ey{lhw0s=|G>|Xj$plY%biqR`Qpt1(taS+z3FIQZ}_F?PiSdZTJ#lhID4SF -z=4ZRecWPxsq(CpO4s-mEMDFQ$MwO1iEShus#6-XH=-l!Tq8d<)Q`t-SkS4D5@i0}- -zIM~edu|@lF%p&|z{Uq^U0K{?+*Y!`~9yrmkx@5Ppa6Pc9*~mwwEr<`V31vN8WVP)| -zSIx@9hKZNdOPOGFi0M*djipPc@gy4uPIl6By?i+@0A158rK!=2{O*m*zZ!QPQRNvM -z`i_%iA2}`S{MjLgj^F7qy}`T}v&#hD>3$-ubvdSe-KE=NO@W-sc+D4j7Q6PP!PgTI=K$h$7{G?L^nWPaX&Hk{1KgKQDmlWUuHzZWk}oW1%yG+Wb-jv+$g -zPEf<0B1bb{hkE(orTn=0bGNk^Re5rODq7}$l -zz={qezg)e;VCKj;?$zNhXjmt?!a;vGHHEe4QwKtVG9mJ(Qe0Q1d=IA2UYw6k5MyEr -zIlMxWut{bdj7CvH*3~f=%tI<8I0_u7PAB{-(DMF&%B54I&}FAEH^caDA}bQ70)1y4 -zuY;cmePl3yAb84Bzb@JEx__aJjRg`YSY@?{khBgob!64y!gC@L*nZ3`ng1F)8c5CU -z?|cIu-M#%rV=m=DFO9)thPT*%^<~4ToGnylW!qlULI&0E!anueZ$Hw#FM1#?p#ZPF -zFH*%Ema6|nuTt5bJa{WD)t}7znsX9f2_@xk^J+I6qUrQjgdV+0Vg&C!aSW(v0ntcF -zB(lFjy{pHfZ(DFO-JSbIUdlIs2b|=ia2dama|25z{5|{2V$N@V>#J`qCI&3EboFXN7auFJ0-o8TuSk&bsv6`%;2D)V?T(1$DKu)&@(P2!6o4$MGM6g$bz8cYX_V7{M(Wo~DFoT&!OgQqV2y0Eff47;p##UraMdf+HttoXf -z=(zLZD$0}sHN7S>S&uj~opwiZo<6r+@c++hB7ds~P3Us(1lxP<=Nk1X!WcH}0h6}` -z1D5CkWc5$AUGg=PL=>AK426NQ-}=!eFZMn9GA?lEs}iKO9=9A`!io)9fBfE5Zzr+m -zwG>cNKX}$a?2)<4)ZM3UNJ2$C+@@z_M@o+HFL(S}MnEdyr;}0Ax=w0vvZD>FumvRS -zEEK4=YKAzdg|3q!m97%KIguj$)jj6>W(oJYli7(%um7%`e- -zalA&dC}$rLck}Hgy?pzh25_^7>&IfL903$_G|^IzBnhwmIBbkgck)ok%@L$G>6~;0 -z)ptS|E=~v4AfZd2-1=o1SMG{p#FS3}m?AzUU&u#(zc6T2%#ct)O(U -z(A_zqe{k5RVt05K#)(L=w=u|f?-LG@Dql6bp=vJQR4H;rJT!szW!OzHMYH~(tPz{z -ziJR&pbO+{th)aIR;yBn_w=OltNi_;DqM^9W$Ktz32R(t$coG;Q`D)v`JTUX8YCG12 -zov9HTvUy4|_d;z8i~ni7t1y~<5=OyInT{vtQ!NhJveNW}Biw?`GT&|=g(%d92;EWN -zm%99$k`=mhP8+{TqS07AE1~%ZmJT&T6-JFwP6J&$COifNm&^(e?oTNZf+GHZ -zJhnJ5^eyPzY$VC^-K#V^C$YafqOAt*2Dl0Ql -zqKA>8t}CM@KDtbXmP9&+jmevmy)#HBt!QpYSQQ5~V+S-lJ1gnmt+huA3KaPEfZny< -z*Fp$P4O^zUZnGYGtjVQRodFGtWHrrQ{u>l -zlkcq}4`L(SIUY~;GvJuYF;tY`w|-G#WS9(rf|mb#!A-bMa;Is{J1)aj+}+O!U@vj0 -z&nJpFR6Eu~_3YhQjQmmLw47c)u0jlCXwMG2AzJG^77FNCpruX0J$*P@Mg~MiT=7Av -z`~pSph-T~k35frB3W0U{>tUBNu2a^UuxH=R+4IN>^6LHdi&cp8MJXs}Kwlvmm29(; -z+?j%&B2Jcp18J*<%<(4g_{0+29lN|jYyf2A%!(eDfj#gvfmyL;!R_YVI7x3cQltvlM8V9u -zBc_XgV?|ZqL)Ex`^kU%v6r$`T;Uzm&_HDTq9hI`z6VBl8&~Kjo-w%b5i~d^bQ)fbj -zo4VoTRWdH9-{p(Xmp_D!CF@&|{#d? -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 -z@;K!=) -zJ|GEzdc?*orG|c?hWz#feu$Zhw#KRU+*|Vql)!RmLk0QrFTZbSWb={z6mVCz=vjVB -zQEU8ibHhytsvLM;fh(KcQsk`*yDxQqHbs9RwjP%%0*#Er -zwoWf_W`XnXN8qY5g8mGORRU@ELgvOhIR0)yT_y1I*a>a6yYUv>`c?68af3oFp*?6e -z0mP($bF6q(mMSXcu#O!?CU)m4p^ErRZ%Wu$93pt`l$t -zt=rtde&2={uRN2d!`^YrX)A#@MsT%Fa~jH -z5ZKP~j*&2L)BXT$SNn$9iR=m;>lj=&VTFv}Mk|%xI+1{E^>w4_1#-7=7ys9(5bYh?q~5?ZmYcBqY=$uPFDt^7N&$Kgz#svt^5>U3 -zzMJ*`nkGKY4PP%|-m1~g{Q(!-10Sm(L8;^)dN|oPp=Z -zM)p5kLyT?HG02ss+R7!x3cCPTYtljUKj%~nMt#e}>S9V1 -z4DD1#Uz@JFDp$;HaOTaf?@Bp>UlZf9EO)cy{pRf_>Auig1PAiLHn*HE_wAIN4v$VZ -zW@(U3@>PQV5kmN?U5l_We*`E_{+OI2>#%%pTLLE1`^$b4hrj1{U`vF8LWmr0taXK= -zLff1j2WmnXaNNP&DZS5{R=W*cc(io|9gO@_NbVix2?_UuTr1M2Ivf$#wP>aQ>*^T! -z3CQzT;`okfB5-0eNt^@ef61438@gz64rAUMybX^LYUDd@! -zt@TRqt{rqxpViFuQAX&o%T#MupYTN|77&GZ`9w7l<*mr}pv>ghv*^SS%W%4!ht*3a -zVOJ7yvXdxZb+J}m3?Az?H8nSR`91z_KfwfbClhhAm%y&s2TwJkRl278*k^YxKBJr% -zh1bz%I!sW_b$M!cKwJ_F?dw59%n~c;OEt>&J2?I^nAN<#t@ucxJNnvUCxv(D?XD6# -zG?^+Oh5>PbsbP3(keF`Dl~(CD;1I@)`z|@-j9AcyFtpiqhW@Th{|rseMSG6j#2qD6 -zydjr{tJd4%KsQLxnNH!|D*zB=Xu!*o^=ohu-b;zC_xt`IdFq#d{>DY;g(e%_Z)ah= -zp5&EdZbotA5pM8WZA|Eo_2vLZXeeR>+$)y7YT`+K+EKdNht11K-{6q^#vn~W&i$S|YJYok+{SO&Yj~dAyWBcToV&M;{2Wi{RhJKq -zZEkIw&)_;rdS@tet?Ya**PXLuv{@22xRyOhh>?cfE+`k|0`8?mYRFM(7G_0b&USS< -zw8Xz(x(2+_h^0^!O)zwLrNU=x&Vsk+U%o6 -zB83*lkA$X{`AraMap|#h^Lid;E$_@*ujQM_Z@h^w-`4d-X`zc-S-jjd7!6Ez%B4q! -zSeyUp3v7v7rG`*Mt&lqj+Fs`UYHVswi@|=Gf{h$7SNElQ -z7boaF{>|a4TtS_j%*R7nD$=a$%?&Rm&5!S$_l6&S2{ct^sKJTr%k{op!-KJPHBa9S -zA~wuuFF~o=ljCXN6RD#1#V5zhFJ+2rOxznw^YpUPSI0AsO#QDg53S;1B=BJ_jrN^x -zb!v)++wyP)78zND#WFTG35Is2vBRul3U?$n3~F+iT+}*ZK<{`=7KcH=7mv4BaP5`G -zW`$y^D->UA^Db-((0;Md0;OniOv}N`JyXL$&MrEV-M}q>5$uj0L`7##i3xc- -zdl^=qp3^OL&)QYrmM$tN{zA^Hx?g5#U0USIi#Jls_Df%*(ykId^va{yMmUH@TAx79 -z-g>#6YQ9XY<*1owZ*wOAG%PC#Q-JXPXB9gWXuHp5g)4l?@{>b8IN&d5CluJ*bS4CL -zSXmwh0@IOTH`BJ)bcmu1Fr{l1U%tjOD^mG?wJu`I7-K}})M?KT!#yjWZw_O^P*oqaPal0ofIa;3UTgNTtX`HO<~!v|b`r41VC@k#{{5+PDAlqf*~ks` -zn1ngN5`q>1=Jc1w`uO2yNA!nkqQMB|3Vx2_NbriFicaKdY*_o^(W;kIP7wixt{|_5c!U-60nOp83bI -zh3lQ)uKcwdbzXq|?C}}l9r`?^lcQQdhGa0ZPoV6^pR;AAxWfakRq&@p>cAz8sCyoY -zThu|+qt3<48vyddhbA))&=;+;^T2tA>Tmf6(+jsbjz3@;hJjWuo@Vrt -zb6ZIWbwa5R>RfhFW#Vb&wiLg+>`7*NNFUjovB7l^dMtORl5^9h-CeRVe-^wE{wU(F -zlVVF5wy;3-$=0a}+>3CiQ73*YUh>U6%%1`#i`gdcp0*9amj7b&zPm^ht~jebnDbP} -zCn95UZE{{0+S{*m9{U+XZQF(Q)^fJs+IHZ*?6es5g+lw<V5|nUPgZpn -zAY}e?+6>`Q55C?d$xAivRt*9U#TufJ6I|1aoaC-}+E;O>?KO_C9}q~o*XgT3Y2SX$V@F3i|7_VE)miAo@HH8Qyn9!_Qd9f0Xu8ES^v2(nBJi#Tvwn=~V&x;fDF5a9gXjd{uc|5mi?Wq}X -zPwi1QOj?RwMt8xQ^OOL%+;C)sR3^=8Ogp+;21?RDKYgcbi24PXy{8yMQn(DaBN>+) -z0p|^XhEjdE*LAJX>7q;{d-oslgHEkohuH7My`BcbN@6_4esC^R$kWKe!1~P`^Fz>2 -zny(-FBL2Qid2L_uopT`Y0A?VleW@CNDn%`BvRdxL>BYnQfOgoF)Fy0dzlkO|RnNtw`2VDC4J3}aJ5u-^(>pj1B!|JE1)1i`&)imlx -zGJ*XoAT^)t`ad!)9WnPaVuQLajqe8C;)7wKsKS>YYERt&mcTi7JG@(|XcOu436`lB -zV3#_4woar^jwojX1~zc}EH8R`M2PcUmy=wVe)SfKEtF_vZLGyvJXyCiC{nXrI$Sda -zSDyYVf#{qN`g*;(>+u9O6JeS=)hFCUG=gl!tWWPaxBGhk{?U-_Cpa?y{>D%exAmSu -zEg||_C7PuTe%U;4Cy`=M;iF0WFQ^h`FpEn>G9}N2AqxK{gzsTtWFy&IVJ2*RUdX}$^is-JP9$=AKTt^@`Z*> -zbR?PHPYj|DYOKiFDjj#B8pA@Jkk>Rdp1VN4P$m1iq{Y}~{kIuGUD^4Dmm$-1)Fs!_}SRr1?W^RNN{Lk@;h5-)&#Qw6!0OOH!M^V$MKFmckvsh_s63 -zIwPKBFQBh7YP)^hn8pm9u6ft=p=ET4VlIWl(1;5x-GhS;9cI&@>rQ%Ad -ziN}OJ!;K7_ZH(jTng`Ez+Wd2=`sQdHd;;W5y;mE==7OqG#fQ7qXq_aFPnlSbM%hg|mjaQRh -zc_&Vd?_ksN4=8T=JJJ=RUEUw4xlagzb$Lx-)$~nPHnJJSXOowzi+X%JamrulhRtU}s-faa9c>jt -zV1Y3_Ig?u`-IeVP99i-?{H0r!@O3(p{<7Y5@d*Sz{ycCxN|Jrpvc8^R&W)jn17%1Q -z4q+eVhE9o4oMG`^Gjl0`s%3oWhUN1};iUw7L|BWw*wpzbak-b15E>yMkiV&Pf0SRE -z6U!kd+sD)q=ybH{(aZFGW1|?rhdO+IwEtm0Hbs!xVAVf#b0^F#Rgsb&!Ar-e1n5;@ -zje&w3iI`~4RO3zM^z$$2yhOtXc*(8`z?%RY#W&aPxxgR5gT;lfk -z9~3O7)O4b`?G#u;&zqoYE3w)uUa^N8g3X@%mhj}|arAMW({&Dr+E5x1%XM`YCsyht -z2jy%bXyli8{5{!;BJN_$h-DZWTnGGeAZN!)@Ef%5fXSH#);d=H=OE@pyjR`0t))pO -zxa;wsfSYPIfzE*Z0+-fq##BWJj4PGPImH}rw#;q&z6*hjVaObaW*CUf`&CowrA#@p -zvDHoKm-d}hk_rEZ@Ms^dEmCF<`;S!CFUq_8SpS|z4NCWV<&QwX0k{@*PQ0unWEFpE -z&R(Vy_Jqa^Yhdf>5uVuBQogMf`MLhgYF>rg$dBJmoF7_s_}MH}5#3`0p;laNRC`eW -z4u0=+N745Rj=a~?@0U|Lg@0xNv>c#+B_@~tqcA~|WHJ#^J^xynLr^Lx(HktYyPnD; -z=bBEcN%KYrM{9Shq|-g75k9tQj1sma*tq;o($*O+^K(L`+ZzrIk=pLB09L}0`6>f -z*l=q+;>??)VwtW2NvP*VS&b_Kb_QP-o?%7imvB9_{G~?4P1owB8KKPrsm+v4%$^G{X3nIs;Wr6q~K -zOR_8169|m!0_UTH4pTlw1L>ihKtP;Uy)oLsIewCN8X`eWUQimC{PExP=rUO^)_Tcz -z4J{2Ovn65l=Day+68h3JV^+(B^qZ2%EC!RO%I8kXGy_9+1`scE7fI -z>|PxrH~%oL*a!lHto@mJ(*^mGG?8|PxuKH4cMmb}Vk=?yySYX?VPV^MS -z5BRuLSDz$JqC}NH!pkqArUg4qJ3I{qfIDE>AJ0*07@k+x8u`4Z{aozJOUQR -z=H^HPc1Wr7hzFZc91aJO#(TY>5%Ewu++J2$vE?O9-JF-&IV#Afz3P4)_WWa1*j_gG -zQYzCIY7X-cBay`?54%6pQ$bcpU7Z7)&&~S*ca#1Fgq47S!H*{Xo$^mq=vct|boea! -z9?m2>i9@y1|3@K|TX!z-vsw3u8XyQmph#0+Bg0Bcv9!KmzCY6f;-eF_VA#88mbw92 -zlIj;I*U4|^p5M;WT_-kDy~_q0T?z!FZ_sQ`J210RuTT+_D}DqiVD)8g9Q6#QfWr}& -z3Kt)OikOE!^K$#GAFKbMjUB0+Yp<0?twa!P>+eOXk4Ce1I=iBJgs3(#K%53P^0$}_ -z!wWiX`?-ez?_T@8eEtMhYA%dn!zgbLnROJ=V5ZKmYe)5;|9f*JR`Mf1&{=<8=$q@- -z()20XQwk!$)p3f@x=rMqEFuL=OPHdN>BE<1!mZ~RNZo2bwFD%U?za3_7ro0=iWQlw -z)P5N6fUK1`!Et-XA$`* -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 -z2b!xiGJ|9QU?= -z67xppzAt2cOwd3FTsvOw!=HKL=}8Dzj$J=2bt*GVt%(xzP?@@JrrL!=p=^}?+vFMe -z`)esk%uT~VNTz)RD2kj-@~!8vt8HlGK3iUlAZt+=2~FXea4>btf+&B0X+wmj>Cs6# -z=vS#?^JF;#N+0*-I=fC5iDXf`&YEC4?BK+y_l>^wIaMuq@k~qRNWud~%QKj@J86-h -z#36ON5AX85g0ui|g6W^69emmvNFMslk!d0Zk_>j`fsk?d&BDlxx!6AcIREmVUFx>h -zQN!m}=C(TIeKUuH%8U)3@i;L@$B_#u?266KjsSd_?m73|`5;G!3*h8b?%^E&);O(i -znk}0~Ht=Hn;sp0&_X9nhH6Jq4+3Yp}7d@1{&Q7Fd=={1ury3Psb75)3?${?om_33Q -zOj80fhN(RugWH%dX+uAmDJxvUFcLQJ0xPBo+FqiWkE!O%Nw594@wHlYKLxD##Pl$F -zC|D}=0*ob~JFM_-tcGFZoPons=FSg^Hi1?^Qpvt=%OteDmo{sfi98;0ke*0o77{Oi#JZ(#fAhj03eo#b3{UyZPJ^1froaT~8pSu92Ci-> -z+p5DEg=V5zjymg1D5Q010!+K@PbqV4J~p(QT9%7HYfKl%fmr}_5)Ry^B0T=e?Z@^Y -z;NFBMv#^pI0Kr8cb9N7_`VuA<7b|^=3pUM{&!E)L>hr11L)E9mF?s2^+M^4?Z=<3cJ_+8G;-IU#*%PaHQ)z}0BxFX*Dh*WmHrP*sRswL| -z3wVO*1bdDS`~AT>RD=TEZF>dw>Sex9ahC--J^q=Cw!A@|_B0NL%0aw7@)NfkO2%M$ -zZEb@C-@fg}5jvdn`lyqF_EzQ-m8Zm~M+qm+-i<5x(?q47fPpfNfy14P0mK08q)<(Q -zdFvaEsgoEKz6}l1FY_Bq$W$9OK+KP*`J1(fMiAb&u9k+*I}O(dKFQfJNK_h9bLch -z{5n)*I^qPpqszxd2=FWs)b0ymvhYqs?-oV?CX*j}<(-#w>T4KFDEe#nzB$mXKF)H| -zB#8@Ijnm=VWIX@WK7s0&$m8}8otn}qE8rTpQ|6BTGel99DhhCezzA-WwpRpIGdluq -zaN`$gZa*Ch3Sd?hgNA1RBec-2Yg_v{5fvnf8Qmu$)KfzeXl02UJRF$I9^21$*tc=R -zHT1++0vz;wV_}+VBE0ag06!T9Zow?D59#U6WsRY#1qJ5Fz|M#HjbQ_rJ+Eb-ng={z -zzq05&aduFsCQI(#-M=L&d^jq%0`xbGNk-OO3?8;P^4U? -z`D6Weng@Dxfp3qMq}egXU8u8XLZGk>D1wJ{x10+b$le-xQVc5F80uP10u -zLNe7$MbSeUUoBn)Q(X(iyD_n{Vi}A!lL0K*KEH-^v=fq#^_J -zQ^zW$+#wS+T!8wMB_Q*-=(CK>u^~u8tLFoF#IKMf7SB)fTYk^%#p=knlcCA}i<2%F -z8a;l=5o|8?8LtfaFMf3KH5g$w%y=${{43mdG)OOO>w8le44VPdQIfB5ITO?Zyx2(O -z%!P=3y-3uPHAIe$#7XW-5LUcX8qWJeXaM3N{k_#w_rS*Y&!j4xcEfo(sLn3%PzLgh -zgO!-1B%@Zt1$ZUdpO+H)>WDfDDaE8P4nsNc8_xef -zl_oZBQmBUr56o5;cG#8%<)aoJ_NVp1LBCu}+$W_|o@D=vOA=Xt2TU2*vEj4FRoIZx -z&AV0y%wyI>#Cst|dtl=LJ5%~ev3ouDuy={r6I}TZKRU>rajr%+s~W37LJ|m-8_|;P -zGQW-!M5I@dv8}!Q^W+W#E?D!HQV>}Y%RZtYO@t0ZQI@;P!cqUf=oI(movhE|I5mq> -zsBJ{B?aj5q6NUiLF^$wgbtn^_f -zV%RYQ-~!(x2h-)^mCnq7j>$>R^$T`T!$+C -zn6b#bt;54NGcYS*1?jv)+uJ@o(fw%h$wC22E)R9HJL3(d>-X`=+i>zrfD{DGR7&O> -zc)EoR)Xi-wRd3tJy31j45gCe -zuhg`3`XBf7C|F(Cw#w%6hX$IkPOAL$?XRKDsYnCyRNK}_hG{f)=s!ciIS@dMXDp%< -z)UY?E$($HrERyOjXn5eKErz(bh7(cSh5hKT>kJC$w}s}-s~(7n!YmQwKI!;o1 -z$7^J7S!=Y#oSH+Rj?Tffo=`%A-Zz}Uxk8xPoUFdQnTXDK!}3611GshA8=*h8Z4o#b -z(A+FJK0~x$JYM)yxiZQSJ>O7(JVz{NKh0W9^)=d#`C?_ph1G81$0a>Z9|~nPl<(0Y -zw*W#on^fDW^D0U4!tFi7$J7G$a)%3DzyW3-*Ct4d2yK*bp^tEG9}xroHQ!i?Vrt{v -zVlcHDNZ#a%6CfP=`G_%>ML^6+CG~nbT@`p^VywKL~#*W$sS>UNjO&+sMOM -z-&&b-$fPHqet94qM??s~)|+uv&1V)r$gv#?P2jk#-#T0qZ2Y=rIKYW)Lxd_zI~brMiqLXieQeqAUu&olp^&c_xk1-x=^}kB;e=+0Rpj==RC&T -zai33=zB^M5aFN?q%b<^qN$W5n&o0^S=k`arE}>_gHLWCMIMF{Id=y?8*NP<=MBG1) -z&2|XD5?wy|4|BT4%`A2*e6KJnU0wu`d;4b~u|jQ55VxFf0F)b`D$r^kWF`?zTDeWb -ziNSvmSC8PgUH>hL!MnD3DOgE#e!(6)i?r=-C_EV#r0;TNHB>opqeCp@)XGyybPrJU -z6@)=-Nr9;;+!xg6Z8S6iz$K9Ih>KN6g&`rW@OTA#s@e{(&ixoEIQ4C$>M|_=Sx%)N%EZDlAbRj*YcfZFFW-v}Bl=Gv`C=8BzZK_$qU!Kp=l?;#nM>AxnDXrH_xSvN -zytc=Y9SEo5VO -z=m$oV5|w<4Pig8C>Wz8I!zbUNNPm_0DUJ_)sB^#(7ZI^gc-*fGAnWK6SKode=8(By -zLcH+%bc>AUu0+$A5FlHCcpPhH%f4D=C9XC`<#q6pe0!?aLEG?Eg&Al~0dp5B9A(EI -z8ynW)+esNfOo7%y(s(=Y{?sNW@EQ^F=9#c@3K!EQV5JLaxze$s-6?oE8xMcp{tsN) -zt^!gUYmRT|WT}h%nDgJ@j1U{XC_fat^b(m((ll;%G6`dB--})Mv&6&Va__Lrj(Xq@B -z#Mw1|Pi*@agB%`LGgeqV_f=;G(ub{;Q|uG+=tq%m@0=V6AL#wnz!vjwo|l|LF1X{X -z^-aUO<#$J0*huUUgc4zHiCf`TX*rxgNxA%Na|F5hn}<3-&gw7fP<|_E1dJvCN{P3( -z(6O>^Ngq+GhW+$^2(6@5d6xE;co>sg2X1FjB$Tz8ur-h#5`=kf*^y-U+%UjIW)=0- -z5KZ~Y$YUJ^5AYhmgijaO7FyFN+`eu$Fo7mi++q<)nl6Jf#jeOh#^TjQfx~j)=JQ8IBl!tC24cqQPm5<;jO5c|adHAc -z&5ZY*978a;-{R4(HBN*zDqA^{-suZO;D8V`Ax^mh*KM{#jy$?a6i~bMo=??gz=<&i -z(P@LOY@CJGZrYxnXW&vYT_|-3l9R;P^Y>QvRTN_zjuMyTKii=Yxq0?c&aTR7@(abw -z=DGxG%KBN9>nNW>WX|rSgUO{9Of$?8>`R*&s5_wko+ -z18H*_xu0>Hs6pm9-DuppvdhhbIta8~05$r37p#SFYSNqHe4;N!lFRqNHMyf8dTIj) -zbG&R6PDgW>_QG3EdO-jSnbNSrES~$(mPnuCg-y48jazm){d`0bCRCR_^02Dy~beAP>LYL!Wit -zI$xf<=LT!lGycU9{L^5|!Q)iDx@ -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 -zYu*LNhf7Y|@Mo){ZCwy<=;xR8XUcyeXIV -z=Tws=ez4X8p15RWn?+x)qB`n^4YJAm#5QYu56CNoG@&l&fE;aIvmKjt)QxS^_N~gj -z-m_K$IqEvo8t9*^xC?U@)a)nc5&_}|V)dL1<>?3|Jz%>vQDUFM -zqVRs-YVM&d-G+A)P#GRPH;`B@kG?T><6QW>y50eb69)ctS@z*^evz`8hc)HRy@s+r -z95p3QVGuFDF3UrHKN^aRWC`K5f(%a}3G>(1#Lh<(>Y#Bu=moKo5s6d@%sgozOG!Gx -zJ2_OcTC+t#&a1R-hw|n@5=otMW>imqBeWz0&b9|?>Th<6y6Z}bJF~N{hk8mp4`U#Z -zA|aNVnSh6a*3r7H363o$|Lb={!JN8FWqLipP6ZHN?Yk_YeH+11AA -z_iHOIG^hwJzn{Gp4h^%zeDLdB=7bVjIlt-QC>KF?)ujJjQLd$}t86sMjLRR6Bcoti -z1N@I1{c*vl -z8_;#x;*Uwf>iWEq=wS`T1^Vlf?`m2i4{UvpIlL(EldRK4CV@3wzqiX%iwMgz+8`|J -z4T`Pe;2X@hzgG%QKUK1lHK)qiwZp^tHH3Mmw~s9m^sxBm`DgqDXW$%sRc7v;{$@Mz -zwGqzJo-eh72YTQfxg(KzjzYUnNClZ`F4`?8+TY5Idj`;VIsOhUWf1A$Kcy%fe|vc) -zn{>vGiTKy2;i<3-+;*MG$pT^YL5CN%Iga2qv%!kIkntPJq)Bmlx@~Sp&vg*@{X%-3 -z7@|?!+8!r=Yf;STR($sKr*)3b2)nH9cR81LfdUm>Tu>D!5_MzMDvbaYC1!WRZI;|H -z3eVcx80ic%4{kpzXkjVH$3C*GfeX~zbB*ZsR$c`ifAxB>c8d#bnU(WHzs+%b_MtR>Y -zreC~&wJiv?JQnp{AHbnti!G{5>qJqei9sQdKl4o#S*HH>9N#<0qq_<1b0t#wP2;`x*uQ?O(3^9%sYig-+bxdxwv*H|KGJ-%1#$+cb+7ey;zt1d{`Eap -zN#%|75DadFuB64)!(*?rnMZD4cm6ZU6e-MHg@R%ksexl5#THjZ!?TmFvWlmSy5Z>! -z_r>NPw;+cB5S!bNy?$4g;3n{50fLZ0Kg^s-q#}zWZE+C4Pgw!z*{L2Y8QjtUkx5|G -z2|=*Wm!l5|9f%JLI2;zql0 -zd;Qu|U2mxRaBZW&K>zZiDMY&lHVQ5JxXQmHb3`c{NmO-*2AAbSq8BH5DRze -zzY5tGRA10v{VRePOs-6wpq4E3wr%B?wh65@K13ioRC0 -z3#Ld@I$C$J+^cwSZQxBsN~DTXiIPbihNpFA$6xx5?3D|{|1%dLouDFA6C9f-^|^np -zugNs`m!>M;clz%>Sw?!Y8-#Uy4snop3fmSdmn^$pR8pyV -zMr4F4-uGgDQ1fZQ%hU;c2o!4|yjpmqoY1jG?|$Nb>R;ftpiN|AV7k4XTm~^r1<78Y -zlkDw|>}>m;BdkhB>Jg(+_*nBQGxrd^HMnF@nNpj^O6RAh#uU!%Ooi_Tn!5B!3m?2 -z$qcOt-P8;ekV4%Ez!YuEU#@)i7?0dm -zamVx9M~{#kFGbW$A5w=%v-mQ0KgZ}7u7_6gSIsiHaj>bHPY~Cang$J6S|uv|E{dm} -zub}lleTEf>+78j3CEL>oiQ6#vYDuLP40^X6ms>soH|Rxa^Qn{wP*dybok)HS5_5sZ -zJRWrVO@6J}D}RPq4{}vD0l*0AJ_ilYx>RAO6!=QhKDGOD7JTzUW&?Ug@b;2&*l~Ep -z=qVBqU7|kef8lwxe52JB012Fd{a~vi_i+mCoq1tNTBXfuYXsB2&c4vdfjT{XDo^QB0K)do6%AKnBXRfTr)dK%YWr-WeyzO9*K-l75}(T@N{0(HiZ6S?>S -zwUbDps!G_30qu=O0;8Vh(9KB<_V5DX%<)GWamCJjVOID&zrm!c|D6hgSgKIca@D(< -zl?OP;Oo@HXjfURri`Q=j`R75%itw~!@9T|Qvhb(iVY}C^u$4F-6l+l$ihY(UhON8h -zUNMP#8LvWLZc3{s{rw{Uci-OG%o21~-_*qTB!Kxzmb{)_5W$6F|Gw6$OmNOt_{U3Q -zm#fQRL8}Ll>%jK}SM{=M&0FJwhRlilX>!7qin+PyfJu(CMRz^=2C4lC~uC3&s#F0i+8{T)*s -zR;skX091$tsE=Oa;!?yPQ>2Gc=Ep@X9!G%2^q%*k4?!z#@Zlyfh?Z<8`@zrKOQED^ -z`l{o04IMDA+ZXjfz6IXSwGR7%NkfEK=@4Y8%Uh%JQ#+pV+1qeaKZcwFZX12S1S_Wr -zV+#Ym15?Ne2(j$mlvgP?c#LJW^`zF2x~WEyra!`$BZZZnGwtNY!nNarQ=~u!_UGe& -z9!1R6yl5$0pk3q8z_&BOYsy@znD;^(g3f9jES&%6g}To)S6{?d%WJHVSB1a8()e$! -ze+X@1dBZD+X|@vw>jasp -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 -zC=2RAeLeG&l{J%0U$>{rHm#U)BibN+x{QmL21 -zR&g6-3;2au8;oYt>kx)Dh)Z895^A8|^;!S33g(gB=oz4v;om0iZh%bR`#6|ZSFxLJ -z0j85{1OAs|@7gt>s1v9je?<>48~qv^Wb)DKM6|nJF^InGd5qsP-$H+g69gw4*x=|6eX7`y>BNk7@a-6A2TaSc*b%O(dqzWp$HxBWot?)iG~YSr^oI9#oG< -zuucpPnF)(^mloRz@(zPB@SgJV<;H(&a?5xUX`oYpVJ%ea186t1no82PRvgVuW+lvLNM!#;II{iSHpUKgiC55Aw_P$#-Q*M?rWPL4;Uu -zT`>!}TIjCZX9sm5v=4~yi1=bNate=pVi<{G!qu%1Tu8+29IjZ3uxxf4(Na_VV8{n0 -z7Qf!cqy{4Pxp{0L_jMk_Ej1dtifrV?YzB9VY`$nl+j}nr@;E}QTk60BpZUeS7(*^HYN8>d%BMQDykKoZK;9%{b^^X;xSGk{P5^GpD -z(>|X;`6{S0@)p9>{w{DCh#XrJ7&VIR&_*(dVaz|t#9VWBNX#fEaRbYt%sCsqm5pA7 -zrE@d|&;5Zvn^%lJ`x94Fl;U5k0(6V&o$DSi+bhv!gDc*n;|WlC^To -zKdI3*mQH$+guFgjmbNw}l5x7Y_0>+6I)pOD*(5OL9wyp{Kg#;{M@{X9xc1O^j&Zs78C`S`iAmFdSH)yE@Yg7*v_yPSPM7b4E-K%s -z(CRatnE9kn!%ip90i#2ygL34L^;K|G_L4ni{zupt9_XgggAc4IHX6}-lO^K?JuiEx -zqLr&PJT9??bdy%h);^X)GSk-;Gl*khJ<~Pv+%bDC@WZ-#ajFJUV5#@G)fca -zgcsD_nPEvyYCa;cQOWA~$sGftFpL45C2~G_Z-l5`i{sc1>8(io(UmlT9>2;-YtS1jydp)ibaAK-F3Sq< -zpKsokVkb8=qwB#B9>`hf9pJ-pJLKOnhzy};z)$)2Rn`O?2DEq2@Oq`s`A09Zd*X_w -z*WD8?P@!VeAefPP5!*U$?bvFy*8j}s>I7oDaxfoTH3ZD8#b#Ti911Y+?8oMcHP&r* -zUhMWfXhrwW!R`?vacXK(uq&8PP^qyBAo*LJk(RMBbqnqD2XxZ7fl) -zdYp=LPBej0jHyzF8KQ$!=GTWpDI(7xp&F9nelr^90{>&W_Hn9npe}H=4f+F{id*mz1hSYFBa++!sXZS+%P6B``3NrW4V@|`DrY=saH%fPZ7%$g`6p;U#6nfbnkkTp|W79o3;(9!h;o4PU%!bL?BJ_jc02>ySj%& -zH~j6+5|xhPP<<(-&61C_IJ0WHb@~o?YyjEs!krEjZ1eziVL$ypWVl{kT!r4}^bbvH -zr7V{cIj5+78DB_WeQ7t{^X1PvqMi=>$5T7^!{k^G;In|S4GZhTuqtIxdK!WdzkGJ+ -zjkXeV$Z{a-lOEm=?Oy8pBPi!)WHmDSMhOLP?!LF;*$NB|p>Um1)Y)2Qf9saEi08kF -z66nBrrXohZhA@}>?Nt7D&nEtME=*OyG5n05XvnG?C{#h~)qj#Z!#!oYS_L{?jcKeQ -zQ-{wys$2FJjgheYDW4iT(;Gu=&_SW|#YR1CzCVX?rZI)x! -zNzr%&W&>^T#@g>!I{x_g;be0^zZyJBr=_a?s<&JcX;ja@Mg5Qgr7n*}_LFwK7Bc3Q -zR?hi9$jP -z0Xz+_t5wPi4;R;`5h?Ec<$Mgk5Z~#MtswovPH2WL^a^>KSOZ<%0d8w}cR@XC=^ZYr -zJZ}ZV)@(T$TnN3h=}D)Hi(&!{e-;%l{l}M}m$dAu^GR-6T%gZRdBTMpTjn2GZ}Y<4 -zPvyuNWKHPlJHoYoZRAA8cVB($$|3b;03QPOgMz{+Cdpmsja{r(+&fIt!83sB0(=gS -zcezS@PeiSAvAh^lqpQs|;*Q0;(zbbKd%W6dNImpRyl?RVy49UO0$?#lU6ivRNuzv@xXvJ(b> -zOeKah^v?QjIHK9C68(P8qX!Qs1Z#EauquaBfAHh;?+BO&g>U14x64{+W1nsF8@dLZ -z=6@0~7SOm=NASBNPmYI0qi=$oz=YEEVE}*Dc5g>4*Kr*GHyr5xN~$wmt3FuNs536=8{eG+=y%<{C>iAR2$|4gbO%vHb -zZl4l~6?uGk)h^uRAS(ZvUTyaP9io2)hSR~Y>9cJdy1(j)Dxc2V&r6C{l=MLRlKPCg -z@LAip~5NRDbDg{U9T29os7n#SjhX$fD;n|k|ve_O-; -z=H#2kCO9<^f-#-uCf+D_?s%!;JP1hhFz|H*{njf?f;o!vN=(w|e-V$6bjHg3E0KqY -zW-URN?G2oWg=`eIPql&|GX*IFJfUyl(1QMxD7?;NBZ2| -zE<)xB>Y8va6dt?73eFiX$OQ*~Z@w#%l{CT8xr}!j@&^zyFychd@u?RJJmTz15hJj> -zq%ksQs-j@YmgEDYbq<2pdBaH66dN39%r$m&U=d9~y!?`F3y{P!0GKe(FHNzEj5PT1+Hsvd -zu|8_^x?z5?0fgX$SRsD;S0D4v^{1a;JO0P7AXv)y;;;wijn>f_dGWU&q0Nn!9CjB# -zg*lyA{|(05ukoAKN51lBloNEglHZw7O<8k)I+n2>77(`yf -z)CmH6dhm%ZrCzQPt(YxEFnJp*AykQeYOqBdV^ELcNPgxFOyT#ac4#l~uXo3F$sAaD*ujvzw8-oY7iKA5ycS2`}r@Q4@DW*FA0${z{ -z1AHn8qm=8mzxfQqJKFXJFJa#e9O;}T`k$| -zU*E!-)~?!&?y4{0G^Yt#BSC&EHEwXTa5#C&qCC$ZtZ8TUP8f^LN7{Hk5uo%S2-A7y -zW^S>)M5V>OV~cyXrXAj)Y-$l~l9_DZQUj@nNFeyi3>N^!S+oWAcbR;{7$GM08Bf@K -zA?W^OXI?CD=8U-^WcQrFCnsOhH?{;{7>-}OrJaVN*{wcb -zNOBDWg3p48!?9Q~go^=ovGJ_^a-lN)eCiRIe?E6_M>waa8Eo)1^(HAfwKcafM)!m1 -zRGDE4SKGgJ{0IEp<6Ph`QQfkIMa&{}V*wTeqqF_3LH@_J9YZvY&-LV5H(E{Mh>SXI -zk%xLkd{6A3o&f)1aEp8Stuiz!X?aG)LWl{>+Ct -zHNR53X=#%`2L@iRMVdbBivPGDt_bRZoQdlqFD_8T6I*3Q&(T{ac!5`!#hI4>9B>)H -ziiJacc7IusyBFuaz>22(x!tqhofjIJ%E(Kb-gv~c9H+{wx}K<(A0d+7EdyF32W%!m -z(hB9MWvV6jl1An0KtY9)nPIQzCWdkTzSbI=LsTM0p_ukZ+|A95jhYWmx#RH5ns70B -zzyAx{)mPWH#ymCL$r)(&V+KGp@HKlXbc3F?Y97v^WltS4s>>=vaQNajqJlWN_^1=g -zsTz0uGL`7ROL|5*v?E0u-Ic@5jNVay&gS{e{*^n9_Wzmd!KTc6FEb=f+@6)LL?m;u -zdnE)kd})uHoww2Go#eakY4!xv5QsgvbQg*8_loY`BEzlW>=n_B=$^t~IiEie>p({f -zS5cC!R){;4$!$YkK`LKv{DS)KSj14;yp1X81eX%aWS9*vjd(FNaeLXmF0;`f+^#-w?xlE`$nM+A^{6^425~*7gJ;N?GVnnghp7S)Q(X*MjDA6Il9>g34+Y6hHH|aJ3^0x$6L<@!rI`XS`hu2%&54FK -zZ9g|S)Tx9ka*EaHrn+g$muExCfQ#pQ623uLsMF!M8EI_PzZzn)N7^r5p}ET$bkqEH -z-h!?V1r@IJ*Sxy2=iC*ZbFpHZ+I45yb-T~})McTJ5~X$4bnad!+;ESq>1n=}1$*Om -z$f!ZBb(G!Mr0;!*+CVBU8uuD~zFi7wo$DqmV1pu>(CD=om2>EH8%q;AUDf_}LOGL-32`WTaH&ME=jt2L+{@!@N$63Q`||T{@PQ8@%U$6 -z&ocCrv}B2EZE}hGPYWh}T0)^hpgV%Bz(Y&bdMfT*jNJJ}GVIK9apeFVdE(CjUiwPr -z713u8#|mCxxhIG0-6*)EnfLMo{2BBqwM0hn2o{~H^J`@0->4l_+*^( -ztzhOr3z_U@8uq+8&h(zzKY+4aOCrGa$LXOUN1DgKsG?ZLD8Rp2AA~yoMV@Y&%fdPF -z`*pwm@iCs{nf>zw-bPBt%bO+fnx?oV!owQSG8ROr1mJ3)b8EEp*=b$?HFl=?@Z1c6%87t3X1ZyIoEr_29zemRg~6?8d) -zk~xtQ&k$WUzxQ%jCfd?S>v#F4A9f-+U-|SlIZ!uM>8YOlZGy}`t`Hy1q|8hII7WxOS3mv$*en4Yli$ -zcq#x48~hO$zUlKrisk3uRe7C@X#`UHgW$g^{AE)4&`+&5F-cbz@K_k3r>4sd>Q6+j -zTmGxq#$~ULqGA1hg&kCXAB-S$jB}y-Uds7NeP#0DA*7A>kbS(OxLDevd -zKf34Q1dUMSJHmki&VQuX#Ad5pdtkz^vhE0^#}t!)?Vz -zJ(FTigr^5@fB^5CY%a7gHf)=7|JLCFN5_Ky-Qjb}KpekD5W{Xa)K2_d|K-ziibca8 -zndfwp7m`-)yZ=6_{(v4=i_H>%gOvq3y=HTO#Z(hw=*xr_m~yu_#!5bdw-$#JC$2;A -zwUE+B4|TA+zf`mcjnb~u6PS&F?qHAsfh;+=P&V4x^!fWMN!h@%lh^m36y3&W39umD -zOtm3v{u2zkT_-rN8w|2rsBO(VpJc8yQVF&AXk(CJ4Ow&h}3- -z+iwLYJxWgm(5eE9+3=>9N2RRhznrnH=1sjCm=aMk<%zYEeN`5#2b!p{xm9zPYy!1` -zaVX=03Z~>f9_rfptEX_@FzEx&6h-4_1>WX>V*lCtS)K~P;`d~>Qj0fIa0FC@2h50( -zo3(HCN7I}I4B_qHPF&*9K+=%y4-!N2TYt)W8TB2mnXplb(nj(F=%yo*L-l^@`Z=_j -zL(+%)V9w_C+cHGVnt%_|So0r#<@Wj4+}3H5d7qR`_$PrTMM3adVNO!5!he2jbdE1Y -zELS04KgAiT*>ggZ33me%ZQs4^BSTexn>$5WW+nG4r&f)&0(4H-6BJ;O!YsRYj2jjG -zQa5OO$ENf2>`7EyD7!@?(9P_O85(jZE;G-kiU&GNXF% -z%f6MR&h(;#Qh$tf6WRiPl`qH|c{yxF=XMBV3KLk={OY5N!Jm2S9jTAgKU6*FL<6ZMz8^V -z`FIf+RY-x0962K_Ka24ety#TdXgx|*Ju9ZC*`f4M0{+1>+waSguMC>|0i+LfYsCFt -zT(m!mKOB+M3LXFOn0L!>j=%|-%OBg3Pj!e&322zGbp>bd@IK6Tx^l^`Ht7~~kHaOE -zeMu~(bg4xBY4%Mx3AOIOxj`2&5KcC-)7R-pnn3*?o1A-_Wrs_ymbkyz46OMe`1uX< -z>nh9X>~0%6`LBp-rC}qf0buBWC4utVx5HMN?i7`#|RqJ@NA5MRndLAT+*a5w;j1EtE -z>jeilK9LWgA*+C!^vLJwoz>jo$NtdtcJZFtBwM72$uPxyf}#RX?F_o?$pxN`on*4? -zgmFIoX4)Z57_YZzy5~Iw{lAfKq4vwcXZ)iTJ{Uprclu#ZF^@0NY$dKjF|>SzLNWg{ -zOGPX=!bR9)dLS%0;qnBN-0s@m@gA5$pPq~NRdbO=&rqJCq?fW9w6bp?th%f|$~1Ik -z`}@i=yvA@-ReZl3Q^9PK(1f3Qz1`?Rv|MQ(^KYbV9k0qHkWe?!VCqRyDmj4Cm(!&9 -zo>mV>?w1!;g@r+jPi%>_B(C|*TN+oL#o8Nq=)35l^M{9W11+o@)raIfFrYHT0zfcO -zITVSxR7NL};pA3-((-gETj9@Qi&wyEv -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 -zkakq6z!kKf0qdRznb}veBi7sls`pzDQ@ -z+XC=~7)rEx{qJ-B2#T1e>DvVAO7}inUFawPAvMt#$vSHeN2j0qpW*Q?`T7Vx2{UoG -zU4P2nlZ@>|m<6GYr3VhhpT3R&?~u8=OUG!p%e;K?Wk0$6`f1a -z(CU9QU1eBQT^D_kZX_fm1nDm6p^=o94nabYX6O`Y=@cnxkPc~(ZfQZ9p}U6$zsn5Y -z^SpmvnYnY%x#ym<_g-tS)qXvj{w<|k$GNvZ(A}r2WT_>5-b#-q1h=JK`(bL(4v~0v -zrN=90OccPs!*iU(>*xP!1rivC8ROpgiRhUe!T1s@{FS5n%KdkLCtRAr4G_wo)e(L~1aW2B5A#hH=CrZU(kTnc(V7(*^bX;ql{cuF>%v7=+$6ckb9)6aCqMCPpQjW~-7e&t{%x -zN4qJF;PI%UC1QTz|K>;h)_Cj)noox>?@DzI&+#U0lfc{U{<$J11)%L5*z0ikoyrgW -z*2y->=-AT@+%Gy`4MX3E441mVo8nb5#6n2IK%n3?SJ6Kc4b$aPN(hx&ta}n5TUfZY -zmc`TWIvYnEumeEMCXD2G&lOS}cJtUoss(YzaVmbiiDol@=x=ZHe>Y1;KT-2C-lkNl -zm!OKGH+|hTA{<*=fE2y5&=HhOPhJ6Q4!}eV=(Y|#RGfC|@Fta(!zrXo-))#)ZO7A* -ziPID0#@6b(dJa=60T_LPA94qHk{VSF*xza9x9R?)>3FX3E082MwtHbGo^k;;$3I*& -zE9_XFm|hX>XQ-}n9w6Zy3h=n;GwZM0_r0JiXH%OL)coN; -zwym!X4`oCkgc`t0!lvSn!=MtCNtW40q8hH}IYgEn%P9M>{c2?b0+mwkhm#JjB9K9P -z5^|(Ei_u7F%`MgzR{s|W*N3jhiaCKBn%`_oJFKm!bKrZKB~1~94`IVy8{UgIxBE47 -z_hzoUf;_gq&Lakx@eHyte;@94waM58RIhGy#itUDeUgHwBQ7iL+G{&1^Y$+4IvtcjoV -zg&BHYQ!Z;;S*(Z_%5i5Ay;l}L(b%E)ypd*G~1v90LZ{^%J2h+-A7 -zs*JDTVYb%HTTJv75n>q_9orkO!mrN@@Fk276@vQSTKzK^I0vo>40)dr|o=7(XzR)Y6376EHsf1*`4Q -zD%FInp_sc3`i!92H>V$IxvS_zKReDiV26Io9+*{@I0NW0K;Q`IG_4r9bBN5dZJ&t< -z2)(EcEF=|wn8S2?#QYxNpsgBRRSMKpm -zL{lj+`u|c1`OTKd<~4Nvxnb~35^TsQIQ)a`mT{EI)x4K!F8Vi8DbSS+CzuijH( -zy3w0O^6(Sz^Y1H_pk$uJ{@KjjjUjq4UjmxeALK5^gqn~-ahHBKx?T~*WodhQS(E8i -zE!1tmDUkIyN4jm_u(n8REO9HJg1Y?Kgf2YsHKoR1BBbk~?5XYJAOhC`I9cYasb{W$ -z0MdD=v^F`7g>;%Ql@rm+V_byF0*^;?Uo_nWfn5rNR|I<9udiJS5&~Xju{$8W^hiWi7X0EANU?l1~b1IzrcMPvzsvcut&PFgl~wGX5KAU9}| -zR}qiTu#&e*sh>prnt+~j*4W=H8!-+e7pMt3kNia_5oS#Ct2C({k7e1p3Mc`V$=CCNj1*}}x! -zkOWe_91n7u*01&j2#!!0nEc#d@IQZ=LF#DHvkUZ#HUUrEMEnvlKJ~T%QSSr2DspC4 -zLU(x~LeOi{PaDRg^(N>mkT;*`Jk~R^#9%idZAjlmXUxHEwLGWs$y<8__qTV`w$HQ#an1ryb?`tnUSSAx71`KNaar63JI-`@0vopzCy6RW*UH5fB-j7+wVs -z8Ir5kDCZ)0KB2^_zpCV^M3Raclu{ThC40AAouDjKa|Ra>P|L$f-rx4e9qCN$9@(12 -z$ES`r-a2Y9H6b6cd`uoF34N_>gk;HOmT7|)oR5_h`AGxYg)Ta(#xyTslm?`h*Ktix -z{^_tHzoIz24z(5i-VLe$o?#W=D{x0`S+?%c^RL6P+8{ZefA@q7vXJ-Lt@h` -z=wA&BQ2V9$O$DZM2pEj>mD?NrD9; -z@{mMc{LdDWCbLDd$DM3?8-Qafa6hze>wl{idW#VS`@R1NCwH~9d5^`|woAO7kD@t{ -z64HkwwFkB47$lZ00T1JRW7dJ5~k=fI8 -zq=~PrPp)h+K}~S<*f=~6(ZhcJ-I693AB(Lv0Eq)}U-;;9fMtb=!DoZ9U7jbZuf1z8 -z!rCQ-@FvyclK3(*bwjgskF$|=oB(LpRwsJ^5?fz9xB -z$uuYUPq5yKlJVBqz$p9Y|AL=)+g9L!{{fK_BUu=~>JO|E&t&KJWc*#(45iM7s#&U2h# -zKqYxtDWfqeXn8c_{??vYUG}p3kCTrZlNC>kBs-FbwN1_M1m%FD=fRW@>Q|ALVlThw -z?)mIO{M>R@@FcbrWNqYSCPhyo^)%!?K*dTTPVoAJeubBgR4pyLM#a>bljbc -zZ0+qxDWlpe<&SC(M(HUXv7RMvJi4>{a7&bISMY|mBrD?;l)y-yQZ&wySj((BjTPa& -zw}OoIlY(j38kPLfOe^tG#N6qkxX&YMq8m!0MHI7Bv&U?py5Y5z$=`5Z0_$lCz!tc8N(BXXB7JD -z>Oouo4OXaZN^d&%a>F_cyFv^2>viJLE-VtV^P--==>4{E0bUyv!r*AJxjdUrR(jI# -zG^qTsyJf|b5JV|s)pucvPu=)#8G)RCPszRMJN6B8r7XI_Mp?vKH2=+XIZW9*0PWEF -zU2SzdicY^6+4pe9Nb-AT(oyD&(10@k@BGte2>{^$$PPmYRAcs@;Gk+abok*6)7Odj -z1;tn~&9j@2uu5!e)?!^t7PtDs2hACc=<%0b6>uu!HkNw6L+XWv>AqAD`7~IFWJi<~ -zcp3omS20tM&VXaeGM~Wzd=GT@>EkoI&(R+L?NEG_^iK*id;ntDutGI`;zREHf>B7w -zbjbUVurot&W^jb(mk|gS^LnPdb-uwnV`COG@DBbn=XAmP$0m4ykn!B42^B{Qq$C%) -zI?}JPU=~*j8)%1&^3n+-3VmajrWx_(5LN7Cy-%BYH=aP->+gT&Z{eD%XboS5+4Bdr -z!CgdjV{C1sZAfhN&)S+}wI?0hHh%g!!>a^ka$b1xDpLK9uJe+Wnj!0C4xL;_M1Fx% -zAub(kws26%36LGQ@3czJDEDpq96m!p+9x>BAJFg$0PN-L^rVWD -z7GjW!r!UqVJ!hS-a6?ic&z0OsRrlT9D`P*+KO|VQfEvX>*QTRFw*-!-PlpSb3pZoN -zJYrt{l3kSmMRza*PN7`xZeErg>I0XUu9$pAcl;0z*_bbj|9JN-j5}@|;$V0B;6Vcf -z^2vBxf6aeg=*0IF^0j!0vQR_ -ziapitZsHm6_yAwE;P;v8ZK1ul+lkYjx)ik%_9`}#9Ta;W6#K9-mGxG~2U$x3RUm~g -zZ;i>i7E#V^+BvzzqN?vbJRYo{xnG0_V+y_@S24IPfQuYvcgD{glXeGCZE){OWk3-I -zZyS@hb3}P3?SNGBVb5@-5%4B1w%G#THbc{t{*-R|zhU|hiNO1TRRcu+^(7h7 -zDVN^6Ongt=V+}~?OWx7Qm^MHQU2_M>w(ETB;jmhE$_p6=;2asTEFbg)voGLB`N)-f -z4|!~Ozh30!b_h~0#gnMH -z?FVFIP5QJGynND5i#^r%q?9AaZF`UVJ40vxW~v`hB^v#`7sK7n5#-=Wu;C -zqLvT6nCoAXC>6|BSnk~twZld@QrILy*PLDTb;E;pcPov{dI9EE5{95g+2(s;#f{vT -z%9u@PPO~-8e##i)n9I-51pdp&A -z8})me)Nn0(lSJ81Zd5e)Xrc2V3GeX7yV44r2cNON6Cl2gOkZ6_S=g)*8B66^k)W7r -z{`&f_K({5;J&cy&n7*6qh)UA2Ie${rP2sJQmHH8yX0)!$!A^0I1M>qm5ucR3W<5I~w8G$;;{Ac!nXAa@A&3Cqk^v4Gt^Z5z;k -zx5R3{NKBiM-ori|^V|qc%A}v0!O9h9R_ntTo$r6h#-#K#E=$?z7E*U-_N_ -zXHm#35~^;M7;-NK`2!oFS`dlUF~|hd@Jsw&<5%ra$8SFhb>v!mL-b*MHOD+_v}MHm -zvF$!|J%exyb_EVwMt$6VbPn$%57-0g`aQa>3VA+2mysfn(#KR{z8LpMBOJo}AixN$ -z(nO2lV55$d4SBHRfX2T@sDWBuH}uHF5>`lxiRZ2kHWK`xc&P8buJhr}{p1Np|7(xe -zO&qRp>t@q$Cx*%E=p$QP>zxZOGV4PIb|8-3zV+=yY|x>^1U!Ur!|-Dc9_ZMvwjeXv -z@?5j&J^V8PgO?#?;5lya9|vh@EmuWXTZ07%{_pL6h69DO^nNwxIq)c%J -z`6rE+VqW~;mHuNukmuXagpZ-Hd~pPmLHkE*n;M^C|E{=1%kD99-^k75LBcdfG>cdO -z-ZW!$(=a|{%Ka*+F$1z5za>PEAkAYkdbC_*E(k8ki#a3@RhZ*nzl(JS4 -z$S)VfJ~`*)DtkMzlY=VX$5d7wihNJS>${03u=gjv2-Uk%RwU;gtwMJ@s#GE+1uGzW -z=+@E*$z85uiW*F1N@lp1(_Z#h3JnMBl8*tSU~}<8a@48ZxJAJ>Og5h~hx3>$7JEp- -zw~8cNcSWxCZxkp~jzCJ|nm=XsgWg-70>_^<&}VVH`0V@^a?n{S21MyjmW^1@P%nD3 -z>x^_S??H~W61QB9B`+z4f(IXBb{8%4yKR5#?G$$d{Etc0dF`6Xe;i~AfHtIEt1n8$ -ztq0^xD)gCS$_mAu(b|`;9mSEynfITw0At`X%Z_koHkJ5!7eS(+$v0X8c{ZI}q^`>U -zRU@R0a|R#(YVfH~1t^D1ALlK$n1ekfSc2Ahd22iQHAaKUTi#@CQF-^XWtRkLfLW-3F~bWt`V=zYdsb%n{251?Y{1L4xb6YI=~u}G^3SdRrd&UfId7S} -z->qX3w9PAwlySYe!mC(K`5vLOj}~F%pA+ACy*(uh+$`dg-K{T)zc$lT`I;pSKisqa -zE}e9HlMz;>YT`~k(HNgH%?k!-hTJa(*w?Bt963i2GS+FdXZFY};{tajnMa$!Up`Z& -zQf^!6DBV{9(Xic&Fq&x5}<8^;KF{H7a#96liOe_8+azTe*jJ!#U!Wj*Dctq}pFMH#lW*Ug$g)Ac%EnPW;5@J}WF`+*{T -zk2q7LE}dXnC+1Se26Gce;mPLHzl7%?!lFmy>f^Q5S%sukw -zn|m!2>M|&F)=7h^sW(0`*+)c&90-yM!)SkfCWtXwR^w{-hd>^waz&48{i8KqR}ovK -z|1Ml8|0~QR{GlHIxouP%QvZId{SB6?8To50o@*Wq>UYD2o0pw{%qX0m#r%&3W5LZ^ -zHA`}gjvLE^gbNRnmQJ+g -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 -ztrp`yCS<1b>o00$CQ=wT|+ -z6gPpIYnT7`LnZ-fvwSeu^kmF7FE3>uQR)OI8&5b|)NZM)G6F_VJ5|OU9Kn)ow0(J0 -zo6P+bcMBDy?DZ?Jkc6em)4$4X%0fPA(SL7c|5R-aR><7~j(HKHo9ql4t!}G-MTM8T -zZGmE9rzgy;hCjSM!aJc54p$cGuC(ePfJo?euaOi_(_Ciu_OIBV9jdw$nB2JK^C#XI -zAQ&5@UhEv-$3y`AD_1l=R*m*hCPd^3YA)jseABLj?VNXCGVNhq(}6}AnoFS2ZFJ$= -zH03O30fvd?%0JoiOCQr(V*F4#s+%4y48Jp^uq=a>(0>adLLI-=p-W`R629;3-dnKR -zLW$7pWryfUE(E&((l@0{3V&Y$mRdDDi7Xg-U3^Ln@mAcLF8mAYXx)?nlS3Mn=Ua1d -zh<0>_b!1Vqk7LC(@C%m*aeSs))E^oZV(qXS+>xyf*h2l<-Gvho>R6Tj7FCaiC$N)T -z^3B!j>wK|56tp7bKz=h{@#^BO{71H__v?|H%nY^Rjrm4z#Szf@ -zcNY;6xI|=usIop|rmV;L-wJO*Y(rD6OWrfh(;L5nZ>;HiSx3f(l0HEpmat7#@*25a -zqWY|fHa6H!f`I3oHz&$eeYc3IlydVoEEwVpjhXb$kBZqE8+k_+wlgyFK}@QgNHWx& -z{Hg1u0KB1Ujd0*I|IFrY>~0DpjYn|i5B#Cb_Tc;Ha6p(*AqoWGV9Wxh<;KaB=s8zB -zYV_ThAlnQiLymHC1EGkGM~BGEhM@eMW2}gt*xJ$g|Bxx{x0%*4f|&y2odOxxXCM7e -zB+nS%B5DtadQo2^TN+4y@cbmzMK!`Gr8HrwRwW1v@m`DL7^qR5oJjxOuOU`*0$W9% -z9MA6>GbTUAy$KW8m$zQzO4F<5yk`oHi~6p@3N|!sDNVD?Sq=q}xy&F~ck7fIM*(o-`;_gTwZ6{+v3#0=``aPVzugLVA$$5hH5+N8BBf5TdGg*tDMvzw}%5)GBGB -zPyYarD}b!aNu=69)~wCMsP{}a-R$3cflW0^ovrytNq~=1ov8=}8B!Nk4|^8C;`+## -zdZ;k_v^u?jICEJhxJ{u0mMZ}Dr;9q@jfQ*gAdS$^KkeGOyH0pbJv<+d5+L&b<@wrP -zhE^W(`F5t^@d+H?Sn|I3kQ{tkmie549&RO@f^Zy^MTj7Vg10fjDOxkX2xC~G8QYjS -zxR>ReT?K0|@Tr_?<$eVZO~0cjJrw(f5FGO0z61aOm{K<{dsArtf(@wYchvTvg}-g; -z9xo7TZ|CD7QUqN)mTvF+FKM`M9i1*3^5`kcQT8Dzn_ueA9?leS=c{2^$yoREe${8m -zu|}BA=L*vDVZFp1DTJN+mku&Z^U&LY!GW$&WTn5+)_eZM%hj5G|9clp4y=Qa&lE?aY -zcj5eLpJ@@?LJ_gU)boyv9FoJz44;SY$rre`(>NH!%LI&mm*u#-7+4 -zhEE-Lmk>+6p8`7Bg$0}%ubQDRsWic_cVR4uA^#5}p30{(rPs|RX98)cB4tWIXA$i2 -zEE%au_POigHs>*JdvHNC_OxQQfDysUirOPvX}B-s2Gc8Lu|X?XLsXp(@3?`EG}sr7 -z#d0LJ89lq_C8ZjIOv?{zAE#q!*t0ArLcmXR|!(&eFTA!&{v -zc!E1lCi8A^H^vv?Ypug!SE>~{pD;`ZZl`>;V*7|^abV?{+wH55`mWvL8gfsTg2knW -zuFv5mw&VR0w{^k}?OsP(sncMwC!l%m8u(+nE8S$_nq1fCAS`}Z>9AQA-5wL%R+Hyr -zCHvW1QotCyj$SG`yOsowY^@0m^bVnEyB*cm_beRgR6VE0Bl!^R&B%0{}a~ -zPJX81Yt#drE$>GDL+d6Vf00Przfbt3H|&6$L8cU23XpP3+}imvv?=a5f=RBhy$szq -z@?GUS%CsgCvX-)iDs^`!+?WW^8ZB|`;tl+Ko9xnQe&;U3U|UExta%{x@cdZs#-kz{YD8$zWAVCd9fZhcW%SQzRQ9sBzzr*cE?_D-|q!)htZ*3>N?Ki@EqDh1j4EHvJyLE}{$ -z9HE*yhB#i^&UA<$sZ~QZzb#DF`A!7uIh{5F*#t+$*AU32hJaj+Vrdf&Nhqubz}c2us$FBufrT!G-jmKikk@(4*qX7AbRaP4k;cvO>i4RN}wHt_^W=# -zdeSBK%2s*S4QC3@13Qj6YqkvQsTrX~Q*g15D*EgmdQO7+Q3?X&eOarw{Rf9x)!pHQ -zmvu$+>`8oB5ARp#-XQf3gZCkxZU=F~NILXE~Xt -zx#0f^`gGsf2NnRiw?eJ-T^jHR4F}by94O;{N(f=WsPRDdPn6EA7e&Cv8bhHPLg7R% -zT;wl4n>`GY?~DPP!jVlh(~aV{nUUD{R{>PODbMrb?_RhZ7moBL{x!8WxZfDfg_Z5n -zdMlIo76v!R+TSI;;3YBLJ{xweP4J~r_$z1zMlN;0w&7VId?1ei)THOv&X_IxN`K56 -zwMOzX)a*Wn#{u7sMaaUA3=^Vggiyha&D6HlW_J5qdrNyc-_30Qm3l2Mu7j7CaOGA9 -z^GcBfbLcXAywDa(fLsTN)g^0-CYpy-Mb!ct@~}FRS5W5N&pt1=qiC?9tN8vN`4o18 -zQXpau4elcm#wbHU0HLUp*68J>V2lroI#}-c=E0XCOyfZj7r?R$ENCG5 -z_hr5G!l$!=j2HcCi=WY>95__Tf&=q&x>O38sWD8K0Uf;+AsJ~UyJh*OJFZ^N(^V$py -zXxctp#Ts_1`2%Yc36E;U2 -z%^tezqK?_Wd| -z>_Q5lA|1x$f?dcP>)~3FNLZdmMcy#y2iUKQA$7qKrcBwV=iYA!jL7j63k+AgV&A5F -z<{+g~I-LT4euEXdOURsm6yCGvx`(MJ%Pj5l+Q&%NGjLF3_PSyeW*`Ct1b0&^v>8eI -znWBo&_Xh0dmQJ2r`%SXR!vGrrNMfC{P%-RPVsqW!maxerEZe#XPk%vtqANtDFay7X -zf&ELn@=YFv6t^!t3n-Zr%a4ijnkDao0Zwu}>vyHm(w(^l<19VmAJ@k)vuU6WY%XQ_ -z1bDqkhdBbgB|`d)jQZPnG%g?OQ2UO))lnzaPOmG=;SqD0h~*!i0r$H++49*}&+>nH -zh=_^8|DrAX0ev>Ht_VR=)CMW+hzOl7jC`%dH510Bh(w5eQ#7np^yAr#Tdwlcd9hrl -zR8Xm`QSqjXcgG_k--%vc2y&%POpcnY{wl!C3Vh~oIqgp6{G*4z>==fx26*|@V@#N9 -zbyY>LJhTZHbLHutj{KA5HYCV|Lle>upFD%N3Vb^6D!qkB(AeS_c?6(gd(> -zH*dZl@X`Yh%t`zI5st3*J4=9zUnC9{=3&mL+QTI~vxi+1c*s|j1fOZGLz0&> -zPC#tt?j?As@a6+%r*y!Zga_R7Uph5kQiI($cu;$x!zhD3C7Zb4$7cY6I9veo?65dP -z-H*P;LQ)}AD#X-IMtI8em&rcDT;k6 -z75j>_bCIjc92<-^(EKL{z-Y(h><<+@o6N);Ea54fZ>}|`1SV!HVZ@Qa#RWWdI-Yu! -z@#B-}H>LFmn)rTGSd8ngQMx8}w<_*{ -zhlHfpf0o|T{G`0K*g6RvXMYoIzrb!>`ACi{>?UnLbd{UW+uhl>9=tYn!`pY~*EIxJ -z(OB8!Y0N{;v})KISWP0weA8=wejICj!@Uk4fLU_XKqoOS)!7Fo>pg`vqs!Gl4Xuj* -z+T!7JRW@Xz8-$nih2#m@2kfn@Nw!snl()!QeGCtNjMw_hn73F(E%oYxRJ~5V-v4Fi^RDdY7 -zjri(?|EE&Y@~$VwC$fg<-T$80gH&3b#@+rhKAqp2nQ8e0Bh&7~@z -zzl#loHEt~P{D?R@r&rx_B%L80#k$*Sg{(P;^5f6Vj)3kL)=Lw^is_5#I#0`hz@5S2 -zvkDQwc+o4ZX#N_vEX~aW!M4~jLe>}KET65 -z-7|M&)ou(cc{_~YF@|_4r9o_`E>+3+eR)#&Yzt>nwY{lbpxAu3`i}36>#q`Da^UVs -zPjj9D!RC2QDN5s4;tG2s7M$n19+1)gDGm=b9t+Z7Ib6SlczI77vWMdH?l2+kPxXb) -zk6d@eb@!ve_toiP=t6V_{+@w`D@C%gHO``}K!ieEfPI(BA1yfj?nXLbd|)*3Q{~Lv -z08`r%O@qe^Mi&4M0?(?RrWAR_zZy156DW7<4#{*nEtGT#FmlT%U0B?ksbB|Z7a -zd}0q-FUH_nGpV1M_D#RraJ=o=uLr_RfXq=1&i&O?X7ly!LZ{Ia!KD!Ur0>{wAMK37 -z!j}nGc#vnQ!UU1sUwbuVAH0u+a(|He=U@Q{*w@u4&0o`HN(u`G8T~Bg!VOge -z?@Ldc116edscwp_G4CdH)LcmNW}4KgT^+6GoqsQITS=9Y;z`IZQ5=dHdTt#)KWGn* -zQ+8Un@MXj?0QNAh7Xyx0KZv$xzF^L+S1~RTh|Y1PF((AId9;=N{V5dz0LuUsI?38F -zIYdzaSr$bc1;L#>%hg@RduK6gSZV+0H(+)FoUNyjiyt=WoqvWpmqszNu!72`9&mU- -zL@e^-Z8#5CyiLpay9)#Cj9a0Xw?dgR{lK^W0p^}QfX!U60=<>1IFr;z)X9fe5;$ls -z=9?u)vwt=f+ni}J%m5!vM>sB%#LE2B%s{-v;{7iu-UdLmyZkT5FKENMvuLF&rtt#T -zgWJcrMnxY)|ACN8`!ZkP`#2Aft$e)*^to$3EnuocbGI5lU+x1SWx%*W67_jKlS~mF -zYe8#V?40aRCZB4aQrK6g)pCEu8J`5=QXV@_hPxCJoqF}z;@(wEnwwHFcfo+>(7DoH -zGp95q{R9%_O&6x;tugCG1JfR&4_5&0Uk_v`F}K`Hju|A@I3k*sa4QM&ymF~M)ycs54EYE?#01+D@(G0WKK}Gn9?Q^Z;tRrgx -z&+PH9FZ*D#mLRathmU+j -zVlL*ROgKKTAskRi&6*g=k;5tz5=eO{8n~i#3ELZ;NbWgJH_=qEX#?5;ytgiv1M?#F -z)`HPboE4@Go4^%;=S{9_t`Y`7+6=1=m~lHc=2D{^Z>%BzGo+s(B3ccO4j#hoT?g<~ -zfB^23$Hu-JK!}BvKGJ!xO_mA$JR8*eaLxeB65TTMkF(b02eKarjlUK=Td#XyUJ7R7 -zw4~nK@2Q{0A)F`+NJ0PMOEv&eilul$)q0)&2cp(bhfK?5xJRJKAO2S+BC(r*+<){Rq^NNu|ypa%rp=8gB8@L5iaj>8pt%JCXZZyBbzvSakVh?D%EE7*%ETcC?IorT7j)1` -zRSUJq#zFh$h=bV{{#Va-ZGA@6DfZsI@Fen(4W=4H<9|Tt+2!9hOOQVvZ26s^nA>k} -z7}-xeS-=$?Yp*-#R^g2KR4SP$1IvbtEcFqEueW5*F#Glwtn8B?wI|45_rBZ{OStt2 -zwFU5mU2BDvynlGo^BGH_AO*LXFmW1Zts6n1XCRs|f#v{%oeF1#JD^h>f0rcdRmC^t0-GNp2AZDgcpKp@Sj+W>kl+v*xTF|3!BA!GhXmCLAoHk0SS)mvpN~WTNhAfE)tw{%ceE -zdb~#FiT>1rd#?90|Ae3Pyo{d5zM=b7ihVD~TSe -zoSem#C*rH|VCwKNOs&z{t_&fFg1#lJlcj5&jHCKqh=&??jxA!|;v$fa)C;JE_4tog -zjxxuy=K6maW>-R(ZQ;bRwp($=hm=9Lewm1y)vea7)|ZT*Y<13EnbBLGCYu}qm@2S& -zz0uovI}>98x)0ECSD`-5XzgL#hmG5wOQFc;g9F`R_om4Fw^Z#DSuqfhG6CCh*_IlH -zC2as8JN2=-ez2(uW8eGLizh_4FEx{=iNbS2MksBKn3N2KqKP%^R*Bh2yGIYpK7= -z6&QU;2!ZJi=})-Jp^Kkfp#l)-hXbRV@J9lF5kiQ=xARoWJM8=S)3C{&8x90#cWB47 -z&av}XE^-Wk$;QoHY+*wJHXvtlIX!xdyDfFSjX%|c+Jh5pUAI_ii?D3qz)qG4hy0{O -z#jbZ2R7q@peFw3F-KKknQiC-s7k`=4;I7CCvcom3{KRNpto>fG$g*2aT0wV4>KPj{ -z?UhUS)s`D_3DCt2Xd0e_ObSXwhWT}Z+9o8&h5(Nwpc@<5o(4v#DP(pVM;-F&-hY-6 -z(GLf_8R~rWo!x-S0+6}wGE#L%TIRoy!GkX=zNycfZgecmsbL3NdA}Y++bGZegBD=AhrG -z_5;$_af$e8fW;I5 -zl>!rZCA;)$`{_=FQ1}6z%Mh_WlmP^H2mrjo{@O_PcXCKY=3thkrTE6LdIJ}-5J$U5 -zWR7f+An<%vmmxT;$i(ojW+DvZ?#=#5)*0iy+9?m&;3om91Li1a`JSE%H+vB}s=mLy -zihy~C=j`H#ltTG~o{D51jgk>1y(5rqRukW(x5YT+QD|D~@&=<-!)EKYqMpU7!v%tp -z3;FEmud%QnPJ^p&K9&t?jBhrvXKRLk&U|*8>^!T=lU_KuJ>|0RH02q=9v)wEvax;I -z=iIP9=mNAaYt0&=o>lF{|4_SKor;)GKAly)8P-(Jax%zBw`(1o9K%YpU`N8uduuv& -zM2P9r@L(>Yvr5#_6lkA>j~7(!XzaU?xxF61H@Ww_>DjHg8I3}*BScc3p~y+$s5H5b -z9XEcfD?jTq-x;oOe0VruQfZn0%8T55ifV=Is=MKSJ%KWPA1m~}Hfn`1AQ(C8`Kemh -z=Cz(Y!?%=FqF)4b9Q=Ss^)pM)(;dMAWT*sfWG*|7qk_c8+x(+e$oMlc2yC-v;_iZu8FjBd -znUT6j`waI{#yBrT$~9BQL{OMpn!cYPH$_6rUikGtnyxY|tELG{mo!Lsw{&->q$u6p -z-6h@K-65cKgLHQ&-Q6J}@f{xC?+@3-bN1|+ot>SzcVhQ>=S_z~5ouBfhmsJxvO_`- -zUB>1LN{+4=4WH9r=>S19JP6WlhPpe#3jDn!p(F?RqLhw0{eO!gFAg9D<_;vc-Y~1M -z+qi$KiQZK=U!Of|T4&E7Z(bc+r_>f9FE -zOo^GtW6~9wR)h|}G@+gyFY+u6FUSX2g{)WT6S({k59G5yENQ;{OKf~S4FC{thP%e> -z2JnhWLQ|)(6|g_&SP+niAp(`JR|fz(XobDXAa9d=$Qiq=T8aj}$)$Mj^UvzHalDwS -zWzzVEec%q)*+%xg;`gqUqD -zt-p=wv?sw~MYTsmXJSqJ+t*Drir)=fT{_)Z#nwNYT5@nUyk2JQYb?|>Ysi^jUT)D5 -z(MXTJMdF^K9xB05uJqg -z#ne$&Sg!}lz}j1!}~1yTUbSzz|9H#A;Xj;7`O>$^bzo1kI0M%v2XRcoB6STLvpN>3E -zse>l_qIiOUb*MYm!=(^OrD=mJ?YR2rodcpW=9Jd!kx;-v;@;lX{}{21Oq{hEOyYrI -z0Q|q*s+qAbzLfLgS`hSqrvr!;pd+x5LIwAB-^OX{m^s0XAN+K%(@XJ#PLx*98{)193v>Mpw^VY; -zv=|6+M1i4J)3tEAP^L`wJby;Z40alI)Z+kUXaHHDCD{)M*)ERT(55tP9#Ek5z?qG< -z7&^l4B>F5OQs3}=Qw?+iR7CIXa?^ZHa>~C^WH44vM1q1KX+CSCV_?jo!_xs328*0- -zWb#wk1VI>#ZuiN>iM2h -zZ^qvCi6jXJQYUI@ZaBZj5V&0I_J@fjQ9BNy=e2Cs2u^`07{KNNvfF_BWQ7Lq-zYPY -zn=P1xBlEfd(RdI6_iCE{2*|LDyAk(x;@S!$Noe00`K~+M0bT&>(Fr`9$H7&gV5@Ab -zoA!Mv0++TPrg~hx>BNW8hY#O3F#)5+N}TSI_~lkMMnOGIQI&V*8vnlu(MX(>oRZ?dN!{j5uBGA@sw}#}jCX3ggaDT2sj{!9rlX}09 -z3%cgBNL!YCK5mXP;Gt!DiMiUgYKrMlL>CA_0ebml@TRP01D;vNetokBO9XInX9<~N -z@lihl!(xR9*vWxghI-*L7O38LKjpIJZ#JhlZl<;kC>@$8J<1;ZT@4!j=1KsOW3s{_ -zCAKmd&H3}+KPf|EQ&BMW=#k2=QF?#@bmL;MNfk8&Gm}ZUK=!37<#om56zJXjuYGQP -zX>Lb2j1a$dJYbbbQDRnGH+yVfqn3adM2jatE;22*59xd6Q5m*v0yi1hPdd)42npr4 -zPa8;~i8>>VW@#i}fjOOHI@AAhsLtW0(EUiP0~%o92xgritOhIx1Hm;l=OZC9^mLdP -zawnmKK5%q35t=qA8VPIvjnr@@#yrYl;4?OHNh;xLL(EK1H>-^2Tjg!(H$?YwBYbTs -zB~+$ovliivu>$3JbCkPL>+jGWmVmhe6uah)n4}H$A&olXXPbdF_bcevMF2bgAkaZ$ -zTv5T)63?Do)32R<6BPFt3&so*;Y0?BO*v(ASqa8uD!DtcIlZx+)Yckl;_6)X-J7uT -z3tV7R%tGwLc!%|UGg+GQ%Y^wz_q!fq0smL;JD~2uPcg5t>3X3vMbRO>=@TZUkw$H@bdDtvWSF+egkKa_Tw@|9%CC5?Gz`c -z_q8El=V{VDPQt%=hu>t?N -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 -zMk`Z4q|$E%Lf^d$R~y@LQy$Pl(cP^~Ben}< -zf#S7>je>zsh@=V@jVn@kF|HqBpo%5JGLo4Gn|h4BG#iQJlgW^F0RcC&8Yg884GApM -zzM7|bn}r=Eu226FygG%t%4guSVQ--2vp^&{9h93V$xN~G%)R3Nj4=M?tnH~Ijhq+I -zE#IKUifdMl`TG{=TAiA_RU>E3}@WiXUzCFJjh?;(Rx<^>@P6Sc6uP^S3ue? -z)-kI-pP9l8f9TVD@x9pMK;3VxmjlWjal=n{KaN~WK#M;O*c}LzORlN*+fWj_y#01k -zg}fNluT^bo=b966p2pt63!3(p-yg?3aXW^gE-y~mOYl!A;vzb)c#1||DuVNHV>AFU -zgq>Is8nQoD4_q_B;tPm>BO|mqPh+?j+jBz%#}xnfFl>k~e%Wbz?HvQcvuWH2emwq- -zCx9{m5Wtu4a}T&Jltp~!b2wslVb)eF%iSqxMiRwN#q)QI!G3*spAu9yoV37}>cVm6 -zRS6vOHE~`4Y)1c3;O=za_)yRa7>GhJCH&21teNXuu1MS9>)gdCq+hZ)Ui7^I)auqo2 -z?}R^Ho=9sbB0lT~?O6cVh}5LPBC0f6SlVyLg}Fo|L&^htIOOHF*MZOYHDR}yq^8um -zi?$S4*{W^Sh~-6|-wg}o6l8$}_HR|F8DIKh?#DADJBaTDEl+hE$mVDoCcuT()Q=m} -zR+}xmRcD~#vl%B|UUg2O%v92^_1^3)0hK?V#X!P_0CEb-D*EXxnkr7FqN)s8eNLHY -zx^Cy2Xvl=cjW(dv%ySX(t9>k3v`74;t-d{doRC@NHKF{v!G%m7hsl#>MTxV_oT!+{h(Xa`Jo>l_09I4PP(J-!76(h8 -zYio{b)fBQRlEUXG#SSFJQO);2|My -zXrmc|54SfgwZmv+UCjo+VT!nS5dDVhKH%vgk3W0~zD`_BfCUQ_A*fQe)ja{W!`8Sc -z%=bq&i!;`k0rMmVj1CAiOEsrOq%!rvql|@wiE0Gbxn^t8in*c26*XQ-`Uy}0BN_=E~O5m -z5iY2!0_bO5#*GT-7_QXwLV?`khEzD!f!BZaK -ztA-Xce@J;WOUk~9Cz2e%opwlkiGBPuHF!eEJ??o{m-p8y8%Z2qpKsrhPI@BwkcI5g -z_VC6VNHR7oVc5eDP+$ukR@dO7O%$~ItwbC8^B?%y$#<^nm_4)V^U_9hAuZf5fG}&e -zms3BVLydYCH=cO|w?;c&74t`FZPQC&WON5wG4`jq`UlW<$t9?sN+?lv&K~`_olX4w -z`yb#-*UUN)o#Jq9Em}2>OM9*{TS5jBkiCkJr>n!Es*tdx|14K+i`@RB@0jRT^%S%a -zmA^_`CHN$o-Reb#sv|+N-Lr{zAJd*wm-o5yLUz>2x(z-jx@6jBZ^~vNxnRi?q!m)8 -zwAw1GNz<_7C91YZy=`iE@+PyFDu-E^(#oG!6+vx8KD#yp$Nz1Ht`=S0XxZ_BCF0NG -z!nlFub!fSp+_~*!JKh2K=mTP?qNO-YHV@?wsD?@+DrE;f=5V9wINvY7$l+mDk)D}{ -zg5Qg`n8=g>QU@sPt%o|(E>EzPc-1KGcsJ)DMNj^tn>o?=@1VyQ92r!2KJ6cRWrUZN -zQI0^y!YPezTHb1x32jv}3oG5X=WJ!yA(N63#BKYpxjSzeYCe$@t$_wV_jbs6jRuC+(`UAc}z -z$Qmnk59Mt6RYroKK|C;aQrj!K3;IKKY|yJe4EMcVHm`JzDvO3@gr!pXGjJ=|t7YwO -zSDMpPkrlsVXCKe3nQ)^El4WGRTzV+*1b|Q>*e@0?KI8P~@Ko?8wTsjly(KUr<6!KL -zrMz7CG?IQOB`M7_b7VltuoJ`I3uB|OpEP|uNiETI$(F83t!EQa>W`MheEfSwq=PO1*~>KDu=-&VALsB6u=(x?2w~)GBD8 -zCUqiluA&}yb}?&ILji9or(JO8W%vH7im -z%!a4D87s~GB%4qw5X3ey9HIqN%w@FH8!A2=v7}rT=ByK|Zs_%v@ -zIfcuJAUVudQknCDZoR*@%c>??(M9AaQ?0z<$%(ft&2xS+1#k>nWptL}I8F@KZXDlI -zX%d{%mb3(4!vD6(@W9uV5Ah8)ZDSSx`jJ*l4Hv4vPA_mGvL>EK#5V(c8i<&DMXAUr -z^C->$E@YOJ%e^K6;(V{xyp)E3IkCJ)D!w;$j}`18WZYOchWfg}t8^LY699&gG&}1Z -z&sb!sVk9WLh+o&M$Lkn~I`h%rzUUxRl2M!=N0+}((kF+0#;H82IQb`JDN(PDcS0rL -z7T_STnZv;2NlsNxihk$=TMN3>u3A0;oB>>o%ZSI+azPhvCpvMUc4Bib+W|0yNXUdmO&h32}7m+};Oj8Fs1%?-{qYiU>_@s<0{r*OFP3?Od;rJH+u$Dp& -zksW3JWPC*Z5C`e(6Z-6xL5>HAgQZYx2>Ut)uFK!5Zbg)=^SA__yKe(I$2-HwlVcg) -z8a!-IK$YyP_+B(HT@QYf-zylk8uYD6f%DqSLW-|UcF#j@1)0=dGPQz3E_DUz;h2lc -z=!0<8_TPoCtN<7lPl%R_%3|zBRG=&Li}b?cw~DM?p2P_zmpT4TU^Yl7?bPL9NE2|44BL%u21#G}ZeY560%!nS0Kb=w2 -zan4F*W4YkhjZcB%BfWSlZROIG6j{H*o(rpCI!bB1G@*&!^bRZWmu5|PbJn_;63KNw -z5af}{pb0CH(ltwxoX4o0^-gf4%vQdGEQ%Caa>{?}uXW5x$#w!R^zxD6qwTEQY(Ch= -z>J&?ivVoVYq$NkSj(4btBuF=*v1+d>r8s4lEKZ08B12(f+`1&Y?-ab}y~ZYbOm)Er -z5Qv!&BoZ?X1*Jng_&dW~E2zv+qOZ~>r#OfZlNUsXaFiqn5?p`B$p3(NYru!NPqT~h -z>56h29)DK41(Op=Soxh}&)75_+Os^~Baab(-;1So>8ol0CRfZicOO0?&=pk`mC)yd -zjo`|RMR&p5EJRf6USAaQ_SzH}*v5zDyn4F -zu>ZZq9V;Udlacnteh$BEWGh{ZhZ>9BHD8qTclzW2j%G`t<%$vZZqc*w$RI2>T|dYB -zFLOhL4xa#WBmnrD{$2YNp$Y$!jRI7hLi*g^ooJKpc8)+B0Qi96RY6wv^U}WGe>6EA -z<*%KoB1J!LgHdDw!Tt3r*C@MYt2;I?EM{@kum7?Y*g(JEDb}r2i)%{cA=H_yVVvMh -z0_irOC1k^K*9tw)f?=K$lS^@hCVchiYtbk776i~}7Tq%q;b=k6@>A%Ba>Y^CQr0b< -z2to5a-NfQ|1+{_wRq&nFNT-QBW5B%K4xYHHs^~`Qe -zQw4kmksxeB=B3|DR>X1$UO&6Dj&kM5x?va+Lx}p^fg+Ls27`}jLfz>W{@lPq0U}4t -z+~T6At~k$sPapX!%=pY$Aai8*CSTjl+>WpR#2S>5s+JkYd$B0V6I>L5PfHybz3@1? -zUUVD8gjYHbbly2ZEbjT)SfFS$;C2sNXjO=o#s9>N0Or?vY?4RN%eR8Il&LI;;BaT9 -zhcsa=0(`U;I&jpWkP>cO=^9xI2Va(|GhQ%Y48x=?n@dFU1D?nUrnwEUYJd-R_rypC -zN=ft;!=VF(ML0D6F0$rrMrwhhE;-;OC2tXMu_6A8jp9{fyQ{x^GxI80p*p4WX}fmX -z0)Zn+8&j*mMqB&W(4wf^(~UqC92aXfa>r+NgS*6@oRv<^kX%co?WL_^#3wRN+aY-d -zK9}&-1z#cC7$Cd47q?oTLFKTnbOj46P8lYxIr`o{P>~n+%Y!BY^z$jn7Cy4|zHgp_ -z*!rkg74p}TKqa%!?tk3He_fRG2*^qlLCKf^w>(YMjd9d)Pz5{O)dY?(;_(btxlYeg -z{#o7$RD8M$?eRXX%kw>#%gn-)E#4M1*&YY-sX6D}<_5hbZJENZ_|;PKsi_~L;@@2; -z30t1l=b0eFma%S+M!`P9QEP|uUB-KgL;7`Sl?PRi+%d^FYNZE5TbD*y6v3gZ@_$R1u}oN4OcG+;Bvu@MuBa-VSW? -z`UxdGi|9114KBNdlqN>Cl-6UBFs?QE#>ZH{R8xRWnx-xFaK>OxVIsD!*Wb`K+JMqQ -zIz(8S19}CX{T=+IG=^hnAh1_0JoGpXxaVTg4l9u2$9$L@u -z_CcmXOEfN46tyGUOKF3qm3bQuVmiQ{$mIh(L#?|cNWrL*yuwHkUN1trjAVU(;qB`^ -z=h^auKuywRGtukKnJ$*n7;IMP4@+1Qr9oTDs??O@j$v0-!jlu$T*6)~Est_~mTB8O -z`4$dlP`QlGRntrQYT^T;El$f!DoT&jUyy2hZ`pC6zrqLUz%4xv_l$?0P|1vyy#oXy -z-9+a~XE*wGAUdT?PE}pt!mdCd&(GJsrb -z-B8dWzzUSCXLF* -z_{9D3IYaaYEFJ*utwmDuE9vS+KU=g#H$5s^xq*JZqpXswG5=Ek7}8Wi{cW3&Zw3^y -zgnX`*6N(be_9n|Pm-5C=3HIL>nH$?SIb_!VA^#d31$x}K$SS)IDi&k>vc>&}zO6)4 -zP$kXnHrC$9oDcVy)mn4RKfOqvWn2e0xZ@1d{p}T<5*o4~xVG{j1-ghrdS(e4s#9fc -z`c3yZ=d7R$mlq -zc>^)GvDiL^ppGCUVh#S-DscLV$S2ZcDx3tg1I*{A>%VBzwI(eKu1@mOXyAMP11hX1 -zcYqBAyoCLV1}5RLGDw_;{FJnRGoscMLx31804FTkv$wW>gxU~J6Kl0x(y2sxGWf7= -z4H5yb^kQY^EnPxbw8)yG)|Nt$=f<2?_prnLDevDd -z5Wbd&=q|!f5fj%*hmb8f0iT^Px(d%g0#^a25T8n6qD6ZA&Hm~U2ap%q@*KA-CRapt -zOy5E^us>dQMqFnsm*=(`((&#Ss~~sh+W+f#7-~-YdQkixAqBi -zK)tvg%ALO1_J5HCG3={%7}u=9Tn6tGmZ!AY;(@*S!y!prD*$l;hn6_bJ>(s%5UW4K -zccyFgD;P#MWBYm=h-XND_+jEb*F7|0f@t~YeNbm2M;i%>YxhTGf=vOE6kD18`UD0~ -zWfX28+!UulY59Yja_+z>I{8DSy2a-YNsUYXFB|yUfIhMml48zoaS!^VfE$=RIzpPr -zje#Sx&L>zW2P)?vl3m3{NhRHfl6KnyfT=1LZ``!Qz$+NUQ -zwKn%JNAu5TkdQE>-ZEk|hm~N8JeKgxfOhwr|9pzs$PB6eJ-eb;zqMMEqSLx>aad20 -zfH^#mt#*HS_^f6GqL`$Fbm=9UPt>j{aK!w#_8v}0C3D{mBdHw^B1%I=L`?pE1xSWm -zSJs{KL`Js3cuN#4k@u+*G#JswA2)*XtyKttSU3RsQ7sHLgq%^ss)$v<^|!hy|5;N6!t|qS-ZDCEaKT)*29J%_*>)_e4t#IUZU|`pF68rj-LH7wrVZY^D_!%3^8s -zhs>E95WyQ{fCLZkjHaAqS6p|G@v}Yp)BW|Up)nU)SL6Gfg7Q%lBXy9<5}(nMTDxHL -zXo~%?Vpem?)AJq0+q+kxX}>ja-1(Fg!Pb6_g{1V7mHl%7zu>XDiLviH+jO7V``z)M -zZ+2=%o(yYrzI{65t7&@YI+yL+lIs!bJjoYxUlq24C+6oP*&3`X_?Cz6{^_w~V++8d -zfql(oLD?K2wRtK*Fuq(5`@{VV!C9hV3&e)ac>7@WZU2}+DWM5*SU$LS72y7?zoSQ& -zVV-B~Y(<|1-7epr&5-=0u}j_|!1*3y -zXP}*hrM+&+-JSf?e=C|qKhJ1iad&xVODKx<`45^L`;SkrfDcI3!AmXtVQ15S>UaBo -z`CJbxR^HfqRH#PCweNOFWJe0kKeEl|I(cf;)BP)mX -z{=PEqfum#Y^@2=HM9Sf2vrtx@?fnBlAmE|91#jnG+^12BUrhcvwh%j|g7lTX_LnPY -z(%3_Mjg-HMX45>3n&QbgenFFY^3Iq9=oNNmg*Goe7@E|!(5!O$yqAz6r2ckTj$7Y8Zc_*}d^!SrhI>buU| -zK-bKS0brx%f*9I6Esa6XzJ~-Oz&alAxfVqzC#mzXOL0VhfwQOsh^@cmf=#W*ASG!_ -z>FN%2Te>fQ`e+MKo)1RCL-7RfL&5R*leNTe&zF$Yrex{sP_x2XB~Ub;N{O9&LNI^T -zN+K7t75T=>B4&!Q=7id3HsZ`va#fngSeoC>Wj8P$K1~H7-37k@lr^qojy{toRkqtM -z&s&VEV9?r9KV&b!V_h1?o{hLO^1=TIdcePrRT}ZAlkFILfEE_Df*Nv?<`=)d^1vjs -zorO(tkEQ5XcG>l`&KDjoO$bs>Xdrd{Z%RDR1$ -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 -z5P_!u=&fc1oY%-}$+spau$+ktd0XM$=}stWaV -z>o$;6@)5qEWP(Lz02KY+{FbM1z)upqR3X;a=<(^lAC(cjGaGc$=NO)DKoy0dnhY4h -zH5bK&vMoE2tgFiGRk$cIu)aWS5lC%9FaYxCrJ8z&8M1GZzUUpJ;DOv-%akz5kNd`j -z?~M}Qfe#JF#j)tebh^K3M1hY(Et%vAWpcow7vEo=-9Wxr66Ha>!t53{nI!`3=BNha -z@lC=2x-_&@WlwQ8H35M-$hZ6inYzNGaSq-{u}cRi?mh -zCaVA#z>da#WvxH6%F0bk?aslQ;mVs(a+kFH`3smp3(K6hC^boQ36i|LrjI1=28M7d -zyy3Ng2+G#Ao_RXZB5(%|!bqz+zvXKciN{H~~O -zUHUU6VTu<*3H)u7leG>Z{1Dz*-Wz#rl~`zLY&!RpWUqC)-@!H_ST5BFamsNcww<>q -z>^oE#s`nBVi%A8JHi+Kzl%;78sTxlR*hL(AjNTu=+0^AJ^^2QE-WIvCgeHAZdN}O3 -z!v9#h%BZNeFbdM$(%n+h-QduzfYJ>jE!_<&LkuM$T~9ztQjl(tl9cXFX?S;L{KZ-` -z!#(Go{9^C@6&=x6EsuYXJNZebE0ET^3Lz9RMkS>OMMsw6G|DuUsS^RQ*eaZ`v! -z|MMZ!4Rj2zPs#|?Lb#Uz|8^tUeQ70bc>5C;TXMxx{41e@s!~qKO{(<_NvmN0cwnmA -zP@*g;sRG{7Xh=fkU5Esa0M63zE@b=QWWs1&+U56Xa8;k&IrT(bIsIlY90bwZT;DX9 -z9mCAQt-Za}Jpm+#fzh9uo{kI|820PQ*Z+EHKmyO~EZC>3rX1U3DUXT@vAO}%1T|O- -zNPvwYd0Bz5HJz;&MVcaeYm_aQ*wy_Vej_=dJ%k_y;p(4vK{UqpHQ1>~1aJ+}!+D8x -z?VNGo;2NC`C-s=a6BLwWF0{+e>IX`O(UKv^jAG14rOw?`^QHh_e-N;Jo&x?o2Io(5 -zxpp22|Hh?_mrU>N0=WD>r_eDHX@Re-;PbP{PT;-LF+knH+)K!>Bc>r-*Y~ouJ)1!s -zfu};W>ki-ye-@xK0qKy@j{RI#c)Qs`A^Og%Z|UO7iMg3rMW79m4eyi!4f&QBIe8yg -z=|{F0$pXmQWPg5bhw_CJY_pyy##AZ2{S#4It3YxQ2B^eC4ayR|PoI@blEri4Wo0l} -z1+Jf7*>Fu$6SVQ0Z}B$Fe&58vmr7l=UaKllacY*rr~tq~o} -zg(~ggudh5fWIZ|rfL5QMPthBVG}53>D32v0Lq1RYXzTz$17K>cg{KQXJ@21uHnBZx -z?FR!`2;f6HOH>#8(bRXzVvIg%t_)o6iPpt-OiK08K|I&Klt(19{NwJX# -zF?GXrKB`Lh^zT|At`@jM^Sy-;xaAsr#;uwMGm}I*f5k<1yeM#PwthCb(rQK3?+NMQ -zQ^KrXwNs26f+I8?td)aA-;?Xt3>`ijcvq@9&| -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 -zAMfK5z4K>&4yHBLJV+_d1b@GGkcfsi2N -zNXq)mA0V+9u95m!-SuWplDiv86aUaJjlg8|>UXR!xD4lWzNMzF&3!t0&aM2anw6fQ -zmj4Jt-w#72(dE`eWWvjw=ARfq))b0tOZ)~J@o8)_WWcLTtTDM -zZbb?#49L+apE+#V#wD^@p#E9ekHL8p;#z!m&==xbqlaWkVZX-Hi`W4k^LK|gB{+4~ -zXKuv@wbgcD1PG>zOYS}iS)_4ZAUI~)Pg>VJFjc-kwJZ4T4kR;jWKJu|w!>!b>}v-N -zPl(c}Mkb-!&TI^d((+^W#m$1%2mFCi^!uF3`8p!}z_CaQ38I?S30I152*a8T3m;NX -z`;rfEKMMLh-0a?gB7^Q^=JL%t?9E)uRTVy<_kZCsbe#rJJTUOX%EoU -zApdnn@z*0+F5yQw!>86?P`Uwddq%9Sst)b{>P}p*8vRdJBjA;aX|ws&;lB;wkm!SN -zeE+>jOjkHufU-qrDAp`k;G4-a-1O5KEAea@AZqskU&EC&sL@JL)sXi&&cHnMsnF>94de>D@M%h(mWPlc>%x25c5XQWA4P21 -zD_8n!Y90^LafI`K7>l$<5)A#T_X;vK;(u`KR@h(3Iq0>$`v~rA`_$Ap|GD6okJSm< -z(&7b>`v;7F)ge7L=jjLE!UGXv=8jw|cdf=fa{fABMd*nF9J{r%an=H)Y?b329VOd+ -zce&4E585}~Eum-CI|_V5b&>bH7J8h$p`AS~>Ys7dG#$tb!bZa7c85N-%EJmdI5pD3&4g>c91n=9E@M@h@9-_EDKPC -z9NT#Q87$_0@m#~|waT#M-?UL;ilo;pE9A!5b>2nJ1X5p~PciujqErj~4hkUmn}r-p -z!EGS=bDQsKEIxWXO9?p}o1MjGNczM9Z+s#`)K(CbEocxjT_wuZ%U;0D;*ikxalYOj24so9~&{WduI4kT?$m~KS>wL^5ph~EYi=Hg(=H#`+% -zO5g|~(!tJC{;OgVluE8_sI~IJB;ntd(`)CjY;O((V~AXE#Nvo}n&=H8&z3B`TWEpd -z06I{5dauAQt%)1+=`jkcQ*|&cs7QdUGoEQ`507$Y&R7CyT-vr -zKwYzTXQYv_@~a@vB{QArT^dWM4umq&lM3G#aT#47aP|4yja5?V8=FP#-)vsDF}S9< -zU=cQ2shl5UytQoF__s?S!+wP;1qp>!R|BQ4>py&>Exh%FN{p+}0g?Sm{*2CoLQxo@Z%f!LCkM -zj2-+JTZe`&;oQq2s`Y0n%~{s|X7)ZXgHjQx1LrHZGxyOAe?#-3uTJ)^&1wZGl2j_G -z`13DeKePYpa_`*WTkVOQ#aOfAu1oQs;>yc{81<5cTocv%Sp{dwfB-TbZvUTyJ<@EqaWq&rKz&aUW}}$&S=90okKH{?o{l -z0bj7uau|CmJnt1yIUzz-Ot|flAvuJN{1q-=|K6V%U{S*^5;cBalr(j-x%^G;j{6SR -zkLL=BhiH9F=}|n2KLQNL_8m5_PI;8d!Gl1`0uMyOMbu^REY}UtX-V6xAdtn -zWQ{Z22O1`Y$1-0zm0vasB}nc91_|(!$>1wl>*n~mzRKRttl#X7bMsT!r&uV0rVmqM -zAb4U`gUwmb0gJtY_34XjdYSVO$KJpsuu@{~ejnHlnGAKr6{AnYOC5e;#!EN#sU?vN -z*-)*oFVGKJuA$`Nqh7XS47rEybx9_B7j$Yt{@v7}&)pL6_ri|lY(9G8j9W#Kf7mxr -z^>r2y@EOg$83QE9V7zza8fw0K?L#{?N$#Dv>iGyxbq}Ng>Q5xNoT)7u(;71HA(2b( -z-UK7ILQuV1}^vEPxsuilp;xe%&n -zS{5m_Aag`w6_8k)<9VmAH8$B8NyBpH@!y7Om28nH&%Y^54?%!tfQ-(_BX-t5uEd0iZ_msUDs;>$yGb(yXxemK -zw^>W(UBqd?=APTDHYxJ8UgkH1#){OGzDzUT9# -z)U}hm&@#eCGB64c5i7Tbs&XJ|Z4Fwf=O#=T%WU=2QpfO!t1}^9MtsFC-eWg((hCq* -zYDgv$Ks8+zPG?{6=l;;0>qGa^Sg^O>GNYhaumPVL)^Ig=a@AIwwO{3pw<3*@uAa95 -za5z?HfOm2Ti@TE8$N3MoPQpEujm6CEWghxd*DwN5%lku$bF+jdDfrc+qH9HWNY?oh -zDs|}ugo%0?%V#>Wm|Bj9XX>ekf{G&_22GB+g=Ty0x`B*MHg}>O9+6sx -zxD#Bhm5$E$(^qqF>Ks0qR_E0-?G)bEXTSP$VH5aXq8q^NU8-$(cTfs%&x@VC8cZBK -z#Q-y`4XsLPEQ$zOORg2*0QT1hEF5+^8m(4ZmrK+~N_jvk3MhSXz&nxQRqLKFz%ojx -z*1db2uSG-H5mk4!lucQ7y=@E404lx*t=LAAdlw9TAe-yIb7TF0hBFS{SVuW6>IIV8 -z$9A=V$Ud#)Yhu*!p3}UMdNzpW4^IDGQ^^|u@3)+;*N}NmgIXX_v2xm{eIi@1D3Hw$c>U)Yi?Oh-i2;AA_-ovWnWrkBGK3~mh8bzv-$XCt -zb{`?~&@pZxGU{)|{UC3YWsG2;e*42`{rl*{e$SLk -z0o8}@hY)As3HTRIZ12KJYF%Y2ynDt&+g!Fu_{KxFbSk!t7+d0zv0n=pHL%8-D~}q}UE*Gds#T>A -zs8{w9HQFwVL{(WhF;L`ITtvnMY@B@PNt4`xwbnzH)MK6Oh8OfmxqR>&Na@3B`_ho?{3roJ?Nh -zM|{ir$WG18?Ue{qvjLs}-t+m5#a7xK$-5SG!`3e{*wO&Gxrd%0K=5cm_2W>iX`YtE -z4RLTvgt})Ug_rWcw!Ew(fLs9nx2j4c2hwNFcG|=Lo^+j$S=15rsr7jRXcmakGO@-5l5#k>QAW% -z=N@&O(XK=2$^|Eu*EX=m65h4gq_V|kcyUwK9+aHO9bQ)fZiHa -zua1A$kcjP3Q1M<_8^Rz89IJfN73KM2eq{=wM -zC2p#i=tSOseak}k6m}M4tf;60Za&xf}Oiy#sR7} -zh)4TWKOGSNe4?ZxBcm0;pBUeXVWg$t&j(*LVU-}4sGGh_w@t(E9VE+Y^dhdgv~jGk -z2Fmnk3sCYSRlPL&=Lz#in_G?X;bYela6ZM4k@S&pu@IAeoir4<#u7^|dU``=0R0VM -zKP7f@`5ehUVZFK0seD9K$t=06Qf2k{SAziEX8l86~ -z4X9&Lq4y)ItOWB=`eiBr906{FipFB2kEAJaBL1%wiCwC5iUH^bu-_?vT!$W$i{uwE -zbv-GO$OHvYuy2~ibIB&B{CI+RuwKQ53`Mf!A)W|DEitu0g0#vO0^Za@MJs?cesjZ~ -zyJi0KEGkr|Yysz*O3^Uo$0YljT6o)2)1|I_pu=1g_(#|I_YYwSxAp%vv>>3vb>;hR -zTRe}WG@o|$2Hua|73CoPJoZ50FQ!l}hSE -z1sj0%5qA1w*UYB*$Ga8_m912$rvh{W?UbgHy7OJeGUN*kM}r3 -zZ(xR!5h1>x{RJlRlYua%*;yJT=Zi7o=}Op&ZBl)!{;}-oYqoMMZT~Hl!#%BC-7_KW~!fep%a -z5dZa#{WR=&F2QlMPe4}S{&YNcsVLFNnSNkkW&)C!^M@b4$K*xl<&UzQP3JlT(w$0y -z@RADvwB`0M>a{tK{(n?e#5kRmC*mVG4rZYkU=QL5ckIVnCDa1!SPdmp`0sXL}7H-0Yb|Nf*|aVUJJQnUk6 -zX_hZL!NCgtS6PT-HOa%0*Eh~?ngEIb*tULEh=b2_M(9Y;tTMHYw>`SsM<<+Pao}G< -zKAy;WI~y|cP^*~Ogjq)2@J@Dse842@fsmW(CmJN}T+d%776vvyg2OARM!PiT}wA`(nM}%o=+Rkg#?h4af!9aS;Fx_g4@0xya -zF6GrMdZK}tvsl-S|M`|l!m+UmwC+G2VlEl}_0J$)Vq+B{a4!){_6qTCxK$SgO{#EzLoy=p6uc0Pg(Djf{?1RaZ%xALrab71PeJVImeDWDYk~ -zxsZM{>&Vmr`(e1ds8M1*y7OMG_A&}&*+*${VvSmo_AI(dzvI;s={o?c0fbF`r}>Qn -z4*;&iha94EHcmGkTXWJ$Twd-WNW3g$0C2y1|^)JwPw(KNRh@96B*T -zJ&iV?xvSwVtl$Xy1Rr;1BFz!o-}k~x&%7Y%mCdbw`;}1Xd^;I`vrkd+1+7f4*>y}w -z8*#YQU?C^qZJ0Ckvx5dUv&^>;5|Xc9O&|0#g_U$qhdyhD*(YA-o-F;F3!{^+{y&#> -z8$M=eSgp!$;-Q*_&H&iF2#~BIALVCuk$npbce~uU(U{J#+bsU1(x*4&8vRlLSnE9t -z;)rO2rs$n*Xv!#+ExnjD?bU4w&V9b^z{z%wc=^&`Q2eQ0UO -zAA;g@M5^@|YG=Fi=XKF3!s8mXwKEOUuj>z?Gc>T=PJ-KJtSpVG+2SuGNu20(qd?xT -zvn>I?0sD5svWJ}P;>j8JdTRXJT;tyeK64iUQ>JHl@Z6?7pSvwzSfhVK@F5`R{sG!# -z(h=AL#P}>F)1G}EW$;k`*`O*e8d^N_T1(}eRt>6xVy2G4X8)w9;pV!T>u>O{;2o6> -zCtIYqcWgH`KrX7yugFq-AS2k?xE)KfQs@{W&Z$>*Jo)*a0(^)G9s#z)Ykc#=Qt8Dh -zIVuPGt@LjxQg@~*llxK7LL_}81j%R~50(ypju~nsAq%?7i5G@^(g{_!bame}dnZZuMF?t)Wvh^7_(gj7jk$IkrN>xQV1IJS^q?v;)+jP<%?AOZ#Xd!ueLqgJ -z56d0P=D8vm>db!ynwDHn$f71WD@ZvQ4DlVn`DNyM^q{i~`6v_t$ -z?)4apMOz^eef0ca>WX*`cJ{dG7B|V2(y&KDKtZeoi=oZ=Lf>xuLFs*p4Ie$5XX#XvR@|BVB~u7S2G`x~r>o^U}o&79w5#y{x8+D_*Ljd3?-hqWCbk -z^UX56`Ku(i;m_I~sBoj5j7LeW=l$*k5SoZPixA({XHpK+e7%Mru-~Gk_8bLokj*2J -zt)-sqvWGg^*pqkiFx{c~-O&BT>2}ltX)Hp)nW5yK;+97F!2R~H13;H0|sW# -zhVrAyj{khHVCLvjX(8WK{%MK>R2V>>z}VuDUVY${FX9`hRZLA*`kI-@9}3ic0Rkl& -zHYOHDgph3dm(Rj@47f4S8?=_(a&_37$sE=;lUptuhbM+mr@WP?d{k^)_l-IK;F?Aa -zZqWclICA`@<7~aG6EEf-D7a!G*yZ9YP)=z`vN2BsQc94_zLM~fZy9oi7%a5_D$u|nxyVP`)KDcd -zEbLh+uM4M6O%mI# -z&ixA4qEP{K43>O -zeOIE79jz)XqJkZG8dEvOXk-%W@<@suT>%#;7@4+A5cl1Zv^O=KjRT`p@rO@EK4_2C -zy*gwvsz?@3rl^;Iugc5s7fct#*6yl8V7`e|l*XvRf~Q~NW%gg!kTnAe0Knn?#%XbU -zgZjb=Gm@Bc5gk#$dK3Bu)LK>ZNXs4z*R%)a61_J-jU1c-(Mex)vSl)~owvom+7^SM -zxtvu$a@+fjkXoGRm2?{Pu6<_5-M2XQmQq{iePohzH -zxKC>UAYyleh7(N@QH>o(`qDt`P&y_ZcpmWPb@EnouAq?VCX#D0fzisDg;Ulupngmf -zytDH=ZIl&#j>}KzzC7Ip_fGzVgy_mp4U;Q>Vlw=vT)^mWlj+Qvb*JGWH#L{m32yvi -z|5H?qe{JE(NEXbbvwvd~R5x0fU~Xju9ybW05$8`Irp^0>2eKYn?heWI1U10bevn0yTN+dCHV637na#kN=dEdL1+9RJ -ziVQwS(eXB*dg}UQV{JqHGK2etEC;Fl!LGs)1U)J~{}-org3DgU?kRuFH$b!>@NIO8 -zkS}{_r&~0dp3KJ#hCHuSYjKfzzJ%rlqsfL73nH8q$Vbz&kS@GwlQVz)%P7@%XKgvC -zp;!|G9hO~O#d$B%AA}(J&g>Ij`twCgjI+>PH#VHFw0?(Tu#kPnFgKWAy!upCbN8y9 -zt>EXbyecvE?3;i~IF%fN`eIWJbu#^F9A@^9Z&)_k#TfKQ5_+VheZH8gXsT(eYf#WC -zP|IcI^m88>%}p3%vvZuwh9pJ|r)d`20}nA4v>5=O5$WXTixqJhjt^Aa{Zd^E$(x#!%p5rtvHlgT)v;+Uz)ajakH&(An}Mt~E4A~={wVaBzmQ)zC6 -z+02~aYwn<(MnX2HJn#6E+E6{@p7&p28r6XNO{j<@YG<)nv-HTdcfAz2qG$Ac(1-lA -z>qBicA0ImU5NOkW)xC!2TtXGVd{}+DH2iTtKJY5dsy@4UiG&i^RKU$OypY6EMzL2{ -z)7aT-YI6qPX{PG!G89zTC1>Yd&DbYY=S&z}%_I14rElO&=iOHH#ml*kWoCOMg00orP3CxW9AxD~85ElO -zVQZYlPB!b#0T}7kr~JyJSvnq5?f(Q4^@+Se -zqvcgKOSI`saiu6#W*9!7%_!K3*wwP;+S>3G;V;#0e7`pDN}W3t|Jj|GVax9F4>oV# -zJexchFAU-+gp7wxZ`n%=_q!hbLqN5F<-mMyw^!^X3@d!!7U@EteVK@Z -zKVbnUfRsD+Zu>|s0myv;8jNq#gx4pp2Eo#`)I5ZO+3Eck4t7Dcp3qb>Ae-fPsMXoX -zZfAUG_paqxhu+k$t-vCpAba_PCLhWKzuj7z=Wh0C!a^n%BU!g6tTb&mr7ZpEnHgQ7 -zu!rZd^lPQi(q|(d`l=+hPy2O^-A5X0hOm;|gyu4$EH>#mev}e`=Iw!6kcMImVE=t- -z;fV~;<2zdF5F1A$&^_Go!nC!Ky7FqoIka>sH5x5 -zPo&ncvty~oJ)XpEEMdi5T8k}>p=A7)XPnJH;d{qHQ)gWCLaF%Ot@j*E1dM%38$-oC -zcE`7ynBu8+@ij@102N?)|MuQku}kT>A0yphMP%;qJpVEq7Y3lQ)P;{SEaVGYuD?L) -z(c}T5IJ1q#zK`Sb$_(#!yBtBG6iw -zn<_uQ10tT8d4wEjhaIFZ%ndZH?@B;Xja5caTS-YnZ_8pM8` -z_Bg+F7G>@%!2vL>PNPWA<+8ikkg1z~#S8YUNPWJ1b)IctyIT9+W2uMxd&h=3Ao|Od -z;YC{HD{TIAZ~1U<4VH2W?{z=+{!ti-#@X_9YYMB?mRzVH>x3iKoTHBzIo$jW5Z08! -zR^x(~EtnIa+oc}1KZXR8-PM@{Au$UYv9S4MH$zJr0OR16=%|_hUm#QecxBL_2p;S+ -zLQK(dx{%E&TId4HsP+N>OuriwKL1f5J@DQ7vKwjz0X_tC+fV*a*>&FpN#41}kG5hr -zpWca6oni5hNbH^Y$#w5RvzR~wWepx}k$DNh=UmoV5sRKQsS|Oy^qJ{*-of}=--g=& -z*#KCjSrj26#_3eTwch2!48k>lgbI){iL-9wV=D5ZMy+E-3w7gI+w+-?P(QBh=cAoN -z`RIV%k6R^AzK=~gl7{gdPuO0TW3OZAAl$TZ#hedoaOfg3)txzE9-i@2pl=Ju*(i8= -zq<9`^jX-0vZOKk6?vPr}Um}D&pR42*V6V2wbU!QQPDA}{>y -zZhWa1j1|UIE2AOKX?_-?)H-4^MY(>&X9ocD7r2)wR*>)|qx1Afy8>Aj9a5vR>clDG -zoZxzvxAyIQ1AX$ET6|Fg2q@#vQuwZbK?Q=gsO2B_%T@dCBjnB6Cx}CzYS7~aW?f!u -zo$7^INE4Ao(Mt)}!E?r4Ef0OAP18OX9aEu4Pm5HQc+XC~-ck%F6b*15j#pRkDCc{JKyx+5jaZuc4EymI2(Z1e-mJ|n2 -z#54<4GvA79OmOd1#Mx8|_{^8z!s?L&uQ#dlZMyXN++~+qpNM**g~#-XD?`iit->KJ -zWX*t~dp;YXp-Rp^ZtG-%mq0zbQ8$o$Jap2lj2DEisbdOcUOjQ5oxQIFzxIg6?idFu -zkQ38NcSBRVK=jENYiiXHX|Z>bqhq>8PcdBjbs0li!1*~8N-!Plz4ZN|X5xEn-Uk_t|H*=xpnPv*%(mtgLSWl?0);{(`YC5XA9;<+un945-)CYEoDdI%)d<;Wg0+0$Y9 -z40K;i(e6HLSp?vM7>w&a(=WMm=^R|jZP?N;L9|JE^-&#G79OzJnx(*a&F*L8`x%LS -zowQiOcQ;uo|OhM(*)rpse6 -zPfDRNe}TIiZ1qfkR!v-9?28al-Z}9?mOi4NDj~kPBUGp!uuUX2L<80IQ -zQd8rv@(nD~K4-w2dIOXxYPgHMT+d{&WHjm-BQu`n12*=}7a*BruqGF%JPB -z$6^hm*)sIIxCu~TJvZXqpHWLgy8h)&0`n`i%p+ev`}5N$A)t&Ylk#q1x*$ouG$5uW -z{{@gRgkG#C>6Zn<{&_82E2Kag62@7wWg|@7zj#hhY)lpK<8wggF_RLJ{QxpDcQ3z7 -z9LzSC{yEmu#O#5GAP}|#T!9b-h-%SWQNye9?=J|^dUh5*` -z*yW`Z=%Xi7B2C&r<=*7CWSa@R3$Wl)XGp&k*z$kfoKp0CB{AX7APhSh=+xIecjTJkw_m -z=`6_CSLT0X?gad@@|9czUU9}J@L46+{R^H)by?tXWerMT8)+wTs|Vp3jy2zDJzo7c -zEC3j3fMj^FsMI1!?c%jB;>e+D=xH(N7Zn8_E=ria*9|dRDUi5n4~C+ijEfuC -z2y}rPvS%fvE*dr+O{NOU${mUI%sUZS#gLcBS{tF~0RZ)XJ?rut9J}qmBI52LIahw) -z;ircg!Zj6Pz7I?uy0ea&0lo*+eBAYU -zKg(BZ%_rz&Pf+}HH8^`Iq4}SsZI3AU$GIt**9TZQn2^6Q{z=~1)F1`j)#2+_UP3H* -zUUU`GwU+blAV(ULTykZ)@L^81XRLooc>~wILN2JIrQti&x~M=TC{n0?+ONPwfL0%> -z@R7YeyDc#zy|Tb9%Cu15%A2K$8@4VD#GcJ@7g!gb{^8EkJkzqAe3H4PHi%w&Q5B9z#T9zwbee}ERNpTuR%}zWOBqc)7K2p_%^kxyw4v# -zK*2Ep@ho~d$BavLwIOrn@NUU%4V%i(dp$vpdF^~~Ru~u-AOQ8y_vz<7Z-PNEKPHG^ -zwQj`#2-10IPSS>3RTR#AgEw?_L(=}ITpyX6*foo^NBc(n@l@2tf{iZ;b!ibEODfPu -zs9g1VW>K8Uv-`x9NADBTTpXZ%-Y`Y<5dNNeTM`=*WMJgb@*&XipCtC79DIn2ttY^!@b+>{Crp3ta=h!W&HDX!PND~u)Tq>K0Iqn?c2GvA -zsSp%vB75RntlQB-_mR9IfOSW_h;@*p?N(~7Wgif&LJBp?)pvMf^XaWD!A>_vI4c&& -z=u@D?qZJB3t{Xz{!z>QRp*@z*oC7}qamD&w1!oTxZtmJ$2zI*Q;?rDzQCL;4lYLoc -zS>$5LR19)kRJ!H2ModIiAGf?XRs7|y0IvB>ar*ZO3c`(x8Trubno;ye>_kmUeX3}g -zt2T(5zt6jpc7A0dhRk*181DXBaXOJN92%)FT<%;BP;HmHf~MSM_ov=M3tu4$AAm5Nbp$)mwfLmtzwo+w2g&54ZgM1aJBkm8}EnUcQl8dD0D -z9QD8!mpCO$fmSD~MhKn1cTwSWoW`8i{QA#$ya|6TWm7iX9K@O#ZijSctoQvQK}6hb -zc|zyT*)a!P!C6=XmplqT2kj5rP}UX?y%ud5KysQ|gI&Fmxq#q69^zOdP{enC+I^$q -z>Y_RJ)5FCCUFmclj$p4^-ASxHXn0zQYHQaz>-JsI`o%a@pNu&GER+E7>y%ZQr_$YU -zA91|N`}`11Svg1f&VU>j22YNG7#B&v^`|T47D@#i+X*9HPZkk6$0S^hkMmdO75=vPAyG7>T*MGJ7d%1 -z08l;!B6w^CftTudirLp_X{8T7fTA!kfJl2!JN!`-srvZpoZkM!N;G=YbGTfn=+c@# -z`4j^!_>KC>v8ukVbkx9bzp&^R#+2GJNf+6te_3Ew@$5A!?lIO$hGMov$M8EdP{IXw -zqr*hzeV8w`|M2cmLD-g1N=Jc64ntyIGe;WrdWpQ&%5&2it<-;-26B{;0z!Pu_cS^} -zJo(fptu805Mgeh<^?4-Yq`Z4lvcGXT{B+YDQ}DuL>_=~na-2Ou(da5AnpFXu=%;`Hc4t7Cwut|lsjTVvB5;qpS9_L~&C_Fd-dMK-Ln%`ii9XIQt%caMwsH~wh -zh?t*jp%}W)8aV->$wxOUrxWI_16bcc+q!gFW{W|WfsVMD5AD)xrnUEV1YYhnx~ft7 -zGr7iiQuzD35}vN$eg#3uTU9~p6~DyV3_s%~aVps!f`@LH@fD7LDuUU^&6m7id?O8b -zVjvXK410Vxy^P5oXbCRoz*t=}id_qD_{uGCz6$O01}Ufq$NK0=ovda>Kkxlis$gF@ -zDD>kT*}eVmNqRdV%f9o$ndK4NVQxdorLS4$qLkp7z-yzHU~U)M`uq&4ssL~alFacu -z-2h&rm*jjAcp0I$mnC*jjL5ZWJaC+n9RX8Jf-(iRXI8mfNib>#3PvjR@I+1i%s9Mn -z|JV$xFvQBnl#1m}*S%r-QBlRR*6-vrgv@kwI_c9z^QKKYN#7(o%VPmvge^;D{q@x@ -z;~F!qnMh_H<|;Sr5_-rR(Kyj^yNO^wz2W{P+I8C2%{boX|5*8Cpm!E%0016&kJs_K -zF{I0Lj=aH(!l$rNncfv9{fhWHqf*Af{>NQN -z6DmtT;<=e1240(N#FTOndM+{~dqu8T5Ss`#sC9 -z@rz3SRRen?UDF1nW2op5US;0@e$>@p^|;a@vmJY_&DH40@?C>pyPMRF@)H+WK_Sj~ -z-7gE_dnEdi#|H-|Ei^4NB5u#{utZqXhA|q(Or}3P$7O>{y} -zFjoQjL4qhX!~*LY=d%d;!V -zlq@Olu~MlpIw2@{&j0JFRLsuzqJO2%OVcrN4e9P{YJxUQJjV*nPGx$Ak0ywj^kbB> -z#qgstsi&sPEe!;!_YRbpR+F&8IiCHFF+>%T^VJ>p`CcN1_?ug}trnLm#T5AjiE6Mf~vg -z0iA^mvw4;SBNk{I@gR5+sa*UEMuZ?q+z~4eaR_Uaw3AW@S=_{R8X&OW-mh|jFD7q+ -z^wMsuLbXOM;prJI!TL+{XC``4dP>eRxR8#&J5_+8095HhQ>iPr+hffGo(TOEE&CE# -zrL@3LHyDe6<9$cLJ@Jg!x9K55@BGM5D0vSUoVEr=1eT&X-h0V_|5#dUelgXxer+;>Eo6pvLumUzKmP_$D)kY+&xi3J -zbOe1t;>wthRvON3r*==?3m4Sgq9?YaGG(V`(gD8$l6ANS!J`GiUulm{ACh{V&glk!Qi?e9C_B-RMY>Hnu-X4X@9JF5u#P1^Jb*2ha&l2j7 -zGX9zl^nCn(&#+14fIYPUa5o6;?0~stBeZIzV+I85rzDL9UH#Ua-t`ulNC|)0*Ua0- -z+Buki1l6`5^Baya910%Xw^YCUtnlm7+k4{fYTW_E(BS(Z0|=2d;$}=jD;Y3+)KKVs -z5=-^3EoW&IFEYEdA2*_ov8M0_y{)}AgP##K2?0~gQ2{=e33PY4DUMp>{~Re5==1gr -zg2FW8`x(g*>2B~LJUHI4`6_d{G8tY6iqu~jXd`>mq%@uF(UV>e!}28qKTap}vTZX- -zndK!SM$v0hj7~VbfH(ovz~~XN9b@F_MnY&CQyfL!5^yXx<-cMoPClTVO&r%Gc)LB4 -zS(ymHAAT*nQ*Xm13n&p-5*Sck)30yyXuk|{8+&qi7+{)RVZsrtYm)!gD5xIKa6OTV -ze$dnKiDKPSxwlA;<>pNtrf=}0DK&0BRo(F)kq7d9QU_il2gfT8?cPj9B8Hei0A(1$ -zB^BBDbqBeO>7i2Rp_&zj -zrMi&@`E8hFiRo(YJ6W5#T#B}dU^(m|?kx{5Vh%n#p219l%C&DBCed7iB1s3~2Rn^Z1puaYme8DQQ{6GSetYHDI= -zE|d7RAtoA>j7Xu7(3`jIm=1=|g>*N96T59%OU`GWZJ%HsnqAIMd$S`I!juI;7bkCxuQ -zDkMo8xw*uP9j9=9p{#rG1%ZGQ^P90Hz}>j#_qr~BI?*@#F}+a0=oXN$`{R?{L1{O= -zQSUg+<(r|#3)Vyx;8 -zCF8+_lIXOXItK-X`0?hrKO{^)(6S6a2p3yl*o_5GZ7F$Kk%&)UQE-grSWP6HH_`q0 -z>{@$-f%eQM8_3x0wW4CnwhtSSU;XsW&*o)aUe-4j()gZwL$YzvtJ(F*yu9QGh>02UL?FYRe7t{9DY5d7~k#~c&YQ~m*YdzCcJdK -zFv&O$sP9jj_^)q6r -zC)~D+DV~#~E8K{V(O;td6Q`x{B&jY&$~UdI0G?pb#FU}J$`b#Ra_d{43|0Hv}gNLR{V(q5D!Pa5pl4?PK=*b_T0GIBRff -z|7u^Bwp+UJ!F*NEe34B^h2^{j^{3J3hm0;+mU{N+H(`BsB;Z}(4`v{Ijv8)XYS=(3 -zSi;Z<#jqreSQ7!DeG-0#%aO|8<4Z6YRcN10l4T0BzAu*W!J=e{@KeYa>2`bs#(v1b -z2sMnrLK?s_nU*N>6(3Dk!2bOZ@|p1)M`C-GDz+oP@64u6)N?0W$MW3nEvKQdP+ -z`Z`A)da4X^WWv_w99>-h>cQOufgzb^H*y}-$HQN$R-Q?1=3JdNq+D3kps2w>_H7cV -zE$Kf`jD|Y!WLui@F{8{DWovYISag=y)%#^W5F|uSKYRih^1(&Vv%g^`r>RW{`Q0Vu -zG{j-Wdd>7<9R5y4g*`K=i((lLI5Nv~5`J;@ay?YjS>n&QkNA6{1YhC&tWk=N<3|=l -z()Cs>rgSqJ){AQCShpTSb=4_eTd)W4heoJ`D6Z!$do#t#afFRYUFjUhQ`Hd5tpCSL -zqp>_?`ff(jtWYLh&OCH6FD))n2pzFl*Neh~4Zk*fu=IZIt*Ry!1=VeV!8|N;>A<;A -zwK-EY9VmR`7gHnFy}k3A$Z#xa)%mXJO -zetio%kSj>fIQo11viq~vqhwU0VW|8+Y00YY9A -z-M@`7%pUv^kt6}Lm$JSn^49Vih6{<3J7?t7mjtieLtFS%a~bEBH-ITBoSi<-aI1U(P_ -zkp-Ho0VxE1MZ*&s!Bcj(AxPp|GpZo73SsY;YcrKJ!HmJ?5|4qq2F7iEBuQejHEurB^I2g!Jfdd(NF_k5b`R{%ax@ -zG+3u~_v@%2Q$-!>$08b$Di@#KPnf@|AjD@4fGno -zJ=RGj;dULecDp^dAte5Bb94Xm5=Lq+YG8ZSIj!)>b$`n1A{W#c)uk7JqLE_nm7=H0Oy^* -zr(1?ui0@6iv;2PH(|s0Ee+*`Ors&X?Ne;8H%3U}F^uQhc+c4zDaVk1jr9+1TACZu( -z_iIWpR~a)Rc6;8MxwSCty*f0cd^?EFmO;`~EI18H4f_MQ(^&_Fxvfa=k`ZygOb&V8 -z3U(IUSi+_mx3>{XnD6fWl-VIe4lTHB*lPFk(MjU*L%qNayfSL;OEW6HR4e#L2S-FR -zbIxUl0&XzlnJ>DokWpNs48=sf@?m>UdP+&O+0{8impRzAp_KoAbprIlQ&5j=;ATHg -zvzned4S+%HLZUl4lY;6=wZ~rErmz}ft%}J#zv&?6%@?XeT2;~d_-qgOO_H(Z2 -zeL1NZ23bP2`ZSIYZ5EuRX6QHT08LFrVGjw=x!-v7(G`BdbC~ -zyIrz)lg<;oaIT8DJhbza2fx#dD#upyKh85apzNG9w -zC{mtJ>2v%}=|#BX(jLMzZ$rJmtFiDjZOaTiQX8R$rqafsM3sNkhoE=SDHDkV(AQ-*RB4vo3-7ETJh -zi%E+8WsN-W14b+Lesc9?qScUghEGhw|-xck{LsXi?+Eu>15 -zh4ntYecph$f|&~X^?Zalw@x)8e=qdn{_OGqBuYAzd?zff%x6UMxLx^wSW4;t-C}Y< -zp)Z#;2*1*6&!(QAUE2ECZ@^Fj+2(i}IGkC9DD>ZDtDPU(kO+I%+#$|m(Ve0kr9Muh -zxa(&ng_)djg(W2J{Y$nbo+PnWH`z;kH$6jv)3JZrT+IaJqXJ}O_2&+{w`WkO_JkkJ -zSXrN*W!o=OTn0@d{d_Llze*I;scW=Fl&8krQLr#%R7l~sJO@XRBH~T|<8+4CuP9V& -z$hO>)7%j$OxAT}Esx|i`zmmy}THTM*WtZ-toC=N`C;EFqbmi0{**CR9)hSn$C9QQa -z4Z6DcuOBh60#YW{w^?fOLSr0<8(}j<;|}!fJtW&ShxcljtAxHtZO)3^nq0t+jQNH3 -za(~nvnvr^y-G_9wtBhJO`*T}~y^3IQ=s|M=Q*0*QISwY2tnV#dBv=-L3x==^uJWkV9d -zoo_!)JOhS^aXn_G?sA`AhbBx7vWz#*g!)YWYwck%ilJHvXcG1C8FYh?Y77VQ&!EPA -z3bOOPoQU#9)7s5~J`d0&Y^7Y4+;HwXlQl6M;piXC($?W}zsNs0d90{WVuR$C13RfG -zmP&^Wb6GNITcyrU4=~f*bIbYtn%X@7?S~oTjN{IrrICqsbWR@!IipkABu2NSCO#Jc -zKmZj8P98VZPsV&`F>BOy*GH{zFKUZYnd|NPatQhs)%^e(gDeS|V{|_CXsb@)=e3wL6(pT>AugzGB!hzD$8YMEYaY~jA(v#0z=*!q2$-M$fYatVC*SC$;XDG -zXkx@Js+sQJf|-oZw5XatUa)LMRt=!Z@{&1ee#QEZmHxCVE -za8(W8w{XYBHLt~Z>?l9%p<1^TwN7Y|zc`~XsLC>z(T;XWJfCNoP;a?i{o15pghj3Fl<)~lJx>6eMWt9;O9-DYgR)J -z(p8GaWw0&#WiKOR{9zEg1~2P94IZOP -z$71eBLT!qsE48LD&`+RY(MGi6C>LMOO}W7DA2$|dDsJvnNPc$|{Q^X)9ZGVc%6oDO -zkgm0{g>x#IKm_ksgH_kh<>xr7fT-k?ROZ5DD_I)v-sQy7v#x)wl!S|8!w4Cys(OG& -zfHO>!rR`vaC`Pz`7+gAl;)y~vBdW+zBA-DK5<1=b?P=epq)gk-LJ74$dWow&K`&sJ -zE$B=C66Y5`jcbD@L!vZ`tXCiVTYmZ<0$~!ln}cW3ix~lRKFsP|tyj%&Onz?olCB-Rv2|U0}H`&6g)aNmgi9`MZz5Kjmz`s=fqdcBkZ8v4sY| -z(7scOc{*CcWC=jXv^Qb=`M})VfABv5y -z*QC6A8=}9ur&T0L*&lO@27y`J8i+l^a^&FtY!JoF;Yhu7pO_~^v7%x+i`+fP44ZZF -zdTtnws6eT#w{xP!G3v-ck+4ZN>4{l-;+?M7yx)FdA0W&Y^xp@Xgf;Weuxob3AQO8q -z@Zk7&XHc2@om>)*6PM$Ee`4wWYT?>aslqW603!iHyQE%9 -zd-kx2Y-#tEg=kA`{2I@jo?x*!zVAX>t7WrTqOhQ&P&&l4aArg>m+|^NkItD|!5q^i -zHd-iQClh*Jrg)jn*Mk_2TnZL!jQX)G -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 -z-k%4lkt~9sZ)sHHG5wbA -z9G*lLjMktq4subXH>ZnW#Vy^v_NfuRy_=dd=xCGAX-G%;Hz=f^aXxYZMp+L -z1-NhVam!~|o}i)DIx?Q~%!lP|Kb4Gw57s0;k7@j2JVgisU8mnN-b=DImbOTO-fV70 -z1MhbYf-vgOaUstk{v`dsjB)H2L+e*HiuaLYYWEN?@L!M$Yj_&!Gq~0x^oa0sbrDL+ -z2eRaXl_>56TCc3VRJ=$z{yTgeNw76!@!{?Z;cVYGhqP+@!735hFMlx;rLkEtDh~`| -zuu4+MSpRrW*A`;oucF+7w|;CC>wbajkE*HgpozB%4jKqtZdiH!T3nvw+v|@kL=Ja; -zH$9i_8{rfw5dikRYU?^Bsjp9J{Z@Qoq};vC9m6>MuarRXTg5gl5oswDttrjOctt_) -zuf!>we~*;1HQk<_#AL9#_1*vFKBah)AuisMl!g}?!7g?0+C4@#`kVgp`8&QDnL -zeGP|%KHp3Gw#>g@RVB*S<%4-J*$C>_=0%e|U#T=9_VYa&f=)6g-*Hd=s#Mg!vZh#C -z>Q(a+!ynOXCeGf@5HX8kR=Q*P8}0ma-IwV`j|eXUF;6s3(&qAN4i075w^WX5ej6XO -zv)%XZplaKO7_?98rNAa)iy10?rJ7oln4p%&I+@2owTkkkfa~ubx$qPm&><{qq5hKp -zJn}q+mTUR#%Z7c{2FGc$?2WKJ@}bEC7)=3y`TTtNheM52H5c=!p2C?MnY!l^n+J-m -z8X&`6_h%UO(2mYImM1nbPEXNx$9Se4sG}av{A#iok`XT9^uH)eUj+Zn9V0E?w-yW{ -zc_G22W{EK0mZ8TBF(D!F$fU!J+i^(FLHn#f?z|rdxx?NhA3i~~mya4#lDnN*^Cl1p -znLD$S2_qhqRXon6totje3SI^{=b3#+Qlk^yF>~^oZ~G}tbp8{Q_`t+yCgA2nv){-o -zfJ=`A$+{m(mJk1tD`A%_Vg6$oGp^Cj++pG$L#Np+KMIA#qQ~kOrvqkvUvu3J<(c3& -z-_7tiyhJ3@lC0Wouv}oaMV1k3Eett?<@Hq5jJqrXH@82wWgoru_#PG0Fz*02jIh -zQQ+ORNA!}azYXZs)ewhn+hn|m)?i;Wc~O41d6x8eE!;jq#&UWhnP9*G(F6cCAUIN| -z$ijb#M~kfzo4NEN$?$r66RjBXF?L?Zz!hh*0s5hQ1jkK_@Cocni~`f1-9(d(|Au&4 -z%vM(s>3>2oHCE#8loQ0!eT=kDQmVWQL%8AcU!EtF!2i|Juw5`S?eXXVjWKGdW^teW -z)np#c8OV@96Xh50!z$Z~<45%lp7HeY`G93o2DJDFG=Co+#y4fmhp{3po`(p^j+JBV -zojbKPj4l2Q`VUH?4{*fF=UAu#2#Ota%6}Lh{h^K~X6HSy<62>=)XyUt^iXsSM$ -zKkC6Axct;Qo`%II0rfX^E?<}<2Mpk1^QZ-ZV^1VX)1E)oUN@ggutRRzezc5j%>PIf -zP#t%%qXg~?3u{`=f%9NXhRdOyltinHz4SXQh!`U5vxi&&L6A7AT6r+8hF3d%xji1a -z4G)W-8)A`L>PSIy8#9-S3)>woCUh+i9~vc+Jd=|qwLVocqV+c3^h+d7Q`(O&I^7`C -z_Z;P#hGsUuBR@2I5z>;8D|$m7LKqdsU&^u=I@2BsumE>{4E{G{=7D_$Q2{p41A1SG -z;20+9CgZUz6#nz~GNatnr%e9KIV_gOH65^s53En12ltx{iiC~5qKEQa -zHL@U#eu2RJ_;5xkOWwYV=8;+9Z|*!df)Lk{%yh-Qtae4P84tL*53w%u0IUFD2|FgZ -z_t10{Er$QnJ87V}l1hk2mmU?q!L3@@p5EvIUdx!DrFk0rhlM}R1$E`M-U{&m9Rkjj -z)x1lQnk>^nIB4P9I{lv_-gB;u -zYGF^qmuTzs`z-Q8DtSoSPcagY2R_;UeC{r$luK-&t5DKDVj -z!o68R`~<`py#w{gZg~n)fhe+f)HFAsOGtNH$(fXOY3y#k@AZLcZ|5-j*9&BOaaBt_ -zoLv(s2dIbdpS4`Uwjf;cAV1F*Y5h;0<@Ry%N5KyFO+zK2AH54%W5K%LJvLipXXzOe -zZGP!=p7Q(IiP%wcNo2CQwSrclFDj5?Mfp`*-S4_gH6CpY?L4g!(ciV~hR3sv}x0PVsk|So% -zsXK~~^ysMCc*V?&RYbFiv9;b>ZFCQStFAp8tJ)@NLYE~#`Ql0*Z|N|qd?=VpGu$jC -z^EhWQ4~zGln-?FKn2A&b!FVoyQ(7kB;vW}`qYZY+V@eI)wE91ilN2P**%~i^0GE$@ -zhWl?&;RY9NQjKUn7eC)Q3Le>+J{c27fkn<3R0PT -zTq_K|a2l^I!oRxjbn%lYa*Eb<*}+@SgaQ~Q8*$W2#-yLl&R?z{h3k)cdr5AFf -zB_S+?DtiDGcZ9GqUygbz=2cF%FtV_e3&i!#wX8}ExgWG8u!0g09H~=FVb|zgs1|4D -zIAJn#C~209$AaB`M9izok5uWqQnKWfr^X@C;`gyxA4n(Ym#hY|;%;G_B%pJgI$q~a -z3MnQ@;qMn$`j -z!?ECuZ~PfmAsM_{{v(G=Y^x#nMdJd!%7U`CfV?M#p-%Yx0(Qm!g+c^NwzR+~vVw{@aqmUf76>N?CdT|Eryk6=%g -zhWDo_X7nv6#Y0@ev}D+L+n$KZWYG|Dkk9`yxAulDgu0HPjxpydsYx{dmvd)NrV5wf -zwow6oDRkeHRJh)`zl<%WxbbRm7k&g*^iOtt1JC%g8?|h;hK3r=(MjC(LnGX}TRr$G -zlJh0FL&dW275cU9$jVqQvNGQE!s(+b=h7l<-aTHhzKCb+-mQ|5y5{ -z@Ls+H9V$nDmQsg|8Tw7vE)3qA&Ir6o_q09_&h-04G>oS0*6uU@SBzp;4$yMPgkN&5 -zWh&J?>OQORjiV7h4z>2r{gvClH+{xeH$0KL -zqvKeS9Wrkor3!X4FHJs$mqL6b$L*?3{|cm+{K1_-k|INy8@?P`C1E&d;sqN%O(DL= -z0qsa939tQ$PUV8+@KW=alc3S#ACu9r`Yoz_z<1SBpsd|Wb$G;vPD)PWLFKrv`uM6m -zfnCfu_a}G|*lmJqr2I5(AzD?0c(l(GP*^%&N~#u$jJ7N0jMd1oFE6z^CJt|ug5o3i -ztmli(caTA6V)ss$+7{u^^wSI->Z-61tDf|SwKx{7LS$6`d}Emc(_X>~W13k}BB@rg -zE;q#JKAr9w(J`l1Kf~Ajsnhi^r=)}DJ!`C3xv)u%wD01YiZ*ZCvAT@=JhB@YJ}_c) -zBdoQQnT9fU`J=ia0}R}FY?b1;841&D&&IYbp^61i+rUDAgoruc^5gTP#rFrUCE=$< -z#xD0=Xh9mR%QeqmWL;zim7%3E!|wNY)&k!mHKMjd3_4Fg>MDe;p}5vJ3OkRlBex%m -zoj)_2JA*T`Ae>YwDsl!0eP|Q@Qjq>W7>kmw9Di+5p{bpdf8R*4>A}eR6ylXqfIf#E -z9c1Z9ZtwfvzlhqBzKb8{-?I@an`*GcV6em>KtPi%Y~cR7EXSogqwj3-z0E?L)I%4=MhEj%ggj;EG25^6m`n9}bGzw5Gb`;cjf8!0m|2ZA$tj}cO@UkhQcpcW}g3G&grVUc`OQU7F(9EKHOkTQU* -z{v|aTo#KciOMcD&%KSpI;m$Ai(>=yrn9W2=Hmp{2w1J=52?Vy?A;S1CF&~^oCUCiX -z$OxWJ)jUU}gFSKqW5e`fYI7r6q&a*&O3^^7^{M*_Mq!E4=J%S^Rpn^PFz#mLxM*u= -z1x5!^(rzvFx}7m9sC?ecRpQlDKi|b76nyr_@4|RjRnzzN^;(5H6ovI2x#Q`6Ar!_0 -zHmJKuC55by-fym5`ws^jg#0mxvNA(=lW>evya|h9jF;jAd@rk|q@SlSbrS%xn;)5e -z)N7{uyQ|Ot?VUrda!XeKKGiVnP=p?BoYRH>mKQw4448;De_6n|W`;5p%N#;*Ty)CVVE2+scH^Ddn$@A23*^aQn6pl3qiFL>=T+^EN^Tj?pGPQ`WpO^*U6N+66L~#x6Lf`#=TO4F+x_1oVTiRjqLWRfTxEYr*iBiPaaybs -zcP?sAsp$K2Ujeews*x+o=4(OX}@XQAuN~+Z+ -zD7YLbb&J$cpDCsCU~;`^b<3cbKnU3c5h8II;GuT6PjTlguJIjh_AQIb;M<;HPW -z#5jGSBfCmkv=c^p0@l9dckk~?fcC9Z$v@+$rz1qDlp`vp{^?(jdWf~U$USZlhdSVB -zcsCcqQZ?3m$ANBOZd)i|UPn@_p}zT}sWwNSWWvp;;}on%4)EF -z&jV+j<;APrZUG$5OkCet6=@AWeDCMmCZMddK~-~w4tf0b`8WmlqeXi{4(Amry*8ga -zyWU@YPL2vL$JD}O`B37tG=!mAW+Ni^p(n(<_7M#kg_6cKq3wTD3kIreq)N$fwO;m=w@BTY)(=3F51bn(;a%kg?~PKNxiRcFq39%ezG=YQ7=bbQhn@-a{zpJS -zk9_l!UhB=B8kNr;1MCh0EK6qo$8j0Ke}oYqx8Eq_W*0QBro7Tx8RbbiEb6!bz=r89 -zCH`_C+NKsg94jbYFzxnDNm%yKbBznZHQ%pMPOn^3_c%<_F}hbYJVyQ-e41yfbKQq?3^>zvNP$^mZ0k+A_P@e#iHp5IT0;5oj|;oDcK -z7LC5xNJ_QTDR^vxCdS2`)m>es@T>46^<3um*jgJk&JBLS%bEBP~kh?0EP=~D& -zyz!IQEN -zsjk3i2lQz&2Q9Tj17y(EBAS=biC@4sKdUJy%{dkV-2>`~Z9Ptp`5_I%9b+^CpespV -z%xUv*HoE8?Lc&y`*i7}cq&CcBvd70g4LlFZV;rD0YySOE>vgVjM>To*E0|@gN!cM} -zNymCG;NF>%e-%R2Hz>i??oX6MTRR2wdU$CbiZmXK-wt(o`<%Ele+hXn>iLEFAS4Vw -zZ)q3?AF&aadk#ndcc~qoXBad+EQU~Z-stLl+4!BK{AM4Q15rsxDbQ;QIJ>~?l(D8e -z3Cln4N_uFj^$g#i^_kW;0eUvzNRc;7cC7*%r4G^C;WN% -zk2_+SX&8G%peoLjAUgZ(SW(4B(edrfK0f%gfI#K3?EG)ZYhC04F_(+QYuybP^dWog -zU?NlC#*6L)0ObbBhXyQu6ohIujQZ6euIr8L5lyI@vZu}4Zrof7noq%|p^xn?BGXvm -zQpXkX_2~UDdySEks_&ZpsG7!)2{|sc}v;JRm=j -z29{%m*D7-NXGl|zh0yj2{hx?vf5Bc333&&lr~tWyrIF?i~+kja#>fj -z_Xc9?$tj0tQZPLQ;9m#{(w3n->UVCHWlMArco3LM+w{1PsqP2U1cbGG~rcXpq^|&ea76n2|E3OLop3eIa5#B -z_-v)Nl;XKUswg;SAwn`zA#aCZ5r%u%0DU9M`UP}hfWneTqU4X|wdzDfV -zYGG|71fBwdr4UW_|Smf9!h86S!Kkmr3 -z6-VQ>xn{cuf$-%Od>k=&^l5lb{C0z^={j4H-7$;WDNK=q%V{5vnT6p*5S9fl?s{QL -z=!)OdU437u*8hY2_@frdDx9Clveq0^b|4rYyebTe2>3n6&5QYF0t@?v)iRV2QND=Ve1?C}G>zisvuc%{{UA;A{_@g)fXOb17zn3>E?n93Ff8Ek*e{ -zMK4+hAqkMprFbFtl}92BX3)@&Y53VFP^u{uFF%H&|GYYiz7m~P!V`sU>IpwTijhZ0 -zkpD*H*xEU8d~^My4LwOV+lt>He9ZG#eO7eoTfP-gMP1c8VeRe{r6d#<1El$li|EJYaK<0}QG&&^9;C?f;dQD>I?&4}ca -z)Lv)XYUxV#RCPTM9<1btRBcNpk3cPkVA;67feF}ENoVSmQV -zBlvdnut<9aUhj7kQKhwWpPYGv#l?Es`}VbIYx(UBJ2I4%0$fOnYNP*0(^UpU)iq%{ -zr9rw|8kAnTyOaj$?(UElSV~%?OF|H7>F!2Cx{(G!^1Hjd-#>BhJ@@3yoOzy^xxl7k -z>SO})D(=c-M{M&j2|$mrR=k@@3w=czz3tY|xL)uEEt8YqP3nKi8A{h{dpwSl(3PcI -znusVB4OTxLY!JFYMsEne5h%Ppu?J$qqI7ZGc05hEJ%kp10&?N9f%Z(4*dzIf?&Ctl%m;;~Iz-*dc>omd@66Jx*eQeeHC -zj@bPmlv4E87qyr@;xR6(;nDuR`FJngtCyc+B!UR$k)g0@exWcBnrySPmeeAAQaV0% -zIZED3u>B;`TA&dO1Q=V1xqlMPRF4{ds6fqFUes^8a&cC`*gYe|0Mfq$&aN}1uVOgi -zDFbx+#*LL6_kue!{8-cEFHl0%z*~fq+OHxY<;th(18vkf_}nxHe=1g~n!7u%1tpFO -zbrS%Y#)z;_RPyf1IDlHUxVS@R6m&Bxaf+gMy%VCo#eD8}de{$&$NRCxKl18T^vPIT -z4y+VdKYM>F-M3|-byKZ=$Q*!VIHY8cSQN(N)dUMQHQBQiz1`Ot#{ao~ela9RIMQkrrrqjnUjW$PBxEB`izIet8eXVvKqeM@#D?^oXY> -zq@u1fGj@3<@m%BbUnkhDo-u~FVFv72^1cXwFu0-{y~035_WPWfm0rx~iTMdh!S6NT -zHc4(XwzG1!vu>DSsgrNnBQinLhJ4lKct0 -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 -z5-g9@Yyp>A4cFnJ3MRy8F>nugvCCH -zO7P%!%C&?Oc$Qp$9mb!%oWCsvR|@+Gw$*uoa`d8%u7Fw}CBdF{p>Su^06#_0Ry@fl -zbrRi>6Dh)OC&Aj}ptkdVNGc$Qgt!BTjee8W%YCd;se?E>z{6e`1b%Rh|I4$)W~ZrW -z+3|l9M^g|kdq0QsF84%ZQYM&Zm=6(j-N}-1n|l!NMY+wG!A# -zBWn>y`@jG7O~VH4^P>TA?=2FSBUK@AfA56$?Z?7ZyEzC*QD0_oiDtH2B?lVEpEbu#0R -z!yNfPr5?g@QT_`_JWr%fu`i~0>!NhvQd-dXlQ`!2NyD<`qA(p>RQ!UeKaww67O78T -zP%GZEUX#kqhhR|jbx_Z3YMz_};{oW?CBsrCuhg9Pz;LAnc$7RKSUG+2C<}PuX&8ro -z<@ZJ%Awg|9Le@rAO@~&{b@CV^Pjn@2lSb)H^J1rL!e_S!Q~p&^Dc;^Ed&V{2lPaMb -z_ofqJ&wNqvC%<32en#qArfP#TTnI6ShGwaZ(^)L?mNHw(Im<_|! -z3j<|u$m3aUI_1o>jr*^@LpN#C=w{W)#}*}5I-@t7$tq;ErqbD7gDEbQO%ssa1W4-T -z10{`W;~wsRj^3J9NhvCmQ~$*J0GJja=@pKK9pKXBF57h0eEa69Cg8um1B-sm$fUg7 -zy3YlHhTqtTp=>J`QkZ%Q{b(o2ijKD>nR{J@HS`6pO8F;HSEDt*w)`n|)e|B5N(kXF0Pop5s>Wmx4uGJXB{r#oTs&wp&M -z8zprS2I4lfihercOslzGJS9ROtZ_6$=9ZM`C-&GKSqy1RIkYg$Vd=05p0c(ZtmQz7mcW* -z=}}Jkum)t_0+ybR7bTw2TU8^H3ugGkHV5vC5wmZJ{o}uWkkR-Xt+m$IU_fdE!Y!}( -zfO%&`N~B7LSC=Qu^7<_S982`Qlj{x8IK-68K@(`@u(6uK^6@pY0}FJusC4qr8C2Rv -z3_m~cWpR`KT1tH+^l+-DKsxP&>`E40aWhIF*XA9h(*2_}JlyVH_D9b&dzGdP3C7W; -zoSYL{#J9e!Tj_$Ei_5K0>=uQYD+k=>3IEMsTZH0X&MsWO4?)Vy6f|=rwcBX(6&;6<+zg?w!qW358K>@Owi^ -zD7VA*>inLJrShIp<+P#S@Axs7GK1YFqBS=rlsG1zQwoaw-;9Ir@?cX^MS5xAo2Uz+{xdhJ+G@*UAwsWniyYS^Yts -zTB)+VAxA9HH4IC|OjSKf1xCh3g6*H+zTfJL(d{FvUUU>m{gvvX+~2A!<{5lnW_C&< -zxGH65ymk*3+=?v1%>LJOsA%(_ZxMw&TwzhXyv|NxYqrU>VmaQiH>ABVzmlo)9MN`T -z5`d)vhqpr~6LP|gW!ltCZEK>^7CGBVDQlI-f3UHwhtHr{`GVuL@xhA*5vB8QgUq^a -zZ0=n)WcnwN*m%Gj@(!uGB(Rb{EI-R&IV9l>N~C#4h{2|9{VZ4*S8M%R@07q`p(?nS -zwN@1V56|xnhO68qEL;b{jX`6`QO2gx{n!`JbB_40n&!{W)?{}IevvU~nNP8r(Xt;nSdS!lJKlm%JPpE)#wPoZvw#r+yYWfL9y8m{%(uzZ -z($vCL)xyp1{SbK&;XNOOSqR*6#At|+&)3x!^ES!zHkcsv -z)=m8bl<9|lY#CPWMputv;)i^nTHdZtE&!#SEN_mbgX**#g~k$M?Ap4jS$I)ptCEq< -zPU9UH)v^R}@+Tgbm%Fp!Ct#@`23X98kjQl5bHCiju-q@wIvY{P?5c@+N`4>o{S7!3 -z&Eiy9K1PWo*VOt%N{wf!x}OKCFkHWvuHJ3tZJ->t9H -zE^{rWhMdXxdB$7(Bix?u>y_qXzsKUQT4`kr_ -zU?r#)N+9rx*eU>SnE#jsv*<#u|83+~SZ(tp-Hlsi=+vuYw?$z)*fAJ6+1b`s!3NPw -z4LWS!h~3=c$a6Q;k4-uNNx6uyGg^{fPq`)+QF2F1?QIzzHH~DP578;@?#=ki7VyrD -zjDBt6eDHO(p4m2@_~$jQB^y8i6f6omH-dy0w-wqq^@sN=pDSDYIThEz|*%{io>P -zl+gjx?b>AWXy@H1Mnr?)dy!RC@ZTU8 -zM<)iT65m2ow!i98rip$ZLcme~WLC|ywhPaQn~no2cz=riOv?^-+hpMNo|ai2AvAwo -zdQOKf8j)^~FIltS#_J9xlu*ZDT3ZNs{=wh!fJ1qU!$EbY`^(tHk-NTD+|nBr_Yl1- -zV6F0a;e2ZG>KT)^-6M|fNzq|Soir!mVB_bmLcE$ZtirzX8+s=~3Y8OZ>r;Uw2b(z~ -z`l+p_n@`>?&2O|l41C&i`iS6na8X*HXffW_V&rqlfBn9@aYHMA!lT!hst`nfY`wB1 -z*+*XbURHMbRt1INFcgp<>%nXOR;yxGnArb*u&B(3z)QR$U0{eeH4t_o7S!6h2v1H& -zL*tFT6E(B^PC7C_s6E8Gu@)!Bc3!YSJBpA{`D<^!slKHif?8|?krJ6lJP6*fo~ -z?mnUI;>nk;Xayq)!uN3z+Y+Asma;z{OZU8=p6mD9KpQ#By*zb>PI)ERLWd;LQ{h%2v~rKjRBU`ojVY58^nw0aA0ZP1a!P=*8z -z_K~pcpMK41@&u1C7D|5;dFARO6R_0|v%VBHjK69C96L5L?Ed(eOxXiY1joZf(fd0{ -zINW+Liv2rO0YZ_Ab^q`}EXFPJZRflcmo*8Id&FV(y+@gH$WGn}7OUWV-IOy*tuf`? -zR>ESIr@nW|7Y-2&8^KgvLF7L+)=M(_pHyUzn0?(9k*^3F0OiMn9HztY7sB?o3X5hXSqa~Ni&ut0Ga6E^!C*vB-74CyQ`r9}N7MA<~`3}`!6Hi6y -zErfVYhCOw%?<23K*I=1W+2!1qbJ!=Ri$rhpZz9YSU)jnEm=wk^Ob>n{UT&S%E_bqw;-Y_+OR)4v%g$C&Aat)V`x7MO^imLfI>w;sDp|2)L@S*c9{-3F#$rT_z_ -zt#l`AZJOJ@#n-mE;*_*5T8$a!sR2YVTa_b&AWG_t%Zud;SpRs)Qd{ -zW+#RoRme%;6~mR1Jaf@kQTT#PM_}A9F{5PKZ(siqjwBao3=a{OU%a)?Aai_>*~Lu6 -z1?#U0F9Wa&ur`UeIN|h(J#+z?dZ{Q%f5As+{$%`KmF@kvQvvOO? -zf|>ucRMq=6)e8#RuQJYuk^T*WbHw(0e%+Of7pfJ$d4>gNrQz^2VSmCYyv@Vrg0A2l -z8=J2%bIqA1mrVw}-JgyJt7Ul}fz&O?Qnsha6yazA9+&J*b@KCGvFu*NV6?7C?xT`e -zS=qJ8Nc~mdqP-c6Vv|j77d)*38>28j``E2Du -zGFa|n!KXr0_iN^lQa)Yryka*?Z3Sj;{``6a-Tax^NF_Fx&Yh7iBb|o$W`k7B_<}$7 -zJazarPSYT_>Tvkb_sI!Ww}on7Fm|3_G4)I<%RsVb2u*SvJ&+eeUAAbu!pw_u9NQ~f -zs&(Ug2agRIFt7qiCNgXvbY{MY@*{as1eKxy%|*k9#%bfCqlTlgL@GAgFP-6NQ#yKN -zQlr!+5lAOZTvh2w{ns%Ce>(Dxdvz6)qXGlbcVbBKJDxVbY^0wLA*>b=Y@H)4v7$=l -z(z~&0cuO>&B=WR}$4wz@zQgUCJQ|3@4ikkT_B}zQ=EK0Gw?3|^pnni+KUVDR+h?8J -zX+58MVdTyWH`D`v-yE`FF&Bd&`R?K-kCywaJ8)h7=rwN!bs?l7V8<9Ex>_i->O|gm -zZo~E(YW2(wM3ZDCn -z#Fg0b&}XF7ty?!I{;JIO87c-{a8jm49k@k)LO?(=Y#;mMdJpEmBO=?W-Dzr^BJ8K7 -z-hwav&2a?Y5N*Zhf_?`ngNg_MoegLvvewYgtQkvjl(K_|=7fTYZxQNi^J#c?T;`}A -zmYyn#Pk~dyi;3dMaP;QxCl0&5kheGOOTC!~A(0}mH(c0p&#G(s8%8CeSx6q2E?9B4 -z-{O5H%e2U4haIP_vn4}EaKh~y2Je-`Jg}AdZQRaALTk5_XLDwz{eY~>%@a@_0-#Jmp#)*TM2pihc0C6`c-`4}O -z3J~z|NUD4_5T+lz~kHoM;hB -zh0c**BRJn}GsW7f-xyv0J>LKQ)k)R6Zu_bIq^xB3YtX~n9TROf%_VDbWgds1jjM8V -zr$Fbo`m4Tddr#xszaQ=nKGz#A*@{<+OkY?&Ds08%ilf_R0WrkdU_O7{m9|?Iblbza -zhvE2I+nJIg$HOHfblaTq9{T$;3efLc;Ms3Vl%?)y32z-3E~dNVGaG5|AJ=DP*-B@* -ziwXm3)Nh{fzl|)ZOU1xk{+7)vIK?WKT3xGVh`T(Xiy5yeiA?4B4Rk+AYs&< -zS5Z)d*o(v&gonCo8G9Bwfq`E49o}0@Rk;F&A6ORtZ2t?#@i=xkb|Dug_6G4GI5$hs1RmNf0xL}=H@nXy?8>!y*M<8 -znhcx1Ie0W>duQ`1mSR6?#yhL|HOsSk!bG^CX`}q#zdtBXlgbc&aA$Nixv7`OsIb|e -zqCv&EH{>n;F^ms2rZ}~{SedC_eqg=h-C%xiGR;Thk6rGP*4tlVE(yS;`mA`S;UURy -z!Sk$yto|o+$N*eNhRu%k)4 -z#NS}+l<=Zh_B_R{{`aH(W{FBZT*Y_vCV%aJNdSd?A>yJ7HgRvS%OyiC;P97tT-?Xp -zTQNzGwW-3rAc%`4&8nW_U6rk;sf?ZhqG=b9hsMX~atN*BrjD -zvYNpGz^?(_OG{mkkEqqG)0}jDfTZ`8^a_6{s=K)oASeJvs>0nWt|qMxZ{B{vJ!k1j -zJf#$vm;KBedYkBjb;+Jodm#Yi8alaZ&$YK)JQxdrnCzJXR3bGw6ff=f$p?hpx*Oe- -zc8khdAS44)$fS^dJ$+>dVt5GTXoH#U|(yBR3-sY={>=&u5gt_Kg)KMMb-ljLnA^^mws -zw;6iuywyk@r$^9@!04-Ugk;JAP9*C3wCk=g -zd(0-^)0q -zT;S*^7#I-J9$tPn*fYrjs#D(wh=ZR0WXIV(c3xE!GpEjrVS@c)%0M2#Q0zoR=R;<{ -z`1}Ng@k8exlVF~|a7>iyEYHV|u{S}a#10*qU36R(%W%#M8mWG#}SQ75PXKfL8H;r(2Wq>j&M6MK>X7yt|E?Sf3vKQx)HrK5O}?@-B`ixIs_}!e{k$=y1FN`^lZM -zTa`HSwFzs-WBXTTpx?kcWxM8W7zz$F%I!piB%2URMz0eF)uC#HpR3;%1M02|)}`lE -zpvnx+X)G+7QFGbE`PMN~X1cB=KAEUGeTPi;;9Z7jKQq&88zfT$4|30kuIfwvoFNNL -z-e0%G*I@G_Rdn|e$&Fwl0L12zPv}PnA6hiA^Bg3ZDDOOCc -zmK3XylMPf7ky^0|nsHU#7ac|l4`IFMmCDrI*NY+N -z{<290dv+~MW|de$1TzH_-I_<0-d5#sap+nIeBqyvFZ>jgFI>YAj9mVY-oS -zi}LIFXDRDVxM*;X%l_*^j+aa~YJ;6{Wv1cT+7WcOVxnKeF6hm7>75kl`$J#N-y>shon%5)QXf)8ETXP7(E(9h+|N`tnC7@Dq* -z{Tf7o%hYagaM!NR&DQ)nYA;c?%`40=taYV#MN0`fE8>H`4o+py$3S9YIC7j-0W0Qj2}8KGdq?cJ7R&ncT0 -z${knJ#M0|(34Vc)p!lFx%1!xH3^#gOhAz-Pz_kHXL*yu{YJNd6b8?_d!ZL&YUU=9m -zo8mWS3w#wMKx630J=F;0c@kf9&Xb>wLEI4`i+TxS`(yk;O!$NYAuPsV_yzgeYc=_o -z(DRv+y#z+>B{=ySQqm&)zGBxd`Tz~t;|9jg|ge1=Zl|{@)pv_lT|qL -z-UvhJP#eMgltW(QngYkL^vJwhN1O(d+fO=by_% -zLnq5VSmM&cG?d$UI(aB9QWxe;X5*5}sq16x$D)BZVguf)8C)0`ubQs+*Z6ylc%otm -z!~xy8Z{qdTk}ak} -zH)P^e*F9NFA?B-4UcCt?T?VG2El*b630^-2+N{h8vf}`eQdpB8$mP|8 -zcH-@p8ABGKOc<%De}0CLY6rV%qJ6{}F!Ro*vHptq5Nd%duFit=t8;03jp7IU#W)zl -zP*l|yodaFb!_?k3)ds)<`(V$!4{N~OCIeO)TQwG+JnM4+=cARr=(F{K2GnQTeaWlB -zu5!275JIV%DsKd0#Y-hRu+rL`6m=Gx8DsJS!xIm_iL=1Bd&8^`4pKBIuMY$o2Ba#- -z-Z6;_D<@t)Ypau@tvf4xr0}ajkPISXig2%>ZZAL{dcyKAmdRs8dsSFk;CnUv-69jJ -zc$_d<+Ri?@#J?zRA^WXbX2NRsD7sQDcW6=1vps-_{dYQZq| -zH#`%y%vrQv_}r@uHSTvEVeuYUK)2%HH)Pc8wY5|6nb(or{=CHs$MPL<{^ff!dBvLt -zbb=PSC$4L}*$56Bg|XgE1e4Bfg^!*~N*)Fdok#P(d#P}i8p@(?`UG>98rN5%(dhg* -z@*R`RnMWt$LrqRgXdk=|n1%mc4eCAgL5d^*u3>9&m++|d@5b%M**=IPlK$CgWri*p -znF+xcjDe682yyWFND4@0%xHsQm>DRxe@bhMg(ZbuxmV(O`h53Kp-*h=#G00P3%Aq_ -z^B4SUd2wO7Fc~F`7qRj7BZ?LDs~-C8J5Vr-{P7gXjU45DE!k!?sQqQ1#lW -z4Xt=q&)6_mx0z96O-|b(!`i`z8UIiMI4Xd*0*!)=Rt2rgN?=ePguw+wF;n&OLk+1L -zTndbig4x?ifa-#WjNq1M(b$u?m+m}zmjLoI7E#&WOvLu#GkFgrV(5ZBOGN$c;D(OX -zZkL7YX@E^LIIo)m#F+4%{hzf29;V#dk}1k@SOJLnNPu1wAvuCv1QV4Ps6M -zCQ<805aM8Poz9Jmy+9!$D$bd#fl_YaF(erTaK|~wbHUaWC#bnoF#=&fN`!u)ccF9D -zhZhmKfs6vUAz@A6v1$HeLiu9S-_8BA1rp24Pn9Dc&2bR@*BDJP^sdra6gsNL(vrTC -ze@b}5Svg8lWb_$b#_hxvJUL@nAAGQzKK$5os|WFpzOo=UEc1z8FN?qQXaGadV(3 -zcy@nqMsD?mt59;I=vUtB{6_#Ud4NX_d+9#V^iSp6E_yu$qlx%-Dm6?E)Tii;1(3I& -z`sD_pbn<_hj+J=&w3p&(vsBbr_Bvpi+uz -zszMjl(dZ{pQ9_l-N0f65SAl@-RSGvnSk*dZ}2}Q -zm(|HONXLNvB8)JIDemS;%$B|>cdm4!G#H`}^FlMPnmu>InGl|v1R)fivcE`N5R=ST{oEOI6p$Y+ -zXKJwHm7W$!7S7-!;=A?~Ww!Y|>z3AA39!JX8HW*<=1PmedOxbxz&t#NgP3PuB!e>82F -z!VWb^9gbP9F-mNK{_gEAjlditQ#tsFw88gMxvcN`pwd`tdZs8Mdo@Y^pbh!1wROCD -zRi(8*5#}45R8$UeJpk8ux4g0`Ko`Y*+#N#->m0Ls9f2R5+hu%!1{7QYR(;gsmH3k8 -z>*^a{SD9h&*I=yx>#Y7?)6ea*w-^j@>!wmy$*H{+3{@8$4X=9M_J=vn!jZUBr~-ww -zd1r4}?jKDv4$=VK2izaWE9BTGUiIqWGTXS06?ReyWUy>XR#8?qynmjZ1PgQJ*!Dv4)nkpb{+03A{yoXjG0pkNZBdF+~&RdE*~zjQzh%zYoMI{Frc -ziENMalE%5PLU*ni%XDOi4-g6oY&OKPoEN^D?BqL%hWsK)pUhwE`}-d9J#Ua>Qr7Oq -z;si|5`c0a4g>IO@PYIZ*dwq)*kmLX^V#__UV4ALTL-c?d6XF^=;TVfQzH92&?vU4k -z>p+9iUYn9mgu~b>bFN{Wn7Uxuq?uz7kU*UN`J*CZ>bdVA$45q7A_eTgE*zp -zR05pSvhyLQ#Q`u_yScZIw=@yM5U5Ns#a=gQ6@b{MvxKL4?Zhin_x*+Qn7PhMtx8iZ -zd`g=RcagM=TM|>s*EK}RM9S!vUb5|J7x)wI6V?HsOdNi?Lryd(uY-dSq$F|pSuGF2dQ{_Rm>gbz3{I!y@19l=n2e!rmFlld; -zz9~u8E1{;i3$VZqzkaFD@aM>(jAS(vt?T47aBtYQ^*u=iHBg4*m{ZJyO3-9cO -zne^k8TwlANO4L==Z0IBNxV!I_#%8R9c69LO8#7mPteAXM93N3`O^IeUGNV|J(t?r| -zM7Gji?%%LhXhS?h_1othdwKJWzeQ=#C>6YW -zKY}nPbvbgTS(zK~X0tIT*N}qg&S^`2>TP{sC@>A4EykT#>w-CR}$ZRtzGuQTc`h?QBmtj -zK}@ORNV8KA)MGif+(fHnUcf%ZH|?g<^#CLz(7`apl5diCvV3W;y-^in>6xhW&NM^b -z5v06^+Iv-;)qj|@1RD}iaj>3rUOb}mcM|;T3FCzheItthyVi%QfwDlY-9ynzmt)d6 -z+4fFYmmwbcABuxK)FXImo2>N|AqKty-RVe6GFpxhmlkAff&r2$Ni(5M4BUU%v2oVw?e)m)HfBkb_Tz@?n`xg1#@kXUtrg=IEM>rnjN&{JMoB^P8AE&C8Zliuu -zT@lM7HbU6_0j1J2sP@%&=D -zEOJ+=?hPWFlmubV*a?%gz0Z&s8yNoD{`!Z~-RGtsO5@>GKj)z{8BD%re>nH;@ib%X -zkCb~F;b4wSmy&(CFYp>M8B^k#1Y8Gq!iM(s#jN>9Du -z!dy(fRWBm}Hz96DrG%eSK+4`jmVSPyuiWLGjY3RKiUr!Nw)Yal%(H)2Tihk%whAA| -z(@Q#RnByagAK*pKfZtdi57kU3(Fs=f%wDHm)aMpFvXe_ge%c -zoZJ#KN|I;NAinIhxjaLw8|G2JY^sbFh{T5U9dlP@Ly%7TGg`xDOjpta##5EMw-~km}85 -z^n&!eq_a8gWDFpty4pqTg~Qw^4LQTt0>T7)?K(jF;vCi=a -z;At7_hq=Ez=hsFA3=qKX^$^P{rgLx`^#E@QkVj}DXRQ`>0*wIYYhGJ*tjz~UraDKr -znH_K~Ga+odD|U_)!O^sq1zSUJ8Ox|cdmFseV~t-x?Q9e~-1ku+j0vUWQ-;XMrr`i+ -zpY!!LTjQkF$Y%DX#o+@7DwW`a@!Dur4a2;2ah|2;4KCdUeIY!ie0@-fM%*9SB2UG- -z_wE|<@8HKOq08F>RA~2u8(roM<9_ub6DCU_vCAjaFD8D3ydoIoAaSkQ3ECO0;pl{G -zTytDQZnyvd#NBzV0!xImNHAR5UlUzPjr{=ZJ8) -zj;8r_4J-V-ZHPIZ%3+w>M@H~{sd1iDVmZdKx!Z2$Bqnyw&wt=--Ms@$J^MjXbt&$!p4&BVdz4F7zK4~7ww{Xvd1k|dBy;eZf8 -zPeL>qUgXd;zd@qK6fg)i5d4TR7<@%US+rRvS;{nH)&Ky(5EE>wLxC}xVBSaWVN$ciUtO1(hkK$s#v(PRD_r# -z6ee*QUB*dqx2_e}9g~~k+b(y>gb$+;5YciB(5$7IbvzXT2D1~)e>ll|r{t}WnDlbe -zzYg=$Vz%8U%$$vxd3&Jt`|H3DpQHY|w6ja_gWfO~&X3(;?BRrG*P}>J5^;pN%As`*n279 -zIc=jx=I0?y3FGx(XNC0!w-6tw~po&#fA<~VdrLK~&z+FT2N+a&M -zRm^o-j8}==HkCh@>m0tO8r;|d1rO_YeGj|>y_hqA=g -zxn8c5l85_BB77@wWZPS1#hd2-fd6gx5+f(60GQ8>E(QknUzFK_tG}-QV{w`*?5W&di-V_ndR*Lps2I;rpl2 -z1M|Pv8Ur}Pe>(8WNbPq8gDhbi>{9%%HkL6y*s7uy){ehg%xuuXy}VBl)=~PPW{;1F -zTYi-9;gDj8?8JY&Kd;qU%3CT}@e#V=!-pz&>dFkxgXQ%ulH)Z0=|=*#2lD7!32OH1 -z%h}UQDE<-LAufe%J2jw5w?R;`$!=JeqVt}1K5iNYls}LTF}d8>vQ{V#bCgVghiIM> -zHwR_uda5D@Cuc|tvFvpg9Fe(m)9pgqE{eM9)Hk?1W}m>l89)=BD)!V8G&t%!Tg&;l -ziP9Og$|bWSpxVjLtA1;cI0M?U5uo#VUo2gmXA~{s!mnjO+WM259#8t~N?7OY50vA^ -zP`yw8wPSQp^|ck>i*D%W>G&n@5sib?W+v%lYP;4teNVFYam{4TeoQNKZ5{9AOIIhg -zdBfTW$Iq^q;?MrqF~uup@C-OE#O -zk{BswE3tL#BHUjucNN|>=(l?9f%jSt7zcvBguPkPwSx+ocoQ{q7{8o&M!mV_!2-d_=tsc^?SP-T( -z$beG{e@6IYi3eqNt-r!_M@H~N(p2gLe={!h9SFY9&hH9cJWr!I#e2NU!05B%U4~kY -zDO&cCcyT|!IX~Sy1Y!i%G5N;PhmL)zm*&20{wq_xclmRZWo(TOu|Y?(z51sFm_9u5 -z$8vEN_~*4izV}hOHJL;$pKkosVZdy!z~qq)!_Q3rN{yk`l*h!hSS@SjNpEnqTkk0r -zf$JF{0C(VKob*4z>gXlNilf8%V2M)o(&L^Z}na_rqhEb!PykH6-qyjtk -z8I?@>g-J9=bq)VuvL6cBb#PiC5=EnMqkI8!Idk5YE)&?y84p=)@TbT1>}DKbqmJWxtv8t9dzcwk|32cBuqUhnR537VHK6 -zsIfx&gFTvT@;t(9wvYn1-M7~;h$;Mz1^}-!Z&e)}|8UUU3J)sTHSGKCDn25A>8i#* -zsWS2pVE4cuC=KH{B*kZz;6x;g-`p#x=it<*W^)hQx2~e-U;vw$i`*W4cSQyyl-r$> -zLSXeGF7e~7@f=gtN12hFxbSr6G?W1vd5u-teIsEe5yTdXLOM~VpuD`IJk3;X?PdCc -zj$Gd;5ns~#Zl(s~YK!_rN9~9WUc^R@k$`EZG;Wo5<+O_HJrYt{2hYpc=nl -zRxi!uaBSDUyjg}xsH-o36_Vk*?p3`Ag(7g6?7hN5jJc>2RS=nQpjJ7mY-S_-8lXI`5(w!@OdDohv7<)8_5V;66cw1 -zoF}VWE5EvGgN{1*%wA813Q{9Nrtxan0gDpTVktKC{KntbPdX`Is}N|VK?0df-YfRO -z`K9+jaUvJU*KG#C81C#q`9Gjn6d&{F=A~OlAVQk56h6O;osW}4cVvC?VE~E;oY~$t -z6a+KoR&(gQVaA38)iZfiPbvnToj0wXo$S#(C0qlj{(V{^y}ow!AW_jq7s(x~d!|kz -zy5~PAT5gvfX4t-K2DBMK6N*~?xGyl)u+$w8DYbEDkLGF{*MS~RGy~IOzIaM|u86eu -z^>JV`cVH-zJvpL-E`idd_NO}0z4+(36V -zW}QYm&w(B>ZV@Du%|k?L9vqc40ox;0_mIq(UK;nV-vuYY3=y!M7erbVWN5E!<$rdd -zSg!*1aMRDei`unx10>9U?7 -zuUlbKt2?}V#fcYHZXmK6nb_hw@%PLZfamR~BTnuTDh##G9n6n4j_Pv-oliRA@T!c{ -z{NXodz?1yn9bINq&N(%Ardt|1yb(a1lU$G0%fB9v;s@24zx90P;PgrIe>i=KG)l$P -zgX22~$BL{L(>E*ypFhcU6FwN`Y{lsz9ILu*QMYTjDce~fgCuk!!MHc7ug9>InM@dJVtf5xlGt`E;Hem -zB|FP0)+|1Cvc%_c@#L={_S9rsE{i7qNOO<;oxokfk{*QpSH8ibDF;`dYuxG($Qxd8 -zgx!vv4mpxFBhDj)Fq=1{+qK3Q4blIZ6fgt^vZlP0#a9@4^ikQ$QnF}|GC!d-W&=+$I%d-x^##z=)nSz5eevwz`LB -zg~@adv>2H7s14t+{K#Hu@cmuYk&#&%LC(vwiA8&3v9zVVsk9dp*qN3{?7BijQ`|Wm -zGj`fFw!oaMFZVImGe!1@iN)KDaW!E8A%hj0s*^s*IpML58up{3Rp3M;A^Q0B4Ysda -z3i4{9#-olXJr-Z&kZcUjrEjmkWIiP9#>U(rqomV8Du)>TEK6zFb)JjJFRk(|-s -zM(^d9W`CZ_j<~e^x!uS82|eLaX$!m1NOtXwHaC72+k1=VKZUyS__Z4HP1_TKJ|A%| -zIw^aZjrPVB{2ZQr=gRKInj}Tx$<%)CaPR#)=g?#aD){*Xc#2^Eb{0ziwPQEjZHKdn -zIiv~1ef-Z@q0FWXpB-85Iihr_OH0SrlB1(ct=_fGoG -zU_>bB#C)kO;sf~(uwC#ciM`n)lEAQMEbNaVJLWZz1ED`;@a23Gv7}n|TGSh&w`Xu3|hs;(tHib3C@w`7#9MMv-@xij=@XxtU6T17U -zeKj~rj204wFAA1|%$$`w8sLC1VBk)V;0IMNb!;OIzE+=ZJPe(~C -zBDN7@%;c(rDU0Lmw9W|saP&y9Y$lMbZz4rNi;4^VM;ijf18)NZ9*o5jpj|laPWhxz -z9(X&vX|nQg#Y}gow#D7TV7{8Hqk8GL-;&2OA68q4&&_KYW^n)YDmocekR&J>%ketvADZgc^EdI4PG~%jaQ84IQ+((r$-7}!X6E~6~EXm -z&k?-$;mD=tOjU=XMa;A8w;`Mq2P}LNMIW@VJ@QD00XKgK9zd)H^rT2~by@KLaZJov -z+h&?6M?RZ_dQ6Ry0aD^L%+Ocv`qG -z#UPluN;;*O!q4*!QGb_Dm=sYL)5X>VRU7K)%f|CHzUG<0czn -zzeu9$Jz%dHPc0TlfH+_Ss7d89MGJ9cKa)sBa^0-n`-J%56YXT4rPhbqdTaSi9aqV- -zE_$cw=0nSPYz>!>O%Is`oJ&$w0~zC6!r&lq@7;=c;lV7bE&)Zp?dCe -zmMfqn_99$N2oy(aX!mt53VWDxEZ(Om)6=bVXDZc5wZ#`8cOm9Oo4D@xDwBaby@98; -z)BB`VpRtLl!bE?R0zwi9(DI7UpWn(}PHH1rpv<{l-`#X*vof>j7PW7A_`vtDd<6w`sq=Ek3p9gpv0G<1!B-e3# -zeE~rgn_e=4Zx28tX5_RHC|1+HzpLDM8+FJ)$}QRI14R-T19=9j_R2=*NQNMKU*z}+3=J*mt34Nc%j*q&1kgx5^{au8ZA3MT}hIQd9)mg}YpHg0N -z_}fD(`r5cvm?~%h&jdkq5)upXt>pO%V@8)%qnD((+s)`I7g}PJyS?}W2B-u3fQdYs -zJsN67{`xZ-(XaE?u;1>%8ui)vP}7;6`zJd*|^gT=`EB_5ks;WX=5wXjQqK#+f;PYVd}e$f!_$;wQ*ear-i0-qiHhif2v@@gCI+5^mo=? -z^l6bqZ}b}0Bq*mADzHYU+4Oy@*%OWrfS@DZ+uJq*t@??|5F4~t=Za!nATz^C)~RUz -zAgjd>Tg|{`r@1f`F6UT1CIoak_E!XYH_E -z0m=xJ;QqjjTx?nk!efR4wp&?*y6_V^^YCH!(1jscN}R!Vxay8 -zW>3v|FekTMDq0_EEtH;O6J^z+5t*VKekP^E^9J#No=?IjIliH)&Z -zEdtr0PueSN%4fN7v4Uu0+B2J#DW?IJ -z#WCb-QssK(a}=;X>$lu4GlW!h{%Cs@uKN!gDkO#&Wk6R=!za?mFHK}2XyonqsIBl~ -z*^2lp5vK)dXV3q&0s>hq8iiDu6>VYBYB2`sKK<&;MagPICO;c}oe%~t*-`xyS@?h~ -zCUP)wyxP;0Kzf;4&8Sl2Jz^F(x98|$-Tze;qJNNgS3SUlkhYm3@2LT`GPLgV=tZ+1 -zyh;Gj@nEvuNx|Ui9^1e7@FNQ?lv8E6KpBRTO!;3G2eA-0zRv?(d(X;qS_HC?Z;s{D -z|M=(jF@(}kjP1KV73P;0V!n`Ujp|8`Q{(@P^hjx=Y&(w9zsS9xuWIwCQ$ImsHD^Uk -z7SXp(RC(!$+ccfrT3?shGueCd9ZOR~$jMFnE-2PArgPnrRMlJD{?Jl4`Y?iWcKsIn -z|EFp$l_x(oQ#eb5sp3mG79TPD#t2@@Pdg(G;y~=@0eeN?Kkdn_7#`mJbXC_3lMR5e -zVAY5Q&W%u}&F~dOKabAm5S41VR7M0m6Lq9tiUO~wVG8n7{U3A%SnfzO`=f*i=I^t& -z&_5fRKqGntAbLQMegCv&zAP{4P{!%t1Nc{PvQYfglbOK6*q#|=8tdaM&`VIcQn5tW -zKldVf;4Y`gx9kGMV~Qiu90qRV(sp`tt&*l^etGVtQ`uDVE|RGX>fmY^^$v%2DykpMtGSa}3|pDj}upZgErEnVK6 -z=U%*jP}O?hS3^=D+Tha(;|S*qme~1c;_hXGSVW#e*wsc-+8BL>vJH+C1(p+&`i`dm -zo$np>BBQlkCfrDun=(PD0AkMfR?g1*YxX~5~&wsgLJhycb{12}iK-!?v#|8<}k;h(-58yikN1=|wz3V|%w -z_+3Ym6cTNyj<6eSIr(hz|H0ZS@>SGs2CN&qlYn$0**`qi9ob#PGf$)Y_cvUgPcoSK -zB0^PNaStoBA()@aklaFN@zO{=e=SP5QY=fMBpO==1 -zJ7!l~5W~;su2o6v+uBxaYqznWn*nRJs;TgQmj(~HIhZQX!J?t0UknwTmAGH{Ic>{l -z_dO4Fb1js_M8@=b2zt6PQS*snoMHef>Fuc$ZhW;Q;}PC3N-hy7{}azv4|0Vf{S$=a -zB>^#e$GTt3e-%VivGT9!w(;_7{3+gvs4Av7jsEFnRU$XU99Ob+t5?SnTeSH5@(ChT -zBxaTLTz{S^TvETL>3jErlU>M7@R#IFKkP7L;*0F@Sp~ -z$I<{CHs6jJ%200!7d4GFN|rKv*$p)*E+2$z?qnGZaT#!({u^;w-Qt;rgrFH@NRLeg -zrum{PX}XhbHYj_e>-x9S<1Gm~uS?YCWUCO%l0<~Em})G_)bJi3&70O7SW+v71i?ktcH~iygeXT=K51baaMIZL{N&_hLsB8?IqtCp&Wy6YNFacGySO$@~bo>*jJ?7o_BIT;+*olkeEf|On7laAozV(!)2rS5R -zbnLG`}}T~7UTsn7N}h*4PRgbkIN;^R-rt*4m*gaE$Bv9Kj!<=d{L -z^7s>^CKSElSh~{s&wHuLz7>I4{7D}yAHL%EO_FT}JbT0$N>BAq(0=U9Fw=a(IeIqs -z-7o?wqNaDyXs#|KaFgVh;L5dX&sP!<#&3*psf_F -z7uobc(z2)yt{n!x&fy9r^<5zc<9XQMw}KA7+{|Xs1FQ8ji36jr*~5uQT2+b_iYMVr(399P{vzI{MDz?IWyCcIGza;MMu|jJJAMu3Gd?3v$a>)`p0p -z@R1I!zTR~e)autspr=n^=uTyQ_jGF(oEujIh)&nkGZcu{*y9Ewr~dwc5q=Gr?SIW! -zv(Pt*_Rb`=YZ -zyDKt?uHLd5;fC<-7#nFcJ~P=q*FAGNo%E6)pm$nV%Dx|skZ&WRWU=%2^qZO8-=0X; -zQ-qS3|HP_)oA#wM(+DgcxFqKyNI|WF$=6MlTvKMPPukG4(L1W0^*Nn%V^InGPHtDZ -zFkE{Vl$WCnd9(AM&CW7V?CKoe_45JBAJ|uRQW{?BM&~OF%UoO>q&3VTS|}$T{(IR+ -zAvH39twuk@t-2-H4T+ie^x!)wi3zzINh?1M5t@#$AZ*b&A4gcuQ&Bs#6cTK$jAZXu -zS&^KWaEn@^J&+HVEI9NxSd+nRt4yAS`r9GZXSSy?hRgoa(2eAETIY{ -z#~UZTo$2QH!$I#(EZ3PehHM) -zZX^p0%zy)?Ob`|cQ?Ky}I$d8ij=;IN>1MimnB^$o0e%x9!1;{Vlz$kNpC7l}aHC_e -z6%P+o0QmMyHL)3Q^E>-G&Hk4huW1cgsSk9Z)xcvUQE$df#ILP9`(m|*%S73%}&WpB>$zIRARMMp&q- -ztlEqgVI5)BQlhVzmm-k3uUMcXr>ROGpN`-NL*QU)q4WtvChss4(($KLRs#98wFy${ -zP+F|rzI)PNelW6BikB|3Tmd%-)T@=ylej&Nh>%AetMuiYE{dN{Jco1ho7#OsmH;*^P+tZMfsPsj%TRXv5@0st8GJ&nz)V*edLMl2r)iO!VTz|L>G?A6_b -ziXqkUENmg7m0oiB=RwNINT8p-m|SyB?ESpVr9y~Umy_(~aguxm0EobGKmFq8*WtD6BUy$2Q8QFa7-ZmW5ioc*FuFUke_?Jp7g~coPsh*BHb#49v -z*|@vV<)Tw^1j%++p%d}>9{fW3A$w$kJCDYd`Ui~|dBa8EU`iLr?oi&Huo&FQPj&prB)Q|3o -zW2GG9Ej|IT)gPGGb_MqLMg1>JIIBFixcCf*TP8Npp&^7=Mv+u;ilOGZsbhPJIbtGqn@Vzp>@Tau^_|g@Pp*lvv^jmCtLm)6d4(C -zO{$J-x@wT+o0_89v~AYl%2lBRmvE07KLgJyQD?b_5BgK`dFdEAvxt`<)A#v~i4}D! -z+^(aHF6nNgEgcC9I|wHPB|xtG8L6xc*mNg+We1EMFf$9taUx`OB5xz^vt)ovfZ-X6dOVB6x6)zhnmL3rYk&2@a5~P^ -zwcCYHJ;%}ko_AgLbdJMgT))WrzFX(6{rVzKJN~Q*WbnWy?C^~)kES(45@T>L_Y}5O -z|XquHJD@-9C{UiDOF+2|qPN_QDjU7`r5wtzB -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 -z-v89_;DiXh`QzE?z$7SxnTY#fNlP -zf!Ff(iM`>OZJW=fNY^*EW`lD)Y>CBA_AAgrmRdZ$GT+49G^KXtyp-On{b{K4I$c$# -z{4|2x)9~2@ZJQ8B3Ptta8dp*t<20h0<|egAZi=z~mCg@x#?w0jW*JGnu1P2DW`Eb_ -zTu0q^t1`j<#0ZT#&g6S!D3wS7t2*~ek<#U)3^gmVsPwT0!TNo^ -zG!5RYUPV=Ck@yz4lJEWR8loE6{^l91`&$efg8Nfe%TYn6IVj}Rf%HXT^ocHaW}IA> -zOOKB -z&qXxnY#WiuR5wf*i3zY|U?6L035DniwETY`;aMn4 -z&g->44HJApPoesx7PR{L1&@htxW;40rYk%G`D+GV{r;fi$c>tr=0XJz%ucIp?wx=f -zo!FU@#xvB-HD^XMWZsiN-XuSVS(*Idrwh-_DiuldBjcD-+oa>8nMnw!6A2Lb-wBo} -zOI&Tfi^a@*V>h>z5T|HSyE`O3s-oY1Nvb5;dev);fMvTG;3Skav#${p6$bfK3;X9G -zt$d*Ad2D5SWOfnN_Psl%|!;ib8&mDnBh?PThlk%4hnctjx -zI+PdkH{G1o8Ye>Q9WNk4yMwok$IpW -z%bzk#`|fn8!{b+q1nwm^wCbQbT}v_v_4aq>r02f+;<}Z>a#MHi)9CUUp)#N2!h|1$ -z+u=y94cqT5Jm#oFy#xMt`MgjgF&SR9-`?Ke;EW!SY4JQ`v(YCZlI(wnmug#>9_WfR -z9<}{$DUN?J?iW~#kIx6MxDYX1yYrL)NO#~7@dNc%fk-OW%6)CTCB2vsa+pQBFWt;I -ztS6QRh={DHZ<;yE2e!ow3u?BLXq)MKKvah0$(o-+ehyysqC!CluUYprn0 -zf!hCJ{f~8KMoebu8}CVHL&tPgs+3K~QRP=mv8`#Z}si>U#cwg!8&Fj9i^1>YGS8-w^@R^Vr-nQWb9%39=3 -z%wVhWVmF-H1v(VpN2>ep`&W;c*mRq=bJpsi)b -zj>YI={JS(`LM-3whS;GAz?RZTCKVAWT -zy3Y6;C~-%3y1DJsolA4#V%fBp7aiR9ZpfSmXD>{3Ko%WQoeDM|jnesNY%(+z;_rC| -zavdPjE$GE+ynU0BZF4=And<=u^EU!|f=a|=)a9y1>plu_CxSus;2E;f)&2oFKI)wW -zIcyLdOi}r7F|r;bPTH`#Wg?0_v#kkoXWij%*pL#(e0l;+ -z&1LXGOclpSw -z7{nu;lx)_ZVUbm_#A<}qOD(h@z!Y@OumjHx0l0|GSD#zaL~A&VGD1}9Ez_DMx|#I6 -zRAP412w?kw@pEH5CrG#|(`eCr4?&<8D{d*qe0K3+l~7!MTsh+)%g)OIY$Rzy>~!l3 -z=Gz%`tpkC)w(OvT{>{XVqwV;J`OV6TAq9bveKjrch`7 -zDTzDHZMPEr5*nk06l%+9hgu!$IpAr|wB`*#gAe0y*}Uy!6tw{+47`u}^Nm2*wqTpd -zv3iV^U9??yBTW0^6kc%^@X6E_Gy+bDod+G8LUsERxf1E#!W1k>s`~UvjF4;878aC_ -z#gTq|HhKPo>+c1U_brA?ZGieNK9F|cYVn2Xe`;|(7yP)RiGM2*7X~wYsA17?vL&c- -z-I@O6UWY5$Lu`L1l0B$i`X8&lN~*790X~m5XuvmsiTdYME|phu*oG9bF#;+qkZ?c8jMe$mr8!_eP}eb}%QqsTzzC%Dg=d_+&aN){wOAE(IOOeR -z^r`Faw>}@-;?i>=?fJ}Ts}f5R9^D-1g%}Rt*D9cU*3O$B0-biKVI{e3&|vY#x8tuS -z@k}g`sMPY9$i3>rV -zxp3ZfeVqs4g1&`t8N~jfM9!#yOwFSdHJ0S_U!_Sx7iMwz2nZusCWnM8)(^S=Z$0W(nmut;mUHrbo^p1(R8^K -zZ?&VPsfi=9Pv6X-g^ymV@z0|{`gq&a{T@-%&zP^jNCeX+9RH>A*(*oAfyspkcc -zs5_cqst?d1seE#t^6Zc&jsV}IAPB3J~e -zfEPQHCs%cP6EmZwqnQbRmPyIGot0xF==e{N44>SHon%w#&EX*Z6vIKM6x_2BRQoIR -zF~@$!$(hM;(CmgF8@^|~hNEed>$<=?-FjK2&f^P{0?g~NwN^3){PhV2a|nZ<@(IzK -zX17Iy0^DCEQ$c=N8QYx0*_8F)hfn%THzvI!pzRyrt -zg>FIb-M5IYC$lQXskf28ZAC55Z$}foBzt$<3ERV?i;fwzyR+>E_~^bajDuTo7KEzO -zsz>VgedGP5-_A~c{n79k?=sYO_wbR#>8?qX^!4bZqoK|_%+3-lQH|dcKXJ2^Y|mTe -zmp@)EixrJ7m*00y>a7x!B1Y{*y7I5}9M?Pd1}v251@nTvU>d#WMjlE4bp;JsPO&z` -zH1Vv`jTPnpm5%mOd$sPfYS=%H7$PkL0F>oDe&ioMju7o%8 -zLZdPf?EqI|Hx~unNj^dSGp5a5>!)$}P6s*z==s8%X3<+k2proPb?|x0%?l3h1D7M1 -zOwAdXrS1e_q~E)sTu`^hOZ&Q^DG%|f)o+bn<)BncG%Zo7-W79+%FnV)OC{4^r!A@? -zVAlZ2f#ITkX78j)je!H5(hk&Tdir<06+bW!%&a4U%p@m4>$!Q{vyGce5*`5ShP5{>R7K1qBGgPKMp&U}R5h+YI&W()5yG7=_M+ptj -z>>J_52SH8F^-0+b-4Aq0MM6LOhw0vebgwW#{ZZ)D>ou4*RB)BJ-d;R*XZGV&B7rjk -z;N=PxQw62%I%+9DS+cV;pG23D_Qv@S&=P5{Mp_^@{jo4XZkN2qw4mLX52p}?-P9cW! -zm)|QhJ)XxdB$MAmgmXSICIp@xw9RxBDZX62SocQp@&0^3e~D1m>aOIJ_MgYc;hW6p -zzH$K9v+!^DNUQ%edyZRMt5#TyWJZLci`9GsRfnmX*6w+u3>Wcy#t4F>xWA|{H_Fg} -zYl=ZkM$Ougs>|AWsW-G>-(rgkFYOKFtRV~q209NWqD%+oP1mFnH(tzobNO|)xOoz6 -zBhl)GV7jLhLvB?SM=!{t=0xok0HzFpomXLU5fxrf9$U;j?2SWj*LC>YJ|02PSv@ag -zK67hJcjM5S;gi*a7JiHJc -zT^@b&a1a~}sOCx@6ELRV%#9-rmPz?#vk!+{B(c@m-YV{lxpMl{ZTEOh0&TPCi3Gg* -z2aw{76>A9(rc0e?g<7di`KX>e$77QV+kToVwplyA5z+;GIG7egRDR1U+Vi6N{pAIE -z$L?9THtB&U2-_%h!+z6_;yp|ipl}Hq>XaJeU%3E8CuMk{ZP4@r?zFq9Ch_P**fkar -z8zG(gqw8j}c8y4-Z>_ME$dawg3$Hj^J*)m<68F|_Gn%W}UD=ZV&S~s1yTLkEs*k8` -z6`)jqT(=)STcD_DY??uu#T3`DU2Dp&8wxX#j+tueMO>duO9a8|YLk!x6jQ2q3+6LH -z28wca1{BK!Jhmu&K??uCM+kM<@PLincnGzYbH+AS`f=Jyi* -z&&<}2aQ#c!M3_BF6E&r%;ic48#$bV_|B4idoxv2Cvr=**!$s>OHyo92AKh^7LeV$h -z353mdOTj_-F4U2|FGce|p(1p57>-{Q?mT>d-+K0JOC?^}wmLbrn-1>X2GJWC>!Z=?N9Z|JKAu^fInr14G&+ZImQ837sF%bFG;budFxB*iaFy6F4=p_Y|2xF;C^PrkvYL+ -z@FYm9DxGt9+qWd3jO0oQafyfcNRF*-;+LJOy3w|n`LT_ejWz472~{gI)stN -zgDmX_mt)?#nV;FORlW7;X4*hYJ({FZEW5O8SVuPRLZfuf@*j%~waW${*{x@-Wm3k! -zT?is@bi7QlG!DI;c{se@C+(cIV6YvD@DQG6j|TbhIPQrI3aSm^fnxr;!+6n^<4*Mj -zWvk$&vFKeUPB_dx#Y?Eo>{Q?h_`3)^roIpb!!M7HtT&A1!Z?21YyzF-We2uUP4*n-F4g`q6cKA -zZ+1Gq&M&OKe#b-mqg#U45d|&b>PW4`W8z~(TlHzCxFvj8WL0Q{gg>WTvU3P-OE5dE -zNhQ|WSBBt9(^mvI1QUrjb|gz9`pTCwnW-__{&=6F5j)N^Rjh{Qz-~<)ei>st-=%2brZxBGRv!a@@P7`#6e4U%l(=*-x-=ioaOX=4(gcJ_#0{_BhCcDYU&aSAq -z{PD{<=Ww5$OhW4nV?6P*XRsgX$Vd1&Xp*gu#Z$>LFR_g;#)>nDJJ!+ONj}WQ!`$tH -z;hZ3!^5DM;)BALP;}lBZp)#08pRaZ -zb~OM6GvFsLJbNCg5_qp1-2rC8>J)GgRHYoUe#6p#AH;jis&LH>E%9K9Bh;mp#RISPs$@L=c8v>2_06Yl{4;u0z{2%MvCgyF33fn=o)-9}GU#rbY4w+EbPu<*N -z;(m!zuQAIa=xTcZWzj$F4};Wm@`uLR-iUkaX^DPKMvL3Vvzxx1F?ogZ@`w%HuNG=g -z9k33lxz@;uFeJ2*AH6mOd8@2FV6LY~W|<6;dlH$aabON1r>6r`B?+Z7Mj}{2-;TB{ -z`eO-~*t&v6b(^+z6(Fw1rfnI@)=SNJuiR?Cw{(Tm_1VJ{GUr{=EPWCj6LCxZW{0*U -za8WPOU_A11-0h{&%c+37KOjIJ)B+6-H1_mjzeZ&!d3bww`cNZbSL!8MmRg|z6|PgyV-E9wAD{ggQA+9H&pemKuevUd3J)nb1R#p!o)B8d11CEr*s<~5CE -zERMwAId+3=udwC&4-`h)6D1PO^3)&^<==w_LEt>$nG;`aaLsx!s;r5goAB&EB%5v02t -ziErO~{JwwTzPoXEXJ_Y}Im1kcW7bnl;n>~FsUSa@zO?*Fn2P(B9*zTO2f4Upy@<}L -z63}xgVG_97jvC_k%2PQhXvxlwMxfr`2>FWQm-c(eXq?QrxXqb%a14QLuh{OxOT<4F -z8Ea_48ZQyiMIUN@d)yK}N0&TI_Tg%Dw21+0s~S#~r1Pqlq4CAOv;ut0? -z_iC5mZ_FPIh#4HoG;xkX;S$*JW8`UL#n@fi9uU`{k+^);`D*}Q3S-fy} -z6RCEO+yjFRU!^BE*;@0?iEG??Y&*$Y>7R7|G#h=_G=WA1Gw~aIV~n~zFCOtawlobh -z$3%CpX8_dtWRMgqjC4>#k=;v0)ru8$k!sMFEaK$K1XW1XH5dTnAXdZXeUlt!sF3;Z -zpa^c=QSzk5$qoDv&@CiJeVlS -z%Z08F;mUjVV*CDpcY)hB&e2=8F**9^b2{?EVa~o!HSc%{$VP=ClgJ>>IPga(3s?h6 -z+_$a~6##H`-ij0qRZYyj58m&Mci9qn{ -z4pbh*+Ez$WO$hoLP!i6SXIh&0k?X{qNuieT1PYr!aK_zLh-;w16zj%_8W~(;c=TyM -zq4A~oz1sH62-{rh^T=51?(Zb~J)8hZheXDXPZN}NOXtjr7@mJBwUAHwFfdmSwRC0K -z2_NK9OAd3v;iME|{cwt~hg4HM)GWLJztb@z}OC5#e9q -z@_|P}p(L*B1b6$HmJq@LaOD_T_#@T?Ngfh?kQPugCL5^lEfr4Q*H0M&uL0!&x>5t* -zzbQe2aBe)J_$TpEwEII~I7$n;rn -zMU#DGQL1VvO7yn#SK78BNYoufj2Oo$@1|}A7bo{!-^x9`n~KG%B(xD(HYvs9Qp_dU -zsgU~<>qE7(QA`gD`nfJi+n`Wi;dfb% -zo$|90h=2czORqyWK@DZsM#<1^tNIP2B;lOD=gqCvLY{QPlQW8qUT6XwI9ZnisJWBN -zdrdn&nJvX?)*aOC@zo4zK}r38C!*+*U7dJANmrS87ef5SWn=e`p~wlN@x^iI -zGAa!m>xVeu+?EHKs2|A#B4f}NA#@yY2i6Ni`GxwzEl$(c%u|o?1uM(YmogG-FT;DT -zs~q;C{&_!Bdtz&3e!~#wIv&#)vOlB*^}27hFHXXfslf3UC5vEwlzD|>rAUIIt1`v{DJ0b^WcRFVqZYhi#g}sBt9q<6TCm*aE22D6 -zmDnUchdNgG*NfSEfn0XUN>laJ4h#P!0G6L-$#v?Tw|RmE08Negq>uL~@~(EzVl>8!*OJjwWAU?K&m-u{=1=z)iKi -zV(@Q-?oh^$bC!;jNV&0k9!NgKBnwa*Ag;PI&s(n$fbvynY>u2~z~YfM;{e%#*q`gf -z>5wfnACR`v2ET}^;Bx2o$z)SXnFz_nv0~XmwSQB)|-BdNwa1- -zS(Q53WF7L>NEoD>Z3MT8A^a8f_Eq$+7t=M_%~83o0&5Sx^VRo4A3&*mlfmNHBck0v -zM!3WHfzZJiNY6cGsYz85E;^8)n}#9CjMs^;8NA~#x!UEm+8CwfJq>pCa4NQ60}{W1?KjuS}TSerkQ@RHZChx0~l -zV@uPRSms~LwIAGAD@4QqY%-}UDdDHM4?AR@rVyy#eB0H@s@bk7%@n)1c7-~FslZu9ojV>%4c-)0Pw -zkXHM6Fu&GdD8>m|i^1VXI}-(8Aw8Nj%5V)b&c-aOwK@|ce+WNN7yictVH*bZ{$BqO -zbFpEiMjHo$d@+9{1flsf;G?A`{)nxk?SANysqQC&=R&@T+Uaj4z*)TBANdO# -zyS=H5AU>^?!p(-o)a!(h!bIyShnYnT)KxGLNPLiEJ(8~|Ng;E)f>FdHJdTMXMemh5 -zB;^p$W6_^lNERmXwqHB&X1bSIq;DFIDCrJ0QlhFp^Cku(@>%tD`?5r6x=A$hI#JpQ -zd9qr}o>uX0Do%HM`=krj{>L7b7GdeVsF1(i6Rx?guahow|*%FKkOq)n#Pa7o*gaP)x)*Ddl=^(x5~v`86of7HCH5vyF1~ -zSwS5gQlm~mGBTmIBP>vp(uJfef{mBYkM(EK!4v2$LN2FG3#|gvuTc?hNh`1W%iS}G -zX9diE*%1Ci`;<3pA}s@T4<)BK7}H|tRJO$7bUK{7P@?F@J;t)#%~3TVR3Ik?JI%Qs -zW4*|?5@pRlU5yk4=EU$#vgwpiEq^Fsyh(c;9CcPWG+YJu-29aEZ%u%El@fY-wY7kJ -znx2>hkBX68g+G(T?s1aSyHEaPmkxDv)9jPA&2okIUOkgh{lrltuGfwT+Z=GY_(A+@ -z3gx780$MTcDt}hrj`_`a(*O3T&>h&RFl)ggM2@vS>-E>X;k?l`;LI^GtaN@+pz=`H -z72E5hO6vgJuP+&uXu*#ZjKlFoNRG@)B$W~ky!KkXTCX{Ie-Z$d#UIP7H$WJxu0-;x -zqS526&|$K+PnwrT+rNN}FoH4TqztB6g5%!Bs0yd!+0o3gb$ -zn}Iviqc)2Oo#d}Q=EYusZ#92L$>@%BJG%4S@KeS^khxH<6tHhGuijZ(@m-21O>(*O -z(T|F%8iJTMO`~9ygl;~ap=TFLsg?6@n-XF%JYt-iv%?;lz98>w_|BudUylRM2K)J8 -z;el6qZ=@4Ch-oOPIXp3K+}{`e@*s+Cl?e;AS~?mU^p{noD~PZXek-eu$&0TVDup$2 -z-7`iwv$7_>sZX&O5J-2J$6LTuh}`Wt|guJD6pCD)xQbur`4 -zuH?&Tu{@88doDxtho*qrOyS{@pZ`kq$7AV|*P)TdrU#LBGKt2dEDxk -zg~8d>ND6mue{XoX!YB -z-grTZg~Lv&nlcGLS)Z4x{}%qARZoWL5jgOM0d;-RmvSk`ej(5O3n(SIpwi-h?)+D6 -z;2HO_8h`{s5F}@=e)ojJ`O>#o2vd2|)C>^|UCkV6R&t2dGm());XIU(IPq3nvRd1~ -zcGPWo-&+cCwrh+;V8%dpTj7ja#k+&{8WTzGm5YKlXM0(SCl7~iza!ot*v@-zPwNav -zFcA~J(M1-n|D3yhg-Rxgt-JA+rFBpK6Con@I~GSC`3c}yE%|<)Z`a@D{@Xv5W7I?z -zPF^Cs8&qYh9oqsE|1Nu_cCf)rxBGiPBTamb?lXC%=;>Sy=hLZN!+cU*SMS36Dz}O| -zOl^8R15=|4180Rws0O)GiE{%8z1{DYu!k7ib%Kb>e&LMirO0XftHwFPg`|~LA#`aN -z6fo@`=!2AL%%XzjoQ`>EZ -zLpU$Jb_$`+;KxH98}TXZfxJ%Knm9>54w?lY1c+2QK%2VUf=XsERMgo6Z%|QqG5$34 -zmX=Y71L%`N*>vEO@M&Fm7e9AdHqy`O -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 -zFNvYgT&@YVoqXewPy`y~hwoxOdA;s -zjx#be{Th44#yek@o6gg072$9d3cgR=7wj@=5ub?-a2p)vQdX=@YS-@Sh&LKYdim -z;za=lZsurj|8W*wGBR;~bO%{oUx0`eowN!NMV8Nz -zPTctM$jmn2b}}Gez8m21Kq*ISIbZi~WZ(~w(E`1e#YDlUFl$R%-Cd;?L+lnkl>}1` -z=BViUgVe~ti<%A|0oT#25x%|DwR+)uB}Z)kiD&H8DN`Ysshj_>M_F}!V=z%UR5h=7 -zbEYv1Xic)Su_7n`-OH#qNBd)Lp(5?5pZhb&9=oyY2%mm7rY5Tie>)$KXTNs$$)W0g -zsb9QO#oK)mThRNBK`{N5mI$N9&8q-+0O|veI@TkLxh1BGYMXHZ^X7KTb$4X&Uo4`- -z;a5V|UWSl0xt+{?^AR6ytx`WV{OGBx2CqUr^s^u{z-c#VF -zKi~AF##<~p&4%?VL&Gl8Xx(O8#-`Dj94(aNgK+;f5ZxWcP*$P!iadoS7EHCCn#ut9>a@SJGD>o=j(3*8$R*ac{arf#gB<7}$J#JhH<;92KK -zzd)#j2Eckc9d!q6Z~j5J=AaItguUaR5fjgqlBD?eySds22_qBt%9wS%PHGQI+QqWb -z-34a8+xZd3A(G$8+iRG_c8;7w1WHEhD&vjypxeolrGOOK(3BMC -z%ZsI-(<*X?u6rO|9QbiZjrCdH6`B@y)6O}#m7XK!JVf?;43YeistW&b$lYd@;cf>t3 -zTyebQpP$$2x*UK4M|evm3Q2_r0`#GzecaP*WLb)v#$(on`DwFJPaeV=D$(2A)kDWV -zmghJraim(%epQATMZ~aN6dxuPpNY-kD2R -z!)vUU+$yrhUb8xMC8cOx)r{BoC`p59t)nwuubzqZeht=+bC4rRn;)+wtqzN43! -z>5NNm55_MrO-j~czV17kAs0yiv5J5}j(wI&T#uvaRaNKJR2GT=511`UCq= -zt)x+e{wJP^W4`JeoA@M3Z}%C}yRmi_@;k1Ah{^_-9&d>sxilp*BX&n9(UDo!_dBgG -z0|561*W$7_6ljh8$XWx8!6U=IPSm7?6Nl&vgHJ32po!nXqr@+o^JtsAWr)Cj8>CjI1O~+%3m1^ZVl6(7sDQpsP@-5#RURPWdJ`&C^sXheJoP;@(EXGF1F{ -z0rpaU_spyJHqYEsu(+$K8LQF7uf|cDZa+(GL;KVs1Ghf81;|gOsWrBX-z$h}6y~L= -zRIbSwreU*#&!7HV^{yGBbPU28hF)#OVkV2bT3t`MO#)O^?jr3xwA}D45PoJ@)hZ!j -z(VdQEuV65}&A}D=y{2(f%_4WIq(3AJiL#U7dm}Q2++j8(=r4|*{SBY6x#`^5EuQq# -zDef30*7Co0kc9_owJv?4TSKy92A64o5jQN&uak>Z}))Q`#J19R_HxX=EkdhN=OPi2D -zzd}mi+_10KxRCO`TQ4dfa=oa}XbsH(0EcN35ykG@G-vb= -z>2m6D5u?q&Y*b5AnV%K&IP9N0&1V}T{T -zF%3N7^7LU@tXtcuS%6vtyR*gl<#lc=qQqz?0flZ~(RS_c@QV_G8$wOZacu~A4pt{m -z=HzEgy=caguA&2Td803`aUlQ`1}C}4&gPfsO{O!`dL{6OdDA2|6tO35?^*pvS$O}A -zeuu#9V3(qZJTs -zF>^?a?>k(?l2BGaSs3VZZPWT^V)))PhiX1-EE_g{rnYmduzx&R-_r$!jv>1_J6Z15 -z&W`4`Gw{*z+ostVl-o&B*(5= -zLiXk5Iu7_xkHZXkp>wjXEtXU0**CK9NAN6;hmMrVUyspTzcX;aNu%6Yr1FAy*+Ek#cSy0Sh)YEavi=hd9#0<09}cf3@``5>A6^fO~&`7B|99 -z{;Dc+i52}J$^vs_b!&E$n){kEyKOQ6(GNJxZJZxPKZoPkk(7cc{`n|oy%-b*#D+Wvp$#Qt&p+oHx -zidg9U*t0P_#g{ZNxN%Cy$3D%GLlaTKO@;}b$LYUqdyR4XCtmobN+g(agNrA1-tK7I -zb3kcgZuS1{G@iNmgB}%~W+WMs`6>QW9}@Wlpx;MKFS@1luxFgEJlj7@?5&OuL2Ekf -zwG=3KZ0*&oMMGaCIPqP~=ah5}MZhtT4D$Z!0xgl5h7`O-1~$5DgnkyWtMdvLhJsu3 -zE!*$=2wsIqN%F(ehAZ?t#ss5c2rL5@IdY>YuBYCy65!-yn!Bllio*K9AgoiwJ+QF} -zin|Ms=G|P$DVM{#jWwSNOumT=%L=C%ld@l0Plz{H&N~O_u{Kb3OWFQ$@I+^Vw7=Ew -z@4HD>E7^;!sD+DD4UmHk!k~YMopUd8nW@N%@;`Of3+=tZ;0L+U;QSwOr+1Fl;095M -zFU=U$N*8qtG75PxnQ*DkJ4>ODK#3lan__!1*o!1Luw@oI9j1)g+@ClkoY(2z$-)Bs -z=kM?^5SWplTQg0~^#tU%Ft|$e(Z;n%U%pD=o?Dtq@AorxxZOPTS -zu>snbXcs)BG}FJ&dIR?_#*C@#eI6^6J-_?PLKe@jbzi}An{9#LRcS$90Q;$f56_{c -zZM@DpHh1uI(d5Qp2Xk&4zE*i%t)W>p!9Wj~?Ii@Xp3TMe#3i{>`NT -zkOh0dNzv}hw+vLE9M)ObdYzDe&+Cf}{`q&Yik`&0+2+v;R~+y~W1GoBP+s)o_F5Hi*Xp>Z#*PT0S?0KN_+!{~|~5;q7J) -zmqCb-5)g$wP@eYFvJTZwp>WK8moh4|o*gLw&z-(H;b2avA&t&wjkb+oPB9gyq) -zYW{NVgnA2d41nB|T+GHtdv1ji>hHH2hGM0}SUS>vL%XPUC3!A2{hMebC!mwqOlg=# -z9p{#W=@2?EdkXWBYfTy-C!!xdlPG7tvmSqU1id;YVj<|oaJ0L>IjroE?pKZ~%FUm% -zn`mNRbx{;)^DHpP18KwH?AdyEbazzk8fQ7ggd~K)kkt7tNwAZwUwfD4bPO6BfzxO_ -znG1N7iWC*E{S4Plky%%R(=`O)uh*kSfIk8z)bmgO=1f^F?6?hh-ei&fe7jY9v+Opa -zq&JfT!`PO6Gf-JYTpMVg5OjKaFe7{h91et<&fI(LUV=tShYt$2c)gkrkAB(7)EfD>L@my>ZD%SV#W76q;wC^z*u6VxKYab -z(4by43>|Crg_2z6_L>75xBnb{+qcA==E1unS9(anYA{e-iu$&L$J#l}RkwKfH*j$k -zP@Cg0WiK(sk!o&R#YEe2+!l>~=KcGC>Bn^}npd;l#~Y?K$~TY$>pjpCH|wcQd&uED -zGlH)_k&51rI&4VL2wpM+BIWos4oOpvL6)600WJGjtqXU=CSm2m$|ux<=IQ7aI?&$( -zDp0j1*7JeytIG`Y&1!AQ>eo-gRL|W$ -zES7svWFPXaORVy{3IH9RAWJ_F=8==^EA*^4ZC8*~3M5l_fYa&5S}&<33~*5hIZA7> -z_=g-*dzY~%+`3@|f2toeHDBlyF|lf;TjD#7twDG<=V3Vci%O5Tax$u*IxR4Cp=?xd -zg0X`*0}<4&-iIa;&)O~;Mmda-f8gyNL!Dyf+@QkS6e`c1DC)=`vXI#Q?fwEaW_2K{ -z?Yca-(3&-`Jl7z4czr2>H}B&&cHS4}#eQdym|0sO`!(Z>TCHO -z=u@bgsa1+vLqHa^OsUWnK0l19gHuK*m&jfip7-DQ`M+YrgRSn}S%lwq)v94p=s5VN -zy?DPe-j>)4rldB(tq<7#vpT!EHMr?J>F>%!QHrQ>629!@&xU`;&GN7JyQ7e@(U{*Y -zYqG1KgthKqK08u3wJ)x23x`x0lXVi#NV~=tPJ6Uif-%damjl))q?4^oYAYXNe)tki -z{!Q+Qj>%yx#_HiM|Ma(beT(?<`DW0H#GuqtISd -z$1jTLHYGV`=esDstHk2)L<_vc{BGHfB*wvZlJTRaPSyuln9UE7Pq^a_{$LiXhf>L0 -zyvk)74t?q|1BxuH^yA)6>z!AWIf)xz$P`F^r?lY-+E*T(ozhsZ$avUGo6AF~iPh;K -zZq!Wc7?4GDWU{07m>>*Q7@w1oN#uLXt23>o+d?bwCcr>fVH^~inb#7+q?*0T<~7`C)~KQv0_S}t@r`8jK+5fLQogu1?S3v -zq(B(6%Ib`4;RmIUzsa#{$T>noIM62QGih1IC6|OIwIKu%u%%g;WV^X`Q^xc?WE^%l -z#-naUKhHv)=+C}tNljb&B^2{ZgQ(v`mh49N8OoHwsmY5OTteGcTQ2t15;LwE(^h0z -zutblZc+vMR{FwcpjwD3HybZp&uIWg&yCGrVVe(MjUdr0J8w58UfIrM)_RFWLdTFf~ -ztAMN{P3WS#&+b5GB&WIJq1jU*BA|Zmqe{y0vEC9=e;K$->Vi!lW&9IOFBe&qrH}cK -zQ!o%jgk#B7aO<(Kp1R3q8t^Yr%AB8?NlE%J^k-YNZo*%b? -z$g_jOZ2qyVQpAjFXI&&alO#;C-iT4QLR9V5Vy74UWPcmFxmIYoh#|-Eu$Y55X{P;0 -z_upOmc`u0+;Ib~g?$O{(klxQ5(n?p!rttZ<%&er?J_Q|j3GzgG+SckW%%up(y-jd< -zV3_>nC%!}O$}mm!a<7IPM{Cu-x#tuNfT9)GA`+hHf&& -zMVqix=VD!sbL~BJ+^ydcsWAGur1xdsON!WUAFc&&ykkybc>Z6WL}J<$V;2_64bP|4 -zEb-3;-%mAlOM!ArOYU} -zNRK#$)cNgz$JRHt?d&%jKZuI|%gXn9KUDLV?rj^izAa#X>YbWPTri`TR_g5rs}bqn -zg;IJsl$|=oXlQ#O@Jz_}pF-edaFp5Mt%i^ID;HXOrR0;22#~x|9Py6RtXG~{-rqxl -zv3TS^1%(H=k~UzRMttiEXApF~_!ShyaHuwe*v)k#O%Ekj*^9qfQRgZhx)R0T=qgSJ -z;>K<61_xWneeZPOjt@#^ku;XD@d?KWE#o2OumR2LNUUM%+H_ZSw-I<+ZPp3Tdu#+u0A%(N+h-%qMAx=x<1-W9tK -z-+M1`VuLqp4lL3?m7aNEIn(|P9ap|RM&g!*$jD6%>9NlA~w6cqe>Zf)vG;k~7 -zc?tTK!D4{Hv+I2WNUdd{`X-WH_&(q%w}KLf9_Chr>~~1;8l>SYa?)ivrF%FY=)WEs -zTN|z!RVX5Vnq}~u06H6E;~Igs5pH`^!$!UAQRrx@$`soywgB-1DpA=Ug5z(;NVdeb -z?m^tGt&mpjNo$hhbn&XQ3!>4u$ALo+?3})7(8CZ@X9<%)>Xnj>N|Qi#g3GDZ4xwsl -zn_~JlSmt?c#+V4{NE~xUjsnF`6_V$fnRsSqhv;mvrI2U{STXy98<`(wSl=lyWgoOi -zzoeqZJG2A&Q($JtkYp@w0!N7UPg{;A`t+O26vW>OO%yx9Ud)GP_!x)riKms?_E!v8 -z*SS3Wo^ew~KT#bdk~9z;lRPtegwv4lcNKvVT=T#OeYmz5G+Ag>7Kcmuw3eE?#gZ>o -z?fkwm&EeQdG((R7#aOe#u4PW^(t`^Cv_g8}5=Wl@B==v@kO#cn7oF-w6Z#ftbJBk} -z@k=lKl2S)rCK%qYKsV8BwdUXGE&r}3V0qBw`q&aZIQYjhB0Pc#vk_K5duYz(o!f-f}XaSE~OG)oDJ%$`~+nQlkgeTG%m)z%^w -zl8&R(?LRoXD!b~w+lsaUgtQD3kx3&le=-37f;MgB}0AXpj2th24vGykPILU-k-=qS(Lglq;uFmtdc_6%>l11b}66K+*g -zv(nn47fOeyUASvU|3EW&!76i+>!iH24|JN!rw!P%qUu?BkX(aR>m{+Qzf-)Ka=)I; -zEVUm#cMDK0t#`m9(Xm3%ZMoV^-&Z|C90*Vy3;;_Tv{Y1O@Q*wQKZf@(Fp){DJ}fRA -z`sXcq=rI4<&lPQO-NlvV1aZc5D>{Gj3u${cNQhvQ{k<0e13bHO0PntLVCPg`(g;-s*vTK5v1s9zZc2&75A6128NI_Y^0`oW_!GB -z=gc&}n?m)r7;i&oNIe-W@mUDMN(l%6B@Og(%PmfzloUvZz*S!8Hf9@cGd9D#0d^U6S^x|$d(-)~oc -z93uM;=?^{kJ8^GwO*6G;`M;ZT(a$F*M6{&;2C!?ub)Q13TT+4@&S+i8&4Q}Kje-X)z!}R{C;@TMuA1L -zzy0nc7wIN#5D$l{?ych1Fpl{7NnB~rYiClXx(cn63QLf?TX?pmt8P{H(o+ft8xMb1 -zwjts3d_-? -zx+rQi&uLK))uo*hj78^)LNg)=POL;nyUJHr@J|!#gfhjoU#(9uH|3*Xejd(G!!eBF -zAB5J=ZF3CeDARO2VtQ2mUVcWVF)W;|-gh{FqxNK5D#z63SB7E4+9^izr-?+~$m^%E -z21{|BG#RrzS9uRp*8wl*Ri4hpEn}}6@1Agh-1KXiA!PtE^dhQUN^q{1d_x1*n7~60 -zFRpXI{W)0s>U@K3Je9*QY`7WAT=c6!O1lrM7|n;g0ucH&TWMyk{AG4QrNz@to?Qmq -zIZSi!x5(VjEAOpIH9j8e#}vhR;fPI+b!ktxs8HcIUQvgMX}-3viqQ-lR2vOWX< -zkxo4BkZNY8%PaG!3kHty?ayQMfv+GQ5Log;>ufDGVMnyB?FN_KKOg_YUAF<^=^%#z -zIrTT@0*#*ROfvT$##FC7N@9lRyjrIq_6g!TLdaw5Xv3i34vueacHcMHxsnx{)+HEr -zOQqty7qLmp9c1!WJ9zALg9!mOHzQvVbrpc~z${Gk;c{^Wq9-5nWW-@}melZmn0ht8 -zhl_)f$X=Bmc5hs43~t!>p7Bw3&u0=9+jjBPZ)a1A`HzjsEBC-Xeug)>Z!iP^UeJ9h -zy4OmkbgM0{Zd(ScsBBIQC%nPi1TVmqJY0K7OiIKRV4^*Q?*$ -zTCkj(xq1&&UL*$mY4!8Kd^6pDR(lc$J_))!_gsZ)kDk`;N5^c*n=$>}DmC8K27Ebr>CmrQ)-I}vh}XMn -z7T@)_BKx*M;h+lEZCpGaw$?r5=jL(x<17CZ;@H_#I{prAh$_`cRVUZzLPHjMGps6R -zufJI{ud?O~9~UBV<=rizq-w*;KT0$vOwP4qJi{>{v96|ZcovppX<{%Z*kYF@9`-hE -zXZJBo=*53agJh!5ttYU@H}sTpK6ViI@kQr_kb0S&K?d`G^!(0ZG3!BnwiUNUWE_6{ -z_ylq9d*~qok7tj)>!Zh6ZMK>2T_vPG^m|e)2jOg5>{nWY56C9rna=GNYL`gl*z8g# -zOHg`PxNpNMJ+?vav<^R|r^Ve;Icsg1HY$HPW3&*^^Eq28OHQ_PKj&LY -z!sOIN1+wJ`w+BVTPqsn26AV5T%w{ADOW>+apT#*2P -zy{TQ};J$_S#NKv$_S8DbZL#iCZ0Mgi|H`T0lR{CrT>oSDKVMuoK#Otji990zk)X_} -z{NOci(zAqP+U4%&()ExSAvjo%BVDG3jj<%+@U8$9(k&Fa=`|9Bs!=D=pU;*2UJ~;0 -z?!XN`FL*^%&%;L7yB5Yz7>Rrv`KU(8Z~LG{G5-rzh8*uSb{wT>kM2U;-4aCI67r+x -zuLl+>C~oB+WeopG$Q_smy*{xe#cC|25JWWlAZ17h$}vO!@K8dGZAb^Y)=})pQN`V5 -zQ~c6CZwP-?Gk$B}6)x8#>>q*gDK-9Y4s~OmoHq1^JAe5gwR@gr>xn}wj&IXzho2U* -z51D?)lD7vVT))dY-S)}^`sZMLTrJQ1Dj6hP6N8i_o5qT;j#)Y)X|1vjGL;U$77rTh -zL0e5_!EJ9XvEI1O|7t|@1}~rX9}R74p4dpnPa_%bcVZ01dc}~~`7H>4o}=BJq<^u} -zg3){Z#dPRcFn -z5B}r*=^9<=c!D!lKDP&27bgy_bjf}0mDaTIN1Y92=;$2z{x~Ent!l?8_!2rtk~Z}= -zx}UXG8kLm_1`kniR;ibpa*h6Iw5~NpzE0O^fR&TB_jAwg{Ze_IE@S@&4&Hm?$WvB~ -zI``9?P${Ig33kU%Q7zZnJeg2P7RB(}JC_8ig2z4nJ!VInoQsU$KD-m+ae{%|21Q%_ -zwE8;vH5f<>QKPLS$1}O -zz5S{0zO?hE%tC|i_z(05@GQ?pzavhq`<8aC_Po*`^{jGj?mg7Fl6-xK6Y12oLHA>< -zDRQlAtTjeR`krdU-(8LIT-ZemF^;nx=UOmxC}ow59QMB7*l~6O_A7aNx^FE^nM5W* -zg2MfeE==WK^SIy<*zs;KDjJdHG3ðP9;3@Ds(O%T4jhF;0=R_lfKz4A)N~`?4i8 -zARs=lBh#mum@c2KjM6_QF9P=i>QGnjFoHs%y(_O1$h>}jA1_%{r9N+3Z -zC0(i8i{OKIF!=nElS~@UwXX|Vr2H9t0c6jEv!_T%a3t_NpaoY2qf9I6B3SD6{A$pz -zo@gOh+>nCtTF9e~n{MKAbVT!X*QLoqY;!CYy$QEtMIFrKtkNImO_n0fnwf>Qv -z3LJ>geeQIWm~6sKb!8~4g>CUYw$Z7YSG8N}94@b<&7wUB{-LDXv3`vQWx?(TS(dF7 -zL1hqD5-o(IZrCA+*!F$vI{SWPS}MC7InC=OJtl8IT|eb|qGw5DK#teYlI^Qwi0>3# -zQ`U>tQ!lgqt6%l__j9N!ne_TV?Xpp3qiCuoqK8BOZ}9T -zbF(d;r=q9QFJuE`X(JEmrp~Ok{xo>*Aq&TfPBlG7odiLswis8zJo*ejYXQ?>oR!7v -z+-B)_sYk_P31$m!Djw>+t!9=atQ)Rgc{6y3-q-jPw{vc+8``X+RA{Oj&Cy@po?STg -zj~>Y%@bQ8AyeXm@Zxwsyyn{vT+c4hexyorF${+qY*a+nY+#ap;LT>haZJ(R!9fs;~ -zD>s|p$tl1ackOk8r^~lYK$qk7(A&7?=YCzuXltMsk!Wdy2dz9j=y#>6baKW_FYFgwqvZ8K!orciCGlQ5AQ$zylUuIH|7R{QR~62 -z&C1R!w!!M_AYU5XRAS5{6_<77vvGb^xDI&941r2=zm&$!2gWsOFE65*NBVSzO8+T2 -zukXz-7B|2+AcIwDDJPCgFRrNKMiw)r>F>{aw+924wbrSsk6Fj8S{CU%Jz&J+G1gJC -z59jSD8_6Rcb*pnwpxn*vbm0jb2Z-_Bq_b#E+^V$Gq?^%n>LuBSD*V>-pf^ -zUE@RMl#^bLIS9)$VsNKNVgJ0U;cv_&`Fds9#He`(YT7}zRciDLT(=a>a3S)bzd1_j -zf6Soo1<{HC_2m9gGwlD-bkzY-K22CkxK*s)&bzxaJI_4Nyymzi@7MIfww#-UF)O>Ag0q_d87zK`~<`MOn=lIB8+t%})o-g#DUF1(cJXolL`6jn{Inev|;lWGldA7C5 -zCM_Jgi#2NLW;l-F=vSfs -zFl=Jq8`D2;$I&C3g-5R;%V{13-@E^^n72dtyg<_Xk9w$U -z8fRh=$~{t^q|Df#Hia+d#mJ8O&=4qVTiuP+l|F38tv>`j2fz~hQ}>l?w}xoD>lu`#T@FrQW+>{(w0J_<-t$FMiFoL!@uRmBG<|(6 -zQMFuleZn3Jdfx#~?i@&7AzIc*)rn=EAMQw0!IY-&B13pN@{Sj9J-#&Z?EQQ|h=4fO0!cu+Jt=G&X3HWm|- -z`8iWrlqnhk=_SoZhBG3;ZBsP4oF@9g=p7R|X3F8;oH;Jo*@7azMAOTav-yO=mtQ*R -z;vxb4WuZvOA>Y(;qZ9CsK%&YhKmJjySTx%3@a=JB-5s{C56o){%JDU!c|@_!n7CFp -ztKmf)OTZ1>Ef)SM{l5b(_Z1~vyF -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 -zYc>F&X|b*c)m{_P=fH_#E8w -ziXQi8E<`bZl!pv=2;j-Cd{;Cif=tnAmr;XmKrdJy2=!ES=45{PRLC%<6pJ*b?;R1% -z4)dI~zT#>DZQ(e~k-eI|g^agT|45Eb*34>5O+ftv*sVmJtx?M_N@Nu8QT`o`bBkQC -zb3p&F%;tlsj1fox=_h;-cm3r0rukq`V-@L3jQuR!z1n*$15oJVBz`lh)GP4)E4d-g -zJ2abFg4W@?=u(fIPtY#P`W@SHWZltEwHjEe2`R*`(#t!spSmk_K-C_>RTBMF<(-FQ -z!X}Tp(ZRc-lgWn!n0k%U9kFYBBtqsD3sFGhD}_v1om2^*`JCTp#n2PtBdY$fVSbD3Eh9$uA0Z~{4Nd+IF^+1S>|ccN;FKWF_m7$LLiq_g%M(&AGdoivyhm8l^4 -z3c0r{jUeCc+bp-<$4N=e6-(MuYT*({!H!I -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 -zaR3u|wW(U6#l+Lgw2BT`ZmY?opE&n=529j-- -z3la7Yws6)b5X;(+E41#PV6ByOE*%GAk7}FRJt&2~MGDe-ffXJlUNykj9%EqLe>4ar -zdj1}ck4vip5Ea}qY~eOF{v4e|8kO`Yil5~Q-2jvr6t)lX{I}Zy|84i1-|{@F3ZtqI -z&jZsRUve052`#fP!$Zv)YVI}UCa!j##^lmj>PMl0@i{j;4%RU4@2EO%#ae+6+ -zQcvDL{IZD>{=^dKdlA9!jiCT_sd+fw;mcxJGagaP|H`|L0Dx~thU4EpajN_1 -zb0Rq$R}@pm4{2=&-JEPC#&HuP4lhv}=&}HMD={kleH`zu^?#8uwSOzLOjSv=d4*cJ -z%qRB)N@|khn!gFrynZ|}6tg;?bklVxgYhDcVAUb*#P2DIzY^s`oI!AHBy!m@^p&=Ay7vzn~W1HYlw^++Ll2{%tM1`xw?VcHkW3lu;v`MHi -z3EbSUoP+K?45<-^knDs)wJ?Fhcb3RsdxqnV%#&oVGEIl`ikywom1O277)w!wrydq| -zUjNR>DWmuW==Or6Km{=v=X?#a{_~P%8#`M$QG}3uMhjxz0w7 -zx2b63H$bNt)3<*VL_odfW1xx9S1vCiv0vmDqj)@wv=}+LSKo1bJz#m22rM_B`T6(I*#8FzKh|f1GmH{B;CQG?}t#+ho6H` -z4w_9V8Dd$tkh6`gyFdRLdUOR|OjuU)b>WLu_1F8Ys1b5;ic+f=TN+*nekkA1Oh3BJ -z=j-z&$Xte*Pqdt?PJ>3IuU37E%}BzO9u=&_-MFN(YP_jDn1WkA6;@!N4lUQfj|4fG -z2_U)m%~p7rky1I({8IO -zWd3%Bpf{>lzJBzz(=9N;Ij4%e8mWwA+@m2I>G{jk5(-OtR8H(mbK{^?LBi*ittZ|o -zL5hNGW6iT;KzcE11Bj$nFeEmAU>b8`U}Dc0KP4Gb+*>p#05ruyG?egXO?U(vO}GT8 -z4%6?5-5cc5uR}|YuXp&HJPEee3;wL -zknJu(FO9}!XG;*K#M-J{uqJ+QTmV#IUJdYWnqe$j^47lB9;jxNP$t6>{hb2(q{ONd -zXD6)Z2;UK2H72VWuNwepd{sL~aQJGQ0&=-T+Z-4QVr(95t`4Ug=(>Y@U9fzaXfqWs -z$4sSRoh}>un340X@a8<(YOWPN8apOK>FTTH_xx>tw=;o^%JD{j6jsxDs9XJrXbqb? -ztLd9LCRSv|aP&V7VvC+1w(H(pZ*23iZBepn67VK*XhuZnxZo^_>@P_T;GojrtGk)wuGK(k(lk(ig -zckVl=j0v?qbh1Oqmz}7{^`#_E4i>;p#zdgu{(3lpe~=bzDg@xbG)yipss5#CW2jn`I<4oFbQXM6gw -zBV935Fhm4>$1>bRrsV}JJG2u7$D|*0jiq~$f=D^iwJLp?Vet}6p+6@qXo$Ep7&q9D -z7DhQL<23h5h#Gk0BJ*>Tjcyfbd1Os_L2`CXA)3-+F!?PXhA?1SfkXIuDp#C?YPOD+ -zI+G1wFVjPY$$Bi;P%zh@Re9wOLVX5hd8_KfgdGwKifMI9SZj}1Q9pZzoW*oX_23>C -z&8SEJi2E@D;0_>u+vGWqgmp*I6k?gRySz}FWu+Bng7?{IZ-w!ql^P5SB(eLwdUHOXyduCy5#B$To -zatg(yfNzUH&8H2uwr{KIHL!AaO_FjsFmrtwB^EA_=?1y-05?j1d%W<*ElIxC9byg; -z3qSc_WZ^B2Dy|izs$)^q84Sv9LYzraD`7MIf~p{Co2eQgl%!mQXopVmvMZ%{j1NLU -zO%<%m8Di4SZGH~x% -zXMIycixu*{a6!-SS0N43fMDj+>Heifj5xstoIm-!2DtU-7^=e7?CSM|rzcp;Ab}5F -z2j1i0hWX+nj}$5`C8i7xDsLEVwt%=$L`={EuP}LnU$jb&=2_fbl#OWlqL};6%@9O; -zy9X{O(4vn=uFA9pxPFEj%a=gw7^nce5pPaF?OEd)6F%Oq__?by2~w1x{)!O&ln0-D -z;-f4O>)ilN3tlQx-4T)ZhPtVI#49PJKi`{xdL98i`q@+iG07Nj-GXbnsup -z<78MQ>2r=i(UoMv!Bvx|yzqyTUc$8d&lW4Ch!ONEvi~#H%j~T}=Nh|(34^zP+MCU2 -z*;l!a7D2Ic8;-e7M1|(!jyvmLG+&1pV`nT0Jr~t7F?zAL1*9q*#j{WFnHScBBR78& -zC}QzD;T^_zeUMit$#e9Q&~qhw<}~dMyUrm#Mo!eHX8lg>jV>${^7qpg^va9)-oFAX -zks9-STR-3e>RWwnQoK1c0JRK~QMWxueIA4E=T?ezd{b6tR7A}*UVS`Sdas;*oVP{`0B{JbWTU2Qez-6- -zTLrPt2>{Rn|C8z~B7fYLzeViuB!YXRIf8{dfqZDn^8eA0&S6C3o?oJESoSxad-@TW -zZl%C~w&@y?`EeLGw1{x&c&*$Tc&}PAeVfhqib+ThfroSuw+pyBf{a$o>zxU!h83eCca^R|n1s9@qEf14wQP6!R1n5aA9OMcthwpWc!J_tBCp>cEaVpzU6onyRN{PvIfxE@WeJUB -zzAIw}X7q{M6w!Pvj#)4`#IolCBMh!Oc&u=3+F=)WJ_~D^Qc*(H2S=?V2Zb`&87L&v -zW1$qT)Ho-t3tumLyT6PURpWfpYr#&G@Sc^bLXNZCV;3M`V3Q`*-dRZMttu^FW+jE! -z-r=j^LC@`k4tQ5z3?RvR5`=1l8bi8yOXfwRgOViB>;c0q75<VKwXsdDb-dGQC?(c7fBn(*R!3A5KuSG8zw|;tEs;y9 -zz5wxC&4QX+0%mDpL!m|@YBF*})x}<#6%=@K_;F5 -z!QWJKTl{93^vm;FnuL -zkC@C=&3CvTnIdld5UG8Tt0m~%e4FW&VDcqy&{8F0B1$yqRZiDYefHCN`Iq*Z%dmsh -zxL{r;EA9uOz-i_lc&*$-=wdk)ebUs*oYsb3Svh! -z9X^X7#N__t$8x&ij|#o7tC+EvQLIG8x602@+dyNxGxkayh0x%E60+WNzDhyXn_d2_ -zh_C|kj79Y2@vQhCu+<-Lx$>{|hl#)NYJ!zn4ofjcP{y7VhcomY95;l;5Z0%BkKMD| -zRH%A=v!dxOEV)|O(w%<_W4F&EI`T~Ye*Va`;v9e(;P}I5oSpo(c>1k(G`j*vKnE+V -z8KceY`VE$wUM!SN8HDy?<80`tqaHyvPSA%3nlcawb>512#PqrBEJ91iV#4N#Ew@mW -zeF6YI;Rs(UY854w3i>ONR$odgjq`iRs+!7L)6>g84PX|Yn-!!QPtQ%SCd5yb9}`aG -z++3El58Hizyd?l-H{h93b3HNP&60lUS>cF1EhjHb_~b(fRdH{=a*?4Xchu|A!;O>@ -z&+G3*LMkAjc!O#R{a13s)P@ -z^~-&yA$49f-I-{M_`iRtKdz-2iD7>F*4SF3As|Nxj3FW4w%| -z1f4nMorL`<^`x=9AqYNPwUW+MVO+Kf4ac*7ABzU~htyILlsq%XnA(P -zd21>$%=4eaub+mGU*K|6>9iE`dqU46=>hcM*gfIZKcYmq0ceX35-2_&8R|@SBHeQ; -zF;Ag>$6A8pm5^2(F&yOzLb^fJ{P7?wh*gjw&bi7911+J#;XYe8mix24cPH)43 -zczRvEsi&C&!Ay|A%F5MZ8#eI}d{DHpe6Eu_eleDp1jW7~mn%r;fdl<4>WTK}H?FhU -znE>eq!FY@5S~Ff!lppn0{+iu1T$tAY0rWa;;6}jJ?PG_jZ+Ae1JnR` -zc`4qHZ28DBfPb#|Z!xzo8ocNlzp5Y`8rTY_=Z$2f(fuHN3ok+{-sDgYYeop@xa)tk -z^a`p`*|?fLRqcD5^N2lCD1OiW`o}(R`4Y?koI3v$xG_&Tk*EdT$Vgv2!#*@jQ-fwM -zk6()*VWvy5PnlGBys61`(@3jfg-d5~R+Z8OaSw>I%PjEdG&C5SjPr>3%_F#ABxX@; -zqF9{~>X1Aoi~}nx1mD{x4qoW^V;sNW=FXa-iF0N!wtUFi_}=fv8nzTb`GgmPV(Sct -zH~YB6PzXj%PdA9A(9{ytc@s+`*)ULlyc7HMF*%vlG=e~Gb1*+MjloV&0YwH>j?KVK -zHSfGB5uZ@a(QI^_tR85C!03_|DSe5-5*l!dLb>VP+$)X!4CiO!GbCakb|&FPs4EM9 -zc&0+%Q+o60RQ@NPAjx@-nhy~j|15bA@3@CxZY{?Fg)pVQljNLQpMJTM!>A~S&ixnY -zqDF?pl8~pkgL>zA=B32*V(EN8{SQ*fR$HYTF)1^_oj`7jQqy}#S_f1={R+y2uczj* -z{>XNDWauD_{d9O;P4yTmf#M)e@c7$TihR$LE7S1e;{5CL)(J@aOz=)TcTIyiW0*|h -zU6))cl^7Y~4=V)Nuh{n)$M8?iTfV_G_|s{IcSjs))J86p_(p@q%L@%JH~)Gc-T>t;z)+Hf`aA%l0Yl90(gTU -zs!lh$jnJXgFlH1jptcjGkNi2f&|$!M(}097JRxW7XY-{HXqJN0i@itmbc4Fl0R4>R -z6dfzSv+G@ttkdPtKORWWNU%M8W{xjyj$q#%@_N-1AU`dlK3Y5}VhShdALP8`--IsC -z3XStLym>PNEh?|i=~kQeKRG4|>OB5vuw9<@8qE*dyNJsat8~yz-@-uZ>T+f#k_R#6 -z=bTf;a+b9Sph`lo`y+IfquUj$Af=D;sJX;p|Y~D_ZYh^0_%u0HMTw^shxBjt35`WUf(q2nP)XJd&k-lCm)Le*? -zt0GdXu|IjA{gM!PI^Io;CevN*f*M!ZBgn2BL%1D7Nb(z|+tQ_Bn{ICUKc22KpsKFv -zf`FuScZZaebeD9hfOI^RG}0v{AkqStl9EsX>29RELAtwOL*@FV2+H( -z#CRK8n5de?YQr${xfOG!`I5!;&%$+pJcCv8oXBfsbmqKa*odJ6ptHb-_}G|cVD(Z87iId -ztrP=~nSW)}X_BZ#?JC7w_<<<;S2Rb^1i>KA|EBpqiFTfI`-GBbE5H<2GZ@5i|;R&wWM}^XR>JoyiW#2M{ca)#r -zG@wxK3y__BgrES7Qh~j%ZSzcpsgYK8`E_#>3NU#1>Ko`szwis!LCw;dQ>nh9lJlG_^CX3c -z#<=tdgsWHDag}cYGX6kGJwW2sd*#U33UBtJgHZQPW3+(Zp?`_Xe4whRQ^ -z!(KKq1^1P_Q`>jy1RygAxug>)uyj(J9AWx+M0gPjUwex_ybXBCuCry2R*+;r;S*9j -z^N5&CNoFt}a0j?_RhW(aOO<>vkDzBOvhss+*wvzX+;3chx -z*oi>}Lf?{`>#pG8OM#6#roDoTYQNh$E6FE`;q%*RRs1wWxS3S>ML^wf%;`zfaD9Uq -zASm^@WMC%lt*VXsvU`<0 -zD~HxjRIbKV<+Zu5%|i|VqO)(Ix73|S*HKY>u&MJB{Nlp9=YU-`sRAu8+A}w*9i^Q) -zvA*YguT7JVWVp53!CHYbo?4fC*AME|hp!)_C&N# -z0e!6#*N3t|XyY5xUr;MOwZp~~7dloAqYEd*CpM7i2?+(hxxm@ah!qWZyMa6o#-75Qc-`fluQBv4;KM9SkSdQi3h{IBaUQXt -zW={q`?dZ?<%=!YNut9|5dpr}J-@AJ|S3(qVXaaFjWYa&Qct-!h`iSx+i15r|q(N)+ -zkERTY=(Tfh|J}0j*d~y1m*y?;lnV;ZzW0!0dMNLsfD0Ls4Nl)2{qgj@erPuQDV3Rh -zgJNmE^2SF7x2yVpHg6oE>1~UqoQnzCW4|L5*%dg-#pOtQ)=~bJ~%OA>;aw< -zx&wKM0NDn6;_DEkdeRWb{m1vBj()&KLdFcc6w4i>^F2jjnTa7b;E6tcZ)Q)>1ie|w -z#kl5c&Z(EYIEa7)E9}jwaz>Tke0;sOo#^h7=egi}&qd6aqI4h$wUieDbr267dturO -znrZR*hpE`iwZ4veeAN$@2>8=fUDm1p`LUMFofX5wKz8fdQ$hz9LSX&0g`|l_WJU+2_y|%7yH#yY-Yl -zVK_%-TvLlyOzXuDQgrud7ly~rk>iqg2siAY2P~+0XfiSF{9X)FN_Q!rZkvEN|M#J! -zDd>&=K;n4Tky>M4Go+;s>R^OHUIqyZmG_{P7{)!>8xW}Q^f)_$grYRx#Z)0DDJJL( -z3~o8vLSPN>dbBHzMxlPuL6yh6hmK31;cu0OB4yjF;#9j)ur; -z1f4!&`yPc+2EA>+Fwahp9Gu_$HlWw;HD1vSdOto -zvXW`*kJzgsOGa>(Xzw0>prnu#{Wy&B-8Iece9Y~&Obsjsc(k!B!lBl2L`9>58C;9M -z;+LKO!X?~#_hd&rOcZoE7~7{QtG05YIrtb}&k9VA{jkEl2tU4YE65l8&cuczu-sYl -zP(9X3Vrv0#^9CwC^H-A4nPy6oA1bthos7v{SCKD@!q?`@_V^P+PP|UO$hWBS5jcXy -zsXn(L|CvgFTCpiZnhq)2P-nsU{U4S;!QH&5l#8BO_0WA8t!~XtsphOJDysIGw$>=}z3F|A{ -z@cXEbi_&+tJ$5ca%osHZHBUwwG_1nHHM^%U;`X7hPWeh2n2{**^bhVRJmu$3R$3qb -zXnA+&%5jy=rJdT;ej-(g+x?kXY+pQTCD2-m+r*f;a|b5%{yKU@YUD{k)AlY3t> -z!mT?&+5yZjtF$%%)ZtwJ;=Mk*2Oj -zcUSlguv%b@#Cuh}vR6>gu0Wm0OVnJwIe>YS9vb3a7PN1dN1{^^KreuWkZ*`{sSHOg -z^{VxaxV5|I=%?3R@=gcA!Ojj3EJ$#JQ=SP!RT^IU;yLPo8DnKIOYe=e(u!w>F*!iPT^RQR0mj*4sH^ -z{WKchIFD?%JL8KWGRtRw3u}VFNgi8|+(fQj^oB(AcA`$3nVFrT!fYs?tRm%>sdQV- -zyhkN?0XsQ%6NoJbx#?_Rvg5Vuw0-R=IbG7SnfrWGvnF+H)DSLe2UAI`pXb&ZpOaS< -zOSZ3tJ&0)MC%Fx$XB(Uhw_kRA#d6 -z7b-n39D`V%!~tTcuGga9cJ!)X@$O<6Totq@f*C>my|DLa;@^V?H(NzrdZw@%j)Z?w -z8j9ZKrklT5b>n%W#o>5swJXc5Up%Yce -zu?@cV3s!_8U({Y6eMW)Pdc=Tl-9P039tQCkREZeLk9dzW7~rxtc}Nhj-$3El6@va# -zqz!^#|DBSd5s|@|I7v<5EEd6L9@3{@;9&9skO&HpwSyqJG -zIoO`Ux(?Be_uXQP!Q+x=h6k!HES9e9#~S^cB$N9|(q6DTWFWq$+`gx@p;Y==*DFzaI`QlN{ -z!v-N`l7~=URlh&`NSB~gzyQ9KCpW2<;1CMUM~t@Eql+8-ln#jQQ)_It`d7EoSdUwk77Z!RjSX6Cf -zJiVi5Fh4sm;GOPFw`$i>I+$B!1KVdQ=R@@ -zt^BHWltv~^p588LKnb6ljXdCFdK3=7`3EFFxF^)x9RP6G1ejq4JcQVy7U_-|fyb$y -zS*cJpfmlU89n~}av8X_Qn+qSU-21MV4Gd`F{bef%kjA0cFf+)ttRL!RK0~fW>Z%y -zc-!1FcMk3|hbZPFb+zHL^pG&1GAJ&{CAJ<<(pgnw?0UAfoJbUQE-%+Nu|H@5jc_-P -z=Hy?UL%4CMkC44+nXOkwnx+C%@{6XLhCgO*<`I4=r;V%qt+}Dv*)@-QW9JL<515b{ -zr+Y~Ac{KF8gz%={9V;($)C#^PQsnw`_TFL#8R)MIQ0H=1V6c@0sq}nnbv8}$B=xyT -zNj6$Ys&;5>10h8Osmr6~A)(OLKYOOCf4gfxeh{5S7Uo{pVYJsyaV4nyISSZ -z-aoW4-cKno56HbACB2f#ojWg;+^s#=c)%JOw?H6-!J*lqY~dQf85!1Z&<)lnr{bz_ -zxlJUZqrd-}z8ExUwvx2llbM+;cYSdUF`kNr-;GH(YHI$_UX%klDl)n7X3{Xp8`87}u@QGIO^4csz -zJYq(Cdj`{$EtE#ekplclB;<)csF2V8V>34FG%3(oz-_Oj99xy%=ZC^C|3TNhAcV(A -zI|Ra|ur-X1=Vj{oH}e>comf?;G6fd(kzwZJ*sC?WP%&}HXOvK7p`I<3-?~P&{!hLF -z)k*W?u$L4CFXsc^nK~05{4T1vJ8e}tfWp8?hzta`g7t|h -zj!q@gv_NM~vcjXfeC$sL5l?6&iTUMf+Orl76k?vAt06q_+pU45!-vfX^yty$yRG7N -z*^2o=tlYR8d@#>Kl73lTq`DoQX6Q*g*IqmIwh`8ltFg!0T3!bxm96bQC@#AO6G`##USeflb~|D*`gelt}Jo0+GD -zm*%hQMBTHgR?kJffd;C$XkHU5MsP)SyXBhGUDaMZi5+b&1i;XJ3p|dC8{}&{df4c+ -zk&#WruaN)Zfigk3ob}bX0VcHn6*E|3uP6gmM}HL*G;JUicjK#$G*~q-_P!h=A#3`2F^nzaK>6bDMa7nxbZ&N6t-#%r6~Xf7pOAYBYWa8&8>x -zGC0eJMAs#0D-fu*NZ@h;7ELA>=WwwOz`79tAnNp$M5=9&kdhITT_?Z -z7cOPuN8^|wC8hRrcXL+cb*JN~Wy%7k#0;1cpUAOkrmzIu8NUlGoziS2AS?95P+H{) -z5;e2Aa149DPUVM13r8C4#V@A9UHJEBLi|KtXT93W{cIIo~2cr;m_ -zm59+!+)m_peopSz$=gu!D2qf~Q&Qc_@$0!jE2`aZ1mDd@SSXzH|>I)|_$PY+~KxRCb2mRR&Q -zPp5-S3VY2+&>Ub5`>}@dk(5z;GJR^? -zM!be0N&&hRuaeuk#Fy|?7&-siiV -zwcSz?ulwgl;;;d*tQhqg{ndgWJYE&WQ@7s3H8(QGj5w}Laj&K~I1fvSj*#Dt+If5M -z#Y3?QighCfrSx-z6OB4Z2IAgKXJuH!lZ^*91=#OTo~lRgEOUv^@(*pn(ixee#>39! -z@ZGID$0m6+apS5|@>e$w`UBL$5SOfHq7MoGMEvxpf3CzQ2mKVGUzdv=NAl2r%c{S2 -z&eGVF`islcIGzw@k)3%J$oG$}zFBx$_}hKl7Cyo&PW{ie@Zfx0?e1kORp{;_8m8_Q -z!8-$k#U_ARg0<;-EvFc$^m#B`kLC_O8YX$$p_QUO-WkQm#`7(?3iS`p*LHX$C)DVT -zjPI&D88PUx%G4a1?IUeD0Qz^s48z416m&PfQcN_~9kS%DiF=E}@T6%G=fVM827%A# -zy6&|-dQ~x$OeqLBE-HI6Z&8c;IfaJSF6xh+euHiRF$v|lohML?YN?JNgbw)r+nwls>uxv-5MXB -zU_N&HK&~3yiGI&~+n-4?=N?L-i;X9j3L~5W?!-U{Qfh1*Pov|#e(RJx=XHNE8}u@04SWB277PaO(L`gp9$HvWsi@2&2HP2!lw28l -zQaAc;4#t8wD?*}XYSP&SE?9s5^F$-X4Vp}qH~@Kn;RsTskAo#`uQsQWQT=WZc*qDd -zG`3!upJJD|V+p{&nBemHVtTpPPX4Ca4=P+sqoHBsaVp?$+cu7NGlb@lG1cICIem^2 -z$IkGA5yjs+1E!^XoA|N&`cnl`8W9Rn{H)I^JKn+%arzEMXuIxwYIzp%q*jSdfj*O_ -znv_PoL2R)6N3WEWod=O$fFir@6=KAB9r7rYpg>B;EcEmqa@UOjK`1= -zx;L8Rl^S>K2fiu_n-$@&4%4iLb_C*t7IhXHwKm&6A^icB!p83|{3)ZD6a8x;G#Z|| -zCTp7qse2cRv?D90B-_=O>)oDrTY}H-hF{iXDc`h6 -zIf=>8IkSpBjQOT!$n5z`Qkl=Ot>YNqw*kx|SO-Q<*|V^^89&L;;Kn&oUYc+))XiIr -z&j(rUU|+LR-l=OBKbfz|3x6H{-yOE=8vYO8dRt5%HJ)a02bdRLm-Z1GpQp7LWEcBx -zu0K*TSkQ+5_3aCWO;L;qZlm`1zp&tFQ6+MIsvpG;y%#x-crwxe+fDjj;2}uUfQLFn`66SMya1*ZQST2Q6&5Gela -zIzj%Z-!O~?&ujo+p^R~wbPnl?j>YD(%eS8GfgZFHfX!K<7LRdzCzDnvzkzAC?5$2h -zoyI)y9t#&flc77_mb7?_u5A7!3f~v}G}y_K_x*~uxl7}ecQQgX;g12v1EoD^cqLh^ -z5U|DbRt}r*hv##g^E`>%D4GeTjlmj{VbijD1I7&u&27eCZQUE~{5PXdis>*>Zv}ch -zKC=+loNMPP2Pq91Xo*52KUQBI%nwdtK=A}afGq=};eRbUUteZe3Cuhjb=c`44+w)c -zMUQWAPD2%MuS9sT3BZ&jI%gyW`=*_T2EPAl$AdP9*J -zqr6#~3mJK+mE&XN59#LCL$Pt;?=Cr*$gpJ&uH}^pYF%bD=-tip_Je3dd3DR@o!{mW -zZ-UH(;(&tf)T`S6FvBc2=)afd>+y*x2;%Gk7%(ik);7^%Fo$rwW9uoN&hk_{fvmOf -zwC;rrzg2%Dt$LR5ORF7%@NB81t_JEC&lMRwr5|c3l`3agMF|Uy1)K89%ctw+Atvz( -zSc`4~v8c6KWz@K7FA`*Wq+XP~5nj1!LSU`ojoR2)njz%l0^kL)|acr&9JGI{i -zILkkdtbRI5gn8jwfA=D_88W!DWDEM%{rUBfVjGjGS^)=!?dhaADCfG+P%J~Vm9VG# -zMqwM9?goR4I(yV1RSAO&-Gm^n{%xOp&);X_DM=vbL62<=QR8t;z6x`v;qt)#Pf)CO -zcDZ{amtC1TYDGGm>8*|A(EN&~?7?*9quNughYnzJCqet7>s8mu#)eHgV9~=)9DBN} -z#4oULe*-T&&|v+5#GQq`hevs)%r*V9rIQ_ntt4{}3+4GUZk*%!Hi4k{vc1(vOw7#j -z`N@R-dctur!C{L(Zh@MK)w1W(EmE(Zh;dC1FRyNlyO$stKvD=61w@A$?KN3#+kLw#%pxFjTZm&VtJw^ju>W$aX -zMFrFn%M=l%UHVOBcyC)CXNtw+2n#+O9LEU`r>5Fn=!KOg89_f -z&}c+<)Z7L$hIQFOu4@5$@tl`{59=E#pStDkNokyB?+5Oz0JTl3dd4`N6=m&*_Q`xI -z9r(V-lfxF-4!SYSw7X-VNd$cZGY&7ULBo^zh)M`PbF&?kS)>?XtOp! -z2^`3uZ`ISPOEXUlgH8L;xf{rSmo4-Y=z>GgQG!{LN6X#3H}%R%PO)v~N2m;o|4oGY -z+GAw;0Q-T;zYthw_QItzRbFOiL|Ax5$erU_0+u$dz)le*K$Ad8QNAov(a$IjnwMES -zBVjzG!&+s_bJxFNJp&lZjATgkL{Aa82?bQ~0=tRb)?*&;Ito2sVHeD?JBOZ}Qs}*; -zOi{boJ2Nq()u3|E^hd8Y|In(2Pif}eM{|2y(hnzY@CN-VJ_g(0evbp6b{3 -zJ@|EH;e-bEIBX@1Z}29_eniP%rNc_!M0k1elrKXm7gFEzQ!*{ozhO&q1()T>ivBeI -zIfb@pCgCcadkW(_5QscgVc&oFP{1S|ODgR1EoY-G5bw5-x)d`$`hxJ^&Z}=svt`8Q -z%!dEsviW@#xw44s+L#^s@tJIFY(yV2gBcT0CL3pf(FD$AgAJ8f20}~}eIm~BQ>7C~ -zGKUK!Kev66Ylo=&164}Z9cUSNSH_5+QinD?L)PE6h%{$8(dPDrvNe(?ITWU>WDu%W -z4o)RndE>|kO8PCfPt8)Q`M14^Q8a%JpUVr -z`G6et#xB3<&{~9>qasqY8_gUavKS2Rn8stx+(Dd-v7~Yp@ -zPCtn7Ym51C1SvJ{{{7*HLUDC;aYm0sI+T617|CM@y)J;XhBSaMhfXn%w9M&~qFMM~ -zHGcD*%Cr-hvOq7|>s;eXSugsICAS=ERsyn399)7@I|F5^(rHCwu#J|92_b$9NhQhq -z*ZX(eMNp$cwYn*zOHuiqU{1MM4nabLh8irf{|kKBsJ(8epnA01Thu(~q5Z^pE&RK` -z5(m)ev=lORuHP0d^RK=$sw~XX{LJ;KRK+r&S^$hlS@p-xGryK9PzTssdy472B21D{ -z69oK;-1Gqk0g4mR4PIp`nzYuXW%)~B`Xk4n(PX^W&Y*BmK%mna7;lGL=aV2!y}J5t<3Y)GGeE#nHZCc{ -z-j_&|%AQ032RGVGpuX=AmhlrtYqhC({U38IuFR(nF*CN?BAznX>er8qy-- -zp{?}cXO2;Td{;g3ofdQ>kyDFTT^v_nKabRdnO9+~j*}w|n_`TTOpi8`wIaJW-jxy( -zVt{W3>Fcow+0)m^v=-l4cM2UPjK#jYOmJJA@vcssS_Oq4FcMt@^ABLv<5~xAjonCI -zi^pfbZWjA}eGpRQpPvEUW7FI!c3+b;k-x%RYsaFfq41uByy&l3jz~bC{5ME^EB(~8 -zmRz*cX&X~XeH|+odf&Ll&6P3~I?C*3Tid^=<<9q^ -zyB897R#0C-%(C)ctq4TI-O{{XW*IL=W{SLf&6>@BaVVP*AiE7sab1|*rQAV*@su`B$ -zqxqqce^Tg*5vs1bT_k-ma{5GNHZpk*j_nE=%k{PQ}lntM2ff -zI*-zGEgU|a0m25DB4<&PkBYQnFfdZ41wc~2mnqZnjv0qT*Uwb|JOF;{Qb0iBhzQ~0u)OZI)wyGwQ5(-brVR?1(C?=EWuLo|%gAJWS~ -z$;pG03WD>57aD3?;R?S)N(AY>IygcD<=gE>-JsEDr`8-RL;)*l=PKDAnQTyR3az%eufK|#l)F< -z=g70f8>M*#^}5?+J7YLH3OOkFsY-G+r=B`b&iBmPPcN($62hgK#RFbC^nc>udwJ?P -z>gNBDq{3o;(MUE&vRp1<`*f#AsfVmM#T>xekNWYjyAzihJ>^~l^e5ZXS$!VjsQJw_ -zjrE|cRKnIDsyg*Ouvk<4r2LD*Z16QX{hQ2;n{J;ocF1Az(U$Q_fEAio5&iERUJORo -z;M=>K$OG_6%B|fY#RvHG-+?*?62hTSfQZ&CI}T*-=I`rf;d~@MoxJ!q%g>MXY#&c9 -z$NHzBiHD{&WwjxbyJo&SbkcjR{Y$_@x66Og@xTq_z=H|TV8|LPy!37|dQ!r^PMJg? -z-YaU&5o3FJi!kqVXr>_)R63HnNF>r5OflbCvxoG+V3d$pIt7x -zNnf&!`AioSnW;P1(xoi`pnky^;D<$Gctse(A7^>S=fz6_VlQ<>wZOV -z^rF}SGCcpkfWgkPXzH*_SZVw1qJT(ytw)f&I~2{%X4on$e_tD;3E$c@+-Ff&Lb~`r -z56eQp<^W5uj8$%jz3b{(55|Iy_F -zRBsT^g>+IBbn&YyCAZJNfHcB57d=nS3AF|y)T=iJ)llPJ+7Id7oIHMzO9q>DO%8#; -zAtZfEqrA`cz{@HSelzw5sVGj98cK6>k<$XKYu?GHU($KRy8JhsqPnH-)}+55-5$bR{)RmevnY<N@G9zqya&5SC$$wl?lZn8f&VPujj!xDu6UDthl$G~?Bv -zSUuChVj~p&c`YoIu+fqw;Lb-Bq0D{kKRd$kZuXk-U($W@v!`#vAtoMuv@aX -zkp_>0SE(vu35b0Ez=@O6MQ($F8_ -zy2iqSvw$0rjLrlZPpH8iaBlp2vgOtTFL3%B2_GF-K1!==v)Bb -z2AsrNDQcpNcxArQhV`2Ri-#5l_dYUUYXQ_0$jy1Uwbfd%8m3B<0YC^qN5 -zDp2@!h_&?}HmyO7?aj9A0;ML)T$Pro{7hWpYh~99j -zw``fdf$^u(cS>+$*i5>(vBD)Vwd8XZEuZeN__T$}Xak;6kW<)}*=td?-;p}xoA%jt9iO935|K`?9D#+Y<`NaLXaHi* -z?4Y`%WPUD$mayu2-`j6R$~kN-&?sNf;rtWPEEtdF0D;D9B8SGSw$pky?x+CNFT^Px -z6|j#{i1jwEf%kG{Bw*|zufCC4{dHA|K!8Bx$`$n@tGlD`zl(u|e?Q^n*o`G2;gZ7W -zkr~52B)v7~^z-o#*2&EWIvmW~65IIHD -zM-{td&4bf4AWXXOPsVHad)L_9NPmtU&MB)<5|1jva4(#TVCGZ%7JsfX&Z8zl$A^)1 -zl%N-STHqi<^tg*B#prT-!d)b1x~nc=U2D)Pthy%@wqblD{T1-@T~H>DrM9L}@~<@8 -zUg4uQjIWADiRU_<@JMwCef%jqEFcgFXrvODiIfzs2)&b**kj}cRKmS!Jpp#UD-%@B -zl!R_87S2Jf156$qhjUNEj|2DYjpw!$BaH4Y_5EhhL)`$-F1cbu#p3Gd9HX-eZK#)2qp;1?_hVB?{oFSh5CQ*X_! -zTMag?XVT9OVuZ0w`a6F5mH5gN#gk4!Tfj2#QE&k>;$mP1utHf!#B^*-ERdHc@W?fHJU -zcR+n$HEk`zsBcp7-R}pB1ym}rkuBtq=r>Q<)NgvPeOs|oM_oEBY;SVY2*Q1!EK%BkqgoX1u_j;{n7rsl6;M1CZ-c29O -zLY_x$M%Zt$L+*pU+7^m2BwVks|EXC@F8a(e5T|aXkUS1qd71D$nu|s*GARdHB5H%O$RMA0acE@qfK@8*EIQgEB?(M3PlvIDd)6*V&o%%-H27oHtpEEHfxt-m9)Le;p(p}_7lS+?xi$QK8L1XYJ%z(1E|0VNtP -z+sk+5C=eCR80SQ{hs2;Lt4HC{`sZ)o?{_?!%HI5&Sq&PO4d=TF7k_?r`N}F;T}}TB -zOp!@?%3b)tx#Q1JsD)j7-B566iey~IH&T#NK{wq7-qSbRI%q?01F-2Sl=`(vb&k_L -z@{+46t5Sae{s@?X{KCEeA+5FjqRjeZY{q(88hy*y)aA6y-+YrgC$w-BeE{eiV9Urm -zSDrr2zjF|qhkz3pJU8%$^P+Bg#Af60t1tT&OrN;2IO!*X7>Bi=-O$I=m2lJoO1tqU -z19&cARxby5obG(5EHY{G70!>>a=TiX1eyC_@z2KM3TD)t)Bj3@lfgVVV`h7Us;gu9 -zD&t?|#$z=g(P^?o%(+>xjlE;_uFKkC{u&_sV0ilmeBcjCY7CEzE=+oU!&+c3Uv5jE -z>glV9cPX+hl|Q%_Z*X;kP{l}b3&Q4q0PgR@?Q -zt!9-sM!J5&31yhnS)?&jsUP~am?lEXs72>HbAYu7dhz3V!t{>|@y~I7LLpb!Q~Uq% -z>hgM~T|mD_=5+GHyT~&8OZeG-C(}2ss1UJ4_LHb*^fu*zO8~ZdP@gFE+0Id(rQGe*p=+bzTbFGa -z=zN)4CHeU1snx+}EcYj;uD5o%^svd^m=j5VVeR!{&v3oCK)84IhNfDi!wrrWdbOtX -zyr5kUHB%sr{Wvzd2`e+MGI -zppdZ*k0{m-kN7$LEp3~bFsg@3-e#vg@=>${*D1;KT2~lJVdMM7TZ>@x3?j?Hny9Y$ -zf@o*=?uwm_Rc7Cl=?UDvL7 -zn+H}TfvxPY1~Cb(L~D{6KW5GJpvgRy*$RJJJg$Ptc{%5AwVO&GFVy@iDEyI5nm?D} -zrb;3x!d(>Ewm`0#xA&jCC3J+I^8XeH!FQNdT&VBvZVl~ra;5ihQHe-_)pVv-5Z-MQ -zoVV}W;GR*YjP$)43GCAIFfk9aF4lP~ulOJIC)WPZ3Wqbv{^E(Jb%Cf-U40jx67@)E -zxZ-9IsA8pt-Q!=TJm^bI^^iL6DBNN=D$#a}2@5fz4h)z4&g$PhfzUmbCtERfC*9IvKs -zKL#!w^b!MFZPO3Wd>NgSjue{WS#++Zs3}&CAhRJz(EGw(TUHbut+#ESJh?ALg*7O+ -zj4xY$DqFrVqiT@JT`)GEpk09=1u$F6Fm`A&t$ZzWe4+NXx@-VC`Z`yK(#TZyYIu^if%b9H -zf+_BIFIPs;iItMtgE>~4r{5Lz&qEa;vTt|Pu9+<*>ba3LMl+j^8XH+?)1Vy_)<)GK -zE{1>C8#lZVZulj$T1fl((e2oj|JBZ4?}wt&U^)uSU&{-Im`3=ZaZMl&V9GVGeqdP4 -z7+X8~ZMp|TvXQIB5>8%qF(Z;WAjor|Q}B7YNH&x|R{@#%4+=&tIg%SlSJUfnI2l^^ -zDiEo@wT~X&O=~FQIl0gvBiKqzEpt<-8lPp=!X%VVeub~EBt%N9a-AL(GvxY5m;Kwq -zsb}UZB(2TzB#~D*xVLhf;I^1$PIn^HP|G>xhVGU{qOuoHwEp3*+mj9~PdnWWrcsfW -zPbY+5V}>q2ls*KD3j`fl%UWk%$Q7F5Y)^2b_JsC%xc(_a%#}2&_j83(0b-Sz2_J1* -zZcv#EIO(CPc|3bY=40^^vFVglV6}dlQ4vrW9^g1+23b*!R=K?k>L)>I^*7=Fw#e{I -zG5R_J##GHg#9F4yNiFjpx|ujLR^M`1Z)Pz$0mqr+U?ErhK&_Cz#kcRP88!A -zAF1TN^3ctA&vecXPb~A7+%IW??+U_*Q{cm3Aho+(PtH$?Z`0C3)#&kVU0pLh)LetS -zMo~etX)O;L1wer+W?xP~*HE+oGFETM?G^Yjmf%iM--}d0{`V~7?Smx3a=>K=LF+S= -z#2sbZ&il6xF+xG?{_a{rH!yF+hBy))C53iILxHKJH+Umo=+6n=<^fdmKad9O8^kj0 -zhY)_$QzgM3ZJp1TyFWZmcX<_@$$vfHJp$|mU@d^U8(ar3xYFLA;t31o_7LBAs6HR& -z=ChmyNcaO@&8ppdqKf2I$q?2xJ;X}viq(j8#(UP)h5C!L%YC(3-uvMF*bt$eXWi0j5h!*& -zK5Jc1liuN}5$VQ8jLjD%cp1y6yd->cbaah;#rcOfyntq_7>V!oCx^dYv-12xk(!5N -z2R)qxE0YSQ+6HxSvgUq}}x3kug?4Eg= -zGPGKca0bj66ztx3)^4wN_c{tD>&ZPL3-kigw_mm|@0-@0s`Lr9jiTvvn_|TGoIFPS -zpPT0GOLz2fJL?L}`&gmRg8Jm1jOMs2Rj8?#6`+EbJvo+z!ME5Guz&M*>{rrtAluMqM|%LALieAh-d(KbHz?5 -zXp^n0{y41;s=tMeGg8}~srlIooY0SJu;HnYZ-kbjg>Q~S^8@Z0k -zQNaQx_gCAB%S7jEE0(}FhuS%)%q;6N`Tr@i#NEsU&ObN?fVsdLf(6IjyOj9jT>e>Q -z&iic|t~rsEiHk4Hu#z(8+~LnHb)Pe`4%H}Yr*X`4C$v%~^$c`bkRGK^CH2hfgNW2V -zIkt+ZB5sP)z&nB4EEWnm#yv(}r}O7Wp$+RV7fn -z3^7))R%d*aQM89K-)UwW7IuBTRWh6o1wQqiPFi|F-(j^gayjup2Lkz0i0`_@{y6#x -zT)MOhq;gP-X~};>AtFn3_P^P0eE%(5RAY$oV5 -z(@wkk=*v$tr%44$%v?b-6!c@{&$$ctI|)3YFItKkyqg{&N$m)+({A#}^8C(abvr%6 -zV9uG4%946#57czPmc#p!*+FfmLhKI7ywCLW!jJ6Qr0eN_#x_v>Ga2ph8kV`1Uay<*zSQP?I_XUa-c8ZpugR{6WSkpud#guI26F{9Ac(p -zNL!*1q8uk@S#}o*>B%e9I8-{oj5J8*EcbZLkY9cQ*vul}jnFQ$*QsWNt*%GTum -z6MRH(*KbxmzD{TJFFS`p^tl{eMg5#22VE|$*zG7-OTy^5^>OM2jz&@C{5ReTGct2eU9`MJYGed2I0|ebbKrUWZylQ_P!) -zCdnpBpL2Fa9sJJmOCn;f5O_ZEfVcx9Rt^)qTuE`on``}{ySR~EXT9Bz#HlQufcXH9 -zgzZM|d}UnHFP28>UycyA=u}|Al_Ne9tYjic?5^{4Y_e{qlX^=n?GC0I8Bev{KdOM0 -zK^|kZQs~RwaQ2yYM(l)tkv(u=A}u59f3ha)I>V{DQ`fdUmuWmFoFSYwS3F_q` -zvZhwqsj?6=CIWotgJcv{OzrMe8Ubo;*xu@oZqR5@%#gt@|K&1Hl2iuZs4}p8bI^U( -zxqjJw&BewOr*b^(;QJdCdju;cd9q)%L;LxcV0)l>^zyx2{MDvGdkgF*er1F{+NPyd -zh-OFb0k$@OhdfqGGx^2!GF56oTt&a&FX9x0Y@iUK0;(1g%n-X}YGix1S?ERgbsSn{ -zWDg};|A{^`c!#{{o(S``&nK`xw^b5wEVlw}^=U^Esq#KYNMajIcYS=+W`Sh8!XlpC -zru>0Q$8`l>k!=&`WRTvsy(y&u~)qC>XVSQd; -znQ*5Us6=j%GNL8cAW%jkI7cXKvYc^mQHB_dFciTNs;bukPeYXkd$sg -zL4~EHy9G&U5D-whOO%e4?#^#^*YEGf+a5FOL{w%22WwNH0X9gz{VqC~Vx^lW-62ZtR%Btwi;HmboBy@$y#0 -zF#9KUi2IK;Uk{Ko??R&MMK|w@Ocs7#9pdn;^^GWT+9>!=dEnfja4r`(Uhc#>h#XT6aG}DY#hbT@qGbrl>aI%jxQiL -z0zC?FgfTz1JDx1()=XOQzTEw_ci_EsZwNC^%g?j?wy)C253zz|2fB1y=T=$Nc1AaP -z1Pl~V@EFqh4*(I{FQjhyThlOV4+tz%#dXrcYDVlbwNI>VRA7O&6D2{z$sc~~<`X2E -z$K!Sew~aXpiWpI}cI25;c;#C7-5ckxJ0=b-He4_lf8q|WEl?yu5h(~Qr+_HG{VAZO -zS$l#6%(LWZ$%3AsqbtQg*5N8H;5C^N);wyTY4lG?A6_`%rCL}rzqg3{pwIk5mi%jN -zu)8(}i`1Pi5>K`9sKFDU{$%@x$(}GXRP@mb -zDR<(()l__5>*v-1<60E!$Or9;{9%^*o$nnU1YCMv++;}5f* -zlzrstzT0jgD=ZTWqy^6cR==7&Q|i{&PXUgkI!{T5xmW$GkOUC|q4%Fuw?Aur|Gkey -zOCoD0uZ|IaF#lYn^ZqlF)4xO1vtXm!og*JrQR}^=KL@VwK++*qh&EkEnXM&`=iPUW -z31vWQmisIugym2c?9E~qOX><;ID$|krlO106Zy*|_vmE0!bppLRfEtZEEHTxv?=`j -zy+izw;++487N%cHff6=&*Aqe_&s33|s4ya*=cBSHOuJbTIX*%qxY#%dI+zT-)>YE;oxndP -z#}Rp+qNLaR1M9Ee5e&HrJn9C9)E!eI-VYYH5^eU1Rh1m`CBDeCDNGKh#9M0DYrXxK -z^gZFt>0XlEVyzHoPOKMyVSF*QRqDlfKIq@}FRiy)pQ$^rv{+DN4;`o0;2)=)9l=i@ -zUUm_E(55#{ulp1cB*k*akEP_Z8U_V=ZLe#HZL)t=`scaUpw18^trgJr!dceAS1uM;TSNMrXmWFXm;EizY)K2X -z@h-iBJB)o?yEqWL^!>%hOQ1VjuWE29K-_zU)cL9-bdSLA=Qz^SyAyJnG01k~YN)K) -zo#?HUWm4$aeJOwxvP!{brCWF>N!W6Ufz_I>p;kuOdX?>qtt1v{LnQtm>$u*^B%MJ8 -z;B6E_OIb|Y9$~kcF=vjtrC7zvj2v#kxb+ms2M+ -zto{;qQiF++`3CpAu%JFCn@_5VssEehCbZ>W_I8_zbtK*Gki*3NFErXn^MkeWI1SFd -zUK(Q7r84eytd6tfJ<;GW4xA=N!AersJ33$$4{l;S`X?hv`6N<0F<;ZRU6ZPDwQ6Ox -z%#%)=C7m8;bChC4D9c{ee -zCU^Y>?Ivwlcak`u(4eiKaY8Km&8)BENw9hR6brNCrK;J|C~!4geDvvT0Y{8tHPd`u -z3lN0fM|ET#L;f-1~<$GN7{KP^UVF>CPqqME~&B;}3dycXTz5rK{Rmsdn8Q -zsEmvu{qo)69*@`s+(XF_`7f^8153 -zRv+bMJ~ds9=OgXK20S?yMvLM1gjP1MG!TP0XJS0jOpJ3}+N!CH^|xV|uV~tcj6BKC -z{o;faKi|H^{EveG>IsJxlX?v1M6B{XFov*Bgk)xC8VIxV6NWGT$5HXP5I%9-B^CQk -zfK7|lb}6J>0`K^^>v2VD#qj^P%mFrT`#^!Dz@sNLH%n?af09gU{#tElAGg5P3qd^0 -z%gp?sWTI)0%?Ew`YYZqqSN)*ZZY&=(tf^tG3%E;eUor3r^WrvPZ5d3^=wLys^4{Gj -z%oq|Jw21t_f@l(dpQ)Q^1tr!s<{-o`v(M8P*?BYU&36=!c+*|@d28aSSM5T)6aBRD -zX~{0qw1cf!M>EWx70^VvbaGyY*Q~ZCT@!lyU+E5~DtIsT>|#d6CwKM6MPmI6x+y=dhU-)C%$CbwEF5=l^>c4nFXkR;>9E3*c}~s59;e`K-5f(!tmL*_i?y5;YFI_v9?E+ -z20-81U`kQy>C*(=;T_m}2Waco%bZ}MWx^I4Mnd0HNNsdsaXyE4sXOfCoC0m_H9}HxvKL9VW3J7d{(D6*v9b -zc0|Z;-1~j{Mf&FPBCmy+F8Patll`#0{jG=4PyJ!yUr?a6xjx_>@c|geLbWMNTI3!9 -zn`HyX#9B(5ag`8Bmym8BfxsB{Ou+S|YN{83% -zNeq{0K;g6hmp2L2E;v3?D>{1)TVmj)AHG@a{Q{FK05c%JVfKdr^_Z5``wjp4Tihdb -z_@{0unJq$VrzZQwJqE8P;)4$1b3X;;1<+2t&0gTu$`qxdUT>p9735MA^${B_N|gF% -zTsDY#6Z-z`u)SvNmrX67J4wS~|BnT)RTGKv2xKdb{imQnisx5+$n6OdIl -zDIRD%UmcE>oTtUR9PHQH!+-^kz+2>OJvV>oxb98zWaEJ%O%^NtTe3LPbS)Amx2D%7 -z_({8?-z#L683j9|;UE{x(Y&o18$FvF-I+M@7nyoD{NX_;&>yG@!c8_^2#X0inU(CZ -zr^@k2JzQ2}N&8G$_VB{t_t6LMybnCEuLKyY*|`o~i<7VjCs+B_BwxLU)_Hos=_KDn -z3UDPAbxBU%5COSbB*gz8BDuY^nA*f0CzC8@`c^Ww@4NNC={rkL3`?h5MBbRrtK3OA_6 -zta6d@KY8ZvQ+0BjXD=P}mkR=q>htHYN7K8ZLv^js3qNe&D@Lh*Fb4`1+@UGa;ToKx -z!XQ%sjNTffx-wrJK%@r$TYeJ?y*5A%r`h|{$2jAfrSpd^_0AFtqJmr$bizsIcV4%q&ct0Kn0GCDCiVKVnRq%>ndfu>< -zR*3t55Sxj%A>Jl&=dHW|gf59m%gEEbWzEE|I(=U-WrVxADh!0WdpU35u0Y^ybx_J} -z>+vKVf&Fn2JNPx+KGhIWxlT$ZL_5!R%M4e~#m~DYw -z3pq`87)-jDor%@-M1GEMsSsbwYDBQvYF6iGi{VMNGpns(%;=FwxFzZQBDDOTbGJ8y -zI5a|rSv4``Ezqpw3Ndnh1ZFgO@c`W#UL`tDe%$pd -z9&CZyV;J56EOQJrrXr&D8u~zDXb1BQ -z73Jx<>0TFI2?)Yro-8oXU@l{h0S{ByE)hllotRYF7~Qi!Kg@;H;p-$&xRVyn`Q%6t -z6t?jnX`8KnKIJgLpTJ8^tei-Hi+@o?tM{U#_BzlP_wQK6MA?7Qohw);vZA4D2b4^7^Z(A=(&v7v -ziIEL>Ps?RAv*<+`o5|+-M$T*cydJf>x8LDe)xL5{tVf_X%7>`fcgA*dYB$Nk6%INx -zc}ltzBwTkv_82T-5~!~o%WVBQiuQVE8VR(he3>1uiRIJ99;!%}Fn$~qzDD342(X83 -zugS=$l@p?aKLoV9G)27F=I+WwwBc58(RQObr!SzAM$q~wlJb~OD&>`C;SvJ^TDF|K -zUzA$H8M^C6La6mU>pWR1(%fMEHWG21^hP1~+|D<%WOqXL$EKXF6nHNv9thaJ;G`K? -zeQmX^CZ~c{PEwcCdiXQ57JM0MTd+ -z7w^Bkj~jQ@GLU&gVIR2zZ7<$mcLZ^~nIiR6@2)G&QM51-y9J-hon67yfxBl;Nk*D?Is!Uo7mYeFJb8K%)d39J@*`L|}|LF^bAbTY0L=PwhM -z@4eh#>O3%ilO5a5Y15PG>-ARO6VnndJjQf|E*`EOAmb`kCa%*~BA6qy)AbU1n$W67 -z!xMze_g^Kh;_o@E5_qTe2)TEf?%(y)4ere!qnZB++e^V*DTnDARL%OjG})2$^%tLHjl=L(zFIJRCk -zj)$iD7nWu}LdE>t6d^|T=8^SGE!v|y3UGD7ZqJaZ?b_@@yZNhrSr@XY!?~X2zxqj^ -zAB?5=fzr^+mgMizXRM}$=U6zG3Q6{G!~h+3+te&xb@p6Iw=oUM?>3#`XP4^1Uz66p -z!XhV-@nyUAb-lM6Si@T==lf$-bptBL8fxim8Y%XKR2d-Qdj;3D8WR8sW&I8Cbu -z|3uf2qa?f0D`Pdqs}6A#YoLEwPBG9Qen0pZ``ui{=r}+efD=T}F3&WdP1j6CRn6kM -zxT=uSi!BAg8H``PLS8$ErwCnv?e#~G_^ESsUu*tBm2osI)T>0h%C -zYO_&L=ioR=Xt1L6Cp@Vct>U7pxK`aA+U~E(BLl)g?ptK==$Ct9Nb`la)JC!XT{h&^ -z4ZNA$ZQV6Sf|xIMII`AaK2{q2@7jF;xBw_3Ke#ct-15oG@1?HrnZ>`uZ2yd(lr1|q -z3iyMde!UVbG;_(hRjf{f;p-l{|4q0)%cv0CF(0Tr|95-atQ5Yt024O_HHp=fCf;%7 -zL@@|tQz)MebHUvAa6Axwh%j;Et&s)%T7+inqaXa@8b6R=sA4Poug-G9LoxO{O&gZD -z)LbTrNqPVAuW^59%q>n*0bUsnm~yfJ99286owsu^xPiI0BsjZjn*;P&7<+X@TN} -zbEKFUd_(Lh?e6_@Kw&<#{zFVl;nW@ODKLQK+H|t9>3q>_5Rnb-l4TYfQX?3uvZIj_fU|fP}WRi`3D6d#1>w7il`IXj?6nd*01sw$q`KcdJnA)C`8~1 -z@I)(Lp_=NvvqH(dEcozO%axKs@xyy&l|+Z0VuM#rmF%-;ToRya?-%`(f^}Y@#52~8%)SQmOQ0x&Sl6&V%RUuPNty91W|a0%%XRp -zubpI2wWiZtI3mKIh_bfC#e&r8ea>(=RVz1cBw;PKdDHCm@9_S(^9L(!7jUo$G}!y0 -z=`DG}7muVpX9PnaNpt-vZYtv&?2It9Be5wzn4&I78MNSTn2=Mg@qTJP5jm*=!Q4tP -zfxDqn&kOk@mAc|wti-HKy_OL)x{L>*g8jVu@IgT6%}=_m^rDGs;lWs&b+q<7zN)|C -zLyZ=yeTylMLS{EDbzWdrgBtON;+}q5!f}_vIVRwMvdW|>7WgyhBh7Ku*4^nh%SH^otSyU{gu5)DW|Ay!d1|%K2!B#a7YhWUjm22YyEf*kUKf -zowrFH)zx9VG_E|lm|>ZMePev19N -znL`WVvh~C+?gdX?O8Na~G!LyUgR#Rw7-klrSY_KNBm+No<1LQC{smCDh=wO_o+EG`o4fSJDo6AK%;=b6bhKg6Sp -z_|KVmGmwiy_!z6YJcD3Q2bdMd??p)l_kH+>$C*f~WAQ(KvJLz8lDU=cpm* -zk-4b7?9R#*gKw-Hz09JiIIXNP7y7Mmb;-K^@63n6`dP1-JX^`=opi~x$b&9ytzEyr -zuRwWV0O`O!YP>Ovjm2MlEDuzoK?hz3c@h3%h}(>;QTOj#cxL2W-BQSM8+;?5R@@n3 -ztZwZH%R~XO~#QBo@?OX`>eg#t#}1#c)*$8n+O2u1UHI -z$>-f23n;LUfsT?F&-DxGGi*8c?87|CU3j@W6s3RIuv5E0M;|urukMPE2Hy(b#F~GyrsD3+z{B8~GVg2u~)pOiCgICv=J2_~z&=g)RZEAvd2l4RTmT7(jl}a41sQkUPYzy=QO5<=w{Q9;-qm2yWxdy#wyt|2&xS1XO6?4E>(% -z>DlLW%x}oJ3u*!d#QiiusgA!gNGE`#6w`y$ng6uhIg=tMr&Utu9+@1WoCK*tCC3(v -z*$mU>p7<33&x}cL#mQ`7O;WP|r!lYwy3Z|hN$T}7#j^qx%yv{UZdTSDyI^W#g5}#U -z)i36|=hqz0WTFOl02>>w@2l2`{MKif=Aih%nk6Ne=wm}`ByO|}zR&Ahqf#?xOd+_k3xy|`}6zRy`~Y)(X9VdEJvZ{G|t(tL!`mG5Lh(WyUE -zZTiAl!zCuZ>g@~Zqs6JlIm!kNm=Q^zKmKQOXUUSlU0YnTrrg1#8AJ%yE=em> -zp=!kKVx1Tv1$aM?U+9UQeDfMF=~aIa*)>4q<=~i|-^#2T`=2+%L(Z;=2qX*22TLmN -zVy+2RF)TD?y6pYWt+p^oRv_PO`Mto@fgN-~R*K8}_}O9qQ>T1bW$nP -z)z|IkSj@WlCDOL8_*b0(-R$WnFcuDwl=;jk^OCB&qufXL3vSep^Iw56msQB6hx^vl -zp$#=Qf*$a~Bv2;WUsi>n=LB#9BGwV%KS{NZhI;z&DO_SK$Rc#h|nB*UL&+Dcx>gF8tbJNlk=yb)`@SU -z{m@1#t-~p75l;kNJKSeh=pp0V93I6$QR)URd=|oY?p=n+jZ1lwul|Dl&PCE>y+>H0 -zh?TQUJZg-cnC@F{N?TwH)9zk6eAO8*!yC*xZCVm+aR&U{VS0eaTJAcwf*kOJZU~m -z&vMuEF6eKS?ffT6v!0DK4OmtRoFaCCV{m|agnDhQJSpBrgMYW;!=xLo)aln?aeYdw -zJ}TO(cp$WeEP+Tc1#6850=w -zh)btb5dVZwSyP37ufrhNPMt+vDWYTM=4qbuqu~i~N8mjKM(q!a$6pQDZX%vtzv8RB -z4pn1QAMWSm$zQ_~fkg_Sc7E4~q}AcI67w>>F~zc{R#SuShQq#9BLjAO0Gad*lE|5E -zV=WeMEnMLIp6^6FU>wo9=rckb@=hh1jLZEFl;|UrW>NMNM%17$o+i78C#GOTf~|Oz)s}d(#}z=0H(U334f!@}Ch@ -z?)-iBwjN%ugH#$d&SY`?_D4v?ObMR-Q>*Pm@PN=eWZ&|l9JeazbBpTl%+P!6M30~J -z^CE6JH?J9&p;y&SKSoQ0AjZ@YK%TxvT -zMHaPI_kCTF_vg<4<6VGVVmY`tQ3<#dy2!CR?NYEeGk8a1eG^oY*w{tKuo%jJ -zhQ>XCWE?&|Pe<_xSPmK;U3v-Q7dZjX#sQ{ZY0?-0{MB-UrP4{;Jy?Add}S+DBo5(M -zcA20haEAG$tA;g_UzoU-ny9hcixXtE@$3Hlp)`o_!DOl{%PU;08k11|;rwDNzBz&Y -zd6CXU_Z>Ra2i|_cnBMQ8L+$RA%#3FGnF7JHR{DBG&vA)RxJjyx#ETRis|zsUw_ftR -zG(G` -z+;k$RFYvZ`fI9+NhM_f%49U@#`eV -z(i##oC`vl<{ccW(s$AcS -zri|!0;8VtvNSi{x`=r_dc4ZJh(fB6(ttuYLy{~?Sr~jN--mPS{ppVW#`fsnX6LHL1FdJTW887v;0T%f}I9Qq?+T -z>oNa*XH+_6_rGh^&j%!I5FnbM#Tf5>xH*#}jAzp3 -zCCxxvu36$Le*D_tC(li4;?=)kIId{20dE%Xu+#(xXQDg7Hja5qgs86^-g$&>DV5~c -zCKJ3F;-ty?pIOkLN!u4`1A%MPqM29iGzVtN%$6;NnK?vvkia8$UP&InJz1yk0tAvYr%jx#{>>IwE@xua0&- -zx`g1II9l-ha);g~#m0fs4k)DAe$Z*mVD#5XbL8&MIpzBv&D+c|fvwYDfsfeRJ`k$a -zvCU|5MJvadv^5X3Dy3Tu!ZgMKjxWjn^S0BHIfW;Y5`^+L<0_@^Tr)@SywZv4Xyg;{ -zo9m(|LQY3b!K2d`#9KP?q9AWUf$_Y7uMh^r-CaV}uEY`dvlHFL<)5eWOc|VwGA@~E -z-mnK<4sJkVN~*DR%_$Yp%o3gwdh#!M27IzdY{ahy;%~iqbKcsS!K=(UGk>_hsa%y( -zeRH(A6{=SefY*8>iklp8ayn{`pElJ*HO?Jsbqky@iSh{bLTl4dnzQ%q&VZL%Xl6cF -zOgNfdvC_AG`;_Bu5~0EIeCRI+;>`{nxbyPKm`u-Td|W}iwi?#&x2xgGm}vdJ4VzDf -zOn=p6qxW}VTe$KRlwxP7r6oLB!m>ik;-8#48AJSiBBi&i{cn`~pwcQEtfbL4%c0*g(&iTD7D1pC0nI4= -zMMUisSF|=o$i;Tg)t@YBWGqhx2Gn65l&u_&%w0UDa?*9YHZ`^3xGx3#?V2;{TG*aS -zoW9juQwy1TY$vrtNzfFr-&@IWpQXI9>mi|Qpe7b=6)Rcm)yNb+HpEj9FM`xJHGpSB -zIG>m$Dc9%P!qRF}{FGl6u#{b+%ni-V3chC?<_!^}?=qXcmYE2>4MCxAJBbq(`jJV_ -z_+uPNS38}p<(&H!!R_OhQfzFBrAa22r_-8o~94a -z;>+4jA*=j~r2I;Ln7`eUKvQ5%ms`qG)v~uPjVlvpanraf>5#odPxuJmY1K_uWH>q4 -zW|@liC~7Zg*0vD;Kvvd%ES^v#TARwHi>;x$75SL7~7~EbZBWXb|pU)s$EnqK3H=ybpqi(DwA{1b%CbN-l3euMrV)i?(L?bhfEC -zUV-83p@lNBTpx`h`Cn1%yIZ5B&TP-sr3|(FFvH -zu~m|-mWo+XUK;J9k>R9^U5}lUuw$T1{IDf`2nm!gaEjK>qpySt#YHJXY;TCKg{vY6 -zb`qtfXH*vu`;bF^*Q7%?B~Q{(c0|3+(T -zKh2_BNoQD{+rRJ$42BOtI_^=~WtXhXH5;?vq|V_tiaC<09*+G@yFo*{(bYBQ(VMvE -z6EP`0&W7)r!Cyo$P^HEwwYAfPlzr1Z1G~+wk+@|_^!i7lI!Nb3?k&m)eU1! -z(t1&M*p#G~0&?_XTv1c^u&i2D#{b!;+l8YSC0uEKnIuqdF>~J#wG_@3+^G~bTQSMJC -zxE(77;?p!ZES&N8?W&m}?#+^q;9rk~%r1K}E3zzvA7+&4!U)sAXFB^gPyB^iI$gl- -zU=Njxv+pjv^oe;OZD{p`%$l83%0pR6m13+y=UMFuM8aYcCT9MW)+5Dklc03{bN=_2 -zB!}rVJ~Wm^Wv=v|8T|?#+ts~>op6-zaN!$mJ2-oaxkqAMK^|CpxIwum$#a(3mvwTgURosynrgX|mBalYos -zOysR3MP04RptndDl=kQLI*2s8DkMj18 -z{^JzS*SxDhEF2dk+_21 -zFT%OAZ0md~o>14R(B+lcUGyw?jG2C@I{m6LRN>KF2V0Se-`8EjThJ`X8HFhO<={g@ -zsWq$DloDDOP$@L<-Qrw*NRlxg-=x1%5wL+juBHY@U|*dr3QLBDDK2YEqj;>8YoCC> -z#cyKg7r0Icl$tcQfqQTrY12e@6bIuG=gD@PB@4{I-c>T;RVA@qTf+Be5}VrB`)oJe -z@F!Yc=2F?Ybakbcb$>=eGla`i0)Z7)uGlg3Jvb -z!%uOT5-0?WN5-c_rsV$Od0eeu{CxDUtHGuVVy!W6xg49Jnmq3>1hSu|P`-5Xe)`m% -zjFLNT^)tC9i$;w;7*S`$Vj8wV*$QZ0gBJ%oN>hm*@-0r@mzYd|2K{W* -zO$zu<>{atjsSaKNY-krfgjSC0{pePoWkMH2xVn!7C^HrE530_4+fh*sepOx9OF|Gu&-uZC_HnbzRjPGJsf^{gb)NLyd=Ee8WC{nz42h(8dl_2?=)K@_~zuX_V#aAHGz5}%Y`~+YsaHIgBkm%lBG}AMk}Uj -zy@<*xQ2Z}iOm|S8e)%m^uM$on1j}~QU-cnsTfvFv?$KhIozZ>+8)<02zvt=ZDM1hg -z(RHmp^;}il`;Rn;wvpqGU3_0r -z4QU{0_*B}%5%FNtzxHMtzb`)@0M@22D@U#P1MCT_` -zzPu3A-#yp9HcF#N{Gytbz5hyYL$n2kPfnbTHp}D3r;pE)N~58pLO)AfEgRSxA*q=T -zHF`v={!OJKu5L}WMOiK|f1d^x+7jjbd9cjLFg}yQ;C*-x+r*>u=XWSZ%BhS3vXb5DO1fFL<-RA+++QeRz -zv5VmI1J9ODq|vp9qigqRZjise*?YUPQlsGCjkbVx+eB4I&2qk!ie>~UMiVe*p0_yt -z%<1=@O+%$oi1D4F;$3W3#|Du;nv#vR -z(Y(r4IvYPEJqS51HLuMECubc(I#Js8_(*c=_-xeO6NV$mveGDP_?hkTXS7|&u8+0m#x2J~e~UOh(t_sWnCkj&XSP+RaS@u6Lgkzyq{}W|OTzeH_%-827v*>l>dfKr>5oOI^ -zUr_lRk@Vd}ikh)c`dRwrE@>cENNG6A|D8F{LBjWp`;RM3C1B;qrQr4N5>PRIQK4SZ -z{%n_Nvf?#r`QDWc=K>0#9&Uq&De#uzR%Ki-w#1Z>V8*aS%tGOSae*h+IASATup$M1 -zC$5s3BT8~{Gt4y+X%MfuqUtvuvgcl*TL+t?JNH~9h9U5J+f&-WiP@^3pMy7eH1njb -zb3VT&A5)-N-{m_?guMxUGBy`LmM3Mn9evz0fO`Bdz8Ac;2AK4@(vBmEXbr`3D!_ -z2|dBdd4HP`ik`#ijy%M_Y*6}vk;CTnP04@$pud1-N)^`5o%UfJJWeRyF4J5sK(&0a -ze|5glv-IEd33q-L=oeP;-SyT+pA&f7E=t*XZ?Qtu!*bEzeV)9E8Jcg$9_>DG4IQIe -zl*JQk&j|FbY5WOlw`#yzg*aB^lL2YlZNkpb3B|a5SZ9S0Ekf#?yM#&(@)ozSIFp)N -zcgoP`NAoX4om3X1HqV=V$bA=cmqp-jIWyCKx4n3LaZ#eRFSti&@VStEDN5i{*P&R9 -zOVcNGL>aO;(LVAiJ-+)zL+Xfw-ZQ7d^yj_P^(`ZyBnkrinlcLuarb*)FPBI-8Ll -zXA4or{UAN9tmj(7hR!FLksr=beo^t>cqk<%qc{KoyrY~a+EXPM5tnBazNq2Yuzv@U -zu83eh-e{7?G5Z5&B?C8QRav=5bt?1fzjcUSEICPU15tArb(NvW=2OvUN7>yJd@=mh -zH#7pIsw*XgCy(YVObn=r+|6}>?oYQCsRTdm^?Ji142g;d%;i)o}2Cs -z@@v;@nw*qY7%dspXMJ-T@v^A4v_B5-3HADNQ*B9C{|r6PzjW@1Mii7YhS(yrsuB!U -z`!72&ML!W1Q%|Zz9f4;h#z1Y~LyZoz5YAq2r>7TH3m|jfrOTfdeddBu%=y7@vGN`? -z%1ILrA3;Xz^kXMi$L{&Wq7ld$`0nA0@naLTU`h=n3}3nW&WJs{{)xgnZ+Hh2^yh1< -z`U?l>o8Or9jAseZT}t^}A!_0MQ(otabqQE?)bSjJcw~Xob%8eG*mdIkaB^=rN=M!t -zuj(Tlhnu!@z>69qX$xM5g>1zKuORNS#1a4)yyu_I&Z!gcHEw+ty`RJ~@4L_fBQb-u -z;GqFT-zdpL?{k-4K -zEpH_n{@Ig=suCibikz^PN)hs*DHwHIBm1In@i%ir%zI^Dd%JHp%5D8}jrtk%{Rdo* -zXeBt3zJ6$hd=$a8Q+rRnBrk1zIgt?9|`2QzhONF7=VPw -z$dcw_PaT=Ram11q-g#J=j^oV12ep5U0Musrn=r=5>Xo+O8WT)q15=lJK*t4#4RMkL -z$>_L)@DCr))lc<|aMMC};hzV7&7&uIMi{(=`Smvvmlvj?bNN#lM{o`SHY{jz8=BpB -zP6V9Oe;C9TT{LV}QDev7>+CRJD-C?1XdNtpnVK&JXKNpZsuq6P@}l)$-N&y)5foM{F4+V#CL0oX9j5t|q}JQ>vNt{OsrP8JS7W9W8(u&4(dN#PqtpYUbM8so^#8 -zB_uguou(YDh1V7$kOL(%Q3|N6*}9{3gOJWJ3wZANzjK9X7UE#risBtFN$+7$&;9X+ -zF`xk~{WR -z&2P9COwBaV&NyFvj{m`4-=-{0BCWz_I)#*I%}GYr;de+B9p; -zB!iJG0|N|y@|0K36>9q;0mmAQaH?K*+VHyBYqD(ABo6YdYn)UOcDn*>up;(k&s|(g -zJldz)TL}0&nHQpj1$>nl_F~`9p8UC$dB0i4eEcPS+M~p{-fW~#3D5x9HPtH3o<+4% -zhWe6d+24H}PyRS28~~mE_g9)-yQGhj95eCHpkj~t9)8DxzJh_Pz)V=cR6aoN`oNcR -z3avrKs;z}#uz+|>o0Y9YLkQLE=YK+xne?r+ -z6O+C}AsmQ|3RYCxJ*O+dx)p{&7oUIRWHPCj1Q(yOi5LYC$Qfjm(%GN(%`9!yEII+( -z^}(m43DyiPO85(YdP&X4tG_ot!&jb=uM)So9Nl!H6{khdXJ&PI0EM$ -z*8Ze{K2y}pYEdE46Isi5nvZ>%kS}DmJl|(()_l;~D2b#D&h&{yK^AyLrJTY{8(kCL -zPJOOEA&S%AixVux8zT0^I(49iE=@($_iG+DBsc$#J2Y`;IcJs$w-1d+wAGjYF{N=t -z&jgBw;u~?E4-dX(nDG6GsFPzVW=rknYoat>i4Ol8yS#(@=9H_aRAY~#C+x$=Zx$v` -zsuAzoj33nUM{^;gzZz^n7S64&8T_?az(Q+)@1(u)~(;j0!BpdbA}3Q8QpT -zW-|swH?@c|yfePF3zM@PtWZ$_xK2%fm|DlK8g87X>kH4RXy%vmK~2xb@t)$oAUYzzJy~KDb71^=|923m*=D3=?N624)qchEw -zpb1>4+9@pL5eEz&tqWZ-SB;-DYHTzX%)a_G*03WZl?CJ39)>Pe>O3s?@N)HQJR|*^ -z{HGnn#hKdbB3YvjGMd0E9E?3SR$j4TIL&_ayMQh2~BQK%D+#FTtp+WdQE;b`fd$!xBP2X -zYXKY%bsm>w>ojpO5*?_Rd2Tq~U7)nB(9wo_;Q~K-Ku2~+X?dHRr^-3dZ}#|T?VXjh -zQs!Gs^Y{$R!9HaG)lu%Q+l4@ZkS&ULxu=N9U-&ICi#(RYQOahi0xk4OjEhi(md=N1jum5UIvbgj5gAMch&<`GKZ39(YE?`O^0E?1@rb8)TdLYH{kjpkr} -zPn?tl+{3KqyD?e|ftMi_;@ncHU#3-4fN%~xr`DBTa-jj+o91m&VvxN4d(89%>%Vt) -zW{XbpF^+?HJw4L;hS24uykRTcbh6*Dq%dd@OXptrJ==Y!Xt&t@hjU#8oo)BThC)nN -z=q#YL3XGR!3b-jaLq7W%mDLgUdKEK;p3oUmDWK#k&}-^Tq{2wR^i$o@TRgo=Z|l>O#26#-x%dW -zOOswK?N$Xoc8@}i4iYA$%!=uyNAJA;`5C>`L>@dQN=Tql_TMIEmR^AG%>=}Kc;Aa2 -zW#>m`w%52+tLEahq=)@-e2yj;LNw7OVCLoF@{rM5l0W$PrTLL6-$f3)Kjk}G1*;}8 -zSdAF05`O(pneTudqbg{dQvPDrjKmO}<*^6Vm4 -zd|=Lc=bMIMZf#SFYNqxL19^_c;F22|a)|p1A2@n}P)OOJP=WCCndtij9&VBD6foGw -zkxo)X`Rej~;Fpdl?H~h%UeI -zCV%tm>ou)o%Js^X5@$B6W@zf6s+uN!kJVK@gYV|UypF3U|AwG#zlZC>SN6-d|D1HE -z@@{-Rce@@$UVL1(=UBKQN;rn+w(u4|{>CM-tgy=r%i`&~!HmpsXuDmElOV$OP3-4? -z@@)iOA_E}VQ#6{q_lDA{4XS_K2dY>ywQe7?6r{b-a8~{Qc!-$Il8mI3TgvZvILPOT -zCU)QTL60_Hy|Wtp2NB~BImhedNd)l2@q;9IPB3nLTQ2(*AL_;pI-QWfqkj+WPz>#B -zmY)Ks%cC)A&s?d!@Z!4ssQN48Y3c(TYhlvfVC%D2P=1Wxh{3br9tq)9k`{aKjtpIJ -zr+ot1`Up-?Sn#KcYo>JI#Y<|ICj$t&cYN~fvtR08{2pbq)mYdVMUYr)JK7dUP1y`0 -zXE*hOB(CInflkQas3^0gP6S)#+CzgEiw?hd7-{6<>Q1J-irJh&ElKew|>F&7D=+}$EvZ-tO-(PdxsRPv$3@KKw#4E#MMZ|y_1+F!kArX?}^F#*xS -zL#Tz>0K);kl^C`|L1*DMgg1teYp!8`x)nFcTcVBHP8G|cG`OezB4ux%)h6>hw_cJ^ -z7QS;7B$tVUGg6aNFj8AeH5V1=80aHmHY(uqlyw89w_k^K>Nypw#i>!niTFK2c!-`Z -zvx1gD@(E8aP(4EGByUccbV47Ur1BdI6X;5?Lfb3opZ(U}Ex6na)sr@y-$X1nEGN41 -zucDv-q_I-|6)pdSjBf!${V_TgzOA_bz(LCL4nkhX)m`45BLQW9=wKA9ty+?S+xdK- -z$4UmvVVEyGjzGk;&??vy{fuQtA*t6j>z^2L#v8$+M{ar=-2TiqbX_}`hg)oKX?_(< -zA4_Avm$@+)u5kS~z9&TJa$||Fg)G=D6qaPTvKjB@EVhh&|M7jFo%c9Kt2*O#WQX%@ -zx?x(g=5;9Dk^CZJ=QC~>n5XcBBHFs(b#-7v<{ytk%Xsce-t$`h+oeCVw9lP0Z0!Xz -z-Ze=ibCh5_@cKQ_F|Q1oiD1jtwKX)pP|u0jTd2x@PGqwLZY3&O5!;{ -z{f^Z?Qb^^u53ve?yiH+K!fe}U9)kZm#pl;Orkseicwa-nP38nOUO=0Q-022BNOMtK -z?{XAs-Rt?&n|X&Gucg#b2h^M(rW1|04z0L)vJbg^N;PTUXp6^V^}4|HUlQ}Wpc-c+ -zL`(FbPm^n$=@iwNo4J(v@Tl^?%S(Gfp||`3hVKxq)9dK2>T~8Ol%%@UtyGM`o%q6#7$U>)JmIu2TUqq|`7alW&g7!%|M7H{VO4ca -zTSU4`5a|X9X{5VD1Roj%K}s6wk_IVBk?xWdX^`&j?rsTb_|`ec_q+Ia*n91jGqdKN -zxu#Ct)Z -zbvumkHE*YO4%^4ioh%{~NK?wP=DosfZ{DHP%XUK~zT~%{-Up7qW|F%uF8c+FW^Ddr -z*&w!`3wfn-sB-Y7{OSBSB*FG6W-z+^s`=pOhWX55r&kTZq3NRD#;0G7Gu~%+!+Uuq -zcS#KA5Db9o;~+$Hy$`>)c^00=@X4hplX{ceO1JlJz_%qtYgB@3Y2m$oQsC -z?w#xWl_j$4o4&Cg>`Yg4JArHHx=JQ&_e*>?Ko@SuQSl3lbrFx;%!^6yPYj+Ur`#ra -z7|jvTX~NR%wwe{df2d|ymAlUo5!UKE|K`)V~O2V -zrGsk?@E|4x7yPCFR-SF+6*($)WXfuWB4zr13PktPM_S4)y~{NxJmRw#6M`D$XYyZj -zW*kscLr6~Wqx_FW9hOUohv|Y7^=`2J>!Y}?^_IPPeBEji(Nds-RWwK;Zn7!Gb&M>) -zd!IgwFeduG(($4)HJwZyP}!&*p3oA|E&Z;X#JEZPLGg+Gw4Nm3usMg~%X=MtNM#hT -z-VK%JhVc}--KcU%Q|*Vc=c~hLsmKU4*fn$ -zsCI-m%^*YAC^Q1D6|RLp+5G5b)O&rCwRn?&^hl*ZN0KEL3TxeU0q0E`72P#5&(Is; -zYQ^nrX!T^>?>|gw!VFkSzsU|^{OD$_7O=_#AVu+jdq)s`{PL87#4w2E-K}iIs|>RK -zWGxggT#Y%^B$HOxCr;&ChjRuJ5dI4{KnVEFN|7F2+tMF1q7?rvL7kI#o&!g@2!i4q -zI#pKSHE9LjmRcZRk3(2PwSAu&jfNbFTs9<|lgb_M+9k?XOyE0$0t5V31$z=J5>F>e -z*9*L<8eY%08vKd8HU}|OM0y4&yBsK=NqS5684L+D^}CyB5*TTE+n=A~gL?(=nr}`f -zxI1c{{W7vP`DlZZ>griIY9u01i*q_l)2iwQe5K>l1I3Yz -zPtR`RcPg^f%YHKJTUk2GtQ@?D79>c)zmIpeVdS?^A8jIV1V2r2d@`9)Ym@z?W%BvG -z?Yu{n(S;@mXW_FD`)!gKTAFq#Tq*6Dp}2%D3b&GvdsY-*@KN`nbwJ^ZiuJufRX;TR -z#%S>3z085d-DN04xg5wKh3%F!hFi9OH1g)+2JB|DupqvXCdJ>={k$*PEChESI=9`v -zmb(y|7jf1&bD-vp^$FSN!@`PoC&q@Na-vd@nAx8)ya_L`{fl+@q17i6swWnk1rwxH -z4f8kyoV5=V%V9@3!PN1ui1JDiwYyM*6&^pZMS)jZO~w4NMu$wsJG$Bb2t_1R07MSN -zp*x;iEhi&tvEWAJ{00o3e}1OEWEqmxq`Qa$&6{1lpK!+YL4L-_9k=sb2+|rzrG6MJ -zYOcT@{1l$9Zeg=`Yg(QMdpSwAr;_l3rCKoi`P(wGZw~^Uwl)yo48X43&mG;S@Kx&1 -z;u`NdO93Pf34=$_laKOWVBMn7dSvoJG59+>D%m2Y{d?gp$Dc52!0!n?g!agWDM(VP -z@_xn2^6!P@xrHn`+<6xu;kpB$M1qEQxy+Qrv7M|bNaF>u!SrTvKQf4(uC&E>03KV| -zFnQw(YBGDiaiGRosawqUikdV+pcSBJ7g4lR+^5N0S4>*|D4J|_J!`~+rtL{8M8?N3 -z+NG?`runUNG^lkcpA}D)6~V@*=j5Xoq27Lz|F&Ne>hjU-2<(x+ZqY -z93;`JPCf7rmpNk(->XFtg#ppRqAK=+Y;fB#D0)jW@=swoA-XsiOEhKZIrvPv*C}Lr -zP_!m2jt<9yIp32YL;-%R7FmY%PBY3Q#cii0B0Kb3vFp!diK -zK)kJRBWL1yLdLQhfffQD)e3QBzTqZ+x~G;7fW-lj+IW=4t=+CPuguO3a0#kZCBOg()uLnE8jq(1w@#$sL -z7`$jQv>mO@QEqvGpzVVCE+*Vk2a+xgdbl3edN!rCfpSjhU+Ovj&ok-O;C8Hj@aOSq -zZJ*9!SAXF?b)Yo4t&}*0=3*OC15);ygwx;5L?gYE18Nbg}i`IY__f5TMx -zm7y$syBZdfW6_rZ7{BbQ@ak=GbTu@Zpj~I{kcLH$JVQ^=C1#MC^{V_CqZV{JJszE| -z%To{Tt75Fe&xpRXr7$M!J--tD{qzjR9L;1l(+?=E<%)@qVPwGJ2@YZT!B -zIt7OBM)@ASj-PtPI>y2PqtSNBI-X+BT175p5TByH;EJ=S(#lPi`CnC;MKmE3Yu_gq -zCm9Wc1X^!AKmH>sEPc|LYtuY~SJvLVMxnMk_PU)SfYvqF^WVR1Ch$`0PNR+JexD?Q -z3e#YB&I)Kd7*7A}4o^CLna~yj^{S03WNWn -zo^aMTqiQ}6#{T*15TDpEPtVpoO3?I29S;Kx`sPB2ERWZ~duY`X8xSu!_;;ge*std&MwVWDcC^~Bh0 -z#BbGc_I`=xj|_aPxVd%weI#V#rKFaI}X&OFKX4rAYAoIb5M -zlP|zbZ=2-$n6LeW^b5TAH<lvq2*0VzD}`S@vC_LS`Mk7mOMF1I&9 -zCw>tB_NBSXA015di!Pq>^{VAL8pXKuE$@GIM_>G?{V90AQc=W0S9KB9D+iNtlf9#B -z-gMyeTsp#?o5)y>^IP?&A#&yIZxB@_Mli$($Vi(&Qp>*Su0F}43idsZImG1Ah6{Fb -z*iK5VX8{(FaU!t>aRxi9Z1hEu0B!qYsxe-IT1Xq?8hn?9mc(k)-~VM`F&9;7&W9DbBLrf(Jn8$3aA>`8W!W -zg4JTlpY16=ia}cG8pXk$ABhYmiL@_-0p*!$5uq6T%ga>K`&Zo}1r)r|-cMjLG -zKn^A7fEo2|CqQ5U#&>2(f?Xg_U7uO{Xo(HtT!nP6y~~t~y@)Z*q6Yy>p5zK~L+rFNpr(zKc5QBUm-U%jEY`~GcP;PnRw -z4vYGNjhYbcVH>H_GBu2*$jTOGqGE-TDYF_XNIh3@_)j=ijO7)Ov-%S6X<1x3$fyV5 -z1c>Wu?!ny(*vd*I*u_LmZIAq4CRmXM3oU;B26*^NwnQ-(j{>w5c4NUc^3%;35F%cABUQwU8P*i?O}!6iP?mnAo$eb3LvLGB?~JRA|4 -z$H%hlgEWtWi-x@+b@U*c1(#9PebOO{CUuigK;Hh_;RhJ2g}T@jqfYKp_BW9p)(a>~ -z*e+BQ_}ro4Ly|0CwLaQ{h}b1$FrbCZ^DDOFfP1msM75xrFFyCyLgRRwj{*tafsopH -z*l>i?Q%#Oe-nbL~O` -z6;WPm!Knx#nrk(=w06r;R>NLx~y5?Y)@zo5&B{S=H(5 -z9C3d(M5W#6wi$Pm@VPyqnVg_9^v-(}sg&NN5t4B~-<22-&n2+JLYToMZ9z_~!*?p6ww -zNlyqk(Kp9N4_+VUl(icMzEnjHay&m2rL(-5gk}2`Yk2#T28bQGafpzP`Xz_p0@%!J -z`76f599+Z6$KqBjpVxTZ@|g9XlKlgeoaVjM2^A|%4uI7Rk$B%xaHhIL8{r4_q087H -z+jpPOC~-#=C>Y~k1&?y@mriyQwmvtVMU{yj4@5pqTdqXVMSF@Q$rsT1&hDj@&|d$1 -z9usMiLWw*5Yx9%Hzo0cB7%HhFHnMo`;K+LrCxO`r`Kf_{zQ(6OaZk?OA93DRfch7|R)eQ%?*Bn^M~Y$sP_H{gB)|~lB@&5R$8d|!=TMMFn|`{584H4uxiOJH -zyTX?$+&&{VHFH!oiF&P~XI7X8Lq*WC&cxuUZN@1-+G`2eN`0)k{-=0!hw)Bi3NJVM -zeQip7wqepcEb^Mf$v#7u^76PGbLY69Q#vH}rJMNo^nbk)KLczR*`Y)^7_&k%7M*gq -zuOYF+U<(-T>k0p2@m`*S4EhWFDvcR}G6P;U5BeFn7DH6YM5OS=g1X2oY*JRUWpLD< -zP8vStZ`MntQVUb%E~5eu=}$#$f*UIseyhozYw<^+jzsscNY6U&gcc~PE!g~$0Vy}H -zf@0!T)nY$=vmPL~ey0zcOMP}~!q=IFeM}6V3Y<&eGmx9b&y`~dVzjOKfu)^i_W#B` -zFL_##oBhEpOVLK49q5YtPC^+!J-v{)or -zu|fu=Y<~X-H$vs|Li2%kVr?J-k!8CYl&U$j@22z&bfw`6ygC=Mb3{7!z5Y{xaoP%O -z9$_1O(tu{tMv|Gxv1P+?P;ydj>sg^d{QJ{4tlFzg?fV_8>1MQ6?NNl -z0{p-TnjDI4ljERZQWBh_AryX>_~juXp7uty6d@cGpj5)_FIBG-8;QYvty$?KTY|R3Tg3V|omSL*IDAqb5HQ-;L?he>S@|U2Lm&U+r@)vU5-y^i}GcHCz`4LdS`G1|S;+E;tva -zHZh<())y{#;HNX?=V-4iV^=wHiOhcQ7r;;gAn#N)86i>z|1%nFeAH*P6X|3!rI&?B -zA^%gA#haprj$b|!UB7i$PXDv5@rr`RL8U|M=>@~ro|6TpK{Pf!9Y8X4&4P(sIuPME -zlekX(`8K)Y%W9|XcM4;4*~9-e)Dfr=qi>GJ8Yf8~S*N!s3@)duJ}$0_d}G`AntbTP -zTx8Bdn{X>zL{cTJM01RtVn8l}>t_u64j97TWc8rBK+=!Te)cz{pz#*xFHWo9LG-Xi9r%un~5gk)H;no -zNhH`&uDR}2?FLWlB4Bc$cFIb8Q+W<}<2jMq6`pxI?U-;XSWVIf-hhDfe5jz;KibaF -zNpoC6a#r#ywcR;_c;Y}OFB!L=rxrRxD!l+EgZE-zc()SL3jbm-JmV(AFsM*0=&71C -zOwfmOM!AdKNKMIy0SgUu@}4;9kpQL+QC#3PdnY9+y!f->9Jn08O8!UTtlj4nqR~L{ -z7D?|xGP|;ESd=XW9_P50lyMBWDuLh>d8p`M5~R+RpIQ^3c)jw@$}KiDQwUMt7d!r%(>kRRA}S&l}p% -zx7!*g?19jRX3gcpXK27i9{}MZ4u*LnBqAa_@K^uL8p)rJ#jAPW%53OW7>>G}xszaT -zxCkdo9xH2l5!vn9k)@UVMWD`!`S6EldmEHlg_=^%T=I{iX;+frnFm%prYdFZ5Cupx -zS1%kL?_fR1NvCANqZ)+6poY^WHWX6l-V4Iw#ro~UxUA9j30k8WSQ|7&-~Mv-gyq^@ -z^-X7aflogN-K)7{@=pyo@{6OX+d2s+Ug)n@v84t4=;w;h`3SIMd52*8lig -zowNg;@Zq{mSp_ms;8~VV1^OpJ4ub=m>ZB{RkOMjIr<1l+Vu8sQ0ggRvqne*Kq#p$##8!6Vf+jek+^Jowwk -zgq(R%%E8G3_R0GD)O%)(Fd$G`=-`$qSns+H{r0vZRH7m -z13Tb8_wlMO+UFnLn7m7kwIH1nglm@64lCEDbZHbRwh&!6YF?Ib&1BtVN(?$$YUe`X -zgiN`7-?|yO-IwCpe@Po32XDF@-vvC|cRZn=$@&*G2h3O3|Adqux8&0h1oT9^+9Dlnx1tCn4=T>5-;PnW`#ne7S}119~t&?`s_oa&I-i)k|=@~I){ -zbx*ta<6Ww|)FxrpYkd{5XG#C0ncw~OXy)Mjei7q}4J7&#gq*yPr87N}%J9ocgAj#+ -z(vC@prVVtozdhZ~1Laumen3U#nU(e9t)c(r+7&aUG{uG(IG{@9fB8@cfds%E&+3t{ -zWI^p`p`-WAQqO%d;S@aDwjpo`M3wACe&H0V`Wdu!_n9Ua;Wwaxo_A2S)SbiAyaB)n -zcv(Tr9l4H4tObsXAT=67QVCIK%2sxry_yi_*zYJVqww2dt+2pcElKETD{`YFpx>jWg&0V@Hy -zH(2ePe2|{_U5U23gp;eP3qDEu(pXmB@?l(SEfUAuntM_*Jz#VtoG6A3kW|r+s7C4X -zze^-{zaqkMiY}M=vlR7aWPp?u_^B!srB)P#_E@w!=&3OQACs@w&&R9bF5D%jaYu?;|;1*|)qTM{N^Cy7*{397=PFQQa|(1-yCMR{G2e -z#iKp31rPwOswk -zniysleLjWrT=%WR5n$iOnYI>x`%fJ?(>bMM+T(lbtu?E{UA=o@DR8+18H}a#vhaHX -zTzRS<{AYetrXqz!5Vi?DV5%R2xkKi9M0WkJWHwir`Izr*rM{y+WI%;h;SfmGU>38# -z5=b6#RyP3joj|;?;Rv&#l$TN5t_j@obMCjVYA~xZj0q@;;gMZH3tM}GAljr=P>wJ* -zSPrx212Yu^52w8h;SrWt;zx^32vPx&z)cG$^OW8D=93jrB?zu$XIreDu1gYi*G;jQ -zI|Uxf{1s_pe6ac$z`>GdvrANEe&?L%Flu9bPn7;dIx@1W=t3zCQqB_yf-20VpLanq -z)H8XD8+I&XF#@5O*z(A25SC -zi+m$|2BiXUo%*jt4Qeb4p=A+(PqBe{A}SbfdNdyJCwHTg2@||mxMK)(ZJ!RP|IrN& -zB@pfUj($V?rLz_1#$4WybhL@>h}C-5wsYg%w1Fma5LM^&7SAAzXu!&(FR^L7ehaf4 -zI?83q$fDjHg$4x?9@f@Wk}OG4zJSmcLRx&nCqTbo&UyIXvTu8|j{ROUBFTY}A0ul) -zd6L;8>=AjcBR>lnJNeYL8FC1W1UZ(h2_cdpMts$}ZKwa=IZ3%X^{}4SK4aF}babP> -zc6={>>$|377kS;^1n!Uyf+2EcxaM`!DGO3XUzy+aEDn0N{At@2FT(VO2CM(solHZm -z9LAlcB2#2lX`YB>2`lyn&&RJ7RF^;A$lYcs>ItNp6WGCuhsVM6w%lpngdD!?j+<6AV -zdmPjUiqE%6o6X>XW8TFE1qzkk_Sb7%JBg$W#eWrNhx8ezd0Gvioxc^X*Olf((Gu&O -zzY=hUFpdIwjYq7a^fw`Ip4&g#xoU%Cb}WmvEOOvcJD8?wK8lm+B&GH>$G&6Dv5zi@ -z6ukM;iPrkp;x^ymL2*o=WxuWM`%CcTH)5>F6ilL^cqD%WNl_4^Q6s?m_E7kPmqTJI -zRHGcezhsN<&Lj228Gx1y0K4#_2k{Gx5KBLCI9!_1*()c$S#wrrczoBS1q*qH6-}C? -zLNSd;hgsC6#w)pu&N%vbJt -zP0#rg=@weEKwjAIF2H_VhJyY;gDS;%>bq~m2ZB+_KhPZ{5}ORJOM~MLY|RAq#xmMT -znv>+VjlB1|W6HE2dM}p#d0AZO*18WE=d|t8{hDPObP}iS -zSyTh4Ki~(0>x&r^CW_ts)Ps1{65&F$h_zQg&GH;EphhU*D#i$x7j4gzor&7CZpt5x -zQgz99uVb5-hDP2rJQ)NEK_tfih=}pav5=gqlP-w?YKqp0VAo{v67-SEJsIAFU75O9 -zNJ%*H@3rVeFeMV&B50GK`2^sm6WJI0g2F!~7@xLHc~SD)FlK}6?Y3E@V6XG*(sEu% -zTpzgMq(Ai?40|;qbU>pbCW_uy8FM59xaV(obvb3Lpbp-e2DfJfNorkF6(ln@mkh_p -zYCNVMLyJu??=K{zW>5KbG*i;e+VcHgqB2?8GC9{xv=6${c_s7_pz&4fkyA$FYWv=( -zi5rx%2J~)%RBk9i=qf?$md~(|46aaMDO#}(Gn#}MZtRI`YcuipUEnPSV<-|-vp_j< -z`+aVH_bu}S%&V&;R^BodHb&2W3+iTaB1v+ZCs?BD7WxSOs{U|Jb85Qy+QkOCP4x+% -zHdt4?PlR2lUJT?yB}KLc^A;a<{L407)(GQc(&HRQ^^~fleH&m!2Gby=7=^dR&P*p;y0L71VbSEPu^m6^eRc -zs~Ew#E0gdALzA(bDsZXZoBdxBT5$Xj&HKw{ZsP3DXFPc1cn=KPsTODJ81yp$$N_g5 -zqs_#^BTbR2t-~`+)(?b|4Dl$`2Vpd?QmG2O<^}>1XqdSQG4tfJBl=Q!Q5znw@pRqZpVNuZ8T0C0Sth!EJbbzmQ4 -zEyqr~?7AJLU0mk{t(m8>0C`LUjOFgEO9%aMl!N% -zRF(I}fwtg9ax7+8+)bki?ti~x(hZIivy~W*@^pEZ{^FxlRIIE(PsMpa)pWOSx -zNC68b~av` -zX5!zzQK9Ee+js2ncT!?gKQ_R@e=xWol6*A!vZ;akF|zffua|Q!%ZqpR8466UUkizD -zd$ozw>kU!*R`|N;icM_+EtO?_&t33dGK0L=QZwz9b82Ftm+iPG5_%~zoT#aZ$gUCih>>2{Q`hG9dYDm=7~HS^Jl>R3 -z&&IUAY~jC+k70HM(Qjz+J8xg;92hm4+^;{q3K| -z830I>>5xukbObbEHt{=7hb59bSxfqEDmJq$61<>NMEs89o|xTymtIlkT@ce7({b_( -z79ZsFkkmRkv}=>Jo#a{}B}@m@3J;Dqh%^fF!))t``W?s5Xhx*k83i{utB7?QAQf4_ -z<-|&=WPI~8s=(WNjQqB>R&kBaPyFcX?YQ5Oe*;mdLxO!i$vN1tM)rwBfE!*k$*5jX0pihvLFN*SpnZdOsF75Qec3t~tNAZN82(A3TO$ -zg8|=kMS<8)xjvV3Mh)Y$Y>s!FUWt^TN+1XhfE*d~7FnTXO7367kIv`9V#;zN$$rdx -ze*EMY1ly)B!~z6a*2j^9D{?Vhk80u>iKtimPknjH5fYT#4oqxHNB%tfA1iS_ohyM*ygRMsL)py`gE0Wcq$}y3?%(zN;Y^9 -zw|d1qYbXOv6H+x8vOx$F&yQxdRL7hfTVok>yznF}iY4)*g3 -zwuV7usq|=cc&$Lgpmc`L5{=>%fVEjvAtPNU(3FPF@bhtb-D&Eqd -z53P%GKWsZVURZ_>#=q_CsIIs)TS?uUAzYlZvuwdM0XEATVig(~KavzYcZD7;U4@9e -zlj-^!0la>jK71Di0?xapxUDmUA0M4FVi<3jSR4YfNVCh?_2x9OH!JQ$p{7&?IO?JU -z!K@8Ep&+dWqIw7h>Q$ouOeL8?Ae0L}is`eRHzs@Ls{`hbZIlHnEZd!nZmO*ZE+Mp& -zpvNYAmZ4Ycv7-Z7!gb0K4H}TNB(V6F`zu?=6MbXmOhu<5dA-i+D&?*)N`VG*ouQOT -zHDaGn-G1_q3s^TQewUJCfVaTig;(pVf--x!c;7}le>OD#7UIJgqG{TC!*E*H856sk -z>(vQKKL;lPc{1SqG+Wa&?Ru@?3pe4@%Dy=X&|`3Uc!MTQ%ovkqZ$MhA%W~e^ -zCm}*I%p62-yQdVo+?d`)WGjYHbG3MQ1byDnaW-@vgq4#AbP+hjER3bI_e#_#Uvs`J -z1f8DbB2a^g1s~DpDf?^oPESpitpeR>m2WSq>Ak{q7pc+cfj#b-j<6bzqrp#O@lDL` -zxwW;QOQ*+H%xwa&V2}nTQcnq)iTu%>xwrhVRH85CKGfB6d?eH><{7Cep1Vdzt#&UW -zsOu&CVC`-?B|+BaTkGKwvSu|qRX -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 -z$%gx55uShVpjY|OYFji2Vq4S~@}!Dotb -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 -zWOin}>vE{yZTki3ai)=Cj77KX{ -zEko6tJp9lqc55+a3O#zaF77vd5tRszveb-6wB@{ATI<5Eg -zy04gWNpEN@NnZ_)ml7j0^aN+Tg=RSby*x*586IAzP&dQx9Z`sL|JDh;rxzGiF8o&&ZPdVtyGS}wpQd_ -zXf#iv#HrBUkZpw@t`Rf|_5BodyGTT$*K6w%^^1JeU`>UpnI7J9b3m(*N9D -zIN?c>^^OXy{}&qdLj$t#Zd?G{+pTE6NBLRx%m^fq0Bq`jj<}jb -z`}HbL&6rIxHqTOpSX0~mEBMio@po>(Zi9XQ%BH0==OuweCo6k=rNJ+{q-l%DZr1Np -zx_V*YWJ5RMAe%zcVzkneHd)fSABl67$njT6;Xei$h2{Rk!CQa$&NfLSJI_t=$}EG^ -zgo~R`at={q7W*GkeREh64OaN)qYqMUrTG(s)AE1mCVAAYvm+!XHL5WBQ+^XZ=e -zss6n2l!oN|*<1JEX%QD}mL4fVIQcMc90i>ah-~#US@jVzbF3@`ouU!B`jHOp<5oLW -z9&p5Z(Tq>7@vnceOZ?dPGs9BBByN-a3%$S(@=v_dYF*i}n%>g; -zjH)@HRDioQPUd(t?MB1+_*Oor9)B%WyqGeF5(VGueZC{EgVDcJv*(qU?r}r>psc5Lg@O4$;hoIIDJw-DRPx_7nQ~V{|TozlXxy-#fxoNAPJYN@-M)>Jn -zTEc{Drpn_#+g%H4n86Xc`D#f;PDRInrOYl0x9pVX^rD(+*YaMYMu3@k%Y|?JQ4OG9 -zL43xy7VRJ;dE1^%`ztA7sb7Q)b^vFOG1nSm{_C6Ef9Wqnc$L5^yZ`40>%el+*b>N- -z00$~u#YE7xZY}7Yj-I(Eq=@#7!5h73KzxEF{fOHf_rnN}hE=iWhn%uO`D2Qt@|L$D -zeP6}Ld!K*;TVS95{1>ntgjb`vDPeYAEmFETCm>SNmJzM?J;I9^_WqlxXRLZZG%z=X -z9|t+fyrz`6(Xz1hjoe;BLA6sHJz)F70&~+mHC`td7cd9F(U8_mztpg|liDf&Yy>4} -zfxllvH}xzkw!?N_Zn5`$+OVvNwX5oTGgJ7LE+(}dQEligl>UYAv_*7;-GXfP){+j{`1QR)m6BY`&8dv -zgS!wHY^4-yuug|ueD^ncRw3*Q{u)D(um#(*ChV@Z2^oTXdK-My_P92s_9cY16_u!6 -zB1(AsKjIjxr{m92jR5}*xF%*iZMdHskmabX;K{(9Ai0Y;hpd>k!_`AdbOWBRtS|mq -zaxQ}vA+L7YCsF29co+mPnC?ikD^F=?@pmd3KQ{uJ7z7RNj2r=X2cA?)AvDS;R7oZZ -zuw#8%X8tyMN-^|N=@Yk$(WM*hh)A^+?cUv$A;(ZQXuUL)n#v8kY@4p0oNc^-!GmD6 -z$Prr0_q7>tdh=rr)MC?EsggH~>f|yI8yaUs%Kk~@NXAgzU-?)MPDH^;+fO2ax{&pS -z?JP=RXG0;h5;x#0D8*U1L6M&T8vy*_qIFVlV-dR3pGoypzPwOp_*~dD)=}VE6BaN7 -z;A&PiNR`{+;IH`gY`g)wH#z?Zslz8`WzSyx!p4WlwG{hC2kw$k-k+#(KOQ;Fo8>!y -zEU$8QYxaCGJj9nN*Px}=nPb}MT5G-3*L(CsIr%dHhOediqDAwbarB?hP*BfJ;!nun<@&$O54c~FkJW}DO17Gs6zWt%7?9iF+T9O)Jpg#7LVkaO~F -zYEBwz&GMLEuy4=RFT_nwvH#NR)FdOk7hASiJ@u<`{!ki}ZR}p@e@)6Dj)E8-jCtO>p2NS;vHK(IjAO_ww^W@73DPjI$U)ieLI*@h!;OTg1BBx^{DIg&5CXwm2MNCXkc -za6bbQrZ_84$QaSyZ$nz{Pd>e|9OGu8D5dlIsTMlfShon@4~eBRgml7qw~k{(ZKtmj -z$lFKX10Ls~KnUz^@q_>L_D2JJ<~2JWP0>p1E-fi#*tROcX~f;{PU$xc6^@7cmu~d* -z4EkAPvAFT6W!YgXav)KQSH}@Y(S`M$Gf7d5M9_+)v3OzOejiIy)a0c8a#5w5~a5&{s1J!TZ>j{ -z;@)aqy@|eg8M?cm=giOWZh@QX{wvyj5lYYm$OJaAk(y-~eQFV%uzMxt{sr`l2pB?o -zj}%pK^f3?8_8B$%X79h0jd!{Kps8|&=~{OiS9qPHB$-Izs(9C3^DQj#jQ$R)0gxC2 -zd_@mgqv4!oU3y|sOEWfBJNEVjDt#M*+%%huUt=PS&`E&P(v;feGpAo1apdu2#iqde -z5w`(D=t9oEF*&qi7XVGJ7e1j*hd_1Klj)A-n|BIBq1dqr0OM+;wtIJ&pT+OaX -z+|BA5jL;dlA8KHf4Y)`XJE^EUZ;a^r5C)}CV-CL(_}z|*hN*DoM~wy&&p?%PKN;?8 -z8PWP@gG^ON+pUBMjj}w*kJfQ$zkoVmU_3B1TTxrwtr7-@Sh@`u4ZSxlW<}1&&;e@; -zjm7mVGWPl+sd^y|O1BJew&Wu}hvq7Cq&%q5@TFrz6RTA#h$ItrOU>(GrkL1paE%AO -zp0U1Q^p|ZY%5k5KELVa&`DC_s%j$uQ#}KURbD(>|r=3H-x$4AHtF$UnW5~^5VXn{v -zi8q1zD8NsvQFz^Xqf$)m_q6_LNh7rQ7-+SQMw$5jxEbS+pZf%GUU=CDBr=pqeGeuT -z31O^F;R{{HD=n{WbgY>C;?>lPt+bN*D>kYx;Mdv+%hMQ^$7)KO@5UN`6;4BJqE|K{ -z?0*1x4Lk#8`*it7TT>u7zVJ)j@IeHbRPK&)!OJ1r}^@zV}&v -zMpgT>A4>6pg@%Z-&*W>SNFY=uADbu#RUhj%pF?a{VPxjAUdYt+6yd9qb-kp-x4ozP -zmFj9xivh45y5XaPtzS1=jE`qz^vUp^O``kZjC!lSSy+ByL{7M&ON#q{ayP?A0&gy4 -z!yAs7p&OBNSIy2x`qqpJh0=Fy==qmAc>p~P2Odb8_@%o4SK*^N$Dl1vM?m+v%A4;A -z%;;vkw}=;FW7aWf!~;Ic};=I`{xb|yj(>p!@|JJOv%)TUz^KlheGBQRfe@2i_Z*o$(Wf^@Hc -zCbTrj;wu4WbqE=$=?dGxm`iNT=t=1|k0)Yx>!Eu!Lf5Rm3io4}=z=!YTGhic_K!|v -z7T*-3)x!vQ6)e;_^7PJ%%=isMX9?-Phz>iwH7=8VrhiO4?eis-KLoR?ST63#7KBqG -z;D#b$dV+tU-i_2nX$agv;nTLoChiBf8sqyWGWGOw5jlaeDVD?N*fk$Z+0uKJFZ7)t(q}^jKQ@$mDkQD=Rndn~)&r -z9SWS3BvMDYP7g5=#>0iN){f@7#@CRAkEX>BPRVFw_2iJnPl`yDNL;vFYu0CBf`*ic -znw{=r%iQ0gjsJkzr*@%y{zA(e*;)dAV~XLNUxFt-_8zHYbRH3U1tU;hR}>OT!9U~@ -zWcTVm8uJB?PM8d{4L-NqyVx>ndT`I;U#((LPo%#R%{=R1c6$54skiew6T33#*WMfh -z?`NnypfJGLRAg9=M!l(*GX6jn{=+Hao;Pm5|mjOdk$~;c50?c#pd1BytjtV{w`U~ -zz?^>rl^`utj`Q6l_v09hs;dV^Q(WOVMg_m94O8qG3r96!-Tv(=rx`DmolQIVq0{+r8gBx*Lk>(b7DsZP!g6(jUON>%Vkz{=%l}P`r$#Zk? -z6e7DTZoZXBGMUw$gVH1dG>uB(3Dc@Bs6E-xR2wLvZiun9nDC=lky3>yn?`4GgY=?$ -zHT8C_aBJ2Prf-bd%&+B!{?Ps<`yCg#GyN{vpMQGtB%2WfEpS}Y@E=VQh;LFr#^5OT -z_Q@yP{`!2CpOHtR4wbaM -z-rT=vf)PuLprnNf(J-rNV0iL_QNI#h)Ub7RZ&(uRac( -z7XG6T^xGfJR7>GtU6xaY#tgYQ9NH7R9o2P&EVQf+<0Xy#OH6Q8aH9z@!7DPS3ESKyZ&Vr&w9BOX -zwW1_K(T{pn@~uJqxAO(rDjS&x8zl!e*8tG$Zp+vH%y}{Xbl!H4PXbY&l4!xKVW{A(44J9hgS^+t9-2X|6HCz8L07 -z2?!}#KuA%%9rQ^|Jxh~{w@>0EKd*#EiziIw(D11jdalQKKe(U4ekAZhw63oQxzDws -z0^$L3g9gVUD7vPie5{pFKY3#`csU$yz2tW7AQExXKs6X6!U!();(?;$&Vs*q_UT!F -z#~HGCaaC&(KekycG}jc>pP4{=(LfH;ZT_?E-B<9qS;3+Bi2jbHU?{u5Z}}TBnn|c$ -z`KPd|+EgY$cNDw0Y<8@qzlx0PJXPVU^!NdAbYG^hQ^nAf{6*hB337^zsZQxtEm`%w -zDmX?JqNEehmJJDcQH%`fw&zw$WlD;=Ma?N`pz!Eo@ucnc`a|&GbA?Pg -z)a-|t9rJ-uBVztHbC}$~rTdM>Fp}eEIjl11<^+zqR+!gblGbP3{x1X7PLcN=c9G>C -z54(xM+|w%Z1+q?5u|ro%s)o<7{&rc*^ZO}%xv@ZX+1t!Qg0)~0Bq9ouOZ>Ns<6MyN -zA7T6@cW7I;<)3i3$zg}6R6EL=2Bo+AoDbU<+4X3StU&!)3iZ+4mdqPI0hl(dgg8)F -zB@S+FzWN$z+pR(O{2iN>m3)d06+z$mhyvsvIdClzDYw2DiO~Y^ -z017eaGuGX>&<`iMPGxb(H~j@d2|9>4d=KA69 -zq4`%$HdG$Xah9U@VybynZu`@4IPeSK^F%r9Hi>1MV*hqeQ1iu|hco;lkmnJTg9sTb -zd$xKw$$Fw&H>_wj$vkM>s8~9y))I%i=Il9iW#Lo{gf08Sl1qj;3-Mk@>a_hckaht4 -zl32_T7An*i2&G;YZpfKGG^t4+a-*#1kExtDgFoSg$OY!hjH8AWNo!f;^x`b~(%f*5 -z?Lk|nf~cZ!WF&$K?NZjA2Za{J8a`2iG!mkuLEmU!6s_j-0BO&vU+8P(3pcN2NJZI& -z>ov{))1ll_%e!$K7UGc6>JaLJ5I~rkz-ks7nw5z;!+S3Ei7G4% -z>HtDn11n`?mXEdPV~<4xl4t1ov6LSj+M^hZJC2rDZr5l&5C>R#?=`F?qmCFLF8*PK -zdkQB1az5<3L;3R3A6avLj8J05@Jyj1x|Q}07iiB0%JLy!wn0N?vrcX4sZeAyJ+F{X -zS4-Zpl{ev|jhC?F&ZWZbIuawdP8p*^-+&{=HF+~oB6}f*j;$f=W%Sa%fBe^j2jq|! -z-`ejipMp`t&FdQ@tb=cwoF36jX|OF_@f>zg`!$XB7x*s~lf~S0G^jCdPQSx8sQ!Av -zU<>k7Msc=^5`98%I-TVS6!965l?6|;hVP+ -z?O&!cdP`!NRl<_6pTTsV=%~uOE06kSwJ5&+<$M^F(;hE*h1MHEfz_Jdt)0)u;G_gM -z^8zIJHx*~jyH20zW!W#l_Q_CaUNCLpxQ$D=p<*YqBKjM?Rh~yhEmDGUF$bD-_MeuN -zVoF}aHk*vG#KseHFEjqsgo-{Nc-Ez;EiI;IZt8EPQ&X-6(;t3(cCZ0oe2(zSwMd#U -z0X6W%NRshq->^zGN8WEN#m$3-kwpzM{colF|D=2Cjjn!0^J28G|4rOB8E4i-=cr4| -zx^@*&z$7r7e%~G@?BbMcXhIYx;3VxX=Wgp@YP@i-@*USdAnYl -zc*jkxLD~30jVQJXwk%F4ccrD8HHaDPQO*WjDDmFA_hs+^$3{ -zAl>m@Y@@bp7CyKA1Fg{|!#z)n*mUfnU#UI0j99=D8?pQ%)zmto@Ecw`b9E9HUw|=Z -z7WBbmwtTt7Lme3D|FiCuh+*?N9v)PG(8KVS>d`-wzLUw!OMj0XI*{Cxvs*`9P6L%@ -z^!EV<4X`nO##3B69KO-ry3;AsTUCuz`H9Y&ff!~&uKbaMWWwX++jHvug0!h&jn5z%k>3m(ccO)0D?;fYGh -z>xVa#Vj>L}p4RBG`0ym&FeqJz{qt!$I}_I<$VQrl*&0>Mp0#ICJz!5-Uxqtp$!57ex$c(z)GmVTKrn<{grs<}+0#b<$#ZZk7+4n#HDjSd$=v0_Hu5ug|>E -zNEcrQ+A{+Zy!XdHCk*`-Y-I0`(>7B~lvR43_NVDnS3*M5SPPYel$KKxS}Cmw>&xKzdScB!C=vd6i7hKu -z6!VG%#irj};r2b`i{O|upVoC5q@?ng95dI$#i0D_&8U~d=FiSeG_uu0X3C;DQQ>aN -zU}90iG0GBD!l0tfw8qI$GAE`;e(ErWphLA0wZ%FoapPNelAmYdh;(;|-8lLaHWuFu -zZ0ZKWASx!A!_wq-wW(#>TIDGx#*dRPPP@pk<7JMr6P>mx`B_m6Us%8>38*l -zo>TvXRpw(Lgezh?UmF}C0jxy0;v-#5 -z%Aa7q5#B8H>`#2vTjFVji=U{wZJ@7Mq0g0zhJGaaP~bx5hU~i|S(8dgh4mNq*Hq3LHri}hE=Vo_ZG2Z0qY>)tflEen#=wl8p-qkOs;lmP21Nj_d}eq -zp(Qh#qy4LfRB@6DXVDv*f?YVKg7NdKxNk)<<=Odngid7L^rB}Q7b+onY29CXa7>;DN%i?JW)^BSxp1UyU>I+C+>$h^>ocFBMX6-@CkDAU+_(R?fM?Eeon -z%X0A3S7iTZmnfZQT5XROBH3P-e8PoN*Y;BBZLCWaaiR%ZJ5ng?im& -zjo5+A>{-1^UlIgjs5TBfbHjyETxyHz{DI=lf*(%5cPunm57}>Nb7-mDA8ztRAIT}S -ze{nV!eIS7?3;(DJyGFCfP68Ur$Ro(a4AD)VxhjMiR+U&0#=t*jOjL7_(fX*m1B{L% -z8LoKhlo@t?(n&Fi0!e#4m_8u#;l -zV7eBM#C;CaPeRGIG>U~yOz$#8ohQlD&Vcm5CY^pZMnt?8E9GiRTFbC46A?5JAJk9U -zQD&BQ9p`;5zWczx4iHt*=Q&S}Dy6<))nNT|>iy!&b%CA(=x*@SMk*)Ak!nU|5ZN93 -z5yC((4QZI>9Z5X?!O9Fp0my{~nFr9RJlm;4<^NUDLygeoxh{p3f_-t}8nayYWVI2$ -zq;z>0F!AyTbeX4G&bqa!SyY~Uw7v*7v(AB`?(g>nGqOw260S<2tD=U`TEqU6N>1t* -z?yL?@fLSUx-T9h3O~--$Zq)U|Lz=E09eYkJR6U(?nlz$LsG^t46g-Q2bYgxh1tkQY -zkl|jAGh6Xxs~8Ebjzsceeie6DqfX?#gNKVjpq{l9M?x&UaAkuQpbiICgIlnY6#X%C -zDm<|6u@N{+2VX<`8-t;CQfdEiXIo)(*)*)1dgtkL@pY13&!~DmI;Y!@Fql -zLdW`aC5*w8HXusUmb>?*(BHC^wnJD^sZ7VS!lGCFeW6H-y!SoXi>bMuX+5>x -z2XO#oFg(Tz?;#@Flbum*48-5_ZWcGG*E9)uSlrbz*2XwFWeX}X57LsoqkTS)haYT5 -zJ@!G}V~IuRs3W9)qm-ywMg7Pc>x$3mE=pKmy8B_q&z{R6k#CNe92O{C=B?Yo&K%g;@HgcFZd!-xE2T=@)n|8uZP=l?a_UcoU=!#Se -z45E`L+?Bc&v@}*-p;6d|S>Bqga}CKLzPn>iPXN#n^yHt?Vj+0zjhrhQcM&F-aMd+l -zJUQ^eceb)r@x_b=_$zo5exF;`AQ#bC0M*FDzRwXLTNx*kKFF4pyE9VEcguw2KRj*D -zNZm_ejk6c)tf!QEGjePXbfE`tX-Du*Fxsb<>h3h_eE1?|(v9#z6WqWnL^%tuy-Ak# -zvK?9!n%{8~8=+C@D1Y$OiZh{nJ~#r&B>pT5C^jSG8;5i1CC_61HZ971_A`9 -z%$WT1>2%1e=EsvmpYyBq5xy^l2BG)yol>u+GQobYCfX*VQ_Y&IiugAgHDRS>-`@W= -zl;IK4-{H}*@w$qC;#NdS&cQW$Jz#Wpu(i(eqxbazwB@)wLhIHn-qK24boXs2zTWr> -zv_&}7#I>hkTr%c-oIXv?`L3YRDR`e=1k#X!GV|>2UlCW1OOh9S+AS%;-JRi=2bg^z -zJd+Sg=3vUS87t5g0US8Rk3vLTJUgaX>MMa2AuG5kf5AV4FeJS%XnC3}ld{tJ(JWdY -z+>>b$HF2O7)?lWb#s&OXbb9Zfjy}#62s>FfIF#GkaA7m!Gn+)<48eH>>-mip{#V>( -zV8`{GkM?s+z7eGcv$rduU&-^GxqS`IP0*j85s2-!HwYs}R!w1nXlXW>(bh;dFU!_d22%jfqU*h$HibAi4 -zUtu(S3`N&lVR+0hVw)Ct{2zB9JE2avF$KJ94yW$nzb6d1G+HOS5pG?;qxkDcp^=lf -zRcO4@0Q@<4ZRT)&rtQH#Le0aU?0xJv@0_vCUnTUYXae -z>KPeBOvmTl6gszP}v88D9l% -zTy|_D0J%`@70s3F5R|&e2>=Io(w`6$UK%Gn>#w+|;@s$|*uKf$vP}9p?0ZLUQ!c5M -zkhgEL24#L?hh|7v3@k-mJ;(e4b*7at73-#RN8lA8()Bp96S()-v78?SPgF7^;8E+Z -z_SR`66{qlIQL@B>kA!sdkuR=*XJk1J4GLm)k(rg;BjwEYrikLNvm2RiUT>v74tXX9 -zcJms#WBQrQ8u}YvO#3>PV3RDbp>^zyu~nJznwM`K3!>q*h7!}ac@o2YAq4VgpEpJi -z+a>QP`(A<=#hveC@sgK#x5!LLFSn^g-UUnR=!N{>|}YowB%Q3#>8{-EBS!DvBOom?VZ&y!xxfQ -zV;>WD5pp9*A&S2=Mw`q>&zFT^84p?TkS;Dl$RS#idt2~@CmA-Edr!01P_u{!o#)Jh -zE-CpMd^kJ`&&rLX#j@37QrI^2oVqguaPvS7MV!+e4ljpfF(|g4|LB$GJ<71s9~d@& -zq0i5QFvxvz%0pWPL*U{**Y!=B=7>vtROx1oay8bytYf!;R`eJAnpJJ5-~9Nyy^*4F -z(ES^c*?)Urs{qm+0QL2+5+b_Q$0xzjgS|~xIvz3?cO!f=uM~>aR!*3|N%FQJMs185 -z0~Zq6IaEO^9C9r&yQcZiM5=Q!)X+&b#Od}3R?E?;!iPUn4&J@Ed9dvamlw1|O#5+3 -zUxcNkU$arKp$szl>3)%jvg2_eVcG7vLx7!dd#R+1Pi<^{6Nz7wpBf*ZK6yXF8R9Lcj&%76chd9q;x~E;m1ya_v>@TxnAn><5(t_+U6N -z?y)|n2ihD&T>!G5hbcu%(5@4+vgj$pP8f@^5IY4r8EnRnluLU$DhR@vSQiz@Gk>mNRWAUF3uao^&#JlQy3d*$zn -zI5twF%>uZOD5coj+}QHT|SlM_;l&L_$a7)Rzsj0RXR)cHWAKHC_7Q4 -zZ2c|5$;8sM6#Q%N3fzd9hTKjmvGxMKzduQUjeGwbtsML(@Hp(c+RdKg-qj0lT8J#k -zeOdO#{DE*HIlnFUlS7-HHe`-&r#hN?jB_8RLo1@w+)bwoX(cQ}Hr=K!+u;yV-V%`A -zhQhV`EY<@~JOsHtBEzm5IYOBH!wW!gI|8f!=y~$SZUQov2rc?w{Su>j)zxJ1W{|)J -z!Tw;9iKK_W-+{I-u%xALMX1kGTk-l1A!{2poglr&yRkq`T`UDiYZU1h_+xJ(pIXAQ -zr@h{Lu%-6JrmMp@;M5xaX3!B`1aEQ01HD`mY6D+sXj?RhT5hOqZL9K(4E-=|9vyn2 -zk_wZ8+-@_MALnZGv*R^6I(~`^*rNuN|D -z)k-(@6Nrl->TM30FYqAqK+>*y&W))5O$%A)y=n|I`uY1^17cm!hZzhYrzez%ax3<| -zTP(fP1>SdiJeR*Z9FjRrA2v%mC2Bj6j4m@ingH=MjR$Uk+A7w9@_d=F4<{TZx22D2 -z-UE~}3w~*!UVmx!AiEfCS+(Gta-08#{O~h5_QeKnzsGJ2(I}!)`afkDpMb?FR3*0% -zjdp&;e>CpH6$t8XPsb{)0|c8vmGl%11*+u4-c<{1w^t{>-13!ZA4OhxZ-C2}hLnw)ym4yg$8x3nxQyL*D -zTu67$Ay+d*qM)lZP{*CEGB%hFLb}W%?r3gZoY*zA{rQ*u -zchsxdadQn>P)n_bAfrE1f-!&E<&{3d?Eq+VQ{)S!c8?s(jak~X^#kR9F}HJE -zHrd}NW)k}?{pmShNJYPW&@^@`b!Yz(mLHb`bNebY) -zy^C*~auR+9pT6R=I1BTD6eXH)JdfKno%u`$`8#hAg0M2$xS$3j58h=W#O|&jXDgqd -z0+rhS#M4d~(VYZWFZ!GkITRE^17!M3(eO=ptdUdRhxtS~<)?|K6kq^N!+~(ETv33TtGE=Anx;ckR@45ku0`wq~gaG4NlIXmR(>&TScbO7b -zkS(GMfDzdJL|ea-XL_^$$>`7?O4HS5cW -zzy*;39jgvq_V#&C2&k+|Lzd&k#Q4bA}-N~N@}2>N);Q-P%W$5@HniHQh%RUeR#A0 -zTzq#m>r?L$-qgk#J)YW5see)T#%_l7SWq#l9Vd4){Ff945yM>FAlgonJI^i6pm$~T -zceWg<9y+(4+Mbp7Ai0=`UdZuwIZ`nWla?|r94~g}D--3-!A9hT7WtJ?uA@$+A1+00 -z4-4LNthMoDPcqlP*o7M&@%WOqvQ4_oY{o2P8jl+f9%yq?+;b4tu^dJP*v2w2dKK#q7_Fh>8qTH^;6dltsBo-FI$( -zKuT7twQKFwaagK%W9Tgu -zHAgHk-gB0Ao4ZOuHVJ4IkH0T?4GIzLCIb(y#);Q6EM-&|6hjOIY_I=%l2t;iCOoq& -z6_AbxkQHTS+C(A)J%tO~hHCN$8EU;`ccBC}*l~)fxC6t@u4&PjcsAOm`G`dZ4l4JS -z{G~9>qm{)^%zGBSTO>c67AQa#phYWK`Jgy%+o;s+pe -z>>F+3uD)o+h9ruZv1-3JivTJICr#!TqWrW^PK)%*FU@=@d2b0K5^{80SqXxQkZ0jB -z|2&G}OTp)i5y)f(YI`(rC=#i!Um25HV+^D*qVz0$ghL#wkk^wP(iyJ-CDAjW#|F=h -zuqCT+h8FGhX+mW`XHq8J&DCvNj^hIYfAOZg%ZAaD&hlGv4aX_bN~4ck%^EI@mq;(- -z+pS#NBF9qZ#JY^~QTo&fMtF9P?8AW<5=85Zk5ZD4$BzHNMt7lOXCQNo{; -z6%Dos#>NoSI&}`jkD9vD?8QW;<8Tip=P+@2rlmES@O->eW^i%v)o% -zPol077g;nHGs}B?LL`lFibC~3Vk{Xktwhd`hD5Qy5Dkg{u$8tVc{J#eGAu@~UqLqx -zO|plgZmPJ)he!AxgEvHOe&CfURD8>=0-clkBXNXZN+T -zg5KWX)dlA2vgZ{;DCnvTRh&XPNv&z}@tKB864DmYF7ASR?PVP}1}k4+VTB(1BTbpR -zslr{wSKumN^%%Z4%8Rpp3CMsh{b?`7uvak{H0l`deNE0)33C7;nEkewby?eA8SO$B -z*lMw1PYJJ7$oHMpFpVzp$;25&f)B?=aR^&M^Fp?wI4J)DVHYLhF=^6$AlKVN!kS(! -ze@>Y`*KW?}V4EM~Y)XZ8oE;5ZR5K#1w_G18V(G5K+*rv!0PeY -z@>$McL(k+)*B#s5TnCA3z7E440J9HqJtAdn)~ywpD#{OmheM=i)3f0^?hrufeFXuEAv&X -zj`I5t#6fNROT$W`e)A-Orfjb71}ou&>20?)E#^)%{Gqfuh#R$SUk1ZDQJl||+^6hL -z!3NS*c$I|PyS6ad$h$K*Rse69vx|&&Y8obg!TOfWJ9;GYqqQ?P^(nt;zV?>Yvd2K1SJl$!2NJ -zd4i>v4UBmS{2}t+FUrABuTNzt?BhI5-I{F-=f6f8o6~^0d{BuV7&jhr -z`w@&J_<=_vp_0ffTC$0cue*dgsm?B@9z~*4VX+6peM4<}cu3+#t>s7N@dnz4s|x}N -zzo2J6uq7N(Lp+on6#RK8%;#}}dyp~#m$gFDq&{;7J3u7>HZnuwK|!XeQtfpRDn^q# -zo_a^5%IZn`q-18-0H=DpJQd_m!d(6f%eNxz -zlrt+cWpI4C`#rLmQTo6&O=EP7S7#R`R5)#*`m&OsUOEvub}r}(f?EZEZpKFl3Mq`@ -zyux>|_{|!2k{kFDrIDIROV75m1hIQ!#fr=>YXdquErey_s9AeIi3yezEKhW*;d)KW -z&4))2whpSqhn_|1e9H1dvJ4B6f#XR;^>IBef(GPj2#;p`zw5qVU(v4qFXSdkMilqr -zgV(xJKPBd_Bsa8sJ*Y$-oFxA4GNx9~Y3H)ndDwoU_VRT5L2V0dPP@P8ZlGGTxp|KO -zE$RkQob>ZVvndHdA!YmWrA_M0ii{i7jze_cN9~6 -zpzSg1vvXfQESRf&l|JtrZ;ylK66h1_NW@fF<2|H!hZ>6wGX-(n4o5V!U+^O2NkduM -zv-~*Bp5|05=5G61wSX&6+7VV162r+ -z1eF-KuE-MeF8K+LmTK0=n4{17J;EOJIWIp(5r^crcb7c&t1~@M9z>&*pYu+=`_t$V -zKH0hDJ-yWcwKglcfhY>gZF(+f+7GnHfhh4-;)d+9y~W#M?Cb<&M69`dlQK&1b2T#D -zO1x(U9)zB(g4$ale32r5xuW()$y?x>d!B -z{U@4_Zu!8A&X!=nLC$^ICCR -zaWnU>V2qkfCFK$;L26#@&<}R<)5f@0gh3P4Irky6s!_2O?BrJ=wRXPHR^p?9EdCP5 -zsu(SE(ISmX)8eHHOAMDS#*zXoy#zMFH -zp||>i0`N7B|Iu`n0a0{aSU_o{yGuZ%yJ1nfK|#7CrIBu7kxuFEdO=E3x*G)P?(P)f -zo89I63p=}a?%cWeob$v9mz4-pJq>zo2l7EqhVz#Z&@X4SsHCP`YGilJ{JVew%p#DJ -z>}v0%4TSdL&jl@jtDUO|Zlh|Qb&kDQ>kgnVD6s7e1SZ8a(b*KrsmkwBQ&iiF_0MFM -zsRl_S0jtvCM~x2k52aq&s$e&9^SKcQkCP1jp=OPkMaC%>50X17I41?8JF4 -zl##*KteE6$rWEP3!815o*UvzKKa(l`?oJ0?Ol-5G^o_zplh?l;z!CIIdmBf+od!eh -zGf@x^!$)b3#@J9jk9!=*@d8WZ4!><%S7g~&v%sp#=%6P1%3{eT!evu!ujZj>ux!Sbg{}h=P{+e&R)o+aVwL{S&9rll!x$J) -z(LbL}gg;6#w#hZh_~UXPn8hPyQzS5|p-rZnWIDvv{H98@!958Czs+aV3#^?np2q{e(Q2qS#eE43eS_MBfqGS1hl==^y=l8Y?|tz -zm)PKC29M0CsEhnA?O--Ik%`>b|7sev?!|=bQGg5J*eSrSc>aD;7aXY254Yu-z1mCQ -zC?x-db9sFnhSYXf5Ps*Avh`MVU+-1P!_Py9Kh!qE)2B8NLmiUjapOsWpvBXERIfo2 -zdL6lm;yxg6rqKT{EAx*K-%UYoraicbtclM$@7#KNldJs}5fbU>_R32DYBId_e -ziV1LMZEsd5PTeV9(lrKD!vKmO^H#C1BM*ZV#U$XJu%gyFyYrcHc^@>qp{dg~3zN^r -z#XqMT4Uc@*$xGLE-57d$Tb>D>6WxuNxRs09gPqs$X>K>!8~fX$=O<#ou?D?CttL10 -zW{~&m52lyH;1a8t4AzgxVs^!7J>1!Mh>bZ#!`bmuk{?WAgUF>zY8Wfev*SE=$kg*C -z3SAF@WBdua;WrS2PKV6iq3N!l(=U_S*md-g#plMdTA(QPN3?_y=s0t}8DpfW_6NbO -zMy#I28)k_A7hAC`4|+rU8zLSAHhz80udYG)mM`RcYsBRP2rEw_lz3pcR*T -z0oR$6-!{{(@8p9+)Xfq<&ib{%7p<@Q>C60s+Q0(%@=>|M@DEw0+~pW^afM2u$kEQw -z^(O4U%aY}bYY_WwV0=D9j5m@Opyyk`&(GtSLA;~K@&V@1kRV0L*=%<`Lx^Ww#i!=a -z)5qy75zawFOcgEtZxh>CFmgS{NQLfo7@3wqjDHCs+HgA_DkYZm>IK%|LDti8`QLrj -zbT`CX!_ePyyc||*>@qv$UKIH7t=oQAFf+aB&ExqJ#PlCn=+PImM{CmtO@9V{@0{VD -zec7et&Tnnv`DsI`5A}dT_Hfc@2hD$d#Xc^gHoksC+5a&U^WJ6f7qzb^ggphIMY>uf -zDwRJse~mEM>&iG2+Vr|ePVpO3v{*}gU8cd;!|rrdznp?jpIbrmr-`0Z$?}TAWykAe -z8TV2b6u>qeNQPvJz!yM+X@f55+w{KiU>r}HW6O6fKH?}+Wju+1NFEYbzJ9r2fQNK6 -zi21!PN`BT1dc2}<;FSE;nJE@XD3h%3svSB}SSAD3;~cOC_Tm}0Ta*UxH7X6Ez`ulu -z0;UITr|jYD=By1$Pi;6?0q|B>%ODIwrYuM9pNUtP_uk@1h(cvFdUr+K$C9-XLAD6U -z$pP5L$DDUNV!%b@pTm%P$U`Z!GoTGBfWsaTxC6x3J@@!6Aby{&k0UL&w&N+>yYryz` -z%w%dh%?BxWLf8(;Y~nYlb@?`#q#ALXt}JON5;CA^l+ocKqV@k`4y+@`@|nR+Y%lm7X4>G&%DCn6KS*sA>B@e7NH(enL -z;}F*S^QA -zm(8GGp;13=c5MZkv5u~%AhQbWk=Bylkx?d0N=+-Rj?-MjLQWAB)^=C&I2tJLB?0*} -z5S+KZj9sK1v5|Sla;XUsa0Brw@s_Nfg=_w&#oOG%2T1uAVWk=P4}e!R-{DXm%6Z{& -zsI#TA>Mw4-oe~F?rQm;r-gF+7YJ}r5qLQYBhR1z9Kkj^spdZ7^LHy{wEt;O<;G+kb6iiQshV>+mZ4$2~HX^hHhhMSg# -zzN{wnfPLKe4;4wJ4?}#*UO4mv(Ox1+t!lQ!D2caw(hP|>spJKYgCh)6MlpA&0tU^YC>o@#TdD -zn~!l|&m>w`rjwhIHS3d1?0mP7 -zHLO-_Y+bpO^gy!;&?VY%{ugKQ04sc!n2?;7aVn1tt0Tv`Q|j3tz`pm}&oBJtHPZ22 -zm_Z>AmD@CK9l^xXceqo9F+g+>=)h6x3L{6tNQMFsu2N$3h-<;cc>?tb>jK&ZA`7I4s65;~ZT#mOoInnQR -zhZRHYrm0Di%gl}K&1FBEH=xYrsDl=Ti5{_uAx`B0AlDHIn2OS5{Iv5;Xqknb-swV_ -zmN}j7B2#HiVNyp7unJC=HVr*)B&mBM$R4MrxmBiACfSVYBWDAPrM{S|IG^*sz(1PAY#+mvR$QzM9Se51e -z5yPS8S@3d@)rbVZcoevej25r+}LAjZyr6*Z2JvUGqDfrz46EFdYhtJh>y~bhHNg{+?LW -z0GM+hTe)FWQ9qly1ar%QhoI|?ZD&QSdD++4U*q7pTz3v;f}#5OKOK|_4Tl;s=8O`Y -zOwDKNs1eg&O`E2{+Fk`}ZFgxr53Hj#bpZY_s)4NigJCynDdnO}9%t54^FdERR_EeM -z=Cz%=7f!+4SKdiSuAolhWmn`n+0vQl=i53O5pE~?S0Z8|WpUJMRjvT*$oAD}lfG7G -z!|_#(O^#A*pc)@?e&fXJ1ad?yznz|5$3ckL!S2;fb?_aF1EvE3Q5R+lI -z>xd?r*0mm~Rf#!?y)5fHZMegsZJNg*&DLX+&@BpA7rO>fkg*HLB+l@8czjJmh(Kj< -zJxvCE_CHBX4vCwE%c#Y`XX4+p2{MbR^~G5G{lc6KALX`;9D*o>P$LeLf&?R{g5YNo -zV8MaI#2HRyRy1<(5amG|$<@y#ZSeEj~kFcZrm?R+C?|*Ga_1aU?(}Mb|={X6{c|Cm3){}p$E)=)^UYlstBs^xh*@2?J;pjwv%O~^_)(qLH2<|R- -zyeF=xYeC|xi{O-iycnSmu(axQy_`*TJnIfswpYDBdEJ+qCY~cf_%|*en;>+HDb5e) -z-bjr$fBnyWOFw`PJ?$X=GJ$xJJ@-6;$xhw2kMM5pbP`(Aaw{(Jzv-)qw*~d4XcYpq -zt5^)0j2=&UPS^JkCZ?shS4so(1Zt}t6GELju~mI?m+zap!G$mNL6PUVhmBrvr^R08 -z4G@hxaAI!rWZnfO%&3o_Dju$5(MhuW#}L8|`s4HvErtqQ4frSrzHoa_{s)|qVye~_ -z`opAa`1ydf{g|J{d(`hz37Ksn=fylLk^5+0q%ppA -zV)fv8*uk0mN-K&uH#C=jn`1WW=)HtbxL4L9)kJ`vAG$^U;vj3Y -zPN?D5t0O&RNKc6Pt0`2+j-0&-)UPa)8?-*=wG@cz=C|Cq+C;T69c29N7?xbA`L8Df -zFfRv!QxqSE>A#%nNg`1tzvpp%YYzaCHXsQ!Ugo5AHAvf8?K_g-_O);@{jV4EYi11P -z*LYcLi1`r^n7*T}E&H`^wD;Q;EeCPCb*~Plv*-gf#A4>3-dc9@$2-dJy5T!!teWor -zNF56Qfs3MDi-V5SP!1Smy!xX#h{tKkHXx=Ik3=J9T@&c62;-gQm`tB3YJHaJsq%vh -zrsK+r{6x%OC7ekzf4Tt;Qt4DU={8skvCt5;X1fYQObI$5>_h -zR8*W1!o&CZdiXyvIuH3dQ1<6nGS-*8BKJGc0%I2Tupgg7{+5{#m_qj(BF{^aR)oO4 -zrXgeA|A2?72)G8sv$(r?;-QLuv#n&8OvY -z75@*<`GYsGw_$QPjtf_X&O)SFT<@dkZIZeP97pIcDmY>CW%5V1{nTP0CNGCmP5Rl{ -zNWj=3Y{KeX|6#dHf##my`!_89zrO$Dm9Ty3)(=9P{UHidFTq#oiDJdCxHuRt#}dAJ -zO{s<3H~mhAztDgB&@cYG9 -z0k@E~V|8`Gj~;p%-izBdN~_sT=;xlZIW}H^427?bTU!k7gx;?U1;QlkH--^CoKwwq -z0{`|a)^Y)9Jul!%RkdnH8~T+Md^hRQldEU&s?i6cNd@+Q^KN*~gd4rb_cN7Hn4S8O -ze2e&lF{UB)f^=`t48wM$#Kf5?C-lX5zTOM>lH=UkQ;4m~0shCs%LuR6Ch3b2ENuzWL`-@tRv^)yTc -z99nq5bSgkvz%2p5(_G?10cJsLpd^ -zkT)5|P+4@}*eb12fq?;ykw^AYJ-sgYzIOdr@*P9w4U=T+-Y6aCSM;NF$+?N+2Vy%I -zvkHzmN!`&f!erfZ`M$+73 -zM96fXRQR1Yqq+=DO6+N$Gre`vwiDW1pnUn}pHc5`864`jl>NhPdlpg~^)bVq;xP34 -z`8!{-B7KbVb|XwWlWVI_17rJ98~i3*s`ca~4T|0Xy8_5_@^}P4TSfeA47okbJyw4W -zKfw5REkG9=6C%F{%8k_hh*e_b?Kl-|belOwiF6qQpD2RE-Y|`o -zn;&i%#K=VS`3%}61B_cqK60QV{ZJ@Msew%_t0ntZhwCYmQd;uf$H0VNoFjn;C>r7L -z1@DRU?P%zsSbbpGxGJhvx@mW(JIXWFT5)PR!N@|;n0Jy|cooF!1=y7vCf;2XQ*Q0!R@O{VK6}&_w`%iY;a;`tWBwF$()Jo@ijf77r49N8;z(e|#II05l%hzgmb; -zvp4(*DZFPD(p0OQ6*eoTG -zyIz=DtnP+)JirgB3bc6ql477x_PSJ6EI{YZP`1d4In#Qnmd_i%OyOO0*KPEs76 -zaY6=8?j+vC;BC!TU@QyGktmWI{Dt41vmAN&Y+sx@x9le>k5;s}&Z!IzI}30Pl5Ccm -z2Qz)^S(@It?Xnape>Eh`_PZoI0+Qr8tk-xAyIp=m49ia2EN}L3O9TAfc|GXAAsTv1 -z{oI`3FT5Cd7rbzZoRy|n~FX+ZV%(YcE><-!^In=Q!qEFGJ88M&v -z*s?y>|11c(sGT~W){8vnjTAif-5$a7{*uK&W9VK1fC?coP2K|QjqVm7$-<9&;L(q$ -zFE}+|f`9)aICr}ZGcq>ZxDaaba?%GA1aN)ffrwU$?d!)dLdmD1pQviE`uxT}94_45 -zY&!nFl=)y8S&Aph>J77GrlcS&>UW|{|E!76uig~yiKb-vl}EzA_XXS8kLupY62Q72 -z!ZR?d8HU&T`|Z69kE&Z6U002%WqTF&rw%m(mh+iSR3n0=YaXML8EC|DvU%Asd4=3A -z62)&4<|cA+5{%&D!tQf$LLShBVVrIG?7D5!6lxU>#2yiGL_V*hDErW^LGH?8-26=c -zXiDTLnwApBe1|OYSr7A{N{hzT1*Qgc#9WR(XP7K0XwGeBv}qAw$y*+b#d8>|(ZTmJ -zjLl*3UQ(Xt+2?;TgK=n=x*6Lf|AiKI19S%i^I#nF{fjm;-E9HsGEi3U2C%m`fsBnETtZNPHG%Mwua6<4=TkA}(n7ERM+7?V~ -zA^-vaP`WuvMVXY~%Lt~+(@#pJ6vC7&>>T6I|9vi~P^ATZJ`;ZR|BX9Iy~|5KJTPP= -z_puCOvgXeFq)<|jc6SLmO%xGwcypJ6_fMT0K%?ujACS!OhP_IRTe2dVB>&T1hfgaO -zL>H-vKOB)9^g-s=kq#Yn-J9N;oOXAEovwRGq6Q-11c6Tt`=^qLg?CQEg3uCgJ*9Gr -zTj7lB|7-T3faaGguEBq|q$q?Ar~?HzUsZGWRLZzz!bi2BV?uO?QW(h1eTZ=lCR{wT -zW5#mwI4Babt|YG$abD7seZ;8MD0Te@<1sd73fG4Vu^NnrZB<6fZ<2*Z}fFY!#0^p=ke|RS_J*{s@ -zA@Gh{LtM7cMxN!eJuM|Sg -ziBt;g6oa746Ejz9p{y5oR0=2`794~{Q1W}Ahga9-RIWKfqfS8+g&*=4%w5!X -zGQmhbD+29=?W-5kB}fnjE^uZDNYkQs|0LluQvx0-wJDjDGapT5y+go$fLk!e*`=Zg -zur45na&stubHEtk#lkq;Cj;ze4{kyyv>dETKsXMK$Wjg1Lg}fob7Tf1LGBBVGTYZ9 -zFwgaN6@V#;RWW}m2be305ArJ1E40olz);oHb(BJ%IfaK86#v{{Ytzxqd3x2MzK#|CCEQ5a4cH=e)36sLC9`4N`r2h;=y6cS+8{vGE#)i}~csh=q -z8ghFY^tZ3n$PHac3i=rCP$RbS2bNTVU1u8=1}TVx&{>Z!(ECtuJ?5-S!*#<9V%~-ke>hU7~4#Tg?(?$M9o?$ -z+`1H5t$!Nx)d2^Yy>!IA(!B>_Rtl!%I*bldrmEp1fG*U%P#i!iPDHHY{UXsvY9;W6 -z_AV0o%UzuY=iXi~Zy0+b$o-%#w6HRjZNFcx0Vv;jw83 -zq810vC&g%V*I&>3b^9c$j1QBwY?qs1S&9H*iu;X4L%i`#!|L0x9kt-&NIgvQWt;}F -z;MItyq5;=yk_Og_aWi@BlY}oseOTe)p{}>VrNP$+Pdf66@@Y6^WMMON+$IW65&%G< -zCa~j55ouR>0n>vcTYJ?sVAw&_Re*l9$$-thAW&M(f{aIr_FO?RBtB3h;QNV86ghq= -zBSTsVuXd*Lr0yExta|Mnu>~mtF{K~)lpgm%MC6)1Oj7wB-48Q$A@w9RE*R|a* -z$Rq=~4x7Yt1`HK9u66{_^RzmZ`5zVNFYm`SZ3~_&m%@_n`rZ?hD?cL8Zd+dyQa}1` -zD)i}e-R`Bv-P0ho#1+V>4fIfbmgN+Di983(j -zqC;LubfL&kh0gKTBekWpt@1!G$Vgs^57tksb6OK~MVKQmu13B~rTGMH^FQvUM`1!i -zpol%;hed8qc0=US#Yzt5b|}&^;$!mSTPv0@D2{VT18*}s1Bg1%$|NiZO`;TKn?z)Z -zIfvm_;?QEnzbEB4V5W!Y2&Yk;O7hV(Dlo|xdpOQW`4=X1g9AXPit(x7eKRZD({Y7m -zw-D+5sTCL?WS!TwsV9b_9}Jg@IKu5bxP_v0Lj~`WtA;p?}W}NwbIJ$}lW?{%J0QlHO^4Yjs;mgwEhcqQ_=%4C;bJDL3G3wzy -z_f%sE!FiF}HS`ak6~$hvwQrrjXbC0(Ioj!`Z*n4Sxe*-gbHZD-T+$g_$Sd)GvItJP -zPdF;zOs+TgFg=g_MeGtRTKKmPdm9GuO`%1YSGDI`CE9lg!;SQk9-)fJHC>#skl@>Y2C8#`AcB{*4c3;dBZQ6|Kr(Nl=5=!S^EMRBGCGc!L= -zt5QhheSI~lVWM0O&6mTn1KkPF(EinW%Uvpf>@Y3ArrYn*sz40x$Nl#zw71lUs -z#bqsX=LztG1ov@|%YCUPptKlvFSrYLNmAX3^8d;1k}q*GE1Y$2&A`uo%L -z_K)?UG!WujmJGr8KN0oAskXk@E(+4?Az|t4F`djBf_%+$ntHmp18gUjmp_@6MBIeoY01 -zP9_dYR3#ypU*F86<{hrpWE*JARegBIj=AZZxJOF#dWw%?im#W{R&cd?A1Cb~6rfzy -zWWQPzE*6ZWN#4#u&)<^s2})w-<+CJymhXLB=!+ZcNufBdO_-Ih+npPx2?io88C)`# -z2^1~u?YIk>-lGaM$LyQ9%^s#Z@(u%SV5UUX+jASr{_47j8R{!#%YrU&;)?`b<;MWf -zqTshmhwv6?^pV%&Act9!?-%3CW_0z}KBYu+fR-e*Tyz)n=KKn;n4x(BZ{csk+xm++ -z6)rx^unBTpChsgZj{6Ts9zS~EH8^r5GW3X~%3-ml|>Miqy5+*f%y}Q>$UYP9NDs(ZKAfb? -z%A=H_5k|MkZ>~jWeLVdN3kY-_g<`e3`-caa)yv0D@!c8`YzDi -zu3@9s_w9f_X(JF}0P5cN>?%JSR#cIML;rX=?>1#JUg+`M06P;P|HHM@t9}%grv5M% -z`SQO2%p^X}XG|QzQr#f4rmInjDwv}=a(L*=hS_1YjJ%klN;)^ds2U9ed2;&Mt155Z -z&{Zz4uP^x3G`*zJAJ>Mtnz-9_He-UWh^7+e0aZ1m^X68R_?V7d$lSYma_$`$t@pk2 -zd?XFP|6DMT(-uO`2*MJSM5psVJP!yrnXztjS5}7Bb1cPmn^h8LB255CM45O#MuKmI -z+WOuej}kffia>@79ez$;yUyL^MY2?)i-MZ}I8$jp}K)Z!6)0wlj0XU0c{eT1E_pJFTz8&`XkS%u;8#zwI@&ZZ6cwU3Yja|8(%V5rPwSBHb1kt>Q@gO0ro7{>!Y(7@=UE)M%IJzSb%(7`Nl+cow?31bTej^`b7uGRLIiek06_P+2{l7Z7HqHDH>bQ+OXGH)Fm -zALi=M$<$mL8evtyg}9%EO0v7%3so3|8>-!UN5-$PGeGQi7a0IX4>So_8J@JwUvM0h -zohJa>vNG6^QrswMarEMU@1%zlSg3>$oPkR5K|(&z?sH_ovZ+g&xNrZ+zxjH06Z-tR -ztS`8W0^s0AzK(EVWT#~i6;%Kl;3jBQkHb01$qUcpG=dw0Bu-EwDyu8J^;}5j98}gO -zkAVI_E@bh;T>fzC7&>#@Atzf4>B9H&F3EhjV{vTxL$W4GGar^UP@8}N!8>Ce^kfiJ! -z7U_YaL_|48yl%@e4W7v9(p1;urVpj)u_3^4ft%!T-=z@|3QzUA__VX_AmAb*+H;2R -zFtXoz{splMDuQ1Fz4>N29meS*V^JPNIkn18?!RAwZBA{WOCJh7t*8C?G4EBI2Jy~6 -zsiOH;FFbyg=k*z)13d777vui56N4^ebmre9&GNo-sCB91%JM}F-6 -z_DZ`U_l?Mp!9wyPEbRxwwD!aJ~bpx=CBrEDn)kJt(u01i;)vv8KcVlPku;R7Qr{q+DiHQ^5}rZ4cb -zz-g}ENK>pQJ*z-JipQxUdlxsD9HoV&T3QakO27*$ap*Cg_r~KJ_oO_xvOzXk==~@c -zBX;nk@s8`iWWdPFfm2fd4F-XHEK0WECycG^+Z;$aAOFEGu&2L8PgzpAHKQVjGrgFm}c!b4HmRU-io{V(|awB}aZUsvd^&?=L5>Y!jK}{(ZB@e3SJS -zvgLM7Nom2U?+k|kvSL9o5*%X_sQ#L!Vmz&e;WRc_kvX1_=6-W|2r=9KoQ^x?C75c@ -z+OFQ+qM-yG@K;>f`I#!;%uuc>aU-BhBNvE6DPmWUQ?Z&)A{=x2|J((|ii}ir*dmOW -zz7%BZwpzbRR1HaU6-lrhx!Nmw=?+0CU8F}*$2$wxL}pQcEv&H7dQsRAY=0zNhBs&I -zJtdz!YX@@pCU9LjSwRStzXdb$Tvn@>ML(QcKy~>6Zq5T57;L8D`VTK!^x*eE)KTF~ -zY18)U;|Y|Kx3W&)mzR+ACE=&I6* -zO1u0uBrxU;dw+l{-(ie3wOb(F^wMkklKz14R?v;Q<;$&!f{#2TB?Q)4{+5z%jFv_6 -z$R`0o9KGad-~136zhLeY(0d7mdkN}WuIOaCc;+9@ltF6P8^!A##9!XgY7UMsZp8Q+ -zkn!^Z{o2Aj3a+uud)HC0&C_!0RvY4NKD$7*6->>76)GbXF8`WA$j>w|IF%Sf2b~?m -zII#%_fOZKRfU}Sb*T3+nQ0CaqEKPyNHLk@MqM1<)fLp5~UmUN7%wf=EfCw#;52j$u -zTibJ?8?6TfFT77Xt_#ACG -zXhmI;<|}2G|CQe%GJrWRJ}LG80nGk-Ov9Ft7Oy_EEJ=9mnN} -zW5A;~Sa(|$(fDrGmcOo^xu$StJv5~$lXf!$s4Z8=dw}?a!>dTC-rjGS{JVi{FEJ}( -z-ut^vKL##gVc#2{tUBt-$!@%1hWYHPnRtTN!Y7;;66P6VBnz} -zVW7riPtOb>80vBI1wn8eak2yxHuMwKISKu`76Qp$#SOo(Zuh{Eb1FJ@m!0t#@4x%) -z`G92XI@LZ0UvNC@LlS=X>|t=>s^PP@C#z0ydB{}oH_0;66nB!n|2A^iVhro~m26q4zYaVUR=*B>9@7F=Tby#VAgiiHYI8wCJ#2J#ue6|hR!A^3cE0~DGK9&-b(RzwKcDeh;IDsCZ8@GY!2 -zjV&ThP#_oeU95`|{FwWzk#ll`3m>Spr2W-G|6+>Ku9DX-n8cT{m2MRR8uWhC+@bve -zJXg~*8c2lxPR86cOGth|&f-4j?G267c@LTm;I|G!Sfe8_?2pvD+Bcd^f7>VXto%*; -z9pfh}HDZk?Ri#Xud$%YmmWD+AXT1LBY%M3&suu@L;sBx-uqjS#XYc1l%B(#`|TwdQZ`D~S# -zeoFKHC859raW(ECyqUOvJaHdB-Olfol729hFVF?IA4b;x1BI~XnA$SW`7d0AqXET+d*gFXi)j;^2aPHiD-^3QC_Q|_pn7Mmjsq`Tyvkm$3>gjkLhg@25 -zrnXve6bpCfx-;2U8l?l{C#lQY3I?06(CMF`r{h}=`s22A>71=yGrdE_FA6f1n4D0R -z8m~DmX&FPGT8GH*fts1WC(>il_vDV>vBd1o5jtnI=-U=hxZB|x#QPKTYgoglOeU24 -zUnjXUY*^T}hr^KZ0Bs$=agBB<2Drb~5O$DLa^FCeFNGk}Kv1ZL6aG~__NSA-ly0v1 -zacYx$pi!e`_x@536rAuH>)Ulax -z$RGa9j-=r7%iE~^CvH6HD`Fq~i@v&0O#j>#~NEhp};!#@kPw;qbJE)S+*K+BN1 -zGRGHOkmr|K1%KOK;eY!^_uf@dyUJs0SsI^TH%l87f_5z8>qqEaJl(|o{ -z{%xVhcb^8Wov9_$l0A*Oy|pGMV8vCMdsf|4sSKmucto*3MSbJ<52!F^!c9&vtz6*# -zvtNZ}sRQX&Mp -zkvHM2I=;q^W#0-Nx^HCslEV|+)77v)0eY%62Pg_6zO{w_>DizXvH^5A!UKJvC(nDVcU>Zg~yC -zMSN(P`bTh}ye&mW=_NifY?l4sqk{(h-3U7JJ(I8(x=FfSMHs2M5)YI(lE+kUhRim%?v<7%+AWLs{+~YHa^dKiSf~T{e7D~Ciwxd_BKJ5l&qEt-PAZH -zv0Dw+t|PGZB;&_^f5icBLxZIa=COOh;)&{p0oDcXK09E$0C1gBxT$E)d)MA}5Yim@ -z1&s6*t_=J(l3TWYl?k&>$Hsbl(o9(?mbU)K+zU^vrWgJo#w~Sz-Q`q<2sq_V)*jK9 -z$&+4?Qe3XTe>Dr;_~BW}r%byWa?20c&3}wbNT8{h_QV-9UFhL>x2w;b^&%@ruv#dCC6}xuuS;BU-wSlzd{|L#~gO-)GzC+I? -z)i)p3%BAst4~6D?4+o$gIK4x8Os8Hf2Kvewz!vw7LJI>0{g7ll*k`NeTQ8HW4gs^W -z*YwPX*a?h*VOROXHo!{-5R9vo+a<+Kjz$(11hwh#Ib2_$h^Qu+E+x{a=48CRZ9qLo -zgeG=1;m^~ZxGtS0QnnQGxo^7sZeo2_gk9o`gs9MHU)!jQ0UR#i+v0uTXg;iR{#API -z%YI=o&5hZ|RmLCX5nT!X)Irm>Ouar9ByHRdI~lXFQS%LL>D4%&wP1U81SJq(YQ1ER -z%(2h{s^-80u|+oEbPWi*R7dFvAbBC`7KXNJ45B-w0tG&TnHfh>- -z;}T<7`7zKY2 -zk~SD~ihCp`dksdkDav=s^0{PNZrp)iq5UePF@-}gp;1ziC#HUA778R~IXoj2`=qP{ -zsC+%^ee-qeYAIWtm1(cy4L`>ZA-m-mOlN^6t221s=rpKhjDnK*9qLZRJ3vpqhJ)-GP-d|qh(pEa;L>~9KcD>ZuNxeqUm?rShqbvqGi_+o4g>M5xM-ywxHIJVB3@qdb$}`6qSK1^3NW6V@j6s%RAx4d54L<{&rO98+Nc}x?5j_Q^5|qv -z$bNXTQjRO~qkw;0Tdn~ujwmSsdrrtL&}DwC83k_^a?Z8sCc>rCf^J4VGBUi@T)!I>V@1mz0v&FkbP#`a#w^8mem@OJBBO%cPgwa^ra70X -z$D~(Hw}`)69_~Rv16c%k0j1zXp#_Z-!^y07rzAwJgS``ryjA%_sW6^sNB+w+`8hfq -zzpEn*iuXE{HtpDyrN?(Ls5?a3U8UCVc>mNEJUUv03E_hQX|EAO7ELes4Z~u|JJOaP -z&sF6QRw$#yLoq-E_>F84O~k7h(R|`+XyQW(8&ru6 -zrF9VeTV*d36GN2wXD>tPjW?J5)pY5U_toU;dx)bEP(?ay+ivlp4`M3(zAZjEYEs)- -z8M@xzIt$>#z?r+^a8k7@+kme=_S)fD%SulX#3-^#t8% -z|E)h3hZ)O*;tde{VhrWuuJ`7t&!un3SzosjpxCK>Y4hB~iVhNd8EmrOdk1tV1$IRV -zeJaKF!+xU_&T$s+L@_1x2ga=DbNFzZHgMDGUQhfc(`hzk`~L60rf!?1W~oFaiX5lK -zASGp4gdC!Q#m?2QQQP5nQ4mA{IELQv#qsaVdT&d=44j%&TbC{$N0BZ<$J5Zsuq%LJ -z*C8jVIl&`%=eIGf1FTNBCQ%q1^grhVPo8t(zK8jF=V5)0^viS4vu~Q)T1;7|Rox;@ -z#L2-DD!)D1dQ$73n8k86r=2WJ>qefGQq{Vdl}Y7% -zsa`8vL*+-trVPHgUNh}IWM8OEpW4-1Aj&Oh;5lL7XjHb_tHlmq#BOzms4H3$PBDXQ -zC{F;HNfjmecr-|^wk*;nyNRquNbGFdyAauENueD#9vV&%U?7ha^*$KxF#?SzW~|}a -z?eYc)KQA<$(_UeNvDu??qRu;Ew7T)5rF<*D^m`8QV3lMVe6&Fm4e%q7s3P~P&$MKQ -zsz4Rl@@4GE_y?7%3cquxG=v5Ys5M!Ot~QvuOY=Amt!utbW60)2u(Hw3prnNPz$k6A -z4(syhbeV=3qt@IKj1OFfw7Xr| -zX}On6kOq4|IRf)STI@8#Uic6bCbvZ{h^uGZe0Fxb=>g|8xPO3iJ^s>v)Nh^1IqlD0 -z_z3LP*UQX4ZSWN2cSR_}&_%ha?fiRuQnB|Vc_;r1f3jfno%@sj4b3H@6xxXls+pl| -zAGq+%K6(geai4p023X7cvKkuA5mvM;PP%t-tp-jpRqn(Yr*~qf{Pck`xGlxm)dB{= -zQr+RJn?vZgTARI08_e+x>P_2v%N;6@Fs3mwQc%A?dz7np1Kr2BASAj3=6LB3g8wDK -z4TD>rl0wpphF4T|7>g$ -z4yG0&^+K&uLDSX?%MBntWY5hchdt@o`uj>Nnyw&PZKuQ2lZlx$R?vmf@z8j&i|IuC5JPNNO -zOf&Lo5e?uE7*w7Ml4avH9ReqTug -zj0~VfU|Pd=F~30(ze8?uUG5r%uL!H%CWog}kN$*$P(-P|fo5R~dl4fz$$|W<>GS*W -zGawFFG#=YPS}@uOi1nnjXP_&$14T`YQ`nqC{Ar -zv5G#Nxpx`ox=i21`p*=MEK|Uw0I>Xs&Hp`#_`24_UZpUOI_D+nfANHxHq(_*!J56S -z#O?$s+50bK9et5Vg%?Ep(@d}TaNcj5?gl((CZioGO__n3#MvUVG -zUQosv5J0n&h!IxIQs(N!;7*>F5ewS(Ee>U7t(4P6m_VG0&-$5w7TrScLgs3Vn?c!! -z?N8ZjWDznP(9Ho-x48A-$z>4@_3%tIzX%>61P4FqBRwyNAI_(oh^V4S4K22|@{Igk -z^mhJFWE;ZrBz6<6V*idIAnJ1oS0TDGHEneS3<#+H*K)f#r`(@G*n7YewjFQAtAWEN -z;{19xxsjc3o8e50EI;n@$^0@EHeUV@u%3kv%-O=ApJ|kJ= -z$Q2e5I5?ZEU*1ZFjV?*mV1nw+9m!8t*(f?6@5B}~+)Q!zbk5%N_N|jw;3u@5c$j(X -z&>anxKFKZ)>QtuBeVK#FgO63try!-o{JcEdw5^LA61%Md9`z{TCADQi_b|1I3 -zKVEwqs6yX7dp!BuX+rR6@3ZOMWN15EIK7FY?NQ>bf)RVawG~A_oeomLZN;JE`yRE9 -zCCc>q-Rm4vNH8%LuNSdjWp)Vb-5t>umf5|=TbmeV&VbV2l(|CfzxtEx`F*ycIpnAI -zqAdm*D&wunk1ipfekk3Gx$T3{=PZN)t}2lm6A!hr8uFg4Dxc`Th3H0oU0E( -zVK(DN=n|-II#KobxaLdyE&o^d6yQd<7P@C`zryCr6 -zu9Ss)cA=5Tk=sVvxx7bj6KZ=3HCsUfY1}t7AD)VGxaK-GVdQm-&$nHGO<*R(nn^`= -z#eG7pn_X#Lz!IWjGQ(qHn{HL}6HgmqIJG^u49JPgWs6D&2~|IDTtI-SEth7vw}?JOr;->x9%IXq#vJbj;!{$u=H2f=?y51lDCE<)rF=a?V(F`< -z3^>-y6Z;LRFCvH-u%};l_TK>+Dm+~V8F~&vN10ie(>U@w`%ARHXxTbzKgLq5WUt+` -z=t`gSD%lr1V=RD!$15vA`KAO4htCwTm1rI(%XzBY^4N3^jQtOB-Dp!83KY^;q-L`M<-_p7!`<;_s{*@gM1C*dE+$ay1G(kl>d`bVW>59GZLGMu_fx -z&m<{E?T3XO+v$^Qq+0a$N-7J1h(XFuaxYfzXJ@JEFJ`++hsYSud{09onh7@cf&TBV -z|1+sg*Q9~t&QCih4sR298Z>Nv6X924&U_bkPTl&;-`B4#s?cYElz -z$ydY4T|CFIygS1g@=9%+!fHNm*Cm~evz}=vZC@K|SlJCiOUtgIc0+sK`pe%rrp)}y_V2<0rJ^XpVd%a#B-2SiC_!;X4=J^ZUL{aB|>>4`~c>>_fg}*mrGB -zEM?UR@*3D3nYp12=)2L@Xzd(JT~ER&k8eg0$&4OU=0P$bbWi9;4NX0yzK5SCu$5ij -z!*eZz592m)W1{CL^7JMm>XUqBXevIiH-yrWLv)ZqC66R$IV4+{(PxeDD6gUokGNkd -zs7biS*X|gkx8xpVcW25ZJK1d$=h=wt? -zzF`hmFS{Z`T&3eWy`+kS4w{xVq)$DpQb-yI1>XmfrR?G>r8B0-vi=dx$^!21!O16| -zKVbUhCaC=hm0*D9N?R0qFbxN5Oqa}$rY(*`MlNK4Yq}|RH1Q3X;#1N4gQNR+@AZgS -z_3;0mx=B|ki#;hCb)ZcvqPOHzVmuglNXCMQ;8t#mejMdM+^JP?S(wls^+R%&A9G8R-(6zT8np-wwd -z<`f=2=!(o3pU+g6TI`|GodLBeXqHwF==FM+Qxj#ZnEV@lg5*obcTI_F-2xmw{nK6O -z0JUc-vZMX&X72o<2LJLF5Or+TN`n$LC!CO3VTV^$$^` -zX0UK(E}+4K5P-UV2V1Q<6f2YyUEf2HvPbJ7?3y^Le>5Txaq-$2`Dk5W -zsOM%#f*3HK9~2P(T~(}7yN#a<@>Qnj5U*%q*KE+yrs@kJ2%+I*`10x&`Nu*474X0F -zi6$<-kbS&S{9YL4SpfNCr-F)F6(x9?3K6@hI0j1|I2<6}0~CN0lvlse5$#W(&{{wVw_>NHa|Ow&hRy>o>iQEDT~EuKRTyKaWPdxLoYU4UN#FboH}( -z9fa|+{6!-bO$mjC9(4f6CK~^p#lI0|?lMd1f0FdQal-8D?{nxdSe0lkaizT>vE0s2 -zN573pR1OQu5^mI1{#6Vav1Nrt^pItT$Q%?zHxzEGjp8KvR7t<}VpMkT0InQ_5-0y2vy%0H&fPiuxVD-Xg!qKD56;OI -zv7=ul?8OU~szNA(lsy?)a+MvUvJ&YF;=^)=6naXq<%5pTM+K?AanERu#X%QX8Rb1= -z-EeIdWs`SrxgY+P2Sbq>7WTb-?`97XH4^*GX?V+G%ME)e>X-J7DYS7c>7{(Ro7sUu -zG*%iJ{DPH+&)CxD*j54$*DPWM>Y-fT(57s`1tK=qJPC$`x3sHU?6QI{f(CS6WBNev -zf$iSUu;Ce*@RzAYM)}`=EITaW{q#Yl -z2(0UQ1n3|nqA`CL>8-)WXGa`Kw`YeYSVYO-}*3Ox*65sZh?2(L`s>sRi23EvRZ -zywcp-PG;eq+JQ29WW9C6q7rr;hKh3ye(<_bz!fe&9&MGD6i+Ws^`h1-HX4QWs|f>n -z*;*QQArD?NmPn~C$#$UkyCiiCc{Wzv%iqF;LqNZ)z|~d&v4RJ!Td*x?=oHsS?CT95 -z;JotvF9a?aD-#Y20+&G2w@hs4KoF`_SkNGj);jp7rf!F^>4NF{peq1Aee8IoN|2Ub -zHIWwKf+Vpz8SUT2@@7=;2fJKUd9v-St5F2ML>>xkHo&-#SKd35C#x -zu49fB1?p;Ih-XyPB8qSNgLa0X_yOJk<8qT|>rQ4)%2*vY6dV*()5MiQxZszYNh%L8 -zC=he@kM3*bN}jsr7wu;Y|9yG0tKNp`AejB@z}HXkGz8ZO06V~;h0ab-&nBCU?Y6m0 -z_?IH&71u&yLD#T#D^PH@$YN1>VGb^e^UP!nMZ{f%k(buwM3&7h4owm)+2j)Pr@KgNb?b6TQZ3 -zbAj{9PV`Louw3FK8R_ZQR4A@NmIDBFQWEULHc;WJ7#dWNMXyE-ub>3Q^(h{B8vH>a*RxmNd?IOs6nGv%}^8@UlIPSBi -z)G()tu@i5Jg0$VbL*~;tW -z3I*lABZKK{85d`CcoLc)indL~4I7qe!b*EnGO1^K3oAWC3SVL@Y$yebWn}m{&H`Cq -z8`AUZ+~J_FNBdmSj9*W~zQ!d9*rI{(8>sfGx@tta`C^+&Jt0XxaZr=&J`auk=GH~H -zuP_T_W39G|9Uts9;&q=Tk4fqA+E83&+{faLb^06py>wGmm;ojqJQK-SaWCsfbnMw^ -zHU@Ql*vXsGdMaEk$@IMnkIcUTw6EwDJ6EM|)2n(zai-DVA8hxZWjuu7cd;PA_q?O} -zcy*Z;%VI7uG$xphQyDXw-;1Jbq>}8h8{rJ;w}6k+SmJgNOm=Wo`Dpn}@O+M&1zE!c -zo}7$oul%wFM4ge%>2|P*Gi>`Du-y0PA-8V~9zPp2Gm<~aJD0(kt*Kk}jN9r^v8tqT{K$Q1^ -z&9x3e!*_XsF&4lwm>3#BD7Af#1ug(@m%FpuoDaOTn@<1J$d%WgAj|)4}wtr%dG~59h)__`E9F -zrQXp?61>5aZw-CMA6vJCNg;S@SB -zRK`oW(%$cvJgoT^qR}vwv65@{k*2oZOqVgd`wFa!$n8BY#8+0&GoN{bol+GphnmPP -zvK%{=A!6Y)a^Al&xsJH^j(TnsB>%>JWrGpNB<6TpZgjMlvnt|oQBTG)hi@{yx-y_t -z+Q6AR!@O5)6$7=z@`mPeY=~UMi?4FN+Bb&+*a^4;fSq*9G$37UFTRFrf9?yUaX_Px -zNV}5ft|Z-XRMd9F$3CnA5L89s{*~EasV-vb!0V1kXyS50y8brY!A`+3}Q#%=J2BGznqe_e(g)&ms9mUA*V5(H-Uat-@Dn$n91* -zIpYN<%6MhH66uveX$35z^PJ>Bo#8}=H9pZH$dbs%0Kgxl(L?1KehH22ISR%3X}yG` -zNs9`9D(FOo<}$3e&Z_DPzFj?p!-As5Xm{_Z+3Ordo@3=UmbKGRxVvYMj5UKr6R49X -zH{|+Hza6oYFZuRR8Jd=w&B~I(ef0c=7k41GAd+aqkP1JAZLdZ4nH?jQG -z<}ddYykqk|>tlBE4fRNop16o%8g6afsuOxbO7+L=!u*QZm!5bGud>IMd5*`RYqXHC -zJ7VYR{!~DgT&pnOWuaD(&!bIt9=G7z^0@F}A=l?Py|!{o1Ppg#u#_ShfrkEtTKg2- -z53S-PSK72`D-VfNd{Sl1lolo>h&-A}vDsdZTuCAI5)u|p`0_FmU7)2E@7F6L1S#eH -zjCNf7hl<5@B{tgM+w_QK!`TRO;E-~8Jxb}7Ymg+fHlOaqgO=p9-Ouuo_549%5dblp -zyuFxkv|E{R2qCq9PR<(HA9m7SEQ%kui0zu)iDP+zWRw6;1FxO5D{K%x1$UH#6BI#q -z>I&Q5su~i9f5U7CN~ECGc}JG&eZhA!;bN}?Y#m7RtIl=W?q5FGssoQQ#xv^U8+p}V -zCZ98!ykir_Ar&7BQDZT5wd!UjZKc7%X0ihDMQgCA3zU*e0Yen1?2#Z<@fn|dt%f5D?&k# -zke%_pf{*fslLwT0@Iuw>k`PsWXnFgx4Sgse_YvebCa8lguj$RLBbl?{C -z+@mqAXj#!MBoEP!u(A08ssgxT8UX=WQV1lCl#>kPVhU{=x!I45sLs`)Gye*l;oa?1 -zIDN=lPC(rhqi-Xr8SErU6~~sAv@U{lM}MS){@`g2=Er;$CDA5Oe}sJ86?JV*3QM!* -zqwi-n9x1{V@wt@yJ~Ki{%i;OA){1Wk1U<`Th_AA^q)a6lx>(k&a{r5qvz|Pb{fN@4nw-Iu$k!qXR(ku(tv$PQ -zIT3{AH~F9pO`QHIgf+jk>8maa>N%DFG+@~SJ|TH@lb<8mv)<2nzo;u6XKb#Ef4Z#3 -zzSE==BVkRAJlVobd+<~Tr-nFo9+7_L!Xz8oe)_(MZim3()XwCP7&ZM@t`3RdZQCcr -zde!{{n-Kq0oI763ArYq`!SV=lX`r%o4`Pa>Tsl2nEBr=T{`)O8i&S-^Z2{~YNS}c= -z$0SFLWc^wp{6X6Mo7M7MH{ChKU8>hckm-G9$)j!%t5QD}C)xI#1#?3GSOz=}fTrl1 -z3zIAeh;$o;?wbavTwYMzsIolZ3V`z;%Wki!9Wyc7lRt-9B@pZCjV9 -zyWBA>w6e0j6!9&JPAy -zz&is;Kemnz;Z%AwUZCHqj!IDd;`Ud)()`iyFt7d|SftOrka)IMa=9jv9 -z-b(Gc+MAsH-e0HV5-d%lCY!Gx=+295JRHvnOrW(`G09scpxfBlXe}Kyz$!Po@WhK)hHXu>IruuuP^texD#Irouh}um6_++5FrULn#wM%wKMK&VTMfux0FO;FR)KBm-po -zw@v#MDH(oZk?Osnj4g~A{DEJFb=0%zavKLZK`>5V5t&#w4!lknJ~90~41E7=Ko&W9 -zaybn~ZsWRU_fS4?4)3lPH5~%{r@X9L(9HIE8WyC-U~7h!DS@%w?_vwFbq4^?M7W0i -z`lYrJnxCghUu5Z!4_Gi=&ptCkiTk`>)qf`{8pHArEg^CNfTV*Vk0?clrD;4m)(q(U -zMG<$jUe)G;JK#9*7X4n{lpi;V$CUoX49-!J@o5GP4nAbJYHaZy3OZ5K9}(Eu8wm_J -z<>lB8cW+qEU%YQ|Hp(uwF1NOd+GN}Z``_UBvQc#5X_J{Iv{-D9 -zFQ4x?Qyv~8VE8XUi{)4qIhJL|^@WcP*cZlFfzQC1)0}vhy^^x(^eSsLR6HL^?I>_n -zw5X2Ct0Ys_n~JMk-rGaQ?H$+nZ|xX^hFYERHSpCNU;LhF#u#{#HE3G -zzUJz{x8~)0pJkq$C1{Vee6K9A`U&#o>)0^V4t)3YQl;Z-#aVKCm)rI8E0m_W0%r*G -zQQp7lzU71r-&V1~=Y~@19G_Z*A7K;G=3O -z!L7lOqEI&MD_#RoG+=b_zEos_UKr1LHKdYm$Xlxmr}f2b6|rDo@%RWjviM;s*o3wY -zZ#u(5d_IdKmox6W3qu6$Ekxm`f;rBy28LW%`&k!dCz&8So?R2rFlmvHEi^}$FyOp2 -z>xjrHGBIQzTE=e7+Cx%)Po^4nW+1Hz$#0;4qJwes5Pangt8mIY?nV4hDajJ#A%KK8 -zC5`yhk|jFdo^RHquWzN5c48<(Wz@R+Nioyv5TPz4(r*qI`T_)cV}cZIXO71p^=g3d -z^$Lt8oi>lXF-*r!(2WXTuN)yNm00u66*QG+Iyn^Il3Oep3xn2aHIWbD2oL3`PLmkW -zY})>F*l8-K(!BcCWF)TG(vf-fmGPmr48lGM{(ZNlTrb?>0A?a`w$zcenFN}&5c=+%1Q2t5v%JYKihhvQ>JU5=oVz!!{@b0IxL;+o?fu -zRD13l*jLjLJ7u_BD2Vt?PvXdL>(7*vn?R`=AkB}=oARr;kOk!D2puTOQu7dRo6P@! -z^WTHBo4@MLu2eOffrbSO#Tw6cQ{!Ee^Lt$}CQp{P1M1^D9aU)S?t&Kkxru- -zc2XZ*q471x2tl6U$0O9qYSnEOhdgJJ-j?SF-R44Vg{(Z=rn9arThq%)$_F2FeRI(* -z9rMu*UAuVq-M7rALSc3g?EbU2_$gm49brla`VhI<_R14Q>jTpV@NR}dg61KMjZ4Kn -zQ5G{v -zzZP*5^8j4)ACJ|c*d3FkeWvUjF^&KXxAw5c-UJik=NW5oxH(PhS{5KtsYGe^)4WJoP@{V)SigVWqW(` -zYIRHm5NP&4u8fH-tLj<^;Tn!jK-1jIMRQIRMr0m8q_8XD{OoUYXD2|(S`JQJ?=Ifl -zUqH&f@y7_OryQH$HU)Qu*hvQaV8l_-+1T}?YFntn&nK3}Qn=}IzpmGK|EslTC=*21 -zW;6DmcJy?D4F9rjKAt~iquiUk@C>aibxhGcNY{i-1Y+fA4e?xO)GgcP_H`=&J6&=K -z4{UwK4ZSteDY52qyaa!{uPCM2Dh`4F5igH9_A3RJW(njA$uXYzsvt{-Ux4%tQkc4P -z{Hq@a!^&gV{(88_T%`XXsM&$qN=+q6WB?$L!W6_$=1VN?%>~kQI=CQZES!TDjlYbXNO)UF& -z{D2HBhp|7Tpyfy4^YoxIPv6&;p5*;tYa(O@p_;5rMX;-#gsNW;__kMA{YBMAxu~|O0bv^DZzEMVlYPqnEJyOtXXt5~dp4nBdMi>U9YP~DACk4& -z1l1Q&4}+A$lm@XZ^&65+A&;ZP368zk4@H5g`w^Elln;}koc4~Nb+_d*lf&V$K^KdB -znKo&LmH(v{2MOL-Y<;$V*q|Q{Zj<3p0P-hj{f#x=Hphx$EoF8*@=&(%fv5NRD;h^0 -zC_U93x0>xc2nfqAw>s6IVaixjKsgVl00S~F)a -z9fi=d#qL=$Ok!Iv(crZiWIao^C{(wQ0Zr>EppljLO1Hn1lkCTfnb!F=_vu;3#apZL -zhhZ7>UE)59HbrJU<09u+E8g#od-8N@FfMEFNK@JNK?;5m)J|0PTb$=a!X*+^Q{E*O -zYooD^S1?X3;a7sK$T0NOL>T=yt!zg?`^cvAE#+VN2icGzl>^R<%d*>2Z8)1?zE43F8a&(E^HM -z7|jP)HlI{8_vPh9Eq?agLpNnd90+c_Y>c9$IX!=hlrawdTJYnkovuIQv>VH$k+#51 -zQFMG>dEO@vnz@%e09*gx5Nef56hW71JC55`2JI(981Y7djFklIGe<$hh4;(#;sRKd -z3mT}RgRd&k?@-Z0tDWuj9R}Cl(X=-Z0PnV8KjB=uH{59_y_E6t+Z18qnW=IvmdC~9 -zIfmww!6~PT8kCa89wGxih0#SR$VaMF-yLaQAC8vO%|r=?IBl4M-`LQ$HxCzkdTEB1 -z5Bm1I&|FN?xGDB6$PsPy+_-aQHxPmZWzqL2#=TgFi%Io}Lz{xPL^qmaf??qshc@;< -z?AYI%BA>QkigJG9o=h-%(XO#aESu|KJ4&Wp7!f&Ggdfg^34_05y!<7RFhmZ~Pc8kaSy2qad<5q1jEwrw%+8xlW)O@Z4Q6DyN`OH@ZNW0Kn$L0ex46%_R4!?b&)QX3U>(# -z(PKut--*Ht-|ioA#aTnSWO^i5BAdrmyZIl_U3Y{kMKXO*Vgb1t1OgQ&iXx5_moKE> -z7Lol|I|x=xz^XRv$FAs77b-_32vSF1*_%64C7*#dEiOWq!^G^mUQc^Zi=fEis2q$`-@Jd)0!vt)}b+8-U -zDp+y3Jd{p>wZer#v-q;o9?!ISF^sY@+9H!eUy#XfLCV{f@FVawgMGl~KfU$TZCZ{y -zTKpF*PM%rcM}SEghz{rTpKHhJGvEIrQnYY@`OAx&(5>Qcd>yuKT!9V<)L;&cO^okd -zE^7OPCqE>`jGM9XlU%z6)TMU(3qyDrpa%QmS^%5Gx@es8rEnUsonu -zid6w7aV}yYuxVEp2jXlwft1g+PJU$FzeHtzih*?f3|GTX;N|24t)L09Gv9(5Hd^xP -zOh!nLm*(qjo$h&t@si7-!rTUwk1Ukp;&bj(z55OlUloyFp>cnuugShKwE@RHH8{%k -z-QTTN`OHH3Iw6eW7L!l1E;)~}+bFl9QOmevQ@~YVEsEVQK=C%lIYnUOSUckOrH)cG -zY(4vD7&jJ&zzdwmK^7usAy<5W_{}s2@hNWvA4Ofo?3+>FHlcZn`VP-B>JM-&5_d_T -zxFSy%Ac5OeeCnlt$Ulpr-w*!=QB;e2=>6W{0xZYA%2{a7{IAP{wjL@%m*huavhS~n -z+~TTTqIh_ZOiGu*3e+ztmZENOhJ{ZjxM|r<4?%t3G+j8LhrdyoXLdBa$mz-(;3z0rO~{ -zi}xtia-18IX!m7w*x^LY# -zZ$L;}lqLrbaz`|KFDVLM(yN|%{GyWLcJ+0GTq^msj`_TL4PjgO;4C#8nkm`^1q -z|B6nvjk;0BRgSFTdlJuYJ^+U)FNDD=7A6DZecDG{3adzw14K>EK2J)y -z$KcwJfW%dgEM!gT3mr;+{tMH7RXbp@jlH%KC4q@!lAqBfVbs12YBu)Ladkh$JQ+f=NHT(VWv$z5&b49nXq34CxrT~YG1t_ -z>loF}qlVx~khYBXe(BPEIF>&yM_|G4?(;1^!1{VPYUkVGYZwtp^SqMK84VJA%3|15 -zb~cOr$(DIX-b$j(oKoQ$>gMLwj^5qs*l-YIX4j@JiI7M16}}8IV>#cPibNV~g4Ele -z!0X#QyNfw{m5B1QL+~u@mK{B6I~6h~{$4Jr3&Mt(g~a2_c=Jl{U}@lZlHiHdL;1Eh -z#9o_O-aI|Ocr*mh#_99(DM5^qDqV@-XeeDB#3-c<&*D2)YaskH72K(etP(_=mI -zs7oe72Wv{#YrYf1lS0a2Kziw!@Vox#1O}L1Df@mUh+&`30A7455Z@$H6b -z?0`lX(~+LCmU7jo`qzqz#d8oQfgrkct|7Ib&}8jT1$|ixz4%-Dr2NYLLa)S4P&EY$ -zxt?Rk=(AFxa+UYA;f2OrNn#~G7f@z{VGCRr-$2PsWAXjL|G|XHKJV0#RT7XlGP+H% -z$u3ojn7KyPUdRD2xfMlq2RKLH9w@4{QJ_ -z`HrUBBE3P~moplCC$l?bkW!NKULbcO2biYiLbXmD!hKv!aSHr{+$7fyi3EHJcR -zJH~%`;1)|R>+8Yay;22nv -ztBstAtBBdlPn_&2#F37lWaheoXMjAf?qv(Z^1BPers%~t>3G+#=N`6RP$)WZ&ix}^EKw> -z$U~~U^DLv4h-dw{@ciWkjEV^tGYM0NA-h!QyX7fVRVR=uKRKM2uzuBd2!Gm0mwep- -z0SHkvsOTFiD?VonCc7yOIs8N_yuE)lTMM>2wfm>R-Nlbm;YzgX5qk;(@p~sNJjIsZ -zeka`Po459{Tte_|unIp^y9leY$MB^R!<3^<4_h9+EYv?17c%=f#>gN{#~~iKy!Yz! -zt&aaZ=Gl34JWY_`QmO4V0ru}PU!?jWuT)3JzsdPl3VVEA8CrjWzig{DkO=IeldR^F -z%SBA7)j@aG;cvO70^Uzfsmtl~wlp{(5p$qY==xQVrYU*%^J(t}9v -z2%Sky^F+aBFA@i@-)|`zmDZ8pA!*(e=TmzIM%zOqkH8H@e5*Hj_2?_!2F}OUJZPMQ -zbY;V+do>5F8SYaKI5lia3d1mfx|caSw)hGW`hE*c>91bRQJbtrJBpM_n66D{z#1{S -zLK1}lDZ1pkQp{>>jYyP)Y7jtP@RJac=0sfv9jk3Z2^McDUTmrCPoFy})t|Qy -z1ak_jvD^+{AE~FfGcLQ>r06Q$D>%RN50AFKSxPXM+T+sJ?5E{m?MKk1 -z!S8eS3O^YrS;3Ewxus$gFEB_mD>4)jUV=Ze8;<4DLv<>-aL{9U0_Fg*)4kFE{fl5Q((9&{C_MzJau>CS -zaoWwg^Z>?B=|zl9yK_5EYex@y -z#pHg^daWN8hkcuj@Q3wPiT`_}ry_s9ZXrj**a$u%Rf=?^_@J`0naFkv5#ENKQJU>p -zUqr%V@*&Rq=MMj0!Cn24SBUG`w{BM30_aa<%vU)O{)%^-Mtu}fZ0IFi@T@6TG#R*N -znBowD)Skh&z}HnT7h$E}qZ2cBEFf%9B4*{>)`P)j87$p|!Ed5_zqMhR!2k&hU7Zh> -zTJG!)UBCop6?BSK6W}(~hrSCn8 -zxH)>b1drx=6rkyX2S#3=dk-p8xz_`Yu#n^ZZn~oNlVWszTs^3dy`MO8L=ZV_6`gjl -zLXakDx`aDCIlWNNuWFH&-BIB>Dq2xKxy{UCLQt~=*zq0w9qeCYn-?kV&dq@X&pT4< -z6dLy1qSlok(WT~h_BZaaOkE>_mB9NKF+TamCA4tj^J{&HD)VV>z;+Z{Ke#mS$b4`vWdUkIe4Lzmu -zm5qNb&SdI!&9Oy%?9%+ug8==wZyN@FKatCwR2WtkyqY7j`KF1)O<{dZ6^h)eb_8d85A^Ti^)f8rY%e&8i_i{(`uk})a9duzvi -z64!(7V||yg=i&Jj#rx?8Wfx){ESPkNa$nyN{r -z)Ga)cR -z(gec^V*GT(%o%LwED`>E@vL~W3x;9hX*GTQoKZ}Oyg9g&=)wf19c3lGi*PNvozO+k -zb9Y^@fIg?B!CUIZ<1drCG0-U<4MR-E8l*SFWa$5j*df^VL`wz|cx_p&rTR^V*Eb-*yl~PJNLhrv&JD=Wd0em&1@Zq?Iw_Ul=+5W}n -zERz1WQ`%>p3kGRbh_FU%A{b{Jj=O`AZ>%K{HIM>IOhbK_NfSou~FAc9+ -z2vrBXgyU}sDv}D5ULQ2plCT}0HxJ1>0QXPT^tm=rlL(O=?e%}IBQNM}RGVP|(4k{%8R2JU -z84psP;NQlfnJaFveeW|+s=Xga(JpboIfx-0_l9&3U6S`e2 -zmipmTI!V34&!YjqMp3H7I#h`B062T5GFAEKHVdmrX=1M|h~_ -zy3z+ttXO=;P>mncKfLMivJGCp*b&nE(IZ2hkhv}bZK5KE+nv0K+xf|~7t5kAe!F_> -zBf9%+XL-Q`gT+MZ@ag@!DL>CddSw^C1axQ+Z2rX~q;8Vz8~j}ziX>4F -zIAE$rMlrfJ#%?#A;r|EVektu;pQ?UyR40uJM;j39pHVN}r&#o;>FUkVm#-UH2&;k1 -zE*GK(m$}WG+y3rRhdo+T*&|TBTX#gk -zn6c_fE1PV+e6QLbV%x@RjYT$se{a;{4N;@FcR7gFE{~I@#9z{R|B*yUWDo$_{zFIN -zPrYv@8)<5hTGpL85kPyQG^8PHm@xLcPAsE1JKjJ@_>qfDsywHyS$-%)tZBqAWI=jg -z&X9B@c&!VR&Alo5dvc>Mn@N;J{ko9}e>lUmu4u(@`-nKjQq>QJoG|j=UpdO{{VA263WE7Ya{xVSO)C0`P%W{g-ip$F5z@+zd_3~E0>N>=QWt}$M%U{5us<0Ef@lB}AyU~mEpXR~+R -z54W~lNNpSG{psqI`Z`0Aj=jB9@IGNieQ}OkdGNdxXWO -zHF>xH5I!E3^vqLGpIu7A?_pRMFR=o|)Oj1)x(#GxYx%My*2WF|}sVFiR58L;-s3dh$1E%+29LiR0wZBMO%9E(7Z?VzWD*e5m*@ -z$A>iX#k&zM%+0NG^x7Lm7>*sWsiT>}-@%4yXS#$%w;!JXUZTXOi0YoDKWBJzY20TD -zHW?cn(P+PK}PlF!g~mB0V&_`UW)uQpzs -zf3|^nVZ95PFRR_mR(Vu(Li6b4pOpP%ivT$7rO~i-VE&(35+HINb -zqUPfRLLZmIE}?+pI0Z3L6Y~old!&|DJI-K7g%txbRl8NvbiQydfJr%Ue6bN{2wP(> -z1crvc>+T6W?vq3s(dShJtZp}06tw<}iM{9#va&&|H{SYk`MBW+Ivg}JHSKX2eC~E= -z^Im1Kh3pR0`263rNG{O=sB!USoZLFdMY8b1H)UXjy+cejnKNf2i~gV(KSwh*U9CW*ymTyXxXPWw`bJ29EMCyaeyO6 -zm;WQq?-0fc{L}r*R1c{pBvV+2pra9Fc}^B9wJgxBfmZ3%8=m!eq+EvDb>W -za#%a1X4qe)b8Jb52XYyq%J03K=88a~*J?b^isU7VM6JWmKf)|9<@BvapRLYa=ONp3 -zUX$=fI^_?t+|4cyp2ooO&D}UzYB%I9{x1ji^aM1XX`!c7(o8WQ6 -z3y)f<(3`A_sL&yCt*TLb_3T+sT^|{lO#!5rz}}KXEcS_t_RYe#!fj_nq7ZC*W1nst -zq2LegAXF@)qiBe+6TEMkL=VCXQ#;|;#fDC -z96U&GLc0^NN&1{nXe^HS3PC7nwlGLcf<|q8sg!QDd4ywrIsSG}(P~OhP$(g%3S&h)t^3*()z_1(h&*tj(ZSNBe1$_Re -zUm+P=;8rx`K{+U~c}!nes1UurCPd*lk@LPSH)BZkWx;&4fjy)%EPCc{Lwowny5cOh -zB%A!+N8~YXz09?@^x2C&&fVA>P0uY)k`1Mmldyc2g_flpF6;zV&y<6K0ZBNnebNJb -z*gG30+mmeu&6G_x`0O{0OHu$F&X8D7gj=o_?7=ID#4-&9eINS4d)H9 -zy&hognxcm?l78f05$y7$=X*8p`fSE62`H`Z14PhQdDuc7|LRL8HplD5pqS61e|o;u -zeS$z7vS+rE856kN9TuKD^Um1}hU5O%??~R^ -z25L?w^Nzm|BDTUKbpVOqQS*rY&^;{N7G?L2l$RBdXhC)vem?q7XPImLL6KoVNjL1Y -zje;PRu6ndwV1wn-knSRgLdJcgSBraNkVx@Vt#z_LDe(B&Dv)r000lGYufa!L7xHlN -z`4C89w#4dsO5*DF*~aybPzb{+eISl{%YCJyxdq520*cX*`P&Tap_1VAD<@N_3?pR) -zAc+n#h-wiOINfRVTq_#!Mt|1Jrgbo2T(4egT*(3|3G~J>Kd_Jkj>>YY`O$@@=@ZNn -zL!4ieQM{Q|r0~k?)qD7EUJ+uw#||=(!|LY|HnB<4{evPxDO2E}qpTLu8x-3c;w%)> -zq$40h1o`DFhW9iyoW=>=Qm-YnZemeof@A}zK3%)xu0{;TPc&3iK%EBsWemEazar+v -zmx)*;OPysK*k6^n*Y#X&je|h}SZcqcPm)7*t)aZF^XDTCqtK=TNrO4Fl?ZlO+UH-I -zA{+hY_?&o!{xR`eh` -zz&WDl?{V!7apyCWwS138Mqgu_drOWBHyw11%@82@#m9!B8hE#Z*X)c?h`~12jPiJV -zUEgB?S>@*il6xW22l|ZCKX%&z_xYE46CsAr}G=Z|V!{6r1%VU1`aPiH8YksK3}=QVcf< -zuj%l9VO|S&{Q!dL%}rD68;_?eu%!-xYt3ki*iL#W-;1W?qUeI -zss189P~&;8H6U~Q&ANBN`P%0{arCG^~4<(S?0$dk;f1 -zdoC&!qOe(xffVJPk^9SeLD7N4T2KaJrvy9_W39F7a|>{NpR2fsM&usO39}z5v;QLT -z6Kr)}pHh&C+Icvv6~Op43EPoX@@C?$zAf`hRFMmOp17G!Tff(ynE`y82zul*5nHXIFh$yf{$1o56^@ES_Rj -zxXz(?7;p@vs`npatluWvsoi|TqW;A$li(zzvyuv?gQNg+S|MJIX1!Hn;@5_;ZZXk9mT*$cROq_lrkVXKVm1;Hsb+MMlz -z`TgHgvX7x*Ud~DUCiOTo%NQB96fPsi6a|(2+5N^zG43NJ7w#xTMOZ=G32yJpvY%ml -zhnwcUWayPn5Fx07Vqr`dhZQqj;@+dd-e{}eOuR|o!SWLy^~M}qJ|?{GbpVE@5)N`_ -zO)$c@tTtL~DumpQn!MzxOrPi3eIt?Z?|6g-<-OvzleEydkb@;nagY&RY>jdWj`s=iRA(k!po@Hnr+M&;&oG} -z*;f8y=$)*w7sC94QIiE<=Og9HPhN;id##b%k0PR6MWq+YCfGhEEVCFg3G2>mFT~c| -zqUaP@VOXcQd|qN>;;B`YcUKF&hWLOqs`J@ae(6&X)%Z|lynV#UL6t-J*n{rOR}8;o -zBhqs^JBRf8T%__UF)!meP#w9(PG~qZZ7|x=9JHIRGkEx{YxT5Qz`oVyo<4LG0Q%E*42(Z@zGBw%?k8Zmv{U7>%>eT -z=nAd+(I*FaJCd6_tGu-f|L75N7P}u&3=*1K>0$Ivaw69s?gPG_0JMN(0yhwe$We=RqW6L1E@`}!ap;r>1~_%k8p<^E^#A -z$)ectoO%4C$YAoI3vGJKiQI{FV9>|a(7%e4v}=0$S)|4-HFeE#`tDVqQ-21I|0@~`(z!b7y*;iwj8jYIns -zMiuX#i-R=I9mLpIq9Jtci3GRkXG-Z$)Fv^B9=yOUasPZ$gDXvj3 -z4JK0mvO-xijIaT{fD2+YoPrITPTq7Z`#r1%A~;@?{6C)5m(T5LhhE$}+2{sgn_&({ -z6&gbmTJ43@l;RrrC0r@)h$1)ni@_|yRERAH_z__tyZi|J*PW$Q(tZ>SDrW;%`RwFK^seZ}@D)~NevciwM>^b)1JVp4(T -zH2b_I5$@})N39$G#8LSt36(JHX7mtaGzE9U_U|-_q_q-$x2zu|%KsNFualliJo``K -zyYeQe90Goo0XU_go5KJcs*^|OwMO)p!_~8%o%v;P&v}OJ4%7)D#uPv>ZIENj2|6FP{cX8LRz&PMpAeiQRdP)d$oU=W}!>s -zAi&oI1N*_pBYq4nlz*}K;jy6^- -zdlVO`41uF4)EgtlB#{k`9g?{IE%w*_e9HKib+1y6vwx?RQtz&JiNT5b4-&)xDB=k3Jya=k@9))J_CeLQ02p -zY~{%IlA&>rjnXxO;^XSs)iZEeIElNHu4Fb-9HnpeO)B8r+6!5Mk-jZkV=w_70i{Q3 -zQ``$?2pX;1brS0rYDc&381gv*K4rykx-nsYF-Q|A-^oTRD9V!l5|uRkul4E`J$Av0 -zmU-Eb@JTuPDZtGE3&`{sa$8$<&$+fD)R_AQCq^YQ9HjMtcm3tL0{g=w^^-k$K(8<# -zB0v+ZjVkr$QpjemSrTkct5pxF;QBK;=SM8?9b$4x==t9ajW4|x`9qpLvmsFlqwSGy -zC^h@ZHZ5ngvUU{oZhtDZ16UNDubx)9)gy?+#`NrBr<>k!kS~7$gF<7tLLfPVe;@YU -zF!Xh5nv%bR6?0`-pz+-P+5+p#_0{vgv}JO7^EXc-p!G&TR@kV$^*X8y&l$}&;D(7_ -zaL_dM{TwDBPtcIX)Kh<4l6&iSBhA|FRjTq@;~Kmoh2T31C1{Vm>E)}s4~$v)C~pRk -z^qugrgY@I7lN(IzIfB&`YD0y#7gJVmK61TUo8?OUMrLT!Z1nX51Gs0;5Pfpl);1VEfvWvO6ui{b)DQ3qBg+GMp;q&td -z?vB8IHYJLOwR#pfmPILUYt_A?z!I@_v1^h&sEc2M!fM*K+oYL0K(B=PY4?N`o8_)$ -zIGyLI4jAfmg-~1*5V*N-%?9gqSyV}>7yiFcJVWTQP~sk*BWv;*^j*<!|_i8WgUO5zY?dJ0X`IrATryi -zU*O7sB5qKEhy_@F8tJr4W6~+7Icq+=OdV&$F6n^AvJ;ZJO5%y9i`F%p$otWnCM~DL -zhm({NLHalA!{M~@%j5&YQx2FAaq|R6Xk_R#@E>iI4!y%ncvGdChWWa>TKBC<48ku(o@kz$^ -z$ya68S>{hGVt+|K6J0xT8_hC5vO8ZsU9RJj;EI+wH$%+TE3(2NUsdv?^4CsGSkr?V -zC=aix9y!g!u$HLh<>euOssc=hw;4$pj1V8XEv?v^U;laH!*3ZMG2&A*5kVf`(-iek -z8t0F4>HJp#? -zIfrvZu#RWBr;bD7uZR3#;o-d8c4C23m30pw6<@XXh(PliLelLCyAB+HI9Uiknt{Cx -zic(ozAAb9RB|hE@8sVq)eWA?AZ*Q%F<9`o;oM8^6y`APj8Xg -z)D;O5xHd_io1SIfau(%|;kcc;<@J1-Y=u6tXaO#5e-zyQZ;+qUCx=IRXES`C#A*;W -z9+jcNHN==dE;HD2s9%OcZhB1hK(iJ&;&}19bUV^vOPEul|2n1xYs-K{X5f+`a%FY) -z*H3-106~5`9DIhotk7k`DaAwbxQ|08SLqBVS7ux6BlqMciJk9$|4H$V$L*X|S5Q%8 -zb4{@6`n-eF@DHHlG7z5SG`0oxw255aC3v+EdrHBF$w^WP;JEt>aJfQ>aEvf97M$S8 -zk2tEwZZ@L`;~D8quH5i}*HC+C!_RH`B2}p4x;>3nz+%SMVU6A45Hcuew^k0bf_0H- -zQm{3PVkU41&*IYbW_m@c>+blyu;vP014Bz-gyl*Od3j#2@E3sUwdz2Tk3bKFGSVm{ -z{V!dXl1+suFrDMC-4isMxa4q8p1AE-_!!Io)mL2+NXiD>?mwB$H^?gQX&hH$dzR6% -z9{rz;?_ZAHzE!g~zDP13U?#8C*RUTwqBU<;u$Hn=!c2cYvkzq8>5T25X(!Zpv(JWz>mTX*sepM?)ltmaWfH?2Gv7tfGnJN3>-Yp1ncV+u^5y+Yb -zBT!;l+^r4VnI;45D<`rTPXZWDFh}61ULSmMrzY6QGG$p=xrGxr2|OH*@C@s_`Ko+L -z@^(lbC*8V}N5ec$L}1S^w+!X!8;sh;JmxwL*sKAA7RNKr2!Wv)UIQa2*M?~tkLy+~ -zn_+ExpD_cr9Af9o;2BCu(vY(=ds9wQoQCBJC@B91Imj2s)8OTANA8PGx~~Z*$D|#S -zW={IMLbp&_X~oY^kIh=`z}w+qOu9{IZQ -zyoInAM0TBZow7-Rhp3I$eSJLMj1ijopJlIC$JU;ZBn96-fm9vCvl;i+0<~FVg -zKb6nD8_VVJm72(E6QaY|9SRv&&vO-MJvHQsF>BOB71SS0&K_kH}mSJ@gE}bppU9*mEX9(rVaKvKg|Gj`v$qQ -zE}MF7`09ZD9V1hN3;?^{Twy}%Zv#f1l2XGcmlgFk>(SczB&0hW5ns6!f}lAgxCqS{ -zAjXWCJ67PIEXb|(jcc8Oy-}Yoh#5Sz*ZzI(dW^x@yPWLeZ(YRx$%QENZizV`SkTN2 -zGA*RzxEmQw@G>cp>q0il1Ys_b -zROPkT>-nS0{QVr5W^aVNzxZ*Qr_yu$@d;q3rsde`&$$8947xR>j0u1qk-!1mLLgEW -z&zy9M6kk>s`PL#}B7pVRC?|Qr-{;4sd)krArz-JXu+-_!FzOUGZh&}DT8E{;7B##} -z{g-FM;n&PBwc*l7niMt%hu9Pm?ruA>Vb6lbu=jqkwjxOSe -z%eKGHhdR|lVRHAFCzIa}NOic4*PeG@q51bH*fUQ8ldJFS%D1jbB&wk9bvVLGv}8CJ -z_ir|S>HKucpM;_6)sq}&f1W@@HnX_aWaQoq4!qw=ol*Afior39R0#q(7W7)4`+MooS6%oq``8O>2vFg -z+A`YT57(1fu=!Zzui>LHD8xB^FiITULJ=(d(F2x1lC6e6%lgmYn)fOszD$W2%;#u9 -zQlO4@C`1X|dw$QT;s6sCLbYk>%%qBPkIclX|JIMI9?2bDVXi^;ND{y7g3vF1jOET1 -zmn2*Ea`W~Twi44V(^dpbuaM*4q0*B@FtvRU%qrHfwsJTc!!o#%AzbZ9x<>||D7=P? -z>jUw?1+!rr*-1jL7;tDC*3cOJ!xW$H6j2 -z>8esJ$D>C)D3o6MdZx#JUBli%%}FH(sB{o(6)}(+rwTiQ@$R$vd40ri+!PxQB676- -zS3f>Gw)(V*n0&j^Z(Iky6O0hRCdHVBEwDH$nF7Jg0f`;ZnBbr~hBr_Kb`K3-C(CV( -zKJ9KN^V<^x5$Q6@oZ`C#KE|_MsXYdKzbJ-jdUo3Q(vBI~i{IM;~eN -zqm65^`GF&&gnA#&)Th<1r|B$Tkn6yZA?mkI{lYL|IxXC|V75GxrsGNRAC`{E-$;Oq -z?Ko=EHuOA*#4Px^!uqVychLv_6|)^c2GrrT!hEoxOcxAZ2$m@#{uQ+_heD8^zw+vq -z%4_2H*`lGWN;;T^3hAwQPC(8cV9gXdwy#U5+`gRirAp8D7t~7Gl9=OZbu0I~$v$!g -zqC$cZ4BEBB+Ya8k?|_Is`<10YS5m0rH{*JA!qV47-j>9ntw=I1z=MF8dxqK1@&ZRE -zA-qi*<>j_cXa{IYGSWnIJ0g-oG5%0Lp|-OE<^==p*qpXmE6|DX#l5XYY)pG}a(j14 -ztJT|?&bcIWS5%M-0H)ndlJI5Y+(+tsO?O9};otPbP!j*z{4r}p7|o(e4)-iSTa_mh -zgF1ndL;O##k^jXy%WWNZGbkWhQz_m!_gNobxdXkWNF+NaW;Uj$l#Bac!q50-Ba|4H*J39+WPoFurF@=@VX -z6J$}7NfS0vc##D=H&bjCBE8q3)pl&PT(n%g36MJ^lMM>30RLsRky?~lvnQORb(#v8 -zEiC(aOM9-;LzF16KJ#5OMZ2QAkH38yKF?Ieda={uU?ZB54|U?=6_yW5RLf_A*zlL` -zA@HZ)I~?3?k|9B*VV`SO4-}Y-Yd#$EoihAr7Ob$APW%oX`O0)T -zLN2D3_h{eQKIF9C$KB5~z?d**L+6XwWNbiD12p2Bi`?f^C{-f1z-{KabS`G=dhkI8 -z%p`qQgdWO~``XT5L|bUeZOIfZrnmZNTP5!90?tT>%^&o0nkyBw$hdj>{y(N;(TKnz -zDQWRE6@juMJ0Bt#@BYX7Y#gvC0mr*mAf^PTHZ!nH%5Uh7qLoA#L^OZZcZZF7Dob6W -z5r1ub_>T0v(2TUX0k`z6`4Q(v^<8st&es-ozKH$DdT32aF7jv_92d(5vaJe|Ha4ZK -z4aj<1;T(kH637n)F!)YM<@dDq8PQ)+L$TM(uE68FCv(P9$7I`9Tc<<$`fax83e_zz -z%XOp|)3NrkT~&l@c{Hg~PPKWWy`YaoI<5mZBRwD`lZVLkA8OPgum%7rJ^FH_AngVF -z2*O3~V-Xb)N|k-X`tL?WX80W8mrn{P_h>F#3}!-N_)HX7GB+<%BfnK1d1Vatgx%tR -zvWeK63$fTA2LStx+Qj6%q5`l#_ro2yb&;KG=w -zFRoj}S3aQ;h;RTbG}hbc5_BI(L4MtYd(dGWBvo-AvIYZF>fbHouW_ByezWaIl3V(eo{KYkdI${wyS+zoB{|7U9{Kl#G8`JI{&84QrL%9*;mv4K$YP -z@kbw%K0fxG)I!5Ph%s|B`;LQ*IBEzXVSCuU5n}Gl=04t28CF_~W7Y^NW>x!~&{`IN -zHK-|!eHKXX<%`0YwyjIhHJLA8d`83vg?NF_ztLJjleCGapR$v9T5Fd02A{uTz4M|v -zD*^T-;Xw{o-;17jJ>Jgz(Ga&NWu9jJ)CY(?DeZO7*lVQoScIeMbKQJ&@^LfOw|l^k -z0?u00t^lU0hCehX6~M(_n0n(MzIo7qK=b&!;Fr(KHb=>>OPB&jwH7Ko4laP<0V`C! -zc6Yt}Q8wrwutlqWJyGF_bH{~8e>u<(oVRtuZiR!%(iWCHVSybh>c4+0Rbi->x2hOgk -zgm6!QFb1IRXP94YO^;Tuq?T=_p@kO05hyRdLgqQNXp`LI_`FV*7f(zc4kDk!Od|kp -zOEA>$Q1Zjcy7~!8!5ICEY1nXnc@a|dbUNGrAv922JGVJ!=(4F)dL;<4P|;95aQX@a -z#KDGsW_FMm&M}`tPtjM9`QQdE7iKTCMPmG!X@*{}Up0z<$&|3?+sNL>2W8iLrdrGN -zK-fB|0L^$XKaFVjt1{u^iSLIUIat(4DmT5-Nm!{v{w)CW5QblB&H!aDdF*V}_f{ip -zyNL&G@dELS5fZXZAPJf?=}g-zM>k;FyAX0=eIZ2qf(MW|yWghs^X7oh0B0ow -zuO#yQ3d<*!g5+)V-{Zhi0z08Lq%#Tr1%~jiyjzIwfP8=Kk*)>kYT!5v_A*j;rpWoq -zp+T~RKL05?2>y}lOZ|QNX|QmHZ|;5fpC}iVE|l3&jUs6Z93T3g@YG`ICVWF-Cv^H7 -zwBV;xgmGHySugfs3{P9o$gqzu{#W(2+-|tgVthLwx7y*AE8O)Yf!VDz*3NRztC@aUj}0IkYb{;0EA( -z8r;+GZL#Seb6-#^(?3|fnBkD;PVL6heK;|m>lnNM_+>!m#|nRsbVfPy%l}|&`NYqO -z*vA$82z$%0VUZ9K_1etB7mo}`)&_R&ifm8pBeIdfO$dF0$6HhJCIXk-18zM**oG9t -zztB#OKINW%sGC~d9&6_?OTG3P^c`j*Mh1;dUcx@sNwPtc`K&j1q9~bVGUj`iZ6wkG -z_XRYJVA=2L)7!b=w0ldtL-AyoGVFrSY5a2-9$cDvhVx75^1IEEH*kcz;A6q7qVjH^1X|#3El=Gx0=O -zJ;!odU7#NSDS+jVh-uMT9@}%>2kZW9Cq#H7g6;;btvd)$VSXfRS!jIgpBJ~oI?{Y9 -zn`I6ohbZ3D(CzMGCPJ6A$|Y%i4Y$5?QbJf~eJPU0$G-Iw$SgO&q{&y)`!ga9FN@M%@> -zTbTIN&k!_Og=EAk46HMJj_7UR!zTuo``L7uVCxVC#Vfxk<4(Z-paP>NYuqI180E2 -zMEOSL_>K22*X01o!msSlSq#iZMI~f^l3Xc;-zJwB*~E5aAU!tZYi*zFAQv{|HQ|q| -zy=RGAPR$aYcFaZQU>G{1 -zT$Q!XOg7<5vS`2DBI$5_5qGMEa`h4ElN&Bp-tX^pdQ6Ppo!lWoCHzwAHFO$yKbVHL -z+9WnlJEAY3K8Oh97ZaG{o1*p$nR2>u5cxEwbCyHOy&5|WCvO&^qp0WYUoPE2urn|~J>qWw -z6#(RkF>##+y(wIS1QC{TBok4ORSKBH*AJgofr3|NgRHoSO3w{NC;_C4kI6{#W~rBB -zMZ!Bg6R3X==u+-HR(;7L@4{yXNXw_~j|We9k=y&6d;43r%ozsn$DP$WC{_))+VabW -zYG%TH?=Q|?`8fhY51=}^@p-a8cdj$ZBeSq1MW>g9QTN5k(aW6kyu#=0?4JMl6qiM#J$aD0Z?w#Q9 -zHIMVT5K!CaEi2-A_{?g^IuT~XYc?6@XQsE3XE1wC#Ko3Adu{&Y`yr~wP7dfMWrYX1 -zLjjN9`{$F5B{oIIDD`2JGVb*1;|`RM?1ZPFbyBAVIQ5kf2<~XS+S>dey`YUA<=qpn -zNvz0v^J1r@+x?{gd!!9GdV{AJY5DfupbH$hBdBy)(bNex$gzjSF*R=^RelGnOq8m~ -zmB#td!IkZo)|n@aSnfl8dVpfSn>+WPw+R<%M$Ud`b3vAwMTm;|=YI(lp20zUz~5LtV{2>>Yd);w;o~SvBfUlTmi-D02H_L$LN@GpQ0eH -z&!pr-Huy2o@gvM?tkE(hc@jWo#zZ5&h= -zzs~f!Bu!zbMtXS7(}Xoafb)!=o7c3b$DHHTUwx>xO>f~TY#Aw{Q2pP+y1=)~^u_m? -z7(S5@Tc)S`6LBQ%=QA&0!!U&SN^rR`yn@u?{UxV2UPl(pOl%gD36t~}5q9yxZ-~zp -zK$D489=L=_ixofmHFI}K`xp3;xL^k}J|yy^cDiPd`rJtH*PWg=^SCUiFWnAr-<@YP -zpU)vsSv-eQud`Is(y2|u -zxn3pa3=tZy*k8fP;KM9vl;z{#?l@Bsa#Jvl@&kW38t|ZL!D^JxV6epciuep$ii{8!Oy~bqTqN -zkm+5e?NsogaKhm*#a?R|7c0z&wTOxI!2Ppf@Tj`SuvRDV=KcoAiv~;ykyFu~Y$HyI -z(u!b|g_&CXu_#Kko607qUE=_eOC&p880ADQNY&&t_WX5X=Jjh_e5-7cEDs@+xZ2RXQ -z-=}Gcg$FOL<~b#UsJb(w*X$z%9i(RA%X`b;OH!d^7y=?GCx1G#dn@%go2%r}ikZ>L2jzq(6ddBI8P7x?VMc}eu -zF^5ZxJjP61b$3anQ%6iBm1bT$s#KVWBXCpwPw -zRxU_pjN;F|y!LPX-H1q|K+)FdF<<4&HSKa17y=CdH;I!x^Wbec7F_FHdO6;k)j-(^}zST_A#MWfLBFB?i>ihe_fEhZDyf;8TZomzV^x}Q{YP> -zjC1XL73_OgdA_jEk*Fnzs|Au`2vc8|?5lxud5o|pHu;uA -zIM_pGZoN*|KVD2GbS1**#l(MK_guQ`GG!DOD~Jn=9Yv5D4*w;eQU_b{dPR%gRZZFr -z$#)*uoE6sh$2Dc@Zn!NCz6OvVkOrEwHQSBttCDla{JX3CBUk1v!6Ps#y|=x1;}q`L -z;rLh%QjJ#Ofx@!9LF4vUIFUuc4>m5?cyES{m=lfuX%(uXS(rE#)V)Qs8gDeTIF6}4 -zyHxXbUkT9TzO%D70mYRMt0^{(1*9^mhFwAua335pM(i!=?_wn9<0kXEV`z^o`S-RK -z&4uNYO8PPLOehPeQ+QY-UkBA@%ewFv{aJHcnH-z+#bKCf!5=3ba72n|d?({M3vzq= -zCz;2q#Gb#}qw%_bNVvKMz|r&E1+eaDSk>O%;rdOJ1{mFklAuE^`O=ET^-ICNY0>6$ -zs%t6+z3%lMMZHjxOJTH|ItIeJO2bFc`BwRnneB=num=-(3>`Gu7m~ -zS9nu}=ktJJZtXzsb+tD@=YfmqRW6rY|05F!&RR$M?ZuWFXv_Vog~Dt+;9xN=JNezvix_f)V1OJ=HRfaG}wZ9FsusYNyaJCidbq*`kiBxGgvOU_;J)*bZ(l%Rx -z=5zz6k2ycSs5*Qoq3;BnK^H$^kR-B}V%(Hh-Xt^>%!`}i$AMY}yuf^EjO)*4)zkqoY=zH -zv#kVY0I={lV9Mx5Z7MF)d0bm&^;Njyg^hPqg7*;^<4F}5UM*#nmC60+5q2D2g6wfV -z?}c8i*VuF7P}vD6i;qei>y@0MJX(4}C|CmCw2>`h=>LY9OXS%KY$cvcr#%U9OyLn( -zG9&-o_OV}Ea6z3!4AvSZly?|AB~GKlpbeSp;b_N8*n0c -z_reGsFgBe3dfv>M^1zsCB_)^PY#+94CRuEQEvs!d6{&y$28vWmRC?>X$^V{dj!bA+ -z2V2mTtnGd$K-B>WJ%qUT*=VhiHnF8|X7BK2e!Z>$N>e -z@SJ3lA7kn`At6+DcE`5h^%IT#aV*G(x^q5@^*>mJ{7aS8ppQq684kEDcEaDG;mwH6 -zEjG)sc$vkkivPkbJdwoYKP2+0x|(44-9|s0i3mQ$3BTZf$FV(<)0z1^S++*m8zuEP -z!IbG6wODW3;@WFL*q&DgTEsJX%f(g;$Dv=k>?Y^BXp}ZZI>d!~-NQK5710}7ox*YH -z1d9lnOliiituJ^ppDmFE)N(*(~(^#`+b6vZS)6s?V}1l+|8J(P6NqBS$dlxD9e(^2-Nod}ueRP|gOk6at0K-$2%b88W^p<@76eQQ -zxE$|O)vLd8r*0k`k3=cG8=t0HQC@m28sCC&;=u#hCV)k@1Jq`TczwK+tWQ5b6&N2L -zy3ji)k@xl~BH*eEk0DjsLi?7P-@j^Y$*WKZziBd>6vkS0I=*~N`ZdAvpz_4$yQ(8r -zy!xYfybHo~?7q>KT}&viKz*FS;|5akfgcxS%OczY%; -zq18ZAe&87ZRwbrxG9}m*D)jukhQzsP^i%AwGWDO=m;VoHMPUbjDivA%_`4M%1xAB> -z#3-U19GGqHfT>=);E|t7--(0V!9`(AJtX}KoZ6$S=9ab9B*1KeP!kIrnFAHZ;XeC~ -z&WdNaGOpnF(Yli9S(fRqVB|Isy&-#Jli;%3spGJ4GwO{a+ai(db0I$+E4fAsg>`i@ -zw_U)C!6d%GO?!I7`08LN-?|>BG+!Xn3ruYex@J0(n*}#P=K}zt@G=)gB>NU63J1TE -zjRKjbO{HdPF&)sNC)DQ$ki(1ZteH!Ip8(5uPd6aD0;ljJ!U})AX*WBw( -z2=<*6H5zP -zI9B{g<|Y$YD@dPzQ+X3@SnQIC^85&HMYH%R_k#>Q?n{3L^N$F>NGg@c)09^`ew-c& -z#L=cC0xLYLloLqMLkYMF_3g3Xx&4SHuN|Rsj1QM!^p&)OH)o{tNPrrs#~>}*!IY`> -z>21^K_p-YT12n2Jtc+i`jPtLH*{n}VkpvVuh&K|0r3!fD -zAx~^GZ$iQ -zSiC#S@>KeVe$MrkP^a_n+0BoQVQPD3I3O3;>zY+`!io)rW?URP -zKPk|Cp2h?s*(`q=g|)EaetPUe`){hdI!Rq`Cz|#wytLU39lr}wzljD;2M{<`HaxMp -z&V<0-gl%8${yb)wea7iK19&w1$A3~s_Xa$9FNB0x^5BKBMiGLLWV^wyDut{uaxLPG -ztb)Zc_npM$3^tj7QcumwJhoHZhf%pHVWd2DS0Rp|uc2&tJ_&hjjp=xvER@Zyfc^14 -zmEg@_2DM=JGHc@dAk90!Sw5@ExA#`CQvfJ@L#AR15*C95?F$jC*XL{Yrq9!3<0|=J -z)rW!PG)b9!wLqlVpG`Ra;g0G(GCrTa_|4eJD0#jE5^=T5M`QaJl)ikDIUYN7%n1c- -zi!S(M6G`#moaf~8it70nEMs^xU$$oF0r%pu2c9CpqANh-oqSuO0C8z8+2Nc$2L4~8jX8rCjOrEns4IOr5kqt)(vvTE -z7$*;@bEmBU94;>Mp3*-np)tFX+bpuOM{hVEv3t=5c)aJKp%(R>$OG -zN|YZx{O>_ac1wHS@+)G@K6v!vR?|!CDUy0gKiQN3&ab4=*>u-LeUsstMRqe37}X?c{QrfbsSz@q}G=31^`^PpMpe)|JW?c$Ax#OY8g -zPo8%L(tX`XGk*K;#E)6vL+PZSc%$2a_-C&^t!f=$?qoP5JKh|Sk})?RqwxOK{xZxo -z%yR<(-QNdpd$T{e%PgX3Qqlatyroqc1!)fZPMT{`4btd&zJ>fyKHfdVS>%&&6dh~W -zrDNVAEA7(ba0MSSyhp|t$&f)j`YvQcR+A0gq3yJvk^H>AlgmHfd>L1LsaJzYcK-wE -zJzyS-gOhE%orSzFz>5;ZSg#Wch+OvYNYR0pw8vj7oCOckL)Nu(kT71H88SK*taReM -z46MY6=fK($l28Pkj8f+ -zc=Sf)n6;McWQ$#F%Xvv}W?ic#t@SP79o5RE6cK$^catgKPpx#ik84QiDfKTNVSCwd -zARUoqfh5Nn^9Cl<%mRKh81g?vz5u`$;)zwQE2&EbF -zpbyIrhCkUs2xHVbUkItKm!ZsbEYSAd16zsX>PKeJ_+pdb-jf^dO8ZM`Ji(0AkXGex -z)O;h$)(T1s&hc84bwukn63UL2C&cgbA1dFaRJ?-85?xGz*An%4?fY9TxgMo|HdJE2 -z{X9hh0Sq_b^jlfvfF->m(Yhk#2suaPDZ+-vouwxB4ftj2jhK21ufims=-myl0s~#W -zw#OOL@YLZDCv8O*^;uY66-Kh?UfrowC$)`4B1=s8;SjzDD(s_;d1~8k%eT`0^ThUh -zjZqPOrbg9R2{(^6XFX(0sxTf?*imDP4EVc1KYNTAE%x3Zxcf>%AI_K2|gvkvO`$c*r*$I0{7O+a2!{K@lb -zABsNUroacbz)@(Pk=!gZNjquVa^qlQwBd~UQwNR8N@^^Wo(JTgCff(GzoME)_U&P5 -zgO1!E-Cx^zpw#cGUvYU4?@W-ko^bL>X&c1_+Kz -zE-;)EEb}5GKKIQ}T57<&t0Lr8+br*28S_*0D%|wChf(3r -zytu}=#fi{nJ6@eakODo5DPNH|FDHz%8QDM^6ayl<8Bp{^M&J}o9n^c#0_DC|ADLNx -zgiR>(?jYoa^EwoTWP^hnS1s&cLfwC-Dz3IN?@Rt#RHE3sZM6flBiz!DN{Se0XIM9+ -zI@9d>A3i{hY2PJ3A&t+?wYza62pg=)?L`C;EE3P?D$_9Lwp0>Bc9pYhs+@2c&l)yu -zU}wTUqnmW9EswhYa!ThiQ?NtnJkgut^h6IXXE6A&Wgluot@<4)%rfWS=2Gt$6~BJY -z!!A>Rzf$nwG|=%Q%z1=+##7Zlc5XZ5C33X-GFhFvOV8N;8vm`< -z=Q3yWKMi-E@idd&8f8k&8FYz -z_UtO`pRAW4g%piG)Kdm7U4tCg*3GgSk9I`WKXDluTM6qw?yS(vZXhGJMh2M|Rjg+1 -zSbrs0O&t*j6?sUBx~@1;MfBFl2!2#B -zYaF#vhRuJ$vGG>sV0@-6orGCF!aIy}pKziDJe9N3%pL={&XM3%|B-V-m}1AJ^owQp -zO0p2*x3;nn?yTBW&JQ`{AkoR0#s3@ecx3Sb+bbUu+3sCQ -zxE}~)3v6HEPDZ_+0J$EXuvxz6(%00naolSSO^#AyE~-(E%N>GfWDi7HT;xE)qdYO@ -znrB@4$pNR`bNfdDT#vPa^zN9Z6s6FQVp1VX(W|u~ImTe%LExuT-yflcylV?ZfItIL?#WBCa0W_yVs$7#@*gn+^<)GFG#)}i$ -zV;IWD{;=vC5Rd*T*^whj;pTgUscm8^kr0hMOx%+J6F`2s&+AM>;8VM04~RbTY&z+< -zfl_iM5A=zWcOO^VOcc6nmNv@dK9J`gZ1m%eKp|4Vl|(%86X9?3_C1K))mdRCAL6Nk -z19{~0-Fd96ItTDSQzDJl7jj!^-#hqCI0q#PGZ0p2QeCOk^h+d+l@QA5NR1Pd(m-kz -z@C!R4TFaLIqv-Hiwm(jcL9BLY&=jndui(jiNC -zeRp^H{<6%>y)!q?Jx?6b3v`^286KV(^9A;_*g2k#SMFb}6s4*;U(hk+R8%P=KE#sB -zGr>31tfLnmgy@yCZ|39%hzrLDa#c2xsn3((eR1YZv_^4rg68{Rb=N-UeK|9Xm6A`u -znk-I;1Wt-y1!?7@IAXm14x41>+;3Z5%D3jXTQw~UC(6ut%U=(((grdatLl|eys>*k -zu^bHyHcB}S6OFZHR?_gWmM2>2Z$s8oEt5eJ>lAW|S*Lo&v`;Ef;ld}5UzolWTGX5I -zTZtg>Q@CCD+L2>%rx*o#VSVj18-0E=cR> -zB)LN@Z?$)=8kVMQS;TSZang?upX=Hs4pVKfYX6Y8pC+rzWtsHLPoK+Q5W-s|-|pX= -zh&i0{6XiR{pJa{PkAnOhSGlD2L3<8e%WtEQP=)u(Y4l^j0tcX4x#_Q`GVYTko-2Y( -zL!Mk41{+b^_dK5#U1P#1`6nsz=zVr0$s?%7WJ^*5NBI{TflWejX&>%*5#4&ag*BL?*b0Cl^*eamL9N`av?L_PT?kc=>6g2&=N3sPP`z-IrYN=WO&2^IWfp`2> -zh*ouurF+uNIkD95M6~qVQYMP1c?8GyvBPhppOV>pR?R>Gxp(v?rw_c~CytV)BQ&<# -z;wz$rZj}SXF}yzn4u3mjWzDQ*Yl}REx8 -zPi-rGH+Na`-{E==OWjeOOuK%qqhVP#;+)48XN{bD6V-^!7Dl2-v(~tv9?yiRkoq5& -zj0ah>J_B48Gi9O>3-s5?f{$(*Gb-T6|21h+bK8wMkuP|M>UrY%e>6Aul15LjLwui( -zm0a=|RyQfgAwYAyKLOi#{p)4=ySJJi-op6pr?c*j7ssBjvy5)^z{X3^7o;YBFy49l -zYlCKZ6s`-GF7L$<;XvjXZ8B|6>yWvO#XchOb9?dnXbN_01qljc<;}_fS&MF8gBHC+ -z9U5 -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 -zs%E2i&uNmgV(YCvT#lc@4Cd2k5{uCIqntvmsv -z0^ZQ8ijJz-T{M;&6@|tHA4EaLJ*Dt&KwXM$2SDS+0rTG(PoXR5X`hX -z)X`sR9Mn&8nPV9iB3`v1twmFKAU-c_-Q+xV&cOd!aQ?=4^`(xRID -z!SiQ%92w`z@@ki`4~{@OXq|D##4aWeH8hYS=nEfK_RJjAv%Kdak=eb{ehpb)np212 -zy7P{HVkv=BhJJx7Wdc>)_Flr^)V5N!8y0j%)2B7RFvZ~0x8ZoZo|LGEnRNw|Daa4L -zgVkg+-(OFX0)@waD`U$24oK^mxNK04s=k2}x?@a_FeevH)Nc9iwB+)wQw=#fVcKHM -zMNwsQw_$RNjh^RO#9fH{&$-6$4?m)QVfj8oNp9E5q|h)P+YfrhE&ZK_>Cx0EOiSN} -z6cg{7X62f&ukpk6k+gD>m1G%#*eFimA;-`^V>^-EX$i^EMa{GPwrq^LnQsX#qqn!HsM1zD?P3`*~H4DOCnP)}VuSB21kgN%fh?aRXvg6J_qZ#4lQmCGA` -z;Ef%O%)xY&3_+Pop%*j*;=XuSz~RgFC#b) -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 -z;-HL%1jZ -zlCHCd`0st-|1L+DE01}^l3HJSnGAk}EmaAawsIH`nA`aphggOpUmhR1_+7)T>X!_V -z-?eli*NcVp!kGvkwzG-u&BNe;`BPO%3RE!rBVBHs5l9`?<{Hd6Kb#7HBPgz;9$ -z!X3iSAubzu+cQ)qfTIBdxmxA-WUV_fVRJl2f`pCq?LjHrW?>=7-~R0}Ace428@m~o -z)!MgKJ?NL7ggY|GR9K4=c{AWyuW6vLyjjKRaYWM`%h?mlu}Md$@ncPX2)$T$Tp+yZ -zs;5X4KH0lmN`zn8F&pz)RimccXixSmu_u)oL^RjPK<^;Ae4kOibvWtZbuHgMPeujf -zgR3uBWxkLZaTwDB;7GT-RNJ})hm5q -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 -zlStKT#;_)G?MHRg!~1? -z_wKw;4YNEdm5=!vH!c!QmyZk>r(u2ZTk$WTGRcxN67Hbr&MQTMLA!#q-|O|A*Tm>f -zKJQ(}fiVgWGA1Sd1z3w3kc!cXT;Qsg+$C4XVc7sRHjd&ZYJ$U~bea2cQY$Qha}QR8 -zP!0xSMkkK;f2ghg)K;H?y%&D;Ky68H$mI5-(!(E+!{Sq{sDQz)DN_Tl!Z#L_iiVWv -z#yRF3f(l$K{4=X(EafJPsh~c=MKDhgoG(W{Jhvu13`GY#wu^j_yV%lWy=@A?}x -zZAiMmynxM%T;h&M?+Wk*VjUb?l@BfWlY2CW6lEfLBq9IwtN=)`QDt79J&-hxp|Ci| -zzRB4G9R6tw6M#%+8bA#e+T3^164^KnEbNQ8+#|)#Utn8*?`LPU`%j%K#eL5tenHfy -zIvddRxA;-#s1@iRkQpebhvh#m?@;z(SEU6NnlI+fW-2qDrn9=-$mcS0dvCrMVmF(p -zTsXI|qpV##Q}&$!~G-Gdvo8;n -z@~SmwEO)moYCSQi1b*v|Z}e?>PHs+zz_bDn4tmDRV;1x_{Z -zSEe>7oiynj`WY60fq7zVxX-^k9?3}Rx!&)cj_n0DvSH(r{^#1-c<9U7pl+C{=+~HT -z_TwXaZn&Ew+>9^lm)o`SRTg)nbOGx&kELGNVx65W2vh-Y_fg+-G!&+Jhgx3ziNK^X -zYf%u1FZ-WOly*Wnm5LpL7&k0?#TPH&ZI)4ZieZV)8)FLH8~o%Qz&OD2FkC4t%<};$ -zr0O6|M(IIy7^Suf -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 -zD75fIS -zj*{1j(&RrQvpD$wus~wOg{zPIkmwQ$We#hU1+$TY81>PJIv%jllb4}f%_13peBjW^ -zJ&33+jDq^xOc4j)CzG~T_xnxA*zI -z(mHDL8K*BWh1pQfpK=GJwWtOz3k?Wnzp=uC!+!J+CHh#H3dd^^GHd+dkUvxx)Owm%m;0K(t3c}(nIpp^~ZE3yN;W+ut>BHN4SB7dC -zVa>+pCLp&Df~t5bA5w>ekZdh+t&7I;Y=4h&(Ytzrt>ugu6l~NH&YRlamDxt<$1A$T -z8he&kOg?}N0UP_!17~x>EqkpFuTO3H+nv==EKd{4exKzz8~Dr#%V5sgke2O1`LQtBQ9A321f%FZtT9?&LGJ?qh}W3X^71 -z`5)tHTV6WtZ*ym#FaA=%c=92({|Vj$~vvJd@oCy#ILKnov~-b7cSS7crF5wbs2>>$tusDR -zF&n(%>DL|Fg=G{$z91Cxd??Ar=jqx0i9<^|ud@qMTW|)ytMd(P2FwW3-cw{EW-WXp -zhnb?R)Lwcjv~DyXlHqx -z=Z!`A)q-ORm`sNEYvXWM(!6Y~i-zZj=3J8feBBa#Oa-c`y5`}RbWqatr+LX&1$<-> -z)=JUsyGr?(6CQOzz<}L;w+&0ZzuMR -z;S)83F86r%z}bsvg9Z5D8S5p|_C5;8(pc{#pjL4hYkD=!%>}Cy4Iu8xXw|dOz4Lgt -z+V|!P9~1d6SpU_)GgKLv|5c0oZ_x#&G-1|g=;x(gJ|qyHu+Q#xBrCy|z!|Le1tBt+ -z-%v+=?@+-ttPolZZU(o|jbv6l+ -z{xqsjB$e2~4(odU=8x-$1zfQJa#`o%XcJ=HY1bH%%Hi9RUJD5XuKGNPKaB=FWIv7Y+`ItKLqy0Jw}${}K@mn+V(%Q*HNniTp!EFMbk*?q`hZWxLV -z*I9D?M-6lEgblK_0DBBDUp$hn1?*oC*)%A^T<_SkRp}2h8oe>qDjqU -zxig#iYr_8@-D>8h@!ap#Q@W-M&;?OB%^%XlK16tWzkC@Opt-WaDDj$Y)`{xo$OZck -zLIcd_mSoi1bgmskZapgKk -zb($50$=%GIvhu=Sio8M#Fbc~HW}3saf!NGBA%sG+{i6%g*5{La;2!P8A~Bs=`DewR -z4E|QG{J<3*%W0l|Lwa$Y{!jIMXV9=(iKUh>LeJlcp}2@;M=A@gtIp>Ex*Y=3^mE|{ -zm&b~vj^+#m+{9zFX7h4dH`OaX7MaL7wzL4D=Fn1kZf~wBTz1or=}ph^@tzxNQ5)BP -zDGb&7D!b}Tc5WnF%{m2VUIWgSkj4r2^^P56+6wz#ou39$I~x`v4p>h7uY4WKpG7?0 -z+x->rnVD)ODBRbe6Ql2TL4Yo@WhSNK9J9TiROT -z_qVRuHcMcM15*McP*B$HG%e)&{9)ibO4Ea$&gs|B@jpOY{MYUtdH8KBnz{k^#Glvs -ze`WAYiiXZit?;dvZ@7U)n+Lte#iF`IE}Af>oG0t_NR&0ibw0YXA7*G+6y*T -zkUnx&5zVkfrLOvfl9RQdtr(*uGh*wOr4B-m;pr@3wG4nVAf<}AESPM1wc&vG$CtE( -zjh(4122N40%+3GY5Os+7o*yDYB!7Cb@#joZrpx_;fq^*zuAU*f#po(boXd8VAkrt! -zD!}X>Ei$H7a^2!r04YmCWZCp?TE9-V$o-B*yoS%!g$uYEP@6yGHhu<;4%w|HnOyLe7>VQ58B9){_!t_e3N*2HLtljSUhldzPk -zupo8@ZCn=&&pw*#(LGwzeevX&V3R3{fc7qKk9+95(hqjr?fN@N-3HWzcyo%)l7AFB -zyB+SGll86Vg5WyTgWTkM9;Tjpyldf_wHe9vO``YK+l_= -z$*y&HhyNOQ>~v7h{x#5vwM*2d$W-9m+vHj?Ao8!Q;>AVIjiO(tVxS2*bkcRGf!p>gA?))s~yESh)5NSWrkN5#x#}Z -zrb>IKchDd^Em&a~dEn)HvJr{h*dgX0ru+%xd3Vh|5{w%ZD=qFWtNawdR*2ECys(D;J~x|2s@PO;AvH@I{mv= -zLRf}je^S;z74y})vTU!I_r=8l&iv_D%B-|f&R9b<>#`vX{$Rg%uSxTCnZ!M(__%}9 -zN-~_H&fxNS5+$~wt3^=$@pO!s?!H5@e`_gZ_3H&mx!o6!3_!W+KCme__q`1>L_-}x&)9-pl`jYtWnocYDWiv+~H!HcqR -zld6ExUA6f+J`rQPO^0hL?eFK9D;>>%(NMf!gDP5mgVx4y`Blueelq*0p=8vvcI(63sT*qL@m_PAM}(WBP4x-wW00*hh}y%qYK6PvB*Wto&~LaPv@yNi91 -zyoQia`oBAA&_e)A==xkQirXkTH24Zkyc4HEN!o#0G7R70B7ZSdq>Wizr>+H|moUQ7 -zSO(olXG5Xp^QRs`c*3s3+&5mC6?w#7!=If8a?v1K=%CL&BC%>RA$qI1fS3}JG=kXm -z@BYJF1FBBIscDm1iE=g;m$JJzXhHy;t}1}3lE%UL4}|WC -zW}7>_*Q&~|+yx(So`-Y@Qly(YgfAzUD9H@bg)xRz$LZ(3frMpoDjn -zuN=gja95|JwB7mL#97I3oCogO$<1RipZKGh49d1{t~0L*Q=)$jq^`pi4A`29i| -z)%>RJrBqgN9*t*SO7qhvd0zrHa-XPJyDDcv#uT(0E^Wp(k0uAs%qUjtCkp%!9GuR@ -zY3TVJKMWmmzSsM+GV%hINEL-xXcdP}<4JaRnsPnRUF8ICv;@dB5}LJ9E?$0nFZU5( -ziXxg~Iq#m(ZSJRk=nExcY@cFKXle@ZOsi2T1mVem59Zk;9rl4=A2m!wy?9^H>HAsTDJGhtYMgf37Tyy)ttLo7;^^{l -z2hI%8JEvmIaq7X=^GxRt)+}*$R6G{`+*nW=YM&P`^ECO-s?$gK2g%zw=mfm@VS1zzG>6?~u>J)Q^`rM75eB^_ -z04t?yKxMv;=c{u7v=nF*V5U2|(rMA1lV0(SoP;2t&Kce>_|~XNiP5iIe}#!Qs8V@| -z8>Xi%bW#jkU+&u0O!4a{7Vy-^jZ#8B`64=lcT -z_J31i!eUcaW~4Ez(Qon?Q{qnXYlzGYe|!3y#~sQDZChf)O}s=sjf{N{j4csxycFgN -zW+caQQM+Sa`+i!w$n}BXz4l^PbO_t#!0|?*H4|Ii7ri#HH=@yibz;_48hY=jDlV-? -zXX=M>?3bwLJ7>aqn(Ue}JaukL$s@%Pzv1}+mJ2Rvq9IQCfU#%dV+PelkU+Y+i4U)l -zyaj@scha1dk4r@X_oEP<3yk)4A;qQ18MyLt)fQ4m@P5mW?||T -z*q@8prilg|QWLPA)0pr-_BgFf?{Rtm#SNNI0?QN@5_6@1%n&>Rj7krEQqrXR2*t`O -zZ;0~+xN%Vw2$<;m>2RKZ -zO~<6CFXlZWAAq8J#m-a;egu5RH-`o>|Hgdc2~EjSppB|q5Zm2;mAZ#^qF(exF~(@r -z-Q{PGZ&T~def-~^uOq5h;wY>|->k{vSDU-fHn~>!vaV(F2LcCtrsmhp>qXZ3s^e=q -zpzg;kvv*UPF^_r&B*dGiazz~c4F>|;>^(Sy|9)LU2coIJlhAJQ$p{s-?{vboweq?~ -zc>P$D|B#g%&&rsms_dyR<3ZZ!Gis74lzX@{#(r`OtVL?X*nU@1yDD;R{>`{7D!LXS -z!i$tqon156RSd_e3=F-*5oJt -z*~%AH5DU9qq(pz2TpJ1C7IPejLH3_`!4P)?@ahpsSQ)d@6x6G&-Ww}f-TY=MTl{eS -z3t}DtOrqHZ^~BIFD{S}oqff&G8>Dl%Jm$uLaYUsOd4zHLmCJ0sps#@2v~Nt9Ed$-t -zj^C#A>oECu@JiOxFtRxGQ8z3JB=NJ?O+Q6HF9$Bg*T8~~d$Q>w7g{m#xR?w)?G$GU -zb0RWuJ=_UD4vJx;>~BiX=JMvt1wY}%4h_f*M6wY;ME=2Nuj?W6_csI3U0wbHX(Rwx -z!G%lp#ci*bR&~n(qtTrUK|=6jz13}YNTF~K=o^J)R;?qd*QA;K>#+}XawLj=>8`au -zMqxp~^BgsbZh*&ccOeQ|0^A5~8>G#6c39cunM^e2*)X8!l5C1s#lF+`atxxG4)`Fh -z`^B05Y^t@pa(!`Qnxj9j=ixe`TWInttpj+yoKymO!|FsCPS^cRM=Du3F_ofd;_$oo -zi7Abo_BS4yiWKqW!0(}nwG^&-kL5-t1{T1Y3QMx@k|rlK%p-M$4gEeC -zLTo94(bCsKq7|jHKriP@35R-;RByE1^pPYe)(?a__im_J8TuWQf(BaPS50M67H)D% -z3eOWoWN2=;V20dvt)5GsSuECbN{7FLt8OFOM~?I|0+A=RUxH)+5E9Ge8e|<)qh0#S -zGciP#7B@lQI%MmS{_guPiN!M%km@F2>)Q#lIG59*w4Fp&@4WokbG5bZB@Tn_9aDQl -zxDtu)Z|OyDcr_{$<@&BR7L=j440k9Ii5YM6;IeVjbl>+-Ly}sl^Fz%qYzwy87Iz!{ -z%st3GH9RfE6tumaaru0O^aEho15HVZX@W$SiDk}6Q@JmdPfRVKfd3{jwWFP)awZ$`8!jwtwNsH7KSV;hI -zd@Fpc@L6`AfSW)pyM;5GgAB#UO`K{4Fi3{3Jq%hyLpxG=6PhK^w(1|{q*Q%#Pi#vh -z61w^4zF9Q9=>5@yGst=B%Y_5u%aH`#W;I>4>CHD6X}S>AdvFEhTVW%Zp`5nYTN43R($d@9{iiEDpycjPh7_)$} -zm7@0p@C~CYb4@ewFw{^=A=U;-CuE -zJ3OsNpLU-?*@!?~>IV%qisNQk@>;T?~3Wo8ffx@6rC0_RecWmQ78Nf5JPV}}0PviV(SngxFmMULvJfSXEyTy9c$Zn%*{V4PvX#n$Ye=~B+ -z`%ZvBe33HT7{;j1JC3345HhlAyC@o872o_S>b|ddARq9|)53` -z&5&|AJp&_HJG{){G*kO>5{gK5wb#{-zdGUBee1x`ZucDYmJI=-aI6ZeGb@p=4-*Yp -zwD(YbX(wY0Ar5$20O0B`a*rpKhU&0$w&kmJfCp5`=M5V;ahWz7E~ta -zNw!w$DEsmJO}C3Yey~d5z3F@8J{W8Ga^P1`WF|71s`Xv*mC}n~V_LfM+4NVKelQpE -zT`rgW^w5AQmfz)Txj&%K(@Sn!sM2`kJ3?Gor%UYnI-Jp|#x<{vst&A+3+3?7fV&G& -zgP9Fa`Oq&YiO;@mOwaOFNHEM)i3QU%(< -z&>^EPzxQ+^LJvSQtieqGyTDO7Y@fW%x-C&F?JI44cB9sx{Z9jW&FHdIeo>s04qZDW -zQY>mIhpF&ZC={Y8h#c$yYAQHLS9w;3HhgGof^w6R@Q7urxva?aTVDXLK+pb2;p*Ni -z+oC^e=8P+gAN>P$lwkY@ZYCqLv -zwW5N)+abH_Ghm?y4Slg{w53#JZ$BZ|FTUbOBqo)ME*-wZjR8XDU}@vKk$S2uzxeWn -z2F;jIM*Uyj;8uV+fEiK0;JvI}Md2o6P+6cyVx*_D9Pjh4<3_D~sOA7SO5n53=NIP~ -zZ@Z%parhw8Tx_?e-l$=Fe3fF7ev>7{vMoTyB9= -zd#OOINxKte2Z8w`Q=J>BaNpw0)`kHX@B4n9qAK$aIRlMLHM;o(K@1H}&Y98qCJi?A -zJI=4=FY>y`yvuQFRw9{R{y}3*(8>bMOsq4D|AfEqq~%2Elh`d!{=6T5n;63u;@ms? -z_Z4gj6_AO?$dAq_K7;!g6~AF6;5WBKbp&o=DRlSG^i?{lVTnyV)mqyslkLzb4Rq7B -zZRqlaZg1cxrJdtnZnVGB!ZXpo44s-Iyg=9?6_`#5U7ZW!mt5*-B0_%k0(LoN_KQNc3Cb(kNE>qI6Jp0 -z&zu*-I{K+uJ_RnL0iS*7Z(Q6JcAqk__(w~iiC}LIV~h-75$%~}z5$J*3+2BBUMAuX -zz0({8;f8;Ca3mGh -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 -zTQG?NvGJ!X3)LWnAWhOQj-g9o!I5q~rMmgJ3Z -zy%L>|lYo5ai%D21d@+Ff`i9i?z!7fE@MddYNVEK8M-(Kz2`$CtBKdY-R5*QE$p3(g -zmcb4k;VAzTK3YDFRXWabO!iMmyy-2lp~TI&*^ge|wWG6ZP_PhaDSUMdTdTPBA)`L` -zHs%*`1WM^2HcuW6x47qEC@i&GKs0rt5Za$S^FleJfHe4km5uQybCI>NnrtWn3rgtC -zaN8`iqNsw%QL+#H@Ns?5H7uLXuJs#e&Se|df)p&92%bcK$FG2R6@k5{2deJ8FSM@e -z)3yAa7PxZygX{GTduaMzb@GEK4XFRg@BQ12jR@~4`@;bC4E9KK(r&QZn39aS|DW_3 -z?Jzs0-qD^cNw0A2OT)+*dI&=q?3ycU_z?33V3-h|w=!eRCvmQ(W2>HbG8nI>4G-t5 -z*t!f4C1q5Nd5x|CLl~&+yf|Rwcx-y5u{E4emD(w*E=9~c*%f-cak9|011R&ry?QiY -z>9tX>g|n#No;v!C@~%BNIPlnI>W(dL$?Hz#8ZJ&>Sv%P{*tL)aq-0> -z1%s|#6&M=rvLwsn+}Fa098w|sj<@fz4c@&9OcmTZj;&V|nXuz>gL1<=S=Y#p;_!;S -zBu0@5N&3oLm2QNhHzU8WzOxXWaDtu~Ea~&j=N#=vMr}Pv-m>mcvLq;cRK#7q{t()X@> -zWCu!?UW;nH4UlEFuLZpxg|f`HSzgyGlf;2RbsJhC*4NU3sebP+59B`i5 -z@rmgr-8{th!`(zb;`py>h -zD`;F1ivPH@8S1@)$W~N{M*k~UCu*R+SCc^RlJGwV+AX4sbh54X(74K>0jPWHnxRc5 -z`+w`S*xhmiiK(c@BvlKt$gHVkKKSPkghR|HV@BwPiU(ok_Ywb0sDbL$PeY>>wvUR1 -zeYaeOY2 -z>L3g%W)?qbtOFY$lf4JpiBdd^%IG_CbjOUs2Qg7tdr(x*p -z`XzIWl#~HQ%2;9@GyY`iaz@=5btrPxt>m!y9mG5XjBq{f0fnoO)6CeWf8Clt-~H1m -z&E#6qA5Gx&_n#0<`U5K8P;CiGvat{^_Z*XqU*mLS5m1mT0g^j5O9A<}H$5+Z{lN3` -z>?!#`j`f>-u^Q5`Z?*M-Nsf~I^)cN6@n*!kHv9er*RML?3EN{1$Mx?>aa}v>x_M38 -z0HNT4cqrF%&3rA|)#&=-fb#VT20s-JlWF^9x5_W)!_ZD>#$!79bn>5qKWW-Qaa>e|<=fi{}HE{A4K2xIfHMVgsnC*K3{1l%4Qo?F!_s&elf& -z0N~}odD&l?oBa%hW&6?HeZ)L-Xl%YVIC)?y|+*WrtZjT_vF538o<;Y8Beg{5`MY*%k7>LbN*tR)fHGy){D()8T--$~oPmbMM{SU-wD -zwScCxnLQKc&LmVufpe)l64y>~{X+>1byp9}QWS4kZc>=33H4 -zz=eWD!C#yrxdlJY;Ijrly-_~_ -zB-1I}ZC2y23&!O)sW*>7Mqx6f{^iPE${iizH$BD?sAjt#7brnuW -z9&M(9YjO2;U*R=-*p0B^BO~TJkW0c3rxF-1m{X!(l+IML?;isUI*JU3tQ>7(<|Cl3 -zEWY$HL5=11JP+|6JosH-utCiEhDt<*SO=Or@tqgr>Y&du4O -zY$52p;mSJwI~AK+p(W`f>O;J~dxEYZS36Vn5=8YGoVjHIbYUwl1?qh?jp3c~#O92t -z_vImY6=f0B3Jp+2=&d|PlbM3?*A0Yd6@;&?-*dKltHEZw5@XeJR1bQRj#PdPe0A&l -zlsa;c)aSM9)w_@1^nk+y{UXz=u}m8BCqtsM^Mx8Pg9&vh_P+OP -zvIACeG1G}~m*f8QdUPg-+wYuEdzf)cU)}j=BAZ$40m5@u%8BgdgfHb#ET}h>2Od2Zkauwl{opE<-|fKkstkT6k=t(Z!@9hiYU1@JdL3e70F>t;~R -zwXEX$r{kD-tY6iq7irMJ*DG1&st%A1KVglEcbdic#ME}u_^Jk2;zClk!rzUVf}xHZ -zqLwmYr%~^2r3BkTVut~D87!cL&1n*9%z63J|0GsLZBDwiTA?jLKcd9gVdk>|Mcg-2 -zMO=>hh@0PJnH3qDX&~*i;1g@o5@e&Ey-D#xiXS;wDEe}JeECkc@NIc7IBFDv#8DCE -zZkWLAas8vUkIa=&JTBC#kp5LD`u?-@8XHBV(lVsO*4lp;??zbv?CL9F{kgd;1wL+`Sk7W82d86B~Y(2M=fLq|2M5%iPu*q6uI(cMu{qq#oW -zzhmzW3fy(?=eB`PJa`|c^5OkZ`^|(T;)Dat&X3jKJEHydg4J7YiYk>d2IO`oD9(VmdDH*`a*NwQp`@}xJ@8vz!0B@gDqhE{0z93r-$hzk0w -z$|hd1X%={{Iv&n)R{%jP=-gvVUv*IQ9lOy$V9?tqGctBzv&(#CP(^=Z|DzoQy8-Kg -zsS$z%bG+8fo6tS^0z@w~>7gPok|blSP(XzS&t*rUa@tjK(C|?BCe_`n_;}=MKKKJn -z5gNtoqgxLWr`PL#Vxpo#q&GdA<4P#c`*4ONlcwB~!|Kl&QSZx)DR6`KX6gNn9c-X_ -z(d+(}be*5MpB~mOZR$T5$p6FlcGX)%ELF#HIsL>fZp`#wp=$+J6kH*m -z0T2%408%-N>hU!myzT^_PttMlg-IRRoR|EMy&hRSd&;}eR^tgYErH$HV7OWK&8T~j -zUF$B+Jh%&cv8oSFgECA*QPGFVdk-amuet8)Vg)~w2o(9elbB?ePeW9*#LgH+?b+TF -zn7Ps>#0XncD7O@PdmWyrHw+LFC^rvW%~m`Ux)D?V0iB?)B!oGg7;FOak!TZzCWsOc -z+@SMjt>w}IeojB0VpQch#k&amKAfdx+l6UlIpxTL9t0hFhvdRL9Bo#(D(O)aIuEzXI;L2b^1g<-BUb -zn%ARLRg`9zK#R(7)A4|N){*lM_qnHAWA%UkQ|`m9&Mqi%;2JyN%PrCgT#dvLlMqk| -zwR*&89dMgz%#KmF7BOaMYeb2wiRcmVuFx)87sJ|=;ki)n3CVcW*Xs -zw0~aDKpd+Q6)qk{8E8}k}AyaCj{*1%$n;yH8 -z?ifi>+uiX0c~z%xneKh{zHKIXgbb&r80m%EobSX>y(TpTPXSnXAJ`aZ8g=^HwsTWR -zzYjAbW>DdJ?u{w-rkM>FbNDn|lH-xY1%~n6Rj<4&bS{*mv-44MKVQOYy1V?ySk3JI -zixB@gi`}XfTtC3PAZ5fY6$yd*zcdbl3McDvU!7ONUr%*v8|{Ft5Bj1L`UB^|89O$w -zHuyz6p;O~kC9mCpdTW+apyFraWeP$s=zm8&=+WYv2g_wW2Gm3UGDqPh2=)X7!#}XV -zkf#mq91lF~UK_c`29XO+C_$|#9;e5zUWpAlkgjmQ5leYWiBSb$HIN+I;riyw(zmnM -z`li$f;`$S`Dy8KWLKP|2{p%)$H%*jQ28H-J^y!CrR5{q+x_+_y>I?(q#^;R_YN+l) -zXQskFB-n}`{!S83`mJ%sto9I!b+~;HURT5H2py6Xu~i%#*Uva|v~?CIEor2x%(7ED!}E0tcv -zdX+!JD0mVH9tW8FSc&=%pDu*^i?OAPDZJj!{?ws31N$}lVb#`+#pPeEN%%I -z(C{i*(yKO|2`evi;{Ji^>2}V4rd(4r`^}ikE}QNuDS8t~By7hk+8T-RP -z0&*2JJr3J4R2*MYwhuIY#U2n_DKJ|Y;Zi?(orjqDbWTd3j`&jhNMYt=A11Sz!`x@v -zHN#nPyO1HcOqFw+cMJ{9&r(8!@FxP@vUac9Gy|5;-1Sa=;3~$%^oV7~=NChM1H@do -zZ%iaiRYDi~CZ4N5ulYnlsP^XrpS9(wFa)9l>7MO{Y6cd;FBC%3$8;hB7UD=TzVh75 -z;MT#@IND;96lT3vb6tFOs)U_nC3vXJYJ8k{4%^eFtw?iLO^WZxPC}p&dl!==Q7DA` -zFLYaH{GLRYVN!+cr@@yY=kdlPkG>Ic8H>fSp}_w`($x-6k=^(WYAJqNb;U`);6Ul5 -z_cS{YI{)pmk4xH`l!>G_`pwp=cxX?=%{1e2rCdbZG -zC;E9599s~jlW6g!hRQE-;otAgBd)pHxLisltdF3dCTb0B-N&CK+B=vVlrjQn0%ShK -zzUWOx`#^1(X(kiT`5ZzHtB{0TJmjk~ -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 -zE*@PG8zsB4cVjl!tXE6V4=oqp -zir@SqZKuhi^i_Ff-ln$11^)`D%y;hd;HJ%ch2;?)vZdjkFdk{M2R%}^pYT1s>qJWa -z^pqi|+9s==!ZMf|c*s`?Cx$Eh>?h=Q9C|3|jG2ghWG*6=mKvmUfe@u)?woSEK)g|l -z{B+0}RTO0(4w;MX(a9Dh8JtEW;*&gr9~A?7MVl10n>pQ*d&-kVDi(pSWtg;(Q{b13 -z^2owllC_o(1LRdsLmyBdZDn-1dv -zpLGRiSTPUXZ9OgiGk8*pDXTTEjZckcQEIY%jB=6=irC)-U&e+E6qR>^>}^Kung-u_ -zuiERCbj#3CA?j@dpiAN33C~Vfi1|!*T*-gG@Nksn{`~}JodH*>;6H&ef^H%D!O-3m -z0!|<^6Fx?^)MWEAjTXw@D`fV4X`~fUw$B~aUSe>!8s|hoY^cOG1K^1U_6KhxbW|SY -z=+-QLw?^imOKR#p967jPaA@I>d|_hQTOanL%({4T>ip-QT{Tf_~WJx=D@o7a-Q{m3*Ddmv|zFbYg90 -z|5?}-j!M(J^FByVt5Ia8Sh#VZC+43GNOsYD>_571h7@*JZ$8$eaas)QEpEZ;M;VtL -z7;v#qI{`L*kawT%VxG{kJs9(w{o&h&5hv*X_jgVE5#$ZGtOz{7E79wQ#!(o{FB(U{pw4}g@noP*cm=z=;Puad`@lJ;^{BfZ+%0p -z9I}~a8vIY1qr-xEZZ)Tp3XPOwVcJKX;r|n6e(8g~`=Tr?o4lkuCM(#n7KX#S$?ydU -z7H&<3soIH)PSp$jlt>Wme2doWPQ^RotSsyVA99zqheZByv9@`h8m83`A%jTK$(-*G -zCo(UJ^twfO5rLkMgWGwJhS%$rkRhZ`h)A>I;S82EGoALaw{0y}n#hLrD}&?|VHhY2 -zL~_42de%~YZRm(EWE0&;EVsf7xk-W?pC5eM%QWJ((~CRu4KK-I%h;tyxl_rCiPN3o -z8Crl(7ZMEt1K*RR^E@49B$QvvkzGZ7oBnmNAF3614$)+_kHcwAmh>)wq!Mh{Gtc7r -zNeOFzrPOUP>4_b`JB_=iXs1z25{dyxK&Eh}CLhJCfG3e-CgoHr7i=*zX5k5j#y79V -zgZ?PE$rOCfbtIK;tZ;zIKEeEx?n)4Ni;E%cA~yCULYfUq(jt)kpO^4O8)?AYzb%lK -z+kg5pJkLytZEWdd>pq<0a(Q69#Y -zv|}~n%DBUemE)4YtF;Uz%$;OuQ6KR1WOx|bJ9*Szg7tsps8Z0(EB2mMeht+^{Vs2! -z&Bs=i7r|lQ(9@4xs5DdU4g>eyWCmV7$Bf#ZXc{(+qS+@zTQeb4o~!N4k`)m50lrio -zYfmNM-sZsmg0WGN@j@nU%~(YAHLYTgqE^9|yg){F@#fCN7kd-FFPpjs;!I|Gdu^Y0 -z0?0ZS`8`X|_QKb`JdVWAyb&B

~=17FDXmg>_s8%XvH5w2WL6ygKUEbl_lnwHaSA -z=r8r+%2rh^0>Yg-omh%Cg2zY&n4IOHH;T+}L^j4ttvn#vjCB9z%W#P<7Pf$3a2|Q{ -z1|I(*i%g+uXftW(EaH`Ley7WF%_3LPISnc(D7cfUR(wz=)1UzScHW4P{slJNK)=A6 -zFpM;UghVPgVH#>5N2wN)F&LO}vw2hx3W^go(FGW{(!({zAiV|Opn*Pa2HNomG#&_fXptvHh!s8Q -zG3wR?3e|9!rdOWBGDg62?zdm0l>DYKKgaj6+tZ4^;k2R+;f~w0|6?iC(>nEK>DBJ7 -zE;d?=tGMGAz=VO{I77zrW#nKK^V?SSWp_(sbM(pf*r3dhY2;nf9&LFjA;_42KN70* -zB9y7JxdPAWX!{RM%huiT27f)i|~%L?f*mSt(n=7dd3&mfNJ})i*iVr6w~Ge(Tte@ -zXDlobM`F~ec9BOCOO7<<@-=5lK(FMXlH&u>iSSOpLRN=8BaAz^Vs?c(M_3EX_f#E! -z3YwTmN0m1&yI(jk_$07)wBRS_YJPw`9(?u%6Dv$j@vW?yBD9xk|XJXmi2ygVnM`N6F5E{kM{*%#zBifY_GHQ5H9`!HD_@ -ztSObbn@r$Thxm0)jbd_7SRjNFd!Cd4{?;&R7?{;wF*0(l#b=c;@8Dmf_wWJ2U+5$8 -z1jsjf>KWTUDfpaOPIegFCHVqu(Cc;*~&{iGtJTTe>36OIZ2iQa1H_N?q!o`k`4>X5UyinTQAugB23}h2@Xdr5qMP4M$+fMAUuhLBEkfRJq2YgvbsX6r};pSk7@+hDPxQ! -zK=ar&XWhKCIsrt#%W@49%i -zKY&|Q2eFjPpgpVF_8=+hOd}r~Dr-;LmQeA}4D91a4jva!(?oL-Ng7c)#8|V-5_=wD -zJGw9&Gp@EBp-eSl_cnFU_ZU5Ji#)w(M6GLxs)9q_fcFn6YHX`0WirUg`O>p~E~V=R -zU#z@9BbKZiA3y-%91I6=XBW~6#80Io$X^yOXCejr7jYOSI^6&piVjO2IhoPKH#*Eu -zxJBVw)_d8*yq)m9u~D$S!~gz3+2V#IS&s6xG?WJ&f9_oIn{DAZyy9o0Ye04-!D{FCGti-=Lc -z)#pQf{H02;@MZ(Z}euXDnTm5oR0uZ(2Pb?Wy&S_q{8dk@c=Ep#=jUbWp1_OZ;4wPrd_RqUO^cW7E%d -zR0H-vd$C@-T~8wgIdKOr$x$|O?%P;&mT0caku~Su`548Jte`CG{p{2akIBCjoXxdv -zosO8Zeu;4T5uOcN6c^89yGswXYbz^Y8BAUgB+`6{?3`u9Tkn=;RL4}0ov -zYFa^h<%5%<-u0%f}n2ybb1eWK1V;_Hl$#aBSt=r%tR?I|$5f2Wf)%^M7&}h?I_Tga>0&JYzNtfJfz4bYL`DvpiCjCRRp~BThsRBjVFe`!&58 -z!cNT|^6Io~sMaXiu-+fWHXb59f-Z*1|2kFbsJiW7L#3WdV96t)<_1=J7ZX{K7g-;) -zeelMCzmuLS;W5E`{Asc}OeeN)PLgi@pJ`_zufJ4mfAtp`TC{d=Xgb@M6nqe5crmoo -zSWi02N9HFk_hV23ImXq~Vt+SvqnK&>T%H`7R)oS={*52a>ofV0$d*9FXgCoB9K@sG -z*!vUA^*%`})7Eijdd|D -zTsC^C3A;N0$yYOotn1*eG7>Ovt`NN|8Gi))%K;K$re8M=`HD7JJ7md5jR%lPSho0E -zz+Zm3DK*ovcqRTLbT4IRTc7SG6Z5YUO6aB{`Mdu!95Q|_Ycy0DKu>=!0QopLS(^*- -zx2M_T7B4g%BasSFm_`O>n*E$%-#&Op0XR!`#73__-Qj9GZo`9pHzD#V0X9FGbzxB~ -ztn1n9X_o+34y`BicWmF1cW)4@GvAr_=h!tST2lR9VbOy=%9-21uK{6!yjB(OgI -zp1`E{ym(!Jzk(~ZF!{G=Zk@5#m*A}QC!)V_vo29}`Aj^q6fodfO}&Y-zJ=KrH5uOu -zy|oV*=Ef{0g(x}ijN#N4hB9Kw>ZVYlhK+0@*^4kNTE+F_yRGDKkKcsfiFXxq^}c;^ -z2||dWFa7hCCrY*shPk$Dkl(*3A9URW!B2;W%W!NhfUtz64XaeW$e+oSG;?w^3%C_ -zA7vXwF+Y07OEt+Z%kBhO6jo4~JDPxl*bHS4MBHQ0asqUoE2s8iEWP4>(4TC?C%IT$ -zf!c2NF|r^+oqL27-T?e4{BWt~@Y%Ztn|P1J6>_XUJ7VU5BJ#*xW&vfxgfJ?>-So#y -zUdt&fE| -zi2FjR%phRZ5`7$b#&fBL6jT}LnV7x9nePBk-I6&5l~#I_5|YYnycyV+{Byr;l1LB^ -zPVp_HK5K_Ht^ku`aa&stL*0`;sGy3KUHoHPfBwR*qU%W5$o(q#6(STHgeW`F1imPH -zQ}pr{mt(#!dcZyy|H#+)NZ9|r9b2HjXWhgUTsj~AR9v^(lEHN5jcUK0TrRQL0?Fia -zIW>%@mfvQE2u^Hyyx@05PknkA8TbT>+URwkVQ{bYmF2Bp2G4F``IOiKQ2PGHy8P!U4ls_S$h1b->O@YJVXCC;$hvX$C6aS -zJHx-R&$-($63ns(Dst~lQmB`>dmSV>$-EK#>wvy!vcxt15I({L1b>!nZsX{PB=0@;1Fq96>eUb&2}|b&T+TVPQ3MM6oNHihEp(ChG?@^g@;^&ruQEl8m@{}ECVdM4RvM=|M{P7k@q9LlAmd%wN+vW=9M -z8d0Bl?yA|#3qlxb%T{9vdlGGeEg#zh8AWvH6a6(;LxUccuTjhlf==CjKx=tdNY~?D6b=K%gTLPFJSC$|@JGC8&2Ar<&>R>me|SH=f-L$; -zjG&lS$Sd~gt1o`5a^D%ch9XvHf&tl%$vH@HOb8D4Hj1F@KnmZgJD#X;8Z+M}$Hb|% -zej_$K(#}Snr_V)PXH3X9&y#iIP2sL~t&N8exzpEscH7#ST9svA{>@}tuR>&W9As=F -zJ38yg=>CqKcyEceBlJbtK5aP97&H>Umz(hF%onSl@bU_5ipj0VP8OT9MW@2AVuLe1 -zH`jz1a -z9YDmbByS!B?mmOmgpIU~#aA8Q7&o)zvi`z$6=(3;~fnX5G^g-Iv -z^Uk1hR&_=O<<+E6PSdS1#?#|>`KoPZwsRU*^-x_^i25rs(1TI?_A2Ax-Q;d9LE!k_e;q^ju>l5W1&i2?BzhMUeS$b@R -zzXo@)zuXxlg(Uf+CPLQrNV`@2ezRNFVL#=fi3F#>h>?~j>XWZf6YUG_sX3b^WNe@F -zJ?$Fo)VFb;`p4*V9kj!MTaveBcHLwTR>bJ9*vZ9njkI3bJmecJ#rEUqf63NApPB3~uS7dz)5T?G -zm%~Yfu<#Zdy|6GmyFbbrr8=zksz?mwgUa6s8-@f02>_z{N7U72Vw)#p`X92Cr6We&wIOmnfu!Q%-guEcToTD5zl_oh;r21iYlqY8wi -zd9>t-Lkj%6qFg_CJ9(ynGlBF#?EbE2px2oL8RMd1iTaXmPD|dC3SKidN#?o+=_fg0 -zmVk1dUFOzjKk*mm%+ab!sb9|LOkEIGhwr_=^P{p}!4-B8oAdF_5Iq5h`)Z0`u+g&I?<6z@$KpduoQ -zd04`sQc3+eK3wm%`iW6lGv8ugH&;i0<#~q^5_kSlnji=KJO- -z2CGgZUGT~TEXe0x2s+s -zT?zy>A}p5xMCB=RrUqrrYJq6(s(N|t7D*;K{U*yl&=0Uh=4gFeP#;{HN%NbO81ii> -zqP6U1?ycarArf|qLvI6plBplpn=qX}h#hqxjG@fs=rP(%o(;*V-WpDR6?4h>`BBu~ -z4+7?p6n$bWO!z*df>a9jx-Wk`UJ*3wr?6Zf*w^7UL9feJ==FvIw{2f8U%HmUj}wR%j7pzESG7t&CylA0lDTY&b(Vfoy_F`U-HKqedgIEorg^2e{j7%pjzTWuO- -zn$LkIdAo;p@F4xA{AcYHv>)8N>C2f!ma$rXY`g3kvSt|-Fq@;0mC$>Uss^WQ*})B6 -zNMVcdo>q4AIgg0_WZfcB61{2bL4F2w#jdvpI@syk+7#|j4ZH^Se047_4DHisGtCjt -z^8LrTF^h`EZiUlrRlAw=y%-6K5f1uXGJhB^#!Y6O6mn2cb8y{!9({^hB23SJ`+@0v -z2TA|S-jC}ag*UgODB?s&?8}(vG+`>3ow-6wjGBy<0|tk!nE9r}BdiH)Hk* -zL>=QhFV4lXJI@zkiSupP`k9ppsvE3a)l -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 -zq8ooQ!ZRIZGM!(cg*6oWnL>wuqCd -z!0xK}$5G-;$P0Yh$;g&g{PhHtY?3Nk9!mTP8cR6xkbTWU_u+iK@az{SZfw_)h1%pp -z6p@}8|Gl?1LH{qe7?0Ay48Gme9LHmhXFxogX05bM~7XoPbKa`Ep8XftBH -zyk`BQsK4eIJKd%r``L6cMKhc+>mJu3Qm^2iL-eP~^L8d7jw!f>KP+(WC?jC51iMlnG3>Z2g`_BH;S-Dk(sI -zjsZvV`# -zZ=s(ny-8%TT@!o@-zq5D)(5|H0$@ML<~cGFI`B>-N6QCtP21Go3h;-t>INw@oL7`u -zg9HACAv4(LS5%f!kv8pUn`89%4>hH_Qv<#j0v^VeSd3Do``tJrOQgF~M?HPWVySwVoPtI7*S5t_6DLY)*E}JtTkt3?GDS4U)R8O$<8c -z(_1R{S0<4%iLgP1?l;?i)Fth~jz)kR503eA6lX`mSRp3G!$beee{+xGVTL_wx8p!w -zVQhh21bVkcJ`9fqlUL+<|L9v~?%tX^)wW=8|6pEP2Ys}KI2GbMS(w&x3N-7{(w97p -ze7T6u5lB!uo`GcRZ7g_i1ra-6*k{u}Sgw4{IcZ03R6EpF@?)za9vcNUEDZlvx4Q%O -zQb6gY>pq6K^J;-EL|ql#0A)!%lSOC^w{g_7=TUza@5NZs+S$=71ZH?t|CU?b*ns3w -z{N_=ST?Fs$U;mtmSudEm05^DW606~ODG_7yZ_XR>-p}|40CP5=4KlNW4}TVn3d_?$ -z(&v-h?C!v^DyNy6Abd}c{bJb&{a(|4xE8@QImz1yW%IHbq?|)x4#a=7S=f2CdMGx% -z@Ce1Uu0YuPeLknrvuIZwqwgcUKR1wEmq^G?;eEws&Xty|$)?9Y3-iXa2O(Rh3~*o> -zbNubGVzcCJtvJjIoU+>$;Vx&-ZWt$>m}o5_97*lv!ev}Ki^I7E#c;vqHk^!d(k5{w -zea^w0YNh~NYMLw1**9)8`Sl%Jv9#I}->MqLkmwqupW=x^p`z_~(X6UI41uN1xIClr -zc6}MDpLXxN(7(uKSe2#_bWcA_m-V}V(C~QC8ZtFqmMJN_8EJhU^YWB8d`Ipfrgezwd>W`80gz5dBLNrLEa>`NKyTg7A* -zof)U76yal$g!9|0gTlqhsC4`V=ok=-M-y^qz%PVvo-(~cPD;0TltN6h|@2sCk -ztEc)93BXR)1xMIF%?grr>EN2jVMKvQD&BR?*fBO>QUi3kv0{(H -zLNc-#ni0ysMur^^XV~wi7XEoYlb}^)U}4B!d~f0uv)S_4)CVSS9Yd%&#??x2c-MU> -zt|xv$_l@VXiMYd(7$+q?Ub)RZ!LNglnV%sJXi=NQ_2`=>kJH~oeb%kY8u}EuU1Pc0 -zqv>h)tKl!K5)^XHGp3HPPM=_oH9es8*JHoIjPy};zXdQ^p35{a8(j#WIjErp2J?#~ -zBUVknhF#p;Qe?(uN9}QCKB{af1)Jt$TL!gK{chuwj{u!C5zGapf{4?B66ddEgk(IC -zdQS`=iys=>{zw$49@56Bs)r&DDwo{q+K-`P9TEUG3u<%X1>+}n*nQcAU%CgX{#E0M -ziqQ8ITl6}zG0HkMrgdpifBjqzS-i4qD|-%qz#~l2_Hx#|ex2jE)tMSBQ-p}V=F#Zs -z-V3|#D&FatfSw$O>Pf=TNG0Xeu7C${`U2B34wQtLRoM{_g^fMxhKVrq(W)f8^62}H -zw4#8Cxm_#%*BY%56Po%7_d -z5}E(}5Dns6&9yxw`ZBu`Cdsq$!%RvuRBG+y-Xd<--4&Ati;d!&+Pv|-RWs!ramr== -zk;$9Ye3HM2lYjqV&=-!OrDFl581qH0VVAmcuIPg!{tTT77c>x3C+3BOApQStT6&US -zlUNmlAAO+Y2r? -zO9q1a4(T(u!d}xTHXfc4Sivb4IXqm$jztBv3;Tho=t>K!>&*dI`?o-zw&(c%yWFvf -zg4}oi8bS`zMd6$n-gE^*P+vBw+?l9!x^Yu$;4)&CH&(qs+5&V2P-w$u8x%Sj{Ba#2 -zM`T>;(s@af2F7?b^svbyG^p^oQDL6k0rvh1(Y#UoL61@YELh-k?D1s;=C7(pc+Zd?4Uzn*-k%Z7C?Cd+UP=c=2Q!Tqh_ -z^!;YrFKcixepLb5Yw6^h^ZZ_<2u0mtx_Hkld3}a3|IJ70nYd%dGUKRm6NIr-?R!rL -z%)VhXJejPm%$R$nU54W}cpYg@qOV)x1?O_P4XhE*wJK;zp69EV`N{l#(<6@2mV~=i -zO8<2jfuRp+#X|{QEy(K)vUmh5RmZf${O5Jt4-eO~H?6n{?K)DQ`{V4y!{ehE#f;yA -z{AUrzXtA3|YzkYn;yvYgqjvcYi02Qe0G0?Ey|YtSp!;!erfF>2svfJ4-}@@p6_~LD -zc$@om(B2;bB=+1*49G9h&c%F6Rzpi3dj7qDDeOQzu|RD3j9x`9{!`h`52{Ax30n{O -zpVn_yGiX?!hfuXifV%)e%mH_&Uvun}9J`8vUrZuC)ruPYhZAdzGRo4qgDj1kNqNuV -z(ktyp8ocAaY=cpS#Sfyj9$>5FB~N25KQHW}Rj%Tz!>yH;G~6=M={C+X$iE%i;$zdU7xeYS=ceG!UR5=L$QT@I -z#y#b{_mx3qqidf(z*pimM&gsSxLcpsuCP))z*Kq2aa6xp#fiH5&Hl_3lC@=sn56dP -z|BKaD_T)~;%-_rD*A=|v(X-P-N~$HWSlNek@`KIWl*m%5K|~cbo-L3sxr^G%YDov? -zau3q4xEW>#?7@fxJY@8A9#!vjvfsu%Sxw`4UoKZZ9XPi6Q!CQ_h##GDK -z#&3={PX6OGNE4FQ -zg|wE4p}}}IF{!{A7O3!zxj3Z4kz(@mF?R@g`i*JFQWJhJOu+|+uh_e}*on$53i*5V -zyDw65jY2`>Crk9Fd+9v#o;2b;2%z3ep-iIWa6WO8d_2&rg02!q@B~6LEOBQ^ce-0& -zztqCcEFvbQx54!246ppx^Dl&C3lYb}Fl|Q^t7Awnel&sd=h*q)@<5vD?kfLncx{Ar -zQ}~93p@N-(dNE6gRWLl4jrfWrnqGP_2xl^Ae{BrC+cE4eJe}qZe0bUnwSOKSjLaR& -zMzP&JM^xnd9KB3|o3R=I@2*EB=P2H*l1X -z>pXxY$#T`^VLQ_3XZRQ6Ie(38bBtHP!GnZXC~gOO^3;?raOPv6U6`zyG% -zvGJW_p7otOl}sX4ih}dMK9R<<@{&!UE680JtW5x5z0D1KV!CH>RS$ePw08ynmRrHr -z@zy(`|DH8S*}fxas&bN?|6o3(sQhXEn~o7X$0ZPeUukj^%L)|o -zpNr!tub=Xl_p`#37k6K6Qie!sN#$aH^2v?px}+(ncZB5gOsxW+DIN#d<~#C)X!$9<&CF*cS$4d1o~>3VPE~>){RuP;djLje5~1Ote)?%18X~R -zy5dX3bfTb5!*Ju=`WGcF$>$G+qW4@j=RQk--@~8Se#zhQw)y?1y9x-un}%eoW6&+Mp#;1K2nfujFAdQxtbMC$2HxwRk~Gti)QHScxdWLwz&{h34b35VfX -zR_^;W=_mEKuhTD`w#>6i5S0 -z`#0vvrLfn-X5Z6MmKU_5Nd;Nhi@Qj1YJb{;jXMkXD(b|P{ElPSCn(YV|6-oP^`)fs -z@@lv<(T3xfE!yh)_YF?~uXx}IsA$<8QO$_k;_5e!jbXUN4op69PwSz@kKg{FNs3`i)L&WJNW}N@n6!O|0>kqEY)M3l$7GR_wtOR$6g8|QqA-;CSu3NeT%VoL4@&;ADUbP)wy!nBKy5+Yc_*1JpGH-gV3wOvJh&y7R^zcIYHK#1~( -zvJdMAE1(Y+POa|zNm`yG@bV`%XWd9^@j^}PK|c5Wnt-DsBfSB02iw6#xRr7*TZSm5LL`Zsgx=G6z%hd -zRoV{OPCK7WDX;4GI8xA3>m!dK`We$m2{Ylz4KTj>c67)puUmv0x`8-;3iq&me4mxM -z=GS~IEJsDAomgU!Tg_?}(wjZwau -zsGJl=y~b(DXa_gLT;zdxKZDfCxvTT)?mNc&OBI+FJ$$3zwL!i=rj$@L-Wy`?)&16B -z9gv0t-|Y|;j)-)U8>-WJDY43R_w+7MCv4$9iwEu&v}p~Wy>BiBHAM{MpPqprp?)8O -z1~qG45bL7S?j~GWYGZFdYZZPiMh0)sexSVbZAElF28a^9E}ter=_dAeH!x}NvQX$y -zaPROK>)JfiJT$gS2p7%jx20E!y9lg!t`FV3LWhZ#fZgQ&x4c`*?Bj9bVnieIWeA>t -z!~d>tb|Sw(gNBC5%*_9!Z%f=?bQ$;Zsr*A^7=(j9#MUJ?w_V9f{pZr4JY{I0 -z>w5I(Kt5DM6j}V&k$5dVpfm=Or??omrYHg|^wOKlLn=gXq-qn^B83&&#C=GC9YVRd7@R=ry8CFF$m1C;LOjjDzk8 -z>@wptbGhE-rCc!j1(VS9%=j8^vF#}e8ElweM>>BC->|c2O*|`q1R)IzZrKH|<5s_X -z1M(@@hMLb9@gQrynA5xOcLy8=I}>*$H+M!*S9k`%XyfuF*-57GRu5jjx50TzkTybB -zwgFhqXbt;m-$fz1dE3lfCN*by(6-oDz=hbLzn5>d$BL_NDG{mBI7F2>g+S!F-F=Hf -zAV>QwZ7lrtDuy=5HI?=L|=iA5C{9+!Y4_~RJn_JX;DWN%vh8e`&5HYj- -z5jK&>98`p*>`I_cM!5>S1!1a*tF8%kpz>&tj}zqgO1!&9 -zy+#a3jBJvf*-<;N32q(;wlUa~RGb{CAJgi(P6XaE0L^?dzMf$O{g%$ya!&>#^MOqn -zK&Hc)7Rkt*{+FTWIu7I|nT6Gy)P~bZx6?lH0Cy<$(TUl)$_J~qnNg+irX6dq-yzX} -za`qM%SZ`gf`TCn>q*{N%Qrh#g!XBMCByOQ6fEHR$L%f9nl65ODsa~+bv?22&e3IwN -zMTu?%BGh$X>?GJ{{)$1;;fFf*&C~sKT3X#oI8}yL2XMi8udXi?3+l-aL -zN1u^<@tj@0q^`+Wz;LnlH{ld4flzYN^)Z=eEO#isF;-M4#m)~eaajnG=e5O-M(%y? -z02!wXM|U^5m;$A_-vc$@1hamNAO1PC2m=DaD8Yt+mzZ{vtRl~B)CD`0Kl?;Ru9bD@ -zFS9D{xSSe%8gbi&1;0j85^!4~n2zJDC;S40+B1+_Cv}clCFk-PRN2pL_pj5F@H-*~0OH^GDiHM9mTTPUfaO -z!alC1pTB(ebTG2Jt~|%2XR3$h%DO-+rU>chPH!tx;Kksn{kU>!CG? -zw#G&4pSm!kdv|C@2}jUu1iNWP6 -zZE;i98fA9y{7_2HY?9l&ZCxW*2}%$Xn^0#{ms%Lby6NNbA0f5LT5llglyfHd9q -zAQPTQEm2`A7Erv`NfQu#++V6aQDE_^$}sr_ys{U|r9I{S)Wckm#e?0VNmy)Pkq>^} -zB+$%hVMixKtP6M@=<(Vt^Gt}x_9Q=^L-^>|&Rt3>CUR(#>L{`YPKYSQq~sv-5zi2> -znqsp^qQ!~#nTpYeHHn3Ah*3{HAl*s9(CpMLyIs$-(-lt8y)J`J<8r=(PM7>6@P;2Z -z|0Y^YnJ>ORB*lm|dr$L|CNC>E=OK7&1kncAPoLRV)9wO#!2yQ44*!V^n}nafXhEOJ -zXjHjE^|NtatT7zk0bFAeSLF5{3yQ970mNX(wNLfu3 -zmZJ{95(zi~AEvwFZ5L-olgN+#zj#cC3T7{FHLzNYpZ`Qaf?4v(|1iGh`0ysQ?4t-)flzIFZ1v+Fp6BfEif7|CT2juGM4rPGM45kEc`j=3mDhk}j*G -zHQHyS9YG`^H@s^Srut9YF`bU1qQ-LRttxWNF#7Cxa7AoLy -zulEFMEZdRcpA*+m$Y|i4f%{J`w-l6H_`ptjN1mml7KTQoVu#G&Ahf6ere{81AF>#G9 -zmWC*I*ei`6RA7!=uEg0UpoD@j*CArX@MwO9BVJp2eOU_YGu)1x{oy8&>Mm -zZo73;+(nhME7@jg*5BHHaDZ0@GP5j|1HJ9{V*IdJ^b#lz@+@0hibpA6Cr?4J{;v?G -zuX<9Dfsl5|hG?E2V$|QV1L9^Pt3mm&r7fd-PT?e1aI(s0OMFSh*7mEVvRJ@iz8n7G -z1Z0YID>rk=kdJZmJh5KV1SQXcbD;vgHHk%W?FIRV0Z)!31QNH#M-)ABWXX;4{qW(XP@c2vhVTth{ts~FnbHMrW -z^-4QrQmJ^38ZGL*?t_-U@Qkt4v>!UPHqyipre|vJRykQTAF@HkiVz&gG;<`*Selw6!uEsz4 -zT4!k+Pd(?Tks1hB>sZQ8@m|Fd5{H-#v6A|U6)P@HDny*%R7IA{!{!fX$w8dgW6gfe -zCOV!fgRxVj9p7)j&-JAiFD&7%&1T6^nVm(}vyi!5*NtsjCyFoEP4Y9*hJSp%#AijI -ze)_7~^xx$_Uf+Kq(Kz6Cw8yHOgL(b+@*rlyCv#6Lz8A9q9huBO=07WV&cL(+Z&-@A -zHC$@pUOx0@BU`Lwe=np2w74(4FbY{IK)*?~N;#QmFtjFADl%_ia{X@2u>U7`T -zDaC_*ob~ljP$Q -z+(`#K)Sbo~R{G9`zWdZQASKjDN^ -zJ&ye_30gM~a%2x;WpcQe19t4FX17~3742H4 -z;EO1cipJ0JlY!G5V<86&?7`r)<~HfLYSNwbIMN}xE%YVdXW4*u5_tK-d?bq5hcSVx -z%OSjCYAs?kIO}$AuJzUUVL7luU^m)}Fr70bv6E}f_OthUwDGvyFOFyK8ynwW*yeE8 -zBDae@n0CWmlq=~!8k@04G-JI~gC!_`XGVoX;-1!~Dt)pJKDI#aeRIyQvYxDRR4A_3gcf(Pp*6jw -zOJ%iV9wXcdZ)@36pRCyv;-Q+54?D_>oHu{9V2J!D%y -zDnCaSWylk-2HaVF0bw@m)tqY<#eSmgErmfNjq8RComz+c1Pkz7H}e0EoM#EZz``yR#xbvzv}Dn<}e?9eE(sd?0$4?qaV7A*+Kgst`t{u%=JJdsN>pf9&1ZxU4aScQp? -zPL=aPTv%Zpa4-TWog-bofou|>0q*&073Iy&VW^?sX#7j(#}AKBHu*av?GQLXX_@`L -zWR&7B9tcU$?7;nR%nFAo79}-fS1%2w@Y9k6YLQvEHANDim~0JWsh|~=lIp_;gz1B% -zbyHSTt2}{*z&6DV{H#A>pMWxWpEgeeEZI42H5M&7#c4ePaCZW3kClnk??|4ZSwJ!G -za(_{Bk=Xs&tm3o6J6^W3AK(JKv`%EncA<#T_2@O7yq{~XD9^QJgqCJ|ax?T-x=G^y -z>{yzW-e&_Z@WTOGgux&#tK_I3xe`|;THpQ}Bk7X(-*4xm+qyC@D5t%vBhM^k{S -zKVfAa-cJdD__|~O0INQ!A99}TBn!~AcNbQt0QwrR%q>csKMUt8QqGlfe0wHaGJ39| -zc0$zwhK(fmoC*1Y?%Df+e%E!U3C8^Pg4Y-x-67IJ-$Sems|oijRWM0qKb7RxJG_IiA5&tQ%EG%X?jCtwo$(CtTIiri2VRDg -zMA_Bb-f0k5^v@qFF?{%R@?BeZW@m!T;7FRP&5>-FtZ)_RnI=eqpJQ#Kf@eKCN9{ocPUSm_Z_mc()i-$WuT{7dVg-XN~ -zFhrX2@Oers6sO%)^(-emPY9?8HQBF|><_feS&jCQ(vq0k8e7*}t?hdZ?h)+Z(rQ2A -zxVI7DGxGz!ok|<#J}JmYQkTVe_P8@~S5;8}f{H*zdEynP_EPsny_R^Ct5y6qfaz69JOg*-UYIs7(V738?AQ<*AFTfm{deZ`&UjJ>i -z(K>mvYjuI6#(fM2_F|*T`NA7x>pr!asvY@Xf@L0Vg%MPVk_oHP;F%tzPPk%H_d4#Y -zxJ^gil^l>G|7AE4J}`UPCHTS@P==1QI7?J2%`+mEFYL_Ab$c@*NlJ#HWg}ij!LuQ2 -z$@l0o#OveV?^H+K;cbwwFNGTDN7-dAll&eNrx=wAIO!ZPo3i@d{3%ZU>Yb9 -zx-0mVJ-~4|6N_4ooGqfxTP+WfhrfX$J;uXx`bWH+t9trzKkLYBQx6Zr;O;R?`yuGh -zV^~6%)KKWppueNXV!e~Dpb8cymwyfK;jfpNGKZoLoPs1e+g1A4T8<><>MQluHIckZ -z4Qs=IcptVP`^D5Y*0qWkcU`2Sgwlv26}-9!aG!Oj&Gt9;Jy_-9yf1OONX()Vo|`dd -z|4KabZU$N<27k3oa!E9O?U$--4Lds?Dk+!cel-s~c`1rN&k16IMkO80J?J)a9CV+v -z+VLeD6(6lCB-Mo-QUj3+X06ewQheaZYc3+GHFu+1CCdsT(VsE63)o4IeitklR{H_J -z+KK#e$JxE-bm0L_818o0-J^t&4;@ThR%eS_TlBLY4iPjWltX*%L)ydEfDvho=nbmMtAdQs!QTW~wqt2=ap*T-CIRX}N2 -zFFn5gm|co1LmxxVAgUO?6L;DYu04^?3Uc!m=!kL)Ux)s)nTKQB%$rWw<1Q#5r724vcMst5Z0-nn; -zCB_<84a51BW$YvHg={x1ZH+wqlLXQxMcv8rU)nND8jP4@`!P<=qJDG3c*`ls;lO+X -zjUP(UIG--h+2jMRalrHep{OI0Mqj05v(n`5pPRmSu0wTo!+ob}prhp;`_+`1j0-ha -zqXl%$TU2DXKz^}t=e(EJ_f7xjbi)}$K}p1XiRJ;6hBT0-GU+DzS~$&}0J=)O;ODoC -zLQ9x%*E<}w1mIJ^@m==7w(i-}s5b^kERz`SFpyQk3g -zqLkMYG5SZ4^yVqphJHYpm8OXk`F=~@p!T1ZY>nIOpNjP=EA-tl_%E@t|9Vw7!GXM7 -zVw(T!IuJdhU-ZaN?Jneu_MTt>5S>gl&)&)=n}03Kv5%*0W}@gnj5_D`{BX`~chAO% -zKwX|pRE#3}HDT{riAn=VzyOga;7s%C`O>H&6ZXpvf!%z0AF)CUQWMeCx*ABM#08A=W0dZ(B~3m%7ErynmE=fA>zSFX|` -zuU;^ET)-ELsRR`rj(323vxE7WbS5{%aE>8a@kxl{^$dUu2sdU@!DYq7A9fyzZH@p2 -z`sFI7Z`vR$So;vExbR0K-j4Hf>K;A$&Up2m~}nhCI_2-GGt*H!6`EL(4Bfm!%Fp1LH<&so{P#FIlnO5XrH!%I7pBQ|dqNz!T^)%=VG@6KUOe^Xum2bAVueJhYk$-)r0X8&M8 -ztTW>j;0%8c2q#;%R7Ebq5W1TB^&lq~TMKRdz(WM%T6h(FP3L+}oYlNJ6Buo%p`Eey -zjVApx>Y#3N7Aj^#*Zy-MOa{V!C -z^QlaHIo8tXw1zj*2*9?$qPr#Q!fQA3Z=I5mWnSu6*v~Hd -zI#Hkn9pjnRpM}&C_FH!thyr%RE%K*!k9+=^`E(S!~-6%2T6q@=e#GFyc6;u -zh%g|7lom5j{z8tNfi4{ro>}EsJf)-#WRZM%Z9!H2`79`Wdmw#6jVrxh5-Fj^o22FK -ze&LsU`)c3@cJkG7$-sW5{6W6>?F^5z&t@O)C~f;@SI-T@ZLZO%N9MaU!0s71m%sA* -zoMq+uX!I -zP9)J#5MYWl&+>j8>8;eu7!)^*!32jo!PTZpSmt03Y9u`8%jFnlL -zN+;Q5Y`dbfd5#`Bbfkiz4g3U8rA8nex3Gx(a~wV`%Y-$E|bstSux_* -zDFQk-k{pAK(e9MO&JSma+S0r)T?txftxO35FO9PeGluVx89vO;n!t$;Wz66_Vd~2s -zFo8iVTU=_?muIAP?6Mwh+21%MzWpC8f0UqpvtW-1zG%3;Y1E3e4s& -zEADElI46}J)qei}+oRA2FY|ub=sg%GD@W)%^*&*9R+{J*oCygmXx?@Fb7hDhJ$#q| -zV64E^!!P^bebx8Lu2QJQ{joF%{OrCs{+jB}CxcfGhyo>u!D66iOqvwWI)X2=q5n%o -z!Fp#)7NWN6K&IVZ)9H2)8NUri)}(!A*VQxK2yckJ58mic-3gaJa8%WRgVE=@!>Lde -z7G$wi)JZxuDP8(riOsGR(ji} -z4S%WJ;mx$q-DR6}TplPwkL?~1g-B70VI1YeZWL$n)^0Ix-pyDS{Z5}{EtAXbA(Hh% -zu$d3PL}?aY*!IVW1shM2y4=FJ}lTl!OWzQsveuyud18cZG++-9w$tRJU3uw$mQIC`dfpF%oG -zT(3|3?2dpkY}UEaDQ5WD5>;}yLeNgr_VYwqUu`{)k-shWwfv~LK%(Y -z@$<3`Hytk0tj=m~U*r1JLr&9zyBAiKV!m*1lwb&uYR1O~eN(Hi-DwP*)Y7s7`h#oE -zv*4U&&>G)Om5zlodc<*VjffsDez4lHytw3}OIMZFPzb!q -zZe+>1c!r7%uQ#;{TAk0cq)EoyC%M*|n02aOqEV_PY`ZsJ=JKxI1(ihHi}HZov+zOG -z`{kv+#AyDa7Bo4!dI$~^pTFC&KtJo7IA##IX3c|q@PpCz0pnhK(IRT~7iEKsgXCq< -zEXWcibC?QCO*8J1NBRz+&Fz8SA+61*o*;fjX=!6METN{Obf@}Zm*`{&AR4N?RYX*_ -z7OvcSX+2QGpIo13W)8XDFki>uXv_elh{t#0iHd);xlggu7&r0+d9;3gOm~)|kO|x8 -zvKtqHQ<<9QE)6#|P%q4S4!!}C52UD*u|ye~f{F#S+sgnhpv9;aXr6mbWkgzsc&R&O -z4DXB!_}*73-$ak|nZ&>K+lDVq+Gcs}jy6I*A9Oxh1GMal_>%1V(-lZP{fHS;C%$Mu -zYu|y~!h#)89Gu)cihUE-IKH3TRbU+<2~*|*JkDRZR@~5C%d~WE+Lyuo%*RU?^mbvXaUj=bykGaoc7J;D(sj9eNVpp486phCv2viaBQLjeR|4C -z5UR -z&|m$g<`U}1@Fuv^?7s**IFR^NzmiM6&9Pta`JelZFQF2#n-)?+_vVI_qO2_E#ruv2 -zPOU|D&A(+99*^EPJHB5Sv))6xa>jeMsFRT6)F -zWd1K4)$a@={Y)(QB=?vy(b;iSc+|qcgnUUJk7q5}+z8GRJpaWDot$8(?>teJutv2Q -z(h_DKnYHEyG@$o%TE`tQA9U2?bvN}*;z?pFX!6Drz}XL2wIFwDOEv7+ -zBt1AcTPjtexSrLo9=up8UhyzFh1Neg6JN9-)Se+c0bDy!`*qN*s3$t{c_+FB -zC$v5L-5Kx6S@N8iwe%uE`RPfW -z=wd_@k9Py(=oX4Q-|73ui15j0A9>VDk(svK`r_78rz8QM@qGZm*$B-Y$og&h%}VAx -z^k--R6wGyXIZ8;Dl317tHjXW+nm7S2?~T9g@z=VxQbMoxz6S*#(xUOj#+d#^3M_oE -zN(C+}m;Oh|n-^;<0h`Yv^qX&D+LA7XeOxW7af)2Y -zSC7H=)`(8k!#hR;-XtMOKf}uD#P-fZ4JG;6e`coF>>eE?zPICv@t{dm24kFn`Puv6 -zo5#W7rd1^lZBzR}&rfMj+Mc_0fm&0-SCoSAJ(Oa!V8I|@LkGsT5cM2;Q9w^r^tn=( -z)o=T-`lA`-eG=jf0La?ZE%X^%3=DabGj(Q*-+FfWqTRll_#NA65W%8MCHnaDv;DxA -za|6Fa@z_lMUN&PN!(r(lmoPp_zb{i`1K(>9cjJ`6btaiA-1Rr;%pN0MekW8ut5y>_ -z)E`=^-^2eXyp-3Y-tHL -z25@27AeT65-WRfb6&C!cja5>&uhnX%OFK$^3x}$L0SDb9B1!FGoS!&DXkib`*eU7n -zi_*R?wJg0-aY}CTK-ePeA^Pf0m=xBQ^~1Yvw=SaEH~_5 -z|N5?6wCOFm!Cg%=f86J`%4pEC!vdqcgh2({9OWSdrypKyuO-5$rfKzn@OZ?y+P~h@RlbP8y`B*X^|5X?HE%s -zJgzjTe(haYhH(6KBzf;Yx`LprF$C`~CD5IztCP)%hJ6|!zx`P8wtP28Lxq%NR5(KYV*!|Gq~e{!hNZKSLa5pY!Ooy2X|FOaE7(_sNr$zc@( -zz`^3W9t@`oZsyLuFteTDQVnNw3lGTbi8Eii=0a=6v-LLfUZMLcq*s|I4@cd<1Rr(& -z`K4wojHCW+?H7fp_PooqvF}Qy+mkljNG(l7Hb+;y5#_UoqGYn}G}uw&jF!fS*KvdQ -zbf+`bh3{q}(M14u_c^diA>>?Siw~;Ur_hs=o%1bY`_|{wX@c2u%epI5l8ymiG_&0_ -z|HRS<6uY0Ty;3tS;%13=5KI<<1g%`xt;2~QPA?(tfxpPr^tk@^ThZ@0z9ny-f5J-Z -zs9u901N^a4;zS-xtlJ+VsUwg|80wp*3hAP7J_?QbP56if{SuK&hkI``#`HLUdZI0K -z(Y@b!HY@az?=GcA?E5!lm!za>c!C%E+vde*>hwXAdgO{RxjTaIXA^*)0CSMo}0O_Q``9dc$M=1-GWeOdc;I}_-N<8rU#_G!``8}f)sh#qK3m* -z6&z$BqeBH+iwknif4xYn&~QI*m2d!C11bpBMt9|ycTt#&EZ4APw!hxC!^Byn0BzQM=mqyadR#;fP>hG<{L-EJNORub;MbMyXk2<7 -zZh^-XU)wx*)6CFyY5p=r01n(k3&-d89;^KbQA=UnSyv(RPyL@zq`$eCN1QCuvy0)h -z^-kqm|0_U9*h{O%@qA%4=)>@!%{)v>8MsRC_x5e-3}~xI42KxIOl-z~gh*pHk6&*h -zsZ2U5u%ZEgW8t$Bt4ktwo!rlP$sjOaL2&FW@i4)At2cdYrXPaHx@nF4Db9f2t{U_s -zZsrHaX|%*~FOo!PiaS13oQ%?~J1)%5PQX)Bk$319g6d|hjTbF=-_Xdp1`hbFUCYzO -zB0SPH8|#h&%{2_(4=TtQLB4=(jV}8M{9nf)2xivFcPbXQTOr3b+~2 -zH=D<^-(0hHpuZ5-Uu#QVS1l@qYyA$THApO$M%)UVre9Q6lx133KH(0(^RRa!fuwSY -zD9z6>IlzC6VC^^Nb9|PbQ=aeXwqa4^7;SO#p(n!RrNl+2G`&#p;Rp=*mf6#nWH?`S -z_U4N>eaQfJS$Q_eIDdpO8}2|2jnvUkjKfJ56Su3rVdOz&?2NXyBRk>8tsqK -z_Luo2d(yUR?;pY7Zz)|8bc>DdMzY7-^ffvpEO820LCQ1q&_~Y44MQUHImzeJ#Def~ -zn2r-8DS&_IW8&1j-)XYkORj7|GkG$EayPV4bK7p11NWg`3aG`dw+by6dt2P=>?{O% -z<1F;Hxsyb`hi6X&mr!gI&WrBjeI;U8bIak$pJ?R&7(oR}#kPtkJ?<&b@BR&vLly7N -zs<4iNDD_?%z*)LA#oxS9tfZvQ)28AnG2*aa*=E!)(bm97sAvt^B8>5G(HkSOV#31W -zs3JhQeD(Q<`Za8AnTQ5e$Y0H~UZK?jKw=@oL`%sH^H*8NnaVZ0fez=J(8CL~b)rGB8&`|%RvC41MetNRR -z3wIl)XJwXe%J~*eLD*x`gBs?+G9dkMN%Dud#4xg{!b#!CS`%=&0`ASZ?^rSNmQt_HQ>9w6lq*HrF>X{KqinFgX?L?KHxBveV -z^)~S7^2PQVM>X3$q{&}Pd6X0+#V6mpA4nWuz6Fjw*bO5<-lHk!d2Gw1$=zExbTeC% -zvAvbv?tvqkcU_C3M*G?n_Q0B-dZiqfOl^&@p1rRt&J{TfVrTn9xiyJsI~+^WJb#J) -zn1wLGxCMW8x5Q5rduPiA}Z-^2jUMWSq~f -z13g25;0Xw1+=5E(%9U;RZ5$5BE1~xMVQO)W{oqD2S6xq%_s8G*gQ?CwSxp~>&|>%{ -z%n&OhEi0e!1BLN;D|(!NZsa?d7`3(!DR_+Nqu`q$5h7tch%Rs6vp;>$Mg~fL7vbk=K%CI=pPEww;V9>ff -z)IC_i -zu2c?VgPk*g+Y?7h()(kg_R@#euSyNtsDqHyw}I=94bUZM8k -z^T};npqVhl%cKobwoXKA6)5(77;yN=xhXY{^#W*2ZPxYCbIqYX{9wQ=-BCn3az_Py -zGV|(!a>ITeM#K6PC4>3QnCK5#h}lni?L(=DY_T_`ssEaomx{b`6 -zy^N7w88um4-ht2oU`W-Kib+wOx^*SW#`bK)mU`hd<7UmAz$e)9Pc61i;^qQzujbfX -zPBSwn`XVz$@kxTYlq1%cJ}M|SNPmDejg~}G`lt9vhjvm~v^bSm)(=?&%RBcr1vf*= -zfleWG)1Vnz_HO5pWY7qf>ObROo(hh%Jz1U|eDJaY%}1$iopK=F5;gfzh5IH@0Y?l3M(Im_33_8siRR8&IHels)&>R13Mw_VOQ`_WkXq=ul^Q?#B;D5@xjouwE%Z_cYeMhvG53*|OTRxI4pU5HHwFV6AbH5kDSn -zHsu}hZs(=bYR)u0yCpNxy0K|xfS9{!COBp3>Um^;Au2nB8tp!ep8PVTj6q~ldW=7it^<@aG~SEq#C%Xh -zSJ+2*6N}XLmy@(uMpmqH5k#4R0*wa*`^$bVZxQ-Pgx&ykM( -z;LBmnzs~p6&lg)FDo0oQW|-UV299R`i>x0=b(ZpS;z=53VU@~t{eAK8)@GEU6gEGr -zQ6-o=8J=(JDN9z=h% -z!>6o6HUpm$Q0r#E!{@3?*4yDMa3xne1K}!9{`subq11)=rvO$W!XNHenngUM8d^cQ -z2(_1#%H}Utyw8RG*gQ$Na@ubs3u*I;7yL}m5sGy4fWwuQBdMgj&|8!hVmx}PewQXO -zF2M?1ek*6$da8hf*k%@*IZs>D1u2B-F+h=Bl+7>hX$*)cP}nxeQy*9C*^Us{zrYYK -zdP6=IL~Ak@Y!90t=MJQ5vG2Dt#nxP|PYq&4Srmtk61n1C)HxjBD%joGSgq=Ac{(J9 -zni$Px$XKF}Y(D2%Wb35G=kJ-LKOzt(Ghre@*xRpLTOcG$t*5N9+*MH1eZm4?%3)N1l?Z7m7KJV!4EoF<$MdXF3_^DIfsa2A>XlU>7ZWUrMulj7gi -z{gQpTtqxc<25`1XYcQp%V=WSA2PKi-R{danR?B{Uz5a0h7?(iV2VuR8GrcbeY3=cR -zDcemwdTCkESf -zh$>RKw^l=mJ0hrw&1+TKjyXMksE_`^$FUa4|0CR-^|9*Sq68R>)^oy7SmDW_?aI=h -zZ-VwErKZ2}42;EM^1AGHxt8@M+U+1j3px1}EEI%oCnkDwN>5SUTBYu3p11u1E?gg6@Hg$tXR$JO(Ifvy -z{cdqhR9Ak-c$2>0%h5)v8GC -zvEV(}qmNRgkKrYi1*K`GXbg*IVcIAS)S5QCw67S6FHh8bL)(XaYp>a0&-(kTj%0@N -zgP~VkT_p)tMcZ+R^%Y06)`V|4E^!(C!B#tAKd_Zp#Y%#Y*=Nt{QE36ouz2?%F0m5= -zj`$Msj182eFirhXjI|532TDcN8^m}KTgNXo@OYpN&zl?5o$3cZb+ -zY!UY0J19cWyEUO*Kv+=>9Jv))2CIxVug*6P*Wgt>z{AHGpv6lacVTCnX8&H`tqIz3 -z)@JWuYIZQmhyQprbSq9FBx^t@!e9xUV>L#ql(dBg_PJP+o*RQnrltO9YwguStH!x| -zG6G3f+$l8UBd88Hk;}jRp}VE>5r&N|w|FRwQ}d>7Ir6n>_z;W!*M(n{n8hqvzl#38 -zwYi4Ng4*eXY)$*NF}|1MONu^WNZ+e&0Kp*oR*En3O0MV>xLZ>{fYxjdT3KyosI*zw -zOB`?01ljx!VJ6W4$@0sic_&8E?5}L>=|to2eb;knp46wq4SeEptY@a|&sB6PI(j|)s31~5eq -z3NUGye1_^gIJ&W!7uyW8&C;h5)hg0m;FTUN_eB^2&rtn+PG$c{j=;ZO{v -zafR^8|DFyE#6J50tgo$I7|h_;+8Nc9rg}pNLsP~f9b~NAo^31dR44Crx;(KLXs3P*Txv!Xe={U$v0q*AUNPSo%Jby`%5;9!O^T|l#OcPFiBHO8Or2@9 -z%BMSlP`_*LLBeA$Otpg-nvD*>0U)JHM*=IZ5j%zViOgP~)9*PlMUDL@>1nNw~O!F^@Q5$*jcfS*vUjr{Ye7K>q~_@v-yJV5^(vPi^o$DVZiq? -zJcCO#>GHin>^|Yj9?#VP_ceakxryMj8=r=$2@ePbWnhM(hB806i;lxfGF!PP(5X>% -zr&(d6W*-wB(~rC0q;?Jsc*iMuR_<&vLTG*&Ks6b1oGh2N*1yWgN*YY`qo;V`aUTYu -z2%Ds;S3XfMTTpO4-_O2&h#%-Ui1?H=nH>=C^Qs;(7r2QLYd??hW)zf7IBHKlTF0D_ -za+T6u&`^KksTF9r!IwuK?P0D-5wdM?{lw(e2kdsrcYLBMZf1U25iyQa_r?Dd;G9KT -zCiIlD6;k+(ikl~Y(~E>Q-~Hhos+!v>$M1YIfRpl~?;A?c86uDl>TYvUnn7bvsTeLAyt#={iOX$3oImf#;WH -z!qb9SR1|bWp})QTBxQNQH6*#fPmUjE74n!VZ -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 -zUFA@0y}2GIM$g+h9%r0`tM -z=HDphQ0bME3*ue7yH&d38W2Q;R=AI*v8--)v3-f>VMC$KL6>jNLkx-R)Ry+kY4vT+ -z{GkIv^N(RZ9#Y`7qGo3wK}LpVy8UpHh0b5efo}7>YjW{jt_#x&suT0&CjlPZ#%p(E -z3$99UT&lr!GK_=T=^xq&*5CrTXq1QO)|$ikdg!g*&J7qDk%-(I2TKb!gizKiy&PHN -zjUaK%@_Mw|=0!pnHNV)4EKG604G -zZC~OC%)c0Wz8h-PM8;g+MB&-uYMEMIVo3jB5+BZ}bC8qw#7~yH!0A}@)u*R&zud%V -zUpuLAN`^fz9()RzPeLgX*r*9a6+#x%Ssg5xOQt3JgQmjaGgXs5tE`^?SHGh39)o4h -z;(;Sm4b4pKACqYSliS|=Sw^V5JhzvilgAG(GauIiQ*iMLytP_$3T|>+L967<*5S<|JNx^;X~-3Sy{hI}vHs -z9(VNlI6kMpECQ`y=i1zRC{<5QbybQ{?R?;qhrl{QmD5eyz}ZQ^p5F&2SOKyEBe3Iz -zw*v}&yz-wmLPOGkj7jP}H?&}^{g5fXPiYP4lmL&^U6Ak>bfhEXxGrvVR_@}$k>T9! -z2Kjqx4Smq@t`hjgHj+WFFS8)LnXInL%I!?^t3T6^neN<6syQ8@J=8^IxBw3o5F -zr~z<%<2+x$dv+%nUgywbij4_&?NN@NC%bRtD#afR-x{ -z^BVe)$rK3Ch?J$qNC!z*Nkfb_LdwinR+5$$wU*}09%bAC6o!D-k5h)_+itmMr=4lN -zzU7oZva@UeoB*FDE7izLG$DMI_?;bm{6^zMbot^FA|5eO9blXv`e0QJ_4+yNSU!05 -zX()Nqali20jA8;m$(?C{FETTjl!;g7gsL({>E&9bm4S9J1WS$ttWS(Cjgbx%PhvVE -zLSeXN4kQyL#-C`6ZjZIuLo#fcPmJ;AW<#5oWcEbO^Veg1k{lwjH9zx@@JNb8D&XNk -ziP=6Tj4VmJJ?fqO19uG>;~ms=t4=VYG9%5V~^gZepN9YybXhueiK+vZP7WMjf;%VfC3%cspH8IyGo|6v#UFKlO; -zd|P+aJxP*@KXNS`$F*J5f_45f+?Q-@V|kHVRcz-^+O29YMuhRy6-6t}^%1^O7ZQMs -zq|Bld;oX}y_y1$iOie8VX5zuG5}8m%L=hHY&YNO6e_#H5Wbgy^j$)a49ih3a4Vd)V -zB9=p6xT(qpr%#Y%;ZLB0;OT4J0g0FoAs5)w?SK!59nCd8Q~yFe5)d8T!y|RiuK5!0 -z5HNzfk+yY;VtC$$zKf$k{|w=4*u9n|S|`ma$vU4J_0pU2=J1Uf(g(0MjZRx;?cM-O -z-H{Z7Ye_*)X6aNB3V}6ZkXT3H -zQn)_FqcaY0LgLie#lIsd(33^3+HcrbZ&YnDa7zB0Vyt`~V!i|j7y$B5?~`uoKG3bJ -z9tj<*hE!2xX5;(lppol7iTog=-j1=x|N6!>nbr8VTe5o6=4OGF2S~BDe6hvRqT(Ze -z5OENoSC!Ewhk?Ei7$UAP;(-EhVA8!FTR*_=*Wl7h^D@JUqRUH5GU#R!p#hAUa4WPk -zUi4V50gT!$)Ayefh>wb}Gt`QHa3bF8D$+^8x4yD|MD+pMyro@~@ga=fy7x1tBJzXy -z;}`Q{PcWq8Qm4MO$^POKKb(`6GQM=t%EPsOCAfqyRMUU$0I(x)Z+!5@(UgaxxX@sZ -za1l>arn-^W(k)Zm*;5fDg_^EYZ1jNlkI)?vQ#JZc)%w&Zo$?;>G!m0VyYr?01!Q=h87H$X{o$d~!()YGe196wA)^g0dXnBS5} -zocn*V+eNavKLF&jAP?Ygc46YvI%oxoqqps&J6#Jc=addp;cMltizl@m$$O&LHG#hh -zN0C|3!L3ZiSk~tKz0dZx1wqjUomWm9vMArA5xQ2JE>w2YG+w2T>lOTf#E{n-rG9y` -z1%dQr_QKO^3vsN06q#dzkQF;jhFvYo19#Lwq4q4GH!P-M`Ybl)?nO5Gp5|Cwqt4}W -zR7c*^1QxvW$r>3}2>7tG3Tquegr!+(%RS@T@%=aKrZ(=@y36)Tek;8Zev>6UU?Ds% -zX7@Th4V~L*5pY=eL{i9;a_(xIVJmrbK=Srp-Tf|LFES|k? -zLfIUi77Ie*MxGOUe93@CfT)eHJ8H4B6B|h1IFV_wv)4Ua!bvX1H%0`PoYcl~n}ht% -zTkk+`OWi_%J`O-W>%IH6#lDsoiIUh!BbBW;Y;27w1U>V<0-Hi5r|(+86v?|x?)XzJ -zvL0$b*QWI!#TJ43CgahC#rxCRjEA?Y?m82z_RRej?G)4g9DTlQOi`Wi;_*xDVVk6s -z#%T#wkThwPtU2Y~(+JE0Z&V|X3gGbi=Ms=q$7u<3r*0~ul -zNIAW{a0_9$2ioC||LTBQB&S4!{Z~UoR-0^Na6?=N(do~C&*d+a%q$rL14IqeH~|Lw -zXIrYobhDkwP>5n5E2=F~i6n9?LeSpw?9SLt{%te;7Ag}r%b2;v -zJ~JI)Zr#76>#r!+e*;#pN6q^6;Zdd-K>zzT50#jid5zOiE- -zja|#T{&L*&AnnsgL)2n1=N=^U3UF`feAOaHU^&AX`AQBqt~GI~UpCD0U0mO+QK^0Y -z%N@7nl+1qyAZPaCuNgaftPATtq>(ncGRiHc9Yo&)9af(wrdD-mj>EH(P`n3tGpSyM -zXiDf|$p -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 -zmFwyRS?|B`K){F|xR9P7Zts)+Zd#(%`crB6~e -z<1GSQSbIFH<0;o)r3ufPDjv;De}+eQ9?m_TsTeUM_=$cxBb*hd -zaVpg`R!({rc$!IaO;KnfaVFGGaA_%CCt7_qk%+Z;YT#9BP`@iPz -z#t`VVeI-fJ=!II6T%i8EcHo||Lf6QaaDzp9rdJ^Z#6UBD>j9E&0>4=E?17WV4Y-7; -zM*~`ZtmJx@yWd$G$KuUOZG&OnK(0ouJu1F2WTmXOv!}pUnS|Nf+`M4na`U9&2!o#M -zCZBUU6qnS;V!p4H)+-R)Gm1-c#a)j;D>JLKi~z}O08#k{=69>pQ=j|8lbi>ea<5m_ -zWf>ub;)dSL?>e+;@Z9DR=lk5jE}dA0FSAb!5e%l0gs*`vrPQj}lTl!z5qbe;J1YUU -zUJ)@h&m!I}*#AV5;r@Tp6-&$Rr9}ec!rqJ{8KVLD|G5teU1XiDaS+j2!Ps|r -z?E@ezd*tA|o*U2mq=t)UcT~*MK74YlfhqQQ6BE;m~2a?=d>~Ckrp}lZ&}R -zb<}O{qs{Zv6d;{{ -zCum(ni?>P59v(Iya+tLrq{=P3)dXILG`|2z@)yRV87>z4FCz#(iMpMWziXFl{!#}v -zcSGGL4r;cGWQy8*YOEv72O3DsUMw2Y@I~z+z9vMt5~RN!eY9c$q(F;U9A>$E&yF3l -zxJEeG+*CRt(Ij4CL*n!kS!gXdlMaKzc!c8z+y0QG@m|_B*s5N*{l1ikDat=?Y0O-Cb#EHl{< -zY*XRc=pMN`Kxcs(U+4Stcd8}|WR-&(IS9lHtrud>_f3jbw)#M$6qq97^xZwNqs4a4 -zl+*n>AyNyNTH2TaGQphLo2DI_F*p^JUae0YkP45)*|YZx#Z`%zoW3-y!Q@;lLPSwQ -z8U1;f*PPGr&7;azFT5bKSlhlk-`wZai;vQ;4v&0W8fZ`wVOH0tI3+Tto4|RH2D=9g -zoG9L|7~m21*-D(gzmY~i=A-yWhU@nis+&{BYTJ@-e<4y1x$wLa0;`u)nX9M#7vwBd -zzA`v3QonZ@8iv6xd5V(X*>t$Pw3rvl1Fi~Guyh#6UbU;J$hn!gJl}Ea6gOpVMh;Jf -zlTOe7o{e&CG-EJC4Nsy3On5wTIDbQ#E&<0h3Cx{&;F -z+_!1EV6gb%a>d9wXy_{q?Te$i%{R~yo2OYFuf)Al>^2!U>ojy5n|ieh)Cr#e&Y3qK -z-E?>^(=qtYrt~F#x&JX4*Y(a`1MJZU>5FNT+;UGcp*Py~Ar-}&aPeBDGxQb3Eg!R4 -zWcuv2#!EeUbQ70|^#2Bkl{|#*CebH`T@7|b{<+_yPN08YU(TrYlMRQF(U^F1s!K<{ -zKSJ2Zo9c2>QkqAsX{-(ks+|aTc9U|+xs`*xMP!Tlclp{#j$-UHFVJ;XjcFb$^MEQ7 -zv@E$Nn)bzV99SMWn3Uq;4F;TJugHAKr}$U%beXC_lA`5jfwnRECqyBi%Kq7z?z?5X -zndF=x6*IbW-Jh2Ouo9p(y6{ImFuRPh%k<+wc@gih;72biz8>xXFUIuzm^yEW8?}AA -z;#l4g2^&Yu2ZG@7Tfu+@yO+f^U?xVYY&R8UXb3*OK_R!*WWht0BHsT -zXInd%2~VefXerpebqAYnSC*({fV-;~#>b1I_%&BTz`ptoy>PPRL;4=ymSN=3cWRIFQdA -zFfPDjf)Kvr2vKx|L}s*u_RL0DQxiS5?BDtjC3GSskCJYA-uV^_FFhne5M{n?PYI -zJUIyT;?)X76yWLbp6>Ny5qO$O@b!qLNGgK$?l@#WS+gNwr5GlYtMVQG`_EV!wdf6A -zjJwVK4^~_PibHlXY)<|b&fPbJk!-(Wi`tDnt+4uYCv>GlijiVsEb&Ua#nEmBvP$M| -zgX)&P!gNQDJmW50{a2OCxKn?LUiA`C4EErwWb!m9{4Pg6qAW7^GMN%Ixy5>c&-f^R -z@O3aSQZgpa$&kWf2B)0B0$rQD@BI=XQM>vzH-H-4;vLtmNZuu+^Ed_7IJ(Fv4-){= -z(Vwya@5AVWpozx3^7ejBzw^N@8lpal6s$%WB?HMLSdI5yGEqNQeMi?7+SJ{2JJ^wmAb{c>2{F%hD75R3Yi(gAUd$LtAy<(#y -zi29pgWnlqmT6zGS5hV70-)z+M2ozl#zm~HtouLj;&Z(lr;hc!e=_JsFWZ>7MMx4&W -z1FYgjlP|aJ=TVuP#9RErk;>WEFL=n3kk=-0a=s -z^%Bf;1ir8ds{Y2HoyAI8a-v`V4^e`4XgT>f69N2DCBk$Va{Y*T;cZ@z4 -zzV2zDV426}1&I{DFv-{S&W|bh;)Jw251}*xRr+3;H-@o;3OYRVL#%^%86<=9U4QYvh#12OrEy{q&{RNr&fb -z)xK_SU|U9Rf+hjw#S89JysuRza9~b`1yKaVZRw9wk6p}f!BB|^8B=vzk<@=TNh3Sp -z6hB2kbEqFyulAieXbghpcteQqLcW;&H?HCx&{mbPZKdYZp^lCVPeR -zzjjGIWsd%MED7ZeE_A+8~^%z)?|0TQ>H4VO2 -zW|%947KdH;-9RSS4mLeMZvKz05y_J;~BW79qeNnv$Xg24`3UPJB}%i4cmN -z-64(ZRgD9aoHGqnVe5}T6bob&3ysQu2h@oXyMD~8+JMXkX$LW3bLvX|Fw{Wam;sq| -zdY{tL!oK#u6x3j$hCf!HS7_zw#~sQ4LBU1-N{p7g*_6sTFFo{CTZ?2)Q7L|l9luS*re|4A|f0Yn3ih+I-%!ssqk{x4%l|&9hE*#hc*k}M7 -zzJ=863L>84)=|VQ;p-sb3yhF--af^ -zXb`b|F9+io8jwfsCIG|p5nwAIe@y;f!Q`_Neim6Oenp|(&n{DHopz{mwrhgA`?vXBPf4D(+Vv~dECo-_V0v?a9^Ib%Y<9CX$q -z@IV!DKQEoO+)ANnJ}@LClUWlFVLpu}rti^weL7W-)MvmhHd1RQgOUSW89% -zCd`WrO7fc&vJPs8#KW#Bt#H -zhw_M4h@FwPulHU~QK}JaWAl0yQ|dwr8+3S0{gE$lO$Te^1#s})@sm;Bgbn6W;4GVh -zCnc02;}uF*+^1go=RRse&)*$+&z4Bfrd1n95&Tb81QMEIi^t5XM)Hta3CV^Fw!F+U -zR=wuRVXEI#312bdU3>JY05GN646`RGba;P{m$HlI;rA@^+)1jy|7pJ9{~IhHRp_h# -z8(xa`5b;z_adEFay@19*8N8cEg!Z& -zaX3LRNpT~^JL6YZ`it&sw|@gn$KoX{vL0O@9`Rh%OC#%nCIR2^^0l)l?sinx8`#cH -z&O%R4DhNcr=RN_-7Q|7Cw@s`8okRao1zj-H_>b4-E90OJ(7?AZAgC?_9TCna{EO)* -z-4f>K`D~OwMGQX;JJQ -z->AHiLhAYAoD>~QCD)xZWR%*0{o2ei7Acem$u(!k`7ro=oM09brQZqWJzt=AabrF@ -z)2E?_2x}n2jv%$FQArt_K^TFGb6knyb%uqYb1OxwJ0vIXahM5*2O9R4>pyL1G`*QS6F;TD -zh_;&&3H?;ZmxCF80L-qm;EM@76NIfH)%%}1$TBvF8W!w){3*@9S4}9c-|cZVUCuMC -z!v_pSxI-;>L$Ah#8H5Bmi(_t(-Y-ATbA#TV^2otCepyD|WFJr}6NT1(kT-)qyS$|R -zjiAixj%)FP;*c`H1VC5-u=1-8t#XH3+QCSG>0lEa!E8I^J<^|5;unE8O1;t9dVDDEZgMWw8m6vo2$o-;9YPL87dNra%;v?+}2 -z?EXrx+?-c*F7Ipk%S&?zRwWJ|n|`K``jgX<5seffZl^K4T?KOGg1Z3-^Xn^)k*Bpr -z?T(LVwXtS)4}(%9H!YUP?02^#dn*^Nrexbi8?O>#R&y8x6$Dx8Jy|ZWEk#+pFilIlvD5_r -zNGOLuw)hX}uj*D#hUt?zyuY7BeBWkxBNXg_Mr#(r~ -zg{&~5E#_|wH+%efeJn3FnB{v8`C)5be73qa_N^DEg)$K#SJr&TDggK%IF_bFz6NT# -zt_M{#eK*i;JC}&jLc8rnMP?97d4?mdUOCZJ$;VJcU#~@(zDcyYLt^eR29SWPRPjC+JJapAiZc&CCbzSV4$6_=H2&7fyhKycQzDJHp=raguC{ -zAHFDKJ?aSn)^}-x-6;-Or`LU3%o*bxQP15tcXn&C>x2{DUpF36w=TxhwK3h{bhzCi -z+KIk;e7HXw(~0-DZcGO5vfWO}rBdW0H@vZ|T*saWBSoEgkCvDQnuQn%R;Hpc-si7+ -zo>$~~I>{!Z-{Sb42wiN6T!YOj5o@&yPnMr^(luu9{-rCYY?fAOZgZj#GmsZ{`u44n -z3;mz2-C)IW<$B}W5S7^%2pAt#zL~CVWFx|ND(i#>@seIoVR#}?u`F2XP`d?Mfs$6? -zV0Uzn<{gtq0Zob#-hR_HVt(oKYiBa{?W2a>;Ya@hEc^hU`Ok#eH6GjunADU&2p?@jHDgo**y_oa*nC -z*%*yVf}6B=c`!JWQR=;Aqg)^twSV36&EAA$;g8Wlylw>n_6_?lnfo&UQ~+%!&8YX` -zFkY?KERF8W&-~uL9fzVay!O#_MwWC~$o1^@LD?m#7B^B|9cvIIKxp}L<%8B6c;%sB -z8j(G%P&J}tAG^C|0wRhTcR%YWoL@6&?(%7GN{Au>Oz0mT>&8&o)&gx#Lm7s{lk7c4 -zH-14(xHQ?1NpdI4ZvmjDQ$(Vo6c6QbMPK>XD4u_X*QWN6j*p2H{pNFr?l7~--T3-h -zQ}7#t0Rfb#A9Lek*Wd`?_yNFypZ9fHdK7Id7T7Chb;``78TuPNCi9>lQsbCOcNo`! -zd0WSH4wKT=DvIa8CKBU2n4K_0+V9q(U$TcE`EzBGUge&nzoI&xhY{2+2#JahU>WmB -zcg0W%ZnbveZnEpvwm3ZPqS5FgTm{csUxcXkJ%YO6Z-{(YJhqg?OjW5RZp+ag^&h5IraMSk5`YX4l5A(3(!=!I&4LmzdUGQ5 -zqZdptkTz(c<)Bp^jL;uQck^Qn*NPm;cvTTq1QS|-%z-svQ;P5H+u4hO#Q4V_ef0S` -zvknbnlxP9*soi{HaSUPD<|GBZeB=3Xw9NU7_TH1{Bp-N6&6n~ZZW_QfxpO#ef0^VY -zP@$wo*tgd!LNPlor>gHN9pOhrh<+2P@bJh66Od<32q-{2K>Wjhhx~(UKiMC3lv}8W -z{VUY#qZZlf1jz+7BlqK(o4VHnKkM@-W%9O%Y=Gku9I*Y1_N%ZY_u5EepJ91 -zRzbvOgRb@8^R7N5G(H?(WUBzJ7A|dwVmM$ia>=muNe-|iWv72dRjt2a@1;XW$ltdv -zYl}1W!#Gy4kg%Nq=zjn>m}E;oSCbTflei(*Yn$h%D{ui>Srnrx}lDyv5_d;Enn^#x{^l; -zcH|_C3l<4Kvl(f`YR5KOR=2P}4e4&0W3!h_J-FqB8Yz2fFG%UyEO6^N5QhUzozF;0 -zD}zqf0pG9AI=4w*95!%lqW&QT|1mv-+{t^LgAwoJUP$FS_PxK7HhQw=ZBp|AWTygl -zq%TL4+FLp>OtS$>{3clzuFgk*w+GN`C@u0DBp=MV;5ctCJ*kXgBPQLbTKD5Nc6BPF -zOH1492O^JkU#d?=udTEu!~b;=KdK=B&*HV{_Gc3OKH!WXWg&)a+kLX8{Qh5q*jn^lr<7On^bK#{0hn424 -zD+ebvt|7y=<2>e7$$jT_cRW&{{)1*175N!e9ibhx(cP4uv`!ZQdMAmDiL#Hql+RBJ -zo^#q2l>PK7Mq_r5WqErOz=1&Cj=kR;o-X5yqVIwweIHfQYFF1C?okH9G?S2eI_azB -z(eC8G$Jm@(T)unEV}P~1(RV1f-(8|u=8XCf#i}XFHBNm&$7;tJSPG89lkSKV5qJz~ -z0Ic|W-mBkoTshh$eRCG?Wr9usQgZ>~dgGk^Ddh3>B-SfTq#TFnW^YOCxBeUpG(MmR -zVy))HTkS$#J%A8Q7nDwyOdWL!V+)8nU5xfJ6?Pwq+vS>8v+jW1d3ech?F9iZ!|l5^ -zr5At{KC_vn<1wv<-{M-0xNTLAJ$A#R;QcGO<-Y}~2}_&i>2Tk3XftHT>VGT*9uaWM -ztd{u2tZI8>oQiuX|DL+;-^+s;$h2{VrRTI|f&Hq;RR53AnJuYgHwZecN55vc&2~Qo -z54N-vXvfI&aFXw9>y4LR@QRNWfZ84(-2U~BPBFf@YD}g{QO-|B6nn)zi*giI>GZDN -z+wlTm4g%)P5dnd!O^T8hElc);cPYM(t%_$2qSBK=UlIbHQlX>w#^R@W2zgwaAJ5nC -z>vlOcu!cx&Qg5h#5zO`^p#TsLAe(6UplpR1mtp}s!sMnPsxCchA*HJ|4q0;m=c{3n -z?BdpK>tf0&`hI{s9)M*Z0?sw!JcR9Ix&yT!X8qA?Wbz{YO%U)2@OC+~ -z5#H;QR4VB%DFuyw7N{;Ii`*ipQ{?b5e`MwY%Pwr1ii%=_xDXbBa~DIeYC#}Vb%dlJ -zUgnw*-tGLvavtsR;ea`Roq0PPgc~F52;(31Aq=DQ8%+1iqu2f8mO~#Vk%IzaiAXh4 -ze#w$K_M7MhJc6d#*suIiSWz4-G*oRNEv4Vef`E1=;X$ -z8so41m5y%T(DsJB%QFFo3ShM)R}Z-(yROFI_L&;O{=pl*TM1{yJ)aU7H6MdG48Lej -z|Eh*tbBU@{g7`Q3q@8^b9r7^69{%dwEn#_Db`K$)cRV{Ycw?~fbvV?mnA9SSGwbD# -zMY5MvbO#;LU-T?S*N7JEMq}<^r2BP0dA~H5GV#Xv6Lg3s`j*Ex%&n5PHkA^}^IFUCG&sBs_8gkcs -zBOl(C)`zZC;2YQfUV(I@0o|r{0uuTT(-FUepF$p7!OAX;Dx;|GOM!v>(QlMTU7<=0 -zc1Kbk@2gXj#~S$bT2Wqm8b8_r+P~Im+Sb8&^JadpG4B-ji{JJZoV!#qSx^iALOFLx -z#(R8g7))u`dn@9@=E7z&dE8+$ -zF6~M3Iubbpn6lEIoRiHcj50fK&PwzfcQ&q>{sq5(AIYTR2qTzTg^bmjZF^3-au5N% -zmV_UBja@I+hK@BShd#TM7%e--A_VW@UdV19npf{g@}?3gJ+>q4!DAFZ@&yiFOgXQH -zPnf{&Q}^snMfq0)$`nokrb5Q0R>#dV{%!#PABhd`>g&6_dqT(KGt4*{ox+T_!-6eT -z_hHr1uGus$Q7wv^DXxW)Y3ivD0?Vg1G4-X*t1_V(}LRlajDj#ULbmH18aG8{AVAmUo{(cy{a${ -zeyYK*)=P@r=KX0rzK=Fio^;YFDsGZQwBeUi&m$2JwZ$yNhus*$f_PZM&Gi_q_apMj -zgViY4^9>SXyb>&O!vb+*3v|;2-T=OyqlwHvJpFnEVh;w!h~;023u|oX*p^Mto&*bZ -zSvpP|TA>PA0EZ?18^_$>^0#HRez5YCJ+{1#6)WsfqX-5xl6gmjTgaS!A_RRhut|Z;8E`{Il?%nG -z@n&N@_#E5fZSr-5oyGeuHyv1Qz$tq=K~%`1jW;-7vkAwZIfU_Lh7*;t-a9kx5yB3j -zE9_hv6gy;)-`Ws4c$}`MHnSvjRvsqdc10;4CILz_fN{;g?y0|$pQW@I$VSc65oNXIv}B}CP@VgDo19B}fG>jJ*K8zMr$%*$`U7$QkEW{(sH$ngB1m^imy~pO -zgLI?PozmUiol190NJ)o;ba!`mr@(i(_x*m}d-m+vnVp@TnP+x3W=55NRZXyo6iGlp -z4q59HNayP1lDt5XQ#b@J;yNh4J6K6((Aspl3kLHS&k3A6#oW7LP)*VejlA*Ahp -zQ@PgFe0{Ys%$STL{N=l3HH+tLb73bj$Pvp{J2%Sebo%&|q74Q{fYg!L$1))>l>t$3#W+kp3 -zwSVkO{yi<{#1a}&VIfooc5q~h=WwoQLPuTsabEmz986@H+mg$wM( -z`M&jEa#LKI#!`$&B2nvD++ViRCQ;RYe>96%y{NrYKr3o%tRaFsL(NSqsMiIOhN$Eo -z*VJFa>rWTT)z10Od9U^=nSv&Owg8*7aK?D?9ZW$@Nm;$5swF3if?{sf~#CGCm) -zGaYc7ZrhX%jwK>fB9EHC)w#)=zA-QY!PNuaPoStHut6_9@S#0~xDSX25<*84m`NbG -zawS$*(r;>vg9w-=75p4lW74p3ep< -zs)!m6wNd1$mOqbZ6e~rOp&T4XR)0x1Wix39uG9cB6aa_V`OQrN -z+_M4LR~>n924@{HG+wu!d@+ozV<15WPXFKbm<|-A_Ol?(xvMgF9K5_1yJxo-`ZJR^ -zNZfdqR*}S-iqXizZ6qc$hA@Po$+%bIbO=hy3Z17YT){;YW!mXfAYUOF?(iI6#vMRO0RNN-aX(npuO89DZTg0G-AOMaP(J4|yy0D9rLR%)Y#qBLN6S`!G!RZ8UE_zSfvz5qr*>u*O|v{-Z!} -ztPkq$$$#fluR_F$~~$Vxc_#MHza%t!R+FF>X#yn_y@|1Wd$l#m?l#G#tltG -z4&Aw6CM7xeg4nEfbKXuw%<27=h$v>{ls=0Fe7=qHYG<~DlR3v=cAX)Q$uu>X#7$>~q%s(=m)V(>fBc?)YmIYl%y0rg7)ZydkFSL{drG*X(?Fob -z;s*c*9ifKZR29|Kp|c_D8)lFnLGAsN`slwJ;y8l-At1X!lc0~Dl(4&)Na!^e0oWM4 -zKZOwQspq8C`ihGx^Li$n~3Ie+kdj@&&U(I -z)H_UyHMpzJwY}4}$RB#GodJYMxbxbU9=@gQ`OeH?Z1i?j7nBnxW1SN$js0h>i!49b -zhPa8th0=;#vz^VjM8-TMTK?%HjB#$Ruz9_72Qa?Vj0eUE-1;PvfKm|MKjw3E9^aQ_ -zzAibKk`AX&Y2d8Pz?bmc9d@mYX31CT0mrO6Y68hOlstHD#IBh}ML)TH@nM4%NqwDl -z<0y@$2SlmZc%I!oL%xFybGZNYJAU?eAYkwOT?*q1z0VThvd962^~~Yg7%+DTS`(ao -zUaOb_{IPyQv{yPm+>J+7PsUnSjV&`tQYerR6q7aqy|J96syjj3rn?Iz=8HcnrhlJm -zYd~b60OtF~Z2k3~-G?5JgKpH61utQYXMg -zIH7L9k)wJir`Zl*-8;SwU3|yk(vl%nm9pg|6`^lTE2`(*VHYelbwMxR9fdC$1#XI! -zGt%@B*tLZ82bC5JMxz6x64nYU}OQz*_;dejb -z2;?JlKOt~GiKm@7YSaWd7ujtOS6#oApP-3!9m}#GtZWGRVyJ&wq` -zmN=P$sU>)3h!u|eXuogSROy`~R{zIS!=(Or!HnS68@8rxav-d)&Xq|V@KPV|n8vco1h4bP -z_(;-UC8%qeLQ`n$(UCj-zci6KX6i{^#N~59w}1n7tPRw#TkU`Ox9*YpSIa>ukA(BH -z!bA<%Yr{?!|7_%ZHU@~3>Mdrs{mO5xcCCR_4?wdFJaAm9qx0@=ymp&iV*PhkS-qCGH}8A3Y}u7#ZZ11zxB9VEAvYz{dVWBv -zTU?ZUbEj@ZB8fG|IX_+NIg`h*@)VIHhs>e-X8@=p%U@}& -z_Kr>ay9RQrm% -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 -z`>CvZXka1YA%)(FW#9 -zkTAdJ-y^MhtgX2Z@xpPfRbRv3F;cw>doJ9xz1oh0^8JB*R>TOBgXDW$liCW-BL`ON -zhLT^6O;1<<^jNt;W2!vgrd-&O?Pj_? -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 -z07`*CZecPP -zekr3U8&%+7rTdEOp<~inb`#rcmq0^g)7Ji90UQXuU1eW@v2gRXy<{c_odeHzNdCij~e#)C<#H=pwu&|Js! -zi5F{NLoXgMiNDWFmIsc(=JGvjIug=k#^1E&*JM7Lxxh_HXFnjq^2C{@Kvbnebtl?8 -z%Fz1#q_w(K!u;4BJ-&@z`%a^FJz^o+k$2vbRhuX$B0LaZh#^Ipwlg5y -zVXEkFcTd#w0DGGwdhtq{sS3-Dj_|8ifB%cyQbG4V6T3rV-SH90?gjxrjk(tiUbq_; -z^Sjk4v~$J;dmG}bUxBytax=i_xKEI;6Hb$h$U&#`cG~^Y(tB2f(Q4Ysk{+Bi2>jw6r5U<4GVp6y?QzT>`3eU0Dvfg~Pk -z)>%FED&n_KO;~&*5nFlgNTGWZ=QvI|6!e1MkqLMAK%TNZi&kKO*= -zbc)_6YGczF6#)LjA!{xjfl -zPg@8P)KM8Vm&q{{D=5z~_X10boqr~WgW*``_Q>p61N!z_=_!jM -zp35(a9+5?opjNR?;ys#n`gf3qH(Uxy4uFo$fEEjzt-<9Qq?fZMPGZqBm}#K5?!8Ay -zGY7ouA_%lQGkF_{0sP-yh6l+~?;vHzG`6A`6pwK)r)JT_2L7^*8Y^{SrPo5TuuxV`v8O@S*LHi-OOGg8Ou}Ixk%t%S`-|ragZqokH-CYE`^OCP38R|JDtr8f~ -zFN4Dh-*LRyPq4dX=k3KNZUVfm4B1I$ZyJ|vd@fdWJk6*giM(>-j!0F1*UU|m2Wu?p -z-8h%|+D;xaw}Ft#@=nE>7aMN&$QhA&X=;OyC`U!Qr)}xK7M)D()*g~`+V7!%kNK)~ -ze8}aU|Ni8I+{M$#jlP@IfrC`-ctin4QG)n$vaE}-NaJWbg1Zj`(MgjpEbdRG%KIz< -zfo&hgALyW#7jpFp!eFOibHeL=u~ -z$%T`ITmwx!!vKEJ{k>L%X^V7y5vf{)?q6w}J9tv+)Z3JwOwlYh1Esm -zNl`q%)G?ndf5>LcKVUx;zcb+gt&!vq{GSjt&t~SPH2)&;yAIhqf?wwWz=N2uG-jg& -zOyl3_aQ51##WG1F_{h86>3c{!FGtyN;)4WxUJCjYY?(>NqPRp6Ia&}9r1r&N1bBQVgB`%n -z2>k2HYOe)V*bN{PDQsJb$G1;Z27qw>>!{}73K*2=9q9DW$kv;BSU=h)-s1#viu4Ol_C`J$*D5^W@%QZQnKAAFqdLhwx -zV6`M+`pJAYq#OKxN3|0dcAVf2>Yw+9l;`LZEYz|bExZG9^uh;G^@VOp)*@LKXS=|3 -z7C;BO<`$fNGo8g@CAK*9sNVz#dq6;fJ)I~uy%^jQJFuOhvFpFR%UHVtlia{yEQ9YY -zPZs9(3+AP`k!l2>3NWT@S+?B^MTxwndsZ`wNj+ooVC|mvryCz%Js@D66eV&du-Z50 -zL--Bze?;5iASc~EJ|-V4864j(O{@nG+V01myE!YIQ`2xo7LhgBS#+j&FOIpK)U|9{ -zGieF~l^);R{kAKySAoBK2PBN$y;JLE;cDwN`aDX5$23XRUM31(UhP0Jm2@M4uxBXj -zi{POv=h)N0#~RBpbG3P2BteG4Qt~OVuEX%UR0S$ajR^eXd?dJLf8PeEuo8$k*|;(8 -z*lxEWtheH)=26D}e+!6ri`%pEfSv({p>#2g2rOPRzl)%JGV$1P?&+8rb$)tO7ZvEc -zfXz-#DAA{c&_bjyq(VqWJJu3~ht5iQNBsMq<3oG)&s6rWf74u$K&Gl#r3i{$;fCc$ -z?F|{jLs6dbUZy)skX0SN;(V=fBI@D)WEW*|LCBEaK_N$;jGEmiT>cEmn9WreX4`0?VssO;WG-Rhq75qt_ -zw?~&DtqReesgX#xuQQ=`^9TK(8xvA6)Bmx-%_FtpfTlcFB+n9S0m*Z=iw;}GFy8&q -zwX}e>9%QY`p6FWqyGbfP^Wf-PGS~A^D>Dh%LEp5g?%4(AAAt57s6ukIJ+pHc6SWPZ -z9pt^k%WUS0_<&%Y!`ic;?kgq_1VS?5dHgjHt@FeeCl^ihS!H8;=U3cU$%F#V%9ra# -zU+A#^nS8Q&AxT6I9DT2p!O+E7{>l>Ah_B(TL}xlNdJ`&yLT-c|!!+6|Rv*nZ3M-K3! -z9d86#Z=c5jiZh_06ezcLqL9VBQw(SpJ^Be1^unQ91r5=OwZ*-j2*Kh-QT1mVF*J5G -z)b=7Cqjqmy{|l5{du-fa@+qp#6X{Rpz|a7(II=iF#zm#%O$%50R-JsxS)J(s3_>1~ -zEEe5_cVS8yIxH!Yfy5D0g~)rnM*sC4z(rixUh6uw|JhR^>=@1eK7n8?#4&diu^nV> -z#C`ROldwkL#2nv-a#TD519qup$8$zh>J!7Rn3g2NrsZqfr7pYz2MxTQNQnvqjUQ-^ -zJF750{Ih}$y*{kF^7-t*+5GA4^x=*lLP&96pZ#EdHapwZ5=#wMdSeQDOrd}H_2^x3 -z4SI3K1jl$wRhRmzf_d~vW1MPC&&*}mV%&~0hq$7cI|LAqb~+F%QIS!*9uC`!iEuL^ -z%}A^`XOgHPSRU@*N{9McQHxZ%@+11Ix!?j7_8i@pM59E1&X~o?-E{O>sqAlQG)D34 -zLm$#qXf$nk&x1_!9QzgzV#^gTew-aJO8cA6%4EAQ^Hn%yUW=1+mLT^i2T#mh9l96J -zBcYqUbILUc3YMSQuR19o8>fT`lpSiv|Cp!Q^C;Fm_Bs9iw+wN+{n -z<7WJ3EZ+}b;MTp4pMWMN{ZNEBQLh2O9VUH+;Cgt2Y*1ZM*j*y3I^uAYdv}QHS@}KB -z_=hW -zM!@%$A{2Np6%rU)`yxThcKkrh@ehoW9$ANZVR9Jv4R=k4&-2`qtV92rt35Kfq@Cql4ldq3Hz<-lneK9 -z`!ThL4&&!AfwE(pln%RKIV6$fgk?diLXDBrAN6H-huAC)HDnbCJ5BlaktND{?>nTINKz{Ia?6cA5y)vbo)Dk{h%BHA_J=LjdFmEdTXWq7 -zKZnjAV^bV37h-yOE$+lNm9qx(>bwS;fe4LUe5SaaB6_+!w>7Cx;tB7yN9Yi%? -z%QEUdQ_$uvw}o`K*Qh_D{X! -z^z9@N0taRZNZ!HfAxwZ>WRaMSAiuJ*M_>0!S_AV{Nt$T@E!Dy|#1oTn^kJo^vou!f -zrmD^R1Q@oN(0euwbNy`150$?Sn{uOTdVgGd0C_3^ObYDe#{B#Vu=DLJ@YpQFoq_PC -zUh>}R4%REi1y&%tgbeFjT=Nn&?l!k0nVJTe_0a8k34v1iJ+(>T%qKA_ -zzaPGH72$Tz`@XOaQxZ3hn_Z`%DfpvnQ{^ej&ZW&GOXq>_oS;XOHmtt6(~I^1tYM3d -zC7|zF-@Ac059;@@(`);nw7!o>u>V#8Kb;hRZmUKhP&jlZPgCT;da2;&_^wnSm^O;v -zTJi>j?&w7QgPb9C#DOs;b`KS_FmWY#fbWmZb;}yBtAm+cX -z@hL8^ST-QUXGR9P7r`6q>kxS>X*4!os<~>qG~|Zv*CZ;op>CPz2 -z4stX8Ap7+BGUZ^!V@k^@E077(a`NUCZLv7H#=b_Bg|m|l$jMk{e&m}#nVm7J-CK4M -zWc(=GY2R>NObZlapgMAik?v%!e5NGo<+kdC6(!4w%7DkZ;=~As2K44G4C^ -z=_%o}HSP{I`VckmsJUyY>rIPCgv#uFeM_Fs#6a{mY&oZk!svW3!y;4|7oc8&w(6a8 -zX>=2HFP^7kbeVT?y8%gz{hf*Yecnol;{@5Px1yT^4Y|vrG5$<`p3bDUpc2Sm?$q0~ -ztc-rU&=NRsK!Z?JmQu-_yweM^G}-Y`wRYA|^&v1=Nz735M#p| -zY6}lCAIcd%5YuN4Qtg(Z1%t_`LP>~hUjil}4VY^YepONd85ph^>gOE(@!i)30E$rr -zLCWdb<~}g4ZGFf4Le2BA_RTM8Sew@#P#Qq&nWcqEZ!^Cw*m$zi*nd85LT@qXtGQVc -z#|;Aeok8Er(tjdh(9(8=I#`anB9$*#xUKj{Z^&3Ah2Jhg>~2Q;>#8dVn0e&>hHH?D -z<{xFCGiiPO@7pUJ40z;Hl$5vyarb!^-ht$zPK|=ZHUS0@l5oxnV=W3)09Xg8HdMt_ -zLdtmb>}6l~UX!nv895iB>mDFMqqr{suK11GGa&L#*kotGVPD9iN+*wW0%Ns6?RK@OEz*`W-Li{tcf40z$ot79zy -zD*PR~`+1r%Zs&d}l|nVZbi6*HX-oqD832<3i}~?vP@TA3G3BQco)p}D4D?rom8NFo -z&?wMcI>+(Ka)iL`^^%TsChxJOzaiWru!6n10H;q0y8T@GG*c01G1u!QiC?0TAP$6z!hFf9E2`{rQ6Hba>JI^& -zMW}3|2srubLvA39Ck>hVX1UQZ64TY-=chRG;f%7b{y-5_A?M@I0efzs+<@`epSbcI -z?!3UxGOQZO>n)wKf_+>wl=eeam?8Ea$r5}ua2ZR@RQg$o4W -zY6Dp$*|~)nXi-wj2!1N=3StZaEmBhHAv^f+{n(ioO1@u1lK7kyGr{X-a$byO62u -z{KxbfQoJ3`?R-NTNU7=(TZy3Bd3@}%yD(I2xs3~ISn2thlO2*34)B}ZvTw}O8KB`tNlvgVDTCp}jMxA4IwR-$6V~RiOt2LGx}r}BCEw|qaFWOmb13-``W&@qjp -z=B-q8sF^l8lPw4BjO@GOR+s|{MJt@ho~Akb6q?br5?@3vv38Q3x -z>N0lfpooN(F-X}5`a)zY`qQJ_mUZd}#qXRkRby5scGb*VR&J6Eq;h@lUL<8s&0%@Z -zoud&~NjBJwmW*9u -z)I&s>-HWaz!pn$KoHDIFwVqr(kS6kE#-LyWcjdyN!X$1sOPr`1iCL&|`;ZqyfcnZg -zAS(ObC4@`G_J1^8Wmr^Q7nP9iPU%LZyQLZWMMAn$y1PR{Lb_X!MvxZi?(S}+8~H9X -ze*buenRCuPvCrOnt+ns|?H&HIo#a|nfUT+LCJ;+h?+q-_F^rsEHq*vC3v61BMQ+#Sl5ni5hg%VU%clw`D; -zxs1jkS8pybZ!68j2_si0zA;1XO_NTX!<=-rmIM=y-*r=C*PvWZ`ykQkUDiZ7eMzz6 -z>(|Vu{^?sp@B%tt&JWV$L!Yf^l&AX>GZu9E(B%0!ljkD79199^e=w0CEX1j_6ZVqR -z1K%NNN_EtDB-|tG`8R+edWtVZT#J7>aG7 -z1ge8?foi1dI6@m~%75-Se~7x?gG_ROcy8eMg&zah!sK%JO|*iouY)tDamy4=R72yf -zR5y-f;7rUqtB~#&kTa%n(4q^<3JJd>3Q|haZE9Z~Ya2oF?H*Ix3 -zEI9`3-ZHH3+*;9Sx2Y?A+JEz}7 -znojm4PK*=9QvW3Lg5SFUP6DFZI;m9p{^zXvSS)177g@SE%y6`bL&d}{#`vsIGV_%$ -z`)#KSid1gl%c+QiH>P8|p&aI~Ex=IpS#@#wlkFACI!M`C;AeeKUzQWF< -zv`fAoXEPNDWhRY#?917qT7_@|HoD>j%wCu4!ok|90NKG<`BHPMy~6IV%`;?~khp3? -zurWL0b;Db<_lQy%`N?GvTAV^Lp8Wp&U4`0UCb}PZ;MIfFom%MWck1V-S`^{pIi|e$ -zW$s)402=~u-6d4npPly$GWVS{>O=3B6mC3T+yo%>HuvEZ|E!2e$A}CUKXf~y6N+VM -zAH9l$(gOUCzYl@fN~1DuEdJBI##c^ -z1@cdmCzY|nJ^$N0dHW#RXt$Up2-;4R(}Cpk)<8)H`>setZS(G+aa|uztDT1IsSplU -zchlX>flcTz5EC!q$$RGIQ{b|46lHaBzZb_5!q_zk0Wd~8@Uq8BjQeGR!EYeFXq4NC -zS{$}p-*K*+k3I_&&-K!0Cih2P -zo{)o3*wSISt6$~cu0k54f+=xQp&kZd1@sNO->L{kpFF@dZ>0I;PPu9cZDa0Jqm~ID -z2ytz~2;T$E0#CXDYAklJ-`eQXs=WmLmzReyEpR|v?i`;wOoAe6E4SbBkKiXQ2kmv> -zsJ+9Xa=AuUxO&g;=L|q8`B2pf&j>L~Y8CRucslP)7`r?k#r^6! -zrm+Y+w_hx2AyizUGcLfmY0YiEN%n0FDNd##jd_?tTo17#o-} -zzV9^P(vwYV)ubCHccoN;&VX=GN58$E4aECBHwr1Ub8n~nVugERP3_GGI0^clG`Lvd -ztfKZTAiD`D+e%8u&D5jGG`=n5>bP(R%Qv{xwausDc1+o(REDTRo=AbgfCj2?Z#I&| -z-bCLfd;X_K`Q~3n*WhPO7O>A!Fyhr5P^nt$MACAxXUyRXp(`lKpTS%_SgNk?qks80-tEv= -zdS~Sm^z55Khye7W`$@X{Io(5?yc4=`3tuL<2D-X87Il{0s~rln*p -za@8Q2#-l5PhCTPZDihMx^8qD4fMJ -zL9B6ex+zkFtfES&nvw_Y=hG{Qv*?j`EO3-+dgFXoTj!N^lz&$JTjdD~;u1T5v4f#C -zz);%6MXL1GIa~apW0+UNbZA!Ub!qfZEtn@bo)>lOt0Oty>&Ufr+%Kqg1wi&d@B^*e -z%0qX$G3^OG)$cQPrStJ0SDxV3dTwkv2j)+t95IaP5!|02V#N*c#kej5Bx#pmp(Jn) -zB>g5z^);#wX5HrQ6~>O7?@TsI8`cel=d%ER(L%IJ_1#`;RaUgdQTKa&`mD{^veV<1 -z=CqS6$gs~P1`(CgJr24;l`8x06-Q^PLI$a?$CZ@8Pu#UW%|YO`bh;|S;~kH+C?X7@ -z8?wIZ@&yKy?vL;Q%&U&L?t1i6H*k9Al_hSwKFO{GY)bp9$VrscZi@!U}r@EvG -zu)@_%_s3I;bs=c{P?rfK{q##(K<+7)N7NkgzwKdpv0x)16>UonT-3at!LK)$VWU&g -z8r+kMEi}q58Q%;{1U?&9pgPBi{#X%Yq4m7bZ06rxQ9h#O-pCevO`2pd{PTR8aTFuIt5VoA#^2Rd=}+1>j>F+IRkG9_gv&naR&9>H$c?RzM^t4G$}HW6OW2Fys&c -zZ*G4QWl8qq9N~#oI{gFmG-DH7U5tPlqiKE!S$aU=QZBBle3+fZM4G?j?9DK$GF^a` -zA}txxBS;33ecp_pzyFj(0iZCiC-5qG=MAEcDMG7zT=bn1?n(8fYilz(4t#kl5_}|1 -zO!57;jbZX^N4 -zNu^K<=v6ukv;o8g;DMVn;!8BwR12So4$DYNq3VM;^vnB(iHwaH;A5{0cgg|-+`v2% -zN|&|y7!TU{#hmjV&ULr)1h5$m7W+&Eg#Hc`pI?9Dw|=UHB!o(hP=1KZpYwWs`j0o2 -zM3ELA9=0;nK19}1P4xTSk%KQV8ep6wBp5A3J#{J}Ki+g>6Ra=76Z1Orth4~&I-r#t -zMuU+)Nt?Y-sr;!D$6GsU+h}C$MU=ylBuw1z=bi_Eg8;X`BTl{{Xt3L=AJ?#EAXaw2 -zT%XSoKr4X@bhNS!);5e|wbR&X9tgDoepie_=UjGSA?L1QF5El*7n9q@;~i2AEkV@04f(q!F-33|wwU -zftVj(EmnOOPhtsRVZKt*@Mcs?qQAnBd^QNt2Cs)sUttoh4DZJ(;cN1WE&nR;!gY}p -z{^`Fkag?>TpBvxy<|>Xx|4C`KJB!GtDTBx$kc?;4`2roRoam=jx -z_6v0&6RvBztQZc(hW0RIk4{LhEWm*l2}Xd+c2eDPId -z-^vN&+uLKTzhWc7kx{6GG0JGJEn1MBdHZ`-GUJN-U0LRzZ@~neU#r<%5}6KOdmgX^ -z0AnfTA}_HNArOnCBbQD6*0r -zU>sRUbDQ}NEd6iiKKl$8g`-Oz1G*{jMnGVpy?+yAjUsR1?1;q-$Y%CUHuf!@>Nkra -zcLe2iBg`!E7sXdUf-(7LkGPDgWv^2nu|Fa$Ea|WcIClDXn~1!y$$`lL2taprLJs9O -zwY=gFeC3|$*%t08I-t#Ai0F7cBjd_6pV4V5cv-C(BC@OMi}cM5J$A8;&)PD7>s^a~ -z7H1d!f;vmV1ftgta>g<{3(DHrRWtlB9-;2UCMCOg0lk6EKZz(l#oMzZViJGMer_5# -zqu}|_42~!rcn=4MY$CBzWrZI@dvJd9pk7lUC#*DaN{c`$1a#D{a8w7&TPP3?-u0%OE*gXzt3Vq>yw?I(KE1v#^6_F`KKk -zb>L$DkV$}K{u -zoX>)|rl(q{x}^11I)DArBZeQmuX}jjuoEpR_LJgX`A(5pYj34`r@*e-+(J;&h$TY8 -zMkd0$HU+UoAVQ|g!h#6Gb8)S-{;rNxS0c=~#Fl;QHHX=D)x&Vg#DKHo@TyTGa`$>6 -zv;d|c71wjfHL-duE8_L4sQ{!)8tbJ2{1MqP=M4nXl??=+H+29i3K*V&QoBN3B_&ze -zK@?Ru-Rqq}I{vZ7oBulpu}nD7u})KDr1k|DYb5ol^PR&YwmLW@zQpb!{Gi3{j+-$d -zf=Vpp46yTz(`fw}2D)YCHY0r(xl*Yj{JrQ9D0>qGd8~eF0e;8p0FpTVdqpm{3nxJ0 -zc)&%z2UVz%aToN(&oJ2{tgDNNxDDJ?ws#`8nq}Yn^7UB>>55|8uTcWo1Hq5c!&_iy -zZl(SV8%L9B&nODNB)*SqlM(iLJ=%8F~pO};AW9WTY`EnEp_gZ_*bg+mm@ -zO=D(;VRAN-&iiwm(v2!{HQ#Gb*Wr`Vg0Wy0h|~Kap2+9^Cuh+kuT|;>sKs}e04FK_Fe+S)Pq}(oR*~8HRxuim{ec_sr1ZpOfEfnc(~2T!Iie*KZ4>FLkZY(zMF( -zeq?h=R`^~3H5^`xA0?XYZGux`>E;u5=nFhP?r*TFJE*%_yh4|$P;ushI!x~HhC&@5 -zzLRtPd$!|$!LMO9&C_OqZ%+El6ckVhrmvkvW@Bba>Kb6&hNZaKVKd||R_ls<%mq3J -zvefTaCe1fUR97@<69?b^5u^b=1)zZMSLzdq0<+sV -z&Xi9a*=vC`cV0)2>@8q|fV=u=z*rY)H5j2p{>`pS5tCIA5A>U3KRlE=Zh)XG-)<@F -zbphG=aPyyR(Fc&BmZH(~YYhE){9-f~&A;4>C4EBYpF^(}kE+aa=}_Z%uYFvKy4ws{ -z@f7F5YtJv@vE_#b4A3EBy7RDUL9R}QzJeGG2rK7q7sqY1*B;2=j6lK50+$1hvV -z|EU+89f6GHCBQhW -zpT5-ZEhtKwrui3$WHgfc>2;%KcQvZuR9%CQDa+knhgoEj>VotlNUn#jBNUQ`8Ik4Q -zWhHQ(nvGuw(}Ha`*5J+nRb?$m7Fe#X1@F};sbEfQTUSS7ZzoHe -zih~;s&t&*r7sY&kaZdSXUsP_-pFU6IXywKdQZ_`iaaoG5!R0CK{RNF4DrqHmLIp9c -zZ*#|cPp{c_$94naW^$K4S3e&JeR#wClOB*sfr_!;KV=*f#45IIg24I!Qz>5G#3;b2 -zxlCw`7Ne~)u)cLIzx)Mko-}aEhDr7$L)kBd89o%fs2|->_qck8;wxd@c1^VR5&CJm -z-&qHA(QQPe8@c3?>-v?G?DKvnwl1}@I-CSF(Qh8^-PoPZx<5i?QgNl9|0@@!Ii85) -zVeM^gP0a^*EWC;{{9@zJw?aHtWYuY+Ua; -z;OfFjR!mK8(Y{uv0)P-<>^6YLz9TlU$SRXlnt=F${sT^CG!DMg4sa{1TajSk78Z9= -z{CO>1a=6?p_}C$z)6Sn7>Cj83ov}qRw`L+bROnB@M0_F_7^VU}?S8SQXti#`oyE1! -z?fSOP!r{l6l76Qd5iKweSD=vCP`WhyN#c6*FzmL5{RsY(eBls+hZD0-KUtvf2yOn6 -zKaX6U#7%rp1WILjIh*1g?&A}L#`_4f#8)W)swVIv2PN|nK^rv(sqOcXf~~@r#P2Z8 -z>@*ugE2k~z#^JHRyRPet$ww3t!Z~V}o5VBzB}6c-y4Ta5`UB%0U{iy7X>Nm& -zYseF~wd5f45lv%#aWP}z)-MA?jrVbP}&$ucia_&FO&Mt4p*2}nJ=}kS^+G_zDWnSs|{!g@A^_DR#mi0B7 -zLIv2QWgR|ytPM|Pv_s>c^`h*+jchd4bm*`?x|`ZKuO@FLAF98QORPmIy5f{eu+O@ -zFoOW@HGddrf6&GzJXkKdc-Jf5N;gBr;!5IWD?*I?dc+82y8_ -zmi`7JuUt$kSt5?#35Fdceuy8{-Jj^Sar#IhD%V* -zyx{~t0DbB)jdDDhj`I{%?m=*_A!Y>+a5Ph?RMcW|1q?G9XgyH$(mx@rwnL*9H -zu|htpPe!?rUa^G-621l7?Uh*?8Vipk`&WxJvx*Xli|f$ZzDImb!xr -ztx+nLbq;yd!74^$jGD+uzXMa7{~cxeWLb8VQ28N^R~pzN=q!L*gR{YT>T3)P^g*w-p~vB?~1?~fUXfJu?CpAkk29bXN<7@ -z8gZo^(HF~wB{E_Ep}P45D}s~#=hrxRF*tHh8L~Za1hE+=0J04P>9t$QYyP6J1)b`> -zTgkM1oha|f|>tEr5Wg})=7~cuv1^NuM`Ms&j1P^wsqL!PlpZ?j1 -z4lX_SMnaZ=6^ghtC7$8;{XLvw%}zuDWZ)gB?Qa*cXPV9q+jP-+XzCg2q7IF`h)nYi -zojd<&zQ@z?qnckw_Vzi1;<8g}5ES*9y}sd@A8{+{14HZ^Yp%?BdmE8I2vzdRM)UI#`NQ-p`8~y!u -zU-9JV1)j~0?k#238n|c@d|ga79(1~c`nW(F-#(VcOh}GB3yzqV!*Zv!=KC(w-V^Ai -zCJUG>z+I%p{7tcwQ?JwF(Lh-T#7z*1Fnk(a*5-;1ixQ_^VXbemru~xy0D%HAj_Ly| -z_ts~nSRjZvbHh+r_Da3Td&X^8v8?8fyxK(GWt`1vj -z=M6nt6AM;oJ27xP0}l!mDwEubk(F3du?)GME1^w>RTqCMk$MuW9XZtr^)T6`j&Tx2QN_}rxtc0#ZFjN@DIoSpIE5eY9!icYF0Gud`lO^`YK -zKkC!fw>m*{C~}6+eM6>Ss+lm2P708cIw2T+kxZF#lYi~Xrd8t@_tZ`n7mKX+Wy}QQM;>!*`EB3Qg -zJG;^B?CJ84gFlCjZthW04x2~gI5>R20^@uk4%OVDzLcd&vUJU$C&J!K*lTxT2tgGP -zXb4zvQHJzPL<`FH98N%5&w%9qpH4pBCO!KbzxkET13z=bj82g$pnnJO!!J;05%EUi -z#*LY??g(G9>Ichz?UHsvq{%jFoYyuv+B-da_V$z`Q6SZ@QT}vKgtt-BT(%V$@=ngA -z7_-euA0V>qM@^9ZR*JGZS#744yD3N;6t?l})2p#N;D!J+(sD2xjOzJy94qfAQq|&N -zjGm&6I)IOXbX9N%y59I2^+iWWXpfXEPiz|F{8tz+{=M<4#|uylgfD1k_W_~UxX$+M4s0%(A9S%R -zMo1eM1tpywb(YcK#SrVt3%vyAj6gvmxLU|4GaGm7}cvis|*Fbo41G2`jDt-%a$u)t!!K8^7x -z_*iJZ!grnw&EQWNZmH;<&Ttz|Vh{qc^*zvsT4spYL4-dnLG?5|v7h_RL;a*Ov_9SC -z^4f#(z-sw1@ia!LTV1LsE+-w1uB -z`1&-_gAS@Z5_1piTRS^}Dgbl`PA1y)T5j`lY?&r%+aWDn-&+Cuos*>O7qG+%72$!c -z*a9E{+lH6aKszA7{*{VOLogaU*07eZSPA7ID+d}O+AXRpV1l#lyzcVk -z-V%zQrJHPy6UC*&UcMRfC#;ICS@}HeHd9bVHIIEq{}zhY7+!(Be%&O*;G%Kq+?Hlc -z?rZ%l4Z-~8&~Zd%R(Ec0*xZlC$4>yWrr|0xVTjsRI!&wtSN0|tx6-%wRIA%UnB%bl -zsBPmwOWe6eI{*q~Ddsh1T@@7-zsWl8e3lAvxH$ph457)C`1krrk-JWPt}!(++}yuz -zGjZ=vXq3DAIddX@1SzjbaqkW{{Zi~7RW6?4dYjeIoKVvAnqMY|F`Xd}3msaV@GE}O -zn8a6UIO27ObD(lWqOcn>UII^lIuK|9B`%FQUZcLM`*wAVwYU=XEz`EIk5o5y`H@G- -zIZ>30J3;Bpb5nyX8H4X}Azy){a*)aGrUm( -zvAebae`%!_wltdKt21S!$2lXfo44>`?-7|PlmLu;_!0{5A*v4lp-bS*!`pzra^o&_ -z{i8Y+kysSyBa|O7AM*7i-8&ZOeT@wp1o#p -zuyJjzZAiO7UC18;FW3J(yw8wM7ie^Bvn5G)edUfUTO0&fz#DPlYyDXG0Nj7k-|cR3 -z-qNmJ|8CGl=(3cEh7mS4f=XXT-yg`8P6}!_r7HRdwvn`W6eifJj5S4Z29?6Awp4{qZlC -z>-HPg=b6G6X*5v6u3OEh+k?8oh}pUBH`ib9PJOUmXt{1 -zPXDErC}3@ozbMFH>)?r9q~u&hPQ5EO_-tbHDc8=-WEHjx&?c)BVZ_I>r1HL-w|`Tc -z?J=aa`A1LU$LjAVN2cp~uBRyt1dJ~YJ1@7MIZ8^|+*Je=U>Z;p@N+nCv|&P8%BIyEo65?yrg -zIV)YP$a%DS#8Nw@Tk`B{uOCzR$KKeu0E*{baus59{$;eijV-kU<_38F&}D@*ZbEWl -z{b*YuH4||1U1exHNTPe!Cov0aKm4|U -z5AEm}@KN5O=I&i} -zcR|bWKJajy=fJUEFRrlZ{;Rd9z=BvbvsOipPR3-V`~C?-v8=K8`ZB#6aBmf1#F=R^ -z;RXpC`;lyQ^5`hkVZ;Q|@_3ft;sYQd;QRvhx8~HMST?N`H7Kkvzm$qSmze*hS97UX -z7tuA_X9f#rgJmdnZs2!?sct4jh~_x9MUt!`rT>VOxk61BgfVxy{n;}RX>D`hg$ -zfpXtqIy$f@iK(_Ve+jQNlbOGY2*tYzH|;?Du$;4lF#oz2s -zv{6K1wyP34mAZcq*RL|y{4-7wz7_AuKPPHuo0U9rM1 -zL2c!CAV3~W&WdOCKvo9e7_Xy+(8K)q>?|BL9f?hB4n?|uEt-sAmiK?K$l~~H2Gg2U -zXTNAKi=hmw8e`9*<`j|qzpUY0x4(VFG&7$y|8WwxW8bn -zE;{(a%!FlK-23KZ!~~B$*|@-G6Oh>m*r1ej+K`6XLf3q6CRQdvJDEovT4K9zDJ}$a -zlEy(*>&ibTlbD_(of4z?IZb+fo9BgF(Ew8k1Q`h%AQtIlSB<&TATrx+?Q8><_Nsi( -zT#?9+KuwsRsC>fmS}Ku -z5+^9vDpLD%e7`*|jU@0%^j!MLkojn=M_Bqz#or|%8j_LD-2G#Q&&`x6?d~ysx_Cl< -zNAgzDqx+->M(-&@p7nPrJZ^Nsl%F01LoA_{*D9ukbzCDdZhMnyLf%zx=SOIx2^rfV -zC3}D50I}169JbSE?5sjiOWw>;9knn~Fk2^RH8l)VM(mHQDK( -zF_Fx`kb#)=z1!f#7kM4Y&6uos-Fm7%=aRKLgjlC#J2;02%f;d9ckVukpG`>pT7Vt<*Imy?C1@a7zA_|Wb -z%vD*wkGXEJlB4pk_q%Jdw{}OV+V(3A#>%J)}KH1-szyHrag?9|K+AS*9 -zT)x;4X_n#^p0kIRxP9gP8a-gP3q9!43lB97;&!Z3f{bSG3rCO+B8IlnN7xNvk -zO3M$Z{rSxh%zx#AgqYUw!V&rkCjlq-RQ+>iveXTQ*&c61Yi+#0JGcyv>($m8K13$9 -z)k4=qKztC(E%bPw`S7QEF2UuDgoXogSRnFpN1w -z)pH=`cX_qK+ok8dXn7@jX6l)|WL;bH# -zmYLJUvgW2cYUE;u+%lp4<1Y}aR+_JpQrOkg*)$+J2YX+rSX@B$?CRV+4s6|)SngT{ -zr$n9D%B+qa+k^)c@CFaIoI`>-j@l_u+gQVLW$AjOLyzd%SSQR}L=O5v+4Qq|(Dzb} -zm-1hA0D2UWYeuthhrFTNP&Vg?p3>}idRL1+4j-pC|$0V;YimJ}^b3XafsDH`a>EidKfp9effWz0*v5=1H7ca_1hpo|y -zDi{2X+Sw;p9$_oaa|tco)~xuy>J_{kyds&F?dff7AK4s6m%J|N<1fx~QY`={K0z{C -z9zETXk$aMG3{iBMYfKAz+DepjqQcH{wlmJ!f!(&Z1wC)>t^QMDIETIuFNkjL>g0a9 -z9jF@h4VzRZ0^Kr|O7iT@v?o$O4*3KOP5R&g_jzh&hQ|<(A*m#p&zVs~W -zsN~z@@X(Ql%l;KRh+|UFLYn%KPV)r~247{=Lzlnl8i4^W!=nFWC%TpzIU?Gnp!WBLX>F -z3Z&&NQ8{KA*~Or%oB4E}_3vTBoLp6@L;o}gDhG!^ -z*&=&3Hmd9_EIYqrFGuiUETOQHy+}(8RItk;z91o;yq;R%wAZa$e7St~jQq -zTc8YMSZ^c-&VRP6Drz7ik%xu$GnF%Hd}IG{U;P`)RKFh(3JJo~xI_jf9EaGqStG_z -zU3`q~KiH~T((|d@rqci2X9d`IuyqcI7DvT`Y=m^ssEGWSglLaY<;p0B(EB0(c(5Df -z;{785Fp9M19a+C^7f$=LLMiN&K7|jzzF!$j_j`GB1i16+)99kA_D{?pBQH;pyaOl -zj@MCK?zXQ_>r-T8(9XioLvVnR;fAQlM^oJyEMFe@t@2e)wYt)bmc~Lb&*f%{}q5s1yGa{81swCF(Vk-^E&#ReBurDjdPFTJkfMVSKWAc -z@x=j`Ls8(zuL>Rp`Qkw>{z6%K&J&Ef?)yJ>NB6+i2E>7ulQJ#OUv5$aM;_id226ZR -ztdS)93p@L>*){qGe1=9Advhb-*2T(;&Mp!EJ({kRKcMx3DB`+29)9*0UOQ;?zgxOm -zwd^dG@73i_)&y={U@mu~3ozOObjhyT07=@mzR4EaaK+4BZSRYy9;lzaBFsYQrXW4T -zGx{@9R94dX;b+}C59>+VVQm|j3-7S-&iR3?;nhNCAxB5yq!|-u(Hg+Luqz&u+Wn_2 -z>}9`bUpVywuYksm<7^=xP-Sad;%H!c3&U8x*%xi3b-(@Y9^pk}Zy}m-WAjQm{njE( -z)52oumz+EmKKAi_`l$jKnFLtg-1}?Twu_e%!$XUxdq-nmFcH~=68g+iD5*y-V}I-D -z{XZjGDuK{I<)g$Zr$0!-;kZa6nVgSBfv48z)m7T=8V_-8N4Ol-KIzH!m|=SjZ1x~g -zVAqo7vo7y~A1xp1Ok&OMynXopwbrfUX_WeLR6$F6s5xON`cu^M6=%crK!HlvJBaBJ -zOuD~ce&MD8`PkBQp2laRhO4eDv;i_5aiQD2t{>ChXbTXc#fXa>ZL+f*R;P%GD2@|f -zA20B$ -zf&2rTUZgq-WCIl9#{Y@%)s;$C^Bux6!O5$Gp2s#}TG}n?1BBB6Ii#oy+7(R;-VCc{ -zO)ck|EssyR=8ZDeiFdjQsZY#o7}N83oB+5(1ntR?#3&G@?3t$k4PB~a<1vyUJF@hN -ze=mP|e_XRqPnkRw;iXh#UL?vRiW?Lcw2c(_-QZ}469H0BdB1a2nA$bIQy$$Y{9>7bwLc1QC8T#@WR4^vY7VfX -zm*#kHKSPuA-E~c*51Kw9o~89gFb~8Gi4uD}IfAqEPnd^fN|B>BC;P4h4c*JJ+_x?W -zzI9_P@72FHWDIIVDRK_V&6Y({&9OD}GfwsQ`NS`i3SskYh9^x~A;jh=6mGtU!U -zQtQpRe=MGHie*N1ql?9iZ9U-$FkbNgV=?4p$E_FOWk$&=1uF9wNDIkKAe@|qYHbn{#ZKC;4U3twoohx`R4ZFBUz2q{QM~ -zj6=O`^?l=VyLjR(c>!iEAQVL;#MT!@5NT1MexepiJ$MNh0H2nOjP~LOMqxwM;oCKp -z>Y)k_|La6Fwwo8V31BbPa%eSk=ay0ycCD*R7?r(z%tG-{6!r4`u=L;zf0*z)4YLWpq^p*ce>us8ChuAck{X)auDhTan6o8Oz^2zRV?A5 -zAts;Z%#uz#7T6@lHqa&e!RIXHhsS9{Esh6!9}hxGNpCd!aAuVJ^eil^5@J)!BmDYQWmNZnkC9ZM_GJ&x73<;^(T{nwFA6VSa|(B(A#3-?0(Z -zj4WOr86@5VP!WVzKpj^&VHGKCV^;KRCw1L==3=n|<~(fdOfOcg+jSDJNG^CPQ`&N* -zQaWs`h5eI!Z|s+b4HWwfSNryfyDX`0r(4pA-Q7*Z34k-LKVj0^-|nhtg7!_2YSjA@ -z&xV1Ty5RrhyfU))U~b$&JM(-ns>(%UAbd@B3|v`mN{OagpZiC-yR$43b0%vCQNKJ^ -z=?RakKtJUtAbwh@n&mM2Ym`eY?4`h)$SUo?MdZdOO@~h(bZ@f+|_&L>GxYb`uKX$wXoW&W|7uHnWyCB -zc(|?W2L?-5C-I4ZisI|=C2FUB$7!$q%x2`is{0iN1%dwXc4)f{&>XEJt+0^rxJ-s6 -zi!|Z(sl=Ip-O_fcK8|p!d}dfFBNdxI-fkvZ -z;(&6o-% -z@+Ti;r7q2;-~BVW@lYNAg^sXAxQDR&-Um)A*2NOC*lO*;;-)ho2|kEIn^U*zLiBBz -z10_U^Kg@DUbQkI~`AWpxn0te1Nuq+e_WNhJOhF4?2h6WXzW -z=OgN}KSk&?FKM(+N{kvF!27VEx>ngf@~@iv5$T2kj_3*b=}j8_4!;y?)vd&t|1M(a -zV^>y@J2A7bICpI8Wg?`}yaStw2}Ei{?b|C{qvoH`7L24uPkmdd44W#=DD!zh -zjpG*!-W97pdW<-FjoKM6@2QvEa&U1C8;dQOL=PJreK2_qCR7+@$AxHxPm_EQI`TZ& -z`C*J-yG-XUy2w*Q=^;>*t+|)zM^E4m=HSlRDUB3swC7pd8c&jtZf<3cA=MVvQMxf@ -z?=*BzhpE4?3;=Ojq4L;+!8-p&q!nmSy$$NeD=RAH&x;;)6xGhZ@gF0)r)?f_89cx( -z$}CQj;5_Bk6DLg*&%7ovLamX%m6XN}%CY&f6S2M?;$yVgsbT&Efct>Oc3|5M3Hr7d -zmp(rP8uM1LWUKaJE&o1VL{-;;>G|~HVp)osV9K?5;*}XZy9W^QnEfhi;3ms;zj}X! -z&linXxgup5a>qY@1tvOd^!A%<8Xr4iH=Fr(>j{!-|KdUZH2-6za3o+V`%k6rCP3!^ -zE)iF<(&Z6PfC(n75=)o%VZN)rcMJ(ZX{x=bZrw|8d~jhKA_GtK;{kQ_z8A-PA2w8v -z@7PTw`1ATJG_sm}PUzxf)JPo5qZZMKlb7YcqVyydddki|YAGx}JzX`|!`e`%o=Ty~ -zSVln(tFUzQU>PakTWf+)X|VBFunN{Ff>w+gsdHp{7KGDzIfyH$h+qGG40{0pfL9m( -zl9pBajcwahqG+1lag3(OgLZyt5`Y(oN)`hN5qn$cn4bje#9)vbgqCCG#0~r4tzX0A -zV%Les)V8hwulWGNG#zNk1n$L8AA*iy*oilz9`QnJgW|TdgHs$k#$I&&>O>ewKsYVA -z6{-!z-St}-@=iMkq(n5&$3Fy}mS>^mVu`M($Jzt93s=?Mq}n8D>tKQnP-vS?HKEF& -z>%cOO#62zj>w8Z$yf^S|&rUgjavaE5hAGu;Qw3**NYVt55<2*6kQ_{1#y;!-G&V4! -zz~NcKj|?LnJjkV2-Ipi<-3%digbu>)8Hkq)aROl0LpZMZAxW#UyC+ICT&3nkZGPvx -zEsj*WSdi12%&1JSh=Kqnj#tPD4ztezFF3CjG -zX^{%@E;d9f-2A@>hy=C4c4jE0Fu;)$J+A<5d@fRMD0(@e#tt67 -z1rfh-@012~TPh|Z6>VLJ;>r0T?$_Ezk#a~3Mxo*FH8oVuwhZTql*RY!Iy`3bvia%l -zU)YbMjo?87bq_qEds*BsxN$D2JE65XBJIuIRQz18g&Jmw2z?pQ)u>&s-T)YRA#i_VxG4xrtY8-1+2$!*5QfrAPAZ^0ngDh~C}`p{L^NNIT~4wq99GbIxt+bFPX9f8NN6cPHV*Q`*ypQ%W!>t6r3SSZ -z(DWRV#vM5dAF-RzU_}NF-tV6p{Ty0f51Mr|3fOVsx&`augZryllb+iiw%W)HC(4mq -zFCP&HKWarq>wU#>l33Z~k8@ -zgjJ0B{`+~>f>Z}m&$N0qD}JC8*%KWoNdpb1b2V44sT{xrydyCHDj-4Wg&+f*EQCY> -z@33RbEn$9XKIrf}PO;!bg#`@WkY;boob#a5<@$rOgO5WhZnAQajEUXta1A!aJT8i= -zQxMIhj>?e_``x3&I~XI#CVB92_Q#4?#hV;7Y_Pg0g5?XWx@zcS5VIriY>SV^m)E!+D5Lb>Jz@7S3XNevR-Y6QlpYTImciemG}GTXR|-e|2+Q;_ -z);B=sl)k5Wv*lgO+SkGEfHySjWThSW;LZ8KCwKkdwaP$~{Y^&I-$j6;8tmgdaMXXF -z19xK>1JE{r%#3&-8kb{r?DZRw!gKhByQwo47FuXYZhBW}Y#OJtgLR^I?qr}fz=E2_ -zY}m(oJBur9nAud2lY6O(3r8mYI+bAf(8XJ8da=y}-vta0;OD-w%~SnD{FUt;^`;~C -z99eE-OX?FeD4FMxw#QxsV;5XTpbN94x4$cO?N`=4U=WMlr@v!}MtM7X_Pj7BfX=c> -zF@%Y|+xZV6Pm)I@Sei3&+&AkTQLR%>k@uTB2wb#@AFzT#pI{! -zKu{b<25~zSU2{6|@!%Tz5{9>1`FAErqOIuvnV|N=&CQ-wMi%u&B_Qt7cUgIFzQYGt -zkw9BUOSTrPeX^0nZJOdCr;<6|c>u+IHkNx5crc&@jR8J84(iQ*M5yrToX~vNn6zYN -z4>Rv!T)kC&#~h87zk=^k1Dz+s)ej)i02D$jvuh-~>&g-@OY!lO8nBR3g%s9D#=){Esar{d`TF(7p%5R4j5HU*+Q48k(#3$|X~8t| -zN9C!)g_Aflzwb_W$bPsUKW1D2&Av$7fl#-_bF_U(QfTU{*RAzpp+`3! -z3zMxGf$ZA~JRQOrboTA98+Vn1Imh5EZJ>}swZ*)}L&{COI?GFJOrhd8w@59WK`FQ_5bU92wbU12^(q;7z1)jaDQ5CN#@;fZ -zs$hE`7D2ickPf9m>23r?I;A9(Mp}^W4gnFQ8$kr5JEcSEkVZPByZz5T2k*VV_tX2u -zBYU5-XZFmR70*0t4Y`1G^bTQj33;gsGa$K^jF -zYrFeFNzEn{coCPRK$nTL|1rKF;&* -zs7daxM9!^wjF&t_$zIgpkjV#m>b>3gOI`779Nvz7EVKfjk!G;pmM`w4=EebnH^4;c+!DRw -zNt3=DD9)v7esNaN^pI)cO)WKTK8)tFcWA`K;&D@=15gQAZ#JQo?4$Bo$sFp*YPYrv -z$C=Pwo9b#&rnTEF_@-&@7Q(X4CDA6Gc_vxzP&;~9+Ze=4`+n}RPzF;__GXDu3NGl*uR8BuMebS)MX)WO;YSZuC2Rktu -z98Wv)tBgemU+L)omwGs%{=1|rj;#QODtfMSq)F@MQ9;PdT$y$>U&*! -zsOI0yY;cGX@9sY#d?{2=yAZKJ(la6lsdN5E#yhg-}W2`$q#BQ!5bVKyp~P?e!nnl8V)^c_OI -z1h2GL_G}{$%=G{i%CVquckd7B6>6U4dzw~vg%cDR79f9~n*>+UyD&f8;N5u4Sc$IZ -z2&d03R@~Du3m9{!<%w?~d*3tEi -zBb>2r?t=NC9tG1~Tr^5ed;=&?mn6ikM0+BZyNR1rt{j7^@ -zY~d-pVv{BZuw72Lx~k{dLC2{MPW|kN8XdR+?7)$=M=2O -z(5V9;i1yhJXnpc~8?? -zz_9X!_)!Lzaaun-A72tl#^}`TKE=U0PwJ5|`(3>^j!A21(jiw|5T5~v_65JTx<_KJ -zc|=EwIgXl6iP(;?o&XgX1n8cIsCLOlQoODirdAglJ<~@Lj;1d$jD(6gKiZ+AAV9%3 -z#P+1Al%tGS-*fmU+tlap=)KNy;wpmAjQ10qL5UVa@gUc^`R_Zptsa6LmsZk?b^(>0 -z&*@)wQt)Rpy!pLlaWONZ8)yS>(e1d6zbB}hpdG8pPCVZG<=Q;Ii0SD!n4kQLGh^>h -zW#mE#PxWomN@e+YG)E#I;J8f{6q4b>eu0WnaYc+KK{2|I -z(f9LI($AS5{ -zoOnE{jp&Mpvp$@+2_)t=96x`s5INn8M}j2 -zuf_v;FuNEvr>{dDQ$ENg8L~gaRrITPB5pNKyDZKfo-?Z>#g#?U`b1MId;t^GrTHc`NCwQ=C_z; -z8#h#D0aFwUChx8)e$tG~l_4LZxXgA2` -z2O_M5Qxl*|>57Pq6l#{Y`zi+!WjnNFAuIJ|8$W3qaO~7()&f&*hmsJX*O+cz{Wmy!!TpG( -z$#ut3V{g=rkSQsQPl+qXa)j@7QdD?>4huj$fo$Km{(!JdiS1fFV(0MOfqcctTSbXl -z9ScpG2#={WeR1=9)y$`e1F$g)z3+!M{%nq_d&1=|sZXp& -z99>8z;Wcx^g>wj}cOKqj8i-Je{j@Q$K+uG>fUA0YQm=#_{+fz0k9twE!h6k!O><^2 -zI|$BN3ly*|S@Z|(Y9lNO!c0s}8lmc6V2@Ges(ZZ6GAV24fjUp%{D&R3Zl*`RI?RZ%-OIVmfG!VY~Vu#CAs_(I(Vx -zN*4L~c62`D;zyxnE(^X`MU9I*QG8H}wIP~1lTEe&0ry)c+2@`nH~Y*{1UXxY6*+dJ -z{uI7bV)81#Xzr?bR$}GWAelaMZ5`lZFM$=72RN90x|zY#44tsNC?3QuAG>o3m=hCB -ztyFFEnwzJKX1g|A{fM=-hc0ar*c25C#Pmo+?f;gGJ7WjCij3ikR|IT%Kys*(BPZk47 -zw{BeE?i~@*-L1+n-5ZgT`(cnIAUp5bk1sbCAoz1I+|pY0u2^(HzY8gSkq30pA|T{$ -zokt-4RNx7IsZpu(^x&!F(%gXMF6zLr>w>AB!go`dJ5L$fbY-23V9f_phJ9@}@U^ut -zbL2DV<&s?^yGy7_6ssv2*pE!-q>GMl)6216?}`}(%71N^9ww9f<=@A#elnzfZjh)a -z^88B4$mTQh2VKz{*54z%^&s56?oG^M6r!w4(S)5?r&~thL -z?6UAOZfnKaJ3)M3GW+)x#oygSY|nW1Mx|wgUh#&1{?JPCYmic|LBNQV<`Fgr`Xgic -zEdc?^)1f>mmPcgtSk&%u^GWa(iPYoxY&Uer8@udQA{qas<;l}qwVpx=uFX;nph($m -zUDY|-kzWNCAHD@=p4zpZtl%kCXR?r{7kGeTS7jajyzVjwZkDG?o^Mn-lL|RqT3M%} -z_a0DR+|C7u3OaE-Ml+L?)p+bWNhML>H5e6y@1Ts2K3)@hm+zIRmN-B~`ZFmpsZ|IMH)e3a$QH?7)V| -zb51&al23J7%4KX=97Ud~U)a9Ik$#Xhj9zW6KRqZEpCu -zSXlhAc~xZTz@6pe;-S+q>fXiVwY_>>2Sxo`OKP()+I{;xQ8T -zD>50Mn9KWbXpsfl^cv$GR1mu3C%x{aj=`~xUvwk}wcOtXS+|e}Gm(8MeidkP=?)I4 -zReIq?hnHp;ggu%f-5oy`9jW4aedqY_iQM{(lsQxygyt8K)0cN1;PjYP#6{J?2na~a+Uu0-zkPR}H2vOW3{f2UOwEPy -zTk+3j03!#SaiLhQ1rC;@b@;oY_P%4r|7$gf9Wh0SRAo0~OSiHB~|be(#*QXI3Jl|*nH$*vAR0lkWbB` -z=__>ip%1+*N%C+22NZznoM~CJIUX_g_@lR`HWZ3dx3n4NNfhYP(irrF1>fm*`~hbw -z02>!$646LcZLT-;fsiG|Bf{`dSlqw*YLkW(yu7)Xru`-s2{rEntRWQPX*w^9fx>Ua -z*NDBaGXg>NNxrwht3o6#9lz`e#N-ip`;xH2;|n3_+r5xN=gh9gmNvGn?0;iE$x^q) -z_z4ZDC2rMw4!W~aDY6%9h=Fj@%_|(nk9FJf>7QL}4p~$76PxoQAGe>f$vY-n=b#F| -z%Kdf01wTK%t=)gVVF}AC<5sCGPG9_?WR0=i(>&7J6X|On5YrF1@k@qgWSi&7 -zk9!*j-*$ey6>1fD}@cGOO}a{Ni5PUt^T;Vr -zYEvfh9UT}_$vXO@1mUd;b{E^-XO-NG;ke+~kTI35k@xfnl399vx!DS5pUKEP56VFx -z#~c70V279S&2%F}eHoWdPimImf9D9Z6DAsUl}K)Y87GR2J+k&i->)6sYbL2}+m08L -z%V2}v9`$2}8j8C^Lr8!tObqr$qkp~rwxiL|o}V_9e_|K6r6f9*Wog$Gf2-V1Ln;@> -zOc_L?t;N^fj3pz%!WZ})@(_m?%KHsB*2b~_^*9N}$JAn@8o(++OUzb>C1Q1%=GjS#%E3%|#*O09;?7x5TrWm>In&a^> -ztnb^cR;S7}7&MzY{}ss`#JpN1+-#VsceBGyVe;PlX%QdBu)#Vm^V<)X==}Gls(wV+ -zkb@fApN%76@Ay%hZuWsAozUQS;fworHflz{LmZu5Q(Sa)?Bc8nUD*p^Y!lRWyxvdY -zLeqJa}F>daOY7i -zz|_G0)O2atr7_Pra>r@d{f0*e)PW~qs@b|Ip85zaCA=yF5_5U~o6ID6FQzBGUbxL) -zyguN#ngn@u+&~?(oKMLc#IH#5ms`IDT>rlP)hw_h)*Nk)#a5B5&^M?kt?-7Z^2Fh< -zQ75UIQuCKxS6Wu`LeDdJEj^)Izil&PJA3FUDJpa=PYc{{sFO%;!9;ocff=V#%52`+ -zwR~bq-HJrxAIN*Fq83da%T5F;KF0n97&L%Qg`n;Kwl~-l)$GzhJY%(hO>gXc!nf)d -zOA73E+u{q#-^+LuLbc|ueA(`Dp8G2*Q+BX&6?eO>x)u4PNu8aq~V -zX;(xp7P;&@j#G|;H=KddQHb#D7b{_8BG$w#yL*2=!h;kXVNx(xFGz5mk6wF!Fr$fm -z@Vs=3@8n~GB8jvQHZ1$eT_xLb9gA^E>?3xaC!NBWOH*Abw$|V;(<|7vbY^g7SwAuN -zy;`R*-Mh<`52!7sEf_!hMyZJ69#rVK5fj|hmHqou%%{fA0y*?n1F=0i%e?aU^xm3; -zpF{pyGuhMbzw~ZAyl!dabh-^^2OG!SBbMynbSdcQ!%x${DQZY!s7&fj%7NVn;Mi(w -zPqA5vx!qHGbhR~>WPCeDU@D9xLFZ6_YvTXV9+nXaO -zCP^62U;D~-E>wo!c|XPG|5@FRz{X`ik*uZ;I%*v38iIP21!hcQ&}DxW_s6-8_~+w2+esc{;xG{USZGbegWe{o9RW_#1C-N?7!6p_`izWF|`^B=OW -zvkJ!=dK@&6hJlQ#A}4@5FqT;-jP#=N4zI=YA1Irs9a(TTrqJ#t1=LS+h1{ -zLGGZ&Hb)`bB-LhLqdRD>c7sKFY>Yl39&t|$vpAL-Ww9UN{EByIUvfg4m8i?P6uqg< -z{P0ug*gFoRY!*WGu5$g!vFp>z$A|C|7LHxNgc?&V#2V(8CH4c$|KIp=9Aw4DLGV`!p!w3vgpe4VdbuY88D?6tPN=U}J;=Z=RNinmZeJa^DJltH($N2eTJEHKJw0Z`0 -z6dY6jXxfMHM8|$3R)8O;@;v0u;gf;0d8NwVN+S!eCIUsO($5-ZtOd=!*YLIoJr5^2 -zJ8j+-jRHhR;MkcCp8PJNKPB|QVSAcjiG1N~w5^rYh}tS9xbZfk54I{C_YetnQJ(zdEG#xbP7|5ZEs?|h;z`z_ -zS+YHV-d_DfLlkB@!Ew${X+t|`p7!@`6&AaxM04qKn~}7;Uv+@}I-8_l#}folbq_E` -z@dGm^h@mbWXkGVtnM*aLu#dL}%!b=+?sCo-^T=DWv<6Aj`eLN}MrJZSyuEeI=i$Gu -zsB|4fu`!&r=bG(s@9BY!(&4>;D_#cVkWBDzz2y8gR;Y638u(W_bL}ryXq+VbB`JQH -z?rJYWAEoMk)0FMZ@1NlXHTK$J>3sG25p8d5pFe22oiR)PJ*UcKI)f) -z-s#XZnZcg_^djIe!gn@&eZ6Hmonz;5UUI_5c5WI6zOQZCV5GS0m#&cm=xk -z=`s`k$QdwH&@HHyrzfz6Yheu!US&0??uTvbZ>Fd|zsJa+c9cxtt=yUF`IczKfq+9N -z@QkJ84I&d`a84@cC4uGhj^sqVbc6(XKlEH9#zfaX6vc96C21q@voGCt!hsRe51)UL -z?CG~q!13tu`=LLL@JUDNMZe3jr=ff -z_<5>1Nj4QD`Z&+j-|>1<%CuQ6;x2L}>0YQu_6|Ko6r=;Bh-Fu#{4uQC-ZIBIUsr|F -zvPOMme81$aPQNy4p^3u~Ts2VjEtlh*$LJ~vyd5B9`8V~j9aI!X7zNLeGNTS^J!5TZ -zxWiQ~!hRb8+G_$g70X2+7MXAZB_cs<6{PZx -z4n^FKerG){_mZLW@FP3@psIL( -zH6qZ1d0$Q@@Pu&(A_O-+2HIW_wAz3~Bk;6@tnhB*I(2NJgdVGCPj?Kp{XuQ;6sS0{ -zuJCGi{*E2jld@?(+XgBjBq8$1O!xNw>1e2GHh9+wycAMOV@dG?M~NRD+smA!UeNDh -zcSHp0<@5MA4di>R>5HX(*J=!QKVd+iy7V-VqNN^a>M=(L;=VdEr$?rH}Wla~SX~ -z$(TO|ITMJGatzRaZu{4^%Xkd!;ca0w-^{a0_lqT?Qjl)C!QZctvmtik9#hf%ZXAz5 -zKJ2o$R^;#T?KK9UF@c2p>x@y?lQV?#fxBu1H(P}DU~o5$9sd%2) -zv$OeB -zw!d)e;4pwS)!$}P9r_iyZ{>WR``G7v-jgvD_wsl5%)Ui`6#*3~!M$GRKY0AZ)oGEv -zk8oS_{Tf$fP8lY=-np37i9Hm?!;w3XyR&x>290-$|#_`)*czW!SCNt+EVg2xh+ -zpPA?CnkGDW4qwvOp6n^QGmz&4zKXeKZqWRCZCLRfCZ8{${wE4PvU9d|gBBNfADkkQ -zohLZfHzRn3$l%mYc*_V-$U=iShrc9D3^VQ-LG`-8(mCF6Y9qd^UM$YZf2RFFF}MtL -z2h7vqs0PZUw8%!@^2*-T0Tty*^s6Et_joj3$f-O$6!ADB8ZZ3mnq=fSNHxR5qr1oH -z{$p+iBC>%F9)_r+0ELqC<%Dqn&qnX_Lj&jSUMPhR_Crq|w_~GywL@t{e$)q|X;3vd -z@Twy4S3Nlt!Cpp)TPS`TVAE9o2aGn*ZT)&4j_mFc0ozY%VNNZW9GA=^XmY>{RB~e3 -zQ0fZU&T%_l@(&aRrTJ6N-3-)b2!#rF>C`$OBhLH~4!q}$LJ2=BlNWtW38ung(L^wK -zdXBaFvBq$4psW*Ug6LJlQn}lS$G_j%tvl<6HeJEnA(<`ip_-S! -zq(@FvTD~ueCfW$Jr2Cs1*j;62E~D`BEc<5q2I#96s}UT -zyiG&J9~49?K?LazZCS(x9OzR5@uB4@=EH_z)$M(%1|=-fBuYy~zojf!tYB)!d0#1? -zzZtKnaGHZ~2GdrgIgSA|tB1J2HUf=5H&*b+5pDmEj$(?94Uimg1JGp#?`m=U&sRy+ -z``DbNvdI1(w}H)k1CA?YF~oL=HA>!<)D9IAc}UmSa+<&oITf%z>`FqWvOE^Ktz_-Mh*H?o4h7!Q -zgWBn8HccUfFolY}Hx6c>!w@#tkC1?bgI7|mGIR__I{Buk80pjgo6mzO7Xrh9(2%~l -z4KOnG0dLfr{PsGv1#at4E=+`zSh;_GcjdUet92aOPo#%`^}2eg -z8)Om<$ke)6`CW=T%!G-!o6%&UAQ!cmp2jx0l?#Uh`}&HL+Y7Ng3Npz-5C2G9iJ{F2 -z9}9;AyK2Olk|HeF5Vsh0u=9ppvR;jX?G_P -z4!0GdKDS%iKb9UlWjHlcg$XS7J+lhF==amyTkYpwn?uA6NZQQ2kxz&psF@DoTAx{J -zwXfWzkvh8C+@2WblS%&sk}L-AxArSF1mSwOzD^86;j&4l8F*9UGV0R^K1pzc9m|k9 -zIqwXAacaoPXY-D%RP?O`@F5TtfZc|~g|{PNlHB^)s!|G-nQcIBdz}lsBuJjAJ)_%-@#hep4xjgbWq0cvDYD*L~WqD -zmR2ZiEyRivf^&-y_Fn8`NK2O}r>U`nZ;uUo=VHSLg;u`aD{PHJ8^`|^*AWG!n+%{3 -zfZmYNy?RbQPax*Q!prl;M)+=qyYzpS{vR{3&;GBgd7tR9xmO3}cX(wZ?7@ahG9k-$ -zQtOYZxkqjhO2Bnr(h2-BOm7c+<7zEpqCHziiHf>vhqi-?5FP}5NaAHXGmhY=t@AmL -z-YX+zKuex@PJK}MT%M-N~fEBZE|1zQ4; -z7XsO>KYni|GtM50yp$#REUPhJMh_j_Tfs#YaX#I2!q*Qov!{q)GJtJG?W1D`i8@CM -zQ-bi>@w8Mlv2kOuaJOB4Bb9uP!ULV(2>SlhB(r3mgWJ(~banm=Ob1Z(l9zSNw>^M5 -zmPIr;k!)pg7?)yyG@X0dx&>uy=mArh?1;yvFid8HlOoZo$P<>=IUw}<6tMk)0}$jf -zl7#W@-u;OPzFq!eRnrTq@!eRM`S>T)_+|{o2`co9t8gVsW<{qUC?}SBlrlYSN7~57 -z&%FTYdmui(?Fb?QevX>jWb!1=KUkl144&SCPexgG|0>^SB`b!%EYhDPuDef-Ks{i{ -z*@&Rw4rbxrw~eILr1RRlF-Fk}W8%d8IN>&4+qsbw!!Q3cs4#;h(?fkJAm87{kyg0& -zhp{#R^8Su0>RsM*zQ(YU!oPBSZewIZ-SDu>(IU)u2#@j_{2thQSUd;Bb6rG6YWs3A -z7I`g>Lk2zsaW0CwOhjgHb935vL4D+h|4{>wRH!0ynG)W?;yVn3kw<_6%%^wVB74g_oPs)!ppCL?IXNN=)vd{$Lny@nEEt#u1E0m3 -z@0>nF2CXxOPPRnCoOxiSF=?CJwrX|(yjg2EF+Li0iO;g -zY(Q+W{VZ!{v_E4%>iYFY9+b+*dbg2EbC(77opG%P(SH3%5RV{*q -z0w8*i`nXz?@X&p}!~`XLQf|VWEAWk6;C}I*^TnOX=jq&*bjY>zOVyaz>*1V%OEg;Y -z^`$OmsUw`V&BYz=O&U$i+W#rj5janwfutvr#Jm6yHB -z%z&a)mQ7i!J=P;KgL4S4yR8C{E9i&kl`;iO+&i{;!mjKpEWEiyl{~fF&<;=NhxHN2 -zX$DB>RSOY>@*5Y2Sh=0DPX@`ASbfHNNc#7?N`jE6hM8+~l0VuSA5=MsNkJ_Y2`Dv7 -zSz%!Xf7n7Ml;|=wH8Z-P6kHO{(0Wn5V0szb`gkA?7+Vw9dwG8q5Dijj2ej>S&c)_{ -zm5oM=pdDje)u2?Jm6P+tC~D+%NEUHE3PaLvm~#DEBftfcA-E$G4-4{PS7_720fGTc -zgW<2B5`=^aGzrD|zN3vWHxcx^90;H*k=X3&p3!_L6jqMOXM(@@B)gCX@`!O?038Ay -zM{D~bj=VE0pW7h_*6N+P~$&-O0_~xitXSs-uV1_aH{bk?gKor -zKVR`ik>O5gva?`1R?#sK`*d> -zSCi+%yEmHmy6{HNPl=nXC>+oNQ4?-yKenhBfGc&|-L-p5>F-6F@t?9|-&qh;%dBwr -zxa7IqhLiwMZVSF?Lt^>PQC2&RDx+raVb`v2)Ih5e>Rv|I$|K?vAB%c+m#8YP4$3nFD{CL)Z$1QbfeyXsO(9oLUJ=1+C22ZkX&dK)EwA7V -z>Xn#+Om2-I|MI1 -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 -zai?7JH$p|K(}sP~T7Yco9- -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 -zEYn2-G_za`Y?sIajL+qUj6obH;Y{RtnA7f9X& -zagcx%f`go+heS{pGgf`}w>hC%DUh$34`P2vX;_$v#qTF3yzf>Er_=rPb8P1y0@aE; -zNm0R`^61$;RXO$*lY^!W7$Tud -z5i)rs6C&E1$CCQdQ>nAh9+B`6qQ#n5W+kG8b@PJw2s7Al^}Alzd+Ziw$LfY#Zvga3 -zjCDNBl4(g)HBCYcA+Q;r0j!+5BpD3h}31PXM8uPbp3 -z%CowOUF0LYxz5P(2{*_G#380Cmb?I;6MxmIw6u%o@}qC`Xxg)YS?9;Di_tz{JRY>O-(d#NdqleI6YqoE3rh^^AKSm$z0xdFhSeUV$#5B;# -z$GX+X*8nO5Vy9E@c}t@>F{UW;b56V8go;zdQ*e-@B)2^TM9o3{zDfNt`4EHv91Vrk -zHE4Gp`2CWzsiC~Ag-6S)+Ftd-;V`G_SYmTzuzv7sR=WuLuXqM;50>*$_1ksF)ks&B?*c&I{a5SH?PM)?;v_zsg!f_9`D#IAMnsyN0%kv9 -z6bmpU!&@PUA$UTx@`7LTx%C1TiaVp~lwrs#nRo2Z`)S4)EKUESA%sxgk;bvMf%|9G+k}aA-^%P?bvshb&iyai0xbfh -z&`#H!+2@gn^c(SpiuI*9^)3L8X&UhU&|1Q0tI*Xa;F#P>%}7^=49RCd$SvUDB-==F0@r0saE?*S}polKa_oSC*zKni=3azy&R3 -zk(+m1o}rK7xBd=4sAH;R6Ju($z(UuA!Ml)Q5~fWdbG5rCbPN%4{wFxMYlt69PLk># -z>1_7_&w{=>rDrUkXL4zGA+)?j3+so37mI;WrhRlNm)7@l2p{~{6#xjV5qv32`0A(H -zLy5^G%6Rt8{LID$&>ta3PYc~s6=}dFiBjh)Nyf?NX-L}wv{pF~+E#-s++lg02p`Uw -zpW;VU0B!-L&mis3^QEdVw>(veOsK;1Z#y1J8@y`q#PP^a7yvJUxM1Vm2mAK;vT(=) -zd_A&8B8qAU6IidvN;~A8-X4txg4CpcG7sKKCm)ZU3q7imE!qFsjrlh)JjKqjBO}2y -zF<-TPcX?a1@dhVSt_m9b19x>yytAP0~Y;Qjpbf}RH_-bZt#GbU`K -z@r}toF^>DK1&et>VJJXE>b`%@#{^ZR1?c}wD$I!pL`FhM8y=I`y1iH-XY(UZTjWA2 -zZ6x$3+{NrzOy+zmaTH(#3yY!M5-cc;0WV-cSk9dm*!h(Nj_eFy>pYcr=jnW=66AOc -z!7PxjJ|5f<`+uB$bzD_jx9Cw65eX@gE|E||x3zE_xr6Aqi -zAl=>l=GvR{o$ucJ?z``I|JktjTC>I+J;xYxIz05$cvZAA>-IrUu!zFPHN|ef)Ej$_ -zA)u-$cqft+`;ANeO6yxO?^myujiP7p?ixhH>G$94#aS+0uTTt41xt?Ek9}R|mM)N5 -z0R(CWgK0#k15cd5)b)|=&S;#&3tPIz=ftE?VO>a*g!=^npyP)o@FY*fNxz4dA%gRW -zDJ9WuGtkC@zN7?$Fez;Nzm4#aT_z)DrD$Xta|gl7Yj5Xzq3Si}6D7A8Bz35P6#~w& -zuEWKf$h`UTO{`Yi7b?yf`iJz5t1eKC?XgYdxLs#UPiuaJP3Eco(kz;kn{^ -z9C8X_inFBNd)e?NSnXWq9U~L4u$~}+vW)NZO&=ebOCgowwr$|7jAldwpCKSoaOLly -z>Eq(*K9ScmdmB)+im~k1cX;Ei+-;4b5;}4VoN@WbqY>4adXYjV^NSbgkb`vmwg{^0 -zEjc<)2Oh~AwocANOiYkHm$*-7{aT|drRborv!nxv%86>X9u9O7#$Q}$a#GAu<+n8Q -z1eG?i9c4azf9qH~b5DRL3%GXgEM-!jZIAwNJv~I~QMs9C1j2ZJ5P}Z*acsn5`E=DY -z`vkrV{X-Frvb%T3s@=*UjSU>D@kP>}_B^^x -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 -zTpRd$!^)7%;gI;_{(jnZ?xX%Ev -zmQ*x8gQf{77d6xIINzSwB4;{wc^@d)RONbXIfk9gejA&*7zT`P*7 -zXChB`9l1p(fZV`;Tn@~7RWd7P&o!v4Pa~?!AzFf)fxS%OBX9|%g>$KPa2*M2(nJfd$P -z0jcotdN>=8dQfSUo_%PJ1;u5cyf9wU(j8Z{H}V)Q4W@yQ2PqomrA)Lyf#e?8s7zhc -z@m+A)N)9jsI(k#j6{ntqq8Cu`3Z4P|8_Pfgyzb5gd?3bdlzdz0%)taldaBFazuDJc -z;s36{e{76(jOyk3j4xogNXDiX+2WX+5SsE1}xvc>hjuHX%5hU3eMmGm(yFGvI=fZnb6S)pizP&2LJB9ViAfX -zIgp_Iq-$)EBHp7$+Lj}h-y^|yM@+WWJNgIZj(ry=tTn?3BLboG=6+Qjt -z-|{JxG~9}8@7hfUe8_MS^K2pY>a##&JhP$h<)2j#5Vea?1!ieym1|&avS?zg|CGSS@*mo&H5*Y|4?s#q#0(vXhTfgK -z^JL&rHrxUMYGH<~*iPV6ZEK+)c2|w>#MFiX8@hI-tkOH~p&IO3li&ZJ){cbZqqj?R-rhEe^stPF^Bc8ZV9LTwhWV>ly@ -zm^?Lp7XQW5{KPfNQ@|0D)(E8?;wjQPGmZH$p&Y5^H0{cT2&gC~$hP~s?T2)fM=7Ju -z@_H|+;>Ic)VF0$vGc!uwCR#Tlqiu;^(Cw|>Ty -z{px(Ev(LX!{~o@Nz_q!uA+ML28X}~@4GbF@)P@|v$Nb73F~mCj -z_p(Kzlb?|ap?4lV9nNzG%Y_WYZRiXoFZo8{T#RD#25sP(N-^saBDk=WpT`8x*&f=R -z-f3{0;|Bp2uJ%_}4=cJY$@(>e{6xqFz|WFJXdM1BGO^t?oh_V*pmWl_Z`_Qt?)qr% -zOWcwR+A_8(SHxed;!iUhKaOco-XJ*UXsX&;UNV93(g$&<2jJazWE)lR -zE9q9Wd6K<({dQu_Pz3s2&kV^n -z;EQNU307~=->T##+K$);p;rj{#$j*yAt_cK(Jh?U67gDu2C}~1I_O_Qp&CFb^`A-R -zS>NbR$t}P1s+<7+Jdng+kR4ug62#wXJ-+m28&wc{VcE%=DQ -zEoy?W6o0E%U*0dlG#hERL_$!G_z0E6l0z#iy=*JZw}u4xaYIDF7@M-~?@`u;UkCG9 -z55Gjk`Dub_st$k(TcGaHfZF$%(;`8Z4~BwnLwu2mc7W9D20V}XB&69aqLbS_#=IlG -z!7D)Q2=Q%%`A=ue^g^*if6H$T6{LE~{wNV|>H*JJJul3OacpNi%gD1aBMY^GxedJH -ztbVX%$!GDT645UIs5`*(zqUs^M@KE!J*tFoM6jXBG6Zvf=6q^>mx0A?4bqpvInZ1_ -zyp9&&K0U2jD->&^9d0k02ztNPHvAeL11=Nc?5=ACF2`k4)2MFP@}%>TSzcz$c+dQ*}lC1rc65N@4^Ws9B`Mz3Hv4NeCJ@?|&^rIu@Kw -zF#gW*4^%cCajbrutkLiAEFOD>u_`y4ai)sq`FKhMB&xQ5%~(;C)J}Ge-|$iCPAzl& -zvv-K)Lg)+`g}4JnuT+{bv_?Ef%C=f(AgcbmVclEJ|u*WihZhl -zy_Oy0Y`>l2_GC!;6@Ez&0pL6%kEN~_c|Dqbr#wR87rq>I_2hS{D4be`=wcr;ImJ2AW -z32yfcv>4K8qgBl&Z@EF&$OBexhdtU5aO%SaQ0iZnn4yqXX2krrEcroDC>-)8R?bqq -z;TxWa6y=PrqlMSu`j_AU_{T;5L1s}Ft1pZ~;P(?HN4E$MC}0kB?&G?)(bBesn{lt4 -z<@Vk_4Wv8+7T4l`q6YqBAiO_Gni!Xj(4Oe)L -zv_@~)jryKDysx@@*hm>P}IHEO5)rp;9uDF9FqRy?ii;q6D1_;E|3U-CFE<^$j_`mr^PzMZ|Ho56I!3<_+r^$zmHwBclYY>P*e&JKD8 -z*cHE2Y*w^B*G+z_A`<_Cc+)i9a4`D^8ktJYTA4y;`wMvv8s3~4rIcmKW -zkOW~jMt&^JD0=I~Z``(5fy*UFk~RKBZL7RT4w4R!JGY(WUogr7;ge1vo4l>d;BM>vhn1=rqK6-?NDjx-TAHYz6=W3BUq_ -z#+1==z_hP2JoVHwv=%XifnfV{E+U6Jhv&a>!EM|c03Nieh3z&2={erPr}Kk#;5F*b -zpXnnPtW|Z0w656a7{iUeV{ZE(x`x3B`HovAbI15qv7T@5V9W^`V27pY1hG!c8VxJZ -zrMmP+e%*4oB4^J0MZyB$7}EQzTb&oxLvj$ntnHO#5QmSK0L4pf!_6uIp(m$`3BoB^W~UfT9%yEvS|P7@nH6BO*gAzFau -z39y5?#FAsfM>ki_`58#XJ}zU&l;Q#|jWtQuhd6WWo^LA-kP_ci3KSd@)S8jPPm}=~ -z;#@#(Ob@zFOUKl-n5$xW+OnY^SFzfxQKRoho$6fx;n -zoUP`?=>eD1kE%Mukxo4#);Xl#tCe6}*3mw4c_NH_1;Y)G#rymoBJ--iTfYFAYldg1 -zGC{2g`j4S9!094$pkD8E_*xKDMp&AX6_obfV^D8HJS0avgux%)bH8!(NKQToyAf2@ -zr3sh?C3~6RpT(j(p`a`Hr&#K-gv$~=RGZl58FnM+J6arGl$i3^*9~p4J&>iOF4#mN%1JBSe6`&Z{qd^`V)}!e$tG`bCG?LLW;|0C(iPf&^L`n -zUbyQ0Q(DpOnWSI1Mji$90|b)UU@Csbhw+PnMe|`2&e~k(^Mle;DruJccY9hr(3KU7 -z!5CGfX~bDX2Wx2gT`vw*Q!Mw9m-R5lKpo+2dfX6Fuc6j}wV-)Vc2o%_&SdEzOjHS8 -zDxZJhB22B -z(PX=+;BPL!T$OMtP)1C)w=MKG2SlUf$#eaH6b8|cI4J#TGq9xQv3qF&9Z`S@ -z-CVxiByX|rIRoMvhG>a5K6MIE6ij~Qx%sYh10FO0x-YD19%Rl6`)lB`{ve=$Er!m1ZNC$ZZ%Pp@N77+u1E_<&W>?g;|9cm9g}{|Obow+21Qk*S>m?22a9x)$9q2y3d`NH -zb|lXnRd1EJYM!Vx1AG2_zot%n`*QiVf-YU+lSEp=%Ef21IsryOx$a?;J6=j}KS@xT5>Kx63QpUsPzX$9?Z*WStMSkX -z!+)ptseRnVQl4+&Z<5lI28KR$pm6tHihg(*aW!Rm+MgpG%11aOv&CoP=OLy!hEKM% -zxw6xmFA*Hd(Tt|UMt?Jt^FJt)KIy%FhDV!+u!BpZ`E>gK)kWK4wm~IgqPDN^= -zbbgX(=-!`-CA*Q6RdDtGKA0a?*Z!sCFiV7-T1PTB`X8SAfqaAuGFx^2`flGYKGOs- -z(c8@Tq8K<6l}muTa9n@eW-P>WdgQ@uV+aJDPd`j*kc0W2%WUDKyu^i;3%U!~HJ`-W -zoOsP+Ix5Xu=Rl2E&}GtwtgrnI03&D$CVcj%KYu%)vR#H&#GV;p_)vz5^Y&}fE1wrp -zNRS3Qemx>f`I<;57D^fFm$Y(0-OYZu_s!C2$#)NP*InzR;$+Vy8UlCxiWxE4S!exL -zQ%#GNyN{Lm)OgHx=aSm_bOkOd-|E*7%feM8DI`p`qAAbn?X$bJU%8np&mmKXJ#SbsLYr6OxLgsxB?tn3aghT>4YG -z3@4(*b=U)BU-5((_rA|Q;g~)exP&J9EW^8KG;9(nSo&Yh$ftK*>oye}rtL9q-dV&Y -zQ?o}APV17v7v_~R3=lqGjj;0&vAyaFMA&>vcKwfD+ps0L;cgs2OydEO`AQ7 -z*TJ@(xI90)e33V(`uIHfNeVk^Ff*%D>>g9l8iV6l40;Cd`z(!av9_gdIUBD}nruLP -zcGyaP6Yov!88_ME*qUkft-u~j>3PN4zp{ceJ}x#F@6+h{1A8nD`iU&1@mr6HM~M(= -zu;o{Wo!Ko1);XYi1^?;>5J3!s3PbMDoD- -zrPO0O%BO(IfOZ<)x{Olo9=j^vQ!uy3 -z5H-%s2&W{bp#T7g<%*ElKVp)2tCJLF50SDsvJdxtjgErGi+uT3Tn&m)ac;heVa6Zo -zh1O~n>e2h=N^`uqsjo1Fqw?3D08kU$zlVJ0(#^TB8kk%4rOaHrXBy>e4=Q{RLCpTI -zXUe-7(3TL~cZrgn$rm&=&R|FYkHwLH51ZUy@dGFIiWH$uEuKG(o3~06P5dS(YCdLt -zxdV&ZApF(t2i_D$_EBH#NFceHDOiCE)!X$=vR%)q|7RR2_L)Wh!XvTye${QO&pk -z@Ov>ZVQsDP^Q%hBWqf+I51IDPNGE1?*5sG~cNgd7b2Zy-Lc3a}NV*){r%AZ%#yxz0S=m`D77~`w%?D3z_mpq61wNjLwFUHko(uB>8DMFAFM*cmh8O!e>bAN3V -z-c{JW$+qN2V3O~MNo$Xy7MCK|JcA~X;V{nWS-9Q#siz<*5CMYY6v{d_Y}YL*uwtAy -zowm!q8?6zLIRA8`P&s&=jd5#hI};Ka?{tN51z%E~O+h41OK`vB)04s`P535ar&t6} -z)#49DmcVgpH_5d5w4HF=D7}%10m1?l*GsoBNB(NnDpINQOlqwO;`34@u#W)$4soaheQ{c$B-+b+LK6! -z{Hn5213?N_$(3(#h+9#xVe%EH!2jP-5scq>R96w5l=tiqwsw=|u#A%wu`yOwp^Sw( -zH;&+YjB=8(w5b4x_VDw7s+j<2bHNy{B*TRquq7=Y(&1h>t{iu|SWoXQ1Rp3aS3Ib5 -z@B1d|BnMyJ2UtpDNY8tGKw?x#^@68)E~{rXneLgNWKu}BvqUy%d^Qt;tf&W)dmfrR -zR-+jDA%kiVF1DudQTUynP;T71J7(1hcd-H8Gwg{p?GWKK<=_IO%A8@twi$MDm4cO` -zM4guhr;!c|+p~--0BhMN6k9xNsg1Ru*6( -zTPbSjD@>&<^ss!%IAHsUAk(MlriOvBNRxilSC!C-6a!TIR(#dcKejkvh{U5ilUhs?YR;90HW(h<0P#d$r3KOgvB>!vn@WBK2-Yy -z1QH})(UTIQ>Qb`W3y2?!YN3#T?qekB2kawz?)r*9`rr%8Wx_aUm?%vzwoMBOO7%g!tO(i6e@V8YU-)jif5z2P`;1~w~gSZMrI -zHKmch -z(Av~^l-o}UPoW>q#~ee2^)tCoz2<#ih4N*0cy4#f<-K+}l_-=PfR2iK;@SozlNI1L1+ -zyEI$cbg>ZB+B|=KLIfchAgFb|M}1ofC?r51&=qQ7s@alQ$sh}Zc*{B3O?^i-qwI<5 -z8xYSIU1aGyZ(S9LXbafgjYKql`awN+=ga0SqZ4NS4pD-uV^{UbCu~4gJ1pcv%hs_$ -zvIqoUn_|4=<9C^+YVHMn0jZ#6sLqV&;@E*$B2FVpq#?eu?&qYR{PnaS!^Qsf%iar} -zW(Y~bZWQ7Mov4vY7oRn6HNAMRh?tCGihk=i>}%$zeYLRh_Uy#=n7b@;}!IiLs=)xc}qE?7UC-Q%yi8iwoe -z?VilzFTXR2#UY*P;HI%5aJ&AGNpPLVoG5&GA12h%+F3^Mg4ixQFS5snLyxKSTv;V; -zq#napSQ&A2b9@mt6Vl>_zLKQRt@yhR+0I2QVZLZ%qb{2;KOy`s9ERhBE8nf|g^eZI -z7)~ExX;QI}Bibi5F}_T!L`MsrZu}El8>=&YcD~<_f*`UM8bO~QJB3!bvv*`I22Y(; -zuZ##}F66YA*B&{p(!hD=B{_w|ukyu=j?Xw111D{Q64Y$r(PcPr*~gzE#%im90QCGv -z-ZLYX8<8?_GDS)0B>FCfV7O1OOlt-BPflw(5-;KM7ibS6bX}$x5M!kPwQ*XRnshi9 -z_c*Vy=2ZyhHq#Gx`qo3jE0=K5VZ`#bj<5Ctd)-h2PGiF$3X>N$qrii2&s!52WTK{X -zolj;BUuK-)8r$zRipwJbwm%17h8ZjNZp#%knFTVLE)4w8vA>tucM&WF;sW4U?@O2> -zPxSykkGGPkR?TvZOSd-@kVwCyCcx>~RQL(a>n&HmjG1e$G%CL`OjWlc>K -z)N>Su$-A3^!WT!cu5r$IlAE)UCZyhj=RDESF&5|)dO}<`+%1oKBQ7Ia{TGj1e6HEx -z9nm+%FK<#{v9rPfsvYd#_IoQvAHMOkq!*I871;2}&1TL;wUv=g>Ssnn8V;bXk*bb% -zWYs!{(yh4fF7QSB$S+%z>maav$7V3?8s7&O&rv!te5Iy*yWm>f;=1*CU^&a<>B -zdo2OItt3XP`8~T(RRZ`F1ciq=j}A&uOREuDjfao3Q|DM(=Pti00$VLoI?ukW!cs=h -zTxGAdDTWj3MQ#TbWWH6MV}6Rr>Bq`?)TqH>%g&7ZnL;9rCBi9K*-f|ke;7sH%TqAy -zuuc8wQqmZ?^&|xyHCQoj_!e8VuqH0yug(pv&wwiMeH-w|?EopQPhZ`bVHExh&tA&EJT`p#)pVV2*Bt~oR5vtE#*Ozj -zE10TBDD9ALpF|)%fh(BxH3nJQ{Uy^cXUucoa(j&~;Ii+X9?qXmEVPkBI_*fyhO5WH -zp~Q1X4Lvvsyo#38pB(F-8{e%JI5W?^cyx7KU6=bqmLwky7(r+#{txF&_~VF*3Ev7t -zpajUP?E_Q&FkLtzC5)1urd6rZ2YA9=6E3syvL}?0CPN+im$MC>(E%O`)le1 -za3pTDwl!LiE!WcjI?H-A-_L`WH;vPc;1TDoUPJDLb0UVWccN=g$8e_hW7gbAYG2QN -zejne5vY|i-B8&X(LoJKTk?1%zye+yl -zNY@40ef5r9q{-@{jiG6A%?6{u%i2vmEK|*br|^dvk)6X_C2O<;Z;LyM9>hKYGz)Z~ -zLm%_t>A64mn(piwJu**3=o7iZlY4?&dHfS{BpG_O^Mi7w@4a6>fh)3aEkBmI*5G*% -zc?_bny{D{iL#UEgLWlObiJNcv5n9D;r|?=Ug~){;9oeGU`BOGClJ!>6-2u4z5k^Wk -z=b;zCaNpGU8<-hjiVfr^uvNIu%7B!5J~Udb$H7Z~^|>HqMRcPO)u)r;&x|_Wi*QZn -zhGP2rIOT?Z5-Rg8o|>EW;Olmoysv=@d5u}X-R^85w(;5fi7H+brFtZMIX6>`@3AVt@^52%XAqLB^p$|u=2i?#??^zT;$uQytmkc_?`U?#VhqTdCMxlo2&*q{?0=8MRP>DMKk^c4i`3b5b;;pr4D~x%;y_4-9 -z3xri}3E7ANlL}PYDRnP+RKQCnOMk(x6QPxCerSJPK^ggR>*=E>LwVG -z4E8QrMxptMj;3vp4WB016|xC*C{e_uzOhq%w;LCo -zjP91bGUyl{wsqJ3q-cDBQf(CTn_enCGOH@bW~t+hHF8}wP~~hneb-{n!_u`^>Q)Sq -zz1mgQB+d_GKAgZ@C6lI|zW(29SH0T9zdT;mbr}p{t7i^{&Yfv6DwD6V#ai*fn${Lf -zPERK)$-ugXjP}vM5cBk5c7*6iRZ3nTJre9-d;6E)-LIc&xjx(<#6MWte99M+51EaFNTWV$PgK1&iiV+vI=h<|@%Cv$NguD`n+^a-Qk2K_UxF9Oc -z(>KmbD>57Dn#>jrGb(LZv!1r!%+cKZvbbm0r;YbshKRXZoY{>&J(44sUz6hf?-BW` -z>g0pWPiM;k8LjT2#q4YOZ4(&|rzL#T!~n(tg(-)b>W7Ly@b^3WTurnHX$Ep>)PZRi -z2A&LYx)Z&e;p{j~dmT)6K<@=S7bUX_~je_4{=JDsZF -zShTRA!wsOT_ZzDVC!*P(B+jnEMU`JT^ps$J0E00J(N%4P;z#KWrUs&X=U+#uRP0Sb -z{XE0x=`v(DzH}-q7D~VWz2^JC?t#Y8Q?gx~_;1L{SVkPoN*mclu!bQu*25%Zk3SwK -zyU3&phWn#`)OJHOVt`TP*MY3Gk@H*2(O~##()rP@y`%O!HGD-?w@TODY2I_dSPgIq -zg$~+T7Pk^A&PoeXyX3{T#}}RBg*#_t2@nzzqpsh|5P1%e5T?4cFB>oFJj$082ZoT9gBc6r*xv>6wTvM>az0#*zizl#m -z6T@DpqW5!l((6iHrD-3?jl}QYru?Ad)VHSCSC_IMXXm=nHT-^8==QGfpkv>f=FPK} -z=<*s!NVR_vpa5{rP{iOTO -z=|;AYRO^AoZB7Q-d1dGw0REZVVE-S8DL9S;9vLKXwo2M?JxNL08yC*=1mWXC_hY -zHpqA~!ByNJFXzbcUdE^RgGX?u)A6m_<`k?a>j{NPi(0frvMq@f!DkaueGYHzN6&Lm -zEBd<=j~+aKtSdLsJsc9%PB;J!DK~+Ykqg^9*b9loE~44=QT$CGrii@}VDjmI_-tdF -zGWi%8ZYZba|6e~*;J>?K711#I0k#~*Z}m)>9Okng@G<4)38k)_78+g)K84Hd+bp44 -zlu;afk=wgsV7dL9{;Xbg8usYC#F>(qe8)}aSZTLCQYGH28^1z -zNKaB_S?v$O7-v0*G5jCE#}Ft%jFEyE0~68E%@8p?5ybS!G~mm~S-3;$vYe_*Nr -zdMFmb3joVjc|^$ji3xkditxXD#zLUwLM*$P4zVk;h-F&^!gnQ939&2j2#C$$!XZYQ -z2|>&h3@TjvJ)lVz?B=8-qMa_%rW;zPJ{{Qgu3)`WgAlFaJxp@R9 -zl)dVjth-{V#buzCsDW80fM?fOELcZEDLWPH5s!(9cl6GSzM6S1uYGa#4TpV -zjne-l@F}DwU=j>zr7a%_2FmIhQbTT_ -zet`e)U5*NBbSXcazqg^T$qVxpMf4mIS0BGfToK(mO|NWV7L%49vsNoqE1yt$aCrx_ -z1c+<++&#oD;r)Q6F3;9}c?7meIa4=bG9hzja8r*Zt7mEELWY=fhy}hPp_bv3m>`H4 -z-NfpIT{X#`B17QF>MD2kaB8Dcf&a^r$PT-z<*sGFexz}=6CHN`XNU_xG=*n+)gb6C -zq793ShAtS7GTy>2-w@_222E(bOXG~PeXjrstQf1S{Pax49m9`T6+qUpcJQ9`s$fpv -zqy;HN@q*LzR~la!X?|Q@bQMBCJ5en-*v=Wx=^kyKhArI@u6Tb>9!syYHYj=8x+`?q -z@;3f7J=o$rm>_|(;5TRK`afP^CEE=-Ls#p&gZEtSdS`;!l(~uhx?y#)-X%rLVi?sB -zHZh`7p;U*8zXcn(%uMp+niK5w$4AFX5B{t>>>BIJjn%qz#hnt2Ggh&bv(qw9=-|^T -zoolk{Juo#!nc=f8d+OddL2WwmBAV$AXqC>nyyh*WhGD; -z6@~3-%wWD%AEOP2-+GnJlBBw_A5y@3xH#=ALRBv%&JvQkJDO19#(pWxwmIa8zOc6+ -zlK1q~qtc0A%6}!lR1A8&e|C_uz>t0weKNPVO9hfE0$ol^=vTYb6gZhF5+?C0pX2pn -z1npwxe2l^)eyFnaKxJ9tPX@uR>D|TsPW!GfvL$ypIhM|&O7=U#Hn@a>(zg7M=xmy^ -zVk(hSoc5gOn>5Hvgi;DIC~Rq5i5!N?Eoxo%Eetel++rhgQf{VjlJb5&q5A6Xv$*M! -z2Dy*lkqC3S@~~=vXalxW3Lkw9vgixa&r@l@9*^8edTGv8melk^M8z$ldsAsBuXD+< -zLpp^4H8^p@;xW^{w`Y?9d0c7XXQVJGa@>k`iit^n9?m!XV`=g>E}^G41d}E1KqtVn -zTM8aiChkwcNi%1MOufrMg_sBjF=_%ZrAxg8mwwr9uAON`D9wIR5c7##dn3`}8+em| -zS@+K9>A~sn*V!7`>~posd2@XHfa!cu9A(2HWMAI;uB$jQinn+zo)o+-wP&fvD<2m^ -zhk^McY#-)!B(~F!uZZ`;!YfmkWD5NELH{`*n+fn=i#GV}7v72MXhFff;e4SiR37TJ -zJw5jj4cam$8)y2OC%w1uVhi` m$Kh_En_a%f6R)@wAR-!76(S1LNkdNbWL -zGl&vGo(9@Vw3mlLk{e6|s6H_5OOr8=&Uu;7Nd-K-YF;SVMc!z&7$uM`)I#-ad(*33 -zB6yy7?uXE=R*Tnvq+2Ods1*ZOBXdvJBsDLx?Pz(b@~IW2e3XhVYo9n?>>PB8wR@qa -z;||iP=ii^VAsjSmaZ}jeRne)PdHP9_GCus^C^G-Y#jvUcH-x2tIn*SMrC1zRv!h@}bs=`#WBGBOoR+=WAOX4@w!l?0wR|u -zN2UB+5~a8B0BxI>P1iDyXN=}6Y)o5{#xJatk+|ldjCPjsCr{fkBsKp=+sZtgzxAek -z<1b~}X@tg^(eU$}1gm7AQ@V0$T20^&KY~$YWZ4(jbjEqtzH(j#+F+nDr{)fK-*>|)bLRmbZd7p -z1NCw>kQ_#9Urds7JY<~=WK?-vXVQ%;(x*KB4@do<7i``GT-TfvG!CO$g^Uz(10-&_--rF?<+O{+e)G|+>v -zn4{KshaF>SubS~@s0%J#MxYMk4yBUBFzn@?QP5dh6`6))C}oRsVH@?(S7M!)di+mK7BFHP}o^fm~$S`#5!1a9*93M0Vm_5+L1rL}`E^JB8*!y?-SbcdhdQ(f{0J0Tr{e#-0 -z2o2Zjo2?OJkJ#;GE{QXNS9 -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 -z+c0abRlZQf7MyHG{P3N>KtFe(-$9=JMe- -z(?9T&?LJaPc1Z5VfxMHE6Os)DgK+d=JKrgjTFszS;l%=|zv;hz?3b|^>h{|@>|_r< -z|J!z-*W0rlI5RX$d=TOx(zf)BjH&chhAK>%$^NXAFb~Ud8cu!e -zc`4X&4O7hOoO@scAEiJf@s;})JB6Q}y#YI1rDAC7>kk^fzD^NO;E)RLuV|JJW=|3S -zOSRvSVY8Kyt-spVaf4YB -zJS%hk1qumLv7fpXQ}>%bPFrZ_I5+WQzj0<{kLa=r@#T(Ps|#R=F3V^1EE=`m)}Q;p -zP$QS>7OVDeWF)z|JM~-Y|Mqv8)U%np{d(YbsNp4)Oz`pZhfpTBu -z?zIkmlW`%>t_sX)+KILfg$wSDzb8d8pFT=9+(1jT -z_AZ8Dep$|RYa3dy=>nKFgVR=}qt1 -zjDCv9rF@W}XIK~f6*8+yUkuUKy8wwL(OzVVsLJWD4OXjN#etv)G~H^};H}h_di&~_ -z`O#&c6a-_M`stvC3`z2n4ZDDHEk;k8^jmTp^qJ<`I1v7N>7b_>r{WU-(vTYXu1y0 -zg+tXp^_~RY359sJ9RTD;BU}@xGrSE!F@J(gpV=v0yRw{1ka5-GxrKjyB?8n>5{<>oVeyqE%%Q+Dj0JqhF&M%=XaHwk)OB4Ogx|= -z*ZUZNo9^=@AMPg0J&imTfscMf8FSdo?MkxWUb@+v-DKmmq@neUW6ay&?jp~SjYFo_ -zD!=rHZc1Pd71-5L_uIy9ugY3wunz|IMSF>yXGi|ZqNMoRcU|iXw|72Px}C7nMZhq< -zO{r+h)x!xcPn?e~JJ@7LlvU{$VK%IITA|Z7JoWwyscR>SYI|ujKY&+a$RDb8r1fPqQ8m9Chr-ay1 -zb_amQc<6V%hSh`(NjA90PjlyI9X>uBy|w;jdvyv#s~_lY3LhMA-^8FweM_@BQ5Ef( -zu0#Xf7Ja)h+(k-A@zWprYlk-Rj0&6(>;?4$&l2odMawXxO`iFk8msFcquYiQ4vcxK -zJdOW{b)ejXAG_t#EEfp8qjnJ$c4x>Gw0AofG-&p_pKaDW4*|H)yqxE%FSBO*?CLtM -z%*G=W4wD+3rTSLUP^vi~DVr(oZOjF-xgzgScD-DCk!jNFLobKhQNi<-M|x-PCj{PF -zvO+TyqK45^nsJDJKBw1~x&3g}q+Qk9L^$sTV|{gf;q`Zr5gCiI3DPbC%W?b$)?gp%%qYYi`2XbrY*l -zZM2ExPL(7trCO&%m4&y^p|+w!4h^o!7;Z+kPGO*iriJ)GDBUxObB!fxNNxXDINR -zC6{sjVPE;CT9q_{^DfBaJRpD)0;ynCC;m#hAdn-w2M$p+eNxC-DsaDeHDkwLPexC* -z+`hS|v;9N$GOk1157c>oWlx3n@d2`?6x$lYb-tgz-AHmCx;E7$~S1wNqMcUuhH66pLb?= -zlP%XW1;>ZijAo_;N6iDy4Eb+4JM;3xPQiiI15osnpd#EX6vKt(la<;*#Y@kH{^oznESnI5Vhwe -zm(dWogWY{kzu}h=J@y#*wfjyQ*vktn8w6qjvjKrvz_n%bAxmT8HBfSezz!|3{eiro -zR)5+dw#FEmRm>EFW)XW5l5B$bC(EMw8^>>yk0C#7L@)BgYSjLxLifFDg1`^EF^P=) -zu;w)Iz*?8v25dI`R`a~udRNR_iGx?ihIX%V-*W3%?ep%TlL>bG`7)U!!bNASJNmpA -zZ{yj%tunbTj_rZ}sPVD*L!}Ro%v7g{b3YK`w$zR7kEHUZX5x7cgFmVFj>adq8EiO`E>&7EZh7Y$50sjEX+ -z@nDoKS>W{Kox}pJsEd|)^$*7K&3p=)X*?<7(0kt7*}zr1xF49Vwa|_I#FW>LuQjq_ -z9KQ-JwjZ5282Vao)h>a<;ctH?<*dIjaV21LlS1wDG?K?`{@EU$2b}Am)^(eodD>jx -z4|z!}DG!kIR2I8L1lgz@zTdCmUI6*7 -zs}|+WlyG%VIGnn4_($JycY)Rt$W}=fl+Mf_UAxMC@1_kuC(=;t=Oq|Q|Y*vo5Gc#;=9RbM{^i0~t>>kVC&r^~QN>~ye -zwKuZp`5(6rP8FB!`|5h7NV_g1I|Lrn#XBU+IjT<3&hKlpttV{0jvJ)#4QgJFaqUE; -z>a^9n*ZNBqI^o0B=Vf{J??rajyZll-<==ox0clg$H5&4iwzszvr -z-iu;;aqog0Gh#G3<8NQxWd%%h`x=Jy$s{=0R`Yy$)62~soQ97moa49;)$aHkd8fZ^ -zVmqHYcWbPuOn8ksp01d>vsv$R9=a+>@knfFUO)aIDd#&GZiQIp&1gR`dK)@yv)?i) -z=r}%{0TR>DTqruXcy}LA7x4O~s6N_7xi%&@+qz4xZDD*4iEWiJ_dc|wZVCIxL^eK( -zPm2Dt-LtOsK}O!s!42xaooRm8PbXm21HTo?6vh{lX8iCm4{*3z@CfW9O?cEjeKq`H -zpR9i|I|O+t&lV_3rT-XBL#Ju}q&lu&zS7g~xp|4ZE&91{Y&C<-;c54RyOxKK0?yFg -zdv2LNcUS+A?0@$tLzu&J?Yb|LF~`IPOa+}5O(?Y3C2|G}2jA{1;rCFa74bOeS_GJg -zNj?u?CgkPxn_4ZqP`jX^mZBg6CymZuY3R3&wt1`jP92UJr8sze4K3tvj@4e7Z|i9z -zx@IbDAY7B@FXu~^L7JzczCk%k&6Y4WgPmDoylNQ8&o -zpvz=lck5f<;>9uSX|thsJ;GC_GX9^|eycq=(mmF6D{gxZ%zCeBgUyB+=d{A^6?R}i -z!0*FR+1i|99RgH+<^(SSkx=V{Wo1^s!Kg{7Ooy$*Y{BID`^cuKE$LAjFI@aHDfY&j -zYj>4v)qbZL*6~>gqvJo8O2hk_>^ZF~>YoX2OX|nEtFo{(+V~RpH3$yQ!4G*PU>!DrK4FeOZ61 -znyc=X%VE`Jjn9E!8yoqs?czm$@{Hwu&KLMrQz*W572kTTjc?UG!?(1ETgv!WvwF18 -z7rwcWQJL-2y5~E7e5|Kew??mO;mayq#=rJ$r(;wk*WJ>~Q&+`}0wrr_YdMaH6eQ0j -zQ%;^p?EOSp6j{m{$GheDGpcGjjE*WmRscz=5*}wA=qk{o(|`iv1omGsNkozFpew}z>#H@*?czO!cxpMEqxRS -z4pbj%PxO=B{@~m4bSieDpZQR*Y(5AVOE`kV#a7^O -zvC9xH2JPH-DuK}J^{o&0gOg0i5QUquPrOzk+3qK*EXcezs(eB#5qsPifCWsvk;jb< -zdEC5E=0TL%@n{DO(DDwt#vDQ6WoyS@AGdC`sBOo7x3&2C9AD4kYbCyJF?<1Ic<6Ki -z0}DKSBDo(u$pswuO(X$QY#j1{aoJ|`p`jv|oN8h(@^*>VK%SWww6&uS3{mWsD?awPz`zVpf}{n6RjB|dPAN(=nZ-Dpf}_I -zgx;WTMF6V>PD(V2>K7-lt*vdK0j6PoteIV -zFsXRvf&QG>8UUWQ%G!Mwe?7ctY2fFSoMP0QIJ+pU2QdxkVc--*qfR2jk5ag>y4Us{2DlCKd1gGqgVI1ry4XIG?()tq*uC;bY~_!-O`4rW?7BhH@#>4x#eVo|P-fnBDH^!m -z({|a(!@s9;uW{DKN0#*^L7980fgbHW&XoG9y*94}6_g*@C|6rV#LZT}H}%U3jvjLy -zx?AOXWa{-+=1|uD7+Ug+E{JRQF!o5x_mI&pNmjM$ -zoKQRDfq?N3-_;cIRhz57bBB(it>uTW$8wv{^xaL}b&uPwv|NHb=tVcYm?@j8%6K+c -zl>MjU8hx$;*W0 -zFOxC|k&~&~G<3O&Es-2FzBpp!aaEy^H@l!_a#@I%Qg3(ER95;b2g^F1$-@=3=cTu= -z`0J9j3;=RlW%|j8^}agNiW45zHe#@&_Pp5VsV?W8Dw?}O+lA`@I@Z(sV&8_K=O$TF -zl~SP=9MT0HGOpP7*R(8tpLj2sYSq+}T`%2WvQK-key53O)#+0|gfQ7AOWW1=pgk#exWMYr -z{{4A5EeYe`AVW0VCPv(mPvmlJYUfEe=Nt0@iS)Ssa(hvNLY -z$>xh$c?14K`4*GYCiR!pC)wJ2&0CiYM1V14tGdBpGGDjl?UPGstAf_WFSzhT=`BFi -z-HztxTGPlDx4$Ds<$ir(%Z5Bu~@IxX8U!OIq -zTU;cP(TA|jnKyJZi|GqPy*1-(?K3I8ZIdUqN&@!?ye)-MITy5ExqCDmxBQOYIklD+ -z{G#uN#<0njRhc6PhfFtGP`3nJ*qG%n3{BZYbKH|tY4f+WtaPy8H?MbVFN!O=i|>5S -z*GkomwpK~V+%v{Bh;Ojv^9-0XlWaOc5iQxP-0icw+2eltv4U=t&*MiR^Lgu -zCC(M)Z@QQ&*QV~JBhVPl>!dO`s5;mW23v&r#hY>*N!67<)mj>4=|^_*Frw~{3N${; -z%&@rlQrjSfFC=T6Z?y+)iN;4euEHgIPBWICQCT-0N3xH-bMq+r5nVNYw6ELtLFnGh -z<(|W;eoUjx>wyQSLwniaZh?N>V1il;M~HH_q=ahl2(Q^q^@=PS7dkP>v74xPp{U>jozbLN)7~PyfsV@h@Oyq=2JD9WfuKy6?dub`cEU(WXjmv -z!E^P7u7>72Ge?%%TP9YGC+%*yHq3mx{loIi7t^sy!$~5ixAO46TMtLzW-UKVTFUY<*?@5izs;iTgxuD^l`xC*M8K$S>ngRytwmpV4F^FuAo$nw{0-#+F0GsC}5^J~)wO(WO!Pryd|+RoGcvDj0MedJzBGc* -zw5Y*zwckxYI9!`lGicnYTk^oQy6+U5(|483j0ewDU5p{LH^a@_V7od5_SU@I(k5tl -zzA<{+uDcaGjc-#n8TQ`u0DINI>?daC5>$Wg~zoS(5p -z-8*xoXT4!y29J%?`I^?ZotkrjuZn`IR(mMwhD$07uRa7HQL=upOCsR1#a48l$wGBd -zH*U=TvPFK)QunjS@7`m_3wFVZDSZ#H3%(QwCV#FhWx&w5N1|UET04xGDZWO5p<3^EsFz&xA -zY+rV9C6>e5SSBTyN -z9Qyx$U5(rM_gx_f561a_dws18Ca&Sunsbty|A#A(ym0s5bA3~NuG|EKb&PkEAH>30 -z!TFBU6RM#`Fc^UUj$2?rOHMs-grx(WT!ppRBi@Bpm9s(ytRpx(BuxwkEwRkk4X|cm -z6ziLo+buf1hWCGtX;sA*HVSDCFF=-1nE_YXwxXr)5$ur{H0U1G?vY|)Tm5x|hGao!|~7Rr2m7)1-kMHKy;ZY?MJ -zg6LuB3yvM3zIGEc_rG(CI5v(%U>hL<_wl0|5|8gkOv(THEncE8527zZ+|FSu`ON>) -zwF0;Ezi|D`XZhT;X9GIdXH7vW46CgGthUx;wdIM`mIzi`Vc=@ZDhxY@uI%HlRTASO -zB9QPWiVh5loB!LcUAV`8;}ws*YyO%G^c7-z3^C{Pzi=&q -zpl(ycf8+HYZvWqR9Vy^bcpeH)L@Yo)Sb(-;0gA)|6o~~Wl7hr25}!wn#Drm_0+PU$ -zT4+xg#cJ;rA{OrKQPL=zuQqdwk8|F&xsO$YlLP0nyXRW# -z)7NDN85CIT7&p7a3~w%5XD4sgHmf*Rv0=HwqUvNpkEJmtOmBKzyYSU(bBiNHgH6iq -zH}h;at_>V{TpS!ExB7ulg5{s7hQGBAIAnGjsLWDQ;Omx$Y6ZhhDFrq95tXT*;-#o5 -z++H4AR$A7+y3(%^@JYlafLGPD!`)y+Y)x6RW|sj&)u7kipD#{_DNcP^NaJCc*DBkD -ztIutS_Y+L9sJ&_vpuUd2KgW-J%+#z=Lg}cf^U8#q7bkgrkIQ>4%HVe;sA>pGd)rxYr+1lHYkwOiIt_9p=b(uEja;4UTY~1g7QO^tXCmL0KQ& -zkxeQP*-?8%Ywkxd1h(QE_6(8R?a1W;g~S*ynMTl9eSV^7`C1wChtwZ#2jD|fI-OLJ -zFr^dyIS@pYNE9P)sMKNqZ?X_K7DlArcf7k1Wo)|6cXCuLC2_ -zkY0FK6auHZE0tdsXDzctmzW}OlvH}>D;pS4P0)vDX0r2nn#tO&C6n+LtUDWn4aolb -z$f>#!-rZUqc`fMe6#hgp` -zH4bKmTWa_Qhs66G?K9;WoVoaiCo|}Th?X82M)F_-NuQ%F9hIplP^M7|96v;L1zAB* -zYy&Oqt>Cr{bO$PQYKire+pPhzysrmqJXm=O9+Z|M<-3%W)bQ7e3|K(g=j$~~UKN8BK87p> -z229ds8#RTy6p(V|7fh`Yv5{GN&KzoF0cylKNUW5$Ly>1P-+%k7zQ{iWZRU!KV(H)7 -zj(vYbftNw)3d-d~1?h6)#v1jSX6nC5Bu#lpX#BP&aceWR+Qml3=-bO_JDw{0ozD+Pb4KL*$cvp} -zYQgyhVgfiE$`9`&dDz2;ZzG(Is2q{BC~#Vilgi@NqxvE#f(67A?r7D}XI~`KM6y8z -z_pwpLB;TOhXQ=YWJ=k$=$mH0zph43EeLwNfJ>DZhP|29xUCR{a0%tZ=DK}fa=5WxW -zFSs7Aj&3e02%&#uwNvcAdr1erd1O@V98+tv_YRWKBFfQ>Z~+G`zXjKy!nC!zx05Tf -zL!OX?&N@t{!wpF*`0$|m^?FTDS%HIW&01m|=)OW-V6yd{E3vQpBH`0*FBe>|40*$Z -z@5d?@x*g!jrKv&0Y%AwIHU_+RB1tAB3_e{8O?$bsm$P~)^f*0VM3}K)KKWI!4GjwQ -zeZhNZK39{WH$RNy=#g*BM&-E)EpZyI*Yga4BPnRo%KIWRV5PwXJ?2<35F~&ni09?DIS&gEPhSqzJc$c#g>Ml^81>rOeV0CmH*ZlZxjY=uU+yL`7-j=pbc -z=8u)0@pCO?FdB$4Wb55=?zP(Xeqn&sq?7q!&+DJ`QbeZAVLS6SCkfTbQL9AeSeml@ -zsM8%5#xVI>HA~BlfdV -zcEF0!K^5JVO^?@WK9r3raQm5}!1~|;K;JjE~42*Hl2|;({I6-mE+2|&3rd#GZM84PkfpI(gz*E^>ekkoZZ{lJ~R2h#g6T7vBRxku_Fo#A(J@KU8ELQI~qoCL3l-gZ8J#Cqp -zYt>U*8Y5jV3K+-+z9KE~Fecu0>j3 -zw(cMiyf=t~=J}WEBs?Ia&xUuyA6|zKXd>BDznEEJ0Kv78#^b}e>XZ}xW;pdv-aQY{ -zzy+w=dv0i{n&SKalKZ*seMBEoOT9_Ck|?{>YXCNRe)OoD*VMQ>sNpd*JO4=PE4xBU -zcPw%?58U^mBQ{8BTulZ((F+efUh&iIy+AO3DGffn2~WO&^1Y$#5uT3ayUzEU<>UEq -z^`O2jUf}M}tKh-@?ZsyAu6;rgr-~fZF5N*TUrCTV$e#S@dH=&~4g_U!;<2oS$tH?& -zE!XEDsZz^Ly1@YIDv -zu3erA41j-co)?;0Axv|h8KkI*;ZU65Ge@;@uX3#gLf=?9&?xl*Yc=f|-4zJT-L0N*-3>Pitw|aS+B3`_yp-zB>*@RmBqKlkw_~MfIk5 -zon8bD3sC&}!8U#+FJLr8= -zYWQBP#b5G%66+4ig4X;NtQOMJVM?}Rc}Y>v?Awk@WTRabngy9m9eKlQBjS`A0`LC_ -zs!rY6fbbYvE|z_~>hWF5PRUpQ+73j%Nw85|Ivx5WLHoi&_B(tDL2v{K(X!w1kJi9N -zw-|l)t0ePghtzN`r56LrUWguhGY{;)S{P5b`yKv_Y9;Y=eM0~OYQgh!ot&@aSg=(> -zl(ZMgQ^uuVUd#_*ZV&PN?#G+|@v_;C?7Vk~{m&qVXF{GyfzoHT!JR -zSx9#*{23$N%f1O7k5FG6zgl -zsQiNh5>u#QT2Akrys$;W`6kL#q8v>RPd&!aKmY{*n?9pB!Xj)r!#T>iMo#YB`RO9_YL#9>{ -z%Iti*nx+QY1l9p}t^+Hz1_VuNes}p5HQS$x(5{I65Wb7^lDs5d%w45EtO3Ce!y3iXSx|qI -z0E}Ua;}vKoC*hLu#eei8Fl{UkTVzj)1zyfpjJ_opwWEIgf-p9R_3F?`%0hSi9?{xmOZ_M|hl$D?!!L -zRth$17)Re)3#~J1MF!?gVIY85t{bUs1H4$-uL`ZS1Nmy}e_;q>42dZbw{v*o8I{w@cgP-9X-rJuv -zJJEItP6k}zAC86=e$wca%f5w!TG_1yu==JLwy9u1jgw!N@K -z{C9F>kl8LG{iEqcxmx7*`R@IXBiSKL6Zxj>t-%yHYdA#`dcFkKD13zk5JrdB_1CG!)H}mL)K-ltAQ;Q;r6b%7*7j0Z7(@!~CWQcnS-T08 -zoZn3Vn6q{hgutot#pE4hs3oi?aCKVEbqlAmGHi5}6c;9S@+?bS2^lA{sB -zj=P;$sx;rRpfCX906=;*;PG*_MZ&&A^SOu+y0S@PDY2U{n3Bd=sbT^KwSlxMfGN~+ -zo*S2;V`iUOF4isOWb{S}8vxmO6z6C9 -zFe~|rrqxAO0iFkj$9s~d=5qvfnBM;}L`CJU?!cnwg#eM!VqG8CME{i@o`aW)DdTj% -z8Q@{Ou3&*eGL>^_ih4p}5dDTdwiwm@f`~p?1`6r}6b}Jmpo`-kckI=0-sZIcWciWW -zaX*h>^nAMwh)afM;jeKrfX{|;zmjmyvRA{q&lj*IiA;<&cK(B2h+TpkHYW^@Ve4>1 -z$Q#StCWM$vXe6N~P{2fWA@`>ZJ{VmWTZqJmUcw~-^szD*?ebG#CApfE9ij6?XM5^X -z8X5)KILcpm_qNXY1D+;e@>&@)%5Y1#cEXKEwc_XR?+U~iS!1r}VqNmSm3^Q77=7HJ -z3Gf`)pvl -zG5jAvl=2N;gt>-R!gmTpPMhYHliSDyL6aWtB#&w57ffHkDYNv>mIF^3G!HY1fn;TX -z_Q*Biah%Kd^>9#AxP$m)m&>A0LN(X1U=Hu+kY_2b)O{BkG@l?UM`Vr-*j^4)WyIn2 -z@%~6L&|?;14%aNy!0F=r#C@uPUd-WfID@)I_mF}oCaBX900-so8B*Q1$(z^$#jc5D -z5ZPZw#jbqF7$Wez`>}|ezgXo5C5)|N&kxsf=83kLHO%nY^K7r|iOPc`DbU#9xfZ1$ -z?lWg(zWM-^#_ItY&j^Xnz-|LIY!0M6h<-t -zg+bPy6w4#N8?QNxpAm55Iq86Saxg)5!n!Bg0pbB+YE&Ds5kw~1_K6e*GzpmrO~aIl8Kbrh&V;F%EeQb41pn}}G!j2w>2;_dMJ)XTV6|Y# -zerq8B8X{BA8=e~QH*hISSBxV34d~Fq2EMu+*kRtIruj)uyOAd@YvcRYLkZfmHE9Ro -z)HM_y54rxVY$}Jv_;>V*|B{7C#Qk4nbk|s?khi^s -z4^cqz)$gc7ehq=*zS4Z~CufjxJ-nFEWW%P(UK-Wktx~YY96-(k;>PIjP5qq^9gN=i -z7Rho%hr@HZb_d;Q(ErhVCZG_c~jsI#Mu%pAf61T;zdUQoq(w=fG4v8 -zF}5t=4wen>81yJ+$N|9RZ`7Wgds6Nlzf>5#?$yostnQag>o8J-Dzt$b2OK -zrG9%R-)Uw!KaW5`0h?!XM3RkKAdox_q-7otx`R?TU_N^nXwg*oTQXWvqOjH(X8AMB -zXJbFrO8dn9P&yDT`B+6%F>o2Mja~4a`guoHmkv(jT{re9ZrdH^P2Zd4VmpL+p7S8) -zHkjraDg{>*0QY@h*a1gLWcHP6+JMs(Nz}#x@F0N100+w>0Am+M#Oxb{k%&x>r(iQF -zAvSi;3nfQX3H&oV0J##G0~R9J4{Bg;{G%qw5_HpEq742J+>YsAez&dhO-yljVPXk8 -zTrj3TkVEsAv(+|j0CF9?QWu|v7tx@Mu!+3ha^5QPDE2a`dSGfB-9P+sJGkfATT8O} -zxl9lr0)LPN{;8vY9sn96rxh1G0+Ia5jhzAoZrI<298JJ;BiEN6xb;}2*8tJNO7?(q -z1XK@QZx|CZoX_P2ih0F9zAi|D`(N`oM*WE1PLeT4f1)@)V_-VKG@=;;@I60cfXG=h -zMr7g{DaDiL=N;#?FmXu{p`esSglpVO!f<*|_L<*NrCNAAp_!ks$elhQRg_2JyqGZzX{# -z)|yYh@5VO6t>1vafnx{!aT?7h=I)G;n^Xi<`_@T*Kp}x!0rMi*s!+k}>m-^^458mp -zV0{AdjSw2f-H4q@8&R$&Q1vS$ra+cMX6lF*&dhWBbBR+JY7-`FDN+#7CidyU3=%$5 -zv}OT`KjY`(gf)v=!Y;uGR^~KXv(P=f0rwWud&L0B!8`aUg#R4E#gM!1nn*Xo+~9Ai -z2m!sE1gjtM>+pYag-HECQe&UcpH0)kJc=R{-2qS@|M?qeRh$Ga -z7G@57tvO(M=2npl_ymsm&vBiMoaZ{Cn*?;SZ3g -zVHU{ne94PhATS{dPht!NvTVZ3;dyq!b>v}ej|Tm*Lr9h3j?za^T4JyFFr*cbkvEz-{b;9^}}Luo-0X}V~0nEoB%*P^lD$Tt{^JL@UJ{h!VAF3Kiy9^lwHO!UCEBR -zcl&(4kRymBQRFd4Xht~vEvGrM$Y8DOx!x{b*H1U1kiaDc0WUS2OBul3vXUpoVAsJu -zSeQ(GoCGTk;zamN{Swpzz;o8G&w= -zf0UrZk@x}r20_J6u>_oiwG6X&8LKrraM-}zVp;za@L;(5t7V2O3ju(G3u_d;Y~8st^)&#cr=BDxab>oSbszkupo;H -zr!<7jH_%E3(S%SFXh9W%4Tz4vp;v=Vf@9fkyLX8az1Hb@e^>J(&=EqIM6NF|UIgsL -zs1suh+!Jusz+(N$Vz6O0nnRC6GyulMh*_K`&KD!6JEJ -zPX4|9KEpi@h8B@35!i;->OzawA=D01qE5uCU};)uoaIOWZ-UkaG93OC>}Ih_P#vnM -zJCnb4HS!3+iS=x^$9j_>r$Ca!|1pjbp)Dw>6>&YUu>WpnGwjOne~e#Z5XBArIjE%@ -z+b^!zl}N$ayTM2VWA-?vlo02Yfud?n}Ot!PZ#vr9D$Q%yi -zK$Ou~UBy}t#bCOs`)OKV*9Jsnc|ct(?MK)$uZin=q8;(icE>A4`Z)P`*-Ucan+6Dt -zfqbqpu*0=5>v9jdfdF?Smy3DBsmWeJvTGOKAz|A|eHMdBouwW%e?VLWD5g}U@3cO1 -zta%m`wg#mEE(fBBY5Get4laNeOf1O=Oj5Y{wLrDLoO -z8e$MJj5-i8nGDDFm|~qQ+Wn*$JQs#8!1+L66DCGB8$4JvPr={JL-Am^k5`}R(Fmm5 -zfRC9BOe>LmD!3wsl{6&V1TkA5#@AC_8tJdo!5~0?@(nhjFd1e9|6$xKcOcAhK5Ppe -z2=c;z(YYKlJHU0a9sQCvlHV{2qa%_%hyz>cFmi|UUKyb+p>%A230FUSjtu_9bu$;( -zxI`P@D7BBW5n+B6{y32P@9eFJX52XRdj-(wL=yeKY9y$@|5y}s)#C+*U8pgbtShk{ -z=>)fqI3gl-WZAY1!cfF{*pLGo`!Rykp!#9@E}ja6qRE#O|jD4KA?;Ih~aGm4ux -z^S;xH5H$3p;mzJoB=22Hdf02!`04bgRYrNUnBazqP80BM1$&5Sj0-qQM{LC*wueY< -zE8i{O%6<$Nz?6lzY)zISsTa*0?ic8?p;L0$;(LSKR+vM_u+?;tiT2f<5^O*MYU=_)Yo|jD0i!5}ejFV2Vk30=_RlndT}!3F -zb#Da$4454%aI;!c0zR#Hc}5hy^IB2hUg}IIb-eeyt0?6Z{E_qie%*$px$ikQZNABr -zJS!$ief{|lmVaHxMWB1MTqW_AftM?h`Ok9YSTTq& -zISv8@9(#Uo0gpG{M38Hh0Kv`3BLE;8G(g%2e+vsQp9Cpa!6hTn^kQDqopT(xPptMq -zg5P&sA(E>F-pwadz(ECoT0n}ec^d5`_%C5$#dM;!R__z~DCP6Bl#c&w`M5j04ET;+ -zIp7H7CxrqUB%#7D^by3w!(W0vMUE?6;GRAsbQuQIAX)TF9**xNd^iMjf40wPo|_1k -z>hta$nMj1#2D~FG3Gg`tyk~|sZYhiXT1LS1-C8fD4rA<&!j2_z%FClh&MvHAC-(s| -z{`~@t7h`?Uk2Dm&0u%Bt(~133%^2%LxK6e}Fz)Ro_@$f_vC>0+DO?N3ix3@y$8QVk -z{x#&6B5VnLM{rgdx(sX^!SN1!3iiy{;$`l@0%&NrWQgBbh~&kok9ctZ&5y88gs%!-9}~joV$)ZeH5E!Ge5fi$m -zQ$W_7S1nI_P34+YwiMKd5kbZ0mg~wrJmh)bth2=ZMHafbpfAa?K3&3>n82tp6)@QMx -z&C6>E>dcE@q${QAg0lc58p#>VJoGsayn({KwPijwz -zUCsUMm+)2;Ka%g(jK%G_uAI)9srm544c -zjf9V-QRSy^Se&7M@-yf`BY{0>EAp-2%FPrIJ}I2(b@k*U$2BVe(83OOZy0SJ@X0o|j(Hxe1i;^l -z1#SmAH87U;^j~nj6zpaq_ahhhJc<6G1s1P;Yr}wwqCLXZEGG-}O~@fDfCW2Q$`^X4 -zzV;1A2Lp6&Q-ZZg1-FIG|2`R!_HDY;;=>f&#QMD``ZpjpS;|exQpXVf%4s<*?Y|ZneEGCJ_PXs0IU&2 -z?m4u2lh{y!4!d@5ol-YbC7vjMI(GNjQUD>HKz3UVKPrpYEa3!pXLm$|Gdv=4Lv`Ut -ze50PrN@0%^jzf9OBuHv_tqv&M3uj_@iBnw5!A}TmHY~}5P3yB*)lV}(5B{h7?(5LO -z034=r<=Wnyfzh -zCkmLc)21!%`&EBi?VKiBbk~c}&EC~fb;@HUzMle;4SY6K?g@2ueIHvl_8xc<`1z)| -z)Okl0vSgRwxpnBAA$NI5Fn@Qt5da=ORGyY1poH)KSC7;R+&cD1v7vX2JyJwR|9GS@ -z{Qs{Wskg+l7lpu|mKgKpwc%o4xHC7rB!*HI;+h_A4aPKD=qRKcJ2I9`R*K)rPmMZxh8lY(af#0V4b -zAf#IfdKQ-jlLbgJth|rIi7CXL0~T2hE+V2D_NEdg`(f1+1H6WgO#MrB>?6%y(C8$6 -zuH`on*8e$V9JAQaEOMvu -zH;JYVsBaJ+JZ+?bh@tfS>x+;!B2kLn&=!B4O6wTiP^U>gmk;b(0H<~{N -zEIg27CpHp9H#0VtiFB{W!tIJXa!_)%)aNrg`VDhhM6VFhLWh6qzdOgMAgT -z9-yQOgT~jw+W{|B)SQ#|TiQN;>`t0Iu9a0urgO5+Oc5=CW9TJEXgaD6ex?YuD<@;e -zzeBTd45|?64COo6xuh=EJ74oA5Xz#=lbhVLAUG5`qsB));S;VEgJ~p#7x#_@E{YBD~L$XS%>+m1Rh52{YT)ZrOIb#mB6@{{1ieF7^Hn5J6YHj -z1OeDxL62|%${sS{aDJd`P|Tb_7YbFO(50>fiYHeoyJj-|ef`_6I!UvFn8b>lTH8p+ -zC+Z@O)%(Qb_n;Gz*q3u2cZ{4-fbI9QHTQsqw5V?8BLZ8F0SF_aU4U(8rLxg+GosrA -zAC;KyRG18+LHr~{gWG%~Y5R!K8s3vtWI6y{mOlzea_o(0Dq-k0jnDK;Ab}gLW>8vCQlo0sj0uJO2NXY}O96aSW?+)21A($@ngkRupvjmj-ybl-4`k0E1DnkBrv9*fjE}-#C-| -z%|?tR>NlWi{4(t8&Y9eA;q0`CF^EN=vs={N_1_ux{xuW^fM;ZiLcm7YMQ}JN@LIHf -z7Mk{@VLE6o56hQZ%@8j&X;9CxD-&wu -zid)^8B5V!Va(?`5v~%r@l`yq6%)CgbP~9zRBucmQ1{^tz_NxPilT~tF8}&W42-7tx -zELWWA>~q^K)p;0Mz|U~axfEMFPf0`p!b=0Ln>65n8QIyK4WJ^E44{-L89?cffYCx$ -z!+AVh*lB??*=YfA8ePdw3xcDj_&|}#P75|X8rQ=i#$LE72o`$AJI9TYTy>@&=v+W~ -z%(F#+H7JjDW8&*V&r3abFI7ocTRy8n_+lqTUhFSJ=i)W&`4uU7n~?1WFT@sb$m-&| -zQ((SDXcA5WMCD>x=vd1IY>&hPeD>5MNFbdfk~7+PehPZI5)+) -z(TpHCNJ@~|93;iLB1lS5)f^->jIhVDvl<_*uje!dX^D*?)yBlf2FE`gD(y81N#qEBVPMaTO6^CyF@95F`hY`1}T?do`nm+7>4loHn>% -zl35Rxnkwj4=#AqT1rHFa&-t=c?=9yEbrJhmo17|MCF%$YLQgipgDSFlE -z3$2!3J-lwDUVTi!&K##P-x2<)UuW`dd{|#5W%}l&TXE>v%MBZmWXJ2404TSN_(pfP -zlmWT-M`z&pW_+-NR+bcJ)~!0`t3?Ptd(aiEZK+l1ABNV&Z-bhO?Nf8Xd}ps7)D+$I -zM~QBCSl9qDf}Y=#?+PZ>!<;ynlSKLpZ|oa_YF|vwEj*HFB*N2ww%nOvHvC}giGwBv -zgxuCSv!;a#{0m^F*(@IO9AXp>Xx$)#wVG=oNDpCgJpSs)q$FT8PiO}4n9x6@<}$Vh -zF>_^ULMg&*rEqBBt^!|KhTQlqZ_a=-ETAnm(E`CzlT}R(QM7~jcWcT>PTt8$5qtqi -zOIA0%g0cV{H-xW0JDb1>Mvg#jAZ|DpMEd-q1j1LcwigenZZ~G+t~w&KzZ#{xw|*aC -zbdPW7xCR$&xRvi~<)8+dZh+x -ze-$_TmPm9%HWS@3iy%jGvN_4HLBfHAUbY^m;D09h4f|V6P7KL~9SKSFiu!at$@810 -zh42B#Ui*(cHJ`Rctd7g{* -ztju~=-$TqN{)rHrN*r@L5(|RUf2J3LHxU9=qp&UfQc9g;K&wUo(wG-|Sl>!z3t`}- -z#r4gSyY7}xC3e#(w(6cX4Sw_MUzh{Ya+&AwR}nSUrUUb=;LVIY7A`vjOH2F)yOaz5 -zl#^=eh#rIYIi}zjWLTFR#!FXCHlB}{!yo$En6=H;r=q*ATNm`S*gPCPu=aI#_x^g{ -zZ?KGMSb-bimmYN;j+)PU`P{yclHF~3bH0`Qk`hM7#^m*;Z -z9+EvGsKIV858b_KTV<}JEp+1hsw}gF8SEkAEMaDSwFERi$|Jj=lxA-)9`pS}IMR}4 -zRRXzRLnj4peA~%w_&$&HtF{zb){9SIJ&BJNZ*iwcD3Lqc@5rEYQtai53$;y4e@~Aa -z6uj#F8kuXJw%oYI$OOdFqi*!d>KTbsPA~Z->=_f^V5kF)*E{iIM^;XCN`VY)DtQS$mC3n!2aVTjPy^mHzoOAe|hZCGKm8G>B -z$VuTda$pi0aUCo7WHU*P5U9>m-9)-?cY76Kg89Nf`2ZT@YI++lpIy{xtUu3-tvZLn -z>I-_iQ`VMYQ`k)fAKPMNf&*YorJBcGay_B-mE1EA^E8YgPXb2mz0`88XFQd%3y7#@ -z+^-@|SLUyBJ*qp%ZWvkUC{oGuLi7#t&ZJPJ -zNrIv#8xxs~?72YB?l$?~<-cmKqdPEB;VI1)Z8l2H0*1reC<^Ki^TiNV!sCrA`kfX9 -zIUGu~!QoKGE#XiA*UE4x@-Kq -zUp{MB9T7pf)=w!CDv(3NJ{a|@jv(EhwJ=B7kMG)ubI4C+Ml$s+t5Ui?ml-4Gbj7Ny -z?T^pCbTs6X8=Qz+>6}mb!|-5^+>?q9=SSY>sBH$+H!%nFk8ZH+rt`WBN|}sMGNYD*Z^l{c6o7k -zcgYLfkOFmD@s{C2`-DjDwOW4jZB7UNk1vF2jgHA5dG+J!#d-LaSVV&9DOqwBw1AX~ -zh{+*I6oieepALeR4UtyD+nhFi>H~qLZA$$r2gKG3Ogo^y+Gqsi-cXM%7XnJ_gANtc -zG1)x?5Qg2O1%uPcm+P~wK#7i(_!=TKruP{gV>>x!F>z1MKN=G(vRKlIRgrk;@g3J! -zu949%vojfhPPgMgG58P7GNd>$^?F4y -zi-!R|@SY4G8e;yQs9$!J8L;}{ZTG!k4mnS4d&bM{~6J>T3e -zxZ%)hYRWgW{NnosmOdu?s>32aZ64v8Sn}z%tCQ%oT8rg4+-9%OKp<1{H~n9;{z)g@ -zj1_58^!7&JX8lxNCU%%LtiPZ57t7Hx=?yq@Wy$XYHe+zuly0grpa^5E35U{NHQil@ -zeS{u-2NO|Tm+|LIhFkWKSck4zSNjnFieRL__xYOS104WjHCZ%Il?d(@khSokM79uI(Q`9(M1w^FPVzuO8ten -z&;nm=em(HsQV-WitGvb7?~svn9?RWs_@Xb?|D#Vw@ttmnExE++-6(6k!?JtyTTw(A -zqw|6dx#>anVO@GOX7ov6=>A1cTu`k4iv=Cw#|*D=yl1P`nq2Gk+|9&raU3VYNk00W -zi4DsU@Cy4d`GTWm1m#F6I-TCf9wJ$fYAcS4!bubXA(GSJaBjVx`)L`x^`#`)kEAvl -z;Oue;4&gX&55^)PH8=Fo1t|$zaf;9`JI)yEX -ze+U+8bUl-*ouA5vq;qlu_zJp)t=lrd0G?3OpFetr-`k`I;guvh-5NmuXN*e0Wb%54FE;|9EcJe!S(iBm9^yDJvCy7K -zIuQlUMG9C_4=&y?DE%95m7tbM*Y8i_RYk6i&WVe6A8%P -z*dP_=N`*D69?3$;R=`!g$>8H7$Kao>f}pdEQ>!ady#7R*c4JTnU!uZ1_H3wStEhQfrk?e}aN7Pa_fa&UZeN2AJ%dzYUg~Qta -zU!_6;%(>%W%mBuQ&?Y&Sm-A0xL)H+G(fD1`LPI2Xl0PrV10&B*t7)X$V=$OB55eq) -z@)$`Zvqy~xnLUvjdyTpcjo>^&k#nLXA3~TdTS3cP;|87cIn^>=-#l=$aNO!xJ}G?P -zRl87jkmA2G09PR81N+KL>HiOR70;yl>+ARy-0PL7gE|%R;^h_+7%e>_sUc?>_Zh&nZe -z%rY6bAPh}xH2E^^`F@kVXP29o|Uo3hb?7a -zX)L+}A!xD-csrog?@sbYlk|5WTNA49Sng>WJ>j?phwzOgy^<*)#jzEV^k6?0Kur_2 -zki%@#mRE^35b0VSGh`Gm=YtPDb6NnG5KJZ#)LXKjw>o&v#!4+f4({N8D_!;2P_&0I -zexv8fmoIkf$?FO$>d|+QMI9kZ-jKH7#l@SBjq6{wA@2J~qN%&34>R3bW-0P-6LUku -zNQ)di6?Wto^Do~NN^)lFwpu-(@zys|O4}8rw$W!Y}Kn5OcrQ?$D#+pd#2XK-`@cXBc_eR90SW(>s -z+Df`T4Nl9>GyIvTi+|%yZxyh^qxlqG>cA1=ZZlxOItqbcyR4~g`&Jm0X4k0L)zABhg4hDCD37NzbAOYAWVWJ=tkI(xVTXU>Gl`6llP -z-eeh^!d@V1i-ylASL{-HbO1*PPm)**^oS?|_loa08;8O67m6M7x~%`^9Scx);QGrT0Ojm4U -z5)Irj3s5$&%#!G0(1H6}{hkdM)qf<}xCNgNWeaWU>}t~IafB;S>agfTdZ+(3EBNq+Fcj)d{x=nZ0hzowCdxb_+>nuN%NV3{oVs -z7oo?$wA|in-QdiOYL#afC-L+J3w`6Jqa{x3hq;ACLY)x5Epc@Q{40A~CH`ywS6X1i -zu`_o3!c-tN#QqjcVq4+hE$D2f3`ONE>N6ezCu!#Wy=~$V&+y`n{U$?7 -z&J9V>5Hf8;fe -zv%@a{rQ~3 -zHbng9YKhJ<7Jh&q+rqgURP>cq{ou^)mf>*o63HT^7m)?s8r~9J2}YHjC0}xDB?HY% -z9TCv>02LG}*8xK5$dx<}5aCV)lBNxp%preJFm! -zhwcHJdMkv{@C)zhmu~N7UljJBsAF^FB4uWQt()^xRba)WzF^MsP1v -zR>Cf#(LYY)j>&XdSSY>BXn@qduUt^ySWYu2#91t-?FL>FO_|>f{8sx#E)yV0X2V8A -z2{-ED{y)Chj5`m=JM`yEOP=hy9wQ#qhmU2!Kd5DSZ(2H|lhRom+H$jb_(6fHs`zJ} -zi_DB8MxF=*#?F|R7bNWbICk(inZ%c8!O~CGBSzf1G+#vKTVZ;G4^sm3?r3zWgv+m9 -zkXp`JK=d=nIXm1eh`4TA& -zE(#6>eGlOv!EG~7@VEDwax5!5pU_uvI}m}TxwW~BZNkL-=tZ+ -z#>qg@p71kVFb#v(vxn-d@*^WG^=NzVnAjl|tgcG#pLP)Fdjo%K}8p*menpon6 -zv;agk?{83??&X7vQl(z6w&IlpbWi8^f$yDYm@#SVDyK2M~%SlN~MPj)~%7o+Gl-Svn{H%<4&DDc_ -zT%>qESp9i@Wq>U9gH?PMV9uT^vA01=%Ss^tH1>kGm&a^bcjMr9(#}3uIIwZRgHFsBfAiNhq@qYu_-8%V@au3)CozGK`qaE4X^%SAM&K6Bm7=O -z5zyuDBVW+O#&*763O}OWr4Sn7S27o3CsJVwJ`xHdbvmcOFbaN}!f7BS$b>R`Ra14M -zPI>hQpWI>Y+m@)yZ&;O3vQ;rwW;&UCuJN0b(vyUx|0he5c--3p#Fcn|@a;z*Ch6b= -zMGXiELTnT_B+)$aihda@ev~Nd@8ZHdH{WxrXm9t+@#^>iR|ouO1C^h@Y8Eb8wg>k7BT -zpoQD{Pt6m##9X)V+5AHoY_-_^ij|iQgtt*G4hhQZaDY7EF@I?z@W=@kG7K8LtDf%H -zAzrygvFjgNgD2R06=b>-rGSeJ4coZU#XK5cc%8Gr*exXkxHZVp_IftPhVk?LQxao6 -zji=P6XPD&6jbqM!_r|L-x0gomIpL2}oW2M=ACVta*Yo6NrA;Y$nOVsFhM7@T2Th&& -zIZvgu1d_4od#z7xEb?q#3srCNd(l<`Sc?%u=1l-)tWq|135sjeg#o7Z|3x24b5}`|TL!>L5=<8?>2oIPftIm=Lp_=+@xG+fQIdX04%eRNl -znGKwv(D&}bEB1-4~;-WlM+(GRyg -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 -zi#P&1z%KWpfFREAa8r1wBu}Lej@tetc -zy-88(+5uMM!T{2>6Azv!b?rch&{gFEY(v*hd;Ybbh72_=oViHixUCBPCM=Pznuj20 -zg#?%f0v&kJJ8<=`^6?LJrxj;1+44pL(IAWY^?f_>^*6JaB?lyiFT2DC;Ep6-V43#p -zz}4usU2?s~TFSAByjbgzLp5h|bwNxQZQYP?^sIw3FTs3ci)ev$rv-Ya8(UC#chlYf9X$fcgV5yy94GQfyp7{TxPXWgVSq30zu|BAyDK`6^N(1M&MujMZqqZxA6GDB -z`Tq*9wNNN|Y@CCYL^zQ!Omi35gexCIz6`*bzltskpURsQ1qqS+I06M&*^ZOqA8+Y5 -z!ICo#@we)@Efy3a{8X?5wS%RO+r<4Nh>Bo@d_(h{xCRG3EL|Uemch8rZ`db6aMA#SpfLW;m#Q?duFZ=&>GQf`wflIpv7$qu?&MC9U*Ct|T% -zqM9Hvc&%+}2Vt}XSb^BFYlf}*ak54oY==v1*z)u~=y9I)!If-xe{Jr7bWgsh{es+n -z)NYBF4umiu0Z$jpS@VN&E#T?YyST>2c%g8Ajtv{6qT}+Z!H=$I$yi}b*S90WG!XaY -zoC(l(lD{p#H~wJzK##y<)~h}l#e91C)7rg0m-TGQijUuu@4kQet2fyxDG&GL463jS -zuak8dh8xB+R>;)nC9GaXOtsJ&9A5pP@^sOzrGX&RVd<dfry3`Ny+^rN?vX5@kN=X)vlbeEIj06ItNo=cj7kWmY0o<;6aCN~ -z#Pa6N0Y}Ugu|$%{W%CHIwqyhrm(Ft(6kdUWhHEbt&8Dy9RS&xoa2{^^!aoi1JyepAYL!RR{!sl_k|2jW$&VLTT&93eJm4F4STZuzlx_^)=8v1r-B1wji7q0No5;CZ#w -z55wRqB9Q39B>-x~FlkmjNK=-$`U*RY$bLw|E+BPbXBtFQ9<%_b;Lawm>N)drtsx_b -z;HG2hFO_dH(}gmi{ZOWsttqhUpkS7Xh`BEcQ%Gh8+_>?|NQyq3wU_N#WWb|roM|~s -z>B-nY=DxWP1DPdf)12VD*)#_-8(l-DIW#S1I>$mHlTCAiB!_7(LMrfJEUwxX4YWN5 -z5{Fxb1Sj9PL!BtY=G~3H!S_RKSlNg8D@!hy)T|?aLD+keES_bjsE}X2@Vq8<4itt( -zl8ot`@=Z1|1d+tp4JU4V94-=3&dSu;Yf*V^9Upa|Pb&6$Wp85xh -zWn}~pYy_`=L0HK_OjS6Vm*FyAd46mZLLDL1aVQwwwxu;v1Fht<`}Z>02b9=mjHd`funmg+)uywJaqoyi_PwNgc{ut*=^!w+UH6DuJ*+ -zo#2ZkcMJOxq_oG8IC3-WB8^`lO#O7B$LY}h-+pX7Z6L+3L(Rm1j8!BiOA>*lhUt+M -zA9n`#ajic6fmA2X;C?_(LV$$hGX~-F&v@V#u2orN^|0xnhnol1d{uMmrTG(FZE-Z< -zs#8^8qK4qWe1^dxJM;>tk#;Q>5k|}+oJo{IJTQI*cIImhlZeuJ -zgd}C9+5S9*5ix -zL{dKc!!e5Q7fc@M%th?0r;sL*t|@t(d1;bsb^5zWp2zQ(cx7!4gt_VEh4`a%J_PIf -zrs#V0H!2zn%;$faGqsAYuE+R}vuc>wbatE&kPoKABAfO8?AADL#N(e_|J_s{;gJ6e -zODbbcK25#M@Ry8lBK0|_$;8aRaAxkcZSniRwH=Qbb}TyZWqF$u&FlGWJ=l)8F5r*6 -zYCL16zg{xAI!SSj;WF^g+Z-3Jgj*)LD41AC8s*%7%2w##^bch_WlBMk=dU?#$o`g{ -zUa(sI=r>#gDr)7tq9l=HI-10msb*X~@WUoQ#iTd9s6oDL!^#RSbkU){P&Nk;Fq(aZ -z8|ckw=!;|bWUgS}VgIgrbaU3}$QX$G@hc)S;yZe|CbR(R(s71o|-|Nu`$)aSrz7FcCaBi|{YakvT}Bdmb!Kl^o5n{iV`#WSWKKZ7Se<;W6IG -zpa^JD~-cpf%}%fWu~;!B<3r<9UTnhZK75f-7>? -zy99Y!d^pe3712{h=n7HX2Ts^P{48lDeS*Vf+fSYBuS_+Xz@wJEkhsWSuGZZ0TM-9D -zg5v(n<0WOhlsb_UvpmBT2_h_olu=S3wJxQJsxEu4N{IS=>ol;?Tfr2kM -zJe|6N3_}6zhEmm^<3f7ruUEw0NTtXX8I6*f12eV=_PZSZP={eB(L#jYnwgGet)RZwAmo1!SPf4%dq3g5sqFz -zg{6imhvz%H`kF81GaEUGsRpW3=GOlGh -zUuhNYm}1@z(s3knGAXRsbHyEw -zh=BnKZ8tCUc0KwP-GQ+JK~bYsbzIg4sCs8rIeoabuyCD%n>`oZp+Y9^-SHT6sNoO- -z?_quMH_j{WrcT#1{aUmBH3B{^t@4mt9uiujxuK8I8rEqNforZ+ct1bJv#XQ@^sWH) -zv%qqL%afi;PjlrhO(dW3dHKTrpoH|SmV(U36e-J@P#W%u=mBo%OYl0%U`t -zq3*`Z1N$@bk)m%L1$G0!V@IWs9^iNC1F|;*FJsAM#|C~b;-~m|YYa(ct$z`+6yZM< -z4Q0TCBGU|-c?{6aFWb(#H-BpTUQ0RXt`-!7@c}v!Xv2hLCgMB`aXGUFCIoK3#Qv~8 -z@8ELvYsM#VX=i;vd$s(~%VG2gY2PWOGb!$~^qZbq6@S2TVZggZ30=i>9=<}WC%>9h -z1LWM-?=~)XBIbXd(8nXn5>!Y~tKYq7KQ_}L`&9+0n~AbxyJHS^YYCo0CRPq%P>}G< -zxZ`!qpaDC)rSW+5V;O~V--%{ -zfW;PXi>ps4+R0wtE|Q&3w5NsBtVr3?EkmO4R~Co>f%{;JeJWpi+M+@jK;iC^2w`H1 -z_6EbQ+JLHXVR -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 -zs&`h0t|ZcnZO9#bPj&bV53 -zYk6J2mj8>_PzZdNaz!$~o39B2_kz{++(ZJ$@Gjc!xtnyu%T+rb$y3 -zaP#o&DPl3@cVmw2ypkLuf$Vn2Zi$qycQ^dkT-$qlo<{hrO*j0Q?udM0I>t@`s0oQIH-9I$>U3Yb7OJiP2TcZ(9C2cQH&3VH8J-T#xR=)r0 -zIWMQTn!}5-b2(l*NX*&Yxxn4{rpBY+j^!n~Q-{FEgwL_BY6hmYq-q{4;c~Qj*hrg4 -zg;cj7A{8Tz8ytpl{JF9*HM8IGh94o?`hTe=?GA2mt0l-wQ>2>_*2Q0Viad$1ECqlq -zZKdh!dSTA*gkV+2>gKhl>+q>g*J7vDw&9dKl -ziT-g4dY1>aoxsbHDrQ^6DmY$unQ8Tc)Bhgj@RI<5Hm-a8hPg+LsSY?9yld@dk*jU9 -ziE=Ui&FRE9gNAEXL~21~t$2ZccmW)id3~Q9FOmRSvCr>x&0Efe@7s=uxqasd4en*8 -zT^1LL+#B7{Z?P6Sm6sD;pGNe!7B+l!+Uu$Sqs(`Ic5Cl}!A0K6x1dD`;Dg+R-;n9P+u -z>(fSebWe&2TR%CiIW0B7wlxlBF8#ObG>%J`5w@Mx-s3^Z%nOfqIa%gD2;SlO(3{Xq -z?#<81`;@G2Na;H1jf{Gs*BF6_lN_8Z|G#B8O+LA}2E+u{PTGdE0ERmDRiYh$oPp14 -zG6p;2anxAn)i>ALyi#Dd$9Ay|AIWuS$#XaXxIJEXF9;LfVahg*Ga~f5M3p`a$QCQ( -z5P^1aTDTe$#t_%G@HFMnFBY)qdw| -zz2L3PU3-1uE0F?5$q|q7b3B&^^3h^m)|Hr`Pa5kJH+MNiot|((?~`L3J;Y?v)UG1T -zD<)&QIem_qRjs`0Z+Ue1GTKkmw{cbH*~*{ZnSis)=! -z!@NxZbOW2wS%sRzDa%a4&-dF*V)%@qL^J{*FF(eSVW#M$AkbR8?k+q -z<t -z*V?e;Ng9CTd?>Y4cQi>06H -zw&28oCay0;6UV53qPo2-yu36vOrKAc)6ynDfm%EnKIhCAJ2u69G?INXjhV2dT|(Sc -zM!^Z*iEB+NpU7qbHRD*)F%|i>xB#fy^PheU*W3;Py{;!)hiPce9F-o`abv -z6Ku0un^~`<6pcWxjnjXwXz_($Zqarv0l95_7NJEA2$fC>z>T`fBQU3k&KyFZ7F8Yv -z>r1K6&HP9Nu)5TXuS5!mTPbha)z#_?#&g@|7ebY_AG=_u5Orud<5b#w(72rPZ6Sc~ -zj`mtJ??u{d|Ddc%URLY9HoouSx1#}LS)p>m;BwdOkR`(>MNdi`+Qa<)mXN$egSra; -zsj~rqsSk6DGx}%>X2rWZGsFZ5zpA&)IwPMmd9x-D)yKp*eM|ou!!sK3;9=dH^5)Sl -zA){lsy!n3RWd4cORO3B|HFtN8*-~9s_p**Dfn{myo3^jl@c6LkT`GT9KON_5`>%O= -zZ5hi@6KGO;L3zZd_Yr@#Zo6~=52>W!H*c-CeE(=fHFiwUGnOA-8hf-=0^P+uy4Le>C?!BV+D+gOm|5}<7NDmM5Y_i4S -z-Vy8>&Rl81&mWzS8-Lj1Qns-{ljF6;Z?H%_bpGSz*s%*#h~oKBshFtRyJvmPas6od -znL%xhmlVEF&q;SaD)(rP2eo9sD(yp7Tv&{M**HHC(Zkxu=9kR;J@^HltW5hbado3M -z`n&vB(}t#FWnY(`di&r0*R#VJa)HK)NaTbkl4H$wF}G=soK?55%DRq7Y$&zxTf1ruQ -zUH1zw9oQ>@#X$yU2m4RYWJVgFzepf^9Hn%y7;+Q*U)b|MryjV5NML*?Q+v_8G_^fk -ztXRbVt}2W%$`ldOSfMhAbpKm9Ez5XNsRu01((yM2#mTP?+SyYI|Fdeo -zbyG=4K;XS(eK`?-#oepU*U7TCyYp(I!qG|mpkO)9)*zi>5N -zEM#a3wxYNWSkgqrqrv*hHqHiL9d&C`LK)Z1Ya=ktxp63;~+n@wXr+<3Wkf=-?)AE$=h -z+GOWn8Rq!@{mK~K`_&rr0t6BVAY_gi(6F80m|Z51w5z2x(oDy*Cu5xNF!X@5!DDD+ -z=(S}mMK%o1D@a*eKaXg6QG#fB0B!(VqU9Okn-eW>wAEtFud;!}R2#B&$K=iZob-Q> -zEdAOfy(0KAlB38JaC;6K$wYdVy>nkWXC5!>kJ+03 -zonh&?1|pLCyG1=nO(5&Vo?%pbV4F%VRp?@r4$?|tn)-}L=-WS=re+6VoH?vWTjF|p -z!4OPT;B2sV9#v&)ipm=N3y2KQO>N~6Bwyo-fA+J*r+pC&cbnDUcJ#&PnudAmMaah7yYiDr7(iQO>Zz -z-k9*aNcGdE-;C{x;6W$M2I$7HtQjvrIUCEml@Kz9sp$H`V^Z}+b6_K&O1{^3oo1}< -zG&xQo_t184{BUZlfb&Tkb~L0HfB5LQBSzr&BAURAmcLz`Rojpg(2G)e>y63$euke=i5# -z2{w9Kc-7u)!#ap6Y)I#~@SHRg1hjeA>78Q*quupE7m3?uHde6L)d4pP&6$+$^`$d& -z<^dL$YH|RA@dJ!{ap#6RXReuo1>-O+r(c*_OIXN!{tr`zgumGW#824* -z#0`6sCDw^?c5S!A*TTjT4ek4G*L`K~A}jRJLkWEc$pe{Oo)+_5_0G;>M&jmr?zR4t -zz(ArChlL|(lwtNXI*W5PGYtb5=?yP}VOcuH(D|m!+WDB>KiZ8W!dPm72xF17^Tui* -zlHS`keVdzp`+P^!vkzSNEOqLBDpy32P>!52ewbeKRKdjMoz#9(;?CFz}LG>Q;zFv*XISSx{+*cYZx8_n#q=m -z|A^w9XU9V|#yuHLolFSuw$A?=&uZMGV|izA%t_DhGc -z&CLEd>KjJO@2{4)2Gn+C527JDltP -zrmSW(n~O?KuMGZPhru;gh^_)$!>OgVE^hPE6^bR>=KEc^li#zU>1CM{J_bw2eBk}* -zlu}a#>|@W6qA>?I0*|s;ABW?Z0koXhk$HlX7*=%;au*ZMfV&HfG0NmbqR8=DxAIHx -z3|*bRrOCF)>ZP(;WyX-yoD^{eSW>gx?;@o^h|A;axef3PLra%ec4Ze6EF_WOBy5=M -z*hu6q@fm7;?LIoq@bcQ@xj7S19K3nHVVgcHj}8$l&#=xg*J7=TJMn0BRWUQ+tv5bZ -z#E9qn7C2X29kF8sJ_5-7vylkoIkssSi4?mGfp(c9w_Int>Y*UR_iGtVpzpx>V*+-} -zzolRo;%~!mUj{ptXshw4zGwN`e;`^|#)(iS8)i(Hz{W&mh*X$uwZO(O4}r{kA}ubT -z0kd0iB-aLe?@SHFl0gk{5Y-6|cHxrfHbo=s7xY+gSYXbX!;%UX$xqjeoimH6oZxn; -zImSv7E073kz>R;cb|CDF>h4qEMgfpbJry`!0>747iA{yCk33|%P>i6d{ViTeTyvcGD%AJ5C*_ -zLTX_9`lfXm4Mtq29Q~J~;AOrVytF1X*ZOEcsaG@}u+jc06XF%xAA)RGXk>4&sS*h>!2HW|e@CfC~J>r(fInE;7o -zNq=|<*AhH`R9Sd0U2W-WS@e+YI*En@8x^s?nw~#irg%HA!Ff_lWonO$E4?r!i`&P3 -zdg$Dg9_EJX-RO_{ahUYw)Bg`=ZyuLb)qahCGew*=XHpzWOHC=o2|>jn%Ty>FasbLw -zKtoLsnJLgTO3hMvKn27UhlD3XQO2BdKm`P&KqOIQP(YM<{H<&4bA$Cf-{1Rr-~aY~ -z?sN7z_qos6d+l|tYh8NTK6dVMXH4WV?&@o^W@>Jm8MEX+l2}zyGsffhmMSW){{E7q -zugHVIn3c2u@6tsSLLxXtYY9iHI*AE`c!RIhOS;qP%klv*74fRz4y9{ -z@Wirm*;6Yz542ZCpp8R(0fvMVI -z(;z2M9he?zyq-;*z1DB?;RY|aUJD|6fMv#ozav5dz+x;1=f(d4>R6WUiG0-XTZAxC -z09_XC&8_4++^<^~U_|zE(IQ@xaVR+fJ0zpVv$hNJUx)MM7@|Qn^+eY9u -zM6t}$v@m~Us?&x%&Z($N9NuIW^{CV$uQDyqB5T8$`JXg(Zg^Uk*1#~E^VB=jti7*= -z01Ij!5g -z9bESO1Qp*lA~XTi;L4q+URis%`e=w!gq3@*@E_6rH7>C9=C0dj!GqfDUUr|57f2_f -z?CWMtf=KH0%hK(9S9`KK^2h@Nb~J5L#rLue<0e!Ei04q77nQMEI~ogNt;ZRQz!?Ch -z14K^*{cFq}Uz+c%&MY#G1+KgZgaiLF2;l@*?9zAq&9#2~&8=>Rt@b3|_L_MiqAXD1 -z!Yx~tb~~ixAk+4FxPLAo4-B}Iqus8&a#P`81b2Z7_|gf`z42G-&`A%S4lfd>^{idW -z^eJ}d<;8LPsHOR-G;8ZX;x}9j&7U*%RlqC|$zu?g?>;(M% -z6r;^&HbB1**uYM$3>}|#x06WVp-)qsRzAbxX%8ahnSmv}>kICreK4i~A#$wcZoOG> -zU{cyhC>Yajjh1GygoOyf^(8F1grmMb1dJo)7Yw2-4=DQ47ZcV97RTs21JN~3gQ=4epgm#SJ<}50&e6RT^!OOfj{UI3X9jlJ$yI0>V -ze-iL{wTs&|3BXQk2YmnDJo&RyL)YVhk$?4onqjf+XBq6iS3w=D<3@tk-T?L5Zrlnj -zd|Mj42VAyj2!?OebtFrXA(Z6ES=B)dH<1;WK%{WkV<|>(l7rApmDL5#1e92w{>aH9 -z%crZaCPSM~5z$MEX@=N{Q!F*hE$U?l#=%81t=~oj1#IEP)Wpr2PFmN*GePWwL`u2N6Y4DBVp4KLA;%xGlT_j|!!XACK6!b{J-4m}795 -z>|}Bq(loSn0)ioK>t(iM(y?N4;FM>74zG(xevdc9$ViKU*yvJrAX&vL4YeqGxt1NZ=X?L7LZpve#akX -z3!oB?b~y|JwB+cjzEJ$hls|t%$5q91*7_yP9szW0=C@?h4?^tC?aadIyb>sau{C<)0$P)iCblQCB+3?cH!4sVUblX;udbsNM}h>y8g=C@sq -zs@*DW<1}{I!1&OAXN=h=8DqBYg+7YP_UM&plw2I1RO;293-xwX{SZ|bXlibE;CPeT -z+5mZ!fNolg?uR(%beQLz%B7l49NLok#Ul(8%}{D8M<)P2ty2lqz5lOb+Hs_P9L -zWmw5|jGJfztJz(%YvCIM4G2+W9mdvHS%;Bw4ikM8Thq)za{T24&W1VtTCtQ&%BffM3q8p_lyXuPp~Yt?O9Xt-YWs>)V>e2k_VVr! -zb0=Y=TaBk1_ny`<)6qP3WI@I1dsEouR@ao`w@YdpD()#3K)_*t`SXv2H|B>g@7~AL -zn(>RSerxKZ)1!MfJcWJ{Pf}Sr1hE0385srn9VT=C-u0I+WIW=T|1)qzi8cdA?tCO9 -zYlE%l0!KvO_y_(YaKzW;nY~Nw+be9>1b9dXDeb0ozDW#kKcY6=L&TuqsrXm0o5q`F -zbE9J(mr3x0=b5^<%D8H@Sw57`{7j{@x@V$vW>;~Y+}%V;&kyfN`T<*vrg4z~U=8UA -zbiz&?+)Q}rT^-%)Z|*vD!>m(JE}dK~rXxVl -zFj86yN$8}|%sXi*qYKI=S?w7IUkwWWAWJCMHNKb?TVK6@7-Wlm`j)H4zxwDJearWG -z9L8e%#9I<4%jKFHmbBQpAD}}9+3tPp3LrI;p>SyC2o#>aRv!^sc+j! -zsE8ea7N!auk%cx0eyANKR5Y}irXg;=D50Xc8mfM%zD=2jP!W(XhA#JWi?oeA3xP2> -zWep+^ZjZ1U^dOk4+6z(77G__e!!ef?P#nb5Z11R8(;X{85_8L^=Xdx$;{mt)S7`^d -z_9fdKm3eM#*@`)ffhEE@MtHMrIc> -zhz8i~0)NWg%j69Pi7mN1FXL9NWXxy0M7&gUkvY>d#_-6v4ifce(^Jw^ZZNT^)E75V -zHP;IIQwJh$BuHH{j|ND7hPsMa`Po3klAqy80y;>R)VVV=WeEowOzs+RGFrTARBg-D -zqIB21YdBnY*C>nj%}50|!{)9>MBgrBu*(j;!``)%k0PTs$*QbEjW=psNfM85K&$Jw&pNQyXopwT7oop2T -zdc#!e#kg%yYst6)fvs^!;G?0jmee5bI79eoT}zPp2EjIXu>P?h*4jbpPH{uh5S!Krhu4?g2+Hp$n{wnvt+siyz%XRY -zOuymM9$jEKDXmISa1fqOgoYME81p+47QcBBDLGG@H%s(s|v!zQpo;=?%}! -z1G%ZE7+4&FJJ(agH4dsPER5rj!xR;1} -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 -zONm9D;v*zJT&s9Pn(tRiO+S+Chc?@J -z>Z{DpA^1KQ+EkK`aFd3=5A2kDP8m?c6C!OI^28_!6LayrVdQEv^D_5Jwt#pL*!mPJaq3`qf0r{ -z>+U>?>%yVz%luYrA%5dd;IYoAL`O`W@PJT=%s8<)c=3~`#?4YFwXX~lN`BIE$2#Kw -zn=5}Wb-B9Mlk3@(snCawNTWJ^?T3dpC`GtnJ5Aiee~CL77tFT<1<$AAyoT-e!$RK# -zIvbdtL3AC_d25w~paM-}j=z}OAfBk$`g3P}32%zVyXcGReqh+uu2)1A5~w;*UfRx! -zkUl1|5U92>w}hNS60x?ggg8~VD^gU3(_okp%#jf>GA4X!iAQyvkNK$s_D7`0!!IuP -z*mU0=ag?RM#Z|AU_LrNb1`@O{af?78E3wLX;IWeNCeH& -zOdP9%FO?=a)fGPV2=VRJ(Y=y7oA=lW{8mQjndJo+7S6*BJ%NZkS8^jLo--9@NyPUIbZe`V*4KoaDL#8jdJ!OmKpxi@ov@p8%KtQ!FF2$gM#H9e#8J9w)8+}al_#F){j*k6T$$N@M-}>sbdHHy(*8%wJby -zH$`*J%N=I(R`iYoC8F&QuvK2~?qWdZ_7x@_xpKnaVvBC+S%EfjqeEdWlzOwN^8wusW^DQ275EV;93fc!M -zP#1CV&*Gtd6Fpz1uISZuqpH)iRI9(GKMB3KTLwRPzd6+2da^k`_!>xQaH>7s(wq!I -zPQl$9kL4f)3sjTAP5^7Csh$SE?TtGdezG~n3KAQCl03`9wP$&SKz(dWS>0pN;p)rd -zdE6!;m2pzJOW^)z%MGBCK^>I<8N_@BVv)diRw#0*BatZubr9F0)EX$grF_T|#ypLs -z{>DFSxc|HDpwPkm?_kkjIuFns5mT6DYAW(gNZrd9#80cteQMWfONC!#IP{7bNpY26 -znrwC|JK!rL%?0J+ma_r3_iJ4b63`_3Gr{q87tb(- -zQ@)sP2QV`uMBIySL!pSx$hy1mRU#SL2p%(8NQYxDGk!HyMDA-SYFvT12`b`<8d8iz -zj(Lb0vUZ*DvhGt;Jd^hqE|r}PxpRY1vqi9MrSP~YP}kTjqDgvh7r~q!O>;5OBWp(^ -zIF9x#{zIItjNk~=VFah@GrXRW3X`=}iBiijdFD>BnIri;BN^>tt`nMz+FsnE+*2e9g%V2K0b2v)xqFZ28zmZK -z=6U9}nc`#W8NZ!S2tIU!i^UH~!w;v}66d$0`nANS@nS -zjE{N6Z1)!jKmqK3y`kZ6h|F~cgdfcWvq>e)sQ9TiaVBp}nbPx_%aLzR+b$t{fvwhpQt71mBzVPdRZxn8 -zZkA2LMvVc}VR76(qH>l^B5r5dB(}hzX_Pt)k5D#=q&TvA{#G`LFr8(S_%(zJEXsq^ -zNC6lkVql?~)EiQU!_HKJIyhDDPxP;z7kCM+M!Fe{jNg%2dp2mJ%bL7XU=9lsaeyL?d -zQRa@L5YhbGuHd^dZrVI~cKJf|qXLrB^w1-8evUtvu!;dfVu@xQ@B}*iq)Yz%S(p6z -zNs<=D`s8w`$K5er3G(oLlB|`wx&N!kLUZq=O<>~I<({Z@_S@IMSJi2Au9kjuHA}`l -z6wry8g)G@`Pd&!Uz;{-((}p!7XE=jnBs>q)v+Jz_MC!ffExmHV2z7KkJa6_`3aTrp -zy$f6?6-_)ie%cG==61zO|51F1Y -zcHwNWZKP?jPIQam5CHB{eXDe!q1zXqrwD-9(h9N#p_31m#rfG}hJ?P@US -z#K;Fit3jEzH*Hx0azN%1kgLeQF9A<958+zNedNIPhi)zA(9{o-k7G>EJP#2fM)Yf(;}C%Y -zVW-GvVVt=Y8rEZDplyXA3T2yZW5b7oIM2h6S{{)z{w@%^CXsBy`vsa{$86xlfFKtE^9%n|#w&NN*jhLED-^*_q#3PyF_+DFK0 -z^ok72*GCu>%SDTQ=O-zq7Dd6Q8{3-4k6Zh!Fu!N#OHVwGj30MAx-`EodJ{6FE^W;8 -zfe!?hi_vR4zp=Ntu9cCk!5`5m!dEnA;{p=l?kUAr_iQ2lrfef7d^pGGr73m2m;RpB -zd+EdG$W)>&nt1Jtw#q~OfntvB$5P7tiA7bjXNXqF%joIuwJo(Oo8q(0Pa9c3*w@}mp>(aaa -zkAt5r*h!DG%Inq(zL*s~w`x=9j#E|;NB_N=PDInRN5Yw-;MX;uHHD>-smZ0aUzuB= -zyxin#3wy#7%_({Qs|X!q`gEIl5a$5!hDzeEpUj*V^<+>zvf%Vso6feuXOFj+A*|Xk -z%Jodo_bF7t{BhH4#Z@PZ1@v?oaDTC`>7G(>$7%s#)da|4=I`bc*x9{l-&-9P-Un3H -zf>8j-8llKNpfMJMIQ&!RM8mLv#5d#e3y4UJ#g|X(E9OM-IF0D8P6vn9Y{w$F8vM(T -z3Rj~qbb$Yv5F6fIbw_>+pz2Q5Xd?#a8?3;3NG;}P!rMZr3_&=KqHoWY#JN9%8?o%f -z?P62Z#!|ZSZ@_vmXl^HU{0!g2H--GZ=Dh8GZS~!%i-|9lnc+~$l!`^^Gyrue{UWs? -zATLM$Q?w>%NBWc$TGDpS!Z4(Ejq8X=lREzLc&qyK43$bHg%8HE*W<$D&tW~nAj6?Y%hXI3g8fVu% -z+x*#|A=>J=Z2iofOWie>6cQ2aKu!-tk2#@-%9JvY3!nsPrg~j|z+N9?h&58*h^+}4E_5Eb4C4V~3 -zegyNMhVZO=(^K}D-+0aOS;+LCcY55eh;|+G{ffm{-&vmvefYy^Dbts}yW^_K4lj2? -zKqq5CNB5NU>gl>tOR2Zzs}Vx)7yWuL%QSbfM2=(jm;(_=K@zXap+K9xM11b9r`}c& -z<8R_!*4L9k?`186Rv~BiB0ONk>V=xL9dYr0`V!iIe(R=lqB17LQ|D`Lg}hRZtp-xK -zLnE&dGbW&B%vg;Svn_FvoGCG=Ei%!;XpItAgscuR>nLs^WVvH&-{0M^3?f_?|L(-l -z3A^V0{O3{sl3K_amL2=qXNz}DL!q}8`CL=x@Agebr>*}PYx-mCUE(ECvXCZsZMybG -zW8CO(ezM$@MyC4zpWE&jgknhKcMT8&n#`qXuleh@bx{N7vDn{O%MvkujX}R?71A!E -zjAVLLC~};rPApD;Pqu+o_p2A>J05P^AxCbC7S}k9dMPyfPfcT1*6p36DQ-ygi?iBkGOnA#8cbMmNSFt7f*(K+j0@x#W62UZ@>*?iDE#Lx%StOU;e6rJswi0X(70?QvP}=y-C^+?l;pc< -z26aQ!98pY{x1XJuJ<13$hlF&}c}-e`ta%>v?hV;PK)v1%eri -zJucP>Q&Hj~m>^dxG+|&-NwhTKI38Dh=Y+nHF7uLsw;V5gtzu1uDy0OVS|Qc7aAwuiV1IT8nZJX+iY%4 -z^0pPbr}P`z__XS-)3smnlg{l89qZ>lDJ|sNw7r&Ke#dq!DxTvGxH12fv_vL!%tWuk -zeov|MZFFZXfylY(*n&NisZ -zbZnudc+Gw+b#73y7~_?RUCRB9hp~noMQ1Sdihvk*StawII0^!V5|1MFLu(QIDU2%2 -z(lHswr=5pjm#yat)X?`howqc8yYA?BGUVcUOe;HGYbjhq)zL4(VP};*thqT^xruRg -z8(%;D+QDPF-u5*~If?6QlA5{Ai36WHbXfQG_qLsjlTr05w!W~z=>GA+rOgRU1v8Iq -zV6jL1`7Ks|J<6+|L}U5QPzVcs5e*B0qF}6jN?lb%du8VQW9Xmv7p-Z_)a4ly#P%*a -zG^yAlAiyX9_PtV|+GT0V|EZD^(e(dCC8cP&VY*66&}56ELsvtTwMtdYbN*c4iccx%$$SIvCR_yI@^l`#IlAjYs^VLP}h?c%Y7MkfJJpPt0 -zeF-lT_0z=HNMG_fynk|Xpr_&mN=G-=#b4EwD|q>XHC2lQiu=nYOQ874dlXgk#b--i -z{B(xLTME4IY%XsDfGmYQs4u~K359)BBwe_6b+~Y%Ear~49(5);T(_{CNBr=JkU{YZUyPZDet3k@6t(JF&CnNqc>mZ>`Qd#rYp34zG8SNqAjG>2)Q$X!Qn$Kfgu%DaK5gZvn1uMPf#^f3jAJUBsYKVmr9UtInQJnVV2Y|ibJI0j$aJo3wG7ule@k5S?bAQ`oUWNLDQZdQk -zs#Hw6t9K*sUcgSK1*M7X0CjHu6eIn+V)zZqy0sD~Q_V=<+-p6Ws#m_sXi#qf|Lp$Ustf0B8yj~g*(TKg5^|vqb5zC)KestEn#2l9b~00hp+QZNZ{T+1I?DYO+zD}#5xdT=+&j7ZQC -zSUZMx`dXKg-k}O#3f-h@5k+IM$}|w3uw_4{fskCblr#{q!niw30|8yFrGcoH%qk$M -zabc1M!j>ZcS$%2MHk%wvw3;; -z&;r!ZrR%Gui(NPk^#r^w3n5X({7Bl{D(+B48;q*V@l-4}i+xtC~qS89Ze -zBz}MJ#?m#8ch?@uN2s>1{E1i04-v+n0;>i{6XRC)u90*2RCI!dklf@{a9$y0~eF-M#r^ -z+if?^9B;L4UEwlRyt0Ao&u0bh3e9|yG}LP<;NABkL;gFY-c+y5vjj9?au} -zxCHm^sIvMtz<8HA--x&4mZqn+c^}MzRs29v*dsuB*xg)vVCGgl?W2|-e)nhWEo#Hx -zS9&%}9q-%;^FC4d>*AU~-`MBey(ME&10y{QUmMPujZ;10x)Pca*fSkTq4`abH?(VN -zmw8Bo(#ve^vdm_ByZH}`z31WG;0OJ_U0tDzeMU{?)B1XY6Ee#$pBcCMw+e$*nG4I` -z60>g3j#6VD$XsB_!u3K4W9>1)-rFN>1w8SnyPCL-hIm3rqn;29@iZD5+<*q57yZYMsHk+vu7qbnP4u<{R;Z4$9-Y#*Zq@Vp -zX@8imIHnXuUjo_keyMS@88vQ@v$ZjKSJRzaIdBfhsc<|O8jiRcy1_CiKltc7`Y;*< -z6LG=+tB|v+SL>PC+06!9>)5CK!Tw>#b#8c$lIL|)1$j90g9AyRCBqQVkP&X1sX~Dw@XAq3bxT93KHhc|8 -zn}~=EG%(HguzSA>x0vFMI#M7wS!Z4s%s`EZp47&FR!{nYo_mt@qIxRzs|@^0+m~7= -z=&`Yu+9eWhsU5@o8NKHC5>ge#p06i_rUs0lvl1GhHr!T2XHe{|RVkk;^WQYEF4#}% -zPGE2ZUMIv6(YG8Rg&l5kKThLpy(@(sa2Cwh$a2$Ko1cu$flve;ei{0;c=>^=wz2lG -zvHl`6#OTwcM!tM}^YQ-s0M?c71H)A{MuSyDu4 -z*_eW0tNW!A$aA_7>M?IyVizO^W#3@}8+-#d(i8*Mf@T`(c=l_kN68#pVNOkTJHfX{ -z7wB;#yUgrWzgczlz&sd4-E46-lF-@W+L&4c#=qT_EDO9`AB47C`& -zDBX!9x+OA@Vr=if+Ea_}wa%!f9%Q-Y)v*cu*7Qh;fh}Va%?^W>7G6Wo{I*CDGqWSg -z=yL+g)U#@vOb|WqlBKryh<~UZZD4#!>(O;4xK|!SgGTQ7jyd8sJoB)sIqz?-V)LG) -zHQnHK!|_Okh=WIOS|Zl)EWcG$$+03w!WnWhiD+9?9)D^+ul$3Bi@{vR8J -z=23gtq(b+=-ZuTuO#~KI6J-kV1JndDA_x-_BYzQL1+n${tnZa&2>}Y2^bT8 -zQqe6i0wgB6YqlFJ7^mbP>w+`aFHh;e?EaUfXJhMkhd23V8RgIvaDSl$hQt%l)6QLP -z8mi@J@vNiQm?>5HUa?0>=5RYPQkHvptbOYn*drn_T`QY2R6=OBZ^2`}d*qz5kx|D4 -z02T6<9RqAB4K(zfoo#hn8^Hj#0VAA6G(qa5Kv@BDiHOcMzyKb(Wl|-#4nmI>C7ML8%WbOCo?@KEKkK$UHmcGd`D|9&V~dsc0J4cSwVFDg -zd+m3u>QPhCVd9$V;HJiNR$J00SFv;w_Ihyk*QJn{snZNnW`G>H;Jl)SA>+jO!jlDg -zoTxa00GDgE_IOH|+?847aBwtM#T?P?a~|9F=f`YBej-D?8em1v@5)u03d6N%3>>yO -zZc51!?zzd2ks-EKttsfCkx@EM^)IQYU2q%5a?oe?DHI($Hcb6XlscWLbOI^<1aV6a45jNWTi -z-9uJ||DpKQcTy6wJl`OV4F;43hR#!w*QVu90@B9(lO|Sv8?r#7eIqGqvZsKvEfQLL -z(#(+1W-G#(aW!ru)lQggDF#;>;6CJ(_ipslp}Z0yjc11wovT{ttl5xf;-2WyUgN|e -z~sw&OmV;<%-5{(NR>ffWvZF)ZGA -zW46m53ypGe^RkxPR3BN6$FYcyo;;3hF_udb+O&1UyOSIpehF~6)GCa*H`K^;JeQ;l -zb)XpEu@x3?J1zXtSf}%2pOs1}xk|Y$4EX}EYaw46t(}*fYiJtN?ZPmLyfs`$!Qmb( -zquE<;?8c#@D6bgd7c|N0O$5)4QJhcVX;l~9*$Dib%BNQzcpM$cy#27k5Pyeh`7)?3Oc9ngk7VXJ9-_tj2RM=q?B -zgbYA!r>UQ2ed`>%uy<3BE{;`ezdRl?{r&k_8!H`szC*gR@@5PF){P~CZI4t%`qwue -z+R5WyZJk|tUg;V&eJv5Uq3^sz^JgRNe{OREZW~J>JtGphrO0T2P*F<(d*h8ZE@<#r -zv{@-+K1g|7HX`~(rSI)mUVG}v(v-Z)_@t!#B&FI|j_A>U%_-`ll~=-F1q2SPWL5!% -zf0pS5odKSGe8c>l|KfiaVpJ{v7~@B_kw~D&|JccW$HpD?V;QB~ByS7=JOpM!vj%ZM -zk>DL$gZq`cl)8DjyjPnxJb^W8X{FcEUH9|{?~=CzWyZ)W_sYaIkJMl -zB0`r65TLJd@f58PtJD6Dhp_@g5bv?r-`&ujd{)kZI1U+d1G+TdNUVx=z2oubc~}yR -zeX=ANTX;*PA`g}^BIw)EU3H2WC@Z()eXCnQ<@pMB2MJ3ai2KR6LdIzBf)v@~ -z5bOVquttg|Y)JrH<+W!E5iWSBaJ30Di5=Z>nv54d{|I^jtg79NJFu)gRcG@kplRX^y|T;=iI+7b$F%o<*M`*D6F;mwNDVs4s0h=zc%Y&$|d -zQgjk=Da@$tB&mKye|G;%yr+fr?_&xQT*5XA=pOYVG>DaPDAQsUu#HDr3jj|-;(Nxt -za+jF^-AOCaexVF)?7p;*bK;+IkurCU0ts#ld8Rt57-o0L< -z*2nVN9!U8cUOcmmdh*ZgU}9~vBWr|Hhb5nxk4P{)buS=-Y{$pqsUK_-;J%k^M`ZjEYA&shU1lL;=Y4!0SrjBCb20&QJdGsNK7;pZ74D-X%o9 -zLS(lJN6D{$SF)DMhN(12+=zzK%}%xP>uiGG%)wpNdHqqMExK=-0_w7oz=z|AR9V#c -zH|HOzjkCp|Z19efT!`A`?-4|T{a<+rYPH(CMjV97m&Mpy -ziA5Qp^adm`V0^wU_o&QE(%;BQBcwMn`sQQDo?l0l&gEcHz4xcr_gHHkeJ25Bz;DIO -zsUD*jJyfIP$P(=w=P{3~?@}>3&ezttcw%@3sKvBbKt6t-q#!}sjXzmZkkpQ%u?K?2 -zP$yEav2uM(L4uq_+mGL>6eK;cI>I4lWO`;aNoGO3ub|RQHV6{ -z!g@37TgQ{mJ1%{H&wYz$Nj^EX)uTMR8{3Iv{K733lWtb_yc+p*tCI!z@856k>MC|7 -zdn8s**$k&f$vKMRz%Sk~6k<~{!x^AKkr33&1`43pE!mpqhjh*!EZy=CT{tFUOjJv^l!)izkSP5hRhKl} -zf;gmVX%VJ>fOhYq@s_DEN}vQ$GZriCpSMKadgL6P(hxp5YInJ*l2-l=Roq%mSB2b+ -zZj&nz6(#h2ho*PD)9p3WJLJAl94+@z=xP9od!aKU6gGvt*-|`7F!4(243inHDv8f89`Vyympg&!x|q-|?lL8uutbud?_X%Rjvqhjf;@;~1&? -zwG?5(+mHX3yXU2>nN4M -zN0JDU^oc9bh(jw_HGdp3=B@nTfu -zyUWn -zlDw=cjaM|u&>cKp*Jv)f!(XjAqF^+YXp^xF&nnsk*v>&2(I((-U9<_XUNW)}ZMvb| -zGyr7ER~T&~&s=SNG;zRdrZuV@Q`C178d`SuhSAfl0=y--G!ctxKw@2RX)}XM)|RP) -ziKTXvguFX2cPL3AYRO3Q#LZG+sF|o;4OFg+7->DVg}7WDBnd~_nIxY`+f^zv{YU@Y -zRguu*F-BOusr8T#w3Y;O6qXh*Pzpk{f|tBE=d|4ro{MnSA#Fk5_8TZZKf!zS1(+SS -z4s=a;s8BU(CE&+$;C7j^W$o(l;>akAiu4AJzmEGb^{4ALzX241GpFCItOxKPNg?!# -zzWfi&jm8hW*D4HF*%Af=-1Z`WE#=qKAqdAr`M2`xRv{|lh-p-HAm!JO@@T-m(%@P} -zkdGL?QP+{U15RcfvgNGMYGg}KSmD5u@(*?;*|5FNVp_vlh1ghf%}KhDg^_USlVym- -z@(CAC*vt4RH*TfBNm{--42*{t?M+Z2Z6~gbQ)4ST%tcNd4?aw_uS(bUbvFt<9r4;N -ztw+--P8;{$T6HpK)}x4j)@8E#ZFK3{vX!qUjZWB{pgTi5^Mm*moCi#g)L*w|6D6F^ -zKOReu8o1 -zw%&Vvj-A;0=L3V%)pEsM^Mh@4A?0L8Lji@v-du*Th2@pDZ3YvO6db;X8AGAv^P*k=G&dR8 -z98%6bb5?EHuHoqayA7*2i9wzaYwC4&`#2dlx>29Nxt{uj>6~lju_OLg`UK){>JtbL -zs82v&;0tg)(4Oe#3()5qruG}JK>VgSDcr|zakc8yu@G3^u0K)wwcd$GQkP1CO!-dx -zpUDbX5{0ZJIS|D9#;JEiobVn)O>S4$XrU+dSwc^M#)wKW^fctZgr4@agq~D$(2)n) -zF{6ZcRU2cZG>}SLk`Vk7UXH|RRPWlJy2v{+GO@1yFhz2bRQsb8F}I^fw{N)jUMZWV -zJU^rw6%euj6y3H5^tRJQWa}L1s3qfZtEd!sc)H}aRsEGZ -zbdslCE{W=iGDcWS{#JT#ta{ASrbBmF1o_SiJ8;Ie{@T(ifuZwVB}ZWf$aJovrMg|V -zn_FZCmdMPSUZvp=)Wz8=;dLx#2QbA8jgaOwnfJ<+XC;APoNTFrhWTHlmb7Keu`*Zg -z4}tGA$#7sxlAATB5mLpn_Bj1hhv>)PTzf# -zptm@tA!I|=$C*z*D|?z7aBsxJZdzR$raeE;FXQe{PbqZ(3#;OF;&;QAtZE&ImF-i) -zGl#hp$vDsO$fAtv<5k>An@j=0W!wjM$0HdUQGLjob}k`<)CCISno5FpJc29H8yx<1 -z)-9x|!DMGE!up#Bm^BO!<)qq4Q$%os87S -zc}6*0uOSB&nj(r<9B0;?DUQ}S@hkokegde*EwP@q;p;6I%DcN2_;g;dpsC-q-8Xp| -z7JZwZbF?FsE@g&QZzB=&87V)ftSWD!S>o#h@`HbDwVcuq7F(i-gr;^J$0gnyU -zxdAG@5RGHOU!YoD{bp;-H*bPstc8mrSx(j-8gaGSC+W>PVQdK#WrxH`zJn5BRV_g- -zszs)r0uM6vZ1GQHORaGUv*DbEqkU&(eFnFzXB&WEen(&mV&j_J)Zc*~`yS{5|iQ4pk(+aTM@5%f+f23z{_3ZXET09x+a4jPSon*rzBi@q$iB{7_78i>Id*5P -zw~yBZ#*8i^TQTiB3Rv8We7uK``|{lXF$^`TdOGoSQJbc+Clw~@zJ^x0R$Y-22EgWG -z{@V%51PMgVC`HjRQMSE$JuN1DkjCO<#phS#^*z&}zj9AOC~D%@NxC=`>WK}p*Q^GO -zW3ykqA0VUwP;l#;ZG387`a@oV(QIkz6r?ONfv?-*RJi#NGv}7xNh>#fp(0%@?!KZ) -zVesg%D|>^V**jTGXQzPQy5c%B8~$=H#%s -z$>!jh(VM3v^yR@!%uy%1C}rH$fnpeJ+@pD@7|s_XAq;G`r98)*dP&v_*lr=k;LY4@6Hu=_KntBUiF#D@x}!gRZ?KeR?T -z0dP_4b-(MHyLv(rq_!qRs%khGC{VlQv`6q4F}>^%t*{hYtsIn$_dC%zGJoeCgQ(bAxcD#Ex=0Qt$_uY62fisvqOH4d$gs~@k#1v -zrA6gVABcw?c^!KRuxKrs4FZfzssMNU_x+G6|DNV9a-_GXj-_rXvg0cNi{*A$OK1Uc -zkkk@liw0*DvMA!=81Jb||G7wq!zG{JV4Oxj69lxxXP;lg$DMRJ;8&?wE21Nek

WuEvwKW+y&)aO$ -z=niFb>?Fbj#&4`^RFbX?lUM{YB89Mq`$v)xx>SgMI0P~tg}o~-YW`pqtl)m>n*kO*Ypky7;pch{bJDA`UVm-6nd5@?-D-h%0>_`Bv(fx<YljH@);yZ$Y_d#AqFc9o^G%@Y7GEXhp#cso}#y -zURWgYxb8cmQzPOROA~=R7@}A3&F5|7;k<1;h_{Vs9=9#+Y4n8m{-qS&xwj^aN<4Lc -z-NZLynP-U=R9oD;PSO(<*dWAB27ZOP9OLGt{puhl-Jv&(&GN(nyK7Gzx8+_+`bC`Y -z)DCpMW2ltQcN)jdCBfg=?)?&!|NDL_>_icZa=w#cSY?qZf?BX9Tl7s9(90g0$luV5<8PpPo*>Cv_o0V(ect;(`rabR2I -zu&%D=@?^)%TV*gxM1bVP_Dc>KhkbHZpD+D5J!f>T!@ho?u3S0%-OrObhc+p#9kMZ88%Ng|wU48Q*a+K-6gys&sO9tqkX+AG+OH$OoCw=eznG0dHc3L=##%`l -zJc86*5E$X{Xk;k7X(;fK3?60Vm?KpDCk-Vo5)H+Wn`kJ;#m^X<2pWoiehU7d34#JK -z5z$f@nllZ>HY7|#;o?xcpRZjXvu~&r`!4E0BGR&wcTo1;FN-?PkBgJiFQIv1S_jEt -z>PYZ3hf7HRjZmbf!Iqcvj!U+6#6s}pV-&0i3Urvn$!vag(Q;64vVDVA8uyd!o1s+H -zbClb-7|xAzg~THc^!oU;HCU#VY*UBWcYlx!Af=Arno{;9#_hrffNvAomjKAgg^Iw3 -zc$zCh$MZ!II$q@Ac{b$T5zb}>OLl&x{wx35s^qjd9KHftZ*-Z$SBMgaui&4Bx6?`j -zgUmvCShjcO>`*JreoS7p?T*%BVtJrkzqHc@CR)%7>2h}HP1j!t+xTI5X5YiV<&~V{ -z&A>Rr@hz>Ycxf)ax@siKDRO;{Gn5F -ztGY;49l#xg5##0gcg1tVo%il!ui}>#Uaiq-lZ1QeQLtR%_rHdmV+W|9hg@^0|QlPuF9G1iqWYl*d=1`JT{w2Ud)Y)YF(iJjwpTs`$pS%snLqrD0Y@~Q9 -zQ(#ICr#J2?-}P+%CGs-on+W=eo3Mof-g3>p#-;DN05pq#;)0Q2lbgjH1!cwUa+*oe -zh2zd`c%cUe=35U-I%wUlUbZjKYNbeejM_u{kYfhW_P%)nx0JdrV}~$OY`88%Ktc6l -z@LKOp;c)VPN4>_wSg|^Gf&Af?@wP?|HL+tmd;L(pC2B8cZf{LVIRCSFUweYIx2IFZeuo{Y7^0*|Gu6B-Hk^go`aX-C=bM%^-67AQrHO4 -zJqv|Z!V;3+wXBEUHM&=ZS}m(@?)p7DZ$dMnB*xU(Pueo%ZX -zqNgH^%HO;2Rk-_>Sr7WmK=Gy)2!l%kc09PDLq-^98D;tH=WJSEXXKi!TXvv`5CoUyz>BjZR -zW6#yu1gPV-NHNEbr`y*ihXuS-_HptHX2eAO1Rqug-f#7VhX9wLFN6;yZTAmu-SU-% -z1`S=2ICub?o^v91uEYWRrt&-xkts0}q}MWZ28<8;azeS2SHkt4W|q&UOiLGeHpNn= -zrIq|SXdKvNg!Dn8gqW1j)v^)+CX6-#fZME*0~f^?+bP!#Uu2VpO{@u^1DdZPfYfJJ -zF>JxYUzJPjP9|C>cQR38cQWq9?%teW3E+C>OFwzPnYw!KlErNyuYb4Zg6ojd#<+iY -zL>)2RJ>l0^-6#1prS=ehQB?^ESMOmn#g=BgFZJ4WcD>}-A3NqxU;4lB%%C85-Tj)w -zLBlm>{SvMxZUFf-hLUq`>mL#9?M|waZ4-#rB6lCne&;18Hjnp0n7Ky?Cb%#0GW?N3 -z9~n{c9Z*Y-{=$j<=WA&quzP9(vh2VuesEEsu|;X>;g)bXM{QwSBV3A`q=K2v)jm$A -z9ycJv4#Jp$7lI$`qs3zrn=;qYjZm92tw>I9l3_C<-ywbaw-y(3Oa5meYadkVuB -z&Zz{G5h6Tpqk4y -zDVY-NMaY+G!188_gaS9HD1v_Cce3mUz{Nun$=rVs(_Icw`2MXX7CEoUDN<~o{M%c} -zhMS$_l{cs@yl}p2xesE<2)HZ-3dCg!PKIk3Ire2ABz)OnfXR4PM5E-u+ngRqgy1Gp -zfPaRvtzFnz-`L{WatnEsJa%SQBT*zq^Orr2TI0_s5e|?BBJL2t28g7v1Oor|9+D-h -zKD{>36femw|K0Z=+Hr=fvq?{mDK``e#y8NH-Aw`~RM>D;QDBiW1ZH28mHbNGd2`TF -zKgysZ1#koC6&s_J3ZA6`+-$JN>KEu|Wt7W<^aq2CHR>c2L&_QmCQz#&Ldt7K4vn!3 -z9>snGdYzTi>pxN+3^*C6PJ;a(=OjHhJi?;VTps*Wjm#@9Bu4G*Yt$B-)Zczs;4LI< -zwF>l0E4Q6ab}ozfI%yd1>~YQ*gS?|H_Zp)6Si5Y_i7z{NiK8Q2{OD~Q?<6%q`Hk-X -ze}v2?PgjQJ6!i%}7z0S5?uyCG1p6Q-(*x`k$@Bzl&yRPF`2um`8P&4w#u8Q#^XR#< -zI++@qvR)b~E{a%p(8Tg>NQzw-dy;j@kh+c^&J~T#@H$W@yfEOgi4;%V>|6JL+~y*h -z#okme-3Gh0u4Mnzt_v!g0P&;RxJTp0I8&Dug>jCxf~O0-*?!FOU|PahR#oqe$NId< -zXK+6lxwx_hS>Yb*Q?SWb`j2(Rhj^Q`M;6N^tRS8n;dp!Ld9kA&D^itvI}YWrWGrOe -zVBTht=2)c+8b0Tc( -z!JG(}t~eKMOjD1SdBomBV6{$!%E7V6^vF_Yp0}(tUe5YyzmZ|uTWTI!#vkK&6h2ty -zIQI!VVS?uQ>3GmL6ubnp`@m}TmGaLbrf=3*kGK@~`91mNYi%or){Cq;Hxfdw)hBG( -zTjc#);_+V@ss_2Ed`6TVPU>d-+pUN7YPi`kOwA-;opS$1y_&KqC$aMH*!; -zWp~@QFaqIl){%;QT~lpGOYAXVLkr6Z-jOa>NZz)gsU|UgK@x|0{PhGm|H2&7vS|m~W -zy>08M=JKpAkq!hQ^J>Pf?HttlU&Yw74Hf?gm-nRfu9<`f*^i9vPeM&Kt;hfF@FX(p -z5Q{CkAvrvmS(FZ__)#L8a!odsA?bsA)=*i$)RN4AppLCUD_ -zvqPuxQrfPSphhk!XKK`i`mW_4_l!_j!E<8=!Xw7FJ#h{DfWon-GAN02l?Ux}4|hl4 -z4(s-9oR2-rEsru`c&)afpdAin4$VdJ_w#d7g5M-9^%f~u>lr(KtObmG8#s)r;F(hT -zoiiqH`I@b@$&EwCrCBG))+q-yMrSj7bgae8Kkd!+9$TW=Oh);flW8u@VL(J$X%a#- -zBAnnT3N*z*O>_vjt9JAXwtgCQ``eJ< -z;Gm@srI07&wIcvC4YvUNoZN^(bo>7*Hjek1EVaQ#(?Sq1fogTCG(F*~!g2!3C``pd -zM)4KyqtI1JT>%o7Y_AdWk;9xNvFAPO(EfpyIb`NVYMw)8a)~oc2uO~Z4Am;%4UP_~ -zRW<^zA=Rq5iSj&f)t#3}BhBC*8FcFb_`TMrUbD(|(0;Q{eR8~_SSZ?OzGQJPJ>ko9 -zb`s_%ouIg@+Y0=F@7q3-9XGo<@~+Hojx5}nQ#a^Z-?5TnoTM&t<6+s5a$?kSMGNvR -zkxGr^iyQYV>mt_ -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 -z*fJ(HHW&$)wlYJu%T?j$vS_IVbQccReSvi##+ -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 -zO?im$`J1+JHYsT3ffoxN??o(aR?@I -zr6yrB5UT;SX2pC3ky@-=M~VxnBKtAt8$41O3~!tDO6kO1lCcWA)gPhl89|2QyW -zdBjO6v3*l(aY#)_?G}BX(s%9rRx1e?BUW?h?=W*76qHonw&30@3Z^5jn&K=T6y)b& -z+}k5Ewh_?1p>BKo&!p_;-_y<5{06^gt3_6%PAGkeM0l-Pl?lBDDQ~{8rx?+Tl-_6i -zcRqW4xP5AmdXA0no6AlVNCWhSs)t=c8qq0H3|WxzXNY7806l3U8v;CveaK;86Ul#+ -zO%+*&OJS?XI_J9BhwvdoZ2ZR*P;uX&+zij>-E3QK#8;Qtyz1xD!Vdb@`sS#6Rmc+L -zizJT?8{OHt^;h*2geU6CJ)|P|OS=C0xM3eQwLI%Ng>UB87&*NOA`b`6l42iXu*uM= -zA6vsvEWaj->yk<#{y5|dsAaNL;@?mCyjD>t1# -ze>(4MfVg_xR#n$?Q|{rkguV8~cX~8gRW`b=^x3~j+g|U|r_p$Z!`J;4S(=u|&TsPr -z_49j&YHvp-zv(pcmyYYcF*@H4L;DZjR079xXHJ=!Z)?~eCvSR9T^Xlu|x7Na4{w~%yRlP?JXtF%{3%EkO^r`;l|Q$V)OOJ-hI)0!bob5piqe8b7_-fAAK3G5gP~H-`!5!Y -zXZz3Esqm^2{kz!fK}-B1O@_aw$?~kdx|O7qv^}SG+z}AG$#! -ztPc&+g|62H4bd(5PHyk#GjxC@Vl7?rpVd3j>l3Pjm%iv+nU*lu!n=O^ZrvNVo!X+s -z2(@mToN-b+1z+uAuj7-we%{+RKYHH2&5p}i5oI&gg_b6oAL4AZ&jnYOxSCni7f`EXRQu4-ukqzuJyVf~bV$cGG@M0U&$y{CQHhj1e@jHL;!atYIZdVB{@g5j;#Qb5dO#SF|m -zjuRJ;p(bK#{x6ratDPI+`}W(3j+)h#jhn+iR%$wEGf@=<%<9sv8snI5dB|SVHgbTx -z&pA$ut$^cLfAf3LeC1Oy^nZ^lU)BezHVqpvI;geI?j_wS>fS4nvM}T9&B{NeVsH7k -zJ(0$oD$Izk^*JW$%5=Y6Ck~%3m-X)7$}5j$=Wx#zbV+RL-Tej`2jX&>4L -zVy@w|#hyjm#nvBe4$wH&hCd84X~Y>yFTY;7?Ri7F$~DX0VhzP*qY(<+XGBJ^v_u9> -z`I&4|vA8PKi*HkIK-zRLn%p{+MZsySV5`bCdVFF^IRT~p!_f44CkIY}99L -zU)b1X-QJ?VA0u{yJcVkPKEe^!NLW05jWME2`0KrefjTX|uJfF7U$t1L1E0e<58-Ec -zE8C?C$DJ1MfN=?LhpoBN#c_0^h?=i^!BmR7c-YzJQS9@)5j@#*Ex_e7zA0oL_Kn%R -zczffV62DJY?JISCSsKBM((kAG1y`5QRoZPc;4RD@92cj-tlYq-jcTen1%sgZH%p1H -z{u=KbdjB#L18rFB@C4){Z)m8Cjdk?KwC_&f`iD3w1lX#DdMD4KwhH1Jx>DOe8dmW -z6fuTv6q$nV>=*1wU;=mYAWq=7xfwtGXqp(W5mPb=;Lwii5*8{|#f~`aE~yCd=Jf3V -zZ^S6UiS3sYbJR-$P8RL(NDEmx)JXe{T|rD~!B3M_$tBSZ@T%MAoK= -zv~dU~&^d<)Sw~Dw!hvA{4R>}pf7h_sspaS@**e|b&B+B!Ix4@)uFT`5 -zR<~WCuM3R6HdU+eJ;XzD@*Co^!kh%gVf@9{cduSndnv9yb{fCo5@liOJ%@VkN>OQn -zvZA6Y?@5;aQIW-jrV6b3*AMuYym(U&_b0wPX6?zv_R -z<10GLlMWJIs*S+%(Y=6D_ -z)>UQ2G5gH3?Fy$lOMSz2`GfkaodROY*LPW!Db|(N^=oT8JIYD_#|`o5(O$KW4N#Zf -z&QHM2aGk8ZvFC$I@hy}?`ZvTbzE2H~RSx~qOhV18blJzR0H -zMy-b@;9-Vux@-`A8*aQyT~eU)RH);e -z`o)H%@=bp}te0QkY^V0)^|Ph-IY+6u#(8a8LO**=`#Q}RVs2MN)qSX}hI08XeT2k= -z&T;CQ1-l5U)~(^|&V*^+DVn5eLE!(!se67~u5HS>wPXiZobOzTAESo12F2NgSxnj5 -zFm{_mgkxK7>lS5uN4it;`#4_o*kEurwh{5WNg -zWqX6pm%2hD<)Yet>N%V$hiscwgWy-x7`-WS&=33VH9Jjr@0khgSFpA)vp@Y;JQJYq -z(0_wkpTmc||6+Ifw%ZiHhOw{m?T#tOrw6!<y12* -zEN@$CB;2)ma?(Yjg)fbwULWg}@k -zM3IpnN4C0@Lyax7xDpKC3EuYL4NJAcCOvOzEM#W;rkkm%g#hEyo7kvp7;P#($Vf3k(tmO -z=d?E_WFa7B%E$p<7Ga<<@2i1SdY^MpAA%2>FVKQ1@RPW_s?lgk#Z_xm|83*|%hiCW -z*a#d`dOg5IA;a3Rt;X4Q&W%S&4VPEHy}f$#;De`imEXnMYf9j27EuP%?t}B=?)7L| -zK(h>&|1#aJ4u5)CM>{Ycdk{!A<2Z&}^vu$D9}4>+hPFRoUxX -zJhheO+IE-pus}K!A@-gK%=&tp!n*K=L7*^Q37Uw7kGXVgk7jr|O4YdQenr#)0(t{~ -zCdlxXgvuDM102^2RMcZPp%sKB#TG&~K96skdhvo$VZf0c-4 -z`}XONH(|_pEWweLgJM>S3N)Yqu2dIAnv`e(^K8?xzkow}MlLM{5R*A(`@6WVQ8otU -z`C%y^8s3@)*lIZj0o%0K5Unb{SA+~fdLb}vT&HY=1c&?}OH4Fj0Ve^CPD7F`k8Ws) -zJsIshBJEm%Q?A1h-TNKadurN%2l_=gdVi-jZ}j*r^>IqVbN04BB!uNIAD#qVYSJWC -z0gMssadJ(mH_;^JMco|i7w`1Y88lT|UkBs7RgN3{*3h+>Ot<6_G-?udiLQ|h9#&rxa`6Af#- -zwsNkxZ{~a~sUy569GGd&9(rhF)cqF?#o2D?2jm8t!mIMrSXh7n(CF(jM*rxqt&NIZ -z67nBVr6|7?V~`r+A=L^AgOnx$-#Z4c@2;@Js#`F@Y%&N5B+p3lLg2nNlW)sI5%3Ok -z3&5Y#zo0nVd5)oFh+JfOOM=!@8Q^?^<5mgn^NgLqQ(Eb2X-kp;pxp6ZPF#Ur$S4D< -zfS2jr3XL*2CAnd5L|qz(Z-q;hOns!~E6O^MB`oZkZkUaU$=V2+qumchR -z*j+B3k3TN~{Xi$L2AM;;QGW~B`~1@}8q9NyDl{~h0$AwZ=p!V6?CZ|@snNAgnW8pO -zDH{X>)m)B0MlOI7q%jnAB#VlxC{p@G!YhzKo{<+)1hD_q^L~-Vm|_MY=R+LKoWfub -zPjH2hm$=LzSm1QkX|o0ivcK*XoL(Q=dA0R7>BP9klTyeK{`;ZDNfKBlb9ExV9G7R) -ztduUV%7-tzsQqwHS*aw4H013#|GS6QeAX>pb3{wuwrY_3RSP{?@aVEytNB#+@mrmZ -z>-3s|XM~FL=YdJVQj-joVyN>?%ak4)JtB0$P5y@~H~w1`*bmL5kQ{i3AA8l9W2yDg -z7Ogvz^;yH{h-qcfEUDHHikOz^dB#NJ+vC6}tC);8RKv>P;)i4CNwjm;CpvcDCH1{(k<~ -znP}%VuZF8>3EDME>vWrppju1on*gHFaP@0kEYEloJJ#q)Dm8e6hS>eTOTw$Kq~bD& -z3@s%53+%s>gnwK9q|+0<+N7(6t6=GzYAmX3 -zv}sUO){uyR<#vP6DFhpwmamf-!OQUqYXufq--jnlyJK2Vcvm>JHlLm+ss6XE8 -zMv5Ij=(clZZYf|o)}AS3;}~xFzH51(qiF{jGxamyD&6$xwAsvnF}ybK{GwQX7fnGs -z^4CyvU#fuOYUR;{4t4Qqe-deEOH!yRM_k6CkCsSDRf}O3#lA;m89&Iw_Q|?P2T$7H -z!lJVuqiyJWx9r!IIm`=p=S}JHkaPYG6S?*O9F52=g`@zTlSh8Vr#4~sp$|(|bFDmu -zm#pQ-`NTo^c{Q5r0k;D55@*rg`gqaR6hSYTs7kI27W<(~H<7 -zd?iXlcXe=}5P&R=y$u2cgi+*?Mw??>j>FLcPt2i>}`NfYb-3zp!GB<=iDe>T)qg-wl+9oX2p -zMOh4+AE;1kx3{|y#zzP(w{5fR9hbH@eUjWL{o7T!2N-MSf%#cydOc{2ugFX|dgFu# -z9N5atTuG9ZtuW3G0ZtuyL|j&zg$Ak*A)3}%+n031{c37EW4DgtS{|e;fQUjrWF80P -z6_?B1u#qnOE5B-Q!(#pO_^gmt(2cGkLVJ(%tihxUJ!Qq-+=e!YMqDg3>aTXF5~?>7 -zO@hY{GJ}Rc!SQE_P9Tk-U;r?zXWVQBK{0)PTklF$ -zc!DWi^_^}jC`ltNS<>B#>yVKsLI@XP -zd+m8IUuk|))!|m$RapUIY=jFxoz*X**I~;4`9^`(zzcNkI;|rc0km+@8B^fRr&=Y5 -z4LH(SODI$|#yG>o?^+t&ecUWI)_E*%0HzLw@CyL|ZSnEXb%{pV^JCnqWzv4?VIQ6p -zhxAlfvCEBO9^@h&BdL2sYb`HeisEis`$bT}3HhR@Gj>=Zz-Uh^JZioadj@?vK@Nlx -zCCkO*&AEOMDp^t%ow6)*v=ycOo=E=168rA9G -zf3SmHfoFAg?>FSmw=8p-oIA64YU~*9{tPegqCogFp^pdXI0MgDw>>aynND-Nw7~{bvn{-Up25N)T>h;*Nsc} -z0;>QgliWUZ003igj{~{` -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 -zRte-K -zNdb#s;g8ALf_sKTKe#rn+m`7$a>kHMzo82Hh}j2h6!L2YV|@Jt7r{0hT!aiIjFlix -zIkn*kgNYIZvsQC_e<3%pw-?I|v{Pti!0%AV5LZ)12%)Ncq8pnoVV%7Ei7ESCph!Hp -zK_Y=6rc`Wta&gy!4)tf1akpC?`okHbAG`%`!T5dOU-{Om?d>y2CksCdXBY+1JpIC6 -z^QGx-C+ob(h-;eI&+%`ckpmiyK!(A+a2Pa7He^f%E-@bHR=99!!%cU~dqa(M1pJ{A -z%2`2o@RQ8UYeLMWJFRHfm}|k+8K{Ci#ABUEAtSX|DrgF>(g(sOS`?c>z2usaP3)l{ -zGFZTSjW^oYvGRe%QI&WlLh&rD=1UiaUH~v20xj8wiwY&7ETS<2l`a_Bc$R -z#3q|Ct%BtS{0s7S{mJ|Sxey>avtj4V4TWI_r~o!SqIrhtR}Ymwy=h-k6Y{uyTDb>) -z0OIO4Wl^8PqgLd5i6MVbWYrMqtFAtEr!G!w|3h1g@=l#XCpZ->^3i!&l_TG}v#o33 -znLi2M<7S{^PbZ~8dVd0!T<6jcbVso8;6}!Z~iO-^` -zJJ1yQV^?Le{(0e|forT%5|4sx&n_Ae-N_mVm>+KlvjMnCux=%sT{O;dx1PE;up&g% -z#X*I+$@2l`S(PQCDmM$vk7l)n~@mrfC=_)X@}rZ~JYE-Jy>Fz{*DrgzWbBsLPxy}oyAyY_KqvX6Um==z72 -z)|Cx8f47pK#&?iXOSn&9PWKd4HSNdif|qn|6iPHevDK9zM@SPjrEqGdPz**~Gd%QZ -z6LaG<6O~ehaOXLOyV?tPrCtl5$I+?venkc!W~0=a_lnvDLD4TbVRNWBe%$jRx(fWy -zmM@~%*Zh%rIUi|F>ctm_lyy@aiA|yc^xdl~1@8dK_1{+^E7g6MJnDdCU)2|JlgMe1 -zo3vDnJTL}I74E=Jk_L+TI!lqJJWSe@gu$?U=L4fBIW_*P_|!LRV0-&(fs$;&&QpTS -zc&1or6xKBlNKps`VYL8bf{VZjHPIlJz{WP$K?n+9b-0LCX4gxf7pVEzApVn3U~pi9 -zVT~xlOUpn5@Z254AYs51bgG+4upDE{@3@Vn|3UVepU;Nr?^T`gb*a7~siSI+!oCIo -zt2#CpUXrqDjX0frHz=(ind{RUzmRvfKz#~wF=bAT2J@ZYwp1_D`k=@ -z>bpw{`3UeB@SjAT_75wr&(Sq0Z%=$FH^MoqBuU$n4B+^jMcD8AeaL_)W>|zQ$hf!u -zlJ0btEeJ}}zDrMPK2RNgq4gF#0ohy74Nr&P;h-snYQHwarn#406!|>z!wHw!>p?Zy -zV^3r^#&kLZMX{@WFNTE;mdLiSfusu{o7GDDNI+gl5|GVIQkQm@Lu;e1&jDY=(|tBM -zUXnDyj+gA84cyfw`E>)>j3YOmweu}<;03A~c1YIj-*Nuq*t4g=d7;WR!!ubr~gzZpKnYFp_XqoE><|>m-8$;z*wg-_8Q9$5C!1O`d5Ah -zY8+j>;{ztmj!&jz+@H7Vw?PMNeDqX4xV~pNpI&Rxfk~t3)PcNiVYQ(*9XkL8Yk&Qc -z)tTo*f`9yWAe&lt7jyhfnBxG -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 -zib*(S3ZV&*!wIFasaH8r>KPBus7)$!)cxt@ -zvzQKZsvN>7U8;;|1N+|Msl_INw@e>iV{&1Rb% -zVpG;tP7s66&u7|ry$`ZdkrSIq2+@JwNWk^(+n^Sdn}tuHFq2L5V_E&}b*68^t_!y< -zZcT_=RP{cbW2InIwZEtI8|2SP;wf%zWbzD=I}|ASAm$jVY9C#vNpIdwYGb*@tOxlN -zZz|DEU6s-$sR{9s7P%3%)+S?0=^qYxm7w?sgp-!tEk%fv-W~Ej*&@$#dSUm+a`^2&i) -zAPR#W1UbSX{RhEdghNdxjU(6<1cZaHo)1~_=!XG&muc#L(YSvWC1CHbgx!Kt&|J>` -zERKv}_j4Us)sInV1PZ%`zmY-!e5?p^IQ*G}BEcR_2!u<8L;`au!08yczmk~AKVv?j -zLlMae2v=>f4?i+^pmZe5@e{CMhL%Ne8H3sL2c@yUgqTAudaa*to89{5&rFFYV=t!0oVJ5XIA@&aFb)*qMgC^FOEf=fW&)+D@sF#8Fg|2jnM_`Q%o}+8C(n$b -z2=Ol=j)YRJ$*fd3nz9xLL{`D(hd5$6x{o)=&SjoNDo8V!E^6$?p90;;43E9Sb`#Vv -zVtT`q6{;fIhZm+fP1a$=%0ohRMjT-VBf^P09+tm`Uhp(xs{?AJ+8&!VkpO_!CgN%! -zPoT*g$L2YLM3POR^7bKEFVN3w_qcx=k_~ZI`&bFFd+3Oia_R`;1EB`B(1%rG_bl7#TZ02kD?vv_OU1)SMaa -zV!^=-2lIVE&i-(MA*WHKYqu$kY;3GWiG5ymx9|9zAuYGybCCI=&+30elV?5lrR3F; -zv?PQ;r|x!<&yFFD2G8z_YktJRk0oBx)GBW({q}h;IX}^6b!4J}MC7AL%Fx(NY#CNr -zRApNA$v=b4q+NL_rWV -zt5eES7UQ&s$Xb$;6c#INTAeDs&{g>E3faHf(@OCmaDv?xCNo$8rXZ2%b65{B{rh}4;0Xx;kgtQ6PP$4Bxt61~aKKg7ytNy|kQY)z -z-aAo3OC&tt(D#GLewhXGD0&gF-Q1O7o3Mi5)QlRy89R~r -z4BexSFbR=!T(YX$7_fPwt@g89t!>LTKXA;bv#2@=|IFOSaHiTMTy^LKO1evi> -z^xS$iN93QlkJ#*iz-f%In@S_}YbN6$*P-yww?QW##OwtpljhOBzT(C!PQ&OIoajp* -zThG;v>2BSGFrFQ`&~^ihj(7${0l|STSa3-atX*$e@eQbo^^ekQOP?5}Q&W -zX(f_N5V&+doD4Qc6M<4pfhh;=E+-r!jZ8Oa#Wc9{JVhrJqT(nG$7t=x(c$Wksr^Sj -zy}ewUu>z@-(A0i-F=1<40g>M5l#?KMGkrcY5S<6+@m|u}h@c$8mT*s)`i_WABOsG> -zy3C*S8~xOuU=EgI=n(00za)Kv=#0tR5Wo_?cftUR1Oo&$_8ra>Hx5juhyooElxv_g -zTVHd^BGyUBulAsPbVVYXOTdZ)t}O^cf?z-CR|@H|!Xj_NIZ;)hM+KY{74{V-PKoH3 -zT`?I#YDI9kLc0(%Q0$(Ci|1m89Kw!8%xUt^zT>)$M$kgKty*9I(T^8`KheA#dzW58 -zJulH1C%VN@pLNsub5KvAM|FfnFPSq$P9(A!r0I -zBQUqa_eg0KhCR8^XkQQ)o3|#wSkM;F)t_sPBB=+dQId-E*=}9f)PQD&8Ji6Oe9$IG -zi6jV^gi<3xq&IpX1eYkuITSO_!AaB!Y6*R0&m{bbawB0msu&*svITMAQ0u`S^XvLg -zC&u+Jl)q`Mn+(Ehcx!NDqBA!QSzv>|%Bg4+ldfTC6zI_YL|WC=o=LEHtDT -zB!)wnIkF5u2;@u6Oc3U4dWt^`6pSC_e_1Pog6UC{h}TaV4wfxSlW-bpl^fb3+5g#Q -zfOOVy9}2%i3ia>*{A%JL*yTXNm`mc+@d-((1UUcX~naZjou -zyfv3?D3Kp`u*HLFOCuTR2#j=wC-w6(3D7`Z%NO76ySwX$Ig2fya#9ws%#G6C5^ss1Q(BElsfKjCu4 -z)>9kS+i!J$LSFVE&u?py^0J5C5**o+mvPE#ic35>qF$#8p!KpO`hsz5K6!a(`lTm9 -zVQvn~&>13jnx#T -zGv+%Veji2tx6ACHFv(E^b7K>=j2)q`U;FW{G_iVL=W)ft*d%iunm=tke>rIWs)J;L -z!$>q0k_YyY?zhrYt}iONVn}LYMdrp4`dZY5_smiHTEDG>xP0#(T+XB^l5BAa&-$jl -z_`1mhYM@7VbbtX3_rZiz=MLj>{q)OFa;8znUsd|Y7JlPPw(QLr^Z#jp7t*h~Ijpgj -zT`?-t@6OtPx`{%iX<uk8W4rt#F+L)2z6S(dD47hD7m=$7Zdq#?VplxPo8^$dMZO=$CysQ22@`7R9 -z1O%<~V6>Heo`*mnlof-37Ct?m7vbxb_#7(0=Mcsfaf~Z_V7a&>EbUK&35MU#ve1f*Y$G(iUl -z9T8ds1FM2iX>Jy-MT)Pd47GoRpg)A#-$&3NLM_4`YYavOv>2U^$z!;x2C$ovVm7?D -zn*lLHVMDHfZeWM1Lcg$OMWM%ORW^Z^0Wm`XMg*W`fY%ae8Q@hE;Poe!iS@YgiHg1&twv~=>w(|otRR5$7cc9x?x22Fhl@k -zTfkB}m;w?g1}vSKV(5|%x|D~u0ZVOXq!`{*IE0gg`~IAn{sm0|pQnPRQ-)n!aR!(v*>_y`&zb4>xcWn8I>NX`uS|#^z3@aV -ziP}=&1pqQe;%Te|z)GX_`0Oab=z-sPod>h6Y-Kj0pPdi95Ji1$jfv`O>mc}))MQUi -z?!g-gCGJ9ii;{UEXdD9A9rMDR$PvIdg9$UES`3J>KdTOSDg{;4pe;bvu^A}_M3us* -z8Cwc%1FnwENHIX6qZ&SAGJv?&LO(qix?T)JZ-ALYk{HX!rdb^j_2Wj|x)Z?dh70&9 -z=wZ&6KHq*`f0LO0^tS&p*6BFx~!14@$XLf% -z70^7wd-JB8vlVT&pDItk($oJJw5*Fj)k%k!#sHQ&LlaXwWbO;og)pXhLWRbEmTjbx#J}lgH!kf!IpAS6o220C))nom>o$#7qrzzZB}v77&@F_wbvg_`#~-N-e#%OJ^NatZWcCr(ftq1SHq{8f -z=?Y9P?w!Ebo|tTyVTIRWpq|BWO)#1mBQzEMM#}wSdh4D^s0HwzQK$v*o)XmJb7RUC -zb@5ZDO$|$@Qn8Ujg%*QlG=QZhfaP@n%NGEa9e`}d@tzI_GCSSsfRdVkl3?Hx1S6Kp -z0*54o3>WbsVG@ibkn32N1vU}opJ>V-Q+lA$w&R7;f*~a6I}!^hsR<}~5pWHRS}M~k -z2K}wMgy6B4)C}i;876BEEP -zSt8BtPpoBM)fv_pJ47+*XgyDkv=yK{2kE8+{5C-NwZMKGNJo$K!I-K2LVwGRE9!uH -z@;96Yz9X_Lr*FB^0XF$lBD)>8Xa-maWBhX>D?H;wb_UROc7_6?kKYoBQedAzB!Vza -zFu_DZ0*HhtCK77BvcBn8lQFQAVkNmP59T5MSbNHcw5OmS{!W`aU9W&2+O)p<86Z_) -zIfl_#&<3mpq*VlrosnW+j2K$rF`x*Bk}Y_9uZ2Cz0{w#Kz#q2j^eSVt&;pMEMKEdQ -zL(71rEEo%8_hDx04-D3KI+e@eZcqrU1@u$|n4OVgeiz=`Xi#hL{y&S&CNy9+S%+7^ -zS*+a<1+&Q&xW+3&6q`*{LGj6d2rrJmn`LR>;Q%rH0a}ePsA{a9iQ*u5f2=T*@Y0O_ -zbC5b!N3G(i;^dSo{)YgSG@}i -zU}CZh>o5+34&%RGSpN@rVYL8LwEz@N1*QuA0;b(SpTM>i47ROefZG-_(0EpJe}nzj -zSf=>K?k)h9kc;?@FMvBjF?N_x;e!3xl`k3#FG1M-0yG4ssz9ZH6}14sf)l|Hih(*J -zx`7z90H)e40Gi+!VETu}si0}Ch91D?F9=qwV36gD0bW~x%US@)PP00A2b4(wIR)1N -zL9k*4gKS?6;Q1t=~f4FDgopaoCgHKiWLl2tYRRiEdaO!z-7Umpls^ZLE?}A -z83x=31l0h@Fh}}@hE)YBKBA079$4Qx2AAW5MF|Ta0r+&`!l0162vbge%r_Q}7+g%h -zx)rY&BMce=-xzAadyy3Dy1srGW2!Y};G9ZDAeb|Xus|^5@tjPBiB6>=5KJ@NV$}>$ -zRv?&N(Be$#UO@pWkKZ*Na7XX}H^g=lIxI;HfCsodmL%u|@bwOY34TkzyVpp5RfYzJHWg|ckoDk<6a%u}0c5QL8ruc^fJsURXly*t*b1Pr -z2d7v49l+&rfJ-reOInyAGMGf5vGIVe6@aeOtq$mV9B8Z6`aCDLAVtfrEi7M8BTdaj^OgL3Rb1qAY6q`RWnykcx -zbE=~M6zUZNSH`>V7h2RQSL6n!3B2(Cy1JDN>pWAu@#_VD@a~^^W_^hWWdpBKCwy#p -zgK`weg%3Vfm_(mIbpTNd-#qQUjxMM0*H+VM6Q6o-vO$D)vF4uUS@#EcL6is0K}RB -z#0mq%Qp2n-hUXy0$AuX{>~yOGX1)Q;Gy{kg28gAG!FWRJa?mWrhtu&5ygV~F -zI)(qY5m;jVK?KV5SnKu0^CA!kCt!jv#sr8Z+f9tACMYl{d$9sk2@AD6Sg5twiG^BD -z?B`{O{Jg*h^_?FVgsg7Ir%F5kH;~1DHdg(j;`Cx$|H4z@%=nS{YkIM*UwLX3Jj{<` -z5=gKb2Q2(EXo9BhXAfM0D=%3kOJz~DxjlX0Iu%=T8kLF!kKp0an4uhxs!d -z!8hEuk%AWB(+l8J9^f+)(6$VtVjIL1Sb`Q-45;jMs{`SY2dd+P37RG7UumaTyud*N -zjYZ*GqewMAVJyHa3m-E@*eD_Z{89qzMFqeG)CU`11xhi?O#dze2GSn-VC1m`tt~C+ -z7UTgbBLP^;FtD~k9Dyac4Tu2=r3GO10$`nH^;|$oLjYDj46JPsM_>s`S25tMv;eGL -z0Ibuk4xH5xfRzseYa7H7Sc1}33^*$-a8@tithv*y4re04>zEIg2J$_gqDkwg6=x7u -zp(z1~UnjU>;WZIzj}H$COf_1;4MPntgjBc&Hw<0^^*~C~fge#1R2kZxQH1@Pab>3H -z>u;oH`2~IbF50SVsu23~iocPXZP3yC@YGGNYLQ(9TRTV52d#4cJHsDu8eT%RekeX|WJIK@fl? -zXk5jBvl0Rb2k8_tdcH#4E}WpEzEtaaaQlz>5fmlU#roRlI7F@HJ>*!vJne0B&0WZY=6Zq+END)7C+SXz`LLHEtXGq)14K4nW -z8i2yV2jwx4#5nQA+y5{~6iWETazp3Nc)GyF9A{^P{0yYrfI-db%CuW09(}tNWBS=I?d`r0I5_!;1}a# -zER7f=mM%bQ0_p!0G|f|K82=P9hL@|C@oc> -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 -z$gwY)iF{Jme+T9QXZ9{$NJW| -zCCqNH=+gFUFP3bSbdm{n*>cj!vQ3^hjH6gkOu0LCr+!PKjbNX?Q5B;)>$aPhI!GcG -z)VQo!8PzD065MC<#yUOZfP+r1mq*W%zJ&LE4=ZvXj2yF5vsvPruDWR-*KDJjJ00<# -zE)x~JIOM-CjO2hyN@ck+lT*e0`9|lHrO0F^5~*A#hVKfOymK$Uw2<}n0=^M{H+?s& -z6pqGEUyWw9O?8l4$V^1f%ccr;dCkYbxqeXob3J2&b<)XoRn?6k(V$NBFs -zlq?WT+8(FOBbm3Bisd}>`iE~bGm?ulGicHO35_JNcUzhgJTIpeYB=f#3>g(AKy{m`1JhqZ0i>N6(rr6H+p*Y(nI8`Q*E>xpI7JE -zQ7d}a@Y9=Var)J+VJWe+Nia_#OB~_X=@{V;+Ey+5fjW0f`a5w6&;I2Hg1m*@{qq-a -zTyMIb%eMYugKll^1HEqbcbrm#reoq8g(bt&;%@hGk|~yS(8@n~mgnB#z7g)>m@QkG -zmAcf-k&^oPdUHmtn&z&@J0hxX#VJ#4e|_c9Wc_){+jxZwqCMwzD$iPzko?j* -znmA;M3QgfM(~qADm5FjxZ^<;FX_u;E-_A;z+E%@1)>xj*7*9#K_U56)VSk6Tc^x(U -z5lpdm`yH%jT^u!ytP&_DcJ5d{>%2@+@BOAdPFYK2KGK@9*ss|sX{NK?1J40kLcC2R -z)=uqv47ajnOV6sVkmod8wtsb5PB_UCPv;9E>U(cCyN8GuI;3dCE3X@2s+*T2Is5(m -zGZtBqJ=ffLN!C4Am-Qv5S(K4(X~DF6dp9X+^=`2L7MH6n2fg{KsK>cn-t)_;uv{i~ -zSn5Vf_fc@OI&IEvY6Hzio<~8${6-N)^1F(|7let_hijy)j-Jjb(A`z#zM~~F-ndlo#=(RLLG|{h;7kIb2S{R8Tbb -zYO~eSn5E%ovNy!@WtjG&u~hlzZ#xn<6cLuVzG95(pk(*0Pl?KpQm^OwzAUwlFXZK{ -ztmBk*Epup$UUj07tm2P>_MggO1 -zf#wcOj(Q5Io8Y^b62DC$lkF&X$o!!$rAnRZ0T9PEY@_^8SWn{Dwk>x -z>```W5k+kq7?GYN*>I2{TCg{0uJS%_ao4C4^Tt#Dk1h#DIC6%}Iusbd8nJ6r5L7lc -zYGARXGJNhvo4wI9ny#h1PLiqQ;(3#|w-qd!T#gpWyBZiNW{g@bokNh -z1*MWzb7bkuGv@6oD>)L9BFRByBt@lVAMM}5?NP4u{y3|+PnaJonUCUKzx=Mc7Gity -zvvg)wF8uV1(F>kc9*lIeS-fc( -z`#@QQUeK&k(btD^9_WdXwrF@~crM)Lu!QW~ilF_+tf!?BF~N4rBkPC2MNa#vua&#h4Vyuz*% -z3b*B7jcseQ?Of1tU(Ax}Q(R}>ahRv&Co5)~YO2_txo0Yto^szW`bpv14ZR~ArgyRf -zYPK(nC3;5dos7q6A3fN{HzdDw=|-Pu+A{M|7COlh)7I0G4cALm-c&x#e4Nj7Q$jAt -z`;1bnGJVXMhHEMbI?6iqt?HlXKG1DH((Og`gpa<9oYPNv+YviI2UcS5*Ncp;__W)Z -z`FICZ18fg@-c_OWrDnSL*2`rKrT4`%mo1c1Y2TQ?{)?bkpso-kA=FE&i#oFopY>Qs? -z`dEuzTa$g)Pj8sxRb8n?T;P!MJWL?9sfK^Fm-_xPPJ=*QeW9~PTCrn-%4_Ilb90(o -zTtx7wJl7w2d)j^f=Gsp$;#=+T2zCZ#NR6#rwU?QDZ;^P(P}$i-@iG(>(r@>8B!{D~ -zhg$9s#bpG(m8e^z73o;Hqxj}%)&kYrW3;yxW=oumS6e)87wOY@{iD)XC35TJ&-1+3*pJ*pmGo5qiGfR>eC%&;Wh*{B)DmhY# -zaSN65&C2Blz9&^q)t?9|;Ca!)9^Y%LJ*!GUJ-dK>__9sMy6&D?ij_|qm&)6BCJ<*l -zJ5s;7zvfo85kIYiw!?(d~$Er-@UYh$Ntq=P2;)z -z#*JJ;1ASo!gMDM7s8+=uC}l1=^Ljt;3In?p&pvUV^*q+Zu`Bajoc!D3>ZnHXPO`#{ -zwTrZp_~RegE*Z9RS(2$|_u}c<4G&Mp-cR4PZ8q)dSYsm{R|?HeMg@)lHa7#m*h{3E -zDlN_p+n>bV%-d5OqSk$b(L8~b_=cOyMicj3X|hF4WrYS}#|I*Pk(csp(n{}*4o;gXT4!0et9V*_iVf&iQ%_2dU$42y@O4;Rxv~m+|L#Idk -zm6a*82NW)eTea^Pdb+&7JpYOMhZlK;_xXCS?|&Y~(Wjy2Ah;vDfVq#tASml<8bj9V -zj9%$93e&TPh3{-S`;g7<)5rBI53KcDuFt1lT#&U)=3sSWYl-E86?!qXRHs>a9$ulD -zT`x(rElzph35U~&NaWH0wuf9XXLyRNm%q4VpDLi=ZJ@oRnJ#{H>{{U--q`!`1BJ=a -zF=XuJAM?tZ;Af$aJ7OC4UU -z-5%ZHN}p){s?b)YwLxO+{)d&CX(saMj_d+KfjyUd%2zF3lS|%k*s-+Px$w}lbeiZP -zhK1&zhW$9u;nJbisw^dbtoqn(7VBec%lGtp-GA4o$7{V%oh0J$fm8R+t-m+_;%F?w -zg)QrDjVxjI<+}P*Q8ZVZZS7jmtRS~dG#VP$rL{@2-dQHttn3K#7DJs9$+8oT%n!cM -z=G!^eG^%8JzO>duj-h1eUhdnaJB3LNHmfp*=?SV8$%h#jtyN>CX%e|5<-th(_AEPxbc6f0;-PVF3mV~qW+38~rfi)}U^y@j;EMK=a*JwmNe>hL$eXO0F8O9*4b}t#`O-0ZIDVzDpq^arLX_+nQ1$IFEh4d1Kvt -zxnQf{o*R69Vj>Zb>K~-~1l~Ll6?Syd%BaU=E!zeqU!tKMFj^kt8RC7fe|6=#;r`dv -zRZYVcjUg987-%H|PVmzozcGLQ5nro(qXF_(XIk4!*JB)fFT`=tC^b|L7wX%%1`1b| -zxdgN6_FmJ)Pr@EvM* -z;!I;Ho&E2XZ@-_fE-JLcTW(g0Cv}r^@zN6+d+hCIbs0%^7_H|mSr{5VD|P^rqMJ&~ -zmVROh_dU++Qq5Fj-_dpHr0|%kSI^#yOH=(A-#cXm -z>|19ZM;>KuEOk03;GT?fI|G|nqldSIWHwqFFliR-b2wl;0C58NS(&F5RGPxmjqI_M2 -zj88OcLTQ&;*jU(&t{n?M&=ToyV07Df87X7i%x%Cy{*~b -z4RyaWsFP-$V9Gg@fyE8Iwa+*dmM++8Nc{TZtA*wxLg+Clh3H!3m(;F!-;%RqlcCIe -z=eYIpp$b-iA -zSS(+vX{h!p=sxQ!mZ)TOw#8Q33}g(klVx%_82f}Ph=_VgFC`Y=IWS5Yvs-NOfJWlZ -zp!0m_d2vRLNJI5b(75RmeQ~0ntY3DwodUqHS@J(M_4K<*33)W -zG^}Mjf^ObMHeXX(dVO$H+p+nNE!+-yF&r!Vq_&(@WOMJPOZgr>_4WGQRhHV_8ZD8* -zG)sj;V$2)eP1mJ{yliw4H&@(8Dyc*lx_I*dIyU!8-N>K4H}J)Z{0A)th>nIKt!To7}p#Q{}T#Ns&lT{AFdFf -z-`4DMG?`60K;5;S`WCKSIs|h)$#acnO>$qRWvkzqB(RVt{;OJERS$i5H}xCka+h>wsD&$ -z&rUT?X)6`x8+VC<4lt(Pl<{L?xOrs}dOK@LvT~P`4uq{_*&u)T5Tn-|^HQP9k8c$7 -z%re3=;$tYwqA{m)nQ%XynqLztX%+KF9o1Cd1r|x|u~x(n+T}oP|dsIFwHAf;U7T -zrK`uI$1ZA~N5*a_ReGF6wAkNRw3-`FPvPt&Q{Sv>1Hrm!qHj;Ws@OKlz5B>V51}Rw -zothlMZ23|=+=fke!yVj@aGuaMrMmx2jK(R8<1Le+hS;^Gj|TIH-zn&&2{dkD7$^MYVO4p=v`--O<{fIF>SRZk`9rT -z^%)i+;ysTgV|Wr|&Y2(7am(wxlIPZREw?PsI^qOgxu=2xds1RXOe>Dc+`Ho1oxF1c -zJ7Lu(T~+YZKcu$fZQVcvPliG5DO-W&;B?nw(xj_?Tn9BmFs1Yhv$JV&V$z!tS@U}&k?LG}%Zj-VHDHNspj+BR>m -zD6wo3k*|SWR6JkePW7$;@d@9I?B!L%y|G#G+gm-BpMM0)^^QzKs@hiJ>QQD55AT%h -zx75~0QlG9&%Ng#-8A@_vy=vANm-yl8<0UYV@|MG!TLPJ5o5h1FyF_vi=FyHTA4_Ol -zMwFh)nWzj;omC#`$g*0iMx|OLn>G90p3(5JDrWh^-Y3LZiY0G15AD&qztC~>hZ_$X -z_8GtyHlVz=Yt63Zw>kQ2kL(>4Wz;`*IHmCItedsnIrSv)L=BpUisLeZa(Gk^$JK8m -zYFZ!iFv)q~Wthb=kc0Qd~ -zV>#qc-R8iy^NfkQ(^s}>Ka06YyJQ}BdCjIduQVUEU1W-A=HW_ub|qbxtVsU2D1#I6 -z+6A5CTwH#koQbYQyy)3jNwU(ilt0eB-m`EK{aCP5R?aAe=cAF1#+=op^|$6yUt6@d -zSH8;V3YGh89YXcsq(|IrZ*B_(Go3oS^Q`3h?4{$h^iF%=v4sO_T2~wu)r~uv_KK-3 -zIoDp&?m)>7z9yQWz;=86ID_T5HcP+EX7K -z>2o(v*ln^oO|(qZMez#NK!1vW9N~s7+j!ggZr=0Ab9o@mR-c~W8yfb|wRI)imNoln -zbgk6#&(Jd}oz2o(9E^0Sc+L3INC -zL0==mR+G*ge^K4)T<0P0)i1|7Q2km$tDW2~@=)9e4QK^2x-nbL%_xql^ -zxW>`NAulq0y$M(R*vPTiUi#kTwb2BGJ0%^Psrw|$Jt5e;=i@5Paz4B>FI`U4XI$`3 -z$d|_3(yp(#cs9L4xSIjtPVB_bU_n3 -zf<#oVG%j-8%u%h|w9X-s9$^Oi)A4kvg8h{5nQGS>I#>k8)pFupSTOr>>!N(!w9VpY -zty+p+n~)l&*(sW9=j+p4@b!Xs-4eP#n2312smChM^#gYH#O!$a%ny?1w`X3ZeNu;I -zqjktByQD~iUD*Y!UHscWt`TO+Kn~C=`ZO*+DeKkPlCgNAOg_njuE_ClXdd+ehq{2A -zQvJIliGt0#ro+Y&9k0?4OD5*(?P$=`={wDMgb{fs)6&XDk#of)uQ<*`^wMsioG4dV -z;iSS=CYit?mT|FEw_SG@=!_kHE4fW(r8`g9VS|V?$ra&tnT{RX!^NI3M44{nP8B>e -z#3#O2O=T_pJ{EdA($HHh5fAsGdVZaf4mV!xjY-L3cqh_ABDj^J#QV(4-3ET-)~_R+ -z%umps;$jfpN9}Hya&M6q?QFgjQDLR4x{Dcioo}+Y1(9mLKHi -zZq^i3duSN3_F9*3T!gz^6kV1)aR1~1MccN6Kl!fdDV%KhSribY!XC4!zq<8KUN5u3#Kbqe -zir*x%rp#R#b>7H8WW9=^@bP5QjpD?1#UX5mk5aeHZOb@W_~w!HhLW@T4a8^Dxz~@l -zi<>i44C9e+?pSz#g|UagaN`A&`6iUHbY|!Q%%nQco<9-RQVsRiKfFMXA72jWe7nqf&1v`{9qnZcj^JN_DD4 -zQ^GC`q2K?W{_M5RV!?A=KE_T#np&y{Z!1nDuDo`wiJpggoKVZ0cE|j2nhNFDs=|!h -z6B`QY7CO~Nc#-srXf+i3vo7pe^X#b$8EcO+7B~(Z+ZeTH=!$Uiy3`W;`}>ziOORw< -zQ#i@OaX8F(oATCqBx@vx4(Gk`z-P?dl`OO3XWf{io*Giq*FBG&_mRDtMa_AJ=Eglo -znpI=(j+4lwE^0+p(TNegC?@J)PD{qhd&x07r1MSoW|;`TZga*)^Z)$tOmrvI2dz$HRLFsgG`oiNPHr`K@OIwSYb=wFn=6EGg8zi^wRFn_b -z4>@+caB@aY(i`79pA#%u?zKq3RD!6)yo<@0LJmS7Jc>8!r?N@d9tUX{R? -z>uD7N6>)YJ2wuBpIb^JU*_D%G&!en -z*C`~na#||HtH-<`J+2V6vZaYZ^|H=hbOs^>Hlf*{yx{C(C1Y|Lb;teuTby1FGVBvy -z>P~hJouB+9S)rt6sea4Ps%QocK4Q7Ii-^}Tvu)?rjCr6=75iaX -zV%P%oiXlVYhRg0-nTn$^w7OjA+V!YJr9mc3h|&7G@G6?b+F;5j40B#t^qS9mS3uVa -zibphdXYsK03n^BUEtB1rZM^P?>1l4VkPAelk4K30%y|>c=O@PSKc&Bf -zm*sp%H5HcCXG~7Vp3>O1C)@vmeL9tj -zYqYF@V)mx$q4}O2)L93cJvEcB*Kmq*OuiF`HW{;U8P;vvh1k9K^zI(mV7mA~46DML -zq&lTtK0sVfH7OkRj9UG8)*!!78jX#aI;rf+M458&qkk1fBc_h*Kre|BK+)Jaqi5L6poIU1^=z5dOCEc2a#-h71 -zdfv^aDBRTYOM8aul`Pa7dW$iKWlWVm@H(&5mtp5n_9!=ti}-qaz8&c)TT50|g=)Dm -z7A3HASnZyLgqSd*hLCEj=Uif)W&w$!M|?YP%aC5-7$%JKRGq3HyQz=!tmFAj%scfm -z^n7Eo_R=2j6^L9Zes>$uoP}#`3W(Wv9h%kk3KOCm5P~5+nv{{txU_qJV=9H -zw=G6AO;C1mYxJu~psdPL2BCGs3Jcl#ZIo&0B#Xwm_B=7q-%7pROUW*Q@}2wbq4fj` -zy!;_W<&`CFGH%YBx6ipg`ZiHCe}lyA-Ntt@FXJKEET;N|_X+n|0SQt2w)I?=!Aggz -z@Aa+}ZE?)M^;lq|S?@85^Qa|VvU8bU)kpkwq$*F}`v)}Duo?}X#3nT`^oi6(AkD_y;cwXcU -zN`ie|JKu#mJlJ(ISlM?^AxBh}h|NKs>Sh=o7D8BG`B`vXB^S*pv;?jtsaMTE@Xd556Xh5mwxJ6z3=6w&}hHjNAe6#&T -z&bXw6owlBgJOQkp563idtmNxv8p)L2Smfnwxep5=Nht8ueV`p%aY|;CyPH`=^?;j+s{b~h4UuW@@Ml!u|Kpt>$al0|HNirg#i6HWhUmwv#q7O -zSGGLdG=Mrm^2h7C%)1<}G@L&Sr=NgYfLFgSGLwme$;>19gNB4?v_52K1!TC`Jj -zwnPy7Cmm{zqaUSkz~n@iY<|1ssfzfGi;WmBZPuTdXF4y!^%9Y2&?@(hYy`bZOyTt$ -z{`cXRtslpg!wlJ{oc_yT=`CIsd1(%OG(M4{JzSWZ@P!_B%S|E!DubhJm)Ln{Wk+v-MinFcb%;dL+Sx31h4p1;A^Lcx>k)_|DUL*}>T4KkaUdgh7Ne(%otP$GEJ7xVLpat7qJIQGsRT}t48g72|tW4zGrdvw84&*g2(m{v3jEyGmR{pZa -zPK|KsSdUg^G|@(6^Zi^8)f3-ybVyKPtDjgSzF`sRZ558k4|GfHNE_}=(nZGb{q;2g -zvy5GpyEMJY_2xf5^!(LR?X{2;YAE!k%GAnpK-t=m%gs0$MAqjMn>u -zujMOk_&{d`8xO6;%UhD3E7T?5x~SgV6VSb@{>)?t9J7NdC)(ba%~5JH3Keh;Syqd1 -zsluXhYxS-zkE%kr>HXh&^LOVLG)UbX*VHWj|5*F#psJtfQ2_y^BqgMzyOHja?oR3M -zkW>@|F5NASv`RNp(%m6Qhop1}Z|~*%-u&jx`}55(!)JT$IbCi@%J^&pXcx%X(Fdt2CJo3AEKNtR^iu;b)J- -zPTKKmxIn-=E+F#mWx*#j4ye*b(h(| -zO{Yc@^U>J$C#tXsQl-B+QGdp0*ex{sxtG$D0!z*nPR#YfQS)){QaC&EsL(t~+n3#Alq?Y&V -z{tpEgqwx5f;ZOCkG97%y{TcAyY=3094ATN~=`+&dM?b#@a!*Fz+%W6ChL|WGQ@u(^ -zrtZCI_Ix5es~j)?->LVL{Gpfzde$3dJqzHY{q)^`sS!DHQ!E>`zDOuR+Y<4 -z(oJSR=a!Tqc6#ZQwm!~TI6|`m++s-rF&K$wwM6CYm1odP;y|otFr?PjT8Fev$m3>^qmv)Qu5!n=__|Itm_9MQ{O)1n#CyBxZn9qw^*4-k}(t5zR3 -zJ?Lr#e2y3L73@4#DOpwV8@uR{>oc*Hq`aw@*7N>#W&om4a!QntUjKSH=HIQ+uBv{Wb8HTmXj)G0rUqz=(`H^?ed|EM}9QVgu9e=4V4)P;yank^E^21 -z?0cY%=udSA#1-QXbM$(v*E^rz_i}Vn>z}7|kdKrpz~ltA-M)+toGaR+l$L?0DjTkb -zl#hwra>5=}qf(O0&*Ny*Q7@i@`%38Djb*LO@Oqh9T(Npu0!mFg+d*kPTUSHYvP66< -z$NbCS!@~#O@ZE)}Oqcs-f^j=7s|NS5SBDm3-x~Utd^hJDicg(+6|bvxs8{!3>Y%;g -zu+CT2syA_*h_u}4*D*9Hiv<~s#k0Q>P_u`M71ph**Xdng)7+fcSX}21IpReNPj}+; -zO-oAN8Ce&7JajZ~oJtG>Rvq!HCtt&nmcI-c%2mccGUpnZmqh!H&LkT+I00D2d83d&Ck=G;XX|5VRqIBLP(U+6 -zR+bI6{-WWkeXAPkYiIl<)a{Lz+ZIe2qassEHsHsc>lN#nl*xX(vr1$X*{k#(-MW#J -zmrCq?p`8K?DodH?vj-6?FgbK9G4^_~iU^7@oy7i)Hud`Q_5)qjx__CSx69Y&~6IH!5a%7DT( -zEtd9|c@7ksbh{5B_w*1*YCeOnMDk-=Qkf4N_^uVPCcNyJE&LyU1a -zzxM^JVHH14HY#D*r?-5arVjRwH&tu2@M<`~Yx}hiXF*fkzeJ8rigtMUk*_mGp4<54 -zrr`$!^%XMSB@(5kh%C47TF$i33Q0TzIpQZRoMQ4ko@&W^2^Vl;>)tcGcbt&d;DDoy -z-_QSJpEVNv?5%RQf?9lw7@Ly1NFGTrQoEuc)=$kVYSA@Fh(L43st*^*UN56%-0mKF -zTp!cMtdZIqKL%^IXf=bBl%ED|qbll1{R(P{EpP-)RAkCt-f3F`vR0Ox@Gpn_OqpxM -z(9Y`%S_qO|ON=nN2i$Cn -z`M3hOOSN5%qFgXMfGp_7Z-9Q7ts -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 -zNg`eVy=MBJ^;JeOs3%*Za>PrS_>RZCCo(T+w -zi2!P^P=?z7LK28tjAcRF8AZzJ2rkKr~-3Up5xxi?=nPQcbCr%?r!H|Ylf5W7Y-t!76orXR{f9neT|R98a{Jd(-a8;6Q)$k2AyO@u4fyoaZ!m0& -z9n3eY(R?4EKrQ!=3;t;#Onpa(^c=Ww?8Y$!DI_!Mj1XDYa8|il5p4;?Zcc6wDsq~< -zy=Jq@W5n6QhfxKmCKYLnE*N;J7U#$c08t|2N -zBDlWl#yF5;mM#2(BtRWs@=^XE7}HxOGGGslQPZ2Ob8pyFxuzMfvCF%v>7&lPSg~N# -zs(1^VxU*lS5OZRtmZDir=!E)t2yW6#VZY-|b+rdZn2*A!Qq^TisB@{ci$H~yr@Peo -zRw0rJK3fIb1#)eI-JlQU;_(`9hQGie37++SiS5*K^FYr?2+ps4y#DQRo05E3Q%+wBC0I=b7_^zX^N)LxJAw#W4(yYgWZpP%PXR%4|&(XvkWe+$zJIb@Ng9Sh1QL -zDpAhj4y -zRHB9$O%yS~`tKuNI%)?w6buK$fYfW3sF`Gu_=08Dc@y<0Um{>mjAQV7+}2CrL6Fz5 -z=}w#%r&T1w*|PZ?-`fd20Nmi8FpeH74UgWQE#!MFQ6CcYv{!+BwpacaZ867KtGX6XbBI93%+&9}s{*bZ -z-c%p(!fvPv`|tUuRGHRThQw?SotYb4_1`6Ft06krmn*?6kNnxe-C9B%&linmwosL6 -zdHSBk-_$8;C68>9o~>KNob>X|J2;h-5rFq>%1WY^8zC>c5BUcEnLV@ARP09}w+IVb -zX-_4+O*om6UG2#sPUmSREHbqyp?MncJ*5-fR**0QQs;||xtDs$yGj4(;b~xZiS+nL -z*bONa;XLVtd~ZCiYJintcA!^7w>*8Bpe#0OuNKvL_9J)G>=Ge$Vv&k+4*J+Vvf{=1 -zMZV%=Zu~R(u+XmHw7>cCMJ&11)J8qeX(txgRHi=f;Ai964!CaS=*<0HVoc%;2}(9aB5Z_iUlMW%rz?nZ|zK+CQ=*G78IY{#Qm!H?-X13Xc!o(Cl9yAU8x3`qZTeShC%k7hmE*Z){W(1g&D-1-A -ze{rZx@x^CN@tDxa8aK(_o?W!~q?jGp(K80cdTT75!CaHXE&T<0F`i)%wZ@y^(4Wp| -z&YtB3n1@LYa!Z3U`<#S -z(07~b)9cC6Rs;et4YHPm*wdbb|IcjD3g-m%K4L#3#rV?7eyi)YL&Qvgb`$>&bj03v -z1VW{RT?N1U>8UixdJCeTmmak#=l|PEY}FENzs=Q}9gcvvV!Njb%+7YsnqfiN#INb_w8Tv}cDylGWos+KtL4nI -zK3dZ}tRP*0{B9`{7r}?_@xG)!AWp&CvG)+Cmijj0u_w7=OBwItktPBizIvg2tedI(c#kOHekSSfm(pMIQ|(zX3HnU^QGB|t}`@`{T$-LnZ(@D72kbn!i -zH)3S-_j6Zfx^r#Mf!kco6D9Gn+nw-hvJNejmu;*MS!gl69*=vGgH9#OoMYg@+RM|t -zK5PdK3fx?5O^Ko%f5jy}t{i0T;H;hCXnXQ(PH7W=1qx~k5SS*_I0y!0=RVJV0|n3a -z{Qd9ux8iV!C*j%OGM83LKHUn~_#XW7c?S=&K&79*d~R4P#&7!g8T#(gs$y-zd2{A>(wWBn8DI@Jnp~T&_175|gQl?ZrKFnL&%SDm> -zgvO#_erGVPqq%hAD}80c)xk}T34ON7(p2$PJ&(2u<{`vxFw*~6IC^!6ZZhCEtN$?q -zBv!TP-w#50grAAqpI&r5+Ye6BefdcW7bj2U=$K3;;oK(i4K9js0CuqXB}2})h*b(Q -zCmz4WtFt>31C1zEgTEHYGi*N4dgoOJM(=Cd` -z4-Z{WSXpZh(N$b>L}ZXMD|aF4sd%bl#ujsF28r|_x<|L=S`&72wni|pL0;HfWqEzC -z8Q?j#?fKWbP0%g1AiK8u;*2hPn-F|A3}O{4)hw}U!*z$N8q{PW;_iQ2#vf!YoA)f_ -zyx&ETs?-+S93}-Ic9L?F9Ij=|N`6*GPV!vi-M2Jo&@!j9zk{q?KBfB> -zsEocfBK$%psF6#%W>HK@wl#XaqgBx#KsYd;(qyZEoH6~x>)d~qyeQCJKh?US!w&lB -z(FKhY_FpHAmH6YRac=?&KYzLY03Gq{SW>HEYlEO~R1=(A@w__zrow|WMCcHZ&!LW4 -zAR-m$sLQq1#r*|F0Or?qSbCuUuDwS1s}L@1VuBQRdzeF4B)PB|U_p*i2Lv|tKEt{X -zT>XkD@`e>Q9i+ahDn2?NjB^<)5WmT*1dN0EVb#D%tK_*BpX3UHcw3-5{E1tt(;cwHGq{M8b+ -zR3Tj2naNMEl_7Tb@ViF*H>p*7V?fkAYTX3xxYlytKu6!t;avc`o#0cdj4Kk2x`{8> -zqKVZ#*9xXKsc!)+yd=4n25fCAyX6qN;d21-f~Ed6;#E8301B%fSh6G()~(7;`FKa_ -z`TI!XH0~_1Xqkrz`aU#@TVVmde(My}3^; -zdE5ePJLQEd{kb=0rm=uI`@e2el>UQu1S;RpSlkmPPzq2=N@ZdAkWR_<=*MlY`r({5c^cTDvEqxpWz~#*0L{z} -z&wxf1E`VFP>a)W_xK=ly&6m2&1+$m&f$IbE&dbmPoVnx~Af*cJJ9lDX*u6x!|I7^_ -zM13~nH3YVY;43a=+Txj7j^_fArwbQaUs+&PL6Hxodm3n0Yj&KsQ_CIQpQeS=H1;LXLdXL-h& -zZA}>b(~~q3pglaaJkP}iUaE(VtMv|0USG`9dF<}uDo -zsBWNn5K74|EOUbWWbA(iAM8RcQYCUFnPO}(h3B7ZtqhRSMN|7U&{QzhuG9+l9kyE5 -z0?U<5riwGTbT)m52oUPDG52uB9iuz^D%eOnp+ez8?L*v&|FLO6&J3Qv*s%oIzqf@^ -z6MsOkyi|UruOLpI)h=%f2$A=>c5*ZC@X$LFh~+rx;)DJ$2sDwfixHQT6jk4V`o;yIFtqjNDAn~-RPMi25e<0(13Jw)g -z$StYHw`Gj{qAs;ilI|`=uc*-M?3kp2=H~G6*kEry9UM;W>i=l8n)dpl5BvwOfCDJ? -zGgN(`elB9#Tv<6KfcB4Wu~3Al -zp26<{aHR8)^5$hJ?>qZc3ga)uj10Ljvd-0*>&N{UH_e-gGjVRhXV_1u7d3pne$ZU -zhnX?k|Gt<>g9qPAua+H^1O-12hI4pCh}#I%(LKj9muQGC%|uaCAE8TVJ{eK_R0?FQ -zZt(4P5k~yAc;W}$K|kULxcRKZaGtz+M*P<_CR4JwU97vMXAt2zR$3p1ycB|NhlXe# -z;#)lVR&@30o`GkvI%0YWMj*L=J)hy2)m@XTf}uD+Ix5UKN$W3^!eCn&^xW -zcRUr12=O6-8M+x=i33Tgwe&^QCMZ2`H5wzttyN(UU<3TJF}KBKWjF%J#M*!G3N-I< -zx{tTb0nfxs9hxtPZl7%nMU{PY5})bFAl5@AkG-4iY5}*Pt8VnhToT+3zK+|~xQbrH -zGr;;>WVKI8y6I7ep;>e}D&>?gMA_{i=BtSUyPnV3FRP0Cd=W6gKM*-gSJecB2jZ~a -zw%Zmp-09H;E1CX{&|UuxaIk5{60aVqF;Bn_eGI|0H(bD!^javwJau}4&7}k_SeZ^x -z{abQv#d37i0h6_8$vyOU2_X3nQ@uI2fvC#(lTDj3YSvxZUhy$nK)^MD|OL>E%Y7I*x|Tv5t6 -zM(3@YbCYpYKvBwvA{5F@=@pcnz)ukR&=R)s)r{GQsO3GWZd^%96Anvelxz}w1u-so -znyR7lGGZX3XavV9<Cy&rqjA`$>UIqwI2MKy*i)eto3y!VDH6z40r~_Lf -zu1>H+(EW0)6mT8J2(G;C0BOL)j0xz!sNnpHP?U{Zw-Tr_Qgi|0UA+oH-vo~Ah1Hc* -z_ib)VCm*?ylgkBUf`SR%=+j#(X8w^+x8v2PWFPi_S|z!LpxLtYzPVF~`Ahr; -znktFN6_iOSFo+jRgy)XhdQz2O$3f>&9}21}BH>NC1<{8ZAz3`fE42j2W^^EXnl_g= -z=4-04L5!H;Q~Y8e&{(M0_@cMe3_M#6;Zp-bz(BSdlkEmvK8gs(6_D={2@_(=&u_BI -zyA%JZ*S`iVM%=pqhprzgF9!dWD@be^kudXu!OX~pth*hYdY7DLwJ_rhak1N6_Ip|0 -z5)mLS0lGvyMP1}S<5;gX;VD4LA`{zzCQ -zt6<*f+_2^arDHfXtB&6ftDrIobxstLLj^j1A;>3HLCTM|deS+ynetvK4FU${&ueCf -z`9kCy03!vE3$uu=zGy~tf+eg}aD|XTIOYM4qVa9_n>-L#o0>2|HZ_Y2u%t!ik3Lx$ -zfQnW0XP40rV%3QNVG``OUPbg+1LaR!P(#;fhZV9)3~U+J7AoNfGFI*SoA`Q!3E9p* -zfVQzDYWK&nb@PvNwAGV;Eb-dvy@P${G>`L34}YZuhL9KijQiPiBY@;E5GE|#*1NiM -zw5jxEzoJVpD76U4NftAV3#u7pt>!3F^wJq326B3`*uUVDfrqb5G1bptey1FC2H}j& -zGJRcS%@u$WmZR+wLvm+oKnICp1*O^-KuT{x+eL$z8UxAwE@_fFmWLuMqQ|++T!mlO -zi(Z$n6)MbqMB8PB2;cq*dB=J&f)5xqn8=>b`!v&xaf$C*OIXM4u6RHY7){V-fIH45 -zc-rZ*v+xq6Z8L^*==92efYWM3Z~V^m%_1?sZ*v+55RLy>flQ2VjrGevAblaiO+3Zj -zpoMab_kFiJ_kO~Z^E8a3Fb%q&aZJ-ff$!&ZL}!9HGO1XVL#f^wg>1dN_sz~TpslDa{iq^ -zXEPHztG`JANcne&A&sHn03Gh;OP(fGCw-*aOl+n;4$vc=Xx-mSF}|%(;t%W~2J**o -z6MvZMTWY{Q+DhXOb^xhMo|L62LzaqNT_KP|Ss=$0jB2Iro0mZAh@A!BqkkP3h+lmH*yzpXL>c{c@F4rBgMOx2az(CdU{p7 -z(ruLUu@>A|#L6C&hf8=rpVmB5t&x)`o@rN$JDW);=8 -zT3DuiQnc=d>f3r#NncRe!~V6E-1BhL0+qa*drAu>iWnD4D#0gVx0rD=z)dv=KB&Bu -z9Ij1GzSdaySpu->()s!I@yU!ppvqWl>dVkYK@DMAH5*&+zF|WVw7WFvKqcemp}A_? -ztvk}WWk8OqgC=(80l$Gw>D>v&@et5P=jU_3QMyE`Ch>X!g{6C>gqi35HKUMmQ${3R -z4)4GvP_9n9OV2HB-&sRRe7N?09`7!|OP{If&n>(#fuY&9?S8@8V&W=Q2>o_LE{VGn` -zBRKr=QT=T5{w2%1hDQnXp>32R9yuSx+Wy4Lb+z@c4L -z6zZ4!xr~K+jBmZG`pCiO)cVV|>Lxz};#^2Hb3rCC=Fxp6?G~dON#cjS(rCrP9gWPB -z?~#KZ)hLxBtr>u3&NO6`FW8F))MXEPu+a6^{&{O^kfOFlFw1BF440PUC|`VG??`~e%>K@Sa-O47M;%lbtLmuXSOt({K>fHA#{+m*06?Q5)_WA0~MtUM4Z%8luCcxjaHK+ -zS6#8^?*8q#>y;nu@ui@Qnd=@M`ISi`QrUP=FSQ_V4D!F@;U7ZM#vsTU%J{7e@gpdNa9fpzV@L|a4{O^fngguQav|td@4OnKW{W!zs^ttJ(2vO}Jsxr_J!5Jhvh$2jyCh;Esvwy(S_4A^GIO6DxdF->N8 -zOGSUNyS0KSZ3obEi%N8GULy -zvToJP_jPY7^2+15^Pb4zDwu;xPX1#V72C(JfEu9DH~;86w`cf*yKVr_i;)F3#D+Y% -zBqV?(cAAyr3jUOWi?YNEy13vcJ-E5kNgwj>4zxx#0=$7_F;ikrl0!GIGyoK##Ik5O -zSN>ZZ}(4#_gkE0aWJMG!LT{XaJP6> -z(|`Gr7h$c=5v$n9M&!*KXo?sUqxeQ0{pZ)Yfb{Two4N?L!qvV-4x#J!SLK8-*19S7 -zv2cf7*E>{WK6~39SGn_C1^jFPWPec%3qz$kVl~cDYu@N11smi~qUl5|jX1gO?IpPj -zmi+ZBJS0kW(fO0stl*6huB6z9LerUH463x0mZ!p+#NCf9`k3I?si)eZK$#by| -zzWQ|X;yuUA_ZhccKPR>~C84!&m#U_}0#M%iYAb|j70*vCGRoI2Atn&U8x7UkGV}1U -zEHRIYYcJ8#JjFy+}1r$=tb9~e#=L% -zGvf$vo2gI5@^Jr)Ib3f!E%sBs6Th3T4mKq}ggiAWFhr+{)v^dQeNR~w_mXo+zGXjl -z^tuCc%!T;gJA6HsB}o+!FK5N&Uk&->ei -z04`r6`wua26-pio&BkGc?yq5mZX^$d<`0GPW3WOdDfRSy4BSCAu9`W}(f^gimCP$^ -zf|DA$?O0wp$R<%;7j))8zIRG1Trp-w3x&rgx~9k?)r -zcI`|+NI -zhp!b1`q|!$6!FDbwDF#d<7}|3fQCQs^u_;Bf(JtjrHtw+#j*K@R03%PcggHNkQE+S -z?gYkYxIA>E-TrElyo(C($Q0DYQKSKL>;fZNSh!wcAiWbv{i*#~Vdc=AAGq2=bN?DA -zk3K~*c97BE%v<@C*ynH{I5$=|voMx)WnEuxnbNh&pQ_-(v#fcLQpP5FgmFCVj0!!lE!ylJ|{9DEgAwe^WBk -zUo;ib#-*4dgZ(;a6`F_^eFhC!@3q{IyU9-E?7D?8eI2azPxueQvFcIRjSttbPl#^x -z*zP*hsnE!EOmgl?mGC6mX;dP;AM(5@$BvbMr>K)os{K66jUO#LHBEQI<9{q%)o7Xs6Rc>VJ8Wdk5FD2T8Y{aG6luzRu|U -zA$qvTiAUD*9YX5QIjT=dZa(}(g%iQ!N$5AC>@FFB8!}1JMXppDB%e~f@3VO**_m&$ -zN4j*pz)$JmnEm3DcCp**$ULbjCD>+e%8c0#;#A|Z6ME@m{N(;mimXv$9gYe@_QJ>H -z3q*YT9)-Ws-o84Ub~>A-V>s1Osq4&t&nGXdU)>B->Y#JqmF(0E)&0}gFzitnU#cs- -zTz3p#BpxQ9eOVIDNpm|mBw!iG!|?lpw8auU&}>$P%Odj+A>AL#i@jh9`Pg=|!VfFo -z!V#DJGQGrPra^c$#~$CT40q2s+DU3bIj=Stwr7tEV3~DllysV8k{e_nlOB2=twP`Oo{i?RXLo`N#kCosNK) -z>6Aa?|Hc~+H{Hyb3?iXX8ZsGSx0|^h;Avm(Xqftqd)N7Be9hbp=kB7L&<%PFO4GFq -zPlSA+(V{&%`^|R_>_iKG3bKRh=biqKOAX-wQD|)B$V6400`D93epOmA1m7FN_xnvQ -zS6Zcwa5}Tx`r{J?@PKeV|CqrKw{UrZ7=D|1cdd!^U$2Ax{qH$}_caf`5DPrI2m)|B -zZE4$fSsA+rkwmtcrJ_XwJ47Hff1U+m6`%wF`g59;+r#OSMvIeCZCz44r3?-8_HMbq -z`Valpuc+3P=%u)pH&6BFilUf@gL|??y8S?hw7wF;j*6s5r^bgKo3y@88Rin0WK_^=-@SH#{#dm%jaHr4#wZl -z2?9sO!@i~8JYHU7%^)AtzPps6ZF%<21U7RN#c9tJ`}?hUhWVGl`+B3KeUC4!Zn7e16)f+SCNN^P@zZsS*iSNC&Wc(W4K43+8H -z0=K0R3y!EIQV^GF4TYpYBeP13hJK57S4Z!#!Cef$9MY;r(<){io@E(P5;#q%6&mw# -z^25e$CR=M(BED~!gwFO%M0Ja)#a9-`nG8rifqjtC7hauZ^{?S0F30&3W(l$0|Dmez -zK9y~C4bbQHMk;wz8Q0Y+TgnWX7Q<8v_pRwCn -zF`FBq<)^tf2cJSAQG79WHy%xVk9mn}(71uA6=9_>2=zZIuW+6oTH!W!;O?<*s5s@d -z^L8l0Q^sER(LBd!xB|F4*59emP|CT|)_lFo+q^}re0HediGp^D9sh4SZ~81nyf-a4 -z;fPc?QcjSqXti3d^A>9~3JQcCq~*sv;KyY&V!2eltlO!Nh~hD-?=dHghbofY;~y>x -z3@0>R;hUtwt9jQ>kT2C97=PR!l>ciL_GqA|UB6{by0XId<|_~Oz%kx-cwmWkVNBW{ -zd`w)iW)qe3;D|_+{^AtD(?qxDYo2iSMCvmuGa++%x_vr+>~Hbu+ar2h8K+B5q%#`@3b6m?rn9@iQ>{!!_ioOW?{ck(NE -z;%=Tj@@?0~6gT?YuEx5>NAd54lR9jhdr~gL4Gbo{8%^~;yOmWRNeH8_wts)QL|yaj -zpv2{F!Dv+v{ICs8aahMcbnC>f*T+gaq45`=a70sOZF8Mj;S!rpm*7;u197^=<@YFz -zo&h^Di|vu`o+N;W;V2h9q$Ekmcly!bk-p^09nvI+N*%@r1n66H)p`i2;xoa_X@nv^ -zxc^;wBS3ID4_0WK-KlK$kj;}_RBx&JBCp4#zWtY7nbM<&*xP$>D -z%>^ard?n~5CrL95nVCHe@9uARKT+L1U46Q%s_FWl=bY-yFK*lQ^@I@CZszpo&KjH4 -zs-v_Y7R#+y=Bn3j^UN6ni{HItoy8QDn%8tj?Uu^F{yq@qAtXOWl35`8r~%_%;x}pF -zRib=-LB0dyc=;BZZ8bG4*2-irl&W2XDvwWqJ|9P>64BMvl&pwI4?BTC?)9tr^-rUI<*g=f0aQ -zMdqZ=yc<^MW@4GR@J@t!S`x~K>-%e-TYHcjB|x0+{Bajnxv3XjeV_i!Z&mr`e36cApsPM@$!fK5D8Th*OaEp@^3F7dxbi4{3gV -zIPhOR<7Dhn%2egE%}WU7VjS% -zuDm9WOi6TYWU;Nn9*Szt^U7N+@UNw;&rgyi>);#JA!~1qwuKee)XAz?*X*a2b&4=X -za?cFBq2*-b8I`Ma=zxUG{GRqcIYvU)Lt!` -zwalYmBB|wK7u55mRb}<$zsiuFcU#uLZD?$ViZYe;$ewCk(o}%|wJ%;J7OCW^qT)mK -z?b*WHCaL7Pq6w5KyXD@ARORaqJoK(k0tW2WQoS(P9r)>qQ{D7|!q#tLY})>M#5V7s -z8Pma&D;gElJRLTbrr0Ul7CSewL}B^el+b`z^Vall?@d@zQO6&#Y=TY->wN;WpKOYV)w)D|vk#{%Z@+6R~<n -zQJLSd^=LuQ?A7-~2m6Tp!_?*uF?Hd~shiA)jBnNUgeKS;O5Q)TrW6l$Z(lqQ~=OHC)l* -zbR*@#|2xv2-rFhr@i@9jg|P8Zu-gGIHW0{cL9Z7wuMy4K0X@qJkZ^~z|DZwAT^mgp$8$Q#;BKf@12&HN3c%?jl2T5;%g8-y=w)2 -z@1Bims)%MxdC<9g$)GUFSWOw>rT{p%a5VUs?$|AgJMO+EW%a+xX!XoA5#8;l%ey>xQi)s5BD^S&ef -zvVmG+398@|@Z;`+HPQGkbgJd~z+Z0m>bo}u_nrAAPf4BzM-jI^z?`fopc5K@Tm8jV -zG%D*qU~~%ie7*EM=JoiWa*us@5=}MV5fKugK7zIAgd0R4D{Cp#mmY@+6H^9VyBVtB -z;t3Owo;Uskq%<`<3SY(j1!Z=$N_Ys29qnNi$=nO4Eay6$SN1o7T-_&!b4!zq)f3s^ -zc_a?G`N{9Yc{ld-KJc3jf%oT*=9Dx20eGB^|MqHp4Ic4WUnxOqADONj9bay1eCNFR -z$c?wzQ2`kq?s2%{$W|5P0d`p?x@}+Ds#U!SEWlE%bS3Q>&GV#(S2{I;LtL^BjdTKD -zBWr1>n0y1UJFPg6nUoqJ@WA&4uu}orj~NB{;043ew=GE*2}T4a4%gSj@r*^E -zeNa@U5p$B7@8T(oPR-wlBNza#D-&3#0g7g~AJ?g0E)tQs5XaVje@+t_$r!$&+ui%r -zXaS#oc$qc=kQpJ2*H7eL)A?HBZob^*7%5l>r`!QxxQMvBDlXA~$0joCXfV#LN!I;e -z=x+DkrhanBhWzO=uonEr{_0vYaPt7|;*Il**G<6l1{4`(y@IzexHVGw#%a1k!x)yw -z!(5QZRh>U81-%Exj+fzS!`lqStLz>~{J5+s>ui?=^yv$Q+>H)_2Ac{1zC?i_EJf;pOet -z8pxZN+pzoP!7K1>Z9txSbkNaaBB4xa8Kb)B9ZF-z@;PepRK^+Ek2xI~ -zsz-{7`mv^*sZ@1`EN3_mbcfVaJlQ`UBAa5M#&@M7O#?h)ryf@EMm2<$Z94;a;?&x=SNFHU_ -z!t0}Pxved1qQT!vrlyGWmB-eY`+J|VW?-kH@oUWLNV!mZqi!q?3wa~|Eb24X5VIdE -z`x5LeZ#1#~Qc8(^^8k{MROM=KQhN@k>#??^B=dZ@$~66AFlS}2@1LvU3!1-=v|L-Y -zW~{lRX((8Koyj~>H+RKwc7PK;#0s>=2&P#&t!srM-NkN}yYXyTW!Jg(RM3u{B#}5Lxg2L6%C7a* -zhmy_jWT&W7R`E$KoP|Db+Jj=r4O1~xL-S>|7ejxFB=aa`B^qyG`J$2P7@C4%PKV*J;4kd8vAFV1Jo+^%ipovLTzvdr$Yp2Uk>kb0v=?RUJe -z{zW<$jOSmFC@7`X+1^ -z|8|SRaPx=B>haq+9T=o0aIR56l!an)bDHa<5I=if;@?f`KZ1}YvJA62=~B#RY@G+- -zY;DxMP1pl!VX>_dUNPGmz6;Vo5-D+R`OQB87kq85+4w?~xpAv1-7~`H$!{k_+jol4Nk;Lomg=^? -zpDYo5hE*R;Kd%1<=UeHSu7M;wFl=3xV&CJy=(cI@pIYEGaa)J)#kW-@{~6X_RbJE$ -zy}zo0Vf{VBc;0{Nu6^s?Eq$G=htwG3W+utORe$zvuYKde4`g20Z?uIBd(sX)Z}t3P -zRrU;)j@2kozJ9ML$fY#lSdJ7;khXQz@OA%nGE7<`bcSNGsr!BWPSva#Ngg|~R_i2k -z(cc?UkKtl60q44Nu7C?gu~Nj0jy(2#>=h=Wmy3MXJLhABPEL%1-%MP3g_CH^9Wk)Q -zs8Xc4cHxg9$73>9ZTW&iq>A&dBc#bD!ouDv6-hmD4Jt@R&uVkC?TG}<-y3N9LOh`{9v`v&xHCS->?P)x=*aHmixv1CDKT5`&jhKMv=aT`N$tW> -z=#Qjohj<3u&4% -zC#shscWblQVv5^lkiVmjj~*JkcjJSFjQ+wi!n=Y|T)_rhM@pA_xI=hjC(IWYVJHbJ -z-ulWP{n2yMV-3qcHwgKAy0?GDWV^g6INq8EOMMS=a$Ils9t_X_5hRU4lBOhh>vF#j -zyTqg5bF?b(`w2vrx;`H>_qg{#6epHlJ$>JRI6_e17LeCti%e`S5gDIR9-D#Iaez0T^ -zpF`JS$QK}YQ9QFzuW2Zcg?JoPtLcsytKM`u)j2B-4Wu5!cvGvjT+hfL&M@O?S*qFV -z$fFp3tebiH>+TtRY=vvQdhdzaTkWu7_gCdSn$3Zel_`-ZBr}d>u73Q|>R1Pon4(*! -zP{h~E9w*kn^d+x}2O41LSB6F8i{rY@Jc|_WBElVeNNPjNT)p^_OX@2=ypeR4yD8K3 -z5&Ec{@$+^cBT9o~<_Kl7D1}{7nNJY~E4ckUaz&F19gO}pu}bD{Cn%#HKD0i@hds1W -zK&f?zQdGgLSvTH=YEY#Ill}D5d3!!~&N$WjKH;nDJAfcaa~V4yUUXmwV6;{<*2k_< -ztasKcB{?udW=JSrM6B(XJ$mbt8V6temqYU{Cj`H|$^JPNS&$(3jvjO3n@}tSjCl_B -zM;6SbuvT(%adN78gZeg~99giqQg2!^(NX@S!R6cJ!UzF4ZFiKGj5 -zGFM4XJHfv+PFbz>-A6m!L%{dsavAq(?=eMZySJ#m4r+sXxw))==`U)YO9WgyvcT$7 -zADsk&g*m@kqDO@Cn?BxkF}$t?`4qdOhi7c;aVw1@IfqwBdA%7@2fUry`~L(P1U2`m)eB< -z1h=*eH71qQ2~*QF&4LN6@M#G9<{>3Pu7K?{?VKq7hjwerQUt$;((d8m`*y~m3$nj< -zgx0OyGu`&7>$SkU9N8J`Yvj6PckVb|llMZVMUUsVHXuA!0&l`VJsdA0Dy2YKHB#w7 -zj|nw-!XWu;?z;C?2X*050iA`uat{QTwx#-X+}vD;$J?dFj_nT}1pcCJXC!aQE6goj -zCpN_fcwZF+OnV}!75~9}zT#yf3##@ib@gK6q8wK&UflaMpxP@cTXALn=c4O1kf^uA -z9jGamxkcOqlntNDa;FS&HVB~YMycV4*{?91eseUPXogZklv>l#`cK>K>6*9HMX70* -zcduXa`xEj;-QZ_&nZKf1UZ-V>O<=4#+HR)7`EZmN>aJ46vHO#$@NK(mfR8Did|bhY -z5&pG436rZdfvxR!Bm4Mzbr3De)$p!*y=5-FPlLjA^;=qyZ+^v^?J4WO%ZC@GLW&*z -z#b{vO*5P)hn>T8|rQ#H8GG7K+(MSHYs57It;DxW==D|fa{?R_RT!jirJ>$Hed;wR1 -zV}>TR8n!oO=D0v;SDEZ`?h*zH+Q+rXjUN}w`uhkj5vPW97EL@cq|8LrW)HnJvtfbo -z#M=1&!mah%W$;sK8r2e6z@E^D^B#ERi&UzIcWrg3c|^FoKD=+osNm<}g=Y_c -zPM`o()@~mB8GR;apm9u@d)`UbK>%!xZ`M}|Onhrr+G4Q-m;oZ}Yg|?kF=^miOYvGBlXPIWM -z6yY*!0Q-lYmXv*0#wbj;(m}`w0t8}w_8w`*+5J5xLxdI6g<(5eV{8VNIA{yBx$(_A$mZ$YEJ8c&i@7ku8>6ir;;PRM=YaSs>WX -zV~s@T2+gmpdoPaV!(@C>rx1i|Zp;Sb`zM^79wO45!2n~-wh1{1*kPzuysb|h|{yv-TVcsco;l88r-0?3oswZwp{b>1U_smPmfBS=c -zRicY&$w{pgI-5xAW5=mf!kXoB6+J62W3YtNFKE}xe+5 -zDsSuSbu`pB+F1`@mXZ~(PGIKA`^bk{K4Ql-D@xOF{(NA#ZJgRDLKA6 -zf+isb!(AZaS-cWWk(C*S&zAPJIqG;dh+JL~XgFU>b -z&QI5jj<8agT}tPt~-S- -b&=!Yol6%P;{v@(L85Lyi`_3fb6UBc4C!SUG - -literal 0 -HcmV?d00001 - diff --git a/patches/grub/2.02/install_signed.patch b/patches/grub/2.02/install_signed.patch deleted file mode 100644 index 19e0880fe..000000000 --- a/patches/grub/2.02/install_signed.patch +++ /dev/null @@ -1,295 +0,0 @@ -From 0c58db5d40a48dff1dbc87bb964a4b34abab3017 Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Mon, 13 Jan 2014 12:13:22 +0000 -Subject: Install signed images if UEFI Secure Boot is enabled -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Author: Stéphane Graber -Author: Steve Langasek -Author: Linn Crosetto -Author: Mathieu Trudel-Lapierre -Forwarded: no -Last-Update: 2016-11-01 - -Patch-Name: install_signed.patch ---- - util/grub-install.c | 196 +++++++++++++++++++++++++++++++++++++++------------- - 1 file changed, 149 insertions(+), 47 deletions(-) - -diff --git a/util/grub-install.c b/util/grub-install.c -index 0e1303ee5..4f092afe7 100644 ---- a/util/grub-install.c -+++ b/util/grub-install.c -@@ -80,6 +80,7 @@ static char *label_color; - static char *label_bgcolor; - static char *product_version; - static int add_rs_codes = 1; -+static int uefi_secure_boot = 1; - - enum - { -@@ -110,7 +111,9 @@ enum - OPTION_LABEL_FONT, - OPTION_LABEL_COLOR, - OPTION_LABEL_BGCOLOR, -- OPTION_PRODUCT_VERSION -+ OPTION_PRODUCT_VERSION, -+ OPTION_UEFI_SECURE_BOOT, -+ OPTION_NO_UEFI_SECURE_BOOT - }; - - static int fs_probe = 1; -@@ -234,6 +237,14 @@ argp_parser (int key, char *arg, struct argp_state *state) - bootloader_id = xstrdup (arg); - return 0; - -+ case OPTION_UEFI_SECURE_BOOT: -+ uefi_secure_boot = 1; -+ return 0; -+ -+ case OPTION_NO_UEFI_SECURE_BOOT: -+ uefi_secure_boot = 0; -+ return 0; -+ - case ARGP_KEY_ARG: - if (install_device) - grub_util_error ("%s", _("More than one install device?")); -@@ -303,6 +314,14 @@ static struct argp_option options[] = { - {"label-color", OPTION_LABEL_COLOR, N_("COLOR"), 0, N_("use COLOR for label"), 2}, - {"label-bgcolor", OPTION_LABEL_BGCOLOR, N_("COLOR"), 0, N_("use COLOR for label background"), 2}, - {"product-version", OPTION_PRODUCT_VERSION, N_("STRING"), 0, N_("use STRING as product version"), 2}, -+ {"uefi-secure-boot", OPTION_UEFI_SECURE_BOOT, 0, 0, -+ N_("install an image usable with UEFI Secure Boot. " -+ "This option is only available on EFI and if the grub-efi-amd64-signed " -+ "package is installed."), 2}, -+ {"no-uefi-secure-boot", OPTION_NO_UEFI_SECURE_BOOT, 0, 0, -+ N_("do not install an image usable with UEFI Secure Boot, even if the " -+ "system was currently started using it. " -+ "This option is only available on EFI."), 2}, - {0, 0, 0, 0, 0, 0} - }; - -@@ -821,7 +840,8 @@ main (int argc, char *argv[]) - { - int is_efi = 0; - const char *efi_distributor = NULL; -- const char *efi_file = NULL; -+ const char *efi_suffix = NULL, *efi_suffix_upper = NULL; -+ char *efi_file = NULL; - char **grub_devices; - grub_fs_t grub_fs; - grub_device_t grub_dev = NULL; -@@ -1081,6 +1101,31 @@ main (int argc, char *argv[]) - */ - char *t; - efi_distributor = bootloader_id; -+ switch (platform) -+ { -+ case GRUB_INSTALL_PLATFORM_I386_EFI: -+ efi_suffix = "ia32"; -+ efi_suffix_upper = "IA32"; -+ break; -+ case GRUB_INSTALL_PLATFORM_X86_64_EFI: -+ efi_suffix = "x64"; -+ efi_suffix_upper = "X64"; -+ break; -+ case GRUB_INSTALL_PLATFORM_IA64_EFI: -+ efi_suffix = "ia64"; -+ efi_suffix_upper = "IA64"; -+ break; -+ case GRUB_INSTALL_PLATFORM_ARM_EFI: -+ efi_suffix = "arm"; -+ efi_suffix_upper = "ARM"; -+ break; -+ case GRUB_INSTALL_PLATFORM_ARM64_EFI: -+ efi_suffix = "aa64"; -+ efi_suffix_upper = "AA64"; -+ break; -+ default: -+ break; -+ } - if (removable) - { - /* The specification makes stricter requirements of removable -@@ -1089,54 +1134,16 @@ main (int argc, char *argv[]) - must have a specific file name depending on the architecture. - */ - efi_distributor = "BOOT"; -- switch (platform) -- { -- case GRUB_INSTALL_PLATFORM_I386_EFI: -- efi_file = "BOOTIA32.EFI"; -- break; -- case GRUB_INSTALL_PLATFORM_X86_64_EFI: -- efi_file = "BOOTX64.EFI"; -- break; -- case GRUB_INSTALL_PLATFORM_IA64_EFI: -- efi_file = "BOOTIA64.EFI"; -- break; -- case GRUB_INSTALL_PLATFORM_ARM_EFI: -- efi_file = "BOOTARM.EFI"; -- break; -- case GRUB_INSTALL_PLATFORM_ARM64_EFI: -- efi_file = "BOOTAA64.EFI"; -- break; -- default: -- grub_util_error ("%s", _("You've found a bug")); -- break; -- } -+ if (!efi_suffix) -+ grub_util_error ("%s", _("You've found a bug")); -+ efi_file = xasprintf ("BOOT%s.EFI", efi_suffix_upper); - } - else - { - /* It is convenient for each architecture to have a different - efi_file, so that different versions can be installed in parallel. - */ -- switch (platform) -- { -- case GRUB_INSTALL_PLATFORM_I386_EFI: -- efi_file = "grubia32.efi"; -- break; -- case GRUB_INSTALL_PLATFORM_X86_64_EFI: -- efi_file = "grubx64.efi"; -- break; -- case GRUB_INSTALL_PLATFORM_IA64_EFI: -- efi_file = "grubia64.efi"; -- break; -- case GRUB_INSTALL_PLATFORM_ARM_EFI: -- efi_file = "grubarm.efi"; -- break; -- case GRUB_INSTALL_PLATFORM_ARM64_EFI: -- efi_file = "grubaa64.efi"; -- break; -- default: -- efi_file = "grub.efi"; -- break; -- } -+ efi_file = xasprintf ("grub%s.efi", efi_suffix); - } - t = grub_util_path_concat (3, efidir, "EFI", efi_distributor); - free (efidir); -@@ -1342,14 +1349,41 @@ main (int argc, char *argv[]) - } - } - -- if (!have_abstractions) -+ char *efi_signed = NULL; -+ switch (platform) -+ { -+ case GRUB_INSTALL_PLATFORM_I386_EFI: -+ case GRUB_INSTALL_PLATFORM_X86_64_EFI: -+ case GRUB_INSTALL_PLATFORM_ARM_EFI: -+ case GRUB_INSTALL_PLATFORM_ARM64_EFI: -+ case GRUB_INSTALL_PLATFORM_IA64_EFI: -+ { -+ char *dir = xasprintf ("%s-signed", grub_install_source_directory); -+ char *signed_image; -+ if (removable) -+ signed_image = xasprintf ("gcd%s.efi.signed", efi_suffix); -+ else -+ signed_image = xasprintf ("grub%s.efi.signed", efi_suffix); -+ efi_signed = grub_util_path_concat (2, dir, signed_image); -+ break; -+ } -+ -+ default: -+ break; -+ } -+ -+ if (!efi_signed || !grub_util_is_regular (efi_signed)) -+ uefi_secure_boot = 0; -+ -+ if (!have_abstractions || uefi_secure_boot) - { - if ((disk_module && grub_strcmp (disk_module, "biosdisk") != 0) - || grub_drives[1] - || (!install_drive - && platform != GRUB_INSTALL_PLATFORM_POWERPC_IEEE1275) - || (install_drive && !is_same_disk (grub_drives[0], install_drive)) -- || !have_bootdev (platform)) -+ || !have_bootdev (platform) -+ || uefi_secure_boot) - { - char *uuid = NULL; - /* generic method (used on coreboot and ata mod). */ -@@ -1871,7 +1905,75 @@ main (int argc, char *argv[]) - case GRUB_INSTALL_PLATFORM_IA64_EFI: - { - char *dst = grub_util_path_concat (2, efidir, efi_file); -- grub_install_copy_file (imgfile, dst, 1); -+ if (uefi_secure_boot) -+ { -+ char *shim_signed = NULL; -+ char *mok_signed = NULL, *mok_file = NULL; -+ char *bootcsv = NULL; -+ char *config_dst; -+ FILE *config_dst_f; -+ -+ shim_signed = xasprintf ("/usr/lib/shim/shim%s.efi.signed", efi_suffix); -+ mok_signed = xasprintf ("mm%s.efi.signed", efi_suffix); -+ mok_file = xasprintf ("mm%s.efi", efi_suffix); -+ bootcsv = xasprintf ("BOOT%s.CSV", efi_suffix_upper); -+ -+ if (grub_util_is_regular (shim_signed)) -+ { -+ char *chained_base, *chained_dst; -+ char *mok_src, *mok_dst, *bootcsv_src, *bootcsv_dst; -+ -+ /* Install grub as our chained bootloader */ -+ chained_base = xasprintf ("grub%s.efi", efi_suffix); -+ chained_dst = grub_util_path_concat (2, efidir, chained_base); -+ grub_install_copy_file (efi_signed, chained_dst, 1); -+ free (chained_dst); -+ free (chained_base); -+ -+ /* Now handle shim, and make this our new "default" loader. */ -+ if (!removable) -+ { -+ free (efi_file); -+ efi_file = xasprintf ("shim%s.efi", efi_suffix); -+ free (dst); -+ dst = grub_util_path_concat (2, efidir, efi_file); -+ } -+ grub_install_copy_file (shim_signed, dst, 1); -+ free (efi_signed); -+ efi_signed = xstrdup (shim_signed); -+ -+ /* Not critical, so not an error if it is not present (as it -+ won't be for older releases); but if we have MokManager, -+ make sure it gets installed. */ -+ mok_src = grub_util_path_concat (2, "/usr/lib/shim/", -+ mok_signed); -+ mok_dst = grub_util_path_concat (2, efidir, -+ mok_file); -+ grub_install_copy_file (mok_src, -+ mok_dst, 0); -+ free (mok_src); -+ free (mok_dst); -+ -+ /* Also try to install boot.csv for fallback */ -+ bootcsv_src = grub_util_path_concat (2, "/usr/lib/shim/", -+ bootcsv); -+ bootcsv_dst = grub_util_path_concat (2, efidir, bootcsv); -+ grub_install_copy_file (bootcsv_src, bootcsv_dst, 0); -+ free (bootcsv_src); -+ free (bootcsv_dst); -+ } -+ else -+ grub_install_copy_file (efi_signed, dst, 1); -+ -+ config_dst = grub_util_path_concat (2, efidir, "grub.cfg"); -+ grub_install_copy_file (load_cfg, config_dst, 1); -+ config_dst_f = grub_util_fopen (config_dst, "ab"); -+ fprintf (config_dst_f, "configfile $prefix/grub.cfg\n"); -+ fclose (config_dst_f); -+ free (config_dst); -+ } -+ else -+ grub_install_copy_file (imgfile, dst, 1); - free (dst); - } - if (!removable && update_nvram) diff --git a/patches/grub/2.02/linuxefi.patch b/patches/grub/2.02/linuxefi.patch deleted file mode 100644 index f5b446073..000000000 --- a/patches/grub/2.02/linuxefi.patch +++ /dev/null @@ -1,484 +0,0 @@ -From dcdb222cf4b007d1850a746074a6b5d1cac6c517 Mon Sep 17 00:00:00 2001 -From: Matthew Garrett -Date: Mon, 13 Jan 2014 12:13:15 +0000 -Subject: Add "linuxefi" loader which avoids ExitBootServices - -Origin: vendor, https://github.com/rhboot/grub2/commit/6510d5b51950e9245ff88882127e596dc6e5d39f -Forwarded: no -Last-Update: 2017-11-01 - -Patch-Name: linuxefi.patch ---- - grub-core/Makefile.core.def | 8 + - grub-core/kern/efi/mm.c | 32 ++++ - grub-core/loader/i386/efi/linux.c | 371 ++++++++++++++++++++++++++++++++++++++ - include/grub/efi/efi.h | 3 + - include/grub/i386/linux.h | 1 + - 5 files changed, 415 insertions(+) - create mode 100644 grub-core/loader/i386/efi/linux.c - -diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def -index 2dfa22a92..68e47a727 100644 ---- a/grub-core/Makefile.core.def -+++ b/grub-core/Makefile.core.def -@@ -1733,6 +1733,14 @@ module = { - enable = x86_64_efi; - }; - -+module = { -+ name = linuxefi; -+ efi = loader/i386/efi/linux.c; -+ efi = lib/cmdline.c; -+ enable = i386_efi; -+ enable = x86_64_efi; -+}; -+ - module = { - name = chain; - efi = loader/efi/chainloader.c; -diff --git a/grub-core/kern/efi/mm.c b/grub-core/kern/efi/mm.c -index 20a47aaf5..efb15cc1b 100644 ---- a/grub-core/kern/efi/mm.c -+++ b/grub-core/kern/efi/mm.c -@@ -49,6 +49,38 @@ static grub_efi_uintn_t finish_desc_size; - static grub_efi_uint32_t finish_desc_version; - int grub_efi_is_finished = 0; - -+/* Allocate pages below a specified address */ -+void * -+grub_efi_allocate_pages_max (grub_efi_physical_address_t max, -+ grub_efi_uintn_t pages) -+{ -+ grub_efi_status_t status; -+ grub_efi_boot_services_t *b; -+ grub_efi_physical_address_t address = max; -+ -+ if (max > 0xffffffff) -+ return 0; -+ -+ b = grub_efi_system_table->boot_services; -+ status = efi_call_4 (b->allocate_pages, GRUB_EFI_ALLOCATE_MAX_ADDRESS, GRUB_EFI_LOADER_DATA, pages, &address); -+ -+ if (status != GRUB_EFI_SUCCESS) -+ return 0; -+ -+ if (address == 0) -+ { -+ /* Uggh, the address 0 was allocated... This is too annoying, -+ so reallocate another one. */ -+ address = max; -+ status = efi_call_4 (b->allocate_pages, GRUB_EFI_ALLOCATE_MAX_ADDRESS, GRUB_EFI_LOADER_DATA, pages, &address); -+ grub_efi_free_pages (0, pages); -+ if (status != GRUB_EFI_SUCCESS) -+ return 0; -+ } -+ -+ return (void *) ((grub_addr_t) address); -+} -+ - /* Allocate pages. Return the pointer to the first of allocated pages. */ - void * - grub_efi_allocate_pages (grub_efi_physical_address_t address, -diff --git a/grub-core/loader/i386/efi/linux.c b/grub-core/loader/i386/efi/linux.c -new file mode 100644 -index 000000000..6afa13d41 ---- /dev/null -+++ b/grub-core/loader/i386/efi/linux.c -@@ -0,0 +1,371 @@ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 2012 Free Software Foundation, Inc. -+ * -+ * GRUB is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation, either version 3 of the License, or -+ * (at your option) any later version. -+ * -+ * GRUB is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with GRUB. If not, see . -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+GRUB_MOD_LICENSE ("GPLv3+"); -+ -+static grub_dl_t my_mod; -+static int loaded; -+static void *kernel_mem; -+static grub_uint64_t kernel_size; -+static grub_uint8_t *initrd_mem; -+static grub_uint32_t handover_offset; -+struct linux_kernel_params *params; -+static char *linux_cmdline; -+ -+#define BYTES_TO_PAGES(bytes) (((bytes) + 0xfff) >> 12) -+ -+#define SHIM_LOCK_GUID \ -+ { 0x605dab50, 0xe046, 0x4300, {0xab, 0xb6, 0x3d, 0xd8, 0x10, 0xdd, 0x8b, 0x23} } -+ -+struct grub_efi_shim_lock -+{ -+ grub_efi_status_t (*verify) (void *buffer, grub_uint32_t size); -+}; -+typedef struct grub_efi_shim_lock grub_efi_shim_lock_t; -+ -+static grub_efi_boolean_t -+grub_linuxefi_secure_validate (void *data, grub_uint32_t size) -+{ -+ grub_efi_guid_t guid = SHIM_LOCK_GUID; -+ grub_efi_shim_lock_t *shim_lock; -+ -+ shim_lock = grub_efi_locate_protocol(&guid, NULL); -+ -+ if (!shim_lock) -+ return 1; -+ -+ if (shim_lock->verify(data, size) == GRUB_EFI_SUCCESS) -+ return 1; -+ -+ return 0; -+} -+ -+typedef void(*handover_func)(void *, grub_efi_system_table_t *, struct linux_kernel_params *); -+ -+static grub_err_t -+grub_linuxefi_boot (void) -+{ -+ handover_func hf; -+ int offset = 0; -+ -+#ifdef __x86_64__ -+ offset = 512; -+#endif -+ -+ hf = (handover_func)((char *)kernel_mem + handover_offset + offset); -+ -+ asm volatile ("cli"); -+ -+ hf (grub_efi_image_handle, grub_efi_system_table, params); -+ -+ /* Not reached */ -+ return GRUB_ERR_NONE; -+} -+ -+static grub_err_t -+grub_linuxefi_unload (void) -+{ -+ grub_dl_unref (my_mod); -+ loaded = 0; -+ if (initrd_mem) -+ grub_efi_free_pages((grub_efi_physical_address_t)initrd_mem, BYTES_TO_PAGES(params->ramdisk_size)); -+ if (linux_cmdline) -+ grub_efi_free_pages((grub_efi_physical_address_t)linux_cmdline, BYTES_TO_PAGES(params->cmdline_size + 1)); -+ if (kernel_mem) -+ grub_efi_free_pages((grub_efi_physical_address_t)kernel_mem, BYTES_TO_PAGES(kernel_size)); -+ if (params) -+ grub_efi_free_pages((grub_efi_physical_address_t)params, BYTES_TO_PAGES(16384)); -+ return GRUB_ERR_NONE; -+} -+ -+static grub_err_t -+grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)), -+ int argc, char *argv[]) -+{ -+ grub_file_t *files = 0; -+ int i, nfiles = 0; -+ grub_size_t size = 0; -+ grub_uint8_t *ptr; -+ -+ if (argc == 0) -+ { -+ grub_error (GRUB_ERR_BAD_ARGUMENT, N_("filename expected")); -+ goto fail; -+ } -+ -+ if (!loaded) -+ { -+ grub_error (GRUB_ERR_BAD_ARGUMENT, N_("you need to load the kernel first")); -+ goto fail; -+ } -+ -+ files = grub_zalloc (argc * sizeof (files[0])); -+ if (!files) -+ goto fail; -+ -+ for (i = 0; i < argc; i++) -+ { -+ grub_file_filter_disable_compression (); -+ files[i] = grub_file_open (argv[i]); -+ if (! files[i]) -+ goto fail; -+ nfiles++; -+ size += ALIGN_UP (grub_file_size (files[i]), 4); -+ } -+ -+ initrd_mem = grub_efi_allocate_pages_max (0x3fffffff, BYTES_TO_PAGES(size)); -+ -+ if (!initrd_mem) -+ { -+ grub_error (GRUB_ERR_OUT_OF_MEMORY, N_("can't allocate initrd")); -+ goto fail; -+ } -+ -+ params->ramdisk_size = size; -+ params->ramdisk_image = (grub_uint32_t)(grub_uint64_t) initrd_mem; -+ -+ ptr = initrd_mem; -+ -+ for (i = 0; i < nfiles; i++) -+ { -+ grub_ssize_t cursize = grub_file_size (files[i]); -+ if (grub_file_read (files[i], ptr, cursize) != cursize) -+ { -+ if (!grub_errno) -+ grub_error (GRUB_ERR_FILE_READ_ERROR, N_("premature end of file %s"), -+ argv[i]); -+ goto fail; -+ } -+ ptr += cursize; -+ grub_memset (ptr, 0, ALIGN_UP_OVERHEAD (cursize, 4)); -+ ptr += ALIGN_UP_OVERHEAD (cursize, 4); -+ } -+ -+ params->ramdisk_size = size; -+ -+ fail: -+ for (i = 0; i < nfiles; i++) -+ grub_file_close (files[i]); -+ grub_free (files); -+ -+ if (initrd_mem && grub_errno) -+ grub_efi_free_pages((grub_efi_physical_address_t)initrd_mem, BYTES_TO_PAGES(size)); -+ -+ return grub_errno; -+} -+ -+static grub_err_t -+grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), -+ int argc, char *argv[]) -+{ -+ grub_file_t file = 0; -+ struct linux_kernel_header lh; -+ grub_ssize_t len, start, filelen; -+ void *kernel; -+ -+ grub_dl_ref (my_mod); -+ -+ if (argc == 0) -+ { -+ grub_error (GRUB_ERR_BAD_ARGUMENT, N_("filename expected")); -+ goto fail; -+ } -+ -+ file = grub_file_open (argv[0]); -+ if (! file) -+ goto fail; -+ -+ filelen = grub_file_size (file); -+ -+ kernel = grub_malloc(filelen); -+ -+ if (!kernel) -+ { -+ grub_error (GRUB_ERR_OUT_OF_MEMORY, N_("cannot allocate kernel buffer")); -+ goto fail; -+ } -+ -+ if (grub_file_read (file, kernel, filelen) != filelen) -+ { -+ grub_error (GRUB_ERR_FILE_READ_ERROR, N_("Can't read kernel %s"), argv[0]); -+ goto fail; -+ } -+ -+ if (! grub_linuxefi_secure_validate (kernel, filelen)) -+ { -+ grub_error (GRUB_ERR_INVALID_COMMAND, N_("%s has invalid signature"), -+ argv[0]); -+ goto fail; -+ } -+ -+ grub_file_seek (file, 0); -+ -+ grub_free(kernel); -+ -+ params = grub_efi_allocate_pages_max (0x3fffffff, BYTES_TO_PAGES(16384)); -+ -+ if (! params) -+ { -+ grub_error (GRUB_ERR_OUT_OF_MEMORY, "cannot allocate kernel parameters"); -+ goto fail; -+ } -+ -+ memset (params, 0, 16384); -+ -+ if (grub_file_read (file, &lh, sizeof (lh)) != sizeof (lh)) -+ { -+ if (!grub_errno) -+ grub_error (GRUB_ERR_BAD_OS, N_("premature end of file %s"), -+ argv[0]); -+ goto fail; -+ } -+ -+ if (lh.boot_flag != grub_cpu_to_le16 (0xaa55)) -+ { -+ grub_error (GRUB_ERR_BAD_OS, N_("invalid magic number")); -+ goto fail; -+ } -+ -+ if (lh.setup_sects > GRUB_LINUX_MAX_SETUP_SECTS) -+ { -+ grub_error (GRUB_ERR_BAD_OS, N_("too many setup sectors")); -+ goto fail; -+ } -+ -+ if (lh.version < grub_cpu_to_le16 (0x020b)) -+ { -+ grub_error (GRUB_ERR_BAD_OS, N_("kernel too old")); -+ goto fail; -+ } -+ -+ if (!lh.handover_offset) -+ { -+ grub_error (GRUB_ERR_BAD_OS, N_("kernel doesn't support EFI handover")); -+ goto fail; -+ } -+ -+ linux_cmdline = grub_efi_allocate_pages_max(0x3fffffff, -+ BYTES_TO_PAGES(lh.cmdline_size + 1)); -+ -+ if (!linux_cmdline) -+ { -+ grub_error (GRUB_ERR_OUT_OF_MEMORY, N_("can't allocate cmdline")); -+ goto fail; -+ } -+ -+ grub_memcpy (linux_cmdline, LINUX_IMAGE, sizeof (LINUX_IMAGE)); -+ grub_create_loader_cmdline (argc, argv, -+ linux_cmdline + sizeof (LINUX_IMAGE) - 1, -+ lh.cmdline_size - (sizeof (LINUX_IMAGE) - 1)); -+ -+ lh.cmd_line_ptr = (grub_uint32_t)(grub_uint64_t)linux_cmdline; -+ -+ handover_offset = lh.handover_offset; -+ -+ start = (lh.setup_sects + 1) * 512; -+ len = grub_file_size(file) - start; -+ -+ kernel_mem = grub_efi_allocate_pages(lh.pref_address, -+ BYTES_TO_PAGES(lh.init_size)); -+ -+ if (!kernel_mem) -+ kernel_mem = grub_efi_allocate_pages_max(0x3fffffff, -+ BYTES_TO_PAGES(lh.init_size)); -+ -+ if (!kernel_mem) -+ { -+ grub_error (GRUB_ERR_OUT_OF_MEMORY, N_("can't allocate kernel")); -+ goto fail; -+ } -+ -+ if (grub_file_seek (file, start) == (grub_off_t) -1) -+ { -+ grub_error (GRUB_ERR_BAD_OS, N_("premature end of file %s"), -+ argv[0]); -+ goto fail; -+ } -+ -+ if (grub_file_read (file, kernel_mem, len) != len && !grub_errno) -+ { -+ grub_error (GRUB_ERR_BAD_OS, N_("premature end of file %s"), -+ argv[0]); -+ } -+ -+ if (grub_errno == GRUB_ERR_NONE) -+ { -+ grub_loader_set (grub_linuxefi_boot, grub_linuxefi_unload, 0); -+ loaded = 1; -+ lh.code32_start = (grub_uint32_t)(grub_uint64_t) kernel_mem; -+ } -+ -+ memcpy(params, &lh, 2 * 512); -+ -+ params->type_of_loader = 0x21; -+ -+ fail: -+ -+ if (file) -+ grub_file_close (file); -+ -+ if (grub_errno != GRUB_ERR_NONE) -+ { -+ grub_dl_unref (my_mod); -+ loaded = 0; -+ } -+ -+ if (linux_cmdline && !loaded) -+ grub_efi_free_pages((grub_efi_physical_address_t)linux_cmdline, BYTES_TO_PAGES(lh.cmdline_size + 1)); -+ -+ if (kernel_mem && !loaded) -+ grub_efi_free_pages((grub_efi_physical_address_t)kernel_mem, BYTES_TO_PAGES(kernel_size)); -+ -+ if (params && !loaded) -+ grub_efi_free_pages((grub_efi_physical_address_t)params, BYTES_TO_PAGES(16384)); -+ -+ return grub_errno; -+} -+ -+static grub_command_t cmd_linux, cmd_initrd; -+ -+GRUB_MOD_INIT(linuxefi) -+{ -+ cmd_linux = -+ grub_register_command ("linuxefi", grub_cmd_linux, -+ 0, N_("Load Linux.")); -+ cmd_initrd = -+ grub_register_command ("initrdefi", grub_cmd_initrd, -+ 0, N_("Load initrd.")); -+ my_mod = mod; -+} -+ -+GRUB_MOD_FINI(linuxefi) -+{ -+ grub_unregister_command (cmd_linux); -+ grub_unregister_command (cmd_initrd); -+} -diff --git a/include/grub/efi/efi.h b/include/grub/efi/efi.h -index e9c601f34..764cd11f5 100644 ---- a/include/grub/efi/efi.h -+++ b/include/grub/efi/efi.h -@@ -40,6 +40,9 @@ void EXPORT_FUNC(grub_efi_stall) (grub_efi_uintn_t microseconds); - void * - EXPORT_FUNC(grub_efi_allocate_pages) (grub_efi_physical_address_t address, - grub_efi_uintn_t pages); -+void * -+EXPORT_FUNC(grub_efi_allocate_pages_max) (grub_efi_physical_address_t max, -+ grub_efi_uintn_t pages); - void EXPORT_FUNC(grub_efi_free_pages) (grub_efi_physical_address_t address, - grub_efi_uintn_t pages); - int -diff --git a/include/grub/i386/linux.h b/include/grub/i386/linux.h -index da0ca3b83..fc36bdaf3 100644 ---- a/include/grub/i386/linux.h -+++ b/include/grub/i386/linux.h -@@ -139,6 +139,7 @@ struct linux_kernel_header - grub_uint64_t setup_data; - grub_uint64_t pref_address; - grub_uint32_t init_size; -+ grub_uint32_t handover_offset; - } GRUB_PACKED; - - /* Boot parameters for Linux based on 2.6.12. This is used by the setup diff --git a/patches/grub/2.02/linuxefi_add_sb_to_efi_chainload.patch b/patches/grub/2.02/linuxefi_add_sb_to_efi_chainload.patch deleted file mode 100644 index 7557cd81b..000000000 --- a/patches/grub/2.02/linuxefi_add_sb_to_efi_chainload.patch +++ /dev/null @@ -1,816 +0,0 @@ -From dffbb7316bdbee9595d0e2c247972ec70bf8bec6 Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Tue, 6 Oct 2015 13:04:37 -0400 -Subject: Add secureboot support on efi chainloader - -Expand the chainloader to be able to verify the image by means of shim -lock protocol. The PE/COFF image is loaded and relocated by the -chainloader instead of calling LoadImage and StartImage UEFI boot -Service as they require positive verification result from keys enrolled -in KEK or DB. The shim will use MOK in addition to firmware enrolled -keys to verify the image. - -The chainloader module could be used to load other UEFI bootloaders, -such as xen.efi, and could be signed by any of MOK, KEK or DB. - -Based on https://build.opensuse.org/package/view_file/openSUSE:Factory/grub2/grub2-secureboot-chainloader.patch - -Signed-off-by: Peter Jones - -Origin: vendor, https://github.com/rhboot/grub2/commit/a00fc9f578d2c310438ced8d4be07f5fa4005873 -Forwarded: no -Last-Update: 2017-11-01 - -Patch-Name: linuxefi_add_sb_to_efi_chainload.patch ---- - grub-core/Makefile.core.def | 1 + - grub-core/loader/efi/chainloader.c | 612 ++++++++++++++++++++++++++++++++++--- - include/grub/efi/pe32.h | 20 +- - 3 files changed, 596 insertions(+), 37 deletions(-) - -diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def -index 1b642472e..9b7b661ff 100644 ---- a/grub-core/Makefile.core.def -+++ b/grub-core/Makefile.core.def -@@ -1747,6 +1747,7 @@ module = { - module = { - name = chain; - efi = loader/efi/chainloader.c; -+ efi = loader/efi/linux.c; - i386_pc = loader/i386/pc/chainloader.c; - i386_coreboot = loader/i386/coreboot/chainloader.c; - i386_coreboot = lib/LzmaDec.c; -diff --git a/grub-core/loader/efi/chainloader.c b/grub-core/loader/efi/chainloader.c -index 14ce6ddd7..456043407 100644 ---- a/grub-core/loader/efi/chainloader.c -+++ b/grub-core/loader/efi/chainloader.c -@@ -32,6 +32,8 @@ - #include - #include - #include -+#include -+#include - #include - #include - #include -@@ -46,9 +48,14 @@ static grub_dl_t my_mod; - - static grub_efi_physical_address_t address; - static grub_efi_uintn_t pages; -+static grub_ssize_t fsize; - static grub_efi_device_path_t *file_path; - static grub_efi_handle_t image_handle; - static grub_efi_char16_t *cmdline; -+static grub_ssize_t cmdline_len; -+static grub_efi_handle_t dev_handle; -+ -+static grub_efi_status_t (*entry_point) (grub_efi_handle_t image_handle, grub_efi_system_table_t *system_table); - - static grub_err_t - grub_chainloader_unload (void) -@@ -63,6 +70,7 @@ grub_chainloader_unload (void) - grub_free (cmdline); - cmdline = 0; - file_path = 0; -+ dev_handle = 0; - - grub_dl_unref (my_mod); - return GRUB_ERR_NONE; -@@ -191,12 +199,523 @@ make_file_path (grub_efi_device_path_t *dp, const char *filename) - return file_path; - } - -+#define SHIM_LOCK_GUID \ -+ { 0x605dab50, 0xe046, 0x4300, { 0xab,0xb6,0x3d,0xd8,0x10,0xdd,0x8b,0x23 } } -+ -+typedef union -+{ -+ struct grub_pe32_header_32 pe32; -+ struct grub_pe32_header_64 pe32plus; -+} grub_pe_header_t; -+ -+struct pe_coff_loader_image_context -+{ -+ grub_efi_uint64_t image_address; -+ grub_efi_uint64_t image_size; -+ grub_efi_uint64_t entry_point; -+ grub_efi_uintn_t size_of_headers; -+ grub_efi_uint16_t image_type; -+ grub_efi_uint16_t number_of_sections; -+ grub_efi_uint32_t section_alignment; -+ struct grub_pe32_section_table *first_section; -+ struct grub_pe32_data_directory *reloc_dir; -+ struct grub_pe32_data_directory *sec_dir; -+ grub_efi_uint64_t number_of_rva_and_sizes; -+ grub_pe_header_t *pe_hdr; -+}; -+ -+typedef struct pe_coff_loader_image_context pe_coff_loader_image_context_t; -+ -+struct grub_efi_shim_lock -+{ -+ grub_efi_status_t (*verify)(void *buffer, -+ grub_efi_uint32_t size); -+ grub_efi_status_t (*hash)(void *data, -+ grub_efi_int32_t datasize, -+ pe_coff_loader_image_context_t *context, -+ grub_efi_uint8_t *sha256hash, -+ grub_efi_uint8_t *sha1hash); -+ grub_efi_status_t (*context)(void *data, -+ grub_efi_uint32_t size, -+ pe_coff_loader_image_context_t *context); -+}; -+ -+typedef struct grub_efi_shim_lock grub_efi_shim_lock_t; -+ -+static grub_efi_boolean_t -+read_header (void *data, grub_efi_uint32_t size, -+ pe_coff_loader_image_context_t *context) -+{ -+ grub_efi_guid_t guid = SHIM_LOCK_GUID; -+ grub_efi_shim_lock_t *shim_lock; -+ grub_efi_status_t status; -+ -+ shim_lock = grub_efi_locate_protocol (&guid, NULL); -+ -+ if (!shim_lock) -+ { -+ grub_error (GRUB_ERR_BAD_ARGUMENT, "no shim lock protocol"); -+ return 0; -+ } -+ -+ status = shim_lock->context (data, size, context); -+ -+ if (status == GRUB_EFI_SUCCESS) -+ { -+ grub_dprintf ("chain", "context success\n"); -+ return 1; -+ } -+ -+ switch (status) -+ { -+ case GRUB_EFI_UNSUPPORTED: -+ grub_error (GRUB_ERR_BAD_ARGUMENT, "context error unsupported"); -+ break; -+ case GRUB_EFI_INVALID_PARAMETER: -+ grub_error (GRUB_ERR_BAD_ARGUMENT, "context error invalid parameter"); -+ break; -+ default: -+ grub_error (GRUB_ERR_BAD_ARGUMENT, "context error code"); -+ break; -+ } -+ -+ return 0; -+} -+ -+static void* -+image_address (void *image, grub_efi_uint64_t sz, grub_efi_uint64_t adr) -+{ -+ if (adr > sz) -+ return NULL; -+ -+ return ((grub_uint8_t*)image + adr); -+} -+ -+static int -+image_is_64_bit (grub_pe_header_t *pe_hdr) -+{ -+ /* .Magic is the same offset in all cases */ -+ if (pe_hdr->pe32plus.optional_header.magic == GRUB_PE32_PE64_MAGIC) -+ return 1; -+ return 0; -+} -+ -+static const grub_uint16_t machine_type = -+#if defined(__x86_64__) -+ GRUB_PE32_MACHINE_X86_64; -+#elif defined(__aarch64__) -+ GRUB_PE32_MACHINE_ARM64; -+#elif defined(__arm__) -+ GRUB_PE32_MACHINE_ARMTHUMB_MIXED; -+#elif defined(__i386__) || defined(__i486__) || defined(__i686__) -+ GRUB_PE32_MACHINE_I386; -+#elif defined(__ia64__) -+ GRUB_PE32_MACHINE_IA64; -+#else -+#error this architecture is not supported by grub2 -+#endif -+ -+static grub_efi_status_t -+relocate_coff (pe_coff_loader_image_context_t *context, -+ struct grub_pe32_section_table *section, -+ void *orig, void *data) -+{ -+ struct grub_pe32_data_directory *reloc_base, *reloc_base_end; -+ grub_efi_uint64_t adjust; -+ struct grub_pe32_fixup_block *reloc, *reloc_end; -+ char *fixup, *fixup_base, *fixup_data = NULL; -+ grub_efi_uint16_t *fixup_16; -+ grub_efi_uint32_t *fixup_32; -+ grub_efi_uint64_t *fixup_64; -+ grub_efi_uint64_t size = context->image_size; -+ void *image_end = (char *)orig + size; -+ int n = 0; -+ -+ if (image_is_64_bit (context->pe_hdr)) -+ context->pe_hdr->pe32plus.optional_header.image_base = -+ (grub_uint64_t)(unsigned long)data; -+ else -+ context->pe_hdr->pe32.optional_header.image_base = -+ (grub_uint32_t)(unsigned long)data; -+ -+ /* Alright, so here's how this works: -+ * -+ * context->reloc_dir gives us two things: -+ * - the VA the table of base relocation blocks are (maybe) to be -+ * mapped at (reloc_dir->rva) -+ * - the virtual size (reloc_dir->size) -+ * -+ * The .reloc section (section here) gives us some other things: -+ * - the name! kind of. (section->name) -+ * - the virtual size (section->virtual_size), which should be the same -+ * as RelocDir->Size -+ * - the virtual address (section->virtual_address) -+ * - the file section size (section->raw_data_size), which is -+ * a multiple of optional_header->file_alignment. Only useful for image -+ * validation, not really useful for iteration bounds. -+ * - the file address (section->raw_data_offset) -+ * - a bunch of stuff we don't use that's 0 in our binaries usually -+ * - Flags (section->characteristics) -+ * -+ * and then the thing that's actually at the file address is an array -+ * of struct grub_pe32_fixup_block structs with some values packed behind -+ * them. The block_size field of this structure includes the -+ * structure itself, and adding it to that structure's address will -+ * yield the next entry in the array. -+ */ -+ -+ reloc_base = image_address (orig, size, section->raw_data_offset); -+ reloc_base_end = image_address (orig, size, section->raw_data_offset -+ + section->virtual_size - 1); -+ -+ grub_dprintf ("chain", "reloc_base %p reloc_base_end %p\n", reloc_base, -+ reloc_base_end); -+ -+ if (!reloc_base && !reloc_base_end) -+ return GRUB_EFI_SUCCESS; -+ -+ if (!reloc_base || !reloc_base_end) -+ { -+ grub_error (GRUB_ERR_BAD_ARGUMENT, "Reloc table overflows binary"); -+ return GRUB_EFI_UNSUPPORTED; -+ } -+ -+ adjust = (grub_uint64_t)data - context->image_address; -+ if (adjust == 0) -+ return GRUB_EFI_SUCCESS; -+ -+ while (reloc_base < reloc_base_end) -+ { -+ grub_uint16_t *entry; -+ reloc = (struct grub_pe32_fixup_block *)((char*)reloc_base); -+ -+ if ((reloc_base->size == 0) || -+ (reloc_base->size > context->reloc_dir->size)) -+ { -+ grub_error (GRUB_ERR_BAD_ARGUMENT, -+ "Reloc %d block size %d is invalid\n", n, -+ reloc_base->size); -+ return GRUB_EFI_UNSUPPORTED; -+ } -+ -+ entry = &reloc->entries[0]; -+ reloc_end = (struct grub_pe32_fixup_block *) -+ ((char *)reloc_base + reloc_base->size); -+ -+ if ((void *)reloc_end < data || (void *)reloc_end > image_end) -+ { -+ grub_error (GRUB_ERR_BAD_ARGUMENT, "Reloc entry %d overflows binary", -+ n); -+ return GRUB_EFI_UNSUPPORTED; -+ } -+ -+ fixup_base = image_address(data, size, reloc_base->rva); -+ -+ if (!fixup_base) -+ { -+ grub_error (GRUB_ERR_BAD_ARGUMENT, "Reloc %d Invalid fixupbase", n); -+ return GRUB_EFI_UNSUPPORTED; -+ } -+ -+ while ((void *)entry < (void *)reloc_end) -+ { -+ fixup = fixup_base + (*entry & 0xFFF); -+ switch ((*entry) >> 12) -+ { -+ case GRUB_PE32_REL_BASED_ABSOLUTE: -+ break; -+ case GRUB_PE32_REL_BASED_HIGH: -+ fixup_16 = (grub_uint16_t *)fixup; -+ *fixup_16 = (grub_uint16_t) -+ (*fixup_16 + ((grub_uint16_t)((grub_uint32_t)adjust >> 16))); -+ if (fixup_data != NULL) -+ { -+ *(grub_uint16_t *) fixup_data = *fixup_16; -+ fixup_data = fixup_data + sizeof (grub_uint16_t); -+ } -+ break; -+ case GRUB_PE32_REL_BASED_LOW: -+ fixup_16 = (grub_uint16_t *)fixup; -+ *fixup_16 = (grub_uint16_t) (*fixup_16 + (grub_uint16_t)adjust); -+ if (fixup_data != NULL) -+ { -+ *(grub_uint16_t *) fixup_data = *fixup_16; -+ fixup_data = fixup_data + sizeof (grub_uint16_t); -+ } -+ break; -+ case GRUB_PE32_REL_BASED_HIGHLOW: -+ fixup_32 = (grub_uint32_t *)fixup; -+ *fixup_32 = *fixup_32 + (grub_uint32_t)adjust; -+ if (fixup_data != NULL) -+ { -+ fixup_data = (char *)ALIGN_UP ((grub_addr_t)fixup_data, sizeof (grub_uint32_t)); -+ *(grub_uint32_t *) fixup_data = *fixup_32; -+ fixup_data += sizeof (grub_uint32_t); -+ } -+ break; -+ case GRUB_PE32_REL_BASED_DIR64: -+ fixup_64 = (grub_uint64_t *)fixup; -+ *fixup_64 = *fixup_64 + (grub_uint64_t)adjust; -+ if (fixup_data != NULL) -+ { -+ fixup_data = (char *)ALIGN_UP ((grub_addr_t)fixup_data, sizeof (grub_uint64_t)); -+ *(grub_uint64_t *) fixup_data = *fixup_64; -+ fixup_data += sizeof (grub_uint64_t); -+ } -+ break; -+ default: -+ grub_error (GRUB_ERR_BAD_ARGUMENT, -+ "Reloc %d unknown relocation type %d", -+ n, (*entry) >> 12); -+ return GRUB_EFI_UNSUPPORTED; -+ } -+ entry += 1; -+ } -+ reloc_base = (struct grub_pe32_data_directory *)reloc_end; -+ n++; -+ } -+ -+ return GRUB_EFI_SUCCESS; -+} -+ -+static grub_efi_device_path_t * -+grub_efi_get_media_file_path (grub_efi_device_path_t *dp) -+{ -+ while (1) -+ { -+ grub_efi_uint8_t type = GRUB_EFI_DEVICE_PATH_TYPE (dp); -+ grub_efi_uint8_t subtype = GRUB_EFI_DEVICE_PATH_SUBTYPE (dp); -+ -+ if (type == GRUB_EFI_END_DEVICE_PATH_TYPE) -+ break; -+ else if (type == GRUB_EFI_MEDIA_DEVICE_PATH_TYPE -+ && subtype == GRUB_EFI_FILE_PATH_DEVICE_PATH_SUBTYPE) -+ return dp; -+ -+ dp = GRUB_EFI_NEXT_DEVICE_PATH (dp); -+ } -+ -+ return NULL; -+} -+ -+static grub_efi_boolean_t -+handle_image (void *data, grub_efi_uint32_t datasize) -+{ -+ grub_efi_boot_services_t *b; -+ grub_efi_loaded_image_t *li, li_bak; -+ grub_efi_status_t efi_status; -+ char *buffer = NULL; -+ char *buffer_aligned = NULL; -+ grub_efi_uint32_t i, size; -+ struct grub_pe32_section_table *section; -+ char *base, *end; -+ pe_coff_loader_image_context_t context; -+ grub_uint32_t section_alignment; -+ grub_uint32_t buffer_size; -+ -+ b = grub_efi_system_table->boot_services; -+ -+ if (read_header (data, datasize, &context)) -+ { -+ grub_dprintf ("chain", "Succeed to read header\n"); -+ } -+ else -+ { -+ grub_dprintf ("chain", "Failed to read header\n"); -+ goto error_exit; -+ } -+ -+ section_alignment = context.section_alignment; -+ buffer_size = context.image_size + section_alignment; -+ -+ efi_status = efi_call_3 (b->allocate_pool, GRUB_EFI_LOADER_DATA, -+ buffer_size, (void**) &buffer); -+ -+ if (efi_status != GRUB_EFI_SUCCESS) -+ { -+ grub_error (GRUB_ERR_OUT_OF_MEMORY, N_("out of memory")); -+ goto error_exit; -+ } -+ -+ buffer_aligned = (char *)ALIGN_UP ((grub_addr_t)buffer, section_alignment); -+ -+ if (!buffer_aligned) -+ { -+ grub_error (GRUB_ERR_OUT_OF_MEMORY, N_("out of memory")); -+ goto error_exit; -+ } -+ -+ grub_memcpy (buffer_aligned, data, context.size_of_headers); -+ -+ char *reloc_base, *reloc_base_end; -+ reloc_base = image_address (buffer_aligned, datasize, -+ context.reloc_dir->rva); -+ /* RelocBaseEnd here is the address of the last byte of the table */ -+ reloc_base_end = image_address (buffer_aligned, datasize, -+ context.reloc_dir->rva -+ + context.reloc_dir->size - 1); -+ struct grub_pe32_section_table *reloc_section = NULL; -+ -+ section = context.first_section; -+ for (i = 0; i < context.number_of_sections; i++, section++) -+ { -+ size = section->virtual_size; -+ if (size > section->raw_data_size) -+ size = section->raw_data_size; -+ -+ base = image_address (buffer_aligned, context.image_size, -+ section->virtual_address); -+ end = image_address (buffer_aligned, context.image_size, -+ section->virtual_address + size - 1); -+ -+ -+ /* We do want to process .reloc, but it's often marked -+ * discardable, so we don't want to memcpy it. */ -+ if (grub_memcmp (section->name, ".reloc\0\0", 8) == 0) -+ { -+ if (reloc_section) -+ { -+ grub_error (GRUB_ERR_BAD_ARGUMENT, -+ "Image has multiple relocation sections"); -+ goto error_exit; -+ } -+ -+ /* If it has nonzero sizes, and our bounds check -+ * made sense, and the VA and size match RelocDir's -+ * versions, then we believe in this section table. */ -+ if (section->raw_data_size && section->virtual_size && -+ base && end && reloc_base == base && reloc_base_end == end) -+ { -+ reloc_section = section; -+ } -+ } -+ -+ if (section->characteristics && GRUB_PE32_SCN_MEM_DISCARDABLE) -+ continue; -+ -+ if (!base || !end) -+ { -+ grub_error (GRUB_ERR_BAD_ARGUMENT, "Invalid section size"); -+ goto error_exit; -+ } -+ -+ if (section->virtual_address < context.size_of_headers || -+ section->raw_data_offset < context.size_of_headers) -+ { -+ grub_error (GRUB_ERR_BAD_ARGUMENT, -+ "Section %d is inside image headers", i); -+ goto error_exit; -+ } -+ -+ if (section->raw_data_size > 0) -+ grub_memcpy (base, (grub_efi_uint8_t*)data + section->raw_data_offset, -+ size); -+ -+ if (size < section->virtual_size) -+ grub_memset (base + size, 0, section->virtual_size - size); -+ -+ grub_dprintf ("chain", "copied section %s\n", section->name); -+ } -+ -+ /* 5 == EFI_IMAGE_DIRECTORY_ENTRY_BASERELOC */ -+ if (context.number_of_rva_and_sizes <= 5) -+ { -+ grub_dprintf ("chain", "image has no relocation entry\n"); -+ goto error_exit; -+ } -+ -+ if (context.reloc_dir->size && reloc_section) -+ { -+ /* run the relocation fixups */ -+ efi_status = relocate_coff (&context, reloc_section, data, -+ buffer_aligned); -+ -+ if (efi_status != GRUB_EFI_SUCCESS) -+ { -+ grub_error (GRUB_ERR_BAD_ARGUMENT, "relocation failed"); -+ goto error_exit; -+ } -+ } -+ -+ entry_point = image_address (buffer_aligned, context.image_size, -+ context.entry_point); -+ -+ if (!entry_point) -+ { -+ grub_error (GRUB_ERR_BAD_ARGUMENT, "invalid entry point"); -+ goto error_exit; -+ } -+ -+ li = grub_efi_get_loaded_image (grub_efi_image_handle); -+ if (!li) -+ { -+ grub_error (GRUB_ERR_BAD_ARGUMENT, "no loaded image available"); -+ goto error_exit; -+ } -+ -+ grub_memcpy (&li_bak, li, sizeof (grub_efi_loaded_image_t)); -+ li->image_base = buffer_aligned; -+ li->image_size = context.image_size; -+ li->load_options = cmdline; -+ li->load_options_size = cmdline_len; -+ li->file_path = grub_efi_get_media_file_path (file_path); -+ li->device_handle = dev_handle; -+ if (li->file_path) -+ { -+ grub_printf ("file path: "); -+ grub_efi_print_device_path (li->file_path); -+ } -+ else -+ { -+ grub_error (GRUB_ERR_UNKNOWN_DEVICE, "no matching file path found"); -+ goto error_exit; -+ } -+ -+ efi_status = efi_call_2 (entry_point, grub_efi_image_handle, -+ grub_efi_system_table); -+ -+ grub_memcpy (li, &li_bak, sizeof (grub_efi_loaded_image_t)); -+ efi_status = efi_call_1 (b->free_pool, buffer); -+ -+ return 1; -+ -+error_exit: -+ if (buffer) -+ efi_call_1 (b->free_pool, buffer); -+ -+ return 0; -+} -+ -+static grub_err_t -+grub_secureboot_chainloader_unload (void) -+{ -+ grub_efi_boot_services_t *b; -+ -+ b = grub_efi_system_table->boot_services; -+ efi_call_2 (b->free_pages, address, pages); -+ grub_free (file_path); -+ grub_free (cmdline); -+ cmdline = 0; -+ file_path = 0; -+ dev_handle = 0; -+ -+ grub_dl_unref (my_mod); -+ return GRUB_ERR_NONE; -+} -+ -+static grub_err_t -+grub_secureboot_chainloader_boot (void) -+{ -+ handle_image ((void *)address, fsize); -+ grub_loader_unset (); -+ return grub_errno; -+} -+ - static grub_err_t - grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)), - int argc, char *argv[]) - { - grub_file_t file = 0; -- grub_ssize_t size; - grub_efi_status_t status; - grub_efi_boot_services_t *b; - grub_device_t dev = 0; -@@ -204,7 +723,6 @@ grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)), - grub_efi_loaded_image_t *loaded_image; - char *filename; - void *boot_image = 0; -- grub_efi_handle_t dev_handle = 0; - - if (argc == 0) - return grub_error (GRUB_ERR_BAD_ARGUMENT, N_("filename expected")); -@@ -216,9 +734,36 @@ grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)), - address = 0; - image_handle = 0; - file_path = 0; -+ dev_handle = 0; - - b = grub_efi_system_table->boot_services; - -+ if (argc > 1) -+ { -+ int i; -+ grub_efi_char16_t *p16; -+ -+ for (i = 1, cmdline_len = 0; i < argc; i++) -+ cmdline_len += grub_strlen (argv[i]) + 1; -+ -+ cmdline_len *= sizeof (grub_efi_char16_t); -+ cmdline = p16 = grub_malloc (cmdline_len); -+ if (! cmdline) -+ goto fail; -+ -+ for (i = 1; i < argc; i++) -+ { -+ char *p8; -+ -+ p8 = argv[i]; -+ while (*p8) -+ *(p16++) = *(p8++); -+ -+ *(p16++) = ' '; -+ } -+ *(--p16) = 0; -+ } -+ - file = grub_file_open (filename); - if (! file) - goto fail; -@@ -267,14 +812,14 @@ grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)), - grub_printf ("file path: "); - grub_efi_print_device_path (file_path); - -- size = grub_file_size (file); -- if (!size) -+ fsize = grub_file_size (file); -+ if (!fsize) - { - grub_error (GRUB_ERR_BAD_OS, N_("premature end of file %s"), - filename); - goto fail; - } -- pages = (((grub_efi_uintn_t) size + ((1 << 12) - 1)) >> 12); -+ pages = (((grub_efi_uintn_t) fsize + ((1 << 12) - 1)) >> 12); - - status = efi_call_4 (b->allocate_pages, GRUB_EFI_ALLOCATE_ANY_PAGES, - GRUB_EFI_LOADER_CODE, -@@ -288,7 +833,7 @@ grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)), - } - - boot_image = (void *) ((grub_addr_t) address); -- if (grub_file_read (file, boot_image, size) != size) -+ if (grub_file_read (file, boot_image, fsize) != fsize) - { - if (grub_errno == GRUB_ERR_NONE) - grub_error (GRUB_ERR_BAD_OS, N_("premature end of file %s"), -@@ -298,7 +843,7 @@ grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)), - } - - #if defined (__i386__) || defined (__x86_64__) -- if (size >= (grub_ssize_t) sizeof (struct grub_macho_fat_header)) -+ if (fsize >= (grub_ssize_t) sizeof (struct grub_macho_fat_header)) - { - struct grub_macho_fat_header *head = boot_image; - if (head->magic -@@ -307,6 +852,14 @@ grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)), - grub_uint32_t i; - struct grub_macho_fat_arch *archs - = (struct grub_macho_fat_arch *) (head + 1); -+ -+ if (grub_efi_secure_boot()) -+ { -+ grub_error (GRUB_ERR_BAD_OS, -+ "MACHO binaries are forbidden with Secure Boot"); -+ goto fail; -+ } -+ - for (i = 0; i < grub_cpu_to_le32 (head->nfat_arch); i++) - { - if (GRUB_MACHO_CPUTYPE_IS_HOST_CURRENT (archs[i].cputype)) -@@ -321,21 +874,28 @@ grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)), - > ~grub_cpu_to_le32 (archs[i].size) - || grub_cpu_to_le32 (archs[i].offset) - + grub_cpu_to_le32 (archs[i].size) -- > (grub_size_t) size) -+ > (grub_size_t) fsize) - { - grub_error (GRUB_ERR_BAD_OS, N_("premature end of file %s"), - filename); - goto fail; - } - boot_image = (char *) boot_image + grub_cpu_to_le32 (archs[i].offset); -- size = grub_cpu_to_le32 (archs[i].size); -+ fsize = grub_cpu_to_le32 (archs[i].size); - } - } - #endif - -+ if (grub_linuxefi_secure_validate((void *)address, fsize)) -+ { -+ grub_file_close (file); -+ grub_loader_set (grub_secureboot_chainloader_boot, -+ grub_secureboot_chainloader_unload, 0); -+ return 0; -+ } -+ - status = efi_call_6 (b->load_image, 0, grub_efi_image_handle, file_path, -- boot_image, size, -- &image_handle); -+ boot_image, fsize, &image_handle); - if (status != GRUB_EFI_SUCCESS) - { - if (status == GRUB_EFI_OUT_OF_RESOURCES) -@@ -357,33 +917,10 @@ grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)), - } - loaded_image->device_handle = dev_handle; - -- if (argc > 1) -+ if (cmdline) - { -- int i, len; -- grub_efi_char16_t *p16; -- -- for (i = 1, len = 0; i < argc; i++) -- len += grub_strlen (argv[i]) + 1; -- -- len *= sizeof (grub_efi_char16_t); -- cmdline = p16 = grub_malloc (len); -- if (! cmdline) -- goto fail; -- -- for (i = 1; i < argc; i++) -- { -- char *p8; -- -- p8 = argv[i]; -- while (*p8) -- *(p16++) = *(p8++); -- -- *(p16++) = ' '; -- } -- *(--p16) = 0; -- - loaded_image->load_options = cmdline; -- loaded_image->load_options_size = len; -+ loaded_image->load_options_size = cmdline_len; - } - - grub_file_close (file); -@@ -405,6 +942,9 @@ grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)), - if (address) - efi_call_2 (b->free_pages, address, pages); - -+ if (cmdline) -+ grub_free (cmdline); -+ - grub_dl_unref (my_mod); - - return grub_errno; -diff --git a/include/grub/efi/pe32.h b/include/grub/efi/pe32.h -index f79c36c02..f79782e1b 100644 ---- a/include/grub/efi/pe32.h -+++ b/include/grub/efi/pe32.h -@@ -212,7 +212,11 @@ struct grub_pe64_optional_header - struct grub_pe32_section_table - { - char name[8]; -- grub_uint32_t virtual_size; -+ union -+ { -+ grub_uint32_t physical_address; -+ grub_uint32_t virtual_size; -+ }; - grub_uint32_t virtual_address; - grub_uint32_t raw_data_size; - grub_uint32_t raw_data_offset; -@@ -263,6 +267,20 @@ struct grub_pe32_header - #endif - }; - -+struct grub_pe32_header_32 -+{ -+ char signature[GRUB_PE32_SIGNATURE_SIZE]; -+ struct grub_pe32_coff_header coff_header; -+ struct grub_pe32_optional_header optional_header; -+}; -+ -+struct grub_pe32_header_64 -+{ -+ char signature[GRUB_PE32_SIGNATURE_SIZE]; -+ struct grub_pe32_coff_header coff_header; -+ struct grub_pe64_optional_header optional_header; -+}; -+ - struct grub_pe32_fixup_block - { - grub_uint32_t page_rva; diff --git a/patches/grub/2.02/linuxefi_cleanup_errors_in_loader.patch b/patches/grub/2.02/linuxefi_cleanup_errors_in_loader.patch deleted file mode 100644 index 294f8276e..000000000 --- a/patches/grub/2.02/linuxefi_cleanup_errors_in_loader.patch +++ /dev/null @@ -1,103 +0,0 @@ -From 6c8809100c8e55c3278d2b95c00213a18e433e4c Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Wed, 24 May 2017 15:58:18 -0400 -Subject: Clean up some errors in the linuxefi loader - -Signed-off-by: Peter Jones - -Origin: vendor, https://github.com/rhboot/grub2/commit/df0d3873162dd7e9352e1d4fbd589aa60e722f2e -Forwarded: no -Last-Update: 2017-11-01 - -Patch-Name: linuxefi_cleanup_errors_in_loader.patch ---- - grub-core/loader/i386/efi/linux.c | 16 ++++++++-------- - grub-core/loader/i386/linux.c | 5 ++++- - 2 files changed, 12 insertions(+), 9 deletions(-) - -diff --git a/grub-core/loader/i386/efi/linux.c b/grub-core/loader/i386/efi/linux.c -index d466cafd9..9a3f7477b 100644 ---- a/grub-core/loader/i386/efi/linux.c -+++ b/grub-core/loader/i386/efi/linux.c -@@ -162,8 +162,8 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - int argc, char *argv[]) - { - grub_file_t file = 0; -- struct linux_kernel_header *lh; -- grub_ssize_t len, start, filelen; -+ struct linux_kernel_header *lh = NULL; -+ grub_ssize_t start, filelen; - void *kernel = NULL; - int setup_header_end_offset; - int rc; -@@ -213,18 +213,19 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - goto fail; - } - -- grub_dprintf ("linuxefi", "params = %p\n", (unsigned long) params); -+ grub_dprintf ("linuxefi", "params = %p\n", params); - - grub_memset (params, 0, sizeof(*params)); - - setup_header_end_offset = *((grub_uint8_t *)kernel + 0x201); -- grub_dprintf ("linuxefi", "copying %d bytes from %p to %p\n", -- MIN(0x202+setup_header_end_offset,sizeof (*params)) - 0x1f1, -+ grub_dprintf ("linuxefi", "copying %zu bytes from %p to %p\n", -+ MIN((grub_size_t)0x202+setup_header_end_offset, -+ sizeof (*params)) - 0x1f1, - (grub_uint8_t *)kernel + 0x1f1, - (grub_uint8_t *)params + 0x1f1); - grub_memcpy ((grub_uint8_t *)params + 0x1f1, - (grub_uint8_t *)kernel + 0x1f1, -- MIN(0x202+setup_header_end_offset,sizeof (*params)) - 0x1f1); -+ MIN((grub_size_t)0x202+setup_header_end_offset,sizeof (*params)) - 0x1f1); - lh = (struct linux_kernel_header *)params; - grub_dprintf ("linuxefi", "lh is at %p\n", lh); - grub_dprintf ("linuxefi", "checking lh->boot_flag\n"); -@@ -298,7 +299,6 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - handover_offset = lh->handover_offset; - - start = (lh->setup_sects + 1) * 512; -- len = grub_file_size(file) - start; - - kernel_mem = grub_efi_allocate_pages(lh->pref_address, - BYTES_TO_PAGES(lh->init_size)); -@@ -344,7 +344,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - loaded = 0; - } - -- if (linux_cmdline && !loaded) -+ if (linux_cmdline && lh && !loaded) - grub_efi_free_pages ((grub_efi_physical_address_t)(grub_addr_t) - linux_cmdline, - BYTES_TO_PAGES(lh->cmdline_size + 1)); -diff --git a/grub-core/loader/i386/linux.c b/grub-core/loader/i386/linux.c -index e4b8342f5..c9e89310b 100644 ---- a/grub-core/loader/i386/linux.c -+++ b/grub-core/loader/i386/linux.c -@@ -680,6 +680,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - { - grub_file_t file = 0; - struct linux_kernel_header lh; -+ grub_uint8_t *linux_params_ptr; - grub_uint8_t setup_sects; - grub_size_t real_size, prot_size, prot_file_size, kernel_offset; - grub_ssize_t len; -@@ -811,6 +812,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - preferred_address)) - goto fail; - -+ - grub_memset (&linux_params, 0, sizeof (linux_params)); - grub_memcpy (&linux_params.setup_sects, &lh.setup_sects, sizeof (lh) - 0x1F1); - -@@ -820,7 +822,8 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - - len = sizeof (linux_params) - sizeof (lh); - -- grub_memcpy (&linux_params + sizeof (lh), kernel + kernel_offset, len); -+ linux_params_ptr = (void *)&linux_params; -+ grub_memcpy (linux_params_ptr + sizeof (lh), kernel + kernel_offset, len); - kernel_offset += len; - - linux_params.type_of_loader = GRUB_LINUX_BOOT_LOADER_TYPE; diff --git a/patches/grub/2.02/linuxefi_debug.patch b/patches/grub/2.02/linuxefi_debug.patch deleted file mode 100644 index 434919fb4..000000000 --- a/patches/grub/2.02/linuxefi_debug.patch +++ /dev/null @@ -1,99 +0,0 @@ -From 35cc4a78cc5fa386336061bc7edbd3f054dc3508 Mon Sep 17 00:00:00 2001 -From: Mathieu Trudel-Lapierre -Date: Wed, 1 Nov 2017 13:39:59 -0400 -Subject: Add some grub_dprintf() in the linuxefi path. - -Signed-off-by: Peter Jones - -Origin: vendor, https://github.com/rhboot/grub2/commit/527a427a8edf05d8994f679a16d0dc98106563f4 -Forwarded: no -Last-Update: 2017-11-01 - -Patch-Name: linuxefi_debug.patch ---- - grub-core/loader/efi/linux.c | 16 +++++++++++++--- - grub-core/loader/i386/efi/linux.c | 11 ++++++++++- - 2 files changed, 23 insertions(+), 4 deletions(-) - -diff --git a/grub-core/loader/efi/linux.c b/grub-core/loader/efi/linux.c -index 8890bdf05..dbf63e20e 100644 ---- a/grub-core/loader/efi/linux.c -+++ b/grub-core/loader/efi/linux.c -@@ -43,12 +43,22 @@ grub_linuxefi_secure_validate (void *data, grub_uint32_t size) - shim_lock = grub_efi_locate_protocol(&guid, NULL); - grub_dprintf ("secureboot", "shim_lock: %p\n", shim_lock); - if (!shim_lock) -- return 0; -+ { -+ grub_dprintf ("secureboot", "shim not available\n"); -+ return 0; -+ } - -- status = shim_lock->verify(data, size); -+ grub_dprintf ("secureboot", "Asking shim to verify kernel signature\n"); -+ status = shim_lock->verify (data, size); - grub_dprintf ("secureboot", "shim_lock->verify(): %ld\n", status); - if (status == GRUB_EFI_SUCCESS) -- return 1; -+ { -+ grub_dprintf ("secureboot", "Kernel signature verification passed\n"); -+ return 1; -+ } -+ -+ grub_dprintf ("secureboot", "Kernel signature verification failed (0x%lx)\n", -+ (unsigned long) status); - - return -1; - } -diff --git a/grub-core/loader/i386/efi/linux.c b/grub-core/loader/i386/efi/linux.c -index 010bf982d..7df379ab7 100644 ---- a/grub-core/loader/i386/efi/linux.c -+++ b/grub-core/loader/i386/efi/linux.c -@@ -19,6 +19,7 @@ - #include - #include - #include -+#include - #include - #include - #include -@@ -114,6 +115,8 @@ grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)), - goto fail; - } - -+ grub_dprintf ("linuxefi", "initrd_mem = %lx\n", (unsigned long) initrd_mem); -+ - params->ramdisk_size = size; - params->ramdisk_image = (grub_uint32_t)(grub_uint64_t) initrd_mem; - -@@ -202,6 +205,8 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - goto fail; - } - -+ grub_dprintf ("linuxefi", "params = %lx\n", (unsigned long) params); -+ - grub_memset (params, 0, 16384); - - grub_memcpy (&lh, kernel, sizeof (lh)); -@@ -239,6 +244,9 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - goto fail; - } - -+ grub_dprintf ("linuxefi", "linux_cmdline = %lx\n", -+ (unsigned long)linux_cmdline); -+ - grub_memcpy (linux_cmdline, LINUX_IMAGE, sizeof (LINUX_IMAGE)); - grub_create_loader_cmdline (argc, argv, - linux_cmdline + sizeof (LINUX_IMAGE) - 1, -@@ -272,9 +280,10 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - grub_memcpy (params, &lh, 2 * 512); - - params->type_of_loader = 0x21; -+ grub_dprintf("linuxefi", "kernel_mem: %p handover_offset: %08x\n", -+ kernel_mem, handover_offset); - - fail: -- - if (file) - grub_file_close (file); - diff --git a/patches/grub/2.02/linuxefi_fix_efi_validation_race.patch b/patches/grub/2.02/linuxefi_fix_efi_validation_race.patch deleted file mode 100644 index 028f18e62..000000000 --- a/patches/grub/2.02/linuxefi_fix_efi_validation_race.patch +++ /dev/null @@ -1,99 +0,0 @@ -From 362fc9a67cb29de09ce2ec12890d3b4d37281665 Mon Sep 17 00:00:00 2001 -From: Matthew Garrett -Date: Tue, 14 Jul 2015 16:58:51 -0700 -Subject: Fix race in EFI validation - -Origin: vendor, https://github.com/rhboot/grub2/commit/57414c73c4e80baedcb96ff35be9306fb0599a09 -Forwarded: no -Last-Update: 2017-11-01 - -Patch-Name: linuxefi_fix_efi_validation_race.patch ---- - grub-core/loader/i386/efi/linux.c | 44 ++++++++++----------------------------- - 1 file changed, 11 insertions(+), 33 deletions(-) - -diff --git a/grub-core/loader/i386/efi/linux.c b/grub-core/loader/i386/efi/linux.c -index ddd50dbf1..9a3cc1819 100644 ---- a/grub-core/loader/i386/efi/linux.c -+++ b/grub-core/loader/i386/efi/linux.c -@@ -154,7 +154,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - grub_file_t file = 0; - struct linux_kernel_header lh; - grub_ssize_t len, start, filelen; -- void *kernel; -+ void *kernel = NULL; - - grub_dl_ref (my_mod); - -@@ -191,10 +191,6 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - goto fail; - } - -- grub_file_seek (file, 0); -- -- grub_free(kernel); -- - params = grub_efi_allocate_pages_max (0x3fffffff, BYTES_TO_PAGES(16384)); - - if (! params) -@@ -203,15 +199,9 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - goto fail; - } - -- memset (params, 0, 16384); -+ grub_memset (params, 0, 16384); - -- if (grub_file_read (file, &lh, sizeof (lh)) != sizeof (lh)) -- { -- if (!grub_errno) -- grub_error (GRUB_ERR_BAD_OS, N_("premature end of file %s"), -- argv[0]); -- goto fail; -- } -+ grub_memcpy (&lh, kernel, sizeof (lh)); - - if (lh.boot_flag != grub_cpu_to_le16 (0xaa55)) - { -@@ -271,27 +261,12 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - goto fail; - } - -- if (grub_file_seek (file, start) == (grub_off_t) -1) -- { -- grub_error (GRUB_ERR_BAD_OS, N_("premature end of file %s"), -- argv[0]); -- goto fail; -- } -+ grub_memcpy (kernel_mem, (char *)kernel + start, len); -+ grub_loader_set (grub_linuxefi_boot, grub_linuxefi_unload, 0); -+ loaded=1; - -- if (grub_file_read (file, kernel_mem, len) != len && !grub_errno) -- { -- grub_error (GRUB_ERR_BAD_OS, N_("premature end of file %s"), -- argv[0]); -- } -- -- if (grub_errno == GRUB_ERR_NONE) -- { -- grub_loader_set (grub_linuxefi_boot, grub_linuxefi_unload, 0); -- loaded = 1; -- lh.code32_start = (grub_uint32_t)(grub_uint64_t) kernel_mem; -- } -- -- memcpy(params, &lh, 2 * 512); -+ lh.code32_start = (grub_uint32_t)(grub_uint64_t) kernel_mem; -+ grub_memcpy (params, &lh, 2 * 512); - - params->type_of_loader = 0x21; - -@@ -300,6 +275,9 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - if (file) - grub_file_close (file); - -+ if (kernel) -+ grub_free (kernel); -+ - if (grub_errno != GRUB_ERR_NONE) - { - grub_dl_unref (my_mod); diff --git a/patches/grub/2.02/linuxefi_handle_multiarch_boot.patch b/patches/grub/2.02/linuxefi_handle_multiarch_boot.patch deleted file mode 100644 index 3f07c16e0..000000000 --- a/patches/grub/2.02/linuxefi_handle_multiarch_boot.patch +++ /dev/null @@ -1,264 +0,0 @@ -From a2905156da395c04a2a9a62ceb9177d47b5ed597 Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Tue, 14 Feb 2017 16:18:54 -0500 -Subject: Handle multi-arch (64-on-32) boot in linuxefi loader. - -Allow booting 64-bit kernels on 32-bit EFI on x86. - -Signed-off-by: Peter Jones - -Origin: vendor, https://github.com/rhboot/grub2/commit/1c88c700148acf02863a350055a43eb87e16bbe5 -Forwarded: no -Last-Update: 2017-11-01 - -Patch-Name: linuxefi_handle_multiarch_boot.patch ---- - grub-core/loader/efi/linux.c | 9 +++- - grub-core/loader/i386/efi/linux.c | 108 ++++++++++++++++++++++++++------------ - include/grub/i386/linux.h | 7 ++- - 3 files changed, 88 insertions(+), 36 deletions(-) - -diff --git a/grub-core/loader/efi/linux.c b/grub-core/loader/efi/linux.c -index dbf63e20e..7fe7201a3 100644 ---- a/grub-core/loader/efi/linux.c -+++ b/grub-core/loader/efi/linux.c -@@ -66,12 +66,17 @@ grub_linuxefi_secure_validate (void *data, grub_uint32_t size) - typedef void (*handover_func) (void *, grub_efi_system_table_t *, void *); - - grub_err_t --grub_efi_linux_boot (void *kernel_addr, grub_off_t offset, -+grub_efi_linux_boot (void *kernel_addr, grub_off_t handover_offset, - void *kernel_params) - { - handover_func hf; -+ int offset = 0; - -- hf = (handover_func)((char *)kernel_addr + offset); -+#ifdef __x86_64__ -+ offset = 512; -+#endif -+ -+ hf = (handover_func)((char *)kernel_addr + handover_offset + offset); - hf (grub_efi_image_handle, grub_efi_system_table, kernel_params); - - return GRUB_ERR_BUG; -diff --git a/grub-core/loader/i386/efi/linux.c b/grub-core/loader/i386/efi/linux.c -index 6efa30ff8..d466cafd9 100644 ---- a/grub-core/loader/i386/efi/linux.c -+++ b/grub-core/loader/i386/efi/linux.c -@@ -45,14 +45,10 @@ static char *linux_cmdline; - static grub_err_t - grub_linuxefi_boot (void) - { -- int offset = 0; -- --#ifdef __x86_64__ -- offset = 512; --#endif - asm volatile ("cli"); - -- return grub_efi_linux_boot ((char *)kernel_mem, handover_offset + offset, -+ return grub_efi_linux_boot ((char *)kernel_mem, -+ handover_offset, - params); - } - -@@ -156,14 +152,20 @@ grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)), - return grub_errno; - } - -+#define MIN(a, b) \ -+ ({ typeof (a) _a = (a); \ -+ typeof (b) _b = (b); \ -+ _a < _b ? _a : _b; }) -+ - static grub_err_t - grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - int argc, char *argv[]) - { - grub_file_t file = 0; -- struct linux_kernel_header lh; -+ struct linux_kernel_header *lh; - grub_ssize_t len, start, filelen; - void *kernel = NULL; -+ int setup_header_end_offset; - int rc; - - grub_dl_ref (my_mod); -@@ -203,47 +205,78 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - goto fail; - } - -- params = grub_efi_allocate_pages_max (0x3fffffff, BYTES_TO_PAGES(16384)); -- -+ params = grub_efi_allocate_pages_max (0x3fffffff, -+ BYTES_TO_PAGES(sizeof(*params))); - if (! params) - { - grub_error (GRUB_ERR_OUT_OF_MEMORY, "cannot allocate kernel parameters"); - goto fail; - } - -- grub_dprintf ("linuxefi", "params = %lx\n", (unsigned long) params); -- -- grub_memset (params, 0, 16384); -- -- grub_memcpy (&lh, kernel, sizeof (lh)); -- -- if (lh.boot_flag != grub_cpu_to_le16 (0xaa55)) -+ grub_dprintf ("linuxefi", "params = %p\n", (unsigned long) params); -+ -+ grub_memset (params, 0, sizeof(*params)); -+ -+ setup_header_end_offset = *((grub_uint8_t *)kernel + 0x201); -+ grub_dprintf ("linuxefi", "copying %d bytes from %p to %p\n", -+ MIN(0x202+setup_header_end_offset,sizeof (*params)) - 0x1f1, -+ (grub_uint8_t *)kernel + 0x1f1, -+ (grub_uint8_t *)params + 0x1f1); -+ grub_memcpy ((grub_uint8_t *)params + 0x1f1, -+ (grub_uint8_t *)kernel + 0x1f1, -+ MIN(0x202+setup_header_end_offset,sizeof (*params)) - 0x1f1); -+ lh = (struct linux_kernel_header *)params; -+ grub_dprintf ("linuxefi", "lh is at %p\n", lh); -+ grub_dprintf ("linuxefi", "checking lh->boot_flag\n"); -+ if (lh->boot_flag != grub_cpu_to_le16 (0xaa55)) - { - grub_error (GRUB_ERR_BAD_OS, N_("invalid magic number")); - goto fail; - } - -- if (lh.setup_sects > GRUB_LINUX_MAX_SETUP_SECTS) -+ grub_dprintf ("linuxefi", "checking lh->setup_sects\n"); -+ if (lh->setup_sects > GRUB_LINUX_MAX_SETUP_SECTS) - { - grub_error (GRUB_ERR_BAD_OS, N_("too many setup sectors")); - goto fail; - } - -- if (lh.version < grub_cpu_to_le16 (0x020b)) -+ grub_dprintf ("linuxefi", "checking lh->version\n"); -+ if (lh->version < grub_cpu_to_le16 (0x020b)) - { - grub_error (GRUB_ERR_BAD_OS, N_("kernel too old")); - goto fail; - } - -- if (!lh.handover_offset) -+ grub_dprintf ("linuxefi", "checking lh->handover_offset\n"); -+ if (!lh->handover_offset) - { - grub_error (GRUB_ERR_BAD_OS, N_("kernel doesn't support EFI handover")); - goto fail; - } - -- linux_cmdline = grub_efi_allocate_pages_max(0x3fffffff, -- BYTES_TO_PAGES(lh.cmdline_size + 1)); -+#if defined(__x86_64__) || defined(__aarch64__) -+ grub_dprintf ("linuxefi", "checking lh->xloadflags\n"); -+ if (!(lh->xloadflags & LINUX_XLF_KERNEL_64)) -+ { -+ grub_error (GRUB_ERR_BAD_OS, N_("kernel doesn't support 64-bit CPUs")); -+ goto fail; -+ } -+#endif -+ -+#if defined(__i386__) -+ if ((lh->xloadflags & LINUX_XLF_KERNEL_64) && -+ !(lh->xloadflags & LINUX_XLF_EFI_HANDOVER_32)) -+ { -+ grub_error (GRUB_ERR_BAD_OS, -+ N_("kernel doesn't support 32-bit handover")); -+ goto fail; -+ } -+#endif - -+ grub_dprintf ("linuxefi", "setting up cmdline\n"); -+ linux_cmdline = grub_efi_allocate_pages_max(0x3fffffff, -+ BYTES_TO_PAGES(lh->cmdline_size + 1)); - if (!linux_cmdline) - { - grub_error (GRUB_ERR_OUT_OF_MEMORY, N_("can't allocate cmdline")); -@@ -256,21 +289,23 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - grub_memcpy (linux_cmdline, LINUX_IMAGE, sizeof (LINUX_IMAGE)); - grub_create_loader_cmdline (argc, argv, - linux_cmdline + sizeof (LINUX_IMAGE) - 1, -- lh.cmdline_size - (sizeof (LINUX_IMAGE) - 1)); -+ lh->cmdline_size - (sizeof (LINUX_IMAGE) - 1)); - -- lh.cmd_line_ptr = (grub_uint32_t)(grub_addr_t)linux_cmdline; -+ grub_dprintf ("linuxefi", "setting lh->cmd_line_ptr\n"); -+ lh->cmd_line_ptr = (grub_uint32_t)(grub_addr_t)linux_cmdline; - -- handover_offset = lh.handover_offset; -+ grub_dprintf ("linuxefi", "computing handover offset\n"); -+ handover_offset = lh->handover_offset; - -- start = (lh.setup_sects + 1) * 512; -+ start = (lh->setup_sects + 1) * 512; - len = grub_file_size(file) - start; - -- kernel_mem = grub_efi_allocate_pages(lh.pref_address, -- BYTES_TO_PAGES(lh.init_size)); -+ kernel_mem = grub_efi_allocate_pages(lh->pref_address, -+ BYTES_TO_PAGES(lh->init_size)); - - if (!kernel_mem) - kernel_mem = grub_efi_allocate_pages_max(0x3fffffff, -- BYTES_TO_PAGES(lh.init_size)); -+ BYTES_TO_PAGES(lh->init_size)); - - if (!kernel_mem) - { -@@ -278,14 +313,21 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - goto fail; - } - -- grub_memcpy (kernel_mem, (char *)kernel + start, len); -+ grub_dprintf ("linuxefi", "kernel_mem = %lx\n", (unsigned long) kernel_mem); -+ - grub_loader_set (grub_linuxefi_boot, grub_linuxefi_unload, 0); - loaded=1; -+ grub_dprintf ("linuxefi", "setting lh->code32_start to %p\n", kernel_mem); -+ lh->code32_start = (grub_uint32_t)(grub_addr_t) kernel_mem; -+ -+ grub_memcpy (kernel_mem, (char *)kernel + start, filelen - start); - -- lh.code32_start = (grub_uint32_t)(grub_uint64_t) kernel_mem; -- grub_memcpy (params, &lh, 2 * 512); -+ grub_dprintf ("linuxefi", "setting lh->type_of_loader\n"); -+ lh->type_of_loader = 0x6; - -- params->type_of_loader = 0x21; -+ grub_dprintf ("linuxefi", "setting lh->ext_loader_{type,ver}\n"); -+ params->ext_loader_type = 0; -+ params->ext_loader_ver = 2; - grub_dprintf("linuxefi", "kernel_mem: %p handover_offset: %08x\n", - kernel_mem, handover_offset); - -@@ -305,7 +347,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - if (linux_cmdline && !loaded) - grub_efi_free_pages ((grub_efi_physical_address_t)(grub_addr_t) - linux_cmdline, -- BYTES_TO_PAGES(lh.cmdline_size + 1)); -+ BYTES_TO_PAGES(lh->cmdline_size + 1)); - - if (kernel_mem && !loaded) - grub_efi_free_pages ((grub_efi_physical_address_t)(grub_addr_t)kernel_mem, -diff --git a/include/grub/i386/linux.h b/include/grub/i386/linux.h -index fc36bdaf3..110ecf806 100644 ---- a/include/grub/i386/linux.h -+++ b/include/grub/i386/linux.h -@@ -130,7 +130,12 @@ struct linux_kernel_header - grub_uint32_t kernel_alignment; - grub_uint8_t relocatable; - grub_uint8_t min_alignment; -- grub_uint8_t pad[2]; -+#define LINUX_XLF_KERNEL_64 (1<<0) -+#define LINUX_XLF_CAN_BE_LOADED_ABOVE_4G (1<<1) -+#define LINUX_XLF_EFI_HANDOVER_32 (1<<2) -+#define LINUX_XLF_EFI_HANDOVER_64 (1<<3) -+#define LINUX_XLF_EFI_KEXEC (1<<4) -+ grub_uint16_t xloadflags; - grub_uint32_t cmdline_size; - grub_uint32_t hardware_subarch; - grub_uint64_t hardware_subarch_data; diff --git a/patches/grub/2.02/linuxefi_honor_sb_mode.patch b/patches/grub/2.02/linuxefi_honor_sb_mode.patch deleted file mode 100644 index 128e4dffc..000000000 --- a/patches/grub/2.02/linuxefi_honor_sb_mode.patch +++ /dev/null @@ -1,534 +0,0 @@ -From b6890a1c275c817b98e94e0b05f1699b806f18f7 Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Tue, 6 Oct 2015 16:09:25 -0400 -Subject: Make any of the loaders that link in efi mode honor secure boot. - -And in this case "honor" means "even if somebody does link this in, they -won't register commands if SB is enabled." - -Signed-off-by: Peter Jones - -Origin: vendor, https://github.com/rhboot/grub2/commit/3056bfc5044e976fa97f76b81b6a680731005095 -Forwarded: no -Last-Update: 2017-11-01 - -Patch-Name: linuxefi_honor_sb_mode.patch ---- - grub-core/Makefile.am | 1 + - grub-core/Makefile.core.def | 1 + - grub-core/commands/iorw.c | 7 +++++ - grub-core/commands/memrw.c | 7 +++++ - grub-core/kern/dl.c | 1 + - grub-core/kern/efi/efi.c | 28 ------------------ - grub-core/kern/efi/sb.c | 58 ++++++++++++++++++++++++++++++++++++++ - grub-core/loader/efi/appleloader.c | 7 +++++ - grub-core/loader/efi/chainloader.c | 1 + - grub-core/loader/i386/bsd.c | 7 +++++ - grub-core/loader/i386/linux.c | 7 +++++ - grub-core/loader/i386/pc/linux.c | 7 +++++ - grub-core/loader/multiboot.c | 7 +++++ - grub-core/loader/xnu.c | 7 +++++ - include/grub/efi/efi.h | 1 - - include/grub/efi/sb.h | 29 +++++++++++++++++++ - include/grub/ia64/linux.h | 0 - include/grub/mips/linux.h | 0 - include/grub/powerpc/linux.h | 22 +++++++++++++++ - include/grub/sparc64/linux.h | 0 - 20 files changed, 169 insertions(+), 29 deletions(-) - create mode 100644 grub-core/kern/efi/sb.c - create mode 100644 include/grub/efi/sb.h - create mode 100644 include/grub/ia64/linux.h - create mode 100644 include/grub/mips/linux.h - create mode 100644 include/grub/powerpc/linux.h - create mode 100644 include/grub/sparc64/linux.h - -diff --git a/grub-core/Makefile.am b/grub-core/Makefile.am -index 04e9395fd..fd715a8ea 100644 ---- a/grub-core/Makefile.am -+++ b/grub-core/Makefile.am -@@ -71,6 +71,7 @@ KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/command.h - KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/device.h - KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/disk.h - KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/dl.h -+KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/efi/sb.h - KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/env.h - KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/env_private.h - KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/err.h -diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def -index 9b7b661ff..50c555e43 100644 ---- a/grub-core/Makefile.core.def -+++ b/grub-core/Makefile.core.def -@@ -177,6 +177,7 @@ kernel = { - i386_multiboot = kern/i386/pc/acpi.c; - i386_coreboot = kern/acpi.c; - i386_multiboot = kern/acpi.c; -+ common = kern/efi/sb.c; - - x86 = kern/i386/tsc.c; - x86 = kern/i386/tsc_pit.c; -diff --git a/grub-core/commands/iorw.c b/grub-core/commands/iorw.c -index a0c164e54..41a7f3f04 100644 ---- a/grub-core/commands/iorw.c -+++ b/grub-core/commands/iorw.c -@@ -23,6 +23,7 @@ - #include - #include - #include -+#include - - GRUB_MOD_LICENSE ("GPLv3+"); - -@@ -118,6 +119,9 @@ grub_cmd_write (grub_command_t cmd, int argc, char **argv) - - GRUB_MOD_INIT(memrw) - { -+ if (grub_efi_secure_boot()) -+ return; -+ - cmd_read_byte = - grub_register_extcmd ("inb", grub_cmd_read, 0, - N_("PORT"), N_("Read 8-bit value from PORT."), -@@ -146,6 +150,9 @@ GRUB_MOD_INIT(memrw) - - GRUB_MOD_FINI(memrw) - { -+ if (grub_efi_secure_boot()) -+ return; -+ - grub_unregister_extcmd (cmd_read_byte); - grub_unregister_extcmd (cmd_read_word); - grub_unregister_extcmd (cmd_read_dword); -diff --git a/grub-core/commands/memrw.c b/grub-core/commands/memrw.c -index 98769eadb..088cbe9e2 100644 ---- a/grub-core/commands/memrw.c -+++ b/grub-core/commands/memrw.c -@@ -22,6 +22,7 @@ - #include - #include - #include -+#include - - GRUB_MOD_LICENSE ("GPLv3+"); - -@@ -120,6 +121,9 @@ grub_cmd_write (grub_command_t cmd, int argc, char **argv) - - GRUB_MOD_INIT(memrw) - { -+ if (grub_efi_secure_boot()) -+ return; -+ - cmd_read_byte = - grub_register_extcmd ("read_byte", grub_cmd_read, 0, - N_("ADDR"), N_("Read 8-bit value from ADDR."), -@@ -148,6 +152,9 @@ GRUB_MOD_INIT(memrw) - - GRUB_MOD_FINI(memrw) - { -+ if (grub_efi_secure_boot()) -+ return; -+ - grub_unregister_extcmd (cmd_read_byte); - grub_unregister_extcmd (cmd_read_word); - grub_unregister_extcmd (cmd_read_dword); -diff --git a/grub-core/kern/dl.c b/grub-core/kern/dl.c -index 04e804d16..621070918 100644 ---- a/grub-core/kern/dl.c -+++ b/grub-core/kern/dl.c -@@ -32,6 +32,7 @@ - #include - #include - #include -+#include - - /* Platforms where modules are in a readonly area of memory. */ - #if defined(GRUB_MACHINE_QEMU) -diff --git a/grub-core/kern/efi/efi.c b/grub-core/kern/efi/efi.c -index bce251df9..d467785fc 100644 ---- a/grub-core/kern/efi/efi.c -+++ b/grub-core/kern/efi/efi.c -@@ -264,34 +264,6 @@ grub_efi_get_variable (const char *var, const grub_efi_guid_t *guid, - return NULL; - } - --grub_efi_boolean_t --grub_efi_secure_boot (void) --{ -- grub_efi_guid_t efi_var_guid = GRUB_EFI_GLOBAL_VARIABLE_GUID; -- grub_size_t datasize; -- char *secure_boot = NULL; -- char *setup_mode = NULL; -- grub_efi_boolean_t ret = 0; -- -- secure_boot = grub_efi_get_variable("SecureBoot", &efi_var_guid, &datasize); -- -- if (datasize != 1 || !secure_boot) -- goto out; -- -- setup_mode = grub_efi_get_variable("SetupMode", &efi_var_guid, &datasize); -- -- if (datasize != 1 || !setup_mode) -- goto out; -- -- if (*secure_boot && !*setup_mode) -- ret = 1; -- -- out: -- grub_free (secure_boot); -- grub_free (setup_mode); -- return ret; --} -- - #pragma GCC diagnostic ignored "-Wcast-align" - - /* Search the mods section from the PE32/PE32+ image. This code uses -diff --git a/grub-core/kern/efi/sb.c b/grub-core/kern/efi/sb.c -new file mode 100644 -index 000000000..a41b6c5b8 ---- /dev/null -+++ b/grub-core/kern/efi/sb.c -@@ -0,0 +1,58 @@ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 2014 Free Software Foundation, Inc. -+ * -+ * GRUB is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation, either version 3 of the License, or -+ * (at your option) any later version. -+ * -+ * GRUB is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with GRUB. If not, see . -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+int -+grub_efi_secure_boot (void) -+{ -+#ifdef GRUB_MACHINE_EFI -+ grub_efi_guid_t efi_var_guid = GRUB_EFI_GLOBAL_VARIABLE_GUID; -+ grub_size_t datasize; -+ char *secure_boot = NULL; -+ char *setup_mode = NULL; -+ grub_efi_boolean_t ret = 0; -+ -+ secure_boot = grub_efi_get_variable("SecureBoot", &efi_var_guid, &datasize); -+ -+ if (datasize != 1 || !secure_boot) -+ goto out; -+ -+ setup_mode = grub_efi_get_variable("SetupMode", &efi_var_guid, &datasize); -+ -+ if (datasize != 1 || !setup_mode) -+ goto out; -+ -+ if (*secure_boot && !*setup_mode) -+ ret = 1; -+ -+ out: -+ grub_free (secure_boot); -+ grub_free (setup_mode); -+ return ret; -+#else -+ return 0; -+#endif -+} -diff --git a/grub-core/loader/efi/appleloader.c b/grub-core/loader/efi/appleloader.c -index 74888c463..69c2a10d3 100644 ---- a/grub-core/loader/efi/appleloader.c -+++ b/grub-core/loader/efi/appleloader.c -@@ -24,6 +24,7 @@ - #include - #include - #include -+#include - #include - #include - -@@ -227,6 +228,9 @@ static grub_command_t cmd; - - GRUB_MOD_INIT(appleloader) - { -+ if (grub_efi_secure_boot()) -+ return; -+ - cmd = grub_register_command ("appleloader", grub_cmd_appleloader, - N_("[OPTS]"), - /* TRANSLATORS: This command is used on EFI to -@@ -238,5 +242,8 @@ GRUB_MOD_INIT(appleloader) - - GRUB_MOD_FINI(appleloader) - { -+ if (grub_efi_secure_boot()) -+ return; -+ - grub_unregister_command (cmd); - } -diff --git a/grub-core/loader/efi/chainloader.c b/grub-core/loader/efi/chainloader.c -index 456043407..83e191460 100644 ---- a/grub-core/loader/efi/chainloader.c -+++ b/grub-core/loader/efi/chainloader.c -@@ -34,6 +34,7 @@ - #include - #include - #include -+#include - #include - #include - #include -diff --git a/grub-core/loader/i386/bsd.c b/grub-core/loader/i386/bsd.c -index 7f96515da..87709aa23 100644 ---- a/grub-core/loader/i386/bsd.c -+++ b/grub-core/loader/i386/bsd.c -@@ -38,6 +38,7 @@ - #ifdef GRUB_MACHINE_PCBIOS - #include - #endif -+#include - - GRUB_MOD_LICENSE ("GPLv3+"); - -@@ -2124,6 +2125,9 @@ static grub_command_t cmd_netbsd_module_elf, cmd_openbsd_ramdisk; - - GRUB_MOD_INIT (bsd) - { -+ if (grub_efi_secure_boot()) -+ return; -+ - /* Net and OpenBSD kernels are often compressed. */ - grub_dl_load ("gzio"); - -@@ -2163,6 +2167,9 @@ GRUB_MOD_INIT (bsd) - - GRUB_MOD_FINI (bsd) - { -+ if (grub_efi_secure_boot()) -+ return; -+ - grub_unregister_extcmd (cmd_freebsd); - grub_unregister_extcmd (cmd_openbsd); - grub_unregister_extcmd (cmd_netbsd); -diff --git a/grub-core/loader/i386/linux.c b/grub-core/loader/i386/linux.c -index 083f9417c..b2438547d 100644 ---- a/grub-core/loader/i386/linux.c -+++ b/grub-core/loader/i386/linux.c -@@ -35,6 +35,7 @@ - #include - #include - #include -+#include - - GRUB_MOD_LICENSE ("GPLv3+"); - -@@ -1139,6 +1140,9 @@ static grub_command_t cmd_linux, cmd_initrd; - - GRUB_MOD_INIT(linux) - { -+ if (grub_efi_secure_boot()) -+ return; -+ - cmd_linux = grub_register_command ("linux", grub_cmd_linux, - 0, N_("Load Linux.")); - cmd_initrd = grub_register_command ("initrd", grub_cmd_initrd, -@@ -1148,6 +1152,9 @@ GRUB_MOD_INIT(linux) - - GRUB_MOD_FINI(linux) - { -+ if (grub_efi_secure_boot()) -+ return; -+ - grub_unregister_command (cmd_linux); - grub_unregister_command (cmd_initrd); - } -diff --git a/grub-core/loader/i386/pc/linux.c b/grub-core/loader/i386/pc/linux.c -index a293b17aa..91283157e 100644 ---- a/grub-core/loader/i386/pc/linux.c -+++ b/grub-core/loader/i386/pc/linux.c -@@ -35,6 +35,7 @@ - #include - #include - #include -+#include - - GRUB_MOD_LICENSE ("GPLv3+"); - -@@ -472,6 +473,9 @@ static grub_command_t cmd_linux, cmd_initrd; - - GRUB_MOD_INIT(linux16) - { -+ if (grub_efi_secure_boot()) -+ return; -+ - cmd_linux = - grub_register_command ("linux16", grub_cmd_linux, - 0, N_("Load Linux.")); -@@ -483,6 +487,9 @@ GRUB_MOD_INIT(linux16) - - GRUB_MOD_FINI(linux16) - { -+ if (grub_efi_secure_boot()) -+ return; -+ - grub_unregister_command (cmd_linux); - grub_unregister_command (cmd_initrd); - } -diff --git a/grub-core/loader/multiboot.c b/grub-core/loader/multiboot.c -index bd9d5b3e6..fb044a60c 100644 ---- a/grub-core/loader/multiboot.c -+++ b/grub-core/loader/multiboot.c -@@ -42,6 +42,7 @@ - #include - #include - #include -+#include - - GRUB_MOD_LICENSE ("GPLv3+"); - -@@ -431,6 +432,9 @@ static grub_command_t cmd_multiboot, cmd_module; - - GRUB_MOD_INIT(multiboot) - { -+ if (grub_efi_secure_boot()) -+ return; -+ - cmd_multiboot = - #ifdef GRUB_USE_MULTIBOOT2 - grub_register_command ("multiboot2", grub_cmd_multiboot, -@@ -451,6 +455,9 @@ GRUB_MOD_INIT(multiboot) - - GRUB_MOD_FINI(multiboot) - { -+ if (grub_efi_secure_boot()) -+ return; -+ - grub_unregister_command (cmd_multiboot); - grub_unregister_command (cmd_module); - } -diff --git a/grub-core/loader/xnu.c b/grub-core/loader/xnu.c -index c9885b1bc..df8dfdb4b 100644 ---- a/grub-core/loader/xnu.c -+++ b/grub-core/loader/xnu.c -@@ -33,6 +33,7 @@ - #include - #include - #include -+#include - - GRUB_MOD_LICENSE ("GPLv3+"); - -@@ -1469,6 +1470,9 @@ static grub_extcmd_t cmd_splash; - - GRUB_MOD_INIT(xnu) - { -+ if (grub_efi_secure_boot()) -+ return; -+ - cmd_kernel = grub_register_command ("xnu_kernel", grub_cmd_xnu_kernel, 0, - N_("Load XNU image.")); - cmd_kernel64 = grub_register_command ("xnu_kernel64", grub_cmd_xnu_kernel64, -@@ -1509,6 +1513,9 @@ GRUB_MOD_INIT(xnu) - - GRUB_MOD_FINI(xnu) - { -+ if (grub_efi_secure_boot()) -+ return; -+ - #ifndef GRUB_MACHINE_EMU - grub_unregister_command (cmd_resume); - #endif -diff --git a/include/grub/efi/efi.h b/include/grub/efi/efi.h -index 62a3d9726..764cd11f5 100644 ---- a/include/grub/efi/efi.h -+++ b/include/grub/efi/efi.h -@@ -76,7 +76,6 @@ EXPORT_FUNC (grub_efi_set_variable) (const char *var, - const grub_efi_guid_t *guid, - void *data, - grub_size_t datasize); --grub_efi_boolean_t EXPORT_FUNC (grub_efi_secure_boot) (void); - int - EXPORT_FUNC (grub_efi_compare_device_paths) (const grub_efi_device_path_t *dp1, - const grub_efi_device_path_t *dp2); -diff --git a/include/grub/efi/sb.h b/include/grub/efi/sb.h -new file mode 100644 -index 000000000..9629fbb0f ---- /dev/null -+++ b/include/grub/efi/sb.h -@@ -0,0 +1,29 @@ -+/* sb.h - declare functions for EFI Secure Boot support */ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 2006,2007,2008,2009 Free Software Foundation, Inc. -+ * -+ * GRUB is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation, either version 3 of the License, or -+ * (at your option) any later version. -+ * -+ * GRUB is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with GRUB. If not, see . -+ */ -+ -+#ifndef GRUB_EFI_SB_HEADER -+#define GRUB_EFI_SB_HEADER 1 -+ -+#include -+#include -+ -+/* Functions. */ -+int EXPORT_FUNC (grub_efi_secure_boot) (void); -+ -+#endif /* ! GRUB_EFI_SB_HEADER */ -diff --git a/include/grub/ia64/linux.h b/include/grub/ia64/linux.h -new file mode 100644 -index 000000000..e69de29bb -diff --git a/include/grub/mips/linux.h b/include/grub/mips/linux.h -new file mode 100644 -index 000000000..e69de29bb -diff --git a/include/grub/powerpc/linux.h b/include/grub/powerpc/linux.h -new file mode 100644 -index 000000000..5761d53e7 ---- /dev/null -+++ b/include/grub/powerpc/linux.h -@@ -0,0 +1,22 @@ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 2013 Free Software Foundation, Inc. -+ * -+ * GRUB is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation, either version 3 of the License, or -+ * (at your option) any later version. -+ * -+ * GRUB is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with GRUB. If not, see . -+ */ -+ -+#ifndef GRUB_LINUX_CPU_HEADER -+#define GRUB_LINUX_CPU_HEADER 1 -+ -+#endif /* ! GRUB_LINUX_CPU_HEADER */ -diff --git a/include/grub/sparc64/linux.h b/include/grub/sparc64/linux.h -new file mode 100644 -index 000000000..e69de29bb diff --git a/patches/grub/2.02/linuxefi_load_arm_with_sb.patch b/patches/grub/2.02/linuxefi_load_arm_with_sb.patch deleted file mode 100644 index 96a79b71a..000000000 --- a/patches/grub/2.02/linuxefi_load_arm_with_sb.patch +++ /dev/null @@ -1,445 +0,0 @@ -From 9aa4d2f67a0109cb9c4ed23997b47f3c47943e2c Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Fri, 3 Nov 2017 12:06:24 -0400 -Subject: Load arm with SB enabled. - -Make sure we actually try to validate secure boot on this platform (even -though we're not shipping it enabled by default.) - -This means giving the kernel grub's loaded image as the vehicle for the -kernel command line, because we can't call systab->bs->LoadImage() if SB -is enabled. - -Origin: vendor, https://github.com/rhboot/grub2/commit/2786ab864cf00c15123320671f653e9a36ba12b4 -Forwarded: no -Last-Update: 2017-11-01 -Patch-Name: linuxefi_load_arm_with_sb.patch ---- - grub-core/Makefile.core.def | 3 + - grub-core/loader/arm/linux.c | 1 + - grub-core/loader/arm64/linux.c | 119 ++++++++++++++++++++------------------ - grub-core/loader/efi/linux.c | 65 +++++++++++++++++++++ - grub-core/loader/i386/efi/linux.c | 39 +------------ - include/grub/arm64/linux.h | 7 +++ - include/grub/efi/linux.h | 31 ++++++++++ - 7 files changed, 174 insertions(+), 91 deletions(-) - create mode 100644 grub-core/loader/efi/linux.c - create mode 100644 include/grub/efi/linux.h - -diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def -index cedf27eb8..1b642472e 100644 ---- a/grub-core/Makefile.core.def -+++ b/grub-core/Makefile.core.def -@@ -1670,6 +1670,8 @@ module = { - ia64_efi = loader/ia64/efi/linux.c; - arm = loader/arm/linux.c; - arm64 = loader/arm64/linux.c; -+ arm64 = loader/efi/linux.c; -+ fdt = lib/fdt.c; - common = loader/linux.c; - common = lib/cmdline.c; - enable = noemu; -@@ -1737,6 +1739,7 @@ module = { - name = linuxefi; - efi = loader/i386/efi/linux.c; - efi = lib/cmdline.c; -+ efi = loader/efi/linux.c; - enable = i386_efi; - enable = x86_64_efi; - }; -diff --git a/grub-core/loader/arm/linux.c b/grub-core/loader/arm/linux.c -index 5b39f02bb..d7ebae0ff 100644 ---- a/grub-core/loader/arm/linux.c -+++ b/grub-core/loader/arm/linux.c -@@ -26,6 +26,7 @@ - #include - #include - #include -+#include - #include - #include - -diff --git a/grub-core/loader/arm64/linux.c b/grub-core/loader/arm64/linux.c -index 57890fdda..bc7ebb699 100644 ---- a/grub-core/loader/arm64/linux.c -+++ b/grub-core/loader/arm64/linux.c -@@ -28,6 +28,7 @@ - #include - #include - #include -+#include - #include - #include - #include -@@ -39,6 +40,7 @@ static int loaded; - - static void *kernel_addr; - static grub_uint64_t kernel_size; -+static grub_uint32_t handover_offset; - - static char *linux_args; - static grub_uint32_t cmdline_size; -@@ -67,7 +69,8 @@ grub_arm64_uefi_check_image (struct grub_arm64_linux_kernel_header * lh) - static grub_err_t - finalize_params_linux (void) - { -- int node, retval; -+ grub_efi_loaded_image_t *loaded_image = NULL; -+ int node, retval, len; - - void *fdt; - -@@ -102,6 +105,26 @@ finalize_params_linux (void) - if (grub_fdt_install() != GRUB_ERR_NONE) - goto failure; - -+ grub_dprintf ("linux", "Installed/updated FDT configuration table @ %p\n", -+ fdt); -+ -+ /* Convert command line to UCS-2 */ -+ loaded_image = grub_efi_get_loaded_image (grub_efi_image_handle); -+ if (!loaded_image) -+ goto failure; -+ -+ loaded_image->load_options_size = len = -+ (grub_strlen (linux_args) + 1) * sizeof (grub_efi_char16_t); -+ loaded_image->load_options = -+ grub_efi_allocate_pages (0, -+ GRUB_EFI_BYTES_TO_PAGES (loaded_image->load_options_size)); -+ if (!loaded_image->load_options) -+ return grub_error(GRUB_ERR_BAD_OS, "failed to create kernel parameters"); -+ -+ loaded_image->load_options_size = -+ 2 * grub_utf8_to_utf16 (loaded_image->load_options, len, -+ (grub_uint8_t *) linux_args, len, NULL); -+ - return GRUB_ERR_NONE; - - failure: -@@ -109,73 +132,49 @@ failure: - return grub_error(GRUB_ERR_BAD_OS, "failed to install/update FDT"); - } - --grub_err_t --grub_arm64_uefi_boot_image (grub_addr_t addr, grub_size_t size, char *args) -+static void -+free_params (void) - { -- grub_efi_memory_mapped_device_path_t *mempath; -- grub_efi_handle_t image_handle; -- grub_efi_boot_services_t *b; -- grub_efi_status_t status; -- grub_efi_loaded_image_t *loaded_image; -- int len; -- -- mempath = grub_malloc (2 * sizeof (grub_efi_memory_mapped_device_path_t)); -- if (!mempath) -- return grub_errno; -- -- mempath[0].header.type = GRUB_EFI_HARDWARE_DEVICE_PATH_TYPE; -- mempath[0].header.subtype = GRUB_EFI_MEMORY_MAPPED_DEVICE_PATH_SUBTYPE; -- mempath[0].header.length = grub_cpu_to_le16_compile_time (sizeof (*mempath)); -- mempath[0].memory_type = GRUB_EFI_LOADER_DATA; -- mempath[0].start_address = addr; -- mempath[0].end_address = addr + size; -+ grub_efi_loaded_image_t *loaded_image = NULL; - -- mempath[1].header.type = GRUB_EFI_END_DEVICE_PATH_TYPE; -- mempath[1].header.subtype = GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE; -- mempath[1].header.length = sizeof (grub_efi_device_path_t); -- -- b = grub_efi_system_table->boot_services; -- status = b->load_image (0, grub_efi_image_handle, -- (grub_efi_device_path_t *) mempath, -- (void *) addr, size, &image_handle); -- if (status != GRUB_EFI_SUCCESS) -- return grub_error (GRUB_ERR_BAD_OS, "cannot load image"); -+ loaded_image = grub_efi_get_loaded_image (grub_efi_image_handle); -+ if (loaded_image) -+ { -+ if (loaded_image->load_options) -+ grub_efi_free_pages ((grub_efi_physical_address_t) -+ loaded_image->load_options, -+ GRUB_EFI_BYTES_TO_PAGES (loaded_image->load_options_size)); -+ loaded_image->load_options = NULL; -+ loaded_image->load_options_size = 0; -+ } -+} - -- grub_dprintf ("linux", "linux command line: '%s'\n", args); -+grub_err_t -+grub_arm64_uefi_boot_image (grub_addr_t addr __attribute__ ((unused)), -+ grub_size_t size __attribute__ ((unused)), -+ char *args) -+{ -+ grub_err_t retval; - -- /* Convert command line to UCS-2 */ -- loaded_image = grub_efi_get_loaded_image (image_handle); -- loaded_image->load_options_size = len = -- (grub_strlen (args) + 1) * sizeof (grub_efi_char16_t); -- loaded_image->load_options = -- grub_efi_allocate_pages (0, -- GRUB_EFI_BYTES_TO_PAGES (loaded_image->load_options_size)); -- if (!loaded_image->load_options) -+ retval = finalize_params_linux (); -+ if (retval != GRUB_ERR_NONE) - return grub_errno; - -- loaded_image->load_options_size = -- 2 * grub_utf8_to_utf16 (loaded_image->load_options, len, -- (grub_uint8_t *) args, len, NULL); -- -- grub_dprintf ("linux", "starting image %p\n", image_handle); -- status = b->start_image (image_handle, 0, NULL); -+ grub_dprintf ("linux", "linux command line: '%s'\n", args); - -- /* When successful, not reached */ -- b->unload_image (image_handle); -- grub_efi_free_pages ((grub_efi_physical_address_t) loaded_image->load_options, -- GRUB_EFI_BYTES_TO_PAGES (loaded_image->load_options_size)); -+ retval = grub_efi_linux_boot ((char *)kernel_addr, handover_offset, -+ kernel_addr); - -- return grub_errno; -+ /* Never reached... */ -+ free_params(); -+ return retval; - } - - static grub_err_t - grub_linux_boot (void) - { -- if (finalize_params_linux () != GRUB_ERR_NONE) -- return grub_errno; -- -- return (grub_arm64_uefi_boot_image((grub_addr_t)kernel_addr, -- kernel_size, linux_args)); -+ return grub_arm64_uefi_boot_image ((grub_addr_t)kernel_addr, -+ kernel_size, linux_args); - } - - static grub_err_t -@@ -253,6 +252,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - { - grub_file_t file = 0; - struct grub_arm64_linux_kernel_header lh; -+ struct grub_arm64_linux_pe_header *pe; - - grub_dl_ref (my_mod); - -@@ -297,6 +297,15 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - - grub_dprintf ("linux", "kernel @ %p\n", kernel_addr); - -+ if (!grub_linuxefi_secure_validate (kernel_addr, kernel_size)) -+ { -+ grub_error (GRUB_ERR_INVALID_COMMAND, N_("%s has invalid signature"), argv[0]); -+ goto fail; -+ } -+ -+ pe = (void *)((unsigned long)kernel_addr + lh.hdr_offset); -+ handover_offset = pe->opt.entry_addr; -+ - cmdline_size = grub_loader_cmdline_size (argc, argv) + sizeof (LINUX_IMAGE); - linux_args = grub_malloc (cmdline_size); - if (!linux_args) -diff --git a/grub-core/loader/efi/linux.c b/grub-core/loader/efi/linux.c -new file mode 100644 -index 000000000..aea378adf ---- /dev/null -+++ b/grub-core/loader/efi/linux.c -@@ -0,0 +1,65 @@ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 2014 Free Software Foundation, Inc. -+ * -+ * GRUB is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation, either version 3 of the License, or -+ * (at your option) any later version. -+ * -+ * GRUB is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with GRUB. If not, see . -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#define SHIM_LOCK_GUID \ -+ { 0x605dab50, 0xe046, 0x4300, {0xab, 0xb6, 0x3d, 0xd8, 0x10, 0xdd, 0x8b, 0x23} } -+ -+struct grub_efi_shim_lock -+{ -+ grub_efi_status_t (*verify) (void *buffer, grub_uint32_t size); -+}; -+typedef struct grub_efi_shim_lock grub_efi_shim_lock_t; -+ -+grub_efi_boolean_t -+grub_linuxefi_secure_validate (void *data, grub_uint32_t size) -+{ -+ grub_efi_guid_t guid = SHIM_LOCK_GUID; -+ grub_efi_shim_lock_t *shim_lock; -+ -+ shim_lock = grub_efi_locate_protocol(&guid, NULL); -+ -+ if (!shim_lock) -+ return 1; -+ -+ if (shim_lock->verify(data, size) == GRUB_EFI_SUCCESS) -+ return 1; -+ -+ return 0; -+} -+ -+typedef void (*handover_func) (void *, grub_efi_system_table_t *, void *); -+ -+grub_err_t -+grub_efi_linux_boot (void *kernel_addr, grub_off_t offset, -+ void *kernel_params) -+{ -+ handover_func hf; -+ -+ hf = (handover_func)((char *)kernel_addr + offset); -+ hf (grub_efi_image_handle, grub_efi_system_table, kernel_params); -+ -+ return GRUB_ERR_BUG; -+} -diff --git a/grub-core/loader/i386/efi/linux.c b/grub-core/loader/i386/efi/linux.c -index 6afa13d41..ddd50dbf1 100644 ---- a/grub-core/loader/i386/efi/linux.c -+++ b/grub-core/loader/i386/efi/linux.c -@@ -26,6 +26,7 @@ - #include - #include - #include -+#include - - GRUB_MOD_LICENSE ("GPLv3+"); - -@@ -40,52 +41,18 @@ static char *linux_cmdline; - - #define BYTES_TO_PAGES(bytes) (((bytes) + 0xfff) >> 12) - --#define SHIM_LOCK_GUID \ -- { 0x605dab50, 0xe046, 0x4300, {0xab, 0xb6, 0x3d, 0xd8, 0x10, 0xdd, 0x8b, 0x23} } -- --struct grub_efi_shim_lock --{ -- grub_efi_status_t (*verify) (void *buffer, grub_uint32_t size); --}; --typedef struct grub_efi_shim_lock grub_efi_shim_lock_t; -- --static grub_efi_boolean_t --grub_linuxefi_secure_validate (void *data, grub_uint32_t size) --{ -- grub_efi_guid_t guid = SHIM_LOCK_GUID; -- grub_efi_shim_lock_t *shim_lock; -- -- shim_lock = grub_efi_locate_protocol(&guid, NULL); -- -- if (!shim_lock) -- return 1; -- -- if (shim_lock->verify(data, size) == GRUB_EFI_SUCCESS) -- return 1; -- -- return 0; --} -- --typedef void(*handover_func)(void *, grub_efi_system_table_t *, struct linux_kernel_params *); -- - static grub_err_t - grub_linuxefi_boot (void) - { -- handover_func hf; - int offset = 0; - - #ifdef __x86_64__ - offset = 512; - #endif -- -- hf = (handover_func)((char *)kernel_mem + handover_offset + offset); -- - asm volatile ("cli"); - -- hf (grub_efi_image_handle, grub_efi_system_table, params); -- -- /* Not reached */ -- return GRUB_ERR_NONE; -+ return grub_efi_linux_boot ((char *)kernel_mem, handover_offset + offset, -+ params); - } - - static grub_err_t -diff --git a/include/grub/arm64/linux.h b/include/grub/arm64/linux.h -index 1ea23696e..a2ba24e9f 100644 ---- a/include/grub/arm64/linux.h -+++ b/include/grub/arm64/linux.h -@@ -20,6 +20,7 @@ - #define GRUB_LINUX_CPU_HEADER 1 - - #include -+#include - - #define GRUB_ARM64_LINUX_MAGIC 0x644d5241 /* 'ARM\x64' */ - -@@ -44,5 +45,11 @@ grub_err_t grub_arm64_uefi_check_image (struct grub_arm64_linux_kernel_header - *lh); - grub_err_t grub_arm64_uefi_boot_image (grub_addr_t addr, grub_size_t size, - char *args); -+struct grub_arm64_linux_pe_header -+{ -+ grub_uint32_t magic; -+ struct grub_pe32_coff_header coff; -+ struct grub_pe64_optional_header opt; -+}; - - #endif /* ! GRUB_LINUX_CPU_HEADER */ -diff --git a/include/grub/efi/linux.h b/include/grub/efi/linux.h -new file mode 100644 -index 000000000..d9ede3677 ---- /dev/null -+++ b/include/grub/efi/linux.h -@@ -0,0 +1,31 @@ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 2014 Free Software Foundation, Inc. -+ * -+ * GRUB is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation, either version 3 of the License, or -+ * (at your option) any later version. -+ * -+ * GRUB is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with GRUB. If not, see . -+ */ -+#ifndef GRUB_EFI_LINUX_HEADER -+#define GRUB_EFI_LINUX_HEADER 1 -+ -+#include -+#include -+#include -+ -+grub_efi_boolean_t -+EXPORT_FUNC(grub_linuxefi_secure_validate) (void *data, grub_uint32_t size); -+grub_err_t -+EXPORT_FUNC(grub_efi_linux_boot) (void *kernel_address, grub_off_t offset, -+ void *kernel_param); -+ -+#endif /* ! GRUB_EFI_LINUX_HEADER */ diff --git a/patches/grub/2.02/linuxefi_minor_cleanups.patch b/patches/grub/2.02/linuxefi_minor_cleanups.patch deleted file mode 100644 index 56a2c4c04..000000000 --- a/patches/grub/2.02/linuxefi_minor_cleanups.patch +++ /dev/null @@ -1,92 +0,0 @@ -From 03c85c1794f6364639933b8e7711e3d499092a38 Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Tue, 14 Feb 2017 16:31:52 -0500 -Subject: linuxefi: minor cleanups - -Signed-off-by: Peter Jones - -Origin: vendor, https://github.com/rhboot/grub2/commit/2c9a6edf8abbc7397174ec2696fce28822996a12 -Forwarded: no -Last-Update: 2017-11-01 - -Patch-Name: linuxefi_minor_cleanups.patch ---- - grub-core/loader/i386/efi/linux.c | 30 ++++++++++++++++++++---------- - 1 file changed, 20 insertions(+), 10 deletions(-) - -diff --git a/grub-core/loader/i386/efi/linux.c b/grub-core/loader/i386/efi/linux.c -index 7df379ab7..6efa30ff8 100644 ---- a/grub-core/loader/i386/efi/linux.c -+++ b/grub-core/loader/i386/efi/linux.c -@@ -62,13 +62,18 @@ grub_linuxefi_unload (void) - grub_dl_unref (my_mod); - loaded = 0; - if (initrd_mem) -- grub_efi_free_pages((grub_efi_physical_address_t)initrd_mem, BYTES_TO_PAGES(params->ramdisk_size)); -+ grub_efi_free_pages ((grub_efi_physical_address_t)(grub_addr_t)initrd_mem, -+ BYTES_TO_PAGES(params->ramdisk_size)); - if (linux_cmdline) -- grub_efi_free_pages((grub_efi_physical_address_t)linux_cmdline, BYTES_TO_PAGES(params->cmdline_size + 1)); -+ grub_efi_free_pages ((grub_efi_physical_address_t)(grub_addr_t) -+ linux_cmdline, -+ BYTES_TO_PAGES(params->cmdline_size + 1)); - if (kernel_mem) -- grub_efi_free_pages((grub_efi_physical_address_t)kernel_mem, BYTES_TO_PAGES(kernel_size)); -+ grub_efi_free_pages ((grub_efi_physical_address_t)(grub_addr_t)kernel_mem, -+ BYTES_TO_PAGES(kernel_size)); - if (params) -- grub_efi_free_pages((grub_efi_physical_address_t)params, BYTES_TO_PAGES(16384)); -+ grub_efi_free_pages ((grub_efi_physical_address_t)(grub_addr_t)params, -+ BYTES_TO_PAGES(16384)); - return GRUB_ERR_NONE; - } - -@@ -118,7 +123,7 @@ grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)), - grub_dprintf ("linuxefi", "initrd_mem = %lx\n", (unsigned long) initrd_mem); - - params->ramdisk_size = size; -- params->ramdisk_image = (grub_uint32_t)(grub_uint64_t) initrd_mem; -+ params->ramdisk_image = (grub_uint32_t)(grub_addr_t) initrd_mem; - - ptr = initrd_mem; - -@@ -145,7 +150,8 @@ grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)), - grub_free (files); - - if (initrd_mem && grub_errno) -- grub_efi_free_pages((grub_efi_physical_address_t)initrd_mem, BYTES_TO_PAGES(size)); -+ grub_efi_free_pages ((grub_efi_physical_address_t)(grub_addr_t)initrd_mem, -+ BYTES_TO_PAGES(size)); - - return grub_errno; - } -@@ -252,7 +258,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - linux_cmdline + sizeof (LINUX_IMAGE) - 1, - lh.cmdline_size - (sizeof (LINUX_IMAGE) - 1)); - -- lh.cmd_line_ptr = (grub_uint32_t)(grub_uint64_t)linux_cmdline; -+ lh.cmd_line_ptr = (grub_uint32_t)(grub_addr_t)linux_cmdline; - - handover_offset = lh.handover_offset; - -@@ -297,13 +303,17 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - } - - if (linux_cmdline && !loaded) -- grub_efi_free_pages((grub_efi_physical_address_t)linux_cmdline, BYTES_TO_PAGES(lh.cmdline_size + 1)); -+ grub_efi_free_pages ((grub_efi_physical_address_t)(grub_addr_t) -+ linux_cmdline, -+ BYTES_TO_PAGES(lh.cmdline_size + 1)); - - if (kernel_mem && !loaded) -- grub_efi_free_pages((grub_efi_physical_address_t)kernel_mem, BYTES_TO_PAGES(kernel_size)); -+ grub_efi_free_pages ((grub_efi_physical_address_t)(grub_addr_t)kernel_mem, -+ BYTES_TO_PAGES(kernel_size)); - - if (params && !loaded) -- grub_efi_free_pages((grub_efi_physical_address_t)params, BYTES_TO_PAGES(16384)); -+ grub_efi_free_pages ((grub_efi_physical_address_t)(grub_addr_t)params, -+ BYTES_TO_PAGES(16384)); - - return grub_errno; - } diff --git a/patches/grub/2.02/linuxefi_move_fdt_helper.patch b/patches/grub/2.02/linuxefi_move_fdt_helper.patch deleted file mode 100644 index 4739f63c4..000000000 --- a/patches/grub/2.02/linuxefi_move_fdt_helper.patch +++ /dev/null @@ -1,95 +0,0 @@ -From 1c4934ef2833af2b92c91e8aede131efd8c5c789 Mon Sep 17 00:00:00 2001 -From: Leif Lindholm -Date: Fri, 3 Nov 2017 12:04:00 -0400 -Subject: efi: move fdt helper library - -There is nothing ARM64 (or even ARM) specific about the efi fdt helper -library, which is used for locating or overriding a firmware-provided -devicetree in a UEFI system - so move it to loader/efi for reuse. - -Move the fdtload.h include file to grub/efi and update path to -efi/fdtload.h in source code referring to it. - -Signed-off-by: Leif Lindholm - -From: Leif Lindholm -Date: Thu, 3 Aug 2017 11:04:24 +0100 - -Patch-Name: linuxefi_move_fdt_helper.patch ---- - grub-core/Makefile.core.def | 2 +- - grub-core/loader/arm64/linux.c | 2 +- - grub-core/loader/arm64/xen_boot.c | 2 +- - grub-core/loader/{arm64 => efi}/fdt.c | 2 +- - include/grub/{arm64 => efi}/fdtload.h | 0 - 5 files changed, 4 insertions(+), 4 deletions(-) - rename grub-core/loader/{arm64 => efi}/fdt.c (99%) - rename include/grub/{arm64 => efi}/fdtload.h (100%) - -diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def -index 68e47a727..cedf27eb8 100644 ---- a/grub-core/Makefile.core.def -+++ b/grub-core/Makefile.core.def -@@ -1677,7 +1677,7 @@ module = { - - module = { - name = fdt; -- arm64 = loader/arm64/fdt.c; -+ arm64 = loader/efi/fdt.c; - common = lib/fdt.c; - enable = fdt; - }; -diff --git a/grub-core/loader/arm64/linux.c b/grub-core/loader/arm64/linux.c -index 9519d2e4d..57890fdda 100644 ---- a/grub-core/loader/arm64/linux.c -+++ b/grub-core/loader/arm64/linux.c -@@ -26,8 +26,8 @@ - #include - #include - #include --#include - #include -+#include - #include - #include - #include -diff --git a/grub-core/loader/arm64/xen_boot.c b/grub-core/loader/arm64/xen_boot.c -index a914eb8e2..82ee39459 100644 ---- a/grub-core/loader/arm64/xen_boot.c -+++ b/grub-core/loader/arm64/xen_boot.c -@@ -27,9 +27,9 @@ - #include - #include - #include --#include - #include - #include -+#include - #include /* required by struct xen_hypervisor_header */ - #include - #include -diff --git a/grub-core/loader/arm64/fdt.c b/grub-core/loader/efi/fdt.c -similarity index 99% -rename from grub-core/loader/arm64/fdt.c -rename to grub-core/loader/efi/fdt.c -index db49cf649..3266f65c4 100644 ---- a/grub-core/loader/arm64/fdt.c -+++ b/grub-core/loader/efi/fdt.c -@@ -18,12 +18,12 @@ - - #include - #include --#include - #include - #include - #include - #include - #include -+#include - - static void *loaded_fdt; - static void *fdt; -diff --git a/include/grub/arm64/fdtload.h b/include/grub/efi/fdtload.h -similarity index 100% -rename from include/grub/arm64/fdtload.h -rename to include/grub/efi/fdtload.h diff --git a/patches/grub/2.02/linuxefi_no_insmod_on_sb.patch b/patches/grub/2.02/linuxefi_no_insmod_on_sb.patch deleted file mode 100644 index 51cd85815..000000000 --- a/patches/grub/2.02/linuxefi_no_insmod_on_sb.patch +++ /dev/null @@ -1,121 +0,0 @@ -From 0df94e5a210f217bfb1a8aed9bf5cf6c5e3ad619 Mon Sep 17 00:00:00 2001 -From: Matthew Garrett -Date: Mon, 13 Jan 2014 12:13:09 +0000 -Subject: Don't permit loading modules on UEFI secure boot - -Hi, - -Fedora's patch to forbid insmod in UEFI Secure Boot environments is fine -as far as it goes. However, the insmod command is not the only way that -modules can be loaded. In particular, the 'normal' command, which -implements the usual GRUB menu and the fully-featured command prompt, -will implicitly load commands not currently loaded into memory. This -permits trivial Secure Boot violations by writing commands implementing -whatever you want to do and pointing $prefix at the malicious code. - -I'm currently test-building this patch (replacing your current -grub-2.00-no-insmod-on-sb.patch), but this should be more correct. It -moves the check into grub_dl_load_file. - -Author: Colin Watson -Origin: vendor, https://github.com/rhboot/grub2/commit/7cd4b7642d1ce2c0ac48f62e0fa4954a432f65a5 -Forwarded: no -Last-Update: 2013-12-25 - -Patch-Name: linuxefi_no_insmod_on_sb.patch ---- - grub-core/kern/dl.c | 21 +++++++++++++++++++++ - grub-core/kern/efi/efi.c | 28 ++++++++++++++++++++++++++++ - include/grub/efi/efi.h | 1 + - 3 files changed, 50 insertions(+) - -diff --git a/grub-core/kern/dl.c b/grub-core/kern/dl.c -index e394cd96f..04e804d16 100644 ---- a/grub-core/kern/dl.c -+++ b/grub-core/kern/dl.c -@@ -38,6 +38,14 @@ - #define GRUB_MODULES_MACHINE_READONLY - #endif - -+#ifdef GRUB_MACHINE_EMU -+#include -+#endif -+ -+#ifdef GRUB_MACHINE_EFI -+#include -+#endif -+ - - - #pragma GCC diagnostic ignored "-Wcast-align" -@@ -686,6 +694,19 @@ grub_dl_load_file (const char *filename) - void *core = 0; - grub_dl_t mod = 0; - -+#ifdef GRUB_MACHINE_EFI -+ if (grub_efi_secure_boot ()) -+ { -+#if 0 -+ /* This is an error, but grub2-mkconfig still generates a pile of -+ * insmod commands, so emitting it would be mostly just obnoxious. */ -+ grub_error (GRUB_ERR_ACCESS_DENIED, -+ "Secure Boot forbids loading module from %s", filename); -+#endif -+ return 0; -+ } -+#endif -+ - grub_boot_time ("Loading module %s", filename); - - file = grub_file_open (filename); -diff --git a/grub-core/kern/efi/efi.c b/grub-core/kern/efi/efi.c -index d467785fc..bce251df9 100644 ---- a/grub-core/kern/efi/efi.c -+++ b/grub-core/kern/efi/efi.c -@@ -264,6 +264,34 @@ grub_efi_get_variable (const char *var, const grub_efi_guid_t *guid, - return NULL; - } - -+grub_efi_boolean_t -+grub_efi_secure_boot (void) -+{ -+ grub_efi_guid_t efi_var_guid = GRUB_EFI_GLOBAL_VARIABLE_GUID; -+ grub_size_t datasize; -+ char *secure_boot = NULL; -+ char *setup_mode = NULL; -+ grub_efi_boolean_t ret = 0; -+ -+ secure_boot = grub_efi_get_variable("SecureBoot", &efi_var_guid, &datasize); -+ -+ if (datasize != 1 || !secure_boot) -+ goto out; -+ -+ setup_mode = grub_efi_get_variable("SetupMode", &efi_var_guid, &datasize); -+ -+ if (datasize != 1 || !setup_mode) -+ goto out; -+ -+ if (*secure_boot && !*setup_mode) -+ ret = 1; -+ -+ out: -+ grub_free (secure_boot); -+ grub_free (setup_mode); -+ return ret; -+} -+ - #pragma GCC diagnostic ignored "-Wcast-align" - - /* Search the mods section from the PE32/PE32+ image. This code uses -diff --git a/include/grub/efi/efi.h b/include/grub/efi/efi.h -index 764cd11f5..62a3d9726 100644 ---- a/include/grub/efi/efi.h -+++ b/include/grub/efi/efi.h -@@ -76,6 +76,7 @@ EXPORT_FUNC (grub_efi_set_variable) (const char *var, - const grub_efi_guid_t *guid, - void *data, - grub_size_t datasize); -+grub_efi_boolean_t EXPORT_FUNC (grub_efi_secure_boot) (void); - int - EXPORT_FUNC (grub_efi_compare_device_paths) (const grub_efi_device_path_t *dp1, - const grub_efi_device_path_t *dp2); diff --git a/patches/grub/2.02/linuxefi_non_sb_fallback.patch b/patches/grub/2.02/linuxefi_non_sb_fallback.patch deleted file mode 100644 index 3e7c686eb..000000000 --- a/patches/grub/2.02/linuxefi_non_sb_fallback.patch +++ /dev/null @@ -1,96 +0,0 @@ -From 037c606bad73a979f5937922590fccb9d0b093b6 Mon Sep 17 00:00:00 2001 -From: Mathieu Trudel-Lapierre -Date: Wed, 1 Nov 2017 13:48:26 -0400 -Subject: If running under UEFI secure boot, attempt to use linuxefi loader - -Author: Steve Langasek -Forwarded: no -Last-Update: 2017-11-01 - -Patch-Name: linuxefi_non_sb_fallback.patch ---- - grub-core/loader/i386/efi/linux.c | 2 +- - grub-core/loader/i386/linux.c | 43 +++++++++++++++++++++++++++++++++++++++ - 2 files changed, 44 insertions(+), 1 deletion(-) - -diff --git a/grub-core/loader/i386/efi/linux.c b/grub-core/loader/i386/efi/linux.c -index 9a3f7477b..9f70256a5 100644 ---- a/grub-core/loader/i386/efi/linux.c -+++ b/grub-core/loader/i386/efi/linux.c -@@ -200,7 +200,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - rc = grub_linuxefi_secure_validate (kernel, filelen); - if (rc < 0) - { -- grub_error (GRUB_ERR_INVALID_COMMAND, N_("%s has invalid signature"), -+ grub_error (GRUB_ERR_ACCESS_DENIED, N_("%s has invalid signature"), - argv[0]); - goto fail; - } -diff --git a/grub-core/loader/i386/linux.c b/grub-core/loader/i386/linux.c -index c9e89310b..3e3b45aa8 100644 ---- a/grub-core/loader/i386/linux.c -+++ b/grub-core/loader/i386/linux.c -@@ -76,6 +76,8 @@ static grub_size_t maximal_cmdline_size; - static struct linux_kernel_params linux_params; - static char *linux_cmdline; - #ifdef GRUB_MACHINE_EFI -+static int using_linuxefi; -+static grub_command_t initrdefi_cmd; - static grub_efi_uintn_t efi_mmap_size; - #else - static const grub_size_t efi_mmap_size = 0; -@@ -692,6 +694,41 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - - grub_dl_ref (my_mod); - -+#ifdef GRUB_MACHINE_EFI -+ using_linuxefi = 0; -+ if (grub_efi_secure_boot ()) -+ { -+ /* Try linuxefi first, which will require a successful signature check -+ and then hand over to the kernel without calling ExitBootServices. -+ If that fails, however, fall back to calling ExitBootServices -+ ourselves and then booting an unsigned kernel. */ -+ grub_dl_t mod; -+ grub_command_t linuxefi_cmd; -+ -+ grub_dprintf ("linux", "Secure Boot enabled: trying linuxefi\n"); -+ -+ mod = grub_dl_load ("linuxefi"); -+ if (mod) -+ { -+ grub_dl_ref (mod); -+ linuxefi_cmd = grub_command_find ("linuxefi"); -+ initrdefi_cmd = grub_command_find ("initrdefi"); -+ if (linuxefi_cmd && initrdefi_cmd) -+ { -+ (linuxefi_cmd->func) (linuxefi_cmd, argc, argv); -+ if (grub_errno == GRUB_ERR_NONE) -+ { -+ grub_dprintf ("linux", "Handing off to linuxefi\n"); -+ using_linuxefi = 1; -+ return GRUB_ERR_NONE; -+ } -+ grub_dprintf ("linux", "linuxefi failed (%d)\n", grub_errno); -+ grub_errno = GRUB_ERR_NONE; -+ } -+ } -+ } -+#endif -+ - if (argc == 0) - { - grub_error (GRUB_ERR_BAD_ARGUMENT, N_("filename expected")); -@@ -1066,6 +1103,12 @@ grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)), - grub_err_t err; - struct grub_linux_initrd_context initrd_ctx = { 0, 0, 0 }; - -+#ifdef GRUB_MACHINE_EFI -+ /* If we're using linuxefi, just forward to initrdefi. */ -+ if (using_linuxefi && initrdefi_cmd) -+ return (initrdefi_cmd->func) (initrdefi_cmd, argc, argv); -+#endif -+ - if (argc == 0) - { - grub_error (GRUB_ERR_BAD_ARGUMENT, N_("filename expected")); diff --git a/patches/grub/2.02/linuxefi_re-enable_linux_cmd.patch b/patches/grub/2.02/linuxefi_re-enable_linux_cmd.patch deleted file mode 100644 index 7dbfd6fcd..000000000 --- a/patches/grub/2.02/linuxefi_re-enable_linux_cmd.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 43d3508475ff2c2714a95e17ef9e7e3ee7e76f36 Mon Sep 17 00:00:00 2001 -From: Mathieu Trudel-Lapierre -Date: Wed, 1 Nov 2017 13:51:03 -0400 -Subject: Temporarily re-enable the generic linux loader - -We're currently relying on it and an automatic hand-off to linuxefi for EFI -booting; so we need the linux command to start to be able to do the hand-off -correctly. - -This is a temporary measure until we switch to calling linuxefi directly. - -Forwarded: no -Last-Update: 2017-11-01 - -Patch-Name: linuxefi_re-enable_linux_cmd.patch ---- - grub-core/loader/i386/linux.c | 6 ------ - 1 file changed, 6 deletions(-) - -diff --git a/grub-core/loader/i386/linux.c b/grub-core/loader/i386/linux.c -index 3e3b45aa8..ae0be0f26 100644 ---- a/grub-core/loader/i386/linux.c -+++ b/grub-core/loader/i386/linux.c -@@ -1194,9 +1194,6 @@ static grub_command_t cmd_linux, cmd_initrd; - - GRUB_MOD_INIT(linux) - { -- if (grub_efi_secure_boot()) -- return; -- - cmd_linux = grub_register_command ("linux", grub_cmd_linux, - 0, N_("Load Linux.")); - cmd_initrd = grub_register_command ("initrd", grub_cmd_initrd, -@@ -1206,9 +1203,6 @@ GRUB_MOD_INIT(linux) - - GRUB_MOD_FINI(linux) - { -- if (grub_efi_secure_boot()) -- return; -- - grub_unregister_command (cmd_linux); - grub_unregister_command (cmd_initrd); - } diff --git a/patches/grub/2.02/linuxefi_rework_linux16_cmd.patch b/patches/grub/2.02/linuxefi_rework_linux16_cmd.patch deleted file mode 100644 index 4c22a1899..000000000 --- a/patches/grub/2.02/linuxefi_rework_linux16_cmd.patch +++ /dev/null @@ -1,104 +0,0 @@ -From 8e69e6f56cbc2a7fefb97c0052daf485f26f0f7a Mon Sep 17 00:00:00 2001 -From: Matthew Garrett -Date: Sun, 9 Aug 2015 16:20:58 -0700 -Subject: Rework linux16 command - -We want a single buffer that contains the entire kernel image in order to -perform a TPM measurement. Allocate one and copy the entire kernel int it -before pulling out the individual blocks later on. - -Origin: vendor, https://github.com/rhboot/grub2/commit/78d85625026497d96a06e5b7880a1d4785af9d1f -Forwarded: no -Last-Update: 2017-11-01 - -Patch-Name: linuxefi_rework_linux16_cmd.patch ---- - grub-core/loader/i386/pc/linux.c | 34 +++++++++++++++++++++------------- - 1 file changed, 21 insertions(+), 13 deletions(-) - -diff --git a/grub-core/loader/i386/pc/linux.c b/grub-core/loader/i386/pc/linux.c -index 91283157e..b864e5403 100644 ---- a/grub-core/loader/i386/pc/linux.c -+++ b/grub-core/loader/i386/pc/linux.c -@@ -124,13 +124,14 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - grub_file_t file = 0; - struct linux_kernel_header lh; - grub_uint8_t setup_sects; -- grub_size_t real_size; -+ grub_size_t real_size, kernel_offset = 0; - grub_ssize_t len; - int i; - char *grub_linux_prot_chunk; - int grub_linux_is_bzimage; - grub_addr_t grub_linux_prot_target; - grub_err_t err; -+ grub_uint8_t *kernel = NULL; - - grub_dl_ref (my_mod); - -@@ -144,7 +145,15 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - if (! file) - goto fail; - -- if (grub_file_read (file, &lh, sizeof (lh)) != sizeof (lh)) -+ len = grub_file_size (file); -+ kernel = grub_malloc (len); -+ if (!kernel) -+ { -+ grub_error (GRUB_ERR_OUT_OF_MEMORY, N_("cannot allocate kernel buffer")); -+ goto fail; -+ } -+ -+ if (grub_file_read (file, kernel, len) != len) - { - if (!grub_errno) - grub_error (GRUB_ERR_BAD_OS, N_("premature end of file %s"), -@@ -152,6 +161,9 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - goto fail; - } - -+ grub_memcpy (&lh, kernel, sizeof (lh)); -+ kernel_offset = sizeof (lh); -+ - if (lh.boot_flag != grub_cpu_to_le16_compile_time (0xaa55)) - { - grub_error (GRUB_ERR_BAD_OS, "invalid magic number"); -@@ -315,13 +327,9 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - grub_memmove (grub_linux_real_chunk, &lh, sizeof (lh)); - - len = real_size + GRUB_DISK_SECTOR_SIZE - sizeof (lh); -- if (grub_file_read (file, grub_linux_real_chunk + sizeof (lh), len) != len) -- { -- if (!grub_errno) -- grub_error (GRUB_ERR_BAD_OS, N_("premature end of file %s"), -- argv[0]); -- goto fail; -- } -+ grub_memcpy (grub_linux_real_chunk + sizeof (lh), kernel + kernel_offset, -+ len); -+ kernel_offset += len; - - if (lh.header != grub_cpu_to_le32_compile_time (GRUB_LINUX_MAGIC_SIGNATURE) - || grub_le_to_cpu16 (lh.version) < 0x0200) -@@ -356,10 +364,8 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - } - - len = grub_linux16_prot_size; -- if (grub_file_read (file, grub_linux_prot_chunk, grub_linux16_prot_size) -- != (grub_ssize_t) grub_linux16_prot_size && !grub_errno) -- grub_error (GRUB_ERR_BAD_OS, N_("premature end of file %s"), -- argv[0]); -+ grub_memcpy (grub_linux_prot_chunk, kernel + kernel_offset, len); -+ kernel_offset += len; - - if (grub_errno == GRUB_ERR_NONE) - { -@@ -369,6 +375,8 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - - fail: - -+ grub_free (kernel); -+ - if (file) - grub_file_close (file); - diff --git a/patches/grub/2.02/linuxefi_rework_linux_cmd.patch b/patches/grub/2.02/linuxefi_rework_linux_cmd.patch deleted file mode 100644 index 6ce465b48..000000000 --- a/patches/grub/2.02/linuxefi_rework_linux_cmd.patch +++ /dev/null @@ -1,110 +0,0 @@ -From 95c987739871ae7d45174e3cd689410622c3e9b4 Mon Sep 17 00:00:00 2001 -From: Matthew Garrett -Date: Sun, 9 Aug 2015 16:12:39 -0700 -Subject: Rework linux command - -We want a single buffer that contains the entire kernel image in order to -perform a TPM measurement. Allocate one and copy the entire kernel into it -before pulling out the individual blocks later on. - -Origin: vendor, https://github.com/rhboot/grub2/commit/97c97a2e9a95a29c42569952c8be7be1fdb5b4cf -Forwarded: no -Last-Update: 2017-11-01 - -Patch-Name: linuxefi_rework_linux_cmd.patch ---- - grub-core/loader/i386/linux.c | 34 +++++++++++++++++++++------------- - 1 file changed, 21 insertions(+), 13 deletions(-) - -diff --git a/grub-core/loader/i386/linux.c b/grub-core/loader/i386/linux.c -index b2438547d..e4b8342f5 100644 ---- a/grub-core/loader/i386/linux.c -+++ b/grub-core/loader/i386/linux.c -@@ -681,12 +681,13 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - grub_file_t file = 0; - struct linux_kernel_header lh; - grub_uint8_t setup_sects; -- grub_size_t real_size, prot_size, prot_file_size; -+ grub_size_t real_size, prot_size, prot_file_size, kernel_offset; - grub_ssize_t len; - int i; - grub_size_t align, min_align; - int relocatable; - grub_uint64_t preferred_address = GRUB_LINUX_BZIMAGE_ADDR; -+ grub_uint8_t *kernel = NULL; - - grub_dl_ref (my_mod); - -@@ -700,7 +701,15 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - if (! file) - goto fail; - -- if (grub_file_read (file, &lh, sizeof (lh)) != sizeof (lh)) -+ len = grub_file_size (file); -+ kernel = grub_malloc (len); -+ if (!kernel) -+ { -+ grub_error (GRUB_ERR_OUT_OF_MEMORY, N_("cannot allocate kernel buffer")); -+ goto fail; -+ } -+ -+ if (grub_file_read (file, kernel, len) != len) - { - if (!grub_errno) - grub_error (GRUB_ERR_BAD_OS, N_("premature end of file %s"), -@@ -708,6 +717,9 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - goto fail; - } - -+ grub_memcpy (&lh, kernel, sizeof (lh)); -+ kernel_offset = sizeof (lh); -+ - if (lh.boot_flag != grub_cpu_to_le16_compile_time (0xaa55)) - { - grub_error (GRUB_ERR_BAD_OS, "invalid magic number"); -@@ -807,13 +819,9 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - linux_params.ps_mouse = linux_params.padding10 = 0; - - len = sizeof (linux_params) - sizeof (lh); -- if (grub_file_read (file, (char *) &linux_params + sizeof (lh), len) != len) -- { -- if (!grub_errno) -- grub_error (GRUB_ERR_BAD_OS, N_("premature end of file %s"), -- argv[0]); -- goto fail; -- } -+ -+ grub_memcpy (&linux_params + sizeof (lh), kernel + kernel_offset, len); -+ kernel_offset += len; - - linux_params.type_of_loader = GRUB_LINUX_BOOT_LOADER_TYPE; - -@@ -872,7 +880,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - - /* The other parameters are filled when booting. */ - -- grub_file_seek (file, real_size + GRUB_DISK_SECTOR_SIZE); -+ kernel_offset = real_size + GRUB_DISK_SECTOR_SIZE; - - grub_dprintf ("linux", "bzImage, setup=0x%x, size=0x%x\n", - (unsigned) real_size, (unsigned) prot_size); -@@ -1020,9 +1028,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - - (sizeof (LINUX_IMAGE) - 1)); - - len = prot_file_size; -- if (grub_file_read (file, prot_mode_mem, len) != len && !grub_errno) -- grub_error (GRUB_ERR_BAD_OS, N_("premature end of file %s"), -- argv[0]); -+ grub_memcpy (prot_mode_mem, kernel + kernel_offset, len); - - if (grub_errno == GRUB_ERR_NONE) - { -@@ -1033,6 +1039,8 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - - fail: - -+ grub_free (kernel); -+ - if (file) - grub_file_close (file); - diff --git a/patches/grub/2.02/linuxefi_rework_non-sb_efi_chainload.patch b/patches/grub/2.02/linuxefi_rework_non-sb_efi_chainload.patch deleted file mode 100644 index 894832e9d..000000000 --- a/patches/grub/2.02/linuxefi_rework_non-sb_efi_chainload.patch +++ /dev/null @@ -1,385 +0,0 @@ -From 903ae8b9aae3856017c40c1a34bf3d182e7023a8 Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Fri, 10 Jun 2016 14:06:15 -0400 -Subject: Rework even more of efi chainload so non-sb cases work right. - -This ensures that if shim protocol is not loaded, or is loaded but shim -is disabled, we will fall back to a correct load method for the efi -chain loader. - -Here's what I tested with this version: - -results expected actual ------------------------------------------------------------- -sb + enabled + shim + fedora success success -sb + enabled + shim + win success success -sb + enabled + grub + fedora fail fail -sb + enabled + grub + win fail fail - -sb + mokdisabled + shim + fedora success success -sb + mokdisabled + shim + win success success -sb + mokdisabled + grub + fedora fail fail -sb + mokdisabled + grub + win fail fail - -sb disabled + shim + fedora success success* -sb disabled + shim + win success success* -sb disabled + grub + fedora success success -sb disabled + grub + win success success - -nosb + shim + fedora success success* -nosb + shim + win success success* -nosb + grub + fedora success success -nosb + grub + win success success - -* for some reason shim protocol is being installed in these cases, and I - can't see why, but I think it may be this firmware build returning an - erroneous value. But this effectively falls back to the mokdisabled - behavior, which works correctly, and the presence of the "grub" (i.e. - no shim) tests effectively tests the desired behavior here. - -Resolves: rhbz#1344512 - -Signed-off-by: Peter Jones - -Origin: vendor, https://github.com/rhboot/grub2/commit/149cdec4f9e5fd039a698ef20530bad588b6aeeb -Forwarded: no -Last-Update: 2017-11-01 - -Patch-Name: linuxefi_rework_non-sb_efi_chainload.patch ---- - grub-core/kern/efi/sb.c | 14 +++-- - grub-core/loader/arm64/linux.c | 4 +- - grub-core/loader/efi/chainloader.c | 115 ++++++++++++++++++++++--------------- - grub-core/loader/efi/linux.c | 13 +++-- - grub-core/loader/i386/efi/linux.c | 7 ++- - include/grub/efi/linux.h | 2 +- - 6 files changed, 97 insertions(+), 58 deletions(-) - -diff --git a/grub-core/kern/efi/sb.c b/grub-core/kern/efi/sb.c -index a41b6c5b8..d74778b0c 100644 ---- a/grub-core/kern/efi/sb.c -+++ b/grub-core/kern/efi/sb.c -@@ -36,14 +36,20 @@ grub_efi_secure_boot (void) - grub_efi_boolean_t ret = 0; - - secure_boot = grub_efi_get_variable("SecureBoot", &efi_var_guid, &datasize); -- - if (datasize != 1 || !secure_boot) -- goto out; -+ { -+ grub_dprintf ("secureboot", "No SecureBoot variable\n"); -+ goto out; -+ } -+ grub_dprintf ("secureboot", "SecureBoot: %d\n", *secure_boot); - - setup_mode = grub_efi_get_variable("SetupMode", &efi_var_guid, &datasize); -- - if (datasize != 1 || !setup_mode) -- goto out; -+ { -+ grub_dprintf ("secureboot", "No SetupMode variable\n"); -+ goto out; -+ } -+ grub_dprintf ("secureboot", "SetupMode: %d\n", *setup_mode); - - if (*secure_boot && !*setup_mode) - ret = 1; -diff --git a/grub-core/loader/arm64/linux.c b/grub-core/loader/arm64/linux.c -index bc7ebb699..456523b52 100644 ---- a/grub-core/loader/arm64/linux.c -+++ b/grub-core/loader/arm64/linux.c -@@ -253,6 +253,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - grub_file_t file = 0; - struct grub_arm64_linux_kernel_header lh; - struct grub_arm64_linux_pe_header *pe; -+ int rc; - - grub_dl_ref (my_mod); - -@@ -297,7 +298,8 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - - grub_dprintf ("linux", "kernel @ %p\n", kernel_addr); - -- if (!grub_linuxefi_secure_validate (kernel_addr, kernel_size)) -+ rc = grub_linuxefi_secure_validate (kernel_addr, kernel_size); -+ if (rc < 0) - { - grub_error (GRUB_ERR_INVALID_COMMAND, N_("%s has invalid signature"), argv[0]); - goto fail; -diff --git a/grub-core/loader/efi/chainloader.c b/grub-core/loader/efi/chainloader.c -index 505d883ef..a2e2d1b6f 100644 ---- a/grub-core/loader/efi/chainloader.c -+++ b/grub-core/loader/efi/chainloader.c -@@ -182,7 +182,6 @@ make_file_path (grub_efi_device_path_t *dp, const char *filename) - /* Fill the file path for the directory. */ - d = (grub_efi_device_path_t *) ((char *) file_path - + ((char *) d - (char *) dp)); -- grub_efi_print_device_path (d); - copy_file_path ((grub_efi_file_path_device_path_t *) d, - dir_start, dir_end - dir_start); - -@@ -252,10 +251,9 @@ read_header (void *data, grub_efi_uint32_t size, - grub_efi_status_t status; - - shim_lock = grub_efi_locate_protocol (&guid, NULL); -- - if (!shim_lock) - { -- grub_error (GRUB_ERR_BAD_ARGUMENT, "no shim lock protocol"); -+ grub_dprintf ("chain", "no shim lock protocol"); - return 0; - } - -@@ -280,7 +278,7 @@ read_header (void *data, grub_efi_uint32_t size, - break; - } - -- return 0; -+ return -1; - } - - static void* -@@ -514,17 +512,24 @@ handle_image (void *data, grub_efi_uint32_t datasize) - grub_uint32_t section_alignment; - grub_uint32_t buffer_size; - int found_entry_point = 0; -+ int rc; - - b = grub_efi_system_table->boot_services; - -- if (read_header (data, datasize, &context)) -+ rc = read_header (data, datasize, &context); -+ if (rc < 0) - { -- grub_dprintf ("chain", "Succeed to read header\n"); -+ grub_dprintf ("chain", "Failed to read header\n"); -+ goto error_exit; -+ } -+ else if (rc == 0) -+ { -+ grub_dprintf ("chain", "Secure Boot is not enabled\n"); -+ return 0; - } - else - { -- grub_dprintf ("chain", "Failed to read header\n"); -- goto error_exit; -+ grub_dprintf ("chain", "Header read without error\n"); - } - - /* -@@ -796,10 +801,56 @@ grub_secureboot_chainloader_unload (void) - return GRUB_ERR_NONE; - } - -+static grub_err_t -+grub_load_and_start_image(void *boot_image) -+{ -+ grub_efi_boot_services_t *b; -+ grub_efi_status_t status; -+ grub_efi_loaded_image_t *loaded_image; -+ -+ b = grub_efi_system_table->boot_services; -+ -+ status = efi_call_6 (b->load_image, 0, grub_efi_image_handle, file_path, -+ boot_image, fsize, &image_handle); -+ if (status != GRUB_EFI_SUCCESS) -+ { -+ if (status == GRUB_EFI_OUT_OF_RESOURCES) -+ grub_error (GRUB_ERR_OUT_OF_MEMORY, "out of resources"); -+ else -+ grub_error (GRUB_ERR_BAD_OS, "cannot load image"); -+ return -1; -+ } -+ -+ /* LoadImage does not set a device handler when the image is -+ loaded from memory, so it is necessary to set it explicitly here. -+ This is a mess. */ -+ loaded_image = grub_efi_get_loaded_image (image_handle); -+ if (! loaded_image) -+ { -+ grub_error (GRUB_ERR_BAD_OS, "no loaded image available"); -+ return -1; -+ } -+ loaded_image->device_handle = dev_handle; -+ -+ if (cmdline) -+ { -+ loaded_image->load_options = cmdline; -+ loaded_image->load_options_size = cmdline_len; -+ } -+ -+ return 0; -+} -+ - static grub_err_t - grub_secureboot_chainloader_boot (void) - { -- handle_image ((void *)address, fsize); -+ int rc; -+ rc = handle_image ((void *)address, fsize); -+ if (rc == 0) -+ { -+ grub_load_and_start_image((void *)address); -+ } -+ - grub_loader_unset (); - return grub_errno; - } -@@ -813,9 +864,9 @@ grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)), - grub_efi_boot_services_t *b; - grub_device_t dev = 0; - grub_efi_device_path_t *dp = 0; -- grub_efi_loaded_image_t *loaded_image; - char *filename; - void *boot_image = 0; -+ int rc; - - if (argc == 0) - return grub_error (GRUB_ERR_BAD_ARGUMENT, N_("filename expected")); -@@ -902,9 +953,6 @@ grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)), - if (! file_path) - goto fail; - -- grub_printf ("file path: "); -- grub_efi_print_device_path (file_path); -- - fsize = grub_file_size (file); - if (!fsize) - { -@@ -979,51 +1027,28 @@ grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)), - } - #endif - -- if (grub_linuxefi_secure_validate((void *)address, fsize)) -+ rc = grub_linuxefi_secure_validate((void *)address, fsize); -+ grub_dprintf ("chain", "linuxefi_secure_validate: %d\n", rc); -+ if (rc > 0) - { - grub_file_close (file); - grub_loader_set (grub_secureboot_chainloader_boot, - grub_secureboot_chainloader_unload, 0); - return 0; - } -- -- status = efi_call_6 (b->load_image, 0, grub_efi_image_handle, file_path, -- boot_image, fsize, &image_handle); -- if (status != GRUB_EFI_SUCCESS) -+ else if (rc == 0) - { -- if (status == GRUB_EFI_OUT_OF_RESOURCES) -- grub_error (GRUB_ERR_OUT_OF_MEMORY, "out of resources"); -- else -- grub_error (GRUB_ERR_BAD_OS, "cannot load image"); -- -- goto fail; -- } -- -- /* LoadImage does not set a device handler when the image is -- loaded from memory, so it is necessary to set it explicitly here. -- This is a mess. */ -- loaded_image = grub_efi_get_loaded_image (image_handle); -- if (! loaded_image) -- { -- grub_error (GRUB_ERR_BAD_OS, "no loaded image available"); -- goto fail; -- } -- loaded_image->device_handle = dev_handle; -+ grub_load_and_start_image(boot_image); -+ grub_file_close (file); -+ grub_loader_set (grub_chainloader_boot, grub_chainloader_unload, 0); - -- if (cmdline) -- { -- loaded_image->load_options = cmdline; -- loaded_image->load_options_size = cmdline_len; -+ return 0; - } - - grub_file_close (file); - grub_device_close (dev); - -- grub_loader_set (grub_chainloader_boot, grub_chainloader_unload, 0); -- return 0; -- -- fail: -- -+fail: - if (dev) - grub_device_close (dev); - -diff --git a/grub-core/loader/efi/linux.c b/grub-core/loader/efi/linux.c -index aea378adf..8890bdf05 100644 ---- a/grub-core/loader/efi/linux.c -+++ b/grub-core/loader/efi/linux.c -@@ -33,21 +33,24 @@ struct grub_efi_shim_lock - }; - typedef struct grub_efi_shim_lock grub_efi_shim_lock_t; - --grub_efi_boolean_t -+int - grub_linuxefi_secure_validate (void *data, grub_uint32_t size) - { - grub_efi_guid_t guid = SHIM_LOCK_GUID; - grub_efi_shim_lock_t *shim_lock; -+ grub_efi_status_t status; - - shim_lock = grub_efi_locate_protocol(&guid, NULL); -- -+ grub_dprintf ("secureboot", "shim_lock: %p\n", shim_lock); - if (!shim_lock) -- return 1; -+ return 0; - -- if (shim_lock->verify(data, size) == GRUB_EFI_SUCCESS) -+ status = shim_lock->verify(data, size); -+ grub_dprintf ("secureboot", "shim_lock->verify(): %ld\n", status); -+ if (status == GRUB_EFI_SUCCESS) - return 1; - -- return 0; -+ return -1; - } - - typedef void (*handover_func) (void *, grub_efi_system_table_t *, void *); -diff --git a/grub-core/loader/i386/efi/linux.c b/grub-core/loader/i386/efi/linux.c -index 9a3cc1819..010bf982d 100644 ---- a/grub-core/loader/i386/efi/linux.c -+++ b/grub-core/loader/i386/efi/linux.c -@@ -155,6 +155,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - struct linux_kernel_header lh; - grub_ssize_t len, start, filelen; - void *kernel = NULL; -+ int rc; - - grub_dl_ref (my_mod); - -@@ -180,11 +181,13 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - - if (grub_file_read (file, kernel, filelen) != filelen) - { -- grub_error (GRUB_ERR_FILE_READ_ERROR, N_("Can't read kernel %s"), argv[0]); -+ grub_error (GRUB_ERR_FILE_READ_ERROR, N_("Can't read kernel %s"), -+ argv[0]); - goto fail; - } - -- if (! grub_linuxefi_secure_validate (kernel, filelen)) -+ rc = grub_linuxefi_secure_validate (kernel, filelen); -+ if (rc < 0) - { - grub_error (GRUB_ERR_INVALID_COMMAND, N_("%s has invalid signature"), - argv[0]); -diff --git a/include/grub/efi/linux.h b/include/grub/efi/linux.h -index d9ede3677..0033d9305 100644 ---- a/include/grub/efi/linux.h -+++ b/include/grub/efi/linux.h -@@ -22,7 +22,7 @@ - #include - #include - --grub_efi_boolean_t -+int - EXPORT_FUNC(grub_linuxefi_secure_validate) (void *data, grub_uint32_t size); - grub_err_t - EXPORT_FUNC(grub_efi_linux_boot) (void *kernel_address, grub_off_t offset, diff --git a/patches/grub/2.02/linuxefi_rework_pe_loading.patch b/patches/grub/2.02/linuxefi_rework_pe_loading.patch deleted file mode 100644 index 8bc36e434..000000000 --- a/patches/grub/2.02/linuxefi_rework_pe_loading.patch +++ /dev/null @@ -1,356 +0,0 @@ -From ab09a982d2fa084a0b205fdef5b8a099a2d65cee Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Thu, 9 Jun 2016 12:22:29 -0400 -Subject: Re-work some intricacies of PE loading. - -The PE spec is not a well written document, and awesomely every place -where there's an ambiguous way to read something, Windows' bootmgfw.efi -takes a different read than either of them. - -Origin: vendor, https://github.com/rhboot/grub2/commit/3f023d25a1ceb6d23c1bb17b754fbc1f8321427d -Forwarded: no -Last-Update: 2017-11-01 - -Patch-Name: linuxefi_rework_pe_loading.patch ---- - grub-core/loader/efi/chainloader.c | 156 +++++++++++++++++++++++++++++-------- - include/grub/efi/pe32.h | 32 +++++++- - 2 files changed, 152 insertions(+), 36 deletions(-) - -diff --git a/grub-core/loader/efi/chainloader.c b/grub-core/loader/efi/chainloader.c -index 83e191460..505d883ef 100644 ---- a/grub-core/loader/efi/chainloader.c -+++ b/grub-core/loader/efi/chainloader.c -@@ -301,7 +301,7 @@ image_is_64_bit (grub_pe_header_t *pe_hdr) - return 0; - } - --static const grub_uint16_t machine_type = -+static const grub_uint16_t machine_type __attribute__((__unused__)) = - #if defined(__x86_64__) - GRUB_PE32_MACHINE_X86_64; - #elif defined(__aarch64__) -@@ -367,10 +367,10 @@ relocate_coff (pe_coff_loader_image_context_t *context, - - reloc_base = image_address (orig, size, section->raw_data_offset); - reloc_base_end = image_address (orig, size, section->raw_data_offset -- + section->virtual_size - 1); -+ + section->virtual_size); - -- grub_dprintf ("chain", "reloc_base %p reloc_base_end %p\n", reloc_base, -- reloc_base_end); -+ grub_dprintf ("chain", "relocate_coff(): reloc_base %p reloc_base_end %p\n", -+ reloc_base, reloc_base_end); - - if (!reloc_base && !reloc_base_end) - return GRUB_EFI_SUCCESS; -@@ -507,12 +507,13 @@ handle_image (void *data, grub_efi_uint32_t datasize) - grub_efi_status_t efi_status; - char *buffer = NULL; - char *buffer_aligned = NULL; -- grub_efi_uint32_t i, size; -+ grub_efi_uint32_t i; - struct grub_pe32_section_table *section; - char *base, *end; - pe_coff_loader_image_context_t context; - grub_uint32_t section_alignment; - grub_uint32_t buffer_size; -+ int found_entry_point = 0; - - b = grub_efi_system_table->boot_services; - -@@ -526,8 +527,28 @@ handle_image (void *data, grub_efi_uint32_t datasize) - goto error_exit; - } - -+ /* -+ * The spec says, uselessly, of SectionAlignment: -+ * ===== -+ * The alignment (in bytes) of sections when they are loaded into -+ * memory. It must be greater than or equal to FileAlignment. The -+ * default is the page size for the architecture. -+ * ===== -+ * Which doesn't tell you whose responsibility it is to enforce the -+ * "default", or when. It implies that the value in the field must -+ * be > FileAlignment (also poorly defined), but it appears visual -+ * studio will happily write 512 for FileAlignment (its default) and -+ * 0 for SectionAlignment, intending to imply PAGE_SIZE. -+ * -+ * We only support one page size, so if it's zero, nerf it to 4096. -+ */ - section_alignment = context.section_alignment; -+ if (section_alignment == 0) -+ section_alignment = 4096; -+ - buffer_size = context.image_size + section_alignment; -+ grub_dprintf ("chain", "image size is %08lx, datasize is %08x\n", -+ context.image_size, datasize); - - efi_status = efi_call_3 (b->allocate_pool, GRUB_EFI_LOADER_DATA, - buffer_size, (void**) &buffer); -@@ -539,7 +560,6 @@ handle_image (void *data, grub_efi_uint32_t datasize) - } - - buffer_aligned = (char *)ALIGN_UP ((grub_addr_t)buffer, section_alignment); -- - if (!buffer_aligned) - { - grub_error (GRUB_ERR_OUT_OF_MEMORY, N_("out of memory")); -@@ -548,27 +568,62 @@ handle_image (void *data, grub_efi_uint32_t datasize) - - grub_memcpy (buffer_aligned, data, context.size_of_headers); - -+ entry_point = image_address (buffer_aligned, context.image_size, -+ context.entry_point); -+ -+ grub_dprintf ("chain", "entry_point: %p\n", entry_point); -+ if (!entry_point) -+ { -+ grub_error (GRUB_ERR_BAD_ARGUMENT, "invalid entry point"); -+ goto error_exit; -+ } -+ - char *reloc_base, *reloc_base_end; -- reloc_base = image_address (buffer_aligned, datasize, -+ grub_dprintf ("chain", "reloc_dir: %p reloc_size: 0x%08x\n", -+ (void *)(unsigned long long)context.reloc_dir->rva, -+ context.reloc_dir->size); -+ reloc_base = image_address (buffer_aligned, context.image_size, - context.reloc_dir->rva); - /* RelocBaseEnd here is the address of the last byte of the table */ -- reloc_base_end = image_address (buffer_aligned, datasize, -+ reloc_base_end = image_address (buffer_aligned, context.image_size, - context.reloc_dir->rva - + context.reloc_dir->size - 1); -+ grub_dprintf ("chain", "reloc_base: %p reloc_base_end: %p\n", -+ reloc_base, reloc_base_end); -+ - struct grub_pe32_section_table *reloc_section = NULL; - - section = context.first_section; - for (i = 0; i < context.number_of_sections; i++, section++) - { -- size = section->virtual_size; -- if (size > section->raw_data_size) -- size = section->raw_data_size; -+ char name[9]; - - base = image_address (buffer_aligned, context.image_size, - section->virtual_address); - end = image_address (buffer_aligned, context.image_size, -- section->virtual_address + size - 1); -+ section->virtual_address + section->virtual_size -1); - -+ grub_strncpy(name, section->name, 9); -+ name[8] = '\0'; -+ grub_dprintf ("chain", "Section %d \"%s\" at %p..%p\n", i, -+ name, base, end); -+ -+ if (end < base) -+ { -+ grub_dprintf ("chain", " base is %p but end is %p... bad.\n", -+ base, end); -+ grub_error (GRUB_ERR_BAD_ARGUMENT, -+ "Image has invalid negative size"); -+ goto error_exit; -+ } -+ -+ if (section->virtual_address <= context.entry_point && -+ (section->virtual_address + section->raw_data_size - 1) -+ > context.entry_point) -+ { -+ found_entry_point++; -+ grub_dprintf ("chain", " section contains entry point\n"); -+ } - - /* We do want to process .reloc, but it's often marked - * discardable, so we don't want to memcpy it. */ -@@ -587,21 +642,46 @@ handle_image (void *data, grub_efi_uint32_t datasize) - if (section->raw_data_size && section->virtual_size && - base && end && reloc_base == base && reloc_base_end == end) - { -+ grub_dprintf ("chain", " section is relocation section\n"); - reloc_section = section; - } -+ else -+ { -+ grub_dprintf ("chain", " section is not reloc section?\n"); -+ grub_dprintf ("chain", " rds: 0x%08x, vs: %08x\n", -+ section->raw_data_size, section->virtual_size); -+ grub_dprintf ("chain", " base: %p end: %p\n", base, end); -+ grub_dprintf ("chain", " reloc_base: %p reloc_base_end: %p\n", -+ reloc_base, reloc_base_end); -+ } - } - -- if (section->characteristics && GRUB_PE32_SCN_MEM_DISCARDABLE) -- continue; -+ grub_dprintf ("chain", " Section characteristics are %08x\n", -+ section->characteristics); -+ grub_dprintf ("chain", " Section virtual size: %08x\n", -+ section->virtual_size); -+ grub_dprintf ("chain", " Section raw_data size: %08x\n", -+ section->raw_data_size); -+ if (section->characteristics & GRUB_PE32_SCN_MEM_DISCARDABLE) -+ { -+ grub_dprintf ("chain", " Discarding section\n"); -+ continue; -+ } - - if (!base || !end) - { -+ grub_dprintf ("chain", " section is invalid\n"); - grub_error (GRUB_ERR_BAD_ARGUMENT, "Invalid section size"); - goto error_exit; - } - -- if (section->virtual_address < context.size_of_headers || -- section->raw_data_offset < context.size_of_headers) -+ if (section->characteristics & GRUB_PE32_SCN_CNT_UNINITIALIZED_DATA) -+ { -+ if (section->raw_data_size != 0) -+ grub_dprintf ("chain", " UNINITIALIZED_DATA section has data?\n"); -+ } -+ else if (section->virtual_address < context.size_of_headers || -+ section->raw_data_offset < context.size_of_headers) - { - grub_error (GRUB_ERR_BAD_ARGUMENT, - "Section %d is inside image headers", i); -@@ -609,13 +689,24 @@ handle_image (void *data, grub_efi_uint32_t datasize) - } - - if (section->raw_data_size > 0) -- grub_memcpy (base, (grub_efi_uint8_t*)data + section->raw_data_offset, -- size); -+ { -+ grub_dprintf ("chain", " copying 0x%08x bytes to %p\n", -+ section->raw_data_size, base); -+ grub_memcpy (base, -+ (grub_efi_uint8_t*)data + section->raw_data_offset, -+ section->raw_data_size); -+ } - -- if (size < section->virtual_size) -- grub_memset (base + size, 0, section->virtual_size - size); -+ if (section->raw_data_size < section->virtual_size) -+ { -+ grub_dprintf ("chain", " padding with 0x%08x bytes at %p\n", -+ section->virtual_size - section->raw_data_size, -+ base + section->raw_data_size); -+ grub_memset (base + section->raw_data_size, 0, -+ section->virtual_size - section->raw_data_size); -+ } - -- grub_dprintf ("chain", "copied section %s\n", section->name); -+ grub_dprintf ("chain", " finished section %s\n", name); - } - - /* 5 == EFI_IMAGE_DIRECTORY_ENTRY_BASERELOC */ -@@ -638,12 +729,15 @@ handle_image (void *data, grub_efi_uint32_t datasize) - } - } - -- entry_point = image_address (buffer_aligned, context.image_size, -- context.entry_point); -- -- if (!entry_point) -+ if (!found_entry_point) - { -- grub_error (GRUB_ERR_BAD_ARGUMENT, "invalid entry point"); -+ grub_error (GRUB_ERR_BAD_ARGUMENT, "entry point is not within sections"); -+ goto error_exit; -+ } -+ if (found_entry_point > 1) -+ { -+ grub_error (GRUB_ERR_BAD_ARGUMENT, "%d sections contain entry point", -+ found_entry_point); - goto error_exit; - } - -@@ -661,26 +755,24 @@ handle_image (void *data, grub_efi_uint32_t datasize) - li->load_options_size = cmdline_len; - li->file_path = grub_efi_get_media_file_path (file_path); - li->device_handle = dev_handle; -- if (li->file_path) -- { -- grub_printf ("file path: "); -- grub_efi_print_device_path (li->file_path); -- } -- else -+ if (!li->file_path) - { - grub_error (GRUB_ERR_UNKNOWN_DEVICE, "no matching file path found"); - goto error_exit; - } - -+ grub_dprintf ("chain", "booting via entry point\n"); - efi_status = efi_call_2 (entry_point, grub_efi_image_handle, - grub_efi_system_table); - -+ grub_dprintf ("chain", "entry_point returned %ld\n", efi_status); - grub_memcpy (li, &li_bak, sizeof (grub_efi_loaded_image_t)); - efi_status = efi_call_1 (b->free_pool, buffer); - - return 1; - - error_exit: -+ grub_dprintf ("chain", "error_exit: grub_errno: %d\n", grub_errno); - if (buffer) - efi_call_1 (b->free_pool, buffer); - -diff --git a/include/grub/efi/pe32.h b/include/grub/efi/pe32.h -index f79782e1b..8396bde49 100644 ---- a/include/grub/efi/pe32.h -+++ b/include/grub/efi/pe32.h -@@ -227,12 +227,18 @@ struct grub_pe32_section_table - grub_uint32_t characteristics; - }; - -+#define GRUB_PE32_SCN_TYPE_NO_PAD 0x00000008 - #define GRUB_PE32_SCN_CNT_CODE 0x00000020 - #define GRUB_PE32_SCN_CNT_INITIALIZED_DATA 0x00000040 --#define GRUB_PE32_SCN_MEM_DISCARDABLE 0x02000000 --#define GRUB_PE32_SCN_MEM_EXECUTE 0x20000000 --#define GRUB_PE32_SCN_MEM_READ 0x40000000 --#define GRUB_PE32_SCN_MEM_WRITE 0x80000000 -+#define GRUB_PE32_SCN_CNT_UNINITIALIZED_DATA 0x00000080 -+#define GRUB_PE32_SCN_LNK_OTHER 0x00000100 -+#define GRUB_PE32_SCN_LNK_INFO 0x00000200 -+#define GRUB_PE32_SCN_LNK_REMOVE 0x00000800 -+#define GRUB_PE32_SCN_LNK_COMDAT 0x00001000 -+#define GRUB_PE32_SCN_GPREL 0x00008000 -+#define GRUB_PE32_SCN_MEM_16BIT 0x00020000 -+#define GRUB_PE32_SCN_MEM_LOCKED 0x00040000 -+#define GRUB_PE32_SCN_MEM_PRELOAD 0x00080000 - - #define GRUB_PE32_SCN_ALIGN_1BYTES 0x00100000 - #define GRUB_PE32_SCN_ALIGN_2BYTES 0x00200000 -@@ -241,10 +247,28 @@ struct grub_pe32_section_table - #define GRUB_PE32_SCN_ALIGN_16BYTES 0x00500000 - #define GRUB_PE32_SCN_ALIGN_32BYTES 0x00600000 - #define GRUB_PE32_SCN_ALIGN_64BYTES 0x00700000 -+#define GRUB_PE32_SCN_ALIGN_128BYTES 0x00800000 -+#define GRUB_PE32_SCN_ALIGN_256BYTES 0x00900000 -+#define GRUB_PE32_SCN_ALIGN_512BYTES 0x00A00000 -+#define GRUB_PE32_SCN_ALIGN_1024BYTES 0x00B00000 -+#define GRUB_PE32_SCN_ALIGN_2048BYTES 0x00C00000 -+#define GRUB_PE32_SCN_ALIGN_4096BYTES 0x00D00000 -+#define GRUB_PE32_SCN_ALIGN_8192BYTES 0x00E00000 - - #define GRUB_PE32_SCN_ALIGN_SHIFT 20 - #define GRUB_PE32_SCN_ALIGN_MASK 7 - -+#define GRUB_PE32_SCN_LNK_NRELOC_OVFL 0x01000000 -+#define GRUB_PE32_SCN_MEM_DISCARDABLE 0x02000000 -+#define GRUB_PE32_SCN_MEM_NOT_CACHED 0x04000000 -+#define GRUB_PE32_SCN_MEM_NOT_PAGED 0x08000000 -+#define GRUB_PE32_SCN_MEM_SHARED 0x10000000 -+#define GRUB_PE32_SCN_MEM_EXECUTE 0x20000000 -+#define GRUB_PE32_SCN_MEM_READ 0x40000000 -+#define GRUB_PE32_SCN_MEM_WRITE 0x80000000 -+ -+ -+ - #define GRUB_PE32_SIGNATURE_SIZE 4 - - struct grub_pe32_header diff --git a/patches/grub/2.02/linuxefi_use_dev_chainloader_target.patch b/patches/grub/2.02/linuxefi_use_dev_chainloader_target.patch deleted file mode 100644 index 16545e2ec..000000000 --- a/patches/grub/2.02/linuxefi_use_dev_chainloader_target.patch +++ /dev/null @@ -1,40 +0,0 @@ -From b50288d7b1413d72ffa9dbe8faf2a7b025d78143 Mon Sep 17 00:00:00 2001 -From: Raymund Will -Date: Fri, 10 Apr 2015 01:45:02 -0400 -Subject: Use device part of chainloader target, if present. - -Otherwise chainloading is restricted to '$root', which might not even -be readable by EFI! - -v1. use grub_file_get_device_name() to get device name - -Signed-off-by: Michael Chang -Signed-off-by: Peter Jones - -Origin: vendor, https://github.com/rhboot/grub2/commit/f8e5b67d99449b8cb9cc45237adb839406f2db97 -Forwarded: no -Last-Update: 2017-11-01 - -Patch-Name: linuxefi_use_dev_chainloader_target.patch ---- - grub-core/loader/efi/chainloader.c | 7 +++++-- - 1 file changed, 5 insertions(+), 2 deletions(-) - -diff --git a/grub-core/loader/efi/chainloader.c b/grub-core/loader/efi/chainloader.c -index adc856366..14ce6ddd7 100644 ---- a/grub-core/loader/efi/chainloader.c -+++ b/grub-core/loader/efi/chainloader.c -@@ -223,8 +223,11 @@ grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)), - if (! file) - goto fail; - -- /* Get the root device's device path. */ -- dev = grub_device_open (0); -+ /* Get the device path from filename. */ -+ char *devname = grub_file_get_device_name (filename); -+ dev = grub_device_open (devname); -+ if (devname) -+ grub_free (devname); - if (! dev) - goto fail; - diff --git a/patches/grub/2.02/maybe_quiet.patch b/patches/grub/2.02/maybe_quiet.patch deleted file mode 100644 index 051a1abb5..000000000 --- a/patches/grub/2.02/maybe_quiet.patch +++ /dev/null @@ -1,380 +0,0 @@ -From d2063145edd759756d2f7dbde3feb9581882c266 Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Mon, 13 Jan 2014 12:13:26 +0000 -Subject: Add configure option to reduce visual clutter at boot time - -If this option is enabled, then do all of the following: - -Don't display introductory message about line editing unless we're -actually offering a shell prompt. (This is believed to be a workaround -for a different bug. We'll go with this for now, but will drop this in -favour of a better fix upstream if somebody figures out what that is.) - -Don't clear the screen just before booting if we never drew the menu in -the first place. - -Remove verbose messages printed before reading configuration. In some -ways this is awkward because it makes debugging harder, but it's a -requirement for a smooth-looking boot process; we may be able to do -better in future. Upstream doesn't want this, though. - -Disable the cursor as well, for similar reasons of tidiness. - -Suppress kernel/initrd progress messages, except in recovery mode. - -Suppress "GRUB loading" message unless Shift is held down. Upstream -doesn't want this, as it makes debugging harder. Ubuntu wants it to -provide a cleaner boot experience. - -Bug-Ubuntu: https://bugs.launchpad.net/bugs/386922 -Bug-Ubuntu: https://bugs.launchpad.net/bugs/861048 -Forwarded: (partial) http://lists.gnu.org/archive/html/grub-devel/2009-09/msg00056.html -Last-Update: 2014-01-03 - -Patch-Name: maybe_quiet.patch ---- - config.h.in | 2 ++ - configure.ac | 16 ++++++++++++++++ - grub-core/boot/i386/pc/boot.S | 11 +++++++++++ - grub-core/boot/i386/pc/diskboot.S | 26 ++++++++++++++++++++++++++ - grub-core/kern/main.c | 17 +++++++++++++++++ - grub-core/kern/rescue_reader.c | 2 ++ - grub-core/normal/main.c | 11 +++++++++++ - grub-core/normal/menu.c | 17 +++++++++++++++-- - util/grub.d/10_linux.in | 15 +++++++++++---- - 9 files changed, 111 insertions(+), 6 deletions(-) - -diff --git a/config.h.in b/config.h.in -index 9e8f9911b..d2c4ce8e5 100644 ---- a/config.h.in -+++ b/config.h.in -@@ -12,6 +12,8 @@ - /* Define to 1 to enable disk cache statistics. */ - #define DISK_CACHE_STATS @DISK_CACHE_STATS@ - #define BOOT_TIME_STATS @BOOT_TIME_STATS@ -+/* Define to 1 to make GRUB quieter at boot time. */ -+#define QUIET_BOOT @QUIET_BOOT@ - - /* We don't need those. */ - #define MINILZO_CFG_SKIP_LZO_PTR 1 -diff --git a/configure.ac b/configure.ac -index d4978ad5d..dd2fbd01c 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -1817,6 +1817,17 @@ else - fi - AC_SUBST([LIBNVPAIR]) - -+AC_ARG_ENABLE([quiet-boot], -+ [AS_HELP_STRING([--enable-quiet-boot], -+ [emit fewer messages at boot time (default=no)])], -+ [], [enable_quiet_boot=no]) -+if test x"$enable_quiet_boot" = xyes ; then -+ QUIET_BOOT=1 -+else -+ QUIET_BOOT=0 -+fi -+AC_SUBST([QUIET_BOOT]) -+ - LIBS="" - - AC_SUBST([FONT_SOURCE]) -@@ -2081,5 +2092,10 @@ echo "Without liblzma (no support for XZ-compressed mips images) ($liblzma_excus - else - echo "With liblzma from $LIBLZMA (support for XZ-compressed mips images)" - fi -+if [ x"$enable_quiet_boot" = xyes ]; then -+echo With quiet boot: Yes -+else -+echo With quiet boot: No -+fi - echo "*******************************************************" - ] -diff --git a/grub-core/boot/i386/pc/boot.S b/grub-core/boot/i386/pc/boot.S -index 2bd0b2d28..451c8bea5 100644 ---- a/grub-core/boot/i386/pc/boot.S -+++ b/grub-core/boot/i386/pc/boot.S -@@ -19,6 +19,9 @@ - - #include - #include -+#if defined(QUIET_BOOT) && !defined(HYBRID_BOOT) -+#include -+#endif - - /* - * defines for the code go here -@@ -249,9 +252,17 @@ real_start: - /* save drive reference first thing! */ - pushw %dx - -+#if defined(QUIET_BOOT) && !defined(HYBRID_BOOT) -+ /* is either shift key held down? */ -+ movw $(GRUB_MEMORY_MACHINE_BIOS_DATA_AREA_ADDR + 0x17), %bx -+ testb $3, (%bx) -+ jz 2f -+#endif -+ - /* print a notification message on the screen */ - MSG(notification_string) - -+2: - /* set %si to the disk address packet */ - movw $disk_address_packet, %si - -diff --git a/grub-core/boot/i386/pc/diskboot.S b/grub-core/boot/i386/pc/diskboot.S -index 1ee4cf5b2..31096ce5a 100644 ---- a/grub-core/boot/i386/pc/diskboot.S -+++ b/grub-core/boot/i386/pc/diskboot.S -@@ -18,6 +18,9 @@ - - #include - #include -+#ifdef QUIET_BOOT -+#include -+#endif - - /* - * defines for the code go here -@@ -25,6 +28,12 @@ - - #define MSG(x) movw $x, %si; call LOCAL(message) - -+#ifdef QUIET_BOOT -+#define SILENT(x) call LOCAL(check_silent); jz LOCAL(x) -+#else -+#define SILENT(x) -+#endif -+ - .file "diskboot.S" - - .text -@@ -50,11 +59,14 @@ _start: - /* save drive reference first thing! */ - pushw %dx - -+ SILENT(after_notification_string) -+ - /* print a notification message on the screen */ - pushw %si - MSG(notification_string) - popw %si - -+LOCAL(after_notification_string): - /* this sets up for the first run through "bootloop" */ - movw $LOCAL(firstlist), %di - -@@ -279,7 +291,10 @@ LOCAL(copy_buffer): - /* restore addressing regs and print a dot with correct DS - (MSG modifies SI, which is saved, and unused AX and BX) */ - popw %ds -+ SILENT(after_notification_step) - MSG(notification_step) -+ -+LOCAL(after_notification_step): - popa - - /* check if finished with this dataset */ -@@ -295,8 +310,11 @@ LOCAL(copy_buffer): - /* END OF MAIN LOOP */ - - LOCAL(bootit): -+ SILENT(after_notification_done) - /* print a newline */ - MSG(notification_done) -+ -+LOCAL(after_notification_done): - popw %dx /* this makes sure %dl is our "boot" drive */ - ljmp $0, $(GRUB_BOOT_MACHINE_KERNEL_ADDR + 0x200) - -@@ -320,6 +338,14 @@ LOCAL(general_error): - /* go here when you need to stop the machine hard after an error condition */ - LOCAL(stop): jmp LOCAL(stop) - -+#ifdef QUIET_BOOT -+LOCAL(check_silent): -+ /* is either shift key held down? */ -+ movw $(GRUB_MEMORY_MACHINE_BIOS_DATA_AREA_ADDR + 0x17), %bx -+ testb $3, (%bx) -+ ret -+#endif -+ - notification_string: .asciz "loading" - - notification_step: .asciz "." -diff --git a/grub-core/kern/main.c b/grub-core/kern/main.c -index 9cad0c448..5613cd553 100644 ---- a/grub-core/kern/main.c -+++ b/grub-core/kern/main.c -@@ -264,15 +264,25 @@ reclaim_module_space (void) - void __attribute__ ((noreturn)) - grub_main (void) - { -+#ifdef QUIET_BOOT -+ struct grub_term_output *term; -+#endif -+ - /* First of all, initialize the machine. */ - grub_machine_init (); - - grub_boot_time ("After machine init."); - -+#ifdef QUIET_BOOT -+ /* Disable the cursor until we need it. */ -+ FOR_ACTIVE_TERM_OUTPUTS(term) -+ grub_term_setcursor (term, 0); -+#else - /* Hello. */ - grub_setcolorstate (GRUB_TERM_COLOR_HIGHLIGHT); - grub_printf ("Welcome to GRUB!\n\n"); - grub_setcolorstate (GRUB_TERM_COLOR_STANDARD); -+#endif - - grub_load_config (); - -@@ -308,5 +318,12 @@ grub_main (void) - grub_boot_time ("After execution of embedded config. Attempt to go to normal mode"); - - grub_load_normal_mode (); -+ -+#ifdef QUIET_BOOT -+ /* If we have to enter rescue mode, enable the cursor again. */ -+ FOR_ACTIVE_TERM_OUTPUTS(term) -+ grub_term_setcursor (term, 1); -+#endif -+ - grub_rescue_run (); - } -diff --git a/grub-core/kern/rescue_reader.c b/grub-core/kern/rescue_reader.c -index dcd7d4439..03826cf63 100644 ---- a/grub-core/kern/rescue_reader.c -+++ b/grub-core/kern/rescue_reader.c -@@ -78,7 +78,9 @@ grub_rescue_read_line (char **line, int cont, - void __attribute__ ((noreturn)) - grub_rescue_run (void) - { -+#ifdef QUIET_BOOT - grub_printf ("Entering rescue mode...\n"); -+#endif - - while (1) - { -diff --git a/grub-core/normal/main.c b/grub-core/normal/main.c -index 78a70a8bf..e924f6448 100644 ---- a/grub-core/normal/main.c -+++ b/grub-core/normal/main.c -@@ -389,6 +389,15 @@ static grub_err_t - grub_normal_read_line_real (char **line, int cont, int nested) - { - const char *prompt; -+#ifdef QUIET_BOOT -+ static int displayed_intro; -+ -+ if (! displayed_intro) -+ { -+ grub_normal_reader_init (nested); -+ displayed_intro = 1; -+ } -+#endif - - if (cont) - /* TRANSLATORS: it's command line prompt. */ -@@ -441,7 +450,9 @@ grub_cmdline_run (int nested, int force_auth) - return; - } - -+#ifndef QUIET_BOOT - grub_normal_reader_init (nested); -+#endif - - while (1) - { -diff --git a/grub-core/normal/menu.c b/grub-core/normal/menu.c -index 9d0ad4c95..1f3447ad3 100644 ---- a/grub-core/normal/menu.c -+++ b/grub-core/normal/menu.c -@@ -826,12 +826,18 @@ run_menu (grub_menu_t menu, int nested, int *auto_boot) - - /* Callback invoked immediately before a menu entry is executed. */ - static void --notify_booting (grub_menu_entry_t entry, -+notify_booting (grub_menu_entry_t entry -+#ifdef QUIET_BOOT -+ __attribute__((unused)) -+#endif -+ , - void *userdata __attribute__((unused))) - { -+#ifndef QUIET_BOOT - grub_printf (" "); - grub_printf_ (N_("Booting `%s'"), entry->title); - grub_printf ("\n\n"); -+#endif - } - - /* Callback invoked when a default menu entry executed because of a timeout -@@ -879,6 +885,9 @@ show_menu (grub_menu_t menu, int nested, int autobooted) - int boot_entry; - grub_menu_entry_t e; - int auto_boot; -+#ifdef QUIET_BOOT -+ int initial_timeout = grub_menu_get_timeout (); -+#endif - - boot_entry = run_menu (menu, nested, &auto_boot); - if (boot_entry < 0) -@@ -888,7 +897,11 @@ show_menu (grub_menu_t menu, int nested, int autobooted) - if (! e) - continue; /* Menu is empty. */ - -- grub_cls (); -+#ifdef QUIET_BOOT -+ /* Only clear the screen if we drew the menu in the first place. */ -+ if (initial_timeout != 0) -+#endif -+ grub_cls (); - - if (auto_boot) - grub_menu_execute_with_fallback (menu, e, autobooted, -diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in -index 60467460b..67d57ecfd 100644 ---- a/util/grub.d/10_linux.in -+++ b/util/grub.d/10_linux.in -@@ -21,5 +21,6 @@ prefix="@prefix@" - exec_prefix="@exec_prefix@" - datarootdir="@datarootdir@" -+quiet_boot="@QUIET_BOOT@" - - . "$pkgdatadir/grub-mkconfig_lib" - -@@ -148,10 +149,12 @@ linux_entry () - fi - printf '%s\n' "${prepare_boot_cache}" | sed "s/^/$submenu_indentation/" - fi -- message="$(gettext_printf "Loading Linux %s ..." ${version})" -- sed "s/^/$submenu_indentation/" << EOF -+ if [ x"$quiet_boot" = x0 ] || [ x"$type" != xsimple ]; then -+ message="$(gettext_printf "Loading Linux %s ..." ${version})" -+ sed "s/^/$submenu_indentation/" << EOF - echo '$(echo "$message" | grub_quote)' - EOF -+ fi - if test -d /sys/firmware/efi && test -e "${linux}.efi.signed"; then - sed "s/^/$submenu_indentation/" << EOF - linux ${rel_dirname}/${basename}.efi.signed root=${linux_root_device_thisversion} ro ${args} -@@ -163,9 +166,13 @@ EOF - fi - if test -n "${initrd}" ; then - # TRANSLATORS: ramdisk isn't identifier. Should be translated. -- message="$(gettext_printf "Loading initial ramdisk ...")" -- sed "s/^/$submenu_indentation/" << EOF -+ if [ x"$quiet_boot" = x0 ] || [ x"$type" != xsimple ]; then -+ message="$(gettext_printf "Loading initial ramdisk ...")" -+ sed "s/^/$submenu_indentation/" << EOF - echo '$(echo "$message" | grub_quote)' -+EOF -+ fi -+ sed "s/^/$submenu_indentation/" << EOF - initrd ${rel_dirname}/${initrd} - EOF - fi diff --git a/patches/grub/2.02/misc-fix-invalid-char-strtol.patch b/patches/grub/2.02/misc-fix-invalid-char-strtol.patch deleted file mode 100644 index e87bd0621..000000000 --- a/patches/grub/2.02/misc-fix-invalid-char-strtol.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 3a3252cbab24c63aacd2980045345ed84eac1b2b Mon Sep 17 00:00:00 2001 -From: Aaron Miller -Date: Thu, 27 Oct 2016 17:33:07 -0400 -Subject: misc: fix invalid character recongition in strto*l - -Would previously allow digits larger than the base and didn't check that -subtracting the difference from 0-9 to lowercase letters for characters -larger than 9 didn't result in a value lower than 9, which allowed the -parses: ` = 9, _ = 8, ^ = 7, ] = 6, \ = 5, and [ = 4 - -Patch-Name: misc-fix-invalid-char-strtol.patch ---- - grub-core/kern/misc.c | 6 +++++- - 1 file changed, 5 insertions(+), 1 deletion(-) - -diff --git a/grub-core/kern/misc.c b/grub-core/kern/misc.c -index d1a54df6c..3a14d679e 100644 ---- a/grub-core/kern/misc.c -+++ b/grub-core/kern/misc.c -@@ -394,9 +394,13 @@ grub_strtoull (const char *str, char **end, int base) - if (digit > 9) - { - digit += '0' - 'a' + 10; -- if (digit >= (unsigned long) base) -+ /* digit <= 9 check is needed to keep chars larger than -+ '9' but less than 'a' from being read as numbers */ -+ if (digit >= (unsigned long) base || digit <= 9) - break; - } -+ if (digit >= (unsigned long) base) -+ break; - - found = 1; - diff --git a/patches/grub/2.02/mkconfig_loopback.patch b/patches/grub/2.02/mkconfig_loopback.patch deleted file mode 100644 index 60642f916..000000000 --- a/patches/grub/2.02/mkconfig_loopback.patch +++ /dev/null @@ -1,96 +0,0 @@ -From 1193f4dfa4ad36e1cd5301522473da3c8a4baab2 Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Mon, 13 Jan 2014 12:13:00 +0000 -Subject: Handle filesystems loop-mounted on file images - -Improve prepare_grub_to_access_device to emit appropriate commands for -such filesystems, and ignore them in Linux grub.d scripts. - -This is needed for Ubuntu's Wubi installation method. - -This patch isn't inherently Debian/Ubuntu-specific. losetup and -/proc/mounts are Linux-specific, though, so we might need to refine this -before sending it upstream. The changes to the Linux grub.d scripts -might be better handled by integrating 10_lupin properly instead. - -Patch-Name: mkconfig_loopback.patch ---- - util/grub-mkconfig_lib.in | 24 ++++++++++++++++++++++++ - util/grub.d/10_linux.in | 5 +++++ - util/grub.d/20_linux_xen.in | 5 +++++ - 3 files changed, 34 insertions(+) - -diff --git a/util/grub-mkconfig_lib.in b/util/grub-mkconfig_lib.in -index 3a4684e78..9ee60d5fa 100644 ---- a/util/grub-mkconfig_lib.in -+++ b/util/grub-mkconfig_lib.in -@@ -133,6 +133,22 @@ prepare_grub_to_access_device () - esac - done - -+ loop_file= -+ case $1 in -+ /dev/loop/*|/dev/loop[0-9]) -+ grub_loop_device="${1#/dev/}" -+ loop_file=`losetup "$1" | sed -e "s/^[^(]*(\([^)]\+\)).*/\1/"` -+ case $loop_file in -+ /dev/*) ;; -+ *) -+ loop_device="$1" -+ shift -+ set -- `"${grub_probe}" --target=device "${loop_file}"` "$@" -+ ;; -+ esac -+ ;; -+ esac -+ - # Abstraction modules aren't auto-loaded. - abstraction="`"${grub_probe}" --device $@ --target=abstraction`" - for module in ${abstraction} ; do -@@ -165,6 +181,14 @@ prepare_grub_to_access_device () - echo "fi" - fi - IFS="$old_ifs" -+ -+ if [ "x${loop_file}" != x ]; then -+ loop_mountpoint="$(awk '"'${loop_file}'" ~ "^"$2 && $2 != "/" { print $2 }' /proc/mounts | tail -n1)" -+ if [ "x${loop_mountpoint}" != x ]; then -+ echo "loopback ${grub_loop_device} ${loop_file#$loop_mountpoint}" -+ echo "set root=(${grub_loop_device})" -+ fi -+ fi - } - - grub_get_device_id () -diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in -index c34d470c9..5ff76f59a 100644 ---- a/util/grub.d/10_linux.in -+++ b/util/grub.d/10_linux.in -@@ -40,6 +40,11 @@ fi - case ${GRUB_DEVICE} in - /dev/loop/*|/dev/loop[0-9]) - GRUB_DEVICE=`losetup ${GRUB_DEVICE} | sed -e "s/^[^(]*(\([^)]\+\)).*/\1/"` -+ # We can't cope with devices loop-mounted from files here. -+ case ${GRUB_DEVICE} in -+ /dev/*) ;; -+ *) exit 0 ;; -+ esac - ;; - esac - -diff --git a/util/grub.d/20_linux_xen.in b/util/grub.d/20_linux_xen.in -index c48af948d..af05bd276 100644 ---- a/util/grub.d/20_linux_xen.in -+++ b/util/grub.d/20_linux_xen.in -@@ -40,6 +40,11 @@ fi - case ${GRUB_DEVICE} in - /dev/loop/*|/dev/loop[0-9]) - GRUB_DEVICE=`losetup ${GRUB_DEVICE} | sed -e "s/^[^(]*(\([^)]\+\)).*/\1/"` -+ # We can't cope with devices loop-mounted from files here. -+ case ${GRUB_DEVICE} in -+ /dev/*) ;; -+ *) exit 0 ;; -+ esac - ;; - esac - diff --git a/patches/grub/2.02/mkconfig_mid_upgrade.patch b/patches/grub/2.02/mkconfig_mid_upgrade.patch deleted file mode 100644 index 39effa071..000000000 --- a/patches/grub/2.02/mkconfig_mid_upgrade.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 2f97dcc8caba3334636240f4417596c5ac27cc00 Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Mon, 13 Jan 2014 12:13:03 +0000 -Subject: Bail out if trying to run grub-mkconfig during upgrade to 2.00 - -Since files in /etc/grub.d/ are conffiles, they are not put in place -until grub-common is configured, meaning that they may be out of sync -with the parts of grub-mkconfig that reside in /usr/. In GRUB 1.99, -/etc/grub.d/00_header contained a reference to ${GRUB_PREFIX}/video.lst. -This and other code from 1.99 breaks with 2.00's grub-mkconfig. -Deferring this to when grub-PLATFORM.postinst eventually runs is safe -and avoids this problem. - -Forwarded: no -Last-Update: 2013-12-25 - -Patch-Name: mkconfig_mid_upgrade.patch ---- - util/grub-mkconfig.in | 7 +++++++ - 1 file changed, 7 insertions(+) - -diff --git a/util/grub-mkconfig.in b/util/grub-mkconfig.in -index 54fbe5288..99ba7acba 100644 ---- a/util/grub-mkconfig.in -+++ b/util/grub-mkconfig.in -@@ -102,6 +102,13 @@ do - esac - done - -+if fgrep -qs '${GRUB_PREFIX}/video.lst' "${grub_mkconfig_dir}/00_header"; then -+ echo "GRUB >= 2.00 has been unpacked but not yet configured." >&2 -+ echo "grub-mkconfig will not work until the upgrade is complete." >&2 -+ echo "It should run later as part of configuring the new GRUB packages." >&2 -+ exit 0 -+fi -+ - if [ "x$EUID" = "x" ] ; then - EUID=`id -u` - fi diff --git a/patches/grub/2.02/mkconfig_nonexistent_loopback.patch b/patches/grub/2.02/mkconfig_nonexistent_loopback.patch deleted file mode 100644 index ac4c769a1..000000000 --- a/patches/grub/2.02/mkconfig_nonexistent_loopback.patch +++ /dev/null @@ -1,55 +0,0 @@ -From 9e93c5490a5275ec97858de653adb0026ecb506c Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Mon, 13 Jan 2014 12:13:08 +0000 -Subject: Avoid getting confused by inaccessible loop device backing paths - -Bug-Ubuntu: https://bugs.launchpad.net/bugs/938724 -Forwarded: no -Last-Update: 2013-12-20 - -Patch-Name: mkconfig_nonexistent_loopback.patch ---- - util/grub-mkconfig_lib.in | 2 +- - util/grub.d/30_os-prober.in | 9 +++++---- - 2 files changed, 6 insertions(+), 5 deletions(-) - -diff --git a/util/grub-mkconfig_lib.in b/util/grub-mkconfig_lib.in -index 9ee60d5fa..2c9743052 100644 ---- a/util/grub-mkconfig_lib.in -+++ b/util/grub-mkconfig_lib.in -@@ -143,7 +143,7 @@ prepare_grub_to_access_device () - *) - loop_device="$1" - shift -- set -- `"${grub_probe}" --target=device "${loop_file}"` "$@" -+ set -- `"${grub_probe}" --target=device "${loop_file}"` "$@" || return 0 - ;; - esac - ;; -diff --git a/util/grub.d/30_os-prober.in b/util/grub.d/30_os-prober.in -index 775ceb2e0..b7e1147c4 100644 ---- a/util/grub.d/30_os-prober.in -+++ b/util/grub.d/30_os-prober.in -@@ -219,6 +219,11 @@ EOF - LINITRD="${LINITRD#/boot}" - fi - -+ if [ -z "${prepare_boot_cache}" ]; then -+ prepare_boot_cache="$(prepare_grub_to_access_device ${LBOOT} | grub_add_tab)" -+ [ "${prepare_boot_cache}" ] || continue -+ fi -+ - onstr="$(gettext_printf "(on %s)" "${DEVICE}")" - recovery_params="$(echo "${LPARAMS}" | grep 'single\|recovery')" || true - counter=1 -@@ -230,10 +235,6 @@ EOF - fi - used_osprober_linux_ids="$used_osprober_linux_ids 'osprober-gnulinux-$LKERNEL-${recovery_params}-$counter-$boot_device_id'" - -- if [ -z "${prepare_boot_cache}" ]; then -- prepare_boot_cache="$(prepare_grub_to_access_device ${LBOOT} | grub_add_tab)" -- fi -- - if [ "x$is_top_level" = xtrue ] && [ "x${GRUB_DISABLE_SUBMENU}" != xy ]; then - cat << EOF - menuentry '$(echo "$OS $onstr" | grub_quote)' $CLASS --class gnu-linux --class gnu --class os \$menuentry_id_option 'osprober-gnulinux-simple-$boot_device_id' { diff --git a/patches/grub/2.02/mkconfig_other_inits.patch b/patches/grub/2.02/mkconfig_other_inits.patch deleted file mode 100644 index fab9bedd6..000000000 --- a/patches/grub/2.02/mkconfig_other_inits.patch +++ /dev/null @@ -1,90 +0,0 @@ -From fe53371a0cc47533ec8231e5454711b6e12bd0a0 Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Sat, 3 Jan 2015 12:04:59 +0000 -Subject: Generate alternative init entries in advanced menu - -Add fallback boot entries for alternative installed init systems. Based -on patches from Michael Biebl and Didier Roche. - -Bug-Debian: https://bugs.debian.org/757298 -Bug-Debian: https://bugs.debian.org/773173 -Forwarded: no -Last-Update: 2017-06-23 - -Patch-Name: mkconfig_other_inits.patch ---- - util/grub.d/10_linux.in | 10 ++++++++++ - util/grub.d/20_linux_xen.in | 11 +++++++++++ - 2 files changed, 21 insertions(+) - -diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in -index d344f05e6..4cf321c54 100644 ---- a/util/grub.d/10_linux.in -+++ b/util/grub.d/10_linux.in -@@ -32,6 +32,7 @@ export TEXTDOMAIN=@PACKAGE@ - export TEXTDOMAINDIR="@localedir@" - - CLASS="--class gnu-linux --class gnu --class os" -+SUPPORTED_INITS="sysvinit:/lib/sysvinit/init systemd:/lib/systemd/systemd upstart:/sbin/upstart" - - if [ "x${GRUB_DISTRIBUTOR}" = "x" ] ; then - OS=GNU/Linux -@@ -117,6 +118,8 @@ linux_entry () - case $type in - recovery) - title="$(gettext_printf "%s, with Linux %s (%s)" "${os}" "${version}" "$(gettext "${GRUB_RECOVERY_TITLE}")")" ;; -+ init-*) -+ title="$(gettext_printf "%s, with Linux %s (%s)" "${os}" "${version}" "${type#init-}")" ;; - *) - title="$(gettext_printf "%s, with Linux %s" "${os}" "${version}")" ;; - esac -@@ -344,6 +347,13 @@ while [ "x$list" != "x" ] ; do - - linux_entry "${OS}" "${version}" advanced \ - "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}" -+ for supported_init in ${SUPPORTED_INITS}; do -+ init_path="${supported_init#*:}" -+ if [ -x "${init_path}" ] && [ "$(readlink -f /sbin/init)" != "$(readlink -f "${init_path}")" ]; then -+ linux_entry "${OS}" "${version}" "init-${supported_init%%:*}" \ -+ "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT} init=${init_path}" -+ fi -+ done - if [ "x${GRUB_DISABLE_RECOVERY}" != "xtrue" ]; then - linux_entry "${OS}" "${version}" recovery \ - "${GRUB_CMDLINE_LINUX_RECOVERY} ${GRUB_CMDLINE_LINUX}" -diff --git a/util/grub.d/20_linux_xen.in b/util/grub.d/20_linux_xen.in -index 62d663334..d3edb46df 100644 ---- a/util/grub.d/20_linux_xen.in -+++ b/util/grub.d/20_linux_xen.in -@@ -27,6 +27,7 @@ export TEXTDOMAIN=@PACKAGE@ - export TEXTDOMAINDIR="@localedir@" - - CLASS="--class gnu-linux --class gnu --class os --class xen" -+SUPPORTED_INITS="sysvinit:/lib/sysvinit/init systemd:/lib/systemd/systemd upstart:/sbin/upstart" - - if [ "x${GRUB_DISTRIBUTOR}" = "x" ] ; then - OS=GNU/Linux -@@ -96,6 +97,8 @@ linux_entry () - if [ x$type != xsimple ] ; then - if [ x$type = xrecovery ] ; then - title="$(gettext_printf "%s, with Xen %s and Linux %s (%s)" "${os}" "${xen_version}" "${version}" "$(gettext "${GRUB_RECOVERY_TITLE}")")" -+ elif [ "${type#init-}" != "$type" ] ; then -+ title="$(gettext_printf "%s, with Xen %s and Linux %s (%s)" "${os}" "${xen_version}" "${version}" "${type#init-}")" - else - title="$(gettext_printf "%s, with Xen %s and Linux %s" "${os}" "${xen_version}" "${version}")" - fi -@@ -259,6 +262,14 @@ while [ "x${xen_list}" != "x" ] ; do - - linux_entry "${OS}" "${version}" "${xen_version}" advanced \ - "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}" "${GRUB_CMDLINE_XEN} ${GRUB_CMDLINE_XEN_DEFAULT}" -+ for supported_init in ${SUPPORTED_INITS}; do -+ init_path="${supported_init#*:}" -+ if [ -x "${init_path}" ] && [ "$(readlink -f /sbin/init)" != "$(readlink -f "${init_path}")" ]; then -+ linux_entry "${OS}" "${version}" "${xen_version}" "init-${supported_init%%:*}" \ -+ "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT} init=${init_path}" "${GRUB_CMDLINE_XEN} ${GRUB_CMDLINE_XEN_DEFAULT}" -+ -+ fi -+ done - if [ "x${GRUB_DISABLE_RECOVERY}" != "xtrue" ]; then - linux_entry "${OS}" "${version}" "${xen_version}" recovery \ - "single ${GRUB_CMDLINE_LINUX}" "${GRUB_CMDLINE_XEN}" diff --git a/patches/grub/2.02/mkconfig_recovery_title.patch b/patches/grub/2.02/mkconfig_recovery_title.patch deleted file mode 100644 index 7265e3044..000000000 --- a/patches/grub/2.02/mkconfig_recovery_title.patch +++ /dev/null @@ -1,130 +0,0 @@ -From f779d4dece1d0ad368efba62fcc0a3bead497222 Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Mon, 13 Jan 2014 12:13:33 +0000 -Subject: Add GRUB_RECOVERY_TITLE option - -This allows the controversial "recovery mode" text to be customised. - -Bug-Ubuntu: https://bugs.launchpad.net/bugs/1240360 -Forwarded: no -Last-Update: 2013-12-25 - -Patch-Name: mkconfig_recovery_title.patch ---- - docs/grub.texi | 5 +++++ - util/grub-mkconfig.in | 7 ++++++- - util/grub.d/10_hurd.in | 4 ++-- - util/grub.d/10_kfreebsd.in | 2 +- - util/grub.d/10_linux.in | 2 +- - util/grub.d/10_netbsd.in | 2 +- - util/grub.d/20_linux_xen.in | 2 +- - 7 files changed, 17 insertions(+), 7 deletions(-) - -diff --git a/docs/grub.texi b/docs/grub.texi -index 5b2a7bbb2..f1216d19d 100644 ---- a/docs/grub.texi -+++ b/docs/grub.texi -@@ -1504,6 +1504,11 @@ a console is restricted or limited. - This option is only effective when GRUB was configured with the - @option{--enable-quick-boot} option. - -+@item GRUB_RECOVERY_TITLE -+This option sets the English text of the string that will be displayed in -+parentheses to indicate that a boot option is provided to help users recover -+a broken system. The default is "recovery mode". -+ - @end table - - The following options are still accepted for compatibility with existing -diff --git a/util/grub-mkconfig.in b/util/grub-mkconfig.in -index fac560464..ad716384b 100644 ---- a/util/grub-mkconfig.in -+++ b/util/grub-mkconfig.in -@@ -189,6 +189,10 @@ GRUB_ACTUAL_DEFAULT="$GRUB_DEFAULT" - - if [ "x${GRUB_ACTUAL_DEFAULT}" = "xsaved" ] ; then GRUB_ACTUAL_DEFAULT="`"${grub_editenv}" - list | sed -n '/^saved_entry=/ s,^saved_entry=,,p'`" ; fi - -+if [ "x${GRUB_RECOVERY_TITLE}" = "x" ]; then -+ GRUB_RECOVERY_TITLE="recovery mode" -+fi -+ - - # These are defined in this script, export them here so that user can - # override them. -@@ -240,7 +244,8 @@ export GRUB_DEFAULT \ - GRUB_BADRAM \ - GRUB_OS_PROBER_SKIP_LIST \ - GRUB_DISABLE_SUBMENU \ -- GRUB_RECORDFAIL_TIMEOUT -+ GRUB_RECORDFAIL_TIMEOUT \ -+ GRUB_RECOVERY_TITLE - - if test "x${grub_cfg}" != "x"; then - rm -f "${grub_cfg}.new" -diff --git a/util/grub.d/10_hurd.in b/util/grub.d/10_hurd.in -index 59a9a48a2..7fa3a3fbd 100644 ---- a/util/grub.d/10_hurd.in -+++ b/util/grub.d/10_hurd.in -@@ -88,8 +88,8 @@ hurd_entry () { - - if [ x$type != xsimple ] ; then - if [ x$type = xrecovery ] ; then -- title="$(gettext_printf "%s, with Hurd %s (recovery mode)" "${OS}" "${kernel_base}")" -- oldtitle="$OS using $kernel_base (recovery mode)" -+ title="$(gettext_printf "%s, with Hurd %s (%s)" "${OS}" "${kernel_base}" "$(gettext "${GRUB_RECOVERY_TITLE}")")" -+ oldtitle="$OS using $kernel_base ($GRUB_RECOVERY_TITLE)" - else - title="$(gettext_printf "%s, with Hurd %s" "${OS}" "${kernel_base}")" - oldtitle="$OS using $kernel_base" -diff --git a/util/grub.d/10_kfreebsd.in b/util/grub.d/10_kfreebsd.in -index 9d8e8fd85..8301d361a 100644 ---- a/util/grub.d/10_kfreebsd.in -+++ b/util/grub.d/10_kfreebsd.in -@@ -76,7 +76,7 @@ kfreebsd_entry () - fi - if [ x$type != xsimple ] ; then - if [ x$type = xrecovery ] ; then -- title="$(gettext_printf "%s, with kFreeBSD %s (recovery mode)" "${os}" "${version}")" -+ title="$(gettext_printf "%s, with kFreeBSD %s (%s)" "${os}" "${version}" "$(gettext "${GRUB_RECOVERY_TITLE}")")" - else - title="$(gettext_printf "%s, with kFreeBSD %s" "${os}" "${version}")" - fi -diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in -index 18c859214..704e834d5 100644 ---- a/util/grub.d/10_linux.in -+++ b/util/grub.d/10_linux.in -@@ -116,7 +116,7 @@ linux_entry () - if [ x$type != xsimple ] ; then - case $type in - recovery) -- title="$(gettext_printf "%s, with Linux %s (recovery mode)" "${os}" "${version}")" ;; -+ title="$(gettext_printf "%s, with Linux %s (%s)" "${os}" "${version}" "$(gettext "${GRUB_RECOVERY_TITLE}")")" ;; - *) - title="$(gettext_printf "%s, with Linux %s" "${os}" "${version}")" ;; - esac -diff --git a/util/grub.d/10_netbsd.in b/util/grub.d/10_netbsd.in -index 874f59969..bb29cc046 100644 ---- a/util/grub.d/10_netbsd.in -+++ b/util/grub.d/10_netbsd.in -@@ -102,7 +102,7 @@ netbsd_entry () - - if [ x$type != xsimple ] ; then - if [ x$type = xrecovery ] ; then -- title="$(gettext_printf "%s, with kernel %s (via %s, recovery mode)" "${OS}" "$(echo ${kernel} | sed -e 's,^.*/,,')" "${loader}")" -+ title="$(gettext_printf "%s, with kernel %s (via %s, %s)" "${OS}" "$(echo ${kernel} | sed -e 's,^.*/,,')" "${loader}" "$(gettext "${GRUB_RECOVERY_TITLE}")")" - else - title="$(gettext_printf "%s, with kernel %s (via %s)" "${OS}" "$(echo ${kernel} | sed -e 's,^.*/,,')" "${loader}")" - fi -diff --git a/util/grub.d/20_linux_xen.in b/util/grub.d/20_linux_xen.in -index af05bd276..62d663334 100644 ---- a/util/grub.d/20_linux_xen.in -+++ b/util/grub.d/20_linux_xen.in -@@ -95,7 +95,7 @@ linux_entry () - fi - if [ x$type != xsimple ] ; then - if [ x$type = xrecovery ] ; then -- title="$(gettext_printf "%s, with Xen %s and Linux %s (recovery mode)" "${os}" "${xen_version}" "${version}")" -+ title="$(gettext_printf "%s, with Xen %s and Linux %s (%s)" "${os}" "${xen_version}" "${version}" "$(gettext "${GRUB_RECOVERY_TITLE}")")" - else - title="$(gettext_printf "%s, with Xen %s and Linux %s" "${os}" "${xen_version}" "${version}")" - fi diff --git a/patches/grub/2.02/mkconfig_signed_kernel.patch b/patches/grub/2.02/mkconfig_signed_kernel.patch deleted file mode 100644 index 2bd3da4f5..000000000 --- a/patches/grub/2.02/mkconfig_signed_kernel.patch +++ /dev/null @@ -1,48 +0,0 @@ -From 3853b53c91000f146eedaa0d4c80cb5852da91ee Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Mon, 13 Jan 2014 12:13:21 +0000 -Subject: Generate configuration for signed UEFI kernels if available - -Forwarded: no -Last-Update: 2013-12-25 - -Patch-Name: mkconfig_signed_kernel.patch ---- - util/grub.d/10_linux.in | 15 +++++++++++++++ - 1 file changed, 15 insertions(+) - -diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in -index 37c248c54..60467460b 100644 ---- a/util/grub.d/10_linux.in -+++ b/util/grub.d/10_linux.in -@@ -151,8 +151,16 @@ linux_entry () - message="$(gettext_printf "Loading Linux %s ..." ${version})" - sed "s/^/$submenu_indentation/" << EOF - echo '$(echo "$message" | grub_quote)' -+EOF -+ if test -d /sys/firmware/efi && test -e "${linux}.efi.signed"; then -+ sed "s/^/$submenu_indentation/" << EOF -+ linux ${rel_dirname}/${basename}.efi.signed root=${linux_root_device_thisversion} ro ${args} -+EOF -+ else -+ sed "s/^/$submenu_indentation/" << EOF - linux ${rel_dirname}/${basename} root=${linux_root_device_thisversion} ro ${args} - EOF -+ fi - if test -n "${initrd}" ; then - # TRANSLATORS: ramdisk isn't identifier. Should be translated. - message="$(gettext_printf "Loading initial ramdisk ...")" -@@ -200,6 +208,13 @@ submenu_indentation="" - is_top_level=true - while [ "x$list" != "x" ] ; do - linux=`version_find_latest $list` -+ case $linux in -+ *.efi.signed) -+ # We handle these in linux_entry. -+ list=`echo $list | tr ' ' '\n' | grep -vx $linux | tr '\n' ' '` -+ continue -+ ;; -+ esac - gettext_printf "Found linux image: %s\n" "$linux" >&2 - basename=`basename $linux` - dirname=`dirname $linux` diff --git a/patches/grub/2.02/mkrescue_efi_modules.patch b/patches/grub/2.02/mkrescue_efi_modules.patch deleted file mode 100644 index be9d331c3..000000000 --- a/patches/grub/2.02/mkrescue_efi_modules.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 34e0d43849034eeec80e0f5a3fee15e4155f6d29 Mon Sep 17 00:00:00 2001 -From: Mario Limonciello -Date: Mon, 13 Jan 2014 12:12:59 +0000 -Subject: Build vfat into EFI boot images - -Author: Colin Watson -Bug-Ubuntu: https://bugs.launchpad.net/bugs/677758 -Forwarded: http://lists.gnu.org/archive/html/grub-devel/2011-01/msg00028.html -Last-Update: 2016-09-18 - -Patch-Name: mkrescue_efi_modules.patch ---- - util/grub-mkrescue.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/util/grub-mkrescue.c b/util/grub-mkrescue.c -index 238d4840e..10dc2023b 100644 ---- a/util/grub-mkrescue.c -+++ b/util/grub-mkrescue.c -@@ -738,6 +738,7 @@ main (int argc, char *argv[]) - - grub_install_push_module ("part_gpt"); - grub_install_push_module ("part_msdos"); -+ grub_install_push_module ("fat"); - - imgname = grub_util_path_concat (2, efidir_efi_boot, "bootia64.efi"); - make_image_fwdisk_abs (GRUB_INSTALL_PLATFORM_IA64_EFI, "ia64-efi", imgname); -@@ -806,6 +807,7 @@ main (int argc, char *argv[]) - free (efidir); - grub_install_pop_module (); - grub_install_pop_module (); -+ grub_install_pop_module (); - } - - grub_install_push_module ("part_apple"); diff --git a/patches/grub/2.02/net_read_bracketed_ipv6_addr.patch b/patches/grub/2.02/net_read_bracketed_ipv6_addr.patch deleted file mode 100644 index cf340cccc..000000000 --- a/patches/grub/2.02/net_read_bracketed_ipv6_addr.patch +++ /dev/null @@ -1,254 +0,0 @@ -From 71dd5c8e969902c586c048b62f64bf1a746beec7 Mon Sep 17 00:00:00 2001 -From: Aaron Miller -Date: Thu, 27 Oct 2016 17:39:49 -0400 -Subject: net: read bracketed ipv6 addrs and port numbers - -Allow specifying port numbers for http and tftp paths, and allow ipv6 addresses -to be recognized with brackets around them, which is required to specify a port -number - -Patch-Name: net_read_bracketed_ipv6_addr.patch ---- - grub-core/net/http.c | 21 +++++++++--- - grub-core/net/net.c | 93 ++++++++++++++++++++++++++++++++++++++++++++++++---- - grub-core/net/tftp.c | 6 +++- - include/grub/net.h | 1 + - 4 files changed, 110 insertions(+), 11 deletions(-) - -diff --git a/grub-core/net/http.c b/grub-core/net/http.c -index 5aa4ad3be..f182d7b87 100644 ---- a/grub-core/net/http.c -+++ b/grub-core/net/http.c -@@ -312,12 +312,14 @@ http_establish (struct grub_file *file, grub_off_t offset, int initial) - int i; - struct grub_net_buff *nb; - grub_err_t err; -+ char* server = file->device->net->server; -+ int port = file->device->net->port; - - nb = grub_netbuff_alloc (GRUB_NET_TCP_RESERVE_SIZE - + sizeof ("GET ") - 1 - + grub_strlen (data->filename) - + sizeof (" HTTP/1.1\r\nHost: ") - 1 -- + grub_strlen (file->device->net->server) -+ + grub_strlen (server) + sizeof (":XXXXXXXXXX") - + sizeof ("\r\nUser-Agent: " PACKAGE_STRING - "\r\n") - 1 - + sizeof ("Range: bytes=XXXXXXXXXXXXXXXXXXXX" -@@ -356,7 +358,7 @@ http_establish (struct grub_file *file, grub_off_t offset, int initial) - sizeof (" HTTP/1.1\r\nHost: ") - 1); - - ptr = nb->tail; -- err = grub_netbuff_put (nb, grub_strlen (file->device->net->server)); -+ err = grub_netbuff_put (nb, grub_strlen (server)); - if (err) - { - grub_netbuff_free (nb); -@@ -365,6 +367,15 @@ http_establish (struct grub_file *file, grub_off_t offset, int initial) - grub_memcpy (ptr, file->device->net->server, - grub_strlen (file->device->net->server)); - -+ if (port) -+ { -+ ptr = nb->tail; -+ grub_snprintf ((char *) ptr, -+ sizeof (":XXXXXXXXXX"), -+ ":%d", -+ port); -+ } -+ - ptr = nb->tail; - err = grub_netbuff_put (nb, - sizeof ("\r\nUser-Agent: " PACKAGE_STRING "\r\n") -@@ -390,8 +401,10 @@ http_establish (struct grub_file *file, grub_off_t offset, int initial) - grub_netbuff_put (nb, 2); - grub_memcpy (ptr, "\r\n", 2); - -- data->sock = grub_net_tcp_open (file->device->net->server, -- HTTP_PORT, http_receive, -+ grub_dprintf ("http", "opening path %s on host %s TCP port %d\n", -+ data->filename, server, port ? port : HTTP_PORT); -+ data->sock = grub_net_tcp_open (server, -+ port ? port : HTTP_PORT, http_receive, - http_err, http_err, - file); - if (!data->sock) -diff --git a/grub-core/net/net.c b/grub-core/net/net.c -index 10773fc34..fbac15e0f 100644 ---- a/grub-core/net/net.c -+++ b/grub-core/net/net.c -@@ -437,6 +437,12 @@ parse_ip6 (const char *val, grub_uint64_t *ip, const char **rest) - grub_uint16_t newip[8]; - const char *ptr = val; - int word, quaddot = -1; -+ int bracketed = 0; -+ -+ if (ptr[0] == '[') { -+ bracketed = 1; -+ ptr++; -+ } - - if (ptr[0] == ':' && ptr[1] != ':') - return 0; -@@ -475,6 +481,9 @@ parse_ip6 (const char *val, grub_uint64_t *ip, const char **rest) - grub_memset (&newip[quaddot], 0, (7 - word) * sizeof (newip[0])); - } - grub_memcpy (ip, newip, 16); -+ if (bracketed && *ptr == ']') { -+ ptr++; -+ } - if (rest) - *rest = ptr; - return 1; -@@ -1260,8 +1269,10 @@ grub_net_open_real (const char *name) - { - grub_net_app_level_t proto; - const char *protname, *server; -+ char *host; - grub_size_t protnamelen; - int try; -+ int port = 0; - - if (grub_strncmp (name, "pxe:", sizeof ("pxe:") - 1) == 0) - { -@@ -1299,6 +1310,72 @@ grub_net_open_real (const char *name) - return NULL; - } - -+ char* port_start; -+ /* ipv6 or port specified? */ -+ if ((port_start = grub_strchr (server, ':'))) -+ { -+ char* ipv6_begin; -+ if((ipv6_begin = grub_strchr (server, '['))) -+ { -+ char* ipv6_end = grub_strchr (server, ']'); -+ if(!ipv6_end) -+ { -+ grub_error (GRUB_ERR_NET_BAD_ADDRESS, -+ N_("mismatched [ in address")); -+ return NULL; -+ } -+ /* port number after bracketed ipv6 addr */ -+ if(ipv6_end[1] == ':') -+ { -+ port = grub_strtoul (ipv6_end + 2, NULL, 10); -+ if(port > 65535) -+ { -+ grub_error (GRUB_ERR_NET_BAD_ADDRESS, -+ N_("bad port number")); -+ return NULL; -+ } -+ } -+ host = grub_strndup (ipv6_begin, (ipv6_end - ipv6_begin) + 1); -+ } -+ else -+ { -+ if (grub_strchr (port_start + 1, ':')) -+ { -+ int iplen = grub_strlen (server); -+ /* bracket bare ipv6 addrs */ -+ host = grub_malloc (iplen + 3); -+ if(!host) -+ { -+ return NULL; -+ } -+ host[0] = '['; -+ grub_memcpy (host + 1, server, iplen); -+ host[iplen + 1] = ']'; -+ host[iplen + 2] = '\0'; -+ } -+ else -+ { -+ /* hostname:port or ipv4:port */ -+ port = grub_strtol (port_start + 1, NULL, 10); -+ if(port > 65535) -+ { -+ grub_error (GRUB_ERR_NET_BAD_ADDRESS, -+ N_("bad port number")); -+ return NULL; -+ } -+ host = grub_strndup (server, port_start - server); -+ } -+ } -+ } -+ else -+ { -+ host = grub_strdup (server); -+ } -+ if (!host) -+ { -+ return NULL; -+ } -+ - for (try = 0; try < 2; try++) - { - FOR_NET_APP_LEVEL (proto) -@@ -1308,15 +1385,19 @@ grub_net_open_real (const char *name) - { - grub_net_t ret = grub_zalloc (sizeof (*ret)); - if (!ret) -- return NULL; -- ret->protocol = proto; -- ret->server = grub_strdup (server); -- if (!ret->server) -+ grub_free (host); -+ if (host) - { -- grub_free (ret); -- return NULL; -+ ret->server = grub_strdup (host); -+ if (!ret->server) -+ { -+ grub_free (ret); -+ return NULL; -+ } - } - ret->fs = &grub_net_fs; -+ ret->protocol = proto; -+ ret->port = port; - return ret; - } - } -diff --git a/grub-core/net/tftp.c b/grub-core/net/tftp.c -index 7d90bf66e..a0817a075 100644 ---- a/grub-core/net/tftp.c -+++ b/grub-core/net/tftp.c -@@ -314,6 +314,7 @@ tftp_open (struct grub_file *file, const char *filename) - grub_err_t err; - grub_uint8_t *nbd; - grub_net_network_level_address_t addr; -+ int port = file->device->net->port; - - data = grub_zalloc (sizeof (*data)); - if (!data) -@@ -382,13 +383,16 @@ tftp_open (struct grub_file *file, const char *filename) - err = grub_net_resolve_address (file->device->net->server, &addr); - if (err) - { -+ grub_dprintf ("tftp", "file_size is %llu, block_size is %llu\n", -+ (unsigned long long)data->file_size, -+ (unsigned long long)data->block_size); - destroy_pq (data); - grub_free (data); - return err; - } - - data->sock = grub_net_udp_open (addr, -- TFTP_SERVER_PORT, tftp_receive, -+ port ? port : TFTP_SERVER_PORT, tftp_receive, - file); - if (!data->sock) - { -diff --git a/include/grub/net.h b/include/grub/net.h -index 2192fa186..ccc169c2d 100644 ---- a/include/grub/net.h -+++ b/include/grub/net.h -@@ -270,6 +270,7 @@ typedef struct grub_net - { - char *server; - char *name; -+ int port; - grub_net_app_level_t protocol; - grub_net_packets_t packs; - grub_off_t offset; diff --git a/patches/grub/2.02/probe_fusionio.patch b/patches/grub/2.02/probe_fusionio.patch deleted file mode 100644 index a46ee034e..000000000 --- a/patches/grub/2.02/probe_fusionio.patch +++ /dev/null @@ -1,76 +0,0 @@ -From 280a233c59586f396fe0106a97d85544de55b511 Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Mon, 13 Jan 2014 12:13:31 +0000 -Subject: Probe FusionIO devices - -Bug-Ubuntu: https://bugs.launchpad.net/bugs/1237519 -Forwarded: no -Last-Update: 2016-09-18 - -Patch-Name: probe_fusionio.patch ---- - grub-core/osdep/linux/getroot.c | 13 +++++++++++++ - util/deviceiter.c | 19 +++++++++++++++++++ - 2 files changed, 32 insertions(+) - -diff --git a/grub-core/osdep/linux/getroot.c b/grub-core/osdep/linux/getroot.c -index 90d92d3ad..7adc0f30e 100644 ---- a/grub-core/osdep/linux/getroot.c -+++ b/grub-core/osdep/linux/getroot.c -@@ -950,6 +950,19 @@ grub_util_part_to_disk (const char *os_dev, struct stat *st, - *pp = '\0'; - return path; - } -+ -+ /* If this is a FusionIO disk. */ -+ if ((strncmp ("fio", p, 3) == 0) && p[3] >= 'a' && p[3] <= 'z') -+ { -+ char *pp = p + 3; -+ while (*pp >= 'a' && *pp <= 'z') -+ pp++; -+ if (*pp) -+ *is_part = 1; -+ /* /dev/fio[a-z]+[0-9]* */ -+ *pp = '\0'; -+ return path; -+ } - } - - return path; -diff --git a/util/deviceiter.c b/util/deviceiter.c -index 23d49aecd..bc68b2549 100644 ---- a/util/deviceiter.c -+++ b/util/deviceiter.c -@@ -383,6 +383,12 @@ get_nvme_disk_name (char *name, int controller, int namespace) - { - sprintf (name, "/dev/nvme%dn%d", controller, namespace); - } -+ -+static void -+get_fio_disk_name (char *name, int unit) -+{ -+ sprintf (name, "/dev/fio%c", unit + 'a'); -+} - #endif - - static struct seen_device -@@ -923,6 +929,19 @@ grub_util_iterate_devices (int (*hook) (const char *, int, void *), void *hook_d - } - } - -+ /* FusionIO. */ -+ for (i = 0; i < 26; i++) -+ { -+ char name[16]; -+ -+ get_fio_disk_name (name, i); -+ if (check_device_readable_unique (name)) -+ { -+ if (hook (name, 0, hook_data)) -+ goto out; -+ } -+ } -+ - # ifdef HAVE_DEVICE_MAPPER - # define dmraid_check(cond, ...) \ - if (! (cond)) \ diff --git a/patches/grub/2.02/restore_mkdevicemap.patch b/patches/grub/2.02/restore_mkdevicemap.patch deleted file mode 100644 index 3337939aa..000000000 --- a/patches/grub/2.02/restore_mkdevicemap.patch +++ /dev/null @@ -1,1320 +0,0 @@ -From 7611a560ab6cd5edc3eefd20b291239deceb448f Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Mon, 13 Jan 2014 12:13:01 +0000 -Subject: Restore grub-mkdevicemap - -This is kind of a mess, requiring lots of OS-specific code to iterate -over all possible devices. However, we use it in a number of scripts to -discover devices and reimplementing those in terms of something else -would be very complicated. - -Author: Dimitri John Ledkov -Forwarded: no -Last-Update: 2016-09-18 - -Patch-Name: restore_mkdevicemap.patch ---- - Makefile.util.def | 17 + - docs/man/grub-mkdevicemap.h2m | 4 + - include/grub/util/deviceiter.h | 14 + - util/deviceiter.c | 1021 ++++++++++++++++++++++++++++++++++++++++ - util/devicemap.c | 13 + - util/grub-mkdevicemap.c | 181 +++++++ - 6 files changed, 1250 insertions(+) - create mode 100644 docs/man/grub-mkdevicemap.h2m - create mode 100644 include/grub/util/deviceiter.h - create mode 100644 util/deviceiter.c - create mode 100644 util/devicemap.c - create mode 100644 util/grub-mkdevicemap.c - -diff --git a/Makefile.util.def b/Makefile.util.def -index f9caccb97..c939deb92 100644 ---- a/Makefile.util.def -+++ b/Makefile.util.def -@@ -314,6 +314,23 @@ program = { - condition = COND_GRUB_MKFONT; - }; - -+program = { -+ name = grub-mkdevicemap; -+ installdir = sbin; -+ mansection = 8; -+ -+ common = util/grub-mkdevicemap.c; -+ common = util/deviceiter.c; -+ common = util/devicemap.c; -+ common = grub-core/osdep/init.c; -+ -+ ldadd = libgrubmods.a; -+ ldadd = libgrubgcry.a; -+ ldadd = libgrubkern.a; -+ ldadd = grub-core/gnulib/libgnu.a; -+ ldadd = '$(LIBINTL) $(LIBDEVMAPPER) $(LIBUTIL) $(LIBZFS) $(LIBNVPAIR) $(LIBGEOM)'; -+}; -+ - program = { - name = grub-probe; - installdir = sbin; -diff --git a/docs/man/grub-mkdevicemap.h2m b/docs/man/grub-mkdevicemap.h2m -new file mode 100644 -index 000000000..96cd6ee72 ---- /dev/null -+++ b/docs/man/grub-mkdevicemap.h2m -@@ -0,0 +1,4 @@ -+[NAME] -+grub-mkdevicemap \- make a device map file automatically -+[SEE ALSO] -+.BR grub-probe (8) -diff --git a/include/grub/util/deviceiter.h b/include/grub/util/deviceiter.h -new file mode 100644 -index 000000000..85374978c ---- /dev/null -+++ b/include/grub/util/deviceiter.h -@@ -0,0 +1,14 @@ -+#ifndef GRUB_DEVICEITER_MACHINE_UTIL_HEADER -+#define GRUB_DEVICEITER_MACHINE_UTIL_HEADER 1 -+ -+#include -+ -+typedef int (*grub_util_iterate_devices_hook_t) (const char *name, -+ int is_floppy, void *data); -+ -+void grub_util_iterate_devices (grub_util_iterate_devices_hook_t hook, -+ void *hook_data, int floppy_disks); -+void grub_util_emit_devicemap_entry (FILE *fp, char *name, int is_floppy, -+ int *num_fd, int *num_hd); -+ -+#endif /* ! GRUB_DEVICEITER_MACHINE_UTIL_HEADER */ -diff --git a/util/deviceiter.c b/util/deviceiter.c -new file mode 100644 -index 000000000..23d49aecd ---- /dev/null -+++ b/util/deviceiter.c -@@ -0,0 +1,1021 @@ -+/* deviceiter.c - iterate over system devices */ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 1999,2000,2001,2002,2003,2004,2005,2007,2008,2011 Free Software Foundation, Inc. -+ * -+ * GRUB is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation, either version 3 of the License, or -+ * (at your option) any later version. -+ * -+ * GRUB is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with GRUB. If not, see . -+ */ -+ -+#include -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#include -+#include -+#include -+#include -+#include -+ -+#ifdef __linux__ -+# if !defined(__GLIBC__) || \ -+ ((__GLIBC__ < 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ < 1))) -+/* Maybe libc doesn't have large file support. */ -+# include /* _llseek */ -+# endif /* (GLIBC < 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR < 1)) */ -+# include /* ioctl */ -+# ifndef HDIO_GETGEO -+# define HDIO_GETGEO 0x0301 /* get device geometry */ -+/* If HDIO_GETGEO is not defined, it is unlikely that hd_geometry is -+ defined. */ -+struct hd_geometry -+{ -+ unsigned char heads; -+ unsigned char sectors; -+ unsigned short cylinders; -+ unsigned long start; -+}; -+# endif /* ! HDIO_GETGEO */ -+# ifndef FLOPPY_MAJOR -+# define FLOPPY_MAJOR 2 /* the major number for floppy */ -+# endif /* ! FLOPPY_MAJOR */ -+# ifndef MAJOR -+# define MAJOR(dev) \ -+ ({ \ -+ unsigned long long __dev = (dev); \ -+ (unsigned) ((__dev >> 8) & 0xfff) \ -+ | ((unsigned int) (__dev >> 32) & ~0xfff); \ -+ }) -+# endif /* ! MAJOR */ -+# ifndef MINOR -+# define MINOR(dev) \ -+ ({ \ -+ unsigned long long __dev = (dev); \ -+ (unsigned) (__dev & 0xff) | ((unsigned int) (__dev >> 12) & ~0xff); \ -+ }) -+# endif /* ! MINOR */ -+# ifndef CDROM_GET_CAPABILITY -+# define CDROM_GET_CAPABILITY 0x5331 /* get capabilities */ -+# endif /* ! CDROM_GET_CAPABILITY */ -+# ifndef BLKGETSIZE -+# define BLKGETSIZE _IO(0x12,96) /* return device size */ -+# endif /* ! BLKGETSIZE */ -+ -+#ifdef HAVE_DEVICE_MAPPER -+# include -+# pragma GCC diagnostic ignored "-Wcast-align" -+#endif -+#endif /* __linux__ */ -+ -+/* Use __FreeBSD_kernel__ instead of __FreeBSD__ for compatibility with -+ kFreeBSD-based non-FreeBSD systems (e.g. GNU/kFreeBSD) */ -+#if defined(__FreeBSD__) && ! defined(__FreeBSD_kernel__) -+# define __FreeBSD_kernel__ -+#endif -+#ifdef __FreeBSD_kernel__ -+ /* Obtain version of kFreeBSD headers */ -+# include -+# ifndef __FreeBSD_kernel_version -+# define __FreeBSD_kernel_version __FreeBSD_version -+# endif -+ -+ /* Runtime detection of kernel */ -+# include -+static int -+get_kfreebsd_version (void) -+{ -+ struct utsname uts; -+ int major; -+ int minor; -+ int v[2]; -+ -+ uname (&uts); -+ sscanf (uts.release, "%d.%d", &major, &minor); -+ -+ if (major >= 9) -+ major = 9; -+ if (major >= 5) -+ { -+ v[0] = minor/10; v[1] = minor%10; -+ } -+ else -+ { -+ v[0] = minor%10; v[1] = minor/10; -+ } -+ return major*100000+v[0]*10000+v[1]*1000; -+} -+#endif /* __FreeBSD_kernel__ */ -+ -+#if defined(__FreeBSD_kernel__) || defined(__NetBSD__) || defined(__OpenBSD__) -+# include /* ioctl */ -+# include -+# include /* CDIOCCLRDEBUG */ -+# if defined(__FreeBSD_kernel__) -+# include -+# if __FreeBSD_kernel_version >= 500040 -+# include -+# endif -+# endif /* __FreeBSD_kernel__ */ -+#endif /* __FreeBSD_kernel__ || __NetBSD__ || __OpenBSD__ */ -+ -+#ifdef HAVE_OPENDISK -+# include -+#endif /* HAVE_OPENDISK */ -+ -+#ifdef __linux__ -+/* Check if we have devfs support. */ -+static int -+have_devfs (void) -+{ -+ struct stat st; -+ return stat ("/dev/.devfsd", &st) == 0; -+} -+#endif /* __linux__ */ -+ -+/* These three functions are quite different among OSes. */ -+static void -+get_floppy_disk_name (char *name, int unit) -+{ -+#if defined(__linux__) -+ /* GNU/Linux */ -+ if (have_devfs ()) -+ sprintf (name, "/dev/floppy/%d", unit); -+ else -+ sprintf (name, "/dev/fd%d", unit); -+#elif defined(__GNU__) -+ /* GNU/Hurd */ -+ sprintf (name, "/dev/fd%d", unit); -+#elif defined(__FreeBSD_kernel__) -+ /* kFreeBSD */ -+ if (get_kfreebsd_version () >= 400000) -+ sprintf (name, "/dev/fd%d", unit); -+ else -+ sprintf (name, "/dev/rfd%d", unit); -+#elif defined(__NetBSD__) -+ /* NetBSD */ -+ /* opendisk() doesn't work for floppies. */ -+ sprintf (name, "/dev/rfd%da", unit); -+#elif defined(__OpenBSD__) -+ /* OpenBSD */ -+ sprintf (name, "/dev/rfd%dc", unit); -+#elif defined(__QNXNTO__) -+ /* QNX RTP */ -+ sprintf (name, "/dev/fd%d", unit); -+#elif defined(__CYGWIN__) -+ /* Cygwin */ -+ sprintf (name, "/dev/fd%d", unit); -+#elif defined(__MINGW32__) -+ (void) unit; -+ *name = 0; -+#else -+# warning "BIOS floppy drives cannot be guessed in your operating system." -+ /* Set NAME to a bogus string. */ -+ *name = 0; -+#endif -+} -+ -+static void -+get_ide_disk_name (char *name, int unit) -+{ -+#if defined(__linux__) -+ /* GNU/Linux */ -+ sprintf (name, "/dev/hd%c", unit + 'a'); -+#elif defined(__GNU__) -+ /* GNU/Hurd */ -+ sprintf (name, "/dev/hd%d", unit); -+#elif defined(__FreeBSD_kernel__) -+ /* kFreeBSD */ -+ if (get_kfreebsd_version () >= 400000) -+ sprintf (name, "/dev/ad%d", unit); -+ else -+ sprintf (name, "/dev/rwd%d", unit); -+#elif defined(__NetBSD__) && defined(HAVE_OPENDISK) -+ /* NetBSD */ -+ char shortname[16]; -+ int fd; -+ -+ sprintf (shortname, "wd%d", unit); -+ fd = opendisk (shortname, O_RDONLY, name, -+ 16, /* length of NAME */ -+ 0 /* char device */ -+ ); -+ close (fd); -+#elif defined(__OpenBSD__) -+ /* OpenBSD */ -+ sprintf (name, "/dev/rwd%dc", unit); -+#elif defined(__QNXNTO__) -+ /* QNX RTP */ -+ /* Actually, QNX RTP doesn't distinguish IDE from SCSI, so this could -+ contain SCSI disks. */ -+ sprintf (name, "/dev/hd%d", unit); -+#elif defined(__CYGWIN__) -+ /* Cygwin emulates all disks as /dev/sdX. */ -+ (void) unit; -+ *name = 0; -+#elif defined(__MINGW32__) -+ sprintf (name, "//./PHYSICALDRIVE%d", unit); -+#else -+# warning "BIOS IDE drives cannot be guessed in your operating system." -+ /* Set NAME to a bogus string. */ -+ *name = 0; -+#endif -+} -+ -+static void -+get_scsi_disk_name (char *name, int unit) -+{ -+#if defined(__linux__) -+ /* GNU/Linux */ -+ sprintf (name, "/dev/sd%c", unit + 'a'); -+#elif defined(__GNU__) -+ /* GNU/Hurd */ -+ sprintf (name, "/dev/sd%d", unit); -+#elif defined(__FreeBSD_kernel__) -+ /* kFreeBSD */ -+ if (get_kfreebsd_version () >= 400000) -+ sprintf (name, "/dev/da%d", unit); -+ else -+ sprintf (name, "/dev/rda%d", unit); -+#elif defined(__NetBSD__) && defined(HAVE_OPENDISK) -+ /* NetBSD */ -+ char shortname[16]; -+ int fd; -+ -+ sprintf (shortname, "sd%d", unit); -+ fd = opendisk (shortname, O_RDONLY, name, -+ 16, /* length of NAME */ -+ 0 /* char device */ -+ ); -+ close (fd); -+#elif defined(__OpenBSD__) -+ /* OpenBSD */ -+ sprintf (name, "/dev/rsd%dc", unit); -+#elif defined(__QNXNTO__) -+ /* QNX RTP */ -+ /* QNX RTP doesn't distinguish SCSI from IDE, so it is better to -+ disable the detection of SCSI disks here. */ -+ *name = 0; -+#elif defined(__CYGWIN__) -+ /* Cygwin emulates all disks as /dev/sdX. */ -+ sprintf (name, "/dev/sd%c", unit + 'a'); -+#elif defined(__MINGW32__) -+ (void) unit; -+ *name = 0; -+#else -+# warning "BIOS SCSI drives cannot be guessed in your operating system." -+ /* Set NAME to a bogus string. */ -+ *name = 0; -+#endif -+} -+ -+#ifdef __FreeBSD_kernel__ -+static void -+get_ada_disk_name (char *name, int unit) -+{ -+ sprintf (name, "/dev/ada%d", unit); -+} -+ -+static void -+get_ataraid_disk_name (char *name, int unit) -+{ -+ sprintf (name, "/dev/ar%d", unit); -+} -+ -+static void -+get_mfi_disk_name (char *name, int unit) -+{ -+ sprintf (name, "/dev/mfid%d", unit); -+} -+ -+static void -+get_virtio_disk_name (char *name, int unit) -+{ -+ sprintf (name, "/dev/vtbd%d", unit); -+} -+ -+static void -+get_xvd_disk_name (char *name, int unit) -+{ -+ sprintf (name, "/dev/xbd%d", unit); -+} -+#endif -+ -+#ifdef __linux__ -+static void -+get_virtio_disk_name (char *name, int unit) -+{ -+#ifdef __sparc__ -+ sprintf (name, "/dev/vdisk%c", unit + 'a'); -+#else -+ sprintf (name, "/dev/vd%c", unit + 'a'); -+#endif -+} -+ -+static void -+get_dac960_disk_name (char *name, int controller, int drive) -+{ -+ sprintf (name, "/dev/rd/c%dd%d", controller, drive); -+} -+ -+static void -+get_acceleraid_disk_name (char *name, int controller, int drive) -+{ -+ sprintf (name, "/dev/rs/c%dd%d", controller, drive); -+} -+ -+static void -+get_ataraid_disk_name (char *name, int unit) -+{ -+ sprintf (name, "/dev/ataraid/d%c", unit + '0'); -+} -+ -+static void -+get_i2o_disk_name (char *name, char unit) -+{ -+ sprintf (name, "/dev/i2o/hd%c", unit); -+} -+ -+static void -+get_cciss_disk_name (char *name, int controller, int drive) -+{ -+ sprintf (name, "/dev/cciss/c%dd%d", controller, drive); -+} -+ -+static void -+get_ida_disk_name (char *name, int controller, int drive) -+{ -+ sprintf (name, "/dev/ida/c%dd%d", controller, drive); -+} -+ -+static void -+get_mmc_disk_name (char *name, int unit) -+{ -+ sprintf (name, "/dev/mmcblk%d", unit); -+} -+ -+static void -+get_xvd_disk_name (char *name, int unit) -+{ -+ sprintf (name, "/dev/xvd%c", unit + 'a'); -+} -+ -+static void -+get_nvme_disk_name (char *name, int controller, int namespace) -+{ -+ sprintf (name, "/dev/nvme%dn%d", controller, namespace); -+} -+#endif -+ -+static struct seen_device -+{ -+ struct seen_device *next; -+ struct seen_device **prev; -+ const char *name; -+} *seen; -+ -+/* Check if DEVICE can be read. Skip any DEVICE that we have already seen. -+ If an error occurs, return zero, otherwise return non-zero. */ -+static int -+check_device_readable_unique (const char *device) -+{ -+ char *real_device; -+ char buf[512]; -+ FILE *fp; -+ struct seen_device *seen_elt; -+ -+ /* If DEVICE is empty, just return error. */ -+ if (*device == 0) -+ return 0; -+ -+ /* Have we seen this device already? */ -+ real_device = canonicalize_file_name (device); -+ if (! real_device) -+ return 0; -+ if (grub_named_list_find (GRUB_AS_NAMED_LIST (seen), real_device)) -+ { -+ grub_dprintf ("deviceiter", "Already seen %s (%s)\n", -+ device, real_device); -+ goto fail; -+ } -+ -+ fp = fopen (device, "r"); -+ if (! fp) -+ { -+ switch (errno) -+ { -+#ifdef ENOMEDIUM -+ case ENOMEDIUM: -+# if 0 -+ /* At the moment, this finds only CDROMs, which can't be -+ read anyway, so leave it out. Code should be -+ reactivated if `removable disks' and CDROMs are -+ supported. */ -+ /* Accept it, it may be inserted. */ -+ return 1; -+# endif -+ break; -+#endif /* ENOMEDIUM */ -+ default: -+ /* Break case and leave. */ -+ break; -+ } -+ /* Error opening the device. */ -+ goto fail; -+ } -+ -+ /* Make sure CD-ROMs don't get assigned a BIOS disk number -+ before SCSI disks! */ -+#ifdef __linux__ -+# ifdef CDROM_GET_CAPABILITY -+ if (ioctl (fileno (fp), CDROM_GET_CAPABILITY, 0) >= 0) -+ goto fail; -+# else /* ! CDROM_GET_CAPABILITY */ -+ /* Check if DEVICE is a CD-ROM drive by the HDIO_GETGEO ioctl. */ -+ { -+ struct hd_geometry hdg; -+ struct stat st; -+ -+ if (fstat (fileno (fp), &st)) -+ goto fail; -+ -+ /* If it is a block device and isn't a floppy, check if HDIO_GETGEO -+ succeeds. */ -+ if (S_ISBLK (st.st_mode) -+ && MAJOR (st.st_rdev) != FLOPPY_MAJOR -+ && ioctl (fileno (fp), HDIO_GETGEO, &hdg)) -+ goto fail; -+ } -+# endif /* ! CDROM_GET_CAPABILITY */ -+#endif /* __linux__ */ -+ -+#if defined(__FreeBSD_kernel__) || defined(__NetBSD__) || defined(__OpenBSD__) -+# ifdef CDIOCCLRDEBUG -+ if (ioctl (fileno (fp), CDIOCCLRDEBUG, 0) >= 0) -+ goto fail; -+# endif /* CDIOCCLRDEBUG */ -+#endif /* __FreeBSD_kernel__ || __NetBSD__ || __OpenBSD__ */ -+ -+ /* Attempt to read the first sector. */ -+ if (fread (buf, 1, 512, fp) != 512) -+ { -+ fclose (fp); -+ goto fail; -+ } -+ -+ /* Remember that we've seen this device. */ -+ seen_elt = xmalloc (sizeof (*seen_elt)); -+ seen_elt->name = real_device; /* steal memory */ -+ grub_list_push (GRUB_AS_LIST_P (&seen), GRUB_AS_LIST (seen_elt)); -+ -+ fclose (fp); -+ return 1; -+ -+fail: -+ free (real_device); -+ return 0; -+} -+ -+static void -+clear_seen_devices (void) -+{ -+ while (seen) -+ { -+ struct seen_device *seen_elt = seen; -+ seen = seen->next; -+ free (seen_elt); -+ } -+ seen = NULL; -+} -+ -+#ifdef __linux__ -+struct device -+{ -+ char *stable; -+ char *kernel; -+}; -+ -+/* Sort by the kernel name for preference since that most closely matches -+ older device.map files, but sort by stable by-id names as a fallback. -+ This is because /dev/disk/by-id/ usually has a few alternative -+ identifications of devices (e.g. ATA vs. SATA). -+ check_device_readable_unique will ensure that we only get one for any -+ given disk, but sort the list so that the choice of which one we get is -+ stable. */ -+static int -+compare_devices (const void *a, const void *b) -+{ -+ const struct device *left = (const struct device *) a; -+ const struct device *right = (const struct device *) b; -+ -+ if (left->kernel && right->kernel) -+ { -+ int ret = strcmp (left->kernel, right->kernel); -+ if (ret) -+ return ret; -+ } -+ -+ return strcmp (left->stable, right->stable); -+} -+#endif /* __linux__ */ -+ -+void -+grub_util_iterate_devices (int (*hook) (const char *, int, void *), void *hook_data, -+ int floppy_disks) -+{ -+ int i; -+ -+ clear_seen_devices (); -+ -+ /* Floppies. */ -+ for (i = 0; i < floppy_disks; i++) -+ { -+ char name[16]; -+ struct stat st; -+ -+ get_floppy_disk_name (name, i); -+ if (stat (name, &st) < 0) -+ break; -+ /* In floppies, write the map, whether check_device_readable_unique -+ succeeds or not, because the user just may not insert floppies. */ -+ if (hook (name, 1, hook_data)) -+ goto out; -+ } -+ -+#ifdef __linux__ -+ { -+ DIR *dir = opendir ("/dev/disk/by-id"); -+ -+ if (dir) -+ { -+ struct dirent *entry; -+ struct device *devs; -+ size_t devs_len = 0, devs_max = 1024, dev; -+ -+ devs = xmalloc (devs_max * sizeof (*devs)); -+ -+ /* Dump all the directory entries into names, resizing if -+ necessary. */ -+ for (entry = readdir (dir); entry; entry = readdir (dir)) -+ { -+ /* Skip current and parent directory entries. */ -+ if (strcmp (entry->d_name, ".") == 0 || -+ strcmp (entry->d_name, "..") == 0) -+ continue; -+ /* Skip partition entries. */ -+ if (strstr (entry->d_name, "-part")) -+ continue; -+ /* Skip device-mapper entries; we'll handle the ones we want -+ later. */ -+ if (strncmp (entry->d_name, "dm-", sizeof ("dm-") - 1) == 0) -+ continue; -+ /* Skip RAID entries; they are handled by upper layers. */ -+ if (strncmp (entry->d_name, "md-", sizeof ("md-") - 1) == 0) -+ continue; -+ if (devs_len >= devs_max) -+ { -+ devs_max *= 2; -+ devs = xrealloc (devs, devs_max * sizeof (*devs)); -+ } -+ devs[devs_len].stable = -+ xasprintf ("/dev/disk/by-id/%s", entry->d_name); -+ devs[devs_len].kernel = -+ canonicalize_file_name (devs[devs_len].stable); -+ devs_len++; -+ } -+ -+ qsort (devs, devs_len, sizeof (*devs), &compare_devices); -+ -+ closedir (dir); -+ -+ /* Now add all the devices in sorted order. */ -+ for (dev = 0; dev < devs_len; ++dev) -+ { -+ if (check_device_readable_unique (devs[dev].stable)) -+ { -+ if (hook (devs[dev].stable, 0, hook_data)) -+ goto out; -+ } -+ free (devs[dev].stable); -+ free (devs[dev].kernel); -+ } -+ free (devs); -+ } -+ } -+ -+ if (have_devfs ()) -+ { -+ i = 0; -+ while (1) -+ { -+ char discn[32]; -+ char name[PATH_MAX]; -+ struct stat st; -+ -+ /* Linux creates symlinks "/dev/discs/discN" for convenience. -+ The way to number disks is the same as GRUB's. */ -+ sprintf (discn, "/dev/discs/disc%d", i++); -+ if (stat (discn, &st) < 0) -+ break; -+ -+ if (realpath (discn, name)) -+ { -+ strcat (name, "/disc"); -+ if (hook (name, 0, hook_data)) -+ goto out; -+ } -+ } -+ goto out; -+ } -+#endif /* __linux__ */ -+ -+ /* IDE disks. */ -+ for (i = 0; i < 96; i++) -+ { -+ char name[16]; -+ -+ get_ide_disk_name (name, i); -+ if (check_device_readable_unique (name)) -+ { -+ if (hook (name, 0, hook_data)) -+ goto out; -+ } -+ } -+ -+#ifdef __FreeBSD_kernel__ -+ /* IDE disks using ATA Direct Access driver. */ -+ if (get_kfreebsd_version () >= 800000) -+ for (i = 0; i < 96; i++) -+ { -+ char name[16]; -+ -+ get_ada_disk_name (name, i); -+ if (check_device_readable_unique (name)) -+ { -+ if (hook (name, 0, hook_data)) -+ goto out; -+ } -+ } -+ -+ /* ATARAID disks. */ -+ for (i = 0; i < 8; i++) -+ { -+ char name[20]; -+ -+ get_ataraid_disk_name (name, i); -+ if (check_device_readable_unique (name)) -+ { -+ if (hook (name, 0, hook_data)) -+ goto out; -+ } -+ } -+ -+ /* LSI MegaRAID SAS. */ -+ for (i = 0; i < 32; i++) -+ { -+ char name[20]; -+ -+ get_mfi_disk_name (name, i); -+ if (check_device_readable_unique (name)) -+ { -+ if (hook (name, 0, hook_data)) -+ goto out; -+ } -+ } -+ -+ /* Virtio disks. */ -+ for (i = 0; i < 96; i++) -+ { -+ char name[16]; -+ -+ get_virtio_disk_name (name, i); -+ if (check_device_readable_unique (name)) -+ { -+ if (hook (name, 0, hook_data)) -+ goto out; -+ } -+ } -+ -+ /* Xen virtual block devices. */ -+ for (i = 0; i < 96; i++) -+ { -+ char name[16]; -+ -+ get_xvd_disk_name (name, i); -+ if (check_device_readable_unique (name)) -+ { -+ if (hook (name, 0, hook_data)) -+ goto out; -+ } -+ } -+#endif -+ -+#ifdef __linux__ -+ /* Virtio disks. */ -+ for (i = 0; i < 26; i++) -+ { -+ char name[16]; -+ -+ get_virtio_disk_name (name, i); -+ if (check_device_readable_unique (name)) -+ { -+ if (hook (name, 0, hook_data)) -+ goto out; -+ } -+ } -+ -+ /* ATARAID disks. */ -+ for (i = 0; i < 8; i++) -+ { -+ char name[20]; -+ -+ get_ataraid_disk_name (name, i); -+ if (check_device_readable_unique (name)) -+ { -+ if (hook (name, 0, hook_data)) -+ goto out; -+ } -+ } -+ -+ /* Xen virtual block devices. */ -+ for (i = 0; i < 26; i++) -+ { -+ char name[16]; -+ -+ get_xvd_disk_name (name, i); -+ if (check_device_readable_unique (name)) -+ { -+ if (hook (name, 0, hook_data)) -+ goto out; -+ } -+ } -+#endif /* __linux__ */ -+ -+ /* The rest is SCSI disks. */ -+ for (i = 0; i < 48; i++) -+ { -+ char name[16]; -+ -+ get_scsi_disk_name (name, i); -+ if (check_device_readable_unique (name)) -+ { -+ if (hook (name, 0, hook_data)) -+ goto out; -+ } -+ } -+ -+#ifdef __linux__ -+ /* This is for DAC960 - we have -+ /dev/rd/cdp. -+ -+ DAC960 driver currently supports up to 8 controllers, 32 logical -+ drives, and 7 partitions. */ -+ { -+ int controller, drive; -+ -+ for (controller = 0; controller < 8; controller++) -+ { -+ for (drive = 0; drive < 15; drive++) -+ { -+ char name[24]; -+ -+ get_dac960_disk_name (name, controller, drive); -+ if (check_device_readable_unique (name)) -+ { -+ if (hook (name, 0, hook_data)) -+ goto out; -+ } -+ } -+ } -+ } -+ -+ /* This is for Mylex Acceleraid - we have -+ /dev/rd/cdp. */ -+ { -+ int controller, drive; -+ -+ for (controller = 0; controller < 8; controller++) -+ { -+ for (drive = 0; drive < 15; drive++) -+ { -+ char name[24]; -+ -+ get_acceleraid_disk_name (name, controller, drive); -+ if (check_device_readable_unique (name)) -+ { -+ if (hook (name, 0, hook_data)) -+ goto out; -+ } -+ } -+ } -+ } -+ -+ /* This is for CCISS - we have -+ /dev/cciss/cdp. */ -+ { -+ int controller, drive; -+ -+ for (controller = 0; controller < 3; controller++) -+ { -+ for (drive = 0; drive < 16; drive++) -+ { -+ char name[24]; -+ -+ get_cciss_disk_name (name, controller, drive); -+ if (check_device_readable_unique (name)) -+ { -+ if (hook (name, 0, hook_data)) -+ goto out; -+ } -+ } -+ } -+ } -+ -+ /* This is for Compaq Intelligent Drive Array - we have -+ /dev/ida/cdp. */ -+ { -+ int controller, drive; -+ -+ for (controller = 0; controller < 3; controller++) -+ { -+ for (drive = 0; drive < 16; drive++) -+ { -+ char name[24]; -+ -+ get_ida_disk_name (name, controller, drive); -+ if (check_device_readable_unique (name)) -+ { -+ if (hook (name, 0, hook_data)) -+ goto out; -+ } -+ } -+ } -+ } -+ -+ /* This is for I2O - we have /dev/i2o/hd */ -+ { -+ char unit; -+ -+ for (unit = 'a'; unit < 'f'; unit++) -+ { -+ char name[24]; -+ -+ get_i2o_disk_name (name, unit); -+ if (check_device_readable_unique (name)) -+ { -+ if (hook (name, 0, hook_data)) -+ goto out; -+ } -+ } -+ } -+ -+ /* MultiMediaCard (MMC). */ -+ for (i = 0; i < 10; i++) -+ { -+ char name[16]; -+ -+ get_mmc_disk_name (name, i); -+ if (check_device_readable_unique (name)) -+ { -+ if (hook (name, 0, hook_data)) -+ goto out; -+ } -+ } -+ -+ /* This is for standard NVMe controllers -+ /dev/nvmenp. No idea about -+ actual limits of how many controllers a system can have and/or -+ how many namespace that would be, 10 for now. */ -+ { -+ int controller, namespace; -+ -+ for (controller = 0; controller < 10; controller++) -+ { -+ for (namespace = 0; namespace < 10; namespace++) -+ { -+ char name[16]; -+ -+ get_nvme_disk_name (name, controller, namespace); -+ if (check_device_readable_unique (name)) -+ { -+ if (hook (name, 0, hook_data)) -+ goto out; -+ } -+ } -+ } -+ } -+ -+# ifdef HAVE_DEVICE_MAPPER -+# define dmraid_check(cond, ...) \ -+ if (! (cond)) \ -+ { \ -+ grub_dprintf ("deviceiter", __VA_ARGS__); \ -+ goto dmraid_end; \ -+ } -+ -+ /* DM-RAID. */ -+ if (grub_device_mapper_supported ()) -+ { -+ struct dm_tree *tree = NULL; -+ struct dm_task *task = NULL; -+ struct dm_names *names = NULL; -+ unsigned int next = 0; -+ void *top_handle, *second_handle; -+ struct dm_tree_node *root, *top, *second; -+ -+ /* Build DM tree for all devices. */ -+ tree = dm_tree_create (); -+ dmraid_check (tree, "dm_tree_create failed\n"); -+ task = dm_task_create (DM_DEVICE_LIST); -+ dmraid_check (task, "dm_task_create failed\n"); -+ dmraid_check (dm_task_run (task), "dm_task_run failed\n"); -+ names = dm_task_get_names (task); -+ dmraid_check (names, "dm_task_get_names failed\n"); -+ dmraid_check (names->dev, "No DM devices found\n"); -+ do -+ { -+ names = (struct dm_names *) ((char *) names + next); -+ dmraid_check (dm_tree_add_dev (tree, MAJOR (names->dev), -+ MINOR (names->dev)), -+ "dm_tree_add_dev (%s) failed\n", names->name); -+ next = names->next; -+ } -+ while (next); -+ -+ /* Walk the second-level children of the inverted tree; that is, devices -+ which are directly composed of non-DM devices such as hard disks. -+ This class includes all DM-RAID disks and excludes all DM-RAID -+ partitions. */ -+ root = dm_tree_find_node (tree, 0, 0); -+ top_handle = NULL; -+ top = dm_tree_next_child (&top_handle, root, 1); -+ while (top) -+ { -+ second_handle = NULL; -+ second = dm_tree_next_child (&second_handle, top, 1); -+ while (second) -+ { -+ const char *node_name, *node_uuid; -+ char *name; -+ -+ node_name = dm_tree_node_get_name (second); -+ dmraid_check (node_name, "dm_tree_node_get_name failed\n"); -+ node_uuid = dm_tree_node_get_uuid (second); -+ dmraid_check (node_uuid, "dm_tree_node_get_uuid failed\n"); -+ if (strstr (node_uuid, "DMRAID-") == 0) -+ { -+ grub_dprintf ("deviceiter", "%s is not DM-RAID\n", node_name); -+ goto dmraid_next_child; -+ } -+ -+ name = xasprintf ("/dev/mapper/%s", node_name); -+ if (check_device_readable_unique (name)) -+ { -+ if (hook (name, 0, hook_data)) -+ { -+ free (name); -+ if (task) -+ dm_task_destroy (task); -+ if (tree) -+ dm_tree_free (tree); -+ goto out; -+ } -+ } -+ free (name); -+ -+dmraid_next_child: -+ second = dm_tree_next_child (&second_handle, top, 1); -+ } -+ top = dm_tree_next_child (&top_handle, root, 1); -+ } -+ -+dmraid_end: -+ if (task) -+ dm_task_destroy (task); -+ if (tree) -+ dm_tree_free (tree); -+ } -+# endif /* HAVE_DEVICE_MAPPER */ -+#endif /* __linux__ */ -+ -+out: -+ clear_seen_devices (); -+} -diff --git a/util/devicemap.c b/util/devicemap.c -new file mode 100644 -index 000000000..c61864420 ---- /dev/null -+++ b/util/devicemap.c -@@ -0,0 +1,13 @@ -+#include -+ -+#include -+ -+void -+grub_util_emit_devicemap_entry (FILE *fp, char *name, int is_floppy, -+ int *num_fd, int *num_hd) -+{ -+ if (is_floppy) -+ fprintf (fp, "(fd%d)\t%s\n", (*num_fd)++, name); -+ else -+ fprintf (fp, "(hd%d)\t%s\n", (*num_hd)++, name); -+} -diff --git a/util/grub-mkdevicemap.c b/util/grub-mkdevicemap.c -new file mode 100644 -index 000000000..c4bbdbf69 ---- /dev/null -+++ b/util/grub-mkdevicemap.c -@@ -0,0 +1,181 @@ -+/* grub-mkdevicemap.c - make a device map file automatically */ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 1999,2000,2001,2002,2003,2004,2005,2007,2008,2009,2010 Free Software Foundation, Inc. -+ * -+ * GRUB is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation, either version 3 of the License, or -+ * (at your option) any later version. -+ * -+ * GRUB is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with GRUB. If not, see . -+ */ -+ -+#include -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#define _GNU_SOURCE 1 -+#include -+ -+#include "progname.h" -+ -+/* Context for make_device_map. */ -+struct make_device_map_ctx -+{ -+ FILE *fp; -+ int num_fd; -+ int num_hd; -+}; -+ -+/* Helper for make_device_map. */ -+static int -+process_device (const char *name, int is_floppy, void *data) -+{ -+ struct make_device_map_ctx *ctx = data; -+ -+ grub_util_emit_devicemap_entry (ctx->fp, (char *) name, -+ is_floppy, &ctx->num_fd, &ctx->num_hd); -+ return 0; -+} -+ -+static void -+make_device_map (const char *device_map, int floppy_disks) -+{ -+ struct make_device_map_ctx ctx = { -+ .num_fd = 0, -+ .num_hd = 0 -+ }; -+ -+ if (strcmp (device_map, "-") == 0) -+ ctx.fp = stdout; -+ else -+ ctx.fp = fopen (device_map, "w"); -+ -+ if (! ctx.fp) -+ grub_util_error (_("cannot open %s"), device_map); -+ -+ grub_util_iterate_devices (process_device, &ctx, floppy_disks); -+ -+ if (ctx.fp != stdout) -+ fclose (ctx.fp); -+} -+ -+static struct option options[] = -+ { -+ {"device-map", required_argument, 0, 'm'}, -+ {"probe-second-floppy", no_argument, 0, 's'}, -+ {"no-floppy", no_argument, 0, 'n'}, -+ {"help", no_argument, 0, 'h'}, -+ {"version", no_argument, 0, 'V'}, -+ {"verbose", no_argument, 0, 'v'}, -+ {0, 0, 0, 0} -+ }; -+ -+static void -+usage (int status) -+{ -+ if (status) -+ fprintf (stderr, -+ _("Try `%s --help' for more information.\n"), program_name); -+ else -+ printf (_("\ -+Usage: %s [OPTION]...\n\ -+\n\ -+Generate a device map file automatically.\n\ -+\n\ -+ -n, --no-floppy do not probe any floppy drive\n\ -+ -s, --probe-second-floppy probe the second floppy drive\n\ -+ -m, --device-map=FILE use FILE as the device map [default=%s]\n\ -+ -h, --help display this message and exit\n\ -+ -V, --version print version information and exit\n\ -+ -v, --verbose print verbose messages\n\ -+\n\ -+Report bugs to <%s>.\n\ -+"), program_name, -+ DEFAULT_DEVICE_MAP, PACKAGE_BUGREPORT); -+ -+ exit (status); -+} -+ -+int -+main (int argc, char *argv[]) -+{ -+ char *dev_map = 0; -+ int floppy_disks = 1; -+ -+ grub_util_host_init (&argc, &argv); -+ -+ /* Check for options. */ -+ while (1) -+ { -+ int c = getopt_long (argc, argv, "snm:r:hVv", options, 0); -+ -+ if (c == -1) -+ break; -+ else -+ switch (c) -+ { -+ case 'm': -+ if (dev_map) -+ free (dev_map); -+ -+ dev_map = xstrdup (optarg); -+ break; -+ -+ case 'n': -+ floppy_disks = 0; -+ break; -+ -+ case 's': -+ floppy_disks = 2; -+ break; -+ -+ case 'h': -+ usage (0); -+ break; -+ -+ case 'V': -+ printf ("%s (%s) %s\n", program_name, PACKAGE_NAME, PACKAGE_VERSION); -+ return 0; -+ -+ case 'v': -+ verbosity++; -+ break; -+ -+ default: -+ usage (1); -+ break; -+ } -+ } -+ -+ if (verbosity > 1) -+ grub_env_set ("debug", "all"); -+ -+ make_device_map (dev_map ? : DEFAULT_DEVICE_MAP, floppy_disks); -+ -+ free (dev_map); -+ -+ return 0; -+} diff --git a/patches/grub/2.02/series b/patches/grub/2.02/series deleted file mode 100644 index df5d9f3e0..000000000 --- a/patches/grub/2.02/series +++ /dev/null @@ -1,34 +0,0 @@ -core_in_fs.patch -linuxefi.patch -linuxefi_no_insmod_on_sb.patch -linuxefi_move_fdt_helper.patch -linuxefi_load_arm_with_sb.patch -linuxefi_fix_efi_validation_race.patch -linuxefi_use_dev_chainloader_target.patch -linuxefi_add_sb_to_efi_chainload.patch -linuxefi_honor_sb_mode.patch -linuxefi_rework_linux_cmd.patch -linuxefi_rework_linux16_cmd.patch -linuxefi_rework_pe_loading.patch -linuxefi_rework_non-sb_efi_chainload.patch -linuxefi_debug.patch -linuxefi_minor_cleanups.patch -linuxefi_handle_multiarch_boot.patch -linuxefi_cleanup_errors_in_loader.patch -linuxefi_non_sb_fallback.patch -linuxefi_re-enable_linux_cmd.patch -misc-fix-invalid-char-strtol.patch -net_read_bracketed_ipv6_addr.patch -bootp_new_net_bootp6_command.patch -efinet_uefi_ipv6_pxe_support.patch -bootp_process_dhcpack_http_boot.patch -efinet_set_network_from_uefi_devpath.patch -efinet_set_dns_from_uefi_proto.patch -grub-install-efibootmgr-check.patch -ext4_feature_encrypt.patch -dont-fail-efi-warnings.patch -set-default-graphics-mode-to-text.patch -disable-build-of-documentation.patch -include-compatible-unifont-bdf.patch -gcc8.patch -gcc7.patch diff --git a/patches/grub/2.02/set-default-graphics-mode-to-text.patch b/patches/grub/2.02/set-default-graphics-mode-to-text.patch deleted file mode 100644 index 506859032..000000000 --- a/patches/grub/2.02/set-default-graphics-mode-to-text.patch +++ /dev/null @@ -1,27 +0,0 @@ -set default graphics mode to text - -# This file is derived from https://github.com/opencomputeproject/onie/blob/master/patches/grub/e4a1fe391/set-default-graphics-mode-to-text.patch -Copyright (C) 2016 Pankaj Bansal - -SPDX-License-Identifier: GPL-2.0 - -For EFI set the default graphics mode to text. - -This supresses an ugly, but harmless message about no video mode -found. - -diff --git a/grub-core/loader/i386/linux.c b/grub-core/loader/i386/linux.c -index 31fb91e..b1f34f8 100644 ---- a/grub-core/loader/i386/linux.c -+++ b/grub-core/loader/i386/linux.c -@@ -45,8 +45,8 @@ GRUB_MOD_LICENSE ("GPLv3+"); - #ifdef GRUB_MACHINE_EFI - #include - #define HAS_VGA_TEXT 0 --#define DEFAULT_VIDEO_MODE "auto" --#define ACCEPTS_PURE_TEXT 0 -+#define DEFAULT_VIDEO_MODE "text" -+#define ACCEPTS_PURE_TEXT 1 - #elif defined (GRUB_MACHINE_IEEE1275) - #include - #define HAS_VGA_TEXT 0 diff --git a/patches/grub/2.02/sleep_shift.patch b/patches/grub/2.02/sleep_shift.patch deleted file mode 100644 index 973cb8702..000000000 --- a/patches/grub/2.02/sleep_shift.patch +++ /dev/null @@ -1,95 +0,0 @@ -From 6d92ce5e4248eec87c831734bff72581721a1026 Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Mon, 13 Jan 2014 12:13:23 +0000 -Subject: Allow Shift to interrupt 'sleep --interruptible' - -Upstream would like to consider this at more length. See -http://lists.gnu.org/archive/html/grub-devel/2009-08/msg00718.html, and -the rest of the thread for context. - -Forwarded: http://lists.gnu.org/archive/html/grub-devel/2009-08/msg00694.html -Last-Update: 2013-12-04 - -Patch-Name: sleep_shift.patch ---- - grub-core/commands/sleep.c | 27 ++++++++++++++++++++++++++- - grub-core/normal/menu.c | 19 +++++++++++++++++++ - 2 files changed, 45 insertions(+), 1 deletion(-) - -diff --git a/grub-core/commands/sleep.c b/grub-core/commands/sleep.c -index e77e7900f..3906b1410 100644 ---- a/grub-core/commands/sleep.c -+++ b/grub-core/commands/sleep.c -@@ -46,6 +46,31 @@ do_print (int n) - grub_refresh (); - } - -+static int -+grub_check_keyboard (void) -+{ -+ int mods = 0; -+ grub_term_input_t term; -+ -+ if (grub_term_poll_usb) -+ grub_term_poll_usb (0); -+ -+ FOR_ACTIVE_TERM_INPUTS(term) -+ { -+ if (term->getkeystatus) -+ mods |= term->getkeystatus (term); -+ } -+ -+ if (mods >= 0 && -+ (mods & (GRUB_TERM_STATUS_LSHIFT | GRUB_TERM_STATUS_RSHIFT)) != 0) -+ return 1; -+ -+ if (grub_getkey_noblock () == GRUB_TERM_ESC) -+ return 1; -+ -+ return 0; -+} -+ - /* Based on grub_millisleep() from kern/generic/millisleep.c. */ - static int - grub_interruptible_millisleep (grub_uint32_t ms) -@@ -55,7 +80,7 @@ grub_interruptible_millisleep (grub_uint32_t ms) - start = grub_get_time_ms (); - - while (grub_get_time_ms () - start < ms) -- if (grub_getkey_noblock () == GRUB_TERM_ESC) -+ if (grub_check_keyboard ()) - return 1; - - return 0; -diff --git a/grub-core/normal/menu.c b/grub-core/normal/menu.c -index 719e2fb1c..9d0ad4c95 100644 ---- a/grub-core/normal/menu.c -+++ b/grub-core/normal/menu.c -@@ -615,8 +615,27 @@ run_menu (grub_menu_t menu, int nested, int *auto_boot) - saved_time = grub_get_time_ms (); - while (1) - { -+ int mods = 0; -+ grub_term_input_t term; - int key; - -+ if (grub_term_poll_usb) -+ grub_term_poll_usb (0); -+ -+ FOR_ACTIVE_TERM_INPUTS(term) -+ { -+ if (term->getkeystatus) -+ mods |= term->getkeystatus (term); -+ } -+ -+ if (mods >= 0 && -+ (mods & (GRUB_TERM_STATUS_LSHIFT -+ | GRUB_TERM_STATUS_RSHIFT)) != 0) -+ { -+ timeout = -1; -+ break; -+ } -+ - key = grub_getkey_noblock (); - if (key != GRUB_TERM_NO_KEY) - { diff --git a/patches/grub/2.02~beta3/disable-build-of-documentation.patch b/patches/grub/2.02~beta3/disable-build-of-documentation.patch deleted file mode 100644 index 2c1b93174..000000000 --- a/patches/grub/2.02~beta3/disable-build-of-documentation.patch +++ /dev/null @@ -1,17 +0,0 @@ -GRUB2: Disable build of documentation - -ONIE does not require the building of the documentation - -diff --git a/Makefile.am b/Makefile.am -index 00a9663..93e1c0e 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -5,7 +5,7 @@ SUBDIRS = grub-core/gnulib . - if COND_real_platform - SUBDIRS += grub-core - endif --SUBDIRS += po docs util/bash-completion.d -+SUBDIRS += po util/bash-completion.d - - include $(top_srcdir)/conf/Makefile.common - include $(top_srcdir)/conf/Makefile.extra-dist diff --git a/patches/grub/2.02~beta3/gcc6-use-no-pie-compiler-flag.patch b/patches/grub/2.02~beta3/gcc6-use-no-pie-compiler-flag.patch deleted file mode 100644 index 1bc7eaaa4..000000000 --- a/patches/grub/2.02~beta3/gcc6-use-no-pie-compiler-flag.patch +++ /dev/null @@ -1,62 +0,0 @@ -gcc6-use-no-pie-compiler-flag - -GCC6 defaults to the -pie linker flag during the link step. - -This patch adds a check to the configure script to detect whether the -complier supports the "-no-pie" option. If it does, then add -"-no-pie" to the CFLAGS. - -diff --git a/acinclude.m4 b/acinclude.m4 -index 526f97a..fc44ee4 100644 ---- a/acinclude.m4 -+++ b/acinclude.m4 -@@ -390,6 +390,30 @@ else - [fi] - ]) - -+dnl Check if the C compiler supports `-no-pie'. -+AC_DEFUN([grub_CHECK_NO_PIE],[ -+[# Disabling position independent executable. -+no_pie_possible=yes] -+AC_MSG_CHECKING([whether `$CC' accepts `-no-pie' option]) -+# Is this a reliable test case? -+AC_LANG_CONFTEST([AC_LANG_SOURCE([[ -+int main() { -+ return 0; -+} -+]])]) -+ -+[# `$CC -c -o ...' might not be portable. But, oh, well... Is calling -+# `ac_compile' like this correct, after all? -+if eval "$ac_compile -S -o conftest.s" 2> /dev/null; then] -+ AC_MSG_RESULT([yes]) -+ [# Should we clear up other files as well, having called `AC_LANG_CONFTEST'? -+ rm -f conftest.s -+else -+ no_pie_possible=no] -+ AC_MSG_RESULT([no]) -+[fi] -+]) -+ - dnl Check if the C compiler supports `-fPIC'. - AC_DEFUN([grub_CHECK_PIC],[ - [# Position independent executable. -diff --git a/configure.ac b/configure.ac -index a85b134..1d4cd24 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -1184,10 +1184,14 @@ CFLAGS="$TARGET_CFLAGS" - - # Position independent executable. - grub_CHECK_PIE -+grub_CHECK_NO_PIE - [# Need that, because some distributions ship compilers that include - # `-fPIE' in the default specs. - if [ x"$pie_possible" = xyes ]; then - TARGET_CFLAGS="$TARGET_CFLAGS -fno-PIE" -+ if [ x"$no_pie_possible" = xyes ]; then -+ TARGET_CFLAGS="$TARGET_CFLAGS -no-pie" -+ fi - fi] - - CFLAGS="$TARGET_CFLAGS" diff --git a/patches/grub/2.02~beta3/include-compatible-unifont-bdf.patch b/patches/grub/2.02~beta3/include-compatible-unifont-bdf.patch deleted file mode 100644 index 8fb56e61c..000000000 --- a/patches/grub/2.02~beta3/include-compatible-unifont-bdf.patch +++ /dev/null @@ -1,22543 +0,0 @@ -Include compatible unifont.bdf file - -Compiling coreboot requires a working unifont.bdf file. - -Do not rely on the build host having a good copy. Provide our own. - -diff --git a/unifont-5.1.20080820.bdf.gz b/unifont-5.1.20080820.bdf.gz -new file mode 100644 -index 0000000000000000000000000000000000000000..c3d53ba0bbea8cb0c1431707bc32391c89ffbe47 -GIT binary patch -literal 1313861 -zcmbq(c_5Tu^!K+EsgR|GFtQ{|D3rCyQuZa3$dV#NcCs}pvX-5)jcf_o_kGP+XY5;K -z8H{}!+c5auXY~Hw_y6}Fp1IGx=iYnnIiK@6=RUBYGiTl}v+Dmx=4@m6%GSo|rl`Oz -zf!jhtVnSlKg#=!hzWT4}KreT>reG$Z8lzz!mfI}a^l&WYM{MS~NMU+6+Xk~*&hu{- -z>tZM)4adjNYN?%9dqn4Lpgkb;2#6;dqr9~G;r%n79ObAMTqBP93$uA2*M*EjoEEfjtHiyb_mdwLK5Fj);Pd -zwFj7^)LC1MF;%-R9=?V@Xn=2ndA7Y44zcie6`(IcBTGZ>DB~bvS$T`GvS2rIGsE`J -z`X**Mv5nxx8JEiPAk#3l?M6>gHes`(50=tC-|K`=*Y6ys59q5@OwgV#<%3uEY`=_r -z4Of%&%8U{)WA7B`F=f!RWnXl;RPGrbSX8MPr)|2QF#G3CoW|I&3!(2$wyJ4)5Wi#K -z($Yj?>)x}TUU8kxYNhK1BM+X4Cn`NCt?ccKcu3GFS@tQd{QF=)+@t3_ry9#WN{@o! -z2Y19D+`;l^J06~ahN-_XjK(3V#8 -zix(>L-6YYPA)R<68F3?f*HP)UDTd1K2Rqx}1))(o@j>o@vLHfMwe -zHHryszIMO!Z!fl_F!lVHmC5Iu>y>ivFc5Fixt*h<=f~PF@y6wGM&PNa^Zbv|`F>eC -z?c6)kVagAqC2&K+(%n7RFApvT_eR!yHCx3r-E*4!ptHMW98MdSDuz7`RUW_aSvYNIl2$R{rT8F)Ti9y -zp^GiddJg+YcZHFOFI?z|yF{h$oTqfY>f9%{&pW!(h*{cD^4|5AaWfT>b>GlBmUkOE -zY75hhEoR5X5wCcWwehuXZ#k~y#Yo6B5SxdCa|kYb`*7_6=APO1CxdiXzQkOgdAPYx -zf6EK`p*b3sHNS&N6yy@>yPd7tFnQ4*!OW;IEIWGc8SXO5D(saYr;uWSGOr8_ajlZL -zv-Ma|=wtz7GDr3@V)p2UG!x6a*|*$mA11%31qSaL^!2uq(S_Cx{ccOfZlw*eP%1uu -z{z5w$JDG{X*`7+Fj$>eHtp0A3%prF+j*jKrvVeyt?XSul&MVF5?(j(55fOPL)?{@! -zt0o8X^6C6xI>1ePK;(LT9 -zrl?SUzTB2NXE6rF|91( -z_*dWZGmAWr_hsA`jik3f{JdOL1;K<7Lt!dccFavys2zLH0ojpryOQig1Y;;PE-?56 -z<)2X6Xz;8Y5Ztb4_SN|3-QdENeOyZr9eHWmv%BBh)yQsVSiuOEU%~5nL -zCf^G9nMa#Xw}W?If@7~cIXcBqT=g36-fG`cv}6?2Q4(H!6{ERd^ZlClgLG(HnUQlX -zs85Yo9vLerfKhGqEazOLDZ8Rc;uf1t8fYZx#73opNj+UBPXE1pcj6VJU>{h9Y=fFX -z9x-0?l8XUidHbObtk+QGd6j0myn^fLW-L8vO$iJvsJb5PvQ)!uqn{DU*rw1o)l$mi -zY(ZwEjz@=`JI=@pk5^*hLtARqkzh~i0l{}X$EqVgUtWlun}bz~H)C|c`giS3Nh9_S -zR`i<{OV3NxhB=KXlBPqEl_}i!Y;{di3JmrO+i-K@XA~51OXjGY<$i$>`FXkH)2Zfj -zYRXPh+p>kHKJBCOO{=<0O%z6c@LD7vIlW5)KU3uuo-Rs_T|2A%9Q=5wFnP6}B<^+j -zwjrg;ptlj!tbkg6u(m4uSlW%5kTKabH>b;ZAdCGl4-DMMLMxf0_FUUTX`rYPd6#Lc -zI@-lxF6^f#tSpT!MFv=C32*2m3t~jAmF6qAK83H#@&yNPVRD8hGjln?c(ZQ%XWqC3 -z2lvy^FX5FoW`VQg*C;On5f@l?%%Uh{PlD4gQmVXdUBy4zgY6yG`R$r?Q33TOc=qzI -zhFgIa8}8pSL67;x;B%rAbd8;gdbfJPzeFHr_1DiUnCIdBovq(K~ -zkN?H@7QKM0=&L&r=XLgexNBs$^QG+yH^-|dqB{dW8A8u*dBg4;&|mGUOAzKg@YJyD -zaNy9tPqy>>=O)=b54e=EQ%3pXgS5iwW*X1d$rZN=;&-hdBf8$RU&zrkyb0Geo-o@m -z{+K0x?FBA#(uFH-N=7l6LK*y%}= -zu6~8=`fDwZL~#@etlVFJQy93F>ACzAhg-PCFPY?cZIst`{l{uz5?^Js^<4Kpka;sW -zVm6sVs@Y)d9GXU-nfr?uS5^eKkMRkrc-Y1WqJ)8BJ1&0d`=o!^;Eo(3- -z^z0QEiTQ=@E#WSmCdxC3j&J^0*T`7=;h1wTPlNnE1cFgj?}u -zB?98-%O{@cmxWe*xvFk{9e2Ytfv18i<>52_#8)v5WvwUB)6Ac&mF|v}6tM}veK^=5 -z^Wb7b{7EWvsR+@n4^PO>Ev)bqzq&vj%}n-Y;89C}WZTlG+u}SU@hO_O(DY%xM%Ru4 -zwEP&dFWrj^<%h(Nd^kzhY27!<=s3zxoD&Fdb?belR_z#RY3TZOY%?1Fqce6xZL9aT -zyvylo)zfa+ZK^K-!MQN$mN{sJW>R);y+lv5gvz;~A=ih9KxAhh*0%UisOXBao -zK|g9KtMB3R-e9CRY`Ze~eAwY{k+?z<;f-EO+LPV})GBBbuZq%V_B;PEi}=cqjAEQ?%soab7GhRUDZyMwiXF| -zU}SmwHeZJ`0{<$;k%6~4>@8Ky$$d{w9bx&Z -z);o8ZP~Q<8@gnw*t@MM5-t-|~F7@*6x?4i6E4rU?++MF39gmD&PkjD5y~7u1R@kxG -z{v+wAPJ@qJ#O}SyZ6ZOt;?O?_E_WCw%JKa}uU96gnli_OJeak*EUp>JPK25}9rU&5>Y5NoR;I7xj -zU!2MINCuv4eaqEcrbL;5oA{Wi-*0h -z_#-H><6I_Sea9G0qjc&16)~Ztma*yyV(9dVs&au~0WWd5qT2iPj34YsB{Yrf<%w%B -z6IvD+5IFo_(2JN6>!G|4O=^K{f;c};*msw7$N8N-TKURTVPoNq69AU{I5{RBd8akH -zj_l9nhBUqthjWUb$htT^iz^IVq(IY9KB@ayO}#i=n66Offu`v;s++N1WBTgTYUqxp -zS$|cB5V!jJ;{#r<=xW!|UsEd0GPXPFv4q;hNh3Ri|2EkM;nha~i`~BWk31en`~+Jb -zrF~k~!S1fcD&@Eot@tfxULRV7%7j{5Qc!*+ZsxzhA+c7hx74HtCgR|7w|)3;zf)9F -zQC>w{p(yC-5%g3WN6F;MbZDW%RvooyZ|2sMh~yp)DLqwyyC&1vA}Wum9L9%!H<@C3 -zf#vjKoo4d=Xw?!GVLf#{=uf<nwRH(LyksZ+6e`0S)xd}R6|jmnHwwQoLU(5MhXI+OSY$oj(_fOx>6U^gnSh#~p1e!uQCt;u -zNR>TmI{Hk$5j4s_J4vWyte~Y?IgRskRblhEOD_V{QF3bIt*{K(E?BphARW|HdTPVt -znz}rA41IR;@+<7T)R-Ni<+hX^LNV`@RzkCM`6w+Z -z1ZIvg1E{l$ZdcO%;cF0t%oZbRQ_NF=w)LC;_ep4VR^@^ghz6>AFwZ({H>=WND)$&PMJHxXp??HAoI -zP8mUxTC?LG`+Go=L`!X+Tw4L&7&+rhF0oZAbg&MT} -zQh}A<5eUuGI0~h)o4t(@JVRDL_|sLr#nfYc+)8=D+3NnCYLttG{n4m4nC>>i_}T5oD4>{iM7(yOq_l^fv!EDU@j$Fr`GppH)<@tiFkC!m%06^{ -zA&$wMIly1#_w8LPus%Q<+a@;tMgZh|ba1rEW6eGqurNeCJ(vAK9e|pUmsee`E9eKQ -zUW|t&ABcI-aHjI<2IA$yVG5py9}13cQ#FW*@6<*1fMJ}7_+>ZxM789lT2*hU;+GBj -zx6F>rNM3P3zek$BG0Go2fED>E%#&u{!p46wxCKp>%{u4|FN<)7*u?E!d)b4D!digF -zz^}1u-Mo{4`9Mnzp16g9Y#NTfsBte5djp^l9GxStqc6(?93K(iJI63iS_<=bQ9ZZ? -zsf{lO@s|dWpstWYKH6;v0N`jfxX(^358s_$w$BmoUI6`qX?&h2q%2fuJ+c0AZI5W0 -z@7h(8$3KKg{xzg3*S0q;+ow%*kDMj4@nb}f@agS{A*X-Ks}l&{{Csz&@D)=J<}~HD -zTNLQDj{SBX>`G<@bxY}>ZnvJH8*g*ZrfuJ3g2~iAoR4-307q&^rS0D2$E>X;(H4wG -zj^6|C1G}Vp1_L>#cvGCt495GBf!v%+_7`MTK(r8>JGxY(WtSiZ5QX -zU&k>U+xYk7?V@MUF}4KrriL^w?}UQR0@XU1)A^nx#sl?{>tM7F;n-rOHe?>$j= -z!-$;0jj0BhuGoshTU4CJwj2A)EJ=?S-yYZjECMz}F_lV$%wh*?tt=1brU-zg>tmAi -z%7HT|A>zAiORYa~eg|F2;p%xXCs!B>0M4#G;;pV%Zk${643TXMJIYfIAOYC9V~rPW -z_OXj(O+S=th1!J2rQ((x(=*SgdfUC*P;X5Df`Peh{IQB=v+(hh!G{PyL3hvoe(Mva -zI1h3`l^U)5kA~h~f+M7KX)4ccx)oj-Z(ax|IUZU_aRk!AP^zQM*8{uXG+a1}3>eO- -zst!@sM_K~e{^17hcnN4BT1c6$aP@jk`2{LmiacPaK>r$XOoG2D5 -zvG4Sl7YdcYJE~aVQGz8|Wp02X0EBp6Rkq@nzQs -z6PiLCcW*+lc3~A|Liw5w!il~R$L#46*lWmpneQ!r-I42r)?NO{0rG91Eqmll=~{E8*}2Ezk%)m33vZI5MTMp -zaK1Nm<(ZV!`4HlmCh(G1kj-bnP@0DbR`oAGu -z>u;*FlycB;LR3PS$i -zRH(QH*@7eNV)b+V$V(T0z<2@bs3Wf(q)11W%rb>9ycM?XtLJtWHY%cm$kV%#)&jAe -zB!kx$<>ckI>u5iRj1TMHY8%*}4?P8I4CIvKHyNo9JbMc+;}LK2mdkw^kVHee(LwTD -zOh7T&U}!@`yH10lPH1V$1M!N{oqawkj=@l)uiFd!S=5%_%0Tz&Q_e!)#y^j-;QW}k -z?9n+_b5=-J5WK_weH!owzui4CqLB_W@_^&g8Wl)d<-nWIR@Y|krKh!eZ0n&>0#5}1|jTL$n)=5r)Pnl-JLep@< -zgN?uT9#UGr7zmU^(>TC`1ulJ*Fud_M^frJu@4S2H2BAURN9IWi01d!4qq$9_`&i!H -z%fv!~h=FF-{jT-6JwkB*}BEMYKg+Ahf7ZwGt`hI`n$9KQn|S5Q2G?@ByI -z7pfER2$J#hGpWD3amgVXigl3aw~j1j^BqPz5qlHL5bt@%e9r~ON?t*GFg7yr74Kbi -z4=rJ2T^V?|*4lf}2_*s`K2Iw&L)ZyGdAU^EdTIEMvh!URkW4h~+iN!7vAg=jB(Gw| -zPY|+ZKfZZP)KHKk8%RO!@TliFRgZ>kxqLf(Lec{o9ii@BD~kCGDiFZoh;BnJ7YPG@ -z$M67)0I)qSXm$Ok5%KoyXWTT+HfS2g1#BJDnP(}LvF2Oxu<0#(S-zr>**IwkI?ZdG -z932e-p#?!?&8xtRliJh+3NEoQZlBFk>v2bfe{P6&#pSMpoh)}fukY>VtazQ1%gOOoitucgGt3g%HP$64~W>Zr7A=!0f6UROF9k> -zC1+DDp)n&NjiQ{J$Hs$L_IQ2%+6n}lASR%0h&P@GL=r&FE#(Fw4$>l#aH%xdLz41> -zK0ALDTmWJLS4BQXBo|ZH7VBz+!rRmb0Y0}Jh)MMxs%|`}v=!|cPPK}@3JAl2*nLgJ -z>5lPpy5tb$2j)m^m?Xj0JEOneLPEXA=0a03AarhG*LXd`-ESOE8phe^Rwei^RIOfZ -z!)OEpTH22izgn3~9OEE`?qfm#meNR!fFe7XtCYYE<>7!1F(w{5NvFvzY_F)pstBbH>J}2u)m2d9=4~guf@wE#5t&}4VWfH)ghywnL42z^#jNg|U`X=$af@EBiZ%KA> -z1|%vNIn!eXUS}A(lD|Oe>*%kuejIZr1X}*(F8|x4KHk<_ev}4W1<9gEM)Nj_-rCaA&drS_6F&75h84@fLow9h<@O_A!Oa%isxpB*k(8kH&UC?h+8h6 -zf&zlLd*Dr#6em0=QM62;PH5Z`zHAHt=lSWyh;+RanuyNIb+F;4kV31cxxH!Sd{ls^ -z01;v?FcBX|YKu<7wR*q~5Pm+dV$q3lt231uplU*}4}4|p*>&mr%4~HPDPQV~9aMiq -zNntRvq5`xrjfkJRb9bp9L>_=_%u&Qy-|8NKkqam#$;+vL@tDGct)-O#yzO8o49oQW -zC|7M?1Cq4>47@yeQAqb#^}BB31W#>8(*C1HElKCLezcx_N$Dpa3G;UCku9X0dI4og -zmk1maumpj~Q41jw^Vk&Ms|Ub1fGXF9SPNid*sq68Zij%Ru;qpnZZ#)SAp0b{e4#gm -zT`Cs7{em&iobmu#C@x?}g|m|u17YVOm`*Q4E??km8(lG5juPv!f -zM5RX7j@4m7l@vuXAY33Qxw4*Qs%m%-%z<*tUZmQ)DdM1@T}rrP+irVM%8~@0lagap -z?PnHZGLJ-{?SfczHZ*@)81*Za28wk9sP(U}bjRwx-rX1Tg>1>3_Io_`rM~P`c-JpI -zCsDu-|5P -zU*AVo+r5zl!U2!ei!3u{f+C&PJ7(6Dg_}H!6{_w8kjb@Z!W1gsoD2UTZx6i=hndIO -zqS%S+-%C3MmPArYtRUQ`nHyyHR{WQ(^(S*a*$Nhc0=(V$<1KJ{69a -z`v@~Y>3Z$U1(E*GT(!aZSpCh=hzFx%JIbToDEF-s%uXRZD!ZVpPeT_4JWdMq0 -z+(XmxVy$B40kHV)iOEn2m{@}A96yj)9A;(-GcIhnfm@%JMeLHsEb)9%`^&oApuM)5Bu#SO`}I=c-~8=cg={Wf!9}FGaBF{FLV5re -zWZ?HwNMoQ0B!I13_6@B0S?|CCpfq05ySxIFAa3`e#9y_$O+{squ#lQ57=!!d3%nGV -zD`REp)3MbbzvI@EK_&(K0F%u>R}KKX{?*e&DaoLzyG|diWTZ@8WrD29j)mQg`h$^M=Rsn;w6D4So^q)jgh9vV2_yg;o#`UqxKd3MOk~>4NqRi+R_|Nt9s}LB(&t%kLl`zfc -z&@|#iu_VGQRJ-fh6Z2bd5Tx5vf(g(;R2$NQ6wRX2XY8%dK?n=5%|4U~F)yCuW;8xx -z#0x*Ast)QUz=VEG+WGcMvu>67v_Y5v%q1Fk?cU{|HsbJ9f_($i=VugWpe1U;xM%pS -z0L2G1*A-S0c?r*I0N@>9$cMkX33G7cw~&2Y96sVE&hHc)jd9aQ -z#H>4v*8-H9Kut=`hw!`D^mN}`+0T+50CgbX>b-U@W7B1eV$h-k3-L5WRofQ6K~l~V -zAFQ{J9(fGHFre5CF9%Y}jZjdgGK|;NfV)*)-J6AofCC&I;7cggRk`;jMPO%3g49y( -z+x*2~=B#c#w9sjk-h~SN#kxKE*__#w3b(sJsk`kQ^!K$#re*R6JuEtaCWyMK5*(B%CD -zPvi$CEIN~3sC;lyHT!sosig@g=9~+w7 -zKG3;lhNKYD4|X4teym{`_V?B-oj{#uH%Xu%K2fLpK*)|NyHDj>L2*)P2p!Z5W>??9?kF>(RVu`J{Lzd{cWptgidBq?f!Wp3k8ewh?65Umnzo)b)_)+nzmg$q6Fb;5_Inh@L`F@6iy) -zZ-;(Q$e^va9EklW7pHXs9s$~4BBJM@=mSo7a?ogJ(tY(gVDI%IWS0x?{FCD7{)X`- -zG!h(kywy{hvVYdF9@LM|?KMZysEd9hF?qaa9t62;8`!)gy-Xk;)Hthm@xWVw9dO&f -z>0%&N*tm7Ppt-w3gw+CoRKWN!mzNvC6F8KB#qA$J!X~z3vN%%!Iy(l74=MIJyfGGgkkt%Lr|Bs0vE&d-lKDh4O~~qyWmoqdP)e(3yLHX=z6==19g59!n0iFX{jq2iB|eDfAMz3TUhhB^Gsrz?6&Fe_5^2yl -zzKk{KJ8`RG3f$zrbHG-=2Os^kuyS7>E&gh+br%xRdX~yZw8)^*cnQ1aU3`M-Gb|Pa -zgWod|G(Mu9<-YLY)mQVEPcpgZObWV&3u>McId9OIxW@TRmD=J;xo@q1geP!nfP{za -z>Kg%sa&i#-OJU{_`2v|xU2c~Tj&?R;cqs-aM#0Q0I>t=TSLbQF} -zK8Ex+jmI|a#(p8O7i{k81*qyy4G)&Hm>Ipl4V7YB5zLN#U2w=HLtr?&jDFsW(@J1A -z@MCA=>dGV(?RrBR$7wPBNuH_A$J*Y^+|$TvG}Q1lW$=CFmmg0>Pe@A4RgKP3*U(>IZ;BOrdW5u3^5}Pa3hl`oI!4 -zobvDF@gD1RSD;e_w}Ed2V(dWK8aiC}Hx%7uknjA2yfN=06bJ#&n$V`rnKa{vj288{ -zf`8v5>@}iY2+FPAB5eT53VUa6o2y-uKP55Xr}^gW+5G+ -z=g{O|x-`Vx=+R2cF;b8+5HYBPqE`;S(jCoG%b?=|9P5@e+-G9n~Rd$9Tig>Uj9QWp(Jo4S#;g{u=LV{dKe)a+C?< -zSx);>&PTWEaUVDy`qD|%4idB4MI$UAfv)Yr9`hvy;yoVqv>X{e=-+08*5fCrm~VwE -z&pnNPB2@qrdyyK|#p7=VaQTI4$r7;brJk7h(`&TN;VG010=(R0{(70P|6vV|GZB5_Gl! -zq+f~4i6{!cl2+NbTf~_H)jOiPVwz{Dwkka_?Xs~T70{wgC_gGKSA{-6*r1be+6pqn -zvICC6n1`6LD-tVG!1NPQiER-+{PJ^Y&LIct>RSG`?VP;v-UPK&r-Qxyc%2mdD9WEK`yy`i!a$+`GKax%Ovox@2qbCk)V^ -zJL(&V?_RFY5%!M6a?5gG@Fk1r8WKM0U+K|p4~lW&RzrN`M+Spj5^DGvCZoUzX{dCU -z1lxOg1m}0QiTz;Z%Aq&0}zb%c3UJgdxujQT7J@d7{0m?~$1gUG|CSJ<|_ke{IEVbz6fXf=w;dKgqxk2a< -z8|Wl(FL&_vh2X}7Cn@5CCAemRtgx)yoW`tipi_7l_*rzCp6Nft*6|P%o6spw1IGqt{wfTQKDVQx}^*f0eX1* -z78u_V39-&?#La*-C!9`#f-1cH=qn@=_x3=hK?q!(0ILiqeJs{m(1=0XBQxU5+u-pe -zwiVfx#UvU-GKNjU`Sz2KS>um)PB)#4kkml#37g_hX>zKcYt1ZAC9kRnO!lC?)uwVSVQs& -zYcr3p{HHN);PW+^r?R-O)-+bMhi|A*V1s}~SCXGok^2e(Olyea{mX~-wcqNUSfE`f -z&&B7+jyAQD=sWerxjb&tae*va6FwR;CXMscfvZmj+q^E>%%{4fi+z9r4hlo5E>`@M -z&L@NL0P=TM>`Q0xLXMJ!vKL(3fUirOoa5i)#a&6vlFKPa_Zk$v6afZ_5}g{nAwtBP -zgco)ZT%<8*bdK#n;=NOS)F0jFj1*D@H#SdYDV|*8gm}FYWde58`1UJsJ0IC4ZgBxz -z2}5m-uS4dJOUX;pcKPWpla2s+fiC%NC_=f| -z=KIe@oC%nG9lMlLa+ODYkb4zEjmWNH4ESDzM95~1mtp%5!1oZv77Oe)za8^zerC}G -zAOE;rArkAhe)J*+f5)al(s%}yW61%57${!k>^$YMG=s89z^1#tIY(VK1Fi?s;sNf` -zfOM3v^A9&t1#kkzGt?t(OjUV&!#_OkZ*Oe=ef^`}JKOD8Pzy+=lQ0iCMMZBFrd6YO -zh2(-E+LN)<;or&H>q#c^L>84BHn8Y!Y5z{}AuuomGlnLT?}uaYM7)U_Awql*GYu|Z -zG$<1S1v|HFLTsxc^@A18mJ&^iGU1=}{|?we`F?a4C1#5R5IVBv!w)vr%ae(oqdYFh -zg-Tfk=Y4Tz(R)zMCc{U)`m`T%&s3axx@G(NlMrBbDsyEgMiS|Jt!TdOzl~TYo2h9( -zaRI5Ty6#$Vw}g!ydp6BDpj*SG3PmlS>eKeuvtq;Z;@qrj&+cj3`Fw}N-}jcsuFrh% -zXO(a9PBVJ4sBw2-1sQNcKJ{Vy`$$Pz4u8dXgsnD<1m})tg{V3kyQq=7ZFJmoJ%OoM -zvmYnrQw4RNAXw@I9(rI0<#M(h>Y}V5BnPm^pnztxfMCVA-lFOgrxGqR3 -zHnp~#^G5GFTf;~H&Cb=E@-}y85O@z>8F}BaRfM$C$i(QPvixcG+t!N=DkoLlsR!mC -zzWcJLO~p>fF>5(gGmeXU&pl0^u>9acz<)?Zhq)!%kF|*!&B2te?5)X;Lx&-G?5cJ2 -z8D`GE(iRx{W2IgVA~;`U6ez -z7USbMPa3#fW@lLQX(}rWVJUm@_FI@yAoQ-Jks|viKh={H8bh2xDI$-39@o*+tx|{3 -z%OW-F=(}eV8i(>(42G%ZS7Ple9wlDaK%%Pe&liUw?~2Z+uv=E -z*D?SNO^;8;P=37_Zcd=gK8aMkz1GrLauOLT=33&Me+p<{=@Kj9M&^6&a4D(4>SVvS -zTk6pE0u-vWUP2;+D5jiL?_A6R9jv9MBB7;m5?m2STN)m+WEz}|ZcR#8e=1(Nyxu19 -zqaR3n!fM}kD(eGxc$Jhx7ige-g)HO<5qeNV2iEe$(0uGgKxgc8Q6M=1H+7JTdhjmr -zf}SPV101t{8Fr^J#~nJUF2~nnYlF`0RFEWQ>1VI^#;q#KS%Ca#WW^alDg*Bva-`zM -zW*u45;Hb(++RrNP+WS`{Bq3!OQQVeFeQRAtbw6UYmC -z9&01=%=Z_yAl;Ojb9WAHQIbi8nXd2*G5Ev75e!@6_>=7KxqC*X6=OZVj>74|Qny*} -zMQ?Bg?n7O#t?!&N?sg8ClF|52gY)93o;!Pn{ilA5VoDIQKp4V -zrGB|^>lC~mvE%ZehUtx34!y*@I(l*9y(F%{EF>_`+eC)XzorJb`N5>95Yu-JCp9?r -z5Yb}xV0G2^Ou$h|!#x@LLk79|ag>iupLY~;1;#OcW4SL+j=@wY=ihuZnyWEHD-Yfr -zng&e0de;D8OwK5|@Nr5N7s6O?m1@UaHT;{1;#av4Cj7@NAJ$ssaa~N~=P3-P -zO?~0KkZrJRw5b0Dg^uOZv;h|PeWYIOk$pS7M2v6aHz;7HXXpk9=&zT^(pn`RqUXZK -zPWBSX+FC`s4q#bau=Kfeo}K}4&QN#6ZiZ^TvKl3@9pc&v)q+=#PiiPi!Tm0tX%)#k -zg;d-kGW=F5K3AjnP9Pb08efO@WKtK3vda22@Iu0{JG&8NJvfE(Fzo_Cec(rK2!Zdj -zuNbnSL&ld)KduSfXBKELPL>=Civt)HrjvkUGwWTyPa0+}UR4mS91ClHQ;2<4n*t`t -z#1tw`N+2Ql-5~DPJ7!qHIlQ(qklV-oBO08g=z)|4!ep`FF8NRbIQX@kJQ`awFu -z2fz&75VQGqNFDU$?7*kV8E*IT4Zi|A43~l%wB-h?04I>egedrRg;^rsv#|kFT_FtL -zIpwwUVD&*?9sMf9LOyU~tu!R}N67S(rQvH1$||fQOu&Efj-d_CqsJ?IT4=sDV72{Q -zj_D6%mz)?3n%;&}a;^-RoXJa$+0PttGXhE6@40=Duu%4S$dNH2+nU2UgUs1kW={vV -z_b#4BwrJ)nsK|pgyCO<0D-9EEkJ -zz$8t8)j}KPM8alxFLu)Y2nzyM;fk;h`wP6C9TQT? -z@`sNXz}&TU;+4{ClJIAgptlQ#W~OcQao4KL?OB>yiBYdarV%SaCpk=jhn7<#;x$i} -zkwREQm`Dof%x -z)!ZrGFfl(?J>yQTu6t}Jf6C7>SHQ>JIZpoMY!y#+yQE*k`D{!riRpXz`QrCwv1+J< -zGvC8SaG|jO44vB<-*eolyb50RzYh*rtk9To$T!M%D7w$3g$sSA5tgoI@jtBZT2|D7(w@dn$cMR2Il -zkc!q9_V%CiPV=@-FrU?boFo5V6sNeKjh3ZBe1pXa@d9x_b>eMZ$k^iL?&|S3Jb3=* -z9KauO2C4t-xu5_bZaQ}RyRlhjX*R#t+Ma}{E_nUqYKsb?``8^E{hv0+>n8W#1u|}n -z`4uH4aO7e${HdX#A`+*=k#nT>hd;3Skj>$`Ca>K4cCy24Xob{{b{>Udu>G`IerR+W5tn5d#u}i-|Dwoqg`rvQy*-~^sx3Zi?)W48El^Kt{naO=>OSBB?qg13P+isbJOCbf3Ji7SN0k<_QqdQ-?3WqH0ikyICx2E~S)-dj6?txT -zk!i?F`bo9yj$hLV9wpOIjF;iuSiS!i%#?YFQ}Ds<|1{1d$QcB3qT2t1Rx%RZx?QMlO}h;3mK=8h-j+XK -zwn#ZadG+coFRaf`2m#Say<)Vz08YTnhl?}4bteEp0Lq}dMa2vtHbE}wDy{BM^Z$?+ -zB>d2*VBD~)0s!^bGFxRj_D@*tN;nrv&7Bk`D3cuLgk0iP>6EydDOb?L -z2}-x(?}mYFsP;2}_A-C`strMxEbfA07{qXk9OpzH{aJN};{Tbf(__GtzP4`R&sI0w_C2IKdMR -zD2M+xk@(ji|GRH7$@3)gf;-})R#`Aa&ybkca69On)Ay>r`x*}IY??rz($?HveG%n#64^3Am{gGu -z9XnD6a$<259xo8`$msj=@3|dZ5l=N-SxVX405a9%8|OAWFO)-cc7kBSbs1-@)Z2Xq -zEQu1CD5~c>?0IU&o$9XAgMXbj*siK@Te>>9Hq?%8GT2$r<+5p;!!}*oWVFJ@0dL|}TtC)>lg=#!TIo72+DQ;hNC2irp -zd`?2*GOwhBpF(|`f&cDD|MRqXp@Rm|s`nsoHpLU2RA4$;-`oG(dhdU}(4m8uz*%aV -zA*S(71fx;friO}R*)-5!P8W3?xj+}ztz!)zm^dP_ygMhKmRexUzwl` -zz;XM5fF*(nk*<8LUtOsuCJYkf{*OZoh6md34@f|XGk?~vw89GKhD}aXtEm<+!uh7?Tyzm4?a|G?dtqJW@kPH`*0|c -z1_X6H*s}BEkd!BI6X5IhInzG5i)wig(Y)l;A@xX#<_XE~f|}aiVn}voeiZemO@1p6 -zIInfjFHaxstACsq2|QE~(b6XJUtUgkMD5d?r-95Q^OBBre?aU^QzE>la3<~?piZD| -z^J)q1>Z6LSzBo}n5a2a$&b?)r(VZ#D@CM$}lX+TCxfCHbT$C_bvvf=gxy!X%Dg(ZO -zgr*gbO{DbFtb9e$YO9j_^%6+D36u40d8v#0Gl7G9hOK~WQkLUzZ?A5YCw(ufqmRiv -zop8)=!NbIuyXoEv6cjQqnNllh9i$B`0>20AcKl24qNL|UQvv4a#P`1#bckLE10?J8NaQSJ6b5<8=G?cI?Az>Z_YojfBDygtpg5{;Z#I5YVs$?KT -z04YiT4R>i5(8&^+*qxnLiQhy#dRN|&ekBJS7mzL&f|L}pU-Cuz4nTPkK+b1MiH&BB -z#hmS=bf>T~@x@plRMo(tGCy=hKcu-G)#(m&6+8_egQ*uV2bBn_RYQzltPHLQ4B<|YjJl=_g&V5Q6e&FEw -z%9aZ}gT!i_N~!Y0O;8uZr;JU?B@|p8I;mm$6YqFC^`eT}Tpln|S4@bwDbkEsmt^x71_5&Wg#(jENr -zkSi|`ZcT^ub(Y2+e(f$X!u50HZp1u1ePuwsVR -z`2*1yvU-ggA$%!PeDZ64Uxkd -zw3v_xdc@*zvQ1lP%w>qN-TJNlOa|;4fGAcNb{*Ksg#ki&jm7Eoa%vDc=r9^L?lb|K -z>63@XboMV@`5)Te0xFKKSsNYPLU2eRNU*^PGVo#<5-fOdhu{tY2KNXWAh>04cXv&2 -zC%6+_g1i4ceCPLj&pPL>bJt=`Pj~NKQ@y2jRXxvcUH~okvIsDHx6asF-u~bBB -zN+2d^+60fEv`zs_8k?2M -z@D8JZ-p%sxk*h4KqAp2JZ^A&BlB?z#2jPEWfVcoqA;5bS2vb(BdS5<{o&U&z#t3MZ -zvsXSptVTFg&f`)GWkqE}Z+15zS_9|eKrX?+S9i-{~Zi*za-w*`& -zQBK%Rl>CcrhN!^zv2g0l*V^pP1sA)s+uU+AD|mDpolVAUqT)s!s{ZM>X6Sst?5E;V -z{L2u>a-<(JLPN`CbU%r5G6lQ)5RNWRFDbW3bawIqqWxG(V*VSYF%|*^AbiFqure@1 -z4s`lvF!#hsy8s5;v=tP9wdbK1>1&nw#{(*{L3gDiDtud^;nSIR_Ttg#q&^=0wUh$$2(hC6Ux(iks%VED`&UY68gE+XdJ~{8oMU3h>zU`L -z-{;*ZR!zQE&igN>X57nwb-O6*TI%CjDD}W=LZlznp6SX<Wj= -zQ4Q=IY>91pyFt;2!kgl;1SK#?k2!&btu>u_nFzvY?u$I47W`SBQ{AWx$a7(I$+bym-k4iRqhs?ak-ZbA2 -zGYt}%Enn}cgsNa6LWsmfYHK;iZMsEI(59sh(sBrQ}i8#<9e;2c`Jh9KQ>!1Y*aL1G%laXW@ -z6qepty}929mI%kJxN<=@NuSu1|B%K69Zz9O}XN1n~Zzv$6w=Ze;qm -ziSti~V~6}G2|!Mk)wuJ7rV|mCuo$DoU*|=YIO;|x86Yl{Rb9<|k3)Q`uG-T$OUxZ3 -zB|-SKS=zJbUI7lkFRaD!{i8nb`;9_^x;3MX$Wb=gC9@vk2NY!6x+^71d{6bW`P%Z< -z6wCtPHfEOA9Y7u6fh#n_3G6;k-rkVA+}`aY@=ThuKWT;k<{^>{`Eh)yL&L65p8rjF -zILE%ieH2y?83n2;v)d+#&=SxBK*wxOUt*(SQuq>9(0iJ+cT)+X7yU>YWx>E^VF9ARLW7PH`W_A_UvO1;!gb~VRNvb_c -z+e;2e;$r1-s+r#~W-w--%Lx6;! -zvB*>hKN44L^%IL!IEz?zp$dV%|I=qGtT$)`QEAt8Y!Y=~5B!(H!|w@PS -zZ+Ha`mPaGgO5(r7E0C@=29TGuf_brAy^NBj&IeBd2AaT*v-8uP&jQtjgx~4Xf5&EH -zMDOro+eu;dyex&Cy|T3zMMad6oT`D)dA^br4Y!z@Gdwb2LHx_ql}X!S=i~M_0t}905#>^feC1oNwlb)6*oY0R!Ay+o -zgk3!ex!l)i>wcJ`<(IUEb9;x+VeI?t6}K3G(^N?>@spH*BXiP`_?Nu4Q3{qH6GB9B -z>u=UWtELJJTEFjW5>57o0J1M*Y7UGmy`V|J -z93++uNf5uf!9;ik2_^gX-OY%+!nPH4Gd++5`7#f4b`U!C1_C8ad5vY)D1?7I0z)%l -zz#j!79eE89gb+|lc`P>7FJfQ2p7G}#kV^or$Jo~X!u|daa8E!^BbU}gLuMub;an${ -zl!(8VDGvqw*&g$T6(QBdMP+nW3RQN%_H6Ieg2yuvPC7(y&nLGIgUF3`2FBne1UyF$ -z>k`Iq#4R2@+l7yZDbB9ltUAlVpN&ViORJ5B*3NZi^wnH6E{Obe1U(j?~Ln#G)@N$n5IHBYx?S8Fz1D5!^Pga#b -zFe+Bawsib3rQa`z2T>1{A`?V$dRIv+YF4i(VW6n?Wh6GTeLO&#FEpascv9c2l4A&J+)ATbpX@k9TS9fD_Cp< -z2!_|*@#)?Dr9-(ul|U?f5dqA|a|3Z-D4<5@9 -zXXoItD*QZyR#Gz<3hT -zw?K^I%@ISS*T6OLPflBbMYPA|r@%tHIZ_(r&Rd$K7${(e0<4T#LoYRkq)Thk5i!|2 -zr>BtL=0E`TT`2IWp(hom7ymOCRQd!D58$55Q#5g#TqQ&rfLkC?^KzCH$4mMg@o>pK -z3H=SC}Wo0Vd -z*!B{e5ePY$_DNb~kYnmolr?o<0A6?epmMP}zobd8PZ~q%S1GPmdt0hi$jMA5&K_oh -zTOOXY*&-R8sg+qT$5;SqRuToLB{c2CDJoV#W{8NwM6ELlbUe{xp>k=w -z$RoXlcJZ~>Kd9@!>)xaMN8A_3vtrdQ1iGsfy$7*iGKgAk9 -zmO3ebB5_Diam8a-x_!ssVMAV4ULg<~X?lkW6jE;;ozTtZJc(Y#T+_@Bqkrlsyd5ON -z4>XQr(eEAp1|?ad4P}9)j7-6mY*{)9A+pn8{?B@nO&%37oOMamp_bT)k`i>mp{_c# -zH6p&cllQ69qKsxhZuG{?PJdqKDr74Z&U{+l<7rLjEXSBI%-izoU=(UiuSP$#iOa -z=AZ0(o+dfJ7taeK@8TNIA_^W+|ER)9E@oANcFOUz;?^@nmeQj0)h_9C8CR8>uYunt -z#CDLsXOjH-`&=nG3`BA9WTHQJRgrod!0G395~dpF`l%z?!zwisW=YpF=_NA2^s#VKPFQCb@T2oq=%l`RUBGw`G;Lg@~aCYQZ8gc -z&k<(5cP?TnIbH0s*UfKhReLA5FUBwSVHHCBYvf}~yDvm@-He@fxh952e?o39bT6)7 -zx7<2u2uh7GV-9XV-`_PtCXlvt2($7yAcmznmPAezfZ+M2G&{x5@5CTWeH%QZgzkzu -z%p#OHTO{6Ea;F26iq0$}&ncJTu6cGp>UYg0{#x3oz3?SxC^`B#c{(oVlu8V-eLYyZ -z^TKMX>ny_o>OHQ74hxx?+gm?acQ}uSso&&#l4CO_#XbiQ^t!Zn;A$(vv`3iD4$>3^ -z=anM11!aK~d!EtLVEr(w)~bgzd+HW!@t~O-Rq-QLaa>yN7j`q`kcqGeN43%KB3Yxd -znPz&ijuV$5sfT1ESWG#NZuPZYwqw8LR3Id{HFgZ6?=$1d3le5G(t)_}i{r<;q>r+W -zD*ltIlggq2G4%mQ#x@f;3ry5x!7=HzHRr5#t~Cc`L|V -zB2c8*(r33yhKt}jsr$mxN}D#L%`iWmMDAgQ*zV0Z -zzlXJ|XfAr1Y>^Ouiim$n<$Pjb$bOX;#ZRKM1SKGH3}|qwwwC0N8o{?`By(ruJr$W1 -z`FIdFJM>X^8+9Xk3f^c#-0Psm{!J)TyK&!HZ`8dCzE2cc$@bP2x5P-VL9i{)6G}i@9KP(3mc80xKr!8C`?UXKYEO))?Q!=Ua%|7;5d)epjw)?Yx5n)cNI1a$0lr=wq5%LOOXT>fkUDD2DPUTa -zMOxgu)>qmm0d!yzF+;IOG -zD+h5zMR@~QY+X=TjNO5YeMkx^vEHhDT2+U#ZP@-)mrXwhzx4`fn}kW$n&M{7KitZz -zldxODyqj$wOh%958RWX2u$UsndE{cxE8VX&7wFd$a8x)$Sy&d|a_^Z+&p6cGkf4q4 -zc-HS#(w(|Wvz&*_wnJS|YhF$t4i%8-nak3msm)jhvIMru?B7`qV{tx5)x!Ivz{HyV`>2{i -zEFdpEu(Z@Xv0O)}L`Fl)XT*_SmR>}9#wUroFLCHHjxF9HIY30SJu4xBq -z%J>sM}^3|pi^??{KBIEa{~L}D+hJ4i0=~HkLoreqej(vOKq8`)uycLBZop#Amzlj -zd|H}6qtq*`YEz9xfV!*#i6 -zYdwZA!LYyA+Q7JP;#;=IPtTI*{8jtxJ6$o~hd&h?JF&d;#)b>Vqf7HoMZ`IEe5sI^ -zY@WZ@U1#onhM`K!LY*K?S_l?I(iLAv$%GXU!4`{y$)x}(i#ppBbP0j~w{Um#QGXt(uBZ7uemp-KUT-VP$4Jlgb88XYXIugY -zfPvG``}GRu4cM5vcTMka3%<~Tbni!S);(DPlPk)XS`b7QOlAe$WH`VA#cwq@wV)(zu)MrN0UXd#NpPe3urv|So?L?L=2gjG -z=8n)(zCVKx7^4Bkjz}%;?bJOn5>(QGXXzGMar{$IV*BwKT1p-o0S~}e!Fq%!{tFME -z0Wu+NuWyy9Uxi0&&5!pQV(ti9AXM4sKL6tL>p3+8`yxc}`Jkl4hPJiQf9pnW$Jha2 -zhmKe^$O=_Aq37T!Jj5vOz0ag3X!(@Y`V*LLQMXb}C-OwjK*A(SrcBFa;%?X*LF9UQ -zL=6u)?82U7Gbbv1L_rU!DLst7Avj)Z(4HEy3XJ?v-K>L9J?~l$} -z3(g#HwR4QT+0E~CxEaCc3x3i$<^#^YX9noAK#JRK_Bcng&Mw^a9LV*AV -zbg9kxOA&1aMl;{F5Gn(6)QZ5ZgSc?-*Ti^bli#@L|-YiTw?* -z5Ow%wrQBU3Iuy7T<+{?Y75B(3co2t0c0GQu|)02dpX^il0L@pyC^liU70yS42l>jfUW<}gACay@nfl{fKE{?G6)`;xQ0?6u+qL&mSBFIpO3V%|IRKu -zjt!bY)EHJo)cF5$KqtWd?`AmV(BuI1G8%Y7*ANN_w%ZDPMKbIWyG6jMZrvwi -zOu#K+C~)mRe}ev4$KqcC{*ROY3#t8ogm3@j7rBF8{d+C)1I(l}%StPQf27dCOA_P; -zHcBEFZzAH7N12*^r$cIqjd5| -z>A3$c+37z}9PN=C1&|#67j6{rsM?Rx*&n5oKI)G1sQbEbdZ;U{8Nkzzr!~Vsj3R(5 -zq1^HJO@}Oj69_TX2oOUJj2J%j7N1IyLJ1qTTdU=@px26 -zXx{A|WIWgAft{NWeveq^(xq+&fvM}5>C -zm~(*ckA3<7Ry_FR3o|f)P=ef;jlvPONx(lygVs!km}Ui73`nuXZ3t9IbkXkYz{dB7 -zg~s<0WP8H)EPV&_BQy1H&pMAkZ!xB+d>)c1h;|gbl+4*z&qab)t8Pk+*$>XdD>`eB -z%wWR!PARNhGtcI~ot-N6EqGZyfn;h?VHPu5ZET7?_jt#6{pJt3b8#gq+}6>zz{lrm -zL0$PzQbESSC|HPp^4s`8Doh^wY#T$O`ksOl=6K81D8Z~{E+NSJTPt!X1g4%9opd!; -zR7ndb+0K&Om4!pLRC@(;uY6Cy7th}F42ES${epDzmhjJt;B&kk-}iLc9!KEfR{jcN -zjw}tfJ9y4DX=5fkiqz?R@Z8D@R-6x#?U5Eap$xpFqx@>{umj9-U|mzW8A_^YwZN`kwMmZ>r8} -zD_0O{E5=P&utmzlefCK#b?F{kIkz{I|Adp5c#~wpgwtckVy~fMpYw(&K{2?CZl@>% -z9WK&L-`$0#bbYa9n{}2x_SJ3Tk}(ZPpJ8>;sr@}DzZL>=>MY*E*K}~~Wo6l}%wB1m -zxM!Cdg8tBI3*q0fzA6un^QvvB+T2vkQ>jGG-Es!L*+iErp-ziKAx4F5*GSEHkHmQDl -zgOfyndYsMY$}(HM{B!`w9Nv#_pJZl3@kBPdE^M;jm8TY^(=sx~K75sS4X{lNdxd_nnec7_?+iGQEx3B2P5W1`1a$5!JODKIkJd2+0UuaQ7FV=AN03mQHmL_izRR#O9iwTbIa2HnGv1yQ9ev*x7RbvAG){n -zP0B7f{aGzn>(cw)r3(xPX%yet)1!B1RSGw1BmSOGcD}yI0LoE^NfATt*v49wN?6bC -zvDuvpS%K%`^AnC^3u`%3cTw-zfI-#1=`_2T -zw<_zKNpx8`0D;cBr9jmBnx;X%aWh?XYbLdwCVYfvtX{hz+Z73=CCRQ(oOC3jlz_8xg(WMB3Au1v9@2fNRk{}kKT1OJe3d6;F%gEGzBfGv78 -zBO^G#^U1elLb6?DaW1|6U*yZfu74Ygk?Op>yG33%PG+0ux5%4MjfH@*uO -zyOmKV=hgV(HfE#6MyFC2V9;R!0Nv}T0mpY>Ax+YW>F)|O-7>GDo_V0KCf!rGW(2nI -zN{DA3QhSt)Aq%KyM0TJB8zslyOZ#d+$`7`l#ibrR^EB~)v3nXxf2`&THl1fKJJ$xl -zLHO$^@trLF@#Ga8z??W=4=^fI`ZSDSt!aju^X)&+Jaz2tc0m#Je_?&(wifY=R0lR( -z0%%GaAr*c-LA?V&e4VSKIVxv!9gspmD{bCN2Xm>(XenQkO`y)G+ZrA=-~H5Wtb$*^ -zHZK*W`q2Y0q|E8aBjzt#QiQJ&!*USnA283GQ$s=1o+ -zk%E;E*gjVFI(JV15XhRxHoJrJO_~TR^uYS(fzT_1WNTIiE7sXms3kd+IAyo!A5!JZ -zzN|5kQ1M{;QJ?C$BBooPke9NhXAdBAD^*y@FHga@aWyjjLpD0hh1v39&VOpD@2IkV -z>AL#OOI$p!zD#>x=lw|qP7b>_CT(LA3569@Tg=47fvE_hA#F>jx -z0QI`Vga7x~a;rDy0l3d|oUG;W9Ccw+tLG^A6eGP?V`lHv(%`A1?B?!-d~@DQ_Vs$L -zwfy`PloMnyGfmLR+-0)E#5V6-=5|uwI+w%n(ZL|z)?Yx@QBTo1PHX=1YXR8+PxD*l -zk+_03&ZJq4gHe#+SU24|g^~QGiBiWK+&?;EIj~K#%9a@gdy%qmRk|%X>WC)ho|3!# -z1ed;}KY|}K2HQRGP!(4;Q3ZLvNpUQya`^nF)5t%wYoxAA_l5@lwjchvK`k()h2jfn -z`*HT~O_5LK84J>Tz^LT1skK)RQF5e?sv^#!zDfD~b-EdyNX^d5_lGVqi_c90L!CIo -z)|#f<6??P>0*uD57IWkY2k^I5wz#4f3NL4C(6v2t@ojZbLYh^AYKr|U^{dtt$JUjG -z$^T(ZW`NEf7wyB4%}vYJJkOm@{O)a9Dn=h_=sS`Q8&q+BoMFV>GVSj2ex1y=S}yt) -zce@vKAXYd!=xy&;xtO0k#|Kh!Y;8`iid}oC)?mdk3bF!aa9{5EQfMovdfcfN;Vm6! -z_m`yYJ0pvm9?n63yI(g0>!a2I@s=&ca*>zWbv;p$^?-1Fm9ygDJLyr_!>EKr;^;>E -z8zqu7Bda(Shz1;uDb6OR^qslfsG2?ml`FUJ1p%%TOFt}G9l6G{$ -zHsr2*qN?P1@ts!D6&`EfJEJ&Bh*_fcvkU$mTYcAPlM&#)jpSlT;M2ER(}kn>G4v7@jlwkL)Ja9<2YeVq -zI(1TEvSKofPnXj_(NRb>vrB}2>sJgtYWGA%lof)zSkK3Iot1-8W{sUJJw0UWyLs(H -za(3c#FW!Q`uL^w)okK4>g#YZcMHz^<`s|wC{`HlNn4nbi)!pBzE^p~KO&OA80aU!Q -zM*()Gdb+Q**k7fNpxb+o=#W4BP_6nfJ4lBG8Jko+;ZYxLl_DEruvSMg^0nQxM#5QQ -z_MNY3^E!xu+UbBAR8fQm3FrOMWTan1*?@oCLT+3_vPv}>4D;9Fh0cSP~ -zq^&RLE^ZZD-!0x){1fp8ZeL{mH*0h118rwawx?pwdIi(MHzf8~2Cq?WYWlW~%=EO# -zQBK*uCAByji?;5wgam8b%Ct^yrAJ0FF -z`*be&0I>01&!7D593NtnF#8~OF*ZU9Pv@cCsr#q0J~0^s{SRpZXT1M{*1fkNf4sc; -z?6_?(j1*iW^vRfN3w1-5x2$pR9~M-#m@2me_BIYz@R46i>{jB%28Pk!yMR3N*Qtj` -zf)4691M&TBL&vrCpA8Kz)~hgA!-m_->e8r*NQ>i9n_6}qYu;zx-j{V -zo+evoDoRt~>D}f}7LZBRD~>ECw)q7YIQVT}G-5>gwf+t6v7oZYnqVPRAB-N2NQX3Z -z{`pXvs)$&xso0&s2|U!tG!4O(8KP-P9*O^OF6r=`ajLha4L$8qGWu))YcLqIS!JB< -zze9R5E0k41dt;F?Xn%h0n`xOpEVC3@TQp1928&y93R-v4BA%Fi-)-;HU)-UGKYV`20wju$ -z%olakpWOcBSnuDZjnDGrjDqFUJ?UwaFp@2yIoHb;@)(FBfz&O7X3J)#-R{HpsEemy -z07qG+!d^)V_?u*d4v{#P8N8JhqG-TJb?}o-?7n0Br^LG!AC-?NJ$LSWkGgdL6we)T -z6RZ$O!10g9T=|fdNY2hnT#HVFrev<7v48$`{|0ES!?j2 -z;^q<3LEkjojba32=q -zd6mBy;8t{vJi<^n7GeA#+`vBv>tS!+^$~kNtC)U}=#y-_=(kDcSJJEQV5$e}sb+pa -z+wkmdyGKiV{M7FM@PUk1k^8BS|D@xy>4jV~&x&g~MbZ&%bQB@pk_3w457%c4F+CVn -zjQnL|72$K6rI?K@A;xwGz8NWDGD2=8l^EL56w?dXi9$NtE7Pv@yJ52Lvr-tD8oqgn -zAf()!biv=i0wxFLNcjZMKrmpwJJ<`zuDII1*hSjnem0%TKWAyU8N$7Lfh;I+G8lQ& -z{OvRUffAPB(sP?@Z1E;1?7Gr7;x4;aRmDM#APptsa^?lafR{#Z86R?ctB2PTgv; -zxqX!=zX=k2@HcKFJ-z50Vuk;>>U)yo(2AkkAhHa>QsuHCowB;2%eAcdB?un58hZ8$ -zNPfV%KD-A$*E8OH4swkPMMvau7g0oGJis1!qVF0zuc=v)F)c3?AB-hHFS92d9w@0D -z2MsZ3vf^*YP?m>f@3)Z-HyIvIL6;{{z8;{O$O#3hA4}nDFYs0pe3&Ul^5$F_g!+8-(7itYQ>%wZObh@9o|k^cvZ`dF>~af8~JCuMW%~ -zvA>M=XbXn9ch2!9KW7DQ@S+>cbBUIVhgL6;^L>7C(Ys21)m7XsR;D3{)X5#gtMR%# -zo+ABRdOz;gd{$+|w%l}1tob)qRb2bmVmNycI)?o7t!fAPO1`If^M(sXJQ0__cc&CS -z5%_V8e%HJ%dOkNJCi7ZvplQ5ag?KaUXvpnr}dBQ -z#U)tEP7F#(l`>9+gu@fVdl9kWqCA(Zi%C^AIzCb_Aeeu*3afwp7lKU67{}ZFz3S(O -z@}O5sdz}K-}UIK6Lsy9jA8I1+A_u3#9 -z*L$e&{#>`wRMGI~GD)7hv5f~qy=~~(VkP6CDl{0fK#qI;oql*BN*$Oq>0DTBf6Zi} -zD2!si_JuV6l_Z#^`w7Efyx9R?^LeiJ0&PjH2!`;1qF+C7)% -zZAhxsFeeF{>;9fUHd85Lj1y@w5GJR)(q$%Rj)$kWq;Sc#rRIkp!lzb}t%mndMonT~<*Dzhc)#w;0STt#~y -z^7G%(KA#I4tx_&yKglT*mNZDBxqIoba6RVuu(4l~Q5TD6DG*5d -zpdAaLRjIckU%`=yiR#0Sf=A~po{=>l>^}p3)plSfVY-Xo_s|5Xc)cL6xn#e@{$Oo! -zCfuWOmYk(?tM4Fe=Z!CNvFR&%PxyH1U#hXmDQ_jx;J&jh5FG$Cg4`}mt$=)&$n -zGJCn2p{|GPW)OD_pn4qQXuRkj{<7|9J7VkI7{ZH!fqHFEfrrc5&9Iq0k -zvDL`uejJ}qu2jt{L(WPc(%rLwnf>`BaT`WaTSB$UN4#C2IR$GzvgYh@$s{T(8-!(9 -zJ?F3Wt6y-9Yn*S~rdo2P>E=6dt0MVw^0hwXlbR^&-=wpr+cNBj4On?W6OSRI@R}pwh-Hl^KgQkNyZ&!1IMuVR? -zTd4N~??Jbx8wd9(`B^%PrS{{!Krs2Qt3}Yzq^=$h5t)thnY*+H${1uI$Le&Idy%-} -zzf0P^qV{^KzA|^dTCkpH+?j(!X@gbjIe1f1 -zF!%87trzj84zSwn#O(twFKN$Fs<+=EgKbdS`26|J4c7NKEj10RUTr>B5t+iU!7%wgI%;p<1{NQgLg+jR6Q!>8B{2R7p^vDvOIG*Vn -z!@XhPJz~6RJi7xMkwYSxgVhQ+f=e?pTns^%yOAA~q8!t(vu)lH)ij=mcTvp8iR7>r -zNBshxHm~{+JLrB=0?ExRy#WWXAHGkNm9u_OPA2kvJCyY7NoHw{F9;6g3X=}LZ^5sV@kMI~1QieKO&0I)am3Jq_8McUP-Y{z&6a4|*=KjCam314 -z6pXKYrF@Eh%lxpVJF*_)O2GYxB<9GWkZKD6VeVmwA;1>DlDKbD -z=Y4rG^1v2eqc@wy?k0lw&UgUU!A6{z$#2jyD_nTRUIh7Wto>%wT}JpSI&y$*_R%UWs)634FV -z20b9>Wavj0I-6JSkfR35$zII{u#|urTtk>#AtSRw5;2YB@BhMS`}A;sOf*%7sGx{L -z4vJQIMc)kqST52nfq>V;%ieMFHtNV<7t~R5#Ynfk>xW;vYzEIRfV}yA)xnny^l8R; -z?^?T{;(4~%kdS0E+I~FB$~4_t3BB(bOTtz_#>OUkutn#+NOVAwi=7o@=%Xf#2f}i_ -zxaFac{|xR2#X8q>bu`uqKGdS)rXJACAK23Uq5Y+0QnwwzCo2 -zzje>`R-?+_8)keeAZCMvq-1(LL0os_^FwKJs{Rq$PRo2qw>bvQk)NP$9c$u0`4N+M9YR{W}ym -zHY^04!UeVNy6{c;MA``)OA6Tc0x0|s{s#(PiU4rk9r(;4<1NwnJA$LYxV7FD9d>vPz7bC~gXtyf!5Kf~=_ -zn^V9w1StR^@pJA|uAYs&_&m{;`cWnSOu4fl_^I7tx4tqpl&H?kqXReTs -zb5CJrNizvPP9Dmc^YLK^GE;LdI5&#UK5xu(^z0;@dmtjQo|#E@>q|!LQ-tY6JzViv -z)9c?=6=(;E*yK%ZWakd%tgGqOJc|BxtCMD3EZ6!x+U&+KkVOXkJ+n_Oee+p-*IFIw -zN9H3edotYAI1ZLZ$*TeAWP^PL)QKYl#c^PR$n5h9sn4`S@};FS#v0QR)c1X}WD*{}DNMb{VUuej5s|c-q62tT>$- -z#*#KO+=DrJEJ!2ePO@v|-9?Hr;*&WXevEZZ)T5-^d7W$Nwi@1(Z}y;H%j^R@?-4_- -z1BPZop?I~U>ICXR(Q*zlsTr%1w*ao{pbM#^(6O6&$QB4kB4CXN9wuv6lS4OAHJ!;s -za3qZN@grq(&KMGDl2@QpyffqaSdK#IUn8xUkSQ$9gv^m@yp_4@Mr*GW`VE2LuAfiK -zUX_oWB`P#he`F|e5rQDYfq?(X*OI%N{f&&9AI|e#&mV?5!17nf0!gmtd#$43!D>Y_ -z^0qaDWL7(8(Kq^|-4XOal@6B4X^Rloq>Mj{c{gZzfNAfJ|1k`t4Vs2FJt+Pf1vCTs -z%AZw)6M;c1W^Fd)Hd8-to%}50zUdEBzixZ$5WGVTr!cH_$6UeD1RAy)$fJJ_+QB<} -zf=WPM_DU>xXI&)6Oy|vMWH+BIGk@nd<_KqGftIzO_sFD=pC{|A9Fz<5Cbl=oCo>({ -zthFA84)>7}tgRO|+dDX-@%>-*<{5~DIHB%mZYU$ty3<2ebIN0Nx3-#+)J!)-CWcebQ4dY1Di== -zOHJD6`Xll_xYSc6l-^>Pwa;yy|5echwy!a3FIbbyAK2mV(wS6@(`3f#Ui -zM>AAv*uYoS -zxN5lG-m>^s77n$7B8r{Syk5qMC_SgcMAG(rtGkdM6;8< -z@*71|^)6i69`v>VSj!QK0Mm4g56SU1gD7Q#vNan>ZR-p=Cm_}1sA6}}np^LrFvzjV -z#F`38z;QyWWPujLw1b_+wJp#uDKCXiR$z~t+52s7IbCuCD;I*@+-^_ -zI&(WV1AGyESItc>QLb00%*?hf1bC^51 -zdTre2U5i2M`1G=W%%g!Oi8@LBMgb&~)ZXbYW+ESds)xx7i|CeTW6kZn8h--^!2t1` -zfnP0)K5E6yK}23ey!Y6?_~ri>u|+>J>EWhWV-kvSa_HS -z{uEJ=8-tM#j_A`fnT}ghzZbNtdr;b?*;>#VKDqsZ&q?Qy(^I%81Iy-1*Gr6;bWY$c -zE+0orziikeEobl?m81v9+D=LCvVVPBd3C@0awi9QZtZx3yx_xYS=}Tp@JvyyWOBWd -z*caSw9nd{+ry((>zvO_eu4S8P)khk~Hd_dpy7Ji}yWjT;cc)t68?%8dA{v%t{)>^+ -zs#6u^TbSuN>4D4-h21%noZ7U%7e091)#8910nDgQI@%K{=55;1Wi_8JO3 -zoq-q4mpTz(`zh=fI9L0e)hw3O+{R_=_nX!qRC{>ZWKh|o4O}QBE|nsudFBorXdo4v -zp8RUKs2_}fe^Tf-NqAdU^`vCd^rHlGcGUurl|tZ`B#Es4{X)=IMeJ4fAmi$PqwFi7 -zqI$n}2@w%caS)`D5F|wykVYw`yGxMn?h>U#I)|Yfq`Oo?xi1R+c*nG^CD0r6DRn!)B;pvGFfO(}gN -zwf)@(@zJ_k}%{EEeaDzx*M@oYI2i9ExK4Vj{xDYgKH?)wKV7=*WLi~*t6spka -z?=!t6$Y#qnlr=e+_4ZamxT)bwScVkvJBcL^se5bWeOq=n$64Hl2+#bpXY@=xLSViA -zf?3&Dxn~O`;H{TjZ7CKGQ{CE{e(d!2CVGedeX~y#G2u3*{p$^u`r=pG-Q9{tBI&H6 -z*i;4DJ@lGPE<%3{-h&WQx-H)co8S1|1=JId7@m(N2KGp|$*#R*WE8FHoF+Cuf+c5n -zncn>Dq}K(JsebLa_g(;#qh{7UMxfXcUpD%C0sVw-!8@@tJCWC+gGeu7lxtX2sXbLEu+%BSfjQMwOEpOzq*>f1-ONF)$+4aOpXD) -zAo)E+}MXE -z*Q~jrMyS{=TaKFhH#8oH#eyGZ`g`#rOMFK;U$@99HiIN;>LJc&@|9zkdZt#^PS -zD25g2Q+1lQ_m4e-9Z{=;Kga!8%*H_t{&TZuvk$5wZrxm|_A*yp!T?VWzuW>xcJ;Q# -znQN*2;&iPtSX88xvmF&Hv^{<^mv#$1inE4fx8JOMsynn{^q%7b(HsVeS<#tKD6?dT -z6tQB(YEPZ|Li%kj=F&6D@mbZi+-~j$0sW(NH_R6gJ6|dfZE(X>TjW%rk{0sLSPhIN -zdj2dY)HBKgnD~-VxT32_#+}m}y_0%{QC9$_0W2azY^~GiM`zXnXX7PMCg@DxWcy7( -z+M~VnDRaDty>Idt>bE%-9meLiPpPiF9BKu6Bde70YnMuik33_Bm-mRP4o351Lnnb` -zoN-g_fpIuVK*d?aTy8R`FYni61{j(tfNUDhA8LaZUeagXVG3%zwi3d?H2zlwD?7UN`s@nk^ -zpGDW?9Q83I*^C(>EUX-DGnWj+(cOz^V6;0L7~MD@6lznbZ=$f5Qr_g@hC6zuSr~y-+&i*{jP}hI`1Vd;vNPR_ -zbtSxZIf><^-m=h9Zy+ijZdbY5S?K -z;?w8$GM_?-1$#1n%fsIF&EjQRR}GuPo}w$-{O~!~3XDzg4mUXZ)8qDZF;S+@Z%SQV -zP>&H-GzuB3SuWyo&N>`?0Oj`-j_>U)a&-V-lzHqcf{9<#ROt>w2JX()5$yo}s2^Y4 -z%tG339t0uAd~uxyH@>(%>dW>&X0_qmy*%~(6iA6`s%*FsTj4>I*i@@~{oE8=-!mVq -zmN&>_EOxbrw;Ovqsmjx*72i!fg??O>mD(e(R5G3%2J}<*d{*d~1`0$1Dgw{IbC|(! -zL4Y_2xy4W`_uV4Q?xkX;OMpWd6dX8$iY0iOr?%gG=~a0DSHsQADo#l`BZ>=^t{VyBw02b{rYk#fEj+0}tU0WMe -zzMEY5PiESkBGUdTOvi|ut91%S=@KFPNNFA~*KXC^NI!!#C^UNRBFQqE}Us4ax$9TeUnt)A0ZK>i3F{D9UL_NOmuz;>>5j -z%FZIYmVrCD^xc?}RY~x*1C_|gD2RZwm+vH3QY^9A-#*?THYKnRJX?BFeqoEb`F9gI -zZQwLjA7I?1R|idHW{<*jbAr#+Wh?C%mqv+KktngHm;Oc^xWRKq>v4#^3(t`aIK%^{ -zscmFWhhDuIx>|9c1SlqeQxV&5z|kq?#_`Z^smgyeg9r81^brtNn&6O^t>5gqtGXrt -zKi?U~(kcCeV2c*8{<$=H$6^omtYi5O@M`?0&2!nc5a9@%<^7{77q#pyGpnuQt@@s; -ztmphlpX2Ws=B7tqmrw(lPtAM@_dbACk$X6fzhFSof8Dh5PQ~{YSS*~(?S*+>g0t3H -zNXmLVE6Rmc>(o{o^&j*5738{w#TbgOl(lxhi_vd_X0!MMP;5g^{x(OAxVFjv*9NtC#7-h1o^nr_=G1$u@K{{)gvx>))SnrQ -z=UmKuxR8Wa_vnK{zrPc2!(!H9Q?5^+maX!)2 -zwvXYW&4Ni<>+pOiK*7G>RTciW8Tg(N1L}Alv-G10!_Kxz8}aSCh}o`jct;@tmH-(E -z`MHUw%boK16d2T2eow^J+N3tDd7piAP+h3J_#B|E?ovb^s%@XYEBCe$gIF~+7*CvOl?@haZDm#Tbn}(`4*B_K?SfCNz=_K_>+TJ_k-zoD -zO-k~^*Q4~o?{%|gp@0_r20dZ7rDd4&LzWpBAdt9^?RNKpu`}yV3PVNNl;sE8rSCO2 -zvCb6a&`1FI9%R;?i(lFaGKx1?Xh{ATWAg~aPcdqfzIw<;IHRt1EUBeNt_XN5$nc>) -zb1#!o@%i(L`7X!GRHo^l<_~f$@8lF1-44M-JE+wkVssw~dVj%oNb+OqyxXaL4r33( -ze7=((_Z8b=T2^5ileYiu{9OlUt&@nwr=zM9Zy-<+0t{u&RDE>pd9VWe-ngvU3_A8) -zvx5O_z*$!e2hYA;0gS}fw{BDcG6v6DqQw|NacQw=P@JB&7ZfM@xC)Bj`gQ<{-vCzW -zt^i18E%6wT%j19yWzRhhnqZeLe!WvH8Jp&mxm -z)jC#9-74+xF0%IZtne^AyTzRJ>1TP%er**(wxUJqm{|0vrwFe_f6TX)s-p2E4kP8vN0nvM$r@47Y?Z! -z#O_VSAFgZLwnSi=AyEoL?rwJdBbsB$Yg@?XGw*UTHumx67sYS3aL^&7ng`v&)WvrG -z>0U!qRd3;ca#o1G+)p)2j#qS{HwFLPddq?Xci&i=Du -zUS|^v-8nbp3UT>o_w~YO!PE$2!FOK3mQYu%!&eaRaFZeO$8M-s|bufL-*D5L4 -znH1ceVfDTOMl$Fn -zASS&HlPtumtn@P1jo -z{ZNoou$Z=uum{eHa#NnAW@^?3spUT_I!wTk-80{gL0sz0u7CXC%tG&Xw5P;`@AByb -zj1GcIela>bmMpD$r}~Qin^bT4CO7@ghvI3#K!VAfG}121jU^L{AQ#@fjyS>VA})<1-mdiL!fb@%p9I-5bK>L|4G^uQjY;8`VHl{6S}XkEbnPJN_}u -zD%4v9v-|$QY?3v1(1SK^x71H^!!$3=Db2@W4<^R=Pb@&sCLT~9uFrYz!QQsr-?pDV -zpOXzHA@X)*5N>ihdp|WJ3?CXl)w$(m?^jB=uzdqq#TmAS7^Calm^C^gN)X#TTI6lQ -zBS%iWr-sqt4ecc(NhNK4xvH2X;Ves;#~T_MCfEMdz>wM33iHO%N*R)ov#B_mBi0SW -z=zy;oEO1rSVBoK77|Wp6XX5sj0dFWclWHY(#RMSCkg~4Et^Q}1Bs`D){J#bJPgLiAC?vnBVMDgHr+W!%vx@L8J)v6FWb={daj -z|5)}knTI$<6f3$!XK_zFzQyF|j?!#tBoD7+8&x9q8Fnjl#)7@(rbv=2&mQ6o-!jG4 -zmeF73TVFK`Z^nQ%neih1kjIAUQ0t}`bzP^KTfmFo--M75-gNF4&x~MlJcSisxQBN+E -zJuGJ%8%f#oLoPaqNYeWDT*>jJ{6hanyB8a*=3(B8fw#ttYCyOx-hl7w_;uW~3W6=p -zO=3dcXE3`;Pl9A%9;frCMbB#SH5~W;sb6_@Fe5qiN^1rqndMDom30H5tWz120Q>}v -zYZHxX8d>oDv>4i;@aUwc5%r*!!c=Y{>z2b4l%l-=)y(-+lzJh2o%j1K7xI7sz3Z)X -zT8;o&Y=_kHORjmhyr}pmp7UcEdI%Q(Rz(&Ta{YcYxLO(0m^$zU=-nQm`Ba#@V6$-7 -zEiZ3uhxz+z0dqtRa1-loYqqktVLHhb*+!}>>nXELAt;CmKbpL>HHrLar(Hew%G||b -zRfBKAYhAO5G_#vd)tcQ1R!RqTHHZ2S#H|-t=;$K%!eA8 -zi^&gTiv6Z3j6~x1C}$<8uRHO|z)Av=GV&@o%$IwBu&_?3ZvKM;{-8O-*Y_IUX&bfR2^%vlW6p0^7{F$jJKT>!?v4=gKne+4~k1tpl%OP6*%&)eV -z%I#hJfjiuW<2Bq}<;uS%{Qt2RL9xp?^jkpanrzAOt -z@1DvrI(S@c5WdvOyFaOolr>6skDNQ|cP2`GSz|kNy2VT%P~gRq<}jx+p){ea>X(}% -zk8>JdN?db3EC6L>A5Hj58zfnb^|D_#{OpBlQ~Ap|H|C@2uMfclul`5Ayupb3#GBjw -zELkJAx##W;Ob`#|OzmL>YkL{4lLumIywV=XOCMjHdx=9tcIWExeDF6l5xy0W=cU6| -zeQaQ4GX?aqWBld!1Wlu -z{w#{r?)5^Wt7GzLAG>Gyj=?ovk;!50@q;?U%QJwG~$2 -z_}j;BDs9(o^Q#i4j#td)d$~8D1sSzVOq@;^y(^JE$KLr}ILrD}3Qh5BO7705PO8bb -zEKEM)IxQAGBv=zhUiphr+JkU#rj9mhg06pREEO80VJJ5`W`!&ivMSGnmgrZwO#GGwf_Kk#%5Qdcv^$s{@ -zR%Lf=ugbWEe%Dp)Hgx=@H_sRiMWUnGeCvB#Wth?>utB%AWpp?hA>E*!O(ePCuc5OjwY@E9o4`LA8{K -zMuj{&Ex19{6dY!v(8@KHF%BRhGf!VUrb}iI*yxfSN3Y4hN?d1n$YTpQvy*PsrS=Fj -z8Pu(JN7l0&3X!ukxhq%j@+Ng`4B{uZ<&d%9g^Niq_xctsS-F@b`))zKI -z0AjjrVP-do&YYr1d-K#dG%a4=(UPqYpGa1QK?8@6KKF2@G;^Lnt_lTq9>M^eonxbB -zd&Y*`Z6Iu;hpY+hTI+u~!Uc59Sn>7Q_JLSdnZX6jwc3qD|8-I*O;oTm_wh -z*lZ9Gr0%_l3X5{@x)00oroUs<`H|W)6Gy2NgL4 -z(%ll!7^v^;3>V;6U1P3=PS}5EPn)+Z4C;|Ggn}l@|Cl6sX_}8+XH? -zM{GQc3zLqx_&T)Gsi-rJjZFrmfb_Vw)OwOlAf@T>M*KxZTHU*_QW6zn*+VQtoQga$ -zafoCz`^VgGXS>+3xwVNi#5mqb-p$KY!4yQAFUzB0^e&lx -z)BV|BCkdx#&Oco-k{^HdsLgji4C8sW-nE0l;jC502RqgfH=n(B`#@ZrWw529+zql$ -z&F@4UW5ZmMBwUsG4+K^eW4q6Hg>#0T7R@Xd^tPWUfAJAGf2*&s))+}Z^{eokaoZpA -zI$L|WO3otY?zm57lLQ|&#a;uj`d4ErpO`qOpRS#7ezxhE{T3c3gTK44)XdTD?gE`M -zJ}ozq;SBUuMv~d4sXFt&8T*cFw-`#OnkVuQvQQ1Ze$)tn>Dpzc0wL!ioFI2VFPv?f -z$u~|EROMg^!KLtL-56Gx!1`=A+(?p$33J3N6AT#WD%sF&<)YYXyj?^E!*rFmFIJG{ -z}sB|?Cd5(q8 -zvGmMJy^sag-2%B~RGM~C3`|R;E6?h-J?rj-yI^gF4ae_#05?!Fr)Lw0C2Py1eHtM9 -zkUIUj;1xA7*kL+nR1@nV&(OZCW_|qZv;Lif*}Z&!GytG3@9a&F1Fwhm_Q>?H`QXw9 -z={IGA@r9F(dd~WeVmIBdlvDKraQ>NKZ2dmWkF$3~v+0~O?evf{P0Lmeh -zX(`Vz`TA|6ealwlop=C%MfI^n3C?sZ8GL0GTn<8j(D5KsDUV+X%AtP9HA~o%dOBb) -z@Ju4Hhtq3AX@l<(lfmBt)YG2Nf1Y-makHf13Iv{&4D#Q+h`%nY@|=Tr`aFyAmbb5c -zOw`Z#AkRRk;LBq7Qri(GEa1cbB)hC2Rc^D`$O2eaE$e~M}LLfT8NbL@l -zKZ^P3z2P4$#@P(fl$HRb{!$hKyAsn=^-+l-}%8Z6*81Ikb -zKKWq0^y&HEqo%y~@+P$|{;;c@V -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 -zAOse!|NVIK)15bP0@fA2>vF -z6XX?uyz=$UY@9})LZ_oq0B=_1_p-pmcTUZ1!|Wd9d^^zsz04#rx6ltJmz8Z?wx6_m -z1HjS)lx^^67UsHu24_+?Td(9YPqygbK@cAP&@?#ao%=*KHQ&dSknmyD^uQ0yi7rCO -z-vd3cCW|L}qY6&KWzJZl1yf%9m?VJM{%N^HUC@0^y1_k~(&0TamAIEBP8%<)tuHeV -z?-hd1(8pt|T{%ieGVWs3e&Fo?+fIkdxiKG`%_c4w&wX3kd%@}26n57{0CY>z-)`?d -z@3^FYPY87?+wz4osW)ex-*ow{%Re3_8$60hQqWl05JZ#L=nmOUJCApoBdu*ynS62u -zQ0hOwERhSuh+)>aep5N&zCEfst0r;NidyE}ttZG{z1!#wt`@V)n?F7IZf3>RIXru7 -zG}h^4>Md5t&P+s=uV9DKazBp)#pUqJED0pI5W?vVg+PY(c)=@i6UTYKUPbBG3*Kq{ -zM{a(48=}>ME+=co>aRe{498E0E2!|aO)k1c0+#zX8=S1?mh05xjq3>jCZCM2J0_bG -z;X2z(Lm?9Zq`>G%>jjrrtS^7-I?QPl)H5J0SCw%=0JT}y);T%H5S5uSc5r{q8`+L+m5n0`V7G#)f6kLt>iwspAUA8?z-c#s3 -zi=S>gTsTQX+BB?(XCrL)=ihQ*UZ)P*V+u?lq}h(={I2O0_0CyFQ%!`( -zEob${s`(kix2deh`_gPf25mQddyDek7!rb=ON?^?Wk>GOp#klXRDA)df`&`=`~5iqD19N#mz_0@nhTj5T! -zsg>)#?|08iW{4}#wk~k221R9)eazo=!NIBa%9?$i$ajEacS&9mK0XUF=KJpM$mm#W -zzzTxR5_m{eg2SbFNvfUm0Y~zf9iTdbm -zn^-_4zYJnjcX=<)?z;PcyjuPf1aMk$dM*GT6N_%$SKH!hH}^3rDjN;b@|A#2Qjl;# -zaS77=7%6=24i?rBLUwk$nkTdEc8#Z12`7jX^MU7AIgYDJ%5@sE>>lO3jo}YK;7rmrQZ0aHxp-s@8 -zwGSh#Ts_WFW=IP)RTtEE!M^D(P(-wHZC|6(H+sY1{5jh$Cca?_YzZ4+*c$dRHw_Nw -zPsFTWcC-y7Pus!$WE>WRv}33#vY@EpcHg_qzg6BGQ7a9$#w+FH4nNy}Tf7Z|1)d9@ -z&Phr90%Rx*u#{LeU`wqTj{BAgMHm1O4{wa1y_A|y!BwCFNEGgED=;yrjYLvVh`p;# -zfdXX)A*4a!KsnGoyE&*91`yhZUJG#EE8dWlciK)j#j28J(g3idiC{NwIEOvpNy@ne -z#&9*5@vt2FyWy&(q$Smk)KX@5r3 -zWc8+%0kWzZ4GUr%+DmHk+E<)u+?#6)8wE(`(mei!6GnDaW~8THHIFpW4K$yOzwdG{ -zJ}lB1;V89Ib_i3?AbP&TIB|OGo_br*2H+hy -z1~5Q$z$m4YcMAAEI`h2%>t>=FfC!33Z^J_QF%{JSMi9_d=ATbMeo6G4Pw1{jgcGoy -z6z`v#CZIgA*1l=_3&@plaQ)#+Qe(=B10jLwk5{v9Z|51#or@RyU(PDh6oY#Gn0OR1 -zIF1FgJ+T~$m+^)m0kT&L7MU1&+sQAv!DkhVn*ajCB!t=6x&{He4G!@@`60olf|!jw -zpCksWFdQrm!ct5ySH^GAA$~l&>fIg@dOhZG1_wGDjjwK#(o}ewJvB_Y9jHH?*->orC974xm;CO2L<+&sbU%7sq@L3=M#?oW%_y6!SY4r!Mqo93s?j -zw?RV?h|6bhyBIa*ap57GAvchRQ2pyijAS6C)|0K5a2UUtlR(pHWCVd0v_(GUWgY -zzf{ROVScHakrKk%Vlee;?29e(J)nQCZK8Wj(^(RplT-q3Td|gm4)N*M4B56Zvt|a< -zx7%qfFO})UPZ;d7b8<%JT&2X`V-al;IU`87FPSryfYhY4+~TmRi`Nq?_eA7g<&1sE -zGg>=gi=&P6%b=l)PYOr4)&AH9+!6K$%)!gx?A9+zA6T_WWRif#(e7Cm2C^StyHYaiYl}l~q&hC*6 -zAXv`3w>P1zW(X*%KN9B%Klt%PQ*$KP2~_w*;^JtpaT|zfzkW2A8|tb-jRKt9n@8H7 -z*~!D9S{&n@5CI@@{G3Y^GEt+fhOM|c8EX0V?qfjR9O$Ez!}<7pD0)Of(ORQ>-}TWKpox%S#^nB1 -zf11z6_m2vi3EHy$()gHbwW$EeMlvxd)Lc~h0w^R?^FwF>-h@Ub8_>=TefeNQAUcmEMuB|LpNTo5c;S=i6rO-5GkYBj%1!9|MDNHn -zMc|IULSKJS@;dEI1BNw4kLDwH9{X|oC#(f%rZDvr?4$^nC%{%tu)k>KG;v^ITfUd1Q| -zU6O7|FE1lhL>c`=^}0-A(GR3cPvY7IUpn+Bs0G|e;Y@wFmfKyD@3Nq|G%@FOiWshQ -zf`)|1!6$O&OR>{7Xal_UkGMz=2F|V9@gKlkz0d-T;COsy<;4%Y9XG%2o#U|kXqxtS -z*1Ge*^~YOEXEo!{zlH%p=l8_ji^%}o6ikG*P{LdIfPJ|dExyaN&E~!CB`jW@QM`q8 -z!KBPF}8B7*cc0?<4{5(6GdQ-wE#jfev -z5Uq`c7QzmZC7r}Y>1V?0$B%pKyU2io$U*dmIa?sp(!pgUBY1_G@G3w^+zUv?{?c^! -z{H5t0(E@O!HmnOB_*S$iH~jH$ndj`%AeWrZy5YX8yUP -z!}lp@ME`LC%#td=1zw0T^&Rk2s|Hxv{BsO6k)>h|Xgv^L$%HRY@Wgy80S(^U?-GhD -z=DNYdg@A9~12k;#+~(hVbO=(t=+OrjfibmmtoE9zZn?d-u`= -zS4g>_!olQHeA7r-3ZYy(MCOlGs16ysrH_ipO^cXxjo}%fD1A?u>*`Lnea0yC6bND -z2S6lR!rPC8C~T>d6D@mSPNHlEUO2i!I=VX0IO2pwf5<}LZ0wSv8;CPw4t}BE>EEtN -zCN=i=l-@`V3lU@tS~7<+6W+Ow`yKreG?lGso^s`uKyZ8R+n165+6aR|3WYsmdKd;o -zDnPpmF%$~?)bTA^eGxr#c=$!mU*-{b4{66?*Ye|{hf^U@%~Yn$e-4t*KsIipKLd*J -z2_W|=BzjrmRp0hY=#RvIP^pLhzC6{AlA-JbZ0i;ycTMB3Q-5@UhXD4k^@)yQD|UJN -zktgHupnuy>VNs3;#WFx%_fa`&qOo`x`w3cF1CW#dL)DHA^nnCK9Vr~ahiC!OA8QbF -z!|QYPn~q&<_C;0u*E{e6ncK;;1I|!gfvBZ3K(;=i=(U_y4M?fv)7=0|FRaA%FSd(GnwPePGB$lhFS^h}{1*n*6sL^l%M9HP(9B$?=og%=DKdh9qjN?J7s^(Bj>% -z0+{@6x}%1hW$D^X>W% -zAk#MM%9Z^9T9F!-3hYnT^`vSIPvRe^%m+;cN`!wbtFCI9)7Ilnm+@h-Da5qWjI>iZ -zSqHTi2!kq=xX`K-U+<^5cUpqWtlT3OvN8`ec`LHZXt}@oAzH?KG+c9a^Jzkuid -z_Jl_A*xYfvu|3y6fKF+g5lT$3`AC(W$aTH4Ig10HUa$2S3+>$Z?7zQfzdoS_$mw*F -zHjk#f@8M(UJxgHBaW=XR=+?$u4FDo@JP~pD6W6!QU&#Q4a#`w#xS8zXk`}Z))mvs+ -z9>aF*{=+6vY^_@2x{7%*wswP#CqVX{WZw`&Z3kBTP$f8aBVwGgw0$SiOnCK=7Fy<< -zZLE)N=PWJyrbBEpqmIOL9E1Ktm^2W&ier=MhsES^r*Es`QYK*%VQ@G_#7&p-4RH!= -z7R>{tt19NR2!YNx$cvdHv7#czM}%r%7kjezeak1oDL3w@i2_OUM^(&w*dfmIGf0%5 -zbY|HL3(zekEj?MT&b0YPDp#FKP94D<#h{hoRZ=8vf;cLkamkE9FAUjau65!HpX0P^ -zhHnUEgNej6OsuQS$SGBB?;PA7mb{WgN$7k_BZ7fJwD -zT5;79-jyttcZ1)l?*tzoI4V8_)`fPCNu|?>gkI${psyTp|E>lq>Y*Oh=*H*%zZZ2G -zir)=Hc3-xzzCf3_A2EJtMSz?w(|e(@5flat$k?~abEI2(#DytUevJ_D{d10s6Mx|k -zpBlB!2vIViI218H4M9b^=~jBza+n4%-Di{e5uq51R%*^+mq9tpE7GN9b5x+`ACCx? -zw!?w=5PD`T590=AMm9uaKA9})C;#q|n;9Qzz-`kRcqZo`Hgr;7FVZ+}$K|3bzaX$7 -z<13pj4~slWi_=B11XJOCovi!9OM?ssJhJk^Urj&RZDY{Ab)5M_u3kBKr$fZe^^x%n -zqOEDA<{U{mS~}SUsII4j8!xJr2=fQ(MEQn4R#6dgiktCV_j8qEn975RT53&p5OshYWT}CGsTX%JsHcI)1I* -z$=NIf4|J_N$_F{n#GRm86Qw(Xo{1wBnCK9Nu6dN^G4yETaI<#t4*afU(`BWLDjg8h -zd*9kPc4?%ujOlkPio8>11<%uw{*TdcL(RjYKN~Y$_PL_qodQWVD%{G-F$P7|J@ -zdj@zagSAHLMAW@ObS$91jad?nv869gZ=^?fJ!M7TWbXEW6Ee99t%uHOx3=1~gsU9E -z00z*a##qv^@p}U9;zWM5UqDs&!zttkZaDbK62kFBfI1rx|4W6MOkG+H8ohwS>HTrg -z6{xk;yg*@SeSr6)mrKfy^fYBXa9S$#y6qdgj5JC&1MF^++^S3w=wRdiq;k0Oh98#w -z3A`?FxK2-8Q9!sd$TB<^#4qU1|95OIIUDI-pMe -z(pb5_(m?~*PO1wQCEy*9VH6oycB@YF2K#q&oShOC>XujiSW@tV05S8V@jGiHS -z%``@mk55#Koij6`x^q_k&-J#>t2wBAeql%u3dQOySnLNo?g!@>mP~#?o4C3O9Cp%s -z5q)YW(6l3RWAKV-d!Roi|A;RzAhDhoV#Gi`W= -zHd%5aD5AP`f@q&8fT~FOwlAFdUgd#azxh+@N+OV->);Z&F(d>-EOcGv!1A4Fk1{7W -zi0toDol>AN>E+`BXCgvy3FpuyVeja8B4Hri2#Rw^NJQp<{jJUx!hPaz933L0;y^YaPd?B^jF`JkMWW3KC&&3xwjZHE`=hcKMYjw|s^<#ZRltQHJ; -zN%n*e{MOy!>~Gxfg0U3FnxwO}M9%j0GjV?ea^^~xN8&*zenszpmATRi915{RdJ-dn`U+Yzt7s#q_FVeXt&yG1 -z&j*F}VCY=ssuKAvZ=PpJ;|s+q{RwT$@N=r2a`Ar(p4!_Y|61XcUPuNhoj?yH$?WEA -zuv31Lu$%vlH5K63^Q3=Fx!ig`8^F861W7+D(&3<01@nzF{GZm%fA)Dhw#OFw?Q071 -z)Xdjyg`O7V^J~);R8VP4h8BrQB!zBan?{C`OS}zB(d+u*qbDYTO;`QYtSxhqN6|Y6 -z=n)dd8$?CFT5hhCx7N9W5K)mnYQUkIibS&Qj2sLFgmQ+yicIlyOpZ1!hU$rsbv9F@ -zbz2RIVjhbwV$fZ8byh62Y%56PNJP@ok(wZxo*$f=i2;?gXT$v`kc5ehGg6hsrrwvQ!e8d9%`QoY4w^;4a<|?43S_EiO<;XQ4+2_RXRo-Fw0F&%rgmi|a$S;?^%Pf4qIlF`du|+2G0bA^O`Nz -zE6Y9wt>JzVm|e4CA;QvMd)Tnv>hYOb7R$lN1*FsTgr@s9Q#f=&g4Qyb8nq~O$7@-u -zg%@eR`={rZb~N>Ovj*lcWXlfK$;InvZ=OWUEn2wj(wr)Fk+CIlc^ET`h}xvEKMx4w -z`!lSkUD`WzM1+^7y=0eJm@^d|j;~d)WN8#vcb_{$oOI`1DK5gD{l8x6pBMt**~_>D -zYk>(%FLw^_%%6NmYUj8rQIms2Ue_ir*U?MNXjvy4fYgxCcD(OX5RZ5+qpDr(S!q$r -z=sL8ZWDs;FG7<&rsFfEEQSN`ZR&urUo5>-miz6|x#%qO*RXD|U(V}D^zepwyWDLjR -z)_93=v69(n`8Aa*1cE)%-3n#eOC~4l^f2tvGoWI2*^qT631MYkXy72ucJyR -z=>k6H5E`XQU|dU3bRLER5b-}>8(+ytgF$qK?gWm)3-4$z_&C_dFhP2jD>~M+kpPAm_v{)8G_%%h#M2f1C*U~t5+`jpVA>5WZm_8Js8{AV0?u~-gR1WgYwCHz -zr3ly%`2i|Y1r;fRbO|M(6cHgRO*&Gg3esypREh!uN{2}AAcWpUiU=h1-lT;dsiB6u -z2mjB#&;68~J$rU%XJ==3XLsIlV^qL<;mXSwn53WgJ)f<&)EGZB3{czn5xhdwa2??r -zEY&Y6M=37a%4SVZzq8Vpo2^WVWslD5?kj&1t(GH;uOb%W4mZ#RC4Y#(ypLa58C -z_YfWv)Op4%TT@@0->YhEo*=L~w_?a^12VazJG8!hXti_@;%^^Hx#S@W!oi*an6*0j -zT+X|gnHSj_nLjLg)FyC77F|p|9a8?7#DLJ8oDZ}Nm9~#($_gB(cprGAVO(;_An4m{ -zxFnC}Blars!f@4WeoNUbvLp$rgzstx$%j_&0D?Ue=1+ZO -zq6dB$Z+|S5!YiEg0ymxxxbFL(a02%k{apPh)Ume?+NbKJ*V4i@b@X&=3eW?U8aiBX -zqITeIh6n=7^mCv^DlLoCSUJayLn9~M{8YYLZO$?gyaz42Z-WbzIZkT6yOnd;6uZ!H -zRD|QX>F1V7M`k|YCZ`K#<5yCMi%$$EhFpL7$!rfRPQ}`Gg_S(Z=XI*F0V$M5>m`Fd -zP`?0RnbZODivGi--0~kzug3}F2<)X9;GdJk!$ -zP`MmiOkE!OxtUo}Y}5`p!qj4-qNuCNxak#(Ffwm(4*CncFzyv=7Pp -zR-QVSCYcCzzlombAm^3%CjnjjJ)*w9WQdK_vOApG0UU0yp*XAW8+lBnkv)}$&MV9! -zJwlv5OENtvKZA&8Dn;J@xP4#3Z7Od9u|&{|53L#CX#f40vQi}VYq_Snvg*LqmS>Xc -zw%1eC{8XY`zB_iDv8PR$ynT6$z;TsUq%kAnqF4>{>_uM|t5n4*?d&NFG478n*QcMG -z#buoA$-jPYWX6PRob1)Ld)TJ9o2f~^zLZ5>r_@JZrk+B||2}$Tc{Yp;L-Hs7H{wPf -z-rFl4oNLmF+VxdzOV?df<^Y`!5=Q$zI3-bX1w|rlv?q@mm&wOU(&9 -zN8(_1;8%zqnRr%Fv$|etBm%k2aCGD+uyjAY4_{r$>i#5GNH_i5KJKd+wV3InED&&8 -z&*FWk-l4H7OFszL26{rpG&|+hbfQ~JO#F=_A>g%w{B2NX-S9E&57}7Q46cs^dM28u -z5`Jl{aE){TyuG8i>D&n?=BK7kZMVpetZo5$i0QndO!xK`6#Hk~y(a79eWy_i=$_Km -z)-kG3uchDf>fn{7{cHhe=$k|Oqsagw2#9v_XSRoUX}1Hw7f)lK3$Y4b;_fv}$vb^z -zB2_(yC=>nCHo$fd27=q^oNrBw$1ql>ciX5-*^1bVBjnf3n3?-N-oor+dhrz0o050O;|#4KAmdi6rwz&XWZHm2o6 -z_I?coF`u|##$1E$?NYgL#J$0Xk9pgn{YfC1?~0zEO0cCz!{FnqG972{(tn@h07tCM -zdHTW$Kg%oic0^<2Zpp_&cN{efBbu#v)<$2smsGB{ft%}j`eQIJ&$~mWgYB*;&lKRV -z&NK9=sdp`L{8bG~%mX+p75^5ETy0a~V-kMSz^Y|UvGxv;2FN|e;P8-~NWHWIkb&AW|SGSj}dm!~(TRc;6 -zf&bHmy0^XD2Z}W#jAE^8Y`u?Owo-+In}&DUZs&@Md{#ClM&{aUyRz^udfB0U1%k+~ -zg8PEjJ@*`YQP%5-zOSX0BH~7)UUne>yffMHusGZW1Pz<Q#^6nkignLjYgQ$KPFPB8~ww8IjH -z!#69Vo+}h52d4LE`pm*E#J+aR;#wIW8a0?56fB?MotFs}1fEav0A6eeHo>ER6+}iT -z+NWACU#*(1T0nG8TSMRll{V*0w-?(vpesJOZhuWpm) -zo`bGEms}Fdj`BM88U -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 -zzgs#7QZL9MAdbRw2j`87s)8(OG(%n6(k07 -z;*bq7TV!Ptn8Qh+IH?Z^1nDC_{ijBd!EN{( -zTLym~Fow-j9(O33{ybzYH9>?Lz=MZCDS$rL>34+t;uyC^6yVA0z8Z@Uh+2HHSg`&O -zDe^q^0jX-Ou99jnfn`tKwwuP;yaE2TEv6UJ$V}UWR@t=7Edoa}m?ozYadIcyy4b5l -z)nS3%kg}HwAntS(ZA5JYJr4>>p?Y(o!NE_8TwvTDIvI-TDg;oxmV^NMBx#69ym$pK -zr}gXdstJK$XcGupu>q4z0p$Xo<}4lm*pgX=KtZ9_{fAgyH_C(RES5ty%qyXJ7#I5- -z93C-`L-t9KgEyD4L68j=k3roD|0UG=`UmtSph4+k{4rv?(g{7ancb4`uYi-19vE@W -z1LCRJBA)u4yIpyvJdi?AOhYI<+J4LA;JFw4QSU!)iDd0u9&G>moHb?zf@^4@JYK%Y -z>3qgHZue6E#4h*D4R9bu{KB}s_WIgS)w)j3rSwc!_GFRepcZt!K^ -zA#sa!tq<1Yb>@g$d{J9NiKjmwcJ+K#NPNpNy8?~`qG$@9o`;E0ylpKrgqTkQO|Ft_ -zs1DlVN}g(xxma+u82%0D7yIt3+m-<20w@;h16sT!0J0-Y;1ELh=a)XYhljD;XsQNKe$6V{jCLtVU`m{4kIO#~@JNAwPf`z{p$+Pj<1GAP7L(x8VXBPJL3- -z?!)-P_3YyIK01PFJB=v^L*aa744$g4Lg&-F8vkoDoQbzv$5qNY+osixP7Wm}O%pOq58GaErPKMTt-6N~Ew$bn`Ir~q?Un8u$5Pr+AK^^f(88~dia=X@@j3{#A?dzO6`${d@ -z4`gKv-*YZ;N*%EX?g1wV#C`W>e0i5UefGo4peifkj(dL<$E&Xki1D1yq_=?Z_5pin -zb{dBa!vMaRnqeb{Kcos$Xcjl6f^0Z=lp$RJ{qNt`PZ0#!g*pGo<*S8KhvEfmMM(c; -zyV&B4R{K0?K|T24QlA^0E!Y1(dengTPYr~c#CVQoCO#yiF7+|qkj6;Y}Pq6&m$I`LN)6+l$x$}|xXNM^Tzyjg_Ser#vhSUwwp8I-FM2~mO -zMixNF9-R{RXc=2$k`L8mPRFWWuQV06d8p3vqfF5G*BhUTZ8T7Z$S;2zha~J=lwj6c -zNt{+l->HUEsyJN2ynN`j693n-IWMz4Xt?5B5B -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 -zr;p8xwJ#z-?|>zT+;nNwFC2XNd= -zj=E@?$Xqwk;0=8lBj;z?Uwf>Zp -zqPohNrnEr%OHd#{_6w$Og{_89f<)rC@YzIrkJX3QPe3@=1@p^6ctkRhrr&#<^9Vw2 -zOO*4|zUd(t+4mza{n7OSlx*1MMY6=qB&RxVZAUSV$kr7AENOZ9m#+-l4DKxGV>$N3 -zkt)|T*sTwF3)`k~oZzY$C8@1NmiwgO>!dwxjo5otP0b)XAb208>2j;e)p}&0c2?^5THsk$dgkfBVR%SVGHEKLKjzHz8+S`R9QoY+S~SQ630U`Lr@f=#UQH1xePa`i@k^k? -zgJ+~)(~J%6^x*^drPDKK&e45+_UPy8zn6ECaG4XOa3Gz`CFL$)!o7aQm*m1$@t@D4k%=ytFmt{N<}613crE}j=HYSnzeC}37vO&Hl~~`Nh}>6`+3Mll -zqcO5zdM(r62`oa-0rF#nSuZ<>&CUI#d}~QA^n+ie;unz1**Q5m+U$w$njcI -z1O6>l5alHFCPxze_MIcm4qNRMGAQV{Xk?=gYVp>e5ZeoNlr9$a?{X-T@MfY3u*(~2 -z{P8(dv=l;TnW^y_KJd>1O=|U4S--Emi1#I;{eT%P`WO3m@xhO>HaT>6D@HA5ERH9S -z4A`RWi}P%-Dz;HrZyyUve`6|NnX&ZE)$xxqzlD8dEhl?5BQa4kTuH!0rdR!V1v?1< -z#~*D{B$Zb<0v1JU)@Vgr -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 -z=Km&aBjve>%|DdU_@?e4JH3&*WYgetDF|GGzQ -zN{1!rP8m0>@ -zPN!028Tin)9x*jW_3AxX2n6aPm*$ZHhjb5Vba6 -z7@=DYx{UfJKax1~NZivKBN`RaxCF-$1gzd48v>UC%zK@oEq8(Y$l=hl-y(G>(P4v& -zIr;*+LS_l2BlTOd{hUvOyR&_y=njhdkX^oIu;*vkm6FKOEN&zeA0iHnwA%)xp{xC6 -z>?YM6uPO(J3_|b6ZI(ab)eNLk&%jKJx8A#2Byg7E>6XX(a_%HW8TFiVPX*lBRZbW0`wNgD=`u%Id-cF)c52NUPsWm{#(CbX#sV;u@wC5B -z@_Rgk4R6Nzag8PhG3ugq8W{vNLfLW!psDeIKF?*zIwbZ7yur|lx?XWlUOhiAn%rH(8?Q;0zZpx)x}X8WM*FT -zh#%dt1eNNxhv{mzh27U?yXAN_OPE3GA7pe2y@pq+BA{k;^ -z2Y6jvs&0q;UB3Du12;{_XIg@BciTaAC_2Go#%s7+LCIf{{#*x%K{^%NZwm9rH5y&9 -zW;+zgi(78K{q?5nO|70whaPQ!SnTNjA0wpUz#y&gcYw^1ez3k_Y-solDty3AfUPqs -zD3HpDGIXZ;Us^1`mA?0mi#!IUkV531yc{1u?O4~aom -zOTG6DMjs-nEGCsY8BafwLEK3uw^ykN|0F?!|W3Sx%ncboA-kr6}MWLLqNfU|K##7FriCz~;-e -z*c??I9;*VPs$J{TV{qiXxw4i$L_?4+zH>RECAP1e)dX2L663lyxLh!rCwfY4L2tkqie+Y_X5Xx}>#g_sY -zmS2C563abpe{EW{LcIxqK-YhC{>y*#VeLav<#&KBO*qp3#6oT02r>vs!4Cz{ET69l -z`a}QuZJnsngP%6iEhVE+#SeSw&bxC=Y;8&UDFY?R(Xo|g3p>ZeKTto2zq=6#<^nSh -z->`2IfB$PiR9*zVe%Zr!S2D8a6bm-o>4iD)#gQ+;QPIEf3O2r@-AJdC%%)qPf5PLH -zsIU=l@pI}~I6&NrSlch=!d$Or8Ra-}W){EjubgoSV-GO<1Ob{1+r2>L6I-*F2pf(b -zoU`WuZwW`kW!pQsdfrd}LVh!!J$;8iC -z!hG$CcK33>nhI$DB@J)zvWGIvC9~BGnPjAcngQ0WwVS}+pX@#e>IZP|CzfELbiI7}vD|GkbfSOd -zt8rZRUr&g94LPUXRB>Sy0q6#~9rKQ$f1m|U9JOpiix6~^8Gx((jRHc+F#_OuH!UIl -zc=>wM>R~GWudq1l0_K{z`}+E>?5~f583@Q&BTs|=X*0H%%IUQBZ6Gp)t@%CTvtj{Y6s>UDY%mDcivd| -zA0Y^3FHI9bwuI%5<*Ax@(s&~OH3I*?V|d(37P|^a7DN_0`&=To$GW&g#Y38sPU4g -z``6Q-KadwGAp-?ZCEMr0ssOK%Av8b$II$GS4*Evib3W*mcXIbvZx;0EYM)+^h8KxB -zdeMi~pbw}NW;s^*ng59tjG -z+L@r7+DB#735Kmh|hLm8@mQ!tNm(j86r&tzfM7OO3yYM?DRbz{=bs{v4BM%pogE*>>slkVfLyZ2=`f494q!DI5l>0rdEI*Kay#jvCo=66QrL -z1_NJGP+9C(?H=^z>3{#<+BtMHwC)^fm~et`CZy|!_LulAXCkBo$slHoUtFzlR&F8@ -z10pO9_W;TPaE)JW4k$;^B&S2!@hrGF=c#D8QeFX(FM#@Uk|h5K`A-AEI+2AI@_-Vl -z&PEeRAXkpEDPno-DF2nG)J)&ms5l*b5sQ7pszA5E0=z`QgmH%Vs|?iON} -zgJ~e?z;W2BKy69GUDg-Pwm({P;ml1Nv -zXe#7|ti12t_O*AL{6S%t;0zL?>J%Jv=r^^C6$cq}uRGcjl>LM9KQ$S?E%5Xwt0e%y -z)pR*|Eyb57gXzK9;NRW;=BNBqrAks>Q^wO~?sDQ$X -zbS#S?-JMH_ba!{>N;ljyy#KiI<$htPDdBw;2?#cAp~sgEB_w^MDjSPuaW}x31>{*etc>=Gu4;cEFqfChm1E){IfN=2u%` -z?_OUmKSD;gbaxWz@6RIt8=P*VNvvN3zCtU_;aNQG>&DfxNuKS05CZ4=Sv;MY5tw9P -z1=+yS6HfCexjpUs_Z&gUTM8zimUQ-{t4mJhhfCWFTrN^Vi0`adSmQmbxY&fYmATmgokJQB4Y -zAT*QPEH(vB%>#igjobU+VvH`K;eXCETk4WZ3$$FWp@;#2SnV5+v>DFCx$ -z__$&sRSC>A)s9`KHo83^awJ7BGeLuayIVO4d~>4&6vv|W0$U}PGTH9g)d&N$1!za( -zB8x_ppzhTda9hS7dd$mV#0eIi1lmhp;ygOW_#&OFXGdw4Uk2XcLrc`Lkp2^B<=+E% -z@AV3h=!P#UF;0+WJD!gK{TFyQf!07z={q0>0QZx?^20oPERP8Uf;#ie@#rmb#c0nh -zej|Qh8X@SuJstA9AQ?#cH{E=sL2s)5*`){TSfFD9YPDM00a84Dm(AHK)-;7Y;y?0{ -zLyLlOx4?bRmZ0@(O|%DA0IwFTdFi|TwCKAK+m6BVvMc$_&Xv&X>7&$*x8JN;a3%hz -zB2ii6s#@~@EnHhuhSk)AjUoX1Q`EuDM`JN7ak}%_(Cu2`x44&gPXkXrbzc-P-ZVR> -z^3D8sN#MP9?3tY)@-1TP5*N^!Km5wU{DSFrA&2*xd|FsbaHh-XL{DuN>l7SBg=shn -zetiZz@G*Aw_(O3qV5iuqs3o?JXD`$tbNSkwt3SinX5oVV60eop|1Xl*hAdxEw)632 -z$0R4+j-hGP<;!64 -z!9M19aj?r!k?K$eoDs$b_(H_A*p5OYGT=jaH-GBg-CU7f=jgMn5z^3LDoKAYMNL|G -z*?OP_34OqiygP1X4g3DwHF3@#}2m?NZHAR%Q+G*c23 -z?Mc5cZL*z0@d?Qyc~@FO}Qqe>oEZL#-~fIvv}pryzIKqweB4b=LTA0$M7y_AJ -z?`t8nXP+YU_?jV!)$y{|9pNI|zXVw)K(3p%WNFY&^^Z1#-hia<{EbaHi7J?{M~Jgp -z-E-$!%?DeMHgYa^!BZY&L2*w5Q}!qJs@hNQ233@w;AH_k-%(J~WI-#j<7FuKxKH{PqA;)*qzpPnynI6$ -zC+zG^Bq_~u+3Vrl8~Ay6nvhPxePVTItsQoV8;uPnr-Y-(qDtjV>5!%IRi?XOnfPguct(il;>Y(Aa+h4x^EQ^Ij2MoFdNr;2F2RHGviB6p_zZ -zr~xfr -z5_x4if8FeSYYCbUa-CkD%$CQNdhd4rEDW%i3t&2?yuy&ovd53@n5O&$ST8xA+m@6+WFo8Dn4TeAJY@#6(AZP`e -z=}P1~MTD6DNuauixNrXl#}gO&f&lwH@+y0%0H+}Ji+uqD7KncYRCY}Nc{br`9OB5e -zo)zeB;M@P@O556&{Tl*MCctDR8b@YLFYEhwqyg;<)E|mF8Oh_}Oh*C{!@#9glDWuW -ztaL`D(Dzb(iMQV=c@6^$9^E8-VIElxiOuJ7%5-!84KljeSc?vSQgIKSDv6Fdps;}Q -z;ACo$jy(#8;Uz^de3h8|6Z(^5w4kJL>Pph0J#IGU0fQQR3#AG*b34;fe2n?k>(U>( -z*at0+Q6Ts4zFupor`K8Mb#p{NHX|8Ey-2#9#+a%4nGT7O2M9gY_1H;71ux(dv* -zOtIV7n+e)-BJO}Dg5I5ckC)tRB<~^fk?Gc@YBm1CQ@gi>ErPi}_?%$}A4bKu50x%C -zNA%V=u!Q>B?`|SXx&+VJHb*zFett$xhGpxL_&(ezl-?TEzr2nh>Iv<(z1|Y47r6pr -ziEo{@o(Qc$iJyIV?lb!Vjx3rDUG}lb!Ch#{$9J!KYV`#+v>3k5T -z6=GKX6z<8Z2m3@(>%<0Dz^PFsjM<%E49Q|#)4jjag8X332FlMQL=4T9T?R61ZD?dq -z@nJ)w8aoKs0r?8=+{M7KTPatl}{mTN?`utWrTA+1h+`4Bp2qsK&sRB-v -z?q+E3SDEYVQzopoiDRz{6R(inJ5}x;sqGu}RXPrdrbg=KzH?Y~s~`+P-&PHtAawrI -zYQq+g*NJvx0>-zw_kSpR_s26^WkvS|WGGQEmMD((7M}1#RMDmB}5F^JmR>pEF5@Q#`-8IK2c|k<3W^ -z<2a=fzIE@sQr!!u>3(M%X-kp?OzkCV4KLs>Rh?eYL!BE9@efq*@L@??-mk|9IGY|w -z@Wke1M18LCwpUy~pMOW%LlDo9r)o<2hi{(MVVdi^fDqtw+@aD`l1{dq-hl<|&#r7> -z#YfDNoF4bD&h)o<&!@Bk-n6cto_~EV_evzFs9A6Xvm}FAb?uol@GN<-%ohjK3vV|U -zmTZ3(h{J{+W#;UuC{(nXVRg0TsxEpY{Yfa#`Q1Z=r3$J!7#5`ntD@k>d2BkIo>>}Z -zC_h*kOY)DYOg3W9UttyO)Io#kCmi9X%3tvT<;KELdL_$!7dAkqvPB|NOMg#nRcJ9e -z4uUGL;LF^~be;?Zs8pVR_f`+_J(#a{6M7eg*g`uwHSNP@rwd3UqIVHa&UBeSZI!@oPPLC9P5z4*zw^p~A-8endI{@*4013;H0dw*TQqOu-5{?Js7x!1$0hJn?rFu!b+8`N -zQ}{53Fx>RKi&27h9D3P65<7})8nCpP45Sz0Mz}@`Edss0U6yzEK -zpJ=!n&-_+_@d;GTcPh=G3!}!yfLzZ-*}r(As)@3Lk>5OzbklAhWUk49433DAW7+J6 -zva#HQ?fQ7ArwaDFo#7td?s8Ysftb-cYW)JX8^*bl0d2@M+^+m_@x@L_t?oEL30B=V -z-qcTdtEgL_4pk4n1E#)sSKQS3ZL_P%mox(CRa_W8sXcJGfq=B)!vLg5l02kxxCdt% -zFSWWSe9sZRDCd)B@9$0Xq2o43PXCwGb@eJGUKtXnwWEA=)EiVDDVIUFi+nLQoVbN~D3I#Hl9a2-j$?=Qy -z%Q`uR%qtJ-Cj3U9YIE@HYHs)uh=$r?RncXI$iTKC*H6n+-wckTpVT5Z>?cNg#T9*O -zKu2E7*Z-SW)vRB0`rov`YWn!>_x$V`@NLndIm6cpJY9~}@Mt+fs0(16@I9uZDvQ6z -zVszl1l(VoNT@!F_qF#IhDB`2o?o00H@2pN%A*aUziTY&;hl}LdIQQ@)se}rKe=gaD -zZyav>RF6UiOF;d|k2@~$SB#W6;K%age=^xGD)2krl5hmvk?Tk~Sx>9=sm0&Fu+N^> -zuC1LwP&-`*B|3>;Y;_*I52j -zX|QDHz7lvF6!-d0K{pyATakLmO*yq(K_ikd9l`}YNLstdtF2sNUT7HS_PgP}M1gtO -zT<;~JCHWVJ4!l~e(1$O^Xvs;;H=wgQa*=Isx-l(6j^GKx!3v=?4ryNZQ(uH}GY&Ap -z5H5aGVV7cn1SRmlw1yl%DpuyKuDEKw~5ZfRe#@Kg(7&JUzCqDTGGx)-eH^IxAaqqW?<9IEx2_1M$y}wZXhf -zK=m)A#i=t&fMx(AQ0!UH+T=ZvV@tqA0+c=8-*ePCFOTRH -zkj=ailuQX`?~3VWzx_Zp|GodVPbjMt=$*624v0);x3aW5mNI`RLk$-fp8S#h2AKsG -zMJ1{NBJ-esM-ylLg?hQQehN(h8h|EZ7_?C)=$c#-TlzkXQvGeofDN(BW?Vvau( -zZT!z#zG42v(eW4wlLX1|7C?(_0;=f7RN~aozl5uG -zU1B_p+g&}8;QHC}|w|j{XsA2Nf(VeKFb?^f5 -zN-i9AHNhja?Ota^kVMKTK|igToE4KP6UwgW{;#8$AD7x|7SpRtyJOPxGa-+M4J8+@ -zG!Kh?f|O)X^pUM$LUOGBMt=UK*heta*YZn(Op2LBKG6=ZbIX>64Q(_+bbFw5`WQn4XcvA@D`QcLtefwvF~-_LN8ih&YI0+ -ziw#(uB*cPvz8e|jOo+@=eI~Xo7Hbvd(YF~Z?=}0Q_+yw+gR>Hi8^WDVKeOIoOH<3H -zRiEavaQ{YU7{4kldagd!;`~Ve^80>TJR-lQi-Z;k2ZKxI0q4D~2ZA`;HS|co*J;q2SA(ZV${brX=1AvE#?d@2Z;(pwkYf -zzspV0=Kql1vIs&&%xN*x`B=THf$kdgJKRaG&fZ&M>*~pjTt3PGC!n%*YfdXptUbB< -z7u9Dq#=`%}EW9T7kr90HHw<8R60HwK1dM%X{tnz=6m2=WqK=z^^c|>DORY(bS(+bw -zPYty!hy-i3<%%}wYZSbieUB@pj3p;ThQ?P)YK?V)z|+Ab;H!DS{7o^uA#J#%Olj{a -z!5{zx!5t|H2+cDG)B)h%lpBrLr|AH6r|G@AOnRnQCnDG4BUGPsRHa6e?VaXs?Edk; -z7SQ(8*FCBew(%|6mUODO3B@F3i?y4ld@11GUb(*9?X5iE3!)}R@@}M*u}R_O2Tx$R -zJpMGCHN-Ckn8dzdcfc8CGig>_goe7;U4aY`vG+OM-R>YjY}+H@@oC`JAwfjk^`UNO -zatphj;bXfu4jX4X(e?MckaEFGrnO_VufZ8_n`a8aqdmGdLbf`2!gIz$kH^IKWK3)s -zKLv;-n}8^x2Nl5^Qh%eq`q_O4L}Ww{V$gzwZ@|lFJPXiL(%Z7p9}JKAju;zDy(ys3 -zFLDs<-i)R9CA)asKwUl5MX7RwT<6&4yG_7E2DbpH>|UfjApl}!TjuxF)5MSqAI||Sb7F?!nZxmqd5rvf -z>Yp#QC7BXOR2+#fX!w_ELYXjyTq-x#E$7li -z9w(ZARl4gKr7tqDM^d(Z^VTs4GLF)nw!)~WYVuyc8{2KI<|aHPPtAxQN%@pB+$qW~ -z>=w(3A(0N(I}{f~2E|!khM$Chb3m=m7+PfU1^@ndng%!vboSNQH|b?c&F%q<<}xLW -zV(P0{Bm2*{7-dPLjvdP!^dH -z^PKqs+Cu4VT^qdn+;M_0ca?z3(|GV+b$Rmxol@F0=zp#g9^SZseh_Bu$fj_Sbs-q{ -z&k*2zy%Ud+ps_UV{`4a?WdZ;W?`EjYt8ScbU65Vuf*@JUpLSK5cqUU!2{;+MejxNfbe17A6BNcuZhQ(=0J|Bb!xKU~|u%aq^-Z^>5 -z^G3aMdA@w~Y?c8WP-A0tO)kRN6s=Cw0=z8y3_@c5sPolNx8MpJ-4ruwQE_MSpOoz4 -z#8x&8Wv?T_o#os7Q>O-wYP~pmLn#z>KN-onF`k6>+LTluli9{>D-P{q7*lxKjUN%0RLyV+oYiw$>Z`jyO=2D8^_F(wf7C6dt+if@Jr -z9_#s*Jn1P7;7ka>$(waJ&++JqlZ)^&sOo}uk>AAL%hi_nw8lyAnfyG!>X}fO@M!Hu -z_!n}Lx_gUcSYUH5zL|@&Zg-fN4#0BcJ*E#_tFn2mKDALn_(A@pb2DrZTPQX=bRqT4 -zX-4UhsZ$UZqtE+|oJ~Hl=U%xmYp;uob-8 -z^sTw-qp1c*STUnxX$^xlN~13e&oAJa{}uGV>4-x7Nueh2ri%=vM{E>uP!~Yzq5@9NPLZc76t);CUf~V*2p{9@eC|kZ>8|;Bf&## -z5;4i}i6XCY_Vr6Z;1`!ThAZ7F)=nZkYDfJ6oQao?*kLzZGjVduckd&(quEyEl@WIH -z&(}C6B$jH5XnT}!b3vu$|C?^Lc%AbX0M587@$_f7+cb94Lc-#B)Ng;Knd~>!dN6Ra -zhk$t~=<($N1IsT`i=40!xkD~_0wfkpe+ir>>c@0$(@-Bvggkk~r~^Pha^W5m50n;u -z9gs0hxeaJ|@>DV^fYT?b@RR74RR_C}!vMpqf@!Kj4PDYS02bf=0I@e>NBq^+7CaGW -zx!WGhSTF(NGs`!2n&??&?czfJsyS85oymv2wWYc{KGWlq?1Xi(5wz4J7%WFgM0r_r -zyAGw_`;aPad*##YT@b+RBI6{CY)U5l@(P@E9wirhrTkMp_dEgfTaf(g -z`6#jNS++_h-=Zg}+lD0lC+VsCc#`42V>3OsB-;kt?^0m)Bv^`jNCsbtfDBv}`vJPulCb|0AQ!{zV^d)^c*7Bgn@F({Q$hbS&NnSk7tKB!o}_ -zo3|(16V->jb7jRhF3x8Qn8eAU+eJ4pu5#Z%urLL8H|_`xr}7KyxBlIvupo7hzjt;8 -zk6JMZI4PN`-wo}*)zvDfUf2jFzJCw$^|XekNm%@x=SV@tvZZL1hOUR#xkK3q>K -z?nVaOl74wlotEGutQH9?`Kqs9NO)=o*{q)oYQSYi;;C5v`(K&sPiGj(6~K1t+K%m* -zwOQ)s^6sG>WGM&zt5%;94lxAE^JxmG<<$;Wyv{j=^*n8ZBCB3zW+b>7o$ntAJ2hR| -z7Pg1JvPs4<13CVuRVG#5nCuNtaauST8Q>{`(t7@x3^_^wsx;IDjQ0xo$_YO-)H(jW -zQv!wptIS*G9=8U^*iv_i_y7_y7#A52KDhlemX(H_eVG|FwM#+H^T6T|0ER++h8+Av -z6|#PVam37fE}Q>fD+d#b_{KFur)S4=V_qL7id@xP+1w)@7{#^R5Bw01GgCeICd;FJ -zp@Z9}LOb+^r?wsA(u94Jwi2=aX#6FAKWHlFVk6N^UB=h_o&X40EXR!JzzFADiLs -zsGE?f2lNHSy*5C%4caI0ofdMrfh6%spK1*9E4_gY_{p1ELy}*MMW9Opv#m0%lnK}0 -z6u=f1mO(oUPL69aYW}BJRJ(uIT<9 -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 -zI& -z`PfLW=!<_3<51akWM3;Hb5Qd0@lZzTu}aZgTQd==wkaDI7j79>svXzFXOlx`w}vI$ -zPW$FwJe%FaLoURGZtqeD=7#V$t|n))M<))8KOFQtU3xk_5P>g0G=4ft+{H#VGD=W> -zRk?kOsKv_kNw{zg{<3vpDuF`T{BJGB -z_p^`?$=OezHIYrTuA8y368oO&a^^RY*o01wbQ_-hyu{{CQ6-1SAk%SWvY&1OLCVzt -zvxA-eZ8LgW>0;SPKfk`H`N60KYtMrnR6u^+S07=yjC -zC*tm4mdJOm#8`0OLa{bX{sXp7f6NaIr-)YB@a}hSY_k4OuZ^N87nOg_4Z%&^+$gZ) -zH3@HA?DV;b1!4tc;^V=ca_qc#F7_LeZ#?>~bBCLYi&Lz0l4O5^)K>x=%{O4puNBe3 -z%U9$Gi2h|Rwb|O4)y(n_XGV>XZfTO|7mL&$U`|w6i#Ng8@9Qf6MN|7egmU2##IC5g -zCCW5KlLz9vCHXKN&f$ov)`odHfaCR;Yw6JG|7ywZcLFVM|NtZs$=Te$CtU^!s -zO9ET(8TBklY{I3yBvZa3x7<<2to&Z%YhmyNz7X9` -zW$B8wsqo06<-i#`RqBiSLE9EZa~9urBNw}8X_=M30p6XXi``21%?B6Qn7eGJa;p6R -z9Ic$)?69UUBU1bYC`hPEfY|qZ08{nq7?6P%zIC?CDmr0tD%VU_tExa4pt2>v^>?in1bnuIo~GE@T9P4?Y=rO7IP6|&oUVDk$5R>YlWbU( -zu4|5mH!U`il@l=G2Fk~Xsa&-oDZgFI(n(D6_qjs652P7ByLpq<%^a}^+mniXZ=vhZ^RoB7qUH)qf)pC;7 -z3~Lcwx!-dANR?Qt%Kec%eZm<3=!a9!tdziW66-G6IlDb -zE5x8A3EWErPJ0ez62Di+cjqhl4xa36_5;d+w{MevSCDf5>?#NcgwWrAE_n?F_E&Iy -z%`cq*KF1iTipWqAm -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 -zDL -ztKCz>in_09b|_m_kjFH=ZTceP@b3GU*m`CfF^zG`w@u(Uw8MM3t4Yv3iu7lm`!pGr -zv^2ybs+JnV!mDB+H-2V^V>)*e-=67vs_uW?=R4+UFcj-Q6grlFiTA@;mSA)_vA@zRT~Dj& -zXEKgs2m9mp+q6tRPTlvWyVu>N#u~0KyiN3HC(Oz^AG~*~z|V652r~}}!+-F_-+Zm9 -zsz@!y%nH1Wu3ZM}mt7~cdEJLDC41B!nj0mTAawmvGtU0|3Ywr&?xV8NCG|AM)FR)9 -zgacno{M*Zd4Q5fRYvQR-l(fiy%!}NrevVC1Ghg?B?CCW01Gguzt(4|H+Os2=x)-eW -zS3md5ZK#%;aSG{xro_-znkwM-0>lTb+zhwLDfRlBY|TvDlwp?lO1qj5a3M-+C4I0? -zc^LxEc~H#^V{UskNR(Wfa21iI0HQ~Y(*0$z6DF{uGO><(3?18@kVY%3l}1qFZ|)sb -zETsSg+)`M$&Eg_^=eJMQxw)6YO7Cj!n(Eq7mGH+q`YfDwDc6x@0N`=@2vy`s(0tGlmj@!Z&6m6p`gDWv}9yGS2ZO?)=ec -zMaIAW{vyKo!3YKCPNr=S@8Nq|Sx*&!?56dO#(vP%`&H*mZ0cALvw_AFP)!%BD(m2u -z!l9=zp@`I>}<4cD(Siwok!V$t29jYBao5^CFD4K(eHZ$xZ}rHSYH4B -z*v$SD9ABk5esTTv)8T*G6e-7r%R1mpU61@k6D8eV?xQz&Ad=R`%ZHIy&pK}fI$ChI -zY++* -zenJ)ZToAXG;r^4GInoOf@}O}mV8n0 -z*NDCGCvbfCiS2xUia2~eDuh7mV$e=FSEd*MK9+3@eK5SWc6QSVT8Zv(2OAp#UvS2L*tlfG?mQ!LQpxxb*1c)*BZq%VkK44_ZFWvKVk-5M7d_p@-3kY?CaY#r*YPKZgIyKz_kNp3lVW3NLi)m3s4>G|`F+UjXw{wz6KQg>S@y -z-E4f+KmhtPv%i^sz_td!TB_CG+XK9(sf?$BFo3J4aqpq(7Y3c%>VO`=LlnUHAN~ -zN(CHNnNgz@>`qKYV?xj_d|UdhsLVYlO0oRl7HjuG?tzb)R2DpMHiMfI#Ih08=T$*n -zM(j>1Ofv}Z_~(c!+~8qe`9vaLLF6*c4f(ASSQ>{$N|~Qc=6V@W>JJkOM79}EYCy;~ -zI?^0DP&`0%^g99O(hHO`1vd`FE|KgD_4%kk3`t@%DDVEV^5cu7*BkGe!t2J-aENY}rEb=oIGjT%gMgOd9kSre+vjT;0?y -zB9o2U!tKXpQ-a|d*st6;j&`_uLB#$g6#M`$1ru) -zu_%RTIssf^nqUcN&L<#Onz -zt$X%93ENwqB*`7uEpq%l2kb(=>$dSJ-?s<*?9k0}Ib7ii?SJjo1<(k@pGbB+U+pU- -z00!QD)1p`h$HxD`+k1y&{l5R>Br+-q$qq>xBzv!0Qbrjmg+f+F_9msQkWtCFiLx?^ -zvPVNvcJ?kKEAuwOjo*1a_4>^B=lC9s;6QNX?XxKI~_GEtLoG -zK$kuj#Jy|V&7=|i#~bd*&FQ-i8XVe;RftZ8vjc(`dv4CY;b6UIymy8ZGz|t*G!_PO -zqXV*{#2>!gDEa+@xQj#YcxYMEZ^(SFAz$bLIXGwO`~2B5{d=sx>Sl(hCNPlSS5V7cUmUo;nhGDFJ+M`DRUOsyqSVP%sZix>m91F!VgEYPJ7l -zF;*4XeO`{_sdD#xP*bjW!+>*JXj*stT6}X7{oL3ER~e~(w*#(~5XjMAJ}|#*tE-Fg -zhLQXb*`3#82$s_6s4L6#OiU-s&sP=HM!&OKb`m9HYIB_yEyy)G#}=XQFI@MHDXiH -znYHfb9+)pw2ltnn-h~{6>aA&`Rek?P?gA?P!3QI4#(ZUWk6cXGx|MTmUj=PbknNX> -zi!~0iV_$;PlI{0MZABKnbX9q3yT4o~>+3;GLf3HjYHkld=)6`kxwp&m8huUyX(EiK -z(Ay);-FG$TZH9__IpSMaYE^I1?Dd#n>2H0NGMKs-M0*YIi8i|Q2-mS5y@(p4+f8&#QKs9W!c4bJgx##@M -z;y=G2j6YqcdAl4Xy+QN#$wjTM)x^RFnhH|0L5>=!;>z`cr~Bl~NSv9M0&YqP?!9ZTpychA?5c$uZ8=|n!zk8o%I8n%%u5qJ&wLi4Xbhco2FoxdB3uBWR5W9eA65!oI~ -zuNGl*#L?Il>^`wtBSjWxOp1O~wExCN?ewaj(b&BEOB#cC;Eodf-BwdjYh2z;y;5omaVhAvMLo%y%7tM -z(Fgf;hZ7T(7Kj|x -z+c%X!T!o~`Yj@=Vt4PV%0)B;W`4BYGw_{z`wp -z(0e7d`(|$ZjpbSut=iL%de-y(icQ~pM^S%$ek(EXov5sE%;Ne_cCzH-H?CJ%TKBwq -z*L%vw3O`Y@`F4@4F|$LpPl%*cOkQK%VOp?jt%en%*DKtD)Li7pS5*du6ol07k7VEv -zim}5fiz~d|qaT~=YmSchDS@8%5|#04MPr=HUJ=DBtfC#g2JZ{onL2>wPi}O)%x95p -zl9+SoHnUu2VE9n%yBQ#N9;shw?14#s*8(>F;S;9}BSuiIMxOGeb+>v=n1dcv5&y* -z9j?iOK&=&iXy|3oD!4*|Zi`AyaSWZa7~mh5=>V?!vUv@Q`w)BG3C55GT)F8p_C3H{ -zKk05k?02(=2zDVOq7d#Gr0K5CF{^1@c2M5qnR+Bu!U9iq8OL-JZDsP(8wn3!U-1yj|52Gbm3#6#a){Sl0^*`Xx@g&n|@nh=O;zpw#Pt~NlK -z7~lkGoCr~w47sy=f`2@XDO|KZkATOPSrW8eL!KlC|7fnC?E{ta>Sp;#n? -zs5QSqGRWcaE+m8OcZOF3{8Un|(1kHO*`=Yo&fN`%R4Z7j|ESNzG_?OwpNVzXCbWP| -zt9)d20yL)!#6@U8lNM^g-#Ymg{{rhk=QNI8k7L&d6{^qEwT=aE -z@-{Wip?OsgOa_Bc6`E&~_kx~+x)n`J9;{+?sA5f&sA3j7QN@HoH$1Y+jJ4_^=z2YT -zAv7wqdr-7P?Lp5DwFfmj)E-86Wc3*+*%yfF*lcq8SI?nUN3aV1 -z57`jNQD*<|ej&gnswURS^;jpHW7R>5c6<^j-Jw;xu~t!Ft@_`6UI64_1VuA}P5=iY -zXe>lofgywt`pQe7b7w)+>Y4%ei!eZ|uR%0@_@&r4uU*Zi2(yPkhWxPU5qa`O_b{7& -zLY4CG1nG1CO3zXV2#uu@^?q8irei&gd$}viF_)Lofzx`}_ZYbpxv2MXl`8+;CkrRi -z{8Du8X{u>>bYyzz*AoX9A^g~9(NR&+>|%q>V9o2Sdbw%kX=%^TlnCl&fHv<>YDh;+ -zlCtQ8bao7z@chvhYnX!GrhI(9{;@<>^Ukjs|1rRnAwgW;)6=Ea^^ -z|4H_u(ug*yeJ>qveX|cU*b402EAlGnO%JQ^(mIbimtyOBn(sZ>Xl_3d(A61u+qx*e -z*I>&kU(6xZxJDsAwoFQ2n~^=qVdO{yHbVaUw*ir!M= -z{Fl^M>zXc?ju~9K%F9yPd#hEO>$azP``XAR|K{H6>dtc~KAMxSjmY(-nyitu030Uzkg8J~w+ -z8rCbd_r1LSYPT#!23QCo3=%3w)lCEhGT`3s?Wh@4wZN@^~7#bVa0G&Lv&+@b^?0XMht3n -z&GGjcd*orOtDLkpvFisi?snY&lIm%|lhE?&RPRHtg32>We+$ffCJ`|6#tUrJS&xXObgB1)hAQaxU4 -zb*}u?#M=}x(*jKqYvxXXJhX-CgsC=2ndjQmitZ5&`M9}|gDcl1^DBf=J1E}X*6fV` -zOkL9eEj}sAp$Cm-x&QiN!J}xvFuWwg!Cv&8X!q_g99D#^pp)|Jc*a^uiPRf5)exot -z>1*h6*a`V>`kh<0(m>aB^{ace6l;`3s|PDVg20GAIghuv^I+C1Ort=aCdAj;_%%NQ -zjfKJtr_6Z2h^D8zty_UWWub5F%V6jJDd>82v1rt$1ipROEFhlgPs%9&@k#&0v>$4a -zXepDz{3xY@+qb=@hPkwe?t58EemWYwrbv@9Lf=Bunp4D|c%JXTMY5{AiR_YI*XvfV~62Ilq -zCSmm%nNPSe=J90Jn`D>1ODd2NyP4uRpK0b08hnYl(J$Ujq`hP2U&_C-rR6#Z@exeM -zm<5*U9`>sKP!6>ko7xS*8Z2e9j;g+O+xyxskU=)M2EfO|Qk?dn-#eH4S*PiSL<-cIdeOXMJzIc#M>(ZCRMq -zBhBm^jw06nsOuN-B^C<_cE(4zeJZ}VF?*de -zz16fbe6xFN0`De#r_sbq?3SMxW8zMu*^*geLV!hl9G&wMmWXkiaVgPhTjAogn|zqctmn5D|wj^D#|yYyZlS -z3wRE;xmQ2QeNgq=(CPAoCYRh9@Er_I$KySef7kZIz_xU?G -z?t%sZygR~Fg#>+ieC!o0_-QBAY(hTCCl`<>!daA5wE;TX@!tv-CBi#%Co&w=PP1ep -zI7y9;;S}XXzc@j;3}5e>jd&!tYg5tYUbke|KXdm-|W1((SZ*u4+^3-08O#U -z{5DMvuk#MckbLIbgA+XL)$%Rfr0C9h=8Vn&H%(BJzl0v&qtv7EimLZ=KF2ET2-^>4 -zUzP6Nf9$4)6F0>kd3cRR2-%-`2eCDZ;UwN2k9IPvlx+HpZ$dw$uO`BL+ebm^I35{78qa#`8fJ)y7jsBBws!4N1^w|t{w -za&m10LL~%wrVmZ0lPPWg5k1h|u0lG=(Fn$#-u~=zq1;`Ck&>exR4p3*>wb4mk<;wUR%?{*y5e|7g6tz -zwp8`LU=s8@Cpl_sO6yhDenEQdc}AT?H~BI>Xow!c^PiQirhi^OUUf-3Tr~@^Xc88T -z{P5=cuKF#vC8^EQflGM0jJWH<1-*fC#TNSH%MM3X&p`aC%MWx0PP%YNgL%#^`JIWT -zhxOz$1vQ*6of2rS-$~;?l`fRVpt<~78HIa+`p>RrFMo(8vf3Qz#y5!o*@kZmGcCroX1Qd2 -zS#p4&#^~VV109^yLe7J=f387JTBMF#1|jyM -ztAJ8_*-we$pZgJ;*1>NdUjL-)_T;l>$zD`mzNW{KdecP3R*&6j?smFy@F+!dRVP8; -zM*UG^1jM+xtLcH~Tw-N+`jjW{_R_)L_br%1bbiIqR?dc;NRH8}NPQ48tsBxY)j@L3 -zzRkrh1}O-ip|WihZQn2#J&1U3xklE;CPgj--foWH(nZs9mrYa7zlM#JS98@n(X~H- -z$>SrmSVeQylttI9Z;cptVuua4dn>jjccm37W1I4||Bi?TF6{(rZ@cAIW -z)h08k0QTq4wtYu)p1G@J;>lylSH9%??Aq4++AQNJtiRbl3J`+%wEK6wrh&+`ZEK$K -zrHx#tL~rZ`GVE=w>No+-Qbi`PZw -z^$XhwUlN+YsMaS_n&C+WSjlBOO?dqa{ -zAaY!}Fm3Fyee;bn*R{bK?D77EV)b$OTxSpWfaH)gGm-%lFxfD{yYS*{OyZV0rmWJ$ -zlvSGlU0D^J1Ijo+Tie#eJVB8`E`X*20=J6YcBlA)7u1HpPmj+qctUS@5uO8GQ -z6mW{dLMaPUn;b -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 -zA{mA3y;An_ZNF5D0MBQT6!(Cea6n#y0P^- -zV&h=Yuf -zK1W8g-|0Ir_-B`iY}6*6+(#kB<&)!;d(fYm$y&|3=$DfsQ@{E0&u@(Hy!0+P)vV3Fu*fSP%3*H5JEPMmiwMFBaW224 -z|3b-ZaIZed%ep5mn|iDaFF(f@(*t}s#3YDWN}2|m%(WU3Val*`P+m&1!Y$W0V5uF*InH0j!m1GsXMm4{t1EQOz*xfv<8Syr0stcpDqe%9T)^!ClCl~+ -z8(cODQYLqvL9?wEA}yz)f+iwT;&x|?DQ`S^AxE(aa+uY-Lrrn+#@cqRd^+^nf-b~i9BN*}(FXvIJnoK|{8Ae`T|6*fBPUB7hBz0-SV -zxdH)kK@-fK%Fw*2e%5>xa(Kni?4-35U_WvG+6qyRSpd{qkQ{e^_>MchZ2bhXFG7yIbB%5Q-L6SISQ8RypugyW;OLhl5(2ZD-`k)O%e#$lO_@ul$H -zP40!gDudueaNUWWS#OG1unX+=+qkG9Xijnq#1j|aM(qnV(P*+r$v4T;c}g1q&xube -z!&9QIVVP)Yzpu$1U~yrQ85$;yYI(r*cUk$3$k$@2z*XY#oO|zE@LQo;!x4y840Dy> -z^dxE-lpsMe@^;KFR06Nd{OGrZz2eIrZgVp~0f!X?id_TGvVNcUuHtdeggT*3uQl8#53DUf;4ass^<_a_3O4ag3VkXIu? -z!MDDBY%hc0s>|)IRBuMr1;JaS4ltBN7-xC -zxU-tCXUq0%ezMfs(?!3tCQk1H9Pr2wDzWv5-AE&Lgx;D(K&_#Z#2?RCE^4(MQmTy| -z*x{eSw>xOxsb4Q&alPSV*~ewBu766Yjs9fNqmk=d9+C}4{JEpwyPEJxm1K0Q1&$Yy -z=tm%4TgFLT#^62ol`G5AQTNIsVcE&^2=Rigys8XLpA;$i_IC{FJb!gIA@rMb@TPhj -zTvR`#l@4iZMpoyIHSfPH=I+e)#9&Y#-Mv$yC-l~eQc3tVDYi8U%IGei&6hhu>iWD} -zK8NjhFe#SIne9JKFzQQWa{;vk9YeK}-@(bSOGS?Hm14vMp3?WzBi0#q*N1w-2>)k% -z)q&^TZCemh_Q7GAqk2dEw=&_3s;rZv@9Ro3;tF+v!@LU}bSs0JfZo{13X;sy*WtgCr@Rm%l9r*l?TK2nyB -z0jBlL>YG#y*@=?*3mBq%1yD6gR -zg7aaf;%^Krh|^vo66>Yw_0pO#hOsH4N`kBD*%~P-EaB4G8H|a6?bX5F3hgHdaaQ1K -z%r>QT7fwPn6Gl1L{JNDa#MAh{4XCkM4yE>lqHl~KxB+EQZ_G70E -zS0=&f;SJa^%h@rFr=9+0F5g`k^887njP&n&aCKTnzDOGnV~1*&u8qHS9dhvW^%WcX -zjsplQ=tz#1TCXAC_!o#fYmcdHZybDasBNI(QZjpt`2K#vaHJmU0vM-{+mE^lPIu!j -zSjZsedYRbwNG}9QD`R7CSn;2h!CPu_HP~Ak)dh-h%?v3rn)KJve-`?xQr>F?NTsJQ -z{)G&PX(ky_KBKNAtin(SZZogZ2&ioRA#PC3D+9hQ%%?=(%cnD+JhF+B`H`0#h$aR(|tnTnmgCDC?~l7?-wtY|nEKBwPcbVo~9h -zeFHn&6tQ{=*gE!1-!>D`WWvm!Neg#ov~_ -zsD+Ht(02pJ{JtP4w0UA50oS*Eb?petSy*krFOQw>R5%CYV%ENTrR&RWkCQ9$0^r|u -z3Gfnn_C~l7A{{>%)j0~n5WZ@Rklt;Xs899aE;+i>8qMqJDp>OAyHH7@HPXKNMr(+F -zI-uWoQtiU)+KC;&GmVX%`BoA166Oo2hLi41yRbVP9ZOIYFEY&pF5bnr@A5HN#$1cU -zw-rU%C+M~>z3bjx!`SWCp6PU>ZHjnBDW#zNvkNo0> -zBETH*ZnZl>gC1ItP0;Cmd&&`>PPq6k)180DLvCCOyvCxGd>N%}w*fHEKywN}<#(;4Jj<+s23*`o9g>{s`81-}kj) -z8b^={P)VW1eu@Z$4xW4C=ln*kei2TswqQM<#CLkT7rpVdm=wM`@4>CSJ(tIVcVj&d -zs-3?dX-?6j@q=M$T?@DX%rlJopPvijZ@NquDqe!U#M75}n;+FKi*Rq99aRdn*Y~%t -zpno@g15u5^#8EYf8Uc)G$w)BLEkKs%@n@N^NAn&^znKiJvA!7%7SsQqYV+T#JXTH5 -z#jds8<9zsiA*VRB7WH`J9~=L6`?2&o+Xn0h4c`QprN85VR)Ec6#_dILhGM|&OPghb -zkw*Zf(IGL3;Hw%JM1cze1KA3E_!hiPUDR8_R@xz?LCYPr^34aRRuGf$ouH8lM|&S` -z09kqBPzp#8 -z9njTEj?yfc^n8|I6q$|1-@0TmVBq=H{bx7#mtbnH)A5z?e*V2^-L^*++5e -zPk{T@9!p0q5HRM~tCR;YI;9o7y+OYB4J=2BReaKZ#Bu*#m7H~}^-RIYaa!v2>a6R> -zOIQrYEUf&Ily9{%Mg^1S->2X|a}l;B4s25X+XWORup%wSPPIJ*PuJNewy)AR_UgxU -z-@koJZK~93ds1CadIS>ODakRRzw20YogGas;3@iMAE9-=0x?+vb+OU6I4@bWiz@5O -zOY-gfGz0eRKb)e;)IzHDqI2~P*Xh=*ZtSvq<)urw)jKk@5GClY9EskGE!4=z`WZ&h -zWw0I1dn!3H@}B&ER|jlV50+&zVv4 -zZVQN}uqTWp{k1mhI;`?x2$3@Kde=5VYk+Aq)c@-hERfVM%{tqU5y`Cf`R6+650UuV4^H^MD-X}7;sv_jq(nNDD)HP6a6sWEPsqoZmSw}m_UiNyf=fT -z>Btb9k(5NBe{OZ?@jFTlvR&ZflbF=%n7h4pwH_KTBA=<(jsIMMQe~K_0z?!b2i1R6 -zkUJ78el=I!fmiG(vPEnn%%INzQsR?NQmX8lMSl<8nOCXqawsonVVu?q!Wj*ay2El -z-P}qDJhltm@ng+R^UD3%vvDD`@xx>L*x@JIeey -zG40oa^_d_J5EGt{@tvuj-d5Ul1#46|g`LWo--Vb4Xxm?!yvD6oC66urI@gkkCb+!f -z;yZG653ta{PRK0<<|36^@EG4h=`_ZfYtP{+l_+OTtbSG4HUg7hmyUbpObZpZH*vbx9Rw{e2q%k8aW}V!b}HCv{GSss3oGVf1ACKl$v9LD -zYR&iKz&3|!bIG+#hFeql4^TU>r3(Jt^(GuzRWN1s-+dW6EWP?THKr4r5XAaR -zUJSq8Urr^0aVJc+cf9ucL8}N45sn6=3XLd=LmMCv)zwj|NLW@N7twBS-Lmp4k~*C; -zw#!#;Y^x%jl7vN(@CpQoc02`nC(IKQ-2akx*xhApn?d8eNbFKPy}c!;3r6YQ0?qX@ -z@%>r=;;(?u%)a6wIA&E+E3^ALw!{WspJV|%Sy*;eH?D5)5*?k0MUW$(jUR(gynD*>#k^opF6(#70GUkM6*zkA2t@) -z>40sQH$1#w=>Om&l|_wXco@6XF4=I0lAN3ROg#ggoYpvSk71NI -z{{4bLG01s-MIA~ZryB~gvM>+_W6@q5F*V4_>;9O;wsDzLoLM)j;fltRjW?Z%u?Mfb -zLm|*CPz2ct7@KSlcIsM}$_!eH;HP15VtCjsf@Xsh1_5@4so6qSxrklDm>EJ=UZ^QR -z5Gmym>*gC)!EO-hsRRZGS^0z+FWaTF$`m<)zXyZ6f?9Q_zcO(J$Ldq(l9R*YjF~64 -z$xc)ByqYmZuAeXl`u;bCkG1755uZv)z$@IlbumqI=JOk_#D!zVjv{cVq*2$$x!c3Yj-@flZO}($E@gB$ge2&kxRgiL^=IR**@AbiwV^bsP*z!^#czv0tt|Eg96n+9*03Yiru>t} -za>2%?p%%$zZJ1`eZ}oTHNe2&We7I3A_Z{08pTiQuZ%C)U@qH~x$=(TGUAO5Di040T -zD0V3ATLFUn_-rU^w}gSQYn87EaIu+^IvGz><+6&AXO+-pB!NqL-^RK+0Z7~h_gZT?`NT&>4P^B;K -z5jly>&993iD=vMp`Lz)j-Zn7qT4}Jk#>6>`&Dhxyc!a?WiqZ -z4ezBfM!7twsBg$YL#L?K(*#tQCh9a -z>{Qf1jt3vtR5#yMmWO;jKR+h1egCv*c)5YGr_h|Q+FrBP)n}- -z^C$So>%~vvT!Tkn1W*S3-e0FiMYpez_eu1A?n5^4mKUec#X)Uj)Vkv#;^;A~uo{`}f4P1!9dqvDA6BI2r6Z@a=NebRMJ{`7;MJF%j*J5xQ;kX&kX7h8iXo^V!p -zzdVa8_!a!D9#s8c`q+V61l+ZEk6VL>_Q7Umkm}}{+3EI$j2raLniOVk -z(pFRto-PR%F?{6qR?516gym}1mykJnUX{>sg@D&>UETwoXT7Dtks!X2KaUJ2D|Cml -z+j-_se;@AzSogS+8cPzwe|pg!07tNAttD$#_7aD7be*wInP=#m0t@(Ux;V?M!RpIa -zAE+~MmMItIQ}r#|c@Dv$1S1KHip6Sj$K~USI9eGlk(O)5`j3#o8!mUMbhRZ9AP0<# -z-*Kiqmv4T`U?2E}?R3GvE(Xw~qA7RfzEfi-qZwKrW{i!iVfZR6`NjO(jl9@XhEpvH -z3|sz~LwwYcxbwBhB7f8>r6d4*^!-R2=Rc491BY+?hJEQkqlfnGcoi?SCGaOWF=hK6 -zg35xIrNr3KhirlE8*Pd7_t%_Z2?!)Ot%!7$@;-38z9(svwm%%y<|VfqQ-hXz@>3QL -z*rIjk_%q=k-3&EIbVq;l2^F%rRz0qvu?wYz`uj#T3%6)QVCJFd7~d}O$4|CuN|_cjICl5BYcF2L>M^#?a?bFih)ZvhFZClEBO&@|Y3Xv4_v#P>b;Dfe0ob -z2tivs6l~_hG=Ae+v3a_SQ3+cIZQfC=Hm_=PY~(~fkN-Jo>-+*}%x-x#m+bh`-W#o6 -zIOG~yk~A_-yIdu@`En~R5J*n#Ty)oxq)|+!s@%ihyV+0r)O=Y&1g9h^AUC-FaGchB -z$&EoNRS -z{i3taozldYK?DIS;27Vt+iv%?rt(PNUh*@reFf%kVD;pKb6WCGsK#q&-bB-5G1?|| -zw3=`NYGnbS4!81v`4Wj=#xof@7Tiev -zxAtk5<0%w$&(cHfd^d6^$w0x=Iv1jFm0Twrxt|6cGST+`7I|#repDXZBa57K-h=R0 -zR0qNPG-xDf!YJ(Z^f4vSJBK6)I3BlrbLDLnS$oVNFJP1|k&qGu -z36Z50>DomFk(QPcrB*^fQlu571VkyRrCX5hP(YfcySuyd&V%3kdq4Mn-hbfPi8E*7 -zoH=u1<{M`#EvI0!lFB?y$iflkrTE3YquTk)aIa2U2cicNg`L3xAET9gQl>AxV~Fog -z;zEg|7bZY-RpxS%KcvSJW!jK*b-3#p;@NuHc|mhFnU&B?a(u!c -z_{F!iJZYbgzOGa}_{xiNF!azJuSD*Eao9fC$^Id}ge>}A3$ax)PVTwA8GY73%--0x -z=l0%KhZjOV`me92w!%E$t*pGUXQ~ZRpD*|>k!J{7@XEB@HT_en)17|l>ol?n>3))1 -z0x3gji;~JEl-(Zpt2r!O4T|2Zq+j6p-Jpvb%lyIr^vOnjCx+^yqu;kQ3jG9GCWVzA-Wfm0nf23 -zDLa>QWw@oDwm5N!-%6wiaL04u_CnmK)bN(c#odxMisWR*8d|tp*@rd7lCKa>hNL`wS}20;CM3*^EE1lzGndWR;iM5t+`Sm(Es@%xgasT$xXGI9oK -z%Pb*1Rifb)2YKrofE}9*r;0UV`&LtL7A7%5k$cSr3ZkQpCnm*F3DY$`A3y~9gEh5E -z;n!5#N>qt}FRiOp`B$cfT7_)B&K+R@0x9TYfg@W`fA{Udlb1q=zvVGiOomd|w$_Jv -z_3x&=O6UoJlrM8m9HrTtVzrL01S%eesQ}QL+CY{}Wvb*Y@mk-~-5RTMwK@uyd1ot) -zm#*M})fd}7;Gzqt!PZUU6PwpdCo8o!jotQ){hv=U6+sijsX6M){AWSe4fY;(?@NSn -z0lREv*pE`CpM#coJyswh^WCG@k#^4thf~+)$!!jy-6;Dkc!oImqRcdJgz%;;ije^7YK0P5(BN_DcAm{v#o9UsKTRUszo~z{*%H_9!87Cz?JxkD+&z#|EaO -z0i9E~qi01gP#rce8Tqd;Dj_-kxo_=h_zjXiK!E|@P}e{3C=P&|PqCxL=jfW_ReTTP -za`|xFz~JFRAguy}k)E&9=mBR43C~Z_no2_yh#1i+c3d&nBgr_dM)cdtMUeHg5QH@zmQ#seR-mUcfFDx>@BAc5#UT$;bKIr&4RfFy -zw68Sq?z=knYw8S%Ln3))-||kcOi_O*?>~j6L94RxTDgw!{?OlFq66RZ{z2iDoE6!) -zzIrkZIWrBVmITt~E`$m3AVT(jPf&UY^^da?L8B9w`<^C$g2b=^azKB&rdB%`AyBYr -za@&;?T$~^XHSMUs8__AFt*2(4J>{~a4i4sPY8OHGc~1+5cP_G4L@^_>ykV?PnX^5% -z477>+z3jSIMK&xfmEQ>b=@0fy{^{`^2Hel~g^`G;gG?)nPLAXd%Jfnos;Z`VB%7B$ -z)ZcyZ0-0Sn0bW&*1{bs*P`+ODHFj}h6C(@d=Mr`*Y@y+^cVeiqmf2%s;Wwh&@OONK -z8>edT3NykWFWs~V0yAJ$7j_<_i6_XdFY0pZdyFy~iZ~ -zApc(5K%@7kh66Qo+K-CG$OerB^~mm)kl3DRo4ZN|nJERHG|TCfR!d}s?r@X?XV;JN -z2d>;+F4Kp!y;=2dDYr;q(Iw~mnj1(FXq-?L;q#g~w{dA^GP_y03 -z+^euaUiLUriC(zfGdnnRFxJL~(^kuAIiq^&rDT1;1n@7)S?f_nu*3%M>jEowp-*tu -z8_Odk|H`}7+bQ@Nl(Vf?<6)8ZX> -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 -zoP)M$4qTTYp{zK -zBMiNoxMKDLwEB+iZ33afaj9ImECmMz`Y!J-9a3F*UDLRL%OhvtFNH=k`)6Z}pU+uB -zj(Ht4Kl-&tqn~Nqt@s;|OYHYmbyw^175YVrfZIe(6-Bp~AB$+5*3xXu>L$g^SjW{D_+72P;T^+i-B -z(7Gao!i#>GHw|_1D{i|FeCzOnqu;nb5PL-n^c6j{#wS;meIQoFH_rafFNz3IXQN4= -zgiWQakk6)g5NYXSOqIFvsI0=YNgK!(1h$eA_++WgQd`-snlA8KFi@;6)n)|_iJ^-| -zI~MfXFCsk7i-^*JQX(R-Wvy1t1)Zj+S`L()q4P#|rGMAw7%I`EKuxXM-Z-~qD3jA} -z0dyjZMvut%9Vj1p0`g&YSeb0#-4U -zS}XeAS(tAur{pQvo)st7o$jqKSXNvKx<)(KJTG5d?GgHlqnoqcZ63M9X$+9Mv#pVm -z(;*pEf-C}jz>e=tZQi^SL-kRckUVIwBrx+s>W$K;Mtx9RZqA9UUW!_in%o+TKPc?T -zr>XyY;O_eaphg4SU_YcJzD&*5@Ru%#cnJ;6lnI&dFP_*tfnpY$8wKnv-0Yo)?VDdg -zQaKI9T?#^tM7u$e3wN7@Cm^gxU-6wd_X6YMVG`i{puA6Ma(t=V-afs%xCJ29z?NDD -z6U$SpNW-q#X{WwA3Kp8)Whb}G0b%8P95%ARozRZYg(dbw5fZw4p*-prEZW~f*5Sws -zijriXHd=YLGFaju+2sVHcGitfj(@^{Neslo=qsjA(m`IIgN=Km6mNlRdy-dR%lR^4 -zHWV!sADB5}NPW>OjBdY}hqPn*G~XvLOJLA#LSSsnYiaghoCs||ftBi)%{1f?|D3Cc -z8Y||^@Z70_LXW_&VC$(z8r{(LY@p~yA0J`n{TbCZ#iqa9s4VffcSLd(5Wd|+hZ7OhD%F>_1UzP>~WEc2toiGy| -z&RphMViI)e!0nPL)OX>o7S(l-!>C$dk9GY|PY>r5y0RM~}g -zlo;pj0a4i(JNRUiPA*d9)jdrzTp~m+x!c -zSN!RuO&%=RFgEN1mvGzxz8}BzNakSegn{6uhzqf_(|s-ZSU+m%X5{=di63-91fTJQ -zgOrcoZRuv(-c`c>4eA6UxQ`5oFm8|PqL>D8)6=`sD1-9XL-N8uz1=cOK4^vAvM8%% -zU?dBrG4A0fra{<@(9e$7KP!O;;Lxpq-AsFTNYwkEIUyM=( -z(F2j{670au{Rb@~#zNsZc}+FjLxsTMG5|dDQXU?-6kS@XvAvj~T?AYgch0O5TN<sEg*5* -zsb;{g?%~>Ll_`Oh>{OrMuHxB-*Dy#z*fmkV?|o6!wRYy>0i7VR;u(>72$xkz7z)eK -z7kIVcAN6Jh95vCqy*Ald1D?2em#%Z0KtKVmUC2rs%i6s9L|3RDstq~A{CpqCY2krb -z=mzLCUDYZxjZCU!Yy|~CcRTpEzurv62LfXG(#(%{8-VCQwMisP5~M$nK=>A$raZ7* -zy=T3rwYUCzxd*65T|AVjW6V;xTCKs;H{e&WAzEA5nh_f1W-b~Abc5SEWi_RE>7k?EvwLtg3=!6Hlkq0TQ_DcgzIQ#VRkIwQ&2nTRc -zM%m~?mmbS61SX&UOW*kMOAILsA|z(pJD!<+iQcKA1OWxiZNSk2SFq@>9iKtuNdfa^!}@rOjn2Z3A(pu;<( -zn(sD{UtK05CbIzD7K9ZZC?>EGPcIB{=DVCU=j?t^6y97sW01CFT&+DYo`MjjV@=y0 -z$PpEM@*y@G{m-F^Zk9xJEJvd!p)HyD@T}~k^JxG7YLqX17Oepj1OOG@<3imCA2FRz -z2Zql7FRxQ!{cM1CI{eXh@OG_|G)w1#e5RSFZ=^PXW$jdjaFe8Id-9M1xF>& -z2Z!RYHuHH+!FYx$2xU_Vgoc)t`yE}2QO+kENc`O-`YvzD~utKAQi&tZtF2Mu8&sk@X4tooYhJQB?FjOU~4*JJvfO -z#HQ6`X6VhU{Jf<;FFzLY!jpUw1f*i7{d@LyS<-(=O4_5J$d$&bM?7FywKN%@Jk^dS -zROM^nZ}rnMTcPVrNg55T<(_6DplU?euq4LJ8mBKk!g*En9|NdwP!DWFW~8W*`ux&2d0I@!rAhti$)n>44*p^VjW3`E+F$B -zj>>wLkvg7Z!c}vQhw&2!^)gCF&lnh|C{m*tD`N!Lcv&wxf;aGwq<<_RE8R@SBYNT4 -z)D!Yv7;x2;WB+91)AywFm;_T4EFCJ3Bx4hgk1QE7hmnA*8@Si-uaZ8fgEyV7wn%O4?eS6SB>V#gp?Me!u -zegceeBma=eONG+XgQR4Ki_IA7zFG&mTMLeh301VW;4&ly*pOLxeEYm(t_1KJIKv@a -z55$`7HJ_r`?*-tW?-t6vUKX&O>8*qL@`C0cbf{FYZG2|m@@MHl%P5U`UyZ}CO+wlR -z1!%0VdAEM>kwN6@>9MFE?UA%jJY)UfU>@Uf1rBKQ>2BfWgQ3w0Zv`-X9gG#ogLf#Gy$28FAR1)(DG4!%SW&HEJ<8B3!^4Sd&gsf^fA -zoT^~(0>U}6YJ#0>^Kb~JbovX}KdnwBf5X6($bPC?e3-1zFN=lqHG@Sa{KrNjs}#oL -zZ(Lb3%i#)RhTa&TSv52=c}yl7!LnWod8XQLcoYdA+P#0>_EuujN(o(GP#ne#i>Ai7 -z=3`HFiaPm#LiSJD2%(0%1TXK(=!6|;PnvjRw5mqSaCp2$ndW%eQJSbeB6A-YO9V68 -zl0B9LUtK0_>=TW{0@*S5ZEK^SB)Wf9jw0} -zNh`z+ci;ekMst$G>p<*5C5U7aG9JO=F1Ru`?*fvM3E&s5hgu>)}~B2Deuhr -z8~4s-m^@)JXj)Yx^#gM%SfXFqvx)*Er`>LTytp;tsc=~k5%1&N3oUMrtPe2*%t>Xm -zo74!RBOhti{>oXLw{P!CT~+GSiT$8RRtH-#Q5D-v(RK%jG00Hq>)mz9btQR(jbc~V -zcy)WHmkXl9nxvH-uE#68G4MohsOjTXar~Eb056MxtZJhLh{k0CvTAB4VRBc*pRqGo -z@XJtp2APAnBIBf1!`-99_rQ(SontYN`oBWDw@ib(ok?)`uNyVN@J2Sc9Xab}Zp -z0|C<*TZ5foocUCmCtW -z&1!sAXj#fVTPw&Lq9Y{3lhT-rausl9;`YiY2^o&XXHxQdjVb-pz1_t>URfsC*s7&c~Yjh~akIlpmg4POA3 -z2!4LD+2^DB8K6qd_%C}s#+d5ZJ;58|lV7>Au>9sL-Ia2}w_UKn9C;^MlzNsqeZq7m -z&jT~e-j-B!?axZgEZL<1wCGf+Q?bkAkW7=>Ox%D$$@F_Kp!vUTa)A{9uqZaBbDA8I -z5YaWOI%Md@f}l(IDgT^QV(3lgQ-Kx?S5{Ko(&dPEH?hNIv-0yP3OgCiShk3rdaAAI -zQ`vvZ?Lbe{p>OLfXABFKk&uxTh!zhPchLrU%~YDFU#oZqJzc5eg~5vO(O1QN>+Ry& -zP=W?s0cCY_2X1X%C!^g&3xc&|8jvMWS(QzA^);@e-_?$gduhVGMVOdmfqpF!v{kgi -zQCLt1^9kTw3a>xeza8MYN&+!?8LHbs8?+q^|6r`I4%)a|gLfz?9s%;1R$kj-C?CJ5 -z$n>WM`&$xcMfLoNPH`QqwSav)vfIdZl}rWQdR4gJW1iw~qes_-ApTXGwF?q-{xGK` -zT(GZY5Z#$^^@DQ!KXA*Z7k(anSdNA1_9#k*!$e0!zs+y|`2I#THlT9qm3H(S#QQ5! -zM5@}Y>gW@E#(@{gfe{Bx=1sacer=LC_`zwSYEfdkO_yTf2F;^6b!xSJFPy8zpa}=A -z8YZ*+HO -zET5VX3;>vbX%o!+7uHX}aJx{aE^s9^)##0NRf29j+bx6%PI63cr0?8@e%U`K8y)A| -zqlGw5H0out-JP+R+egwslo)B1F1rNV14Uyr<68K3#TU-k@24oJ1Q3(m+W11XCSrEX?v%54kD+=6UKeNc!MaO`*V@f?<6cS1WCwRyX*Ui -z&}r`zHZ*DyJZ$`w`1*cC=#iJQHIK*LZU@z;^94g#^btC+O^ZM@l!a^&TlHhqXX|Sm>>=keqVjeZ5vUczh+PwMYn5r -zVIP8(FLEUW{DgC8L~1!SCla0}CJ47nAnFJuEHfT_@9N8^S}825R9neP2x+K&I)%e2 -zME(^~h+ix5ujF75?OWFzVQO_|dN6*5r#RoD!k4>>oaHzjcs8 -zJOgswaRb@ROXCvbrQ&224<)|)n9X|jlnOQKYQ3q1@7i=JT;jR=pc-qd{}9I7uwOHK -z>YYx!{#AEISYL#0PrqGyOLUi!rX)4w*(-V^Hm5TEbw9xJ>QAN=|%JyS=$gERNVA33DUnd?#H_{UKIb`}Yflmiq`M(G=*8DNYL=L+-n8kh|?{DzuS!dj0K+HOyFK*bDc&XpSwt|ax -zqD4j+59ZV~yE=dVdNN|Vs?)x>AEu43`IwX`gMqOX5YkX8a`ok`Yyc0|jk0&2a?Cc_DC#G!x@`g-x -z6qdFCk4>-DEul8GuwWA!zfK;j-!!`^{z?|LY63T__`P>=MJzj6t-1yHWV2m%jS{j_ -zoEbek&wYo-~S<)yBf<`eVf~S-)9>jTw7Suj%k?)x9+ahk(i927}?G -z6^Hw6eZV6Ib{yT%HK%wD*D{{h1aEE+atSSf?j;}q0K-IMtkRaj?S5K@x;FrZD8UIU!ITgSgJEfK9Sk&176}?}5nlgOp0U6T -zM809M8eghkBm2C#SnRST!JDFfZP8#a?%sABW!1p|JQ1X&jF4WKhk#A7d0<=8hM?Xt -z0?2rYp|#nyGVM=7(eW;wahv*0sn)>T9-cdg;pkxyok -ze^+mQl{ptVlYkg5csw{~Ku9L#xnt_fxd~2dCwD>_(%8acb?|_I?DS5uS`q_u -zFI@n4lqVX8AOX=>P%kb8l@BoSor|Aj%~SaIO+#RP)+3vM*qJlmc0ftwN2`<`9&g2S -zX*3|u$S%Pkfrj=!>QJ3Z0x*E&R -zl_xki`l;h6Z{Mor1P6?nGmFN3m(dNWBwfB1ZU0B^&GbKsUkWE#=*2wissuWU|SevYGO<{D_lRUD)0&@UkTte{2G#a -zsF!ZNM91dq5=3Oxp*gaKWc|`o*`0hZBV!j+&%PfPv&6PWWg*=+Ht#Ku1^ZPjHZo?m -zsqu8FlRlgOt+Lb-QE_?82Z?K>)_=-Hym$M17H%^{bYrV&pro#4o7-nDEryb5y&!`$3B0M~sCiRO>Gif`m`s -zG(HPTVeo{dJjlVs5<#(szq(E)wZxi9Z0Utj!X{_>92@5upB!gB5z~Ssnnit&f{aLt -zpd`@3s|#aBnA%?G>Tk)_Uu(<;8}5ZMOuxzJ?dAAnwfRwn*wEiy3?>f~zC*W13Ug6{ -zQdO7@A>0cDP!a-TMwZ$hiwsc^#qV|G-&k~gi%`=Z^}A+dAul;8^$*EMHv_9%3G`WM -zY7@^E-ev2ZBONNG+<2TNd45Zac!y_1pAs*e7kEa@AwN?_Uzf9SO|5g4^ZA-JLtu5kxu@tQgE;;W$L|=@nshm6P -zty$l{Ym4!2g*-DZ@dU#Ulr8t;Sa_}`k1dfDv`MKk(R<SPLWJKciF7VA<#a4}g@xp-om -zpImtgm9`?v&G7x+(vv?eFJ&(keJGC7GsPIYPco7*>J+9gMh<=JN(%Nvu`YBJaN0lR -zw+H*u{0ylubx(QCkPa~R43MsCaq_IK&uU)V1asv%a0B!7M1XRrttK+bQej)W50n%6Ea>{6?}K{{}PTe9HsvhW&Gh)Xc|jjy~ooCIzA8=La^9| -zR;0WavZDS4^x>yC;~SATIV$FrmH_UC2SZ{nCc|J(&4+iNpjK~C -zG^MXsJqxWeYpvqkc7@_KGr_NIVuaeHG_sDhc$n?^?9(efJe8l`z3r?q+njSt&wOrn -z3qzHXE9q7Kz^YAR^lJGBy~kfCyfHcl1HQj%Y*#rwbAK^o7g<|x!Q}AGC!0!HPvDoJ -z+@F3rpwf}MkvjlXI11lvi}47UR6#bN%g5hX^?zalO%3a`#dWf}H>`x(fG%fP$S1Tg -zUU`K-^(h5~=D%JQ0*9QdLNL~E!vLVl(<^{(k63;H2teQQKo1)S9DPhm@POd|4?ODs -zU-Jq)oLR0+7b^P?v;P4Cm|+oIb4%i$=5%@bh9<9K&*{f1RTMY|hS~P}auG)kn-UL3 -zmMj0fN^!glkA5i8e%G95i%`3W6OqD$&HzW)Tvi!D_f^a40eF6O6$vR4%Ds^k8J#ej -zx5gxVaDL%~3!j!(*H8)j9nXtO|Fju18b^1{?NRhxpP^ZGpX>Fu)3=_+g)bsO51YTo -z_ViyCUsx#TDu9EN{;TH^8{exSb-+z|?uEd6@-LgU?5^ikd;$p9!gYwHS&gg2?C=YXWnZc7Yx3ZMlt=!sHYBnzto)*C((q!?IbO_eG5_=P<2n -z0~KTI5c8ZZz1z2m#Hj{hTPo%9J9vxwBM8?ilwG(|e3CQ(6 -z(`lRw4lTJ8_9B>NV*01+iNq8TH`Dxf8)ho{a%3ZL;aS-^i}|6bQF`gW3>pz^v6{eN -zvx`e;>$g~!l-aC2nM9&bPji1I+9pP&d)*As186jI${C_OT)L&U*;r@g44ZQRUo(Pw -z2>UID3HUAe)EmX**=;215D@d%K9SIQu)4$AXUK=H5KBx0c;H%GPcSiB=N-E=@spovFs-tB( -zsoZ)3Uh?SLAUR5Zes}q;5QF!-hlzVyOV6I+)KVR2jm=yQ#QWGjFU#b=A6AB9_dd0s -zT&2aAxZcR2p1S(pSmhsJ5YB4+6G!vkcr5M{3Ob$q-34WbsXJt8Y>9s#hwXvxzUc;R -zye(@hb-ay+mpX!I@pV{lWyb+I??e&5T_9k;5^dbs_M)n%TvhE{Yx82An3t5uA8!^u -z55!pWL_bdalQ+e>tHfPW`)t=Xh~fyzHJPUXH1zIu8SB?S$?#`eLbI)7CVFWa*og5- -zEiqw_c9Mf(uqd1m8h;(L{v+z -z|Cn>z#PySG?)ZT#1SIoRO83#c4r=D^Bv-Z6Mcf~%-i_wy7DPddrSn0Xd5d_!`Bu`S -zMVhe4Ln5%w-bUysIrgX)S3fQKeUCrTQXGMCxt6lqoez(B{P4Z|2^HK~UNQB?Y9Weu -z@euO}35yHiwZ-#uqnSLiIE4DqSZ?9?ScD_FTY>LBrvSAOW!SOfr)sX;Qvh5icjR+S -z&`M$Ai9``M)%p&X1I@}tj@sr57!v@fv&ofc@%UZsU&6D(@13$^VGNDZZaTOI_S$2_ -zClGA$Ww)>rlo*Mlo*Ebi*JU>c -zyeH0BA4c|xLUf|OI?sN}4sLtA}>}_kj -zptA7;FcqSWEQLD{Agfi6V()T~x6+GFHB -zCzayz6&WHYB^fr?8oLaSbxix9DLF8h$6H)na{q(0(3vl(e4My*@-G=vnfLXiK@1E+ -zvv4zQbX1=az{C|4_>T}0nFTi-u&&$>DPg;*9F37j26Q&>-+zDx>U2ZYuwsEZFFbE4 -z&C}~&ip-_JZ^c)9f;#IYSGB6(>0Kk!rWACOwQi8;0xFRs1-_@J$RW`&HdCm_{rluG -zD0Q^W`vK%IT6hbcXayIWify-iV=U%)h-?1Zt=ptS7AgqD%ecvVJIjNX({Y)ZT~1u_ -zvp5%`Kq!3oclxuLVtee7@_oi?Z%+~+0Y(IyYJY5@S|WPaeCufOnIqf?LC0V#gb9l? -zJ8f*T2g}Fz!8v){xeif+F-KakcFfz~74ci&CX447&-8tF@BrK{#t!my5)p&COyOAj -zh}^~MMO0C`?w9XE6Wso=D%VZ9-Y{kBEnc(L>Z&h*Z#+ZQ -zjOW959nv<1r*aZ}-9LO^`xBNr>ly-z-##evR36%3)#S_Ljs;q#hos_4=(V1(!3_$i -zY^n?wS3z%0v&VU?aIhJaot-gmj+|>(nmBD0KjCoKx}?8#Rm(APobYDgRHa$vY#jOI -zhR$wx1_tuevEN_5kfmGVC}GAR*9&t^kg)J(G&Hv=xx07dCp(>NGG;8*LNZ^Gt8ATE -z;7gZ&xY_R4ZmdqC-B7|^v!2qJReqbQ5T2TGGMDzr<^&MulP#PwH8|&PG*C&oUK8rC=zqX(>g-SXi -z28<}^&efOjTV*5n&&N;6?k!JkUqC@$nXkt8pp)&e0w2V^7HH7#TXlR55Ke6 -z!?CV@>Y_?7nAd(Z)^Cz5UV%CRT9ot0LxthXZP11aH7c@s{y4t$^j~&`r&G`bJ$G%a95@Op#FLmXArZo+?cpU$#6EPR|@ii0Xcx$aJhGz;IPWeH -zpQ+OWY}Ls-|5}S^-e~~X)1v@b!_1O>v>haGH6fqQrU-c5Yb8B?FgvgjgaL7Nx6gqm -z^!Sq_pCCLyg|u4>d4uSM)0`LA=2-%rH8j~7l%K)URjjbdDe&Aq*>iJ0^_k+_c4oXQ$<%Hc;Dj6?7; -z_}FF4U?Lm?v*^BfNF}=b^b9B#J7F!e7w+y8i -zD=uT$S6Bn94pd_2#0Lw`+%g-VN!oZ~NvN(eVkWsU}6 -z3m7b;MlXi^iODFunv0|4#6z_y_#sc6Lb)Jo3~8RgAB2xE{i3ONUF=_9XUclsZuLI> -zI#iNIFckX_mS2+QvByR;9YX~!*)aXC(MB^y{vyR2r`v~fW1;v-_+*;gW`bCN^2sXTOs`&-03FhZ -z({$m@?7sRqjC>M3nEkgAUBQx(`buh);M#T~T -zoCW9;44SM3Fb}J@8JPjg`Kv6Q_9{50+n<4=C|Yo89s-T)2b+7V4CzwyhZyTlQI!1G -z_^)Dav)kRk25bfT?SukVEp^)4p{iQLP3<-$pk!;7Tl53bG+g+r?3`9P*08!z$l2qk -z?aplNy=@7|yFss$?>sU!9`*6Hw@T44^{zt<+xoX3P^pfRC?QC}4)505;@!a$Z?h_` -zgN<-b$e3jASU@#vLgWY{3edoQoWwKPw8s@(GjBg}G$Rh?juwRCp1% -z5_N0-ihAW>G6crXprldays`oYr7b8Du3VYS%s(4WVmj11-AIWjjEJ#h7P0!<%eqwi389lV!j4S8I-b*LnXK9B_+wdznQ -z5ZwXxUw^S^)Zee&?dAZ#<7iaxgsitu!Ii1y%*`{%h|J}25k5RL@A&wlJR;@}=@pQW -z8HHU_W9?^SEU{nD(L3`;(2#@Hw=at>=`O=9CYdF;NkgaE{(<4HH!l|{8(>V8{Pjy^ -z9(Ck=4g9;uoPXV7#6$&l`g08xB_AbAYU+46d2I^ -zy3aDgXqEbXMtA*l$s2Z~knnevJWksJyn#5%xFT&cE|iqphpe_1b(xojvB>@SI&%!9 -zPE|dYL#YVQ6nCKWbFU3*f0ukKZZZ&+R4sb@q -z{y*RLSg{|DUz>f`$a^{!i<$lsPPfdM_dIr%9-LfugoPA&v#Fp1=iTF5amhKN(fsxU -zWePx)$;8?1wmjaGQSolJe3o7B}d@rX_drSA>6&f1!{C5*XM$jq6YA -z`U7x)1d?-Rne&iy8kMMJ>P@Gxqb8rUe^lwKvVjiBF40=E>m;pjhMulWWGBjIM4E}l%_=qc9Fidxdt}3y)fd#e{x9R=DVHm -zj9>+kcSv= -zTLvg!v@?h@d4-!;65SJPFh@W2!e|Zs$)V`zXDf-djR#kiRev2p!WZW{1p{k6Bbh^A -zirZKcA0iSZW)EM)=z)RvgL`f*x1a?NfT%pgDa~nu7JnBdoX2TrvM#C|6l)7Q{E*QzBLQUUg*eOu -z;!}O7ezQ{M2_OxSN<7Yz4j6s&Amxnn(c9_MhRjKQi2A_@3HyDtT;&HXK?7$zzdFkY -z=nBk%0D&QGh}4&>^rpPci@u_RFY{(D$B-u{s7B~FIN6iYRy-zw2N_<~kH)FJb>T3< -zJ6E})1PaRZf=sWpc^P^dr(489g(FZx1v8=i1D)uhGUj9{a1Qj0fO} -z2M84pzXbunE1?ynGB*q*_DC3MP+VI@9k)Uok3h&!jmjKU1f&-|oPEdB8hNaH32}e+ -z&O0S%8|D<;9d4HyR}6{hxQi+`^HQ&we|zy_ZQTCfU`!IgH)~DZEA`ttgn@tuu{*Hl -zjrqqRs20(G+JRXdtOr)RVnSPcs8b%d^EbQmIo#}_wUEML<@9Gs_A%v=w4lxO5U;Wq -z^u@S`t-smuuVL(i8|Gv@USDeno`f;8{T?_i#=tvJPt6o*nM?%q<|i@UqKw@}=@ -zcyV|4lc)Xd&))xi&bjx#xUYCtRx&f0Op?jWH>~jv$W}@c{%Z^??nX~d=~VL)f(L|@ -zc!tn(;j-=X1N|2!8@3CjJjPO7j4?uhS}Hwc60da67QXy82lEUaSe#Y;5%uMCAJ@iH -z07sJy8TuSY(Ivv5M;gWrHnC{Q0lm}{CI`a=TV16G06$LQGmvzvVa56D#|G&5a%r1` -zp+7kd$Ps2U)h+y|e8Gpy+4#@aIZWmV-Od!C$M)gOIBg3bScJ>ZsYAP6ZiTA-3V&2% -zFLZ2q$v-R0CdS<3S?Aa}k>#id>%9f9aD|!UtIE@W{kB)htb~~_1b~f-kfPWg+FbLn -zGODsLjhh(8jsDgRjvNcKq)sT(Pe1Yq=C9?4*RUs?86Ks)tNgaf>p6Ay7L!WxSp&V4 -z9iom-0G_;n;u8B}X5$t`92E4oEDhYBCDm++f})dpr?N0`ieaxcBP2)4=&A|Pg}8%^ -zgGyo>MkX-;O(iusD6PpCzsD$^;kSz7kyRb!NS$_V4CqxqM#9b{qy=)<@X}C8$Kv~ -zE^J|~!yIRLa)OGVvu$AR3nE`wW_|86ec@65Ziyyc(BX9!yRHS-*!h}S#akgS+WdF} -zIr^_w&Kg(%aiS_qc&$_M&JzJcMaXN%NaA!*c=vPOAb_X%1{KUG*>%)ZB6PJuW%xWi -zQI&nGpzXem*zao8pjo<}>oHoRC^JTVKK;u30lOeRM23<^ak`%z^(+r-PA3)Jd1Wk& -z&3JW;EVuWeW?VM=qpq5DP`!_h%xE~X=mi5rijSf1(Z -z8{Nk0tdBp3xLT4jVpylSe8e19G`^c8**6?i+YAlYd6GWRbHyM#bnkuLD@P~6l_uWXfm)62hzsMG^jqS^1QDPX7hvxhulc*57(}p-Q@P;cQt!= -zna<9&oCru;3KiNridcFLv;bB)HxVJjPWSB4dYLoh@F^yG9BISE>!s0$52u_vZ54S@ -z$p|>NZ*&xt@dIS^NTPVrx~<-6Q1>ktAud{?!W%nXm<0G&`g*q_(xt`%+T -znZ=0GUryRN$DcNM^^AvcO{FC-M=?uBaKOtEf*%SMv)aS5h_$LYD;RD>VlCX2fWLW5 -z5;@nn)UJM;@tdtbv|*88QpoG3^7)?47;3Nx?}tQt7b>HI>{dPe;5>BQ+bf#2UUv&` -zlJgjYa#l>nlQe)g2;2!aC_ilVT7#F+!=O4U)8BwbK9zW>#B-wnmfAX+v7&4K?~6<2=mL#5+J{ma -zuNZS&Ym6<$7TK`UqS~g1GWHfsyy4Z9bJgwaU-GrCMh#w$-$Q|LN}p1;`fhhh+*WcJge&W^n+lgObC)60Iq1>CE>=OI6`DzwHXo7n+Y5QFqk}#Tk=}*=jiYI@# -z8ncvL9+1{`;8pR|xq9gM{yIfcFI2bq^@DD26$Y&q;cw!HAVHXbC4fkNb -z{BgU})lq)*Dr9|2`@97_!R^UfIUiBk`dijz0DUgdwKRWrNJ(Uv_X{yN4HP8k?)Nj{ -zsTrz+9UXgn(hORlv`MU$;jaBo80_j1JCo&<7tvQ$AS96~Rkm^abMZ}APa!AdMu}7z -z?gvk%MK=V{0h)?nd7TmGsCvXHwLk}9I -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 -zh%B9nvDgci3Mc -zJEV%pCcG~=T{dzz&0*ina!%HYq)TyxIu|isjK;=3hgHfNevP`5+AjQJ(co43HytTd -zVq_;CjM)d2eQw3iM&nYsDTc%gYH?FqZ@zRc%Td>`Pg5i6tqJg0WS(J{O#kRLgrSa- -zBhy7+#`o{Ws6y#5t=m-_>=U_KSSzH4#_r9<_%uo3V{7f6h;uFf4DyWFvThbc7@ja} -z#P!<#w@DK}yl2<)7g6R(svlWy5RN9fup^gEKB$f6@UFkASBH(E#4F8%aK*l=eRs`{ -z6wz-D)kScBtRO2HYZScA2;AxXbR^lsC)eU85&ASr?kxwapRZenOIsVK;C8}c))iiz -z2VfgHAj|S`R*FA*wI<@H8zS2Yu4~uf4b<2j-Z61K6wuWhliUEC*;vlVGD*+sIq8jx -z&W@l*(##g9Aoqzkcw&1I-pUbMV%^m_d0=1XQ=>2uq1jmpEht-C -zCJuIUcFJuFTB-jKU?By@c3-UE^}}lyErAJ`C{E6@>JmcQOtfBlx5lk~_wdz1){nL# -zrM0XRzGnT&t?6B{wYmgziXrz+yc5~e)xP`Q17BeQT7{o(Q20mIFJV1DAFeR<07I-6 -zpS#4i -ztJC~*_h9#GW;~`)?J&Wu*-p>q!K0I!ZaVoi9N&Cuv{SXWq)KwEzsS;iBs+VZulu=* -zM2f(-AjUP(hLv6wU;b*l`+LK6i-~U}DYvdiQhdhQ#WT6qn7JwLxGyEi)3(1d#E#(4 -zJy-~U3TSB8HP~GxHVjW5)3xbr^peZLt3#IDg=3d+ayRECRo|(Aa&}4UI|Q9^rSR>& -z`}dWA=Cw1K8}bWbi6ALsGmoExdzyj^VBvPsL7Mg7>jhe*SmTGvc^d+&D8SAIvpycS -z33^={l@MsUJsg`J&nZSavOQihPO&7O?%CVUAN_b?QVK*}r*YXXfAhB8z_>>)fKVgp -zqSLb}nCQN_&R6$@;11(~`Eh2!JWgDIwy#&Frd>GsUI1&7x{eO9ByH)?C9ayc5_`1d8f1kPMPWSo5Ta;wm|Hl -zjUUNlq|x6@CsFnKsZ-N+T0)5ra3Iyp9qRCj(x$hP)w6oY*IgWL_nTNh*bfva8AY{? -z=3X+4{agwdzs2SL{b^#`BN$F0^@PLf+ZXO68g2WIGx-?V-6Om3c(Y)*Lr%<#R`H7| -z8MWs@UbZnSnT-)G=TS4?;WkTFR$!M0H`-UHP8erqed@;50ZJV`m -zaA50AsM>i#r1%A8Uuf{VH*Q8MS7$BNw84T>FxW_`VmNYr# -z3~SvkqkVuj{+X+EDH{K6dgJdAK|M|_e<0CZY_|m;Q7Ge2J~M?%Xc>1DUZYPZYqjJ2 -zBW@w;LXp1%E9btJ{ch1-q!O$bxY0So((JWcYJbL^PM+y)0L|-Ak(wKwnv12jez`2A -z3?FjO=kL^g&eZ&6OM-ubMDCkEHZ$KfcVEPBGfr2>rg<@ct;Om6Z1aPR^O4#qDJbzo -z>M)x3i8ka3!S`eOvzz*#2xnuMU6rixaSX*jZf~|;j}YCOLt%jW?spEayUuRs~@9|aFVXR -z*_}Mx@e1K5tyS{!fsu|8D?VgO)7m>4bQ8N5*Ey3a{8C`(GI^Xw*|;@ened%Z=V4Ls -zQo0nAIzk0?rP+rK&BNpL<*2(VUQayo>kcdPMuoC2DpuJ{As%uC)S`~M6dlgmD#TLJ -zw*}~aDMp!@EZz}(&8{h=_oP~O@P|-=^lj=5_5RW@s!DFN -z#L^R$_Uvf6VIi{FhbmmsbTXKjPw{$)_P~mJA!OGf_AtgXfQE-bHf()MIuaV -zG(}3kb>7f_YJ)8dy4?y9>J)A!RaDM&!X9(YH5)P&S2%Q}>1@Ch=_eU4MIY-VT` -z%#quQ;u#mbIog#hlD?8a1GD~dbcb5-6(quSWlk<9;7(p0z+)Z`NtK30CH -zKBuz*SmWWOO(9emoMG9fTq^8p&gG{hyByB2o!zVLV--AjFN7kc->mIRrf29hBrG&@ -z_u@{0jXAQJf8p$jJv|I?UdTTwOqpTbn6Z{(z-UW;F6a;U+lmMeTHBxg9Ejo=#R%Dm -z3|wwe6|HVOck@ZXCLn%t0jnrOEl_n&AaDpj1CaBxEW=?C_h>HsX9JbmJfhR}q3_Z< -zsUb30IHT&)A~9E7EsS7kDW5&-h(z6(v=OiyT#E?b(Xz;8O?Q_Z<{RO=0M9|#N8O+g -zSkOdBGvz;4*T))7@Fnz&pu`2V^1Z{KE=`+h_?2I^6ia}`68mU7S28^pZp$0EU)~B+ -zTZA|HOWx^93W${aMA6of&|nLeg7)H%um8>dRx=a`NAsH)>O2F#HjEb1>uhg9C=V=T -zxn-jooro0dJFB!h6MP^7&Jk_njPoH**xT)zh~s*jGqA)zHn_|`Tx`_42npOI&G+1U -z8=Z3YM&3dvtbM8^yM!GRi)7|!i-Mc -zJX0z@Y^mzTW#lWYn^@>6u5!e|)y$4ifR`g8wt1#@d@IwumQL%6NWMm?TH*WB4|?0H -zQ|NUA6-!%hu1JL-%I8$I_wgET-&0QhitCE#Ey9YC$aMKg{%|w$zDZrl`ln0+|=a+J>a% -z*)+xF7*&H1Dh>Dut4wihLz4U#>Tg`G_o&Y5E}s3V$PdH*Lt1W-z`@A*Wxk<#h^809 -zIR9ZNu4UQkyJB&(hFc(ei)I)M -z$Vz&^P1rDZYaUb5ZGW3_t_b-2aM9Iy=?5l^?5Fn2BhC{iEaa|^p846c+0_lb@&{aE -z>_dU?-6+8B;#-SGEhmOgi;&a;_An@HGl^t2IcpY+ZqFKjSD_^WR{>NZ*iBO46xCOx -z<3qD&&$wf~*w~gP20g*dC1$`vi;6u88R`~YSF8I*rSBqzw0-?Rs1^{staM_%;b_)9BSn|uj;)xgr_ -zV#ss=xd~-(3k-QO%Mct8+apxW2ph`3!9R)nXAR1a^<=N96!gq@;CLg>bHn=iFh4wO -zLUJ43m0f|2codxcr};=`u(!9upYxVV;>)(6kk-j5NI@JsZ3IA#l<0oBpDolRY+7i_ -zPT2HbyKRxXuC?e?f0EF}ij>BZb6uRz&*v4WAE8Lbe!mTiRv) -zXlpd*m6RG2GISRb5BD;O@4 -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 -zkiuigF`#GR9<9+tjs%O6?`zbc{(2 -zRDi2Ld@H-sxa$R_OrgkUF*J!z -zeoKSgNLB5UJZkJklyhSbOowoY+>S8RuXFRw7-0+F!drw@e{KIgssM0Zg|%aj-85Y+ -z-?L0M#Bkg%!NyqX+PGEk-;cE*G!>?BIx+h@l(mR-@VCz=7;5Dzuk2te4J+6ARI9|N -z=}bnSYV1e*l=vO>2@9;TGYVc`%XfC5)ZKT&E0Q~dS05$?KhC!3&ufQByx!89bGV~x -z!U=6c2qG*GVsxEOT>f=DVyxiXzQE2u_7lHxD}_jW)e~Qi>DMSPNPNmTjP@#d;ixmg -ztT(|aW(WE;ZjIr$z<}&$>NdASi7ECt#i}z2;x|)Qc^$%s?O~2-5W-edVgnzM6p%mL -zQiCn=^?x#sL~JSLw^(yc4txg?R5eSjL&|bdVnB6p9!5zp!Vy1Jlh)PWg*7TbB~vfb -z+X>AWBdIh3y6VLbG9mZ~UxlD&18rs$r#-2?ZDcq)XW-_I25CePn$e85zd~~0v^{%A_dp4=V`4FNJoRu05=y+@48soEE -z6G@?0?P0{S3ZOg1bl**&u#Xm|R{=gi05-^|suYTMirU308RrF9swPx%4)|-cKuux? -zRUJ*Tk*ZuY(ft>|H+3+cH}&{7Payso>Do;7g;O!B@mz_i>nU6Du-fUF5r7oz&=w~= -zO`&rpn<*w>3JSAOS>-~G(BU-Hem`O23I#kctg-}W+7lOqj(+;nY%9Q`gajd+{Y{cq -zt3-*fuf?~z=G1B6%;6gx!78#c^xV8ac8x`{7XyR`Wc>wZL%xK#QkI3&i|;B>TT?f5mm0MLSh|-bY^A -zI~W_Z9Y``BvTKCis&V#mnab(l8+DrBfgw*^R_Bi(~908@5{q{Jcj- -zuY+6(L2!Jek)7UCJ){zZI^PN_j-oZX-bK9$ng{Zpn}_}VHimd)s+GU*vv%Wxg%4c1}9qYj1AFFne)~*B%T3 -zA{P{dNI*>tPO;I2#0@0iJ3cq; -z1`TLR@=U8uAk0v>L#4{O*3g60u-D8C)5^M-#Bz+cDMUrC+Gr*dg!bbX+9aF6Zco)p -z;O5Sk?42}n)y(iuvk7SMfZH_ -zUW#n94bgv}W;B-^(Sk#%diYDp;))8u-eUUdGhXvk+fJM~O_exFL!fZ5Q*R2b%;7&J -zF^IaH7=LvUNz`B{aAiAaW{Gu8fCfvDU-nM(J42I~gFlx|1fJ(4*iOA0&ARLL_J0Eb -z1luT|!zz}TY@+0B9mNKHHNn%XURC1*C%EcY1w6GpUYu#v${LtUzX{W`iJ>(uz?nvX -zRwd<@B3Q5H$}hN0(^zA$>m-^w;v=q+tl&gKxclUu(~)CX){jZ4w%_aG4j_|nDk})z -zmuG$d6kaeIAcQp|SopEsvpYRQt9ggIwe#S4CAN?7oN5t!bGZy%@wbeR3Aez9JYre+ -zp(pV6-u<4}3U}WGU;;iE0A@&L;YY1rO1-9Cb8>?QV1TF)fEwXfF`;*_xo{DR{20WV -zo9FYjZ~lBh6ABzn0Kv*~Ve?F1Qgb)Q2S|8`0|oB3iCP13<}UI6++a2#QW_clR)G1( -zjV1LM8cQQ1IDAx7h{Sv7Tu~o}@4|4W4?c6m%=F%lY83J{wNoIDWm&Ou`x5q}4|p#v -zGbiJS#Cv`si`VXwS60A#s)C8UbF7Iih4*W7`3h5zpiNHP_|?{nh!ZOXw$Y!#w^@cU -z3XSNCcTd6I+>~YJ(W#iAG+i*ZyI<8viBYWuda}ifol_Mt( -z3ad?Y#q%E1iEI0O`5{7O61|sr;f%wt%!z{kiD#N?TMIt9D!bUpOKLZNyA!E8{cQYD -zfPH>!kQ9o9RPM${Ei}u?v@2cEmX?fB&5|ml4OrvGyEoSt!ANB<<~lr-##twUPhbBj -zcw@YWeD-N6g@MoEl^6S;iV8lucxdi5x~M0m$fVbw$M45iaDfkjPwIl}Q(IP&4yC0{ -zed4k%^6nYBBni=Vz)#`K8gPXCgd=ux+(ecdz_PMjPui|>Wp(?5fWA}q;Y49e}^fQvVf$+&ux)NGauRtvx5#?3r -z6Rd+P@8$CCfwbK*aH>^{n7v&-ad~@5n3%M(5GlBAotC~l`D%tfVpcRX6<3MKR&9O~ -z>?<$@_Y@-mEP((7_2=Qm$n$iH5ZAr@VISJHEO_Nxl~7ll$c5iE%bL2Oe@kE$bBU_W -z%czsC5<+OO{xtKb41diY1ns(aLH|zyWo|a9krA1?crrJ1AF<%mc6s;z;jD3#~Q}Q3b))xE8g(yNAG@ -z-~$H~yes*6lC34Gc(&-lMuC!jf%a4YHv#O@)j}WAU|hc{L8$fRTr|mjaeGOTkN`+a -z?V~JTdl|os{*F+irr -z=u^Ac#?mw=vV$K$wJM4q*#!B9$cpG+jrBC`n9^K!{_tpTTbo4vTJSN~$bsZA%9N%p -zpYd?RVa5!gS~dGRjIVf;7(yJSB0Z;lB3V!=W+Gde!dHGUi}0|ijE=L<3EybpUEspo -zrep-AGP+ku>L2dH1j>f4Et~r3;c(0u^>(`X#yQ?CTD26^XvqnZ0xLxP<#4Y}TGlJ_g -z6~0~CE_-;T9lFc%vHhruvXLRr$MH$^UVWlEy8o2Xw4H!dmHmUr8~!$G{|-AGA;bc1wB -zci-9D?|IJso%1`-bMJlbKWyH2X4b^JW@gP=>$7HKprT5%`lRZG4n{^(vHRVdCL+=NSzs_3!?IZuA(ZLuYoh?~NVwBbfv(O6Tq6nHz6soJ1*G3Ey(beL -znoPC%3DT(K-Cl^6#P2U=oG<}PQw+w#o3t$K^zOJRJOKk>N4`xG(?&WnJ1mw*&yHaX -z{#)WVniO5B-Ygh6L^>65;6>V2lyTbf>*W5Y)V<(_H(9JGnp*y8m@Khe()~MdJjijb -zLijCw!%q#ShYY=v%gqWon$0XDqnKnfLJ;eZucJ4w%g-?OYz+m2SrxElUo&;l??>%Q -zO|7z~Qi_tf#xF57px -zGl_J37OkIGy55fv0UTipX}2<)L-qSF(*vFf?<28*)vjSni!}a;z=+%tGFb4yW6CDu -zjZ9^A6QhMUsVhtM-%Fpbo?<8CaScG3BE{95JNIlQaO+^Hrl_^Gb(Opfq5kp32^&}n -z*|Nuw4+wt=HI*p99^kgDbHfPxN6fDx3Ri(Uel70k_7jwci1D8X_iC=K?M9K!DiN~X -z2a6ORU-y|pW;9T@?dWZI9xOq%MIgpwEcffo_*$h!`wi{fSS;y@OgQVvBv0_h9c3#);_PfVo)K_om7GOp -zQL@YDcA7w~W9${^Xjyv$HdajL-0lND1D}AF;E~oL9(K7Nanmo-{4AGzPe0HG9709n -ze_5n62=k}^kP%@TN{1_(i_aEDVF2xI`#=op!AqjOh;S%%xZlA_DQH*uC4}pTYWUxb -zhfRS#1##l)qvfDpE>rE(MQ>(Ny|->U~;9eD@si(^r+sN}0s^frx5Y=r2(H -zf#5Z86PkJ_T4?P#BxLXIxM~aGRje%Sl<@St8WY=%bhP&sb9t!FL)!Z>Quv_V_X|jnEH_9G~ -z0~yAjb`9GT{`4*(%n^J)rn3n*gI4LUGKQ8;XFc(Sl<48UOFf#X7x68Pg$(-AY*GF< -zD=#Wj99eXBQ#=8dYM9sfgT6FkkU_B!+UQ`SC?8Q(_H&N{uvFMD+lB+dIEp&)s=w;u -z0v&NG<|gdxuwy2!=puy@>q(q7(9FRqHlo`OyBnU--VDO*tz556Fq|Gt2k-Noob -zEGyu4`)Gfnq>rnQxSN^)a0T{gI*v7-FZ}gGx=~A+!Ux4Hw0ED_L@P@c#0f?_U3xpr -z*ZFoLBvmB|356*piUEiYG+KO2ty(P7tS{Q1zdAKz#ckxIbhD~e3MxU8IbX`~uJ}{& -zIpAG5LWMe0a&%A45<%|%Oh_|M@MFN7fB=7qYRxBYcpmczydjt>pCB-wRsW=aZmah-Jub`is+PPkN}WK;)PEWhz1t -z!mr23V0#?(ka|PhDxJ2;`9B_-*A68C50X>p9Ud%V)~>W9-r{$8u_}-vJ=_<+@)8bNk)BE%HrQF1Ac#p+Vy30i6hvkV~U-i}kePgF|qV4{zeKQB(3tq74kl$2@ -znX86!JyutF?xB^%UM2?Axl+&hL>wYL~qThh>Bj$cKyD{G_P|eN^ -zKt8yz}$&NA89D -zSl!e>k^E%)dB*E0$O3=~-!`7schJm2J)9?wgB?5hCz7;fHF&QZFU~CrNq{~qe6o+x -z!X3$YWdm~8=4w7dz|YM&%@5Ahr)lfhnLfwgxKVfzT>%INNPMMF*v8J9OG -z_jKZWl}6ege3>>Bvmk7LUrzWv?EyWP9TluV3%4sAXP54(&WPY){dR>aVb~d~f#*a9 -znwO&WvbHTe#P&?1h3ns&cpXjE@bLL*ogQ(ili=W;BdBhq`Z)L?=ta$9$Xy)cvTa#A -z_VEbqRaXb4r;(@q`^ySe5=+2~cBk{%I^;8V1T=Q|LUKaOO`u1=NBB#@?ZS;EVwSS` -zi(qx#+WK6*FQ&YN|DmtALcdiF{dD8cW+)KF6~hOdEn?nl_YGp`3;jv*KktgWrI -z$@~j-6NiG-R5sp!iJ=z$P1aAZ8k1OBIgS+)!uV=kZRkx~G3_f9B7xdKIWuecAk}d5 -z2CN$4eRiiG{l@%oQ5!LZIk%^b!TL$TbhlJ=m6*I>e?$O9GZ#Z$o)}koQpLanodks8DPf$hq -zEdmSdL(cD&b(l$`2W0g<6tMGt)W4#RpzM2<;5pT0Y_|UxdCf~SaDWEx2X|TA3qn?) -z-PRT)wM~m8R$z1l=d#{c33)E!5BUrciPgTO?aFWFGXxe@-bh`w?dw@rHA=Jqo^n(f -z2~L|?5cYP!?)?BT%cV7}N54KC97`&?C5U-v7b-u$UuaCt5cs7`j>Ml3L4RQ(p3|_i -zD&aqik+SS4$|L5jnHM|Sm`7|K`)<~KWcaWaOn-Y?eWY-KIJ~>!_&i`5wl~p7;)meN -z4pXc)6&he$9{_Xxw!H7aAAcc*l?FECDIE1?k2Nfy(nU^aJJ~%NK^k}>snR^~2j}b( -zs=|ezxZ>!)WEYi$^fay&o!*K?N;BNavTmDFN2DLw9?^tFAZc=?LG2{pcy~L4=tNysQq#0)dS-XS-h%J+^a+Q{Bmk_xfQk$(&0Ga_)_d4(_#8HnMXg2-c -z-pOYd8!bFEi`)ciC}M(QIho@!Kq -zV>3&0#h`IrtmI&S$PsX#Hx2XJTlgd1uv%`@-(>nVci=JAm3U;uCY(1`>0298mUTpv -zM1Z3+^Nqw#pplAw*ZR_^1QW?Wc&$C^a|SAnpBpZDBUV4vo?qfz9&P^EIKtN_^>-OQ`utHN3lESz|lb~(faQbQu -zw@ge|&6;0#<4C8aP(#i}TiDM=g{M_+vP^60=?D-{@xu_gS8XYwhFn7}zmX8^5R?&q -zGjbP|2erwNa~xJzP1$jv_|8b3yQ^$>esfGC2dCakz$lXz_ZOV!8g8kddg?5+nM -zXfsG@Hm|pn9(^ehFICW~?Y{OHJq2W>`dZ)oF;L4LEa$25>Vd0vlA`^hhL*(zUB13F -zb3*Q{layLxg+iBS?CnXO6c=JYFwFafFj++0JTZx?1&TdU##HL@L}90eaPv2KmwW4P -zz<~+#bj3J*5M&eUF==r`bf?P>R5@Gmkh&>8EO_zb>0a6+aBK?F#`n$@NWuI7&});w -zgVQFAT=H9w^~Pn%_EnCj55El*TU64tdxJ{> -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 -z1j*hdRBOmOOpuf;QjkD=r_QF=m8{Ts9pS -z7KfWw&L<{-H)0f*{LB}=&tn~2KsregBdK$S26tm@lRv}Kx}RA(=8w%7cE7^{Gm^$0 -ze_&a}up9o`G+Gaqo)_I({q8@BXXe_K;kNW(4k+$SlP=5Wxw`!iDon@r`L>?_dCC*x -zJK*ewRn5 -zXMA}l-j@D@<+HB7Fw0+0VRdmT9*JzeB&Y;a_pTza;%IzDNs -zI8+^$?FT~(y8Zqx@BkI5wr^sMEd5eWk2zv%Uv;~N0o-Q;O?Iu?GKM-pPwIy(l{Kms -zD#S??%=f4)JMl&yUnEzey4tZX=cYWXLr(oylz=zv&1BDE?F;2rrpD)?VaZR7$W|*D -zB6=VNHIreN%XeZ9h=-}ncFEQNA_#qnw*NLgWoL4)8<<3BY$jBv|7iG$`OlUBWa?Lt -zOwahXIG91hyz)$;lK$C)8kbWLfDT5Qn3jYQM05k@2YIfEsizHW3C?x%cCiFK6bfg9 -z)L!%u0BKdU@Xc9f%20FSPn~{Y`{u?8l2&R(^Q!|*Y1yfgJWf}7kC(Af^sGcRVq%bS -zQ2^DDH1BcnlD-cvkiJ1-&ygV!sW|)HFVkTb&4R6eZ{ -z`d|*T2G+XmIb5HjLMx4;KS2HC{E!b~H3MF3rH;~vTM#XsSUN?4CKe;a@Axc0fsLAQ -z^5LM(QPnnw&sc-+H%fH?PBBWqZJoQ_g0X{W7MLwtBP1%m^3Qo}QrlC2r%M_3{2$^T -zM@eS#YXNA~@69%Q44BObJMDLNhx7ZftYM9LLQe@5ph+cF?Ha8bZ>TcWp<+Mk&fM3z -z!9ZTtzCjOgYEUSyHHn%6Y6)ynm!eN?Ctv_x?37GCD_QPHiyY1|i?MBiT2Qm7mYiM2HsDp&y -zlK1dC?}Cf45?+ed?@7be3o)?i*YtEQc~ -z^-}cR!F<`1aY}o~DbsUsSc!bzS2os-*2L2R0%cr@BI3kcw3)P`nE)3s@KFRy?AwOE -zFVcmw+cZ$w15W$;yzjVPw|38NGy=zR7p(f4NI(rWFvfA?6IqtIu!V$DiE9spO3{Mn -zLFG=m_~Ll+GbRidcWkY%0ju|>4~X9SU|{$G)Fr1;S6-@m+{BzY^Tl8gIN^Nr%)y2e%L3+&GVH?#0AA#YT_m~ -z1V5kGL8r+mCn9~GK&gCFqz=S5nLaG+&i+-MQ631V@6{UCZUq^&aOpHB`4^(()4n{pa_6Bz`X0PqqIh~)pq -zPq~h`W%D^B{{eJ1lFy{0P0{?D%K$o@A$I_+Bb_cP{Wa*qcF=joMDr?cZ?Sx31ay)4 -zTDpY`%>T#1W?GTqZW}(&dg~_xz}cD3B+-@L5j4BUUX7zRC_+54^lAAT2t%QeO-K5G!gxMLU#LefmBne_Z6gL?=ysy3Xgx~M -zk+&0FeDHDW9O6NT@!}|E%BLB)dLSHRQsa&5L9k9(EHFpHBPcqKD9xbFBGnq1Q9YB7P4T=05l_FBw0AD;`03vcVm$M=z3G~38d -zjbIU$qEV!x_%V+patZr4<&x97?zihwC3-~+sl8%yD11a7kbnYg-iPiw(mt_e9vGgY -zU-zNU5lFEMTt`EM<{Fh8jedjSKFrGHyniMbt08m%^ATb_5RRcRmTpY$$&HjHask|82d*37^@B`2uI;5y%i$F)(7^8>`VRlZ#5D!P;Us8mJ$D-j-<(Hv9^zSB|LQL_kdkFsSrw1~l_%c -z(lCRV09zN%(cUl2jC_PeU-{K*w&bSG=#-Lq$=buXlkH;C;-Ei})37xL=3&H6ug)r; -zCpFRP)rl|kD_|<}vdu9(rar9k>4HAz;8N}K3jN*5zJFW$6GTx_Aek6**3$eHatnyr -zl_-yF_V<3F9z$#UxcuQhR7w?F@kKpYy|END*TSs}l^lDS_)rxiu4mF6yn79gcdYjt -z;}^_1kL3V!3bE&ZvVU%QBD(2av;*bOn4s8w0c8h;La=t_#H*(wd<@;#KQRP0GiDp6 -z3BD=ZcLo`M53hSp#)uzrVDX`;un -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 -zB|c@fpD}+77;_4zFh6iwA!XwT_ -zxruBop+%|uqk>GAm@LlhGfg#-x!;-Y^+N9>9|r-=29=%m(VCeb+Q4mR3;%5t5~RPPdbuDPc&1AVhD@7;VbQ%_dNY1i5|>f0=ppsFwnnm{~T} -zn)PfotvUdjCE@yLSRRB@HR5J$=%on4Qiw6cmvM-ugMh(0nKDgBt0`Bsz>E&$TSW!KxJ}Tm+fSDip -zSGQsvYi7=0MNgi>`@(X#%u>@>mOx3i_HuIJ{Li1rK^dg0E=%Sx+5h#&mwXlGmE;j^ -zZO058IR5KT7I9Xxkr&L5>c1(C^^fHL{?n-(Eeb3lAzA;YpU5}4h2OwDu8A+ifKFJw -z!uO!V`oRUX(ADL?Chh?T8=%l-QXzo6f&EfIXK|PEcQ9#su#{9l=wVU~X_aSSa)3<# -z9~0f62z;Q-~xvM}J^iDrW$sfQ{dLeme -zU>u@oWC?&-i(Dxg1fXq|%;mHPXS4sDk~)=P2cduh*g@!}(!YaH?!S|o^uNPcJnVSY -z+Dj+F)CUK2eo${TQdpL*L*U&;*7_PK{eZ=+1D2!*ZBitNR4fgpd?^#uTp;ej1YDPZ -z_nIHf$qhqG0d^K^$i$`g(s@1@ZU#aL19v1@s8^gV%*U=&5K>(+_(Nc%+u}pnuC+oE(F;grdKCrZi={$)}5CdB6Hx@@E! -z3IeT9`16%?mkI5m$i9h$hI~>e{yPK0e|5Bfcq@s63)~np1l~*TsXwL-`aZa#6GL0{ -z)=Hh$4{5QE9)!hULOnLKO-Ao5*zC%fV58`%43&l7dzsH!%WkM<+yY0AvQQotZ&#$O -zX5!*Fa*F0{0w*6UYui?jOJEwiS08mP82N~cSpK6LJc{oi%}N^0?w}g{7K%5xdQ2^= -z_iNF0+oo9qxQ3=mm2jMKOfE%0cSNzxJBB*(C8o*7r9~cy$`FJx8Y!a?BzBU{!5zK8 -zVtE5@*iaDSlIi&HG$Q5lg_z+ -znl_$_%a}-()TwPTd#>5bya#neRXG?|GyC`O^;uw=ZLL$OgqxQ?gW@?UjQ7HP0>wpN -zi~IRSeQ#bcLf{Z!qu4_9iue@NE{GQ|+owAAL2-#M-5j -z)9$On!H! -zFZ|p9I`HjEJ{cU3)LUR3b|OT}nNtwS_OnHjZUao=BOmPFX>jL!)=V -zF2DU#k1M_geqL?bSL@BTP852sD%%cwB6l((b3_&;GggAba`O}>$}&_xk}xa2^t9BF -zYmVa))u>Hw3`4@R*^-+x5Wh5sJu)@?KksimndAUsuf)!vBGmA`2vgjIXp#T={)8gA -zXEWw)6tYLH(lX;jZZshfp+G~5HQr?Wpo1J`6J>U95qZH%nJs$u!UHs- -zzjo(VC@lVFb>&%yCwLasus5mpiu5|f;9{7adiA1QRmlKE*qnVoDQywlN$9NnI8p9B -z)VrSF5@3Q!r5s_jm6qTB?^`f`-El$ozNw;K`XOrs2#SrSjR2VEQM09aN -zi%Fj^tzDzxm((|)3n_MkRc8Z?>9njTV~gO{0k^8?zZ++deZ$c-!e;lT!xTr%E!BpM -z@@qNNWf?j|D=jXKk=HHpzC)3+(RCbu9Z+54v&y%+uSP()n;voQ-hnlDi}tN&jJrc; -zut$iu>;u|X0LWdOa36Y&>MbjZgo?injfj!f19x>Acr@s5oc(SDe9$-GF(C} -zwDUVZhUgb4ggqc_ZM|uj5#80iOeW{Df$bPa*97fk^CtuK@aUR%CqJ`JXzajBGosDR -z($&Xf{pzS{cC>yfgE$8mHFJ2Q2gP!l%fw&>xCjXfl$XQ9{E^U)PnpjcyQWX$v=PYu -z6u(7-C;r_GXLRajrRiF -z-{M$HX!*l!3}#vXwTR1X`)`ApiRKMy@@SDbGz=DFe1dE^#~8u)8QSCy@q;-i&%5>} -z(m12xVar-yBvT@_j8*w(ZQJ!GIydkl5k-cdlXf=>EIH<#p4v?R*^Wl+(RH>FPZnRx -zDm60b+s)!hIBxNH_+;t^f?hpl8M8oMFZ=Sy-}nqp-2}lfDq#ooRF;c{Ai~+Hj;NPt -z`$%BT%i-@BU==RsTrSzpHs@GQ-q+a4yj`szI@D$ThFUVh9Wjyp*97CK2&GE?nT^o- -zEqr#l=^ZXzX()$r^$v7qId5V=b>ykzrLM_Z+xt`dJ1~g0UlNUad71$9TeiX=NC4eP -zPJ7=mqr#1WAHW5S20L{c_hL$1gDk4ExSh%5;p8QNo -zh&rL1Y!44I=Kw$j@N!t1hZZfmz;mWpgL=NMMNKEQ6^2NS68`>#W6l(BDEum&rKJih -zh{5A=a1kHCszwQ)nT?*KMEqIQ+jd*1;W|>}o$h#mZd&r9PW}YH>)2{`UmH4dFjx|S -zZ3@3o=ezR{E=c`1aijt1 -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 -zzH`YgImVu;-U@MN6lAQ)Wax -zyOJrOX^3tRmw@ovM9%Y$6@oiVs8aN)^TH@|!u1xOqiM#TauU?m;sOAUkl@V^eO9iy -z6YgGURpDrbQwl$XEFoat@+>6p*2lMY6WV@x0kk6tUUDkhg0%EfjuzanP1RW)D;7n< -zo;k#@ygJy5nOz_nnmk`Sd>7B6oRiF($j84sB;x4b>JFYyP -z5%rG?TGT9Ktq&|1>KY^dahER9Y=s|+dqNIx>3O{aP0=1=8`K~0maEiZuU -z7SwT*9)kJ#Z>!AaYNq8w=L^kETfZ3E(R`amv`;s%fDb91DEYLS#Q@G9 -z6)_T0Z^6G8!Vrw}Mfa-cSgNn9Zk^lo4CB2Qe1u4?wu4tSFW3|5dGMU%ZOMCL*Inoh -zmPUBDq({IK?eG;S=q(r2Rm+cuF}8b{$b#a*0C!}Cm^$>ROI=se3F%jv&<8&r8VTxq -zA&Bso#>6bj-RhUd|3(Mdd@nv(@%xlQZ}d{dNqCiv`+NnXk@ti8sl3`y>hVdcC>lfSSRNpkKSHJyD -z$2ArBtps85P=shi_aB;C>yHnD4Eagk*l@b2@PY#m&`steBr5}UxKw6FBvs#;>$YZH -zH?i&)#j^cJo{()y4z9Y>NY8RDZW+mlj~V=PRsOp+{u=+1D4wnL4`04iY(`$F;{1yVp**&Y>Q8ob9bI=*~{2V`n)~wA}wUlOwbkClVm<`-WCky?NH{YLf -z4%Ne|D`+{npBgU_S|=B;eFghq+t_&{@h}T#a?uiTP>W*8j)coflg4QN{{;a-BNTm5bx$kiRf8tWeWUk9ct4x -zk)jIAjTzGu-b%#}{X&=5mc}P1eQdu++`4-5rFce$ArF%J-O=HqPdB}3@^t)oZiAQ0 -z6yuVcS#v%a^^KOH;GQR|$jXZuJk1Wm6s -z!onUE=O=uSX$__2*ULL0YMI;H$k&Lu(y1Tn-3*`K>I?9%<8Wbbk&Zar)=Q_Nyq@_r -z!B{PZkg)kTwc6hxe@%KT>~UMr=ADktRlST#)uqWFf0tl@R0-Z}dyNh53|B}=qrFxT -z9(2LQuEkMMK-U!)ditq$o}?kE^4z(JOkM<-)x;0{NIa0#zMx7f>ZZ7nO-Rxs*3}

(9G9*#;*0VUG8v@$<&~2JSue1_<~(!=JIM_|Uo$+h=|eIv)*@VgJ&4M#hk` -z68IU8dK~GGZw_P|L~&;0=}4%x`3KMjBigyE`%*kqa`_%i>Mm#(?V`pCSQsjYw?kjk -z_{|;83~0c)>vHkJ`evt}(HHAAGtEs=Y%^Kju{OG-p)WlER_>T8Rs}4(A6gXOW}SRQ -zzLJmH!^FYfUQn?%hr=C>d0A);77#9B233bF!dGvOxi`D@sbLm904B3s!8~UsVeadq -zj6PsZRgA(vr0%P;+yR3g@H$FOJmt-p+>r3zRzm`yjI_b~SD&ZI}8Cc$B-{yw2t+ -zqCBS?#Df_Y0Mflb{D`ZGellOFNo#x$VeIX;Esdy`b5T*aGH~g7gxsGg@@Dr%(Y;X- -zAd~&vzrCk>Lt(FZpcSY^JyrNOmonX?l3cS*0aptHLq@9#GKGQ)@Q4u8AAwtBI{dcoV6(X#l1x)dllTxkucA}wGcoO1Y4ND -zwd;%bZxg(4&5zILZ-ZM)^XnVaiGKd|y_W<61i`d1H@909%YE!}G9SxdDRt%$a5LCZ -zT~Gyj!ri<+84oM|eqkxUv#Q&R$Q^J?7BYB#GkAwU|K_2e2dT1mrjGl*2#RbYcsOeL -z3ye2-`BHokm8MlRlFWdQQ4RdzzL#klgrd2EmnQ+0pDnj$T3ZSLQnK8qPE0U>5v+$e -z02_!-44Mc{38OMoSjKiHVRduj1kPGoD+c*>=`AcH?B3HhEM?rCz^k{DP(4W@c%$L( -zwbGk|13O#c`((N86*JTul??8Qwa|SkO9|#JX*9Z#g#g|=z)Z;TE5SIo;+LO>fKalW -z&7kpj(76%&KneKcEfTT1L?D$!12NqnQaog-UPC9P>Hg@-ATV1;8)45htG+(2h9_9^ -zE}_=)IzJ1``!b`;T+h@N>JY~8Pj-J?1Kb+|R5{Ie-^4G*4QIGj%CA|x_e1hCMzoV!!(;g{{{@W6K&3I -zpVX{8_P~X;5mdBkmx8l@Q+;{8HwVr@&WYOSMX6@`h3$6las-%dzoN3|5F8Pxe931f -zS2YFbi69Sdt&$whbWQ@p{=G1boCLc4(*r>vwyai4m%1d9U6($}n70FQD)^G!bJmk~ -z$oaF-7QwMdSRB%E9g;~b6H#L_XrqX-)Y}i*{qIt(TSCPA4LG7uNo@(z3d5$SP -z_EPg&ZNILg;R43~K#TNY*LxX}*74-mCfmVi{1$(2i{i1`f;Hr~P8|G-Q`t9)hH-|A -zRYy4=VkEXd|0z@!0U4n07JkcPOHeaD}e|$Rj`4;4N|zzgjRFyMsVuca0tw0;7d0nbyBlt7q$QwVXsE -z?28$G_Ahc45I=0$L8&}HF!Rk*vm5pImg4GH_KaP78@cVcDsX9-P81s9pK-3f#`_gJ -zlmr1k#j(gUmn6jkCQ*oqqOj2*vcjSO!o}@o!!UH}V~XMV9|d -zSb8a}cB4ECPm}zbdy`?4_6k*xF-|xxt1@o(y?Y0hA`fwI2vMJ!KZ)%TADv9baN1Yp -zqZUv3I#^`&F9vz9D9jq+^~*Ls`n -zf8-J0%#pm+-SthtJ%BTwEy$uiM2K0=6=J7x|zOvN|p>aql{}aP`1U -zZudgajXoYL<$uCq)k+cjiW&alUo{k+><{D!krMkY!A)P{eWf*V{PYa~>cy&1p -zTuc?t*)GwG0V=L>BZHU%0d^xJ^=V$p3FJ-bzEi5bevdYp`qaWe_SBuDz&LSZ}gaw -z&deQ_*>aO}-Z%7qPM^np0(cL?D^sy(q0MU5su%BItrM>7YbdDD)+h)celMX3wT7IX -zju8FK>Mp$c%fbG>H#@3~A=bqLRe4|7tQ(RP_y!$hQHiLvjy58o@GoqwoLkS!6Nt95 -z9of0sBdH`NGMIM7ax!U&QMSOp2Xg`>UjaEUuji3k@pJ;+M}%v3CU`#u0*eLhl)<)Nx)wEWqi*cd0OEVZ0Kbc -zimXn!c4p|RJz*%diy1^U10(*oKD(%s%!{=0-}rkB@MWoYuJ-WV;R0DqG_hALN?q3vYi>80^r9$_rM-s{m0 -z;<#llQxUa%((n6}YQdfv#P@-(U;*+%p|6Yeyi%c-u!W7`^M#z%IWnX&?}W8j{hAYp -zPk_DoB*9tSL@Ga9nS#d9mj?XCkr=+0kk2`{DiW{mJFcaic_L$si1R#F=XCAsS+^pY -z&(H;vwX%rX?s*J=t9nZ5SQF&DIpOAq1ep(_g^f2-xo6N(Ln2P{DT!(Rolvd09s$fu -z4ua+q?V&lX9KTS)JkG>yRsyD`vkq*Va6S~wYtY{Abm;8|+wR?HHC{!d68bOny)T*M -z$=nDnW)7HHSDFZWNJ0T0?jgQ#pA5W@Qdix6ZXcDo_gIBGt0jYiGumKFg|qyd9Q8{% -z4flR`!-`;JB;yE$vk+ds=v*wvyQ3L@*fBucF>}C(sb7K(BR8o39|HxT_x1O73tmCu -z7GG`*F3(%q5sIi{2_W+qKyQc`l_a?64OYcS8$tJdFj1!RPsO;qp?Zn=?>`euXF11p -z{(R7@ggQ5M0Vk1*f%9rYxw!b(8$I{gTY!k@d!c#7Pt?I-^72YvYm3d=KMr%^J1UIM -z;w}wkQuVud2LAYxev9YN7lHu6C+7F+zW@a>JUGIdn|LYP#!FUWMCF=9KsT9Cu#gn9 -z50{35Zht}+>@tc6wLcO9xHNziwd4f{&YMBcr-NSOM1Ypqz>?3SBc9v~v3tR^B&0`4 -z$(b^B6Y7DSBPegp-uN{W9}fTi*Qx{jHycS7C&i#d_vU)Z3Rf<$IvXrYyuJUi=I&ma -z7FdGB4HKhtEcj6%-C@bWY6>RRwkv6d1o>FB>uAh%Ded>He;@#zu0~T!LRRh<)h@s$ -z$#iA8PKV1zBb((CqJD4gp;NvQzJ$)l{hj9^c&5s+{0{`L&hX)r@?z6OhP`R)`nyppwO*)qgh{UXC~B -zcSX;9^{MDl0_ctjSWyA3rt)toIA6OdMknLW{Y>@5ahfnMDF=&@_TuKpff&XTjgcQF -zZ3wivEP$J%-&W^`Y=T!&Bk#Hef-7CAToOBt5&>C%T<9~-$~jwUs&=V&uP|Xk(h;M> -zdV_CO{p1$?x|X~V-dXlv8Srs_qhaR+O=uDDC6F8_>C}|i02c#?Zi?B-wPKO-j-~8r -zh;T3&RCUNq_&j6S@5guBVpGWxF}FI~+Riz|EgK2Z7EahXk;UK3j#H3nx?l-||5c5? -z)QutPE`!#qM?6o8?ow<`hjd1J9U+t6_wNFjM -z6h2ZgF|jXKQ`mi=2T_I7e1GK#Ni-kw|Hx4`V5p=OPBnw7E`#8vAVA&k9K*o@?Sx}g -zjES*&k2#`xcHL1!@nyp!tqSif?lUrg<6OtJP63)Y}@E%@$WDv8*;2PG5$@7**6prF&_Fj7K>=i^_H@4ITmVvN9T=!zyokB -z-y5XlBcATjEu+#G$9Xk65n`x@c!vCoADN{lWb)l}nszPy34mM04``6-)VfGa)BPp$ -zwACApV1MNt&Dms6hB@l@70|Qjgz>F_dAh|Tc+7Xq-#)VLFPT8J;K=hkRpRKE7E=pv -z;KltYUJpSq+vxlJmTlT*1Iw*30_)Ha_0@3p^PDGJ@rcVh25%Y%4OUxx;oPEA1FczH -zeiD2!nl@jLBK9r*eMZs$Cw1jb!x1Qp5}u(-!T4OhD*E1ePQDy-i;RJuC9DitteKm!Pse$2Ws>~o -zJMNDxK+d-NFics&{(|9;&`(*>2xgf9&c^OuIW^vrgs~8{;L*TtQL0~W -zXA~*5R6(*Y`I8=yX~r{H_p+EdFsfj@%aF@zeHs%Yu0!(+DRos#8lA=qv_2yQT(S|O -z6tDmOsLoSrhCt}COGQ?2{%Ci&m(A*P5}Ee>QTxTmuvf9g!k- -zZ?UimuR^ks#jr_>MlEv|XP_j9X1hF?7K(TM$hG6@0?2VBKryrD)tB|*DlK6HZY=@Z -z_~9qejuBff5m~`Jt$(0!YS?-`-7zsOZV~r+ponX1hxB+;9chej9)E=^?t)%BRMo4U -zX`d4oo%nXQ)vjV~JD(3L&}($V_RH8Bf1L0gd_EQ3-b?<3q%K(g98ywSq!kFFwu_F!dTyCv1ZEnmYtz?{!{uj -zJPIoZ$9-mRv%>GFY0KORCJ2dwwK~UAk%Rq$#aLHl$05yZQCpdS6^XAe -z!3XT?F;m$8-EpI~8P4}1@!FTkPadzC(EeUhT%GkRm*-Q9A9xq&N+Y_4mVT7F`p~u< -zFclM_b<%41?qPWX8F=)$TW{gJ;P>x(2}Tm~gC5ADEMKVDbk!v;%6!tze?gHTK~L|$ -z1+Y41$jQwbIHeEebxWw=;I*0fT|o0P=MZTKgie`n!VG{H1H2j7q-y4} -z+NZForfzeyfTa+iDS?W@nWN21Gwb`FZ{!xRmgOFG2Y8HyS@Lk01 -z#QRa8j`^m{Hyelih$s2Z0dh??qGXxS^+^~TW}OO?`z`hxE`_46{8Z>-RH0mDK4+v> -z*wo?P8uVNQ=b~H}57H$C;CyL~v3Eqa;}ZH1b>)v#J8h@f&)-hY7QSl;!I$$5ae}oO -zsJiylm)DGzFaNjf -z$1Bl9qE!ul3t+oiF2kuh>g_dK$S4w8ng^rJhD=&F^%vD@uFqvN{l~9iysU_lJLnk%QACXbG!>?lSRS@8{Fke^}-rF|s -z_{Lny`{o*cYg~Of6E(Nw&6{!w*CguD?&T@INdhk&mBzSt -zUdwakSB0@&Vs$0r=+3=LduRb8|9P6Q>?zOtugyU?C9l`#8e7E@{r&TEr(xhNn(`t} -z`D2=S$LNGUtWQJHL+4)z4_HBO0^j^?2zx3dkZhyV&7;_O8FCK)r1}|=Z2e0LeWT2g -z26eh0Y!}2`K`{WsZa^Dm9RY0pF?rrmuPhMRW6i08ZWfO`)}C{P&K4X-e|yXYx&)Tc -zyM9Dk%2YotuR2|lPn=`ohagkuB(jZFH>@L)zdcecobhY682R)HKvH?Wh@qy^FjQy7p -zdK5!4e887lgs>CeWr!CPzrXh5$#7_HJSmYt?Ii8*#~)t9aqLL+Vsok573$I;#P8jr -zl`k~&N^AdITzpP??lAS&VHvI^@N&Xxe@Lo6R$rh{gkc>TJJ^VBx=1=J{|K)gxa0(C -z0o3}Ti=dyCuaR#(8`Dyc(8O;@RM_~h{S`B>}gYdfm?yvHMQ -z%g9Nmt7Db>N;_P6sDp0@-0572jh7R@9U@=0+!K;FLPAJl?y8FVC%*hXf1R!;)DIrA -z>RktEp&l$b!0MM5g@M_LB*kCb&%4(e-G}Q-k%G0!dM?7H7@i)MTsra!03=G`gm5(d -zQsg_fGO%u_$9tvFytyA;A|B3na0y(Rxlb#7sw6^D406(2pU;}QGPqW$zo{#XS4vMu -zV|^_1_qb^(HQboAuwxcAL>o0!i)JJ(>rq^Lp~C3VlPgTq=Do$33MB8JurKoG1Bo*q -z95n5ct8kMPw{)%XrK2N7t|j3F=dGgF+d)ESedNFNFqN;35Q|+U|26w_39Z9HmAWyi -zn~HnB7=Q|{zYH-u+G{P@QJ0<7h(zz}cZSi<+@(Lg!LrwF*u9(M}A2zQuTY-lpAr-XSJ!viv -z>hR9Gjs&k$y;L+elNj*k{wV=ab^xYq(HDN}ADQ;;DZ>&R7l15vZN}x+a-k$~+A)l* -z(~r2;&|RvnolDf*?(ARxYI?BQ%HeJ7+TlGH1yF;D(w4^*ltIZ^0(-p$tCX)j(Z66} -z`M$>bT?WYPpNpdY0wD$a>~NU)p3oEL20mO$;Hm0-I+AA6Rj5#V$BLYiL^7J?PDSk>272V -zvfKw&VjzfBG@{ns#I|Sg`st9Gdr1It&ezJ2soPNSs#U9X^M}|>eBHwL3eS_sNQc26 -z!Zxq@a4v_%@)F+(j#(sZHkHiavMiEWFjzu1Jsc~Dq|}>)O&+g25N{crpo}HZpynUN -z8iFrG52QD6+5}hs9k&ixH|DYe0O@*&bYNfG+kuz9{LDV35d$5z-ji)TrgmdC>+?^W -zO)#k6q(Hzhkhu5x+6r;dGPQIuDH~frePjM+wq3{kwLygIWht_?K{Wm^YEFXL)6Fi~ -zA}5VF#l%11Pl5E3rl60ZhKVm|V{-qhmc9C(3$1{Iws@`MWmkJ0{d$Lsv|(N^8uARp -zDij8>VKX-STN4CV`9NkQ`X(Xq?`f*$1fvp7={z{h>m+j^tzEAklmU=k?!N%wRye#@ -zYPZk6%AHpJ-fub3b{{Zm0)Bz$=l-xmVO5gf&MKirTn0rj80VnuhqFv@3{p=hHNgCD2ZgA8Fqh;XE6+O|1m{5Sc2rg38B#|ff91N4># -zgOZL1#TjJA*x&o?32YvokC?qBCUuDZu!H>IpM@u1b(TpWZJa?nXQ(($pJ?zKn^IcK -zA2_Y3_l1P{xApRV2KMr6uS*)0aDl7f*7@gRSE!TtOCDp5Zt%bs_Le-u^)2UqG@xU?m -zLyzvbmR1F;uJPUfRZ}uC+rR!Cu>^lDY$R!^TJg)TfaUDVsa0*apAnC#Hn})TtnO8- -ziGx~HVnE4yj}3dIB^ -z7A?P18d6foc~DVc5ln|Z_U0R_Ot2G$=vO;8K{55iJ00F6 -z+f5;>^U809onvA_5w7}r^0Y-eS7e&GR~ORkjv|9So3~ic_tqw1%?lf~5;q1X~)+4E2#(ZwOPIp*-m8oY?5+8J9Owa;jXe7>m -z7u~2Vd|`ojmlw;9kC)E!eapa%YCEAsVN;^ph&@_69zxZ@Q-xFgl;H=g0n-72PKc*P -zdcP7_6S;J!z~UQwohCy5TDaYXszMzWdxJ2hnwSSb5`Z=%G+>?W63 -zL`sTH!rrMsP9?!8>Fb+52wS^fVA+hePV$IVH7OU(o?`$t^-tKNmY#!q7nTM}%CekU -z`?X1q022pEV(S)?3jtVW2B1V(<0~ILd2&1T?;5O_VSZXRHW&Pq70xFSe{yRS>hn@- -z=Bn%y;|}q+jqrT5I1>fUZpBSmpvn>!J-I>Co+ch*q4}8vyR;kcWn=BGRVHO^)DTU) -zp)^!|rt}5YM=VfB8ZetUN`n8T84?({#-M9HP2fT(+KFG%*yJVhy=S6P4YnMS -zhFE-d(ozv9Y53`})yi~3u*m6WqBosMbg`M2Q`V@oy%Y@RUf9UnQa -zrMHNQ;f)QEoxuJY$anqw6t1tcK2@0CFDo(@_a(?Nm$M4X0~gSVFYR?R)bYx`{%lzC -zFq(Y>FE|=GK>0^n-EYEa%HO3>sBLD=QOQ5Thyu8wbFFQ#cDPLejFxAl?DNmjUTxdzQuk3l)XOHlYC~iN}9<-nRhKt5nL+EgyrGO;uG6E+{+ -zAfif1hRZzC3R&Rcj7cO0kQyEJ1{Xc(S)8{)zxCb5rD}Kr#oFf@2?@B(5|psBNQ%Nh -z(`2%5w^iqW<;N?Va%JS*Kn;mQSWh469BXgoMwQjav@&>L8iuECeImsqU>fsHT^1x^ -zr;ns=d2oNCtwu|TAfUeOsK1uED&v@F=Fsc<+iA9$G0}y?5;`^c$pqAan+1X`Uvw

fNMMh4M|d!-prNP0oh?SyEzBZ|nnBihhlC}jY>T#@m5PZyyhO?)ARXo;Tj -zt_rC|uoQBmd~!&2;U`Ol3g9bvZT(eSO00quAYyfs9)rBWP9uuSEHCd7d^9C -z@oR^Gm3svguNqtdaYI1`g< -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 -zcp$p!;>D3jt`zQf|5XauuE~;HUawawgkdRHb0 -zP*K{hWw(S+tVqu{E?#39^P(OQwGAw{`@^$lAHkxv1?pv=Nc7ohhN-sH4L%iAvjreS -zsk;7rhqFkvklQr^i}gsK=Fhr9g7e{7*8oNbr>;!P9Iy2LqGM!ASRW7?L&E0kbSCzv -z|B_a$dkN&T{kHj}1~-w}&GSOX2!5M4cjrzv7ID(3lhG-6)LdQ~dXj>LZ8}FuT0Efq -zxK5j~>?a>@pw5CE=4g-AKXn^o&1?4q;q|g2n4y@WlY-lw*m5 -zB~9n<&hqA^qE{|Jkr;V22Ij#(s8cmzA2{oJB(ce}S+Ke6>r@dzvvX&!PV -zrf_(%4=KRr01g3dgsFnQ?8LjzY#X^eDn$V`zi{su9(E)u`61)s5WjcYIs9@8mVbe}dHM`%L+>IBbwMSLC#V%Xh?WrCj%F#9YY -zPUC0+9QM*R**|3&XtDBsH3qmBCMA3O`H$+{;s=~E#gVglOv;SoBw)$cE605;iot_N -z<#_fA@_=&=R`S@EF_)!#I&byBg~9TKX&$oRA2nPVRW0`Yedi*E;bIK1)Otp&`5oCB -zTx>-J>rPUwnu9wTiSrV -zUfANtr-RwB0O-^Chxq8Ci_s=}aWc(7B0AN~@n4WU8`u%xNumKu8tc2}53%+|HmqbP -zT4;*Fl4(lOHtDgL|5YEd1Q26c_tH9dk+4QZ^$Bv7Kxgkj0uUVN*+TON*b|UlILx-! -z!YUM61p%xZ;VuB3pd -zZqXn?|IVQQX{%u+|DmCbB^mwUe8a*OJ?)Bl1cq2n -zG5N(&(&Nje!ZlAC5IhLy@EZx26z8?`h|ujx;6c?sjADA^vFWMOmcl#QihKst9@@d) -z7)64X#>md7y9QLwrk<8iRp~?9ts!V9Bp_oc+jwc43GgI<(_ti7mIl)99NW1OchKYO -zm+C0udvR_y5`9A2+BXlsq^`hPbw!O+QZ#M8$9rx51C2ttLCKR39#{>FNf6VKhe9D9 -z+z=)0xKV!2`b@zhdQZlL?s0C+wqt)zjwoBRCQpBjHF&yYFq8%Ch1e${N<2~_rH#qk -z(`@aAnzP$fSx1m1mE|%Hfs1d1Stn7dx)uB3bFwkFkQ%0;<|IFH@E*;ABD_d^PPW$D -z$|8Aw`=!JN)+bNGBn1w(03YG2i-p&haoaO8_{B%8siH3BJ`~`kguk#vNN8=Ok<@z| -z1od+FlCfXa3MxnB_DrDuy%?8U&nX{x-@3^I^{ovH--sMho>(6aas)}74qk=Z!UoVO -zJ*^Nut-=qTcx^*j3g23_dgDra$o2H)~NAHe|s -zn#bN8gT*;H-WplvJ)=L3tcAa;lDEy;snC!N{q&Blvdn|P_ncIT_xt7cZ_-@dcDW{6 -z{3)zmwhk-(MGPV}Fz(EPZ(z-kC6xRqGdSL8p`wJhEPxjBrC88B!6YJL=O;#5de-ie -zpLm4F+M_$Jdm9yiV{P;tB}B*W`6~uyBH0|)N`x_o#@MeoS+Lazjn$QUY~QqSDd_7K -zxGf8N$UR4^E}M*gPH*DVd4_!s73uuNRrf4>0?=NaRok1S`90TQd*4%xY%RvvlGqoS -zqVnh;nNk$(M!l8WT#Q4*u^0#jHp)pqF6zx0l%f%2v{hN1XBv=Pe}Yd&B!}t+toMe?BRwN+ -zO&`mtoMilP>{#vun`|1py;c$#+R`e#2BfZek6=#*cn?T%N$;9GG0c*B{E^Y18-ye(^Cn{f@v{#W#U#zz+rT^s~sr@oTVx8aSpjZzEhK$&J=&8>3IyH&^WTw$;*sgpF@l -zFufk6XL<{>97KL=Cy7z)jEjHoEcy!nUbHs$R_I3VNs17`w{#l18WiNAE}&(y=2jj= -zE}Ub{FGw;&6LavQTJcDOylX4V4-*Zx%ogoQ0-^@hZ96Zg5fxF?kOThJ3UmLn=W!UB -ze{iG4|Mv7`@AQ@=*tn$FAj=yGghJhD1Wh&+j0*meEK0*0*!dt$5LWb6qKp~;lI6** -z9>#nu*rV#*;Up9JyYXJO?AIv01t(A&fMW -zT2kU{{T{v8TzDO=-^m;3X@4Z^nO?za07VJ>hr#+8y|+B$t5|r&9;jd_(AGM -z3sGpa%fHzuD!`(tolMgD0m>CocQ2;Sh%WIG8I!FggT2P71sZV*7I})6H%qqDp^F?k -z9FA_vycjHojE~sD)n64^Tai;|hy};!o>RXvAdW^dxaw|?7kG+{rRK}44l!iZQFExX6WVP^V%Ce}` -zF6?&9mlJ3}>_=yNS_aaeujL&Aw0ynl02Cu5@)OcNs$Ul$lZ0L*lmq1nE282tN0hMb -z!O+Em89Pl{HFy!|q>rb%I4P-(J8AY#-)IHoOEEt_=V(0esFp*h7W-_u&;W1(1@e^5 -zuewpl`JeGi9XD03+*Z>=^HFY|jr@Yvw~u)2iKZz;D*Ed<8ed{@h>Wp9!TBQqR%ckE -zcg7TE9bYOZ&=!k}eK)nxAJEPmDgJv*Oa>4;SsG{HaGhJBOgdA+RLQ|*>U1Kn6hD&% -zWg<-L%eb#v-%Zz$LvHC&!_1b=2W+ODjg&hh917DZJs@NQW!vf@5?p|^Y1A$ -z0L`G&`Fv1n*g>*fG4StbL;P2dvww>uq<0K*3nsbF0WcoQS1?lvdKI>p**){K6Vmm#>Dq$`6v_~ -zc)jua7A`POd;U{q{~hI@pb4IdBeZ0a1b)wh!H=M5ip)g!TpH-f8r)~3X@PH7XDWqb -zG=t|n`k0)tgk>Ul=?$SsfxbZX$^jfXpkvV!K+ds~p>2)h!eSOg>^1fa)2?l_aoui; -zSf!}~a8x)yC0{W;W@%3#ljYwA<7&D_b8OR7)4+>f#Oy&msmS;WaChTL{d -z4qe)hmDG&r67nX)SHPJQRBp?#1L(<2WUt@*id3 -zYRMmq=&5619`|hKolvSdypG(>hL75U=@@4Hx*F96#kPvvhHEtaWdGVKD96aP416r* -zw}aWCqwdO1^;OU%vzyzI3V_phy}9%X_Wv?jvcZ%>jg5rz%7t3w{b%pCg3CDU -zvbfr3;7txA053%-BFg(d!xI+6&KiFz`|JYQCOPer9nS3Vl~XZt$a>;;nwdb%Dne$8 -z|JqeOp+nhxc=XFN$?q`jk?s}FuTee&dL$+apJn`NKOHbo5s?f2kEW}DsF(}MiT}M9{&T+balCi$`|i%p&OGzX?5?t@ -zpeSvJn8ji2vk?62y{4V3H;r)Ju}oILivd%3o?Nnx*z7zcOX&KA2$ -zUdTq-{f6zrE%CY3gXpNT*Zj(okdnl+$n{F`%ypTx%uYuHO7dFn`FNI2DV6R~0ikj< -z2c{&ulX`tqX)QltkL^E3lay0PoPXj4!|8i_UxH2>^*qI}r}C4h|4No2us?{%GSDl%wTe@@COkT_VRLnsXkO_0X -zw9oOP^<0-6ole=lF1-8a9{C31xU%Nx3(I$n8f{L4tz6Sgm0njE<~ba6?8Ewe)m -z51fHU4T{Y3j30hJFQ%P~RZx8)BFO#W{7BUdMPSiMb(8^R2dCZTIR&)FI5L9yWf7J; -zM@jxlyMYX-KLCOj)!|;s5xR5wXbTOFaOU{b|-%aP?uz}ey|e8(O8o%g2w4~*W;>KFG5$oVOsEk0!~MqI9UEgcP< -zEIxH3^FeyTc>!nit>rJJa{YlCPh7nsZJYLvq(q0-sZJ%Uc9b>@WM!d0zKsgkDSd7DDz-G20P -zDFpO?pzIk^70U+?G5S=6R8PXxB66CuyETj|+PUQ(G@X!`9EL -z0U9O$m(Y;yj4qa|O>8zc^<_2k(GR@Gum?&3t|hfqZ;)}?pEGtNAL(c!Dx%u~h5zN& -zkyG0w&PH3#ea!^lBvp9U{AzMh#K>5mg|IIFZ^sGmUXE(KrlBX1#cfavo&1)WfA{?m -zzH=^p3Ek|C>fv}>An~ubW3ro$Z!4@ -zAZI{kSNAV)_jzO16?b+u_wSg7x2#TtStivqzfEBe#DAp4;A7Z7GrAp5vtz)GuyGq` -z$Rj%P-%oJ2HGa%wBaD?GuSrXdX9p)9zA&QoVpg$m86v_4_R`HIiMOQL? -zI3w}32jl8d>K)cXJS}q};Yu?4eYD2mMaY;smob-|+?AKPEcaV}(Yqp$oaH|gw>Bf1 -zrJI(N2hQ^a3x6@LO-#_X|1x0EuUv6F%f5S17i1^)Su-?l>4;TCD;2S2mslnJj)Mx4 -z>xAW)|3fgW+Mfp8*z)}iS<>kzlsTD?X%%s1=M(>CRP1j~fU`S*YU%PI28kN;LRwrk -zljbv{uXynZWh4KzN$(+3=YK+wPO+=RbKYz-p~iv{Xm;$I&Df7Jb9eFf4-dq4#@#8@ -zg973oTm$t9t8pcg*-1CyL<~8eofj_%zN#s|I7<@-&}fS2-9SS-)gFC{$Z -z`Fl*Q+v7=8*~w;XU7y+Ewrar7@F -zEVVM#p5#G7vDLJ&yMWGI@$DLPGj~SMe#jw&XYst2V)*fqunE($oH{2DH0%VgGM9fV -z@c2@J&xD|Kq)v~qAlMnpuI0#Vvkl^p350p%mHwgci%GYS}xkQPXOl~47bUZ;9 -z7CUBpl~MQO5BOb#!9%wCUup6W-fEV?J41xS`y%$p$Y(`x?3>9acS+T6+1;BIXmv5_ -zyT$t>GDzH0^>yttfZK>S{24HzQCB$o9qpY -z?>C;?oL4X(%g>RSSlG-ngbQFd93XGt!iBK%CyBk9QThRK(}I5ZDa`W5c0(>dO>o?z -z0p(-0rdv$<9~!q=&!R6<5bczQ8zK8ddYzGd7d=_q43BUhaxIl -zv+F}p8V}KpkOJOv$a!zxrC^44%+a$BAzQ8xB93*!5e!_{_ -z)B0B3Lr7G3RlPA~cD#SBk -zRzlYXF9y;k@^DGF66W=4@=24?NSoNU9GpEjV4iKKg&HsQHE_RFesGF9a7?7c8K4VS -zHcx}xO9lN`{s9p8zN6@T-|vDl!8&>H-`O_C1k!dh>I83qx;!> -zUMqEqF|Q(pI|1)SA;?F{4=o*q%jSc_tzlL07aR5@O|I~z5T#s)7lg*(_b&8}8g3*q -zKD_#}`;tkWd|6$EEdt!S4q@A$`%PGHBDWoE6GF)4K>lsp0SP^!6IyntNMf{RiCSnq -zUMQ7ydKm=LpH`UK#aY5aUW$Hv^R=Mm*>I`!b8*x4_5TaIzl!5o%}GN{gcg;Ahn2X# -z-g#!0?1tV>6(1B+AX{ezRxPfw`O({QLY!zoXA@E0E4t=Y;dh+4_9)erWSu+_Fe(>n -zx9gdPk|S8*#Wvbaf&GxuGV5TOf<8x5I&S^!KnD{io#SBwO|EKB$0b^(xYJQ7AN%Js -z&1@cs2X}0DbG3^U^_JaR=p`lM7>`s8b{XweEj*GilCK({0a|9JFcl`9&w=Ay5m7wP -z7I~#SX992z9WFcNbVjYDTUU(_={Z}E_7Yb{kv~MW)^OAoIyqE~losfn(ihkKEOApodRD#`rsLm#_EjMS#u-WkT -z8X_KZ@(Hr*LAgGQSw0U83dF>DO<$VdsHNM{!L0pThzNW}dFm{m*2#a<7GgkYD_)LK -z*#ozjrP&Q*{lDre_fzCoZkF=z(M|`bLNkbEOE9aO#abR&Pp5Bq9A6H3gV&aLZS3gB -z`ikZEKwv~KA2ts+id_~BuC5T1ej^gkZexzqde}RlwiMWxW=APb5%J!5;jdca&$*R28BtX+55;#VZ<@+8&*1ET7J;=7Z@mdKb&IyAN*7oL@7{9 -zf#rSngvTjlpgxndPbi2+)uh%!=iVZ -zJ<%FP35!RoBQcF-{16aV{yKzV!Z3q^fO%~>rk43X5AYFMfYT;S{@%4iaeT;(R?5^I -zH`q@7hb=!s7lfmMcJcsuOAplPHNBdfogV{L5X#AQE}tXS8v@`=4`5s0Mlvt!d;^N# -z@F1TL8xn@0sY)-QaYb$aD0yM)XQ8M@Kbc5K3CMEj}cEnT!&Hnc%!s4P2I8Q@}zH<~>?Poagw! -zBe?EC!zUAM+-^Rx84v2q@kAG$H;8%Buq&(X)TC)3G32?amc=DgfJ@ZtM!?7 -zSP$9!_Vm;rse>6>==(gOLa-P+0jhT1Qqq0$=K1S4Dfa$bh3~qH;I861ubt1AfET_+ -z=*AIYSwhL#LHT7plQ+>B&b9jq?*hvFqxa+fq#X};u-I1uRMWk06{5z8`RNgpQPbpd -z9598JW6;)eYXKyr~8g!T?5=r?bn@+hZ6LI9BKUBhthe? -z$Zul3W>$zH%Sfbo?&@mbrmfo`=?3j`2&Q6jj-$T3CIl;ez@^9#DOxlw|W -zXz2O^W0MLZrg3;VE`Foh#pc0b_eRwZ{vD6=^v!#>BV6g&RM~<6k!=5U+(Y)lnm?;L -zj;%<`yCE%vqg+NBr{yK}13H)kd)0+e3;HwLPyRR9DLOMwh7wE#1z8=d-Far@lX{lioLhM!n_3#d=Fyb`=ctKKG& -z)MLF#_Q)-TwD5#-X%eqQf`b{U`>T5~6uBE^{wxDxqeFQeH}#f4kIah?I&=l=v|Zs3 -zl%O(k9P$H5C=t#59W&2Q%Z)~3ef?7JRuyHiM#B;c_K%30?x*TT-K$0ISc!7BZAV8I -z!=a2qk*v&I?wIb<%!DbItUDp#9k@usL&Qbq9^0rAn`wbFHwIHl`1&s24)d+cjw&UM -zqzCV5^-?A^q}6SEZ%{&QJ12!Uvdg)R_3#DmnSN9mo4luRdEsx|LvlSbtsjEHkg4A2 -z8#>MI!VYmaq7pHMW9t9OlSf336w>H@hM) -zjpZ*nXd-Do@8jg#1#zjRHr~*j3Eh1eJ<>detoRe7$~XeqR8x(aR~{`Y41&&*of50xLIJc)^EMM3)=nL!&UQFw-9jIzFy_?=mB) -zLP988v5D*vlG?7iIJ6*^$3V6y>D|3AU$o`~v@ye*h;;wBG8yw(>+Bpi-aW|s|8Cft -zW1q3bX=#*wi&#}iHi4(4SJS1mO@dpAXfW5lZd#H8&uX8t_WKl{JzQ&gUk=l4aa`Op -z^6_XEv?NWIow9YOKF;Ls;E=4!u*S__Yd+;SJFTU1{tO6QzL5eomHddB+#L5Fb5o_Ao>IY_25~)I}$fVkWfqI)8OU!p6?`bSxv^$(+pW9MZQ32a+BZw(7`1db;Bu#97BQ&(e?!dmJ-%WGh -zk34>H-l8?{cIY%|6|+DrZsCxj4=eu$dntE0@$Y;+V}=Zk{CMSQdmXq#B*6`JM9c$F -zQwV=2anCCDvdyVq#;2!bM1h1cCVI0!gO{d%N8W!ie0rSml(R(QKeCWN8C}1vG0)1+ -z^4zK{>%HWod~T&%iInKb=`!%%drZSlAgx){*ywFi-%98%HK+QQUEs=WV4Y(jz{+^! -z;x4geA+4ejDX=CE(r<3PWBU(QH5(?~!tvZ5GafAV&%9XaXY4CyS4rZYAe9aiZmVRgIBuo87 -z=ip@(prOWaVy`O~2vz%^414`i>M+!k|iY5)za7CW( -zJ2*#0M^}w)a<7dGbZb_0rT6+N`7i1Y>FTeNvxLYbN9>}Grt5&Fe@3*K;3on(`zQUB -zE-Pos9J`Mh1?~}ZX;|Y5_VFP_R(bLf`B8Kq0=eS+s)|Pi9~$z6pSp?oh2^%O1Zpwy -zh}|AXPZC0ks(K1l11giWImec7*>UgJg5T3S6=T5I6dO)({&6ByUDk~a+1pFz{q{C$ -z(T+y)$Sq^YaE%{Z4qmP)>yJu~8LZx9(vR`^E=H`c6&Rzt60>#KTy@x`qs>=WLka67 -zJmWNULT~pmej&k@KF+l5i;-h}-Q2oWwvxC;nnb*Gaa?HE(_Qr4{(iLMC@PECo9Q=nTt=92~Aq -zWHQ6S=H;WiQ7I8D4h%ViKgM!oJWfu -z81P92frZnVg8?YWK{!XE_HiLaw&x~$#$;9^>_MOZqP!jf&OEXpIGf{0yf1M4fuYqgSzg8WahT^aYI@S)*!u#qmfE*3m5>&TdGw#7Z7 -zb2f~JK>hB$!r53p&BQ5Y!wu!(or^@1rz5^ebt70|Ltvn{@5M*QP!5+zR!2d}YRSkEZ!~FSlq346;XSg2a;mMrLe(;vJTX~l2AhnW3pj&V0GQB2aj0HhzN#EV}f!gWJZ;;yUF_TBAx -zM}3x;rO_iF+o3+^$nju0&~|g;cnK?onbOlF7qI=@&Wn~ZXv{srgY;>%llS;sGee?c -ze8AvWBvN&)@Isi7wO>k8wP0Eh -zswZRJytxvrC+P1^ItrAZ*I+g~H}DYP@GR*=hj8>gn2zOye;Nn)40|yWwNS~Qob7@8 -zSAYiqfbAoQ(MUua`L9yR{g>7rw?A?pFI7W^N;A-R&AW{WMIde_C)HGct@K*_Koj3G -zFR3?LG_J>SuxSa^h3K1hPxHRzu~7;HALpDAGoz6>*--hu<4i5d4)e=`8@I=5`SSj$ -zsw<6CaBtGlj!ov--M|iNbrGqXC@s^CgY&(zf*->iKncuj-Ay- -zM|cBwIG-Qz!$ZG`-3c<%*9f+wyB?}I-OTmt{ZP#C4DGi-O)Uf-tEQu+4<)7haydHB -z;CR}S#!~0R$iq63)Osu>$xkc$>=(YwTTxkNH6?O{gAuiBDD}HP!UiJPTq1D;t<+`# -z8>_iG=LC%r3lb2du~#ASJGNI?&;0#Hq^&Xm8iJ%@Bxf@3ioe)@jmGb^ubvLftrljV -zt-SC6-V(YWk%(OoYb4V9=3FI#Q>rwQ7KvnoTjB5r`e(#P?LjWh8+F`oB(D97@C{q` -zoG=QTrLfBDypoF_EE)+F$u*(rkV$y$F(v1rv6kYP?v0^bfk`n4zf&HX7c?CLECwJ} -znpTqY;jQ1~Yd9{y5^u2?dh9b@RJ$taESdy&1_+jh@I=lqYU&qvqN-eS7xa8)fRcT_Q6?_?VPiCw-1Br_%eMNvuUXcJPbw*x(=D8nf{YbyYAg**UR^ -zK;DRHpk0AfSTR(K_Sx62V>FZE7|8K`=_fI{YNPxVW{T< -zh_rKx4Z}Sa^mX(8;_LJGhZEV4I@#Z~_4Wv=(IPSOBkDJVG(#2@)3>0s|181?01kT9 -z+q!&OC8xQZ4du$j9)XoB>Wjg79D(NsBPHwfb&U2n2EzV8(;e -zgB*SWX9xt?#xiD17dV4H23;SxeNu`8yH^{Uy{v-uo?~@|hOcpzJ!~~7#}4 -z&LfM`l{63xS~7aw^XAKZ?bf5=k&JSIKGA5A$rKNtf+LjHc4;gFq-U9$8EP6(s2#cL -z8E=Hr``uFHel>8_oncJY3okqD3PWU70;&&?3??(w#>1GZa;?HAr?yOqqm56w6+Uhv -zhbSvq&AaoT>c17{it?u}@!ba|h8@Y_C;7NClcgNU(Ho_uH$PvxaR9gvhS%$6I3pv@Ivn1jOa;aak_)U0m-=cBccLRU)CGr*LVcLpj@3+n^m4(vZcU0a~1uL?vIpBv&Bv4@Z1?~pcK+X(eVC4}v=p76?t5DxCjHza+N*VZ2> -zI=?>$C^r}b1>;7pX!Lfw17G%9dN;=8-kkRnn}!I)Jbt<>jkQPs3%5geR&i76R}{y% -z8wrA5R00b^~$k^Ert49x^)8K -z&-PO$)!rqe6o@6DNTC(`BOcfiQOr`5tA1tpK@&G(WXU-kGgYAHAN#fe@3*nDwEeBE -zA;{F%M`I#NqHrMRu8@x&!Z97{cD0SlFmQ)({x$yV#?^j-e>i7^!~-RiY$cU^&2U-} -z0pp8)TzKzyc0wbCT*{r%5~^XPzncjnxMt{?w!w0_h))tcar=_Y2_XJ0@5~Jyu`oD| -ziG*L{ePwLuEV;RoptK#ySy^&)R97O`jh)!-!g%{PWo-yKSg(w?k`=!yqgk)el4t6Rc!7hn%i_-Io#{q5% -zvMoD@e+uej`$e#8zcM`?@fQOp;f>v~CBqSG#|}vcA`0Vy -z%^Ov*=f$}VBY+hqsK7rRtq05Im1MobV}R~053?5T*v3Y3@yS|N_Z@h=bigrQG@o@U -zfGQ{Gk5^wLb++xvkVUWg^6O%m+=Xez)~l*ToAUYqdH;j~5h|Fd&_EScHL%hy+LqbUz{F@$+uJDhX9LGZyh#*r~k`5mkOgi7$w#LKXArjkOeb -zP!0sBKUsqly6F?==&6Y^472>-8=2*0@_lZjSnA#h{k*&Y#q;Oy2ShDMd~tFL3(Z@U -z`L4f_L^xhNTE+^sHNHA6K#_dcSt!k?&;1|sk7#f(tUI=gTLAy}FRd_^@4p@inK-QI -z`$kHRY=yXC1rHm#n-wce?t<^wWvB;JHPjQ -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 -zY4+5K)}6H7D`FeQEP)2KQK^>#9^$t -z7O|1Q_95_^1P*sPS*Wb7_#U|%s-*EmXR-`7m+T1Lv`hw>@QE9mjCz6?T6$lMNZU3? -z?iap7A}rXNhireSPch-|>-SJKuPu4CAG|nEAk^A@Ki%G@_3RpFg9`BYyLX%ZK^)Y9Bs}3Zrbe;0xYb6wV(#Y>=^qG -z&F^s^r^TCdV_(%Vd{`pg^02Q195JARY2)}D$kzPuv4g2V@suL=8!#X17w$qI7t}g&drc} -zKZ05xbHcJ^EG@q+sX%Pmn)ixdn$^Hl7l1-WwK+-1Aqx)Y_OI_*$iW_Z-TNjiz_E+Nqxy^zrW5jkH~*FV$76Cktvb_wlv`FxIWD!b -zcQ-6t?rZjKqJRMY{V*OWa1`> -z7OB#Xw#I6@9!iT22?{mBOy*WA3M~pi4q1rw-OJK|=z%mhF=mVR?MpPOVIcSsSN<#} -z%<4WS8lp^;2(YymSrg^Puh#mmHBQ8l<_3R^{u`_kWcvKE6g2n?>@tCe^jm}0a}yKl -zxLlunL&v@OV+dVP=Pd+=r@;CG%u#pox&O#)bnIN;=C?=eps(ScRb$8X_EiJ5wn6A3!BRQmi~^P -zJ;t`*oi|l^kv_pfCU4S%S}J*GD_vryI9894Dwge>s)1rN1p7qk({+Mc; -zNa+V6--GF%7(}VZ3*i}3(wH@}$&6qLgiT;K3zS%thhmW`6d=6ox+5x4KB?xf@4$Y8 -z0s7BGHL8dPkyaefse?CO096oi|3ds5b%HF38@3`FYb({36hEu|< -z)^GaD*aHTEnH)P;KthweL)f3sZ -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 -zZog(Id`(k&=EgoIw7C5JboU5`W? -z9tl=2W0!N}!wlDv3Zr>icKO32Txv0-k( -z>DKC$3Kje|yQ@O@P2YCZ0ge@+I{+ZjCp2j3{BlH&{~xJ@*imisMTjt1T5aWvPfkCU -zDh)n2Cbr7^CmNGStmh864>7{o(lVd+mNxFi^-2TXr7OGwTPAkG25-$!!Ky -z$79J%{T75KjD&7B?yo-=c~7e$r1jDh)MM8yX~_kxvUQ~29my7X7_I}fObL3<1IrBUK-NOPp#F>ul~n299c3e3ilb0e%`8$ -z)u|_MhYLLaUiE9X4FOpSGq#GPsUM$|SksP1Mn&j~8k2VjL_mXURlk0YRmw(aXa$5$ -z*wCVwT=6;OKT=|SU6ghZMiv9H&#s5XlH4GjyFW-sI~%Mu{aK9Ip~IS7kj6A#(e*G) -z{MM380^NO36nZMDI?^?#aPa}_;R6ilG*Zz|{wb?Ec|wsAWo0bm -zBJ##+YLqgC<6ifO%H712_g-(ziJp-p%`FE4zdI64GctuQbt)oF9IVT4cj}LG3ieSz -z%^_8yHKAV`LMAY7^`bJAV2o5sW9TKQ`lcPBTtLm-1xo4ggu%vt{Eo&SpE97h<% -zE@UAJE5z=jf5?j*aV0yKJC_qGt63{30+g+MQOBu-q1mIO -zXhkJ#7a&WPy6%!N%r7D06~^|TBVQDvwJ3EXKnb8d^er+%$PsRmD}Vwz{ejjVJY_P1 -zISbIsKsdV|%y*`!V1V=ADNSMoKR-|y1O&MYc-XX|Uxn`WN33AImjeS}(3aL*P<{PA?JF^7Hb>Mvz>!n9`ALgaMmp5pLmEraVzV_mPX!<~| -zGP2p2Pb3o5Yf(9tMvLjoD&)rJSaFA2z@V-L7U9ZS6rq+1e*ug;f&B|WHo07%!e_M+ -zB`Ba<^9(lbKoo+|Xx|J+cT;9$r*XT#m(`AWecZLu1VKKdcPHu@XM&~;?XFOISCe+* -z-JJ<%I8NVotRSMWKfY^B)y%T< -z`CClmy}J`9$oHVs!ys5uq;PAf>=JrsM(;8~fs2fC^AV^De2ArMUr_^{e9No43pmVWME;~pVUGlP4aqur#COj1%>(=ea-B(42}~4gme8_-Iiynu+0~g5Z&MM46ON4?hiYWur4Pz6R;xgo9sc0 -zkTPf;!Y?756Xw*GRN8u3>@z3Eb}n`3k*@JW7ZfJy^!O(jW+6h+P2OyDjJ!z?nTJ-8 -zdDdtmtmD1J$6U0IQ0#oq)t#J#@}b`fZ@cch1C -z?hnSqA^)SEs!a-^px$k*5m}y| -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 -z5ok9Ahq-{&sH4aY1l -zo3cF5uzN_We*A>1+Dr4_@$eE9Y+CUBASiZ`q2AZhAIHwFyFsIlkBYw9{Rw%Qpwh@2 -zar@zYrL@(nGl|iA;H`^BsBGfp6GAK9jAt7V{pU2g-OrV;of2irVN);*6;K3f;+WE2 -zBG~BGm(#jIla$4zr8BT#dq1yT^Q-@7qtAU#;^keB7o>q$JCkVIPkoM96t?a;)8+eh -z5lAF5osL}&a5{K3ijNzB=~{M}pe3K}^gd}?m{PHy -z4#d%Hrkc;!eQe@JamKvzqK0X8`;vMpVfVA8ge%N2o|gVY_(a6eLf6XI^qzOo94?~r -z&G!cQtl?s1^8JYSqv?i)lGBg)1MQ+D{t+>Hvum5G6t5@b>j5ZT2C0R*n{tfqqY$fhr}7`l -zTq$wU=&UavI_(8RE1K6cE?*wENBGzl|wgwK}Og+)^m5 -z$WAnK`mL5JFV4*)Y^$62bF1p7S^#nb_3V%)~;1neIXMGKcD-PW?K;5SJ-(~7@yg;G?}93i~2gVh!UwOeQwqq7d5;p -z+Hjn76h)wUWsVJ^7q+N$wE|@N$>HF*?pfiO&y`VTxm^5hLunu}0oBTtxW6-W4@qwp&DA@&bdox8zK8F` -zmW7O2y~({_Dwns$8*SI)9Y7fW@3#qy@CJHYBLu?I4ZWx5eYH|)8(?!^@~v$56K!Z@r){n2MsXZE``3G^9*ypVH&+gz4{9al5JxDYa623K@TYnj6 -zM^-UGD*8{628%&?faj?O`RLfFSGyQ7|H0)OP>%stHlbEh@;InTCeU`@qeJHSThKmq -z$v|tU;JCdeQz{z`Uag~@+HWkObn9FDR(ZNvxbr#m6U0aeYrLjS=BXWC_(Gw9oAF-Y -zKn@h_yW{|uO_y*5r*ogpeN#U43+MeP3b-M~KOB<m4H8D;$*>>vT9b?`LZt?_T`P!TmC)X=>Xam7JM=`OCg)%e*USGR-?8KW{1rGs;DysYDbL~w~IR?r+jMiVeuSLX>`zw$ -zB97Zl96&dwrOhmj!;x2amAkM2t^z&r2QeJMG^?45o9u|;v~@CQ(}do)<0@~Nv9i`7DCzgo28#dprzFDM(53>e0F=#iM}Uv`Wc~yjqVV<`y@ooqQUtj=O#0#r+8rUa!aQ9)vTPJy5J!Njk08(s8x0d?j}!Zkp(mKmS0E`2e>dz+gP> -z`Ks?edMHHa7*6QOBr#0V&^V-=t`h6!DW!&)o1G}~_lncs=5$zjsFIEzgDT>>O&=}7 -zO@)L*l9`gB`_vh9X14efSOF~u -z1ic)S_qCEQSCeypD+LbK(Jz8y+)*@1Ej3Mw@3j58xSj{PFVup7`V8 -zE6BD-O8`NAjx4VweU)W*$cOdtdlO9%r{n8T)L9BmUC{C7`UEYl0{hv?W=?+F_*~d9 -zq3X*xWcYPwxW@0Vc)}G9M{nDRlv6CH3vrNDnPV`6tFhr=P`v+o14yF@%z(8xhukg`rQMcndakRAl -zy~B`Q)3{`d!kMmd0$9ddBJ|jJBbr!k?ofrFaH;}Q!dnyQ_ywH77Pamt^)!&iCuQWt -zLv~RqYFmda7@~J>hp@5z0TRt{ -z2N65?sCM6D%BQV|Of$PtPs||$u&_WHL(J&Ek7@6ido7QR!b@}S2qk(RPEFR66ZuO@ -zx7X8#-yNImymuaUedt&ldvkHi)`I6@)&8U(U-Z9HDny($-P7pHT|c0K2++)=PUbFM -z-e=S=QrSC@NsrL<^Qrf9YgQh{&AwcHyV#~?QXw)HkkVOjom2A*Y9HX7enDayn?dp2 -zpuTSyML{RLeZ^pGN3Jv6X?mvA6G{wO@?9r%rAf_Dcl&447Q9~(O(j9Gde!joZM8yC -zn=17pW$|4@26>b3IUEHa(IAzdZgXMni3f4>MQo81C;@ScKC~X&52;AXl~hQ&Y5DMW -zb6Ft_;sxbe`)uw!wj8V&N9?&UzP6w!>Db7_&y-udC!TP{FnC&Qnb+sB=_-9OpI)Ex -z=Zg_coyA<%b6T|hX@L}f=t7WPd-F+O90a@Zx1cNxC=60YcKhpn)Ilp|Lb{zpW8*_f -zJGRM&4YkU6D`<^QYW`F8me#MLPW#xfw -zj0VYEC;ZE&+^64WZ0HrR=+#|NRi0F;3%|I!pi2tt4n*?L9{QcQ&fyCt996~7|moyytK{kj_H8QnvQlCN(n;q|em{D@-eb3YR -z4Dj>VxN?34v%;P_5U*kUJndt`itqyWt<}eAl=!{LK-j>T2o$@ey6+43*ea1lCGp3PoV{AGRK+pl-8+T3BR5qki7wWvQ! -zGEL3LA0X3%Kazw!HERkwwCm@E)qaP1L_}4~q!Q648Ae2=k!}%JBudhgE=Qk+LSViP -z;At}_(}d5~mPG4m`K91wN&eP)w)(>uWC)}JdKe= -zr$j)eBJ$yT0;^$CDHozjga{zW -zP#6r~f{s|woi|_?xgwvqOb?2#>(8gZ7j(UA^uqGuyDulM~hpG7e*A6rnb>351p1xXudb_9zL#yB8ya0OKi1bf|tV+^JAWfgmyCT1;Xk&*@% -z4NQ{eqR^-Rie}_}MkMmbtH~gbIFyiGXkQp;DT-{bWQndKrVnB={cCsF#kZ1GFD(5j -z9)W}yn4^i_9*!=$mB#0EGlD6GYNKKo*Bd6B8+x8S!ZZ{#GIh3c!#?^Vrs_O`Aqr?U -zIE(81q?a7sScH_kr`nH{Rk$dGN7S?x*H9 -zv!${UcjiJ-9q%a*j<{xP)nd(peKQ761KI68!oN!Wk+vzMnH -zO7eGpT&PP-UEeM1_=crBkvlIJgwE}r{>cOCbDZ2!2L)N;O+WS#S)xA}7ag -zBTT=01I;OhWhJ;?qN_*we)|$b9^SBG@$K_s1bFJ -zo7q=5R#kbMB!jDGzqxNeN{fWxB4m|D^XK3+FT)Jlew#hmP|r@OqDyDYHl{fGI6t>MD`)5z+4+B{;@>67EZD(wdsqov* -znyP1>lVHa7>S;;LU69z=WW$isbfM;0uf-&XB-R>jm!!;xG*iboG%-5yA5j%DcW+W6 -zPTS*+a%`)`XelpT>j#x`uLGgvpN&PeRWHn<0W=C81S0PcUuWA&%94EPmJ*KPi8+Jz -z9qPx|(Qe1@(I8s4YFqK&vX;DpSg-_S(3?csJ@3)j-k>Kd6r>Yy&Z4;iS^*>8;`Bu^ -zT7Nu}uAck?t_c)BL|!yp?$?}QxEg!U`$Axflqy#oRbKOyGbw6cZi1MLtB++d*;Hsw -z>)ZkG2qwajCd-qv92vJwZ##Rhsa57O5c1^L2=)%ijxywtT_#riPi`_OJ8Q|8%=9Rs -zQV6RW62FOB$@2EU*i!i+Wy?~DmM>M)@V)nZF-8_*NbOdm+Tm>EKQ`6(EMlEoY+*&e -zsTf;kxgz>Dm!%A1c&#=)p)CT_y^HNIUCvrp@Z8R?D>=gTbk{4{FZUlo(?Pa8-ym$TkkVRO6 -z{`%G&W?s`pB_0d@$Vh}0w-?1ZQlHKu@?5s$t6&j7?kwmnP_Bo`pAexJUjld5D4Pd>e3#A(`*|t)6IdIM@=@j8M{IjH$9)k&03VXM7 -zi&nju0ELZ$!V*&FZDXmUDSs?pisKC}mw<}Y68(Rw6%CjkB=+N9%}^_qZADiHf3p~v -zq{o}4i<6C8OV4OOFnlWMj437L;EoK7i`v*|e1wv7udC08soiSNppYV{I#u5e=!G;- -zQdhEHep(m=W5 -ztJj3+hB8+f_fRZ@oK}GF!#loBMoCj4`Ld-{Nx0%d5byy#Sd~b9*`$a!U%!viMdyHf -zcd?fI3bk52Se|n+`;R~A4S|*TSSp+*u+wz>q(|@w2@*-xpH}(*5h`BMtvh|7C%*w*qh>XPP-DQsa;3@_qidL>R4W0 -zt!kB?O!i;eZT7|PLs^Unu7YdV9>i@b$gxU&4r4=b+U<=xsq61%!=$=-{ov2)}v -z{UvH5PrGBJP5t)5#M73nc8Xuv(Y}^mdSTBSzSi=?5?-JtaqNP^W{B~5@(E=u -zJG))sQ{*hY|8_it*>Yt}w@L0n7#2!b4PVNvs0DNSRO(0mIRw)_O){tV0n_Lhts?~z -zp~a5Fm(T1I@-6mukg~3&>-*40t?wekGU3hFiFv~m4+aar(8#?@ukd$?7jpaqK>Q5! -zC2SPt_$RROgl4w*w~BOHzbNq;PCk;Vfd(ak@M3lXs~W{KB2~neZ*Ss17cvbOZxP(9 -zv6&eLaLt5upnR=*`d_L}wZ2t0jNgdNvOlH9a~VA>UO{U=DDi`~`dx>)lwCXna~Gp? -zEBRx&sUA{qP`Fw4r5kwPX`f8NGq)iAz9gP0N786%7T-Qx(%~n@M~N}GVi2n@`u=dE -zd8#<_2$#Pw>7#hXK?57XP)SAXH6$=BS_0y#)&M@V;QRaiF9N4gENuogniRvM0jm1& -zClHHb2+Q6oS~NgG0f?n#F)KDE8=Os}fQ{1u-*!cpz@7a0@Y(q0o_{33dciT}C^&Lg -z&J$lrin`CW^Dc@-L{W&t8Gn6N{vHeN -z!YDwx4e~j5@(^An)rIB5ahQxK)XD9UJb+Novl5;%6m+;JZ8voUYa<7j?8r_nv1jl4 -za6wwokbnCjoHvY8b225pcP~l6 -zwZu@Lq(g%%zjr=o5q9@0ZMr-3_6gfl59{hMcYfo>qA?gZ5IEqquhZ3ARjZh5>-0}- -zC)<|8MY)lr{?#9&Ys1Fy8lHwjY{-j#{xQ+N+?Dg_4coIz#gcmfe2G3jAjgPLaRcL7 -zRQHb?>vVAtd{kE`zZa~BBcu~ix)0Jc*!t1Gz2BGZ)+WRdRACHX` -z+{Mg>DZo8!NV(Mf++_cag -z)liJ3#3V7uLgGVx=x`=H676db!%f2YDvp -zKeYvytux@CAQxTa`WpXz9Jj1r?4PCDu*0dCpmQX^l)-ySa_fy^pw9UmSAzkWu -zrE43G$GqF!93f|I%Rj>YKh&QYMB{~C_g8%XQ~~-o!JyEVa74Oyzl~F-+JgR0WH25> -z_4wcym+f0`{~B~636pzS4BD+wSr#b!mtkD;pNTkHd-+^Cm9 -z^zKE`h*#7DC(QfnnV^_vVAqLA<-{k@Yufdmj@@NPhvJxua*99?fI -zSwx5f`4vm@84I+iT=pE^T_EVHT--*omL>G;tK7>HI5FfvZzY?R_MNiy#E9U0cCu`Z -zd|L;H`Kq_u_FQ`9;Q|dVQcgfri%UR-xx}W@N!GP%^o$DA=^00ERp9G_j9kFdv&!CX -z&O(h4@YcqfTKt=}>#UNvqMR7hciG;3M=XJqw;s+jWND3-s9s**!kOM&uS2S&B-*i> -zmF`h^pe^jRN)B_ -z!8hE0I{wHgW3weSD(t?J2pe;+EQuCL<%bG8R1cO@To0L47nK(D-=TI-ndIfJnk1|a -zk4L8P&X6cMv4?)@%Om*2I>Wq$1uk4D#1?VM`4ka++nR{y?c(G(iz=O}O!qSIgSZb3 -zKXJdSYh3F!ze-egArzIU7Qy;sta_Z>y~4*cXDm79uAu9$V5|&q4B7sr>Dm<*9$TPi -z2xLd{Zn%z_)}kZ -zz_3q$B1x)K=A764L(jH?TF{YvRSho^)mmRR;)h-SqV&h)e&Y4e(^vV+@Uyfabz^j) -zmG)w04y|lIc_(LPtIE~yM5lD9RwB~pT)2j>EO-Cqf$AWLXTPNfKFg{8dMBy!2bM}y -z1_v{hnNwv|puRZY*m#Q6a?e(jVM3RmQINE8=AQLT+pl@35KVs7iNI78)uuq5#5)`Izh(_%uAiYiG8ROb@7rP$V){Z2IG{xX)6Q%=>X -zHa=&Jt_)}_~ -z!EvK@ba*?AQH8!Pc}q;F+jy8GB4Rm*T1rVy*Q|#$Wp($y_my`nK(+4dr}(bfrga|G -zhoLx!Y5M@o6DO?pEjZIcdrR!M6Y}L{W2y{4@pi22MIEC8TOp6wM%;kGlFAE;txktcZ{6re^v4- -zq~qPcjaO6lItcCyYeG@dwm;f?keR>lc2E^TZVy@%^YWn$57Ud^GWL$>i+_x%N_vn} -z%tXgRtLoqm!rx+QzJZbUeTpTX%9GBKnlSpLKZHs~o={@f&RflY6j2RfgePK&pCZqj -zA!anN(_z(#_#rhkXfa{%exHCy=XNPQBASkMcKX-Q9ScL86}MB9Ej0boBRc?7BmCg? -z?GMJh44uB^ioW3i5&LD55Iu%V?Ial!h;pYI1AgTz(Ow=W~R8@pB -z7)PF{E=eWmR7$cXQdZ7CoVc4tvyr-?J0f} -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 -z_%uZaf`yI%b&-(abE#|aDNUyb8niG4-f -zE^ztRd$MZd+qGYTGgG=$QIg_D)Z -z>xkMMA;$ZWavjeXvM!=3T}8nqU2g$NS%UuA<@_Jh`&5@s`Xc&k*{N%l^`CL&fYF8eJx{cja+CR89jNMJAg{n>Yt%Pkiq474fq6zL!;=uVsmXDb9At -z4S$Ww;*je;hQ7eJ_M%R%LP_P@^;vmEAwMde?p}cno6k$OOdv#Et-DgEyO+xfZJq}u -z_di=o9jur=t_>@g)3*1GZR<*P&;HYIZA*pT5Cv?z>E#p^Kcj48h5Md%;h?yyqb&?^ -z1n;)7N`RO`OYD3dZbUyXMhW*^?&kI` -z?_u2kxcKXeM+BdICrAGd3QZdswD6|E8v+IcVPO_7WT -zQ~ndSPZ0GqCW*V>rS*|3rLn`#1AolkoaN1wG@O=lXM$*a;&8{eb+d1!|84p92rf=* -zWAyCdm371BQpoKkBJB_)wSD$u=l+3OxMxS3PV<_z_b)H>Z!uXO8KM1uqlcz*7Y(p% -ze{dTNybwe^qE0ruheNqen%{*dFNHiU`YvZj-xi}6G__^UehQT^u-0FVmKM -zMRzZuGT&gU#|9HD*6Z;x#Zr8rYA;ec;J2dbf3_2y7-So|^Npz{V;+z|1y(Uys*W|Jvmr0+H{ZP(isC37; -zSuKp?iS?VjcDUKcH%d|iG7OjDHrag$J4W&oILy6x->jIIirE`~;5UBP^qE%S1U)j1 -zJ>qNYF%ddw*M*wiJSRYlw<0m`2W<`R33r~E(F)cbSymK(K7n85K{Qi{y1G5bKp_O# -zc;ti59SZZrKc|Hu{n`P(CV%XMT_SH8i87ujR?*qFY6Zgvqut30x4pX8noJ -zmqpwthe)xgqWRp}F}teDNDl&PE-}^L+9gg}cDIm7`dx47f7gYXL2B{J)>fC)lxN1U -zaU8pn;|Rp<(mC?S&HsBR*fc%Xjc78(M^;^ynCHU>Z3W^FUr$>Sr^l}^K+GhcRxF@U -z@)?~wDFQKhb-V){YWTW%g{gcKZevgEIxTk}S5&=9fSGLn_DXm?=z??4V)3UAToUdlhteC%VU#WAPFAw(?^U-Hge2Z_oIKlcNxcTH>P_>?R5m=U7&YlIm{`zmiHm^5$&!% -zOE|5}Nvqj?CAd?G{;$+3OaFIQMN%R1R -zo)nhj5T;d1wT3G^vbau?J=c40XKx2uA_$HO&)68X!g4ylPJLKK0tpFJjvtWtUq}q~ -zSgZD>oHPWQaMC|H)**|gN8dyxxkpEbF_@Qzh|Y0V6-u|vkNJ0+ccD@wfKWxO@{K}( -zMa5BbAfS53q++RcjhQP=qh<7Ld8}B-cJ{u)UJ)-(#$W9aFpA-9{3=RlvElx-faIH% -ziJ8A397tgEi;UYvK$}df%7iB^f1@$_bq4e6J*3%`k@bS;YfThArc2+95w`_>GlkDP -zZIt*=cbBjaAiVF7?J^+)JzO`)2NeEm4$VVClRD=Ytkba$T`;^8p+IV{ojEn&^&8wb -zx-W?in_f#T(BSVtczGYiG_EuyZf-TG!H%WRa8(f6cQ%MwEV1mvB6tU1blWa_156%(K3gS4$HWPQ@RZ0q}Ryk<@EulKNRTnC>@AX6`! -z(^@Ub_3#tBII?cTyGy_GRJJPNJh -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 -zQ=9iBnRiou(DozM#eMdvgw -zY{Bd06D|tgzE4F_DdAPC=AHXEgim5^++cT46pGy=Kfn$bTMdqp?Z?{^2u~D7G<& -zoARrbI9Ow@JymFs{OnE@rdJz{gjmWSgSej+nqRU^o}3A5&jni-JhDm8PKJ!&+_89C -znB0^>tvc<+vZDXQ8r8&Je+rioa6>gwba? -z5QL@l8(wKXMUF?WcTC%!dw*dbpxHcWppocppHz>5B673K(hr!oU{^iSG5p6g#@8P=PAII=MABUZ{JmH9uT432* -zF`vY;E9oV1+P_<9-hbw@tPLoJ6%7**X=_&jnKNwD6}sz@N4Bh1r)0uFSk7lg#Bg-G*7twILCq00 -z8R9THlvPIamQ=HM^b^6`yj`vI7$6U*W-iZ*!y@&(jY5OqAH(1YOP3pPg9lX<^teI( -z)v--xCUJFoc6guGi6$Vnd9Wuy0vUNMhGh(=>3eJ089}1?kF1Q3i9PGv`7h|7 -zK=8GW)VW6Mt9A&w;H$5R@h`2Cv*^WWnJ@nd;yFJ)zJyEW|>r(A#>%7Zfzve8OW -z!to!G^Xq@84bc#VNAnwH142=}C@c=lmN~m7oGefUZ?$0UDm2m&jj02y^9ft_u`Va( -zEc}}7*NcB?$x~$1JR@{v_D-Thx7?@J#`Z8rmzvY+S`MVkkv>vC7gMhGu&{~syp0a3H -zWW64mvSE&L!u#Ggnuvwf#xe(-y?_W{_oXc-&EA4b%Rv0w*lV`>`PAD(m)mlNU-3|u -z71&iamXdTEB@zXXkHQ&wTWXM(Z<{0G+l?01dpjw-R8F+H_ZynakbPbfOx$r@v_%(E -zOn9?9=!F%7P4hPD>&xiXCvE?jOoabPJY;JgC<0#q&Y+U^(~1ed0Y~J;iBns*mm~mO -z$3wY+uB=E*fnR7Gd~x10^K?oYw$^{IedM`_uGfqm539OniOBWZhgLw8>^LtFnR5uv -zYf9+}STC=Gn)%`DpB^pc@lIA@O9J*IyBZv2QZ)B$&56dSyR$}p3h<64Uws>l8QueD -zer73ayZ|~B&UnAdO-?bHg)P@FS_1T!!o8i%dNs}7G1xi`RT;BPpQ -zwp&tWaftq0_|Hmc{tBXo*NOta7GC|A7Ao`FL(6}$UhL8UZ8Qt#pVH3}nkIPH@*q?x -zNa9YVQph1|!J8!Cf^sG;pu5MktX1~KS6St`dS6aLAHiRmXg9E~=aMf))iOFdr25;f -z$9|C%Wmefdve2SgV?x*+-QSVc_m$8dIr!nMm_m-Y+*PE5*%`>0Yyf=JcisDBB_BRY -z&;3$rT&yjCrZ5Mgo;!D@j(3?+up=Yjxw)rnxoQq^DYgd57ys*%h?pU~g5sD!_}nSm -zNg5iKu~(Ooun_5bygYN?3g9O4;P^Fi%9y;d+*+KHcE#if6UzJWQ-h1H1ncuN;Sa*S -z;|w0N8Ud!9pNMXs_B$6Y -z9YwjEADQdC({!7boGdG~#5f}jCC5|XQ#bgz4Y7gv(6e}sIBJ9RJORAlS-J6LU+Gy! -z&NBPTVYS&0oRZY>OTQ&kzPpaBRp1K0jB?3Pm_Dmj1F+B5u#D;5FpvF4>`UCo!pz<$uE<#I3R8=&Cq5g=k>6}{) -z$P94w2i2{d%eZ?w`yZIXB0%S^{wUq1RX$D!MFV@8&_I=XZ)6Dd!y^XXW2ftp2#zis -zzrTm)D7(eKe!|1YnT7xo;gB#gyptR(9h#1O~kL_Ax|>rExyr7*5b78y@g+Cgd=X -zeAg^mMi4hxg#{#hZ@wYqITBoJ=a$T}`$v6kh-ib_I`=Gl42jp3%X-UK7vh7DJxSV)gCYE8P5V -zDh6hB+RL!}xs8TV62}uhl2>tT5iGA4wcTWf%@(l=3tGPKOC7<{NPqRv_8sgfNY%Pb -zLW`iQ6}q7X6x&Jv@F_4|sZINxOaHs!S$PH)hJeF;i`m^B8jR;6aVCkcK;c -zyE|BC*YDyh&sOETE*_0wZ`=HT8hVl^GZS-j_eLF_W6Bo%mn@22w7ryKNs_E(nP~I# -zw6mFdPd#BVD662o7apMsv$Edhank#m#_x#+D$_sN;C+9|hS<|Dp2|WxUE+aj*fSK& -zWMMu}?5@T9h9c=;Ly}urqWwNI_uHhiaqsgVgt002cm_vX6Y)@Y7kc8-Vmd~&C@Qbd -zUMsI8m$Ibl)}SsnV2cQKA2VJ|qmTQgFWh-+{J7F{%4TAG6c>h#5x@u*+HOP@VD+NR -zx!_AELG|R9n2kZwgHGcBWSUJ|Iw8i+D0_$ReJ!3P(ty+oM(+ntp#7K2zd8ZPU0pM> -z&7|#uTi#pnm-41hKXkW6m&gWqO-1AfO^O>-F<6|)ArrcAX75)Q<*vZoBs0PdN5VMl -z^H`tgRCF-S>HJ)MY@CUFp~4F%YGyoC$|DX|#I!TqC;GienALJ76L1Fuy@^li2P7mc -zL_Lak?ey+cQ%>5RHn-}fTF6M{cx;`lDB^H)Z#ZZ>78nkl0r -zX?W~$CEM#Za4Wq4rn4vr*Y;8oIW>JUHJMdC-8>I`{|g01eM#h{7@!Uv0Kxx?1cBE> -zRjhLCg`)->1yYiBXdzupP_s=S`gI;z!Yy=k<19xS-}i~!Ay6!w^&1+=%P(|#?FtvK -zgkcVv0IN2u;82r*A*HOS)%yOjJT3HtUj!NHr-HjP?V-=0{|Uky9NW27lOIZyYsZ0i -z=WtU(j&IRo(<|eGsaJbzW+J&|IY@UyIo*Kl3R325V6+o2^EILeL8-9ZUgp=@Jq#_l -zB$6`cEQP=4?d!+^i))+k(Lq#>Bv(Qg=Y{5;R2fHDe~j`=-3W055EHZ7?=D`RC`P)B -zybUgbJzng`J?nYs)e>xUZ5d6kVCbbl=mBzJO*q6aR -z$rv34PIv;++jJvG{25+;qL%5CrV%q2b1=>7A&xa-L7jR?{&kVUcPIsm2|aj$N7Z!9uM3rTD#oL -z+t01Z6N5*k&a8of`a&6hC6*+y=d|4MEvyv&OG7Aq$;k!WOP9Wwt6N-hStV@yxCIi@OAAM+ -z4mNG?0Htz*=TgBIBI0M3I2^7Z1`m?-T~Iy~1mY$gp -zNs=RWCIG#&|&m!L}^J|X%5C~&ujF9WphBL%`07O5rnDDS -zau% -zCP+rklk}9zJ@17vUb`{wu0c%fh$gTc3Hz;RqHG+DioT7)lwEuip^#+Y+8s-D8EOris;*l=DH*LF!Mf`MaC76me5#Xv -z5UHh;u6@@G+$I0niLE?ql-@(MPqM&sSSJ1!@DVSTRdc?wX`2^z?pIPry~9-6e`fcp -zxNGcz@mvKf`xM1oSAG+JwuL94KmwVNM;mrOo*hc6lwK?sHhK4=+&&?jr6zM?EIKqr -zy#vZ$pN3G$U2f+7_l+ZR4uq7=+)D4M-}iRQjC>_9HtH4fUx#npei%x%u^TA%)hdAq;`kaEdQ-X+W*c$NyC=cl#mDDDzh!EW(JN!NT+Hck7+6QWaUyi8 -zf<52A3a$}^Y?+242frAm1mr#nw)>UMeHh5c`iCIvF4OL0l}hgf8!wfc%&bhqOyn#* -zr=s;CI-G4BM1zCa9j`m6_%NuAKaTmq{#iHUS95Z! -zDr#3)-Au)Q{$G&CGWpMVh9T}6?`k}`RCPmGwUA>KsR`{%EavigZ_riO`yoS%|F95z -zPfRzVVvgWIs@Ps1Eb96%Ncb4{b-`ONxvRU^CxQ7-wO#J}upenB-=x|G%4HKnJVo-l -z85;Dzu)ZFJVBNymuFjD`?!%KTc6Gb^Z4;8xV}3t}TRIk;3&>lx>#KR5eD_!(t@Gy6 -zeO(5EQQ&GUUWX>ngIuVRli3}1bka`1Ob|XYT6YEYKmZI%frQgd*B@Ax6Csb2TSJVC -zgl#CJ5H_FF;m=_!fo?I_+CL`zDN&WB_?S;YRaNc9xX|5j514-P^HIKnIZ;{zHO7aJ -zX9GMW{E3!WYt$08{`dM9u4#E4A_C?-JKL$C?>cHBfbw2Zn8%(Oxv7(&W%qY}6!NL4 -zJKm+teRv|85x=de8{UF@C7M(C%EI&V5N6#DR0<`Bb3!R;A)me4Vmt)k;HS`x!d)ed -zs2|u$s~cjJB6T)zmb^@~6lCjaRF|_e{9$OqVR|_MY-3iI(Rczz$Pd}chrtY)77e-% -zN{2Da=IpQ-PDGmPUo{_}nJ4|R=qR_`mjIOi(kG9w>;xgNR;=)#*v>t7;(l7fNRCVq -zk$!gVb_7N82zWE(XFl5uM!vdPf578xa_pNyd-)zZ(7V2T2A~BQMStActFBVUmt}>Z -z0u5jx)Cr*{py16Rq@>Np{W8eS)nV#ylMBUO*v_e^jAz8X3E?gF5E`(+@QzQ2$mKpf -zS55tC+6Ce!Fkg;G323LQKZ43YoH{kb-!v>0 -zv%v08cu_7L?}$EZFLOND2y=d171+-AMje7ZVv1wMu2F>KlBmf}2;0qObw%sY2jWe5 -zQs0ua{S2Lheku6H+fR`@&$K%WF+Q}ZzI>lOC&v82jx?f -zgaeZ;^K`97NF5y0TcVJ##Q9E&xnI+kP%$mibbYJ=)2TZ3EVC*c=^9M0+Npe_}EdiQmw|-1(ip992f~{JTI3`^`AEP}O$z -zB%DXu?j~ut=DdiMI;gVboK7S7q36ejl#2TWZmi&JYcADPQ5!%{dyHq{GuvyYjjZ%cFVs0Dd8=GM!4qrU$0MG3#V;&A}~Me~B}G -z9V~>MMGy~G|8-wGw-ozGqT+X-%!^;4Ui)K2EU4v*4e+9&N7^3Sb67u~e@#{thO}F6 -z_(AOarc%MI1hya)oI5>)7&_F5Bkm%9@e!UwKm($;w|`qVh=d -zppe1aml;GVg)-PF$Q6O|qJ^lNt|b%aG&rjW#ut>z?HX`=z7C_D!MxOGv*+|fj@CZc -z_X56g7O{>(n=DdaeGZ}jaU#KdqhcYVPE`43vX@G=K`QL}5G7Oqb|9@|kpgRyw}mn> -z9g{+?OB&zTpUkxV1bCMJVVNyg5rt`y5LDe6)_ycryJ1fict%>NZ4QxT-x)x#x;Q9+N`E5IW6!L6F438$gD -z8zfi(#gP2|e&1!f$)l{`Ub>R>A&6xACdo(AiIOOPcu7V^|5%7hdrla-MMA%rSCtdu -zJ%}iUkAUT7(-)%k83Ki_fL(Pe--VyIoYoBE0==Nks!^(_SyR6sI#!_EkOZc9&Cq!E -zgf=9s7`{NvWN^hW45o5Uxh++9eEL$o;PAnAfZxF>#j#8Nkt;!)tCrJMlzxL3*dNi5VBhC`jLn3AFHR+co$Yl3W#rkVXyP)zrBqXc|c+4 -z@?#rE_Z-hr%B2`8qvv|OLi|fvsKyxY?S9W@{z9IhluUl!rO8oc_)yZm%DKYG1dle0 -z*LKvSRl4}X+ZKKSg*Pf41MQ(>zw96@hCJtEuS~ZO*SO|uFI)bk+<2Y9mo^~fIWxN2o(h`Jwdh-x$QPEk7=C1VsD_zG1?1OXZz -zZ(_axMTuSOH#C~xPlknr4>a;O_IXF%eH;HCR7)n8%efVmVUwSCYf|uFWy!W`Cw2n6 -zD6u;VNtF0CR!e;`Zw$=QafvvRXKKw5Z!tQ`fYzhPPN@Cmvh_rE#$9uwi+!-B>ifQ> -z4m8oDPj{mxN74ZH!OJ$_Gxv9RO+$kA8NZSz{wgE^s^Gm!y#Lt5vFWBq))ChUSlw9C -zwve!OU}*Uq68)CY4JA}PTk{ScehP(Y8-+Z6hGuzZpb0z2K@q^HQG+V#V*X}@`W{iG -zKlk4>)_-d5^U-OJgP*2~d)$X{AO6SDh{Li%wrZb%%3^~(gilxB<2~Bn!mHhPGbGBeTtg&?<)PGzwz850%47~KjJDgHu -zs#K?pORS3kqBU|s)y^xC24NV%a)J1dxzr@FE6(TfA99moi}f-qtWUe}wQL`-6u->N -zfwjNe)vF-XC2i(E4e?`D5r_4 -zK77UUvwz4R!k(N5ae>%CX>6bs2tq~#W&wRe`iGes8Q!qr1QA$rjd;Ze>O(86_{b*M -zPyrzp(tez=u$s>7;8V_#c*hmzMg~Gc*v*}o+;EK}Mcu|T|J`1OZblslhhi$0w0;-) -zs>=PTQfF%LljJFGvb+~}20H84h^#8*f8+P`GdqFe+=j-8NiSuVRbqh`ZvFc|5vt~I -zpui}Q(SQ{&VpN#hjvla@C$6?N8bd@n)bvu>?{7oReW~=P?)(qO1a-*- -ztDkOoO4y;ruZdY`;}x{|(!!lz#HwQ7@Rnu}C*^&;NxH%6Xj{L04(G~M>t(ikT|XUz -z)9d_nGMR~4lanZ4nGIriY&}VleAQ4KGU>O;vU4*EUzuAbRG;n8BT3Mx#IneK_MaJh -zuI;SZ_$#NiN83EvdobMqb>rkF!7MZ^Krl1687j`9j!LIY)#EcqDk??c8G-WzzXZN1 -z&(yil?qHon>(*To53JZPx!l2lPb8h)ODv}Xgjsyq>o9N=8#W}EFB9$pwFsm+0+<@U -zb6<7_znL~f%pPqp1W9I!vOndyhwbD^AbE{&@a)CNl7U -zFI7mFj^_>ql&<9IFKW8tkL=xDqnAWhuYV{F9y+*!n}N~2ydxr- -z-PK@KR<~Mc=@g)`MR2XuutKMHF!Og0Kgu2;=yySTY~Te}8ArB|K;Qkrb&`lR)Kx8d -z0g3%XGcd9P2#0nH{zOl3r3zDQaA%JOBoTet;#WmQFAtkGbR$<;KqGd|*9_N5>c1@9 -z&hN-c(Jws;i+uP};GHY-(Au)`zL2f5i%v@E#)Bwl%$8jOjkEc1gWrjxi=flSjUp)s -zc^x|?^TuAE`i%m+LKlJ8+rYN{v<-l -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 -zbZplAE@g>?s)1bD-QO-`jgo(& -z{NN3<#Bhe^O9|!two-ICaB)r~n5!lQKN?OYC9Wua4-6HQb9e-=4MKN7Xg!jhD_x_8E3pW!Lk7WNE|}tqKhOsm-$$={TUsey6G1J^7o;_sHyLCNvF6U8(^mc -zfrws_2sF)!A)o=mdihNc=K&WUAcCZDJYEyEqOEnS -znf#^PrOIoD4*lIr6GZ)_AK4qBy@9qR^_3g>sCz+wj@Rsd*=7PE<^qC0>N%^8U+#>? -zhd`oG_e-yX=rfAxD6bR&fHVMhiInvd?>%fSEs~fG`pamjCyeEp0*6hUBi^@h%?~0! -z96R{EPAAUVzy11>Av&SZ)6tHY?36feeymtS8g@x^H<&Y4cz;f+Dfd*E+VEm_Z7A`x -zUP#Xt^`h+y)6BuxN@)rHZLXqv$Eg~k;bPjs`SHnH2!@|{VJD9Jv&L;!Rlc5y_<~S@ -ze*=ymW`3LAxZmy^H8;6z`bNB>2R=HzN_9E=DT}8q$$vC&{Cqs8zdkkj_FB!9(>UNx -zi%r2Dd&Exbo6T|XZA%oo0988hiT5kD4mDY2GN^4XX`Hn!t%{Wt`T=!bRgS$0GygXguj3*H -z3W?zbm^c&>ZZTOZbv-qd6-kU&_JVK6HyWmg0R<5(=PwM{hVL``xvPE`Q@aSI2>pE9 -zM6K}a#3qArG#{q)cPCrxtRr3@oI -zQ7P?%^p<780XL$=u;7>X6`hsBCUF?#U9(bm|@Fb#gd4u}EjR+9N)q -z*KaHELZmG2{ckvB_3OJzvgg0E#Wa{~jc)uM;4u|$Vn~AlZCke69lKn42LJp0#;)xK -zaMX1n*gfX>E^p2zUDogX3$3&hi!42Jeh$vV%<#q5*8D?k_wQ@zi`qE+pwWjd=kFuR -zf!`k3y>)1taOsIvgFi`;s*wED(UUiy^jtXW4GFHr+u}%JWvwvflgO -zse;jev&-h7DF8(Kv}fuJIi=E;s2`!Sr<4aTAI2CiETOIOmy0=$!}GDH@#7KipNB$p -z6u;M6mk-Q9Y3E@6GEBVol!Me}#h}eLCH?{h10fuFc76f@YVW-6b)a*{PM -zMaqeL)BE;VrZh0T>1^>SY$kQ%Cd?7$zb-lvs64l1P2I&_o22rav_6-)fsrFK<{(dg -z)P?bx`91N6g&O%~*J={kax%ny9r?eZ_M+S*n7@?*r9%HcJLnAsDCdv3aA*lY5GiUb -zyKRr_5Kd%rtmulO%WrBQg~1wPKO!T91id^g72WNLB;c{;B1B_A;#gPTgMfE%BK`td5YI!m;L7E32wu -z$~`#F=qI8B)Ju7a*82Qga}d2XI(Ets`V(TpGW>cMFBAc%8obdla}Wq+)fBvw$|G<(DS -z*rnxn2B4<_Q<)Bvk0T+Wz6n+RT^$EyXvk%{U9Ik8u$UC&T~m(|o>$SL9HRLwJ{loW -z1|I=tcF(W-!e>s6K1R}sv0RM?!Pi(nzx`S7jbAivlC1rvB^|Yt&qEPG;O2jUCB{p*%UmH3yGc -zf0h0b#b$6HS|))Fi4eC`9@EqD8I{K(5A9P{7Qviz0%+55&h*EFWRbd&8Lvd~i|p_x -z6k^Y||y_f0zp#>^*YT%F)8XAvTGZ## -z&)z9wAF37YI98kGuP!_cLC -zDiV}XMAY@FOC_z}*oi?P8WMpvi-{bsqm6f3 -zWx`)P_jPAEnosOf6ZCc=db?=KJ@g0kT0=K&4i#iMU(j^14J;flWU&{|p&=Y?f^4V3 -zMpg`-rTUXXWVuPZIZmlgpu*Oe(7oHOF}%}+zEdx>vExC^Cp4>m!U8o}6ye7je7EdL -z?qy;`u3^?oZu9ZDX#%oLi}$ZHfmmiQJEo##Sj49GqD|*T<5M~3{Ea39I)lDs2e~Dm -zyR;d50O$vqwR>B(^E^V(%B$i%K9%AB@MTXME#8XS2`a%B$B)F#FV9RH@wmm&8&SAW -zd2gR^)YUDU!vw)pW+F;e9$)y|Of4Q3?y7kk{GsTzTqW7HfwI~_t!SA~wNfU>Ad=cN -zvqT1(nQh%ljqxqJQ=273fA_GDULDe6IuTJfgk8rl+4;0jBkmBH0Dd7`yILc=qRctW -z-3WjRf=-=%DNnv0+_7x1m!3;!ol>HYPB%0Ce(i^`HS{E$K-)7CddvX_HiH|RuF%Av -z&8Ej4rq^}omqB&Vf(D=nNJ~jlbD)vDnPbp=tyl&-#;fV&BbK9;94+m!gX5=NxI=F%ISCMPHymnk{~cOV^X*^2@r*s(IgI -z*f&Z{DI`5QObEKtek2K6HbV%*vk-z*b3Td;*g`xaPgL5gE03rOof4j_aRmPa$uKTD -z3qv(?clC24#`aG#1eG$0h@ET}P_51--;xg5PV*)75W{q9wg>A2bi_1D|HSm70yY2p -z-mm#Olj`Q=6m+1#n8?~R1^+#oI~th#@%TzYwIg1-!UfvqQU`>)+^lq4W+NKqve^_u -z7nts>r2m02*{QZ<958L9vB5~A*WeM-{{w6r0b(zzxHJ5Kzaiua|4>+TdqojzYG!N! -z!s0$Z^d8_mF@4^_sP%`8J48+VNBORg+#F2`qK>lu@QT^O6nbU*|hx -zY6qVYzz9aLi-*L7ln^wI#P`82pj}27C*r~^TC-+~l6HYaie_>-LSti>8du##dp?a` -zRawzu+MY=HJ90lwm613eQR#K{-?y;(5fB&~R>e^|CE~Qh7T>nJwdD~#;FE!OSJA^d -zKJUFPVa*#hc!iFMHgy15+}o_OxNu&89gulMm?Q#59>~k6z3t=ZeaFUSDt=l~*yJ1s -zZ?pb%H!!>a?^^clZWmTDP79Waz})Mj6hzoEY(yXHh`XFl9$TJWu=^ZS#MSq_^xe?RC4{U1wL -z8CKO6L@5acq)WPy5a|Z#l13Ei?go*N?(XhJLb?$Uq#Hq`JES`V-oBUjef;8{v(L`i -zGqYyaBrCV^{}AT8jr=_r7ecM`*9%V{X{ORN6*}u$`Pdmd!dDJU4mO$PmK;7Uw!DxM -zmtgMMhXylSVu?p;?tNFzSVAhCmghQ)sLtd>te|vlF@^yN73}77`FbM2yKUTscS-u9-)0>V%50d3Oz -z?rt@>9}U7n%MO<1mE -zGO9~FN1Vr<_Cx}$BTq3H20WNRjM4PISpSBpnC478?yZTuS>=HhbR|-kpWHZ^7C?5lBv&i -zO|grI&CDz41!F<_B`Gd6AuIOKo)U@rW6qwt(-I_k2ecRTlccyPs>NA6U@R+d@R3Nf -zt#5&s`PFxY4Nem4=MJZ!Kq5Fw2VwC1S$CK#-=W4~W9oaoujU?W6O#ztkH51G84CRi -zmACsie1$)>9qyRi8|gC;iM%cF$AOG9yaH0m`fSNg1ZPRr_@~4VAKvIAUaBOX7H#|3 -zMN@tV(gkW_I>tMr!bP!&v+Eps=@L9^ti9NQ(7^Y@#<2Hq#>%+-9sWgp1^Vc@`D=-P`Oc5NnK9OtZ%kKd)CL9ni^=m -z)8#e!7o(=*7{R{m;|yPaC?srY`}>-A@^O4m)BZ}k@w+F0V7*=29Rl}kdP{#;`>9(P -z(vYQmwfXyj{bpi9y?bX^_xBvgA_Sj!(;BO#nPoouF)bwWI(b*BFacfLsD%(~^6rtC -zsdIee2ge^+KU0nF;E!H0SviGzij{$B7&Ja!6@ND&WfDty$c-A#n`2&i7BaM4CI3C= -zkw3fwa?3Sp`k3Ju$|UC1zYVJQ#?7LC<3 -znRCVuccdjeaKo~-n2-pG>>wSi_7*@>q(|_QFRqS+#4g5{kCD(GhI@~PfB8}K!7;7^ -zw(>WNQRbdeX1HUB_YE<|!cEJU*wFh#*m1>9?tRnqPZ3my&*(qoL8>N%SPhU&8+XHn -zFTV}8qmx))ku)2GOGyLO;7V`<1s81!fd<%=qT-;mZq;Ev8e&5|K@$y6_e0V~2*z|P -zQH+?;_4jsv)WZUY$OrtAZAC(i{-CHY_KB^ZJE%Ik9KAdIN56%-$c?mFQPb$#@{&&{ -zsi`G!D%`{Km{IsX`|G8jB_e+uh)h>ixP%5<_ccIiL(a0oIRP*?jMggt-b^nwj2eIT -zaq+<{MlkQ|Y4}jR;8>@KdU#+dLFb9fQ1ia&PMK}Vw(v5MR|4F0n4F9kJBk2b2_T9c -zc505=R(jdWfc7iN*UoJLgdKdt?g<={;Hdw~`AKMIe#0cm+;dBTgu9N?mI`R@@S@SV -zSp@OPRD$0XLW~ObWsdecygmZ|Eg^SN5JHDVTfTq!ZpkSu=e<*-#wR@Q$334oszGL2#@~!*uh$S{q9lTS3$H -z%Za(~>nq=(*X2}8yHxy#yBPNZ<;c~G^n>9IKn@Cm@P8!KuM%7H)m<@H!N&idRHM91 -zv2*=*_^}m2R2m5nSJSSN0wXJ`=j%RYAA9QeKv*ORM-KOK{3_{%#}R(7RX8`~NJ40@ -zj`8u~ZubzM_vHVW4b`zSRdG7)4_^c@9t3Sp1)FUfRXx%VMiPYvk7QCH2%cyE_d^Xc -zI`XcK*=fX||KYv``E?>wt)#z}io*qoSn+ya504*X33IP_J|VLZh#0ODUYJ=tLuW)t -zd3!2!yPi_$njxWQ&%WdyYz-BsBZL?!L$+-vqRCuZ_W}+LP$%LxpLK*eN>Phq)J>=r -zRFPFE`9Zfe!a)8`C+qMAq;P>dRO0Hb$X;q0`P(*z-pTa4aS%fRP0Y$oXWw%%dKVC@ -zz!gP#?M&!dSndbk6*UX{`nwIG_G5w=?Uq(r*n5Ju3B_3a(%U%q&{Sxf2rHxr&2}}z -zi3*O$W{JATPfC*!U1b+pHsQ16F&nZ?C;O#;&^qh>_GTQ -z9v(bxht~>wF5x|Et{(PfqbK~|Mi8_3zNtu6@<7TM0ae|8HeZTmc7nIw+5nv{MXVe4 -zj?wmIH)sav&~L8-skmp?8a>^Ju!k;VHFO0UweptYbU~b@kk2%%bNM#3p5Uqx -zyFIP)lgliWW+F(5!EK-|77;f%rsy3os-5O#YP>#xB7lHne2C!NU+%r<4op@EiuRnM -zJj;B4Z~=^%Qfn&8}*77+07!j -zLN$K0GLW$Xr!L#AeF2oK_Ym2 -zVPi;0%Dv7;-2RZ<$~!uRWD=k0+-^UbwM{%@It1CyH2z)xPC|}sM8iSjz+oaf!MQ(q -zlNIog?C%#h)w0+3(65RW4%K^}!F#r37xxF~b+0AkSup7zX%tG)yx~%9sQN#*tO6w6 -z4h!po&G|d#1$YNEXVKIY8$KMgLn%v$NtPBfQ3Z;Ln%u(^I|RW#Z#H>K36 -zTYb(LV9Yv?mkB@F{Ic%=Qm6p#cW*RrkAhx_BB|44Zq&f30sag0qzZ!^p5k}9200t4 -zQE++>`jFUd5P5*2i9i44jBr#~CuE4bLGX^r_%Dd021+jA{O*jxeS?O;$GaZ$EKnqG -za~aVQ`47pvU(^38>ZyW>$)I_PK(o`yi|zfObx?#pq-s86lF7A%2G~e}KxnVMbi;Ye -z`y>vVqY5TP(`Tf-4aTpC!L}2sYtn<-vXquGqVoN}|5?-HZ(V-LdHkU`R0o$evqBwR -z;+;+J#KkV&<`Ymo5kwT{$I6@)c;U{mzhjeHk2kuPd0t^on~wN>l{c>JZy)5N!0%8H -zSH_n%psjnO1p-zf<8MP+g36<-tJKy7evn3j=$Y}O@%R5|&@~G#j!3!~< -zqXH-hm?Qzcyu95KCwU(GM3)dr2GKS#4F6Jx6x;XtYSTB$_YdXSJ_H_t#IT2C_|;YQ -z9R`#~5Gk(o_}ga1nW;y5I0@(@P??dA-7qmW&W441ME#&DmXC1*rl1Z>9$EbwD%nc5 -zt`b&!s9&zCl!PzzXMI%|_pUokrCc01xCQzfAs1LP64Us(<+Av|akV9q(gq84-ySNM*-FLz;e=|i4BWNf`i#F@eHKn?UaU?yrS}t)ATx`{Q -zylhJjjnL}pcEOIkn#Li#g-~>WVsy8ST5oNUP&zd$fEykwwh^_4W~xQKtO#RwZx#FEeIeYBHKZ87iOAX3q=BnYA%Mb=9{`B(Knk -zE}^W(#bH39YUGc(tciqhS$m-H`0_D%+}_kewN+uS3*;Xlwx9bNz%)*u;u0Qpnzcgre -z-f0A?XmtuHLU$iyCJ9}g@&N1sYa~uPjnN;FOb$+V5g9+m762!`n}9m^VR-f!vs{7pq!-K%h@htK)LQQ8;* -zn*+XT?%;Ft_%8AzGc|jWqrhyvJto(eBbBpjPPA~YA}IucfC<+UvAf6wWaE^{j%z9W -zEX-ymkPF|MQf`!MZuxSgqC7mTMxf2xO+Uy?q#@3Sz!hCq0GFZlJ~_`|+(imhaX#l( -z#W^EW)08;AQMLSe@~5`ui|ivYmp;#OPYBzC -zOQ|fP$A0?gc)wMPaAK>wCPJ0%dm2D!g|WsJesfXr7)4gB6k9}!w1rL-(X(00w5jod -z@ic7I^B}F-xmcb#WU=5;-|5_;0mRk?DSA*TmOV=+PZ)SI}wHCkff~-|KlxwLz)mWW? -zCJy6TsD28NZ|5DQX3p`tTu0=ja+Ot1OagLLQFJnN2~DBQL??ls`JpXMWsp7sWNIVH -zXvFlO`ETI##41&x0MeApv?}ILhl}8(< -zGrc4&5lPTm(?EV`pJxLMq0Zoz<;*NGRdJ)jRE^*{>a1nMHYRfJBw#=bMW;z3`Fx3@ -z3El_uI!yh-2(eot=f@DoBzK+Y|LQ2tw0`9LxYr95zl1p7FwNJxKhE$1D&BYg!&cjA -z`Qr3QUD~LD(-PF@coo7i`G3M_+WRrRyCXwoxg)3%{nD6HoV=5SVDK+%cIYuKW}h$y -zsrVJPyF2(9TT&xCb_& -znm77l0my-W(lEyRZT`KoP+jze2JKn0xpOlT{d;{j+j=3h@%b(s`U)-m&7(n-cvc+*;M@tB}DH>k9mCq3Cm#%OT -ze7!9&;*AU)SjEl!xXTC2o@QkJsqF64V(Dl|&@i$PSybNbcS6mf$d~>)lwQO+H=d-i -z!np$?W9QxFHn_5WXltBsjwGhCYtJ%kkOO#0%2hC;wQE -z4v$hkItYg4W#5Sw*?)pmjam2Z;4qxY^BK^mw#EpV4$DHss#$A?!!{Pl`}af1&yK~S -zIf~^GfJ{MNrh2aXQ&i4F?M)~tm`5W -z5;*a7t<0(y3W4$cE~1EcFxT)fYNJNJJ51;E~;Wo5L -z3J?x}O*i&YyC3F-2ZV&rYgE*_skw4Or`&Er2GQo#RO%D|2KdMfJq_e_K}rs;0L>`_ -zEYlX0NtYklxQ_@4_oudEd*Cd!F!mejJ8)@01?fcKsC{Ql&61x~*%qqOdrWK+NV`45 -zYe$N&9{Lu)X}Es0tAc%c(sI@yO}XG;Rt5>H1aqq4kdC>Cyqu3xjEmykDYNX{fnVI7 -zJb;h3Gzs@I%|@)9723IF?N>7Nl{XRxF=>?Yhv^2>^`edYXpjMc-GqNGpIC^Knf52^ -znA;yh!Mf^gR!G`AiGC?4sEneMJ!wIkj{rN$k?{`40JW(=oOBLa7X%PLNlaru*?!A- -zp%P|J4e&Ov|5lw;3FJeHTuA#L9~|%>X|q*0d;a-Bv5c)u>5PmuQ}&zLZcD{6cpL12 -z{$azw&QA;tMB1ge%dk4w_LtpR6kf>cRwnPYSBL)swt1*{c8H~5W{;IFA@{Yl_I6Bp}wqpJ=K|D6~LdhAk^Qo*d0a8kJ<^k_5D!TIKH -zYDdxiCXK%&F!H9ECD;?PVn3w5&fJOz%P&H-32P -zJ2c}+o!#5#fl2kMg4<^{a$p8ke)AAM{?uV9%*1|xK -zk1PaW*NM==w+uEzMBS=)<4e8r{@?MQgWYQGuMZq1Y;sAN|K)k^&H|_s7!HD)PZVXU -z&MSxheSNSkCL9vlBw^5mSJ%fV(I*@%Cq6`RAL-eSZyEhPI)wSTy@FTd+04|x#{)`Qs-nk5;p -zRTkV|v+_;U$rB+*93LP0Wh5);(?$7rsD>PQ -zSx0$FiTi6wUJEOn9?dCyq}KRrNH1^NU_jf$=g8B4&}dwJW4P9xywP8&8T_x8l-W&_ -zq=d?`6j4YNFU3m$MhYZ8VX0}H4&wILv`aRRhwhk1xYtaJkG39N`Jm;)PnU9H47p~4 -zNMZNnAYtfL7R(Eui{dxYbL~P_8PmlLt8d5mS1vtAe00g0QH5B|;L%!q?;~Afak-_o -zv(UY+Bsoh;<``qkQ>pLy7EDlpe_U;;EDLW@yi$43?jU@vc;+{Sf$+64)JL?^J+%~c -zXt95ymAIAn2wtt?SeX&8Za9agl=*tIXBE%xiyPsRYCI6Tb5DY90OeDIQIsW~`(Ngi -zG`g>jc?Qo8LqEReC4^0+7j|5Zi3fMqWpvyDW9jW9a`<7?NZy1}uJ~2qsBGP&5Y?X2 -zBwNZd8l}sJMKD-!u3g$90ye30Q*mE28xDlB9w`%SB{4Nm)r3K1PncEjN<`-7(fqh- -zxm7jGmZ;{x$zrw1n>As}*U1+qzz?PlOu{Ku1sUtUnoYWU)R8u1p*{ATK^oU=(pc1!Fh%8@Ue(fb>%Wn`hm=LCYJeYB;)NTj{4VnsUBOx`BKvN -zA>Gs^p1aPieM8#L&f&ro3^;ChUjh29ZZ4t~kNm2tsFWv}hekT7H|l++C9hNryQM|! -zFt~O&$x|`6a$y}lm%cnXq4c6}g`oA|o$Y;3R6427l?iDph0qG#N?kZB8G&-=WzfC* -zH}JUyX`hbek8nN`FPbEM%r*i`Qv@4hpok=ESD5KAfHAtda=P{=c1H-QzblM<7Oa9K -zd@h!nKGurAz-0JSil?tX3d!K|vpVY|(+0N<`2NW`zbKVw -zIjd)ra@49n&D`yJr -z%J`H$*F+QJdtpxv_K?gPO0Y0QXvkai%%+os5}8-Ij+?fZ|7~?IUu&8Cx@bar|FdkX>)#kr)*oJ#< -zl`H&5Z>EMkQn20#;eE6062p_Ab -zZ=PP63l*Hd0$AmScoa(McjWOhf-hJ^OD@WlcA=BJdO=Jx{q5~mF{Az$<~S?pWE>NC -zM~5?QTH-2VH0Q3X9!&2kc6~=JN=)_#66Z1rkjbMz$ -z>Oi1NeEQGtFpVh#6b~#w6i4S5)o`nym7)9;f*b#B5MAJjcwr263Vt@-O9CH%;U94( -zdk`Yf5?G3jZTXiECcMpBd`dC8jTYq(&51Vn@x -zvcTr&+ng6_5;?`3+?jk1v5p!-?u$2cn>N}x;3Yn^U|HnlA2BULol+!@3xl^f5R6s< -zp3)ENCskZYK-$)*xuDk5tCYoj3P*jSKya~6ct^isI{lagIZ{3=3e7-`ep_2gLtmHZ(a)ThbkWaS-X625*s# -zFl`mDlF|CH|M|0k1tBF7w|a;J{~POd56#{9nV9^SOXPLi-w(q>3jn56fu~#d6p2e6eGAH<#Rc)sh&bQRy?WrQJ@M&Q#E=b0fxk$dR -z&+)`a?XLx=p$+CkpHuK51^6zbD$BLc+ZWx4WY6Q-#41YEUPnn)m~N7()YTlOLhIpy -zofdP`EbbV7ec0u~;*~T{K*k+sEeT1-QYXT=erk>6V0^ky&mJ}D_@?{%tz!ttF3Ujd -zM(f&Q!{ms7Z}5Vvm!;vMc+h^SN4+dyPg-CORs~4oL4@*Cqv~V^sn-(Q>`#K`*Z2r* -z$eeXD#ZdjQY6!*d?7!rVFL{Tb- -zFW;hqbS{in?nGQ}eBb{Lej-c>C(I=9=)D^Z$)4qoD*7QScK(@mz}_LmjW$NhsCFpz -zR6e)3pwyH|Gi}FiLJ0(({Gla-NyNT4#4cu&R`;0biCKb>9 -zf)d`uYVll(4(*r3sSA2+qIz**kYu~~Kug++v -zx0r1Y#Duv1VqvZQ_#pRI43z4{9p-m4FP6;+b{**0+&1F)QI&qY5Ps{W591r<>GtP3 -z!Edfz}PHI}nt{QqMb@(kxPKhr0A68{U>}H;(G=lm+ -z7{s3hZewEHU`>@Jd@?dpZuFV3I~k4a`+Zi=8LbtA~zr$P$K~S-rI2@Q9+ULe=jI>iTM! -z5V-46n3iwt_fLt&8lSNJq05_x3ykYm$aM5n$cVNug}EZy-=a*d?X$nIoY5iq?IP7- -zC^4oVMh%k!0W)$|X@S(I#g#4NAh*ETZfi~#Mx@K!$nS5{N{VbK8$~+>*#*}H69;DlCOmki8o3apjqlnLt+ma5WW>Cl@dnX2Y(P0-voF?+Cc2m#m@ -z?7p|We8?Nu%=mT0%3dDSm=4iDP&e$loNQd>N@AvoHcoyHC|PHkqf+zG^P}n!$T^gAU;u1p8Xtdxt>3)3#{I0F&ieTlGXLHVG%8Q5qkp)WC -z6LqUd9#t9H}<=?lE^EV=HI;Cs998*#+>SJ8Z^Zre3MCf~;%$KB_8 -zMk%kleiIh?pd!ttvSIxhVFbe9S^(RrEXMJgr{T_vJvW2B^!=8haK>AaJi>zs)L!$S -z1+`)@mWA(frc{E*uosFeXfl7cl(DIi4ChgDFpYlBKe|irx;(@5Qpt4rcbtA(Xh-Cc -z%LTs=sf?C@D9)0(_7Ahc1aoVABb<-kM5pls4q0!C-t@a@2w^FhXb0mTX}+)*DN1}! -z-zeb&en!`7&%+-=uzd>-@<#bS8~f*zb}Uj^?RmN~n#O*$PgODnMDB6x;O14z8k7(B -z7nJ}!ssQg>sf1uA7CNt@74^Z7zTsz+5E^=C8!kTln|H)lB-bD3J@6l14Qtzi09rr9 -z?#4~hFor;>5n7GcE|wk-?73f_VLI8*IEseD!AFJ9L$K#bZ*uhCiDCEkoWGvfb}Lx3=mVp{z08yd0vMwOdk6$fa%U-f2~ENxn9Q}V3&0BoI6Ci3V-L5?@m3j)eF|8S -zF>4xxfXU$2$uW+!EW=pSmuDLOyp$sRuIA^ZARR0ya>{tTt;<2KQtwB|+T=)F@Dn36 -zRB*V-g>Z!Ai43c>dU;^Z<3xo!ww9Y-ho{UZ>Iu+UBY|N9E98tf`;U65Rdysd$FGCd -z5ehxO_Cc-DW)myi+>Qnhi~m*f^JD*jKWXoc+Aw<2CgOsN({=_Sv4{n*E2@7}1u>kL -z&sI#6Vo+`ZhLM+sz#n|*mfh0GM#Z64^HDDz00g0{;W{ar>IDkp+Q&H3eT@Ap#af6& -z;fs4`&RkRPC7pAOKfCcbani@iE(aK7C5VxK$9mCTw{D0lDv_ihiXTuQ7-QVjjb@ZV -zIuG_gYJecs_Jbgr^v_FsymT9FH92!R9{t`9o;u(c5DSwZCc% -zhlHo<20hO*Up%VP%fnL{59@{|n`aj6FZi~(q!c9m|cWzfO?DW<%71vg&;{11g -zduNX(+j0O1oq*Uq_s4kAf|Vm%?w@Ni&W|D-_PR|=N!fG|R3HkUyGu)xrhP1xfxH31 -zqRm9amEZ*axF>O=JGUN{Tpxrc8km^e9mjkr=eS+rIh2X4hUjr%`%te8BYlaSKeJQh -zN&P{Qab`b6_Ez~Y6aS<^GYyh_I_@3ZL3l$9n`VR;PMo_ud?wb;^GPe6eH^8k7mMTl -zy`gO`9Z1lW1)D${v3a}b%iAKMK-l1?uK7`29MY%Ditpo0UVjkSFJTrS7Sk_YHEBlH -zQ&kHWxA`5;V>UW{A7WL>ozW>Z!anjP;HS*wqqeZl -zVj7XY>OTLCBf0e0J;ciR -zSeCfOq=GaQ7@QX=wrYIFIf<@1Ig$FDm$jVPt)yHk@=${c9PX_kN^)d=dqKIZ-Kno; -z?NP?QA@+EK*^T6(t84pZ!NAO@gzb!3XUa1$>L#R9Wv~!*_%grDui7J@+N%nt9T;q{ -z%aif>ChoSyx|FY}GRlYI?T%84$GMDm%W^ES3`i -zcwHcS7hF6>*1aYvV@rNUAaR!u4f#TJ^zAB!fj45`dIvSpFzM;gNTCwK$W2}zeZHdo -zriu+=YD;^Z>sgk$NH^)6&tFEv9C#2%H1{=BD{hS{&{!^YCk?uw2sY`CJQ^*+5vfsV -zRvPPsy&;({0zG?_MFb49W)23JVKdc?e-?p{7#y(BM1>l7OB#gOHgzmTcR42#KIlp& -z)US=$k77q%xe6Xr_K}(EEr|ay#v#l3`IF$!fdh2PRwcdS>EFNJ^JX^Md|nkAm0#{9 -z`^N>^D8@Bi(pK;j`P(4Ael=HG+B?5i8Tsl|)oB5#M}7aBAwzNVevrt|!P4Uy-57~88-`DPt`%w)2pk!UF9OyCz>My4kR$WhPT?RPZ`ECT$sU$-IR1%~uN-NpVxD_oMdG4~t5VC!yWV#$6&_qf|lH5!O*9 -zm(-D-ZQA?$ktlGixuGFX{OBzZ93Oid|L@E`JL-DoH+@f0e>koI&rwF5; -z9KJ9)&6r5sG_L<&hRk+|z(&kx?JMDAvbcHxfCGQQc~ck`=RFmNidxX&!1PjS!}G`g -zFPz7~Qn+VXHSPE7(qJP&JLEgDzxC!*wkJ94YDhElG`H&KhpD+0|6k%HG%m24b3$@c -zsNm%`LC)1e)Nc!6v1CmmxB!AOt7T?dpx}l*jj!#rmih -zfFTxG=>}tBw|2tOu)QN0!^l_^7+?C}J^i`Azfue07vuBh?^?SvJSt!9fS}rw-r0_b -z63qGGqE$tPbB6EY*~wL9V9beodSngNXq@19&8aYzH#l23Q0SEDhQQ1 -zjcbDH=cpC;2lbv>1MdV#z&!yrh>GB(erGM&#Y#y~dbVx#qT*+Z-Ay#Gv|u7s#l1w{ -zJsf4`Zi>e0{hoVxHdELDGIqh{U*w38e-oQ*>Ts`-1qpWqH@g^9F$O8h2%b6a34#Y| -zq0&qf!oi)N=H?i5nyyk#>Wv0ooE;^fTomYKO_CyLgbP{oC{fm8H-e0L(La}uE6-*>pL>5m8 -zqbnh5yWSoir||LKp}(OL7g6WuVqVf>&Zxo3?K?+0Bq3XGl1Hqgdx`8AD1=?UXk@w+ -zZ;Z1=^1s3$Mt!TqMqm!8OekZY(A%ovV=*zT9SqqY>An7mD9!aQHoS=;wxlp2OjEP+ -z%eM(7&xUg?qqpuEL}@Gu0xqDm^(LJdN#VBmIY%Dz-MBumP@OqO6aOjOiwsULoqhsZ -z3gcN2t>BL_8L@}#v>-y7f(u@JxJ?JfUERh#WoBDy%6Jlz&HUGdTD18 -zf?js^^Hh+nYpX8(uw!w!ScC%YrWhu^Bz -zUgaHEnEF%#xA>Q*v5;634)WA5o;K72{iC^QPtVb(-?m+6aYCH5<*@cMnD-NS_dQv} -z!(VbBkxf9p`DLxqdZ^mC-b*KYe?{!X9VKd7QsYDfg$Ic+a2T4L2Clq#zL@ -zL>TGMv`0B*JzTP{GjY$P<$_X^siF_Zy62l8?0nU5N(QWmZ!TLXarCXPTv;GK1$j!0KZLVqtXn?@&9q<-LOr*95fh_mNJ -z7%85UBRu|7w}FX20v8OMs%S7tOgHH{9)0O6v5aiKvwsZhE{aR{_+Jv_9`XniB`p0c -ztL$;kQFDADhm=|gy3f`%f`JMr{~X)qLPSzkbNy`JMevDzqyP(6vp{!7*dD|>{=R5-)=hR2*CfM%?H=B>8BcSc>e0 -zm%fQf-t!Dp+U1a-9TmH1VeU7NfoTMKySiKAwoyC41ee}P{yMfGfOdEtPpLpoNiCV_ -z2~`udM=nfvf#-bKo&(r*m9YBadK3-^{p&V(YUPU>!y}Bo(~gFd6wsr|nzAjs8ard2 -zA6$h -zaz!UOR3>E@i>5N>f6`5xwA1}QZ^tk^vL7yu||D@6u(*B<>WUrWs$I1H+&0T=me!`NM4Ux6juYz&;<=GJ|$RAN#{KdAWJq -z%LfCxzf@sL8rjsVc<@z@k(*<2wt*ymP^FZZh%98Ar#dlIrd8@?wR}qv*+s&P!>GAZ -ztQ(clE(7CYvnY5F_?nkJ1gp;&`*ObYVEdEPJAT*a&DXuWA}QVV$vla3c7GNHj=D1u -z1_d6)VV}#;k6p_;c~^Y)Tsd|NhMg7??hX0IOj|{P{m~CGKwe0~cS$E5WNy=*3`u=? -zX-h?$mMSv`{tq;>LHZb9IED0LRZ&dRwX0-P&nFY^Bi~b1I6D?q-5kL>}U3uIW-_6{meQd(zhhpZdpUG@#}d -za#olo5t8Y~(YR)P@o-+Dz6-B4ad8@|`1s|!xXi~DZk(FO%>x=C<36LrOl_xuIcGJc -znWzZ+6g@M+_8g08yEZ_Yhex|NKO -z5$i}uhB~mOB-20Oc*-e~>s-+5twcpn>mNHg%^5_fMe>j;eKE&+1_>@9!uWM8u5;W} -zFrFWRJ5^i_%j;po0-Mo{2^-VSQP0$5w>|nlQfAM46jt|Jp6Q`ub#;e<>-5?h61Otp -z-G@*<&aS1ISHDD`Ra^=4E=Ll_6W}TUDiNh>I69~8TnVepoIs~1IW}bMfu!kA0I4(A -zVz7bb&c{+kM``Fd*;lJX2I12NMoU>*!;e$p*!MMq}jF=PJkZM8V%-hft;cB`8 -zDs-PbhH^;Q(2V!D*!{i`2`t*&@HO(9!KMs*?y{KKdkNCd(2r9PVkG4v8szGRwOg}% -zZoFRle-xd&Bq9fPNrp+%-vVXE>pT!%C8tl&v%gB(x{+ss5NMl={8kI$Q#eH$-zcrb -z@-sTE?C}9h0Cr@w27QAG3U5#P$Hrw=l2dGM^AP3{GHe6r0tL%|Ea73{4q>q|ZB|`H -zZ9h+)W)u88p{4adn1e7)s2LEhFG_BzNYlxrELr^ANZ=&_T6dHK{7jo2d64UGRJ^o~ -z&md7d5BAOBV7Be8v^lG&?6$5XG5K_#k%Esf5`A9O83_(Y6Plr-^~$K%k{^_d88|aW -zEK&KZwb?UG)aZV~XF2GPWr-W;2P*wh*kOy6XZ+Q1b?|1+9<*El8>2xR^4Srvi`dZd -zIG|J3);_(~fGem?Jg%&6B)A|{i>PDZ5d^y9xc9cp9-)!$cF2X)>_>GJ^dN$H7R~y_&@?5z#5OYVtIQLqglGNkjz== -zI7%PR%fq*)4Pz`6aLf8b!YR;@4Nt;j=?`$)c@(Mw@T)kQ6KHnL$=yW%_xWoiDp&+` -z481$V)=wuG3wSonI-RfZ6UW=?1ym)^rNpyxA7P>Lc%ha4j%tF&@C#*?0Sh`cUySbm -zM)|TVH8L!D2rJcG6}e1xS#i^eR9XA#p$pG8Og3x?P0+QA-3Jmt?r(VY*d5u|2Cu@I -zZdBHFlM6U|-JPng8sETUksWtus=Ot!Sp-32KuO^lMR-Fyar|RyNMFX8iO28GD -zy5Zv{5sc8%$)qB}YiU%9A!@)#5+LE7$w+h0@N_6F&OGP1{DXz-D55i&Jc@% -zt!-x2aQ0yXMUjgUPh?=ZPX%$$y?HORb{rDi0buyl%I~%F3mQ0TqraY0otugoPlhNj -zGsJ!35!#Jnf!Zy_n>M=Gh7d9P@9y{;bsU -zWr$d?kd9c^wLwS`%|&3`t4W1cl(qcQ+Z~BrXl?4@B^N&62;Xbt$rdcq;nj&UMSZe- -z6gC&ySy_eOXj#IeCWy*TOxSA{vMZHlTL0ohwa9c+wvy0@!S6|<;G+0|{t!ubmBOF6(281IDO}l_BIJON6PLwwZey^Gnd`#* -z$|U*)I%vVm@Cvv0*;>?gsaY{+^`Z&1L@L2nk|ppr$!s -zR2-1AN>5f0aV9vcrCJkjlXO@SR9lqxNE0iUcGC}Fust9w;o{`(ts&QNH3%uP?!wGAgd)9Y+X0ucnuH2q!>(g7S8 -zyhqo~;%2QMRXLAD=LL{kGf4@bWd9sum**Ryjm;u8c?=X-<%v>9;%W{JPGm0`LYV{a3A+VJ~eq(YOuN^AbtrF9AOdapGI$m)&s7lV4yf -zOwnz7GV33RvDWo -zfDZX98@lU;$#}xq0Fu}9gyUN5MeSJA6T;=z;CupPJ17=|dwjvK$gZLhUD?d?8>z+hK{K!WS4vai!YCCXnOsoQi+8V)YR`3KnONJ+U|rE){xY{9C`IvJ -zI7|N7078j*zNIXq6?B{q5?k--U7b`Wuur9K&Jeneg5iEM43# -zkv4@|z7)4MKa0fai1QZOb1CgZ$GPY1KzszGU**Sud!D*^$$sn-?5b&w -zQpxu1O>6K3C%IW+I(40@;4|EBN_#O|FT8^29zI4}K_f|gULIm2?w1Vk1Ft0}d|;-0 -zsR0%D!vL9a+bb9$oA;iNG78z$Ff}>vbGIqH*&1Ef`TJ1z0;lI$t?JF8^id|;CVW{| -zOQ<_wNT4@Z^v8Yn3_&MeW03ge5WU)O=_h^{$)JEKgcWimY!8o=&i`j3H&rK9H}3oOk#Y3=sJJF*j(JWO*D>JxMW-&xpQac&YXJAb56mMS5C1TB6_+)9=+j1(#GjdlI-v5 -z0891&AXNG=6LlWV^$Ph6F7F~2?!wJ`SXVA^sM=eWy1(CGz{}I%h7Jnd&yS+a7jD9X -zTv^%}LgV#dpLWv!+;>UMt10W~U?&3ZpS!=x=Xny~9Qhw6ogwR)M6XKQ9Rlezlg#&G -zWvC-;|JB{ME9b24z4sXZgqw0yEx0fGS`Ajm75E;_F(W;zIRumDFZ^IhOTagh$YrIC -zzA%PWwz0tt#TP{$)YZ%+bK3|V6QtEfRfAmBJHT6?Es3CQS3S_UW|5Y)54$+6zso?k?5m}ZT^z(ZylXnT2Ms7XCSf}^#I8b -z>f1T!YU@3G_~u>4<%RjI6EFOJ4@3++Hsbfj5_y$XwEP#b>V{8ZjduBDPWy9RCyC&? -z+VIi|uQbF`v`bQ_d^}JwJQvj67wx#a4Gk~z-!+~8<27*1Kz~*8Bp&x}dT7jOf{#ld -z3#O}Nc3Cxe<8)zzqYJ)-nRGEpEhl!OUrr6F%S4CQ=dkHpNO%OGYl8p>HBD=SOAk^j -z)Uy)yL4gh)_z@s>q~&$^D(mRd0kQdcb}TkXqUOh6m(SSksqFo0CbQeMSSU_T{#y~H -zfS>nd&f47_@6=aZvsMB@)W*o0j9&TEwhfyNWl^Fzo2O4KV5Nfrm?^SOHe_~G -zpp{ao_F*!F&jvo0A^z21R^x((eh12yPf^6=3^^DiAL)=Hx;BeTqzvZbfJOZ?dw_qt -z5^g5?PRxcDrfwtAyRZ3-lXiy*J>Aq(H=Pl$uxj(fiYq5mH5Ve8@Q^^@3T5e~EgPn9 -z-XH&}HhnYr8wRF>&r^|gbbP4&;hu*aQocCsN(0L~?t6c|y7_u(8oJZYQt^+p?!i5WZxKv3$ -zR@t)XEi%Nxb^I~Qc0%zoYSlYH&LYL|s@R9`Bqn&f`HKL01-kcDypr{FZD>V4&xCr< -zuuLTGe()QItJmWX1~jqHRaluWDp{q!@M?eIyYZCMnuG|pWNEO%UT{7rXm-j%5hW&O -zgaPp}n3~x?hZwuGP#A$csXr=46@QDjwe2gPPokZoQwo2Ss(%rG^53z`e`3QW$-x}< -zEJV1ilz1n#U&s8bw2eOwW?}@gK0dANS@d|ocRb4TTUnZKyk&n*H0jp!nEPI|<1qCN -z8cMAJMeu#m-`2czj}*nmIKS`J!IY*UO6w$09tNqLF0l5n`h;!nOZSb3`Hg&@BQEkW3kE-cK -zk13PY3IW3U>b?ML*A@zZ!UB;+CST&=F(p2PIIPPm7&vfe8fe+P#bm%@-2Bttca_ -z$*?3s5VUF{UJH84A+9$cM%Cq49;9%ae|Gh^9R@*LNly7LEJWN;>J`ABcG|JLsZG^? -zHYiGJ5Dm5i+*ZM$Ber+s8;$8m61(n4eJ=hDiF0ikh_`2UySnXkSfS -z-?Kx9rc%dwQskjhQmk`&Bi#r$sE-d3x7d -z3=X>FBgI~M;(Vity0~%>8J*FZ`nPFpVuc~Jf~iC>`~k!6=SBrUCBb*6c`x>dk7;kE -za=L)n@kfRH?6`U*;Uy#-P_e1+oi3^s;v){g)wcKXkeVF&cqK1AE0^gxp -zqu9)-k1IiAuWL91%q_c=^}6BlCjx_5J|RUacJ3KQWq%@G$xe$-N#Rrcr=##+8)(jd -z@qNb_+1})ER20&`#Sn#+S^<}bu=k;U -z_Y!yhMN`4PTvTdt^kIeCR=NYsxB-Hh(a%s;$uY_l?J_+=%XOx$j|Y^ChOJ$3?$N=E -z05gmB0V<-U;!wtlN9ZFC0cPOif!J5DayBcoTm2UC1>aS_CE`U184UPF0qPET-s$*P -zParUm7kq~!ngcSXdfs;DLy@ODFe?lsxhWJA;8L*<(nd2HX_I8Vu3!D} -z`%c-1-g2MRBI9gdve}JdlVXhh2HTYNP7rRb79yGaa8{;0F22-VwhG7;^q+#+R6qTf -zZXd0;s@#mq-Q1%<&5{mbS}Eg4s60}^nBGifOb7`QAxn;?{)JV+jb%QUGf|;>l(CODDff -z=d@3t`mTYNn&Q7knsKz-Vps=Cu%n5_#`f1ONsKhI9hhgEPSLR0jr%JQZcc{uDk?t7 -z2!2z|v-<)k{Hgx=o%jd28VRc!t%-#t1rL!qGCRY-ms7GvRJwGT46z*MI> -z6Mz2TZ8-IqDRv~c%6lKAv9OizF72=&9+nr4c$m|ZBKnjkEja`^LvMg5cbG%~S0I`` -z6M=B1A+1R4IFV{NNJd+*@}7vfzBG$Q=_9Ero;?MS1-OrTMEgRQs?SNIQr*-Bmi;+Z -z>x`I~W{36j&!?R~T4hvgc_DS4n%lEPkl#S2HNZ-c2 -z&VD+H5A%+Il$OWI=AT@5S6ZBIRCnBCCxhA`2ARJ+1u!QP^ZI_cadz{SD9pA6l46I{ -zQ%qjML+)zf2M%UeOY+qHTtu39D1O`b7~}iu%(f`Z-9*lBTF2(1i!1C_;pj+SEV|o0 -zW^q=k&@`=S}tFJM|=0=*n6PAqs^Ek^nOLbsaltQea>R&oMcVGW0VHHj>Q -zxno~S;kdRv8-F=#1FAUFCC|z8d#J%TCNw2!e?+-@?w(|^Al0$9Uxc)R5whjUlQ(r! -zxQZgY{BL^?0Ehy<(3yKeRB@*h6G5Mc+~;w^bSwxc1cbfrXiqyEB?d5JAa3lhBjV8a -z|GU?E_0iWGMjYj(D;tXB6*|h|C*F+h!@r3-GyC2=m=E6!UM-Td_tTDcj8HNtPziQ@ -zeF@GaScf6x)bM-Vg3Ro}W=V3X;-D3Qc)->(ovb6!+2x2mJ%n~X0blFn`%BjQYa@m} -zmyxP4#B|*MwV}iDQe3>ZWY|DtKvEBiFJ$bwyMXN@JpS`yv3V6R4p7UROY(}6Jv$TS -z3?uM?F)xD@b-%s%q-bG`+AjxRYZy|j5FUgofOnQV^<<&XDS<9Sq-CS8OU|y&uVqIb -z{x>?yJ$shdcHp+o+3(%HwSi0N{0*c>mQ(2B2&U$Yd{u--syqmBXd -z7Th3gM~f>zldV8(n#Z3HH(*REAn#*7N=HTS(_TQaFR<7b7R>(;ySCIk|1$}Hq*M1) -zW%iWBvgqq-R@Ta+N%{2P%o2*%agF}sZVDNod9)Y81osxn;$qd3SL#tmkM$@ -zehR+*h_dF06e>usn%l?D+&w6Na~ja{JBP_-V$84IzmJP#Gc_V2!SFmEBu(nwqKTnB -z!JUR|I1x1trDAf&Rs@Fhk`E1&eE*T3n;Z-pv3UFR(i`XMRC!YKMC(~4hoj`$JItRz -zW>3TS11&JsrroZAO$Snize|!tmY;Lf_908gKh=r^?JamHh(9{DuwX>G=|AhCW##?m`i_MCrhDIB- -zU*$H!ng}mslNfyxC7KD^_||@#!{q{JcX3y2`iaP3>THq3)^!wo`1B&kG5g( -z;{rl5Q&rBu1O@jM2q?fqgIu}7keL^Q{lRNY2BOcD#~I??jh&Nig6{G+UsL)Fy=8au8_(gMI?a|0zD~qm2*(e_mGL%fNnST+_Q4zz!!4TO -z#lI=O@!C4@v1S18>-B5L)4WzaHDdvgn`~xS>)%OtQn=)x3nG<;W@amwA>e{4y)E;mMk7oVD%VLq~+d -zO4AQNyj154*l$Wf_hUchgU2<$7GA}_^11(8HzN+4O(zD^5-x45d3?SG+Xxe0zbK)= -zTyypjD|}cb_vV);EU6XxiR9@U-eV}xv>6?xwlCD(-!9O -zYog>C7`NT(Egrm+f2&QTV$)CHybgu_g9R%NV6J|*PpBDuVfu@@I| -z+mSp{JEL!P!1RMdVj81XC0*v5wG1mRuT#W>?d8&c&y$Y|nzq-%tR?We#Ku8Ikxwau -zRTkdb953Hi^lg|)S6D(j{Zrujz%WDPXyXyS&&la4Oi^DSM9S%2h5FzHRLvw!-^Wku -z+sLUMJXaY6xk)Un9}0wvElC-2=TB1HP$HWdbqdjQWh58W4G=|u^??ZNaJNsYhKeW2 -zHTw&ty|6NF#JZ$bXPL|eJGV%M8Zu40LYPXV(yco!(!N{nS-^KXnR3%}+o3n+No7H- -zN~Nz5Qzm2(*6^$nX_?Dh`DA;`tSn=V;nq3p^-DTW5ktZ_R4Q6aSlMS_{^q{cLqnM( -zElDu0+6g=BKB8Uxa17u*K#tv>FusCzGAW|u7JtGtPu9M4Z%2BW? -zV*;%j6n4F^WtI<#lmAFpjr(mq2mp>iweKCW6?aJcM7=_eX$vbx0E>CE7eZusx3X?_ -zcxuJDRz_Pt9v{dbmW#NFz2MULA#{wvzB366fCFLl#U(>g;ZJw^k^UyKT9;oU&COed -z%~Zv2@SK*u&8Cz2w)4{lJfiqVIv?x9(7=p@aYGr8FjD!RW~=^3zGy<@b@jBT0WTOg -z$R3w)B_syM#s}I}bY3q?khrEp+VQ7K*q^2v3K^OhuQ9qS_||pzmOtr6&aFLQK)G>& -z#aqYy&vDi$XrfXjCVI$MB39IzQWGKF!IpJXMKD$_Fxs%kV;AXLHBT%>ityGUc$?!w -zpW_#FDt+P6?eRd5pff5>x_SjM`yNt{+`kR*%k(r`PncG1*v9d`NR!H7!O(EP>>HjQ -z*l*wqp;8KQpv&*2L`0wI_8J_npzg8np6jBR!rl5UHNQr@XAEV=tE6xY@9g*NB)I3QD0v)M{R}ev -zwrk%W*l0Xj(#8BK(UYYMKfZjsbnexpZWo!k4{`8|K=KoO8T8w>0Nf7L|CzQCk7a_9 -zcJi3>jbDs$8X^%(=A%9By2KjN&W6xJzQlA;1$-7b`_NrWv1jr&gF7EvcX|7J|m7Y1hWw=AYNf@YYd1m{%9_|zV`U2Bfibe?<5 -z4|xrQ5#LB3(`IHei(45Ve2HQ!Jb>O?kyofm3*<*c-ADJdD~d5qI19FiPuu3)-uneA -z(K1=cqQzc+UBX+h-KSsSQ4_%@YJG3A#3w^li_p16YqFCf4IYm^XIID@;du+cK}tan -z1wxfi-ak0zi#%C)5r_NaKQ}-yR>H+JVe8FeMeQF8u1UX%M1+V^s8q-=IINA!9K1;e -zKK+_Msp_h1W<*CF(dbs8jr#_k1IM{pp+B5zE -zp2}ZU;81V({=2C|texYFHOFg79;;@&O|y~Weoh9}D^`OWwXUv3M5O3m60%@!V$<;`v@VF~D!-=Gg@mc19i-oiC(h9xHW=9Ke$Ra@fVjwy` -zc5ev@7Mb^WCETxMqigD4QD>rTj(pLByzzH4BI*I4&y{q2F@kYh0Tl7sRJlKRRK1pe -z1x7;!!7;_aIIU_G0p^a$vXz8g_@OwDVcH^p$N#P+YI4cNKGB_tTAP@)o5)sF&NfifZ=G>SyaCq{!-5AVZ -zZ1^}LoJzs$gt|V+E%Ns%vDgPBB#jdR^PNi$T%AP~(mC!$l^T33=qBsUDs>3EqPw(( -zuaAa%ox{XfTh)(z_69MZzQfRSBc;XVt3~OzY}1As>FkpyQf?pQy?{RNOy$Ch!q!)5 -zkrH{4C8YC`0+o^Pl~WC5$^rXqKLj?}bxgS@M5h(Vct}1D5^+3o -zqN@@Ye_z7XIPu@yCWIcYLHvEF -zhu}W%ujYrquTz{6&8G^{juvW>pcfghS5@pIkD^zV7S=p%yaX8~q@Z0W#zl9R*ARCd -zH8MKbb3!kruf>ebdB832VW&FN-$yug_~80(-y~T!naAnS5q!NbJVJw#{H0l&=t_3z -z41jpRf>5R|`l3d-$>IH^-=R&BlL~%%?L~U2n;XS-7(kV5g38{TTy(gOg@Me*#)tBQ -zkB+rMjT$Q~uX#Ep;1>`x<;=iG3)NR7_b=tMeyHZ%=o&#k`m;d)#oR-xRH@tyY^rdD -zU?Li3`g=3LAp?4%5D7_Z#F?vTy=g(7#-d(pHa3c3V3;}TBa5{c92jy;HKT<{b&F<= -z#G5<|T8Lx`cEOxKqYh;E<4<60Nd#xkU!lW-BJ`|QOZGvW@wB9${0j;}`NPcO_qbUj -zfj>XoQCf}lh0(-}{f~KuR{frFgLOZ1sHhd=ppGs=G4*9e3e&XsO93lP4AK^c(N<1Z -zvpyW-jWTgU#wkuqutns}U?wyXK -z6T~#9uZl14v9Ke9oDogN4>@JEuyKKik%r{h1jR5@DGtr}V2V~K&cz<7+#AvOIe7pF -z@ImOM(C;mp>`}MQu9U3}_2SV29HIhp(ON|FA&yij6_a#UEQa=r&1HeNy?`AI_@y$w -zJ5`Vwd1)tgp}_#p@1EN%rfUyGp%1(8!8-xcO^6Kn$!%$U*m+o`iK3njA~(QngG>)* -zAh$tB_XieT)yEbN*SJ$?q*Evp>S2sy5OvppMu^EpC77`tW$Hhj;Iys;;3!ZduDe^I -z=F0Pv2@%;m&&o}$>5XY05cf<{S*2!SVt(QHfp}WG8~HbT@;#Xia>+9eSsy7I3WNLl -z*#@f!X0U>r*mO|jRAN|D(qwryeU|^4-o5qM5|p%IGhmWiOOlADF(Vmvu!cJX3=nz$~v))3mNQpkl~$#T`545xy=O2Se4HV#7A4jqFM-= -zEQenALoJhYeKMtE{g%YFR7c%z4J)c%E&KVqln@zC=U)0u@?$|?bhn?e_w}XC;?}!r -z@1V|0P8YJ)hvhpCS -zb2OpDH;19{*{5s+hLJ{wH^I$Q^rQ3f0T2Fjqn-*|;vw8G_4-V@+<9pVOlJm9`ZpX7 -zbOXfJ_j3G7)3*`|-A~No`jE?!QWQSsRM>H$6~eq*Se$L_d%;)dnOK<~>p#2`O@H6) -z{t6J5T6oLn1}o?c!r~S#!xeIz{5Y^blQdW$kqrqRGc!IOnZgsq>}ur*#vHazQ4(9smywkt{Lk}9=V(4M@h;_$y?^vbEdD1Od73O+ -zHaP)|P79ojLE3}}t@?O-t__@vDsHCAl-ur_?_A!U&JWYBG^Tp7q;JzK8Dda($?xS( -zXkAsTorY=!oI;uc4-VZEciTgI&xSD0te1R2ah~L^rBa_@=Uico3Z3`qJ*+_b8V~+Q}dBB8ma|nXc7F}F6UJ^ -zF8zFzh4n&QX?dd3D=eB?ihd1`0nWhzm8g(e-;C46WU=AeO4*_{Da$rCjG9mZQ_|NtIkru7{r2uB*|~DFExdGxQBRM6#t##oy(jPE -zoBG#gCqDvHAGmK7c@lwHhN>bDQ|+D>71j50$bEJ3HZ1wSr(&yJySxmAQdBe9$(A)O -zPn4on?NfnfQ$X>T`oo1QW0S4X)5oLqe03x5PxLTvG5=?WI9!0Q0Q<#!M6hS= -z&3=5qflAQrbL}zDzcT>Yx(z~?dCc=u39ZAc#BmYolz1eaZ=kv9`WF^3q(b5aOMt;(+b -z7&f0x)w$Pa&b0!-{64j`QJx}6-0bT9sS=yBn)kCdeSsJyuYN-PId3%P=bM&c{4#VT -z@)}=Ax#J4j -z!dwn}noO}x+pLtThMtby0Nwi;HHXhD)zVAVH~>(v_- -zO+zj(jp^r3f{Y1AAu%wlzR*@|ogJo~+~u2vG_E=V-QnTawd4yyqU3N10e?y$$$ -zzAm*(RX%|1vh%rVqL_+Ay+8@zIJ;9~4M~9%@#dV4R8$F-XpVB}9Lj({wVqDj>LrZ< -z&un8lkgls;<3hX7AEJ+ozU8smDGyDG|K`rod5!S4s_7G78*@^Y -z2%dBxBG0R7oo*zG5O#d!Lri}r{O#9^o3EwW@h%Qw1<+uK+~@~y+p_X(b_dcE0dX{M -z0w!rG@80;{gD+4Ecw%C#Y;55`7vZ~H6dy~W9+}f29s=<^51N;>9>JFV-H7)R)D5!Z -zPS93S@T$7vC9fCA*nP+L6lqj8ewX_ZrYA6Mce8}hxT-V5a_WLJ3XRN*X}rzk?Dv}O -zE~XqnsTH^`!7vyNCNk1y?OaxUT6EHAONN05Uu}4^jL#W#E&OZoR5I(=VD@{$EetITElVt4PF;PO-m%io(hScw#nf5VNo!oz);v~s!>t=WO;C%`1fWvf~7 -zI__eKDL+cD)h|36Hast#l?K=BL0_LVIs3Z|`qS}Pcl#m-Yuh~lH0n?g@L%*2*9QqB -z?@Z|{_sf+59`KpMWhB%6`6mJhRbid5;3#MQ) -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 -zmK9WDIl~TOl%L4&-TH7tMiEAn -zhU71_{ZAxX5pF7bPeZ;B&OZr-F9}BhoCD$mvFU?Uj%rKqo3J7ne`}oAqjt?tZXkF> -z=VO{-_n3ajJ8QQPxwBHBj)%R|#VPNK&>FP-jRfAKMmY&w@;o_ -zpJIQ=(egWF14jG<#_~(L`t5e53d}wWCXG&M9^CI>p_Be4sJ)uIvADFO-Y*nICcLz&?2EP&}uWxmFMdCP$x6^>h~SxjAd3ut#^RCW-S^= -zoAcXR=y4pwhzhGml%NB`0@Qj{$fvi3`F4>0Afd||mb?TmR`O=T13I@T>_&!F-OPc4 -zAf-bM?}B=JT39D^Fsu8^%6hzU#+nVH-?HdTgw>?(mG(7BFPWi?|KivAg8Wl)qY?wc3QoVhw+mx4Nq{)NAnLzwWXv&!1(fz-$HwtUuY;Sa@lv!1=g#76x_ -z|7`D4t-Se6X%V?`rNb%}P9kLFtnYOpPjJEtsou()`|VTGwV=ALa(z{*hrc;@Rz -zO;B8Qhe|Za<;EeQFI!8DQmRS)(d@WT8in`6?IZ4Q#)!B=w2Nu984hXgC3zW-m0gn_ -zEwBS7vT?9|XGdv^eyy`S?&o=X$J<)cc(<4&5Mv0bgz7{nEA2|?XIM@i|5Kh -z!@@3=rSRC>@#TA_o|ib80YnqrI#wA(mWLC3MYgcIoj_c1MJ92fuoBYT7I@yiJ*kC9 -z73kh`@S$wuwbsEi=JS!pYeUK%*o&;n#NsiM2T%+8VWy6btz^Q75yxZ<^zIABYl^ko -z&NZ#u4`+xGLIF^Y!ah{3$yv_9cf-X}s7CqGfdWRX1i^E!)AcXOKQnZSRe#@l9C*0L -zsE8u&8JYQwJ~Dw$IAJk?UTFTtL_mnca|)GaiYvG;aG0K(Q1)R^6L;PsJmG!Q&kufJ -zxC#Gr54qv0nafa@ZK~jD-qS2RxH0o2s#uArJv4{p;4fyIVVhpor}5On;=L>9{E09RTIKbZ{bUr8#4U&;5u_&@th -z@SIKTQr}sC9Da@`1nMvNir1GU-l?53(BVrAB)K-fwJYjJe5Iw>YPo*(yruaSD@~L& -z;g5CSOaAY=U3?ZjAkS)-v#c(b*%@cvrjy{Nan(M1sG2gfvaAM2cxBSqyNnk4CBjiM -zK@TyWRCA2hpaKjmcInJO=m5Ru%FHA?E`(p -zv_|sclZQ+^5@51?pqzibYQ>@CKNlW}t=!z3$iTv%lnv7_TIY^3oa -zq?|>cY#U)fBJj*U**;ph`jkt5@1^Y>kqlD;D#gt?v3jj0x4Xe0f9@@OcgCK{zY(_# -z9fe%3Q5dhXnZIei29Y;$yZK@_56**!6N^UQZtBVFkfT>_ -zWz*3Y8H=sDMMpBj*f;7~DAhfq$M|sTKzur@^tICNsY&X_?Ss{^QpWCmDBhROjbmXf -z?5Q=6+&!n;wsaUT(OPniTD81x?k6$Vv!8E&fs}&ih4=PPx9KOpROt@UiqLbMO^m6+ -zazPFz(B14&@Hu#-p-!Kcvc6O1rYoqORBDoM7lIgc|E=GU6^L5T@E8Th=DE0tY50pL -zM!g#l5eSV)W=Ai`>*aU+2Iz!~le#zys&1qA1~s+*3Nd&aGhP|0s<>2-J*v;xWy8Im -z86fajYOZLcYuo -z8;5yjv6bH?5mZ|*`ou}(UR=;BORlawA{K6UxjX!Uf^ak}^}EQeyA^|Xv!e8LCW?U{ -zuMTVTY|QdJEs9NY>!$`Ti)JBXGK}OzKN@6$_aN!s<#@ucN<_G8?Q81!BO05|U4qQ6 -z0c6@>RRbGZit~~}rOsm!5=h -z0@bG<!5!+@ -zWK%sK!SAn{wbxYnby_*gd=VDA)CG(479%a2Dw9hvKIYL12v(9ZP)2IAccG>4`gjjD -ztya(_{vDf3VcRE?{C}_%U=V*Ixn`(Ya9TGmL*IQ5b!A*}$Biql$=P@UZIWCvAWk9EX;Plz%>KDZD_q>|_{m`#5bA9=%(mzA=As -z%MXC!GG4lyqwP%+r;R;oSiTTUUDX`g2Qact!>S7aJLr=b_qxe`$iQ#fJL>mhXoUd( -z_jH7YapQSWXug({jrf;d*^f-5;+9I`py#2v+!y!LdW_FhcjEW_o#Cs0e0*k|M(@e*E9N0G -z7%;yNKR?>Q9gK}N&PIpUWyudL6Q13Zr{pKDlX~&IoXLF~zS67e9o*zEf2V44 -z)js6j+4B{FP*F$e@7vAd7S3Pt>8c;-zeJ5wyfj>5H7pF`ros9pX+bbuP^@)p* -z+mai69Tk9nNl#?ZulI(jjzX(&Ux{is#(tv%IPEX^^AS|DV~X|uf`h>P$W`JOxvbC;Ce%w_MB)HLZz@;1 -z*e1TWX}hS1>OO*e*nM0f(A&PZwO&!l%Vkm0;UBV}mM0MpKc!B#kc9SYS6Ux+j8YXk -z+#;R-lpHjr5KozC#6gME-f{ -zfIfY#hWbO&A<%*nD5&`_;|4j!kUo{^$|2T&|*retk2uOOb?;SonNgSm|3dPL65RSYxTcRQ8w -z%M2^p@R{F5)TiAknArq4lg@I76#}*xsv?H|qQwk(EQKbj8c)AKp)l$!s6cqNt>HO< -zYIOBmmW<;{Ae8{0*>39Qrx|?sdVR|YI7_lwsEKZNrObOv@2npAlzQs9_Ea)|RWobb4z?LbspNttsW@m?=U_e?g~M1|_`PraZ~Dr0XH`qzo=9ZHZ%$N;}U_FVn`{8cvXNS!DW=>jDTrkwD9y24Od@V%WW -zJvTrV#YemMKpw8{Ge(h{Fxj|7o0z}N9}liIe9OLXG;4-gUyiU>3AIu$eMiVi_EC7( -z#CX@(t9aw7s8uYs`j4#*M~kN?b@R*UMLSN5i|;gteR)SYB#!REJ0IqrA@uN6jUkt( -zhN}FvCV$ut*mQ4=ZDbn?)elO~u<*%wv>Yp=^YB5RM}J!1^>4`){qLzjU9qw`Pk!Dr -zUK>sv%iJ|9w(ni|9TM@Fy?}k#kQ$i#VR|bnv1grI(sn+c$j4t(!Xj0wBt^FLgaDe`5ReZ?kVAEI>Zc=a&0NC7Car!(s7nGT(N?>-k)-c=^ax -z>0i(WU_^#j1TUv=N-ybunLWM!WOTbuMe6P{VI?{L9Xi~z;7nc;QqU#oQ@<5vwqY=L -zX(ESjUDD+In!JHi@4KM2{4#`A|041YIG^0BdcB21izL_qvB70iVcy=>y=glM`W3W) -zMBT#hyJxW2>f0yH8aTDoJdI~>Ps+E_>KHndU}fyW?TS{h0=gP#o%r6pw6dZ7p~rUm -z?;tir`9JADTBku?+Ag@N6wouJmt|KH@16bw)jXI>h_f@^^c&uuZ;QZ+dzZa_rO=$E -zYe55LtkA`0Qgn>t=*L8FZAyhTIR}Q6s-k&4(*q+%-mQfDOH}tV(h=@pH=5wifz_Eg -z%x$)o#4IAU++&aF(u5R2h>sKCq83P(~Dh9iOmG~b=A#OhozMq<6x`K)mV -zgnb#>&i>M?BmZ5A+x2q=OREZ4pK6fbFDj-?FX?-VHjgj(#eIf&HDdb6F$!JyKy3&o -zs3gP)Rsa{+rhil%x%Z3+nJDWZunyM1Vf8unUV3Bx&%E7&p?=jAVwY2CVX9a09>41D -zcQJWq);G&RNpuDZmET7(ZZ2H%L>-mV4Pp_mb&;%=2oU$5fAT+?t^%s6r3+IMN{1jw -zwB{NAI8KRr{9-6f?vLM|DE8Y*I+ -zeBE8YlTgt{&g6Xgd};zGvBo(WLr4`jWCk-l@&PhDulnC6y9#Yb;xtqpd0AOIi%y8Y -zgWzlaM`}w1E*wzL08Tet$gLihO -z40SyBHnvnLsYGddjV$HlytxUD-hu1(EEYfwO@ -zhW&!hUBPX!PiGUEBGrK6n}lLC{!tASj^M?U*rL#v*w1d1Fd8qN{7r(Pgp#Z+ -zRCe*UxlGJE!vE^HqwX5_4*9w7g>_C6R7QUAo*00=Pf7F9QTE7r&kPbO$KZYPU;81b -zZ6z|dtuV9`7#`0ImV=XS(Ox085uT~ij!M$Ts4@Vmg3L_8pG)nWy@;oD|D*$G5S7}E -zHZ&iQfA%{(5%p$loll!xh4Wn>ynb=Hg)ZuTxF$~8eXt@<^LRm#LHsOeDQn<9@!k3% -zr2D{$KXo$}qYcADkWfly=u+@$^V-9|4_(H8j2hh|PB_k)AT#yh_jaG3hrw$+kwWdP -zRGR(_4?);2v|ss$G@G-?>AaX;EQ@?d;U`ETVFp!2s>-4-SjWA5I>SJb0?!>El(m~J -zWxq&C4VPcm^orOB^WUUpFexz&d&in{V24a>*mF -z#EuMp=^TB6mGWacCx)B#G|DjV7G(cl!4%dh5w@R -zCQlpFn^kU3htc%~#r{7qa6J>1{_kj0--Ifrep0DE?5mR``(b6x7PR&qIr&3mz9whf -zQ0xcdJ{{O^x*-wKJDuzK1rz4C@w#_iXhCvpxny7^-UkOsoZ7K%!$MJm3C(da(5GvH -z4K_64qZ2DyEMa_#Ko6&UyIlYMjUO!Ku;ZBf9)}RAW#fIE{5_ZTLXn7XQ9^&cBK%~di-4ft{N_s;XNq0q8IttN2v1TFU1qw&#;eWhRd@rkbzx&&elb?G=U -zLKIenjw^gFx1-ktyQ8~({NExr2{crc4rxesyZyf^cHyi$IZ#mC$ir4a@=!_TNjJ4# -zI->}!lSG};3#D?{Ww;v{pACXo#OpF?mNWy&<2jG^U`=c999}&kR*Kgu^T7>TR2G7y -z;C@%_vVtBPTtp9jIFYK4VRB?qWSrJV^Y57o&3tWBGJMlegglV+5Lakn#J5)!0fEmf0|dU&c+oFuI6I9(gh>CZmlhvTS7K|6-v6rS7lQ%p$X -zo#-04i1xJo7YTK}v!t{0OBMVORYw9>&HfP)T+>SPhu@!rwB2F;B-%}Fuajxc$ -z?5#25N18iSaU>2LAimOyn8{7|Hw1@Cj=Jn^73cW*x6>uCT|+v$__Kvlh_oF^FdAMyGQ8DxstFtBhDoQ?OfQM-2M^_-%`J@bHVs-)RQ{npIQX+l@e5Se4?Yt~o=KeJW6{ -zoR!c0EMl9MVkBk9JJlp7x@WG9g{XxzP`&G*nvqDwUlnuPmvaLqsMO^2{1 -ze}RZT=r=-ISPzvecWAAMDA>1bc&oqjuYnO1z%GMc98EwV?N{GQvuhzLnmm4TCq+49 -zd*8n16{1kpHGhVc3yo|UF+ZLnr`&ZyIPQ3fo?MBKP_sK&=Pv$O%);4xVPp*Gj2eVL}PkRIhZdf -zUbY>VVZof@5RY5v9Pu1on)7Ups1Br`MJz?55Q7z?V}#k%44bJiBY2aO7_UZL2}Tw| -zvQR{XTN}Ki?mA%lI_=EP^5%|){qXDa7{~G1?{#o#Jjx^Z&K;QtxSn}}BmRQ166Vg$ -zP}x^T&YmUxQsuIoafHsKz7zM+T29U@2HUkV+?f^v1fk$39+C7G^{%;joz4q|cmY21 -zmako5C%J(1Hms#nPT2$FnDANpKAQ&U_CL{G7*3ZN;GsVGGEI(;Q=6VFH_5n-*v$hR -z!$C7M_lmO<`pH@6UE|chpPj1T019H1+4O&f{`rXhKVK6Cc!aE*<6jr)MYF-fL3S-u -z!Kx1mIdjjU+e|z&AF!u?^8SWp{zmT -zB;Kg+9i6~wmhK$2oKY;VkZVhIyQ5O-MN>!>)*}M?OeOyMeLm?uwlZfiCx_wBt$DpK -znl7@Jp$VU!2)(CRpZ~i9y94@1^JaAKcb~cD$kzwku(&z!$)j$mHLLiK&;rI`<7K%QV;ObuwJ}+glA;jj`8)53(MCd;jSTzA5grM`4P}K>u4m38eu~1V9>j!OW8Z` -zeowD))z`Wx+!+Z^D7lQN$a_^WY -z#Z=J~@3%@#m1wV~V9wP(Nc)#TeLHo0xpMN$m$FDgFU+@^wam}te&jgzJn0zOkJ3wp -zNvEPq$lx=faKHV6az?xVl20Lm>QVIRS{(1MF6WD3j>ns-!Txu51Z3^N!WO82(P3X) -z1mmFWG=KjOSajjA_*3^h%WFJI#5NcH=$Z>uy4Mh%E_xhu^aT#`V08 -zTj>N)D7;Mt`T;7Lg8Hdo{sKr;?A;zT-@4w#i(t3-$3SCGQ-i;YZa$KKE)bmgI9Nku -zIquII3WQ=8o@`ym2x}Zgqp6k~<3}@&`Tcyc_xN{{B*YW|kD!T)?6v)N^wG)a>8Ge+ -zaYf-VRyKwSR$8pNTFs{$RUOFlAS@X5>$KSaO4Bc^{t;`n$ej9d1%#dAbCDUGTS@P< -z(PX}s&+oPrecp6%B_ik>c(APhW(whZV8*kwzcIL3#zqB&dDX(d!d17uB}(URlvrNr -zz{49)8aIqKvA>ckVkwKb1B~eCPQ+>aac{LZ=fqG_PU;VPtYN2UUGZfirdrvMpdxbF!mZZ(nNZ{M>MUFz{2moSF}dAi4f -z4e+&SkXp2^v27uLupVL0;K0ggIgHURJKu-MLx8O}vlG3+A545_$4312@z?ae>eDeT -zdN^B55cqNy&{tVNf50#w<>3Ve(-q!Co-;M?z?~TJECegL5g>dWw_>ZO;8%A}PK+Mxqy}diI{*D_TeIw9~-ufsoFcvT<7U)g4H= -zoc%lQyIU%A(RPO4dd`2zTVHhazHFG32>LbRC|*H3Ur3u~5mGxyxA=z>rmuq12S=HF`$e1Gocni22x{{%L%^x`q?tU*;w8gOG`C>vp -z1b)mH3{!B)O|>WcF{n6Q(VvHO=S~icq~{9T4n8$wyjJW_Viruvf^#RmF`M$;2x@qc -z7Ks(Qw)$3JNlDFEqZ(C6Nbzj;Y8H^8ltae8g7TwfrW7B|Kh!Ma3(QC~Po+b1({bds -zJSToWwTNRP{sV+yd5B_p>r#x^H1x5NHoR5=3dho3e$892R-?cvTCYq>7Crs%gaFK~ -zwOU?_F>DNz{-5{UbuA!itDwx$zRLS@#GF2|_jBgr_yw1gi -z{cyxABGEqs?Id`hefpgM<74Dc7KP?>cEYi+*l{rg8S_=?7I%VI=I4)0Ek*oR05p7e -zgn2_!a_$ZS_`0-?k9jz9ky&P(IH(=I_=#6TwP0aD7p!wnx^K*0x1xijFME!@BhEs?u-Vii1 -z#gE>w)V*nszD*}hoSdp~Cwx2NS5shUeE7z6Ww3c_^|`d0zsG<)E#570&}LmR<2vg< -zzVNG|(KLGO;Dt!n(9$C*CYN2*seeRoBZKyN*k -zsFt1TCY9(f3dOHp7R(n&cA>`C8R042lGkzkb4u(#OY}g`-9HVrGeC@EBOsbA-MCQd -zudyDGG4YG?+UN)uX0)l-BfSU~j4i??%XyQ=R9dO|;3nI0*h#Ri=MOd3*r^%mlVLKo -zqU|od071ur;n*{o>wpSsayuZxmlj$w=ujGfh4%HWQthuOOV&;N@Rwf=sM=>gkm7dQ -zn7wX*sn9XtseESf+>(BWq87~P`{HM*aIT9`9fHo8Fm -z{8=KSQ$|ph2leZx1T#B!(fIRkBwU6BV}sgB*Hc|9^saWHvNH6FWwHaQqoM4oWpCS6 -zs!!HPiQGrQ=|;CvsEhir|Ml&eSIhdV1|E^{uaM -z%!-I7BR3a6C~$OKoImuY&f>h(BE6^<93eknoqn9!hCM0geiBz}w7C!Yiq)slBqMQ~ -zzcIa2Ine$Et6q&dC~|#!Cp221RVkkhGqs%N$d_^B|Lv*2(a>{R*FbS8e+`a^%6^Cy -zRyfuhDE7!=puW{pl$~K{1v0F_&eL_AtJFUo@Jt+^)eQ*KK8@mZY~qPe0JtANR>;(q -z#);v|QgfW@O7}SbuNohSd)n>iLB?H=yKEB(uBVG+Li+zC70H0K#HCT{Ux5y&7Jrk# -z9c&27bAmHbgQ;ZsE{rgJvCHv3GJ8-;~p3Ca)C}p~BD;46}bwbv~3zKuWG#I|Lglm=2tU(QocwT27 -ziK#JoE7+Koq(&3N##AJ!#5>BaR8YEyJp3-yYxl^=QiXZq;M99*51K=pb~N| -z(i98fF%nRg9Fc+m;u+W>!sKV_h+Fhd%SQ*CIV8fRL-9zyM=%&6pdQ7{RKP5rI4qL= -zJ=Kfmt1^kx-eF4BV-&@fw6^n7n-cf|jwdP9O>s`{Yla07K3BeSQ=3BgqC5W%p8X+> -zjyY-ijIa01@}O`TJ_=Sm@I`YXNrExGY^W8Z36~?hjDq5Z`tq|1Xa$m96l>r$hiYKXT;sszeH}nB>?cFuKewxQw(MICevf8j{ -z&+N0cyR<(jUe5LB%${Nvn+%O{$Y%I+DZIAUulSDg11T)}J_2xcQo*Bwxn@z!%! -z93U@UgE#!FjiB|yLH-~m7t>K7Vw;_`#WYSFBN=ERzva~E11CW?(`8Xvq=ji;&|MI? -z96jDo<&LMNzf?`Nfc>o8A{Zh5z7A<d4*Z^!bSO*KDxC^lv^zuyau7%?f4aaTLQ_rk-wdc`^jPtL%}7kZ -zV3zp>4x$=ebVM6HW-v_!b5WcAow){PB@ju=GLRI&7UKUz5A0V;k`@oj+-#cfX}8c6b+05JM?sOqdV( -zPa+VVDBuTOoYi06fh?F&H4BwQ`9p`_>@4R@9`mMYX^dm$iOE*BAwuNC>@{r4<zT&#SYIy)a_3;=Ehajy*1z -zt(r$`?(n(`Vk~sXH2xblMjHoDM_E7mpNv|+coP#0v)wt*NO3lpVJG)|gE=w=XzjsP -z6HiPcKnua?`4YKl^hZedV~}Jl_rGHLmU=ynV1f;^G;-t)MV9fGpIIR9@^yZNH*VJp -zqQT*)(Z!|Nu5oLw*4u*e`(Byt`z-uJ57vl3rMc%;6u+asg5#B+yU9fSgI^wz>N$8K -z#Tk4nlO$POU%l5-LeZFZ>{E})=Uw93GtyhAkU$K(W8R(IXIc>@x4z*HQZd -zq5X$TTDu0*$OkUt2{ZHJCIq6Ff0_CS3pU(mLRVx}Su)&Xo{AN>^Qc__%>~2~ -zpA)s?2Qgd@N4mI-s+)6oWQTt$x7?-9;5ypzMIja3{rTJVy?>K#UV6i8Q1W@{g^ART -z&n9Urrz!0rgGX!$z+mE9xLLPpEw(x|E^g%dqLZQ$4YtU-;p3$pF3>rV8U@f2V{o!lIUGID!1 -zOPoZnb8kl;MkdZr0sAopEo8$(<$+9cKhOgcoY`~_E6Ykd>GeP0LHc+II;7hs7=-S+ -zib9aZSrt9`bA?}YPyWIG+2ZXr9HI^oKw$Vt<;umMcb1qt@6v^`JK?0>aVEf`l$8GJ -zi;F4iKs9}I_7&tY)mej -z5`vn1LeTxzGs#hid~-^Mf$DW~(jDOhsC{6iY!m`1yEX3uYxqP-l*H?ri^UbU%aBo( -z@uR=b$sLf=eZvzO{)i8=HBHJ~-v}u~Pe6BTonQPlJ&j$YaD`pJ0fQsa`c!Qv|}Tj3bVTU=CwE+pa%K&)U*o)c6l(W^^_O9leq1jWitN=H`Foj;OG%(S{l{Syb{Yo0u3#JXg1WKV$0Z& -zSHK}_Uzdeo{H*6GPxom}c?4*Q -ze`(p-??kJSugc(g@QyVhm}tHR+#F0#V)g>d(71Mx7v&i*CLuDe{o0hsM_m) -z)d%>fIw@|B6IHEPg%q>s=lBNCE0{BRVtj}{bX022g$=FMc;z=_;-Q&u$`ft*8EJs|B{H;=>K7jY)hq@!@r -zcFFwjTmK7n+AKyUJbsx`CCTxZSVe}?67Ib4B8JiCCyLlz -zLA7x@eFw%5k07L7$VVLsnxaq4;>4oxQ!uLTm>FQy&XZ~ld5}G34Anoc9I?`Llmn>e(a6v%w{b8h0FJ){It@1l9Ux@iFtSv9$VgqI2s$lfrOg^ioZzmHz;8MEm%w_&Ecy=9-d4O^?Q(9aj%{WB2nhC(;Jak9mnR$I<%Na##6pbk1l6)#r;~ -zPkffia=ztuBKP%MMEvMtwOlz214co7RCwjel823{F|DlaN|#`lV0;^lG!FYwvH@xx -zx|rlXVOMdwvD<>kIph%9Zjt6nVI_cHB(BtYW{MmK{t(z?d8kr>*@CxZo)1-87rT&-uzKz#`c;CQ41py`*}XnE7$q^R&K5XSnN+n3?jZJe~Geu;F#l0xT|j@eE8G; -z7WNQvzZkCb6IIvv_uZS`*fG>9;s+udI7!2&XMBm(AUpuNaD%+%pg*X*Hb2yRC&N9y -zbFx<4I;_}G;8>Vup*`cEYGVL~-v+crpnDK%95-h^e|A<@|Kdun+47>Zgc5bv{Y`{w -zLJ}O}T6oyKoBa02;vnjO-#CqpEa<7O#V9ByZQbjhY-4iwua6~fwb0o(OuYh -zmQp1{9(G&ssFMo*PJM2W`h{<#KOv4IMdfqPefgs0g51FY-pPq*?$^WMN1=z`{z`tr -z&b&gS`Yg>_ao1HBgoJUPxdQ56i=9(^u#un` -zM#(t^TLYys|KN}9S}|loOU*_{_hH2R(;BGfkL}yOs=G=z@S<7IJ+n#Ptbi(gp`33s -z=e~IA!PF@1^62rL*Kpcwdx$0zJ=aBB=`9u~^f*OvdyC>>5v`AUkEbncD{m4KocDUO -z3^*IVp3n_As9UpzC00S9NmYb+c9k?V-N*#N(2*HoD5DL*q}hSv{QsmgYUP*_9xbcH -zwg_oUYkq>fPl*YXECQuIze;CqyluZ?*uVzZ&6gOZqc)b#l_(^*FU^oJ;TAePRO{94 -z!*|!=5m@~Smbw(r_5Q)mK$X2P9yt$G-IzboSLUQ=Sy_)LZ!w){1m{!igo^rF|I>rP -zH7NA6^qOyr%;dWAc?b-0c?=`w^EqO_`>u#$0gTvEt1TSY!u%YoN+xly$ -z5b`>>9MsS~BYC4sb;K>OY!2D^8#ZbD$zTqA3FFM))#X1u*f{P{6zeBJl6R` -z&rIKzB-oQdMumRT>jAxs`7FIB=(9bd-t)d=y^#i70L)FYUM}QVa}-|y?WM0@@KKhw -zFPxw0AdvNSp@NB^{+oe46qo!=hP&cC3tR#U-RCFF@p6}p+dda{!r|gvOR9%rZa*t8 -zFL=-?RtRVOTyWq+i9$@Jgh;IMX2u_uR|#{iPnyduLRW6<`DL1^_b{ -z&~AB;R`0*JPd@an#2=U-Zo#nQ%;^*B(NG~AOd%}Zz_Tv9_3+akzAPb4Qow&zqS=<% -zWIrC1-+<*A-aEQILVH;~;>`$}6PpQ`Icv(a5-VV=6pi^@!|t_2u|`B;+qmzoGFJC1 -zOW#-sjtmn$Aro`V#AaN4C%m6`>`?B!MX7xAwcWNhCOi&(2JHr13wq8c=_%j7a^!Xh -z9DbBH;sx34E8Bl4tD_@1#7x0Qi{Sqjz0vL-Idq_09fmx8jh0Ds?I-VOnD4}XT#=g8 -z^})w+0f#TLiM9pTwrx{q_Ygk6?m+Iq%S&f%dW{vZ*#M#rHXCO0`K!K6k(iygV}T00 -zW-n3zatw5Nc~)rp)jjzOOLS$GKBn5Lb2ZN{?dp|0VdjIMp1g!AAGQ#1IPzJrkuFF| -z?QR%i-a32D|Ba-8`!s)%HP(T2lL*S`2=&XF=NCOg4SYPJ9fR|K4~03q^zSkIa87muiZhX)t39gG*k)eQN -z^lOLYwMmx+TA5RFUN%$EBGQ|ou(e-XZ}Iu6JOR`ZnSRly -z?I-3d-=1am=b+2@l#$3vGFq8{O{TcmzH=4QcI?Ifk4tGNC?WKL2xN~>kn?4)lBXGX1SQfDQ>2kovId7+I? -zYO*9Dnm+HYQ-el|vE?lSe?1*m`Z^#PxbWdisz_aN-iPBVL`VUu-JYiv&?*#E#TMYc -zoINOLD!x^}hHh7lf5oDU+f3Z((gsQ@o6uLtx!n^YZ$_06Sp-IO@rA1~U51ss*PCg? -z`NTiP9H&BtZ670sL~T+mhg0aUMib8fp>Yp}ZQ6K=W#K)~P3mu2ZG?zvhtdP5&Es7-M+J}OcFyj_yYW8Wu -z949j0dcP)XBbYB~R#~-TeuU>Uh-`uEv}cHN;3U0pm0F3+VyCyuDTT;gOtUCOwh?8Ud -zqbEs*ip{j&P}F}vKRH>wt2D_$RHpwXkvu*s^DO2-lZnv>&5j}|G?y~YAhK7IBtOOB -zzYEhcSZg_&*G_y~o|1UQ&t3kx<|4>KdVPzQ -ztM%3Y?0bky3a3wIRwPn8|xNv@SY7>XjOm7_5}s5nn?pN5a*J3jT` -zNR%WKF^)Zt``Y_6lizwG9g$^3NOK}=18T&R3NKmVB?2}?wEDY}cH1L*O`Kegk-)nm -z+(Gr=4K=RShTDGjHxZU**4H6@wJ)8w=~T@Ni^g0e8aa!L_yzkw2XRJPdIAe6jvaIf -z^A2fnC2&2uQ=(%$=`*;1{MYxrG)s_dh!(^iO@CSa}--QodN&MC(5WfV2WKQc~#6%=tzWL%VrEv|(z9 -zs*J^)`yoRrbt=;@FFSL%OmD>lJ7JvqdF~LcMWMmL3nUU-$b%aW+X%A16$s-ho^v*~fx1mKZSd -z2L6P8*4Xh$$*EPLqZ6i}q$jmaEp<3Sw(2y0)ym+bD;6F>72qarSPneTQu-r+Waj&4K6 -zYi%E&5_KVHLXKycYAh5FFDDrLTzV*;gTBZSic3PD({g_*8mytoHWL-23R^^L-^Y`~ -zkcYK;1?75vu}AAfPVeLx80y3gzc^;2_=-#YdiXMW*jrQ){*D#6&%D2EKYB*6B;chW -z7=GoD8R@akH(o-up1R3C4L@|{7y2KKP(Sjob@h;iJQ~Ggc=q_L*Fo4Jz=E+ItRYAo -z3^->BS3=Es;@uIG;qz*EbxGdi6p>tyOb@yC`?22efH%=8v-T)kckL{NOe0@)5#{5R -zwB5fEhv}KSrwsdTMC3=eDDFpU9S3t#eRnWiBp1gNJ|Ch-AN?41_s_Stn&4sTKtTTl -z>%rrvlM!)xbfGl8T9lt17@qa~&0j>RgzhsCqtyj3HRr%Kn1ha!G^vF%Wi9z<1JoBs -zg87+5{OD@6la3?{y6!qXPu}ya?CbKqWdV!Z&3Y3d>9j5g;N<9 -z{q@^1;p4Z+RHs6I)bG6ew@{3|6~5&82-~ZUH=eMq@8SpWf3F~Pa+TTU -zwmJ!x;BPF!nXM9uNbF7Fv-SW){A<4Q4V-I!sh@ibx_1Kt%P<-;r?PDkvHL15>nvk0 -zsCoF~`iKS7&90aB$StOuI1io_d8)f29O-NeU*ivFF1m6EyK#_%CJY60WDMNoj%uHO?aYVgW9}ORV?y($fCq%{EwcW98Y+CBNsowD#GyNep~L7D-Zc7 -zj4gN*p3!*=&rnOr&fCmTjJ=vU_k<&>43a3J#|B598jOmGTfTv9s+p&_Pp7-eN@;r2edBW3_s`Bcd#F{Wr;Ztv?HKfTCzDE~8)`dPV%#LQkC -zdC$jSM1V!^G10SGUn9l5;M-g9NXjL!3UdeM?Qw(1_?C=mZN5yJ{HEE3(yAVhQYbA$ -zK3Bv2S_q>ABIL#3Chl^j>qqAAy|?CY@;@<$<@WqN1N=)y#3iI{8Y*e{GWdPVe -ztbGuAX2n>KZ3`Xf9@YAc;k@#3H1p{4pWZKV2m_=s64OM}f_WI|c^GPIMkEi;X%AyUG-^n;$g#+|IuP -zuZI*X=x&4vUH>7x|OA56q^w4UPRXYTSf73}x&2JSxzk9xSEhpkvs?4KNX -z6rZQSxBr;ZWd*|Lh)WaRMzxPPu#XEeH`1(18p$Q>BIyG@?3gqZE&dy{KXMoGeVi~L -z?u=LZiNgZL1ByUo%l@RJ263zsCEd#7k53{0o!uvZ&c18Cl&zKgvov0P?cb7$?2H)F -z-I%fZ%tf#~gja>}p(V#qQXHKX{3B_l8nKN;ijlWuMNlW_P!??uKrO?$aB_wnjKsDM -z5K1_Df_@L6i+)8Mqtd&naXLW80;*-QT_a|x*Mw8L_wqov(>aTik&|9-el^KCwn*;U -zNELBO5Oxbe8Wi^u}GvA%8VD?EiM{;Zm=_^-q3+f7mJkNLH{N>b34pFUC# -zC?4crjriX>Gk=kJPNtG#G9)5-y@4U2C_g<-*ZMvt$nwK9g;D}Hg~VH_A0eGOgJj#1 -zq|o(JvdRv=6rpUpm@d>$OkV4C3`|cag -z+i8E4VaT;j!D{d$h^xKhdVpudJUe5$-=9!{AKOlaX)|QI2T#xAOAaG~y5iZMU}K+; -zXEUQ=3gVIJhB)Tz5NL^VSFM%1yU<=fpvd4N<`~M*n~Dzs@rhi-Q^76@&)Yd=KE!M@ -z?>C;VPaaU5fRCU8ddjIsaf$r#wIYY}s~;N{-4o%U%;!j7y#l)dry8ieYYbG} -zR__KcP6t9mnq}s<>%~a7D_l|4jik_6NnIy}2(;<3*eTM(DH73ccx5Ci_1FsqXKy#g -z0A$tIcU+|xEQtNkdw#i#cAI4SeFqGHZ^vL=Xmkm6r#u{qOMSQ?@-ltmzGt#6qbEne -zd`(<(#((Jl;Z9~5iF7A6-Epm4NO7OU;r7xl$hq-4b39q|SCAr~k`sk$dF3{gDLQUwrvBR+u$# -z=g2xvG(mliVV8l8d-7^GEYRTR%b$(vxWAH>w!dgOl3a66wQqgUnlfJbi{$FwLRJ6$#y*41P^gm7(?V( -z35<$}c}TR@M)oH)jN$bMfGx*U&96@h!@84?CV>Hezz} -zXpCfIgZcsBYO70ygUSD^AW*+qn~hz?k9B%DQ2Vq{Ssi$6=E3?`4X~y@eH|R2=h;3+C4LxbKA0_FvQX1c-GfkLs?84tjU?%UUQoD#J8`MCbuI`5<&7{IBk_Y<#>r5VT^ -z53J(seVenuut7?3C>~&vq(;8(*^?1?8Vr7=^Mu -z(yHR%VC!B{r;l%1ct1Ala15?*@h=@^MYPpLSdyEUwm}K>YC}`lpb+{uG>CdnSSGGd -z{fC#5zp8zW#XA6dcc86k33(cm)R5lV6RdFMB5L7FNTD{Pl7EC9$?wOWiLmfU7pu}j -zimk)sXxZe!J!jdWNh)-}hfXayu>AR_a@TB+q+ro|LazQtV;p8X&$_e!_a*Uq8P}51 -zlhif$akv!zrPPpa;@eYv&fxqIm)=1@ztKkBAY6#bz2kNL92R_fNRj_pb9iV(Q;K<| -zcg(F*FM8%8&km#1+3(~451}RR4nv;Vq -zj8A~a1G##Vw*QE>C~$A!kDnW4R{8!bB4E_WQoI@YlYyXUk~9)Oru;D{EJc6jxsW$Z -znwE2u?X>su6PwTdWU4jxRG5|yZ(w#5e1~89DpJ4M;I+l?ztHJHa26WK7Z1I^rJL;mnRyWhSQdeMb)xE&3&c;Xd5N-Q-xB0b0N;}syDv&#OH5N}nr -z={{Cn^Y>k6)qA`3VW9!s5r~955`D^qQZLp$Kw7K!;f}*w2r}xJFWjz8PIpt~44bE2 -zF?~VW6lmy#N0w`Z>+{6%1S}gr&Gyki&(RXZA{bl5W+MME2WtAjg|=8if{c%ANLWC| -z-vvtKT@BZ+7Nqsc6lAYaBuTAM!^l$6V4Y{Il+{p5!~|(-9H-}ffyY3el+?cXJ_*$k`?5$Sg=Cq$skkog$j)*RC3OLH=9FYsc3Mg -z*%D=RY!&Et6Moqu*D{|#pnNz@*mi`>88e`_r$9>@R1gyyQ -zX2Au+fqg##i}JqG+?pwVfM|_%Ylmje6iCLw)J5<>VXdlDSfURX -zNqR*UMdUBT;a03ig;HiJ71SW4uXjKGQ=;iWnI4lxEX&#V;?G*v%AZpq=3Dytt<;-R -zxdG3XgGfyq@g@UXSGR7@0?n%KUdh%WWr+Fw%G!zEmt!J&Su -zzHK6r^HrU*O=R@HA&G4Z*qt1Nr1d;+V`QcF(suY#Pwmf%aR0l=%(t$hj{N5_71d0P)MlG=gMHxF -zvA&hA9H%nbM+5nanW)SBR67+3`TvBIX9|!1*pgU+f}u@Q?Fcn}d1JXvV^B-RJ=vM~ -zNO;M!?qn#fC!)%Q!v@Hj;CL}aZIi^E9dG_;z>xw?`63%Lc6Jm_x^e3#Gt(!!J1#46 -ztIipDb@52Io5!**u(_n84Dw70r~l6yctEF_WrsA!uMN;hV+;HzQ)2Z>$nt9MbBqv5 -zq6%)%z7xnjeaUd@z@@ciu*6-hwJ@KS`?Te{NiE&NY0dEOJ5=f}7Oyk4^^yzW<+br? -z4-HfMLltl40kQdM{-p~0>V*s_jvAq*urV6AQv2~|Cdncu=tk9c&c3me)!>ap=xDLi -zHj4_@An!sy?}j9PvQ2Hz%yX=3X`T`CUP=zmDyXcAtC|)zmISfIhDZ(gpuG=nuu9M$ -zxwgzPJhq10i+s|3GmO9*Tb$~J-3d6Gzum^Q?9J$A*I@?Xo~P#td8Jj$0q4)A`)~WV -z{R~^fGa66iBe-ait>VV}so9_(j0||i;|{cDMxt-&a*kiAuan{U!p@)$)lwE5>UkbS -z*4D+Y4^AAM(=fLNI%SMd}g -z{fD|SM!xb?F9vRB`GYcqLxRy5Z&goMSSrOqE6d6=$!p;syPf6;;wZI+w4C^%P!M+5 -zP1Gxrmq$CVGQh)tR8`NTMXWu1`Qsj;iw8nGaBFEdaDH?895LETXeOTJ4i^RzQL)ID -zPEq0bZvxY&^2Gn$*>PZ3OWcHLuw$;2V&>HwZ+=UAd)}K{%;MDpjIEuQGt6&I)v)Xb -zPuFuZatmOxy1=w!tW0su{LnuQFR;nhOlvF5ZK-aH02uSFII=im@&}~;BLe$5*g6Ud -zxcys+uAE)QM7UI53`5$AxJhG_Y -zo7FA6b7SBk-M{U9KlETV@+d0WP_Yv2tqQdOCvkB(_ -zt~<#WkgXC-e;#LQ=R6WtsZNzwe)<`{3oF`eo`x(erSz~>9q8Ir1YkisMQkoN>+Zks#)P2 -zXnP$`O3w{| -zb#BuoYv4nQe>MHo+BIFr71ainYJaEq=>5f=QWe-v#tCN6#-sY?b8rdNv7#aiU%^%S -zTm%EX1iu`(hfz_bC?BLlMC_%j@pN8z)r!Mm$E-5x&i}|ZmMu1vr(%Z{oD+td0&N2v -zCn6W4Wvjq5LHsDGQ$BkgKm9J{zx^6Qq%KBce3xw_JWP4`a?7ljV7`75>8W4KTl3st -zWo{jsKbg+0mSk3l%Bp--QMQS!7(FbC0mR%r-%?F-ySP`v77ZvQzh|^eQy?k@j~ -zfGHvjf5DlP?#g>HU-jdC#S%?!58*&+r%=@!{7|H0$(BrF3fpm;SDeM;cjfSR(I(HR -zv`SCY{cLNYyB8Blkl+7&L$DQon_oQArU#%` -zu;!XZh54G%K+YdNmb05pwoMeFXFHz9+t8<9KTVew8}j|r!~}l{6imyRJa&e#r32Be -zG|A-Q96OxIMW5@1_-44y}nlz#;Rhb^rrKJ -zo_hM2a?~160g3fm;8}8#f9iL15qMMj>(vPDPP&rEQ{rU4kc5}Ja>VNzaZJ_Qz`W>f -znJ{n;W7Uadib7b2FHCbE_@^3+l<(j>#AL#}ekjbY3N0Cm6lDJH -z32r1I?Spc}3{b#KzuR4Sk5WO>n(>4qq5z{rkkU8>xWVK8bm7~c#Z)>h5;*+@{1?R$ -zNK%?)_eBu;oZP25bm$eF -zOFWTyjrwoJ_6*)+LDq}~$Hn!eKi?rw$)0w_`UI2FmUYE*YuW9kw1<3Xq>`u9WKN(; -zHq(l*!4FOk2%`DLl+j*tj1k)KI;#J&R$#o<4Rmq^@3c8NL8OF(qo9#g+QDWwKgTn6M(!IO|(*w)& -z?;8n$N#+B~93xGlR}Dyqp>{r=Z*FG7(-2xsZP2Tyho57m@y4k#r~$!B^`73KDbY;V -z`*BepJK4RWo|_T9Vxglk66MJn-PmC;OQBARPrAHU?qN6WzvJ}#4cbic0185;*G*5E -zJNYbnJ^-V)t2WCWyhe=~%9!$;{Aw@l#3E)dv0-;qYNkG*)&R;ur%;PFJ$FJJs2|A^ -zgZ{@%E+w#qbLlfYYBO@rfm?fWxhelyW*5+ynU=@?_K?e&BnN-W>YW)uehxtv!j!0B -zP>c{?60r?{4*J?Mz>6|lPDyB4vqf%yUCzM|j{SaPa&%9#Tl|=M$NN~H1CTFnZs|5M -zEuQNd)oP(Iqi)Oy;RBqDt_y-{aHr+AO5;7Znkktv)7(e^x8W~<>7XmZ?17#HBYxCW -z3bd9GWG0tVqn)3_4=X9LwoqsiF9G$niW!+1nZ$O&62AQq^^KNw?K@z&CjLfsWU1V? -z69-=x+J;|???}-T-a*$y`)TC?Z9?}s7F)a?heOWG5GrRwe+ub2f1pn>Qnjic^51c@ -zEDq3h_*@dYw3~PtjLut<%?_IdMh_e|1?TI -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 -zYQB9p7>n{@Fz>&L&@s$v^(O)3ez3czXgL -z>^UjCC-usR8z`dAq<6(D7VFdfM-P`x=d-RhyQ=-(ch-Bg02=6ATJu)&l)xUEsMes^@?FaH6sCa*;_l;;3zC_dB1{wpMrkn~_ -z?y{REMIAe~F8`Poq9)YqIW`9iu(CJ@*;Eq_sxvbezf?!*AqxU^)a}EM*=e2IHP2V;Pmu6cs%TcI-0ak@3fqP|{;()-fE)rky@Lmnx6@ -zTi6zc%f{rLSM&e=EiVuL=a|3Dw#7BlE>RYSco3lfSiLM}?be?*mKj>H#VCODE#%kd9o#1D<(7TO8(hiGZv|!f703PN -zbGA-%g^(|Y&Y3%9hJ06X4}MI91)c!xZNWenI=yJjDQ)y2@>^K@LgD#jyT31qy4=Vl -z=%*&5H6enyMeIfk>eH_sWpEjR!P|D?kW?hUk6HtJ!mssLgyvosWl<>_!eF4NnSjCfe9Qnt-XZM| -zn#MN2a|6#qUD{J2olppLab9odZHE6SKM25}0*d7-HjaH1ryqaxEpGVeHA2>MP&aVF -zl>m(r%>m6Tl&8|yp0^A2r3D$#&k%d4dEr7o*At974ecJ9?Bz}1Qkjhc81`?>v>;-F -z`}QBRK8}^%PbiVOAj6q3I>11j>C8XycKgClJ62cHG}1RLEy~;oW9=?$wz> -zg#j44agw5o)2Z#04ohPZ9(217vF1U7$`*w&arpBEE14O+ -z;`>sz2{e+6>GdX{FeIX?6g}|5Y$KS1djywJivJ2;FImoGQ4u+hiv@8epRpc{H6%8) -zc6&c)ee!q_iOPi;G#ulBafIqMW&=#PQy20;h7Twz+IzFP^(l~dz{D;Y!~^dpD-3e} -zzGA<<10H$p%^5`oow?`=?=oAqud(P4h;{ZF?XPmRzl)%f!$T#w_7;z(LaK72rqo{6R{DRwur9E+!>k{Ay!HQ -zub*{i{aUnF647>Eg7#V?_Kl;F0DDg?Swe`&oYNsU`04i7c|li_GitCC1(r5_;xFVj -zjWs(3Fu^@&n;>?%DDxBxKp -zY7m8z{avN}nj%WS-k`$(?`4d-W#4+Z74oAO0H6YfVG0z>?!ngP<6apA5Gu$@))c)H -zHu7|aeD-RvI`FLXql8(cb9g-%YYJ$~@|K2uHAl3W@W?nQvF&2GKOkdmP)8NbUkE|6 -z@UdFuDgk!=oecbPk^D_oL*;1cNdE -zaDQ(fux7S^y+=m?`M~_1S+=UYLbjSzio}WYm%~yvl_2{D^%%4z({tjBmYC3RL#k@ -z3Z`R69e_)#LBww=*5iBKefjI@d^KK(zw% -zywb;5NFvsCMspT3WTS4{SJ!d3AMW0Nw1bF?_K(yXTIr>f8(AdG5gsWf@0hU>@r3PLE2Xsviy7 -z5jlwHS}Bt-n+PltQ-k08WIy0-R_q35$@&rTK<)cDqa$$P+Alrx9P=ZG3Sg{W&8le- -z(OJ~Lte3hWXdK(!9Ua8-ro8YBnFaGy9*a50BGa6Av|%5Bh62hn0@RE&rI&R*Q{(lv -ztG$Bxnoq_JQdJnm+v5@VwLJrI?8YfjI3o|}(D-UB9}k)qXCg+AS5m~RNrxm6U&(o8 -z6^7d5;zOp8D19GOpc(x25EK((gH1rr&fBHku^3`2K#@kiuy-?=}jQ$ -zDzQ+5VR_BrZbXb2>DaCod -zQarF&GHU{u$bX#3)l+x%$gD(O#*RSAlpiwYE1s|25&iGPE(gZ`oH-#5cn{qKGz-T2aLEV!-YZF;x_q##6=Z>ZDBk -z?iR!h{?BHGE8*J0BRtwp8c2TsghF5DN8Vum7HyiNcVGOhiyK5HIb>=67L4zmqBrcO -zxd+^{t4bF@opFQPnC3=;>~nT3*4`9CXT7dx<}$H{>w{cbiz{zlk`KBcKl&&g4Wr@4 -zeolO2$^qW+M5UjJy@Z`Q_R2i^LuXiImN7~)hP_-+@(tU2T)i5fQICF8{vHuRY-ThE -z1XNBuX;fA=(F_U96N$JDAHlo(z(Nn*BUY)T(?H6P+so;RPiDd0&;~*YxVDeoAl)Y) -z&e4Eohgx9Y6Ay?Vpci8tGW-T#kHnkZI!>Yw#W^H6-nDCC-b%rq3M?*F;CYqx!Jdkj -z@JDvIQ`Mq{mSV;&h_jMvLGexhpLgA7rO29goDirKj{Wv~J@q`(f;STnEe$;WiR35- -zlbv(zX0asQ?Tpfhm(uh9fockm8PFI{$(0+!#bxnnaFsmXEsJ*{q5G~DzbI6wD(mRB -zTI)B&MKJy`^lqI#M6QR)zl&G0l!WIu%Ia+_Vc+j^WiavbT2(PM_Ae~6v#gFN$TL;4 -z@(e6h-Up7Tq%q%H$%rss_vSb{N%1j^3xmKSPx3uAm#@-!H*ZSlOp=&y?TYbc&>ZM- -z#|$hhs~HF-k!oMRrA|#^ok;S2c>XUCd&D%NX*@#O?Tuw&7FzJ`tSjTVl^>mhOps-A -zHBDYtHffa0ET-d*;$7Qjl5;{($?#voW0O%CfXidD#OAV3=vB`WUn|v#8(sdno -z%Ra#U*b^Pt>v%@GNb;SX8#~q*D -zSLWNE`H2C>>3|O5w@W>Py3_xfrHLeP3UBEf7rQa(Kw(4kqkW|Xm^otjQ -zJzhb7NX)U)TyjQfoj5I)?%DoJQP&Rp7U>MgHv`+t-Fnhge6S*(REm7k^P&99aK)GG -zxHFE1EC1}xuul$l*Q1J|kR`c3XVekn+#uKEMa4o}Oo75w^`4~KwsVtRiPSc%eir0F -zyY@1F^E{Vwc8lQTpr~@e(au?P5e@*ts?95_wB3L>I5SrKKCdh3|tI& -z`?emBC^z2B=|VsO0U`Zj@ock=t-(d9u(G*ZMKh@u+>iF)bbF_L+h3CvA{qk474Ja{ -zNB9++)V9B1!<4l+o3K74Fq(HyluHy>b$<;({r%U+Z`{_q_uU=Kz{~)X`OhC5mwigY -zcfAQes6`q&I$fJ(YiVgb`X9{K+SDVbKLZ&@VDTIXuv|-tBw;M%emMRZGguQfv0<*2 -zDmaKpL!jT9y>t8Y!h5P$goilqlWX!NAH`30*#rF9w~WV}zH -zY~gv%-T_g(F6^+kG_Pd;BI2K*Q(teN2&_vD8d$ErasA0P2lj*Nc-@mijb$o|$a@?{ -zPDI|S5O_6tnd~Abo1j|1jKTKluQTP+yqDLAFydZBHi{Lu8jzU-Lh1A0le#-NPEcCR -zN&4MijN1j(JQ7Cn?@TS@~Dm{4m18J+CN=1AXlc%qZ@zc>war -z5AFnLJP|rDvcwoMi-((-5B{zK)#mCeD!iP2!k{eIx7RzZ*5(hheO~(j)~w$=_gH9G -z9Zl&YhAzVXSX4iHPlK2Xiojf0amP@aWm2$}ec^J~TZ?u1(f{&38$F;><2?Yaw{aJm -zbQoT(j}+h$3tI(^MRsCuAFag~LHS|Kx#YIXNVqn5^4Ro@*RA&UD}A?E6=fuDiPr1P -zgk=C21sgo2nv+tyW0l|85rD|T%4qjxyk@&;Lrki!hIDpT08(;w7lk#?3LeJx&A67I -znQgrVjY~!E;Za1VuBXii0Gl|ID|0;$&{dU*S?{D!GSN;=By_naYmqOWab8$-c+tre -z76ZN*QwH{pvOW^m5KnJ80gW!bh!MvEbK}*FlG@0Xl2=FW$21x3NCnnz$Up%&MaWky6BQ%j5zw -z5M2-7GL>fTkyj0~3Kvqvaw^YKZme9%su-raIRB$dLIW-&PPcTiqSK@M7De7L*kzcL -z5XOaA9t^O31Bo+cOvFOU-)1XC82&U|p*OEGcADDX3&u(YIZlfdqu6&)AZxIZg)SWm -z(YDsP;X}!j%xZ~jqbx8yDc5WToLM#4noGMq>pno$*0%kX+^pqxO-N8#{h8`8NCy=6 -z|FGP8PM`vtZbs9-1kIu$w%F12wUL+#p&Y}nAKM(zMv$bavd;v?PQo7sVWCz;HCsr+ -zu{Z=Pj!qS1F6108?)|ppR+#kR6OC~QF4Z3(16I_KBEDv}SuN2uBu@D`pFgvl5hHy` -z{0CyeP-k|v{fmXHH(yaafh0`NpGx(#>6>k?WPW1QS&M-cCR|LARHatiqVzU2~R?I_7VEZS14wrBPQx -z%$)w)L}d{PfF%Tw;pJ&q1^V#HwALp6HLQ^1r4phZC4TVGJDz%D&9Y~Tow;L2{Mf;7bu(ewus -z1xtt8nCa``gF$fI4G1DhpRrfORBycw_>GfEi0Oiski0VVQSjqiVwj@Y-=0c&U|XS4 -zrms%55l1I-MJN)U+k;4tghM2^xE-zMn;p#_LltXBk!w&CSVHCw-d9SuZExqZDrslU -zmeCbwxx@9}S=EW`zrHoa+bUkb1rV(6~bO_u+ku#Y}w`G5*< -zpNX6ln2ACf_)2st`TG^A6!%N0&>@@WRMfrsV4|$ZXmbi4j+3L7qNg6?P@i-J5(1kU -zlH5HQcgJ;F9CSOcXZASW#>l}t6h-Q-7Hs@KJj-sznZ}XwEoR;~^~b+nx$G)4!pD$3 -zBlEK#ep#i|ZkQ|E`O9fTE^5=Z-<*4{HL%Odp<)LT>nm4PZ~Qc%kL%r1nqr0=(Cc@_ -z2g)I-ax1>dz>9ed>~CI;cR3wxIAB@KD>_K0^7?dMtO$*pM}$crQ>J;oh*q6@g}$VA -zJ16Dkrvy_x9rd-{ZIb2`gg3i_M%|Pb*x9rcWZgw**32(&ZosLOzW*iDU__DexASmR -zN5R_hV8`hwDdH9VErTIm1VuiJqL8b@GAz^lKS5U)av9JHwa& -zt>Xz}B!KxGhz+hhQ7o7uw$4y&bScz?EJ^(r+32Rws=)@NZ~^h4BsF~_Ac+4%e9am! -z*D4n+;Z}ztL_`hC$~F&@$kb%vq``rT`~6KSb_79zfHmgg0HKM9u$Vvj#@M;o(XyTb -zFd2c|bicAU(OAuN9#FwV(*24=8Wn+OL?nIQ{(~w&dq)LIp8fCtu{f?V#yruF=n2z< -zp+?^rot-+)2T^-9y9Yar^@ToXLUixD!h=qA=0VKbJPU?(h6NuI; -zb5xLl4bkJKs!Ws535rh^!Hww&76q&-GdP8*z;Uw_HHeG? -z@lR{~{IThydB~ss!Dw7K}6FS;xd@$LI6#y9FFU>|fnJ -zoVOd%5nGgXA%ZrOjwG%7&tS|_E;3>KdVx3b$X9DlJ#p2G+sHa9_pjb?J9hPv=1}Cq -zjb#BqMxbd`e8Ah32!#^#HB`2u&^QHMn1Tud@9@vzEQ?IFFHpzN`X*an|1>p+4wz@9 -zd=bFfa#ncU0Wge!NocgAAsC(9`N@dLA+9r&a8UKYN}I_Um>Xdzh=^v6e^<<$`~a -z=Hx15l6{6n!WwLPoTuI1CfGo8zf?_GBSjA$nJ -z2Zta)CdsOV$P}u;i(jjtP@C(h-{0a}x1#@F6t(2izCv7sVAxIl^@OqwH_2R!1Y{clvzpiULdS;<+9+Gz07Pbw -zZ&d2`SwwtS`?2l|S4*~me*hKdivDKE^iVZeT-C`4>F)2ReY>PfA@!0VC{Z^N;pobK -zfp(%Q_R;=H(}FKo%{cTgp68i>v}-L}AKJ~zde7((dLJ<1&DBevM&PQ_>0xHI=v$6X+7|F4{MUuTFpyubckwPTi -zU?;v{M8Rxw_v}IaggVJlbFz!GE41JVFmW-XAa~2mWUjQAK;44H{>XA&lrgb4FFOyW -zXzsidwJU5o(G^K073~9F4Ctk%c3d^0lY$%9HX$X(luNr}p`LV7vb-e(Ns2R<3vW48 -z)P@E`@<(7=2Lw0^tEjK4mdfmgG;}nV%8S^#VVq^*o1Q3%OE*Nu*kr$(XA%14PYC7x_kmfqKvmli;zY+G9A6D3 -zobi8VbQ{Y$Eh-n8wd)w7iu}(*DY!D_&w<$-tZlKUa6D_@JKVg%7`}d-2AywoE}hU> -zW{hola+>f4XLHH}eUp<3e$Z0X2yJ?wHK)t)YY+2CYjXU)rUVAif51b%Z{kNe4H#iq -zHABhx{)(x2rO~p7$wESbZ6fAx)OY}8Gea+L&q4^M93o1ZmIJi{Q=L<01{2+vJ3A(q -zwCbEh{&<`urFe+@dRy0(u_@q$FajiV#*p7ZKUe7M3Q8rsR-qduXjDJ=ZCjsn_lHuX8Vk{0J@dH=olWA*@(<=4 -zpzqVymy^MdLT0%<+iIw3}wR3oFe&~Oq!27 -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 -zCZ4N`i)F{$IQ}9~n^;6L=cEMrfkmfZrdF{ -zH}-lbj)6nNW@%s3A&;-(2C+vwdxs`M>vDv*SsC&jmg^D0w=1WAu&f&QwKtbHC7Oi~ -z=SD>`b5`)uU1c&mF<=mn! -zONpm1@s@OrnH)b~38WT0q{Ocp*|bNqng8MsMwuIZ+A{%)uhwDQTm#q4jLJH9wa5{8 -zmlE4?gFwxI!rIQX^T*_iij|-nrwZTnO&x8C0DiM#^0v*Aas8jr_4@1dD8aQsTnEjN -zjK$_WF<|c9@>ENbIQ;ckTEVZjy{1E04tMgAA4ZG{9pwZu(R~;Orc#W^);FdnE<(Pe+3v;b`Mopmx$P04IJxfm>&TGMg0nKQlAOC)fl=z?*61O<_)xJ)%6Q6#uw3 -zh|atiFq;cLhEGv?oQQ>6&1Ru4r=SdxKIi#4e#ix4N&2!KbaifpNH2ud9|1M-S|zm2n*SkD_D$qOg`b# -zszn8v#zuZ&;r{o8Hvh0}Q|ORIstdL?T$E@&E2F}?!=yQUU&jxRN}J!zQx({fb0* -z(rStPP2<-8jKLvDN3QBXdyy}VIMI`S8gz31zQk!j<{eMJ;|;@uXSW5-gXz7fqRRh2 -znyxw^s;`Mk2uOE#cXvy7{{)m!8j_U?W6 -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 -zlL$|Yf0&yYsqdPRs9oJ*?PYbVK(~J0%_d}a; -z>}3L>(MQ3MPcxqi7c?uwAZ}aJ>AVCLKbAOePArTp_{8|&7D}PYs$;4%neJtcd#8l|8O^3Ty>1sE$_-MU#f|jEuIs90=$sJ3N#? -zst~Z3MU^?hLksGKesjjRg(Rb*?Z}mVNuUHv4w*-&YqkPj1B_jbHq_(!t_qh~T64+s -zrbSul(V*}~yqp3OaN}Ok{)(7c^EEh2XF@}jVsP1gRb)K!bsuMl1oHVxj2sNz^>X}t -zr~r=cS?zS*23pNz~Vnp5LU>j2Rfl^xjm%e3u>$l6aTHM}E6w4aD^TDj(4> -zMtvz-g5q!Sq!j|Bk&(o`Qt@K=uL}ji_~c5?D&VTuqOU!9wrAv3Q#qZkpi3Jd)o_8F -zD81|d1K^^7wVBaI{IM2n{PZ2T13tiI`wNk?V%U1;Nq1S1o&!82*rBtaUeo)_SacJ`(oU0i -zF;SGgS*q}09s!OW-VdXG4YB`H3b|L3X_mwO?L9hdE4wU3gVak4rh_G#{UD_xTLEos -z$mDp@v&V|<=&e;i)%DV#Am)~KQ79# -zdgnS^RV0z#}l^%_1NUsPa!A9mCqv5_a0xu&GN$2Kg^xfg5LQ4$sdfX -zu5=-b)5Nlz&5s>*tqW*=&+AssanH9ne73VqeG;V8WiW|uRb|08l|#-)MX?+9fCaHp -z*wCuwFRICcHHdf%8=P4BFUVF1Zgac -zhy&g!&q&3WJ0j%RJGWw81)XwSb%R@Z;4lWBt{OTrrlgo4zE{2hjb4=ch3e<4R`J=( -zrp5KeKhP7bXA+OBo2mB5dU#s)f+A#>@%uNgZO7S8If>pSi!@yFZk}uDFufEi!N08< -z{;Nl+W|LphYBN+eW@kg(OE0`%2~>NWPd*BE2Si)n$atnV^G`W(PqW+CXA0wg(@)Me -zu4g<>rCN)AN5`3sM-Pb;)YcF-*5|i_q0*k+&a1(prttzV@!y2R_vTNis@K81{c3N3(6zcy7v -z!M{|S|CpKuC|(o-WTQ{9iNa1Htz?I=fY{#yt5&b>nh?c}^T -z$DcY0*&18{L$R;oyZP-R29jO09oH#oIfA^< -zOV8ot2P!i+VEVAB7MGu-r@(o{9@?YgLa{$q{P+v%TjPV0a-)xG;E&P7u0H(!6=1^h -z53ac`$?V(Y{xQuNK1o&4)nPJ5w0tx%=G<%(!O!Yn?=_4%k;R&8g8e}ZYWJ7h1l*xX -zPKh>klz*Xa;#lbOJo7t=!v4}K@X2T_Ie`KOawV?oXkZhn6&>0#U3zsJ)XfHeVmu^j -zXpk)-lhWV8d@s(do{8i+Qm`(`k6|IQcX{<+9F$UaROia?ANZs>?5 -z9a)qem*wI*wH33KpK#1^=b2uID~#Ksi)Io%i8-^RNiqNYa~+xPY%=R*0&3{jhoF{@ -z#8=NcX6hoBl?hYtgCRtc$@V^pNMnjA0#T_jux!9V@pA(8y=wz8v8VssaTtx*SJ(GQ -zn+jn$qrR6~dc~Iaj1#54Pz=b)r=~%jPD12K8a^p=3ZHV9%sY?#P41TbKFJSnyzbh* -zKuYiNnJ(TV+r-(rUnRryzQ`+*F(({oqZA7tn*H)L6yTmPxA3$Ua*VrEKNu;6-|;58 -z^Pa^lL4ybrKf9Zr9GyYut<#JNm<`xt#?N%WJm=hk@{0`3!iRpkLjZLzCNP&ee-oAtTRN -z>h>3~UKE?<44BWW8kKkyyu)L%CYf^Gx;et34*b;FR3b{x@V^wa+L? -z$;P!YWJBy1OS!(kn~Z|M2h>5>Cc5-qTA|FNjBcD`azK0wL`XV8$_O=~jfTjXG&N!j -zdi2LKFqA%Jo5)Vl((a9P*q;W*B&NYK${{MSY^wq$A28;$aPP|peU^QBAbfZ1Fm0aa -z9I2$McXlJ8=-YjYf1b5U-$p}B>y>tn>sgtmAORboP+Jz8SBdadw#iiRP$TTDdf&-# -zYIe(*E&M*;tM%eZ2n@u8Fkg!Zh&gpY=lZbQFHHJFj|gdB3=Jj5unz5i+lGxGR#-i? -zgy=x5C3V8o+3!o;#MU@HOH;!!$G*Bx`BJ;jJb@O?mzI_3VoiFSlS7UHw+dng -z#dn;@SeIMfMdpNWSgHPOwo*hx9!*z67^;%sAE5PrUcyhjgIf)|9HW?jh5+~jFw0_7 -zQQ)*%W6?REQRrRu{#m=2EW{T2SBtpoNv{h^A|yxa(5{7 -ztb+!;zkE(L*NTs7U2>t1s9_<&yQ2dGBirNbzhtf)xZf^+)3}~22yubl#6M!_U-ET=WvEmis)>IC{pz5uVs+D -zwnLbz`$+-(&w-N44|;Y<#=vj$qlJ5wZ>MQF&wQb9E%%jQCR5KQg(e$2D!xt9Y8BFM -z<92C$%AvPt)D!XJgn-dtIi(@N;M`=FmOS$qd9;m$S`xnon;j^VYzGH(HI&F{lpPbs -zJF3;t!VyuL^d^x2utc8r1p@bG?r1vIK4ikIsj -zV1;N0ysgu#9=3LKjY|ZxBSchd(%Y^efMy1wD^?~sA#idAh3^&|BORrcRplwrwgV!A -z79(K7rLxJ87#uf0%agn=Kg!C`#Ea1SK^De&)i?JALUy?Ey!^?%K^U{}a!nrt^{s)q -z7lD-j$QQD5k%8sf?;H@r`S?4|9rrR%!*^dq0y(1eAdfpNPv-jhVHmt8-=5IUz64Ke -zP39d_`CPs1Foxh+18mImDu!TVKmHgLR9V=L&1|&mmK;A;<>&CCO%&|c$nZXgD(1=$ -zSVo|(uNoZ8Nqilwt&6t3DAp14kfyN}a`chMb~TQ{6hbZlE|87UvIIxdn57DMLG2IqAKt&M|VliKTr9nfFwJVvL5HhN_}}a2ot$w?0JPO-<0nFJzKx -zY|Lq^%a4S5k4?}sILP?O$i46#cCEnz;1xBDuz!lsWLb0={8&8)S`81g&A -z{WTCq@I9S%Y(trb28^`TYnopH-Fdx-fn`Y)MFjXpXe{EPT@&G-fg&7WEC8bO`njbCW&d$+H!ff|L+s20 -zF++EI5NppN*kT3s<<^I_Ap4>-M=+!Pr1I`JhylgZ|ECsjc$ODW>nyRaVn1nq|5OQ|BE+MGqNH@T&C}T1Hn^p!pUKt>Zn*+qjYPOAK;^Z -zVOXJ+Cy?f(b{mvqC-5HDk;u*h8USD;46lMhV6-pzHpaczH1Ta+-|$Y+_WSy|K)3(^ -zn6eS2l~NOd;Avm)Ru$kMn-eWPF>RV|ds%vw%t2iRmF -zpGq7&`XbSfEWQK|f6eN(y7O*dEUS)2Ls3XWksb9_2}GcRCi?@_rBP*njXxr|Kgx2N -z_kr$jFwZ48{fZWMc(?!g{B?OLBb!rdB{D;k7(_g=^dm?Hx4Ldm!Yf1`2G!qRK7y$L -z>xIzbWwYg}$5EA~Xq4BBD~q5R&lDK0W&#t>2gbHVS@lsM*oXk%9z{G@NuYI43%3RR -z`pBURo?TsSZoaM>frIG0FTyqx8V#O3@J-FS7p|4FB#v8ZVw;)#12GqIYd -zqTsQ&8QI#psClFR7()&WG}PrIrp%||XClY`4Tm2mZTf`gL;UJTst<&^otwyO{hyb; -z(yg6;YdG^)93*mzud?fYy0*+s4eunt==s5HIT~IyD(2zmQ%O$by?Vy~RLGE^#$WR) -zykp{ngFs4s7SLDJkGZ(}Pf_!c>HgvEunlkpj+4?W+H74I-7gRGaD;wI!JyGPynIy- -z6{hUIt=3W61v!A~$t)%+HIS*SDt$Ag@1;*E-?`~CYC=XKsI`;(q{so7@;Wjd!L6d$ -zh3~D04UIzk06T9Bs3Moe)T*{FVyGy}$X&Q|>H=DOkCeA=*FxZOGh^N91XVTfco*YhI&>Q`p&!S@>YEptzAiou|}>#=N> -zD#%Z299xY9Xy(_({w8^N@87VU_zAM%5_1}E)hhQ_CKA8mhA7a@CvECJm5JpcbYTby -z^N|Smap$j=ZIVT|c|i;4riOLOj*Uk0Xld1uM?S9!SwL|~pRcGO)^EN}>#}dg)iwVp -zLfMz0ic9M8s2#_ZMNJSHgB}DaD?U8^k2= -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 -zFC>j0^C4ey?GbUQ<>qP -zVD|RWQ|13;K)rf&8&i0{aU%P0yxX2r2IO9BBwao?twyL=&nZ_b(lNJYSpSRVD9u>~ -zW&Sir?HwpA3{xHs9Me(=>hu{B%#-7#nW$a5MxG43=q`LfJI64SlC8q8Cf2?!|tpgC$T1l*k}Glo_Wm)0zE;x -zns3d6)iLiRf}tFAuppgXI2HqrD0998gUXv!(vbeebT8j+(`WTCS{t&ub5~_`M|uSu -z-@+(KbCrNJ{8IL>Hw+dZlk2@0^C~Q9F&m%!EMU?KzI0p?JvN@GDBC=xj2l-BfNmP# -z`!n_4Be=xL*r|z_9L)qRu4B@Mc_)NG>a&5WZ^xYcDt2y4t!xzu%Y&^bXReF#)4iwt -z1wbRZtF8eyCl77*-)hAT?6X?YODEZPz}5u@O~G8MlMx?u@W(cps5mmV9h&g{%@oNy!^L0ei^Br|eY~>z8L(nRh;IQt`)l`VR7u9lb -zV-CS;0D1sw#QD4ONyS4y)^+N#%#7y2wjm!u!=PI$Tvuw3Lau#WwxGv)m2R{+HU$19xC$9@TM{zv8ARlktYDI3MVxS -z{y1J<6>4cgdJnofjRM|nm!VhFw2L4CJ)|{la?ZK5XK>bAshA?mZocw#Cwjzy1fIx5 -zz?Ux3VsYimS79ndD_;G_6Nu9!UT|^Vaz94@v{DlR3Yu0%_-_cX0=zir -z{TqU*$v5BOf$sL6q$$Are)F@O+$Xe^Ewltcd(rTUlTC$%chyfg69|%IbX!rwx45Og -zz5heHRc^8>ANB8i*a@ERg*}p%7(_j$3h)KBsNnT1_y=Cb?`EH*Gj}0nwz(fS22k|G -zXW(mGny#s{_UEmu^Q*JgH0*}SAw^-pj`~9-*Hvi|f!&^0yM1QJCi-FiAGCZ|CZ1+O -zC4PZrusj>$U40zoGvmi6XqwHKpy(5z$CVLtqj0JpcGk2bG!ee9uN-KTA3I+|YdsTp -zSdq`w#wH*9aHUGYGwg-U`Kcw|&~nO+g#P~5ek~?S6xYi|TsY~6&!w$w;nO&^HSp6c -zJPuiqW2bqLeLC;asbIjptr0LrU@`KUJMQ$P1|np7giY6PA9YMJAQ$!tR;T(-DZC{6 -z(UbgcW{xAl3^EHOJ5v3vZpG0*$b12KkH>hQm)}f*MF}`b#0ssHREbO@Tk_PpeJwkI -zYFl6pxhZ|nKkGUmlQ;DLZSizg?jM*r2sJ4*Pi=^5#Cwhgh4R2 -zRS9d7#8we@O3PC}LNeUq3qw<gh_17$~u -zW4!21F<`&HA%5ZDH6RI_p<-)55zk}(!Skhtz9$|(tG8PY2s6z%xxSSaK^Rbh?<}j) -z*KK{2kKC^lAu1S@M`r#@ai9N`y_J6TS;-}?hHUl6mYhC&~?r9Gx{o!EfPEAo;j!hW&=kXte#Y -zN$q`s3Cu^TqMQO9;~g0-+VnS5@^dUppFJJNL*JSda@(d0BxJr(MXKG!NOn55 -zZd*Wje8Azd`1jH7Pt31y$Gl}OShxLsBfd@w*+z?X?|0?}zRk92KM)<|jX`QdWdg*+ -zch6}g-&LlM!uji;5x_Kpu}}o=XdMk_94r1kF5VhK5l&*|djhl<^YT>rZ&Tloc7(M0 -zBnDJ8J(r{!!)%+_n$kQR3|j9$qu^FHu07ss^AV~hz4b9^b%5go7#?L>MX?LH;2*q8 -zQ|pq*xu}Rr#g{p!A0btwaZUq6iHDzx-5zI>q6xM?G_L(J4x5-)p#-6}ZO9j&4VX+K -zMlS-B1`ymRk0LHIw;iTB(IX#Cc{%!HtGg#KNFmI4ab2%L1JTi6O_BN>RJ4|Kg4-9D -z@#Ahm0V&pGVjEg&%6EK+aqvja*z*nN -zA1s$@xD}p{Kd2^(A{q>>pACkqwvA!G3~>RQl#Urx{+i@BZxgDmVCn7 -zKPAls0i8-1t*`_eq7wJ@t~pZ806Go; -zy32{Mb8WVpvQ%p*uSJ93+;sNlejLJq1y@*uVfi_76ny2s=QRKX8W5P|YuY<((Dk;w -z=fz<3n7kX943_iZ%KZ^8^T4^8_qS~78j@Si#X1j}ByUlkKpvF(F|JZ)b6yK5mu*KE(mTC`GtcK0dq#ZWX}R0)|4btIB%UX%^167z -zC)6B9fQj6@4|e&z_51ly=PQpwPr6sZeq=Q`kjw*c#w!yh{wtR43tN-&{{TQfK!HJ? -zlck@=mv3&kn$^ejD`|n;cHvfJcNOE8Cq$yP%J>+ILB~oXUVakE(%J&MZJ{-q=CZe8 -zU&l@k2j4{RFdtAHim~e>}?& -zQ4(Cgq{R@iXkX>!;N2L$DD%vLR>3+Mti3e*_jrj+9=84ou4ztx7>?yAkS>Zr7uw$(x=-sdH`VceAw -z)naRmne{(4qcGqN$dxM)3XwXmC^#|sGqQ8NC3kO5S8)mxV;kHEbRM$_uRt7VXrg{+ -zM(lKn723kUzaMeX!sGjrmM&8-mddSrmlb`VZWmC&2a-{ux);y!L`q{ehw)p -ze$Q-bpH1%RnK(m@?>gCe#<2ED#v8JRQq24wtAg&F=K@~p!1#y6m;^>&H%?}q -zVuZ8uKxZsSITTb>lfRDky_Y5-HJ!P`juoX{*TUpz9Vzp%2J95(4fg1Z0Ji%mS>r)Qt@hTjkj+PsTm7}i0IK_n<}F|)b-qZ5N$38*s#+~RG_%%iQV -zy7)iFd6gtQk@8w0K~OJY)8(xyBn~6?me~Z+^JURy+Af30v1^6WavRa^1*4hG6+ -z0g&mJr840W7gMypU32KJ8$Z0@19ogY>75%K$=Bc+b=gL9;*(1=|1YdXu -z9^$@G^0`q^=X|t!R~hnDEbBiOFa~P1P-6e)Xj5ngtsLerI5#26K;NmYGX=?!AE6+5 -zDKjROjD9mPp(gVT;?t9DqhE22>$M3z}^wik%E#1`#jNF}XQ?W=B5_DX5mnbu#aF$^vn4n8hQ8;V91hbEBXC_}j13HW&= -zqcD!@E>yb_t<3n*mNngEwKnE6NU-NP+6mfSVy8u{{z3a+G>c7M*Qr -zX8yuu=^hw9ZIIz{PASdpTdwCSWhA^=`;vQ`%-B+699Ny|PV*)+_yiH|YgBR6Xdhs* -z;{k+}ViQp>DU`KQreq4^P{St=?`%7ML5qAl9dX$#G^vM71-Bn9a65p10v1>i=sI%Y -zwpwpYvnjB8HVo~e5VwfV-=z}R=GZ%?ksV%sGR!i<$ZmxHDW{S37rb82!^SV5m=-v; -zaFf|Qiur%GFo7b% -zAIB*Q$IP9qj2O2_`m%N+Z;pV5AsDWOYNLNVthn87lDKOP_)uNYqJL{l_T!%S^CCrj -zQm(hNAXtcv{Od=9(Uxo32OsTXN+YpmwJ&iiOY$)qeAjoEYN-k%V7;iOu{Vgy^q&mx -zAt1)c(}&9?S6beqCvVHcIaIeTwsxW%6!6UYxg6`*Q#|+KGbK&v96zhC?2Q(llW8AaG(I2wVJ->3sO8Dx*pZeFS-M7m)A{NAL}?5)mFqFjgS2Z-b* -z17f*+JXhmJR+~CHCA3C2wIW2F_Vx!3lUeGX)IGp-uABGM8wTwMR{ZyB#31}%^C4b4 -z+owj3;^Z%DDU5HXo#tmPfnHTlFDFv+a}nnJ;`r+zp%dl9M)P-@Qc%p>pI<*a_nnm*@Y4^dF{ -zLhu1BzF!w!+vPQ*e<K=x -zVwWSdwBjU4Pz6$HG#TI_{oPN1w<;(_ZXgl|Hx(St_%NxVdoo%wgG$%JM}8dOhbQ!fTy6zQdx$$W4y@N%-m+q47e*V5 -z{wPWakbc3ruToxGc9j-r2Z^Xse;b+F2mM)5Tif{vkRm}>Ma+#O75Pg-1H&@P*W?#? -ztsbatV*!HeWVXeb=|%diJ9r9CF7NtscS6$Xh&?Y&r-v7WUxlByRiNFI02{b4NPf9X -z#nAlVAAHveWDl$W1jT{lFBAKkdzqG&-3G^!mxBc349s3Vy3ItEtS)B&<;hK{V=3L) -z*PTaUGLpzEqVz>W{1)0bH`qA}JVJ-M&JHI97jt}WDcZT-CRsY;VI&s%exi>IC>F*? -zLzAz^B^0#2KD9J|4>3Pl}V(B=bH;Z -zvo~f}6M_Uf-7hKI|7mPo_yB&dTZKFh04;&N -zUeG9*c&AsKTWn)XO*xdupum*)fAnvHm#f|WhTkY@G4JZkTS3Ic2X*4kI$wb`qw1Np -z)?%yq$=0;!+{<0OAwS(lrzqw6f2HEM!?}{&8@=_29l{0l*K$g&bB6T{PY@x9S|eAG&@jVc-j+*=W#Na$9*QO-=>hR( -zJ#W94$x1%=g~SKRYf-v-q|LP>w%ZrCR3JZ=NWX{7r=lFgw71mh2V9Nuhw*l3T -z9QYX;k|RL&_Z8pKn;7(RJ|`1?iOTP5}w&uBD_AK|%>Bk(N$rfu#hI4k-~7 -zP#UDWk?szqJHNZTe1Gvg%bP9K#tBs+K-;Yxo+BHtoOOZ-T1e`rWtZWmy&OOhO!tc*JM96Ho_AULMLVA -zVxl-66ZZE6hBrWg+%;swGKMubeB1VEb<(^l%f6CFg$k9v))9H9WWT%0udvxk0Yy}5u;m&Wd -z0hCOqj5A^i?)Z=G)ttF@h*aQdA=q;?@i#1GX**O2LOC4RQl+n=tku^VmU>=7lhgoQAT5bmp+bxME;=H6*UhcEI?h9*q1yag9q($cf -zuD(~QQI-Tl{As(bym8vSlsLZ7I+8BrbF9={>Duvbfk^m9=zBIKo=4vAy^>5NcP2u2 -zz@Qx${D1jIraGA$^l&U@UHLIaGDUa%mL>UNtF~h+P4gqLaFT-qZC414?**3VPW|D6NQz%XJWTRf$ur4F4!M35B|Pq9VJ4>z$q*a -zSFQtC`wM=mo?bnR5ng@bC&|OTQ26;<&p)ty_M$4pQf3jxs;&=Lzg9fS#X%!JsPnpF -zjuizJlwtopoZp+Bo*N&cWi}v=_VOjCPDIL7$Fi)v@cN2kThp+6%O&fZ4wV!QpDnd| -z7VA$8Dxd=hoTn`JqEs*bep;(4k0wMsG{i1a=ImL^w*C6Sf>r-n%mLgF60DL=V=4!- -zftS(ERov)~?{4zDSI#|U#3YMZr*LOI5iaNZ(N_fJ3hdd!N^#grq}}MxTAF0!Jze%; -z5FRKiT27sb0gA2Qh!|zRsw{86tW}B1Vs9cth(90dge0p8VsrHFFFMD1F4^@#J3#a=8c4Na%}l -zxxVRrM=!M`B}-@bnIYa5V529S7Cv)~6~?OCR^{uSUC#FR+gsyc10@A+!r3}%2OK~} -z05%(R^)YV_$MVgW{BmMNgY;pvVA^y61siLfB@0H*hXX`MQEAa5%P$&wUM78G6?i(I -zeoO}lx5bX~Jw=bh`hB89FRF6VIw{^=XJh~Dt@yJ-;+s$sz!KK~pVBrh*}8b;79qs7 -zeoOK~m%^rNZHTWcWWZtxpJtq8R{JgTx^8ye_tw2u75@yo?VNp5DwxJ_TXp)-e&5hd -z`D@Uj@|v;~=j9dsSz68H`a=aPO6tRt?Re{v5CgS5a<#q1rFxouEsRz4lTMkp#P*(? -zEAGjWKiAs7rjL%}8N+?LC-tuUN;BiJB{$8FU%HRidP;J;pkY9{z{>9@?wEPyyjXwk -z?aCB8RQHQ^Y*sZ?;HVS}EknYX{5b{n4aMrbeGz^9NC>%Fo(QUzC)X@h{m(yaN9e)6 -zt9$t%Gg(`UlBrWc0wl*~ZB$W@G`{Gvtu^fUaaf$Lt+t{|@4lLVHssnZH}1B%X&-?- -z0!r~|swGFm#mOm34wbq=dK1xo+^Bjp58Fnr`V`3q*%PwX;y1M(EG(pI&RWUa7F$a_PEVs~ps#zNsiVf -z=3l{!HXnL#5 -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 -z{usEQtR&qPMG@do~UiR5fX2Miw* -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 -z8!Qa@pPdY;{6LEe6z#aLzx30Vg -zvp=MWyr4mSq<4~K0V;crIxnK=kgCDYSUkr~s|=?iph>LhPY7b4{2uU! -zko>)%e~AbD3952-gyx5GLVEt+eiUU=jh$7o%DXctdBl<{l!NALr%dnf7`|MRDwevO -z(G2MIT`}^eGDZF0J8EqQwcdtXujcW_S=EVS1{wT&J?JUcNYqqs1rU!B~EQswQ_nU}% -z!{dNsv_5v4uHZGgD5c`CL(|ov(5nq}Wd(sq5gRF(9u$OmJinJ8ue$z~E$TzVg#zpA -zq}$W~?ysGH_Rg-9L9?3aH{h4AltL{2 -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 -zuIxA3)!=_8L+g)bp#(Y3|6bP! -zU{OxH0Zb0#r!f5^JPBpP3n7r2!sbb%UqsOA2tjg&_7Y?3E@5;($w2o -zyA!E^>DooZl5KlVwo)U!f5e#K>-=U}bIq9lj -z@j@Qrn)!=ug?$}&NZ@3wz3DmV186lUI}6J&g>>Z13-x<5q-_{dKY!M>mIiI`)pWs- -zY^pXpbY<;#7<(@JQEPzNwb3nn1*U8HuigM>Mm)K@JL4meua)-x -z_^8>^{HjBcJ^_pYL>3ur_RAy*f~;me1>Y<0AvbcF!X)gpOhQB -zxUnxRCc@D4eS|i1YwB9ie=PK -zr(h_+FG)58K+&jZJZuUsZo9#J%QaZ -z;-|ymEq;Wu`}<6gXX5D%v}X2jUx@4!$A%L=^t9Gn+lyq0AbL0w9fn!6M|$eo%e}Ie -z|8B9M%IG$7`OkpGZDruQ$H&KaM#6ezC}*04c7vZ-2W|tng(lSSe4Y8m{lb^MO{%BC -zTMH5aGtrPpp{|xtUW27Yy@Q?^Emg^nO#pHRcln87zlZpJhST?%-Ec&INg}0VW<>r+ -z=HI%5N*Y+P1SCUWw+=c*v>&0<+#0!hfP!`j(opL$n!K^G{Lb*`k`_(-2S+Lud@~$W -zma5_u23VixJS4|}ro$3{=S|C|n_ai}Pl_YSzhY -z7`-_dZ&i(on9~5q -zNy-hF$slW0iqo~cSkbp1WrM-Ez@4p1ftVub>L3qg`Ao@$c~u&*^_T9ox8|6+();i%L6qgZxRZ*;5WPPkjvq``E%N3^?nI*d^Y -z?8&>=&RvW-IH^oX@wgguRI=)nX!7h6yJlIsi~)0J(_Bk4tS-kZo(shxT|GX-mTM{z -zW8-wmx)ewlgp$prG(NtzZ1?!WD$;)}46Ubq<-M+`d4BK1^!HSCA9+U7i$AM+qp(h* -z1`S5ryf*lm<@dMZ -z-?O9-ElE{3r%yRc^94pJ`F?hD`+MkSc%iXL+}k~$>OOhm>1hXoH$p7pLFL6HOR*=?HgHOrE8t(=V6g829)2m%WWMKxBAp$c_B%I^>CjH~vgL -z4qzxfp+3a#uHODS5GzW8z8R3bYAGf}(t2DiZ7BoUiMrX?0UnRoXi5Un*6mCCx!tnH -z?fzd;C!{zaTqTsImz{hsgqk-OZ@#^Z3Y8GF2ZoThKm_7Z#X0ncC{Zn@Jq4*ekD0Y# -zHU`ZN2p&uMX_3V>tBlOs7x(n~7|B1h`1yx6&K&HWY69Vt+O&RZp$al5afuz1{4cz-_#7EZmD(&KDAYLZ%%Gsh0G0Pw!#K?W=%d%^$YMj+5$fB&KA=B1Wd{ -zF-$P0Wh(b$Q`0M$_y|M#$o@*V-2>#(B}k5|YlTo2*6@f^{=`9OsGbx(iNUh0ABc3G@rpvE)nDcC*4qVBIf2Npn`Y$d}@Q)fewhWDVH0{|SAn#g5!v}C~Ftz72o|G($ -zRM7mKK`eZQKP7Hd$nngh#9|*vuM2)R<`M{!dxS0=dI_dE$gzQscU!z%^Fu7@E+Ht& -zqEZST&J|ZP&Dy`Wd_WrwPUss?^KrRL_vLefYH*w3iF?@VM~|Ins^VT*67;2=y>e#B -zBkgvmuGHVh)iQy904*6Ux&v~}^P`!BBRi<)Y{~n*;JYyGHr14?A&_4JbwMn8Wc7Y` -zV=3QedtB+(G5D4Mn0S~E9$Gq=@JZnFJ)KciRW}wGNf-`*6`Mdog`cq&Z<@I+w-PFf*J<(T1$C5@?Mic -z5xDS5fo~=$iMnMu4GXE;(J^G`X%@kz$=30KycsZYU3x#`+I}9ZHt_6-#Xj%r25yR5zBBxQ43iK#|M}n)EQ+-NS$8!YTKyOpG*q|}Z -z)7n5&e(h@&R9KWH`ISBcR#68wMN;7d;Y|2>HVGy-A{mH}ZmEj=JA3p9TW4p&y-n_| -zZn5KxM{fcO0VcKJq*zzFt}NJM4mMtprjAYrUsc#9;_MWZ#hOt`n5V*qWT2L(bK0y; -zv;X>S$;W53lM8k#-|1<69L{p!Mj?yzX(zo>JFO6n?Bze+$c9g!kA^wR5=JcL^Nv#U -z)%OS`z5V{-SI)|i$-l0YCtWp&T3HZ#7?$pCVT}gYQ|py+-Pj@U+Kl@v&MKAsGcCSm -zNV3-Y8J_!y<{E?;V2TGPyW^C9t>Mq -z!Pn&AbKrMEM#9!jZ4LMMO!dJvZ126tx$p@0cy+qqxbuc&u{!UOBn<|_ii -zOlENM9}w=Zr}M{)Ns;;K>sO1;YFi0CG~c;Q@Y?!S7I2V>bv@m6B&~bDGYFmaTs-Lg -zp|NS+U8}PZf3$ynxz3Ghbr_H=l|S!8G-hHP0mo?e1=2dFj1P?~`Ci>+L%?eRGtR -z4t%z?`Wx!n=M&l?Db?+O_veUMIdm*-4I76v{}7Zzg+sY@sN4rOZhgKL@!){Kkpx6= -zDS9H)xyJJaIJX8G7C;>j#%g0Jo9_HkfpS;_?UY`?R^Om8@#5Z)5}8eOa@}V%pE@Tm -z6;r9D$KSLAd-xagoLF9|lB{{aBY$H<5#-QzPI+}m0-jA0UU&R*x0xk5b@QSPaos#e -z;^05L`>^wjlS75ILvEMxRSb6{j;ub95)2P~b|yqe;|;%jJOJM%ShF|EGxIYXuMgxn -zkGwJGhm;yNAE1ISU!b~Xi_3~ELK8*1d4*JsF{HoNgb6Qy0~rHe8hDCg$p>SKk4xW> -z?64A3Opu6>B+T-o&XG_6%u@gxjr?MY>1@%dIMpD0&!?H-e!`DR2*xJ<-XD|1Pv|B` -zUOQ4QS}>tv0$aER?lM)Hv%#;|@(RSUXFaI1NVjjE`u$oOXdZjI=?-54Wu-}grNrji -zw@vg9Xml-K7&3H|YLVr{d$YUx(2WhG*l%6llt48^OZX%lYa$YF0JnpGN{&}(m0}{wU6&uX7VtAt<~;g< -z^0+$u@%s{Jwq&Lt@O>Y&p5DZ?OW086bQwM3j4g1iMERk)Jk)3=I% -z@^E$)eSS@N@z_kWNcpDIuII9~`1yIDQ4N#QSdu1r2Z(2h`FKL!6a3+G6HxpSFk-GY -z!(f7m*b -znJ8|%4U?bkd_Vk`m$$ahS$A29Mn5P2@+etBR_aV)oUF2yy+yrN{k$Cc*5SS9rsLXp*o{4uorcv#MCSYf#qq_II#ZeI;e6`Dif=0){a}*v?T@ -zSO864yO&YD>d`182Vp9CC%$+SQvK299#Q-wRx$EOay*oTmCsK1n7-J)ys6E~0g*S0 -zcHg^@nYJ)!Zan%cF?tNPcr>98!rq0a$XeyRqwVCklW!;AFq?{3ptrMVE#rQPoJCWc -z?>K%1{C7sf4R?%Q$9X@uwJ|&%k5|*F-Ez&pChuqEaG`i0W%DfLvnlhbKHAIsyC?@} -zs)u3~c>m!5a~MjQTdK65S+@*h?jIqpxnIb-kPaQb(34RPw;QyB6yq5-M7e>Z>|=b+8BJJP1-yf9%3(`Zipoh`^&f0=aP- -z5In%z*Wm9V8{nbqSC*F+%XW^(1rWsgMRQZ5y`XIiTy<$J5hYflMG6;fi1$pa>4|IM -zj&;@*M4i_W3jwFr<#e1#D80i^ZD4ki%mgqS7*@?nlv)12>RN31l=7Q*6O*I}e_R$r -zV%eX8iCKjfplnxww9jK$V*dBTC+9_5^_%olet2T|5~p-QB$M8z7DHm`;AMMqYv6UC -z=mkoL$1vQ3g62YI`}MF-mPs#>G{<}1(Gp-|`p}K2dXPb?J{i+leZe+redx%(W2yd; -z?FCUn(=+qKmcc&pr(o#^#rs)J-j7kjVh>tBoU(WvUjg!rUbu$GLp1O5tM1JJA7Ludf`~#o9VZ?tc%1PV&>ow*u -zs5wy^9*()Ek8YHgbp@?N)6}NMAvDvge3sO26O#vIl0TSJzGArM^j&ksROl9Wg)x0V -z=t0eJ+CW@%yOaYfXo3n0WtJ}Maa5L{s0@5HtP_>tP$4lHW!|0>3&L&IS%!511_qjM5Za>iG4L?O!c6J3bN%%+Pxt -zBW{+|zHsBy)(4vOUO=$J+(ekX?YWhM?0J!ZeI6q0r}ktY7D3+*XZ3COY?OtGpuvo7 -z?1u{cUYIWGM2!D1I?p9=52C%(6!4GOqWSmNP4bKb8D=sZ?nXE{3+$_u$`(5%qcRp} -zTzDOw`!yR#xA7Ita8Ob%Vmre_@qXg6293BxbY$>*l|R8fW!Zy{+C(035K<9me*M`4 -zsV4-OV$_8h69f_&rR%-@4|ret82@HlJCGYYWkv#75X`USM_rDDW$Hr)?WC?fVuZo-6*I=ih?d=Qk8=2YB!6ely!qoR)Waz= -z9oyI!1*tPAa_VWCHE3oE`i?lAX}Z4ec(Y7@QyoYhua -z%0h(ao?rpdEi6dOt=#=DrQuOCxjkc@idY;&T`$c)sw^-#V(hS$imVNR*FTX7Fk8hQ -zI1%P8<&f}lCCUuqC#u=t{GCI9smdBmKW{13@vWhomOL5@oOuFtG#KG{dJjG2n;j|O -zN@#vsmmTz0g3ULI1*DWoabENe)N6YqP+;t337-=rL6X({{948Tc_wO@_Zf(gL_1?7 -z*$ek0ZjoEaGi=qqiYQDkdnN^xPu#y5B;z}8edncJ -zbjywb>Ny}Nni)&>MJu8Wy)AdRVSA1Exc4AiY*j;Ed&)X4Mdc@&>kxkR(_$!mY1R@H -z>c2?7?pO{_zvrx+8_yZetaiN9N`5NhK%Xy1=mY2O4f$&vUnF>`7PZ6$_dmBsFIk~B -zQxjF1$E5Z-5^TPPk$ylz;sYtCOj{vqPj!4bkY;(F_ZSC5&^eH@8afMWO$&ymbHlpL -zu(D>Ih;xflcB~>@OeX@R!w%coMTnZS|H<{Gb%qkVGweF%N>uiK5YzFz*OQMd2S5GL -z{Bg-QE1Sb^Y;*~3DgsPn -zK5aF?U$|`2!R`oDX|z-n`)lM2%|at?NY0Eej^Pz{(=Ba9gm4LO(g(vMt{{Cg$m^J% -zMOr3b7G!^5L_@an+QF&766|ROtuZ!HH0MRh;(tO~<$;I?_jB54l*kP4H5@#+4G%?J -zYn}6%JC&G)%FBQEdm=`KBpPg{%ieGlRE8cOSvYP`Bk-5ezwwNG&I&e~xeb(|X;<|l -z0w5d&l;p&JoodraO|u`E@|+gTUboOrM(n`s6+sZUJIA~H9`qtHRB}O&66I#+|59I)KZ~TpC8tbu -z0(M{iN7Ge@MfJ2%k?!v9k`C$aMnFPR8tLwm7FfDLx)cyWT9Az -zy}Ng2?%bJo-gDk_CZ^j*D~8nR^E7Fg!dM**A<69mn-j}WT*^+`*qfT5e~nl(%XL3l -zz*`5a{7=H9`qF?a{W|hmp$Ef)v-i%y{}G1@m&{qKl%3DZJqRuR`c}^^vG)an)a8uAEgYKg6Zvj^0Jn+ -z`|cDXzEajqGDKR<-bYzLnMAMPr#}A)hAcUFIo2x=dMng>70e_~*q%U(K&EcLj -zao9&T018SE&F&Wd-h^p5GDi5t-Rb=X_!4~S({XMJ`eblJNwI^rxkm6~@fuWp3kx0V -zfX1E^=}UzzUD{hR=AU7+vJK7+0-zkFH&Cx0i3dLbv}}J)gJcB1`pMbQX?T6+(Z&kaK0p -zNiD!g0VJ*jK1m*acS?3w;UeyBWNAswAfJ$KuF_fm1PS)-pdk{4eFRNrmC0UMPPUof;BY&4kc;wLA)Y&Iwpql -zF@`e9pi1;8F*_ -zBj;p)^Z|vCfG5KP%dD^9N!j|1CM4iopd_}%YyDKyvv|4GMhLw8`ikt+Q#Re{+s>9r -z#XuYBsDIU1R|SVs)>R{3GXuIHm+miVq5^o`%H6@oB1t(^oNrC_rbBPX{_iE{Ge=u9 -zB)x#0ncVQbl#5+)U-rrN_tW1fP~KOf0B|=N9BfP~(H$F6j}X7rgj~NBdME)eoQe$x -z26*4%dRY?nw5_pUk7>2KHI~8NsvkWUWs>^=UmXubF#Ftrt3D6KpSW(dbEO-A^XTT2 -zKsIz&@MgDj4tF|i_Jx}XJdk&aj>A4Q{7oIU{QgJ}zbQR@0UI=M2f5#5FEo=dXG@h9 -zc*P|(R5R+Qsv)Z6u{CrY_IafN?#y0sMI23Z=(JSdg%-N;>%-Pew`kFog*(f0VT~!#E -z)zgX*P~KDhT$lsdRNXi{puf_`CQ8|VY%b7FDC%l-)S7kU?SJaiAr~`h+6q>UvgI=avJy?>BR@^Al3io=pH6YfCEJE;fnyU; -zbc&LSA=&u6Ivxq)dj6~!VsrpU826tER# -z(v!D4b@w5(yNWoy;3;hl>#^(!v7Ei(z-x8q=zgfN=%Q2&jx+z*Z&JPX0|E5( -z-)?+t=?#4paD{Xd?>o-;4}APv03>Y$$3g~%y1wy}-D=u;f;)Lb>eg`h(N?1kn*mN_ -z@b}peAfXJXSp2Y(G$NJs*=$w?J%Qz@I|go?5YUFa4XsEqdUL+@6iScL(?&gse|i8{ -zgm&z66rE$=s(-!AQFA%pM=}E0hA%r6RyiJh=Ue@N5@Uov97YbVw*}5ulHDq|8K$&p -z-s2#9`6uY`vf4-*gCB9kaIIFxen6{$JaPU0x1D))zG057#K?J&9~+hIw#aZR1bvM& -zFft>p-DAgAvoo^FAz^Hbc63|%cv -zSF*~s-k0U^ZrTy{JI;Xw6#Nn%+JPjtzBrO)@?oE)6$G4N&jvWFwF^^;0>Eu)Xep45 -zzkCywV@>hl>XMVzwNI9z(>!Q&aqBF(t(*T$x1-VC)bI~nSKKgg;L7=V(?b!J~Q@mvQFi7IpDnvF@+@! -z;O3J0@WjBS@(E8j-+m2S^|2MD6`T&f86-EyH#N7$#eK+fiX{)vJ_L7TR!?`rBmS5{ -zPeP2;>s4pXFEa9xfLA*-^BI4H^D&fM42U)nYQT%L8OTY}SC4)noAL8#R2W=A8h-pSKDH+_XIc1SBBWzWW$F9sSkd -zEVL(B>g`J8*BRv|CfUg?4|iy%ID+1C!#U3Q-oIF3_8J3_`;>#ChPs^R*wJMMP~p~1+c5T{T9XAO)iUmm@Ueg -zlkkec+RIN2NwUSHojrAzz<2@kURsrZ*i$qtF|&_P|09^x9G}z_y1r$`pVRVsGrjY= -zuq%S!Sjr`dA+N4}1gdv0^lX~zMNS$hKA#VXV%Hs~Ij6N~8suj2s72#_#F&AU&c3Ds -zPGIw1!5x2Fnu7!XM!2S5zBt1IW&&MVXGp*{Q7)S4ay|8qllIKQ2Ci#82g(V^FTkTB -z)LvqTzA_-GVln6&G4p@CyV0yY?0JDkftf@1Pw9y1L$GO4OF@|A67s9%B{lC}A2<^o -ziFj?H#E6Ufn_O%P%$C@Nu#DV@lD>LY7W0j(7_~jHlM|IR3BeHV -zg;k~QmWy+t2M#S2ceJPa)2 -zZ(dG*4v}+UP0XOH~v9kZLN_B>AwFSTVR}^kRI3-{9!LFUa?8ImDgKq41l}X&ZBt#7$5jPsx -zOMIIzFvvFB-xU_rhyc|`{9vBw<_Od^4im9GsH;1S{B~6i$VL$Q*>&@Y)Y626J8VvO -zeSKO^lN5PPAgMx%1^yTO*myhY)z1?)PuR4#gMtz%l>oUJsDi8>V7AMmnemsAvD(KE -zb5!!nyKzrt)S-0nT#_)SjaUt9;X5iI -z3CcTZVjICFfpdl&>=g7=bZ?=m48swr6)h4;U)5U>O6e|v=>!k-8?~Yr{j?M -z%>wS4Nyh4~=8{wKW7v8lg|pmAA3F>Er8naJp3S@gn)g2;cPgsNl9io6@po=`$P#z( -z{l@$4`NDKcQh0XxViiyuCGv6B&!melK32QMT{`;llM-Kiu&yc??&u5xd2BJx4~YQ^ -z^pnY)cesjXc$&wDj2kQs-rJ(aIUJtjLj<1Ba_(h$Xw(*Z -z&Q)pKE8DbTNj|S(Mdb-YNA>-T1;fC&trWIX5~l39p9VeI;?G66_?+KGEurGT$}a&O -z9A>ZRqgIq&*E(2hXZEQ0`)LUTAdDG6+_yT$Vy3D##hC76tD|>7WKMpxJ;^7v1D4PJ -z2Pz&@$`2=ZF`v+o^hNi1P0M*-%QxHQG;(b9Rs#znIZb{kYk;MSjYSz%w@wj0B13FJx+?J^NayV}uJNV`A -zWoO%1Es-FJZ`O3T;E_!;u6UBtoDh5>NCG<%0hCn6?21F4C98k>al -z*z7H!#}_xaX1I_8Y8zA*UBb-4Y$$Ym0+o#K%XH2o-=wGx#v(f)TGrXtaU;}CB{ZN= -zL2t*-DiU{G7w6|)Br-p<^6t4s0B8Wl#YQ=A*HUkp+whi?Rwt$s-^f5HlsBE)75vh2AXmbpC@a8XDyYBFsUHvNjMcC1JW3=n8g_JTDn@_fPSsb# -z4}@bv#k7Ta5v4Pxh>tKK;9cSLy&7z2==tQby3WbZXdU;6sT-62awg60%PiC*ZA@mc -zaUQTipKugl^t;7Mvd&HSwU1C1KUhKkNUqyPvKwiwl{f(h{22tS$)rEh@uaDgn!L>A -z6is#m2FOvt6_ipMmd?8Q5_?MGB3lC3Oe*&mQh0YodrAWhIqi#f*@)jo%}bTvve8TF -z+aoGj3fuo0WRtxu9zXMEQ^$sYvlh|_bL{%BvD>9qKs9tSd{vPPErjX}o~qE8N>7_m -zk%@?YK^~A2TSxPCwcnu{>}KS*nl!8R)O~piAECrj;O>@-Pf+k3nm<#-AHPf&0FW@n-hxNlLN(+ -z4_{(kAma-I@=W;3iGFWv;#!O -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 -z`zZJEKR*UYs`3Qn#U62NIr8^; -zuU#YL(QkNvee>CLu&d@p)r1FN=CbgHjH3pBvyL?{9K3RO-r$ya+eRMM0)EjLIF^-n -z+^r*SnFX)2B?lFc~dfoU(6r;W?xv%N{2ohKy5yntjh-Ee)%UM0b41ts8f00porLA~BLkLrrG# -zh9=)(aP|0u4dP#|$8@2~vzm*YW`9>OR(>keL+FR}l=jgJ`LPY~%t1V2CE3=qYw(X$d(}{Ftkd}H>0ESm6k9X)(R8rF0Hpq~| -zE&uL2a@qNTKUh5x6@(r>f2MYJEtyA*n2Au55K{Ftd_;W_3x7!iMTc5eo4i5$%7M*8 -zAw*?UhbY=^$+k<;x7u9s!nwjjMW8ocPuEZyv9xI?ni0CHjEy4Qo<0maPKj -z2Wx2wo5@)Lo&&JyNKq$`W6SDKpyI{H=p1qKFuq^5DNG5N)0}*_KJ=pP38W?)2+03g -ze_m~778`f@5UQ~vK1X&mQ#Lb3sKl&s2m^D908oMIfoDt#fJ_b7z3ULG*K)hEiiq_m=bJ5o -z@;PANn)BnTLc9+5L3s31a3OzFe}x -z&bJ-~7(hMsArXeQo$Nb!HG>ON3;f=KuM#PDOpm5OeF(sC0BGrJ73FZb@DANTQsyD46%zbr1psv({%lfhy{< -zz1|VEPSW`Cd5tJ9=DsaulG7+7G(~W&Jdm!K?XB%>|Ay#qP|PV6l0Vxh-Y}Y}>G!S? -zB@bcltT^-KJPU-H)-Ycg7DzfleL=p6j_+b~np<&*H<-*;{oCA@A%uV3Pc1#<=1f?+ -zPW_l_2x_J4p`vKgvbz}j%y^K7FCi9*DE>pN$s#s4i=X$xSaeRqijx27A9SWF$sfEw0jjywa!115A{2KUWoO9c^mn=wPxnn)uSBBjd%iPWg~_1?`LCWF*V!c -zf1#Czirhhzc)MmuEcu4B_gn=KPm-}#fo}rgEP}0I<7*DYhr@eAs?7<|kq@5gCoC-t -z)i*4v`|d_nqF}Q;xs!r%+VEkJ*M>0d`WqysS4EP210qzMAaOrb%~x0}E`@{*s*V7==Q5My|NS{W&V)zttTZr5d-f|wHc -z11Zd`QcQL))iZ$;%P*tzBiZ+k-)OGSEIQiEVW8JSpiK^bA-?>?7q~7r7@8WdR5G!i -z?*s@_S~7`w0k;hRmKZI}58m2;-P7S`#^PuCD`I*j#B&yI2CL8&%^CGF{MQ28Vkd`J -z%hjs^U!deT+3?0{ZpM&tq?5WYCb5IWF^Z1sp~rS&qeOI|HaX!?gS -zmrl@$Mm=6VxZT2W-6!Q;322ltswgJhDNLE`{~q-_T?w?}d`qzEL^vU8`j>O)ckt{> -zV*ptM^AiJC8#IK(h`dtPyBS1P*}~B)sKVdzd&Gg?6&<~b4{t5~?3W-d-yo?}4Mpn^ -zGMxIVerzqSXCc0fUFlo6M6YD{79~Ld>U~=mAJBbZi^s92_+k86n~(D}MH|Y?!ch3c -zr|M9O8Qb^?2A$W$YN3_|T|fKY>iEC+MU@4DfzxST_@E4>c3MGC0Ae9 -zzJ{8)gbHDWmZv)W5A2?JXEP1lCF?4wr%nf9NqF!Bl}5*3%amvM#oaXNidaq74gZ_Y -z-OQr_(<+~VK!$fg3f>avGfaP#v%7)eLnB^Rh(am -z|D|Q3LaLPB{*6hrKSBT43j0$)Q+k&2Y9}}WLdEc5kbe_hv_s+`Z36U~RrnnDO)^@yrbbws- -z!yL=4w|20ZjNg6iTkLnMK7FCbD_aQvNJIt0K%1G?K;|D{j9Gu%R0w&sH!^xlt9!af -z1>=xvVtFKuWdbf?2CDR03cLt>%cC}O_OX-VbXM}pgU*c-tofZ{VH7jiM}^aY?gNX8 -zaz$Dn$P(*uRV#)1pZ`vh968)yrcvhLL9-p3U8T?9l|P8yoRB6oB`~RX(|F%fi3p>E -zsIpDF#Mv}~M>-%^e&JD3p2(_91MSN=Wm%amU;3a~& -zvn92-humA8uB4S%8@!KH%(}`4>+b^1M -z$8^r%tr=mlS-~i+wwoX2ea8w5Y62FEG=V@hCr{DcY*duSPD(pHn4=((B!COO9PMv7B;if|N_4XN3e89KY -z+ly)->!c-s0;Z2Sd9zv{4~&8aa%=W|>n -z-%EI2Q>BIyKJ{Ag95^b87os80h6+}`Hnf__HUc5K^s6NbjK$^bSD#1e5?zd|9iwK~ -zp|!eobM^&W=)b}C|GR4Q2j718azS~$6!q7S?g@-c8ZOrZt>mwy`D`dt!Xqbt7^F(? -zbV(vQlFTUmd@lei=XC3DZ)1s{-ey{lhw0s=|G>|Xj$plY%biqR`Qpt1(taS+z3FIQZ}_F?PiSdZTJ#lhID4SF -z=4ZRecWPxsq(CpO4s-mEMDFQ$MwO1iEShus#6-XH=-l!Tq8d<)Q`t-SkS4D5@i0}- -zIM~edu|@lF%p&|z{Uq^U0K{?+*Y!`~9yrmkx@5Ppa6Pc9*~mwwEr<`V31vN8WVP)| -zSIx@9hKZNdOPOGFi0M*djipPc@gy4uPIl6By?i+@0A158rK!=2{O*m*zZ!QPQRNvM -z`i_%iA2}`S{MjLgj^F7qy}`T}v&#hD>3$-ubvdSe-KE=NO@W-sc+D4j7Q6PP!PgTI=K$h$7{G?L^nWPaX&Hk{1KgKQDmlWUuHzZWk}oW1%yG+Wb-jv+$g -zPEf<0B1bb{hkE(orTn=0bGNk^Re5rODq7}$l -zz={qezg)e;VCKj;?$zNhXjmt?!a;vGHHEe4QwKtVG9mJ(Qe0Q1d=IA2UYw6k5MyEr -zIlMxWut{bdj7CvH*3~f=%tI<8I0_u7PAB{-(DMF&%B54I&}FAEH^caDA}bQ70)1y4 -zuY;cmePl3yAb84Bzb@JEx__aJjRg`YSY@?{khBgob!64y!gC@L*nZ3`ng1F)8c5CU -z?|cIu-M#%rV=m=DFO9)thPT*%^<~4ToGnylW!qlULI&0E!anueZ$Hw#FM1#?p#ZPF -zFH*%Ema6|nuTt5bJa{WD)t}7znsX9f2_@xk^J+I6qUrQjgdV+0Vg&C!aSW(v0ntcF -zB(lFjy{pHfZ(DFO-JSbIUdlIs2b|=ia2dama|25z{5|{2V$N@V>#J`qCI&3EboFXN7auFJ0-o8TuSk&bsv6`%;2D)V?T(1$DKu)&@(P2!6o4$MGM6g$bz8cYX_V7{M(Wo~DFoT&!OgQqV2y0Eff47;p##UraMdf+HttoXf -z=(zLZD$0}sHN7S>S&uj~opwiZo<6r+@c++hB7ds~P3Us(1lxP<=Nk1X!WcH}0h6}` -z1D5CkWc5$AUGg=PL=>AK426NQ-}=!eFZMn9GA?lEs}iKO9=9A`!io)9fBfE5Zzr+m -zwG>cNKX}$a?2)<4)ZM3UNJ2$C+@@z_M@o+HFL(S}MnEdyr;}0Ax=w0vvZD>FumvRS -zEEK4=YKAzdg|3q!m97%KIguj$)jj6>W(oJYli7(%um7%`e- -zalA&dC}$rLck}Hgy?pzh25_^7>&IfL903$_G|^IzBnhwmIBbkgck)ok%@L$G>6~;0 -z)ptS|E=~v4AfZd2-1=o1SMG{p#FS3}m?AzUU&u#(zc6T2%#ct)O(U -z(A_zqe{k5RVt05K#)(L=w=u|f?-LG@Dql6bp=vJQR4H;rJT!szW!OzHMYH~(tPz{z -ziJR&pbO+{th)aIR;yBn_w=OltNi_;DqM^9W$Ktz32R(t$coG;Q`D)v`JTUX8YCG12 -zov9HTvUy4|_d;z8i~ni7t1y~<5=OyInT{vtQ!NhJveNW}Biw?`GT&|=g(%d92;EWN -zm%99$k`=mhP8+{TqS07AE1~%ZmJT&T6-JFwP6J&$COifNm&^(e?oTNZf+GHZ -zJhnJ5^eyPzY$VC^-K#V^C$YafqOAt*2Dl0Ql -zqKA>8t}CM@KDtbXmP9&+jmevmy)#HBt!QpYSQQ5~V+S-lJ1gnmt+huA3KaPEfZny< -z*Fp$P4O^zUZnGYGtjVQRodFGtWHrrQ{u>l -zlkcq}4`L(SIUY~;GvJuYF;tY`w|-G#WS9(rf|mb#!A-bMa;Is{J1)aj+}+O!U@vj0 -z&nJpFR6Eu~_3YhQjQmmLw47c)u0jlCXwMG2AzJG^77FNCpruX0J$*P@Mg~MiT=7Av -z`~pSph-T~k35frB3W0U{>tUBNu2a^UuxH=R+4IN>^6LHdi&cp8MJXs}Kwlvmm29(; -z+?j%&B2Jcp18J*<%<(4g_{0+29lN|jYyf2A%!(eDfj#gvfmyL;!R_YVI7x3cQltvlM8V9u -zBc_XgV?|ZqL)Ex`^kU%v6r$`T;Uzm&_HDTq9hI`z6VBl8&~Kjo-w%b5i~d^bQ)fbj -zo4VoTRWdH9-{p(Xmp_D!CF@&|{#d? -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 -z@;K!=) -zJ|GEzdc?*orG|c?hWz#feu$Zhw#KRU+*|Vql)!RmLk0QrFTZbSWb={z6mVCz=vjVB -zQEU8ibHhytsvLM;fh(KcQsk`*yDxQqHbs9RwjP%%0*#Er -zwoWf_W`XnXN8qY5g8mGORRU@ELgvOhIR0)yT_y1I*a>a6yYUv>`c?68af3oFp*?6e -z0mP($bF6q(mMSXcu#O!?CU)m4p^ErRZ%Wu$93pt`l$t -zt=rtde&2={uRN2d!`^YrX)A#@MsT%Fa~jH -z5ZKP~j*&2L)BXT$SNn$9iR=m;>lj=&VTFv}Mk|%xI+1{E^>w4_1#-7=7ys9(5bYh?q~5?ZmYcBqY=$uPFDt^7N&$Kgz#svt^5>U3 -zzMJ*`nkGKY4PP%|-m1~g{Q(!-10Sm(L8;^)dN|oPp=Z -zM)p5kLyT?HG02ss+R7!x3cCPTYtljUKj%~nMt#e}>S9V1 -z4DD1#Uz@JFDp$;HaOTaf?@Bp>UlZf9EO)cy{pRf_>Auig1PAiLHn*HE_wAIN4v$VZ -zW@(U3@>PQV5kmN?U5l_We*`E_{+OI2>#%%pTLLE1`^$b4hrj1{U`vF8LWmr0taXK= -zLff1j2WmnXaNNP&DZS5{R=W*cc(io|9gO@_NbVix2?_UuTr1M2Ivf$#wP>aQ>*^T! -z3CQzT;`okfB5-0eNt^@ef61438@gz64rAUMybX^LYUDd@! -zt@TRqt{rqxpViFuQAX&o%T#MupYTN|77&GZ`9w7l<*mr}pv>ghv*^SS%W%4!ht*3a -zVOJ7yvXdxZb+J}m3?Az?H8nSR`91z_KfwfbClhhAm%y&s2TwJkRl278*k^YxKBJr% -zh1bz%I!sW_b$M!cKwJ_F?dw59%n~c;OEt>&J2?I^nAN<#t@ucxJNnvUCxv(D?XD6# -zG?^+Oh5>PbsbP3(keF`Dl~(CD;1I@)`z|@-j9AcyFtpiqhW@Th{|rseMSG6j#2qD6 -zydjr{tJd4%KsQLxnNH!|D*zB=Xu!*o^=ohu-b;zC_xt`IdFq#d{>DY;g(e%_Z)ah= -zp5&EdZbotA5pM8WZA|Eo_2vLZXeeR>+$)y7YT`+K+EKdNht11K-{6q^#vn~W&i$S|YJYok+{SO&Yj~dAyWBcToV&M;{2Wi{RhJKq -zZEkIw&)_;rdS@tet?Ya**PXLuv{@22xRyOhh>?cfE+`k|0`8?mYRFM(7G_0b&USS< -zw8Xz(x(2+_h^0^!O)zwLrNU=x&Vsk+U%o6 -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 -z)P5N6fUK1`!Et-XA$`* -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 -z2b!xiGJ|9QU?= -z67xppzAt2cOwd3FTsvOw!=HKL=}8Dzj$J=2bt*GVt%(xzP?@@JrrL!=p=^}?+vFMe -z`)esk%uT~VNTz)RD2kj-@~!8vt8HlGK3iUlAZt+=2~FXea4>btf+&B0X+wmj>Cs6# -z=vS#?^JF;#N+0*-I=fC5iDXf`&YEC4?BK+y_l>^wIaMuq@k~qRNWud~%QKj@J86-h -z#36ON5AX85g0ui|g6W^69emmvNFMslk!d0Zk_>j`fsk?d&BDlxx!6AcIREmVUFx>h -zQN!m}=C(TIeKUuH%8U)3@i;L@$B_#u?266KjsSd_?m73|`5;G!3*h8b?%^E&);O(i -znk}0~Ht=Hn;sp0&_X9nhH6Jq4+3Yp}7d@1{&Q7Fd=={1ury3Psb75)3?${?om_33Q -zOj80fhN(RugWH%dX+uAmDJxvUFcLQJ0xPBo+FqiWkE!O%Nw594@wHlYKLxD##Pl$F -zC|D}=0*ob~JFM_-tcGFZoPons=FSg^Hi1?^Qpvt=%OteDmo{sfi98;0ke*0o77{Oi#JZ(#fAhj03eo#b3{UyZPJ^1froaT~8pSu92Ci-> -z+p5DEg=V5zjymg1D5Q010!+K@PbqV4J~p(QT9%7HYfKl%fmr}_5)Ry^B0T=e?Z@^Y -z;NFBMv#^pI0Kr8cb9N7_`VuA<7b|^=3pUM{&!E)L>hr11L)E9mF?s2^+M^4?Z=<3cJ_+8G;-IU#*%PaHQ)z}0BxFX*Dh*WmHrP*sRswL| -z3wVO*1bdDS`~AT>RD=TEZF>dw>Sex9ahC--J^q=Cw!A@|_B0NL%0aw7@)NfkO2%M$ -zZEb@C-@fg}5jvdn`lyqF_EzQ-m8Zm~M+qm+-i<5x(?q47fPpfNfy14P0mK08q)<(Q -zdFvaEsgoEKz6}l1FY_Bq$W$9OK+KP*`J1(fMiAb&u9k+*I}O(dKFQfJNK_h9bLch -z{5n)*I^qPpqszxd2=FWs)b0ymvhYqs?-oV?CX*j}<(-#w>T4KFDEe#nzB$mXKF)H| -zB#8@Ijnm=VWIX@WK7s0&$m8}8otn}qE8rTpQ|6BTGel99DhhCezzA-WwpRpIGdluq -zaN`$gZa*Ch3Sd?hgNA1RBec-2Yg_v{5fvnf8Qmu$)KfzeXl02UJRF$I9^21$*tc=R -zHT1++0vz;wV_}+VBE0ag06!T9Zow?D59#U6WsRY#1qJ5Fz|M#HjbQ_rJ+Eb-ng={z -zzq05&aduFsCQI(#-M=L&d^jq%0`xbGNk-OO3?8;P^4U? -z`D6Weng@Dxfp3qMq}egXU8u8XLZGk>D1wJ{x10+b$le-xQVc5F80uP10u -zLNe7$MbSeUUoBn)Q(X(iyD_n{Vi}A!lL0K*KEH-^v=fq#^_J -zQ^zW$+#wS+T!8wMB_Q*-=(CK>u^~u8tLFoF#IKMf7SB)fTYk^%#p=knlcCA}i<2%F -z8a;l=5o|8?8LtfaFMf3KH5g$w%y=${{43mdG)OOO>w8le44VPdQIfB5ITO?Zyx2(O -z%!P=3y-3uPHAIe$#7XW-5LUcX8qWJeXaM3N{k_#w_rS*Y&!j4xcEfo(sLn3%PzLgh -zgO!-1B%@Zt1$ZUdpO+H)>WDfDDaE8P4nsNc8_xef -zl_oZBQmBUr56o5;cG#8%<)aoJ_NVp1LBCu}+$W_|o@D=vOA=Xt2TU2*vEj4FRoIZx -z&AV0y%wyI>#Cst|dtl=LJ5%~ev3ouDuy={r6I}TZKRU>rajr%+s~W37LJ|m-8_|;P -zGQW-!M5I@dv8}!Q^W+W#E?D!HQV>}Y%RZtYO@t0ZQI@;P!cqUf=oI(movhE|I5mq> -zsBJ{B?aj5q6NUiLF^$wgbtn^_f -zV%RYQ-~!(x2h-)^mCnq7j>$>R^$T`T!$+C -zn6b#bt;54NGcYS*1?jv)+uJ@o(fw%h$wC22E)R9HJL3(d>-X`=+i>zrfD{DGR7&O> -zc)EoR)Xi-wRd3tJy31j45gCe -zuhg`3`XBf7C|F(Cw#w%6hX$IkPOAL$?XRKDsYnCyRNK}_hG{f)=s!ciIS@dMXDp%< -z)UY?E$($HrERyOjXn5eKErz(bh7(cSh5hKT>kJC$w}s}-s~(7n!YmQwKI!;o1 -z$7^J7S!=Y#oSH+Rj?Tffo=`%A-Zz}Uxk8xPoUFdQnTXDK!}3611GshA8=*h8Z4o#b -z(A+FJK0~x$JYM)yxiZQSJ>O7(JVz{NKh0W9^)=d#`C?_ph1G81$0a>Z9|~nPl<(0Y -zw*W#on^fDW^D0U4!tFi7$J7G$a)%3DzyW3-*Ct4d2yK*bp^tEG9}xroHQ!i?Vrt{v -zVlcHDNZ#a%6CfP=`G_%>ML^6+CG~nbT@`p^VywKL~#*W$sS>UNjO&+sMOM -z-&&b-$fPHqet94qM??s~)|+uv&1V)r$gv#?P2jk#-#T0qZ2Y=rIKYW)Lxd_zI~brMiqLXieQeqAUu&olp^&c_xk1-x=^}kB;e=+0Rpj==RC&T -zai33=zB^M5aFN?q%b<^qN$W5n&o0^S=k`arE}>_gHLWCMIMF{Id=y?8*NP<=MBG1) -z&2|XD5?wy|4|BT4%`A2*e6KJnU0wu`d;4b~u|jQ55VxFf0F)b`D$r^kWF`?zTDeWb -ziNSvmSC8PgUH>hL!MnD3DOgE#e!(6)i?r=-C_EV#r0;TNHB>opqeCp@)XGyybPrJU -z6@)=-Nr9;;+!xg6Z8S6iz$K9Ih>KN6g&`rW@OTA#s@e{(&ixoEIQ4C$>M|_=Sx%)N%EZDlAbRj*YcfZFFW-v}Bl=Gv`C=8BzZK_$qU!Kp=l?;#nM>AxnDXrH_xSvN -zytc=Y9SEo5VO -z=m$oV5|w<4Pig8C>Wz8I!zbUNNPm_0DUJ_)sB^#(7ZI^gc-*fGAnWK6SKode=8(By -zLcH+%bc>AUu0+$A5FlHCcpPhH%f4D=C9XC`<#q6pe0!?aLEG?Eg&Al~0dp5B9A(EI -z8ynW)+esNfOo7%y(s(=Y{?sNW@EQ^F=9#c@3K!EQV5JLaxze$s-6?oE8xMcp{tsN) -zt^!gUYmRT|WT}h%nDgJ@j1U{XC_fat^b(m((ll;%G6`dB--})Mv&6&Va__Lrj(Xq@B -z#Mw1|Pi*@agB%`LGgeqV_f=;G(ub{;Q|uG+=tq%m@0=V6AL#wnz!vjwo|l|LF1X{X -z^-aUO<#$J0*huUUgc4zHiCf`TX*rxgNxA%Na|F5hn}<3-&gw7fP<|_E1dJvCN{P3( -z(6O>^Ngq+GhW+$^2(6@5d6xE;co>sg2X1FjB$Tz8ur-h#5`=kf*^y-U+%UjIW)=0- -z5KZ~Y$YUJ^5AYhmgijaO7FyFN+`eu$Fo7mi++q<)nl6Jf#jeOh#^TjQfx~j)=JQ8IBl!tC24cqQPm5<;jO5c|adHAc -z&5ZY*978a;-{R4(HBN*zDqA^{-suZO;D8V`Ax^mh*KM{#jy$?a6i~bMo=??gz=<&i -z(P@LOY@CJGZrYxnXW&vYT_|-3l9R;P^Y>QvRTN_zjuMyTKii=Yxq0?c&aTR7@(abw -z=DGxG%KBN9>nNW>WX|rSgUO{9Of$?8>`R*&s5_wko+ -z18H*_xu0>Hs6pm9-DuppvdhhbIta8~05$r37p#SFYSNqHe4;N!lFRqNHMyf8dTIj) -zbG&R6PDgW>_QG3EdO-jSnbNSrES~$(mPnuCg-y48jazm){d`0bCRCR_^02Dy~beAP>LYL!Wit -zI$xf<=LT!lGycU9{L^5|!Q)iDx@ -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 -zYu*LNhf7Y|@Mo){ZCwy<=;xR8XUcyeXIV -z=Tws=ez4X8p15RWn?+x)qB`n^4YJAm#5QYu56CNoG@&l&fE;aIvmKjt)QxS^_N~gj -z-m_K$IqEvo8t9*^xC?U@)a)nc5&_}|V)dL1<>?3|Jz%>vQDUFM -zqVRs-YVM&d-G+A)P#GRPH;`B@kG?T><6QW>y50eb69)ctS@z*^evz`8hc)HRy@s+r -z95p3QVGuFDF3UrHKN^aRWC`K5f(%a}3G>(1#Lh<(>Y#Bu=moKo5s6d@%sgozOG!Gx -zJ2_OcTC+t#&a1R-hw|n@5=otMW>imqBeWz0&b9|?>Th<6y6Z}bJF~N{hk8mp4`U#Z -zA|aNVnSh6a*3r7H363o$|Lb={!JN8FWqLipP6ZHN?Yk_YeH+11AA -z_iHOIG^hwJzn{Gp4h^%zeDLdB=7bVjIlt-QC>KF?)ujJjQLd$}t86sMjLRR6Bcoti -z1N@I1{c*vl -z8_;#x;*Uwf>iWEq=wS`T1^Vlf?`m2i4{UvpIlL(EldRK4CV@3wzqiX%iwMgz+8`|J -z4T`Pe;2X@hzgG%QKUK1lHK)qiwZp^tHH3Mmw~s9m^sxBm`DgqDXW$%sRc7v;{$@Mz -zwGqzJo-eh72YTQfxg(KzjzYUnNClZ`F4`?8+TY5Idj`;VIsOhUWf1A$Kcy%fe|vc) -zn{>vGiTKy2;i<3-+;*MG$pT^YL5CN%Iga2qv%!kIkntPJq)Bmlx@~Sp&vg*@{X%-3 -z7@|?!+8!r=Yf;STR($sKr*)3b2)nH9cR81LfdUm>Tu>D!5_MzMDvbaYC1!WRZI;|H -z3eVcx80ic%4{kpzXkjVH$3C*GfeX~zbB*ZsR$c`ifAxB>c8d#bnU(WHzs+%b_MtR>Y -zreC~&wJiv?JQnp{AHbnti!G{5>qJqei9sQdKl4o#S*HH>9N#<0qq_<1b0t#wP2;`x*uQ?O(3^9%sYig-+bxdxwv*H|KGJ-%1#$+cb+7ey;zt1d{`Eap -zN#%|75DadFuB64)!(*?rnMZD4cm6ZU6e-MHg@R%ksexl5#THjZ!?TmFvWlmSy5Z>! -z_r>NPw;+cB5S!bNy?$4g;3n{50fLZ0Kg^s-q#}zWZE+C4Pgw!z*{L2Y8QjtUkx5|G -z2|=*Wm!l5|9f%JLI2;zql0 -zd;Qu|U2mxRaBZW&K>zZiDMY&lHVQ5JxXQmHb3`c{NmO-*2AAbSq8BH5DRze -zzY5tGRA10v{VRePOs-6wpq4E3wr%B?wh65@K13ioRC0 -z3#Ld@I$C$J+^cwSZQxBsN~DTXiIPbihNpFA$6xx5?3D|{|1%dLouDFA6C9f-^|^np -zugNs`m!>M;clz%>Sw?!Y8-#Uy4snop3fmSdmn^$pR8pyV -zMr4F4-uGgDQ1fZQ%hU;c2o!4|yjpmqoY1jG?|$Nb>R;ftpiN|AV7k4XTm~^r1<78Y -zlkDw|>}>m;BdkhB>Jg(+_*nBQGxrd^HMnF@nNpj^O6RAh#uU!%Ooi_Tn!5B!3m?2 -z$qcOt-P8;ekV4%Ez!YuEU#@)i7?0dm -zamVx9M~{#kFGbW$A5w=%v-mQ0KgZ}7u7_6gSIsiHaj>bHPY~Cang$J6S|uv|E{dm} -zub}lleTEf>+78j3CEL>oiQ6#vYDuLP40^X6ms>soH|Rxa^Qn{wP*dybok)HS5_5sZ -zJRWrVO@6J}D}RPq4{}vD0l*0AJ_ilYx>RAO6!=QhKDGOD7JTzUW&?Ug@b;2&*l~Ep -z=qVBqU7|kef8lwxe52JB012Fd{a~vi_i+mCoq1tNTBXfuYXsB2&c4vdfjT{XDo^QB0K)do6%AKnBXRfTr)dK%YWr-WeyzO9*K-l75}(T@N{0(HiZ6S?>S -zwUbDps!G_30qu=O0;8Vh(9KB<_V5DX%<)GWamCJjVOID&zrm!c|D6hgSgKIca@D(< -zl?OP;Oo@HXjfURri`Q=j`R75%itw~!@9T|Qvhb(iVY}C^u$4F-6l+l$ihY(UhON8h -zUNMP#8LvWLZc3{s{rw{Uci-OG%o21~-_*qTB!Kxzmb{)_5W$6F|Gw6$OmNOt_{U3Q -zm#fQRL8}Ll>%jK}SM{=M&0FJwhRlilX>!7qin+PyfJu(CMRz^=2C4lC~uC3&s#F0i+8{T)*s -zR;skX091$tsE=Oa;!?yPQ>2Gc=Ep@X9!G%2^q%*k4?!z#@Zlyfh?Z<8`@zrKOQED^ -z`l{o04IMDA+ZXjfz6IXSwGR7%NkfEK=@4Y8%Uh%JQ#+pV+1qeaKZcwFZX12S1S_Wr -zV+#Ym15?Ne2(j$mlvgP?c#LJW^`zF2x~WEyra!`$BZZZnGwtNY!nNarQ=~u!_UGe& -z9!1R6yl5$0pk3q8z_&BOYsy@znD;^(g3f9jES&%6g}To)S6{?d%WJHVSB1a8()e$! -ze+X@1dBZD+X|@vw>jasp -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 -zC=2RAeLeG&l{J%0U$>{rHm#U)BibN+x{QmL21 -zR&g6-3;2au8;oYt>kx)Dh)Z895^A8|^;!S33g(gB=oz4v;om0iZh%bR`#6|ZSFxLJ -z0j85{1OAs|@7gt>s1v9je?<>48~qv^Wb)DKM6|nJF^InGd5qsP-$H+g69gw4*x=|6eX7`y>BNk7@a-6A2TaSc*b%O(dqzWp$HxBWot?)iG~YSr^oI9#oG< -zuucpPnF)(^mloRz@(zPB@SgJV<;H(&a?5xUX`oYpVJ%ea186t1no82PRvgVuW+lvLNM!#;II{iSHpUKgiC55Aw_P$#-Q*M?rWPL4;Uu -zT`>!}TIjCZX9sm5v=4~yi1=bNate=pVi<{G!qu%1Tu8+29IjZ3uxxf4(Na_VV8{n0 -z7Qf!cqy{4Pxp{0L_jMk_Ej1dtifrV?YzB9VY`$nl+j}nr@;E}QTk60BpZUeS7(*^HYN8>d%BMQDykKoZK;9%{b^^X;xSGk{P5^GpD -z(>|X;`6{S0@)p9>{w{DCh#XrJ7&VIR&_*(dVaz|t#9VWBNX#fEaRbYt%sCsqm5pA7 -zrE@d|&;5Zvn^%lJ`x94Fl;U5k0(6V&o$DSi+bhv!gDc*n;|WlC^To -zKdI3*mQH$+guFgjmbNw}l5x7Y_0>+6I)pOD*(5OL9wyp{Kg#;{M@{X9xc1O^j&Zs78C`S`iAmFdSH)yE@Yg7*v_yPSPM7b4E-K%s -z(CRatnE9kn!%ip90i#2ygL34L^;K|G_L4ni{zupt9_XgggAc4IHX6}-lO^K?JuiEx -zqLr&PJT9??bdy%h);^X)GSk-;Gl*khJ<~Pv+%bDC@WZ-#ajFJUV5#@G)fca -zgcsD_nPEvyYCa;cQOWA~$sGftFpL45C2~G_Z-l5`i{sc1>8(io(UmlT9>2;-YtS1jydp)ibaAK-F3Sq< -zpKsokVkb8=qwB#B9>`hf9pJ-pJLKOnhzy};z)$)2Rn`O?2DEq2@Oq`s`A09Zd*X_w -z*WD8?P@!VeAefPP5!*U$?bvFy*8j}s>I7oDaxfoTH3ZD8#b#Ti911Y+?8oMcHP&r* -zUhMWfXhrwW!R`?vacXK(uq&8PP^qyBAo*LJk(RMBbqnqD2XxZ7fl) -zdYp=LPBej0jHyzF8KQ$!=GTWpDI(7xp&F9nelr^90{>&W_Hn9npe}H=4f+F{id*mz1hSYFBa++!sXZS+%P6B``3NrW4V@|`DrY=saH%fPZ7%$g`6p;U#6nfbnkkTp|W79o3;(9!h;o4PU%!bL?BJ_jc02>ySj%& -zH~j6+5|xhPP<<(-&61C_IJ0WHb@~o?YyjEs!krEjZ1eziVL$ypWVl{kT!r4}^bbvH -zr7V{cIj5+78DB_WeQ7t{^X1PvqMi=>$5T7^!{k^G;In|S4GZhTuqtIxdK!WdzkGJ+ -zjkXeV$Z{a-lOEm=?Oy8pBPi!)WHmDSMhOLP?!LF;*$NB|p>Um1)Y)2Qf9saEi08kF -z66nBrrXohZhA@}>?Nt7D&nEtME=*OyG5n05XvnG?C{#h~)qj#Z!#!oYS_L{?jcKeQ -zQ-{wys$2FJjgheYDW4iT(;Gu=&_SW|#YR1CzCVX?rZI)x! -zNzr%&W&>^T#@g>!I{x_g;be0^zZyJBr=_a?s<&JcX;ja@Mg5Qgr7n*}_LFwK7Bc3Q -zR?hi9$jP -z0Xz+_t5wPi4;R;`5h?Ec<$Mgk5Z~#MtswovPH2WL^a^>KSOZ<%0d8w}cR@XC=^ZYr -zJZ}ZV)@(T$TnN3h=}D)Hi(&!{e-;%l{l}M}m$dAu^GR-6T%gZRdBTMpTjn2GZ}Y<4 -zPvyuNWKHPlJHoYoZRAA8cVB($$|3b;03QPOgMz{+Cdpmsja{r(+&fIt!83sB0(=gS -zcezS@PeiSAvAh^lqpQs|;*Q0;(zbbKd%W6dNImpRyl?RVy49UO0$?#lU6ivRNuzv@xXvJ(b> -zOeKah^v?QjIHK9C68(P8qX!Qs1Z#EauquaBfAHh;?+BO&g>U14x64{+W1nsF8@dLZ -z=6@0~7SOm=NASBNPmYI0qi=$oz=YEEVE}*Dc5g>4*Kr*GHyr5xN~$wmt3FuNs536=8{eG+=y%<{C>iAR2$|4gbO%vHb -zZl4l~6?uGk)h^uRAS(ZvUTyaP9io2)hSR~Y>9cJdy1(j)Dxc2V&r6C{l=MLRlKPCg -z@LAip~5NRDbDg{U9T29os7n#SjhX$fD;n|k|ve_O-; -z=H#2kCO9<^f-#-uCf+D_?s%!;JP1hhFz|H*{njf?f;o!vN=(w|e-V$6bjHg3E0KqY -zW-URN?G2oWg=`eIPql&|GX*IFJfUyl(1QMxD7?;NBZ2| -zE<)xB>Y8va6dt?73eFiX$OQ*~Z@w#%l{CT8xr}!j@&^zyFychd@u?RJJmTz15hJj> -zq%ksQs-j@YmgEDYbq<2pdBaH66dN39%r$m&U=d9~y!?`F3y{P!0GKe(FHNzEj5PT1+Hsvd -zu|8_^x?z5?0fgX$SRsD;S0D4v^{1a;JO0P7AXv)y;;;wijn>f_dGWU&q0Nn!9CjB# -zg*lyA{|(05ukoAKN51lBloNEglHZw7O<8k)I+n2>77(`yf -z)CmH6dhm%ZrCzQPt(YxEFnJp*AykQeYOqBdV^ELcNPgxFOyT#ac4#l~uXo3F$sAaD*ujvzw8-oY7iKA5ycS2`}r@Q4@DW*FA0${z{ -z1AHn8qm=8mzxfQqJKFXJFJa#e9O;}T`k$| -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 -zITVSxR7NL};pA3-((-gETj9@Qi&wyEv -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 -zkakq6z!kKf0qdRznb}veBi7sls`pzDQ@ -z+XC=~7)rEx{qJ-B2#T1e>DvVAO7}inUFawPAvMt#$vSHeN2j0qpW*Q?`T7Vx2{UoG -zU4P2nlZ@>|m<6GYr3VhhpT3R&?~u8=OUG!p%e;K?Wk0$6`f1a -z(CU9QU1eBQT^D_kZX_fm1nDm6p^=o94nabYX6O`Y=@cnxkPc~(ZfQZ9p}U6$zsn5Y -z^SpmvnYnY%x#ym<_g-tS)qXvj{w<|k$GNvZ(A}r2WT_>5-b#-q1h=JK`(bL(4v~0v -zrN=90OccPs!*iU(>*xP!1rivC8ROpgiRhUe!T1s@{FS5n%KdkLCtRAr4G_wo)e(L~1aW2B5A#hH=CrZU(kTnc(V7(*^bX;ql{cuF>%v7=+$6ckb9)6aCqMCPpQjW~-7e&t{%x -zN4qJF;PI%UC1QTz|K>;h)_Cj)noox>?@DzI&+#U0lfc{U{<$J11)%L5*z0ikoyrgW -z*2y->=-AT@+%Gy`4MX3E441mVo8nb5#6n2IK%n3?SJ6Kc4b$aPN(hx&ta}n5TUfZY -zmc`TWIvYnEumeEMCXD2G&lOS}cJtUoss(YzaVmbiiDol@=x=ZHe>Y1;KT-2C-lkNl -zm!OKGH+|hTA{<*=fE2y5&=HhOPhJ6Q4!}eV=(Y|#RGfC|@Fta(!zrXo-))#)ZO7A* -ziPID0#@6b(dJa=60T_LPA94qHk{VSF*xza9x9R?)>3FX3E082MwtHbGo^k;;$3I*& -zE9_XFm|hX>XQ-}n9w6Zy3h=n;GwZM0_r0JiXH%OL)coN; -zwym!X4`oCkgc`t0!lvSn!=MtCNtW40q8hH}IYgEn%P9M>{c2?b0+mwkhm#JjB9K9P -z5^|(Ei_u7F%`MgzR{s|W*N3jhiaCKBn%`_oJFKm!bKrZKB~1~94`IVy8{UgIxBE47 -z_hzoUf;_gq&Lakx@eHyte;@94waM58RIhGy#itUDeUgHwBQ7iL+G{&1^Y$+4IvtcjoV -zg&BHYQ!Z;;S*(Z_%5i5Ay;l}L(b%E)ypd*G~1v90LZ{^%J2h+-A7 -zs*JDTVYb%HTTJv75n>q_9orkO!mrN@@Fk276@vQSTKzK^I0vo>40)dr|o=7(XzR)Y6376EHsf1*`4Q -zD%FInp_sc3`i!92H>V$IxvS_zKReDiV26Io9+*{@I0NW0K;Q`IG_4r9bBN5dZJ&t< -z2)(EcEF=|wn8S2?#QYxNpsgBRRSMKpm -zL{lj+`u|c1`OTKd<~4Nvxnb~35^TsQIQ)a`mT{EI)x4K!F8Vi8DbSS+CzuijH( -zy3w0O^6(Sz^Y1H_pk$uJ{@KjjjUjq4UjmxeALK5^gqn~-ahHBKx?T~*WodhQS(E8i -zE!1tmDUkIyN4jm_u(n8REO9HJg1Y?Kgf2YsHKoR1BBbk~?5XYJAOhC`I9cYasb{W$ -z0MdD=v^F`7g>;%Ql@rm+V_byF0*^;?Uo_nWfn5rNR|I<9udiJS5&~Xju{$8W^hiWi7X0EANU?l1~b1IzrcMPvzsvcut&PFgl~wGX5KAU9}| -zR}qiTu#&e*sh>prnt+~j*4W=H8!-+e7pMt3kNia_5oS#Ct2C({k7e1p3Mc`V$=CCNj1*}}x! -zkOWe_91n7u*01&j2#!!0nEc#d@IQZ=LF#DHvkUZ#HUUrEMEnvlKJ~T%QSSr2DspC4 -zLU(x~LeOi{PaDRg^(N>mkT;*`Jk~R^#9%idZAjlmXUxHEwLGWs$y<8__qTV`w$HQ#an1ryb?`tnUSSAx71`KNaar63JI-`@0vopzCy6RW*UH5fB-j7+wVs -z8Ir5kDCZ)0KB2^_zpCV^M3Raclu{ThC40AAouDjKa|Ra>P|L$f-rx4e9qCN$9@(12 -z$ES`r-a2Y9H6b6cd`uoF34N_>gk;HOmT7|)oR5_h`AGxYg)Ta(#xyTslm?`h*Ktix -z{^_tHzoIz24z(5i-VLe$o?#W=D{x0`S+?%c^RL6P+8{ZefA@q7vXJ-Lt@h` -z=wA&BQ2V9$O$DZM2pEj>mD?NrD9; -z@{mMc{LdDWCbLDd$DM3?8-Qafa6hze>wl{idW#VS`@R1NCwH~9d5^`|woAO7kD@t{ -z64HkwwFkB47$lZ00T1JRW7dJ5~k=fI8 -zq=~PrPp)h+K}~S<*f=~6(ZhcJ-I693AB(Lv0Eq)}U-;;9fMtb=!DoZ9U7jbZuf1z8 -z!rCQ-@FvyclK3(*bwjgskF$|=oB(LpRwsJ^5?fz9xB -z$uuYUPq5yKlJVBqz$p9Y|AL=)+g9L!{{fK_BUu=~>JO|E&t&KJWc*#(45iM7s#&U2h# -zKqYxtDWfqeXn8c_{??vYUG}p3kCTrZlNC>kBs-FbwN1_M1m%FD=fRW@>Q|ALVlThw -z?)mIO{M>R@@FcbrWNqYSCPhyo^)%!?K*dTTPVoAJeubBgR4pyLM#a>bljbc -zZ0+qxDWlpe<&SC(M(HUXv7RMvJi4>{a7&bISMY|mBrD?;l)y-yQZ&wySj((BjTPa& -zw}OoIlY(j38kPLfOe^tG#N6qkxX&YMq8m!0MHI7Bv&U?py5Y5z$=`5Z0_$lCz!tc8N(BXXB7JD -z>Oouo4OXaZN^d&%a>F_cyFv^2>viJLE-VtV^P--==>4{E0bUyv!r*AJxjdUrR(jI# -zG^qTsyJf|b5JV|s)pucvPu=)#8G)RCPszRMJN6B8r7XI_Mp?vKH2=+XIZW9*0PWEF -zU2SzdicY^6+4pe9Nb-AT(oyD&(10@k@BGte2>{^$$PPmYRAcs@;Gk+abok*6)7Odj -z1;tn~&9j@2uu5!e)?!^t7PtDs2hACc=<%0b6>uu!HkNw6L+XWv>AqAD`7~IFWJi<~ -zcp3omS20tM&VXaeGM~Wzd=GT@>EkoI&(R+L?NEG_^iK*id;ntDutGI`;zREHf>B7w -zbjbUVurot&W^jb(mk|gS^LnPdb-uwnV`COG@DBbn=XAmP$0m4ykn!B42^B{Qq$C%) -zI?}JPU=~*j8)%1&^3n+-3VmajrWx_(5LN7Cy-%BYH=aP->+gT&Z{eD%XboS5+4Bdr -z!CgdjV{C1sZAfhN&)S+}wI?0hHh%g!!>a^ka$b1xDpLK9uJe+Wnj!0C4xL;_M1Fx% -zAub(kws26%36LGQ@3czJDEDpq96m!p+9x>BAJFg$0PN-L^rVWD -z7GjW!r!UqVJ!hS-a6?ic&z0OsRrlT9D`P*+KO|VQfEvX>*QTRFw*-!-PlpSb3pZoN -zJYrt{l3kSmMRza*PN7`xZeErg>I0XUu9$pAcl;0z*_bbj|9JN-j5}@|;$V0B;6Vcf -z^2vBxf6aeg=*0IF^0j!0vQR_ -ziapitZsHm6_yAwE;P;v8ZK1ul+lkYjx)ik%_9`}#9Ta;W6#K9-mGxG~2U$x3RUm~g -zZ;i>i7E#V^+BvzzqN?vbJRYo{xnG0_V+y_@S24IPfQuYvcgD{glXeGCZE){OWk3-I -zZyS@hb3}P3?SNGBVb5@-5%4B1w%G#THbc{t{*-R|zhU|hiNO1TRRcu+^(7h7 -zDVN^6Ongt=V+}~?OWx7Qm^MHQU2_M>w(ETB;jmhE$_p6=;2asTEFbg)voGLB`N)-f -z4|!~Ozh30!b_h~0#gnMH -z?FVFIP5QJGynND5i#^r%q?9AaZF`UVJ40vxW~v`hB^v#`7sK7n5#-=Wu;C -zqLvT6nCoAXC>6|BSnk~twZld@QrILy*PLDTb;E;pcPov{dI9EE5{95g+2(s;#f{vT -z%9u@PPO~-8e##i)n9I-51pdp&A -z8})me)Nn0(lSJ81Zd5e)Xrc2V3GeX7yV44r2cNON6Cl2gOkZ6_S=g)*8B66^k)W7r -z{`&f_K({5;J&cy&n7*6qh)UA2Ie${rP2sJQmHH8yX0)!$!A^0I1M>qm5ucR3W<5I~w8G$;;{Ac!nXAa@A&3Cqk^v4Gt^Z5z;k -zx5R3{NKBiM-ori|^V|qc%A}v0!O9h9R_ntTo$r6h#-#K#E=$?z7E*U-_N_ -zXHm#35~^;M7;-NK`2!oFS`dlUF~|hd@Jsw&<5%ra$8SFhb>v!mL-b*MHOD+_v}MHm -zvF$!|J%exyb_EVwMt$6VbPn$%57-0g`aQa>3VA+2mysfn(#KR{z8LpMBOJo}AixN$ -z(nO2lV55$d4SBHRfX2T@sDWBuH}uHF5>`lxiRZ2kHWK`xc&P8buJhr}{p1Np|7(xe -zO&qRp>t@q$Cx*%E=p$QP>zxZOGV4PIb|8-3zV+=yY|x>^1U!Ur!|-Dc9_ZMvwjeXv -z@?5j&J^V8PgO?#?;5lya9|vh@EmuWXTZ07%{_pL6h69DO^nNwxIq)c%J -z`6rE+VqW~;mHuNukmuXagpZ-Hd~pPmLHkE*n;M^C|E{=1%kD99-^k75LBcdfG>cdO -z-ZW!$(=a|{%Ka*+F$1z5za>PEAkAYkdbC_*E(k8ki#a3@RhZ*nzl(JS4 -z$S)VfJ~`*)DtkMzlY=VX$5d7wihNJS>${03u=gjv2-Uk%RwU;gtwMJ@s#GE+1uGzW -z=+@E*$z85uiW*F1N@lp1(_Z#h3JnMBl8*tSU~}<8a@48ZxJAJ>Og5h~hx3>$7JEp- -zw~8cNcSWxCZxkp~jzCJ|nm=XsgWg-70>_^<&}VVH`0V@^a?n{S21MyjmW^1@P%nD3 -z>x^_S??H~W61QB9B`+z4f(IXBb{8%4yKR5#?G$$d{Etc0dF`6Xe;i~AfHtIEt1n8$ -ztq0^xD)gCS$_mAu(b|`;9mSEynfITw0At`X%Z_koHkJ5!7eS(+$v0X8c{ZI}q^`>U -zRU@R0a|R#(YVfH~1t^D1ALlK$n1ekfSc2Ahd22iQHAaKUTi#@CQF-^XWtRkLfLW-3F~bWt`V=zYdsb%n{251?Y{1L4xb6YI=~u}G^3SdRrd&UfId7S} -z->qX3w9PAwlySYe!mC(K`5vLOj}~F%pA+ACy*(uh+$`dg-K{T)zc$lT`I;pSKisqa -zE}e9HlMz;>YT`~k(HNgH%?k!-hTJa(*w?Bt963i2GS+FdXZFY};{tajnMa$!Up`Z& -zQf^!6DBV{9(Xic&Fq&x5}<8^;KF{H7a#96liOe_8+azTe*jJ!#U!Wj*Dctq}pFMH#lW*Ug$g)Ac%EnPW;5@J}WF`+*{T -zk2q7LE}dXnC+1Se26Gce;mPLHzl7%?!lFmy>f^Q5S%sukw -zn|m!2>M|&F)=7h^sW(0`*+)c&90-yM!)SkfCWtXwR^w{-hd>^waz&48{i8KqR}ovK -z|1Ml8|0~QR{GlHIxouP%QvZId{SB6?8To50o@*Wq>UYD2o0pw{%qX0m#r%&3W5LZ^ -zHA`}gjvLE^gbNRnmQJ+g -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 -ztrp`yCS<1b>o00$CQ=wT|+ -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 -zXxctp#Ts_1`2%Yc36E;U2 -z%^tezqK?_Wd| -z>_Q5lA|1x$f?dcP>)~3FNLZdmMcy#y2iUKQA$7qKrcBwV=iYA!jL7j63k+AgV&A5F -z<{+g~I-LT4euEXdOURsm6yCGvx`(MJ%Pj5l+Q&%NGjLF3_PSyeW*`Ct1b0&^v>8eI -znWBo&_Xh0dmQJ2r`%SXR!vGrrNMfC{P%-RPVsqW!maxerEZe#XPk%vtqANtDFay7X -zf&ELn@=YFv6t^!t3n-Zr%a4ijnkDao0Zwu}>vyHm(w(^l<19VmAJ@k)vuU6WY%XQ_ -z1bDqkhdBbgB|`d)jQZPnG%g?OQ2UO))lnzaPOmG=;SqD0h~*!i0r$H++49*}&+>nH -zh=_^8|DrAX0ev>Ht_VR=)CMW+hzOl7jC`%dH510Bh(w5eQ#7np^yAr#Tdwlcd9hrl -zR8Xm`QSqjXcgG_k--%vc2y&%POpcnY{wl!C3Vh~oIqgp6{G*4z>==fx26*|@V@#N9 -zbyY>LJhTZHbLHutj{KA5HYCV|Lle>upFD%N3Vb^6D!qkB(AeS_c?6(gd(> -zH*dZl@X`Yh%t`zI5st3*J4=9zUnC9{=3&mL+QTI~vxi+1c*s|j1fOZGLz0&> -zPC#tt?j?As@a6+%r*y!Zga_R7Uph5kQiI($cu;$x!zhD3C7Zb4$7cY6I9veo?65dP -z-H*P;LQ)}AD#X-IMtI8em&rcDT;k6 -z75j>_bCIjc92<-^(EKL{z-Y(h><<+@o6N);Ea54fZ>}|`1SV!HVZ@Qa#RWWdI-Yu! -z@#B-}H>LFmn)rTGSd8ngQMx8}w<_*{ -zhlHfpf0o|T{G`0K*g6RvXMYoIzrb!>`ACi{>?UnLbd{UW+uhl>9=tYn!`pY~*EIxJ -z(OB8!Y0N{;v})KISWP0weA8=wejICj!@Uk4fLU_XKqoOS)!7Fo>pg`vqs!Gl4Xuj* -z+T!7JRW@Xz8-$nih2#m@2kfn@Nw!snl()!QeGCtNjMw_hn73F(E%oYxRJ~5V-v4Fi^RDdY7 -zjri(?|EE&Y@~$VwC$fg<-T$80gH&3b#@+rhKAqp2nQ8e0Bh&7~@z -zzl#loHEt~P{D?R@r&rx_B%L80#k$*Sg{(P;^5f6Vj)3kL)=Lw^is_5#I#0`hz@5S2 -zvkDQwc+o4ZX#N_vEX~aW!M4~jLe>}KET65 -z-7|M&)ou(cc{_~YF@|_4r9o_`E>+3+eR)#&Yzt>nwY{lbpxAu3`i}36>#q`Da^UVs -zPjj9D!RC2QDN5s4;tG2s7M$n19+1)gDGm=b9t+Z7Ib6SlczI77vWMdH?l2+kPxXb) -zk6d@eb@!ve_toiP=t6V_{+@w`D@C%gHO``}K!ieEfPI(BA1yfj?nXLbd|)*3Q{~Lv -z08`r%O@qe^Mi&4M0?(?RrWAR_zZy156DW7<4#{*nEtGT#FmlT%U0B?ksbB|Z7a -zd}0q-FUH_nGpV1M_D#RraJ=o=uLr_RfXq=1&i&O?X7ly!LZ{Ia!KD!Ur0>{wAMK37 -z!j}nGc#vnQ!UU1sUwbuVAH0u+a(|He=U@Q{*w@u4&0o`HN(u`G8T~Bg!VOge -z?@Ldc116edscwp_G4CdH)LcmNW}4KgT^+6GoqsQITS=9Y;z`IZQ5=dHdTt#)KWGn* -zQ+8Un@MXj?0QNAh7Xyx0KZv$xzF^L+S1~RTh|Y1PF((AId9;=N{V5dz0LuUsI?38F -zIYdzaSr$bc1;L#>%hg@RduK6gSZV+0H(+)FoUNyjiyt=WoqvWpmqszNu!72`9&mU- -zL@e^-Z8#5CyiLpay9)#Cj9a0Xw?dgR{lK^W0p^}QfX!U60=<>1IFr;z)X9fe5;$ls -z=9?u)vwt=f+ni}J%m5!vM>sB%#LE2B%s{-v;{7iu-UdLmyZkT5FKENMvuLF&rtt#T -zgWJcrMnxY)|ACN8`!ZkP`#2Aft$e)*^to$3EnuocbGI5lU+x1SWx%*W67_jKlS~mF -zYe8#V?40aRCZB4aQrK6g)pCEu8J`5=QXV@_hPxCJoqF}z;@(wEnwwHFcfo+>(7DoH -zGp95q{R9%_O&6x;tugCG1JfR&4_5&0Uk_v`F}K`Hju|A@I3k*sa4QM&ymF~M)ycs54EYE?#01+D@(G0WKK}Gn9?Q^Z;tRrgx -z&+PH9FZ*D#mLRathmU+j -zVlL*ROgKKTAskRi&6*g=k;5tz5=eO{8n~i#3ELZ;NbWgJH_=qEX#?5;ytgiv1M?#F -z)`HPboE4@Go4^%;=S{9_t`Y`7+6=1=m~lHc=2D{^Z>%BzGo+s(B3ccO4j#hoT?g<~ -zfB^23$Hu-JK!}BvKGJ!xO_mA$JR8*eaLxeB65TTMkF(b02eKarjlUK=Td#XyUJ7R7 -zw4~nK@2Q{0A)F`+NJ0PMOEv&eilul$)q0)&2cp(bhfK?5xJRJKAO2S+BC(r*+<){Rq^NNu|ypa%rp=8gB8@L5iaj>8pt%JCXZZyBbzvSakVh?D%EE7*%ETcC?IorT7j)1` -zRSUJq#zFh$h=bV{{#Va-ZGA@6DfZsI@Fen(4W=4H<9|Tt+2!9hOOQVvZ26s^nA>k} -z7}-xeS-=$?Yp*-#R^g2KR4SP$1IvbtEcFqEueW5*F#Glwtn8B?wI|45_rBZ{OStt2 -zwFU5mU2BDvynlGo^BGH_AO*LXFmW1Zts6n1XCRs|f#v{%oeF1#JD^h>f0rcdRmC^t0-GNp2AZDgcpKp@Sj+W>kl+v*xTF|3!BA!GhXmCLAoHk0SS)mvpN~WTNhAfE)tw{%ceE -zdb~#FiT>1rd#?90|Ae3Pyo{d5zM=b7ihVD~TSe -zoSem#C*rH|VCwKNOs&z{t_&fFg1#lJlcj5&jHCKqh=&??jxA!|;v$fa)C;JE_4tog -zjxxuy=K6maW>-R(ZQ;bRwp($=hm=9Lewm1y)vea7)|ZT*Y<13EnbBLGCYu}qm@2S& -zz0uovI}>98x)0ECSD`-5XzgL#hmG5wOQFc;g9F`R_om4Fw^Z#DSuqfhG6CCh*_IlH -zC2as8JN2=-ez2(uW8eGLizh_4FEx{=iNbS2MksBKn3N2KqKP%^R*Bh2yGIYpK7= -z6&QU;2!ZJi=})-Jp^Kkfp#l)-hXbRV@J9lF5kiQ=xARoWJM8=S)3C{&8x90#cWB47 -z&av}XE^-Wk$;QoHY+*wJHXvtlIX!xdyDfFSjX%|c+Jh5pUAI_ii?D3qz)qG4hy0{O -z#jbZ2R7q@peFw3F-KKknQiC-s7k`=4;I7CCvcom3{KRNpto>fG$g*2aT0wV4>KPj{ -z?UhUS)s`D_3DCt2Xd0e_ObSXwhWT}Z+9o8&h5(Nwpc@<5o(4v#DP(pVM;-F&-hY-6 -z(GLf_8R~rWo!x-S0+6}wGE#L%TIRoy!GkX=zNycfZgecmsbL3NdA}Y++bGZegBD=AhrG -z_5;$_af$e8fW;I5 -zl>!rZCA;)$`{_=FQ1}6z%Mh_WlmP^H2mrjo{@O_PcXCKY=3thkrTE6LdIJ}-5J$U5 -zWR7f+An<%vmmxT;$i(ojW+DvZ?#=#5)*0iy+9?m&;3om91Li1a`JSE%H+vB}s=mLy -zihy~C=j`H#ltTG~o{D51jgk>1y(5rqRukW(x5YT+QD|D~@&=<-!)EKYqMpU7!v%tp -z3;FEmud%QnPJ^p&K9&t?jBhrvXKRLk&U|*8>^!T=lU_KuJ>|0RH02q=9v)wEvax;I -z=iIP9=mNAaYt0&=o>lF{|4_SKor;)GKAly)8P-(Jax%zBw`(1o9K%YpU`N8uduuv& -zM2P9r@L(>Yvr5#_6lkA>j~7(!XzaU?xxF61H@Ww_>DjHg8I3}*BScc3p~y+$s5H5b -z9XEcfD?jTq-x;oOe0VruQfZn0%8T55ifV=Is=MKSJ%KWPA1m~}Hfn`1AQ(C8`Kemh -z=Cz(Y!?%=FqF)4b9Q=Ss^)pM)(;dMAWT*sfWG*|7qk_c8+x(+e$oMlc2yC-v;_iZu8FjBd -znUT6j`waI{#yBrT$~9BQL{OMpn!cYPH$_6rUikGtnyxY|tELG{mo!Lsw{&->q$u6p -z-6h@K-65cKgLHQ&-Q6J}@f{xC?+@3-bN1|+ot>SzcVhQ>=S_z~5ouBfhmsJxvO_`- -zUB>1LN{+4=4WH9r=>S19JP6WlhPpe#3jDn!p(F?RqLhw0{eO!gFAg9D<_;vc-Y~1M -z+qi$KiQZK=U!Of|T4&E7Z(bc+r_>f9FE -zOo^GtW6~9wR)h|}G@+gyFY+u6FUSX2g{)WT6S({k59G5yENQ;{OKf~S4FC{thP%e> -z2JnhWLQ|)(6|g_&SP+niAp(`JR|fz(XobDXAa9d=$Qiq=T8aj}$)$Mj^UvzHalDwS -zWzzVEec%q)*+%xg;`gqUqD -zt-p=wv?sw~MYTsmXJSqJ+t*Drir)=fT{_)Z#nwNYT5@nUyk2JQYb?|>Ysi^jUT)D5 -z(MXTJMdF^K9xB05uJqg -z#ne$&Sg!}lz}j1!}~1yTUbSzz|9H#A;Xj;7`O>$^bzo1kI0M%v2XRcoB6STLvpN>3E -zse>l_qIiOUb*MYm!=(^OrD=mJ?YR2rodcpW=9Jd!kx;-v;@;lX{}{21Oq{hEOyYrI -z0Q|q*s+qAbzLfLgS`hSqrvr!;pd+x5LIwAB-^OX{m^s0XAN+K%(@XJ#PLx*98{)193v>Mpw^VY; -zv=|6+M1i4J)3tEAP^L`wJby;Z40alI)Z+kUXaHHDCD{)M*)ERT(55tP9#Ek5z?qG< -z7&^l4B>F5OQs3}=Qw?+iR7CIXa?^ZHa>~C^WH44vM1q1KX+CSCV_?jo!_xs328*0- -zWb#wk1VI>#ZuiN>iM2h -zZ^qvCi6jXJQYUI@ZaBZj5V&0I_J@fjQ9BNy=e2Cs2u^`07{KNNvfF_BWQ7Lq-zYPY -zn=P1xBlEfd(RdI6_iCE{2*|LDyAk(x;@S!$Noe00`K~+M0bT&>(Fr`9$H7&gV5@Ab -zoA!Mv0++TPrg~hx>BNW8hY#O3F#)5+N}TSI_~lkMMnOGIQI&V*8vnlu(MX(>oRZ?dN!{j5uBGA@sw}#}jCX3ggaDT2sj{!9rlX}09 -z3%cgBNL!YCK5mXP;Gt!DiMiUgYKrMlL>CA_0ebml@TRP01D;vNetokBO9XInX9<~N -z@lihl!(xR9*vWxghI-*L7O38LKjpIJZ#JhlZl<;kC>@$8J<1;ZT@4!j=1KsOW3s{_ -zCAKmd&H3}+KPf|EQ&BMW=#k2=QF?#@bmL;MNfk8&Gm}ZUK=!37<#om56zJXjuYGQP -zX>Lb2j1a$dJYbbbQDRnGH+yVfqn3adM2jatE;22*59xd6Q5m*v0yi1hPdd)42npr4 -zPa8;~i8>>VW@#i}fjOOHI@AAhsLtW0(EUiP0~%o92xgritOhIx1Hm;l=OZC9^mLdP -zawnmKK5%q35t=qA8VPIvjnr@@#yrYl;4?OHNh;xLL(EK1H>-^2Tjg!(H$?YwBYbTs -zB~+$ovliivu>$3JbCkPL>+jGWmVmhe6uah)n4}H$A&olXXPbdF_bcevMF2bgAkaZ$ -zTv5T)63?Do)32R<6BPFt3&so*;Y0?BO*v(ASqa8uD!DtcIlZx+)Yckl;_6)X-J7uT -z3tV7R%tGwLc!%|UGg+GQ%Y^wz_q!fq0smL;JD~2uPcg5t>3X3vMbRO>=@TZUkw$H@bdDtvWSF+egkKa_Tw@|9%CC5?Gz`c -z_q8El=V{VDPQt%=hu>t?N -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 -zMk`Z4q|$E%Lf^d$R~y@LQy$Pl(cP^~Ben}< -zf#S7>je>zsh@=V@jVn@kF|HqBpo%5JGLo4Gn|h4BG#iQJlgW^F0RcC&8Yg884GApM -zzM7|bn}r=Eu226FygG%t%4guSVQ--2vp^&{9h93V$xN~G%)R3Nj4=M?tnH~Ijhq+I -zE#IKUifdMl`TG{=TAiA_RU>E3}@WiXUzCFJjh?;(Rx<^>@P6Sc6uP^S3ue? -z)-kI-pP9l8f9TVD@x9pMK;3VxmjlWjal=n{KaN~WK#M;O*c}LzORlN*+fWj_y#01k -zg}fNluT^bo=b966p2pt63!3(p-yg?3aXW^gE-y~mOYl!A;vzb)c#1||DuVNHV>AFU -zgq>Is8nQoD4_q_B;tPm>BO|mqPh+?j+jBz%#}xnfFl>k~e%Wbz?HvQcvuWH2emwq- -zCx9{m5Wtu4a}T&Jltp~!b2wslVb)eF%iSqxMiRwN#q)QI!G3*spAu9yoV37}>cVm6 -zRS6vOHE~`4Y)1c3;O=za_)yRa7>GhJCH&21teNXuu1MS9>)gdCq+hZ)Ui7^I)auqo2 -z?}R^Ho=9sbB0lT~?O6cVh}5LPBC0f6SlVyLg}Fo|L&^htIOOHF*MZOYHDR}yq^8um -zi?$S4*{W^Sh~-6|-wg}o6l8$}_HR|F8DIKh?#DADJBaTDEl+hE$mVDoCcuT()Q=m} -zR+}xmRcD~#vl%B|UUg2O%v92^_1^3)0hK?V#X!P_0CEb-D*EXxnkr7FqN)s8eNLHY -zx^Cy2Xvl=cjW(dv%ySX(t9>k3v`74;t-d{doRC@NHKF{v!G%m7hsl#>MTxV_oT!+{h(Xa`Jo>l_09I4PP(J-!76(h8 -zYio{b)fBQRlEUXG#SSFJQO);2|My -zXrmc|54SfgwZmv+UCjo+VT!nS5dDVhKH%vgk3W0~zD`_BfCUQ_A*fQe)ja{W!`8Sc -z%=bq&i!;`k0rMmVj1CAiOEsrOq%!rvql|@wiE0Gbxn^t8in*c26*XQ-`Uy}0BN_=E~O5m -z5iY2!0_bO5#*GT-7_QXwLV?`khEzD!f!BZaK -ztA-Xce@J;WOUk~9Cz2e%opwlkiGBPuHF!eEJ??o{m-p8y8%Z2qpKsrhPI@BwkcI5g -z_VC6VNHR7oVc5eDP+$ukR@dO7O%$~ItwbC8^B?%y$#<^nm_4)V^U_9hAuZf5fG}&e -zms3BVLydYCH=cO|w?;c&74t`FZPQC&WON5wG4`jq`UlW<$t9?sN+?lv&K~`_olX4w -z`yb#-*UUN)o#Jq9Em}2>OM9*{TS5jBkiCkJr>n!Es*tdx|14K+i`@RB@0jRT^%S%a -zmA^_`CHN$o-Reb#sv|+N-Lr{zAJd*wm-o5yLUz>2x(z-jx@6jBZ^~vNxnRi?q!m)8 -zwAw1GNz<_7C91YZy=`iE@+PyFDu-E^(#oG!6+vx8KD#yp$Nz1Ht`=S0XxZ_BCF0NG -z!nlFub!fSp+_~*!JKh2K=mTP?qNO-YHV@?wsD?@+DrE;f=5V9wINvY7$l+mDk)D}{ -zg5Qg`n8=g>QU@sPt%o|(E>EzPc-1KGcsJ)DMNj^tn>o?=@1VyQ92r!2KJ6cRWrUZN -zQI0^y!YPezTHb1x32jv}3oG5X=WJ!yA(N63#BKYpxjSzeYCe$@t$_wV_jbs6jRuC+(`UAc}z -z$Qmnk59Mt6RYroKK|C;aQrj!K3;IKKY|yJe4EMcVHm`JzDvO3@gr!pXGjJ=|t7YwO -zSDMpPkrlsVXCKe3nQ)^El4WGRTzV+*1b|Q>*e@0?KI8P~@Ko?8wTsjly(KUr<6!KL -zrMz7CG?IQOB`M7_b7VltuoJ`I3uB|OpEP|uNiETI$(F83t!EQa>W`MheEfSwq=PO1*~>KDu=-&VALsB6u=(x?2w~)GBD8 -zCUqiluA&}yb}?&ILji9or(JO8W%vH7im -z%!a4D87s~GB%4qw5X3ey9HIqN%w@FH8!A2=v7}rT=ByK|Zs_%v@ -zIfcuJAUVudQknCDZoR*@%c>??(M9AaQ?0z<$%(ft&2xS+1#k>nWptL}I8F@KZXDlI -zX%d{%mb3(4!vD6(@W9uV5Ah8)ZDSSx`jJ*l4Hv4vPA_mGvL>EK#5V(c8i<&DMXAUr -z^C->$E@YOJ%e^K6;(V{xyp)E3IkCJ)D!w;$j}`18WZYOchWfg}t8^LY699&gG&}1Z -z&sb!sVk9WLh+o&M$Lkn~I`h%rzUUxRl2M!=N0+}((kF+0#;H82IQb`JDN(PDcS0rL -z7T_STnZv;2NlsNxihk$=TMN3>u3A0;oB>>o%ZSI+azPhvCpvMUc4Bib+W|0yNXUdmO&h32}7m+};Oj8Fs1%?-{qYiU>_@s<0{r*OFP3?Od;rJH+u$Dp& -zksW3JWPC*Z5C`e(6Z-6xL5>HAgQZYx2>Ut)uFK!5Zbg)=^SA__yKe(I$2-HwlVcg) -z8a!-IK$YyP_+B(HT@QYf-zylk8uYD6f%DqSLW-|UcF#j@1)0=dGPQz3E_DUz;h2lc -z=!0<8_TPoCtN<7lPl%R_%3|zBRG=&Li}b?cw~DM?p2P_zmpT4TU^Yl7?bPL9NE2|44BL%u21#G}ZeY560%!nS0Kb=w2 -zan4F*W4YkhjZcB%BfWSlZROIG6j{H*o(rpCI!bB1G@*&!^bRZWmu5|PbJn_;63KNw -z5af}{pb0CH(ltwxoX4o0^-gf4%vQdGEQ%Caa>{?}uXW5x$#w!R^zxD6qwTEQY(Ch= -z>J&?ivVoVYq$NkSj(4btBuF=*v1+d>r8s4lEKZ08B12(f+`1&Y?-ab}y~ZYbOm)Er -z5Qv!&BoZ?X1*Jng_&dW~E2zv+qOZ~>r#OfZlNUsXaFiqn5?p`B$p3(NYru!NPqT~h -z>56h29)DK41(Op=Soxh}&)75_+Os^~Baab(-;1So>8ol0CRfZicOO0?&=pk`mC)yd -zjo`|RMR&p5EJRf6USAaQ_SzH}*v5zDyn4F -zu>ZZq9V;Udlacnteh$BEWGh{ZhZ>9BHD8qTclzW2j%G`t<%$vZZqc*w$RI2>T|dYB -zFLOhL4xa#WBmnrD{$2YNp$Y$!jRI7hLi*g^ooJKpc8)+B0Qi96RY6wv^U}WGe>6EA -z<*%KoB1J!LgHdDw!Tt3r*C@MYt2;I?EM{@kum7?Y*g(JEDb}r2i)%{cA=H_yVVvMh -z0_irOC1k^K*9tw)f?=K$lS^@hCVchiYtbk776i~}7Tq%q;b=k6@>A%Ba>Y^CQr0b< -z2to5a-NfQ|1+{_wRq&nFNT-QBW5B%K4xYHHs^~`Qe -zQw4kmksxeB=B3|DR>X1$UO&6Dj&kM5x?va+Lx}p^fg+Ls27`}jLfz>W{@lPq0U}4t -z+~T6At~k$sPapX!%=pY$Aai8*CSTjl+>WpR#2S>5s+JkYd$B0V6I>L5PfHybz3@1? -zUUVD8gjYHbbly2ZEbjT)SfFS$;C2sNXjO=o#s9>N0Or?vY?4RN%eR8Il&LI;;BaT9 -zhcsa=0(`U;I&jpWkP>cO=^9xI2Va(|GhQ%Y48x=?n@dFU1D?nUrnwEUYJd-R_rypC -zN=ft;!=VF(ML0D6F0$rrMrwhhE;-;OC2tXMu_6A8jp9{fyQ{x^GxI80p*p4WX}fmX -z0)Zn+8&j*mMqB&W(4wf^(~UqC92aXfa>r+NgS*6@oRv<^kX%co?WL_^#3wRN+aY-d -zK9}&-1z#cC7$Cd47q?oTLFKTnbOj46P8lYxIr`o{P>~n+%Y!BY^z$jn7Cy4|zHgp_ -z*!rkg74p}TKqa%!?tk3He_fRG2*^qlLCKf^w>(YMjd9d)Pz5{O)dY?(;_(btxlYeg -z{#o7$RD8M$?eRXX%kw>#%gn-)E#4M1*&YY-sX6D}<_5hbZJENZ_|;PKsi_~L;@@2; -z30t1l=b0eFma%S+M!`P9QEP|uUB-KgL;7`Sl?PRi+%d^FYNZE5TbD*y6v3gZ@_$R1u}oN4OcG+;Bvu@MuBa-VSW? -z`UxdGi|9114KBNdlqN>Cl-6UBFs?QE#>ZH{R8xRWnx-xFaK>OxVIsD!*Wb`K+JMqQ -zIz(8S19}CX{T=+IG=^hnAh1_0JoGpXxaVTg4l9u2$9$L@u -z_CcmXOEfN46tyGUOKF3qm3bQuVmiQ{$mIh(L#?|cNWrL*yuwHkUN1trjAVU(;qB`^ -z=h^auKuywRGtukKnJ$*n7;IMP4@+1Qr9oTDs??O@j$v0-!jlu$T*6)~Est_~mTB8O -z`4$dlP`QlGRntrQYT^T;El$f!DoT&jUyy2hZ`pC6zrqLUz%4xv_l$?0P|1vyy#oXy -z-9+a~XE*wGAUdT?PE}pt!mdCd&(GJsrb -z-B8dWzzUSCXLF* -z_{9D3IYaaYEFJ*utwmDuE9vS+KU=g#H$5s^xq*JZqpXswG5=Ek7}8Wi{cW3&Zw3^y -zgnX`*6N(be_9n|Pm-5C=3HIL>nH$?SIb_!VA^#d31$x}K$SS)IDi&k>vc>&}zO6)4 -zP$kXnHrC$9oDcVy)mn4RKfOqvWn2e0xZ@1d{p}T<5*o4~xVG{j1-ghrdS(e4s#9fc -z`c3yZ=d7R$mlq -zc>^)GvDiL^ppGCUVh#S-DscLV$S2ZcDx3tg1I*{A>%VBzwI(eKu1@mOXyAMP11hX1 -zcYqBAyoCLV1}5RLGDw_;{FJnRGoscMLx31804FTkv$wW>gxU~J6Kl0x(y2sxGWf7= -z4H5yb^kQY^EnPxbw8)yG)|Nt$=f<2?_prnLDevDd -z5Wbd&=q|!f5fj%*hmb8f0iT^Px(d%g0#^a25T8n6qD6ZA&Hm~U2ap%q@*KA-CRapt -zOy5E^us>dQMqFnsm*=(`((&#Ss~~sh+W+f#7-~-YdQkixAqBi -zK)tvg%ALO1_J5HCG3={%7}u=9Tn6tGmZ!AY;(@*S!y!prD*$l;hn6_bJ>(s%5UW4K -zccyFgD;P#MWBYm=h-XND_+jEb*F7|0f@t~YeNbm2M;i%>YxhTGf=vOE6kD18`UD0~ -zWfX28+!UulY59Yja_+z>I{8DSy2a-YNsUYXFB|yUfIhMml48zoaS!^VfE$=RIzpPr -zje#Sx&L>zW2P)?vl3m3{NhRHfl6KnyfT=1LZ``!Qz$+NUQ -zwKn%JNAu5TkdQE>-ZEk|hm~N8JeKgxfOhwr|9pzs$PB6eJ-eb;zqMMEqSLx>aad20 -zfH^#mt#*HS_^f6GqL`$Fbm=9UPt>j{aK!w#_8v}0C3D{mBdHw^B1%I=L`?pE1xSWm -zSJs{KL`Js3cuN#4k@u+*G#JswA2)*XtyKttSU3RsQ7sHLgq%^ss)$v<^|!hy|5;N6!t|qS-ZDCEaKT)*29J%_*>)_e4t#IUZU|`pF68rj-LH7wrVZY^D_!%3^8s -zhs>E95WyQ{fCLZkjHaAqS6p|G@v}Yp)BW|Up)nU)SL6Gfg7Q%lBXy9<5}(nMTDxHL -zXo~%?Vpem?)AJq0+q+kxX}>ja-1(Fg!Pb6_g{1V7mHl%7zu>XDiLviH+jO7V``z)M -zZ+2=%o(yYrzI{65t7&@YI+yL+lIs!bJjoYxUlq24C+6oP*&3`X_?Cz6{^_w~V++8d -zfql(oLD?K2wRtK*Fuq(5`@{VV!C9hV3&e)ac>7@WZU2}+DWM5*SU$LS72y7?zoSQ& -zVV-B~Y(<|1-7epr&5-=0u}j_|!1*3y -zXP}*hrM+&+-JSf?e=C|qKhJ1iad&xVODKx<`45^L`;SkrfDcI3!AmXtVQ15S>UaBo -z`CJbxR^HfqRH#PCweNOFWJe0kKeEl|I(cf;)BP)mX -z{=PEqfum#Y^@2=HM9Sf2vrtx@?fnBlAmE|91#jnG+^12BUrhcvwh%j|g7lTX_LnPY -z(%3_Mjg-HMX45>3n&QbgenFFY^3Iq9=oNNmg*Goe7@E|!(5!O$yqAz6r2ckTj$7Y8Zc_*}d^!SrhI>buU| -zK-bKS0brx%f*9I6Esa6XzJ~-Oz&alAxfVqzC#mzXOL0VhfwQOsh^@cmf=#W*ASG!_ -z>FN%2Te>fQ`e+MKo)1RCL-7RfL&5R*leNTe&zF$Yrex{sP_x2XB~Ub;N{O9&LNI^T -zN+K7t75T=>B4&!Q=7id3HsZ`va#fngSeoC>Wj8P$K1~H7-37k@lr^qojy{toRkqtM -z&s&VEV9?r9KV&b!V_h1?o{hLO^1=TIdcePrRT}ZAlkFILfEE_Df*Nv?<`=)d^1vjs -zorO(tkEQ5XcG>l`&KDjoO$bs>Xdrd{Z%RDR1$ -zH5?qp0O{z!&LS-U4V{ejfYQbA%Z@mv4WR&h)t>9)9SOUSn00B{_^j~?AL_&sib|{? -zKKi|J>X&JL)TDtqosxOSw96#RBYuKfj@fZPH@s!A>1vv)0prv6R*yqVylgg -zzdJq0$D)MUr3p^|!C5An!?k~WT9jjKQW{7RB31tQ1dl#itp~S3w;K -zo1Ns4UDQs4Sq!lr9zvf6iV^GQ(-`vwX9pR&#qwa$oy9R+iD*s!N~eZi3Tp3Zs>K;D -z1V5{1hYgv07C(edIlU7_df}?eD+YMo2Ojsp7eCUnt|WwN-iCY230XPGm5l_79)mN@ -zJITq}_WSaiaP!*Pc$A9$3tGFO$&dc-sb3+FC$!FIf(z+%_<8LRlRFb+4@9U8k|gx9 -zO&6IP8P+^f=mwH5lJP5QeHG`pfCeT&C}CP*2#fKn#y8Ye3c*9w``x8r{~nN*oRnrU -zv7s=LSa@e<0AbodAZt;&QYH;YAv2VC$2VWVaPGoasz*hhSN4i13@vrE;j!7s(bFWjD(Nl)a`Ri8z^ESicI-f==rW*iz -zs3qq6Ib(lf1LUXNwkjF*&j?WqH_8;o>A#9YlH-*Td0%No*j}+ILL)~>)|dnN{Kl62 -z5$^G-wa=)Tkxo|~NNdKUffxyN%~a+-^o=*oIR|zi<84Eq6|_+kE^;J=Gr!xr;7CkF -zYFz#}h7eN6;q?T35`f_thq24JpAqXME)|^;67aP@GA+v}FBW$|sN>z(Dw6tS+Fj$s)!oDy;S0j7$W#$YaQ_G2 -zYv8K@ltp78)A~Bc+VI>QGF}<8y(eXJ+PZb%Adx3A^=gnc*oaS^NKItOF~$VnlT;); -zpvKb}=@zsIxo@w^F50{AYYXszW~#99B%929t8;76`_~L}e&Y+SYdn2&>i_uU-9}|uN -zQu3)zaH{DPl?Cq!D@^aVKVG30axy|ZYtx=QZ@pjvIY}Yc#JBI{NBk7P8-JYX50&@O -zXcn;;V-uY&PyOe0oc?;|u-k7ur@vfCT&`iCNTe(?FvnsheGqEo$uEz}P|9J`%>0S=o;JP?S9W_In}a^{n|H#Pofc7*^euFSjgAY$<2t -zkvOS-X6*$)paICs=6yCB3Kt|F!pLAc+O6k%3uF5?3CN(?e}W=g)+5=ng-r?hHyZq; -ztbI8s_je`a4HAh(9sN0+(ER4emh7ksIiTWW)Q)s;(1Abg=oTf(fQxb)$x5G)h&1$x -zg|=yurEj6NZNWJMdj<^gEm>u~?3VZUf!^XL>>hIM`drP+)(#dt={3=-Ldm|kd)=B9 -zXuEL3+HohKGeBBwhu1MGgpLLej>lcuE<#W}l@-OG$0;b|=vSTG+|nuz%$KTDoVAyf59+DqL3=@lD)RYEqj-!7>?j= -zvdG9%7=Go0ahx#1spz*U?`}L;-cxc|=DmfCZ)>reV{}@)u4I~Qm<};gK1A*$jj#U~ -zSzvsUvs4-(--$BhlH_wPo}9mS^<-kYGhA~BaW^Fpo2ofXs#*wZk3V^&8&wl~;$HrUy|rGj%-EA@k-_>`zLuY-x{zc;=s -z9p0Qt^c_0V1&zcPD1^k@v2JZ-i^PFA5SViPH`{18uL#rr_BWb`%@cL{6N}e^e~2jD -zo{gp=F5D2SG?Uy6>kUXT{YL9X%~eGb{7tg!h%gU+$mPaF(5H_SuK3_YQ7=F=z3ElK -zeg3w6;)0TSObn5=J93rL9m2agf6Hv?jZy(W{PB@kMCM?qQ*Ut8WGE&Xw@*DS{%tx! -ztO)7C;?jEy0{eNLY4LHP_X|)O&tW+0IRU5%xCk7ghs(}b!xX#t_2xo%k}h6Oy%i2- -zVT%QU;vHbhfRdcSnLtSXpWK=ClS4!2Y6{WU#2LrJr3Kt7m&0OvRare}Z_7L5qaCj# -z1(-1Tj~2FCeOxskFHigq&uh>i3s-D3f?!u|scnC}?+CMjwxP>>7n-um;s#0>R3h^3 -z&rUHHF+(RcIhCRNHY>t3fd1|UM)5U#4P>O0Lzk2BA8-UAuAX2x{_3Wg+SguEZ_74& -z_)DkxCzW6DM29p1YYfyGP}3!LN6vFp8go|TwDzO@ARf*`f%h$>uj6os)Mdb5z}DvX -z6l>mm6#U^mr%X{~^|4OX<4$;Q*k|2+RFM5$7LBWNT01uXO^`MH?++)`uD-o?Z3{j~ -z`89RhD}Xco#5fVl@88>-IKI@GcsQEd@+ShGS_%as%#1h7O$PAUr2Ok%i^%tlIREyx -z?N8*)egG_GOJ+Yz@-n)dgd6R^%pfZ*;qbJHM1b7C~i0C*;(}%AOqMfv!SCD -ziGC;cm*qHP!RvrQG~n*p`8n6+0SVGw8}aNW)$jJnxgJ8orl96}SqrI_yuIV9!-k}0 -z;m^P3KlrZ#2?D@UT}Bjt2kv~OzxjMlV?LwO3cg#3;f78QYdOT~J@3Z_Bn0@*`$_Tp -zO?x}KOF9xU8csBV`{wYyMT~@)$QN~t(6Xs!j=Tzcve}2UaEMrP=Pdh@u49B7tU@Jm -zr~f(efow==c333-zUnsl*Fou;`Luc8X1O$lVzNH9vA7Lqwh -zcN?vwYGN=AGfktlq%3be4~_xRX@FcO5={1)!VkT2u<=|uAn%u=H$?siR@&}ZZs%Q)d9DkB_puzIbkdbH+R3w3)~$vmTi7quy0})mN^_m$4Gi~ -z5P_!u=&fc1oY%-}$+spau$+ktd0XM$=}stWaV -z>o$;6@)5qEWP(Lz02KY+{FbM1z)upqR3X;a=<(^lAC(cjGaGc$=NO)DKoy0dnhY4h -zH5bK&vMoE2tgFiGRk$cIu)aWS5lC%9FaYxCrJ8z&8M1GZzUUpJ;DOv-%akz5kNd`j -z?~M}Qfe#JF#j)tebh^K3M1hY(Et%vAWpcow7vEo=-9Wxr66Ha>!t53{nI!`3=BNha -z@lC=2x-_&@WlwQ8H35M-$hZ6inYzNGaSq-{u}cRi?mh -zCaVA#z>da#WvxH6%F0bk?aslQ;mVs(a+kFH`3smp3(K6hC^boQ36i|LrjI1=28M7d -zyy3Ng2+G#Ao_RXZB5(%|!bqz+zvXKciN{H~~O -zUHUU6VTu<*3H)u7leG>Z{1Dz*-Wz#rl~`zLY&!RpWUqC)-@!H_ST5BFamsNcww<>q -z>^oE#s`nBVi%A8JHi+Kzl%;78sTxlR*hL(AjNTu=+0^AJ^^2QE-WIvCgeHAZdN}O3 -z!v9#h%BZNeFbdM$(%n+h-QduzfYJ>jE!_<&LkuM$T~9ztQjl(tl9cXFX?S;L{KZ-` -z!#(Go{9^C@6&=x6EsuYXJNZebE0ET^3Lz9RMkS>OMMsw6G|DuUsS^RQ*eaZ`v! -z|MMZ!4Rj2zPs#|?Lb#Uz|8^tUeQ70bc>5C;TXMxx{41e@s!~qKO{(<_NvmN0cwnmA -zP@*g;sRG{7Xh=fkU5Esa0M63zE@b=QWWs1&+U56Xa8;k&IrT(bIsIlY90bwZT;DX9 -z9mCAQt-Za}Jpm+#fzh9uo{kI|820PQ*Z+EHKmyO~EZC>3rX1U3DUXT@vAO}%1T|O- -zNPvwYd0Bz5HJz;&MVcaeYm_aQ*wy_Vej_=dJ%k_y;p(4vK{UqpHQ1>~1aJ+}!+D8x -z?VNGo;2NC`C-s=a6BLwWF0{+e>IX`O(UKv^jAG14rOw?`^QHh_e-N;Jo&x?o2Io(5 -zxpp22|Hh?_mrU>N0=WD>r_eDHX@Re-;PbP{PT;-LF+knH+)K!>Bc>r-*Y~ouJ)1!s -zfu};W>ki-ye-@xK0qKy@j{RI#c)Qs`A^Og%Z|UO7iMg3rMW79m4eyi!4f&QBIe8yg -z=|{F0$pXmQWPg5bhw_CJY_pyy##AZ2{S#4It3YxQ2B^eC4ayR|PoI@blEri4Wo0l} -z1+Jf7*>Fu$6SVQ0Z}B$Fe&58vmr7l=UaKllacY*rr~tq~o} -zg(~ggudh5fWIZ|rfL5QMPthBVG}53>D32v0Lq1RYXzTz$17K>cg{KQXJ@21uHnBZx -z?FR!`2;f6HOH>#8(bRXzVvIg%t_)o6iPpt-OiK08K|I&Klt(19{NwJX# -zF?GXrKB`Lh^zT|At`@jM^Sy-;xaAsr#;uwMGm}I*f5k<1yeM#PwthCb(rQK3?+NMQ -zQ^KrXwNs26f+I8?td)aA-;?Xt3>`ijcvq@9&| -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 -zAMfK5z4K>&4yHBLJV+_d1b@GGkcfsi2N -zNXq)mA0V+9u95m!-SuWplDiv86aUaJjlg8|>UXR!xD4lWzNMzF&3!t0&aM2anw6fQ -zmj4Jt-w#72(dE`eWWvjw=ARfq))b0tOZ)~J@o8)_WWcLTtTDM -zZbb?#49L+apE+#V#wD^@p#E9ekHL8p;#z!m&==xbqlaWkVZX-Hi`W4k^LK|gB{+4~ -zXKuv@wbgcD1PG>zOYS}iS)_4ZAUI~)Pg>VJFjc-kwJZ4T4kR;jWKJu|w!>!b>}v-N -zPl(c}Mkb-!&TI^d((+^W#m$1%2mFCi^!uF3`8p!}z_CaQ38I?S30I152*a8T3m;NX -z`;rfEKMMLh-0a?gB7^Q^=JL%t?9E)uRTVy<_kZCsbe#rJJTUOX%EoU -zApdnn@z*0+F5yQw!>86?P`Uwddq%9Sst)b{>P}p*8vRdJBjA;aX|ws&;lB;wkm!SN -zeE+>jOjkHufU-qrDAp`k;G4-a-1O5KEAea@AZqskU&EC&sL@JL)sXi&&cHnMsnF>94de>D@M%h(mWPlc>%x25c5XQWA4P21 -zD_8n!Y90^LafI`K7>l$<5)A#T_X;vK;(u`KR@h(3Iq0>$`v~rA`_$Ap|GD6okJSm< -z(&7b>`v;7F)ge7L=jjLE!UGXv=8jw|cdf=fa{fABMd*nF9J{r%an=H)Y?b329VOd+ -zce&4E585}~Eum-CI|_V5b&>bH7J8h$p`AS~>Ys7dG#$tb!bZa7c85N-%EJmdI5pD3&4g>c91n=9E@M@h@9-_EDKPC -z9NT#Q87$_0@m#~|waT#M-?UL;ilo;pE9A!5b>2nJ1X5p~PciujqErj~4hkUmn}r-p -z!EGS=bDQsKEIxWXO9?p}o1MjGNczM9Z+s#`)K(CbEocxjT_wuZ%U;0D;*ikxalYOj24so9~&{WduI4kT?$m~KS>wL^5ph~EYi=Hg(=H#`+% -zO5g|~(!tJC{;OgVluE8_sI~IJB;ntd(`)CjY;O((V~AXE#Nvo}n&=H8&z3B`TWEpd -z06I{5dauAQt%)1+=`jkcQ*|&cs7QdUGoEQ`507$Y&R7CyT-vr -zKwYzTXQYv_@~a@vB{QArT^dWM4umq&lM3G#aT#47aP|4yja5?V8=FP#-)vsDF}S9< -zU=cQ2shl5UytQoF__s?S!+wP;1qp>!R|BQ4>py&>Exh%FN{p+}0g?Sm{*2CoLQxo@Z%f!LCkM -zj2-+JTZe`&;oQq2s`Y0n%~{s|X7)ZXgHjQx1LrHZGxyOAe?#-3uTJ)^&1wZGl2j_G -z`13DeKePYpa_`*WTkVOQ#aOfAu1oQs;>yc{81<5cTocv%Sp{dwfB-TbZvUTyJ<@EqaWq&rKz&aUW}}$&S=90okKH{?o{l -z0bj7uau|CmJnt1yIUzz-Ot|flAvuJN{1q-=|K6V%U{S*^5;cBalr(j-x%^G;j{6SR -zkLL=BhiH9F=}|n2KLQNL_8m5_PI;8d!Gl1`0uMyOMbu^REY}UtX-V6xAdtn -zWQ{Z22O1`Y$1-0zm0vasB}nc91_|(!$>1wl>*n~mzRKRttl#X7bMsT!r&uV0rVmqM -zAb4U`gUwmb0gJtY_34XjdYSVO$KJpsuu@{~ejnHlnGAKr6{AnYOC5e;#!EN#sU?vN -z*-)*oFVGKJuA$`Nqh7XS47rEybx9_B7j$Yt{@v7}&)pL6_ri|lY(9G8j9W#Kf7mxr -z^>r2y@EOg$83QE9V7zza8fw0K?L#{?N$#Dv>iGyxbq}Ng>Q5xNoT)7u(;71HA(2b( -z-UK7ILQuV1}^vEPxsuilp;xe%&n -zS{5m_Aag`w6_8k)<9VmAH8$B8NyBpH@!y7Om28nH&%Y^54?%!tfQ-(_BX-t5uEd0iZ_msUDs;>$yGb(yXxemK -zw^>W(UBqd?=APTDHYxJ8UgkH1#){OGzDzUT9# -z)U}hm&@#eCGB64c5i7Tbs&XJ|Z4Fwf=O#=T%WU=2QpfO!t1}^9MtsFC-eWg((hCq* -zYDgv$Ks8+zPG?{6=l;;0>qGa^Sg^O>GNYhaumPVL)^Ig=a@AIwwO{3pw<3*@uAa95 -za5z?HfOm2Ti@TE8$N3MoPQpEujm6CEWghxd*DwN5%lku$bF+jdDfrc+qH9HWNY?oh -zDs|}ugo%0?%V#>Wm|Bj9XX>ekf{G&_22GB+g=Ty0x`B*MHg}>O9+6sx -zxD#Bhm5$E$(^qqF>Ks0qR_E0-?G)bEXTSP$VH5aXq8q^NU8-$(cTfs%&x@VC8cZBK -z#Q-y`4XsLPEQ$zOORg2*0QT1hEF5+^8m(4ZmrK+~N_jvk3MhSXz&nxQRqLKFz%ojx -z*1db2uSG-H5mk4!lucQ7y=@E404lx*t=LAAdlw9TAe-yIb7TF0hBFS{SVuW6>IIV8 -z$9A=V$Ud#)Yhu*!p3}UMdNzpW4^IDGQ^^|u@3)+;*N}NmgIXX_v2xm{eIi@1D3Hw$c>U)Yi?Oh-i2;AA_-ovWnWrkBGK3~mh8bzv-$XCt -zb{`?~&@pZxGU{)|{UC3YWsG2;e*42`{rl*{e$SLk -z0o8}@hY)As3HTRIZ12KJYF%Y2ynDt&+g!Fu_{KxFbSk!t7+d0zv0n=pHL%8-D~}q}UE*Gds#T>A -zs8{w9HQFwVL{(WhF;L`ITtvnMY@B@PNt4`xwbnzH)MK6Oh8OfmxqR>&Na@3B`_ho?{3roJ?Nh -zM|{ir$WG18?Ue{qvjLs}-t+m5#a7xK$-5SG!`3e{*wO&Gxrd%0K=5cm_2W>iX`YtE -z4RLTvgt})Ug_rWcw!Ew(fLs9nx2j4c2hwNFcG|=Lo^+j$S=15rsr7jRXcmakGO@-5l5#k>QAW% -z=N@&O(XK=2$^|Eu*EX=m65h4gq_V|kcyUwK9+aHO9bQ)fZiHa -zua1A$kcjP3Q1M<_8^Rz89IJfN73KM2eq{=wM -zC2p#i=tSOseak}k6m}M4tf;60Za&xf}Oiy#sR7} -zh)4TWKOGSNe4?ZxBcm0;pBUeXVWg$t&j(*LVU-}4sGGh_w@t(E9VE+Y^dhdgv~jGk -z2Fmnk3sCYSRlPL&=Lz#in_G?X;bYela6ZM4k@S&pu@IAeoir4<#u7^|dU``=0R0VM -zKP7f@`5ehUVZFK0seD9K$t=06Qf2k{SAziEX8l86~ -z4X9&Lq4y)ItOWB=`eiBr906{FipFB2kEAJaBL1%wiCwC5iUH^bu-_?vT!$W$i{uwE -zbv-GO$OHvYuy2~ibIB&B{CI+RuwKQ53`Mf!A)W|DEitu0g0#vO0^Za@MJs?cesjZ~ -zyJi0KEGkr|Yysz*O3^Uo$0YljT6o)2)1|I_pu=1g_(#|I_YYwSxAp%vv>>3vb>;hR -zTRe}WG@o|$2Hua|73CoPJoZ50FQ!l}hSE -z1sj0%5qA1w*UYB*$Ga8_m912$rvh{W?UbgHy7OJeGUN*kM}r3 -zZ(xR!5h1>x{RJlRlYua%*;yJT=Zi7o=}Op&ZBl)!{;}-oYqoMMZT~Hl!#%BC-7_KW~!fep%a -z5dZa#{WR=&F2QlMPe4}S{&YNcsVLFNnSNkkW&)C!^M@b4$K*xl<&UzQP3JlT(w$0y -z@RADvwB`0M>a{tK{(n?e#5kRmC*mVG4rZYkU=QL5ckIVnCDa1!SPdmp`0sXL}7H-0Yb|Nf*|aVUJJQnUk6 -zX_hZL!NCgtS6PT-HOa%0*Eh~?ngEIb*tULEh=b2_M(9Y;tTMHYw>`SsM<<+Pao}G< -zKAy;WI~y|cP^*~Ogjq)2@J@Dse842@fsmW(CmJN}T+d%776vvyg2OARM!PiT}wA`(nM}%o=+Rkg#?h4af!9aS;Fx_g4@0xya -zF6GrMdZK}tvsl-S|M`|l!m+UmwC+G2VlEl}_0J$)Vq+B{a4!){_6qTCxK$SgO{#EzLoy=p6uc0Pg(Djf{?1RaZ%xALrab71PeJVImeDWDYk~ -zxsZM{>&Vmr`(e1ds8M1*y7OMG_A&}&*+*${VvSmo_AI(dzvI;s={o?c0fbF`r}>Qn -z4*;&iha94EHcmGkTXWJ$Twd-WNW3g$0C2y1|^)JwPw(KNRh@96B*T -zJ&iV?xvSwVtl$Xy1Rr;1BFz!o-}k~x&%7Y%mCdbw`;}1Xd^;I`vrkd+1+7f4*>y}w -z8*#YQU?C^qZJ0Ckvx5dUv&^>;5|Xc9O&|0#g_U$qhdyhD*(YA-o-F;F3!{^+{y&#> -z8$M=eSgp!$;-Q*_&H&iF2#~BIALVCuk$npbce~uU(U{J#+bsU1(x*4&8vRlLSnE9t -z;)rO2rs$n*Xv!#+ExnjD?bU4w&V9b^z{z%wc=^&`Q2eQ0UO -zAA;g@M5^@|YG=Fi=XKF3!s8mXwKEOUuj>z?Gc>T=PJ-KJtSpVG+2SuGNu20(qd?xT -zvn>I?0sD5svWJ}P;>j8JdTRXJT;tyeK64iUQ>JHl@Z6?7pSvwzSfhVK@F5`R{sG!# -z(h=AL#P}>F)1G}EW$;k`*`O*e8d^N_T1(}eRt>6xVy2G4X8)w9;pV!T>u>O{;2o6> -zCtIYqcWgH`KrX7yugFq-AS2k?xE)KfQs@{W&Z$>*Jo)*a0(^)G9s#z)Ykc#=Qt8Dh -zIVuPGt@LjxQg@~*llxK7LL_}81j%R~50(ypju~nsAq%?7i5G@^(g{_!bame}dnZZuMF?t)Wvh^7_(gj7jk$IkrN>xQV1IJS^q?v;)+jP<%?AOZ#Xd!ueLqgJ -z56d0P=D8vm>db!ynwDHn$f71WD@ZvQ4DlVn`DNyM^q{i~`6v_t$ -z?)4apMOz^eef0ca>WX*`cJ{dG7B|V2(y&KDKtZeoi=oZ=Lf>xuLFs*p4Ie$5XX#XvR@|BVB~u7S2G`x~r>o^U}o&79w5#y{x8+D_*Ljd3?-hqWCbk -z^UX56`Ku(i;m_I~sBoj5j7LeW=l$*k5SoZPixA({XHpK+e7%Mru-~Gk_8bLokj*2J -zt)-sqvWGg^*pqkiFx{c~-O&BT>2}ltX)Hp)nW5yK;+97F!2R~H13;H0|sW# -zhVrAyj{khHVCLvjX(8WK{%MK>R2V>>z}VuDUVY${FX9`hRZLA*`kI-@9}3ic0Rkl& -zHYOHDgph3dm(Rj@47f4S8?=_(a&_37$sE=;lUptuhbM+mr@WP?d{k^)_l-IK;F?Aa -zZqWclICA`@<7~aG6EEf-D7a!G*yZ9YP)=z`vN2BsQc94_zLM~fZy9oi7%a5_D$u|nxyVP`)KDcd -zEbLh+uM4M6O%mI# -z&ixA4qEP{K43>O -zeOIE79jz)XqJkZG8dEvOXk-%W@<@suT>%#;7@4+A5cl1Zv^O=KjRT`p@rO@EK4_2C -zy*gwvsz?@3rl^;Iugc5s7fct#*6yl8V7`e|l*XvRf~Q~NW%gg!kTnAe0Knn?#%XbU -zgZjb=Gm@Bc5gk#$dK3Bu)LK>ZNXs4z*R%)a61_J-jU1c-(Mex)vSl)~owvom+7^SM -zxtvu$a@+fjkXoGRm2?{Pu6<_5-M2XQmQq{iePohzH -zxKC>UAYyleh7(N@QH>o(`qDt`P&y_ZcpmWPb@EnouAq?VCX#D0fzisDg;Ulupngmf -zytDH=ZIl&#j>}KzzC7Ip_fGzVgy_mp4U;Q>Vlw=vT)^mWlj+Qvb*JGWH#L{m32yvi -z|5H?qe{JE(NEXbbvwvd~R5x0fU~Xju9ybW05$8`Irp^0>2eKYn?heWI1U10bevn0yTN+dCHV637na#kN=dEdL1+9RJ -ziVQwS(eXB*dg}UQV{JqHGK2etEC;Fl!LGs)1U)J~{}-org3DgU?kRuFH$b!>@NIO8 -zkS}{_r&~0dp3KJ#hCHuSYjKfzzJ%rlqsfL73nH8q$Vbz&kS@GwlQVz)%P7@%XKgvC -zp;!|G9hO~O#d$B%AA}(J&g>Ij`twCgjI+>PH#VHFw0?(Tu#kPnFgKWAy!upCbN8y9 -zt>EXbyecvE?3;i~IF%fN`eIWJbu#^F9A@^9Z&)_k#TfKQ5_+VheZH8gXsT(eYf#WC -zP|IcI^m88>%}p3%vvZuwh9pJ|r)d`20}nA4v>5=O5$WXTixqJhjt^Aa{Zd^E$(x#!%p5rtvHlgT)v;+Uz)ajakH&(An}Mt~E4A~={wVaBzmQ)zC6 -z+02~aYwn<(MnX2HJn#6E+E6{@p7&p28r6XNO{j<@YG<)nv-HTdcfAz2qG$Ac(1-lA -z>qBicA0ImU5NOkW)xC!2TtXGVd{}+DH2iTtKJY5dsy@4UiG&i^RKU$OypY6EMzL2{ -z)7aT-YI6qPX{PG!G89zTC1>Yd&DbYY=S&z}%_I14rElO&=iOHH#ml*kWoCOMg00orP3CxW9AxD~85ElO -zVQZYlPB!b#0T}7kr~JyJSvnq5?f(Q4^@+Se -zqvcgKOSI`saiu6#W*9!7%_!K3*wwP;+S>3G;V;#0e7`pDN}W3t|Jj|GVax9F4>oV# -zJexchFAU-+gp7wxZ`n%=_q!hbLqN5F<-mMyw^!^X3@d!!7U@EteVK@Z -zKVbnUfRsD+Zu>|s0myv;8jNq#gx4pp2Eo#`)I5ZO+3Eck4t7Dcp3qb>Ae-fPsMXoX -zZfAUG_paqxhu+k$t-vCpAba_PCLhWKzuj7z=Wh0C!a^n%BU!g6tTb&mr7ZpEnHgQ7 -zu!rZd^lPQi(q|(d`l=+hPy2O^-A5X0hOm;|gyu4$EH>#mev}e`=Iw!6kcMImVE=t- -z;fV~;<2zdF5F1A$&^_Go!nC!Ky7FqoIka>sH5x5 -zPo&ncvty~oJ)XpEEMdi5T8k}>p=A7)XPnJH;d{qHQ)gWCLaF%Ot@j*E1dM%38$-oC -zcE`7ynBu8+@ij@102N?)|MuQku}kT>A0yphMP%;qJpVEq7Y3lQ)P;{SEaVGYuD?L) -z(c}T5IJ1q#zK`Sb$_(#!yBtBG6iw -zn<_uQ10tT8d4wEjhaIFZ%ndZH?@B;Xja5caTS-YnZ_8pM8` -z_Bg+F7G>@%!2vL>PNPWA<+8ikkg1z~#S8YUNPWJ1b)IctyIT9+W2uMxd&h=3Ao|Od -z;YC{HD{TIAZ~1U<4VH2W?{z=+{!ti-#@X_9YYMB?mRzVH>x3iKoTHBzIo$jW5Z08! -zR^x(~EtnIa+oc}1KZXR8-PM@{Au$UYv9S4MH$zJr0OR16=%|_hUm#QecxBL_2p;S+ -zLQK(dx{%E&TId4HsP+N>OuriwKL1f5J@DQ7vKwjz0X_tC+fV*a*>&FpN#41}kG5hr -zpWca6oni5hNbH^Y$#w5RvzR~wWepx}k$DNh=UmoV5sRKQsS|Oy^qJ{*-of}=--g=& -z*#KCjSrj26#_3eTwch2!48k>lgbI){iL-9wV=D5ZMy+E-3w7gI+w+-?P(QBh=cAoN -z`RIV%k6R^AzK=~gl7{gdPuO0TW3OZAAl$TZ#hedoaOfg3)txzE9-i@2pl=Ju*(i8= -zq<9`^jX-0vZOKk6?vPr}Um}D&pR42*V6V2wbU!QQPDA}{>y -zZhWa1j1|UIE2AOKX?_-?)H-4^MY(>&X9ocD7r2)wR*>)|qx1Afy8>Aj9a5vR>clDG -zoZxzvxAyIQ1AX$ET6|Fg2q@#vQuwZbK?Q=gsO2B_%T@dCBjnB6Cx}CzYS7~aW?f!u -zo$7^INE4Ao(Mt)}!E?r4Ef0OAP18OX9aEu4Pm5HQc+XC~-ck%F6b*15j#pRkDCc{JKyx+5jaZuc4EymI2(Z1e-mJ|n2 -z#54<4GvA79OmOd1#Mx8|_{^8z!s?L&uQ#dlZMyXN++~+qpNM**g~#-XD?`iit->KJ -zWX*t~dp;YXp-Rp^ZtG-%mq0zbQ8$o$Jap2lj2DEisbdOcUOjQ5oxQIFzxIg6?idFu -zkQ38NcSBRVK=jENYiiXHX|Z>bqhq>8PcdBjbs0li!1*~8N-!Plz4ZN|X5xEn-Uk_t|H*=xpnPv*%(mtgLSWl?0);{(`YC5XA9;<+un945-)CYEoDdI%)d<;Wg0+0$Y9 -z40K;i(e6HLSp?vM7>w&a(=WMm=^R|jZP?N;L9|JE^-&#G79OzJnx(*a&F*L8`x%LS -zowQiOcQ;uo|OhM(*)rpse6 -zPfDRNe}TIiZ1qfkR!v-9?28al-Z}9?mOi4NDj~kPBUGp!uuUX2L<80IQ -zQd8rv@(nD~K4-w2dIOXxYPgHMT+d{&WHjm-BQu`n12*=}7a*BruqGF%JPB -z$6^hm*)sIIxCu~TJvZXqpHWLgy8h)&0`n`i%p+ev`}5N$A)t&Ylk#q1x*$ouG$5uW -z{{@gRgkG#C>6Zn<{&_82E2Kag62@7wWg|@7zj#hhY)lpK<8wggF_RLJ{QxpDcQ3z7 -z9LzSC{yEmu#O#5GAP}|#T!9b-h-%SWQNye9?=J|^dUh5*` -z*yW`Z=%Xi7B2C&r<=*7CWSa@R3$Wl)XGp&k*z$kfoKp0CB{AX7APhSh=+xIecjTJkw_m -z=`6_CSLT0X?gad@@|9czUU9}J@L46+{R^H)by?tXWerMT8)+wTs|Vp3jy2zDJzo7c -zEC3j3fMj^FsMI1!?c%jB;>e+D=xH(N7Zn8_E=ria*9|dRDUi5n4~C+ijEfuC -z2y}rPvS%fvE*dr+O{NOU${mUI%sUZS#gLcBS{tF~0RZ)XJ?rut9J}qmBI52LIahw) -z;ircg!Zj6Pz7I?uy0ea&0lo*+eBAYU -zKg(BZ%_rz&Pf+}HH8^`Iq4}SsZI3AU$GIt**9TZQn2^6Q{z=~1)F1`j)#2+_UP3H* -zUUU`GwU+blAV(ULTykZ)@L^81XRLooc>~wILN2JIrQti&x~M=TC{n0?+ONPwfL0%> -z@R7YeyDc#zy|Tb9%Cu15%A2K$8@4VD#GcJ@7g!gb{^8EkJkzqAe3H4PHi%w&Q5B9z#T9zwbee}ERNpTuR%}zWOBqc)7K2p_%^kxyw4v# -zK*2Ep@ho~d$BavLwIOrn@NUU%4V%i(dp$vpdF^~~Ru~u-AOQ8y_vz<7Z-PNEKPHG^ -zwQj`#2-10IPSS>3RTR#AgEw?_L(=}ITpyX6*foo^NBc(n@l@2tf{iZ;b!ibEODfPu -zs9g1VW>K8Uv-`x9NADBTTpXZ%-Y`Y<5dNNeTM`=*WMJgb@*&XipCtC79DIn2ttY^!@b+>{Crp3ta=h!W&HDX!PND~u)Tq>K0Iqn?c2GvA -zsSp%vB75RntlQB-_mR9IfOSW_h;@*p?N(~7Wgif&LJBp?)pvMf^XaWD!A>_vI4c&& -z=u@D?qZJB3t{Xz{!z>QRp*@z*oC7}qamD&w1!oTxZtmJ$2zI*Q;?rDzQCL;4lYLoc -zS>$5LR19)kRJ!H2ModIiAGf?XRs7|y0IvB>ar*ZO3c`(x8Trubno;ye>_kmUeX3}g -zt2T(5zt6jpc7A0dhRk*181DXBaXOJN92%)FT<%;BP;HmHf~MSM_ov=M3tu4$AAm5Nbp$)mwfLmtzwo+w2g&54ZgM1aJBkm8}EnUcQl8dD0D -z9QD8!mpCO$fmSD~MhKn1cTwSWoW`8i{QA#$ya|6TWm7iX9K@O#ZijSctoQvQK}6hb -zc|zyT*)a!P!C6=XmplqT2kj5rP}UX?y%ud5KysQ|gI&Fmxq#q69^zOdP{enC+I^$q -z>Y_RJ)5FCCUFmclj$p4^-ASxHXn0zQYHQaz>-JsI`o%a@pNu&GER+E7>y%ZQr_$YU -zA91|N`}`11Svg1f&VU>j22YNG7#B&v^`|T47D@#i+X*9HPZkk6$0S^hkMmdO75=vPAyG7>T*MGJ7d%1 -z08l;!B6w^CftTudirLp_X{8T7fTA!kfJl2!JN!`-srvZpoZkM!N;G=YbGTfn=+c@# -z`4j^!_>KC>v8ukVbkx9bzp&^R#+2GJNf+6te_3Ew@$5A!?lIO$hGMov$M8EdP{IXw -zqr*hzeV8w`|M2cmLD-g1N=Jc64ntyIGe;WrdWpQ&%5&2it<-;-26B{;0z!Pu_cS^} -zJo(fptu805Mgeh<^?4-Yq`Z4lvcGXT{B+YDQ}DuL>_=~na-2Ou(da5AnpFXu=%;`Hc4t7Cwut|lsjTVvB5;qpS9_L~&C_Fd-dMK-Ln%`ii9XIQt%caMwsH~wh -zh?t*jp%}W)8aV->$wxOUrxWI_16bcc+q!gFW{W|WfsVMD5AD)xrnUEV1YYhnx~ft7 -zGr7iiQuzD35}vN$eg#3uTU9~p6~DyV3_s%~aVps!f`@LH@fD7LDuUU^&6m7id?O8b -zVjvXK410Vxy^P5oXbCRoz*t=}id_qD_{uGCz6$O01}Ufq$NK0=ovda>Kkxlis$gF@ -zDD>kT*}eVmNqRdV%f9o$ndK4NVQxdorLS4$qLkp7z-yzHU~U)M`uq&4ssL~alFacu -z-2h&rm*jjAcp0I$mnC*jjL5ZWJaC+n9RX8Jf-(iRXI8mfNib>#3PvjR@I+1i%s9Mn -z|JV$xFvQBnl#1m}*S%r-QBlRR*6-vrgv@kwI_c9z^QKKYN#7(o%VPmvge^;D{q@x@ -z;~F!qnMh_H<|;Sr5_-rR(Kyj^yNO^wz2W{P+I8C2%{boX|5*8Cpm!E%0016&kJs_K -zF{I0Lj=aH(!l$rNncfv9{fhWHqf*Af{>NQN -z6DmtT;<=e1240(N#FTOndM+{~dqu8T5Ss`#sC9 -z@rz3SRRen?UDF1nW2op5US;0@e$>@p^|;a@vmJY_&DH40@?C>pyPMRF@)H+WK_Sj~ -z-7gE_dnEdi#|H-|Ei^4NB5u#{utZqXhA|q(Or}3P$7O>{y} -zFjoQjL4qhX!~*LY=d%d;!V -zlq@Olu~MlpIw2@{&j0JFRLsuzqJO2%OVcrN4e9P{YJxUQJjV*nPGx$Ak0ywj^kbB> -z#qgstsi&sPEe!;!_YRbpR+F&8IiCHFF+>%T^VJ>p`CcN1_?ug}trnLm#T5AjiE6Mf~vg -z0iA^mvw4;SBNk{I@gR5+sa*UEMuZ?q+z~4eaR_Uaw3AW@S=_{R8X&OW-mh|jFD7q+ -z^wMsuLbXOM;prJI!TL+{XC``4dP>eRxR8#&J5_+8095HhQ>iPr+hffGo(TOEE&CE# -zrL@3LHyDe6<9$cLJ@Jg!x9K55@BGM5D0vSUoVEr=1eT&X-h0V_|5#dUelgXxer+;>Eo6pvLumUzKmP_$D)kY+&xi3J -zbOe1t;>wthRvON3r*==?3m4Sgq9?YaGG(V`(gD8$l6ANS!J`GiUulm{ACh{V&glk!Qi?e9C_B-RMY>Hnu-X4X@9JF5u#P1^Jb*2ha&l2j7 -zGX9zl^nCn(&#+14fIYPUa5o6;?0~stBeZIzV+I85rzDL9UH#Ua-t`ulNC|)0*Ua0- -z+Buki1l6`5^Baya910%Xw^YCUtnlm7+k4{fYTW_E(BS(Z0|=2d;$}=jD;Y3+)KKVs -z5=-^3EoW&IFEYEdA2*_ov8M0_y{)}AgP##K2?0~gQ2{=e33PY4DUMp>{~Re5==1gr -zg2FW8`x(g*>2B~LJUHI4`6_d{G8tY6iqu~jXd`>mq%@uF(UV>e!}28qKTap}vTZX- -zndK!SM$v0hj7~VbfH(ovz~~XN9b@F_MnY&CQyfL!5^yXx<-cMoPClTVO&r%Gc)LB4 -zS(ymHAAT*nQ*Xm13n&p-5*Sck)30yyXuk|{8+&qi7+{)RVZsrtYm)!gD5xIKa6OTV -ze$dnKiDKPSxwlA;<>pNtrf=}0DK&0BRo(F)kq7d9QU_il2gfT8?cPj9B8Hei0A(1$ -zB^BBDbqBeO>7i2Rp_&zj -zrMi&@`E8hFiRo(YJ6W5#T#B}dU^(m|?kx{5Vh%n#p219l%C&DBCed7iB1s3~2Rn^Z1puaYme8DQQ{6GSetYHDI= -zE|d7RAtoA>j7Xu7(3`jIm=1=|g>*N96T59%OU`GWZJ%HsnqAIMd$S`I!juI;7bkCxuQ -zDkMo8xw*uP9j9=9p{#rG1%ZGQ^P90Hz}>j#_qr~BI?*@#F}+a0=oXN$`{R?{L1{O= -zQSUg+<(r|#3)Vyx;8 -zCF8+_lIXOXItK-X`0?hrKO{^)(6S6a2p3yl*o_5GZ7F$Kk%&)UQE-grSWP6HH_`q0 -z>{@$-f%eQM8_3x0wW4CnwhtSSU;XsW&*o)aUe-4j()gZwL$YzvtJ(F*yu9QGh>02UL?FYRe7t{9DY5d7~k#~c&YQ~m*YdzCcJdK -zFv&O$sP9jj_^)q6r -zC)~D+DV~#~E8K{V(O;td6Q`x{B&jY&$~UdI0G?pb#FU}J$`b#Ra_d{43|0Hv}gNLR{V(q5D!Pa5pl4?PK=*b_T0GIBRff -z|7u^Bwp+UJ!F*NEe34B^h2^{j^{3J3hm0;+mU{N+H(`BsB;Z}(4`v{Ijv8)XYS=(3 -zSi;Z<#jqreSQ7!DeG-0#%aO|8<4Z6YRcN10l4T0BzAu*W!J=e{@KeYa>2`bs#(v1b -z2sMnrLK?s_nU*N>6(3Dk!2bOZ@|p1)M`C-GDz+oP@64u6)N?0W$MW3nEvKQdP+ -z`Z`A)da4X^WWv_w99>-h>cQOufgzb^H*y}-$HQN$R-Q?1=3JdNq+D3kps2w>_H7cV -zE$Kf`jD|Y!WLui@F{8{DWovYISag=y)%#^W5F|uSKYRih^1(&Vv%g^`r>RW{`Q0Vu -zG{j-Wdd>7<9R5y4g*`K=i((lLI5Nv~5`J;@ay?YjS>n&QkNA6{1YhC&tWk=N<3|=l -z()Cs>rgSqJ){AQCShpTSb=4_eTd)W4heoJ`D6Z!$do#t#afFRYUFjUhQ`Hd5tpCSL -zqp>_?`ff(jtWYLh&OCH6FD))n2pzFl*Neh~4Zk*fu=IZIt*Ry!1=VeV!8|N;>A<;A -zwK-EY9VmR`7gHnFy}k3A$Z#xa)%mXJO -zetio%kSj>fIQo11viq~vqhwU0VW|8+Y00YY9A -z-M@`7%pUv^kt6}Lm$JSn^49Vih6{<3J7?t7mjtieLtFS%a~bEBH-ITBoSi<-aI1U(P_ -zkp-Ho0VxE1MZ*&s!Bcj(AxPp|GpZo73SsY;YcrKJ!HmJ?5|4qq2F7iEBuQejHEurB^I2g!Jfdd(NF_k5b`R{%ax@ -zG+3u~_v@%2Q$-!>$08b$Di@#KPnf@|AjD@4fGno -zJ=RGj;dULecDp^dAte5Bb94Xm5=Lq+YG8ZSIj!)>b$`n1A{W#c)uk7JqLE_nm7=H0Oy^* -zr(1?ui0@6iv;2PH(|s0Ee+*`Ors&X?Ne;8H%3U}F^uQhc+c4zDaVk1jr9+1TACZu( -z_iIWpR~a)Rc6;8MxwSCty*f0cd^?EFmO;`~EI18H4f_MQ(^&_Fxvfa=k`ZygOb&V8 -z3U(IUSi+_mx3>{XnD6fWl-VIe4lTHB*lPFk(MjU*L%qNayfSL;OEW6HR4e#L2S-FR -zbIxUl0&XzlnJ>DokWpNs48=sf@?m>UdP+&O+0{8impRzAp_KoAbprIlQ&5j=;ATHg -zvzned4S+%HLZUl4lY;6=wZ~rErmz}ft%}J#zv&?6%@?XeT2;~d_-qgOO_H(Z2 -zeL1NZ23bP2`ZSIYZ5EuRX6QHT08LFrVGjw=x!-v7(G`BdbC~ -zyIrz)lg<;oaIT8DJhbza2fx#dD#upyKh85apzNG9w -zC{mtJ>2v%}=|#BX(jLMzZ$rJmtFiDjZOaTiQX8R$rqafsM3sNkhoE=SDHDkV(AQ-*RB4vo3-7ETJh -zi%E+8WsN-W14b+Lesc9?qScUghEGhw|-xck{LsXi?+Eu>15 -zh4ntYecph$f|&~X^?Zalw@x)8e=qdn{_OGqBuYAzd?zff%x6UMxLx^wSW4;t-C}Y< -zp)Z#;2*1*6&!(QAUE2ECZ@^Fj+2(i}IGkC9DD>ZDtDPU(kO+I%+#$|m(Ve0kr9Muh -zxa(&ng_)djg(W2J{Y$nbo+PnWH`z;kH$6jv)3JZrT+IaJqXJ}O_2&+{w`WkO_JkkJ -zSXrN*W!o=OTn0@d{d_Llze*I;scW=Fl&8krQLr#%R7l~sJO@XRBH~T|<8+4CuP9V& -z$hO>)7%j$OxAT}Esx|i`zmmy}THTM*WtZ-toC=N`C;EFqbmi0{**CR9)hSn$C9QQa -z4Z6DcuOBh60#YW{w^?fOLSr0<8(}j<;|}!fJtW&ShxcljtAxHtZO)3^nq0t+jQNH3 -za(~nvnvr^y-G_9wtBhJO`*T}~y^3IQ=s|M=Q*0*QISwY2tnV#dBv=-L3x==^uJWkV9d -zoo_!)JOhS^aXn_G?sA`AhbBx7vWz#*g!)YWYwck%ilJHvXcG1C8FYh?Y77VQ&!EPA -z3bOOPoQU#9)7s5~J`d0&Y^7Y4+;HwXlQl6M;piXC($?W}zsNs0d90{WVuR$C13RfG -zmP&^Wb6GNITcyrU4=~f*bIbYtn%X@7?S~oTjN{IrrICqsbWR@!IipkABu2NSCO#Jc -zKmZj8P98VZPsV&`F>BOy*GH{zFKUZYnd|NPatQhs)%^e(gDeS|V{|_CXsb@)=e3wL6(pT>AugzGB!hzD$8YMEYaY~jA(v#0z=*!q2$-M$fYatVC*SC$;XDG -zXkx@Js+sQJf|-oZw5XatUa)LMRt=!Z@{&1ee#QEZmHxCVE -za8(W8w{XYBHLt~Z>?l9%p<1^TwN7Y|zc`~XsLC>z(T;XWJfCNoP;a?i{o15pghj3Fl<)~lJx>6eMWt9;O9-DYgR)J -z(p8GaWw0&#WiKOR{9zEg1~2P94IZOP -z$71eBLT!qsE48LD&`+RY(MGi6C>LMOO}W7DA2$|dDsJvnNPc$|{Q^X)9ZGVc%6oDO -zkgm0{g>x#IKm_ksgH_kh<>xr7fT-k?ROZ5DD_I)v-sQy7v#x)wl!S|8!w4Cys(OG& -zfHO>!rR`vaC`Pz`7+gAl;)y~vBdW+zBA-DK5<1=b?P=epq)gk-LJ74$dWow&K`&sJ -zE$B=C66Y5`jcbD@L!vZ`tXCiVTYmZ<0$~!ln}cW3ix~lRKFsP|tyj%&Onz?olCB-Rv2|U0}H`&6g)aNmgi9`MZz5Kjmz`s=fqdcBkZ8v4sY| -z(7scOc{*CcWC=jXv^Qb=`M})VfABv5y -z*QC6A8=}9ur&T0L*&lO@27y`J8i+l^a^&FtY!JoF;Yhu7pO_~^v7%x+i`+fP44ZZF -zdTtnws6eT#w{xP!G3v-ck+4ZN>4{l-;+?M7yx)FdA0W&Y^xp@Xgf;Weuxob3AQO8q -z@Zk7&XHc2@om>)*6PM$Ee`4wWYT?>aslqW603!iHyQE%9 -zd-kx2Y-#tEg=kA`{2I@jo?x*!zVAX>t7WrTqOhQ&P&&l4aArg>m+|^NkItD|!5q^i -zHd-iQClh*Jrg)jn*Mk_2TnZL!jQX)G -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 -z-k%4lkt~9sZ)sHHG5wbA -z9G*lLjMktq4subXH>ZnW#Vy^v_NfuRy_=dd=xCGAX-G%;Hz=f^aXxYZMp+L -z1-NhVam!~|o}i)DIx?Q~%!lP|Kb4Gw57s0;k7@j2JVgisU8mnN-b=DImbOTO-fV70 -z1MhbYf-vgOaUstk{v`dsjB)H2L+e*HiuaLYYWEN?@L!M$Yj_&!Gq~0x^oa0sbrDL+ -z2eRaXl_>56TCc3VRJ=$z{yTgeNw76!@!{?Z;cVYGhqP+@!735hFMlx;rLkEtDh~`| -zuu4+MSpRrW*A`;oucF+7w|;CC>wbajkE*HgpozB%4jKqtZdiH!T3nvw+v|@kL=Ja; -zH$9i_8{rfw5dikRYU?^Bsjp9J{Z@Qoq};vC9m6>MuarRXTg5gl5oswDttrjOctt_) -zuf!>we~*;1HQk<_#AL9#_1*vFKBah)AuisMl!g}?!7g?0+C4@#`kVgp`8&QDnL -zeGP|%KHp3Gw#>g@RVB*S<%4-J*$C>_=0%e|U#T=9_VYa&f=)6g-*Hd=s#Mg!vZh#C -z>Q(a+!ynOXCeGf@5HX8kR=Q*P8}0ma-IwV`j|eXUF;6s3(&qAN4i075w^WX5ej6XO -zv)%XZplaKO7_?98rNAa)iy10?rJ7oln4p%&I+@2owTkkkfa~ubx$qPm&><{qq5hKp -zJn}q+mTUR#%Z7c{2FGc$?2WKJ@}bEC7)=3y`TTtNheM52H5c=!p2C?MnY!l^n+J-m -z8X&`6_h%UO(2mYImM1nbPEXNx$9Se4sG}av{A#iok`XT9^uH)eUj+Zn9V0E?w-yW{ -zc_G22W{EK0mZ8TBF(D!F$fU!J+i^(FLHn#f?z|rdxx?NhA3i~~mya4#lDnN*^Cl1p -znLD$S2_qhqRXon6totje3SI^{=b3#+Qlk^yF>~^oZ~G}tbp8{Q_`t+yCgA2nv){-o -zfJ=`A$+{m(mJk1tD`A%_Vg6$oGp^Cj++pG$L#Np+KMIA#qQ~kOrvqkvUvu3J<(c3& -z-_7tiyhJ3@lC0Wouv}oaMV1k3Eett?<@Hq5jJqrXH@82wWgoru_#PG0Fz*02jIh -zQQ+ORNA!}azYXZs)ewhn+hn|m)?i;Wc~O41d6x8eE!;jq#&UWhnP9*G(F6cCAUIN| -z$ijb#M~kfzo4NEN$?$r66RjBXF?L?Zz!hh*0s5hQ1jkK_@Cocni~`f1-9(d(|Au&4 -z%vM(s>3>2oHCE#8loQ0!eT=kDQmVWQL%8AcU!EtF!2i|Juw5`S?eXXVjWKGdW^teW -z)np#c8OV@96Xh50!z$Z~<45%lp7HeY`G93o2DJDFG=Co+#y4fmhp{3po`(p^j+JBV -zojbKPj4l2Q`VUH?4{*fF=UAu#2#Ota%6}Lh{h^K~X6HSy<62>=)XyUt^iXsSM$ -zKkC6Axct;Qo`%II0rfX^E?<}<2Mpk1^QZ-ZV^1VX)1E)oUN@ggutRRzezc5j%>PIf -zP#t%%qXg~?3u{`=f%9NXhRdOyltinHz4SXQh!`U5vxi&&L6A7AT6r+8hF3d%xji1a -z4G)W-8)A`L>PSIy8#9-S3)>woCUh+i9~vc+Jd=|qwLVocqV+c3^h+d7Q`(O&I^7`C -z_Z;P#hGsUuBR@2I5z>;8D|$m7LKqdsU&^u=I@2BsumE>{4E{G{=7D_$Q2{p41A1SG -z;20+9CgZUz6#nz~GNatnr%e9KIV_gOH65^s53En12ltx{iiC~5qKEQa -zHL@U#eu2RJ_;5xkOWwYV=8;+9Z|*!df)Lk{%yh-Qtae4P84tL*53w%u0IUFD2|FgZ -z_t10{Er$QnJ87V}l1hk2mmU?q!L3@@p5EvIUdx!DrFk0rhlM}R1$E`M-U{&m9Rkjj -z)x1lQnk>^nIB4P9I{lv_-gB;u -zYGF^qmuTzs`z-Q8DtSoSPcagY2R_;UeC{r$luK-&t5DKDVj -z!o68R`~<`py#w{gZg~n)fhe+f)HFAsOGtNH$(fXOY3y#k@AZLcZ|5-j*9&BOaaBt_ -zoLv(s2dIbdpS4`Uwjf;cAV1F*Y5h;0<@Ry%N5KyFO+zK2AH54%W5K%LJvLipXXzOe -zZGP!=p7Q(IiP%wcNo2CQwSrclFDj5?Mfp`*-S4_gH6CpY?L4g!(ciV~hR3sv}x0PVsk|So% -zsXK~~^ysMCc*V?&RYbFiv9;b>ZFCQStFAp8tJ)@NLYE~#`Ql0*Z|N|qd?=VpGu$jC -z^EhWQ4~zGln-?FKn2A&b!FVoyQ(7kB;vW}`qYZY+V@eI)wE91ilN2P**%~i^0GE$@ -zhWl?&;RY9NQjKUn7eC)Q3Le>+J{c27fkn<3R0PT -zTq_K|a2l^I!oRxjbn%lYa*Eb<*}+@SgaQ~Q8*$W2#-yLl&R?z{h3k)cdr5AFf -zB_S+?DtiDGcZ9GqUygbz=2cF%FtV_e3&i!#wX8}ExgWG8u!0g09H~=FVb|zgs1|4D -zIAJn#C~209$AaB`M9izok5uWqQnKWfr^X@C;`gyxA4n(Ym#hY|;%;G_B%pJgI$q~a -z3MnQ@;qMn$`j -z!?ECuZ~PfmAsM_{{v(G=Y^x#nMdJd!%7U`CfV?M#p-%Yx0(Qm!g+c^NwzR+~vVw{@aqmUf76>N?CdT|Eryk6=%g -zhWDo_X7nv6#Y0@ev}D+L+n$KZWYG|Dkk9`yxAulDgu0HPjxpydsYx{dmvd)NrV5wf -zwow6oDRkeHRJh)`zl<%WxbbRm7k&g*^iOtt1JC%g8?|h;hK3r=(MjC(LnGX}TRr$G -zlJh0FL&dW275cU9$jVqQvNGQE!s(+b=h7l<-aTHhzKCb+-mQ|5y5{ -z@Ls+H9V$nDmQsg|8Tw7vE)3qA&Ir6o_q09_&h-04G>oS0*6uU@SBzp;4$yMPgkN&5 -zWh&J?>OQORjiV7h4z>2r{gvClH+{xeH$0KL -zqvKeS9Wrkor3!X4FHJs$mqL6b$L*?3{|cm+{K1_-k|INy8@?P`C1E&d;sqN%O(DL= -z0qsa939tQ$PUV8+@KW=alc3S#ACu9r`Yoz_z<1SBpsd|Wb$G;vPD)PWLFKrv`uM6m -zfnCfu_a}G|*lmJqr2I5(AzD?0c(l(GP*^%&N~#u$jJ7N0jMd1oFE6z^CJt|ug5o3i -ztmli(caTA6V)ss$+7{u^^wSI->Z-61tDf|SwKx{7LS$6`d}Emc(_X>~W13k}BB@rg -zE;q#JKAr9w(J`l1Kf~Ajsnhi^r=)}DJ!`C3xv)u%wD01YiZ*ZCvAT@=JhB@YJ}_c) -zBdoQQnT9fU`J=ia0}R}FY?b1;841&D&&IYbp^61i+rUDAgoruc^5gTP#rFrUCE=$< -z#xD0=Xh9mR%QeqmWL;zim7%3E!|wNY)&k!mHKMjd3_4Fg>MDe;p}5vJ3OkRlBex%m -zoj)_2JA*T`Ae>YwDsl!0eP|Q@Qjq>W7>kmw9Di+5p{bpdf8R*4>A}eR6ylXqfIf#E -z9c1Z9ZtwfvzlhqBzKb8{-?I@an`*GcV6em>KtPi%Y~cR7EXSogqwj3-z0E?L)I%4=MhEj%ggj;EG25^6m`n9}bGzw5Gb`;cjf8!0m|2ZA$tj}cO@UkhQcpcW}g3G&grVUc`OQU7F(9EKHOkTQU* -z{v|aTo#KciOMcD&%KSpI;m$Ai(>=yrn9W2=Hmp{2w1J=52?Vy?A;S1CF&~^oCUCiX -z$OxWJ)jUU}gFSKqW5e`fYI7r6q&a*&O3^^7^{M*_Mq!E4=J%S^Rpn^PFz#mLxM*u= -z1x5!^(rzvFx}7m9sC?ecRpQlDKi|b76nyr_@4|RjRnzzN^;(5H6ovI2x#Q`6Ar!_0 -zHmJKuC55by-fym5`ws^jg#0mxvNA(=lW>evya|h9jF;jAd@rk|q@SlSbrS%xn;)5e -z)N7{uyQ|Ot?VUrda!XeKKGiVnP=p?BoYRH>mKQw4448;De_6n|W`;5p%N#;*Ty)CVVE2+scH^Ddn$@A23*^aQn6pl3qiFL>=T+^EN^Tj?pGPQ`WpO^*U6N+66L~#x6Lf`#=TO4F+x_1oVTiRjqLWRfTxEYr*iBiPaaybs -zcP?sAsp$K2Ujeews*x+o=4(OX}@XQAuN~+Z+ -zD7YLbb&J$cpDCsCU~;`^b<3cbKnU3c5h8II;GuT6PjTlguJIjh_AQIb;M<;HPW -z#5jGSBfCmkv=c^p0@l9dckk~?fcC9Z$v@+$rz1qDlp`vp{^?(jdWf~U$USZlhdSVB -zcsCcqQZ?3m$ANBOZd)i|UPn@_p}zT}sWwNSWWvp;;}on%4)EF -z&jV+j<;APrZUG$5OkCet6=@AWeDCMmCZMddK~-~w4tf0b`8WmlqeXi{4(Amry*8ga -zyWU@YPL2vL$JD}O`B37tG=!mAW+Ni^p(n(<_7M#kg_6cKq3wTD3kIreq)N$fwO;m=w@BTY)(=3F51bn(;a%kg?~PKNxiRcFq39%ezG=YQ7=bbQhn@-a{zpJS -zk9_l!UhB=B8kNr;1MCh0EK6qo$8j0Ke}oYqx8Eq_W*0QBro7Tx8RbbiEb6!bz=r89 -zCH`_C+NKsg94jbYFzxnDNm%yKbBznZHQ%pMPOn^3_c%<_F}hbYJVyQ-e41yfbKQq?3^>zvNP$^mZ0k+A_P@e#iHp5IT0;5oj|;oDcK -z7LC5xNJ_QTDR^vxCdS2`)m>es@T>46^<3um*jgJk&JBLS%bEBP~kh?0EP=~D& -zyz!IQEN -zsjk3i2lQz&2Q9Tj17y(EBAS=biC@4sKdUJy%{dkV-2>`~Z9Ptp`5_I%9b+^CpespV -z%xUv*HoE8?Lc&y`*i7}cq&CcBvd70g4LlFZV;rD0YySOE>vgVjM>To*E0|@gN!cM} -zNymCG;NF>%e-%R2Hz>i??oX6MTRR2wdU$CbiZmXK-wt(o`<%Ele+hXn>iLEFAS4Vw -zZ)q3?AF&aadk#ndcc~qoXBad+EQU~Z-stLl+4!BK{AM4Q15rsxDbQ;QIJ>~?l(D8e -z3Cln4N_uFj^$g#i^_kW;0eUvzNRc;7cC7*%r4G^C;WN% -zk2_+SX&8G%peoLjAUgZ(SW(4B(edrfK0f%gfI#K3?EG)ZYhC04F_(+QYuybP^dWog -zU?NlC#*6L)0ObbBhXyQu6ohIujQZ6euIr8L5lyI@vZu}4Zrof7noq%|p^xn?BGXvm -zQpXkX_2~UDdySEks_&ZpsG7!)2{|sc}v;JRm=j -z29{%m*D7-NXGl|zh0yj2{hx?vf5Bc333&&lr~tWyrIF?i~+kja#>fj -z_Xc9?$tj0tQZPLQ;9m#{(w3n->UVCHWlMArco3LM+w{1PsqP2U1cbGG~rcXpq^|&ea76n2|E3OLop3eIa5#B -z_-v)Nl;XKUswg;SAwn`zA#aCZ5r%u%0DU9M`UP}hfWneTqU4X|wdzDfV -zYGG|71fBwdr4UW_|Smf9!h86S!Kkmr3 -z6-VQ>xn{cuf$-%Od>k=&^l5lb{C0z^={j4H-7$;WDNK=q%V{5vnT6p*5S9fl?s{QL -z=!)OdU437u*8hY2_@frdDx9Clveq0^b|4rYyebTe2>3n6&5QYF0t@?v)iRV2QND=Ve1?C}G>zisvuc%{{UA;A{_@g)fXOb17zn3>E?n93Ff8Ek*e{ -zMK4+hAqkMprFbFtl}92BX3)@&Y53VFP^u{uFF%H&|GYYiz7m~P!V`sU>IpwTijhZ0 -zkpD*H*xEU8d~^My4LwOV+lt>He9ZG#eO7eoTfP-gMP1c8VeRe{r6d#<1El$li|EJYaK<0}QG&&^9;C?f;dQD>I?&4}ca -z)Lv)XYUxV#RCPTM9<1btRBcNpk3cPkVA;67feF}ENoVSmQV -zBlvdnut<9aUhj7kQKhwWpPYGv#l?Es`}VbIYx(UBJ2I4%0$fOnYNP*0(^UpU)iq%{ -zr9rw|8kAnTyOaj$?(UElSV~%?OF|H7>F!2Cx{(G!^1Hjd-#>BhJ@@3yoOzy^xxl7k -z>SO})D(=c-M{M&j2|$mrR=k@@3w=czz3tY|xL)uEEt8YqP3nKi8A{h{dpwSl(3PcI -znusVB4OTxLY!JFYMsEne5h%Ppu?J$qqI7ZGc05hEJ%kp10&?N9f%Z(4*dzIf?&Ctl%m;;~Iz-*dc>omd@66Jx*eQeeHC -zj@bPmlv4E87qyr@;xR6(;nDuR`FJngtCyc+B!UR$k)g0@exWcBnrySPmeeAAQaV0% -zIZED3u>B;`TA&dO1Q=V1xqlMPRF4{ds6fqFUes^8a&cC`*gYe|0Mfq$&aN}1uVOgi -zDFbx+#*LL6_kue!{8-cEFHl0%z*~fq+OHxY<;th(18vkf_}nxHe=1g~n!7u%1tpFO -zbrS%Y#)z;_RPyf1IDlHUxVS@R6m&Bxaf+gMy%VCo#eD8}de{$&$NRCxKl18T^vPIT -z4y+VdKYM>F-M3|-byKZ=$Q*!VIHY8cSQN(N)dUMQHQBQiz1`Ot#{ao~ela9RIMQkrrrqjnUjW$PBxEB`izIet8eXVvKqeM@#D?^oXY> -zq@u1fGj@3<@m%BbUnkhDo-u~FVFv72^1cXwFu0-{y~035_WPWfm0rx~iTMdh!S6NT -zHc4(XwzG1!vu>DSsgrNnBQinLhJ4lKct0 -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 -z5-g9@Yyp>A4cFnJ3MRy8F>nugvCCH -zO7P%!%C&?Oc$Qp$9mb!%oWCsvR|@+Gw$*uoa`d8%u7Fw}CBdF{p>Su^06#_0Ry@fl -zbrRi>6Dh)OC&Aj}ptkdVNGc$Qgt!BTjee8W%YCd;se?E>z{6e`1b%Rh|I4$)W~ZrW -z+3|l9M^g|kdq0QsF84%ZQYM&Zm=6(j-N}-1n|l!NMY+wG!A# -zBWn>y`@jG7O~VH4^P>TA?=2FSBUK@AfA56$?Z?7ZyEzC*QD0_oiDtH2B?lVEpEbu#0R -z!yNfPr5?g@QT_`_JWr%fu`i~0>!NhvQd-dXlQ`!2NyD<`qA(p>RQ!UeKaww67O78T -zP%GZEUX#kqhhR|jbx_Z3YMz_};{oW?CBsrCuhg9Pz;LAnc$7RKSUG+2C<}PuX&8ro -z<@ZJ%Awg|9Le@rAO@~&{b@CV^Pjn@2lSb)H^J1rL!e_S!Q~p&^Dc;^Ed&V{2lPaMb -z_ofqJ&wNqvC%<32en#qArfP#TTnI6ShGwaZ(^)L?mNHw(Im<_|! -z3j<|u$m3aUI_1o>jr*^@LpN#C=w{W)#}*}5I-@t7$tq;ErqbD7gDEbQO%ssa1W4-T -z10{`W;~wsRj^3J9NhvCmQ~$*J0GJja=@pKK9pKXBF57h0eEa69Cg8um1B-sm$fUg7 -zy3YlHhTqtTp=>J`QkZ%Q{b(o2ijKD>nR{J@HS`6pO8F;HSEDt*w)`n|)e|B5N(kXF0Pop5s>Wmx4uGJXB{r#oTs&wp&M -z8zprS2I4lfihercOslzGJS9ROtZ_6$=9ZM`C-&GKSqy1RIkYg$Vd=05p0c(ZtmQz7mcW* -z=}}Jkum)t_0+ybR7bTw2TU8^H3ugGkHV5vC5wmZJ{o}uWkkR-Xt+m$IU_fdE!Y!}( -zfO%&`N~B7LSC=Qu^7<_S982`Qlj{x8IK-68K@(`@u(6uK^6@pY0}FJusC4qr8C2Rv -z3_m~cWpR`KT1tH+^l+-DKsxP&>`E40aWhIF*XA9h(*2_}JlyVH_D9b&dzGdP3C7W; -zoSYL{#J9e!Tj_$Ei_5K0>=uQYD+k=>3IEMsTZH0X&MsWO4?)Vy6f|=rwcBX(6&;6<+zg?w!qW358K>@Owi^ -zD7VA*>inLJrShIp<+P#S@Axs7GK1YFqBS=rlsG1zQwoaw-;9Ir@?cX^MS5xAo2Uz+{xdhJ+G@*UAwsWniyYS^Yts -zTB)+VAxA9HH4IC|OjSKf1xCh3g6*H+zTfJL(d{FvUUU>m{gvvX+~2A!<{5lnW_C&< -zxGH65ymk*3+=?v1%>LJOsA%(_ZxMw&TwzhXyv|NxYqrU>VmaQiH>ABVzmlo)9MN`T -z5`d)vhqpr~6LP|gW!ltCZEK>^7CGBVDQlI-f3UHwhtHr{`GVuL@xhA*5vB8QgUq^a -zZ0=n)WcnwN*m%Gj@(!uGB(Rb{EI-R&IV9l>N~C#4h{2|9{VZ4*S8M%R@07q`p(?nS -zwN@1V56|xnhO68qEL;b{jX`6`QO2gx{n!`JbB_40n&!{W)?{}IevvU~nNP8r(Xt;nSdS!lJKlm%JPpE)#wPoZvw#r+yYWfL9y8m{%(uzZ -z($vCL)xyp1{SbK&;XNOOSqR*6#At|+&)3x!^ES!zHkcsv -z)=m8bl<9|lY#CPWMputv;)i^nTHdZtE&!#SEN_mbgX**#g~k$M?Ap4jS$I)ptCEq< -zPU9UH)v^R}@+Tgbm%Fp!Ct#@`23X98kjQl5bHCiju-q@wIvY{P?5c@+N`4>o{S7!3 -z&Eiy9K1PWo*VOt%N{wf!x}OKCFkHWvuHJ3tZJ->t9H -zE^{rWhMdXxdB$7(Bix?u>y_qXzsKUQT4`kr_ -zU?r#)N+9rx*eU>SnE#jsv*<#u|83+~SZ(tp-Hlsi=+vuYw?$z)*fAJ6+1b`s!3NPw -z4LWS!h~3=c$a6Q;k4-uNNx6uyGg^{fPq`)+QF2F1?QIzzHH~DP578;@?#=ki7VyrD -zjDBt6eDHO(p4m2@_~$jQB^y8i6f6omH-dy0w-wqq^@sN=pDSDYIThEz|*%{io>P -zl+gjx?b>AWXy@H1Mnr?)dy!RC@ZTU8 -zM<)iT65m2ow!i98rip$ZLcme~WLC|ywhPaQn~no2cz=riOv?^-+hpMNo|ai2AvAwo -zdQOKf8j)^~FIltS#_J9xlu*ZDT3ZNs{=wh!fJ1qU!$EbY`^(tHk-NTD+|nBr_Yl1- -zV6F0a;e2ZG>KT)^-6M|fNzq|Soir!mVB_bmLcE$ZtirzX8+s=~3Y8OZ>r;Uw2b(z~ -z`l+p_n@`>?&2O|l41C&i`iS6na8X*HXffW_V&rqlfBn9@aYHMA!lT!hst`nfY`wB1 -z*+*XbURHMbRt1INFcgp<>%nXOR;yxGnArb*u&B(3z)QR$U0{eeH4t_o7S!6h2v1H& -zL*tFT6E(B^PC7C_s6E8Gu@)!Bc3!YSJBpA{`D<^!slKHif?8|?krJ6lJP6*fo~ -z?mnUI;>nk;Xayq)!uN3z+Y+Asma;z{OZU8=p6mD9KpQ#By*zb>PI)ERLWd;LQ{h%2v~rKjRBU`ojVY58^nw0aA0ZP1a!P=*8z -z_K~pcpMK41@&u1C7D|5;dFARO6R_0|v%VBHjK69C96L5L?Ed(eOxXiY1joZf(fd0{ -zINW+Liv2rO0YZ_Ab^q`}EXFPJZRflcmo*8Id&FV(y+@gH$WGn}7OUWV-IOy*tuf`? -zR>ESIr@nW|7Y-2&8^KgvLF7L+)=M(_pHyUzn0?(9k*^3F0OiMn9HztY7sB?o3X5hXSqa~Ni&ut0Ga6E^!C*vB-74CyQ`r9}N7MA<~`3}`!6Hi6y -zErfVYhCOw%?<23K*I=1W+2!1qbJ!=Ri$rhpZz9YSU)jnEm=wk^Ob>n{UT&S%E_bqw;-Y_+OR)4v%g$C&Aat)V`x7MO^imLfI>w;sDp|2)L@S*c9{-3F#$rT_z_ -zt#l`AZJOJ@#n-mE;*_*5T8$a!sR2YVTa_b&AWG_t%Zud;SpRs)Qd{ -zW+#RoRme%;6~mR1Jaf@kQTT#PM_}A9F{5PKZ(siqjwBao3=a{OU%a)?Aai_>*~Lu6 -z1?#U0F9Wa&ur`UeIN|h(J#+z?dZ{Q%f5As+{$%`KmF@kvQvvOO? -zf|>ucRMq=6)e8#RuQJYuk^T*WbHw(0e%+Of7pfJ$d4>gNrQz^2VSmCYyv@Vrg0A2l -z8=J2%bIqA1mrVw}-JgyJt7Ul}fz&O?Qnsha6yazA9+&J*b@KCGvFu*NV6?7C?xT`e -zS=qJ8Nc~mdqP-c6Vv|j77d)*38>28j``E2Du -zGFa|n!KXr0_iN^lQa)Yryka*?Z3Sj;{``6a-Tax^NF_Fx&Yh7iBb|o$W`k7B_<}$7 -zJazarPSYT_>Tvkb_sI!Ww}on7Fm|3_G4)I<%RsVb2u*SvJ&+eeUAAbu!pw_u9NQ~f -zs&(Ug2agRIFt7qiCNgXvbY{MY@*{as1eKxy%|*k9#%bfCqlTlgL@GAgFP-6NQ#yKN -zQlr!+5lAOZTvh2w{ns%Ce>(Dxdvz6)qXGlbcVbBKJDxVbY^0wLA*>b=Y@H)4v7$=l -z(z~&0cuO>&B=WR}$4wz@zQgUCJQ|3@4ikkT_B}zQ=EK0Gw?3|^pnni+KUVDR+h?8J -zX+58MVdTyWH`D`v-yE`FF&Bd&`R?K-kCywaJ8)h7=rwN!bs?l7V8<9Ex>_i->O|gm -zZo~E(YW2(wM3ZDCn -z#Fg0b&}XF7ty?!I{;JIO87c-{a8jm49k@k)LO?(=Y#;mMdJpEmBO=?W-Dzr^BJ8K7 -z-hwav&2a?Y5N*Zhf_?`ngNg_MoegLvvewYgtQkvjl(K_|=7fTYZxQNi^J#c?T;`}A -zmYyn#Pk~dyi;3dMaP;QxCl0&5kheGOOTC!~A(0}mH(c0p&#G(s8%8CeSx6q2E?9B4 -z-{O5H%e2U4haIP_vn4}EaKh~y2Je-`Jg}AdZQRaALTk5_XLDwz{eY~>%@a@_0-#Jmp#)*TM2pihc0C6`c-`4}O -z3J~z|NUD4_5T+lz~kHoM;hB -zh0c**BRJn}GsW7f-xyv0J>LKQ)k)R6Zu_bIq^xB3YtX~n9TROf%_VDbWgds1jjM8V -zr$Fbo`m4Tddr#xszaQ=nKGz#A*@{<+OkY?&Ds08%ilf_R0WrkdU_O7{m9|?Iblbza -zhvE2I+nJIg$HOHfblaTq9{T$;3efLc;Ms3Vl%?)y32z-3E~dNVGaG5|AJ=DP*-B@* -ziwXm3)Nh{fzl|)ZOU1xk{+7)vIK?WKT3xGVh`T(Xiy5yeiA?4B4Rk+AYs&< -zS5Z)d*o(v&gonCo8G9Bwfq`E49o}0@Rk;F&A6ORtZ2t?#@i=xkb|Dug_6G4GI5$hs1RmNf0xL}=H@nXy?8>!y*M<8 -znhcx1Ie0W>duQ`1mSR6?#yhL|HOsSk!bG^CX`}q#zdtBXlgbc&aA$Nixv7`OsIb|e -zqCv&EH{>n;F^ms2rZ}~{SedC_eqg=h-C%xiGR;Thk6rGP*4tlVE(yS;`mA`S;UURy -z!Sk$yto|o+$N*eNhRu%k)4 -z#NS}+l<=Zh_B_R{{`aH(W{FBZT*Y_vCV%aJNdSd?A>yJ7HgRvS%OyiC;P97tT-?Xp -zTQNzGwW-3rAc%`4&8nW_U6rk;sf?ZhqG=b9hsMX~atN*BrjD -zvYNpGz^?(_OG{mkkEqqG)0}jDfTZ`8^a_6{s=K)oASeJvs>0nWt|qMxZ{B{vJ!k1j -zJf#$vm;KBedYkBjb;+Jodm#Yi8alaZ&$YK)JQxdrnCzJXR3bGw6ff=f$p?hpx*Oe- -zc8khdAS44)$fS^dJ$+>dVt5GTXoH#U|(yBR3-sY={>=&u5gt_Kg)KMMb-ljLnA^^mws -zw;6iuywyk@r$^9@!04-Ugk;JAP9*C3wCk=g -zd(0-^)0q -zT;S*^7#I-J9$tPn*fYrjs#D(wh=ZR0WXIV(c3xE!GpEjrVS@c)%0M2#Q0zoR=R;<{ -z`1}Ng@k8exlVF~|a7>iyEYHV|u{S}a#10*qU36R(%W%#M8mWG#}SQ75PXKfL8H;r(2Wq>j&M6MK>X7yt|E?Sf3vKQx)HrK5O}?@-B`ixIs_}!e{k$=y1FN`^lZM -zTa`HSwFzs-WBXTTpx?kcWxM8W7zz$F%I!piB%2URMz0eF)uC#HpR3;%1M02|)}`lE -zpvnx+X)G+7QFGbE`PMN~X1cB=KAEUGeTPi;;9Z7jKQq&88zfT$4|30kuIfwvoFNNL -z-e0%G*I@G_Rdn|e$&Fwl0L12zPv}PnA6hiA^Bg3ZDDOOCc -zmK3XylMPf7ky^0|nsHU#7ac|l4`IFMmCDrI*NY+N -z{<290dv+~MW|de$1TzH_-I_<0-d5#sap+nIeBqyvFZ>jgFI>YAj9mVY-oS -zi}LIFXDRDVxM*;X%l_*^j+aa~YJ;6{Wv1cT+7WcOVxnKeF6hm7>75kl`$J#N-y>shon%5)QXf)8ETXP7(E(9h+|N`tnC7@Dq* -z{Tf7o%hYagaM!NR&DQ)nYA;c?%`40=taYV#MN0`fE8>H`4o+py$3S9YIC7j-0W0Qj2}8KGdq?cJ7R&ncT0 -z${knJ#M0|(34Vc)p!lFx%1!xH3^#gOhAz-Pz_kHXL*yu{YJNd6b8?_d!ZL&YUU=9m -zo8mWS3w#wMKx630J=F;0c@kf9&Xb>wLEI4`i+TxS`(yk;O!$NYAuPsV_yzgeYc=_o -z(DRv+y#z+>B{=ySQqm&)zGBxd`Tz~t;|9jg|ge1=Zl|{@)pv_lT|qL -z-UvhJP#eMgltW(QngYkL^vJwhN1O(d+fO=by_% -zLnq5VSmM&cG?d$UI(aB9QWxe;X5*5}sq16x$D)BZVguf)8C)0`ubQs+*Z6ylc%otm -z!~xy8Z{qdTk}ak} -zH)P^e*F9NFA?B-4UcCt?T?VG2El*b630^-2+N{h8vf}`eQdpB8$mP|8 -zcH-@p8ABGKOc<%De}0CLY6rV%qJ6{}F!Ro*vHptq5Nd%duFit=t8;03jp7IU#W)zl -zP*l|yodaFb!_?k3)ds)<`(V$!4{N~OCIeO)TQwG+JnM4+=cARr=(F{K2GnQTeaWlB -zu5!275JIV%DsKd0#Y-hRu+rL`6m=Gx8DsJS!xIm_iL=1Bd&8^`4pKBIuMY$o2Ba#- -z-Z6;_D<@t)Ypau@tvf4xr0}ajkPISXig2%>ZZAL{dcyKAmdRs8dsSFk;CnUv-69jJ -zc$_d<+Ri?@#J?zRA^WXbX2NRsD7sQDcW6=1vps-_{dYQZq| -zH#`%y%vrQv_}r@uHSTvEVeuYUK)2%HH)Pc8wY5|6nb(or{=CHs$MPL<{^ff!dBvLt -zbb=PSC$4L}*$56Bg|XgE1e4Bfg^!*~N*)Fdok#P(d#P}i8p@(?`UG>98rN5%(dhg* -z@*R`RnMWt$LrqRgXdk=|n1%mc4eCAgL5d^*u3>9&m++|d@5b%M**=IPlK$CgWri*p -znF+xcjDe682yyWFND4@0%xHsQm>DRxe@bhMg(ZbuxmV(O`h53Kp-*h=#G00P3%Aq_ -z^B4SUd2wO7Fc~F`7qRj7BZ?LDs~-C8J5Vr-{P7gXjU45DE!k!?sQqQ1#lW -z4Xt=q&)6_mx0z96O-|b(!`i`z8UIiMI4Xd*0*!)=Rt2rgN?=ePguw+wF;n&OLk+1L -zTndbig4x?ifa-#WjNq1M(b$u?m+m}zmjLoI7E#&WOvLu#GkFgrV(5ZBOGN$c;D(OX -zZkL7YX@E^LIIo)m#F+4%{hzf29;V#dk}1k@SOJLnNPu1wAvuCv1QV4Ps6M -zCQ<805aM8Poz9Jmy+9!$D$bd#fl_YaF(erTaK|~wbHUaWC#bnoF#=&fN`!u)ccF9D -zhZhmKfs6vUAz@A6v1$HeLiu9S-_8BA1rp24Pn9Dc&2bR@*BDJP^sdra6gsNL(vrTC -ze@b}5Svg8lWb_$b#_hxvJUL@nAAGQzKK$5os|WFpzOo=UEc1z8FN?qQXaGadV(3 -zcy@nqMsD?mt59;I=vUtB{6_#Ud4NX_d+9#V^iSp6E_yu$qlx%-Dm6?E)Tii;1(3I& -z`sD_pbn<_hj+J=&w3p&(vsBbr_Bvpi+uz -zszMjl(dZ{pQ9_l-N0f65SAl@-RSGvnSk*dZ}2}Q -zm(|HONXLNvB8)JIDemS;%$B|>cdm4!G#H`}^FlMPnmu>InGl|v1R)fivcE`N5R=ST{oEOI6p$Y+ -zXKJwHm7W$!7S7-!;=A?~Ww!Y|>z3AA39!JX8HW*<=1PmedOxbxz&t#NgP3PuB!e>82F -z!VWb^9gbP9F-mNK{_gEAjlditQ#tsFw88gMxvcN`pwd`tdZs8Mdo@Y^pbh!1wROCD -zRi(8*5#}45R8$UeJpk8ux4g0`Ko`Y*+#N#->m0Ls9f2R5+hu%!1{7QYR(;gsmH3k8 -z>*^a{SD9h&*I=yx>#Y7?)6ea*w-^j@>!wmy$*H{+3{@8$4X=9M_J=vn!jZUBr~-ww -zd1r4}?jKDv4$=VK2izaWE9BTGUiIqWGTXS06?ReyWUy>XR#8?qynmjZ1PgQJ*!Dv4)nkpb{+03A{yoXjG0pkNZBdF+~&RdE*~zjQzh%zYoMI{Frc -ziENMalE%5PLU*ni%XDOi4-g6oY&OKPoEN^D?BqL%hWsK)pUhwE`}-d9J#Ua>Qr7Oq -z;si|5`c0a4g>IO@PYIZ*dwq)*kmLX^V#__UV4ALTL-c?d6XF^=;TVfQzH92&?vU4k -z>p+9iUYn9mgu~b>bFN{Wn7Uxuq?uz7kU*UN`J*CZ>bdVA$45q7A_eTgE*zp -zR05pSvhyLQ#Q`u_yScZIw=@yM5U5Ns#a=gQ6@b{MvxKL4?Zhin_x*+Qn7PhMtx8iZ -zd`g=RcagM=TM|>s*EK}RM9S!vUb5|J7x)wI6V?HsOdNi?Lryd(uY-dSq$F|pSuGF2dQ{_Rm>gbz3{I!y@19l=n2e!rmFlld; -zz9~u8E1{;i3$VZqzkaFD@aM>(jAS(vt?T47aBtYQ^*u=iHBg4*m{ZJyO3-9cO -zne^k8TwlANO4L==Z0IBNxV!I_#%8R9c69LO8#7mPteAXM93N3`O^IeUGNV|J(t?r| -zM7Gji?%%LhXhS?h_1othdwKJWzeQ=#C>6YW -zKY}nPbvbgTS(zK~X0tIT*N}qg&S^`2>TP{sC@>A4EykT#>w-CR}$ZRtzGuQTc`h?QBmtj -zK}@ORNV8KA)MGif+(fHnUcf%ZH|?g<^#CLz(7`apl5diCvV3W;y-^in>6xhW&NM^b -z5v06^+Iv-;)qj|@1RD}iaj>3rUOb}mcM|;T3FCzheItthyVi%QfwDlY-9ynzmt)d6 -z+4fFYmmwbcABuxK)FXImo2>N|AqKty-RVe6GFpxhmlkAff&r2$Ni(5M4BUU%v2oVw?e)m)HfBkb_Tz@?n`xg1#@kXUtrg=IEM>rnjN&{JMoB^P8AE&C8Zliuu -zT@lM7HbU6_0j1J2sP@%&=D -zEOJ+=?hPWFlmubV*a?%gz0Z&s8yNoD{`!Z~-RGtsO5@>GKj)z{8BD%re>nH;@ib%X -zkCb~F;b4wSmy&(CFYp>M8B^k#1Y8Gq!iM(s#jN>9Du -z!dy(fRWBm}Hz96DrG%eSK+4`jmVSPyuiWLGjY3RKiUr!Nw)Yal%(H)2Tihk%whAA| -z(@Q#RnByagAK*pKfZtdi57kU3(Fs=f%wDHm)aMpFvXe_ge%c -zoZJ#KN|I;NAinIhxjaLw8|G2JY^sbFh{T5U9dlP@Ly%7TGg`xDOjpta##5EMw-~km}85 -z^n&!eq_a8gWDFpty4pqTg~Qw^4LQTt0>T7)?K(jF;vCi=a -z;At7_hq=Ez=hsFA3=qKX^$^P{rgLx`^#E@QkVj}DXRQ`>0*wIYYhGJ*tjz~UraDKr -znH_K~Ga+odD|U_)!O^sq1zSUJ8Ox|cdmFseV~t-x?Q9e~-1ku+j0vUWQ-;XMrr`i+ -zpY!!LTjQkF$Y%DX#o+@7DwW`a@!Dur4a2;2ah|2;4KCdUeIY!ie0@-fM%*9SB2UG- -z_wE|<@8HKOq08F>RA~2u8(roM<9_ub6DCU_vCAjaFD8D3ydoIoAaSkQ3ECO0;pl{G -zTytDQZnyvd#NBzV0!xImNHAR5UlUzPjr{=ZJ8) -zj;8r_4J-V-ZHPIZ%3+w>M@H~{sd1iDVmZdKx!Z2$Bqnyw&wt=--Ms@$J^MjXbt&$!p4&BVdz4F7zK4~7ww{Xvd1k|dBy;eZf8 -zPeL>qUgXd;zd@qK6fg)i5d4TR7<@%US+rRvS;{nH)&Ky(5EE>wLxC}xVBSaWVN$ciUtO1(hkK$s#v(PRD_r# -z6ee*QUB*dqx2_e}9g~~k+b(y>gb$+;5YciB(5$7IbvzXT2D1~)e>ll|r{t}WnDlbe -zzYg=$Vz%8U%$$vxd3&Jt`|H3DpQHY|w6ja_gWfO~&X3(;?BRrG*P}>J5^;pN%As`*n279 -zIc=jx=I0?y3FGx(XNC0!w-6tw~po&#fA<~VdrLK~&z+FT2N+a&M -zRm^o-j8}==HkCh@>m0tO8r;|d1rO_YeGj|>y_hqA=g -zxn8c5l85_BB77@wWZPS1#hd2-fd6gx5+f(60GQ8>E(QknUzFK_tG}-QV{w`*?5W&di-V_ndR*Lps2I;rpl2 -z1M|Pv8Ur}Pe>(8WNbPq8gDhbi>{9%%HkL6y*s7uy){ehg%xuuXy}VBl)=~PPW{;1F -zTYi-9;gDj8?8JY&Kd;qU%3CT}@e#V=!-pz&>dFkxgXQ%ulH)Z0=|=*#2lD7!32OH1 -z%h}UQDE<-LAufe%J2jw5w?R;`$!=JeqVt}1K5iNYls}LTF}d8>vQ{V#bCgVghiIM> -zHwR_uda5D@Cuc|tvFvpg9Fe(m)9pgqE{eM9)Hk?1W}m>l89)=BD)!V8G&t%!Tg&;l -ziP9Og$|bWSpxVjLtA1;cI0M?U5uo#VUo2gmXA~{s!mnjO+WM259#8t~N?7OY50vA^ -zP`yw8wPSQp^|ck>i*D%W>G&n@5sib?W+v%lYP;4teNVFYam{4TeoQNKZ5{9AOIIhg -zdBfTW$Iq^q;?MrqF~uup@C-OE#O -zk{BswE3tL#BHUjucNN|>=(l?9f%jSt7zcvBguPkPwSx+ocoQ{q7{8o&M!mV_!2-d_=tsc^?SP-T( -z$beG{e@6IYi3eqNt-r!_M@H~N(p2gLe={!h9SFY9&hH9cJWr!I#e2NU!05B%U4~kY -zDO&cCcyT|!IX~Sy1Y!i%G5N;PhmL)zm*&20{wq_xclmRZWo(TOu|Y?(z51sFm_9u5 -z$8vEN_~*4izV}hOHJL;$pKkosVZdy!z~qq)!_Q3rN{yk`l*h!hSS@SjNpEnqTkk0r -zf$JF{0C(VKob*4z>gXlNilf8%V2M)o(&L^Z}na_rqhEb!PykH6-qyjtk -z8I?@>g-J9=bq)VuvL6cBb#PiC5=EnMqkI8!Idk5YE)&?y84p=)@TbT1>}DKbqmJWxtv8t9dzcwk|32cBuqUhnR537VHK6 -zsIfx&gFTvT@;t(9wvYn1-M7~;h$;Mz1^}-!Z&e)}|8UUU3J)sTHSGKCDn25A>8i#* -zsWS2pVE4cuC=KH{B*kZz;6x;g-`p#x=it<*W^)hQx2~e-U;vw$i`*W4cSQyyl-r$> -zLSXeGF7e~7@f=gtN12hFxbSr6G?W1vd5u-teIsEe5yTdXLOM~VpuD`IJk3;X?PdCc -zj$Gd;5ns~#Zl(s~YK!_rN9~9WUc^R@k$`EZG;Wo5<+O_HJrYt{2hYpc=nl -zRxi!uaBSDUyjg}xsH-o36_Vk*?p3`Ag(7g6?7hN5jJc>2RS=nQpjJ7mY-S_-8lXI`5(w!@OdDohv7<)8_5V;66cw1 -zoF}VWE5EvGgN{1*%wA813Q{9Nrtxan0gDpTVktKC{KntbPdX`Is}N|VK?0df-YfRO -z`K9+jaUvJU*KG#C81C#q`9Gjn6d&{F=A~OlAVQk56h6O;osW}4cVvC?VE~E;oY~$t -z6a+KoR&(gQVaA38)iZfiPbvnToj0wXo$S#(C0qlj{(V{^y}ow!AW_jq7s(x~d!|kz -zy5~PAT5gvfX4t-K2DBMK6N*~?xGyl)u+$w8DYbEDkLGF{*MS~RGy~IOzIaM|u86eu -z^>JV`cVH-zJvpL-E`idd_NO}0z4+(36V -zW}QYm&w(B>ZV@Du%|k?L9vqc40ox;0_mIq(UK;nV-vuYY3=y!M7erbVWN5E!<$rdd -zSg!*1aMRDei`unx10>9U?7 -zuUlbKt2?}V#fcYHZXmK6nb_hw@%PLZfamR~BTnuTDh##G9n6n4j_Pv-oliRA@T!c{ -z{NXodz?1yn9bINq&N(%Ardt|1yb(a1lU$G0%fB9v;s@24zx90P;PgrIe>i=KG)l$P -zgX22~$BL{L(>E*ypFhcU6FwN`Y{lsz9ILu*QMYTjDce~fgCuk!!MHc7ug9>InM@dJVtf5xlGt`E;Hem -zB|FP0)+|1Cvc%_c@#L={_S9rsE{i7qNOO<;oxokfk{*QpSH8ibDF;`dYuxG($Qxd8 -zgx!vv4mpxFBhDj)Fq=1{+qK3Q4blIZ6fgt^vZlP0#a9@4^ikQ$QnF}|GC!d-W&=+$I%d-x^##z=)nSz5eevwz`LB -zg~@adv>2H7s14t+{K#Hu@cmuYk&#&%LC(vwiA8&3v9zVVsk9dp*qN3{?7BijQ`|Wm -zGj`fFw!oaMFZVImGe!1@iN)KDaW!E8A%hj0s*^s*IpML58up{3Rp3M;A^Q0B4Ysda -z3i4{9#-olXJr-Z&kZcUjrEjmkWIiP9#>U(rqomV8Du)>TEK6zFb)JjJFRk(|-s -zM(^d9W`CZ_j<~e^x!uS82|eLaX$!m1NOtXwHaC72+k1=VKZUyS__Z4HP1_TKJ|A%| -zIw^aZjrPVB{2ZQr=gRKInj}Tx$<%)CaPR#)=g?#aD){*Xc#2^Eb{0ziwPQEjZHKdn -zIiv~1ef-Z@q0FWXpB-85Iihr_OH0SrlB1(ct=_fGoG -zU_>bB#C)kO;sf~(uwC#ciM`n)lEAQMEbNaVJLWZz1ED`;@a23Gv7}n|TGSh&w`Xu3|hs;(tHib3C@w`7#9MMv-@xij=@XxtU6T17U -zeKj~rj204wFAA1|%$$`w8sLC1VBk)V;0IMNb!;OIzE+=ZJPe(~C -zBDN7@%;c(rDU0Lmw9W|saP&y9Y$lMbZz4rNi;4^VM;ijf18)NZ9*o5jpj|laPWhxz -z9(X&vX|nQg#Y}gow#D7TV7{8Hqk8GL-;&2OA68q4&&_KYW^n)YDmocekR&J>%ketvADZgc^EdI4PG~%jaQ84IQ+((r$-7}!X6E~6~EXm -z&k?-$;mD=tOjU=XMa;A8w;`Mq2P}LNMIW@VJ@QD00XKgK9zd)H^rT2~by@KLaZJov -z+h&?6M?RZ_dQ6Ry0aD^L%+Ocv`qG -z#UPluN;;*O!q4*!QGb_Dm=sYL)5X>VRU7K)%f|CHzUG<0czn -zzeu9$Jz%dHPc0TlfH+_Ss7d89MGJ9cKa)sBa^0-n`-J%56YXT4rPhbqdTaSi9aqV- -zE_$cw=0nSPYz>!>O%Is`oJ&$w0~zC6!r&lq@7;=c;lV7bE&)Zp?dCe -zmMfqn_99$N2oy(aX!mt53VWDxEZ(Om)6=bVXDZc5wZ#`8cOm9Oo4D@xDwBaby@98; -z)BB`VpRtLl!bE?R0zwi9(DI7UpWn(}PHH1rpv<{l-`#X*vof>j7PW7A_`vtDd<6w`sq=Ek3p9gpv0G<1!B-e3# -zeE~rgn_e=4Zx28tX5_RHC|1+HzpLDM8+FJ)$}QRI14R-T19=9j_R2=*NQNMKU*z}+3=J*mt34Nc%j*q&1kgx5^{au8ZA3MT}hIQd9)mg}YpHg0N -z_}fD(`r5cvm?~%h&jdkq5)upXt>pO%V@8)%qnD((+s)`I7g}PJyS?}W2B-u3fQdYs -zJsN67{`xZ-(XaE?u;1>%8ui)vP}7;6`zJd*|^gT=`EB_5ks;WX=5wXjQqK#+f;PYVd}e$f!_$;wQ*ear-i0-qiHhif2v@@gCI+5^mo=? -z^l6bqZ}b}0Bq*mADzHYU+4Oy@*%OWrfS@DZ+uJq*t@??|5F4~t=Za!nATz^C)~RUz -zAgjd>Tg|{`r@1f`F6UT1CIoak_E!XYH_E -z0m=xJ;QqjjTx?nk!efR4wp&?*y6_V^^YCH!(1jscN}R!Vxay8 -zW>3v|FekTMDq0_EEtH;O6J^z+5t*VKekP^E^9J#No=?IjIliH)&Z -zEdtr0PueSN%4fN7v4Uu0+B2J#DW?IJ -z#WCb-QssK(a}=;X>$lu4GlW!h{%Cs@uKN!gDkO#&Wk6R=!za?mFHK}2XyonqsIBl~ -z*^2lp5vK)dXV3q&0s>hq8iiDu6>VYBYB2`sKK<&;MagPICO;c}oe%~t*-`xyS@?h~ -zCUP)wyxP;0Kzf;4&8Sl2Jz^F(x98|$-Tze;qJNNgS3SUlkhYm3@2LT`GPLgV=tZ+1 -zyh;Gj@nEvuNx|Ui9^1e7@FNQ?lv8E6KpBRTO!;3G2eA-0zRv?(d(X;qS_HC?Z;s{D -z|M=(jF@(}kjP1KV73P;0V!n`Ujp|8`Q{(@P^hjx=Y&(w9zsS9xuWIwCQ$ImsHD^Uk -z7SXp(RC(!$+ccfrT3?shGueCd9ZOR~$jMFnE-2PArgPnrRMlJD{?Jl4`Y?iWcKsIn -z|EFp$l_x(oQ#eb5sp3mG79TPD#t2@@Pdg(G;y~=@0eeN?Kkdn_7#`mJbXC_3lMR5e -zVAY5Q&W%u}&F~dOKabAm5S41VR7M0m6Lq9tiUO~wVG8n7{U3A%SnfzO`=f*i=I^t& -z&_5fRKqGntAbLQMegCv&zAP{4P{!%t1Nc{PvQYfglbOK6*q#|=8tdaM&`VIcQn5tW -zKldVf;4Y`gx9kGMV~Qiu90qRV(sp`tt&*l^etGVtQ`uDVE|RGX>fmY^^$v%2DykpMtGSa}3|pDj}upZgErEnVK6 -z=U%*jP}O?hS3^=D+Tha(;|S*qme~1c;_hXGSVW#e*wsc-+8BL>vJH+C1(p+&`i`dm -zo$np>BBQlkCfrDun=(PD0AkMfR?g1*YxX~5~&wsgLJhycb{12}iK-!?v#|8<}k;h(-58yikN1=|wz3V|%w -z_+3Ym6cTNyj<6eSIr(hz|H0ZS@>SGs2CN&qlYn$0**`qi9ob#PGf$)Y_cvUgPcoSK -zB0^PNaStoBA()@aklaFN@zO{=e=SP5QY=fMBpO==1 -zJ7!l~5W~;su2o6v+uBxaYqznWn*nRJs;TgQmj(~HIhZQX!J?t0UknwTmAGH{Ic>{l -z_dO4Fb1js_M8@=b2zt6PQS*snoMHef>Fuc$ZhW;Q;}PC3N-hy7{}azv4|0Vf{S$=a -zB>^#e$GTt3e-%VivGT9!w(;_7{3+gvs4Av7jsEFnRU$XU99Ob+t5?SnTeSH5@(ChT -zBxaTLTz{S^TvETL>3jErlU>M7@R#IFKkP7L;*0F@Sp~ -z$I<{CHs6jJ%200!7d4GFN|rKv*$p)*E+2$z?qnGZaT#!({u^;w-Qt;rgrFH@NRLeg -zrum{PX}XhbHYj_e>-x9S<1Gm~uS?YCWUCO%l0<~Em})G_)bJi3&70O7SW+v71i?ktcH~iygeXT=K51baaMIZL{N&_hLsB8?IqtCp&Wy6YNFacGySO$@~bo>*jJ?7o_BIT;+*olkeEf|On7laAozV(!)2rS5R -zbnLG`}}T~7UTsn7N}h*4PRgbkIN;^R-rt*4m*gaE$Bv9Kj!<=d{L -z^7s>^CKSElSh~{s&wHuLz7>I4{7D}yAHL%EO_FT}JbT0$N>BAq(0=U9Fw=a(IeIqs -z-7o?wqNaDyXs#|KaFgVh;L5dX&sP!<#&3*psf_F -z7uobc(z2)yt{n!x&fy9r^<5zc<9XQMw}KA7+{|Xs1FQ8ji36jr*~5uQT2+b_iYMVr(399P{vzI{MDz?IWyCcIGza;MMu|jJJAMu3Gd?3v$a>)`p0p -z@R1I!zTR~e)autspr=n^=uTyQ_jGF(oEujIh)&nkGZcu{*y9Ewr~dwc5q=Gr?SIW! -zv(Pt*_Rb`=YZ -zyDKt?uHLd5;fC<-7#nFcJ~P=q*FAGNo%E6)pm$nV%Dx|skZ&WRWU=%2^qZO8-=0X; -zQ-qS3|HP_)oA#wM(+DgcxFqKyNI|WF$=6MlTvKMPPukG4(L1W0^*Nn%V^InGPHtDZ -zFkE{Vl$WCnd9(AM&CW7V?CKoe_45JBAJ|uRQW{?BM&~OF%UoO>q&3VTS|}$T{(IR+ -zAvH39twuk@t-2-H4T+ie^x!)wi3zzINh?1M5t@#$AZ*b&A4gcuQ&Bs#6cTK$jAZXu -zS&^KWaEn@^J&+HVEI9NxSd+nRt4yAS`r9GZXSSy?hRgoa(2eAETIY{ -z#~UZTo$2QH!$I#(EZ3PehHM) -zZX^p0%zy)?Ob`|cQ?Ky}I$d8ij=;IN>1MimnB^$o0e%x9!1;{Vlz$kNpC7l}aHC_e -z6%P+o0QmMyHL)3Q^E>-G&Hk4huW1cgsSk9Z)xcvUQE$df#ILP9`(m|*%S73%}&WpB>$zIRARMMp&q- -ztlEqgVI5)BQlhVzmm-k3uUMcXr>ROGpN`-NL*QU)q4WtvChss4(($KLRs#98wFy${ -zP+F|rzI)PNelW6BikB|3Tmd%-)T@=ylej&Nh>%AetMuiYE{dN{Jco1ho7#OsmH;*^P+tZMfsPsj%TRXv5@0st8GJ&nz)V*edLMl2r)iO!VTz|L>G?A6_b -ziXqkUENmg7m0oiB=RwNINT8p-m|SyB?ESpVr9y~Umy_(~aguxm0EobGKmFq8*WtD6BUy$2Q8QFa7-ZmW5ioc*FuFUke_?Jp7g~coPsh*BHb#49v -z*|@vV<)Tw^1j%++p%d}>9{fW3A$w$kJCDYd`Ui~|dBa8EU`iLr?oi&Huo&FQPj&prB)Q|3o -zW2GG9Ej|IT)gPGGb_MqLMg1>JIIBFixcCf*TP8Npp&^7=Mv+u;ilOGZsbhPJIbtGqn@Vzp>@Tau^_|g@Pp*lvv^jmCtLm)6d4(C -zO{$J-x@wT+o0_89v~AYl%2lBRmvE07KLgJyQD?b_5BgK`dFdEAvxt`<)A#v~i4}D! -z+^(aHF6nNgEgcC9I|wHPB|xtG8L6xc*mNg+We1EMFf$9taUx`OB5xz^vt)ovfZ-X6dOVB6x6)zhnmL3rYk&2@a5~P^ -zwcCYHJ;%}ko_AgLbdJMgT))WrzFX(6{rVzKJN~Q*WbnWy?C^~)kES(45@T>L_Y}5O -z|XquHJD@-9C{UiDOF+2|qPN_QDjU7`r5wtzB -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 -z-v89_;DiXh`QzE?z$7SxnTY#fNlP -zf!Ff(iM`>OZJW=fNY^*EW`lD)Y>CBA_AAgrmRdZ$GT+49G^KXtyp-On{b{K4I$c$# -z{4|2x)9~2@ZJQ8B3Ptta8dp*t<20h0<|egAZi=z~mCg@x#?w0jW*JGnu1P2DW`Eb_ -zTu0q^t1`j<#0ZT#&g6S!D3wS7t2*~ek<#U)3^gmVsPwT0!TNo^ -zG!5RYUPV=Ck@yz4lJEWR8loE6{^l91`&$efg8Nfe%TYn6IVj}Rf%HXT^ocHaW}IA> -zOOKB -z&qXxnY#WiuR5wf*i3zY|U?6L035DniwETY`;aMn4 -z&g->44HJApPoesx7PR{L1&@htxW;40rYk%G`D+GV{r;fi$c>tr=0XJz%ucIp?wx=f -zo!FU@#xvB-HD^XMWZsiN-XuSVS(*Idrwh-_DiuldBjcD-+oa>8nMnw!6A2Lb-wBo} -zOI&Tfi^a@*V>h>z5T|HSyE`O3s-oY1Nvb5;dev);fMvTG;3Skav#${p6$bfK3;X9G -zt$d*Ad2D5SWOfnN_Psl%|!;ib8&mDnBh?PThlk%4hnctjx -zI+PdkH{G1o8Ye>Q9WNk4yMwok$IpW -z%bzk#`|fn8!{b+q1nwm^wCbQbT}v_v_4aq>r02f+;<}Z>a#MHi)9CUUp)#N2!h|1$ -z+u=y94cqT5Jm#oFy#xMt`MgjgF&SR9-`?Ke;EW!SY4JQ`v(YCZlI(wnmug#>9_WfR -z9<}{$DUN?J?iW~#kIx6MxDYX1yYrL)NO#~7@dNc%fk-OW%6)CTCB2vsa+pQBFWt;I -ztS6QRh={DHZ<;yE2e!ow3u?BLXq)MKKvah0$(o-+ehyysqC!CluUYprn0 -zf!hCJ{f~8KMoebu8}CVHL&tPgs+3K~QRP=mv8`#Z}si>U#cwg!8&Fj9i^1>YGS8-w^@R^Vr-nQWb9%39=3 -z%wVhWVmF-H1v(VpN2>ep`&W;c*mRq=bJpsi)b -zj>YI={JS(`LM-3whS;GAz?RZTCKVAWT -zy3Y6;C~-%3y1DJsolA4#V%fBp7aiR9ZpfSmXD>{3Ko%WQoeDM|jnesNY%(+z;_rC| -zavdPjE$GE+ynU0BZF4=And<=u^EU!|f=a|=)a9y1>plu_CxSus;2E;f)&2oFKI)wW -zIcyLdOi}r7F|r;bPTH`#Wg?0_v#kkoXWij%*pL#(e0l;+ -z&1LXGOclpSw -z7{nu;lx)_ZVUbm_#A<}qOD(h@z!Y@OumjHx0l0|GSD#zaL~A&VGD1}9Ez_DMx|#I6 -zRAP412w?kw@pEH5CrG#|(`eCr4?&<8D{d*qe0K3+l~7!MTsh+)%g)OIY$Rzy>~!l3 -z=Gz%`tpkC)w(OvT{>{XVqwV;J`OV6TAq9bveKjrch`7 -zDTzDHZMPEr5*nk06l%+9hgu!$IpAr|wB`*#gAe0y*}Uy!6tw{+47`u}^Nm2*wqTpd -zv3iV^U9??yBTW0^6kc%^@X6E_Gy+bDod+G8LUsERxf1E#!W1k>s`~UvjF4;878aC_ -z#gTq|HhKPo>+c1U_brA?ZGieNK9F|cYVn2Xe`;|(7yP)RiGM2*7X~wYsA17?vL&c- -z-I@O6UWY5$Lu`L1l0B$i`X8&lN~*790X~m5XuvmsiTdYME|phu*oG9bF#;+qkZ?c8jMe$mr8!_eP}eb}%QqsTzzC%Dg=d_+&aN){wOAE(IOOeR -z^r`Faw>}@-;?i>=?fJ}Ts}f5R9^D-1g%}Rt*D9cU*3O$B0-biKVI{e3&|vY#x8tuS -z@k}g`sMPY9$i3>rV -zxp3ZfeVqs4g1&`t8N~jfM9!#yOwFSdHJ0S_U!_Sx7iMwz2nZusCWnM8)(^S=Z$0W(nmut;mUHrbo^p1(R8^K -zZ?&VPsfi=9Pv6X-g^ymV@z0|{`gq&a{T@-%&zP^jNCeX+9RH>A*(*oAfyspkcc -zs5_cqst?d1seE#t^6Zc&jsV}IAPB3J~e -zfEPQHCs%cP6EmZwqnQbRmPyIGot0xF==e{N44>SHon%w#&EX*Z6vIKM6x_2BRQoIR -zF~@$!$(hM;(CmgF8@^|~hNEed>$<=?-FjK2&f^P{0?g~NwN^3){PhV2a|nZ<@(IzK -zX17Iy0^DCEQ$c=N8QYx0*_8F)hfn%THzvI!pzRyrt -zg>FIb-M5IYC$lQXskf28ZAC55Z$}foBzt$<3ERV?i;fwzyR+>E_~^bajDuTo7KEzO -zsz>VgedGP5-_A~c{n79k?=sYO_wbR#>8?qX^!4bZqoK|_%+3-lQH|dcKXJ2^Y|mTe -zmp@)EixrJ7m*00y>a7x!B1Y{*y7I5}9M?Pd1}v251@nTvU>d#WMjlE4bp;JsPO&z` -zH1Vv`jTPnpm5%mOd$sPfYS=%H7$PkL0F>oDe&ioMju7o%8 -zLZdPf?EqI|Hx~unNj^dSGp5a5>!)$}P6s*z==s8%X3<+k2proPb?|x0%?l3h1D7M1 -zOwAdXrS1e_q~E)sTu`^hOZ&Q^DG%|f)o+bn<)BncG%Zo7-W79+%FnV)OC{4^r!A@? -zVAlZ2f#ITkX78j)je!H5(hk&Tdir<06+bW!%&a4U%p@m4>$!Q{vyGce5*`5ShP5{>R7K1qBGgPKMp&U}R5h+YI&W()5yG7=_M+ptj -z>>J_52SH8F^-0+b-4Aq0MM6LOhw0vebgwW#{ZZ)D>ou4*RB)BJ-d;R*XZGV&B7rjk -z;N=PxQw62%I%+9DS+cV;pG23D_Qv@S&=P5{Mp_^@{jo4XZkN2qw4mLX52p}?-P9cW! -zm)|QhJ)XxdB$MAmgmXSICIp@xw9RxBDZX62SocQp@&0^3e~D1m>aOIJ_MgYc;hW6p -zzH$K9v+!^DNUQ%edyZRMt5#TyWJZLci`9GsRfnmX*6w+u3>Wcy#t4F>xWA|{H_Fg} -zYl=ZkM$Ougs>|AWsW-G>-(rgkFYOKFtRV~q209NWqD%+oP1mFnH(tzobNO|)xOoz6 -zBhl)GV7jLhLvB?SM=!{t=0xok0HzFpomXLU5fxrf9$U;j?2SWj*LC>YJ|02PSv@ag -zK67hJcjM5S;gi*a7JiHJc -zT^@b&a1a~}sOCx@6ELRV%#9-rmPz?#vk!+{B(c@m-YV{lxpMl{ZTEOh0&TPCi3Gg* -z2aw{76>A9(rc0e?g<7di`KX>e$77QV+kToVwplyA5z+;GIG7egRDR1U+Vi6N{pAIE -z$L?9THtB&U2-_%h!+z6_;yp|ipl}Hq>XaJeU%3E8CuMk{ZP4@r?zFq9Ch_P**fkar -z8zG(gqw8j}c8y4-Z>_ME$dawg3$Hj^J*)m<68F|_Gn%W}UD=ZV&S~s1yTLkEs*k8` -z6`)jqT(=)STcD_DY??uu#T3`DU2Dp&8wxX#j+tueMO>duO9a8|YLk!x6jQ2q3+6LH -z28wca1{BK!Jhmu&K??uCM+kM<@PLincnGzYbH+AS`f=Jyi* -z&&<}2aQ#c!M3_BF6E&r%;ic48#$bV_|B4idoxv2Cvr=**!$s>OHyo92AKh^7LeV$h -z353mdOTj_-F4U2|FGce|p(1p57>-{Q?mT>d-+K0JOC?^}wmLbrn-1>X2GJWC>!Z=?N9Z|JKAu^fInr14G&+ZImQ837sF%bFG;budFxB*iaFy6F4=p_Y|2xF;C^PrkvYL+ -z@FYm9DxGt9+qWd3jO0oQafyfcNRF*-;+LJOy3w|n`LT_ejWz472~{gI)stN -zgDmX_mt)?#nV;FORlW7;X4*hYJ({FZEW5O8SVuPRLZfuf@*j%~waW${*{x@-Wm3k! -zT?is@bi7QlG!DI;c{se@C+(cIV6YvD@DQG6j|TbhIPQrI3aSm^fnxr;!+6n^<4*Mj -zWvk$&vFKeUPB_dx#Y?Eo>{Q?h_`3)^roIpb!!M7HtT&A1!Z?21YyzF-We2uUP4*n-F4g`q6cKA -zZ+1Gq&M&OKe#b-mqg#U45d|&b>PW4`W8z~(TlHzCxFvj8WL0Q{gg>WTvU3P-OE5dE -zNhQ|WSBBt9(^mvI1QUrjb|gz9`pTCwnW-__{&=6F5j)N^Rjh{Qz-~<)ei>st-=%2brZxBGRv!a@@P7`#6e4U%l(=*-x-=ioaOX=4(gcJ_#0{_BhCcDYU&aSAq -z{PD{<=Ww5$OhW4nV?6P*XRsgX$Vd1&Xp*gu#Z$>LFR_g;#)>nDJJ!+ONj}WQ!`$tH -z;hZ3!^5DM;)BALP;}lBZp)#08pRaZ -zb~OM6GvFsLJbNCg5_qp1-2rC8>J)GgRHYoUe#6p#AH;jis&LH>E%9K9Bh;mp#RISPs$@L=c8v>2_06Yl{4;u0z{2%MvCgyF33fn=o)-9}GU#rbY4w+EbPu<*N -z;(m!zuQAIa=xTcZWzj$F4};Wm@`uLR-iUkaX^DPKMvL3Vvzxx1F?ogZ@`w%HuNG=g -z9k33lxz@;uFeJ2*AH6mOd8@2FV6LY~W|<6;dlH$aabON1r>6r`B?+Z7Mj}{2-;TB{ -z`eO-~*t&v6b(^+z6(Fw1rfnI@)=SNJuiR?Cw{(Tm_1VJ{GUr{=EPWCj6LCxZW{0*U -za8WPOU_A11-0h{&%c+37KOjIJ)B+6-H1_mjzeZ&!d3bww`cNZbSL!8MmRg|z6|PgyV-E9wAD{ggQA+9H&pemKuevUd3J)nb1R#p!o)B8d11CEr*s<~5CE -zERMwAId+3=udwC&4-`h)6D1PO^3)&^<==w_LEt>$nG;`aaLsx!s;r5goAB&EB%5v02t -ziErO~{JwwTzPoXEXJ_Y}Im1kcW7bnl;n>~FsUSa@zO?*Fn2P(B9*zTO2f4Upy@<}L -z63}xgVG_97jvC_k%2PQhXvxlwMxfr`2>FWQm-c(eXq?QrxXqb%a14QLuh{OxOT<4F -z8Ea_48ZQyiMIUN@d)yK}N0&TI_Tg%Dw21+0s~S#~r1Pqlq4CAOv;ut0? -z_iC5mZ_FPIh#4HoG;xkX;S$*JW8`UL#n@fi9uU`{k+^);`D*}Q3S-fy} -z6RCEO+yjFRU!^BE*;@0?iEG??Y&*$Y>7R7|G#h=_G=WA1Gw~aIV~n~zFCOtawlobh -z$3%CpX8_dtWRMgqjC4>#k=;v0)ru8$k!sMFEaK$K1XW1XH5dTnAXdZXeUlt!sF3;Z -zpa^c=QSzk5$qoDv&@CiJeVlS -z%Z08F;mUjVV*CDpcY)hB&e2=8F**9^b2{?EVa~o!HSc%{$VP=ClgJ>>IPga(3s?h6 -z+_$a~6##H`-ij0qRZYyj58m&Mci9qn{ -z4pbh*+Ez$WO$hoLP!i6SXIh&0k?X{qNuieT1PYr!aK_zLh-;w16zj%_8W~(;c=TyM -zq4A~oz1sH62-{rh^T=51?(Zb~J)8hZheXDXPZN}NOXtjr7@mJBwUAHwFfdmSwRC0K -z2_NK9OAd3v;iME|{cwt~hg4HM)GWLJztb@z}OC5#e9q -z@_|P}p(L*B1b6$HmJq@LaOD_T_#@T?Ngfh?kQPugCL5^lEfr4Q*H0M&uL0!&x>5t* -zzbQe2aBe)J_$TpEwEII~I7$n;rn -zMU#DGQL1VvO7yn#SK78BNYoufj2Oo$@1|}A7bo{!-^x9`n~KG%B(xD(HYvs9Qp_dU -zsgU~<>qE7(QA`gD`nfJi+n`Wi;dfb% -zo$|90h=2czORqyWK@DZsM#<1^tNIP2B;lOD=gqCvLY{QPlQW8qUT6XwI9ZnisJWBN -zdrdn&nJvX?)*aOC@zo4zK}r38C!*+*U7dJANmrS87ef5SWn=e`p~wlN@x^iI -zGAa!m>xVeu+?EHKs2|A#B4f}NA#@yY2i6Ni`GxwzEl$(c%u|o?1uM(YmogG-FT;DT -zs~q;C{&_!Bdtz&3e!~#wIv&#)vOlB*^}27hFHXXfslf3UC5vEwlzD|>rAUIIt1`v{DJ0b^WcRFVqZYhi#g}sBt9q<6TCm*aE22D6 -zmDnUchdNgG*NfSEfn0XUN>laJ4h#P!0G6L-$#v?Tw|RmE08Negq>uL~@~(EzVl>8!*OJjwWAU?K&m-u{=1=z)iKi -zV(@Q-?oh^$bC!;jNV&0k9!NgKBnwa*Ag;PI&s(n$fbvynY>u2~z~YfM;{e%#*q`gf -z>5wfnACR`v2ET}^;Bx2o$z)SXnFz_nv0~XmwSQB)|-BdNwa1- -zS(Q53WF7L>NEoD>Z3MT8A^a8f_Eq$+7t=M_%~83o0&5Sx^VRo4A3&*mlfmNHBck0v -zM!3WHfzZJiNY6cGsYz85E;^8)n}#9CjMs^;8NA~#x!UEm+8CwfJq>pCa4NQ60}{W1?KjuS}TSerkQ@RHZChx0~l -zV@uPRSms~LwIAGAD@4QqY%-}UDdDHM4?AR@rVyy#eB0H@s@bk7%@n)1c7-~FslZu9ojV>%4c-)0Pw -zkXHM6Fu&GdD8>m|i^1VXI}-(8Aw8Nj%5V)b&c-aOwK@|ce+WNN7yictVH*bZ{$BqO -zbFpEiMjHo$d@+9{1flsf;G?A`{)nxk?SANysqQC&=R&@T+Uaj4z*)TBANdO# -zyS=H5AU>^?!p(-o)a!(h!bIyShnYnT)KxGLNPLiEJ(8~|Ng;E)f>FdHJdTMXMemh5 -zB;^p$W6_^lNERmXwqHB&X1bSIq;DFIDCrJ0QlhFp^Cku(@>%tD`?5r6x=A$hI#JpQ -zd9qr}o>uX0Do%HM`=krj{>L7b7GdeVsF1(i6Rx?guahow|*%FKkOq)n#Pa7o*gaP)x)*Ddl=^(x5~v`86of7HCH5vyF1~ -zSwS5gQlm~mGBTmIBP>vp(uJfef{mBYkM(EK!4v2$LN2FG3#|gvuTc?hNh`1W%iS}G -zX9diE*%1Ci`;<3pA}s@T4<)BK7}H|tRJO$7bUK{7P@?F@J;t)#%~3TVR3Ik?JI%Qs -zW4*|?5@pRlU5yk4=EU$#vgwpiEq^Fsyh(c;9CcPWG+YJu-29aEZ%u%El@fY-wY7kJ -znx2>hkBX68g+G(T?s1aSyHEaPmkxDv)9jPA&2okIUOkgh{lrltuGfwT+Z=GY_(A+@ -z3gx780$MTcDt}hrj`_`a(*O3T&>h&RFl)ggM2@vS>-E>X;k?l`;LI^GtaN@+pz=`H -z72E5hO6vgJuP+&uXu*#ZjKlFoNRG@)B$W~ky!KkXTCX{Ie-Z$d#UIP7H$WJxu0-;x -zqS526&|$K+PnwrT+rNN}FoH4TqztB6g5%!Bs0yd!+0o3gb$ -zn}Iviqc)2Oo#d}Q=EYusZ#92L$>@%BJG%4S@KeS^khxH<6tHhGuijZ(@m-21O>(*O -z(T|F%8iJTMO`~9ygl;~ap=TFLsg?6@n-XF%JYt-iv%?;lz98>w_|BudUylRM2K)J8 -z;el6qZ=@4Ch-oOPIXp3K+}{`e@*s+Cl?e;AS~?mU^p{noD~PZXek-eu$&0TVDup$2 -z-7`iwv$7_>sZX&O5J-2J$6LTuh}`Wt|guJD6pCD)xQbur`4 -zuH?&Tu{@88doDxtho*qrOyS{@pZ`kq$7AV|*P)TdrU#LBGKt2dEDxk -zg~8d>ND6mue{XoX!YB -z-grTZg~Lv&nlcGLS)Z4x{}%qARZoWL5jgOM0d;-RmvSk`ej(5O3n(SIpwi-h?)+D6 -z;2HO_8h`{s5F}@=e)ojJ`O>#o2vd2|)C>^|UCkV6R&t2dGm());XIU(IPq3nvRd1~ -zcGPWo-&+cCwrh+;V8%dpTj7ja#k+&{8WTzGm5YKlXM0(SCl7~iza!ot*v@-zPwNav -zFcA~J(M1-n|D3yhg-Rxgt-JA+rFBpK6Con@I~GSC`3c}yE%|<)Z`a@D{@Xv5W7I?z -zPF^Cs8&qYh9oqsE|1Nu_cCf)rxBGiPBTamb?lXC%=;>Sy=hLZN!+cU*SMS36Dz}O| -zOl^8R15=|4180Rws0O)GiE{%8z1{DYu!k7ib%Kb>e&LMirO0XftHwFPg`|~LA#`aN -z6fo@`=!2AL%%XzjoQ`>EZ -zLpU$Jb_$`+;KxH98}TXZfxJ%Knm9>54w?lY1c+2QK%2VUf=XsERMgo6Z%|QqG5$34 -zmX=Y71L%`N*>vEO@M&Fm7e9AdHqy`O -zJcSncW>)K-7GuvJ{Ht{Y6hhVqL}QO#p^B)$7f5v*jx$4;B+cI-UHEk|MTH?6IQm$E -zwe^S*T#EsoI~rN3YgxXo8qi^%M9KK0lWj1V4!ikFyW__vxJ6AhFfJ(iCj}bT#i7t2 -zo}H5GiHjpdV-)G}M!FQP;6wsqTiM2(|0E4W;`(2?pe>#eP>e=C9C?{bF%YIQy0VW1 -zkR}~|O65|6EG(3v@U7KKc5$+&M;(zq3}Ir=_T1$FS_Aq)TcBBqj2csGN2*Ei1dGi? -zPUP7@OmXijQE`ek@stu6>+1qG#TIwKc`?~p$xv7|#3{sA31 -zoz0WPrE>U^jBBwP(e+|0I+{#MAg)XDW(jf|0d;uyK|uh1gJ)|oas=;Jv?(&vmI^Pa -z5@gqM4Z=ZvS%8GIFAZhXe;ln`D9j&Njn2vq94++Gg6u^wnUlIc*m1bj7Ca%|%&pc-meCf^{zC)d(MPK>ShVIg|pC3D<^q0n^_9*<~ -z+Y@qaASe|Wcc_OSp59sO?2<{)K>QCO@1fo&xFpby(BkSKekHD{%gBH6F$RI_>*sDR -zMpWormYXS5QD-vLP>Afw4QB^s^vOBD`%ceSq#zj*YC^X`$bxHoQ~fo_whHAFU9YBh -z^(WO+sJc7Q7m|&dFUn8Jb+Uod)&VQw&#-`8!m5yYUi_kvCu#2fN8#LZC8qv=HZWx* -zM*qelvUXOfZ>2~K5|el*PBm%)mF0yv*Ac+e0NtPE5_DYV%u*H|W$Qt)cw&nM`&7?| -z)`qej-eq*z%UWz_GWF9}0GAJt5sVBT4ye6i2#rAu5JENBU~>hLfvveOg(ffRSH43Z -zSv0dMAdxuuD3xST|MG$|^~n#@zob7;b4u19kLSFH*5Gcja_S~_z(n+^yP9v5B343I -z8m5xvaWQ}&8f~E{iZ6sUW#h%qrtuWCgjDm{g^}@t -zncfyET8-qv$oMzj(A5dJIf|&sij+~OttH`Xr<7F3sg8kk<=7V&JT6i9Jvu~);`DKP -zw~ajI;c=`XEI~kU1TrIF%}@*r?<{w1=DkY93PX5f;F}?L{f_@hsR^_~EeJ^+lZgyz -zFeWDiO2n1;{8oal0&;6F>^OQnS&N;$@DV7u1olX`KeeYECKlfpb8>HUd;3~;V>!jY -zco?VUe@pf|P4Du@XZ?ZS50-LOsW+GbuaGtDMdtYvp>Kx&30j1F?hTRbq4kfGp12IA -zfsbBW%nbaATOOL6Q4js%)=3-B;Y1dF>|bJ+x#+bHlIc5t{v)dG&T7%We!KvI5kZ6J9-7qMi;q$>x8-ODjuuZ9CRL(5Dxmhuo&Zl2S4t2UTMP4e -zMLy(Nsc2C(W@j|YSjqGifZu`Eo4U%g8REx(cU&bT7TKDgY1S>(v9a9jaV-j|_?>4E -z+^U`@0jdIMr4Rq@GuB~qef$P#g*QnGeJ2Uu9b=wY7#< -z)noJvn*0vtC%rgd{d#2X{q}JrCUg~fPhI7KqGK%&2xA;wdjdk;pT>8K6y?J>MUVZT -zA$jy6c;=rt=_h##}#5Y=CeA?8F(L;Z>%&IfWgm9VszdZeNj+M3Fa5w{p7g -zFcRivj`bU?n$d?oWtrm`8{-g>g>Cgi(P|*D+(kQ@*pXCz$d(_;PiZ-sU44h+ -z5=UQ7u1SzcHD7iqk=Tf<^5WiLGl+PsBq8#@TPuy%sL9ck@>S?7O{PQ4_`&PmC|bKAm+lML+$z1yNl9KR(7`0* -zsS-c|#0`9K#t0=83ot2kUky6CxZAz+S;5sdb+Z6@222~e`kqxF3K1`(!Bg -z4Vn?Gx0S~DSlVWh$=NPKHr`2|L@B}YpsvAYn-5YNI0n5`BfLg4s^4nY=R6PPW{NyQfiBS4VB7)^175E#!}DjI -zJkkpbFPjXru~zsCit{%B)2TwK^E<^r<`rV9)z**%7W`s -z`#tjzn>C^`+AtMHTpO;Rq7$EN?KwQsQT=3wlQ_8&+g-zH97mhN>{oJk)s@4V5-iTI -zaCA+tB79V>bi2sutTQAAid_D8BEhoKP*!2-992O7fGBoooa_cQ^rVvMTl?kel6{ -zN1SEGFG~bRz0t_Rm5_yB)h|U9nDdE_9&rp?R&Q%wjHxM(PjtQpno0f4xXro0_1_r0 -z+_R7)W>Q00>%1x5hMBwOc5dvMpW@8pZ*$onANqvRsz=R@B3hCedh_Rbq60O|ksLz;;vF)X?X8(q2!k~W_MH3?b!#{9> -zOW(|@8;6r&NU>T7!ThgWqIUgAs!urD)?Oith8e+kAxigd62I0;JpDgB-!3+%Ei8mS -zAyggIgnKXLkUqx|&;0q7Y|GO}E9+C)6;&eIE0M4{p(1lXm6K;skx-x_`@>AFXkqDj -z4q=ditfL}(X(3&uzhBmx2t@;(RJZ9*{N+*({15IK521#jzG;>_$p}wOf3p~;QjbJ!PRRW<(gp%C#GnG&}duK_xyUqwUK#lpmdER)2-Tz?Xdw1iZx`@@%3bsrl)dT2z^Sw(j1I -zzy4yzPBrWC>_nDFf&uz@;E{*2KaOXQdZY~XJnetl*77&`gvQVGiF!Epf()q%=LR(# -z{%03j+*LfQQb_IU0r+V74NW77*py`TUo-|HjtUvGg3l;cAj;nFA(SS~0{j(DiN#)G -zFNvYgT&@YVoqXewPy`y~hwoxOdA;s -zjx#be{Th44#yek@o6gg072$9d3cgR=7wj@=5ub?-a2p)vQdX=@YS-@Sh&LKYdim -z;za=lZsurj|8W*wGBR;~bO%{oUx0`eowN!NMV8Nz -zPTctM$jmn2b}}Gez8m21Kq*ISIbZi~WZ(~w(E`1e#YDlUFl$R%-Cd;?L+lnkl>}1` -z=BViUgVe~ti<%A|0oT#25x%|DwR+)uB}Z)kiD&H8DN`Ysshj_>M_F}!V=z%UR5h=7 -zbEYv1Xic)Su_7n`-OH#qNBd)Lp(5?5pZhb&9=oyY2%mm7rY5Tie>)$KXTNs$$)W0g -zsb9QO#oK)mThRNBK`{N5mI$N9&8q-+0O|veI@TkLxh1BGYMXHZ^X7KTb$4X&Uo4`- -z;a5V|UWSl0xt+{?^AR6ytx`WV{OGBx2CqUr^s^u{z-c#VF -zKi~AF##<~p&4%?VL&Gl8Xx(O8#-`Dj94(aNgK+;f5ZxWcP*$P!iadoS7EHCCn#ut9>a@SJGD>o=j(3*8$R*ac{arf#gB<7}$J#JhH<;92KK -zzd)#j2Eckc9d!q6Z~j5J=AaItguUaR5fjgqlBD?eySds22_qBt%9wS%PHGQI+QqWb -z-34a8+xZd3A(G$8+iRG_c8;7w1WHEhD&vjypxeolrGOOK(3BMC -z%ZsI-(<*X?u6rO|9QbiZjrCdH6`B@y)6O}#m7XK!JVf?;43YeistW&b$lYd@;cf>t3 -zTyebQpP$$2x*UK4M|evm3Q2_r0`#GzecaP*WLb)v#$(on`DwFJPaeV=D$(2A)kDWV -zmghJraim(%epQATMZ~aN6dxuPpNY-kD2R -z!)vUU+$yrhUb8xMC8cOx)r{BoC`p59t)nwuubzqZeht=+bC4rRn;)+wtqzN43! -z>5NNm55_MrO-j~czV17kAs0yiv5J5}j(wI&T#uvaRaNKJR2GT=511`UCq= -zt)x+e{wJP^W4`JeoA@M3Z}%C}yRmi_@;k1Ah{^_-9&d>sxilp*BX&n9(UDo!_dBgG -z0|561*W$7_6ljh8$XWx8!6U=IPSm7?6Nl&vgHJ32po!nXqr@+o^JtsAWr)Cj8>CjI1O~+%3m1^ZVl6(7sDQpsP@-5#RURPWdJ`&C^sXheJoP;@(EXGF1F{ -z0rpaU_spyJHqYEsu(+$K8LQF7uf|cDZa+(GL;KVs1Ghf81;|gOsWrBX-z$h}6y~L= -zRIbSwreU*#&!7HV^{yGBbPU28hF)#OVkV2bT3t`MO#)O^?jr3xwA}D45PoJ@)hZ!j -z(VdQEuV65}&A}D=y{2(f%_4WIq(3AJiL#U7dm}Q2++j8(=r4|*{SBY6x#`^5EuQq# -zDef30*7Co0kc9_owJv?4TSKy92A64o5jQN&uak>Z}))Q`#J19R_HxX=EkdhN=OPi2D -zzd}mi+_10KxRCO`TQ4dfa=oa}XbsH(0EcN35ykG@G-vb= -z>2m6D5u?q&Y*b5AnV%K&IP9N0&1V}T{T -zF%3N7^7LU@tXtcuS%6vtyR*gl<#lc=qQqz?0flZ~(RS_c@QV_G8$wOZacu~A4pt{m -z=HzEgy=caguA&2Td803`aUlQ`1}C}4&gPfsO{O!`dL{6OdDA2|6tO35?^*pvS$O}A -zeuu#9V3(qZJTs -zF>^?a?>k(?l2BGaSs3VZZPWT^V)))PhiX1-EE_g{rnYmduzx&R-_r$!jv>1_J6Z15 -z&W`4`Gw{*z+ostVl-o&B*(5= -zLiXk5Iu7_xkHZXkp>wjXEtXU0**CK9NAN6;hmMrVUyspTzcX;aNu%6Yr1FAy*+Ek#cSy0Sh)YEavi=hd9#0<09}cf3@``5>A6^fO~&`7B|99 -z{;Dc+i52}J$^vs_b!&E$n){kEyKOQ6(GNJxZJZxPKZoPkk(7cc{`n|oy%-b*#D+Wvp$#Qt&p+oHx -zidg9U*t0P_#g{ZNxN%Cy$3D%GLlaTKO@;}b$LYUqdyR4XCtmobN+g(agNrA1-tK7I -zb3kcgZuS1{G@iNmgB}%~W+WMs`6>QW9}@Wlpx;MKFS@1luxFgEJlj7@?5&OuL2Ekf -zwG=3KZ0*&oMMGaCIPqP~=ah5}MZhtT4D$Z!0xgl5h7`O-1~$5DgnkyWtMdvLhJsu3 -zE!*$=2wsIqN%F(ehAZ?t#ss5c2rL5@IdY>YuBYCy65!-yn!Bllio*K9AgoiwJ+QF} -zin|Ms=G|P$DVM{#jWwSNOumT=%L=C%ld@l0Plz{H&N~O_u{Kb3OWFQ$@I+^Vw7=Ew -z@4HD>E7^;!sD+DD4UmHk!k~YMopUd8nW@N%@;`Of3+=tZ;0L+U;QSwOr+1Fl;095M -zFU=U$N*8qtG75PxnQ*DkJ4>ODK#3lan__!1*o!1Luw@oI9j1)g+@ClkoY(2z$-)Bs -z=kM?^5SWplTQg0~^#tU%Ft|$e(Z;n%U%pD=o?Dtq@AorxxZOPTS -zu>snbXcs)BG}FJ&dIR?_#*C@#eI6^6J-_?PLKe@jbzi}An{9#LRcS$90Q;$f56_{c -zZM@DpHh1uI(d5Qp2Xk&4zE*i%t)W>p!9Wj~?Ii@Xp3TMe#3i{>`NT -zkOh0dNzv}hw+vLE9M)ObdYzDe&+Cf}{`q&Yik`&0+2+v;R~+y~W1GoBP+s)o_F5Hi*Xp>Z#*PT0S?0KN_+!{~|~5;q7J) -zmqCb-5)g$wP@eYFvJTZwp>WK8moh4|o*gLw&z-(H;b2avA&t&wjkb+oPB9gyq) -zYW{NVgnA2d41nB|T+GHtdv1ji>hHH2hGM0}SUS>vL%XPUC3!A2{hMebC!mwqOlg=# -z9p{#W=@2?EdkXWBYfTy-C!!xdlPG7tvmSqU1id;YVj<|oaJ0L>IjroE?pKZ~%FUm% -zn`mNRbx{;)^DHpP18KwH?AdyEbazzk8fQ7ggd~K)kkt7tNwAZwUwfD4bPO6BfzxO_ -znG1N7iWC*E{S4Plky%%R(=`O)uh*kSfIk8z)bmgO=1f^F?6?hh-ei&fe7jY9v+Opa -zq&JfT!`PO6Gf-JYTpMVg5OjKaFe7{h91et<&fI(LUV=tShYt$2c)gkrkAB(7)EfD>L@my>ZD%SV#W76q;wC^z*u6VxKYab -z(4by43>|Crg_2z6_L>75xBnb{+qcA==E1unS9(anYA{e-iu$&L$J#l}RkwKfH*j$k -zP@Cg0WiK(sk!o&R#YEe2+!l>~=KcGC>Bn^}npd;l#~Y?K$~TY$>pjpCH|wcQd&uED -zGlH)_k&51rI&4VL2wpM+BIWos4oOpvL6)600WJGjtqXU=CSm2m$|ux<=IQ7aI?&$( -zDp0j1*7JeytIG`Y&1!AQ>eo-gRL|W$ -zES7svWFPXaORVy{3IH9RAWJ_F=8==^EA*^4ZC8*~3M5l_fYa&5S}&<33~*5hIZA7> -z_=g-*dzY~%+`3@|f2toeHDBlyF|lf;TjD#7twDG<=V3Vci%O5Tax$u*IxR4Cp=?xd -zg0X`*0}<4&-iIa;&)O~;Mmda-f8gyNL!Dyf+@QkS6e`c1DC)=`vXI#Q?fwEaW_2K{ -z?Yca-(3&-`Jl7z4czr2>H}B&&cHS4}#eQdym|0sO`!(Z>TCHO -z=u@bgsa1+vLqHa^OsUWnK0l19gHuK*m&jfip7-DQ`M+YrgRSn}S%lwq)v94p=s5VN -zy?DPe-j>)4rldB(tq<7#vpT!EHMr?J>F>%!QHrQ>629!@&xU`;&GN7JyQ7e@(U{*Y -zYqG1KgthKqK08u3wJ)x23x`x0lXVi#NV~=tPJ6Uif-%damjl))q?4^oYAYXNe)tki -z{!Q+Qj>%yx#_HiM|Ma(beT(?<`DW0H#GuqtISd -z$1jTLHYGV`=esDstHk2)L<_vc{BGHfB*wvZlJTRaPSyuln9UE7Pq^a_{$LiXhf>L0 -zyvk)74t?q|1BxuH^yA)6>z!AWIf)xz$P`F^r?lY-+E*T(ozhsZ$avUGo6AF~iPh;K -zZq!Wc7?4GDWU{07m>>*Q7@w1oN#uLXt23>o+d?bwCcr>fVH^~inb#7+q?*0T<~7`C)~KQv0_S}t@r`8jK+5fLQogu1?S3v -zq(B(6%Ib`4;RmIUzsa#{$T>noIM62QGih1IC6|OIwIKu%u%%g;WV^X`Q^xc?WE^%l -z#-naUKhHv)=+C}tNljb&B^2{ZgQ(v`mh49N8OoHwsmY5OTteGcTQ2t15;LwE(^h0z -zutblZc+vMR{FwcpjwD3HybZp&uIWg&yCGrVVe(MjUdr0J8w58UfIrM)_RFWLdTFf~ -ztAMN{P3WS#&+b5GB&WIJq1jU*BA|Zmqe{y0vEC9=e;K$->Vi!lW&9IOFBe&qrH}cK -zQ!o%jgk#B7aO<(Kp1R3q8t^Yr%AB8?NlE%J^k-YNZo*%b? -z$g_jOZ2qyVQpAjFXI&&alO#;C-iT4QLR9V5Vy74UWPcmFxmIYoh#|-Eu$Y55X{P;0 -z_upOmc`u0+;Ib~g?$O{(klxQ5(n?p!rttZ<%&er?J_Q|j3GzgG+SckW%%up(y-jd< -zV3_>nC%!}O$}mm!a<7IPM{Cu-x#tuNfT9)GA`+hHf&& -zMVqix=VD!sbL~BJ+^ydcsWAGur1xdsON!WUAFc&&ykkybc>Z6WL}J<$V;2_64bP|4 -zEb-3;-%mAlOM!ArOYU} -zNRK#$)cNgz$JRHt?d&%jKZuI|%gXn9KUDLV?rj^izAa#X>YbWPTri`TR_g5rs}bqn -zg;IJsl$|=oXlQ#O@Jz_}pF-edaFp5Mt%i^ID;HXOrR0;22#~x|9Py6RtXG~{-rqxl -zv3TS^1%(H=k~UzRMttiEXApF~_!ShyaHuwe*v)k#O%Ekj*^9qfQRgZhx)R0T=qgSJ -z;>K<61_xWneeZPOjt@#^ku;XD@d?KWE#o2OumR2LNUUM%+H_ZSw-I<+ZPp3Tdu#+u0A%(N+h-%qMAx=x<1-W9tK -z-+M1`VuLqp4lL3?m7aNEIn(|P9ap|RM&g!*$jD6%>9NlA~w6cqe>Zf)vG;k~7 -zc?tTK!D4{Hv+I2WNUdd{`X-WH_&(q%w}KLf9_Chr>~~1;8l>SYa?)ivrF%FY=)WEs -zTN|z!RVX5Vnq}~u06H6E;~Igs5pH`^!$!UAQRrx@$`soywgB-1DpA=Ug5z(;NVdeb -z?m^tGt&mpjNo$hhbn&XQ3!>4u$ALo+?3})7(8CZ@X9<%)>Xnj>N|Qi#g3GDZ4xwsl -zn_~JlSmt?c#+V4{NE~xUjsnF`6_V$fnRsSqhv;mvrI2U{STXy98<`(wSl=lyWgoOi -zzoeqZJG2A&Q($JtkYp@w0!N7UPg{;A`t+O26vW>OO%yx9Ud)GP_!x)riKms?_E!v8 -z*SS3Wo^ew~KT#bdk~9z;lRPtegwv4lcNKvVT=T#OeYmz5G+Ag>7Kcmuw3eE?#gZ>o -z?fkwm&EeQdG((R7#aOe#u4PW^(t`^Cv_g8}5=Wl@B==v@kO#cn7oF-w6Z#ftbJBk} -z@k=lKl2S)rCK%qYKsV8BwdUXGE&r}3V0qBw`q&aZIQYjhB0Pc#vk_K5duYz(o!f-f}XaSE~OG)oDJ%$`~+nQlkgeTG%m)z%^w -zl8&R(?LRoXD!b~w+lsaUgtQD3kx3&le=-37f;MgB}0AXpj2th24vGykPILU-k-=qS(Lglq;uFmtdc_6%>l11b}66K+*g -zv(nn47fOeyUASvU|3EW&!76i+>!iH24|JN!rw!P%qUu?BkX(aR>m{+Qzf-)Ka=)I; -zEVUm#cMDK0t#`m9(Xm3%ZMoV^-&Z|C90*Vy3;;_Tv{Y1O@Q*wQKZf@(Fp){DJ}fRA -z`sXcq=rI4<&lPQO-NlvV1aZc5D>{Gj3u${cNQhvQ{k<0e13bHO0PntLVCPg`(g;-s*vTK5v1s9zZc2&75A6128NI_Y^0`oW_!GB -z=gc&}n?m)r7;i&oNIe-W@mUDMN(l%6B@Og(%PmfzloUvZz*S!8Hf9@cGd9D#0d^U6S^x|$d(-)~oc -z93uM;=?^{kJ8^GwO*6G;`M;ZT(a$F*M6{&;2C!?ub)Q13TT+4@&S+i8&4Q}Kje-X)z!}R{C;@TMuA1L -zzy0nc7wIN#5D$l{?ych1Fpl{7NnB~rYiClXx(cn63QLf?TX?pmt8P{H(o+ft8xMb1 -zwjts3d_-? -zx+rQi&uLK))uo*hj78^)LNg)=POL;nyUJHr@J|!#gfhjoU#(9uH|3*Xejd(G!!eBF -zAB5J=ZF3CeDARO2VtQ2mUVcWVF)W;|-gh{FqxNK5D#z63SB7E4+9^izr-?+~$m^%E -z21{|BG#RrzS9uRp*8wl*Ri4hpEn}}6@1Agh-1KXiA!PtE^dhQUN^q{1d_x1*n7~60 -zFRpXI{W)0s>U@K3Je9*QY`7WAT=c6!O1lrM7|n;g0ucH&TWMyk{AG4QrNz@to?Qmq -zIZSi!x5(VjEAOpIH9j8e#}vhR;fPI+b!ktxs8HcIUQvgMX}-3viqQ-lR2vOWX< -zkxo4BkZNY8%PaG!3kHty?ayQMfv+GQ5Log;>ufDGVMnyB?FN_KKOg_YUAF<^=^%#z -zIrTT@0*#*ROfvT$##FC7N@9lRyjrIq_6g!TLdaw5Xv3i34vueacHcMHxsnx{)+HEr -zOQqty7qLmp9c1!WJ9zALg9!mOHzQvVbrpc~z${Gk;c{^Wq9-5nWW-@}melZmn0ht8 -zhl_)f$X=Bmc5hs43~t!>p7Bw3&u0=9+jjBPZ)a1A`HzjsEBC-Xeug)>Z!iP^UeJ9h -zy4OmkbgM0{Zd(ScsBBIQC%nPi1TVmqJY0K7OiIKRV4^*Q?*$ -zTCkj(xq1&&UL*$mY4!8Kd^6pDR(lc$J_))!_gsZ)kDk`;N5^c*n=$>}DmC8K27Ebr>CmrQ)-I}vh}XMn -z7T@)_BKx*M;h+lEZCpGaw$?r5=jL(x<17CZ;@H_#I{prAh$_`cRVUZzLPHjMGps6R -zufJI{ud?O~9~UBV<=rizq-w*;KT0$vOwP4qJi{>{v96|ZcovppX<{%Z*kYF@9`-hE -zXZJBo=*53agJh!5ttYU@H}sTpK6ViI@kQr_kb0S&K?d`G^!(0ZG3!BnwiUNUWE_6{ -z_ylq9d*~qok7tj)>!Zh6ZMK>2T_vPG^m|e)2jOg5>{nWY56C9rna=GNYL`gl*z8g# -zOHg`PxNpNMJ+?vav<^R|r^Ve;Icsg1HY$HPW3&*^^Eq28OHQ_PKj&LY -z!sOIN1+wJ`w+BVTPqsn26AV5T%w{ADOW>+apT#*2P -zy{TQ};J$_S#NKv$_S8DbZL#iCZ0Mgi|H`T0lR{CrT>oSDKVMuoK#Otji990zk)X_} -z{NOci(zAqP+U4%&()ExSAvjo%BVDG3jj<%+@U8$9(k&Fa=`|9Bs!=D=pU;*2UJ~;0 -z?!XN`FL*^%&%;L7yB5Yz7>Rrv`KU(8Z~LG{G5-rzh8*uSb{wT>kM2U;-4aCI67r+x -zuLl+>C~oB+WeopG$Q_smy*{xe#cC|25JWWlAZ17h$}vO!@K8dGZAb^Y)=})pQN`V5 -zQ~c6CZwP-?Gk$B}6)x8#>>q*gDK-9Y4s~OmoHq1^JAe5gwR@gr>xn}wj&IXzho2U* -z51D?)lD7vVT))dY-S)}^`sZMLTrJQ1Dj6hP6N8i_o5qT;j#)Y)X|1vjGL;U$77rTh -zL0e5_!EJ9XvEI1O|7t|@1}~rX9}R74p4dpnPa_%bcVZ01dc}~~`7H>4o}=BJq<^u} -zg3){Z#dPRcFn -z5B}r*=^9<=c!D!lKDP&27bgy_bjf}0mDaTIN1Y92=;$2z{x~Ent!l?8_!2rtk~Z}= -zx}UXG8kLm_1`kniR;ibpa*h6Iw5~NpzE0O^fR&TB_jAwg{Ze_IE@S@&4&Hm?$WvB~ -zI``9?P${Ig33kU%Q7zZnJeg2P7RB(}JC_8ig2z4nJ!VInoQsU$KD-m+ae{%|21Q%_ -zwE8;vH5f<>QKPLS$1}O -zz5S{0zO?hE%tC|i_z(05@GQ?pzavhq`<8aC_Po*`^{jGj?mg7Fl6-xK6Y12oLHA>< -zDRQlAtTjeR`krdU-(8LIT-ZemF^;nx=UOmxC}ow59QMB7*l~6O_A7aNx^FE^nM5W* -zg2MfeE==WK^SIy<*zs;KDjJdHG3ðP9;3@Ds(O%T4jhF;0=R_lfKz4A)N~`?4i8 -zARs=lBh#mum@c2KjM6_QF9P=i>QGnjFoHs%y(_O1$h>}jA1_%{r9N+3Z -zC0(i8i{OKIF!=nElS~@UwXX|Vr2H9t0c6jEv!_T%a3t_NpaoY2qf9I6B3SD6{A$pz -zo@gOh+>nCtTF9e~n{MKAbVT!X*QLoqY;!CYy$QEtMIFrKtkNImO_n0fnwf>Qv -z3LJ>geeQIWm~6sKb!8~4g>CUYw$Z7YSG8N}94@b<&7wUB{-LDXv3`vQWx?(TS(dF7 -zL1hqD5-o(IZrCA+*!F$vI{SWPS}MC7InC=OJtl8IT|eb|qGw5DK#teYlI^Qwi0>3# -zQ`U>tQ!lgqt6%l__j9N!ne_TV?Xpp3qiCuoqK8BOZ}9T -zbF(d;r=q9QFJuE`X(JEmrp~Ok{xo>*Aq&TfPBlG7odiLswis8zJo*ejYXQ?>oR!7v -z+-B)_sYk_P31$m!Djw>+t!9=atQ)Rgc{6y3-q-jPw{vc+8``X+RA{Oj&Cy@po?STg -zj~>Y%@bQ8AyeXm@Zxwsyyn{vT+c4hexyorF${+qY*a+nY+#ap;LT>haZJ(R!9fs;~ -zD>s|p$tl1ackOk8r^~lYK$qk7(A&7?=YCzuXltMsk!Wdy2dz9j=y#>6baKW_FYFgwqvZ8K!orciCGlQ5AQ$zylUuIH|7R{QR~62 -z&C1R!w!!M_AYU5XRAS5{6_<77vvGb^xDI&941r2=zm&$!2gWsOFE65*NBVSzO8+T2 -zukXz-7B|2+AcIwDDJPCgFRrNKMiw)r>F>{aw+924wbrSsk6Fj8S{CU%Jz&J+G1gJC -z59jSD8_6Rcb*pnwpxn*vbm0jb2Z-_Bq_b#E+^V$Gq?^%n>LuBSD*V>-pf^ -zUE@RMl#^bLIS9)$VsNKNVgJ0U;cv_&`Fds9#He`(YT7}zRciDLT(=a>a3S)bzd1_j -zf6Soo1<{HC_2m9gGwlD-bkzY-K22CkxK*s)&bzxaJI_4Nyymzi@7MIfww#-UF)O>Ag0q_d87zK`~<`MOn=lIB8+t%})o-g#DUF1(cJXolL`6jn{Inev|;lWGldA7C5 -zCM_Jgi#2NLW;l-F=vSfs -zFl=Jq8`D2;$I&C3g-5R;%V{13-@E^^n72dtyg<_Xk9w$U -z8fRh=$~{t^q|Df#Hia+d#mJ8O&=4qVTiuP+l|F38tv>`j2fz~hQ}>l?w}xoD>lu`#T@FrQW+>{(w0J_<-t$FMiFoL!@uRmBG<|(6 -zQMFuleZn3Jdfx#~?i@&7AzIc*)rn=EAMQw0!IY-&B13pN@{Sj9J-#&Z?EQQ|h=4fO0!cu+Jt=G&X3HWm|- -z`8iWrlqnhk=_SoZhBG3;ZBsP4oF@9g=p7R|X3F8;oH;Jo*@7azMAOTav-yO=mtQ*R -z;vxb4WuZvOA>Y(;qZ9CsK%&YhKmJjySTx%3@a=JB-5s{C56o){%JDU!c|@_!n7CFp -ztKmf)OTZ1>Ef)SM{l5b(_Z1~vyF -z++n2LV;qNJu@A)0rf#|lT-g!gEvVB&Wkg|o>M(4YVKfnjI$<(O^p}R3wMrS#ouZ0{ -ze&8LQHan^c>jNN7x0mqv*GQ=qc5!BN?@~x*z;zbv6jA>yVi`~~tYd$E)#P^dDvfZ!wLEYq(K#dg>Umu4son!u^<@#3N1L*1z -z{--3!($S&s((da4JM^{YEt`~+JdtKzF?~+LNLnp1JRD0S-v@%Dpw-<4cRQN1P{9VsnyGCO -zjfvk0m-mV^*qrR3*Zw{LU?BiQUsbQMHTt&N*lt4)M(+~YMy;*u?}BIXEu%)OW95$G -zk&Nngv=4s+u9cMgBNi;|{lYUtKr}RkhH}>?-}50!$bv{HslFiI -zGqno$k$HbvTS>VnsH!Fy`bukQr!N-0feG{?^~ahz%aZDM*##`;YlT-t+uXbP^TYx> -za&L(QsI-*(%{QW?sa8W%8clx%_!h&j;8~R|UEePD!dX|$57pH%WZCFeXB+QWU3bZ| -z=ZRtQ{NpA!#EixQAtXQB1jA*K^{rbzX=e%2Ee8t~F;n2agXmM{a9Jmf!!)x!Q)q%W -zfN0KOMqU8-f;~?sO#Be(Gc3YplHpG}bx+c4QRd=*z67J4HDPYAZDe1rHc%*8Pr9Eq -zf`zyx@3u(s@#f)Jp_uz+=#b>Npy(;76@h=k85btvWaWZ5TV)2<-`7s%xZ(m0qFH$ZpphIu5UrLVh -z`!CiV8(%W$E}GKZoE)xq)RS1X1}>|EoJeao99Pw?>PEV2w~bXVb82bIWBJKk-L@^E -zk7G4LbnXBb@%@Y-sVgflz)*Q)D32wA#><)Y_jvkY!UrFnl%$y=gE5~n44QJH3mX7#9N4GlJaZfLjdqrWyxjKCAlnaGMguS&`+3$ikR_UYqtW#QV|m -zyX%t06cSenqpx)a$VOWWq6HWNlQ&lq(Ehv~aO&rh`2+u!QaLCn`kN4j_v`Gab6=4x -ztHJ(4I`~fNQ_>6lI7NQC!TCtLi`+jMFob`~0-@E((wl(6+(X;K*+XO1|BzJg0CMV)xg8K;s11~)%7RMf%Z9F*Cyn!c+v -zjIGU-M)lRPBRWt8)A@*(g4Z)K!r+mWKt5%x8ZbHtK<$y%kJuuYPke)ZQ|EDXGj&_A -za-jQ)zq3pom2a4wUk87E=qS!wN-0H;JEcP2^=Yf#y7tEKbz6S*bBT)|4`G#pwnc2g -zV}93{Y2UMQq$*7Pb~#vIl=ikF<&unz>_{0um`u|;{adEd<1`Ait?_Q>{%A-V_6(g2 -z$4V`g$>~Rm<`G)pFuc{ym9ES@H#LMvKK33ILbi|aVXj@z`p72M)_K{mUwCwMRX|Er -z&%To3thPrMWjW5lU1ps(jL|+?#`Q0P+k}z|gFq+LE^^s!n-GWDUS1B?w^t{}{(;E! -z(BwXdJpu=K&8%apgWd&athpVJ!H9^zTSi&g3Q@~J_MtsrF>i|rZLHCD&jutN2jLv_ -z#YmSQzn_?uPsH=C2(NOUQ57B9jKtLpFn_fSP%2p>*%r{;sk++%mgIkpk)0fnJ|M1GVV?ty8Iu3%#Q)!LEldZD<;BXE9S*b&!x|` -z;xLoj2EIa7CwPz%k@nT79p7%?nt4WTkjqy+tl%AkRfHOx9nRP^lK$Dq!VP!ZFiQ#T -zkH-$mKHl>HM*;5x&!2cV2u&o@i2cy+pi{{37No$fpxgV9R2SFF$mzRnU^Hejid!@V -zI`VJX?85n<4^jhN(K^xMM)6!t(x={hFMQu%ggT?s@(O#vk!B_CygTv$_zz$!k&Vmq -zmGsjaIxgQ`CEt<2g)sjLwD=A+*FT*@^Qef5^hinSkWL%;r|=-VvvMD7R~y~FPw~Nd -zsv`i#bDT1~z(j5Nz)dtJqUsR>bh}|AZzm*4mR53pcH>T9=bkkyKldDY!eAk27`jIT -ze*bLv;49mL%rU{|=C#1iv$D#Py2qgP0-ii*p?i;0T;$j7wH}BGoW#`(B^{o;RyEz} -zd24U8@hRBP3SxlPUN~F>`lOzJg=m&la0EyQLQl!cUJ;G52)CnWWIok}*(mE-7uFep -z51fjq+vjaW>4#A9QdF~#kR)&8&1?2I=vn)I2c5(}F4>4-vySLcZT_^MuN+B-J$X-O -z@I+2Kw6H!Z^9|JIViMse(Vs?GQ>1U5WwF#BwjxRm{Hcp(_y+HP3?yE`e=T#2Zb0MZ -zYc>F&X|b*c)m{_P=fH_#E8w -ziXQi8E<`bZl!pv=2;j-Cd{;Cif=tnAmr;XmKrdJy2=!ES=45{PRLC%<6pJ*b?;R1% -z4)dI~zT#>DZQ(e~k-eI|g^agT|45Eb*34>5O+ftv*sVmJtx?M_N@Nu8QT`o`bBkQC -zb3p&F%;tlsj1fox=_h;-cm3r0rukq`V-@L3jQuR!z1n*$15oJVBz`lh)GP4)E4d-g -zJ2abFg4W@?=u(fIPtY#P`W@SHWZltEwHjEe2`R*`(#t!spSmk_K-C_>RTBMF<(-FQ -z!X}Tp(ZRc-lgWn!n0k%U9kFYBBtqsD3sFGhD}_v1om2^*`JCTp#n2PtBdY$fVSbD3Eh9$uA0Z~{4Nd+IF^+1S>|ccN;FKWF_m7$LLiq_g%M(&AGdoivyhm8l^4 -z3c0r{jUeCc+bp-<$4N=e6-(MuYT*({!H!I -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 -zaR3u|wW(U6#l+Lgw2BT`ZmY?opE&n=529j-- -z3la7Yws6)b5X;(+E41#PV6ByOE*%GAk7}FRJt&2~MGDe-ffXJlUNykj9%EqLe>4ar -zdj1}ck4vip5Ea}qY~eOF{v4e|8kO`Yil5~Q-2jvr6t)lX{I}Zy|84i1-|{@F3ZtqI -z&jZsRUve052`#fP!$Zv)YVI}UCa!j##^lmj>PMl0@i{j;4%RU4@2EO%#ae+6+ -zQcvDL{IZD>{=^dKdlA9!jiCT_sd+fw;mcxJGagaP|H`|L0Dx~thU4EpajN_1 -zb0Rq$R}@pm4{2=&-JEPC#&HuP4lhv}=&}HMD={kleH`zu^?#8uwSOzLOjSv=d4*cJ -z%qRB)N@|khn!gFrynZ|}6tg;?bklVxgYhDcVAUb*#P2DIzY^s`oI!AHBy!m@^p&=Ay7vzn~W1HYlw^++Ll2{%tM1`xw?VcHkW3lu;v`MHi -z3EbSUoP+K?45<-^knDs)wJ?Fhcb3RsdxqnV%#&oVGEIl`ikywom1O277)w!wrydq| -zUjNR>DWmuW==Or6Km{=v=X?#a{_~P%8#`M$QG}3uMhjxz0w7 -zx2b63H$bNt)3<*VL_odfW1xx9S1vCiv0vmDqj)@wv=}+LSKo1bJz#m22rM_B`T6(I*#8FzKh|f1GmH{B;CQG?}t#+ho6H` -z4w_9V8Dd$tkh6`gyFdRLdUOR|OjuU)b>WLu_1F8Ys1b5;ic+f=TN+*nekkA1Oh3BJ -z=j-z&$Xte*Pqdt?PJ>3IuU37E%}BzO9u=&_-MFN(YP_jDn1WkA6;@!N4lUQfj|4fG -z2_U)m%~p7rky1I({8IO -zWd3%Bpf{>lzJBzz(=9N;Ij4%e8mWwA+@m2I>G{jk5(-OtR8H(mbK{^?LBi*ittZ|o -zL5hNGW6iT;KzcE11Bj$nFeEmAU>b8`U}Dc0KP4Gb+*>p#05ruyG?egXO?U(vO}GT8 -z4%6?5-5cc5uR}|YuXp&HJPEee3;wL -zknJu(FO9}!XG;*K#M-J{uqJ+QTmV#IUJdYWnqe$j^47lB9;jxNP$t6>{hb2(q{ONd -zXD6)Z2;UK2H72VWuNwepd{sL~aQJGQ0&=-T+Z-4QVr(95t`4Ug=(>Y@U9fzaXfqWs -z$4sSRoh}>un340X@a8<(YOWPN8apOK>FTTH_xx>tw=;o^%JD{j6jsxDs9XJrXbqb? -ztLd9LCRSv|aP&V7VvC+1w(H(pZ*23iZBepn67VK*XhuZnxZo^_>@P_T;GojrtGk)wuGK(k(lk(ig -zckVl=j0v?qbh1Oqmz}7{^`#_E4i>;p#zdgu{(3lpe~=bzDg@xbG)yipss5#CW2jn`I<4oFbQXM6gw -zBV935Fhm4>$1>bRrsV}JJG2u7$D|*0jiq~$f=D^iwJLp?Vet}6p+6@qXo$Ep7&q9D -z7DhQL<23h5h#Gk0BJ*>Tjcyfbd1Os_L2`CXA)3-+F!?PXhA?1SfkXIuDp#C?YPOD+ -zI+G1wFVjPY$$Bi;P%zh@Re9wOLVX5hd8_KfgdGwKifMI9SZj}1Q9pZzoW*oX_23>C -z&8SEJi2E@D;0_>u+vGWqgmp*I6k?gRySz}FWu+Bng7?{IZ-w!ql^P5SB(eLwdUHOXyduCy5#B$To -zatg(yfNzUH&8H2uwr{KIHL!AaO_FjsFmrtwB^EA_=?1y-05?j1d%W<*ElIxC9byg; -z3qSc_WZ^B2Dy|izs$)^q84Sv9LYzraD`7MIf~p{Co2eQgl%!mQXopVmvMZ%{j1NLU -zO%<%m8Di4SZGH~x% -zXMIycixu*{a6!-SS0N43fMDj+>Heifj5xstoIm-!2DtU-7^=e7?CSM|rzcp;Ab}5F -z2j1i0hWX+nj}$5`C8i7xDsLEVwt%=$L`={EuP}LnU$jb&=2_fbl#OWlqL};6%@9O; -zy9X{O(4vn=uFA9pxPFEj%a=gw7^nce5pPaF?OEd)6F%Oq__?by2~w1x{)!O&ln0-D -z;-f4O>)ilN3tlQx-4T)ZhPtVI#49PJKi`{xdL98i`q@+iG07Nj-GXbnsup -z<78MQ>2r=i(UoMv!Bvx|yzqyTUc$8d&lW4Ch!ONEvi~#H%j~T}=Nh|(34^zP+MCU2 -z*;l!a7D2Ic8;-e7M1|(!jyvmLG+&1pV`nT0Jr~t7F?zAL1*9q*#j{WFnHScBBR78& -zC}QzD;T^_zeUMit$#e9Q&~qhw<}~dMyUrm#Mo!eHX8lg>jV>${^7qpg^va9)-oFAX -zks9-STR-3e>RWwnQoK1c0JRK~QMWxueIA4E=T?ezd{b6tR7A}*UVS`Sdas;*oVP{`0B{JbWTU2Qez-6- -zTLrPt2>{Rn|C8z~B7fYLzeViuB!YXRIf8{dfqZDn^8eA0&S6C3o?oJESoSxad-@TW -zZl%C~w&@y?`EeLGw1{x&c&*$Tc&}PAeVfhqib+ThfroSuw+pyBf{a$o>zxU!h83eCca^R|n1s9@qEf14wQP6!R1n5aA9OMcthwpWc!J_tBCp>cEaVpzU6onyRN{PvIfxE@WeJUB -zzAIw}X7q{M6w!Pvj#)4`#IolCBMh!Oc&u=3+F=)WJ_~D^Qc*(H2S=?V2Zb`&87L&v -zW1$qT)Ho-t3tumLyT6PURpWfpYr#&G@Sc^bLXNZCV;3M`V3Q`*-dRZMttu^FW+jE! -z-r=j^LC@`k4tQ5z3?RvR5`=1l8bi8yOXfwRgOViB>;c0q75<VKwXsdDb-dGQC?(c7fBn(*R!3A5KuSG8zw|;tEs;y9 -zz5wxC&4QX+0%mDpL!m|@YBF*})x}<#6%=@K_;F5 -z!QWJKTl{93^vm;FnuL -zkC@C=&3CvTnIdld5UG8Tt0m~%e4FW&VDcqy&{8F0B1$yqRZiDYefHCN`Iq*Z%dmsh -zxL{r;EA9uOz-i_lc&*$-=wdk)ebUs*oYsb3Svh! -z9X^X7#N__t$8x&ij|#o7tC+EvQLIG8x602@+dyNxGxkayh0x%E60+WNzDhyXn_d2_ -zh_C|kj79Y2@vQhCu+<-Lx$>{|hl#)NYJ!zn4ofjcP{y7VhcomY95;l;5Z0%BkKMD| -zRH%A=v!dxOEV)|O(w%<_W4F&EI`T~Ye*Va`;v9e(;P}I5oSpo(c>1k(G`j*vKnE+V -z8KceY`VE$wUM!SN8HDy?<80`tqaHyvPSA%3nlcawb>512#PqrBEJ91iV#4N#Ew@mW -zeF6YI;Rs(UY854w3i>ONR$odgjq`iRs+!7L)6>g84PX|Yn-!!QPtQ%SCd5yb9}`aG -z++3El58Hizyd?l-H{h93b3HNP&60lUS>cF1EhjHb_~b(fRdH{=a*?4Xchu|A!;O>@ -z&+G3*LMkAjc!O#R{a13s)P@ -z^~-&yA$49f-I-{M_`iRtKdz-2iD7>F*4SF3As|Nxj3FW4w%| -z1f4nMorL`<^`x=9AqYNPwUW+MVO+Kf4ac*7ABzU~htyILlsq%XnA(P -zd21>$%=4eaub+mGU*K|6>9iE`dqU46=>hcM*gfIZKcYmq0ceX35-2_&8R|@SBHeQ; -zF;Ag>$6A8pm5^2(F&yOzLb^fJ{P7?wh*gjw&bi7911+J#;XYe8mix24cPH)43 -zczRvEsi&C&!Ay|A%F5MZ8#eI}d{DHpe6Eu_eleDp1jW7~mn%r;fdl<4>WTK}H?FhU -znE>eq!FY@5S~Ff!lppn0{+iu1T$tAY0rWa;;6}jJ?PG_jZ+Ae1JnR` -zc`4qHZ28DBfPb#|Z!xzo8ocNlzp5Y`8rTY_=Z$2f(fuHN3ok+{-sDgYYeop@xa)tk -z^a`p`*|?fLRqcD5^N2lCD1OiW`o}(R`4Y?koI3v$xG_&Tk*EdT$Vgv2!#*@jQ-fwM -zk6()*VWvy5PnlGBys61`(@3jfg-d5~R+Z8OaSw>I%PjEdG&C5SjPr>3%_F#ABxX@; -zqF9{~>X1Aoi~}nx1mD{x4qoW^V;sNW=FXa-iF0N!wtUFi_}=fv8nzTb`GgmPV(Sct -zH~YB6PzXj%PdA9A(9{ytc@s+`*)ULlyc7HMF*%vlG=e~Gb1*+MjloV&0YwH>j?KVK -zHSfGB5uZ@a(QI^_tR85C!03_|DSe5-5*l!dLb>VP+$)X!4CiO!GbCakb|&FPs4EM9 -zc&0+%Q+o60RQ@NPAjx@-nhy~j|15bA@3@CxZY{?Fg)pVQljNLQpMJTM!>A~S&ixnY -zqDF?pl8~pkgL>zA=B32*V(EN8{SQ*fR$HYTF)1^_oj`7jQqy}#S_f1={R+y2uczj* -z{>XNDWauD_{d9O;P4yTmf#M)e@c7$TihR$LE7S1e;{5CL)(J@aOz=)TcTIyiW0*|h -zU6))cl^7Y~4=V)Nuh{n)$M8?iTfV_G_|s{IcSjs))J86p_(p@q%L@%JH~)Gc-T>t;z)+Hf`aA%l0Yl90(gTU -zs!lh$jnJXgFlH1jptcjGkNi2f&|$!M(}097JRxW7XY-{HXqJN0i@itmbc4Fl0R4>R -z6dfzSv+G@ttkdPtKORWWNU%M8W{xjyj$q#%@_N-1AU`dlK3Y5}VhShdALP8`--IsC -z3XStLym>PNEh?|i=~kQeKRG4|>OB5vuw9<@8qE*dyNJsat8~yz-@-uZ>T+f#k_R#6 -z=bTf;a+b9Sph`lo`y+IfquUj$Af=D;sJX;p|Y~D_ZYh^0_%u0HMTw^shxBjt35`WUf(q2nP)XJd&k-lCm)Le*? -zt0GdXu|IjA{gM!PI^Io;CevN*f*M!ZBgn2BL%1D7Nb(z|+tQ_Bn{ICUKc22KpsKFv -zf`FuScZZaebeD9hfOI^RG}0v{AkqStl9EsX>29RELAtwOL*@FV2+H( -z#CRK8n5de?YQr${xfOG!`I5!;&%$+pJcCv8oXBfsbmqKa*odJ6ptHb-_}G|cVD(Z87iId -ztrP=~nSW)}X_BZ#?JC7w_<<<;S2Rb^1i>KA|EBpqiFTfI`-GBbE5H<2GZ@5i|;R&wWM}^XR>JoyiW#2M{ca)#r -zG@wxK3y__BgrES7Qh~j%ZSzcpsgYK8`E_#>3NU#1>Ko`szwis!LCw;dQ>nh9lJlG_^CX3c -z#<=tdgsWHDag}cYGX6kGJwW2sd*#U33UBtJgHZQPW3+(Zp?`_Xe4whRQ^ -z!(KKq1^1P_Q`>jy1RygAxug>)uyj(J9AWx+M0gPjUwex_ybXBCuCry2R*+;r;S*9j -z^N5&CNoFt}a0j?_RhW(aOO<>vkDzBOvhss+*wvzX+;3chx -z*oi>}Lf?{`>#pG8OM#6#roDoTYQNh$E6FE`;q%*RRs1wWxS3S>ML^wf%;`zfaD9Uq -zASm^@WMC%lt*VXsvU`<0 -zD~HxjRIbKV<+Zu5%|i|VqO)(Ix73|S*HKY>u&MJB{Nlp9=YU-`sRAu8+A}w*9i^Q) -zvA*YguT7JVWVp53!CHYbo?4fC*AME|hp!)_C&N# -z0e!6#*N3t|XyY5xUr;MOwZp~~7dloAqYEd*CpM7i2?+(hxxm@ah!qWZyMa6o#-75Qc-`fluQBv4;KM9SkSdQi3h{IBaUQXt -zW={q`?dZ?<%=!YNut9|5dpr}J-@AJ|S3(qVXaaFjWYa&Qct-!h`iSx+i15r|q(N)+ -zkERTY=(Tfh|J}0j*d~y1m*y?;lnV;ZzW0!0dMNLsfD0Ls4Nl)2{qgj@erPuQDV3Rh -zgJNmE^2SF7x2yVpHg6oE>1~UqoQnzCW4|L5*%dg-#pOtQ)=~bJ~%OA>;aw< -zx&wKM0NDn6;_DEkdeRWb{m1vBj()&KLdFcc6w4i>^F2jjnTa7b;E6tcZ)Q)>1ie|w -z#kl5c&Z(EYIEa7)E9}jwaz>Tke0;sOo#^h7=egi}&qd6aqI4h$wUieDbr267dturO -znrZR*hpE`iwZ4veeAN$@2>8=fUDm1p`LUMFofX5wKz8fdQ$hz9LSX&0g`|l_WJU+2_y|%7yH#yY-Yl -zVK_%-TvLlyOzXuDQgrud7ly~rk>iqg2siAY2P~+0XfiSF{9X)FN_Q!rZkvEN|M#J! -zDd>&=K;n4Tky>M4Go+;s>R^OHUIqyZmG_{P7{)!>8xW}Q^f)_$grYRx#Z)0DDJJL( -z3~o8vLSPN>dbBHzMxlPuL6yh6hmK31;cu0OB4yjF;#9j)ur; -z1f4!&`yPc+2EA>+Fwahp9Gu_$HlWw;HD1vSdOto -zvXW`*kJzgsOGa>(Xzw0>prnu#{Wy&B-8Iece9Y~&Obsjsc(k!B!lBl2L`9>58C;9M -z;+LKO!X?~#_hd&rOcZoE7~7{QtG05YIrtb}&k9VA{jkEl2tU4YE65l8&cuczu-sYl -zP(9X3Vrv0#^9CwC^H-A4nPy6oA1bthos7v{SCKD@!q?`@_V^P+PP|UO$hWBS5jcXy -zsXn(L|CvgFTCpiZnhq)2P-nsU{U4S;!QH&5l#8BO_0WA8t!~XtsphOJDysIGw$>=}z3F|A{ -z@cXEbi_&+tJ$5ca%osHZHBUwwG_1nHHM^%U;`X7hPWeh2n2{**^bhVRJmu$3R$3qb -zXnA+&%5jy=rJdT;ej-(g+x?kXY+pQTCD2-m+r*f;a|b5%{yKU@YUD{k)AlY3t> -z!mT?&+5yZjtF$%%)ZtwJ;=Mk*2Oj -zcUSlguv%b@#Cuh}vR6>gu0Wm0OVnJwIe>YS9vb3a7PN1dN1{^^KreuWkZ*`{sSHOg -z^{VxaxV5|I=%?3R@=gcA!Ojj3EJ$#JQ=SP!RT^IU;yLPo8DnKIOYe=e(u!w>F*!iPT^RQR0mj*4sH^ -z{WKchIFD?%JL8KWGRtRw3u}VFNgi8|+(fQj^oB(AcA`$3nVFrT!fYs?tRm%>sdQV- -zyhkN?0XsQ%6NoJbx#?_Rvg5Vuw0-R=IbG7SnfrWGvnF+H)DSLe2UAI`pXb&ZpOaS< -zOSZ3tJ&0)MC%Fx$XB(Uhw_kRA#d6 -z7b-n39D`V%!~tTcuGga9cJ!)X@$O<6Totq@f*C>my|DLa;@^V?H(NzrdZw@%j)Z?w -z8j9ZKrklT5b>n%W#o>5swJXc5Up%Yce -zu?@cV3s!_8U({Y6eMW)Pdc=Tl-9P039tQCkREZeLk9dzW7~rxtc}Nhj-$3El6@va# -zqz!^#|DBSd5s|@|I7v<5EEd6L9@3{@;9&9skO&HpwSyqJG -zIoO`Ux(?Be_uXQP!Q+x=h6k!HES9e9#~S^cB$N9|(q6DTWFWq$+`gx@p;Y==*DFzaI`QlN{ -z!v-N`l7~=URlh&`NSB~gzyQ9KCpW2<;1CMUM~t@Eql+8-ln#jQQ)_It`d7EoSdUwk77Z!RjSX6Cf -zJiVi5Fh4sm;GOPFw`$i>I+$B!1KVdQ=R@@ -zt^BHWltv~^p588LKnb6ljXdCFdK3=7`3EFFxF^)x9RP6G1ejq4JcQVy7U_-|fyb$y -zS*cJpfmlU89n~}av8X_Qn+qSU-21MV4Gd`F{bef%kjA0cFf+)ttRL!RK0~fW>Z%y -zc-!1FcMk3|hbZPFb+zHL^pG&1GAJ&{CAJ<<(pgnw?0UAfoJbUQE-%+Nu|H@5jc_-P -z=Hy?UL%4CMkC44+nXOkwnx+C%@{6XLhCgO*<`I4=r;V%qt+}Dv*)@-QW9JL<515b{ -zr+Y~Ac{KF8gz%={9V;($)C#^PQsnw`_TFL#8R)MIQ0H=1V6c@0sq}nnbv8}$B=xyT -zNj6$Ys&;5>10h8Osmr6~A)(OLKYOOCf4gfxeh{5S7Uo{pVYJsyaV4nyISSZ -z-aoW4-cKno56HbACB2f#ojWg;+^s#=c)%JOw?H6-!J*lqY~dQf85!1Z&<)lnr{bz_ -zxlJUZqrd-}z8ExUwvx2llbM+;cYSdUF`kNr-;GH(YHI$_UX%klDl)n7X3{Xp8`87}u@QGIO^4csz -zJYq(Cdj`{$EtE#ekplclB;<)csF2V8V>34FG%3(oz-_Oj99xy%=ZC^C|3TNhAcV(A -zI|Ra|ur-X1=Vj{oH}e>comf?;G6fd(kzwZJ*sC?WP%&}HXOvK7p`I<3-?~P&{!hLF -z)k*W?u$L4CFXsc^nK~05{4T1vJ8e}tfWp8?hzta`g7t|h -zj!q@gv_NM~vcjXfeC$sL5l?6&iTUMf+Orl76k?vAt06q_+pU45!-vfX^yty$yRG7N -z*^2o=tlYR8d@#>Kl73lTq`DoQX6Q*g*IqmIwh`8ltFg!0T3!bxm96bQC@#AO6G`##USeflb~|D*`gelt}Jo0+GD -zm*%hQMBTHgR?kJffd;C$XkHU5MsP)SyXBhGUDaMZi5+b&1i;XJ3p|dC8{}&{df4c+ -zk&#WruaN)Zfigk3ob}bX0VcHn6*E|3uP6gmM}HL*G;JUicjK#$G*~q-_P!h=A#3`2F^nzaK>6bDMa7nxbZ&N6t-#%r6~Xf7pOAYBYWa8&8>x -zGC0eJMAs#0D-fu*NZ@h;7ELA>=WwwOz`79tAnNp$M5=9&kdhITT_?Z -z7cOPuN8^|wC8hRrcXL+cb*JN~Wy%7k#0;1cpUAOkrmzIu8NUlGoziS2AS?95P+H{) -z5;e2Aa149DPUVM13r8C4#V@A9UHJEBLi|KtXT93W{cIIo~2cr;m_ -zm59+!+)m_peopSz$=gu!D2qf~Q&Qc_@$0!jE2`aZ1mDd@SSXzH|>I)|_$PY+~KxRCb2mRR&Q -zPp5-S3VY2+&>Ub5`>}@dk(5z;GJR^? -zM!be0N&&hRuaeuk#Fy|?7&-siiV -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 -z4o)RndE>|kO8PCfPt8)Q`M14^Q8a%JpUVr -z`G6et#xB3<&{~9>qasqY8_gUavKS2Rn8stx+(Dd-v7~Yp@ -zPCtn7Ym51C1SvJ{{{7*HLUDC;aYm0sI+T617|CM@y)J;XhBSaMhfXn%w9M&~qFMM~ -zHGcD*%Cr-hvOq7|>s;eXSugsICAS=ERsyn399)7@I|F5^(rHCwu#J|92_b$9NhQhq -z*ZX(eMNp$cwYn*zOHuiqU{1MM4nabLh8irf{|kKBsJ(8epnA01Thu(~q5Z^pE&RK` -z5(m)ev=lORuHP0d^RK=$sw~XX{LJ;KRK+r&S^$hlS@p-xGryK9PzTssdy472B21D{ -z69oK;-1Gqk0g4mR4PIp`nzYuXW%)~B`Xk4n(PX^W&Y*BmK%mna7;lGL=aV2!y}J5t<3Y)GGeE#nHZCc{ -z-j_&|%AQ032RGVGpuX=AmhlrtYqhC({U38IuFR(nF*CN?BAznX>er8qy-- -zp{?}cXO2;Td{;g3ofdQ>kyDFTT^v_nKabRdnO9+~j*}w|n_`TTOpi8`wIaJW-jxy( -zVt{W3>Fcow+0)m^v=-l4cM2UPjK#jYOmJJA@vcssS_Oq4FcMt@^ABLv<5~xAjonCI -zi^pfbZWjA}eGpRQpPvEUW7FI!c3+b;k-x%RYsaFfq41uByy&l3jz~bC{5ME^EB(~8 -zmRz*cX&X~XeH|+odf&Ll&6P3~I?C*3Tid^=<<9q^ -zyB897R#0C-%(C)ctq4TI-O{{XW*IL=W{SLf&6>@BaVVP*AiE7sab1|*rQAV*@su`B$ -zqxqqce^Tg*5vs1bT_k-ma{5GNHZpk*j_nE=%k{PQ}lntM2ff -zI*-zGEgU|a0m25DB4<&PkBYQnFfdZ41wc~2mnqZnjv0qT*Uwb|JOF;{Qb0iBhzQ~0u)OZI)wyGwQ5(-brVR?1(C?=EWuLo|%gAJWS~ -z$;pG03WD>57aD3?;R?S)N(AY>IygcD<=gE>-JsEDr`8-RL;)*l=PKDAnQTyR3az%eufK|#l)F< -z=g70f8>M*#^}5?+J7YLH3OOkFsY-G+r=B`b&iBmPPcN($62hgK#RFbC^nc>udwJ?P -z>gNBDq{3o;(MUE&vRp1<`*f#AsfVmM#T>xekNWYjyAzihJ>^~l^e5ZXS$!VjsQJw_ -zjrE|cRKnIDsyg*Ouvk<4r2LD*Z16QX{hQ2;n{J;ocF1Az(U$Q_fEAio5&iERUJORo -z;M=>K$OG_6%B|fY#RvHG-+?*?62hTSfQZ&CI}T*-=I`rf;d~@MoxJ!q%g>MXY#&c9 -z$NHzBiHD{&WwjxbyJo&SbkcjR{Y$_@x66Og@xTq_z=H|TV8|LPy!37|dQ!r^PMJg? -z-YaU&5o3FJi!kqVXr>_)R63HnNF>r5OflbCvxoG+V3d$pIt7x -zNnf&!`AioSnW;P1(xoi`pnky^;D<$Gctse(A7^>S=fz6_VlQ<>wZOV -z^rF}SGCcpkfWgkPXzH*_SZVw1qJT(ytw)f&I~2{%X4on$e_tD;3E$c@+-Ff&Lb~`r -z56eQp<^W5uj8$%jz3b{(55|Iy_F -zRBsT^g>+IBbn&YyCAZJNfHcB57d=nS3AF|y)T=iJ)llPJ+7Id7oIHMzO9q>DO%8#; -zAtZfEqrA`cz{@HSelzw5sVGj98cK6>k<$XKYu?GHU($KRy8JhsqPnH-)}+55-5$bR{)RmevnY<N@G9zqya&5SC$$wl?lZn8f&VPujj!xDu6UDthl$G~?Bv -zSUuChVj~p&c`YoIu+fqw;Lb-Bq0D{kKRd$kZuXk-U($W@v!`#vAtoMuv@aX -zkp_>0SE(vu35b0Ez=@O6MQ($F8_ -zy2iqSvw$0rjLrlZPpH8iaBlp2vgOtTFL3%B2_GF-K1!==v)Bb -z2AsrNDQcpNcxArQhV`2Ri-#5l_dYUUYXQ_0$jy1Uwbfd%8m3B<0YC^qN5 -zDp2@!h_&?}HmyO7?aj9A0;ML)T$Pro{7hWpYh~99j -zw``fdf$^u(cS>+$*i5>(vBD)Vwd8XZEuZeN__T$}Xak;6kW<)}*=td?-;p}xoA%jt9iO935|K`?9D#+Y<`NaLXaHi* -z?4Y`%WPUD$mayu2-`j6R$~kN-&?sNf;rtWPEEtdF0D;D9B8SGSw$pky?x+CNFT^Px -z6|j#{i1jwEf%kG{Bw*|zufCC4{dHA|K!8Bx$`$n@tGlD`zl(u|e?Q^n*o`G2;gZ7W -zkr~52B)v7~^z-o#*2&EWIvmW~65IIHD -zM-{td&4bf4AWXXOPsVHad)L_9NPmtU&MB)<5|1jva4(#TVCGZ%7JsfX&Z8zl$A^)1 -zl%N-STHqi<^tg*B#prT-!d)b1x~nc=U2D)Pthy%@wqblD{T1-@T~H>DrM9L}@~<@8 -zUg4uQjIWADiRU_<@JMwCef%jqEFcgFXrvODiIfzs2)&b**kj}cRKmS!Jpp#UD-%@B -zl!R_87S2Jf156$qhjUNEj|2DYjpw!$BaH4Y_5EhhL)`$-F1cbu#p3Gd9HX-eZK#)2qp;1?_hVB?{oFSh5CQ*X_! -zTMag?XVT9OVuZ0w`a6F5mH5gN#gk4!Tfj2#QE&k>;$mP1utHf!#B^*-ERdHc@W?fHJU -zcR+n$HEk`zsBcp7-R}pB1ym}rkuBtq=r>Q<)NgvPeOs|oM_oEBY;SVY2*Q1!EK%BkqgoX1u_j;{n7rsl6;M1CZ-c29O -zLY_x$M%Zt$L+*pU+7^m2BwVks|EXC@F8a(e5T|aXkUS1qd71D$nu|s*GARdHB5H%O$RMA0acE@qfK@8*EIQgEB?(M3PlvIDd)6*V&o%%-H27oHtpEEHfxt-m9)Le;p(p}_7lS+?xi$QK8L1XYJ%z(1E|0VNtP -z+sk+5C=eCR80SQ{hs2;Lt4HC{`sZ)o?{_?!%HI5&Sq&PO4d=TF7k_?r`N}F;T}}TB -zOp!@?%3b)tx#Q1JsD)j7-B566iey~IH&T#NK{wq7-qSbRI%q?01F-2Sl=`(vb&k_L -z@{+46t5Sae{s@?X{KCEeA+5FjqRjeZY{q(88hy*y)aA6y-+YrgC$w-BeE{eiV9Urm -zSDrr2zjF|qhkz3pJU8%$^P+Bg#Af60t1tT&OrN;2IO!*X7>Bi=-O$I=m2lJoO1tqU -z19&cARxby5obG(5EHY{G70!>>a=TiX1eyC_@z2KM3TD)t)Bj3@lfgVVV`h7Us;gu9 -zD&t?|#$z=g(P^?o%(+>xjlE;_uFKkC{u&_sV0ilmeBcjCY7CEzE=+oU!&+c3Uv5jE -z>glV9cPX+hl|Q%_Z*X;kP{l}b3&Q4q0PgR@?Q -zt!9-sM!J5&31yhnS)?&jsUP~am?lEXs72>HbAYu7dhz3V!t{>|@y~I7LLpb!Q~Uq% -z>hgM~T|mD_=5+GHyT~&8OZeG-C(}2ss1UJ4_LHb*^fu*zO8~ZdP@gFE+0Id(rQGe*p=+bzTbFGa -z=zN)4CHeU1snx+}EcYj;uD5o%^svd^m=j5VVeR!{&v3oCK)84IhNfDi!wrrWdbOtX -zyr5kUHB%sr{Wvzd2`e+MGI -zppdZ*k0{m-kN7$LEp3~bFsg@3-e#vg@=>${*D1;KT2~lJVdMM7TZ>@x3?j?Hny9Y$ -zf@o*=?uwm_Rc7Cl=?UDvL7 -zn+H}TfvxPY1~Cb(L~D{6KW5GJpvgRy*$RJJJg$Ptc{%5AwVO&GFVy@iDEyI5nm?D} -zrb;3x!d(>Ewm`0#xA&jCC3J+I^8XeH!FQNdT&VBvZVl~ra;5ihQHe-_)pVv-5Z-MQ -zoVV}W;GR*YjP$)43GCAIFfk9aF4lP~ulOJIC)WPZ3Wqbv{^E(Jb%Cf-U40jx67@)E -zxZ-9IsA8pt-Q!=TJm^bI^^iL6DBNN=D$#a}2@5fz4h)z4&g$PhfzUmbCtERfC*9IvKs -zKL#!w^b!MFZPO3Wd>NgSjue{WS#++Zs3}&CAhRJz(EGw(TUHbut+#ESJh?ALg*7O+ -zj4xY$DqFrVqiT@JT`)GEpk09=1u$F6Fm`A&t$ZzWe4+NXx@-VC`Z`yK(#TZyYIu^if%b9H -zf+_BIFIPs;iItMtgE>~4r{5Lz&qEa;vTt|Pu9+<*>ba3LMl+j^8XH+?)1Vy_)<)GK -zE{1>C8#lZVZulj$T1fl((e2oj|JBZ4?}wt&U^)uSU&{-Im`3=ZaZMl&V9GVGeqdP4 -z7+X8~ZMp|TvXQIB5>8%qF(Z;WAjor|Q}B7YNH&x|R{@#%4+=&tIg%SlSJUfnI2l^^ -zDiEo@wT~X&O=~FQIl0gvBiKqzEpt<-8lPp=!X%VVeub~EBt%N9a-AL(GvxY5m;Kwq -zsb}UZB(2TzB#~D*xVLhf;I^1$PIn^HP|G>xhVGU{qOuoHwEp3*+mj9~PdnWWrcsfW -zPbY+5V}>q2ls*KD3j`fl%UWk%$Q7F5Y)^2b_JsC%xc(_a%#}2&_j83(0b-Sz2_J1* -zZcv#EIO(CPc|3bY=40^^vFVglV6}dlQ4vrW9^g1+23b*!R=K?k>L)>I^*7=Fw#e{I -zG5R_J##GHg#9F4yNiFjpx|ujLR^M`1Z)Pz$0mqr+U?ErhK&_Cz#kcRP88!A -zAF1TN^3ctA&vecXPb~A7+%IW??+U_*Q{cm3Aho+(PtH$?Z`0C3)#&kVU0pLh)LetS -zMo~etX)O;L1wer+W?xP~*HE+oGFETM?G^Yjmf%iM--}d0{`V~7?Smx3a=>K=LF+S= -z#2sbZ&il6xF+xG?{_a{rH!yF+hBy))C53iILxHKJH+Umo=+6n=<^fdmKad9O8^kj0 -zhY)_$QzgM3ZJp1TyFWZmcX<_@$$vfHJp$|mU@d^U8(ar3xYFLA;t31o_7LBAs6HR& -z=ChmyNcaO@&8ppdqKf2I$q?2xJ;X}viq(j8#(UP)h5C!L%YC(3-uvMF*bt$eXWi0j5h!*& -zK5Jc1liuN}5$VQ8jLjD%cp1y6yd->cbaah;#rcOfyntq_7>V!oCx^dYv-12xk(!5N -z2R)qxE0YSQ+6HxSvgUq}}x3kug?4Eg= -zGPGKca0bj66ztx3)^4wN_c{tD>&ZPL3-kigw_mm|@0-@0s`Lr9jiTvvn_|TGoIFPS -zpPT0GOLz2fJL?L}`&gmRg8Jm1jOMs2Rj8?#6`+EbJvo+z!ME5Guz&M*>{rrtAluMqM|%LALieAh-d(KbHz?5 -zXp^n0{y41;s=tMeGg8}~srlIooY0SJu;HnYZ-kbjg>Q~S^8@Z0k -zQNaQx_gCAB%S7jEE0(}FhuS%)%q;6N`Tr@i#NEsU&ObN?fVsdLf(6IjyOj9jT>e>Q -z&iic|t~rsEiHk4Hu#z(8+~LnHb)Pe`4%H}Yr*X`4C$v%~^$c`bkRGK^CH2hfgNW2V -zIkt+ZB5sP)z&nB4EEWnm#yv(}r}O7Wp$+RV7fn -z3^7))R%d*aQM89K-)UwW7IuBTRWh6o1wQqiPFi|F-(j^gayjup2Lkz0i0`_@{y6#x -zT)MOhq;gP-X~};>AtFn3_P^P0eE%(5RAY$oV5 -z(@wkk=*v$tr%44$%v?b-6!c@{&$$ctI|)3YFItKkyqg{&N$m)+({A#}^8C(abvr%6 -zV9uG4%946#57czPmc#p!*+FfmLhKI7ywCLW!jJ6Qr0eN_#x_v>Ga2ph8kV`1Uay<*zSQP?I_XUa-c8ZpugR{6WSkpud#guI26F{9Ac(p -zNL!*1q8uk@S#}o*>B%e9I8-{oj5J8*EcbZLkY9cQ*vul}jnFQ$*QsWNt*%GTum -z6MRH(*KbxmzD{TJFFS`p^tl{eMg5#22VE|$*zG7-OTy^5^>OM2jz&@C{5ReTGct2eU9`MJYGed2I0|ebbKrUWZylQ_P!) -zCdnpBpL2Fa9sJJmOCn;f5O_ZEfVcx9Rt^)qTuE`on``}{ySR~EXT9Bz#HlQufcXH9 -zgzZM|d}UnHFP28>UycyA=u}|Al_Ne9tYjic?5^{4Y_e{qlX^=n?GC0I8Bev{KdOM0 -zK^|kZQs~RwaQ2yYM(l)tkv(u=A}u59f3ha)I>V{DQ`fdUmuWmFoFSYwS3F_q` -zvZhwqsj?6=CIWotgJcv{OzrMe8Ubo;*xu@oZqR5@%#gt@|K&1Hl2iuZs4}p8bI^U( -zxqjJw&BewOr*b^(;QJdCdju;cd9q)%L;LxcV0)l>^zyx2{MDvGdkgF*er1F{+NPyd -zh-OFb0k$@OhdfqGGx^2!GF56oTt&a&FX9x0Y@iUK0;(1g%n-X}YGix1S?ERgbsSn{ -zWDg};|A{^`c!#{{o(S``&nK`xw^b5wEVlw}^=U^Esq#KYNMajIcYS=+W`Sh8!XlpC -zru>0Q$8`l>k!=&`WRTvsy(y&u~)qC>XVSQd; -znQ*5Us6=j%GNL8cAW%jkI7cXKvYc^mQHB_dFciTNs;bukPeYXkd$sg -zL4~EHy9G&U5D-whOO%e4?#^#^*YEGf+a5FOL{w%22WwNH0X9gz{VqC~Vx^lW-62ZtR%Btwi;HmboBy@$y#0 -zF#9KUi2IK;Uk{Ko??R&MMK|w@Ocs7#9pdn;^^GWT+9>!=dEnfja4r`(Uhc#>h#XT6aG}DY#hbT@qGbrl>aI%jxQiL -z0zC?FgfTz1JDx1()=XOQzTEw_ci_EsZwNC^%g?j?wy)C253zz|2fB1y=T=$Nc1AaP -z1Pl~V@EFqh4*(I{FQjhyThlOV4+tz%#dXrcYDVlbwNI>VRA7O&6D2{z$sc~~<`X2E -z$K!Sew~aXpiWpI}cI25;c;#C7-5ckxJ0=b-He4_lf8q|WEl?yu5h(~Qr+_HG{VAZO -zS$l#6%(LWZ$%3AsqbtQg*5N8H;5C^N);wyTY4lG?A6_`%rCL}rzqg3{pwIk5mi%jN -zu)8(}i`1Pi5>K`9sKFDU{$%@x$(}GXRP@mb -zDR<(()l__5>*v-1<60E!$Or9;{9%^*o$nnU1YCMv++;}5f* -zlzrstzT0jgD=ZTWqy^6cR==7&Q|i{&PXUgkI!{T5xmW$GkOUC|q4%Fuw?Aur|Gkey -zOCoD0uZ|IaF#lYn^ZqlF)4xO1vtXm!og*JrQR}^=KL@VwK++*qh&EkEnXM&`=iPUW -z31vWQmisIugym2c?9E~qOX><;ID$|krlO106Zy*|_vmE0!bppLRfEtZEEHTxv?=`j -zy+izw;++487N%cHff6=&*Aqe_&s33|s4ya*=cBSHOuJbTIX*%qxY#%dI+zT-)>YE;oxndP -z#}Rp+qNLaR1M9Ee5e&HrJn9C9)E!eI-VYYH5^eU1Rh1m`CBDeCDNGKh#9M0DYrXxK -z^gZFt>0XlEVyzHoPOKMyVSF*QRqDlfKIq@}FRiy)pQ$^rv{+DN4;`o0;2)=)9l=i@ -zUUm_E(55#{ulp1cB*k*akEP_Z8U_V=ZLe#HZL)t=`scaUpw18^trgJr!dceAS1uM;TSNMrXmWFXm;EizY)K2X -z@h-iBJB)o?yEqWL^!>%hOQ1VjuWE29K-_zU)cL9-bdSLA=Qz^SyAyJnG01k~YN)K) -zo#?HUWm4$aeJOwxvP!{brCWF>N!W6Ufz_I>p;kuOdX?>qtt1v{LnQtm>$u*^B%MJ8 -z;B6E_OIb|Y9$~kcF=vjtrC7zvj2v#kxb+ms2M+ -zto{;qQiF++`3CpAu%JFCn@_5VssEehCbZ>W_I8_zbtK*Gki*3NFErXn^MkeWI1SFd -zUK(Q7r84eytd6tfJ<;GW4xA=N!AersJ33$$4{l;S`X?hv`6N<0F<;ZRU6ZPDwQ6Ox -z%#%)=C7m8;bChC4D9c{ee -zCU^Y>?Ivwlcak`u(4eiKaY8Km&8)BENw9hR6brNCrK;J|C~!4geDvvT0Y{8tHPd`u -z3lN0fM|ET#L;f-1~<$GN7{KP^UVF>CPqqME~&B;}3dycXTz5rK{Rmsdn8Q -zsEmvu{qo)69*@`s+(XF_`7f^8153 -zRv+bMJ~ds9=OgXK20S?yMvLM1gjP1MG!TP0XJS0jOpJ3}+N!CH^|xV|uV~tcj6BKC -z{o;faKi|H^{EveG>IsJxlX?v1M6B{XFov*Bgk)xC8VIxV6NWGT$5HXP5I%9-B^CQk -zfK7|lb}6J>0`K^^>v2VD#qj^P%mFrT`#^!Dz@sNLH%n?af09gU{#tElAGg5P3qd^0 -z%gp?sWTI)0%?Ew`YYZqqSN)*ZZY&=(tf^tG3%E;eUor3r^WrvPZ5d3^=wLys^4{Gj -z%oq|Jw21t_f@l(dpQ)Q^1tr!s<{-o`v(M8P*?BYU&36=!c+*|@d28aSSM5T)6aBRD -zX~{0qw1cf!M>EWx70^VvbaGyY*Q~ZCT@!lyU+E5~DtIsT>|#d6CwKM6MPmI6x+y=dhU-)C%$CbwEF5=l^>c4nFXkR;>9E3*c}~s59;e`K-5f(!tmL*_i?y5;YFI_v9?E+ -z20-81U`kQy>C*(=;T_m}2Waco%bZ}MWx^I4Mnd0HNNsdsaXyE4sXOfCoC0m_H9}HxvKL9VW3J7d{(D6*v9b -zc0|Z;-1~j{Mf&FPBCmy+F8Patll`#0{jG=4PyJ!yUr?a6xjx_>@c|geLbWMNTI3!9 -zn`HyX#9B(5ag`8Bmym8BfxsB{Ou+S|YN{83% -zNeq{0K;g6hmp2L2E;v3?D>{1)TVmj)AHG@a{Q{FK05c%JVfKdr^_Z5``wjp4Tihdb -z_@{0unJq$VrzZQwJqE8P;)4$1b3X;;1<+2t&0gTu$`qxdUT>p9735MA^${B_N|gF% -zTsDY#6Z-z`u)SvNmrX67J4wS~|BnT)RTGKv2xKdb{imQnisx5+$n6OdIl -zDIRD%UmcE>oTtUR9PHQH!+-^kz+2>OJvV>oxb98zWaEJ%O%^NtTe3LPbS)Amx2D%7 -z_({8?-z#L683j9|;UE{x(Y&o18$FvF-I+M@7nyoD{NX_;&>yG@!c8_^2#X0inU(CZ -zr^@k2JzQ2}N&8G$_VB{t_t6LMybnCEuLKyY*|`o~i<7VjCs+B_BwxLU)_Hos=_KDn -z3UDPAbxBU%5COSbB*gz8BDuY^nA*f0CzC8@`c^Ww@4NNC={rkL3`?h5MBbRrtK3OA_6 -zta6d@KY8ZvQ+0BjXD=P}mkR=q>htHYN7K8ZLv^js3qNe&D@Lh*Fb4`1+@UGa;ToKx -z!XQ%sjNTffx-wrJK%@r$TYeJ?y*5A%r`h|{$2jAfrSpd^_0AFtqJmr$bizsIcV4%q&ct0Kn0GCDCiVKVnRq%>ndfu>< -zR*3t55Sxj%A>Jl&=dHW|gf59m%gEEbWzEE|I(=U-WrVxADh!0WdpU35u0Y^ybx_J} -z>+vKVf&Fn2JNPx+KGhIWxlT$ZL_5!R%M4e~#m~DYw -z3pq`87)-jDor%@-M1GEMsSsbwYDBQvYF6iGi{VMNGpns(%;=FwxFzZQBDDOTbGJ8y -zI5a|rSv4``Ezqpw3Ndnh1ZFgO@c`W#UL`tDe%$pd -z9&CZyV;J56EOQJrrXr&D8u~zDXb1BQ -z73Jx<>0TFI2?)Yro-8oXU@l{h0S{ByE)hllotRYF7~Qi!Kg@;H;p-$&xRVyn`Q%6t -z6t?jnX`8KnKIJgLpTJ8^tei-Hi+@o?tM{U#_BzlP_wQK6MA?7Qohw);vZA4D2b4^7^Z(A=(&v7v -ziIEL>Ps?RAv*<+`o5|+-M$T*cydJf>x8LDe)xL5{tVf_X%7>`fcgA*dYB$Nk6%INx -zc}ltzBwTkv_82T-5~!~o%WVBQiuQVE8VR(he3>1uiRIJ99;!%}Fn$~qzDD342(X83 -zugS=$l@p?aKLoV9G)27F=I+WwwBc58(RQObr!SzAM$q~wlJb~OD&>`C;SvJ^TDF|K -zUzA$H8M^C6La6mU>pWR1(%fMEHWG21^hP1~+|D<%WOqXL$EKXF6nHNv9thaJ;G`K? -zeQmX^CZ~c{PEwcCdiXQ57JM0MTd+ -z7w^Bkj~jQ@GLU&gVIR2zZ7<$mcLZ^~nIiR6@2)G&QM51-y9J-hon67yfxBl;Nk*D?Is!Uo7mYeFJb8K%)d39J@*`L|}|LF^bAbTY0L=PwhM -z@4eh#>O3%ilO5a5Y15PG>-ARO6VnndJjQf|E*`EOAmb`kCa%*~BA6qy)AbU1n$W67 -z!xMze_g^Kh;_o@E5_qTe2)TEf?%(y)4ere!qnZB++e^V*DTnDARL%OjG})2$^%tLHjl=L(zFIJRCk -zj)$iD7nWu}LdE>t6d^|T=8^SGE!v|y3UGD7ZqJaZ?b_@@yZNhrSr@XY!?~X2zxqj^ -zAB?5=fzr^+mgMizXRM}$=U6zG3Q6{G!~h+3+te&xb@p6Iw=oUM?>3#`XP4^1Uz66p -z!XhV-@nyUAb-lM6Si@T==lf$-bptBL8fxim8Y%XKR2d-Qdj;3D8WR8sW&I8Cbu -z|3uf2qa?f0D`Pdqs}6A#YoLEwPBG9Qen0pZ``ui{=r}+efD=T}F3&WdP1j6CRn6kM -zxT=uSi!BAg8H``PLS8$ErwCnv?e#~G_^ESsUu*tBm2osI)T>0h%C -zYO_&L=ioR=Xt1L6Cp@Vct>U7pxK`aA+U~E(BLl)g?ptK==$Ct9Nb`la)JC!XT{h&^ -z4ZNA$ZQV6Sf|xIMII`AaK2{q2@7jF;xBw_3Ke#ct-15oG@1?HrnZ>`uZ2yd(lr1|q -z3iyMde!UVbG;_(hRjf{f;p-l{|4q0)%cv0CF(0Tr|95-atQ5Yt024O_HHp=fCf;%7 -zL@@|tQz)MebHUvAa6Axwh%j;Et&s)%T7+inqaXa@8b6R=sA4Poug-G9LoxO{O&gZD -z)LbTrNqPVAuW^59%q>n*0bUsnm~yfJ99286owsu^xPiI0BsjZjn*;P&7<+X@TN} -zbEKFUd_(Lh?e6_@Kw&<#{zFVl;nW@ODKLQK+H|t9>3q>_5Rnb-l4TYfQX?3uvZIj_fU|fP}WRi`3D6d#1>w7il`IXj?6nd*01sw$q`KcdJnA)C`8~1 -z@I)(Lp_=NvvqH(dEcozO%axKs@xyy&l|+Z0VuM#rmF%-;ToRya?-%`(f^}Y@#52~8%)SQmOQ0x&Sl6&V%RUuPNty91W|a0%%XRp -zubpI2wWiZtI3mKIh_bfC#e&r8ea>(=RVz1cBw;PKdDHCm@9_S(^9L(!7jUo$G}!y0 -z=`DG}7muVpX9PnaNpt-vZYtv&?2It9Be5wzn4&I78MNSTn2=Mg@qTJP5jm*=!Q4tP -zfxDqn&kOk@mAc|wti-HKy_OL)x{L>*g8jVu@IgT6%}=_m^rDGs;lWs&b+q<7zN)|C -zLyZ=yeTylMLS{EDbzWdrgBtON;+}q5!f}_vIVRwMvdW|>7WgyhBh7Ku*4^nh%SH^otSyU{gu5)DW|Ay!d1|%K2!B#a7YhWUjm22YyEf*kUKf -zowrFH)zx9VG_E|lm|>ZMePev19N -znL`WVvh~C+?gdX?O8Na~G!LyUgR#Rw7-klrSY_KNBm+No<1LQC{smCDh=wO_o+EG`o4fSJDo6AK%;=b6bhKg6Sp -z_|KVmGmwiy_!z6YJcD3Q2bdMd??p)l_kH+>$C*f~WAQ(KvJLz8lDU=cpm* -zk-4b7?9R#*gKw-Hz09JiIIXNP7y7Mmb;-K^@63n6`dP1-JX^`=opi~x$b&9ytzEyr -zuRwWV0O`O!YP>Ovjm2MlEDuzoK?hz3c@h3%h}(>;QTOj#cxL2W-BQSM8+;?5R@@n3 -ztZwZH%R~XO~#QBo@?OX`>eg#t#}1#c)*$8n+O2u1UHI -z$>-f23n;LUfsT?F&-DxGGi*8c?87|CU3j@W6s3RIuv5E0M;|urukMPE2Hy(b#F~GyrsD3+z{B8~GVg2u~)pOiCgICv=J2_~z&=g)RZEAvd2l4RTmT7(jl}a41sQkUPYzy=QO5<=w{Q9;-qm2yWxdy#wyt|2&xS1XO6?4E>(% -z>DlLW%x}oJ3u*!d#QiiusgA!gNGE`#6w`y$ng6uhIg=tMr&Utu9+@1WoCK*tCC3(v -z*$mU>p7<33&x}cL#mQ`7O;WP|r!lYwy3Z|hN$T}7#j^qx%yv{UZdTSDyI^W#g5}#U -z)i36|=hqz0WTFOl02>>w@2l2`{MKif=Aih%nk6Ne=wm}`ByO|}zR&Ahqf#?xOd+_k3xy|`}6zRy`~Y)(X9VdEJvZ{G|t(tL!`mG5Lh(WyUE -zZTiAl!zCuZ>g@~Zqs6JlIm!kNm=Q^zKmKQOXUUSlU0YnTrrg1#8AJ%yE=em> -zp=!kKVx1Tv1$aM?U+9UQeDfMF=~aIa*)>4q<=~i|-^#2T`=2+%L(Z;=2qX*22TLmN -zVy+2RF)TD?y6pYWt+p^oRv_PO`Mto@fgN-~R*K8}_}O9qQ>T1bW$nP -z)z|IkSj@WlCDOL8_*b0(-R$WnFcuDwl=;jk^OCB&qufXL3vSep^Iw56msQB6hx^vl -zp$#=Qf*$a~Bv2;WUsi>n=LB#9BGwV%KS{NZhI;z&DO_SK$Rc#h|nB*UL&+Dcx>gF8tbJNlk=yb)`@SU -z{m@1#t-~p75l;kNJKSeh=pp0V93I6$QR)URd=|oY?p=n+jZ1lwul|Dl&PCE>y+>H0 -zh?TQUJZg-cnC@F{N?TwH)9zk6eAO8*!yC*xZCVm+aR&U{VS0eaTJAcwf*kOJZU~m -z&vMuEF6eKS?ffT6v!0DK4OmtRoFaCCV{m|agnDhQJSpBrgMYW;!=xLo)aln?aeYdw -zJ}TO(cp$WeEP+Tc1#6850=w -zh)btb5dVZwSyP37ufrhNPMt+vDWYTM=4qbuqu~i~N8mjKM(q!a$6pQDZX%vtzv8RB -z4pn1QAMWSm$zQ_~fkg_Sc7E4~q}AcI67w>>F~zc{R#SuShQq#9BLjAO0Gad*lE|5E -zV=WeMEnMLIp6^6FU>wo9=rckb@=hh1jLZEFl;|UrW>NMNM%17$o+i78C#GOTf~|Oz)s}d(#}z=0H(U334f!@}Ch@ -z?)-iBwjN%ugH#$d&SY`?_D4v?ObMR-Q>*Pm@PN=eWZ&|l9JeazbBpTl%+P!6M30~J -z^CE6JH?J9&p;y&SKSoQ0AjZ@YK%TxvT -zMHaPI_kCTF_vg<4<6VGVVmY`tQ3<#dy2!CR?NYEeGk8a1eG^oY*w{tKuo%jJ -zhQ>XCWE?&|Pe<_xSPmK;U3v-Q7dZjX#sQ{ZY0?-0{MB-UrP4{;Jy?Add}S+DBo5(M -zcA20haEAG$tA;g_UzoU-ny9hcixXtE@$3Hlp)`o_!DOl{%PU;08k11|;rwDNzBz&Y -zd6CXU_Z>Ra2i|_cnBMQ8L+$RA%#3FGnF7JHR{DBG&vA)RxJjyx#ETRis|zsUw_ftR -zG(G` -z+;k$RFYvZ`fI9+NhM_f%49U@#`eV -z(i##oC`vl<{ccW(s$AcS -zri|!0;8VtvNSi{x`=r_dc4ZJh(fB6(ttuYLy{~?Sr~jN--mPS{ppVW#`fsnX6LHL1FdJTW887v;0T%f}I9Qq?+T -z>oNa*XH+_6_rGh^&j%!I5FnbM#Tf5>xH*#}jAzp3 -zCCxxvu36$Le*D_tC(li4;?=)kIId{20dE%Xu+#(xXQDg7Hja5qgs86^-g$&>DV5~c -zCKJ3F;-ty?pIOkLN!u4`1A%MPqM29iGzVtN%$6;NnK?vvkia8$UP&InJz1yk0tAvYr%jx#{>>IwE@xua0&- -zx`g1II9l-ha);g~#m0fs4k)DAe$Z*mVD#5XbL8&MIpzBv&D+c|fvwYDfsfeRJ`k$a -zvCU|5MJvadv^5X3Dy3Tu!ZgMKjxWjn^S0BHIfW;Y5`^+L<0_@^Tr)@SywZv4Xyg;{ -zo9m(|LQY3b!K2d`#9KP?q9AWUf$_Y7uMh^r-CaV}uEY`dvlHFL<)5eWOc|VwGA@~E -z-mnK<4sJkVN~*DR%_$Yp%o3gwdh#!M27IzdY{ahy;%~iqbKcsS!K=(UGk>_hsa%y( -zeRH(A6{=SefY*8>iklp8ayn{`pElJ*HO?Jsbqky@iSh{bLTl4dnzQ%q&VZL%Xl6cF -zOgNfdvC_AG`;_Bu5~0EIeCRI+;>`{nxbyPKm`u-Td|W}iwi?#&x2xgGm}vdJ4VzDf -zOn=p6qxW}VTe$KRlwxP7r6oLB!m>ik;-8#48AJSiBBi&i{cn`~pwcQEtfbL4%c0*g(&iTD7D1pC0nI4= -zMMUisSF|=o$i;Tg)t@YBWGqhx2Gn65l&u_&%w0UDa?*9YHZ`^3xGx3#?V2;{TG*aS -zoW9juQwy1TY$vrtNzfFr-&@IWpQXI9>mi|Qpe7b=6)Rcm)yNb+HpEj9FM`xJHGpSB -zIG>m$Dc9%P!qRF}{FGl6u#{b+%ni-V3chC?<_!^}?=qXcmYE2>4MCxAJBbq(`jJV_ -z_+uPNS38}p<(&H!!R_OhQfzFBrAa22r_-8o~94a -z;>+4jA*=j~r2I;Ln7`eUKvQ5%ms`qG)v~uPjVlvpanraf>5#odPxuJmY1K_uWH>q4 -zW|@liC~7Zg*0vD;Kvvd%ES^v#TARwHi>;x$75SL7~7~EbZBWXb|pU)s$EnqK3H=ybpqi(DwA{1b%CbN-l3euMrV)i?(L?bhfEC -zUV-83p@lNBTpx`h`Cn1%yIZ5B&TP-sr3|(FFvH -zu~m|-mWo+XUK;J9k>R9^U5}lUuw$T1{IDf`2nm!gaEjK>qpySt#YHJXY;TCKg{vY6 -zb`qtfXH*vu`;bF^*Q7%?B~Q{(c0|3+(T -zKh2_BNoQD{+rRJ$42BOtI_^=~WtXhXH5;?vq|V_tiaC<09*+G@yFo*{(bYBQ(VMvE -z6EP`0&W7)r!Cyo$P^HEwwYAfPlzr1Z1G~+wk+@|_^!i7lI!Nb3?k&m)eU1! -z(t1&M*p#G~0&?_XTv1c^u&i2D#{b!;+l8YSC0uEKnIuqdF>~J#wG_@3+^G~bTQSMJC -zxE(77;?p!ZES&N8?W&m}?#+^q;9rk~%r1K}E3zzvA7+&4!U)sAXFB^gPyB^iI$gl- -zU=Njxv+pjv^oe;OZD{p`%$l83%0pR6m13+y=UMFuM8aYcCT9MW)+5Dklc03{bN=_2 -zB!}rVJ~Wm^Wv=v|8T|?#+ts~>op6-zaN!$mJ2-oaxkqAMK^|CpxIwum$#a(3mvwTgURosynrgX|mBalYos -zOysR3MP04RptndDl=kQLI*2s8DkMj18 -z{^JzS*SxDhEF2dk+_21 -zFT%OAZ0md~o>14R(B+lcUGyw?jG2C@I{m6LRN>KF2V0Se-`8EjThJ`X8HFhO<={g@ -zsWq$DloDDOP$@L<-Qrw*NRlxg-=x1%5wL+juBHY@U|*dr3QLBDDK2YEqj;>8YoCC> -z#cyKg7r0Icl$tcQfqQTrY12e@6bIuG=gD@PB@4{I-c>T;RVA@qTf+Be5}VrB`)oJe -z@F!Yc=2F?Ybakbcb$>=eGla`i0)Z7)uGlg3Jvb -z!%uOT5-0?WN5-c_rsV$Od0eeu{CxDUtHGuVVy!W6xg49Jnmq3>1hSu|P`-5Xe)`m% -zjFLNT^)tC9i$;w;7*S`$Vj8wV*$QZ0gBJ%oN>hm*@-0r@mzYd|2K{W* -zO$zu<>{atjsSaKNY-krfgjSC0{pePoWkMH2xVn!7C^HrE530_4+fh*sepOx9OF|Gu&-uZC_HnbzRjPGJsf^{gb)NLyd=Ee8WC{nz42h(8dl_2?=)K@_~zuX_V#aAHGz5}%Y`~+YsaHIgBkm%lBG}AMk}Uj -zy@<*xQ2Z}iOm|S8e)%m^uM$on1j}~QU-cnsTfvFv?$KhIozZ>+8)<02zvt=ZDM1hg -z(RHmp^;}il`;Rn;wvpqGU3_0r -z4QU{0_*B}%5%FNtzxHMtzb`)@0M@22D@U#P1MCT_` -zzPu3A-#yp9HcF#N{Gytbz5hyYL$n2kPfnbTHp}D3r;pE)N~58pLO)AfEgRSxA*q=T -zHF`v={!OJKu5L}WMOiK|f1d^x+7jjbd9cjLFg}yQ;C*-x+r*>u=XWSZ%BhS3vXb5DO1fFL<-RA+++QeRz -zv5VmI1J9ODq|vp9qigqRZjise*?YUPQlsGCjkbVx+eB4I&2qk!ie>~UMiVe*p0_yt -z%<1=@O+%$oi1D4F;$3W3#|Du;nv#vR -z(Y(r4IvYPEJqS51HLuMECubc(I#Js8_(*c=_-xeO6NV$mveGDP_?hkTXS7|&u8+0m#x2J~e~UOh(t_sWnCkj&XSP+RaS@u6Lgkzyq{}W|OTzeH_%-827v*>l>dfKr>5oOI^ -zUr_lRk@Vd}ikh)c`dRwrE@>cENNG6A|D8F{LBjWp`;RM3C1B;qrQr4N5>PRIQK4SZ -z{%n_Nvf?#r`QDWc=K>0#9&Uq&De#uzR%Ki-w#1Z>V8*aS%tGOSae*h+IASATup$M1 -zC$5s3BT8~{Gt4y+X%MfuqUtvuvgcl*TL+t?JNH~9h9U5J+f&-WiP@^3pMy7eH1njb -zb3VT&A5)-N-{m_?guMxUGBy`LmM3Mn9evz0fO`Bdz8Ac;2AK4@(vBmEXbr`3D!_ -z2|dBdd4HP`ik`#ijy%M_Y*6}vk;CTnP04@$pud1-N)^`5o%UfJJWeRyF4J5sK(&0a -ze|5glv-IEd33q-L=oeP;-SyT+pA&f7E=t*XZ?Qtu!*bEzeV)9E8Jcg$9_>DG4IQIe -zl*JQk&j|FbY5WOlw`#yzg*aB^lL2YlZNkpb3B|a5SZ9S0Ekf#?yM#&(@)ozSIFp)N -zcgoP`NAoX4om3X1HqV=V$bA=cmqp-jIWyCKx4n3LaZ#eRFSti&@VStEDN5i{*P&R9 -zOVcNGL>aO;(LVAiJ-+)zL+Xfw-ZQ7d^yj_P^(`ZyBnkrinlcLuarb*)FPBI-8Ll -zXA4or{UAN9tmj(7hR!FLksr=beo^t>cqk<%qc{KoyrY~a+EXPM5tnBazNq2Yuzv@U -zu83eh-e{7?G5Z5&B?C8QRav=5bt?1fzjcUSEICPU15tArb(NvW=2OvUN7>yJd@=mh -zH#7pIsw*XgCy(YVObn=r+|6}>?oYQCsRTdm^?Ji142g;d%;i)o}2Cs -z@@v;@nw*qY7%dspXMJ-T@v^A4v_B5-3HADNQ*B9C{|r6PzjW@1Mii7YhS(yrsuB!U -z`!72&ML!W1Q%|Zz9f4;h#z1Y~LyZoz5YAq2r>7TH3m|jfrOTfdeddBu%=y7@vGN`? -z%1ILrA3;Xz^kXMi$L{&Wq7ld$`0nA0@naLTU`h=n3}3nW&WJs{{)xgnZ+Hh2^yh1< -z`U?l>o8Or9jAseZT}t^}A!_0MQ(otabqQE?)bSjJcw~Xob%8eG*mdIkaB^=rN=M!t -zuj(Tlhnu!@z>69qX$xM5g>1zKuORNS#1a4)yyu_I&Z!gcHEw+ty`RJ~@4L_fBQb-u -z;GqFT-zdpL?{k-4K -zEpH_n{@Ig=suCibikz^PN)hs*DHwHIBm1In@i%ir%zI^Dd%JHp%5D8}jrtk%{Rdo* -zXeBt3zJ6$hd=$a8Q+rRnBrk1zIgt?9|`2QzhONF7=VPw -z$dcw_PaT=Ram11q-g#J=j^oV12ep5U0Musrn=r=5>Xo+O8WT)q15=lJK*t4#4RMkL -z$>_L)@DCr))lc<|aMMC};hzV7&7&uIMi{(=`Smvvmlvj?bNN#lM{o`SHY{jz8=BpB -zP6V9Oe;C9TT{LV}QDev7>+CRJD-C?1XdNtpnVK&JXKNpZsuq6P@}l)$-N&y)5foM{F4+V#CL0oX9j5t|q}JQ>vNt{OsrP8JS7W9W8(u&4(dN#PqtpYUbM8so^#8 -zB_uguou(YDh1V7$kOL(%Q3|N6*}9{3gOJWJ3wZANzjK9X7UE#risBtFN$+7$&;9X+ -zF`xk~{WR -z&2P9COwBaV&NyFvj{m`4-=-{0BCWz_I)#*I%}GYr;de+B9p; -zB!iJG0|N|y@|0K36>9q;0mmAQaH?K*+VHyBYqD(ABo6YdYn)UOcDn*>up;(k&s|(g -zJldz)TL}0&nHQpj1$>nl_F~`9p8UC$dB0i4eEcPS+M~p{-fW~#3D5x9HPtH3o<+4% -zhWe6d+24H}PyRS28~~mE_g9)-yQGhj95eCHpkj~t9)8DxzJh_Pz)V=cR6aoN`oNcR -z3avrKs;z}#uz+|>o0Y9YLkQLE=YK+xne?r+ -z6O+C}AsmQ|3RYCxJ*O+dx)p{&7oUIRWHPCj1Q(yOi5LYC$Qfjm(%GN(%`9!yEII+( -z^}(m43DyiPO85(YdP&X4tG_ot!&jb=uM)So9Nl!H6{khdXJ&PI0EM$ -z*8Ze{K2y}pYEdE46Isi5nvZ>%kS}DmJl|(()_l;~D2b#D&h&{yK^AyLrJTY{8(kCL -zPJOOEA&S%AixVux8zT0^I(49iE=@($_iG+DBsc$#J2Y`;IcJs$w-1d+wAGjYF{N=t -z&jgBw;u~?E4-dX(nDG6GsFPzVW=rknYoat>i4Ol8yS#(@=9H_aRAY~#C+x$=Zx$v` -zsuAzoj33nUM{^;gzZz^n7S64&8T_?az(Q+)@1(u)~(;j0!BpdbA}3Q8QpT -zW-|swH?@c|yfePF3zM@PtWZ$_xK2%fm|DlK8g87X>kH4RXy%vmK~2xb@t)$oAUYzzJy~KDb71^=|923m*=D3=?N624)qchEw -zpb1>4+9@pL5eEz&tqWZ-SB;-DYHTzX%)a_G*03WZl?CJ39)>Pe>O3s?@N)HQJR|*^ -z{HGnn#hKdbB3YvjGMd0E9E?3SR$j4TIL&_ayMQh2~BQK%D+#FTtp+WdQE;b`fd$!xBP2X -zYXKY%bsm>w>ojpO5*?_Rd2Tq~U7)nB(9wo_;Q~K-Ku2~+X?dHRr^-3dZ}#|T?VXjh -zQs!Gs^Y{$R!9HaG)lu%Q+l4@ZkS&ULxu=N9U-&ICi#(RYQOahi0xk4OjEhi(md=N1jum5UIvbgj5gAMch&<`GKZ39(YE?`O^0E?1@rb8)TdLYH{kjpkr} -zPn?tl+{3KqyD?e|ftMi_;@ncHU#3-4fN%~xr`DBTa-jj+o91m&VvxN4d(89%>%Vt) -zW{XbpF^+?HJw4L;hS24uykRTcbh6*Dq%dd@OXptrJ==Y!Xt&t@hjU#8oo)BThC)nN -z=q#YL3XGR!3b-jaLq7W%mDLgUdKEK;p3oUmDWK#k&}-^Tq{2wR^i$o@TRgo=Z|l>O#26#-x%dW -zOOswK?N$Xoc8@}i4iYA$%!=uyNAJA;`5C>`L>@dQN=Tql_TMIEmR^AG%>=}Kc;Aa2 -zW#>m`w%52+tLEahq=)@-e2yj;LNw7OVCLoF@{rM5l0W$PrTLL6-$f3)Kjk}G1*;}8 -zSdAF05`O(pneTudqbg{dQvPDrjKmO}<*^6Vm4 -zd|=Lc=bMIMZf#SFYNqxL19^_c;F22|a)|p1A2@n}P)OOJP=WCCndtij9&VBD6foGw -zkxo)X`Rej~;Fpdl?H~h%UeI -zCV%tm>ou)o%Js^X5@$B6W@zf6s+uN!kJVK@gYV|UypF3U|AwG#zlZC>SN6-d|D1HE -z@@{-Rce@@$UVL1(=UBKQN;rn+w(u4|{>CM-tgy=r%i`&~!HmpsXuDmElOV$OP3-4? -z@@)iOA_E}VQ#6{q_lDA{4XS_K2dY>ywQe7?6r{b-a8~{Qc!-$Il8mI3TgvZvILPOT -zCU)QTL60_Hy|Wtp2NB~BImhedNd)l2@q;9IPB3nLTQ2(*AL_;pI-QWfqkj+WPz>#B -zmY)Ks%cC)A&s?d!@Z!4ssQN48Y3c(TYhlvfVC%D2P=1Wxh{3br9tq)9k`{aKjtpIJ -zr+ot1`Up-?Sn#KcYo>JI#Y<|ICj$t&cYN~fvtR08{2pbq)mYdVMUYr)JK7dUP1y`0 -zXE*hOB(CInflkQas3^0gP6S)#+CzgEiw?hd7-{6<>Q1J-irJh&ElKew|>F&7D=+}$EvZ-tO-(PdxsRPv$3@KKw#4E#MMZ|y_1+F!kArX?}^F#*xS -zL#Tz>0K);kl^C`|L1*DMgg1teYp!8`x)nFcTcVBHP8G|cG`OezB4ux%)h6>hw_cJ^ -z7QS;7B$tVUGg6aNFj8AeH5V1=80aHmHY(uqlyw89w_k^K>Nypw#i>!niTFK2c!-`Z -zvx1gD@(E8aP(4EGByUccbV47Ur1BdI6X;5?Lfb3opZ(U}Ex6na)sr@y-$X1nEGN41 -zucDv-q_I-|6)pdSjBf!${V_TgzOA_bz(LCL4nkhX)m`45BLQW9=wKA9ty+?S+xdK- -z$4UmvVVEyGjzGk;&??vy{fuQtA*t6j>z^2L#v8$+M{ar=-2TiqbX_}`hg)oKX?_(< -zA4_Avm$@+)u5kS~z9&TJa$||Fg)G=D6qaPTvKjB@EVhh&|M7jFo%c9Kt2*O#WQX%@ -zx?x(g=5;9Dk^CZJ=QC~>n5XcBBHFs(b#-7v<{ytk%Xsce-t$`h+oeCVw9lP0Z0!Xz -z-Ze=ibCh5_@cKQ_F|Q1oiD1jtwKX)pP|u0jTd2x@PGqwLZY3&O5!;{ -z{f^Z?Qb^^u53ve?yiH+K!fe}U9)kZm#pl;Orkseicwa-nP38nOUO=0Q-022BNOMtK -z?{XAs-Rt?&n|X&Gucg#b2h^M(rW1|04z0L)vJbg^N;PTUXp6^V^}4|HUlQ}Wpc-c+ -zL`(FbPm^n$=@iwNo4J(v@Tl^?%S(Gfp||`3hVKxq)9dK2>T~8Ol%%@UtyGM`o%q6#7$U>)JmIu2TUqq|`7alW&g7!%|M7H{VO4ca -zTSU4`5a|X9X{5VD1Roj%K}s6wk_IVBk?xWdX^`&j?rsTb_|`ec_q+Ia*n91jGqdKN -zxu#Ct)Z -zbvumkHE*YO4%^4ioh%{~NK?wP=DosfZ{DHP%XUK~zT~%{-Up7qW|F%uF8c+FW^Ddr -z*&w!`3wfn-sB-Y7{OSBSB*FG6W-z+^s`=pOhWX55r&kTZq3NRD#;0G7Gu~%+!+Uuq -zcS#KA5Db9o;~+$Hy$`>)c^00=@X4hplX{ceO1JlJz_%qtYgB@3Y2m$oQsC -z?w#xWl_j$4o4&Cg>`Yg4JArHHx=JQ&_e*>?Ko@SuQSl3lbrFx;%!^6yPYj+Ur`#ra -z7|jvTX~NR%wwe{df2d|ymAlUo5!UKE|K`)V~O2V -zrGsk?@E|4x7yPCFR-SF+6*($)WXfuWB4zr13PktPM_S4)y~{NxJmRw#6M`D$XYyZj -zW*kscLr6~Wqx_FW9hOUohv|Y7^=`2J>!Y}?^_IPPeBEji(Nds-RWwK;Zn7!Gb&M>) -zd!IgwFeduG(($4)HJwZyP}!&*p3oA|E&Z;X#JEZPLGg+Gw4Nm3usMg~%X=MtNM#hT -z-VK%JhVc}--KcU%Q|*Vc=c~hLsmKU4*fn$ -zsCI-m%^*YAC^Q1D6|RLp+5G5b)O&rCwRn?&^hl*ZN0KEL3TxeU0q0E`72P#5&(Is; -zYQ^nrX!T^>?>|gw!VFkSzsU|^{OD$_7O=_#AVu+jdq)s`{PL87#4w2E-K}iIs|>RK -zWGxggT#Y%^B$HOxCr;&ChjRuJ5dI4{KnVEFN|7F2+tMF1q7?rvL7kI#o&!g@2!i4q -zI#pKSHE9LjmRcZRk3(2PwSAu&jfNbFTs9<|lgb_M+9k?XOyE0$0t5V31$z=J5>F>e -z*9*L<8eY%08vKd8HU}|OM0y4&yBsK=NqS5684L+D^}CyB5*TTE+n=A~gL?(=nr}`f -zxI1c{{W7vP`DlZZ>griIY9u01i*q_l)2iwQe5K>l1I3Yz -zPtR`RcPg^f%YHKJTUk2GtQ@?D79>c)zmIpeVdS?^A8jIV1V2r2d@`9)Ym@z?W%BvG -z?Yu{n(S;@mXW_FD`)!gKTAFq#Tq*6Dp}2%D3b&GvdsY-*@KN`nbwJ^ZiuJufRX;TR -z#%S>3z085d-DN04xg5wKh3%F!hFi9OH1g)+2JB|DupqvXCdJ>={k$*PEChESI=9`v -zmb(y|7jf1&bD-vp^$FSN!@`PoC&q@Na-vd@nAx8)ya_L`{fl+@q17i6swWnk1rwxH -z4f8kyoV5=V%V9@3!PN1ui1JDiwYyM*6&^pZMS)jZO~w4NMu$wsJG$Bb2t_1R07MSN -zp*x;iEhi&tvEWAJ{00o3e}1OEWEqmxq`Qa$&6{1lpK!+YL4L-_9k=sb2+|rzrG6MJ -zYOcT@{1l$9Zeg=`Yg(QMdpSwAr;_l3rCKoi`P(wGZw~^Uwl)yo48X43&mG;S@Kx&1 -z;u`NdO93Pf34=$_laKOWVBMn7dSvoJG59+>D%m2Y{d?gp$Dc52!0!n?g!agWDM(VP -z@_xn2^6!P@xrHn`+<6xu;kpB$M1qEQxy+Qrv7M|bNaF>u!SrTvKQf4(uC&E>03KV| -zFnQw(YBGDiaiGRosawqUikdV+pcSBJ7g4lR+^5N0S4>*|D4J|_J!`~+rtL{8M8?N3 -z+NG?`runUNG^lkcpA}D)6~V@*=j5Xoq27Lz|F&Ne>hjU-2<(x+ZqY -z93;`JPCf7rmpNk(->XFtg#ppRqAK=+Y;fB#D0)jW@=swoA-XsiOEhKZIrvPv*C}Lr -zP_!m2jt<9yIp32YL;-%R7FmY%PBY3Q#cii0B0Kb3vFp!diK -zK)kJRBWL1yLdLQhfffQD)e3QBzTqZ+x~G;7fW-lj+IW=4t=+CPuguO3a0#kZCBOg()uLnE8jq(1w@#$sL -z7`$jQv>mO@QEqvGpzVVCE+*Vk2a+xgdbl3edN!rCfpSjhU+Ovj&ok-O;C8Hj@aOSq -zZJ*9!SAXF?b)Yo4t&}*0=3*OC15);ygwx;5L?gYE18Nbg}i`IY__f5TMx -zm7y$syBZdfW6_rZ7{BbQ@ak=GbTu@Zpj~I{kcLH$JVQ^=C1#MC^{V_CqZV{JJszE| -z%To{Tt75Fe&xpRXr7$M!J--tD{qzjR9L;1l(+?=E<%)@qVPwGJ2@YZT!B -zIt7OBM)@ASj-PtPI>y2PqtSNBI-X+BT175p5TByH;EJ=S(#lPi`CnC;MKmE3Yu_gq -zCm9Wc1X^!AKmH>sEPc|LYtuY~SJvLVMxnMk_PU)SfYvqF^WVR1Ch$`0PNR+JexD?Q -z3e#YB&I)Kd7*7A}4o^CLna~yj^{S03WNWn -zo^aMTqiQ}6#{T*15TDpEPtVpoO3?I29S;Kx`sPB2ERWZ~duY`X8xSu!_;;ge*std&MwVWDcC^~Bh0 -z#BbGc_I`=xj|_aPxVd%weI#V#rKFaI}X&OFKX4rAYAoIb5M -zlP|zbZ=2-$n6LeW^b5TAH<lvq2*0VzD}`S@vC_LS`Mk7mOMF1I&9 -zCw>tB_NBSXA015di!Pq>^{VAL8pXKuE$@GIM_>G?{V90AQc=W0S9KB9D+iNtlf9#B -z-gMyeTsp#?o5)y>^IP?&A#&yIZxB@_Mli$($Vi(&Qp>*Su0F}43idsZImG1Ah6{Fb -z*iK5VX8{(FaU!t>aRxi9Z1hEu0B!qYsxe-IT1Xq?8hn?9mc(k)-~VM`F&9;7&W9DbBLrf(Jn8$3aA>`8W!W -zg4JTlpY16=ia}cG8pXk$ABhYmiL@_-0p*!$5uq6T%ga>K`&Zo}1r)r|-cMjLG -zKn^A7fEo2|CqQ5U#&>2(f?Xg_U7uO{Xo(HtT!nP6y~~t~y@)Z*q6Yy>p5zK~L+rFNpr(zKc5QBUm-U%jEY`~GcP;PnRw -z4vYGNjhYbcVH>H_GBu2*$jTOGqGE-TDYF_XNIh3@_)j=ijO7)Ov-%S6X<1x3$fyV5 -z1c>Wu?!ny(*vd*I*u_LmZIAq4CRmXM3oU;B26*^NwnQ-(j{>w5c4NUc^3%;35F%cABUQwU8P*i?O}!6iP?mnAo$eb3LvLGB?~JRA|4 -z$H%hlgEWtWi-x@+b@U*c1(#9PebOO{CUuigK;Hh_;RhJ2g}T@jqfYKp_BW9p)(a>~ -z*e+BQ_}ro4Ly|0CwLaQ{h}b1$FrbCZ^DDOFfP1msM75xrFFyCyLgRRwj{*tafsopH -z*l>i?Q%#Oe-nbL~O` -z6;WPm!Knx#nrk(=w06r;R>NLx~y5?Y)@zo5&B{S=H(5 -z9C3d(M5W#6wi$Pm@VPyqnVg_9^v-(}sg&NN5t4B~-<22-&n2+JLYToMZ9z_~!*?p6ww -zNlyqk(Kp9N4_+VUl(icMzEnjHay&m2rL(-5gk}2`Yk2#T28bQGafpzP`Xz_p0@%!J -z`76f599+Z6$KqBjpVxTZ@|g9XlKlgeoaVjM2^A|%4uI7Rk$B%xaHhIL8{r4_q087H -z+jpPOC~-#=C>Y~k1&?y@mriyQwmvtVMU{yj4@5pqTdqXVMSF@Q$rsT1&hDj@&|d$1 -z9usMiLWw*5Yx9%Hzo0cB7%HhFHnMo`;K+LrCxO`r`Kf_{zQ(6OaZk?OA93DRfch7|R)eQ%?*Bn^M~Y$sP_H{gB)|~lB@&5R$8d|!=TMMFn|`{584H4uxiOJH -zyTX?$+&&{VHFH!oiF&P~XI7X8Lq*WC&cxuUZN@1-+G`2eN`0)k{-=0!hw)Bi3NJVM -zeQip7wqepcEb^Mf$v#7u^76PGbLY69Q#vH}rJMNo^nbk)KLczR*`Y)^7_&k%7M*gq -zuOYF+U<(-T>k0p2@m`*S4EhWFDvcR}G6P;U5BeFn7DH6YM5OS=g1X2oY*JRUWpLD< -zP8vStZ`MntQVUb%E~5eu=}$#$f*UIseyhozYw<^+jzsscNY6U&gcc~PE!g~$0Vy}H -zf@0!T)nY$=vmPL~ey0zcOMP}~!q=IFeM}6V3Y<&eGmx9b&y`~dVzjOKfu)^i_W#B` -zFL_##oBhEpOVLK49q5YtPC^+!J-v{)or -zu|fu=Y<~X-H$vs|Li2%kVr?J-k!8CYl&U$j@22z&bfw`6ygC=Mb3{7!z5Y{xaoP%O -z9$_1O(tu{tMv|Gxv1P+?P;ydj>sg^d{QJ{4tlFzg?fV_8>1MQ6?NNl -z0{p-TnjDI4ljERZQWBh_AryX>_~juXp7uty6d@cGpj5)_FIBG-8;QYvty$?KTY|R3Tg3V|omSL*IDAqb5HQ-;L?he>S@|U2Lm&U+r@)vU5-y^i}GcHCz`4LdS`G1|S;+E;tva -zHZh<())y{#;HNX?=V-4iV^=wHiOhcQ7r;;gAn#N)86i>z|1%nFeAH*P6X|3!rI&?B -zA^%gA#haprj$b|!UB7i$PXDv5@rr`RL8U|M=>@~ro|6TpK{Pf!9Y8X4&4P(sIuPME -zlekX(`8K)Y%W9|XcM4;4*~9-e)Dfr=qi>GJ8Yf8~S*N!s3@)duJ}$0_d}G`AntbTP -zTx8Bdn{X>zL{cTJM01RtVn8l}>t_u64j97TWc8rBK+=!Te)cz{pz#*xFHWo9LG-Xi9r%un~5gk)H;no -zNhH`&uDR}2?FLWlB4Bc$cFIb8Q+W<}<2jMq6`pxI?U-;XSWVIf-hhDfe5jz;KibaF -zNpoC6a#r#ywcR;_c;Y}OFB!L=rxrRxD!l+EgZE-zc()SL3jbm-JmV(AFsM*0=&71C -zOwfmOM!AdKNKMIy0SgUu@}4;9kpQL+QC#3PdnY9+y!f->9Jn08O8!UTtlj4nqR~L{ -z7D?|xGP|;ESd=XW9_P50lyMBWDuLh>d8p`M5~R+RpIQ^3c)jw@$}KiDQwUMt7d!r%(>kRRA}S&l}p% -zx7!*g?19jRX3gcpXK27i9{}MZ4u*LnBqAa_@K^uL8p)rJ#jAPW%53OW7>>G}xszaT -zxCkdo9xH2l5!vn9k)@UVMWD`!`S6EldmEHlg_=^%T=I{iX;+frnFm%prYdFZ5Cupx -zS1%kL?_fR1NvCANqZ)+6poY^WHWX6l-V4Iw#ro~UxUA9j30k8WSQ|7&-~Mv-gyq^@ -z^-X7aflogN-K)7{@=pyo@{6OX+d2s+Ug)n@v84t4=;w;h`3SIMd52*8lig -zowNg;@Zq{mSp_ms;8~VV1^OpJ4ub=m>ZB{RkOMjIr<1l+Vu8sQ0ggRvqne*Kq#p$##8!6Vf+jek+^Jowwk -zgq(R%%E8G3_R0GD)O%)(Fd$G`=-`$qSns+H{r0vZRH7m -z13Tb8_wlMO+UFnLn7m7kwIH1nglm@64lCEDbZHbRwh&!6YF?Ib&1BtVN(?$$YUe`X -zgiN`7-?|yO-IwCpe@Po32XDF@-vvC|cRZn=$@&*G2h3O3|Adqux8&0h1oT9^+9Dlnx1tCn4=T>5-;PnW`#ne7S}119~t&?`s_oa&I-i)k|=@~I){ -zbx*ta<6Ww|)FxrpYkd{5XG#C0ncw~OXy)Mjei7q}4J7&#gq*yPr87N}%J9ocgAj#+ -z(vC@prVVtozdhZ~1Laumen3U#nU(e9t)c(r+7&aUG{uG(IG{@9fB8@cfds%E&+3t{ -zWI^p`p`-WAQqO%d;S@aDwjpo`M3wACe&H0V`Wdu!_n9Ua;Wwaxo_A2S)SbiAyaB)n -zcv(Tr9l4H4tObsXAT=67QVCIK%2sxry_yi_*zYJVqww2dt+2pcElKETD{`YFpx>jWg&0V@Hy -zH(2ePe2|{_U5U23gp;eP3qDEu(pXmB@?l(SEfUAuntM_*Jz#VtoG6A3kW|r+s7C4X -zze^-{zaqkMiY}M=vlR7aWPp?u_^B!srB)P#_E@w!=&3OQACs@w&&R9bF5D%jaYu?;|;1*|)qTM{N^Cy7*{397=PFQQa|(1-yCMR{G2e -z#iKp31rPwOswk -zniysleLjWrT=%WR5n$iOnYI>x`%fJ?(>bMM+T(lbtu?E{UA=o@DR8+18H}a#vhaHX -zTzRS<{AYetrXqz!5Vi?DV5%R2xkKi9M0WkJWHwir`Izr*rM{y+WI%;h;SfmGU>38# -z5=b6#RyP3joj|;?;Rv&#l$TN5t_j@obMCjVYA~xZj0q@;;gMZH3tM}GAljr=P>wJ* -zSPrx212Yu^52w8h;SrWt;zx^32vPx&z)cG$^OW8D=93jrB?zu$XIreDu1gYi*G;jQ -zI|Uxf{1s_pe6ac$z`>GdvrANEe&?L%Flu9bPn7;dIx@1W=t3zCQqB_yf-20VpLanq -z)H8XD8+I&XF#@5O*z(A25SC -zi+m$|2BiXUo%*jt4Qeb4p=A+(PqBe{A}SbfdNdyJCwHTg2@||mxMK)(ZJ!RP|IrN& -zB@pfUj($V?rLz_1#$4WybhL@>h}C-5wsYg%w1Fma5LM^&7SAAzXu!&(FR^L7ehaf4 -zI?83q$fDjHg$4x?9@f@Wk}OG4zJSmcLRx&nCqTbo&UyIXvTu8|j{ROUBFTY}A0ul) -zd6L;8>=AjcBR>lnJNeYL8FC1W1UZ(h2_cdpMts$}ZKwa=IZ3%X^{}4SK4aF}babP> -zc6={>>$|377kS;^1n!Uyf+2EcxaM`!DGO3XUzy+aEDn0N{At@2FT(VO2CM(solHZm -z9LAlcB2#2lX`YB>2`lyn&&RJ7RF^;A$lYcs>ItNp6WGCuhsVM6w%lpngdD!?j+<6AV -zdmPjUiqE%6o6X>XW8TFE1qzkk_Sb7%JBg$W#eWrNhx8ezd0Gvioxc^X*Olf((Gu&O -zzY=hUFpdIwjYq7a^fw`Ip4&g#xoU%Cb}WmvEOOvcJD8?wK8lm+B&GH>$G&6Dv5zi@ -z6ukM;iPrkp;x^ymL2*o=WxuWM`%CcTH)5>F6ilL^cqD%WNl_4^Q6s?m_E7kPmqTJI -zRHGcezhsN<&Lj228Gx1y0K4#_2k{Gx5KBLCI9!_1*()c$S#wrrczoBS1q*qH6-}C? -zLNSd;hgsC6#w)pu&N%vbJt -zP0#rg=@weEKwjAIF2H_VhJyY;gDS;%>bq~m2ZB+_KhPZ{5}ORJOM~MLY|RAq#xmMT -znv>+VjlB1|W6HE2dM}p#d0AZO*18WE=d|t8{hDPObP}iS -zSyTh4Ki~(0>x&r^CW_ts)Ps1{65&F$h_zQg&GH;EphhU*D#i$x7j4gzor&7CZpt5x -zQgz99uVb5-hDP2rJQ)NEK_tfih=}pav5=gqlP-w?YKqp0VAo{v67-SEJsIAFU75O9 -zNJ%*H@3rVeFeMV&B50GK`2^sm6WJI0g2F!~7@xLHc~SD)FlK}6?Y3E@V6XG*(sEu% -zTpzgMq(Ai?40|;qbU>pbCW_uy8FM59xaV(obvb3Lpbp-e2DfJfNorkF6(ln@mkh_p -zYCNVMLyJu??=K{zW>5KbG*i;e+VcHgqB2?8GC9{xv=6${c_s7_pz&4fkyA$FYWv=( -zi5rx%2J~)%RBk9i=qf?$md~(|46aaMDO#}(Gn#}MZtRI`YcuipUEnPSV<-|-vp_j< -z`+aVH_bu}S%&V&;R^BodHb&2W3+iTaB1v+ZCs?BD7WxSOs{U|Jb85Qy+QkOCP4x+% -zHdt4?PlR2lUJT?yB}KLc^A;a<{L407)(GQc(&HRQ^^~fleH&m!2Gby=7=^dR&P*p;y0L71VbSEPu^m6^eRc -zs~Ew#E0gdALzA(bDsZXZoBdxBT5$Xj&HKw{ZsP3DXFPc1cn=KPsTODJ81yp$$N_g5 -zqs_#^BTbR2t-~`+)(?b|4Dl$`2Vpd?QmG2O<^}>1XqdSQG4tfJBl=Q!Q5znw@pRqZpVNuZ8T0C0Sth!EJbbzmQ4 -zEyqr~?7AJLU0mk{t(m8>0C`LUjOFgEO9%aMl!N% -zRF(I}fwtg9ax7+8+)bki?ti~x(hZIivy~W*@^pEZ{^FxlRIIE(PsMpa)pWOSx -zNC68b~av` -zX5!zzQK9Ee+js2ncT!?gKQ_R@e=xWol6*A!vZ;akF|zffua|Q!%ZqpR8466UUkizD -zd$ozw>kU!*R`|N;icM_+EtO?_&t33dGK0L=QZwz9b82Ftm+iPG5_%~zoT#aZ$gUCih>>2{Q`hG9dYDm=7~HS^Jl>R3 -z&&IUAY~jC+k70HM(Qjz+J8xg;92hm4+^;{q3K| -z830I>>5xukbObbEHt{=7hb59bSxfqEDmJq$61<>NMEs89o|xTymtIlkT@ce7({b_( -z79ZsFkkmRkv}=>Jo#a{}B}@m@3J;Dqh%^fF!))t``W?s5Xhx*k83i{utB7?QAQf4_ -z<-|&=WPI~8s=(WNjQqB>R&kBaPyFcX?YQ5Oe*;mdLxO!i$vN1tM)rwBfE!*k$*5jX0pihvLFN*SpnZdOsF75Qec3t~tNAZN82(A3TO$ -zg8|=kMS<8)xjvV3Mh)Y$Y>s!FUWt^TN+1XhfE*d~7FnTXO7367kIv`9V#;zN$$rdx -ze*EMY1ly)B!~z6a*2j^9D{?Vhk80u>iKtimPknjH5fYT#4oqxHNB%tfA1iS_ohyM*ygRMsL)py`gE0Wcq$}y3?%(zN;Y^9 -zw|d1qYbXOv6H+x8vOx$F&yQxdRL7hfTVok>yznF}iY4)*g3 -zwuV7usq|=cc&$Lgpmc`L5{=>%fVEjvAtPNU(3FPF@bhtb-D&Eqd -z53P%GKWsZVURZ_>#=q_CsIIs)TS?uUAzYlZvuwdM0XEATVig(~KavzYcZD7;U4@9e -zlj-^!0la>jK71Di0?xapxUDmUA0M4FVi<3jSR4YfNVCh?_2x9OH!JQ$p{7&?IO?JU -z!K@8Ep&+dWqIw7h>Q$ouOeL8?Ae0L}is`eRHzs@Ls{`hbZIlHnEZd!nZmO*ZE+Mp& -zpvNYAmZ4Ycv7-Z7!gb0K4H}TNB(V6F`zu?=6MbXmOhu<5dA-i+D&?*)N`VG*ouQOT -zHDaGn-G1_q3s^TQewUJCfVaTig;(pVf--x!c;7}le>OD#7UIJgqG{TC!*E*H856sk -z>(vQKKL;lPc{1SqG+Wa&?Ru@?3pe4@%Dy=X&|`3Uc!MTQ%ovkqZ$MhA%W~e^ -zCm}*I%p62-yQdVo+?d`)WGjYHbG3MQ1byDnaW-@vgq4#AbP+hjER3bI_e#_#Uvs`J -z1f8DbB2a^g1s~DpDf?^oPESpitpeR>m2WSq>Ak{q7pc+cfj#b-j<6bzqrp#O@lDL` -zxwW;QOQ*+H%xwa&V2}nTQcnq)iTu%>xwrhVRH85CKGfB6d?eH><{7Cep1Vdzt#&UW -zsOu&CVC`-?B|+BaTkGKwvSu|qRX -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 -z$%gx55uShVpjY|OYFji2Vq4S~@}!Dotb -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 -zWOin}>vE{yZTki3ai)=Cj77KX{ -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 -z_Q@yP{`!2CpOHtR4wbaM -z-rT=vf)PuLprnNf(J-rNV0iL_QNI#h)Ub7RZ&(uRac( -z7XG6T^xGfJR7>GtU6xaY#tgYQ9NH7R9o2P&EVQf+<0Xy#OH6Q8aH9z@!7DPS3ESKyZ&Vr&w9BOX -zwW1_K(T{pn@~uJqxAO(rDjS&x8zl!e*8tG$Zp+vH%y}{Xbl!H4PXbY&l4!xKVW{A(44J9hgS^+t9-2X|6HCz8L07 -z2?!}#KuA%%9rQ^|Jxh~{w@>0EKd*#EiziIw(D11jdalQKKe(U4ekAZhw63oQxzDws -z0^$L3g9gVUD7vPie5{pFKY3#`csU$yz2tW7AQExXKs6X6!U!();(?;$&Vs*q_UT!F -z#~HGCaaC&(KekycG}jc>pP4{=(LfH;ZT_?E-B<9qS;3+Bi2jbHU?{u5Z}}TBnn|c$ -z`KPd|+EgY$cNDw0Y<8@qzlx0PJXPVU^!NdAbYG^hQ^nAf{6*hB337^zsZQxtEm`%w -zDmX?JqNEehmJJDcQH%`fw&zw$WlD;=Ma?N`pz!Eo@ucnc`a|&GbA?Pg -z)a-|t9rJ-uBVztHbC}$~rTdM>Fp}eEIjl11<^+zqR+!gblGbP3{x1X7PLcN=c9G>C -z54(xM+|w%Z1+q?5u|ro%s)o<7{&rc*^ZO}%xv@ZX+1t!Qg0)~0Bq9ouOZ>Ns<6MyN -zA7T6@cW7I;<)3i3$zg}6R6EL=2Bo+AoDbU<+4X3StU&!)3iZ+4mdqPI0hl(dgg8)F -zB@S+FzWN$z+pR(O{2iN>m3)d06+z$mhyvsvIdClzDYw2DiO~Y^ -z017eaGuGX>&<`iMPGxb(H~j@d2|9>4d=KA69 -zq4`%$HdG$Xah9U@VybynZu`@4IPeSK^F%r9Hi>1MV*hqeQ1iu|hco;lkmnJTg9sTb -zd$xKw$$Fw&H>_wj$vkM>s8~9y))I%i=Il9iW#Lo{gf08Sl1qj;3-Mk@>a_hckaht4 -zl32_T7An*i2&G;YZpfKGG^t4+a-*#1kExtDgFoSg$OY!hjH8AWNo!f;^x`b~(%f*5 -z?Lk|nf~cZ!WF&$K?NZjA2Za{J8a`2iG!mkuLEmU!6s_j-0BO&vU+8P(3pcN2NJZI& -z>ov{))1ll_%e!$K7UGc6>JaLJ5I~rkz-ks7nw5z;!+S3Ei7G4% -z>HtDn11n`?mXEdPV~<4xl4t1ov6LSj+M^hZJC2rDZr5l&5C>R#?=`F?qmCFLF8*PK -zdkQB1az5<3L;3R3A6avLj8J05@Jyj1x|Q}07iiB0%JLy!wn0N?vrcX4sZeAyJ+F{X -zS4-Zpl{ev|jhC?F&ZWZbIuawdP8p*^-+&{=HF+~oB6}f*j;$f=W%Sa%fBe^j2jq|! -z-`ejipMp`t&FdQ@tb=cwoF36jX|OF_@f>zg`!$XB7x*s~lf~S0G^jCdPQSx8sQ!Av -zU<>k7Msc=^5`98%I-TVS6!965l?6|;hVP+ -z?O&!cdP`!NRl<_6pTTsV=%~uOE06kSwJ5&+<$M^F(;hE*h1MHEfz_Jdt)0)u;G_gM -z^8zIJHx*~jyH20zW!W#l_Q_CaUNCLpxQ$D=p<*YqBKjM?Rh~yhEmDGUF$bD-_MeuN -zVoF}aHk*vG#KseHFEjqsgo-{Nc-Ez;EiI;IZt8EPQ&X-6(;t3(cCZ0oe2(zSwMd#U -z0X6W%NRshq->^zGN8WEN#m$3-kwpzM{colF|D=2Cjjn!0^J28G|4rOB8E4i-=cr4| -zx^@*&z$7r7e%~G@?BbMcXhIYx;3VxX=Wgp@YP@i-@*USdAnYl -zc*jkxLD~30jVQJXwk%F4ccrD8HHaDPQO*WjDDmFA_hs+^$3{ -zAl>m@Y@@bp7CyKA1Fg{|!#z)n*mUfnU#UI0j99=D8?pQ%)zmto@Ecw`b9E9HUw|=Z -z7WBbmwtTt7Lme3D|FiCuh+*?N9v)PG(8KVS>d`-wzLUw!OMj0XI*{Cxvs*`9P6L%@ -z^!EV<4X`nO##3B69KO-ry3;AsTUCuz`H9Y&ff!~&uKbaMWWwX++jHvug0!h&jn5z%k>3m(ccO)0D?;fYGh -z>xVa#Vj>L}p4RBG`0ym&FeqJz{qt!$I}_I<$VQrl*&0>Mp0#ICJz!5-Uxqtp$!57ex$c(z)GmVTKrn<{grs<}+0#b<$#ZZk7+4n#HDjSd$=v0_Hu5ug|>E -zNEcrQ+A{+Zy!XdHCk*`-Y-I0`(>7B~lvR43_NVDnS3*M5SPPYel$KKxS}Cmw>&xKzdScB!C=vd6i7hKu -z6!VG%#irj};r2b`i{O|upVoC5q@?ng95dI$#i0D_&8U~d=FiSeG_uu0X3C;DQQ>aN -zU}90iG0GBD!l0tfw8qI$GAE`;e(ErWphLA0wZ%FoapPNelAmYdh;(;|-8lLaHWuFu -zZ0ZKWASx!A!_wq-wW(#>TIDGx#*dRPPP@pk<7JMr6P>mx`B_m6Us%8>38*l -zo>TvXRpw(Lgezh?UmF}C0jxy0;v-#5 -z%Aa7q5#B8H>`#2vTjFVji=U{wZJ@7Mq0g0zhJGaaP~bx5hU~i|S(8dgh4mNq*Hq3LHri}hE=Vo_ZG2Z0qY>)tflEen#=wl8p-qkOs;lmP21Nj_d}eq -zp(Qh#qy4LfRB@6DXVDv*f?YVKg7NdKxNk)<<=Odngid7L^rB}Q7b+onY29CXa7>;DN%i?JW)^BSxp1UyU>I+C+>$h^>ocFBMX6-@CkDAU+_(R?fM?Eeon -z%X0A3S7iTZmnfZQT5XROBH3P-e8PoN*Y;BBZLCWaaiR%ZJ5ng?im& -zjo5+A>{-1^UlIgjs5TBfbHjyETxyHz{DI=lf*(%5cPunm57}>Nb7-mDA8ztRAIT}S -ze{nV!eIS7?3;(DJyGFCfP68Ur$Ro(a4AD)VxhjMiR+U&0#=t*jOjL7_(fX*m1B{L% -z8LoKhlo@t?(n&Fi0!e#4m_8u#;l -zV7eBM#C;CaPeRGIG>U~yOz$#8ohQlD&Vcm5CY^pZMnt?8E9GiRTFbC46A?5JAJk9U -zQD&BQ9p`;5zWczx4iHt*=Q&S}Dy6<))nNT|>iy!&b%CA(=x*@SMk*)Ak!nU|5ZN93 -z5yC((4QZI>9Z5X?!O9Fp0my{~nFr9RJlm;4<^NUDLygeoxh{p3f_-t}8nayYWVI2$ -zq;z>0F!AyTbeX4G&bqa!SyY~Uw7v*7v(AB`?(g>nGqOw260S<2tD=U`TEqU6N>1t* -z?yL?@fLSUx-T9h3O~--$Zq)U|Lz=E09eYkJR6U(?nlz$LsG^t46g-Q2bYgxh1tkQY -zkl|jAGh6Xxs~8Ebjzsceeie6DqfX?#gNKVjpq{l9M?x&UaAkuQpbiICgIlnY6#X%C -zDm<|6u@N{+2VX<`8-t;CQfdEiXIo)(*)*)1dgtkL@pY13&!~DmI;Y!@Fql -zLdW`aC5*w8HXusUmb>?*(BHC^wnJD^sZ7VS!lGCFeW6H-y!SoXi>bMuX+5>x -z2XO#oFg(Tz?;#@Flbum*48-5_ZWcGG*E9)uSlrbz*2XwFWeX}X57LsoqkTS)haYT5 -zJ@!G}V~IuRs3W9)qm-ywMg7Pc>x$3mE=pKmy8B_q&z{R6k#CNe92O{C=B?Yo&K%g;@HgcFZd!-xE2T=@)n|8uZP=l?a_UcoU=!#Se -z45E`L+?Bc&v@}*-p;6d|S>Bqga}CKLzPn>iPXN#n^yHt?Vj+0zjhrhQcM&F-aMd+l -zJUQ^eceb)r@x_b=_$zo5exF;`AQ#bC0M*FDzRwXLTNx*kKFF4pyE9VEcguw2KRj*D -zNZm_ejk6c)tf!QEGjePXbfE`tX-Du*Fxsb<>h3h_eE1?|(v9#z6WqWnL^%tuy-Ak# -zvK?9!n%{8~8=+C@D1Y$OiZh{nJ~#r&B>pT5C^jSG8;5i1CC_61HZ971_A`9 -z%$WT1>2%1e=EsvmpYyBq5xy^l2BG)yol>u+GQobYCfX*VQ_Y&IiugAgHDRS>-`@W= -zl;IK4-{H}*@w$qC;#NdS&cQW$Jz#Wpu(i(eqxbazwB@)wLhIHn-qK24boXs2zTWr> -zv_&}7#I>hkTr%c-oIXv?`L3YRDR`e=1k#X!GV|>2UlCW1OOh9S+AS%;-JRi=2bg^z -zJd+Sg=3vUS87t5g0US8Rk3vLTJUgaX>MMa2AuG5kf5AV4FeJS%XnC3}ld{tJ(JWdY -z+>>b$HF2O7)?lWb#s&OXbb9Zfjy}#62s>FfIF#GkaA7m!Gn+)<48eH>>-mip{#V>( -zV8`{GkM?s+z7eGcv$rduU&-^GxqS`IP0*j85s2-!HwYs}R!w1nXlXW>(bh;dFU!_d22%jfqU*h$HibAi4 -zUtu(S3`N&lVR+0hVw)Ct{2zB9JE2avF$KJ94yW$nzb6d1G+HOS5pG?;qxkDcp^=lf -zRcO4@0Q@<4ZRT)&rtQH#Le0aU?0xJv@0_vCUnTUYXae -z>KPeBOvmTl6gszP}v88D9l% -zTy|_D0J%`@70s3F5R|&e2>=Io(w`6$UK%Gn>#w+|;@s$|*uKf$vP}9p?0ZLUQ!c5M -zkhgEL24#L?hh|7v3@k-mJ;(e4b*7at73-#RN8lA8()Bp96S()-v78?SPgF7^;8E+Z -z_SR`66{qlIQL@B>kA!sdkuR=*XJk1J4GLm)k(rg;BjwEYrikLNvm2RiUT>v74tXX9 -zcJms#WBQrQ8u}YvO#3>PV3RDbp>^zyu~nJznwM`K3!>q*h7!}ac@o2YAq4VgpEpJi -z+a>QP`(A<=#hveC@sgK#x5!LLFSn^g-UUnR=!N{>|}YowB%Q3#>8{-EBS!DvBOom?VZ&y!xxfQ -zV;>WD5pp9*A&S2=Mw`q>&zFT^84p?TkS;Dl$RS#idt2~@CmA-Edr!01P_u{!o#)Jh -zE-CpMd^kJ`&&rLX#j@37QrI^2oVqguaPvS7MV!+e4ljpfF(|g4|LB$GJ<71s9~d@& -zq0i5QFvxvz%0pWPL*U{**Y!=B=7>vtROx1oay8bytYf!;R`eJAnpJJ5-~9Nyy^*4F -z(ES^c*?)Urs{qm+0QL2+5+b_Q$0xzjgS|~xIvz3?cO!f=uM~>aR!*3|N%FQJMs185 -z0~Zq6IaEO^9C9r&yQcZiM5=Q!)X+&b#Od}3R?E?;!iPUn4&J@Ed9dvamlw1|O#5+3 -zUxcNkU$arKp$szl>3)%jvg2_eVcG7vLx7!dd#R+1Pi<^{6Nz7wpBf*ZK6yXF8R9Lcj&%76chd9q;x~E;m1ya_v>@TxnAn><5(t_+U6N -z?y)|n2ihD&T>!G5hbcu%(5@4+vgj$pP8f@^5IY4r8EnRnluLU$DhR@vSQiz@Gk>mNRWAUF3uao^&#JlQy3d*$zn -zI5twF%>uZOD5coj+}QHT|SlM_;l&L_$a7)Rzsj0RXR)cHWAKHC_7Q4 -zZ2c|5$;8sM6#Q%N3fzd9hTKjmvGxMKzduQUjeGwbtsML(@Hp(c+RdKg-qj0lT8J#k -zeOdO#{DE*HIlnFUlS7-HHe`-&r#hN?jB_8RLo1@w+)bwoX(cQ}Hr=K!+u;yV-V%`A -zhQhV`EY<@~JOsHtBEzm5IYOBH!wW!gI|8f!=y~$SZUQov2rc?w{Su>j)zxJ1W{|)J -z!Tw;9iKK_W-+{I-u%xALMX1kGTk-l1A!{2poglr&yRkq`T`UDiYZU1h_+xJ(pIXAQ -zr@h{Lu%-6JrmMp@;M5xaX3!B`1aEQ01HD`mY6D+sXj?RhT5hOqZL9K(4E-=|9vyn2 -zk_wZ8+-@_MALnZGv*R^6I(~`^*rNuN|D -z)k-(@6Nrl->TM30FYqAqK+>*y&W))5O$%A)y=n|I`uY1^17cm!hZzhYrzez%ax3<| -zTP(fP1>SdiJeR*Z9FjRrA2v%mC2Bj6j4m@ingH=MjR$Uk+A7w9@_d=F4<{TZx22D2 -z-UE~}3w~*!UVmx!AiEfCS+(Gta-08#{O~h5_QeKnzsGJ2(I}!)`afkDpMb?FR3*0% -zjdp&;e>CpH6$t8XPsb{)0|c8vmGl%11*+u4-c<{1w^t{>-13!ZA4OhxZ-C2}hLnw)ym4yg$8x3nxQyL*D -zTu67$Ay+d*qM)lZP{*CEGB%hFLb}W%?r3gZoY*zA{rQ*u -zchsxdadQn>P)n_bAfrE1f-!&E<&{3d?Eq+VQ{)S!c8?s(jak~X^#kR9F}HJE -zHrd}NW)k}?{pmShNJYPW&@^@`b!Yz(mLHb`bNebY) -zy^C*~auR+9pT6R=I1BTD6eXH)JdfKno%u`$`8#hAg0M2$xS$3j58h=W#O|&jXDgqd -z0+rhS#M4d~(VYZWFZ!GkITRE^17!M3(eO=ptdUdRhxtS~<)?|K6kq^N!+~(ETv33TtGE=Anx;ckR@45ku0`wq~gaG4NlIXmR(>&TScbO7b -zkS(GMfDzdJL|ea-XL_^$$>`7?O4HS5cW -zzy*;39jgvq_V#&C2&k+|Lzd&k#Q4bA}-N~N@}2>N);Q-P%W$5@HniHQh%RUeR#A0 -zTzq#m>r?L$-qgk#J)YW5see)T#%_l7SWq#l9Vd4){Ff945yM>FAlgonJI^i6pm$~T -zceWg<9y+(4+Mbp7Ai0=`UdZuwIZ`nWla?|r94~g}D--3-!A9hT7WtJ?uA@$+A1+00 -z4-4LNthMoDPcqlP*o7M&@%WOqvQ4_oY{o2P8jl+f9%yq?+;b4tu^dJP*v2w2dKK#q7_Fh>8qTH^;6dltsBo-FI$( -zKuT7twQKFwaagK%W9Tgu -zHAgHk-gB0Ao4ZOuHVJ4IkH0T?4GIzLCIb(y#);Q6EM-&|6hjOIY_I=%l2t;iCOoq& -z6_AbxkQHTS+C(A)J%tO~hHCN$8EU;`ccBC}*l~)fxC6t@u4&PjcsAOm`G`dZ4l4JS -z{G~9>qm{)^%zGBSTO>c67AQa#phYWK`Jgy%+o;s+pe -z>>F+3uD)o+h9ruZv1-3JivTJICr#!TqWrW^PK)%*FU@=@d2b0K5^{80SqXxQkZ0jB -z|2&G}OTp)i5y)f(YI`(rC=#i!Um25HV+^D*qVz0$ghL#wkk^wP(iyJ-CDAjW#|F=h -zuqCT+h8FGhX+mW`XHq8J&DCvNj^hIYfAOZg%ZAaD&hlGv4aX_bN~4ck%^EI@mq;(- -z+pS#NBF9qZ#JY^~QTo&fMtF9P?8AW<5=85Zk5ZD4$BzHNMt7lOXCQNo{; -z6%Dos#>NoSI&}`jkD9vD?8QW;<8Tip=P+@2rlmES@O->eW^i%v)o% -zPol077g;nHGs}B?LL`lFibC~3Vk{Xktwhd`hD5Qy5Dkg{u$8tVc{J#eGAu@~UqLqx -zO|plgZmPJ)he!AxgEvHOe&CfURD8>=0-clkBXNXZN+T -zg5KWX)dlA2vgZ{;DCnvTRh&XPNv&z}@tKB864DmYF7ASR?PVP}1}k4+VTB(1BTbpR -zslr{wSKumN^%%Z4%8Rpp3CMsh{b?`7uvak{H0l`deNE0)33C7;nEkewby?eA8SO$B -z*lMw1PYJJ7$oHMpFpVzp$;25&f)B?=aR^&M^Fp?wI4J)DVHYLhF=^6$AlKVN!kS(! -ze@>Y`*KW?}V4EM~Y)XZ8oE;5ZR5K#1w_G18V(G5K+*rv!0PeY -z@>$McL(k+)*B#s5TnCA3z7E440J9HqJtAdn)~ywpD#{OmheM=i)3f0^?hrufeFXuEAv&X -zj`I5t#6fNROT$W`e)A-Orfjb71}ou&>20?)E#^)%{Gqfuh#R$SUk1ZDQJl||+^6hL -z!3NS*c$I|PyS6ad$h$K*Rse69vx|&&Y8obg!TOfWJ9;GYqqQ?P^(nt;zV?>Yvd2K1SJl$!2NJ -zd4i>v4UBmS{2}t+FUrABuTNzt?BhI5-I{F-=f6f8o6~^0d{BuV7&jhr -z`w@&J_<=_vp_0ffTC$0cue*dgsm?B@9z~*4VX+6peM4<}cu3+#t>s7N@dnz4s|x}N -zzo2J6uq7N(Lp+on6#RK8%;#}}dyp~#m$gFDq&{;7J3u7>HZnuwK|!XeQtfpRDn^q# -zo_a^5%IZn`q-18-0H=DpJQd_m!d(6f%eNxz -zlrt+cWpI4C`#rLmQTo6&O=EP7S7#R`R5)#*`m&OsUOEvub}r}(f?EZEZpKFl3Mq`@ -zyux>|_{|!2k{kFDrIDIROV75m1hIQ!#fr=>YXdquErey_s9AeIi3yezEKhW*;d)KW -z&4))2whpSqhn_|1e9H1dvJ4B6f#XR;^>IBef(GPj2#;p`zw5qVU(v4qFXSdkMilqr -zgV(xJKPBd_Bsa8sJ*Y$-oFxA4GNx9~Y3H)ndDwoU_VRT5L2V0dPP@P8ZlGGTxp|KO -zE$RkQob>ZVvndHdA!YmWrA_M0ii{i7jze_cN9~6 -zpzSg1vvXfQESRf&l|JtrZ;ylK66h1_NW@fF<2|H!hZ>6wGX-(n4o5V!U+^O2NkduM -zv-~*Bp5|05=5G61wSX&6+7VV162r+ -z1eF-KuE-MeF8K+LmTK0=n4{17J;EOJIWIp(5r^crcb7c&t1~@M9z>&*pYu+=`_t$V -zKH0hDJ-yWcwKglcfhY>gZF(+f+7GnHfhh4-;)d+9y~W#M?Cb<&M69`dlQK&1b2T#D -zO1x(U9)zB(g4$ale32r5xuW()$y?x>d!B -z{U@4_Zu!8A&X!=nLC$^ICCR -zaWnU>V2qkfCFK$;L26#@&<}R<)5f@0gh3P4Irky6s!_2O?BrJ=wRXPHR^p?9EdCP5 -zsu(SE(ISmX)8eHHOAMDS#*zXoy#zMFH -zp||>i0`N7B|Iu`n0a0{aSU_o{yGuZ%yJ1nfK|#7CrIBu7kxuFEdO=E3x*G)P?(P)f -zo89I63p=}a?%cWeob$v9mz4-pJq>zo2l7EqhVz#Z&@X4SsHCP`YGilJ{JVew%p#DJ -z>}v0%4TSdL&jl@jtDUO|Zlh|Qb&kDQ>kgnVD6s7e1SZ8a(b*KrsmkwBQ&iiF_0MFM -zsRl_S0jtvCM~x2k52aq&s$e&9^SKcQkCP1jp=OPkMaC%>50X17I41?8JF4 -zl##*KteE6$rWEP3!815o*UvzKKa(l`?oJ0?Ol-5G^o_zplh?l;z!CIIdmBf+od!eh -zGf@x^!$)b3#@J9jk9!=*@d8WZ4!><%S7g~&v%sp#=%6P1%3{eT!evu!ujZj>ux!Sbg{}h=P{+e&R)o+aVwL{S&9rll!x$J) -z(LbL}gg;6#w#hZh_~UXPn8hPyQzS5|p-rZnWIDvv{H98@!958Czs+aV3#^?np2q{e(Q2qS#eE43eS_MBfqGS1hl==^y=l8Y?|tz -zm)PKC29M0CsEhnA?O--Ik%`>b|7sev?!|=bQGg5J*eSrSc>aD;7aXY254Yu-z1mCQ -zC?x-db9sFnhSYXf5Ps*Avh`MVU+-1P!_Py9Kh!qE)2B8NLmiUjapOsWpvBXERIfo2 -zdL6lm;yxg6rqKT{EAx*K-%UYoraicbtclM$@7#KNldJs}5fbU>_R32DYBId_e -ziV1LMZEsd5PTeV9(lrKD!vKmO^H#C1BM*ZV#U$XJu%gyFyYrcHc^@>qp{dg~3zN^r -z#XqMT4Uc@*$xGLE-57d$Tb>D>6WxuNxRs09gPqs$X>K>!8~fX$=O<#ou?D?CttL10 -zW{~&m52lyH;1a8t4AzgxVs^!7J>1!Mh>bZ#!`bmuk{?WAgUF>zY8Wfev*SE=$kg*C -z3SAF@WBdua;WrS2PKV6iq3N!l(=U_S*md-g#plMdTA(QPN3?_y=s0t}8DpfW_6NbO -zMy#I28)k_A7hAC`4|+rU8zLSAHhz80udYG)mM`RcYsBRP2rEw_lz3pcR*T -z0oR$6-!{{(@8p9+)Xfq<&ib{%7p<@Q>C60s+Q0(%@=>|M@DEw0+~pW^afM2u$kEQw -z^(O4U%aY}bYY_WwV0=D9j5m@Opyyk`&(GtSLA;~K@&V@1kRV0L*=%<`Lx^Ww#i!=a -z)5qy75zawFOcgEtZxh>CFmgS{NQLfo7@3wqjDHCs+HgA_DkYZm>IK%|LDti8`QLrj -zbT`CX!_ePyyc||*>@qv$UKIH7t=oQAFf+aB&ExqJ#PlCn=+PImM{CmtO@9V{@0{VD -zec7et&Tnnv`DsI`5A}dT_Hfc@2hD$d#Xc^gHoksC+5a&U^WJ6f7qzb^ggphIMY>uf -zDwRJse~mEM>&iG2+Vr|ePVpO3v{*}gU8cd;!|rrdznp?jpIbrmr-`0Z$?}TAWykAe -z8TV2b6u>qeNQPvJz!yM+X@f55+w{KiU>r}HW6O6fKH?}+Wju+1NFEYbzJ9r2fQNK6 -zi21!PN`BT1dc2}<;FSE;nJE@XD3h%3svSB}SSAD3;~cOC_Tm}0Ta*UxH7X6Ez`ulu -z0;UITr|jYD=By1$Pi;6?0q|B>%ODIwrYuM9pNUtP_uk@1h(cvFdUr+K$C9-XLAD6U -z$pP5L$DDUNV!%b@pTm%P$U`Z!GoTGBfWsaTxC6x3J@@!6Aby{&k0UL&w&N+>yYryz` -z%w%dh%?BxWLf8(;Y~nYlb@?`#q#ALXt}JON5;CA^l+ocKqV@k`4y+@`@|nR+Y%lm7X4>G&%DCn6KS*sA>B@e7NH(enL -z;}F*S^QA -zm(8GGp;13=c5MZkv5u~%AhQbWk=Bylkx?d0N=+-Rj?-MjLQWAB)^=C&I2tJLB?0*} -z5S+KZj9sK1v5|Sla;XUsa0Brw@s_Nfg=_w&#oOG%2T1uAVWk=P4}e!R-{DXm%6Z{& -zsI#TA>Mw4-oe~F?rQm;r-gF+7YJ}r5qLQYBhR1z9Kkj^spdZ7^LHy{wEt;O<;G+kb6iiQshV>+mZ4$2~HX^hHhhMSg# -zzN{wnfPLKe4;4wJ4?}#*UO4mv(Ox1+t!lQ!D2caw(hP|>spJKYgCh)6MlpA&0tU^YC>o@#TdD -zn~!l|&m>w`rjwhIHS3d1?0mP7 -zHLO-_Y+bpO^gy!;&?VY%{ugKQ04sc!n2?;7aVn1tt0Tv`Q|j3tz`pm}&oBJtHPZ22 -zm_Z>AmD@CK9l^xXceqo9F+g+>=)h6x3L{6tNQMFsu2N$3h-<;cc>?tb>jK&ZA`7I4s65;~ZT#mOoInnQR -zhZRHYrm0Di%gl}K&1FBEH=xYrsDl=Ti5{_uAx`B0AlDHIn2OS5{Iv5;Xqknb-swV_ -zmN}j7B2#HiVNyp7unJC=HVr*)B&mBM$R4MrxmBiACfSVYBWDAPrM{S|IG^*sz(1PAY#+mvR$QzM9Se51e -z5yPS8S@3d@)rbVZcoevej25r+}LAjZyr6*Z2JvUGqDfrz46EFdYhtJh>y~bhHNg{+?LW -z0GM+hTe)FWQ9qly1ar%QhoI|?ZD&QSdD++4U*q7pTz3v;f}#5OKOK|_4Tl;s=8O`Y -zOwDKNs1eg&O`E2{+Fk`}ZFgxr53Hj#bpZY_s)4NigJCynDdnO}9%t54^FdERR_EeM -z=Cz%=7f!+4SKdiSuAolhWmn`n+0vQl=i53O5pE~?S0Z8|WpUJMRjvT*$oAD}lfG7G -z!|_#(O^#A*pc)@?e&fXJ1ad?yznz|5$3ckL!S2;fb?_aF1EvE3Q5R+lI -z>xd?r*0mm~Rf#!?y)5fHZMegsZJNg*&DLX+&@BpA7rO>fkg*HLB+l@8czjJmh(Kj< -zJxvCE_CHBX4vCwE%c#Y`XX4+p2{MbR^~G5G{lc6KALX`;9D*o>P$LeLf&?R{g5YNo -zV8MaI#2HRyRy1<(5amG|$<@y#ZSeEj~kFcZrm?R+C?|*Ga_1aU?(}Mb|={X6{c|Cm3){}p$E)=)^UYlstBs^xh*@2?J;pjwv%O~^_)(qLH2<|R- -zyeF=xYeC|xi{O-iycnSmu(axQy_`*TJnIfswpYDBdEJ+qCY~cf_%|*en;>+HDb5e) -z-bjr$fBnyWOFw`PJ?$X=GJ$xJJ@-6;$xhw2kMM5pbP`(Aaw{(Jzv-)qw*~d4XcYpq -zt5^)0j2=&UPS^JkCZ?shS4so(1Zt}t6GELju~mI?m+zap!G$mNL6PUVhmBrvr^R08 -z4G@hxaAI!rWZnfO%&3o_Dju$5(MhuW#}L8|`s4HvErtqQ4frSrzHoa_{s)|qVye~_ -z`opAa`1ydf{g|J{d(`hz37Ksn=fylLk^5+0q%ppA -zV)fv8*uk0mN-K&uH#C=jn`1WW=)HtbxL4L9)kJ`vAG$^U;vj3Y -zPN?D5t0O&RNKc6Pt0`2+j-0&-)UPa)8?-*=wG@cz=C|Cq+C;T69c29N7?xbA`L8Df -zFfRv!QxqSE>A#%nNg`1tzvpp%YYzaCHXsQ!Ugo5AHAvf8?K_g-_O);@{jV4EYi11P -z*LYcLi1`r^n7*T}E&H`^wD;Q;EeCPCb*~Plv*-gf#A4>3-dc9@$2-dJy5T!!teWor -zNF56Qfs3MDi-V5SP!1Smy!xX#h{tKkHXx=Ik3=J9T@&c62;-gQm`tB3YJHaJsq%vh -zrsK+r{6x%OC7ekzf4Tt;Qt4DU={8skvCt5;X1fYQObI$5>_h -zR8*W1!o&CZdiXyvIuH3dQ1<6nGS-*8BKJGc0%I2Tupgg7{+5{#m_qj(BF{^aR)oO4 -zrXgeA|A2?72)G8sv$(r?;-QLuv#n&8OvY -z75@*<`GYsGw_$QPjtf_X&O)SFT<@dkZIZeP97pIcDmY>CW%5V1{nTP0CNGCmP5Rl{ -zNWj=3Y{KeX|6#dHf##my`!_89zrO$Dm9Ty3)(=9P{UHidFTq#oiDJdCxHuRt#}dAJ -zO{s<3H~mhAztDgB&@cYG9 -z0k@E~V|8`Gj~;p%-izBdN~_sT=;xlZIW}H^427?bTU!k7gx;?U1;QlkH--^CoKwwq -z0{`|a)^Y)9Jul!%RkdnH8~T+Md^hRQldEU&s?i6cNd@+Q^KN*~gd4rb_cN7Hn4S8O -ze2e&lF{UB)f^=`t48wM$#Kf5?C-lX5zTOM>lH=UkQ;4m~0shCs%LuR6Ch3b2ENuzWL`-@tRv^)yTc -z99nq5bSgkvz%2p5(_G?10cJsLpd^ -zkT)5|P+4@}*eb12fq?;ykw^AYJ-sgYzIOdr@*P9w4U=T+-Y6aCSM;NF$+?N+2Vy%I -zvkHzmN!`&f!erfZ`M$+73 -zM96fXRQR1Yqq+=DO6+N$Gre`vwiDW1pnUn}pHc5`864`jl>NhPdlpg~^)bVq;xP34 -z`8!{-B7KbVb|XwWlWVI_17rJ98~i3*s`ca~4T|0Xy8_5_@^}P4TSfeA47okbJyw4W -zKfw5REkG9=6C%F{%8k_hh*e_b?Kl-|belOwiF6qQpD2RE-Y|`o -zn;&i%#K=VS`3%}61B_cqK60QV{ZJ@Msew%_t0ntZhwCYmQd;uf$H0VNoFjn;C>r7L -z1@DRU?P%zsSbbpGxGJhvx@mW(JIXWFT5)PR!N@|;n0Jy|cooF!1=y7vCf;2XQ*Q0!R@O{VK6}&_w`%iY;a;`tWBwF$()Jo@ijf77r49N8;z(e|#II05l%hzgmb; -zvp4(*DZFPD(p0OQ6*eoTG -zyIz=DtnP+)JirgB3bc6ql477x_PSJ6EI{YZP`1d4In#Qnmd_i%OyOO0*KPEs76 -zaY6=8?j+vC;BC!TU@QyGktmWI{Dt41vmAN&Y+sx@x9le>k5;s}&Z!IzI}30Pl5Ccm -z2Qz)^S(@It?Xnape>Eh`_PZoI0+Qr8tk-xAyIp=m49ia2EN}L3O9TAfc|GXAAsTv1 -z{oI`3FT5Cd7rbzZoRy|n~FX+ZV%(YcE><-!^In=Q!qEFGJ88M&v -z*s?y>|11c(sGT~W){8vnjTAif-5$a7{*uK&W9VK1fC?coP2K|QjqVm7$-<9&;L(q$ -zFE}+|f`9)aICr}ZGcq>ZxDaaba?%GA1aN)ffrwU$?d!)dLdmD1pQviE`uxT}94_45 -zY&!nFl=)y8S&Aph>J77GrlcS&>UW|{|E!76uig~yiKb-vl}EzA_XXS8kLupY62Q72 -z!ZR?d8HU&T`|Z69kE&Z6U002%WqTF&rw%m(mh+iSR3n0=YaXML8EC|DvU%Asd4=3A -z62)&4<|cA+5{%&D!tQf$LLShBVVrIG?7D5!6lxU>#2yiGL_V*hDErW^LGH?8-26=c -zXiDTLnwApBe1|OYSr7A{N{hzT1*Qgc#9WR(XP7K0XwGeBv}qAw$y*+b#d8>|(ZTmJ -zjLl*3UQ(Xt+2?;TgK=n=x*6Lf|AiKI19S%i^I#nF{fjm;-E9HsGEi3U2C%m`fsBnETtZNPHG%Mwua6<4=TkA}(n7ERM+7?V~ -zA^-vaP`WuvMVXY~%Lt~+(@#pJ6vC7&>>T6I|9vi~P^ATZJ`;ZR|BX9Iy~|5KJTPP= -z_puCOvgXeFq)<|jc6SLmO%xGwcypJ6_fMT0K%?ujACS!OhP_IRTe2dVB>&T1hfgaO -zL>H-vKOB)9^g-s=kq#Yn-J9N;oOXAEovwRGq6Q-11c6Tt`=^qLg?CQEg3uCgJ*9Gr -zTj7lB|7-T3faaGguEBq|q$q?Ar~?HzUsZGWRLZzz!bi2BV?uO?QW(h1eTZ=lCR{wT -zW5#mwI4Babt|YG$abD7seZ;8MD0Te@<1sd73fG4Vu^NnrZB<6fZ<2*Z}fFY!#0^p=ke|RS_J*{s@ -zA@Gh{LtM7cMxN!eJuM|Sg -ziBt;g6oa746Ejz9p{y5oR0=2`794~{Q1W}Ahga9-RIWKfqfS8+g&*=4%w5!X -zGQmhbD+29=?W-5kB}fnjE^uZDNYkQs|0LluQvx0-wJDjDGapT5y+go$fLk!e*`=Zg -zur45na&stubHEtk#lkq;Cj;ze4{kyyv>dETKsXMK$Wjg1Lg}fob7Tf1LGBBVGTYZ9 -zFwgaN6@V#;RWW}m2be305ArJ1E40olz);oHb(BJ%IfaK86#v{{Ytzxqd3x2MzK#|CCEQ5a4cH=e)36sLC9`4N`r2h;=y6cS+8{vGE#)i}~csh=q -z8ghFY^tZ3n$PHac3i=rCP$RbS2bNTVU1u8=1}TVx&{>Z!(ECtuJ?5-S!*#<9V%~-ke>hU7~4#Tg?(?$M9o?$ -z+`1H5t$!Nx)d2^Yy>!IA(!B>_Rtl!%I*bldrmEp1fG*U%P#i!iPDHHY{UXsvY9;W6 -z_AV0o%UzuY=iXi~Zy0+b$o-%#w6HRjZNFcx0Vv;jw83 -zq810vC&g%V*I&>3b^9c$j1QBwY?qs1S&9H*iu;X4L%i`#!|L0x9kt-&NIgvQWt;}F -z;MItyq5;=yk_Og_aWi@BlY}oseOTe)p{}>VrNP$+Pdf66@@Y6^WMMON+$IW65&%G< -zCa~j55ouR>0n>vcTYJ?sVAw&_Re*l9$$-thAW&M(f{aIr_FO?RBtB3h;QNV86ghq= -zBSTsVuXd*Lr0yExta|Mnu>~mtF{K~)lpgm%MC6)1Oj7wB-48Q$A@w9RE*R|a* -z$Rq=~4x7Yt1`HK9u66{_^RzmZ`5zVNFYm`SZ3~_&m%@_n`rZ?hD?cL8Zd+dyQa}1` -zD)i}e-R`Bv-P0ho#1+V>4fIfbmgN+Di983(j -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 -zY18)U;|Y|Kx3W&)mzR+ACE=&I6* -zO1u0uBrxU;dw+l{-(ie3wOb(F^wMkklKz14R?v;Q<;$&!f{#2TB?Q)4{+5z%jFv_6 -z$R`0o9KGad-~136zhLeY(0d7mdkN}WuIOaCc;+9@ltF6P8^!A##9!XgY7UMsZp8Q+ -zkn!^Z{o2Aj3a+uud)HC0&C_!0RvY4NKD$7*6->>76)GbXF8`WA$j>w|IF%Sf2b~?m -zII#%_fOZKRfU}Sb*T3+nQ0CaqEKPyNHLk@MqM1<)fLp5~UmUN7%wf=EfCw#;52j$u -zTibJ?8?6TfFT77Xt_#ACG -zXhmI;<|}2G|CQe%GJrWRJ}LG80nGk-Ov9Ft7Oy_EEJ=9mnN} -zW5A;~Sa(|$(fDrGmcOo^xu$StJv5~$lXf!$s4Z8=dw}?a!>dTC-rjGS{JVi{FEJ}( -z-ut^vKL##gVc#2{tUBt-$!@%1hWYHPnRtTN!Y7;;66P6VBnz} -zVW7riPtOb>80vBI1wn8eak2yxHuMwKISKu`76Qp$#SOo(Zuh{Eb1FJ@m!0t#@4x%) -z`G92XI@LZ0UvNC@LlS=X>|t=>s^PP@C#z0ydB{}oH_0;66nB!n|2A^iVhro~m26q4zYaVUR=*B>9@7F=Tby#VAgiiHYI8wCJ#2J#ue6|hR!A^3cE0~DGK9&-b(RzwKcDeh;IDsCZ8@GY!2 -zjV&ThP#_oeU95`|{FwWzk#ll`3m>Spr2W-G|6+>Ku9DX-n8cT{m2MRR8uWhC+@bve -zJXg~*8c2lxPR86cOGth|&f-4j?G267c@LTm;I|G!Sfe8_?2pvD+Bcd^f7>VXto%*; -z9pfh}HDZk?Ri#Xud$%YmmWD+AXT1LBY%M3&suu@L;sBx-uqjS#XYc1l%B(#`|TwdQZ`D~S# -zeoFKHC859raW(ECyqUOvJaHdB-Olfol729hFVF?IA4b;x1BI~XnA$SW`7d0AqXET+d*gFXi)j;^2aPHiD-^3QC_Q|_pn7Mmjsq`Tyvkm$3>gjkLhg@25 -zrnXve6bpCfx-;2U8l?l{C#lQY3I?06(CMF`r{h}=`s22A>71=yGrdE_FA6f1n4D0R -z8m~DmX&FPGT8GH*fts1WC(>il_vDV>vBd1o5jtnI=-U=hxZB|x#QPKTYgoglOeU24 -zUnjXUY*^T}hr^KZ0Bs$=agBB<2Drb~5O$DLa^FCeFNGk}Kv1ZL6aG~__NSA-ly0v1 -zacYx$pi!e`_x@536rAuH>)Ulax -z$RGa9j-=r7%iE~^CvH6HD`Fq~i@v&0O#j>#~NEhp};!#@kPw;qbJE)S+*K+BN1 -zGRGHOkmr|K1%KOK;eY!^_uf@dyUJs0SsI^TH%l87f_5z8>qqEaJl(|o{ -z{%xVhcb^8Wov9_$l0A*Oy|pGMV8vCMdsf|4sSKmucto*3MSbJ<52!F^!c9&vtz6*# -zvtNZ}sRQX&Mp -zkvHM2I=;q^W#0-Nx^HCslEV|+)77v)0eY%62Pg_6zO{w_>DizXvH^5A!UKJvC(nDVcU>Zg~yC -zMSN(P`bTh}ye&mW=_NifY?l4sqk{(h-3U7JJ(I8(x=FfSMHs2M5)YI(lE+kUhRim%?v<7%+AWLs{+~YHa^dKiSf~T{e7D~Ciwxd_BKJ5l&qEt-PAZH -zv0Dw+t|PGZB;&_^f5icBLxZIa=COOh;)&{p0oDcXK09E$0C1gBxT$E)d)MA}5Yim@ -z1&s6*t_=J(l3TWYl?k&>$Hsbl(o9(?mbU)K+zU^vrWgJo#w~Sz-Q`q<2sq_V)*jK9 -z$&+4?Qe3XTe>Dr;_~BW}r%byWa?20c&3}wbNT8{h_QV-9UFhL>x2w;b^&%@ruv#dCC6}xuuS;BU-wSlzd{|L#~gO-)GzC+I? -z)i)p3%BAst4~6D?4+o$gIK4x8Os8Hf2Kvewz!vw7LJI>0{g7ll*k`NeTQ8HW4gs^W -z*YwPX*a?h*VOROXHo!{-5R9vo+a<+Kjz$(11hwh#Ib2_$h^Qu+E+x{a=48CRZ9qLo -zgeG=1;m^~ZxGtS0QnnQGxo^7sZeo2_gk9o`gs9MHU)!jQ0UR#i+v0uTXg;iR{#API -z%YI=o&5hZ|RmLCX5nT!X)Irm>Ouar9ByHRdI~lXFQS%LL>D4%&wP1U81SJq(YQ1ER -z%(2h{s^-80u|+oEbPWi*R7dFvAbBC`7KXNJ45B-w0tG&TnHfh>- -z;}T<7`7zKY2 -zk~SD~ihCp`dksdkDav=s^0{PNZrp)iq5UePF@-}gp;1ziC#HUA778R~IXoj2`=qP{ -zsC+%^ee-qeYAIWtm1(cy4L`>ZA-m-mOlN^6t221s=rpKhjDnK*9qLZRJ3vpqhJ)-GP-d|qh(pEa;L>~9KcD>ZuNxeqUm?rShqbvqGi_+o4g>M5xM-ywxHIJVB3@qdb$}`6qSK1^3NW6V@j6s%RAx4d54L<{&rO98+Nc}x?5j_Q^5|qv -z$bNXTQjRO~qkw;0Tdn~ujwmSsdrrtL&}DwC83k_^a?Z8sCc>rCf^J4VGBUi@T)!I>V@1mz0v&FkbP#`a#w^8mem@OJBBO%cPgwa^ra70X -z$D~(Hw}`)69_~Rv16c%k0j1zXp#_Z-!^y07rzAwJgS``ryjA%_sW6^sNB+w+`8hfq -zzpEn*iuXE{HtpDyrN?(Ls5?a3U8UCVc>mNEJUUv03E_hQX|EAO7ELes4Z~u|JJOaP -z&sF6QRw$#yLoq-E_>F84O~k7h(R|`+XyQW(8&ru6 -zrF9VeTV*d36GN2wXD>tPjW?J5)pY5U_toU;dx)bEP(?ay+ivlp4`M3(zAZjEYEs)- -z8M@xzIt$>#z?r+^a8k7@+kme=_S)fD%SulX#3-^#t8% -z|E)h3hZ)O*;tde{VhrWuuJ`7t&!un3SzosjpxCK>Y4hB~iVhNd8EmrOdk1tV1$IRV -zeJaKF!+xU_&T$s+L@_1x2ga=DbNFzZHgMDGUQhfc(`hzk`~L60rf!?1W~oFaiX5lK -zASGp4gdC!Q#m?2QQQP5nQ4mA{IELQv#qsaVdT&d=44j%&TbC{$N0BZ<$J5Zsuq%LJ -z*C8jVIl&`%=eIGf1FTNBCQ%q1^grhVPo8t(zK8jF=V5)0^viS4vu~Q)T1;7|Rox;@ -z#L2-DD!)D1dQ$73n8k86r=2WJ>qefGQq{Vdl}Y7% -zsa`8vL*+-trVPHgUNh}IWM8OEpW4-1Aj&Oh;5lL7XjHb_tHlmq#BOzms4H3$PBDXQ -zC{F;HNfjmecr-|^wk*;nyNRquNbGFdyAauENueD#9vV&%U?7ha^*$KxF#?SzW~|}a -z?eYc)KQA<$(_UeNvDu??qRu;Ew7T)5rF<*D^m`8QV3lMVe6&Fm4e%q7s3P~P&$MKQ -zsz4Rl@@4GE_y?7%3cquxG=v5Ys5M!Ot~QvuOY=Amt!utbW60)2u(Hw3prnNPz$k6A -z4(syhbeV=3qt@IKj1OFfw7Xr| -zX}On6kOq4|IRf)STI@8#Uic6bCbvZ{h^uGZe0Fxb=>g|8xPO3iJ^s>v)Nh^1IqlD0 -z_z3LP*UQX4ZSWN2cSR_}&_%ha?fiRuQnB|Vc_;r1f3jfno%@sj4b3H@6xxXls+pl| -zAGq+%K6(geai4p023X7cvKkuA5mvM;PP%t-tp-jpRqn(Yr*~qf{Pck`xGlxm)dB{= -zQr+RJn?vZgTARI08_e+x>P_2v%N;6@Fs3mwQc%A?dz7np1Kr2BASAj3=6LB3g8wDK -z4TD>rl0wpphF4T|7>g$ -z4yG0&^+K&uLDSX?%MBntWY5hchdt@o`uj>Nnyw&PZKuQ2lZlx$R?vmf@z8j&i|IuC5JPNNO -zOf&Lo5e?uE7*w7Ml4avH9ReqTug -zj0~VfU|Pd=F~30(ze8?uUG5r%uL!H%CWog}kN$*$P(-P|fo5R~dl4fz$$|W<>GS*W -zGawFFG#=YPS}@uOi1nnjXP_&$14T`YQ`nqC{Ar -zv5G#Nxpx`ox=i21`p*=MEK|Uw0I>Xs&Hp`#_`24_UZpUOI_D+nfANHxHq(_*!J56S -z#O?$s+50bK9et5Vg%?Ep(@d}TaNcj5?gl((CZioGO__n3#MvUVG -zUQosv5J0n&h!IxIQs(N!;7*>F5ewS(Ee>U7t(4P6m_VG0&-$5w7TrScLgs3Vn?c!! -z?N8ZjWDznP(9Ho-x48A-$z>4@_3%tIzX%>61P4FqBRwyNAI_(oh^V4S4K22|@{Igk -z^mhJFWE;ZrBz6<6V*idIAnJ1oS0TDGHEneS3<#+H*K)f#r`(@G*n7YewjFQAtAWEN -z;{19xxsjc3o8e50EI;n@$^0@EHeUV@u%3kv%-O=ApJ|kJ= -z$Q2e5I5?ZEU*1ZFjV?*mV1nw+9m!8t*(f?6@5B}~+)Q!zbk5%N_N|jw;3u@5c$j(X -z&>anxKFKZ)>QtuBeVK#FgO63try!-o{JcEdw5^LA61%Md9`z{TCADQi_b|1I3 -zKVEwqs6yX7dp!BuX+rR6@3ZOMWN15EIK7FY?NQ>bf)RVawG~A_oeomLZN;JE`yRE9 -zCCc>q-Rm4vNH8%LuNSdjWp)Vb-5t>umf5|=TbmeV&VbV2l(|CfzxtEx`F*ycIpnAI -zqAdm*D&wunk1ipfekk3Gx$T3{=PZN)t}2lm6A!hr8uFg4Dxc`Th3H0oU0E( -zVK(DN=n|-II#KobxaLdyE&o^d6yQd<7P@C`zryCr6 -zu9Ss)cA=5Tk=sVvxx7bj6KZ=3HCsUfY1}t7AD)VGxaK-GVdQm-&$nHGO<*R(nn^`= -z#eG7pn_X#Lz!IWjGQ(qHn{HL}6HgmqIJG^u49JPgWs6D&2~|IDTtI-SEth7vw}?JOr;->x9%IXq#vJbj;!{$u=H2f=?y51lDCE<)rF=a?V(F`< -z3^>-y6Z;LRFCvH-u%};l_TK>+Dm+~V8F~&vN10ie(>U@w`%ARHXxTbzKgLq5WUt+` -z=t`gSD%lr1V=RD!$15vA`KAO4htCwTm1rI(%XzBY^4N3^jQtOB-Dp!83KY^;q-L`M<-_p7!`<;_s{*@gM1C*dE+$ay1G(kl>d`bVW>59GZLGMu_fx -z&m<{E?T3XO+v$^Qq+0a$N-7J1h(XFuaxYfzXJ@JEFJ`++hsYSud{09onh7@cf&TBV -z|1+sg*Q9~t&QCih4sR298Z>Nv6X924&U_bkPTl&;-`B4#s?cYElz -z$ydY4T|CFIygS1g@=9%+!fHNm*Cm~evz}=vZC@K|SlJCiOUtgIc0+sK`pe%rrp)}y_V2<0rJ^XpVd%a#B-2SiC_!;X4=J^ZUL{aB|>>4`~c>>_fg}*mrGB -zEM?UR@*3D3nYp12=)2L@Xzd(JT~ER&k8eg0$&4OU=0P$bbWi9;4NX0yzK5SCu$5ij -z!*eZz592m)W1{CL^7JMm>XUqBXevIiH-yrWLv)ZqC66R$IV4+{(PxeDD6gUokGNkd -zs7biS*X|gkx8xpVcW25ZJK1d$=h=wt? -zzF`hmFS{Z`T&3eWy`+kS4w{xVq)$DpQb-yI1>XmfrR?G>r8B0-vi=dx$^!21!O16| -zKVbUhCaC=hm0*D9N?R0qFbxN5Oqa}$rY(*`MlNK4Yq}|RH1Q3X;#1N4gQNR+@AZgS -z_3;0mx=B|ki#;hCb)ZcvqPOHzVmuglNXCMQ;8t#mejMdM+^JP?S(wls^+R%&A9G8R-(6zT8np-wwd -z<`f=2=!(o3pU+g6TI`|GodLBeXqHwF==FM+Qxj#ZnEV@lg5*obcTI_F-2xmw{nK6O -z0JUc-vZMX&X72o<2LJLF5Or+TN`n$LC!CO3VTV^$$^` -zX0UK(E}+4K5P-UV2V1Q<6f2YyUEf2HvPbJ7?3y^Le>5Txaq-$2`Dk5W -zsOM%#f*3HK9~2P(T~(}7yN#a<@>Qnj5U*%q*KE+yrs@kJ2%+I*`10x&`Nu*474X0F -zi6$<-kbS&S{9YL4SpfNCr-F)F6(x9?3K6@hI0j1|I2<6}0~CN0lvlse5$#W(&{{wVw_>NHa|Ow&hRy>o>iQEDT~EuKRTyKaWPdxLoYU4UN#FboH}( -z9fa|+{6!-bO$mjC9(4f6CK~^p#lI0|?lMd1f0FdQal-8D?{nxdSe0lkaizT>vE0s2 -zN573pR1OQu5^mI1{#6Vav1Nrt^pItT$Q%?zHxzEGjp8KvR7t<}VpMkT0InQ_5-0y2vy%0H&fPiuxVD-Xg!qKD56;OI -zv7=ul?8OU~szNA(lsy?)a+MvUvJ&YF;=^)=6naXq<%5pTM+K?AanERu#X%QX8Rb1= -z-EeIdWs`SrxgY+P2Sbq>7WTb-?`97XH4^*GX?V+G%ME)e>X-J7DYS7c>7{(Ro7sUu -zG*%iJ{DPH+&)CxD*j54$*DPWM>Y-fT(57s`1tK=qJPC$`x3sHU?6QI{f(CS6WBNev -zf$iSUu;Ce*@RzAYM)}`=EITaW{q#Yl -z2(0UQ1n3|nqA`CL>8-)WXGa`Kw`YeYSVYO-}*3Ox*65sZh?2(L`s>sRi23EvRZ -zywcp-PG;eq+JQ29WW9C6q7rr;hKh3ye(<_bz!fe&9&MGD6i+Ws^`h1-HX4QWs|f>n -z*;*QQArD?NmPn~C$#$UkyCiiCc{Wzv%iqF;LqNZ)z|~d&v4RJ!Td*x?=oHsS?CT95 -z;JotvF9a?aD-#Y20+&G2w@hs4KoF`_SkNGj);jp7rf!F^>4NF{peq1Aee8IoN|2Ub -zHIWwKf+Vpz8SUT2@@7=;2fJKUd9v-St5F2ML>>xkHo&-#SKd35C#x -zu49fB1?p;Ih-XyPB8qSNgLa0X_yOJk<8qT|>rQ4)%2*vY6dV*()5MiQxZszYNh%L8 -zC=he@kM3*bN}jsr7wu;Y|9yG0tKNp`AejB@z}HXkGz8ZO06V~;h0ab-&nBCU?Y6m0 -z_?IH&71u&yLD#T#D^PH@$YN1>VGb^e^UP!nMZ{f%k(buwM3&7h4owm)+2j)Pr@KgNb?b6TQZ3 -zbAj{9PV`Louw3FK8R_ZQR4A@NmIDBFQWEULHc;WJ7#dWNMXyE-ub>3Q^(h{B8vH>a*RxmNd?IOs6nGv%}^8@UlIPSBi -z)G()tu@i5Jg0$VbL*~;tW -z3I*lABZKK{85d`CcoLc)indL~4I7qe!b*EnGO1^K3oAWC3SVL@Y$yebWn}m{&H`Cq -z8`AUZ+~J_FNBdmSj9*W~zQ!d9*rI{(8>sfGx@tta`C^+&Jt0XxaZr=&J`auk=GH~H -zuP_T_W39G|9Uts9;&q=Tk4fqA+E83&+{faLb^06py>wGmm;ojqJQK-SaWCsfbnMw^ -zHU@Ql*vXsGdMaEk$@IMnkIcUTw6EwDJ6EM|)2n(zai-DVA8hxZWjuu7cd;PA_q?O} -zcy*Z;%VI7uG$xphQyDXw-;1Jbq>}8h8{rJ;w}6k+SmJgNOm=Wo`Dpn}@O+M&1zE!c -zo}7$oul%wFM4ge%>2|P*Gi>`Du-y0PA-8V~9zPp2Gm<~aJD0(kt*Kk}jN9r^v8tqT{K$Q1^ -z&9x3e!*_XsF&4lwm>3#BD7Af#1ug(@m%FpuoDaOTn@<1J$d%WgAj|)4}wtr%dG~59h)__`E9F -zrQXp?61>5aZw-CMA6vJCNg;S@SB -zRK`oW(%$cvJgoT^qR}vwv65@{k*2oZOqVgd`wFa!$n8BY#8+0&GoN{bol+GphnmPP -zvK%{=A!6Y)a^Al&xsJH^j(TnsB>%>JWrGpNB<6TpZgjMlvnt|oQBTG)hi@{yx-y_t -z+Q6AR!@O5)6$7=z@`mPeY=~UMi?4FN+Bb&+*a^4;fSq*9G$37UFTRFrf9?yUaX_Px -zNV}5ft|Z-XRMd9F$3CnA5L89s{*~EasV-vb!0V1kXyS50y8brY!A`+3}Q#%=J2BGznqe_e(g)&ms9mUA*V5(H-Uat-@Dn$n91* -zIpYN<%6MhH66uveX$35z^PJ>Bo#8}=H9pZH$dbs%0Kgxl(L?1KehH22ISR%3X}yG` -zNs9`9D(FOo<}$3e&Z_DPzFj?p!-As5Xm{_Z+3Ordo@3=UmbKGRxVvYMj5UKr6R49X -zH{|+Hza6oYFZuRR8Jd=w&B~I(ef0c=7k41GAd+aqkP1JAZLdZ4nH?jQG -z<}ddYykqk|>tlBE4fRNop16o%8g6afsuOxbO7+L=!u*QZm!5bGud>IMd5*`RYqXHC -zJ7VYR{!~DgT&pnOWuaD(&!bIt9=G7z^0@F}A=l?Py|!{o1Ppg#u#_ShfrkEtTKg2- -z53S-PSK72`D-VfNd{Sl1lolo>h&-A}vDsdZTuCAI5)u|p`0_FmU7)2E@7F6L1S#eH -zjCNf7hl<5@B{tgM+w_QK!`TRO;E-~8Jxb}7Ymg+fHlOaqgO=p9-Ouuo_549%5dblp -zyuFxkv|E{R2qCq9PR<(HA9m7SEQ%kui0zu)iDP+zWRw6;1FxO5D{K%x1$UH#6BI#q -z>I&Q5su~i9f5U7CN~ECGc}JG&eZhA!;bN}?Y#m7RtIl=W?q5FGssoQQ#xv^U8+p}V -zCZ98!ykir_Ar&7BQDZT5wd!UjZKc7%X0ihDMQgCA3zU*e0Yen1?2#Z<@fn|dt%f5D?&k# -zke%_pf{*fslLwT0@Iuw>k`PsWXnFgx4Sgse_YvebCa8lguj$RLBbl?{C -z+@mqAXj#!MBoEP!u(A08ssgxT8UX=WQV1lCl#>kPVhU{=x!I45sLs`)Gye*l;oa?1 -zIDN=lPC(rhqi-Xr8SErU6~~sAv@U{lM}MS){@`g2=Er;$CDA5Oe}sJ86?JV*3QM!* -zqwi-n9x1{V@wt@yJ~Ki{%i;OA){1Wk1U<`Th_AA^q)a6lx>(k&a{r5qvz|Pb{fN@4nw-Iu$k!qXR(ku(tv$PQ -zIT3{AH~F9pO`QHIgf+jk>8maa>N%DFG+@~SJ|TH@lb<8mv)<2nzo;u6XKb#Ef4Z#3 -zzSE==BVkRAJlVobd+<~Tr-nFo9+7_L!Xz8oe)_(MZim3()XwCP7&ZM@t`3RdZQCcr -zde!{{n-Kq0oI763ArYq`!SV=lX`r%o4`Pa>Tsl2nEBr=T{`)O8i&S-^Z2{~YNS}c= -z$0SFLWc^wp{6X6Mo7M7MH{ChKU8>hckm-G9$)j!%t5QD}C)xI#1#?3GSOz=}fTrl1 -z3zIAeh;$o;?wbavTwYMzsIolZ3V`z;%Wki!9Wyc7lRt-9B@pZCjV9 -zyWBA>w6e0j6!9&JPAy -zz&is;Kemnz;Z%AwUZCHqj!IDd;`Ud)()`iyFt7d|SftOrka)IMa=9jv9 -z-b(Gc+MAsH-e0HV5-d%lCY!Gx=+295JRHvnOrW(`G09scpxfBlXe}Kyz$!Po@WhK)hHXu>IruuuP^texD#Irouh}um6_++5FrULn#wM%wKMK&VTMfux0FO;FR)KBm-po -zw@v#MDH(oZk?Osnj4g~A{DEJFb=0%zavKLZK`>5V5t&#w4!lknJ~90~41E7=Ko&W9 -zaybn~ZsWRU_fS4?4)3lPH5~%{r@X9L(9HIE8WyC-U~7h!DS@%w?_vwFbq4^?M7W0i -z`lYrJnxCghUu5Z!4_Gi=&ptCkiTk`>)qf`{8pHArEg^CNfTV*Vk0?clrD;4m)(q(U -zMG<$jUe)G;JK#9*7X4n{lpi;V$CUoX49-!J@o5GP4nAbJYHaZy3OZ5K9}(Eu8wm_J -z<>lB8cW+qEU%YQ|Hp(uwF1NOd+GN}Z``_UBvQc#5X_J{Iv{-D9 -zFQ4x?Qyv~8VE8XUi{)4qIhJL|^@WcP*cZlFfzQC1)0}vhy^^x(^eSsLR6HL^?I>_n -zw5X2Ct0Ys_n~JMk-rGaQ?H$+nZ|xX^hFYERHSpCNU;LhF#u#{#HE3G -zzUJz{x8~)0pJkq$C1{Vee6K9A`U&#o>)0^V4t)3YQl;Z-#aVKCm)rI8E0m_W0%r*G -zQQp7lzU71r-&V1~=Y~@19G_Z*A7K;G=3O -z!L7lOqEI&MD_#RoG+=b_zEos_UKr1LHKdYm$Xlxmr}f2b6|rDo@%RWjviM;s*o3wY -zZ#u(5d_IdKmox6W3qu6$Ekxm`f;rBy28LW%`&k!dCz&8So?R2rFlmvHEi^}$FyOp2 -z>xjrHGBIQzTE=e7+Cx%)Po^4nW+1Hz$#0;4qJwes5Pangt8mIY?nV4hDajJ#A%KK8 -zC5`yhk|jFdo^RHquWzN5c48<(Wz@R+Nioyv5TPz4(r*qI`T_)cV}cZIXO71p^=g3d -z^$Lt8oi>lXF-*r!(2WXTuN)yNm00u66*QG+Iyn^Il3Oep3xn2aHIWbD2oL3`PLmkW -zY})>F*l8-K(!BcCWF)TG(vf-fmGPmr48lGM{(ZNlTrb?>0A?a`w$zcenFN}&5c=+%1Q2t5v%JYKihhvQ>JU5=oVz!!{@b0IxL;+o?fu -zRD13l*jLjLJ7u_BD2Vt?PvXdL>(7*vn?R`=AkB}=oARr;kOk!D2puTOQu7dRo6P@! -z^WTHBo4@MLu2eOffrbSO#Tw6cQ{!Ee^Lt$}CQp{P1M1^D9aU)S?t&Kkxru- -zc2XZ*q471x2tl6U$0O9qYSnEOhdgJJ-j?SF-R44Vg{(Z=rn9arThq%)$_F2FeRI(* -z9rMu*UAuVq-M7rALSc3g?EbU2_$gm49brla`VhI<_R14Q>jTpV@NR}dg61KMjZ4Kn -zQ5G{v -zzZP*5^8j4)ACJ|c*d3FkeWvUjF^&KXxAw5c-UJik=NW5oxH(PhS{5KtsYGe^)4WJoP@{V)SigVWqW(` -zYIRHm5NP&4u8fH-tLj<^;Tn!jK-1jIMRQIRMr0m8q_8XD{OoUYXD2|(S`JQJ?=Ifl -zUqH&f@y7_OryQH$HU)Qu*hvQaV8l_-+1T}?YFntn&nK3}Qn=}IzpmGK|EslTC=*21 -zW;6DmcJy?D4F9rjKAt~iquiUk@C>aibxhGcNY{i-1Y+fA4e?xO)GgcP_H`=&J6&=K -z4{UwK4ZSteDY52qyaa!{uPCM2Dh`4F5igH9_A3RJW(njA$uXYzsvt{-Ux4%tQkc4P -z{Hq@a!^&gV{(88_T%`XXsM&$qN=+q6WB?$L!W6_$=1VN?%>~kQI=CQZES!TDjlYbXNO)UF& -z{D2HBhp|7Tpyfy4^YoxIPv6&;p5*;tYa(O@p_;5rMX;-#gsNW;__kMA{YBMAxu~|O0bv^DZzEMVlYPqnEJyOtXXt5~dp4nBdMi>U9YP~DACk4& -z1l1Q&4}+A$lm@XZ^&65+A&;ZP368zk4@H5g`w^Elln;}koc4~Nb+_d*lf&V$K^KdB -znKo&LmH(v{2MOL-Y<;$V*q|Q{Zj<3p0P-hj{f#x=Hphx$EoF8*@=&(%fv5NRD;h^0 -zC_U93x0>xc2nfqAw>s6IVaixjKsgVl00S~F)a -z9fi=d#qL=$Ok!Iv(crZiWIao^C{(wQ0Zr>EppljLO1Hn1lkCTfnb!F=_vu;3#apZL -zhhZ7>UE)59HbrJU<09u+E8g#od-8N@FfMEFNK@JNK?;5m)J|0PTb$=a!X*+^Q{E*O -zYooD^S1?X3;a7sK$T0NOL>T=yt!zg?`^cvAE#+VN2icGzl>^R<%d*>2Z8)1?zE43F8a&(E^HM -z7|jP)HlI{8_vPh9Eq?agLpNnd90+c_Y>c9$IX!=hlrawdTJYnkovuIQv>VH$k+#51 -zQFMG>dEO@vnz@%e09*gx5Nef56hW71JC55`2JI(981Y7djFklIGe<$hh4;(#;sRKd -z3mT}RgRd&k?@-Z0tDWuj9R}Cl(X=-Z0PnV8KjB=uH{59_y_E6t+Z18qnW=IvmdC~9 -zIfmww!6~PT8kCa89wGxih0#SR$VaMF-yLaQAC8vO%|r=?IBl4M-`LQ$HxCzkdTEB1 -z5Bm1I&|FN?xGDB6$PsPy+_-aQHxPmZWzqL2#=TgFi%Io}Lz{xPL^qmaf??qshc@;< -z?AYI%BA>QkigJG9o=h-%(XO#aESu|KJ4&Wp7!f&Ggdfg^34_05y!<7RFhmZ~Pc8kaSy2qad<5q1jEwrw%+8xlW)O@Z4Q6DyN`OH@ZNW0Kn$L0ex46%_R4!?b&)QX3U>(# -z(PKut--*Ht-|ioA#aTnSWO^i5BAdrmyZIl_U3Y{kMKXO*Vgb1t1OgQ&iXx5_moKE> -z7Lol|I|x=xz^XRv$FAs77b-_32vSF1*_%64C7*#dEiOWq!^G^mUQc^Zi=fEis2q$`-@Jd)0!vt)}b+8-U -zDp+y3Jd{p>wZer#v-q;o9?!ISF^sY@+9H!eUy#XfLCV{f@FVawgMGl~KfU$TZCZ{y -zTKpF*PM%rcM}SEghz{rTpKHhJGvEIrQnYY@`OAx&(5>Qcd>yuKT!9V<)L;&cO^okd -zE^7OPCqE>`jGM9XlU%z6)TMU(3qyDrpa%QmS^%5Gx@es8rEnUsonu -zid6w7aV}yYuxVEp2jXlwft1g+PJU$FzeHtzih*?f3|GTX;N|24t)L09Gv9(5Hd^xP -zOh!nLm*(qjo$h&t@si7-!rTUwk1Ukp;&bj(z55OlUloyFp>cnuugShKwE@RHH8{%k -z-QTTN`OHH3Iw6eW7L!l1E;)~}+bFl9QOmevQ@~YVEsEVQK=C%lIYnUOSUckOrH)cG -zY(4vD7&jJ&zzdwmK^7usAy<5W_{}s2@hNWvA4Ofo?3+>FHlcZn`VP-B>JM-&5_d_T -zxFSy%Ac5OeeCnlt$Ulpr-w*!=QB;e2=>6W{0xZYA%2{a7{IAP{wjL@%m*huavhS~n -z+~TTTqIh_ZOiGu*3e+ztmZENOhJ{ZjxM|r<4?%t3G+j8LhrdyoXLdBa$mz-(;3z0rO~{ -zi}xtia-18IX!m7w*x^LY# -zZ$L;}lqLrbaz`|KFDVLM(yN|%{GyWLcJ+0GTq^msj`_TL4PjgO;4C#8nkm`^1q -z|B6nvjk;0BRgSFTdlJuYJ^+U)FNDD=7A6DZecDG{3adzw14K>EK2J)y -z$KcwJfW%dgEM!gT3mr;+{tMH7RXbp@jlH%KC4q@!lAqBfVbs12YBu)Ladkh$JQ+f=NHT(VWv$z5&b49nXq34CxrT~YG1t_ -z>loF}qlVx~khYBXe(BPEIF>&yM_|G4?(;1^!1{VPYUkVGYZwtp^SqMK84VJA%3|15 -zb~cOr$(DIX-b$j(oKoQ$>gMLwj^5qs*l-YIX4j@JiI7M16}}8IV>#cPibNV~g4Ele -z!0X#QyNfw{m5B1QL+~u@mK{B6I~6h~{$4Jr3&Mt(g~a2_c=Jl{U}@lZlHiHdL;1Eh -z#9o_O-aI|Ocr*mh#_99(DM5^qDqV@-XeeDB#3-c<&*D2)YaskH72K(etP(_=mI -zs7oe72Wv{#YrYf1lS0a2Kziw!@Vox#1O}L1Df@mUh+&`30A7455Z@$H6b -z?0`lX(~+LCmU7jo`qzqz#d8oQfgrkct|7Ib&}8jT1$|ixz4%-Dr2NYLLa)S4P&EY$ -zxt?Rk=(AFxa+UYA;f2OrNn#~G7f@z{VGCRr-$2PsWAXjL|G|XHKJV0#RT7XlGP+H% -z$u3ojn7KyPUdRD2xfMlq2RKLH9w@4{QJ_ -z`HrUBBE3P~moplCC$l?bkW!NKULbcO2biYiLbXmD!hKv!aSHr{+$7fyi3EHJcR -zJH~%`;1)|R>+8Yay;22nv -ztBstAtBBdlPn_&2#F37lWaheoXMjAf?qv(Z^1BPers%~t>3G+#=N`6RP$)WZ&ix}^EKw> -z$U~~U^DLv4h-dw{@ciWkjEV^tGYM0NA-h!QyX7fVRVR=uKRKM2uzuBd2!Gm0mwep- -z0SHkvsOTFiD?VonCc7yOIs8N_yuE)lTMM>2wfm>R-Nlbm;YzgX5qk;(@p~sNJjIsZ -zeka`Po459{Tte_|unIp^y9leY$MB^R!<3^<4_h9+EYv?17c%=f#>gN{#~~iKy!Yz! -zt&aaZ=Gl34JWY_`QmO4V0ru}PU!?jWuT)3JzsdPl3VVEA8CrjWzig{DkO=IeldR^F -z%SBA7)j@aG;cvO70^Uzfsmtl~wlp{(5p$qY==xQVrYU*%^J(t}9v -z2%Sky^F+aBFA@i@-)|`zmDZ8pA!*(e=TmzIM%zOqkH8H@e5*Hj_2?_!2F}OUJZPMQ -zbY;V+do>5F8SYaKI5lia3d1mfx|caSw)hGW`hE*c>91bRQJbtrJBpM_n66D{z#1{S -zLK1}lDZ1pkQp{>>jYyP)Y7jtP@RJac=0sfv9jk3Z2^McDUTmrCPoFy})t|Qy -z1ak_jvD^+{AE~FfGcLQ>r06Q$D>%RN50AFKSxPXM+T+sJ?5E{m?MKk1 -z!S8eS3O^YrS;3Ewxus$gFEB_mD>4)jUV=Ze8;<4DLv<>-aL{9U0_Fg*)4kFE{fl5Q((9&{C_MzJau>CS -zaoWwg^Z>?B=|zl9yK_5EYex@y -z#pHg^daWN8hkcuj@Q3wPiT`_}ry_s9ZXrj**a$u%Rf=?^_@J`0naFkv5#ENKQJU>p -zUqr%V@*&Rq=MMj0!Cn24SBUG`w{BM30_aa<%vU)O{)%^-Mtu}fZ0IFi@T@6TG#R*N -znBowD)Skh&z}HnT7h$E}qZ2cBEFf%9B4*{>)`P)j87$p|!Ed5_zqMhR!2k&hU7Zh> -zTJG!)UBCop6?BSK6W}(~hrSCn8 -zxH)>b1drx=6rkyX2S#3=dk-p8xz_`Yu#n^ZZn~oNlVWszTs^3dy`MO8L=ZV_6`gjl -zLXakDx`aDCIlWNNuWFH&-BIB>Dq2xKxy{UCLQt~=*zq0w9qeCYn-?kV&dq@X&pT4< -z6dLy1qSlok(WT~h_BZaaOkE>_mB9NKF+TamCA4tj^J{&HD)VV>z;+Z{Ke#mS$b4`vWdUkIe4Lzmu -zm5qNb&SdI!&9Oy%?9%+ug8==wZyN@FKatCwR2WtkyqY7j`KF1)O<{dZ6^h)eb_8d85A^Ti^)f8rY%e&8i_i{(`uk})a9duzvi -z64!(7V||yg=i&Jj#rx?8Wfx){ESPkNa$nyN{r -z)Ga)cR -z(gec^V*GT(%o%LwED`>E@vL~W3x;9hX*GTQoKZ}Oyg9g&=)wf19c3lGi*PNvozO+k -zb9Y^@fIg?B!CUIZ<1drCG0-U<4MR-E8l*SFWa$5j*df^VL`wz|cx_p&rTR^V*Eb-*yl~PJNLhrv&JD=Wd0em&1@Zq?Iw_Ul=+5W}n -zERz1WQ`%>p3kGRbh_FU%A{b{Jj=O`AZ>%K{HIM>IOhbK_NfSou~FAc9+ -z2vrBXgyU}sDv}D5ULQ2plCT}0HxJ1>0QXPT^tm=rlL(O=?e%}IBQNM}RGVP|(4k{%8R2JU -z84psP;NQlfnJaFveeW|+s=Xga(JpboIfx-0_l9&3U6S`e2 -zmipmTI!V34&!YjqMp3H7I#h`B062T5GFAEKHVdmrX=1M|h~_ -zy3z+ttXO=;P>mncKfLMivJGCp*b&nE(IZ2hkhv}bZK5KE+nv0K+xf|~7t5kAe!F_> -zBf9%+XL-Q`gT+MZ@ag@!DL>CddSw^C1axQ+Z2rX~q;8Vz8~j}ziX>4F -zIAE$rMlrfJ#%?#A;r|EVektu;pQ?UyR40uJM;j39pHVN}r&#o;>FUkVm#-UH2&;k1 -zE*GK(m$}WG+y3rRhdo+T*&|TBTX#gk -zn6c_fE1PV+e6QLbV%x@RjYT$se{a;{4N;@FcR7gFE{~I@#9z{R|B*yUWDo$_{zFIN -zPrYv@8)<5hTGpL85kPyQG^8PHm@xLcPAsE1JKjJ@_>qfDsywHyS$-%)tZBqAWI=jg -z&X9B@c&!VR&Alo5dvc>Mn@N;J{ko9}e>lUmu4u(@`-nKjQq>QJoG|j=UpdO{{VA263WE7Ya{xVSO)C0`P%W{g-ip$F5z@+zd_3~E0>N>=QWt}$M%U{5us<0Ef@lB}AyU~mEpXR~+R -z54W~lNNpSG{psqI`Z`0Aj=jB9@IGNieQ}OkdGNdxXWO -zHF>xH5I!E3^vqLGpIu7A?_pRMFR=o|)Oj1)x(#GxYx%My*2WF|}sVFiR58L;-s3dh$1E%+29LiR0wZBMO%9E(7Z?VzWD*e5m*@ -z$A>iX#k&zM%+0NG^x7Lm7>*sWsiT>}-@%4yXS#$%w;!JXUZTXOi0YoDKWBJzY20TD -zHW?cn(P+PK}PlF!g~mB0V&_`UW)uQpzs -zf3|^nVZ95PFRR_mR(Vu(Li6b4pOpP%ivT$7rO~i-VE&(35+HINb -zqUPfRLLZmIE}?+pI0Z3L6Y~old!&|DJI-K7g%txbRl8NvbiQydfJr%Ue6bN{2wP(> -z1crvc>+T6W?vq3s(dShJtZp}06tw<}iM{9#va&&|H{SYk`MBW+Ivg}JHSKX2eC~E= -z^Im1Kh3pR0`263rNG{O=sB!USoZLFdMY8b1H)UXjy+cejnKNf2i~gV(KSwh*U9CW*ymTyXxXPWw`bJ29EMCyaeyO6 -zm;WQq?-0fc{L}r*R1c{pBvV+2pra9Fc}^B9wJgxBfmZ3%8=m!eq+EvDb>W -za#%a1X4qe)b8Jb52XYyq%J03K=88a~*J?b^isU7VM6JWmKf)|9<@BvapRLYa=ONp3 -zUX$=fI^_?t+|4cyp2ooO&D}UzYB%I9{x1ji^aM1XX`!c7(o8WQ6 -z3y)f<(3`A_sL&yCt*TLb_3T+sT^|{lO#!5rz}}KXEcS_t_RYe#!fj_nq7ZC*W1nst -zq2LegAXF@)qiBe+6TEMkL=VCXQ#;|;#fDC -z96U&GLc0^NN&1{nXe^HS3PC7nwlGLcf<|q8sg!QDd4ywrIsSG}(P~OhP$(g%3S&h)t^3*()z_1(h&*tj(ZSNBe1$_Re -zUm+P=;8rx`K{+U~c}!nes1UurCPd*lk@LPSH)BZkWx;&4fjy)%EPCc{Lwowny5cOh -zB%A!+N8~YXz09?@^x2C&&fVA>P0uY)k`1Mmldyc2g_flpF6;zV&y<6K0ZBNnebNJb -z*gG30+mmeu&6G_x`0O{0OHu$F&X8D7gj=o_?7=ID#4-&9eINS4d)H9 -zy&hognxcm?l78f05$y7$=X*8p`fSE62`H`Z14PhQdDuc7|LRL8HplD5pqS61e|o;u -zeS$z7vS+rE856kN9TuKD^Um1}hU5O%??~R^ -z25L?w^Nzm|BDTUKbpVOqQS*rY&^;{N7G?L2l$RBdXhC)vem?q7XPImLL6KoVNjL1Y -zje;PRu6ndwV1wn-knSRgLdJcgSBraNkVx@Vt#z_LDe(B&Dv)r000lGYufa!L7xHlN -z`4C89w#4dsO5*DF*~aybPzb{+eISl{%YCJyxdq520*cX*`P&Tap_1VAD<@N_3?pR) -zAc+n#h-wiOINfRVTq_#!Mt|1Jrgbo2T(4egT*(3|3G~J>Kd_Jkj>>YY`O$@@=@ZNn -zL!4ieQM{Q|r0~k?)qD7EUJ+uw#||=(!|LY|HnB<4{evPxDO2E}qpTLu8x-3c;w%)> -zq$40h1o`DFhW9iyoW=>=Qm-YnZemeof@A}zK3%)xu0{;TPc&3iK%EBsWemEazar+v -zmx)*;OPysK*k6^n*Y#X&je|h}SZcqcPm)7*t)aZF^XDTCqtK=TNrO4Fl?ZlO+UH-I -zA{+hY_?&o!{xR`eh` -zz&WDl?{V!7apyCWwS138Mqgu_drOWBHyw11%@82@#m9!B8hE#Z*X)c?h`~12jPiJV -zUEgB?S>@*il6xW22l|ZCKX%&z_xYE46CsAr}G=Z|V!{6r1%VU1`aPiH8YksK3}=QVcf< -zuj%l9VO|S&{Q!dL%}rD68;_?eu%!-xYt3ki*iL#W-;1W?qUeI -zss189P~&;8H6U~Q&ANBN`P%0{arCG^~4<(S?0$dk;f1 -zdoC&!qOe(xffVJPk^9SeLD7N4T2KaJrvy9_W39F7a|>{NpR2fsM&usO39}z5v;QLT -z6Kr)}pHh&C+Icvv6~Op43EPoX@@C?$zAf`hRFMmOp17G!Tff(ynE`y82zul*5nHXIFh$yf{$1o56^@ES_Rj -zxXz(?7;p@vs`npatluWvsoi|TqW;A$li(zzvyuv?gQNg+S|MJIX1!Hn;@5_;ZZXk9mT*$cROq_lrkVXKVm1;Hsb+MMlz -z`TgHgvX7x*Ud~DUCiOTo%NQB96fPsi6a|(2+5N^zG43NJ7w#xTMOZ=G32yJpvY%ml -zhnwcUWayPn5Fx07Vqr`dhZQqj;@+dd-e{}eOuR|o!SWLy^~M}qJ|?{GbpVE@5)N`_ -zO)$c@tTtL~DumpQn!MzxOrPi3eIt?Z?|6g-<-OvzleEydkb@;nagY&RY>jdWj`s=iRA(k!po@Hnr+M&;&oG} -z*;f8y=$)*w7sC94QIiE<=Og9HPhN;id##b%k0PR6MWq+YCfGhEEVCFg3G2>mFT~c| -zqUaP@VOXcQd|qN>;;B`YcUKF&hWLOqs`J@ae(6&X)%Z|lynV#UL6t-J*n{rOR}8;o -zBhqs^JBRf8T%__UF)!meP#w9(PG~qZZ7|x=9JHIRGkEx{YxT5Qz`oVyo<4LG0Q%E*42(Z@zGBw%?k8Zmv{U7>%>eT -z=nAd+(I*FaJCd6_tGu-f|L75N7P}u&3=*1K>0$Ivaw69s?gPG_0JMN(0yhwe$We=RqW6L1E@`}!ap;r>1~_%k8p<^E^#A -z$)ectoO%4C$YAoI3vGJKiQI{FV9>|a(7%e4v}=0$S)|4-HFeE#`tDVqQ-21I|0@~`(z!b7y*;iwj8jYIns -zMiuX#i-R=I9mLpIq9Jtci3GRkXG-Z$)Fv^B9=yOUasPZ$gDXvj3 -z4JK0mvO-xijIaT{fD2+YoPrITPTq7Z`#r1%A~;@?{6C)5m(T5LhhE$}+2{sgn_&({ -z6&gbmTJ43@l;RrrC0r@)h$1)ni@_|yRERAH_z__tyZi|J*PW$Q(tZ>SDrW;%`RwFK^seZ}@D)~NevciwM>^b)1JVp4(T -zH2b_I5$@})N39$G#8LSt36(JHX7mtaGzE9U_U|-_q_q-$x2zu|%KsNFualliJo``K -zyYeQe90Goo0XU_go5KJcs*^|OwMO)p!_~8%o%v;P&v}OJ4%7)D#uPv>ZIENj2|6FP{cX8LRz&PMpAeiQRdP)d$oU=W}!>s -zAi&oI1N*_pBYq4nlz*}K;jy6^- -zdlVO`41uF4)EgtlB#{k`9g?{IE%w*_e9HKib+1y6vwx?RQtz&JiNT5b4-&)xDB=k3Jya=k@9))J_CeLQ02p -zY~{%IlA&>rjnXxO;^XSs)iZEeIElNHu4Fb-9HnpeO)B8r+6!5Mk-jZkV=w_70i{Q3 -zQ``$?2pX;1brS0rYDc&381gv*K4rykx-nsYF-Q|A-^oTRD9V!l5|uRkul4E`J$Av0 -zmU-Eb@JTuPDZtGE3&`{sa$8$<&$+fD)R_AQCq^YQ9HjMtcm3tL0{g=w^^-k$K(8<# -zB0v+ZjVkr$QpjemSrTkct5pxF;QBK;=SM8?9b$4x==t9ajW4|x`9qpLvmsFlqwSGy -zC^h@ZHZ5ngvUU{oZhtDZ16UNDubx)9)gy?+#`NrBr<>k!kS~7$gF<7tLLfPVe;@YU -zF!Xh5nv%bR6?0`-pz+-P+5+p#_0{vgv}JO7^EXc-p!G&TR@kV$^*X8y&l$}&;D(7_ -zaL_dM{TwDBPtcIX)Kh<4l6&iSBhA|FRjTq@;~Kmoh2T31C1{Vm>E)}s4~$v)C~pRk -z^qugrgY@I7lN(IzIfB&`YD0y#7gJVmK61TUo8?OUMrLT!Z1nX51Gs0;5Pfpl);1VEfvWvO6ui{b)DQ3qBg+GMp;q&td -z?vB8IHYJLOwR#pfmPILUYt_A?z!I@_v1^h&sEc2M!fM*K+oYL0K(B=PY4?N`o8_)$ -zIGyLI4jAfmg-~1*5V*N-%?9gqSyV}>7yiFcJVWTQP~sk*BWv;*^j*<!|_i8WgUO5zY?dJ0X`IrATryi -zU*O7sB5qKEhy_@F8tJr4W6~+7Icq+=OdV&$F6n^AvJ;ZJO5%y9i`F%p$otWnCM~DL -zhm({NLHalA!{M~@%j5&YQx2FAaq|R6Xk_R#@E>iI4!y%ncvGdChWWa>TKBC<48ku(o@kz$^ -z$ya68S>{hGVt+|K6J0xT8_hC5vO8ZsU9RJj;EI+wH$%+TE3(2NUsdv?^4CsGSkr?V -zC=aix9y!g!u$HLh<>euOssc=hw;4$pj1V8XEv?v^U;laH!*3ZMG2&A*5kVf`(-iek -z8t0F4>HJp#? -zIfrvZu#RWBr;bD7uZR3#;o-d8c4C23m30pw6<@XXh(PliLelLCyAB+HI9Uiknt{Cx -zic(ozAAb9RB|hE@8sVq)eWA?AZ*Q%F<9`o;oM8^6y`APj8Xg -z)D;O5xHd_io1SIfau(%|;kcc;<@J1-Y=u6tXaO#5e-zyQZ;+qUCx=IRXES`C#A*;W -z9+jcNHN==dE;HD2s9%OcZhB1hK(iJ&;&}19bUV^vOPEul|2n1xYs-K{X5f+`a%FY) -z*H3-106~5`9DIhotk7k`DaAwbxQ|08SLqBVS7ux6BlqMciJk9$|4H$V$L*X|S5Q%8 -zb4{@6`n-eF@DHHlG7z5SG`0oxw255aC3v+EdrHBF$w^WP;JEt>aJfQ>aEvf97M$S8 -zk2tEwZZ@L`;~D8quH5i}*HC+C!_RH`B2}p4x;>3nz+%SMVU6A45Hcuew^k0bf_0H- -zQm{3PVkU41&*IYbW_m@c>+blyu;vP014Bz-gyl*Od3j#2@E3sUwdz2Tk3bKFGSVm{ -z{V!dXl1+suFrDMC-4isMxa4q8p1AE-_!!Io)mL2+NXiD>?mwB$H^?gQX&hH$dzR6% -z9{rz;?_ZAHzE!g~zDP13U?#8C*RUTwqBU<;u$Hn=!c2cYvkzq8>5T25X(!Zpv(JWz>mTX*sepM?)ltmaWfH?2Gv7tfGnJN3>-Yp1ncV+u^5y+Yb -zBT!;l+^r4VnI;45D<`rTPXZWDFh}61ULSmMrzY6QGG$p=xrGxr2|OH*@C@s_`Ko+L -z@^(lbC*8V}N5ec$L}1S^w+!X!8;sh;JmxwL*sKAA7RNKr2!Wv)UIQa2*M?~tkLy+~ -zn_+ExpD_cr9Af9o;2BCu(vY(=ds9wQoQCBJC@B91Imj2s)8OTANA8PGx~~Z*$D|#S -zW={IMLbp&_X~oY^kIh=`z}w+qOu9{IZQ -zyoInAM0TBZow7-Rhp3I$eSJLMj1ijopJlIC$JU;ZBn96-fm9vCvl;i+0<~FVg -zKb6nD8_VVJm72(E6QaY|9SRv&&vO-MJvHQsF>BOB71SS0&K_kH}mSJ@gE}bppU9*mEX9(rVaKvKg|Gj`v$qQ -zE}MF7`09ZD9V1hN3;?^{Twy}%Zv#f1l2XGcmlgFk>(SczB&0hW5ns6!f}lAgxCqS{ -zAjXWCJ67PIEXb|(jcc8Oy-}Yoh#5Sz*ZzI(dW^x@yPWLeZ(YRx$%QENZizV`SkTN2 -zGA*RzxEmQw@G>cp>q0il1Ys_b -zROPkT>-nS0{QVr5W^aVNzxZ*Qr_yu$@d;q3rsde`&$$8947xR>j0u1qk-!1mLLgEW -z&zy9M6kk>s`PL#}B7pVRC?|Qr-{;4sd)krArz-JXu+-_!FzOUGZh&}DT8E{;7B##} -z{g-FM;n&PBwc*l7niMt%hu9Pm?ruA>Vb6lbu=jqkwjxOSe -z%eKGHhdR|lVRHAFCzIa}NOic4*PeG@q51bH*fUQ8ldJFS%D1jbB&wk9bvVLGv}8CJ -z_ir|S>HKucpM;_6)sq}&f1W@@HnX_aWaQoq4!qw=ol*Afior39R0#q(7W7)4`+MooS6%oq``8O>2vFg -z+A`YT57(1fu=!Zzui>LHD8xB^FiITULJ=(d(F2x1lC6e6%lgmYn)fOszD$W2%;#u9 -zQlO4@C`1X|dw$QT;s6sCLbYk>%%qBPkIclX|JIMI9?2bDVXi^;ND{y7g3vF1jOET1 -zmn2*Ea`W~Twi44V(^dpbuaM*4q0*B@FtvRU%qrHfwsJTc!!o#%AzbZ9x<>||D7=P? -z>jUw?1+!rr*-1jL7;tDC*3cOJ!xW$H6j2 -z>8esJ$D>C)D3o6MdZx#JUBli%%}FH(sB{o(6)}(+rwTiQ@$R$vd40ri+!PxQB676- -zS3f>Gw)(V*n0&j^Z(Iky6O0hRCdHVBEwDH$nF7Jg0f`;ZnBbr~hBr_Kb`K3-C(CV( -zKJ9KN^V<^x5$Q6@oZ`C#KE|_MsXYdKzbJ-jdUo3Q(vBI~i{IM;~eN -zqm65^`GF&&gnA#&)Th<1r|B$Tkn6yZA?mkI{lYL|IxXC|V75GxrsGNRAC`{E-$;Oq -z?Ko=EHuOA*#4Px^!uqVychLv_6|)^c2GrrT!hEoxOcxAZ2$m@#{uQ+_heD8^zw+vq -z%4_2H*`lGWN;;T^3hAwQPC(8cV9gXdwy#U5+`gRirAp8D7t~7Gl9=OZbu0I~$v$!g -zqC$cZ4BEBB+Ya8k?|_Is`<10YS5m0rH{*JA!qV47-j>9ntw=I1z=MF8dxqK1@&ZRE -zA-qi*<>j_cXa{IYGSWnIJ0g-oG5%0Lp|-OE<^==p*qpXmE6|DX#l5XYY)pG}a(j14 -ztJT|?&bcIWS5%M-0H)ndlJI5Y+(+tsO?O9};otPbP!j*z{4r}p7|o(e4)-iSTa_mh -zgF1ndL;O##k^jXy%WWNZGbkWhQz_m!_gNobxdXkWNF+NaW;Uj$l#Bac!q50-Ba|4H*J39+WPoFurF@=@VX -z6J$}7NfS0vc##D=H&bjCBE8q3)pl&PT(n%g36MJ^lMM>30RLsRky?~lvnQORb(#v8 -zEiC(aOM9-;LzF16KJ#5OMZ2QAkH38yKF?Ieda={uU?ZB54|U?=6_yW5RLf_A*zlL` -zA@HZ)I~?3?k|9B*VV`SO4-}Y-Yd#$EoihAr7Ob$APW%oX`O0)T -zLN2D3_h{eQKIF9C$KB5~z?d**L+6XwWNbiD12p2Bi`?f^C{-f1z-{KabS`G=dhkI8 -z%p`qQgdWO~``XT5L|bUeZOIfZrnmZNTP5!90?tT>%^&o0nkyBw$hdj>{y(N;(TKnz -zDQWRE6@juMJ0Bt#@BYX7Y#gvC0mr*mAf^PTHZ!nH%5Uh7qLoA#L^OZZcZZF7Dob6W -z5r1ub_>T0v(2TUX0k`z6`4Q(v^<8st&es-ozKH$DdT32aF7jv_92d(5vaJe|Ha4ZK -z4aj<1;T(kH637n)F!)YM<@dDq8PQ)+L$TM(uE68FCv(P9$7I`9Tc<<$`fax83e_zz -z%XOp|)3NrkT~&l@c{Hg~PPKWWy`YaoI<5mZBRwD`lZVLkA8OPgum%7rJ^FH_AngVF -z2*O3~V-Xb)N|k-X`tL?WX80W8mrn{P_h>F#3}!-N_)HX7GB+<%BfnK1d1Vatgx%tR -zvWeK63$fTA2LStx+Qj6%q5`l#_ro2yb&;KG=w -zFRoj}S3aQ;h;RTbG}hbc5_BI(L4MtYd(dGWBvo-AvIYZF>fbHouW_ByezWaIl3V(eo{KYkdI${wyS+zoB{|7U9{Kl#G8`JI{&84QrL%9*;mv4K$YP -z@kbw%K0fxG)I!5Ph%s|B`;LQ*IBEzXVSCuU5n}Gl=04t28CF_~W7Y^NW>x!~&{`IN -zHK-|!eHKXX<%`0YwyjIhHJLA8d`83vg?NF_ztLJjleCGapR$v9T5Fd02A{uTz4M|v -zD*^T-;Xw{o-;17jJ>Jgz(Ga&NWu9jJ)CY(?DeZO7*lVQoScIeMbKQJ&@^LfOw|l^k -z0?u00t^lU0hCehX6~M(_n0n(MzIo7qK=b&!;Fr(KHb=>>OPB&jwH7Ko4laP<0V`C! -zc6Yt}Q8wrwutlqWJyGF_bH{~8e>u<(oVRtuZiR!%(iWCHVSybh>c4+0Rbi->x2hOgk -zgm6!QFb1IRXP94YO^;Tuq?T=_p@kO05hyRdLgqQNXp`LI_`FV*7f(zc4kDk!Od|kp -zOEA>$Q1Zjcy7~!8!5ICEY1nXnc@a|dbUNGrAv922JGVJ!=(4F)dL;<4P|;95aQX@a -z#KDGsW_FMm&M}`tPtjM9`QQdE7iKTCMPmG!X@*{}Up0z<$&|3?+sNL>2W8iLrdrGN -zK-fB|0L^$XKaFVjt1{u^iSLIUIat(4DmT5-Nm!{v{w)CW5QblB&H!aDdF*V}_f{ip -zyNL&G@dELS5fZXZAPJf?=}g-zM>k;FyAX0=eIZ2qf(MW|yWghs^X7oh0B0ow -zuO#yQ3d<*!g5+)V-{Zhi0z08Lq%#Tr1%~jiyjzIwfP8=Kk*)>kYT!5v_A*j;rpWoq -zp+T~RKL05?2>y}lOZ|QNX|QmHZ|;5fpC}iVE|l3&jUs6Z93T3g@YG`ICVWF-Cv^H7 -zwBV;xgmGHySugfs3{P9o$gqzu{#W(2+-|tgVthLwx7y*AE8O)Yf!VDz*3NRztC@aUj}0IkYb{;0EA( -z8r;+GZL#Seb6-#^(?3|fnBkD;PVL6heK;|m>lnNM_+>!m#|nRsbVfPy%l}|&`NYqO -z*vA$82z$%0VUZ9K_1etB7mo}`)&_R&ifm8pBeIdfO$dF0$6HhJCIXk-18zM**oG9t -zztB#OKINW%sGC~d9&6_?OTG3P^c`j*Mh1;dUcx@sNwPtc`K&j1q9~bVGUj`iZ6wkG -z_XRYJVA=2L)7!b=w0ldtL-AyoGVFrSY5a2-9$cDvhVx75^1IEEH*kcz;A6q7qVjH^1X|#3El=Gx0=O -zJ;!odU7#NSDS+jVh-uMT9@}%>2kZW9Cq#H7g6;;btvd)$VSXfRS!jIgpBJ~oI?{Y9 -zn`I6ohbZ3D(CzMGCPJ6A$|Y%i4Y$5?QbJf~eJPU0$G-Iw$SgO&q{&y)`!ga9FN@M%@> -zTbTIN&k!_Og=EAk46HMJj_7UR!zTuo``L7uVCxVC#Vfxk<4(Z-paP>NYuqI180E2 -zMEOSL_>K22*X01o!msSlSq#iZMI~f^l3Xc;-zJwB*~E5aAU!tZYi*zFAQv{|HQ|q| -zy=RGAPR$aYcFaZQU>G{1 -zT$Q!XOg7<5vS`2DBI$5_5qGMEa`h4ElN&Bp-tX^pdQ6Ppo!lWoCHzwAHFO$yKbVHL -z+9WnlJEAY3K8Oh97ZaG{o1*p$nR2>u5cxEwbCyHOy&5|WCvO&^qp0WYUoPE2urn|~J>qWw -z6#(RkF>##+y(wIS1QC{TBok4ORSKBH*AJgofr3|NgRHoSO3w{NC;_C4kI6{#W~rBB -zMZ!Bg6R3X==u+-HR(;7L@4{yXNXw_~j|We9k=y&6d;43r%ozsn$DP$WC{_))+VabW -zYG%TH?=Q|?`8fhY51=}^@p-a8cdj$ZBeSq1MW>g9QTN5k(aW6kyu#=0?4JMl6qiM#J$aD0Z?w#Q9 -zHIMVT5K!CaEi2-A_{?g^IuT~XYc?6@XQsE3XE1wC#Ko3Adu{&Y`yr~wP7dfMWrYX1 -zLjjN9`{$F5B{oIIDD`2JGVb*1;|`RM?1ZPFbyBAVIQ5kf2<~XS+S>dey`YUA<=qpn -zNvz0v^J1r@+x?{gd!!9GdV{AJY5DfupbH$hBdBy)(bNex$gzjSF*R=^RelGnOq8m~ -zmB#td!IkZo)|n@aSnfl8dVpfSn>+WPw+R<%M$Ud`b3vAwMTm;|=YI(lp20zUz~5LtV{2>>Yd);w;o~SvBfUlTmi-D02H_L$LN@GpQ0eH -z&!pr-Huy2o@gvM?tkE(hc@jWo#zZ5&h= -zzs~f!Bu!zbMtXS7(}Xoafb)!=o7c3b$DHHTUwx>xO>f~TY#Aw{Q2pP+y1=)~^u_m? -z7(S5@Tc)S`6LBQ%=QA&0!!U&SN^rR`yn@u?{UxV2UPl(pOl%gD36t~}5q9yxZ-~zp -zK$D489=L=_ixofmHFI}K`xp3;xL^k}J|yy^cDiPd`rJtH*PWg=^SCUiFWnAr-<@YP -zpU)vsSv-eQud`Is(y2|u -zxn3pa3=tZy*k8fP;KM9vl;z{#?l@Bsa#Jvl@&kW38t|ZL!D^JxV6epciuep$ii{8!Oy~bqTqN -zkm+5e?NsogaKhm*#a?R|7c0z&wTOxI!2Ppf@Tj`SuvRDV=KcoAiv~;ykyFu~Y$HyI -z(u!b|g_&CXu_#Kko607qUE=_eOC&p880ADQNY&&t_WX5X=Jjh_e5-7cEDs@+xZ2RXQ -z-=}Gcg$FOL<~b#UsJb(w*X$z%9i(RA%X`b;OH!d^7y=?GCx1G#dn@%go2%r}ikZ>L2jzq(6ddBI8P7x?VMc}eu -zF^5ZxJjP61b$3anQ%6iBm1bT$s#KVWBXCpwPw -zRxU_pjN;F|y!LPX-H1q|K+)FdF<<4&HSKa17y=CdH;I!x^Wbec7F_FHdO6;k)j-(^}zST_A#MWfLBFB?i>ihe_fEhZDyf;8TZomzV^x}Q{YP> -zjC1XL73_OgdA_jEk*Fnzs|Au`2vc8|?5lxud5o|pHu;uA -zIM_pGZoN*|KVD2GbS1**#l(MK_guQ`GG!DOD~Jn=9Yv5D4*w;eQU_b{dPR%gRZZFr -z$#)*uoE6sh$2Dc@Zn!NCz6OvVkOrEwHQSBttCDla{JX3CBUk1v!6Ps#y|=x1;}q`L -z;rLh%QjJ#Ofx@!9LF4vUIFUuc4>m5?cyES{m=lfuX%(uXS(rE#)V)Qs8gDeTIF6}4 -zyHxXbUkT9TzO%D70mYRMt0^{(1*9^mhFwAua335pM(i!=?_wn9<0kXEV`z^o`S-RK -z&4uNYO8PPLOehPeQ+QY-UkBA@%ewFv{aJHcnH-z+#bKCf!5=3ba72n|d?({M3vzq= -zCz;2q#Gb#}qw%_bNVvKMz|r&E1+eaDSk>O%;rdOJ1{mFklAuE^`O=ET^-ICNY0>6$ -zs%t6+z3%lMMZHjxOJTH|ItIeJO2bFc`BwRnneB=num=-(3>`Gu7m~ -zS9nu}=ktJJZtXzsb+tD@=YfmqRW6rY|05F!&RR$M?ZuWFXv_Vog~Dt+;9xN=JNezvix_f)V1OJ=HRfaG}wZ9FsusYNyaJCidbq*`kiBxGgvOU_;J)*bZ(l%Rx -z=5zz6k2ycSs5*Qoq3;BnK^H$^kR-B}V%(Hh-Xt^>%!`}i$AMY}yuf^EjO)*4)zkqoY=zH -zv#kVY0I={lV9Mx5Z7MF)d0bm&^;Njyg^hPqg7*;^<4F}5UM*#nmC60+5q2D2g6wfV -z?}c8i*VuF7P}vD6i;qei>y@0MJX(4}C|CmCw2>`h=>LY9OXS%KY$cvcr#%U9OyLn( -zG9&-o_OV}Ea6z3!4AvSZly?|AB~GKlpbeSp;b_N8*n0c -z_reGsFgBe3dfv>M^1zsCB_)^PY#+94CRuEQEvs!d6{&y$28vWmRC?>X$^V{dj!bA+ -z2V2mTtnGd$K-B>WJ%qUT*=VhiHnF8|X7BK2e!Z>$N>e -z@SJ3lA7kn`At6+DcE`5h^%IT#aV*G(x^q5@^*>mJ{7aS8ppQq684kEDcEaDG;mwH6 -zEjG)sc$vkkivPkbJdwoYKP2+0x|(44-9|s0i3mQ$3BTZf$FV(<)0z1^S++*m8zuEP -z!IbG6wODW3;@WFL*q&DgTEsJX%f(g;$Dv=k>?Y^BXp}ZZI>d!~-NQK5710}7ox*YH -z1d9lnOliiituJ^ppDmFE)N(*(~(^#`+b6vZS)6s?V}1l+|8J(P6NqBS$dlxD9e(^2-Nod}ueRP|gOk6at0K-$2%b88W^p<@76eQQ -zxE$|O)vLd8r*0k`k3=cG8=t0HQC@m28sCC&;=u#hCV)k@1Jq`TczwK+tWQ5b6&N2L -zy3ji)k@xl~BH*eEk0DjsLi?7P-@j^Y$*WKZziBd>6vkS0I=*~N`ZdAvpz_4$yQ(8r -zy!xYfybHo~?7q>KT}&viKz*FS;|5akfgcxS%OczY%; -zq18ZAe&87ZRwbrxG9}m*D)jukhQzsP^i%AwGWDO=m;VoHMPUbjDivA%_`4M%1xAB> -z#3-U19GGqHfT>=);E|t7--(0V!9`(AJtX}KoZ6$S=9ab9B*1KeP!kIrnFAHZ;XeC~ -z&WdNaGOpnF(Yli9S(fRqVB|Isy&-#Jli;%3spGJ4GwO{a+ai(db0I$+E4fAsg>`i@ -zw_U)C!6d%GO?!I7`08LN-?|>BG+!Xn3ruYex@J0(n*}#P=K}zt@G=)gB>NU63J1TE -zjRKjbO{HdPF&)sNC)DQ$ki(1ZteH!Ip8(5uPd6aD0;ljJ!U})AX*WBw( -z2=<*6H5zP -zI9B{g<|Y$YD@dPzQ+X3@SnQIC^85&HMYH%R_k#>Q?n{3L^N$F>NGg@c)09^`ew-c& -z#L=cC0xLYLloLqMLkYMF_3g3Xx&4SHuN|Rsj1QM!^p&)OH)o{tNPrrs#~>}*!IY`> -z>21^K_p-YT12n2Jtc+i`jPtLH*{n}VkpvVuh&K|0r3!fD -zAx~^GZ$iQ -zSiC#S@>KeVe$MrkP^a_n+0BoQVQPD3I3O3;>zY+`!io)rW?URP -zKPk|Cp2h?s*(`q=g|)EaetPUe`){hdI!Rq`Cz|#wytLU39lr}wzljD;2M{<`HaxMp -z&V<0-gl%8${yb)wea7iK19&w1$A3~s_Xa$9FNB0x^5BKBMiGLLWV^wyDut{uaxLPG -ztb)Zc_npM$3^tj7QcumwJhoHZhf%pHVWd2DS0Rp|uc2&tJ_&hjjp=xvER@Zyfc^14 -zmEg@_2DM=JGHc@dAk90!Sw5@ExA#`CQvfJ@L#AR15*C95?F$jC*XL{Yrq9!3<0|=J -z)rW!PG)b9!wLqlVpG`Ra;g0G(GCrTa_|4eJD0#jE5^=T5M`QaJl)ikDIUYN7%n1c- -zi!S(M6G`#moaf~8it70nEMs^xU$$oF0r%pu2c9CpqANh-oqSuO0C8z8+2Nc$2L4~8jX8rCjOrEns4IOr5kqt)(vvTE -z7$*;@bEmBU94;>Mp3*-np)tFX+bpuOM{hVEv3t=5c)aJKp%(R>$OG -zN|YZx{O>_ac1wHS@+)G@K6v!vR?|!CDUy0gKiQN3&ab4=*>u-LeUsstMRqe37}X?c{QrfbsSz@q}G=31^`^PpMpe)|JW?c$Ax#OY8g -zPo8%L(tX`XGk*K;#E)6vL+PZSc%$2a_-C&^t!f=$?qoP5JKh|Sk})?RqwxOK{xZxo -z%yR<(-QNdpd$T{e%PgX3Qqlatyroqc1!)fZPMT{`4btd&zJ>fyKHfdVS>%&&6dh~W -zrDNVAEA7(ba0MSSyhp|t$&f)j`YvQcR+A0gq3yJvk^H>AlgmHfd>L1LsaJzYcK-wE -zJzyS-gOhE%orSzFz>5;ZSg#Wch+OvYNYR0pw8vj7oCOckL)Nu(kT71H88SK*taReM -z46MY6=fK($l28Pkj8f+ -zc=Sf)n6;McWQ$#F%Xvv}W?ic#t@SP79o5RE6cK$^catgKPpx#ik84QiDfKTNVSCwd -zARUoqfh5Nn^9Cl<%mRKh81g?vz5u`$;)zwQE2&EbF -zpbyIrhCkUs2xHVbUkItKm!ZsbEYSAd16zsX>PKeJ_+pdb-jf^dO8ZM`Ji(0AkXGex -z)O;h$)(T1s&hc84bwukn63UL2C&cgbA1dFaRJ?-85?xGz*An%4?fY9TxgMo|HdJE2 -z{X9hh0Sq_b^jlfvfF->m(Yhk#2suaPDZ+-vouwxB4ftj2jhK21ufims=-myl0s~#W -zw#OOL@YLZDCv8O*^;uY66-Kh?UfrowC$)`4B1=s8;SjzDD(s_;d1~8k%eT`0^ThUh -zjZqPOrbg9R2{(^6XFX(0sxTf?*imDP4EVc1KYNTAE%x3Zxcf>%AI_K2|gvkvO`$c*r*$I0{7O+a2!{K@lb -zABsNUroacbz)@(Pk=!gZNjquVa^qlQwBd~UQwNR8N@^^Wo(JTgCff(GzoME)_U&P5 -zgO1!E-Cx^zpw#cGUvYU4?@W-ko^bL>X&c1_+Kz -zE-;)EEb}5GKKIQ}T57<&t0Lr8+br*28S_*0D%|wChf(3r -zytu}=#fi{nJ6@eakODo5DPNH|FDHz%8QDM^6ayl<8Bp{^M&J}o9n^c#0_DC|ADLNx -zgiR>(?jYoa^EwoTWP^hnS1s&cLfwC-Dz3IN?@Rt#RHE3sZM6flBiz!DN{Se0XIM9+ -zI@9d>A3i{hY2PJ3A&t+?wYza62pg=)?L`C;EE3P?D$_9Lwp0>Bc9pYhs+@2c&l)yu -zU}wTUqnmW9EswhYa!ThiQ?NtnJkgut^h6IXXE6A&Wgluot@<4)%rfWS=2Gt$6~BJY -z!!A>Rzf$nwG|=%Q%z1=+##7Zlc5XZ5C33X-GFhFvOV8N;8vm`< -z=Q3yWKMi-E@idd&8f8k&8FYz -z_UtO`pRAW4g%piG)Kdm7U4tCg*3GgSk9I`WKXDluTM6qw?yS(vZXhGJMh2M|Rjg+1 -zSbrs0O&t*j6?sUBx~@1;MfBFl2!2#B -zYaF#vhRuJ$vGG>sV0@-6orGCF!aIy}pKziDJe9N3%pL={&XM3%|B-V-m}1AJ^owQp -zO0p2*x3;nn?yTBW&JQ`{AkoR0#s3@ecx3Sb+bbUu+3sCQ -zxE}~)3v6HEPDZ_+0J$EXuvxz6(%00naolSSO^#AyE~-(E%N>GfWDi7HT;xE)qdYO@ -znrB@4$pNR`bNfdDT#vPa^zN9Z6s6FQVp1VX(W|u~ImTe%LExuT-yflcylV?ZfItIL?#WBCa0W_yVs$7#@*gn+^<)GFG#)}i$ -zV;IWD{;=vC5Rd*T*^whj;pTgUscm8^kr0hMOx%+J6F`2s&+AM>;8VM04~RbTY&z+< -zfl_iM5A=zWcOO^VOcc6nmNv@dK9J`gZ1m%eKp|4Vl|(%86X9?3_C1K))mdRCAL6Nk -z19{~0-Fd96ItTDSQzDJl7jj!^-#hqCI0q#PGZ0p2QeCOk^h+d+l@QA5NR1Pd(m-kz -z@C!R4TFaLIqv-Hiwm(jcL9BLY&=jndui(jiNC -zeRp^H{<6%>y)!q?Jx?6b3v`^286KV(^9A;_*g2k#SMFb}6s4*;U(hk+R8%P=KE#sB -zGr>31tfLnmgy@yCZ|39%hzrLDa#c2xsn3((eR1YZv_^4rg68{Rb=N-UeK|9Xm6A`u -znk-I;1Wt-y1!?7@IAXm14x41>+;3Z5%D3jXTQw~UC(6ut%U=(((grdatLl|eys>*k -zu^bHyHcB}S6OFZHR?_gWmM2>2Z$s8oEt5eJ>lAW|S*Lo&v`;Ef;ld}5UzolWTGX5I -zTZtg>Q@CCD+L2>%rx*o#VSVj18-0E=cR> -zB)LN@Z?$)=8kVMQS;TSZang?upX=Hs4pVKfYX6Y8pC+rzWtsHLPoK+Q5W-s|-|pX= -zh&i0{6XiR{pJa{PkAnOhSGlD2L3<8e%WtEQP=)u(Y4l^j0tcX4x#_Q`GVYTko-2Y( -zL!Mk41{+b^_dK5#U1P#1`6nsz=zVr0$s?%7WJ^*5NBI{TflWejX&>%*5#4&ag*BL?*b0Cl^*eamL9N`av?L_PT?kc=>6g2&=N3sPP`z-IrYN=WO&2^IWfp`2> -zh*ouurF+uNIkD95M6~qVQYMP1c?8GyvBPhppOV>pR?R>Gxp(v?rw_c~CytV)BQ&<# -z;wz$rZj}SXF}yzn4u3mjWzDQ*Yl}REx8 -zPi-rGH+Na`-{E==OWjeOOuK%qqhVP#;+)48XN{bD6V-^!7Dl2-v(~tv9?yiRkoq5& -zj0ah>J_B48Gi9O>3-s5?f{$(*Gb-T6|21h+bK8wMkuP|M>UrY%e>6Aul15LjLwui( -zm0a=|RyQfgAwYAyKLOi#{p)4=ySJJi-op6pr?c*j7ssBjvy5)^z{X3^7o;YBFy49l -zYlCKZ6s`-GF7L$<;XvjXZ8B|6>yWvO#XchOb9?dnXbN_01qljc<;}_fS&MF8gBHC+ -z9U5 -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 -zs%E2i&uNmgV(YCvT#lc@4Cd2k5{uCIqntvmsv -z0^ZQ8ijJz-T{M;&6@|tHA4EaLJ*Dt&KwXM$2SDS+0rTG(PoXR5X`hX -z)X`sR9Mn&8nPV9iB3`v1twmFKAU-c_-Q+xV&cOd!aQ?=4^`(xRID -z!SiQ%92w`z@@ki`4~{@OXq|D##4aWeH8hYS=nEfK_RJjAv%Kdak=eb{ehpb)np212 -zy7P{HVkv=BhJJx7Wdc>)_Flr^)V5N!8y0j%)2B7RFvZ~0x8ZoZo|LGEnRNw|Daa4L -zgVkg+-(OFX0)@waD`U$24oK^mxNK04s=k2}x?@a_FeevH)Nc9iwB+)wQw=#fVcKHM -zMNwsQw_$RNjh^RO#9fH{&$-6$4?m)QVfj8oNp9E5q|h)P+YfrhE&ZK_>Cx0EOiSN} -z6cg{7X62f&ukpk6k+gD>m1G%#*eFimA;-`^V>^-EX$i^EMa{GPwrq^LnQsX#qqn!HsM1zD?P3`*~H4DOCnP)}VuSB21kgN%fh?aRXvg6J_qZ#4lQmCGA` -z;Ef%O%)xY&3_+Pop%*j*;=XuSz~RgFC#b) -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 -z;-HL%1jZ -zlCHCd`0st-|1L+DE01}^l3HJSnGAk}EmaAawsIH`nA`aphggOpUmhR1_+7)T>X!_V -z-?eli*NcVp!kGvkwzG-u&BNe;`BPO%3RE!rBVBHs5l9`?<{Hd6Kb#7HBPgz;9$ -z!X3iSAubzu+cQ)qfTIBdxmxA-WUV_fVRJl2f`pCq?LjHrW?>=7-~R0}Ace428@m~o -z)!MgKJ?NL7ggY|GR9K4=c{AWyuW6vLyjjKRaYWM`%h?mlu}Md$@ncPX2)$T$Tp+yZ -zs;5X4KH0lmN`zn8F&pz)RimccXixSmu_u)oL^RjPK<^;Ae4kOibvWtZbuHgMPeujf -zgR3uBWxkLZaTwDB;7GT-RNJ})hm5q -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 -zlStKT#;_)G?MHRg!~1? -z_wKw;4YNEdm5=!vH!c!QmyZk>r(u2ZTk$WTGRcxN67Hbr&MQTMLA!#q-|O|A*Tm>f -zKJQ(}fiVgWGA1Sd1z3w3kc!cXT;Qsg+$C4XVc7sRHjd&ZYJ$U~bea2cQY$Qha}QR8 -zP!0xSMkkK;f2ghg)K;H?y%&D;Ky68H$mI5-(!(E+!{Sq{sDQz)DN_Tl!Z#L_iiVWv -z#yRF3f(l$K{4=X(EafJPsh~c=MKDhgoG(W{Jhvu13`GY#wu^j_yV%lWy=@A?}x -zZAiMmynxM%T;h&M?+Wk*VjUb?l@BfWlY2CW6lEfLBq9IwtN=)`QDt79J&-hxp|Ci| -zzRB4G9R6tw6M#%+8bA#e+T3^164^KnEbNQ8+#|)#Utn8*?`LPU`%j%K#eL5tenHfy -zIvddRxA;-#s1@iRkQpebhvh#m?@;z(SEU6NnlI+fW-2qDrn9=-$mcS0dvCrMVmF(p -zTsXI|qpV##Q}&$!~G-Gdvo8;n -z@~SmwEO)moYCSQi1b*v|Z}e?>PHs+zz_bDn4tmDRV;1x_{Z -zSEe>7oiynj`WY60fq7zVxX-^k9?3}Rx!&)cj_n0DvSH(r{^#1-c<9U7pl+C{=+~HT -z_TwXaZn&Ew+>9^lm)o`SRTg)nbOGx&kELGNVx65W2vh-Y_fg+-G!&+Jhgx3ziNK^X -zYf%u1FZ-WOly*Wnm5LpL7&k0?#TPH&ZI)4ZieZV)8)FLH8~o%Qz&OD2FkC4t%<};$ -zr0O6|M(IIy7^Suf -zggFVOmIeju^uB-SkQUCi_;Y()_%qVa4dGEAnC>1w(xf!=^6!<%5e%jWK7SG~TN*JG -zlZ-;|8A^uY3f&x5!JW@R<$1HLC(P5w;Z$O@1&_rXl~;Epddjulbi>VQfi}JOwv$fF -zN98#ibKUq_uD?-y`46K%FbLI#67Q%>gNed1rZGAniIwVYNRPq9lafVtZ@9|TGU!2) -zY=Uq{S9rKhke~Cfvm_2$6@he3!AT>~II4uWM4&eF8V;t8a6EN}k -z*$(yV+j8aSZ-$omcI*#7Df6dW9+4DI!ox8ec(dxap-J$ -z^=0DFV1M*k_a{VSY{>8;+Oa~yl{>I^>bE~f^taxB;UJ3i0#ngz{5Nc;hE1C>ov5-s -z(<1|(6r5J3!P7y0;r*pPOG1XD%U`}QyZ8F4a@diPvqo{+Ll-x4+vcT)ayn29fd(}zk=Rlok5PF=IFt)+~MoD1fN?@Znp -zMsjHNzJ+@&fpKZrGH5*BHMHCoyn27&(B(gLKZ7&Y3>yzLc{ELm`y?IIlhEF;v51(J -z%tzG9C-9zAt?7eK4BNpux(U_Aheoa+)!-yGP3Z^J%+-0O(8z$|mDwf%{1H9{tZT=& -zXqG>Nbzu15l7CBDklx&=R@74Xk`JWY$x^)~7ki{0s>yzdWtH7rp9PDv;gglDARN`Z -zz3p3Gdt~!xL2!Q%7fIV%XL4Va%xGB8Z89Kjb31KzN&YUhZxQWG1K_6$;IHJf5EfCR -z$}REUga;{Y@9l(_q<=1BhX1C*9sdwnE1jKhfc4$ABFfQfPJ$B16M(C7=gQe3v9G_m -zO>EHr)eOeEP({mF^(b4stG~zG#il;7zQ3}3-_1i@bJy|3SgJ3?kRqwM@)(4at^jn} -z7D`EqefYPXhLpG|f0Jg4-96rNeE&C$aoU0O#v#!!Aojc+kn@jlDe;OT*NP*KRI1XR -zMPNOD;sEdiUTwdyr|*r$AFY6Muqkj_fs>O+=m@aP3RAk=gqVp;`fSOf?}d -z=qxTl4}rly+tFFu-%OoycV6cHCoQKP)bdYR3*>hxRT&dA4H=E}ooMEvQ7_dBSrBJoCH+C=D7~3(?~P_WQ0MmRRA`F?#ag%+%i|b@8iA|UNsbkT9F186kE}h~ -z!^JiWDWFg-96hnsx~tzK!F-ukoZX@nigd~JzhBic3~eK8y3WMzLqFAf>5 -z0mZ4VmBYnq=aBz6#`YrnRvkYp+SLqK^!=pX;h)beg$onah88z3s7NSdc<`Kb5GbG3 -zNT(^$5XUHlib;wgeK+vkPJGkp4#cTIY5r76Aj$&pxcNIoKFGcL-g+q;BQj!%PZcyqLvel15P&E$%e>TOr4IBk=^ucDgPg4$mj^`j9+T1XSv}pVcn^ -zT|lKkiRS!;-&)&JUDu%LiIDlzp&noN;|iSsFvsy;$r^WO3bwp?|ME57NWD+IT`ymr -z(VLFilg6hgJ5?DkaY8nee(B4gRI%lySGgM1um$YNK{^P%-jz -zaVfk;Yw%>FeQBkUosf%cPrc918;qQeLRAUs78AX--9GUk`+4;vZFVB2KmXWQ{SmAN -z8|X|*gEvJ@>cU%0f;nuOnjsCCD1tc?!8kZ@z6Ps^-&=s -zLP7TBL&FSTzVv*{?I04FK|Lp~!JuRP4r7)B)-NSW>cAq)RUFFV^DsY{HX^ZI^c|)}w!7zR`D06pY -z*>pU5?!3)^sKu8#cQh1KPi2G9OwrF@aBO&xXgW7c`Vt09cwM`Y8*jgnetsrB1RTLZ -z{7st2`QHyO7g=N(!>BeMU%fxy$x0THJtH$=CFB9SfK*J8ct+^uO19c{!#KpF>TkF! -zL6kgxcrbq*JZ{J^dmW|y>vjIOt`PPuzvQ0P@%vKKW9mKLS$2qOlv#g=FScrxJO7T! -z9dG$~93K};+^xPTPJy33h+|EKgBl6*6p5_in0kkN-4UKJuWGR5EfnPQupi4L8MXT8 -z*f!qYAkG6Jc4Jz@*`t}t8y@C_Gqpy#d7vL)1&r|;Z_I@6Fl?W?@_GlK)WYLjQR!%)2o?$0DXWbDJ)?m0`^@B%8d< -zIZk1=HzmDEzGnBEnWQ%FDhRb^dbVxoa>co4Vmjp1kJB93=<>1DHpy!wpo`U6i&Fec -zD75fIS -zj*{1j(&RrQvpD$wus~wOg{zPIkmwQ$We#hU1+$TY81>PJIv%jllb4}f%_13peBjW^ -zJ&33+jDq^xOc4j)CzG~T_xnxA*zI -z(mHDL8K*BWh1pQfpK=GJwWtOz3k?Wnzp=uC!+!J+CHh#H3dd^^GHd+dkUvxx)Owm%m;0K(t3c}(nIpp^~ZE3yN;W+ut>BHN4SB7dC -zVa>+pCLp&Df~t5bA5w>ekZdh+t&7I;Y=4h&(Ytzrt>ugu6l~NH&YRlamDxt<$1A$T -z8he&kOg?}N0UP_!17~x>EqkpFuTO3H+nv==EKd{4exKzz8~Dr#%V5sgke2O1`LQtBQ9A321f%FZtT9?&LGJ?qh}W3X^71 -z`5)tHTV6WtZ*ym#FaA=%c=92({|Vj$~vvJd@oCy#ILKnov~-b7cSS7crF5wbs2>>$tusDR -zF&n(%>DL|Fg=G{$z91Cxd??Ar=jqx0i9<^|ud@qMTW|)ytMd(P2FwW3-cw{EW-WXp -zhnb?R)Lwcjv~DyXlHqx -z=Z!`A)q-ORm`sNEYvXWM(!6Y~i-zZj=3J8feBBa#Oa-c`y5`}RbWqatr+LX&1$<-> -z)=JUsyGr?(6CQOzz<}L;w+&0ZzuMR -z;S)83F86r%z}bsvg9Z5D8S5p|_C5;8(pc{#pjL4hYkD=!%>}Cy4Iu8xXw|dOz4Lgt -z+V|!P9~1d6SpU_)GgKLv|5c0oZ_x#&G-1|g=;x(gJ|qyHu+Q#xBrCy|z!|Le1tBt+ -z-%v+=?@+-ttPolZZU(o|jbv6l+ -z{xqsjB$e2~4(odU=8x-$1zfQJa#`o%XcJ=HY1bH%%Hi9RUJD5XuKGNPKaB=FWIv7Y+`ItKLqy0Jw}${}K@mn+V(%Q*HNniTp!EFMbk*?q`hZWxLV -z*I9D?M-6lEgblK_0DBBDUp$hn1?*oC*)%A^T<_SkRp}2h8oe>qDjqU -zxig#iYr_8@-D>8h@!ap#Q@W-M&;?OB%^%XlK16tWzkC@Opt-WaDDj$Y)`{xo$OZck -zLIcd_mSoi1bgmskZapgKk -zb($50$=%GIvhu=Sio8M#Fbc~HW}3saf!NGBA%sG+{i6%g*5{La;2!P8A~Bs=`DewR -z4E|QG{J<3*%W0l|Lwa$Y{!jIMXV9=(iKUh>LeJlcp}2@;M=A@gtIp>Ex*Y=3^mE|{ -zm&b~vj^+#m+{9zFX7h4dH`OaX7MaL7wzL4D=Fn1kZf~wBTz1or=}ph^@tzxNQ5)BP -zDGb&7D!b}Tc5WnF%{m2VUIWgSkj4r2^^P56+6wz#ou39$I~x`v4p>h7uY4WKpG7?0 -z+x->rnVD)ODBRbe6Ql2TL4Yo@WhSNK9J9TiROT -z_qVRuHcMcM15*McP*B$HG%e)&{9)ibO4Ea$&gs|B@jpOY{MYUtdH8KBnz{k^#Glvs -ze`WAYiiXZit?;dvZ@7U)n+Lte#iF`IE}Af>oG0t_NR&0ibw0YXA7*G+6y*T -zkUnx&5zVkfrLOvfl9RQdtr(*uGh*wOr4B-m;pr@3wG4nVAf<}AESPM1wc&vG$CtE( -zjh(4122N40%+3GY5Os+7o*yDYB!7Cb@#joZrpx_;fq^*zuAU*f#po(boXd8VAkrt! -zD!}X>Ei$H7a^2!r04YmCWZCp?TE9-V$o-B*yoS%!g$uYEP@6yGHhu<;4%w|HnOyLe7>VQ58B9){_!t_e3N*2HLtljSUhldzPk -zupo8@ZCn=&&pw*#(LGwzeevX&V3R3{fc7qKk9+95(hqjr?fN@N-3HWzcyo%)l7AFB -zyB+SGll86Vg5WyTgWTkM9;Tjpyldf_wHe9vO``YK+l_= -z$*y&HhyNOQ>~v7h{x#5vwM*2d$W-9m+vHj?Ao8!Q;>AVIjiO(tVxS2*bkcRGf!p>gA?))s~yESh)5NSWrkN5#x#}Z -zrb>IKchDd^Em&a~dEn)HvJr{h*dgX0ru+%xd3Vh|5{w%ZD=qFWtNawdR*2ECys(D;J~x|2s@PO;AvH@I{mv= -zLRf}je^S;z74y})vTU!I_r=8l&iv_D%B-|f&R9b<>#`vX{$Rg%uSxTCnZ!M(__%}9 -zN-~_H&fxNS5+$~wt3^=$@pO!s?!H5@e`_gZ_3H&mx!o6!3_!W+KCme__q`1>L_-}x&)9-pl`jYtWnocYDWiv+~H!HcqR -zld6ExUA6f+J`rQPO^0hL?eFK9D;>>%(NMf!gDP5mgVx4y`Blueelq*0p=8vvcI(63sT*qL@m_PAM}(WBP4x-wW00*hh}y%qYK6PvB*Wto&~LaPv@yNi91 -zyoQia`oBAA&_e)A==xkQirXkTH24Zkyc4HEN!o#0G7R70B7ZSdq>Wizr>+H|moUQ7 -zSO(olXG5Xp^QRs`c*3s3+&5mC6?w#7!=If8a?v1K=%CL&BC%>RA$qI1fS3}JG=kXm -z@BYJF1FBBIscDm1iE=g;m$JJzXhHy;t}1}3lE%UL4}|WC -zW}7>_*Q&~|+yx(So`-Y@Qly(YgfAzUD9H@bg)xRz$LZ(3frMpoDjn -zuN=gja95|JwB7mL#97I3oCogO$<1RipZKGh49d1{t~0L*Q=)$jq^`pi4A`29i| -z)%>RJrBqgN9*t*SO7qhvd0zrHa-XPJyDDcv#uT(0E^Wp(k0uAs%qUjtCkp%!9GuR@ -zY3TVJKMWmmzSsM+GV%hINEL-xXcdP}<4JaRnsPnRUF8ICv;@dB5}LJ9E?$0nFZU5( -ziXxg~Iq#m(ZSJRk=nExcY@cFKXle@ZOsi2T1mVem59Zk;9rl4=A2m!wy?9^H>HAsTDJGhtYMgf37Tyy)ttLo7;^^{l -z2hI%8JEvmIaq7X=^GxRt)+}*$R6G{`+*nW=YM&P`^ECO-s?$gK2g%zw=mfm@VS1zzG>6?~u>J)Q^`rM75eB^_ -z04t?yKxMv;=c{u7v=nF*V5U2|(rMA1lV0(SoP;2t&Kce>_|~XNiP5iIe}#!Qs8V@| -z8>Xi%bW#jkU+&u0O!4a{7Vy-^jZ#8B`64=lcT -z_J31i!eUcaW~4Ez(Qon?Q{qnXYlzGYe|!3y#~sQDZChf)O}s=sjf{N{j4csxycFgN -zW+caQQM+Sa`+i!w$n}BXz4l^PbO_t#!0|?*H4|Ii7ri#HH=@yibz;_48hY=jDlV-? -zXX=M>?3bwLJ7>aqn(Ue}JaukL$s@%Pzv1}+mJ2Rvq9IQCfU#%dV+PelkU+Y+i4U)l -zyaj@scha1dk4r@X_oEP<3yk)4A;qQ18MyLt)fQ4m@P5mW?||T -z*q@8prilg|QWLPA)0pr-_BgFf?{Rtm#SNNI0?QN@5_6@1%n&>Rj7krEQqrXR2*t`O -zZ;0~+xN%Vw2$<;m>2RKZ -zO~<6CFXlZWAAq8J#m-a;egu5RH-`o>|Hgdc2~EjSppB|q5Zm2;mAZ#^qF(exF~(@r -z-Q{PGZ&T~def-~^uOq5h;wY>|->k{vSDU-fHn~>!vaV(F2LcCtrsmhp>qXZ3s^e=q -zpzg;kvv*UPF^_r&B*dGiazz~c4F>|;>^(Sy|9)LU2coIJlhAJQ$p{s-?{vboweq?~ -zc>P$D|B#g%&&rsms_dyR<3ZZ!Gis74lzX@{#(r`OtVL?X*nU@1yDD;R{>`{7D!LXS -z!i$tqon156RSd_e3=F-*5oJt -z*~%AH5DU9qq(pz2TpJ1C7IPejLH3_`!4P)?@ahpsSQ)d@6x6G&-Ww}f-TY=MTl{eS -z3t}DtOrqHZ^~BIFD{S}oqff&G8>Dl%Jm$uLaYUsOd4zHLmCJ0sps#@2v~Nt9Ed$-t -zj^C#A>oECu@JiOxFtRxGQ8z3JB=NJ?O+Q6HF9$Bg*T8~~d$Q>w7g{m#xR?w)?G$GU -zb0RWuJ=_UD4vJx;>~BiX=JMvt1wY}%4h_f*M6wY;ME=2Nuj?W6_csI3U0wbHX(Rwx -z!G%lp#ci*bR&~n(qtTrUK|=6jz13}YNTF~K=o^J)R;?qd*QA;K>#+}XawLj=>8`au -zMqxp~^BgsbZh*&ccOeQ|0^A5~8>G#6c39cunM^e2*)X8!l5C1s#lF+`atxxG4)`Fh -z`^B05Y^t@pa(!`Qnxj9j=ixe`TWInttpj+yoKymO!|FsCPS^cRM=Du3F_ofd;_$oo -zi7Abo_BS4yiWKqW!0(}nwG^&-kL5-t1{T1Y3QMx@k|rlK%p-M$4gEeC -zLTo94(bCsKq7|jHKriP@35R-;RByE1^pPYe)(?a__im_J8TuWQf(BaPS50M67H)D% -z3eOWoWN2=;V20dvt)5GsSuECbN{7FLt8OFOM~?I|0+A=RUxH)+5E9Ge8e|<)qh0#S -zGciP#7B@lQI%MmS{_guPiN!M%km@F2>)Q#lIG59*w4Fp&@4WokbG5bZB@Tn_9aDQl -zxDtu)Z|OyDcr_{$<@&BR7L=j440k9Ii5YM6;IeVjbl>+-Ly}sl^Fz%qYzwy87Iz!{ -z%st3GH9RfE6tumaaru0O^aEho15HVZX@W$SiDk}6Q@JmdPfRVKfd3{jwWFP)awZ$`8!jwtwNsH7KSV;hI -zd@Fpc@L6`AfSW)pyM;5GgAB#UO`K{4Fi3{3Jq%hyLpxG=6PhK^w(1|{q*Q%#Pi#vh -z61w^4zF9Q9=>5@yGst=B%Y_5u%aH`#W;I>4>CHD6X}S>AdvFEhTVW%Zp`5nYTN43R($d@9{iiEDpycjPh7_)$} -zm7@0p@C~CYb4@ewFw{^=A=U;-CuE -zJ3OsNpLU-?*@!?~>IV%qisNQk@>;T?~3Wo8ffx@6rC0_RecWmQ78Nf5JPV}}0PviV(SngxFmMULvJfSXEyTy9c$Zn%*{V4PvX#n$Ye=~B+ -z`%ZvBe33HT7{;j1JC3345HhlAyC@o872o_S>b|ddARq9|)53` -z&5&|AJp&_HJG{){G*kO>5{gK5wb#{-zdGUBee1x`ZucDYmJI=-aI6ZeGb@p=4-*Yp -zwD(YbX(wY0Ar5$20O0B`a*rpKhU&0$w&kmJfCp5`=M5V;ahWz7E~ta -zNw!w$DEsmJO}C3Yey~d5z3F@8J{W8Ga^P1`WF|71s`Xv*mC}n~V_LfM+4NVKelQpE -zT`rgW^w5AQmfz)Txj&%K(@Sn!sM2`kJ3?Gor%UYnI-Jp|#x<{vst&A+3+3?7fV&G& -zgP9Fa`Oq&YiO;@mOwaOFNHEM)i3QU%(< -z&>^EPzxQ+^LJvSQtieqGyTDO7Y@fW%x-C&F?JI44cB9sx{Z9jW&FHdIeo>s04qZDW -zQY>mIhpF&ZC={Y8h#c$yYAQHLS9w;3HhgGof^w6R@Q7urxva?aTVDXLK+pb2;p*Ni -z+oC^e=8P+gAN>P$lwkY@ZYCqLv -zwW5N)+abH_Ghm?y4Slg{w53#JZ$BZ|FTUbOBqo)ME*-wZjR8XDU}@vKk$S2uzxeWn -z2F;jIM*Uyj;8uV+fEiK0;JvI}Md2o6P+6cyVx*_D9Pjh4<3_D~sOA7SO5n53=NIP~ -zZ@Z%parhw8Tx_?e-l$=Fe3fF7ev>7{vMoTyB9= -zd#OOINxKte2Z8w`Q=J>BaNpw0)`kHX@B4n9qAK$aIRlMLHM;o(K@1H}&Y98qCJi?A -zJI=4=FY>y`yvuQFRw9{R{y}3*(8>bMOsq4D|AfEqq~%2Elh`d!{=6T5n;63u;@ms? -z_Z4gj6_AO?$dAq_K7;!g6~AF6;5WBKbp&o=DRlSG^i?{lVTnyV)mqyslkLzb4Rq7B -zZRqlaZg1cxrJdtnZnVGB!ZXpo44s-Iyg=9?6_`#5U7ZW!mt5*-B0_%k0(LoN_KQNc3Cb(kNE>qI6Jp0 -z&zu*-I{K+uJ_RnL0iS*7Z(Q6JcAqk__(w~iiC}LIV~h-75$%~}z5$J*3+2BBUMAuX -zz0({8;f8;Ca3mGh -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 -zTQG?NvGJ!X3)LWnAWhOQj-g9o!I5q~rMmgJ3Z -zy%L>|lYo5ai%D21d@+Ff`i9i?z!7fE@MddYNVEK8M-(Kz2`$CtBKdY-R5*QE$p3(g -zmcb4k;VAzTK3YDFRXWabO!iMmyy-2lp~TI&*^ge|wWG6ZP_PhaDSUMdTdTPBA)`L` -zHs%*`1WM^2HcuW6x47qEC@i&GKs0rt5Za$S^FleJfHe4km5uQybCI>NnrtWn3rgtC -zaN8`iqNsw%QL+#H@Ns?5H7uLXuJs#e&Se|df)p&92%bcK$FG2R6@k5{2deJ8FSM@e -z)3yAa7PxZygX{GTduaMzb@GEK4XFRg@BQ12jR@~4`@;bC4E9KK(r&QZn39aS|DW_3 -z?Jzs0-qD^cNw0A2OT)+*dI&=q?3ycU_z?33V3-h|w=!eRCvmQ(W2>HbG8nI>4G-t5 -z*t!f4C1q5Nd5x|CLl~&+yf|Rwcx-y5u{E4emD(w*E=9~c*%f-cak9|011R&ry?QiY -z>9tX>g|n#No;v!C@~%BNIPlnI>W(dL$?Hz#8ZJ&>Sv%P{*tL)aq-0> -z1%s|#6&M=rvLwsn+}Fa098w|sj<@fz4c@&9OcmTZj;&V|nXuz>gL1<=S=Y#p;_!;S -zBu0@5N&3oLm2QNhHzU8WzOxXWaDtu~Ea~&j=N#=vMr}Pv-m>mcvLq;cRK#7q{t()X@> -zWCu!?UW;nH4UlEFuLZpxg|f`HSzgyGlf;2RbsJhC*4NU3sebP+59B`i5 -z@rmgr-8{th!`(zb;`py>h -zD`;F1ivPH@8S1@)$W~N{M*k~UCu*R+SCc^RlJGwV+AX4sbh54X(74K>0jPWHnxRc5 -z`+w`S*xhmiiK(c@BvlKt$gHVkKKSPkghR|HV@BwPiU(ok_Ywb0sDbL$PeY>>wvUR1 -zeYaeOY2 -z>L3g%W)?qbtOFY$lf4JpiBdd^%IG_CbjOUs2Qg7tdr(x*p -z`XzIWl#~HQ%2;9@GyY`iaz@=5btrPxt>m!y9mG5XjBq{f0fnoO)6CeWf8Clt-~H1m -z&E#6qA5Gx&_n#0<`U5K8P;CiGvat{^_Z*XqU*mLS5m1mT0g^j5O9A<}H$5+Z{lN3` -z>?!#`j`f>-u^Q5`Z?*M-Nsf~I^)cN6@n*!kHv9er*RML?3EN{1$Mx?>aa}v>x_M38 -z0HNT4cqrF%&3rA|)#&=-fb#VT20s-JlWF^9x5_W)!_ZD>#$!79bn>5qKWW-Qaa>e|<=fi{}HE{A4K2xIfHMVgsnC*K3{1l%4Qo?F!_s&elf& -z0N~}odD&l?oBa%hW&6?HeZ)L-Xl%YVIC)?y|+*WrtZjT_vF538o<;Y8Beg{5`MY*%k7>LbN*tR)fHGy){D()8T--$~oPmbMM{SU-wD -zwScCxnLQKc&LmVufpe)l64y>~{X+>1byp9}QWS4kZc>=33H4 -zz=eWD!C#yrxdlJY;Ijrly-_~_ -zB-1I}ZC2y23&!O)sW*>7Mqx6f{^iPE${iizH$BD?sAjt#7brnuW -z9&M(9YjO2;U*R=-*p0B^BO~TJkW0c3rxF-1m{X!(l+IML?;isUI*JU3tQ>7(<|Cl3 -zEWY$HL5=11JP+|6JosH-utCiEhDt<*SO=Or@tqgr>Y&du4O -zY$52p;mSJwI~AK+p(W`f>O;J~dxEYZS36Vn5=8YGoVjHIbYUwl1?qh?jp3c~#O92t -z_vImY6=f0B3Jp+2=&d|PlbM3?*A0Yd6@;&?-*dKltHEZw5@XeJR1bQRj#PdPe0A&l -zlsa;c)aSM9)w_@1^nk+y{UXz=u}m8BCqtsM^Mx8Pg9&vh_P+OP -zvIACeG1G}~m*f8QdUPg-+wYuEdzf)cU)}j=BAZ$40m5@u%8BgdgfHb#ET}h>2Od2Zkauwl{opE<-|fKkstkT6k=t(Z!@9hiYU1@JdL3e70F>t;~R -zwXEX$r{kD-tY6iq7irMJ*DG1&st%A1KVglEcbdic#ME}u_^Jk2;zClk!rzUVf}xHZ -zqLwmYr%~^2r3BkTVut~D87!cL&1n*9%z63J|0GsLZBDwiTA?jLKcd9gVdk>|Mcg-2 -zMO=>hh@0PJnH3qDX&~*i;1g@o5@e&Ey-D#xiXS;wDEe}JeECkc@NIc7IBFDv#8DCE -zZkWLAas8vUkIa=&JTBC#kp5LD`u?-@8XHBV(lVsO*4lp;??zbv?CL9F{kgd;1wL+`Sk7W82d86B~Y(2M=fLq|2M5%iPu*q6uI(cMu{qq#oW -zzhmzW3fy(?=eB`PJa`|c^5OkZ`^|(T;)Dat&X3jKJEHydg4J7YiYk>d2IO`oD9(VmdDH*`a*NwQp`@}xJ@8vz!0B@gDqhE{0z93r-$hzk0w -z$|hd1X%={{Iv&n)R{%jP=-gvVUv*IQ9lOy$V9?tqGctBzv&(#CP(^=Z|DzoQy8-Kg -zsS$z%bG+8fo6tS^0z@w~>7gPok|blSP(XzS&t*rUa@tjK(C|?BCe_`n_;}=MKKKJn -z5gNtoqgxLWr`PL#Vxpo#q&GdA<4P#c`*4ONlcwB~!|Kl&QSZx)DR6`KX6gNn9c-X_ -z(d+(}be*5MpB~mOZR$T5$p6FlcGX)%ELF#HIsL>fZp`#wp=$+J6kH*m -z0T2%408%-N>hU!myzT^_PttMlg-IRRoR|EMy&hRSd&;}eR^tgYErH$HV7OWK&8T~j -zUF$B+Jh%&cv8oSFgECA*QPGFVdk-amuet8)Vg)~w2o(9elbB?ePeW9*#LgH+?b+TF -zn7Ps>#0XncD7O@PdmWyrHw+LFC^rvW%~m`Ux)D?V0iB?)B!oGg7;FOak!TZzCWsOc -z+@SMjt>w}IeojB0VpQch#k&amKAfdx+l6UlIpxTL9t0hFhvdRL9Bo#(D(O)aIuEzXI;L2b^1g<-BUb -zn%ARLRg`9zK#R(7)A4|N){*lM_qnHAWA%UkQ|`m9&Mqi%;2JyN%PrCgT#dvLlMqk| -zwR*&89dMgz%#KmF7BOaMYeb2wiRcmVuFx)87sJ|=;ki)n3CVcW*Xs -zw0~aDKpd+Q6)qk{8E8}k}AyaCj{*1%$n;yH8 -z?ifi>+uiX0c~z%xneKh{zHKIXgbb&r80m%EobSX>y(TpTPXSnXAJ`aZ8g=^HwsTWR -zzYjAbW>DdJ?u{w-rkM>FbNDn|lH-xY1%~n6Rj<4&bS{*mv-44MKVQOYy1V?ySk3JI -zixB@gi`}XfTtC3PAZ5fY6$yd*zcdbl3McDvU!7ONUr%*v8|{Ft5Bj1L`UB^|89O$w -zHuyz6p;O~kC9mCpdTW+apyFraWeP$s=zm8&=+WYv2g_wW2Gm3UGDqPh2=)X7!#}XV -zkf#mq91lF~UK_c`29XO+C_$|#9;e5zUWpAlkgjmQ5leYWiBSb$HIN+I;riyw(zmnM -z`li$f;`$S`Dy8KWLKP|2{p%)$H%*jQ28H-J^y!CrR5{q+x_+_y>I?(q#^;R_YN+l) -zXQskFB-n}`{!S83`mJ%sto9I!b+~;HURT5H2py6Xu~i%#*Uva|v~?CIEor2x%(7ED!}E0tcv -zdX+!JD0mVH9tW8FSc&=%pDu*^i?OAPDZJj!{?ws31N$}lVb#`+#pPeEN%%I -z(C{i*(yKO|2`evi;{Ji^>2}V4rd(4r`^}ikE}QNuDS8t~By7hk+8T-RP -z0&*2JJr3J4R2*MYwhuIY#U2n_DKJ|Y;Zi?(orjqDbWTd3j`&jhNMYt=A11Sz!`x@v -zHN#nPyO1HcOqFw+cMJ{9&r(8!@FxP@vUac9Gy|5;-1Sa=;3~$%^oV7~=NChM1H@do -zZ%iaiRYDi~CZ4N5ulYnlsP^XrpS9(wFa)9l>7MO{Y6cd;FBC%3$8;hB7UD=TzVh75 -z;MT#@IND;96lT3vb6tFOs)U_nC3vXJYJ8k{4%^eFtw?iLO^WZxPC}p&dl!==Q7DA` -zFLYaH{GLRYVN!+cr@@yY=kdlPkG>Ic8H>fSp}_w`($x-6k=^(WYAJqNb;U`);6Ul5 -z_cS{YI{)pmk4xH`l!>G_`pwp=cxX?=%{1e2rCdbZG -zC;E9599s~jlW6g!hRQE-;otAgBd)pHxLisltdF3dCTb0B-N&CK+B=vVlrjQn0%ShK -zzUWOx`#^1(X(kiT`5ZzHtB{0TJmjk~ -zuXLwN26%xK^w~AdhAgdN$Ou5AdeU?SS#@L=`|3eDX5VmVSiVJdL)AawayE+ -z2`Qglj89a$j9u)jUmFS`+-0y~ZDDLm`=YZhnjK%KO@|7NQ(R4t}QYOQ3lp#7!WD%kEUQ-uv6W*uY3xvmBHtba) -zXl1uM0@w%Gx3-+ZUyc~#=C&Q2lS!;D@i4p)7qRFrpk!=R^kU%x2Hz;osE-&PI+>r< -zTljuTv=AVE_Lr@30Y+}D7sH5)&xtRjCh8|Kp{+~Y!aY$R7of%Rt>a=Rs8@?jZ9fWP -zt64CI+7qm8O*^r%h9l61yV47V8LP&BO7V+H7i10(l{M?~G&_9!Oy2Ovr*D_g7=g|( -ztH;;Z`=Z5Mg)~f<{L>fY29Oh&_RU}XF8o(KmKK&yj>md8><^Y#?=FWh?0vBXVO6-6 -zt<*~6qvs%jw?I&QfvVtLQ1r%TDP#uXLJZdQ7#P+F`+v2|nebZ=THsrgAPomg>0?jr -zjH34!c6W$-S;^`(eqSAMdqBS{k97^3C6c2zvdMn~9<~->|77>Rx+S`hOPwAhk9WP8 -z(w3PTBHci}*S%YU`OL~q0|A@nLBqE*>gZLc+2-{Zl)c_r -z7nZPby~E^0?&GR=r+L)dWmhbTIT;;a9&&h6^z7YVCFqkzWojGy(SLbHwv24ES9*%p -z8Hnw%Xw)ulc%uuU?10#jk0e>tqJSaeT)e$UX_gG0F8F6{W~0FiUuG5@)jm4m=R5Kv -zIHtwjA;i8=U~DY{9hIxq3|Uw*%4r#z>{$lHzt_i~oG!gS){YEc^pT&VcVp|@S=;_s -zV#gugJ`z`axnimVcBuC^&<_W3aF|~@)l4`euf1WoNKkTZ$T8+WJ>$((7-kz4zCim} -zY&D&kx8cOpZ6g&6-%~ozhCIjNm~Ui=91GNo@v%eC7`z%WIY;=cv4cEc#bX%cw!ENJU7IgGjl{vHJ@cm9l9?}b!IoIOK -zwvip3_QYL(xI6Um5bTBMhiolcDb}K>v5P2XjklrA5i$3fN5zkSJUM^p+i5UYik-xN -zghL#Ipm&K-T!HgBsO-&Hz&+&`4-8l5aTdGCM5??VK6Kh)k%=T;L_m7nvRq -zh<+I;I_oLjUV!vMS%0KVE_*(#CS+6{-AsZH>?Ce)a@0nQ%0k~Y(nuB}-F0mIoa=|M{xl<9Wcd#; -z?SyTqxA%3|g}MuQu2#UEs_4rv+w*8=8RD8Xl29guFXT?UT(yqp0)FhBWM*;OZykM( -zn$O6hif|?^Ez(w2nX4d-kMp)WRWb!^_r8LfvxH -z7-xx6dK*7!;rYkVIK7lpI4!P`s+S`g(WsPED~G?Qf&1nuA8ezDDsgNEi{X-L6>P&?X1q-WHzlO~2}0QKuGKi)68caF&)j@hZUCGh|4`g0^$&2Y!V;Zzpe -zI75eMsqZ_t;I1kR&2^XmxNWdXYD`0S!igm!G=%XRTq1~9|3}kR21M0#VUg|zk?wA! -zmr}YzKw284LAs?yT1rxyS3nVI>68uy0qI7NS{nIgcl~}UcW=zSGjq;);*5)8)TX{% -z7bqn6zmN2{&ZOFE*XbS`;UsP2<;7dlc7brL|N8rptJ_aTlm-zXc(tOR0 -z+-)T}7jpi$p+4`QsfX&<%7Q%WP!2I}`CSP=wUvu3zsAOXLWg4Bnam_9V8he8l?=0_k`^dLYoWGMa@;tWQN4dz(b-Zfbm8T;g4{D2q^ -zaMiQ>uq&@gr%*B%JLtklpRM5$qY*)l1^%9gkpwyY>xftrw%`Ey`}$)Xu@(N;!>@Ew -z&8s_fCqu~tQyqqru0za=!y2{Ks45EZp|9y46|F`-(k{HSkmq^#VQPv>^zA;^$=+CE -z1jjA>9>YH+artj9W_i07@gmy)@m690uteQ7{(s>vKXD&y|L@RDjV3t5}Qhe7VHQ1)~bQzXP -zPlFQK*3s6XUVHFy5B#%mIjtdto)wOiiJn(WP4RQc7UEZkKxi|Hop&rvZfBQ6-Tdxh -zwO0{twZTmmK;w1;l%U;U8D{#x#7Cop`@gkJeZyr7_hx%V?}=LNoayLxiQm|6y1>g? -zg|E$*&m#_v3ZQz@SkZU7#n$kFaku&&`ey~1oA~}~5#F?ptU|Uri}+^LHOgg4c$pNm -z9qFYSu<>i*Bg3&tfo3qJ-4+9AOO%ev%2QRKFeX5wLwoTv1Etjpxgsx#!y$GN3)Uax -zf?}(hfs3V=PmK9o;a5MhwPy-f8jSF0=S1&8&DbQ2&nx$SxXj~2+1NLsK{NMs4e_iZ -z$tkYHmQNu;FhmawVdgvPz*X9}!7OzsPM5Dk2$){OUqwWh<|$k3y{O@WFI`FajMW53 -zY@BpxbyeMLm^AyAw&Na+uYz7EB4(v86)Rw-X%c7O+v$#v7xb5B$wa>S7H;$KY|n+h -zYi5o2S7u(<PZxkq6DRnWvG5;e{PS(Wlr=TU*tJk=>&%6n-7#2Py?>bkH__ruoe)p}QrS{FTkb4%{^>7O{ -z-Qh&jSq{uj;Bq43SK3)3B>Eq9f8$O1B{RJCK!881yduBTCVRb -zRC{1dLb&U4%RCR8wqj*&UYQV#LmVLDsaz6rn5PLiVesEz-|0RC_& -zj20%=dR)8D7}0ucyx$kwl>8z}-ci-^;x{|Dda|k(b$U;*1w9j>u}y -z_RmFrlo6}SN=18LE8kKRflh`W&ItTU`Dv3vFd1N|-T%lEOebHhu -znO>F4%d0pK5<+wy;wBFSv!L;dHp@p1#jG(e>pUWB`LkrrHWa!9C%I?RyGr^KahoIX -z?_g4mGnA+l^O*+8tP4A77JY`zf#O4NO`5F)E78t1s?Ro#V>SJUJuL;ocrgGESIJ}1 -z4L7$~yd>Ui8g_!WX#guTzW4iToTdHaS;n-41yF6ZU>xyi|E?)jf%<9Vv|?lZAK@ -z|FIW(8eH!wm#5gBDe15Kn8t(m2S`Ci`)ob8PIy!*_bkVgi8kdVo}8Q!ja-Mj`NLJc -zz(?#JzbwQwNeY$j+c26Qxw2o&qZSyZyB5mkfBJ*dW7918*x5tAb(OYva?O`!$}`R# -zE*@PG8zsB4cVjl!tXE6V4=oqp -zir@SqZKuhi^i_Ff-ln$11^)`D%y;hd;HJ%ch2;?)vZdjkFdk{M2R%}^pYT1s>qJWa -z^pqi|+9s==!ZMf|c*s`?Cx$Eh>?h=Q9C|3|jG2ghWG*6=mKvmUfe@u)?woSEK)g|l -z{B+0}RTO0(4w;MX(a9Dh8JtEW;*&gr9~A?7MVl10n>pQ*d&-kVDi(pSWtg;(Q{b13 -z^2owllC_o(1LRdsLmyBdZDn-1dv -zpLGRiSTPUXZ9OgiGk8*pDXTTEjZckcQEIY%jB=6=irC)-U&e+E6qR>^>}^Kung-u_ -zuiERCbj#3CA?j@dpiAN33C~Vfi1|!*T*-gG@Nksn{`~}JodH*>;6H&ef^H%D!O-3m -z0!|<^6Fx?^)MWEAjTXw@D`fV4X`~fUw$B~aUSe>!8s|hoY^cOG1K^1U_6KhxbW|SY -z=+-QLw?^imOKR#p967jPaA@I>d|_hQTOanL%({4T>ip-QT{Tf_~WJx=D@o7a-Q{m3*Ddmv|zFbYg90 -z|5?}-j!M(J^FByVt5Ia8Sh#VZC+43GNOsYD>_571h7@*JZ$8$eaas)QEpEZ;M;VtL -z7;v#qI{`L*kawT%VxG{kJs9(w{o&h&5hv*X_jgVE5#$ZGtOz{7E79wQ#!(o{FB(U{pw4}g@noP*cm=z=;Puad`@lJ;^{BfZ+%0p -z9I}~a8vIY1qr-xEZZ)Tp3XPOwVcJKX;r|n6e(8g~`=Tr?o4lkuCM(#n7KX#S$?ydU -z7H&<3soIH)PSp$jlt>Wme2doWPQ^RotSsyVA99zqheZByv9@`h8m83`A%jTK$(-*G -zCo(UJ^twfO5rLkMgWGwJhS%$rkRhZ`h)A>I;S82EGoALaw{0y}n#hLrD}&?|VHhY2 -zL~_42de%~YZRm(EWE0&;EVsf7xk-W?pC5eM%QWJ((~CRu4KK-I%h;tyxl_rCiPN3o -z8Crl(7ZMEt1K*RR^E@49B$QvvkzGZ7oBnmNAF3614$)+_kHcwAmh>)wq!Mh{Gtc7r -zNeOFzrPOUP>4_b`JB_=iXs1z25{dyxK&Eh}CLhJCfG3e-CgoHr7i=*zX5k5j#y79V -zgZ?PE$rOCfbtIK;tZ;zIKEeEx?n)4Ni;E%cA~yCULYfUq(jt)kpO^4O8)?AYzb%lK -z+kg5pJkLytZEWdd>pq<0a(Q69#Y -zv|}~n%DBUemE)4YtF;Uz%$;OuQ6KR1WOx|bJ9*Szg7tsps8Z0(EB2mMeht+^{Vs2! -z&Bs=i7r|lQ(9@4xs5DdU4g>eyWCmV7$Bf#ZXc{(+qS+@zTQeb4o~!N4k`)m50lrio -zYfmNM-sZsmg0WGN@j@nU%~(YAHLYTgqE^9|yg){F@#fCN7kd-FFPpjs;!I|Gdu^Y0 -z0?0ZS`8`X|_QKb`JdVWAyb&B

~=17FDXmg>_s8%XvH5w2WL6ygKUEbl_lnwHaSA -z=r8r+%2rh^0>Yg-omh%Cg2zY&n4IOHH;T+}L^j4ttvn#vjCB9z%W#P<7Pf$3a2|Q{ -z1|I(*i%g+uXftW(EaH`Ley7WF%_3LPISnc(D7cfUR(wz=)1UzScHW4P{slJNK)=A6 -zFpM;UghVPgVH#>5N2wN)F&LO}vw2hx3W^go(FGW{(!({zAiV|Opn*Pa2HNomG#&_fXptvHh!s8Q -zG3wR?3e|9!rdOWBGDg62?zdm0l>DYKKgaj6+tZ4^;k2R+;f~w0|6?iC(>nEK>DBJ7 -zE;d?=tGMGAz=VO{I77zrW#nKK^V?SSWp_(sbM(pf*r3dhY2;nf9&LFjA;_42KN70* -zB9y7JxdPAWX!{RM%huiT27f)i|~%L?f*mSt(n=7dd3&mfNJ})i*iVr6w~Ge(Tte@ -zXDlobM`F~ec9BOCOO7<<@-=5lK(FMXlH&u>iSSOpLRN=8BaAz^Vs?c(M_3EX_f#E! -z3YwTmN0m1&yI(jk_$07)wBRS_YJPw`9(?u%6Dv$j@vW?yBD9xk|XJXmi2ygVnM`N6F5E{kM{*%#zBifY_GHQ5H9`!HD_@ -ztSObbn@r$Thxm0)jbd_7SRjNFd!Cd4{?;&R7?{;wF*0(l#b=c;@8Dmf_wWJ2U+5$8 -z1jsjf>KWTUDfpaOPIegFCHVqu(Cc;*~&{iGtJTTe>36OIZ2iQa1H_N?q!o`k`4>X5UyinTQAugB23}h2@Xdr5qMP4M$+fMAUuhLBEkfRJq2YgvbsX6r};pSk7@+hDPxQ! -zK=ar&XWhKCIsrt#%W@49%i -zKY&|Q2eFjPpgpVF_8=+hOd}r~Dr-;LmQeA}4D91a4jva!(?oL-Ng7c)#8|V-5_=wD -zJGw9&Gp@EBp-eSl_cnFU_ZU5Ji#)w(M6GLxs)9q_fcFn6YHX`0WirUg`O>p~E~V=R -zU#z@9BbKZiA3y-%91I6=XBW~6#80Io$X^yOXCejr7jYOSI^6&piVjO2IhoPKH#*Eu -zxJBVw)_d8*yq)m9u~D$S!~gz3+2V#IS&s6xG?WJ&f9_oIn{DAZyy9o0Ye04-!D{FCGti-=Lc -z)#pQf{H02;@MZ(Z}euXDnTm5oR0uZ(2Pb?Wy&S_q{8dk@c=Ep#=jUbWp1_OZ;4wPrd_RqUO^cW7E%d -zR0H-vd$C@-T~8wgIdKOr$x$|O?%P;&mT0caku~Su`548Jte`CG{p{2akIBCjoXxdv -zosO8Zeu;4T5uOcN6c^89yGswXYbz^Y8BAUgB+`6{?3`u9Tkn=;RL4}0ov -zYFa^h<%5%<-u0%f}n2ybb1eWK1V;_Hl$#aBSt=r%tR?I|$5f2Wf)%^M7&}h?I_Tga>0&JYzNtfJfz4bYL`DvpiCjCRRp~BThsRBjVFe`!&58 -z!cNT|^6Io~sMaXiu-+fWHXb59f-Z*1|2kFbsJiW7L#3WdV96t)<_1=J7ZX{K7g-;) -zeelMCzmuLS;W5E`{Asc}OeeN)PLgi@pJ`_zufJ4mfAtp`TC{d=Xgb@M6nqe5crmoo -zSWi02N9HFk_hV23ImXq~Vt+SvqnK&>T%H`7R)oS={*52a>ofV0$d*9FXgCoB9K@sG -z*!vUA^*%`})7Eijdd|D -zTsC^C3A;N0$yYOotn1*eG7>Ovt`NN|8Gi))%K;K$re8M=`HD7JJ7md5jR%lPSho0E -zz+Zm3DK*ovcqRTLbT4IRTc7SG6Z5YUO6aB{`Mdu!95Q|_Ycy0DKu>=!0QopLS(^*- -zx2M_T7B4g%BasSFm_`O>n*E$%-#&Op0XR!`#73__-Qj9GZo`9pHzD#V0X9FGbzxB~ -ztn1n9X_o+34y`BicWmF1cW)4@GvAr_=h!tST2lR9VbOy=%9-21uK{6!yjB(OgI -zp1`E{ym(!Jzk(~ZF!{G=Zk@5#m*A}QC!)V_vo29}`Aj^q6fodfO}&Y-zJ=KrH5uOu -zy|oV*=Ef{0g(x}ijN#N4hB9Kw>ZVYlhK+0@*^4kNTE+F_yRGDKkKcsfiFXxq^}c;^ -z2||dWFa7hCCrY*shPk$Dkl(*3A9URW!B2;W%W!NhfUtz64XaeW$e+oSG;?w^3%C_ -zA7vXwF+Y07OEt+Z%kBhO6jo4~JDPxl*bHS4MBHQ0asqUoE2s8iEWP4>(4TC?C%IT$ -zf!c2NF|r^+oqL27-T?e4{BWt~@Y%Ztn|P1J6>_XUJ7VU5BJ#*xW&vfxgfJ?>-So#y -zUdt&fE| -zi2FjR%phRZ5`7$b#&fBL6jT}LnV7x9nePBk-I6&5l~#I_5|YYnycyV+{Byr;l1LB^ -zPVp_HK5K_Ht^ku`aa&stL*0`;sGy3KUHoHPfBwR*qU%W5$o(q#6(STHgeW`F1imPH -zQ}pr{mt(#!dcZyy|H#+)NZ9|r9b2HjXWhgUTsj~AR9v^(lEHN5jcUK0TrRQL0?Fia -zIW>%@mfvQE2u^Hyyx@05PknkA8TbT>+URwkVQ{bYmF2Bp2G4F``IOiKQ2PGHy8P!U4ls_S$h1b->O@YJVXCC;$hvX$C6aS -zJHx-R&$-($63ns(Dst~lQmB`>dmSV>$-EK#>wvy!vcxt15I({L1b>!nZsX{PB=0@;1Fq96>eUb&2}|b&T+TVPQ3MM6oNHihEp(ChG?@^g@;^&ruQEl8m@{}ECVdM4RvM=|M{P7k@q9LlAmd%wN+vW=9M -z8d0Bl?yA|#3qlxb%T{9vdlGGeEg#zh8AWvH6a6(;LxUccuTjhlf==CjKx=tdNY~?D6b=K%gTLPFJSC$|@JGC8&2Ar<&>R>me|SH=f-L$; -zjG&lS$Sd~gt1o`5a^D%ch9XvHf&tl%$vH@HOb8D4Hj1F@KnmZgJD#X;8Z+M}$Hb|% -zej_$K(#}Snr_V)PXH3X9&y#iIP2sL~t&N8exzpEscH7#ST9svA{>@}tuR>&W9As=F -zJ38yg=>CqKcyEceBlJbtK5aP97&H>Umz(hF%onSl@bU_5ipj0VP8OT9MW@2AVuLe1 -zH`jz1a -z9YDmbByS!B?mmOmgpIU~#aA8Q7&o)zvi`z$6=(3;~fnX5G^g-Iv -z^Uk1hR&_=O<<+E6PSdS1#?#|>`KoPZwsRU*^-x_^i25rs(1TI?_A2Ax-Q;d9LE!k_e;q^ju>l5W1&i2?BzhMUeS$b@R -zzXo@)zuXxlg(Uf+CPLQrNV`@2ezRNFVL#=fi3F#>h>?~j>XWZf6YUG_sX3b^WNe@F -zJ?$Fo)VFb;`p4*V9kj!MTaveBcHLwTR>bJ9*vZ9njkI3bJmecJ#rEUqf63NApPB3~uS7dz)5T?G -zm%~Yfu<#Zdy|6GmyFbbrr8=zksz?mwgUa6s8-@f02>_z{N7U72Vw)#p`X92Cr6We&wIOmnfu!Q%-guEcToTD5zl_oh;r21iYlqY8wi -zd9>t-Lkj%6qFg_CJ9(ynGlBF#?EbE2px2oL8RMd1iTaXmPD|dC3SKidN#?o+=_fg0 -zmVk1dUFOzjKk*mm%+ab!sb9|LOkEIGhwr_=^P{p}!4-B8oAdF_5Iq5h`)Z0`u+g&I?<6z@$KpduoQ -zd04`sQc3+eK3wm%`iW6lGv8ugH&;i0<#~q^5_kSlnji=KJO- -z2CGgZUGT~TEXe0x2s+s -zT?zy>A}p5xMCB=RrUqrrYJq6(s(N|t7D*;K{U*yl&=0Uh=4gFeP#;{HN%NbO81ii> -zqP6U1?ycarArf|qLvI6plBplpn=qX}h#hqxjG@fs=rP(%o(;*V-WpDR6?4h>`BBu~ -z4+7?p6n$bWO!z*df>a9jx-Wk`UJ*3wr?6Zf*w^7UL9feJ==FvIw{2f8U%HmUj}wR%j7pzESG7t&CylA0lDTY&b(Vfoy_F`U-HKqedgIEorg^2e{j7%pjzTWuO- -zn$LkIdAo;p@F4xA{AcYHv>)8N>C2f!ma$rXY`g3kvSt|-Fq@;0mC$>Uss^WQ*})B6 -zNMVcdo>q4AIgg0_WZfcB61{2bL4F2w#jdvpI@syk+7#|j4ZH^Se047_4DHisGtCjt -z^8LrTF^h`EZiUlrRlAw=y%-6K5f1uXGJhB^#!Y6O6mn2cb8y{!9({^hB23SJ`+@0v -z2TA|S-jC}ag*UgODB?s&?8}(vG+`>3ow-6wjGBy<0|tk!nE9r}BdiH)Hk* -zL>=QhFV4lXJI@zkiSupP`k9ppsvE3a)l -zmgoaNL6;*5iLuff>TO_ReNd1kCn@<5z%tg1ZPfnmsZw;{#r|9?I3Fc?gec|DrhuoK -z6f>+5<{glU6D3=-X7z09pVR8#ned7~8bWl|(EmyJG9LFMp*MW_uPK5eTk -zGG=Mv;G+IF*{n^C<90AX&XFG5UszVBrFm~Evtg;zGrY%SC$DbB$w~GH&-Z2>=3#VQ -z@Bl#ia#sU0djl1P^JJoChCi!CMst4W}1y_+^OWm -zMhrfg4lNlE%qr93DlRrC+Yt|VL^MJyX>@Zn-#YGtY6OAW-`HmXt_4^xq#_fF^@^s# -z)8n`tYROa@kC7+oesOV;{dJdzf1|CWX-~!3g$`<4)Les={WMir!WASJPFoT69+#sD -zU!MaeB^HX0DV9{vtNLo++f!#{ZSK&%$N?M|u+PvQu?24!`nt=DzF-KN!9{v&?Q3y5 -z@R<20;<>3?GOGS0)xE|3<016t&DiP7O_**U@b8Q?*0DxfO-iXd$A%K}nh&1RY_s2B -zCAz>TX@rjdTzLFvi!D1gwFqoV*)oVV5A|(F$VAbL(9edZPJMX*P*}?p0N_bQ)INiAtTnPIyxbp^J -z%)sU+Vo)5#K*&R#KosDSI2D2T6MIa&QY^}#V=cY${jBg$JEde&z8IELm>?_weVswi -zqoBfV<^Ogl36LzVwz}N=to>9o*vFb)${A-(Orh`o3<9o26Lu-2+%{RvB8jQb>|T|j -z^XfViXLsxN_|XC_xBX(qr?R&>*1u`ZJbq*Ta)D5q%8vZ8)Lr?LN_MLG#jh!cEfF#o -zq`@k<+IsmOCHPO|0T9icWaW(8Lq*f*2aubz*lrxQ3S0F_oOIe!8DHad`gMxVqnuEa -z&AxPofM&+v)&C@onbpQIUdmoXL*Gp?t5Eiax(30AAQHwltR+ZF`;UiM?1> -z?+(@C6mtFARg@cx+_j;S5?qZz`{AKzz-!KAqLqqCd^e^uDVSw$b3QnG(Tlbbssc5n -z@FXp>MCOUBYcAlZ9=1+k5$vHP+&Im7Q=o_sgffaJW|TDq-qXFl9$AilCx5W86F?{I -zwGq|$^Pstf4Wo(ScMZkL+^TsF#x!mjkSLBb>N`P_=6Z=9Jdk3I)yZGf^Par^$wyb; -zmZu$WVuM;I$>bUR=Frc7teXPj&s{DyHvK)ulgz8?_U&Z&kx{{h$M4uT1~Y3$6J%DM -z0EY)n%HR8CXz$HH6AoEVL%FC$={oA@i<$!c4$;?N1Q58o=`_6F7eqw1FY1jCzCCIy -zV$E;;urN)Og6X_B0VgH&q!#q!%T|RgAnebj+_f~RmF=~3yHsiyRcB*K!zY8*PHTg6 -z34kd$lx3(m75BGg#6({G-U3hL{8oGkYD?hOk*T?FW*!W`R=~sXm**$93dndY&c8Sr -zTl`X)Rd!b`li+buJTuGKU=-q-2Ao)0DWQTcUx)C=@6HxWTr$v4y}%v~_CuPa4{Ufg -z_o~es=+n(t1ozo>I7qWr1q;VXX>hKenZ9E@2PG%~eLfb~{ZVB4W^=>ro2Mc}zfr+U -z`0vZZe|%6H{#5o}aBMDU=e1`DP=6?&4130)YAj1;yP;J}NNqMR9eV(Di8{nd${`{+&-bF+D -zGFihKLh^44{KKF{!!uk1aa>|T-zWRe28M{TgG?2~dE=O31bbQO&yr@(&}!G*hfzZV<#Qh+%^I(hiS -zL*BN%nEi+`x23bpo@TIe`4Cc$@HX#p-W%H1Nx4jUZ|h#z$ROs%AmGCh7 -z@0IS_M7x^|9awIGZ^p|p(?y-=kf8TO4mTTb;CS#sO+bgvs2}xFG1l{6(j*VPJack&d%|od@ZFHKX;cpQPV`>G4~1Spl6?#Co9dB4JktI&H4!t1f>%rech3Ag?o -zWw3UmlRV@-WSqyYIMy~Ih>K9aTZw5`gi5^}Rx7^!*I-n6%}swLy?qaK@=z*?gh@xY71s~io|Jy}XCUd6R+kz4j7bfL@?)&CyqzFA(J^UJLZ4R#(lH$l2h5X6|EPXN -z+dMf-=$8%kJb~3r*Fv`oA`?U)KB{;U0`&DWABl5YppEEsc@?B+2vqg{7I3xWTc_>| -zztM)}7;B*x{w)$JI7?*=UCunvA_4X70i?UkciE9z8-iW5;OZe8p#+Yo)ZUQgTKK$C@xaBui;nZ6=1DM!$z(4e~Y{m8&ka&#OF;?2_?Z#Dtcns4)u?^$lc(~@E( -zq8ooQ!ZRIZGM!(cg*6oWnL>wuqCd -z!0xK}$5G-;$P0Yh$;g&g{PhHtY?3Nk9!mTP8cR6xkbTWU_u+iK@az{SZfw_)h1%pp -z6p@}8|Gl?1LH{qe7?0Ay48Gme9LHmhXFxogX05bM~7XoPbKa`Ep8XftBH -zyk`BQsK4eIJKd%r``L6cMKhc+>mJu3Qm^2iL-eP~^L8d7jw!f>KP+(WC?jC51iMlnG3>Z2g`_BH;S-Dk(sI -zjsZvV`# -zZ=s(ny-8%TT@!o@-zq5D)(5|H0$@ML<~cGFI`B>-N6QCtP21Go3h;-t>INw@oL7`u -zg9HACAv4(LS5%f!kv8pUn`89%4>hH_Qv<#j0v^VeSd3Do``tJrOQgF~M?HPWVySwVoPtI7*S5t_6DLY)*E}JtTkt3?GDS4U)R8O$<8c -z(_1R{S0<4%iLgP1?l;?i)Fth~jz)kR503eA6lX`mSRp3G!$beee{+xGVTL_wx8p!w -zVQhh21bVkcJ`9fqlUL+<|L9v~?%tX^)wW=8|6pEP2Ys}KI2GbMS(w&x3N-7{(w97p -ze7T6u5lB!uo`GcRZ7g_i1ra-6*k{u}Sgw4{IcZ03R6EpF@?)za9vcNUEDZlvx4Q%O -zQb6gY>pq6K^J;-EL|ql#0A)!%lSOC^w{g_7=TUza@5NZs+S$=71ZH?t|CU?b*ns3w -z{N_=ST?Fs$U;mtmSudEm05^DW606~ODG_7yZ_XR>-p}|40CP5=4KlNW4}TVn3d_?$ -z(&v-h?C!v^DyNy6Abd}c{bJb&{a(|4xE8@QImz1yW%IHbq?|)x4#a=7S=f2CdMGx% -z@Ce1Uu0YuPeLknrvuIZwqwgcUKR1wEmq^G?;eEws&Xty|$)?9Y3-iXa2O(Rh3~*o> -zbNubGVzcCJtvJjIoU+>$;Vx&-ZWt$>m}o5_97*lv!ev}Ki^I7E#c;vqHk^!d(k5{w -zea^w0YNh~NYMLw1**9)8`Sl%Jv9#I}->MqLkmwqupW=x^p`z_~(X6UI41uN1xIClr -zc6}MDpLXxN(7(uKSe2#_bWcA_m-V}V(C~QC8ZtFqmMJN_8EJhU^YWB8d`Ipfrgezwd>W`80gz5dBLNrLEa>`NKyTg7A* -zof)U76yal$g!9|0gTlqhsC4`V=ok=-M-y^qz%PVvo-(~cPD;0TltN6h|@2sCk -ztEc)93BXR)1xMIF%?grr>EN2jVMKvQD&BR?*fBO>QUi3kv0{(H -zLNc-#ni0ysMur^^XV~wi7XEoYlb}^)U}4B!d~f0uv)S_4)CVSS9Yd%&#??x2c-MU> -zt|xv$_l@VXiMYd(7$+q?Ub)RZ!LNglnV%sJXi=NQ_2`=>kJH~oeb%kY8u}EuU1Pc0 -zqv>h)tKl!K5)^XHGp3HPPM=_oH9es8*JHoIjPy};zXdQ^p35{a8(j#WIjErp2J?#~ -zBUVknhF#p;Qe?(uN9}QCKB{af1)Jt$TL!gK{chuwj{u!C5zGapf{4?B66ddEgk(IC -zdQS`=iys=>{zw$49@56Bs)r&DDwo{q+K-`P9TEUG3u<%X1>+}n*nQcAU%CgX{#E0M -ziqQ8ITl6}zG0HkMrgdpifBjqzS-i4qD|-%qz#~l2_Hx#|ex2jE)tMSBQ-p}V=F#Zs -z-V3|#D&FatfSw$O>Pf=TNG0Xeu7C${`U2B34wQtLRoM{_g^fMxhKVrq(W)f8^62}H -zw4#8Cxm_#%*BY%56Po%7_d -z5}E(}5Dns6&9yxw`ZBu`Cdsq$!%RvuRBG+y-Xd<--4&Ati;d!&+Pv|-RWs!ramr== -zk;$9Ye3HM2lYjqV&=-!OrDFl581qH0VVAmcuIPg!{tTT77c>x3C+3BOApQStT6&US -zlUNmlAAO+Y2r? -zO9q1a4(T(u!d}xTHXfc4Sivb4IXqm$jztBv3;Tho=t>K!>&*dI`?o-zw&(c%yWFvf -zg4}oi8bS`zMd6$n-gE^*P+vBw+?l9!x^Yu$;4)&CH&(qs+5&V2P-w$u8x%Sj{Ba#2 -zM`T>;(s@af2F7?b^svbyG^p^oQDL6k0rvh1(Y#UoL61@YELh-k?D1s;=C7(pc+Zd?4Uzn*-k%Z7C?Cd+UP=c=2Q!Tqh_ -z^!;YrFKcixepLb5Yw6^h^ZZ_<2u0mtx_Hkld3}a3|IJ70nYd%dGUKRm6NIr-?R!rL -z%)VhXJejPm%$R$nU54W}cpYg@qOV)x1?O_P4XhE*wJK;zp69EV`N{l#(<6@2mV~=i -zO8<2jfuRp+#X|{QEy(K)vUmh5RmZf${O5Jt4-eO~H?6n{?K)DQ`{V4y!{ehE#f;yA -z{AUrzXtA3|YzkYn;yvYgqjvcYi02Qe0G0?Ey|YtSp!;!erfF>2svfJ4-}@@p6_~LD -zc$@om(B2;bB=+1*49G9h&c%F6Rzpi3dj7qDDeOQzu|RD3j9x`9{!`h`52{Ax30n{O -zpVn_yGiX?!hfuXifV%)e%mH_&Uvun}9J`8vUrZuC)ruPYhZAdzGRo4qgDj1kNqNuV -z(ktyp8ocAaY=cpS#Sfyj9$>5FB~N25KQHW}Rj%Tz!>yH;G~6=M={C+X$iE%i;$zdU7xeYS=ceG!UR5=L$QT@I -z#y#b{_mx3qqidf(z*pimM&gsSxLcpsuCP))z*Kq2aa6xp#fiH5&Hl_3lC@=sn56dP -z|BKaD_T)~;%-_rD*A=|v(X-P-N~$HWSlNek@`KIWl*m%5K|~cbo-L3sxr^G%YDov? -zau3q4xEW>#?7@fxJY@8A9#!vjvfsu%Sxw`4UoKZZ9XPi6Q!CQ_h##GDK -z#&3={PX6OGNE4FQ -zg|wE4p}}}IF{!{A7O3!zxj3Z4kz(@mF?R@g`i*JFQWJhJOu+|+uh_e}*on$53i*5V -zyDw65jY2`>Crk9Fd+9v#o;2b;2%z3ep-iIWa6WO8d_2&rg02!q@B~6LEOBQ^ce-0& -zztqCcEFvbQx54!246ppx^Dl&C3lYb}Fl|Q^t7Awnel&sd=h*q)@<5vD?kfLncx{Ar -zQ}~93p@N-(dNE6gRWLl4jrfWrnqGP_2xl^Ae{BrC+cE4eJe}qZe0bUnwSOKSjLaR& -zMzP&JM^xnd9KB3|o3R=I@2*EB=P2H*l1X -z>pXxY$#T`^VLQ_3XZRQ6Ie(38bBtHP!GnZXC~gOO^3;?raOPv6U6`zyG% -zvGJW_p7otOl}sX4ih}dMK9R<<@{&!UE680JtW5x5z0D1KV!CH>RS$ePw08ynmRrHr -z@zy(`|DH8S*}fxas&bN?|6o3(sQhXEn~o7X$0ZPeUukj^%L)|o -zpNr!tub=Xl_p`#37k6K6Qie!sN#$aH^2v?px}+(ncZB5gOsxW+DIN#d<~#C)X!$9<&CF*cS$4d1o~>3VPE~>){RuP;djLje5~1Ote)?%18X~R -zy5dX3bfTb5!*Ju=`WGcF$>$G+qW4@j=RQk--@~8Se#zhQw)y?1y9x-un}%eoW6&+Mp#;1K2nfujFAdQxtbMC$2HxwRk~Gti)QHScxdWLwz&{h34b35VfX -zR_^;W=_mEKuhTD`w#>6i5S0 -z`#0vvrLfn-X5Z6MmKU_5Nd;Nhi@Qj1YJb{;jXMkXD(b|P{ElPSCn(YV|6-oP^`)fs -z@@lv<(T3xfE!yh)_YF?~uXx}IsA$<8QO$_k;_5e!jbXUN4op69PwSz@kKg{FNs3`i)L&WJNW}N@n6!O|0>kqEY)M3l$7GR_wtOR$6g8|QqA-;CSu3NeT%VoL4@&;ADUbP)wy!nBKy5+Yc_*1JpGH-gV3wOvJh&y7R^zcIYHK#1~( -zvJdMAE1(Y+POa|zNm`yG@bV`%XWd9^@j^}PK|c5Wnt-DsBfSB02iw6#xRr7*TZSm5LL`Zsgx=G6z%hd -zRoV{OPCK7WDX;4GI8xA3>m!dK`We$m2{Ylz4KTj>c67)puUmv0x`8-;3iq&me4mxM -z=GS~IEJsDAomgU!Tg_?}(wjZwau -zsGJl=y~b(DXa_gLT;zdxKZDfCxvTT)?mNc&OBI+FJ$$3zwL!i=rj$@L-Wy`?)&16B -z9gv0t-|Y|;j)-)U8>-WJDY43R_w+7MCv4$9iwEu&v}p~Wy>BiBHAM{MpPqprp?)8O -z1~qG45bL7S?j~GWYGZFdYZZPiMh0)sexSVbZAElF28a^9E}ter=_dAeH!x}NvQX$y -zaPROK>)JfiJT$gS2p7%jx20E!y9lg!t`FV3LWhZ#fZgQ&x4c`*?Bj9bVnieIWeA>t -z!~d>tb|Sw(gNBC5%*_9!Z%f=?bQ$;Zsr*A^7=(j9#MUJ?w_V9f{pZr4JY{I0 -z>w5I(Kt5DM6j}V&k$5dVpfm=Or??omrYHg|^wOKlLn=gXq-qn^B83&&#C=GC9YVRd7@R=ry8CFF$m1C;LOjjDzk8 -z>@wptbGhE-rCc!j1(VS9%=j8^vF#}e8ElweM>>BC->|c2O*|`q1R)IzZrKH|<5s_X -z1M(@@hMLb9@gQrynA5xOcLy8=I}>*$H+M!*S9k`%XyfuF*-57GRu5jjx50TzkTybB -zwgFhqXbt;m-$fz1dE3lfCN*by(6-oDz=hbLzn5>d$BL_NDG{mBI7F2>g+S!F-F=Hf -zAV>QwZ7lrtDuy=5HI?=L|=iA5C{9+!Y4_~RJn_JX;DWN%vh8e`&5HYj- -z5jK&>98`p*>`I_cM!5>S1!1a*tF8%kpz>&tj}zqgO1!&9 -zy+#a3jBJvf*-<;N32q(;wlUa~RGb{CAJgi(P6XaE0L^?dzMf$O{g%$ya!&>#^MOqn -zK&Hc)7Rkt*{+FTWIu7I|nT6Gy)P~bZx6?lH0Cy<$(TUl)$_J~qnNg+irX6dq-yzX} -za`qM%SZ`gf`TCn>q*{N%Qrh#g!XBMCByOQ6fEHR$L%f9nl65ODsa~+bv?22&e3IwN -zMTu?%BGh$X>?GJ{{)$1;;fFf*&C~sKT3X#oI8}yL2XMi8udXi?3+l-aL -zN1u^<@tj@0q^`+Wz;LnlH{ld4flzYN^)Z=eEO#isF;-M4#m)~eaajnG=e5O-M(%y? -z02!wXM|U^5m;$A_-vc$@1hamNAO1PC2m=DaD8Yt+mzZ{vtRl~B)CD`0Kl?;Ru9bD@ -zFS9D{xSSe%8gbi&1;0j85^!4~n2zJDC;S40+B1+_Cv}clCFk-PRN2pL_pj5F@H-*~0OH^GDiHM9mTTPUfaO -z!alC1pTB(ebTG2Jt~|%2XR3$h%DO-+rU>chPH!tx;Kksn{kU>!CG? -zw#G&4pSm!kdv|C@2}jUu1iNWP6 -zZE;i98fA9y{7_2HY?9l&ZCxW*2}%$Xn^0#{ms%Lby6NNbA0f5LT5llglyfHd9q -zAQPTQEm2`A7Erv`NfQu#++V6aQDE_^$}sr_ys{U|r9I{S)Wckm#e?0VNmy)Pkq>^} -zB+$%hVMixKtP6M@=<(Vt^Gt}x_9Q=^L-^>|&Rt3>CUR(#>L{`YPKYSQq~sv-5zi2> -znqsp^qQ!~#nTpYeHHn3Ah*3{HAl*s9(CpMLyIs$-(-lt8y)J`J<8r=(PM7>6@P;2Z -z|0Y^YnJ>ORB*lm|dr$L|CNC>E=OK7&1kncAPoLRV)9wO#!2yQ44*!V^n}nafXhEOJ -zXjHjE^|NtatT7zk0bFAeSLF5{3yQ970mNX(wNLfu3 -zmZJ{95(zi~AEvwFZ5L-olgN+#zj#cC3T7{FHLzNYpZ`Qaf?4v(|1iGh`0ysQ?4t-)flzIFZ1v+Fp6BfEif7|CT2juGM4rPGM45kEc`j=3mDhk}j*G -zHQHyS9YG`^H@s^Srut9YF`bU1qQ-LRttxWNF#7Cxa7AoLy -zulEFMEZdRcpA*+m$Y|i4f%{J`w-l6H_`ptjN1mml7KTQoVu#G&Ahf6ere{81AF>#G9 -zmWC*I*ei`6RA7!=uEg0UpoD@j*CArX@MwO9BVJp2eOU_YGu)1x{oy8&>Mm -zZo73;+(nhME7@jg*5BHHaDZ0@GP5j|1HJ9{V*IdJ^b#lz@+@0hibpA6Cr?4J{;v?G -zuX<9Dfsl5|hG?E2V$|QV1L9^Pt3mm&r7fd-PT?e1aI(s0OMFSh*7mEVvRJ@iz8n7G -z1Z0YID>rk=kdJZmJh5KV1SQXcbD;vgHHk%W?FIRV0Z)!31QNH#M-)ABWXX;4{qW(XP@c2vhVTth{ts~FnbHMrW -z^-4QrQmJ^38ZGL*?t_-U@Qkt4v>!UPHqyipre|vJRykQTAF@HkiVz&gG;<`*Selw6!uEsz4 -zT4!k+Pd(?Tks1hB>sZQ8@m|Fd5{H-#v6A|U6)P@HDny*%R7IA{!{!fX$w8dgW6gfe -zCOV!fgRxVj9p7)j&-JAiFD&7%&1T6^nVm(}vyi!5*NtsjCyFoEP4Y9*hJSp%#AijI -ze)_7~^xx$_Uf+Kq(Kz6Cw8yHOgL(b+@*rlyCv#6Lz8A9q9huBO=07WV&cL(+Z&-@A -zHC$@pUOx0@BU`Lwe=np2w74(4FbY{IK)*?~N;#QmFtjFADl%_ia{X@2u>U7`T -zDaC_*ob~ljP$Q -z+(`#K)Sbo~R{G9`zWdZQASKjDN^ -zJ&ye_30gM~a%2x;WpcQe19t4FX17~3742H4 -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 -zjVApx>Y#3N7Aj^#*Zy-MOa{V!C -z^QlaHIo8tXw1zj*2*9?$qPr#Q!fQA3Z=I5mWnSu6*v~Hd -zI#Hkn9pjnRpM}&C_FH!thyr%RE%K*!k9+=^`E(S!~-6%2T6q@=e#GFyc6;u -zh%g|7lom5j{z8tNfi4{ro>}EsJf)-#WRZM%Z9!H2`79`Wdmw#6jVrxh5-Fj^o22FK -ze&LsU`)c3@cJkG7$-sW5{6W6>?F^5z&t@O)C~f;@SI-T@ZLZO%N9MaU!0s71m%sA* -zoMq+uX!I -zP9)J#5MYWl&+>j8>8;eu7!)^*!32jo!PTZpSmt03Y9u`8%jFnlL -zN+;Q5Y`dbfd5#`Bbfkiz4g3U8rA8nex3Gx(a~wV`%Y-$E|bstSux_* -zDFQk-k{pAK(e9MO&JSma+S0r)T?txftxO35FO9PeGluVx89vO;n!t$;Wz66_Vd~2s -zFo8iVTU=_?muIAP?6Mwh+21%MzWpC8f0UqpvtW-1zG%3;Y1E3e4s& -zEADElI46}J)qei}+oRA2FY|ub=sg%GD@W)%^*&*9R+{J*oCygmXx?@Fb7hDhJ$#q| -zV64E^!!P^bebx8Lu2QJQ{joF%{OrCs{+jB}CxcfGhyo>u!D66iOqvwWI)X2=q5n%o -z!Fp#)7NWN6K&IVZ)9H2)8NUri)}(!A*VQxK2yckJ58mic-3gaJa8%WRgVE=@!>Lde -z7G$wi)JZxuDP8(riOsGR(ji} -z4S%WJ;mx$q-DR6}TplPwkL?~1g-B70VI1YeZWL$n)^0Ix-pyDS{Z5}{EtAXbA(Hh% -zu$d3PL}?aY*!IVW1shM2y4=FJ}lTl!OWzQsveuyud18cZG++-9w$tRJU3uw$mQIC`dfpF%oG -zT(3|3?2dpkY}UEaDQ5WD5>;}yLeNgr_VYwqUu`{)k-shWwfv~LK%(Y -z@$<3`Hytk0tj=m~U*r1JLr&9zyBAiKV!m*1lwb&uYR1O~eN(Hi-DwP*)Y7s7`h#oE -zv*4U&&>G)Om5zlodc<*VjffsDez4lHytw3}OIMZFPzb!q -zZe+>1c!r7%uQ#;{TAk0cq)EoyC%M*|n02aOqEV_PY`ZsJ=JKxI1(ihHi}HZov+zOG -z`{kv+#AyDa7Bo4!dI$~^pTFC&KtJo7IA##IX3c|q@PpCz0pnhK(IRT~7iEKsgXCq< -zEXWcibC?QCO*8J1NBRz+&Fz8SA+61*o*;fjX=!6METN{Obf@}Zm*`{&AR4N?RYX*_ -z7OvcSX+2QGpIo13W)8XDFki>uXv_elh{t#0iHd);xlggu7&r0+d9;3gOm~)|kO|x8 -zvKtqHQ<<9QE)6#|P%q4S4!!}C52UD*u|ye~f{F#S+sgnhpv9;aXr6mbWkgzsc&R&O -z4DXB!_}*73-$ak|nZ&>K+lDVq+Gcs}jy6I*A9Oxh1GMal_>%1V(-lZP{fHS;C%$Mu -zYu|y~!h#)89Gu)cihUE-IKH3TRbU+<2~*|*JkDRZR@~5C%d~WE+Lyuo%*RU?^mbvXaUj=bykGaoc7J;D(sj9eNVpp486phCv2viaBQLjeR|4C -z5UR -z&|m$g<`U}1@Fuv^?7s**IFR^NzmiM6&9Pta`JelZFQF2#n-)?+_vVI_qO2_E#ruv2 -zPOU|D&A(+99*^EPJHB5Sv))6xa>jeMsFRT6)F -zWd1K4)$a@={Y)(QB=?vy(b;iSc+|qcgnUUJk7q5}+z8GRJpaWDot$8(?>teJutv2Q -z(h_DKnYHEyG@$o%TE`tQA9U2?bvN}*;z?pFX!6Drz}XL2wIFwDOEv7+ -zBt1AcTPjtexSrLo9=up8UhyzFh1Neg6JN9-)Se+c0bDy!`*qN*s3$t{c_+FB -zC$v5L-5Kx6S@N8iwe%uE`RPfW -z=wd_@k9Py(=oX4Q-|73ui15j0A9>VDk(svK`r_78rz8QM@qGZm*$B-Y$og&h%}VAx -z^k--R6wGyXIZ8;Dl317tHjXW+nm7S2?~T9g@z=VxQbMoxz6S*#(xUOj#+d#^3M_oE -zN(C+}m;Oh|n-^;<0h`Yv^qX&D+LA7XeOxW7af)2Y -zSC7H=)`(8k!#hR;-XtMOKf}uD#P-fZ4JG;6e`coF>>eE?zPICv@t{dm24kFn`Puv6 -zo5#W7rd1^lZBzR}&rfMj+Mc_0fm&0-SCoSAJ(Oa!V8I|@LkGsT5cM2;Q9w^r^tn=( -z)o=T-`lA`-eG=jf0La?ZE%X^%3=DabGj(Q*-+FfWqTRll_#NA65W%8MCHnaDv;DxA -za|6Fa@z_lMUN&PN!(r(lmoPp_zb{i`1K(>9cjJ`6btaiA-1Rr;%pN0MekW8ut5y>_ -z)E`=^-^2eXyp-3Y-tHL -z25@27AeT65-WRfb6&C!cja5>&uhnX%OFK$^3x}$L0SDb9B1!FGoS!&DXkib`*eU7n -zi_*R?wJg0-aY}CTK-ePeA^Pf0m=xBQ^~1Yvw=SaEH~_5 -z|N5?6wCOFm!Cg%=f86J`%4pEC!vdqcgh2({9OWSdrypKyuO-5$rfKzn@OZ?y+P~h@RlbP8y`B*X^|5X?HE%s -zJgzjTe(haYhH(6KBzf;Yx`LprF$C`~CD5IztCP)%hJ6|!zx`P8wtP28Lxq%NR5(KYV*!|Gq~e{!hNZKSLa5pY!Ooy2X|FOaE7(_sNr$zc@( -zz`^3W9t@`oZsyLuFteTDQVnNw3lGTbi8Eii=0a=6v-LLfUZMLcq*s|I4@cd<1Rr(& -z`K4wojHCW+?H7fp_PooqvF}Qy+mkljNG(l7Hb+;y5#_UoqGYn}G}uw&jF!fS*KvdQ -zbf+`bh3{q}(M14u_c^diA>>?Siw~;Ur_hs=o%1bY`_|{wX@c2u%epI5l8ymiG_&0_ -z|HRS<6uY0Ty;3tS;%13=5KI<<1g%`xt;2~QPA?(tfxpPr^tk@^ThZ@0z9ny-f5J-Z -zs9u901N^a4;zS-xtlJ+VsUwg|80wp*3hAP7J_?QbP56if{SuK&hkI``#`HLUdZI0K -z(Y@b!HY@az?=GcA?E5!lm!za>c!C%E+vde*>hwXAdgO{RxjTaIXA^*)0CSMo}0O_Q``9dc$M=1-GWeOdc;I}_-N<8rU#_G!``8}f)sh#qK3m* -z6&z$BqeBH+iwknif4xYn&~QI*m2d!C11bpBMt9|ycTt#&EZ4APw!hxC!^Byn0BzQM=mqyadR#;fP>hG<{L-EJNORub;MbMyXk2<7 -zZh^-XU)wx*)6CFyY5p=r01n(k3&-d89;^KbQA=UnSyv(RPyL@zq`$eCN1QCuvy0)h -z^-kqm|0_U9*h{O%@qA%4=)>@!%{)v>8MsRC_x5e-3}~xI42KxIOl-z~gh*pHk6&*h -zsZ2U5u%ZEgW8t$Bt4ktwo!rlP$sjOaL2&FW@i4)At2cdYrXPaHx@nF4Db9f2t{U_s -zZsrHaX|%*~FOo!PiaS13oQ%?~J1)%5PQX)Bk$319g6d|hjTbF=-_Xdp1`hbFUCYzO -zB0SPH8|#h&%{2_(4=TtQLB4=(jV}8M{9nf)2xivFcPbXQTOr3b+~2 -zH=D<^-(0hHpuZ5-Uu#QVS1l@qYyA$THApO$M%)UVre9Q6lx133KH(0(^RRa!fuwSY -zD9z6>IlzC6VC^^Nb9|PbQ=aeXwqa4^7;SO#p(n!RrNl+2G`&#p;Rp=*mf6#nWH?`S -z_U4N>eaQfJS$Q_eIDdpO8}2|2jnvUkjKfJ56Su3rVdOz&?2NXyBRk>8tsqK -z_Luo2d(yUR?;pY7Zz)|8bc>DdMzY7-^ffvpEO820LCQ1q&_~Y44MQUHImzeJ#Def~ -zn2r-8DS&_IW8&1j-)XYkORj7|GkG$EayPV4bK7p11NWg`3aG`dw+by6dt2P=>?{O% -z<1F;Hxsyb`hi6X&mr!gI&WrBjeI;U8bIak$pJ?R&7(oR}#kPtkJ?<&b@BR&vLly7N -zs<4iNDD_?%z*)LA#oxS9tfZvQ)28AnG2*aa*=E!)(bm97sAvt^B8>5G(HkSOV#31W -zs3JhQeD(Q<`Za8AnTQ5e$Y0H~UZK?jKw=@oL`%sH^H*8NnaVZ0fez=J(8CL~b)rGB8&`|%RvC41MetNRR -z3wIl)XJwXe%J~*eLD*x`gBs?+G9dkMN%Dud#4xg{!b#!CS`%=&0`ASZ?^rSNmQt_HQ>9w6lq*HrF>X{KqinFgX?L?KHxBveV -z^)~S7^2PQVM>X3$q{&}Pd6X0+#V6mpA4nWuz6Fjw*bO5<-lHk!d2Gw1$=zExbTeC% -zvAvbv?tvqkcU_C3M*G?n_Q0B-dZiqfOl^&@p1rRt&J{TfVrTn9xiyJsI~+^WJb#J) -zn1wLGxCMW8x5Q5rduPiA}Z-^2jUMWSq~f -z13g25;0Xw1+=5E(%9U;RZ5$5BE1~xMVQO)W{oqD2S6xq%_s8G*gQ?CwSxp~>&|>%{ -z%n&OhEi0e!1BLN;D|(!NZsa?d7`3(!DR_+Nqu`q$5h7tch%Rs6vp;>$Mg~fL7vbk=K%CI=pPEww;V9>ff -z)IC_i -zu2c?VgPk*g+Y?7h()(kg_R@#euSyNtsDqHyw}I=94bUZM8k -z^T};npqVhl%cKobwoXKA6)5(77;yN=xhXY{^#W*2ZPxYCbIqYX{9wQ=-BCn3az_Py -zGV|(!a>ITeM#K6PC4>3QnCK5#h}lni?L(=DY_T_`ssEaomx{b`6 -zy^N7w88um4-ht2oU`W-Kib+wOx^*SW#`bK)mU`hd<7UmAz$e)9Pc61i;^qQzujbfX -zPBSwn`XVz$@kxTYlq1%cJ}M|SNPmDejg~}G`lt9vhjvm~v^bSm)(=?&%RBcr1vf*= -zfleWG)1Vnz_HO5pWY7qf>ObROo(hh%Jz1U|eDJaY%}1$iopK=F5;gfzh5IH@0Y?l3M(Im_33_8siRR8&IHels)&>R13Mw_VOQ`_WkXq=ul^Q?#B;D5@xjouwE%Z_cYeMhvG53*|OTRxI4pU5HHwFV6AbH5kDSn -zHsu}hZs(=bYR)u0yCpNxy0K|xfS9{!COBp3>Um^;Au2nB8tp!ep8PVTj6q~ldW=7it^<@aG~SEq#C%Xh -zSJ+2*6N}XLmy@(uMpmqH5k#4R0*wa*`^$bVZxQ-Pgx&ykM( -z;LBmnzs~p6&lg)FDo0oQW|-UV299R`i>x0=b(ZpS;z=53VU@~t{eAK8)@GEU6gEGr -zQ6-o=8J=(JDN9z=h% -z!>6o6HUpm$Q0r#E!{@3?*4yDMa3xne1K}!9{`subq11)=rvO$W!XNHenngUM8d^cQ -z2(_1#%H}Utyw8RG*gQ$Na@ubs3u*I;7yL}m5sGy4fWwuQBdMgj&|8!hVmx}PewQXO -zF2M?1ek*6$da8hf*k%@*IZs>D1u2B-F+h=Bl+7>hX$*)cP}nxeQy*9C*^Us{zrYYK -zdP6=IL~Ak@Y!90t=MJQ5vG2Dt#nxP|PYq&4Srmtk61n1C)HxjBD%joGSgq=Ac{(J9 -zni$Px$XKF}Y(D2%Wb35G=kJ-LKOzt(Ghre@*xRpLTOcG$t*5N9+*MH1eZm4?%3)N1l?Z7m7KJV!4EoF<$MdXF3_^DIfsa2A>XlU>7ZWUrMulj7gi -z{gQpTtqxc<25`1XYcQp%V=WSA2PKi-R{danR?B{Uz5a0h7?(iV2VuR8GrcbeY3=cR -zDcemwdTCkESf -zh$>RKw^l=mJ0hrw&1+TKjyXMksE_`^$FUa4|0CR-^|9*Sq68R>)^oy7SmDW_?aI=h -zZ-VwErKZ2}42;EM^1AGHxt8@M+U+1j3px1}EEI%oCnkDwN>5SUTBYu3p11u1E?gg6@Hg$tXR$JO(Ifvy -z{cdqhR9Ak-c$2>0%h5)v8GC -zvEV(}qmNRgkKrYi1*K`GXbg*IVcIAS)S5QCw67S6FHh8bL)(XaYp>a0&-(kTj%0@N -zgP~VkT_p)tMcZ+R^%Y06)`V|4E^!(C!B#tAKd_Zp#Y%#Y*=Nt{QE36ouz2?%F0m5= -zj`$Msj182eFirhXjI|532TDcN8^m}KTgNXo@OYpN&zl?5o$3cZb+ -zY!UY0J19cWyEUO*Kv+=>9Jv))2CIxVug*6P*Wgt>z{AHGpv6lacVTCnX8&H`tqIz3 -z)@JWuYIZQmhyQprbSq9FBx^t@!e9xUV>L#ql(dBg_PJP+o*RQnrltO9YwguStH!x| -zG6G3f+$l8UBd88Hk;}jRp}VE>5r&N|w|FRwQ}d>7Ir6n>_z;W!*M(n{n8hqvzl#38 -zwYi4Ng4*eXY)$*NF}|1MONu^WNZ+e&0Kp*oR*En3O0MV>xLZ>{fYxjdT3KyosI*zw -zOB`?01ljx!VJ6W4$@0sic_&8E?5}L>=|to2eb;knp46wq4SeEptY@a|&sB6PI(j|)s31~5eq -z3NUGye1_^gIJ&W!7uyW8&C;h5)hg0m;FTUN_eB^2&rtn+PG$c{j=;ZO{v -zafR^8|DFyE#6J50tgo$I7|h_;+8Nc9rg}pNLsP~f9b~NAo^31dR44Crx;(KLXs3P*Txv!Xe={U$v0q*AUNPSo%Jby`%5;9!O^T|l#OcPFiBHO8Or2@9 -z%BMSlP`_*LLBeA$Otpg-nvD*>0U)JHM*=IZ5j%zViOgP~)9*PlMUDL@>1nNw~O!F^@Q5$*jcfS*vUjr{Ye7K>q~_@v-yJV5^(vPi^o$DVZiq? -zJcCO#>GHin>^|Yj9?#VP_ceakxryMj8=r=$2@ePbWnhM(hB806i;lxfGF!PP(5X>% -zr&(d6W*-wB(~rC0q;?Jsc*iMuR_<&vLTG*&Ks6b1oGh2N*1yWgN*YY`qo;V`aUTYu -z2%Ds;S3XfMTTpO4-_O2&h#%-Ui1?H=nH>=C^Qs;(7r2QLYd??hW)zf7IBHKlTF0D_ -za+T6u&`^KksTF9r!IwuK?P0D-5wdM?{lw(e2kdsrcYLBMZf1U25iyQa_r?Dd;G9KT -zCiIlD6;k+(ikl~Y(~E>Q-~Hhos+!v>$M1YIfRpl~?;A?c86uDl>TYvUnn7bvsTeLAyt#={iOX$3oImf#;WH -z!qb9SR1|bWp})QTBxQNQH6*#fPmUjE74n!VZ -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 -zUFA@0y}2GIM$g+h9%r0`tM -z=HDphQ0bME3*ue7yH&d38W2Q;R=AI*v8--)v3-f>VMC$KL6>jNLkx-R)Ry+kY4vT+ -z{GkIv^N(RZ9#Y`7qGo3wK}LpVy8UpHh0b5efo}7>YjW{jt_#x&suT0&CjlPZ#%p(E -z3$99UT&lr!GK_=T=^xq&*5CrTXq1QO)|$ikdg!g*&J7qDk%-(I2TKb!gizKiy&PHN -zjUaK%@_Mw|=0!pnHNV)4EKG604G -zZC~OC%)c0Wz8h-PM8;g+MB&-uYMEMIVo3jB5+BZ}bC8qw#7~yH!0A}@)u*R&zud%V -zUpuLAN`^fz9()RzPeLgX*r*9a6+#x%Ssg5xOQt3JgQmjaGgXs5tE`^?SHGh39)o4h -z;(;Sm4b4pKACqYSliS|=Sw^V5JhzvilgAG(GauIiQ*iMLytP_$3T|>+L967<*5S<|JNx^;X~-3Sy{hI}vHs -z9(VNlI6kMpECQ`y=i1zRC{<5QbybQ{?R?;qhrl{QmD5eyz}ZQ^p5F&2SOKyEBe3Iz -zw*v}&yz-wmLPOGkj7jP}H?&}^{g5fXPiYP4lmL&^U6Ak>bfhEXxGrvVR_@}$k>T9! -z2Kjqx4Smq@t`hjgHj+WFFS8)LnXInL%I!?^t3T6^neN<6syQ8@J=8^IxBw3o5F -zr~z<%<2+x$dv+%nUgywbij4_&?NN@NC%bRtD#afR-x{ -z^BVe)$rK3Ch?J$qNC!z*Nkfb_LdwinR+5$$wU*}09%bAC6o!D-k5h)_+itmMr=4lN -zzU7oZva@UeoB*FDE7izLG$DMI_?;bm{6^zMbot^FA|5eO9blXv`e0QJ_4+yNSU!05 -zX()Nqali20jA8;m$(?C{FETTjl!;g7gsL({>E&9bm4S9J1WS$ttWS(Cjgbx%PhvVE -zLSeXN4kQyL#-C`6ZjZIuLo#fcPmJ;AW<#5oWcEbO^Veg1k{lwjH9zx@@JNb8D&XNk -ziP=6Tj4VmJJ?fqO19uG>;~ms=t4=VYG9%5V~^gZepN9YybXhueiK+vZP7WMjf;%VfC3%cspH8IyGo|6v#UFKlO; -zd|P+aJxP*@KXNS`$F*J5f_45f+?Q-@V|kHVRcz-^+O29YMuhRy6-6t}^%1^O7ZQMs -zq|Bld;oX}y_y1$iOie8VX5zuG5}8m%L=hHY&YNO6e_#H5Wbgy^j$)a49ih3a4Vd)V -zB9=p6xT(qpr%#Y%;ZLB0;OT4J0g0FoAs5)w?SK!59nCd8Q~yFe5)d8T!y|RiuK5!0 -z5HNzfk+yY;VtC$$zKf$k{|w=4*u9n|S|`ma$vU4J_0pU2=J1Uf(g(0MjZRx;?cM-O -z-H{Z7Ye_*)X6aNB3V}6ZkXT3H -zQn)_FqcaY0LgLie#lIsd(33^3+HcrbZ&YnDa7zB0Vyt`~V!i|j7y$B5?~`uoKG3bJ -z9tj<*hE!2xX5;(lppol7iTog=-j1=x|N6!>nbr8VTe5o6=4OGF2S~BDe6hvRqT(Ze -z5OENoSC!Ewhk?Ei7$UAP;(-EhVA8!FTR*_=*Wl7h^D@JUqRUH5GU#R!p#hAUa4WPk -zUi4V50gT!$)Ayefh>wb}Gt`QHa3bF8D$+^8x4yD|MD+pMyro@~@ga=fy7x1tBJzXy -z;}`Q{PcWq8Qm4MO$^POKKb(`6GQM=t%EPsOCAfqyRMUU$0I(x)Z+!5@(UgaxxX@sZ -za1l>arn-^W(k)Zm*;5fDg_^EYZ1jNlkI)?vQ#JZc)%w&Zo$?;>G!m0VyYr?01!Q=h87H$X{o$d~!()YGe196wA)^g0dXnBS5} -zocn*V+eNavKLF&jAP?Ygc46YvI%oxoqqps&J6#Jc=addp;cMltizl@m$$O&LHG#hh -zN0C|3!L3ZiSk~tKz0dZx1wqjUomWm9vMArA5xQ2JE>w2YG+w2T>lOTf#E{n-rG9y` -z1%dQr_QKO^3vsN06q#dzkQF;jhFvYo19#Lwq4q4GH!P-M`Ybl)?nO5Gp5|Cwqt4}W -zR7c*^1QxvW$r>3}2>7tG3Tquegr!+(%RS@T@%=aKrZ(=@y36)Tek;8Zev>6UU?Ds% -zX7@Th4V~L*5pY=eL{i9;a_(xIVJmrbK=Srp-Tf|LFES|k? -zLfIUi77Ie*MxGOUe93@CfT)eHJ8H4B6B|h1IFV_wv)4Ua!bvX1H%0`PoYcl~n}ht% -zTkk+`OWi_%J`O-W>%IH6#lDsoiIUh!BbBW;Y;27w1U>V<0-Hi5r|(+86v?|x?)XzJ -zvL0$b*QWI!#TJ43CgahC#rxCRjEA?Y?m82z_RRej?G)4g9DTlQOi`Wi;_*xDVVk6s -z#%T#wkThwPtU2Y~(+JE0Z&V|X3gGbi=Ms=q$7u<3r*0~ul -zNIAW{a0_9$2ioC||LTBQB&S4!{Z~UoR-0^Na6?=N(do~C&*d+a%q$rL14IqeH~|Lw -zXIrYobhDkwP>5n5E2=F~i6n9?LeSpw?9SLt{%te;7Ag}r%b2;v -zJ~JI)Zr#76>#r!+e*;#pN6q^6;Zdd-K>zzT50#jid5zOiE- -zja|#T{&L*&AnnsgL)2n1=N=^U3UF`feAOaHU^&AX`AQBqt~GI~UpCD0U0mO+QK^0Y -z%N@7nl+1qyAZPaCuNgaftPATtq>(ncGRiHc9Yo&)9af(wrdD-mj>EH(P`n3tGpSyM -zXiDf|$p -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 -zmFwyRS?|B`K){F|xR9P7Zts)+Zd#(%`crB6~e -z<1GSQSbIFH<0;o)r3ufPDjv;De}+eQ9?m_TsTeUM_=$cxBb*hd -zaVpg`R!({rc$!IaO;KnfaVFGGaA_%CCt7_qk%+Z;YT#9BP`@iPz -z#t`VVeI-fJ=!II6T%i8EcHo||Lf6QaaDzp9rdJ^Z#6UBD>j9E&0>4=E?17WV4Y-7; -zM*~`ZtmJx@yWd$G$KuUOZG&OnK(0ouJu1F2WTmXOv!}pUnS|Nf+`M4na`U9&2!o#M -zCZBUU6qnS;V!p4H)+-R)Gm1-c#a)j;D>JLKi~z}O08#k{=69>pQ=j|8lbi>ea<5m_ -zWf>ub;)dSL?>e+;@Z9DR=lk5jE}dA0FSAb!5e%l0gs*`vrPQj}lTl!z5qbe;J1YUU -zUJ)@h&m!I}*#AV5;r@Tp6-&$Rr9}ec!rqJ{8KVLD|G5teU1XiDaS+j2!Ps|r -z?E@ezd*tA|o*U2mq=t)UcT~*MK74YlfhqQQ6BE;m~2a?=d>~Ckrp}lZ&}R -zb<}O{qs{Zv6d;{{ -zCum(ni?>P59v(Iya+tLrq{=P3)dXILG`|2z@)yRV87>z4FCz#(iMpMWziXFl{!#}v -zcSGGL4r;cGWQy8*YOEv72O3DsUMw2Y@I~z+z9vMt5~RN!eY9c$q(F;U9A>$E&yF3l -zxJEeG+*CRt(Ij4CL*n!kS!gXdlMaKzc!c8z+y0QG@m|_B*s5N*{l1ikDat=?Y0O-Cb#EHl{< -zY*XRc=pMN`Kxcs(U+4Stcd8}|WR-&(IS9lHtrud>_f3jbw)#M$6qq97^xZwNqs4a4 -zl+*n>AyNyNTH2TaGQphLo2DI_F*p^JUae0YkP45)*|YZx#Z`%zoW3-y!Q@;lLPSwQ -z8U1;f*PPGr&7;azFT5bKSlhlk-`wZai;vQ;4v&0W8fZ`wVOH0tI3+Tto4|RH2D=9g -zoG9L|7~m21*-D(gzmY~i=A-yWhU@nis+&{BYTJ@-e<4y1x$wLa0;`u)nX9M#7vwBd -zzA`v3QonZ@8iv6xd5V(X*>t$Pw3rvl1Fi~Guyh#6UbU;J$hn!gJl}Ea6gOpVMh;Jf -zlTOe7o{e&CG-EJC4Nsy3On5wTIDbQ#E&<0h3Cx{&;F -z+_!1EV6gb%a>d9wXy_{q?Te$i%{R~yo2OYFuf)Al>^2!U>ojy5n|ieh)Cr#e&Y3qK -z-E?>^(=qtYrt~F#x&JX4*Y(a`1MJZU>5FNT+;UGcp*Py~Ar-}&aPeBDGxQb3Eg!R4 -zWcuv2#!EeUbQ70|^#2Bkl{|#*CebH`T@7|b{<+_yPN08YU(TrYlMRQF(U^F1s!K<{ -zKSJ2Zo9c2>QkqAsX{-(ks+|aTc9U|+xs`*xMP!Tlclp{#j$-UHFVJ;XjcFb$^MEQ7 -zv@E$Nn)bzV99SMWn3Uq;4F;TJugHAKr}$U%beXC_lA`5jfwnRECqyBi%Kq7z?z?5X -zndF=x6*IbW-Jh2Ouo9p(y6{ImFuRPh%k<+wc@gih;72biz8>xXFUIuzm^yEW8?}AA -z;#l4g2^&Yu2ZG@7Tfu+@yO+f^U?xVYY&R8UXb3*OK_R!*WWht0BHsT -zXInd%2~VefXerpebqAYnSC*({fV-;~#>b1I_%&BTz`ptoy>PPRL;4=ymSN=3cWRIFQdA -zFfPDjf)Kvr2vKx|L}s*u_RL0DQxiS5?BDtjC3GSskCJYA-uV^_FFhne5M{n?PYI -zJUIyT;?)X76yWLbp6>Ny5qO$O@b!qLNGgK$?l@#WS+gNwr5GlYtMVQG`_EV!wdf6A -zjJwVK4^~_PibHlXY)<|b&fPbJk!-(Wi`tDnt+4uYCv>GlijiVsEb&Ua#nEmBvP$M| -zgX)&P!gNQDJmW50{a2OCxKn?LUiA`C4EErwWb!m9{4Pg6qAW7^GMN%Ixy5>c&-f^R -z@O3aSQZgpa$&kWf2B)0B0$rQD@BI=XQM>vzH-H-4;vLtmNZuu+^Ed_7IJ(Fv4-){= -z(Vwya@5AVWpozx3^7ejBzw^N@8lpal6s$%WB?HMLSdI5yGEqNQeMi?7+SJ{2JJ^wmAb{c>2{F%hD75R3Yi(gAUd$LtAy<(#y -zi29pgWnlqmT6zGS5hV70-)z+M2ozl#zm~HtouLj;&Z(lr;hc!e=_JsFWZ>7MMx4&W -z1FYgjlP|aJ=TVuP#9RErk;>WEFL=n3kk=-0a=s -z^%Bf;1ir8ds{Y2HoyAI8a-v`V4^e`4XgT>f69N2DCBk$Va{Y*T;cZ@z4 -zzV2zDV426}1&I{DFv-{S&W|bh;)Jw251}*xRr+3;H-@o;3OYRVL#%^%86<=9U4QYvh#12OrEy{q&{RNr&fb -z)xK_SU|U9Rf+hjw#S89JysuRza9~b`1yKaVZRw9wk6p}f!BB|^8B=vzk<@=TNh3Sp -z6hB2kbEqFyulAieXbghpcteQqLcW;&H?HCx&{mbPZKdYZp^lCVPeR -zzjjGIWsd%MED7ZeE_A+8~^%z)?|0TQ>H4VO2 -zW|%947KdH;-9RSS4mLeMZvKz05y_J;~BW79qeNnv$Xg24`3UPJB}%i4cmN -z-64(ZRgD9aoHGqnVe5}T6bob&3ysQu2h@oXyMD~8+JMXkX$LW3bLvX|Fw{Wam;sq| -zdY{tL!oK#u6x3j$hCf!HS7_zw#~sQ4LBU1-N{p7g*_6sTFFo{CTZ?2)Q7L|l9luS*re|4A|f0Yn3ih+I-%!ssqk{x4%l|&9hE*#hc*k}M7 -zzJ=863L>84)=|VQ;p-sb3yhF--af^ -zXb`b|F9+io8jwfsCIG|p5nwAIe@y;f!Q`_Neim6Oenp|(&n{DHopz{mwrhgA`?vXBPf4D(+Vv~dECo-_V0v?a9^Ib%Y<9CX$q -z@IV!DKQEoO+)ANnJ}@LClUWlFVLpu}rti^weL7W-)MvmhHd1RQgOUSW89% -zCd`WrO7fc&vJPs8#KW#Bt#H -zhw_M4h@FwPulHU~QK}JaWAl0yQ|dwr8+3S0{gE$lO$Te^1#s})@sm;Bgbn6W;4GVh -zCnc02;}uF*+^1go=RRse&)*$+&z4Bfrd1n95&Tb81QMEIi^t5XM)Hta3CV^Fw!F+U -zR=wuRVXEI#312bdU3>JY05GN646`RGba;P{m$HlI;rA@^+)1jy|7pJ9{~IhHRp_h# -z8(xa`5b;z_adEFay@19*8N8cEg!Z& -zaX3LRNpT~^JL6YZ`it&sw|@gn$KoX{vL0O@9`Rh%OC#%nCIR2^^0l)l?sinx8`#cH -z&O%R4DhNcr=RN_-7Q|7Cw@s`8okRao1zj-H_>b4-E90OJ(7?AZAgC?_9TCna{EO)* -z-4f>K`D~OwMGQX;JJQ -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 -z#(R8g7))u`dn@9@=E7z&dE8+$ -zF6~M3Iubbpn6lEIoRiHcj50fK&PwzfcQ&q>{sq5(AIYTR2qTzTg^bmjZF^3-au5N% -zmV_UBja@I+hK@BShd#TM7%e--A_VW@UdV19npf{g@}?3gJ+>q4!DAFZ@&yiFOgXQH -zPnf{&Q}^snMfq0)$`nokrb5Q0R>#dV{%!#PABhd`>g&6_dqT(KGt4*{ox+T_!-6eT -z_hHr1uGus$Q7wv^DXxW)Y3ivD0?Vg1G4-X*t1_V(}LRlajDj#ULbmH18aG8{AVAmUo{(cy{a${ -zeyYK*)=P@r=KX0rzK=Fio^;YFDsGZQwBeUi&m$2JwZ$yNhus*$f_PZM&Gi_q_apMj -zgViY4^9>SXyb>&O!vb+*3v|;2-T=OyqlwHvJpFnEVh;w!h~;023u|oX*p^Mto&*bZ -zSvpP|TA>PA0EZ?18^_$>^0#HRez5YCJ+{1#6)WsfqX-5xl6gmjTgaS!A_RRhut|Z;8E`{Il?%nG -z@n&N@_#E5fZSr-5oyGeuHyv1Qz$tq=K~%`1jW;-7vkAwZIfU_Lh7*;t-a9kx5yB3j -zE9_hv6gy;)-`Ws4c$}`MHnSvjRvsqdc10;4CILz_fN{;g?y0|$pQW@I$VSc65oNXIv}B}CP@VgDo19B}fG>jJ*K8zMr$%*$`U7$QkEW{(sH$ngB1m^imy~pO -zgLI?PozmUiol190NJ)o;ba!`mr@(i(_x*m}d-m+vnVp@TnP+x3W=55NRZXyo6iGlp -z4q59HNayP1lDt5XQ#b@J;yNh4J6K6((Aspl3kLHS&k3A6#oW7LP)*VejlA*Ahp -zQ@PgFe0{Ys%$STL{N=l3HH+tLb73bj$Pvp{J2%Sebo%&|q74Q{fYg!L$1))>l>t$3#W+kp3 -zwSVkO{yi<{#1a}&VIfooc5q~h=WwoQLPuTsabEmz986@H+mg$wM( -z`M&jEa#LKI#!`$&B2nvD++ViRCQ;RYe>96%y{NrYKr3o%tRaFsL(NSqsMiIOhN$Eo -z*VJFa>rWTT)z10Od9U^=nSv&Owg8*7aK?D?9ZW$@Nm;$5swF3if?{sf~#CGCm) -zGaYc7ZrhX%jwK>fB9EHC)w#)=zA-QY!PNuaPoStHut6_9@S#0~xDSX25<*84m`NbG -zawS$*(r;>vg9w-=75p4lW74p3ep< -zs)!m6wNd1$mOqbZ6e~rOp&T4XR)0x1Wix39uG9cB6aa_V`OQrN -z+_M4LR~>n924@{HG+wu!d@+ozV<15WPXFKbm<|-A_Ol?(xvMgF9K5_1yJxo-`ZJR^ -zNZfdqR*}S-iqXizZ6qc$hA@Po$+%bIbO=hy3Z17YT){;YW!mXfAYUOF?(iI6#vMRO0RNN-aX(npuO89DZTg0G-AOMaP(J4|yy0D9rLR%)Y#qBLN6S`!G!RZ8UE_zSfvz5qr*>u*O|v{-Z!} -ztPkq$$$#fluR_F$~~$Vxc_#MHza%t!R+FF>X#yn_y@|1Wd$l#m?l#G#tltG -z4&Aw6CM7xeg4nEfbKXuw%<27=h$v>{ls=0Fe7=qHYG<~DlR3v=cAX)Q$uu>X#7$>~q%s(=m)V(>fBc?)YmIYl%y0rg7)ZydkFSL{drG*X(?Fob -z;s*c*9ifKZR29|Kp|c_D8)lFnLGAsN`slwJ;y8l-At1X!lc0~Dl(4&)Na!^e0oWM4 -zKZOwQspq8C`ihGx^Li$n~3Ie+kdj@&&U(I -z)H_UyHMpzJwY}4}$RB#GodJYMxbxbU9=@gQ`OeH?Z1i?j7nBnxW1SN$js0h>i!49b -zhPa8th0=;#vz^VjM8-TMTK?%HjB#$Ruz9_72Qa?Vj0eUE-1;PvfKm|MKjw3E9^aQ_ -zzAibKk`AX&Y2d8Pz?bmc9d@mYX31CT0mrO6Y68hOlstHD#IBh}ML)TH@nM4%NqwDl -z<0y@$2SlmZc%I!oL%xFybGZNYJAU?eAYkwOT?*q1z0VThvd962^~~Yg7%+DTS`(ao -zUaOb_{IPyQv{yPm+>J+7PsUnSjV&`tQYerR6q7aqy|J96syjj3rn?Iz=8HcnrhlJm -zYd~b60OtF~Z2k3~-G?5JgKpH61utQYXMg -zIH7L9k)wJir`Zl*-8;SwU3|yk(vl%nm9pg|6`^lTE2`(*VHYelbwMxR9fdC$1#XI! -zGt%@B*tLZ82bC5JMxz6x64nYU}OQz*_;dejb -z2;?JlKOt~GiKm@7YSaWd7ujtOS6#oApP-3!9m}#GtZWGRVyJ&wq` -zmN=P$sU>)3h!u|eXuogSROy`~R{zIS!=(Or!HnS68@8rxav-d)&Xq|V@KPV|n8vco1h4bP -z_(;-UC8%qeLQ`n$(UCj-zci6KX6i{^#N~59w}1n7tPRw#TkU`Ox9*YpSIa>ukA(BH -z!bA<%Yr{?!|7_%ZHU@~3>Mdrs{mO5xcCCR_4?wdFJaAm9qx0@=ymp&iV*PhkS-qCGH}8A3Y}u7#ZZ11zxB9VEAvYz{dVWBv -zTU?ZUbEj@ZB8fG|IX_+NIg`h*@)VIHhs>e-X8@=p%U@}& -z_Kr>ay9RQrm% -z1|`R+1S6U$n$2L?U&p7~Y^%)p&+FskKrBylRTzR0m2F}~NHIQE@;CYU-j^wrhSs1Q -z1;<(iN+3t>d6)%B^=_U-hZ2)Eb#kq&OD32UyC$_%J0!NT6VKloV75jf&EkVTH5213 -ze~@2Kt)4&qEI$QCDn`-k)wRXt-}p+4{4^EfSAfW$+U#SWDQ3O*Dv6=)$X@W3D#lKE -z2=>$w>t{19Np}Urtw=9qp(V^`5@XxQ9SRf^UkRrt-O^oa{@>YkKhI;UVmE;>xhGD>PO*0MC3xFqjAe8)Ak9de$ -z@OC@6D`i^duN`Oa71ESRII}VC6UtWs72qJWG=&lJp2a@q=4G$Z9d}rl=$T?Z{{*N2 -z>kR@pga^8R_H9R!c{$Kc)8yuXGg%mg)tcWWqbd`q -z>b8hM{hDe36jo8a6QChU`6DLWAKB9^kfb@vi4)$}P0g0`hCwfD+;gWW^5t -z3<{Au(xy|}x{Y;RP%D;VmuJ|vd@ux4V?@Kh!Ttu*FL?MbQ2~*=rra^w9S;I%e)i0b -zW$FIcj^IGMtMTx-Q!L$NN-(3`vC5L7Qz&Zz1ov}`_Ry=;EMA8er -zBsM(DHt8RtNL-uC2LK`jatHulGl_KoBk7CdVBLy&mK3C^aAkwBm0~p*CDAM-qozKH -z?lMl6=qhO)c|@S`8TU*g3A3y5IYJy6!KZ<#pA4(_KR7SY6$Zan)=9i0 -z+X*h*sryeDee}J?_KSavLPZ|{@P|Q)Y~*3sQF<0)xnh2(eNUVyvS|?(^X!R0(De^u -z=NKfu!S>pU$0TJcqK&fb!MZEZUn{UsPGgIoiRdPQE`ZY^8OCJp{-aa3>gy;e=p^Eo -z7n;=GhoWpYpjf<;c4Q^BOA74*Dr0MZIZA(EUC1XO;Q&|`P_@Q)9HB(lbM9r-Pvn_; -zKRRU7+ymg~9cI;OK>1ZbHlw^g1!+N@J>C13-}FT0-K6urZ~cWJr2ujNIKf-44{iHHP#`x?E3VIrHv8oh`qK0O0F8r}ho&~SIJCY86%_zu75 -z=G7qXgb?nWA2Ft)SvQlS+inw*IK7wkOZW`?d||lF7x;|M9X)(C49ns30zRy?4x{>-!%g=8L3uXv6yd -zAmH?xn0bOmI!>;7n!)$yN02{+78A<)Bl*jk@f-9AJSFzNGk#Ov>~0cAMMG-~ICo&5 -z1#Vo+b&R!hB)g!X|A60WM9^}|l|S4%T}^mb$xoDar~&^1I>&YHAzY%Qu0n^RsBojU -zJz3lQ1t4jN?{@90s`OyNv9%isGyA!XLZHKbsr7jfPPH{Z8y%+lErHS|x}6S5RZ(Ud>BBrTlOmG_mW1GxD-?BFrG73? -z<0CW@tA&6|U9@YBW4w^`Ew8Q!y@aza{2m3lgRq-3FsiHe8>BSfcqo4?Pra711!~Zp -zPOB93;y@t~PR9}53WM{~?rtK(71fkt3=Ctij%|(-N3V!M=^3G`HeMRNo*g`IzE?Gu -z74be`zh27$#MYDPR1$Fq2|4`@QMlWQ{(n`lnw(h-)-qKx73y4Kf%U833V@Zl8EJUokKseQ&t@RI9)uroNtU8}bFk)4%K#FlS#s -z_3t^-9*%~5wdwFBfDJ#EC;z|f9-A+0O1-tH{FGYSS}iOS($l4M=wEN>-9$NGjRU@Z--s^qe^52 -zmlKJp`v22s<@LRcyYRW*1b~qZ>z4q5lKPg~_i&{FlZ5H?7Z&7LTeFv1}2qKiu-X$ZRUX -zBGv|QN+1IaC}RITrQLAHa>pZH(K)GH!obZkb9@?5=D?-)<>kGraih>x-iaBpr=yHp -zCDvB0n1ZWNztswDuBi8k>)^NY6e-V1)pY&$=@qMaKw5kCU_7-EV_22IRO#(j{#7}A -z=zqPXs_@Z$yhZ6sJBCPd=i)sR>8ld~zRTU5e@`Mek -zc%9B(klv&6qwv*R{a1R>P=q_SYOmPxTBS0~COu>=H4pU*2&>MeG5amS-W+SqWj*TV -z`~0p}JexeP4!DCyvhKgJ@wl|bxUh|yHz(E^R+q%kn6CVnJ`BLrZ0JYp8J*W~n%Wi~ -zM4O`3`c5F#v!Hp}WF%pM)a!I9S)4dD`Gh1GX$3yLm)n|~Q${`i_@0<_m2rld#au<1 -zhj@as6qLnxE_2P6;}eP&!pFvQ_b~I*IZ=5zE&GLP5EDKRXQ0~y5$B@Vc@tlP)$I#! -za2>d~wmxi>P3LV~YTrY0^Lx|P14}iam<7NMg?a&Ly>Tb;lw86fHfck~lr+S`@MoL< -zB(Z}fDEE+JZZD99HK=FzA0fQk1CuV#$J(EcGXSOz)LC=N-sSoBe>0}p{ -z;siqf1;$Od1qKYdz79{ndtU;Ef5RipSWo#ss|-3~pgax??2ym4I-*4q@xOnnXZDM? -zw)nM||L*s_EQ&uRhK7ILwm*`#q-uK^Yg?J85OTY5N>lM`R+6r}^u|urc+N8`st1=L -zt!}$>4ffOytCz-j&LNA^g`3Ldsb}lX45P-F&$pEKSXesazLvWwll?p>%q^6I8d$rbkjO`!@k{LqDT!DM#yBswao6Y{bI|Vz{+4|!ROm@`&tY}Txo=Qr -zV`rgLsEzP&N|%8CtF3j4tG$KYB7IhVeY_vgQI*%En$oTW*Yw*W4w5lT-VgyCn=?PV -zbemNWzSYRK_s!NMWZw;;2Z>-P#dsIWT-HNf%OgDagzr=#BS1^SYcm-Z9q!UmQ}#~0 -z6v>&vE&#wwiSbWnKCyjl=wqrBhbu!r;NCw@x#C;!uwfY|(d^fGW@66zHe93Q`|@ZP -zy7Ss*{hwt9r>Y!%8K74(*$zzk!Pidk{VGnZcO79H!5y2`qE3%TrgBYh`r&@@LVhA$ -zNBH;qT3h=kSO|kK=6^3#{A6r#T1;HOPD*w5e2)*p-y+4S^FY1fMKgh9so*g{|l^Lp~RHw)Ofl{Wk-XtLk;%RdsPbm0dfslbfv|f#$dG|#-dTK;S-;}#eH|Zjz(#VCwbz0=z(IE( -z9?MNg-LVle`r4bBP)qi}>A4H>uQMiH3&_SBtM@qwOd49kNG4i5_}2X17Z(leHvb6pRXBd?~6Y{Zr~NKA_jkb6d|31 -z-o9RdjzOP3{`QE7#ocl-d85N$q0=|p@a7|^@}Wwu2>Ts5I#gr+T6E9U98@6IWMxj8|9}mSC3^Y{1wJTRBR8zMtlI -z?r4hf^8lG5P+!7|hjTsTUX`1O(wsqym}x=q2RCX|cPaE+N(-@RVI#1SK`=yK`&~95 -z`k6AT>V9#Hg@#}Ytv*3JCeywJIw^-xddnv9*8=wfIhde8M@YfVq$elG&gHL!X1~N| -zJk()^t>3=B8dD4;bP~_?tXn_c%YPHCL-6(={R9i$+JL%@MQjC{tI9nLLQ -zp(270DtYqbf#KpO4;Ea-6Z9d6Z)d)OxaQC75~9fA6&|%XqqI8u#31dlW4Ry)^FU-a -ztLt&8(J#S{hl*r>LLJn^%uYPgY1PV@L)nU_*e~IPhdL9IG{`e;RbqOAir)tGscvMQ+5FL8~BDxX+>^zCay*P^3E -zQ=)07HJKdi(0XY0^zQIyjh#|}XhDMJ7md~(?%hXX2x=R*zYJXeOqnv?&?N6M8CG3th!N1_*&_hL5(O4#+L`g(?=@!Ub5B*@&L(|Le0aj`tvY<%@8V{ -z`>CvZXka1YA%)(FW#9 -zkTAdJ-y^MhtgX2Z@xpPfRbRv3F;cw>doJ9xz1oh0^8JB*R>TOBgXDW$liCW-BL`ON -zhLT^6O;1<<^jNt;W2!vgrd-&O?Pj_? -z98eH{HWvy!n@R4}M52Vqf2(=A8~aP&ExEewi%uhSr)n(u?Hy3k<@y>tZn8FaGr9Hc -zo&-2`OIj6}^u=Xm(!vzm&QVzDpoIS6+gAyRf`;NJ(I*@(DUiewYidqj8GF}XM&qnm -z+Xqo^GuK->CnDJD4kC@&kOppBxuQG|>%rSJ+r~TMZ|%8Hgetboc>C^R!YjXFG29gs -z7|xS-;RJURXbA7l%T}#7)de5*W^3lhk4uwYb%p-gzfd8#kHEJVmn19y63DeL?(F%K -zPi@saXYzx2*v$RF;X3RspAfI?W4mgUGX&kpeZ#I7&0=q}69OJ{pp~eA=8-vHt3S(( -zb8J@)yKt|CJ5m}A&-LD)Kx(L~T;2v7-a8^*Xn7{Me=yk~{f8KR!i?W!_A< -z*sauAADdTy5BuAjR|Nlql}2F3&hrKA@rPHv3YCfWjwtEr1_~RU(~k{fZe&EHV$|T$ -z9#)78O6)|(3nUg~XK{3gcz*WE&gWIm>hOXiN|>s7!grV43sSH1$z^?~PS3i*K^eNN -zQWSZ*DiX*r(ek`50DcPV<6?NpqA-~dU2`X{w&ay-+d&6 -z?nhYtL!`~V!9H~T;hx2(HsN)yJMs&imv3wZJKk#aQp}|gKE$gyvAF(COQ-!-BNKy^ -z`-HHyBFcH{&J5xgY%Z5DuBp`h5asl&Jj`xp%XU5@;iWSHy9y#cV -zZaE7vwbhv4*~uU&!mMmC>wV))f~b-QsSeC^I{!_@Q==IsYe+(R+!JryLMRMM3J66T16{u6h*1+`~( -zp|zSCg0&B#Du_CNHE{xX5%-q_0L2I}?U8$cOVr`*)y9u%>&dBZ>h2Jvc958({f5@V -zijr}3j49;m=UQ8GXT0a|jQDG0#RS7q3tXuAI)+NWm=m7N;YEy~D<-2Jp2P>2qk)iT -z&y4Li3ik#Z1R0db#7>twt)RhF@&ApsU7@0e`pa+*!D;WnZCRh_Gq5;$b{_`rD~@Y- -zMM8TelZjYV;juD?r%H3a7?nwmpl}bl4ZLOh?TdFCOo(2F+d;Gz~5mavei~Y&{NI-{qI(Qv-nb`zyNtWSb1=K9sIr`L6ids#pww0 -z+`9JCy4!c_95Fd#$I+Y@5~WK(w*l*pVANgB!H&73p~ie}l|}1$SpaNp>R?~@S~r>@`^P#*HyhOmO0wz$tVVK{M;})cl0|-5jUs2$Mr$0k-{^^@FA$vbVkbL -zj6PPl7$$-f7-a+2F*c>)0=^5dK8kY;not+CzO*z_>KZxj`y|o*1i8T<{PcoR&Cc>69^8jsCSKdHf6pF<&R{_A3Pvkh-!b5I6HeRH -zJ?M99Vgy6TlUy_%>-Vg88Q_7`Ss>NGjs@v5Wf~c;i+Om^sf{Mjt=C4LIi=RC%?TKA -zp1Jzbg{IiV`sjCDLxHVW@H4YojFh16#o4%=!#2^H(h|9r;A-b&IZ_opva|Rp0zf+~ -zu>^IN*_^~B8ho^Wol8bW(HrkYsItlw+d!RJRwR&)D#jTkA`=b8;vvXcg0ioiuR6Us -zze!6lNA;YtU?Xv+N-*7ccU39-t#*EU=g`u!|4uT=BLIJsxVlI`QOJoyg^c3TzB-1% -zqo$_j7@7!v(!6W5JLT$XVv|o6z4*Xrz}d@EE#>&ZcBq$>=xP7o?(qu5xaWtFE}6Ga -zfBT_QleC;RnU7R&#;*uYGOvv_f9P-t?$T1e#5M)Bq0Ox3-26(GRW7H*9fP@ -zSXdABvnEAL>w3JxC2aj=X}$3}%jS+|^zQ8*ncqQ+TS_9PN`XLV -z`p38fwh_z84^^+Knv@H5U2C^Bg(v5Trle){QEqpn+V4WsD=o2VvA6=8M0>i#UR)eM -z!o1F6yjLVz6Mz9GT*U-?)kdV0(~!Q6C>b=b%oxr$f=9FwalL>fzRrO9$&(T<`Spq` -z4ZU#?ijAwkGN?^RK{GAW%tlnt&E3m6{$A(pXX7Xj4D$ZLhrA59sQvdJoRsLxY1bD$ -zu{MTo?7MCQUOPF78S|5|V$$y@`b>-g+;I26CjnZC|7>|HXgq6DH)!IH%p;e=;b3Dr -zIYCB9xA$~XO&h_9*iK4_jlYz_rgvXC6RvhT<(CDWR5Ear6_e_agnr5wYMVy>?~4J$ -zjx{kL-RHVROph-xUbyIWxAULjN4$uUWfnGJA5yd#Xp;fsoxtgt#2eBS<2eN~wdVMh -zvd~X^p>^Dim|co%!)ZqQ3-AdWsZ5`Klh1-$aQR$II`Z_i`mlpXesnV)_gGBfVZaQ0v&lz$bDQ1u~H(yT8m_r{5!Wr@~k7>aiO -zutuEXV}dh&<2oQA0rFrxf>E-G9H!E0?cD3r5`>bik)RfwaW=bWJPAM<0nE@Oh}_!E7^Qz5g;N+abWg0?ClS -z-K=PolDXI0QUqpEkt_d2?>PZ4Mgb!7y2oUG2(J0c^?w_}oTvx~ubDQ+Bf-BBEg~?l -z6$%4<61!=*((KcvmXw)30CnCrWWhvezfX6#66c0D3{b*raqFnKWwxJG`fKL>f*4Sr -z^w9=ny@oyow|{c-N6STdr=*}-e1=h3aMpNGny^MDqilbv<-ybu? -z*4K#SxVH1JmU2ygc$ES&O9eS*@wEx_YLxbP8PoXJIYh(3(0SsjzF0J&#k{7o!T!Ca -ziCi|U&(*la<#V&H0Md}bSgIL+bJR2RSog0PGn%&$kSWUn#j>nzzgDUdXw5Vyh5xXE?iUh&LJ=uYCCKY;%~Df6j9=U%+N -zWVlO-U=}VUsTS{bi)397%N1Fg8}#=BwGu0{^!>ag5om)A-EHamhtRTBQhLwhY#v@N -z_#b(*H<*kEbk-3}`^&vP{{AjRB{XA=9T3R|rxQ}*dxkd>ff94$@K6851Q)Nt+}u-sn`Ef#$wUfhXY&l5b#SjxS;$mwymsRm -z-%Z%30Ix?o5(P>gFI{q2B^dK7Ipl{(L+|oE~H4VXISb$kQpX4fK9K)j{QYGszPBNg}qE -zwA-dtmQ7dii=&4-$cUAc3grIW1-U03!@4BDv@Y>QR|Q=UzKdy8(BV>m4m_dF$8g+V -znNfVcHvb@Oq#$wTJ3OVu*8vm%4ifW^IK-i(gtZhM$w_?n;3Bt&G|^oq__1Z|%UUU8 -z2_EUA{Kfc2xW5BqqUMc?mh7)l{AU@E@w<^%dzgn#_)hUx0_^QhwVMe;J9yM$v&o|y -zB$?==52CW?yT=YHTOdY}UH`Qx+_Dt3osJ!2G7Ne -zi3FtjNfAdDqnR;qycE`Z?M0xx0t35s)`BM4&omSP2n7 -z;m7rhqGVnQCNS*Ce0TVfz%m)E7?eX~uH}B@Ernq{HN0a9Z>#*W_xD-$EB-UxeX%^G -z!B^MsI2iRs0X60)f>w7~4$>x|phpN*YD8Dp0o)9M6=i}|>n~+?;C~=wqfY((7;>X@ -z)IdBvkMUd7TNg&Y5f1J&n_a+f<3WP8R#-g3`(sCDcjK0_Xa$GVf3x?%hIk5G`_SF( -zKgux)`eyE44AI6lO)LFQ!&A$0Q42HV$%RoWFj{k=t*e{tmGEdz4uTv3xd8&Z#BI69 -zVpxrIo!ehoAaW}GtS2k!Nod#>=E=m%dtWMGBr>w4zUdwk)GpIC{3g8otQHkpTytdY -z2oJm-V3OFowsQ2-)t2BSRAu|T-ffJ3*vVwra|{ZC^|dhYUKQAUqCo6Dh<-cAY!OG -zDBh%Xy>7HYe#KxaG}jQ5+3YBkBUE@)pe-mP@PLm5n=ZSD6hP0$K)KUk?`kSHaDu9B -zVl0~LcA~6k{KHeV2*S^V6Z$W_H?(4HxbJfx2MsgvKCx3(jKuB_n!h4(w3agOm%N51 -zfCDN(M9g&!kFj2=j`CYP5@lIl^V^wv5EUs3iNA3k -z07`*CZecPP -zekr3U8&%+7rTdEOp<~inb`#rcmq0^g)7Ji90UQXuU1eW@v2gRXy<{c_odeHzNdCij~e#)C<#H=pwu&|Js! -zi5F{NLoXgMiNDWFmIsc(=JGvjIug=k#^1E&*JM7Lxxh_HXFnjq^2C{@Kvbnebtl?8 -z%Fz1#q_w(K!u;4BJ-&@z`%a^FJz^o+k$2vbRhuX$B0LaZh#^Ipwlg5y -zVXEkFcTd#w0DGGwdhtq{sS3-Dj_|8ifB%cyQbG4V6T3rV-SH90?gjxrjk(tiUbq_; -z^Sjk4v~$J;dmG}bUxBytax=i_xKEI;6Hb$h$U&#`cG~^Y(tB2f(Q4Ysk{+Bi2>jw6r5U<4GVp6y?QzT>`3eU0Dvfg~Pk -z)>%FED&n_KO;~&*5nFlgNTGWZ=QvI|6!e1MkqLMAK%TNZi&kKO*= -zbc)_6YGczF6#)LjA!{xjfl -zPg@8P)KM8Vm&q{{D=5z~_X10boqr~WgW*``_Q>p61N!z_=_!jM -zp35(a9+5?opjNR?;ys#n`gf3qH(Uxy4uFo$fEEjzt-<9Qq?fZMPGZqBm}#K5?!8Ay -zGY7ouA_%lQGkF_{0sP-yh6l+~?;vHzG`6A`6pwK)r)JT_2L7^*8Y^{SrPo5TuuxV`v8O@S*LHi-OOGg8Ou}Ixk%t%S`-|ragZqokH-CYE`^OCP38R|JDtr8f~ -zFN4Dh-*LRyPq4dX=k3KNZUVfm4B1I$ZyJ|vd@fdWJk6*giM(>-j!0F1*UU|m2Wu?p -z-8h%|+D;xaw}Ft#@=nE>7aMN&$QhA&X=;OyC`U!Qr)}xK7M)D()*g~`+V7!%kNK)~ -ze8}aU|Ni8I+{M$#jlP@IfrC`-ctin4QG)n$vaE}-NaJWbg1Zj`(MgjpEbdRG%KIz< -zfo&hgALyW#7jpFp!eFOibHeL=u~ -z$%T`ITmwx!!vKEJ{k>L%X^V7y5vf{)?q6w}J9tv+)Z3JwOwlYh1Esm -zNl`q%)G?ndf5>LcKVUx;zcb+gt&!vq{GSjt&t~SPH2)&;yAIhqf?wwWz=N2uG-jg& -zOyl3_aQ51##WG1F_{h86>3c{!FGtyN;)4WxUJCjYY?(>NqPRp6Ia&}9r1r&N1bBQVgB`%n -z2>k2HYOe)V*bN{PDQsJb$G1;Z27qw>>!{}73K*2=9q9DW$kv;BSU=h)-s1#viu4Ol_C`J$*D5^W@%QZQnKAAFqdLhwx -zV6`M+`pJAYq#OKxN3|0dcAVf2>Yw+9l;`LZEYz|bExZG9^uh;G^@VOp)*@LKXS=|3 -z7C;BO<`$fNGo8g@CAK*9sNVz#dq6;fJ)I~uy%^jQJFuOhvFpFR%UHVtlia{yEQ9YY -zPZs9(3+AP`k!l2>3NWT@S+?B^MTxwndsZ`wNj+ooVC|mvryCz%Js@D66eV&du-Z50 -zL--Bze?;5iASc~EJ|-V4864j(O{@nG+V01myE!YIQ`2xo7LhgBS#+j&FOIpK)U|9{ -zGieF~l^);R{kAKySAoBK2PBN$y;JLE;cDwN`aDX5$23XRUM31(UhP0Jm2@M4uxBXj -zi{POv=h)N0#~RBpbG3P2BteG4Qt~OVuEX%UR0S$ajR^eXd?dJLf8PeEuo8$k*|;(8 -z*lxEWtheH)=26D}e+!6ri`%pEfSv({p>#2g2rOPRzl)%JGV$1P?&+8rb$)tO7ZvEc -zfXz-#DAA{c&_bjyq(VqWJJu3~ht5iQNBsMq<3oG)&s6rWf74u$K&Gl#r3i{$;fCc$ -z?F|{jLs6dbUZy)skX0SN;(V=fBI@D)WEW*|LCBEaK_N$;jGEmiT>cEmn9WreX4`0?VssO;WG-Rhq75qt_ -zw?~&DtqReesgX#xuQQ=`^9TK(8xvA6)Bmx-%_FtpfTlcFB+n9S0m*Z=iw;}GFy8&q -zwX}e>9%QY`p6FWqyGbfP^Wf-PGS~A^D>Dh%LEp5g?%4(AAAt57s6ukIJ+pHc6SWPZ -z9pt^k%WUS0_<&%Y!`ic;?kgq_1VS?5dHgjHt@FeeCl^ihS!H8;=U3cU$%F#V%9ra# -zU+A#^nS8Q&AxT6I9DT2p!O+E7{>l>Ah_B(TL}xlNdJ`&yLT-c|!!+6|Rv*nZ3M-K3! -z9d86#Z=c5jiZh_06ezcLqL9VBQw(SpJ^Be1^unQ91r5=OwZ*-j2*Kh-QT1mVF*J5G -z)b=7Cqjqmy{|l5{du-fa@+qp#6X{Rpz|a7(II=iF#zm#%O$%50R-JsxS)J(s3_>1~ -zEEe5_cVS8yIxH!Yfy5D0g~)rnM*sC4z(rixUh6uw|JhR^>=@1eK7n8?#4&diu^nV> -z#C`ROldwkL#2nv-a#TD519qup$8$zh>J!7Rn3g2NrsZqfr7pYz2MxTQNQnvqjUQ-^ -zJF750{Ih}$y*{kF^7-t*+5GA4^x=*lLP&96pZ#EdHapwZ5=#wMdSeQDOrd}H_2^x3 -z4SI3K1jl$wRhRmzf_d~vW1MPC&&*}mV%&~0hq$7cI|LAqb~+F%QIS!*9uC`!iEuL^ -z%}A^`XOgHPSRU@*N{9McQHxZ%@+11Ix!?j7_8i@pM59E1&X~o?-E{O>sqAlQG)D34 -zLm$#qXf$nk&x1_!9QzgzV#^gTew-aJO8cA6%4EAQ^Hn%yUW=1+mLT^i2T#mh9l96J -zBcYqUbILUc3YMSQuR19o8>fT`lpSiv|Cp!Q^C;Fm_Bs9iw+wN+{n -z<7WJ3EZ+}b;MTp4pMWMN{ZNEBQLh2O9VUH+;Cgt2Y*1ZM*j*y3I^uAYdv}QHS@}KB -z_=hW -zM!@%$A{2Np6%rU)`yxThcKkrh@ehoW9$ANZVR9Jv4R=k4&-2`qtV92rt35Kfq@Cql4ldq3Hz<-lneK9 -z`!ThL4&&!AfwE(pln%RKIV6$fgk?diLXDBrAN6H-huAC)HDnbCJ5BlaktND{?>nTINKz{Ia?6cA5y)vbo)Dk{h%BHA_J=LjdFmEdTXWq7 -zKZnjAV^bV37h-yOE$+lNm9qx(>bwS;fe4LUe5SaaB6_+!w>7Cx;tB7yN9Yi%? -z%QEUdQ_$uvw}o`K*Qh_D{X! -z^z9@N0taRZNZ!HfAxwZ>WRaMSAiuJ*M_>0!S_AV{Nt$T@E!Dy|#1oTn^kJo^vou!f -zrmD^R1Q@oN(0euwbNy`150$?Sn{uOTdVgGd0C_3^ObYDe#{B#Vu=DLJ@YpQFoq_PC -zUh>}R4%REi1y&%tgbeFjT=Nn&?l!k0nVJTe_0a8k34v1iJ+(>T%qKA_ -zzaPGH72$Tz`@XOaQxZ3hn_Z`%DfpvnQ{^ej&ZW&GOXq>_oS;XOHmtt6(~I^1tYM3d -zC7|zF-@Ac059;@@(`);nw7!o>u>V#8Kb;hRZmUKhP&jlZPgCT;da2;&_^wnSm^O;v -zTJi>j?&w7QgPb9C#DOs;b`KS_FmWY#fbWmZb;}yBtAm+cX -z@hL8^ST-QUXGR9P7r`6q>kxS>X*4!os<~>qG~|Zv*CZ;op>CPz2 -z4stX8Ap7+BGUZ^!V@k^@E077(a`NUCZLv7H#=b_Bg|m|l$jMk{e&m}#nVm7J-CK4M -zWc(=GY2R>NObZlapgMAik?v%!e5NGo<+kdC6(!4w%7DkZ;=~As2K44G4C^ -z=_%o}HSP{I`VckmsJUyY>rIPCgv#uFeM_Fs#6a{mY&oZk!svW3!y;4|7oc8&w(6a8 -zX>=2HFP^7kbeVT?y8%gz{hf*Yecnol;{@5Px1yT^4Y|vrG5$<`p3bDUpc2Sm?$q0~ -ztc-rU&=NRsK!Z?JmQu-_yweM^G}-Y`wRYA|^&v1=Nz735M#p| -zY6}lCAIcd%5YuN4Qtg(Z1%t_`LP>~hUjil}4VY^YepONd85ph^>gOE(@!i)30E$rr -zLCWdb<~}g4ZGFf4Le2BA_RTM8Sew@#P#Qq&nWcqEZ!^Cw*m$zi*nd85LT@qXtGQVc -z#|;Aeok8Er(tjdh(9(8=I#`anB9$*#xUKj{Z^&3Ah2Jhg>~2Q;>#8dVn0e&>hHH?D -z<{xFCGiiPO@7pUJ40z;Hl$5vyarb!^-ht$zPK|=ZHUS0@l5oxnV=W3)09Xg8HdMt_ -zLdtmb>}6l~UX!nv895iB>mDFMqqr{suK11GGa&L#*kotGVPD9iN+*wW0%Ns6?RK@OEz*`W-Li{tcf40z$ot79zy -zD*PR~`+1r%Zs&d}l|nVZbi6*HX-oqD832<3i}~?vP@TA3G3BQco)p}D4D?rom8NFo -z&?wMcI>+(Ka)iL`^^%TsChxJOzaiWru!6n10H;q0y8T@GG*c01G1u!QiC?0TAP$6z!hFf9E2`{rQ6Hba>JI^& -zMW}3|2srubLvA39Ck>hVX1UQZ64TY-=chRG;f%7b{y-5_A?M@I0efzs+<@`epSbcI -z?!3UxGOQZO>n)wKf_+>wl=eeam?8Ea$r5}ua2ZR@RQg$o4W -zY6Dp$*|~)nXi-wj2!1N=3StZaEmBhHAv^f+{n(ioO1@u1lK7kyGr{X-a$byO62u -z{KxbfQoJ3`?R-NTNU7=(TZy3Bd3@}%yD(I2xs3~ISn2thlO2*34)B}ZvTw}O8KB`tNlvgVDTCp}jMxA4IwR-$6V~RiOt2LGx}r}BCEw|qaFWOmb13-``W&@qjp -z=B-q8sF^l8lPw4BjO@GOR+s|{MJt@ho~Akb6q?br5?@3vv38Q3x -z>N0lfpooN(F-X}5`a)zY`qQJ_mUZd}#qXRkRby5scGb*VR&J6Eq;h@lUL<8s&0%@Z -zoud&~NjBJwmW*9u -z)I&s>-HWaz!pn$KoHDIFwVqr(kS6kE#-LyWcjdyN!X$1sOPr`1iCL&|`;ZqyfcnZg -zAS(ObC4@`G_J1^8Wmr^Q7nP9iPU%LZyQLZWMMAn$y1PR{Lb_X!MvxZi?(S}+8~H9X -ze*buenRCuPvCrOnt+ns|?H&HIo#a|nfUT+LCJ;+h?+q-_F^rsEHq*vC3v61BMQ+#Sl5ni5hg%VU%clw`D; -zxs1jkS8pybZ!68j2_si0zA;1XO_NTX!<=-rmIM=y-*r=C*PvWZ`ykQkUDiZ7eMzz6 -z>(|Vu{^?sp@B%tt&JWV$L!Yf^l&AX>GZu9E(B%0!ljkD79199^e=w0CEX1j_6ZVqR -z1K%NNN_EtDB-|tG`8R+edWtVZT#J7>aG7 -z1ge8?foi1dI6@m~%75-Se~7x?gG_ROcy8eMg&zah!sK%JO|*iouY)tDamy4=R72yf -zR5y-f;7rUqtB~#&kTa%n(4q^<3JJd>3Q|haZE9Z~Ya2oF?H*Ix3 -zEI9`3-ZHH3+*;9Sx2Y?A+JEz}7 -znojm4PK*=9QvW3Lg5SFUP6DFZI;m9p{^zXvSS)177g@SE%y6`bL&d}{#`vsIGV_%$ -z`)#KSid1gl%c+QiH>P8|p&aI~Ex=IpS#@#wlkFACI!M`C;AeeKUzQWF< -zv`fAoXEPNDWhRY#?917qT7_@|HoD>j%wCu4!ok|90NKG<`BHPMy~6IV%`;?~khp3? -zurWL0b;Db<_lQy%`N?GvTAV^Lp8Wp&U4`0UCb}PZ;MIfFom%MWck1V-S`^{pIi|e$ -zW$s)402=~u-6d4npPly$GWVS{>O=3B6mC3T+yo%>HuvEZ|E!2e$A}CUKXf~y6N+VM -zAH9l$(gOUCzYl@fN~1DuEdJBI##c^ -z1@cdmCzY|nJ^$N0dHW#RXt$Up2-;4R(}Cpk)<8)H`>setZS(G+aa|uztDT1IsSplU -zchlX>flcTz5EC!q$$RGIQ{b|46lHaBzZb_5!q_zk0Wd~8@Uq8BjQeGR!EYeFXq4NC -zS{$}p-*K*+k3I_&&-K!0Cih2P -zo{)o3*wSISt6$~cu0k54f+=xQp&kZd1@sNO->L{kpFF@dZ>0I;PPu9cZDa0Jqm~ID -z2ytz~2;T$E0#CXDYAklJ-`eQXs=WmLmzReyEpR|v?i`;wOoAe6E4SbBkKiXQ2kmv> -zsJ+9Xa=AuUxO&g;=L|q8`B2pf&j>L~Y8CRucslP)7`r?k#r^6! -zrm+Y+w_hx2AyizUGcLfmY0YiEN%n0FDNd##jd_?tTo17#o-} -zzV9^P(vwYV)ubCHccoN;&VX=GN58$E4aECBHwr1Ub8n~nVugERP3_GGI0^clG`Lvd -ztfKZTAiD`D+e%8u&D5jGG`=n5>bP(R%Qv{xwausDc1+o(REDTRo=AbgfCj2?Z#I&| -z-bCLfd;X_K`Q~3n*WhPO7O>A!Fyhr5P^nt$MACAxXUyRXp(`lKpTS%_SgNk?qks80-tEv= -zdS~Sm^z55Khye7W`$@X{Io(5?yc4=`3tuL<2D-X87Il{0s~rln*p -za@8Q2#-l5PhCTPZDihMx^8qD4fMJ -zL9B6ex+zkFtfES&nvw_Y=hG{Qv*?j`EO3-+dgFXoTj!N^lz&$JTjdD~;u1T5v4f#C -zz);%6MXL1GIa~apW0+UNbZA!Ub!qfZEtn@bo)>lOt0Oty>&Ufr+%Kqg1wi&d@B^*e -z%0qX$G3^OG)$cQPrStJ0SDxV3dTwkv2j)+t95IaP5!|02V#N*c#kej5Bx#pmp(Jn) -zB>g5z^);#wX5HrQ6~>O7?@TsI8`cel=d%ER(L%IJ_1#`;RaUgdQTKa&`mD{^veV<1 -z=CqS6$gs~P1`(CgJr24;l`8x06-Q^PLI$a?$CZ@8Pu#UW%|YO`bh;|S;~kH+C?X7@ -z8?wIZ@&yKy?vL;Q%&U&L?t1i6H*k9Al_hSwKFO{GY)bp9$VrscZi@!U}r@EvG -zu)@_%_s3I;bs=c{P?rfK{q##(K<+7)N7NkgzwKdpv0x)16>UonT-3at!LK)$VWU&g -z8r+kMEi}q58Q%;{1U?&9pgPBi{#X%Yq4m7bZ06rxQ9h#O-pCevO`2pd{PTR8aTFuIt5VoA#^2Rd=}+1>j>F+IRkG9_gv&naR&9>H$c?RzM^t4G$}HW6OW2Fys&c -zZ*G4QWl8qq9N~#oI{gFmG-DH7U5tPlqiKE!S$aU=QZBBle3+fZM4G?j?9DK$GF^a` -zA}txxBS;33ecp_pzyFj(0iZCiC-5qG=MAEcDMG7zT=bn1?n(8fYilz(4t#kl5_}|1 -zO!57;jbZX^N4 -zNu^K<=v6ukv;o8g;DMVn;!8BwR12So4$DYNq3VM;^vnB(iHwaH;A5{0cgg|-+`v2% -zN|&|y7!TU{#hmjV&ULr)1h5$m7W+&Eg#Hc`pI?9Dw|=UHB!o(hP=1KZpYwWs`j0o2 -zM3ELA9=0;nK19}1P4xTSk%KQV8ep6wBp5A3J#{J}Ki+g>6Ra=76Z1Orth4~&I-r#t -zMuU+)Nt?Y-sr;!D$6GsU+h}C$MU=ylBuw1z=bi_Eg8;X`BTl{{Xt3L=AJ?#EAXaw2 -zT%XSoKr4X@bhNS!);5e|wbR&X9tgDoepie_=UjGSA?L1QF5El*7n9q@;~i2AEkV@04f(q!F-33|wwU -zftVj(EmnOOPhtsRVZKt*@Mcs?qQAnBd^QNt2Cs)sUttoh4DZJ(;cN1WE&nR;!gY}p -z{^`Fkag?>TpBvxy<|>Xx|4C`KJB!GtDTBx$kc?;4`2roRoam=jx -z_6v0&6RvBztQZc(hW0RIk4{LhEWm*l2}Xd+c2eDPId -z-^vN&+uLKTzhWc7kx{6GG0JGJEn1MBdHZ`-GUJN-U0LRzZ@~neU#r<%5}6KOdmgX^ -z0AnfTA}_HNArOnCBbQD6*0r -zU>sRUbDQ}NEd6iiKKl$8g`-Oz1G*{jMnGVpy?+yAjUsR1?1;q-$Y%CUHuf!@>Nkra -zcLe2iBg`!E7sXdUf-(7LkGPDgWv^2nu|Fa$Ea|WcIClDXn~1!y$$`lL2taprLJs9O -zwY=gFeC3|$*%t08I-t#Ai0F7cBjd_6pV4V5cv-C(BC@OMi}cM5J$A8;&)PD7>s^a~ -z7H1d!f;vmV1ftgta>g<{3(DHrRWtlB9-;2UCMCOg0lk6EKZz(l#oMzZViJGMer_5# -zqu}|_42~!rcn=4MY$CBzWrZI@dvJd9pk7lUC#*DaN{c`$1a#D{a8w7&TPP3?-u0%OE*gXzt3Vq>yw?I(KE1v#^6_F`KKk -zb>L$DkV$}K{u -zoX>)|rl(q{x}^11I)DArBZeQmuX}jjuoEpR_LJgX`A(5pYj34`r@*e-+(J;&h$TY8 -zMkd0$HU+UoAVQ|g!h#6Gb8)S-{;rNxS0c=~#Fl;QHHX=D)x&Vg#DKHo@TyTGa`$>6 -zv;d|c71wjfHL-duE8_L4sQ{!)8tbJ2{1MqP=M4nXl??=+H+29i3K*V&QoBN3B_&ze -zK@?Ru-Rqq}I{vZ7oBulpu}nD7u})KDr1k|DYb5ol^PR&YwmLW@zQpb!{Gi3{j+-$d -zf=Vpp46yTz(`fw}2D)YCHY0r(xl*Yj{JrQ9D0>qGd8~eF0e;8p0FpTVdqpm{3nxJ0 -zc)&%z2UVz%aToN(&oJ2{tgDNNxDDJ?ws#`8nq}Yn^7UB>>55|8uTcWo1Hq5c!&_iy -zZl(SV8%L9B&nODNB)*SqlM(iLJ=%8F~pO};AW9WTY`EnEp_gZ_*bg+mm@ -zO=D(;VRAN-&iiwm(v2!{HQ#Gb*Wr`Vg0Wy0h|~Kap2+9^Cuh+kuT|;>sKs}e04FK_Fe+S)Pq}(oR*~8HRxuim{ec_sr1ZpOfEfnc(~2T!Iie*KZ4>FLkZY(zMF( -zeq?h=R`^~3H5^`xA0?XYZGux`>E;u5=nFhP?r*TFJE*%_yh4|$P;ushI!x~HhC&@5 -zzLRtPd$!|$!LMO9&C_OqZ%+El6ckVhrmvkvW@Bba>Kb6&hNZaKVKd||R_ls<%mq3J -zvefTaCe1fUR97@<69?b^5u^b=1)zZMSLzdq0<+sV -z&Xi9a*=vC`cV0)2>@8q|fV=u=z*rY)H5j2p{>`pS5tCIA5A>U3KRlE=Zh)XG-)<@F -zbphG=aPyyR(Fc&BmZH(~YYhE){9-f~&A;4>C4EBYpF^(}kE+aa=}_Z%uYFvKy4ws{ -z@f7F5YtJv@vE_#b4A3EBy7RDUL9R}QzJeGG2rK7q7sqY1*B;2=j6lK50+$1hvV -z|EU+89f6GHCBQhW -zpT5-ZEhtKwrui3$WHgfc>2;%KcQvZuR9%CQDa+knhgoEj>VotlNUn#jBNUQ`8Ik4Q -zWhHQ(nvGuw(}Ha`*5J+nRb?$m7Fe#X1@F};sbEfQTUSS7ZzoHe -zih~;s&t&*r7sY&kaZdSXUsP_-pFU6IXywKdQZ_`iaaoG5!R0CK{RNF4DrqHmLIp9c -zZ*#|cPp{c_$94naW^$K4S3e&JeR#wClOB*sfr_!;KV=*f#45IIg24I!Qz>5G#3;b2 -zxlCw`7Ne~)u)cLIzx)Mko-}aEhDr7$L)kBd89o%fs2|->_qck8;wxd@c1^VR5&CJm -z-&qHA(QQPe8@c3?>-v?G?DKvnwl1}@I-CSF(Qh8^-PoPZx<5i?QgNl9|0@@!Ii85) -zVeM^gP0a^*EWC;{{9@zJw?aHtWYuY+Ua; -z;OfFjR!mK8(Y{uv0)P-<>^6YLz9TlU$SRXlnt=F${sT^CG!DMg4sa{1TajSk78Z9= -z{CO>1a=6?p_}C$z)6Sn7>Cj83ov}qRw`L+bROnB@M0_F_7^VU}?S8SQXti#`oyE1! -z?fSOP!r{l6l76Qd5iKweSD=vCP`WhyN#c6*FzmL5{RsY(eBls+hZD0-KUtvf2yOn6 -zKaX6U#7%rp1WILjIh*1g?&A}L#`_4f#8)W)swVIv2PN|nK^rv(sqOcXf~~@r#P2Z8 -z>@*ugE2k~z#^JHRyRPet$ww3t!Z~V}o5VBzB}6c-y4Ta5`UB%0U{iy7X>Nm& -zYseF~wd5f45lv%#aWP}z)-MA?jrVbP}&$ucia_&FO&Mt4p*2}nJ=}kS^+G_zDWnSs|{!g@A^_DR#mi0B7 -zLIv2QWgR|ytPM|Pv_s>c^`h*+jchd4bm*`?x|`ZKuO@FLAF98QORPmIy5f{eu+O@ -zFoOW@HGddrf6&GzJXkKdc-Jf5N;gBr;!5IWD?*I?dc+82y8_ -zmi`7JuUt$kSt5?#35Fdceuy8{-Jj^Sar#IhD%V* -zyx{~t0DbB)jdDDhj`I{%?m=*_A!Y>+a5Ph?RMcW|1q?G9XgyH$(mx@rwnL*9H -zu|htpPe!?rUa^G-621l7?Uh*?8Vipk`&WxJvx*Xli|f$ZzDImb!xr -ztx+nLbq;yd!74^$jGD+uzXMa7{~cxeWLb8VQ28N^R~pzN=q!L*gR{YT>T3)P^g*w-p~vB?~1?~fUXfJu?CpAkk29bXN<7@ -z8gZo^(HF~wB{E_Ep}P45D}s~#=hrxRF*tHh8L~Za1hE+=0J04P>9t$QYyP6J1)b`> -zTgkM1oha|f|>tEr5Wg})=7~cuv1^NuM`Ms&j1P^wsqL!PlpZ?j1 -z4lX_SMnaZ=6^ghtC7$8;{XLvw%}zuDWZ)gB?Qa*cXPV9q+jP-+XzCg2q7IF`h)nYi -zojd<&zQ@z?qnckw_Vzi1;<8g}5ES*9y}sd@A8{+{14HZ^Yp%?BdmE8I2vzdRM)UI#`NQ-p`8~y!u -zU-9JV1)j~0?k#238n|c@d|ga79(1~c`nW(F-#(VcOh}GB3yzqV!*Zv!=KC(w-V^Ai -zCJUG>z+I%p{7tcwQ?JwF(Lh-T#7z*1Fnk(a*5-;1ixQ_^VXbemru~xy0D%HAj_Ly| -z_ts~nSRjZvbHh+r_Da3Td&X^8v8?8fyxK(GWt`1vj -z=M6nt6AM;oJ27xP0}l!mDwEubk(F3du?)GME1^w>RTqCMk$MuW9XZtr^)T6`j&Tx2QN_}rxtc0#ZFjN@DIoSpIE5eY9!icYF0Gud`lO^`YK -zKkC!fw>m*{C~}6+eM6>Ss+lm2P708cIw2T+kxZF#lYi~Xrd8t@_tZ`n7mKX+Wy}QQM;>!*`EB3Qg -zJG;^B?CJ84gFlCjZthW04x2~gI5>R20^@uk4%OVDzLcd&vUJU$C&J!K*lTxT2tgGP -zXb4zvQHJzPL<`FH98N%5&w%9qpH4pBCO!KbzxkET13z=bj82g$pnnJO!!J;05%EUi -z#*LY??g(G9>Ichz?UHsvq{%jFoYyuv+B-da_V$z`Q6SZ@QT}vKgtt-BT(%V$@=ngA -z7_-euA0V>qM@^9ZR*JGZS#744yD3N;6t?l})2p#N;D!J+(sD2xjOzJy94qfAQq|&N -zjGm&6I)IOXbX9N%y59I2^+iWWXpfXEPiz|F{8tz+{=M<4#|uylgfD1k_W_~UxX$+M4s0%(A9S%R -zMo1eM1tpywb(YcK#SrVt3%vyAj6gvmxLU|4GaGm7}cvis|*Fbo41G2`jDt-%a$u)t!!K8^7x -z_*iJZ!grnw&EQWNZmH;<&Ttz|Vh{qc^*zvsT4spYL4-dnLG?5|v7h_RL;a*Ov_9SC -z^4f#(z-sw1@ia!LTV1LsE+-w1uB -z`1&-_gAS@Z5_1piTRS^}Dgbl`PA1y)T5j`lY?&r%+aWDn-&+Cuos*>O7qG+%72$!c -z*a9E{+lH6aKszA7{*{VOLogaU*07eZSPA7ID+d}O+AXRpV1l#lyzcVk -z-V%zQrJHPy6UC*&UcMRfC#;ICS@}HeHd9bVHIIEq{}zhY7+!(Be%&O*;G%Kq+?Hlc -z?rZ%l4Z-~8&~Zd%R(Ec0*xZlC$4>yWrr|0xVTjsRI!&wtSN0|tx6-%wRIA%UnB%bl -zsBPmwOWe6eI{*q~Ddsh1T@@7-zsWl8e3lAvxH$ph457)C`1krrk-JWPt}!(++}yuz -zGjZ=vXq3DAIddX@1SzjbaqkW{{Zi~7RW6?4dYjeIoKVvAnqMY|F`Xd}3msaV@GE}O -zn8a6UIO27ObD(lWqOcn>UII^lIuK|9B`%FQUZcLM`*wAVwYU=XEz`EIk5o5y`H@G- -zIZ>30J3;Bpb5nyX8H4X}Azy){a*)aGrUm( -zvAebae`%!_wltdKt21S!$2lXfo44>`?-7|PlmLu;_!0{5A*v4lp-bS*!`pzra^o&_ -z{i8Y+kysSyBa|O7AM*7i-8&ZOeT@wp1o#p -zuyJjzZAiO7UC18;FW3J(yw8wM7ie^Bvn5G)edUfUTO0&fz#DPlYyDXG0Nj7k-|cR3 -z-qNmJ|8CGl=(3cEh7mS4f=XXT-yg`8P6}!_r7HRdwvn`W6eifJj5S4Z29?6Awp4{qZlC -z>-HPg=b6G6X*5v6u3OEh+k?8oh}pUBH`ib9PJOUmXt{1 -zPXDErC}3@ozbMFH>)?r9q~u&hPQ5EO_-tbHDc8=-WEHjx&?c)BVZ_I>r1HL-w|`Tc -z?J=aa`A1LU$LjAVN2cp~uBRyt1dJ~YJ1@7MIZ8^|+*Je=U>Z;p@N+nCv|&P8%BIyEo65?yrg -zIV)YP$a%DS#8Nw@Tk`B{uOCzR$KKeu0E*{baus59{$;eijV-kU<_38F&}D@*ZbEWl -z{b*YuH4||1U1exHNTPe!Cov0aKm4|U -z5AEm}@KN5O=I&i} -zcR|bWKJajy=fJUEFRrlZ{;Rd9z=BvbvsOipPR3-V`~C?-v8=K8`ZB#6aBmf1#F=R^ -z;RXpC`;lyQ^5`hkVZ;Q|@_3ft;sYQd;QRvhx8~HMST?N`H7Kkvzm$qSmze*hS97UX -z7tuA_X9f#rgJmdnZs2!?sct4jh~_x9MUt!`rT>VOxk61BgfVxy{n;}RX>D`hg$ -zfpXtqIy$f@iK(_Ve+jQNlbOGY2*tYzH|;?Du$;4lF#oz2s -zv{6K1wyP34mAZcq*RL|y{4-7wz7_AuKPPHuo0U9rM1 -zL2c!CAV3~W&WdOCKvo9e7_Xy+(8K)q>?|BL9f?hB4n?|uEt-sAmiK?K$l~~H2Gg2U -zXTNAKi=hmw8e`9*<`j|qzpUY0x4(VFG&7$y|8WwxW8bn -zE;{(a%!FlK-23KZ!~~B$*|@-G6Oh>m*r1ej+K`6XLf3q6CRQdvJDEovT4K9zDJ}$a -zlEy(*>&ibTlbD_(of4z?IZb+fo9BgF(Ew8k1Q`h%AQtIlSB<&TATrx+?Q8><_Nsi( -zT#?9+KuwsRsC>fmS}Ku -z5+^9vDpLD%e7`*|jU@0%^j!MLkojn=M_Bqz#or|%8j_LD-2G#Q&&`x6?d~ysx_Cl< -zNAgzDqx+->M(-&@p7nPrJZ^Nsl%F01LoA_{*D9ukbzCDdZhMnyLf%zx=SOIx2^rfV -zC3}D50I}169JbSE?5sjiOWw>;9knn~Fk2^RH8l)VM(mHQDK( -zF_Fx`kb#)=z1!f#7kM4Y&6uos-Fm7%=aRKLgjlC#J2;02%f;d9ckVukpG`>pT7Vt<*Imy?C1@a7zA_|Wb -z%vD*wkGXEJlB4pk_q%Jdw{}OV+V(3A#>%J)}KH1-szyHrag?9|K+AS*9 -zT)x;4X_n#^p0kIRxP9gP8a-gP3q9!43lB97;&!Z3f{bSG3rCO+B8IlnN7xNvk -zO3M$Z{rSxh%zx#AgqYUw!V&rkCjlq-RQ+>iveXTQ*&c61Yi+#0JGcyv>($m8K13$9 -z)k4=qKztC(E%bPw`S7QEF2UuDgoXogSRnFpN1w -z)pH=`cX_qK+ok8dXn7@jX6l)|WL;bH# -zmYLJUvgW2cYUE;u+%lp4<1Y}aR+_JpQrOkg*)$+J2YX+rSX@B$?CRV+4s6|)SngT{ -zr$n9D%B+qa+k^)c@CFaIoI`>-j@l_u+gQVLW$AjOLyzd%SSQR}L=O5v+4Qq|(Dzb} -zm-1hA0D2UWYeuthhrFTNP&Vg?p3>}idRL1+4j-pC|$0V;YimJ}^b3XafsDH`a>EidKfp9effWz0*v5=1H7ca_1hpo|y -zDi{2X+Sw;p9$_oaa|tco)~xuy>J_{kyds&F?dff7AK4s6m%J|N<1fx~QY`={K0z{C -z9zETXk$aMG3{iBMYfKAz+DepjqQcH{wlmJ!f!(&Z1wC)>t^QMDIETIuFNkjL>g0a9 -z9jF@h4VzRZ0^Kr|O7iT@v?o$O4*3KOP5R&g_jzh&hQ|<(A*m#p&zVs~W -zsN~z@@X(Ql%l;KRh+|UFLYn%KPV)r~247{=Lzlnl8i4^W!=nFWC%TpzIU?Gnp!WBLX>F -z3Z&&NQ8{KA*~Or%oB4E}_3vTBoLp6@L;o}gDhG!^ -z*&=&3Hmd9_EIYqrFGuiUETOQHy+}(8RItk;z91o;yq;R%wAZa$e7St~jQq -zTc8YMSZ^c-&VRP6Drz7ik%xu$GnF%Hd}IG{U;P`)RKFh(3JJo~xI_jf9EaGqStG_z -zU3`q~KiH~T((|d@rqci2X9d`IuyqcI7DvT`Y=m^ssEGWSglLaY<;p0B(EB0(c(5Df -z;{785Fp9M19a+C^7f$=LLMiN&K7|jzzF!$j_j`GB1i16+)99kA_D{?pBQH;pyaOl -zj@MCK?zXQ_>r-T8(9XioLvVnR;fAQlM^oJyEMFe@t@2e)wYt)bmc~Lb&*f%{}q5s1yGa{81swCF(Vk-^E&#ReBurDjdPFTJkfMVSKWAc -z@x=j`Ls8(zuL>Rp`Qkw>{z6%K&J&Ef?)yJ>NB6+i2E>7ulQJ#OUv5$aM;_id226ZR -ztdS)93p@L>*){qGe1=9Advhb-*2T(;&Mp!EJ({kRKcMx3DB`+29)9*0UOQ;?zgxOm -zwd^dG@73i_)&y={U@mu~3ozOObjhyT07=@mzR4EaaK+4BZSRYy9;lzaBFsYQrXW4T -zGx{@9R94dX;b+}C59>+VVQm|j3-7S-&iR3?;nhNCAxB5yq!|-u(Hg+Luqz&u+Wn_2 -z>}9`bUpVywuYksm<7^=xP-Sad;%H!c3&U8x*%xi3b-(@Y9^pk}Zy}m-WAjQm{njE( -z)52oumz+EmKKAi_`l$jKnFLtg-1}?Twu_e%!$XUxdq-nmFcH~=68g+iD5*y-V}I-D -z{XZjGDuK{I<)g$Zr$0!-;kZa6nVgSBfv48z)m7T=8V_-8N4Ol-KIzH!m|=SjZ1x~g -zVAqo7vo7y~A1xp1Ok&OMynXopwbrfUX_WeLR6$F6s5xON`cu^M6=%crK!HlvJBaBJ -zOuD~ce&MD8`PkBQp2laRhO4eDv;i_5aiQD2t{>ChXbTXc#fXa>ZL+f*R;P%GD2@|f -zA20B$ -zf&2rTUZgq-WCIl9#{Y@%)s;$C^Bux6!O5$Gp2s#}TG}n?1BBB6Ii#oy+7(R;-VCc{ -zO)ck|EssyR=8ZDeiFdjQsZY#o7}N83oB+5(1ntR?#3&G@?3t$k4PB~a<1vyUJF@hN -ze=mP|e_XRqPnkRw;iXh#UL?vRiW?Lcw2c(_-QZ}469H0BdB1a2nA$bIQy$$Y{9>7bwLc1QC8T#@WR4^vY7VfX -zm*#kHKSPuA-E~c*51Kw9o~89gFb~8Gi4uD}IfAqEPnd^fN|B>BC;P4h4c*JJ+_x?W -zzI9_P@72FHWDIIVDRK_V&6Y({&9OD}GfwsQ`NS`i3SskYh9^x~A;jh=6mGtU!U -zQtQpRe=MGHie*N1ql?9iZ9U-$FkbNgV=?4p$E_FOWk$&=1uF9wNDIkKAe@|qYHbn{#ZKC;4U3twoohx`R4ZFBUz2q{QM~ -zj6=O`^?l=VyLjR(c>!iEAQVL;#MT!@5NT1MexepiJ$MNh0H2nOjP~LOMqxwM;oCKp -z>Y)k_|La6Fwwo8V31BbPa%eSk=ay0ycCD*R7?r(z%tG-{6!r4`u=L;zf0*z)4YLWpq^p*ce>us8ChuAck{X)auDhTan6o8Oz^2zRV?A5 -zAts;Z%#uz#7T6@lHqa&e!RIXHhsS9{Esh6!9}hxGNpCd!aAuVJ^eil^5@J)!BmDYQWmNZnkC9ZM_GJ&x73<;^(T{nwFA6VSa|(B(A#3-?0(Z -zj4WOr86@5VP!WVzKpj^&VHGKCV^;KRCw1L==3=n|<~(fdOfOcg+jSDJNG^CPQ`&N* -zQaWs`h5eI!Z|s+b4HWwfSNryfyDX`0r(4pA-Q7*Z34k-LKVj0^-|nhtg7!_2YSjA@ -z&xV1Ty5RrhyfU))U~b$&JM(-ns>(%UAbd@B3|v`mN{OagpZiC-yR$43b0%vCQNKJ^ -z=?RakKtJUtAbwh@n&mM2Ym`eY?4`h)$SUo?MdZdOO@~h(bZ@f+|_&L>GxYb`uKX$wXoW&W|7uHnWyCB -zc(|?W2L?-5C-I4ZisI|=C2FUB$7!$q%x2`is{0iN1%dwXc4)f{&>XEJt+0^rxJ-s6 -zi!|Z(sl=Ip-O_fcK8|p!d}dfFBNdxI-fkvZ -z;(&6o-% -z@+Ti;r7q2;-~BVW@lYNAg^sXAxQDR&-Um)A*2NOC*lO*;;-)ho2|kEIn^U*zLiBBz -z10_U^Kg@DUbQkI~`AWpxn0te1Nuq+e_WNhJOhF4?2h6WXzW -z=OgN}KSk&?FKM(+N{kvF!27VEx>ngf@~@iv5$T2kj_3*b=}j8_4!;y?)vd&t|1M(a -zV^>y@J2A7bICpI8Wg?`}yaStw2}Ei{?b|C{qvoH`7L24uPkmdd44W#=DD!zh -zjpG*!-W97pdW<-FjoKM6@2QvEa&U1C8;dQOL=PJreK2_qCR7+@$AxHxPm_EQI`TZ& -z`C*J-yG-XUy2w*Q=^;>*t+|)zM^E4m=HSlRDUB3swC7pd8c&jtZf<3cA=MVvQMxf@ -z?=*BzhpE4?3;=Ojq4L;+!8-p&q!nmSy$$NeD=RAH&x;;)6xGhZ@gF0)r)?f_89cx( -z$}CQj;5_Bk6DLg*&%7ovLamX%m6XN}%CY&f6S2M?;$yVgsbT&Efct>Oc3|5M3Hr7d -zmp(rP8uM1LWUKaJE&o1VL{-;;>G|~HVp)osV9K?5;*}XZy9W^QnEfhi;3ms;zj}X! -z&linXxgup5a>qY@1tvOd^!A%<8Xr4iH=Fr(>j{!-|KdUZH2-6za3o+V`%k6rCP3!^ -zE)iF<(&Z6PfC(n75=)o%VZN)rcMJ(ZX{x=bZrw|8d~jhKA_GtK;{kQ_z8A-PA2w8v -z@7PTw`1ATJG_sm}PUzxf)JPo5qZZMKlb7YcqVyydddki|YAGx}JzX`|!`e`%o=Ty~ -zSVln(tFUzQU>PakTWf+)X|VBFunN{Ff>w+gsdHp{7KGDzIfyH$h+qGG40{0pfL9m( -zl9pBajcwahqG+1lag3(OgLZyt5`Y(oN)`hN5qn$cn4bje#9)vbgqCCG#0~r4tzX0A -zV%Les)V8hwulWGNG#zNk1n$L8AA*iy*oilz9`QnJgW|TdgHs$k#$I&&>O>ewKsYVA -z6{-!z-St}-@=iMkq(n5&$3Fy}mS>^mVu`M($Jzt93s=?Mq}n8D>tKQnP-vS?HKEF& -z>%cOO#62zj>w8Z$yf^S|&rUgjavaE5hAGu;Qw3**NYVt55<2*6kQ_{1#y;!-G&V4! -zz~NcKj|?LnJjkV2-Ipi<-3%digbu>)8Hkq)aROl0LpZMZAxW#UyC+ICT&3nkZGPvx -zEsj*WSdi12%&1JSh=Kqnj#tPD4ztezFF3CjG -zX^{%@E;d9f-2A@>hy=C4c4jE0Fu;)$J+A<5d@fRMD0(@e#tt67 -z1rfh-@012~TPh|Z6>VLJ;>r0T?$_Ezk#a~3Mxo*FH8oVuwhZTql*RY!Iy`3bvia%l -zU)YbMjo?87bq_qEds*BsxN$D2JE65XBJIuIRQz18g&Jmw2z?pQ)u>&s-T)YRA#i_VxG4xrtY8-1+2$!*5QfrAPAZ^0ngDh~C}`p{L^NNIT~4wq99GbIxt+bFPX9f8NN6cPHV*Q`*ypQ%W!>t6r3SSZ -z(DWRV#vM5dAF-RzU_}NF-tV6p{Ty0f51Mr|3fOVsx&`augZryllb+iiw%W)HC(4mq -zFCP&HKWarq>wU#>l33Z~k8@ -zgjJ0B{`+~>f>Z}m&$N0qD}JC8*%KWoNdpb1b2V44sT{xrydyCHDj-4Wg&+f*EQCY> -z@33RbEn$9XKIrf}PO;!bg#`@WkY;boob#a5<@$rOgO5WhZnAQajEUXta1A!aJT8i= -zQxMIhj>?e_``x3&I~XI#CVB92_Q#4?#hV;7Y_Pg0g5?XWx@zcS5VIriY>SV^m)E!+D5Lb>Jz@7S3XNevR-Y6QlpYTImciemG}GTXR|-e|2+Q;_ -z);B=sl)k5Wv*lgO+SkGEfHySjWThSW;LZ8KCwKkdwaP$~{Y^&I-$j6;8tmgdaMXXF -z19xK>1JE{r%#3&-8kb{r?DZRw!gKhByQwo47FuXYZhBW}Y#OJtgLR^I?qr}fz=E2_ -zY}m(oJBur9nAud2lY6O(3r8mYI+bAf(8XJ8da=y}-vta0;OD-w%~SnD{FUt;^`;~C -z99eE-OX?FeD4FMxw#QxsV;5XTpbN94x4$cO?N`=4U=WMlr@v!}MtM7X_Pj7BfX=c> -zF@%Y|+xZV6Pm)I@Sei3&+&AkTQLR%>k@uTB2wb#@AFzT#pI{! -zKu{b<25~zSU2{6|@!%Tz5{9>1`FAErqOIuvnV|N=&CQ-wMi%u&B_Qt7cUgIFzQYGt -zkw9BUOSTrPeX^0nZJOdCr;<6|c>u+IHkNx5crc&@jR8J84(iQ*M5yrToX~vNn6zYN -z4>Rv!T)kC&#~h87zk=^k1Dz+s)ej)i02D$jvuh-~>&g-@OY!lO8nBR3g%s9D#=){Esar{d`TF(7p%5R4j5HU*+Q48k(#3$|X~8t| -zN9C!)g_Aflzwb_W$bPsUKW1D2&Av$7fl#-_bF_U(QfTU{*RAzpp+`3! -z3zMxGf$ZA~JRQOrboTA98+Vn1Imh5EZJ>}swZ*)}L&{COI?GFJOrhd8w@59WK`FQ_5bU92wbU12^(q;7z1)jaDQ5CN#@;fZ -zs$hE`7D2ickPf9m>23r?I;A9(Mp}^W4gnFQ8$kr5JEcSEkVZPByZz5T2k*VV_tX2u -zBYU5-XZFmR70*0t4Y`1G^bTQj33;gsGa$K^jF -zYrFeFNzEn{coCPRK$nTL|1rKF;&* -zs7daxM9!^wjF&t_$zIgpkjV#m>b>3gOI`779Nvz7EVKfjk!G;pmM`w4=EebnH^4;c+!DRw -zNt3=DD9)v7esNaN^pI)cO)WKTK8)tFcWA`K;&D@=15gQAZ#JQo?4$Bo$sFp*YPYrv -z$C=Pwo9b#&rnTEF_@-&@7Q(X4CDA6Gc_vxzP&;~9+Ze=4`+n}RPzF;__GXDu3NGl*uR8BuMebS)MX)WO;YSZuC2Rktu -z98Wv)tBgemU+L)omwGs%{=1|rj;#QODtfMSq)F@MQ9;PdT$y$>U&*! -zsOI0yY;cGX@9sY#d?{2=yAZKJ(la6lsdN5E#yhg-}W2`$q#BQ!5bVKyp~P?e!nnl8V)^c_OI -z1h2GL_G}{$%=G{i%CVquckd7B6>6U4dzw~vg%cDR79f9~n*>+UyD&f8;N5u4Sc$IZ -z2&d03R@~Du3m9{!<%w?~d*3tEi -zBb>2r?t=NC9tG1~Tr^5ed;=&?mn6ikM0+BZyNR1rt{j7^@ -zY~d-pVv{BZuw72Lx~k{dLC2{MPW|kN8XdR+?7)$=M=2O -z(5V9;i1yhJXnpc~8?? -zz_9X!_)!Lzaaun-A72tl#^}`TKE=U0PwJ5|`(3>^j!A21(jiw|5T5~v_65JTx<_KJ -zc|=EwIgXl6iP(;?o&XgX1n8cIsCLOlQoODirdAglJ<~@Lj;1d$jD(6gKiZ+AAV9%3 -z#P+1Al%tGS-*fmU+tlap=)KNy;wpmAjQ10qL5UVa@gUc^`R_Zptsa6LmsZk?b^(>0 -z&*@)wQt)Rpy!pLlaWONZ8)yS>(e1d6zbB}hpdG8pPCVZG<=Q;Ii0SD!n4kQLGh^>h -zW#mE#PxWomN@e+YG)E#I;J8f{6q4b>eu0WnaYc+KK{2|I -z(f9LI($AS5{ -zoOnE{jp&Mpvp$@+2_)t=96x`s5INn8M}j2 -zuf_v;FuNEvr>{dDQ$ENg8L~gaRrITPB5pNKyDZKfo-?Z>#g#?U`b1MId;t^GrTHc`NCwQ=C_z; -z8#h#D0aFwUChx8)e$tG~l_4LZxXgA2` -z2O_M5Qxl*|>57Pq6l#{Y`zi+!WjnNFAuIJ|8$W3qaO~7()&f&*hmsJX*O+cz{Wmy!!TpG( -z$#ut3V{g=rkSQsQPl+qXa)j@7QdD?>4huj$fo$Km{(!JdiS1fFV(0MOfqcctTSbXl -z9ScpG2#={WeR1=9)y$`e1F$g)z3+!M{%nq_d&1=|sZXp& -z99>8z;Wcx^g>wj}cOKqj8i-Je{j@Q$K+uG>fUA0YQm=#_{+fz0k9twE!h6k!O><^2 -zI|$BN3ly*|S@Z|(Y9lNO!c0s}8lmc6V2@Ges(ZZ6GAV24fjUp%{D&R3Zl*`RI?RZ%-OIVmfG!VY~Vu#CAs_(I(Vx -zN*4L~c62`D;zyxnE(^X`MU9I*QG8H}wIP~1lTEe&0ry)c+2@`nH~Y*{1UXxY6*+dJ -z{uI7bV)81#Xzr?bR$}GWAelaMZ5`lZFM$=72RN90x|zY#44tsNC?3QuAG>o3m=hCB -ztyFFEnwzJKX1g|A{fM=-hc0ar*c25C#Pmo+?f;gGJ7WjCij3ikR|IT%Kys*(BPZk47 -zw{BeE?i~@*-L1+n-5ZgT`(cnIAUp5bk1sbCAoz1I+|pY0u2^(HzY8gSkq30pA|T{$ -zokt-4RNx7IsZpu(^x&!F(%gXMF6zLr>w>AB!go`dJ5L$fbY-23V9f_phJ9@}@U^ut -zbL2DV<&s?^yGy7_6ssv2*pE!-q>GMl)6216?}`}(%71N^9ww9f<=@A#elnzfZjh)a -z^88B4$mTQh2VKz{*54z%^&s56?oG^M6r!w4(S)5?r&~thL -z?6UAOZfnKaJ3)M3GW+)x#oygSY|nW1Mx|wgUh#&1{?JPCYmic|LBNQV<`Fgr`Xgic -zEdc?^)1f>mmPcgtSk&%u^GWa(iPYoxY&Uer8@udQA{qas<;l}qwVpx=uFX;nph($m -zUDY|-kzWNCAHD@=p4zpZtl%kCXR?r{7kGeTS7jajyzVjwZkDG?o^Mn-lL|RqT3M%} -z_a0DR+|C7u3OaE-Ml+L?)p+bWNhML>H5e6y@1Ts2K3)@hm+zIRmN-B~`ZFmpsZ|IMH)e3a$QH?7)V| -zb51&al23J7%4KX=97Ud~U)a9Ik$#Xhj9zW6KRqZEpCu -zSXlhAc~xZTz@6pe;-S+q>fXiVwY_>>2Sxo`OKP()+I{;xQ8T -zD>50Mn9KWbXpsfl^cv$GR1mu3C%x{aj=`~xUvwk}wcOtXS+|e}Gm(8MeidkP=?)I4 -zReIq?hnHp;ggu%f-5oy`9jW4aedqY_iQM{(lsQxygyt8K)0cN1;PjYP#6{J?2na~a+Uu0-zkPR}H2vOW3{f2UOwEPy -zTk+3j03!#SaiLhQ1rC;@b@;oY_P%4r|7$gf9Wh0SRAo0~OSiHB~|be(#*QXI3Jl|*nH$*vAR0lkWbB` -z=__>ip%1+*N%C+22NZznoM~CJIUX_g_@lR`HWZ3dx3n4NNfhYP(irrF1>fm*`~hbw -z02>!$646LcZLT-;fsiG|Bf{`dSlqw*YLkW(yu7)Xru`-s2{rEntRWQPX*w^9fx>Ua -z*NDBaGXg>NNxrwht3o6#9lz`e#N-ip`;xH2;|n3_+r5xN=gh9gmNvGn?0;iE$x^q) -z_z4ZDC2rMw4!W~aDY6%9h=Fj@%_|(nk9FJf>7QL}4p~$76PxoQAGe>f$vY-n=b#F| -z%Kdf01wTK%t=)gVVF}AC<5sCGPG9_?WR0=i(>&7J6X|On5YrF1@k@qgWSi&7 -zk9!*j-*$ey6>1fD}@cGOO}a{Ni5PUt^T;Vr -zYEvfh9UT}_$vXO@1mUd;b{E^-XO-NG;ke+~kTI35k@xfnl399vx!DS5pUKEP56VFx -z#~c70V279S&2%F}eHoWdPimImf9D9Z6DAsUl}K)Y87GR2J+k&i->)6sYbL2}+m08L -z%V2}v9`$2}8j8C^Lr8!tObqr$qkp~rwxiL|o}V_9e_|K6r6f9*Wog$Gf2-V1Ln;@> -zOc_L?t;N^fj3pz%!WZ})@(_m?%KHsB*2b~_^*9N}$JAn@8o(++OUzb>C1Q1%=GjS#%E3%|#*O09;?7x5TrWm>In&a^> -ztnb^cR;S7}7&MzY{}ss`#JpN1+-#VsceBGyVe;PlX%QdBu)#Vm^V<)X==}Gls(wV+ -zkb@fApN%76@Ay%hZuWsAozUQS;fworHflz{LmZu5Q(Sa)?Bc8nUD*p^Y!lRWyxvdY -zLeqJa}F>daOY7i -zz|_G0)O2atr7_Pra>r@d{f0*e)PW~qs@b|Ip85zaCA=yF5_5U~o6ID6FQzBGUbxL) -zyguN#ngn@u+&~?(oKMLc#IH#5ms`IDT>rlP)hw_h)*Nk)#a5B5&^M?kt?-7Z^2Fh< -zQ75UIQuCKxS6Wu`LeDdJEj^)Izil&PJA3FUDJpa=PYc{{sFO%;!9;ocff=V#%52`+ -zwR~bq-HJrxAIN*Fq83da%T5F;KF0n97&L%Qg`n;Kwl~-l)$GzhJY%(hO>gXc!nf)d -zOA73E+u{q#-^+LuLbc|ueA(`Dp8G2*Q+BX&6?eO>x)u4PNu8aq~V -zX;(xp7P;&@j#G|;H=KddQHb#D7b{_8BG$w#yL*2=!h;kXVNx(xFGz5mk6wF!Fr$fm -z@Vs=3@8n~GB8jvQHZ1$eT_xLb9gA^E>?3xaC!NBWOH*Abw$|V;(<|7vbY^g7SwAuN -zy;`R*-Mh<`52!7sEf_!hMyZJ69#rVK5fj|hmHqou%%{fA0y*?n1F=0i%e?aU^xm3; -zpF{pyGuhMbzw~ZAyl!dabh-^^2OG!SBbMynbSdcQ!%x${DQZY!s7&fj%7NVn;Mi(w -zPqA5vx!qHGbhR~>WPCeDU@D9xLFZ6_YvTXV9+nXaO -zCP^62U;D~-E>wo!c|XPG|5@FRz{X`ik*uZ;I%*v38iIP21!hcQ&}DxW_s6-8_~+w2+esc{;xG{USZGbegWe{o9RW_#1C-N?7!6p_`izWF|`^B=OW -zvkJ!=dK@&6hJlQ#A}4@5FqT;-jP#=N4zI=YA1Irs9a(TTrqJ#t1=LS+h1{ -zLGGZ&Hb)`bB-LhLqdRD>c7sKFY>Yl39&t|$vpAL-Ww9UN{EByIUvfg4m8i?P6uqg< -z{P0ug*gFoRY!*WGu5$g!vFp>z$A|C|7LHxNgc?&V#2V(8CH4c$|KIp=9Aw4DLGV`!p!w3vgpe4VdbuY88D?6tPN=U}J;=Z=RNinmZeJa^DJltH($N2eTJEHKJw0Z`0 -z6dY6jXxfMHM8|$3R)8O;@;v0u;gf;0d8NwVN+S!eCIUsO($5-ZtOd=!*YLIoJr5^2 -zJ8j+-jRHhR;MkcCp8PJNKPB|QVSAcjiG1N~w5^rYh}tS9xbZfk54I{C_YetnQJ(zdEG#xbP7|5ZEs?|h;z`z_ -zS+YHV-d_DfLlkB@!Ew${X+t|`p7!@`6&AaxM04qKn~}7;Uv+@}I-8_l#}folbq_E` -z@dGm^h@mbWXkGVtnM*aLu#dL}%!b=+?sCo-^T=DWv<6Aj`eLN}MrJZSyuEeI=i$Gu -zsB|4fu`!&r=bG(s@9BY!(&4>;D_#cVkWBDzz2y8gR;Y638u(W_bL}ryXq+VbB`JQH -z?rJYWAEoMk)0FMZ@1NlXHTK$J>3sG25p8d5pFe22oiR)PJ*UcKI)f) -z-s#XZnZcg_^djIe!gn@&eZ6Hmonz;5UUI_5c5WI6zOQZCV5GS0m#&cm=xk -z=`s`k$QdwH&@HHyrzfz6Yheu!US&0??uTvbZ>Fd|zsJa+c9cxtt=yUF`IczKfq+9N -z@QkJ84I&d`a84@cC4uGhj^sqVbc6(XKlEH9#zfaX6vc96C21q@voGCt!hsRe51)UL -z?CG~q!13tu`=LLL@JUDNMZe3jr=ff -z_<5>1Nj4QD`Z&+j-|>1<%CuQ6;x2L}>0YQu_6|Ko6r=;Bh-Fu#{4uQC-ZIBIUsr|F -zvPOMme81$aPQNy4p^3u~Ts2VjEtlh*$LJ~vyd5B9`8V~j9aI!X7zNLeGNTS^J!5TZ -zxWiQ~!hRb8+G_$g70X2+7MXAZB_cs<6{PZx -z4n^FKerG){_mZLW@FP3@psIL( -zH6qZ1d0$Q@@Pu&(A_O-+2HIW_wAz3~Bk;6@tnhB*I(2NJgdVGCPj?Kp{XuQ;6sS0{ -zuJCGi{*E2jld@?(+XgBjBq8$1O!xNw>1e2GHh9+wycAMOV@dG?M~NRD+smA!UeNDh -zcSHp0<@5MA4di>R>5HX(*J=!QKVd+iy7V-VqNN^a>M=(L;=VdEr$?rH}Wla~SX~ -z$(TO|ITMJGatzRaZu{4^%Xkd!;ca0w-^{a0_lqT?Qjl)C!QZctvmtik9#hf%ZXAz5 -zKJ2o$R^;#T?KK9UF@c2p>x@y?lQV?#fxBu1H(P}DU~o5$9sd%2) -zv$OeB -zw!d)e;4pwS)!$}P9r_iyZ{>WR``G7v-jgvD_wsl5%)Ui`6#*3~!M$GRKY0AZ)oGEv -zk8oS_{Tf$fP8lY=-np37i9Hm?!;w3XyR&x>290-$|#_`)*czW!SCNt+EVg2xh+ -zpPA?CnkGDW4qwvOp6n^QGmz&4zKXeKZqWRCZCLRfCZ8{${wE4PvU9d|gBBNfADkkQ -zohLZfHzRn3$l%mYc*_V-$U=iShrc9D3^VQ-LG`-8(mCF6Y9qd^UM$YZf2RFFF}MtL -z2h7vqs0PZUw8%!@^2*-T0Tty*^s6Et_joj3$f-O$6!ADB8ZZ3mnq=fSNHxR5qr1oH -z{$p+iBC>%F9)_r+0ELqC<%Dqn&qnX_Lj&jSUMPhR_Crq|w_~GywL@t{e$)q|X;3vd -z@Twy4S3Nlt!Cpp)TPS`TVAE9o2aGn*ZT)&4j_mFc0ozY%VNNZW9GA=^XmY>{RB~e3 -zQ0fZU&T%_l@(&aRrTJ6N-3-)b2!#rF>C`$OBhLH~4!q}$LJ2=BlNWtW38ung(L^wK -zdXBaFvBq$4psW*Ug6LJlQn}lS$G_j%tvl<6HeJEnA(<`ip_-S! -zq(@FvTD~ueCfW$Jr2Cs1*j;62E~D`BEc<5q2I#96s}UT -zyiG&J9~49?K?LazZCS(x9OzR5@uB4@=EH_z)$M(%1|=-fBuYy~zojf!tYB)!d0#1? -zzZtKnaGHZ~2GdrgIgSA|tB1J2HUf=5H&*b+5pDmEj$(?94Uimg1JGp#?`m=U&sRy+ -z``DbNvdI1(w}H)k1CA?YF~oL=HA>!<)D9IAc}UmSa+<&oITf%z>`FqWvOE^Ktz_-Mh*H?o4h7!Q -zgWBn8HccUfFolY}Hx6c>!w@#tkC1?bgI7|mGIR__I{Buk80pjgo6mzO7Xrh9(2%~l -z4KOnG0dLfr{PsGv1#at4E=+`zSh;_GcjdUet92aOPo#%`^}2eg -z8)Om<$ke)6`CW=T%!G-!o6%&UAQ!cmp2jx0l?#Uh`}&HL+Y7Ng3Npz-5C2G9iJ{F2 -z9}9;AyK2Olk|HeF5Vsh0u=9ppvR;jX?G_P -z4!0GdKDS%iKb9UlWjHlcg$XS7J+lhF==amyTkYpwn?uA6NZQQ2kxz&psF@DoTAx{J -zwXfWzkvh8C+@2WblS%&sk}L-AxArSF1mSwOzD^86;j&4l8F*9UGV0R^K1pzc9m|k9 -zIqwXAacaoPXY-D%RP?O`@F5TtfZc|~g|{PNlHB^)s!|G-nQcIBdz}lsBuJjAJ)_%-@#hep4xjgbWq0cvDYD*L~WqD -zmR2ZiEyRivf^&-y_Fn8`NK2O}r>U`nZ;uUo=VHSLg;u`aD{PHJ8^`|^*AWG!n+%{3 -zfZmYNy?RbQPax*Q!prl;M)+=qyYzpS{vR{3&;GBgd7tR9xmO3}cX(wZ?7@ahG9k-$ -zQtOYZxkqjhO2Bnr(h2-BOm7c+<7zEpqCHziiHf>vhqi-?5FP}5NaAHXGmhY=t@AmL -z-YX+zKuex@PJK}MT%M-N~fEBZE|1zQ4; -z7XsO>KYni|GtM50yp$#REUPhJMh_j_Tfs#YaX#I2!q*Qov!{q)GJtJG?W1D`i8@CM -zQ-bi>@w8Mlv2kOuaJOB4Bb9uP!ULV(2>SlhB(r3mgWJ(~banm=Ob1Z(l9zSNw>^M5 -zmPIr;k!)pg7?)yyG@X0dx&>uy=mArh?1;yvFid8HlOoZo$P<>=IUw}<6tMk)0}$jf -zl7#W@-u;OPzFq!eRnrTq@!eRM`S>T)_+|{o2`co9t8gVsW<{qUC?}SBlrlYSN7~57 -z&%FTYdmui(?Fb?QevX>jWb!1=KUkl144&SCPexgG|0>^SB`b!%EYhDPuDef-Ks{i{ -z*@&Rw4rbxrw~eILr1RRlF-Fk}W8%d8IN>&4+qsbw!!Q3cs4#;h(?fkJAm87{kyg0& -zhp{#R^8Su0>RsM*zQ(YU!oPBSZewIZ-SDu>(IU)u2#@j_{2thQSUd;Bb6rG6YWs3A -z7I`g>Lk2zsaW0CwOhjgHb935vL4D+h|4{>wRH!0ynG)W?;yVn3kw<_6%%^wVB74g_oPs)!ppCL?IXNN=)vd{$Lny@nEEt#u1E0m3 -z@0>nF2CXxOPPRnCoOxiSF=?CJwrX|(yjg2EF+Li0iO;g -zY(Q+W{VZ!{v_E4%>iYFY9+b+*dbg2EbC(77opG%P(SH3%5RV{*q -z0w8*i`nXz?@X&p}!~`XLQf|VWEAWk6;C}I*^TnOX=jq&*bjY>zOVyaz>*1V%OEg;Y -z^`$OmsUw`V&BYz=O&U$i+W#rj5janwfutvr#Jm6yHB -z%z&a)mQ7i!J=P;KgL4S4yR8C{E9i&kl`;iO+&i{;!mjKpEWEiyl{~fF&<;=NhxHN2 -zX$DB>RSOY>@*5Y2Sh=0DPX@`ASbfHNNc#7?N`jE6hM8+~l0VuSA5=MsNkJ_Y2`Dv7 -zSz%!Xf7n7Ml;|=wH8Z-P6kHO{(0Wn5V0szb`gkA?7+Vw9dwG8q5Dijj2ej>S&c)_{ -zm5oM=pdDje)u2?Jm6P+tC~D+%NEUHE3PaLvm~#DEBftfcA-E$G4-4{PS7_720fGTc -zgW<2B5`=^aGzrD|zN3vWHxcx^90;H*k=X3&p3!_L6jqMOXM(@@B)gCX@`!O?038Ay -zM{D~bj=VE0pW7h_*6N+P~$&-O0_~xitXSs-uV1_aH{bk?gKor -zKVR`ik>O5gva?`1R?#sK`*d> -zSCi+%yEmHmy6{HNPl=nXC>+oNQ4?-yKenhBfGc&|-L-p5>F-6F@t?9|-&qh;%dBwr -zxa7IqhLiwMZVSF?Lt^>PQC2&RDx+raVb`v2)Ih5e>Rv|I$|K?vAB%c+m#8YP4$3nFD{CL)Z$1QbfeyXsO(9oLUJ=1+C22ZkX&dK)EwA7V -z>Xn#+Om2-I|MI1 -z^PL|5MDRs$aTFqW=L26RynH~bPFe$Hj|*R|{rft^{s)%}_-m(4?!P6PykvF$kbb9m -zP#E&(IGP$6t0iVtpRJT#Z$e%Y_$JJW#==5H>nT|LlD`Tuw1NLjhMY{(o=ESuQ57z{ -z&yXM~5RY=L40xWP7El4NLvWXlZi@ML2zDqBMQ)peJ3e+ga=|nT9|jZjc7KTz3m>jZ -z6J%m*I5KrM-*k%XJXB{^B*z7uzy*dz%6RkH&~WU787IXI_rE{04PoASvd~~H7+xqC -z?DLD9z$T)Yo`t{z;E)vm@k19mU3)de#{LCYzhHBui`BR05-wG!{Qp$rCa5iwRwZuK -zoU|(Azgv%%USXLtz~uORZ_&{G=MpROL9Qx>QQ(~c?a;!Y!{hw<8k{Ehj3->*uUF~dYw6xw0} -z+Oas&(=mLQSuc=YO8`KQK#3b7C5JJt$8ga_)n#dR8`c57`M&@g@*RpOSnE#+iyFHG -zcC2lHJOi=+P}H~-5a{VcD<9K#HehxI@Xh}TNkOzFZH6%*p?0ac=nR57XeeJtq&lDp -zVF$(f-k1|I#~j^q(ujbQj;_kIYFh#k)z8M2un6vy8bY@I)j}3lr=Q1?& -zD$J!1gO0QUX5_<1-%O;Ye!4ekA0fEpe>%(JBf>!BLY3uhzBO*ry|?z{uDy?_A^?R~frck!jGl;xiq-K=$atbRnP!LPlt6 -z_#>gJ7H1ItW@!OMd5lkW^)2lmCV5aC0qnK-rt4EbrARUjWV6YFJY`=V7B47}1@A1W -zC1q*%y3~Z3_6?uXyXxuEH{K@K=QqB?kFE8B7v*FW0nI7@RXxBr88dR@p`)+BvH<38 -zed@~k2o3JDC?LI1c&eVtvm_ylfB>pesA0gbmkxS9mg=6{x)ius^2ym%lwA8V!ukCH -zgp0!kdtfNR@Y?|oe^>eRFVh{;eMHBP)07)e(t4<~vb~{K>B*>7BJ9brtMQobqud)8 -zojkf{c2uzUMhpc)M!Bdl-!Mu=3+M%q@fy=xl;h)ySsax=7PDGYqGac>=<6lr^Xtw{ -zy+sa;PmRlwj{*d@qDj@h8}>B2jQL^pbw4cSYub>1BjWi-vHTP{cN0vW!RI|1{NqOV -zw_irCu08U(o=qauTjE>MNJCkfb~E0WJ&6@#PL=~;|L)*1;QzM;6B1{psQq}Gxm-%I -z#^f^=$|+v`OTd34`CW;}&-l;4%gk4N!ENh^nqILWcjUtZ>q2dd$tLclKQ3yJh_O-9 -zD@V^y?`K}3m1~djnOa2rQVt20s0*Ib#fT$K{|2H^#D{#O{ecFdD|e3DASCJ^v;n!E -z^M*&g>{R=0h2T&dXq6$6irkXN;nNcaTd-@a+*A~z$~WFs&})2Yf4U#<(i)GX;3{~U -zQ11$=C;{dcwt4~Hku5O#;MThwg?C_&eNg|6Sn{pMb~!WDKV`Q{eAOWe&oA%lIAwG* -zr+c$!YhDJShyTYZ>iPZKaZM~);8)O>>9VcSqRn#v6uFY%5=u5|t;WAkD*VX_Q<6b-iJqDixEB;DAk;^&kG6aYx*o -zm+THoRcJ3b$*nzbJ<-y%x$R%XZgft%=6i)F(S=lPLa5ETwdEneGoAKiYtfObL -z8OvlD$$av>a(*QE3)X)lQc$yjm;lS36_L+>2S?fUjGhIqP);A$LwO1i0#(SsC2PHj -z@8{SodS58JJZo(_D2Xt|(i-#_49xhJoMxBxly{}@=fC|v0p(WRj<*mxCsbxo0V@c0 -ztndK<;2(3bfoMKjC2>UW4I}$W;V|Eo-QTD;QB+Z?plUR7=(WS{pRARR`j>m(T)@!_ -z@CZxd9ndBqKzd~u7NJP2ff!2iN-khlYSY)BaCU#{toe8e=0%gu3N$Qa?vN4&<$Gln^F8ng>C$Odg8jIyA;+< -z_*a15GdAE2lqF0$P<8)&jlCbZZPYb)4vXIadz>>prX?$rG)Qc_&^m2x1suBcf&}-i -zYvqsQ7V@`ZJf0&qRUwT0MEmpVcZ&ce4}fQ<%6&4cgqS-80Eq$p$WpjN -z`jYm&6ys&<)LW>o<6Ycy{h7$;3f*F35-;ayWmPn>Xb;!^Ivxg?3 -zRq6E=Veci3KmnHY?XN$Z&HE2mnBRTW#qNZ}6%2`KRMN+Zh^g4uXHF76^hiw!Q8PJ| -zai?7JH$p|K(}sP~T7Yco9- -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 -zEYn2-G_za`Y?sIajL+qUj6obH;Y{RtnA7f9X& -zagcx%f`go+heS{pGgf`}w>hC%DUh$34`P2vX;_$v#qTF3yzf>Er_=rPb8P1y0@aE; -zNm0R`^61$;RXO$*lY^!W7$Tud -z5i)rs6C&E1$CCQdQ>nAh9+B`6qQ#n5W+kG8b@PJw2s7Al^}Alzd+Ziw$LfY#Zvga3 -zjCDNBl4(g)HBCYcA+Q;r0j!+5BpD3h}31PXM8uPbp3 -z%CowOUF0LYxz5P(2{*_G#380Cmb?I;6MxmIw6u%o@}qC`Xxg)YS?9;Di_tz{JRY>O-(d#NdqleI6YqoE3rh^^AKSm$z0xdFhSeUV$#5B;# -z$GX+X*8nO5Vy9E@c}t@>F{UW;b56V8go;zdQ*e-@B)2^TM9o3{zDfNt`4EHv91Vrk -zHE4Gp`2CWzsiC~Ag-6S)+Ftd-;V`G_SYmTzuzv7sR=WuLuXqM;50>*$_1ksF)ks&B?*c&I{a5SH?PM)?;v_zsg!f_9`D#IAMnsyN0%kv9 -z6bmpU!&@PUA$UTx@`7LTx%C1TiaVp~lwrs#nRo2Z`)S4)EKUESA%sxgk;bvMf%|9G+k}aA-^%P?bvshb&iyai0xbfh -z&`#H!+2@gn^c(SpiuI*9^)3L8X&UhU&|1Q0tI*Xa;F#P>%}7^=49RCd$SvUDB-==F0@r0saE?*S}polKa_oSC*zKni=3azy&R3 -zk(+m1o}rK7xBd=4sAH;R6Ju($z(UuA!Ml)Q5~fWdbG5rCbPN%4{wFxMYlt69PLk># -z>1_7_&w{=>rDrUkXL4zGA+)?j3+so37mI;WrhRlNm)7@l2p{~{6#xjV5qv32`0A(H -zLy5^G%6Rt8{LID$&>ta3PYc~s6=}dFiBjh)Nyf?NX-L}wv{pF~+E#-s++lg02p`Uw -zpW;VU0B!-L&mis3^QEdVw>(veOsK;1Z#y1J8@y`q#PP^a7yvJUxM1Vm2mAK;vT(=) -zd_A&8B8qAU6IidvN;~A8-X4txg4CpcG7sKKCm)ZU3q7imE!qFsjrlh)JjKqjBO}2y -zF<-TPcX?a1@dhVSt_m9b19x>yytAP0~Y;Qjpbf}RH_-bZt#GbU`K -z@r}toF^>DK1&et>VJJXE>b`%@#{^ZR1?c}wD$I!pL`FhM8y=I`y1iH-XY(UZTjWA2 -zZ6x$3+{NrzOy+zmaTH(#3yY!M5-cc;0WV-cSk9dm*!h(Nj_eFy>pYcr=jnW=66AOc -z!7PxjJ|5f<`+uB$bzD_jx9Cw65eX@gE|E||x3zE_xr6Aqi -zAl=>l=GvR{o$ucJ?z``I|JktjTC>I+J;xYxIz05$cvZAA>-IrUu!zFPHN|ef)Ej$_ -zA)u-$cqft+`;ANeO6yxO?^myujiP7p?ixhH>G$94#aS+0uTTt41xt?Ek9}R|mM)N5 -z0R(CWgK0#k15cd5)b)|=&S;#&3tPIz=ftE?VO>a*g!=^npyP)o@FY*fNxz4dA%gRW -zDJ9WuGtkC@zN7?$Fez;Nzm4#aT_z)DrD$Xta|gl7Yj5Xzq3Si}6D7A8Bz35P6#~w& -zuEWKf$h`UTO{`Yi7b?yf`iJz5t1eKC?XgYdxLs#UPiuaJP3Eco(kz;kn{^ -z9C8X_inFBNd)e?NSnXWq9U~L4u$~}+vW)NZO&=ebOCgowwr$|7jAldwpCKSoaOLly -z>Eq(*K9ScmdmB)+im~k1cX;Ei+-;4b5;}4VoN@WbqY>4adXYjV^NSbgkb`vmwg{^0 -zEjc<)2Oh~AwocANOiYkHm$*-7{aT|drRborv!nxv%86>X9u9O7#$Q}$a#GAu<+n8Q -z1eG?i9c4azf9qH~b5DRL3%GXgEM-!jZIAwNJv~I~QMs9C1j2ZJ5P}Z*acsn5`E=DY -z`vkrV{X-Frvb%T3s@=*UjSU>D@kP>}_B^^x -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 -zTpRd$!^)7%;gI;_{(jnZ?xX%Ev -zmQ*x8gQf{77d6xIINzSwB4;{wc^@d)RONbXIfk9gejA&*7zT`P*7 -zXChB`9l1p(fZV`;Tn@~7RWd7P&o!v4Pa~?!AzFf)fxS%OBX9|%g>$KPa2*M2(nJfd$P -z0jcotdN>=8dQfSUo_%PJ1;u5cyf9wU(j8Z{H}V)Q4W@yQ2PqomrA)Lyf#e?8s7zhc -z@m+A)N)9jsI(k#j6{ntqq8Cu`3Z4P|8_Pfgyzb5gd?3bdlzdz0%)taldaBFazuDJc -z;s36{e{76(jOyk3j4xogNXDiX+2WX+5SsE1}xvc>hjuHX%5hU3eMmGm(yFGvI=fZnb6S)pizP&2LJB9ViAfX -zIgp_Iq-$)EBHp7$+Lj}h-y^|yM@+WWJNgIZj(ry=tTn?3BLboG=6+Qjt -z-|{JxG~9}8@7hfUe8_MS^K2pY>a##&JhP$h<)2j#5Vea?1!ieym1|&avS?zg|CGSS@*mo&H5*Y|4?s#q#0(vXhTfgK -z^JL&rHrxUMYGH<~*iPV6ZEK+)c2|w>#MFiX8@hI-tkOH~p&IO3li&ZJ){cbZqqj?R-rhEe^stPF^Bc8ZV9LTwhWV>ly@ -zm^?Lp7XQW5{KPfNQ@|0D)(E8?;wjQPGmZH$p&Y5^H0{cT2&gC~$hP~s?T2)fM=7Ju -z@_H|+;>Ic)VF0$vGc!uwCR#Tlqiu;^(Cw|>Ty -z{px(Ev(LX!{~o@Nz_q!uA+ML28X}~@4GbF@)P@|v$Nb73F~mCj -z_p(Kzlb?|ap?4lV9nNzG%Y_WYZRiXoFZo8{T#RD#25sP(N-^saBDk=WpT`8x*&f=R -z-f3{0;|Bp2uJ%_}4=cJY$@(>e{6xqFz|WFJXdM1BGO^t?oh_V*pmWl_Z`_Qt?)qr% -zOWcwR+A_8(SHxed;!iUhKaOco-XJ*UXsX&;UNV93(g$&<2jJazWE)lR -zE9q9Wd6K<({dQu_Pz3s2&kV^n -z;EQNU307~=->T##+K$);p;rj{#$j*yAt_cK(Jh?U67gDu2C}~1I_O_Qp&CFb^`A-R -zS>NbR$t}P1s+<7+Jdng+kR4ug62#wXJ-+m28&wc{VcE%=DQ -zEoy?W6o0E%U*0dlG#hERL_$!G_z0E6l0z#iy=*JZw}u4xaYIDF7@M-~?@`u;UkCG9 -z55Gjk`Dub_st$k(TcGaHfZF$%(;`8Z4~BwnLwu2mc7W9D20V}XB&69aqLbS_#=IlG -z!7D)Q2=Q%%`A=ue^g^*if6H$T6{LE~{wNV|>H*JJJul3OacpNi%gD1aBMY^GxedJH -ztbVX%$!GDT645UIs5`*(zqUs^M@KE!J*tFoM6jXBG6Zvf=6q^>mx0A?4bqpvInZ1_ -zyp9&&K0U2jD->&^9d0k02ztNPHvAeL11=Nc?5=ACF2`k4)2MFP@}%>TSzcz$c+dQ*}lC1rc65N@4^Ws9B`Mz3Hv4NeCJ@?|&^rIu@Kw -zF#gW*4^%cCajbrutkLiAEFOD>u_`y4ai)sq`FKhMB&xQ5%~(;C)J}Ge-|$iCPAzl& -zvv-K)Lg)+`g}4JnuT+{bv_?Ef%C=f(AgcbmVclEJ|u*WihZhl -zy_Oy0Y`>l2_GC!;6@Ez&0pL6%kEN~_c|Dqbr#wR87rq>I_2hS{D4be`=wcr;ImJ2AW -z32yfcv>4K8qgBl&Z@EF&$OBexhdtU5aO%SaQ0iZnn4yqXX2krrEcroDC>-)8R?bqq -z;TxWa6y=PrqlMSu`j_AU_{T;5L1s}Ft1pZ~;P(?HN4E$MC}0kB?&G?)(bBesn{lt4 -z<@Vk_4Wv8+7T4l`q6YqBAiO_Gni!Xj(4Oe)L -zv_@~)jryKDysx@@*hm>P}IHEO5)rp;9uDF9FqRy?ii;q6D1_;E|3U-CFE<^$j_`mr^PzMZ|Ho56I!3<_+r^$zmHwBclYY>P*e&JKD8 -z*cHE2Y*w^B*G+z_A`<_Cc+)i9a4`D^8ktJYTA4y;`wMvv8s3~4rIcmKW -zkOW~jMt&^JD0=I~Z``(5fy*UFk~RKBZL7RT4w4R!JGY(WUogr7;ge1vo4l>d;BM>vhn1=rqK6-?NDjx-TAHYz6=W3BUq_ -z#+1==z_hP2JoVHwv=%XifnfV{E+U6Jhv&a>!EM|c03Nieh3z&2={erPr}Kk#;5F*b -zpXnnPtW|Z0w656a7{iUeV{ZE(x`x3B`HovAbI15qv7T@5V9W^`V27pY1hG!c8VxJZ -zrMmP+e%*4oB4^J0MZyB$7}EQzTb&oxLvj$ntnHO#5QmSK0L4pf!_6uIp(m$`3BoB^W~UfT9%yEvS|P7@nH6BO*gAzFau -z39y5?#FAsfM>ki_`58#XJ}zU&l;Q#|jWtQuhd6WWo^LA-kP_ci3KSd@)S8jPPm}=~ -z;#@#(Ob@zFOUKl-n5$xW+OnY^SFzfxQKRoho$6fx;n -zoUP`?=>eD1kE%Mukxo4#);Xl#tCe6}*3mw4c_NH_1;Y)G#rymoBJ--iTfYFAYldg1 -zGC{2g`j4S9!094$pkD8E_*xKDMp&AX6_obfV^D8HJS0avgux%)bH8!(NKQToyAf2@ -zr3sh?C3~6RpT(j(p`a`Hr&#K-gv$~=RGZl58FnM+J6arGl$i3^*9~p4J&>iOF4#mN%1JBSe6`&Z{qd^`V)}!e$tG`bCG?LLW;|0C(iPf&^L`n -zUbyQ0Q(DpOnWSI1Mji$90|b)UU@Csbhw+PnMe|`2&e~k(^Mle;DruJccY9hr(3KU7 -z!5CGfX~bDX2Wx2gT`vw*Q!Mw9m-R5lKpo+2dfX6Fuc6j}wV-)Vc2o%_&SdEzOjHS8 -zDxZJhB22B -z(PX=+;BPL!T$OMtP)1C)w=MKG2SlUf$#eaH6b8|cI4J#TGq9xQv3qF&9Z`S@ -z-CVxiByX|rIRoMvhG>a5K6MIE6ij~Qx%sYh10FO0x-YD19%Rl6`)lB`{ve=$Er!m1ZNC$ZZ%Pp@N77+u1E_<&W>?g;|9cm9g}{|Obow+21Qk*S>m?22a9x)$9q2y3d`NH -zb|lXnRd1EJYM!Vx1AG2_zot%n`*QiVf-YU+lSEp=%Ef21IsryOx$a?;J6=j}KS@xT5>Kx63QpUsPzX$9?Z*WStMSkX -z!+)ptseRnVQl4+&Z<5lI28KR$pm6tHihg(*aW!Rm+MgpG%11aOv&CoP=OLy!hEKM% -zxw6xmFA*Hd(Tt|UMt?Jt^FJt)KIy%FhDV!+u!BpZ`E>gK)kWK4wm~IgqPDN^= -zbbgX(=-!`-CA*Q6RdDtGKA0a?*Z!sCFiV7-T1PTB`X8SAfqaAuGFx^2`flGYKGOs- -z(c8@Tq8K<6l}muTa9n@eW-P>WdgQ@uV+aJDPd`j*kc0W2%WUDKyu^i;3%U!~HJ`-W -zoOsP+Ix5Xu=Rl2E&}GtwtgrnI03&D$CVcj%KYu%)vR#H&#GV;p_)vz5^Y&}fE1wrp -zNRS3Qemx>f`I<;57D^fFm$Y(0-OYZu_s!C2$#)NP*InzR;$+Vy8UlCxiWxE4S!exL -zQ%#GNyN{Lm)OgHx=aSm_bOkOd-|E*7%feM8DI`p`qAAbn?X$bJU%8np&mmKXJ#SbsLYr6OxLgsxB?tn3aghT>4YG -z3@4(*b=U)BU-5((_rA|Q;g~)exP&J9EW^8KG;9(nSo&Yh$ftK*>oye}rtL9q-dV&Y -zQ?o}APV17v7v_~R3=lqGjj;0&vAyaFMA&>vcKwfD+ps0L;cgs2OydEO`AQ7 -z*TJ@(xI90)e33V(`uIHfNeVk^Ff*%D>>g9l8iV6l40;Cd`z(!av9_gdIUBD}nruLP -zcGyaP6Yov!88_ME*qUkft-u~j>3PN4zp{ceJ}x#F@6+h{1A8nD`iU&1@mr6HM~M(= -zu;o{Wo!Ko1);XYi1^?;>5J3!s3PbMDoD- -zrPO0O%BO(IfOZ<)x{Olo9=j^vQ!uy3 -z5H-%s2&W{bp#T7g<%*ElKVp)2tCJLF50SDsvJdxtjgErGi+uT3Tn&m)ac;heVa6Zo -zh1O~n>e2h=N^`uqsjo1Fqw?3D08kU$zlVJ0(#^TB8kk%4rOaHrXBy>e4=Q{RLCpTI -zXUe-7(3TL~cZrgn$rm&=&R|FYkHwLH51ZUy@dGFIiWH$uEuKG(o3~06P5dS(YCdLt -zxdV&ZApF(t2i_D$_EBH#NFceHDOiCE)!X$=vR%)q|7RR2_L)Wh!XvTye${QO&pk -z@Ov>ZVQsDP^Q%hBWqf+I51IDPNGE1?*5sG~cNgd7b2Zy-Lc3a}NV*){r%AZ%#yxz0S=m`D77~`w%?D3z_mpq61wNjLwFUHko(uB>8DMFAFM*cmh8O!e>bAN3V -z-c{JW$+qN2V3O~MNo$Xy7MCK|JcA~X;V{nWS-9Q#siz<*5CMYY6v{d_Y}YL*uwtAy -zowm!q8?6zLIRA8`P&s&=jd5#hI};Ka?{tN51z%E~O+h41OK`vB)04s`P535ar&t6} -z)#49DmcVgpH_5d5w4HF=D7}%10m1?l*GsoBNB(NnDpINQOlqwO;`34@u#W)$4soaheQ{c$B-+b+LK6! -z{Hn5213?N_$(3(#h+9#xVe%EH!2jP-5scq>R96w5l=tiqwsw=|u#A%wu`yOwp^Sw( -zH;&+YjB=8(w5b4x_VDw7s+j<2bHNy{B*TRquq7=Y(&1h>t{iu|SWoXQ1Rp3aS3Ib5 -z@B1d|BnMyJ2UtpDNY8tGKw?x#^@68)E~{rXneLgNWKu}BvqUy%d^Qt;tf&W)dmfrR -zR-+jDA%kiVF1DudQTUynP;T71J7(1hcd-H8Gwg{p?GWKK<=_IO%A8@twi$MDm4cO` -zM4guhr;!c|+p~--0BhMN6k9xNsg1Ru*6( -zTPbSjD@>&<^ss!%IAHsUAk(MlriOvBNRxilSC!C-6a!TIR(#dcKejkvh{U5ilUhs?YR;90HW(h<0P#d$r3KOgvB>!vn@WBK2-Yy -z1QH})(UTIQ>Qb`W3y2?!YN3#T?qekB2kawz?)r*9`rr%8Wx_aUm?%vzwoMBOO7%g!tO(i6e@V8YU-)jif5z2P`;1~w~gSZMrI -zHKmch -z(Av~^l-o}UPoW>q#~ee2^)tCoz2<#ih4N*0cy4#f<-K+}l_-=PfR2iK;@SozlNI1L1+ -zyEI$cbg>ZB+B|=KLIfchAgFb|M}1ofC?r51&=qQ7s@alQ$sh}Zc*{B3O?^i-qwI<5 -z8xYSIU1aGyZ(S9LXbafgjYKql`awN+=ga0SqZ4NS4pD-uV^{UbCu~4gJ1pcv%hs_$ -zvIqoUn_|4=<9C^+YVHMn0jZ#6sLqV&;@E*$B2FVpq#?eu?&qYR{PnaS!^Qsf%iar} -zW(Y~bZWQ7Mov4vY7oRn6HNAMRh?tCGihk=i>}%$zeYLRh_Uy#=n7b@;}!IiLs=)xc}qE?7UC-Q%yi8iwoe -z?VilzFTXR2#UY*P;HI%5aJ&AGNpPLVoG5&GA12h%+F3^Mg4ixQFS5snLyxKSTv;V; -zq#napSQ&A2b9@mt6Vl>_zLKQRt@yhR+0I2QVZLZ%qb{2;KOy`s9ERhBE8nf|g^eZI -z7)~ExX;QI}Bibi5F}_T!L`MsrZu}El8>=&YcD~<_f*`UM8bO~QJB3!bvv*`I22Y(; -zuZ##}F66YA*B&{p(!hD=B{_w|ukyu=j?Xw111D{Q64Y$r(PcPr*~gzE#%im90QCGv -z-ZLYX8<8?_GDS)0B>FCfV7O1OOlt-BPflw(5-;KM7ibS6bX}$x5M!kPwQ*XRnshi9 -z_c*Vy=2ZyhHq#Gx`qo3jE0=K5VZ`#bj<5Ctd)-h2PGiF$3X>N$qrii2&s!52WTK{X -zolj;BUuK-)8r$zRipwJbwm%17h8ZjNZp#%knFTVLE)4w8vA>tucM&WF;sW4U?@O2> -zPxSykkGGPkR?TvZOSd-@kVwCyCcx>~RQL(a>n&HmjG1e$G%CL`OjWlc>K -z)N>Su$-A3^!WT!cu5r$IlAE)UCZyhj=RDESF&5|)dO}<`+%1oKBQ7Ia{TGj1e6HEx -z9nm+%FK<#{v9rPfsvYd#_IoQvAHMOkq!*I871;2}&1TL;wUv=g>Ssnn8V;bXk*bb% -zWYs!{(yh4fF7QSB$S+%z>maav$7V3?8s7&O&rv!te5Iy*yWm>f;=1*CU^&a<>B -zdo2OItt3XP`8~T(RRZ`F1ciq=j}A&uOREuDjfao3Q|DM(=Pti00$VLoI?ukW!cs=h -zTxGAdDTWj3MQ#TbWWH6MV}6Rr>Bq`?)TqH>%g&7ZnL;9rCBi9K*-f|ke;7sH%TqAy -zuuc8wQqmZ?^&|xyHCQoj_!e8VuqH0yug(pv&wwiMeH-w|?EopQPhZ`bVHExh&tA&EJT`p#)pVV2*Bt~oR5vtE#*Ozj -zE10TBDD9ALpF|)%fh(BxH3nJQ{Uy^cXUucoa(j&~;Ii+X9?qXmEVPkBI_*fyhO5WH -zp~Q1X4Lvvsyo#38pB(F-8{e%JI5W?^cyx7KU6=bqmLwky7(r+#{txF&_~VF*3Ev7t -zpajUP?E_Q&FkLtzC5)1urd6rZ2YA9=6E3syvL}?0CPN+im$MC>(E%O`)le1 -za3pTDwl!LiE!WcjI?H-A-_L`WH;vPc;1TDoUPJDLb0UVWccN=g$8e_hW7gbAYG2QN -zejne5vY|i-B8&X(LoJKTk?1%zye+yl -zNY@40ef5r9q{-@{jiG6A%?6{u%i2vmEK|*br|^dvk)6X_C2O<;Z;LyM9>hKYGz)Z~ -zLm%_t>A64mn(piwJu**3=o7iZlY4?&dHfS{BpG_O^Mi7w@4a6>fh)3aEkBmI*5G*% -zc?_bny{D{iL#UEgLWlObiJNcv5n9D;r|?=Ug~){;9oeGU`BOGClJ!>6-2u4z5k^Wk -z=b;zCaNpGU8<-hjiVfr^uvNIu%7B!5J~Udb$H7Z~^|>HqMRcPO)u)r;&x|_Wi*QZn -zhGP2rIOT?Z5-Rg8o|>EW;Olmoysv=@d5u}X-R^85w(;5fi7H+brFtZMIX6>`@3AVt@^52%XAqLB^p$|u=2i?#??^zT;$uQytmkc_?`U?#VhqTdCMxlo2&*q{?0=8MRP>DMKk^c4i`3b5b;;pr4D~x%;y_4-9 -z3xri}3E7ANlL}PYDRnP+RKQCnOMk(x6QPxCerSJPK^ggR>*=E>LwVG -z4E8QrMxptMj;3vp4WB016|xC*C{e_uzOhq%w;LCo -zjP91bGUyl{wsqJ3q-cDBQf(CTn_enCGOH@bW~t+hHF8}wP~~hneb-{n!_u`^>Q)Sq -zz1mgQB+d_GKAgZ@C6lI|zW(29SH0T9zdT;mbr}p{t7i^{&Yfv6DwD6V#ai*fn${Lf -zPERK)$-ugXjP}vM5cBk5c7*6iRZ3nTJre9-d;6E)-LIc&xjx(<#6MWte99M+51EaFNTWV$PgK1&iiV+vI=h<|@%Cv$NguD`n+^a-Qk2K_UxF9Oc -z(>KmbD>57Dn#>jrGb(LZv!1r!%+cKZvbbm0r;YbshKRXZoY{>&J(44sUz6hf?-BW` -z>g0pWPiM;k8LjT2#q4YOZ4(&|rzL#T!~n(tg(-)b>W7Ly@b^3WTurnHX$Ep>)PZRi -z2A&LYx)Z&e;p{j~dmT)6K<@=S7bUX_~je_4{=JDsZF -zShTRA!wsOT_ZzDVC!*P(B+jnEMU`JT^ps$J0E00J(N%4P;z#KWrUs&X=U+#uRP0Sb -z{XE0x=`v(DzH}-q7D~VWz2^JC?t#Y8Q?gx~_;1L{SVkPoN*mclu!bQu*25%Zk3SwK -zyU3&phWn#`)OJHOVt`TP*MY3Gk@H*2(O~##()rP@y`%O!HGD-?w@TODY2I_dSPgIq -zg$~+T7Pk^A&PoeXyX3{T#}}RBg*#_t2@nzzqpsh|5P1%e5T?4cFB>oFJj$082ZoT9gBc6r*xv>6wTvM>az0#*zizl#m -z6T@DpqW5!l((6iHrD-3?jl}QYru?Ad)VHSCSC_IMXXm=nHT-^8==QGfpkv>f=FPK} -z=<*s!NVR_vpa5{rP{iOTO -z=|;AYRO^AoZB7Q-d1dGw0REZVVE-S8DL9S;9vLKXwo2M?JxNL08yC*=1mWXC_hY -zHpqA~!ByNJFXzbcUdE^RgGX?u)A6m_<`k?a>j{NPi(0frvMq@f!DkaueGYHzN6&Lm -zEBd<=j~+aKtSdLsJsc9%PB;J!DK~+Ykqg^9*b9loE~44=QT$CGrii@}VDjmI_-tdF -zGWi%8ZYZba|6e~*;J>?K711#I0k#~*Z}m)>9Okng@G<4)38k)_78+g)K84Hd+bp44 -zlu;afk=wgsV7dL9{;Xbg8usYC#F>(qe8)}aSZTLCQYGH28^1z -zNKaB_S?v$O7-v0*G5jCE#}Ft%jFEyE0~68E%@8p?5ybS!G~mm~S-3;$vYe_*Nr -zdMFmb3joVjc|^$ji3xkditxXD#zLUwLM*$P4zVk;h-F&^!gnQ939&2j2#C$$!XZYQ -z2|>&h3@TjvJ)lVz?B=8-qMa_%rW;zPJ{{Qgu3)`WgAlFaJxp@R9 -zl)dVjth-{V#buzCsDW80fM?fOELcZEDLWPH5s!(9cl6GSzM6S1uYGa#4TpV -zjne-l@F}DwU=j>zr7a%_2FmIhQbTT_ -zet`e)U5*NBbSXcazqg^T$qVxpMf4mIS0BGfToK(mO|NWV7L%49vsNoqE1yt$aCrx_ -z1c+<++&#oD;r)Q6F3;9}c?7meIa4=bG9hzja8r*Zt7mEELWY=fhy}hPp_bv3m>`H4 -z-NfpIT{X#`B17QF>MD2kaB8Dcf&a^r$PT-z<*sGFexz}=6CHN`XNU_xG=*n+)gb6C -zq793ShAtS7GTy>2-w@_222E(bOXG~PeXjrstQf1S{Pax49m9`T6+qUpcJQ9`s$fpv -zqy;HN@q*LzR~la!X?|Q@bQMBCJ5en-*v=Wx=^kyKhArI@u6Tb>9!syYHYj=8x+`?q -z@;3f7J=o$rm>_|(;5TRK`afP^CEE=-Ls#p&gZEtSdS`;!l(~uhx?y#)-X%rLVi?sB -zHZh`7p;U*8zXcn(%uMp+niK5w$4AFX5B{t>>>BIJjn%qz#hnt2Ggh&bv(qw9=-|^T -zoolk{Juo#!nc=f8d+OddL2WwmBAV$AXqC>nyyh*WhGD; -z6@~3-%wWD%AEOP2-+GnJlBBw_A5y@3xH#=ALRBv%&JvQkJDO19#(pWxwmIa8zOc6+ -zlK1q~qtc0A%6}!lR1A8&e|C_uz>t0weKNPVO9hfE0$ol^=vTYb6gZhF5+?C0pX2pn -z1npwxe2l^)eyFnaKxJ9tPX@uR>D|TsPW!GfvL$ypIhM|&O7=U#Hn@a>(zg7M=xmy^ -zVk(hSoc5gOn>5Hvgi;DIC~Rq5i5!N?Eoxo%Eetel++rhgQf{VjlJb5&q5A6Xv$*M! -z2Dy*lkqC3S@~~=vXalxW3Lkw9vgixa&r@l@9*^8edTGv8melk^M8z$ldsAsBuXD+< -zLpp^4H8^p@;xW^{w`Y?9d0c7XXQVJGa@>k`iit^n9?m!XV`=g>E}^G41d}E1KqtVn -zTM8aiChkwcNi%1MOufrMg_sBjF=_%ZrAxg8mwwr9uAON`D9wIR5c7##dn3`}8+em| -zS@+K9>A~sn*V!7`>~posd2@XHfa!cu9A(2HWMAI;uB$jQinn+zo)o+-wP&fvD<2m^ -zhk^McY#-)!B(~F!uZZ`;!YfmkWD5NELH{`*n+fn=i#GV}7v72MXhFff;e4SiR37TJ -zJw5jj4cam$8)y2OC%w1uVhi` m$Kh_En_a%f6R)@wAR-!76(S1LNkdNbWL -zGl&vGo(9@Vw3mlLk{e6|s6H_5OOr8=&Uu;7Nd-K-YF;SVMc!z&7$uM`)I#-ad(*33 -zB6yy7?uXE=R*Tnvq+2Ods1*ZOBXdvJBsDLx?Pz(b@~IW2e3XhVYo9n?>>PB8wR@qa -z;||iP=ii^VAsjSmaZ}jeRne)PdHP9_GCus^C^G-Y#jvUcH-x2tIn*SMrC1zRv!h@}bs=`#WBGBOoR+=WAOX4@w!l?0wR|u -zN2UB+5~a8B0BxI>P1iDyXN=}6Y)o5{#xJatk+|ldjCPjsCr{fkBsKp=+sZtgzxAek -z<1b~}X@tg^(eU$}1gm7AQ@V0$T20^&KY~$YWZ4(jbjEqtzH(j#+F+nDr{)fK-*>|)bLRmbZd7p -z1NCw>kQ_#9Urds7JY<~=WK?-vXVQ%;(x*KB4@do<7i``GT-TfvG!CO$g^Uz(10-&_--rF?<+O{+e)G|+>v -zn4{KshaF>SubS~@s0%J#MxYMk4yBUBFzn@?QP5dh6`6))C}oRsVH@?(S7M!)di+mK7BFHP}o^fm~$S`#5!1a9*93M0Vm_5+L1rL}`E^JB8*!y?-SbcdhdQ(f{0J0Tr{e#-0 -z2o2Zjo2?OJkJ#;GE{QXNS9 -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 -z+c0abRlZQf7MyHG{P3N>KtFe(-$9=JMe- -z(?9T&?LJaPc1Z5VfxMHE6Os)DgK+d=JKrgjTFszS;l%=|zv;hz?3b|^>h{|@>|_r< -z|J!z-*W0rlI5RX$d=TOx(zf)BjH&chhAK>%$^NXAFb~Ud8cu!e -zc`4X&4O7hOoO@scAEiJf@s;})JB6Q}y#YI1rDAC7>kk^fzD^NO;E)RLuV|JJW=|3S -zOSRvSVY8Kyt-spVaf4YB -zJS%hk1qumLv7fpXQ}>%bPFrZ_I5+WQzj0<{kLa=r@#T(Ps|#R=F3V^1EE=`m)}Q;p -zP$QS>7OVDeWF)z|JM~-Y|Mqv8)U%np{d(YbsNp4)Oz`pZhfpTBu -z?zIkmlW`%>t_sX)+KILfg$wSDzb8d8pFT=9+(1jT -z_AZ8Dep$|RYa3dy=>nKFgVR=}qt1 -zjDCv9rF@W}XIK~f6*8+yUkuUKy8wwL(OzVVsLJWD4OXjN#etv)G~H^};H}h_di&~_ -z`O#&c6a-_M`stvC3`z2n4ZDDHEk;k8^jmTp^qJ<`I1v7N>7b_>r{WU-(vTYXu1y0 -zg+tXp^_~RY359sJ9RTD;BU}@xGrSE!F@J(gpV=v0yRw{1ka5-GxrKjyB?8n>5{<>oVeyqE%%Q+Dj0JqhF&M%=XaHwk)OB4Ogx|= -z*ZUZNo9^=@AMPg0J&imTfscMf8FSdo?MkxWUb@+v-DKmmq@neUW6ay&?jp~SjYFo_ -zD!=rHZc1Pd71-5L_uIy9ugY3wunz|IMSF>yXGi|ZqNMoRcU|iXw|72Px}C7nMZhq< -zO{r+h)x!xcPn?e~JJ@7LlvU{$VK%IITA|Z7JoWwyscR>SYI|ujKY&+a$RDb8r1fPqQ8m9Chr-ay1 -zb_amQc<6V%hSh`(NjA90PjlyI9X>uBy|w;jdvyv#s~_lY3LhMA-^8FweM_@BQ5Ef( -zu0#Xf7Ja)h+(k-A@zWprYlk-Rj0&6(>;?4$&l2odMawXxO`iFk8msFcquYiQ4vcxK -zJdOW{b)ejXAG_t#EEfp8qjnJ$c4x>Gw0AofG-&p_pKaDW4*|H)yqxE%FSBO*?CLtM -z%*G=W4wD+3rTSLUP^vi~DVr(oZOjF-xgzgScD-DCk!jNFLobKhQNi<-M|x-PCj{PF -zvO+TyqK45^nsJDJKBw1~x&3g}q+Qk9L^$sTV|{gf;q`Zr5gCiI3DPbC%W?b$)?gp%%qYYi`2XbrY*l -zZM2ExPL(7trCO&%m4&y^p|+w!4h^o!7;Z+kPGO*iriJ)GDBUxObB!fxNNxXDINR -zC6{sjVPE;CT9q_{^DfBaJRpD)0;ynCC;m#hAdn-w2M$p+eNxC-DsaDeHDkwLPexC* -z+`hS|v;9N$GOk1157c>oWlx3n@d2`?6x$lYb-tgz-AHmCx;E7$~S1wNqMcUuhH66pLb?= -zlP%XW1;>ZijAo_;N6iDy4Eb+4JM;3xPQiiI15osnpd#EX6vKt(la<;*#Y@kH{^oznESnI5Vhwe -zm(dWogWY{kzu}h=J@y#*wfjyQ*vktn8w6qjvjKrvz_n%bAxmT8HBfSezz!|3{eiro -zR)5+dw#FEmRm>EFW)XW5l5B$bC(EMw8^>>yk0C#7L@)BgYSjLxLifFDg1`^EF^P=) -zu;w)Iz*?8v25dI`R`a~udRNR_iGx?ihIX%V-*W3%?ep%TlL>bG`7)U!!bNASJNmpA -zZ{yj%tunbTj_rZ}sPVD*L!}Ro%v7g{b3YK`w$zR7kEHUZX5x7cgFmVFj>adq8EiO`E>&7EZh7Y$50sjEX+ -z@nDoKS>W{Kox}pJsEd|)^$*7K&3p=)X*?<7(0kt7*}zr1xF49Vwa|_I#FW>LuQjq_ -z9KQ-JwjZ5282Vao)h>a<;ctH?<*dIjaV21LlS1wDG?K?`{@EU$2b}Am)^(eodD>jx -z4|z!}DG!kIR2I8L1lgz@zTdCmUI6*7 -zs}|+WlyG%VIGnn4_($JycY)Rt$W}=fl+Mf_UAxMC@1_kuC(=;t=Oq|Q|Y*vo5Gc#;=9RbM{^i0~t>>kVC&r^~QN>~ye -zwKuZp`5(6rP8FB!`|5h7NV_g1I|Lrn#XBU+IjT<3&hKlpttV{0jvJ)#4QgJFaqUE; -z>a^9n*ZNBqI^o0B=Vf{J??rajyZll-<==ox0clg$H5&4iwzszvr -z-iu;;aqog0Gh#G3<8NQxWd%%h`x=Jy$s{=0R`Yy$)62~soQ97moa49;)$aHkd8fZ^ -zVmqHYcWbPuOn8ksp01d>vsv$R9=a+>@knfFUO)aIDd#&GZiQIp&1gR`dK)@yv)?i) -z=r}%{0TR>DTqruXcy}LA7x4O~s6N_7xi%&@+qz4xZDD*4iEWiJ_dc|wZVCIxL^eK( -zPm2Dt-LtOsK}O!s!42xaooRm8PbXm21HTo?6vh{lX8iCm4{*3z@CfW9O?cEjeKq`H -zpR9i|I|O+t&lV_3rT-XBL#Ju}q&lu&zS7g~xp|4ZE&91{Y&C<-;c54RyOxKK0?yFg -zdv2LNcUS+A?0@$tLzu&J?Yb|LF~`IPOa+}5O(?Y3C2|G}2jA{1;rCFa74bOeS_GJg -zNj?u?CgkPxn_4ZqP`jX^mZBg6CymZuY3R3&wt1`jP92UJr8sze4K3tvj@4e7Z|i9z -zx@IbDAY7B@FXu~^L7JzczCk%k&6Y4WgPmDoylNQ8&o -zpvz=lck5f<;>9uSX|thsJ;GC_GX9^|eycq=(mmF6D{gxZ%zCeBgUyB+=d{A^6?R}i -z!0*FR+1i|99RgH+<^(SSkx=V{Wo1^s!Kg{7Ooy$*Y{BID`^cuKE$LAjFI@aHDfY&j -zYj>4v)qbZL*6~>gqvJo8O2hk_>^ZF~>YoX2OX|nEtFo{(+V~RpH3$yQ!4G*PU>!DrK4FeOZ61 -znyc=X%VE`Jjn9E!8yoqs?czm$@{Hwu&KLMrQz*W572kTTjc?UG!?(1ETgv!WvwF18 -z7rwcWQJL-2y5~E7e5|Kew??mO;mayq#=rJ$r(;wk*WJ>~Q&+`}0wrr_YdMaH6eQ0j -zQ%;^p?EOSp6j{m{$GheDGpcGjjE*WmRscz=5*}wA=qk{o(|`iv1omGsNkozFpew}z>#H@*?czO!cxpMEqxRS -z4pbj%PxO=B{@~m4bSieDpZQR*Y(5AVOE`kV#a7^O -zvC9xH2JPH-DuK}J^{o&0gOg0i5QUquPrOzk+3qK*EXcezs(eB#5qsPifCWsvk;jb< -zdEC5E=0TL%@n{DO(DDwt#vDQ6WoyS@AGdC`sBOo7x3&2C9AD4kYbCyJF?<1Ic<6Ki -z0}DKSBDo(u$pswuO(X$QY#j1{aoJ|`p`jv|oN8h(@^*>VK%SWww6&uS3{mWsD?awPz`zVpf}{n6RjB|dPAN(=nZ-Dpf}_I -zgx;WTMF6V>PD(V2>K7-lt*vdK0j6PoteIV -zFsXRvf&QG>8UUWQ%G!Mwe?7ctY2fFSoMP0QIJ+pU2QdxkVc--*qfR2jk5ag>y4Us{2DlCKd1gGqgVI1ry4XIG?()tq*uC;bY~_!-O`4rW?7BhH@#>4x#eVo|P-fnBDH^!m -z({|a(!@s9;uW{DKN0#*^L7980fgbHW&XoG9y*94}6_g*@C|6rV#LZT}H}%U3jvjLy -zx?AOXWa{-+=1|uD7+Ug+E{JRQF!o5x_mI&pNmjM$ -zoKQRDfq?N3-_;cIRhz57bBB(it>uTW$8wv{^xaL}b&uPwv|NHb=tVcYm?@j8%6K+c -zl>MjU8hx$;*W0 -zFOxC|k&~&~G<3O&Es-2FzBpp!aaEy^H@l!_a#@I%Qg3(ER95;b2g^F1$-@=3=cTu= -z`0J9j3;=RlW%|j8^}agNiW45zHe#@&_Pp5VsV?W8Dw?}O+lA`@I@Z(sV&8_K=O$TF -zl~SP=9MT0HGOpP7*R(8tpLj2sYSq+}T`%2WvQK-key53O)#+0|gfQ7AOWW1=pgk#exWMYr -z{{4A5EeYe`AVW0VCPv(mPvmlJYUfEe=Nt0@iS)Ssa(hvNLY -z$>xh$c?14K`4*GYCiR!pC)wJ2&0CiYM1V14tGdBpGGDjl?UPGstAf_WFSzhT=`BFi -z-HztxTGPlDx4$Ds<$ir(%Z5Bu~@IxX8U!OIq -zTU;cP(TA|jnKyJZi|GqPy*1-(?K3I8ZIdUqN&@!?ye)-MITy5ExqCDmxBQOYIklD+ -z{G#uN#<0njRhc6PhfFtGP`3nJ*qG%n3{BZYbKH|tY4f+WtaPy8H?MbVFN!O=i|>5S -z*GkomwpK~V+%v{Bh;Ojv^9-0XlWaOc5iQxP-0icw+2eltv4U=t&*MiR^Lgu -zCC(M)Z@QQ&*QV~JBhVPl>!dO`s5;mW23v&r#hY>*N!67<)mj>4=|^_*Frw~{3N${; -z%&@rlQrjSfFC=T6Z?y+)iN;4euEHgIPBWICQCT-0N3xH-bMq+r5nVNYw6ELtLFnGh -z<(|W;eoUjx>wyQSLwniaZh?N>V1il;M~HH_q=ahl2(Q^q^@=PS7dkP>v74xPp{U>jozbLN)7~PyfsV@h@Oyq=2JD9WfuKy6?dub`cEU(WXjmv -z!E^P7u7>72Ge?%%TP9YGC+%*yHq3mx{loIi7t^sy!$~5ixAO46TMtLzW-UKVTFUY<*?@5izs;iTgxuD^l`xC*M8K$S>ngRytwmpV4F^FuAo$nw{0-#+F0GsC}5^J~)wO(WO!Pryd|+RoGcvDj0MedJzBGc* -zw5Y*zwckxYI9!`lGicnYTk^oQy6+U5(|483j0ewDU5p{LH^a@_V7od5_SU@I(k5tl -zzA<{+uDcaGjc-#n8TQ`u0DINI>?daC5>$Wg~zoS(5p -z-8*xoXT4!y29J%?`I^?ZotkrjuZn`IR(mMwhD$07uRa7HQL=upOCsR1#a48l$wGBd -zH*U=TvPFK)QunjS@7`m_3wFVZDSZ#H3%(QwCV#FhWx&w5N1|UET04xGDZWO5p<3^EsFz&xA -zY+rV9C6>e5SSBTyN -z9Qyx$U5(rM_gx_f561a_dws18Ca&Sunsbty|A#A(ym0s5bA3~NuG|EKb&PkEAH>30 -z!TFBU6RM#`Fc^UUj$2?rOHMs-grx(WT!ppRBi@Bpm9s(ytRpx(BuxwkEwRkk4X|cm -z6ziLo+buf1hWCGtX;sA*HVSDCFF=-1nE_YXwxXr)5$ur{H0U1G?vY|)Tm5x|hGao!|~7Rr2m7)1-kMHKy;ZY?MJ -zg6LuB3yvM3zIGEc_rG(CI5v(%U>hL<_wl0|5|8gkOv(THEncE8527zZ+|FSu`ON>) -zwF0;Ezi|D`XZhT;X9GIdXH7vW46CgGthUx;wdIM`mIzi`Vc=@ZDhxY@uI%HlRTASO -zB9QPWiVh5loB!LcUAV`8;}ws*YyO%G^c7-z3^C{Pzi=&q -zpl(ycf8+HYZvWqR9Vy^bcpeH)L@Yo)Sb(-;0gA)|6o~~Wl7hr25}!wn#Drm_0+PU$ -zT4+xg#cJ;rA{OrKQPL=zuQqdwk8|F&xsO$YlLP0nyXRW# -z)7NDN85CIT7&p7a3~w%5XD4sgHmf*Rv0=HwqUvNpkEJmtOmBKzyYSU(bBiNHgH6iq -zH}h;at_>V{TpS!ExB7ulg5{s7hQGBAIAnGjsLWDQ;Omx$Y6ZhhDFrq95tXT*;-#o5 -z++H4AR$A7+y3(%^@JYlafLGPD!`)y+Y)x6RW|sj&)u7kipD#{_DNcP^NaJCc*DBkD -ztIutS_Y+L9sJ&_vpuUd2KgW-J%+#z=Lg}cf^U8#q7bkgrkIQ>4%HVe;sA>pGd)rxYr+1lHYkwOiIt_9p=b(uEja;4UTY~1g7QO^tXCmL0KQ& -zkxeQP*-?8%Ywkxd1h(QE_6(8R?a1W;g~S*ynMTl9eSV^7`C1wChtwZ#2jD|fI-OLJ -zFr^dyIS@pYNE9P)sMKNqZ?X_K7DlArcf7k1Wo)|6cXCuLC2_ -zkY0FK6auHZE0tdsXDzctmzW}OlvH}>D;pS4P0)vDX0r2nn#tO&C6n+LtUDWn4aolb -z$f>#!-rZUqc`fMe6#hgp` -zH4bKmTWa_Qhs66G?K9;WoVoaiCo|}Th?X82M)F_-NuQ%F9hIplP^M7|96v;L1zAB* -zYy&Oqt>Cr{bO$PQYKire+pPhzysrmqJXm=O9+Z|M<-3%W)bQ7e3|K(g=j$~~UKN8BK87p> -z229ds8#RTy6p(V|7fh`Yv5{GN&KzoF0cylKNUW5$Ly>1P-+%k7zQ{iWZRU!KV(H)7 -zj(vYbftNw)3d-d~1?h6)#v1jSX6nC5Bu#lpX#BP&aceWR+Qml3=-bO_JDw{0ozD+Pb4KL*$cvp} -zYQgyhVgfiE$`9`&dDz2;ZzG(Is2q{BC~#Vilgi@NqxvE#f(67A?r7D}XI~`KM6y8z -z_pwpLB;TOhXQ=YWJ=k$=$mH0zph43EeLwNfJ>DZhP|29xUCR{a0%tZ=DK}fa=5WxW -zFSs7Aj&3e02%&#uwNvcAdr1erd1O@V98+tv_YRWKBFfQ>Z~+G`zXjKy!nC!zx05Tf -zL!OX?&N@t{!wpF*`0$|m^?FTDS%HIW&01m|=)OW-V6yd{E3vQpBH`0*FBe>|40*$Z -z@5d?@x*g!jrKv&0Y%AwIHU_+RB1tAB3_e{8O?$bsm$P~)^f*0VM3}K)KKWI!4GjwQ -zeZhNZK39{WH$RNy=#g*BM&-E)EpZyI*Yga4BPnRo%KIWRV5PwXJ?2<35F~&ni09?DIS&gEPhSqzJc$c#g>Ml^81>rOeV0CmH*ZlZxjY=uU+yL`7-j=pbc -z=8u)0@pCO?FdB$4Wb55=?zP(Xeqn&sq?7q!&+DJ`QbeZAVLS6SCkfTbQL9AeSeml@ -zsM8%5#xVI>HA~BlfdV -zcEF0!K^5JVO^?@WK9r3raQm5}!1~|;K;JjE~42*Hl2|;({I6-mE+2|&3rd#GZM84PkfpI(gz*E^>ekkoZZ{lJ~R2h#g6T7vBRxku_Fo#A(J@KU8ELQI~qoCL3l-gZ8J#Cqp -zYt>U*8Y5jV3K+-+z9KE~Fecu0>j3 -zw(cMiyf=t~=J}WEBs?Ia&xUuyA6|zKXd>BDznEEJ0Kv78#^b}e>XZ}xW;pdv-aQY{ -zzy+w=dv0i{n&SKalKZ*seMBEoOT9_Ck|?{>YXCNRe)OoD*VMQ>sNpd*JO4=PE4xBU -zcPw%?58U^mBQ{8BTulZ((F+efUh&iIy+AO3DGffn2~WO&^1Y$#5uT3ayUzEU<>UEq -z^`O2jUf}M}tKh-@?ZsyAu6;rgr-~fZF5N*TUrCTV$e#S@dH=&~4g_U!;<2oS$tH?& -zE!XEDsZz^Ly1@YIDv -zu3erA41j-co)?;0Axv|h8KkI*;ZU65Ge@;@uX3#gLf=?9&?xl*Yc=f|-4zJT-L0N*-3>Pitw|aS+B3`_yp-zB>*@RmBqKlkw_~MfIk5 -zon8bD3sC&}!8U#+FJLr8= -zYWQBP#b5G%66+4ig4X;NtQOMJVM?}Rc}Y>v?Awk@WTRabngy9m9eKlQBjS`A0`LC_ -zs!rY6fbbYvE|z_~>hWF5PRUpQ+73j%Nw85|Ivx5WLHoi&_B(tDL2v{K(X!w1kJi9N -zw-|l)t0ePghtzN`r56LrUWguhGY{;)S{P5b`yKv_Y9;Y=eM0~OYQgh!ot&@aSg=(> -zl(ZMgQ^uuVUd#_*ZV&PN?#G+|@v_;C?7Vk~{m&qVXF{GyfzoHT!JR -zSx9#*{23$N%f1O7k5FG6zgl -zsQiNh5>u#QT2Akrys$;W`6kL#q8v>RPd&!aKmY{*n?9pB!Xj)r!#T>iMo#YB`RO9_YL#9>{ -z%Iti*nx+QY1l9p}t^+Hz1_VuNes}p5HQS$x(5{I65Wb7^lDs5d%w45EtO3Ce!y3iXSx|qI -z0E}Ua;}vKoC*hLu#eei8Fl{UkTVzj)1zyfpjJ_opwWEIgf-p9R_3F?`%0hSi9?{xmOZ_M|hl$D?!!L -zRth$17)Re)3#~J1MF!?gVIY85t{bUs1H4$-uL`ZS1Nmy}e_;q>42dZbw{v*o8I{w@cgP-9X-rJuv -zJJEItP6k}zAC86=e$wca%f5w!TG_1yu==JLwy9u1jgw!N@K -z{C9F>kl8LG{iEqcxmx7*`R@IXBiSKL6Zxj>t-%yHYdA#`dcFkKD13zk5JrdB_1CG!)H}mL)K-ltAQ;Q;r6b%7*7j0Z7(@!~CWQcnS-T08 -zoZn3Vn6q{hgutot#pE4hs3oi?aCKVEbqlAmGHi5}6c;9S@+?bS2^lA{sB -zj=P;$sx;rRpfCX906=;*;PG*_MZ&&A^SOu+y0S@PDY2U{n3Bd=sbT^KwSlxMfGN~+ -zo*S2;V`iUOF4isOWb{S}8vxmO6z6C9 -zFe~|rrqxAO0iFkj$9s~d=5qvfnBM;}L`CJU?!cnwg#eM!VqG8CME{i@o`aW)DdTj% -z8Q@{Ou3&*eGL>^_ih4p}5dDTdwiwm@f`~p?1`6r}6b}Jmpo`-kckI=0-sZIcWciWW -zaX*h>^nAMwh)afM;jeKrfX{|;zmjmyvRA{q&lj*IiA;<&cK(B2h+TpkHYW^@Ve4>1 -z$Q#StCWM$vXe6N~P{2fWA@`>ZJ{VmWTZqJmUcw~-^szD*?ebG#CApfE9ij6?XM5^X -z8X5)KILcpm_qNXY1D+;e@>&@)%5Y1#cEXKEwc_XR?+U~iS!1r}VqNmSm3^Q77=7HJ -z3Gf`)pvl -zG5jAvl=2N;gt>-R!gmTpPMhYHliSDyL6aWtB#&w57ffHkDYNv>mIF^3G!HY1fn;TX -z_Q*Biah%Kd^>9#AxP$m)m&>A0LN(X1U=Hu+kY_2b)O{BkG@l?UM`Vr-*j^4)WyIn2 -z@%~6L&|?;14%aNy!0F=r#C@uPUd-WfID@)I_mF}oCaBX900-so8B*Q1$(z^$#jc5D -z5ZPZw#jbqF7$Wez`>}|ezgXo5C5)|N&kxsf=83kLHO%nY^K7r|iOPc`DbU#9xfZ1$ -z?lWg(zWM-^#_ItY&j^Xnz-|LIY!0M6h<-t -zg+bPy6w4#N8?QNxpAm55Iq86Saxg)5!n!Bg0pbB+YE&Ds5kw~1_K6e*GzpmrO~aIl8Kbrh&V;F%EeQb41pn}}G!j2w>2;_dMJ)XTV6|Y# -zerq8B8X{BA8=e~QH*hISSBxV34d~Fq2EMu+*kRtIruj)uyOAd@YvcRYLkZfmHE9Ro -z)HM_y54rxVY$}Jv_;>V*|B{7C#Qk4nbk|s?khi^s -z4^cqz)$gc7ehq=*zS4Z~CufjxJ-nFEWW%P(UK-Wktx~YY96-(k;>PIjP5qq^9gN=i -z7Rho%hr@HZb_d;Q(ErhVCZG_c~jsI#Mu%pAf61T;zdUQoq(w=fG4v8 -zF}5t=4wen>81yJ+$N|9RZ`7Wgds6Nlzf>5#?$yostnQag>o8J-Dzt$b2OK -zrG9%R-)Uw!KaW5`0h?!XM3RkKAdox_q-7otx`R?TU_N^nXwg*oTQXWvqOjH(X8AMB -zXJbFrO8dn9P&yDT`B+6%F>o2Mja~4a`guoHmkv(jT{re9ZrdH^P2Zd4VmpL+p7S8) -zHkjraDg{>*0QY@h*a1gLWcHP6+JMs(Nz}#x@F0N100+w>0Am+M#Oxb{k%&x>r(iQF -zAvSi;3nfQX3H&oV0J##G0~R9J4{Bg;{G%qw5_HpEq742J+>YsAez&dhO-yljVPXk8 -zTrj3TkVEsAv(+|j0CF9?QWu|v7tx@Mu!+3ha^5QPDE2a`dSGfB-9P+sJGkfATT8O} -zxl9lr0)LPN{;8vY9sn96rxh1G0+Ia5jhzAoZrI<298JJ;BiEN6xb;}2*8tJNO7?(q -z1XK@QZx|CZoX_P2ih0F9zAi|D`(N`oM*WE1PLeT4f1)@)V_-VKG@=;;@I60cfXG=h -zMr7g{DaDiL=N;#?FmXu{p`esSglpVO!f<*|_L<*NrCNAAp_!ks$elhQRg_2JyqGZzX{# -z)|yYh@5VO6t>1vafnx{!aT?7h=I)G;n^Xi<`_@T*Kp}x!0rMi*s!+k}>m-^^458mp -zV0{AdjSw2f-H4q@8&R$&Q1vS$ra+cMX6lF*&dhWBbBR+JY7-`FDN+#7CidyU3=%$5 -zv}OT`KjY`(gf)v=!Y;uGR^~KXv(P=f0rwWud&L0B!8`aUg#R4E#gM!1nn*Xo+~9Ai -z2m!sE1gjtM>+pYag-HECQe&UcpH0)kJc=R{-2qS@|M?qeRh$Ga -z7G@57tvO(M=2npl_ymsm&vBiMoaZ{Cn*?;SZ3g -zVHU{ne94PhATS{dPht!NvTVZ3;dyq!b>v}ej|Tm*Lr9h3j?za^T4JyFFr*cbkvEz-{b;9^}}Luo-0X}V~0nEoB%*P^lD$Tt{^JL@UJ{h!VAF3Kiy9^lwHO!UCEBR -zcl&(4kRymBQRFd4Xht~vEvGrM$Y8DOx!x{b*H1U1kiaDc0WUS2OBul3vXUpoVAsJu -zSeQ(GoCGTk;zamN{Swpzz;o8G&w= -zf0UrZk@x}r20_J6u>_oiwG6X&8LKrraM-}zVp;za@L;(5t7V2O3ju(G3u_d;Y~8st^)&#cr=BDxab>oSbszkupo;H -zr!<7jH_%E3(S%SFXh9W%4Tz4vp;v=Vf@9fkyLX8az1Hb@e^>J(&=EqIM6NF|UIgsL -zs1suh+!Jusz+(N$Vz6O0nnRC6GyulMh*_K`&KD!6JEJ -zPX4|9KEpi@h8B@35!i;->OzawA=D01qE5uCU};)uoaIOWZ-UkaG93OC>}Ih_P#vnM -zJCnb4HS!3+iS=x^$9j_>r$Ca!|1pjbp)Dw>6>&YUu>WpnGwjOne~e#Z5XBArIjE%@ -z+b^!zl}N$ayTM2VWA-?vlo02Yfud?n}Ot!PZ#vr9D$Q%yi -zK$Ou~UBy}t#bCOs`)OKV*9Jsnc|ct(?MK)$uZin=q8;(icE>A4`Z)P`*-Ucan+6Dt -zfqbqpu*0=5>v9jdfdF?Smy3DBsmWeJvTGOKAz|A|eHMdBouwW%e?VLWD5g}U@3cO1 -zta%m`wg#mEE(fBBY5Get4laNeOf1O=Oj5Y{wLrDLoO -z8e$MJj5-i8nGDDFm|~qQ+Wn*$JQs#8!1+L66DCGB8$4JvPr={JL-Am^k5`}R(Fmm5 -zfRC9BOe>LmD!3wsl{6&V1TkA5#@AC_8tJdo!5~0?@(nhjFd1e9|6$xKcOcAhK5Ppe -z2=c;z(YYKlJHU0a9sQCvlHV{2qa%_%hyz>cFmi|UUKyb+p>%A230FUSjtu_9bu$;( -zxI`P@D7BBW5n+B6{y32P@9eFJX52XRdj-(wL=yeKY9y$@|5y}s)#C+*U8pgbtShk{ -z=>)fqI3gl-WZAY1!cfF{*pLGo`!Rykp!#9@E}ja6qRE#O|jD4KA?;Ih~aGm4ux -z^S;xH5H$3p;mzJoB=22Hdf02!`04bgRYrNUnBazqP80BM1$&5Sj0-qQM{LC*wueY< -zE8i{O%6<$Nz?6lzY)zISsTa*0?ic8?p;L0$;(LSKR+vM_u+?;tiT2f<5^O*MYU=_)Yo|jD0i!5}ejFV2Vk30=_RlndT}!3F -zb#Da$4454%aI;!c0zR#Hc}5hy^IB2hUg}IIb-eeyt0?6Z{E_qie%*$px$ikQZNABr -zJS!$ief{|lmVaHxMWB1MTqW_AftM?h`Ok9YSTTq& -zISv8@9(#Uo0gpG{M38Hh0Kv`3BLE;8G(g%2e+vsQp9Cpa!6hTn^kQDqopT(xPptMq -zg5P&sA(E>F-pwadz(ECoT0n}ec^d5`_%C5$#dM;!R__z~DCP6Bl#c&w`M5j04ET;+ -zIp7H7CxrqUB%#7D^by3w!(W0vMUE?6;GRAsbQuQIAX)TF9**xNd^iMjf40wPo|_1k -z>hta$nMj1#2D~FG3Gg`tyk~|sZYhiXT1LS1-C8fD4rA<&!j2_z%FClh&MvHAC-(s| -z{`~@t7h`?Uk2Dm&0u%Bt(~133%^2%LxK6e}Fz)Ro_@$f_vC>0+DO?N3ix3@y$8QVk -z{x#&6B5VnLM{rgdx(sX^!SN1!3iiy{;$`l@0%&NrWQgBbh~&kok9ctZ&5y88gs%!-9}~joV$)ZeH5E!Ge5fi$m -zQ$W_7S1nI_P34+YwiMKd5kbZ0mg~wrJmh)bth2=ZMHafbpfAa?K3&3>n82tp6)@QMx -z&C6>E>dcE@q${QAg0lc58p#>VJoGsayn({KwPijwz -zUCsUMm+)2;Ka%g(jK%G_uAI)9srm544c -zjf9V-QRSy^Se&7M@-yf`BY{0>EAp-2%FPrIJ}I2(b@k*U$2BVe(83OOZy0SJ@X0o|j(Hxe1i;^l -z1#SmAH87U;^j~nj6zpaq_ahhhJc<6G1s1P;Yr}wwqCLXZEGG-}O~@fDfCW2Q$`^X4 -zzV;1A2Lp6&Q-ZZg1-FIG|2`R!_HDY;;=>f&#QMD``ZpjpS;|exQpXVf%4s<*?Y|ZneEGCJ_PXs0IU&2 -z?m4u2lh{y!4!d@5ol-YbC7vjMI(GNjQUD>HKz3UVKPrpYEa3!pXLm$|Gdv=4Lv`Ut -ze50PrN@0%^jzf9OBuHv_tqv&M3uj_@iBnw5!A}TmHY~}5P3yB*)lV}(5B{h7?(5LO -z034=r<=Wnyfzh -zCkmLc)21!%`&EBi?VKiBbk~c}&EC~fb;@HUzMle;4SY6K?g@2ueIHvl_8xc<`1z)| -z)Okl0vSgRwxpnBAA$NI5Fn@Qt5da=ORGyY1poH)KSC7;R+&cD1v7vX2JyJwR|9GS@ -z{Qs{Wskg+l7lpu|mKgKpwc%o4xHC7rB!*HI;+h_A4aPKD=qRKcJ2I9`R*K)rPmMZxh8lY(af#0V4b -zAf#IfdKQ-jlLbgJth|rIi7CXL0~T2hE+V2D_NEdg`(f1+1H6WgO#MrB>?6%y(C8$6 -zuH`on*8e$V9JAQaEOMvu -zH;JYVsBaJ+JZ+?bh@tfS>x+;!B2kLn&=!B4O6wTiP^U>gmk;b(0H<~{N -zEIg27CpHp9H#0VtiFB{W!tIJXa!_)%)aNrg`VDhhM6VFhLWh6qzdOgMAgT -z9-yQOgT~jw+W{|B)SQ#|TiQN;>`t0Iu9a0urgO5+Oc5=CW9TJEXgaD6ex?YuD<@;e -zzeBTd45|?64COo6xuh=EJ74oA5Xz#=lbhVLAUG5`qsB));S;VEgJ~p#7x#_@E{YBD~L$XS%>+m1Rh52{YT)ZrOIb#mB6@{{1ieF7^Hn5J6YHj -z1OeDxL62|%${sS{aDJd`P|Tb_7YbFO(50>fiYHeoyJj-|ef`_6I!UvFn8b>lTH8p+ -zC+Z@O)%(Qb_n;Gz*q3u2cZ{4-fbI9QHTQsqw5V?8BLZ8F0SF_aU4U(8rLxg+GosrA -zAC;KyRG18+LHr~{gWG%~Y5R!K8s3vtWI6y{mOlzea_o(0Dq-k0jnDK;Ab}gLW>8vCQlo0sj0uJO2NXY}O96aSW?+)21A($@ngkRupvjmj-ybl-4`k0E1DnkBrv9*fjE}-#C-| -z%|?tR>NlWi{4(t8&Y9eA;q0`CF^EN=vs={N_1_ux{xuW^fM;ZiLcm7YMQ}JN@LIHf -z7Mk{@VLE6o56hQZ%@8j&X;9CxD-&wu -zid)^8B5V!Va(?`5v~%r@l`yq6%)CgbP~9zRBucmQ1{^tz_NxPilT~tF8}&W42-7tx -zELWWA>~q^K)p;0Mz|U~axfEMFPf0`p!b=0Ln>65n8QIyK4WJ^E44{-L89?cffYCx$ -z!+AVh*lB??*=YfA8ePdw3xcDj_&|}#P75|X8rQ=i#$LE72o`$AJI9TYTy>@&=v+W~ -z%(F#+H7JjDW8&*V&r3abFI7ocTRy8n_+lqTUhFSJ=i)W&`4uU7n~?1WFT@sb$m-&| -zQ((SDXcA5WMCD>x=vd1IY>&hPeD>5MNFbdfk~7+PehPZI5)+) -z(TpHCNJ@~|93;iLB1lS5)f^->jIhVDvl<_*uje!dX^D*?)yBlf2FE`gD(y81N#qEBVPMaTO6^CyF@95F`hY`1}T?do`nm+7>4loHn>% -zl35Rxnkwj4=#AqT1rHFa&-t=c?=9yEbrJhmo17|MCF%$YLQgipgDSFlE -z3$2!3J-lwDUVTi!&K##P-x2<)UuW`dd{|#5W%}l&TXE>v%MBZmWXJ2404TSN_(pfP -zlmWT-M`z&pW_+-NR+bcJ)~!0`t3?Ptd(aiEZK+l1ABNV&Z-bhO?Nf8Xd}ps7)D+$I -zM~QBCSl9qDf}Y=#?+PZ>!<;ynlSKLpZ|oa_YF|vwEj*HFB*N2ww%nOvHvC}giGwBv -zgxuCSv!;a#{0m^F*(@IO9AXp>Xx$)#wVG=oNDpCgJpSs)q$FT8PiO}4n9x6@<}$Vh -zF>_^ULMg&*rEqBBt^!|KhTQlqZ_a=-ETAnm(E`CzlT}R(QM7~jcWcT>PTt8$5qtqi -zOIA0%g0cV{H-xW0JDb1>Mvg#jAZ|DpMEd-q1j1LcwigenZZ~G+t~w&KzZ#{xw|*aC -zbdPW7xCR$&xRvi~<)8+dZh+x -ze-$_TmPm9%HWS@3iy%jGvN_4HLBfHAUbY^m;D09h4f|V6P7KL~9SKSFiu!at$@810 -zh42B#Ui*(cHJ`Rctd7g{* -ztju~=-$TqN{)rHrN*r@L5(|RUf2J3LHxU9=qp&UfQc9g;K&wUo(wG-|Sl>!z3t`}- -z#r4gSyY7}xC3e#(w(6cX4Sw_MUzh{Ya+&AwR}nSUrUUb=;LVIY7A`vjOH2F)yOaz5 -zl#^=eh#rIYIi}zjWLTFR#!FXCHlB}{!yo$En6=H;r=q*ATNm`S*gPCPu=aI#_x^g{ -zZ?KGMSb-bimmYN;j+)PU`P{yclHF~3bH0`Qk`hM7#^m*;Z -z9+EvGsKIV858b_KTV<}JEp+1hsw}gF8SEkAEMaDSwFERi$|Jj=lxA-)9`pS}IMR}4 -zRRXzRLnj4peA~%w_&$&HtF{zb){9SIJ&BJNZ*iwcD3Lqc@5rEYQtai53$;y4e@~Aa -z6uj#F8kuXJw%oYI$OOdFqi*!d>KTbsPA~Z->=_f^V5kF)*E{iIM^;XCN`VY)DtQS$mC3n!2aVTjPy^mHzoOAe|hZCGKm8G>B -z$VuTda$pi0aUCo7WHU*P5U9>m-9)-?cY76Kg89Nf`2ZT@YI++lpIy{xtUu3-tvZLn -z>I-_iQ`VMYQ`k)fAKPMNf&*YorJBcGay_B-mE1EA^E8YgPXb2mz0`88XFQd%3y7#@ -z+^-@|SLUyBJ*qp%ZWvkUC{oGuLi7#t&ZJPJ -zNrIv#8xxs~?72YB?l$?~<-cmKqdPEB;VI1)Z8l2H0*1reC<^Ki^TiNV!sCrA`kfX9 -zIUGu~!QoKGE#XiA*UE4x@-Kq -zUp{MB9T7pf)=w!CDv(3NJ{a|@jv(EhwJ=B7kMG)ubI4C+Ml$s+t5Ui?ml-4Gbj7Ny -z?T^pCbTs6X8=Qz+>6}mb!|-5^+>?q9=SSY>sBH$+H!%nFk8ZH+rt`WBN|}sMGNYD*Z^l{c6o7k -zcgYLfkOFmD@s{C2`-DjDwOW4jZB7UNk1vF2jgHA5dG+J!#d-LaSVV&9DOqwBw1AX~ -zh{+*I6oieepALeR4UtyD+nhFi>H~qLZA$$r2gKG3Ogo^y+Gqsi-cXM%7XnJ_gANtc -zG1)x?5Qg2O1%uPcm+P~wK#7i(_!=TKruP{gV>>x!F>z1MKN=G(vRKlIRgrk;@g3J! -zu949%vojfhPPgMgG58P7GNd>$^?F4y -zi-!R|@SY4G8e;yQs9$!J8L;}{ZTG!k4mnS4d&bM{~6J>T3e -zxZ%)hYRWgW{NnosmOdu?s>32aZ64v8Sn}z%tCQ%oT8rg4+-9%OKp<1{H~n9;{z)g@ -zj1_58^!7&JX8lxNCU%%LtiPZ57t7Hx=?yq@Wy$XYHe+zuly0grpa^5E35U{NHQil@ -zeS{u-2NO|Tm+|LIhFkWKSck4zSNjnFieRL__xYOS104WjHCZ%Il?d(@khSokM79uI(Q`9(M1w^FPVzuO8ten -z&;nm=em(HsQV-WitGvb7?~svn9?RWs_@Xb?|D#Vw@ttmnExE++-6(6k!?JtyTTw(A -zqw|6dx#>anVO@GOX7ov6=>A1cTu`k4iv=Cw#|*D=yl1P`nq2Gk+|9&raU3VYNk00W -zi4DsU@Cy4d`GTWm1m#F6I-TCf9wJ$fYAcS4!bubXA(GSJaBjVx`)L`x^`#`)kEAvl -z;Oue;4&gX&55^)PH8=Fo1t|$zaf;9`JI)yEX -ze+U+8bUl-*ouA5vq;qlu_zJp)t=lrd0G?3OpFetr-`k`I;guvh-5NmuXN*e0Wb%54FE;|9EcJe!S(iBm9^yDJvCy7K -zIuQlUMG9C_4=&y?DE%95m7tbM*Y8i_RYk6i&WVe6A8%P -z*dP_=N`*D69?3$;R=`!g$>8H7$Kao>f}pdEQ>!ady#7R*c4JTnU!uZ1_H3wStEhQfrk?e}aN7Pa_fa&UZeN2AJ%dzYUg~Qta -zU!_6;%(>%W%mBuQ&?Y&Sm-A0xL)H+G(fD1`LPI2Xl0PrV10&B*t7)X$V=$OB55eq) -z@)$`Zvqy~xnLUvjdyTpcjo>^&k#nLXA3~TdTS3cP;|87cIn^>=-#l=$aNO!xJ}G?P -zRl87jkmA2G09PR81N+KL>HiOR70;yl>+ARy-0PL7gE|%R;^h_+7%e>_sUc?>_Zh&nZe -z%rY6bAPh}xH2E^^`F@kVXP29o|Uo3hb?7a -zX)L+}A!xD-csrog?@sbYlk|5WTNA49Sng>WJ>j?phwzOgy^<*)#jzEV^k6?0Kur_2 -zki%@#mRE^35b0VSGh`Gm=YtPDb6NnG5KJZ#)LXKjw>o&v#!4+f4({N8D_!;2P_&0I -zexv8fmoIkf$?FO$>d|+QMI9kZ-jKH7#l@SBjq6{wA@2J~qN%&34>R3bW-0P-6LUku -zNQ)di6?Wto^Do~NN^)lFwpu-(@zys|O4}8rw$W!Y}Kn5OcrQ?$D#+pd#2XK-`@cXBc_eR90SW(>s -z+Df`T4Nl9>GyIvTi+|%yZxyh^qxlqG>cA1=ZZlxOItqbcyR4~g`&Jm0X4k0L)zABhg4hDCD37NzbAOYAWVWJ=tkI(xVTXU>Gl`6llP -z-eeh^!d@V1i-ylASL{-HbO1*PPm)**^oS?|_loa08;8O67m6M7x~%`^9Scx);QGrT0Ojm4U -z5)Irj3s5$&%#!G0(1H6}{hkdM)qf<}xCNgNWeaWU>}t~IafB;S>agfTdZ+(3EBNq+Fcj)d{x=nZ0hzowCdxb_+>nuN%NV3{oVs -z7oo?$wA|in-QdiOYL#afC-L+J3w`6Jqa{x3hq;ACLY)x5Epc@Q{40A~CH`ywS6X1i -zu`_o3!c-tN#QqjcVq4+hE$D2f3`ONE>N6ezCu!#Wy=~$V&+y`n{U$?7 -z&J9V>5Hf8;fe -zv%@a{rQ~3 -zHbng9YKhJ<7Jh&q+rqgURP>cq{ou^)mf>*o63HT^7m)?s8r~9J2}YHjC0}xDB?HY% -z9TCv>02LG}*8xK5$dx<}5aCV)lBNxp%preJFm! -zhwcHJdMkv{@C)zhmu~N7UljJBsAF^FB4uWQt()^xRba)WzF^MsP1v -zR>Cf#(LYY)j>&XdSSY>BXn@qduUt^ySWYu2#91t-?FL>FO_|>f{8sx#E)yV0X2V8A -z2{-ED{y)Chj5`m=JM`yEOP=hy9wQ#qhmU2!Kd5DSZ(2H|lhRom+H$jb_(6fHs`zJ} -zi_DB8MxF=*#?F|R7bNWbICk(inZ%c8!O~CGBSzf1G+#vKTVZ;G4^sm3?r3zWgv+m9 -zkXp`JK=d=nIXm1eh`4TA& -zE(#6>eGlOv!EG~7@VEDwax5!5pU_uvI}m}TxwW~BZNkL-=tZ+ -z#>qg@p71kVFb#v(vxn-d@*^WG^=NzVnAjl|tgcG#pLP)Fdjo%K}8p*menpon6 -zv;agk?{83??&X7vQl(z6w&IlpbWi8^f$yDYm@#SVDyK2M~%SlN~MPj)~%7o+Gl-Svn{H%<4&DDc_ -zT%>qESp9i@Wq>U9gH?PMV9uT^vA01=%Ss^tH1>kGm&a^bcjMr9(#}3uIIwZRgHFsBfAiNhq@qYu_-8%V@au3)CozGK`qaE4X^%SAM&K6Bm7=O -z5zyuDBVW+O#&*763O}OWr4Sn7S27o3CsJVwJ`xHdbvmcOFbaN}!f7BS$b>R`Ra14M -zPI>hQpWI>Y+m@)yZ&;O3vQ;rwW;&UCuJN0b(vyUx|0he5c--3p#Fcn|@a;z*Ch6b= -zMGXiELTnT_B+)$aihda@ev~Nd@8ZHdH{WxrXm9t+@#^>iR|ouO1C^h@Y8Eb8wg>k7BT -zpoQD{Pt6m##9X)V+5AHoY_-_^ij|iQgtt*G4hhQZaDY7EF@I?z@W=@kG7K8LtDf%H -zAzrygvFjgNgD2R06=b>-rGSeJ4coZU#XK5cc%8Gr*exXkxHZVp_IftPhVk?LQxao6 -zji=P6XPD&6jbqM!_r|L-x0gomIpL2}oW2M=ACVta*Yo6NrA;Y$nOVsFhM7@T2Th&& -zIZvgu1d_4od#z7xEb?q#3srCNd(l<`Sc?%u=1l-)tWq|135sjeg#o7Z|3x24b5}`|TL!>L5=<8?>2oIPftIm=Lp_=+@xG+fQIdX04%eRNl -znGKwv(D&}bEB1-4~;-WlM+(GRyg -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 -zi#P&1z%KWpfFREAa8r1wBu}Lej@tetc -zy-88(+5uMM!T{2>6Azv!b?rch&{gFEY(v*hd;Ybbh72_=oViHixUCBPCM=Pznuj20 -zg#?%f0v&kJJ8<=`^6?LJrxj;1+44pL(IAWY^?f_>^*6JaB?lyiFT2DC;Ep6-V43#p -zz}4usU2?s~TFSAByjbgzLp5h|bwNxQZQYP?^sIw3FTs3ci)ev$rv-Ya8(UC#chlYf9X$fcgV5yy94GQfyp7{TxPXWgVSq30zu|BAyDK`6^N(1M&MujMZqqZxA6GDB -z`Tq*9wNNN|Y@CCYL^zQ!Omi35gexCIz6`*bzltskpURsQ1qqS+I06M&*^ZOqA8+Y5 -z!ICo#@we)@Efy3a{8X?5wS%RO+r<4Nh>Bo@d_(h{xCRG3EL|Uemch8rZ`db6aMA#SpfLW;m#Q?duFZ=&>GQf`wflIpv7$qu?&MC9U*Ct|T% -zqM9Hvc&%+}2Vt}XSb^BFYlf}*ak54oY==v1*z)u~=y9I)!If-xe{Jr7bWgsh{es+n -z)NYBF4umiu0Z$jpS@VN&E#T?YyST>2c%g8Ajtv{6qT}+Z!H=$I$yi}b*S90WG!XaY -zoC(l(lD{p#H~wJzK##y<)~h}l#e91C)7rg0m-TGQijUuu@4kQet2fyxDG&GL463jS -zuak8dh8xB+R>;)nC9GaXOtsJ&9A5pP@^sOzrGX&RVd<dfry3`Ny+^rN?vX5@kN=X)vlbeEIj06ItNo=cj7kWmY0o<;6aCN~ -z#Pa6N0Y}Ugu|$%{W%CHIwqyhrm(Ft(6kdUWhHEbt&8Dy9RS&xoa2{^^!aoi1JyepAYL!RR{!sl_k|2jW$&VLTT&93eJm4F4STZuzlx_^)=8v1r-B1wji7q0No5;CZ#w -z55wRqB9Q39B>-x~FlkmjNK=-$`U*RY$bLw|E+BPbXBtFQ9<%_b;Lawm>N)drtsx_b -z;HG2hFO_dH(}gmi{ZOWsttqhUpkS7Xh`BEcQ%Gh8+_>?|NQyq3wU_N#WWb|roM|~s -z>B-nY=DxWP1DPdf)12VD*)#_-8(l-DIW#S1I>$mHlTCAiB!_7(LMrfJEUwxX4YWN5 -z5{Fxb1Sj9PL!BtY=G~3H!S_RKSlNg8D@!hy)T|?aLD+keES_bjsE}X2@Vq8<4itt( -zl8ot`@=Z1|1d+tp4JU4V94-=3&dSu;Yf*V^9Upa|Pb&6$Wp85xh -zWn}~pYy_`=L0HK_OjS6Vm*FyAd46mZLLDL1aVQwwwxu;v1Fht<`}Z>02b9=mjHd`funmg+)uywJaqoyi_PwNgc{ut*=^!w+UH6DuJ*+ -zo#2ZkcMJOxq_oG8IC3-WB8^`lO#O7B$LY}h-+pX7Z6L+3L(Rm1j8!BiOA>*lhUt+M -zA9n`#ajic6fmA2X;C?_(LV$$hGX~-F&v@V#u2orN^|0xnhnol1d{uMmrTG(FZE-Z< -zs#8^8qK4qWe1^dxJM;>tk#;Q>5k|}+oJo{IJTQI*cIImhlZeuJ -zgd}C9+5S9*5ix -zL{dKc!!e5Q7fc@M%th?0r;sL*t|@t(d1;bsb^5zWp2zQ(cx7!4gt_VEh4`a%J_PIf -zrs#V0H!2zn%;$faGqsAYuE+R}vuc>wbatE&kPoKABAfO8?AADL#N(e_|J_s{;gJ6e -zODbbcK25#M@Ry8lBK0|_$;8aRaAxkcZSniRwH=Qbb}TyZWqF$u&FlGWJ=l)8F5r*6 -zYCL16zg{xAI!SSj;WF^g+Z-3Jgj*)LD41AC8s*%7%2w##^bch_WlBMk=dU?#$o`g{ -zUa(sI=r>#gDr)7tq9l=HI-10msb*X~@WUoQ#iTd9s6oDL!^#RSbkU){P&Nk;Fq(aZ -z8|ckw=!;|bWUgS}VgIgrbaU3}$QX$G@hc)S;yZe|CbR(R(s71o|-|Nu`$)aSrz7FcCaBi|{YakvT}Bdmb!Kl^o5n{iV`#WSWKKZ7Se<;W6IG -zpa^JD~-cpf%}%fWu~;!B<3r<9UTnhZK75f-7>? -zy99Y!d^pe3712{h=n7HX2Ts^P{48lDeS*Vf+fSYBuS_+Xz@wJEkhsWSuGZZ0TM-9D -zg5v(n<0WOhlsb_UvpmBT2_h_olu=S3wJxQJsxEu4N{IS=>ol;?Tfr2kM -zJe|6N3_}6zhEmm^<3f7ruUEw0NTtXX8I6*f12eV=_PZSZP={eB(L#jYnwgGet)RZwAmo1!SPf4%dq3g5sqFz -zg{6imhvz%H`kF81GaEUGsRpW3=GOlGh -zUuhNYm}1@z(s3knGAXRsbHyEw -zh=BnKZ8tCUc0KwP-GQ+JK~bYsbzIg4sCs8rIeoabuyCD%n>`oZp+Y9^-SHT6sNoO- -z?_quMH_j{WrcT#1{aUmBH3B{^t@4mt9uiujxuK8I8rEqNforZ+ct1bJv#XQ@^sWH) -zv%qqL%afi;PjlrhO(dW3dHKTrpoH|SmV(U36e-J@P#W%u=mBo%OYl0%U`t -zq3*`Z1N$@bk)m%L1$G0!V@IWs9^iNC1F|;*FJsAM#|C~b;-~m|YYa(ct$z`+6yZM< -z4Q0TCBGU|-c?{6aFWb(#H-BpTUQ0RXt`-!7@c}v!Xv2hLCgMB`aXGUFCIoK3#Qv~8 -z@8ELvYsM#VX=i;vd$s(~%VG2gY2PWOGb!$~^qZbq6@S2TVZggZ30=i>9=<}WC%>9h -z1LWM-?=~)XBIbXd(8nXn5>!Y~tKYq7KQ_}L`&9+0n~AbxyJHS^YYCo0CRPq%P>}G< -zxZ`!qpaDC)rSW+5V;O~V--%{ -zfW;PXi>ps4+R0wtE|Q&3w5NsBtVr3?EkmO4R~Co>f%{;JeJWpi+M+@jK;iC^2w`H1 -z_6EbQ+JLHXVR -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 -zs&`h0t|ZcnZO9#bPj&bV53 -zYk6J2mj8>_PzZdNaz!$~o39B2_kz{++(ZJ$@Gjc!xtnyu%T+rb$y3 -zaP#o&DPl3@cVmw2ypkLuf$Vn2Zi$qycQ^dkT-$qlo<{hrO*j0Q?udM0I>t@`s0oQIH-9I$>U3Yb7OJiP2TcZ(9C2cQH&3VH8J-T#xR=)r0 -zIWMQTn!}5-b2(l*NX*&Yxxn4{rpBY+j^!n~Q-{FEgwL_BY6hmYq-q{4;c~Qj*hrg4 -zg;cj7A{8Tz8ytpl{JF9*HM8IGh94o?`hTe=?GA2mt0l-wQ>2>_*2Q0Viad$1ECqlq -zZKdh!dSTA*gkV+2>gKhl>+q>g*J7vDw&9dKl -ziT-g4dY1>aoxsbHDrQ^6DmY$unQ8Tc)Bhgj@RI<5Hm-a8hPg+LsSY?9yld@dk*jU9 -ziE=Ui&FRE9gNAEXL~21~t$2ZccmW)id3~Q9FOmRSvCr>x&0Efe@7s=uxqasd4en*8 -zT^1LL+#B7{Z?P6Sm6sD;pGNe!7B+l!+Uu$Sqs(`Ic5Cl}!A0K6x1dD`;Dg+R-;n9P+u -z>(fSebWe&2TR%CiIW0B7wlxlBF8#ObG>%J`5w@Mx-s3^Z%nOfqIa%gD2;SlO(3{Xq -z?#<81`;@G2Na;H1jf{Gs*BF6_lN_8Z|G#B8O+LA}2E+u{PTGdE0ERmDRiYh$oPp14 -zG6p;2anxAn)i>ALyi#Dd$9Ay|AIWuS$#XaXxIJEXF9;LfVahg*Ga~f5M3p`a$QCQ( -z5P^1aTDTe$#t_%G@HFMnFBY)qdw| -zz2L3PU3-1uE0F?5$q|q7b3B&^^3h^m)|Hr`Pa5kJH+MNiot|((?~`L3J;Y?v)UG1T -zD<)&QIem_qRjs`0Z+Ue1GTKkmw{cbH*~*{ZnSis)=! -z!@NxZbOW2wS%sRzDa%a4&-dF*V)%@qL^J{*FF(eSVW#M$AkbR8?k+q -z<t -z*V?e;Ng9CTd?>Y4cQi>06H -zw&28oCay0;6UV53qPo2-yu36vOrKAc)6ynDfm%EnKIhCAJ2u69G?INXjhV2dT|(Sc -zM!^Z*iEB+NpU7qbHRD*)F%|i>xB#fy^PheU*W3;Py{;!)hiPce9F-o`abv -z6Ku0un^~`<6pcWxjnjXwXz_($Zqarv0l95_7NJEA2$fC>z>T`fBQU3k&KyFZ7F8Yv -z>r1K6&HP9Nu)5TXuS5!mTPbha)z#_?#&g@|7ebY_AG=_u5Orud<5b#w(72rPZ6Sc~ -zj`mtJ??u{d|Ddc%URLY9HoouSx1#}LS)p>m;BwdOkR`(>MNdi`+Qa<)mXN$egSra; -zsj~rqsSk6DGx}%>X2rWZGsFZ5zpA&)IwPMmd9x-D)yKp*eM|ou!!sK3;9=dH^5)Sl -zA){lsy!n3RWd4cORO3B|HFtN8*-~9s_p**Dfn{myo3^jl@c6LkT`GT9KON_5`>%O= -zZ5hi@6KGO;L3zZd_Yr@#Zo6~=52>W!H*c-CeE(=fHFiwUGnOA-8hf-=0^P+uy4Le>C?!BV+D+gOm|5}<7NDmM5Y_i4S -z-Vy8>&Rl81&mWzS8-Lj1Qns-{ljF6;Z?H%_bpGSz*s%*#h~oKBshFtRyJvmPas6od -znL%xhmlVEF&q;SaD)(rP2eo9sD(yp7Tv&{M**HHC(Zkxu=9kR;J@^HltW5hbado3M -z`n&vB(}t#FWnY(`di&r0*R#VJa)HK)NaTbkl4H$wF}G=soK?55%DRq7Y$&zxTf1ruQ -zUH1zw9oQ>@#X$yU2m4RYWJVgFzepf^9Hn%y7;+Q*U)b|MryjV5NML*?Q+v_8G_^fk -ztXRbVt}2W%$`ldOSfMhAbpKm9Ez5XNsRu01((yM2#mTP?+SyYI|Fdeo -zbyG=4K;XS(eK`?-#oepU*U7TCyYp(I!qG|mpkO)9)*zi>5N -zEM#a3wxYNWSkgqrqrv*hHqHiL9d&C`LK)Z1Ya=ktxp63;~+n@wXr+<3Wkf=-?)AE$=h -z+GOWn8Rq!@{mK~K`_&rr0t6BVAY_gi(6F80m|Z51w5z2x(oDy*Cu5xNF!X@5!DDD+ -z=(S}mMK%o1D@a*eKaXg6QG#fB0B!(VqU9Okn-eW>wAEtFud;!}R2#B&$K=iZob-Q> -zEdAOfy(0KAlB38JaC;6K$wYdVy>nkWXC5!>kJ+03 -zonh&?1|pLCyG1=nO(5&Vo?%pbV4F%VRp?@r4$?|tn)-}L=-WS=re+6VoH?vWTjF|p -z!4OPT;B2sV9#v&)ipm=N3y2KQO>N~6Bwyo-fA+J*r+pC&cbnDUcJ#&PnudAmMaah7yYiDr7(iQO>Zz -z-k9*aNcGdE-;C{x;6W$M2I$7HtQjvrIUCEml@Kz9sp$H`V^Z}+b6_K&O1{^3oo1}< -zG&xQo_t184{BUZlfb&Tkb~L0HfB5LQBSzr&BAURAmcLz`Rojpg(2G)e>y63$euke=i5# -z2{w9Kc-7u)!#ap6Y)I#~@SHRg1hjeA>78Q*quupE7m3?uHde6L)d4pP&6$+$^`$d& -z<^dL$YH|RA@dJ!{ap#6RXReuo1>-O+r(c*_OIXN!{tr`zgumGW#824* -z#0`6sCDw^?c5S!A*TTjT4ek4G*L`K~A}jRJLkWEc$pe{Oo)+_5_0G;>M&jmr?zR4t -zz(ArChlL|(lwtNXI*W5PGYtb5=?yP}VOcuH(D|m!+WDB>KiZ8W!dPm72xF17^Tui* -zlHS`keVdzp`+P^!vkzSNEOqLBDpy32P>!52ewbeKRKdjMoz#9(;?CFz}LG>Q;zFv*XISSx{+*cYZx8_n#q=m -z|A^w9XU9V|#yuHLolFSuw$A?=&uZMGV|izA%t_DhGc -z&CLEd>KjJO@2{4)2Gn+C527JDltP -zrmSW(n~O?KuMGZPhru;gh^_)$!>OgVE^hPE6^bR>=KEc^li#zU>1CM{J_bw2eBk}* -zlu}a#>|@W6qA>?I0*|s;ABW?Z0koXhk$HlX7*=%;au*ZMfV&HfG0NmbqR8=DxAIHx -z3|*bRrOCF)>ZP(;WyX-yoD^{eSW>gx?;@o^h|A;axef3PLra%ec4Ze6EF_WOBy5=M -z*hu6q@fm7;?LIoq@bcQ@xj7S19K3nHVVgcHj}8$l&#=xg*J7=TJMn0BRWUQ+tv5bZ -z#E9qn7C2X29kF8sJ_5-7vylkoIkssSi4?mGfp(c9w_Int>Y*UR_iGtVpzpx>V*+-} -zzolRo;%~!mUj{ptXshw4zGwN`e;`^|#)(iS8)i(Hz{W&mh*X$uwZO(O4}r{kA}ubT -z0kd0iB-aLe?@SHFl0gk{5Y-6|cHxrfHbo=s7xY+gSYXbX!;%UX$xqjeoimH6oZxn; -zImSv7E073kz>R;cb|CDF>h4qEMgfpbJry`!0>747iA{yCk33|%P>i6d{ViTeTyvcGD%AJ5C*_ -zLTX_9`lfXm4Mtq29Q~J~;AOrVytF1X*ZOEcsaG@}u+jc06XF%xAA)RGXk>4&sS*h>!2HW|e@CfC~J>r(fInE;7o -zNq=|<*AhH`R9Sd0U2W-WS@e+YI*En@8x^s?nw~#irg%HA!Ff_lWonO$E4?r!i`&P3 -zdg$Dg9_EJX-RO_{ahUYw)Bg`=ZyuLb)qahCGew*=XHpzWOHC=o2|>jn%Ty>FasbLw -zKtoLsnJLgTO3hMvKn27UhlD3XQO2BdKm`P&KqOIQP(YM<{H<&4bA$Cf-{1Rr-~aY~ -z?sN7z_qos6d+l|tYh8NTK6dVMXH4WV?&@o^W@>Jm8MEX+l2}zyGsffhmMSW){{E7q -zugHVIn3c2u@6tsSLLxXtYY9iHI*AE`c!RIhOS;qP%klv*74fRz4y9{ -z@Wirm*;6Yz542ZCpp8R(0fvMVI -z(;z2M9he?zyq-;*z1DB?;RY|aUJD|6fMv#ozav5dz+x;1=f(d4>R6WUiG0-XTZAxC -z09_XC&8_4++^<^~U_|zE(IQ@xaVR+fJ0zpVv$hNJUx)MM7@|Qn^+eY9u -zM6t}$v@m~Us?&x%&Z($N9NuIW^{CV$uQDyqB5T8$`JXg(Zg^Uk*1#~E^VB=jti7*= -z01Ij!5g -z9bESO1Qp*lA~XTi;L4q+URis%`e=w!gq3@*@E_6rH7>C9=C0dj!GqfDUUr|57f2_f -z?CWMtf=KH0%hK(9S9`KK^2h@Nb~J5L#rLue<0e!Ei04q77nQMEI~ogNt;ZRQz!?Ch -z14K^*{cFq}Uz+c%&MY#G1+KgZgaiLF2;l@*?9zAq&9#2~&8=>Rt@b3|_L_MiqAXD1 -z!Yx~tb~~ixAk+4FxPLAo4-B}Iqus8&a#P`81b2Z7_|gf`z42G-&`A%S4lfd>^{idW -z^eJ}d<;8LPsHOR-G;8ZX;x}9j&7U*%RlqC|$zu?g?>;(M% -z6r;^&HbB1**uYM$3>}|#x06WVp-)qsRzAbxX%8ahnSmv}>kICreK4i~A#$wcZoOG> -zU{cyhC>Yajjh1GygoOyf^(8F1grmMb1dJo)7Yw2-4=DQ47ZcV97RTs21JN~3gQ=4epgm#SJ<}50&e6RT^!OOfj{UI3X9jlJ$yI0>V -ze-iL{wTs&|3BXQk2YmnDJo&RyL)YVhk$?4onqjf+XBq6iS3w=D<3@tk-T?L5Zrlnj -zd|Mj42VAyj2!?OebtFrXA(Z6ES=B)dH<1;WK%{WkV<|>(l7rApmDL5#1e92w{>aH9 -z%crZaCPSM~5z$MEX@=N{Q!F*hE$U?l#=%81t=~oj1#IEP)Wpr2PFmN*GePWwL`u2N6Y4DBVp4KLA;%xGlT_j|!!XACK6!b{J-4m}795 -z>|}Bq(loSn0)ioK>t(iM(y?N4;FM>74zG(xevdc9$ViKU*yvJrAX&vL4YeqGxt1NZ=X?L7LZpve#akX -z3!oB?b~y|JwB+cjzEJ$hls|t%$5q91*7_yP9szW0=C@?h4?^tC?aadIyb>sau{C<)0$P)iCblQCB+3?cH!4sVUblX;udbsNM}h>y8g=C@sq -zs@*DW<1}{I!1&OAXN=h=8DqBYg+7YP_UM&plw2I1RO;293-xwX{SZ|bXlibE;CPeT -z+5mZ!fNolg?uR(%beQLz%B7l49NLok#Ul(8%}{D8M<)P2ty2lqz5lOb+Hs_P9L -zWmw5|jGJfztJz(%YvCIM4G2+W9mdvHS%;Bw4ikM8Thq)za{T24&W1VtTCtQ&%BffM3q8p_lyXuPp~Yt?O9Xt-YWs>)V>e2k_VVr! -zb0=Y=TaBk1_ny`<)6qP3WI@I1dsEouR@ao`w@YdpD()#3K)_*t`SXv2H|B>g@7~AL -zn(>RSerxKZ)1!MfJcWJ{Pf}Sr1hE0385srn9VT=C-u0I+WIW=T|1)qzi8cdA?tCO9 -zYlE%l0!KvO_y_(YaKzW;nY~Nw+be9>1b9dXDeb0ozDW#kKcY6=L&TuqsrXm0o5q`F -zbE9J(mr3x0=b5^<%D8H@Sw57`{7j{@x@V$vW>;~Y+}%V;&kyfN`T<*vrg4z~U=8UA -zbiz&?+)Q}rT^-%)Z|*vD!>m(JE}dK~rXxVl -zFj86yN$8}|%sXi*qYKI=S?w7IUkwWWAWJCMHNKb?TVK6@7-Wlm`j)H4zxwDJearWG -z9L8e%#9I<4%jKFHmbBQpAD}}9+3tPp3LrI;p>SyC2o#>aRv!^sc+j! -zsE8ea7N!auk%cx0eyANKR5Y}irXg;=D50Xc8mfM%zD=2jP!W(XhA#JWi?oeA3xP2> -zWep+^ZjZ1U^dOk4+6z(77G__e!!ef?P#nb5Z11R8(;X{85_8L^=Xdx$;{mt)S7`^d -z_9fdKm3eM#*@`)ffhEE@MtHMrIc> -zhz8i~0)NWg%j69Pi7mN1FXL9NWXxy0M7&gUkvY>d#_-6v4ifce(^Jw^ZZNT^)E75V -zHP;IIQwJh$BuHH{j|ND7hPsMa`Po3klAqy80y;>R)VVV=WeEowOzs+RGFrTARBg-D -zqIB21YdBnY*C>nj%}50|!{)9>MBgrBu*(j;!``)%k0PTs$*QbEjW=psNfM85K&$Jw&pNQyXopwT7oop2T -zdc#!e#kg%yYst6)fvs^!;G?0jmee5bI79eoT}zPp2EjIXu>P?h*4jbpPH{uh5S!Krhu4?g2+Hp$n{wnvt+siyz%XRY -zOuymM9$jEKDXmISa1fqOgoYME81p+47QcBBDLGG@H%s(s|v!zQpo;=?%}! -z1G%ZE7+4&FJJ(agH4dsPER5rj!xR;1} -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 -zONm9D;v*zJT&s9Pn(tRiO+S+Chc?@J -z>Z{DpA^1KQ+EkK`aFd3=5A2kDP8m?c6C!OI^28_!6LayrVdQEv^D_5Jwt#pL*!mPJaq3`qf0r{ -z>+U>?>%yVz%luYrA%5dd;IYoAL`O`W@PJT=%s8<)c=3~`#?4YFwXX~lN`BIE$2#Kw -zn=5}Wb-B9Mlk3@(snCawNTWJ^?T3dpC`GtnJ5Aiee~CL77tFT<1<$AAyoT-e!$RK# -zIvbdtL3AC_d25w~paM-}j=z}OAfBk$`g3P}32%zVyXcGReqh+uu2)1A5~w;*UfRx! -zkUl1|5U92>w}hNS60x?ggg8~VD^gU3(_okp%#jf>GA4X!iAQyvkNK$s_D7`0!!IuP -z*mU0=ag?RM#Z|AU_LrNb1`@O{af?78E3wLX;IWeNCeH& -zOdP9%FO?=a)fGPV2=VRJ(Y=y7oA=lW{8mQjndJo+7S6*BJ%NZkS8^jLo--9@NyPUIbZe`V*4KoaDL#8jdJ!OmKpxi@ov@p8%KtQ!FF2$gM#H9e#8J9w)8+}al_#F){j*k6T$$N@M-}>sbdHHy(*8%wJby -zH$`*J%N=I(R`iYoC8F&QuvK2~?qWdZ_7x@_xpKnaVvBC+S%EfjqeEdWlzOwN^8wusW^DQ275EV;93fc!M -zP#1CV&*Gtd6Fpz1uISZuqpH)iRI9(GKMB3KTLwRPzd6+2da^k`_!>xQaH>7s(wq!I -zPQl$9kL4f)3sjTAP5^7Csh$SE?TtGdezG~n3KAQCl03`9wP$&SKz(dWS>0pN;p)rd -zdE6!;m2pzJOW^)z%MGBCK^>I<8N_@BVv)diRw#0*BatZubr9F0)EX$grF_T|#ypLs -z{>DFSxc|HDpwPkm?_kkjIuFns5mT6DYAW(gNZrd9#80cteQMWfONC!#IP{7bNpY26 -znrwC|JK!rL%?0J+ma_r3_iJ4b63`_3Gr{q87tb(- -zQ@)sP2QV`uMBIySL!pSx$hy1mRU#SL2p%(8NQYxDGk!HyMDA-SYFvT12`b`<8d8iz -zj(Lb0vUZ*DvhGt;Jd^hqE|r}PxpRY1vqi9MrSP~YP}kTjqDgvh7r~q!O>;5OBWp(^ -zIF9x#{zIItjNk~=VFah@GrXRW3X`=}iBiijdFD>BnIri;BN^>tt`nMz+FsnE+*2e9g%V2K0b2v)xqFZ28zmZK -z=6U9}nc`#W8NZ!S2tIU!i^UH~!w;v}66d$0`nANS@nS -zjE{N6Z1)!jKmqK3y`kZ6h|F~cgdfcWvq>e)sQ9TiaVBp}nbPx_%aLzR+b$t{fvwhpQt71mBzVPdRZxn8 -zZkA2LMvVc}VR76(qH>l^B5r5dB(}hzX_Pt)k5D#=q&TvA{#G`LFr8(S_%(zJEXsq^ -zNC6lkVql?~)EiQU!_HKJIyhDDPxP;z7kCM+M!Fe{jNg%2dp2mJ%bL7XU=9lsaeyL?d -zQRa@L5YhbGuHd^dZrVI~cKJf|qXLrB^w1-8evUtvu!;dfVu@xQ@B}*iq)Yz%S(p6z -zNs<=D`s8w`$K5er3G(oLlB|`wx&N!kLUZq=O<>~I<({Z@_S@IMSJi2Au9kjuHA}`l -z6wry8g)G@`Pd&!Uz;{-((}p!7XE=jnBs>q)v+Jz_MC!ffExmHV2z7KkJa6_`3aTrp -zy$f6?6-_)ie%cG==61zO|51F1Y -zcHwNWZKP?jPIQam5CHB{eXDe!q1zXqrwD-9(h9N#p_31m#rfG}hJ?P@US -z#K;Fit3jEzH*Hx0azN%1kgLeQF9A<958+zNedNIPhi)zA(9{o-k7G>EJP#2fM)Yf(;}C%Y -zVW-GvVVt=Y8rEZDplyXA3T2yZW5b7oIM2h6S{{)z{w@%^CXsBy`vsa{$86xlfFKtE^9%n|#w&NN*jhLED-^*_q#3PyF_+DFK0 -z^ok72*GCu>%SDTQ=O-zq7Dd6Q8{3-4k6Zh!Fu!N#OHVwGj30MAx-`EodJ{6FE^W;8 -zfe!?hi_vR4zp=Ntu9cCk!5`5m!dEnA;{p=l?kUAr_iQ2lrfef7d^pGGr73m2m;RpB -zd+EdG$W)>&nt1Jtw#q~OfntvB$5P7tiA7bjXNXqF%joIuwJo(Oo8q(0Pa9c3*w@}mp>(aaa -zkAt5r*h!DG%Inq(zL*s~w`x=9j#E|;NB_N=PDInRN5Yw-;MX;uHHD>-smZ0aUzuB= -zyxin#3wy#7%_({Qs|X!q`gEIl5a$5!hDzeEpUj*V^<+>zvf%Vso6feuXOFj+A*|Xk -z%Jodo_bF7t{BhH4#Z@PZ1@v?oaDTC`>7G(>$7%s#)da|4=I`bc*x9{l-&-9P-Un3H -zf>8j-8llKNpfMJMIQ&!RM8mLv#5d#e3y4UJ#g|X(E9OM-IF0D8P6vn9Y{w$F8vM(T -z3Rj~qbb$Yv5F6fIbw_>+pz2Q5Xd?#a8?3;3NG;}P!rMZr3_&=KqHoWY#JN9%8?o%f -z?P62Z#!|ZSZ@_vmXl^HU{0!g2H--GZ=Dh8GZS~!%i-|9lnc+~$l!`^^Gyrue{UWs? -zATLM$Q?w>%NBWc$TGDpS!Z4(Ejq8X=lREzLc&qyK43$bHg%8HE*W<$D&tW~nAj6?Y%hXI3g8fVu% -z+x*#|A=>J=Z2iofOWie>6cQ2aKu!-tk2#@-%9JvY3!nsPrg~j|z+N9?h&58*h^+}4E_5Eb4C4V~3 -zegyNMhVZO=(^K}D-+0aOS;+LCcY55eh;|+G{ffm{-&vmvefYy^Dbts}yW^_K4lj2? -zKqq5CNB5NU>gl>tOR2Zzs}Vx)7yWuL%QSbfM2=(jm;(_=K@zXap+K9xM11b9r`}c& -z<8R_!*4L9k?`186Rv~BiB0ONk>V=xL9dYr0`V!iIe(R=lqB17LQ|D`Lg}hRZtp-xK -zLnE&dGbW&B%vg;Svn_FvoGCG=Ei%!;XpItAgscuR>nLs^WVvH&-{0M^3?f_?|L(-l -z3A^V0{O3{sl3K_amL2=qXNz}DL!q}8`CL=x@Agebr>*}PYx-mCUE(ECvXCZsZMybG -zW8CO(ezM$@MyC4zpWE&jgknhKcMT8&n#`qXuleh@bx{N7vDn{O%MvkujX}R?71A!E -zjAVLLC~};rPApD;Pqu+o_p2A>J05P^AxCbC7S}k9dMPyfPfcT1*6p36DQ-ygi?iBkGOnA#8cbMmNSFt7f*(K+j0@x#W62UZ@>*?iDE#Lx%StOU;e6rJswi0X(70?QvP}=y-C^+?l;pc< -z26aQ!98pY{x1XJuJ<13$hlF&}c}-e`ta%>v?hV;PK)v1%eri -zJucP>Q&Hj~m>^dxG+|&-NwhTKI38Dh=Y+nHF7uLsw;V5gtzu1uDy0OVS|Qc7aAwuiV1IT8nZJX+iY%4 -z^0pPbr}P`z__XS-)3smnlg{l89qZ>lDJ|sNw7r&Ke#dq!DxTvGxH12fv_vL!%tWuk -zeov|MZFFZXfylY(*n&NisZ -zbZnudc+Gw+b#73y7~_?RUCRB9hp~noMQ1Sdihvk*StawII0^!V5|1MFLu(QIDU2%2 -z(lHswr=5pjm#yat)X?`howqc8yYA?BGUVcUOe;HGYbjhq)zL4(VP};*thqT^xruRg -z8(%;D+QDPF-u5*~If?6QlA5{Ai36WHbXfQG_qLsjlTr05w!W~z=>GA+rOgRU1v8Iq -zV6jL1`7Ks|J<6+|L}U5QPzVcs5e*B0qF}6jN?lb%du8VQW9Xmv7p-Z_)a4ly#P%*a -zG^yAlAiyX9_PtV|+GT0V|EZD^(e(dCC8cP&VY*66&}56ELsvtTwMtdYbN*c4iccx%$$SIvCR_yI@^l`#IlAjYs^VLP}h?c%Y7MkfJJpPt0 -zeF-lT_0z=HNMG_fynk|Xpr_&mN=G-=#b4EwD|q>XHC2lQiu=nYOQ874dlXgk#b--i -z{B(xLTME4IY%XsDfGmYQs4u~K359)BBwe_6b+~Y%Ear~49(5);T(_{CNBr=JkU{YZUyPZDet3k@6t(JF&CnNqc>mZ>`Qd#rYp34zG8SNqAjG>2)Q$X!Qn$Kfgu%DaK5gZvn1uMPf#^f3jAJUBsYKVmr9UtInQJnVV2Y|ibJI0j$aJo3wG7ule@k5S?bAQ`oUWNLDQZdQk -zs#Hw6t9K*sUcgSK1*M7X0CjHu6eIn+V)zZqy0sD~Q_V=<+-p6Ws#m_sXi#qf|Lp$Ustf0B8yj~g*(TKg5^|vqb5zC)KestEn#2l9b~00hp+QZNZ{T+1I?DYO+zD}#5xdT=+&j7ZQC -zSUZMx`dXKg-k}O#3f-h@5k+IM$}|w3uw_4{fskCblr#{q!niw30|8yFrGcoH%qk$M -zabc1M!j>ZcS$%2MHk%wvw3;; -z&;r!ZrR%Gui(NPk^#r^w3n5X({7Bl{D(+B48;q*V@l-4}i+xtC~qS89Ze -zBz}MJ#?m#8ch?@uN2s>1{E1i04-v+n0;>i{6XRC)u90*2RCI!dklf@{a9$y0~eF-M#r^ -z+if?^9B;L4UEwlRyt0Ao&u0bh3e9|yG}LP<;NABkL;gFY-c+y5vjj9?au} -zxCHm^sIvMtz<8HA--x&4mZqn+c^}MzRs29v*dsuB*xg)vVCGgl?W2|-e)nhWEo#Hx -zS9&%}9q-%;^FC4d>*AU~-`MBey(ME&10y{QUmMPujZ;10x)Pca*fSkTq4`abH?(VN -zmw8Bo(#ve^vdm_ByZH}`z31WG;0OJ_U0tDzeMU{?)B1XY6Ee#$pBcCMw+e$*nG4I` -z60>g3j#6VD$XsB_!u3K4W9>1)-rFN>1w8SnyPCL-hIm3rqn;29@iZD5+<*q57yZYMsHk+vu7qbnP4u<{R;Z4$9-Y#*Zq@Vp -zX@8imIHnXuUjo_keyMS@88vQ@v$ZjKSJRzaIdBfhsc<|O8jiRcy1_CiKltc7`Y;*< -z6LG=+tB|v+SL>PC+06!9>)5CK!Tw>#b#8c$lIL|)1$j90g9AyRCBqQVkP&X1sX~Dw@XAq3bxT93KHhc|8 -zn}~=EG%(HguzSA>x0vFMI#M7wS!Z4s%s`EZp47&FR!{nYo_mt@qIxRzs|@^0+m~7= -z=&`Yu+9eWhsU5@o8NKHC5>ge#p06i_rUs0lvl1GhHr!T2XHe{|RVkk;^WQYEF4#}% -zPGE2ZUMIv6(YG8Rg&l5kKThLpy(@(sa2Cwh$a2$Ko1cu$flve;ei{0;c=>^=wz2lG -zvHl`6#OTwcM!tM}^YQ-s0M?c71H)A{MuSyDu4 -z*_eW0tNW!A$aA_7>M?IyVizO^W#3@}8+-#d(i8*Mf@T`(c=l_kN68#pVNOkTJHfX{ -z7wB;#yUgrWzgczlz&sd4-E46-lF-@W+L&4c#=qT_EDO9`AB47C`& -zDBX!9x+OA@Vr=if+Ea_}wa%!f9%Q-Y)v*cu*7Qh;fh}Va%?^W>7G6Wo{I*CDGqWSg -z=yL+g)U#@vOb|WqlBKryh<~UZZD4#!>(O;4xK|!SgGTQ7jyd8sJoB)sIqz?-V)LG) -zHQnHK!|_Okh=WIOS|Zl)EWcG$$+03w!WnWhiD+9?9)D^+ul$3Bi@{vR8J -z=23gtq(b+=-ZuTuO#~KI6J-kV1JndDA_x-_BYzQL1+n${tnZa&2>}Y2^bT8 -zQqe6i0wgB6YqlFJ7^mbP>w+`aFHh;e?EaUfXJhMkhd23V8RgIvaDSl$hQt%l)6QLP -z8mi@J@vNiQm?>5HUa?0>=5RYPQkHvptbOYn*drn_T`QY2R6=OBZ^2`}d*qz5kx|D4 -z02T6<9RqAB4K(zfoo#hn8^Hj#0VAA6G(qa5Kv@BDiHOcMzyKb(Wl|-#4nmI>C7ML8%WbOCo?@KEKkK$UHmcGd`D|9&V~dsc0J4cSwVFDg -zd+m3u>QPhCVd9$V;HJiNR$J00SFv;w_Ihyk*QJn{snZNnW`G>H;Jl)SA>+jO!jlDg -zoTxa00GDgE_IOH|+?847aBwtM#T?P?a~|9F=f`YBej-D?8em1v@5)u03d6N%3>>yO -zZc51!?zzd2ks-EKttsfCkx@EM^)IQYU2q%5a?oe?DHI($Hcb6XlscWLbOI^<1aV6a45jNWTi -z-9uJ||DpKQcTy6wJl`OV4F;43hR#!w*QVu90@B9(lO|Sv8?r#7eIqGqvZsKvEfQLL -z(#(+1W-G#(aW!ru)lQggDF#;>;6CJ(_ipslp}Z0yjc11wovT{ttl5xf;-2WyUgN|e -z~sw&OmV;<%-5{(NR>ffWvZF)ZGA -zW46m53ypGe^RkxPR3BN6$FYcyo;;3hF_udb+O&1UyOSIpehF~6)GCa*H`K^;JeQ;l -zb)XpEu@x3?J1zXtSf}%2pOs1}xk|Y$4EX}EYaw46t(}*fYiJtN?ZPmLyfs`$!Qmb( -zquE<;?8c#@D6bgd7c|N0O$5)4QJhcVX;l~9*$Dib%BNQzcpM$cy#27k5Pyeh`7)?3Oc9ngk7VXJ9-_tj2RM=q?B -zgbYA!r>UQ2ed`>%uy<3BE{;`ezdRl?{r&k_8!H`szC*gR@@5PF){P~CZI4t%`qwue -z+R5WyZJk|tUg;V&eJv5Uq3^sz^JgRNe{OREZW~J>JtGphrO0T2P*F<(d*h8ZE@<#r -zv{@-+K1g|7HX`~(rSI)mUVG}v(v-Z)_@t!#B&FI|j_A>U%_-`ll~=-F1q2SPWL5!% -zf0pS5odKSGe8c>l|KfiaVpJ{v7~@B_kw~D&|JccW$HpD?V;QB~ByS7=JOpM!vj%ZM -zk>DL$gZq`cl)8DjyjPnxJb^W8X{FcEUH9|{?~=CzWyZ)W_sYaIkJMl -zB0`r65TLJd@f58PtJD6Dhp_@g5bv?r-`&ujd{)kZI1U+d1G+TdNUVx=z2oubc~}yR -zeX=ANTX;*PA`g}^BIw)EU3H2WC@Z()eXCnQ<@pMB2MJ3ai2KR6LdIzBf)v@~ -z5bOVquttg|Y)JrH<+W!E5iWSBaJ30Di5=Z>nv54d{|I^jtg79NJFu)gRcG@kplRX^y|T;=iI+7b$F%o<*M`*D6F;mwNDVs4s0h=zc%Y&$|d -zQgjk=Da@$tB&mKye|G;%yr+fr?_&xQT*5XA=pOYVG>DaPDAQsUu#HDr3jj|-;(Nxt -za+jF^-AOCaexVF)?7p;*bK;+IkurCU0ts#ld8Rt57-o0L< -z*2nVN9!U8cUOcmmdh*ZgU}9~vBWr|Hhb5nxk4P{)buS=-Y{$pqsUK_-;J%k^M`ZjEYA&shU1lL;=Y4!0SrjBCb20&QJdGsNK7;pZ74D-X%o9 -zLS(lJN6D{$SF)DMhN(12+=zzK%}%xP>uiGG%)wpNdHqqMExK=-0_w7oz=z|AR9V#c -zH|HOzjkCp|Z19efT!`A`?-4|T{a<+rYPH(CMjV97m&Mpy -ziA5Qp^adm`V0^wU_o&QE(%;BQBcwMn`sQQDo?l0l&gEcHz4xcr_gHHkeJ25Bz;DIO -zsUD*jJyfIP$P(=w=P{3~?@}>3&ezttcw%@3sKvBbKt6t-q#!}sjXzmZkkpQ%u?K?2 -zP$yEav2uM(L4uq_+mGL>6eK;cI>I4lWO`;aNoGO3ub|RQHV6{ -z!g@37TgQ{mJ1%{H&wYz$Nj^EX)uTMR8{3Iv{K733lWtb_yc+p*tCI!z@856k>MC|7 -zdn8s**$k&f$vKMRz%Sk~6k<~{!x^AKkr33&1`43pE!mpqhjh*!EZy=CT{tFUOjJv^l!)izkSP5hRhKl} -zf;gmVX%VJ>fOhYq@s_DEN}vQ$GZriCpSMKadgL6P(hxp5YInJ*l2-l=Roq%mSB2b+ -zZj&nz6(#h2ho*PD)9p3WJLJAl94+@z=xP9od!aKU6gGvt*-|`7F!4(243inHDv8f89`Vyympg&!x|q-|?lL8uutbud?_X%Rjvqhjf;@;~1&? -zwG?5(+mHX3yXU2>nN4M -zN0JDU^oc9bh(jw_HGdp3=B@nTfu -zyUWn -zlDw=cjaM|u&>cKp*Jv)f!(XjAqF^+YXp^xF&nnsk*v>&2(I((-U9<_XUNW)}ZMvb| -zGyr7ER~T&~&s=SNG;zRdrZuV@Q`C178d`SuhSAfl0=y--G!ctxKw@2RX)}XM)|RP) -ziKTXvguFX2cPL3AYRO3Q#LZG+sF|o;4OFg+7->DVg}7WDBnd~_nIxY`+f^zv{YU@Y -zRguu*F-BOusr8T#w3Y;O6qXh*Pzpk{f|tBE=d|4ro{MnSA#Fk5_8TZZKf!zS1(+SS -z4s=a;s8BU(CE&+$;C7j^W$o(l;>akAiu4AJzmEGb^{4ALzX241GpFCItOxKPNg?!# -zzWfi&jm8hW*D4HF*%Af=-1Z`WE#=qKAqdAr`M2`xRv{|lh-p-HAm!JO@@T-m(%@P} -zkdGL?QP+{U15RcfvgNGMYGg}KSmD5u@(*?;*|5FNVp_vlh1ghf%}KhDg^_USlVym- -z@(CAC*vt4RH*TfBNm{--42*{t?M+Z2Z6~gbQ)4ST%tcNd4?aw_uS(bUbvFt<9r4;N -ztw+--P8;{$T6HpK)}x4j)@8E#ZFK3{vX!qUjZWB{pgTi5^Mm*moCi#g)L*w|6D6F^ -zKOReu8o1 -zw%&Vvj-A;0=L3V%)pEsM^Mh@4A?0L8Lji@v-du*Th2@pDZ3YvO6db;X8AGAv^P*k=G&dR8 -z98%6bb5?EHuHoqayA7*2i9wzaYwC4&`#2dlx>29Nxt{uj>6~lju_OLg`UK){>JtbL -zs82v&;0tg)(4Oe#3()5qruG}JK>VgSDcr|zakc8yu@G3^u0K)wwcd$GQkP1CO!-dx -zpUDbX5{0ZJIS|D9#;JEiobVn)O>S4$XrU+dSwc^M#)wKW^fctZgr4@agq~D$(2)n) -zF{6ZcRU2cZG>}SLk`Vk7UXH|RRPWlJy2v{+GO@1yFhz2bRQsb8F}I^fw{N)jUMZWV -zJU^rw6%euj6y3H5^tRJQWa}L1s3qfZtEd!sc)H}aRsEGZ -zbdslCE{W=iGDcWS{#JT#ta{ASrbBmF1o_SiJ8;Ie{@T(ifuZwVB}ZWf$aJovrMg|V -zn_FZCmdMPSUZvp=)Wz8=;dLx#2QbA8jgaOwnfJ<+XC;APoNTFrhWTHlmb7Keu`*Zg -z4}tGA$#7sxlAATB5mLpn_Bj1hhv>)PTzf# -zptm@tA!I|=$C*z*D|?z7aBsxJZdzR$raeE;FXQe{PbqZ(3#;OF;&;QAtZE&ImF-i) -zGl#hp$vDsO$fAtv<5k>An@j=0W!wjM$0HdUQGLjob}k`<)CCISno5FpJc29H8yx<1 -z)-9x|!DMGE!up#Bm^BO!<)qq4Q$%os87S -zc}6*0uOSB&nj(r<9B0;?DUQ}S@hkokegde*EwP@q;p;6I%DcN2_;g;dpsC-q-8Xp| -z7JZwZbF?FsE@g&QZzB=&87V)ftSWD!S>o#h@`HbDwVcuq7F(i-gr;^J$0gnyU -zxdAG@5RGHOU!YoD{bp;-H*bPstc8mrSx(j-8gaGSC+W>PVQdK#WrxH`zJn5BRV_g- -zszs)r0uM6vZ1GQHORaGUv*DbEqkU&(eFnFzXB&WEen(&mV&j_J)Zc*~`yS{5|iQ4pk(+aTM@5%f+f23z{_3ZXET09x+a4jPSon*rzBi@q$iB{7_78i>Id*5P -zw~yBZ#*8i^TQTiB3Rv8We7uK``|{lXF$^`TdOGoSQJbc+Clw~@zJ^x0R$Y-22EgWG -z{@V%51PMgVC`HjRQMSE$JuN1DkjCO<#phS#^*z&}zj9AOC~D%@NxC=`>WK}p*Q^GO -zW3ykqA0VUwP;l#;ZG387`a@oV(QIkz6r?ONfv?-*RJi#NGv}7xNh>#fp(0%@?!KZ) -zVesg%D|>^V**jTGXQzPQy5c%B8~$=H#%s -z$>!jh(VM3v^yR@!%uy%1C}rH$fnpeJ+@pD@7|s_XAq;G`r98)*dP&v_*lr=k;LY4@6Hu=_KntBUiF#D@x}!gRZ?KeR?T -z0dP_4b-(MHyLv(rq_!qRs%khGC{VlQv`6q4F}>^%t*{hYtsIn$_dC%zGJoeCgQ(bAxcD#Ex=0Qt$_uY62fisvqOH4d$gs~@k#1v -zrA6gVABcw?c^!KRuxKrs4FZfzssMNU_x+G6|DNV9a-_GXj-_rXvg0cNi{*A$OK1Uc -zkkk@liw0*DvMA!=81Jb||G7wq!zG{JV4Oxj69lxxXP;lg$DMRJ;8&?wE21Nek

WuEvwKW+y&)aO$ -z=niFb>?Fbj#&4`^RFbX?lUM{YB89Mq`$v)xx>SgMI0P~tg}o~-YW`pqtl)m>n*kO*Ypky7;pch{bJDA`UVm-6nd5@?-D-h%0>_`Bv(fx<YljH@);yZ$Y_d#AqFc9o^G%@Y7GEXhp#cso}#y -zURWgYxb8cmQzPOROA~=R7@}A3&F5|7;k<1;h_{Vs9=9#+Y4n8m{-qS&xwj^aN<4Lc -z-NZLynP-U=R9oD;PSO(<*dWAB27ZOP9OLGt{puhl-Jv&(&GN(nyK7Gzx8+_+`bC`Y -z)DCpMW2ltQcN)jdCBfg=?)?&!|NDL_>_icZa=w#cSY?qZf?BX9Tl7s9(90g0$luV5<8PpPo*>Cv_o0V(ect;(`rabR2I -zu&%D=@?^)%TV*gxM1bVP_Dc>KhkbHZpD+D5J!f>T!@ho?u3S0%-OrObhc+p#9kMZ88%Ng|wU48Q*a+K-6gys&sO9tqkX+AG+OH$OoCw=eznG0dHc3L=##%`l -zJc86*5E$X{Xk;k7X(;fK3?60Vm?KpDCk-Vo5)H+Wn`kJ;#m^X<2pWoiehU7d34#JK -z5z$f@nllZ>HY7|#;o?xcpRZjXvu~&r`!4E0BGR&wcTo1;FN-?PkBgJiFQIv1S_jEt -z>PYZ3hf7HRjZmbf!Iqcvj!U+6#6s}pV-&0i3Urvn$!vag(Q;64vVDVA8uyd!o1s+H -zbClb-7|xAzg~THc^!oU;HCU#VY*UBWcYlx!Af=Arno{;9#_hrffNvAomjKAgg^Iw3 -zc$zCh$MZ!II$q@Ac{b$T5zb}>OLl&x{wx35s^qjd9KHftZ*-Z$SBMgaui&4Bx6?`j -zgUmvCShjcO>`*JreoS7p?T*%BVtJrkzqHc@CR)%7>2h}HP1j!t+xTI5X5YiV<&~V{ -z&A>Rr@hz>Ycxf)ax@siKDRO;{Gn5F -ztGY;49l#xg5##0gcg1tVo%il!ui}>#Uaiq-lZ1QeQLtR%_rHdmV+W|9hg@^0|QlPuF9G1iqWYl*d=1`JT{w2Ud)Y)YF(iJjwpTs`$pS%snLqrD0Y@~Q9 -zQ(#ICr#J2?-}P+%CGs-on+W=eo3Mof-g3>p#-;DN05pq#;)0Q2lbgjH1!cwUa+*oe -zh2zd`c%cUe=35U-I%wUlUbZjKYNbeejM_u{kYfhW_P%)nx0JdrV}~$OY`88%Ktc6l -z@LKOp;c)VPN4>_wSg|^Gf&Af?@wP?|HL+tmd;L(pC2B8cZf{LVIRCSFUweYIx2IFZeuo{Y7^0*|Gu6B-Hk^go`aX-C=bM%^-67AQrHO4 -zJqv|Z!V;3+wXBEUHM&=ZS}m(@?)p7DZ$dMnB*xU(Pueo%ZX -zqNgH^%HO;2Rk-_>Sr7WmK=Gy)2!l%kc09PDLq-^98D;tH=WJSEXXKi!TXvv`5CoUyz>BjZR -zW6#yu1gPV-NHNEbr`y*ihXuS-_HptHX2eAO1Rqug-f#7VhX9wLFN6;yZTAmu-SU-% -z1`S=2ICub?o^v91uEYWRrt&-xkts0}q}MWZ28<8;azeS2SHkt4W|q&UOiLGeHpNn= -zrIq|SXdKvNg!Dn8gqW1j)v^)+CX6-#fZME*0~f^?+bP!#Uu2VpO{@u^1DdZPfYfJJ -zF>JxYUzJPjP9|C>cQR38cQWq9?%teW3E+C>OFwzPnYw!KlErNyuYb4Zg6ojd#<+iY -zL>)2RJ>l0^-6#1prS=ehQB?^ESMOmn#g=BgFZJ4WcD>}-A3NqxU;4lB%%C85-Tj)w -zLBlm>{SvMxZUFf-hLUq`>mL#9?M|waZ4-#rB6lCne&;18Hjnp0n7Ky?Cb%#0GW?N3 -z9~n{c9Z*Y-{=$j<=WA&quzP9(vh2VuesEEsu|;X>;g)bXM{QwSBV3A`q=K2v)jm$A -z9ycJv4#Jp$7lI$`qs3zrn=;qYjZm92tw>I9l3_C<-ywbaw-y(3Oa5meYadkVuB -z&Zz{G5h6Tpqk4y -zDVY-NMaY+G!188_gaS9HD1v_Cce3mUz{Nun$=rVs(_Icw`2MXX7CEoUDN<~o{M%c} -zhMS$_l{cs@yl}p2xesE<2)HZ-3dCg!PKIk3Ire2ABz)OnfXR4PM5E-u+ngRqgy1Gp -zfPaRvtzFnz-`L{WatnEsJa%SQBT*zq^Orr2TI0_s5e|?BBJL2t28g7v1Oor|9+D-h -zKD{>36femw|K0Z=+Hr=fvq?{mDK``e#y8NH-Aw`~RM>D;QDBiW1ZH28mHbNGd2`TF -zKgysZ1#koC6&s_J3ZA6`+-$JN>KEu|Wt7W<^aq2CHR>c2L&_QmCQz#&Ldt7K4vn!3 -z9>snGdYzTi>pxN+3^*C6PJ;a(=OjHhJi?;VTps*Wjm#@9Bu4G*Yt$B-)Zczs;4LI< -zwF>l0E4Q6ab}ozfI%yd1>~YQ*gS?|H_Zp)6Si5Y_i7z{NiK8Q2{OD~Q?<6%q`Hk-X -ze}v2?PgjQJ6!i%}7z0S5?uyCG1p6Q-(*x`k$@Bzl&yRPF`2um`8P&4w#u8Q#^XR#< -zI++@qvR)b~E{a%p(8Tg>NQzw-dy;j@kh+c^&J~T#@H$W@yfEOgi4;%V>|6JL+~y*h -z#okme-3Gh0u4Mnzt_v!g0P&;RxJTp0I8&Dug>jCxf~O0-*?!FOU|PahR#oqe$NId< -zXK+6lxwx_hS>Yb*Q?SWb`j2(Rhj^Q`M;6N^tRS8n;dp!Ld9kA&D^itvI}YWrWGrOe -zVBTht=2)c+8b0Tc( -z!JG(}t~eKMOjD1SdBomBV6{$!%E7V6^vF_Yp0}(tUe5YyzmZ|uTWTI!#vkK&6h2ty -zIQI!VVS?uQ>3GmL6ubnp`@m}TmGaLbrf=3*kGK@~`91mNYi%or){Cq;Hxfdw)hBG( -zTjc#);_+V@ss_2Ed`6TVPU>d-+pUN7YPi`kOwA-;opS$1y_&KqC$aMH*!; -zWp~@QFaqIl){%;QT~lpGOYAXVLkr6Z-jOa>NZz)gsU|UgK@x|0{PhGm|H2&7vS|m~W -zy>08M=JKpAkq!hQ^J>Pf?HttlU&Yw74Hf?gm-nRfu9<`f*^i9vPeM&Kt;hfF@FX(p -z5Q{CkAvrvmS(FZ__)#L8a!odsA?bsA)=*i$)RN4AppLCUD_ -zvqPuxQrfPSphhk!XKK`i`mW_4_l!_j!E<8=!Xw7FJ#h{DfWon-GAN02l?Ux}4|hl4 -z4(s-9oR2-rEsru`c&)afpdAin4$VdJ_w#d7g5M-9^%f~u>lr(KtObmG8#s)r;F(hT -zoiiqH`I@b@$&EwCrCBG))+q-yMrSj7bgae8Kkd!+9$TW=Oh);flW8u@VL(J$X%a#- -zBAnnT3N*z*O>_vjt9JAXwtgCQ``eJ< -z;Gm@srI07&wIcvC4YvUNoZN^(bo>7*Hjek1EVaQ#(?Sq1fogTCG(F*~!g2!3C``pd -zM)4KyqtI1JT>%o7Y_AdWk;9xNvFAPO(EfpyIb`NVYMw)8a)~oc2uO~Z4Am;%4UP_~ -zRW<^zA=Rq5iSj&f)t#3}BhBC*8FcFb_`TMrUbD(|(0;Q{eR8~_SSZ?OzGQJPJ>ko9 -zb`s_%ouIg@+Y0=F@7q3-9XGo<@~+Hojx5}nQ#a^Z-?5TnoTM&t<6+s5a$?kSMGNvR -zkxGr^iyQYV>mt_ -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 -z*fJ(HHW&$)wlYJu%T?j$vS_IVbQccReSvi##+ -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 -zO?im$`J1+JHYsT3ffoxN??o(aR?@I -zr6yrB5UT;SX2pC3ky@-=M~VxnBKtAt8$41O3~!tDO6kO1lCcWA)gPhl89|2QyW -zdBjO6v3*l(aY#)_?G}BX(s%9rRx1e?BUW?h?=W*76qHonw&30@3Z^5jn&K=T6y)b& -z+}k5Ewh_?1p>BKo&!p_;-_y<5{06^gt3_6%PAGkeM0l-Pl?lBDDQ~{8rx?+Tl-_6i -zcRqW4xP5AmdXA0no6AlVNCWhSs)t=c8qq0H3|WxzXNY7806l3U8v;CveaK;86Ul#+ -zO%+*&OJS?XI_J9BhwvdoZ2ZR*P;uX&+zij>-E3QK#8;Qtyz1xD!Vdb@`sS#6Rmc+L -zizJT?8{OHt^;h*2geU6CJ)|P|OS=C0xM3eQwLI%Ng>UB87&*NOA`b`6l42iXu*uM= -zA6vsvEWaj->yk<#{y5|dsAaNL;@?mCyjD>t1# -ze>(4MfVg_xR#n$?Q|{rkguV8~cX~8gRW`b=^x3~j+g|U|r_p$Z!`J;4S(=u|&TsPr -z_49j&YHvp-zv(pcmyYYcF*@H4L;DZjR079xXHJ=!Z)?~eCvSR9T^Xlu|x7Na4{w~%yRlP?JXtF%{3%EkO^r`;l|Q$V)OOJ-hI)0!bob5piqe8b7_-fAAK3G5gP~H-`!5!Y -zXZz3Esqm^2{kz!fK}-B1O@_aw$?~kdx|O7qv^}SG+z}AG$#! -ztPc&+g|62H4bd(5PHyk#GjxC@Vl7?rpVd3j>l3Pjm%iv+nU*lu!n=O^ZrvNVo!X+s -z2(@mToN-b+1z+uAuj7-we%{+RKYHH2&5p}i5oI&gg_b6oAL4AZ&jnYOxSCni7f`EXRQu4-ukqzuJyVf~bV$cGG@M0U&$y{CQHhj1e@jHL;!atYIZdVB{@g5j;#Qb5dO#SF|m -zjuRJ;p(bK#{x6ratDPI+`}W(3j+)h#jhn+iR%$wEGf@=<%<9sv8snI5dB|SVHgbTx -z&pA$ut$^cLfAf3LeC1Oy^nZ^lU)BezHVqpvI;geI?j_wS>fS4nvM}T9&B{NeVsH7k -zJ(0$oD$Izk^*JW$%5=Y6Ck~%3m-X)7$}5j$=Wx#zbV+RL-Tej`2jX&>4L -zVy@w|#hyjm#nvBe4$wH&hCd84X~Y>yFTY;7?Ri7F$~DX0VhzP*qY(<+XGBJ^v_u9> -z`I&4|vA8PKi*HkIK-zRLn%p{+MZsySV5`bCdVFF^IRT~p!_f44CkIY}99L -zU)b1X-QJ?VA0u{yJcVkPKEe^!NLW05jWME2`0KrefjTX|uJfF7U$t1L1E0e<58-Ec -zE8C?C$DJ1MfN=?LhpoBN#c_0^h?=i^!BmR7c-YzJQS9@)5j@#*Ex_e7zA0oL_Kn%R -zczffV62DJY?JISCSsKBM((kAG1y`5QRoZPc;4RD@92cj-tlYq-jcTen1%sgZH%p1H -z{u=KbdjB#L18rFB@C4){Z)m8Cjdk?KwC_&f`iD3w1lX#DdMD4KwhH1Jx>DOe8dmW -z6fuTv6q$nV>=*1wU;=mYAWq=7xfwtGXqp(W5mPb=;Lwii5*8{|#f~`aE~yCd=Jf3V -zZ^S6UiS3sYbJR-$P8RL(NDEmx)JXe{T|rD~!B3M_$tBSZ@T%MAoK= -zv~dU~&^d<)Sw~Dw!hvA{4R>}pf7h_sspaS@**e|b&B+B!Ix4@)uFT`5 -zR<~WCuM3R6HdU+eJ;XzD@*Co^!kh%gVf@9{cduSndnv9yb{fCo5@liOJ%@VkN>OQn -zvZA6Y?@5;aQIW-jrV6b3*AMuYym(U&_b0wPX6?zv_R -z<10GLlMWJIs*S+%(Y=6D_ -z)>UQ2G5gH3?Fy$lOMSz2`GfkaodROY*LPW!Db|(N^=oT8JIYD_#|`o5(O$KW4N#Zf -z&QHM2aGk8ZvFC$I@hy}?`ZvTbzE2H~RSx~qOhV18blJzR0H -zMy-b@;9-Vux@-`A8*aQyT~eU)RH);e -z`o)H%@=bp}te0QkY^V0)^|Ph-IY+6u#(8a8LO**=`#Q}RVs2MN)qSX}hI08XeT2k= -z&T;CQ1-l5U)~(^|&V*^+DVn5eLE!(!se67~u5HS>wPXiZobOzTAESo12F2NgSxnj5 -zFm{_mgkxK7>lS5uN4it;`#4_o*kEurwh{5WNg -zWqX6pm%2hD<)Yet>N%V$hiscwgWy-x7`-WS&=33VH9Jjr@0khgSFpA)vp@Y;JQJYq -z(0_wkpTmc||6+Ifw%ZiHhOw{m?T#tOrw6!<y12* -zEN@$CB;2)ma?(Yjg)fbwULWg}@k -zM3IpnN4C0@Lyax7xDpKC3EuYL4NJAcCOvOzEM#W;rkkm%g#hEyo7kvp7;P#($Vf3k(tmO -z=d?E_WFa7B%E$p<7Ga<<@2i1SdY^MpAA%2>FVKQ1@RPW_s?lgk#Z_xm|83*|%hiCW -z*a#d`dOg5IA;a3Rt;X4Q&W%S&4VPEHy}f$#;De`imEXnMYf9j27EuP%?t}B=?)7L| -zK(h>&|1#aJ4u5)CM>{Ycdk{!A<2Z&}^vu$D9}4>+hPFRoUxX -zJhheO+IE-pus}K!A@-gK%=&tp!n*K=L7*^Q37Uw7kGXVgk7jr|O4YdQenr#)0(t{~ -zCdlxXgvuDM102^2RMcZPp%sKB#TG&~K96skdhvo$VZf0c-4 -z`}XONH(|_pEWweLgJM>S3N)Yqu2dIAnv`e(^K8?xzkow}MlLM{5R*A(`@6WVQ8otU -z`C%y^8s3@)*lIZj0o%0K5Unb{SA+~fdLb}vT&HY=1c&?}OH4Fj0Ve^CPD7F`k8Ws) -zJsIshBJEm%Q?A1h-TNKadurN%2l_=gdVi-jZ}j*r^>IqVbN04BB!uNIAD#qVYSJWC -z0gMssadJ(mH_;^JMco|i7w`1Y88lT|UkBs7RgN3{*3h+>Ot<6_G-?udiLQ|h9#&rxa`6Af#- -zwsNkxZ{~a~sUy569GGd&9(rhF)cqF?#o2D?2jm8t!mIMrSXh7n(CF(jM*rxqt&NIZ -z67nBVr6|7?V~`r+A=L^AgOnx$-#Z4c@2;@Js#`F@Y%&N5B+p3lLg2nNlW)sI5%3Ok -z3&5Y#zo0nVd5)oFh+JfOOM=!@8Q^?^<5mgn^NgLqQ(Eb2X-kp;pxp6ZPF#Ur$S4D< -zfS2jr3XL*2CAnd5L|qz(Z-q;hOns!~E6O^MB`oZkZkUaU$=V2+qumchR -z*j+B3k3TN~{Xi$L2AM;;QGW~B`~1@}8q9NyDl{~h0$AwZ=p!V6?CZ|@snNAgnW8pO -zDH{X>)m)B0MlOI7q%jnAB#VlxC{p@G!YhzKo{<+)1hD_q^L~-Vm|_MY=R+LKoWfub -zPjH2hm$=LzSm1QkX|o0ivcK*XoL(Q=dA0R7>BP9klTyeK{`;ZDNfKBlb9ExV9G7R) -ztduUV%7-tzsQqwHS*aw4H013#|GS6QeAX>pb3{wuwrY_3RSP{?@aVEytNB#+@mrmZ -z>-3s|XM~FL=YdJVQj-joVyN>?%ak4)JtB0$P5y@~H~w1`*bmL5kQ{i3AA8l9W2yDg -z7Ogvz^;yH{h-qcfEUDHHikOz^dB#NJ+vC6}tC);8RKv>P;)i4CNwjm;CpvcDCH1{(k<~ -znP}%VuZF8>3EDME>vWrppju1on*gHFaP@0kEYEloJJ#q)Dm8e6hS>eTOTw$Kq~bD& -z3@s%53+%s>gnwK9q|+0<+N7(6t6=GzYAmX3 -zv}sUO){uyR<#vP6DFhpwmamf-!OQUqYXufq--jnlyJK2Vcvm>JHlLm+ss6XE8 -zMv5Ij=(clZZYf|o)}AS3;}~xFzH51(qiF{jGxamyD&6$xwAsvnF}ybK{GwQX7fnGs -z^4CyvU#fuOYUR;{4t4Qqe-deEOH!yRM_k6CkCsSDRf}O3#lA;m89&Iw_Q|?P2T$7H -z!lJVuqiyJWx9r!IIm`=p=S}JHkaPYG6S?*O9F52=g`@zTlSh8Vr#4~sp$|(|bFDmu -zm#pQ-`NTo^c{Q5r0k;D55@*rg`gqaR6hSYTs7kI27W<(~H<7 -zd?iXlcXe=}5P&R=y$u2cgi+*?Mw??>j>FLcPt2i>}`NfYb-3zp!GB<=iDe>T)qg-wl+9oX2p -zMOh4+AE;1kx3{|y#zzP(w{5fR9hbH@eUjWL{o7T!2N-MSf%#cydOc{2ugFX|dgFu# -z9N5atTuG9ZtuW3G0ZtuyL|j&zg$Ak*A)3}%+n031{c37EW4DgtS{|e;fQUjrWF80P -z6_?B1u#qnOE5B-Q!(#pO_^gmt(2cGkLVJ(%tihxUJ!Qq-+=e!YMqDg3>aTXF5~?>7 -zO@hY{GJ}Rc!SQE_P9Tk-U;r?zXWVQBK{0)PTklF$ -zc!DWi^_^}jC`ltNS<>B#>yVKsLI@XP -zd+m8IUuk|))!|m$RapUIY=jFxoz*X**I~;4`9^`(zzcNkI;|rc0km+@8B^fRr&=Y5 -z4LH(SODI$|#yG>o?^+t&ecUWI)_E*%0HzLw@CyL|ZSnEXb%{pV^JCnqWzv4?VIQ6p -zhxAlfvCEBO9^@h&BdL2sYb`HeisEis`$bT}3HhR@Gj>=Zz-Uh^JZioadj@?vK@Nlx -zCCkO*&AEOMDp^t%ow6)*v=ycOo=E=168rA9G -zf3SmHfoFAg?>FSmw=8p-oIA64YU~*9{tPegqCogFp^pdXI0MgDw>>aynND-Nw7~{bvn{-Up25N)T>h;*Nsc} -z0;>QgliWUZ003igj{~{` -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 -zRte-K -zNdb#s;g8ALf_sKTKe#rn+m`7$a>kHMzo82Hh}j2h6!L2YV|@Jt7r{0hT!aiIjFlix -zIkn*kgNYIZvsQC_e<3%pw-?I|v{Pti!0%AV5LZ)12%)Ncq8pnoVV%7Ei7ESCph!Hp -zK_Y=6rc`Wta&gy!4)tf1akpC?`okHbAG`%`!T5dOU-{Om?d>y2CksCdXBY+1JpIC6 -z^QGx-C+ob(h-;eI&+%`ckpmiyK!(A+a2Pa7He^f%E-@bHR=99!!%cU~dqa(M1pJ{A -z%2`2o@RQ8UYeLMWJFRHfm}|k+8K{Ci#ABUEAtSX|DrgF>(g(sOS`?c>z2usaP3)l{ -zGFZTSjW^oYvGRe%QI&WlLh&rD=1UiaUH~v20xj8wiwY&7ETS<2l`a_Bc$R -z#3q|Ct%BtS{0s7S{mJ|Sxey>avtj4V4TWI_r~o!SqIrhtR}Ymwy=h-k6Y{uyTDb>) -z0OIO4Wl^8PqgLd5i6MVbWYrMqtFAtEr!G!w|3h1g@=l#XCpZ->^3i!&l_TG}v#o33 -znLi2M<7S{^PbZ~8dVd0!T<6jcbVso8;6}!Z~iO-^` -zJJ1yQV^?Le{(0e|forT%5|4sx&n_Ae-N_mVm>+KlvjMnCux=%sT{O;dx1PE;up&g% -z#X*I+$@2l`S(PQCDmM$vk7l)n~@mrfC=_)X@}rZ~JYE-Jy>Fz{*DrgzWbBsLPxy}oyAyY_KqvX6Um==z72 -z)|Cx8f47pK#&?iXOSn&9PWKd4HSNdif|qn|6iPHevDK9zM@SPjrEqGdPz**~Gd%QZ -z6LaG<6O~ehaOXLOyV?tPrCtl5$I+?venkc!W~0=a_lnvDLD4TbVRNWBe%$jRx(fWy -zmM@~%*Zh%rIUi|F>ctm_lyy@aiA|yc^xdl~1@8dK_1{+^E7g6MJnDdCU)2|JlgMe1 -zo3vDnJTL}I74E=Jk_L+TI!lqJJWSe@gu$?U=L4fBIW_*P_|!LRV0-&(fs$;&&QpTS -zc&1or6xKBlNKps`VYL8bf{VZjHPIlJz{WP$K?n+9b-0LCX4gxf7pVEzApVn3U~pi9 -zVT~xlOUpn5@Z254AYs51bgG+4upDE{@3@Vn|3UVepU;Nr?^T`gb*a7~siSI+!oCIo -zt2#CpUXrqDjX0frHz=(ind{RUzmRvfKz#~wF=bAT2J@ZYwp1_D`k=@ -z>bpw{`3UeB@SjAT_75wr&(Sq0Z%=$FH^MoqBuU$n4B+^jMcD8AeaL_)W>|zQ$hf!u -zlJ0btEeJ}}zDrMPK2RNgq4gF#0ohy74Nr&P;h-snYQHwarn#406!|>z!wHw!>p?Zy -zV^3r^#&kLZMX{@WFNTE;mdLiSfusu{o7GDDNI+gl5|GVIQkQm@Lu;e1&jDY=(|tBM -zUXnDyj+gA84cyfw`E>)>j3YOmweu}<;03A~c1YIj-*Nuq*t4g=d7;WR!!ubr~gzZpKnYFp_XqoE><|>m-8$;z*wg-_8Q9$5C!1O`d5Ah -zY8+j>;{ztmj!&jz+@H7Vw?PMNeDqX4xV~pNpI&Rxfk~t3)PcNiVYQ(*9XkL8Yk&Qc -z)tTo*f`9yWAe&lt7jyhfnBxG -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 -zib*(S3ZV&*!wIFasaH8r>KPBus7)$!)cxt@ -zvzQKZsvN>7U8;;|1N+|Msl_INw@e>iV{&1Rb% -zVpG;tP7s66&u7|ry$`ZdkrSIq2+@JwNWk^(+n^Sdn}tuHFq2L5V_E&}b*68^t_!y< -zZcT_=RP{cbW2InIwZEtI8|2SP;wf%zWbzD=I}|ASAm$jVY9C#vNpIdwYGb*@tOxlN -zZz|DEU6s-$sR{9s7P%3%)+S?0=^qYxm7w?sgp-!tEk%fv-W~Ej*&@$#dSUm+a`^2&i) -zAPR#W1UbSX{RhEdghNdxjU(6<1cZaHo)1~_=!XG&muc#L(YSvWC1CHbgx!Kt&|J>` -zERKv}_j4Us)sInV1PZ%`zmY-!e5?p^IQ*G}BEcR_2!u<8L;`au!08yczmk~AKVv?j -zLlMae2v=>f4?i+^pmZe5@e{CMhL%Ne8H3sL2c@yUgqTAudaa*to89{5&rFFYV=t!0oVJ5XIA@&aFb)*qMgC^FOEf=fW&)+D@sF#8Fg|2jnM_`Q%o}+8C(n$b -z2=Ol=j)YRJ$*fd3nz9xLL{`D(hd5$6x{o)=&SjoNDo8V!E^6$?p90;;43E9Sb`#Vv -zVtT`q6{;fIhZm+fP1a$=%0ohRMjT-VBf^P09+tm`Uhp(xs{?AJ+8&!VkpO_!CgN%! -zPoT*g$L2YLM3POR^7bKEFVN3w_qcx=k_~ZI`&bFFd+3Oia_R`;1EB`B(1%rG_bl7#TZ02kD?vv_OU1)SMaa -zV!^=-2lIVE&i-(MA*WHKYqu$kY;3GWiG5ymx9|9zAuYGybCCI=&+30elV?5lrR3F; -zv?PQ;r|x!<&yFFD2G8z_YktJRk0oBx)GBW({q}h;IX}^6b!4J}MC7AL%Fx(NY#CNr -zRApNA$v=b4q+NL_rWV -zt5eES7UQ&s$Xb$;6c#INTAeDs&{g>E3faHf(@OCmaDv?xCNo$8rXZ2%b65{B{rh}4;0Xx;kgtQ6PP$4Bxt61~aKKg7ytNy|kQY)z -z-aAo3OC&tt(D#GLewhXGD0&gF-Q1O7o3Mi5)QlRy89R~r -z4BexSFbR=!T(YX$7_fPwt@g89t!>LTKXA;bv#2@=|IFOSaHiTMTy^LKO1evi> -z^xS$iN93QlkJ#*iz-f%In@S_}YbN6$*P-yww?QW##OwtpljhOBzT(C!PQ&OIoajp* -zThG;v>2BSGFrFQ`&~^ihj(7${0l|STSa3-atX*$e@eQbo^^ekQOP?5}Q&W -zX(f_N5V&+doD4Qc6M<4pfhh;=E+-r!jZ8Oa#Wc9{JVhrJqT(nG$7t=x(c$Wksr^Sj -zy}ewUu>z@-(A0i-F=1<40g>M5l#?KMGkrcY5S<6+@m|u}h@c$8mT*s)`i_WABOsG> -zy3C*S8~xOuU=EgI=n(00za)Kv=#0tR5Wo_?cftUR1Oo&$_8ra>Hx5juhyooElxv_g -zTVHd^BGyUBulAsPbVVYXOTdZ)t}O^cf?z-CR|@H|!Xj_NIZ;)hM+KY{74{V-PKoH3 -zT`?I#YDI9kLc0(%Q0$(Ci|1m89Kw!8%xUt^zT>)$M$kgKty*9I(T^8`KheA#dzW58 -zJulH1C%VN@pLNsub5KvAM|FfnFPSq$P9(A!r0I -zBQUqa_eg0KhCR8^XkQQ)o3|#wSkM;F)t_sPBB=+dQId-E*=}9f)PQD&8Ji6Oe9$IG -zi6jV^gi<3xq&IpX1eYkuITSO_!AaB!Y6*R0&m{bbawB0msu&*svITMAQ0u`S^XvLg -zC&u+Jl)q`Mn+(Ehcx!NDqBA!QSzv>|%Bg4+ldfTC6zI_YL|WC=o=LEHtDT -zB!)wnIkF5u2;@u6Oc3U4dWt^`6pSC_e_1Pog6UC{h}TaV4wfxSlW-bpl^fb3+5g#Q -zfOOVy9}2%i3ia>*{A%JL*yTXNm`mc+@d-((1UUcX~naZjou -zyfv3?D3Kp`u*HLFOCuTR2#j=wC-w6(3D7`Z%NO76ySwX$Ig2fya#9ws%#G6C5^ss1Q(BElsfKjCu4 -z)>9kS+i!J$LSFVE&u?py^0J5C5**o+mvPE#ic35>qF$#8p!KpO`hsz5K6!a(`lTm9 -zVQvn~&>13jnx#T -zGv+%Veji2tx6ACHFv(E^b7K>=j2)q`U;FW{G_iVL=W)ft*d%iunm=tke>rIWs)J;L -z!$>q0k_YyY?zhrYt}iONVn}LYMdrp4`dZY5_smiHTEDG>xP0#(T+XB^l5BAa&-$jl -z_`1mhYM@7VbbtX3_rZiz=MLj>{q)OFa;8znUsd|Y7JlPPw(QLr^Z#jp7t*h~Ijpgj -zT`?-t@6OtPx`{%iX<uk8W4rt#F+L)2z6S(dD47hD7m=$7Zdq#?VplxPo8^$dMZO=$CysQ22@`7R9 -z1O%<~V6>Heo`*mnlof-37Ct?m7vbxb_#7(0=Mcsfaf~Z_V7a&>EbUK&35MU#ve1f*Y$G(iUl -z9T8ds1FM2iX>Jy-MT)Pd47GoRpg)A#-$&3NLM_4`YYavOv>2U^$z!;x2C$ovVm7?D -zn*lLHVMDHfZeWM1Lcg$OMWM%ORW^Z^0Wm`XMg*W`fY%ae8Q@hE;Poe!iS@YgiHg1&twv~=>w(|otRR5$7cc9x?x22Fhl@k -zTfkB}m;w?g1}vSKV(5|%x|D~u0ZVOXq!`{*IE0gg`~IAn{sm0|pQnPRQ-)n!aR!(v*>_y`&zb4>xcWn8I>NX`uS|#^z3@aV -ziP}=&1pqQe;%Te|z)GX_`0Oab=z-sPod>h6Y-Kj0pPdi95Ji1$jfv`O>mc}))MQUi -z?!g-gCGJ9ii;{UEXdD9A9rMDR$PvIdg9$UES`3J>KdTOSDg{;4pe;bvu^A}_M3us* -z8Cwc%1FnwENHIX6qZ&SAGJv?&LO(qix?T)JZ-ALYk{HX!rdb^j_2Wj|x)Z?dh70&9 -z=wZ&6KHq*`f0LO0^tS&p*6BFx~!14@$XLf% -z70^7wd-JB8vlVT&pDItk($oJJw5*Fj)k%k!#sHQ&LlaXwWbO;og)pXhLWRbEmTjbx#J}lgH!kf!IpAS6o220C))nom>o$#7qrzzZB}v77&@F_wbvg_`#~-N-e#%OJ^NatZWcCr(ftq1SHq{8f -z=?Y9P?w!Ebo|tTyVTIRWpq|BWO)#1mBQzEMM#}wSdh4D^s0HwzQK$v*o)XmJb7RUC -zb@5ZDO$|$@Qn8Ujg%*QlG=QZhfaP@n%NGEa9e`}d@tzI_GCSSsfRdVkl3?Hx1S6Kp -z0*54o3>WbsVG@ibkn32N1vU}opJ>V-Q+lA$w&R7;f*~a6I}!^hsR<}~5pWHRS}M~k -z2K}wMgy6B4)C}i;876BEEP -zSt8BtPpoBM)fv_pJ47+*XgyDkv=yK{2kE8+{5C-NwZMKGNJo$K!I-K2LVwGRE9!uH -z@;96Yz9X_Lr*FB^0XF$lBD)>8Xa-maWBhX>D?H;wb_UROc7_6?kKYoBQedAzB!Vza -zFu_DZ0*HhtCK77BvcBn8lQFQAVkNmP59T5MSbNHcw5OmS{!W`aU9W&2+O)p<86Z_) -zIfl_#&<3mpq*VlrosnW+j2K$rF`x*Bk}Y_9uZ2Cz0{w#Kz#q2j^eSVt&;pMEMKEdQ -zL(71rEEo%8_hDx04-D3KI+e@eZcqrU1@u$|n4OVgeiz=`Xi#hL{y&S&CNy9+S%+7^ -zS*+a<1+&Q&xW+3&6q`*{LGj6d2rrJmn`LR>;Q%rH0a}ePsA{a9iQ*u5f2=T*@Y0O_ -zbC5b!N3G(i;^dSo{)YgSG@}i -zU}CZh>o5+34&%RGSpN@rVYL8LwEz@N1*QuA0;b(SpTM>i47ROefZG-_(0EpJe}nzj -zSf=>K?k)h9kc;?@FMvBjF?N_x;e!3xl`k3#FG1M-0yG4ssz9ZH6}14sf)l|Hih(*J -zx`7z90H)e40Gi+!VETu}si0}Ch91D?F9=qwV36gD0bW~x%US@)PP00A2b4(wIR)1N -zL9k*4gKS?6;Q1t=~f4FDgopaoCgHKiWLl2tYRRiEdaO!z-7Umpls^ZLE?}A -z83x=31l0h@Fh}}@hE)YBKBA079$4Qx2AAW5MF|Ta0r+&`!l0162vbge%r_Q}7+g%h -zx)rY&BMce=-xzAadyy3Dy1srGW2!Y};G9ZDAeb|Xus|^5@tjPBiB6>=5KJ@NV$}>$ -zRv?&N(Be$#UO@pWkKZ*Na7XX}H^g=lIxI;HfCsodmL%u|@bwOY34TkzyVpp5RfYzJHWg|ckoDk<6a%u}0c5QL8ruc^fJsURXly*t*b1Pr -z2d7v49l+&rfJ-reOInyAGMGf5vGIVe6@aeOtq$mV9B8Z6`aCDLAVtfrEi7M8BTdaj^OgL3Rb1qAY6q`RWnykcx -zbE=~M6zUZNSH`>V7h2RQSL6n!3B2(Cy1JDN>pWAu@#_VD@a~^^W_^hWWdpBKCwy#p -zgK`weg%3Vfm_(mIbpTNd-#qQUjxMM0*H+VM6Q6o-vO$D)vF4uUS@#EcL6is0K}RB -z#0mq%Qp2n-hUXy0$AuX{>~yOGX1)Q;Gy{kg28gAG!FWRJa?mWrhtu&5ygV~F -zI)(qY5m;jVK?KV5SnKu0^CA!kCt!jv#sr8Z+f9tACMYl{d$9sk2@AD6Sg5twiG^BD -z?B`{O{Jg*h^_?FVgsg7Ir%F5kH;~1DHdg(j;`Cx$|H4z@%=nS{YkIM*UwLX3Jj{<` -z5=gKb2Q2(EXo9BhXAfM0D=%3kOJz~DxjlX0Iu%=T8kLF!kKp0an4uhxs!d -z!8hEuk%AWB(+l8J9^f+)(6$VtVjIL1Sb`Q-45;jMs{`SY2dd+P37RG7UumaTyud*N -zjYZ*GqewMAVJyHa3m-E@*eD_Z{89qzMFqeG)CU`11xhi?O#dze2GSn-VC1m`tt~C+ -z7UTgbBLP^;FtD~k9Dyac4Tu2=r3GO10$`nH^;|$oLjYDj46JPsM_>s`S25tMv;eGL -z0Ibuk4xH5xfRzseYa7H7Sc1}33^*$-a8@tithv*y4re04>zEIg2J$_gqDkwg6=x7u -zp(z1~UnjU>;WZIzj}H$COf_1;4MPntgjBc&Hw<0^^*~C~fge#1R2kZxQH1@Pab>3H -z>u;oH`2~IbF50SVsu23~iocPXZP3yC@YGGNYLQ(9TRTV52d#4cJHsDu8eT%RekeX|WJIK@fl? -zXk5jBvl0Rb2k8_tdcH#4E}WpEzEtaaaQlz>5fmlU#roRlI7F@HJ>*!vJne0B&0WZY=6Zq+END)7C+SXz`LLHEtXGq)14K4nW -z8i2yV2jwx4#5nQA+y5{~6iWETazp3Nc)GyF9A{^P{0yYrfI-db%CuW09(}tNWBS=I?d`r0I5_!;1}a# -zER7f=mM%bQ0_p!0G|f|K82=P9hL@|C@oc> -zbylo4M1M{#z2J{3YG7^T_aC#d=2J@!uZ19dQb3lJLcDaiei~VV;@ -zuK$Bc2Y;kBi2rkl{f_*a;TEfYszCh>m24NZ_)`VyZ(#4#A+^p!8hK&;L`(JMLQ4IR*dSyzae|*uK9cv@Y%Rz=6 -zhri_A-Gn6-8Z4<;_kA3zLK8q08io&}gP5Tv07KO!5EbMxTJaN)(ci$`Um*E!;O;Mw{QoBBg%DW{ -z;JFup;a&r7d!0z19H)8xr%bS4^67lB*0W(1sYVA6W-J|ekw88sP3+MVjl~?$Bm7}v -zSm3!Fn4JDju2(RYK~U}Av&aIo-3pu*qGZ{D_A1UuG4R@QV6+e;%f1*BN5vT_23A`R -zd=?^P**&4{87T%0LOG~vQLq7;bCsX6Toi1A5;diKqZI!^PV%pz2P?t3^cp^C0x((G -z`5n^*CFvAgXp!#dzp)1?Kk^rt9_(7-dHe-P{v38uHcwt(1%TG6&V`hz$N{t(QgU6!4m*z6iLVn!IGg-K&;cVJixc+P`J!F7{qh?l -z0HzSr#SV@H1pub~Gg1s-3L#qT;6_jYVA?+;#Q>%d&&93=bA*`dbbq1XI~0z^D$g1G -zn1Np?D28+5tA_VGZ!3ZU48q!tu-20YEbkncXhOsp&rcN`h-C&~1xKnCt_*3JDzSoN -zH|Wm4`w4>W)AHvs`(LFzzz-vaH6gzUPzZyH_)X2gZxuk?fi7+_4Z8k?8llbuSxQk{ -z$d3}SefIX_7ypo8i1K2+*EPVOv?Gk-D6Q)d4l>A~z9fUNWIaDhv-ROHe65Rrui!ms -zX{VkH7EE1^*wm$Q8LK2;0Avo$NHHLwBS7M1tdM*G2s<<*#XwD`o81*uw^PX-3wSyP -zy4Zgq87v^`80ccBo(%Ty)lc%;p%lQm*zo%GXn27=IbtB+A3s)Me4h$-E=1ISA8znD -zr9G_S|0M{E@sAsCN1fj=jm^+67U+Dnp?zn#njSwD#t-v7Mw93-LbMYTi`H;VEYQ!( -zB0nxnELx>7#T>>yf2lZ{u~iDIMTfCAbwS1|q!_CGu~7y61{l(jPWgukrc!arTGuI8 -z`~|K~8Gt7%qJ(}TM^E6ygf#ad2O-&RNL@(61E~m!C~*eE+!G6<)QwvkA7w+f!oS~u -zGtvAiVQlV|D9FNR&c5KYLSRtj;wkjflrb5yqfwMWbO0GtPy#$M7Mzg}L{Pf3zF#u( -zLA=5lpiyhEOlqot@1%laI+9_WI1td)+tvO{Zo=Hh57%?Z;r6R>#=jQ4DuRCI%JoHR -zMe1}hlw%hEq@77E#*_~jQ#!HIE4c@+HUMC{v%7Gjz90UL%yuw1u$?W2Dt}Kf+c--E -zX9xsKSL3V^!tBoSLR}HE6pH-A-;+re|1pa!o$p-SKG?c8`EEqd4^9Gh3d`~Q0H!Y4 -z(qKl4rstcYIcTeF!Cn*pm`hf2^Hq4GYnJ1;1t+KEW=51W^3PljrVz6=tt!QMsZYt} -zpw0tv%$8qSU3kEbzXg-fc@BIi#eF%3mq17acpi8xR-p1gq|=l=62Q7YqpbdZTAC^ -zQ>7AT98Z5lDckR!0Qq6D@xJxWH+nFzxc&9lx={8My-yD=pnvG}&%0sZb>L&g`C*{g;9ax!IKu}X`$1n^Y{X=4z^r4ODov0`E8Lt^D;3;-WZQvhiyfaDxNV1nyr-@L-FP)o_hgm!`eq32uY -zQO`vH?GBImanImafNmi4yfDD$Ge*K4IiPyr!<9_oHmb>nWH26rhu7f9@_s;^K9(lj -zD-c?5-Zk=Q*x>wS=deH&^+fRXYE;Vm(gQe!c>)UOz+Hx*?M(s?1`&u%0K^p}1JEYH -zr;sPm;2faAji6jG2cVvA^^?5D=#YY+KB57uNhdx)8gYy~jXYj4BKUyG#Vd%$1Yh6B -zD+vAK5*k9|Pkc$?g*C!^Fb79H5!mkkwRla};x#QbK|IEpzmVD=;q~{R3GW4k#3Qci -zi4TV#W{LfgLB+r){c0CJNxI>@0e@pjAhO^$_D5j+f79aiFQkSAl$}gG3;Xb|31VTB -z{ylFjq1djF(y`S>Rug=^z9_!`uI)7G#zzl0qFcxzq85A%%Q;2ZKri5p7nB49FJPN2 -zGKVx$JglQY!H$q%`X3X?7CQ4`G7A7WL#bf_UI~e3|Ao}BfX0)FXF(l1qp4v*DKVLN -z7GM>A0llX*r*qJo;+r*)*ka!2AU&t?RfmcN+NWT(T`ZWO! -z>v!=9UtN;Fs%O9cB<+9W6aK^s_Lc6=e0;(R2OpNiHt_Qj01q#G0@%V&^jcsYdN|gh -z4{%{Lu)rKO9P7{tH+}n?oL~G$ZD(AKpanhz{$THd*7O -zB_xvt!QUUqCZyfcfP`CGGg3^9k=`GeDP+>pfE-#{#J#dTHnK+GxAhb&ENF19M+^9g -zf~P;$wWG|j_?G+lkTC>TFtEpfqgN6((1XHYEx=;|z%FFrian2c@|24~cvuU( -zU)4hSyBBMmG&V$XlC~7H)7=hZinPhIQa#_W`py2ukv2J2I)&`vNnsUy?k0y~;#Xx0 -z+oRQ=w8_z1kK!bqUiA*R>0kUrFD{C+<6rx$_^ML80gsI|% -zY14x_c?gd>?Hj1zwtw%_4lQ@|1ZX3mCqSzmJwXUO!TLUr_vqq*F?s2$66>cJ!g>NQ -zJk`STsinnB<~=MK1H5EV=|1sVe7$A-sv~ML97COjAYPTCI(RA3pj&dRyeQxk=EU=l -zKUJWGf9Vs!+;Ox?Z*bl=UP!coN2H;cZRv{4vC>_Qn$K0uyFbB2B@kg-U#dL5WRdvBplfj* -zQS|m&!Iz&ojb~SpyYTz$oTq$)Zm29OFLJogIYj!F)L289C&Tl?IqEH9H*?x0)R(X) -z$gwY)iF{Jme+T9QXZ9{$NJW| -zCCqNH=+gFUFP3bSbdm{n*>cj!vQ3^hjH6gkOu0LCr+!PKjbNX?Q5B;)>$aPhI!GcG -z)VQo!8PzD065MC<#yUOZfP+r1mq*W%zJ&LE4=ZvXj2yF5vsvPruDWR-*KDJjJ00<# -zE)x~JIOM-CjO2hyN@ck+lT*e0`9|lHrO0F^5~*A#hVKfOymK$Uw2<}n0=^M{H+?s& -z6pqGEUyWw9O?8l4$V^1f%ccr;dCkYbxqeXob3J2&b<)XoRn?6k(V$NBFs -zlq?WT+8(FOBbm3Bisd}>`iE~bGm?ulGicHO35_JNcUzhgJTIpeYB=f#3>g(AKy{m`1JhqZ0i>N6(rr6H+p*Y(nI8`Q*E>xpI7JE -zQ7d}a@Y9=Var)J+VJWe+Nia_#OB~_X=@{V;+Ey+5fjW0f`a5w6&;I2Hg1m*@{qq-a -zTyMIb%eMYugKll^1HEqbcbrm#reoq8g(bt&;%@hGk|~yS(8@n~mgnB#z7g)>m@QkG -zmAcf-k&^oPdUHmtn&z&@J0hxX#VJ#4e|_c9Wc_){+jxZwqCMwzD$iPzko?j* -znmA;M3QgfM(~qADm5FjxZ^<;FX_u;E-_A;z+E%@1)>xj*7*9#K_U56)VSk6Tc^x(U -z5lpdm`yH%jT^u!ytP&_DcJ5d{>%2@+@BOAdPFYK2KGK@9*ss|sX{NK?1J40kLcC2R -z)=uqv47ajnOV6sVkmod8wtsb5PB_UCPv;9E>U(cCyN8GuI;3dCE3X@2s+*T2Is5(m -zGZtBqJ=ffLN!C4Am-Qv5S(K4(X~DF6dp9X+^=`2L7MH6n2fg{KsK>cn-t)_;uv{i~ -zSn5Vf_fc@OI&IEvY6Hzio<~8${6-N)^1F(|7let_hijy)j-Jjb(A`z#zM~~F-ndlo#=(RLLG|{h;7kIb2S{R8Tbb -zYO~eSn5E%ovNy!@WtjG&u~hlzZ#xn<6cLuVzG95(pk(*0Pl?KpQm^OwzAUwlFXZK{ -ztmBk*Epup$UUj07tm2P>_MggO1 -zf#wcOj(Q5Io8Y^b62DC$lkF&X$o!!$rAnRZ0T9PEY@_^8SWn{Dwk>x -z>```W5k+kq7?GYN*>I2{TCg{0uJS%_ao4C4^Tt#Dk1h#DIC6%}Iusbd8nJ6r5L7lc -zYGARXGJNhvo4wI9ny#h1PLiqQ;(3#|w-qd!T#gpWyBZiNW{g@bokNh -z1*MWzb7bkuGv@6oD>)L9BFRByBt@lVAMM}5?NP4u{y3|+PnaJonUCUKzx=Mc7Gity -zvvg)wF8uV1(F>kc9*lIeS-fc( -z`#@QQUeK&k(btD^9_WdXwrF@~crM)Lu!QW~ilF_+tf!?BF~N4rBkPC2MNa#vua&#h4Vyuz*% -z3b*B7jcseQ?Of1tU(Ax}Q(R}>ahRv&Co5)~YO2_txo0Yto^szW`bpv14ZR~ArgyRf -zYPK(nC3;5dos7q6A3fN{HzdDw=|-Pu+A{M|7COlh)7I0G4cALm-c&x#e4Nj7Q$jAt -z`;1bnGJVXMhHEMbI?6iqt?HlXKG1DH((Og`gpa<9oYPNv+YviI2UcS5*Ncp;__W)Z -z`FICZ18fg@-c_OWrDnSL*2`rKrT4`%mo1c1Y2TQ?{)?bkpso-kA=FE&i#oFopY>Qs? -z`dEuzTa$g)Pj8sxRb8n?T;P!MJWL?9sfK^Fm-_xPPJ=*QeW9~PTCrn-%4_Ilb90(o -zTtx7wJl7w2d)j^f=Gsp$;#=+T2zCZ#NR6#rwU?QDZ;^P(P}$i-@iG(>(r@>8B!{D~ -zhg$9s#bpG(m8e^z73o;Hqxj}%)&kYrW3;yxW=oumS6e)87wOY@{iD)XC35TJ&-1+3*pJ*pmGo5qiGfR>eC%&;Wh*{B)DmhY# -zaSN65&C2Blz9&^q)t?9|;Ca!)9^Y%LJ*!GUJ-dK>__9sMy6&D?ij_|qm&)6BCJ<*l -zJ5s;7zvfo85kIYiw!?(d~$Er-@UYh$Ntq=P2;)z -z#*JJ;1ASo!gMDM7s8+=uC}l1=^Ljt;3In?p&pvUV^*q+Zu`Bajoc!D3>ZnHXPO`#{ -zwTrZp_~RegE*Z9RS(2$|_u}c<4G&Mp-cR4PZ8q)dSYsm{R|?HeMg@)lHa7#m*h{3E -zDlN_p+n>bV%-d5OqSk$b(L8~b_=cOyMicj3X|hF4WrYS}#|I*Pk(csp(n{}*4o;gXT4!0et9V*_iVf&iQ%_2dU$42y@O4;Rxv~m+|L#Idk -zm6a*82NW)eTea^Pdb+&7JpYOMhZlK;_xXCS?|&Y~(Wjy2Ah;vDfVq#tASml<8bj9V -zj9%$93e&TPh3{-S`;g7<)5rBI53KcDuFt1lT#&U)=3sSWYl-E86?!qXRHs>a9$ulD -zT`x(rElzph35U~&NaWH0wuf9XXLyRNm%q4VpDLi=ZJ@oRnJ#{H>{{U--q`!`1BJ=a -zF=XuJAM?tZ;Af$aJ7OC4UU -z-5%ZHN}p){s?b)YwLxO+{)d&CX(saMj_d+KfjyUd%2zF3lS|%k*s-+Px$w}lbeiZP -zhK1&zhW$9u;nJbisw^dbtoqn(7VBec%lGtp-GA4o$7{V%oh0J$fm8R+t-m+_;%F?w -zg)QrDjVxjI<+}P*Q8ZVZZS7jmtRS~dG#VP$rL{@2-dQHttn3K#7DJs9$+8oT%n!cM -z=G!^eG^%8JzO>duj-h1eUhdnaJB3LNHmfp*=?SV8$%h#jtyN>CX%e|5<-th(_AEPxbc6f0;-PVF3mV~qW+38~rfi)}U^y@j;EMK=a*JwmNe>hL$eXO0F8O9*4b}t#`O-0ZIDVzDpq^arLX_+nQ1$IFEh4d1Kvt -zxnQf{o*R69Vj>Zb>K~-~1l~Ll6?Syd%BaU=E!zeqU!tKMFj^kt8RC7fe|6=#;r`dv -zRZYVcjUg987-%H|PVmzozcGLQ5nro(qXF_(XIk4!*JB)fFT`=tC^b|L7wX%%1`1b| -zxdgN6_FmJ)Pr@EvM* -z;!I;Ho&E2XZ@-_fE-JLcTW(g0Cv}r^@zN6+d+hCIbs0%^7_H|mSr{5VD|P^rqMJ&~ -zmVROh_dU++Qq5Fj-_dpHr0|%kSI^#yOH=(A-#cXm -z>|19ZM;>KuEOk03;GT?fI|G|nqldSIWHwqFFliR-b2wl;0C58NS(&F5RGPxmjqI_M2 -zj88OcLTQ&;*jU(&t{n?M&=ToyV07Df87X7i%x%Cy{*~b -z4RyaWsFP-$V9Gg@fyE8Iwa+*dmM++8Nc{TZtA*wxLg+Clh3H!3m(;F!-;%RqlcCIe -z=eYIpp$b-iA -zSS(+vX{h!p=sxQ!mZ)TOw#8Q33}g(klVx%_82f}Ph=_VgFC`Y=IWS5Yvs-NOfJWlZ -zp!0m_d2vRLNJI5b(75RmeQ~0ntY3DwodUqHS@J(M_4K<*33)W -zG^}Mjf^ObMHeXX(dVO$H+p+nNE!+-yF&r!Vq_&(@WOMJPOZgr>_4WGQRhHV_8ZD8* -zG)sj;V$2)eP1mJ{yliw4H&@(8Dyc*lx_I*dIyU!8-N>K4H}J)Z{0A)th>nIKt!To7}p#Q{}T#Ns&lT{AFdFf -z-`4DMG?`60K;5;S`WCKSIs|h)$#acnO>$qRWvkzqB(RVt{;OJERS$i5H}xCka+h>wsD&$ -z&rUT?X)6`x8+VC<4lt(Pl<{L?xOrs}dOK@LvT~P`4uq{_*&u)T5Tn-|^HQP9k8c$7 -z%re3=;$tYwqA{m)nQ%XynqLztX%+KF9o1Cd1r|x|u~x(n+T}oP|dsIFwHAf;U7T -zrK`uI$1ZA~N5*a_ReGF6wAkNRw3-`FPvPt&Q{Sv>1Hrm!qHj;Ws@OKlz5B>V51}Rw -zothlMZ23|=+=fke!yVj@aGuaMrMmx2jK(R8<1Le+hS;^Gj|TIH-zn&&2{dkD7$^MYVO4p=v`--O<{fIF>SRZk`9rT -z^%)i+;ysTgV|Wr|&Y2(7am(wxlIPZREw?PsI^qOgxu=2xds1RXOe>Dc+`Ho1oxF1c -zJ7Lu(T~+YZKcu$fZQVcvPliG5DO-W&;B?nw(xj_?Tn9BmFs1Yhv$JV&V$z!tS@U}&k?LG}%Zj-VHDHNspj+BR>m -zD6wo3k*|SWR6JkePW7$;@d@9I?B!L%y|G#G+gm-BpMM0)^^QzKs@hiJ>QQD55AT%h -zx75~0QlG9&%Ng#-8A@_vy=vANm-yl8<0UYV@|MG!TLPJ5o5h1FyF_vi=FyHTA4_Ol -zMwFh)nWzj;omC#`$g*0iMx|OLn>G90p3(5JDrWh^-Y3LZiY0G15AD&qztC~>hZ_$X -z_8GtyHlVz=Yt63Zw>kQ2kL(>4Wz;`*IHmCItedsnIrSv)L=BpUisLeZa(Gk^$JK8m -zYFZ!iFv)q~Wthb=kc0Qd~ -zV>#qc-R8iy^NfkQ(^s}>Ka06YyJQ}BdCjIduQVUEU1W-A=HW_ub|qbxtVsU2D1#I6 -z+6A5CTwH#koQbYQyy)3jNwU(ilt0eB-m`EK{aCP5R?aAe=cAF1#+=op^|$6yUt6@d -zSH8;V3YGh89YXcsq(|IrZ*B_(Go3oS^Q`3h?4{$h^iF%=v4sO_T2~wu)r~uv_KK-3 -zIoDp&?m)>7z9yQWz;=86ID_T5HcP+EX7K -z>2o(v*ln^oO|(qZMez#NK!1vW9N~s7+j!ggZr=0Ab9o@mR-c~W8yfb|wRI)imNoln -zbgk6#&(Jd}oz2o(9E^0Sc+L3INC -zL0==mR+G*ge^K4)T<0P0)i1|7Q2km$tDW2~@=)9e4QK^2x-nbL%_xql^ -zxW>`NAulq0y$M(R*vPTiUi#kTwb2BGJ0%^Psrw|$Jt5e;=i@5Paz4B>FI`U4XI$`3 -z$d|_3(yp(#cs9L4xSIjtPVB_bU_n3 -zf<#oVG%j-8%u%h|w9X-s9$^Oi)A4kvg8h{5nQGS>I#>k8)pFupSTOr>>!N(!w9VpY -zty+p+n~)l&*(sW9=j+p4@b!Xs-4eP#n2312smChM^#gYH#O!$a%ny?1w`X3ZeNu;I -zqjktByQD~iUD*Y!UHscWt`TO+Kn~C=`ZO*+DeKkPlCgNAOg_njuE_ClXdd+ehq{2A -zQvJIliGt0#ro+Y&9k0?4OD5*(?P$=`={wDMgb{fs)6&XDk#of)uQ<*`^wMsioG4dV -z;iSS=CYit?mT|FEw_SG@=!_kHE4fW(r8`g9VS|V?$ra&tnT{RX!^NI3M44{nP8B>e -z#3#O2O=T_pJ{EdA($HHh5fAsGdVZaf4mV!xjY-L3cqh_ABDj^J#QV(4-3ET-)~_R+ -z%umps;$jfpN9}Hya&M6q?QFgjQDLR4x{Dcioo}+Y1(9mLKHi -zZq^i3duSN3_F9*3T!gz^6kV1)aR1~1MccN6Kl!fdDV%KhSribY!XC4!zq<8KUN5u3#Kbqe -zir*x%rp#R#b>7H8WW9=^@bP5QjpD?1#UX5mk5aeHZOb@W_~w!HhLW@T4a8^Dxz~@l -zi<>i44C9e+?pSz#g|UagaN`A&`6iUHbY|!Q%%nQco<9-RQVsRiKfFMXA72jWe7nqf&1v`{9qnZcj^JN_DD4 -zQ^GC`q2K?W{_M5RV!?A=KE_T#np&y{Z!1nDuDo`wiJpggoKVZ0cE|j2nhNFDs=|!h -z6B`QY7CO~Nc#-srXf+i3vo7pe^X#b$8EcO+7B~(Z+ZeTH=!$Uiy3`W;`}>ziOORw< -zQ#i@OaX8F(oATCqBx@vx4(Gk`z-P?dl`OO3XWf{io*Giq*FBG&_mRDtMa_AJ=Eglo -znpI=(j+4lwE^0+p(TNegC?@J)PD{qhd&x07r1MSoW|;`TZga*)^Z)$tOmrvI2dz$HRLFsgG`oiNPHr`K@OIwSYb=wFn=6EGg8zi^wRFn_b -z4>@+caB@aY(i`79pA#%u?zKq3RD!6)yo<@0LJmS7Jc>8!r?N@d9tUX{R? -z>uD7N6>)YJ2wuBpIb^JU*_D%G&!en -z*C`~na#||HtH-<`J+2V6vZaYZ^|H=hbOs^>Hlf*{yx{C(C1Y|Lb;teuTby1FGVBvy -z>P~hJouB+9S)rt6sea4Ps%QocK4Q7Ii-^}Tvu)?rjCr6=75iaX -zV%P%oiXlVYhRg0-nTn$^w7OjA+V!YJr9mc3h|&7G@G6?b+F;5j40B#t^qS9mS3uVa -zibphdXYsK03n^BUEtB1rZM^P?>1l4VkPAelk4K30%y|>c=O@PSKc&Bf -zm*sp%H5HcCXG~7Vp3>O1C)@vmeL9tj -zYqYF@V)mx$q4}O2)L93cJvEcB*Kmq*OuiF`HW{;U8P;vvh1k9K^zI(mV7mA~46DML -zq&lTtK0sVfH7OkRj9UG8)*!!78jX#aI;rf+M458&qkk1fBc_h*Kre|BK+)Jaqi5L6poIU1^=z5dOCEc2a#-h71 -zdfv^aDBRTYOM8aul`Pa7dW$iKWlWVm@H(&5mtp5n_9!=ti}-qaz8&c)TT50|g=)Dm -z7A3HASnZyLgqSd*hLCEj=Uif)W&w$!M|?YP%aC5-7$%JKRGq3HyQz=!tmFAj%scfm -z^n7Eo_R=2j6^L9Zes>$uoP}#`3W(Wv9h%kk3KOCm5P~5+nv{{txU_qJV=9H -zw=G6AO;C1mYxJu~psdPL2BCGs3Jcl#ZIo&0B#Xwm_B=7q-%7pROUW*Q@}2wbq4fj` -zy!;_W<&`CFGH%YBx6ipg`ZiHCe}lyA-Ntt@FXJKEET;N|_X+n|0SQt2w)I?=!Aggz -z@Aa+}ZE?)M^;lq|S?@85^Qa|VvU8bU)kpkwq$*F}`v)}Duo?}X#3nT`^oi6(AkD_y;cwXcU -zN`ie|JKu#mJlJ(ISlM?^AxBh}h|NKs>Sh=o7D8BG`B`vXB^S*pv;?jtsaMTE@Xd556Xh5mwxJ6z3=6w&}hHjNAe6#&T -z&bXw6owlBgJOQkp563idtmNxv8p)L2Smfnwxep5=Nht8ueV`p%aY|;CyPH`=^?;j+s{b~h4UuW@@Ml!u|Kpt>$al0|HNirg#i6HWhUmwv#q7O -zSGGLdG=Mrm^2h7C%)1<}G@L&Sr=NgYfLFgSGLwme$;>19gNB4?v_52K1!TC`Jj -zwnPy7Cmm{zqaUSkz~n@iY<|1ssfzfGi;WmBZPuTdXF4y!^%9Y2&?@(hYy`bZOyTt$ -z{`cXRtslpg!wlJ{oc_yT=`CIsd1(%OG(M4{JzSWZ@P!_B%S|E!DubhJm)Ln{Wk+v-MinFcb%;dL+Sx31h4p1;A^Lcx>k)_|DUL*}>T4KkaUdgh7Ne(%otP$GEJ7xVLpat7qJIQGsRT}t48g72|tW4zGrdvw84&*g2(m{v3jEyGmR{pZa -zPK|KsSdUg^G|@(6^Zi^8)f3-ybVyKPtDjgSzF`sRZ558k4|GfHNE_}=(nZGb{q;2g -zvy5GpyEMJY_2xf5^!(LR?X{2;YAE!k%GAnpK-t=m%gs0$MAqjMn>u -zujMOk_&{d`8xO6;%UhD3E7T?5x~SgV6VSb@{>)?t9J7NdC)(ba%~5JH3Keh;Syqd1 -zsluXhYxS-zkE%kr>HXh&^LOVLG)UbX*VHWj|5*F#psJtfQ2_y^BqgMzyOHja?oR3M -zkW>@|F5NASv`RNp(%m6Qhop1}Z|~*%-u&jx`}55(!)JT$IbCi@%J^&pXcx%X(Fdt2CJo3AEKNtR^iu;b)J- -zPTKKmxIn-=E+F#mWx*#j4ye*b(h(| -zO{Yc@^U>J$C#tXsQl-B+QGdp0*ex{sxtG$D0!z*nPR#YfQS)){QaC&EsL(t~+n3#Alq?Y&V -z{tpEgqwx5f;ZOCkG97%y{TcAyY=3094ATN~=`+&dM?b#@a!*Fz+%W6ChL|WGQ@u(^ -zrtZCI_Ix5es~j)?->LVL{Gpfzde$3dJqzHY{q)^`sS!DHQ!E>`zDOuR+Y<4 -z(oJSR=a!Tqc6#ZQwm!~TI6|`m++s-rF&K$wwM6CYm1odP;y|otFr?PjT8Fev$m3>^qmv)Qu5!n=__|Itm_9MQ{O)1n#CyBxZn9qw^*4-k}(t5zR3 -zJ?Lr#e2y3L73@4#DOpwV8@uR{>oc*Hq`aw@*7N>#W&om4a!QntUjKSH=HIQ+uBv{Wb8HTmXj)G0rUqz=(`H^?ed|EM}9QVgu9e=4V4)P;yank^E^21 -z?0cY%=udSA#1-QXbM$(v*E^rz_i}Vn>z}7|kdKrpz~ltA-M)+toGaR+l$L?0DjTkb -zl#hwra>5=}qf(O0&*Ny*Q7@i@`%38Djb*LO@Oqh9T(Npu0!mFg+d*kPTUSHYvP66< -z$NbCS!@~#O@ZE)}Oqcs-f^j=7s|NS5SBDm3-x~Utd^hJDicg(+6|bvxs8{!3>Y%;g -zu+CT2syA_*h_u}4*D*9Hiv<~s#k0Q>P_u`M71ph**Xdng)7+fcSX}21IpReNPj}+; -zO-oAN8Ce&7JajZ~oJtG>Rvq!HCtt&nmcI-c%2mccGUpnZmqh!H&LkT+I00D2d83d&Ck=G;XX|5VRqIBLP(U+6 -zR+bI6{-WWkeXAPkYiIl<)a{Lz+ZIe2qassEHsHsc>lN#nl*xX(vr1$X*{k#(-MW#J -zmrCq?p`8K?DodH?vj-6?FgbK9G4^_~iU^7@oy7i)Hud`Q_5)qjx__CSx69Y&~6IH!5a%7DT( -zEtd9|c@7ksbh{5B_w*1*YCeOnMDk-=Qkf4N_^uVPCcNyJE&LyU1a -zzxM^JVHH14HY#D*r?-5arVjRwH&tu2@M<`~Yx}hiXF*fkzeJ8rigtMUk*_mGp4<54 -zrr`$!^%XMSB@(5kh%C47TF$i33Q0TzIpQZRoMQ4ko@&W^2^Vl;>)tcGcbt&d;DDoy -z-_QSJpEVNv?5%RQf?9lw7@Ly1NFGTrQoEuc)=$kVYSA@Fh(L43st*^*UN56%-0mKF -zTp!cMtdZIqKL%^IXf=bBl%ED|qbll1{R(P{EpP-)RAkCt-f3F`vR0Ox@Gpn_OqpxM -z(9Y`%S_qO|ON=nN2i$Cn -z`M3hOOSN5%qFgXMfGp_7Z-9Q7ts -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 -zNg`eVy=MBJ^;JeOs3%*Za>PrS_>RZCCo(T+w -zi2!P^P=?z7LK28tjAcRF8AZzJ2rkKr~-3Up5xxi?=nPQcbCr%?r!H|Ylf5W7Y-t!76orXR{f9neT|R98a{Jd(-a8;6Q)$k2AyO@u4fyoaZ!m0& -z9n3eY(R?4EKrQ!=3;t;#Onpa(^c=Ww?8Y$!DI_!Mj1XDYa8|il5p4;?Zcc6wDsq~< -zy=Jq@W5n6QhfxKmCKYLnE*N;J7U#$c08t|2N -zBDlWl#yF5;mM#2(BtRWs@=^XE7}HxOGGGslQPZ2Ob8pyFxuzMfvCF%v>7&lPSg~N# -zs(1^VxU*lS5OZRtmZDir=!E)t2yW6#VZY-|b+rdZn2*A!Qq^TisB@{ci$H~yr@Peo -zRw0rJK3fIb1#)eI-JlQU;_(`9hQGie37++SiS5*K^FYr?2+ps4y#DQRo05E3Q%+wBC0I=b7_^zX^N)LxJAw#W4(yYgWZpP%PXR%4|&(XvkWe+$zJIb@Ng9Sh1QL -zDpAhj4y -zRHB9$O%yS~`tKuNI%)?w6buK$fYfW3sF`Gu_=08Dc@y<0Um{>mjAQV7+}2CrL6Fz5 -z=}w#%r&T1w*|PZ?-`fd20Nmi8FpeH74UgWQE#!MFQ6CcYv{!+BwpacaZ867KtGX6XbBI93%+&9}s{*bZ -z-c%p(!fvPv`|tUuRGHRThQw?SotYb4_1`6Ft06krmn*?6kNnxe-C9B%&linmwosL6 -zdHSBk-_$8;C68>9o~>KNob>X|J2;h-5rFq>%1WY^8zC>c5BUcEnLV@ARP09}w+IVb -zX-_4+O*om6UG2#sPUmSREHbqyp?MncJ*5-fR**0QQs;||xtDs$yGj4(;b~xZiS+nL -z*bONa;XLVtd~ZCiYJintcA!^7w>*8Bpe#0OuNKvL_9J)G>=Ge$Vv&k+4*J+Vvf{=1 -zMZV%=Zu~R(u+XmHw7>cCMJ&11)J8qeX(txgRHi=f;Ai964!CaS=*<0HVoc%;2}(9aB5Z_iUlMW%rz?nZ|zK+CQ=*G78IY{#Qm!H?-X13Xc!o(Cl9yAU8x3`qZTeShC%k7hmE*Z){W(1g&D-1-A -ze{rZx@x^CN@tDxa8aK(_o?W!~q?jGp(K80cdTT75!CaHXE&T<0F`i)%wZ@y^(4Wp| -z&YtB3n1@LYa!Z3U`<#S -z(07~b)9cC6Rs;et4YHPm*wdbb|IcjD3g-m%K4L#3#rV?7eyi)YL&Qvgb`$>&bj03v -z1VW{RT?N1U>8UixdJCeTmmak#=l|PEY}FENzs=Q}9gcvvV!Njb%+7YsnqfiN#INb_w8Tv}cDylGWos+KtL4nI -zK3dZ}tRP*0{B9`{7r}?_@xG)!AWp&CvG)+Cmijj0u_w7=OBwItktPBizIvg2tedI(c#kOHekSSfm(pMIQ|(zX3HnU^QGB|t}`@`{T$-LnZ(@D72kbn!i -zH)3S-_j6Zfx^r#Mf!kco6D9Gn+nw-hvJNejmu;*MS!gl69*=vGgH9#OoMYg@+RM|t -zK5PdK3fx?5O^Ko%f5jy}t{i0T;H;hCXnXQ(PH7W=1qx~k5SS*_I0y!0=RVJV0|n3a -z{Qd9ux8iV!C*j%OGM83LKHUn~_#XW7c?S=&K&79*d~R4P#&7!g8T#(gs$y-zd2{A>(wWBn8DI@Jnp~T&_175|gQl?ZrKFnL&%SDm> -zgvO#_erGVPqq%hAD}80c)xk}T34ON7(p2$PJ&(2u<{`vxFw*~6IC^!6ZZhCEtN$?q -zBv!TP-w#50grAAqpI&r5+Ye6BefdcW7bj2U=$K3;;oK(i4K9js0CuqXB}2})h*b(Q -zCmz4WtFt>31C1zEgTEHYGi*N4dgoOJM(=Cd` -z4-Z{WSXpZh(N$b>L}ZXMD|aF4sd%bl#ujsF28r|_x<|L=S`&72wni|pL0;HfWqEzC -z8Q?j#?fKWbP0%g1AiK8u;*2hPn-F|A3}O{4)hw}U!*z$N8q{PW;_iQ2#vf!YoA)f_ -zyx&ETs?-+S93}-Ic9L?F9Ij=|N`6*GPV!vi-M2Jo&@!j9zk{q?KBfB> -zsEocfBK$%psF6#%W>HK@wl#XaqgBx#KsYd;(qyZEoH6~x>)d~qyeQCJKh?US!w&lB -z(FKhY_FpHAmH6YRac=?&KYzLY03Gq{SW>HEYlEO~R1=(A@w__zrow|WMCcHZ&!LW4 -zAR-m$sLQq1#r*|F0Or?qSbCuUuDwS1s}L@1VuBQRdzeF4B)PB|U_p*i2Lv|tKEt{X -zT>XkD@`e>Q9i+ahDn2?NjB^<)5WmT*1dN0EVb#D%tK_*BpX3UHcw3-5{E1tt(;cwHGq{M8b+ -zR3Tj2naNMEl_7Tb@ViF*H>p*7V?fkAYTX3xxYlytKu6!t;avc`o#0cdj4Kk2x`{8> -zqKVZ#*9xXKsc!)+yd=4n25fCAyX6qN;d21-f~Ed6;#E8301B%fSh6G()~(7;`FKa_ -z`TI!XH0~_1Xqkrz`aU#@TVVmde(My}3^; -zdE5ePJLQEd{kb=0rm=uI`@e2el>UQu1S;RpSlkmPPzq2=N@ZdAkWR_<=*MlY`r({5c^cTDvEqxpWz~#*0L{z} -z&wxf1E`VFP>a)W_xK=ly&6m2&1+$m&f$IbE&dbmPoVnx~Af*cJJ9lDX*u6x!|I7^_ -zM13~nH3YVY;43a=+Txj7j^_fArwbQaUs+&PL6Hxodm3n0Yj&KsQ_CIQpQeS=H1;LXLdXL-h& -zZA}>b(~~q3pglaaJkP}iUaE(VtMv|0USG`9dF<}uDo -zsBWNn5K74|EOUbWWbA(iAM8RcQYCUFnPO}(h3B7ZtqhRSMN|7U&{QzhuG9+l9kyE5 -z0?U<5riwGTbT)m52oUPDG52uB9iuz^D%eOnp+ez8?L*v&|FLO6&J3Qv*s%oIzqf@^ -z6MsOkyi|UruOLpI)h=%f2$A=>c5*ZC@X$LFh~+rx;)DJ$2sDwfixHQT6jk4V`o;yIFtqjNDAn~-RPMi25e<0(13Jw)g -z$StYHw`Gj{qAs;ilI|`=uc*-M?3kp2=H~G6*kEry9UM;W>i=l8n)dpl5BvwOfCDJ? -zGgN(`elB9#Tv<6KfcB4Wu~3Al -zp26<{aHR8)^5$hJ?>qZc3ga)uj10Ljvd-0*>&N{UH_e-gGjVRhXV_1u7d3pne$ZU -zhnX?k|Gt<>g9qPAua+H^1O-12hI4pCh}#I%(LKj9muQGC%|uaCAE8TVJ{eK_R0?FQ -zZt(4P5k~yAc;W}$K|kULxcRKZaGtz+M*P<_CR4JwU97vMXAt2zR$3p1ycB|NhlXe# -z;#)lVR&@30o`GkvI%0YWMj*L=J)hy2)m@XTf}uD+Ix5UKN$W3^!eCn&^xW -zcRUr12=O6-8M+x=i33Tgwe&^QCMZ2`H5wzttyN(UU<3TJF}KBKWjF%J#M*!G3N-I< -zx{tTb0nfxs9hxtPZl7%nMU{PY5})bFAl5@AkG-4iY5}*Pt8VnhToT+3zK+|~xQbrH -zGr;;>WVKI8y6I7ep;>e}D&>?gMA_{i=BtSUyPnV3FRP0Cd=W6gKM*-gSJecB2jZ~a -zw%Zmp-09H;E1CX{&|UuxaIk5{60aVqF;Bn_eGI|0H(bD!^javwJau}4&7}k_SeZ^x -z{abQv#d37i0h6_8$vyOU2_X3nQ@uI2fvC#(lTDj3YSvxZUhy$nK)^MD|OL>E%Y7I*x|Tv5t6 -zM(3@YbCYpYKvBwvA{5F@=@pcnz)ukR&=R)s)r{GQsO3GWZd^%96Anvelxz}w1u-so -znyR7lGGZX3XavV9<Cy&rqjA`$>UIqwI2MKy*i)eto3y!VDH6z40r~_Lf -zu1>H+(EW0)6mT8J2(G;C0BOL)j0xz!sNnpHP?U{Zw-Tr_Qgi|0UA+oH-vo~Ah1Hc* -z_ib)VCm*?ylgkBUf`SR%=+j#(X8w^+x8v2PWFPi_S|z!LpxLtYzPVF~`Ahr; -znktFN6_iOSFo+jRgy)XhdQz2O$3f>&9}21}BH>NC1<{8ZAz3`fE42j2W^^EXnl_g= -z=4-04L5!H;Q~Y8e&{(M0_@cMe3_M#6;Zp-bz(BSdlkEmvK8gs(6_D={2@_(=&u_BI -zyA%JZ*S`iVM%=pqhprzgF9!dWD@be^kudXu!OX~pth*hYdY7DLwJ_rhak1N6_Ip|0 -z5)mLS0lGvyMP1}S<5;gX;VD4LA`{zzCQ -zt6<*f+_2^arDHfXtB&6ftDrIobxstLLj^j1A;>3HLCTM|deS+ynetvK4FU${&ueCf -z`9kCy03!vE3$uu=zGy~tf+eg}aD|XTIOYM4qVa9_n>-L#o0>2|HZ_Y2u%t!ik3Lx$ -zfQnW0XP40rV%3QNVG``OUPbg+1LaR!P(#;fhZV9)3~U+J7AoNfGFI*SoA`Q!3E9p* -zfVQzDYWK&nb@PvNwAGV;Eb-dvy@P${G>`L34}YZuhL9KijQiPiBY@;E5GE|#*1NiM -zw5jxEzoJVpD76U4NftAV3#u7pt>!3F^wJq326B3`*uUVDfrqb5G1bptey1FC2H}j& -zGJRcS%@u$WmZR+wLvm+oKnICp1*O^-KuT{x+eL$z8UxAwE@_fFmWLuMqQ|++T!mlO -zi(Z$n6)MbqMB8PB2;cq*dB=J&f)5xqn8=>b`!v&xaf$C*OIXM4u6RHY7){V-fIH45 -zc-rZ*v+xq6Z8L^*==92efYWM3Z~V^m%_1?sZ*v+55RLy>flQ2VjrGevAblaiO+3Zj -zpoMab_kFiJ_kO~Z^E8a3Fb%q&aZJ-ff$!&ZL}!9HGO1XVL#f^wg>1dN_sz~TpslDa{iq^ -zXEPHztG`JANcne&A&sHn03Gh;OP(fGCw-*aOl+n;4$vc=Xx-mSF}|%(;t%W~2J**o -z6MvZMTWY{Q+DhXOb^xhMo|L62LzaqNT_KP|Ss=$0jB2Iro0mZAh@A!BqkkP3h+lmH*yzpXL>c{c@F4rBgMOx2az(CdU{p7 -z(ruLUu@>A|#L6C&hf8=rpVmB5t&x)`o@rN$JDW);=8 -zT3DuiQnc=d>f3r#NncRe!~V6E-1BhL0+qa*drAu>iWnD4D#0gVx0rD=z)dv=KB&Bu -z9Ij1GzSdaySpu->()s!I@yU!ppvqWl>dVkYK@DMAH5*&+zF|WVw7WFvKqcemp}A_? -ztvk}WWk8OqgC=(80l$Gw>D>v&@et5P=jU_3QMyE`Ch>X!g{6C>gqi35HKUMmQ${3R -z4)4GvP_9n9OV2HB-&sRRe7N?09`7!|OP{If&n>(#fuY&9?S8@8V&W=Q2>o_LE{VGn` -zBRKr=QT=T5{w2%1hDQnXp>32R9yuSx+Wy4Lb+z@c4L -z6zZ4!xr~K+jBmZG`pCiO)cVV|>Lxz};#^2Hb3rCC=Fxp6?G~dON#cjS(rCrP9gWPB -z?~#KZ)hLxBtr>u3&NO6`FW8F))MXEPu+a6^{&{O^kfOFlFw1BF440PUC|`VG??`~e%>K@Sa-O47M;%lbtLmuXSOt({K>fHA#{+m*06?Q5)_WA0~MtUM4Z%8luCcxjaHK+ -zS6#8^?*8q#>y;nu@ui@Qnd=@M`ISi`QrUP=FSQ_V4D!F@;U7ZM#vsTU%J{7e@gpdNa9fpzV@L|a4{O^fngguQav|td@4OnKW{W!zs^ttJ(2vO}Jsxr_J!5Jhvh$2jyCh;Esvwy(S_4A^GIO6DxdF->N8 -zOGSUNyS0KSZ3obEi%N8GULy -zvToJP_jPY7^2+15^Pb4zDwu;xPX1#V72C(JfEu9DH~;86w`cf*yKVr_i;)F3#D+Y% -zBqV?(cAAyr3jUOWi?YNEy13vcJ-E5kNgwj>4zxx#0=$7_F;ikrl0!GIGyoK##Ik5O -zSN>ZZ}(4#_gkE0aWJMG!LT{XaJP6> -z(|`Gr7h$c=5v$n9M&!*KXo?sUqxeQ0{pZ)Yfb{Two4N?L!qvV-4x#J!SLK8-*19S7 -zv2cf7*E>{WK6~39SGn_C1^jFPWPec%3qz$kVl~cDYu@N11smi~qUl5|jX1gO?IpPj -zmi+ZBJS0kW(fO0stl*6huB6z9LerUH463x0mZ!p+#NCf9`k3I?si)eZK$#by| -zzWQ|X;yuUA_ZhccKPR>~C84!&m#U_}0#M%iYAb|j70*vCGRoI2Atn&U8x7UkGV}1U -zEHRIYYcJ8#JjFy+}1r$=tb9~e#=L% -zGvf$vo2gI5@^Jr)Ib3f!E%sBs6Th3T4mKq}ggiAWFhr+{)v^dQeNR~w_mXo+zGXjl -z^tuCc%!T;gJA6HsB}o+!FK5N&Uk&->ei -z04`r6`wua26-pio&BkGc?yq5mZX^$d<`0GPW3WOdDfRSy4BSCAu9`W}(f^gimCP$^ -zf|DA$?O0wp$R<%;7j))8zIRG1Trp-w3x&rgx~9k?)r -zcI`|+NI -zhp!b1`q|!$6!FDbwDF#d<7}|3fQCQs^u_;Bf(JtjrHtw+#j*K@R03%PcggHNkQE+S -z?gYkYxIA>E-TrElyo(C($Q0DYQKSKL>;fZNSh!wcAiWbv{i*#~Vdc=AAGq2=bN?DA -zk3K~*c97BE%v<@C*ynH{I5$=|voMx)WnEuxnbNh&pQ_-(v#fcLQpP5FgmFCVj0!!lE!ylJ|{9DEgAwe^WBk -zUo;ib#-*4dgZ(;a6`F_^eFhC!@3q{IyU9-E?7D?8eI2azPxueQvFcIRjSttbPl#^x -z*zP*hsnE!EOmgl?mGC6mX;dP;AM(5@$BvbMr>K)os{K66jUO#LHBEQI<9{q%)o7Xs6Rc>VJ8Wdk5FD2T8Y{aG6luzRu|U -zA$qvTiAUD*9YX5QIjT=dZa(}(g%iQ!N$5AC>@FFB8!}1JMXppDB%e~f@3VO**_m&$ -zN4j*pz)$JmnEm3DcCp**$ULbjCD>+e%8c0#;#A|Z6ME@m{N(;mimXv$9gYe@_QJ>H -z3q*YT9)-Ws-o84Ub~>A-V>s1Osq4&t&nGXdU)>B->Y#JqmF(0E)&0}gFzitnU#cs- -zTz3p#BpxQ9eOVIDNpm|mBw!iG!|?lpw8auU&}>$P%Odj+A>AL#i@jh9`Pg=|!VfFo -z!V#DJGQGrPra^c$#~$CT40q2s+DU3bIj=Stwr7tEV3~DllysV8k{e_nlOB2=twP`Oo{i?RXLo`N#kCosNK) -z>6Aa?|Hc~+H{Hyb3?iXX8ZsGSx0|^h;Avm(Xqftqd)N7Be9hbp=kB7L&<%PFO4GFq -zPlSA+(V{&%`^|R_>_iKG3bKRh=biqKOAX-wQD|)B$V6400`D93epOmA1m7FN_xnvQ -zS6Zcwa5}Tx`r{J?@PKeV|CqrKw{UrZ7=D|1cdd!^U$2Ax{qH$}_caf`5DPrI2m)|B -zZE4$fSsA+rkwmtcrJ_XwJ47Hff1U+m6`%wF`g59;+r#OSMvIeCZCz44r3?-8_HMbq -z`Valpuc+3P=%u)pH&6BFilUf@gL|??y8S?hw7wF;j*6s5r^bgKo3y@88Rin0WK_^=-@SH#{#dm%jaHr4#wZl -z2?9sO!@i~8JYHU7%^)AtzPps6ZF%<21U7RN#c9tJ`}?hUhWVGl`+B3KeUC4!Zn7e16)f+SCNN^P@zZsS*iSNC&Wc(W4K43+8H -z0=K0R3y!EIQV^GF4TYpYBeP13hJK57S4Z!#!Cef$9MY;r(<){io@E(P5;#q%6&mw# -z^25e$CR=M(BED~!gwFO%M0Ja)#a9-`nG8rifqjtC7hauZ^{?S0F30&3W(l$0|Dmez -zK9y~C4bbQHMk;wz8Q0Y+TgnWX7Q<8v_pRwCn -zF`FBq<)^tf2cJSAQG79WHy%xVk9mn}(71uA6=9_>2=zZIuW+6oTH!W!;O?<*s5s@d -z^L8l0Q^sER(LBd!xB|F4*59emP|CT|)_lFo+q^}re0HediGp^D9sh4SZ~81nyf-a4 -z;fPc?QcjSqXti3d^A>9~3JQcCq~*sv;KyY&V!2eltlO!Nh~hD-?=dHghbofY;~y>x -z3@0>R;hUtwt9jQ>kT2C97=PR!l>ciL_GqA|UB6{by0XId<|_~Oz%kx-cwmWkVNBW{ -zd`w)iW)qe3;D|_+{^AtD(?qxDYo2iSMCvmuGa++%x_vr+>~Hbu+ar2h8K+B5q%#`@3b6m?rn9@iQ>{!!_ioOW?{ck(NE -z;%=Tj@@?0~6gT?YuEx5>NAd54lR9jhdr~gL4Gbo{8%^~;yOmWRNeH8_wts)QL|yaj -zpv2{F!Dv+v{ICs8aahMcbnC>f*T+gaq45`=a70sOZF8Mj;S!rpm*7;u197^=<@YFz -zo&h^Di|vu`o+N;W;V2h9q$Ekmcly!bk-p^09nvI+N*%@r1n66H)p`i2;xoa_X@nv^ -zxc^;wBS3ID4_0WK-KlK$kj;}_RBx&JBCp4#zWtY7nbM<&*xP$>D -z%>^ard?n~5CrL95nVCHe@9uARKT+L1U46Q%s_FWl=bY-yFK*lQ^@I@CZszpo&KjH4 -zs-v_Y7R#+y=Bn3j^UN6ni{HItoy8QDn%8tj?Uu^F{yq@qAtXOWl35`8r~%_%;x}pF -zRib=-LB0dyc=;BZZ8bG4*2-irl&W2XDvwWqJ|9P>64BMvl&pwI4?BTC?)9tr^-rUI<*g=f0aQ -zMdqZ=yc<^MW@4GR@J@t!S`x~K>-%e-TYHcjB|x0+{Bajnxv3XjeV_i!Z&mr`e36cApsPM@$!fK5D8Th*OaEp@^3F7dxbi4{3gV -zIPhOR<7Dhn%2egE%}WU7VjS% -zuDm9WOi6TYWU;Nn9*Szt^U7N+@UNw;&rgyi>);#JA!~1qwuKee)XAz?*X*a2b&4=X -za?cFBq2*-b8I`Ma=zxUG{GRqcIYvU)Lt!` -zwalYmBB|wK7u55mRb}<$zsiuFcU#uLZD?$ViZYe;$ewCk(o}%|wJ%;J7OCW^qT)mK -z?b*WHCaL7Pq6w5KyXD@ARORaqJoK(k0tW2WQoS(P9r)>qQ{D7|!q#tLY})>M#5V7s -z8Pma&D;gElJRLTbrr0Ul7CSewL}B^el+b`z^Vall?@d@zQO6&#Y=TY->wN;WpKOYV)w)D|vk#{%Z@+6R~<n -zQJLSd^=LuQ?A7-~2m6Tp!_?*uF?Hd~shiA)jBnNUgeKS;O5Q)TrW6l$Z(lqQ~=OHC)l* -zbR*@#|2xv2-rFhr@i@9jg|P8Zu-gGIHW0{cL9Z7wuMy4K0X@qJkZ^~z|DZwAT^mgp$8$Q#;BKf@12&HN3c%?jl2T5;%g8-y=w)2 -z@1Bims)%MxdC<9g$)GUFSWOw>rT{p%a5VUs?$|AgJMO+EW%a+xX!XoA5#8;l%ey>xQi)s5BD^S&ef -zvVmG+398@|@Z;`+HPQGkbgJd~z+Z0m>bo}u_nrAAPf4BzM-jI^z?`fopc5K@Tm8jV -zG%D*qU~~%ie7*EM=JoiWa*us@5=}MV5fKugK7zIAgd0R4D{Cp#mmY@+6H^9VyBVtB -z;t3Owo;Uskq%<`<3SY(j1!Z=$N_Ys29qnNi$=nO4Eay6$SN1o7T-_&!b4!zq)f3s^ -zc_a?G`N{9Yc{ld-KJc3jf%oT*=9Dx20eGB^|MqHp4Ic4WUnxOqADONj9bay1eCNFR -z$c?wzQ2`kq?s2%{$W|5P0d`p?x@}+Ds#U!SEWlE%bS3Q>&GV#(S2{I;LtL^BjdTKD -zBWr1>n0y1UJFPg6nUoqJ@WA&4uu}orj~NB{;043ew=GE*2}T4a4%gSj@r*^E -zeNa@U5p$B7@8T(oPR-wlBNza#D-&3#0g7g~AJ?g0E)tQs5XaVje@+t_$r!$&+ui%r -zXaS#oc$qc=kQpJ2*H7eL)A?HBZob^*7%5l>r`!QxxQMvBDlXA~$0joCXfV#LN!I;e -z=x+DkrhanBhWzO=uonEr{_0vYaPt7|;*Il**G<6l1{4`(y@IzexHVGw#%a1k!x)yw -z!(5QZRh>U81-%Exj+fzS!`lqStLz>~{J5+s>ui?=^yv$Q+>H)_2Ac{1zC?i_EJf;pOet -z8pxZN+pzoP!7K1>Z9txSbkNaaBB4xa8Kb)B9ZF-z@;PepRK^+Ek2xI~ -zsz-{7`mv^*sZ@1`EN3_mbcfVaJlQ`UBAa5M#&@M7O#?h)ryf@EMm2<$Z94;a;?&x=SNFHU_ -z!t0}Pxved1qQT!vrlyGWmB-eY`+J|VW?-kH@oUWLNV!mZqi!q?3wa~|Eb24X5VIdE -z`x5LeZ#1#~Qc8(^^8k{MROM=KQhN@k>#??^B=dZ@$~66AFlS}2@1LvU3!1-=v|L-Y -zW~{lRX((8Koyj~>H+RKwc7PK;#0s>=2&P#&t!srM-NkN}yYXyTW!Jg(RM3u{B#}5Lxg2L6%C7a* -zhmy_jWT&W7R`E$KoP|Db+Jj=r4O1~xL-S>|7ejxFB=aa`B^qyG`J$2P7@C4%PKV*J;4kd8vAFV1Jo+^%ipovLTzvdr$Yp2Uk>kb0v=?RUJe -z{zW<$jOSmFC@7`X+1^ -z|8|SRaPx=B>haq+9T=o0aIR56l!an)bDHa<5I=if;@?f`KZ1}YvJA62=~B#RY@G+- -zY;DxMP1pl!VX>_dUNPGmz6;Vo5-D+R`OQB87kq85+4w?~xpAv1-7~`H$!{k_+jol4Nk;Lomg=^? -zpDYo5hE*R;Kd%1<=UeHSu7M;wFl=3xV&CJy=(cI@pIYEGaa)J)#kW-@{~6X_RbJE$ -zy}zo0Vf{VBc;0{Nu6^s?Eq$G=htwG3W+utORe$zvuYKde4`g20Z?uIBd(sX)Z}t3P -zRrU;)j@2kozJ9ML$fY#lSdJ7;khXQz@OA%nGE7<`bcSNGsr!BWPSva#Ngg|~R_i2k -z(cc?UkKtl60q44Nu7C?gu~Nj0jy(2#>=h=Wmy3MXJLhABPEL%1-%MP3g_CH^9Wk)Q -zs8Xc4cHxg9$73>9ZTW&iq>A&dBc#bD!ouDv6-hmD4Jt@R&uVkC?TG}<-y3N9LOh`{9v`v&xHCS->?P)x=*aHmixv1CDKT5`&jhKMv=aT`N$tW> -z=#Qjohj<3u&4% -zC#shscWblQVv5^lkiVmjj~*JkcjJSFjQ+wi!n=Y|T)_rhM@pA_xI=hjC(IWYVJHbJ -z-ulWP{n2yMV-3qcHwgKAy0?GDWV^g6INq8EOMMS=a$Ils9t_X_5hRU4lBOhh>vF#j -zyTqg5bF?b(`w2vrx;`H>_qg{#6epHlJ$>JRI6_e17LeCti%e`S5gDIR9-D#Iaez0T^ -zpF`JS$QK}YQ9QFzuW2Zcg?JoPtLcsytKM`u)j2B-4Wu5!cvGvjT+hfL&M@O?S*qFV -z$fFp3tebiH>+TtRY=vvQdhdzaTkWu7_gCdSn$3Zel_`-ZBr}d>u73Q|>R1Pon4(*! -zP{h~E9w*kn^d+x}2O41LSB6F8i{rY@Jc|_WBElVeNNPjNT)p^_OX@2=ypeR4yD8K3 -z5&Ec{@$+^cBT9o~<_Kl7D1}{7nNJY~E4ckUaz&F19gO}pu}bD{Cn%#HKD0i@hds1W -zK&f?zQdGgLSvTH=YEY#Ill}D5d3!!~&N$WjKH;nDJAfcaa~V4yUUXmwV6;{<*2k_< -ztasKcB{?udW=JSrM6B(XJ$mbt8V6temqYU{Cj`H|$^JPNS&$(3jvjO3n@}tSjCl_B -zM;6SbuvT(%adN78gZeg~99giqQg2!^(NX@S!R6cJ!UzF4ZFiKGj5 -zGFM4XJHfv+PFbz>-A6m!L%{dsavAq(?=eMZySJ#m4r+sXxw))==`U)YO9WgyvcT$7 -zADsk&g*m@kqDO@Cn?BxkF}$t?`4qdOhi7c;aVw1@IfqwBdA%7@2fUry`~L(P1U2`m)eB< -z1h=*eH71qQ2~*QF&4LN6@M#G9<{>3Pu7K?{?VKq7hjwerQUt$;((d8m`*y~m3$nj< -zgx0OyGu`&7>$SkU9N8J`Yvj6PckVb|llMZVMUUsVHXuA!0&l`VJsdA0Dy2YKHB#w7 -zj|nw-!XWu;?z;C?2X*050iA`uat{QTwx#-X+}vD;$J?dFj_nT}1pcCJXC!aQE6goj -zCpN_fcwZF+OnV}!75~9}zT#yf3##@ib@gK6q8wK&UflaMpxP@cTXALn=c4O1kf^uA -z9jGamxkcOqlntNDa;FS&HVB~YMycV4*{?91eseUPXogZklv>l#`cK>K>6*9HMX70* -zcduXa`xEj;-QZ_&nZKf1UZ-V>O<=4#+HR)7`EZmN>aJ46vHO#$@NK(mfR8Did|bhY -z5&pG436rZdfvxR!Bm4Mzbr3De)$p!*y=5-FPlLjA^;=qyZ+^v^?J4WO%ZC@GLW&*z -z#b{vO*5P)hn>T8|rQ#H8GG7K+(MSHYs57It;DxW==D|fa{?R_RT!jirJ>$Hed;wR1 -zV}>TR8n!oO=D0v;SDEZ`?h*zH+Q+rXjUN}w`uhkj5vPW97EL@cq|8LrW)HnJvtfbo -z#M=1&!mah%W$;sK8r2e6z@E^D^B#ERi&UzIcWrg3c|^FoKD=+osNm<}g=Y_c -zPM`o()@~mB8GR;apm9u@d)`UbK>%!xZ`M}|Onhrr+G4Q-m;oZ}Yg|?kF=^miOYvGBlXPIWM -z6yY*!0Q-lYmXv*0#wbj;(m}`w0t8}w_8w`*+5J5xLxdI6g<(5eV{8VNIA{yBx$(_A$mZ$YEJ8c&i@7ku8>6ir;;PRM=YaSs>WX -zV~s@T2+gmpdoPaV!(@C>rx1i|Zp;Sb`zM^79wO45!2n~-wh1{1*kPzuysb|h|{yv-TVcsco;l88r-0?3oswZwp{b>1U_smPmfBS=c -zRicY&$w{pgI-5xAW5=mf!kXoB6+J62W3YtNFKE}xe+5 -zDsSuSbu`pB+F1`@mXZ~(PGIKA`^bk{K4Ql-D@xOF{(NA#ZJgRDLKA6 -zf+isb!(AZaS-cWWk(C*S&zAPJIqG;dh+JL~XgFU>b -z&QI5jj<8agT}tPt~-S- -b&=!Yol6%P;{v@(L85Lyi`_3fb6UBc4C!SUG - -literal 0 -HcmV?d00001 - diff --git a/patches/grub/2.02~beta3/series b/patches/grub/2.02~beta3/series deleted file mode 100644 index 181b6128a..000000000 --- a/patches/grub/2.02~beta3/series +++ /dev/null @@ -1,5 +0,0 @@ -# This series applies on GIT commit 11d83cf98780871e4adfabc0314ab48fe748ccda -set-default-graphics-mode-to-text.patch -disable-build-of-documentation.patch -gcc6-use-no-pie-compiler-flag.patch -include-compatible-unifont-bdf.patch diff --git a/patches/grub/2.02~beta3/set-default-graphics-mode-to-text.patch b/patches/grub/2.02~beta3/set-default-graphics-mode-to-text.patch deleted file mode 100644 index 206f91dd9..000000000 --- a/patches/grub/2.02~beta3/set-default-graphics-mode-to-text.patch +++ /dev/null @@ -1,27 +0,0 @@ -set default graphics mode to text - -# This file is derived from https://github.com/opencomputeproject/onie/blob/master/patches/grub/e4a1fe391/set-default-graphics-mode-to-text.patch -Copyright (C) 2016 Pankaj Bansal - -SPDX-License-Identifier: GPL-2.0 - -For EFI set the default graphics mode to text. - -This supresses an ugly, but harmless message about no video mode -found. - -diff --git a/grub-core/loader/i386/linux.c b/grub-core/loader/i386/linux.c -index fddcc46..4598392 100644 ---- a/grub-core/loader/i386/linux.c -+++ b/grub-core/loader/i386/linux.c -@@ -45,8 +45,8 @@ GRUB_MOD_LICENSE ("GPLv3+"); - #ifdef GRUB_MACHINE_EFI - #include - #define HAS_VGA_TEXT 0 --#define DEFAULT_VIDEO_MODE "auto" --#define ACCEPTS_PURE_TEXT 0 -+#define DEFAULT_VIDEO_MODE "text" -+#define ACCEPTS_PURE_TEXT 1 - #elif defined (GRUB_MACHINE_IEEE1275) - #include - #define HAS_VGA_TEXT 0 diff --git a/patches/grub/2.04/CVE-2020-10713.patch b/patches/grub/2.04/CVE-2020-10713.patch deleted file mode 100644 index d2eba42cc..000000000 --- a/patches/grub/2.04/CVE-2020-10713.patch +++ /dev/null @@ -1,68 +0,0 @@ -From 705b89f19fff03054f7167e1785461492688d61b Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Wed, 15 Apr 2020 15:45:02 -0400 -Subject: yylex: Make lexer fatal errors actually be fatal - -When presented with a command that can't be tokenized to anything -smaller than YYLMAX characters, the parser calls YY_FATAL_ERROR(errmsg), -expecting that will stop further processing, as such: - - #define YY_DO_BEFORE_ACTION \ - yyg->yytext_ptr = yy_bp; \ - yyleng = (int) (yy_cp - yy_bp); \ - yyg->yy_hold_char = *yy_cp; \ - *yy_cp = '\0'; \ - if ( yyleng >= YYLMAX ) \ - YY_FATAL_ERROR( "token too large, exceeds YYLMAX" ); \ - yy_flex_strncpy( yytext, yyg->yytext_ptr, yyleng + 1 , yyscanner); \ - yyg->yy_c_buf_p = yy_cp; - -The code flex generates expects that YY_FATAL_ERROR() will either return -for it or do some form of longjmp(), or handle the error in some way at -least, and so the strncpy() call isn't in an "else" clause, and thus if -YY_FATAL_ERROR() is *not* actually fatal, it does the call with the -questionable limit, and predictable results ensue. - -Unfortunately, our implementation of YY_FATAL_ERROR() is: - - #define YY_FATAL_ERROR(msg) \ - do { \ - grub_printf (_("fatal error: %s\n"), _(msg)); \ - } while (0) - -The same pattern exists in yyless(), and similar problems exist in users -of YY_INPUT(), several places in the main parsing loop, -yy_get_next_buffer(), yy_load_buffer_state(), yyensure_buffer_stack, -yy_scan_buffer(), etc. - -All of these callers expect YY_FATAL_ERROR() to actually be fatal, and -the things they do if it returns after calling it are wildly unsafe. - -Fixes: CVE-2020-10713 - -Signed-off-by: Peter Jones -Reviewed-by: Daniel Kiper - -Patch-Name: CVE-2020-10713.patch ---- - grub-core/script/yylex.l | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/grub-core/script/yylex.l b/grub-core/script/yylex.l -index 7b44c37b7..b7203c823 100644 ---- a/grub-core/script/yylex.l -+++ b/grub-core/script/yylex.l -@@ -37,11 +37,11 @@ - - /* - * As we don't have access to yyscanner, we cannot do much except to -- * print the fatal error. -+ * print the fatal error and exit. - */ - #define YY_FATAL_ERROR(msg) \ - do { \ -- grub_printf (_("fatal error: %s\n"), _(msg)); \ -+ grub_fatal (_("fatal error: %s\n"), _(msg));\ - } while (0) - - #define COPY(str, hint) \ diff --git a/patches/grub/2.04/at_keyboard-module-init.patch b/patches/grub/2.04/at_keyboard-module-init.patch deleted file mode 100644 index af7fd2300..000000000 --- a/patches/grub/2.04/at_keyboard-module-init.patch +++ /dev/null @@ -1,44 +0,0 @@ -From 274c57260b4b599874e9ede10ea417b7bb7c98e2 Mon Sep 17 00:00:00 2001 -From: Jeroen Dekkers -Date: Sat, 12 Jan 2019 21:02:18 +0100 -Subject: at_keyboard: initialize keyboard in module init if keyboard is ready - -The change in 0c62a5b2 caused at_keyboard to fail on some -machines. Immediately initializing the keyboard in the module init if -the keyboard is ready makes the problem go away. - -Bug-Debian: https://bugs.debian.org/741464 -Last-Update: 2019-02-09 - -Patch-Name: at_keyboard-module-init.patch ---- - grub-core/term/at_keyboard.c | 9 +++++++++ - 1 file changed, 9 insertions(+) - -diff --git a/grub-core/term/at_keyboard.c b/grub-core/term/at_keyboard.c -index f0a986eb1..d4395c201 100644 ---- a/grub-core/term/at_keyboard.c -+++ b/grub-core/term/at_keyboard.c -@@ -244,6 +244,14 @@ grub_at_keyboard_getkey (struct grub_term_input *term __attribute__ ((unused))) - return ret; - } - -+static grub_err_t -+grub_keyboard_controller_mod_init (struct grub_term_input *term __attribute__ ((unused))) { -+ if (KEYBOARD_COMMAND_ISREADY (grub_inb (KEYBOARD_REG_STATUS))) -+ grub_keyboard_controller_init (); -+ -+ return GRUB_ERR_NONE; -+} -+ - static void - grub_keyboard_controller_init (void) - { -@@ -314,6 +322,7 @@ grub_at_restore_hw (void) - static struct grub_term_input grub_at_keyboard_term = - { - .name = "at_keyboard", -+ .init = grub_keyboard_controller_mod_init, - .fini = grub_keyboard_controller_fini, - .getkey = grub_at_keyboard_getkey - }; diff --git a/patches/grub/2.04/bash-completion-drop-have-checks.patch b/patches/grub/2.04/bash-completion-drop-have-checks.patch deleted file mode 100644 index 05aeb4775..000000000 --- a/patches/grub/2.04/bash-completion-drop-have-checks.patch +++ /dev/null @@ -1,143 +0,0 @@ -From 2e8913f8b9759a926cae0b07c112e42e03621bac Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Fri, 16 Nov 2018 16:37:02 +0000 -Subject: bash-completion: Drop "have" checks - -These don't work with and aren't needed by dynamically-loaded -completions. - -Bug-Debian: https://bugs.debian.org/912852 -Forwarded: no -Last-Update: 2018-11-16 - -Patch-Name: bash-completion-drop-have-checks.patch ---- - .../bash-completion.d/grub-completion.bash.in | 39 +++++++------------ - 1 file changed, 13 insertions(+), 26 deletions(-) - -diff --git a/util/bash-completion.d/grub-completion.bash.in b/util/bash-completion.d/grub-completion.bash.in -index 44bf135b9..d4235e7ef 100644 ---- a/util/bash-completion.d/grub-completion.bash.in -+++ b/util/bash-completion.d/grub-completion.bash.in -@@ -166,13 +166,11 @@ _grub_set_entry () { - } - - __grub_set_default_program="@grub_set_default@" --have ${__grub_set_default_program} && \ -- complete -F _grub_set_entry -o filenames ${__grub_set_default_program} -+complete -F _grub_set_entry -o filenames ${__grub_set_default_program} - unset __grub_set_default_program - - __grub_reboot_program="@grub_reboot@" --have ${__grub_reboot_program} && \ -- complete -F _grub_set_entry -o filenames ${__grub_reboot_program} -+complete -F _grub_set_entry -o filenames ${__grub_reboot_program} - unset __grub_reboot_program - - -@@ -198,8 +196,7 @@ _grub_editenv () { - } - - __grub_editenv_program="@grub_editenv@" --have ${__grub_editenv_program} && \ -- complete -F _grub_editenv -o filenames ${__grub_editenv_program} -+complete -F _grub_editenv -o filenames ${__grub_editenv_program} - unset __grub_editenv_program - - -@@ -219,8 +216,7 @@ _grub_mkconfig () { - fi - } - __grub_mkconfig_program="@grub_mkconfig@" --have ${__grub_mkconfig_program} && \ -- complete -F _grub_mkconfig -o filenames ${__grub_mkconfig_program} -+complete -F _grub_mkconfig -o filenames ${__grub_mkconfig_program} - unset __grub_mkconfig_program - - -@@ -254,13 +250,11 @@ _grub_setup () { - } - - __grub_bios_setup_program="@grub_bios_setup@" --have ${__grub_bios_setup_program} && \ -- complete -F _grub_setup -o filenames ${__grub_bios_setup_program} -+complete -F _grub_setup -o filenames ${__grub_bios_setup_program} - unset __grub_bios_setup_program - - __grub_sparc64_setup_program="@grub_sparc64_setup@" --have ${__grub_sparc64_setup_program} && \ -- complete -F _grub_setup -o filenames ${__grub_sparc64_setup_program} -+complete -F _grub_setup -o filenames ${__grub_sparc64_setup_program} - unset __grub_sparc64_setup_program - - -@@ -305,8 +299,7 @@ _grub_install () { - fi - } - __grub_install_program="@grub_install@" --have ${__grub_install_program} && \ -- complete -F _grub_install -o filenames ${__grub_install_program} -+complete -F _grub_install -o filenames ${__grub_install_program} - unset __grub_install_program - - -@@ -327,8 +320,7 @@ _grub_mkfont () { - fi - } - __grub_mkfont_program="@grub_mkfont@" --have ${__grub_mkfont_program} && \ -- complete -F _grub_mkfont -o filenames ${__grub_mkfont_program} -+complete -F _grub_mkfont -o filenames ${__grub_mkfont_program} - unset __grub_mkfont_program - - -@@ -358,8 +350,7 @@ _grub_mkrescue () { - fi - } - __grub_mkrescue_program="@grub_mkrescue@" --have ${__grub_mkrescue_program} && \ -- complete -F _grub_mkrescue -o filenames ${__grub_mkrescue_program} -+complete -F _grub_mkrescue -o filenames ${__grub_mkrescue_program} - unset __grub_mkrescue_program - - -@@ -400,8 +391,7 @@ _grub_mkimage () { - fi - } - __grub_mkimage_program="@grub_mkimage@" --have ${__grub_mkimage_program} && \ -- complete -F _grub_mkimage -o filenames ${__grub_mkimage_program} -+complete -F _grub_mkimage -o filenames ${__grub_mkimage_program} - unset __grub_mkimage_program - - -@@ -422,8 +412,7 @@ _grub_mkpasswd_pbkdf2 () { - fi - } - __grub_mkpasswd_pbkdf2_program="@grub_mkpasswd_pbkdf2@" --have ${__grub_mkpasswd_pbkdf2_program} && \ -- complete -F _grub_mkpasswd_pbkdf2 -o filenames ${__grub_mkpasswd_pbkdf2_program} -+complete -F _grub_mkpasswd_pbkdf2 -o filenames ${__grub_mkpasswd_pbkdf2_program} - unset __grub_mkpasswd_pbkdf2_program - - -@@ -460,8 +449,7 @@ _grub_probe () { - fi - } - __grub_probe_program="@grub_probe@" --have ${__grub_probe_program} && \ -- complete -F _grub_probe -o filenames ${__grub_probe_program} -+complete -F _grub_probe -o filenames ${__grub_probe_program} - unset __grub_probe_program - - -@@ -482,8 +470,7 @@ _grub_script_check () { - fi - } - __grub_script_check_program="@grub_script_check@" --have ${__grub_script_check_program} && \ -- complete -F _grub_script_check -o filenames ${__grub_script_check_program} -+complete -F _grub_script_check -o filenames ${__grub_script_check_program} - - - # Local variables: diff --git a/patches/grub/2.04/blacklist-1440x900x32.patch b/patches/grub/2.04/blacklist-1440x900x32.patch deleted file mode 100644 index 2562e93cf..000000000 --- a/patches/grub/2.04/blacklist-1440x900x32.patch +++ /dev/null @@ -1,34 +0,0 @@ -From e36b83c8b3b320365deddc2a3df266a57857fda7 Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Mon, 13 Jan 2014 12:13:11 +0000 -Subject: Blacklist 1440x900x32 from VBE preferred mode handling - -Bug-Ubuntu: https://bugs.launchpad.net/bugs/701111 -Forwarded: no -Last-Update: 2013-11-14 - -Patch-Name: blacklist-1440x900x32.patch ---- - grub-core/video/i386/pc/vbe.c | 9 +++++++++ - 1 file changed, 9 insertions(+) - -diff --git a/grub-core/video/i386/pc/vbe.c b/grub-core/video/i386/pc/vbe.c -index b7f911926..4b1bd7d5e 100644 ---- a/grub-core/video/i386/pc/vbe.c -+++ b/grub-core/video/i386/pc/vbe.c -@@ -1054,6 +1054,15 @@ grub_video_vbe_setup (unsigned int width, unsigned int height, - || vbe_mode_info.y_resolution > height) - /* Resolution exceeds that of preferred mode. */ - continue; -+ -+ /* Blacklist 1440x900x32 from preferred mode handling until a -+ better solution is available. This mode causes problems on -+ many Thinkpads. See: -+ https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/701111 */ -+ if (vbe_mode_info.x_resolution == 1440 && -+ vbe_mode_info.y_resolution == 900 && -+ vbe_mode_info.bits_per_pixel == 32) -+ continue; - } - else - { diff --git a/patches/grub/2.04/bootp-alloc.patch b/patches/grub/2.04/bootp-alloc.patch deleted file mode 100644 index 84e499ba1..000000000 --- a/patches/grub/2.04/bootp-alloc.patch +++ /dev/null @@ -1,29 +0,0 @@ -From d8c9aaa767a83470147c843acc6d97f70140ebdf Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Fri, 24 Jul 2020 11:24:28 +0100 -Subject: bootp: Improve allocation handling in parse_dhcp6_option - -This adjusts Debian's net_bootp6 patch to perform safe allocation. (In -practice this isn't a security problem because `ln` is 16 bits so it -can't overflow after promotion to 32 bits.) - -Signed-off-by: Colin Watson - -Patch-Name: bootp-alloc.patch ---- - grub-core/net/bootp.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/grub-core/net/bootp.c b/grub-core/net/bootp.c -index dd0ffcdae..efa92b89b 100644 ---- a/grub-core/net/bootp.c -+++ b/grub-core/net/bootp.c -@@ -857,7 +857,7 @@ parse_dhcp6_option (const struct grub_net_dhcp6_option *opt, void *data) - break; - } - dhcp6->num_dns_server = ln = len >> 4; -- dhcp6->dns_server_addrs = la = grub_zalloc (ln * sizeof (*la)); -+ dhcp6->dns_server_addrs = la = grub_calloc (ln, sizeof (*la)); - - for (po = opt->data; ln > 0; po += 0x10, la++, ln--) - { diff --git a/patches/grub/2.04/bootp-new-net_bootp6-command.patch b/patches/grub/2.04/bootp-new-net_bootp6-command.patch deleted file mode 100644 index 63836a5c5..000000000 --- a/patches/grub/2.04/bootp-new-net_bootp6-command.patch +++ /dev/null @@ -1,1117 +0,0 @@ -From e1a872b0277a1c405bc7120b89e70001a60a6d12 Mon Sep 17 00:00:00 2001 -From: Michael Chang -Date: Thu, 27 Oct 2016 17:41:04 -0400 -Subject: bootp: New net_bootp6 command - -Implement new net_bootp6 command for IPv6 network auto configuration via the -DHCPv6 protocol (RFC3315). - -Signed-off-by: Michael Chang -Signed-off-by: Ken Lin - -Patch-Name: bootp-new-net_bootp6-command.patch ---- - grub-core/net/bootp.c | 908 +++++++++++++++++++++++++++++++++++++++++- - grub-core/net/ip.c | 39 ++ - include/grub/net.h | 72 ++++ - 3 files changed, 1018 insertions(+), 1 deletion(-) - -diff --git a/grub-core/net/bootp.c b/grub-core/net/bootp.c -index 04cfbb045..21c1824ef 100644 ---- a/grub-core/net/bootp.c -+++ b/grub-core/net/bootp.c -@@ -24,6 +24,98 @@ - #include - #include - #include -+#include -+#include -+ -+static int -+dissect_url (const char *url, char **proto, char **host, char **path) -+{ -+ const char *p, *ps; -+ grub_size_t l; -+ -+ *proto = *host = *path = NULL; -+ ps = p = url; -+ -+ while ((p = grub_strchr (p, ':'))) -+ { -+ if (grub_strlen (p) < sizeof ("://") - 1) -+ break; -+ if (grub_memcmp (p, "://", sizeof ("://") - 1) == 0) -+ { -+ l = p - ps; -+ *proto = grub_malloc (l + 1); -+ if (!*proto) -+ { -+ grub_print_error (); -+ return 0; -+ } -+ -+ grub_memcpy (*proto, ps, l); -+ (*proto)[l] = '\0'; -+ p += sizeof ("://") - 1; -+ break; -+ } -+ ++p; -+ } -+ -+ if (!*proto) -+ { -+ grub_dprintf ("bootp", "url: %s is not valid, protocol not found\n", url); -+ return 0; -+ } -+ -+ ps = p; -+ p = grub_strchr (p, '/'); -+ -+ if (!p) -+ { -+ grub_dprintf ("bootp", "url: %s is not valid, host/path not found\n", url); -+ grub_free (*proto); -+ *proto = NULL; -+ return 0; -+ } -+ -+ l = p - ps; -+ -+ if (l > 2 && ps[0] == '[' && ps[l - 1] == ']') -+ { -+ *host = grub_malloc (l - 1); -+ if (!*host) -+ { -+ grub_print_error (); -+ grub_free (*proto); -+ *proto = NULL; -+ return 0; -+ } -+ grub_memcpy (*host, ps + 1, l - 2); -+ (*host)[l - 2] = 0; -+ } -+ else -+ { -+ *host = grub_malloc (l + 1); -+ if (!*host) -+ { -+ grub_print_error (); -+ grub_free (*proto); -+ *proto = NULL; -+ return 0; -+ } -+ grub_memcpy (*host, ps, l); -+ (*host)[l] = 0; -+ } -+ -+ *path = grub_strdup (p); -+ if (!*path) -+ { -+ grub_print_error (); -+ grub_free (*host); -+ grub_free (*proto); -+ *host = NULL; -+ *proto = NULL; -+ return 0; -+ } -+ return 1; -+} - - struct grub_dhcp_discover_options - { -@@ -563,6 +655,578 @@ out: - return err; - } - -+/* The default netbuff size for sending DHCPv6 packets which should be -+ large enough to hold the information */ -+#define GRUB_DHCP6_DEFAULT_NETBUFF_ALLOC_SIZE 512 -+ -+struct grub_dhcp6_options -+{ -+ grub_uint8_t *client_duid; -+ grub_uint16_t client_duid_len; -+ grub_uint8_t *server_duid; -+ grub_uint16_t server_duid_len; -+ grub_uint32_t iaid; -+ grub_uint32_t t1; -+ grub_uint32_t t2; -+ grub_net_network_level_address_t *ia_addr; -+ grub_uint32_t preferred_lifetime; -+ grub_uint32_t valid_lifetime; -+ grub_net_network_level_address_t *dns_server_addrs; -+ grub_uint16_t num_dns_server; -+ char *boot_file_proto; -+ char *boot_file_server_ip; -+ char *boot_file_path; -+}; -+ -+typedef struct grub_dhcp6_options *grub_dhcp6_options_t; -+ -+struct grub_dhcp6_session -+{ -+ struct grub_dhcp6_session *next; -+ struct grub_dhcp6_session **prev; -+ grub_uint32_t iaid; -+ grub_uint32_t transaction_id:24; -+ grub_uint64_t start_time; -+ struct grub_net_dhcp6_option_duid_ll duid; -+ struct grub_net_network_level_interface *iface; -+ -+ /* The associated dhcpv6 options */ -+ grub_dhcp6_options_t adv; -+ grub_dhcp6_options_t reply; -+}; -+ -+typedef struct grub_dhcp6_session *grub_dhcp6_session_t; -+ -+typedef void (*dhcp6_option_hook_fn) (const struct grub_net_dhcp6_option *opt, void *data); -+ -+static void -+foreach_dhcp6_option (const struct grub_net_dhcp6_option *opt, grub_size_t size, -+ dhcp6_option_hook_fn hook, void *hook_data); -+ -+static void -+parse_dhcp6_iaaddr (const struct grub_net_dhcp6_option *opt, void *data) -+{ -+ grub_dhcp6_options_t dhcp6 = (grub_dhcp6_options_t )data; -+ -+ grub_uint16_t code = grub_be_to_cpu16 (opt->code); -+ grub_uint16_t len = grub_be_to_cpu16 (opt->len); -+ -+ if (code == GRUB_NET_DHCP6_OPTION_IAADDR) -+ { -+ const struct grub_net_dhcp6_option_iaaddr *iaaddr; -+ iaaddr = (const struct grub_net_dhcp6_option_iaaddr *)opt->data; -+ -+ if (len < sizeof (*iaaddr)) -+ { -+ grub_dprintf ("bootp", "DHCPv6: code %u with insufficient length %u\n", code, len); -+ return; -+ } -+ if (!dhcp6->ia_addr) -+ { -+ dhcp6->ia_addr = grub_malloc (sizeof(*dhcp6->ia_addr)); -+ dhcp6->ia_addr->type = GRUB_NET_NETWORK_LEVEL_PROTOCOL_IPV6; -+ dhcp6->ia_addr->ipv6[0] = grub_get_unaligned64 (iaaddr->addr); -+ dhcp6->ia_addr->ipv6[1] = grub_get_unaligned64 (iaaddr->addr + 8); -+ dhcp6->preferred_lifetime = grub_be_to_cpu32 (iaaddr->preferred_lifetime); -+ dhcp6->valid_lifetime = grub_be_to_cpu32 (iaaddr->valid_lifetime); -+ } -+ } -+} -+ -+static void -+parse_dhcp6_option (const struct grub_net_dhcp6_option *opt, void *data) -+{ -+ grub_dhcp6_options_t dhcp6 = (grub_dhcp6_options_t)data; -+ grub_uint16_t code = grub_be_to_cpu16 (opt->code); -+ grub_uint16_t len = grub_be_to_cpu16 (opt->len); -+ -+ switch (code) -+ { -+ case GRUB_NET_DHCP6_OPTION_CLIENTID: -+ -+ if (dhcp6->client_duid || !len) -+ { -+ grub_dprintf ("bootp", "Skipped DHCPv6 CLIENTID with length %u\n", len); -+ break; -+ } -+ dhcp6->client_duid = grub_malloc (len); -+ grub_memcpy (dhcp6->client_duid, opt->data, len); -+ dhcp6->client_duid_len = len; -+ break; -+ -+ case GRUB_NET_DHCP6_OPTION_SERVERID: -+ -+ if (dhcp6->server_duid || !len) -+ { -+ grub_dprintf ("bootp", "Skipped DHCPv6 SERVERID with length %u\n", len); -+ break; -+ } -+ dhcp6->server_duid = grub_malloc (len); -+ grub_memcpy (dhcp6->server_duid, opt->data, len); -+ dhcp6->server_duid_len = len; -+ break; -+ -+ case GRUB_NET_DHCP6_OPTION_IA_NA: -+ { -+ const struct grub_net_dhcp6_option_iana *ia_na; -+ grub_uint16_t data_len; -+ -+ if (dhcp6->iaid || len < sizeof (*ia_na)) -+ { -+ grub_dprintf ("bootp", "Skipped DHCPv6 IA_NA with length %u\n", len); -+ break; -+ } -+ ia_na = (const struct grub_net_dhcp6_option_iana *)opt->data; -+ dhcp6->iaid = grub_be_to_cpu32 (ia_na->iaid); -+ dhcp6->t1 = grub_be_to_cpu32 (ia_na->t1); -+ dhcp6->t2 = grub_be_to_cpu32 (ia_na->t2); -+ -+ data_len = len - sizeof (*ia_na); -+ if (data_len) -+ foreach_dhcp6_option ((const struct grub_net_dhcp6_option *)ia_na->data, data_len, parse_dhcp6_iaaddr, dhcp6); -+ } -+ break; -+ -+ case GRUB_NET_DHCP6_OPTION_DNS_SERVERS: -+ { -+ const grub_uint8_t *po; -+ grub_uint16_t ln; -+ grub_net_network_level_address_t *la; -+ -+ if (!len || len & 0xf) -+ { -+ grub_dprintf ("bootp", "Skip invalid length DHCPv6 DNS_SERVERS \n"); -+ break; -+ } -+ dhcp6->num_dns_server = ln = len >> 4; -+ dhcp6->dns_server_addrs = la = grub_zalloc (ln * sizeof (*la)); -+ -+ for (po = opt->data; ln > 0; po += 0x10, la++, ln--) -+ { -+ la->type = GRUB_NET_NETWORK_LEVEL_PROTOCOL_IPV6; -+ la->ipv6[0] = grub_get_unaligned64 (po); -+ la->ipv6[1] = grub_get_unaligned64 (po + 8); -+ la->option = DNS_OPTION_PREFER_IPV6; -+ } -+ } -+ break; -+ -+ case GRUB_NET_DHCP6_OPTION_BOOTFILE_URL: -+ dissect_url ((const char *)opt->data, -+ &dhcp6->boot_file_proto, -+ &dhcp6->boot_file_server_ip, -+ &dhcp6->boot_file_path); -+ break; -+ -+ default: -+ break; -+ } -+} -+ -+static void -+foreach_dhcp6_option (const struct grub_net_dhcp6_option *opt, grub_size_t size, dhcp6_option_hook_fn hook, void *hook_data) -+{ -+ while (size) -+ { -+ grub_uint16_t code, len; -+ -+ if (size < sizeof (*opt)) -+ { -+ grub_dprintf ("bootp", "DHCPv6: Options stopped with remaining size %" PRIxGRUB_SIZE "\n", size); -+ break; -+ } -+ size -= sizeof (*opt); -+ len = grub_be_to_cpu16 (opt->len); -+ code = grub_be_to_cpu16 (opt->code); -+ if (size < len) -+ { -+ grub_dprintf ("bootp", "DHCPv6: Options stopped at out of bound length %u for option %u\n", len, code); -+ break; -+ } -+ if (!len) -+ { -+ grub_dprintf ("bootp", "DHCPv6: Options stopped at zero length option %u\n", code); -+ break; -+ } -+ else -+ { -+ if (hook) -+ hook (opt, hook_data); -+ size -= len; -+ opt = (const struct grub_net_dhcp6_option *)((grub_uint8_t *)opt + len + sizeof (*opt)); -+ } -+ } -+} -+ -+static grub_dhcp6_options_t -+grub_dhcp6_options_get (const struct grub_net_dhcp6_packet *v6h, -+ grub_size_t size) -+{ -+ grub_dhcp6_options_t options; -+ -+ if (size < sizeof (*v6h)) -+ { -+ grub_error (GRUB_ERR_OUT_OF_RANGE, N_("DHCPv6 packet size too small")); -+ return NULL; -+ } -+ -+ options = grub_zalloc (sizeof(*options)); -+ if (!options) -+ return NULL; -+ -+ foreach_dhcp6_option ((const struct grub_net_dhcp6_option *)v6h->dhcp_options, -+ size - sizeof (*v6h), parse_dhcp6_option, options); -+ -+ return options; -+} -+ -+static void -+grub_dhcp6_options_free (grub_dhcp6_options_t options) -+{ -+ if (options->client_duid) -+ grub_free (options->client_duid); -+ if (options->server_duid) -+ grub_free (options->server_duid); -+ if (options->ia_addr) -+ grub_free (options->ia_addr); -+ if (options->dns_server_addrs) -+ grub_free (options->dns_server_addrs); -+ if (options->boot_file_proto) -+ grub_free (options->boot_file_proto); -+ if (options->boot_file_server_ip) -+ grub_free (options->boot_file_server_ip); -+ if (options->boot_file_path) -+ grub_free (options->boot_file_path); -+ -+ grub_free (options); -+} -+ -+static grub_dhcp6_session_t grub_dhcp6_sessions; -+#define FOR_DHCP6_SESSIONS(var) FOR_LIST_ELEMENTS (var, grub_dhcp6_sessions) -+ -+static void -+grub_net_configure_by_dhcp6_info (const char *name, -+ struct grub_net_card *card, -+ grub_dhcp6_options_t dhcp6, -+ int is_def, -+ int flags, -+ struct grub_net_network_level_interface **ret_inf) -+{ -+ grub_net_network_level_netaddress_t netaddr; -+ struct grub_net_network_level_interface *inf; -+ -+ if (dhcp6->ia_addr) -+ { -+ inf = grub_net_add_addr (name, card, dhcp6->ia_addr, &card->default_address, flags); -+ -+ netaddr.type = GRUB_NET_NETWORK_LEVEL_PROTOCOL_IPV6; -+ netaddr.ipv6.base[0] = dhcp6->ia_addr->ipv6[0]; -+ netaddr.ipv6.base[1] = 0; -+ netaddr.ipv6.masksize = 64; -+ grub_net_add_route (name, netaddr, inf); -+ -+ if (ret_inf) -+ *ret_inf = inf; -+ } -+ -+ if (dhcp6->dns_server_addrs) -+ { -+ grub_uint16_t i; -+ -+ for (i = 0; i < dhcp6->num_dns_server; ++i) -+ grub_net_add_dns_server (dhcp6->dns_server_addrs + i); -+ } -+ -+ if (dhcp6->boot_file_path) -+ grub_env_set_net_property (name, "boot_file", dhcp6->boot_file_path, -+ grub_strlen (dhcp6->boot_file_path)); -+ -+ if (is_def && dhcp6->boot_file_server_ip) -+ { -+ grub_net_default_server = grub_strdup (dhcp6->boot_file_server_ip); -+ grub_env_set ("net_default_interface", name); -+ grub_env_export ("net_default_interface"); -+ } -+} -+ -+static void -+grub_dhcp6_session_add (struct grub_net_network_level_interface *iface, -+ grub_uint32_t iaid) -+{ -+ grub_dhcp6_session_t se; -+ struct grub_datetime date; -+ grub_err_t err; -+ grub_int32_t t = 0; -+ -+ se = grub_malloc (sizeof (*se)); -+ -+ err = grub_get_datetime (&date); -+ if (err || !grub_datetime2unixtime (&date, &t)) -+ { -+ grub_errno = GRUB_ERR_NONE; -+ t = 0; -+ } -+ -+ se->iface = iface; -+ se->iaid = iaid; -+ se->transaction_id = t; -+ se->start_time = grub_get_time_ms (); -+ se->duid.type = grub_cpu_to_be16_compile_time (3) ; -+ se->duid.hw_type = grub_cpu_to_be16_compile_time (1); -+ grub_memcpy (&se->duid.hwaddr, &iface->hwaddress.mac, sizeof (se->duid.hwaddr)); -+ se->adv = NULL; -+ se->reply = NULL; -+ grub_list_push (GRUB_AS_LIST_P (&grub_dhcp6_sessions), GRUB_AS_LIST (se)); -+} -+ -+static void -+grub_dhcp6_session_remove (grub_dhcp6_session_t se) -+{ -+ grub_list_remove (GRUB_AS_LIST (se)); -+ if (se->adv) -+ grub_dhcp6_options_free (se->adv); -+ if (se->reply) -+ grub_dhcp6_options_free (se->reply); -+ grub_free (se); -+} -+ -+static void -+grub_dhcp6_session_remove_all (void) -+{ -+ grub_dhcp6_session_t se; -+ -+ FOR_DHCP6_SESSIONS (se) -+ { -+ grub_dhcp6_session_remove (se); -+ se = grub_dhcp6_sessions; -+ } -+} -+ -+static grub_err_t -+grub_dhcp6_session_configure_network (grub_dhcp6_session_t se) -+{ -+ char *name; -+ -+ name = grub_xasprintf ("%s:dhcp6", se->iface->card->name); -+ if (!name) -+ return grub_errno; -+ -+ grub_net_configure_by_dhcp6_info (name, se->iface->card, se->reply, 1, 0, 0); -+ grub_free (name); -+ -+ return GRUB_ERR_NONE; -+} -+ -+static grub_err_t -+grub_dhcp6_session_send_request (grub_dhcp6_session_t se) -+{ -+ struct grub_net_buff *nb; -+ struct grub_net_dhcp6_option *opt; -+ struct grub_net_dhcp6_packet *v6h; -+ struct grub_net_dhcp6_option_iana *ia_na; -+ struct grub_net_dhcp6_option_iaaddr *iaaddr; -+ struct udphdr *udph; -+ grub_net_network_level_address_t multicast; -+ grub_net_link_level_address_t ll_multicast; -+ grub_uint64_t elapsed; -+ struct grub_net_network_level_interface *inf = se->iface; -+ grub_dhcp6_options_t dhcp6 = se->adv; -+ grub_err_t err = GRUB_ERR_NONE; -+ -+ multicast.type = GRUB_NET_NETWORK_LEVEL_PROTOCOL_IPV6; -+ multicast.ipv6[0] = grub_cpu_to_be64_compile_time (0xff02ULL << 48); -+ multicast.ipv6[1] = grub_cpu_to_be64_compile_time (0x10002ULL); -+ -+ err = grub_net_link_layer_resolve (inf, &multicast, &ll_multicast); -+ if (err) -+ return err; -+ -+ nb = grub_netbuff_alloc (GRUB_DHCP6_DEFAULT_NETBUFF_ALLOC_SIZE); -+ -+ if (!nb) -+ return grub_errno; -+ -+ err = grub_netbuff_reserve (nb, GRUB_DHCP6_DEFAULT_NETBUFF_ALLOC_SIZE); -+ if (err) -+ { -+ grub_netbuff_free (nb); -+ return err; -+ } -+ -+ err = grub_netbuff_push (nb, dhcp6->client_duid_len + sizeof (*opt)); -+ if (err) -+ { -+ grub_netbuff_free (nb); -+ return err; -+ } -+ opt = (struct grub_net_dhcp6_option *)nb->data; -+ opt->code = grub_cpu_to_be16_compile_time (GRUB_NET_DHCP6_OPTION_CLIENTID); -+ opt->len = grub_cpu_to_be16 (dhcp6->client_duid_len); -+ grub_memcpy (opt->data, dhcp6->client_duid , dhcp6->client_duid_len); -+ -+ err = grub_netbuff_push (nb, dhcp6->server_duid_len + sizeof (*opt)); -+ if (err) -+ { -+ grub_netbuff_free (nb); -+ return err; -+ } -+ opt = (struct grub_net_dhcp6_option *)nb->data; -+ opt->code = grub_cpu_to_be16_compile_time (GRUB_NET_DHCP6_OPTION_SERVERID); -+ opt->len = grub_cpu_to_be16 (dhcp6->server_duid_len); -+ grub_memcpy (opt->data, dhcp6->server_duid , dhcp6->server_duid_len); -+ -+ err = grub_netbuff_push (nb, sizeof (*ia_na) + sizeof (*opt)); -+ if (err) -+ { -+ grub_netbuff_free (nb); -+ return err; -+ } -+ -+ if (dhcp6->ia_addr) -+ { -+ err = grub_netbuff_push (nb, sizeof(*iaaddr) + sizeof (*opt)); -+ if (err) -+ { -+ grub_netbuff_free (nb); -+ return err; -+ } -+ } -+ opt = (struct grub_net_dhcp6_option *)nb->data; -+ opt->code = grub_cpu_to_be16_compile_time (GRUB_NET_DHCP6_OPTION_IA_NA); -+ opt->len = grub_cpu_to_be16 (sizeof (*ia_na)); -+ if (dhcp6->ia_addr) -+ opt->len += grub_cpu_to_be16 (sizeof(*iaaddr) + sizeof (*opt)); -+ -+ ia_na = (struct grub_net_dhcp6_option_iana *)opt->data; -+ ia_na->iaid = grub_cpu_to_be32 (dhcp6->iaid); -+ -+ ia_na->t1 = grub_cpu_to_be32 (dhcp6->t1); -+ ia_na->t2 = grub_cpu_to_be32 (dhcp6->t2); -+ -+ if (dhcp6->ia_addr) -+ { -+ opt = (struct grub_net_dhcp6_option *)ia_na->data; -+ opt->code = grub_cpu_to_be16_compile_time (GRUB_NET_DHCP6_OPTION_IAADDR); -+ opt->len = grub_cpu_to_be16 (sizeof (*iaaddr)); -+ iaaddr = (struct grub_net_dhcp6_option_iaaddr *)opt->data; -+ grub_set_unaligned64 (iaaddr->addr, dhcp6->ia_addr->ipv6[0]); -+ grub_set_unaligned64 (iaaddr->addr + 8, dhcp6->ia_addr->ipv6[1]); -+ -+ iaaddr->preferred_lifetime = grub_cpu_to_be32 (dhcp6->preferred_lifetime); -+ iaaddr->valid_lifetime = grub_cpu_to_be32 (dhcp6->valid_lifetime); -+ } -+ -+ err = grub_netbuff_push (nb, sizeof (*opt) + 2 * sizeof (grub_uint16_t)); -+ if (err) -+ { -+ grub_netbuff_free (nb); -+ return err; -+ } -+ -+ opt = (struct grub_net_dhcp6_option*) nb->data; -+ opt->code = grub_cpu_to_be16_compile_time (GRUB_NET_DHCP6_OPTION_ORO); -+ opt->len = grub_cpu_to_be16_compile_time (2 * sizeof (grub_uint16_t)); -+ grub_set_unaligned16 (opt->data, grub_cpu_to_be16_compile_time (GRUB_NET_DHCP6_OPTION_BOOTFILE_URL)); -+ grub_set_unaligned16 (opt->data + 2, grub_cpu_to_be16_compile_time (GRUB_NET_DHCP6_OPTION_DNS_SERVERS)); -+ -+ err = grub_netbuff_push (nb, sizeof (*opt) + sizeof (grub_uint16_t)); -+ if (err) -+ { -+ grub_netbuff_free (nb); -+ return err; -+ } -+ opt = (struct grub_net_dhcp6_option*) nb->data; -+ opt->code = grub_cpu_to_be16_compile_time (GRUB_NET_DHCP6_OPTION_ELAPSED_TIME); -+ opt->len = grub_cpu_to_be16_compile_time (sizeof (grub_uint16_t)); -+ -+ /* the time is expressed in hundredths of a second */ -+ elapsed = grub_divmod64 (grub_get_time_ms () - se->start_time, 10, 0); -+ -+ if (elapsed > 0xffff) -+ elapsed = 0xffff; -+ -+ grub_set_unaligned16 (opt->data, grub_cpu_to_be16 ((grub_uint16_t)elapsed)); -+ -+ err = grub_netbuff_push (nb, sizeof (*v6h)); -+ if (err) -+ { -+ grub_netbuff_free (nb); -+ return err; -+ } -+ -+ v6h = (struct grub_net_dhcp6_packet *) nb->data; -+ v6h->message_type = GRUB_NET_DHCP6_REQUEST; -+ v6h->transaction_id = se->transaction_id; -+ -+ err = grub_netbuff_push (nb, sizeof (*udph)); -+ if (err) -+ { -+ grub_netbuff_free (nb); -+ return err; -+ } -+ -+ udph = (struct udphdr *) nb->data; -+ udph->src = grub_cpu_to_be16_compile_time (DHCP6_CLIENT_PORT); -+ udph->dst = grub_cpu_to_be16_compile_time (DHCP6_SERVER_PORT); -+ udph->chksum = 0; -+ udph->len = grub_cpu_to_be16 (nb->tail - nb->data); -+ -+ udph->chksum = grub_net_ip_transport_checksum (nb, GRUB_NET_IP_UDP, -+ &inf->address, -+ &multicast); -+ err = grub_net_send_ip_packet (inf, &multicast, &ll_multicast, nb, -+ GRUB_NET_IP_UDP); -+ -+ grub_netbuff_free (nb); -+ -+ return err; -+} -+ -+struct grub_net_network_level_interface * -+grub_net_configure_by_dhcpv6_reply (const char *name, -+ struct grub_net_card *card, -+ grub_net_interface_flags_t flags, -+ const struct grub_net_dhcp6_packet *v6h, -+ grub_size_t size, -+ int is_def, -+ char **device, char **path) -+{ -+ struct grub_net_network_level_interface *inf; -+ grub_dhcp6_options_t dhcp6; -+ -+ dhcp6 = grub_dhcp6_options_get (v6h, size); -+ if (!dhcp6) -+ { -+ grub_print_error (); -+ return NULL; -+ } -+ -+ grub_net_configure_by_dhcp6_info (name, card, dhcp6, is_def, flags, &inf); -+ -+ if (device && dhcp6->boot_file_proto && dhcp6->boot_file_server_ip) -+ { -+ *device = grub_xasprintf ("%s,%s", dhcp6->boot_file_proto, dhcp6->boot_file_server_ip); -+ grub_print_error (); -+ } -+ if (path && dhcp6->boot_file_path) -+ { -+ *path = grub_strdup (dhcp6->boot_file_path); -+ grub_print_error (); -+ if (*path) -+ { -+ char *slash; -+ slash = grub_strrchr (*path, '/'); -+ if (slash) -+ *slash = 0; -+ else -+ **path = 0; -+ } -+ } -+ -+ grub_dhcp6_options_free (dhcp6); -+ return inf; -+} -+ - /* - * This is called directly from net/ip.c:handle_dgram(), because those - * BOOTP/DHCP packets are a bit special due to their improper -@@ -631,6 +1295,77 @@ grub_net_process_dhcp (struct grub_net_buff *nb, - } - } - -+grub_err_t -+grub_net_process_dhcp6 (struct grub_net_buff *nb, -+ struct grub_net_card *card __attribute__ ((unused))) -+{ -+ const struct grub_net_dhcp6_packet *v6h; -+ grub_dhcp6_session_t se; -+ grub_size_t size; -+ grub_dhcp6_options_t options; -+ -+ v6h = (const struct grub_net_dhcp6_packet *) nb->data; -+ size = nb->tail - nb->data; -+ -+ options = grub_dhcp6_options_get (v6h, size); -+ if (!options) -+ return grub_errno; -+ -+ if (!options->client_duid || !options->server_duid || !options->ia_addr) -+ { -+ grub_dhcp6_options_free (options); -+ return grub_error (GRUB_ERR_BAD_ARGUMENT, "Bad DHCPv6 Packet"); -+ } -+ -+ FOR_DHCP6_SESSIONS (se) -+ { -+ if (se->transaction_id == v6h->transaction_id && -+ grub_memcmp (options->client_duid, &se->duid, sizeof (se->duid)) == 0 && -+ se->iaid == options->iaid) -+ break; -+ } -+ -+ if (!se) -+ { -+ grub_dprintf ("bootp", "DHCPv6 session not found\n"); -+ grub_dhcp6_options_free (options); -+ return GRUB_ERR_NONE; -+ } -+ -+ if (v6h->message_type == GRUB_NET_DHCP6_ADVERTISE) -+ { -+ if (se->adv) -+ { -+ grub_dprintf ("bootp", "Skipped DHCPv6 Advertised .. \n"); -+ grub_dhcp6_options_free (options); -+ return GRUB_ERR_NONE; -+ } -+ -+ se->adv = options; -+ return grub_dhcp6_session_send_request (se); -+ } -+ else if (v6h->message_type == GRUB_NET_DHCP6_REPLY) -+ { -+ if (!se->adv) -+ { -+ grub_dprintf ("bootp", "Skipped DHCPv6 Reply .. \n"); -+ grub_dhcp6_options_free (options); -+ return GRUB_ERR_NONE; -+ } -+ -+ se->reply = options; -+ grub_dhcp6_session_configure_network (se); -+ grub_dhcp6_session_remove (se); -+ return GRUB_ERR_NONE; -+ } -+ else -+ { -+ grub_dhcp6_options_free (options); -+ } -+ -+ return GRUB_ERR_NONE; -+} -+ - static char - hexdigit (grub_uint8_t val) - { -@@ -864,7 +1599,174 @@ grub_cmd_bootp (struct grub_command *cmd __attribute__ ((unused)), - return err; - } - --static grub_command_t cmd_getdhcp, cmd_bootp, cmd_dhcp; -+static grub_err_t -+grub_cmd_bootp6 (struct grub_command *cmd __attribute__ ((unused)), -+ int argc, char **args) -+{ -+ struct grub_net_card *card; -+ grub_uint32_t iaid = 0; -+ int interval; -+ grub_err_t err; -+ grub_dhcp6_session_t se; -+ -+ err = GRUB_ERR_NONE; -+ -+ FOR_NET_CARDS (card) -+ { -+ struct grub_net_network_level_interface *iface; -+ -+ if (argc > 0 && grub_strcmp (card->name, args[0]) != 0) -+ continue; -+ -+ iface = grub_net_ipv6_get_link_local (card, &card->default_address); -+ if (!iface) -+ { -+ grub_dhcp6_session_remove_all (); -+ return grub_errno; -+ } -+ -+ grub_dhcp6_session_add (iface, iaid++); -+ } -+ -+ for (interval = 200; interval < 10000; interval *= 2) -+ { -+ int done = 1; -+ -+ FOR_DHCP6_SESSIONS (se) -+ { -+ struct grub_net_buff *nb; -+ struct grub_net_dhcp6_option *opt; -+ struct grub_net_dhcp6_packet *v6h; -+ struct grub_net_dhcp6_option_duid_ll *duid; -+ struct grub_net_dhcp6_option_iana *ia_na; -+ grub_net_network_level_address_t multicast; -+ grub_net_link_level_address_t ll_multicast; -+ struct udphdr *udph; -+ -+ multicast.type = GRUB_NET_NETWORK_LEVEL_PROTOCOL_IPV6; -+ multicast.ipv6[0] = grub_cpu_to_be64_compile_time (0xff02ULL << 48); -+ multicast.ipv6[1] = grub_cpu_to_be64_compile_time (0x10002ULL); -+ -+ err = grub_net_link_layer_resolve (se->iface, -+ &multicast, &ll_multicast); -+ if (err) -+ { -+ grub_dhcp6_session_remove_all (); -+ return err; -+ } -+ -+ nb = grub_netbuff_alloc (GRUB_DHCP6_DEFAULT_NETBUFF_ALLOC_SIZE); -+ -+ if (!nb) -+ { -+ grub_dhcp6_session_remove_all (); -+ return grub_errno; -+ } -+ -+ err = grub_netbuff_reserve (nb, GRUB_DHCP6_DEFAULT_NETBUFF_ALLOC_SIZE); -+ if (err) -+ { -+ grub_dhcp6_session_remove_all (); -+ grub_netbuff_free (nb); -+ return err; -+ } -+ -+ err = grub_netbuff_push (nb, sizeof (*opt) + sizeof (grub_uint16_t)); -+ if (err) -+ { -+ grub_dhcp6_session_remove_all (); -+ grub_netbuff_free (nb); -+ return err; -+ } -+ -+ opt = (struct grub_net_dhcp6_option *)nb->data; -+ opt->code = grub_cpu_to_be16_compile_time (GRUB_NET_DHCP6_OPTION_ELAPSED_TIME); -+ opt->len = grub_cpu_to_be16_compile_time (sizeof (grub_uint16_t)); -+ grub_set_unaligned16 (opt->data, 0); -+ -+ err = grub_netbuff_push (nb, sizeof (*opt) + sizeof (*duid)); -+ if (err) -+ { -+ grub_dhcp6_session_remove_all (); -+ grub_netbuff_free (nb); -+ return err; -+ } -+ -+ opt = (struct grub_net_dhcp6_option *)nb->data; -+ opt->code = grub_cpu_to_be16_compile_time (GRUB_NET_DHCP6_OPTION_CLIENTID); -+ opt->len = grub_cpu_to_be16 (sizeof (*duid)); -+ -+ duid = (struct grub_net_dhcp6_option_duid_ll *) opt->data; -+ grub_memcpy (duid, &se->duid, sizeof (*duid)); -+ -+ err = grub_netbuff_push (nb, sizeof (*opt) + sizeof (*ia_na)); -+ if (err) -+ { -+ grub_dhcp6_session_remove_all (); -+ grub_netbuff_free (nb); -+ return err; -+ } -+ -+ opt = (struct grub_net_dhcp6_option *)nb->data; -+ opt->code = grub_cpu_to_be16_compile_time (GRUB_NET_DHCP6_OPTION_IA_NA); -+ opt->len = grub_cpu_to_be16 (sizeof (*ia_na)); -+ ia_na = (struct grub_net_dhcp6_option_iana *)opt->data; -+ ia_na->iaid = grub_cpu_to_be32 (se->iaid); -+ ia_na->t1 = 0; -+ ia_na->t2 = 0; -+ -+ err = grub_netbuff_push (nb, sizeof (*v6h)); -+ if (err) -+ { -+ grub_dhcp6_session_remove_all (); -+ grub_netbuff_free (nb); -+ return err; -+ } -+ -+ v6h = (struct grub_net_dhcp6_packet *)nb->data; -+ v6h->message_type = GRUB_NET_DHCP6_SOLICIT; -+ v6h->transaction_id = se->transaction_id; -+ -+ grub_netbuff_push (nb, sizeof (*udph)); -+ -+ udph = (struct udphdr *) nb->data; -+ udph->src = grub_cpu_to_be16_compile_time (DHCP6_CLIENT_PORT); -+ udph->dst = grub_cpu_to_be16_compile_time (DHCP6_SERVER_PORT); -+ udph->chksum = 0; -+ udph->len = grub_cpu_to_be16 (nb->tail - nb->data); -+ -+ udph->chksum = grub_net_ip_transport_checksum (nb, GRUB_NET_IP_UDP, -+ &se->iface->address, &multicast); -+ -+ err = grub_net_send_ip_packet (se->iface, &multicast, -+ &ll_multicast, nb, GRUB_NET_IP_UDP); -+ done = 0; -+ grub_netbuff_free (nb); -+ -+ if (err) -+ { -+ grub_dhcp6_session_remove_all (); -+ return err; -+ } -+ } -+ if (!done) -+ grub_net_poll_cards (interval, 0); -+ } -+ -+ FOR_DHCP6_SESSIONS (se) -+ { -+ grub_error_push (); -+ err = grub_error (GRUB_ERR_FILE_NOT_FOUND, -+ N_("couldn't autoconfigure %s"), -+ se->iface->card->name); -+ } -+ -+ grub_dhcp6_session_remove_all (); -+ -+ return err; -+} -+ -+static grub_command_t cmd_getdhcp, cmd_bootp, cmd_dhcp, cmd_bootp6; - - void - grub_bootp_init (void) -@@ -878,6 +1780,9 @@ grub_bootp_init (void) - cmd_getdhcp = grub_register_command ("net_get_dhcp_option", grub_cmd_dhcpopt, - N_("VAR INTERFACE NUMBER DESCRIPTION"), - N_("retrieve DHCP option and save it into VAR. If VAR is - then print the value.")); -+ cmd_bootp6 = grub_register_command ("net_bootp6", grub_cmd_bootp6, -+ N_("[CARD]"), -+ N_("perform a DHCPv6 autoconfiguration")); - } - - void -@@ -886,4 +1791,5 @@ grub_bootp_fini (void) - grub_unregister_command (cmd_getdhcp); - grub_unregister_command (cmd_bootp); - grub_unregister_command (cmd_dhcp); -+ grub_unregister_command (cmd_bootp6); - } -diff --git a/grub-core/net/ip.c b/grub-core/net/ip.c -index ea5edf8f1..01410798b 100644 ---- a/grub-core/net/ip.c -+++ b/grub-core/net/ip.c -@@ -239,6 +239,45 @@ handle_dgram (struct grub_net_buff *nb, - { - struct udphdr *udph; - udph = (struct udphdr *) nb->data; -+ -+ if (proto == GRUB_NET_IP_UDP && udph->dst == grub_cpu_to_be16_compile_time (DHCP6_CLIENT_PORT)) -+ { -+ if (udph->chksum) -+ { -+ grub_uint16_t chk, expected; -+ chk = udph->chksum; -+ udph->chksum = 0; -+ expected = grub_net_ip_transport_checksum (nb, -+ GRUB_NET_IP_UDP, -+ source, -+ dest); -+ if (expected != chk) -+ { -+ grub_dprintf ("net", "Invalid UDP checksum. " -+ "Expected %x, got %x\n", -+ grub_be_to_cpu16 (expected), -+ grub_be_to_cpu16 (chk)); -+ grub_netbuff_free (nb); -+ return GRUB_ERR_NONE; -+ } -+ udph->chksum = chk; -+ } -+ -+ err = grub_netbuff_pull (nb, sizeof (*udph)); -+ if (err) -+ { -+ grub_netbuff_free (nb); -+ return err; -+ } -+ -+ err = grub_net_process_dhcp6 (nb, card); -+ if (err) -+ grub_print_error (); -+ -+ grub_netbuff_free (nb); -+ return GRUB_ERR_NONE; -+ } -+ - if (proto == GRUB_NET_IP_UDP && grub_be_to_cpu16 (udph->dst) == 68) - { - const struct grub_net_bootp_packet *bootp; -diff --git a/include/grub/net.h b/include/grub/net.h -index cc114286e..58cff96d2 100644 ---- a/include/grub/net.h -+++ b/include/grub/net.h -@@ -448,6 +448,66 @@ struct grub_net_bootp_packet - grub_uint8_t vendor[0]; - } GRUB_PACKED; - -+struct grub_net_dhcp6_packet -+{ -+ grub_uint32_t message_type:8; -+ grub_uint32_t transaction_id:24; -+ grub_uint8_t dhcp_options[0]; -+} GRUB_PACKED; -+ -+struct grub_net_dhcp6_option { -+ grub_uint16_t code; -+ grub_uint16_t len; -+ grub_uint8_t data[0]; -+} GRUB_PACKED; -+ -+struct grub_net_dhcp6_option_iana { -+ grub_uint32_t iaid; -+ grub_uint32_t t1; -+ grub_uint32_t t2; -+ grub_uint8_t data[0]; -+} GRUB_PACKED; -+ -+struct grub_net_dhcp6_option_iaaddr { -+ grub_uint8_t addr[16]; -+ grub_uint32_t preferred_lifetime; -+ grub_uint32_t valid_lifetime; -+ grub_uint8_t data[0]; -+} GRUB_PACKED; -+ -+struct grub_net_dhcp6_option_duid_ll -+{ -+ grub_uint16_t type; -+ grub_uint16_t hw_type; -+ grub_uint8_t hwaddr[6]; -+} GRUB_PACKED; -+ -+enum -+ { -+ GRUB_NET_DHCP6_SOLICIT = 1, -+ GRUB_NET_DHCP6_ADVERTISE = 2, -+ GRUB_NET_DHCP6_REQUEST = 3, -+ GRUB_NET_DHCP6_REPLY = 7 -+ }; -+ -+enum -+ { -+ DHCP6_CLIENT_PORT = 546, -+ DHCP6_SERVER_PORT = 547 -+ }; -+ -+enum -+ { -+ GRUB_NET_DHCP6_OPTION_CLIENTID = 1, -+ GRUB_NET_DHCP6_OPTION_SERVERID = 2, -+ GRUB_NET_DHCP6_OPTION_IA_NA = 3, -+ GRUB_NET_DHCP6_OPTION_IAADDR = 5, -+ GRUB_NET_DHCP6_OPTION_ORO = 6, -+ GRUB_NET_DHCP6_OPTION_ELAPSED_TIME = 8, -+ GRUB_NET_DHCP6_OPTION_DNS_SERVERS = 23, -+ GRUB_NET_DHCP6_OPTION_BOOTFILE_URL = 59 -+ }; -+ - #define GRUB_NET_BOOTP_RFC1048_MAGIC_0 0x63 - #define GRUB_NET_BOOTP_RFC1048_MAGIC_1 0x82 - #define GRUB_NET_BOOTP_RFC1048_MAGIC_2 0x53 -@@ -481,6 +541,14 @@ grub_net_configure_by_dhcp_ack (const char *name, - grub_size_t size, - int is_def, char **device, char **path); - -+struct grub_net_network_level_interface * -+grub_net_configure_by_dhcpv6_reply (const char *name, -+ struct grub_net_card *card, -+ grub_net_interface_flags_t flags, -+ const struct grub_net_dhcp6_packet *v6, -+ grub_size_t size, -+ int is_def, char **device, char **path); -+ - grub_err_t - grub_net_add_ipv4_local (struct grub_net_network_level_interface *inf, - int mask); -@@ -489,6 +557,10 @@ void - grub_net_process_dhcp (struct grub_net_buff *nb, - struct grub_net_network_level_interface *iface); - -+grub_err_t -+grub_net_process_dhcp6 (struct grub_net_buff *nb, -+ struct grub_net_card *card); -+ - int - grub_net_hwaddr_cmp (const grub_net_link_level_address_t *a, - const grub_net_link_level_address_t *b); diff --git a/patches/grub/2.04/bootp-process-dhcpack-http-boot.patch b/patches/grub/2.04/bootp-process-dhcpack-http-boot.patch deleted file mode 100644 index 40cd012e6..000000000 --- a/patches/grub/2.04/bootp-process-dhcpack-http-boot.patch +++ /dev/null @@ -1,122 +0,0 @@ -From 1728caae46b17a42da4f1fb86b5d194d879bd4aa Mon Sep 17 00:00:00 2001 -From: Michael Chang -Date: Thu, 27 Oct 2016 17:42:19 -0400 -Subject: bootp: Add processing DHCPACK packet from HTTP Boot - -The vendor class identifier with the string "HTTPClient" is used to denote the -packet as responding to HTTP boot request. In DHCP4 config, the filename for -HTTP boot is the URL of the boot file while for PXE boot it is the path to the -boot file. As a consequence, the next-server becomes obseleted because the HTTP -URL already contains the server address for the boot file. For DHCP6 config, -there's no difference definition in existing config as dhcp6.bootfile-url can -be used to specify URL for both HTTP and PXE boot file. - -This patch adds processing for "HTTPClient" vendor class identifier in DHCPACK -packet by treating it as HTTP format, not as the PXE format. - -Signed-off-by: Michael Chang -Signed-off-by: Ken Lin - -Patch-Name: bootp-process-dhcpack-http-boot.patch ---- - grub-core/net/bootp.c | 60 ++++++++++++++++++++++++++++++++++++++++++- - include/grub/net.h | 1 + - 2 files changed, 60 insertions(+), 1 deletion(-) - -diff --git a/grub-core/net/bootp.c b/grub-core/net/bootp.c -index 21c1824ef..558d97ba1 100644 ---- a/grub-core/net/bootp.c -+++ b/grub-core/net/bootp.c -@@ -154,7 +154,7 @@ struct grub_dhcp_request_options - { - grub_uint8_t type; - grub_uint8_t len; -- grub_uint8_t data[7]; -+ grub_uint8_t data[8]; - } GRUB_PACKED parameter_request; - grub_uint8_t end; - } GRUB_PACKED; -@@ -498,6 +498,63 @@ grub_net_configure_by_dhcp_ack (const char *name, - if (opt && opt_len) - grub_env_set_net_property (name, "extensionspath", (const char *) opt, opt_len); - -+ opt = find_dhcp_option (bp, size, GRUB_NET_BOOTP_VENDOR_CLASS_IDENTIFIER, -+ &opt_len); -+ if (opt && opt_len) -+ { -+ grub_env_set_net_property (name, "vendor_class_identifier", -+ (const char *) opt, opt_len); -+ if (opt_len == sizeof ("HTTPClient") - 1 && -+ grub_memcmp (opt, "HTTPClient", sizeof ("HTTPClient") - 1) == 0) -+ { -+ char *proto, *ip, *pa; -+ -+ if (!dissect_url (bp->boot_file, &proto, &ip, &pa)) -+ return inter; -+ -+ grub_env_set_net_property (name, "boot_file", pa, grub_strlen (pa)); -+ if (is_def) -+ { -+ grub_net_default_server = grub_strdup (ip); -+ grub_env_set ("net_default_interface", name); -+ grub_env_export ("net_default_interface"); -+ } -+ if (device && !*device) -+ { -+ *device = grub_xasprintf ("%s,%s", proto, ip); -+ grub_print_error (); -+ } -+ if (path) -+ { -+ *path = grub_strdup (pa); -+ grub_print_error (); -+ if (*path) -+ { -+ char *slash; -+ slash = grub_strrchr (*path, '/'); -+ if (slash) -+ *slash = 0; -+ else -+ **path = 0; -+ } -+ } -+ grub_net_add_ipv4_local (inter, mask); -+ inter->dhcp_ack = grub_malloc (size); -+ if (inter->dhcp_ack) -+ { -+ grub_memcpy (inter->dhcp_ack, bp, size); -+ inter->dhcp_acklen = size; -+ } -+ else -+ grub_errno = GRUB_ERR_NONE; -+ -+ grub_free (proto); -+ grub_free (ip); -+ grub_free (pa); -+ return inter; -+ } -+ } -+ - inter->dhcp_ack = grub_malloc (size); - if (inter->dhcp_ack) - { -@@ -572,6 +629,7 @@ send_dhcp_packet (struct grub_net_network_level_interface *iface) - GRUB_NET_BOOTP_HOSTNAME, - GRUB_NET_BOOTP_ROOT_PATH, - GRUB_NET_BOOTP_EXTENSIONS_PATH, -+ GRUB_NET_BOOTP_VENDOR_CLASS_IDENTIFIER, - }, - }, - GRUB_NET_BOOTP_END, -diff --git a/include/grub/net.h b/include/grub/net.h -index 58cff96d2..b5f9e617e 100644 ---- a/include/grub/net.h -+++ b/include/grub/net.h -@@ -523,6 +523,7 @@ enum - GRUB_NET_BOOTP_DOMAIN = 0x0f, - GRUB_NET_BOOTP_ROOT_PATH = 0x11, - GRUB_NET_BOOTP_EXTENSIONS_PATH = 0x12, -+ GRUB_NET_BOOTP_VENDOR_CLASS_IDENTIFIER = 0x3C, - GRUB_NET_DHCP_REQUESTED_IP_ADDRESS = 50, - GRUB_NET_DHCP_OVERLOAD = 52, - GRUB_NET_DHCP_MESSAGE_TYPE = 53, diff --git a/patches/grub/2.04/btrfs-raid1c34.patch b/patches/grub/2.04/btrfs-raid1c34.patch deleted file mode 100644 index 7ebf60fd1..000000000 --- a/patches/grub/2.04/btrfs-raid1c34.patch +++ /dev/null @@ -1,57 +0,0 @@ -From 71e87f5ac2ffac3705655aecc22f3f872fb603d6 Mon Sep 17 00:00:00 2001 -From: David Sterba -Date: Mon, 4 Nov 2019 17:23:22 +0100 -Subject: btrfs: Add support for new RAID1C34 profiles - -New 3- and 4-copy variants of RAID1 were merged into Linux kernel 5.5. -Add the two new profiles to the list of recognized ones. As this builds -on the same code as RAID1, only the redundancy level needs to be -adjusted, the rest is done by the existing code. - -Signed-off-by: David Sterba -Reviewed-by: Daniel Kiper - -Origin: upstream, https://git.savannah.gnu.org/cgit/grub.git/commit/?id=495781f5ed1b48bf27f16c53940d6700c181c74c -Bug-Debian: https://bugs.debian.org/958236 -Last-Update: 2020-04-20 - -Patch-Name: btrfs-raid1c34.patch ---- - grub-core/fs/btrfs.c | 11 +++++++++-- - 1 file changed, 9 insertions(+), 2 deletions(-) - -diff --git a/grub-core/fs/btrfs.c b/grub-core/fs/btrfs.c -index 48bd3d04a..63f9657a6 100644 ---- a/grub-core/fs/btrfs.c -+++ b/grub-core/fs/btrfs.c -@@ -136,6 +136,8 @@ struct grub_btrfs_chunk_item - #define GRUB_BTRFS_CHUNK_TYPE_RAID10 0x40 - #define GRUB_BTRFS_CHUNK_TYPE_RAID5 0x80 - #define GRUB_BTRFS_CHUNK_TYPE_RAID6 0x100 -+#define GRUB_BTRFS_CHUNK_TYPE_RAID1C3 0x200 -+#define GRUB_BTRFS_CHUNK_TYPE_RAID1C4 0x400 - grub_uint8_t dummy2[0xc]; - grub_uint16_t nstripes; - grub_uint16_t nsubstripes; -@@ -964,14 +966,19 @@ grub_btrfs_read_logical (struct grub_btrfs_data *data, grub_disk_addr_t addr, - csize = (stripen + 1) * stripe_length - off; - break; - } -+ case GRUB_BTRFS_CHUNK_TYPE_RAID1C4: -+ redundancy++; -+ /* fall through */ -+ case GRUB_BTRFS_CHUNK_TYPE_RAID1C3: -+ redundancy++; -+ /* fall through */ - case GRUB_BTRFS_CHUNK_TYPE_DUPLICATED: - case GRUB_BTRFS_CHUNK_TYPE_RAID1: - { -- grub_dprintf ("btrfs", "RAID1\n"); -+ grub_dprintf ("btrfs", "RAID1 (copies: %d)\n", ++redundancy); - stripen = 0; - stripe_offset = off; - csize = grub_le_to_cpu64 (chunk->size) - off; -- redundancy = 2; - break; - } - case GRUB_BTRFS_CHUNK_TYPE_RAID0: diff --git a/patches/grub/2.04/core-in-fs.patch b/patches/grub/2.04/core-in-fs.patch deleted file mode 100644 index 1ba3b4b81..000000000 --- a/patches/grub/2.04/core-in-fs.patch +++ /dev/null @@ -1,45 +0,0 @@ -From d7e4bea95adfdbc80f574e154a62a383bbbeb5d6 Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Mon, 13 Jan 2014 12:12:51 +0000 -Subject: Write marker if core.img was written to filesystem - -The Debian bug reporting script includes a warning in this case. - -Patch-Name: core-in-fs.patch ---- - util/setup.c | 8 ++++++++ - 1 file changed, 8 insertions(+) - -diff --git a/util/setup.c b/util/setup.c -index 6f88f3cc4..fbdf2fcc5 100644 ---- a/util/setup.c -+++ b/util/setup.c -@@ -58,6 +58,8 @@ - - #include - -+#define CORE_IMG_IN_FS "setup_left_core_image_in_filesystem" -+ - /* On SPARC this program fills in various fields inside of the 'boot' and 'core' - * image files. - * -@@ -666,6 +668,8 @@ SETUP (const char *dir, - #endif - grub_free (sectors); - -+ unlink (DEFAULT_DIRECTORY "/" CORE_IMG_IN_FS); -+ - goto finish; - } - -@@ -707,6 +711,10 @@ unable_to_embed: - /* The core image must be put on a filesystem unfortunately. */ - grub_util_info ("will leave the core image on the filesystem"); - -+ fp = grub_util_fd_open (DEFAULT_DIRECTORY "/" CORE_IMG_IN_FS, -+ GRUB_UTIL_FD_O_WRONLY); -+ grub_util_fd_close (fp); -+ - grub_util_biosdisk_flush (root_dev->disk); - - /* Clean out the blocklists. */ diff --git a/patches/grub/2.04/default-grub-d.patch b/patches/grub/2.04/default-grub-d.patch deleted file mode 100644 index 4a25f67c9..000000000 --- a/patches/grub/2.04/default-grub-d.patch +++ /dev/null @@ -1,195 +0,0 @@ -From 83446ff328321ff05818fee1ed150f8efd4730b8 Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Mon, 13 Jan 2014 12:13:10 +0000 -Subject: Read /etc/default/grub.d/*.cfg after /etc/default/grub - -Bug-Ubuntu: https://bugs.launchpad.net/bugs/901600 -Forwarded: no -Last-Update: 2014-01-28 - -Patch-Name: default-grub-d.patch ---- - grub-core/osdep/unix/config.c | 114 +++++++++++++++++++++++++++------- - util/grub-mkconfig.in | 5 ++ - 2 files changed, 98 insertions(+), 21 deletions(-) - -diff --git a/grub-core/osdep/unix/config.c b/grub-core/osdep/unix/config.c -index 65effa9f3..5478030fd 100644 ---- a/grub-core/osdep/unix/config.c -+++ b/grub-core/osdep/unix/config.c -@@ -24,6 +24,8 @@ - #include - #include - #include -+#include -+#include - #include - #include - #include -@@ -61,13 +63,27 @@ grub_util_get_localedir (void) - return LOCALEDIR; - } - -+struct cfglist -+{ -+ struct cfglist *next; -+ struct cfglist *prev; -+ char *path; -+}; -+ - void - grub_util_load_config (struct grub_util_config *cfg) - { - pid_t pid; - const char *argv[4]; -- char *script, *ptr; -+ char *script = NULL, *ptr; - const char *cfgfile, *iptr; -+ char *cfgdir; -+ grub_util_fd_dir_t d; -+ struct cfglist *cfgpaths = NULL, *cfgpath, *next_cfgpath; -+ int num_cfgpaths = 0; -+ size_t len_cfgpaths = 0; -+ char **sorted_cfgpaths = NULL; -+ int i; - FILE *f = NULL; - int fd; - const char *v; -@@ -83,29 +99,75 @@ grub_util_load_config (struct grub_util_config *cfg) - cfg->grub_distributor = xstrdup (v); - - cfgfile = grub_util_get_config_filename (); -- if (!grub_util_is_regular (cfgfile)) -- return; -+ if (grub_util_is_regular (cfgfile)) -+ { -+ ++num_cfgpaths; -+ len_cfgpaths += strlen (cfgfile) * 4 + sizeof (". ''; ") - 1; -+ } -+ -+ cfgdir = xasprintf ("%s.d", cfgfile); -+ d = grub_util_fd_opendir (cfgdir); -+ if (d) -+ { -+ grub_util_fd_dirent_t de; -+ -+ while ((de = grub_util_fd_readdir (d))) -+ { -+ const char *ext = strrchr (de->d_name, '.'); -+ -+ if (!ext || strcmp (ext, ".cfg") != 0) -+ continue; -+ -+ cfgpath = xmalloc (sizeof (*cfgpath)); -+ cfgpath->path = grub_util_path_concat (2, cfgdir, de->d_name); -+ grub_list_push (GRUB_AS_LIST_P (&cfgpaths), GRUB_AS_LIST (cfgpath)); -+ ++num_cfgpaths; -+ len_cfgpaths += strlen (cfgpath->path) * 4 + sizeof (". ''; ") - 1; -+ } -+ grub_util_fd_closedir (d); -+ } -+ -+ if (num_cfgpaths == 0) -+ goto out; -+ -+ sorted_cfgpaths = xmalloc (num_cfgpaths * sizeof (*sorted_cfgpaths)); -+ i = 0; -+ if (grub_util_is_regular (cfgfile)) -+ sorted_cfgpaths[i++] = xstrdup (cfgfile); -+ FOR_LIST_ELEMENTS_SAFE (cfgpath, next_cfgpath, cfgpaths) -+ { -+ sorted_cfgpaths[i++] = cfgpath->path; -+ free (cfgpath); -+ } -+ assert (i == num_cfgpaths); -+ qsort (sorted_cfgpaths + 1, num_cfgpaths - 1, sizeof (*sorted_cfgpaths), -+ (int (*) (const void *, const void *)) strcmp); - - argv[0] = "sh"; - argv[1] = "-c"; - -- script = xmalloc (4 * strlen (cfgfile) + 300); -+ script = xmalloc (len_cfgpaths + 300); - - ptr = script; -- memcpy (ptr, ". '", 3); -- ptr += 3; -- for (iptr = cfgfile; *iptr; iptr++) -+ for (i = 0; i < num_cfgpaths; i++) - { -- if (*iptr == '\\') -+ memcpy (ptr, ". '", 3); -+ ptr += 3; -+ for (iptr = sorted_cfgpaths[i]; *iptr; iptr++) - { -- memcpy (ptr, "'\\''", 4); -- ptr += 4; -- continue; -+ if (*iptr == '\\') -+ { -+ memcpy (ptr, "'\\''", 4); -+ ptr += 4; -+ continue; -+ } -+ *ptr++ = *iptr; - } -- *ptr++ = *iptr; -+ memcpy (ptr, "'; ", 3); -+ ptr += 3; - } - -- strcpy (ptr, "'; printf \"GRUB_ENABLE_CRYPTODISK=%s\\nGRUB_DISTRIBUTOR=%s\\n\" " -+ strcpy (ptr, "printf \"GRUB_ENABLE_CRYPTODISK=%s\\nGRUB_DISTRIBUTOR=%s\\n\" " - "\"$GRUB_ENABLE_CRYPTODISK\" \"$GRUB_DISTRIBUTOR\""); - - argv[2] = script; -@@ -125,15 +187,25 @@ grub_util_load_config (struct grub_util_config *cfg) - waitpid (pid, NULL, 0); - } - if (f) -- return; -+ goto out; - -- f = grub_util_fopen (cfgfile, "r"); -- if (f) -+ for (i = 0; i < num_cfgpaths; i++) - { -- grub_util_parse_config (f, cfg, 0); -- fclose (f); -+ f = grub_util_fopen (sorted_cfgpaths[i], "r"); -+ if (f) -+ { -+ grub_util_parse_config (f, cfg, 0); -+ fclose (f); -+ } -+ else -+ grub_util_warn (_("cannot open configuration file `%s': %s"), -+ cfgfile, strerror (errno)); - } -- else -- grub_util_warn (_("cannot open configuration file `%s': %s"), -- cfgfile, strerror (errno)); -+ -+out: -+ free (script); -+ for (i = 0; i < num_cfgpaths; i++) -+ free (sorted_cfgpaths[i]); -+ free (sorted_cfgpaths); -+ free (cfgdir); - } -diff --git a/util/grub-mkconfig.in b/util/grub-mkconfig.in -index 45cd4cc54..8a1bc0441 100644 ---- a/util/grub-mkconfig.in -+++ b/util/grub-mkconfig.in -@@ -157,6 +157,11 @@ fi - if test -f ${sysconfdir}/default/grub ; then - . ${sysconfdir}/default/grub - fi -+for x in ${sysconfdir}/default/grub.d/*.cfg ; do -+ if [ -e "${x}" ]; then -+ . "${x}" -+ fi -+done - - # XXX: should this be deprecated at some point? - if [ "x${GRUB_TERMINAL}" != "x" ] ; then diff --git a/patches/grub/2.04/dejavu-font-path.patch b/patches/grub/2.04/dejavu-font-path.patch deleted file mode 100644 index 90a3d40b8..000000000 --- a/patches/grub/2.04/dejavu-font-path.patch +++ /dev/null @@ -1,23 +0,0 @@ -From c9434fab26adda59da5d80997ae337e9211a4a39 Mon Sep 17 00:00:00 2001 -From: Fabian Greffrath -Date: Tue, 19 May 2020 12:19:26 +0200 -Subject: add /u/s/fonts/truetype/dejavu to the DejaVu fonts search paths - -Patch-Name: dejavu-font-path.patch ---- - configure.ac | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/configure.ac b/configure.ac -index 883245553..851f61546 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -1661,7 +1661,7 @@ fi - - if test x"$starfield_excuse" = x; then - for ext in pcf pcf.gz bdf bdf.gz ttf ttf.gz; do -- for dir in . /usr/src /usr/share/fonts/X11/misc /usr/share/fonts/truetype/ttf-dejavu /usr/share/fonts/dejavu /usr/share/fonts/truetype; do -+ for dir in . /usr/src /usr/share/fonts/X11/misc /usr/share/fonts/truetype/dejavu /usr/share/fonts/truetype/ttf-dejavu /usr/share/fonts/dejavu /usr/share/fonts/truetype; do - if test -f "$dir/DejaVuSans.$ext"; then - DJVU_FONT_SOURCE="$dir/DejaVuSans.$ext" - break 2 diff --git a/patches/grub/2.04/deviceiter-overflow.patch b/patches/grub/2.04/deviceiter-overflow.patch deleted file mode 100644 index 42a273cc1..000000000 --- a/patches/grub/2.04/deviceiter-overflow.patch +++ /dev/null @@ -1,51 +0,0 @@ -From 4bb7f63fd56a4b1408d871eadbdc24cd73c9e9ed Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Fri, 24 Jul 2020 11:30:46 +0100 -Subject: deviceiter: Fix integer overflow in grub_util_iterate_devices - -This adjusts Debian's grub-mkdevicemap restoration patch to perform safe -allocation. - -Signed-off-by: Colin Watson - -Patch-Name: deviceiter-overflow.patch ---- - util/deviceiter.c | 10 ++++++++-- - 1 file changed, 8 insertions(+), 2 deletions(-) - -diff --git a/util/deviceiter.c b/util/deviceiter.c -index dddc50da7..3a8f2770e 100644 ---- a/util/deviceiter.c -+++ b/util/deviceiter.c -@@ -35,6 +35,7 @@ - #include - #include - #include -+#include - - #ifdef __linux__ - # if !defined(__GLIBC__) || \ -@@ -576,7 +577,7 @@ grub_util_iterate_devices (int (*hook) (const char *, int, void *), void *hook_d - struct device *devs; - size_t devs_len = 0, devs_max = 1024, dev; - -- devs = xmalloc (devs_max * sizeof (*devs)); -+ devs = xcalloc (devs_max, sizeof (*devs)); - - /* Dump all the directory entries into names, resizing if - necessary. */ -@@ -598,8 +599,13 @@ grub_util_iterate_devices (int (*hook) (const char *, int, void *), void *hook_d - continue; - if (devs_len >= devs_max) - { -+ size_t sz; -+ - devs_max *= 2; -- devs = xrealloc (devs, devs_max * sizeof (*devs)); -+ sz = devs_max; -+ if (grub_mul (sz, sizeof (*devs), &sz)) -+ grub_util_error ("%s", _("overflow is detected")); -+ devs = xrealloc (devs, sz); - } - devs[devs_len].stable = - xasprintf ("/dev/disk/by-id/%s", entry->d_name); diff --git a/patches/grub/2.04/disable-floppies.patch b/patches/grub/2.04/disable-floppies.patch deleted file mode 100644 index 7d4835e13..000000000 --- a/patches/grub/2.04/disable-floppies.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 42e4cfb46a2a617eb7dc1526700ab6015710222e Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Mon, 13 Jan 2014 12:12:54 +0000 -Subject: Disable use of floppy devices - -An ugly kludge. Should this be merged upstream? - -Author: Robert Millan - -Patch-Name: disable-floppies.patch ---- - grub-core/kern/emu/hostdisk.c | 12 ++++++++++++ - 1 file changed, 12 insertions(+) - -diff --git a/grub-core/kern/emu/hostdisk.c b/grub-core/kern/emu/hostdisk.c -index e9ec680cd..8ac523953 100644 ---- a/grub-core/kern/emu/hostdisk.c -+++ b/grub-core/kern/emu/hostdisk.c -@@ -532,6 +532,18 @@ read_device_map (const char *dev_map) - continue; - } - -+ if (! strncmp (p, "/dev/fd", sizeof ("/dev/fd") - 1)) -+ { -+ char *q = p + sizeof ("/dev/fd") - 1; -+ if (*q >= '0' && *q <= '9') -+ { -+ free (map[drive].drive); -+ map[drive].drive = NULL; -+ grub_util_info ("`%s' looks like a floppy drive, skipping", p); -+ continue; -+ } -+ } -+ - /* On Linux, the devfs uses symbolic links horribly, and that - confuses the interface very much, so use realpath to expand - symbolic links. */ diff --git a/patches/grub/2.04/dpkg-version-comparison.patch b/patches/grub/2.04/dpkg-version-comparison.patch deleted file mode 100644 index 86e5c7ea6..000000000 --- a/patches/grub/2.04/dpkg-version-comparison.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 89a5bb08600e06c33e44a14b1997af3efc98782b Mon Sep 17 00:00:00 2001 -From: Robert Millan -Date: Mon, 13 Jan 2014 12:12:52 +0000 -Subject: Improve handling of Debian kernel version numbers - -Forwarded: not-needed -Last-Update: 2013-12-20 - -Patch-Name: dpkg-version-comparison.patch ---- - util/grub-mkconfig_lib.in | 7 ++++--- - 1 file changed, 4 insertions(+), 3 deletions(-) - -diff --git a/util/grub-mkconfig_lib.in b/util/grub-mkconfig_lib.in -index 0f801cab3..b6606c16e 100644 ---- a/util/grub-mkconfig_lib.in -+++ b/util/grub-mkconfig_lib.in -@@ -239,8 +239,9 @@ version_test_numeric () - - version_test_gt () - { -- version_test_gt_a="`echo "$1" | sed -e "s/[^-]*-//"`" -- version_test_gt_b="`echo "$2" | sed -e "s/[^-]*-//"`" -+ version_test_gt_sedexp="s/[^-]*-//;s/[._-]\(pre\|rc\|test\|git\|old\|trunk\)/~\1/g" -+ version_test_gt_a="`echo "$1" | sed -e "$version_test_gt_sedexp"`" -+ version_test_gt_b="`echo "$2" | sed -e "$version_test_gt_sedexp"`" - version_test_gt_cmp=gt - if [ "x$version_test_gt_b" = "x" ] ; then - return 0 -@@ -250,7 +251,7 @@ version_test_gt () - *.old:*) version_test_gt_a="`echo "$version_test_gt_a" | sed -e 's/\.old$//'`" ; version_test_gt_cmp=gt ;; - *:*.old) version_test_gt_b="`echo "$version_test_gt_b" | sed -e 's/\.old$//'`" ; version_test_gt_cmp=ge ;; - esac -- version_test_numeric "$version_test_gt_a" "$version_test_gt_cmp" "$version_test_gt_b" -+ dpkg --compare-versions "$version_test_gt_a" "$version_test_gt_cmp" "$version_test_gt_b" - return "$?" - } - diff --git a/patches/grub/2.04/efi-halt-reboot-use-after-free.patch b/patches/grub/2.04/efi-halt-reboot-use-after-free.patch deleted file mode 100644 index dd07cd20a..000000000 --- a/patches/grub/2.04/efi-halt-reboot-use-after-free.patch +++ /dev/null @@ -1,177 +0,0 @@ -From bb5fc65035e82509b0565bfe2994fbe6cc11016e Mon Sep 17 00:00:00 2001 -From: Alexey Makhalov -Date: Mon, 20 Jul 2020 23:03:05 +0000 -Subject: efi: Fix use-after-free in halt/reboot path - -commit 92bfc33db984 ("efi: Free malloc regions on exit") -introduced memory freeing in grub_efi_fini(), which is -used not only by exit path but by halt/reboot one as well. -As result of memory freeing, code and data regions used by -modules, such as halt, reboot, acpi (used by halt) also got -freed. After return to module code, CPU executes, filled -by UEFI firmware (tested with edk2), 0xAFAFAFAF pattern as -a code. Which leads to #UD exception later. - -grub> halt -!!!! X64 Exception Type - 06(#UD - Invalid Opcode) CPU Apic ID - 00000000 !!!! -RIP - 0000000003F4EC28, CS - 0000000000000038, RFLAGS - 0000000000200246 -RAX - 0000000000000000, RCX - 00000000061DA188, RDX - 0A74C0854DC35D41 -RBX - 0000000003E10E08, RSP - 0000000007F0F860, RBP - 0000000000000000 -RSI - 00000000064DB768, RDI - 000000000832C5C3 -R8 - 0000000000000002, R9 - 0000000000000000, R10 - 00000000061E2E52 -R11 - 0000000000000020, R12 - 0000000003EE5C1F, R13 - 00000000061E0FF4 -R14 - 0000000003E10D80, R15 - 00000000061E2F60 -DS - 0000000000000030, ES - 0000000000000030, FS - 0000000000000030 -GS - 0000000000000030, SS - 0000000000000030 -CR0 - 0000000080010033, CR2 - 0000000000000000, CR3 - 0000000007C01000 -CR4 - 0000000000000668, CR8 - 0000000000000000 -DR0 - 0000000000000000, DR1 - 0000000000000000, DR2 - 0000000000000000 -DR3 - 0000000000000000, DR6 - 00000000FFFF0FF0, DR7 - 0000000000000400 -GDTR - 00000000079EEA98 0000000000000047, LDTR - 0000000000000000 -IDTR - 0000000007598018 0000000000000FFF, TR - 0000000000000000 -FXSAVE_STATE - 0000000007F0F4C0 - -Proposal here is to continue to free allocated memory for -exit boot services path but keep it for halt/reboot path -as it won't be much security concern here. -Introduced GRUB_LOADER_FLAG_EFI_KEEP_ALLOCATED_MEMORY -loader flag to be used by efi halt/reboot path. - -Signed-off-by: Alexey Makhalov -Reviewed-by: Darren Kenny - -Patch-Name: efi-halt-reboot-use-after-free.patch ---- - grub-core/kern/arm/efi/init.c | 3 +++ - grub-core/kern/arm64/efi/init.c | 3 +++ - grub-core/kern/efi/efi.c | 3 ++- - grub-core/kern/efi/init.c | 1 - - grub-core/kern/i386/efi/init.c | 9 +++++++-- - grub-core/kern/ia64/efi/init.c | 9 +++++++-- - grub-core/kern/riscv/efi/init.c | 3 +++ - grub-core/lib/efi/halt.c | 3 ++- - include/grub/loader.h | 1 + - 9 files changed, 28 insertions(+), 7 deletions(-) - -diff --git a/grub-core/kern/arm/efi/init.c b/grub-core/kern/arm/efi/init.c -index 06df60e2f..40c3b467f 100644 ---- a/grub-core/kern/arm/efi/init.c -+++ b/grub-core/kern/arm/efi/init.c -@@ -71,4 +71,7 @@ grub_machine_fini (int flags) - efi_call_1 (b->close_event, tmr_evt); - - grub_efi_fini (); -+ -+ if (!(flags & GRUB_LOADER_FLAG_EFI_KEEP_ALLOCATED_MEMORY)) -+ grub_efi_memory_fini (); - } -diff --git a/grub-core/kern/arm64/efi/init.c b/grub-core/kern/arm64/efi/init.c -index 6224999ec..5010caefd 100644 ---- a/grub-core/kern/arm64/efi/init.c -+++ b/grub-core/kern/arm64/efi/init.c -@@ -57,4 +57,7 @@ grub_machine_fini (int flags) - return; - - grub_efi_fini (); -+ -+ if (!(flags & GRUB_LOADER_FLAG_EFI_KEEP_ALLOCATED_MEMORY)) -+ grub_efi_memory_fini (); - } -diff --git a/grub-core/kern/efi/efi.c b/grub-core/kern/efi/efi.c -index e12261fd5..acb38d61f 100644 ---- a/grub-core/kern/efi/efi.c -+++ b/grub-core/kern/efi/efi.c -@@ -157,7 +157,8 @@ grub_efi_get_loaded_image (grub_efi_handle_t image_handle) - void - grub_reboot (void) - { -- grub_machine_fini (GRUB_LOADER_FLAG_NORETURN); -+ grub_machine_fini (GRUB_LOADER_FLAG_NORETURN | -+ GRUB_LOADER_FLAG_EFI_KEEP_ALLOCATED_MEMORY); - efi_call_4 (grub_efi_system_table->runtime_services->reset_system, - GRUB_EFI_RESET_COLD, GRUB_EFI_SUCCESS, 0, NULL); - for (;;) ; -diff --git a/grub-core/kern/efi/init.c b/grub-core/kern/efi/init.c -index 3dfdf2d22..2c31847bf 100644 ---- a/grub-core/kern/efi/init.c -+++ b/grub-core/kern/efi/init.c -@@ -80,5 +80,4 @@ grub_efi_fini (void) - { - grub_efidisk_fini (); - grub_console_fini (); -- grub_efi_memory_fini (); - } -diff --git a/grub-core/kern/i386/efi/init.c b/grub-core/kern/i386/efi/init.c -index da499aba0..deb2eacd8 100644 ---- a/grub-core/kern/i386/efi/init.c -+++ b/grub-core/kern/i386/efi/init.c -@@ -39,6 +39,11 @@ grub_machine_init (void) - void - grub_machine_fini (int flags) - { -- if (flags & GRUB_LOADER_FLAG_NORETURN) -- grub_efi_fini (); -+ if (!(flags & GRUB_LOADER_FLAG_NORETURN)) -+ return; -+ -+ grub_efi_fini (); -+ -+ if (!(flags & GRUB_LOADER_FLAG_EFI_KEEP_ALLOCATED_MEMORY)) -+ grub_efi_memory_fini (); - } -diff --git a/grub-core/kern/ia64/efi/init.c b/grub-core/kern/ia64/efi/init.c -index b5ecbd091..f1965571b 100644 ---- a/grub-core/kern/ia64/efi/init.c -+++ b/grub-core/kern/ia64/efi/init.c -@@ -70,6 +70,11 @@ grub_machine_init (void) - void - grub_machine_fini (int flags) - { -- if (flags & GRUB_LOADER_FLAG_NORETURN) -- grub_efi_fini (); -+ if (!(flags & GRUB_LOADER_FLAG_NORETURN)) -+ return; -+ -+ grub_efi_fini (); -+ -+ if (!(flags & GRUB_LOADER_FLAG_EFI_KEEP_ALLOCATED_MEMORY)) -+ grub_efi_memory_fini (); - } -diff --git a/grub-core/kern/riscv/efi/init.c b/grub-core/kern/riscv/efi/init.c -index 7eb1969d0..38795fe67 100644 ---- a/grub-core/kern/riscv/efi/init.c -+++ b/grub-core/kern/riscv/efi/init.c -@@ -73,4 +73,7 @@ grub_machine_fini (int flags) - return; - - grub_efi_fini (); -+ -+ if (!(flags & GRUB_LOADER_FLAG_EFI_KEEP_ALLOCATED_MEMORY)) -+ grub_efi_memory_fini (); - } -diff --git a/grub-core/lib/efi/halt.c b/grub-core/lib/efi/halt.c -index 5859f0498..29d413641 100644 ---- a/grub-core/lib/efi/halt.c -+++ b/grub-core/lib/efi/halt.c -@@ -28,7 +28,8 @@ - void - grub_halt (void) - { -- grub_machine_fini (GRUB_LOADER_FLAG_NORETURN); -+ grub_machine_fini (GRUB_LOADER_FLAG_NORETURN | -+ GRUB_LOADER_FLAG_EFI_KEEP_ALLOCATED_MEMORY); - #if !defined(__ia64__) && !defined(__arm__) && !defined(__aarch64__) && \ - !defined(__riscv) - grub_acpi_halt (); -diff --git a/include/grub/loader.h b/include/grub/loader.h -index 7f82a499f..b20864282 100644 ---- a/include/grub/loader.h -+++ b/include/grub/loader.h -@@ -33,6 +33,7 @@ enum - { - GRUB_LOADER_FLAG_NORETURN = 1, - GRUB_LOADER_FLAG_PXE_NOT_UNLOAD = 2, -+ GRUB_LOADER_FLAG_EFI_KEEP_ALLOCATED_MEMORY = 4, - }; - - void EXPORT_FUNC (grub_loader_set) (grub_err_t (*boot) (void), diff --git a/patches/grub/2.04/efi-malformed-device-path-2.patch b/patches/grub/2.04/efi-malformed-device-path-2.patch deleted file mode 100644 index dd5891f17..000000000 --- a/patches/grub/2.04/efi-malformed-device-path-2.patch +++ /dev/null @@ -1,86 +0,0 @@ -From c5763039a630dee079f0afbd5ced9cd74efe0b71 Mon Sep 17 00:00:00 2001 -From: Chris Coulson -Date: Wed, 22 Jul 2020 17:06:04 +0100 -Subject: Fix a regression caused by "efi: fix some malformed device path - arithmetic errors" - -This commit introduced a bogus check inside copy_file_path to -determine whether the destination grub_efi_file_path_device_path_t -was valid before anything was copied to it. Depending on the -contents of the heap buffer, this check could fail which would -result in copy_file_path returning early. - -Without any error propagated to the caller, make_file_path would -then try to advance the invalid device path node with -GRUB_EFI_NEXT_DEVICE_PATH, which would also fail, returning a NULL -pointer that would subsequently be dereferenced. - -Remove the bogus check, and also propagate errors from copy_file_path. - -Patch-Name: efi-malformed-device-path-2.patch ---- - grub-core/loader/efi/chainloader.c | 25 +++++++++++++------------ - 1 file changed, 13 insertions(+), 12 deletions(-) - -diff --git a/grub-core/loader/efi/chainloader.c b/grub-core/loader/efi/chainloader.c -index 978fab002..e9b06242a 100644 ---- a/grub-core/loader/efi/chainloader.c -+++ b/grub-core/loader/efi/chainloader.c -@@ -106,7 +106,7 @@ grub_chainloader_boot (void) - return grub_errno; - } - --static void -+static grub_err_t - copy_file_path (grub_efi_file_path_device_path_t *fp, - const char *str, grub_efi_uint16_t len) - { -@@ -116,15 +116,9 @@ copy_file_path (grub_efi_file_path_device_path_t *fp, - fp->header.type = GRUB_EFI_MEDIA_DEVICE_PATH_TYPE; - fp->header.subtype = GRUB_EFI_FILE_PATH_DEVICE_PATH_SUBTYPE; - -- if (!GRUB_EFI_DEVICE_PATH_VALID ((grub_efi_device_path_t *)fp)) -- { -- grub_error (GRUB_ERR_BAD_ARGUMENT, "EFI Device Path is invalid"); -- return; -- } -- - path_name = grub_calloc (len, GRUB_MAX_UTF16_PER_UTF8 * sizeof (*path_name)); - if (!path_name) -- return; -+ return grub_error (GRUB_ERR_OUT_OF_MEMORY, "failed to allocate path buffer"); - - size = grub_utf8_to_utf16 (path_name, len * GRUB_MAX_UTF16_PER_UTF8, - (const grub_uint8_t *) str, len, 0); -@@ -137,6 +131,7 @@ copy_file_path (grub_efi_file_path_device_path_t *fp, - fp->path_name[size++] = '\0'; - fp->header.length = size * sizeof (grub_efi_char16_t) + sizeof (*fp); - grub_free (path_name); -+ return GRUB_ERR_NONE; - } - - static grub_efi_device_path_t * -@@ -195,13 +190,19 @@ make_file_path (grub_efi_device_path_t *dp, const char *filename) - d = (grub_efi_device_path_t *) ((char *) file_path - + ((char *) d - (char *) dp)); - grub_efi_print_device_path (d); -- copy_file_path ((grub_efi_file_path_device_path_t *) d, -- dir_start, dir_end - dir_start); -+ if (copy_file_path ((grub_efi_file_path_device_path_t *) d, -+ dir_start, dir_end - dir_start) != GRUB_ERR_NONE) -+ { -+ fail: -+ grub_free (file_path); -+ return 0; -+ } - - /* Fill the file path for the file. */ - d = GRUB_EFI_NEXT_DEVICE_PATH (d); -- copy_file_path ((grub_efi_file_path_device_path_t *) d, -- dir_end + 1, grub_strlen (dir_end + 1)); -+ if (copy_file_path ((grub_efi_file_path_device_path_t *) d, -+ dir_end + 1, grub_strlen (dir_end + 1)) != GRUB_ERR_NONE) -+ goto fail; - - /* Fill the end of device path nodes. */ - d = GRUB_EFI_NEXT_DEVICE_PATH (d); diff --git a/patches/grub/2.04/efi-malformed-device-path.patch b/patches/grub/2.04/efi-malformed-device-path.patch deleted file mode 100644 index fdfe07cb8..000000000 --- a/patches/grub/2.04/efi-malformed-device-path.patch +++ /dev/null @@ -1,249 +0,0 @@ -From 9735a4b2f52caf79e5804ca3e959f0f444a8716c Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Sun, 19 Jul 2020 16:53:27 -0400 -Subject: efi: fix some malformed device path arithmetic errors. - -Several places we take the length of a device path and subtract 4 from -it, without ever checking that it's >= 4. There are also cases where -this kind of malformation will result in unpredictable iteration, -including treating the length from one dp node as the type in the next -node. These are all errors, no matter where the data comes from. - -This patch adds a checking macro, GRUB_EFI_DEVICE_PATH_VALID(), which -can be used in several places, and makes GRUB_EFI_NEXT_DEVICE_PATH() -return NULL and GRUB_EFI_END_ENTIRE_DEVICE_PATH() evaluate as true when -the length is too small. Additionally, it makes several places in the -code check for and return errors in these cases. - -Signed-off-by: Peter Jones - -Patch-Name: efi-malformed-device-path.patch ---- - grub-core/kern/efi/efi.c | 67 +++++++++++++++++++++++++----- - grub-core/loader/efi/chainloader.c | 19 ++++++++- - grub-core/loader/i386/xnu.c | 9 ++-- - include/grub/efi/api.h | 14 ++++--- - 4 files changed, 88 insertions(+), 21 deletions(-) - -diff --git a/grub-core/kern/efi/efi.c b/grub-core/kern/efi/efi.c -index ad170c7ce..e12261fd5 100644 ---- a/grub-core/kern/efi/efi.c -+++ b/grub-core/kern/efi/efi.c -@@ -360,7 +360,7 @@ grub_efi_get_filename (grub_efi_device_path_t *dp0) - - dp = dp0; - -- while (1) -+ while (dp) - { - grub_efi_uint8_t type = GRUB_EFI_DEVICE_PATH_TYPE (dp); - grub_efi_uint8_t subtype = GRUB_EFI_DEVICE_PATH_SUBTYPE (dp); -@@ -370,9 +370,15 @@ grub_efi_get_filename (grub_efi_device_path_t *dp0) - if (type == GRUB_EFI_MEDIA_DEVICE_PATH_TYPE - && subtype == GRUB_EFI_FILE_PATH_DEVICE_PATH_SUBTYPE) - { -- grub_efi_uint16_t len; -- len = ((GRUB_EFI_DEVICE_PATH_LENGTH (dp) - 4) -- / sizeof (grub_efi_char16_t)); -+ grub_efi_uint16_t len = GRUB_EFI_DEVICE_PATH_LENGTH (dp); -+ -+ if (len < 4) -+ { -+ grub_error (GRUB_ERR_OUT_OF_RANGE, -+ "malformed EFI Device Path node has length=%d", len); -+ return NULL; -+ } -+ len = (len - 4) / sizeof (grub_efi_char16_t); - filesize += GRUB_MAX_UTF8_PER_UTF16 * len + 2; - } - -@@ -388,7 +394,7 @@ grub_efi_get_filename (grub_efi_device_path_t *dp0) - if (!name) - return NULL; - -- while (1) -+ while (dp) - { - grub_efi_uint8_t type = GRUB_EFI_DEVICE_PATH_TYPE (dp); - grub_efi_uint8_t subtype = GRUB_EFI_DEVICE_PATH_SUBTYPE (dp); -@@ -404,8 +410,15 @@ grub_efi_get_filename (grub_efi_device_path_t *dp0) - - *p++ = '/'; - -- len = ((GRUB_EFI_DEVICE_PATH_LENGTH (dp) - 4) -- / sizeof (grub_efi_char16_t)); -+ len = GRUB_EFI_DEVICE_PATH_LENGTH (dp); -+ if (len < 4) -+ { -+ grub_error (GRUB_ERR_OUT_OF_RANGE, -+ "malformed EFI Device Path node has length=%d", len); -+ return NULL; -+ } -+ -+ len = (len - 4) / sizeof (grub_efi_char16_t); - fp = (grub_efi_file_path_device_path_t *) dp; - /* According to EFI spec Path Name is NULL terminated */ - while (len > 0 && fp->path_name[len - 1] == 0) -@@ -480,7 +493,26 @@ grub_efi_duplicate_device_path (const grub_efi_device_path_t *dp) - ; - p = GRUB_EFI_NEXT_DEVICE_PATH (p)) - { -- total_size += GRUB_EFI_DEVICE_PATH_LENGTH (p); -+ grub_size_t len = GRUB_EFI_DEVICE_PATH_LENGTH (p); -+ -+ /* -+ * In the event that we find a node that's completely garbage, for -+ * example if we get to 0x7f 0x01 0x02 0x00 ... (EndInstance with a size -+ * of 2), GRUB_EFI_END_ENTIRE_DEVICE_PATH() will be true and -+ * GRUB_EFI_NEXT_DEVICE_PATH() will return NULL, so we won't continue, -+ * and neither should our consumers, but there won't be any error raised -+ * even though the device path is junk. -+ * -+ * This keeps us from passing junk down back to our caller. -+ */ -+ if (len < 4) -+ { -+ grub_error (GRUB_ERR_OUT_OF_RANGE, -+ "malformed EFI Device Path node has length=%d", len); -+ return NULL; -+ } -+ -+ total_size += len; - if (GRUB_EFI_END_ENTIRE_DEVICE_PATH (p)) - break; - } -@@ -525,7 +557,7 @@ dump_vendor_path (const char *type, grub_efi_vendor_device_path_t *vendor) - void - grub_efi_print_device_path (grub_efi_device_path_t *dp) - { -- while (1) -+ while (GRUB_EFI_DEVICE_PATH_VALID (dp)) - { - grub_efi_uint8_t type = GRUB_EFI_DEVICE_PATH_TYPE (dp); - grub_efi_uint8_t subtype = GRUB_EFI_DEVICE_PATH_SUBTYPE (dp); -@@ -937,7 +969,11 @@ grub_efi_compare_device_paths (const grub_efi_device_path_t *dp1, - /* Return non-zero. */ - return 1; - -- while (1) -+ if (dp1 == dp2) -+ return 0; -+ -+ while (GRUB_EFI_DEVICE_PATH_VALID (dp1) -+ && GRUB_EFI_DEVICE_PATH_VALID (dp2)) - { - grub_efi_uint8_t type1, type2; - grub_efi_uint8_t subtype1, subtype2; -@@ -973,5 +1009,16 @@ grub_efi_compare_device_paths (const grub_efi_device_path_t *dp1, - dp2 = (grub_efi_device_path_t *) ((char *) dp2 + len2); - } - -+ /* -+ * There's no "right" answer here, but we probably don't want to call a valid -+ * dp and an invalid dp equal, so pick one way or the other. -+ */ -+ if (GRUB_EFI_DEVICE_PATH_VALID (dp1) && -+ !GRUB_EFI_DEVICE_PATH_VALID (dp2)) -+ return 1; -+ else if (!GRUB_EFI_DEVICE_PATH_VALID (dp1) && -+ GRUB_EFI_DEVICE_PATH_VALID (dp2)) -+ return -1; -+ - return 0; - } -diff --git a/grub-core/loader/efi/chainloader.c b/grub-core/loader/efi/chainloader.c -index daf8c6b54..978fab002 100644 ---- a/grub-core/loader/efi/chainloader.c -+++ b/grub-core/loader/efi/chainloader.c -@@ -116,6 +116,12 @@ copy_file_path (grub_efi_file_path_device_path_t *fp, - fp->header.type = GRUB_EFI_MEDIA_DEVICE_PATH_TYPE; - fp->header.subtype = GRUB_EFI_FILE_PATH_DEVICE_PATH_SUBTYPE; - -+ if (!GRUB_EFI_DEVICE_PATH_VALID ((grub_efi_device_path_t *)fp)) -+ { -+ grub_error (GRUB_ERR_BAD_ARGUMENT, "EFI Device Path is invalid"); -+ return; -+ } -+ - path_name = grub_calloc (len, GRUB_MAX_UTF16_PER_UTF8 * sizeof (*path_name)); - if (!path_name) - return; -@@ -156,9 +162,18 @@ make_file_path (grub_efi_device_path_t *dp, const char *filename) - - size = 0; - d = dp; -- while (1) -+ while (d) - { -- size += GRUB_EFI_DEVICE_PATH_LENGTH (d); -+ grub_size_t len = GRUB_EFI_DEVICE_PATH_LENGTH (d); -+ -+ if (len < 4) -+ { -+ grub_error (GRUB_ERR_OUT_OF_RANGE, -+ "malformed EFI Device Path node has length=%d", len); -+ return NULL; -+ } -+ -+ size += len; - if ((GRUB_EFI_END_ENTIRE_DEVICE_PATH (d))) - break; - d = GRUB_EFI_NEXT_DEVICE_PATH (d); -diff --git a/grub-core/loader/i386/xnu.c b/grub-core/loader/i386/xnu.c -index e9e119259..a70093607 100644 ---- a/grub-core/loader/i386/xnu.c -+++ b/grub-core/loader/i386/xnu.c -@@ -515,14 +515,15 @@ grub_cmd_devprop_load (grub_command_t cmd __attribute__ ((unused)), - - devhead = buf; - buf = devhead + 1; -- dpstart = buf; -+ dp = dpstart = buf; - -- do -+ while (GRUB_EFI_DEVICE_PATH_VALID (dp) && buf < bufend) - { -- dp = buf; - buf = (char *) buf + GRUB_EFI_DEVICE_PATH_LENGTH (dp); -+ if (GRUB_EFI_END_ENTIRE_DEVICE_PATH (dp)) -+ break; -+ dp = buf; - } -- while (!GRUB_EFI_END_ENTIRE_DEVICE_PATH (dp) && buf < bufend); - - dev = grub_xnu_devprop_add_device (dpstart, (char *) buf - - (char *) dpstart); -diff --git a/include/grub/efi/api.h b/include/grub/efi/api.h -index 75befd10e..a3f4df91d 100644 ---- a/include/grub/efi/api.h -+++ b/include/grub/efi/api.h -@@ -635,6 +635,7 @@ typedef struct grub_efi_device_path grub_efi_device_path_protocol_t; - #define GRUB_EFI_DEVICE_PATH_TYPE(dp) ((dp)->type & 0x7f) - #define GRUB_EFI_DEVICE_PATH_SUBTYPE(dp) ((dp)->subtype) - #define GRUB_EFI_DEVICE_PATH_LENGTH(dp) ((dp)->length) -+#define GRUB_EFI_DEVICE_PATH_VALID(dp) ((dp) != NULL && GRUB_EFI_DEVICE_PATH_LENGTH (dp) >= 4) - - /* The End of Device Path nodes. */ - #define GRUB_EFI_END_DEVICE_PATH_TYPE (0xff & 0x7f) -@@ -643,13 +644,16 @@ typedef struct grub_efi_device_path grub_efi_device_path_protocol_t; - #define GRUB_EFI_END_THIS_DEVICE_PATH_SUBTYPE 0x01 - - #define GRUB_EFI_END_ENTIRE_DEVICE_PATH(dp) \ -- (GRUB_EFI_DEVICE_PATH_TYPE (dp) == GRUB_EFI_END_DEVICE_PATH_TYPE \ -- && (GRUB_EFI_DEVICE_PATH_SUBTYPE (dp) \ -- == GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE)) -+ (!GRUB_EFI_DEVICE_PATH_VALID (dp) || \ -+ (GRUB_EFI_DEVICE_PATH_TYPE (dp) == GRUB_EFI_END_DEVICE_PATH_TYPE \ -+ && (GRUB_EFI_DEVICE_PATH_SUBTYPE (dp) \ -+ == GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE))) - - #define GRUB_EFI_NEXT_DEVICE_PATH(dp) \ -- ((grub_efi_device_path_t *) ((char *) (dp) \ -- + GRUB_EFI_DEVICE_PATH_LENGTH (dp))) -+ (GRUB_EFI_DEVICE_PATH_VALID (dp) \ -+ ? ((grub_efi_device_path_t *) \ -+ ((char *) (dp) + GRUB_EFI_DEVICE_PATH_LENGTH (dp))) \ -+ : NULL) - - /* Hardware Device Path. */ - #define GRUB_EFI_HARDWARE_DEVICE_PATH_TYPE 1 diff --git a/patches/grub/2.04/efi-variable-storage-minimise-writes.patch b/patches/grub/2.04/efi-variable-storage-minimise-writes.patch deleted file mode 100644 index 798c737c8..000000000 --- a/patches/grub/2.04/efi-variable-storage-minimise-writes.patch +++ /dev/null @@ -1,895 +0,0 @@ -From fc333cf241ea774b0610c8ba57c833d6937dd0f5 Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Mon, 11 Mar 2019 11:17:43 +0000 -Subject: Minimise writes to EFI variable storage - -Some UEFI firmware is easily provoked into running out of space in its -variable storage. This is usually due to certain kernel drivers (e.g. -pstore), but regardless of the cause it can cause grub-install to fail -because it currently asks efibootmgr to delete and re-add entries, and -the deletion often doesn't result in an immediate garbage collection. -Writing variables frequently also increases wear on the NVRAM which may -have limited write cycles. For these reasons, it's desirable to find a -way to minimise writes while still allowing grub-install to ensure that -a suitable boot entry exists. - -Unfortunately, efibootmgr doesn't offer an interface that would let -grub-install do this. It doesn't in general make very much effort to -minimise writes; it doesn't allow modifying an existing Boot* variable -entry, except in certain limited ways; and current versions don't have a -way to export the expected variable data so that grub-install can -compare it to the current data. While it would be possible (and perhaps -desirable?) to add at least some of this to efibootmgr, that would still -leave the problem that there isn't a good upstreamable way for -grub-install to guarantee that it has a new enough version of -efibootmgr. In any case, it's cumbersome and slow for grub-install to -have to fork efibootmgr to get things done. - -Fortunately, a few years ago Peter Jones helpfully factored out a -substantial part of efibootmgr to the efivar and efiboot libraries, and -so it's now possible to have grub-install use those directly. We still -have to use some code from efibootmgr, but much less than would -previously have been necessary. - -grub-install now reuses existing boot entries where possible, and avoids -writing to variables when the new contents are the same as the old -contents. In the common upgrade case where nothing needs to change, it -no longer writes to NVRAM at all. It's also now slightly faster, since -using libefivar is faster than forking efibootmgr. - -Fixes Debian bug #891434. - -Signed-off-by: Colin Watson - -Bug-Debian: https://bugs.debian.org/891434 -Forwarded: https://lists.gnu.org/archive/html/grub-devel/2019-03/msg00119.html -Last-Update: 2019-03-23 - -Patch-Name: efi-variable-storage-minimise-writes.patch ---- - INSTALL | 5 + - Makefile.util.def | 20 ++ - configure.ac | 12 + - grub-core/osdep/efivar.c | 3 + - grub-core/osdep/unix/efivar.c | 508 ++++++++++++++++++++++++++++++++ - grub-core/osdep/unix/platform.c | 100 +------ - include/grub/util/install.h | 5 + - util/grub-install.c | 4 +- - 8 files changed, 562 insertions(+), 95 deletions(-) - create mode 100644 grub-core/osdep/efivar.c - create mode 100644 grub-core/osdep/unix/efivar.c - -diff --git a/INSTALL b/INSTALL -index 8acb40902..342c158e9 100644 ---- a/INSTALL -+++ b/INSTALL -@@ -41,6 +41,11 @@ configuring the GRUB. - * Other standard GNU/Unix tools - * a libc with large file support (e.g. glibc 2.1 or later) - -+On Unix-based systems, you also need: -+ -+* libefivar (recommended) -+* libefiboot (recommended; your OS may ship this together with libefivar) -+ - On GNU/Linux, you also need: - - * libdevmapper 1.02.34 or later (recommended) -diff --git a/Makefile.util.def b/Makefile.util.def -index 8a24b23f0..59e41423b 100644 ---- a/Makefile.util.def -+++ b/Makefile.util.def -@@ -558,6 +558,8 @@ program = { - common = grub-core/osdep/compress.c; - extra_dist = grub-core/osdep/unix/compress.c; - extra_dist = grub-core/osdep/basic/compress.c; -+ common = grub-core/osdep/efivar.c; -+ extra_dist = grub-core/osdep/unix/efivar.c; - common = util/editenv.c; - common = grub-core/osdep/blocklist.c; - common = grub-core/osdep/config.c; -@@ -571,12 +573,15 @@ program = { - common = grub-core/kern/emu/argp_common.c; - common = grub-core/osdep/init.c; - -+ cflags = '$(EFIVAR_CFLAGS)'; -+ - ldadd = '$(LIBLZMA)'; - ldadd = libgrubmods.a; - ldadd = libgrubgcry.a; - ldadd = libgrubkern.a; - ldadd = grub-core/lib/gnulib/libgnu.a; - ldadd = '$(LIBINTL) $(LIBDEVMAPPER) $(LIBUTIL) $(LIBZFS) $(LIBNVPAIR) $(LIBGEOM)'; -+ ldadd = '$(EFIVAR_LIBS)'; - - condition = COND_HAVE_EXEC; - }; -@@ -605,6 +610,8 @@ program = { - extra_dist = grub-core/osdep/basic/no_platform.c; - extra_dist = grub-core/osdep/unix/platform.c; - common = grub-core/osdep/compress.c; -+ common = grub-core/osdep/efivar.c; -+ extra_dist = grub-core/osdep/unix/efivar.c; - common = util/editenv.c; - common = grub-core/osdep/blocklist.c; - common = grub-core/osdep/config.c; -@@ -618,12 +625,15 @@ program = { - common = grub-core/kern/emu/argp_common.c; - common = grub-core/osdep/init.c; - -+ cflags = '$(EFIVAR_CFLAGS)'; -+ - ldadd = '$(LIBLZMA)'; - ldadd = libgrubmods.a; - ldadd = libgrubgcry.a; - ldadd = libgrubkern.a; - ldadd = grub-core/lib/gnulib/libgnu.a; - ldadd = '$(LIBINTL) $(LIBDEVMAPPER) $(LIBUTIL) $(LIBZFS) $(LIBNVPAIR) $(LIBGEOM)'; -+ ldadd = '$(EFIVAR_LIBS)'; - }; - - program = { -@@ -645,6 +655,8 @@ program = { - common = grub-core/osdep/platform.c; - common = grub-core/osdep/platform_unix.c; - common = grub-core/osdep/compress.c; -+ common = grub-core/osdep/efivar.c; -+ extra_dist = grub-core/osdep/unix/efivar.c; - common = util/editenv.c; - common = grub-core/osdep/blocklist.c; - common = grub-core/osdep/config.c; -@@ -657,12 +669,15 @@ program = { - common = grub-core/kern/emu/argp_common.c; - common = grub-core/osdep/init.c; - -+ cflags = '$(EFIVAR_CFLAGS)'; -+ - ldadd = '$(LIBLZMA)'; - ldadd = libgrubmods.a; - ldadd = libgrubgcry.a; - ldadd = libgrubkern.a; - ldadd = grub-core/lib/gnulib/libgnu.a; - ldadd = '$(LIBINTL) $(LIBDEVMAPPER) $(LIBUTIL) $(LIBZFS) $(LIBNVPAIR) $(LIBGEOM)'; -+ ldadd = '$(EFIVAR_LIBS)'; - }; - - program = { -@@ -684,6 +699,8 @@ program = { - common = grub-core/osdep/platform.c; - common = grub-core/osdep/platform_unix.c; - common = grub-core/osdep/compress.c; -+ common = grub-core/osdep/efivar.c; -+ extra_dist = grub-core/osdep/unix/efivar.c; - common = util/editenv.c; - common = grub-core/osdep/blocklist.c; - common = grub-core/osdep/config.c; -@@ -693,12 +710,15 @@ program = { - common = grub-core/kern/emu/argp_common.c; - common = grub-core/osdep/init.c; - -+ cflags = '$(EFIVAR_CFLAGS)'; -+ - ldadd = '$(LIBLZMA)'; - ldadd = libgrubmods.a; - ldadd = libgrubgcry.a; - ldadd = libgrubkern.a; - ldadd = grub-core/lib/gnulib/libgnu.a; - ldadd = '$(LIBINTL) $(LIBDEVMAPPER) $(LIBUTIL) $(LIBZFS) $(LIBNVPAIR) $(LIBGEOM)'; -+ ldadd = '$(EFIVAR_LIBS)'; - }; - - script = { -diff --git a/configure.ac b/configure.ac -index e382c7480..883245553 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -443,6 +443,18 @@ AC_CHECK_HEADER([util.h], [ - ]) - AC_SUBST([LIBUTIL]) - -+case "$host_os" in -+ cygwin | windows* | mingw32* | aros*) -+ ;; -+ *) -+ # For setting EFI variables in grub-install. -+ PKG_CHECK_MODULES([EFIVAR], [efivar efiboot], [ -+ AC_DEFINE([HAVE_EFIVAR], [1], -+ [Define to 1 if you have the efivar and efiboot libraries.]) -+ ], [:]) -+ ;; -+esac -+ - AC_CACHE_CHECK([whether -Wtrampolines work], [grub_cv_host_cc_wtrampolines], [ - SAVED_CFLAGS="$CFLAGS" - CFLAGS="$HOST_CFLAGS -Wtrampolines -Werror" -diff --git a/grub-core/osdep/efivar.c b/grub-core/osdep/efivar.c -new file mode 100644 -index 000000000..d2750e252 ---- /dev/null -+++ b/grub-core/osdep/efivar.c -@@ -0,0 +1,3 @@ -+#if !defined (__MINGW32__) && !defined (__CYGWIN__) && !defined (__AROS__) -+#include "unix/efivar.c" -+#endif -diff --git a/grub-core/osdep/unix/efivar.c b/grub-core/osdep/unix/efivar.c -new file mode 100644 -index 000000000..4a58328b4 ---- /dev/null -+++ b/grub-core/osdep/unix/efivar.c -@@ -0,0 +1,508 @@ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 2013,2019 Free Software Foundation, Inc. -+ * -+ * GRUB is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation, either version 3 of the License, or -+ * (at your option) any later version. -+ * -+ * GRUB is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with GRUB. If not, see . -+ */ -+ -+/* Contains portions derived from efibootmgr, licensed as follows: -+ * -+ * Copyright (C) 2001-2004 Dell, Inc. -+ * Copyright 2015-2016 Red Hat, Inc. -+ * -+ * This program is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation; either version 2 of the License, or -+ * (at your option) any later version. -+ */ -+ -+#include -+ -+#ifdef HAVE_EFIVAR -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#include -+#include -+ -+struct efi_variable { -+ struct efi_variable *next; -+ struct efi_variable **prev; -+ char *name; -+ efi_guid_t guid; -+ uint8_t *data; -+ size_t data_size; -+ uint32_t attributes; -+ int num; -+}; -+ -+/* Boot option attributes. */ -+#define LOAD_OPTION_ACTIVE 0x00000001 -+ -+/* GUIDs. */ -+#define BLKX_UNKNOWN_GUID \ -+ EFI_GUID (0x47c7b225, 0xc42a, 0x11d2, 0x8e57, 0x00, 0xa0, 0xc9, 0x69, \ -+ 0x72, 0x3b) -+ -+/* Log all errors recorded by libefivar/libefiboot. */ -+static void -+show_efi_errors (void) -+{ -+ int i; -+ int saved_errno = errno; -+ -+ for (i = 0; ; ++i) -+ { -+ char *filename, *function, *message = NULL; -+ int line, error = 0, rc; -+ -+ rc = efi_error_get (i, &filename, &function, &line, &message, &error); -+ if (rc < 0) -+ /* Give up. The caller is going to log an error anyway. */ -+ break; -+ if (rc == 0) -+ /* No more errors. */ -+ break; -+ grub_util_warn ("%s: %s: %s", function, message, strerror (error)); -+ } -+ -+ efi_error_clear (); -+ errno = saved_errno; -+} -+ -+static struct efi_variable * -+new_efi_variable (void) -+{ -+ struct efi_variable *new = xmalloc (sizeof (*new)); -+ memset (new, 0, sizeof (*new)); -+ return new; -+} -+ -+static struct efi_variable * -+new_boot_variable (void) -+{ -+ struct efi_variable *new = new_efi_variable (); -+ new->guid = EFI_GLOBAL_GUID; -+ new->attributes = EFI_VARIABLE_NON_VOLATILE | -+ EFI_VARIABLE_BOOTSERVICE_ACCESS | -+ EFI_VARIABLE_RUNTIME_ACCESS; -+ return new; -+} -+ -+static void -+free_efi_variable (struct efi_variable *entry) -+{ -+ if (entry) -+ { -+ free (entry->name); -+ free (entry->data); -+ free (entry); -+ } -+} -+ -+static int -+read_efi_variable (const char *name, struct efi_variable **entry) -+{ -+ struct efi_variable *new = new_efi_variable (); -+ int rc; -+ -+ rc = efi_get_variable (EFI_GLOBAL_GUID, name, -+ &new->data, &new->data_size, &new->attributes); -+ if (rc < 0) -+ { -+ free_efi_variable (new); -+ new = NULL; -+ } -+ -+ if (new) -+ { -+ /* Latest Apple firmware sets the high bit which appears invalid -+ to the Linux kernel if we write it back, so let's zero it out if it -+ is set since it would be invalid to set it anyway. */ -+ new->attributes = new->attributes & ~(1 << 31); -+ -+ new->name = xstrdup (name); -+ new->guid = EFI_GLOBAL_GUID; -+ } -+ -+ *entry = new; -+ return rc; -+} -+ -+/* Set an EFI variable, but only if it differs from the current value. -+ Some firmware implementations are liable to fill up flash space if we set -+ variables unnecessarily, so try to keep write activity to a minimum. */ -+static int -+set_efi_variable (const char *name, struct efi_variable *entry) -+{ -+ struct efi_variable *old = NULL; -+ int rc = 0; -+ -+ read_efi_variable (name, &old); -+ efi_error_clear (); -+ if (old && old->attributes == entry->attributes && -+ old->data_size == entry->data_size && -+ memcmp (old->data, entry->data, entry->data_size) == 0) -+ grub_util_info ("skipping unnecessary update of EFI variable %s", name); -+ else -+ { -+ rc = efi_set_variable (EFI_GLOBAL_GUID, name, -+ entry->data, entry->data_size, entry->attributes, -+ 0644); -+ if (rc < 0) -+ grub_util_warn (_("Cannot set EFI variable %s"), name); -+ } -+ free_efi_variable (old); -+ return rc; -+} -+ -+static int -+cmpvarbyname (const void *p1, const void *p2) -+{ -+ const struct efi_variable *var1 = *(const struct efi_variable **)p1; -+ const struct efi_variable *var2 = *(const struct efi_variable **)p2; -+ return strcmp (var1->name, var2->name); -+} -+ -+static int -+read_boot_variables (struct efi_variable **varlist) -+{ -+ int rc; -+ efi_guid_t *guid = NULL; -+ char *name = NULL; -+ struct efi_variable **newlist = NULL; -+ int nentries = 0; -+ int i; -+ -+ while ((rc = efi_get_next_variable_name (&guid, &name)) > 0) -+ { -+ const char *snum = name + sizeof ("Boot") - 1; -+ struct efi_variable *var = NULL; -+ unsigned int num; -+ -+ if (memcmp (guid, &efi_guid_global, sizeof (efi_guid_global)) != 0 || -+ strncmp (name, "Boot", sizeof ("Boot") - 1) != 0 || -+ !grub_isxdigit (snum[0]) || !grub_isxdigit (snum[1]) || -+ !grub_isxdigit (snum[2]) || !grub_isxdigit (snum[3])) -+ continue; -+ -+ rc = read_efi_variable (name, &var); -+ if (rc < 0) -+ break; -+ -+ if (sscanf (var->name, "Boot%04X-%*s", &num) == 1 && num < 65536) -+ var->num = num; -+ -+ newlist = xrealloc (newlist, (++nentries) * sizeof (*newlist)); -+ newlist[nentries - 1] = var; -+ } -+ if (rc == 0 && newlist) -+ { -+ qsort (newlist, nentries, sizeof (*newlist), cmpvarbyname); -+ for (i = nentries - 1; i >= 0; --i) -+ grub_list_push (GRUB_AS_LIST_P (varlist), GRUB_AS_LIST (newlist[i])); -+ } -+ else if (newlist) -+ { -+ for (i = 0; i < nentries; ++i) -+ free_efi_variable (newlist[i]); -+ free (newlist); -+ } -+ return rc; -+} -+ -+#define GET_ORDER(data, i) \ -+ ((uint16_t) ((data)[(i) * 2]) + ((data)[(i) * 2 + 1] << 8)) -+#define SET_ORDER(data, i, num) \ -+ do { \ -+ (data)[(i) * 2] = (num) & 0xFF; \ -+ (data)[(i) * 2 + 1] = ((num) >> 8) & 0xFF; \ -+ } while (0) -+ -+static void -+remove_from_boot_order (struct efi_variable *order, uint16_t num) -+{ -+ unsigned int old_i, new_i; -+ -+ /* We've got an array (in order->data) of the order. Squeeze out any -+ instance of the entry we're deleting by shifting the remainder down. */ -+ for (old_i = 0, new_i = 0; -+ old_i < order->data_size / sizeof (uint16_t); -+ ++old_i) -+ { -+ uint16_t old_num = GET_ORDER (order->data, old_i); -+ if (old_num != num) -+ { -+ if (new_i != old_i) -+ SET_ORDER (order->data, new_i, old_num); -+ ++new_i; -+ } -+ } -+ -+ order->data_size = new_i * sizeof (uint16_t); -+} -+ -+static void -+add_to_boot_order (struct efi_variable *order, uint16_t num) -+{ -+ int i; -+ size_t new_data_size; -+ uint8_t *new_data; -+ -+ /* Check whether this entry is already in the boot order. If it is, leave -+ it alone. */ -+ for (i = 0; i < order->data_size / sizeof (uint16_t); ++i) -+ if (GET_ORDER (order->data, i) == num) -+ return; -+ -+ new_data_size = order->data_size + sizeof (uint16_t); -+ new_data = xmalloc (new_data_size); -+ SET_ORDER (new_data, 0, num); -+ memcpy (new_data + sizeof (uint16_t), order->data, order->data_size); -+ free (order->data); -+ order->data = new_data; -+ order->data_size = new_data_size; -+} -+ -+static int -+find_free_boot_num (struct efi_variable *entries) -+{ -+ int num_vars = 0, i; -+ struct efi_variable *entry; -+ -+ FOR_LIST_ELEMENTS (entry, entries) -+ ++num_vars; -+ -+ if (num_vars == 0) -+ return 0; -+ -+ /* O(n^2), but n is small and this is easy. */ -+ for (i = 0; i < num_vars; ++i) -+ { -+ int found = 0; -+ FOR_LIST_ELEMENTS (entry, entries) -+ { -+ if (entry->num == i) -+ { -+ found = 1; -+ break; -+ } -+ } -+ if (!found) -+ return i; -+ } -+ -+ return i; -+} -+ -+static int -+get_edd_version (void) -+{ -+ efi_guid_t blkx_guid = BLKX_UNKNOWN_GUID; -+ uint8_t *data = NULL; -+ size_t data_size = 0; -+ uint32_t attributes; -+ efidp_header *path; -+ int rc; -+ -+ rc = efi_get_variable (blkx_guid, "blk0", &data, &data_size, &attributes); -+ if (rc < 0) -+ return rc; -+ -+ path = (efidp_header *) data; -+ if (path->type == 2 && path->subtype == 1) -+ return 3; -+ return 1; -+} -+ -+static struct efi_variable * -+make_boot_variable (int num, const char *disk, int part, const char *loader, -+ const char *label) -+{ -+ struct efi_variable *entry = new_boot_variable (); -+ uint32_t options; -+ uint32_t edd10_devicenum; -+ ssize_t dp_needed, loadopt_needed; -+ efidp dp = NULL; -+ -+ options = EFIBOOT_ABBREV_HD; -+ switch (get_edd_version ()) { -+ case 1: -+ options = EFIBOOT_ABBREV_EDD10; -+ break; -+ case 3: -+ options = EFIBOOT_ABBREV_NONE; -+ break; -+ } -+ -+ /* This may not be the right disk; but it's probably only an issue on very -+ old hardware anyway. */ -+ edd10_devicenum = 0x80; -+ -+ dp_needed = efi_generate_file_device_path_from_esp (NULL, 0, disk, part, -+ loader, options, -+ edd10_devicenum); -+ if (dp_needed < 0) -+ goto err; -+ -+ dp = xmalloc (dp_needed); -+ dp_needed = efi_generate_file_device_path_from_esp ((uint8_t *) dp, -+ dp_needed, disk, part, -+ loader, options, -+ edd10_devicenum); -+ if (dp_needed < 0) -+ goto err; -+ -+ loadopt_needed = efi_loadopt_create (NULL, 0, LOAD_OPTION_ACTIVE, -+ dp, dp_needed, (unsigned char *) label, -+ NULL, 0); -+ if (loadopt_needed < 0) -+ goto err; -+ entry->data_size = loadopt_needed; -+ entry->data = xmalloc (entry->data_size); -+ loadopt_needed = efi_loadopt_create (entry->data, entry->data_size, -+ LOAD_OPTION_ACTIVE, dp, dp_needed, -+ (unsigned char *) label, NULL, 0); -+ if (loadopt_needed < 0) -+ goto err; -+ -+ entry->name = xasprintf ("Boot%04X", num); -+ entry->num = num; -+ -+ return entry; -+ -+err: -+ free_efi_variable (entry); -+ free (dp); -+ return NULL; -+} -+ -+int -+grub_install_efivar_register_efi (grub_device_t efidir_grub_dev, -+ const char *efifile_path, -+ const char *efi_distributor) -+{ -+ const char *efidir_disk; -+ int efidir_part; -+ struct efi_variable *entries = NULL, *entry; -+ struct efi_variable *order; -+ int entry_num = -1; -+ int rc; -+ -+ efidir_disk = grub_util_biosdisk_get_osdev (efidir_grub_dev->disk); -+ efidir_part = efidir_grub_dev->disk->partition ? efidir_grub_dev->disk->partition->number + 1 : 1; -+ -+#ifdef __linux__ -+ /* -+ * Linux uses efivarfs (mounted on /sys/firmware/efi/efivars) to access the -+ * EFI variable store. Some legacy systems may still use the deprecated -+ * efivars interface (accessed through /sys/firmware/efi/vars). Where both -+ * are present, libefivar will use the former in preference, so attempting -+ * to load efivars will not interfere with later operations. -+ */ -+ grub_util_exec_redirect_all ((const char * []){ "modprobe", "efivars", NULL }, -+ NULL, NULL, "/dev/null"); -+#endif -+ -+ if (!efi_variables_supported ()) -+ { -+ grub_util_warn ("%s", -+ _("EFI variables are not supported on this system.")); -+ /* Let the user continue. Perhaps they can still arrange to boot GRUB -+ manually. */ -+ return 0; -+ } -+ -+ rc = read_boot_variables (&entries); -+ if (rc < 0) -+ { -+ grub_util_warn ("%s", _("Cannot read EFI Boot* variables")); -+ goto err; -+ } -+ rc = read_efi_variable ("BootOrder", &order); -+ if (rc < 0) -+ { -+ order = new_boot_variable (); -+ order->name = xstrdup ("BootOrder"); -+ efi_error_clear (); -+ } -+ -+ /* Delete old entries from the same distributor. */ -+ FOR_LIST_ELEMENTS (entry, entries) -+ { -+ efi_load_option *load_option = (efi_load_option *) entry->data; -+ const char *label; -+ -+ if (entry->num < 0) -+ continue; -+ label = (const char *) efi_loadopt_desc (load_option, entry->data_size); -+ if (strcasecmp (label, efi_distributor) != 0) -+ continue; -+ -+ /* To avoid problems with some firmware implementations, reuse the first -+ matching variable we find rather than deleting and recreating it. */ -+ if (entry_num == -1) -+ entry_num = entry->num; -+ else -+ { -+ grub_util_info ("deleting superfluous EFI variable %s (%s)", -+ entry->name, label); -+ rc = efi_del_variable (EFI_GLOBAL_GUID, entry->name); -+ if (rc < 0) -+ { -+ grub_util_warn (_("Cannot delete EFI variable %s"), entry->name); -+ goto err; -+ } -+ } -+ -+ remove_from_boot_order (order, (uint16_t) entry->num); -+ } -+ -+ if (entry_num == -1) -+ entry_num = find_free_boot_num (entries); -+ entry = make_boot_variable (entry_num, efidir_disk, efidir_part, -+ efifile_path, efi_distributor); -+ if (!entry) -+ goto err; -+ -+ grub_util_info ("setting EFI variable %s", entry->name); -+ rc = set_efi_variable (entry->name, entry); -+ if (rc < 0) -+ goto err; -+ -+ add_to_boot_order (order, (uint16_t) entry_num); -+ -+ grub_util_info ("setting EFI variable BootOrder"); -+ rc = set_efi_variable ("BootOrder", order); -+ if (rc < 0) -+ goto err; -+ -+ return 0; -+ -+err: -+ show_efi_errors (); -+ return errno; -+} -+ -+#endif /* HAVE_EFIVAR */ -diff --git a/grub-core/osdep/unix/platform.c b/grub-core/osdep/unix/platform.c -index 9c439326a..b561174ea 100644 ---- a/grub-core/osdep/unix/platform.c -+++ b/grub-core/osdep/unix/platform.c -@@ -19,15 +19,12 @@ - #include - - #include --#include - #include - #include - #include - #include - #include --#include - #include --#include - - static char * - get_ofpathname (const char *dev) -@@ -78,102 +75,19 @@ get_ofpathname (const char *dev) - dev); - } - --static int --grub_install_remove_efi_entries_by_distributor (const char *efi_distributor) --{ -- int fd; -- pid_t pid = grub_util_exec_pipe ((const char * []){ "efibootmgr", NULL }, &fd); -- char *line = NULL; -- size_t len = 0; -- int rc = 0; -- -- if (!pid) -- { -- grub_util_warn (_("Unable to open stream from %s: %s"), -- "efibootmgr", strerror (errno)); -- return errno; -- } -- -- FILE *fp = fdopen (fd, "r"); -- if (!fp) -- { -- grub_util_warn (_("Unable to open stream from %s: %s"), -- "efibootmgr", strerror (errno)); -- return errno; -- } -- -- line = xmalloc (80); -- len = 80; -- while (1) -- { -- int ret; -- char *bootnum; -- ret = getline (&line, &len, fp); -- if (ret == -1) -- break; -- if (grub_memcmp (line, "Boot", sizeof ("Boot") - 1) != 0 -- || line[sizeof ("Boot") - 1] < '0' -- || line[sizeof ("Boot") - 1] > '9') -- continue; -- if (!strcasestr (line, efi_distributor)) -- continue; -- bootnum = line + sizeof ("Boot") - 1; -- bootnum[4] = '\0'; -- if (!verbosity) -- rc = grub_util_exec ((const char * []){ "efibootmgr", "-q", -- "-b", bootnum, "-B", NULL }); -- else -- rc = grub_util_exec ((const char * []){ "efibootmgr", -- "-b", bootnum, "-B", NULL }); -- } -- -- free (line); -- return rc; --} -- - int - grub_install_register_efi (grub_device_t efidir_grub_dev, - const char *efifile_path, - const char *efi_distributor) - { -- const char * efidir_disk; -- int efidir_part; -- int ret; -- efidir_disk = grub_util_biosdisk_get_osdev (efidir_grub_dev->disk); -- efidir_part = efidir_grub_dev->disk->partition ? efidir_grub_dev->disk->partition->number + 1 : 1; -- -- if (grub_util_exec_redirect_null ((const char * []){ "efibootmgr", "--version", NULL })) -- { -- /* TRANSLATORS: This message is shown when required executable `%s' -- isn't found. */ -- grub_util_error (_("%s: not found"), "efibootmgr"); -- } -- -- /* On Linux, we need the efivars kernel modules. */ --#ifdef __linux__ -- grub_util_exec ((const char * []){ "modprobe", "-q", "efivars", NULL }); -+#ifdef HAVE_EFIVAR -+ return grub_install_efivar_register_efi (efidir_grub_dev, efifile_path, -+ efi_distributor); -+#else -+ grub_util_error ("%s", -+ _("GRUB was not built with efivar support; " -+ "cannot register EFI boot entry")); - #endif -- /* Delete old entries from the same distributor. */ -- ret = grub_install_remove_efi_entries_by_distributor (efi_distributor); -- if (ret) -- return ret; -- -- char *efidir_part_str = xasprintf ("%d", efidir_part); -- -- if (!verbosity) -- ret = grub_util_exec ((const char * []){ "efibootmgr", "-q", -- "-c", "-d", efidir_disk, -- "-p", efidir_part_str, "-w", -- "-L", efi_distributor, "-l", -- efifile_path, NULL }); -- else -- ret = grub_util_exec ((const char * []){ "efibootmgr", -- "-c", "-d", efidir_disk, -- "-p", efidir_part_str, "-w", -- "-L", efi_distributor, "-l", -- efifile_path, NULL }); -- free (efidir_part_str); -- return ret; - } - - void -diff --git a/include/grub/util/install.h b/include/grub/util/install.h -index 8aeb5c4f2..a521f1663 100644 ---- a/include/grub/util/install.h -+++ b/include/grub/util/install.h -@@ -219,6 +219,11 @@ grub_install_get_default_x86_platform (void); - const char * - grub_install_get_default_powerpc_machtype (void); - -+int -+grub_install_efivar_register_efi (grub_device_t efidir_grub_dev, -+ const char *efifile_path, -+ const char *efi_distributor); -+ - int - grub_install_register_efi (grub_device_t efidir_grub_dev, - const char *efifile_path, -diff --git a/util/grub-install.c b/util/grub-install.c -index ba06e1350..fdec5dd83 100644 ---- a/util/grub-install.c -+++ b/util/grub-install.c -@@ -2061,7 +2061,7 @@ main (int argc, char *argv[]) - "\\System\\Library\\CoreServices", - efi_distributor); - if (ret) -- grub_util_error (_("efibootmgr failed to register the boot entry: %s"), -+ grub_util_error (_("failed to register the EFI boot entry: %s"), - strerror (ret)); - } - -@@ -2175,7 +2175,7 @@ main (int argc, char *argv[]) - ret = grub_install_register_efi (efidir_grub_dev, - efifile_path, efi_distributor); - if (ret) -- grub_util_error (_("efibootmgr failed to register the boot entry: %s"), -+ grub_util_error (_("failed to register the EFI boot entry: %s"), - strerror (ret)); - } - break; diff --git a/patches/grub/2.04/efinet-set-dns-from-uefi-proto.patch b/patches/grub/2.04/efinet-set-dns-from-uefi-proto.patch deleted file mode 100644 index 163d10bd1..000000000 --- a/patches/grub/2.04/efinet-set-dns-from-uefi-proto.patch +++ /dev/null @@ -1,339 +0,0 @@ -From b9b962cbf2657ee5912b6951654c6c6e1965fc3e Mon Sep 17 00:00:00 2001 -From: Michael Chang -Date: Thu, 27 Oct 2016 17:43:21 -0400 -Subject: efinet: Setting DNS server from UEFI protocol - -In the URI device path node, any name rahter than address can be used for -looking up the resources so that DNS service become needed to get answer of the -name's address. Unfortunately the DNS is not defined in any of the device path -nodes so that we use the EFI_IP4_CONFIG2_PROTOCOL and EFI_IP6_CONFIG_PROTOCOL -to obtain it. - -These two protcols are defined the sections of UEFI specification. - - 27.5 EFI IPv4 Configuration II Protocol - 27.7 EFI IPv6 Configuration Protocol - -include/grub/efi/api.h: -Add new structure and protocol UUID of EFI_IP4_CONFIG2_PROTOCOL and -EFI_IP6_CONFIG_PROTOCOL. - -grub-core/net/drivers/efi/efinet.c: -Use the EFI_IP4_CONFIG2_PROTOCOL and EFI_IP6_CONFIG_PROTOCOL to obtain the list -of DNS server address for IPv4 and IPv6 respectively. The address of DNS -servers is structured into DHCPACK packet and feed into the same DHCP packet -processing functions to ensure the network interface is setting up the same way -it used to be. - -Signed-off-by: Michael Chang -Signed-off-by: Ken Lin - -Patch-Name: efinet-set-dns-from-uefi-proto.patch ---- - grub-core/net/drivers/efi/efinet.c | 163 +++++++++++++++++++++++++++++ - include/grub/efi/api.h | 76 ++++++++++++++ - 2 files changed, 239 insertions(+) - -diff --git a/grub-core/net/drivers/efi/efinet.c b/grub-core/net/drivers/efi/efinet.c -index 2d3b00f0e..82a28fb6e 100644 ---- a/grub-core/net/drivers/efi/efinet.c -+++ b/grub-core/net/drivers/efi/efinet.c -@@ -30,6 +30,8 @@ GRUB_MOD_LICENSE ("GPLv3+"); - /* GUID. */ - static grub_efi_guid_t net_io_guid = GRUB_EFI_SIMPLE_NETWORK_GUID; - static grub_efi_guid_t pxe_io_guid = GRUB_EFI_PXE_GUID; -+static grub_efi_guid_t ip4_config_guid = GRUB_EFI_IP4_CONFIG2_PROTOCOL_GUID; -+static grub_efi_guid_t ip6_config_guid = GRUB_EFI_IP6_CONFIG_PROTOCOL_GUID; - - static grub_err_t - send_card_buffer (struct grub_net_card *dev, -@@ -325,6 +327,125 @@ grub_efinet_findcards (void) - grub_free (handles); - } - -+static grub_efi_handle_t -+grub_efi_locate_device_path (grub_efi_guid_t *protocol, grub_efi_device_path_t *device_path, -+ grub_efi_device_path_t **r_device_path) -+{ -+ grub_efi_handle_t handle; -+ grub_efi_status_t status; -+ -+ status = efi_call_3 (grub_efi_system_table->boot_services->locate_device_path, -+ protocol, &device_path, &handle); -+ -+ if (status != GRUB_EFI_SUCCESS) -+ return 0; -+ -+ if (r_device_path) -+ *r_device_path = device_path; -+ -+ return handle; -+} -+ -+static grub_efi_ipv4_address_t * -+grub_dns_server_ip4_address (grub_efi_device_path_t *dp, grub_efi_uintn_t *num_dns) -+{ -+ grub_efi_handle_t hnd; -+ grub_efi_status_t status; -+ grub_efi_ip4_config2_protocol_t *conf; -+ grub_efi_ipv4_address_t *addrs; -+ grub_efi_uintn_t data_size = 1 * sizeof (grub_efi_ipv4_address_t); -+ -+ hnd = grub_efi_locate_device_path (&ip4_config_guid, dp, NULL); -+ -+ if (!hnd) -+ return 0; -+ -+ conf = grub_efi_open_protocol (hnd, &ip4_config_guid, -+ GRUB_EFI_OPEN_PROTOCOL_GET_PROTOCOL); -+ -+ if (!conf) -+ return 0; -+ -+ addrs = grub_malloc (data_size); -+ if (!addrs) -+ return 0; -+ -+ status = efi_call_4 (conf->get_data, conf, -+ GRUB_EFI_IP4_CONFIG2_DATA_TYPE_DNSSERVER, -+ &data_size, addrs); -+ -+ if (status == GRUB_EFI_BUFFER_TOO_SMALL) -+ { -+ grub_free (addrs); -+ addrs = grub_malloc (data_size); -+ if (!addrs) -+ return 0; -+ -+ status = efi_call_4 (conf->get_data, conf, -+ GRUB_EFI_IP4_CONFIG2_DATA_TYPE_DNSSERVER, -+ &data_size, addrs); -+ } -+ -+ if (status != GRUB_EFI_SUCCESS) -+ { -+ grub_free (addrs); -+ return 0; -+ } -+ -+ *num_dns = data_size / sizeof (grub_efi_ipv4_address_t); -+ return addrs; -+} -+ -+static grub_efi_ipv6_address_t * -+grub_dns_server_ip6_address (grub_efi_device_path_t *dp, grub_efi_uintn_t *num_dns) -+{ -+ grub_efi_handle_t hnd; -+ grub_efi_status_t status; -+ grub_efi_ip6_config_protocol_t *conf; -+ grub_efi_ipv6_address_t *addrs; -+ grub_efi_uintn_t data_size = 1 * sizeof (grub_efi_ipv6_address_t); -+ -+ hnd = grub_efi_locate_device_path (&ip6_config_guid, dp, NULL); -+ -+ if (!hnd) -+ return 0; -+ -+ conf = grub_efi_open_protocol (hnd, &ip6_config_guid, -+ GRUB_EFI_OPEN_PROTOCOL_GET_PROTOCOL); -+ -+ if (!conf) -+ return 0; -+ -+ addrs = grub_malloc (data_size); -+ if (!addrs) -+ return 0; -+ -+ status = efi_call_4 (conf->get_data, conf, -+ GRUB_EFI_IP6_CONFIG_DATA_TYPE_DNSSERVER, -+ &data_size, addrs); -+ -+ if (status == GRUB_EFI_BUFFER_TOO_SMALL) -+ { -+ grub_free (addrs); -+ addrs = grub_malloc (data_size); -+ if (!addrs) -+ return 0; -+ -+ status = efi_call_4 (conf->get_data, conf, -+ GRUB_EFI_IP6_CONFIG_DATA_TYPE_DNSSERVER, -+ &data_size, addrs); -+ } -+ -+ if (status != GRUB_EFI_SUCCESS) -+ { -+ grub_free (addrs); -+ return 0; -+ } -+ -+ *num_dns = data_size / sizeof (grub_efi_ipv6_address_t); -+ return addrs; -+} -+ - static struct grub_net_buff * - grub_efinet_create_dhcp_ack_from_device_path (grub_efi_device_path_t *dp, int *use_ipv6) - { -@@ -377,6 +498,8 @@ grub_efinet_create_dhcp_ack_from_device_path (grub_efi_device_path_t *dp, int *u - grub_efi_ipv4_device_path_t *ipv4 = (grub_efi_ipv4_device_path_t *) ldp; - struct grub_net_bootp_packet *bp; - grub_uint8_t *ptr; -+ grub_efi_ipv4_address_t *dns; -+ grub_efi_uintn_t num_dns; - - bp = (struct grub_net_bootp_packet *) nb->tail; - err = grub_netbuff_put (nb, sizeof (*bp) + 4); -@@ -438,6 +561,25 @@ grub_efinet_create_dhcp_ack_from_device_path (grub_efi_device_path_t *dp, int *u - *ptr++ = sizeof ("HTTPClient") - 1; - grub_memcpy (ptr, "HTTPClient", sizeof ("HTTPClient") - 1); - -+ dns = grub_dns_server_ip4_address (dp, &num_dns); -+ if (dns) -+ { -+ grub_efi_uintn_t size_dns = sizeof (*dns) * num_dns; -+ -+ ptr = nb->tail; -+ err = grub_netbuff_put (nb, size_dns + 2); -+ if (err) -+ { -+ grub_free (ddp); -+ grub_netbuff_free (nb); -+ return NULL; -+ } -+ *ptr++ = GRUB_NET_BOOTP_DNS; -+ *ptr++ = size_dns; -+ grub_memcpy (ptr, dns, size_dns); -+ grub_free (dns); -+ } -+ - ptr = nb->tail; - err = grub_netbuff_put (nb, 1); - if (err) -@@ -470,6 +612,8 @@ grub_efinet_create_dhcp_ack_from_device_path (grub_efi_device_path_t *dp, int *u - struct grub_net_dhcp6_option *opt; - struct grub_net_dhcp6_option_iana *iana; - struct grub_net_dhcp6_option_iaaddr *iaaddr; -+ grub_efi_ipv6_address_t *dns; -+ grub_efi_uintn_t num_dns; - - d6p = (struct grub_net_dhcp6_packet *)nb->tail; - err = grub_netbuff_put (nb, sizeof(*d6p)); -@@ -533,6 +677,25 @@ grub_efinet_create_dhcp_ack_from_device_path (grub_efi_device_path_t *dp, int *u - opt->len = grub_cpu_to_be16 (uri_len); - grub_memcpy (opt->data, uri_dp->uri, uri_len); - -+ dns = grub_dns_server_ip6_address (dp, &num_dns); -+ if (dns) -+ { -+ grub_efi_uintn_t size_dns = sizeof (*dns) * num_dns; -+ -+ opt = (struct grub_net_dhcp6_option *)nb->tail; -+ err = grub_netbuff_put (nb, sizeof(*opt) + size_dns); -+ if (err) -+ { -+ grub_free (ddp); -+ grub_netbuff_free (nb); -+ return NULL; -+ } -+ opt->code = grub_cpu_to_be16_compile_time (GRUB_NET_DHCP6_OPTION_DNS_SERVERS); -+ opt->len = grub_cpu_to_be16 (size_dns); -+ grub_memcpy (opt->data, dns, size_dns); -+ grub_free (dns); -+ } -+ - *use_ipv6 = 1; - } - -diff --git a/include/grub/efi/api.h b/include/grub/efi/api.h -index 664cea37b..75befd10e 100644 ---- a/include/grub/efi/api.h -+++ b/include/grub/efi/api.h -@@ -334,6 +334,16 @@ - { 0x8B, 0x8C, 0xE2, 0x1B, 0x01, 0xAE, 0xF2, 0xB7 } \ - } - -+#define GRUB_EFI_IP4_CONFIG2_PROTOCOL_GUID \ -+ { 0x5b446ed1, 0xe30b, 0x4faa, \ -+ { 0x87, 0x1a, 0x36, 0x54, 0xec, 0xa3, 0x60, 0x80 } \ -+ } -+ -+#define GRUB_EFI_IP6_CONFIG_PROTOCOL_GUID \ -+ { 0x937fe521, 0x95ae, 0x4d1a, \ -+ { 0x89, 0x29, 0x48, 0xbc, 0xd9, 0x0a, 0xd3, 0x1a } \ -+ } -+ - struct grub_efi_sal_system_table - { - grub_uint32_t signature; -@@ -1749,6 +1759,72 @@ struct grub_efi_block_io - }; - typedef struct grub_efi_block_io grub_efi_block_io_t; - -+enum grub_efi_ip4_config2_data_type { -+ GRUB_EFI_IP4_CONFIG2_DATA_TYPE_INTERFACEINFO, -+ GRUB_EFI_IP4_CONFIG2_DATA_TYPE_POLICY, -+ GRUB_EFI_IP4_CONFIG2_DATA_TYPE_MANUAL_ADDRESS, -+ GRUB_EFI_IP4_CONFIG2_DATA_TYPE_GATEWAY, -+ GRUB_EFI_IP4_CONFIG2_DATA_TYPE_DNSSERVER, -+ GRUB_EFI_IP4_CONFIG2_DATA_TYPE_MAXIMUM -+}; -+typedef enum grub_efi_ip4_config2_data_type grub_efi_ip4_config2_data_type_t; -+ -+struct grub_efi_ip4_config2_protocol -+{ -+ grub_efi_status_t (*set_data) (struct grub_efi_ip4_config2_protocol *this, -+ grub_efi_ip4_config2_data_type_t data_type, -+ grub_efi_uintn_t data_size, -+ void *data); -+ -+ grub_efi_status_t (*get_data) (struct grub_efi_ip4_config2_protocol *this, -+ grub_efi_ip4_config2_data_type_t data_type, -+ grub_efi_uintn_t *data_size, -+ void *data); -+ -+ grub_efi_status_t (*register_data_notify) (struct grub_efi_ip4_config2_protocol *this, -+ grub_efi_ip4_config2_data_type_t data_type, -+ grub_efi_event_t event); -+ -+ grub_efi_status_t (*unregister_datanotify) (struct grub_efi_ip4_config2_protocol *this, -+ grub_efi_ip4_config2_data_type_t data_type, -+ grub_efi_event_t event); -+}; -+typedef struct grub_efi_ip4_config2_protocol grub_efi_ip4_config2_protocol_t; -+ -+enum grub_efi_ip6_config_data_type { -+ GRUB_EFI_IP6_CONFIG_DATA_TYPE_INTERFACEINFO, -+ GRUB_EFI_IP6_CONFIG_DATA_TYPE_ALT_INTERFACEID, -+ GRUB_EFI_IP6_CONFIG_DATA_TYPE_POLICY, -+ GRUB_EFI_IP6_CONFIG_DATA_TYPE_DUP_ADDR_DETECT_TRANSMITS, -+ GRUB_EFI_IP6_CONFIG_DATA_TYPE_MANUAL_ADDRESS, -+ GRUB_EFI_IP6_CONFIG_DATA_TYPE_GATEWAY, -+ GRUB_EFI_IP6_CONFIG_DATA_TYPE_DNSSERVER, -+ GRUB_EFI_IP6_CONFIG_DATA_TYPE_MAXIMUM -+}; -+typedef enum grub_efi_ip6_config_data_type grub_efi_ip6_config_data_type_t; -+ -+struct grub_efi_ip6_config_protocol -+{ -+ grub_efi_status_t (*set_data) (struct grub_efi_ip6_config_protocol *this, -+ grub_efi_ip6_config_data_type_t data_type, -+ grub_efi_uintn_t data_size, -+ void *data); -+ -+ grub_efi_status_t (*get_data) (struct grub_efi_ip6_config_protocol *this, -+ grub_efi_ip6_config_data_type_t data_type, -+ grub_efi_uintn_t *data_size, -+ void *data); -+ -+ grub_efi_status_t (*register_data_notify) (struct grub_efi_ip6_config_protocol *this, -+ grub_efi_ip6_config_data_type_t data_type, -+ grub_efi_event_t event); -+ -+ grub_efi_status_t (*unregister_datanotify) (struct grub_efi_ip6_config_protocol *this, -+ grub_efi_ip6_config_data_type_t data_type, -+ grub_efi_event_t event); -+}; -+typedef struct grub_efi_ip6_config_protocol grub_efi_ip6_config_protocol_t; -+ - #if (GRUB_TARGET_SIZEOF_VOID_P == 4) || defined (__ia64__) \ - || defined (__aarch64__) || defined (__MINGW64__) || defined (__CYGWIN__) \ - || defined(__riscv) diff --git a/patches/grub/2.04/efinet-set-network-from-uefi-devpath.patch b/patches/grub/2.04/efinet-set-network-from-uefi-devpath.patch deleted file mode 100644 index 39083bbab..000000000 --- a/patches/grub/2.04/efinet-set-network-from-uefi-devpath.patch +++ /dev/null @@ -1,388 +0,0 @@ -From 9d4c6679960366658950f8727497a85cf3d26fc8 Mon Sep 17 00:00:00 2001 -From: Michael Chang -Date: Thu, 27 Oct 2016 17:43:05 -0400 -Subject: efinet: Setting network from UEFI device path - -The PXE Base Code protocol used to obtain cached PXE DHCPACK packet is no -longer provided for HTTP Boot. Instead, we have to get the HTTP boot -information from the device path nodes defined in following UEFI Specification -sections. - - 9.3.5.12 IPv4 Device Path - 9.3.5.13 IPv6 Device Path - 9.3.5.23 Uniform Resource Identifiers (URI) Device Path - -This patch basically does: - -include/grub/efi/api.h: -Add new structure of Uniform Resource Identifiers (URI) Device Path - -grub-core/net/drivers/efi/efinet.c: -Check if PXE Base Code is available, if not it will try to obtain the netboot -information from the device path where the image booted from. The DHCPACK -packet is recoverd from the information in device patch and feed into the same -DHCP packet processing functions to ensure the network interface is setting up -the same way it used to be. - -Signed-off-by: Michael Chang -Signed-off-by: Ken Lin - -Patch-Name: efinet-set-network-from-uefi-devpath.patch ---- - grub-core/net/drivers/efi/efinet.c | 268 ++++++++++++++++++++++++++++- - include/grub/efi/api.h | 11 ++ - 2 files changed, 270 insertions(+), 9 deletions(-) - -diff --git a/grub-core/net/drivers/efi/efinet.c b/grub-core/net/drivers/efi/efinet.c -index fc90415f2..2d3b00f0e 100644 ---- a/grub-core/net/drivers/efi/efinet.c -+++ b/grub-core/net/drivers/efi/efinet.c -@@ -23,6 +23,7 @@ - #include - #include - #include -+#include - - GRUB_MOD_LICENSE ("GPLv3+"); - -@@ -324,6 +325,221 @@ grub_efinet_findcards (void) - grub_free (handles); - } - -+static struct grub_net_buff * -+grub_efinet_create_dhcp_ack_from_device_path (grub_efi_device_path_t *dp, int *use_ipv6) -+{ -+ grub_efi_uint16_t uri_len; -+ grub_efi_device_path_t *ldp, *ddp; -+ grub_efi_uri_device_path_t *uri_dp; -+ struct grub_net_buff *nb; -+ grub_err_t err; -+ -+ ddp = grub_efi_duplicate_device_path (dp); -+ ldp = grub_efi_find_last_device_path (ddp); -+ -+ if (GRUB_EFI_DEVICE_PATH_TYPE (ldp) != GRUB_EFI_MESSAGING_DEVICE_PATH_TYPE -+ || GRUB_EFI_DEVICE_PATH_SUBTYPE (ldp) != GRUB_EFI_URI_DEVICE_PATH_SUBTYPE) -+ { -+ grub_free (ddp); -+ return NULL; -+ } -+ -+ uri_len = GRUB_EFI_DEVICE_PATH_LENGTH (ldp) > 4 ? GRUB_EFI_DEVICE_PATH_LENGTH (ldp) - 4 : 0; -+ -+ if (!uri_len) -+ { -+ grub_free (ddp); -+ return NULL; -+ } -+ -+ uri_dp = (grub_efi_uri_device_path_t *) ldp; -+ -+ ldp->type = GRUB_EFI_END_DEVICE_PATH_TYPE; -+ ldp->subtype = GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE; -+ ldp->length = sizeof (*ldp); -+ -+ ldp = grub_efi_find_last_device_path (ddp); -+ -+ if (GRUB_EFI_DEVICE_PATH_TYPE (ldp) != GRUB_EFI_MESSAGING_DEVICE_PATH_TYPE -+ || (GRUB_EFI_DEVICE_PATH_SUBTYPE (ldp) != GRUB_EFI_IPV4_DEVICE_PATH_SUBTYPE -+ && GRUB_EFI_DEVICE_PATH_SUBTYPE (ldp) != GRUB_EFI_IPV6_DEVICE_PATH_SUBTYPE)) -+ { -+ grub_free (ddp); -+ return NULL; -+ } -+ -+ nb = grub_netbuff_alloc (512); -+ if (!nb) -+ return NULL; -+ -+ if (GRUB_EFI_DEVICE_PATH_SUBTYPE (ldp) == GRUB_EFI_IPV4_DEVICE_PATH_SUBTYPE) -+ { -+ grub_efi_ipv4_device_path_t *ipv4 = (grub_efi_ipv4_device_path_t *) ldp; -+ struct grub_net_bootp_packet *bp; -+ grub_uint8_t *ptr; -+ -+ bp = (struct grub_net_bootp_packet *) nb->tail; -+ err = grub_netbuff_put (nb, sizeof (*bp) + 4); -+ if (err) -+ { -+ grub_free (ddp); -+ grub_netbuff_free (nb); -+ return NULL; -+ } -+ -+ if (sizeof(bp->boot_file) < uri_len) -+ { -+ grub_free (ddp); -+ grub_netbuff_free (nb); -+ return NULL; -+ } -+ grub_memcpy (bp->boot_file, uri_dp->uri, uri_len); -+ grub_memcpy (&bp->your_ip, ipv4->local_ip_address, sizeof (bp->your_ip)); -+ grub_memcpy (&bp->server_ip, ipv4->remote_ip_address, sizeof (bp->server_ip)); -+ -+ bp->vendor[0] = GRUB_NET_BOOTP_RFC1048_MAGIC_0; -+ bp->vendor[1] = GRUB_NET_BOOTP_RFC1048_MAGIC_1; -+ bp->vendor[2] = GRUB_NET_BOOTP_RFC1048_MAGIC_2; -+ bp->vendor[3] = GRUB_NET_BOOTP_RFC1048_MAGIC_3; -+ -+ ptr = nb->tail; -+ err = grub_netbuff_put (nb, sizeof (ipv4->subnet_mask) + 2); -+ if (err) -+ { -+ grub_free (ddp); -+ grub_netbuff_free (nb); -+ return NULL; -+ } -+ *ptr++ = GRUB_NET_BOOTP_NETMASK; -+ *ptr++ = sizeof (ipv4->subnet_mask); -+ grub_memcpy (ptr, ipv4->subnet_mask, sizeof (ipv4->subnet_mask)); -+ -+ ptr = nb->tail; -+ err = grub_netbuff_put (nb, sizeof (ipv4->gateway_ip_address) + 2); -+ if (err) -+ { -+ grub_free (ddp); -+ grub_netbuff_free (nb); -+ return NULL; -+ } -+ *ptr++ = GRUB_NET_BOOTP_ROUTER; -+ *ptr++ = sizeof (ipv4->gateway_ip_address); -+ grub_memcpy (ptr, ipv4->gateway_ip_address, sizeof (ipv4->gateway_ip_address)); -+ -+ ptr = nb->tail; -+ err = grub_netbuff_put (nb, sizeof ("HTTPClient") + 1); -+ if (err) -+ { -+ grub_free (ddp); -+ grub_netbuff_free (nb); -+ return NULL; -+ } -+ *ptr++ = GRUB_NET_BOOTP_VENDOR_CLASS_IDENTIFIER; -+ *ptr++ = sizeof ("HTTPClient") - 1; -+ grub_memcpy (ptr, "HTTPClient", sizeof ("HTTPClient") - 1); -+ -+ ptr = nb->tail; -+ err = grub_netbuff_put (nb, 1); -+ if (err) -+ { -+ grub_free (ddp); -+ grub_netbuff_free (nb); -+ return NULL; -+ } -+ *ptr = GRUB_NET_BOOTP_END; -+ *use_ipv6 = 0; -+ -+ ldp->type = GRUB_EFI_END_DEVICE_PATH_TYPE; -+ ldp->subtype = GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE; -+ ldp->length = sizeof (*ldp); -+ ldp = grub_efi_find_last_device_path (ddp); -+ -+ if (GRUB_EFI_DEVICE_PATH_SUBTYPE (ldp) == GRUB_EFI_MAC_ADDRESS_DEVICE_PATH_SUBTYPE) -+ { -+ grub_efi_mac_address_device_path_t *mac = (grub_efi_mac_address_device_path_t *) ldp; -+ bp->hw_type = mac->if_type; -+ bp->hw_len = sizeof (bp->mac_addr); -+ grub_memcpy (bp->mac_addr, mac->mac_address, bp->hw_len); -+ } -+ } -+ else -+ { -+ grub_efi_ipv6_device_path_t *ipv6 = (grub_efi_ipv6_device_path_t *) ldp; -+ -+ struct grub_net_dhcp6_packet *d6p; -+ struct grub_net_dhcp6_option *opt; -+ struct grub_net_dhcp6_option_iana *iana; -+ struct grub_net_dhcp6_option_iaaddr *iaaddr; -+ -+ d6p = (struct grub_net_dhcp6_packet *)nb->tail; -+ err = grub_netbuff_put (nb, sizeof(*d6p)); -+ if (err) -+ { -+ grub_free (ddp); -+ grub_netbuff_free (nb); -+ return NULL; -+ } -+ d6p->message_type = GRUB_NET_DHCP6_REPLY; -+ -+ opt = (struct grub_net_dhcp6_option *)nb->tail; -+ err = grub_netbuff_put (nb, sizeof(*opt)); -+ if (err) -+ { -+ grub_free (ddp); -+ grub_netbuff_free (nb); -+ return NULL; -+ } -+ opt->code = grub_cpu_to_be16_compile_time (GRUB_NET_DHCP6_OPTION_IA_NA); -+ opt->len = grub_cpu_to_be16_compile_time (sizeof(*iana) + sizeof(*opt) + sizeof(*iaaddr)); -+ -+ err = grub_netbuff_put (nb, sizeof(*iana)); -+ if (err) -+ { -+ grub_free (ddp); -+ grub_netbuff_free (nb); -+ return NULL; -+ } -+ -+ opt = (struct grub_net_dhcp6_option *)nb->tail; -+ err = grub_netbuff_put (nb, sizeof(*opt)); -+ if (err) -+ { -+ grub_free (ddp); -+ grub_netbuff_free (nb); -+ return NULL; -+ } -+ opt->code = grub_cpu_to_be16_compile_time (GRUB_NET_DHCP6_OPTION_IAADDR); -+ opt->len = grub_cpu_to_be16_compile_time (sizeof (*iaaddr)); -+ -+ iaaddr = (struct grub_net_dhcp6_option_iaaddr *)nb->tail; -+ err = grub_netbuff_put (nb, sizeof(*iaaddr)); -+ if (err) -+ { -+ grub_free (ddp); -+ grub_netbuff_free (nb); -+ return NULL; -+ } -+ grub_memcpy (iaaddr->addr, ipv6->local_ip_address, sizeof(ipv6->local_ip_address)); -+ -+ opt = (struct grub_net_dhcp6_option *)nb->tail; -+ err = grub_netbuff_put (nb, sizeof(*opt) + uri_len); -+ if (err) -+ { -+ grub_free (ddp); -+ grub_netbuff_free (nb); -+ return NULL; -+ } -+ opt->code = grub_cpu_to_be16_compile_time (GRUB_NET_DHCP6_OPTION_BOOTFILE_URL); -+ opt->len = grub_cpu_to_be16 (uri_len); -+ grub_memcpy (opt->data, uri_dp->uri, uri_len); -+ -+ *use_ipv6 = 1; -+ } -+ -+ grub_free (ddp); -+ return nb; -+} -+ - static void - grub_efi_net_config_real (grub_efi_handle_t hnd, char **device, - char **path) -@@ -340,6 +556,11 @@ grub_efi_net_config_real (grub_efi_handle_t hnd, char **device, - grub_efi_device_path_t *cdp; - struct grub_efi_pxe *pxe; - struct grub_efi_pxe_mode *pxe_mode; -+ grub_uint8_t *packet_buf; -+ grub_size_t packet_bufsz ; -+ int ipv6; -+ struct grub_net_buff *nb = NULL; -+ - if (card->driver != &efidriver) - continue; - cdp = grub_efi_get_device_path (card->efi_handle); -@@ -359,11 +580,21 @@ grub_efi_net_config_real (grub_efi_handle_t hnd, char **device, - ldp = grub_efi_find_last_device_path (dp); - if (GRUB_EFI_DEVICE_PATH_TYPE (ldp) != GRUB_EFI_MESSAGING_DEVICE_PATH_TYPE - || (GRUB_EFI_DEVICE_PATH_SUBTYPE (ldp) != GRUB_EFI_IPV4_DEVICE_PATH_SUBTYPE -- && GRUB_EFI_DEVICE_PATH_SUBTYPE (ldp) != GRUB_EFI_IPV6_DEVICE_PATH_SUBTYPE)) -+ && GRUB_EFI_DEVICE_PATH_SUBTYPE (ldp) != GRUB_EFI_IPV6_DEVICE_PATH_SUBTYPE -+ && GRUB_EFI_DEVICE_PATH_SUBTYPE (ldp) != GRUB_EFI_URI_DEVICE_PATH_SUBTYPE)) - continue; - dup_dp = grub_efi_duplicate_device_path (dp); - if (!dup_dp) - continue; -+ -+ if (GRUB_EFI_DEVICE_PATH_SUBTYPE (ldp) == GRUB_EFI_URI_DEVICE_PATH_SUBTYPE) -+ { -+ dup_ldp = grub_efi_find_last_device_path (dup_dp); -+ dup_ldp->type = GRUB_EFI_END_DEVICE_PATH_TYPE; -+ dup_ldp->subtype = GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE; -+ dup_ldp->length = sizeof (*dup_ldp); -+ } -+ - dup_ldp = grub_efi_find_last_device_path (dup_dp); - dup_ldp->type = GRUB_EFI_END_DEVICE_PATH_TYPE; - dup_ldp->subtype = GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE; -@@ -375,16 +606,31 @@ grub_efi_net_config_real (grub_efi_handle_t hnd, char **device, - } - pxe = grub_efi_open_protocol (hnd, &pxe_io_guid, - GRUB_EFI_OPEN_PROTOCOL_GET_PROTOCOL); -- if (! pxe) -- continue; -- pxe_mode = pxe->mode; -+ if (!pxe) -+ { -+ nb = grub_efinet_create_dhcp_ack_from_device_path (dp, &ipv6); -+ if (!nb) -+ { -+ grub_print_error (); -+ continue; -+ } -+ packet_buf = nb->head; -+ packet_bufsz = nb->tail - nb->head; -+ } -+ else -+ { -+ pxe_mode = pxe->mode; -+ packet_buf = (grub_uint8_t *) &pxe_mode->dhcp_ack; -+ packet_bufsz = sizeof (pxe_mode->dhcp_ack); -+ ipv6 = pxe_mode->using_ipv6; -+ } - -- if (pxe_mode->using_ipv6) -+ if (ipv6) - { - grub_net_configure_by_dhcpv6_reply (card->name, card, 0, - (struct grub_net_dhcp6_packet *) -- &pxe_mode->dhcp_ack, -- sizeof (pxe_mode->dhcp_ack), -+ packet_buf, -+ packet_bufsz, - 1, device, path); - if (grub_errno) - grub_print_error (); -@@ -393,10 +639,14 @@ grub_efi_net_config_real (grub_efi_handle_t hnd, char **device, - { - grub_net_configure_by_dhcp_ack (card->name, card, 0, - (struct grub_net_bootp_packet *) -- &pxe_mode->dhcp_ack, -- sizeof (pxe_mode->dhcp_ack), -+ packet_buf, -+ packet_bufsz, - 1, device, path); - } -+ -+ if (nb) -+ grub_netbuff_free (nb); -+ - return; - } - } -diff --git a/include/grub/efi/api.h b/include/grub/efi/api.h -index ca6cdc159..664cea37b 100644 ---- a/include/grub/efi/api.h -+++ b/include/grub/efi/api.h -@@ -825,6 +825,8 @@ struct grub_efi_ipv4_device_path - grub_efi_uint16_t remote_port; - grub_efi_uint16_t protocol; - grub_efi_uint8_t static_ip_address; -+ grub_efi_ipv4_address_t gateway_ip_address; -+ grub_efi_ipv4_address_t subnet_mask; - } GRUB_PACKED; - typedef struct grub_efi_ipv4_device_path grub_efi_ipv4_device_path_t; - -@@ -879,6 +881,15 @@ struct grub_efi_sata_device_path - } GRUB_PACKED; - typedef struct grub_efi_sata_device_path grub_efi_sata_device_path_t; - -+#define GRUB_EFI_URI_DEVICE_PATH_SUBTYPE 24 -+ -+struct grub_efi_uri_device_path -+{ -+ grub_efi_device_path_t header; -+ grub_efi_uint8_t uri[0]; -+} GRUB_PACKED; -+typedef struct grub_efi_uri_device_path grub_efi_uri_device_path_t; -+ - #define GRUB_EFI_VENDOR_MESSAGING_DEVICE_PATH_SUBTYPE 10 - - /* Media Device Path. */ diff --git a/patches/grub/2.04/efinet-uefi-ipv6-pxe-support.patch b/patches/grub/2.04/efinet-uefi-ipv6-pxe-support.patch deleted file mode 100644 index e54aa78b7..000000000 --- a/patches/grub/2.04/efinet-uefi-ipv6-pxe-support.patch +++ /dev/null @@ -1,126 +0,0 @@ -From da20e93fb30294801f9ea0dd2917d945654174e1 Mon Sep 17 00:00:00 2001 -From: Michael Chang -Date: Thu, 27 Oct 2016 17:41:21 -0400 -Subject: efinet: UEFI IPv6 PXE support - -When grub2 image is booted from UEFI IPv6 PXE, the DHCPv6 Reply packet is -cached in firmware buffer which can be obtained by PXE Base Code protocol. The -network interface can be setup through the parameters in that obtained packet. - -Signed-off-by: Michael Chang -Signed-off-by: Ken Lin - -Patch-Name: efinet-uefi-ipv6-pxe-support.patch ---- - grub-core/net/drivers/efi/efinet.c | 24 ++++++++++--- - include/grub/efi/api.h | 55 +++++++++++++++++++++++++++++- - 2 files changed, 73 insertions(+), 6 deletions(-) - -diff --git a/grub-core/net/drivers/efi/efinet.c b/grub-core/net/drivers/efi/efinet.c -index 5388f952b..fc90415f2 100644 ---- a/grub-core/net/drivers/efi/efinet.c -+++ b/grub-core/net/drivers/efi/efinet.c -@@ -378,11 +378,25 @@ grub_efi_net_config_real (grub_efi_handle_t hnd, char **device, - if (! pxe) - continue; - pxe_mode = pxe->mode; -- grub_net_configure_by_dhcp_ack (card->name, card, 0, -- (struct grub_net_bootp_packet *) -- &pxe_mode->dhcp_ack, -- sizeof (pxe_mode->dhcp_ack), -- 1, device, path); -+ -+ if (pxe_mode->using_ipv6) -+ { -+ grub_net_configure_by_dhcpv6_reply (card->name, card, 0, -+ (struct grub_net_dhcp6_packet *) -+ &pxe_mode->dhcp_ack, -+ sizeof (pxe_mode->dhcp_ack), -+ 1, device, path); -+ if (grub_errno) -+ grub_print_error (); -+ } -+ else -+ { -+ grub_net_configure_by_dhcp_ack (card->name, card, 0, -+ (struct grub_net_bootp_packet *) -+ &pxe_mode->dhcp_ack, -+ sizeof (pxe_mode->dhcp_ack), -+ 1, device, path); -+ } - return; - } - } -diff --git a/include/grub/efi/api.h b/include/grub/efi/api.h -index addcbfa8f..ca6cdc159 100644 ---- a/include/grub/efi/api.h -+++ b/include/grub/efi/api.h -@@ -1452,14 +1452,67 @@ typedef struct grub_efi_simple_text_output_interface grub_efi_simple_text_output - - typedef grub_uint8_t grub_efi_pxe_packet_t[1472]; - -+typedef struct { -+ grub_uint8_t addr[4]; -+} grub_efi_pxe_ipv4_address_t; -+ -+typedef struct { -+ grub_uint8_t addr[16]; -+} grub_efi_pxe_ipv6_address_t; -+ -+typedef struct { -+ grub_uint8_t addr[32]; -+} grub_efi_pxe_mac_address_t; -+ -+typedef union { -+ grub_uint32_t addr[4]; -+ grub_efi_pxe_ipv4_address_t v4; -+ grub_efi_pxe_ipv6_address_t v6; -+} grub_efi_pxe_ip_address_t; -+ -+#define GRUB_EFI_PXE_BASE_CODE_MAX_IPCNT 8 -+typedef struct { -+ grub_uint8_t filters; -+ grub_uint8_t ip_cnt; -+ grub_uint16_t reserved; -+ grub_efi_pxe_ip_address_t ip_list[GRUB_EFI_PXE_BASE_CODE_MAX_IPCNT]; -+} grub_efi_pxe_ip_filter_t; -+ -+typedef struct { -+ grub_efi_pxe_ip_address_t ip_addr; -+ grub_efi_pxe_mac_address_t mac_addr; -+} grub_efi_pxe_arp_entry_t; -+ -+typedef struct { -+ grub_efi_pxe_ip_address_t ip_addr; -+ grub_efi_pxe_ip_address_t subnet_mask; -+ grub_efi_pxe_ip_address_t gw_addr; -+} grub_efi_pxe_route_entry_t; -+ -+ -+#define GRUB_EFI_PXE_BASE_CODE_MAX_ARP_ENTRIES 8 -+#define GRUB_EFI_PXE_BASE_CODE_MAX_ROUTE_ENTRIES 8 -+ - typedef struct grub_efi_pxe_mode - { -- grub_uint8_t unused[52]; -+ grub_uint8_t started; -+ grub_uint8_t ipv6_available; -+ grub_uint8_t ipv6_supported; -+ grub_uint8_t using_ipv6; -+ grub_uint8_t unused[16]; -+ grub_efi_pxe_ip_address_t station_ip; -+ grub_efi_pxe_ip_address_t subnet_mask; - grub_efi_pxe_packet_t dhcp_discover; - grub_efi_pxe_packet_t dhcp_ack; - grub_efi_pxe_packet_t proxy_offer; - grub_efi_pxe_packet_t pxe_discover; - grub_efi_pxe_packet_t pxe_reply; -+ grub_efi_pxe_packet_t pxe_bis_reply; -+ grub_efi_pxe_ip_filter_t ip_filter; -+ grub_uint32_t arp_cache_entries; -+ grub_efi_pxe_arp_entry_t arp_cache[GRUB_EFI_PXE_BASE_CODE_MAX_ARP_ENTRIES]; -+ grub_uint32_t route_table_entries; -+ grub_efi_pxe_route_entry_t route_table[GRUB_EFI_PXE_BASE_CODE_MAX_ROUTE_ENTRIES]; - } grub_efi_pxe_mode_t; - - typedef struct grub_efi_pxe diff --git a/patches/grub/2.04/emu-free-null.patch b/patches/grub/2.04/emu-free-null.patch deleted file mode 100644 index 466bcad18..000000000 --- a/patches/grub/2.04/emu-free-null.patch +++ /dev/null @@ -1,32 +0,0 @@ -From c0a2098a2d47a752f9416a655a7010973298f66f Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Sun, 19 Jul 2020 16:08:08 -0400 -Subject: emu: make grub_free(NULL) safe - -The grub_free() implementation in kern/mm.c safely handles NULL -pointers, and code at many places depends on this. We don't know that -the same is true on all host OSes, so we need to handle the same -behavior in grub-emu's implementation. - -Signed-off-by: Peter Jones -Reviewed-by: Darren Kenny - -Patch-Name: emu-free-null.patch ---- - grub-core/kern/emu/mm.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/grub-core/kern/emu/mm.c b/grub-core/kern/emu/mm.c -index 145b01d37..4d1046a21 100644 ---- a/grub-core/kern/emu/mm.c -+++ b/grub-core/kern/emu/mm.c -@@ -60,7 +60,8 @@ grub_zalloc (grub_size_t size) - void - grub_free (void *ptr) - { -- free (ptr); -+ if (ptr) -+ free (ptr); - } - - void * diff --git a/patches/grub/2.04/fix-lockdown.patch b/patches/grub/2.04/fix-lockdown.patch deleted file mode 100644 index 7bfcc18d7..000000000 --- a/patches/grub/2.04/fix-lockdown.patch +++ /dev/null @@ -1,45 +0,0 @@ -From ea65cb74601fd4c8229349d6d937d18033af796e Mon Sep 17 00:00:00 2001 -From: Luca Boccassi -Date: Tue, 15 May 2018 11:36:46 +0100 -Subject: Do not overwrite sentinel byte in boot_params, breaks lockdown - -grub currently copies the entire boot_params, which includes setting -sentinel byte to 0xff, which triggers sanitize_boot_params in the kernel -which in turn clears various boot_params variables, including the -indication that the bootloader chain is verified and thus the kernel -disables lockdown mode. According to the information on the Fedora bug -tracker, only the information from byte 0x1f1 is necessary, so start -copying from there instead. - -Author: Luca Boccassi -Bug-Fedora: https://bugzilla.redhat.com/show_bug.cgi?id=1418360 -Forwarded: no - -Patch-Name: fix-lockdown.patch ---- - grub-core/loader/i386/efi/linux.c | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - -diff --git a/grub-core/loader/i386/efi/linux.c b/grub-core/loader/i386/efi/linux.c -index 16372a0c8..34605dfed 100644 ---- a/grub-core/loader/i386/efi/linux.c -+++ b/grub-core/loader/i386/efi/linux.c -@@ -28,6 +28,7 @@ - #include - #include - #include -+#include - - GRUB_MOD_LICENSE ("GPLv3+"); - -@@ -334,7 +335,9 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - lh.code32_start = (grub_uint32_t)(grub_addr_t) kernel_mem; - } - -- grub_memcpy (params, &lh, 2 * 512); -+ /* do not overwrite below boot_params->hdr to avoid setting the sentinel byte */ -+ start = offsetof (struct linux_kernel_params, setup_sects); -+ grub_memcpy ((grub_uint8_t *)params + start, (grub_uint8_t *)&lh + start, 2 * 512 - start); - - params->type_of_loader = 0x21; - diff --git a/patches/grub/2.04/font-name-leak.patch b/patches/grub/2.04/font-name-leak.patch deleted file mode 100644 index 72fb53f85..000000000 --- a/patches/grub/2.04/font-name-leak.patch +++ /dev/null @@ -1,36 +0,0 @@ -From fcc11dc1e68192d50cfb914314fb5e2f0504c498 Mon Sep 17 00:00:00 2001 -From: Daniel Kiper -Date: Tue, 7 Jul 2020 15:36:26 +0200 -Subject: font: Do not load more than one NAME section - -The GRUB font file can have one NAME section only. Though if somebody -crafts a broken font file with many NAME sections and loads it then the -GRUB leaks memory. So, prevent against that by loading first NAME -section and failing in controlled way on following one. - -Reported-by: Chris Coulson -Signed-off-by: Daniel Kiper -Reviewed-by: Jan Setje-Eilers - -Patch-Name: font-name-leak.patch ---- - grub-core/font/font.c | 6 ++++++ - 1 file changed, 6 insertions(+) - -diff --git a/grub-core/font/font.c b/grub-core/font/font.c -index 5edb477ac..d09bb38d8 100644 ---- a/grub-core/font/font.c -+++ b/grub-core/font/font.c -@@ -532,6 +532,12 @@ grub_font_load (const char *filename) - if (grub_memcmp (section.name, FONT_FORMAT_SECTION_NAMES_FONT_NAME, - sizeof (FONT_FORMAT_SECTION_NAMES_FONT_NAME) - 1) == 0) - { -+ if (font->name != NULL) -+ { -+ grub_error (GRUB_ERR_BAD_FONT, "invalid font file: too many NAME sections"); -+ goto fail; -+ } -+ - font->name = read_section_as_string (§ion); - if (!font->name) - goto fail; diff --git a/patches/grub/2.04/gettext-quiet.patch b/patches/grub/2.04/gettext-quiet.patch deleted file mode 100644 index 09977de4b..000000000 --- a/patches/grub/2.04/gettext-quiet.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 5264381cd94fc29aea05e50654df364e131e777f Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Mon, 13 Jan 2014 12:13:02 +0000 -Subject: Silence error messages when translations are unavailable - -Bug: https://savannah.gnu.org/bugs/?35880 -Forwarded: https://savannah.gnu.org/bugs/?35880 -Last-Update: 2013-11-14 - -Patch-Name: gettext-quiet.patch ---- - grub-core/gettext/gettext.c | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/grub-core/gettext/gettext.c b/grub-core/gettext/gettext.c -index 4d02e62c1..2a19389f2 100644 ---- a/grub-core/gettext/gettext.c -+++ b/grub-core/gettext/gettext.c -@@ -427,6 +427,11 @@ grub_gettext_init_ext (struct grub_gettext_context *ctx, - if (locale[0] == 'e' && locale[1] == 'n' - && (locale[2] == '\0' || locale[2] == '_')) - grub_errno = err = GRUB_ERR_NONE; -+ -+ /* If no translations are available, fall back to untranslated text. */ -+ if (err == GRUB_ERR_FILE_NOT_FOUND) -+ grub_errno = err = GRUB_ERR_NONE; -+ - return err; - } - diff --git a/patches/grub/2.04/gfxmenu-load-image-double-free.patch b/patches/grub/2.04/gfxmenu-load-image-double-free.patch deleted file mode 100644 index d1a2d5b10..000000000 --- a/patches/grub/2.04/gfxmenu-load-image-double-free.patch +++ /dev/null @@ -1,34 +0,0 @@ -From e283bb250350e8c2f7edeb344a624c57c26b042f Mon Sep 17 00:00:00 2001 -From: Alexey Makhalov -Date: Wed, 8 Jul 2020 20:41:56 +0000 -Subject: gfxmenu: Fix double free in load_image() - -self->bitmap should be zeroed after free. Otherwise, there is a chance -to double free (USE_AFTER_FREE) it later in rescale_image(). - -Fixes: CID 292472 - -Signed-off-by: Alexey Makhalov -Reviewed-by: Daniel Kiper - -Patch-Name: gfxmenu-load-image-double-free.patch ---- - grub-core/gfxmenu/gui_image.c | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - -diff --git a/grub-core/gfxmenu/gui_image.c b/grub-core/gfxmenu/gui_image.c -index 29784ed2d..6b2e976f1 100644 ---- a/grub-core/gfxmenu/gui_image.c -+++ b/grub-core/gfxmenu/gui_image.c -@@ -195,7 +195,10 @@ load_image (grub_gui_image_t self, const char *path) - return grub_errno; - - if (self->bitmap && (self->bitmap != self->raw_bitmap)) -- grub_video_bitmap_destroy (self->bitmap); -+ { -+ grub_video_bitmap_destroy (self->bitmap); -+ self->bitmap = 0; -+ } - if (self->raw_bitmap) - grub_video_bitmap_destroy (self->raw_bitmap); - diff --git a/patches/grub/2.04/gfxpayload-dynamic.patch b/patches/grub/2.04/gfxpayload-dynamic.patch deleted file mode 100644 index 7c802aa33..000000000 --- a/patches/grub/2.04/gfxpayload-dynamic.patch +++ /dev/null @@ -1,290 +0,0 @@ -From f892ba14f3ec78b03cd3feb2f5845a223786823f Mon Sep 17 00:00:00 2001 -From: Evan Broder -Date: Mon, 13 Jan 2014 12:13:29 +0000 -Subject: Add configure option to enable gfxpayload=keep dynamically - -Set GRUB_GFXPAYLOAD_LINUX=keep unless it's known to be unsupported on -the current hardware. See -https://blueprints.launchpad.net/ubuntu/+spec/packageselection-foundations-n-grub2-boot-framebuffer. - -Author: Colin Watson -Forwarded: no -Last-Update: 2019-05-25 - -Patch-Name: gfxpayload-dynamic.patch ---- - configure.ac | 11 ++ - grub-core/Makefile.core.def | 8 ++ - grub-core/commands/i386/pc/hwmatch.c | 146 +++++++++++++++++++++++++++ - include/grub/file.h | 1 + - util/grub.d/10_linux.in | 37 ++++++- - 5 files changed, 200 insertions(+), 3 deletions(-) - create mode 100644 grub-core/commands/i386/pc/hwmatch.c - -diff --git a/configure.ac b/configure.ac -index 7dda5bb32..dbc429ce0 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -1879,6 +1879,17 @@ else - fi - AC_SUBST([QUICK_BOOT]) - -+AC_ARG_ENABLE([gfxpayload-dynamic], -+ [AS_HELP_STRING([--enable-gfxpayload-dynamic], -+ [use GRUB_GFXPAYLOAD_LINUX=keep unless explicitly unsupported on current hardware (default=no)])], -+ [], [enable_gfxpayload_dynamic=no]) -+if test x"$enable_gfxpayload_dynamic" = xyes ; then -+ GFXPAYLOAD_DYNAMIC=1 -+else -+ GFXPAYLOAD_DYNAMIC=0 -+fi -+AC_SUBST([GFXPAYLOAD_DYNAMIC]) -+ - LIBS="" - - AC_SUBST([FONT_SOURCE]) -diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def -index 67a98abbb..836bf0a59 100644 ---- a/grub-core/Makefile.core.def -+++ b/grub-core/Makefile.core.def -@@ -971,6 +971,14 @@ module = { - common = lib/hexdump.c; - }; - -+module = { -+ name = hwmatch; -+ i386_pc = commands/i386/pc/hwmatch.c; -+ enable = i386_pc; -+ cflags = '$(CFLAGS_POSIX) $(CFLAGS_GNULIB)'; -+ cppflags = '$(CPPFLAGS_POSIX) $(CPPFLAGS_GNULIB)'; -+}; -+ - module = { - name = keystatus; - common = commands/keystatus.c; -diff --git a/grub-core/commands/i386/pc/hwmatch.c b/grub-core/commands/i386/pc/hwmatch.c -new file mode 100644 -index 000000000..6de07cecc ---- /dev/null -+++ b/grub-core/commands/i386/pc/hwmatch.c -@@ -0,0 +1,146 @@ -+/* hwmatch.c - Match hardware against a whitelist/blacklist. */ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 2011 Free Software Foundation, Inc. -+ * -+ * GRUB is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation, either version 3 of the License, or -+ * (at your option) any later version. -+ * -+ * GRUB is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with GRUB. If not, see . -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+GRUB_MOD_LICENSE ("GPLv3+"); -+ -+/* Context for grub_cmd_hwmatch. */ -+struct hwmatch_ctx -+{ -+ grub_file_t matches_file; -+ int class_match; -+ int match; -+}; -+ -+/* Helper for grub_cmd_hwmatch. */ -+static int -+hwmatch_iter (grub_pci_device_t dev, grub_pci_id_t pciid, void *data) -+{ -+ struct hwmatch_ctx *ctx = data; -+ grub_pci_address_t addr; -+ grub_uint32_t class, baseclass, vendor, device; -+ grub_pci_id_t subpciid; -+ grub_uint32_t subvendor, subdevice, subclass; -+ char *id, *line; -+ -+ addr = grub_pci_make_address (dev, GRUB_PCI_REG_CLASS); -+ class = grub_pci_read (addr); -+ baseclass = class >> 24; -+ -+ if (ctx->class_match != baseclass) -+ return 0; -+ -+ vendor = pciid & 0xffff; -+ device = pciid >> 16; -+ -+ addr = grub_pci_make_address (dev, GRUB_PCI_REG_SUBVENDOR); -+ subpciid = grub_pci_read (addr); -+ -+ subclass = (class >> 16) & 0xff; -+ subvendor = subpciid & 0xffff; -+ subdevice = subpciid >> 16; -+ -+ id = grub_xasprintf ("v%04xd%04xsv%04xsd%04xbc%02xsc%02x", -+ vendor, device, subvendor, subdevice, -+ baseclass, subclass); -+ -+ grub_file_seek (ctx->matches_file, 0); -+ while ((line = grub_file_getline (ctx->matches_file)) != NULL) -+ { -+ char *anchored_line; -+ regex_t regex; -+ int ret; -+ -+ if (! *line || *line == '#') -+ { -+ grub_free (line); -+ continue; -+ } -+ -+ anchored_line = grub_xasprintf ("^%s$", line); -+ ret = regcomp (®ex, anchored_line, REG_EXTENDED | REG_NOSUB); -+ grub_free (anchored_line); -+ if (ret) -+ { -+ grub_free (line); -+ continue; -+ } -+ -+ ret = regexec (®ex, id, 0, NULL, 0); -+ regfree (®ex); -+ grub_free (line); -+ if (! ret) -+ { -+ ctx->match = 1; -+ return 1; -+ } -+ } -+ -+ return 0; -+} -+ -+static grub_err_t -+grub_cmd_hwmatch (grub_command_t cmd __attribute__ ((unused)), -+ int argc, char **args) -+{ -+ struct hwmatch_ctx ctx = { .match = 0 }; -+ char *match_str; -+ -+ if (argc < 2) -+ return grub_error (GRUB_ERR_BAD_ARGUMENT, "list file and class required"); -+ -+ ctx.matches_file = grub_file_open (args[0], GRUB_FILE_TYPE_HWMATCH); -+ if (! ctx.matches_file) -+ return grub_errno; -+ -+ ctx.class_match = grub_strtol (args[1], 0, 10); -+ -+ grub_pci_iterate (hwmatch_iter, &ctx); -+ -+ match_str = grub_xasprintf ("%d", ctx.match); -+ grub_env_set ("match", match_str); -+ grub_free (match_str); -+ -+ grub_file_close (ctx.matches_file); -+ -+ return GRUB_ERR_NONE; -+} -+ -+static grub_command_t cmd; -+ -+GRUB_MOD_INIT(hwmatch) -+{ -+ cmd = grub_register_command ("hwmatch", grub_cmd_hwmatch, -+ N_("MATCHES-FILE CLASS"), -+ N_("Match PCI devices.")); -+} -+ -+GRUB_MOD_FINI(hwmatch) -+{ -+ grub_unregister_command (cmd); -+} -diff --git a/include/grub/file.h b/include/grub/file.h -index 31567483c..e3c4cae2b 100644 ---- a/include/grub/file.h -+++ b/include/grub/file.h -@@ -122,6 +122,7 @@ enum grub_file_type - GRUB_FILE_TYPE_FS_SEARCH, - GRUB_FILE_TYPE_AUDIO, - GRUB_FILE_TYPE_VBE_DUMP, -+ GRUB_FILE_TYPE_HWMATCH, - - GRUB_FILE_TYPE_LOADENV, - GRUB_FILE_TYPE_SAVEENV, -diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in -index 51cdb5e1d..2f5217358 100644 ---- a/util/grub.d/10_linux.in -+++ b/util/grub.d/10_linux.in -@@ -23,6 +23,7 @@ datarootdir="@datarootdir@" - ubuntu_recovery="@UBUNTU_RECOVERY@" - quiet_boot="@QUIET_BOOT@" - quick_boot="@QUICK_BOOT@" -+gfxpayload_dynamic="@GFXPAYLOAD_DYNAMIC@" - - . "$pkgdatadir/grub-mkconfig_lib" - -@@ -145,9 +146,10 @@ linux_entry () - if [ "x$GRUB_GFXPAYLOAD_LINUX" != xtext ]; then - echo " load_video" | sed "s/^/$submenu_indentation/" - fi -- if [ "$ubuntu_recovery" = 0 ] || [ x$type != xrecovery ]; then -- echo " set gfxpayload=$GRUB_GFXPAYLOAD_LINUX" | sed "s/^/$submenu_indentation/" -- fi -+ fi -+ if ([ "$ubuntu_recovery" = 0 ] || [ x$type != xrecovery ]) && \ -+ ([ "x$GRUB_GFXPAYLOAD_LINUX" != x ] || [ "$gfxpayload_dynamic" = 1 ]); then -+ echo " set gfxpayload=\$linux_gfx_mode" | sed "s/^/$submenu_indentation/" - fi - - echo " insmod gzio" | sed "s/^/$submenu_indentation/" -@@ -226,6 +228,35 @@ prepare_root_cache= - boot_device_id= - title_correction_code= - -+# Use ELILO's generic "efifb" when it's known to be available. -+# FIXME: We need an interface to select vesafb in case efifb can't be used. -+if [ "x$GRUB_GFXPAYLOAD_LINUX" != x ] || [ "$gfxpayload_dynamic" = 0 ]; then -+ echo "set linux_gfx_mode=$GRUB_GFXPAYLOAD_LINUX" -+else -+ cat << EOF -+if [ "\${recordfail}" != 1 ]; then -+ if [ -e \${prefix}/gfxblacklist.txt ]; then -+ if hwmatch \${prefix}/gfxblacklist.txt 3; then -+ if [ \${match} = 0 ]; then -+ set linux_gfx_mode=keep -+ else -+ set linux_gfx_mode=text -+ fi -+ else -+ set linux_gfx_mode=text -+ fi -+ else -+ set linux_gfx_mode=keep -+ fi -+else -+ set linux_gfx_mode=text -+fi -+EOF -+fi -+cat << EOF -+export linux_gfx_mode -+EOF -+ - # Extra indentation to add to menu entries in a submenu. We're not in a submenu - # yet, so it's empty. In a submenu it will be equal to '\t' (one tab). - submenu_indentation="" diff --git a/patches/grub/2.04/gfxpayload-keep-default.patch b/patches/grub/2.04/gfxpayload-keep-default.patch deleted file mode 100644 index 4ef95cfd8..000000000 --- a/patches/grub/2.04/gfxpayload-keep-default.patch +++ /dev/null @@ -1,39 +0,0 @@ -From d768f3c486db716fe662b32afc1327f27fad012b Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Mon, 13 Jan 2014 12:12:57 +0000 -Subject: Disable gfxpayload=keep by default - -Setting gfxpayload=keep has been known to cause efifb to be -inappropriately enabled. In any case, with the current Linux kernel the -result of this option is that early kernelspace will be unable to print -anything to the console, so (for example) if boot fails and you end up -dumped to an initramfs prompt, you won't be able to see anything on the -screen. As such it shouldn't be enabled by default in Debian, no matter -what kernel options are enabled. - -gfxpayload=keep is a good idea but rather ahead of its time ... - -Bug-Debian: http://bugs.debian.org/567245 -Forwarded: no -Last-Update: 2013-12-25 - -Patch-Name: gfxpayload-keep-default.patch ---- - util/grub.d/10_linux.in | 4 ---- - 1 file changed, 4 deletions(-) - -diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in -index 4532266be..dd5a60c71 100644 ---- a/util/grub.d/10_linux.in -+++ b/util/grub.d/10_linux.in -@@ -114,10 +114,6 @@ linux_entry () - # FIXME: We need an interface to select vesafb in case efifb can't be used. - if [ "x$GRUB_GFXPAYLOAD_LINUX" = x ]; then - echo " load_video" | sed "s/^/$submenu_indentation/" -- if grep -qx "CONFIG_FB_EFI=y" "${config}" 2> /dev/null \ -- && grep -qx "CONFIG_VT_HW_CONSOLE_BINDING=y" "${config}" 2> /dev/null; then -- echo " set gfxpayload=keep" | sed "s/^/$submenu_indentation/" -- fi - else - if [ "x$GRUB_GFXPAYLOAD_LINUX" != xtext ]; then - echo " load_video" | sed "s/^/$submenu_indentation/" diff --git a/patches/grub/2.04/grub-install-extra-removable.patch b/patches/grub/2.04/grub-install-extra-removable.patch deleted file mode 100644 index 90c43ad59..000000000 --- a/patches/grub/2.04/grub-install-extra-removable.patch +++ /dev/null @@ -1,202 +0,0 @@ -From 6394c8c2ce2bdec46c94942fae6546e125047165 Mon Sep 17 00:00:00 2001 -From: Steve McIntyre <93sam@debian.org> -Date: Wed, 3 Dec 2014 01:25:12 +0000 -Subject: Add support for forcing EFI installation to the removable media path - -Add an extra option to grub-install "--force-extra-removable". On EFI -platforms, this will cause an extra copy of the grub-efi image to be -written to the appropriate removable media patch -/boot/efi/EFI/BOOT/BOOT$ARCH.EFI as well. This will help with broken -UEFI implementations where the firmware does not work when configured -with new boot paths. - -Signed-off-by: Steve McIntyre <93sam@debian.org> - -Bug-Debian: https://bugs.debian.org/767037 https://bugs.debian.org/773092 -Forwarded: Not yet -Last-Update: 2014-12-20 - -Patch-Name: grub-install-extra-removable.patch ---- - util/grub-install.c | 110 +++++++++++++++++++++++++++++++++++++++++++- - 1 file changed, 108 insertions(+), 2 deletions(-) - -diff --git a/util/grub-install.c b/util/grub-install.c -index caadada98..ab79828a5 100644 ---- a/util/grub-install.c -+++ b/util/grub-install.c -@@ -56,6 +56,7 @@ - - static char *target; - static int removable = 0; -+static int force_extra_removable = 0; - static int recheck = 0; - static int update_nvram = 1; - static char *install_device = NULL; -@@ -113,7 +114,8 @@ enum - OPTION_LABEL_BGCOLOR, - OPTION_PRODUCT_VERSION, - OPTION_UEFI_SECURE_BOOT, -- OPTION_NO_UEFI_SECURE_BOOT -+ OPTION_NO_UEFI_SECURE_BOOT, -+ OPTION_FORCE_EXTRA_REMOVABLE - }; - - static int fs_probe = 1; -@@ -216,6 +218,10 @@ argp_parser (int key, char *arg, struct argp_state *state) - removable = 1; - return 0; - -+ case OPTION_FORCE_EXTRA_REMOVABLE: -+ force_extra_removable = 1; -+ return 0; -+ - case OPTION_ALLOW_FLOPPY: - allow_floppy = 1; - return 0; -@@ -322,6 +328,9 @@ static struct argp_option options[] = { - N_("do not install an image usable with UEFI Secure Boot, even if the " - "system was currently started using it. " - "This option is only available on EFI."), 2}, -+ {"force-extra-removable", OPTION_FORCE_EXTRA_REMOVABLE, 0, 0, -+ N_("force installation to the removable media path also. " -+ "This option is only available on EFI."), 2}, - {0, 0, 0, 0, 0, 0} - }; - -@@ -839,6 +848,91 @@ fill_core_services (const char *core_services) - free (sysv_plist); - } - -+/* Helper routine for also_install_removable() below. Walk through the -+ specified dir, looking to see if there is a file/dir that matches -+ the search string exactly, but in a case-insensitive manner. If so, -+ return a copy of the exact file/dir that *does* exist. If not, -+ return NULL */ -+static char * -+check_component_exists(const char *dir, -+ const char *search) -+{ -+ grub_util_fd_dir_t d; -+ grub_util_fd_dirent_t de; -+ char *found = NULL; -+ -+ d = grub_util_fd_opendir (dir); -+ if (!d) -+ grub_util_error (_("cannot open directory `%s': %s"), -+ dir, grub_util_fd_strerror ()); -+ -+ while ((de = grub_util_fd_readdir (d))) -+ { -+ if (strcasecmp (de->d_name, search) == 0) -+ { -+ found = xstrdup (de->d_name); -+ break; -+ } -+ } -+ grub_util_fd_closedir (d); -+ return found; -+} -+ -+/* Some complex directory-handling stuff in here, to cope with -+ * case-insensitive FAT/VFAT filesystem semantics. Ugh. */ -+static void -+also_install_removable(const char *src, -+ const char *base_efidir, -+ const char *efi_suffix_upper) -+{ -+ char *efi_file = NULL; -+ char *dst = NULL; -+ char *cur = NULL; -+ char *found = NULL; -+ -+ if (!efi_suffix_upper) -+ grub_util_error ("%s", _("efi_suffix_upper not set")); -+ efi_file = xasprintf ("BOOT%s.EFI", efi_suffix_upper); -+ -+ /* We need to install in $base_efidir/EFI/BOOT/$efi_file, but we -+ * need to cope with case-insensitive stuff here. Build the path one -+ * component at a time, checking for existing matches each time. */ -+ -+ /* Look for "EFI" in base_efidir. Make it if it does not exist in -+ * some form. */ -+ found = check_component_exists(base_efidir, "EFI"); -+ if (found == NULL) -+ found = xstrdup("EFI"); -+ dst = grub_util_path_concat (2, base_efidir, found); -+ cur = xstrdup (dst); -+ free (dst); -+ free (found); -+ grub_install_mkdir_p (cur); -+ -+ /* Now BOOT */ -+ found = check_component_exists(cur, "BOOT"); -+ if (found == NULL) -+ found = xstrdup("BOOT"); -+ dst = grub_util_path_concat (2, cur, found); -+ cur = xstrdup (dst); -+ free (dst); -+ free (found); -+ grub_install_mkdir_p (cur); -+ -+ /* Now $efi_file */ -+ found = check_component_exists(cur, efi_file); -+ if (found == NULL) -+ found = xstrdup(efi_file); -+ dst = grub_util_path_concat (2, cur, found); -+ cur = xstrdup (dst); -+ free (dst); -+ free (found); -+ grub_install_copy_file (src, cur, 1); -+ -+ free (cur); -+ free (efi_file); -+} -+ - int - main (int argc, char *argv[]) - { -@@ -856,6 +950,7 @@ main (int argc, char *argv[]) - char *relative_grubdir; - char **efidir_device_names = NULL; - grub_device_t efidir_grub_dev = NULL; -+ char *base_efidir = NULL; - char *efidir_grub_devname; - int efidir_is_mac = 0; - int is_prep = 0; -@@ -888,6 +983,9 @@ main (int argc, char *argv[]) - bootloader_id = xstrdup ("grub"); - } - -+ if (removable && force_extra_removable) -+ grub_util_error (_("Invalid to use both --removable and --force_extra_removable")); -+ - if (!grub_install_source_directory) - { - if (!target) -@@ -1107,6 +1205,8 @@ main (int argc, char *argv[]) - if (!efidir_is_mac && grub_strcmp (fs->name, "fat") != 0) - grub_util_error (_("%s doesn't look like an EFI partition"), efidir); - -+ base_efidir = xstrdup(efidir); -+ - /* The EFI specification requires that an EFI System Partition must - contain an "EFI" subdirectory, and that OS loaders are stored in - subdirectories below EFI. Vendors are expected to pick names that do -@@ -2023,9 +2123,15 @@ main (int argc, char *argv[]) - fprintf (config_dst_f, "configfile $prefix/grub.cfg\n"); - fclose (config_dst_f); - free (config_dst); -+ if (force_extra_removable) -+ also_install_removable(efi_signed, base_efidir, efi_suffix_upper); - } - else -- grub_install_copy_file (imgfile, dst, 1); -+ { -+ grub_install_copy_file (imgfile, dst, 1); -+ if (force_extra_removable) -+ also_install_removable(imgfile, base_efidir, efi_suffix_upper); -+ } - free (dst); - } - if (!removable && update_nvram) diff --git a/patches/grub/2.04/grub-install-pvxen-paths.patch b/patches/grub/2.04/grub-install-pvxen-paths.patch deleted file mode 100644 index e461fc25e..000000000 --- a/patches/grub/2.04/grub-install-pvxen-paths.patch +++ /dev/null @@ -1,71 +0,0 @@ -From 1a4d25cb7f215fcd61f50b3ee99b6f34ee06fff6 Mon Sep 17 00:00:00 2001 -From: Ian Campbell -Date: Sat, 6 Sep 2014 12:20:12 +0100 -Subject: grub-install: Install PV Xen binaries into the upstream specified - path - -Upstream have defined a specification for where guests ought to place their -xenpv grub binaries in order to facilitate chainloading from a stage 1 grub -loaded from dom0. - -http://xenbits.xen.org/docs/unstable-staging/misc/x86-xenpv-bootloader.html - -The spec calls for installation into /boot/xen/pvboot-i386.elf or -/boot/xen/pvboot-x86_64.elf. - -Signed-off-by: Ian Campbell - -Bug-Debian: https://bugs.debian.org/762307 -Forwarded: http://lists.gnu.org/archive/html/grub-devel/2014-10/msg00041.html -Last-Update: 2014-10-24 - -Patch-Name: grub-install-pvxen-paths.patch - ---- -v2: Respect bootdir, create /boot/xen as needed. ---- - util/grub-install.c | 24 ++++++++++++++++++++++-- - 1 file changed, 22 insertions(+), 2 deletions(-) - -diff --git a/util/grub-install.c b/util/grub-install.c -index b82c14d41..caadada98 100644 ---- a/util/grub-install.c -+++ b/util/grub-install.c -@@ -2057,6 +2057,28 @@ main (int argc, char *argv[]) - } - break; - -+ case GRUB_INSTALL_PLATFORM_I386_XEN: -+ { -+ char *path = grub_util_path_concat (2, bootdir, "xen"); -+ char *dst = grub_util_path_concat (2, path, "pvboot-i386.elf"); -+ grub_install_mkdir_p (path); -+ grub_install_copy_file (imgfile, dst, 1); -+ free (dst); -+ free (path); -+ } -+ break; -+ -+ case GRUB_INSTALL_PLATFORM_X86_64_XEN: -+ { -+ char *path = grub_util_path_concat (2, bootdir, "xen"); -+ char *dst = grub_util_path_concat (2, path, "pvboot-x86_64.elf"); -+ grub_install_mkdir_p (path); -+ grub_install_copy_file (imgfile, dst, 1); -+ free (dst); -+ free (path); -+ } -+ break; -+ - case GRUB_INSTALL_PLATFORM_MIPSEL_LOONGSON: - case GRUB_INSTALL_PLATFORM_MIPSEL_QEMU_MIPS: - case GRUB_INSTALL_PLATFORM_MIPS_QEMU_MIPS: -@@ -2066,8 +2088,6 @@ main (int argc, char *argv[]) - case GRUB_INSTALL_PLATFORM_MIPSEL_ARC: - case GRUB_INSTALL_PLATFORM_ARM_UBOOT: - case GRUB_INSTALL_PLATFORM_I386_QEMU: -- case GRUB_INSTALL_PLATFORM_I386_XEN: -- case GRUB_INSTALL_PLATFORM_X86_64_XEN: - case GRUB_INSTALL_PLATFORM_I386_XEN_PVH: - grub_util_warn ("%s", - _("WARNING: no platform-specific install was performed")); diff --git a/patches/grub/2.04/grub-install-removable-shim.patch b/patches/grub/2.04/grub-install-removable-shim.patch deleted file mode 100644 index c2e06eab1..000000000 --- a/patches/grub/2.04/grub-install-removable-shim.patch +++ /dev/null @@ -1,193 +0,0 @@ -From cb2746b915b7d8b5a3c78fae3d40fc0ccc41b650 Mon Sep 17 00:00:00 2001 -From: Steve McIntyre <93sam@debian.org> -Date: Fri, 14 Jun 2019 16:37:11 +0100 -Subject: Deal with --force-extra-removable with signed shim too - -In this case, we need both the signed shim as /EFI/BOOT/BOOTXXX.EFI -and signed Grub as /EFI/BOOT/grubXXX.efi. - -Also install the BOOTXXX.CSV into /EFI/debian, and FBXXX.EFI into -/EFI/BOOT/ so that it can work when needed (*iff* we're updating the -NVRAM). - -[cjwatson: Refactored also_install_removable somewhat for brevity and so -that we're using consistent case-insensitive logic.] - -Bug-Debian: https://bugs.debian.org/930531 -Last-Update: 2019-06-14 - -Patch-Name: grub-install-removable-shim.patch ---- - util/grub-install.c | 84 ++++++++++++++++++++++++++++++++++++--------- - 1 file changed, 67 insertions(+), 17 deletions(-) - -diff --git a/util/grub-install.c b/util/grub-install.c -index fdec5dd83..666cef3d2 100644 ---- a/util/grub-install.c -+++ b/util/grub-install.c -@@ -883,17 +883,13 @@ check_component_exists(const char *dir, - static void - also_install_removable(const char *src, - const char *base_efidir, -- const char *efi_suffix_upper) -+ const char *efi_file, -+ int is_needed) - { -- char *efi_file = NULL; - char *dst = NULL; - char *cur = NULL; - char *found = NULL; - -- if (!efi_suffix_upper) -- grub_util_error ("%s", _("efi_suffix_upper not set")); -- efi_file = xasprintf ("BOOT%s.EFI", efi_suffix_upper); -- - /* We need to install in $base_efidir/EFI/BOOT/$efi_file, but we - * need to cope with case-insensitive stuff here. Build the path one - * component at a time, checking for existing matches each time. */ -@@ -927,10 +923,9 @@ also_install_removable(const char *src, - cur = xstrdup (dst); - free (dst); - free (found); -- grub_install_copy_file (src, cur, 1); -+ grub_install_copy_file (src, cur, is_needed); - - free (cur); -- free (efi_file); - } - - int -@@ -2078,11 +2073,14 @@ main (int argc, char *argv[]) - case GRUB_INSTALL_PLATFORM_IA64_EFI: - { - char *dst = grub_util_path_concat (2, efidir, efi_file); -+ char *removable_file = xasprintf ("BOOT%s.EFI", efi_suffix_upper); -+ - if (uefi_secure_boot) - { - char *shim_signed = NULL; - char *mok_signed = NULL, *mok_file = NULL; - char *fb_signed = NULL, *fb_file = NULL; -+ char *csv_file = NULL; - char *config_dst; - FILE *config_dst_f; - -@@ -2091,11 +2089,15 @@ main (int argc, char *argv[]) - mok_file = xasprintf ("mm%s.efi", efi_suffix); - fb_signed = xasprintf ("fb%s.efi.signed", efi_suffix); - fb_file = xasprintf ("fb%s.efi", efi_suffix); -+ csv_file = xasprintf ("BOOT%s.CSV", efi_suffix_upper); -+ -+ /* If we have a signed shim binary, install that and all -+ its helpers in the normal vendor path */ - - if (grub_util_is_regular (shim_signed)) - { - char *chained_base, *chained_dst; -- char *mok_src, *mok_dst, *fb_src, *fb_dst; -+ char *mok_src, *mok_dst, *fb_src, *fb_dst, *csv_src, *csv_dst; - if (!removable) - { - free (efi_file); -@@ -2107,8 +2109,6 @@ main (int argc, char *argv[]) - chained_base = xasprintf ("grub%s.efi", efi_suffix); - chained_dst = grub_util_path_concat (2, efidir, chained_base); - grub_install_copy_file (efi_signed, chained_dst, 1); -- free (chained_dst); -- free (chained_base); - - /* Not critical, so not an error if they are not present (as it - won't be for older releases); but if we have them, make -@@ -2119,8 +2119,6 @@ main (int argc, char *argv[]) - mok_file); - grub_install_copy_file (mok_src, - mok_dst, 0); -- free (mok_src); -- free (mok_dst); - - fb_src = grub_util_path_concat (2, "/usr/lib/shim/", - fb_signed); -@@ -2128,27 +2126,79 @@ main (int argc, char *argv[]) - fb_file); - grub_install_copy_file (fb_src, - fb_dst, 0); -+ -+ csv_src = grub_util_path_concat (2, "/usr/lib/shim/", -+ csv_file); -+ csv_dst = grub_util_path_concat (2, efidir, -+ csv_file); -+ grub_install_copy_file (csv_src, -+ csv_dst, 0); -+ -+ /* Install binaries into .../EFI/BOOT too: -+ the shim binary -+ the grub binary -+ the shim fallback binary (not fatal on failure) */ -+ if (force_extra_removable) -+ { -+ grub_util_info ("Secure boot: installing shim and image into rm path"); -+ also_install_removable (shim_signed, base_efidir, removable_file, 1); -+ -+ also_install_removable (efi_signed, base_efidir, chained_base, 1); -+ -+ /* If we're updating the NVRAM, add fallback too - it -+ will re-update the NVRAM later if things break */ -+ if (update_nvram) -+ also_install_removable (fb_src, base_efidir, fb_file, 0); -+ } -+ -+ free (chained_dst); -+ free (chained_base); -+ free (mok_src); -+ free (mok_dst); - free (fb_src); - free (fb_dst); -+ free (csv_src); -+ free (csv_dst); - } - else -- grub_install_copy_file (efi_signed, dst, 1); -+ { -+ /* Tried to install for secure boot, but no signed -+ shim found. Fall back to just installing the signed -+ grub binary */ -+ grub_util_info ("Secure boot (no shim): installing signed grub binary"); -+ grub_install_copy_file (efi_signed, dst, 1); -+ if (force_extra_removable) -+ { -+ grub_util_info ("Secure boot (no shim): installing signed grub binary into rm path"); -+ also_install_removable (efi_signed, base_efidir, removable_file, 1); -+ } -+ } - -+ /* In either case, install our grub.cfg */ - config_dst = grub_util_path_concat (2, efidir, "grub.cfg"); - grub_install_copy_file (load_cfg, config_dst, 1); - config_dst_f = grub_util_fopen (config_dst, "ab"); - fprintf (config_dst_f, "configfile $prefix/grub.cfg\n"); - fclose (config_dst_f); - free (config_dst); -- if (force_extra_removable) -- also_install_removable(efi_signed, base_efidir, efi_suffix_upper); -+ -+ free (csv_file); -+ free (fb_file); -+ free (fb_signed); -+ free (mok_file); -+ free (mok_signed); -+ free (shim_signed); - } - else - { -+ /* No secure boot - just install our newly-generated image */ -+ grub_util_info ("No Secure Boot: installing core image"); - grub_install_copy_file (imgfile, dst, 1); - if (force_extra_removable) -- also_install_removable(imgfile, base_efidir, efi_suffix_upper); -+ also_install_removable (imgfile, base_efidir, removable_file, 1); - } -+ -+ free (removable_file); - free (dst); - } - if (!removable && update_nvram) diff --git a/patches/grub/2.04/grub-legacy-0-based-partitions.patch b/patches/grub/2.04/grub-legacy-0-based-partitions.patch deleted file mode 100644 index 2039c3f9c..000000000 --- a/patches/grub/2.04/grub-legacy-0-based-partitions.patch +++ /dev/null @@ -1,39 +0,0 @@ -From fbb34837e1b3185dd2a55d8aeb9b23a8fcc50d54 Mon Sep 17 00:00:00 2001 -From: Robert Millan -Date: Mon, 13 Jan 2014 12:12:53 +0000 -Subject: Support running grub-probe in grub-legacy's update-grub - -Author: Colin Watson -Forwarded: not-needed -Last-Update: 2013-12-25 - -Patch-Name: grub-legacy-0-based-partitions.patch ---- - util/getroot.c | 14 ++++++++++++++ - 1 file changed, 14 insertions(+) - -diff --git a/util/getroot.c b/util/getroot.c -index 847406fba..cdd41153c 100644 ---- a/util/getroot.c -+++ b/util/getroot.c -@@ -245,6 +245,20 @@ find_partition (grub_disk_t dsk __attribute__ ((unused)), - - if (ctx->start == part_start) - { -+ /* This is dreadfully hardcoded, but there's a limit to what GRUB -+ Legacy was able to deal with anyway. */ -+ if (getenv ("GRUB_LEGACY_0_BASED_PARTITIONS")) -+ { -+ if (partition->parent) -+ /* Probably a BSD slice. */ -+ ctx->partname = xasprintf ("%d,%d", partition->parent->number, -+ partition->number + 1); -+ else -+ ctx->partname = xasprintf ("%d", partition->number); -+ -+ return 1; -+ } -+ - ctx->partname = grub_partition_get_name (partition); - return 1; - } diff --git a/patches/grub/2.04/grub.cfg-400.patch b/patches/grub/2.04/grub.cfg-400.patch deleted file mode 100644 index 1fee91ac0..000000000 --- a/patches/grub/2.04/grub.cfg-400.patch +++ /dev/null @@ -1,25 +0,0 @@ -From e0ceb93ec1feab2b084f58d98f8c865847354254 Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Mon, 13 Jan 2014 12:12:55 +0000 -Subject: Make grub.cfg world-readable if it contains no passwords - -Patch-Name: grub.cfg-400.patch ---- - util/grub-mkconfig.in | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/util/grub-mkconfig.in b/util/grub-mkconfig.in -index 9f477ff05..45cd4cc54 100644 ---- a/util/grub-mkconfig.in -+++ b/util/grub-mkconfig.in -@@ -276,6 +276,10 @@ for i in "${grub_mkconfig_dir}"/* ; do - esac - done - -+if [ "x${grub_cfg}" != "x" ] && ! grep "^password" ${grub_cfg}.new >/dev/null; then -+ chmod 444 ${grub_cfg}.new || true -+fi -+ - if test "x${grub_cfg}" != "x" ; then - if ! ${grub_script_check} ${grub_cfg}.new; then - # TRANSLATORS: %s is replaced by filename diff --git a/patches/grub/2.04/hfsplus-overflow.patch b/patches/grub/2.04/hfsplus-overflow.patch deleted file mode 100644 index e1b2c12ab..000000000 --- a/patches/grub/2.04/hfsplus-overflow.patch +++ /dev/null @@ -1,55 +0,0 @@ -From 2db482b906c425aa755fc78e8e8980659b92f5a1 Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Sun, 19 Jul 2020 14:43:31 -0400 -Subject: hfsplus: fix two more overflows - -Both node->size and node->namelen come from the supplied filesystem, -which may be user-supplied. We can't trust them for the math unless we -know they don't overflow; making sure they go through calloc() first -will give us that. - -Signed-off-by: Peter Jones -Reviewed-by: Darren Kenny - -Patch-Name: hfsplus-overflow.patch ---- - grub-core/fs/hfsplus.c | 11 ++++++++--- - 1 file changed, 8 insertions(+), 3 deletions(-) - -diff --git a/grub-core/fs/hfsplus.c b/grub-core/fs/hfsplus.c -index dae43becc..9c4e4c88c 100644 ---- a/grub-core/fs/hfsplus.c -+++ b/grub-core/fs/hfsplus.c -@@ -31,6 +31,7 @@ - #include - #include - #include -+#include - - GRUB_MOD_LICENSE ("GPLv3+"); - -@@ -475,8 +476,12 @@ grub_hfsplus_read_symlink (grub_fshelp_node_t node) - { - char *symlink; - grub_ssize_t numread; -+ grub_size_t sz = node->size; - -- symlink = grub_malloc (node->size + 1); -+ if (grub_add (sz, 1, &sz)) -+ return NULL; -+ -+ symlink = grub_malloc (sz); - if (!symlink) - return 0; - -@@ -715,8 +720,8 @@ list_nodes (void *record, void *hook_arg) - if (type == GRUB_FSHELP_UNKNOWN) - return 0; - -- filename = grub_malloc (grub_be_to_cpu16 (catkey->namelen) -- * GRUB_MAX_UTF8_PER_UTF16 + 1); -+ filename = grub_calloc (grub_be_to_cpu16 (catkey->namelen), -+ GRUB_MAX_UTF8_PER_UTF16 + 1); - if (! filename) - return 0; - diff --git a/patches/grub/2.04/ieee1275-clear-reset.patch b/patches/grub/2.04/ieee1275-clear-reset.patch deleted file mode 100644 index 29f8ae0d6..000000000 --- a/patches/grub/2.04/ieee1275-clear-reset.patch +++ /dev/null @@ -1,32 +0,0 @@ -From dd145cfecb96c4601f4dc66981c9c7c642e12e81 Mon Sep 17 00:00:00 2001 -From: Paulo Flabiano Smorigo -Date: Thu, 25 Sep 2014 18:41:29 -0300 -Subject: Include a text attribute reset in the clear command for ppc - -Always clear text attribute for clear command in order to avoid problems -after it boots. - -* grub-core/term/terminfo.c: Add escape for text attribute reset - -Bug-Ubuntu: https://bugs.launchpad.net/bugs/1295255 -Origin: other, https://lists.gnu.org/archive/html/grub-devel/2014-09/msg00076.html -Last-Update: 2014-09-26 - -Patch-Name: ieee1275-clear-reset.patch ---- - grub-core/term/terminfo.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/grub-core/term/terminfo.c b/grub-core/term/terminfo.c -index d317efa36..63892ad42 100644 ---- a/grub-core/term/terminfo.c -+++ b/grub-core/term/terminfo.c -@@ -151,7 +151,7 @@ grub_terminfo_set_current (struct grub_term_output *term, - /* Clear the screen. Using serial console, screen(1) only recognizes the - * ANSI escape sequence. Using video console, Apple Open Firmware - * (version 3.1.1) only recognizes the literal ^L. So use both. */ -- data->cls = grub_strdup (" \e[2J"); -+ data->cls = grub_strdup (" \e[2J\e[m"); - data->reverse_video_on = grub_strdup ("\e[7m"); - data->reverse_video_off = grub_strdup ("\e[m"); - if (grub_strcmp ("ieee1275", str) == 0) diff --git a/patches/grub/2.04/ignore-grub_func_test-failures.patch b/patches/grub/2.04/ignore-grub_func_test-failures.patch deleted file mode 100644 index ccffc9af2..000000000 --- a/patches/grub/2.04/ignore-grub_func_test-failures.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 75c4e78459d20ed24a9ac85043b11342582f63a5 Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Mon, 13 Jan 2014 12:13:32 +0000 -Subject: Ignore functional test failures for now as they are broken - -See: https://lists.gnu.org/archive/html/grub-devel/2013-11/msg00242.html - -Forwarded: not-needed -Last-Update: 2013-11-19 - -Patch-Name: ignore-grub_func_test-failures.patch ---- - tests/grub_func_test.in | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/tests/grub_func_test.in b/tests/grub_func_test.in -index c67f9e422..728cd6e06 100644 ---- a/tests/grub_func_test.in -+++ b/tests/grub_func_test.in -@@ -16,6 +16,8 @@ out=`echo all_functional_test | @builddir@/grub-shell --timeout=3600 --files="/b - - if [ "$(echo "$out" | tail -n 1)" != "ALL TESTS PASSED" ]; then - echo "Functional test failure: $out" -- exit 1 -+ # Disabled temporarily due to unrecognised video checksum failures. -+ #exit 1 -+ exit 0 - fi - diff --git a/patches/grub/2.04/insmod-xzio-and-lzopio-on-xen.patch b/patches/grub/2.04/insmod-xzio-and-lzopio-on-xen.patch deleted file mode 100644 index 45a760e6d..000000000 --- a/patches/grub/2.04/insmod-xzio-and-lzopio-on-xen.patch +++ /dev/null @@ -1,33 +0,0 @@ -From d9b8da8f0d48df481fec93750e91468b1f51479d Mon Sep 17 00:00:00 2001 -From: Ian Campbell -Date: Sun, 30 Nov 2014 12:12:52 +0000 -Subject: Arrange to insmod xzio and lzopio when booting a kernel as a Xen - guest - -This is needed in case the Linux kernel is compiled with CONFIG_KERNEL_XZ or -CONFIG_KERNEL_LZO rather than CONFIG_KERNEL_GZ (gzio is already loaded by -grub.cfg today). - -Signed-off-by: Ian Campbell - -Bug-Debian: https://bugs.debian.org/755256 -Forwarded: http://lists.gnu.org/archive/html/grub-devel/2014-11/msg00091.html -Last-Update: 2014-11-30 - -Patch-Name: insmod-xzio-and-lzopio-on-xen.patch ---- - util/grub.d/10_linux.in | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in -index ba945582e..8a74c677b 100644 ---- a/util/grub.d/10_linux.in -+++ b/util/grub.d/10_linux.in -@@ -162,6 +162,7 @@ linux_entry () - fi - - echo " insmod gzio" | sed "s/^/$submenu_indentation/" -+ echo " if [ x\$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi" | sed "s/^/$submenu_indentation/" - - if [ x$dirname = x/ ]; then - if [ -z "${prepare_root_cache}" ]; then diff --git a/patches/grub/2.04/install-efi-adjust-distributor.patch b/patches/grub/2.04/install-efi-adjust-distributor.patch deleted file mode 100644 index b80fe03b1..000000000 --- a/patches/grub/2.04/install-efi-adjust-distributor.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 80341ef386df5bfe94a1e242700be34caa155809 Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Mon, 13 Jan 2014 12:13:27 +0000 -Subject: Adjust efi_distributor for some distributions - -This is not a very good approach, and certainly not sanely upstreamable; -we probably need to split GRUB_DISTRIBUTOR into a couple of different -variables. - -Bug-Ubuntu: https://bugs.launchpad.net/bugs/1242417 -Bug-Debian: https://bugs.debian.org/932966 -Forwarded: not-needed -Last-Update: 2019-08-06 - -Patch-Name: install-efi-adjust-distributor.patch ---- - util/grub-install.c | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/util/grub-install.c b/util/grub-install.c -index b0c7c7c37..e89667ff2 100644 ---- a/util/grub-install.c -+++ b/util/grub-install.c -@@ -1115,6 +1115,10 @@ main (int argc, char *argv[]) - */ - char *t; - efi_distributor = bootloader_id; -+ if (strcmp (efi_distributor, "kubuntu") == 0) -+ efi_distributor = "ubuntu"; -+ else if (strcmp (efi_distributor, "devuan") == 0) -+ efi_distributor = "debian"; - switch (platform) - { - case GRUB_INSTALL_PLATFORM_I386_EFI: diff --git a/patches/grub/2.04/install-efi-fallback.patch b/patches/grub/2.04/install-efi-fallback.patch deleted file mode 100644 index 3207dd475..000000000 --- a/patches/grub/2.04/install-efi-fallback.patch +++ /dev/null @@ -1,91 +0,0 @@ -From cf15ef6dc47c0304d0bcf5308a8f42da8da54100 Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Mon, 13 Jan 2014 12:13:05 +0000 -Subject: Fall back to non-EFI if booted using EFI but -efi is missing - -It may be possible, particularly in recovery situations, to be booted -using EFI on x86 when only the i386-pc target is installed, or on ARM -when only the arm-uboot target is installed. There's nothing actually -stopping us installing i386-pc or arm-uboot from an EFI environment, and -it's better than returning a confusing error. - -Author: Steve McIntyre <93sam@debian.org> -Forwarded: no -Last-Update: 2019-05-24 - -Patch-Name: install-efi-fallback.patch ---- - grub-core/osdep/linux/platform.c | 40 ++++++++++++++++++++++++++++---- - 1 file changed, 35 insertions(+), 5 deletions(-) - -diff --git a/grub-core/osdep/linux/platform.c b/grub-core/osdep/linux/platform.c -index e28a79dab..2e7f72086 100644 ---- a/grub-core/osdep/linux/platform.c -+++ b/grub-core/osdep/linux/platform.c -@@ -19,10 +19,12 @@ - #include - - #include -+#include - #include - #include - #include - #include -+#include - #include - - #include -@@ -128,9 +130,24 @@ const char * - grub_install_get_default_arm_platform (void) - { - if (is_efi_system()) -- return "arm-efi"; -- else -- return "arm-uboot"; -+ { -+ const char *pkglibdir = grub_util_get_pkglibdir (); -+ const char *platform; -+ char *pd; -+ int found; -+ -+ platform = "arm-efi"; -+ -+ pd = grub_util_path_concat (2, pkglibdir, platform); -+ found = grub_util_is_directory (pd); -+ free (pd); -+ if (found) -+ return platform; -+ else -+ grub_util_info ("... but %s platform not available", platform); -+ } -+ -+ return "arm-uboot"; - } - - const char * -@@ -138,10 +155,23 @@ grub_install_get_default_x86_platform (void) - { - if (is_efi_system()) - { -+ const char *pkglibdir = grub_util_get_pkglibdir (); -+ const char *platform; -+ char *pd; -+ int found; -+ - if (read_platform_size() == 64) -- return "x86_64-efi"; -+ platform = "x86_64-efi"; -+ else -+ platform = "i386-efi"; -+ -+ pd = grub_util_path_concat (2, pkglibdir, platform); -+ found = grub_util_is_directory (pd); -+ free (pd); -+ if (found) -+ return platform; - else -- return "i386-efi"; -+ grub_util_info ("... but %s platform not available", platform); - } - - grub_util_info ("Looking for /proc/device-tree .."); diff --git a/patches/grub/2.04/install-locale-langpack.patch b/patches/grub/2.04/install-locale-langpack.patch deleted file mode 100644 index 12e9ca289..000000000 --- a/patches/grub/2.04/install-locale-langpack.patch +++ /dev/null @@ -1,116 +0,0 @@ -From 6cc599e9bc39386fcd59f95c68b8a93e06734f06 Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Mon, 13 Jan 2014 12:13:07 +0000 -Subject: Prefer translations from Ubuntu language packs if available - -Bug-Ubuntu: https://bugs.launchpad.net/bugs/537998 -Forwarded: not-needed -Last-Update: 2013-12-25 - -Patch-Name: install-locale-langpack.patch ---- - util/grub-install-common.c | 37 ++++++++++++++++++++++++++++++------- - 1 file changed, 30 insertions(+), 7 deletions(-) - -diff --git a/util/grub-install-common.c b/util/grub-install-common.c -index ca0ac612a..fdfe2c7ea 100644 ---- a/util/grub-install-common.c -+++ b/util/grub-install-common.c -@@ -609,17 +609,25 @@ get_localedir (void) - } - - static void --copy_locales (const char *dstd) -+copy_locales (const char *dstd, int langpack) - { - grub_util_fd_dir_t d; - grub_util_fd_dirent_t de; - const char *locale_dir = get_localedir (); -+ char *dir; - -- d = grub_util_fd_opendir (locale_dir); -+ if (langpack) -+ dir = xasprintf ("%s-langpack", locale_dir); -+ else -+ dir = xstrdup (locale_dir); -+ -+ d = grub_util_fd_opendir (dir); - if (!d) - { -- grub_util_warn (_("cannot open directory `%s': %s"), -- locale_dir, grub_util_fd_strerror ()); -+ if (!langpack) -+ grub_util_warn (_("cannot open directory `%s': %s"), -+ dir, grub_util_fd_strerror ()); -+ free (dir); - return; - } - -@@ -636,14 +644,14 @@ copy_locales (const char *dstd) - if (ext && (grub_strcmp (ext, ".mo") == 0 - || grub_strcmp (ext, ".gmo") == 0)) - { -- srcf = grub_util_path_concat (2, locale_dir, de->d_name); -+ srcf = grub_util_path_concat (2, dir, de->d_name); - dstf = grub_util_path_concat (2, dstd, de->d_name); - ext = grub_strrchr (dstf, '.'); - grub_strcpy (ext, ".mo"); - } - else - { -- srcf = grub_util_path_concat_ext (4, locale_dir, de->d_name, -+ srcf = grub_util_path_concat_ext (4, dir, de->d_name, - "LC_MESSAGES", PACKAGE, ".mo"); - dstf = grub_util_path_concat_ext (2, dstd, de->d_name, ".mo"); - } -@@ -652,6 +660,7 @@ copy_locales (const char *dstd) - free (dstf); - } - grub_util_fd_closedir (d); -+ free (dir); - } - #endif - -@@ -670,13 +679,15 @@ grub_install_copy_nls(const char *src __attribute__ ((unused)), - { - char *srcd = grub_util_path_concat (2, src, "po"); - copy_by_ext (srcd, dst_locale, ".mo", 0); -- copy_locales (dst_locale); -+ copy_locales (dst_locale, 0); -+ copy_locales (dst_locale, 1); - free (srcd); - } - else - { - size_t i; - const char *locale_dir = get_localedir (); -+ char *locale_langpack_dir = xasprintf ("%s-langpack", locale_dir); - - for (i = 0; i < install_locales.n_entries; i++) - { -@@ -693,6 +704,16 @@ grub_install_copy_nls(const char *src __attribute__ ((unused)), - continue; - } - free (srcf); -+ srcf = grub_util_path_concat_ext (4, locale_langpack_dir, -+ install_locales.entries[i], -+ "LC_MESSAGES", PACKAGE, ".mo"); -+ if (grub_install_compress_file (srcf, dstf, 0)) -+ { -+ free (srcf); -+ free (dstf); -+ continue; -+ } -+ free (srcf); - srcf = grub_util_path_concat_ext (4, locale_dir, - install_locales.entries[i], - "LC_MESSAGES", PACKAGE, ".mo"); -@@ -702,6 +723,8 @@ grub_install_copy_nls(const char *src __attribute__ ((unused)), - free (srcf); - free (dstf); - } -+ -+ free (locale_langpack_dir); - } - free (dst_locale); - #endif diff --git a/patches/grub/2.04/install-powerpc-machtypes.patch b/patches/grub/2.04/install-powerpc-machtypes.patch deleted file mode 100644 index 61e7a5b06..000000000 --- a/patches/grub/2.04/install-powerpc-machtypes.patch +++ /dev/null @@ -1,220 +0,0 @@ -From 37fdf067b8bf60e999da5e34f9394ea93904fe0c Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Tue, 28 Jan 2014 14:40:02 +0000 -Subject: Port yaboot logic for various powerpc machine types - -Some powerpc machines require not updating the NVRAM. This can be handled -by existing grub-install command-line options, but it's friendlier to detect -this automatically. - -On chrp_ibm machines, use the nvram utility rather than nvsetenv. (This -is possibly suitable for other machines too, but that needs to be -verified.) - -Forwarded: no -Last-Update: 2014-10-15 - -Patch-Name: install-powerpc-machtypes.patch ---- - grub-core/osdep/basic/platform.c | 5 +++ - grub-core/osdep/linux/platform.c | 72 ++++++++++++++++++++++++++++++ - grub-core/osdep/unix/platform.c | 28 +++++++++--- - grub-core/osdep/windows/platform.c | 6 +++ - include/grub/util/install.h | 3 ++ - util/grub-install.c | 11 +++++ - 6 files changed, 119 insertions(+), 6 deletions(-) - -diff --git a/grub-core/osdep/basic/platform.c b/grub-core/osdep/basic/platform.c -index a7dafd85a..6c293ed2d 100644 ---- a/grub-core/osdep/basic/platform.c -+++ b/grub-core/osdep/basic/platform.c -@@ -30,3 +30,8 @@ grub_install_get_default_x86_platform (void) - return "i386-pc"; - } - -+const char * -+grub_install_get_default_powerpc_machtype (void) -+{ -+ return "generic"; -+} -diff --git a/grub-core/osdep/linux/platform.c b/grub-core/osdep/linux/platform.c -index 2e7f72086..5b37366d4 100644 ---- a/grub-core/osdep/linux/platform.c -+++ b/grub-core/osdep/linux/platform.c -@@ -24,6 +24,7 @@ - #include - #include - #include -+#include - #include - #include - -@@ -184,3 +185,74 @@ grub_install_get_default_x86_platform (void) - grub_util_info ("... not found"); - return "i386-pc"; - } -+ -+const char * -+grub_install_get_default_powerpc_machtype (void) -+{ -+ FILE *fp; -+ char *buf = NULL; -+ size_t len = 0; -+ const char *machtype = "generic"; -+ -+ fp = grub_util_fopen ("/proc/cpuinfo", "r"); -+ if (! fp) -+ return machtype; -+ -+ while (getline (&buf, &len, fp) > 0) -+ { -+ if (strncmp (buf, "pmac-generation", -+ sizeof ("pmac-generation") - 1) == 0) -+ { -+ if (strstr (buf, "NewWorld")) -+ { -+ machtype = "pmac_newworld"; -+ break; -+ } -+ if (strstr (buf, "OldWorld")) -+ { -+ machtype = "pmac_oldworld"; -+ break; -+ } -+ } -+ -+ if (strncmp (buf, "motherboard", sizeof ("motherboard") - 1) == 0 && -+ strstr (buf, "AAPL")) -+ { -+ machtype = "pmac_oldworld"; -+ break; -+ } -+ -+ if (strncmp (buf, "machine", sizeof ("machine") - 1) == 0 && -+ strstr (buf, "CHRP IBM")) -+ { -+ if (strstr (buf, "qemu")) -+ { -+ machtype = "chrp_ibm_qemu"; -+ break; -+ } -+ else -+ { -+ machtype = "chrp_ibm"; -+ break; -+ } -+ } -+ -+ if (strncmp (buf, "platform", sizeof ("platform") - 1) == 0) -+ { -+ if (strstr (buf, "Maple")) -+ { -+ machtype = "maple"; -+ break; -+ } -+ if (strstr (buf, "Cell")) -+ { -+ machtype = "cell"; -+ break; -+ } -+ } -+ } -+ -+ free (buf); -+ fclose (fp); -+ return machtype; -+} -diff --git a/grub-core/osdep/unix/platform.c b/grub-core/osdep/unix/platform.c -index 55b8f4016..9c439326a 100644 ---- a/grub-core/osdep/unix/platform.c -+++ b/grub-core/osdep/unix/platform.c -@@ -218,13 +218,29 @@ grub_install_register_ieee1275 (int is_prep, const char *install_device, - else - boot_device = get_ofpathname (install_device); - -- if (grub_util_exec ((const char * []){ "nvsetenv", "boot-device", -- boot_device, NULL })) -+ if (strcmp (grub_install_get_default_powerpc_machtype (), "chrp_ibm") == 0) - { -- char *cmd = xasprintf ("setenv boot-device %s", boot_device); -- grub_util_error (_("`nvsetenv' failed. \nYou will have to set `boot-device' variable manually. At the IEEE1275 prompt, type:\n %s\n"), -- cmd); -- free (cmd); -+ char *arg = xasprintf ("boot-device=%s", boot_device); -+ if (grub_util_exec ((const char * []){ "nvram", -+ "--update-config", arg, NULL })) -+ { -+ char *cmd = xasprintf ("setenv boot-device %s", boot_device); -+ grub_util_error (_("`nvram' failed. \nYou will have to set `boot-device' variable manually. At the IEEE1275 prompt, type:\n %s\n"), -+ cmd); -+ free (cmd); -+ } -+ free (arg); -+ } -+ else -+ { -+ if (grub_util_exec ((const char * []){ "nvsetenv", "boot-device", -+ boot_device, NULL })) -+ { -+ char *cmd = xasprintf ("setenv boot-device %s", boot_device); -+ grub_util_error (_("`nvsetenv' failed. \nYou will have to set `boot-device' variable manually. At the IEEE1275 prompt, type:\n %s\n"), -+ cmd); -+ free (cmd); -+ } - } - - free (boot_device); -diff --git a/grub-core/osdep/windows/platform.c b/grub-core/osdep/windows/platform.c -index 7eb53fe01..e19a3d9a8 100644 ---- a/grub-core/osdep/windows/platform.c -+++ b/grub-core/osdep/windows/platform.c -@@ -128,6 +128,12 @@ grub_install_get_default_x86_platform (void) - return "i386-efi"; - } - -+const char * -+grub_install_get_default_powerpc_machtype (void) -+{ -+ return "generic"; -+} -+ - static void * - get_efi_variable (const wchar_t *varname, ssize_t *len) - { -diff --git a/include/grub/util/install.h b/include/grub/util/install.h -index 2631b1074..8aeb5c4f2 100644 ---- a/include/grub/util/install.h -+++ b/include/grub/util/install.h -@@ -216,6 +216,9 @@ grub_install_get_default_arm_platform (void); - const char * - grub_install_get_default_x86_platform (void); - -+const char * -+grub_install_get_default_powerpc_machtype (void); -+ - int - grub_install_register_efi (grub_device_t efidir_grub_dev, - const char *efifile_path, -diff --git a/util/grub-install.c b/util/grub-install.c -index e89667ff2..b82c14d41 100644 ---- a/util/grub-install.c -+++ b/util/grub-install.c -@@ -1179,7 +1179,18 @@ main (int argc, char *argv[]) - - if (platform == GRUB_INSTALL_PLATFORM_POWERPC_IEEE1275) - { -+ const char *machtype = grub_install_get_default_powerpc_machtype (); - int is_guess = 0; -+ -+ if (strcmp (machtype, "pmac_oldworld") == 0) -+ update_nvram = 0; -+ else if (strcmp (machtype, "cell") == 0) -+ update_nvram = 0; -+ else if (strcmp (machtype, "generic") == 0) -+ update_nvram = 0; -+ else if (strcmp (machtype, "chrp_ibm_qemu") == 0) -+ update_nvram = 0; -+ - if (!macppcdir) - { - char *d; diff --git a/patches/grub/2.04/install-signed.patch b/patches/grub/2.04/install-signed.patch deleted file mode 100644 index b615dd9dd..000000000 --- a/patches/grub/2.04/install-signed.patch +++ /dev/null @@ -1,311 +0,0 @@ -From a80b79bdb9caeef728d8fbc76735bd9e594569d3 Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Mon, 13 Jan 2014 12:13:22 +0000 -Subject: Install signed images if UEFI Secure Boot is enabled -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Author: Stéphane Graber -Author: Steve Langasek -Author: Linn Crosetto -Author: Mathieu Trudel-Lapierre -Forwarded: no -Last-Update: 2016-11-01 - -Patch-Name: install-signed.patch ---- - util/grub-install.c | 212 ++++++++++++++++++++++++++++++++------------ - 1 file changed, 153 insertions(+), 59 deletions(-) - -diff --git a/util/grub-install.c b/util/grub-install.c -index 3b4606eef..b0c7c7c37 100644 ---- a/util/grub-install.c -+++ b/util/grub-install.c -@@ -80,6 +80,7 @@ static char *label_color; - static char *label_bgcolor; - static char *product_version; - static int add_rs_codes = 1; -+static int uefi_secure_boot = 1; - - enum - { -@@ -110,7 +111,9 @@ enum - OPTION_LABEL_FONT, - OPTION_LABEL_COLOR, - OPTION_LABEL_BGCOLOR, -- OPTION_PRODUCT_VERSION -+ OPTION_PRODUCT_VERSION, -+ OPTION_UEFI_SECURE_BOOT, -+ OPTION_NO_UEFI_SECURE_BOOT - }; - - static int fs_probe = 1; -@@ -234,6 +237,14 @@ argp_parser (int key, char *arg, struct argp_state *state) - bootloader_id = xstrdup (arg); - return 0; - -+ case OPTION_UEFI_SECURE_BOOT: -+ uefi_secure_boot = 1; -+ return 0; -+ -+ case OPTION_NO_UEFI_SECURE_BOOT: -+ uefi_secure_boot = 0; -+ return 0; -+ - case ARGP_KEY_ARG: - if (install_device) - grub_util_error ("%s", _("More than one install device?")); -@@ -303,6 +314,14 @@ static struct argp_option options[] = { - {"label-color", OPTION_LABEL_COLOR, N_("COLOR"), 0, N_("use COLOR for label"), 2}, - {"label-bgcolor", OPTION_LABEL_BGCOLOR, N_("COLOR"), 0, N_("use COLOR for label background"), 2}, - {"product-version", OPTION_PRODUCT_VERSION, N_("STRING"), 0, N_("use STRING as product version"), 2}, -+ {"uefi-secure-boot", OPTION_UEFI_SECURE_BOOT, 0, 0, -+ N_("install an image usable with UEFI Secure Boot. " -+ "This option is only available on EFI and if the grub-efi-amd64-signed " -+ "package is installed."), 2}, -+ {"no-uefi-secure-boot", OPTION_NO_UEFI_SECURE_BOOT, 0, 0, -+ N_("do not install an image usable with UEFI Secure Boot, even if the " -+ "system was currently started using it. " -+ "This option is only available on EFI."), 2}, - {0, 0, 0, 0, 0, 0} - }; - -@@ -825,7 +844,8 @@ main (int argc, char *argv[]) - { - int is_efi = 0; - const char *efi_distributor = NULL; -- const char *efi_file = NULL; -+ const char *efi_suffix = NULL, *efi_suffix_upper = NULL; -+ char *efi_file = NULL; - char **grub_devices; - grub_fs_t grub_fs; - grub_device_t grub_dev = NULL; -@@ -1095,6 +1115,39 @@ main (int argc, char *argv[]) - */ - char *t; - efi_distributor = bootloader_id; -+ switch (platform) -+ { -+ case GRUB_INSTALL_PLATFORM_I386_EFI: -+ efi_suffix = "ia32"; -+ efi_suffix_upper = "IA32"; -+ break; -+ case GRUB_INSTALL_PLATFORM_X86_64_EFI: -+ efi_suffix = "x64"; -+ efi_suffix_upper = "X64"; -+ break; -+ case GRUB_INSTALL_PLATFORM_IA64_EFI: -+ efi_suffix = "ia64"; -+ efi_suffix_upper = "IA64"; -+ break; -+ case GRUB_INSTALL_PLATFORM_ARM_EFI: -+ efi_suffix = "arm"; -+ efi_suffix_upper = "ARM"; -+ break; -+ case GRUB_INSTALL_PLATFORM_ARM64_EFI: -+ efi_suffix = "aa64"; -+ efi_suffix_upper = "AA64"; -+ break; -+ case GRUB_INSTALL_PLATFORM_RISCV32_EFI: -+ efi_suffix = "riscv32"; -+ efi_suffix_upper = "RISCV32"; -+ break; -+ case GRUB_INSTALL_PLATFORM_RISCV64_EFI: -+ efi_suffix = "riscv64"; -+ efi_suffix_upper = "RISCV64"; -+ break; -+ default: -+ break; -+ } - if (removable) - { - /* The specification makes stricter requirements of removable -@@ -1103,66 +1156,16 @@ main (int argc, char *argv[]) - must have a specific file name depending on the architecture. - */ - efi_distributor = "BOOT"; -- switch (platform) -- { -- case GRUB_INSTALL_PLATFORM_I386_EFI: -- efi_file = "BOOTIA32.EFI"; -- break; -- case GRUB_INSTALL_PLATFORM_X86_64_EFI: -- efi_file = "BOOTX64.EFI"; -- break; -- case GRUB_INSTALL_PLATFORM_IA64_EFI: -- efi_file = "BOOTIA64.EFI"; -- break; -- case GRUB_INSTALL_PLATFORM_ARM_EFI: -- efi_file = "BOOTARM.EFI"; -- break; -- case GRUB_INSTALL_PLATFORM_ARM64_EFI: -- efi_file = "BOOTAA64.EFI"; -- break; -- case GRUB_INSTALL_PLATFORM_RISCV32_EFI: -- efi_file = "BOOTRISCV32.EFI"; -- break; -- case GRUB_INSTALL_PLATFORM_RISCV64_EFI: -- efi_file = "BOOTRISCV64.EFI"; -- break; -- default: -- grub_util_error ("%s", _("You've found a bug")); -- break; -- } -+ if (!efi_suffix) -+ grub_util_error ("%s", _("You've found a bug")); -+ efi_file = xasprintf ("BOOT%s.EFI", efi_suffix_upper); - } - else - { - /* It is convenient for each architecture to have a different - efi_file, so that different versions can be installed in parallel. - */ -- switch (platform) -- { -- case GRUB_INSTALL_PLATFORM_I386_EFI: -- efi_file = "grubia32.efi"; -- break; -- case GRUB_INSTALL_PLATFORM_X86_64_EFI: -- efi_file = "grubx64.efi"; -- break; -- case GRUB_INSTALL_PLATFORM_IA64_EFI: -- efi_file = "grubia64.efi"; -- break; -- case GRUB_INSTALL_PLATFORM_ARM_EFI: -- efi_file = "grubarm.efi"; -- break; -- case GRUB_INSTALL_PLATFORM_ARM64_EFI: -- efi_file = "grubaa64.efi"; -- break; -- case GRUB_INSTALL_PLATFORM_RISCV32_EFI: -- efi_file = "grubriscv32.efi"; -- break; -- case GRUB_INSTALL_PLATFORM_RISCV64_EFI: -- efi_file = "grubriscv64.efi"; -- break; -- default: -- efi_file = "grub.efi"; -- break; -- } -+ efi_file = xasprintf ("grub%s.efi", efi_suffix); - } - t = grub_util_path_concat (3, efidir, "EFI", efi_distributor); - free (efidir); -@@ -1368,14 +1371,41 @@ main (int argc, char *argv[]) - } - } - -- if (!have_abstractions) -+ char *efi_signed = NULL; -+ switch (platform) -+ { -+ case GRUB_INSTALL_PLATFORM_I386_EFI: -+ case GRUB_INSTALL_PLATFORM_X86_64_EFI: -+ case GRUB_INSTALL_PLATFORM_ARM_EFI: -+ case GRUB_INSTALL_PLATFORM_ARM64_EFI: -+ case GRUB_INSTALL_PLATFORM_IA64_EFI: -+ { -+ char *dir = xasprintf ("%s-signed", grub_install_source_directory); -+ char *signed_image; -+ if (removable) -+ signed_image = xasprintf ("gcd%s.efi.signed", efi_suffix); -+ else -+ signed_image = xasprintf ("grub%s.efi.signed", efi_suffix); -+ efi_signed = grub_util_path_concat (2, dir, signed_image); -+ break; -+ } -+ -+ default: -+ break; -+ } -+ -+ if (!efi_signed || !grub_util_is_regular (efi_signed)) -+ uefi_secure_boot = 0; -+ -+ if (!have_abstractions || uefi_secure_boot) - { - if ((disk_module && grub_strcmp (disk_module, "biosdisk") != 0) - || grub_drives[1] - || (!install_drive - && platform != GRUB_INSTALL_PLATFORM_POWERPC_IEEE1275) - || (install_drive && !is_same_disk (grub_drives[0], install_drive)) -- || !have_bootdev (platform)) -+ || !have_bootdev (platform) -+ || uefi_secure_boot) - { - char *uuid = NULL; - /* generic method (used on coreboot and ata mod). */ -@@ -1916,7 +1946,71 @@ main (int argc, char *argv[]) - case GRUB_INSTALL_PLATFORM_IA64_EFI: - { - char *dst = grub_util_path_concat (2, efidir, efi_file); -- grub_install_copy_file (imgfile, dst, 1); -+ if (uefi_secure_boot) -+ { -+ char *shim_signed = NULL; -+ char *mok_signed = NULL, *mok_file = NULL; -+ char *fb_signed = NULL, *fb_file = NULL; -+ char *config_dst; -+ FILE *config_dst_f; -+ -+ shim_signed = xasprintf ("/usr/lib/shim/shim%s.efi.signed", efi_suffix); -+ mok_signed = xasprintf ("mm%s.efi.signed", efi_suffix); -+ mok_file = xasprintf ("mm%s.efi", efi_suffix); -+ fb_signed = xasprintf ("fb%s.efi.signed", efi_suffix); -+ fb_file = xasprintf ("fb%s.efi", efi_suffix); -+ -+ if (grub_util_is_regular (shim_signed)) -+ { -+ char *chained_base, *chained_dst; -+ char *mok_src, *mok_dst, *fb_src, *fb_dst; -+ if (!removable) -+ { -+ free (efi_file); -+ efi_file = xasprintf ("shim%s.efi", efi_suffix); -+ free (dst); -+ dst = grub_util_path_concat (2, efidir, efi_file); -+ } -+ grub_install_copy_file (shim_signed, dst, 1); -+ chained_base = xasprintf ("grub%s.efi", efi_suffix); -+ chained_dst = grub_util_path_concat (2, efidir, chained_base); -+ grub_install_copy_file (efi_signed, chained_dst, 1); -+ free (chained_dst); -+ free (chained_base); -+ -+ /* Not critical, so not an error if they are not present (as it -+ won't be for older releases); but if we have them, make -+ sure they are installed. */ -+ mok_src = grub_util_path_concat (2, "/usr/lib/shim/", -+ mok_signed); -+ mok_dst = grub_util_path_concat (2, efidir, -+ mok_file); -+ grub_install_copy_file (mok_src, -+ mok_dst, 0); -+ free (mok_src); -+ free (mok_dst); -+ -+ fb_src = grub_util_path_concat (2, "/usr/lib/shim/", -+ fb_signed); -+ fb_dst = grub_util_path_concat (2, efidir, -+ fb_file); -+ grub_install_copy_file (fb_src, -+ fb_dst, 0); -+ free (fb_src); -+ free (fb_dst); -+ } -+ else -+ grub_install_copy_file (efi_signed, dst, 1); -+ -+ config_dst = grub_util_path_concat (2, efidir, "grub.cfg"); -+ grub_install_copy_file (load_cfg, config_dst, 1); -+ config_dst_f = grub_util_fopen (config_dst, "ab"); -+ fprintf (config_dst_f, "configfile $prefix/grub.cfg\n"); -+ fclose (config_dst_f); -+ free (config_dst); -+ } -+ else -+ grub_install_copy_file (imgfile, dst, 1); - free (dst); - } - if (!removable && update_nvram) diff --git a/patches/grub/2.04/install-stage2-confusion.patch b/patches/grub/2.04/install-stage2-confusion.patch deleted file mode 100644 index 214a7f6da..000000000 --- a/patches/grub/2.04/install-stage2-confusion.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 81cb5ffcbdc273cb57ccc355342d81cf34d8a7b7 Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Mon, 13 Jan 2014 12:12:58 +0000 -Subject: If GRUB Legacy is still around, tell packaging to ignore it - -Bug-Debian: http://bugs.debian.org/586143 -Forwarded: not-needed -Last-Update: 2013-12-25 - -Patch-Name: install-stage2-confusion.patch ---- - util/grub-install.c | 14 ++++++++++++++ - 1 file changed, 14 insertions(+) - -diff --git a/util/grub-install.c b/util/grub-install.c -index 8a55ad4b8..3b4606eef 100644 ---- a/util/grub-install.c -+++ b/util/grub-install.c -@@ -42,6 +42,7 @@ - #include - #include - #include -+#include - - #include - -@@ -1714,6 +1715,19 @@ main (int argc, char *argv[]) - grub_util_bios_setup (platdir, "boot.img", "core.img", - install_drive, force, - fs_probe, allow_floppy, add_rs_codes); -+ -+ /* If vestiges of GRUB Legacy still exist, tell the Debian packaging -+ that they can ignore them. */ -+ if (!rootdir && grub_util_is_regular ("/boot/grub/stage2") && -+ grub_util_is_regular ("/boot/grub/menu.lst")) -+ { -+ grub_util_fd_t fd; -+ -+ fd = grub_util_fd_open ("/boot/grub/grub2-installed", -+ GRUB_UTIL_FD_O_WRONLY); -+ grub_util_fd_close (fd); -+ } -+ - break; - } - case GRUB_INSTALL_PLATFORM_SPARC64_IEEE1275: diff --git a/patches/grub/2.04/is_sb_enabled_command.patch b/patches/grub/2.04/is_sb_enabled_command.patch deleted file mode 100644 index c82a00b04..000000000 --- a/patches/grub/2.04/is_sb_enabled_command.patch +++ /dev/null @@ -1,94 +0,0 @@ -From 0269b30263899d047f53df9b6a8acb61f6a61cb6 Mon Sep 17 00:00:00 2001 -From: Andriy Dobush -Date: Wed, 26 May 2021 11:12:27 +0300 -Subject: [PATCH] Add cli to enable check in config file if secure boot is - enabled Disbale gpg verification if UEFI secure boot is disabled - -Signed-off-by: Andriy Dobush - -Patch-Name: is_sb_enabled_command.patch ---- - grub-core/Makefile.core.def | 6 ++++ - grub-core/commands/efi/is_sb_enabled.c | 52 ++++++++++++++++++++++++++++++++++ - grub-core/commands/pgp.c | 6 ++++ - 3 files changed, 64 insertions(+) - create mode 100644 grub-core/commands/efi/is_sb_enabled.c - -diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def -index 836bf0a..3fb985f 100644 ---- a/grub-core/Makefile.core.def -+++ b/grub-core/Makefile.core.def -@@ -799,6 +799,12 @@ module = { - }; - - module = { -+ name = is_sb_enabled; -+ common = commands/efi/is_sb_enabled.c; -+ enable = efi; -+}; -+ -+module = { - name = efifwsetup; - efi = commands/efi/efifwsetup.c; - enable = efi; -diff --git a/grub-core/commands/efi/is_sb_enabled.c b/grub-core/commands/efi/is_sb_enabled.c -new file mode 100644 -index 0000000..2955416 ---- /dev/null -+++ b/grub-core/commands/efi/is_sb_enabled.c -@@ -0,0 +1,52 @@ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 2012 Free Software Foundation, Inc. -+ * -+ * GRUB is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation, either version 3 of the License, or -+ * (at your option) any later version. -+ * -+ * GRUB is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with GRUB. If not, see . -+ */ -+#include -+#include -+#include -+ -+GRUB_MOD_LICENSE ("GPLv3+"); -+ -+static grub_err_t -+grub_cmd_is_sb_enabled (grub_command_t cmd __attribute__ ((unused)), -+ int argc __attribute__ ((unused)), -+ char **args __attribute__ ((unused))) -+{ -+ if (grub_efi_secure_boot ()) -+ { -+ grub_printf ("Secure Boot enabled"); -+ return 1; -+ } -+ else -+ { -+ grub_printf ("Secure Boot disabled"); -+ return 0; -+ } -+} -+ -+static grub_command_t cmd; -+ -+GRUB_MOD_INIT(is_sb_enabled) -+{ -+ cmd = grub_register_command ("is_sb_enabled", grub_cmd_is_sb_enabled, -+ "", "Show if secure boot is enabled"); -+} -+ -+GRUB_MOD_FINI(is_sb_enabled) -+{ -+ grub_unregister_command (cmd); -+} --- -2.11.0 - diff --git a/patches/grub/2.04/iso9660-realloc-leak.patch b/patches/grub/2.04/iso9660-realloc-leak.patch deleted file mode 100644 index 3d449b22a..000000000 --- a/patches/grub/2.04/iso9660-realloc-leak.patch +++ /dev/null @@ -1,67 +0,0 @@ -From 99c176e216b7196ac8d2af2b9bc483070b1a170a Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Sat, 4 Jul 2020 12:25:09 -0400 -Subject: iso9660: Don't leak memory on realloc() failures - -Signed-off-by: Peter Jones -Reviewed-by: Daniel Kiper - -Patch-Name: iso9660-realloc-leak.patch ---- - grub-core/fs/iso9660.c | 24 ++++++++++++++++++++---- - 1 file changed, 20 insertions(+), 4 deletions(-) - -diff --git a/grub-core/fs/iso9660.c b/grub-core/fs/iso9660.c -index 7ba5b300b..5ec4433b8 100644 ---- a/grub-core/fs/iso9660.c -+++ b/grub-core/fs/iso9660.c -@@ -533,14 +533,20 @@ add_part (struct iterate_dir_ctx *ctx, - { - int size = ctx->symlink ? grub_strlen (ctx->symlink) : 0; - grub_size_t sz; -+ char *new; - - if (grub_add (size, len2, &sz) || - grub_add (sz, 1, &sz)) - return; - -- ctx->symlink = grub_realloc (ctx->symlink, sz); -- if (! ctx->symlink) -- return; -+ new = grub_realloc (ctx->symlink, sz); -+ if (!new) -+ { -+ grub_free (ctx->symlink); -+ ctx->symlink = NULL; -+ return; -+ } -+ ctx->symlink = new; - - grub_memcpy (ctx->symlink + size, part, len2); - ctx->symlink[size + len2] = 0; -@@ -634,7 +640,12 @@ susp_iterate_dir (struct grub_iso9660_susp_entry *entry, - is the length. Both are part of the `Component - Record'. */ - if (ctx->symlink && !ctx->was_continue) -- add_part (ctx, "/", 1); -+ { -+ add_part (ctx, "/", 1); -+ if (grub_errno) -+ return grub_errno; -+ } -+ - add_part (ctx, (char *) &entry->data[pos + 2], - entry->data[pos + 1]); - ctx->was_continue = (entry->data[pos] & 1); -@@ -653,6 +664,11 @@ susp_iterate_dir (struct grub_iso9660_susp_entry *entry, - add_part (ctx, "/", 1); - break; - } -+ -+ /* Check if grub_realloc() failed in add_part(). */ -+ if (grub_errno) -+ return grub_errno; -+ - /* In pos + 1 the length of the `Component Record' is - stored. */ - pos += entry->data[pos + 1] + 2; diff --git a/patches/grub/2.04/linux-initrd-overflow.patch b/patches/grub/2.04/linux-initrd-overflow.patch deleted file mode 100644 index 716924e39..000000000 --- a/patches/grub/2.04/linux-initrd-overflow.patch +++ /dev/null @@ -1,167 +0,0 @@ -From 81fae35a346bef8f7b27ba8d186a18ae21281755 Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Sat, 25 Jul 2020 12:15:37 +0100 -Subject: linux: Fix integer overflows in initrd size handling - -These could be triggered by a crafted filesystem with very large files. - -Fixes: CVE-2020-15707 - -Signed-off-by: Colin Watson -Reviewed-by: Jan Setje-Eilers - -Patch-Name: linux-initrd-overflow.patch ---- - grub-core/loader/linux.c | 74 +++++++++++++++++++++++++++++----------- - 1 file changed, 54 insertions(+), 20 deletions(-) - -diff --git a/grub-core/loader/linux.c b/grub-core/loader/linux.c -index 25624ebc1..e9f819ee9 100644 ---- a/grub-core/loader/linux.c -+++ b/grub-core/loader/linux.c -@@ -4,6 +4,7 @@ - #include - #include - #include -+#include - - struct newc_head - { -@@ -98,13 +99,13 @@ free_dir (struct dir *root) - grub_free (root); - } - --static grub_size_t -+static grub_err_t - insert_dir (const char *name, struct dir **root, -- grub_uint8_t *ptr) -+ grub_uint8_t *ptr, grub_size_t *size) - { - struct dir *cur, **head = root; - const char *cb, *ce = name; -- grub_size_t size = 0; -+ *size = 0; - while (1) - { - for (cb = ce; *cb == '/'; cb++); -@@ -130,14 +131,22 @@ insert_dir (const char *name, struct dir **root, - ptr = make_header (ptr, name, ce - name, - 040777, 0); - } -- size += ALIGN_UP ((ce - (char *) name) -- + sizeof (struct newc_head), 4); -+ if (grub_add (*size, -+ ALIGN_UP ((ce - (char *) name) -+ + sizeof (struct newc_head), 4), -+ size)) -+ { -+ grub_error (GRUB_ERR_OUT_OF_RANGE, N_("overflow is detected")); -+ grub_free (n->name); -+ grub_free (n); -+ return grub_errno; -+ } - *head = n; - cur = n; - } - root = &cur->next; - } -- return size; -+ return GRUB_ERR_NONE; - } - - grub_err_t -@@ -173,26 +182,33 @@ grub_initrd_init (int argc, char *argv[], - eptr = grub_strchr (ptr, ':'); - if (eptr) - { -+ grub_size_t dir_size, name_len; -+ - initrd_ctx->components[i].newc_name = grub_strndup (ptr, eptr - ptr); -- if (!initrd_ctx->components[i].newc_name) -+ if (!initrd_ctx->components[i].newc_name || -+ insert_dir (initrd_ctx->components[i].newc_name, &root, 0, -+ &dir_size)) - { - grub_initrd_close (initrd_ctx); - return grub_errno; - } -- initrd_ctx->size -- += ALIGN_UP (sizeof (struct newc_head) -- + grub_strlen (initrd_ctx->components[i].newc_name), -- 4); -- initrd_ctx->size += insert_dir (initrd_ctx->components[i].newc_name, -- &root, 0); -+ name_len = grub_strlen (initrd_ctx->components[i].newc_name); -+ if (grub_add (initrd_ctx->size, -+ ALIGN_UP (sizeof (struct newc_head) + name_len, 4), -+ &initrd_ctx->size) || -+ grub_add (initrd_ctx->size, dir_size, &initrd_ctx->size)) -+ goto overflow; - newc = 1; - fname = eptr + 1; - } - } - else if (newc) - { -- initrd_ctx->size += ALIGN_UP (sizeof (struct newc_head) -- + sizeof ("TRAILER!!!") - 1, 4); -+ if (grub_add (initrd_ctx->size, -+ ALIGN_UP (sizeof (struct newc_head) -+ + sizeof ("TRAILER!!!") - 1, 4), -+ &initrd_ctx->size)) -+ goto overflow; - free_dir (root); - root = 0; - newc = 0; -@@ -208,19 +224,29 @@ grub_initrd_init (int argc, char *argv[], - initrd_ctx->nfiles++; - initrd_ctx->components[i].size - = grub_file_size (initrd_ctx->components[i].file); -- initrd_ctx->size += initrd_ctx->components[i].size; -+ if (grub_add (initrd_ctx->size, initrd_ctx->components[i].size, -+ &initrd_ctx->size)) -+ goto overflow; - } - - if (newc) - { - initrd_ctx->size = ALIGN_UP (initrd_ctx->size, 4); -- initrd_ctx->size += ALIGN_UP (sizeof (struct newc_head) -- + sizeof ("TRAILER!!!") - 1, 4); -+ if (grub_add (initrd_ctx->size, -+ ALIGN_UP (sizeof (struct newc_head) -+ + sizeof ("TRAILER!!!") - 1, 4), -+ &initrd_ctx->size)) -+ goto overflow; - free_dir (root); - root = 0; - } - - return GRUB_ERR_NONE; -+ -+overflow: -+ free_dir (root); -+ grub_initrd_close (initrd_ctx); -+ return grub_error (GRUB_ERR_OUT_OF_RANGE, N_("overflow is detected")); - } - - grub_size_t -@@ -261,8 +287,16 @@ grub_initrd_load (struct grub_linux_initrd_context *initrd_ctx, - - if (initrd_ctx->components[i].newc_name) - { -- ptr += insert_dir (initrd_ctx->components[i].newc_name, -- &root, ptr); -+ grub_size_t dir_size; -+ -+ if (insert_dir (initrd_ctx->components[i].newc_name, &root, ptr, -+ &dir_size)) -+ { -+ free_dir (root); -+ grub_initrd_close (initrd_ctx); -+ return grub_errno; -+ } -+ ptr += dir_size; - ptr = make_header (ptr, initrd_ctx->components[i].newc_name, - grub_strlen (initrd_ctx->components[i].newc_name), - 0100777, diff --git a/patches/grub/2.04/linux-loader-overflow.patch b/patches/grub/2.04/linux-loader-overflow.patch deleted file mode 100644 index 5e7e31c5c..000000000 --- a/patches/grub/2.04/linux-loader-overflow.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 6d438b80c4cfe75a67f619918706630ccc2252b6 Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Fri, 24 Jul 2020 13:57:27 -0400 -Subject: linux loader: avoid overflow on initrd size calculation - -Signed-off-by: Peter Jones - -Patch-Name: linux-loader-overflow.patch ---- - grub-core/loader/linux.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/grub-core/loader/linux.c b/grub-core/loader/linux.c -index 471b214d6..25624ebc1 100644 ---- a/grub-core/loader/linux.c -+++ b/grub-core/loader/linux.c -@@ -151,8 +151,8 @@ grub_initrd_init (int argc, char *argv[], - initrd_ctx->nfiles = 0; - initrd_ctx->components = 0; - -- initrd_ctx->components = grub_zalloc (argc -- * sizeof (initrd_ctx->components[0])); -+ initrd_ctx->components = grub_calloc (argc, -+ sizeof (initrd_ctx->components[0])); - if (!initrd_ctx->components) - return grub_errno; - diff --git a/patches/grub/2.04/linuxefi.patch b/patches/grub/2.04/linuxefi.patch deleted file mode 100644 index c467a06d1..000000000 --- a/patches/grub/2.04/linuxefi.patch +++ /dev/null @@ -1,550 +0,0 @@ -From 4cf3b1871d621c8dfe5ad54ae206530bb0de1606 Mon Sep 17 00:00:00 2001 -From: Matthew Garrett -Date: Mon, 13 Jan 2014 12:13:15 +0000 -Subject: Add "linuxefi" loader which avoids ExitBootServices - -Origin: vendor, http://pkgs.fedoraproject.org/cgit/grub2.git/tree/grub2-linuxefi.patch -Author: Colin Watson -Author: Steve Langasek -Author: Linn Crosetto -Forwarded: no -Last-Update: 2019-06-26 - -Patch-Name: linuxefi.patch ---- - grub-core/Makefile.core.def | 7 + - grub-core/kern/efi/mm.c | 32 +++ - grub-core/loader/i386/efi/linux.c | 381 ++++++++++++++++++++++++++++++ - grub-core/loader/i386/linux.c | 41 ++++ - include/grub/efi/efi.h | 3 + - 5 files changed, 464 insertions(+) - create mode 100644 grub-core/loader/i386/efi/linux.c - -diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def -index 474a63e68..67a98abbb 100644 ---- a/grub-core/Makefile.core.def -+++ b/grub-core/Makefile.core.def -@@ -1849,6 +1849,13 @@ module = { - enable = x86_64_efi; - }; - -+module = { -+ name = linuxefi; -+ efi = loader/i386/efi/linux.c; -+ enable = i386_efi; -+ enable = x86_64_efi; -+}; -+ - module = { - name = chain; - efi = loader/efi/chainloader.c; -diff --git a/grub-core/kern/efi/mm.c b/grub-core/kern/efi/mm.c -index b02fab1b1..a9e37108c 100644 ---- a/grub-core/kern/efi/mm.c -+++ b/grub-core/kern/efi/mm.c -@@ -113,6 +113,38 @@ grub_efi_drop_alloc (grub_efi_physical_address_t address, - } - } - -+/* Allocate pages below a specified address */ -+void * -+grub_efi_allocate_pages_max (grub_efi_physical_address_t max, -+ grub_efi_uintn_t pages) -+{ -+ grub_efi_status_t status; -+ grub_efi_boot_services_t *b; -+ grub_efi_physical_address_t address = max; -+ -+ if (max > 0xffffffff) -+ return 0; -+ -+ b = grub_efi_system_table->boot_services; -+ status = efi_call_4 (b->allocate_pages, GRUB_EFI_ALLOCATE_MAX_ADDRESS, GRUB_EFI_LOADER_DATA, pages, &address); -+ -+ if (status != GRUB_EFI_SUCCESS) -+ return 0; -+ -+ if (address == 0) -+ { -+ /* Uggh, the address 0 was allocated... This is too annoying, -+ so reallocate another one. */ -+ address = max; -+ status = efi_call_4 (b->allocate_pages, GRUB_EFI_ALLOCATE_MAX_ADDRESS, GRUB_EFI_LOADER_DATA, pages, &address); -+ grub_efi_free_pages (0, pages); -+ if (status != GRUB_EFI_SUCCESS) -+ return 0; -+ } -+ -+ return (void *) ((grub_addr_t) address); -+} -+ - /* Allocate pages. Return the pointer to the first of allocated pages. */ - void * - grub_efi_allocate_pages_real (grub_efi_physical_address_t address, -diff --git a/grub-core/loader/i386/efi/linux.c b/grub-core/loader/i386/efi/linux.c -new file mode 100644 -index 000000000..16372a0c8 ---- /dev/null -+++ b/grub-core/loader/i386/efi/linux.c -@@ -0,0 +1,381 @@ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 2012 Free Software Foundation, Inc. -+ * -+ * GRUB is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation, either version 3 of the License, or -+ * (at your option) any later version. -+ * -+ * GRUB is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with GRUB. If not, see . -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+GRUB_MOD_LICENSE ("GPLv3+"); -+ -+static grub_dl_t my_mod; -+static int loaded; -+static void *kernel_mem; -+static grub_uint64_t kernel_size; -+static grub_uint8_t *initrd_mem; -+static grub_uint32_t handover_offset; -+struct linux_kernel_params *params; -+static char *linux_cmdline; -+ -+#define BYTES_TO_PAGES(bytes) (((bytes) + 0xfff) >> 12) -+ -+#define SHIM_LOCK_GUID \ -+ { 0x605dab50, 0xe046, 0x4300, {0xab, 0xb6, 0x3d, 0xd8, 0x10, 0xdd, 0x8b, 0x23} } -+ -+struct grub_efi_shim_lock -+{ -+ grub_efi_status_t (*verify) (void *buffer, grub_uint32_t size); -+}; -+typedef struct grub_efi_shim_lock grub_efi_shim_lock_t; -+ -+static grub_efi_boolean_t -+grub_linuxefi_secure_validate (void *data, grub_uint32_t size) -+{ -+ grub_efi_guid_t guid = SHIM_LOCK_GUID; -+ grub_efi_shim_lock_t *shim_lock; -+ grub_efi_status_t status; -+ -+ if (! grub_efi_secure_boot()) -+ { -+ grub_dprintf ("linuxefi", "secure boot not enabled, not validating"); -+ return 1; -+ } -+ -+ grub_dprintf ("linuxefi", "Locating shim protocol\n"); -+ shim_lock = grub_efi_locate_protocol(&guid, NULL); -+ -+ if (!shim_lock) -+ { -+ grub_dprintf ("linuxefi", "shim not available\n"); -+ return 0; -+ } -+ -+ grub_dprintf ("linuxefi", "Asking shim to verify kernel signature\n"); -+ status = shim_lock->verify(data, size); -+ if (status == GRUB_EFI_SUCCESS) -+ { -+ grub_dprintf ("linuxefi", "Kernel signature verification passed\n"); -+ return 1; -+ } -+ -+ grub_dprintf ("linuxefi", "Kernel signature verification failed (0x%lx)\n", -+ (unsigned long) status); -+ return 0; -+} -+ -+typedef void(*handover_func)(void *, grub_efi_system_table_t *, struct linux_kernel_params *); -+ -+static grub_err_t -+grub_linuxefi_boot (void) -+{ -+ handover_func hf; -+ int offset = 0; -+ -+#ifdef __x86_64__ -+ offset = 512; -+#endif -+ -+ hf = (handover_func)((char *)kernel_mem + handover_offset + offset); -+ -+ asm volatile ("cli"); -+ -+ hf (grub_efi_image_handle, grub_efi_system_table, params); -+ -+ /* Not reached */ -+ return GRUB_ERR_NONE; -+} -+ -+static grub_err_t -+grub_linuxefi_unload (void) -+{ -+ grub_dl_unref (my_mod); -+ loaded = 0; -+ if (initrd_mem) -+ grub_efi_free_pages((grub_efi_physical_address_t)(grub_addr_t)initrd_mem, BYTES_TO_PAGES(params->ramdisk_size)); -+ if (linux_cmdline) -+ grub_efi_free_pages((grub_efi_physical_address_t)(grub_addr_t)linux_cmdline, BYTES_TO_PAGES(params->cmdline_size + 1)); -+ if (kernel_mem) -+ grub_efi_free_pages((grub_efi_physical_address_t)(grub_addr_t)kernel_mem, BYTES_TO_PAGES(kernel_size)); -+ if (params) -+ grub_efi_free_pages((grub_efi_physical_address_t)(grub_addr_t)params, BYTES_TO_PAGES(16384)); -+ return GRUB_ERR_NONE; -+} -+ -+static grub_err_t -+grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)), -+ int argc, char *argv[]) -+{ -+ grub_size_t size = 0; -+ struct grub_linux_initrd_context initrd_ctx; -+ -+ if (argc == 0) -+ { -+ grub_error (GRUB_ERR_BAD_ARGUMENT, N_("filename expected")); -+ goto fail; -+ } -+ -+ if (!loaded) -+ { -+ grub_error (GRUB_ERR_BAD_ARGUMENT, N_("you need to load the kernel first")); -+ goto fail; -+ } -+ -+ if (grub_initrd_init (argc, argv, &initrd_ctx)) -+ goto fail; -+ -+ size = grub_get_initrd_size (&initrd_ctx); -+ -+ initrd_mem = grub_efi_allocate_pages_max (0x3fffffff, BYTES_TO_PAGES(size)); -+ -+ if (!initrd_mem) -+ { -+ grub_error (GRUB_ERR_OUT_OF_MEMORY, N_("can't allocate initrd")); -+ goto fail; -+ } -+ -+ grub_dprintf ("linuxefi", "initrd_mem = %lx\n", (unsigned long) initrd_mem); -+ -+ params->ramdisk_size = size; -+ params->ramdisk_image = (grub_uint32_t)(grub_addr_t) initrd_mem; -+ -+ if (grub_initrd_load (&initrd_ctx, argv, initrd_mem)) -+ goto fail; -+ -+ params->ramdisk_size = size; -+ -+ fail: -+ grub_initrd_close (&initrd_ctx); -+ -+ if (initrd_mem && grub_errno) -+ grub_efi_free_pages((grub_efi_physical_address_t)(grub_addr_t)initrd_mem, BYTES_TO_PAGES(size)); -+ -+ return grub_errno; -+} -+ -+static grub_err_t -+grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), -+ int argc, char *argv[]) -+{ -+ grub_file_t file = 0; -+ struct linux_i386_kernel_header lh; -+ grub_ssize_t len, start, filelen; -+ void *kernel; -+ -+ grub_dl_ref (my_mod); -+ -+ if (argc == 0) -+ { -+ grub_error (GRUB_ERR_BAD_ARGUMENT, N_("filename expected")); -+ goto fail; -+ } -+ -+ file = grub_file_open (argv[0], GRUB_FILE_TYPE_LINUX_KERNEL); -+ if (! file) -+ goto fail; -+ -+ filelen = grub_file_size (file); -+ -+ kernel = grub_malloc(filelen); -+ -+ if (!kernel) -+ { -+ grub_error (GRUB_ERR_OUT_OF_MEMORY, N_("cannot allocate kernel buffer")); -+ goto fail; -+ } -+ -+ if (grub_file_read (file, kernel, filelen) != filelen) -+ { -+ grub_error (GRUB_ERR_FILE_READ_ERROR, N_("Can't read kernel %s"), argv[0]); -+ goto fail; -+ } -+ -+ if (! grub_linuxefi_secure_validate (kernel, filelen)) -+ { -+ grub_error (GRUB_ERR_ACCESS_DENIED, N_("%s has invalid signature"), argv[0]); -+ grub_free (kernel); -+ goto fail; -+ } -+ -+ grub_file_seek (file, 0); -+ -+ grub_free(kernel); -+ -+ params = grub_efi_allocate_pages_max (0x3fffffff, BYTES_TO_PAGES(16384)); -+ -+ if (! params) -+ { -+ grub_error (GRUB_ERR_OUT_OF_MEMORY, "cannot allocate kernel parameters"); -+ goto fail; -+ } -+ -+ grub_dprintf ("linuxefi", "params = %lx\n", (unsigned long) params); -+ -+ grub_memset (params, 0, 16384); -+ -+ if (grub_file_read (file, &lh, sizeof (lh)) != sizeof (lh)) -+ { -+ if (!grub_errno) -+ grub_error (GRUB_ERR_BAD_OS, N_("premature end of file %s"), -+ argv[0]); -+ goto fail; -+ } -+ -+ if (lh.boot_flag != grub_cpu_to_le16 (0xaa55)) -+ { -+ grub_error (GRUB_ERR_BAD_OS, N_("invalid magic number")); -+ goto fail; -+ } -+ -+ if (lh.setup_sects > GRUB_LINUX_MAX_SETUP_SECTS) -+ { -+ grub_error (GRUB_ERR_BAD_OS, N_("too many setup sectors")); -+ goto fail; -+ } -+ -+ if (lh.version < grub_cpu_to_le16 (0x020b)) -+ { -+ grub_error (GRUB_ERR_BAD_OS, N_("kernel too old")); -+ goto fail; -+ } -+ -+ if (!lh.handover_offset) -+ { -+ grub_error (GRUB_ERR_BAD_OS, N_("kernel doesn't support EFI handover")); -+ goto fail; -+ } -+ -+ linux_cmdline = grub_efi_allocate_pages_max(0x3fffffff, -+ BYTES_TO_PAGES(lh.cmdline_size + 1)); -+ -+ if (!linux_cmdline) -+ { -+ grub_error (GRUB_ERR_OUT_OF_MEMORY, N_("can't allocate cmdline")); -+ goto fail; -+ } -+ -+ grub_dprintf ("linuxefi", "linux_cmdline = %lx\n", -+ (unsigned long) linux_cmdline); -+ -+ grub_memcpy (linux_cmdline, LINUX_IMAGE, sizeof (LINUX_IMAGE)); -+ { -+ grub_err_t err; -+ err = grub_create_loader_cmdline (argc, argv, -+ linux_cmdline -+ + sizeof (LINUX_IMAGE) - 1, -+ lh.cmdline_size -+ - (sizeof (LINUX_IMAGE) - 1), -+ GRUB_VERIFY_KERNEL_CMDLINE); -+ if (err) -+ goto fail; -+ } -+ -+ lh.cmd_line_ptr = (grub_uint32_t)(grub_addr_t)linux_cmdline; -+ -+ handover_offset = lh.handover_offset; -+ -+ start = (lh.setup_sects + 1) * 512; -+ len = grub_file_size(file) - start; -+ -+ kernel_mem = grub_efi_allocate_fixed(lh.pref_address, -+ BYTES_TO_PAGES(lh.init_size)); -+ -+ if (!kernel_mem) -+ kernel_mem = grub_efi_allocate_pages_max(0x3fffffff, -+ BYTES_TO_PAGES(lh.init_size)); -+ -+ if (!kernel_mem) -+ { -+ grub_error (GRUB_ERR_OUT_OF_MEMORY, N_("can't allocate kernel")); -+ goto fail; -+ } -+ -+ grub_dprintf ("linuxefi", "kernel_mem = %lx\n", (unsigned long) kernel_mem); -+ -+ if (grub_file_seek (file, start) == (grub_off_t) -1) -+ { -+ grub_error (GRUB_ERR_BAD_OS, N_("premature end of file %s"), -+ argv[0]); -+ goto fail; -+ } -+ -+ if (grub_file_read (file, kernel_mem, len) != len && !grub_errno) -+ { -+ grub_error (GRUB_ERR_BAD_OS, N_("premature end of file %s"), -+ argv[0]); -+ } -+ -+ if (grub_errno == GRUB_ERR_NONE) -+ { -+ grub_loader_set (grub_linuxefi_boot, grub_linuxefi_unload, 0); -+ loaded = 1; -+ lh.code32_start = (grub_uint32_t)(grub_addr_t) kernel_mem; -+ } -+ -+ grub_memcpy (params, &lh, 2 * 512); -+ -+ params->type_of_loader = 0x21; -+ -+ fail: -+ -+ if (file) -+ grub_file_close (file); -+ -+ if (grub_errno != GRUB_ERR_NONE) -+ { -+ grub_dl_unref (my_mod); -+ loaded = 0; -+ } -+ -+ if (linux_cmdline && !loaded) -+ grub_efi_free_pages((grub_efi_physical_address_t)(grub_addr_t)linux_cmdline, BYTES_TO_PAGES(lh.cmdline_size + 1)); -+ -+ if (kernel_mem && !loaded) -+ grub_efi_free_pages((grub_efi_physical_address_t)(grub_addr_t)kernel_mem, BYTES_TO_PAGES(kernel_size)); -+ -+ if (params && !loaded) -+ grub_efi_free_pages((grub_efi_physical_address_t)(grub_addr_t)params, BYTES_TO_PAGES(16384)); -+ -+ return grub_errno; -+} -+ -+static grub_command_t cmd_linux, cmd_initrd; -+ -+GRUB_MOD_INIT(linuxefi) -+{ -+ cmd_linux = -+ grub_register_command ("linuxefi", grub_cmd_linux, -+ 0, N_("Load Linux.")); -+ cmd_initrd = -+ grub_register_command ("initrdefi", grub_cmd_initrd, -+ 0, N_("Load initrd.")); -+ my_mod = mod; -+} -+ -+GRUB_MOD_FINI(linuxefi) -+{ -+ grub_unregister_command (cmd_linux); -+ grub_unregister_command (cmd_initrd); -+} -diff --git a/grub-core/loader/i386/linux.c b/grub-core/loader/i386/linux.c -index d0501e229..2eab9bb10 100644 ---- a/grub-core/loader/i386/linux.c -+++ b/grub-core/loader/i386/linux.c -@@ -76,6 +76,8 @@ static grub_size_t maximal_cmdline_size; - static struct linux_kernel_params linux_params; - static char *linux_cmdline; - #ifdef GRUB_MACHINE_EFI -+static int using_linuxefi; -+static grub_command_t initrdefi_cmd; - static grub_efi_uintn_t efi_mmap_size; - #else - static const grub_size_t efi_mmap_size = 0; -@@ -651,6 +653,39 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - - grub_dl_ref (my_mod); - -+#ifdef GRUB_MACHINE_EFI -+ using_linuxefi = 0; -+ if (grub_efi_secure_boot ()) -+ { -+ /* linuxefi requires a successful signature check and then hand over -+ to the kernel without calling ExitBootServices. */ -+ grub_dl_t mod; -+ grub_command_t linuxefi_cmd; -+ -+ grub_dprintf ("linux", "Secure Boot enabled: trying linuxefi\n"); -+ -+ mod = grub_dl_load ("linuxefi"); -+ if (mod) -+ { -+ grub_dl_ref (mod); -+ linuxefi_cmd = grub_command_find ("linuxefi"); -+ initrdefi_cmd = grub_command_find ("initrdefi"); -+ if (linuxefi_cmd && initrdefi_cmd) -+ { -+ (linuxefi_cmd->func) (linuxefi_cmd, argc, argv); -+ if (grub_errno == GRUB_ERR_NONE) -+ { -+ grub_dprintf ("linux", "Handing off to linuxefi\n"); -+ using_linuxefi = 1; -+ return GRUB_ERR_NONE; -+ } -+ grub_dprintf ("linux", "linuxefi failed (%d)\n", grub_errno); -+ goto fail; -+ } -+ } -+ } -+#endif -+ - if (argc == 0) - { - grub_error (GRUB_ERR_BAD_ARGUMENT, N_("filename expected")); -@@ -1036,6 +1071,12 @@ grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)), - grub_err_t err; - struct grub_linux_initrd_context initrd_ctx = { 0, 0, 0 }; - -+#ifdef GRUB_MACHINE_EFI -+ /* If we're using linuxefi, just forward to initrdefi. */ -+ if (using_linuxefi && initrdefi_cmd) -+ return (initrdefi_cmd->func) (initrdefi_cmd, argc, argv); -+#endif -+ - if (argc == 0) - { - grub_error (GRUB_ERR_BAD_ARGUMENT, N_("filename expected")); -diff --git a/include/grub/efi/efi.h b/include/grub/efi/efi.h -index a237952b3..085ee0524 100644 ---- a/include/grub/efi/efi.h -+++ b/include/grub/efi/efi.h -@@ -47,6 +47,9 @@ EXPORT_FUNC(grub_efi_allocate_fixed) (grub_efi_physical_address_t address, - grub_efi_uintn_t pages); - void * - EXPORT_FUNC(grub_efi_allocate_any_pages) (grub_efi_uintn_t pages); -+void * -+EXPORT_FUNC(grub_efi_allocate_pages_max) (grub_efi_physical_address_t max, -+ grub_efi_uintn_t pages); - void EXPORT_FUNC(grub_efi_free_pages) (grub_efi_physical_address_t address, - grub_efi_uintn_t pages); - grub_efi_uintn_t EXPORT_FUNC(grub_efi_find_mmap_size) (void); diff --git a/patches/grub/2.04/lvm-overflow.patch b/patches/grub/2.04/lvm-overflow.patch deleted file mode 100644 index 38b585266..000000000 --- a/patches/grub/2.04/lvm-overflow.patch +++ /dev/null @@ -1,109 +0,0 @@ -From fc669c03dbffd20667f40a2375c30ef91cdc2707 Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Sun, 19 Jul 2020 15:48:20 -0400 -Subject: lvm: fix two more potential data-dependent alloc overflows - -It appears to be possible to make a (possibly invalid) lvm PV with a -metadata size field that overflows our type when adding it to the -address we've allocated. Even if it doesn't, it may be possible to do -so with the math using the outcome of that as an operand. Check them -both. - -Signed-off-by: Peter Jones -Signed-off-by: Darren Kenny - -Patch-Name: lvm-overflow.patch ---- - grub-core/disk/lvm.c | 47 ++++++++++++++++++++++++++++++++++++-------- - 1 file changed, 39 insertions(+), 8 deletions(-) - -diff --git a/grub-core/disk/lvm.c b/grub-core/disk/lvm.c -index d1df640b3..e1299a348 100644 ---- a/grub-core/disk/lvm.c -+++ b/grub-core/disk/lvm.c -@@ -25,6 +25,7 @@ - #include - #include - #include -+#include - - #ifdef GRUB_UTIL - #include -@@ -102,10 +103,11 @@ grub_lvm_detect (grub_disk_t disk, - { - grub_err_t err; - grub_uint64_t mda_offset, mda_size; -+ grub_size_t ptr; - char buf[GRUB_LVM_LABEL_SIZE]; - char vg_id[GRUB_LVM_ID_STRLEN+1]; - char pv_id[GRUB_LVM_ID_STRLEN+1]; -- char *metadatabuf, *p, *q, *vgname; -+ char *metadatabuf, *p, *q, *mda_end, *vgname; - struct grub_lvm_label_header *lh = (struct grub_lvm_label_header *) buf; - struct grub_lvm_pv_header *pvh; - struct grub_lvm_disk_locn *dlocn; -@@ -205,19 +207,31 @@ grub_lvm_detect (grub_disk_t disk, - grub_le_to_cpu64 (rlocn->size) - - grub_le_to_cpu64 (mdah->size)); - } -- p = q = metadatabuf + grub_le_to_cpu64 (rlocn->offset); - -- while (*q != ' ' && q < metadatabuf + mda_size) -- q++; -- -- if (q == metadatabuf + mda_size) -+ if (grub_add ((grub_size_t)metadatabuf, -+ (grub_size_t)grub_le_to_cpu64 (rlocn->offset), -+ &ptr)) - { -+error_parsing_metadata: - #ifdef GRUB_UTIL - grub_util_info ("error parsing metadata"); - #endif - goto fail2; - } - -+ p = q = (char *)ptr; -+ -+ if (grub_add ((grub_size_t)metadatabuf, (grub_size_t)mda_size, &ptr)) -+ goto error_parsing_metadata; -+ -+ mda_end = (char *)ptr; -+ -+ while (*q != ' ' && q < mda_end) -+ q++; -+ -+ if (q == mda_end) -+ goto error_parsing_metadata; -+ - vgname_len = q - p; - vgname = grub_malloc (vgname_len + 1); - if (!vgname) -@@ -367,8 +381,25 @@ grub_lvm_detect (grub_disk_t disk, - { - const char *iptr; - char *optr; -- lv->fullname = grub_malloc (sizeof ("lvm/") - 1 + 2 * vgname_len -- + 1 + 2 * s + 1); -+ -+ /* this is kind of hard to read with our safe (but rather -+ * baroque) math primatives, but it boils down to: -+ * -+ * sz0 = vgname_len * 2 + 1 -+ * + s * 2 + 1 -+ * + sizeof ("lvm/") - 1; -+ */ -+ grub_size_t sz0 = vgname_len, sz1 = s; -+ -+ if (grub_mul (sz0, 2, &sz0) || -+ grub_add (sz0, 1, &sz0) || -+ grub_mul (sz1, 2, &sz1) || -+ grub_add (sz1, 1, &sz1) || -+ grub_add (sz0, sz1, &sz0) || -+ grub_add (sz0, sizeof ("lvm/") - 1, &sz0)) -+ goto lvs_fail; -+ -+ lv->fullname = grub_malloc (sz0); - if (!lv->fullname) - goto lvs_fail; - diff --git a/patches/grub/2.04/lzma-overflow.patch b/patches/grub/2.04/lzma-overflow.patch deleted file mode 100644 index 6337ae6b1..000000000 --- a/patches/grub/2.04/lzma-overflow.patch +++ /dev/null @@ -1,50 +0,0 @@ -From 8b93dd5ba38c2d726a08b271b14a74e8f960d147 Mon Sep 17 00:00:00 2001 -From: Konrad Rzeszutek Wilk -Date: Thu, 9 Jul 2020 03:05:23 +0000 -Subject: lzma: Make sure we don't dereference past array - -The two dimensional array p->posSlotEncoder[4][64] is being dereferenced -using the GetLenToPosState() macro which checks if len is less than 5, -and if so subtracts 2 from it. If len = 0, that is 0 - 2 = 4294967294. -Obviously we don't want to dereference that far out so we check if the -position found is greater or equal kNumLenToPosStates (4) and bail out. - -N.B.: Upstream LZMA 18.05 and later has this function completely rewritten -without any history. - -Fixes: CID 51526 - -Signed-off-by: Konrad Rzeszutek Wilk -Reviewed-by: Daniel Kiper - -Patch-Name: lzma-overflow.patch ---- - grub-core/lib/LzmaEnc.c | 10 ++++++++-- - 1 file changed, 8 insertions(+), 2 deletions(-) - -diff --git a/grub-core/lib/LzmaEnc.c b/grub-core/lib/LzmaEnc.c -index f2ec04a8c..753e56a95 100644 ---- a/grub-core/lib/LzmaEnc.c -+++ b/grub-core/lib/LzmaEnc.c -@@ -1877,13 +1877,19 @@ static SRes LzmaEnc_CodeOneBlock(CLzmaEnc *p, Bool useLimits, UInt32 maxPackSize - } - else - { -- UInt32 posSlot; -+ UInt32 posSlot, lenToPosState; - RangeEnc_EncodeBit(&p->rc, &p->isRep[p->state], 0); - p->state = kMatchNextStates[p->state]; - LenEnc_Encode2(&p->lenEnc, &p->rc, len - LZMA_MATCH_LEN_MIN, posState, !p->fastMode, p->ProbPrices); - pos -= LZMA_NUM_REPS; - GetPosSlot(pos, posSlot); -- RcTree_Encode(&p->rc, p->posSlotEncoder[GetLenToPosState(len)], kNumPosSlotBits, posSlot); -+ lenToPosState = GetLenToPosState(len); -+ if (lenToPosState >= kNumLenToPosStates) -+ { -+ p->result = SZ_ERROR_DATA; -+ return CheckErrors(p); -+ } -+ RcTree_Encode(&p->rc, p->posSlotEncoder[lenToPosState], kNumPosSlotBits, posSlot); - - if (posSlot >= kStartPosModelIndex) - { diff --git a/patches/grub/2.04/maybe-quiet.patch b/patches/grub/2.04/maybe-quiet.patch deleted file mode 100644 index b76ff6aba..000000000 --- a/patches/grub/2.04/maybe-quiet.patch +++ /dev/null @@ -1,386 +0,0 @@ -From 4225ea9ee7c546c4340e658b0bd6983c436a5f51 Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Mon, 13 Jan 2014 12:13:26 +0000 -Subject: Add configure option to reduce visual clutter at boot time - -If this option is enabled, then do all of the following: - -Don't display introductory message about line editing unless we're -actually offering a shell prompt. (This is believed to be a workaround -for a different bug. We'll go with this for now, but will drop this in -favour of a better fix upstream if somebody figures out what that is.) - -Don't clear the screen just before booting if we never drew the menu in -the first place. - -Remove verbose messages printed before reading configuration. In some -ways this is awkward because it makes debugging harder, but it's a -requirement for a smooth-looking boot process; we may be able to do -better in future. Upstream doesn't want this, though. - -Disable the cursor as well, for similar reasons of tidiness. - -Suppress kernel/initrd progress messages, except in recovery mode. - -Suppress "GRUB loading" message unless Shift is held down. Upstream -doesn't want this, as it makes debugging harder. Ubuntu wants it to -provide a cleaner boot experience. - -Author: Will Thompson -Bug-Ubuntu: https://bugs.launchpad.net/bugs/386922 -Bug-Ubuntu: https://bugs.launchpad.net/bugs/861048 -Forwarded: (partial) http://lists.gnu.org/archive/html/grub-devel/2009-09/msg00056.html -Last-Update: 2019-06-24 - -Patch-Name: maybe-quiet.patch ---- - config.h.in | 2 ++ - configure.ac | 16 ++++++++++++++++ - grub-core/boot/i386/pc/boot.S | 11 +++++++++++ - grub-core/boot/i386/pc/diskboot.S | 26 ++++++++++++++++++++++++++ - grub-core/kern/main.c | 17 +++++++++++++++++ - grub-core/kern/rescue_reader.c | 2 ++ - grub-core/normal/main.c | 11 +++++++++++ - grub-core/normal/menu.c | 17 +++++++++++++++-- - util/grub.d/10_linux.in | 15 +++++++++++---- - 9 files changed, 111 insertions(+), 6 deletions(-) - -diff --git a/config.h.in b/config.h.in -index 9e8f9911b..d2c4ce8e5 100644 ---- a/config.h.in -+++ b/config.h.in -@@ -12,6 +12,8 @@ - /* Define to 1 to enable disk cache statistics. */ - #define DISK_CACHE_STATS @DISK_CACHE_STATS@ - #define BOOT_TIME_STATS @BOOT_TIME_STATS@ -+/* Define to 1 to make GRUB quieter at boot time. */ -+#define QUIET_BOOT @QUIET_BOOT@ - - /* We don't need those. */ - #define MINILZO_CFG_SKIP_LZO_PTR 1 -diff --git a/configure.ac b/configure.ac -index 1e5abc67d..ea00ccd69 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -1857,6 +1857,17 @@ else - fi - AC_SUBST([UBUNTU_RECOVERY]) - -+AC_ARG_ENABLE([quiet-boot], -+ [AS_HELP_STRING([--enable-quiet-boot], -+ [emit fewer messages at boot time (default=no)])], -+ [], [enable_quiet_boot=no]) -+if test x"$enable_quiet_boot" = xyes ; then -+ QUIET_BOOT=1 -+else -+ QUIET_BOOT=0 -+fi -+AC_SUBST([QUIET_BOOT]) -+ - LIBS="" - - AC_SUBST([FONT_SOURCE]) -@@ -2114,5 +2125,10 @@ echo "Without liblzma (no support for XZ-compressed mips images) ($liblzma_excus - else - echo "With liblzma from $LIBLZMA (support for XZ-compressed mips images)" - fi -+if [ x"$enable_quiet_boot" = xyes ]; then -+echo With quiet boot: Yes -+else -+echo With quiet boot: No -+fi - echo "*******************************************************" - ] -diff --git a/grub-core/boot/i386/pc/boot.S b/grub-core/boot/i386/pc/boot.S -index 2bd0b2d28..b0c0f2225 100644 ---- a/grub-core/boot/i386/pc/boot.S -+++ b/grub-core/boot/i386/pc/boot.S -@@ -19,6 +19,9 @@ - - #include - #include -+#if QUIET_BOOT && !defined(HYBRID_BOOT) -+#include -+#endif - - /* - * defines for the code go here -@@ -249,9 +252,17 @@ real_start: - /* save drive reference first thing! */ - pushw %dx - -+#if QUIET_BOOT && !defined(HYBRID_BOOT) -+ /* is either shift key held down? */ -+ movw $(GRUB_MEMORY_MACHINE_BIOS_DATA_AREA_ADDR + 0x17), %bx -+ testb $3, (%bx) -+ jz 2f -+#endif -+ - /* print a notification message on the screen */ - MSG(notification_string) - -+2: - /* set %si to the disk address packet */ - movw $disk_address_packet, %si - -diff --git a/grub-core/boot/i386/pc/diskboot.S b/grub-core/boot/i386/pc/diskboot.S -index c1addc0df..9b6d7a7ed 100644 ---- a/grub-core/boot/i386/pc/diskboot.S -+++ b/grub-core/boot/i386/pc/diskboot.S -@@ -18,6 +18,9 @@ - - #include - #include -+#if QUIET_BOOT -+#include -+#endif - - /* - * defines for the code go here -@@ -25,6 +28,12 @@ - - #define MSG(x) movw $x, %si; call LOCAL(message) - -+#if QUIET_BOOT -+#define SILENT(x) call LOCAL(check_silent); jz LOCAL(x) -+#else -+#define SILENT(x) -+#endif -+ - .file "diskboot.S" - - .text -@@ -50,11 +59,14 @@ _start: - /* save drive reference first thing! */ - pushw %dx - -+ SILENT(after_notification_string) -+ - /* print a notification message on the screen */ - pushw %si - MSG(notification_string) - popw %si - -+LOCAL(after_notification_string): - /* this sets up for the first run through "bootloop" */ - movw $LOCAL(firstlist), %di - -@@ -279,7 +291,10 @@ LOCAL(copy_buffer): - /* restore addressing regs and print a dot with correct DS - (MSG modifies SI, which is saved, and unused AX and BX) */ - popw %ds -+ SILENT(after_notification_step) - MSG(notification_step) -+ -+LOCAL(after_notification_step): - popa - - /* check if finished with this dataset */ -@@ -295,8 +310,11 @@ LOCAL(copy_buffer): - /* END OF MAIN LOOP */ - - LOCAL(bootit): -+ SILENT(after_notification_done) - /* print a newline */ - MSG(notification_done) -+ -+LOCAL(after_notification_done): - popw %dx /* this makes sure %dl is our "boot" drive */ - ljmp $0, $(GRUB_BOOT_MACHINE_KERNEL_ADDR + 0x200) - -@@ -320,6 +338,14 @@ LOCAL(general_error): - /* go here when you need to stop the machine hard after an error condition */ - LOCAL(stop): jmp LOCAL(stop) - -+#if QUIET_BOOT -+LOCAL(check_silent): -+ /* is either shift key held down? */ -+ movw $(GRUB_MEMORY_MACHINE_BIOS_DATA_AREA_ADDR + 0x17), %bx -+ testb $3, (%bx) -+ ret -+#endif -+ - notification_string: .asciz "loading" - - notification_step: .asciz "." -diff --git a/grub-core/kern/main.c b/grub-core/kern/main.c -index 9cad0c448..714b63d67 100644 ---- a/grub-core/kern/main.c -+++ b/grub-core/kern/main.c -@@ -264,15 +264,25 @@ reclaim_module_space (void) - void __attribute__ ((noreturn)) - grub_main (void) - { -+#if QUIET_BOOT -+ struct grub_term_output *term; -+#endif -+ - /* First of all, initialize the machine. */ - grub_machine_init (); - - grub_boot_time ("After machine init."); - -+#if QUIET_BOOT -+ /* Disable the cursor until we need it. */ -+ FOR_ACTIVE_TERM_OUTPUTS(term) -+ grub_term_setcursor (term, 0); -+#else - /* Hello. */ - grub_setcolorstate (GRUB_TERM_COLOR_HIGHLIGHT); - grub_printf ("Welcome to GRUB!\n\n"); - grub_setcolorstate (GRUB_TERM_COLOR_STANDARD); -+#endif - - grub_load_config (); - -@@ -308,5 +318,12 @@ grub_main (void) - grub_boot_time ("After execution of embedded config. Attempt to go to normal mode"); - - grub_load_normal_mode (); -+ -+#if QUIET_BOOT -+ /* If we have to enter rescue mode, enable the cursor again. */ -+ FOR_ACTIVE_TERM_OUTPUTS(term) -+ grub_term_setcursor (term, 1); -+#endif -+ - grub_rescue_run (); - } -diff --git a/grub-core/kern/rescue_reader.c b/grub-core/kern/rescue_reader.c -index dcd7d4439..a93524eab 100644 ---- a/grub-core/kern/rescue_reader.c -+++ b/grub-core/kern/rescue_reader.c -@@ -78,7 +78,9 @@ grub_rescue_read_line (char **line, int cont, - void __attribute__ ((noreturn)) - grub_rescue_run (void) - { -+#if QUIET_BOOT - grub_printf ("Entering rescue mode...\n"); -+#endif - - while (1) - { -diff --git a/grub-core/normal/main.c b/grub-core/normal/main.c -index 1b03dfd57..0aa389fa1 100644 ---- a/grub-core/normal/main.c -+++ b/grub-core/normal/main.c -@@ -389,6 +389,15 @@ static grub_err_t - grub_normal_read_line_real (char **line, int cont, int nested) - { - const char *prompt; -+#if QUIET_BOOT -+ static int displayed_intro; -+ -+ if (! displayed_intro) -+ { -+ grub_normal_reader_init (nested); -+ displayed_intro = 1; -+ } -+#endif - - if (cont) - /* TRANSLATORS: it's command line prompt. */ -@@ -441,7 +450,9 @@ grub_cmdline_run (int nested, int force_auth) - return; - } - -+#if !QUIET_BOOT - grub_normal_reader_init (nested); -+#endif - - while (1) - { -diff --git a/grub-core/normal/menu.c b/grub-core/normal/menu.c -index 3611ee9ea..ebf5a0f10 100644 ---- a/grub-core/normal/menu.c -+++ b/grub-core/normal/menu.c -@@ -827,12 +827,18 @@ run_menu (grub_menu_t menu, int nested, int *auto_boot) - - /* Callback invoked immediately before a menu entry is executed. */ - static void --notify_booting (grub_menu_entry_t entry, -+notify_booting (grub_menu_entry_t entry -+#if QUIET_BOOT -+ __attribute__((unused)) -+#endif -+ , - void *userdata __attribute__((unused))) - { -+#if !QUIET_BOOT - grub_printf (" "); - grub_printf_ (N_("Booting `%s'"), entry->title); - grub_printf ("\n\n"); -+#endif - } - - /* Callback invoked when a default menu entry executed because of a timeout -@@ -880,6 +886,9 @@ show_menu (grub_menu_t menu, int nested, int autobooted) - int boot_entry; - grub_menu_entry_t e; - int auto_boot; -+#if QUIET_BOOT -+ int initial_timeout = grub_menu_get_timeout (); -+#endif - - boot_entry = run_menu (menu, nested, &auto_boot); - if (boot_entry < 0) -@@ -889,7 +898,11 @@ show_menu (grub_menu_t menu, int nested, int autobooted) - if (! e) - continue; /* Menu is empty. */ - -- grub_cls (); -+#if QUIET_BOOT -+ /* Only clear the screen if we drew the menu in the first place. */ -+ if (initial_timeout != 0) -+#endif -+ grub_cls (); - - if (auto_boot) - grub_menu_execute_with_fallback (menu, e, autobooted, -diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in -index 61335e908..2e4dff9fb 100644 ---- a/util/grub.d/10_linux.in -+++ b/util/grub.d/10_linux.in -@@ -21,6 +21,7 @@ prefix="@prefix@" - exec_prefix="@exec_prefix@" - datarootdir="@datarootdir@" - ubuntu_recovery="@UBUNTU_RECOVERY@" -+quiet_boot="@QUIET_BOOT@" - - . "$pkgdatadir/grub-mkconfig_lib" - -@@ -158,10 +159,12 @@ linux_entry () - fi - printf '%s\n' "${prepare_boot_cache}" | sed "s/^/$submenu_indentation/" - fi -- message="$(gettext_printf "Loading Linux %s ..." ${version})" -- sed "s/^/$submenu_indentation/" << EOF -+ if [ x"$quiet_boot" = x0 ] || [ x"$type" != xsimple ]; then -+ message="$(gettext_printf "Loading Linux %s ..." ${version})" -+ sed "s/^/$submenu_indentation/" << EOF - echo '$(echo "$message" | grub_quote)' - EOF -+ fi - if test -d /sys/firmware/efi && test -e "${linux}.efi.signed"; then - sed "s/^/$submenu_indentation/" << EOF - linux ${rel_dirname}/${basename}.efi.signed root=${linux_root_device_thisversion} ro ${args} -@@ -173,13 +176,17 @@ EOF - fi - if test -n "${initrd}" ; then - # TRANSLATORS: ramdisk isn't identifier. Should be translated. -- message="$(gettext_printf "Loading initial ramdisk ...")" -+ if [ x"$quiet_boot" = x0 ] || [ x"$type" != xsimple ]; then -+ message="$(gettext_printf "Loading initial ramdisk ...")" -+ sed "s/^/$submenu_indentation/" << EOF -+ echo '$(echo "$message" | grub_quote)' -+EOF -+ fi - initrd_path= - for i in ${initrd}; do - initrd_path="${initrd_path} ${rel_dirname}/${i}" - done - sed "s/^/$submenu_indentation/" << EOF -- echo '$(echo "$message" | grub_quote)' - initrd $(echo $initrd_path) - EOF - fi diff --git a/patches/grub/2.04/mdraid1x-linux-gcc-10.patch b/patches/grub/2.04/mdraid1x-linux-gcc-10.patch deleted file mode 100644 index dd2f93969..000000000 --- a/patches/grub/2.04/mdraid1x-linux-gcc-10.patch +++ /dev/null @@ -1,53 +0,0 @@ -From c54b0d1ed58cf7abe95af0b79008324d442e64dc Mon Sep 17 00:00:00 2001 -From: Michael Chang -Date: Thu, 26 Mar 2020 14:35:34 +0800 -Subject: mdraid1x_linux: Fix gcc10 error -Werror=array-bounds - -We bumped into the build error while testing gcc-10 pre-release. - -../../grub-core/disk/mdraid1x_linux.c: In function 'grub_mdraid_detect': -../../grub-core/disk/mdraid1x_linux.c:181:15: error: array subscript is outside array bounds of 'grub_uint16_t[0]' {aka 'short unsigned int[0]'} [-Werror=array-bounds] - 181 | (char *) &sb.dev_roles[grub_le_to_cpu32 (sb.dev_number)] - | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -../../grub-core/disk/mdraid1x_linux.c:98:17: note: while referencing 'dev_roles' - 98 | grub_uint16_t dev_roles[0]; /* Role in array, or 0xffff for a spare, or 0xfffe for faulty. */ - | ^~~~~~~~~ -../../grub-core/disk/mdraid1x_linux.c:127:33: note: defined here 'sb' - 127 | struct grub_raid_super_1x sb; - | ^~ -cc1: all warnings being treated as errors - -Apparently gcc issues the warning when trying to access sb.dev_roles -array's member, since it is a zero length array as the last element of -struct grub_raid_super_1x that is allocated sparsely without extra -chunks for the trailing bits, so the warning looks legitimate in this -regard. - -As the whole thing here is doing offset computation, it is undue to use -syntax that would imply array member access then take address from it -later. Instead we could accomplish the same thing through basic array -pointer arithmetic to pacify the warning. - -Signed-off-by: Michael Chang -Reviewed-by: Daniel Kiper - -Last-Update: 2020-12-28 - -Patch-Name: mdraid1x-linux-gcc-10.patch ---- - grub-core/disk/mdraid1x_linux.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/grub-core/disk/mdraid1x_linux.c b/grub-core/disk/mdraid1x_linux.c -index 7cc80d3df..c980feba4 100644 ---- a/grub-core/disk/mdraid1x_linux.c -+++ b/grub-core/disk/mdraid1x_linux.c -@@ -178,7 +178,7 @@ grub_mdraid_detect (grub_disk_t disk, - return NULL; - - if (grub_disk_read (disk, sector, -- (char *) &sb.dev_roles[grub_le_to_cpu32 (sb.dev_number)] -+ (char *) (sb.dev_roles + grub_le_to_cpu32 (sb.dev_number)) - - (char *) &sb, - sizeof (role), &role)) - return NULL; diff --git a/patches/grub/2.04/mkconfig-loopback.patch b/patches/grub/2.04/mkconfig-loopback.patch deleted file mode 100644 index 28054e018..000000000 --- a/patches/grub/2.04/mkconfig-loopback.patch +++ /dev/null @@ -1,96 +0,0 @@ -From eac8d3f2f35c3478673698c800b21d425faf6326 Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Mon, 13 Jan 2014 12:13:00 +0000 -Subject: Handle filesystems loop-mounted on file images - -Improve prepare_grub_to_access_device to emit appropriate commands for -such filesystems, and ignore them in Linux grub.d scripts. - -This is needed for Ubuntu's Wubi installation method. - -This patch isn't inherently Debian/Ubuntu-specific. losetup and -/proc/mounts are Linux-specific, though, so we might need to refine this -before sending it upstream. The changes to the Linux grub.d scripts -might be better handled by integrating 10_lupin properly instead. - -Patch-Name: mkconfig-loopback.patch ---- - util/grub-mkconfig_lib.in | 24 ++++++++++++++++++++++++ - util/grub.d/10_linux.in | 5 +++++ - util/grub.d/20_linux_xen.in | 5 +++++ - 3 files changed, 34 insertions(+) - -diff --git a/util/grub-mkconfig_lib.in b/util/grub-mkconfig_lib.in -index b6606c16e..b05df554d 100644 ---- a/util/grub-mkconfig_lib.in -+++ b/util/grub-mkconfig_lib.in -@@ -133,6 +133,22 @@ prepare_grub_to_access_device () - esac - done - -+ loop_file= -+ case $1 in -+ /dev/loop/*|/dev/loop[0-9]) -+ grub_loop_device="${1#/dev/}" -+ loop_file=`losetup "$1" | sed -e "s/^[^(]*(\([^)]\+\)).*/\1/"` -+ case $loop_file in -+ /dev/*) ;; -+ *) -+ loop_device="$1" -+ shift -+ set -- `"${grub_probe}" --target=device "${loop_file}"` "$@" -+ ;; -+ esac -+ ;; -+ esac -+ - # Abstraction modules aren't auto-loaded. - abstraction="`"${grub_probe}" --device $@ --target=abstraction`" - for module in ${abstraction} ; do -@@ -165,6 +181,14 @@ prepare_grub_to_access_device () - echo "fi" - fi - IFS="$old_ifs" -+ -+ if [ "x${loop_file}" != x ]; then -+ loop_mountpoint="$(awk '"'${loop_file}'" ~ "^"$2 && $2 != "/" { print $2 }' /proc/mounts | tail -n1)" -+ if [ "x${loop_mountpoint}" != x ]; then -+ echo "loopback ${grub_loop_device} ${loop_file#$loop_mountpoint}" -+ echo "set root=(${grub_loop_device})" -+ fi -+ fi - } - - grub_get_device_id () -diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in -index dd5a60c71..8c22c79f6 100644 ---- a/util/grub.d/10_linux.in -+++ b/util/grub.d/10_linux.in -@@ -40,6 +40,11 @@ fi - case ${GRUB_DEVICE} in - /dev/loop/*|/dev/loop[0-9]) - GRUB_DEVICE=`losetup ${GRUB_DEVICE} | sed -e "s/^[^(]*(\([^)]\+\)).*/\1/"` -+ # We can't cope with devices loop-mounted from files here. -+ case ${GRUB_DEVICE} in -+ /dev/*) ;; -+ *) exit 0 ;; -+ esac - ;; - esac - -diff --git a/util/grub.d/20_linux_xen.in b/util/grub.d/20_linux_xen.in -index 96179ea61..9a8d42fb5 100644 ---- a/util/grub.d/20_linux_xen.in -+++ b/util/grub.d/20_linux_xen.in -@@ -40,6 +40,11 @@ fi - case ${GRUB_DEVICE} in - /dev/loop/*|/dev/loop[0-9]) - GRUB_DEVICE=`losetup ${GRUB_DEVICE} | sed -e "s/^[^(]*(\([^)]\+\)).*/\1/"` -+ # We can't cope with devices loop-mounted from files here. -+ case ${GRUB_DEVICE} in -+ /dev/*) ;; -+ *) exit 0 ;; -+ esac - ;; - esac - diff --git a/patches/grub/2.04/mkconfig-nonexistent-loopback.patch b/patches/grub/2.04/mkconfig-nonexistent-loopback.patch deleted file mode 100644 index 9566acd9f..000000000 --- a/patches/grub/2.04/mkconfig-nonexistent-loopback.patch +++ /dev/null @@ -1,55 +0,0 @@ -From 89bc673c4a1cedfd851377b69772d65270967a9a Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Mon, 13 Jan 2014 12:13:08 +0000 -Subject: Avoid getting confused by inaccessible loop device backing paths - -Bug-Ubuntu: https://bugs.launchpad.net/bugs/938724 -Forwarded: no -Last-Update: 2013-12-20 - -Patch-Name: mkconfig-nonexistent-loopback.patch ---- - util/grub-mkconfig_lib.in | 2 +- - util/grub.d/30_os-prober.in | 9 +++++---- - 2 files changed, 6 insertions(+), 5 deletions(-) - -diff --git a/util/grub-mkconfig_lib.in b/util/grub-mkconfig_lib.in -index b05df554d..fe6319abe 100644 ---- a/util/grub-mkconfig_lib.in -+++ b/util/grub-mkconfig_lib.in -@@ -143,7 +143,7 @@ prepare_grub_to_access_device () - *) - loop_device="$1" - shift -- set -- `"${grub_probe}" --target=device "${loop_file}"` "$@" -+ set -- `"${grub_probe}" --target=device "${loop_file}"` "$@" || return 0 - ;; - esac - ;; -diff --git a/util/grub.d/30_os-prober.in b/util/grub.d/30_os-prober.in -index 775ceb2e0..b7e1147c4 100644 ---- a/util/grub.d/30_os-prober.in -+++ b/util/grub.d/30_os-prober.in -@@ -219,6 +219,11 @@ EOF - LINITRD="${LINITRD#/boot}" - fi - -+ if [ -z "${prepare_boot_cache}" ]; then -+ prepare_boot_cache="$(prepare_grub_to_access_device ${LBOOT} | grub_add_tab)" -+ [ "${prepare_boot_cache}" ] || continue -+ fi -+ - onstr="$(gettext_printf "(on %s)" "${DEVICE}")" - recovery_params="$(echo "${LPARAMS}" | grep 'single\|recovery')" || true - counter=1 -@@ -230,10 +235,6 @@ EOF - fi - used_osprober_linux_ids="$used_osprober_linux_ids 'osprober-gnulinux-$LKERNEL-${recovery_params}-$counter-$boot_device_id'" - -- if [ -z "${prepare_boot_cache}" ]; then -- prepare_boot_cache="$(prepare_grub_to_access_device ${LBOOT} | grub_add_tab)" -- fi -- - if [ "x$is_top_level" = xtrue ] && [ "x${GRUB_DISABLE_SUBMENU}" != xy ]; then - cat << EOF - menuentry '$(echo "$OS $onstr" | grub_quote)' $CLASS --class gnu-linux --class gnu --class os \$menuentry_id_option 'osprober-gnulinux-simple-$boot_device_id' { diff --git a/patches/grub/2.04/mkconfig-other-inits.patch b/patches/grub/2.04/mkconfig-other-inits.patch deleted file mode 100644 index 711636fa5..000000000 --- a/patches/grub/2.04/mkconfig-other-inits.patch +++ /dev/null @@ -1,90 +0,0 @@ -From 8c4c292397fafe3cb80eee9f1bfd69189d41c1bc Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Sat, 3 Jan 2015 12:04:59 +0000 -Subject: Generate alternative init entries in advanced menu - -Add fallback boot entries for alternative installed init systems. Based -on patches from Michael Biebl and Didier Roche. - -Bug-Debian: https://bugs.debian.org/757298 -Bug-Debian: https://bugs.debian.org/773173 -Forwarded: no -Last-Update: 2017-06-23 - -Patch-Name: mkconfig-other-inits.patch ---- - util/grub.d/10_linux.in | 10 ++++++++++ - util/grub.d/20_linux_xen.in | 11 +++++++++++ - 2 files changed, 21 insertions(+) - -diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in -index 8a74c677b..0cd4cf5c0 100644 ---- a/util/grub.d/10_linux.in -+++ b/util/grub.d/10_linux.in -@@ -32,6 +32,7 @@ export TEXTDOMAIN=@PACKAGE@ - export TEXTDOMAINDIR="@localedir@" - - CLASS="--class gnu-linux --class gnu --class os" -+SUPPORTED_INITS="sysvinit:/lib/sysvinit/init systemd:/lib/systemd/systemd upstart:/sbin/upstart" - - if [ "x${GRUB_DISTRIBUTOR}" = "x" ] ; then - OS=GNU/Linux -@@ -127,6 +128,8 @@ linux_entry () - case $type in - recovery) - title="$(gettext_printf "%s, with Linux %s (%s)" "${os}" "${version}" "$(gettext "${GRUB_RECOVERY_TITLE}")")" ;; -+ init-*) -+ title="$(gettext_printf "%s, with Linux %s (%s)" "${os}" "${version}" "${type#init-}")" ;; - *) - title="$(gettext_printf "%s, with Linux %s" "${os}" "${version}")" ;; - esac -@@ -381,6 +384,13 @@ while [ "x$list" != "x" ] ; do - - linux_entry "${OS}" "${version}" advanced \ - "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}" -+ for supported_init in ${SUPPORTED_INITS}; do -+ init_path="${supported_init#*:}" -+ if [ -x "${init_path}" ] && [ "$(readlink -f /sbin/init)" != "$(readlink -f "${init_path}")" ]; then -+ linux_entry "${OS}" "${version}" "init-${supported_init%%:*}" \ -+ "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT} init=${init_path}" -+ fi -+ done - if [ "x${GRUB_DISABLE_RECOVERY}" != "xtrue" ]; then - linux_entry "${OS}" "${version}" recovery \ - "${GRUB_CMDLINE_LINUX_RECOVERY} ${GRUB_CMDLINE_LINUX}" -diff --git a/util/grub.d/20_linux_xen.in b/util/grub.d/20_linux_xen.in -index f2ee0532b..81e5f0d7e 100644 ---- a/util/grub.d/20_linux_xen.in -+++ b/util/grub.d/20_linux_xen.in -@@ -27,6 +27,7 @@ export TEXTDOMAIN=@PACKAGE@ - export TEXTDOMAINDIR="@localedir@" - - CLASS="--class gnu-linux --class gnu --class os --class xen" -+SUPPORTED_INITS="sysvinit:/lib/sysvinit/init systemd:/lib/systemd/systemd upstart:/sbin/upstart" - - if [ "x${GRUB_DISTRIBUTOR}" = "x" ] ; then - OS=GNU/Linux -@@ -106,6 +107,8 @@ linux_entry () - if [ x$type != xsimple ] ; then - if [ x$type = xrecovery ] ; then - title="$(gettext_printf "%s, with Xen %s and Linux %s (%s)" "${os}" "${xen_version}" "${version}" "$(gettext "${GRUB_RECOVERY_TITLE}")")" -+ elif [ "${type#init-}" != "$type" ] ; then -+ title="$(gettext_printf "%s, with Xen %s and Linux %s (%s)" "${os}" "${xen_version}" "${version}" "${type#init-}")" - else - title="$(gettext_printf "%s, with Xen %s and Linux %s" "${os}" "${xen_version}" "${version}")" - fi -@@ -310,6 +313,14 @@ while [ "x${xen_list}" != "x" ] ; do - - linux_entry "${OS}" "${version}" "${xen_version}" advanced \ - "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}" "${GRUB_CMDLINE_XEN} ${GRUB_CMDLINE_XEN_DEFAULT}" -+ for supported_init in ${SUPPORTED_INITS}; do -+ init_path="${supported_init#*:}" -+ if [ -x "${init_path}" ] && [ "$(readlink -f /sbin/init)" != "$(readlink -f "${init_path}")" ]; then -+ linux_entry "${OS}" "${version}" "${xen_version}" "init-${supported_init%%:*}" \ -+ "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT} init=${init_path}" "${GRUB_CMDLINE_XEN} ${GRUB_CMDLINE_XEN_DEFAULT}" -+ -+ fi -+ done - if [ "x${GRUB_DISABLE_RECOVERY}" != "xtrue" ]; then - linux_entry "${OS}" "${version}" "${xen_version}" recovery \ - "single ${GRUB_CMDLINE_LINUX}" "${GRUB_CMDLINE_XEN}" diff --git a/patches/grub/2.04/mkconfig-recovery-title.patch b/patches/grub/2.04/mkconfig-recovery-title.patch deleted file mode 100644 index 38e52baca..000000000 --- a/patches/grub/2.04/mkconfig-recovery-title.patch +++ /dev/null @@ -1,130 +0,0 @@ -From 24f2301bae760f8d3dcf5d06b75bea1f647263ea Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Mon, 13 Jan 2014 12:13:33 +0000 -Subject: Add GRUB_RECOVERY_TITLE option - -This allows the controversial "recovery mode" text to be customised. - -Bug-Ubuntu: https://bugs.launchpad.net/bugs/1240360 -Forwarded: no -Last-Update: 2013-12-25 - -Patch-Name: mkconfig-recovery-title.patch ---- - docs/grub.texi | 5 +++++ - util/grub-mkconfig.in | 7 ++++++- - util/grub.d/10_hurd.in | 4 ++-- - util/grub.d/10_kfreebsd.in | 2 +- - util/grub.d/10_linux.in | 2 +- - util/grub.d/10_netbsd.in | 2 +- - util/grub.d/20_linux_xen.in | 2 +- - 7 files changed, 17 insertions(+), 7 deletions(-) - -diff --git a/docs/grub.texi b/docs/grub.texi -index a835d0ae4..3ec35d315 100644 ---- a/docs/grub.texi -+++ b/docs/grub.texi -@@ -1536,6 +1536,11 @@ a console is restricted or limited. - This option is only effective when GRUB was configured with the - @option{--enable-quick-boot} option. - -+@item GRUB_RECOVERY_TITLE -+This option sets the English text of the string that will be displayed in -+parentheses to indicate that a boot option is provided to help users recover -+a broken system. The default is "recovery mode". -+ - @end table - - The following options are still accepted for compatibility with existing -diff --git a/util/grub-mkconfig.in b/util/grub-mkconfig.in -index 8752777e0..0aa41da93 100644 ---- a/util/grub-mkconfig.in -+++ b/util/grub-mkconfig.in -@@ -189,6 +189,10 @@ GRUB_ACTUAL_DEFAULT="$GRUB_DEFAULT" - - if [ "x${GRUB_ACTUAL_DEFAULT}" = "xsaved" ] ; then GRUB_ACTUAL_DEFAULT="`"${grub_editenv}" - list | sed -n '/^saved_entry=/ s,^saved_entry=,,p'`" ; fi - -+if [ "x${GRUB_RECOVERY_TITLE}" = "x" ]; then -+ GRUB_RECOVERY_TITLE="recovery mode" -+fi -+ - - # These are defined in this script, export them here so that user can - # override them. -@@ -244,7 +248,8 @@ export GRUB_DEFAULT \ - GRUB_BADRAM \ - GRUB_OS_PROBER_SKIP_LIST \ - GRUB_DISABLE_SUBMENU \ -- GRUB_RECORDFAIL_TIMEOUT -+ GRUB_RECORDFAIL_TIMEOUT \ -+ GRUB_RECOVERY_TITLE - - if test "x${grub_cfg}" != "x"; then - rm -f "${grub_cfg}.new" -diff --git a/util/grub.d/10_hurd.in b/util/grub.d/10_hurd.in -index 59a9a48a2..7fa3a3fbd 100644 ---- a/util/grub.d/10_hurd.in -+++ b/util/grub.d/10_hurd.in -@@ -88,8 +88,8 @@ hurd_entry () { - - if [ x$type != xsimple ] ; then - if [ x$type = xrecovery ] ; then -- title="$(gettext_printf "%s, with Hurd %s (recovery mode)" "${OS}" "${kernel_base}")" -- oldtitle="$OS using $kernel_base (recovery mode)" -+ title="$(gettext_printf "%s, with Hurd %s (%s)" "${OS}" "${kernel_base}" "$(gettext "${GRUB_RECOVERY_TITLE}")")" -+ oldtitle="$OS using $kernel_base ($GRUB_RECOVERY_TITLE)" - else - title="$(gettext_printf "%s, with Hurd %s" "${OS}" "${kernel_base}")" - oldtitle="$OS using $kernel_base" -diff --git a/util/grub.d/10_kfreebsd.in b/util/grub.d/10_kfreebsd.in -index 9d8e8fd85..8301d361a 100644 ---- a/util/grub.d/10_kfreebsd.in -+++ b/util/grub.d/10_kfreebsd.in -@@ -76,7 +76,7 @@ kfreebsd_entry () - fi - if [ x$type != xsimple ] ; then - if [ x$type = xrecovery ] ; then -- title="$(gettext_printf "%s, with kFreeBSD %s (recovery mode)" "${os}" "${version}")" -+ title="$(gettext_printf "%s, with kFreeBSD %s (%s)" "${os}" "${version}" "$(gettext "${GRUB_RECOVERY_TITLE}")")" - else - title="$(gettext_printf "%s, with kFreeBSD %s" "${os}" "${version}")" - fi -diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in -index 174d547bb..ba945582e 100644 ---- a/util/grub.d/10_linux.in -+++ b/util/grub.d/10_linux.in -@@ -126,7 +126,7 @@ linux_entry () - if [ x$type != xsimple ] ; then - case $type in - recovery) -- title="$(gettext_printf "%s, with Linux %s (recovery mode)" "${os}" "${version}")" ;; -+ title="$(gettext_printf "%s, with Linux %s (%s)" "${os}" "${version}" "$(gettext "${GRUB_RECOVERY_TITLE}")")" ;; - *) - title="$(gettext_printf "%s, with Linux %s" "${os}" "${version}")" ;; - esac -diff --git a/util/grub.d/10_netbsd.in b/util/grub.d/10_netbsd.in -index 874f59969..bb29cc046 100644 ---- a/util/grub.d/10_netbsd.in -+++ b/util/grub.d/10_netbsd.in -@@ -102,7 +102,7 @@ netbsd_entry () - - if [ x$type != xsimple ] ; then - if [ x$type = xrecovery ] ; then -- title="$(gettext_printf "%s, with kernel %s (via %s, recovery mode)" "${OS}" "$(echo ${kernel} | sed -e 's,^.*/,,')" "${loader}")" -+ title="$(gettext_printf "%s, with kernel %s (via %s, %s)" "${OS}" "$(echo ${kernel} | sed -e 's,^.*/,,')" "${loader}" "$(gettext "${GRUB_RECOVERY_TITLE}")")" - else - title="$(gettext_printf "%s, with kernel %s (via %s)" "${OS}" "$(echo ${kernel} | sed -e 's,^.*/,,')" "${loader}")" - fi -diff --git a/util/grub.d/20_linux_xen.in b/util/grub.d/20_linux_xen.in -index 9a8d42fb5..f2ee0532b 100644 ---- a/util/grub.d/20_linux_xen.in -+++ b/util/grub.d/20_linux_xen.in -@@ -105,7 +105,7 @@ linux_entry () - fi - if [ x$type != xsimple ] ; then - if [ x$type = xrecovery ] ; then -- title="$(gettext_printf "%s, with Xen %s and Linux %s (recovery mode)" "${os}" "${xen_version}" "${version}")" -+ title="$(gettext_printf "%s, with Xen %s and Linux %s (%s)" "${os}" "${xen_version}" "${version}" "$(gettext "${GRUB_RECOVERY_TITLE}")")" - else - title="$(gettext_printf "%s, with Xen %s and Linux %s" "${os}" "${xen_version}" "${version}")" - fi diff --git a/patches/grub/2.04/mkconfig-signed-kernel.patch b/patches/grub/2.04/mkconfig-signed-kernel.patch deleted file mode 100644 index 5d8105ded..000000000 --- a/patches/grub/2.04/mkconfig-signed-kernel.patch +++ /dev/null @@ -1,48 +0,0 @@ -From 492e1623436d1f0f2557ff4da2eb68a502295ba5 Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Mon, 13 Jan 2014 12:13:21 +0000 -Subject: Generate configuration for signed UEFI kernels if available - -Forwarded: no -Last-Update: 2013-12-25 - -Patch-Name: mkconfig-signed-kernel.patch ---- - util/grub.d/10_linux.in | 15 +++++++++++++++ - 1 file changed, 15 insertions(+) - -diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in -index fd87a124d..61335e908 100644 ---- a/util/grub.d/10_linux.in -+++ b/util/grub.d/10_linux.in -@@ -161,8 +161,16 @@ linux_entry () - message="$(gettext_printf "Loading Linux %s ..." ${version})" - sed "s/^/$submenu_indentation/" << EOF - echo '$(echo "$message" | grub_quote)' -+EOF -+ if test -d /sys/firmware/efi && test -e "${linux}.efi.signed"; then -+ sed "s/^/$submenu_indentation/" << EOF -+ linux ${rel_dirname}/${basename}.efi.signed root=${linux_root_device_thisversion} ro ${args} -+EOF -+ else -+ sed "s/^/$submenu_indentation/" << EOF - linux ${rel_dirname}/${basename} root=${linux_root_device_thisversion} ro ${args} - EOF -+ fi - if test -n "${initrd}" ; then - # TRANSLATORS: ramdisk isn't identifier. Should be translated. - message="$(gettext_printf "Loading initial ramdisk ...")" -@@ -214,6 +222,13 @@ submenu_indentation="" - is_top_level=true - while [ "x$list" != "x" ] ; do - linux=`version_find_latest $list` -+ case $linux in -+ *.efi.signed) -+ # We handle these in linux_entry. -+ list=`echo $list | tr ' ' '\n' | grep -vx $linux | tr '\n' ' '` -+ continue -+ ;; -+ esac - gettext_printf "Found linux image: %s\n" "$linux" >&2 - basename=`basename $linux` - dirname=`dirname $linux` diff --git a/patches/grub/2.04/mkconfig-ubuntu-distributor.patch b/patches/grub/2.04/mkconfig-ubuntu-distributor.patch deleted file mode 100644 index 2af261062..000000000 --- a/patches/grub/2.04/mkconfig-ubuntu-distributor.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 267fd06cb9680bf457a1d9a4f532f8ce21c6ddf3 Mon Sep 17 00:00:00 2001 -From: Mario Limonciello -Date: Mon, 13 Jan 2014 12:13:14 +0000 -Subject: Remove GNU/Linux from default distributor string for Ubuntu - -Ubuntu is called "Ubuntu", not "Ubuntu GNU/Linux". - -Author: Colin Watson -Author: Harald Sitter -Forwarded: not-needed -Last-Update: 2013-12-25 - -Patch-Name: mkconfig-ubuntu-distributor.patch ---- - util/grub.d/10_linux.in | 9 ++++++++- - 1 file changed, 8 insertions(+), 1 deletion(-) - -diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in -index 0509ac680..fd87a124d 100644 ---- a/util/grub.d/10_linux.in -+++ b/util/grub.d/10_linux.in -@@ -32,7 +32,14 @@ CLASS="--class gnu-linux --class gnu --class os" - if [ "x${GRUB_DISTRIBUTOR}" = "x" ] ; then - OS=GNU/Linux - else -- OS="${GRUB_DISTRIBUTOR} GNU/Linux" -+ case ${GRUB_DISTRIBUTOR} in -+ Ubuntu|Kubuntu) -+ OS="${GRUB_DISTRIBUTOR}" -+ ;; -+ *) -+ OS="${GRUB_DISTRIBUTOR} GNU/Linux" -+ ;; -+ esac - CLASS="--class $(echo ${GRUB_DISTRIBUTOR} | tr 'A-Z' 'a-z' | cut -d' ' -f1|LC_ALL=C sed 's,[^[:alnum:]_],_,g') ${CLASS}" - fi - diff --git a/patches/grub/2.04/mkconfig-ubuntu-recovery.patch b/patches/grub/2.04/mkconfig-ubuntu-recovery.patch deleted file mode 100644 index ada73c064..000000000 --- a/patches/grub/2.04/mkconfig-ubuntu-recovery.patch +++ /dev/null @@ -1,107 +0,0 @@ -From 4493c7ab311c8f0b898a17b407939d042edf66cd Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Mon, 13 Jan 2014 12:13:06 +0000 -Subject: "single" -> "recovery" when friendly-recovery is installed -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -If configured with --enable-ubuntu-recovery, also set nomodeset for -recovery mode, and disable 'set gfxpayload=keep' even if the system -normally supports it. See -https://launchpad.net/ubuntu/+spec/desktop-o-xorg-tools-and-processes. - -Author: Stéphane Graber -Forwarded: no -Last-Update: 2013-12-25 - -Patch-Name: mkconfig-ubuntu-recovery.patch ---- - configure.ac | 11 +++++++++++ - util/grub.d/10_linux.in | 16 ++++++++++++++-- - util/grub.d/30_os-prober.in | 2 +- - 3 files changed, 26 insertions(+), 3 deletions(-) - -diff --git a/configure.ac b/configure.ac -index 7656f2434..1e5abc67d 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -1846,6 +1846,17 @@ fi - AC_SUBST([LIBZFS]) - AC_SUBST([LIBNVPAIR]) - -+AC_ARG_ENABLE([ubuntu-recovery], -+ [AS_HELP_STRING([--enable-ubuntu-recovery], -+ [adjust boot options for the Ubuntu recovery mode (default=no)])], -+ [], [enable_ubuntu_recovery=no]) -+if test x"$enable_ubuntu_recovery" = xyes ; then -+ UBUNTU_RECOVERY=1 -+else -+ UBUNTU_RECOVERY=0 -+fi -+AC_SUBST([UBUNTU_RECOVERY]) -+ - LIBS="" - - AC_SUBST([FONT_SOURCE]) -diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in -index 8c22c79f6..0509ac680 100644 ---- a/util/grub.d/10_linux.in -+++ b/util/grub.d/10_linux.in -@@ -20,6 +20,7 @@ set -e - prefix="@prefix@" - exec_prefix="@exec_prefix@" - datarootdir="@datarootdir@" -+ubuntu_recovery="@UBUNTU_RECOVERY@" - - . "$pkgdatadir/grub-mkconfig_lib" - -@@ -84,6 +85,15 @@ esac - - title_correction_code= - -+if [ -x /lib/recovery-mode/recovery-menu ]; then -+ GRUB_CMDLINE_LINUX_RECOVERY=recovery -+else -+ GRUB_CMDLINE_LINUX_RECOVERY=single -+fi -+if [ "$ubuntu_recovery" = 1 ]; then -+ GRUB_CMDLINE_LINUX_RECOVERY="$GRUB_CMDLINE_LINUX_RECOVERY nomodeset" -+fi -+ - linux_entry () - { - os="$1" -@@ -123,7 +133,9 @@ linux_entry () - if [ "x$GRUB_GFXPAYLOAD_LINUX" != xtext ]; then - echo " load_video" | sed "s/^/$submenu_indentation/" - fi -- echo " set gfxpayload=$GRUB_GFXPAYLOAD_LINUX" | sed "s/^/$submenu_indentation/" -+ if [ "$ubuntu_recovery" = 0 ] || [ x$type != xrecovery ]; then -+ echo " set gfxpayload=$GRUB_GFXPAYLOAD_LINUX" | sed "s/^/$submenu_indentation/" -+ fi - fi - - echo " insmod gzio" | sed "s/^/$submenu_indentation/" -@@ -280,7 +292,7 @@ while [ "x$list" != "x" ] ; do - "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}" - if [ "x${GRUB_DISABLE_RECOVERY}" != "xtrue" ]; then - linux_entry "${OS}" "${version}" recovery \ -- "single ${GRUB_CMDLINE_LINUX}" -+ "${GRUB_CMDLINE_LINUX_RECOVERY} ${GRUB_CMDLINE_LINUX}" - fi - - list=`echo $list | tr ' ' '\n' | fgrep -vx "$linux" | tr '\n' ' '` -diff --git a/util/grub.d/30_os-prober.in b/util/grub.d/30_os-prober.in -index 515a68c7a..775ceb2e0 100644 ---- a/util/grub.d/30_os-prober.in -+++ b/util/grub.d/30_os-prober.in -@@ -220,7 +220,7 @@ EOF - fi - - onstr="$(gettext_printf "(on %s)" "${DEVICE}")" -- recovery_params="$(echo "${LPARAMS}" | grep single)" || true -+ recovery_params="$(echo "${LPARAMS}" | grep 'single\|recovery')" || true - counter=1 - while echo "$used_osprober_linux_ids" | grep 'osprober-gnulinux-$LKERNEL-${recovery_params}-$counter-$boot_device_id' > /dev/null; do - counter=$((counter+1)); diff --git a/patches/grub/2.04/mkrescue-efi-modules.patch b/patches/grub/2.04/mkrescue-efi-modules.patch deleted file mode 100644 index db44eea4a..000000000 --- a/patches/grub/2.04/mkrescue-efi-modules.patch +++ /dev/null @@ -1,35 +0,0 @@ -From b1e5197cab859b271d539c8e4a9f2928b23b66b2 Mon Sep 17 00:00:00 2001 -From: Mario Limonciello -Date: Mon, 13 Jan 2014 12:12:59 +0000 -Subject: Build vfat into EFI boot images - -Author: Colin Watson -Bug-Ubuntu: https://bugs.launchpad.net/bugs/677758 -Forwarded: http://lists.gnu.org/archive/html/grub-devel/2011-01/msg00028.html -Last-Update: 2016-09-18 - -Patch-Name: mkrescue-efi-modules.patch ---- - util/grub-mkrescue.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/util/grub-mkrescue.c b/util/grub-mkrescue.c -index ce2cbc4f1..45d6140d3 100644 ---- a/util/grub-mkrescue.c -+++ b/util/grub-mkrescue.c -@@ -750,6 +750,7 @@ main (int argc, char *argv[]) - - grub_install_push_module ("part_gpt"); - grub_install_push_module ("part_msdos"); -+ grub_install_push_module ("fat"); - - imgname = grub_util_path_concat (2, efidir_efi_boot, "bootia64.efi"); - make_image_fwdisk_abs (GRUB_INSTALL_PLATFORM_IA64_EFI, "ia64-efi", imgname); -@@ -827,6 +828,7 @@ main (int argc, char *argv[]) - free (efidir); - grub_install_pop_module (); - grub_install_pop_module (); -+ grub_install_pop_module (); - } - - grub_install_push_module ("part_apple"); diff --git a/patches/grub/2.04/multiboot2-leak.patch b/patches/grub/2.04/multiboot2-leak.patch deleted file mode 100644 index 9b55df4d9..000000000 --- a/patches/grub/2.04/multiboot2-leak.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 3b39c2023f3aa242b008385939a7394e5946e94b Mon Sep 17 00:00:00 2001 -From: Konrad Rzeszutek Wilk -Date: Fri, 26 Jun 2020 10:51:43 -0400 -Subject: multiboot2: Fix memory leak if grub_create_loader_cmdline() fails - -Fixes: CID 292468 - -Signed-off-by: Konrad Rzeszutek Wilk -Reviewed-by: Daniel Kiper - -Patch-Name: multiboot2-leak.patch ---- - grub-core/loader/multiboot_mbi2.c | 6 +++++- - 1 file changed, 5 insertions(+), 1 deletion(-) - -diff --git a/grub-core/loader/multiboot_mbi2.c b/grub-core/loader/multiboot_mbi2.c -index 53da78615..0efc66062 100644 ---- a/grub-core/loader/multiboot_mbi2.c -+++ b/grub-core/loader/multiboot_mbi2.c -@@ -1070,7 +1070,11 @@ grub_multiboot2_add_module (grub_addr_t start, grub_size_t size, - err = grub_create_loader_cmdline (argc, argv, newmod->cmdline, - newmod->cmdline_size, GRUB_VERIFY_MODULE_CMDLINE); - if (err) -- return err; -+ { -+ grub_free (newmod->cmdline); -+ grub_free (newmod); -+ return err; -+ } - - if (modules_last) - modules_last->next = newmod; diff --git a/patches/grub/2.04/net-read-bracketed-ipv6-addr.patch b/patches/grub/2.04/net-read-bracketed-ipv6-addr.patch deleted file mode 100644 index f318be0c2..000000000 --- a/patches/grub/2.04/net-read-bracketed-ipv6-addr.patch +++ /dev/null @@ -1,254 +0,0 @@ -From baf5beb0dba441f4622de2f0d152e389975fee56 Mon Sep 17 00:00:00 2001 -From: Aaron Miller -Date: Thu, 27 Oct 2016 17:39:49 -0400 -Subject: net: read bracketed ipv6 addrs and port numbers - -Allow specifying port numbers for http and tftp paths, and allow ipv6 addresses -to be recognized with brackets around them, which is required to specify a port -number - -Patch-Name: net-read-bracketed-ipv6-addr.patch ---- - grub-core/net/http.c | 21 ++++++++-- - grub-core/net/net.c | 93 +++++++++++++++++++++++++++++++++++++++++--- - grub-core/net/tftp.c | 6 ++- - include/grub/net.h | 1 + - 4 files changed, 110 insertions(+), 11 deletions(-) - -diff --git a/grub-core/net/http.c b/grub-core/net/http.c -index 5aa4ad3be..f182d7b87 100644 ---- a/grub-core/net/http.c -+++ b/grub-core/net/http.c -@@ -312,12 +312,14 @@ http_establish (struct grub_file *file, grub_off_t offset, int initial) - int i; - struct grub_net_buff *nb; - grub_err_t err; -+ char* server = file->device->net->server; -+ int port = file->device->net->port; - - nb = grub_netbuff_alloc (GRUB_NET_TCP_RESERVE_SIZE - + sizeof ("GET ") - 1 - + grub_strlen (data->filename) - + sizeof (" HTTP/1.1\r\nHost: ") - 1 -- + grub_strlen (file->device->net->server) -+ + grub_strlen (server) + sizeof (":XXXXXXXXXX") - + sizeof ("\r\nUser-Agent: " PACKAGE_STRING - "\r\n") - 1 - + sizeof ("Range: bytes=XXXXXXXXXXXXXXXXXXXX" -@@ -356,7 +358,7 @@ http_establish (struct grub_file *file, grub_off_t offset, int initial) - sizeof (" HTTP/1.1\r\nHost: ") - 1); - - ptr = nb->tail; -- err = grub_netbuff_put (nb, grub_strlen (file->device->net->server)); -+ err = grub_netbuff_put (nb, grub_strlen (server)); - if (err) - { - grub_netbuff_free (nb); -@@ -365,6 +367,15 @@ http_establish (struct grub_file *file, grub_off_t offset, int initial) - grub_memcpy (ptr, file->device->net->server, - grub_strlen (file->device->net->server)); - -+ if (port) -+ { -+ ptr = nb->tail; -+ grub_snprintf ((char *) ptr, -+ sizeof (":XXXXXXXXXX"), -+ ":%d", -+ port); -+ } -+ - ptr = nb->tail; - err = grub_netbuff_put (nb, - sizeof ("\r\nUser-Agent: " PACKAGE_STRING "\r\n") -@@ -390,8 +401,10 @@ http_establish (struct grub_file *file, grub_off_t offset, int initial) - grub_netbuff_put (nb, 2); - grub_memcpy (ptr, "\r\n", 2); - -- data->sock = grub_net_tcp_open (file->device->net->server, -- HTTP_PORT, http_receive, -+ grub_dprintf ("http", "opening path %s on host %s TCP port %d\n", -+ data->filename, server, port ? port : HTTP_PORT); -+ data->sock = grub_net_tcp_open (server, -+ port ? port : HTTP_PORT, http_receive, - http_err, http_err, - file); - if (!data->sock) -diff --git a/grub-core/net/net.c b/grub-core/net/net.c -index d5d726a31..b917a75d5 100644 ---- a/grub-core/net/net.c -+++ b/grub-core/net/net.c -@@ -437,6 +437,12 @@ parse_ip6 (const char *val, grub_uint64_t *ip, const char **rest) - grub_uint16_t newip[8]; - const char *ptr = val; - int word, quaddot = -1; -+ int bracketed = 0; -+ -+ if (ptr[0] == '[') { -+ bracketed = 1; -+ ptr++; -+ } - - if (ptr[0] == ':' && ptr[1] != ':') - return 0; -@@ -475,6 +481,9 @@ parse_ip6 (const char *val, grub_uint64_t *ip, const char **rest) - grub_memset (&newip[quaddot], 0, (7 - word) * sizeof (newip[0])); - } - grub_memcpy (ip, newip, 16); -+ if (bracketed && *ptr == ']') { -+ ptr++; -+ } - if (rest) - *rest = ptr; - return 1; -@@ -1260,8 +1269,10 @@ grub_net_open_real (const char *name) - { - grub_net_app_level_t proto; - const char *protname, *server; -+ char *host; - grub_size_t protnamelen; - int try; -+ int port = 0; - - if (grub_strncmp (name, "pxe:", sizeof ("pxe:") - 1) == 0) - { -@@ -1299,6 +1310,72 @@ grub_net_open_real (const char *name) - return NULL; - } - -+ char* port_start; -+ /* ipv6 or port specified? */ -+ if ((port_start = grub_strchr (server, ':'))) -+ { -+ char* ipv6_begin; -+ if((ipv6_begin = grub_strchr (server, '['))) -+ { -+ char* ipv6_end = grub_strchr (server, ']'); -+ if(!ipv6_end) -+ { -+ grub_error (GRUB_ERR_NET_BAD_ADDRESS, -+ N_("mismatched [ in address")); -+ return NULL; -+ } -+ /* port number after bracketed ipv6 addr */ -+ if(ipv6_end[1] == ':') -+ { -+ port = grub_strtoul (ipv6_end + 2, NULL, 10); -+ if(port > 65535) -+ { -+ grub_error (GRUB_ERR_NET_BAD_ADDRESS, -+ N_("bad port number")); -+ return NULL; -+ } -+ } -+ host = grub_strndup (ipv6_begin, (ipv6_end - ipv6_begin) + 1); -+ } -+ else -+ { -+ if (grub_strchr (port_start + 1, ':')) -+ { -+ int iplen = grub_strlen (server); -+ /* bracket bare ipv6 addrs */ -+ host = grub_malloc (iplen + 3); -+ if(!host) -+ { -+ return NULL; -+ } -+ host[0] = '['; -+ grub_memcpy (host + 1, server, iplen); -+ host[iplen + 1] = ']'; -+ host[iplen + 2] = '\0'; -+ } -+ else -+ { -+ /* hostname:port or ipv4:port */ -+ port = grub_strtol (port_start + 1, NULL, 10); -+ if(port > 65535) -+ { -+ grub_error (GRUB_ERR_NET_BAD_ADDRESS, -+ N_("bad port number")); -+ return NULL; -+ } -+ host = grub_strndup (server, port_start - server); -+ } -+ } -+ } -+ else -+ { -+ host = grub_strdup (server); -+ } -+ if (!host) -+ { -+ return NULL; -+ } -+ - for (try = 0; try < 2; try++) - { - FOR_NET_APP_LEVEL (proto) -@@ -1308,15 +1385,19 @@ grub_net_open_real (const char *name) - { - grub_net_t ret = grub_zalloc (sizeof (*ret)); - if (!ret) -- return NULL; -- ret->protocol = proto; -- ret->server = grub_strdup (server); -- if (!ret->server) -+ grub_free (host); -+ if (host) - { -- grub_free (ret); -- return NULL; -+ ret->server = grub_strdup (host); -+ if (!ret->server) -+ { -+ grub_free (ret); -+ return NULL; -+ } - } - ret->fs = &grub_net_fs; -+ ret->protocol = proto; -+ ret->port = port; - return ret; - } - } -diff --git a/grub-core/net/tftp.c b/grub-core/net/tftp.c -index 7d90bf66e..a0817a075 100644 ---- a/grub-core/net/tftp.c -+++ b/grub-core/net/tftp.c -@@ -314,6 +314,7 @@ tftp_open (struct grub_file *file, const char *filename) - grub_err_t err; - grub_uint8_t *nbd; - grub_net_network_level_address_t addr; -+ int port = file->device->net->port; - - data = grub_zalloc (sizeof (*data)); - if (!data) -@@ -382,13 +383,16 @@ tftp_open (struct grub_file *file, const char *filename) - err = grub_net_resolve_address (file->device->net->server, &addr); - if (err) - { -+ grub_dprintf ("tftp", "file_size is %llu, block_size is %llu\n", -+ (unsigned long long)data->file_size, -+ (unsigned long long)data->block_size); - destroy_pq (data); - grub_free (data); - return err; - } - - data->sock = grub_net_udp_open (addr, -- TFTP_SERVER_PORT, tftp_receive, -+ port ? port : TFTP_SERVER_PORT, tftp_receive, - file); - if (!data->sock) - { -diff --git a/include/grub/net.h b/include/grub/net.h -index 4a9069a14..cc114286e 100644 ---- a/include/grub/net.h -+++ b/include/grub/net.h -@@ -270,6 +270,7 @@ typedef struct grub_net - { - char *server; - char *name; -+ int port; - grub_net_app_level_t protocol; - grub_net_packets_t packs; - grub_off_t offset; diff --git a/patches/grub/2.04/no-devicetree-if-secure-boot.patch b/patches/grub/2.04/no-devicetree-if-secure-boot.patch deleted file mode 100644 index 92b8ea039..000000000 --- a/patches/grub/2.04/no-devicetree-if-secure-boot.patch +++ /dev/null @@ -1,67 +0,0 @@ -From 269cf7f9c74d192d33dc899cadcd4ee120e494e1 Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Wed, 24 Apr 2019 10:03:04 -0400 -Subject: Forbid the "devicetree" command when Secure Boot is enabled. - -Signed-off-by: Peter Jones -Signed-off-by: Steve McIntyre <93sam@debian.org> - -Origin: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=927888#15 -Bug-Debian: https://bugs.debian.org/927888 -Last-Update: 2019-05-04 - -Patch-Name: no-devicetree-if-secure-boot.patch ---- - grub-core/loader/arm/linux.c | 12 ++++++++++++ - grub-core/loader/efi/fdt.c | 8 ++++++++ - 2 files changed, 20 insertions(+) - -diff --git a/grub-core/loader/arm/linux.c b/grub-core/loader/arm/linux.c -index 51684914c..092e8e307 100644 ---- a/grub-core/loader/arm/linux.c -+++ b/grub-core/loader/arm/linux.c -@@ -30,6 +30,10 @@ - #include - #include - -+#ifdef GRUB_MACHINE_EFI -+#include -+#endif -+ - GRUB_MOD_LICENSE ("GPLv3+"); - - static grub_dl_t my_mod; -@@ -471,6 +475,14 @@ grub_cmd_devicetree (grub_command_t cmd __attribute__ ((unused)), - if (argc != 1) - return grub_error (GRUB_ERR_BAD_ARGUMENT, N_("filename expected")); - -+#ifdef GRUB_MACHINE_EFI -+ if (grub_efi_secure_boot ()) -+ { -+ return grub_error (GRUB_ERR_ACCESS_DENIED, -+ "Secure Boot forbids loading devicetree from %s", argv[0]); -+ } -+#endif -+ - dtb = grub_file_open (argv[0], GRUB_FILE_TYPE_DEVICE_TREE_IMAGE); - if (!dtb) - return grub_errno; -diff --git a/grub-core/loader/efi/fdt.c b/grub-core/loader/efi/fdt.c -index ee9c5592c..f0c2d91be 100644 ---- a/grub-core/loader/efi/fdt.c -+++ b/grub-core/loader/efi/fdt.c -@@ -123,6 +123,14 @@ grub_cmd_devicetree (grub_command_t cmd __attribute__ ((unused)), - return GRUB_ERR_NONE; - } - -+#ifdef GRUB_MACHINE_EFI -+ if (grub_efi_secure_boot ()) -+ { -+ return grub_error (GRUB_ERR_ACCESS_DENIED, -+ "Secure Boot forbids loading devicetree from %s", argv[0]); -+ } -+#endif -+ - dtb = grub_file_open (argv[0], GRUB_FILE_TYPE_DEVICE_TREE_IMAGE); - if (!dtb) - goto out; diff --git a/patches/grub/2.04/no-insmod-on-sb.patch b/patches/grub/2.04/no-insmod-on-sb.patch deleted file mode 100644 index 177ec54bb..000000000 --- a/patches/grub/2.04/no-insmod-on-sb.patch +++ /dev/null @@ -1,99 +0,0 @@ -From b5a6aa7d77439bfeb75f200abffe15c6f685c907 Mon Sep 17 00:00:00 2001 -From: Matthew Garrett -Date: Mon, 13 Jan 2014 12:13:09 +0000 -Subject: Don't permit loading modules on UEFI secure boot - -Author: Colin Watson -Origin: vendor, http://pkgs.fedoraproject.org/cgit/grub2.git/tree/grub-2.00-no-insmod-on-sb.patch -Forwarded: no -Last-Update: 2013-12-25 - -Patch-Name: no-insmod-on-sb.patch ---- - grub-core/kern/dl.c | 13 +++++++++++++ - grub-core/kern/efi/efi.c | 28 ++++++++++++++++++++++++++++ - include/grub/efi/efi.h | 1 + - 3 files changed, 42 insertions(+) - -diff --git a/grub-core/kern/dl.c b/grub-core/kern/dl.c -index 48eb5e7b6..074dfc3c6 100644 ---- a/grub-core/kern/dl.c -+++ b/grub-core/kern/dl.c -@@ -38,6 +38,10 @@ - #define GRUB_MODULES_MACHINE_READONLY - #endif - -+#ifdef GRUB_MACHINE_EFI -+#include -+#endif -+ - - - #pragma GCC diagnostic ignored "-Wcast-align" -@@ -686,6 +690,15 @@ grub_dl_load_file (const char *filename) - void *core = 0; - grub_dl_t mod = 0; - -+#ifdef GRUB_MACHINE_EFI -+ if (grub_efi_secure_boot ()) -+ { -+ grub_error (GRUB_ERR_ACCESS_DENIED, -+ "Secure Boot forbids loading module from %s", filename); -+ return 0; -+ } -+#endif -+ - grub_boot_time ("Loading module %s", filename); - - file = grub_file_open (filename, GRUB_FILE_TYPE_GRUB_MODULE); -diff --git a/grub-core/kern/efi/efi.c b/grub-core/kern/efi/efi.c -index 6e1ceb905..96204e39b 100644 ---- a/grub-core/kern/efi/efi.c -+++ b/grub-core/kern/efi/efi.c -@@ -273,6 +273,34 @@ grub_efi_get_variable (const char *var, const grub_efi_guid_t *guid, - return NULL; - } - -+grub_efi_boolean_t -+grub_efi_secure_boot (void) -+{ -+ grub_efi_guid_t efi_var_guid = GRUB_EFI_GLOBAL_VARIABLE_GUID; -+ grub_size_t datasize; -+ char *secure_boot = NULL; -+ char *setup_mode = NULL; -+ grub_efi_boolean_t ret = 0; -+ -+ secure_boot = grub_efi_get_variable ("SecureBoot", &efi_var_guid, &datasize); -+ -+ if (datasize != 1 || !secure_boot) -+ goto out; -+ -+ setup_mode = grub_efi_get_variable ("SetupMode", &efi_var_guid, &datasize); -+ -+ if (datasize != 1 || !setup_mode) -+ goto out; -+ -+ if (*secure_boot && !*setup_mode) -+ ret = 1; -+ -+ out: -+ grub_free (secure_boot); -+ grub_free (setup_mode); -+ return ret; -+} -+ - #pragma GCC diagnostic ignored "-Wcast-align" - - /* Search the mods section from the PE32/PE32+ image. This code uses -diff --git a/include/grub/efi/efi.h b/include/grub/efi/efi.h -index e90e00dc4..a237952b3 100644 ---- a/include/grub/efi/efi.h -+++ b/include/grub/efi/efi.h -@@ -82,6 +82,7 @@ EXPORT_FUNC (grub_efi_set_variable) (const char *var, - const grub_efi_guid_t *guid, - void *data, - grub_size_t datasize); -+grub_efi_boolean_t EXPORT_FUNC (grub_efi_secure_boot) (void); - int - EXPORT_FUNC (grub_efi_compare_device_paths) (const grub_efi_device_path_t *dp1, - const grub_efi_device_path_t *dp2); diff --git a/patches/grub/2.04/olpc-prefix-hack.patch b/patches/grub/2.04/olpc-prefix-hack.patch deleted file mode 100644 index b14c333a2..000000000 --- a/patches/grub/2.04/olpc-prefix-hack.patch +++ /dev/null @@ -1,51 +0,0 @@ -From f268916868b7b2a6b0012a23fb6f434eb208b834 Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Mon, 13 Jan 2014 12:12:50 +0000 -Subject: Hack prefix for OLPC - -This sucks, but it's better than what OFW was giving us. - -Patch-Name: olpc-prefix-hack.patch ---- - grub-core/kern/ieee1275/init.c | 11 +++++++++++ - 1 file changed, 11 insertions(+) - -diff --git a/grub-core/kern/ieee1275/init.c b/grub-core/kern/ieee1275/init.c -index d483e35ee..8b089b48d 100644 ---- a/grub-core/kern/ieee1275/init.c -+++ b/grub-core/kern/ieee1275/init.c -@@ -76,6 +76,7 @@ grub_exit (void) - grub_ieee1275_exit (); - } - -+#ifndef __i386__ - /* Translate an OF filesystem path (separated by backslashes), into a GRUB - path (separated by forward slashes). */ - static void -@@ -90,9 +91,18 @@ grub_translate_ieee1275_path (char *filepath) - backslash = grub_strchr (filepath, '\\'); - } - } -+#endif - - void (*grub_ieee1275_net_config) (const char *dev, char **device, char **path, - char *bootpath); -+#ifdef __i386__ -+void -+grub_machine_get_bootlocation (char **device __attribute__ ((unused)), -+ char **path __attribute__ ((unused))) -+{ -+ grub_env_set ("prefix", "(sd,1)/"); -+} -+#else - void - grub_machine_get_bootlocation (char **device, char **path) - { -@@ -146,6 +156,7 @@ grub_machine_get_bootlocation (char **device, char **path) - } - grub_free (bootpath); - } -+#endif - - /* Claim some available memory in the first /memory node. */ - #ifdef __sparc__ diff --git a/patches/grub/2.04/onie-disable-udevadm-in-grub-install.patch b/patches/grub/2.04/onie-disable-udevadm-in-grub-install.patch deleted file mode 100644 index a6658a034..000000000 --- a/patches/grub/2.04/onie-disable-udevadm-in-grub-install.patch +++ /dev/null @@ -1,44 +0,0 @@ -From 174c02f9a4e9b1963071a5e8eca6295a577bbdfe Mon Sep 17 00:00:00 2001 -From: Alex Doyle -Date: Thu, 15 Oct 2020 12:53:32 -0700 -Subject: [PATCH] Disable udevadm call in grub-install - -The ONIE GRUB install environment does not have udevadm installed. -For the 2.02 release, this was not an issue - the attempt to -use udevadm in hostdisk.c would fail and install would continue. - -With the 2.04 release, the on_exit handler is enabled, which attempts -to clean up if there is an error. - -Since udevadm is not installed, that call errors, triggers the -exit handler, and it deletes all the files in /mnt/onie-boot/grub/i386-pc, and the install fails. - -A silent failure is fine as the install will proceed. ---- - grub-core/osdep/linux/hostdisk.c | 10 ++++++++++ - 1 file changed, 10 insertions(+) - -diff --git a/grub-core/osdep/linux/hostdisk.c b/grub-core/osdep/linux/hostdisk.c -index 8b92f85..6f7b703 100644 ---- a/grub-core/osdep/linux/hostdisk.c -+++ b/grub-core/osdep/linux/hostdisk.c -@@ -106,6 +106,16 @@ sysfs_partition_path (const char *dev, const char *entry) - size_t len = 0; - char *path = NULL; - -+ /* -+ * The ONIE install environment doesn't have udevadm installed, which causes: -+ * The forked call to return an error, -+ * ...which triggers the on_exit cleanup routine -+ * ...which deletes everything under /mnt/onie-boot/grub/i386-pc/ -+ * ...which then destroys the embed install. -+ * returning NULL gracefully fails it. -+ */ -+ return NULL; -+ - argv[0] = "udevadm"; - argv[1] = "info"; - argv[2] = "--query"; --- -2.20.1 - diff --git a/patches/grub/2.04/ppc64el-disable-vsx.patch b/patches/grub/2.04/ppc64el-disable-vsx.patch deleted file mode 100644 index 1db923efe..000000000 --- a/patches/grub/2.04/ppc64el-disable-vsx.patch +++ /dev/null @@ -1,52 +0,0 @@ -From 09d05ea908db9618409b24ed4a5aa8194e084f5d Mon Sep 17 00:00:00 2001 -From: Paulo Flabiano Smorigo -Date: Thu, 25 Sep 2014 19:33:39 -0300 -Subject: Disable VSX instruction - -VSX bit is enabled by default for Power7 and Power8 CPU models, -so we need to disable them in order to avoid instruction exceptions. -Kernel will activate it when necessary. - -* grub-core/kern/powerpc/ieee1275/startup.S: Disable VSX. - -Also-By: Adhemerval Zanella -Also-By: Colin Watson - -Origin: other, https://lists.gnu.org/archive/html/grub-devel/2014-09/msg00078.html -Last-Update: 2015-01-27 - -Patch-Name: ppc64el-disable-vsx.patch ---- - grub-core/kern/powerpc/ieee1275/startup.S | 12 ++++++++++++ - 1 file changed, 12 insertions(+) - -diff --git a/grub-core/kern/powerpc/ieee1275/startup.S b/grub-core/kern/powerpc/ieee1275/startup.S -index 21c884b43..de9a9601a 100644 ---- a/grub-core/kern/powerpc/ieee1275/startup.S -+++ b/grub-core/kern/powerpc/ieee1275/startup.S -@@ -20,6 +20,8 @@ - #include - #include - -+#define MSR_VSX 0x80 -+ - .extern __bss_start - .extern _end - -@@ -28,6 +30,16 @@ - .globl start, _start - start: - _start: -+ _start: -+ -+ /* Disable VSX instruction */ -+ mfmsr 0 -+ oris 0,0,MSR_VSX -+ /* The "VSX Available" bit is in the lower half of the MSR, so we -+ don't need mtmsrd, which in any case won't work in 32-bit mode. */ -+ mtmsr 0 -+ isync -+ - li 2, 0 - li 13, 0 - diff --git a/patches/grub/2.04/probe-fusionio.patch b/patches/grub/2.04/probe-fusionio.patch deleted file mode 100644 index 650fd69d4..000000000 --- a/patches/grub/2.04/probe-fusionio.patch +++ /dev/null @@ -1,76 +0,0 @@ -From 3b29db7e1e314aae7d42b74940c01d1de716ccf8 Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Mon, 13 Jan 2014 12:13:31 +0000 -Subject: Probe FusionIO devices - -Bug-Ubuntu: https://bugs.launchpad.net/bugs/1237519 -Forwarded: no -Last-Update: 2016-09-18 - -Patch-Name: probe-fusionio.patch ---- - grub-core/osdep/linux/getroot.c | 13 +++++++++++++ - util/deviceiter.c | 19 +++++++++++++++++++ - 2 files changed, 32 insertions(+) - -diff --git a/grub-core/osdep/linux/getroot.c b/grub-core/osdep/linux/getroot.c -index 90d92d3ad..7adc0f30e 100644 ---- a/grub-core/osdep/linux/getroot.c -+++ b/grub-core/osdep/linux/getroot.c -@@ -950,6 +950,19 @@ grub_util_part_to_disk (const char *os_dev, struct stat *st, - *pp = '\0'; - return path; - } -+ -+ /* If this is a FusionIO disk. */ -+ if ((strncmp ("fio", p, 3) == 0) && p[3] >= 'a' && p[3] <= 'z') -+ { -+ char *pp = p + 3; -+ while (*pp >= 'a' && *pp <= 'z') -+ pp++; -+ if (*pp) -+ *is_part = 1; -+ /* /dev/fio[a-z]+[0-9]* */ -+ *pp = '\0'; -+ return path; -+ } - } - - return path; -diff --git a/util/deviceiter.c b/util/deviceiter.c -index a4971ef42..dddc50da7 100644 ---- a/util/deviceiter.c -+++ b/util/deviceiter.c -@@ -383,6 +383,12 @@ get_nvme_disk_name (char *name, int controller, int namespace) - { - sprintf (name, "/dev/nvme%dn%d", controller, namespace); - } -+ -+static void -+get_fio_disk_name (char *name, int unit) -+{ -+ sprintf (name, "/dev/fio%c", unit + 'a'); -+} - #endif - - static struct seen_device -@@ -923,6 +929,19 @@ grub_util_iterate_devices (int (*hook) (const char *, int, void *), void *hook_d - } - } - -+ /* FusionIO. */ -+ for (i = 0; i < 26; i++) -+ { -+ char name[16]; -+ -+ get_fio_disk_name (name, i); -+ if (check_device_readable_unique (name)) -+ { -+ if (hook (name, 0, hook_data)) -+ goto out; -+ } -+ } -+ - # ifdef HAVE_DEVICE_MAPPER - # define dmraid_check(cond, ...) \ - if (! (cond)) \ diff --git a/patches/grub/2.04/quick-boot-lvm.patch b/patches/grub/2.04/quick-boot-lvm.patch deleted file mode 100644 index b8fd10db9..000000000 --- a/patches/grub/2.04/quick-boot-lvm.patch +++ /dev/null @@ -1,77 +0,0 @@ -From be1a470babffb9305a41aae735cc62c509d63b27 Mon Sep 17 00:00:00 2001 -From: Steve Langasek -Date: Tue, 30 Oct 2018 15:04:16 -0700 -Subject: If we don't have writable grubenv and we're on EFI, always show the - menu - -If we don't have writable grubenv, recordfail doesn't work, which means our -quickboot behavior - with a timeout of 0 - leaves the user without a -reliable way to access the boot menu if they're on UEFI, because unlike -BIOS, UEFI does not support checking the state of modifier keys (i.e. -holding down shift at boot is not detectable). - -Handle this corner case by always using a non-zero timeout on EFI when -save_env doesn't work. - -Reuse GRUB_RECORDFAIL_TIMEOUT to avoid introducing another variable. - -Signed-off-by: Steve Langasek - -Bug-Ubuntu: https://bugs.launchpad.net/bugs/1800722 -Last-Update: 2019-06-24 - -Patch-Name: quick-boot-lvm.patch ---- - util/grub.d/00_header.in | 18 +++++++++++++++--- - 1 file changed, 15 insertions(+), 3 deletions(-) - -diff --git a/util/grub.d/00_header.in b/util/grub.d/00_header.in -index 674a76140..b7135b655 100644 ---- a/util/grub.d/00_header.in -+++ b/util/grub.d/00_header.in -@@ -115,7 +115,7 @@ EOF - cat < -Date: Mon, 13 Jan 2014 12:13:28 +0000 -Subject: Add configure option to bypass boot menu if possible - -If other operating systems are installed, then automatically unhide the -menu. Otherwise, if GRUB_HIDDEN_TIMEOUT is 0, then use keystatus if -available to check whether Shift is pressed. If it is, show the menu, -otherwise boot immediately. If keystatus is not available, then fall -back to a short delay interruptible with Escape. - -This may or may not remain Ubuntu-specific, although it's not obviously -wanted upstream. It implements a requirement of -https://wiki.ubuntu.com/DesktopExperienceTeam/KarmicBootExperienceDesignSpec#Bootloader. - -If the previous boot failed (defined as failing to get to the end of one -of the normal runlevels), then show the boot menu regardless. - -Author: Richard Laager -Author: Robie Basak -Forwarded: no -Last-Update: 2015-09-04 - -Patch-Name: quick-boot.patch ---- - configure.ac | 11 ++++++ - docs/grub.texi | 14 +++++++ - grub-core/normal/menu.c | 24 ++++++++++++ - util/grub-mkconfig.in | 3 +- - util/grub.d/00_header.in | 77 +++++++++++++++++++++++++++++++------ - util/grub.d/10_linux.in | 4 ++ - util/grub.d/30_os-prober.in | 21 ++++++++++ - 7 files changed, 141 insertions(+), 13 deletions(-) - -diff --git a/configure.ac b/configure.ac -index ea00ccd69..7dda5bb32 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -1868,6 +1868,17 @@ else - fi - AC_SUBST([QUIET_BOOT]) - -+AC_ARG_ENABLE([quick-boot], -+ [AS_HELP_STRING([--enable-quick-boot], -+ [bypass boot menu if possible (default=no)])], -+ [], [enable_quick_boot=no]) -+if test x"$enable_quick_boot" = xyes ; then -+ QUICK_BOOT=1 -+else -+ QUICK_BOOT=0 -+fi -+AC_SUBST([QUICK_BOOT]) -+ - LIBS="" - - AC_SUBST([FONT_SOURCE]) -diff --git a/docs/grub.texi b/docs/grub.texi -index 87795075a..a835d0ae4 100644 ---- a/docs/grub.texi -+++ b/docs/grub.texi -@@ -1522,6 +1522,20 @@ This option may be set to a list of GRUB module names separated by spaces. - Each module will be loaded as early as possible, at the start of - @file{grub.cfg}. - -+@item GRUB_RECORDFAIL_TIMEOUT -+If this option is set, it overrides the default recordfail setting. A -+setting of -1 causes GRUB to wait for user input indefinitely. However, a -+false positive in the recordfail mechanism may occur if power is lost during -+boot before boot success is recorded in userspace. The default setting is -+30, which causes GRUB to wait for user input for thirty seconds before -+continuing. This default allows interactive users the opportunity to switch -+to a different, working kernel, while avoiding a false positive causing the -+boot to block indefinitely on headless and appliance systems where access to -+a console is restricted or limited. -+ -+This option is only effective when GRUB was configured with the -+@option{--enable-quick-boot} option. -+ - @end table - - The following options are still accepted for compatibility with existing -diff --git a/grub-core/normal/menu.c b/grub-core/normal/menu.c -index ebf5a0f10..42c82290d 100644 ---- a/grub-core/normal/menu.c -+++ b/grub-core/normal/menu.c -@@ -604,6 +604,30 @@ run_menu (grub_menu_t menu, int nested, int *auto_boot) - static struct grub_term_coordinate *pos; - int entry = -1; - -+ if (timeout == 0) -+ { -+ /* If modifier key statuses can't be detected without a delay, -+ then a hidden timeout of zero cannot be interrupted in any way, -+ which is not very helpful. Bump it to three seconds in this -+ case to give the user a fighting chance. */ -+ grub_term_input_t term; -+ int nterms = 0; -+ int mods_detectable = 1; -+ -+ FOR_ACTIVE_TERM_INPUTS(term) -+ { -+ if (!term->getkeystatus) -+ { -+ mods_detectable = 0; -+ break; -+ } -+ else -+ nterms++; -+ } -+ if (!mods_detectable || !nterms) -+ timeout = 3; -+ } -+ - if (timeout_style == TIMEOUT_STYLE_COUNTDOWN && timeout) - { - pos = grub_term_save_pos (); -diff --git a/util/grub-mkconfig.in b/util/grub-mkconfig.in -index 8a1bc0441..8752777e0 100644 ---- a/util/grub-mkconfig.in -+++ b/util/grub-mkconfig.in -@@ -243,7 +243,8 @@ export GRUB_DEFAULT \ - GRUB_ENABLE_CRYPTODISK \ - GRUB_BADRAM \ - GRUB_OS_PROBER_SKIP_LIST \ -- GRUB_DISABLE_SUBMENU -+ GRUB_DISABLE_SUBMENU \ -+ GRUB_RECORDFAIL_TIMEOUT - - if test "x${grub_cfg}" != "x"; then - rm -f "${grub_cfg}.new" -diff --git a/util/grub.d/00_header.in b/util/grub.d/00_header.in -index 93a90233e..674a76140 100644 ---- a/util/grub.d/00_header.in -+++ b/util/grub.d/00_header.in -@@ -21,6 +21,8 @@ prefix="@prefix@" - exec_prefix="@exec_prefix@" - datarootdir="@datarootdir@" - grub_lang=`echo $LANG | cut -d . -f 1` -+grubdir="`echo "/@bootdirname@/@grubdirname@" | sed 's,//*,/,g'`" -+quick_boot="@QUICK_BOOT@" - - export TEXTDOMAIN=@PACKAGE@ - export TEXTDOMAINDIR="@localedir@" -@@ -44,6 +46,7 @@ if [ "x${GRUB_TIMEOUT_BUTTON}" = "x" ] ; then GRUB_TIMEOUT_BUTTON="$GRUB_TIMEOUT - - cat << EOF - if [ -s \$prefix/grubenv ]; then -+ set have_grubenv=true - load_env - fi - EOF -@@ -96,7 +99,50 @@ function savedefault { - save_env saved_entry - fi - } -+EOF -+ -+if [ "$quick_boot" = 1 ]; then -+ cat < -Date: Wed, 15 Jul 2020 06:42:37 +0000 -Subject: relocator: Protect grub_relocator_alloc_chunk_addr() input args - against integer underflow/overflow - -Use arithmetic macros from safemath.h to accomplish it. In this commit, -I didn't want to be too paranoid to check every possible math equation -for overflow/underflow. Only obvious places (with non zero chance of -overflow/underflow) were refactored. - -Signed-off-by: Alexey Makhalov -Reviewed-by: Daniel Kiper - -Patch-Name: relocator-chunk-addr-overflow.patch ---- - grub-core/loader/i386/linux.c | 9 +++++++-- - grub-core/loader/i386/pc/linux.c | 9 +++++++-- - grub-core/loader/i386/xen.c | 12 ++++++++++-- - grub-core/loader/xnu.c | 11 +++++++---- - 4 files changed, 31 insertions(+), 10 deletions(-) - -diff --git a/grub-core/loader/i386/linux.c b/grub-core/loader/i386/linux.c -index 2eab9bb10..58d76fc0a 100644 ---- a/grub-core/loader/i386/linux.c -+++ b/grub-core/loader/i386/linux.c -@@ -36,6 +36,7 @@ - #include - #include - #include -+#include - - GRUB_MOD_LICENSE ("GPLv3+"); - -@@ -549,9 +550,13 @@ grub_linux_boot (void) - - { - grub_relocator_chunk_t ch; -+ grub_size_t sz; -+ -+ if (grub_add (ctx.real_size, efi_mmap_size, &sz)) -+ return GRUB_ERR_OUT_OF_RANGE; -+ - err = grub_relocator_alloc_chunk_addr (relocator, &ch, -- ctx.real_mode_target, -- (ctx.real_size + efi_mmap_size)); -+ ctx.real_mode_target, sz); - if (err) - return err; - real_mode_mem = get_virtual_current_address (ch); -diff --git a/grub-core/loader/i386/pc/linux.c b/grub-core/loader/i386/pc/linux.c -index 47ea2945e..31f09922b 100644 ---- a/grub-core/loader/i386/pc/linux.c -+++ b/grub-core/loader/i386/pc/linux.c -@@ -35,6 +35,7 @@ - #include - #include - #include -+#include - - GRUB_MOD_LICENSE ("GPLv3+"); - -@@ -218,8 +219,12 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - setup_sects = GRUB_LINUX_DEFAULT_SETUP_SECTS; - - real_size = setup_sects << GRUB_DISK_SECTOR_BITS; -- grub_linux16_prot_size = grub_file_size (file) -- - real_size - GRUB_DISK_SECTOR_SIZE; -+ if (grub_sub (grub_file_size (file), real_size, &grub_linux16_prot_size) || -+ grub_sub (grub_linux16_prot_size, GRUB_DISK_SECTOR_SIZE, &grub_linux16_prot_size)) -+ { -+ grub_error (GRUB_ERR_OUT_OF_RANGE, N_("overflow is detected")); -+ goto fail; -+ } - - if (! grub_linux_is_bzimage - && GRUB_LINUX_ZIMAGE_ADDR + grub_linux16_prot_size -diff --git a/grub-core/loader/i386/xen.c b/grub-core/loader/i386/xen.c -index 8f662c8ac..cd24874ca 100644 ---- a/grub-core/loader/i386/xen.c -+++ b/grub-core/loader/i386/xen.c -@@ -41,6 +41,7 @@ - #include - #include - #include -+#include - - GRUB_MOD_LICENSE ("GPLv3+"); - -@@ -636,6 +637,7 @@ grub_cmd_xen (grub_command_t cmd __attribute__ ((unused)), - grub_relocator_chunk_t ch; - grub_addr_t kern_start; - grub_addr_t kern_end; -+ grub_size_t sz; - - if (argc == 0) - return grub_error (GRUB_ERR_BAD_ARGUMENT, N_("filename expected")); -@@ -703,8 +705,14 @@ grub_cmd_xen (grub_command_t cmd __attribute__ ((unused)), - - xen_state.max_addr = ALIGN_UP (kern_end, PAGE_SIZE); - -- err = grub_relocator_alloc_chunk_addr (xen_state.relocator, &ch, kern_start, -- kern_end - kern_start); -+ -+ if (grub_sub (kern_end, kern_start, &sz)) -+ { -+ err = GRUB_ERR_OUT_OF_RANGE; -+ goto fail; -+ } -+ -+ err = grub_relocator_alloc_chunk_addr (xen_state.relocator, &ch, kern_start, sz); - if (err) - goto fail; - kern_chunk_src = get_virtual_current_address (ch); -diff --git a/grub-core/loader/xnu.c b/grub-core/loader/xnu.c -index 77d7060e1..9ae4ceb35 100644 ---- a/grub-core/loader/xnu.c -+++ b/grub-core/loader/xnu.c -@@ -34,6 +34,7 @@ - #include - #include - #include -+#include - - GRUB_MOD_LICENSE ("GPLv3+"); - -@@ -59,15 +60,17 @@ grub_xnu_heap_malloc (int size, void **src, grub_addr_t *target) - { - grub_err_t err; - grub_relocator_chunk_t ch; -+ grub_addr_t tgt; -+ -+ if (grub_add (grub_xnu_heap_target_start, grub_xnu_heap_size, &tgt)) -+ return GRUB_ERR_OUT_OF_RANGE; - -- err = grub_relocator_alloc_chunk_addr (grub_xnu_relocator, &ch, -- grub_xnu_heap_target_start -- + grub_xnu_heap_size, size); -+ err = grub_relocator_alloc_chunk_addr (grub_xnu_relocator, &ch, tgt, size); - if (err) - return err; - - *src = get_virtual_current_address (ch); -- *target = grub_xnu_heap_target_start + grub_xnu_heap_size; -+ *target = tgt; - grub_xnu_heap_size += size; - grub_dprintf ("xnu", "val=%p\n", *src); - return GRUB_ERR_NONE; diff --git a/patches/grub/2.04/relocator-chunk-align-fix-top.patch b/patches/grub/2.04/relocator-chunk-align-fix-top.patch deleted file mode 100644 index 190276a12..000000000 --- a/patches/grub/2.04/relocator-chunk-align-fix-top.patch +++ /dev/null @@ -1,44 +0,0 @@ -From dcc097ac0531485f0785816469370bfcb1a29f60 Mon Sep 17 00:00:00 2001 -From: Alexey Makhalov -Date: Fri, 17 Jul 2020 05:17:26 +0000 -Subject: relocator: Fix grub_relocator_alloc_chunk_align() top memory - allocation - -Current implementation of grub_relocator_alloc_chunk_align() -does not allow allocation of the top byte. - -Assuming input args are: - max_addr = 0xfffff000; - size = 0x1000; - -And this is valid. But following overflow protection will -unnecessarily move max_addr one byte down (to 0xffffefff): - if (max_addr > ~size) - max_addr = ~size; - -~size + 1 will fix the situation. In addition, check size -for non zero to do not zero max_addr. - -Signed-off-by: Alexey Makhalov -Reviewed-by: Daniel Kiper - -Patch-Name: relocator-chunk-align-fix-top.patch ---- - grub-core/lib/relocator.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/grub-core/lib/relocator.c b/grub-core/lib/relocator.c -index 5847aac36..f2c1944c2 100644 ---- a/grub-core/lib/relocator.c -+++ b/grub-core/lib/relocator.c -@@ -1386,8 +1386,8 @@ grub_relocator_alloc_chunk_align (struct grub_relocator *rel, - }; - grub_addr_t min_addr2 = 0, max_addr2; - -- if (max_addr > ~size) -- max_addr = ~size; -+ if (size && (max_addr > ~size)) -+ max_addr = ~size + 1; - - #ifdef GRUB_MACHINE_PCBIOS - if (min_addr < 0x1000) diff --git a/patches/grub/2.04/relocator-chunk-align-underflow.patch b/patches/grub/2.04/relocator-chunk-align-underflow.patch deleted file mode 100644 index 667fb611e..000000000 --- a/patches/grub/2.04/relocator-chunk-align-underflow.patch +++ /dev/null @@ -1,336 +0,0 @@ -From e39786ab462b1e4770fb35c736927286381ec47d Mon Sep 17 00:00:00 2001 -From: Alexey Makhalov -Date: Wed, 8 Jul 2020 01:44:38 +0000 -Subject: relocator: Protect grub_relocator_alloc_chunk_align() max_addr - against integer underflow - -This commit introduces integer underflow mitigation in max_addr calculation -in grub_relocator_alloc_chunk_align() invocation. - -It consists of 2 fixes: - 1. Introduced grub_relocator_alloc_chunk_align_safe() wrapper function to perform - sanity check for min/max and size values, and to make safe invocation of - grub_relocator_alloc_chunk_align() with validated max_addr value. Replace all - invocations such as grub_relocator_alloc_chunk_align(..., min_addr, max_addr - size, size, ...) - by grub_relocator_alloc_chunk_align_safe(..., min_addr, max_addr, size, ...). - 2. Introduced UP_TO_TOP32(s) macro for the cases where max_addr is 32-bit top - address (0xffffffff - size + 1) or similar. - -Signed-off-by: Alexey Makhalov -Reviewed-by: Daniel Kiper - -Patch-Name: relocator-chunk-align-underflow.patch ---- - grub-core/lib/i386/relocator.c | 28 ++++++++++---------------- - grub-core/lib/mips/relocator.c | 6 ++---- - grub-core/lib/powerpc/relocator.c | 6 ++---- - grub-core/lib/x86_64/efi/relocator.c | 7 +++---- - grub-core/loader/i386/linux.c | 5 ++--- - grub-core/loader/i386/multiboot_mbi.c | 7 +++---- - grub-core/loader/i386/pc/linux.c | 6 ++---- - grub-core/loader/mips/linux.c | 9 +++------ - grub-core/loader/multiboot.c | 2 +- - grub-core/loader/multiboot_elfxx.c | 10 ++++----- - grub-core/loader/multiboot_mbi2.c | 10 ++++----- - grub-core/loader/xnu_resume.c | 2 +- - include/grub/relocator.h | 29 +++++++++++++++++++++++++++ - 13 files changed, 69 insertions(+), 58 deletions(-) - -diff --git a/grub-core/lib/i386/relocator.c b/grub-core/lib/i386/relocator.c -index 71dd4f0ab..34cbe834f 100644 ---- a/grub-core/lib/i386/relocator.c -+++ b/grub-core/lib/i386/relocator.c -@@ -83,11 +83,10 @@ grub_relocator32_boot (struct grub_relocator *rel, - /* Specific memory range due to Global Descriptor Table for use by payload - that we will store in returned chunk. The address range and preference - are based on "THE LINUX/x86 BOOT PROTOCOL" specification. */ -- err = grub_relocator_alloc_chunk_align (rel, &ch, 0x1000, -- 0x9a000 - RELOCATOR_SIZEOF (32), -- RELOCATOR_SIZEOF (32), 16, -- GRUB_RELOCATOR_PREFERENCE_LOW, -- avoid_efi_bootservices); -+ err = grub_relocator_alloc_chunk_align_safe (rel, &ch, 0x1000, 0x9a000, -+ RELOCATOR_SIZEOF (32), 16, -+ GRUB_RELOCATOR_PREFERENCE_LOW, -+ avoid_efi_bootservices); - if (err) - return err; - -@@ -125,13 +124,10 @@ grub_relocator16_boot (struct grub_relocator *rel, - grub_relocator_chunk_t ch; - - /* Put it higher than the byte it checks for A20 check. */ -- err = grub_relocator_alloc_chunk_align (rel, &ch, 0x8010, -- 0xa0000 - RELOCATOR_SIZEOF (16) -- - GRUB_RELOCATOR16_STACK_SIZE, -- RELOCATOR_SIZEOF (16) -- + GRUB_RELOCATOR16_STACK_SIZE, 16, -- GRUB_RELOCATOR_PREFERENCE_NONE, -- 0); -+ err = grub_relocator_alloc_chunk_align_safe (rel, &ch, 0x8010, 0xa0000, -+ RELOCATOR_SIZEOF (16) + -+ GRUB_RELOCATOR16_STACK_SIZE, 16, -+ GRUB_RELOCATOR_PREFERENCE_NONE, 0); - if (err) - return err; - -@@ -183,11 +179,9 @@ grub_relocator64_boot (struct grub_relocator *rel, - void *relst; - grub_relocator_chunk_t ch; - -- err = grub_relocator_alloc_chunk_align (rel, &ch, min_addr, -- max_addr - RELOCATOR_SIZEOF (64), -- RELOCATOR_SIZEOF (64), 16, -- GRUB_RELOCATOR_PREFERENCE_NONE, -- 0); -+ err = grub_relocator_alloc_chunk_align_safe (rel, &ch, min_addr, max_addr, -+ RELOCATOR_SIZEOF (64), 16, -+ GRUB_RELOCATOR_PREFERENCE_NONE, 0); - if (err) - return err; - -diff --git a/grub-core/lib/mips/relocator.c b/grub-core/lib/mips/relocator.c -index 9d5f49cb9..743b213e6 100644 ---- a/grub-core/lib/mips/relocator.c -+++ b/grub-core/lib/mips/relocator.c -@@ -120,10 +120,8 @@ grub_relocator32_boot (struct grub_relocator *rel, - unsigned i; - grub_addr_t vtarget; - -- err = grub_relocator_alloc_chunk_align (rel, &ch, 0, -- (0xffffffff - stateset_size) -- + 1, stateset_size, -- sizeof (grub_uint32_t), -+ err = grub_relocator_alloc_chunk_align (rel, &ch, 0, UP_TO_TOP32 (stateset_size), -+ stateset_size, sizeof (grub_uint32_t), - GRUB_RELOCATOR_PREFERENCE_NONE, 0); - if (err) - return err; -diff --git a/grub-core/lib/powerpc/relocator.c b/grub-core/lib/powerpc/relocator.c -index bdf2b111b..8ffb8b686 100644 ---- a/grub-core/lib/powerpc/relocator.c -+++ b/grub-core/lib/powerpc/relocator.c -@@ -115,10 +115,8 @@ grub_relocator32_boot (struct grub_relocator *rel, - unsigned i; - grub_relocator_chunk_t ch; - -- err = grub_relocator_alloc_chunk_align (rel, &ch, 0, -- (0xffffffff - stateset_size) -- + 1, stateset_size, -- sizeof (grub_uint32_t), -+ err = grub_relocator_alloc_chunk_align (rel, &ch, 0, UP_TO_TOP32 (stateset_size), -+ stateset_size, sizeof (grub_uint32_t), - GRUB_RELOCATOR_PREFERENCE_NONE, 0); - if (err) - return err; -diff --git a/grub-core/lib/x86_64/efi/relocator.c b/grub-core/lib/x86_64/efi/relocator.c -index 3caef7a40..7d200a125 100644 ---- a/grub-core/lib/x86_64/efi/relocator.c -+++ b/grub-core/lib/x86_64/efi/relocator.c -@@ -50,10 +50,9 @@ grub_relocator64_efi_boot (struct grub_relocator *rel, - * 64-bit relocator code may live above 4 GiB quite well. - * However, I do not want ask for problems. Just in case. - */ -- err = grub_relocator_alloc_chunk_align (rel, &ch, 0, -- 0x100000000 - RELOCATOR_SIZEOF (64_efi), -- RELOCATOR_SIZEOF (64_efi), 16, -- GRUB_RELOCATOR_PREFERENCE_NONE, 1); -+ err = grub_relocator_alloc_chunk_align_safe (rel, &ch, 0, 0x100000000, -+ RELOCATOR_SIZEOF (64_efi), 16, -+ GRUB_RELOCATOR_PREFERENCE_NONE, 1); - if (err) - return err; - -diff --git a/grub-core/loader/i386/linux.c b/grub-core/loader/i386/linux.c -index 58d76fc0a..c98fbbb37 100644 ---- a/grub-core/loader/i386/linux.c -+++ b/grub-core/loader/i386/linux.c -@@ -183,9 +183,8 @@ allocate_pages (grub_size_t prot_size, grub_size_t *align, - for (; err && *align + 1 > min_align; (*align)--) - { - grub_errno = GRUB_ERR_NONE; -- err = grub_relocator_alloc_chunk_align (relocator, &ch, -- 0x1000000, -- 0xffffffff & ~prot_size, -+ err = grub_relocator_alloc_chunk_align (relocator, &ch, 0x1000000, -+ UP_TO_TOP32 (prot_size), - prot_size, 1 << *align, - GRUB_RELOCATOR_PREFERENCE_LOW, - 1); -diff --git a/grub-core/loader/i386/multiboot_mbi.c b/grub-core/loader/i386/multiboot_mbi.c -index ad3cc292f..a67d9d0a8 100644 ---- a/grub-core/loader/i386/multiboot_mbi.c -+++ b/grub-core/loader/i386/multiboot_mbi.c -@@ -466,10 +466,9 @@ grub_multiboot_make_mbi (grub_uint32_t *target) - - bufsize = grub_multiboot_get_mbi_size (); - -- err = grub_relocator_alloc_chunk_align (grub_multiboot_relocator, &ch, -- 0x10000, 0xa0000 - bufsize, -- bufsize, 4, -- GRUB_RELOCATOR_PREFERENCE_NONE, 0); -+ err = grub_relocator_alloc_chunk_align_safe (grub_multiboot_relocator, &ch, -+ 0x10000, 0xa0000, bufsize, 4, -+ GRUB_RELOCATOR_PREFERENCE_NONE, 0); - if (err) - return err; - ptrorig = get_virtual_current_address (ch); -diff --git a/grub-core/loader/i386/pc/linux.c b/grub-core/loader/i386/pc/linux.c -index 31f09922b..5fed5ffdf 100644 ---- a/grub-core/loader/i386/pc/linux.c -+++ b/grub-core/loader/i386/pc/linux.c -@@ -453,10 +453,8 @@ grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)), - - { - grub_relocator_chunk_t ch; -- err = grub_relocator_alloc_chunk_align (relocator, &ch, -- addr_min, addr_max - size, -- size, 0x1000, -- GRUB_RELOCATOR_PREFERENCE_HIGH, 0); -+ err = grub_relocator_alloc_chunk_align_safe (relocator, &ch, addr_min, addr_max, size, -+ 0x1000, GRUB_RELOCATOR_PREFERENCE_HIGH, 0); - if (err) - return err; - initrd_chunk = get_virtual_current_address (ch); -diff --git a/grub-core/loader/mips/linux.c b/grub-core/loader/mips/linux.c -index 7b723bf18..e4ed95921 100644 ---- a/grub-core/loader/mips/linux.c -+++ b/grub-core/loader/mips/linux.c -@@ -442,12 +442,9 @@ grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)), - { - grub_relocator_chunk_t ch; - -- err = grub_relocator_alloc_chunk_align (relocator, &ch, -- (target_addr & 0x1fffffff) -- + linux_size + 0x10000, -- (0x10000000 - size), -- size, 0x10000, -- GRUB_RELOCATOR_PREFERENCE_NONE, 0); -+ err = grub_relocator_alloc_chunk_align_safe (relocator, &ch, (target_addr & 0x1fffffff) + -+ linux_size + 0x10000, 0x10000000, size, -+ 0x10000, GRUB_RELOCATOR_PREFERENCE_NONE, 0); - - if (err) - goto fail; -diff --git a/grub-core/loader/multiboot.c b/grub-core/loader/multiboot.c -index 4a98d7082..facb13f3d 100644 ---- a/grub-core/loader/multiboot.c -+++ b/grub-core/loader/multiboot.c -@@ -403,7 +403,7 @@ grub_cmd_module (grub_command_t cmd __attribute__ ((unused)), - { - grub_relocator_chunk_t ch; - err = grub_relocator_alloc_chunk_align (GRUB_MULTIBOOT (relocator), &ch, -- lowest_addr, (0xffffffff - size) + 1, -+ lowest_addr, UP_TO_TOP32 (size), - size, MULTIBOOT_MOD_ALIGN, - GRUB_RELOCATOR_PREFERENCE_NONE, 1); - if (err) -diff --git a/grub-core/loader/multiboot_elfxx.c b/grub-core/loader/multiboot_elfxx.c -index cc6853692..f2318e0d1 100644 ---- a/grub-core/loader/multiboot_elfxx.c -+++ b/grub-core/loader/multiboot_elfxx.c -@@ -109,10 +109,10 @@ CONCAT(grub_multiboot_load_elf, XX) (mbi_load_data_t *mld) - if (load_size > mld->max_addr || mld->min_addr > mld->max_addr - load_size) - return grub_error (GRUB_ERR_BAD_OS, "invalid min/max address and/or load size"); - -- err = grub_relocator_alloc_chunk_align (GRUB_MULTIBOOT (relocator), &ch, -- mld->min_addr, mld->max_addr - load_size, -- load_size, mld->align ? mld->align : 1, -- mld->preference, mld->avoid_efi_boot_services); -+ err = grub_relocator_alloc_chunk_align_safe (GRUB_MULTIBOOT (relocator), &ch, -+ mld->min_addr, mld->max_addr, -+ load_size, mld->align ? mld->align : 1, -+ mld->preference, mld->avoid_efi_boot_services); - - if (err) - { -@@ -256,7 +256,7 @@ CONCAT(grub_multiboot_load_elf, XX) (mbi_load_data_t *mld) - continue; - - err = grub_relocator_alloc_chunk_align (GRUB_MULTIBOOT (relocator), &ch, 0, -- (0xffffffff - sh->sh_size) + 1, -+ UP_TO_TOP32 (sh->sh_size), - sh->sh_size, sh->sh_addralign, - GRUB_RELOCATOR_PREFERENCE_NONE, - mld->avoid_efi_boot_services); -diff --git a/grub-core/loader/multiboot_mbi2.c b/grub-core/loader/multiboot_mbi2.c -index 0efc66062..03967839c 100644 ---- a/grub-core/loader/multiboot_mbi2.c -+++ b/grub-core/loader/multiboot_mbi2.c -@@ -295,10 +295,10 @@ grub_multiboot2_load (grub_file_t file, const char *filename) - return grub_error (GRUB_ERR_BAD_OS, "invalid min/max address and/or load size"); - } - -- err = grub_relocator_alloc_chunk_align (grub_multiboot2_relocator, &ch, -- mld.min_addr, mld.max_addr - code_size, -- code_size, mld.align ? mld.align : 1, -- mld.preference, keep_bs); -+ err = grub_relocator_alloc_chunk_align_safe (grub_multiboot2_relocator, &ch, -+ mld.min_addr, mld.max_addr, -+ code_size, mld.align ? mld.align : 1, -+ mld.preference, keep_bs); - } - else - err = grub_relocator_alloc_chunk_addr (grub_multiboot2_relocator, -@@ -708,7 +708,7 @@ grub_multiboot2_make_mbi (grub_uint32_t *target) - COMPILE_TIME_ASSERT (MULTIBOOT_TAG_ALIGN % sizeof (grub_properly_aligned_t) == 0); - - err = grub_relocator_alloc_chunk_align (grub_multiboot2_relocator, &ch, -- 0, 0xffffffff - bufsize, -+ 0, UP_TO_TOP32 (bufsize), - bufsize, MULTIBOOT_TAG_ALIGN, - GRUB_RELOCATOR_PREFERENCE_NONE, 1); - if (err) -diff --git a/grub-core/loader/xnu_resume.c b/grub-core/loader/xnu_resume.c -index 8089804d4..d648ef0cd 100644 ---- a/grub-core/loader/xnu_resume.c -+++ b/grub-core/loader/xnu_resume.c -@@ -129,7 +129,7 @@ grub_xnu_resume (char *imagename) - { - grub_relocator_chunk_t ch; - err = grub_relocator_alloc_chunk_align (grub_xnu_relocator, &ch, 0, -- (0xffffffff - hibhead.image_size) + 1, -+ UP_TO_TOP32 (hibhead.image_size), - hibhead.image_size, - GRUB_XNU_PAGESIZE, - GRUB_RELOCATOR_PREFERENCE_NONE, 0); -diff --git a/include/grub/relocator.h b/include/grub/relocator.h -index 24d8672d2..1b3bdd92a 100644 ---- a/include/grub/relocator.h -+++ b/include/grub/relocator.h -@@ -49,6 +49,35 @@ grub_relocator_alloc_chunk_align (struct grub_relocator *rel, - int preference, - int avoid_efi_boot_services); - -+/* -+ * Wrapper for grub_relocator_alloc_chunk_align() with purpose of -+ * protecting against integer underflow. -+ * -+ * Compare to its callee, max_addr has different meaning here. -+ * It covers entire chunk and not just start address of the chunk. -+ */ -+static inline grub_err_t -+grub_relocator_alloc_chunk_align_safe (struct grub_relocator *rel, -+ grub_relocator_chunk_t *out, -+ grub_phys_addr_t min_addr, -+ grub_phys_addr_t max_addr, -+ grub_size_t size, grub_size_t align, -+ int preference, -+ int avoid_efi_boot_services) -+{ -+ /* Sanity check and ensure following equation (max_addr - size) is safe. */ -+ if (max_addr < size || (max_addr - size) < min_addr) -+ return GRUB_ERR_OUT_OF_RANGE; -+ -+ return grub_relocator_alloc_chunk_align (rel, out, min_addr, -+ max_addr - size, -+ size, align, preference, -+ avoid_efi_boot_services); -+} -+ -+/* Top 32-bit address minus s bytes and plus 1 byte. */ -+#define UP_TO_TOP32(s) ((~(s) & 0xffffffff) + 1) -+ - #define GRUB_RELOCATOR_PREFERENCE_NONE 0 - #define GRUB_RELOCATOR_PREFERENCE_LOW 1 - #define GRUB_RELOCATOR_PREFERENCE_HIGH 2 diff --git a/patches/grub/2.04/restore-mkdevicemap.patch b/patches/grub/2.04/restore-mkdevicemap.patch deleted file mode 100644 index f459634ff..000000000 --- a/patches/grub/2.04/restore-mkdevicemap.patch +++ /dev/null @@ -1,1320 +0,0 @@ -From 2ecd079ed1078da6a26223333d0645dd53ef181a Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Mon, 13 Jan 2014 12:13:01 +0000 -Subject: Restore grub-mkdevicemap - -This is kind of a mess, requiring lots of OS-specific code to iterate -over all possible devices. However, we use it in a number of scripts to -discover devices and reimplementing those in terms of something else -would be very complicated. - -Author: Dimitri John Ledkov -Forwarded: no -Last-Update: 2019-05-25 - -Patch-Name: restore-mkdevicemap.patch ---- - Makefile.util.def | 17 + - docs/man/grub-mkdevicemap.h2m | 4 + - include/grub/util/deviceiter.h | 14 + - util/deviceiter.c | 1021 ++++++++++++++++++++++++++++++++ - util/devicemap.c | 13 + - util/grub-mkdevicemap.c | 181 ++++++ - 6 files changed, 1250 insertions(+) - create mode 100644 docs/man/grub-mkdevicemap.h2m - create mode 100644 include/grub/util/deviceiter.h - create mode 100644 util/deviceiter.c - create mode 100644 util/devicemap.c - create mode 100644 util/grub-mkdevicemap.c - -diff --git a/Makefile.util.def b/Makefile.util.def -index 969d32f00..0029b9000 100644 ---- a/Makefile.util.def -+++ b/Makefile.util.def -@@ -324,6 +324,23 @@ program = { - condition = COND_GRUB_MKFONT; - }; - -+program = { -+ name = grub-mkdevicemap; -+ installdir = sbin; -+ mansection = 8; -+ -+ common = util/grub-mkdevicemap.c; -+ common = util/deviceiter.c; -+ common = util/devicemap.c; -+ common = grub-core/osdep/init.c; -+ -+ ldadd = libgrubmods.a; -+ ldadd = libgrubgcry.a; -+ ldadd = libgrubkern.a; -+ ldadd = grub-core/lib/gnulib/libgnu.a; -+ ldadd = '$(LIBINTL) $(LIBDEVMAPPER) $(LIBUTIL) $(LIBZFS) $(LIBNVPAIR) $(LIBGEOM)'; -+}; -+ - program = { - name = grub-probe; - installdir = sbin; -diff --git a/docs/man/grub-mkdevicemap.h2m b/docs/man/grub-mkdevicemap.h2m -new file mode 100644 -index 000000000..96cd6ee72 ---- /dev/null -+++ b/docs/man/grub-mkdevicemap.h2m -@@ -0,0 +1,4 @@ -+[NAME] -+grub-mkdevicemap \- make a device map file automatically -+[SEE ALSO] -+.BR grub-probe (8) -diff --git a/include/grub/util/deviceiter.h b/include/grub/util/deviceiter.h -new file mode 100644 -index 000000000..85374978c ---- /dev/null -+++ b/include/grub/util/deviceiter.h -@@ -0,0 +1,14 @@ -+#ifndef GRUB_DEVICEITER_MACHINE_UTIL_HEADER -+#define GRUB_DEVICEITER_MACHINE_UTIL_HEADER 1 -+ -+#include -+ -+typedef int (*grub_util_iterate_devices_hook_t) (const char *name, -+ int is_floppy, void *data); -+ -+void grub_util_iterate_devices (grub_util_iterate_devices_hook_t hook, -+ void *hook_data, int floppy_disks); -+void grub_util_emit_devicemap_entry (FILE *fp, char *name, int is_floppy, -+ int *num_fd, int *num_hd); -+ -+#endif /* ! GRUB_DEVICEITER_MACHINE_UTIL_HEADER */ -diff --git a/util/deviceiter.c b/util/deviceiter.c -new file mode 100644 -index 000000000..a4971ef42 ---- /dev/null -+++ b/util/deviceiter.c -@@ -0,0 +1,1021 @@ -+/* deviceiter.c - iterate over system devices */ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 1999,2000,2001,2002,2003,2004,2005,2007,2008,2011 Free Software Foundation, Inc. -+ * -+ * GRUB is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation, either version 3 of the License, or -+ * (at your option) any later version. -+ * -+ * GRUB is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with GRUB. If not, see . -+ */ -+ -+#include -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#include -+#include -+#include -+#include -+#include -+ -+#ifdef __linux__ -+# if !defined(__GLIBC__) || \ -+ ((__GLIBC__ < 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ < 1))) -+/* Maybe libc doesn't have large file support. */ -+# include /* _llseek */ -+# endif /* (GLIBC < 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR < 1)) */ -+# include /* ioctl */ -+# ifndef HDIO_GETGEO -+# define HDIO_GETGEO 0x0301 /* get device geometry */ -+/* If HDIO_GETGEO is not defined, it is unlikely that hd_geometry is -+ defined. */ -+struct hd_geometry -+{ -+ unsigned char heads; -+ unsigned char sectors; -+ unsigned short cylinders; -+ unsigned long start; -+}; -+# endif /* ! HDIO_GETGEO */ -+# ifndef FLOPPY_MAJOR -+# define FLOPPY_MAJOR 2 /* the major number for floppy */ -+# endif /* ! FLOPPY_MAJOR */ -+# ifndef MAJOR -+# define MAJOR(dev) \ -+ ({ \ -+ unsigned long long __dev = (dev); \ -+ (unsigned) ((__dev >> 8) & 0xfff) \ -+ | ((unsigned int) (__dev >> 32) & ~0xfff); \ -+ }) -+# endif /* ! MAJOR */ -+# ifndef MINOR -+# define MINOR(dev) \ -+ ({ \ -+ unsigned long long __dev = (dev); \ -+ (unsigned) (__dev & 0xff) | ((unsigned int) (__dev >> 12) & ~0xff); \ -+ }) -+# endif /* ! MINOR */ -+# ifndef CDROM_GET_CAPABILITY -+# define CDROM_GET_CAPABILITY 0x5331 /* get capabilities */ -+# endif /* ! CDROM_GET_CAPABILITY */ -+# ifndef BLKGETSIZE -+# define BLKGETSIZE _IO(0x12,96) /* return device size */ -+# endif /* ! BLKGETSIZE */ -+ -+#ifdef HAVE_DEVICE_MAPPER -+# include -+# pragma GCC diagnostic ignored "-Wcast-align" -+#endif -+#endif /* __linux__ */ -+ -+/* Use __FreeBSD_kernel__ instead of __FreeBSD__ for compatibility with -+ kFreeBSD-based non-FreeBSD systems (e.g. GNU/kFreeBSD) */ -+#if defined(__FreeBSD__) && ! defined(__FreeBSD_kernel__) -+# define __FreeBSD_kernel__ -+#endif -+#ifdef __FreeBSD_kernel__ -+ /* Obtain version of kFreeBSD headers */ -+# include -+# ifndef __FreeBSD_kernel_version -+# define __FreeBSD_kernel_version __FreeBSD_version -+# endif -+ -+ /* Runtime detection of kernel */ -+# include -+static int -+get_kfreebsd_version (void) -+{ -+ struct utsname uts; -+ int major; -+ int minor; -+ int v[2]; -+ -+ uname (&uts); -+ sscanf (uts.release, "%d.%d", &major, &minor); -+ -+ if (major >= 9) -+ major = 9; -+ if (major >= 5) -+ { -+ v[0] = minor/10; v[1] = minor%10; -+ } -+ else -+ { -+ v[0] = minor%10; v[1] = minor/10; -+ } -+ return major*100000+v[0]*10000+v[1]*1000; -+} -+#endif /* __FreeBSD_kernel__ */ -+ -+#if defined(__FreeBSD_kernel__) || defined(__NetBSD__) || defined(__OpenBSD__) -+# include /* ioctl */ -+# include -+# include /* CDIOCCLRDEBUG */ -+# if defined(__FreeBSD_kernel__) -+# include -+# if __FreeBSD_kernel_version >= 500040 -+# include -+# endif -+# endif /* __FreeBSD_kernel__ */ -+#endif /* __FreeBSD_kernel__ || __NetBSD__ || __OpenBSD__ */ -+ -+#ifdef HAVE_OPENDISK -+# include -+#endif /* HAVE_OPENDISK */ -+ -+#ifdef __linux__ -+/* Check if we have devfs support. */ -+static int -+have_devfs (void) -+{ -+ struct stat st; -+ return stat ("/dev/.devfsd", &st) == 0; -+} -+#endif /* __linux__ */ -+ -+/* These three functions are quite different among OSes. */ -+static void -+get_floppy_disk_name (char *name, int unit) -+{ -+#if defined(__linux__) -+ /* GNU/Linux */ -+ if (have_devfs ()) -+ sprintf (name, "/dev/floppy/%d", unit); -+ else -+ sprintf (name, "/dev/fd%d", unit); -+#elif defined(__GNU__) -+ /* GNU/Hurd */ -+ sprintf (name, "/dev/fd%d", unit); -+#elif defined(__FreeBSD_kernel__) -+ /* kFreeBSD */ -+ if (get_kfreebsd_version () >= 400000) -+ sprintf (name, "/dev/fd%d", unit); -+ else -+ sprintf (name, "/dev/rfd%d", unit); -+#elif defined(__NetBSD__) -+ /* NetBSD */ -+ /* opendisk() doesn't work for floppies. */ -+ sprintf (name, "/dev/rfd%da", unit); -+#elif defined(__OpenBSD__) -+ /* OpenBSD */ -+ sprintf (name, "/dev/rfd%dc", unit); -+#elif defined(__QNXNTO__) -+ /* QNX RTP */ -+ sprintf (name, "/dev/fd%d", unit); -+#elif defined(__CYGWIN__) -+ /* Cygwin */ -+ sprintf (name, "/dev/fd%d", unit); -+#elif defined(__MINGW32__) -+ (void) unit; -+ *name = 0; -+#else -+# warning "BIOS floppy drives cannot be guessed in your operating system." -+ /* Set NAME to a bogus string. */ -+ *name = 0; -+#endif -+} -+ -+static void -+get_ide_disk_name (char *name, int unit) -+{ -+#if defined(__linux__) -+ /* GNU/Linux */ -+ sprintf (name, "/dev/hd%c", unit + 'a'); -+#elif defined(__GNU__) -+ /* GNU/Hurd */ -+ sprintf (name, "/dev/hd%d", unit); -+#elif defined(__FreeBSD_kernel__) -+ /* kFreeBSD */ -+ if (get_kfreebsd_version () >= 400000) -+ sprintf (name, "/dev/ad%d", unit); -+ else -+ sprintf (name, "/dev/rwd%d", unit); -+#elif defined(__NetBSD__) && defined(HAVE_OPENDISK) -+ /* NetBSD */ -+ char shortname[16]; -+ int fd; -+ -+ sprintf (shortname, "wd%d", unit); -+ fd = opendisk (shortname, O_RDONLY, name, -+ 16, /* length of NAME */ -+ 0 /* char device */ -+ ); -+ close (fd); -+#elif defined(__OpenBSD__) -+ /* OpenBSD */ -+ sprintf (name, "/dev/rwd%dc", unit); -+#elif defined(__QNXNTO__) -+ /* QNX RTP */ -+ /* Actually, QNX RTP doesn't distinguish IDE from SCSI, so this could -+ contain SCSI disks. */ -+ sprintf (name, "/dev/hd%d", unit); -+#elif defined(__CYGWIN__) -+ /* Cygwin emulates all disks as /dev/sdX. */ -+ (void) unit; -+ *name = 0; -+#elif defined(__MINGW32__) -+ sprintf (name, "//./PHYSICALDRIVE%d", unit); -+#else -+# warning "BIOS IDE drives cannot be guessed in your operating system." -+ /* Set NAME to a bogus string. */ -+ *name = 0; -+#endif -+} -+ -+static void -+get_scsi_disk_name (char *name, int unit) -+{ -+#if defined(__linux__) -+ /* GNU/Linux */ -+ sprintf (name, "/dev/sd%c", unit + 'a'); -+#elif defined(__GNU__) -+ /* GNU/Hurd */ -+ sprintf (name, "/dev/sd%d", unit); -+#elif defined(__FreeBSD_kernel__) -+ /* kFreeBSD */ -+ if (get_kfreebsd_version () >= 400000) -+ sprintf (name, "/dev/da%d", unit); -+ else -+ sprintf (name, "/dev/rda%d", unit); -+#elif defined(__NetBSD__) && defined(HAVE_OPENDISK) -+ /* NetBSD */ -+ char shortname[16]; -+ int fd; -+ -+ sprintf (shortname, "sd%d", unit); -+ fd = opendisk (shortname, O_RDONLY, name, -+ 16, /* length of NAME */ -+ 0 /* char device */ -+ ); -+ close (fd); -+#elif defined(__OpenBSD__) -+ /* OpenBSD */ -+ sprintf (name, "/dev/rsd%dc", unit); -+#elif defined(__QNXNTO__) -+ /* QNX RTP */ -+ /* QNX RTP doesn't distinguish SCSI from IDE, so it is better to -+ disable the detection of SCSI disks here. */ -+ *name = 0; -+#elif defined(__CYGWIN__) -+ /* Cygwin emulates all disks as /dev/sdX. */ -+ sprintf (name, "/dev/sd%c", unit + 'a'); -+#elif defined(__MINGW32__) -+ (void) unit; -+ *name = 0; -+#else -+# warning "BIOS SCSI drives cannot be guessed in your operating system." -+ /* Set NAME to a bogus string. */ -+ *name = 0; -+#endif -+} -+ -+#ifdef __FreeBSD_kernel__ -+static void -+get_ada_disk_name (char *name, int unit) -+{ -+ sprintf (name, "/dev/ada%d", unit); -+} -+ -+static void -+get_ataraid_disk_name (char *name, int unit) -+{ -+ sprintf (name, "/dev/ar%d", unit); -+} -+ -+static void -+get_mfi_disk_name (char *name, int unit) -+{ -+ sprintf (name, "/dev/mfid%d", unit); -+} -+ -+static void -+get_virtio_disk_name (char *name, int unit) -+{ -+ sprintf (name, "/dev/vtbd%d", unit); -+} -+ -+static void -+get_xvd_disk_name (char *name, int unit) -+{ -+ sprintf (name, "/dev/xbd%d", unit); -+} -+#endif -+ -+#ifdef __linux__ -+static void -+get_virtio_disk_name (char *name, int unit) -+{ -+#ifdef __sparc__ -+ sprintf (name, "/dev/vdisk%c", unit + 'a'); -+#else -+ sprintf (name, "/dev/vd%c", unit + 'a'); -+#endif -+} -+ -+static void -+get_dac960_disk_name (char *name, int controller, int drive) -+{ -+ sprintf (name, "/dev/rd/c%dd%d", controller, drive); -+} -+ -+static void -+get_acceleraid_disk_name (char *name, int controller, int drive) -+{ -+ sprintf (name, "/dev/rs/c%dd%d", controller, drive); -+} -+ -+static void -+get_ataraid_disk_name (char *name, int unit) -+{ -+ sprintf (name, "/dev/ataraid/d%c", unit + '0'); -+} -+ -+static void -+get_i2o_disk_name (char *name, char unit) -+{ -+ sprintf (name, "/dev/i2o/hd%c", unit); -+} -+ -+static void -+get_cciss_disk_name (char *name, int controller, int drive) -+{ -+ sprintf (name, "/dev/cciss/c%dd%d", controller, drive); -+} -+ -+static void -+get_ida_disk_name (char *name, int controller, int drive) -+{ -+ sprintf (name, "/dev/ida/c%dd%d", controller, drive); -+} -+ -+static void -+get_mmc_disk_name (char *name, int unit) -+{ -+ sprintf (name, "/dev/mmcblk%d", unit); -+} -+ -+static void -+get_xvd_disk_name (char *name, int unit) -+{ -+ sprintf (name, "/dev/xvd%c", unit + 'a'); -+} -+ -+static void -+get_nvme_disk_name (char *name, int controller, int namespace) -+{ -+ sprintf (name, "/dev/nvme%dn%d", controller, namespace); -+} -+#endif -+ -+static struct seen_device -+{ -+ struct seen_device *next; -+ struct seen_device **prev; -+ const char *name; -+} *seen; -+ -+/* Check if DEVICE can be read. Skip any DEVICE that we have already seen. -+ If an error occurs, return zero, otherwise return non-zero. */ -+static int -+check_device_readable_unique (const char *device) -+{ -+ char *real_device; -+ char buf[512]; -+ FILE *fp; -+ struct seen_device *seen_elt; -+ -+ /* If DEVICE is empty, just return error. */ -+ if (*device == 0) -+ return 0; -+ -+ /* Have we seen this device already? */ -+ real_device = canonicalize_file_name (device); -+ if (! real_device) -+ return 0; -+ if (grub_named_list_find (GRUB_AS_NAMED_LIST (seen), real_device)) -+ { -+ grub_dprintf ("deviceiter", "Already seen %s (%s)\n", -+ device, real_device); -+ goto fail; -+ } -+ -+ fp = fopen (device, "r"); -+ if (! fp) -+ { -+ switch (errno) -+ { -+#ifdef ENOMEDIUM -+ case ENOMEDIUM: -+# if 0 -+ /* At the moment, this finds only CDROMs, which can't be -+ read anyway, so leave it out. Code should be -+ reactivated if `removable disks' and CDROMs are -+ supported. */ -+ /* Accept it, it may be inserted. */ -+ return 1; -+# endif -+ break; -+#endif /* ENOMEDIUM */ -+ default: -+ /* Break case and leave. */ -+ break; -+ } -+ /* Error opening the device. */ -+ goto fail; -+ } -+ -+ /* Make sure CD-ROMs don't get assigned a BIOS disk number -+ before SCSI disks! */ -+#ifdef __linux__ -+# ifdef CDROM_GET_CAPABILITY -+ if (ioctl (fileno (fp), CDROM_GET_CAPABILITY, 0) >= 0) -+ goto fail; -+# else /* ! CDROM_GET_CAPABILITY */ -+ /* Check if DEVICE is a CD-ROM drive by the HDIO_GETGEO ioctl. */ -+ { -+ struct hd_geometry hdg; -+ struct stat st; -+ -+ if (fstat (fileno (fp), &st)) -+ goto fail; -+ -+ /* If it is a block device and isn't a floppy, check if HDIO_GETGEO -+ succeeds. */ -+ if (S_ISBLK (st.st_mode) -+ && MAJOR (st.st_rdev) != FLOPPY_MAJOR -+ && ioctl (fileno (fp), HDIO_GETGEO, &hdg)) -+ goto fail; -+ } -+# endif /* ! CDROM_GET_CAPABILITY */ -+#endif /* __linux__ */ -+ -+#if defined(__FreeBSD_kernel__) || defined(__NetBSD__) || defined(__OpenBSD__) -+# ifdef CDIOCCLRDEBUG -+ if (ioctl (fileno (fp), CDIOCCLRDEBUG, 0) >= 0) -+ goto fail; -+# endif /* CDIOCCLRDEBUG */ -+#endif /* __FreeBSD_kernel__ || __NetBSD__ || __OpenBSD__ */ -+ -+ /* Attempt to read the first sector. */ -+ if (fread (buf, 1, 512, fp) != 512) -+ { -+ fclose (fp); -+ goto fail; -+ } -+ -+ /* Remember that we've seen this device. */ -+ seen_elt = xmalloc (sizeof (*seen_elt)); -+ seen_elt->name = real_device; /* steal memory */ -+ grub_list_push (GRUB_AS_LIST_P (&seen), GRUB_AS_LIST (seen_elt)); -+ -+ fclose (fp); -+ return 1; -+ -+fail: -+ free (real_device); -+ return 0; -+} -+ -+static void -+clear_seen_devices (void) -+{ -+ while (seen) -+ { -+ struct seen_device *seen_elt = seen; -+ seen = seen->next; -+ free (seen_elt); -+ } -+ seen = NULL; -+} -+ -+#ifdef __linux__ -+struct device -+{ -+ char *stable; -+ char *kernel; -+}; -+ -+/* Sort by the kernel name for preference since that most closely matches -+ older device.map files, but sort by stable by-id names as a fallback. -+ This is because /dev/disk/by-id/ usually has a few alternative -+ identifications of devices (e.g. ATA vs. SATA). -+ check_device_readable_unique will ensure that we only get one for any -+ given disk, but sort the list so that the choice of which one we get is -+ stable. */ -+static int -+compare_devices (const void *a, const void *b) -+{ -+ const struct device *left = (const struct device *) a; -+ const struct device *right = (const struct device *) b; -+ -+ if (left->kernel && right->kernel) -+ { -+ int ret = strcmp (left->kernel, right->kernel); -+ if (ret) -+ return ret; -+ } -+ -+ return strcmp (left->stable, right->stable); -+} -+#endif /* __linux__ */ -+ -+void -+grub_util_iterate_devices (int (*hook) (const char *, int, void *), void *hook_data, -+ int floppy_disks) -+{ -+ int i; -+ -+ clear_seen_devices (); -+ -+ /* Floppies. */ -+ for (i = 0; i < floppy_disks; i++) -+ { -+ char name[32]; -+ struct stat st; -+ -+ get_floppy_disk_name (name, i); -+ if (stat (name, &st) < 0) -+ break; -+ /* In floppies, write the map, whether check_device_readable_unique -+ succeeds or not, because the user just may not insert floppies. */ -+ if (hook (name, 1, hook_data)) -+ goto out; -+ } -+ -+#ifdef __linux__ -+ { -+ DIR *dir = opendir ("/dev/disk/by-id"); -+ -+ if (dir) -+ { -+ struct dirent *entry; -+ struct device *devs; -+ size_t devs_len = 0, devs_max = 1024, dev; -+ -+ devs = xmalloc (devs_max * sizeof (*devs)); -+ -+ /* Dump all the directory entries into names, resizing if -+ necessary. */ -+ for (entry = readdir (dir); entry; entry = readdir (dir)) -+ { -+ /* Skip current and parent directory entries. */ -+ if (strcmp (entry->d_name, ".") == 0 || -+ strcmp (entry->d_name, "..") == 0) -+ continue; -+ /* Skip partition entries. */ -+ if (strstr (entry->d_name, "-part")) -+ continue; -+ /* Skip device-mapper entries; we'll handle the ones we want -+ later. */ -+ if (strncmp (entry->d_name, "dm-", sizeof ("dm-") - 1) == 0) -+ continue; -+ /* Skip RAID entries; they are handled by upper layers. */ -+ if (strncmp (entry->d_name, "md-", sizeof ("md-") - 1) == 0) -+ continue; -+ if (devs_len >= devs_max) -+ { -+ devs_max *= 2; -+ devs = xrealloc (devs, devs_max * sizeof (*devs)); -+ } -+ devs[devs_len].stable = -+ xasprintf ("/dev/disk/by-id/%s", entry->d_name); -+ devs[devs_len].kernel = -+ canonicalize_file_name (devs[devs_len].stable); -+ devs_len++; -+ } -+ -+ qsort (devs, devs_len, sizeof (*devs), &compare_devices); -+ -+ closedir (dir); -+ -+ /* Now add all the devices in sorted order. */ -+ for (dev = 0; dev < devs_len; ++dev) -+ { -+ if (check_device_readable_unique (devs[dev].stable)) -+ { -+ if (hook (devs[dev].stable, 0, hook_data)) -+ goto out; -+ } -+ free (devs[dev].stable); -+ free (devs[dev].kernel); -+ } -+ free (devs); -+ } -+ } -+ -+ if (have_devfs ()) -+ { -+ i = 0; -+ while (1) -+ { -+ char discn[32]; -+ char name[PATH_MAX]; -+ struct stat st; -+ -+ /* Linux creates symlinks "/dev/discs/discN" for convenience. -+ The way to number disks is the same as GRUB's. */ -+ sprintf (discn, "/dev/discs/disc%d", i++); -+ if (stat (discn, &st) < 0) -+ break; -+ -+ if (realpath (discn, name)) -+ { -+ strcat (name, "/disc"); -+ if (hook (name, 0, hook_data)) -+ goto out; -+ } -+ } -+ goto out; -+ } -+#endif /* __linux__ */ -+ -+ /* IDE disks. */ -+ for (i = 0; i < 96; i++) -+ { -+ char name[16]; -+ -+ get_ide_disk_name (name, i); -+ if (check_device_readable_unique (name)) -+ { -+ if (hook (name, 0, hook_data)) -+ goto out; -+ } -+ } -+ -+#ifdef __FreeBSD_kernel__ -+ /* IDE disks using ATA Direct Access driver. */ -+ if (get_kfreebsd_version () >= 800000) -+ for (i = 0; i < 96; i++) -+ { -+ char name[16]; -+ -+ get_ada_disk_name (name, i); -+ if (check_device_readable_unique (name)) -+ { -+ if (hook (name, 0, hook_data)) -+ goto out; -+ } -+ } -+ -+ /* ATARAID disks. */ -+ for (i = 0; i < 8; i++) -+ { -+ char name[20]; -+ -+ get_ataraid_disk_name (name, i); -+ if (check_device_readable_unique (name)) -+ { -+ if (hook (name, 0, hook_data)) -+ goto out; -+ } -+ } -+ -+ /* LSI MegaRAID SAS. */ -+ for (i = 0; i < 32; i++) -+ { -+ char name[20]; -+ -+ get_mfi_disk_name (name, i); -+ if (check_device_readable_unique (name)) -+ { -+ if (hook (name, 0, hook_data)) -+ goto out; -+ } -+ } -+ -+ /* Virtio disks. */ -+ for (i = 0; i < 96; i++) -+ { -+ char name[16]; -+ -+ get_virtio_disk_name (name, i); -+ if (check_device_readable_unique (name)) -+ { -+ if (hook (name, 0, hook_data)) -+ goto out; -+ } -+ } -+ -+ /* Xen virtual block devices. */ -+ for (i = 0; i < 96; i++) -+ { -+ char name[16]; -+ -+ get_xvd_disk_name (name, i); -+ if (check_device_readable_unique (name)) -+ { -+ if (hook (name, 0, hook_data)) -+ goto out; -+ } -+ } -+#endif -+ -+#ifdef __linux__ -+ /* Virtio disks. */ -+ for (i = 0; i < 26; i++) -+ { -+ char name[16]; -+ -+ get_virtio_disk_name (name, i); -+ if (check_device_readable_unique (name)) -+ { -+ if (hook (name, 0, hook_data)) -+ goto out; -+ } -+ } -+ -+ /* ATARAID disks. */ -+ for (i = 0; i < 8; i++) -+ { -+ char name[20]; -+ -+ get_ataraid_disk_name (name, i); -+ if (check_device_readable_unique (name)) -+ { -+ if (hook (name, 0, hook_data)) -+ goto out; -+ } -+ } -+ -+ /* Xen virtual block devices. */ -+ for (i = 0; i < 26; i++) -+ { -+ char name[16]; -+ -+ get_xvd_disk_name (name, i); -+ if (check_device_readable_unique (name)) -+ { -+ if (hook (name, 0, hook_data)) -+ goto out; -+ } -+ } -+#endif /* __linux__ */ -+ -+ /* The rest is SCSI disks. */ -+ for (i = 0; i < 48; i++) -+ { -+ char name[16]; -+ -+ get_scsi_disk_name (name, i); -+ if (check_device_readable_unique (name)) -+ { -+ if (hook (name, 0, hook_data)) -+ goto out; -+ } -+ } -+ -+#ifdef __linux__ -+ /* This is for DAC960 - we have -+ /dev/rd/cdp. -+ -+ DAC960 driver currently supports up to 8 controllers, 32 logical -+ drives, and 7 partitions. */ -+ { -+ int controller, drive; -+ -+ for (controller = 0; controller < 8; controller++) -+ { -+ for (drive = 0; drive < 15; drive++) -+ { -+ char name[24]; -+ -+ get_dac960_disk_name (name, controller, drive); -+ if (check_device_readable_unique (name)) -+ { -+ if (hook (name, 0, hook_data)) -+ goto out; -+ } -+ } -+ } -+ } -+ -+ /* This is for Mylex Acceleraid - we have -+ /dev/rd/cdp. */ -+ { -+ int controller, drive; -+ -+ for (controller = 0; controller < 8; controller++) -+ { -+ for (drive = 0; drive < 15; drive++) -+ { -+ char name[24]; -+ -+ get_acceleraid_disk_name (name, controller, drive); -+ if (check_device_readable_unique (name)) -+ { -+ if (hook (name, 0, hook_data)) -+ goto out; -+ } -+ } -+ } -+ } -+ -+ /* This is for CCISS - we have -+ /dev/cciss/cdp. */ -+ { -+ int controller, drive; -+ -+ for (controller = 0; controller < 3; controller++) -+ { -+ for (drive = 0; drive < 16; drive++) -+ { -+ char name[24]; -+ -+ get_cciss_disk_name (name, controller, drive); -+ if (check_device_readable_unique (name)) -+ { -+ if (hook (name, 0, hook_data)) -+ goto out; -+ } -+ } -+ } -+ } -+ -+ /* This is for Compaq Intelligent Drive Array - we have -+ /dev/ida/cdp. */ -+ { -+ int controller, drive; -+ -+ for (controller = 0; controller < 3; controller++) -+ { -+ for (drive = 0; drive < 16; drive++) -+ { -+ char name[24]; -+ -+ get_ida_disk_name (name, controller, drive); -+ if (check_device_readable_unique (name)) -+ { -+ if (hook (name, 0, hook_data)) -+ goto out; -+ } -+ } -+ } -+ } -+ -+ /* This is for I2O - we have /dev/i2o/hd */ -+ { -+ char unit; -+ -+ for (unit = 'a'; unit < 'f'; unit++) -+ { -+ char name[24]; -+ -+ get_i2o_disk_name (name, unit); -+ if (check_device_readable_unique (name)) -+ { -+ if (hook (name, 0, hook_data)) -+ goto out; -+ } -+ } -+ } -+ -+ /* MultiMediaCard (MMC). */ -+ for (i = 0; i < 10; i++) -+ { -+ char name[16]; -+ -+ get_mmc_disk_name (name, i); -+ if (check_device_readable_unique (name)) -+ { -+ if (hook (name, 0, hook_data)) -+ goto out; -+ } -+ } -+ -+ /* This is for standard NVMe controllers -+ /dev/nvmenp. No idea about -+ actual limits of how many controllers a system can have and/or -+ how many namespace that would be, 10 for now. */ -+ { -+ int controller, namespace; -+ -+ for (controller = 0; controller < 10; controller++) -+ { -+ for (namespace = 0; namespace < 10; namespace++) -+ { -+ char name[16]; -+ -+ get_nvme_disk_name (name, controller, namespace); -+ if (check_device_readable_unique (name)) -+ { -+ if (hook (name, 0, hook_data)) -+ goto out; -+ } -+ } -+ } -+ } -+ -+# ifdef HAVE_DEVICE_MAPPER -+# define dmraid_check(cond, ...) \ -+ if (! (cond)) \ -+ { \ -+ grub_dprintf ("deviceiter", __VA_ARGS__); \ -+ goto dmraid_end; \ -+ } -+ -+ /* DM-RAID. */ -+ if (grub_device_mapper_supported ()) -+ { -+ struct dm_tree *tree = NULL; -+ struct dm_task *task = NULL; -+ struct dm_names *names = NULL; -+ unsigned int next = 0; -+ void *top_handle, *second_handle; -+ struct dm_tree_node *root, *top, *second; -+ -+ /* Build DM tree for all devices. */ -+ tree = dm_tree_create (); -+ dmraid_check (tree, "dm_tree_create failed\n"); -+ task = dm_task_create (DM_DEVICE_LIST); -+ dmraid_check (task, "dm_task_create failed\n"); -+ dmraid_check (dm_task_run (task), "dm_task_run failed\n"); -+ names = dm_task_get_names (task); -+ dmraid_check (names, "dm_task_get_names failed\n"); -+ dmraid_check (names->dev, "No DM devices found\n"); -+ do -+ { -+ names = (struct dm_names *) ((char *) names + next); -+ dmraid_check (dm_tree_add_dev (tree, MAJOR (names->dev), -+ MINOR (names->dev)), -+ "dm_tree_add_dev (%s) failed\n", names->name); -+ next = names->next; -+ } -+ while (next); -+ -+ /* Walk the second-level children of the inverted tree; that is, devices -+ which are directly composed of non-DM devices such as hard disks. -+ This class includes all DM-RAID disks and excludes all DM-RAID -+ partitions. */ -+ root = dm_tree_find_node (tree, 0, 0); -+ top_handle = NULL; -+ top = dm_tree_next_child (&top_handle, root, 1); -+ while (top) -+ { -+ second_handle = NULL; -+ second = dm_tree_next_child (&second_handle, top, 1); -+ while (second) -+ { -+ const char *node_name, *node_uuid; -+ char *name; -+ -+ node_name = dm_tree_node_get_name (second); -+ dmraid_check (node_name, "dm_tree_node_get_name failed\n"); -+ node_uuid = dm_tree_node_get_uuid (second); -+ dmraid_check (node_uuid, "dm_tree_node_get_uuid failed\n"); -+ if (strstr (node_uuid, "DMRAID-") == 0) -+ { -+ grub_dprintf ("deviceiter", "%s is not DM-RAID\n", node_name); -+ goto dmraid_next_child; -+ } -+ -+ name = xasprintf ("/dev/mapper/%s", node_name); -+ if (check_device_readable_unique (name)) -+ { -+ if (hook (name, 0, hook_data)) -+ { -+ free (name); -+ if (task) -+ dm_task_destroy (task); -+ if (tree) -+ dm_tree_free (tree); -+ goto out; -+ } -+ } -+ free (name); -+ -+dmraid_next_child: -+ second = dm_tree_next_child (&second_handle, top, 1); -+ } -+ top = dm_tree_next_child (&top_handle, root, 1); -+ } -+ -+dmraid_end: -+ if (task) -+ dm_task_destroy (task); -+ if (tree) -+ dm_tree_free (tree); -+ } -+# endif /* HAVE_DEVICE_MAPPER */ -+#endif /* __linux__ */ -+ -+out: -+ clear_seen_devices (); -+} -diff --git a/util/devicemap.c b/util/devicemap.c -new file mode 100644 -index 000000000..c61864420 ---- /dev/null -+++ b/util/devicemap.c -@@ -0,0 +1,13 @@ -+#include -+ -+#include -+ -+void -+grub_util_emit_devicemap_entry (FILE *fp, char *name, int is_floppy, -+ int *num_fd, int *num_hd) -+{ -+ if (is_floppy) -+ fprintf (fp, "(fd%d)\t%s\n", (*num_fd)++, name); -+ else -+ fprintf (fp, "(hd%d)\t%s\n", (*num_hd)++, name); -+} -diff --git a/util/grub-mkdevicemap.c b/util/grub-mkdevicemap.c -new file mode 100644 -index 000000000..c4bbdbf69 ---- /dev/null -+++ b/util/grub-mkdevicemap.c -@@ -0,0 +1,181 @@ -+/* grub-mkdevicemap.c - make a device map file automatically */ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 1999,2000,2001,2002,2003,2004,2005,2007,2008,2009,2010 Free Software Foundation, Inc. -+ * -+ * GRUB is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation, either version 3 of the License, or -+ * (at your option) any later version. -+ * -+ * GRUB is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with GRUB. If not, see . -+ */ -+ -+#include -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#define _GNU_SOURCE 1 -+#include -+ -+#include "progname.h" -+ -+/* Context for make_device_map. */ -+struct make_device_map_ctx -+{ -+ FILE *fp; -+ int num_fd; -+ int num_hd; -+}; -+ -+/* Helper for make_device_map. */ -+static int -+process_device (const char *name, int is_floppy, void *data) -+{ -+ struct make_device_map_ctx *ctx = data; -+ -+ grub_util_emit_devicemap_entry (ctx->fp, (char *) name, -+ is_floppy, &ctx->num_fd, &ctx->num_hd); -+ return 0; -+} -+ -+static void -+make_device_map (const char *device_map, int floppy_disks) -+{ -+ struct make_device_map_ctx ctx = { -+ .num_fd = 0, -+ .num_hd = 0 -+ }; -+ -+ if (strcmp (device_map, "-") == 0) -+ ctx.fp = stdout; -+ else -+ ctx.fp = fopen (device_map, "w"); -+ -+ if (! ctx.fp) -+ grub_util_error (_("cannot open %s"), device_map); -+ -+ grub_util_iterate_devices (process_device, &ctx, floppy_disks); -+ -+ if (ctx.fp != stdout) -+ fclose (ctx.fp); -+} -+ -+static struct option options[] = -+ { -+ {"device-map", required_argument, 0, 'm'}, -+ {"probe-second-floppy", no_argument, 0, 's'}, -+ {"no-floppy", no_argument, 0, 'n'}, -+ {"help", no_argument, 0, 'h'}, -+ {"version", no_argument, 0, 'V'}, -+ {"verbose", no_argument, 0, 'v'}, -+ {0, 0, 0, 0} -+ }; -+ -+static void -+usage (int status) -+{ -+ if (status) -+ fprintf (stderr, -+ _("Try `%s --help' for more information.\n"), program_name); -+ else -+ printf (_("\ -+Usage: %s [OPTION]...\n\ -+\n\ -+Generate a device map file automatically.\n\ -+\n\ -+ -n, --no-floppy do not probe any floppy drive\n\ -+ -s, --probe-second-floppy probe the second floppy drive\n\ -+ -m, --device-map=FILE use FILE as the device map [default=%s]\n\ -+ -h, --help display this message and exit\n\ -+ -V, --version print version information and exit\n\ -+ -v, --verbose print verbose messages\n\ -+\n\ -+Report bugs to <%s>.\n\ -+"), program_name, -+ DEFAULT_DEVICE_MAP, PACKAGE_BUGREPORT); -+ -+ exit (status); -+} -+ -+int -+main (int argc, char *argv[]) -+{ -+ char *dev_map = 0; -+ int floppy_disks = 1; -+ -+ grub_util_host_init (&argc, &argv); -+ -+ /* Check for options. */ -+ while (1) -+ { -+ int c = getopt_long (argc, argv, "snm:r:hVv", options, 0); -+ -+ if (c == -1) -+ break; -+ else -+ switch (c) -+ { -+ case 'm': -+ if (dev_map) -+ free (dev_map); -+ -+ dev_map = xstrdup (optarg); -+ break; -+ -+ case 'n': -+ floppy_disks = 0; -+ break; -+ -+ case 's': -+ floppy_disks = 2; -+ break; -+ -+ case 'h': -+ usage (0); -+ break; -+ -+ case 'V': -+ printf ("%s (%s) %s\n", program_name, PACKAGE_NAME, PACKAGE_VERSION); -+ return 0; -+ -+ case 'v': -+ verbosity++; -+ break; -+ -+ default: -+ usage (1); -+ break; -+ } -+ } -+ -+ if (verbosity > 1) -+ grub_env_set ("debug", "all"); -+ -+ make_device_map (dev_map ? : DEFAULT_DEVICE_MAP, floppy_disks); -+ -+ free (dev_map); -+ -+ return 0; -+} diff --git a/patches/grub/2.04/safe-alloc-1.patch b/patches/grub/2.04/safe-alloc-1.patch deleted file mode 100644 index e2bdbbfcd..000000000 --- a/patches/grub/2.04/safe-alloc-1.patch +++ /dev/null @@ -1,122 +0,0 @@ -From 016977edbd5d9f6fbab6412fb8b4d1f50eb432e7 Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Mon, 15 Jun 2020 10:58:42 -0400 -Subject: safemath: Add some arithmetic primitives that check for overflow - -This adds a new header, include/grub/safemath.h, that includes easy to -use wrappers for __builtin_{add,sub,mul}_overflow() declared like: - - bool OP(a, b, res) - -where OP is grub_add, grub_sub or grub_mul. OP() returns true in the -case where the operation would overflow and res is not modified. -Otherwise, false is returned and the operation is executed. - -These arithmetic primitives require newer compiler versions. So, bump -these requirements in the INSTALL file too. - -Signed-off-by: Peter Jones -Reviewed-by: Daniel Kiper - -Patch-Name: safe-alloc-1.patch ---- - INSTALL | 22 ++-------------------- - include/grub/compiler.h | 8 ++++++++ - include/grub/safemath.h | 37 +++++++++++++++++++++++++++++++++++++ - 3 files changed, 47 insertions(+), 20 deletions(-) - create mode 100644 include/grub/safemath.h - -diff --git a/INSTALL b/INSTALL -index 342c158e9..991479b52 100644 ---- a/INSTALL -+++ b/INSTALL -@@ -11,27 +11,9 @@ GRUB depends on some software packages installed into your system. If - you don't have any of them, please obtain and install them before - configuring the GRUB. - --* GCC 4.1.3 or later -- Note: older versions may work but support is limited -- -- Experimental support for clang 3.3 or later (results in much bigger binaries) -+* GCC 5.1.0 or later -+ Experimental support for clang 3.8.0 or later (results in much bigger binaries) - for i386, x86_64, arm (including thumb), arm64, mips(el), powerpc, sparc64 -- Note: clang 3.2 or later works for i386 and x86_64 targets but results in -- much bigger binaries. -- earlier versions not tested -- Note: clang 3.2 or later works for arm -- earlier versions not tested -- Note: clang on arm64 is not supported due to -- https://llvm.org/bugs/show_bug.cgi?id=26030 -- Note: clang 3.3 or later works for mips(el) -- earlier versions fail to generate .reginfo and hence gprel relocations -- fail. -- Note: clang 3.2 or later works for powerpc -- earlier versions not tested -- Note: clang 3.5 or later works for sparc64 -- earlier versions return "error: unable to interface with target machine" -- Note: clang has no support for ia64 and hence you can't compile GRUB -- for ia64 with clang - * GNU Make - * GNU Bison 2.3 or later - * GNU gettext 0.17 or later -diff --git a/include/grub/compiler.h b/include/grub/compiler.h -index c9e1d7a73..8f3be3ae7 100644 ---- a/include/grub/compiler.h -+++ b/include/grub/compiler.h -@@ -48,4 +48,12 @@ - # define WARN_UNUSED_RESULT - #endif - -+#if defined(__clang__) && defined(__clang_major__) && defined(__clang_minor__) -+# define CLANG_PREREQ(maj,min) \ -+ ((__clang_major__ > (maj)) || \ -+ (__clang_major__ == (maj) && __clang_minor__ >= (min))) -+#else -+# define CLANG_PREREQ(maj,min) 0 -+#endif -+ - #endif /* ! GRUB_COMPILER_HEADER */ -diff --git a/include/grub/safemath.h b/include/grub/safemath.h -new file mode 100644 -index 000000000..c17b89bba ---- /dev/null -+++ b/include/grub/safemath.h -@@ -0,0 +1,37 @@ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 2020 Free Software Foundation, Inc. -+ * -+ * GRUB is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation, either version 3 of the License, or -+ * (at your option) any later version. -+ * -+ * GRUB is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with GRUB. If not, see . -+ * -+ * Arithmetic operations that protect against overflow. -+ */ -+ -+#ifndef GRUB_SAFEMATH_H -+#define GRUB_SAFEMATH_H 1 -+ -+#include -+ -+/* These appear in gcc 5.1 and clang 3.8. */ -+#if GNUC_PREREQ(5, 1) || CLANG_PREREQ(3, 8) -+ -+#define grub_add(a, b, res) __builtin_add_overflow(a, b, res) -+#define grub_sub(a, b, res) __builtin_sub_overflow(a, b, res) -+#define grub_mul(a, b, res) __builtin_mul_overflow(a, b, res) -+ -+#else -+#error gcc 5.1 or newer or clang 3.8 or newer is required -+#endif -+ -+#endif /* GRUB_SAFEMATH_H */ diff --git a/patches/grub/2.04/safe-alloc-2.patch b/patches/grub/2.04/safe-alloc-2.patch deleted file mode 100644 index 9c59ff0ec..000000000 --- a/patches/grub/2.04/safe-alloc-2.patch +++ /dev/null @@ -1,241 +0,0 @@ -From f80ca28e207484650fc7634545cd3dc6037de3c8 Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Mon, 15 Jun 2020 12:15:29 -0400 -Subject: calloc: Make sure we always have an overflow-checking calloc() - available - -This tries to make sure that everywhere in this source tree, we always have -an appropriate version of calloc() (i.e. grub_calloc(), xcalloc(), etc.) -available, and that they all safely check for overflow and return NULL when -it would occur. - -Signed-off-by: Peter Jones -Reviewed-by: Daniel Kiper - -Patch-Name: safe-alloc-2.patch ---- - grub-core/kern/emu/misc.c | 12 +++++++++ - grub-core/kern/emu/mm.c | 10 ++++++++ - grub-core/kern/mm.c | 40 ++++++++++++++++++++++++++++++ - grub-core/lib/libgcrypt_wrap/mem.c | 11 ++++++-- - grub-core/lib/posix_wrap/stdlib.h | 8 +++++- - include/grub/emu/misc.h | 1 + - include/grub/mm.h | 6 +++++ - 7 files changed, 85 insertions(+), 3 deletions(-) - -diff --git a/grub-core/kern/emu/misc.c b/grub-core/kern/emu/misc.c -index 65db79baa..dfd8a8ec4 100644 ---- a/grub-core/kern/emu/misc.c -+++ b/grub-core/kern/emu/misc.c -@@ -85,6 +85,18 @@ grub_util_error (const char *fmt, ...) - exit (1); - } - -+void * -+xcalloc (grub_size_t nmemb, grub_size_t size) -+{ -+ void *p; -+ -+ p = calloc (nmemb, size); -+ if (!p) -+ grub_util_error ("%s", _("out of memory")); -+ -+ return p; -+} -+ - void * - xmalloc (grub_size_t size) - { -diff --git a/grub-core/kern/emu/mm.c b/grub-core/kern/emu/mm.c -index f262e95e3..145b01d37 100644 ---- a/grub-core/kern/emu/mm.c -+++ b/grub-core/kern/emu/mm.c -@@ -25,6 +25,16 @@ - #include - #include - -+void * -+grub_calloc (grub_size_t nmemb, grub_size_t size) -+{ -+ void *ret; -+ ret = calloc (nmemb, size); -+ if (!ret) -+ grub_error (GRUB_ERR_OUT_OF_MEMORY, N_("out of memory")); -+ return ret; -+} -+ - void * - grub_malloc (grub_size_t size) - { -diff --git a/grub-core/kern/mm.c b/grub-core/kern/mm.c -index ee88ff611..f2822a836 100644 ---- a/grub-core/kern/mm.c -+++ b/grub-core/kern/mm.c -@@ -67,8 +67,10 @@ - #include - #include - #include -+#include - - #ifdef MM_DEBUG -+# undef grub_calloc - # undef grub_malloc - # undef grub_zalloc - # undef grub_realloc -@@ -375,6 +377,30 @@ grub_memalign (grub_size_t align, grub_size_t size) - return 0; - } - -+/* -+ * Allocate NMEMB instances of SIZE bytes and return the pointer, or error on -+ * integer overflow. -+ */ -+void * -+grub_calloc (grub_size_t nmemb, grub_size_t size) -+{ -+ void *ret; -+ grub_size_t sz = 0; -+ -+ if (grub_mul (nmemb, size, &sz)) -+ { -+ grub_error (GRUB_ERR_OUT_OF_RANGE, N_("overflow is detected")); -+ return NULL; -+ } -+ -+ ret = grub_memalign (0, sz); -+ if (!ret) -+ return NULL; -+ -+ grub_memset (ret, 0, sz); -+ return ret; -+} -+ - /* Allocate SIZE bytes and return the pointer. */ - void * - grub_malloc (grub_size_t size) -@@ -561,6 +587,20 @@ grub_mm_dump (unsigned lineno) - grub_printf ("\n"); - } - -+void * -+grub_debug_calloc (const char *file, int line, grub_size_t nmemb, grub_size_t size) -+{ -+ void *ptr; -+ -+ if (grub_mm_debug) -+ grub_printf ("%s:%d: calloc (0x%" PRIxGRUB_SIZE ", 0x%" PRIxGRUB_SIZE ") = ", -+ file, line, size); -+ ptr = grub_calloc (nmemb, size); -+ if (grub_mm_debug) -+ grub_printf ("%p\n", ptr); -+ return ptr; -+} -+ - void * - grub_debug_malloc (const char *file, int line, grub_size_t size) - { -diff --git a/grub-core/lib/libgcrypt_wrap/mem.c b/grub-core/lib/libgcrypt_wrap/mem.c -index beeb661a3..74c6eafe5 100644 ---- a/grub-core/lib/libgcrypt_wrap/mem.c -+++ b/grub-core/lib/libgcrypt_wrap/mem.c -@@ -4,6 +4,7 @@ - #include - #include - #include -+#include - - GRUB_MOD_LICENSE ("GPLv3+"); - -@@ -36,7 +37,10 @@ void * - gcry_xcalloc (size_t n, size_t m) - { - void *ret; -- ret = grub_zalloc (n * m); -+ size_t sz; -+ if (grub_mul (n, m, &sz)) -+ grub_fatal ("gcry_xcalloc would overflow"); -+ ret = grub_zalloc (sz); - if (!ret) - grub_fatal ("gcry_xcalloc failed"); - return ret; -@@ -56,7 +60,10 @@ void * - gcry_xcalloc_secure (size_t n, size_t m) - { - void *ret; -- ret = grub_zalloc (n * m); -+ size_t sz; -+ if (grub_mul (n, m, &sz)) -+ grub_fatal ("gcry_xcalloc would overflow"); -+ ret = grub_zalloc (sz); - if (!ret) - grub_fatal ("gcry_xcalloc failed"); - return ret; -diff --git a/grub-core/lib/posix_wrap/stdlib.h b/grub-core/lib/posix_wrap/stdlib.h -index 3b46f47ff..7a8d385e9 100644 ---- a/grub-core/lib/posix_wrap/stdlib.h -+++ b/grub-core/lib/posix_wrap/stdlib.h -@@ -21,6 +21,7 @@ - - #include - #include -+#include - - static inline void - free (void *ptr) -@@ -37,7 +38,12 @@ malloc (grub_size_t size) - static inline void * - calloc (grub_size_t size, grub_size_t nelem) - { -- return grub_zalloc (size * nelem); -+ grub_size_t sz; -+ -+ if (grub_mul (size, nelem, &sz)) -+ return NULL; -+ -+ return grub_zalloc (sz); - } - - static inline void * -diff --git a/include/grub/emu/misc.h b/include/grub/emu/misc.h -index ce464cfd0..ff9c48a64 100644 ---- a/include/grub/emu/misc.h -+++ b/include/grub/emu/misc.h -@@ -47,6 +47,7 @@ grub_util_device_is_mapped (const char *dev); - #define GRUB_HOST_PRIuLONG_LONG "llu" - #define GRUB_HOST_PRIxLONG_LONG "llx" - -+void * EXPORT_FUNC(xcalloc) (grub_size_t nmemb, grub_size_t size) WARN_UNUSED_RESULT; - void * EXPORT_FUNC(xmalloc) (grub_size_t size) WARN_UNUSED_RESULT; - void * EXPORT_FUNC(xrealloc) (void *ptr, grub_size_t size) WARN_UNUSED_RESULT; - char * EXPORT_FUNC(xstrdup) (const char *str) WARN_UNUSED_RESULT; -diff --git a/include/grub/mm.h b/include/grub/mm.h -index 28e2e53eb..9c38dd3ca 100644 ---- a/include/grub/mm.h -+++ b/include/grub/mm.h -@@ -29,6 +29,7 @@ - #endif - - void grub_mm_init_region (void *addr, grub_size_t size); -+void *EXPORT_FUNC(grub_calloc) (grub_size_t nmemb, grub_size_t size); - void *EXPORT_FUNC(grub_malloc) (grub_size_t size); - void *EXPORT_FUNC(grub_zalloc) (grub_size_t size); - void EXPORT_FUNC(grub_free) (void *ptr); -@@ -48,6 +49,9 @@ extern int EXPORT_VAR(grub_mm_debug); - void grub_mm_dump_free (void); - void grub_mm_dump (unsigned lineno); - -+#define grub_calloc(nmemb, size) \ -+ grub_debug_calloc (GRUB_FILE, __LINE__, nmemb, size) -+ - #define grub_malloc(size) \ - grub_debug_malloc (GRUB_FILE, __LINE__, size) - -@@ -63,6 +67,8 @@ void grub_mm_dump (unsigned lineno); - #define grub_free(ptr) \ - grub_debug_free (GRUB_FILE, __LINE__, ptr) - -+void *EXPORT_FUNC(grub_debug_calloc) (const char *file, int line, -+ grub_size_t nmemb, grub_size_t size); - void *EXPORT_FUNC(grub_debug_malloc) (const char *file, int line, - grub_size_t size); - void *EXPORT_FUNC(grub_debug_zalloc) (const char *file, int line, diff --git a/patches/grub/2.04/safe-alloc-3.patch b/patches/grub/2.04/safe-alloc-3.patch deleted file mode 100644 index 2d746aa4b..000000000 --- a/patches/grub/2.04/safe-alloc-3.patch +++ /dev/null @@ -1,1821 +0,0 @@ -From 65dfa11751111173ce6f492afce13d4a2c2b006c Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Mon, 15 Jun 2020 12:26:01 -0400 -Subject: calloc: Use calloc() at most places - -This modifies most of the places we do some form of: - - X = malloc(Y * Z); - -to use calloc(Y, Z) instead. - -Among other issues, this fixes: - - allocation of integer overflow in grub_png_decode_image_header() - reported by Chris Coulson, - - allocation of integer overflow in luks_recover_key() - reported by Chris Coulson, - - allocation of integer overflow in grub_lvm_detect() - reported by Chris Coulson. - -Fixes: CVE-2020-14308 - -Signed-off-by: Peter Jones -Reviewed-by: Daniel Kiper - -Patch-Name: safe-alloc-3.patch ---- - grub-core/bus/usb/usbhub.c | 8 ++++---- - grub-core/commands/efi/lsefisystab.c | 3 ++- - grub-core/commands/legacycfg.c | 6 +++--- - grub-core/commands/menuentry.c | 2 +- - grub-core/commands/nativedisk.c | 2 +- - grub-core/commands/parttool.c | 12 +++++++++--- - grub-core/commands/regexp.c | 2 +- - grub-core/commands/search_wrap.c | 2 +- - grub-core/disk/diskfilter.c | 4 ++-- - grub-core/disk/ieee1275/ofdisk.c | 2 +- - grub-core/disk/ldm.c | 14 +++++++------- - grub-core/disk/luks.c | 2 +- - grub-core/disk/lvm.c | 8 ++++---- - grub-core/disk/xen/xendisk.c | 2 +- - grub-core/efiemu/loadcore.c | 2 +- - grub-core/efiemu/mm.c | 6 +++--- - grub-core/font/font.c | 3 +-- - grub-core/fs/affs.c | 6 +++--- - grub-core/fs/btrfs.c | 6 +++--- - grub-core/fs/hfs.c | 2 +- - grub-core/fs/hfsplus.c | 6 +++--- - grub-core/fs/iso9660.c | 2 +- - grub-core/fs/ntfs.c | 4 ++-- - grub-core/fs/sfs.c | 2 +- - grub-core/fs/tar.c | 2 +- - grub-core/fs/udf.c | 4 ++-- - grub-core/fs/zfs/zfs.c | 4 ++-- - grub-core/gfxmenu/gui_string_util.c | 2 +- - grub-core/gfxmenu/widget-box.c | 4 ++-- - grub-core/io/gzio.c | 2 +- - grub-core/kern/efi/efi.c | 6 +++--- - grub-core/kern/emu/hostdisk.c | 2 +- - grub-core/kern/fs.c | 2 +- - grub-core/kern/misc.c | 2 +- - grub-core/kern/parser.c | 2 +- - grub-core/kern/uboot/uboot.c | 2 +- - grub-core/lib/libgcrypt/cipher/ac.c | 8 ++++---- - grub-core/lib/libgcrypt/cipher/primegen.c | 4 ++-- - grub-core/lib/libgcrypt/cipher/pubkey.c | 4 ++-- - grub-core/lib/priority_queue.c | 2 +- - grub-core/lib/reed_solomon.c | 7 +++---- - grub-core/lib/relocator.c | 10 +++++----- - grub-core/lib/zstd/fse_decompress.c | 2 +- - grub-core/loader/arm/linux.c | 2 +- - grub-core/loader/efi/chainloader.c | 2 +- - grub-core/loader/i386/bsdXX.c | 2 +- - grub-core/loader/i386/xnu.c | 4 ++-- - grub-core/loader/macho.c | 2 +- - grub-core/loader/multiboot_elfxx.c | 2 +- - grub-core/loader/xnu.c | 2 +- - grub-core/mmap/mmap.c | 4 ++-- - grub-core/net/bootp.c | 2 +- - grub-core/net/dns.c | 10 +++++----- - grub-core/net/net.c | 4 ++-- - grub-core/normal/charset.c | 10 +++++----- - grub-core/normal/cmdline.c | 14 +++++++------- - grub-core/normal/menu_entry.c | 14 +++++++------- - grub-core/normal/menu_text.c | 4 ++-- - grub-core/normal/term.c | 4 ++-- - grub-core/osdep/linux/getroot.c | 6 +++--- - grub-core/osdep/windows/getroot.c | 2 +- - grub-core/osdep/windows/hostdisk.c | 4 ++-- - grub-core/osdep/windows/init.c | 2 +- - grub-core/osdep/windows/platform.c | 4 ++-- - grub-core/osdep/windows/relpath.c | 2 +- - grub-core/partmap/gpt.c | 2 +- - grub-core/partmap/msdos.c | 2 +- - grub-core/script/execute.c | 2 +- - grub-core/tests/fake_input.c | 2 +- - grub-core/tests/video_checksum.c | 6 +++--- - grub-core/video/capture.c | 2 +- - grub-core/video/emu/sdl.c | 2 +- - grub-core/video/i386/pc/vga.c | 2 +- - grub-core/video/readers/png.c | 2 +- - include/grub/unicode.h | 4 ++-- - util/getroot.c | 2 +- - util/grub-file.c | 2 +- - util/grub-fstest.c | 4 ++-- - util/grub-install-common.c | 2 +- - util/grub-install.c | 4 ++-- - util/grub-mkimagexx.c | 6 ++---- - util/grub-mkrescue.c | 4 ++-- - util/grub-mkstandalone.c | 2 +- - util/grub-pe2elf.c | 12 +++++------- - util/grub-probe.c | 4 ++-- - 85 files changed, 175 insertions(+), 174 deletions(-) - -diff --git a/grub-core/bus/usb/usbhub.c b/grub-core/bus/usb/usbhub.c -index 34a7ff1b5..a06cce302 100644 ---- a/grub-core/bus/usb/usbhub.c -+++ b/grub-core/bus/usb/usbhub.c -@@ -149,8 +149,8 @@ grub_usb_add_hub (grub_usb_device_t dev) - grub_usb_set_configuration (dev, 1); - - dev->nports = hubdesc.portcnt; -- dev->children = grub_zalloc (hubdesc.portcnt * sizeof (dev->children[0])); -- dev->ports = grub_zalloc (dev->nports * sizeof (dev->ports[0])); -+ dev->children = grub_calloc (hubdesc.portcnt, sizeof (dev->children[0])); -+ dev->ports = grub_calloc (dev->nports, sizeof (dev->ports[0])); - if (!dev->children || !dev->ports) - { - grub_free (dev->children); -@@ -268,8 +268,8 @@ grub_usb_controller_dev_register_iter (grub_usb_controller_t controller, void *d - - /* Query the number of ports the root Hub has. */ - hub->nports = controller->dev->hubports (controller); -- hub->devices = grub_zalloc (sizeof (hub->devices[0]) * hub->nports); -- hub->ports = grub_zalloc (sizeof (hub->ports[0]) * hub->nports); -+ hub->devices = grub_calloc (hub->nports, sizeof (hub->devices[0])); -+ hub->ports = grub_calloc (hub->nports, sizeof (hub->ports[0])); - if (!hub->devices || !hub->ports) - { - grub_free (hub->devices); -diff --git a/grub-core/commands/efi/lsefisystab.c b/grub-core/commands/efi/lsefisystab.c -index df1030221..cd81507f5 100644 ---- a/grub-core/commands/efi/lsefisystab.c -+++ b/grub-core/commands/efi/lsefisystab.c -@@ -71,7 +71,8 @@ grub_cmd_lsefisystab (struct grub_command *cmd __attribute__ ((unused)), - grub_printf ("Vendor: "); - - for (vendor_utf16 = st->firmware_vendor; *vendor_utf16; vendor_utf16++); -- vendor = grub_malloc (4 * (vendor_utf16 - st->firmware_vendor) + 1); -+ /* Allocate extra 3 bytes to simplify math. */ -+ vendor = grub_calloc (4, vendor_utf16 - st->firmware_vendor + 1); - if (!vendor) - return grub_errno; - *grub_utf16_to_utf8 ((grub_uint8_t *) vendor, st->firmware_vendor, -diff --git a/grub-core/commands/legacycfg.c b/grub-core/commands/legacycfg.c -index db7a8f002..5e3ec0d5e 100644 ---- a/grub-core/commands/legacycfg.c -+++ b/grub-core/commands/legacycfg.c -@@ -314,7 +314,7 @@ grub_cmd_legacy_kernel (struct grub_command *mycmd __attribute__ ((unused)), - if (argc < 2) - return grub_error (GRUB_ERR_BAD_ARGUMENT, N_("filename expected")); - -- cutargs = grub_malloc (sizeof (cutargs[0]) * (argc - 1)); -+ cutargs = grub_calloc (argc - 1, sizeof (cutargs[0])); - if (!cutargs) - return grub_errno; - cutargc = argc - 1; -@@ -436,7 +436,7 @@ grub_cmd_legacy_kernel (struct grub_command *mycmd __attribute__ ((unused)), - { - char rbuf[3] = "-r"; - bsdargc = cutargc + 2; -- bsdargs = grub_malloc (sizeof (bsdargs[0]) * bsdargc); -+ bsdargs = grub_calloc (bsdargc, sizeof (bsdargs[0])); - if (!bsdargs) - { - err = grub_errno; -@@ -559,7 +559,7 @@ grub_cmd_legacy_initrdnounzip (struct grub_command *mycmd __attribute__ ((unused - return grub_error (GRUB_ERR_BAD_ARGUMENT, N_("can't find command `%s'"), - "module"); - -- newargs = grub_malloc ((argc + 1) * sizeof (newargs[0])); -+ newargs = grub_calloc (argc + 1, sizeof (newargs[0])); - if (!newargs) - return grub_errno; - grub_memcpy (newargs + 1, args, argc * sizeof (newargs[0])); -diff --git a/grub-core/commands/menuentry.c b/grub-core/commands/menuentry.c -index 2c5363da7..9164df744 100644 ---- a/grub-core/commands/menuentry.c -+++ b/grub-core/commands/menuentry.c -@@ -154,7 +154,7 @@ grub_normal_add_menu_entry (int argc, const char **args, - goto fail; - - /* Save argc, args to pass as parameters to block arg later. */ -- menu_args = grub_malloc (sizeof (char*) * (argc + 1)); -+ menu_args = grub_calloc (argc + 1, sizeof (char *)); - if (! menu_args) - goto fail; - -diff --git a/grub-core/commands/nativedisk.c b/grub-core/commands/nativedisk.c -index 699447d11..7c8f97f6a 100644 ---- a/grub-core/commands/nativedisk.c -+++ b/grub-core/commands/nativedisk.c -@@ -195,7 +195,7 @@ grub_cmd_nativedisk (grub_command_t cmd __attribute__ ((unused)), - else - path_prefix = prefix; - -- mods = grub_malloc (argc * sizeof (mods[0])); -+ mods = grub_calloc (argc, sizeof (mods[0])); - if (!mods) - return grub_errno; - -diff --git a/grub-core/commands/parttool.c b/grub-core/commands/parttool.c -index 22b46b187..051e31320 100644 ---- a/grub-core/commands/parttool.c -+++ b/grub-core/commands/parttool.c -@@ -59,7 +59,13 @@ grub_parttool_register(const char *part_name, - for (nargs = 0; args[nargs].name != 0; nargs++); - cur->nargs = nargs; - cur->args = (struct grub_parttool_argdesc *) -- grub_malloc ((nargs + 1) * sizeof (struct grub_parttool_argdesc)); -+ grub_calloc (nargs + 1, sizeof (struct grub_parttool_argdesc)); -+ if (!cur->args) -+ { -+ grub_free (cur); -+ curhandle--; -+ return -1; -+ } - grub_memcpy (cur->args, args, - (nargs + 1) * sizeof (struct grub_parttool_argdesc)); - -@@ -257,7 +263,7 @@ grub_cmd_parttool (grub_command_t cmd __attribute__ ((unused)), - return err; - } - -- parsed = (int *) grub_zalloc (argc * sizeof (int)); -+ parsed = (int *) grub_calloc (argc, sizeof (int)); - - for (i = 1; i < argc; i++) - if (! parsed[i]) -@@ -290,7 +296,7 @@ grub_cmd_parttool (grub_command_t cmd __attribute__ ((unused)), - } - ptool = cur; - pargs = (struct grub_parttool_args *) -- grub_zalloc (ptool->nargs * sizeof (struct grub_parttool_args)); -+ grub_calloc (ptool->nargs, sizeof (struct grub_parttool_args)); - for (j = i; j < argc; j++) - if (! parsed[j]) - { -diff --git a/grub-core/commands/regexp.c b/grub-core/commands/regexp.c -index f00b184c8..4019164f3 100644 ---- a/grub-core/commands/regexp.c -+++ b/grub-core/commands/regexp.c -@@ -116,7 +116,7 @@ grub_cmd_regexp (grub_extcmd_context_t ctxt, int argc, char **args) - if (ret) - goto fail; - -- matches = grub_zalloc (sizeof (*matches) * (regex.re_nsub + 1)); -+ matches = grub_calloc (regex.re_nsub + 1, sizeof (*matches)); - if (! matches) - goto fail; - -diff --git a/grub-core/commands/search_wrap.c b/grub-core/commands/search_wrap.c -index d7fd26b94..47fc8eb99 100644 ---- a/grub-core/commands/search_wrap.c -+++ b/grub-core/commands/search_wrap.c -@@ -122,7 +122,7 @@ grub_cmd_search (grub_extcmd_context_t ctxt, int argc, char **args) - for (i = 0; state[SEARCH_HINT_BAREMETAL].args[i]; i++) - nhints++; - -- hints = grub_malloc (sizeof (hints[0]) * nhints); -+ hints = grub_calloc (nhints, sizeof (hints[0])); - if (!hints) - return grub_errno; - j = 0; -diff --git a/grub-core/disk/diskfilter.c b/grub-core/disk/diskfilter.c -index c3b578acf..68ca9e0be 100644 ---- a/grub-core/disk/diskfilter.c -+++ b/grub-core/disk/diskfilter.c -@@ -1134,7 +1134,7 @@ grub_diskfilter_make_raid (grub_size_t uuidlen, char *uuid, int nmemb, - array->lvs->segments->node_count = nmemb; - array->lvs->segments->raid_member_size = disk_size; - array->lvs->segments->nodes -- = grub_zalloc (nmemb * sizeof (array->lvs->segments->nodes[0])); -+ = grub_calloc (nmemb, sizeof (array->lvs->segments->nodes[0])); - array->lvs->segments->stripe_size = stripe_size; - for (i = 0; i < nmemb; i++) - { -@@ -1226,7 +1226,7 @@ insert_array (grub_disk_t disk, const struct grub_diskfilter_pv_id *id, - grub_partition_t p; - for (p = disk->partition; p; p = p->parent) - s++; -- pv->partmaps = xmalloc (s * sizeof (pv->partmaps[0])); -+ pv->partmaps = xcalloc (s, sizeof (pv->partmaps[0])); - s = 0; - for (p = disk->partition; p; p = p->parent) - pv->partmaps[s++] = xstrdup (p->partmap->name); -diff --git a/grub-core/disk/ieee1275/ofdisk.c b/grub-core/disk/ieee1275/ofdisk.c -index f73257e66..03674cb47 100644 ---- a/grub-core/disk/ieee1275/ofdisk.c -+++ b/grub-core/disk/ieee1275/ofdisk.c -@@ -297,7 +297,7 @@ dev_iterate (const struct grub_ieee1275_devalias *alias) - /* Power machines documentation specify 672 as maximum SAS disks in - one system. Using a slightly larger value to be safe. */ - table_size = 768; -- table = grub_malloc (table_size * sizeof (grub_uint64_t)); -+ table = grub_calloc (table_size, sizeof (grub_uint64_t)); - - if (!table) - { -diff --git a/grub-core/disk/ldm.c b/grub-core/disk/ldm.c -index 2a22d2d6c..e6323701a 100644 ---- a/grub-core/disk/ldm.c -+++ b/grub-core/disk/ldm.c -@@ -323,8 +323,8 @@ make_vg (grub_disk_t disk, - lv->segments->type = GRUB_DISKFILTER_MIRROR; - lv->segments->node_count = 0; - lv->segments->node_alloc = 8; -- lv->segments->nodes = grub_zalloc (sizeof (*lv->segments->nodes) -- * lv->segments->node_alloc); -+ lv->segments->nodes = grub_calloc (lv->segments->node_alloc, -+ sizeof (*lv->segments->nodes)); - if (!lv->segments->nodes) - goto fail2; - ptr = vblk[i].dynamic; -@@ -543,8 +543,8 @@ make_vg (grub_disk_t disk, - { - comp->segment_alloc = 8; - comp->segment_count = 0; -- comp->segments = grub_malloc (sizeof (*comp->segments) -- * comp->segment_alloc); -+ comp->segments = grub_calloc (comp->segment_alloc, -+ sizeof (*comp->segments)); - if (!comp->segments) - goto fail2; - } -@@ -590,8 +590,8 @@ make_vg (grub_disk_t disk, - } - comp->segments->node_count = read_int (ptr + 1, *ptr); - comp->segments->node_alloc = comp->segments->node_count; -- comp->segments->nodes = grub_zalloc (sizeof (*comp->segments->nodes) -- * comp->segments->node_alloc); -+ comp->segments->nodes = grub_calloc (comp->segments->node_alloc, -+ sizeof (*comp->segments->nodes)); - if (!lv->segments->nodes) - goto fail2; - } -@@ -1017,7 +1017,7 @@ grub_util_ldm_embed (struct grub_disk *disk, unsigned int *nsectors, - *nsectors = lv->size; - if (*nsectors > max_nsectors) - *nsectors = max_nsectors; -- *sectors = grub_malloc (*nsectors * sizeof (**sectors)); -+ *sectors = grub_calloc (*nsectors, sizeof (**sectors)); - if (!*sectors) - return grub_errno; - for (i = 0; i < *nsectors; i++) -diff --git a/grub-core/disk/luks.c b/grub-core/disk/luks.c -index 86c50c612..18b3a8bb1 100644 ---- a/grub-core/disk/luks.c -+++ b/grub-core/disk/luks.c -@@ -336,7 +336,7 @@ luks_recover_key (grub_disk_t source, - && grub_be_to_cpu32 (header.keyblock[i].stripes) > max_stripes) - max_stripes = grub_be_to_cpu32 (header.keyblock[i].stripes); - -- split_key = grub_malloc (keysize * max_stripes); -+ split_key = grub_calloc (keysize, max_stripes); - if (!split_key) - return grub_errno; - -diff --git a/grub-core/disk/lvm.c b/grub-core/disk/lvm.c -index 7b265c780..d1df640b3 100644 ---- a/grub-core/disk/lvm.c -+++ b/grub-core/disk/lvm.c -@@ -173,7 +173,7 @@ grub_lvm_detect (grub_disk_t disk, - first one. */ - - /* Allocate buffer space for the circular worst-case scenario. */ -- metadatabuf = grub_malloc (2 * mda_size); -+ metadatabuf = grub_calloc (2, mda_size); - if (! metadatabuf) - goto fail; - -@@ -426,7 +426,7 @@ grub_lvm_detect (grub_disk_t disk, - #endif - goto lvs_fail; - } -- lv->segments = grub_zalloc (sizeof (*seg) * lv->segment_count); -+ lv->segments = grub_calloc (lv->segment_count, sizeof (*seg)); - seg = lv->segments; - - for (i = 0; i < lv->segment_count; i++) -@@ -483,8 +483,8 @@ grub_lvm_detect (grub_disk_t disk, - if (seg->node_count != 1) - seg->stripe_size = grub_lvm_getvalue (&p, "stripe_size = "); - -- seg->nodes = grub_zalloc (sizeof (*stripe) -- * seg->node_count); -+ seg->nodes = grub_calloc (seg->node_count, -+ sizeof (*stripe)); - stripe = seg->nodes; - - p = grub_strstr (p, "stripes = ["); -diff --git a/grub-core/disk/xen/xendisk.c b/grub-core/disk/xen/xendisk.c -index 48476cbbf..d6612eebd 100644 ---- a/grub-core/disk/xen/xendisk.c -+++ b/grub-core/disk/xen/xendisk.c -@@ -426,7 +426,7 @@ grub_xendisk_init (void) - if (!ctr) - return; - -- virtdisks = grub_malloc (ctr * sizeof (virtdisks[0])); -+ virtdisks = grub_calloc (ctr, sizeof (virtdisks[0])); - if (!virtdisks) - return; - if (grub_xenstore_dir ("device/vbd", fill, &ctr)) -diff --git a/grub-core/efiemu/loadcore.c b/grub-core/efiemu/loadcore.c -index 44085ef81..2b924623f 100644 ---- a/grub-core/efiemu/loadcore.c -+++ b/grub-core/efiemu/loadcore.c -@@ -201,7 +201,7 @@ grub_efiemu_count_symbols (const Elf_Ehdr *e) - - grub_efiemu_nelfsyms = (unsigned) s->sh_size / (unsigned) s->sh_entsize; - grub_efiemu_elfsyms = (struct grub_efiemu_elf_sym *) -- grub_malloc (sizeof (struct grub_efiemu_elf_sym) * grub_efiemu_nelfsyms); -+ grub_calloc (grub_efiemu_nelfsyms, sizeof (struct grub_efiemu_elf_sym)); - - /* Relocators */ - for (i = 0, s = (Elf_Shdr *) ((char *) e + e->e_shoff); -diff --git a/grub-core/efiemu/mm.c b/grub-core/efiemu/mm.c -index 52a032f7b..9b8e0d0ad 100644 ---- a/grub-core/efiemu/mm.c -+++ b/grub-core/efiemu/mm.c -@@ -554,11 +554,11 @@ grub_efiemu_mmap_sort_and_uniq (void) - /* Initialize variables*/ - grub_memset (present, 0, sizeof (int) * GRUB_EFI_MAX_MEMORY_TYPE); - scanline_events = (struct grub_efiemu_mmap_scan *) -- grub_malloc (sizeof (struct grub_efiemu_mmap_scan) * 2 * mmap_num); -+ grub_calloc (mmap_num, sizeof (struct grub_efiemu_mmap_scan) * 2); - - /* Number of chunks can't increase more than by factor of 2 */ - result = (grub_efi_memory_descriptor_t *) -- grub_malloc (sizeof (grub_efi_memory_descriptor_t) * 2 * mmap_num); -+ grub_calloc (mmap_num, sizeof (grub_efi_memory_descriptor_t) * 2); - if (!result || !scanline_events) - { - grub_free (result); -@@ -660,7 +660,7 @@ grub_efiemu_mm_do_alloc (void) - - /* Preallocate mmap */ - efiemu_mmap = (grub_efi_memory_descriptor_t *) -- grub_malloc (mmap_reserved_size * sizeof (grub_efi_memory_descriptor_t)); -+ grub_calloc (mmap_reserved_size, sizeof (grub_efi_memory_descriptor_t)); - if (!efiemu_mmap) - { - grub_efiemu_unload (); -diff --git a/grub-core/font/font.c b/grub-core/font/font.c -index 85a292557..8e118b315 100644 ---- a/grub-core/font/font.c -+++ b/grub-core/font/font.c -@@ -293,8 +293,7 @@ load_font_index (grub_file_t file, grub_uint32_t sect_length, struct - font->num_chars = sect_length / FONT_CHAR_INDEX_ENTRY_SIZE; - - /* Allocate the character index array. */ -- font->char_index = grub_malloc (font->num_chars -- * sizeof (struct char_index_entry)); -+ font->char_index = grub_calloc (font->num_chars, sizeof (struct char_index_entry)); - if (!font->char_index) - return 1; - font->bmp_idx = grub_malloc (0x10000 * sizeof (grub_uint16_t)); -diff --git a/grub-core/fs/affs.c b/grub-core/fs/affs.c -index 6b6a2bc91..220b3712f 100644 ---- a/grub-core/fs/affs.c -+++ b/grub-core/fs/affs.c -@@ -301,7 +301,7 @@ grub_affs_read_symlink (grub_fshelp_node_t node) - return 0; - } - latin1[symlink_size] = 0; -- utf8 = grub_malloc (symlink_size * GRUB_MAX_UTF8_PER_LATIN1 + 1); -+ utf8 = grub_calloc (GRUB_MAX_UTF8_PER_LATIN1 + 1, symlink_size); - if (!utf8) - { - grub_free (latin1); -@@ -422,7 +422,7 @@ grub_affs_iterate_dir (grub_fshelp_node_t dir, - return 1; - } - -- hashtable = grub_zalloc (data->htsize * sizeof (*hashtable)); -+ hashtable = grub_calloc (data->htsize, sizeof (*hashtable)); - if (!hashtable) - return 1; - -@@ -628,7 +628,7 @@ grub_affs_label (grub_device_t device, char **label) - len = file.namelen; - if (len > sizeof (file.name)) - len = sizeof (file.name); -- *label = grub_malloc (len * GRUB_MAX_UTF8_PER_LATIN1 + 1); -+ *label = grub_calloc (GRUB_MAX_UTF8_PER_LATIN1 + 1, len); - if (*label) - *grub_latin1_to_utf8 ((grub_uint8_t *) *label, file.name, len) = '\0'; - } -diff --git a/grub-core/fs/btrfs.c b/grub-core/fs/btrfs.c -index 63f9657a6..4b8380439 100644 ---- a/grub-core/fs/btrfs.c -+++ b/grub-core/fs/btrfs.c -@@ -415,7 +415,7 @@ lower_bound (struct grub_btrfs_data *data, - { - desc->allocated = 16; - desc->depth = 0; -- desc->data = grub_malloc (sizeof (desc->data[0]) * desc->allocated); -+ desc->data = grub_calloc (desc->allocated, sizeof (desc->data[0])); - if (!desc->data) - return grub_errno; - } -@@ -754,7 +754,7 @@ raid56_read_retry (struct grub_btrfs_data *data, - grub_err_t ret = GRUB_ERR_OUT_OF_MEMORY; - grub_uint64_t i, failed_devices; - -- buffers = grub_zalloc (sizeof(*buffers) * nstripes); -+ buffers = grub_calloc (nstripes, sizeof (*buffers)); - if (!buffers) - goto cleanup; - -@@ -2167,7 +2167,7 @@ grub_btrfs_embed (grub_device_t device __attribute__ ((unused)), - *nsectors = 64 * 2 - 1; - if (*nsectors > max_nsectors) - *nsectors = max_nsectors; -- *sectors = grub_malloc (*nsectors * sizeof (**sectors)); -+ *sectors = grub_calloc (*nsectors, sizeof (**sectors)); - if (!*sectors) - return grub_errno; - for (i = 0; i < *nsectors; i++) -diff --git a/grub-core/fs/hfs.c b/grub-core/fs/hfs.c -index ac0a40990..3fe842b4d 100644 ---- a/grub-core/fs/hfs.c -+++ b/grub-core/fs/hfs.c -@@ -1360,7 +1360,7 @@ grub_hfs_label (grub_device_t device, char **label) - grub_size_t len = data->sblock.volname[0]; - if (len > sizeof (data->sblock.volname) - 1) - len = sizeof (data->sblock.volname) - 1; -- *label = grub_malloc (len * MAX_UTF8_PER_MAC_ROMAN + 1); -+ *label = grub_calloc (MAX_UTF8_PER_MAC_ROMAN + 1, len); - if (*label) - macroman_to_utf8 (*label, data->sblock.volname + 1, - len + 1, 0); -diff --git a/grub-core/fs/hfsplus.c b/grub-core/fs/hfsplus.c -index 54786bb1c..dae43becc 100644 ---- a/grub-core/fs/hfsplus.c -+++ b/grub-core/fs/hfsplus.c -@@ -720,7 +720,7 @@ list_nodes (void *record, void *hook_arg) - if (! filename) - return 0; - -- keyname = grub_malloc (grub_be_to_cpu16 (catkey->namelen) * sizeof (*keyname)); -+ keyname = grub_calloc (grub_be_to_cpu16 (catkey->namelen), sizeof (*keyname)); - if (!keyname) - { - grub_free (filename); -@@ -1007,7 +1007,7 @@ grub_hfsplus_label (grub_device_t device, char **label) - grub_hfsplus_btree_recptr (&data->catalog_tree, node, ptr); - - label_len = grub_be_to_cpu16 (catkey->namelen); -- label_name = grub_malloc (label_len * sizeof (*label_name)); -+ label_name = grub_calloc (label_len, sizeof (*label_name)); - if (!label_name) - { - grub_free (node); -@@ -1029,7 +1029,7 @@ grub_hfsplus_label (grub_device_t device, char **label) - } - } - -- *label = grub_malloc (label_len * GRUB_MAX_UTF8_PER_UTF16 + 1); -+ *label = grub_calloc (label_len, GRUB_MAX_UTF8_PER_UTF16 + 1); - if (! *label) - { - grub_free (label_name); -diff --git a/grub-core/fs/iso9660.c b/grub-core/fs/iso9660.c -index 49c0c632b..4f1b52a55 100644 ---- a/grub-core/fs/iso9660.c -+++ b/grub-core/fs/iso9660.c -@@ -331,7 +331,7 @@ grub_iso9660_convert_string (grub_uint8_t *us, int len) - int i; - grub_uint16_t t[MAX_NAMELEN / 2 + 1]; - -- p = grub_malloc (len * GRUB_MAX_UTF8_PER_UTF16 + 1); -+ p = grub_calloc (len, GRUB_MAX_UTF8_PER_UTF16 + 1); - if (! p) - return NULL; - -diff --git a/grub-core/fs/ntfs.c b/grub-core/fs/ntfs.c -index fc4e1f678..2f34f76da 100644 ---- a/grub-core/fs/ntfs.c -+++ b/grub-core/fs/ntfs.c -@@ -556,8 +556,8 @@ get_utf8 (grub_uint8_t *in, grub_size_t len) - grub_uint16_t *tmp; - grub_size_t i; - -- buf = grub_malloc (len * GRUB_MAX_UTF8_PER_UTF16 + 1); -- tmp = grub_malloc (len * sizeof (tmp[0])); -+ buf = grub_calloc (len, GRUB_MAX_UTF8_PER_UTF16 + 1); -+ tmp = grub_calloc (len, sizeof (tmp[0])); - if (!buf || !tmp) - { - grub_free (buf); -diff --git a/grub-core/fs/sfs.c b/grub-core/fs/sfs.c -index 50c1fe72f..90f7fb379 100644 ---- a/grub-core/fs/sfs.c -+++ b/grub-core/fs/sfs.c -@@ -266,7 +266,7 @@ grub_sfs_read_block (grub_fshelp_node_t node, grub_disk_addr_t fileblock) - node->next_extent = node->block; - node->cache_size = 0; - -- node->cache = grub_malloc (sizeof (node->cache[0]) * cache_size); -+ node->cache = grub_calloc (cache_size, sizeof (node->cache[0])); - if (!node->cache) - { - grub_errno = 0; -diff --git a/grub-core/fs/tar.c b/grub-core/fs/tar.c -index 7d63e0c99..c551ed6b5 100644 ---- a/grub-core/fs/tar.c -+++ b/grub-core/fs/tar.c -@@ -120,7 +120,7 @@ grub_cpio_find_file (struct grub_archelp_data *data, char **name, - if (data->linkname_alloc < linksize + 1) - { - char *n; -- n = grub_malloc (2 * (linksize + 1)); -+ n = grub_calloc (2, linksize + 1); - if (!n) - return grub_errno; - grub_free (data->linkname); -diff --git a/grub-core/fs/udf.c b/grub-core/fs/udf.c -index dc8b6e2d1..a83761674 100644 ---- a/grub-core/fs/udf.c -+++ b/grub-core/fs/udf.c -@@ -873,7 +873,7 @@ read_string (const grub_uint8_t *raw, grub_size_t sz, char *outbuf) - { - unsigned i; - utf16len = sz - 1; -- utf16 = grub_malloc (utf16len * sizeof (utf16[0])); -+ utf16 = grub_calloc (utf16len, sizeof (utf16[0])); - if (!utf16) - return NULL; - for (i = 0; i < utf16len; i++) -@@ -883,7 +883,7 @@ read_string (const grub_uint8_t *raw, grub_size_t sz, char *outbuf) - { - unsigned i; - utf16len = (sz - 1) / 2; -- utf16 = grub_malloc (utf16len * sizeof (utf16[0])); -+ utf16 = grub_calloc (utf16len, sizeof (utf16[0])); - if (!utf16) - return NULL; - for (i = 0; i < utf16len; i++) -diff --git a/grub-core/fs/zfs/zfs.c b/grub-core/fs/zfs/zfs.c -index 2f72e42bf..381dde556 100644 ---- a/grub-core/fs/zfs/zfs.c -+++ b/grub-core/fs/zfs/zfs.c -@@ -3325,7 +3325,7 @@ dnode_get_fullpath (const char *fullpath, struct subvolume *subvol, - } - subvol->nkeys = 0; - zap_iterate (&keychain_dn, 8, count_zap_keys, &ctx, data); -- subvol->keyring = grub_zalloc (subvol->nkeys * sizeof (subvol->keyring[0])); -+ subvol->keyring = grub_calloc (subvol->nkeys, sizeof (subvol->keyring[0])); - if (!subvol->keyring) - { - grub_free (fsname); -@@ -4336,7 +4336,7 @@ grub_zfs_embed (grub_device_t device __attribute__ ((unused)), - *nsectors = (VDEV_BOOT_SIZE >> GRUB_DISK_SECTOR_BITS); - if (*nsectors > max_nsectors) - *nsectors = max_nsectors; -- *sectors = grub_malloc (*nsectors * sizeof (**sectors)); -+ *sectors = grub_calloc (*nsectors, sizeof (**sectors)); - if (!*sectors) - return grub_errno; - for (i = 0; i < *nsectors; i++) -diff --git a/grub-core/gfxmenu/gui_string_util.c b/grub-core/gfxmenu/gui_string_util.c -index a9a415e31..ba1e1eab3 100644 ---- a/grub-core/gfxmenu/gui_string_util.c -+++ b/grub-core/gfxmenu/gui_string_util.c -@@ -55,7 +55,7 @@ canonicalize_path (const char *path) - if (*p == '/') - components++; - -- char **path_array = grub_malloc (components * sizeof (*path_array)); -+ char **path_array = grub_calloc (components, sizeof (*path_array)); - if (! path_array) - return 0; - -diff --git a/grub-core/gfxmenu/widget-box.c b/grub-core/gfxmenu/widget-box.c -index b60602889..470597ded 100644 ---- a/grub-core/gfxmenu/widget-box.c -+++ b/grub-core/gfxmenu/widget-box.c -@@ -303,10 +303,10 @@ grub_gfxmenu_create_box (const char *pixmaps_prefix, - box->content_height = 0; - box->raw_pixmaps = - (struct grub_video_bitmap **) -- grub_malloc (BOX_NUM_PIXMAPS * sizeof (struct grub_video_bitmap *)); -+ grub_calloc (BOX_NUM_PIXMAPS, sizeof (struct grub_video_bitmap *)); - box->scaled_pixmaps = - (struct grub_video_bitmap **) -- grub_malloc (BOX_NUM_PIXMAPS * sizeof (struct grub_video_bitmap *)); -+ grub_calloc (BOX_NUM_PIXMAPS, sizeof (struct grub_video_bitmap *)); - - /* Initialize all pixmap pointers to NULL so that proper destruction can - be performed if an error is encountered partway through construction. */ -diff --git a/grub-core/io/gzio.c b/grub-core/io/gzio.c -index 6208a9763..43d98a7bd 100644 ---- a/grub-core/io/gzio.c -+++ b/grub-core/io/gzio.c -@@ -554,7 +554,7 @@ huft_build (unsigned *b, /* code lengths in bits (all assumed <= BMAX) */ - z = 1 << j; /* table entries for j-bit table */ - - /* allocate and link in new table */ -- q = (struct huft *) grub_zalloc ((z + 1) * sizeof (struct huft)); -+ q = (struct huft *) grub_calloc (z + 1, sizeof (struct huft)); - if (! q) - { - if (h) -diff --git a/grub-core/kern/efi/efi.c b/grub-core/kern/efi/efi.c -index 96204e39b..ad170c7ce 100644 ---- a/grub-core/kern/efi/efi.c -+++ b/grub-core/kern/efi/efi.c -@@ -202,7 +202,7 @@ grub_efi_set_variable(const char *var, const grub_efi_guid_t *guid, - - len = grub_strlen (var); - len16 = len * GRUB_MAX_UTF16_PER_UTF8; -- var16 = grub_malloc ((len16 + 1) * sizeof (var16[0])); -+ var16 = grub_calloc (len16 + 1, sizeof (var16[0])); - if (!var16) - return grub_errno; - len16 = grub_utf8_to_utf16 (var16, len16, (grub_uint8_t *) var, len, NULL); -@@ -237,7 +237,7 @@ grub_efi_get_variable (const char *var, const grub_efi_guid_t *guid, - - len = grub_strlen (var); - len16 = len * GRUB_MAX_UTF16_PER_UTF8; -- var16 = grub_malloc ((len16 + 1) * sizeof (var16[0])); -+ var16 = grub_calloc (len16 + 1, sizeof (var16[0])); - if (!var16) - return NULL; - len16 = grub_utf8_to_utf16 (var16, len16, (grub_uint8_t *) var, len, NULL); -@@ -411,7 +411,7 @@ grub_efi_get_filename (grub_efi_device_path_t *dp0) - while (len > 0 && fp->path_name[len - 1] == 0) - len--; - -- dup_name = grub_malloc (len * sizeof (*dup_name)); -+ dup_name = grub_calloc (len, sizeof (*dup_name)); - if (!dup_name) - { - grub_free (name); -diff --git a/grub-core/kern/emu/hostdisk.c b/grub-core/kern/emu/hostdisk.c -index 8ac523953..f90b6c9ce 100644 ---- a/grub-core/kern/emu/hostdisk.c -+++ b/grub-core/kern/emu/hostdisk.c -@@ -627,7 +627,7 @@ static char * - grub_util_path_concat_real (size_t n, int ext, va_list ap) - { - size_t totlen = 0; -- char **l = xmalloc ((n + ext) * sizeof (l[0])); -+ char **l = xcalloc (n + ext, sizeof (l[0])); - char *r, *p, *pi; - size_t i; - int first = 1; -diff --git a/grub-core/kern/fs.c b/grub-core/kern/fs.c -index 2b85f4950..f90be6566 100644 ---- a/grub-core/kern/fs.c -+++ b/grub-core/kern/fs.c -@@ -151,7 +151,7 @@ grub_fs_blocklist_open (grub_file_t file, const char *name) - while (p); - - /* Allocate a block list. */ -- blocks = grub_zalloc (sizeof (struct grub_fs_block) * (num + 1)); -+ blocks = grub_calloc (num + 1, sizeof (struct grub_fs_block)); - if (! blocks) - return 0; - -diff --git a/grub-core/kern/misc.c b/grub-core/kern/misc.c -index 18cad5803..83c068d61 100644 ---- a/grub-core/kern/misc.c -+++ b/grub-core/kern/misc.c -@@ -691,7 +691,7 @@ parse_printf_args (const char *fmt0, struct printf_args *args, - args->ptr = args->prealloc; - else - { -- args->ptr = grub_malloc (args->count * sizeof (args->ptr[0])); -+ args->ptr = grub_calloc (args->count, sizeof (args->ptr[0])); - if (!args->ptr) - { - grub_errno = GRUB_ERR_NONE; -diff --git a/grub-core/kern/parser.c b/grub-core/kern/parser.c -index 78175aac2..619db3122 100644 ---- a/grub-core/kern/parser.c -+++ b/grub-core/kern/parser.c -@@ -213,7 +213,7 @@ grub_parser_split_cmdline (const char *cmdline, - return grub_errno; - grub_memcpy (args, buffer, bp - buffer); - -- *argv = grub_malloc (sizeof (char *) * (*argc + 1)); -+ *argv = grub_calloc (*argc + 1, sizeof (char *)); - if (!*argv) - { - grub_free (args); -diff --git a/grub-core/kern/uboot/uboot.c b/grub-core/kern/uboot/uboot.c -index be4816fe6..aac8f9ae1 100644 ---- a/grub-core/kern/uboot/uboot.c -+++ b/grub-core/kern/uboot/uboot.c -@@ -133,7 +133,7 @@ grub_uboot_dev_enum (void) - return num_devices; - - max_devices = 2; -- enum_devices = grub_malloc (sizeof(struct device_info) * max_devices); -+ enum_devices = grub_calloc (max_devices, sizeof(struct device_info)); - if (!enum_devices) - return 0; - -diff --git a/grub-core/lib/libgcrypt/cipher/ac.c b/grub-core/lib/libgcrypt/cipher/ac.c -index f5e946a2d..63f6fcd11 100644 ---- a/grub-core/lib/libgcrypt/cipher/ac.c -+++ b/grub-core/lib/libgcrypt/cipher/ac.c -@@ -185,7 +185,7 @@ ac_data_mpi_copy (gcry_ac_mpi_t *data_mpis, unsigned int data_mpis_n, - gcry_mpi_t mpi; - char *label; - -- data_mpis_new = gcry_malloc (sizeof (*data_mpis_new) * data_mpis_n); -+ data_mpis_new = gcry_calloc (data_mpis_n, sizeof (*data_mpis_new)); - if (! data_mpis_new) - { - err = gcry_error_from_errno (errno); -@@ -572,7 +572,7 @@ _gcry_ac_data_to_sexp (gcry_ac_data_t data, gcry_sexp_t *sexp, - } - - /* Add MPI list. */ -- arg_list = gcry_malloc (sizeof (*arg_list) * (data_n + 1)); -+ arg_list = gcry_calloc (data_n + 1, sizeof (*arg_list)); - if (! arg_list) - { - err = gcry_error_from_errno (errno); -@@ -1283,7 +1283,7 @@ ac_data_construct (const char *identifier, int include_flags, - /* We build a list of arguments to pass to - gcry_sexp_build_array(). */ - data_length = _gcry_ac_data_length (data); -- arg_list = gcry_malloc (sizeof (*arg_list) * (data_length * 2)); -+ arg_list = gcry_calloc (data_length, sizeof (*arg_list) * 2); - if (! arg_list) - { - err = gcry_error_from_errno (errno); -@@ -1593,7 +1593,7 @@ _gcry_ac_key_pair_generate (gcry_ac_handle_t handle, unsigned int nbits, - arg_list_n += 2; - - /* Allocate list. */ -- arg_list = gcry_malloc (sizeof (*arg_list) * arg_list_n); -+ arg_list = gcry_calloc (arg_list_n, sizeof (*arg_list)); - if (! arg_list) - { - err = gcry_error_from_errno (errno); -diff --git a/grub-core/lib/libgcrypt/cipher/primegen.c b/grub-core/lib/libgcrypt/cipher/primegen.c -index 2788e349f..b12e79b19 100644 ---- a/grub-core/lib/libgcrypt/cipher/primegen.c -+++ b/grub-core/lib/libgcrypt/cipher/primegen.c -@@ -383,7 +383,7 @@ prime_generate_internal (int need_q_factor, - } - - /* Allocate an array to track pool usage. */ -- pool_in_use = gcry_malloc (n * sizeof *pool_in_use); -+ pool_in_use = gcry_calloc (n, sizeof *pool_in_use); - if (!pool_in_use) - { - err = gpg_err_code_from_errno (errno); -@@ -765,7 +765,7 @@ gen_prime (unsigned int nbits, int secret, int randomlevel, - if (nbits < 16) - log_fatal ("can't generate a prime with less than %d bits\n", 16); - -- mods = gcry_xmalloc( no_of_small_prime_numbers * sizeof *mods ); -+ mods = gcry_xcalloc( no_of_small_prime_numbers, sizeof *mods); - /* Make nbits fit into gcry_mpi_t implementation. */ - val_2 = mpi_alloc_set_ui( 2 ); - val_3 = mpi_alloc_set_ui( 3); -diff --git a/grub-core/lib/libgcrypt/cipher/pubkey.c b/grub-core/lib/libgcrypt/cipher/pubkey.c -index 910982141..ca087ad75 100644 ---- a/grub-core/lib/libgcrypt/cipher/pubkey.c -+++ b/grub-core/lib/libgcrypt/cipher/pubkey.c -@@ -2941,7 +2941,7 @@ gcry_pk_encrypt (gcry_sexp_t *r_ciph, gcry_sexp_t s_data, gcry_sexp_t s_pkey) - * array to a format string, so we have to do it this way :-(. */ - /* FIXME: There is now such a format specifier, so we can - change the code to be more clear. */ -- arg_list = malloc (nelem * sizeof *arg_list); -+ arg_list = calloc (nelem, sizeof *arg_list); - if (!arg_list) - { - rc = gpg_err_code_from_syserror (); -@@ -3233,7 +3233,7 @@ gcry_pk_sign (gcry_sexp_t *r_sig, gcry_sexp_t s_hash, gcry_sexp_t s_skey) - } - strcpy (p, "))"); - -- arg_list = malloc (nelem * sizeof *arg_list); -+ arg_list = calloc (nelem, sizeof *arg_list); - if (!arg_list) - { - rc = gpg_err_code_from_syserror (); -diff --git a/grub-core/lib/priority_queue.c b/grub-core/lib/priority_queue.c -index 659be0b7f..7d5e7c05a 100644 ---- a/grub-core/lib/priority_queue.c -+++ b/grub-core/lib/priority_queue.c -@@ -92,7 +92,7 @@ grub_priority_queue_new (grub_size_t elsize, - { - struct grub_priority_queue *ret; - void *els; -- els = grub_malloc (elsize * 8); -+ els = grub_calloc (8, elsize); - if (!els) - return 0; - ret = (struct grub_priority_queue *) grub_malloc (sizeof (*ret)); -diff --git a/grub-core/lib/reed_solomon.c b/grub-core/lib/reed_solomon.c -index ee9fa7b4f..467305b46 100644 ---- a/grub-core/lib/reed_solomon.c -+++ b/grub-core/lib/reed_solomon.c -@@ -20,6 +20,7 @@ - #include - #include - #include -+#define xcalloc calloc - #define xmalloc malloc - #define grub_memset memset - #define grub_memcpy memcpy -@@ -158,11 +159,9 @@ rs_encode (gf_single_t *data, grub_size_t s, grub_size_t rs) - gf_single_t *rs_polynomial; - int i, j; - gf_single_t *m; -- m = xmalloc ((s + rs) * sizeof (gf_single_t)); -+ m = xcalloc (s + rs, sizeof (gf_single_t)); - grub_memcpy (m, data, s * sizeof (gf_single_t)); -- grub_memset (m + s, 0, rs * sizeof (gf_single_t)); -- rs_polynomial = xmalloc ((rs + 1) * sizeof (gf_single_t)); -- grub_memset (rs_polynomial, 0, (rs + 1) * sizeof (gf_single_t)); -+ rs_polynomial = xcalloc (rs + 1, sizeof (gf_single_t)); - rs_polynomial[rs] = 1; - /* Multiply with X - a^r */ - for (j = 0; j < rs; j++) -diff --git a/grub-core/lib/relocator.c b/grub-core/lib/relocator.c -index ea3ebc719..5847aac36 100644 ---- a/grub-core/lib/relocator.c -+++ b/grub-core/lib/relocator.c -@@ -495,9 +495,9 @@ malloc_in_range (struct grub_relocator *rel, - } - #endif - -- eventt = grub_malloc (maxevents * sizeof (events[0])); -+ eventt = grub_calloc (maxevents, sizeof (events[0])); - counter = grub_malloc ((DIGITSORT_MASK + 2) * sizeof (counter[0])); -- events = grub_malloc (maxevents * sizeof (events[0])); -+ events = grub_calloc (maxevents, sizeof (events[0])); - if (!events || !eventt || !counter) - { - grub_dprintf ("relocator", "events or counter allocation failed %d\n", -@@ -963,7 +963,7 @@ malloc_in_range (struct grub_relocator *rel, - #endif - unsigned cural = 0; - int oom = 0; -- res->subchunks = grub_malloc (sizeof (res->subchunks[0]) * nallocs); -+ res->subchunks = grub_calloc (nallocs, sizeof (res->subchunks[0])); - if (!res->subchunks) - oom = 1; - res->nsubchunks = nallocs; -@@ -1562,8 +1562,8 @@ grub_relocator_prepare_relocs (struct grub_relocator *rel, grub_addr_t addr, - count[(chunk->src & 0xff) + 1]++; - } - } -- from = grub_malloc (nchunks * sizeof (sorted[0])); -- to = grub_malloc (nchunks * sizeof (sorted[0])); -+ from = grub_calloc (nchunks, sizeof (sorted[0])); -+ to = grub_calloc (nchunks, sizeof (sorted[0])); - if (!from || !to) - { - grub_free (from); -diff --git a/grub-core/lib/zstd/fse_decompress.c b/grub-core/lib/zstd/fse_decompress.c -index 72bbead5b..2227b84bc 100644 ---- a/grub-core/lib/zstd/fse_decompress.c -+++ b/grub-core/lib/zstd/fse_decompress.c -@@ -82,7 +82,7 @@ - FSE_DTable* FSE_createDTable (unsigned tableLog) - { - if (tableLog > FSE_TABLELOG_ABSOLUTE_MAX) tableLog = FSE_TABLELOG_ABSOLUTE_MAX; -- return (FSE_DTable*)malloc( FSE_DTABLE_SIZE_U32(tableLog) * sizeof (U32) ); -+ return (FSE_DTable*)calloc( FSE_DTABLE_SIZE_U32(tableLog), sizeof (U32) ); - } - - void FSE_freeDTable (FSE_DTable* dt) -diff --git a/grub-core/loader/arm/linux.c b/grub-core/loader/arm/linux.c -index 092e8e307..979d425df 100644 ---- a/grub-core/loader/arm/linux.c -+++ b/grub-core/loader/arm/linux.c -@@ -82,7 +82,7 @@ linux_prepare_atag (void *target_atag) - - /* some place for cmdline, initrd and terminator. */ - tmp_size = get_atag_size (atag_orig) + 20 + (arg_size) / 4; -- tmp_atag = grub_malloc (tmp_size * sizeof (grub_uint32_t)); -+ tmp_atag = grub_calloc (tmp_size, sizeof (grub_uint32_t)); - if (!tmp_atag) - return grub_errno; - -diff --git a/grub-core/loader/efi/chainloader.c b/grub-core/loader/efi/chainloader.c -index cd92ea3f2..daf8c6b54 100644 ---- a/grub-core/loader/efi/chainloader.c -+++ b/grub-core/loader/efi/chainloader.c -@@ -116,7 +116,7 @@ copy_file_path (grub_efi_file_path_device_path_t *fp, - fp->header.type = GRUB_EFI_MEDIA_DEVICE_PATH_TYPE; - fp->header.subtype = GRUB_EFI_FILE_PATH_DEVICE_PATH_SUBTYPE; - -- path_name = grub_malloc (len * GRUB_MAX_UTF16_PER_UTF8 * sizeof (*path_name)); -+ path_name = grub_calloc (len, GRUB_MAX_UTF16_PER_UTF8 * sizeof (*path_name)); - if (!path_name) - return; - -diff --git a/grub-core/loader/i386/bsdXX.c b/grub-core/loader/i386/bsdXX.c -index af6741d15..a8d8bf7da 100644 ---- a/grub-core/loader/i386/bsdXX.c -+++ b/grub-core/loader/i386/bsdXX.c -@@ -48,7 +48,7 @@ read_headers (grub_file_t file, const char *filename, Elf_Ehdr *e, char **shdr) - if (e->e_ident[EI_CLASS] != SUFFIX (ELFCLASS)) - return grub_error (GRUB_ERR_BAD_OS, N_("invalid arch-dependent ELF magic")); - -- *shdr = grub_malloc ((grub_uint32_t) e->e_shnum * e->e_shentsize); -+ *shdr = grub_calloc (e->e_shnum, e->e_shentsize); - if (! *shdr) - return grub_errno; - -diff --git a/grub-core/loader/i386/xnu.c b/grub-core/loader/i386/xnu.c -index e64ed08f5..b7d176b5d 100644 ---- a/grub-core/loader/i386/xnu.c -+++ b/grub-core/loader/i386/xnu.c -@@ -295,7 +295,7 @@ grub_xnu_devprop_add_property_utf8 (struct grub_xnu_devprop_device_descriptor *d - return grub_errno; - - len = grub_strlen (name); -- utf16 = grub_malloc (sizeof (grub_uint16_t) * len); -+ utf16 = grub_calloc (len, sizeof (grub_uint16_t)); - if (!utf16) - { - grub_free (utf8); -@@ -331,7 +331,7 @@ grub_xnu_devprop_add_property_utf16 (struct grub_xnu_devprop_device_descriptor * - grub_uint16_t *utf16; - grub_err_t err; - -- utf16 = grub_malloc (sizeof (grub_uint16_t) * namelen); -+ utf16 = grub_calloc (namelen, sizeof (grub_uint16_t)); - if (!utf16) - return grub_errno; - grub_memcpy (utf16, name, sizeof (grub_uint16_t) * namelen); -diff --git a/grub-core/loader/macho.c b/grub-core/loader/macho.c -index 085f9c689..05710c48e 100644 ---- a/grub-core/loader/macho.c -+++ b/grub-core/loader/macho.c -@@ -97,7 +97,7 @@ grub_macho_file (grub_file_t file, const char *filename, int is_64bit) - if (grub_file_seek (macho->file, sizeof (struct grub_macho_fat_header)) - == (grub_off_t) -1) - goto fail; -- archs = grub_malloc (sizeof (struct grub_macho_fat_arch) * narchs); -+ archs = grub_calloc (narchs, sizeof (struct grub_macho_fat_arch)); - if (!archs) - goto fail; - if (grub_file_read (macho->file, archs, -diff --git a/grub-core/loader/multiboot_elfxx.c b/grub-core/loader/multiboot_elfxx.c -index 70cd1db51..cc6853692 100644 ---- a/grub-core/loader/multiboot_elfxx.c -+++ b/grub-core/loader/multiboot_elfxx.c -@@ -217,7 +217,7 @@ CONCAT(grub_multiboot_load_elf, XX) (mbi_load_data_t *mld) - { - grub_uint8_t *shdr, *shdrptr; - -- shdr = grub_malloc ((grub_uint32_t) ehdr->e_shnum * ehdr->e_shentsize); -+ shdr = grub_calloc (ehdr->e_shnum, ehdr->e_shentsize); - if (!shdr) - return grub_errno; - -diff --git a/grub-core/loader/xnu.c b/grub-core/loader/xnu.c -index 7f74d1d6f..77d7060e1 100644 ---- a/grub-core/loader/xnu.c -+++ b/grub-core/loader/xnu.c -@@ -800,7 +800,7 @@ grub_cmd_xnu_mkext (grub_command_t cmd __attribute__ ((unused)), - if (grub_be_to_cpu32 (head.magic) == GRUB_MACHO_FAT_MAGIC) - { - narchs = grub_be_to_cpu32 (head.nfat_arch); -- archs = grub_malloc (sizeof (struct grub_macho_fat_arch) * narchs); -+ archs = grub_calloc (narchs, sizeof (struct grub_macho_fat_arch)); - if (! archs) - { - grub_file_close (file); -diff --git a/grub-core/mmap/mmap.c b/grub-core/mmap/mmap.c -index 6a31cbae3..57b4e9a72 100644 ---- a/grub-core/mmap/mmap.c -+++ b/grub-core/mmap/mmap.c -@@ -143,9 +143,9 @@ grub_mmap_iterate (grub_memory_hook_t hook, void *hook_data) - - /* Initialize variables. */ - ctx.scanline_events = (struct grub_mmap_scan *) -- grub_malloc (sizeof (struct grub_mmap_scan) * 2 * mmap_num); -+ grub_calloc (mmap_num, sizeof (struct grub_mmap_scan) * 2); - -- present = grub_zalloc (sizeof (present[0]) * current_priority); -+ present = grub_calloc (current_priority, sizeof (present[0])); - - if (! ctx.scanline_events || !present) - { -diff --git a/grub-core/net/bootp.c b/grub-core/net/bootp.c -index 558d97ba1..dd0ffcdae 100644 ---- a/grub-core/net/bootp.c -+++ b/grub-core/net/bootp.c -@@ -1559,7 +1559,7 @@ grub_cmd_bootp (struct grub_command *cmd __attribute__ ((unused)), - if (ncards == 0) - return grub_error (GRUB_ERR_NET_NO_CARD, N_("no network card found")); - -- ifaces = grub_zalloc (ncards * sizeof (ifaces[0])); -+ ifaces = grub_calloc (ncards, sizeof (ifaces[0])); - if (!ifaces) - return grub_errno; - -diff --git a/grub-core/net/dns.c b/grub-core/net/dns.c -index 5d9afe093..e332d5eb4 100644 ---- a/grub-core/net/dns.c -+++ b/grub-core/net/dns.c -@@ -285,8 +285,8 @@ recv_hook (grub_net_udp_socket_t sock __attribute__ ((unused)), - ptr++; - ptr += 4; - } -- *data->addresses = grub_malloc (sizeof ((*data->addresses)[0]) -- * grub_be_to_cpu16 (head->ancount)); -+ *data->addresses = grub_calloc (grub_be_to_cpu16 (head->ancount), -+ sizeof ((*data->addresses)[0])); - if (!*data->addresses) - { - grub_errno = GRUB_ERR_NONE; -@@ -406,8 +406,8 @@ recv_hook (grub_net_udp_socket_t sock __attribute__ ((unused)), - dns_cache[h].addresses = 0; - dns_cache[h].name = grub_strdup (data->oname); - dns_cache[h].naddresses = *data->naddresses; -- dns_cache[h].addresses = grub_malloc (*data->naddresses -- * sizeof (dns_cache[h].addresses[0])); -+ dns_cache[h].addresses = grub_calloc (*data->naddresses, -+ sizeof (dns_cache[h].addresses[0])); - dns_cache[h].limit_time = grub_get_time_ms () + 1000 * ttl_all; - if (!dns_cache[h].addresses || !dns_cache[h].name) - { -@@ -479,7 +479,7 @@ grub_net_dns_lookup (const char *name, - } - } - -- sockets = grub_malloc (sizeof (sockets[0]) * n_servers); -+ sockets = grub_calloc (n_servers, sizeof (sockets[0])); - if (!sockets) - return grub_errno; - -diff --git a/grub-core/net/net.c b/grub-core/net/net.c -index b917a75d5..fed7bc57c 100644 ---- a/grub-core/net/net.c -+++ b/grub-core/net/net.c -@@ -333,8 +333,8 @@ grub_cmd_ipv6_autoconf (struct grub_command *cmd __attribute__ ((unused)), - ncards++; - } - -- ifaces = grub_zalloc (ncards * sizeof (ifaces[0])); -- slaacs = grub_zalloc (ncards * sizeof (slaacs[0])); -+ ifaces = grub_calloc (ncards, sizeof (ifaces[0])); -+ slaacs = grub_calloc (ncards, sizeof (slaacs[0])); - if (!ifaces || !slaacs) - { - grub_free (ifaces); -diff --git a/grub-core/normal/charset.c b/grub-core/normal/charset.c -index b0ab47d73..d57fb72fa 100644 ---- a/grub-core/normal/charset.c -+++ b/grub-core/normal/charset.c -@@ -203,7 +203,7 @@ grub_utf8_to_ucs4_alloc (const char *msg, grub_uint32_t **unicode_msg, - { - grub_size_t msg_len = grub_strlen (msg); - -- *unicode_msg = grub_malloc (msg_len * sizeof (grub_uint32_t)); -+ *unicode_msg = grub_calloc (msg_len, sizeof (grub_uint32_t)); - - if (!*unicode_msg) - return -1; -@@ -488,7 +488,7 @@ grub_unicode_aglomerate_comb (const grub_uint32_t *in, grub_size_t inlen, - } - else - { -- n = grub_malloc (sizeof (n[0]) * (out->ncomb + 1)); -+ n = grub_calloc (out->ncomb + 1, sizeof (n[0])); - if (!n) - { - grub_errno = GRUB_ERR_NONE; -@@ -842,7 +842,7 @@ grub_bidi_line_logical_to_visual (const grub_uint32_t *logical, - } \ - } - -- visual = grub_malloc (sizeof (visual[0]) * logical_len); -+ visual = grub_calloc (logical_len, sizeof (visual[0])); - if (!visual) - return -1; - -@@ -1165,8 +1165,8 @@ grub_bidi_logical_to_visual (const grub_uint32_t *logical, - { - const grub_uint32_t *line_start = logical, *ptr; - struct grub_unicode_glyph *visual_ptr; -- *visual_out = visual_ptr = grub_malloc (3 * sizeof (visual_ptr[0]) -- * (logical_len + 2)); -+ *visual_out = visual_ptr = grub_calloc (logical_len + 2, -+ 3 * sizeof (visual_ptr[0])); - if (!visual_ptr) - return -1; - for (ptr = logical; ptr <= logical + logical_len; ptr++) -diff --git a/grub-core/normal/cmdline.c b/grub-core/normal/cmdline.c -index c037d5050..c57242e2e 100644 ---- a/grub-core/normal/cmdline.c -+++ b/grub-core/normal/cmdline.c -@@ -41,7 +41,7 @@ grub_err_t - grub_set_history (int newsize) - { - grub_uint32_t **old_hist_lines = hist_lines; -- hist_lines = grub_malloc (sizeof (grub_uint32_t *) * newsize); -+ hist_lines = grub_calloc (newsize, sizeof (grub_uint32_t *)); - - /* Copy the old lines into the new buffer. */ - if (old_hist_lines) -@@ -114,7 +114,7 @@ static void - grub_history_set (int pos, grub_uint32_t *s, grub_size_t len) - { - grub_free (hist_lines[pos]); -- hist_lines[pos] = grub_malloc ((len + 1) * sizeof (grub_uint32_t)); -+ hist_lines[pos] = grub_calloc (len + 1, sizeof (grub_uint32_t)); - if (!hist_lines[pos]) - { - grub_print_error (); -@@ -349,7 +349,7 @@ grub_cmdline_get (const char *prompt_translated) - char *ret; - unsigned nterms; - -- buf = grub_malloc (max_len * sizeof (grub_uint32_t)); -+ buf = grub_calloc (max_len, sizeof (grub_uint32_t)); - if (!buf) - return 0; - -@@ -377,7 +377,7 @@ grub_cmdline_get (const char *prompt_translated) - FOR_ACTIVE_TERM_OUTPUTS(cur) - nterms++; - -- cl_terms = grub_malloc (sizeof (cl_terms[0]) * nterms); -+ cl_terms = grub_calloc (nterms, sizeof (cl_terms[0])); - if (!cl_terms) - { - grub_free (buf); -@@ -385,7 +385,7 @@ grub_cmdline_get (const char *prompt_translated) - } - cl_term_cur = cl_terms; - -- unicode_msg = grub_malloc (msg_len * sizeof (grub_uint32_t)); -+ unicode_msg = grub_calloc (msg_len, sizeof (grub_uint32_t)); - if (!unicode_msg) - { - grub_free (buf); -@@ -495,7 +495,7 @@ grub_cmdline_get (const char *prompt_translated) - grub_uint32_t *insert; - - insertlen = grub_strlen (insertu8); -- insert = grub_malloc ((insertlen + 1) * sizeof (grub_uint32_t)); -+ insert = grub_calloc (insertlen + 1, sizeof (grub_uint32_t)); - if (!insert) - { - grub_free (insertu8); -@@ -602,7 +602,7 @@ grub_cmdline_get (const char *prompt_translated) - - grub_free (kill_buf); - -- kill_buf = grub_malloc ((n + 1) * sizeof(grub_uint32_t)); -+ kill_buf = grub_calloc (n + 1, sizeof (grub_uint32_t)); - if (grub_errno) - { - grub_print_error (); -diff --git a/grub-core/normal/menu_entry.c b/grub-core/normal/menu_entry.c -index cdf3590a3..1993995be 100644 ---- a/grub-core/normal/menu_entry.c -+++ b/grub-core/normal/menu_entry.c -@@ -95,8 +95,8 @@ init_line (struct screen *screen, struct line *linep) - { - linep->len = 0; - linep->max_len = 80; -- linep->buf = grub_malloc ((linep->max_len + 1) * sizeof (linep->buf[0])); -- linep->pos = grub_zalloc (screen->nterms * sizeof (linep->pos[0])); -+ linep->buf = grub_calloc (linep->max_len + 1, sizeof (linep->buf[0])); -+ linep->pos = grub_calloc (screen->nterms, sizeof (linep->pos[0])); - if (! linep->buf || !linep->pos) - { - grub_free (linep->buf); -@@ -287,7 +287,7 @@ update_screen (struct screen *screen, struct per_term_screen *term_screen, - pos = linep->pos + (term_screen - screen->terms); - - if (!*pos) -- *pos = grub_zalloc ((linep->len + 1) * sizeof (**pos)); -+ *pos = grub_calloc (linep->len + 1, sizeof (**pos)); - - if (i == region_start || linep == screen->lines + screen->line - || (i > region_start && mode == ALL_LINES)) -@@ -471,7 +471,7 @@ insert_string (struct screen *screen, const char *s, int update) - - /* Insert the string. */ - current_linep = screen->lines + screen->line; -- unicode_msg = grub_malloc ((p - s) * sizeof (grub_uint32_t)); -+ unicode_msg = grub_calloc (p - s, sizeof (grub_uint32_t)); - - if (!unicode_msg) - return 0; -@@ -1023,7 +1023,7 @@ complete (struct screen *screen, int continuous, int update) - if (completion_buffer.buf) - { - buflen = grub_strlen (completion_buffer.buf); -- ucs4 = grub_malloc (sizeof (grub_uint32_t) * (buflen + 1)); -+ ucs4 = grub_calloc (buflen + 1, sizeof (grub_uint32_t)); - - if (!ucs4) - { -@@ -1268,7 +1268,7 @@ grub_menu_entry_run (grub_menu_entry_t entry) - for (i = 0; i < (unsigned) screen->num_lines; i++) - { - grub_free (screen->lines[i].pos); -- screen->lines[i].pos = grub_zalloc (screen->nterms * sizeof (screen->lines[i].pos[0])); -+ screen->lines[i].pos = grub_calloc (screen->nterms, sizeof (screen->lines[i].pos[0])); - if (! screen->lines[i].pos) - { - grub_print_error (); -@@ -1278,7 +1278,7 @@ grub_menu_entry_run (grub_menu_entry_t entry) - } - } - -- screen->terms = grub_zalloc (screen->nterms * sizeof (screen->terms[0])); -+ screen->terms = grub_calloc (screen->nterms, sizeof (screen->terms[0])); - if (!screen->terms) - { - grub_print_error (); -diff --git a/grub-core/normal/menu_text.c b/grub-core/normal/menu_text.c -index e22bb91f6..18240e76c 100644 ---- a/grub-core/normal/menu_text.c -+++ b/grub-core/normal/menu_text.c -@@ -78,7 +78,7 @@ grub_print_message_indented_real (const char *msg, int margin_left, - grub_size_t msg_len = grub_strlen (msg) + 2; - int ret = 0; - -- unicode_msg = grub_malloc (msg_len * sizeof (grub_uint32_t)); -+ unicode_msg = grub_calloc (msg_len, sizeof (grub_uint32_t)); - - if (!unicode_msg) - return 0; -@@ -211,7 +211,7 @@ print_entry (int y, int highlight, grub_menu_entry_t entry, - - title = entry ? entry->title : ""; - title_len = grub_strlen (title); -- unicode_title = grub_malloc (title_len * sizeof (*unicode_title)); -+ unicode_title = grub_calloc (title_len, sizeof (*unicode_title)); - if (! unicode_title) - /* XXX How to show this error? */ - return; -diff --git a/grub-core/normal/term.c b/grub-core/normal/term.c -index a1e5c5a0d..cc8c173b6 100644 ---- a/grub-core/normal/term.c -+++ b/grub-core/normal/term.c -@@ -264,7 +264,7 @@ grub_term_save_pos (void) - FOR_ACTIVE_TERM_OUTPUTS(cur) - cnt++; - -- ret = grub_malloc (cnt * sizeof (ret[0])); -+ ret = grub_calloc (cnt, sizeof (ret[0])); - if (!ret) - return NULL; - -@@ -1013,7 +1013,7 @@ grub_xnputs (const char *str, grub_size_t msg_len) - - grub_error_push (); - -- unicode_str = grub_malloc (msg_len * sizeof (grub_uint32_t)); -+ unicode_str = grub_calloc (msg_len, sizeof (grub_uint32_t)); - - grub_error_pop (); - -diff --git a/grub-core/osdep/linux/getroot.c b/grub-core/osdep/linux/getroot.c -index 7adc0f30e..a5bd0752f 100644 ---- a/grub-core/osdep/linux/getroot.c -+++ b/grub-core/osdep/linux/getroot.c -@@ -168,7 +168,7 @@ grub_util_raid_getmembers (const char *name, int bootable) - if (ret != 0) - grub_util_error (_("ioctl GET_ARRAY_INFO error: %s"), strerror (errno)); - -- devicelist = xmalloc ((info.nr_disks + 1) * sizeof (char *)); -+ devicelist = xcalloc (info.nr_disks + 1, sizeof (char *)); - - for (i = 0, j = 0; j < info.nr_disks; i++) - { -@@ -241,7 +241,7 @@ grub_find_root_devices_from_btrfs (const char *dir) - return NULL; - } - -- ret = xmalloc ((fsi.num_devices + 1) * sizeof (ret[0])); -+ ret = xcalloc (fsi.num_devices + 1, sizeof (ret[0])); - - for (i = 1; i <= fsi.max_id && j < fsi.num_devices; i++) - { -@@ -396,7 +396,7 @@ grub_find_root_devices_from_mountinfo (const char *dir, char **relroot) - if (relroot) - *relroot = NULL; - -- entries = xmalloc (entry_max * sizeof (*entries)); -+ entries = xcalloc (entry_max, sizeof (*entries)); - - again: - fp = grub_util_fopen ("/proc/self/mountinfo", "r"); -diff --git a/grub-core/osdep/windows/getroot.c b/grub-core/osdep/windows/getroot.c -index 661d95461..eada663b2 100644 ---- a/grub-core/osdep/windows/getroot.c -+++ b/grub-core/osdep/windows/getroot.c -@@ -59,7 +59,7 @@ grub_get_mount_point (const TCHAR *path) - - for (ptr = path; *ptr; ptr++); - allocsize = (ptr - path + 10) * 2; -- out = xmalloc (allocsize * sizeof (out[0])); -+ out = xcalloc (allocsize, sizeof (out[0])); - - /* When pointing to EFI system partition GetVolumePathName fails - for ESP root and returns abberant information for everything -diff --git a/grub-core/osdep/windows/hostdisk.c b/grub-core/osdep/windows/hostdisk.c -index 355100789..0be327394 100644 ---- a/grub-core/osdep/windows/hostdisk.c -+++ b/grub-core/osdep/windows/hostdisk.c -@@ -111,7 +111,7 @@ grub_util_get_windows_path_real (const char *path) - - while (1) - { -- fpa = xmalloc (alloc * sizeof (fpa[0])); -+ fpa = xcalloc (alloc, sizeof (fpa[0])); - - len = GetFullPathName (tpath, alloc, fpa, NULL); - if (len >= alloc) -@@ -399,7 +399,7 @@ grub_util_fd_opendir (const char *name) - for (l = 0; name_windows[l]; l++); - for (l--; l >= 0 && (name_windows[l] == '\\' || name_windows[l] == '/'); l--); - l++; -- pattern = xmalloc ((l + 3) * sizeof (pattern[0])); -+ pattern = xcalloc (l + 3, sizeof (pattern[0])); - memcpy (pattern, name_windows, l * sizeof (pattern[0])); - pattern[l] = '\\'; - pattern[l + 1] = '*'; -diff --git a/grub-core/osdep/windows/init.c b/grub-core/osdep/windows/init.c -index e8ffd62c6..6297de632 100644 ---- a/grub-core/osdep/windows/init.c -+++ b/grub-core/osdep/windows/init.c -@@ -161,7 +161,7 @@ grub_util_host_init (int *argc __attribute__ ((unused)), - LPWSTR *targv; - - targv = CommandLineToArgvW (tcmdline, argc); -- *argv = xmalloc ((*argc + 1) * sizeof (argv[0])); -+ *argv = xcalloc (*argc + 1, sizeof (argv[0])); - - for (i = 0; i < *argc; i++) - (*argv)[i] = grub_util_tchar_to_utf8 (targv[i]); -diff --git a/grub-core/osdep/windows/platform.c b/grub-core/osdep/windows/platform.c -index e19a3d9a8..cb626c8c3 100644 ---- a/grub-core/osdep/windows/platform.c -+++ b/grub-core/osdep/windows/platform.c -@@ -231,8 +231,8 @@ grub_install_register_efi (grub_device_t efidir_grub_dev, - grub_util_error ("%s", _("no EFI routines are available when running in BIOS mode")); - - distrib8_len = grub_strlen (efi_distributor); -- distributor16 = xmalloc ((distrib8_len + 1) * GRUB_MAX_UTF16_PER_UTF8 -- * sizeof (grub_uint16_t)); -+ distributor16 = xcalloc (distrib8_len + 1, -+ GRUB_MAX_UTF16_PER_UTF8 * sizeof (grub_uint16_t)); - distrib16_len = grub_utf8_to_utf16 (distributor16, distrib8_len * GRUB_MAX_UTF16_PER_UTF8, - (const grub_uint8_t *) efi_distributor, - distrib8_len, 0); -diff --git a/grub-core/osdep/windows/relpath.c b/grub-core/osdep/windows/relpath.c -index cb0861744..478e8ef14 100644 ---- a/grub-core/osdep/windows/relpath.c -+++ b/grub-core/osdep/windows/relpath.c -@@ -72,7 +72,7 @@ grub_make_system_path_relative_to_its_root (const char *path) - if (dirwindows[0] && dirwindows[1] == ':') - offset = 2; - } -- ret = xmalloc (sizeof (ret[0]) * (flen - offset + 2)); -+ ret = xcalloc (flen - offset + 2, sizeof (ret[0])); - if (dirwindows[offset] != '\\' - && dirwindows[offset] != '/' - && dirwindows[offset]) -diff --git a/grub-core/partmap/gpt.c b/grub-core/partmap/gpt.c -index 103f6796f..72a2e37cd 100644 ---- a/grub-core/partmap/gpt.c -+++ b/grub-core/partmap/gpt.c -@@ -199,7 +199,7 @@ gpt_partition_map_embed (struct grub_disk *disk, unsigned int *nsectors, - *nsectors = ctx.len; - if (*nsectors > max_nsectors) - *nsectors = max_nsectors; -- *sectors = grub_malloc (*nsectors * sizeof (**sectors)); -+ *sectors = grub_calloc (*nsectors, sizeof (**sectors)); - if (!*sectors) - return grub_errno; - for (i = 0; i < *nsectors; i++) -diff --git a/grub-core/partmap/msdos.c b/grub-core/partmap/msdos.c -index 7b8e45076..ee3f24982 100644 ---- a/grub-core/partmap/msdos.c -+++ b/grub-core/partmap/msdos.c -@@ -337,7 +337,7 @@ pc_partition_map_embed (struct grub_disk *disk, unsigned int *nsectors, - avail_nsectors = *nsectors; - if (*nsectors > max_nsectors) - *nsectors = max_nsectors; -- *sectors = grub_malloc (*nsectors * sizeof (**sectors)); -+ *sectors = grub_calloc (*nsectors, sizeof (**sectors)); - if (!*sectors) - return grub_errno; - for (i = 0; i < *nsectors; i++) -diff --git a/grub-core/script/execute.c b/grub-core/script/execute.c -index ee299fd0e..c8d6806fe 100644 ---- a/grub-core/script/execute.c -+++ b/grub-core/script/execute.c -@@ -553,7 +553,7 @@ gettext_append (struct grub_script_argv *result, const char *orig_str) - for (iptr = orig_str; *iptr; iptr++) - if (*iptr == '$') - dollar_cnt++; -- ctx.allowed_strings = grub_malloc (sizeof (ctx.allowed_strings[0]) * dollar_cnt); -+ ctx.allowed_strings = grub_calloc (dollar_cnt, sizeof (ctx.allowed_strings[0])); - - if (parse_string (orig_str, gettext_save_allow, &ctx, 0)) - goto fail; -diff --git a/grub-core/tests/fake_input.c b/grub-core/tests/fake_input.c -index 2d6085298..b5eb516be 100644 ---- a/grub-core/tests/fake_input.c -+++ b/grub-core/tests/fake_input.c -@@ -49,7 +49,7 @@ grub_terminal_input_fake_sequence (int *seq_in, int nseq_in) - saved = grub_term_inputs; - if (seq) - grub_free (seq); -- seq = grub_malloc (nseq_in * sizeof (seq[0])); -+ seq = grub_calloc (nseq_in, sizeof (seq[0])); - if (!seq) - return; - -diff --git a/grub-core/tests/video_checksum.c b/grub-core/tests/video_checksum.c -index 74d5b65e5..44d081069 100644 ---- a/grub-core/tests/video_checksum.c -+++ b/grub-core/tests/video_checksum.c -@@ -336,7 +336,7 @@ grub_video_capture_write_bmp (const char *fname, - { - case 4: - { -- grub_uint8_t *buffer = xmalloc (mode_info->width * 3); -+ grub_uint8_t *buffer = xcalloc (3, mode_info->width); - grub_uint32_t rmask = ((1 << mode_info->red_mask_size) - 1); - grub_uint32_t gmask = ((1 << mode_info->green_mask_size) - 1); - grub_uint32_t bmask = ((1 << mode_info->blue_mask_size) - 1); -@@ -367,7 +367,7 @@ grub_video_capture_write_bmp (const char *fname, - } - case 3: - { -- grub_uint8_t *buffer = xmalloc (mode_info->width * 3); -+ grub_uint8_t *buffer = xcalloc (3, mode_info->width); - grub_uint32_t rmask = ((1 << mode_info->red_mask_size) - 1); - grub_uint32_t gmask = ((1 << mode_info->green_mask_size) - 1); - grub_uint32_t bmask = ((1 << mode_info->blue_mask_size) - 1); -@@ -407,7 +407,7 @@ grub_video_capture_write_bmp (const char *fname, - } - case 2: - { -- grub_uint8_t *buffer = xmalloc (mode_info->width * 3); -+ grub_uint8_t *buffer = xcalloc (3, mode_info->width); - grub_uint16_t rmask = ((1 << mode_info->red_mask_size) - 1); - grub_uint16_t gmask = ((1 << mode_info->green_mask_size) - 1); - grub_uint16_t bmask = ((1 << mode_info->blue_mask_size) - 1); -diff --git a/grub-core/video/capture.c b/grub-core/video/capture.c -index 4f83c7441..4d3195e01 100644 ---- a/grub-core/video/capture.c -+++ b/grub-core/video/capture.c -@@ -89,7 +89,7 @@ grub_video_capture_start (const struct grub_video_mode_info *mode_info, - framebuffer.mode_info = *mode_info; - framebuffer.mode_info.blit_format = grub_video_get_blit_format (&framebuffer.mode_info); - -- framebuffer.ptr = grub_malloc (framebuffer.mode_info.height * framebuffer.mode_info.pitch); -+ framebuffer.ptr = grub_calloc (framebuffer.mode_info.height, framebuffer.mode_info.pitch); - if (!framebuffer.ptr) - return grub_errno; - -diff --git a/grub-core/video/emu/sdl.c b/grub-core/video/emu/sdl.c -index a2f639f66..0ebab6f57 100644 ---- a/grub-core/video/emu/sdl.c -+++ b/grub-core/video/emu/sdl.c -@@ -172,7 +172,7 @@ grub_video_sdl_set_palette (unsigned int start, unsigned int count, - if (start + count > mode_info.number_of_colors) - count = mode_info.number_of_colors - start; - -- tmp = grub_malloc (count * sizeof (tmp[0])); -+ tmp = grub_calloc (count, sizeof (tmp[0])); - for (i = 0; i < count; i++) - { - tmp[i].r = palette_data[i].r; -diff --git a/grub-core/video/i386/pc/vga.c b/grub-core/video/i386/pc/vga.c -index 01f47112d..b2f776c99 100644 ---- a/grub-core/video/i386/pc/vga.c -+++ b/grub-core/video/i386/pc/vga.c -@@ -127,7 +127,7 @@ grub_video_vga_setup (unsigned int width, unsigned int height, - - vga_height = height ? : 480; - -- framebuffer.temporary_buffer = grub_malloc (vga_height * VGA_WIDTH); -+ framebuffer.temporary_buffer = grub_calloc (vga_height, VGA_WIDTH); - framebuffer.front_page = 0; - framebuffer.back_page = 0; - if (!framebuffer.temporary_buffer) -diff --git a/grub-core/video/readers/png.c b/grub-core/video/readers/png.c -index 777e71334..61bd64537 100644 ---- a/grub-core/video/readers/png.c -+++ b/grub-core/video/readers/png.c -@@ -309,7 +309,7 @@ grub_png_decode_image_header (struct grub_png_data *data) - if (data->is_16bit || data->is_gray || data->is_palette) - #endif - { -- data->image_data = grub_malloc (data->image_height * data->row_bytes); -+ data->image_data = grub_calloc (data->image_height, data->row_bytes); - if (grub_errno) - return grub_errno; - -diff --git a/include/grub/unicode.h b/include/grub/unicode.h -index a0403e91f..4de986a85 100644 ---- a/include/grub/unicode.h -+++ b/include/grub/unicode.h -@@ -293,7 +293,7 @@ grub_unicode_glyph_dup (const struct grub_unicode_glyph *in) - grub_memcpy (out, in, sizeof (*in)); - if (in->ncomb > ARRAY_SIZE (out->combining_inline)) - { -- out->combining_ptr = grub_malloc (in->ncomb * sizeof (out->combining_ptr[0])); -+ out->combining_ptr = grub_calloc (in->ncomb, sizeof (out->combining_ptr[0])); - if (!out->combining_ptr) - { - grub_free (out); -@@ -315,7 +315,7 @@ grub_unicode_set_glyph (struct grub_unicode_glyph *out, - grub_memcpy (out, in, sizeof (*in)); - if (in->ncomb > ARRAY_SIZE (out->combining_inline)) - { -- out->combining_ptr = grub_malloc (in->ncomb * sizeof (out->combining_ptr[0])); -+ out->combining_ptr = grub_calloc (in->ncomb, sizeof (out->combining_ptr[0])); - if (!out->combining_ptr) - return; - grub_memcpy (out->combining_ptr, in->combining_ptr, -diff --git a/util/getroot.c b/util/getroot.c -index cdd41153c..6ae35ecaa 100644 ---- a/util/getroot.c -+++ b/util/getroot.c -@@ -200,7 +200,7 @@ make_device_name (const char *drive) - char *ret, *ptr; - const char *iptr; - -- ret = xmalloc (strlen (drive) * 2); -+ ret = xcalloc (2, strlen (drive)); - ptr = ret; - for (iptr = drive; *iptr; iptr++) - { -diff --git a/util/grub-file.c b/util/grub-file.c -index 50c18b683..b2e7dd69f 100644 ---- a/util/grub-file.c -+++ b/util/grub-file.c -@@ -54,7 +54,7 @@ main (int argc, char *argv[]) - - grub_util_host_init (&argc, &argv); - -- argv2 = xmalloc (argc * sizeof (argv2[0])); -+ argv2 = xcalloc (argc, sizeof (argv2[0])); - - if (argc == 2 && strcmp (argv[1], "--version") == 0) - { -diff --git a/util/grub-fstest.c b/util/grub-fstest.c -index f14e02d97..57246af7c 100644 ---- a/util/grub-fstest.c -+++ b/util/grub-fstest.c -@@ -650,7 +650,7 @@ argp_parser (int key, char *arg, struct argp_state *state) - if (args_count < num_disks) - { - if (args_count == 0) -- images = xmalloc (num_disks * sizeof (images[0])); -+ images = xcalloc (num_disks, sizeof (images[0])); - images[args_count] = grub_canonicalize_file_name (arg); - args_count++; - return 0; -@@ -734,7 +734,7 @@ main (int argc, char *argv[]) - - grub_util_host_init (&argc, &argv); - -- args = xmalloc (argc * sizeof (args[0])); -+ args = xcalloc (argc, sizeof (args[0])); - - argp_parse (&argp, argc, argv, 0, 0, 0); - -diff --git a/util/grub-install-common.c b/util/grub-install-common.c -index fdfe2c7ea..447504d3f 100644 ---- a/util/grub-install-common.c -+++ b/util/grub-install-common.c -@@ -286,7 +286,7 @@ handle_install_list (struct install_list *il, const char *val, - il->n_entries++; - } - il->n_alloc = il->n_entries + 1; -- il->entries = xmalloc (il->n_alloc * sizeof (il->entries[0])); -+ il->entries = xcalloc (il->n_alloc, sizeof (il->entries[0])); - ptr = val; - for (ce = il->entries; ; ce++) - { -diff --git a/util/grub-install.c b/util/grub-install.c -index 666cef3d2..bd6d8dbb3 100644 ---- a/util/grub-install.c -+++ b/util/grub-install.c -@@ -655,7 +655,7 @@ device_map_check_duplicates (const char *dev_map) - if (! fp) - return; - -- d = xmalloc (alloced * sizeof (d[0])); -+ d = xcalloc (alloced, sizeof (d[0])); - - while (fgets (buf, sizeof (buf), fp)) - { -@@ -1374,7 +1374,7 @@ main (int argc, char *argv[]) - ndev++; - } - -- grub_drives = xmalloc (sizeof (grub_drives[0]) * (ndev + 1)); -+ grub_drives = xcalloc (ndev + 1, sizeof (grub_drives[0])); - - for (curdev = grub_devices, curdrive = grub_drives; *curdev; curdev++, - curdrive++) -diff --git a/util/grub-mkimagexx.c b/util/grub-mkimagexx.c -index bc087c2b5..d97d0e7be 100644 ---- a/util/grub-mkimagexx.c -+++ b/util/grub-mkimagexx.c -@@ -2294,10 +2294,8 @@ SUFFIX (grub_mkimage_load_image) (const char *kernel_path, - + grub_host_to_target16 (e->e_shstrndx) * smd.section_entsize); - smd.strtab = (char *) e + grub_host_to_target_addr (s->sh_offset); - -- smd.addrs = xmalloc (sizeof (*smd.addrs) * smd.num_sections); -- memset (smd.addrs, 0, sizeof (*smd.addrs) * smd.num_sections); -- smd.vaddrs = xmalloc (sizeof (*smd.vaddrs) * smd.num_sections); -- memset (smd.vaddrs, 0, sizeof (*smd.vaddrs) * smd.num_sections); -+ smd.addrs = xcalloc (smd.num_sections, sizeof (*smd.addrs)); -+ smd.vaddrs = xcalloc (smd.num_sections, sizeof (*smd.vaddrs)); - - SUFFIX (locate_sections) (e, kernel_path, &smd, layout, image_target); - -diff --git a/util/grub-mkrescue.c b/util/grub-mkrescue.c -index 45d6140d3..cb972f120 100644 ---- a/util/grub-mkrescue.c -+++ b/util/grub-mkrescue.c -@@ -441,8 +441,8 @@ main (int argc, char *argv[]) - xorriso = xstrdup ("xorriso"); - label_font = grub_util_path_concat (2, pkgdatadir, "unicode.pf2"); - -- argp_argv = xmalloc (sizeof (argp_argv[0]) * argc); -- xorriso_tail_argv = xmalloc (sizeof (argp_argv[0]) * argc); -+ argp_argv = xcalloc (argc, sizeof (argp_argv[0])); -+ xorriso_tail_argv = xcalloc (argc, sizeof (argp_argv[0])); - - xorriso_tail_argc = 0; - /* Program name */ -diff --git a/util/grub-mkstandalone.c b/util/grub-mkstandalone.c -index 4907d44c0..edf309717 100644 ---- a/util/grub-mkstandalone.c -+++ b/util/grub-mkstandalone.c -@@ -296,7 +296,7 @@ main (int argc, char *argv[]) - grub_util_host_init (&argc, &argv); - grub_util_disable_fd_syncs (); - -- files = xmalloc ((argc + 1) * sizeof (files[0])); -+ files = xcalloc (argc + 1, sizeof (files[0])); - - argp_parse (&argp, argc, argv, 0, 0, 0); - -diff --git a/util/grub-pe2elf.c b/util/grub-pe2elf.c -index 0d4084a10..11331294f 100644 ---- a/util/grub-pe2elf.c -+++ b/util/grub-pe2elf.c -@@ -100,9 +100,9 @@ write_section_data (FILE* fp, const char *name, char *image, - char *pe_strtab = (image + pe_chdr->symtab_offset - + pe_chdr->num_symbols * sizeof (struct grub_pe32_symbol)); - -- section_map = xmalloc ((2 * pe_chdr->num_sections + 5) * sizeof (int)); -+ section_map = xcalloc (2 * pe_chdr->num_sections + 5, sizeof (int)); - section_map[0] = 0; -- shdr = xmalloc ((2 * pe_chdr->num_sections + 5) * sizeof (shdr[0])); -+ shdr = xcalloc (2 * pe_chdr->num_sections + 5, sizeof (shdr[0])); - idx = 1; - idx_reloc = pe_chdr->num_sections + 1; - -@@ -233,7 +233,7 @@ write_reloc_section (FILE* fp, const char *name, char *image, - - pe_sec = pe_shdr + shdr[i].sh_link; - pe_rel = (struct grub_pe32_reloc *) (image + pe_sec->relocations_offset); -- rel = (elf_reloc_t *) xmalloc (pe_sec->num_relocations * sizeof (elf_reloc_t)); -+ rel = (elf_reloc_t *) xcalloc (pe_sec->num_relocations, sizeof (elf_reloc_t)); - num_rels = 0; - modified = 0; - -@@ -365,12 +365,10 @@ write_symbol_table (FILE* fp, const char *name, char *image, - pe_symtab = (struct grub_pe32_symbol *) (image + pe_chdr->symtab_offset); - pe_strtab = (char *) (pe_symtab + pe_chdr->num_symbols); - -- symtab = (Elf_Sym *) xmalloc ((pe_chdr->num_symbols + 1) * -- sizeof (Elf_Sym)); -- memset (symtab, 0, (pe_chdr->num_symbols + 1) * sizeof (Elf_Sym)); -+ symtab = (Elf_Sym *) xcalloc (pe_chdr->num_symbols + 1, sizeof (Elf_Sym)); - num_syms = 1; - -- symtab_map = (int *) xmalloc (pe_chdr->num_symbols * sizeof (int)); -+ symtab_map = (int *) xcalloc (pe_chdr->num_symbols, sizeof (int)); - - for (i = 0; i < (int) pe_chdr->num_symbols; - i += pe_symtab->num_aux + 1, pe_symtab += pe_symtab->num_aux + 1) -diff --git a/util/grub-probe.c b/util/grub-probe.c -index 81d27eead..cbe6ed94c 100644 ---- a/util/grub-probe.c -+++ b/util/grub-probe.c -@@ -361,8 +361,8 @@ probe (const char *path, char **device_names, char delim) - grub_util_pull_device (*curdev); - ndev++; - } -- -- drives_names = xmalloc (sizeof (drives_names[0]) * (ndev + 1)); -+ -+ drives_names = xcalloc (ndev + 1, sizeof (drives_names[0])); - - for (curdev = device_names, curdrive = drives_names; *curdev; curdev++, - curdrive++) diff --git a/patches/grub/2.04/safe-alloc-4.patch b/patches/grub/2.04/safe-alloc-4.patch deleted file mode 100644 index 6202e5abd..000000000 --- a/patches/grub/2.04/safe-alloc-4.patch +++ /dev/null @@ -1,1321 +0,0 @@ -From d84e89f4734711d8ff3c84b6c58985c824b4d889 Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Mon, 15 Jun 2020 12:28:27 -0400 -Subject: malloc: Use overflow checking primitives where we do complex - allocations - -This attempts to fix the places where we do the following where -arithmetic_expr may include unvalidated data: - - X = grub_malloc(arithmetic_expr); - -It accomplishes this by doing the arithmetic ahead of time using grub_add(), -grub_sub(), grub_mul() and testing for overflow before proceeding. - -Among other issues, this fixes: - - allocation of integer overflow in grub_video_bitmap_create() - reported by Chris Coulson, - - allocation of integer overflow in grub_png_decode_image_header() - reported by Chris Coulson, - - allocation of integer overflow in grub_squash_read_symlink() - reported by Chris Coulson, - - allocation of integer overflow in grub_ext2_read_symlink() - reported by Chris Coulson, - - allocation of integer overflow in read_section_as_string() - reported by Chris Coulson. - -Fixes: CVE-2020-14309, CVE-2020-14310, CVE-2020-14311 - -Signed-off-by: Peter Jones -Reviewed-by: Daniel Kiper - -Patch-Name: safe-alloc-4.patch ---- - grub-core/commands/legacycfg.c | 29 +++++++++++++++---- - grub-core/commands/wildcard.c | 36 ++++++++++++++++++++---- - grub-core/disk/ldm.c | 32 +++++++++++++++------ - grub-core/font/font.c | 7 ++++- - grub-core/fs/btrfs.c | 28 +++++++++++++------ - grub-core/fs/ext2.c | 10 ++++++- - grub-core/fs/iso9660.c | 51 ++++++++++++++++++++++++---------- - grub-core/fs/sfs.c | 27 ++++++++++++++---- - grub-core/fs/squash4.c | 45 ++++++++++++++++++++++-------- - grub-core/fs/udf.c | 41 +++++++++++++++++---------- - grub-core/fs/xfs.c | 11 +++++--- - grub-core/fs/zfs/zfs.c | 22 ++++++++++----- - grub-core/fs/zfs/zfscrypt.c | 7 ++++- - grub-core/lib/arg.c | 20 +++++++++++-- - grub-core/loader/i386/bsd.c | 8 +++++- - grub-core/net/dns.c | 9 +++++- - grub-core/normal/charset.c | 10 +++++-- - grub-core/normal/cmdline.c | 14 ++++++++-- - grub-core/normal/menu_entry.c | 13 +++++++-- - grub-core/script/argv.c | 16 +++++++++-- - grub-core/script/lexer.c | 21 ++++++++++++-- - grub-core/video/bitmap.c | 25 +++++++++++------ - grub-core/video/readers/png.c | 13 +++++++-- - 23 files changed, 382 insertions(+), 113 deletions(-) - -diff --git a/grub-core/commands/legacycfg.c b/grub-core/commands/legacycfg.c -index 5e3ec0d5e..cc5971f4d 100644 ---- a/grub-core/commands/legacycfg.c -+++ b/grub-core/commands/legacycfg.c -@@ -32,6 +32,7 @@ - #include - #include - #include -+#include - - GRUB_MOD_LICENSE ("GPLv3+"); - -@@ -104,13 +105,22 @@ legacy_file (const char *filename) - if (newsuffix) - { - char *t; -- -+ grub_size_t sz; -+ -+ if (grub_add (grub_strlen (suffix), grub_strlen (newsuffix), &sz) || -+ grub_add (sz, 1, &sz)) -+ { -+ grub_errno = GRUB_ERR_OUT_OF_RANGE; -+ goto fail_0; -+ } -+ - t = suffix; -- suffix = grub_realloc (suffix, grub_strlen (suffix) -- + grub_strlen (newsuffix) + 1); -+ suffix = grub_realloc (suffix, sz); - if (!suffix) - { - grub_free (t); -+ -+ fail_0: - grub_free (entrysrc); - grub_free (parsed); - grub_free (newsuffix); -@@ -154,13 +164,22 @@ legacy_file (const char *filename) - else - { - char *t; -+ grub_size_t sz; -+ -+ if (grub_add (grub_strlen (entrysrc), grub_strlen (parsed), &sz) || -+ grub_add (sz, 1, &sz)) -+ { -+ grub_errno = GRUB_ERR_OUT_OF_RANGE; -+ goto fail_1; -+ } - - t = entrysrc; -- entrysrc = grub_realloc (entrysrc, grub_strlen (entrysrc) -- + grub_strlen (parsed) + 1); -+ entrysrc = grub_realloc (entrysrc, sz); - if (!entrysrc) - { - grub_free (t); -+ -+ fail_1: - grub_free (parsed); - grub_free (suffix); - return grub_errno; -diff --git a/grub-core/commands/wildcard.c b/grub-core/commands/wildcard.c -index 4a106ca04..cc3290311 100644 ---- a/grub-core/commands/wildcard.c -+++ b/grub-core/commands/wildcard.c -@@ -23,6 +23,7 @@ - #include - #include - #include -+#include - - #include - -@@ -48,6 +49,7 @@ merge (char **dest, char **ps) - int i; - int j; - char **p; -+ grub_size_t sz; - - if (! dest) - return ps; -@@ -60,7 +62,12 @@ merge (char **dest, char **ps) - for (j = 0; ps[j]; j++) - ; - -- p = grub_realloc (dest, sizeof (char*) * (i + j + 1)); -+ if (grub_add (i, j, &sz) || -+ grub_add (sz, 1, &sz) || -+ grub_mul (sz, sizeof (char *), &sz)) -+ return dest; -+ -+ p = grub_realloc (dest, sz); - if (! p) - { - grub_free (dest); -@@ -115,8 +122,15 @@ make_regex (const char *start, const char *end, regex_t *regexp) - char ch; - int i = 0; - unsigned len = end - start; -- char *buffer = grub_malloc (len * 2 + 2 + 1); /* worst case size. */ -+ char *buffer; -+ grub_size_t sz; - -+ /* Worst case size is (len * 2 + 2 + 1). */ -+ if (grub_mul (len, 2, &sz) || -+ grub_add (sz, 3, &sz)) -+ return 1; -+ -+ buffer = grub_malloc (sz); - if (! buffer) - return 1; - -@@ -226,6 +240,7 @@ match_devices_iter (const char *name, void *data) - struct match_devices_ctx *ctx = data; - char **t; - char *buffer; -+ grub_size_t sz; - - /* skip partitions if asked to. */ - if (ctx->noparts && grub_strchr (name, ',')) -@@ -239,11 +254,16 @@ match_devices_iter (const char *name, void *data) - if (regexec (ctx->regexp, buffer, 0, 0, 0)) - { - grub_dprintf ("expand", "not matched\n"); -+ fail: - grub_free (buffer); - return 0; - } - -- t = grub_realloc (ctx->devs, sizeof (char*) * (ctx->ndev + 2)); -+ if (grub_add (ctx->ndev, 2, &sz) || -+ grub_mul (sz, sizeof (char *), &sz)) -+ goto fail; -+ -+ t = grub_realloc (ctx->devs, sz); - if (! t) - { - grub_free (buffer); -@@ -300,6 +320,7 @@ match_files_iter (const char *name, - struct match_files_ctx *ctx = data; - char **t; - char *buffer; -+ grub_size_t sz; - - /* skip . and .. names */ - if (grub_strcmp(".", name) == 0 || grub_strcmp("..", name) == 0) -@@ -315,9 +336,14 @@ match_files_iter (const char *name, - if (! buffer) - return 1; - -- t = grub_realloc (ctx->files, sizeof (char*) * (ctx->nfile + 2)); -- if (! t) -+ if (grub_add (ctx->nfile, 2, &sz) || -+ grub_mul (sz, sizeof (char *), &sz)) -+ goto fail; -+ -+ t = grub_realloc (ctx->files, sz); -+ if (!t) - { -+ fail: - grub_free (buffer); - return 1; - } -diff --git a/grub-core/disk/ldm.c b/grub-core/disk/ldm.c -index e6323701a..58f8a53e1 100644 ---- a/grub-core/disk/ldm.c -+++ b/grub-core/disk/ldm.c -@@ -25,6 +25,7 @@ - #include - #include - #include -+#include - - #ifdef GRUB_UTIL - #include -@@ -289,6 +290,7 @@ make_vg (grub_disk_t disk, - struct grub_ldm_vblk vblk[GRUB_DISK_SECTOR_SIZE - / sizeof (struct grub_ldm_vblk)]; - unsigned i; -+ grub_size_t sz; - err = grub_disk_read (disk, cursec, 0, - sizeof(vblk), &vblk); - if (err) -@@ -350,7 +352,13 @@ make_vg (grub_disk_t disk, - grub_free (lv); - goto fail2; - } -- lv->name = grub_malloc (*ptr + 1); -+ if (grub_add (*ptr, 1, &sz)) -+ { -+ grub_free (lv->internal_id); -+ grub_free (lv); -+ goto fail2; -+ } -+ lv->name = grub_malloc (sz); - if (!lv->name) - { - grub_free (lv->internal_id); -@@ -599,10 +607,13 @@ make_vg (grub_disk_t disk, - if (lv->segments->node_alloc == lv->segments->node_count) - { - void *t; -- lv->segments->node_alloc *= 2; -- t = grub_realloc (lv->segments->nodes, -- sizeof (*lv->segments->nodes) -- * lv->segments->node_alloc); -+ grub_size_t sz; -+ -+ if (grub_mul (lv->segments->node_alloc, 2, &lv->segments->node_alloc) || -+ grub_mul (lv->segments->node_alloc, sizeof (*lv->segments->nodes), &sz)) -+ goto fail2; -+ -+ t = grub_realloc (lv->segments->nodes, sz); - if (!t) - goto fail2; - lv->segments->nodes = t; -@@ -723,10 +734,13 @@ make_vg (grub_disk_t disk, - if (comp->segment_alloc == comp->segment_count) - { - void *t; -- comp->segment_alloc *= 2; -- t = grub_realloc (comp->segments, -- comp->segment_alloc -- * sizeof (*comp->segments)); -+ grub_size_t sz; -+ -+ if (grub_mul (comp->segment_alloc, 2, &comp->segment_alloc) || -+ grub_mul (comp->segment_alloc, sizeof (*comp->segments), &sz)) -+ goto fail2; -+ -+ t = grub_realloc (comp->segments, sz); - if (!t) - goto fail2; - comp->segments = t; -diff --git a/grub-core/font/font.c b/grub-core/font/font.c -index 8e118b315..5edb477ac 100644 ---- a/grub-core/font/font.c -+++ b/grub-core/font/font.c -@@ -30,6 +30,7 @@ - #include - #include - #include -+#include - - GRUB_MOD_LICENSE ("GPLv3+"); - -@@ -360,9 +361,13 @@ static char * - read_section_as_string (struct font_file_section *section) - { - char *str; -+ grub_size_t sz; - grub_ssize_t ret; - -- str = grub_malloc (section->length + 1); -+ if (grub_add (section->length, 1, &sz)) -+ return NULL; -+ -+ str = grub_malloc (sz); - if (!str) - return 0; - -diff --git a/grub-core/fs/btrfs.c b/grub-core/fs/btrfs.c -index 4b8380439..27339bdb3 100644 ---- a/grub-core/fs/btrfs.c -+++ b/grub-core/fs/btrfs.c -@@ -40,6 +40,7 @@ - #include - #include - #include -+#include - - GRUB_MOD_LICENSE ("GPLv3+"); - -@@ -331,9 +332,13 @@ save_ref (struct grub_btrfs_leaf_descriptor *desc, - if (desc->allocated < desc->depth) - { - void *newdata; -- desc->allocated *= 2; -- newdata = grub_realloc (desc->data, sizeof (desc->data[0]) -- * desc->allocated); -+ grub_size_t sz; -+ -+ if (grub_mul (desc->allocated, 2, &desc->allocated) || -+ grub_mul (desc->allocated, sizeof (desc->data[0]), &sz)) -+ return GRUB_ERR_OUT_OF_RANGE; -+ -+ newdata = grub_realloc (desc->data, sz); - if (!newdata) - return grub_errno; - desc->data = newdata; -@@ -624,16 +629,21 @@ find_device (struct grub_btrfs_data *data, grub_uint64_t id) - if (data->n_devices_attached > data->n_devices_allocated) - { - void *tmp; -- data->n_devices_allocated = 2 * data->n_devices_attached + 1; -- data->devices_attached -- = grub_realloc (tmp = data->devices_attached, -- data->n_devices_allocated -- * sizeof (data->devices_attached[0])); -+ grub_size_t sz; -+ -+ if (grub_mul (data->n_devices_attached, 2, &data->n_devices_allocated) || -+ grub_add (data->n_devices_allocated, 1, &data->n_devices_allocated) || -+ grub_mul (data->n_devices_allocated, sizeof (data->devices_attached[0]), &sz)) -+ goto fail; -+ -+ data->devices_attached = grub_realloc (tmp = data->devices_attached, sz); - if (!data->devices_attached) - { -+ data->devices_attached = tmp; -+ -+ fail: - if (ctx.dev_found) - grub_device_close (ctx.dev_found); -- data->devices_attached = tmp; - return NULL; - } - } -diff --git a/grub-core/fs/ext2.c b/grub-core/fs/ext2.c -index 9b389802a..ac33bcd68 100644 ---- a/grub-core/fs/ext2.c -+++ b/grub-core/fs/ext2.c -@@ -46,6 +46,7 @@ - #include - #include - #include -+#include - - GRUB_MOD_LICENSE ("GPLv3+"); - -@@ -703,6 +704,7 @@ grub_ext2_read_symlink (grub_fshelp_node_t node) - { - char *symlink; - struct grub_fshelp_node *diro = node; -+ grub_size_t sz; - - if (! diro->inode_read) - { -@@ -717,7 +719,13 @@ grub_ext2_read_symlink (grub_fshelp_node_t node) - } - } - -- symlink = grub_malloc (grub_le_to_cpu32 (diro->inode.size) + 1); -+ if (grub_add (grub_le_to_cpu32 (diro->inode.size), 1, &sz)) -+ { -+ grub_error (GRUB_ERR_OUT_OF_RANGE, N_("overflow is detected")); -+ return NULL; -+ } -+ -+ symlink = grub_malloc (sz); - if (! symlink) - return 0; - -diff --git a/grub-core/fs/iso9660.c b/grub-core/fs/iso9660.c -index 4f1b52a55..7ba5b300b 100644 ---- a/grub-core/fs/iso9660.c -+++ b/grub-core/fs/iso9660.c -@@ -28,6 +28,7 @@ - #include - #include - #include -+#include - - GRUB_MOD_LICENSE ("GPLv3+"); - -@@ -531,8 +532,13 @@ add_part (struct iterate_dir_ctx *ctx, - int len2) - { - int size = ctx->symlink ? grub_strlen (ctx->symlink) : 0; -+ grub_size_t sz; - -- ctx->symlink = grub_realloc (ctx->symlink, size + len2 + 1); -+ if (grub_add (size, len2, &sz) || -+ grub_add (sz, 1, &sz)) -+ return; -+ -+ ctx->symlink = grub_realloc (ctx->symlink, sz); - if (! ctx->symlink) - return; - -@@ -560,17 +566,24 @@ susp_iterate_dir (struct grub_iso9660_susp_entry *entry, - { - grub_size_t off = 0, csize = 1; - char *old; -+ grub_size_t sz; -+ - csize = entry->len - 5; - old = ctx->filename; - if (ctx->filename_alloc) - { - off = grub_strlen (ctx->filename); -- ctx->filename = grub_realloc (ctx->filename, csize + off + 1); -+ if (grub_add (csize, off, &sz) || -+ grub_add (sz, 1, &sz)) -+ return GRUB_ERR_OUT_OF_RANGE; -+ ctx->filename = grub_realloc (ctx->filename, sz); - } - else - { - off = 0; -- ctx->filename = grub_zalloc (csize + 1); -+ if (grub_add (csize, 1, &sz)) -+ return GRUB_ERR_OUT_OF_RANGE; -+ ctx->filename = grub_zalloc (sz); - } - if (!ctx->filename) - { -@@ -776,14 +789,18 @@ grub_iso9660_iterate_dir (grub_fshelp_node_t dir, - if (node->have_dirents >= node->alloc_dirents) - { - struct grub_fshelp_node *new_node; -- node->alloc_dirents *= 2; -- new_node = grub_realloc (node, -- sizeof (struct grub_fshelp_node) -- + ((node->alloc_dirents -- - ARRAY_SIZE (node->dirents)) -- * sizeof (node->dirents[0]))); -+ grub_size_t sz; -+ -+ if (grub_mul (node->alloc_dirents, 2, &node->alloc_dirents) || -+ grub_sub (node->alloc_dirents, ARRAY_SIZE (node->dirents), &sz) || -+ grub_mul (sz, sizeof (node->dirents[0]), &sz) || -+ grub_add (sz, sizeof (struct grub_fshelp_node), &sz)) -+ goto fail_0; -+ -+ new_node = grub_realloc (node, sz); - if (!new_node) - { -+ fail_0: - if (ctx.filename_alloc) - grub_free (ctx.filename); - grub_free (node); -@@ -799,14 +816,18 @@ grub_iso9660_iterate_dir (grub_fshelp_node_t dir, - * sizeof (node->dirents[0]) < grub_strlen (ctx.symlink) + 1) - { - struct grub_fshelp_node *new_node; -- new_node = grub_realloc (node, -- sizeof (struct grub_fshelp_node) -- + ((node->alloc_dirents -- - ARRAY_SIZE (node->dirents)) -- * sizeof (node->dirents[0])) -- + grub_strlen (ctx.symlink) + 1); -+ grub_size_t sz; -+ -+ if (grub_sub (node->alloc_dirents, ARRAY_SIZE (node->dirents), &sz) || -+ grub_mul (sz, sizeof (node->dirents[0]), &sz) || -+ grub_add (sz, sizeof (struct grub_fshelp_node) + 1, &sz) || -+ grub_add (sz, grub_strlen (ctx.symlink), &sz)) -+ goto fail_1; -+ -+ new_node = grub_realloc (node, sz); - if (!new_node) - { -+ fail_1: - if (ctx.filename_alloc) - grub_free (ctx.filename); - grub_free (node); -diff --git a/grub-core/fs/sfs.c b/grub-core/fs/sfs.c -index 90f7fb379..de2b107a4 100644 ---- a/grub-core/fs/sfs.c -+++ b/grub-core/fs/sfs.c -@@ -26,6 +26,7 @@ - #include - #include - #include -+#include - - GRUB_MOD_LICENSE ("GPLv3+"); - -@@ -307,10 +308,15 @@ grub_sfs_read_block (grub_fshelp_node_t node, grub_disk_addr_t fileblock) - if (node->cache && node->cache_size >= node->cache_allocated) - { - struct cache_entry *e = node->cache; -- e = grub_realloc (node->cache,node->cache_allocated * 2 -- * sizeof (e[0])); -+ grub_size_t sz; -+ -+ if (grub_mul (node->cache_allocated, 2 * sizeof (e[0]), &sz)) -+ goto fail; -+ -+ e = grub_realloc (node->cache, sz); - if (!e) - { -+ fail: - grub_errno = 0; - grub_free (node->cache); - node->cache = 0; -@@ -477,10 +483,16 @@ grub_sfs_create_node (struct grub_fshelp_node **node, - grub_size_t len = grub_strlen (name); - grub_uint8_t *name_u8; - int ret; -+ grub_size_t sz; -+ -+ if (grub_mul (len, GRUB_MAX_UTF8_PER_LATIN1, &sz) || -+ grub_add (sz, 1, &sz)) -+ return 1; -+ - *node = grub_malloc (sizeof (**node)); - if (!*node) - return 1; -- name_u8 = grub_malloc (len * GRUB_MAX_UTF8_PER_LATIN1 + 1); -+ name_u8 = grub_malloc (sz); - if (!name_u8) - { - grub_free (*node); -@@ -724,8 +736,13 @@ grub_sfs_label (grub_device_t device, char **label) - data = grub_sfs_mount (disk); - if (data) - { -- grub_size_t len = grub_strlen (data->label); -- *label = grub_malloc (len * GRUB_MAX_UTF8_PER_LATIN1 + 1); -+ grub_size_t sz, len = grub_strlen (data->label); -+ -+ if (grub_mul (len, GRUB_MAX_UTF8_PER_LATIN1, &sz) || -+ grub_add (sz, 1, &sz)) -+ return GRUB_ERR_OUT_OF_RANGE; -+ -+ *label = grub_malloc (sz); - if (*label) - *grub_latin1_to_utf8 ((grub_uint8_t *) *label, - (const grub_uint8_t *) data->label, -diff --git a/grub-core/fs/squash4.c b/grub-core/fs/squash4.c -index 95d5c1e1f..785123894 100644 ---- a/grub-core/fs/squash4.c -+++ b/grub-core/fs/squash4.c -@@ -26,6 +26,7 @@ - #include - #include - #include -+#include - #include - - #include "xz.h" -@@ -459,7 +460,17 @@ grub_squash_read_symlink (grub_fshelp_node_t node) - { - char *ret; - grub_err_t err; -- ret = grub_malloc (grub_le_to_cpu32 (node->ino.symlink.namelen) + 1); -+ grub_size_t sz; -+ -+ if (grub_add (grub_le_to_cpu32 (node->ino.symlink.namelen), 1, &sz)) -+ { -+ grub_error (GRUB_ERR_OUT_OF_RANGE, N_("overflow is detected")); -+ return NULL; -+ } -+ -+ ret = grub_malloc (sz); -+ if (!ret) -+ return NULL; - - err = read_chunk (node->data, ret, - grub_le_to_cpu32 (node->ino.symlink.namelen), -@@ -506,11 +517,16 @@ grub_squash_iterate_dir (grub_fshelp_node_t dir, - - { - grub_fshelp_node_t node; -- node = grub_malloc (sizeof (*node) + dir->stsize * sizeof (dir->stack[0])); -+ grub_size_t sz; -+ -+ if (grub_mul (dir->stsize, sizeof (dir->stack[0]), &sz) || -+ grub_add (sz, sizeof (*node), &sz)) -+ return 0; -+ -+ node = grub_malloc (sz); - if (!node) - return 0; -- grub_memcpy (node, dir, -- sizeof (*node) + dir->stsize * sizeof (dir->stack[0])); -+ grub_memcpy (node, dir, sz); - if (hook (".", GRUB_FSHELP_DIR, node, hook_data)) - return 1; - -@@ -518,12 +534,15 @@ grub_squash_iterate_dir (grub_fshelp_node_t dir, - { - grub_err_t err; - -- node = grub_malloc (sizeof (*node) + dir->stsize * sizeof (dir->stack[0])); -+ if (grub_mul (dir->stsize, sizeof (dir->stack[0]), &sz) || -+ grub_add (sz, sizeof (*node), &sz)) -+ return 0; -+ -+ node = grub_malloc (sz); - if (!node) - return 0; - -- grub_memcpy (node, dir, -- sizeof (*node) + dir->stsize * sizeof (dir->stack[0])); -+ grub_memcpy (node, dir, sz); - - node->stsize--; - err = read_chunk (dir->data, &node->ino, sizeof (node->ino), -@@ -557,6 +576,7 @@ grub_squash_iterate_dir (grub_fshelp_node_t dir, - enum grub_fshelp_filetype filetype = GRUB_FSHELP_REG; - struct grub_squash_dirent di; - struct grub_squash_inode ino; -+ grub_size_t sz; - - err = read_chunk (dir->data, &di, sizeof (di), - grub_le_to_cpu64 (dir->data->sb.diroffset) -@@ -589,13 +609,16 @@ grub_squash_iterate_dir (grub_fshelp_node_t dir, - if (grub_le_to_cpu16 (di.type) == SQUASH_TYPE_SYMLINK) - filetype = GRUB_FSHELP_SYMLINK; - -- node = grub_malloc (sizeof (*node) -- + (dir->stsize + 1) * sizeof (dir->stack[0])); -+ if (grub_add (dir->stsize, 1, &sz) || -+ grub_mul (sz, sizeof (dir->stack[0]), &sz) || -+ grub_add (sz, sizeof (*node), &sz)) -+ return 0; -+ -+ node = grub_malloc (sz); - if (! node) - return 0; - -- grub_memcpy (node, dir, -- sizeof (*node) + dir->stsize * sizeof (dir->stack[0])); -+ grub_memcpy (node, dir, sz - sizeof(dir->stack[0])); - - node->ino = ino; - node->stack[node->stsize].ino_chunk = grub_le_to_cpu32 (dh.ino_chunk); -diff --git a/grub-core/fs/udf.c b/grub-core/fs/udf.c -index a83761674..21ac7f446 100644 ---- a/grub-core/fs/udf.c -+++ b/grub-core/fs/udf.c -@@ -28,6 +28,7 @@ - #include - #include - #include -+#include - - GRUB_MOD_LICENSE ("GPLv3+"); - -@@ -890,9 +891,19 @@ read_string (const grub_uint8_t *raw, grub_size_t sz, char *outbuf) - utf16[i] = (raw[2 * i + 1] << 8) | raw[2*i + 2]; - } - if (!outbuf) -- outbuf = grub_malloc (utf16len * GRUB_MAX_UTF8_PER_UTF16 + 1); -+ { -+ grub_size_t size; -+ -+ if (grub_mul (utf16len, GRUB_MAX_UTF8_PER_UTF16, &size) || -+ grub_add (size, 1, &size)) -+ goto fail; -+ -+ outbuf = grub_malloc (size); -+ } - if (outbuf) - *grub_utf16_to_utf8 ((grub_uint8_t *) outbuf, utf16, utf16len) = '\0'; -+ -+ fail: - grub_free (utf16); - return outbuf; - } -@@ -1005,7 +1016,7 @@ grub_udf_read_symlink (grub_fshelp_node_t node) - grub_size_t sz = U64 (node->block.fe.file_size); - grub_uint8_t *raw; - const grub_uint8_t *ptr; -- char *out, *optr; -+ char *out = NULL, *optr; - - if (sz < 4) - return NULL; -@@ -1013,14 +1024,16 @@ grub_udf_read_symlink (grub_fshelp_node_t node) - if (!raw) - return NULL; - if (grub_udf_read_file (node, NULL, NULL, 0, sz, (char *) raw) < 0) -- { -- grub_free (raw); -- return NULL; -- } -+ goto fail_1; - -- out = grub_malloc (sz * 2 + 1); -+ if (grub_mul (sz, 2, &sz) || -+ grub_add (sz, 1, &sz)) -+ goto fail_0; -+ -+ out = grub_malloc (sz); - if (!out) - { -+ fail_0: - grub_free (raw); - return NULL; - } -@@ -1031,17 +1044,17 @@ grub_udf_read_symlink (grub_fshelp_node_t node) - { - grub_size_t s; - if ((grub_size_t) (ptr - raw + 4) > sz) -- goto fail; -+ goto fail_1; - if (!(ptr[2] == 0 && ptr[3] == 0)) -- goto fail; -+ goto fail_1; - s = 4 + ptr[1]; - if ((grub_size_t) (ptr - raw + s) > sz) -- goto fail; -+ goto fail_1; - switch (*ptr) - { - case 1: - if (ptr[1]) -- goto fail; -+ goto fail_1; - /* Fallthrough. */ - case 2: - /* in 4 bytes. out: 1 byte. */ -@@ -1066,11 +1079,11 @@ grub_udf_read_symlink (grub_fshelp_node_t node) - if (optr != out) - *optr++ = '/'; - if (!read_string (ptr + 4, s - 4, optr)) -- goto fail; -+ goto fail_1; - optr += grub_strlen (optr); - break; - default: -- goto fail; -+ goto fail_1; - } - ptr += s; - } -@@ -1078,7 +1091,7 @@ grub_udf_read_symlink (grub_fshelp_node_t node) - grub_free (raw); - return out; - -- fail: -+ fail_1: - grub_free (raw); - grub_free (out); - grub_error (GRUB_ERR_BAD_FS, "invalid symlink"); -diff --git a/grub-core/fs/xfs.c b/grub-core/fs/xfs.c -index 96ffecbfc..ea6590290 100644 ---- a/grub-core/fs/xfs.c -+++ b/grub-core/fs/xfs.c -@@ -25,6 +25,7 @@ - #include - #include - #include -+#include - - GRUB_MOD_LICENSE ("GPLv3+"); - -@@ -899,6 +900,7 @@ static struct grub_xfs_data * - grub_xfs_mount (grub_disk_t disk) - { - struct grub_xfs_data *data = 0; -+ grub_size_t sz; - - data = grub_zalloc (sizeof (struct grub_xfs_data)); - if (!data) -@@ -913,10 +915,11 @@ grub_xfs_mount (grub_disk_t disk) - if (!grub_xfs_sb_valid(data)) - goto fail; - -- data = grub_realloc (data, -- sizeof (struct grub_xfs_data) -- - sizeof (struct grub_xfs_inode) -- + grub_xfs_inode_size(data) + 1); -+ if (grub_add (grub_xfs_inode_size (data), -+ sizeof (struct grub_xfs_data) - sizeof (struct grub_xfs_inode) + 1, &sz)) -+ goto fail; -+ -+ data = grub_realloc (data, sz); - - if (! data) - goto fail; -diff --git a/grub-core/fs/zfs/zfs.c b/grub-core/fs/zfs/zfs.c -index 381dde556..36d0373a6 100644 ---- a/grub-core/fs/zfs/zfs.c -+++ b/grub-core/fs/zfs/zfs.c -@@ -55,6 +55,7 @@ - #include - #include - #include -+#include - - GRUB_MOD_LICENSE ("GPLv3+"); - -@@ -773,11 +774,14 @@ fill_vdev_info (struct grub_zfs_data *data, - if (data->n_devices_attached > data->n_devices_allocated) - { - void *tmp; -- data->n_devices_allocated = 2 * data->n_devices_attached + 1; -- data->devices_attached -- = grub_realloc (tmp = data->devices_attached, -- data->n_devices_allocated -- * sizeof (data->devices_attached[0])); -+ grub_size_t sz; -+ -+ if (grub_mul (data->n_devices_attached, 2, &data->n_devices_allocated) || -+ grub_add (data->n_devices_allocated, 1, &data->n_devices_allocated) || -+ grub_mul (data->n_devices_allocated, sizeof (data->devices_attached[0]), &sz)) -+ return GRUB_ERR_OUT_OF_RANGE; -+ -+ data->devices_attached = grub_realloc (tmp = data->devices_attached, sz); - if (!data->devices_attached) - { - data->devices_attached = tmp; -@@ -3468,14 +3472,18 @@ grub_zfs_nvlist_lookup_nvlist (const char *nvlist, const char *name) - { - char *nvpair; - char *ret; -- grub_size_t size; -+ grub_size_t size, sz; - int found; - - found = nvlist_find_value (nvlist, name, DATA_TYPE_NVLIST, &nvpair, - &size, 0); - if (!found) - return 0; -- ret = grub_zalloc (size + 3 * sizeof (grub_uint32_t)); -+ -+ if (grub_add (size, 3 * sizeof (grub_uint32_t), &sz)) -+ return 0; -+ -+ ret = grub_zalloc (sz); - if (!ret) - return 0; - grub_memcpy (ret, nvlist, sizeof (grub_uint32_t)); -diff --git a/grub-core/fs/zfs/zfscrypt.c b/grub-core/fs/zfs/zfscrypt.c -index 1402e0bc2..de3b015f5 100644 ---- a/grub-core/fs/zfs/zfscrypt.c -+++ b/grub-core/fs/zfs/zfscrypt.c -@@ -22,6 +22,7 @@ - #include - #include - #include -+#include - #include - #include - #include -@@ -82,9 +83,13 @@ grub_zfs_add_key (grub_uint8_t *key_in, - int passphrase) - { - struct grub_zfs_wrap_key *key; -+ grub_size_t sz; -+ - if (!passphrase && keylen > 32) - keylen = 32; -- key = grub_malloc (sizeof (*key) + keylen); -+ if (grub_add (sizeof (*key), keylen, &sz)) -+ return GRUB_ERR_OUT_OF_RANGE; -+ key = grub_malloc (sz); - if (!key) - return grub_errno; - key->is_passphrase = passphrase; -diff --git a/grub-core/lib/arg.c b/grub-core/lib/arg.c -index fd7744a6f..3288609a5 100644 ---- a/grub-core/lib/arg.c -+++ b/grub-core/lib/arg.c -@@ -23,6 +23,7 @@ - #include - #include - #include -+#include - - /* Built-in parser for default options. */ - static const struct grub_arg_option help_options[] = -@@ -216,7 +217,13 @@ static inline grub_err_t - add_arg (char ***argl, int *num, char *s) - { - char **p = *argl; -- *argl = grub_realloc (*argl, (++(*num) + 1) * sizeof (char *)); -+ grub_size_t sz; -+ -+ if (grub_add (++(*num), 1, &sz) || -+ grub_mul (sz, sizeof (char *), &sz)) -+ return grub_error (GRUB_ERR_OUT_OF_RANGE, N_("overflow is detected")); -+ -+ *argl = grub_realloc (*argl, sz); - if (! *argl) - { - grub_free (p); -@@ -431,6 +438,7 @@ grub_arg_list_alloc(grub_extcmd_t extcmd, int argc, - grub_size_t argcnt; - struct grub_arg_list *list; - const struct grub_arg_option *options; -+ grub_size_t sz0, sz1; - - options = extcmd->options; - if (! options) -@@ -443,7 +451,15 @@ grub_arg_list_alloc(grub_extcmd_t extcmd, int argc, - argcnt += ((grub_size_t) argc + 1) / 2 + 1; /* max possible for any option */ - } - -- list = grub_zalloc (sizeof (*list) * i + sizeof (char*) * argcnt); -+ if (grub_mul (sizeof (*list), i, &sz0) || -+ grub_mul (sizeof (char *), argcnt, &sz1) || -+ grub_add (sz0, sz1, &sz0)) -+ { -+ grub_error (GRUB_ERR_OUT_OF_RANGE, N_("overflow is detected")); -+ return 0; -+ } -+ -+ list = grub_zalloc (sz0); - if (! list) - return 0; - -diff --git a/grub-core/loader/i386/bsd.c b/grub-core/loader/i386/bsd.c -index 3730ed382..b92cbe98d 100644 ---- a/grub-core/loader/i386/bsd.c -+++ b/grub-core/loader/i386/bsd.c -@@ -35,6 +35,7 @@ - #include - #include - #include -+#include - #include - #ifdef GRUB_MACHINE_PCBIOS - #include -@@ -1012,11 +1013,16 @@ grub_netbsd_add_modules (void) - struct grub_netbsd_btinfo_modules *mods; - unsigned i; - grub_err_t err; -+ grub_size_t sz; - - for (mod = netbsd_mods; mod; mod = mod->next) - modcnt++; - -- mods = grub_malloc (sizeof (*mods) + sizeof (mods->mods[0]) * modcnt); -+ if (grub_mul (modcnt, sizeof (mods->mods[0]), &sz) || -+ grub_add (sz, sizeof (*mods), &sz)) -+ return GRUB_ERR_OUT_OF_RANGE; -+ -+ mods = grub_malloc (sz); - if (!mods) - return grub_errno; - -diff --git a/grub-core/net/dns.c b/grub-core/net/dns.c -index e332d5eb4..906ec7d67 100644 ---- a/grub-core/net/dns.c -+++ b/grub-core/net/dns.c -@@ -22,6 +22,7 @@ - #include - #include - #include -+#include - - struct dns_cache_element - { -@@ -51,9 +52,15 @@ grub_net_add_dns_server (const struct grub_net_network_level_address *s) - { - int na = dns_servers_alloc * 2; - struct grub_net_network_level_address *ns; -+ grub_size_t sz; -+ - if (na < 8) - na = 8; -- ns = grub_realloc (dns_servers, na * sizeof (ns[0])); -+ -+ if (grub_mul (na, sizeof (ns[0]), &sz)) -+ return GRUB_ERR_OUT_OF_RANGE; -+ -+ ns = grub_realloc (dns_servers, sz); - if (!ns) - return grub_errno; - dns_servers_alloc = na; -diff --git a/grub-core/normal/charset.c b/grub-core/normal/charset.c -index d57fb72fa..4dfcc3107 100644 ---- a/grub-core/normal/charset.c -+++ b/grub-core/normal/charset.c -@@ -48,6 +48,7 @@ - #include - #include - #include -+#include - - #if HAVE_FONT_SOURCE - #include "widthspec.h" -@@ -464,6 +465,7 @@ grub_unicode_aglomerate_comb (const grub_uint32_t *in, grub_size_t inlen, - { - struct grub_unicode_combining *n; - unsigned j; -+ grub_size_t sz; - - if (!haveout) - continue; -@@ -477,10 +479,14 @@ grub_unicode_aglomerate_comb (const grub_uint32_t *in, grub_size_t inlen, - n = out->combining_inline; - else if (out->ncomb > (int) ARRAY_SIZE (out->combining_inline)) - { -- n = grub_realloc (out->combining_ptr, -- sizeof (n[0]) * (out->ncomb + 1)); -+ if (grub_add (out->ncomb, 1, &sz) || -+ grub_mul (sz, sizeof (n[0]), &sz)) -+ goto fail; -+ -+ n = grub_realloc (out->combining_ptr, sz); - if (!n) - { -+ fail: - grub_errno = GRUB_ERR_NONE; - continue; - } -diff --git a/grub-core/normal/cmdline.c b/grub-core/normal/cmdline.c -index c57242e2e..de03fe63b 100644 ---- a/grub-core/normal/cmdline.c -+++ b/grub-core/normal/cmdline.c -@@ -28,6 +28,7 @@ - #include - #include - #include -+#include - - static grub_uint32_t *kill_buf; - -@@ -307,12 +308,21 @@ cl_insert (struct cmdline_term *cl_terms, unsigned nterms, - if (len + (*llen) >= (*max_len)) - { - grub_uint32_t *nbuf; -- (*max_len) *= 2; -- nbuf = grub_realloc ((*buf), sizeof (grub_uint32_t) * (*max_len)); -+ grub_size_t sz; -+ -+ if (grub_mul (*max_len, 2, max_len) || -+ grub_mul (*max_len, sizeof (grub_uint32_t), &sz)) -+ { -+ grub_errno = GRUB_ERR_OUT_OF_RANGE; -+ goto fail; -+ } -+ -+ nbuf = grub_realloc ((*buf), sz); - if (nbuf) - (*buf) = nbuf; - else - { -+ fail: - grub_print_error (); - grub_errno = GRUB_ERR_NONE; - (*max_len) /= 2; -diff --git a/grub-core/normal/menu_entry.c b/grub-core/normal/menu_entry.c -index 1993995be..50eef918c 100644 ---- a/grub-core/normal/menu_entry.c -+++ b/grub-core/normal/menu_entry.c -@@ -27,6 +27,7 @@ - #include - #include - #include -+#include - - enum update_mode - { -@@ -113,10 +114,18 @@ ensure_space (struct line *linep, int extra) - { - if (linep->max_len < linep->len + extra) - { -- linep->max_len = 2 * (linep->len + extra); -- linep->buf = grub_realloc (linep->buf, (linep->max_len + 1) * sizeof (linep->buf[0])); -+ grub_size_t sz0, sz1; -+ -+ if (grub_add (linep->len, extra, &sz0) || -+ grub_mul (sz0, 2, &sz0) || -+ grub_add (sz0, 1, &sz1) || -+ grub_mul (sz1, sizeof (linep->buf[0]), &sz1)) -+ return 0; -+ -+ linep->buf = grub_realloc (linep->buf, sz1); - if (! linep->buf) - return 0; -+ linep->max_len = sz0; - } - - return 1; -diff --git a/grub-core/script/argv.c b/grub-core/script/argv.c -index 217ec5d1e..5751fdd57 100644 ---- a/grub-core/script/argv.c -+++ b/grub-core/script/argv.c -@@ -20,6 +20,7 @@ - #include - #include - #include -+#include - - /* Return nearest power of two that is >= v. */ - static unsigned -@@ -81,11 +82,16 @@ int - grub_script_argv_next (struct grub_script_argv *argv) - { - char **p = argv->args; -+ grub_size_t sz; - - if (argv->args && argv->argc && argv->args[argv->argc - 1] == 0) - return 0; - -- p = grub_realloc (p, round_up_exp ((argv->argc + 2) * sizeof (char *))); -+ if (grub_add (argv->argc, 2, &sz) || -+ grub_mul (sz, sizeof (char *), &sz)) -+ return 1; -+ -+ p = grub_realloc (p, round_up_exp (sz)); - if (! p) - return 1; - -@@ -105,13 +111,19 @@ grub_script_argv_append (struct grub_script_argv *argv, const char *s, - { - grub_size_t a; - char *p = argv->args[argv->argc - 1]; -+ grub_size_t sz; - - if (! s) - return 0; - - a = p ? grub_strlen (p) : 0; - -- p = grub_realloc (p, round_up_exp ((a + slen + 1) * sizeof (char))); -+ if (grub_add (a, slen, &sz) || -+ grub_add (sz, 1, &sz) || -+ grub_mul (sz, sizeof (char), &sz)) -+ return 1; -+ -+ p = grub_realloc (p, round_up_exp (sz)); - if (! p) - return 1; - -diff --git a/grub-core/script/lexer.c b/grub-core/script/lexer.c -index c6bd3172f..5fb0cbd0b 100644 ---- a/grub-core/script/lexer.c -+++ b/grub-core/script/lexer.c -@@ -24,6 +24,7 @@ - #include - #include - #include -+#include - - #define yytext_ptr char * - #include "grub_script.tab.h" -@@ -110,10 +111,14 @@ grub_script_lexer_record (struct grub_parser_param *parser, char *str) - old = lexer->recording; - if (lexer->recordlen < len) - lexer->recordlen = len; -- lexer->recordlen *= 2; -+ -+ if (grub_mul (lexer->recordlen, 2, &lexer->recordlen)) -+ goto fail; -+ - lexer->recording = grub_realloc (lexer->recording, lexer->recordlen); - if (!lexer->recording) - { -+ fail: - grub_free (old); - lexer->recordpos = 0; - lexer->recordlen = 0; -@@ -130,7 +135,7 @@ int - grub_script_lexer_yywrap (struct grub_parser_param *parserstate, - const char *input) - { -- grub_size_t len = 0; -+ grub_size_t len = 0, sz; - char *p = 0; - char *line = 0; - YY_BUFFER_STATE buffer; -@@ -168,12 +173,22 @@ grub_script_lexer_yywrap (struct grub_parser_param *parserstate, - } - else if (len && line[len - 1] != '\n') - { -- p = grub_realloc (line, len + 2); -+ if (grub_add (len, 2, &sz)) -+ { -+ grub_free (line); -+ grub_script_yyerror (parserstate, N_("overflow is detected")); -+ return 1; -+ } -+ -+ p = grub_realloc (line, sz); - if (p) - { - p[len++] = '\n'; - p[len] = '\0'; - } -+ else -+ grub_free (line); -+ - line = p; - } - -diff --git a/grub-core/video/bitmap.c b/grub-core/video/bitmap.c -index b2e031566..6256e209a 100644 ---- a/grub-core/video/bitmap.c -+++ b/grub-core/video/bitmap.c -@@ -23,6 +23,7 @@ - #include - #include - #include -+#include - - GRUB_MOD_LICENSE ("GPLv3+"); - -@@ -58,7 +59,7 @@ grub_video_bitmap_create (struct grub_video_bitmap **bitmap, - enum grub_video_blit_format blit_format) - { - struct grub_video_mode_info *mode_info; -- unsigned int size; -+ grub_size_t size; - - if (!bitmap) - return grub_error (GRUB_ERR_BUG, "invalid argument"); -@@ -137,19 +138,25 @@ grub_video_bitmap_create (struct grub_video_bitmap **bitmap, - - mode_info->pitch = width * mode_info->bytes_per_pixel; - -- /* Calculate size needed for the data. */ -- size = (width * mode_info->bytes_per_pixel) * height; -+ /* Calculate size needed for the data. */ -+ if (grub_mul (width, mode_info->bytes_per_pixel, &size) || -+ grub_mul (size, height, &size)) -+ { -+ grub_error (GRUB_ERR_OUT_OF_RANGE, N_("overflow is detected")); -+ goto fail; -+ } - - (*bitmap)->data = grub_zalloc (size); - if (! (*bitmap)->data) -- { -- grub_free (*bitmap); -- *bitmap = 0; -- -- return grub_errno; -- } -+ goto fail; - - return GRUB_ERR_NONE; -+ -+ fail: -+ grub_free (*bitmap); -+ *bitmap = NULL; -+ -+ return grub_errno; - } - - /* Frees all resources allocated by bitmap. */ -diff --git a/grub-core/video/readers/png.c b/grub-core/video/readers/png.c -index 61bd64537..0157ff742 100644 ---- a/grub-core/video/readers/png.c -+++ b/grub-core/video/readers/png.c -@@ -23,6 +23,7 @@ - #include - #include - #include -+#include - - GRUB_MOD_LICENSE ("GPLv3+"); - -@@ -301,9 +302,17 @@ grub_png_decode_image_header (struct grub_png_data *data) - data->bpp <<= 1; - - data->color_bits = color_bits; -- data->row_bytes = data->image_width * data->bpp; -+ -+ if (grub_mul (data->image_width, data->bpp, &data->row_bytes)) -+ return grub_error (GRUB_ERR_OUT_OF_RANGE, N_("overflow is detected")); -+ - if (data->color_bits <= 4) -- data->row_bytes = (data->image_width * data->color_bits + 7) / 8; -+ { -+ if (grub_mul (data->image_width, data->color_bits + 7, &data->row_bytes)) -+ return grub_error (GRUB_ERR_OUT_OF_RANGE, N_("overflow is detected")); -+ -+ data->row_bytes >>= 3; -+ } - - #ifndef GRUB_CPU_WORDS_BIGENDIAN - if (data->is_16bit || data->is_gray || data->is_palette) diff --git a/patches/grub/2.04/safe-alloc-5.patch b/patches/grub/2.04/safe-alloc-5.patch deleted file mode 100644 index 19819278c..000000000 --- a/patches/grub/2.04/safe-alloc-5.patch +++ /dev/null @@ -1,149 +0,0 @@ -From 3e6aa687d9a2f8d172536a67d0d0f8bc7adb3108 Mon Sep 17 00:00:00 2001 -From: Alexander Burmashev -Date: Wed, 22 Jul 2020 06:04:38 -0700 -Subject: update safemath with fallback code for gcc older than 5.1 - -The code used in the header was taken from linux kernel commit -f0907827a8a9152aedac2833ed1b674a7b2a44f2. Rasmus Villemoes -, the original author of the patch, was -contacted directly, confirmed his authorship of the code, and gave his -permission on treating that dual license as MIT and including into GRUB2 -sources - -Signed-off-by: Alex Burmashev - -Patch-Name: safe-alloc-5.patch ---- - include/grub/safemath.h | 119 +++++++++++++++++++++++++++++++++++++++- - 1 file changed, 118 insertions(+), 1 deletion(-) - -diff --git a/include/grub/safemath.h b/include/grub/safemath.h -index c17b89bba..1ccac276b 100644 ---- a/include/grub/safemath.h -+++ b/include/grub/safemath.h -@@ -31,7 +31,124 @@ - #define grub_mul(a, b, res) __builtin_mul_overflow(a, b, res) - - #else --#error gcc 5.1 or newer or clang 3.8 or newer is required -+/* -+ * Copyright 2020 Rasmus Villemoes -+ * -+ * Permission is hereby granted, free of charge, to any person obtaining a copy -+ * of this software and associated documentation files (the "Software"), to -+ * deal in the Software without restriction, including without limitation the -+ * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -+ * sell copies of the Software, and to permit persons to whom the Software is -+ * furnished to do so, subject to the following conditions: -+ * -+ * The above copyright notice and this permission notice shall be included in -+ * all copies or substantial portions of the Software. -+ -+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS -+ * IN THE SOFTWARE. -+ */ -+/* -+ * The code used in this header was taken from linux kernel commit -+ * f0907827a8a9152aedac2833ed1b674a7b2a44f2 -+ * Rasmus Villemoes , the original author of the -+ * patch, was contacted directly, confirmed his authorship of the code, and -+ * gave his permission on treating that dual license as MIT and including into -+ * GRUB2 sources -+ */ -+ -+#include -+#define is_signed_type(type) (((type)(-1)) < (type)1) -+#define __type_half_max(type) ((type)1 << (8*sizeof(type) - 1 - is_signed_type(type))) -+#define type_max(T) ((T)((__type_half_max(T) - 1) + __type_half_max(T))) -+#define type_min(T) ((T)((T)-type_max(T)-(T)1)) -+ -+#define __unsigned_add_overflow(a, b, d) ({ \ -+ typeof(+(a)) __a = (a); \ -+ typeof(+(b)) __b = (b); \ -+ typeof(d) __d = (d); \ -+ (void) (&__a == &__b); \ -+ (void) (&__a == __d); \ -+ *__d = __a + __b; \ -+ *__d < __a; \ -+}) -+#define __unsigned_sub_overflow(a, b, d) ({ \ -+ typeof(+(a)) __a = (a); \ -+ typeof(+(b)) __b = (b); \ -+ typeof(d) __d = (d); \ -+ (void) (&__a == &__b); \ -+ (void) (&__a == __d); \ -+ *__d = __a - __b; \ -+ __a < __b; \ -+}) -+#define __unsigned_mul_overflow(a, b, d) ({ \ -+ typeof(+(a)) __a = (a); \ -+ typeof(+(b)) __b = (b); \ -+ typeof(d) __d = (d); \ -+ (void) (&__a == &__b); \ -+ (void) (&__a == __d); \ -+ *__d = __a * __b; \ -+ __builtin_constant_p(__b) ? \ -+ __b > 0 && __a > type_max(typeof(__a)) / __b :\ -+ __a > 0 && __b > type_max(typeof(__b)) / __a; \ -+}) -+ -+#define __signed_add_overflow(a, b, d) ({ \ -+ typeof(+(a)) __a = (a); \ -+ typeof(+(b)) __b = (b); \ -+ typeof(d) __d = (d); \ -+ (void) (&__a == &__b); \ -+ (void) (&__a == __d); \ -+ *__d = (grub_uint64_t)__a + (grub_uint64_t)__b; \ -+ (((~(__a ^ __b)) & (*__d ^ __a)) \ -+ & type_min(typeof(__a))) != 0; \ -+}) -+ -+#define __signed_sub_overflow(a, b, d) ({ \ -+ typeof(+(a)) __a = (a); \ -+ typeof(+(b)) __b = (b); \ -+ typeof(d) __d = (d); \ -+ (void) (&__a == &__b); \ -+ (void) (&__a == __d); \ -+ *__d = (grub_uint64_t)__a - (grub_uint64_t)__b; \ -+ ((((__a ^ __b)) & (*__d ^ __a)) \ -+ & type_min(typeof(__a))) != 0; \ -+}) -+ -+#define __signed_mul_overflow(a, b, d) ({ \ -+ typeof(+(a)) __a = (a); \ -+ typeof(+(b)) __b = (b); \ -+ typeof(d) __d = (d); \ -+ typeof(+(a)) __tmax = type_max(typeof(+(a))); \ -+ typeof(+(a)) __tmin = type_min(typeof(+(a))); \ -+ (void) (&__a == &__b); \ -+ (void) (&__a == __d); \ -+ *__d = (grub_uint64_t)__a * (grub_uint64_t)__b; \ -+ (__b > 0 && (__a > __tmax/__b || __a < __tmin/__b)) ||\ -+ (__b < (typeof(__b))-1 && \ -+ (__a > __tmin/__b || __a < __tmax/__b)) || \ -+ (__b == (typeof(__b))-1 && __a == __tmin); \ -+}) -+ -+#define grub_add(a, b, d) \ -+ __builtin_choose_expr(is_signed_type(typeof(+(a))), \ -+ __signed_add_overflow(a, b, d), \ -+ __unsigned_add_overflow(a, b, d)) -+ -+#define grub_sub(a, b, d) \ -+ __builtin_choose_expr(is_signed_type(typeof(+(a))), \ -+ __signed_sub_overflow(a, b, d), \ -+ __unsigned_sub_overflow(a, b, d)) -+ -+#define grub_mul(a, b, d) \ -+ __builtin_choose_expr(is_signed_type(typeof(+(a))), \ -+ __signed_mul_overflow(a, b, d), \ -+ __unsigned_mul_overflow(a, b, d)) -+ - #endif - - #endif /* GRUB_SAFEMATH_H */ diff --git a/patches/grub/2.04/script-remove-unused-fields.patch b/patches/grub/2.04/script-remove-unused-fields.patch deleted file mode 100644 index c1bd21f14..000000000 --- a/patches/grub/2.04/script-remove-unused-fields.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 7855b7e78de5f257fa686ec569bda27472c4f5da Mon Sep 17 00:00:00 2001 -From: Chris Coulson -Date: Fri, 10 Jul 2020 11:21:14 +0100 -Subject: script: Remove unused fields from grub_script_function struct - -Signed-off-by: Chris Coulson -Reviewed-by: Daniel Kiper - -Patch-Name: script-remove-unused-fields.patch ---- - include/grub/script_sh.h | 5 ----- - 1 file changed, 5 deletions(-) - -diff --git a/include/grub/script_sh.h b/include/grub/script_sh.h -index 360c2be1f..b382bcf09 100644 ---- a/include/grub/script_sh.h -+++ b/include/grub/script_sh.h -@@ -359,13 +359,8 @@ struct grub_script_function - /* The script function. */ - struct grub_script *func; - -- /* The flags. */ -- unsigned flags; -- - /* The next element. */ - struct grub_script_function *next; -- -- int references; - }; - typedef struct grub_script_function *grub_script_function_t; - diff --git a/patches/grub/2.04/script-use-after-free.patch b/patches/grub/2.04/script-use-after-free.patch deleted file mode 100644 index 989076a39..000000000 --- a/patches/grub/2.04/script-use-after-free.patch +++ /dev/null @@ -1,108 +0,0 @@ -From fdc80d2460e5d3b54f5cde8657f9e171b0b9a376 Mon Sep 17 00:00:00 2001 -From: Chris Coulson -Date: Fri, 10 Jul 2020 14:41:45 +0100 -Subject: script: Avoid a use-after-free when redefining a function during - execution - -Defining a new function with the same name as a previously defined -function causes the grub_script and associated resources for the -previous function to be freed. If the previous function is currently -executing when a function with the same name is defined, this results -in use-after-frees when processing subsequent commands in the original -function. - -Instead, reject a new function definition if it has the same name as -a previously defined function, and that function is currently being -executed. Although a behavioural change, this should be backwards -compatible with existing configurations because they can't be -dependent on the current behaviour without being broken. - -Fixes: CVE-2020-15706 - -Signed-off-by: Chris Coulson -Reviewed-by: Daniel Kiper - -Patch-Name: script-use-after-free.patch ---- - grub-core/script/execute.c | 2 ++ - grub-core/script/function.c | 16 +++++++++++++--- - grub-core/script/parser.y | 3 ++- - include/grub/script_sh.h | 2 ++ - 4 files changed, 19 insertions(+), 4 deletions(-) - -diff --git a/grub-core/script/execute.c b/grub-core/script/execute.c -index c8d6806fe..7e028e135 100644 ---- a/grub-core/script/execute.c -+++ b/grub-core/script/execute.c -@@ -838,7 +838,9 @@ grub_script_function_call (grub_script_function_t func, int argc, char **args) - old_scope = scope; - scope = &new_scope; - -+ func->executing++; - ret = grub_script_execute (func->func); -+ func->executing--; - - function_return = 0; - active_loops = loops; -diff --git a/grub-core/script/function.c b/grub-core/script/function.c -index d36655e51..3aad04bf9 100644 ---- a/grub-core/script/function.c -+++ b/grub-core/script/function.c -@@ -34,6 +34,7 @@ grub_script_function_create (struct grub_script_arg *functionname_arg, - func = (grub_script_function_t) grub_malloc (sizeof (*func)); - if (! func) - return 0; -+ func->executing = 0; - - func->name = grub_strdup (functionname_arg->str); - if (! func->name) -@@ -60,10 +61,19 @@ grub_script_function_create (struct grub_script_arg *functionname_arg, - grub_script_function_t q; - - q = *p; -- grub_script_free (q->func); -- q->func = cmd; - grub_free (func); -- func = q; -+ if (q->executing > 0) -+ { -+ grub_error (GRUB_ERR_BAD_ARGUMENT, -+ N_("attempt to redefine a function being executed")); -+ func = NULL; -+ } -+ else -+ { -+ grub_script_free (q->func); -+ q->func = cmd; -+ func = q; -+ } - } - else - { -diff --git a/grub-core/script/parser.y b/grub-core/script/parser.y -index 4f0ab8319..f80b86b6f 100644 ---- a/grub-core/script/parser.y -+++ b/grub-core/script/parser.y -@@ -289,7 +289,8 @@ function: "function" "name" - grub_script_mem_free (state->func_mem); - else { - script->children = state->scripts; -- grub_script_function_create ($2, script); -+ if (!grub_script_function_create ($2, script)) -+ grub_script_free (script); - } - - state->scripts = $3; -diff --git a/include/grub/script_sh.h b/include/grub/script_sh.h -index b382bcf09..6c48e0751 100644 ---- a/include/grub/script_sh.h -+++ b/include/grub/script_sh.h -@@ -361,6 +361,8 @@ struct grub_script_function - - /* The next element. */ - struct grub_script_function *next; -+ -+ unsigned executing; - }; - typedef struct grub_script_function *grub_script_function_t; - diff --git a/patches/grub/2.04/series b/patches/grub/2.04/series deleted file mode 100644 index 725c3d945..000000000 --- a/patches/grub/2.04/series +++ /dev/null @@ -1,99 +0,0 @@ -olpc-prefix-hack.patch -core-in-fs.patch -dpkg-version-comparison.patch -grub-legacy-0-based-partitions.patch -disable-floppies.patch -grub.cfg-400.patch -gfxpayload-keep-default.patch -install-stage2-confusion.patch -mkrescue-efi-modules.patch -mkconfig-loopback.patch -restore-mkdevicemap.patch -gettext-quiet.patch -install-efi-fallback.patch -mkconfig-ubuntu-recovery.patch -install-locale-langpack.patch -mkconfig-nonexistent-loopback.patch -no-insmod-on-sb.patch -default-grub-d.patch -blacklist-1440x900x32.patch -uefi-firmware-setup.patch -mkconfig-ubuntu-distributor.patch -linuxefi.patch -mkconfig-signed-kernel.patch -install-signed.patch -sleep-shift.patch -wubi-no-windows.patch -maybe-quiet.patch -install-efi-adjust-distributor.patch -quick-boot.patch -quick-boot-lvm.patch -gfxpayload-dynamic.patch -vt-handoff.patch -probe-fusionio.patch -ignore-grub_func_test-failures.patch -mkconfig-recovery-title.patch -install-powerpc-machtypes.patch -ieee1275-clear-reset.patch -ppc64el-disable-vsx.patch -grub-install-pvxen-paths.patch -insmod-xzio-and-lzopio-on-xen.patch -grub-install-extra-removable.patch -mkconfig-other-inits.patch -zpool-full-device-name.patch -net-read-bracketed-ipv6-addr.patch -bootp-new-net_bootp6-command.patch -efinet-uefi-ipv6-pxe-support.patch -bootp-process-dhcpack-http-boot.patch -efinet-set-network-from-uefi-devpath.patch -efinet-set-dns-from-uefi-proto.patch -fix-lockdown.patch -skip-grub_cmd_set_date.patch -bash-completion-drop-have-checks.patch -at_keyboard-module-init.patch -uefi-secure-boot-cryptomount.patch -vsnprintf-upper-case-hex.patch -efi-variable-storage-minimise-writes.patch -no-devicetree-if-secure-boot.patch -grub-install-removable-shim.patch -sparc64-fix-bios-boot-partition-support.patch -verifiers-blocklist-fallout.patch -btrfs-raid1c34.patch -dejavu-font-path.patch -xen-ignore-xenpolicy-and-config.patch -xen-support-xsm.patch -xen-no-xsm-policy-in-non-xsm-options.patch -CVE-2020-10713.patch -safe-alloc-1.patch -safe-alloc-2.patch -safe-alloc-3.patch -safe-alloc-4.patch -iso9660-realloc-leak.patch -font-name-leak.patch -gfxmenu-load-image-double-free.patch -xnu-double-free.patch -lzma-overflow.patch -term-overflow.patch -udf-leak.patch -multiboot2-leak.patch -tftp-no-priority-queue.patch -relocator-chunk-addr-overflow.patch -relocator-chunk-align-underflow.patch -script-remove-unused-fields.patch -script-use-after-free.patch -relocator-chunk-align-fix-top.patch -hfsplus-overflow.patch -lvm-overflow.patch -emu-free-null.patch -efi-malformed-device-path.patch -efi-malformed-device-path-2.patch -safe-alloc-5.patch -efi-halt-reboot-use-after-free.patch -linux-loader-overflow.patch -linux-initrd-overflow.patch -bootp-alloc.patch -unix-config-overflow.patch -deviceiter-overflow.patch -is_sb_enabled_command.patch -mdraid1x-linux-gcc-10.patch -zfs-gcc-10.patch diff --git a/patches/grub/2.04/skip-grub_cmd_set_date.patch b/patches/grub/2.04/skip-grub_cmd_set_date.patch deleted file mode 100644 index 67faaa4a4..000000000 --- a/patches/grub/2.04/skip-grub_cmd_set_date.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 00fc42d9bcd934148a927dc94ccbb59084a420db Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Sun, 28 Oct 2018 19:45:56 +0000 -Subject: Skip flaky grub_cmd_set_date test - -Bug-Debian: https://bugs.debian.org/906470 -Last-Update: 2018-10-28 - -Patch-Name: skip-grub_cmd_set_date.patch ---- - tests/grub_cmd_set_date.in | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/tests/grub_cmd_set_date.in b/tests/grub_cmd_set_date.in -index aac120a6c..1bb5be4ca 100644 ---- a/tests/grub_cmd_set_date.in -+++ b/tests/grub_cmd_set_date.in -@@ -1,6 +1,9 @@ - #! @BUILD_SHEBANG@ - set -e - -+echo "Skipping flaky test." -+exit 77 -+ - . "@builddir@/grub-core/modinfo.sh" - - case "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" in diff --git a/patches/grub/2.04/sleep-shift.patch b/patches/grub/2.04/sleep-shift.patch deleted file mode 100644 index 34ea6242d..000000000 --- a/patches/grub/2.04/sleep-shift.patch +++ /dev/null @@ -1,95 +0,0 @@ -From 5d7d236d606632d194bdec1b8cfb52b2ecbaa5a6 Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Mon, 13 Jan 2014 12:13:23 +0000 -Subject: Allow Shift to interrupt 'sleep --interruptible' - -Upstream would like to consider this at more length. See -http://lists.gnu.org/archive/html/grub-devel/2009-08/msg00718.html, and -the rest of the thread for context. - -Forwarded: http://lists.gnu.org/archive/html/grub-devel/2009-08/msg00694.html -Last-Update: 2013-12-04 - -Patch-Name: sleep-shift.patch ---- - grub-core/commands/sleep.c | 27 ++++++++++++++++++++++++++- - grub-core/normal/menu.c | 19 +++++++++++++++++++ - 2 files changed, 45 insertions(+), 1 deletion(-) - -diff --git a/grub-core/commands/sleep.c b/grub-core/commands/sleep.c -index e77e7900f..3906b1410 100644 ---- a/grub-core/commands/sleep.c -+++ b/grub-core/commands/sleep.c -@@ -46,6 +46,31 @@ do_print (int n) - grub_refresh (); - } - -+static int -+grub_check_keyboard (void) -+{ -+ int mods = 0; -+ grub_term_input_t term; -+ -+ if (grub_term_poll_usb) -+ grub_term_poll_usb (0); -+ -+ FOR_ACTIVE_TERM_INPUTS(term) -+ { -+ if (term->getkeystatus) -+ mods |= term->getkeystatus (term); -+ } -+ -+ if (mods >= 0 && -+ (mods & (GRUB_TERM_STATUS_LSHIFT | GRUB_TERM_STATUS_RSHIFT)) != 0) -+ return 1; -+ -+ if (grub_getkey_noblock () == GRUB_TERM_ESC) -+ return 1; -+ -+ return 0; -+} -+ - /* Based on grub_millisleep() from kern/generic/millisleep.c. */ - static int - grub_interruptible_millisleep (grub_uint32_t ms) -@@ -55,7 +80,7 @@ grub_interruptible_millisleep (grub_uint32_t ms) - start = grub_get_time_ms (); - - while (grub_get_time_ms () - start < ms) -- if (grub_getkey_noblock () == GRUB_TERM_ESC) -+ if (grub_check_keyboard ()) - return 1; - - return 0; -diff --git a/grub-core/normal/menu.c b/grub-core/normal/menu.c -index d5e0c79a7..3611ee9ea 100644 ---- a/grub-core/normal/menu.c -+++ b/grub-core/normal/menu.c -@@ -615,8 +615,27 @@ run_menu (grub_menu_t menu, int nested, int *auto_boot) - saved_time = grub_get_time_ms (); - while (1) - { -+ int mods = 0; -+ grub_term_input_t term; - int key; - -+ if (grub_term_poll_usb) -+ grub_term_poll_usb (0); -+ -+ FOR_ACTIVE_TERM_INPUTS(term) -+ { -+ if (term->getkeystatus) -+ mods |= term->getkeystatus (term); -+ } -+ -+ if (mods >= 0 && -+ (mods & (GRUB_TERM_STATUS_LSHIFT -+ | GRUB_TERM_STATUS_RSHIFT)) != 0) -+ { -+ timeout = -1; -+ break; -+ } -+ - key = grub_getkey_noblock (); - if (key != GRUB_TERM_NO_KEY) - { diff --git a/patches/grub/2.04/sparc64-fix-bios-boot-partition-support.patch b/patches/grub/2.04/sparc64-fix-bios-boot-partition-support.patch deleted file mode 100644 index 69ef28727..000000000 --- a/patches/grub/2.04/sparc64-fix-bios-boot-partition-support.patch +++ /dev/null @@ -1,49 +0,0 @@ -From c5ab3241ea94f769437b08a26fa15b0872b03da4 Mon Sep 17 00:00:00 2001 -From: James Clarke -Date: Thu, 18 Jul 2019 14:31:55 +0200 -Subject: [PATCH] sparc64: Fix BIOS Boot Partition support - -Currently, gpt_offset is uninitialised when using a BIOS Boot Partition -but is used unconditionally inside save_blocklists. Instead, ensure it -is always initialised to 0 (note that there is already separate code to -do the equivalent adjustment after we call save_blocklists on this code -path). - -This patch has been tested on a T5-2 LDOM. - -Signed-off-by: James Clarke -Tested-by: John Paul Adrian Glaubitz -Reviewed-by: Vladimir Serbinenko -Reviewed-by: Eric Snowberg - -Origin: upstream, https://git.savannah.gnu.org/cgit/grub.git/commit/?id=4e75b2ae313b13b5bfb54cc5e5c53368d6eb2a08 -Bug-Debian: https://bugs.debian.org/931969 -Last-Update: 2019-08-06 - -Patch-Name: sparc64-fix-bios-boot-partition-support.patch ---- - util/setup.c | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/util/setup.c b/util/setup.c -index fbdf2fcc5..512977000 100644 ---- a/util/setup.c -+++ b/util/setup.c -@@ -272,6 +272,9 @@ SETUP (const char *dir, - #ifdef GRUB_SETUP_BIOS - bl.current_segment = - GRUB_BOOT_I386_PC_KERNEL_SEG + (GRUB_DISK_SECTOR_SIZE >> 4); -+#endif -+#ifdef GRUB_SETUP_SPARC64 -+ bl.gpt_offset = 0; - #endif - bl.last_length = 0; - -@@ -738,7 +741,6 @@ unable_to_embed: - #ifdef GRUB_SETUP_SPARC64 - { - grub_partition_t container = root_dev->disk->partition; -- bl.gpt_offset = 0; - - if (grub_strstr (container->partmap->name, "gpt")) - bl.gpt_offset = grub_partition_get_start (container); diff --git a/patches/grub/2.04/term-overflow.patch b/patches/grub/2.04/term-overflow.patch deleted file mode 100644 index 5baaa9242..000000000 --- a/patches/grub/2.04/term-overflow.patch +++ /dev/null @@ -1,64 +0,0 @@ -From 2328abbe2caa2129084da04a3e19461ddc571549 Mon Sep 17 00:00:00 2001 -From: Konrad Rzeszutek Wilk -Date: Tue, 7 Jul 2020 15:12:25 -0400 -Subject: term: Fix overflow on user inputs - -This requires a very weird input from the serial interface but can cause -an overflow in input_buf (keys) overwriting the next variable (npending) -with the user choice: - -(pahole output) - -struct grub_terminfo_input_state { - int input_buf[6]; /* 0 24 */ - int npending; /* 24 4 */ <- CORRUPT - ...snip... - -The magic string requires causing this is "ESC,O,],0,1,2,q" and we overflow -npending with "q" (aka increase npending to 161). The simplest fix is to -just to disallow overwrites input_buf, which exactly what this patch does. - -Fixes: CID 292449 - -Signed-off-by: Konrad Rzeszutek Wilk -Reviewed-by: Daniel Kiper - -Patch-Name: term-overflow.patch ---- - grub-core/term/terminfo.c | 9 ++++++--- - 1 file changed, 6 insertions(+), 3 deletions(-) - -diff --git a/grub-core/term/terminfo.c b/grub-core/term/terminfo.c -index 63892ad42..aa3a108ca 100644 ---- a/grub-core/term/terminfo.c -+++ b/grub-core/term/terminfo.c -@@ -398,7 +398,7 @@ grub_terminfo_getwh (struct grub_term_output *term) - } - - static void --grub_terminfo_readkey (struct grub_term_input *term, int *keys, int *len, -+grub_terminfo_readkey (struct grub_term_input *term, int *keys, int *len, int max_len, - int (*readkey) (struct grub_term_input *term)) - { - int c; -@@ -414,6 +414,9 @@ grub_terminfo_readkey (struct grub_term_input *term, int *keys, int *len, - if (c == -1) \ - return; \ - \ -+ if (*len >= max_len) \ -+ return; \ -+ \ - keys[*len] = c; \ - (*len)++; \ - } -@@ -602,8 +605,8 @@ grub_terminfo_getkey (struct grub_term_input *termi) - return ret; - } - -- grub_terminfo_readkey (termi, data->input_buf, -- &data->npending, data->readkey); -+ grub_terminfo_readkey (termi, data->input_buf, &data->npending, -+ GRUB_TERMINFO_READKEY_MAX_LEN, data->readkey); - - #if defined(__powerpc__) && defined(GRUB_MACHINE_IEEE1275) - if (data->npending == 1 && data->input_buf[0] == GRUB_TERM_ESC diff --git a/patches/grub/2.04/tftp-no-priority-queue.patch b/patches/grub/2.04/tftp-no-priority-queue.patch deleted file mode 100644 index 8aaae63ec..000000000 --- a/patches/grub/2.04/tftp-no-priority-queue.patch +++ /dev/null @@ -1,281 +0,0 @@ -From 7726da0d972c3996b3ced02586204334eb03d472 Mon Sep 17 00:00:00 2001 -From: Alexey Makhalov -Date: Thu, 9 Jul 2020 08:10:40 +0000 -Subject: tftp: Do not use priority queue - -There is not need to reassemble the order of blocks. Per RFC 1350, -server must wait for the ACK, before sending next block. Data packets -can be served immediately without putting them to priority queue. - -Logic to handle incoming packet is this: - - if packet block id equal to expected block id, then - process the packet, - - if packet block id is less than expected - this is retransmit - of old packet, then ACK it and drop the packet, - - if packet block id is more than expected - that shouldn't - happen, just drop the packet. - -It makes the tftp receive path code simpler, smaller and faster. -As a benefit, this change fixes CID# 73624 and CID# 96690, caused -by following while loop: - - while (cmp_block (grub_be_to_cpu16 (tftph->u.data.block), data->block + 1) == 0) - -where tftph pointer is not moving from one iteration to another, causing -to serve same packet again. Luckily, double serving didn't happen due to -data->block++ during the first iteration. - -Fixes: CID 73624, CID 96690 - -Signed-off-by: Alexey Makhalov -Reviewed-by: Daniel Kiper - -Patch-Name: tftp-no-priority-queue.patch ---- - grub-core/net/tftp.c | 168 ++++++++++++++----------------------------- - 1 file changed, 53 insertions(+), 115 deletions(-) - -diff --git a/grub-core/net/tftp.c b/grub-core/net/tftp.c -index a0817a075..84229d03d 100644 ---- a/grub-core/net/tftp.c -+++ b/grub-core/net/tftp.c -@@ -25,7 +25,6 @@ - #include - #include - #include --#include - #include - - GRUB_MOD_LICENSE ("GPLv3+"); -@@ -106,31 +105,8 @@ typedef struct tftp_data - int have_oack; - struct grub_error_saved save_err; - grub_net_udp_socket_t sock; -- grub_priority_queue_t pq; - } *tftp_data_t; - --static int --cmp_block (grub_uint16_t a, grub_uint16_t b) --{ -- grub_int16_t i = (grub_int16_t) (a - b); -- if (i > 0) -- return +1; -- if (i < 0) -- return -1; -- return 0; --} -- --static int --cmp (const void *a__, const void *b__) --{ -- struct grub_net_buff *a_ = *(struct grub_net_buff **) a__; -- struct grub_net_buff *b_ = *(struct grub_net_buff **) b__; -- struct tftphdr *a = (struct tftphdr *) a_->data; -- struct tftphdr *b = (struct tftphdr *) b_->data; -- /* We want the first elements to be on top. */ -- return -cmp_block (grub_be_to_cpu16 (a->u.data.block), grub_be_to_cpu16 (b->u.data.block)); --} -- - static grub_err_t - ack (tftp_data_t data, grub_uint64_t block) - { -@@ -207,73 +183,60 @@ tftp_receive (grub_net_udp_socket_t sock __attribute__ ((unused)), - return GRUB_ERR_NONE; - } - -- err = grub_priority_queue_push (data->pq, &nb); -- if (err) -- return err; -- -- { -- struct grub_net_buff **nb_top_p, *nb_top; -- while (1) -- { -- nb_top_p = grub_priority_queue_top (data->pq); -- if (!nb_top_p) -- return GRUB_ERR_NONE; -- nb_top = *nb_top_p; -- tftph = (struct tftphdr *) nb_top->data; -- if (cmp_block (grub_be_to_cpu16 (tftph->u.data.block), data->block + 1) >= 0) -- break; -- ack (data, grub_be_to_cpu16 (tftph->u.data.block)); -- grub_netbuff_free (nb_top); -- grub_priority_queue_pop (data->pq); -- } -- while (cmp_block (grub_be_to_cpu16 (tftph->u.data.block), data->block + 1) == 0) -- { -- unsigned size; -- -- grub_priority_queue_pop (data->pq); -- -- if (file->device->net->packs.count < 50) -+ /* Ack old/retransmitted block. */ -+ if (grub_be_to_cpu16 (tftph->u.data.block) < data->block + 1) -+ ack (data, grub_be_to_cpu16 (tftph->u.data.block)); -+ /* Ignore unexpected block. */ -+ else if (grub_be_to_cpu16 (tftph->u.data.block) > data->block + 1) -+ grub_dprintf ("tftp", "TFTP unexpected block # %d\n", tftph->u.data.block); -+ else -+ { -+ unsigned size; -+ -+ if (file->device->net->packs.count < 50) -+ { - err = ack (data, data->block + 1); -- else -- { -- file->device->net->stall = 1; -- err = 0; -- } -- if (err) -- return err; -- -- err = grub_netbuff_pull (nb_top, sizeof (tftph->opcode) + -- sizeof (tftph->u.data.block)); -- if (err) -- return err; -- size = nb_top->tail - nb_top->data; -- -- data->block++; -- if (size < data->block_size) -- { -- if (data->ack_sent < data->block) -- ack (data, data->block); -- file->device->net->eof = 1; -- file->device->net->stall = 1; -- grub_net_udp_close (data->sock); -- data->sock = NULL; -- } -- /* Prevent garbage in broken cards. Is it still necessary -- given that IP implementation has been fixed? -- */ -- if (size > data->block_size) -- { -- err = grub_netbuff_unput (nb_top, size - data->block_size); -- if (err) -- return err; -- } -- /* If there is data, puts packet in socket list. */ -- if ((nb_top->tail - nb_top->data) > 0) -- grub_net_put_packet (&file->device->net->packs, nb_top); -- else -- grub_netbuff_free (nb_top); -- } -- } -+ if (err) -+ return err; -+ } -+ else -+ file->device->net->stall = 1; -+ -+ err = grub_netbuff_pull (nb, sizeof (tftph->opcode) + -+ sizeof (tftph->u.data.block)); -+ if (err) -+ return err; -+ size = nb->tail - nb->data; -+ -+ data->block++; -+ if (size < data->block_size) -+ { -+ if (data->ack_sent < data->block) -+ ack (data, data->block); -+ file->device->net->eof = 1; -+ file->device->net->stall = 1; -+ grub_net_udp_close (data->sock); -+ data->sock = NULL; -+ } -+ /* -+ * Prevent garbage in broken cards. Is it still necessary -+ * given that IP implementation has been fixed? -+ */ -+ if (size > data->block_size) -+ { -+ err = grub_netbuff_unput (nb, size - data->block_size); -+ if (err) -+ return err; -+ } -+ /* If there is data, puts packet in socket list. */ -+ if ((nb->tail - nb->data) > 0) -+ { -+ grub_net_put_packet (&file->device->net->packs, nb); -+ /* Do not free nb. */ -+ return GRUB_ERR_NONE; -+ } -+ } -+ grub_netbuff_free (nb); - return GRUB_ERR_NONE; - case TFTP_ERROR: - data->have_oack = 1; -@@ -287,19 +250,6 @@ tftp_receive (grub_net_udp_socket_t sock __attribute__ ((unused)), - } - } - --static void --destroy_pq (tftp_data_t data) --{ -- struct grub_net_buff **nb_p; -- while ((nb_p = grub_priority_queue_top (data->pq))) -- { -- grub_netbuff_free (*nb_p); -- grub_priority_queue_pop (data->pq); -- } -- -- grub_priority_queue_destroy (data->pq); --} -- - static grub_err_t - tftp_open (struct grub_file *file, const char *filename) - { -@@ -373,20 +323,12 @@ tftp_open (struct grub_file *file, const char *filename) - file->not_easily_seekable = 1; - file->data = data; - -- data->pq = grub_priority_queue_new (sizeof (struct grub_net_buff *), cmp); -- if (!data->pq) -- { -- grub_free (data); -- return grub_errno; -- } -- - err = grub_net_resolve_address (file->device->net->server, &addr); - if (err) - { - grub_dprintf ("tftp", "file_size is %llu, block_size is %llu\n", - (unsigned long long)data->file_size, - (unsigned long long)data->block_size); -- destroy_pq (data); - grub_free (data); - return err; - } -@@ -396,7 +338,6 @@ tftp_open (struct grub_file *file, const char *filename) - file); - if (!data->sock) - { -- destroy_pq (data); - grub_free (data); - return grub_errno; - } -@@ -410,7 +351,6 @@ tftp_open (struct grub_file *file, const char *filename) - if (err) - { - grub_net_udp_close (data->sock); -- destroy_pq (data); - grub_free (data); - return err; - } -@@ -427,7 +367,6 @@ tftp_open (struct grub_file *file, const char *filename) - if (grub_errno) - { - grub_net_udp_close (data->sock); -- destroy_pq (data); - grub_free (data); - return grub_errno; - } -@@ -470,7 +409,6 @@ tftp_close (struct grub_file *file) - grub_print_error (); - grub_net_udp_close (data->sock); - } -- destroy_pq (data); - grub_free (data); - return GRUB_ERR_NONE; - } diff --git a/patches/grub/2.04/udf-leak.patch b/patches/grub/2.04/udf-leak.patch deleted file mode 100644 index a06d1db76..000000000 --- a/patches/grub/2.04/udf-leak.patch +++ /dev/null @@ -1,54 +0,0 @@ -From ba1d97845644290f03754432bcb6bbd6fefe7003 Mon Sep 17 00:00:00 2001 -From: Konrad Rzeszutek Wilk -Date: Tue, 7 Jul 2020 22:02:31 -0400 -Subject: udf: Fix memory leak - -Fixes: CID 73796 - -Signed-off-by: Konrad Rzeszutek Wilk -Reviewed-by: Daniel Kiper -Reviewed-by: Jan Setje-Eilers - -Patch-Name: udf-leak.patch ---- - grub-core/fs/udf.c | 17 +++++++++++++---- - 1 file changed, 13 insertions(+), 4 deletions(-) - -diff --git a/grub-core/fs/udf.c b/grub-core/fs/udf.c -index 21ac7f446..2ac5c1d00 100644 ---- a/grub-core/fs/udf.c -+++ b/grub-core/fs/udf.c -@@ -965,8 +965,10 @@ grub_udf_iterate_dir (grub_fshelp_node_t dir, - return 0; - - if (grub_udf_read_icb (dir->data, &dirent.icb, child)) -- return 0; -- -+ { -+ grub_free (child); -+ return 0; -+ } - if (dirent.characteristics & GRUB_UDF_FID_CHAR_PARENT) - { - /* This is the parent directory. */ -@@ -988,11 +990,18 @@ grub_udf_iterate_dir (grub_fshelp_node_t dir, - dirent.file_ident_length, - (char *) raw)) - != dirent.file_ident_length) -- return 0; -+ { -+ grub_free (child); -+ return 0; -+ } - - filename = read_string (raw, dirent.file_ident_length, 0); - if (!filename) -- grub_print_error (); -+ { -+ /* As the hook won't get called. */ -+ grub_free (child); -+ grub_print_error (); -+ } - - if (filename && hook (filename, type, child, hook_data)) - { diff --git a/patches/grub/2.04/uefi-firmware-setup.patch b/patches/grub/2.04/uefi-firmware-setup.patch deleted file mode 100644 index a3b64c4ab..000000000 --- a/patches/grub/2.04/uefi-firmware-setup.patch +++ /dev/null @@ -1,84 +0,0 @@ -From 13d2fe93f081930f1976fbd532672b44c5e7f90a Mon Sep 17 00:00:00 2001 -From: Steve Langasek -Date: Mon, 13 Jan 2014 12:13:12 +0000 -Subject: Output a menu entry for firmware setup on UEFI FastBoot systems - -Forwarded: no -Last-Update: 2015-09-04 - -Patch-Name: uefi-firmware-setup.patch ---- - Makefile.util.def | 6 +++++ - util/grub.d/30_uefi-firmware.in | 46 +++++++++++++++++++++++++++++++++ - 2 files changed, 52 insertions(+) - create mode 100644 util/grub.d/30_uefi-firmware.in - -diff --git a/Makefile.util.def b/Makefile.util.def -index 0029b9000..8a24b23f0 100644 ---- a/Makefile.util.def -+++ b/Makefile.util.def -@@ -519,6 +519,12 @@ script = { - installdir = grubconf; - }; - -+script = { -+ name = '30_uefi-firmware'; -+ common = util/grub.d/30_uefi-firmware.in; -+ installdir = grubconf; -+}; -+ - script = { - name = '40_custom'; - common = util/grub.d/40_custom.in; -diff --git a/util/grub.d/30_uefi-firmware.in b/util/grub.d/30_uefi-firmware.in -new file mode 100644 -index 000000000..3c9f533d8 ---- /dev/null -+++ b/util/grub.d/30_uefi-firmware.in -@@ -0,0 +1,46 @@ -+#! /bin/sh -+set -e -+ -+# grub-mkconfig helper script. -+# Copyright (C) 2012 Free Software Foundation, Inc. -+# -+# GRUB is free software: you can redistribute it and/or modify -+# it under the terms of the GNU General Public License as published by -+# the Free Software Foundation, either version 3 of the License, or -+# (at your option) any later version. -+# -+# GRUB is distributed in the hope that it will be useful, -+# but WITHOUT ANY WARRANTY; without even the implied warranty of -+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+# GNU General Public License for more details. -+# -+# You should have received a copy of the GNU General Public License -+# along with GRUB. If not, see . -+ -+prefix="@prefix@" -+exec_prefix="@exec_prefix@" -+datarootdir="@datarootdir@" -+ -+export TEXTDOMAIN=@PACKAGE@ -+export TEXTDOMAINDIR="@localedir@" -+ -+. "@datadir@/@PACKAGE@/grub-mkconfig_lib" -+ -+efi_vars_dir=/sys/firmware/efi/vars -+EFI_GLOBAL_VARIABLE=8be4df61-93ca-11d2-aa0d-00e098032b8c -+OsIndications="$efi_vars_dir/OsIndicationsSupported-$EFI_GLOBAL_VARIABLE/data" -+ -+if [ -e "$OsIndications" ] && \ -+ [ "$(( $(printf 0x%x \'"$(cat $OsIndications | cut -b1)") & 1 ))" = 1 ]; then -+ LABEL="System setup" -+ -+ gettext_printf "Adding boot menu entry for EFI firmware configuration\n" >&2 -+ -+ onstr="$(gettext_printf "(on %s)" "${DEVICE}")" -+ -+ cat << EOF -+menuentry '$LABEL' \$menuentry_id_option 'uefi-firmware' { -+ fwsetup -+} -+EOF -+fi diff --git a/patches/grub/2.04/uefi-secure-boot-cryptomount.patch b/patches/grub/2.04/uefi-secure-boot-cryptomount.patch deleted file mode 100644 index 403a64858..000000000 --- a/patches/grub/2.04/uefi-secure-boot-cryptomount.patch +++ /dev/null @@ -1,48 +0,0 @@ -From cb6e90c39f78e1bacc5b8213d8fef90eb3230a1a Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Herv=C3=A9=20Werner?= -Date: Mon, 28 Jan 2019 17:24:23 +0100 -Subject: Fix setup on Secure Boot systems where cryptodisk is in use - -On full-encrypted systems, including /boot, the current code omits -cryptodisk commands needed to open the drives if Secure Boot is enabled. -This prevents grub2 from reading any further configuration residing on -the encrypted disk. -This patch fixes this issue by adding the needed "cryptomount" commands in -the load.cfg file that is then copied in the EFI partition. - -Bug-Debian: https://bugs.debian.org/917117 -Last-Update: 2019-02-10 - -Patch-Name: uefi-secure-boot-cryptomount.patch ---- - util/grub-install.c | 17 +++++++++++++++++ - 1 file changed, 17 insertions(+) - -diff --git a/util/grub-install.c b/util/grub-install.c -index ab79828a5..ba06e1350 100644 ---- a/util/grub-install.c -+++ b/util/grub-install.c -@@ -1523,6 +1523,23 @@ main (int argc, char *argv[]) - || uefi_secure_boot) - { - char *uuid = NULL; -+ -+ if (uefi_secure_boot && config.is_cryptodisk_enabled) -+ { -+ if (grub_dev->disk) -+ probe_cryptodisk_uuid (grub_dev->disk); -+ -+ for (curdrive = grub_drives + 1; *curdrive; curdrive++) -+ { -+ grub_device_t dev = grub_device_open (*curdrive); -+ if (!dev) -+ continue; -+ if (dev->disk) -+ probe_cryptodisk_uuid (dev->disk); -+ grub_device_close (dev); -+ } -+ } -+ - /* generic method (used on coreboot and ata mod). */ - if (!force_file_id - && grub_fs->fs_uuid && grub_fs->fs_uuid (grub_dev, &uuid)) diff --git a/patches/grub/2.04/unix-config-overflow.patch b/patches/grub/2.04/unix-config-overflow.patch deleted file mode 100644 index fc03a333c..000000000 --- a/patches/grub/2.04/unix-config-overflow.patch +++ /dev/null @@ -1,84 +0,0 @@ -From a0c8532b48cc452d2afd7d27f05c43c68b7b3f5e Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Fri, 24 Jul 2020 11:27:01 +0100 -Subject: unix/config: Fix integer overflow in grub_util_load_config - -This adjusts Debian's /etc/default/grub.d/*.cfg patch to perform safe -allocation. - -Signed-off-by: Colin Watson - -Patch-Name: unix-config-overflow.patch ---- - grub-core/osdep/unix/config.c | 22 ++++++++++++++++++---- - 1 file changed, 18 insertions(+), 4 deletions(-) - -diff --git a/grub-core/osdep/unix/config.c b/grub-core/osdep/unix/config.c -index 5478030fd..545d64b4c 100644 ---- a/grub-core/osdep/unix/config.c -+++ b/grub-core/osdep/unix/config.c -@@ -25,6 +25,7 @@ - #include - #include - #include -+#include - #include - #include - #include -@@ -101,8 +102,14 @@ grub_util_load_config (struct grub_util_config *cfg) - cfgfile = grub_util_get_config_filename (); - if (grub_util_is_regular (cfgfile)) - { -+ size_t sz; -+ - ++num_cfgpaths; -- len_cfgpaths += strlen (cfgfile) * 4 + sizeof (". ''; ") - 1; -+ sz = strlen (cfgfile); -+ if (grub_mul (sz, 4, &sz) || -+ grub_add (sz, sizeof (". ''; ") - 1, &sz) || -+ grub_add (len_cfgpaths, sz, &len_cfgpaths)) -+ grub_util_error ("%s", _("overflow is detected")); - } - - cfgdir = xasprintf ("%s.d", cfgfile); -@@ -114,6 +121,7 @@ grub_util_load_config (struct grub_util_config *cfg) - while ((de = grub_util_fd_readdir (d))) - { - const char *ext = strrchr (de->d_name, '.'); -+ size_t sz; - - if (!ext || strcmp (ext, ".cfg") != 0) - continue; -@@ -122,7 +130,11 @@ grub_util_load_config (struct grub_util_config *cfg) - cfgpath->path = grub_util_path_concat (2, cfgdir, de->d_name); - grub_list_push (GRUB_AS_LIST_P (&cfgpaths), GRUB_AS_LIST (cfgpath)); - ++num_cfgpaths; -- len_cfgpaths += strlen (cfgpath->path) * 4 + sizeof (". ''; ") - 1; -+ sz = strlen (cfgpath->path); -+ if (grub_mul (sz, 4, &sz) || -+ grub_add (sz, sizeof (". ''; ") - 1, &sz) || -+ grub_add (len_cfgpaths, sz, &len_cfgpaths)) -+ grub_util_error ("%s", _("overflow is detected")); - } - grub_util_fd_closedir (d); - } -@@ -130,7 +142,7 @@ grub_util_load_config (struct grub_util_config *cfg) - if (num_cfgpaths == 0) - goto out; - -- sorted_cfgpaths = xmalloc (num_cfgpaths * sizeof (*sorted_cfgpaths)); -+ sorted_cfgpaths = xcalloc (num_cfgpaths, sizeof (*sorted_cfgpaths)); - i = 0; - if (grub_util_is_regular (cfgfile)) - sorted_cfgpaths[i++] = xstrdup (cfgfile); -@@ -146,7 +158,9 @@ grub_util_load_config (struct grub_util_config *cfg) - argv[0] = "sh"; - argv[1] = "-c"; - -- script = xmalloc (len_cfgpaths + 300); -+ if (grub_add (len_cfgpaths, 300, &len_cfgpaths)) -+ grub_util_error ("%s", _("overflow is detected")); -+ script = xmalloc (len_cfgpaths); - - ptr = script; - for (i = 0; i < num_cfgpaths; i++) diff --git a/patches/grub/2.04/verifiers-blocklist-fallout.patch b/patches/grub/2.04/verifiers-blocklist-fallout.patch deleted file mode 100644 index 312e86b00..000000000 --- a/patches/grub/2.04/verifiers-blocklist-fallout.patch +++ /dev/null @@ -1,41 +0,0 @@ -From 9bd1ddebca3685f74187eef656a149d28804eeba Mon Sep 17 00:00:00 2001 -From: David Michael -Date: Fri, 5 Jul 2019 07:45:59 -0400 -Subject: verifiers: Blocklist fallout cleanup - -Blocklist fallout cleanup after commit 5c6f9bc15 (generic/blocklist: Fix -implicit declaration of function grub_file_filter_disable_compression()). - -Signed-off-by: David Michael -Reviewed-by: Daniel Kiper - -Origin: upstream, https://git.savannah.gnu.org/cgit/grub.git/commit/?id=dabdfa1c6a80639197d05f683a445fa8615517fe -Last-Update: 2019-12-12 - -Patch-Name: verifiers-blocklist-fallout.patch ---- - grub-core/osdep/generic/blocklist.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/grub-core/osdep/generic/blocklist.c b/grub-core/osdep/generic/blocklist.c -index ea2a511b6..2d9040302 100644 ---- a/grub-core/osdep/generic/blocklist.c -+++ b/grub-core/osdep/generic/blocklist.c -@@ -59,7 +59,7 @@ grub_install_get_blocklist (grub_device_t root_dev, - - grub_disk_cache_invalidate_all (); - -- file = grub_file_open (core_path_dev, GRUB_FILE_TYPE_NONE | FILE_TYPE_NO_DECOMPRESS); -+ file = grub_file_open (core_path_dev, GRUB_FILE_TYPE_NONE | GRUB_FILE_TYPE_NO_DECOMPRESS); - if (file) - { - if (grub_file_size (file) != core_size) -@@ -116,7 +116,7 @@ grub_install_get_blocklist (grub_device_t root_dev, - - grub_file_t file; - /* Now read the core image to determine where the sectors are. */ -- file = grub_file_open (core_path_dev, GRUB_FILE_TYPE_NONE | FILE_TYPE_NO_DECOMPRESS); -+ file = grub_file_open (core_path_dev, GRUB_FILE_TYPE_NONE | GRUB_FILE_TYPE_NO_DECOMPRESS); - if (! file) - grub_util_error ("%s", grub_errmsg); - diff --git a/patches/grub/2.04/vsnprintf-upper-case-hex.patch b/patches/grub/2.04/vsnprintf-upper-case-hex.patch deleted file mode 100644 index 690d87695..000000000 --- a/patches/grub/2.04/vsnprintf-upper-case-hex.patch +++ /dev/null @@ -1,65 +0,0 @@ -From d2e2c770cf8f1f1044827e030fbe38c2b177375e Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Mon, 11 Mar 2019 11:15:12 +0000 -Subject: Add %X to grub_vsnprintf_real and friends - -This is needed for UEFI Boot* variables, which the standard says are -named using upper-case hexadecimal. - -Signed-off-by: Colin Watson - -Bug-Debian: https://bugs.debian.org/891434 -Forwarded: https://lists.gnu.org/archive/html/grub-devel/2019-03/msg00121.html -Last-Update: 2019-03-23 - -Patch-Name: vsnprintf-upper-case-hex.patch ---- - grub-core/kern/misc.c | 7 +++++-- - 1 file changed, 5 insertions(+), 2 deletions(-) - -diff --git a/grub-core/kern/misc.c b/grub-core/kern/misc.c -index 3b633d51f..18cad5803 100644 ---- a/grub-core/kern/misc.c -+++ b/grub-core/kern/misc.c -@@ -588,7 +588,7 @@ grub_divmod64 (grub_uint64_t n, grub_uint64_t d, grub_uint64_t *r) - static inline char * - grub_lltoa (char *str, int c, unsigned long long n) - { -- unsigned base = (c == 'x') ? 16 : 10; -+ unsigned base = (c == 'x' || c == 'X') ? 16 : 10; - char *p; - - if ((long long) n < 0 && c == 'd') -@@ -603,7 +603,7 @@ grub_lltoa (char *str, int c, unsigned long long n) - do - { - unsigned d = (unsigned) (n & 0xf); -- *p++ = (d > 9) ? d + 'a' - 10 : d + '0'; -+ *p++ = (d > 9) ? d + ((c == 'x') ? 'a' : 'A') - 10 : d + '0'; - } - while (n >>= 4); - else -@@ -676,6 +676,7 @@ parse_printf_args (const char *fmt0, struct printf_args *args, - { - case 'p': - case 'x': -+ case 'X': - case 'u': - case 'd': - case 'c': -@@ -762,6 +763,7 @@ parse_printf_args (const char *fmt0, struct printf_args *args, - switch (c) - { - case 'x': -+ case 'X': - case 'u': - args->ptr[curn].type = UNSIGNED_INT + longfmt; - break; -@@ -900,6 +902,7 @@ grub_vsnprintf_real (char *str, grub_size_t max_len, const char *fmt0, - c = 'x'; - /* Fall through. */ - case 'x': -+ case 'X': - case 'u': - case 'd': - { diff --git a/patches/grub/2.04/vt-handoff.patch b/patches/grub/2.04/vt-handoff.patch deleted file mode 100644 index bd69441ae..000000000 --- a/patches/grub/2.04/vt-handoff.patch +++ /dev/null @@ -1,101 +0,0 @@ -From 3b90c3e720f1663906e2e8af3c21123d66e14b88 Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Mon, 13 Jan 2014 12:13:30 +0000 -Subject: Add configure option to use vt.handoff=7 - -This is used for non-recovery Linux entries only; it enables -flicker-free booting if gfxpayload=keep is in use and a suitable kernel -is present. - -Author: Andy Whitcroft -Forwarded: not-needed -Last-Update: 2013-12-25 - -Patch-Name: vt-handoff.patch ---- - configure.ac | 11 +++++++++++ - util/grub.d/10_linux.in | 28 +++++++++++++++++++++++++++- - 2 files changed, 38 insertions(+), 1 deletion(-) - -diff --git a/configure.ac b/configure.ac -index dbc429ce0..e382c7480 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -1890,6 +1890,17 @@ else - fi - AC_SUBST([GFXPAYLOAD_DYNAMIC]) - -+AC_ARG_ENABLE([vt-handoff], -+ [AS_HELP_STRING([--enable-vt-handoff], -+ [use Linux vt.handoff option for flicker-free booting (default=no)])], -+ [], [enable_vt_handoff=no]) -+if test x"$enable_vt_handoff" = xyes ; then -+ VT_HANDOFF=1 -+else -+ VT_HANDOFF=0 -+fi -+AC_SUBST([VT_HANDOFF]) -+ - LIBS="" - - AC_SUBST([FONT_SOURCE]) -diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in -index 2f5217358..174d547bb 100644 ---- a/util/grub.d/10_linux.in -+++ b/util/grub.d/10_linux.in -@@ -24,6 +24,7 @@ ubuntu_recovery="@UBUNTU_RECOVERY@" - quiet_boot="@QUIET_BOOT@" - quick_boot="@QUICK_BOOT@" - gfxpayload_dynamic="@GFXPAYLOAD_DYNAMIC@" -+vt_handoff="@VT_HANDOFF@" - - . "$pkgdatadir/grub-mkconfig_lib" - -@@ -104,6 +105,14 @@ if [ "$ubuntu_recovery" = 1 ]; then - GRUB_CMDLINE_LINUX_RECOVERY="$GRUB_CMDLINE_LINUX_RECOVERY nomodeset" - fi - -+if [ "$vt_handoff" = 1 ]; then -+ for word in $GRUB_CMDLINE_LINUX_DEFAULT; do -+ if [ "$word" = splash ]; then -+ GRUB_CMDLINE_LINUX_DEFAULT="$GRUB_CMDLINE_LINUX_DEFAULT \$vt_handoff" -+ fi -+ done -+fi -+ - linux_entry () - { - os="$1" -@@ -149,7 +158,7 @@ linux_entry () - fi - if ([ "$ubuntu_recovery" = 0 ] || [ x$type != xrecovery ]) && \ - ([ "x$GRUB_GFXPAYLOAD_LINUX" != x ] || [ "$gfxpayload_dynamic" = 1 ]); then -- echo " set gfxpayload=\$linux_gfx_mode" | sed "s/^/$submenu_indentation/" -+ echo " gfxmode \$linux_gfx_mode" | sed "s/^/$submenu_indentation/" - fi - - echo " insmod gzio" | sed "s/^/$submenu_indentation/" -@@ -228,6 +237,23 @@ prepare_root_cache= - boot_device_id= - title_correction_code= - -+cat << 'EOF' -+function gfxmode { -+ set gfxpayload="${1}" -+EOF -+if [ "$vt_handoff" = 1 ]; then -+ cat << 'EOF' -+ if [ "${1}" = "keep" ]; then -+ set vt_handoff=vt.handoff=7 -+ else -+ set vt_handoff= -+ fi -+EOF -+fi -+cat << EOF -+} -+EOF -+ - # Use ELILO's generic "efifb" when it's known to be available. - # FIXME: We need an interface to select vesafb in case efifb can't be used. - if [ "x$GRUB_GFXPAYLOAD_LINUX" != x ] || [ "$gfxpayload_dynamic" = 0 ]; then diff --git a/patches/grub/2.04/wubi-no-windows.patch b/patches/grub/2.04/wubi-no-windows.patch deleted file mode 100644 index 9d266c6ea..000000000 --- a/patches/grub/2.04/wubi-no-windows.patch +++ /dev/null @@ -1,57 +0,0 @@ -From b24fac0f34fcf007c54adcd9e67d26235843c735 Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Mon, 13 Jan 2014 12:13:24 +0000 -Subject: Skip Windows os-prober entries on Wubi systems - -Since we're already being booted from the Windows boot loader, including -entries that take us back to it mostly just causes confusion, and stops -us from being able to hide the menu if there are no other OSes -installed. - -https://blueprints.launchpad.net/ubuntu/+spec/foundations-o-wubi - -Forwarded: not-needed -Last-Update: 2013-11-26 - -Patch-Name: wubi-no-windows.patch ---- - util/grub.d/30_os-prober.in | 19 +++++++++++++++++++ - 1 file changed, 19 insertions(+) - -diff --git a/util/grub.d/30_os-prober.in b/util/grub.d/30_os-prober.in -index b7e1147c4..271044f59 100644 ---- a/util/grub.d/30_os-prober.in -+++ b/util/grub.d/30_os-prober.in -@@ -110,6 +110,8 @@ EOF - - used_osprober_linux_ids= - -+wubi= -+ - for OS in ${OSPROBED} ; do - DEVICE="`echo ${OS} | cut -d ':' -f 1`" - LONGNAME="`echo ${OS} | cut -d ':' -f 2 | tr '^' ' '`" -@@ -146,6 +148,23 @@ for OS in ${OSPROBED} ; do - case ${BOOT} in - chain) - -+ case ${LONGNAME} in -+ Windows*) -+ if [ -z "$wubi" ]; then -+ if [ -x /usr/share/lupin-support/grub-mkimage ] && \ -+ /usr/share/lupin-support/grub-mkimage --test; then -+ wubi=yes -+ else -+ wubi=no -+ fi -+ fi -+ if [ "$wubi" = yes ]; then -+ echo "Skipping ${LONGNAME} on Wubi system" >&2 -+ continue -+ fi -+ ;; -+ esac -+ - onstr="$(gettext_printf "(on %s)" "${DEVICE}")" - cat << EOF - menuentry '$(echo "${LONGNAME} $onstr" | grub_quote)' $CLASS --class os \$menuentry_id_option 'osprober-chain-$(grub_get_device_id "${DEVICE}")' { diff --git a/patches/grub/2.04/xen-ignore-xenpolicy-and-config.patch b/patches/grub/2.04/xen-ignore-xenpolicy-and-config.patch deleted file mode 100644 index 2d34983a8..000000000 --- a/patches/grub/2.04/xen-ignore-xenpolicy-and-config.patch +++ /dev/null @@ -1,52 +0,0 @@ -From 300b43f3513e4067abfcb73de191a2cfa75f9957 Mon Sep 17 00:00:00 2001 -From: Ian Jackson -Date: Wed, 20 May 2020 13:14:19 +0100 -Subject: templates/20_linux_xen: Ignore xenpolicy and config files too - -file_is_not_sym() currently only checks for xen-syms. Extend it to -disregard xenpolicy (XSM policy files) and files ending .config (which -are built by the Xen upstream build system in some configurations and -can therefore end up in /boot). - -Rename the function accordingly, to file_is_not_xen_garbage(). - -Signed-off-by: Ian Jackson -Reviewed-by: Daniel Kiper - -Origin: upstream, https://git.savannah.gnu.org/cgit/grub.git/commit/?id=7a9b30143bb9f6fc19b4e1cf8d4d184a49c3c36e -Last-Update: 2020-05-27 - -Patch-Name: xen-ignore-xenpolicy-and-config.patch ---- - util/grub.d/20_linux_xen.in | 8 ++++++-- - 1 file changed, 6 insertions(+), 2 deletions(-) - -diff --git a/util/grub.d/20_linux_xen.in b/util/grub.d/20_linux_xen.in -index 81e5f0d7e..30da49d66 100644 ---- a/util/grub.d/20_linux_xen.in -+++ b/util/grub.d/20_linux_xen.in -@@ -181,10 +181,14 @@ if [ "x${linux_list}" = "x" ] ; then - exit 0 - fi - --file_is_not_sym () { -+file_is_not_xen_garbage () { - case "$1" in - */xen-syms-*) - return 1;; -+ */xenpolicy-*) -+ return 1;; -+ */*.config) -+ return 1;; - *) - return 0;; - esac -@@ -192,7 +196,7 @@ file_is_not_sym () { - - xen_list= - for i in /boot/xen*; do -- if grub_file_is_not_garbage "$i" && file_is_not_sym "$i" ; then xen_list="$xen_list $i" ; fi -+ if grub_file_is_not_garbage "$i" && file_is_not_xen_garbage "$i" ; then xen_list="$xen_list $i" ; fi - done - prepare_boot_cache= - boot_device_id= diff --git a/patches/grub/2.04/xen-no-xsm-policy-in-non-xsm-options.patch b/patches/grub/2.04/xen-no-xsm-policy-in-non-xsm-options.patch deleted file mode 100644 index 4583cd582..000000000 --- a/patches/grub/2.04/xen-no-xsm-policy-in-non-xsm-options.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 3017210d8539946c516003270cba7f3de569f2b3 Mon Sep 17 00:00:00 2001 -From: Ian Jackson -Date: Wed, 27 May 2020 17:00:45 +0100 -Subject: 20_linux_xen: Do not load XSM policy in non-XSM options - -For complicated reasons, even if you have XSM/FLASK disabled (as is -the default) the Xen build system still builds a policy file and puts -it in /boot. - -Even so, we shouldn't be loading this in the usual non-"XSM enabled" -entries. It doesn't do any particular harm but it is quite confusing. - -Signed-off-by: Ian Jackson - -Bug-Debian: https://bugs.debian.org/961673 -Last-Update: 2020-05-29 - -Patch-Name: xen-no-xsm-policy-in-non-xsm-options.patch ---- - util/grub.d/20_linux_xen.in | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/util/grub.d/20_linux_xen.in b/util/grub.d/20_linux_xen.in -index 7a092b898..cbad5f95a 100644 ---- a/util/grub.d/20_linux_xen.in -+++ b/util/grub.d/20_linux_xen.in -@@ -173,7 +173,7 @@ EOF - ${module_loader} --nounzip $(echo $initrd_path) - EOF - fi -- if test -n "${xenpolicy}" ; then -+ if ${xsm} && test -n "${xenpolicy}" ; then - message="$(gettext_printf "Loading XSM policy ...")" - sed "s/^/$submenu_indentation/" << EOF - echo '$(echo "$message" | grub_quote)' diff --git a/patches/grub/2.04/xen-support-xsm.patch b/patches/grub/2.04/xen-support-xsm.patch deleted file mode 100644 index 0cadda071..000000000 --- a/patches/grub/2.04/xen-support-xsm.patch +++ /dev/null @@ -1,72 +0,0 @@ -From 5bb5538be2e2a7325555a7156797f59b5be1f7f6 Mon Sep 17 00:00:00 2001 -From: Ian Jackson -Date: Wed, 20 May 2020 13:14:20 +0100 -Subject: templates/20_linux_xen: Support Xen Security Modules (XSM/FLASK) - -XSM is enabled by adding "flask=enforcing" as a Xen command line -argument, and providing the policy file as a grub module. - -We make entries for both with and without XSM. If XSM is not compiled -into Xen, then there are no policy files, so no change to the boot -options. - -Signed-off-by: Ian Jackson -Reviewed-by: Daniel Kiper - -Origin: upstream, https://git.savannah.gnu.org/cgit/grub.git/commit/?id=a81401ff493958e626e84f802f44434978fa4d4d -Last-Update: 2020-05-27 - -Patch-Name: xen-support-xsm.patch ---- - util/grub.d/20_linux_xen.in | 24 ++++++++++++++++++++++++ - 1 file changed, 24 insertions(+) - -diff --git a/util/grub.d/20_linux_xen.in b/util/grub.d/20_linux_xen.in -index 30da49d66..7a092b898 100644 ---- a/util/grub.d/20_linux_xen.in -+++ b/util/grub.d/20_linux_xen.in -@@ -94,6 +94,11 @@ esac - title_correction_code= - - linux_entry () -+{ -+ linux_entry_xsm "$@" false -+ linux_entry_xsm "$@" true -+} -+linux_entry_xsm () - { - os="$1" - version="$2" -@@ -101,6 +106,18 @@ linux_entry () - type="$4" - args="$5" - xen_args="$6" -+ xsm="$7" -+ # If user wants to enable XSM support, make sure there's -+ # corresponding policy file. -+ if ${xsm} ; then -+ xenpolicy="xenpolicy-$xen_version" -+ if test ! -e "${xen_dirname}/${xenpolicy}" ; then -+ return -+ fi -+ xen_args="$xen_args flask=enforcing" -+ xen_version="$(gettext_printf "%s (XSM enabled)" "$xen_version")" -+ # xen_version is used for messages only; actual file is xen_basename -+ fi - if [ -z "$boot_device_id" ]; then - boot_device_id="$(grub_get_device_id "${GRUB_DEVICE}")" - fi -@@ -154,6 +171,13 @@ EOF - sed "s/^/$submenu_indentation/" << EOF - echo '$(echo "$message" | grub_quote)' - ${module_loader} --nounzip $(echo $initrd_path) -+EOF -+ fi -+ if test -n "${xenpolicy}" ; then -+ message="$(gettext_printf "Loading XSM policy ...")" -+ sed "s/^/$submenu_indentation/" << EOF -+ echo '$(echo "$message" | grub_quote)' -+ ${module_loader} ${rel_dirname}/${xenpolicy} - EOF - fi - sed "s/^/$submenu_indentation/" << EOF diff --git a/patches/grub/2.04/xnu-double-free.patch b/patches/grub/2.04/xnu-double-free.patch deleted file mode 100644 index 8dcc3028a..000000000 --- a/patches/grub/2.04/xnu-double-free.patch +++ /dev/null @@ -1,53 +0,0 @@ -From 387219ffbb751afd336ebd71f1a375d9923ba416 Mon Sep 17 00:00:00 2001 -From: Alexey Makhalov -Date: Wed, 8 Jul 2020 21:30:43 +0000 -Subject: xnu: Fix double free in grub_xnu_devprop_add_property() - -grub_xnu_devprop_add_property() should not free utf8 and utf16 as it get -allocated and freed in the caller. - -Minor improvement: do prop fields initialization after memory allocations. - -Fixes: CID 292442, CID 292457, CID 292460, CID 292466 - -Signed-off-by: Alexey Makhalov -Reviewed-by: Daniel Kiper - -Patch-Name: xnu-double-free.patch ---- - grub-core/loader/i386/xnu.c | 17 ++++++++--------- - 1 file changed, 8 insertions(+), 9 deletions(-) - -diff --git a/grub-core/loader/i386/xnu.c b/grub-core/loader/i386/xnu.c -index b7d176b5d..e9e119259 100644 ---- a/grub-core/loader/i386/xnu.c -+++ b/grub-core/loader/i386/xnu.c -@@ -262,20 +262,19 @@ grub_xnu_devprop_add_property (struct grub_xnu_devprop_device_descriptor *dev, - if (!prop) - return grub_errno; - -- prop->name = utf8; -- prop->name16 = utf16; -- prop->name16len = utf16len; -- -- prop->length = datalen; -- prop->data = grub_malloc (prop->length); -+ prop->data = grub_malloc (datalen); - if (!prop->data) - { -- grub_free (prop->name); -- grub_free (prop->name16); - grub_free (prop); - return grub_errno; - } -- grub_memcpy (prop->data, data, prop->length); -+ grub_memcpy (prop->data, data, datalen); -+ -+ prop->name = utf8; -+ prop->name16 = utf16; -+ prop->name16len = utf16len; -+ prop->length = datalen; -+ - grub_list_push (GRUB_AS_LIST_P (&dev->properties), - GRUB_AS_LIST (prop)); - return GRUB_ERR_NONE; diff --git a/patches/grub/2.04/zfs-gcc-10.patch b/patches/grub/2.04/zfs-gcc-10.patch deleted file mode 100644 index 2fb4d0db5..000000000 --- a/patches/grub/2.04/zfs-gcc-10.patch +++ /dev/null @@ -1,89 +0,0 @@ -From c65818fd6db0d95a2e80fb9b7d80fdca1d330d08 Mon Sep 17 00:00:00 2001 -From: Michael Chang -Date: Thu, 26 Mar 2020 14:35:35 +0800 -Subject: zfs: Fix gcc10 error -Werror=zero-length-bounds - -We bumped into the build error while testing gcc-10 pre-release. - -In file included from ../../include/grub/file.h:22, - from ../../grub-core/fs/zfs/zfs.c:34: -../../grub-core/fs/zfs/zfs.c: In function 'zap_leaf_lookup': -../../grub-core/fs/zfs/zfs.c:2263:44: error: array subscript '' is outside the bounds of an interior zero-length array 'grub_uint16_t[0]' {aka 'short unsigned int[0]'} [-Werror=zero-length-bounds] -2263 | for (chunk = grub_zfs_to_cpu16 (l->l_hash[LEAF_HASH (blksft, h, l)], endian); -../../include/grub/types.h:241:48: note: in definition of macro 'grub_le_to_cpu16' - 241 | # define grub_le_to_cpu16(x) ((grub_uint16_t) (x)) - | ^ -../../grub-core/fs/zfs/zfs.c:2263:16: note: in expansion of macro 'grub_zfs_to_cpu16' -2263 | for (chunk = grub_zfs_to_cpu16 (l->l_hash[LEAF_HASH (blksft, h, l)], endian); - | ^~~~~~~~~~~~~~~~~ -In file included from ../../grub-core/fs/zfs/zfs.c:48: -../../include/grub/zfs/zap_leaf.h:72:16: note: while referencing 'l_hash' - 72 | grub_uint16_t l_hash[0]; - | ^~~~~~ - -Here I'd like to quote from the gcc document [1] which seems best to -explain what is going on here. - -"Although the size of a zero-length array is zero, an array member of -this kind may increase the size of the enclosing type as a result of -tail padding. The offset of a zero-length array member from the -beginning of the enclosing structure is the same as the offset of an -array with one or more elements of the same type. The alignment of a -zero-length array is the same as the alignment of its elements. - -Declaring zero-length arrays in other contexts, including as interior -members of structure objects or as non-member objects, is discouraged. -Accessing elements of zero-length arrays declared in such contexts is -undefined and may be diagnosed." - -The l_hash[0] is apparnetly an interior member to the enclosed structure -while l_entries[0] is the trailing member. And the offending code tries -to access members in l_hash[0] array that triggers the diagnose. - -Given that the l_entries[0] is used to get proper alignment to access -leaf chunks, we can accomplish the same thing through the ALIGN_UP macro -thus eliminating l_entries[0] from the structure. In this way we can -pacify the warning as l_hash[0] now becomes the last member to the -enclosed structure. - -[1] https://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html - -Signed-off-by: Michael Chang -Reviewed-by: Daniel Kiper - -Last-update: 2020-12-28 - -Patch-Name: zfs-gcc-10.patch ---- - grub-core/fs/zfs/zfs.c | 5 ++++- - include/grub/zfs/zap_leaf.h | 1 - - 2 files changed, 4 insertions(+), 2 deletions(-) - -diff --git a/grub-core/fs/zfs/zfs.c b/grub-core/fs/zfs/zfs.c -index 36d0373a6..41ef0ff57 100644 ---- a/grub-core/fs/zfs/zfs.c -+++ b/grub-core/fs/zfs/zfs.c -@@ -142,7 +142,10 @@ ZAP_LEAF_NUMCHUNKS (int bs) - static inline zap_leaf_chunk_t * - ZAP_LEAF_CHUNK (zap_leaf_phys_t *l, int bs, int idx) - { -- return &((zap_leaf_chunk_t *) (l->l_entries -+ grub_properly_aligned_t *l_entries; -+ -+ l_entries = (grub_properly_aligned_t *) ALIGN_UP((grub_addr_t)l->l_hash, sizeof (grub_properly_aligned_t)); -+ return &((zap_leaf_chunk_t *) (l_entries - + (ZAP_LEAF_HASH_NUMENTRIES(bs) * 2) - / sizeof (grub_properly_aligned_t)))[idx]; - } -diff --git a/include/grub/zfs/zap_leaf.h b/include/grub/zfs/zap_leaf.h -index 95c67dcba..11447c166 100644 ---- a/include/grub/zfs/zap_leaf.h -+++ b/include/grub/zfs/zap_leaf.h -@@ -70,7 +70,6 @@ typedef struct zap_leaf_phys { - */ - - grub_uint16_t l_hash[0]; -- grub_properly_aligned_t l_entries[0]; - } zap_leaf_phys_t; - - typedef union zap_leaf_chunk { diff --git a/patches/grub/2.04/zpool-full-device-name.patch b/patches/grub/2.04/zpool-full-device-name.patch deleted file mode 100644 index 4361c4e22..000000000 --- a/patches/grub/2.04/zpool-full-device-name.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 29f69269fdb282c41ae0204c080a73e3a5f380c3 Mon Sep 17 00:00:00 2001 -From: Chad MILLER -Date: Thu, 27 Oct 2016 17:15:07 -0400 -Subject: Tell zpool to emit full device names - -zfs-initramfs currently provides extraneous, undesired symlinks to -devices directly underneath /dev/ to satisfy zpool's historical output -of unqualified device names. By including this environment variable to -signal our intent to zpool, zfs-linux packages can drop the symlink -behavior when updating to its upstream or backported output behavior. - -Bug: https://savannah.gnu.org/bugs/?43653 -Bug-Debian: https://bugs.debian.org/824974 -Bug-Ubuntu: https://bugs.launchpad.net/bugs/1527727 -Last-Update: 2016-11-01 - -Patch-Name: zpool-full-device-name.patch ---- - grub-core/osdep/unix/getroot.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/grub-core/osdep/unix/getroot.c b/grub-core/osdep/unix/getroot.c -index 46d7116c6..da102918d 100644 ---- a/grub-core/osdep/unix/getroot.c -+++ b/grub-core/osdep/unix/getroot.c -@@ -243,6 +243,7 @@ grub_util_find_root_devices_from_poolname (char *poolname) - argv[2] = poolname; - argv[3] = NULL; - -+ setenv ("ZPOOL_VDEV_NAME_PATH", "YES", 1); - pid = grub_util_exec_pipe (argv, &fd); - if (!pid) - return NULL; diff --git a/patches/grub/2.14/0001-build-i386-pc-update-kernel-image-generation.patch b/patches/grub/2.14/0001-build-i386-pc-update-kernel-image-generation.patch new file mode 100644 index 000000000..b4730b349 --- /dev/null +++ b/patches/grub/2.14/0001-build-i386-pc-update-kernel-image-generation.patch @@ -0,0 +1,105 @@ +From ba2f3511452484710c27cad10160943d98cdc351 Mon Sep 17 00:00:00 2001 +From: Nicholas Vinson +Date: Tue, 3 Mar 2026 21:41:14 -0500 +Subject: [PATCH] build/i386-pc: Update kernel image generation + +The i386-pc kernel image fails to build because of changes made to +address ld.lld-21 and newer linking issues. Specifically, with +ld.lld-21, if you try to set the text section address below image base +address when linking a non-relocatable binary, ld.lld wil fail to link. + +Switching to using a customized linker script solves the issue and is +a more robust solution to supporting multiple linkers than attempting to +find a set of command-line flags that satisfied all supported linkers +and links the kernel properly. In the worst case, continued use of +command-line flags could result in having to create code branches to +support various linkers. + +For example, when dealing with just ld.bfd and ld.lld, the behavioral +differences between the two made finding a proper subset of flags that +worked impossible. The previous attempt dropped -Ttext for --image-base, +which has been proven not to work. The simplest correction, +"-Wl,--image-base=0 -Wl,-Ttext", did not work because that option resulted +in a GRUB kernel that entered into a tight infinite refresh loop. + +Moreover, ld.lld does not order the sections the same way ld.bfd does, +and that results in object files with gaps or holes when sections are +stripped. I suspect, but did not investigate, that this plays a role in +the infinite refresh loop I mentioned earlier. + +The easiest way to resolve all this is to use customized linker scripts. +These scripts, by default, override any default configuration the linker +would otherwise impose, allow for complete control in aligning sections, +and allows GRUB to specify where in the load segment each section goes. + +This patch series does require linkers to support the --defsym flag, +which requires its argument to be of the form "sym=address" as +"sym address" is not supported. + +Signed-off-by: Nicholas Vinson +Reviewed-by: Daniel Kiper +--- + conf/i386-pc-kernel.lds | 51 +++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 51 insertions(+) + create mode 100644 conf/i386-pc-kernel.lds + +diff --git a/conf/i386-pc-kernel.lds b/conf/i386-pc-kernel.lds +new file mode 100644 +index 000000000..b580414c7 +--- /dev/null ++++ b/conf/i386-pc-kernel.lds +@@ -0,0 +1,51 @@ ++ENTRY(_start) ++ ++/* ++ * Align sections to a 16-byte boundary. This guarantees ABI compatibility with ++ * C generated code. ++ */ ++SECTION_ALIGN = 0x10; ++ ++PHDRS { ++ text PT_LOAD FLAGS(7) /* PF_R | PF_W | PF_X */; ++} ++ ++SECTIONS ++{ ++ /* ++ * Set section alignment to 1. This allows sections to be aligned without ++ * creating holes in the VMA space or gaps in the file. ++ */ ++ . = _grub_text_base; ++ .text ALIGN(0x1) : { ++ _start = .; ++ *(.text .text.*) ++ . = ALIGN(SECTION_ALIGN); ++ } :text ++ .rodata ALIGN(0x1) : { ++ *(.rodata .rodata.*) ++ . = ALIGN(SECTION_ALIGN); ++ } :text ++ .module_license ALIGN(0x1) : { ++ *(.module_license) ++ . = ALIGN(SECTION_ALIGN); ++ } :text ++ .data ALIGN(0x1) : { ++ *(.data .data.*) ++ . = ALIGN(SECTION_ALIGN); ++ _edata = .; ++ } :text ++ .bss ALIGN(0x1) : { ++ __bss_start = .; ++ *(.bss .bss.*) ++ *(COMMON) ++ . = ALIGN(SECTION_ALIGN); ++ _end = .; ++ } :text ++ /DISCARD/ : { ++ *(.interp) ++ *(.note*) ++ *(.comment) ++ *(.build-id) ++ } ++} +-- +GitLab + diff --git a/patches/grub/2.14/0002-revert-configure-print-helpful-error-if-autoconf-archive-missing.patch b/patches/grub/2.14/0002-revert-configure-print-helpful-error-if-autoconf-archive-missing.patch new file mode 100644 index 000000000..179781b92 --- /dev/null +++ b/patches/grub/2.14/0002-revert-configure-print-helpful-error-if-autoconf-archive-missing.patch @@ -0,0 +1,34 @@ +From 7b72d6cbd548f714a0122c3cd1dd9a70db10894a Mon Sep 17 00:00:00 2001 +From: Nicholas Vinson +Date: Tue, 3 Mar 2026 21:41:15 -0500 +Subject: [PATCH] Revert "configure: Print a more helpful error if + autoconf-archive is not installed" + +This reverts commit ac042f3f5 (configure: Print a more helpful error if +autoconf-archive is not installed). + +Signed-off-by: Nicholas Vinson +Reviewed-by: Daniel Kiper +--- + configure.ac | 5 ----- + 1 file changed, 5 deletions(-) + +diff --git a/configure.ac b/configure.ac +index d8ca1b7c1..45f19f188 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1792,11 +1792,6 @@ LIBS="" + # Defined in acinclude.m4. + grub_ASM_USCORE + grub_PROG_TARGET_CC +- +-# The error message produced by autoconf if autoconf-archive is not installed is +-# quite misleading and not very helpful. So, try point people in the right direction. +-m4_ifndef([AX_CHECK_LINK_FLAG], [m4_fatal([autoconf-archive is missing. You must install it to generate the configure script.])]) +- + if test "x$TARGET_APPLE_LINKER" != x1 ; then + AX_CHECK_LINK_FLAG([-Wl,--image-base,0x400000], + [TARGET_IMG_BASE_LDOPT="-Wl,--image-base"], +-- +GitLab + diff --git a/patches/grub/2.14/0003-revert-configure-check-linker-for-image-base-support.patch b/patches/grub/2.14/0003-revert-configure-check-linker-for-image-base-support.patch new file mode 100644 index 000000000..6080de8c9 --- /dev/null +++ b/patches/grub/2.14/0003-revert-configure-check-linker-for-image-base-support.patch @@ -0,0 +1,72 @@ +From 1dc2986c7e8480d955f87d276d31400116a21fac Mon Sep 17 00:00:00 2001 +From: Nicholas Vinson +Date: Tue, 3 Mar 2026 21:41:16 -0500 +Subject: [PATCH] Revert "configure: Check linker for --image-base support" + +This reverts commit 1a5417f39 (configure: Check linker for --image-base support). + +Signed-off-by: Nicholas Vinson +Reviewed-by: Daniel Kiper +--- + acinclude.m4 | 5 ----- + configure.ac | 14 ++------------ + 2 files changed, 2 insertions(+), 17 deletions(-) + +diff --git a/acinclude.m4 b/acinclude.m4 +index 70c1912f8..fa7840f09 100644 +--- a/acinclude.m4 ++++ b/acinclude.m4 +@@ -79,11 +79,6 @@ AC_DEFUN([grub_PROG_OBJCOPY_ABSOLUTE], + [AC_MSG_CHECKING([whether ${TARGET_OBJCOPY} works for absolute addresses]) + AC_CACHE_VAL(grub_cv_prog_objcopy_absolute, + [cat > conftest.c <<\EOF +-asm ( +- ".globl start, _start, __start\n" +- ".ifdef cmain; .set start = _start = __start = cmain\n.endif\n" +- ".ifdef _cmain; .set start = _start = __start = _cmain\n.endif\n" +-); + void cmain (void); + void + cmain (void) +diff --git a/configure.ac b/configure.ac +index 45f19f188..209c0fb11 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1461,6 +1461,7 @@ elif test x$grub_cv_target_cc_link_format = x-mi386pe || test x$grub_cv_target_c + TARGET_IMG_LDSCRIPT='$(top_srcdir)'"/conf/i386-cygwin-img-ld.sc" + TARGET_IMG_LDFLAGS="-Wl,-T${TARGET_IMG_LDSCRIPT}" + TARGET_IMG_LDFLAGS_AC="-Wl,-T${srcdir}/conf/i386-cygwin-img-ld.sc" ++ TARGET_IMG_BASE_LDOPT="-Wl,-Ttext" + TARGET_IMG_CFLAGS= + else + TARGET_APPLE_LINKER=0 +@@ -1468,6 +1469,7 @@ else + TARGET_IMG_LDSCRIPT= + TARGET_IMG_LDFLAGS='-Wl,-N' + TARGET_IMG_LDFLAGS_AC='-Wl,-N' ++ TARGET_IMG_BASE_LDOPT="-Wl,-Ttext" + TARGET_IMG_CFLAGS= + fi + +@@ -1793,18 +1795,6 @@ LIBS="" + grub_ASM_USCORE + grub_PROG_TARGET_CC + if test "x$TARGET_APPLE_LINKER" != x1 ; then +-AX_CHECK_LINK_FLAG([-Wl,--image-base,0x400000], +- [TARGET_IMG_BASE_LDOPT="-Wl,--image-base"], +- [TARGET_IMG_BASE_LDOPT="-Wl,-Ttext"], +- [], +- [AC_LANG_SOURCE([ +-asm (".globl start; start:"); +-asm (".globl _start; _start:"); +-asm (".globl __start; __start:"); +-void __main (void); +-void __main (void) {} +-int main (void); +- ])]) + grub_PROG_OBJCOPY_ABSOLUTE + fi + grub_PROG_LD_BUILD_ID_NONE +-- +GitLab + diff --git a/patches/grub/2.14/0004-configure-drop-ttext-checks-for-i386-pc.patch b/patches/grub/2.14/0004-configure-drop-ttext-checks-for-i386-pc.patch new file mode 100644 index 000000000..0fedb82a5 --- /dev/null +++ b/patches/grub/2.14/0004-configure-drop-ttext-checks-for-i386-pc.patch @@ -0,0 +1,236 @@ +From 86283bfd4ed056fba15fcbfb90b9ad91016d838a Mon Sep 17 00:00:00 2001 +From: Nicholas Vinson +Date: Tue, 3 Mar 2026 21:41:18 -0500 +Subject: [PATCH] configure: Drop -Ttext checks for i386-pc + +The i386-pc target now uses a linker script, so -Ttext is no longer +required. However, a new variable TARGET_IMG_BASE_LDOPT_ARG_SEP is +introduced to handle the fact that when using --defsym the argument +separator must be "=". The space character is a syntax error. + +Finally, EXTRA_DIST is updated to track the linker script used. + +Signed-off-by: Nicholas Vinson +Reviewed-by: Daniel Kiper +--- + acinclude.m4 | 13 ++++++++++++- + conf/Makefile.extra-dist | 1 + + configure.ac | 29 ++++++++++++++++++++++++++--- + grub-core/Makefile.core.def | 31 ++++++++++++++++--------------- + 4 files changed, 55 insertions(+), 19 deletions(-) + +diff --git a/acinclude.m4 b/acinclude.m4 +index fa7840f09..478aab6d3 100644 +--- a/acinclude.m4 ++++ b/acinclude.m4 +@@ -93,7 +93,18 @@ else + fi + grub_cv_prog_objcopy_absolute=yes + for link_addr in 0x2000 0x8000 0x7C00; do +- if AC_TRY_COMMAND([${CC-cc} ${TARGET_CFLAGS} ${TARGET_LDFLAGS} -nostdlib ${TARGET_IMG_LDFLAGS_AC} ${TARGET_IMG_BASE_LDOPT},$link_addr conftest.o -o conftest.exec]); then : ++ ++ target_img_base_ld="${TARGET_IMG_BASE_LDOPT}" ++ case "$target_img_base_ld" in ++ *_grub_text_base) ++ target_img_base_ld="${target_img_base_ld}=$link_addr" ++ ;; ++ *) ++ target_img_base_ld="${target_img_base_ld},$link_addr" ++ ;; ++ esac ++ ++ if AC_TRY_COMMAND([${CC-cc} ${TARGET_CFLAGS} ${TARGET_LDFLAGS} -nostdlib ${TARGET_IMG_LDFLAGS_AC} ${target_img_base_ld} conftest.o -o conftest.exec]); then : + else + AC_MSG_ERROR([${CC-cc} cannot link at address $link_addr]) + fi +diff --git a/conf/Makefile.extra-dist b/conf/Makefile.extra-dist +index d22b6c862..892df8208 100644 +--- a/conf/Makefile.extra-dist ++++ b/conf/Makefile.extra-dist +@@ -17,6 +17,7 @@ EXTRA_DIST += docs/grub.cfg + EXTRA_DIST += docs/osdetect.cfg + + EXTRA_DIST += conf/i386-cygwin-img-ld.sc ++EXTRA_DIST += conf/i386-pc-kernel.lds + + EXTRA_DIST += grub-core/Makefile.core.def + EXTRA_DIST += grub-core/Makefile.gcry.def +diff --git a/configure.ac b/configure.ac +index 209c0fb11..470a26b0f 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1454,6 +1454,7 @@ if test x$grub_cv_target_cc_link_format = x-arch,i386 || test x$grub_cv_target_c + TARGET_IMG_LDFLAGS='-nostdlib -static -Wl,-preload -Wl,-segalign,20' + TARGET_IMG_LDFLAGS_AC='-nostdlib -static -Wl,-preload -Wl,-segalign,20' + TARGET_IMG_BASE_LDOPT="-Wl,-image_base" ++ TARGET_IMG_BASE_LDOPT_ARG_SEP="," + TARGET_LDFLAGS_OLDMAGIC="" + elif test x$grub_cv_target_cc_link_format = x-mi386pe || test x$grub_cv_target_cc_link_format = x-mi386pep ; then + TARGET_APPLE_LINKER=0 +@@ -1461,7 +1462,8 @@ elif test x$grub_cv_target_cc_link_format = x-mi386pe || test x$grub_cv_target_c + TARGET_IMG_LDSCRIPT='$(top_srcdir)'"/conf/i386-cygwin-img-ld.sc" + TARGET_IMG_LDFLAGS="-Wl,-T${TARGET_IMG_LDSCRIPT}" + TARGET_IMG_LDFLAGS_AC="-Wl,-T${srcdir}/conf/i386-cygwin-img-ld.sc" +- TARGET_IMG_BASE_LDOPT="-Wl,-Ttext" ++ TARGET_IMG_BASE_LDOPT= ++ TARGET_IMG_BASE_LDOPT_ARG_SEP="," + TARGET_IMG_CFLAGS= + else + TARGET_APPLE_LINKER=0 +@@ -1469,7 +1471,16 @@ else + TARGET_IMG_LDSCRIPT= + TARGET_IMG_LDFLAGS='-Wl,-N' + TARGET_IMG_LDFLAGS_AC='-Wl,-N' +- TARGET_IMG_BASE_LDOPT="-Wl,-Ttext" ++ if test "x$target_cpu-$platform" != "xi386-pc"; then ++ TARGET_IMG_BASE_LDOPT="-Wl,-Ttext" ++ TARGET_IMG_BASE_LDOPT_ARG_SEP="," ++ else ++ TARGET_IMG_BASE_LDOPT="-Wl,--defsym=_grub_text_base" ++ TARGET_IMG_BASE_LDOPT_ARG_SEP="=" ++ TARGET_IMG_LDSCRIPT='$(top_srcdir)'"/conf/i386-pc-kernel.lds" ++ TARGET_IMG_LDFLAGS="${TARGET_IMG_LDFLAGS} -Wl,-T${TARGET_IMG_LDSCRIPT}" ++ TARGET_IMG_LDFLAGS_AC="-Wl,-T${srcdir}/conf/i386-pc-kernel.lds" ++ fi + TARGET_IMG_CFLAGS= + fi + +@@ -1802,7 +1813,18 @@ if test "x$target_cpu" = xi386; then + if test "$platform" != emu && test "x$TARGET_APPLE_LINKER" != x1 ; then + if test ! -z "$TARGET_IMG_LDSCRIPT"; then + # Check symbols provided by linker script. +- CFLAGS="$TARGET_CFLAGS -nostdlib ${TARGET_IMG_LDFLAGS_AC} ${TARGET_IMG_BASE_LDOPT},0x8000" ++ target_img_base_ld="${TARGET_IMG_BASE_LDOPT}" ++ case "$target_img_base_ld" in ++ *_grub_text_base) ++ target_img_base_ld="${target_img_base_ld}=" ++ ;; ++ *) ++ target_img_base_ld="${target_img_base_ld}," ++ ;; ++ esac ++ target_img_base_ld="${target_img_base_ld}0x8000" ++ CFLAGS="$TARGET_CFLAGS -nostdlib ${TARGET_IMG_LDFLAGS_AC} ${target_img_base_ld}" ++ target_img_base_ld="" + fi + grub_CHECK_BSS_START_SYMBOL + grub_CHECK_END_SYMBOL +@@ -2404,6 +2426,7 @@ AC_SUBST(TARGET_CCASFLAGS) + AC_SUBST(TARGET_IMG_LDFLAGS) + AC_SUBST(TARGET_IMG_CFLAGS) + AC_SUBST(TARGET_IMG_BASE_LDOPT) ++AC_SUBST(TARGET_IMG_BASE_LDOPT_ARG_SEP) + AC_SUBST(TARGET_APPLE_LINKER) + + AC_SUBST(HOST_CFLAGS) +diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def +index 0cf155128..1a91e53d6 100644 +--- a/grub-core/Makefile.core.def ++++ b/grub-core/Makefile.core.def +@@ -10,6 +10,7 @@ transform_data = { + installdir = noinst; + name = genmod.sh; + common = genmod.sh.in; ++ i386_pc_ldflags = '$(TARGET_IMG_LDFLAGS)'; + }; + + transform_data = { +@@ -82,21 +83,21 @@ kernel = { + riscv64_efi_stripflags = '--strip-unneeded -K start -R .note -R .comment -R .note.gnu.gold-version -R .eh_frame'; + + i386_pc_ldflags = '$(TARGET_IMG_LDFLAGS)'; +- i386_pc_ldflags = '$(TARGET_IMG_BASE_LDOPT),0x9000'; ++ i386_pc_ldflags = '$(TARGET_IMG_BASE_LDOPT)$(TARGET_IMG_BASE_LDOPT_ARG_SEP)0x9000'; + i386_qemu_ldflags = '$(TARGET_IMG_LDFLAGS)'; +- i386_qemu_ldflags = '$(TARGET_IMG_BASE_LDOPT),0x9000'; ++ i386_qemu_ldflags = '$(TARGET_IMG_BASE_LDOPT)$(TARGET_IMG_BASE_LDOPT_ARG_SEP)0x9000'; + i386_coreboot_ldflags = '$(TARGET_IMG_LDFLAGS)'; +- i386_coreboot_ldflags = '$(TARGET_IMG_BASE_LDOPT),0x9000'; ++ i386_coreboot_ldflags = '$(TARGET_IMG_BASE_LDOPT)$(TARGET_IMG_BASE_LDOPT_ARG_SEP)0x9000'; + i386_multiboot_ldflags = '$(TARGET_IMG_LDFLAGS)'; +- i386_multiboot_ldflags = '$(TARGET_IMG_BASE_LDOPT),0x9000'; ++ i386_multiboot_ldflags = '$(TARGET_IMG_BASE_LDOPT)$(TARGET_IMG_BASE_LDOPT_ARG_SEP)0x9000'; + i386_ieee1275_ldflags = '$(TARGET_IMG_LDFLAGS)'; +- i386_ieee1275_ldflags = '$(TARGET_IMG_BASE_LDOPT),0x10000'; ++ i386_ieee1275_ldflags = '$(TARGET_IMG_BASE_LDOPT)$(TARGET_IMG_BASE_LDOPT_ARG_SEP)0x10000'; + i386_xen_ldflags = '$(TARGET_IMG_LDFLAGS)'; +- i386_xen_ldflags = '$(TARGET_IMG_BASE_LDOPT),0'; ++ i386_xen_ldflags = '$(TARGET_IMG_BASE_LDOPT)$(TARGET_IMG_BASE_LDOPT_ARG_SEP)0'; + x86_64_xen_ldflags = '$(TARGET_IMG_LDFLAGS)'; + x86_64_xen_ldflags = '$(TARGET_IMG_BASE_LDOPT),0'; + i386_xen_pvh_ldflags = '$(TARGET_IMG_LDFLAGS)'; +- i386_xen_pvh_ldflags = '$(TARGET_IMG_BASE_LDOPT),0x100000'; ++ i386_xen_pvh_ldflags = '$(TARGET_IMG_BASE_LDOPT)$(TARGET_IMG_BASE_LDOPT_ARG_SEP)0x100000'; + + mips_loongson_ldflags = '-Wl,-Ttext,0x80200000'; + powerpc_ieee1275_ldflags = '-Wl,-Ttext,0x200000'; +@@ -450,10 +451,10 @@ image = { + sparc64_ieee1275 = boot/sparc64/ieee1275/boot.S; + + i386_pc_ldflags = '$(TARGET_IMG_LDFLAGS)'; +- i386_pc_ldflags = '$(TARGET_IMG_BASE_LDOPT),0x7C00'; ++ i386_pc_ldflags = '$(TARGET_IMG_BASE_LDOPT)$(TARGET_IMG_BASE_LDOPT_ARG_SEP)0x7C00'; + + i386_qemu_ldflags = '$(TARGET_IMG_LDFLAGS)'; +- i386_qemu_ldflags = '$(TARGET_IMG_BASE_LDOPT),$(GRUB_BOOT_MACHINE_LINK_ADDR)'; ++ i386_qemu_ldflags = '$(TARGET_IMG_BASE_LDOPT)$(TARGET_IMG_BASE_LDOPT_ARG_SEP)$(GRUB_BOOT_MACHINE_LINK_ADDR)'; + i386_qemu_ccasflags = '-DGRUB_BOOT_MACHINE_LINK_ADDR=$(GRUB_BOOT_MACHINE_LINK_ADDR)'; + + /* The entry point for a.out binaries on sparc64 starts +@@ -478,7 +479,7 @@ image = { + cppflags = '-DHYBRID_BOOT=1'; + + i386_pc_ldflags = '$(TARGET_IMG_LDFLAGS)'; +- i386_pc_ldflags = '$(TARGET_IMG_BASE_LDOPT),0x7C00'; ++ i386_pc_ldflags = '$(TARGET_IMG_BASE_LDOPT)$(TARGET_IMG_BASE_LDOPT_ARG_SEP)0x7C00'; + + objcopyflags = '-O binary'; + enable = i386_pc; +@@ -489,7 +490,7 @@ image = { + + i386_pc = boot/i386/pc/cdboot.S; + i386_pc_ldflags = '$(TARGET_IMG_LDFLAGS)'; +- i386_pc_ldflags = '$(TARGET_IMG_BASE_LDOPT),0x7C00'; ++ i386_pc_ldflags = '$(TARGET_IMG_BASE_LDOPT)$(TARGET_IMG_BASE_LDOPT_ARG_SEP)0x7C00'; + + sparc64_ieee1275 = boot/sparc64/ieee1275/boot.S; + +@@ -509,7 +510,7 @@ image = { + i386_pc = boot/i386/pc/pxeboot.S; + + i386_pc_ldflags = '$(TARGET_IMG_LDFLAGS)'; +- i386_pc_ldflags = '$(TARGET_IMG_BASE_LDOPT),0x7C00'; ++ i386_pc_ldflags = '$(TARGET_IMG_BASE_LDOPT)$(TARGET_IMG_BASE_LDOPT_ARG_SEP)0x7C00'; + + objcopyflags = '-O binary'; + enable = i386_pc; +@@ -520,7 +521,7 @@ image = { + i386_pc = boot/i386/pc/diskboot.S; + + i386_pc_ldflags = '$(TARGET_IMG_LDFLAGS)'; +- i386_pc_ldflags = '$(TARGET_IMG_BASE_LDOPT),0x8000'; ++ i386_pc_ldflags = '$(TARGET_IMG_BASE_LDOPT)$(TARGET_IMG_BASE_LDOPT_ARG_SEP)0x8000'; + + sparc64_ieee1275 = boot/sparc64/ieee1275/diskboot.S; + sparc64_ieee1275_ldflags = '-Wl,-Ttext=0x4200'; +@@ -536,7 +537,7 @@ image = { + i386_pc = boot/i386/pc/lnxboot.S; + + i386_pc_ldflags = '$(TARGET_IMG_LDFLAGS)'; +- i386_pc_ldflags = '$(TARGET_IMG_BASE_LDOPT),0x6000'; ++ i386_pc_ldflags = '$(TARGET_IMG_BASE_LDOPT)$(TARGET_IMG_BASE_LDOPT_ARG_SEP)0x6000'; + + objcopyflags = '-O binary'; + enable = i386_pc; +@@ -578,7 +579,7 @@ image = { + i386_pc_nodist = rs_decoder.h; + + objcopyflags = '-O binary'; +- ldflags = '$(TARGET_IMG_LDFLAGS) $(TARGET_IMG_BASE_LDOPT),0x8200'; ++ ldflags = '$(TARGET_IMG_LDFLAGS) $(TARGET_IMG_BASE_LDOPT)$(TARGET_IMG_BASE_LDOPT_ARG_SEP)0x8200'; + enable = i386_pc; + }; + +-- +GitLab + diff --git a/patches/grub/2.14/0005-efi-sb-prefer-legacy-SHIM_LOCK-verify-for-pre-SBAT-kernels.patch b/patches/grub/2.14/0005-efi-sb-prefer-legacy-SHIM_LOCK-verify-for-pre-SBAT-kernels.patch new file mode 100644 index 000000000..1398837d4 --- /dev/null +++ b/patches/grub/2.14/0005-efi-sb-prefer-legacy-SHIM_LOCK-verify-for-pre-SBAT-kernels.patch @@ -0,0 +1,52 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Brad House +Date: Fri, 10 Jul 2026 00:00:00 +0000 +Subject: [PATCH] efi/sb: prefer legacy SHIM_LOCK verify so pre-SBAT kernels + boot under shim >= 15 + +ONIE supports platforms that still build older (pre-6.x) Linux kernels. +Those kernels' EFI stub predates SBAT and carries no .sbat section. + +grub 2.14 verifies the images it loads (including the kernel) using shim's +newer image-loader protocol when shim provides it (shim >= 15/16). That +path makes an .sbat section MANDATORY, so shim rejects a pre-SBAT kernel +("No .sbat section data" -> grub "bad shim loader signature") even though +the kernel's Authenticode signature is valid. + +shim also still installs the legacy SHIM_LOCK verify protocol, which +enforces the signature but treats SBAT as optional for images verified +through the protocol (shim's verify_sbat_section() returns success on a +missing .sbat when in_protocol). Prefer that protocol when it is present +so a validly-signed old kernel boots. shim and grub keep full SBAT +enforcement in the boot chain up to grub itself; only the kernel is then +verified by signature alone -- which is how ONIE (signing its own kernels) +verified kernels before the shim/grub modernization. + +Signed-off-by: Brad House +--- + grub-core/kern/efi/sb.c | 14 ++++++++++++++ + 1 file changed, 14 insertions(+) + +--- a/grub-core/kern/efi/sb.c ++++ b/grub-core/kern/efi/sb.c +@@ -236,6 +236,20 @@ + shim_loader = grub_efi_locate_protocol (&shim_loader_guid, 0); + shim_lock = grub_efi_locate_protocol (&shim_lock_guid, 0); + ++ /* ++ * ONIE: when the legacy SHIM_LOCK verify protocol is available, prefer it ++ * over shim's newer image-loader protocol. shim's load_image path makes an ++ * .sbat section MANDATORY in every image it loads, which rejects ONIE's ++ * older (pre-6.x) kernels whose EFI stub predates SBAT -- "No .sbat section ++ * data" -> "bad shim loader signature" -- even though the kernel signature ++ * is valid. The SHIM_LOCK->verify path still enforces the signature but ++ * treats SBAT as optional (in_protocol), so a validly-signed old kernel ++ * boots. shim and grub keep full SBAT enforcement in the boot chain up to ++ * grub itself; only the kernel is verified by signature alone. ++ */ ++ if (shim_lock != NULL) ++ shim_loader = NULL; ++ + /* shim is missing, check if GRUB image is built with --disable-shim-lock. */ + if (shim_loader == NULL && shim_lock == NULL) + { diff --git a/patches/grub/2.14/series b/patches/grub/2.14/series new file mode 100644 index 000000000..f92508db0 --- /dev/null +++ b/patches/grub/2.14/series @@ -0,0 +1,14 @@ +# Upstream grub fix series (post-2.14, grub master, by Nicholas Vinson) for +# the i386-pc kernel.img link under modern binutils. grub 2.14's i386-pc +# kernel.img links via -Wl,--image-base, and binutils >= 2.39 (-z separate-code) +# maps the ELF headers into the first PT_LOAD, shifting .text off the required +# 0x9000 base ("grub-mkimage: kernel.img is miscompiled: start address 0x9074"). +# These commits switch i386-pc to a custom linker script + --defsym=_grub_text_base. +# Reverting the --image-base AX_CHECK_LINK_FLAG block also removes grub's +# autoconf-archive build dependency. Drops when ONIE moves to grub >= the +# release that includes these (post-2.14). +0001-build-i386-pc-update-kernel-image-generation.patch +0002-revert-configure-print-helpful-error-if-autoconf-archive-missing.patch +0003-revert-configure-check-linker-for-image-base-support.patch +0004-configure-drop-ttext-checks-for-i386-pc.patch +0005-efi-sb-prefer-legacy-SHIM_LOCK-verify-for-pre-SBAT-kernels.patch diff --git a/patches/i2ctools/gitignore.patch b/patches/i2ctools/gitignore.patch index 932580b1b..48ba066d4 100644 --- a/patches/i2ctools/gitignore.patch +++ b/patches/i2ctools/gitignore.patch @@ -5,15 +5,13 @@ Copyright (C) 2014 david_yang SPDX-License-Identifier: GPL-2.0 diff --git a/.gitignore b/.gitignore -new file mode 100644 -index 0000000..f7775cf ---- /dev/null +index e1bcbb3..a1fcba0 100644 +--- a/.gitignore +++ b/.gitignore -@@ -0,0 +1,7 @@ -+*.o -+*.patch +@@ -6,3 +6,6 @@ + *.so.* + *.so.dbg + *.ao ++sys_eeprom/24cXX.c ++sys_eeprom/24cXX.h +sys_eeprom/onie-syseeprom -+tools/i2cdetect -+tools/i2cdump -+tools/i2cget -+tools/i2cset diff --git a/patches/i2ctools/i2ctools-onie-cross-compile.patch b/patches/i2ctools/i2ctools-onie-cross-compile.patch index 25522c340..52a409832 100644 --- a/patches/i2ctools/i2ctools-onie-cross-compile.patch +++ b/patches/i2ctools/i2ctools-onie-cross-compile.patch @@ -6,28 +6,40 @@ Copyright (C) 2014 david_yang SPDX-License-Identifier: GPL-2.0 diff --git a/Makefile b/Makefile -index 5ea7486..0c859b3 100644 +index 5ac8a59..566bc2a 100644 --- a/Makefile +++ b/Makefile -@@ -21,10 +21,9 @@ INSTALL_DIR := $(INSTALL) -m 755 -d - INSTALL_PROGRAM := $(INSTALL) -m 755 +@@ -24,9 +24,9 @@ INSTALL_PROGRAM := $(INSTALL) -m 755 + LN := ln -sf RM := rm -f - + -CC ?= gcc -+CC=$(CROSS_COMPILE)gcc - --CFLAGS ?= -O2 --# When debugging, use the following instead -+#When debugging, use the following instead - #CFLAGS := -O -g - CFLAGS += -Wall - -@@ -34,7 +33,5 @@ KERNELVERSION := $(shell uname -r) - +-AR ?= ar +-STRIP ?= strip ++CC = $(CROSS_COMPILE)gcc ++AR = $(CROSS_COMPILE)ar ++STRIP = $(CROSS_COMPILE)strip + + CFLAGS ?= -O2 + # When debugging, use the following instead +@@ -34,9 +34,9 @@ CFLAGS ?= -O2 + CFLAGS += -Wall + SOCFLAGS := -fpic -D_REENTRANT $(CFLAGS) + +-BUILD_DYNAMIC_LIB ?= 1 ++BUILD_DYNAMIC_LIB ?= 0 + BUILD_STATIC_LIB ?= 1 +-USE_STATIC_LIB ?= 0 ++USE_STATIC_LIB ?= 1 + + ifeq ($(USE_STATIC_LIB),1) + BUILD_STATIC_LIB := 1 +@@ -54,7 +54,5 @@ endif + all: - + -EXTRA := --#EXTRA += py-smbus --SRCDIRS := include eeprom stub tools $(EXTRA) -+SRCDIRS := include tools +-#EXTRA += eeprog py-smbus +-SRCDIRS := include lib eeprom stub tools $(EXTRA) ++SRCDIRS := include lib include $(SRCDIRS:%=%/Module.mk) diff --git a/patches/i2ctools/i2ctools-sys-eeprom.patch b/patches/i2ctools/i2ctools-sys-eeprom.patch index e47b69062..eed7ddbc6 100644 --- a/patches/i2ctools/i2ctools-sys-eeprom.patch +++ b/patches/i2ctools/i2ctools-sys-eeprom.patch @@ -5,48 +5,38 @@ Copyright (C) 2014 david_yang Copyright (C) 2014 Curt Brune diff --git a/Makefile b/Makefile -index 0c859b3..144e1bc 100644 +index 566bc2a..7446ae7 100644 --- a/Makefile +++ b/Makefile -@@ -34,4 +34,9 @@ KERNELVERSION := $(shell uname -r) +@@ -55,4 +55,9 @@ endif all: - SRCDIRS := include tools + SRCDIRS := include lib + +ifeq ($(SYSEEPROM_ENABLE),yes) +SRCDIRS := $(SRCDIRS) sys_eeprom +endif + include $(SRCDIRS:%=%/Module.mk) - -diff --git a/sys_eeprom/24cXX.c b/sys_eeprom/24cXX.c -index 54c6342..be194ad 100644 ---- a/sys_eeprom/24cXX.c -+++ b/sys_eeprom/24cXX.c -@@ -44,7 +44,7 @@ static int i2c_write_2b(struct eeprom *e, __u8 buf[2]) - r = i2c_smbus_write_byte_data(e->fd, buf[0], buf[1]); - if(r < 0) - fprintf(stderr, "Error i2c_write_2b: %s\n", strerror(errno)); -- usleep(10); -+ usleep(1000); - return r; - } - diff --git a/sys_eeprom/Module.mk b/sys_eeprom/Module.mk new file mode 100644 -index 0000000..5b59b5a +index 0000000..0cfd439 --- /dev/null +++ b/sys_eeprom/Module.mk -@@ -0,0 +1,32 @@ +@@ -0,0 +1,36 @@ +#sys_eeprom Makefile + +SYS_EEPROM_DIR := sys_eeprom -+SYS_EEPROM_FLAGS := -O2 -Iinclude -lz ++SYS_EEPROM_FLAGS := -O2 -Iinclude ++SYS_EEPROM_LIBS := $(LIB_DIR)/$(LIB_STLIBNAME) -lz +SYS_EEPROM_TARGETS:= onie-syseeprom + +$(SYS_EEPROM_DIR)/onie-syseeprom: $(SYS_EEPROM_DIR)/sys_eeprom.o \ -+ $(SYS_EEPROM_DIR)/onie_tlvinfo.o $(SYS_EEPROM_DIR)/24cXX.o -+ $(CC) $(CFLAGS) $(SYS_EEPROM_FLAGS) $(LDFLAGS) -o $@ $^ ++ $(SYS_EEPROM_DIR)/onie_tlvinfo.o $(SYS_EEPROM_DIR)/24cXX.o \ ++ $(LIB_DIR)/$(LIB_STLIBNAME) ++ $(CC) $(CFLAGS) $(SYS_EEPROM_FLAGS) $(LDFLAGS) -o $@ \ ++ $(SYS_EEPROM_DIR)/sys_eeprom.o $(SYS_EEPROM_DIR)/onie_tlvinfo.o \ ++ $(SYS_EEPROM_DIR)/24cXX.o $(SYS_EEPROM_LIBS) + +$(SYS_EEPROM_DIR)/sys_eeprom.o: $(SYS_EEPROM_DIR)/sys_eeprom.c \ + $(SYS_EEPROM_DIR)/onie_tlvinfo.c $(SYS_EEPROM_DIR)/onie_tlvinfo.h \ @@ -59,7 +49,7 @@ index 0000000..5b59b5a + $(CC) $(CFLAGS) $(LD_FLAGS) $(SYS_EEPROM_FLAGS) -c $< -o $@ + +$(SYS_EEPROM_DIR)/24cXX.o: $(SYS_EEPROM_DIR)/24cXX.c \ -+ $(INCLUDE_DIR)/linux/i2c-dev.h $(SYS_EEPROM_DIR)/24cXX.h ++ $(INCLUDE_DIR)/i2c/smbus.h $(SYS_EEPROM_DIR)/24cXX.h + $(CC) $(CFLAGS) $(SYS_EEPROM_FLAGS) -c $< -o $@ + +all-sys_eeproms: $(addprefix $(SYS_EEPROM_DIR)/,$(SYS_EEPROM_TARGETS)) diff --git a/patches/i2ctools/series b/patches/i2ctools/series index be175ab6e..13b2cb92a 100644 --- a/patches/i2ctools/series +++ b/patches/i2ctools/series @@ -1,4 +1,4 @@ -# This series applies on GIT commit 160112307a7bcc6eef24e122b52ea2ff83a07683 +# This series applies on the i2c-tools 4.4 release tarball gitignore.patch i2ctools-onie-cross-compile.patch i2ctools-sys-eeprom.patch diff --git a/patches/kexec-tools/0001-Improve-device-tree-directory-sorting.patch b/patches/kexec-tools/0001-Improve-device-tree-directory-sorting.patch deleted file mode 100644 index 243ef57c3..000000000 --- a/patches/kexec-tools/0001-Improve-device-tree-directory-sorting.patch +++ /dev/null @@ -1,84 +0,0 @@ -From 0e1030b345b9e7c1c64b85dde32a282a19b825f0 Mon Sep 17 00:00:00 2001 -From: Curt Brune -Date: Tue, 24 Nov 2015 18:17:10 -0800 -Subject: [PATCH 1/1] Improve device tree directory sorting - -Previously when sorting the device tree directory entries, if both -device tree entries contained the '@' character then comparison was -made based on the length of the strings. - -This did not work in all cases and could result in odd orderings. - -This patch modifies the comparison function for the case when both -strings contain the '@' character. - -First a lexical comparison is made between the prefix portions of the -strings *before* the '@' character. - -Next, if the prefixes are equal, the lengths of the suffixes *after* -the '@' character are compared. This preserves the intent of the -original code. - -Next, if the suffix lengths are equal, a lexical comparison of the -suffixes is made. - -This is still not strictly correct, as ideally the portion after the -'@' should be compared numerically. However, determining what base to -use for all case is difficult. - -Signed-off-by: Curt Brune -Signed-off-by: Simon Horman ---- - kexec/arch/ppc/fs2dt.c | 21 +++++++++++++++++---- - 1 file changed, 17 insertions(+), 4 deletions(-) - -diff --git a/kexec/arch/ppc/fs2dt.c b/kexec/arch/ppc/fs2dt.c -index 4121c7d..6e77379 100644 ---- a/kexec/arch/ppc/fs2dt.c -+++ b/kexec/arch/ppc/fs2dt.c -@@ -30,6 +30,7 @@ - #include - #include "../../kexec.h" - #include "kexec-ppc.h" -+#include "types.h" - - #define MAXPATH 1024 /* max path name length */ - #define NAMESPACE 16384 /* max bytes for property names */ -@@ -296,6 +297,8 @@ static int comparefunc(const void *dentry1, const void *dentry2) - { - char *str1 = (*(struct dirent **)dentry1)->d_name; - char *str2 = (*(struct dirent **)dentry2)->d_name; -+ char *p1, *p2; -+ int res = 0, max_len; - - /* - * strcmp scans from left to right and fails to idetify for some -@@ -303,11 +306,21 @@ static int comparefunc(const void *dentry1, const void *dentry2) - * Therefore, we get the wrong sorted order like memory@10000000 and - * memory@f000000. - */ -- if (strchr(str1, '@') && strchr(str2, '@') && -- (strlen(str1) > strlen(str2))) -- return 1; -+ if ((p1 = strchr(str1, '@')) && (p2 = strchr(str2, '@'))) { -+ max_len = max(p1 - str1, p2 - str2); -+ if ((res = strncmp(str1, str2, max_len)) == 0) { -+ /* prefix is equal - compare part after '@' by length */ -+ p1++; p2++; -+ res = strlen(p1) - strlen(p2); -+ if (res == 0) -+ /* equal length, compare by strcmp() */ -+ res = strcmp(p1,p2); -+ } -+ } else { -+ res = strcmp(str1, str2); -+ } - -- return strcmp(str1, str2); -+ return res; - } - - /* --- -1.9.1 - diff --git a/patches/kexec-tools/15-25-kexec-tools-add-aarch64-support.patch b/patches/kexec-tools/15-25-kexec-tools-add-aarch64-support.patch deleted file mode 100644 index 1a7c2a9ad..000000000 --- a/patches/kexec-tools/15-25-kexec-tools-add-aarch64-support.patch +++ /dev/null @@ -1,828 +0,0 @@ -Subject: [PATCH 1/1] From: Geoff Levand Date: Mon, 15 - Jul 2013 23:32:36 +0000 (-0700) Subject: Add arm64 support X-Git-Url: - https://git.linaro.org/gitweb?p=people%2Fgeoff%2Fkexec-tools.git;a=commitdiff_plain;h=fbf5ac6c2c70ec0f6da2b9ff563e573999752c01 - -Add arm64 support - -Signed-off-by: Geoff Levand - -Get patch from: -https://fedorapeople.org/~hrw/aarch64/for-fedora/kexec-aarch64.patch - -Signed-off-by: Kai Kang ---- - configure | 3 + - configure.ac | 3 + - kexec/Makefile | 1 + - kexec/arch/arm64/Makefile | 13 ++ - kexec/arch/arm64/crashdump-arm64.c | 305 ++++++++++++++++++++++++++++++++ - kexec/arch/arm64/include/arch/options.h | 26 +++ - kexec/arch/arm64/kexec-arm64.c | 177 ++++++++++++++++++ - kexec/arch/arm64/kexec-arm64.h | 20 +++ - kexec/arch/arm64/kexec-elf-arm64.c | 114 ++++++++++++ - kexec/kexec-syscall.h | 7 +- - kexec/kexec.c | 4 +- - purgatory/arch/arm64/Makefile | 7 + - 12 files changed, 678 insertions(+), 2 deletions(-) - create mode 100644 kexec/arch/arm64/Makefile - create mode 100644 kexec/arch/arm64/crashdump-arm64.c - create mode 100644 kexec/arch/arm64/include/arch/options.h - create mode 100644 kexec/arch/arm64/kexec-arm64.c - create mode 100644 kexec/arch/arm64/kexec-arm64.h - create mode 100644 kexec/arch/arm64/kexec-elf-arm64.c - create mode 100644 purgatory/arch/arm64/Makefile - -diff --git a/configure b/configure -index 94a429c..1b59cdf 100755 ---- a/configure -+++ b/configure -@@ -2195,6 +2195,9 @@ case $target_cpu in - ARCH="ppc64" - SUBARCH="LE" - ;; -+ aarch64 ) -+ ARCH="arm64" -+ ;; - arm* ) - ARCH="arm" - ;; -diff --git a/configure.ac b/configure.ac -index 94f3018..c815f34 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -35,6 +35,9 @@ case $target_cpu in - ARCH="ppc64" - SUBARCH="LE" - ;; -+ aarch64 ) -+ ARCH="arm64" -+ ;; - arm* ) - ARCH="arm" - ;; -diff --git a/kexec/Makefile b/kexec/Makefile -index a758b4a..8bc6d08 100644 ---- a/kexec/Makefile -+++ b/kexec/Makefile -@@ -71,6 +71,7 @@ KEXEC_SRCS += $($(ARCH)_FS2DT) - - include $(srcdir)/kexec/arch/alpha/Makefile - include $(srcdir)/kexec/arch/arm/Makefile -+include $(srcdir)/kexec/arch/arm64/Makefile - include $(srcdir)/kexec/arch/i386/Makefile - include $(srcdir)/kexec/arch/ia64/Makefile - include $(srcdir)/kexec/arch/m68k/Makefile -diff --git a/kexec/arch/arm64/Makefile b/kexec/arch/arm64/Makefile -new file mode 100644 -index 0000000..639805a ---- /dev/null -+++ b/kexec/arch/arm64/Makefile -@@ -0,0 +1,13 @@ -+arm64_KEXEC_SRCS += \ -+ kexec/arch/arm64/kexec-arm64.c \ -+ kexec/arch/arm64/kexec-elf-arm64.c \ -+ kexec/arch/arm64/crashdump-arm64.c -+ -+arm64_ARCH_REUSE_INITRD = -+arm64_ADD_SEGMENT = -+arm64_VIRT_TO_PHYS = -+ -+dist += $(arm64_KEXEC_SRCS) \ -+ kexec/arch/arm64/Makefile \ -+ kexec/arch/arm64/kexec-arm64.h -+ -diff --git a/kexec/arch/arm64/crashdump-arm64.c b/kexec/arch/arm64/crashdump-arm64.c -new file mode 100644 -index 0000000..bb1b8bd ---- /dev/null -+++ b/kexec/arch/arm64/crashdump-arm64.c -@@ -0,0 +1,305 @@ -+/* -+ * This program is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation (version 2 of the License). -+ */ -+ -+#include "../../kexec.h" -+#include "../../kexec-elf.h" -+#include "../../crashdump.h" -+ -+int is_crashkernel_mem_reserved(void) -+{ -+ return 0; -+} -+ -+#if 0 -+/* -+ * Used to save various memory ranges/regions needed for the captured -+ * kernel to boot. (lime memmap= option in other archs) -+ */ -+static struct memory_range crash_memory_ranges[CRASH_MAX_MEMORY_RANGES]; -+struct memory_ranges usablemem_rgns = { -+ .size = 0, -+ .ranges = crash_memory_ranges, -+}; -+ -+/* memory range reserved for crashkernel */ -+static struct memory_range crash_reserved_mem; -+ -+static struct crash_elf_info elf_info = { -+ .class = ELFCLASS32, -+ .data = ELFDATA2LSB, -+ .machine = EM_ARM, -+ .page_offset = PAGE_OFFSET, -+}; -+ -+unsigned long phys_offset; -+ -+/** -+ * crash_range_callback() - callback called for each iomem region -+ * @data: not used -+ * @nr: not used -+ * @str: name of the memory region -+ * @base: start address of the memory region -+ * @length: size of the memory region -+ * -+ * This function is called once for each memory region found in /proc/iomem. It -+ * locates system RAM and crashkernel reserved memory and places these to -+ * variables: @crash_memory_ranges and @crash_reserved_mem. Number of memory -+ * regions is placed in @crash_memory_nr_ranges. -+ */ -+static int crash_range_callback(void *UNUSED(data), int UNUSED(nr), -+ char *str, unsigned long base, -+ unsigned long length) -+{ -+ struct memory_range *range; -+ -+ if (usablemem_rgns.size >= CRASH_MAX_MEMORY_RANGES) -+ return 1; -+ -+ range = usablemem_rgns.ranges + usablemem_rgns.size; -+ -+ if (strncmp(str, "System RAM\n", 11) == 0) { -+ range->start = base; -+ range->end = base + length - 1; -+ range->type = RANGE_RAM; -+ usablemem_rgns.size++; -+ } else if (strncmp(str, "Crash kernel\n", 13) == 0) { -+ crash_reserved_mem.start = base; -+ crash_reserved_mem.end = base + length - 1; -+ crash_reserved_mem.type = RANGE_RAM; -+ } -+ -+ return 0; -+} -+ -+/** -+ * crash_exclude_range() - excludes memory region reserved for crashkernel -+ * -+ * Function locates where crashkernel reserved memory is and removes that region -+ * from the available memory regions. -+ */ -+static void crash_exclude_range(void) -+{ -+ const struct memory_range *range = &crash_reserved_mem; -+ int i; -+ -+ for (i = 0; i < usablemem_rgns.size; i++) { -+ struct memory_range *r = usablemem_rgns.ranges + i; -+ -+ /* -+ * We assume that crash area is fully contained in -+ * some larger memory area. -+ */ -+ if (r->start <= range->start && r->end >= range->end) { -+ struct memory_range *new; -+ /* -+ * Let's split this area into 2 smaller ones and -+ * remove excluded range from between. First create -+ * new entry for the remaining area. -+ */ -+ new = usablemem_rgns.ranges + usablemem_rgns.size; -+ new->start = range->end + 1; -+ new->end = r->end; -+ usablemem_rgns.size++; -+ /* -+ * Next update this area to end before excluded range. -+ */ -+ r->end = range->start - 1; -+ break; -+ } -+ } -+} -+ -+static int range_cmp(const void *a1, const void *a2) -+{ -+ const struct memory_range *r1 = a1; -+ const struct memory_range *r2 = a2; -+ -+ if (r1->start > r2->start) -+ return 1; -+ if (r1->start < r2->start) -+ return -1; -+ -+ return 0; -+} -+ -+/** -+ * crash_get_memory_ranges() - read system physical memory -+ * -+ * Function reads through system physical memory and stores found memory regions -+ * in @crash_memory_ranges. Number of memory regions found is placed in -+ * @crash_memory_nr_ranges. Regions are sorted in ascending order. -+ * -+ * Returns %0 in case of success and %-1 otherwise (errno is set). -+ */ -+static int crash_get_memory_ranges(void) -+{ -+ /* -+ * First read all memory regions that can be considered as -+ * system memory including the crash area. -+ */ -+ kexec_iomem_for_each_line(NULL, crash_range_callback, NULL); -+ -+ if (usablemem_rgns.size < 1) { -+ errno = EINVAL; -+ return -1; -+ } -+ -+ /* -+ * Exclude memory reserved for crashkernel (this may result a split memory -+ * region). -+ */ -+ crash_exclude_range(); -+ -+ /* -+ * Make sure that the memory regions are sorted. -+ */ -+ qsort(usablemem_rgns.ranges, usablemem_rgns.size, -+ sizeof(*usablemem_rgns.ranges), range_cmp); -+ -+ return 0; -+} -+ -+/** -+ * cmdline_add_elfcorehdr() - adds elfcorehdr= to @cmdline -+ * @cmdline: buffer where parameter is placed -+ * @elfcorehdr: physical address of elfcorehdr -+ * -+ * Function appends 'elfcorehdr=start' at the end of the command line given in -+ * @cmdline. Note that @cmdline must be at least %COMMAND_LINE_SIZE bytes long -+ * (inclunding %NUL). -+ */ -+static void cmdline_add_elfcorehdr(char *cmdline, unsigned long elfcorehdr) -+{ -+ char buf[COMMAND_LINE_SIZE]; -+ int buflen; -+ -+ buflen = snprintf(buf, sizeof(buf), "%s elfcorehdr=%#lx", -+ cmdline, elfcorehdr); -+ if (buflen < 0) -+ die("Failed to construct elfcorehdr= command line parameter\n"); -+ if (buflen >= sizeof(buf)) -+ die("Command line overflow\n"); -+ -+ (void) strncpy(cmdline, buf, COMMAND_LINE_SIZE); -+ cmdline[COMMAND_LINE_SIZE - 1] = '\0'; -+} -+ -+/** -+ * cmdline_add_mem() - adds mem= parameter to kernel command line -+ * @cmdline: buffer where parameter is placed -+ * @size: size of the kernel reserved memory (in bytes) -+ * -+ * This function appends 'mem=size' at the end of the command line given in -+ * @cmdline. Note that @cmdline must be at least %COMMAND_LINE_SIZE bytes long -+ * (including %NUL). -+ */ -+static void cmdline_add_mem(char *cmdline, unsigned long size) -+{ -+ char buf[COMMAND_LINE_SIZE]; -+ int buflen; -+ -+ buflen = snprintf(buf, sizeof(buf), "%s mem=%ldK", cmdline, size >> 10); -+ if (buflen < 0) -+ die("Failed to construct mem= command line parameter\n"); -+ if (buflen >= sizeof(buf)) -+ die("Command line overflow\n"); -+ -+ (void) strncpy(cmdline, buf, COMMAND_LINE_SIZE); -+ cmdline[COMMAND_LINE_SIZE - 1] = '\0'; -+} -+ -+static unsigned long long range_size(const struct memory_range *r) -+{ -+ return r->end - r->start + 1; -+} -+ -+static void dump_memory_ranges(void) -+{ -+ int i; -+ -+ if (!kexec_debug) -+ return; -+ -+ dbgprintf("crashkernel: [%#llx - %#llx] (%ldM)\n", -+ crash_reserved_mem.start, crash_reserved_mem.end, -+ (unsigned long)range_size(&crash_reserved_mem) >> 20); -+ -+ for (i = 0; i < usablemem_rgns.size; i++) { -+ struct memory_range *r = usablemem_rgns.ranges + i; -+ dbgprintf("memory range: [%#llx - %#llx] (%ldM)\n", -+ r->start, r->end, (unsigned long)range_size(r) >> 20); -+ } -+} -+ -+/** -+ * load_crashdump_segments() - loads additional segments needed for kdump -+ * @info: kexec info structure -+ * @mod_cmdline: kernel command line -+ * -+ * This function loads additional segments which are needed for the dump capture -+ * kernel. It also updates kernel command line passed in @mod_cmdline to have -+ * right parameters for the dump capture kernel. -+ * -+ * Return %0 in case of success and %-1 in case of error. -+ */ -+int load_crashdump_segments(struct kexec_info *info, char *mod_cmdline) -+{ -+ unsigned long elfcorehdr; -+ unsigned long bufsz; -+ void *buf; -+ int err; -+ -+ /* -+ * First fetch all the memory (RAM) ranges that we are going to pass to -+ * the crashdump kernel during panic. -+ */ -+ err = crash_get_memory_ranges(); -+ if (err) -+ return err; -+ -+ /* -+ * Now that we have memory regions sorted, we can use first memory -+ * region as PHYS_OFFSET. -+ */ -+ phys_offset = usablemem_rgns.ranges->start; -+ dbgprintf("phys_offset: %#lx\n", phys_offset); -+ -+ err = crash_create_elf32_headers(info, &elf_info, -+ usablemem_rgns.ranges, -+ usablemem_rgns.size, &buf, &bufsz, -+ ELF_CORE_HEADER_ALIGN); -+ if (err) -+ return err; -+ -+ /* -+ * We allocate ELF core header from the end of the memory area reserved -+ * for the crashkernel. We align the header to SECTION_SIZE (which is -+ * 1MB) so that available memory passed in kernel command line will be -+ * aligned to 1MB. This is because kernel create_mapping() wants memory -+ * regions to be aligned to SECTION_SIZE. -+ */ -+ elfcorehdr = add_buffer_phys_virt(info, buf, bufsz, bufsz, 1 << 20, -+ crash_reserved_mem.start, -+ crash_reserved_mem.end, -1, 0); -+ -+ dbgprintf("elfcorehdr: %#lx\n", elfcorehdr); -+ cmdline_add_elfcorehdr(mod_cmdline, elfcorehdr); -+ -+ /* -+ * Add 'mem=size' parameter to dump capture kernel command line. This -+ * prevents the dump capture kernel from using any other memory regions -+ * which belong to the primary kernel. -+ */ -+ cmdline_add_mem(mod_cmdline, elfcorehdr - crash_reserved_mem.start); -+ -+ dump_memory_ranges(); -+ dbgprintf("kernel command line: \"%s\"\n", mod_cmdline); -+ -+ return 0; -+} -+ -+#endif -+ -diff --git a/kexec/arch/arm64/include/arch/options.h b/kexec/arch/arm64/include/arch/options.h -new file mode 100644 -index 0000000..04f6451 ---- /dev/null -+++ b/kexec/arch/arm64/include/arch/options.h -@@ -0,0 +1,26 @@ -+#ifndef KEXEC_ARCH_ARM64_OPTIONS_H -+#define KEXEC_ARCH_ARM64_OPTIONS_H -+ -+//#define OPT_ARCH_MAX ((OPT_MAX)+0) -+ -+#define OPT_APPEND ((OPT_MAX)+0) -+#define OPT_RAMDISK ((OPT_MAX)+1) -+#define OPT_DTB ((OPT_MAX)+2) -+ -+#define OPT_ARCH_MAX ((OPT_MAX)+3) -+ -+ -+#define KEXEC_ARCH_OPTIONS \ -+ KEXEC_OPTIONS \ -+ { "append", 1, NULL, OPT_APPEND }, \ -+ { "command-line", 1, NULL, OPT_APPEND }, \ -+ { "dtb", 1, NULL, OPT_DTB }, \ -+ { "initrd", 1, NULL, OPT_RAMDISK }, \ -+ { "ramdisk", 1, NULL, OPT_RAMDISK }, \ -+ -+#define KEXEC_ARCH_OPT_STR KEXEC_OPT_STR /* Only accept long arch options. */ -+ -+#define KEXEC_ALL_OPTIONS KEXEC_ARCH_OPTIONS -+#define KEXEC_ALL_OPT_STR KEXEC_ARCH_OPT_STR -+ -+#endif /* KEXEC_ARCH_ARM64_OPTIONS_H */ -diff --git a/kexec/arch/arm64/kexec-arm64.c b/kexec/arch/arm64/kexec-arm64.c -new file mode 100644 -index 0000000..fdb59d8 ---- /dev/null -+++ b/kexec/arch/arm64/kexec-arm64.c -@@ -0,0 +1,177 @@ -+/* -+ *ARM64 kexec support. -+ */ -+ -+#define _GNU_SOURCE -+ -+#include -+#include -+ -+//#include -+ -+#include "../../kexec.h" -+#include "../../kexec-syscall.h" -+#include "kexec-arm64.h" -+ -+ -+void arch_usage(void) -+{ -+ fprintf(stderr, "%s:%d: ->\n", __func__, __LINE__); -+ -+ printf( -+" --append=STRING Set the kernel command line to STRING.\n" -+" --command-line=STRING Set the kernel command line to STRING.\n" -+" --dtb=FILE Use FILE as the device tree blob.\n" -+" --initrd=FILE Use FILE as the kernel initial ramdisk.\n" -+" --ramdisk=FILE Use FILE as the kernel initial ramdisk.\n"); -+ -+ fprintf(stderr, "%s:%d: <-\n", __func__, __LINE__); -+} -+ -+int arch_process_options(int UNUSED(argc), char **UNUSED(argv)) -+{ -+ fprintf(stderr, "%s:%d: do\n", __func__, __LINE__); -+ return 0; -+} -+ -+const struct arch_map_entry arches[] = { -+ { "aarch64", KEXEC_ARCH_ARM64 }, -+ { NULL, 0 }, -+}; -+ -+void arch_update_purgatory(struct kexec_info *UNUSED(info)) -+{ -+ fprintf(stderr, "%s:%d: do\n", __func__, __LINE__); -+} -+ -+unsigned long virt_to_phys(unsigned long addr) -+{ -+ fprintf(stderr, "%s:%d: %016lx -> %016lx\n", __func__, __LINE__, addr, -+ addr + 0x080000000UL); -+ return addr + 0x080000000UL; -+} -+ -+void add_segment(struct kexec_info *info, const void *buf, size_t bufsz, -+ unsigned long base, size_t memsz) -+{ -+ fprintf(stderr, "%s:%d: ->\n", __func__, __LINE__); -+ add_segment_phys_virt(info, buf, bufsz, base, memsz, 1); -+ fprintf(stderr, "%s:%d: <-\n", __func__, __LINE__); -+} -+ -+static int get_memory_ranges_1(struct memory_range **range, int *ranges, -+ unsigned long kexec_flags) -+{ -+ static struct memory_range memory_range[KEXEC_SEGMENT_MAX]; -+ const char *iomem; -+ int range_count = 0; -+ char line[MAX_LINE]; -+ FILE *fp; -+ -+ iomem = proc_iomem(); -+ fp = fopen(iomem, "r"); -+ -+ if (!fp) { -+ fprintf(stderr, "Cannot open %s: %s\n", -+ iomem, strerror(errno)); -+ return -1; -+ } -+ -+ dbgprintf("memory ranges:\n"); -+ -+ while(fgets(line, sizeof(line), fp) != 0) { -+ struct memory_range r; -+ char *str; -+ int consumed; -+ -+ if (range_count >= KEXEC_SEGMENT_MAX) -+ break; -+ -+ if (sscanf(line, "%Lx-%Lx : %n", &r.start, &r.end, &consumed) -+ != 2) -+ continue; -+ -+ str = line + consumed; -+ r.end++; -+ -+ if (memcmp(str, "System RAM\n", 11)) { -+ dbgprintf(" Skip: %016Lx - %016Lx : %s", r.start, r.end, -+ str); -+ continue; -+ } -+ -+ r.type = RANGE_RAM; -+ memory_range[range_count] = r; -+ range_count++; -+ -+ dbgprintf(" Add: %016Lx - %016Lx : %s", r.start, r.end, str); -+ } -+ -+ fclose(fp); -+ *range = memory_range; -+ *ranges = range_count; -+ -+ return 0; -+} -+ -+static int get_memory_ranges_2(struct memory_range **range, int *ranges, -+ unsigned long UNUSED(kexec_flags)) -+{ -+ static struct memory_range memory_range[2]; -+ -+ memory_range[0].start = 0x080000000; -+ memory_range[0].end = 0x100000000; -+ memory_range[0].type = RANGE_RAM; -+ -+ memory_range[1].start = 0x900000000; -+ memory_range[1].end = 0x880000000; -+ memory_range[1].type = RANGE_RAM; -+ -+ *range = memory_range; -+ *ranges = sizeof(memory_range) / sizeof(memory_range[0]); -+ -+ return 0; -+} -+ -+int get_memory_ranges(struct memory_range **range, int *ranges, -+ unsigned long kexec_flags) -+{ -+ /* FIXME: Should get this info from device tree. */ -+ -+ return get_memory_ranges_1(range, ranges, kexec_flags); -+} -+ -+struct file_type file_type[] = { -+ { "elf-arm64", elf_arm64_probe, elf_arm64_load, elf_arm64_usage }, -+}; -+ -+int file_types = sizeof(file_type) / sizeof(file_type[0]); -+ -+int arch_compat_trampoline(struct kexec_info *info) -+{ -+ fprintf(stderr, "%s:%d: do\n", __func__, __LINE__); -+ return 0; -+} -+ -+void arch_reuse_initrd(void) -+{ -+} -+ -+int machine_verify_elf_rel(struct mem_ehdr *ehdr) -+{ -+ (void)ehdr; -+ -+ fprintf(stderr, "%s:%d: do\n", __func__, __LINE__); -+ return 0; -+} -+ -+void machine_apply_elf_rel(struct mem_ehdr *ehdr, unsigned long r_type, -+ void *location, unsigned long address, unsigned long value) -+{ -+ (void)ehdr; -+ (void)r_type; -+ (void)location; -+ (void)address; -+ (void)value; -+ fprintf(stderr, "%s:%d: do\n", __func__, __LINE__); -+} -diff --git a/kexec/arch/arm64/kexec-arm64.h b/kexec/arch/arm64/kexec-arm64.h -new file mode 100644 -index 0000000..e5bf383 ---- /dev/null -+++ b/kexec/arch/arm64/kexec-arm64.h -@@ -0,0 +1,20 @@ -+/* -+ *ARM64 kexec support. -+ */ -+ -+#if !defined(KEXEC_ARM64_H) -+#define KEXEC_ARM64_H -+ -+/* #include FIXME: this is broken */ -+#include -+ -+#include "../../kexec.h" -+ -+#define KEXEC_SEGMENT_MAX 16 /* FIXME: this should come from */ -+ -+int elf_arm64_probe(const char *buf, off_t len); -+int elf_arm64_load(int argc, char **argv, const char *buf, off_t len, -+ struct kexec_info *info); -+void elf_arm64_usage(void); -+ -+#endif -diff --git a/kexec/arch/arm64/kexec-elf-arm64.c b/kexec/arch/arm64/kexec-elf-arm64.c -new file mode 100644 -index 0000000..72c8687 ---- /dev/null -+++ b/kexec/arch/arm64/kexec-elf-arm64.c -@@ -0,0 +1,114 @@ -+/* -+ *ARM64 kexec support. -+ */ -+ -+#define _GNU_SOURCE -+ -+#include -+#include -+ -+#include "../../kexec-syscall.h" -+ -+#include "kexec-arm64.h" -+#include "arch/options.h" -+ -+#if !defined(EM_AARCH64) -+# define EM_AARCH64 183 -+#endif -+ -+int elf_arm64_probe(const char *buf, off_t len) -+{ -+ int result; -+ struct mem_ehdr ehdr; -+ -+ fprintf(stderr, "%s:%d: ->\n", __func__, __LINE__); -+ -+ result = build_elf_exec_info(buf, len, &ehdr, 0); -+ -+ if (result < 0) { -+ dbgprintf("Not an ELF executable\n"); -+ goto out; -+ } -+ -+ if (ehdr.e_machine != EM_AARCH64) { -+ dbgprintf("Not an AARCH64 executable\n"); -+ result = -1; -+ goto out; -+ } -+ -+ result = 0; -+ -+out: -+ free_elf_info(&ehdr); -+ fprintf(stderr, "%s:%d: <-\n", __func__, __LINE__); -+ return result; -+} -+ -+int elf_arm64_load(int argc, char **argv, const char *buf, off_t len, -+ struct kexec_info *info) -+{ -+ static const struct option options[] = { -+ KEXEC_ARCH_OPTIONS -+ { 0 } -+ }; -+ static const char short_options[] = KEXEC_OPT_STR ""; -+ const char *command_line = NULL; -+ unsigned int command_line_len = 0; -+ const char *ramdisk = NULL; -+ const char *dtb = NULL; -+ int opt; -+ struct mem_ehdr ehdr; -+ int result; -+ -+ fprintf(stderr, "%s:%d: ->\n", __func__, __LINE__); -+ -+ while ((opt = getopt_long(argc, argv, short_options, options, 0)) -+ != -1) { -+ switch (opt) { -+ default: -+ if (opt < OPT_MAX) /* Ignore core options */ -+ break; -+ case OPT_APPEND: -+ command_line = optarg; -+ command_line_len = strlen(command_line) + 1; -+ break; -+ case OPT_RAMDISK: -+ ramdisk = optarg; -+ break; -+ case OPT_DTB: -+ dtb = optarg; -+ break; -+ } -+ } -+ -+ fprintf(stderr, "%s:%d: command_line: %s\n", __func__, __LINE__, command_line); -+ fprintf(stderr, "%s:%d: ramdisk: %s\n", __func__, __LINE__, ramdisk); -+ fprintf(stderr, "%s:%d: dtb: %s\n", __func__, __LINE__, dtb); -+ -+ if (info->kexec_flags & KEXEC_ON_CRASH) { -+ fprintf(stderr, "kexec: kdump not yet supported on arm64\n"); -+ return -1; -+ } -+ -+ result = build_elf_exec_info(buf, len, &ehdr, 0); -+ -+ if (result < 0) { -+ free_elf_info(&ehdr); -+ fprintf(stderr, "%s:%d: free_elf_info failed\n", __func__, -+ __LINE__); -+ return result; -+ } -+ -+ elf_exec_build_load(info, &ehdr, buf, len, 0); -+ -+ info->entry = (void*)0x80080000UL; // FIXME -+ -+ fprintf(stderr, "%s:%d: <-\n", __func__, __LINE__); -+ return 0; -+} -+ -+void elf_arm64_usage(void) -+{ -+ fprintf(stderr, "%s:%d: ->\n", __func__, __LINE__); -+ fprintf(stderr, "%s:%d: <-\n", __func__, __LINE__); -+} -diff --git a/kexec/kexec-syscall.h b/kexec/kexec-syscall.h -index ce2e20b..b66db6c 100644 ---- a/kexec/kexec-syscall.h -+++ b/kexec/kexec-syscall.h -@@ -39,7 +39,7 @@ - #ifdef __s390__ - #define __NR_kexec_load 277 - #endif --#ifdef __arm__ -+#if defined(__arm__) || defined(__arm64__) - #define __NR_kexec_load __NR_SYSCALL_BASE + 347 - #endif - #if defined(__mips__) -@@ -108,6 +108,8 @@ static inline long kexec_file_load(int kernel_fd, int initrd_fd, - #define KEXEC_ARCH_PPC64 (21 << 16) - #define KEXEC_ARCH_IA_64 (50 << 16) - #define KEXEC_ARCH_ARM (40 << 16) -+#define KEXEC_ARCH_ARM64 (183 << 16) -+/* #define KEXEC_ARCH_AARCH64 (183 << 16) */ - #define KEXEC_ARCH_S390 (22 << 16) - #define KEXEC_ARCH_SH (42 << 16) - #define KEXEC_ARCH_MIPS_LE (10 << 16) -@@ -150,6 +152,9 @@ static inline long kexec_file_load(int kernel_fd, int initrd_fd, - #if defined(__mips__) - #define KEXEC_ARCH_NATIVE KEXEC_ARCH_MIPS - #endif -+#if defined(__arm64__) -+#define KEXEC_ARCH_NATIVE KEXEC_ARCH_ARM64 -+#endif - #ifdef __m68k__ - #define KEXEC_ARCH_NATIVE KEXEC_ARCH_68K - #endif -diff --git a/kexec/kexec.c b/kexec/kexec.c -index b088916..4ef7c64 100644 ---- a/kexec/kexec.c -+++ b/kexec/kexec.c -@@ -663,7 +663,9 @@ static int my_load(const char *type, int fileind, int argc, char **argv, - - memset(&info, 0, sizeof(info)); - info.kexec_flags = kexec_flags; -- -+ -+ fprintf(stderr, "%s:%d: do\n", __func__, __LINE__); -+ - result = 0; - if (argc - fileind <= 0) { - fprintf(stderr, "No kernel specified\n"); -diff --git a/purgatory/arch/arm64/Makefile b/purgatory/arch/arm64/Makefile -new file mode 100644 -index 0000000..d88e037 ---- /dev/null -+++ b/purgatory/arch/arm64/Makefile -@@ -0,0 +1,7 @@ -+# -+# Purgatory arm64 -+# -+ -+arm64_PURGATORY_SRCS = -+ -+dist += purgatory/arch/arm64/Makefile $(arm64_PURGATORY_SRCS) --- -1.9.1 - diff --git a/patches/kexec-tools/series b/patches/kexec-tools/series index 73a74ea10..289a5f798 100644 --- a/patches/kexec-tools/series +++ b/patches/kexec-tools/series @@ -1,6 +1,9 @@ -# Disabled this series for the post 2021.08 ONIE release, as the upgraded -# kexec-tools has arm64 support, and seems to work fine without the patch. -# PowerPC support remains to be tested - Alex Doyle -# This series applies on GIT commit db8668ed563d446839f25150fb1ba24721d7c4be -#0001-Improve-device-tree-directory-sorting.patch -#15-25-kexec-tools-add-aarch64-support.patch +# No patches required for kexec-tools. +# +# Historically ONIE carried two patches against kexec-tools: +# 0001-Improve-device-tree-directory-sorting.patch +# 15-25-kexec-tools-add-aarch64-support.patch +# Both were already disabled (commented out) after the post-2021.08 upgrade and +# are now fully upstream as of kexec-tools 2.0.32, so they have been dropped: +# - The device-tree directory sorting fix is present in kexec/arch/ppc/fs2dt.c. +# - arm64/aarch64 support is fully provided by kexec/arch/arm64/. diff --git a/patches/lvm2/0001-add-sysmacros.h-to-filter-sysfs.c b/patches/lvm2/0001-add-sysmacros.h-to-filter-sysfs.c deleted file mode 100644 index fd8a2f349..000000000 --- a/patches/lvm2/0001-add-sysmacros.h-to-filter-sysfs.c +++ /dev/null @@ -1,10 +0,0 @@ ---- a/lib/filters/filter-sysfs.c 2021-08-13 14:07:25.761101198 +0000 -+++ b/lib/filters/filter-sysfs.c 2021-08-13 03:57:01.817585951 +0000 -@@ -18,6 +18,7 @@ - #ifdef __linux__ - - #include -+#include - - static int _locate_sysfs_blocks(const char *sysfs_dir, char *path, size_t len, - unsigned *sysfs_depth) diff --git a/patches/lvm2/series b/patches/lvm2/series index c54dcfe69..dc5acad82 100644 --- a/patches/lvm2/series +++ b/patches/lvm2/series @@ -1 +1,8 @@ -0001-add-sysmacros.h-to-filter-sysfs.c \ No newline at end of file +# This series applies on lvm2 release LVM2.2.03.41 +# +# No patches required. +# +# The former 0001-add-sysmacros.h-to-filter-sysfs.c patch (which added +# for the major()/minor() macros to satisfy newer glibc) +# is now upstream as of the 2.03 series and no longer applies, so it has +# been dropped. diff --git a/patches/pciutils/0000-Makefile-changes-for-ONIE.patch b/patches/pciutils/0000-Makefile-changes-for-ONIE.patch index 936791640..19c816275 100644 --- a/patches/pciutils/0000-Makefile-changes-for-ONIE.patch +++ b/patches/pciutils/0000-Makefile-changes-for-ONIE.patch @@ -7,27 +7,16 @@ SPDX-License-Identifier: GPL-2.0 Minor Makefile changes for ONIE build environment. diff --git a/Makefile b/Makefile -index 0a21ee8..f2b8924 100644 +index a726773..7d2567c 100644 --- a/Makefile +++ b/Makefile @@ -4,6 +4,10 @@ OPT=-O2 CFLAGS=$(OPT) -Wall -W -Wno-parentheses -Wstrict-prototypes -Wmissing-prototypes - + +# ONIE build environment changes +CFLAGS += $(ONIE_CFLAGS) +LDFLAGS += $(ONIE_LDFLAGS) + - VERSION=3.2.1 - DATE=2013-11-10 - -@@ -130,7 +134,8 @@ install-lib: $(PCIINC_INS) lib/$(PCILIBPC) install-pcilib - $(INSTALL) -c -m 644 $(PCIINC_INS) $(DESTDIR)$(INCDIR)/pci - $(INSTALL) -c -m 644 lib/$(PCILIBPC) $(DESTDIR)$(PKGCFDIR) - ifeq ($(SHARED),yes) -- ln -sf $(LIBNAME).so$(ABI_VERSION) $(DESTDIR)$(LIBDIR)/$(LIBNAME).so -+ ln -sf $(PCILIB) $(DESTDIR)$(LIBDIR)/$(LIBNAME).so$(ABI_VERSION) -+ ln -sf $(PCILIB) $(DESTDIR)$(LIBDIR)/$(LIBNAME).so - endif - - uninstall: all + VERSION=3.15.0 + DATE=2026-04-05 diff --git a/patches/pciutils/series b/patches/pciutils/series index 788eadc6a..b70328ee7 100644 --- a/patches/pciutils/series +++ b/patches/pciutils/series @@ -1,2 +1,2 @@ -# This series applies on GIT commit 68d0399702a226d60ad9ed7e7f42f0b7b13ff830 +# This series applies on pciutils release 3.15.0 0000-Makefile-changes-for-ONIE.patch diff --git a/patches/pesign/Fix-unsigned-char-changes-value-from-496-to-240.patch b/patches/pesign/Fix-unsigned-char-changes-value-from-496-to-240.patch deleted file mode 100644 index 2415c0212..000000000 --- a/patches/pesign/Fix-unsigned-char-changes-value-from-496-to-240.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 95439e6f4f2f5e752bee76685627c78329fc8728 Mon Sep 17 00:00:00 2001 -From: Alex Doyle -Date: Mon, 30 Aug 2021 22:53:12 +0000 -Subject: [PATCH] Fix 'unsigned char' changes value from '496' to '240' - ---- - src/efikeygen.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/efikeygen.c b/src/efikeygen.c -index 121a238..848480a 100644 ---- a/src/efikeygen.c -+++ b/src/efikeygen.c -@@ -208,7 +208,7 @@ static int - add_cert_type(cms_context *cms, void *extHandle, int is_ca) - { - SECItem bitStringValue; -- unsigned char type = NS_CERT_TYPE_APP; -+ int type = NS_CERT_TYPE_APP; - - if (is_ca) - type |= NS_CERT_TYPE_SSL_CA | --- -2.30.2 - diff --git a/patches/pesign/brace-initialization.patch b/patches/pesign/brace-initialization.patch deleted file mode 100644 index 1e72c62db..000000000 --- a/patches/pesign/brace-initialization.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 96576124252305d23e486e068d8abe0b0cc1bc93 Mon Sep 17 00:00:00 2001 -From: Alex Doyle -Date: Fri, 18 Dec 2020 10:16:28 -0800 -Subject: [PATCH] brace-initialization-patch for pesign-113 - -Fix strict warning message treated as an error -(-Werror=missing-braces) by explicitly initializing every struct -member to zero. ---- - libdpe/pe_allocspace.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/libdpe/pe_allocspace.c b/libdpe/pe_allocspace.c -index a2898f6..cdd6a5d 100644 ---- a/libdpe/pe_allocspace.c -+++ b/libdpe/pe_allocspace.c -@@ -61,7 +61,7 @@ pe_set_image_size(Pe *pe) - struct pe32plus_opt_hdr *opthdr = pe->state.pe32plus_exe.opthdr; - - Pe_Scn *scn = NULL; -- struct section_header shdr = { "", 0, }, tmp_shdr; -+ struct section_header shdr = {{ 0 }, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, tmp_shdr; - if (pehdr->sections < 1) - return -1; - --- -2.20.1 - diff --git a/patches/pesign/implicit-fallthrough.patch b/patches/pesign/implicit-fallthrough.patch deleted file mode 100644 index ef1f517b4..000000000 --- a/patches/pesign/implicit-fallthrough.patch +++ /dev/null @@ -1,22 +0,0 @@ -implicit-fallthrough.patch - -When compiling using gcc-7 with -Werror=implicit-fallthrough enabled, -implicit case statement fallthroughs are not permitted. - -This patch uses the gcc "comment method" to make the fallthrough -explicit. Using the comment method is backwardly compatible with -earlier versions of gcc. See The gcc documentaion for the --Wimplicit-fallthrough=3 option. - -diff --git a/src/authvar.c b/src/authvar.c -index ad659ca..0c5d752 100644 ---- a/src/authvar.c -+++ b/src/authvar.c -@@ -511,6 +511,7 @@ main(int argc, char *argv[]) - case IMPORT|SET: - case IMPORT|SIGN|SET: - fprintf(stderr, "authvar: not implemented\n"); -+ /* fallthrough */ - case IMPORT|SIGN|EXPORT: - default: - fprintf(stderr, "authvar: invalid flags: "); diff --git a/patches/pesign/pesigcheck-Fix-a-wrong-assignment.patch b/patches/pesign/pesigcheck-Fix-a-wrong-assignment.patch deleted file mode 100644 index ba4593174..000000000 --- a/patches/pesign/pesigcheck-Fix-a-wrong-assignment.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 5e18c5e057d08c7aeffb41d4c35583094fe67365 Mon Sep 17 00:00:00 2001 -From: Alex Doyle -Date: Mon, 30 Aug 2021 22:59:24 +0000 -Subject: [PATCH] pesigcheck: Fix a wrong assignment. - ---- - src/pesigcheck.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/src/pesigcheck.c b/src/pesigcheck.c -index 524cce3..8fa0f1a 100644 ---- a/src/pesigcheck.c -+++ b/src/pesigcheck.c -@@ -318,7 +318,7 @@ check_signature(pesigcheck_context *ctx, int *nreasons, - reason->type = SIGNATURE; - reason->sig.data = data; - reason->sig.len = datalen; -- reason->type = siBuffer; -+ reason->sig.type = siBuffer; - nreason += 1; - is_invalid = true; - } -@@ -330,7 +330,7 @@ check_signature(pesigcheck_context *ctx, int *nreasons, - reason->type = SIGNATURE; - reason->sig.data = data; - reason->sig.len = datalen; -- reason->type = siBuffer; -+ reason->sig.type = siBuffer; - nreason += 1; - has_valid_cert = true; - } --- -2.30.2 - diff --git a/patches/pesign/series b/patches/pesign/series deleted file mode 100644 index ccd457ba3..000000000 --- a/patches/pesign/series +++ /dev/null @@ -1,9 +0,0 @@ -# This series applies for building pesign version 113 -brace-initialization.patch -# https://github.com/rhboot/pesign/commit/b535d1ac5cbcdf18a97d97a92581e38080d9e521 -Fix-unsigned-char-changes-value-from-496-to-240.patch -# https://github.com/rhboot/pesign/commit/c555fd74c009242c3864576bd5f17a1f8f4fdffd -pesigcheck-Fix-a-wrong-assignment.patch - - - diff --git a/patches/popt/aarch64_support.patch b/patches/popt/aarch64_support.patch deleted file mode 100644 index bebe2516e..000000000 --- a/patches/popt/aarch64_support.patch +++ /dev/null @@ -1,733 +0,0 @@ -#------------------------------------------------------------------------------- -# -# Copyright (C) 2016 Pankaj Bansal -# -# SPDX-License-Identifier: GPL-2.0 -# -#------------------------------------------------------------------------------- - -diff --git a/config.sub b/config.sub -old mode 100755 -new mode 100644 -index 2a55a50..1028ea4 ---- a/config.sub -+++ b/config.sub -@@ -1,38 +1,31 @@ - #! /bin/sh - # Configuration validation subroutine script. --# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, --# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 --# Free Software Foundation, Inc. -+# Copyright 1992-2016 Free Software Foundation, Inc. - --timestamp='2009-11-20' -+timestamp='2016-05-10' - --# This file is (in principle) common to ALL GNU software. --# The presence of a machine in this file suggests that SOME GNU software --# can handle that machine. It does not imply ALL GNU software can. --# --# This file is free software; you can redistribute it and/or modify --# it under the terms of the GNU General Public License as published by --# the Free Software Foundation; either version 2 of the License, or -+# This file is free software; you can redistribute it and/or modify it -+# under the terms of the GNU General Public License as published by -+# the Free Software Foundation; either version 3 of the License, or - # (at your option) any later version. - # --# This program is distributed in the hope that it will be useful, --# but WITHOUT ANY WARRANTY; without even the implied warranty of --# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --# GNU General Public License for more details. -+# This program is distributed in the hope that it will be useful, but -+# WITHOUT ANY WARRANTY; without even the implied warranty of -+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+# General Public License for more details. - # - # You should have received a copy of the GNU General Public License --# along with this program; if not, write to the Free Software --# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA --# 02110-1301, USA. -+# along with this program; if not, see . - # - # As a special exception to the GNU General Public License, if you - # distribute this file as part of a program that contains a - # configuration script generated by Autoconf, you may include it under --# the same distribution terms that you use for the rest of that program. -+# the same distribution terms that you use for the rest of that -+# program. This Exception is an additional permission under section 7 -+# of the GNU General Public License, version 3 ("GPLv3"). - - --# Please send patches to . Submit a context --# diff and a properly formatted GNU ChangeLog entry. -+# Please send patches to . - # - # Configuration subroutine to validate and canonicalize a configuration type. - # Supply the specified configuration type as an argument. -@@ -40,7 +33,7 @@ timestamp='2009-11-20' - # Otherwise, we print the canonical config type on stdout and succeed. - - # You can get the latest version of this script from: --# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD -+# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub - - # This file is supposed to be the same for all GNU packages - # and recognize all the CPU types, system types and aliases -@@ -60,24 +53,17 @@ timestamp='2009-11-20' - me=`echo "$0" | sed -e 's,.*/,,'` - - usage="\ --Usage: $0 [OPTION] CPU-MFR-OPSYS -- $0 [OPTION] ALIAS -- -+Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS - Canonicalize a configuration name. -- - Operation modes: - -h, --help print this help, then exit - -t, --time-stamp print date of last modification, then exit - -v, --version print version number, then exit -- - Report bugs and patches to ." - - version="\ - GNU config.sub ($timestamp) -- --Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, --2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. -- -+Copyright 1992-2016 Free Software Foundation, Inc. - This is free software; see the source for copying conditions. There is NO - warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." - -@@ -123,13 +109,18 @@ esac - # Here we must recognize all the valid KERNEL-OS combinations. - maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` - case $maybe_os in -- nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ -- uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ -+ nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ -+ linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ -+ knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \ - kopensolaris*-gnu* | \ - storm-chaos* | os2-emx* | rtmk-nova*) - os=-$maybe_os - basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` - ;; -+ android-linux) -+ os=-linux-android -+ basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown -+ ;; - *) - basic_machine=`echo $1 | sed 's/-[^-]*$//'` - if [ $basic_machine != $1 ] -@@ -152,12 +143,12 @@ case $os in - -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ - -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ - -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -- -apple | -axis | -knuth | -cray | -microblaze) -+ -apple | -axis | -knuth | -cray | -microblaze*) - os= - basic_machine=$1 - ;; -- -bluegene*) -- os=-cnk -+ -bluegene*) -+ os=-cnk - ;; - -sim | -cisco | -oki | -wec | -winbond) - os= -@@ -173,10 +164,10 @@ case $os in - os=-chorusos - basic_machine=$1 - ;; -- -chorusrdb) -- os=-chorusrdb -+ -chorusrdb) -+ os=-chorusrdb - basic_machine=$1 -- ;; -+ ;; - -hiux*) - os=-hiuxwe2 - ;; -@@ -221,6 +212,12 @@ case $os in - -isc*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; -+ -lynx*178) -+ os=-lynxos178 -+ ;; -+ -lynx*5) -+ os=-lynxos5 -+ ;; - -lynx*) - os=-lynxos - ;; -@@ -245,20 +242,29 @@ case $basic_machine in - # Some are omitted here because they have special meanings below. - 1750a | 580 \ - | a29k \ -+ | aarch64 | aarch64_be \ - | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ - | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ - | am33_2.0 \ -- | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ -+ | arc | arceb \ -+ | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ -+ | avr | avr32 \ -+ | ba \ -+ | be32 | be64 \ - | bfin \ -- | c4x | clipper \ -+ | c4x | c8051 | clipper \ - | d10v | d30v | dlx | dsp16xx \ -- | fido | fr30 | frv \ -+ | e2k | epiphany \ -+ | fido | fr30 | frv | ft32 \ - | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ -+ | hexagon \ - | i370 | i860 | i960 | ia64 \ - | ip2k | iq2000 \ -+ | k1om \ -+ | le32 | le64 \ - | lm32 \ - | m32c | m32r | m32rle | m68000 | m68k | m88k \ -- | maxq | mb | microblaze | mcore | mep | metag \ -+ | maxq | mb | microblaze | microblazeel | mcore | mep | metag \ - | mips | mipsbe | mipseb | mipsel | mipsle \ - | mips16 \ - | mips64 | mips64el \ -@@ -272,38 +278,55 @@ case $basic_machine in - | mips64vr5900 | mips64vr5900el \ - | mipsisa32 | mipsisa32el \ - | mipsisa32r2 | mipsisa32r2el \ -+ | mipsisa32r6 | mipsisa32r6el \ - | mipsisa64 | mipsisa64el \ - | mipsisa64r2 | mipsisa64r2el \ -+ | mipsisa64r6 | mipsisa64r6el \ - | mipsisa64sb1 | mipsisa64sb1el \ - | mipsisa64sr71k | mipsisa64sr71kel \ -+ | mipsr5900 | mipsr5900el \ - | mipstx39 | mipstx39el \ - | mn10200 | mn10300 \ - | moxie \ - | mt \ - | msp430 \ -- | nios | nios2 \ -+ | nds32 | nds32le | nds32be \ -+ | nios | nios2 | nios2eb | nios2el \ - | ns16k | ns32k \ -- | or32 \ -+ | open8 | or1k | or1knd | or32 \ - | pdp10 | pdp11 | pj | pjl \ -- | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ -+ | powerpc | powerpc64 | powerpc64le | powerpcle \ - | pyramid \ -- | rx \ -+ | riscv32 | riscv64 \ -+ | rl78 | rx \ - | score \ -- | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ -+ | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[234]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ - | sh64 | sh64le \ - | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ - | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ -- | spu | strongarm \ -- | tahoe | thumb | tic4x | tic80 | tron \ -+ | spu \ -+ | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ - | ubicom32 \ -- | v850 | v850e \ -+ | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ -+ | visium \ - | we32k \ -- | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ -+ | x86 | xc16x | xstormy16 | xtensa \ - | z8k | z80) - basic_machine=$basic_machine-unknown - ;; -- m6811 | m68hc11 | m6812 | m68hc12 | picochip) -- # Motorola 68HC11/12. -+ c54x) -+ basic_machine=tic54x-unknown -+ ;; -+ c55x) -+ basic_machine=tic55x-unknown -+ ;; -+ c6x) -+ basic_machine=tic6x-unknown -+ ;; -+ leon|leon[3-9]) -+ basic_machine=sparc-$basic_machine -+ ;; -+ m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip) - basic_machine=$basic_machine-unknown - os=-none - ;; -@@ -313,6 +336,21 @@ case $basic_machine in - basic_machine=mt-unknown - ;; - -+ strongarm | thumb | xscale) -+ basic_machine=arm-unknown -+ ;; -+ xgate) -+ basic_machine=$basic_machine-unknown -+ os=-none -+ ;; -+ xscaleeb) -+ basic_machine=armeb-unknown -+ ;; -+ -+ xscaleel) -+ basic_machine=armel-unknown -+ ;; -+ - # We use `pc' rather than `unknown' - # because (1) that's what they normally are, and - # (2) the word "unknown" tends to confuse beginning users. -@@ -327,25 +365,32 @@ case $basic_machine in - # Recognize the basic CPU types with company name. - 580-* \ - | a29k-* \ -+ | aarch64-* | aarch64_be-* \ - | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ - | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ -- | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ -+ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \ - | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ - | avr-* | avr32-* \ -+ | ba-* \ -+ | be32-* | be64-* \ - | bfin-* | bs2000-* \ -- | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ -- | clipper-* | craynv-* | cydra-* \ -+ | c[123]* | c30-* | [cjt]90-* | c4x-* \ -+ | c8051-* | clipper-* | craynv-* | cydra-* \ - | d10v-* | d30v-* | dlx-* \ -- | elxsi-* \ -+ | e2k-* | elxsi-* \ - | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ - | h8300-* | h8500-* \ - | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ -+ | hexagon-* \ - | i*86-* | i860-* | i960-* | ia64-* \ - | ip2k-* | iq2000-* \ -+ | k1om-* \ -+ | le32-* | le64-* \ - | lm32-* \ - | m32c-* | m32r-* | m32rle-* \ - | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ -- | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \ -+ | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ -+ | microblaze-* | microblazeel-* \ - | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ - | mips16-* \ - | mips64-* | mips64el-* \ -@@ -359,33 +404,43 @@ case $basic_machine in - | mips64vr5900-* | mips64vr5900el-* \ - | mipsisa32-* | mipsisa32el-* \ - | mipsisa32r2-* | mipsisa32r2el-* \ -+ | mipsisa32r6-* | mipsisa32r6el-* \ - | mipsisa64-* | mipsisa64el-* \ - | mipsisa64r2-* | mipsisa64r2el-* \ -+ | mipsisa64r6-* | mipsisa64r6el-* \ - | mipsisa64sb1-* | mipsisa64sb1el-* \ - | mipsisa64sr71k-* | mipsisa64sr71kel-* \ -+ | mipsr5900-* | mipsr5900el-* \ - | mipstx39-* | mipstx39el-* \ - | mmix-* \ - | mt-* \ - | msp430-* \ -- | nios-* | nios2-* \ -+ | nds32-* | nds32le-* | nds32be-* \ -+ | nios-* | nios2-* | nios2eb-* | nios2el-* \ - | none-* | np1-* | ns16k-* | ns32k-* \ -+ | open8-* \ -+ | or1k*-* \ - | orion-* \ - | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ -- | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ -+ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ - | pyramid-* \ -- | romp-* | rs6000-* | rx-* \ -+ | riscv32-* | riscv64-* \ -+ | rl78-* | romp-* | rs6000-* | rx-* \ - | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ - | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ - | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ - | sparclite-* \ -- | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ -- | tahoe-* | thumb-* \ -- | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \ -+ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \ -+ | tahoe-* \ -+ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ -+ | tile*-* \ - | tron-* \ - | ubicom32-* \ -- | v850-* | v850e-* | vax-* \ -+ | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ -+ | vax-* \ -+ | visium-* \ - | we32k-* \ -- | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ -+ | x86-* | x86_64-* | xc16x-* | xps100-* \ - | xstormy16-* | xtensa*-* \ - | ymp-* \ - | z8k-* | z80-*) -@@ -410,7 +465,7 @@ case $basic_machine in - basic_machine=a29k-amd - os=-udi - ;; -- abacus) -+ abacus) - basic_machine=abacus-unknown - ;; - adobe68k) -@@ -460,6 +515,9 @@ case $basic_machine in - basic_machine=i386-pc - os=-aros - ;; -+ asmjs) -+ basic_machine=asmjs-unknown -+ ;; - aux) - basic_machine=m68k-apple - os=-aux -@@ -480,11 +538,20 @@ case $basic_machine in - basic_machine=powerpc-ibm - os=-cnk - ;; -+ c54x-*) -+ basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` -+ ;; -+ c55x-*) -+ basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` -+ ;; -+ c6x-*) -+ basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` -+ ;; - c90) - basic_machine=c90-cray - os=-unicos - ;; -- cegcc) -+ cegcc) - basic_machine=arm-unknown - os=-cegcc - ;; -@@ -516,7 +583,7 @@ case $basic_machine in - basic_machine=craynv-cray - os=-unicosmp - ;; -- cr16) -+ cr16 | cr16-*) - basic_machine=cr16-unknown - os=-elf - ;; -@@ -674,7 +741,6 @@ case $basic_machine in - i370-ibm* | ibm*) - basic_machine=i370-ibm - ;; --# I'm not sure what "Sysv32" means. Should this be sysv3.2? - i*86v32) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv32 -@@ -713,6 +779,9 @@ case $basic_machine in - basic_machine=m68k-isi - os=-sysv - ;; -+ leon-*|leon[3-9]-*) -+ basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'` -+ ;; - m68knommu) - basic_machine=m68k-unknown - os=-linux -@@ -732,11 +801,15 @@ case $basic_machine in - basic_machine=ns32k-utek - os=-sysv - ;; -- microblaze) -+ microblaze*) - basic_machine=microblaze-xilinx - ;; -+ mingw64) -+ basic_machine=x86_64-pc -+ os=-mingw64 -+ ;; - mingw32) -- basic_machine=i386-pc -+ basic_machine=i686-pc - os=-mingw32 - ;; - mingw32ce) -@@ -764,6 +837,10 @@ case $basic_machine in - basic_machine=powerpc-unknown - os=-morphos - ;; -+ moxiebox) -+ basic_machine=moxie-unknown -+ os=-moxiebox -+ ;; - msdos) - basic_machine=i386-pc - os=-msdos -@@ -771,10 +848,18 @@ case $basic_machine in - ms1-*) - basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` - ;; -+ msys) -+ basic_machine=i686-pc -+ os=-msys -+ ;; - mvs) - basic_machine=i370-ibm - os=-mvs - ;; -+ nacl) -+ basic_machine=le32-unknown -+ os=-nacl -+ ;; - ncr3000) - basic_machine=i486-ncr - os=-sysv4 -@@ -839,6 +924,12 @@ case $basic_machine in - np1) - basic_machine=np1-gould - ;; -+ neo-tandem) -+ basic_machine=neo-tandem -+ ;; -+ nse-tandem) -+ basic_machine=nse-tandem -+ ;; - nsr-tandem) - basic_machine=nsr-tandem - ;; -@@ -921,9 +1012,10 @@ case $basic_machine in - ;; - power) basic_machine=power-ibm - ;; -- ppc) basic_machine=powerpc-unknown -+ ppc | ppcbe) basic_machine=powerpc-unknown - ;; -- ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` -+ ppc-* | ppcbe-*) -+ basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ppcle | powerpclittle | ppc-le | powerpc-little) - basic_machine=powerpcle-unknown -@@ -948,7 +1040,11 @@ case $basic_machine in - basic_machine=i586-unknown - os=-pw32 - ;; -- rdos) -+ rdos | rdos64) -+ basic_machine=x86_64-pc -+ os=-rdos -+ ;; -+ rdos32) - basic_machine=i386-pc - os=-rdos - ;; -@@ -1017,6 +1113,9 @@ case $basic_machine in - basic_machine=i860-stratus - os=-sysv4 - ;; -+ strongarm-* | thumb-*) -+ basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'` -+ ;; - sun2) - basic_machine=m68000-sun - ;; -@@ -1073,20 +1172,8 @@ case $basic_machine in - basic_machine=t90-cray - os=-unicos - ;; -- tic54x | c54x*) -- basic_machine=tic54x-unknown -- os=-coff -- ;; -- tic55x | c55x*) -- basic_machine=tic55x-unknown -- os=-coff -- ;; -- tic6x | c6x*) -- basic_machine=tic6x-unknown -- os=-coff -- ;; - tile*) -- basic_machine=tile-unknown -+ basic_machine=$basic_machine-unknown - os=-linux-gnu - ;; - tx39) -@@ -1156,6 +1243,9 @@ case $basic_machine in - xps | xps100) - basic_machine=xps100-honeywell - ;; -+ xscale-* | xscalee[bl]-*) -+ basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'` -+ ;; - ymp) - basic_machine=ymp-cray - os=-unicos -@@ -1253,11 +1343,11 @@ esac - if [ x"$os" != x"" ] - then - case $os in -- # First match some system type aliases -- # that might get confused with valid system types. -+ # First match some system type aliases -+ # that might get confused with valid system types. - # -solaris* is a basic system type, with this one exception. -- -auroraux) -- os=-auroraux -+ -auroraux) -+ os=-auroraux - ;; - -solaris1 | -solaris1.*) - os=`echo $os | sed -e 's|solaris1|sunos4|'` -@@ -1281,28 +1371,30 @@ case $os in - -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ - | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ - | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ -- | -sym* | -kopensolaris* \ -+ | -sym* | -kopensolaris* | -plan9* \ - | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ -- | -aos* | -aros* \ -+ | -aos* | -aros* | -cloudabi* | -sortix* \ - | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ - | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ - | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ -- | -openbsd* | -solidbsd* \ -+ | -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \ - | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ - | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ - | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ - | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ - | -chorusos* | -chorusrdb* | -cegcc* \ -- | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ -- | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ -- | -uxpv* | -beos* | -mpeix* | -udk* \ -+ | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ -+ | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ -+ | -linux-newlib* | -linux-musl* | -linux-uclibc* \ -+ | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \ - | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ - | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ - | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ - | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ - | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ - | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ -- | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*) -+ | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \ -+ | -onefs* | -tirtos* | -phoenix*) - # Remember, each alternative MUST END IN *, to match a version number. - ;; - -qnx*) -@@ -1341,7 +1433,7 @@ case $os in - -opened*) - os=-openedition - ;; -- -os400*) -+ -os400*) - os=-os400 - ;; - -wince*) -@@ -1390,7 +1482,7 @@ case $os in - -sinix*) - os=-sysv4 - ;; -- -tpf*) -+ -tpf*) - os=-tpf - ;; - -triton*) -@@ -1426,15 +1518,16 @@ case $os in - -aros*) - os=-aros - ;; -- -kaos*) -- os=-kaos -- ;; - -zvmoe) - os=-zvmoe - ;; - -dicos*) - os=-dicos - ;; -+ -nacl*) -+ ;; -+ -ios) -+ ;; - -none) - ;; - *) -@@ -1457,10 +1550,10 @@ else - # system, and we'll never get to this point. - - case $basic_machine in -- score-*) -+ score-*) - os=-elf - ;; -- spu-*) -+ spu-*) - os=-elf - ;; - *-acorn) -@@ -1472,8 +1565,23 @@ case $basic_machine in - arm*-semi) - os=-aout - ;; -- c4x-* | tic4x-*) -- os=-coff -+ c4x-* | tic4x-*) -+ os=-coff -+ ;; -+ c8051-*) -+ os=-elf -+ ;; -+ hexagon-*) -+ os=-elf -+ ;; -+ tic54x-*) -+ os=-coff -+ ;; -+ tic55x-*) -+ os=-coff -+ ;; -+ tic6x-*) -+ os=-coff - ;; - # This must come before the *-dec entry. - pdp10-*) -@@ -1493,14 +1601,11 @@ case $basic_machine in - ;; - m68000-sun) - os=-sunos3 -- # This also exists in the configure program, but was not the -- # default. -- # os=-sunos4 - ;; - m68*-cisco) - os=-aout - ;; -- mep-*) -+ mep-*) - os=-elf - ;; - mips*-cisco) -@@ -1527,7 +1632,7 @@ case $basic_machine in - *-ibm) - os=-aix - ;; -- *-knuth) -+ *-knuth) - os=-mmixware - ;; - *-wec) diff --git a/patches/popt/popt-workaround-uclibc-glob-pattern-p.patch b/patches/popt/popt-workaround-uclibc-glob-pattern-p.patch deleted file mode 100644 index 7dcf52065..000000000 --- a/patches/popt/popt-workaround-uclibc-glob-pattern-p.patch +++ /dev/null @@ -1,31 +0,0 @@ -workaround uClibc glob_pattern_p / __GLIBC__ - -Copyright (C) 2014 Curt Brune - -SPDX-License-Identifier: GPL-2.0 - -The uClibc header defines the macro __GLIBC__, which -stricly speaking is false. See the comment in the uClibc -why they do this. - -The poptconfig.c file tests for the presence of __GLIBC__ and -configures its globbing behaviour accordingly. Unfortunately in the -case of uClibc it gets it wrong. - -This patch simply inforces the correct behaviour when compiling with -ONIE's uClibc. -Summary: - -diff --git a/poptconfig.c b/poptconfig.c -index 7840d0c..f4e115a 100644 ---- a/poptconfig.c -+++ b/poptconfig.c -@@ -42,7 +42,7 @@ extern int glob_pattern_p (const char *__pattern, int __quote) - /*@=declundef =exportheader =incondefs =protoparammatch =redecl =type @*/ - #endif /* __LCLINT__ */ - --#if !defined(__GLIBC__) -+#if !defined(__GLIBC__) || defined(__UCLIBC__) - /* Return nonzero if PATTERN contains any metacharacters. - Metacharacters can be quoted with backslashes if QUOTE is nonzero. */ - static int diff --git a/patches/popt/series b/patches/popt/series index 517ec14d4..ae046e8e6 100644 --- a/patches/popt/series +++ b/patches/popt/series @@ -1,4 +1,5 @@ -# This series applies on GIT commit 2b1804e1a2b9b0d915010a7dd4b50c179fa733a4 +# This series applies on popt 1.19. +# The uClibc glob_pattern_p workaround and the aarch64 support patch are +# dropped: popt 1.19 detects glob_pattern_p via configure (handles its +# absence on uClibc) and carries aarch64 support upstream. gitignore.patch -popt-workaround-uclibc-glob-pattern-p.patch -aarch64_support.patch diff --git a/patches/shim/series b/patches/shim/series index daeeed0f1..e69de29bb 100644 --- a/patches/shim/series +++ b/patches/shim/series @@ -1,2 +0,0 @@ -# This series applies on GIT commit 6e13a921b2ad400d581d19edc1890d4269cd0ddf -update-makefile.patch diff --git a/patches/shim/update-makefile.patch b/patches/shim/update-makefile.patch deleted file mode 100644 index 8836515fd..000000000 --- a/patches/shim/update-makefile.patch +++ /dev/null @@ -1,101 +0,0 @@ -Update Makefiles - -Modify the Makefiles slightly to mesh with the ONIE build environment. - -diff --git a/Cryptlib/Makefile b/Cryptlib/Makefile -index 2aa5695..c1f32b9 100644 ---- a/Cryptlib/Makefile -+++ b/Cryptlib/Makefile -@@ -1,7 +1,11 @@ - - EFI_INCLUDES = -I$(TOPDIR)/Include -I$(EFI_INCLUDE) -I$(EFI_INCLUDE)/$(ARCH) -I$(EFI_INCLUDE)/protocol - --CFLAGS = -ggdb -O0 -I$(TOPDIR) -iquote $(TOPDIR) -fno-stack-protector -fno-strict-aliasing -fpic -fshort-wchar \ -+# Seed compiler and linker flags ONIE build environment flags -+CFLAGS = $(ONIE_CFLAGS) -+LDFLAGS = $(ONIE_LDFLAGS) -+ -+CFLAGS += -ggdb -O0 -I$(TOPDIR) -iquote $(TOPDIR) -fno-stack-protector -fno-strict-aliasing -fpic -fshort-wchar \ - -Wall $(EFI_INCLUDES) -std=gnu89 \ - -ffreestanding -I$(shell $(CC) -print-file-name=include) - -@@ -19,7 +23,7 @@ endif - ifeq ($(ARCH),aarch64) - CFLAGS += -DMDE_CPU_AARCH64 - endif --LDFLAGS = -nostdlib -znocombreloc -+LDFLAGS += -nostdlib -znocombreloc - - TARGET = libcryptlib.a - OBJS = Hash/CryptMd4Null.o \ -diff --git a/Cryptlib/OpenSSL/Makefile b/Cryptlib/OpenSSL/Makefile -index 916feac..158ba5b 100644 ---- a/Cryptlib/OpenSSL/Makefile -+++ b/Cryptlib/OpenSSL/Makefile -@@ -3,7 +3,11 @@ EFI_INCLUDES = -I$(TOPDIR)/../Include \ - -I$(EFI_INCLUDE) -I$(EFI_INCLUDE)/$(ARCH) -I$(EFI_INCLUDE)/protocol \ - -I$(TOPDIR)/crypto/asn1 -I$(TOPDIR)/crypto/evp -I$(TOPDIR)/crypto/modes -I$(TOPDIR)/crypto/include - --CFLAGS = -ggdb -O0 -I$(TOPDIR) -I$(TOPDIR)/.. -I$(TOPDIR)/../Include/ -I$(TOPDIR)/crypto \ -+# Seed compiler and linker flags ONIE build environment flags -+CFLAGS = $(ONIE_CFLAGS) -+LDFLAGS = $(ONIE_LDFLAGS) -+ -+CFLAGS += -ggdb -O0 -I$(TOPDIR) -I$(TOPDIR)/.. -I$(TOPDIR)/../Include/ -I$(TOPDIR)/crypto \ - -fno-stack-protector -fno-strict-aliasing -fpic -fshort-wchar -nostdinc \ - -ffreestanding -std=gnu89 -I$(shell $(CC) -print-file-name=include) \ - -Wall $(EFI_INCLUDES) -DL_ENDIAN -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DOPENSSL_SMALL_FOOTPRINT -DPEDANTIC -@@ -25,7 +29,7 @@ endif - ifeq ($(ARCH),arm) - CFLAGS += -O2 -DMDE_CPU_ARM - endif --LDFLAGS = -nostdlib -znocombreloc -+LDFLAGS += -nostdlib -znocombreloc - - TARGET = libopenssl.a - OBJS = crypto/cryptlib.o \ -diff --git a/Make.defaults b/Make.defaults -index e11ab5a..768a3d1 100644 ---- a/Make.defaults -+++ b/Make.defaults -@@ -39,7 +39,11 @@ EFI_LIBS = -lefi -lgnuefi --start-group Cryptlib/libcryptlib.a Cryptlib/OpenSSL/ - EFI_CRT_OBJS = $(EFI_PATH)/crt0-efi-$(ARCH).o - EFI_LDS = $(TOPDIR)/elf_$(ARCH)_efi.lds - --CFLAGS = -ggdb -O0 -fno-stack-protector -fno-strict-aliasing -fpic \ -+# Seed compiler and linker flags ONIE build environment flags -+CFLAGS = $(ONIE_CFLAGS) -+LDFLAGS = $(ONIE_LDFLAGS) -+ -+CFLAGS += -ggdb -O0 -fno-stack-protector -fno-strict-aliasing -fpic \ - -fshort-wchar -Wall -Wsign-compare -Werror -fno-builtin \ - -Werror=sign-compare -ffreestanding -std=gnu89 \ - -I$(shell $(CC) -print-file-name=include) \ -@@ -126,4 +130,4 @@ ifneq ($(origin VENDOR_DBX_FILE), undefined) - CFLAGS += -DVENDOR_DBX_FILE=\"$(VENDOR_DBX_FILE)\" - endif - --LDFLAGS = --hash-style=sysv -nostdlib -znocombreloc -T $(EFI_LDS) -shared -Bsymbolic -L$(EFI_PATH) -L$(LIBDIR) -LCryptlib -LCryptlib/OpenSSL $(EFI_CRT_OBJS) --build-id=sha1 $(ARCH_LDFLAGS) --no-undefined -+LDFLAGS += --hash-style=sysv -nostdlib -znocombreloc -T $(EFI_LDS) -shared -Bsymbolic -L$(EFI_PATH) -L$(LIBDIR) -LCryptlib -LCryptlib/OpenSSL $(EFI_CRT_OBJS) --build-id=sha1 $(ARCH_LDFLAGS) --no-undefined -diff --git a/Makefile b/Makefile -index 115e7f0..291d7d0 100644 ---- a/Makefile -+++ b/Makefile -@@ -129,7 +129,7 @@ ifeq ($(origin EFIDIR),undefined) - endif - - install-deps : $(TARGETS) --install-deps : $(SHIMNAME).debug $(MMNAME).debug $(FBNAME).debug buildid -+install-deps : $(SHIMNAME).debug $(MMNAME).debug $(FBNAME).debug - install-deps : $(BOOTCSVNAME) - - install-debugsource : install-deps -@@ -140,7 +140,7 @@ install-debugsource : install-deps - $(INSTALL) -m 0644 $${file} $(DESTDIR)/$(DEBUGSOURCE)/$(PKGNAME)-$(VERSION)$(DASHRELEASE)/$${outfile} ; \ - done - --install-debuginfo : install-deps -+install-debuginfo : install-deps buildid - $(INSTALL) -d -m 0755 $(DESTDIR)/ - $(INSTALL) -d -m 0755 $(DESTDIR)/$(DEBUGINFO)$(TARGETDIR)/ - @./buildid $(wildcard *.efi.debug) | while read file buildid ; do \ diff --git a/rootconf/default/etc/init.d/networking.sh b/rootconf/default/etc/init.d/networking.sh index 7d66cd778..d20dd0f42 100755 --- a/rootconf/default/etc/init.d/networking.sh +++ b/rootconf/default/etc/init.d/networking.sh @@ -54,7 +54,12 @@ config_ethmgmt_dhcp4() udhcp_args="$udhcp_args -t 15 -T 3" fi udhcp_request_opts= - for o in subnet broadcast router domain hostname ntpsrv dns logsrv search ; do + # Request by name for options in busybox's built-in udhcpc table, but use + # the numeric code for logsrv (option 7): busybox trims it from the stock + # table for size, and "-O logsrv" would abort udhcpc with "unknown option" + # -- a numeric "-O 7" is accepted with no table entry. When received it + # surfaces as $opt7, which udhcp4_net aliases back to $logsrv. + for o in subnet broadcast router domain hostname ntpsrv dns 7 search ; do udhcp_request_opts="$udhcp_request_opts -O $o" done diff --git a/rootconf/default/lib/onie/udhcp4_net b/rootconf/default/lib/onie/udhcp4_net index 529b594b7..4dabbe762 100755 --- a/rootconf/default/lib/onie/udhcp4_net +++ b/rootconf/default/lib/onie/udhcp4_net @@ -18,6 +18,21 @@ LOGSRV_CONF="${ONIE_RUN_DIR}/dhcp.logsrv" case $1 in bound|renew) + # busybox trims logsrv (option 7) from udhcpc's built-in table, so a + # received option 7 arrives as $opt7 in raw hex rather than $logsrv as a + # decoded IPv4 address; decode + alias it (no-op on a busybox that still + # knows the name, where $logsrv is already set and $opt7 is absent). + if [ -z "$logsrv" ] && [ -n "$opt7" ] ; then + _h="$opt7" + while [ ${#_h} -ge 8 ] ; do + _a=$((0x${_h%${_h#??}})); _h=${_h#??} + _b=$((0x${_h%${_h#??}})); _h=${_h#??} + _c=$((0x${_h%${_h#??}})); _h=${_h#??} + _d=$((0x${_h%${_h#??}})); _h=${_h#??} + logsrv="$logsrv $_a.$_b.$_c.$_d" + done + logsrv="${logsrv# }" + fi [ -n "$broadcast" ] && BROADCAST="broadcast $broadcast" [ -n "$subnet" ] && NETMASK="netmask $subnet" diff --git a/rootconf/default/lib/onie/udhcp4_sd b/rootconf/default/lib/onie/udhcp4_sd index 6d0ed4487..419ecd7d0 100755 --- a/rootconf/default/lib/onie/udhcp4_sd +++ b/rootconf/default/lib/onie/udhcp4_sd @@ -15,10 +15,58 @@ PROG="DHCP" case $1 in bound|renew) - # Print responses usable by onie, prefixed with "onie_disco" - # Translate '=' into '@', e.g. name=val => name@@val - # Separate name@val pairs with '##' - onie_parms=$(printenv | sed -e '/.*=$/d' -e '/^[A-Z_]/d' -e '/^onie.*/d' -e 's/=/@@/' -e 's/$/#/' -e 's/^/onie_disco_/' | tr '\n' '#') + # busybox's udhcpc exports a RECEIVED option as a friendly typed + # "=" env var only if that option is in its built-in table; + # options it doesn't know are exported generically as "opt=" + # -- RAW HEX, untyped. busybox trims rarely-used options from that table + # for size (it dropped vivso/125 after ~1.25 and never carried + # tftpsiaddr/150), so several options ONIE's discovery consumes by name + # arrive as opt in hex. Rather than carry a busybox source patch + # to re-add them (which upstream is unlikely to take back), decode those + # here -- the one place that turns the udhcpc env into onie_disco_* -- + # to the typed value and name ONIE expects: + # 72 -> wwwsrv (WWW_SERVER, IPv4 list) + # 114 -> url (DEFAULT_URL, string) + # 125 -> vivso (VIVSO, binary -- left as hex; import_vivso decodes) + # 150 -> tftpsiaddr (TFTP_SERVER_IP, IPv4) + # Each is a no-op on a busybox that already knows the name (the opt + # var is absent), so this stays correct across busybox versions. + + # hex string -> ASCII, byte-by-byte via octal escapes so a '%' or '\' + # in (e.g.) a percent-encoded URL is never interpreted by printf. + hex2str() { + local h="$1" out= + while [ ${#h} -ge 2 ]; do + local b=${h%${h#??}}; h=${h#??} + out="$out$(printf "\\$(printf '%03o' "0x$b")")" + done + printf '%s' "$out" + } + # hex of one or more 4-byte IPv4 addresses -> "a.b.c.d ..." + hex2ip() { + local h="$1" out= + while [ ${#h} -ge 8 ]; do + local a=$((0x${h%${h#??}})); h=${h#??} + local b=$((0x${h%${h#??}})); h=${h#??} + local c=$((0x${h%${h#??}})); h=${h#??} + local d=$((0x${h%${h#??}})); h=${h#??} + out="$out $a.$b.$c.$d" + done + printf '%s' "${out# }" + } + [ -n "$opt114" ] && export url="$(hex2str "$opt114")" + [ -n "$opt72" ] && export wwwsrv="$(hex2ip "$opt72")" + [ -n "$opt150" ] && export tftpsiaddr="$(hex2ip "$opt150")" + [ -n "$opt125" ] && export vivso="$opt125" + + # Print responses usable by onie, prefixed with "onie_disco". + # Translate '=' into '@', e.g. name=val => name@@val; separate name@val + # pairs with '##'. Drop the raw opt vars (superseded by the + # decoded names above) so they don't also leak through. + onie_parms=$(printenv | sed \ + -e '/^opt[0-9]/d' \ + -e '/.*=$/d' -e '/^[A-Z_]/d' -e '/^onie.*/d' \ + -e 's/=/@@/' -e 's/$/#/' -e 's/^/onie_disco_/' | tr '\n' '#') echo "ONIE_PARMS:$onie_parms" ;; diff --git a/upstream/0.4.0.tar.gz.sha1 b/upstream/0.4.0.tar.gz.sha1 deleted file mode 100644 index 6fec2a699..000000000 --- a/upstream/0.4.0.tar.gz.sha1 +++ /dev/null @@ -1 +0,0 @@ -42d6c1551535386cba63265a6ed7172d11c88b97 0.4.0.tar.gz diff --git a/upstream/0.7.2.tar.gz.sha1 b/upstream/0.7.2.tar.gz.sha1 new file mode 100644 index 000000000..af44561d2 --- /dev/null +++ b/upstream/0.7.2.tar.gz.sha1 @@ -0,0 +1 @@ +4c7863e8d39990a1d2f0aa6aac607a040014ea23 0.7.2.tar.gz diff --git a/upstream/18.tar.gz.sha1 b/upstream/18.tar.gz.sha1 new file mode 100644 index 000000000..2857621a1 --- /dev/null +++ b/upstream/18.tar.gz.sha1 @@ -0,0 +1 @@ +60b0f6201eb1a70bc6069ff1d77635331a95c94c 18.tar.gz diff --git a/upstream/39.tar.gz.sha1 b/upstream/39.tar.gz.sha1 new file mode 100644 index 000000000..0ba59fac2 --- /dev/null +++ b/upstream/39.tar.gz.sha1 @@ -0,0 +1 @@ +107fbb2a8bb936bf791d5c9e8cc229c05d08f3dd 39.tar.gz diff --git a/upstream/IPMITOOL_1_8_19.tar.gz.sha1 b/upstream/IPMITOOL_1_8_19.tar.gz.sha1 new file mode 100644 index 000000000..6b0bf3ee9 --- /dev/null +++ b/upstream/IPMITOOL_1_8_19.tar.gz.sha1 @@ -0,0 +1 @@ +92620c40a0f2d5fbe72e774385a55a53aa4ec448 IPMITOOL_1_8_19.tar.gz diff --git a/upstream/LVM2.2.03.41.tgz.sha1 b/upstream/LVM2.2.03.41.tgz.sha1 new file mode 100644 index 000000000..82aa8ab91 --- /dev/null +++ b/upstream/LVM2.2.03.41.tgz.sha1 @@ -0,0 +1 @@ +8a16e5e133da63f1aae3d6416aee568bc203df0f LVM2.2.03.41.tgz diff --git a/upstream/acpica-unix-20260408.tar.gz.sha1 b/upstream/acpica-unix-20260408.tar.gz.sha1 new file mode 100644 index 000000000..bfe6e39dc --- /dev/null +++ b/upstream/acpica-unix-20260408.tar.gz.sha1 @@ -0,0 +1 @@ +2894397c3b9914b08d5d93d4d23d608269cea794 acpica-unix-20260408.tar.gz diff --git a/upstream/btrfs-progs-v7.0.tar.xz.sha1 b/upstream/btrfs-progs-v7.0.tar.xz.sha1 new file mode 100644 index 000000000..09885b8c9 --- /dev/null +++ b/upstream/btrfs-progs-v7.0.tar.xz.sha1 @@ -0,0 +1 @@ +ab3a17109d6c770551daa9e2494bed7d3ba115a8 btrfs-progs-v7.0.tar.xz diff --git a/upstream/busybox-1.38.0.tar.bz2.sha1 b/upstream/busybox-1.38.0.tar.bz2.sha1 new file mode 100644 index 000000000..468153941 --- /dev/null +++ b/upstream/busybox-1.38.0.tar.bz2.sha1 @@ -0,0 +1 @@ +6ef8d237a825ed0a61fee4f68d42b19d4d3aca5d busybox-1.38.0.tar.bz2 diff --git a/upstream/crosstool-ng-1.24.0.tar.xz.sha1 b/upstream/crosstool-ng-1.24.0.tar.xz.sha1 deleted file mode 100644 index 0b0f6f29a..000000000 --- a/upstream/crosstool-ng-1.24.0.tar.xz.sha1 +++ /dev/null @@ -1 +0,0 @@ -ccc4da8e0714ceef1fd28dc1f493b9f52d4da19f crosstool-ng-1.24.0.tar.xz diff --git a/upstream/crosstool-ng-1.28.0.tar.xz.sha1 b/upstream/crosstool-ng-1.28.0.tar.xz.sha1 new file mode 100644 index 000000000..fe8b0f62d --- /dev/null +++ b/upstream/crosstool-ng-1.28.0.tar.xz.sha1 @@ -0,0 +1 @@ +cdeeea026046bd4408e1e6248ae96b7383665110 crosstool-ng-1.28.0.tar.xz diff --git a/upstream/dmidecode-3.7.tar.xz.sha1 b/upstream/dmidecode-3.7.tar.xz.sha1 new file mode 100644 index 000000000..1705ff331 --- /dev/null +++ b/upstream/dmidecode-3.7.tar.xz.sha1 @@ -0,0 +1 @@ +6fb5157e0e5deef087187d0494167fe408f37130 dmidecode-3.7.tar.xz diff --git a/upstream/dosfstools-3.0.26.tar.xz.sha1 b/upstream/dosfstools-3.0.26.tar.xz.sha1 deleted file mode 100644 index 8d1fb2e60..000000000 --- a/upstream/dosfstools-3.0.26.tar.xz.sha1 +++ /dev/null @@ -1 +0,0 @@ -1385f707b7ff93cb521e8158e60276c531c1b0a6 dosfstools-3.0.26.tar.xz diff --git a/upstream/dosfstools-4.2.tar.gz.sha1 b/upstream/dosfstools-4.2.tar.gz.sha1 new file mode 100644 index 000000000..993e0b523 --- /dev/null +++ b/upstream/dosfstools-4.2.tar.gz.sha1 @@ -0,0 +1 @@ +14efc68c64987a9067b6a919ad2870007247686b dosfstools-4.2.tar.gz diff --git a/upstream/dropbear-2026.91.tar.bz2.sha1 b/upstream/dropbear-2026.91.tar.bz2.sha1 new file mode 100644 index 000000000..2b8ae2b11 --- /dev/null +++ b/upstream/dropbear-2026.91.tar.bz2.sha1 @@ -0,0 +1 @@ +10d90d69f7c6a45e5fd0babd96be7950b2467364 dropbear-2026.91.tar.bz2 diff --git a/upstream/e2fsprogs-1.46.3.tar.xz.sha1 b/upstream/e2fsprogs-1.46.3.tar.xz.sha1 deleted file mode 100644 index 95d61940f..000000000 --- a/upstream/e2fsprogs-1.46.3.tar.xz.sha1 +++ /dev/null @@ -1 +0,0 @@ -7fe62ef77b0ab210946305417e5bb27ace571b4b e2fsprogs-1.46.3.tar.xz diff --git a/upstream/e2fsprogs-1.47.4.tar.xz.sha1 b/upstream/e2fsprogs-1.47.4.tar.xz.sha1 new file mode 100644 index 000000000..07ade80c9 --- /dev/null +++ b/upstream/e2fsprogs-1.47.4.tar.xz.sha1 @@ -0,0 +1 @@ +e3c83517d8decc339e9fa0f5afe8246d3d0c6d82 e2fsprogs-1.47.4.tar.xz diff --git a/upstream/efibootmgr-16.tar.bz2.sha1 b/upstream/efibootmgr-16.tar.bz2.sha1 deleted file mode 100644 index b3c20d127..000000000 --- a/upstream/efibootmgr-16.tar.bz2.sha1 +++ /dev/null @@ -1 +0,0 @@ -3b023978c27af2514606de2a6be11801d881b5a3 efibootmgr-16.tar.bz2 diff --git a/upstream/efivar-37.tar.bz2.sha1 b/upstream/efivar-37.tar.bz2.sha1 deleted file mode 100644 index 9e347ee78..000000000 --- a/upstream/efivar-37.tar.bz2.sha1 +++ /dev/null @@ -1 +0,0 @@ -1ef24e0a06e1a42d7a93ba7a76b2970659c7c0c0 efivar-37.tar.bz2 diff --git a/upstream/ethtool-6.15.tar.xz.sha1 b/upstream/ethtool-6.15.tar.xz.sha1 new file mode 100644 index 000000000..004222283 --- /dev/null +++ b/upstream/ethtool-6.15.tar.xz.sha1 @@ -0,0 +1 @@ +aad9291bea6d29e288ac8d0ce0cb5c0b25e4d305 ethtool-6.15.tar.xz diff --git a/upstream/flashrom-0.9.8.tar.bz2.sha1 b/upstream/flashrom-0.9.8.tar.bz2.sha1 deleted file mode 100644 index 9c86f8bba..000000000 --- a/upstream/flashrom-0.9.8.tar.bz2.sha1 +++ /dev/null @@ -1 +0,0 @@ -099de8c0939b6828be3dc75a073582ebb4bab92e flashrom-0.9.8.tar.bz2 diff --git a/upstream/flashrom-v1.7.0.tar.xz.sha1 b/upstream/flashrom-v1.7.0.tar.xz.sha1 new file mode 100644 index 000000000..a85a39b8e --- /dev/null +++ b/upstream/flashrom-v1.7.0.tar.xz.sha1 @@ -0,0 +1 @@ +298b12b3e30035c0041ddd641ebd4658e234fd23 flashrom-v1.7.0.tar.xz diff --git a/upstream/gcc-4.7.3.tar.bz2.sha1 b/upstream/gcc-4.7.3.tar.bz2.sha1 deleted file mode 100644 index 2d2ffd43a..000000000 --- a/upstream/gcc-4.7.3.tar.bz2.sha1 +++ /dev/null @@ -1 +0,0 @@ -69e02737bd6e1a7c6047d801600d39c32b9427ca gcc-4.7.3.tar.bz2 diff --git a/upstream/gcc-4.9.2.tar.bz2.sha1 b/upstream/gcc-4.9.2.tar.bz2.sha1 deleted file mode 100644 index 8b1c5797a..000000000 --- a/upstream/gcc-4.9.2.tar.bz2.sha1 +++ /dev/null @@ -1 +0,0 @@ -79dbcb09f44232822460d80b033c962c0237c6d8 gcc-4.9.2.tar.bz2 diff --git a/upstream/gcc-4.9.4.tar.bz2.sha1 b/upstream/gcc-4.9.4.tar.bz2.sha1 deleted file mode 100644 index 78ae358c7..000000000 --- a/upstream/gcc-4.9.4.tar.bz2.sha1 +++ /dev/null @@ -1 +0,0 @@ -5bb0b783a57a62b11f1f9bd2aa37145da221d3d0 gcc-4.9.4.tar.bz2 diff --git a/upstream/gcc-6.3.0.tar.bz2.sha1 b/upstream/gcc-6.3.0.tar.bz2.sha1 deleted file mode 100644 index e68d821a6..000000000 --- a/upstream/gcc-6.3.0.tar.bz2.sha1 +++ /dev/null @@ -1 +0,0 @@ -928ab552666ee08eed645ff20ceb49d139205dea gcc-6.3.0.tar.bz2 diff --git a/upstream/gcc-8.3.0.tar.xz.sha1 b/upstream/gcc-8.3.0.tar.xz.sha1 deleted file mode 100644 index 059c1725f..000000000 --- a/upstream/gcc-8.3.0.tar.xz.sha1 +++ /dev/null @@ -1 +0,0 @@ -c27f4499dd263fe4fb01bcc5565917f3698583b2 ./gcc-8.3.0.tar.xz diff --git a/upstream/glibc-2.24.tar.xz.sha1 b/upstream/glibc-2.24.tar.xz.sha1 deleted file mode 100644 index 04dbdfe38..000000000 --- a/upstream/glibc-2.24.tar.xz.sha1 +++ /dev/null @@ -1 +0,0 @@ -e5d9725d94d59475d9a6869a4447a70c1bf3ef78 glibc-2.24.tar.xz diff --git a/upstream/glibc-2.25.tar.xz.sha1 b/upstream/glibc-2.25.tar.xz.sha1 deleted file mode 100644 index 83fc7e78f..000000000 --- a/upstream/glibc-2.25.tar.xz.sha1 +++ /dev/null @@ -1 +0,0 @@ -5fff5a94ef4470bf48fe1b79093185f19f5c827a glibc-2.25.tar.xz diff --git a/upstream/glibc-2.29.tar.xz.sha1 b/upstream/glibc-2.29.tar.xz.sha1 deleted file mode 100644 index a1f32acd7..000000000 --- a/upstream/glibc-2.29.tar.xz.sha1 +++ /dev/null @@ -1 +0,0 @@ -c8376086203fa5e39dc869235ab8a400ed747c44 glibc-2.29.tar.xz diff --git a/upstream/gnu-efi-3.0.12.tar.bz2.sha1 b/upstream/gnu-efi-3.0.12.tar.bz2.sha1 deleted file mode 100644 index e9c346773..000000000 --- a/upstream/gnu-efi-3.0.12.tar.bz2.sha1 +++ /dev/null @@ -1 +0,0 @@ -46a513b9ba07a8841e5f6b4865a99d1fed081ba1 gnu-efi-3.0.12.tar.bz2 diff --git a/upstream/gptfdisk-1.0.10.tar.gz.sha1 b/upstream/gptfdisk-1.0.10.tar.gz.sha1 new file mode 100644 index 000000000..55ac3a31a --- /dev/null +++ b/upstream/gptfdisk-1.0.10.tar.gz.sha1 @@ -0,0 +1 @@ +70c0bfe4290c2893fc957ef7f6156c5e74e469fc gptfdisk-1.0.10.tar.gz diff --git a/upstream/grub-2.04.tar.xz.sha1 b/upstream/grub-2.04.tar.xz.sha1 deleted file mode 100644 index b71d781e7..000000000 --- a/upstream/grub-2.04.tar.xz.sha1 +++ /dev/null @@ -1 +0,0 @@ -3ed21de7be5970d7638b9f526bca3292af78e0fc grub-2.04.tar.xz diff --git a/upstream/grub-2.14.tar.xz.sha1 b/upstream/grub-2.14.tar.xz.sha1 new file mode 100644 index 000000000..47da77a8d --- /dev/null +++ b/upstream/grub-2.14.tar.xz.sha1 @@ -0,0 +1 @@ +b8370fa991f63027764f41d58b90aa8a0871f1e9 grub-2.14.tar.xz diff --git a/upstream/i2c-tools-3.1.1.tar.bz2.sha1 b/upstream/i2c-tools-3.1.1.tar.bz2.sha1 deleted file mode 100644 index c8adf71ca..000000000 --- a/upstream/i2c-tools-3.1.1.tar.bz2.sha1 +++ /dev/null @@ -1 +0,0 @@ -05e4e3b34ebc921812e14527936c0fae65729204 i2c-tools-3.1.1.tar.bz2 diff --git a/upstream/i2c-tools-4.4.tar.gz.sha1 b/upstream/i2c-tools-4.4.tar.gz.sha1 new file mode 100644 index 000000000..062bcb186 --- /dev/null +++ b/upstream/i2c-tools-4.4.tar.gz.sha1 @@ -0,0 +1 @@ +91307d1b376d18277d24b4eebfda9d5bfe90f316 i2c-tools-4.4.tar.gz diff --git a/upstream/kexec-tools-2.0.32.tar.xz.sha1 b/upstream/kexec-tools-2.0.32.tar.xz.sha1 new file mode 100644 index 000000000..fbcad16ac --- /dev/null +++ b/upstream/kexec-tools-2.0.32.tar.xz.sha1 @@ -0,0 +1 @@ +8ac0f768bb3280c4f42901b12085b4945f56a0f1 kexec-tools-2.0.32.tar.xz diff --git a/upstream/keyutils-1.6.3.tar.gz.sha1 b/upstream/keyutils-1.6.3.tar.gz.sha1 new file mode 100644 index 000000000..3769b9fe9 --- /dev/null +++ b/upstream/keyutils-1.6.3.tar.gz.sha1 @@ -0,0 +1 @@ +7e5112d68eef5677e474d062282a0e1d1f19904c keyutils-1.6.3.tar.gz diff --git a/upstream/libaio-0.3.113.tar.gz.sha1 b/upstream/libaio-0.3.113.tar.gz.sha1 new file mode 100644 index 000000000..8d3ded1b5 --- /dev/null +++ b/upstream/libaio-0.3.113.tar.gz.sha1 @@ -0,0 +1 @@ +86727941e0d3084ce264b8a6878961812bc212b8 libaio-0.3.113.tar.gz diff --git a/upstream/libmnl-1.0.5.tar.bz2.sha1 b/upstream/libmnl-1.0.5.tar.bz2.sha1 new file mode 100644 index 000000000..b1afbdd19 --- /dev/null +++ b/upstream/libmnl-1.0.5.tar.bz2.sha1 @@ -0,0 +1 @@ +63c6456b77f7978a7b37e62c1b38346b2ef2d91c libmnl-1.0.5.tar.bz2 diff --git a/upstream/libpcap-1.10.6.tar.gz.sha1 b/upstream/libpcap-1.10.6.tar.gz.sha1 new file mode 100644 index 000000000..b3dcfeed0 --- /dev/null +++ b/upstream/libpcap-1.10.6.tar.gz.sha1 @@ -0,0 +1 @@ +38a1661487e01bf59167a6f2cfab0f23fa3139ea libpcap-1.10.6.tar.gz diff --git a/upstream/lzo-2.10.tar.gz.sha1 b/upstream/lzo-2.10.tar.gz.sha1 new file mode 100644 index 000000000..6d70c2829 --- /dev/null +++ b/upstream/lzo-2.10.tar.gz.sha1 @@ -0,0 +1 @@ +4924676a9bae5db58ef129dc1cebce3baa3c4b5d lzo-2.10.tar.gz diff --git a/upstream/mtd-utils-2.3.1.tar.bz2.sha1 b/upstream/mtd-utils-2.3.1.tar.bz2.sha1 new file mode 100644 index 000000000..7fd88b929 --- /dev/null +++ b/upstream/mtd-utils-2.3.1.tar.bz2.sha1 @@ -0,0 +1 @@ +09973ba80cc9a78abc2012681de238c757bbf08f mtd-utils-2.3.1.tar.bz2 diff --git a/upstream/mtd-utils-e4c8885.tar.gz.sha1 b/upstream/mtd-utils-e4c8885.tar.gz.sha1 deleted file mode 100644 index 0d8080124..000000000 --- a/upstream/mtd-utils-e4c8885.tar.gz.sha1 +++ /dev/null @@ -1 +0,0 @@ -253eaa9be52be6cb62cfcac8034936dd8b854d85 mtd-utils-e4c8885.tar.gz diff --git a/upstream/openssl-1.0.2l.tar.gz.sha1 b/upstream/openssl-1.0.2l.tar.gz.sha1 deleted file mode 100644 index 4f6da73e6..000000000 --- a/upstream/openssl-1.0.2l.tar.gz.sha1 +++ /dev/null @@ -1 +0,0 @@ -b58d5d0e9cea20e571d903aafa853e2ccd914138 openssl-1.0.2l.tar.gz diff --git a/upstream/openssl-1.1.1g.tar.gz.sha1 b/upstream/openssl-1.1.1g.tar.gz.sha1 deleted file mode 100644 index 42101e3ed..000000000 --- a/upstream/openssl-1.1.1g.tar.gz.sha1 +++ /dev/null @@ -1 +0,0 @@ -b213a293f2127ec3e323fb3cfc0c9807664fd997 openssl-1.1.1g.tar.gz diff --git a/upstream/openssl-3.4.0.tar.gz.sha1 b/upstream/openssl-3.4.0.tar.gz.sha1 deleted file mode 100644 index f1559a293..000000000 --- a/upstream/openssl-3.4.0.tar.gz.sha1 +++ /dev/null @@ -1 +0,0 @@ -5c2f33c3f3601676f225109231142cdc30d44127 openssl-3.4.0.tar.gz diff --git a/upstream/openssl-3.5.7.tar.gz.sha1 b/upstream/openssl-3.5.7.tar.gz.sha1 new file mode 100644 index 000000000..bc4c14bb0 --- /dev/null +++ b/upstream/openssl-3.5.7.tar.gz.sha1 @@ -0,0 +1 @@ +53d331880fbde8e6fe25870d5325a61201f6264d openssl-3.5.7.tar.gz diff --git a/upstream/pciutils-3.15.0.tar.xz.sha1 b/upstream/pciutils-3.15.0.tar.xz.sha1 new file mode 100644 index 000000000..a3d84aad4 --- /dev/null +++ b/upstream/pciutils-3.15.0.tar.xz.sha1 @@ -0,0 +1 @@ +0cd524a8217ec55c1bd12f35c75b7614e6e070b9 pciutils-3.15.0.tar.xz diff --git a/upstream/pciutils-3.2.1.tar.xz.sha1 b/upstream/pciutils-3.2.1.tar.xz.sha1 deleted file mode 100644 index 112df915b..000000000 --- a/upstream/pciutils-3.2.1.tar.xz.sha1 +++ /dev/null @@ -1 +0,0 @@ -2009c441bfb78811c2991bde03b88c043654c195 pciutils-3.2.1.tar.xz diff --git a/upstream/pesign-113.tar.bz2.sha1 b/upstream/pesign-113.tar.bz2.sha1 deleted file mode 100644 index 1a605a724..000000000 --- a/upstream/pesign-113.tar.bz2.sha1 +++ /dev/null @@ -1 +0,0 @@ -1fabe291298395b6dd3129e250d8b67345745834 pesign-113.tar.bz2 diff --git a/upstream/popt-1.19.tar.gz.sha1 b/upstream/popt-1.19.tar.gz.sha1 new file mode 100644 index 000000000..518ab7442 --- /dev/null +++ b/upstream/popt-1.19.tar.gz.sha1 @@ -0,0 +1 @@ +75654eebd67791f6c58059d0ac552230d81b09d9 popt-1.19.tar.gz diff --git a/upstream/shim-15.tar.bz2.sha1 b/upstream/shim-15.tar.bz2.sha1 deleted file mode 100644 index ad66536cf..000000000 --- a/upstream/shim-15.tar.bz2.sha1 +++ /dev/null @@ -1 +0,0 @@ -2dc6308584187bf3ee88bf9b119938c72c5a5088 shim-15.tar.bz2 diff --git a/upstream/shim-16.1.tar.bz2.sha1 b/upstream/shim-16.1.tar.bz2.sha1 new file mode 100644 index 000000000..b21640659 --- /dev/null +++ b/upstream/shim-16.1.tar.bz2.sha1 @@ -0,0 +1 @@ +53a4a52f2cddd7ae880e405b4e3336a5968c5683 shim-16.1.tar.bz2 diff --git a/upstream/tcpdump-4.99.6.tar.gz.sha1 b/upstream/tcpdump-4.99.6.tar.gz.sha1 new file mode 100644 index 000000000..8e46600bb --- /dev/null +++ b/upstream/tcpdump-4.99.6.tar.gz.sha1 @@ -0,0 +1 @@ +e090c039e687d885338d18b69a32fd293cf6e907 tcpdump-4.99.6.tar.gz diff --git a/upstream/uClibc-ng-1.0.22.tar.xz.sha1 b/upstream/uClibc-ng-1.0.22.tar.xz.sha1 deleted file mode 100644 index 82fa0042d..000000000 --- a/upstream/uClibc-ng-1.0.22.tar.xz.sha1 +++ /dev/null @@ -1 +0,0 @@ -c46d35fddf02e92fad94c545957289ea8c46a146 uClibc-ng-1.0.22.tar.xz diff --git a/upstream/uClibc-ng-1.0.35.tar.xz.sha1 b/upstream/uClibc-ng-1.0.35.tar.xz.sha1 deleted file mode 100644 index 87a2f243b..000000000 --- a/upstream/uClibc-ng-1.0.35.tar.xz.sha1 +++ /dev/null @@ -1 +0,0 @@ -07601337238fe06b3ac83ca6d8447326df76fe13 uClibc-ng-1.0.35.tar.xz diff --git a/upstream/uClibc-ng-1.0.38.tar.xz.sha1 b/upstream/uClibc-ng-1.0.38.tar.xz.sha1 deleted file mode 100644 index e5d8c8e3e..000000000 --- a/upstream/uClibc-ng-1.0.38.tar.xz.sha1 +++ /dev/null @@ -1 +0,0 @@ -67480362767568a1d887210d39b8da6661bce28a uClibc-ng-1.0.38.tar.xz diff --git a/upstream/uClibc-ng-1.0.54.tar.xz.sha1 b/upstream/uClibc-ng-1.0.54.tar.xz.sha1 new file mode 100644 index 000000000..02c0cc470 --- /dev/null +++ b/upstream/uClibc-ng-1.0.54.tar.xz.sha1 @@ -0,0 +1 @@ +0ef81caf04c711b9290615ea21d5c81aa2599c3d uClibc-ng-1.0.54.tar.xz diff --git a/upstream/util-linux-2.37.2.tar.xz.sha1 b/upstream/util-linux-2.37.2.tar.xz.sha1 deleted file mode 100644 index 8668ea3c8..000000000 --- a/upstream/util-linux-2.37.2.tar.xz.sha1 +++ /dev/null @@ -1 +0,0 @@ -4e85e2f533ef0fe79a4505695453a91f25e87605 util-linux-2.37.2.tar.xz diff --git a/upstream/util-linux-2.41.4.tar.xz.sha1 b/upstream/util-linux-2.41.4.tar.xz.sha1 new file mode 100644 index 000000000..5f6b7bab4 --- /dev/null +++ b/upstream/util-linux-2.41.4.tar.xz.sha1 @@ -0,0 +1 @@ +0e61178c68875f33be327a7606429904d1663867 util-linux-2.41.4.tar.xz diff --git a/upstream/zlib-1.3.2.tar.xz.sha1 b/upstream/zlib-1.3.2.tar.xz.sha1 new file mode 100644 index 000000000..37785a283 --- /dev/null +++ b/upstream/zlib-1.3.2.tar.xz.sha1 @@ -0,0 +1 @@ +6c9a55ad71ce9a7b252d4faf648ff66b56401e50 zlib-1.3.2.tar.xz

N?Q>HDnRoPBN@$m)c2vC^I5=}Kdnf2RhCbo{DUXh -zgZ$0UTk3xu#Q(<=nN(Flxnb73>(KdcE9N`No9Vy#9M<4zRK%3pALM%qwyi)l*b#3r -z_CLuzVOWseOrT+Y^+9bEoqNHXIBBTIdC?G)Q<9^rv -zDfYWtN5b8V{KL=XciT3IYT%dwtk4@S*U`S2u|TrcNz|x!M62{Fifg>zNB{dax5)7i -ziM-m6r8t+*w&VBKy0o(;#-d>|Jhzqf<@@tq`f(Qm43Fj!}gB%$poGdZ~J5+TyMw{#%+6YNI+)vTI3 -z+y0%sd)OQ3?PpVesukBU6M0`u2uvin(s6GrYA3%^ZuIhlXTbiVgFBlI1tu6H&=Q3o -z5}TYdx@Fsx&!lw9PH!t*+D+9)N0N?c%XY*4F$=7>)J;I=eMZ37V_A>e@3eLr-quOs -zwfTlaUc15g5hsT|J&t6sN4qxbdCslKm#?aKX7r(X-_oUaa-q?Dn7-|=~V*CR?j*K7uLaBC!!uIqjrIW08on`xL -zPGpqc6{n4xNF+ezQ6bSv#q7j&9^$z-S8L|fTfaq+1y{4qjt0*HJbBuE&CUhpFh-Kz -zUW;A%Ph>owLx{F&e}D_;0FiIG+<(Kv5Y3IS`VQdf;y5HL>^IF!|1GwqVnCm5xr|!D -z=R9q!VCeHakufFoS-njh70wd+kW>u{5JW?10V4P?t_nhtgaW0qZzFaS|I2a&(On2s -z{{umQ93()vpmt|PKmiV-|2({u1`&B)KoNnUSWAxgk$mdzol)lQU3m8XzhFPw&k_QKzK;03QrpYH%Cs<2#b -z)^v8kBm_YqoRSNN%H8G1cR_q>aE1R8A=hGNH?nGc*k#FK0QmEN$?aFNJUN}-OZ0XG -ze~`vVIW-|&;f?N@3Ky#YZ|X6(bQz?JgWjZuYYL_#_Rm}I9-OT10k#D0&s#TG8SxIGhn!$rcp -zk(E_}`OT=}u*3gL@X`OT!lA!WP#tsh58Ug*XQPAPKN%#U-^Si>JwJjwaU -zDj^{t*u{rs`)*Fwb7NbJM1p3b%X)+kjgY0$>!oUbC4m*jUM9EQO^EH)UG^q$jESA6 -z%Ejob{_8sP(AsFSfuz0hMa9)up&3L_nAB!td1&8w{CcY5ui)$n7lkOO4QB>iRzXS{ -z?K00`6PVfp%jFlf7uAn}lg;bc`6ii+zvH_2#_2o0?E=r191d-ZeG$>>x6SmOA7(0s-)mC_MVY?gNCx7$5BQ=TK5OOL1`o#2 -z)kV2^6J{~FXG>%U^EH|a7s&&Pu@H%_KP3~I)(j+5h9WD6iT~vu>3RpxbQPQ^AodG2 -z%`UIKdwJ;kQ|p&(#H-E5NcYGeC2P0(m|og{2CPdzKtAf~g50MxGalhX6$#r)p?a*0 -zmA6P*;*^MhcyqQ*;<=Gw3tXHT58T5LPX(v%C?h|_?Az04>Z~AlrEf)XlOyNgViRV# -za6A<5`GX|`JVMgu5FMbb=wYD`wO(A8T*h8|($svrM;!N7{@8gDMjTGVLIaxsVWxZQ -zckKL@B!lCmeC{|L8T|KoSQmr&^t#{AVl@LyH~x#`3e5R(54q9Y>xO!qDKo6=K8?&N2^5OA~=?(6z)faOp -zJN~}k6awm(Mw`wSH5?lbH>QBMF*cKYx(7LRI4%#k?`Pw9_gJn9W^B%M5IfGiahJRd -zant`IAWD8pcA5KXv(Lb=SJM%}7#?w0fSythB1Efao$r -z!!x>VYn=aSnOxV*xyQVFI4*zxyH}wsHT+{375RgUPHq}s)Tm@PSl*yDYYxhNhv}jT -zc0D9nbHn8AD5aoqmcC>21> -zP4ujBqWJyORlLxj&w;*uo>kp&*6(cqnK3>OUq8#`A_OtkMVVFI*ME8Vo>4$1cTM*c -zB9Wq~#Eh@QA9W`ob9vlwLXO3}7&@aIV}~3+nzDC2E6uqcv=wD)L}2P5PsM8`%#aR# -zKtS}b#28+(0u5u7nf?4VHW8(tfG4682<4oSoun#^<1{SdMpg`H$|ggeo+z`5yU@q;FlqVH -ziiVF(lX)w@!NUA4cE69$JZTaZlt=xbKn$68Ku7$Sx?1?d_+5N3uqGd=u>6P{ukre9 -z)NUqa8lsXVsZJ}O^N#w;c4x!Aaf9r{ -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 -z+c=ZtUWE~0<VqeJ-R0&r` -z(M-mY-QeGg7!#Q0+09`~kmE9)O9s`Y*~=5uMmd^yi6Tg@dk+Jyy;qdqK}dn5k!EN1 -zXY`e8t>ecF8gmdjAZv)+h$|@BP4z-8Brrz`8f7qe!ds0tsMza&94u!&a2|c-t?EF6 -zW<~~oA|)$jxX@o-bJ1Aj0Y;oiAA2Y+0T5yYuevG=w7M4;cGrMexhI{U0<)TJb-eKa -z&(1fT9c{IWkzHh69C&JjOcqgNqr9{*|7jjx7JB0oalOA_lc_`F9uVpf%h9^I92azc -zw1C$07x#YBHR;4XJ8XTyw8AkYiiY6{2%q2Zma!-i~SjcTB7;hBwDd4&gGH9nR65b8La0=P)} -zxlsk6kXGZm-SNNj^%5vEpI1j=3 -zP3G+)8L1VKk^tFM6-@Bhe!8s*GcbzB#C@@3LdkqS6VGhPX1+@`GtAl}H0CP^X*{B&!1eEiXfeL~-$@sO__P})J>AJY-YQ_g3%N=Th -z8{A5-4abf${}`f{SI}}F4FM$>e96T2{*indcp?L-xYZJURTY#liJTnzdH%uR$mETU -z>=lgSKYy)({Cw1i(AfU0AECDFqq?S7$YW+Z#`ycSE5PDBR4;M8tvnfUtq9>HupUkP -z9%6d^s9lswhWs^wRnNeA2+bF38K4p>HC8Z!jQR|mu4|#q)*B;n&&RS}UbAtJ -zpzeKyL`x{=q=53`k+7RG%BkMTJ2lf_ -zqdPS7yO+^z`V)Xzw=5L{){dNf$9m>|BSv-l>R|OH5y@x?5ry+^#VxJ^^~}P$|F|3| -z79)Uphxiv4{mZv@?TvFuj}wE$>doBgT|c}e^2`x_C|K^?Mz1@J8&CC6Ut1YPQapt$ -z>xW*C>XHp=jD)`yp8C?AUCYq;Z*d|Q=Rg8r)LivNc?pQ)TSrt{_Kk^{f_O^lb6cyI -zdO6quK8QurKsTs@UB4z0F6?LcR4)n$mY(FcPRXc-2Ow>j@{o)V$E%RTub+2 -zYf<;eLpjLuV@d$v#R9@#8HLc>qXLb~bv2{6EG63o -zs)w9%5Vkf|UsQLr<#Hj=nkX8|E1%7U>z1SuKTfh~X!-Si1y}$#zoc9u+SdkquhLKU -zQEK#+0e>S{5M=6UE&DkC-EJx{BX=U*rUTFBwwFY`T|CqSrUR4Rm)Z{Zi$OVvAUKgu -z&)pwltjiV7^}k~um(H_13u>dKn01czf^Mq}wWeZp)!vnG6Jgy|MP0oIN9}A6^AGg& -zCfY2nt0AI8D)lrIx%0qSGr%zXlF07(w@9VDZg^J0FY4EHPi4Y_NqJTzDdSe{s=j>5BaBJ -ze9k^!r%PlI(GVsFE_%T!tKrIIU9j*U2hHi6o%F^6f$+yD!+%=eqFF}$jd-HdCM=Nd -zX)%vA{Ac(r8c%-i%vIxdxkJ9>;fLQbfJj6$#A)$W^3(tYcZjjAy`d{J-L_@z6Wq3- -zA3WJAAU2T#Yot>N$IXkqS~rIZXOZt;foF~aYlxF?kj>6QE^%0|Y?NjEhZK}a6|?vG -zD*ISxgb<@qDb9G_@0#WzcIA^{y+*1SQvYo2@DZ+pq3CTLxFaWx0&9d5UUsAm?{|-1 -zd#(&#n1p7uwG$c$)8^GUUb`!Y@0TnqQa<|PpjXUty$tStCmCS9#M8|D!=*5p{X;J> -zykDojAd?m0N@%0d7AstHduBy|QBDXu+4~Akk0Qi-Oc@G@>CDk{)9XKlwmniIl&L3z -zVJX0szhVy0BIDK0@Rmva%N>&;fIK^HKVy`f -zsK+ugk?VCEcmA9}7|ntlSx1!n#dORLBZjgff*M)s+;|*C5#1l -zW|zGt?*O0;-w$r}S>*!G33}#*NR2udjorTj1d;0IL=b^pVY7F&L1frOM1ytBd$#$H -z>3}b|K-3}>-y1VVZolTQwr)n-Z~4;8k#=NY=MoCfGaiELLX632^*)G_1vZd#?!qka)6i9;#p41mBBLQBOFWS%gXZ9PJcNe$s$sm3Cpk2$_ib+V46Au(JWb -z{#Q68nqy-Nd5^P>zpRV0K|#w^m-f1UMDPj9&~Se&QTWNS-3@s&2@v>W8E^SHSxaTz){4N>hwRYaJ9=NA8VY&KM?^YH -zF>bV!wF?JbRsgh?y+zB*KCd;e;aqW_;MiSIQ+%2<1r8BF0nU*o%6~W?mp1jzgAheQ>(n6o{o=d -zL1oDAFUm10t%2fef%5bPym_M&f{;(>*fwAAoFoYNl`GFeo0u>sJMD~Mi-@{1NqeLU -zu%QqG?TE4VZHR^3LFv;4PYxhvCw`uxC874)iys7@1X>%X5hrYd!4@pK;%v7Zv@l -zetVH+tZQUzvmCr7BVsPvoW;u9JJ(^(fqqxJ;qjNc4e4WkVfCuyZ!O@&n3O!d<=j+> -z(h^6QMoU<3Dm!oZ#E4ox^u{a-N%QtzldmAO;k^yZp>@%Y?bPEoJ5SxnHB3%AT+GZZ -z4$c3utW8)i>RFuo$qm*X@KZ+oXYJaH{nEG6bYZ3qLbvqwCn;~1WU!C#+FhSWbXT5n -zy)m5qvpoA1y)*Ph*h=}njQV|*O(@Ti#0<}+5>E+Nbdp2G*ZRE|I}T1qEvr|kNpM3C -zUTMDCtW0Z^#p6ep=1A_TZHH^MsFJG7nWH7ZqnC_Oljr$}1;UrK{7ZPz&KJ*>3fwEaPth9FAFNaRvNb^!va#NZ3Z86M-3aq(M2IMxd5KHZZ?zOJqiC1qJFy$ZS -z#vLy5q&GA%PR2?6h>9R^L6?4cLg?mp>1Z3pLpbJoVjGS&5uQlLmb11-@lep^X%=oM -zLxk*ZI2uLoYB{_{SJ3~n7Jlt3y!QCi6?6E0ktl4U}XgVwp3+fo~<^p{kPm0T=cqz&MEK18hX5%6=w>^We -zJ>Z+Ar++CIO}6l%Q-Iuhwaoj=Dc*mbUh&0XG8hAs7kvw9QAonL`Hi<67%&oC9Toh* -z7!+PyB_?I8y{L}2y2pk(-0zUC)`$? -zqYsU6%lA@cQq6M*&So-|2w6Dxir*vQ48gI->)KFPLO*^8iOwT4_PY8D8+PTnwG}93 -z#O8yGn<^J?4a5)S~2)e;!#?tCS@Ty+R+iRpw%3@3JVJ%<3+h -ze<@Yf$P&M=^lbMAbnyF;{)E)ihbMjFAO^0EKp2!Jf`2KKupZ@n@4KMrGm!OyD}f28 -zWP^_&WeKq~FQ}NUMD>`%?Vn2xiGw>^OZ9-h=0k?gH5@1S3Jil1IT72>Y7{0-G)Xa+ -zVv{X7q{{_2=WeV__o<6B`B(sBY^*IBcDHdl)0NgL%Dsf8Z<8Dr?nUTsXoRlMB0vAm -zU+6YrN9&!lkxg`qhE0jnQp<3i!;)tVlQzvE;$4s*-(%Xp6+^;~Ip#t9mYuH8a)oPF -z&hcWA5kXegmxCfx>|Fy@fZ`qjMiU<)wvNhmp9x)0M=Y!{_-0zUVkGpAEo9VUMI7H> -zsJSjMcAbar$tPO>NiiK8htbfxJ`e%rRov!d{91>r^QZ;Ad}i{{Go7L4DR~2y?hr|~ -z7Lw|Ls)NFVjSaXXw^xsh7xQUkXuyr!kP6F{&+CM_7l-sPKXekW?3tssQO2T;1*>f1 -z%*Z9dc6rpFs=uCJ#0e5-`|QPVD(R?f_c>xbyb0yHjeu9N_!nbKn-*;}Z@YxP{GvLb -z4BRz8?Mog|%bsKr-Olu#^oe3{1hzRt+iHqvzh -z&32y^h0gHJ%CSGDOE0HHFKn~*SBAjQ+=Nay283(??s&BNi+82ZErl)C6)xhr8dvK2 -zYL`J34q@)*!WL@^i+-+F6p_|a*?s4&>toZ9JmI!&wSSi6h>R0ev+d!69yNg2q{m#8 -z5S1dU{x9#WvB9DCoHS^y%_GOaT)q#-Kw{68AbBsYoYE;{H=<|(%81;y)t0bmop_UL -z);9tTi-vy=HS`3r|I?+ -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 -zR*#DBLOKE*4Xp+UA@zFC+*w=i<%lOT -zu@TN&7v{G1zMot1Rl;tumnz8zCERTodUcnczqfPD -zH=8v6)u}1&{lxJ{r5_Vcg5*y=_c$bnz5S-$Usg;Qao;Cp=`&^90hmk&b{%AYHyY<( -zo{h8WGbLVe-x2ROQ4HmR?XK{XlnimDQVBYnTcjZU)D2bdbFkQ;UdIt;Rz5-8jG9Q` -zXj1!EoM>{@@^D`J+!!o9-85kn8hOe)M(G?Hi;@>NN}-C9qpv>Rq!1>3%KfM4r6LgE -z{3zEn7QW}r&n9tIGOFPUE#4tOGumRDNsiWR`>2&rr=x1X6Z~)Sc#WWmj;1s -z5IZ5;&h$}Fe-UZB>X71zgF@>%-!Rd5_3MYA{G$}2CsTW`#ZPPobPM}FI1!+HU`0O-y*Jeri8*E?S -zcF0p5NUE4P|6-P>ec-y}Y)tasa^)3RxJ&%6aD|#cT9D22EIAgeYjL -zF|#m3P6a!^cNHN5zsQnsk0tKPcp@15Wd9xfWG=P-{M3g`1-lOi=afti42tNiJV|4sQ2=*-vL>)}1SmlNB$$)J1=9lnemr_`BSZyXuFO9u<<#v? -z`H^)5LB!ov1pd&fH%XS4Gxv50MJhX$6D{5;P>sXfB;iHHp@E<&klT_9Pww@1I(M}n -z9$H&BUm;B{Z|R_N($l(Qz$9oU-B-cKC>@jE-$V%8-kJrkETC84@o&pGuOEjp6y?T^ -zukE=CzE09T?Qd3g91e{)xBf||Q&3KgS?-gzQAl*F#Xs^LDhk@rY4H;TFy(NoHS5@9 -zOS4=R+ho_bT1}niLwPk-ro*>jWIbfok74kS6D-1laa~Ad=`@ce^f1eB?E~}41fKcO -zsvR>*^Mlasw%Pd`Aln5NK|$z=fj8ZN5C)e}DTXw-Bll?(R3yMLa93^=Jq?n*0*9#d -zbpxhp02y4l$MCI*VF{2nm#4B*B|PQNp%fLD&pJBHb-DSU{Q0Q{|6q7_-*sTN7<11N -z!X{MLElD@E{z*oGXM+7=J)LmBe+!4oh9S3s4+Av$-}*iCgTMW8iwPDBHv9;7l@2xV -zUZM&-tNV%sujRb1{@-&;!&l7>%Xux>G`{{j7p{G!#uS7Ln5SP_JNx#y^(D^Qzh#Xh -zU2l!H!X-b5Zlc`rts| -z%THI`6sWC=RLZv*x1p;X*4VY_!!rbhnhgtG6Xq*klOA0OLpsu&&K -z3zAEepDmy2N4v=IgpjX~|H*rA1Qnjq<;ei2l`5lpsXZSqNQ7UaDDo40F{3Nsj!u0k -zCfR&+iYFT8oBp*J=Oz;fDuYGg)9;9TI#U`W9*kWR7js}EX0i5IK*5V`F}W&>{;Jxd -z+U4eamkhM7m&2}3!b>}sP#8IKA`FkRxmF?uNMUckkx_WIuTZ*wAyV(P05n>l(9n+) -zKHBvn=?aG~YQ<1N;)F%zch#RJDr&@g< -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 -z3`O`>hEu+`*^8RGSf -zI^$m(OK+ujQk!7WaqR!Sz5AyReoLCEP&5vqd_gffpWr^d!a(${q32qE5Q3GC<7t5q -zt7%f_X5t+kOH9);=p6cp1JpFV$GO|C1;O^D==_1Y#x -zM6K;8(x$amRBFIJZ(Y`;cMb69)Ke>@x-oh5)XSFs*>YogDY;15Nl+%T*s>Jth498i -zt)JJMYaH`wWJTlQ87dS@;Av$6fw%6%^>fML4oR_r8BRpvjx50nhibPO>`KGk3_LNX -zaRp2bRoP!bL?n^GF+mCG#F3K%!z6LcZTg$Bp~Bj6d089ZNQ7pUvH1sW{Q>epiHAPy7pKqeOlLbYOns<^2W`PB^WuvHAQy#} -zxI}jk(z)>`?;B+6GfAqZmB~q3IlJ)1cVp$O4Fo8IY*BUlA49J$R+%z{7z`Pn3<+z& -zY``U9?wvKSM93J3+kexh6oojl)%~YSDsEB0JB?tuRxPt%P<6-Qxq51VCS|Xt-=>zy -zy#4fgBQQX`;YpJuUNdVD^^%C_q@dOGeji0t6!_qaLks1*3kp^Pog*t~2Rb@L^4&^G((Z%HW@u4G6nkrJss^itJ^u??z_@+-akax;$ -zEjAw^gcFL>mMTo}!{>XtJe$v7^m!HWQc -zbLSR(1_ahvG?_`nLKlSJx}Ri>zHNJ>A>g%zG^eQo+_Ag)%gTmTNq5!q-bk0WkYBPs -zMlWeNH<)24daoWsrGt9&jYf0_)BAVXkjf$<{Z3v17vT0?bi4u;P5fJnxSC}A?LW=^ -z%mhYW$ACi~K*wWE(B;;^h80OML}g9q6v)BO3lR`XU?`h&NRM_1Q_`-4LnDkzo^2=bYjJi7By_i -zf9bwFL0}_=k&8UOSrOK6k}M)ws*=*(8{LPXxX5=(rsv?z$u&_A%K+s; -zt?lm6Tl>iSE15$-!cE$UzCD!n3vAg?QQu;U8p_-VLi0aIu(6G&mZr}p_Gas@d=WVi4gwF5h^Nq#a>Mdj^A`qIi9U!< -zZg|r<(t#Unvu$P@af=WH^2aAomu*(I+dESz1cU9OZRQu$n7#{h^ZAnLugndBRPX|KpMQJA!`_OV2N-BZ;K%27 -zw;KbLz)+l|QyW5-3O3dpP+~zk`QQ8E%J5%M9mF9C0iXp<*9Fq6AkNk{Tc`uK+OUz_ -z-&#B0`^J+mDfuti_u^)T?m8>qnmc=mHRv36sa+05%_7VnX2+C?foL1Gsj^)PO%5SF -z$syBpW&dpY%zVy?7VD$8nC~@6s=Ws0IS2mUZA-ZD|25@zTp_;gJ>lF^1q+h?$GgeH=FI}Fo>uN_#Ey|KiN3#5SDLOlt{pZh>1G9rBxN9t;f0kR3q38 -zQd}&Kt)yG2&zrtc$Nt9=YbPG?ZCkxR-+ksfp%3-T5}QBT&L&`GAj)G9bF-Xr;2>7N -z|96-G=VHczU+vf`64)X|>h5%?rzIwve0+#aQ*OeUE})SSkT3 -zEuP###~khIT7Alzu#MTLLAdp7WDxa7 -zn+4g+0dAIB#essoClYwXg%qCtXA&woIwy|8T5ACi@D9|CPHoDBb%swyS|h@`1JY%p -zTj}kaV?Ba+HA9J7hp{ES{n8iF18*ie>0yxi+tiW;Hc^1ubQSPqdiM$*$!V&Lvm60o -z55+vx0E(uTxNc#R*EY1JGNNxJ!lI!~mD&E`0&@_2>2$(*fk`qx7`{f>p-^x%pQAo- -zsVd12!ox5r%>q|Abe3BHhSZhh_o(@?qDyD?75jOxQIm%2IHD_c;j_C}6!kR8^d`lj -zUTEnn73!!Wv?Ozt+10ZRge0-7?8ZI6;4$+7U39%(#6Xb%ki0lci*roN3}e0i0yG6q -zXwtY}G`M}=XFjQMp|hhb|KO^xHY}9aeBpzn95Fliv$55t^14|WwuF1-&iGUKf&@BJ -z7@*EMX#65&sq=4= -z2Rh;+9dxrW-|Z|v1&{CvAqVRSJk4LPoMAi`+%wwQmo3?V_e`LPSijQze!f%+5K4f1 -z+evOT)XRDo;N_vDF0!k(GLV+VW;&$#Dovhn@>&UaHvq~Jb16qGF+BfMg0G=vSL8w8 -zLGo#6f)}Vq2H;3^@N}#I8_|Cof9?NcN$e|ZPmO(e#qu4FKD>WtipqJX0IX90!h>WJ -z5vRGG&cE&-E!}twChDCbO2JotJ&X-iMbuFh0;^Q;w26&FHiU$6i$8lmBzsvGk#8f7 -zyUSJv_-?xDDctX|(kP8=@uVB58}VD&9(l(C#@Jm5D7$>=yz{~m&O(%Gknouh8n2{$G4TX>(EL2<4uWWJXCL~ -z=MBfem$GYvjkJaV1_iO)$L=a+V*>?(h+j#Y_wR~MYNr_;ux1#D@+}cT6oKw_T -z&U>UVrd%}}XVJL}vc}s)4hY+x3jei$!xQdzL@!@1;j6F?*WXkaHt5mswXK6j|JSa> -zBDPjl4uo-rJ+-s@-fTOkZ)b#+ihPv&?`P*rJX#DwL!;a9|5fFTFn>gZl+A -zz8J|8U@x-b^n0CKBGPqWLIVaq5(cD6JQWO~!L>FgG(VIbnP@xVHc&der;{-|_DLeu -zwSCt3{hXtKnOqL=&=izbAovr@z{2(@L*(X?QI>!fLD@dXg|LD#BdizVwmy7=W0bFG -z&)t4UbiND4*^XsG^R>(o1pbR^%5H%)tsukPzVYR!y5{~K%|N( -zM?EYkDl)t9C&ILpff`kcfPWvF5Bt};N1$h#_c{&X$Qdq!&hU#M&s)1$Ze-KnG!<6% -zm_&c%b!a+xbKtI8UF$Ia7DDa^K{9ea7#N0OhceD@5Cz#`NfNck^cm;>Za~vmrNcAViq=Dxk(hU&ZN$VSMQ_{Nw7;iL* -z=_XR|x=^z0S@y`w*A|_F)*VpzsWFT$f@e>!4}~$%05TA0N%ZswsG`8)WZuJXIBUJ%}4#YG<7-sNt*UDja4lyim%{gQl^ -zlAI(ra{~T4i2Si5E}L!XapA_JmVUBwmG=`Fi23M28P*oeOt%NV2e3k%)`8w;VlI|% -zbKyvt=S=i@P`GApKK2XXIIP`YKvlp(17>}D< -zguXhUH+%S&1L@igpg4Or&P?AK8-0}&2`6VvXC-Hp5jFHZD9&2G$7eYGs|QT^f6v|k -z&EIvQ@bd_hylU8vCG+E^9!1LSHWCf4deXyAZu*;6q~oQQAnVtD+D1=A6J03f@YE#f -zHGxi;Iy%EHWAamZml44Z#9BXbq{3ew3G@utexhS!UHqC032FGR1k@1B1y*N543D<< -za~)CZu}NGK9WL60ZUJf@SVm^hF%lU6P5_|=tlZARZ2Rwm#6_Q0jO9AZ=p?f*&Wg*jKCU5T}#*=sX4OvZu -zi5tpkqRQn9L8^* -z$G`6D8gL=J#5c>x5*w8AnX*0yTJXTUCqyjD{B#%ObI-G(-=w2WiIr*hlzV|Qny9;x -z*)c$qMQsqM*0FiLdAf4e)%Nt)zn`r+mH4Ry+x2~<5NV|d-Fb8sY-2*RlCU8PnTrBH -z752tNO^un}Tp=rd0%}wdS?KgBl9$3FAMSH9bh}ypB<1&j`JSr6Ti-bNi!g%#eHWSS -zub*@OGfHG^0Z4(M2}%dA>d_iw2%Bu4tBdLTNeSf;pBC935NugV3kf(OCH}5UAmiE>!C0(&Fs+v}nVIT^Z%GYgwF1U1!%FWwBxAZpU5p_+?tCBfW&{HHmHy7wpN -z-P5+NK0?GKDB!tJ0%S?MV1zcYEpeMJ0b5sd^ag<7%_~c}-2gqCIjulE^BZCslV2x( -z!!G^T6Bdexh{)DJqsJoC0GkPL-lvwA^25y~!@qP+G8UAH#fh#5$S#^Eo2h|aX$RI; -zYXR2t%EZ?b3qJf|55|uRQfz?TUH_rUVsxlqh$z1r#?)6fE}#U8=?Fa3MjLJu)ISJ4 -zzsb?uaMc`h5m0=)5%RPGXLX5{c;@V-L^$qeB_L8}y2FJ(CcaY6qtcQ@pQS_*aX=X- -zqnG)C#_LUc+}xt|ViH2nv&sjA*rXB)Tk -zBZoE!OvhQe=Os5@N-pnb2U=h~0U?ThQGL!`jm0jaWAFg$G-cMt`wBl0-4}HGV+Tup -z(jjF_b8lDw!^If$kb|xV5)@%QzCrJuhA953{qxUHaLwKXU%dM}R&d69M}|O0i7@5Z -zM!Ce4zVQDzZGEy&rVh1KO3dKsQ)@~>;9*qwY4fM)ulVC>vdz+Tk16gknyB10`#BdS -zP@n(QVZd>-)Gq7$j1bysKMBN^1fWHZ7f(Uk%kW(P)2&g-C>$~rci+ptf6h}zX~b;C -zgi0)8`Ko4Z+t3j)JbNnqZs)MZrX@C)*LLO*W3!xt1jLHzK+$l&ajyBmoOWkBDv -zHBaT|_DT!(@AK!N4YvHAulxNoH~zm)n|1F)(MT1n=+~367_@yRfy=%Mt`D?`0ds)N -zNE^bLiwLkk`^-7|&MNSSZ;q*OWY2yrvzc$6#PEK3YAlYcGLo@@jD9_)ltBjt-0r{; -z;C0(*kJf(~9g`^0EI8GsH~mw90)Yy+2F2iI*tU*1Q0qaIrq%5;hl)8{U6pE%6njTx -zc)8i#Ps(387aor&qUHMr1ow1@yYx9$9)&i|E3D9>{DM_4?wOEY!SRam?8)-wktLx3 -zXu|%J+y+K}Me6OFl1J6}XeHbuOe -zRJ{|4PZ(+RGNlS^E!@N}4_3471u&2^8AgQdOW4h|T0l^kVRv*|L=;|k%_BQASzgY) -zC=Elz?*NX#zjU-BOr^c^q;Z^QSXiwrGS6%=_t;1o0o>wZ(QuidN+>Oq-8JSz1bmY2 -zC>K_X_PzPMvYOp>p|63WEM)NQTBh5pxa$*$l02lGdSKSOp}6Ojy)%daBcJ19*)*AEcK2<6k}JlV49M~S7);^#j$XTEk- -zLpIz21S*w*-q_RBOJWb2>U+{`74`y=HX+=QHayC}+wfxo)*{)RH32=2epXU-%|A$j -z60>8;RJ@BT;uX2_qb5IUoF_P}k%Pu^8;~U-h=*svnt54E2 -z8Po2*1;{KE0yRKO1GWE_3-|mFRUTiahJX`P{-@Sh!bMuD##Iz)d&Uh&Q>I9UQSd){ -zY|*n^n3kG;yIL4#k&}IVjOl==h6EOByYOD8v7K|I+v^kjxX~yr{4FmkC5As3Grxqj -zkZ)pmE&c^dtrr?6q(o|P26w?gHz(LSD6n(9$|?b-3`o*M6JbRKEwLZdFTWmuSO0-6 -zJX%AYq@YCb2_Jv{b?|qF)ZlgUS(DD)VaIkI@)LENvbMBt%Y2u#Dy!PIS6h`nQoYwGwBe>sorp(AG>n?WBH^ -zg%y2I -zeXohd!uY76S{{!nmyHubm4QUICp+FBGvAp6O_DORlPlO*nE~^ZPZ5Gy^BPY7Qh9b3 -zNsnO$;r-M}d=Ft)+B1RF(ZB<}=(AFi;`PU*6zX9Qqzx0@RA#oYO^}rXW3&t4) -zT?mYHQknOi5>M!R(Ymg*$x}Y?R+k9%O=#%)#iL!MT{1Ydu4S*^8X@{{p~o-_1XGU= -zQ9yr@DxwO_H;WTA6g@m4@;`oq0Puk>3riY=QP^)gsjx~?r+zUsxD`;0v{wM%FB^6$ -z#^j&T^+Z}s=33^&A8JK?%uCH=eE(3|M>ndK1nAv&38bL)(G%4z)%Uy@=W*@ja~w8~ -zw}rR9c>j8Q5Z^z3o)?!}U(;o)jIu|`d!cVp<_-FLGbw(6pzo;gVaBQIYrCSj_1p}m -z=>^KcL%c_$hi1%3mJl95N1XNzO;((lZ!^g*Ky;5LD$f_jOKxHE-6E82msI)Ya))-8 -zgeJJ+kCT8RmE=lhT5c;)oZgVmmrd2SJ75wChT!4pIR;{Vp3Qjz2C6}sg?X)v7z$%& -zFCJ0T9|*#R+CbD&Q>Rhte(iCuLm0iYcE3xysr( -zq>@(MQU023c(cw9J^>p6M-j{^r?_wpOUZ{fgeHEAZbOq*EWzI&X2vbJE6&=;Ml|)) -zJFxo+h5MSh5sFS^pe`)zJ2NeL^988Dq2BU(0nAIt^ELip&W+t^BH&l~C9N -zJ#otw_XfFacd9osOtoDx_y~YX3PlD5N3~FUgXmB(C5zSTy5^qIk?NPeGUC2|;qxQu -zVHru)>Y7Q+qrP?%J>2CqlHLLyOB|_ZLZseKSkc(}pWAYV0glV%ODo>Oe+O>5V5z2I -z_lp%f*+R>}t24s~{z3qo>!z;}CmcOa23~o6u5a$yO95tX3-W_DEvR`A#9hnmaZudX -zEIbmjZlB{SZZ}TsPR^Y1Y^ne`O4-7PvtZEM&mb*bx_CM8kGoe{XkYnR#8ogPDq@MB -z9d$TQgm|_CQNH(a+mJ_N%`2)#Pj;e2rw`%vxn(p39h#9hGqt|rk@^~=17jvsuORH+ -zgl9w_TkLsov1Zp$X5B@&ug(n{`@}PnH*Ap1pfjZ@R|St&G>my&r(Vu<34LXJ$IQ^v)WMSaXE0eexa*j*PJ*sdXg!;(`Em}!PcmYAQ(GP -z_{a6En`8wZ_fAC>lLR>nw>(*U$2`bX*7gw7EgJwQ?+q>JfGDl!Gv{f6V*7sxuem^2oLu*|^BI=Yo-jrNPg%Kt1PnpwFqr -zR60nJS`rG$@VM?+X7#h?M1sT&L!w*_MJ!bxnP*gfx^4vEUw3aPW*ku+2w+PaGe)yA63HHnmRxE;)gdC%E;hFd3AjGFuK;!|XsoZx^9rY5F${03))qtTBxhUkA -zN~5tMJd1mflm)RfA{#&er+~)0ec>*sg1z>ZgDbyPVL*A}ugb-a(VjtQsDP|cS2%w- -zj?H!F?>OW1XgoFWITvef5rto&-BV=WV@^ysQm_RLt|$zZ9(Kg0=>AGJNR=BJO=gD% -z<`O+GQ%Bl8ms*%|%7Z(NfHaW@?RXML>0T_NnN2@!gB_*N?Sa<-rg6Q6(^_75R(8Wk -zIFrI7afxCbL5gRL9X%DlvEVaohq?$fQGc)9s|^hz9&TvtxVHjR`LP -z-eA92z1A-U%OA-C$GSIaFFYVQU2Rc_2=8~k>B3(w7k5nO*!t&v7`iJ89)Ct}?=xm7 -zf1oDN43e)*zAX^MO1`x}i5H}a%m-Dp*(qgp -zX*(9t--Tls+lJy6w5jIEEVE<9C3|_QH2Oq>-iXmM9a@y17&b6AY|u5D+uQNa%D=pF -zTIB-`vQ=h~XrZf#6qx%bZ{Tl#TPNLZV&Q+kIWY~pXIT6ww$|t -zm8@8ukrQXW(&-WC>M{@xYi9jsgRDP9gTMUqTZfI0D$pox`{>6RXn=KyXE9_5;R%u0^|9wY*!n>5>%z?e!ttIC} -zeD_B0fMXZy>ly;C0%-c&#rmQ$R*vI$&w+EcX5tKKGj=ZlLKh%Vi1E!V+YeB^yw+Q( -zEgY@2TfC-G-N*cE?(5&MrXJNP@D*lMOPRq7>ypmHgo=Z$ES -zUv_mj%TBcM#kP=S^84To6pFjzmUPkd#IQbcyC -z((Fg9TDR5fe_^*X_H(|`r3+~h&bzM`>a7@gNewxzUi -zbisWfRa~lfM5DU7+t1#*U2OAR^{fY$--8sP?8KW~G-xBp21*x(|JLg%svS#+jE6({ -zvf*z5@zur?(}w4WtOb~b=V0y2y9dql4~BLhkIG=B2gIWh;(Y$B+aD>w|OBGVhYXSQp)9q%{~SBx>p+F_B~5f)-6@N$R8W2mVZT7hyAi7JDl}#eaDFSKB}E -zKFrX|;{G=*=Z(ZSR@JE1oS6glNIXkf -zOoR?A)lk$bL4ryRIg!^gJT#)kvTP(qS4Zf1JB#%~SLp|DCM|bzME;h|bE80Cw`Hm! -z%iSG38^q9EX@zx)aFEpvcUSBma_X-I)k(7Xz$O)`2+y(EGDB -z$V|Bx;na8>L&f{CpRd^)9+k(>R5UzUJu9+--FH1o9|fCVDW4g&56kak4Mn)KZo6@) -zaC5HwK8%<8LghXIF?eKg{PR1BsYi0Hl`Pl7&s{~e7c_hi{nb5=kKRu}`;kKUi59rd -z_O^4NR$1BSTueFyt!=#2=g-+|4V{~vb`epa?tUp?66I3T#x{ZR8Om_5@3X&*fDg0Yry40PgwqR}>b0m*LmlcI)LqNFDR*Jh$-nQiVmWW}j_ihO5kQN)q%_#NIm-f{+`Ld(*C{_{d -zEeZWt#eea*(BL9osv>o*{4d=%IUbL?M-8oa5MVhFs=t&t`N1@qL4Pure3P^PkqjI9 -ztOHWxK3x5WpqcKA&)Sci+n;lg?F%EU -zF_scrBG3?0tl~H6C!p4PCXrvJJZKnqfr7$=OK*d2 -zb(MVfafo#y;5U)@^_+f^+lIs&OOK(ml8O48?5zd1Lf5jd-JXD8J5cB^9)HnVdH*e4 -ztkJS*Xu}U{#YFQ@nQ%?1$bHRL=EixKiGGTqx*ZNC5$6&^%)kpPv`$^(d8Ev-IHt=p -zE{kkE39bWGi)c|xvGU~~UmZn2n95JJ|4Ay{0J0DjL} -z2W;a5;1r*|58X0S{ALS~!xy%t0D}x@Ky@|>w5`s`Y?VDiE>Mpl{T2Eh#xr;Ea|K`< -zKQe_Dk1jN~F)aMS+Zb|U^$#JcdG>(-wn(4IN7cG3H%z4QakG2>=Yh}rrGK>a8sypj -zz}3>u!FQa~uiW*!Bc8|4|OKNGdG5(}Yi*YfRh -znoRA>W*yu~&)y*|u5(0u%*luTKN-Qq^FwNFv3NA@OYL|AV@vk~A3f|?t1NOl{5wP1 -zXH|ryz0g4}_2~(1bOs#<4K1R00LY26mb1t+O2dDht|Wd{)4_mM;orVm8lDH%mP3zD -zkCG~T>pMftZsvpK>pQ1KAkPU&*>p9?P8&XS6_oC4INDR#XEbq4m^EX{ix{X@D0|KM -zzBVaUa=WTJOXo{Zmx<{n>Yd)K%fQE=wBhzAUq>cWFI70-*CZv29#vBae>zD#Fbr=p -z8o8aS>BT>?F+$_pJ1dwJVssA&js~)4QMN(M0|=o -z;b;8$NFA5(;AY4j7X|cTN#VGqXtZ^JBH2&sRpW=zoTHQp?_mV8czk;!bmiTX5;MxL -z3P^5VthW@iu~Qu%q4S~>cF8$TJSwH0R_L>$w<3(~wLXn@&S!oPRw2h{7BPm|{TewC -zY>lmt6l?hS15|HvXD7p1jQen*&7_kP?T^Eh{Tgm3Xh(ERy%Gl1w_}O0?&ler4SCgo -zPgZT0oLH(ZagCqntos5emhlGAyjxg~hZv4U_VSzPZ23^seNFS=kcR$|S3$*{p}N$b -zYAH5j&}2InNZ#Lrdrr@*XFA -z?*g#!$d#EoVQuKW>Y=a7#PoPmqGTATb1FebTDjJdB+%@)0|SLc$=g*usy0_nux8{V -zR64QYBX}m5naV#c88y}vf+(P(6mQk~B}@Vz(rMpC94sKyohX926O!H{R%}IX+_$u0 -z57H48rYyKvRMWBFWB#MXLa#Xt#?s>eGxfKdFaEdmHbc{905evz)Xmx6^cz4+1GhSN -z(Ov3$xBuLK-s$(uV$k7>NU6jl!4UUBfq2m97`+Vd51riLbb!GHqPf9tE$neI3is5@ -z&x=W|=bydQ6*i?DfC@suGo(YC63OZ~AITesvI>8hVdT*)r*m&a&s2kU6$?MZHmv`- -z1PmHLj|R15e+-YOhkUT7z!rt>F-ytJdZ)Qd6VabdrB;{xGtI85Z+JxI!1|D(b{!)P0w{CPki#oC|UVxWDKV3n* -zfBegnQ8l%PP$letW$)5IC%p;nBQy9#Oe1*>oDPVnR(K!y5V}*eY#}l4E8jR|i^?ck -zbsyBpQ10Q+>1^{|J{ve9$KjYd%P(V`PEhaYC~|bn2X;*2V4`#XtXKp-;2bJ+8O|m% -zY+$G)p}jZ}gPqj)NzzsRp%uH1bH=B1mew&F+K=gQZG={)20{ -zp!shjE~f9(z1vIPTYTAg_R+xkb3nq@T|6rJB@SD^L8o78kTD^x{%?Jg8PV|pu$2vg -zwHi!p(>+Q+1*&Vg;9fR=Ro -zTZ!y@`HOi)65Kc-cBd`}oY%_#-bjdP5jVA{%iJ5Ts5V06)?sMbRq`Ttp&JWePx6ze -z&-#oC%m1AG0IJG>H_uY5$x)RpN13u8@7jKg`PiH^(teMP8Y>lc*y^Ciayr3_jf}$L -znRD^@8B1vsV?`v8do6$ps$$;tb_uwXzx`^9R7cIg>FEPQN$Bw0zkqVnBYBRT-FcgK -zF{++b#`Bix*m6Qh)GV@^8Xq|V$ot@x-S1J^i@o?Rv|tF0ZTzwX>b97%@8O*Ug82tn -zA65^h)e`y{i*fI+@u4-2b0zN%-->&x$NW??-Cvdfo?{kTFIrrVYwO4ThJX3F#_HE> -zfK3OyvyVXD@qpZeXJ(6RSZYzQ<%*zIWlH--tHlPup)Lo2c$oj9fg-8eY9Y=|4HM!y -za>dnkc}A|JQ2QOkUF7^3>SD^hNZye|v3fs%T8TL9s;2u|01 -zynlHHoF@wen)J}9A54s$5wMGh_&Mj3dY5QRb$tou;}6=1o&eXosBy2Kbn)6RmGc61 -z*{tb0Y0r-R#O^_(qaa$C*159;wHhmRLJY4VO>*G|dDJBq4g5Y}IQx0{4VqNa7hUkFzgxDXa5v%}E02m+;oM~F%=J72mweJCK -zy`N=S?7z?n#8ekqv&LBJ>52N*Mb5n*^tFKIufJR^u$OWuBhzZ#_AQ!EjX=PMW5jl# -zHk2i&XOYtegU1v{Uv93({vuhfjvRKEBOcp*#oIH`!IW+OJ*9+2b(|ykS@@&hgn+6=baLMHu|Zxi{OJ9*rhP7){`c`Vncn -zjaS`v>{u}|f^6=OC65ULH7Vg?e_}0eN6&MO)-Y+Z{0&k;P4H;1aPIq4T)Pdh|A0Q4 -z!Rl-G?rMijJ8<2tuRHi^6fPIKhIIZEzPJcLUBC+3PZno>`CbP)y_IBa#k3Iz?N$Hw -zA{x9k*?#u)O8A7mw@<5?>a2&WX!svNL)DVR6P?5s?>qQF+UO=#IBNEw^pa+!YVwq} -z--1bq6R{CZHNhU@2^$*Ut&B7-{xna#ENJDF@w9BU)C!HNnr7+DRzGXx3OKYFfReMr -z8@4@bXw~D*yk+v&9ko#MVilj+-v_eS4YF2ri=M)eL*ia7y!p!I3IY)fw4SUGd$I~A -z=_dn-@>KwS0PK^muTIiev7oZIMiJi6`O~(vI4BAHr*E4_?yF+~tqhPcm!~rN&~>`} -zJ<~JW%H39BS*rcov5%2v_g+x;t-d#Kp+xBS5E(hpu5d%0#b7NTWh-?ocGKyHuuHB8 -z9;w-TGCezDIWR8lY{N$qnye=Nb0bF*gEBe)xvMlT$Z)Lm^Wy&vY30i#la -z>2Ijm))afxJAwachmc}DcTlDHh?%iO>Cz4ld9-#(6BIZzBq{SWaRaIuQjrZPyJ-+LOd(0fY$$~JniDKZiioS{vWyX`|w_);Cb+i -zA852^!}{Xl#MfLnCnPT%<{vifO8?wUE-}^U%_IgWj#%@Aa_#9zPNO76D!8K4wvnXS -z&+^GVj$bYs?H*lKuTx`X;Kffk3>^T#6~JS$EGy~QtMsj=*Ai+Sgd5i& -z_E9-Y{~#o19qnT1o1J@4aKh!+Rh6!+@XUc@s#E-+{bX{m24J*+n8+jFZgP8Mhvz?7 -zJbuIrl_j55B?UcrPr{ -zoBL^Z@2d`U*&AL)lM*buW`6vlXC3(6GVPOWtLlSU(>FOXOT(=I$BoBKqkU0ikd>9} -zx+!<3m6p5j6&$!fR22=Jwx69p+u*Voop?v%?}M%|p_sAN6s_PBK~Rv6zQ0Q43rd&$ -z15I|wH>#)R)>^Ou+dn5N3{@Id^Ybb(m7rcDOk!gnEGwIP6 -zEg2}u|CuDJxn?}qJpXFY^caWoH$PYN|M7H{0abNPSGtst5~RCR;L=D)N()GrfYRL! -z(jeU}rF3_PbV~Ek-QDn=d#~^J_r^Z^>~r?)nOSSr7?<`h(4Lsw)%NkqX)3AUzs#f4 -zX%xhfl0yliRoWx*5iCr$|77jd?7Q;^camGeuQS&lI6>r<_(opeEjIirG2Sp}mfmM^ -zd~>edityzwHU}sV1*%Ha28yx^)RQygGU+#QaX^*U^(bx2nZO<}O) -zSAEKk-E^y*m_#yUfVH^wXE?L6kGWhe!L8wFth7i+si8RG8`+EZz%xEJ{(NL5n5(j! -zgz}#e>#)GvFZ-Sv;MlZi^l<1Z)*W%(^7=nV96MeQ#Db;P*VjglCgeB#&n#K#mru;I -zFIM)0q|PT)0SHcWE(DdGpl@hZnSr7~VxB;+Eo;TJ^v9_Hgg;>kaKXnFMZO-G6rS0^ -zE*mnrCLQ3*fymmz0x2*5$Gi>B5f@}()qnI%?W++o@Rv}WGA5=TXZPd<4u61iC{HP~ -z@>2B3t4rS3k)Y!mH>#kTbQvqr-J=i2yBAU_wdM0C)KFZh1s7)i&az&`fhDvTqNf)D -zC#oQ5dXu!j9Gp*0+Lkv8J&@@(KHs;s9N8~X5~ycLZPhsre(HWCP4LV%M;PoF{yc@gklaRqx9*)#$hhd+|l1fE=miH2$mB1xbRy7YB@l -zv~>dDk{!TC`H$~Xd3>$@!|~0xmm=mhvVSOYU_mLAA%pzNOTJYSt4A>UmR3Rg8!w&o -zst{QF1@MmxrYJ{i#9miQvi?WD9f)7rafh@--i(w4rc40YZBKe(b56SK0TRnlFy -zBf+S!OQd^OJds>UX7`TF{R*LjD@(^gAU$MgfNlT%y+v6aDe7hN)e3 -zI#+x^U$BE`xxt~@yuY7DyIDzGytqz6$=~oxUSR`TZ%2@%ZFN*L^3##{zDBSJO1AR1 -zfBXaI&Q0Wi+=*Pm6b<@OK4zPLSP5`F0wu+s!QKXe -zbaV}%9zp}-VN957cNeJ1240xh92_M9pn;@@wdCl{F^YBZIPAr+|sDgZ`=WNBJ -z(vp0prx;bRUcIIg0gB25XRWZ20y5k}0_`L_)~Qtg0K|fDEbgG?h|MtHC$nlt&8vbb -zdEz6;sX-KaR^NS@pl(tyZC2=PZYW`u8K{a(!4Naw-T?Tc08xC%hMdUoh(j+gojen> -z)gYE7P76N2`N#X;Vgxvqy@32R*hd%tuXXdAK*{u=X#9uYc|E+sVK)41vq?YBw!W*K -z>nP&TLF6C%H=F%_?sjvz8l)SulPHHbtRe{3Knt4DgNrGVuxTH{XD(e*>`f1?nD6y6 -z#uys)1k>+>7iFw;?V<26k(1ynT9ft)J&oEK{36`vD`)U=54_@1ltmL#qC@gZKG$@O -zcEuA0bQzD7;Xc`d10g(hhxEIU7_s}CN?H|Kq-x2n%{e)K=mtFk71|`lld==7#ypZ2 -zleg==F0` -zH`X?4b!PtVi!p021abq?(a+qGZ-iO4Iri+=xDemu6o|}9i;IMrSB~`3;ge_C -zqb5z~iQ3R@_~!ts!xXm?v#6n~+1P;Eq8)$&0MO`V&T-|a&@F@b)0h#|1P+mIV=P-r -zsrWSWy#Q*#9~dPhdu{oj7@dgG{S0;vbCenHY5PAczJ|Zdi&_5#zxY31CAI -zDPY6q;IL}v$F|{9W-7XD`;EpQ-ot8svHJ(57Q&ydE0gV%_ABl~r4sjr0RFzNorstH(u#71PphukiZ@p16;3zp59X0}LbyFDWH`+CS} -z@CT4-8=P-Kt?$ThMfH9tEmrzmcvO`4GFUneoGfJiLh;jx<~>7*It8fs^73XW@36s~ -zzaJ682zBJ#j0@7%!^ht+IpM^z$D_=oq5se9Wp#byy(#ZW2Rf_zqZBPdtJQ1Q;&f2a~?=i -zG(MivR_{ZhIJFs||*^b{oSAPf_Xaj+j9)UV? -zsRZ5X_;J{ZAFR9uT#DFW;iAWvS@RD2CX0NT?ipp -z!jbq)^j$#ULWSB{I;N`CSJK=0ALXKu?!%Yn#gmezCx_Jnw_#zP4LIUxR -ztC2hPkAuac+{D&2dOfsIJCHV}!jyZBlH7~!GF)A{_T{T<8kA|Et{79~n)nd6QOmH_ -z{DD*aN85$ie_%>TAY2X+Qud+!7YG+o=<<(QHI51%(I~1gd^P# -z_&D@=9i+55)tC$r2Y{;&29wloFPX=@eW^hFR0Si6w?jInK3(Hq3q`yQLdQ_kb+8C7 -zi$+a+@UL)_^38Q32{2}i0V8+`kmFMQ@8go!!S3cKgd6-xsjf_3~bq{jO#Lf -zt4!7yLPH2RXynT>!K(>$!7C#`$R#JuC*Y)%rR;^l_u41==&v?q%n73+5{~l3hpJSK -zAq?O8X8$+Zr;Q|O6`&2yx7y@VWMLt*d$Dn;qZr!GT_I|)Lya2l-pXkY5`0{g{2n~5=vTcs=noU0L^1MNyz>Dp7K>GqS&W0F# -znrUrM&wg`y{jMz1S}vG~dqurWT}>r(g#}74GS@fkrMzi2!K!D|0W%gqM&MliL_53?=HrMSGr!Q9Ol-s}gY -zdE#s5UkF+#pbR2qN(kwn5_-Oxzqg3vfH@_9Zw}O8PY#P$y?p0?W6F7DTy9|3KnjaM -z&^!M9Ye29WVM`f`_Bl5EO^xzz9#A1te9pAh{#<>kOd5SxtX+VKOHA2cVtq;>j>%~L -z8N}cyn2I8RiRXH*Z`f?}opob^;EfKv5e(xFhVxv%@ofY>2k3d|4?4dUA%!o`xO3M26apn73k|8fh(jc>t5I@L9d%`%R} -zP8yvRpX?7}cdzHyuOv`VzB@!p#6ecjy^GJhejgYSIFyhse8Fg -zbAzg&N32)oq1nG`=!*Tiy&&s7GjR0-;MAPIc-_K^a$o|rEQ_7ZnJc9r>R$~n1t$K2 -z){*R8fy`$w%<6UgTnX}gzNmXRgS8b6$}&ZjK_}@uUs-dw@Kpc;=(r_zXv$7b;Dtc= -zpya`l!4~l}2DjJtycu09q&XA-A`EOZLd*q_o9GrARwFeA8;2R~JO6aPcTL7`1RSVG -zaNgLuMRE>9pn=dFMyJtm-&9{Yi6IIRxhvfb$CAwG%>^Wzji{q>oMgbF0%kvp_LN0# -z8%21_yBIJ2e7RTD6tdp50(;68qHi=(qJ`O}L6b?sZ}skXI~nrVNcm0i|FK-&OThf) -zxiKi1JCiP~@{i+_%oC8fd9| -z#Qk3RcxB2(e})w7@k;jHI+WtWz1xm@Nvq{uJk!AnhLB9qk=c*Xy@{(3qh`8DR)^n3 -zlq>ZIF$q1ejsOnCFcBs?6^@n%^8|xpw?=0BSzQ~A>%1bI(51~|=~%)cAyJ5Qs?Y=U -z3WG53Pu=vi*LQZ#BRQt5W*n9!GkPD%q8Gs2697i>6Ov@zsvL{%8M=-y7tdGaAlqo` -ziR~MHS8YubA(?w?viCr-^pk4*l#6-0xo?KP=O>6PDUWj34h|8A -zhtVjf!6?x`Jp@imB^{!bupFB0JM$)g7DCsXsKHgU>YCfwh8F2bdqFZ$-T8IYtDJja -zmH>dQoKD5K(!91I$T^T?Cc;duMrCyE&|x}I6-r>mI|r*VuKMUlGb3@TCD3wfo{`Me -z5y_>Aw%YGvfJ=P<&w%w($dFU|yUVZ>HXZCQByAbnWEp4kc{yJRW4()3FeJa_gQ=*@ -zh&Ph=QaE$N`LC93zpeE@G9-MOYozjyKc`WgpIV&y0 -zuG_%mM0V6BN(EmJ*fS*YwngZg5+DW?cJ`{s2_3!>hs6BXi2Q#hqhTihc`LtDcj-D@ -zCJz-k0yv|7v!ZCO{Xsx|^~oaz%F6zjin5(hJhc9Fe0}eI-s3*dS-C#DV*XE&1wrue -zkB;B6m=eZjEp{aF*BRWP@RBpqYSF4pJl+41Ow`_yNPX_6Hqh3*Q6>GmQ;BQGk(RQW -z3I+W+a=2u-SsWi+J{9=SW~{A#-0epNSDSD7kXe79LU@02sZR@{kXIM-U%W>Q!3G4j -zAh(QM*D|x{L5-Gnf@v#rS@X_nRpE|@kcZq`@gSPw2v-Ms+zO%lG$k9hg*~MjIE|dU -z-&lKHp6^y&3LYpd)H8;T{)9JmzY+w>vjN}UIHGm5$f7A)d(rt$d7#I46Kz|YX^l7C -z3{oU*n=}~H^M+$i@J!OMbGW+U9Ff0?7^7{ZO4bw#H>0!vl7nrKqkhTPg~p|7&--@r -zVU&upN(f?e0d|5~9Q~V5!CaYM8yHcSK7yZ?;g!v+p#-P^_yi52;37%?q_iD|ewQJ_ -z;bH2vhfY#eT^%0ND}?R4n>dYf2vxVfEqQ=BPJJsnPm7b0x#IG!-=)%mE`|9;OxF9+$Kgp|t*B14ZO`eZf2j_ujrqwR -zOWd62vZVIuuf;C)Z?EtX<1KaU?T}hM3la4o`3Hx=!Z)M8SMVkEZ~ahMc6=1TK@4Ep -zejWtH`fKm~{w=0GZ8kuEbBa6C>Loq+3)irfxB<8_@RKxH!;KfnpS2nUjb240;8azR -zAT85kLCfv=#Mu*NrB7naee7?K0oe@n3dO`+UfN#2yMI&^@w}7S5AbhcU;a=maeafO -zqU_zlHS+U!(!Z)n5N2x`iV++-gSNBn -z^~e$l^{}V_F`sr4zxWo4U9jfT$}o})t%7%r7&x%hD0poHLwOi3AtZ}#)oAU -zPUXkA`1Wd#6pDxbrh@2)FXdp+9+2>z3-SiZmss@yO97mNxqo24Pm1eGhp)qHa2X_i -zJc5-meDbGyzaAXQ^icrPIu0mA`Ds({-Vhq9H&dV?y3P`}a~3Ur0mxbamEwTS!^!VT -z!(2Z);pB3W=}pntdV!?y{yqpyAOu)_uh|VhxRFIZI;1@BQ^M!?-qQzXZ0*pXvY(;A -zz|Hh2&$YuX2PQN;K>R-zA0#9waU$X$@}B39Kkup-uUR -ziW&C}(8YhpXpY(@>$IC-bVZiA)_&5zV -z*#P6p9Dn6M(S;2H-a5`Z)IXEM`*)hRb7z^E{u$5tl+M5;0aXVbzPaus`?w>=6O5<1 -zyebBP&_L_(#cWEp5a~N+mgiT&tyQu%;dyU!XA0|h2M$;wQ&H1LfZ -zA(`pz)$Ekc02PNORoc(r#Kz_-}oqb0OBIWQ*M(pSkTq|~2-y`s -zrZ#=ma<46$%1Oq3C)dS0(w%z!Vx)x%j|*1^EOHsbrC*H5uw)7MCV#yljvi;mrS5l_ -zxrMh3{Wj$dPbm8XEaupMa)39^Yra@^q*~l5x36)Iv{7>=YCJ*u{k;ZPJFH2HtC2lt -ziKbH5a2&s1PWxM84QVRk_rqKY_g|0bAO7@yFHd%6U)QQgmX2y0Fu3~@)Mllrl*(hB -zDKz1IqlkKJT-s6nLdCO)dao3(=JBTXBh-2FhlfBCOMaY-Xyu%_v=mf{Vm|8&m=h>ma%4ROW57Pq+7lfA9b` -z(bTWqdxpwr8C16t0D#w9Lep)*b(<$}Ds1nGA3)%W&y3VPZ4Q91vEgRSO74e<^Ju$j -zoGfprt6I9FN3DH9>^rO`uUA~`imF>Y3vuTF0A@I~?c?WKN|EC0lyl$A -z1kXJ^oBVN@M?Z79z0Vr>BWacS!_^U*N}T*k>L>;9PFF_{4pWQi9Q_P`6LTBjTbfMx -z#sTCVs9`qKX(x}pa=!?i{MIYY7DOyKJd4O#->b)VWa7l^pVTqBFCt3*bC#6hEjPr$ -z?c)tKI1G9$@*XGYQBlu4+ZQ^^TG(wcbklDk`P*KUrt~irRv(kV3!4}6^}rRaV@Pjn -z$>h6ph2+mT1*2=3vyGEvexe^%R$!8S1RQMW2RgzXDyYPqLyafrvH@ozZzU}8^bnEN$p_4jJwH6uXk6o)q;F|7s%LAJD>V#cWJ~-tH!Wui^nS3xX#ZJ%@fA(Rf=0Be@)6iqmfIW4V6iUMp8 -z6I#MF@Qjf42C(ceKbBZT6LT@|eImk@f6c4CBARE*BSd@y{%JCn>BwPYa7Vw -zh-MFItv8#zKxMQ2uuPGYs9NSk|+pub_ -z^M19^d+tb+1qs)7#J|3b++?PlI?r>^H$f!ozWUF5s33!vx_p1KTF7|!C6s=l^YQ&OOPN_%g|4?*w|MQ`8BrGHb0kO-qfKNvsM*Szez9S;{uoD>0LV -zYZjq0R2Gr>oe -zzdK0}r2|7XSZ**}M|iM~(JgbxIxb`gnY#sltSw8}etF;zG4we}-$mVLE{X|?*Ivt- -zNxZ@7Q-R%E`0MW5=j}c3U8gnTLNN^T`>3_*6kbwno6XEe4{#aRY&i|YUA0?9GT=D9 -zKRo^jNYa&!;6$lGr*N*{H#mtkpU+DuFa{nFfJ18(%l-GR$S}Xc*XX~=W6yIOvsJX2 -z6ZoK;f!>5aAnRL6Bp`PVY?VH2r_ovGaQddosPZ~}%xgi)I%NLF6qs?@U|-J>8I^9#AlJ^6+cFeHP6;k5B1A-@Muxh{Wy^cK-4fXtoIK3xpMt -z4#eGdl=eE`q8736-~QYAK{X5O3q=cd*n`Urz2J)n!ilCK+pQDTjs4a>ve`|`fX9xb -z4WgAK>X~_y3WfyNeS+uInR|=OI6>e%xz2MDdR=Rc{)%KHtPHX0*U^)OmL48JH -zV3?{he}7)~1=kN>ZT?5dw`XqEC{7k?P(NM90?8{VYam*q+zKt5J@S?qZCL*}eSG#? -zhTzzF_spYnA#Mu(oBnROKb%V#WfH~P;7}A;LXv4S&$BP26``L`c8Iha_RX7H=kUBv -zAm9BYM;jRrc+>t}+<^@(-Jy@$nzX5HRL9`uS8FAj&KBqT~aoSZ1>A9r=4%6)2$!D -zm=O>a8#;AFrWc4g6ux-(#hN8^XOY;M(b%{F*C@X^>g2PN2s88g2qduF>6mLMlU!uE -zck|#BswCS~%4j^RKFTF(n%i(90-g<^M4;}bnS=Zp9{tzO&pg1e!4qNwz -z)TIHN^_N)|p2P*ymq6AHDnndjip(U$#8$9Z!HLxURoqc>j70kF3`=%V@PD5CIbdB@ -zqyV)z%23QSQt6+7ICmRWN#z{;7Y2QXCH%7YMH1>_s)zIwP9%aO+tT9AN9(T2}%!CahYI -zZ5*C;CPPxqyrC=e}kOl_0E|o8aEFt -zvFriK{H3<0=l^QKa9-|kUp7#sIqtDPeFEMlW&l9OlqlYfy0cAjpRdl5m$pcUy}uWYpn1DVMN -z?@m=AiAAV5^{71LIJxdXV%s -z6J<;NMJ_Qu$c7L$mCzrwkv(Qf3`76m3m-BE{#5NZBlU~bm>=+jpf}p^hcEk#bu#+2>QJg#b~Ee&+hp0OlV?^9U7{rNGvB|8 -zGIFlnzgKa$NR5liFb~e$43pk%Jc+;nz+A7}39>dybjx1s8_o#N1foMke8ssXz7=`@ -z^bCL_z0K{hSp%&(tKbo@wC^?SCm*8P^ZsK=+lta)?TG8@m -zy|Mh;$_I%^BW?*Qq1QrNAW7)WZJTxT5)PW4#a6Dm(l`_j>rlTykf3Z*d52w{1KHQS -zl1+n-C=%*?;z%pw_(J=KFe1dVEQNfE!SjrNK92F=oNl%(mzXndyGxAr<4T&-rWLm-bNDf-uhoGf6^NU1E -z0Ix7!^{MxJrJlyU@EV7N_tx>lkg%KBDwm0nM{Si=1M#{R<2OTE3RiR$-4`MnO#y=@ -zaQhA-&D!eWJpK1KPD-M4%FE!D7OdUJm)&VduhJGb)b|#!>)H6`M -z0~{J`F@H(&eRW{b8Gb0y@f!!aJki6!#tZ)*Bwh``u#Z1`ru%fTuE{E0mP{^FtZ5>hsXC*Q?(8@n4MAL^K)(X6B{|1Em~(Nd=2lkSic%Io -zi@0_bSmU*Q-{b!R6o;|Wfdxw~`tVAcQ##5cO|dvYzbkUzUq6bNld?d+T~IT$_^8%P -zZ2U9hx5i{;=`oNMc|-DE&d(arp!(PwjgT3%>E9lD7)?)kxLk8`Z|YHxye#r5?bI{d -z6EYniV%(enwI?oHk)89qsm3R=8(zEmkQVB0vF0$gW$m6^y60E=Pgvw4 -zmq$c`6|r3JLm+#GbZlqM$>Kjb$}XNFiU$Bo6@&V9Lp*iX8)GfM6I(G{#k*`joN7gl -z(in@pz|8h`J-GWZ_d+{N@yigkpFik;w|qFG;^R8ROWuxWaJ!h -z%?MyGHoh$;Wp#~d)cK@jW*+hrDZV4Kd#f0US?ek2l%a-<_dP0kuWwlF2b=f5G_~-O -zyty>3=yie>uYi0zot6ph;aHWyVSjj}EWIFvJOIpbM&G}iz%YdKMsfXRc%YHNm~dzY -zGh@Skt63o1OGs$c{%U*f05Pj1sEtP2Bit9AX{zBw^yXsn=RKrS0@!_>&82A>u;(|L -z*~?hChq_FzK;I}aCI`sTZ|gUB;uBDzw-ImEx6VcMvhlUfha(2N^JMWOLk%j_{}s$) -zus#lvz_KHC-w^!zrC{YHP@(D6qt`BA&m&m*1s%FblhXaPzO))nWqT84nM-~#1Egow -z(83F25dqv~73a=eNyE>#2_tdXCZ#PPepUav_x%uA3D`v&^i8Mr-qhFYQY4aFTg+0f -zWV@s^JQX`Y$7F~Z+ei&@#>mK;`ku?)tmg5(DPxYB6OT3W7CkTb_gJ?+X$P!by@f{= -z;{qGRCDG4`MdnRr3lLnFvyY_j$AgvD^8Z+{8B(Ckz$_CB -zs%ZZysGUatFhuWOo($msABixjdOk4lkN4crl+k%89HZZuQLi4rj^GxLX9zrDu(bU1 -z^yMqYl+Y*RVl&5D$h#2=gs$*H>|7;RtE|M`Ee!>~QgN5YaQ;I=x^>E71lwTu{9wO* -zy>7xy{hE9_N5-4SXt{;GJju!a7fQ3hDMPa}<&Z(L=j|r6?VVmum{dXf(1xqPG-zMb -zA@=WmqeasY;7N^K{2L7SR=$07hdto_%74MOEh+~SChouwJhv1O*&cWOjbv-~(32Oq -z&IWjUwzmG#!cZR|Gdn$2r|I%*JpOzRY1EPZHz@BomMX|gW21Q4WtGy1`epNek-%{w -zJMEzpr!QyjU_3!n`XLBHv#aMy#E?8%?J7~zYv(XAUdL&$4`gnE)&vK8(5(_l=(Ce8 -zr6^oP4b)|w3@s-VL?Xbo9JtxE*Wa|S3xq>mJ5#~4-{_V+CD*&w9V(J}8asT}_N^z7 -z=7&HWm$(GNv}73HnZm -z7_p0(AIjwQ4ZeLERvm^#YCoL6q&Pd^?7LBfH-|2EFE#8wtdaSErN6BllR#> -zpU%^k)~Z*1nE|RF+o(s_9yOzzplS&l?x38ohj7N&1)}cZzSp}a;xU3nrUu(%&Zlwz -z3YV2&8mr9K#FV@mmf;JmV$xB*xVz=c``w6v`ncy=BbYFp_V8|VTf-xH#*v}ekA -zq~%Xf9FTJZIuc;3&ZwGV*xg*hXRLSNZv5k;v!aQPxUB>?7<&UonF$@R#T+=^+mCi9 -znpY79E)MKNIBFKAuY0Bo3PwtxV4v4z2BGK_-%k4ZU5y*_PnNJ*PTz4fIQe5(K@ -zNt-b?E+5^0!AA0c*>--fO1__-TW##{@()$mVYeUTmc{?uA_Q917di$1R}!nhW(^P? -z0QEW0<+0`4qxc!`UfO_v^Plhrg{(5ojM~xLgJy6L)S6@?y1d-;oeVpGHyL2CWw?ja -z1(yg4R0d^jCkP&@JQvslZYdzAX}>rA)`egu`=CTaezcTnr>4_GJ=*!7{jrpobXRv+ -z=fe2ZOBiUD?A2-+3P^tdc5FWNYp2DCScASnU~!&Yv6g%O$`Srw)F<1h^7XL*SHKAe -z-g*oqAxTxbP^U{9<*ORO$gxIKw^#`^w|`?VFUl27MIo1Jy=f(mQKX^y2~Sd31~pj7 -zcQ{Tzj;IPOx(!q9F9ZuB9S0Mn+Zvr$XKprqg&~IX#wPIlyR_0<+1(#mUTL|-gb~@v -z*Y6--ftFazLpUdnrOW7qDWhiI^i8l5t+{O0WxTpg`8X5=npg@PP0QEA(HEkmhr&?|1hN-U!97(sI31r6N{!*OtfjpOL -zN3AOMu;N4_bTp(CNO -zV&aMffvV0V85H{Q`oEo`FN?uxdJ0;jI62YaS8)X7YSHFa*>t+G50MQvRprfx{tr@0 -zoRD>)OQy-pcmpew?azF@S?SKo>jQLg=KOZR -zO#|D|l&?|w{cvY0o9b)j-p+tMIBBgQMz^)8F741!94_F#xzU3)4r?Y)HwFj;U#TOc -zA|?)RP&K{FxgLJHHNp>vJ}865_znFH4Afohskf=yJK?l7`wJN{(C>)P2d`k=M6WFI -znoL40LCMjwl`%T7fg(yl?UnwI%gv&CrUEj1!NN;&xF_kQW8|CfkR85-QmHoS0)3K& -zjU(Ec)c{$=QALv?9U@UeVhD}$LERHoE -z$cBqf7qUMlJ&~wyF9z;o`>Q%{@(S~Q*2;qP-KA;to{BoJzJ@g3w%1%ihDKZR!&#`N -zlDnV^?vNAZtjM%WKwE-AL4d;qT}gT53swBUf_I*U)t-P@01zk<-59l=)bZf0jLj4s -zSG~g5yWc`L!~9{%7?8dWD6T;4P$vT*r8h($e}FnQP_(MKx)u -zv^jAlgE|V#HYC!S3skQf#$Sl-k#u?GWV9{?)kK`=0d3P-le=-qonfRaR&B}rb>l92 -z>GH&|Ht`H%aIhEejs}~axWIjXV-;_1?QJ!hv9M*#?@J{+=&srr^;0g|m?+HX_!uQ3 -zh%g<+jhM2iP6H&zpFv$IQKsuhpFBpF-#V8is$F0J(gX$FGc+IWKBdU^(l)i4FI<*M -zfQf>U1|^oC*F&f0QT1)Jc*$^RavK|esfE`J-;A84VG!BO5W3F -zV0ch5ImZQE|3xinzlEz?HwPr2Pfh0chQ(C^Os7;4?gq-$UOE~e2zJ!VvK{qGUQ|PT -zRK@CyO%u_xN#6U$v_kfVG{eq7TRus5+r--Gog7I1Wcs>$SiC-*D6tFXa>d;Zks2yF -zkDB&%hI8X`YcrDJd+P>9;Ji@qCnFN+VVFxHET%$fWRj)?oi@lNel)j>TVMaNfu(B} -ziz|@hd|4h6nP~D13~$D^B&S3UFvmZi27dpOc1GZglk#C0n`rP|B8Cclc65C}LGdY| -zDgfjcZDStE$m7WTg3mN9@@uZpzUQE4yuMD7hu%ef+y1@XOqW?A;GjRsDwl^;RwV1o -zotxaXt5ibfP=6=Mds&&>j2FzQAm`8f+Hl345IL>356&Clr~n+4KCad%GsoR-Lr%_D -zG3o3HYq@tMQ2-GGh^R))tEpc8u(`40NCzr@9;R_VL){KnEhr9i!z43Fn~RP@L5!thQWO%N*Iu<;93 -zgwJ^1(MJ|elmuJ$G0_v5Kkk|7C>Qt6=YPToB-@5jR%q(^p@FtFAI?5Y0ZiCCDpiBv -z)4Aw-C`&;gS60J)HoSuwlws!79WIKFw9&10>bbhO=V8n5#Rnc}9z<5!OZ?U0SKnzw -zio3Q#yW6eF8kd>}O=YssjU=G>06dbTGDTR$?I-?36g_V2)-Mh5L<%cc4#SDT+t -zc7_DP>O9Kp5!6S_R##wIfPOGU4e>c;p@)i&9U(q~t}^cL5PEz?&A6CXs0{$(|{LXGl)+b`jvb7RSi3;(FAhimB8Uvg& -zmUZinoPSeyKgmrqc3N}d6+=7}7yL$i0teA8<<(u3*P+1~CZ7+=uxG!z1;40FiS$g| -z?EAxF#%TmqW{}@D%Nv@*`<%RM9BBN!L;pT3BZgIH9jcB{{{c=rw~sjf_>R}P&Nz+z -zqn2)Nx^Y@dj7q+rbRn|egSmF!gaGF6#RPuMlo0=P%dieaxj<=q5AcAT;n{E-b~zUjLS0OzY0Y_!KYDnNDt!l1>P{Xa;p^Cv{p -zX~F~M;RgYdwLl{0D4w=J0OU@lgLzWP3|>X -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 -zT&)4RJg1uu6<^ -zJBJ>a@+g0Rg+Nd;f_s5CQCYQH9|LTCCljVu?=S8Z;dGLcM~2IRVQE%stg -zF^W!_?Qdb}t54m#!?nXpXUjKkOBIn~;DL*!QB-v(@kNJbEQ?NC${7?(&#$7Y1ZUza -zv8PN||M1#{sXO6EW0fLlSb2or7t5W7q}k%=>?~y5VLNf!T&A>*y9N4i77AT8 -z$`NytPY^@qo!T@V$7L(w6ZGz@x#OWWH`x?YZGtH}W|Invrh;0s&VYB}cFxla?8aTd -zbGdI|y-r(I`24q(kymIRzpx7yPHJQG9aex1rd>!L=*e2D# -zJi1fvE7(?643ppK(Xu-AzE5;GfEQ6#NGF5?P-mMb#Rxr?ej5DJNF+5q1G&)xq%iJ7 -zv7N&d5CY?bOm$L;G^1%nPB>$5?Nw;xIX*kfAso~UfelHXW^Qm91+6Gk@$UM*QBj=k -zSLXm$@t0)^piW;z`BDONS@6{(LMJex@(%}gx_Z&`4upm`PctKa1O>aWqj;+BBO?0kPLI)cCG@U7(4<_ihcad}jR!aEt| -z@KjzbWEyZs4loYt9Q7#vh+L^|72g|+F -zwCv;63p)M69|9p<61JD)7P;zD59uf!RqZ$2I*ROxo6VC{#1&}}3`N6-DI0}}@UG}2 -zS{e3^oWU1?8#rZ1_zOWfKeN+_&>?VOFA2dA)XyE%0nNFiRKWd`Bu_!BSQ`Ndw?aB_ -zUtV#ktbI8OogR{BnNr9!A(D7t%`1_Qoeoz9`2|veyb7fPiy;ny=?P=MIceCD5SAZU -zvxyq{e;8#Um!4yN+FG)vxLe2q-u`=3C9VbFWCjl+hd={ -z%ix#NVVgYQ{B3Q1aKeNv8a~|I_QC383-{SW3hQSz9hZY#!{W -z)lpp_o&S^*DcoTR6mHf#22kM9PA-)@kT(N>EJAtL0(5f9puj>S;?{=%gM8!|@lx=> -z5D1jXb7Maf_WL*RXEOI2KAz0{Qwc`-~Wzb9mw=SxBH4 -z)u7O3UkGA?HW}wkz#?$9M01cYdYx#s{p(8BGxo~6GoL%1HP~PXT@aaR -zbkMwS6aUx2mUl)slEZ**ND8J;DPa((J(ptMYeN(Fq%RsIumV4mplWd3e -zCcvr>`S2)D0_*K#hvvzkXAv+6U}U2+cQR5-V#2C(GJ8Aj^;s51&uII;qA;ggX79O` -zdn627*w#1IbAXJq{P&rs<;Hs1rQzm-x}0^PJ_wQX0@znwIQ6V%bhSXOzFs+jibZ_@ -z^9Jxa#6;}qSL(ElB+VX1?FgKRY-YlhABF3Ep&(umY#Gan`EbWQFQuVLhz}Q~p;|cA -zYH&u!2Amu}Ec#dfx<2l~ppW29prF3p9x&7FSt01U;n=a%_n_+|x@smStP{g@|K?<$ -z^odsjP&Cdfo_6pkRK5+lHihT`7s>bJ)xKLH5+(azO#RJe<08gVt-`uLRt$DYrNVeI#!;a6VQ}6bXhGrj~7-rfd -zxc~0#K{k*>#}KXM5<`f`QmFka&)sBF)yLe-6L1p&Lsd&vg^>ugk`^nyc-TIMcDamb -zDY%~N9jLYGeY8ptJi*mCt1~a{CfudK)@!Z&e_W5x{P8AE1jL&6s{uxujode@KdZ-3P}+8S!}0|Jj<$2C+U6L^grnZ%pKH5i>;O~v)S -zL0cM)sjl|CXT*jiUAJ10AE0$=G!lk8J^N-|8EZ$wGY^l~40GNW=ui&^IrK%B`$UB( -z#7iSdOBUTnmYon-%t04n$Yd#VpLs&@{isPJDm9RsJ-AW-+5;Zz>OLuB*L`*BukDH6 -z?@gI40#a~^VTG@%gk4)a!H+*aUE_fB#TA@24DEJeK14<65wjI~Y;&g-POyY1@NQHK -zP(D45S#!+tC=)0PLJ?l~ez*v>8{OJIJvjp|7(hJU9JIcxrg1YPX?lE1$$Oe!GX!Mm -zfeYY;QTku_L%PTVXr%yhA)DMeppeiTp3`;|Pu4!EwDTV}bOb~rA{AzJTGSQ2@FtM1 -z_L%Q6e&Gb5V*vhhNwh9zG|V9qe>|*NWWXvk>w>W%LdgytzCj^j}8Bjg7M&|-gIZ}ZHIG?$9}fGbbe^`AoGBnwgrK1{wQ95 -zF_MoO*l?ru`$9MgCOfF9L}9HR%wz`uQramcbamG-;hjV=aAdQ59iB3-0QF6|Qj!kh -zD0g>_sSWMSHyzyj!OuIx5Rk>ETd6&|AIK9HV{uEZJK@`UhVzzmfM-s$|0q4K!nkP( -zy@#OhjvWtY!5JWdIG(I>5eobL5-3b*NG*3)BSH_7t69kuWSugueZUk3s{C~_=y4Qf -z&=lunxukSortt1>I>y*W1eDCCIhkf4vJgA0|H3BTET-zX1gN=+0jPtn)!3nZ6g(GR -z7#*U*0;Yn{;ks*^hO-M$-~O^|+>PL8yP0z|G^&>w7oPxsh2X&&V8J&#y{jgp#TI4y{XaeHa+?Mh{49F6qxj1 -zh(s`~z0PwRyXL_}U=!R|ZR^52P({W2KeMG^^7u#OzQ6Gv -zn9$PKR&M5H<=+@yaDEe{x}3{=^^K1#70O?z4c -zM^30k$`Guqh%#RAHCJ4k>tdVWcfb;7v3zes(8lAL0~1Fmh@^ -z3OX_rpp6gH+vQ7)KezkzILyo{>2Id_o51GC-C6KsiAapI*n}sk7F~8VG4T6<`{BlR -zRARoKojdqg@gdS)tsvE=2!Q-S67Q>hSc>twhml?+Qja{@f2i9|H*FvW(5mL2@Sm)# -z;y&U4l*;quOV`Z;pC>VUz$Xt#zfBpm8l!IZYt -z0?ZCzj!mPc#p_igBANyjl2p#6bZ=;$ot8MSFsc*IeOi(LQpzfk{*eTsalH6!l^f=c -zWk|Tt#TW~+tk-nfT&*UXhLaTg_ -zjS!|NeSL0*G>Y&Uob@KBJ8+&E{6fNLKRt7&`F+fxU;WdYb85>{*I&!kVvw09;C$;` -zINF`Dj@0cD^i8xF>n}&JDrN=2reUpFiqx{Uag=OvYXU&1LH{7%A|l#fKe$7`O7z}< -zsX=G?*?6zF&_;d|IZo)1#~(+eY&yg{%fO{Ybg1Ck&sqPXX1X@pw3h(xj|21hJN0g% -z1GY~~MRfIJ0JHPnYD|}EOuB_=2`&QOvS!uMFwBSEh?Mx^Q`iix423ra%V$Z&ehZ-+G(Iv% -zev14W_WDgjub@E6WW|;q*y@lD@ww|HIjL$R1lrVob4{46T4o5qoGRY>aOk -zMD`@3GlzPd-`s>)`6hy~+HCy-hfmaeod%p|pdeLTe@{O&%c-5QpC6ht91!>;P#8pw -zd|}Hk)qc>_#XF*$ayI!au)*~$g=+OhUV#Haa)PNR-@n0H?ZK{|B1jncaCH1{(1ZEH -zN6nV)fGVIg=Y~}6(Lfti*llQ8$0rY@t$;gvhv+@MaSY2T8uBV -zLKHdPGFZ#>^wNt%PpKkZTw5^j6om5HnXJ>~a-SZ%M?>P=DQEmJ0iS$XO7~Y=zgP5@ -zAGHb}15UabfLbbES6e%?do4o^M6v+uO1O;Wh*a3joJCboESmouu&2nu)0kDK5j~dS -zC%gikdWtF!Vu^UYzn$zz6I?eF3>ws%X-NeN?g8^2(U^$lt(&nr%uh77>d^HE1S9(M -zLc))B>u=uy2^R8Lv^f1u1qazIuIGlK_SJ*HvEg9*FCk8EfG>e$>!1tX9V|!>bnMhD -zpcyvQ!X!fQDlw#7=;Q}NcK-`0+oO;Bco9n)=**se9~F(#?f$= -zYpNH!36j;f6vwKTQ0Cz991xt~4sj|#4Ng<#njWomSA6-9EdHV&66e;--zS>=8LQ_v -zYQ{G1(ycr`T#?~wKhnqSt^a&9GEkI~e>R$vma7t6|E{>5KiKdQhdTW$<9HbLec2Kx -z!WK~$C=6Yndk+hpRWOD!#$J9rL(!WVo$+FW;Pr|*qPuf&Uf4u4&H;>%x4j?@xJ#?v -zGx^lQ{gYwGz4l~xgOi|bj-wmu3T54{g@h9H6^aXGjHWXCUL}x$}d&iML%jqjT9bBhMv9I3X)EeR}XIsab -zyn2*}m;^4S9zDr(9wmnHEJ`OVls*gJoUbG2oIWtVRNm+634;Y(`W+3XVux!MOS{}? -zFU5IerzVl{9y;odjs2@^tzsZ9px>m#>MO$;igb#|;oaf{<<(e$mPfq70<^pG=Nf(| -za`!SGtoXDom-c~-LB{)=)x@sH`BpYup~kG=zr?3}P9aD=jM!^>;eu_d?!CJ-4XTe$ -z82gF_c3)`cOmB}qx@)6TIT+Botveh71y$H!gRy=ysm8Y+0v-bKQa^q8vc)6Tz)`)Wfo -zgu09_d~o39&)cpp^{ms@uN7b~BDA*99(R5C1j*J{=dC%iNPRcb8BDDE{Icy3KH!l@ -z$`eB>up$U}@efhnOlYA`pZ(v&&% -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 -zTNouA-dh-Ln_DlPCx9KTG -zJc>VZTP*lb2C~gdiXsyoQ}j|1}8xIcMEqA(r8jhj9*RR0EMdU(*d& -zy$V^?hbDdZ24#W-IboZ$;@!G}nV%qg@Q?gz#hkxsO4FjWiD(JiN=2>E!5UVbN77eI -z+&Bdxg9QQztN>w`t`tTd^@XBx%ss~VzGPM%vlG2;wn6>b1P4^eB#b9`JFMvP4A#xZ -zGP?C_|2yHb4B#~*cUEEiW%au%e~@x;0jS>xLLt}^am<_?S}=#5@a?Lf@F-EKL&eQQ -zi^H;=b7Qx>i@{el03T -zr*rX3kwYsN)5y=aK-l#7IZ(%DP-zn{(8}1vvfb>Dkts(q!pGWK3ezkDsK5K;55Llu -zX|fTd*NOP@p>%qsdcD6_SDzq=8Doj466;{^g1yS%5D=nF5AScl42YocbU&P95Xy57 -zt4PIe2D#B;<6z(WdiA&_WO+PkQPQN|Q2qSTn<_<@m<`jBuJaLpy`11g0vn11p0B?k -z4qb9eIPxiT@ozIK&8qzPr>O&%cEN0N*EM&9Iqh7=Q{{bs704ovrY+RqyJlkKt0kR{ -zAA?7_!9o -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 -zxZKuLf)ZHa_4e*404&%=2@ZcM- -zL$mVBupVWOO4Xr#C@D^dRO<0j2QM%?0KKx)7sFZ8lu`9v41zpP=sXfy?`XdL$repp -zAma99b*ag+^G9%GUyRmR$7bFNZ8wS&Af7l~{SJe;Ug?7k*3sw*$mL{0TfTRPBklkG -z5AZ5ukX)73m`vazxBnt{hr8r9KWtwk0*^mPn{J1;D14;|Rw^wf$iv;V`Ymfz&_BeB -z1#XBUo0Np(1Kp&fFujD9yZ@+TG$WQXTGemb2lGSvaTi{+FL^+YU!_5zJjD*d*X;!R -zt8m%FhDr6qKlfem?`N#ZbEClb&r);6cXwf1%fvgJyQU0$W*4z50)S$IFU4JUGU7>T -zFJ{FDCXGS+@+`b9W}Kp_Ru7Ap<&-S`X>Z-4#*sF3aSshZR? -zUmzR3EF$1Sa#Ev+RNY~NtsX#MCe!+rAh-7pbL9!UuIje7Hcc^ffK?(bxGI;4#8-rM)2v -zv)C>-nNP0Ds@0TxcUbOs-RMg2ULTM&Pp2nAVv5Ru7O*Kq2ZC!xn05+3g>PFho=th* -zi8b#1+l+D#AviOOS1EhB;sY^b(urLhCAzC6k1@4YbMd;}{epOM)SLct}T+!$T -zjDijyzM10^nX8}c;=t3NA-TYUEroIs$A|3jqU^#JQtC0T&V -zRbWBLGmN?pa}RDOdz<;Zr270WKibTFw4*JX1KKraAj -z(oE;qGje31Z2DN$H)reKU~Ec&_qjfY+iIVjEoz~*?r|o1^y%fp$g~vr(QqEgpc6JR -zjuD7LjVFMa5chFAsE{Q?eh^h&*8DHyrYkw -zz;&}HHa(ku)Y*(iSMHXBTTCNf?Iw}!y{Ic^nBbRy5MTdh`ZNlQaM3?zE=3iZ7K}bP -zRS-MSmsP)G?l-g*Xf0atjZmRy_}hM~kt4Mw!?#g3gMBPhN;Q6^B16Eq=lRIED*q;^ -zS!90h$!g7sjc=?dTqAx9euMj6xZ7@gr!_-)_2K|#p(}?^iUapgCT`*UdBsOa8g4WX -z-bh$}fvC7psR)tIjC4G_1W(N$c -z3o4h~Ecx>^az3rLRQq=7!{P53@O3T=!k|{9o_k?JArVwsfKMu->XdAo9bQ%J)>>=| -znGq>z+L@-}zbYs@=*o5jdYIWeW)JR{Vvuc-{Xt;A@wFAkID-05k=%|7MlxX4fD5xl -z-n0lVmas2+P3hG`khb>2lrfJtVzRDiW(FhbG>T$*;Jn;?G`I`yq2@IUUBLyc=rP+K -zgn>hvB5n#gt}^&){hGM#IfQYW;e=W)amss`P)tBIHV2bV1#wgd*^X7Z-T-H)OmMGkMpn3&JS -z`8vP=fp5kP5wmpZac3wiz)tTV-ani>b})Oz5q>$g19JdX<4Pv&{paTYbgI -z`ji*!fjUuA{O!mZRo11U)a1>b;pQ;PIJf|ax8DGG(HXNW9lEYzLn_)#t2OSb-=))u -z)Q^`t&o<{=tklQ|B`RjL;9dnFVydZ+(Z@78FqTpRFYNan#k=!n|Jr|O)rU47NxQr! -z_=sY>mHHnes%XIHO5IwfF5 -z07_-B+v8)K-NM^(x2CC+<#6}B**mQ_a(gvCCf(Xsnf9eE|Elqn -zsY)T3iBGb=%cr!@gzZ1lf9o}PUL~1Ip}Qp_WgJZGS09$1G|FC)pE#P)(2n3 -zjf;cQi(33y01#VjXa -zy3Wb@m9L9xHn6MMnd_T6h}J#pG!~%ke%ksQ`wY6V@Z&O|%+_9Euq5>9ElN^pJQqo~ -zXZ0;A4cE~O;fVL^Jym@EmsxG0J#slr9qn%eF#qU?N->udTIy=g!3SlcCPsf$Bmhtm -zrPRg(u07HnY$Ul#e9>2vN!K^15*#qJfUFNM(>IsQLSHXbdO_{{ -z(_SK4Mt=~pddn<=MU3p2&09XFqA)uEd*pyZ#)wErzsn|q54CLd_R9m@X{M;xwuOSW -zQo<$t=$t~tD7leg*H0pUuF@VK@wiyV7%8MpJ`YOAp@{7_5t -z&Q8gQF>FDu7!Dr%l3vE>O4`v^_IGJRMxAda^+$Wo^3 -zN?_jARJbTzGbty*J#X5Z$;~LA(dE2sQ-wSvL^M4@?K5vP#=8+3ImP>DEfG)AI+lpC -z-(g_lus5GIZ(D$4!Y9O_rHThU|HbUa9`?`Lh&OiQErKp|hFd8nt5G?$&Vin4hgT~_ -zK}LV~FY0g2A(3$l9kZj3b2ohuq0cUXDutEjB|CjUIxcy1*yv;t^T~Kk~D}bh98|Bl${igrt2Dn1P -zVLE2KZNkO;=?;WcEKJ88dIXyI?rjRFzPYDyMmK#QTsPT=NvdVfLc~UG3?5%;Wy^Dw0i0^gcvM=7m0Jc -zM^IrvPorSOk}WH#`077>ED0Ww+o88F)S#=ph0bMnMaeB4E}jz32iqbl=k@NYGAOzU -z+%oGHi$%DR+WM?V-Pfs~pD%}HYoG70zl5z3Yd)CmS!{l0%Y_t{pSDe6=20+v9XfuE -zi*KGUbqV~uLcfOqiITomZ?BJj7rO#)j;)p4^R0@!U2XYs1j~ug|7HqujRpn66QR;g -zuAC&Yx(D=+uX_chi~g9kZp*k$;GZ0R{DKJaJq?zUN8ri7;s4>3zK}`mmEL);GcOA1 -zI5y&2mncjuBW}D4x*lJX(KFR|wNG9Jkn{7#HD0suLmefQtqd*vRJ6Z0mD-EX!$7SE -z1$d7@G7InqV@AuaEb4sVNpxuECLrnUFjg{? -z(^9!7B#DN7UPBZd^gtEwvN%8_h4A*GXI309U3U560KIFge;;&dg-{b)-+rV@Q -z)lht(v%7CfBCjL(vx62?ye3-P|GJaK*gaoe6a0xQbydtxC1`Yv%e9;G8g+JTjQO}I -zz7mU@Z)9_jg4s!27X7j<^LvCXKT!smY>9&BrRYlHrjQk!^bAuKa4aI0UrP-YaKyW^ -z8)!h8X%LeA+OLD@{U(+O)vIc)_EB!F`;mMOqGFG}IJh5?jM!Z= -zYHpelZQzja%novJjFV%izNJ|FqGBySVWC4uMn%sALdd`Q?fr0;SLEIfplNc3M;hoaQgl1}u4 -z9UKw~b)c>?Z>%?&uFH2ScI4yuSD|ZNUl06=jES4w&F;k6!Y -z8}4gKmfoFLcnFa`!PyX3KUy!o%ZpWd8mXpB#|B-t1_tw*!|~)>4!Bj3<88m<7O0qi -zh$R2fbd>>7wM|r{r9(ocrBk{~U@2*kMg*ipx>FinU;z;XkrWAOkPhisy1SM}nx*5r -z?DGBIyZ1i*%$##(rYj`bw!XinDz}1vL9Mf=d1V+OLK&b8xDEl~J%a3PLzzn`Gl;AG -z^40S+7S_k!Y2K94Ar?D$D##@Ws-W+nrozB3$Q}EYTBIoqwN` -zaj{>?9n$#=7sq1f2v=J=A?NC}0X2}|K>L2oh7Lw)y=snRg*QS9Bzpblds)CG6A#Xl -zE+Of2=Rl^9WbcP4(NpxiS}tvq#}*#``I?5`LKu)(zUc9J&kIJQ`XzA?;lF6q-v$|@ -zuxv1guP7iy4;^{c;oo|;oB09M!Cyw$QC#o3^%U)zr|+NRfq|vK(9^9205E&=0>AsI -zuvRqBpkan%A(T#&0>9U4z{ly|)8A^}awzbbn>l=3tXpLU(~1yeOz=>~vqS>3NKI*z -zgRr^sU|om>HIpz3MUB=AYhoi4#1W(&Inp~aJq -z1HQS2^H%CVwIZF$KSZelj@5lndxx?+CO|0kBmW^LcmegMc^8-?K)J=4q`;C9piXY7 -zFVy2jcVi;SqZ8ovC|ZTAROV$)F@)HJ1FrDG_y=~$GBa%)fVmh7Y=5jkb4o~vS~$33k6Eut%*VDCR6Cl& -z_^MXm+1+0865<)l{@j%_9LCXM1y(El-IGI5Mf`2+kE -z;F&svl_e8ftdgvZ4~7dy)6Lo)BFlNim4H9r1$t5#-e8#;EwH$qtc}ChT1G|}v(W;^ -zj7j_(D7}@jWF%*{kaR?XrW^sWC9j5B>hMJkN^~YCqQh5FN5tH#zVkb+M^4rZjPxa< -zd2B%#nm-14mHU*90&($q8xYqFE!Sh*aK~1K_X&y1N90?x;a)%N=G**vB1R5~mtXc@ -zJl=IgcX%w<*!2DOx#s2*_zf%l_XB41gp&aqI8;5ePaKQqv{d`Uzi@`Ya8b=?HX`cx -zmp5?AH4~hCvWJB$hZvHeIrY>^^K(rO@*u)~{Rp*0WAqtVUR`IJ)6llAjj*OHTqOfU -z3GlaqaEBec_2X>f=iC?=%XETHUtHqd8;1~dmAzZ#N7g``aAjwq=_p7z^v_T3?d`(VQQ_; -zwA3R-|Biw(y;P&OFX%PO;Re|G-0{-GYEbyn5BXFEp+bOWkQO!OvT2m -z?&BTVQi%R -zWs<8L9>lvhR0BY7fmoo!E~y1_^7LJu3Q^N)9PImZUS3=$JJ)H~5n-GMU)2r4q8 -zT`lEV@R}Yz{V^7ToJR{J@$I_74P>KB+=)7EjRA6`-~B~8Jlx(N7Hv@e=qU-oBHk$0 -z-rPSye4YcZQmGL~R@>AZJTD=z$f#-i0>L=B=KvCdIZPkm~pdXv7$+dX(b_LX|31Ds)i_q%YZ_uSkDTGnz86*7J&%46rIg&<^unD^^|f>yYXco99>FXO8nc*1U&BIL%iU9 -z2}6QS^>@D;9W=(7nO0HbPbZozg#TpxQZdkFP?ekX(jR1#J^e$D2mOk6eX``Pd1Y+7Tn?{p5~mP(%8uMDgG$Yx2f9^41{m#1DYrD!6t?68ef> -zJnTUtyn=L~mE{@q+Xro^fvySbh8T)?jb6^{q_=ZxM=vGb`CwDwF|U4R4NSH(Eg)_x -zh6`7bXRYsFf;2JPT(}kVK=h}3k$}~W;XJ#=VJKc5}|VM+Q4jV -zUD1)g&9_4yCwDDKE!%-bK$Tj3QNju-w1kNLR2urApXO3)r}F9f^#}(e(&A{GTWomr -zkg*kHHMa;8{(2h%6<)mG{J>GC3PTCuL@j&+T80K}*F%3@##yYFD390f@Rw3P1K%Q} -zqa>~KSS*W+34d46@A_6SDAO9gd~+XH1r4y`+E?LM6N_*b&}mh`*Tg-q`7h&)&_4z^ -z=k5uoZ-i-Qq3a4Gb#0cRHZS|GBpz)by4t{3_shHV6}LNM_$ro&I#SZRwe+Y>776g=bDuhAS1j8oRG)ds^aB>OAY=$rllLj?d^Jsbz8rAZ`R$HciP -zs6js|ug?tp0cdbF;BV181&rJY_ObxNTF{H`uHskit_R*%rMyO+>P+8Q$qD5=T#Vv0 -z;nO_IeeofACj7t5eijvW>npx`pTt*m@H@p(a?Xe8>r^UoGRw4QXv^SG_N0`o-EB;Z -zodwBTwm5F?yQbA-6}Sxq<~_ID*)PQS{?XAq|G+Wo%wy290J1qSay0i~=`p_gN=G^V -z;%J2fI*u1#lDqC(r!TRMh;60nz-x-j64w=f*%8h_d(BR}Y1Z4tsS%Y6U!|ZF4_(I{ -zp2xKUP*2>uc_=|z)$Q%5pYwyIY46*pvq5RQ+PQp-uH2x9#`waae$>pq6{vp#K1}7>-fw!}{~UPe2rDkPHVk`xfTwF%p_{tK5b-ko_OXnSWbIsc9ydl)>^7*+-NsmCX*)#BLca2qJF&Y5a&*1ipB|Sc@J+9l?I=p4pVq -zQ}#w@CzQ-Rz`p^pOpshYJL8V)-o6@x3dwg+EVhr;S&6*q=l##|h_*UFSESnljcFvi -zk_k$=xJavRsC<3_KLL4>u=3cU6i$$TP -zj4&J%EQ%#*Zt%zMXd9hU92O3Q6%U|C5qCpUl~6ikVyFfU;IfPtm`k03fpMjL~kO!c7OIsQJU_&^bf~GHvfWx -zb4{t{tG^Qv4omnn1eP(Hp0thnbkcS>2-4&2&(<~?-DLVB^8H;CJOlR!S1p~<@lq~@ -z*jT3Ql_x#!-$UfD@W2+a{SU+IZB-I+_U}J>(mLc=J1#PALX9LO=5T?O^pWd}YyIE6 -zDj%X5e3A@Y2nf39O21lvv?yisL`8q+!R}d)okTMBk7sxSt7rptX29&@>#yoY)Y(Fs -zH8p=8dt%o=2PbhgeuPpY)&o)RENk`3GK~ -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 -zxYGf1z?&eBW{0ZJz`xMlr8I8sbN+RG00 -zTv@-v%{wFQB!Y{d>3}VnjIZ^d{<)zS?gKmcJT_uQT!< -zjlWg|J*goTkkFib8)A~SaJX4+3+M;Gl*6jSxQd=#s#3ogBvlHmWmdWtGT$V&Z!WcsqZTQGq2{ -zBK{`tqpgM|P{et$4kE-P)ySNJemLRfy&0(t20u*}MS(pPd&RnP$a{lN)em?=!ge>y -zA-6tqpgHdK*3QNsvxhg_Yk(hnt~?Vwpv=#!trh1)Y_Gz-q&Iy@80i7*)v>^oW99hw -z1^71Yjg*JRmX9{%=aDJ+q|f7KBXJTJzcBv&R>8RmP+=;#4da^9Ul-`gVpEC+wUWlq -z*a&Xb9ye9OI8D0%)nQShLKdKKRa>T0GU<9eX|P`)AuU`^kU4C+WF3;(8iV`#fwCu# -zEew3Q_DCb-ld1#fMjX@6ka3UXNXQ5&97qU$?c3q-9z_t-ZvYybdo=Gb?Ui8B_l=c6 -zJ?>S75I(05W%WymwfL0>+@YPq?WFkAju^dH#Mi1N87$oN_1a6=iOzrDRl}N_fx`k= -zht%0536?J6zcDEkk_iiXd##9S*hhDHaQ=S@%nfJLtYOQYTgT@TcGEBAMj3n`Y#$5H -z$Q>Kl1WIk)E0HtZDrGuINuXw>H?)^=4#~JC9eu3k%1$5iP&~#j5jLzt3^cpy<>Yp| -zg`%KaTQ_8t6UNJ-rrN~T)e^~e64Fz?u=rq%v@E-T8CLDdg#gd!>7sCAZ7NfEorKc` -z$0p)Ht`2mXh(dnh@Xdp^If~IwfcmND^qleM3HYzA3ec|!L=N>Dj(a3>&X4I-R?`dE -z(EdGbUE=3htyN)SbGT^@gh&6Puu_|2z5YS^`n|AT!)mhOMPpT;D2m`BmC}P2z*j2C -zp1W7dHKZep{dxd4%lhO4 -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 -z4&eDhMeLFzAHnc*WDD1p`Z34 -zm3Tn5)whW~|2e_L4CHgssP{5tF7gw86lp9(KIf~@swaJh2RD}d%Cf;rxU>zg8%`ZX -zMqfq`&=&_Ou4LY$1HfMJd41kDN$7SEfz>V|bx`Wi(mjq^<%;y^D^*l&`S#D8hq#c0 -zx6RP;QH7c66^3%8R1QCY8qo_Sb6_ZG*shuEQL=-sI&YZ-`{0y%K&edB}gyE#(NZ&#au -zo0m)E{(&4r@u0o+vEgs$rITN3#E#AU_Bilvy|8@tp8vd|^qrM8ptyZ4;e)PkQkUzI -za@@UNWiw-?>|N0^30LZ5{Z5G9kz#Wk -zTRwdAK0$D@stemiut38efYl49A2z$TX`LQw5ct&}gr{>J6IXFCk;B19AD67#sSb?@ -zjn@U*ZAGO%J9O8G#r8hKn`7L4WisxtCJME06HQ%K#@|G^0Tw*G6n -z-9AH~oIl|iZ+S8WybATGvD*8HUxEI```!VA|z -z)!5(kyvE#(Xb{*kQJbcPFje2)>iX$_5>w2+?BE3SFo4D8BxkFaCJEIA2i5#I-wK6h -z{LWh8PC&8}g+TthkAm++YLTR*5!+XukhSX>&#_2deM_knT1jqM>5UKpp3A{H&dHL~ -zgSXM=1yVZ%Gc%p$pDp4&e&1HrA)QSxqc#ew%q<2$8(_Thcn0M{x)^<`_YKxwwtn$p -zJS$T9617^45;P$)K8eVifiDNDs-%m;T9jwQVc|G)@!h+jtqH({&k&b1A#y!R<`G@@#7>lIl~9f -z(2>VWyhcnw+>`~~@-^KfvB17KdL*p*wL$;H|MoWTSsFm2enIs+a$6>;8YFC;fgJcE -z4ck1jFJQ5mt)10k8;~Jv=^^;)%Lzz5N&3;@c3B~#xnXa4!eU$1uQ?LlIv1?UEcmQ! -zkk7A1qym>@O~#N#Fy&hL++C}}{OlJKxO55#^ten5r;4L|eZ<8?B-aDcd4hKP(f;;# -z6%5gDk5Y?YPXD?$d(8yi;jhIe+Lxq-e9B~78aXuL_;LTpa)8H^XaB_r3lJ(~`$b{x -zk}Mox7&Ld|4Cc_PlDu@+JA;Rr0am_1O0AswfyYitu4Dn4BiCN_?I}W>8vgavM#x=! -zdHh(7)>tCOFc$x;SgQ&`I5T2Lq>t#PYCpSj0u1^W;3B?XHB~NNeP9!Q5CvYl`xwbf -z_v9jFmeFXFgU}S3!_Tr2z~1}szR;0CL7wp7UiUJN<5R&9r^Gvr`>P3P^yZ}+O{XWD -zM;-P2qsJ#m;-i8zr^KBamg`~9!48M&xHb=_PI}3pf2z75{n>A-wQ-^ZhtII~;7lsx -z8+hW8EOk6_LFTqh*#Eg?`QD4)MsVbzKW8@sMA$ejISUauW0e@IlTWEfFC(D?78ZI -zvb^6w_2?}4qCxrn&iB?kkzj;=r -z<8ZjH9}ogBM;&c5684x8Kvti%ye&j#R0}zcw*;CF=t?~L7gV_I%d5RtThYNhbwggQ -zCFpI}E3esCV^K$1S(<7fh>obDed>y{RZ}H)0X0iFoCnAp1O&z%5^4~>|4$yU^$h|^ -zseV1e&3h33GI72Mkd-3c&{sc{T=A1hs!fJIBJ$d|$}mAUCxresL3F;x_t!<<*fVo` -zY>Xs3W@Ws&6{=5vt}6nw9~&$9JeV=Wt+|vqcR!L3aLCb1?eJ__>ipPJpJQmX6T;#; -znxVsRF^UZI8PU1hsPSS4gMzgdvkT#~wcX3B#FiU@Kaw5pQj8&>L#HT_OD=vj)k@{% -zw%{go>Qb4>-y_KlBqw+H{X|l~X{j=fLM;lD6vl{(h5Qb@LnKh|Ig*})N5pz)T4gAL -zGK`PseO9=$@oZb&g~oEO6C#K>&cAuh#q97}NwFvP)c-n|EE0C-&16g!`Nw4bf{~4_ -zp$kt`tieRYT@%j7EZYAl*`EVabjX71ifDXN)THYk1t&p>r2U%!QBX8MxJ0f0A-moC -z4@>MIW8ul-f0#vk8bPo4QWiDOM*;E!bgZ9%c2`E&O~G|eLBy%?(aU8)O~SA1PTD9G -ziX*66K{EC}*~;xb#BG?DTYNz`O`e1N9V{E`NyFo64e&yCvPd8x6l~$fq?&2Sev4xF -zxVtGmuPOe&C^rcCm?2R?ClB?$>&~l2>mFD!oiCN3|1YfLU$R&>5FX|e6o~H+^@cZw -z9v_Z1L$XkEAjpxoBw&>%U^GBdjV$&@KI@TX;1#;p`@>P+0jFH@%e)hnJr@4$Tb*qzIS>S|tKG!vDt -z-%^?xD~bQ{iQ$Yp8^3g{xpbpkXHQ=m^in^c#MoCd*KX5&MkSYIY@KKPtw|{*8_|zw -zWN{(}a=Lx77{i$L$VUcOG<1aR)LSPc{fIL2vBP{A**p2&hQ2uAi$toFYd?`$b2?AD -z*OhM!B;Zh8o@rNhOygt6MV0o5Awh8x(OwIVT@+RK+8e49`x}JD;-^6bhxvhR;jk#J -zPYpzYMIm=*B7KY8&4;bT5W0hSW?TB4*fOF!-C+C?nB;Uvj2q1vmyv+yi^Wm_a7el*M!mY~kAl$I&CHSq~7I>guwhf~8q0|z} -zW<1!O^7&OE-1C@Z!4A=ymF0|nr)-wi4RVVXhb)u9H8%E^j_=K^@2H(5c*Ws;I!87N -zub(p{2&H)LkVqyT=Tv|d)GvVvzuu%}k8N~bUU6q&`kw)Kpyu$_mDFpiT;1w^y_6jTO!_SivCPP -z2C4JnuMOkWe@mo=5keA)d5hrAVHy&ZRP`5QQRh=A>CC0CF}gGpqkQM^yZcGK6dNy; -z5o5oCblfX~O}~Oo`Z1tOD8tS-wG^c)VmNrE*g3-RfKx-@(JT0{;JbTLW6?f(m1dQ^ -zD)QKJEI_%-;W|m`poQLnyd;Q#;hnEe{F&W-I*(Q)b<+i%8)L04^GoSTZ;I9^3R!9M -zl(K9q%nmXRaGUp!l_T7OqWxV&VFsEA(!)u#)QR0XW!oUnc*{s2$BWx%qmT3~eiG_1 -zcT;2dD-T~!J9%%T_qY!0JX~;n-s98?Z-SIA8FJrC^L)^j_~@%NE~2vboMrP=%xjeo -zeqEkxsh;c%$EmaQycf%+BNkWdUKu#3Jg|a&G5-SiKXA`@g|7ZOPS-eASLMY^)TkBR -zYmVFSFFoN4nUdZ<;c(%0Q74`rer19m7u9#xrmBBpWh1J9 -zII>{AO6%f!h4aKnB9WP_Nd(pG4SZo54-sXp1W`Rr3?bF~{ -ze`s_ZzDRZG}0qFT+oJeN-7~)b?+ikst3Im8VylS{nYJlB7L5 -zyi_U=$O)pB!VQUVxn#H_c;^Z5uJG|6|F~Q@* -z#R}5^S2DUt498>+yj2Me!}zyWG{v^sK^Dp2YWW_7h+^lr|Ckuk+fv -zYXzim<9g4r0p7Ng+*$ULD;rSQ_aX?C$@*WJsW-_ThTb)IXfxo^tOVe16m!>!Iyobe -zx#H!oi$T9!tl2;O6(pZ)-Ql#Or_jklv3;rf76qa<6Tu-F{aXA?8Vc8vU_9-2j?ZBn -zr{Yn0Ef@ge{423i8S|NK5SDv;>3Cr&v4!Y6VLvhqI1x9 -zhg8zHoc4}fgxpQ*QtNdB@Fii)s=Ie<^%;O{4T!}MfM|g!jmXPKUUP^^hUmii<#O>1$6VrAwh*Z -z3CPhinM9v6BxFVFZ!S`Xr2k)w*aYluR9mDmhK)AM#jf&|O~|fB`O{l*4>3D(n{YdMmVS*-P}WK7ZEaJ`)I#0gbh@X_&}} -zU~+D4Dh1iOkog0fql$gTOZf2&6zG0~SLCtBWO3X**Prx7baiUL$^jO|e|*9U0D$-T -ziF}C77E99f(}zd9gN`S?$;kqZkyiyIE^0jNI@#yaP+aoVL -zZuJyS9rhM0Xo1-Ua!xbblio`GTvEk|w6dH#c(r=B?vXiUZNTXO29s0eptzf_Q#Q}t -z;x%CbIpps%r%`QNe?-;C-kRI)5hC|qy%~tF)^f^B%O5U&NWbBOJ^-`BeN-?)cwGbI -z6Wy}EOs9HMsRJKpg=Dp#I=wMj;rOU^$iG9|G|bM=pGs6IO1E%VUd}&ihhOEik1P#4 -ztK%Wj|FAl=Ldmy8N=5s183MMV_K&)$4w7n@?jA*{WG;THh5L$3KLwXDX9gNO8s+1LlOgJ^SDmwxr`Dj#$IC*(5@lF$d -z5>k18_C%z#xBMCGh(}_zTy*>|bJR&L&#g7MEDD?)XV4P>HF@_)?yt|Ur8?zc#KTm1 -zPh(4(^PjG}&Ijk;nbrCaJ%r&_tg?66Bp2+F&*3gKs6l3Lj5Z5?8~HPN8o<}5Xg~#v -zy=6Up!>#E&rI$r-O@fL4q%MBY -zk8H^h{RE12Y+~wK6}+>N^D&=Mzvgmk*g;0A5#B99N6M&| -zNY!)?+>&+R`a3#OftQH~ixD+136g?&kKN@?+qkmEe}DdurmGBys)?c?9n#$$l7b3I=aQ02cXvx8UD6;S -zxRi7W(%s!HA>CaP65nIj?>EESc{B6w+&K3fTlV+ZtmJmR+)X-p0P(_ED#>gR-J!BX -zigF|xPLUr)Eb-WIz;WGK^ZP-A5m{ -zLRR9UcUHmJsz0!1{ZXH*th1vHjO0;`XGLcM^cXss(}soycnry_){(qAgDCxr9X6n_%F+-5(9 -zqzUi(vp+IA*Y2yfa2ClwHnXG9Y;w!VyS=MKQ2E_d#JzGyeeC6XU-snT(!eu6n)OdI -zgsu$5sN@ZrJpX=6k|kDQ@IqVUZT-OxJpKTCPZ*rU;fDIa?j*}3r}jzLYq(% -zDK@&K4k?Rd`^CE!uksJQTHM1WA0!^E(*K)snz*if+J{%W7rbWN+Uh&&{z`*2;f-vr -z2%2H9KdeO^P1uQo^s?!ltnbAlXDs)Fj&K9yMsrUY;}?pkIDs`@h3n}UB|;STFL|-f -zjAs0vJH0~p{z2nf_o-GTQDCB%JOAazQ!2}qWx+lB%kcCnPI{7)>S}GwlZgasJuV!$ -z_r{J#8h7v+{l`(BH4X2(mp!ji0RT=E8P+$voGOFNJc$(j9umJ5{nwB0r>`MPB6ioH -zxt08-_>&YT(+FRT(#sb6o}pDaEM9 -zCLe$~?RNs6uo?g*_9`9ieJJ~Mm@CYHv=WJmX^&ak_n(hb?-n>-ohvBbO-(sL -zyvR)D7wsW*8rK)kd2`UE>;$pCz&mN%Q`}G-|87c#P=Ek<4~FC-o(RPz<*UlA>dV!o -zt0?iWQ;(wm!UKJijY!*wvr`i&XjGyO13`+9G8 -zQNe&{ -zWLPvzh301QH}gMnrH^ylk-TM#rr`Z7T6j -z^U#Gh;Wz*a=D08u>TzAP1t_hyNCp=OMM=LH{@Wuq8kTRu@Mmn-^t$M|2qLrmTV__l5L8RhhM~%CJwNxo@feQ&9*8PyHGe3Ce4aR2lYOH}f4w+OrHOl>c^EhXHF5EPa -zFwka7`=Fp1Ao~dWoV8ss&E&b__ondR(C{OiN}71s44(erP$lOr#fWTn&$p0tZl4?r -z2UkBeZ-QriFfl11IJYzIyRbRi(W+C+wwNL$uH!0O7qC*nRW#Sb9BN^vG`|}Na@frU -zmyt`B8&JjYp!E>@(d=H0(WeVRo`|gSmPU((!$N@a#*@UGxP_g2xdOnm>6Uy-H4=bW -zmnN9?n -z%aaQ>@IgFdoBc%J3~`I=T=AhC@yM<4$(e36g<-VeUCiy@3g5V&MjZn1iix=4k_{*1 -z-QgDcq*46W^g|%(=xB^nzp|GeR?Ghw=&3IQ;YJILIUgG2S&U_eI?eLhF;BLrE%yV| -zaFUcUDHR3PO`IXu5a&Fjgj&Tnm|PTE(|1I<@MKZPW?12hi{swkf+A_w{LIqZ0yGlC -zzkHrU6S091iUe)^G$-~7oDH@3&1$-zZpW=#^MFj>9hRJS^VLxRPSf?;%Tko8_7jxF -zCDD@94Vzl)7Z=*x5sg?8oh1Fu19XQa`%^tS=0_0-= -z57X`-{KY=l@;GzVT!yCi>$@$*!g&}ZquKIh=-)wE`{6puCM^`J8@awbIbAzvsbv85 -zOc{;$9oMsOs|KfmRqd|-S{2O^;P2ype7T6iBWNp+;iIzDj-Yh<+k9s4hy!ChNA{2X -zMj~pJvYR4m2a)myTj3L7tQb8uzL3j(b&N;)i(z-InE95#gceBmBT&nXIZA9B*QsAq -z4*4d>e(|=4Nn5k$=Y;Z2?<8sa@)pGEaI*4eoHM|wjXJXj+jUZlj8rpnR%3>C$ -zg=TK``@3-qt44O@uJ;!?WD+$V?YKMddOMU2+f*K1Up_5a7cBL8b4-pypAZu+`S$Fr -zN>ralU9ky%$Jr-edHWp{Xmt$WS^Z7X)!T!;d01csc;_`JhaezCQRJ4RxK{PNc7!kL -ze|0Y?_^*^!%F#U_LhZ~x9o;n)wkn^xilg@2_{`hRF;Cw-nFk8F@RL58@T=aib*kQY -zerY3K;yQ+=;f=4*+Ox!;#Jd1;b#y8Z-m@HV}oIQO>yHHy_(+6DQxDVrMK|< -zhU|eiC-*rbY}hq{-yBqDMMY+YmrD~C*dDU*V2`@Rrd<_;WX}#fJYq+r5BSvX!YtEX -zwM1UPOMT^~lFEok{;0C5pPkO_Gk~Ij`Me|rN9fyuZg8eK`#o!Nxa=9nvjT9aFH8sE -zWUcuj+a>&p%^kaRdZ}25CZvhuomf8@jJ)E$<Q6NSl1A;$TorD(@Z#Tf)Kf+M -z(6Wwsq~S_)tp6V6m;H&A$%C)lRBui-s3Cbm_)Nhk_Q -z5b|8&2I+H17Xl6%&uMHG#{eV-z`uOB -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 -zF7+?#`-zXrGk`Hn|0De`&Xx6%da><33R -zxS`mNWwd~ad~;_ir&TiE!0vk`iIk6Q1^rwViLm9r?Q^$3pyLbMRX5SEeLZJN>ab=- -zsbGAI2;e0rvYuEpq-p9qjjy8L(8HtMjtaGQ-c9`U4mHzZ4Tt-6_ct1>rSy3eUKGwU -zq&Mf~BWL4~lCEHFw -z*uM9YvZk-26d_Qy`@?Lw%e^ZK|Y%mSvG?@(XcmH=ZGf&VBAj~pZ4JG -z2Ql}Ue{MkI&AIV&rkp>!KEmOc>RvBx^xd)}uF9?uc-;Kpv%~lxAuKONxxYrGhB_d7aPNZ@C(A%et^tT?nz-C81^zU=Pt? -zSoFlabQv32DdjNn4PaPtr1~3hv3l0%o`^;n6tK!uuD7bZ!N!(^;?R+`;mD3oQtiKq -zGccOVS5SjOex`d*G{D70_w8fK8kbN -z=_rp*QVD<*TpE%+Mk67{8^v0o^ek_6p_yYd6(VF#K5Umes#Ms=ruC_F)fJOH*V+ShZ(TPHE%>-0 -zz$^;XDg3fw1gQ`_w!qSyn1~*iR;BRho>~cMRQN6;gB^4D#+Rixt9mAbQQ=mHkGWkK -z{3D32MNb{7_F7gZndGyJbfAn*~$w;J*b46!#rtDZ?JIwqnSe|E*+uN -zC@gi=x(9NTaFy`9YckY`(@+sd%5OQO+QG1YY%A*2*Rx1jqrN-u46tDYo0u`0i6ae# -zV3>Y&`1gXM&#-u7K+jq0YRqBzwTv($#ious{E7L7@f}?xjUNBeM)P~#_j@)3doxZ; -z?tjn@b@1T}3i>HH@I6HTDcJ>NuMaq@uNx3smdq-0h>G}*oDFG;tI9%mW^UsWPGMxr -zHvdP(KQme+=JD=Opzh$0K|L2!@pS1azUq#7p&q8eu{O;uu=E620Ww-e=7}w1QcN%M -zD1~t0*(h%UZT2Judar%`Xb3!I??nmN9TVD-QsKbb$mdQj&RBgt|Eqq(Y% -zE{fJ(Zx@`tGEvezb*?Fj(q6TKEic9UlB4gEV-kV@3MhXND1Yo)+b`zWAb!4uztUyL -zvx)M`;SqP}2~Oi6^5ZT!coyliV{STfr~0{?s~Pjl06WRg0g0xDFsNH)i1LqjyVK!j|KLE(-LJ^G(xzGAtqND&sUGjM>?rSqp3~-semN -zZ*6dTJad=1(K>UXP9c||Qn^|z|EL4`WoekT5>rjNoYIusrs+>(rHPxj$ge56Sp||& -zLowQFL_mPopr3n}?(NEm%R96hq_tPMKZlHFGd%1mMKxUY@- -zc*NCO0=>TGloxXhOFa|2_!l?*@2paAymT-1pVFehRS_TR`p(RT8&9&1PU4r!=t!T! -z3l~x(f?cl$!bge;P00MhGJiyHy&#Y~dyrY(B>=c6ZVsg;)YC)7C5FVO@(Z6GNfs>|CkaC -z*lRoibveELhj1(~uR2k5l<^Pxc{?rl?&UJSR(hKkLB{@QJ+Mgtdp&$TsM^;rhbE}` -zTc85hul_y7n4T7gE6ktikt8Khj%VZ~6wh%Gl8ag_L2#Oh`5a$JaFSDr2|@s<8~|g( -zJCt}GH_`yet2Y>78eC^Q#i-vh`VhJ~Fg|YxGDo1FTglO?dDdS76%=4V?km0P%9R=Y -z@`!3;<$&etH-UzsIaMFl%Z&93dc(wB;P_|XKT*B_?NREUWdq>pS9K~byi -zr-?{k9CN=$P=aoYny@+Y=MKigVR6uO_vQAYE#yI8Gb^W(euW8swji%JMb8GM{jquR -z3h(Ia(UVC6di6y5Sr7Yi2V*u(0PgcDL79Pt7^aZ(@+U$Npqjq)HO*RnO!fMQytE5k -zD#g{Db90lD5A?}m_*0)zOpDc7H*21A1t{FI7t>uuaLS2Qk`ur5d&|ACNGC-EtyA=LT7WGcC0`mSw*TC8`{v*l*~+S3 -zAWLP-Nzzla5{haCQ)H3EcNbmn -zT-Ys2?{-v$wSG3RKFdq@YP@WO{DOTl^DKF;If-T@{=hN$SqDPQjN_6&K9l)mHgo7A3@VGb2@9mNoh=+(H2?6BM^MACp(PyZ5-ghDZ#utlOLbr>Fwm -z()0l-XH2)%%>y!v)q&5fBjkp9Y^5=7%YnFXjbH9|dbygk^C0gLGC(cab<-exYg0ub+qPcW4K48We=jcuhbapS%pv& -zq@TQGTQaNwW}{vFOy^!NwP#o+H{l40VIAeA^7OH!Tm}ypQj4uXd2HRUAZbByJ9=%8uDJ;4Xz9iLrcl2fNu@Tcjka=Y1nz%34pXD -zjY85k1QemE6W2d`(JT+2pX=Rqa>-?HZ`cc2hAt$}_;)S`J1&R6!n(~_=_I=`F+6Tn -zwPv@Oe?hR#Ev?^9Xt}rNxQ9RKT^kf0iF*qOPG6#J22U_ -zs?VeAGyO!fZrVQ17^P?Ru`j>7;d(-xBdU5E3sDK`qtF>)9TfiP7-j#m8PL+(J@tR& -zzvQMoD@v0x@#fhxiuFBUiyWmC-~b3=w3Z=X)J662-@-rG$=W*#m^#NF(O{OiHr`hNqhVZZXzruDJ( -zZ(?&R(hD#ff{rZc?pc;5pMSx*he9+0_(?=_=pu#aMqxIsp3%B@brj-LplbzyIWrOh -zXHb!pUPQLgRYO!%0m*j9RI$k%FKQnm@j#CzOcCP{>yf4q5Yz4D%8rip?f@wZR{ -z?>oOSN8ig-DDVf9<09urCi5i!5GdkVA-lQ1UgF2UC&pA)Kv546vtnXJj(0~O?cJoGe)YarHyitI*anv@l@(fIWXZ!Z|yykMa+&*q%IkZPH7{q8E -zvlaZ|3Qv1tCXT|5C5P|GDO)p5=@AXr6R30j;u?M>yU(C}8$|!kguF*^4O7ECW;4af -zXO)#T#@p$r)NlnI0xL}lN7ELw#s!$n&BasQJBOYtj8{Z$7UB`uY*w`-nt}mF#DTOc -z;!gWEW>jt~mNz7GhYo))=|;_Uwwn>wBcEajcdS3`6TNVWR8%CLA*kbMlpYR!e`Q{I -zE6n>Y7Et0CZ5KQd$0Op%?2${R!A#NbwhHw4R0;(ktrus4Yg;~pM`WJhpBPGuZ$3qt -zTp4e+L~?H-G$ihMBNEAcqUxribk>wg-29VTF$zRKUuzyXv(kdvaoKCz1SX90a?#^Y -z5E7?Ez`jmdq@BV*v&{S9X>JYND|_D)^OIY{ioOC6ETO#4lw#hlY*k38pbpmL`= -zNEb?=>$H7_E)sPf{NWy6C+67_+-boo_Hf+Au=V#1HFvznd_>Wl1S7KOEtK>MH!eb< -z$^_UvEzCw?(S+utWD3-$97yDJpi{ -zq73IMM8jt1uWR2K=H(^8c&~+|flk(t61pD(unEAt@wXCTy#3>}@5WZ}#advU_(D5sM?81@q=PjCCIjQLAOhDs%;I$rH{im-=G<*EtJ8Qm}fB2p!H8+sb -z;FGmoh)}IA($v|sw|F{=6_P@_)oFL{2Xcd|5fxM56O!D!?tf@YR0?<=Z&Y%ZU}v-v -zNt4i)_cNyvf(vo{EAMtt*xhS{_GX}z(Sco(bm7?l{0NfqsCz>tB1VC_H -zPGt&D!tkZPX+Q`lbSyR~g$xZ9YjFZ9WfAl?Csb`ZK18slBqdRxy&kRBnJ~>c^d+vi -zyX(7jBq57M=bWo81RE>`lg+g3DEgDe*HhYCp5t10ho|}gDr>|+OOJyVZZd|D -zv)?ouBNE_N_Z`O5!Q{8 -zChc=&$(pBQ_zqRFI(j{zJ?QP^5kVIv+e9+tf|VvwTBg)7d2p&Iqzm8h)wZ6jp(qmX -zF$Bs4NCwCa&tj@Xev{Q?_|cM~j_4$g#&7p&DsiZMWC^-7yoPc#alFMYoY&4h4zQ!x -zp|nPIt|-@{{p^2RnOv5>LDGJq`uanvMfg~*YjLmMR=3^wf86Jc+~evV$o;2>8e~0P -z8zX>jHqSu(aZ_%g5~-BMe4fJC2dVOe)>rmq0t(^}3T&lVV0v%3A}odevIA4h`RJuk -zG$~_nS<2zdx({)WN3&1!2HM{5_vjB&w9An}!C)ScmOqWt{-Abw?E@n;Cim_E(H8fl -zWhz@aPqa=89zswZ5;DsoGT;)*liU*_wsqH>5$tblvuhO&ROc0$*cW>5gqmlzo<;&s -zj{>7|iFU<(d(QmjfNRlUxnm_%Kr|KAlznUTTD{fx3KA$x6${H^Q{yaQPi?B@fzdq= -zG#dTSlZOt`9R85RknmAyRc1xUFfqKEnVZxK{G03l{?8j}iv!O`-pVhV^-$+K3}h}o -zyh``yr_#I&<{N8zdlg67TsoRr3%$J#0SK&UZMa@;x?c5kN0Fn7K26U64BXs+bw%E- -zy7k{s+?*9=KzjK~PkgBL-SPos?m^bNkx>-&c-UgxS<9_MMpovDyQB>+zJ)?R8(~`a -zF*X(ee9!6Q3U`#b6gyrCxA|qN4qFd{3KzVS8{`)|mX>&avNOhGtnSDb^H@>S>vKrg -z`+CD{&;5hah6~=i{7UxK*END^&iEjd;BBL+8qD^-7YL? -z3GGty%Ld=^7G}2d{RNe#Zbh!MRHhonB(I@cTMEi0CDUW-M}3yB9bX|bfH9ybSDnN0 -zC@=dvw$s%848n-RjU@4w82>bvJZjG}-JGjoL$3DSO)KouUz^qC?frFRqp#QraG>jP -zUBuKajllfWODhcC*<0+M-lrqp#&=yB|b9&p( -zE?giPe>G7~vJ5~I0Izyrr|We7EKZ?@iDnJ{9V5zDE#0bowApTW%XSSN#LCt)K|@Y| -z9DwSph*tfYQK`)(pQ!&gU#FddTKez%)cU`C-F46(tg8x0R1V#4`&}C!)@>bVGq_&m%>`P?Al@96Y=W=8gxwCibBKJDpogXd-s!iE{oXg*u@(7Wa>hKD -zc)TF^=ha;7OaSc3^m?Sd+T!=pYZ6j>@Xq)$w(2230t29P*QeDvF2u)lSi-?&efgn0 -z&8tszKfwUYO^`#tC!BXG9b86gbDP|vuW8UdkCekI+1*JV7T)lxF1V*E?SxyF3Ap-H -zMhHUO8VfvjiUeQ5XMC1PEn{?(p9FEyx-L^fUEP_9$`4-2FH`?IF?*_*0nr2Oh?^Ye -z@7wdpj<3sRdcw`WfVduTw|R_VtCSMA+7t%PfN$EHL8^NWXAw-N(u1+uog9(#ua!&# -zHm+E}F*s|0H%4P^0`)?@fN|`{dcHs9P2!J@FSO2{dzO%QR}OIO`$%)+KV`T&TwJ>y -z;1PVmxU%lQ+!)JM`I-MEca_jH{0fj@BPJwN)El)R9-gyG&+?;NO_-#-pahDoK9Doj -zKDP*yO~x6T6G7d73SSl&cR}^$a@{{FFuCVlaqcjF6NX8cRuLiOmC+FI&-bARMJp!=3P?c -z?jqC-@y}bYBfkE5nHbYc+VRBD0{{@=?HxxyylK0Vu*U#7+Gub@a%OSs2~wGz)PX7u -zq@8P7oq>U`okV!4DS4EBVM2unOyoJLx -zIv&Lvo})A1L2+Y_RxLluzuy^K*My-IYG^vB=RuVr=$7H9nYl=>xJJWf*zuN -ze+2(i3?yrF;4pBei -z_M>}T`ukCnP9iI+Wc%wej`VX6ag%Vzt7#C#o>V091p5`{GNOqpBeqix5s`#67%UI@ -ztMUIH5%i?qnf(i>odJQFlgN$^QzM6%wKn0$?5Ujs<8M0?NlG^lWH2B9FTy06zD+e@ -zzso_F+)7d78`ly4R1$3Tk=ZbzFS59Y^ -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 -z=m%|qsp7vQ{%BL*n`TFwxSQlE6rR -zkxl@Fe1%X0_Lo`^Vi8&-338j9bBBo)4z#)W@4i&ibK-O!I3C<^6~Ez$CL1pyrdvW`9tHgw -zHMdo|G#!7P7WD^)OES|u;&2QTQOs+YpxXN1=oNy%`fd5GM9y`&)c3u&D2O$9C| -zQle-P_G#vd&kl{V8BQp+btPjnC`b-G-6@b!YNGqz3?^isGr>OoCzsE(t=G~rt5yEd -zuY|>XTU$KDj)I{jxdYvLY6wUncslTVWH_Zxy^N2hK+Ezi0 -z;8e^iaD@ZLFot{YwG{T+j7DIMd*_v9^Kz>q)sf4;s-qZQOYF_1Z`V;u~ilP?$ -znb57CkPb@R(|5?+^cNxG_Rlx5Vsq=tnV!yPl(giRbBLELSmc4wW|jlvAxcHSPywZCPz5C -zK_2A2So?!4cp;8FmDNN3KEC$->bMC&gWII8zrY5Pz>xxf;60PGsQwX_gCocdN1(Aj -zl5M@>1=r`|M>u9WJ0v-ZKFY=ukC!)(V -z82o+XKi+x`RsjLqc#~Sr#lWwQ%_+ZDkA1Fqd>cZ38qq@U(qC0OjU&W -z%b=Q#Aku=G0LfRQ6$`LhTBixfGBwXm+I*=xlObdGO_qDT+X3vdpf>}x8ajTA*@qhA -zkXOBWNbXtpj^z7U2=_c0C~apikw`vkC_dNxEZjk|eIX~%0DxEnO+9yR39vkL7;I*7 -za>Yx6U8vRvPVVjDu+k=<2w((kY(Ps&T7#C_HuC6~2g6Mu&fO~~Fn>m0+LvH~ebYDB -zTfh_sFR&+m?MM4|2n54-PRPDS*veX)b2I#%cVbcLD6#@W;hbv1_frHZnCD#7>ba2Z -zDdqjGEzp;kU;5bx&)!b?YFz*|Cczk8T^Ji2af1E*5olhnEdZuHxM2!2g1eZkzI>3h -zSev>@x65&NYdZxn;!JusOziQKl~vthATcMfD~|-ek9;JX_ysT(wQA<&U8Y7-w!fAw -zZM~jvyA6x+Ey}0-=rR-V^)~gz^z4srvBVV9jTfQ*dV@(xIF$7DM9hYB<()lf(I>`P -zw6qCN7bk#>yURKub_|hgl_n8L@YQGiEh$7 -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 -zvfeU6i56 -zG2I_+6Ow~G?x<@Gnc=iLtPabPeX*0Fe<|zfP#<=|5v`e$jKq}9!RxfXTj)2f>b=Dy -zP%#5_f?(xYEfv1|(K>Gz=iH-Lq3FqT?EPag>Z(@$^s_->u4bGHXl?EK<-{{=-PT2rV+Di!xOdmMQbTF0%) -zrw;w~-P``XU|@OJ;xslL$w#G>t>+#bAR>1JH7wJcQ7@KH*wr7vR;M%Jw<*VSZ0@Dm -zhk5aM+VW6A#z4_UDN0c^l)H1_LcdsfpJ8&T!PoJy)tF%JVOXG@Z?mVNnx3m{CE@-G -z5?S4d=EntXYn=Vi4S(9nh&r3X{j&E5u=+sI -zPsetj3rt8S>8-CVy93ylmQR)7@;K)87DE3aaNAn$bnzZb!38xLBEm$qgN|)WcY&N9 -zP%aqOxAeq+4m2L%>$Q>DTK+KLhLX*x0bn5!PnK>x$S+JfmAgp{Wf%oLGc6@)I`7D+c -z4d11~*7b+su%VAM8I!3-7vZ$T0B@XxuWMSL-GEv=kyql%PZp>=KW9BCP3)C(mwYLH -z_5rzbjbJ==Y|E?&B^osf&SXO4AV59)Ir}r@A?hrK`3Xgl%Ii&9$IbcXc8T8bTodfyFEd^uVWxd%LMIOd7Rjw;59ExHhzwu1N-GLZJFac`H8ay07U -zpJD~#E6;nx(nk(Q8$|^Kj-jX<{oPry5r`S4^7SZ1N>roXpG^L0Nvc?%JnitN<6e}o -zsCE3<1pM!r!uODrN!EGSnyPT+zqC>3gd3v?;_o`TWpcHC!}t~nOh2S%xQ3Qlb)#&p -zW9acYzC%#G-#_F9nh_5Pr)gMPxl#@Vz5dZ_YFP? -z1LWtCw3D(w6SGfu7!YBlzbmkYy!ph%ZWB?(!1w~o)Fl{QuS3&Gy85yws9hHdjZhb$ -z=zHBrSH7q9PE3$BzXJCjl*VJ2-`q-<;1A#+`!ndM)g`dqu%rmJSV=EaG`eX@M#lq -zlDPY!&cA~b+sj8?Jh_c;i?`Eyg17vI%V^3dI*WpusPNj@Lp`6NCWyB7w{V|lhT;JE -z4qD0_e%VlBO2c%|R!q+3pP%7Om52hj%DckIuH-)MJ+?`z7y4cPfFOV~DU(6od(qr) -z%Qnj_D28wRF4?uv06e74na4~h0TFj%x2u@aW;p3ILC1Hjy7G-cR{u|QX5`p#wUn1( -zX@GQzm#s&uoiqqgFJ~Ik&iwSzEL&6MB|rX`t=RRMzbvtVsMM6;Iep>Bj>6>CnCoHQor9*`F4}fu_BEL1?uK_wBWc&WS7}n>FBkrAD6;k(t0P` -za3d?qpY{E$GekeSRs@Jj@uBW`b| -zn$EH%`}X=GYV9NOehTqj)Ct%~>n1|p -zd%e(3fpk{RNKG4JJgIRu;99ZS#oB2i1vKyd#Y?`c0}vqa -z_urlJNBtXh`SyxpmX%wQLF-sp3C8><-e1S}`t&W0%J|1Rdj)`M#VB8#&UL>{6aA|Q -z9V;!nlerU?^VsHO9`{_c>pDnA-K7hU`s3a9qJJ-#VLnHCBhTEn7p%xSi1Ou@c(nzZ -z!_Q$TBnp;9K(Lmj!(PXTYP${dDH{2#&RLI5KIxaqN@$)II -zNU7_W^1o>W@L^Cekm7pADwO$b7V8JPr9rVV+(|>m`FYBn%FGQ#5ggIV53^G}oxk|n -zH@YUQZivYPgT=q^{-9zpfP@PvB;t|in}*YFJ`{}Xe@nsQ1di@UL1)h}8z%~!p>pt` -z#}o`Afrgepaje4Rm4k*+7@oOfCr1M{NH&g2o3<{LLZjw3&f)9B8269lMXHnbi#x -z40EVGs2T9p8ZIHHQ61T+CdFrUm}yxwuecVB&zZq#*&gKr5hLs5d!Zv-1+pkn8xk9> -z+12PBJ|(WRbW~sai%WlmD;TYm77e|SwvsA2U+!)=YY<5<0G6)}xw54Fz7Soo`NvFS -z*0A3|mcSHt5&(k%;sy#dk_x?qfUG>_aEcF6`GP+Ue}Jp=Tb3H(bV^;fzk&Su$ItgO -zp>B;tFrMe8YgHkJ2xdiAG#)3bS_a?d-5vnre{M6{kB&3f)arsk2z*C%Bm8=N|?shoA_<5-<;9l}Q2!z+~%2I4M* -zCU)aU-ZymaSEox(_5+ZoTrxH~i0J~wTTwbRe~n$ktYEoEtqc_SN39(H2}_H+_a&m$ -zx;(9NCrWxKE;pi87eVazVsixG?~++F9z^=9VsmTgna{U4VieSBydBd}Zz(NwweR-3 -zlJaW}4n9YBox-2!Ykb3b&cEpvgq2GF5E0?s-dlkFYU5APhg5V~`>fU!_{Gey%Fjkp -zzMK~Lo;R1XD|p46Pyc{EruM_X$r3kEZUrARKh2N+v63us9Lya)MSa_g(svma(&!?Y -zIy_LFYm}J=*(Z__nzr%YmS}P~;s^6zBs6gX&o%tx^8dah_^74+kClYQ#BsN5!G7|J -z39c#D_FMlu3}5v$Dq~pWW8u8K(Z-XPkV#z&Hm^h>{;?QM;FM9{2g(BVoGif}p{XBK -zjTJmlyX-+b@#RpW9n>{Gc2hVCj-%5R>5Bc;ST+m_Q6{1 -z|5PfW?{c;i1bPmK;^@MbU!`Kd6rhT&>314FhE|fp@up|y4u7lrm_5kdF?u-YpA=KN -z!esFFhcb|ks6SXAK -zXve7FHV493LTZC+B#D(16ekXwn($PGJ?sp6Wk^R~xiYa%PsWZ^j-eBg2cA%xcYI}= -ztr$1pQjL9y(E7eX_;2q6_un^=e#=wtT;!Fzla@8NgF>FxE3y7;Si=um?;hmiFO(Jn -z&2}MRn>@6^?-nUBOTKdGojW`Jrkr$d7d0q|X1QkcA%5C;qEtw -zM5PTCF_?#-;%7XQi)2HRDvPuG2?LX~Jm{wQ1u7z`$De0xGLTBb7knj52G+0`VieQW -zQoPRcD`S2mSuIGRP5c)+^*!Ccjwu6|eV)#nrSFi9#=_gv%8y`opunACw!B0<1F9!# -zCa4jsxm+s+$*M1xOV!#~bYf#EzlzPtcXRdrnGc04-R;x9wW$v@EPCmc*|Of1dJzIT -zFuU`F5^7FUwvN7ir!JFv?zSRG#P82Oi;Z-@it_n;2O{;B+&^iF)42&Xy#l>5! -zsnq;KJ>gM7D-$Y^#^HbrT~=po8`AwgzWRh=Kc0pUFH&B&j4RvRp(z4@jW~e&hdck+ -z@H!YVXjy_qtM@F-`OBUY;Qa$fP=65I8iH$_v)A6oW>Ip&M+mqg?=)esUzW789BjH& -zw(?~hxD7cng6kN}P~F2?g!oCxEZODp#V&;TW&MY8(3!FO(RK^#+A)q{z>`L#Wn&=j -z8e|~pJUN(A7F1$FVI^`MT3W$bvNapi<3O?;pM;g&=cfmHG8f}x%AZh@`0t8A1)Io2 -zP`a5_(o4bovfhz2RQf+w^fv^lYA5Hungn6TuUxvUpDC4rW5@|Kf4jFhZBJ@~nf%kU -zIqx8!JvN3~o|*WgnW?n1-*-@=`0^ -z@c^078>}b^<3vL(nitamS(SfK%jIswoeGR41VA(Kecg#+tQA%WRm8!VIQ{zmTh#`1 -zuK3m|s81Js-0!?=s<@{r)q<+?0sfgcfB;vF12v;+IC -zjQPuW8kGD8E_8HmLR6Yc+suXZ>dd2t{dJLB4LOP=p|NjYZ0f6?Z3>E^dMIYVbz|c7 -z!7v$NX6}+io8NxPYK+7rG9%ZPB=yS$lkRLnj=(GF%kl)7FTX1>J5e&t%@;)XS~WYrQ(00+MU0%9~E$fQDR|LxmL3ir3FjQGy?GN|eD1GI%sWWi9If&T^N -zG_81O0sP&EKk;ocvbI8AOk)5p5Vcy|e3yb5q(j&H$S|V^@HFf&J1fjh1ab -zF))?yH;+ftN~&4_#hff-mJGx7<5Asvnp}wHkzo4UBK;m7HXY0oDJOgs43_BUr26X@ -zU#+G?7f4K!DYQ`~Mdc`BIo!QI950@XJOC;o#Uu#;3CVulRuCMG-BUV6N7Yo?9DIP- -zC?klQ(eetF>;Ausi(MWEpyH$O62aMN$d3{oJ=bZNu21ltbt`)lCg^uh -zCmAS77Gm9`F=ikxneT+(E?^XYCCp7>i?}r9uIdL)1hD3@x2J>XZwYjT!eUOkZPNxHbd;VV`9xLbP;@0I6~g` -z;-2*c9`1P$~c&=>*07wC#F -zpAu8lu=>NnnK>&uR$LiXcBUA%4vg$a9F5<1KGP@yP|+B}x_)DZ9jylvu|Gjr%s(VK -z%P1d4Yr}RW(+t-r0J=^#NFf~8l%@BLZhp$9 -zG6t!%fHWemhhXzRjwgF&H%vd(RhjI46ubp*F-#G~bu6j%)7M5({Em#Y?M|k&QmfGP*0aVaSpmVk&D#%OL69cpD -z^@jV+gb5(F1su?IqtvO3$kso$ZCK0UDcS_Ah^SeYkUzb46wF_#Abc`|c#`YEES2K4 -zM3F<&St={`wRGl$rKVB{9X2re2O%4zwpF5`1Viu1kyHUd1HhBc!ts*7Z)lUj&I=V$ -zH;!+G6huBO0x+roowu5)8DMd(+LSGkrT5rzF}227BD#1X$!;_*hM#PQzZwMzL()Jf -z6KGfCa&KZ=#c6qhH!%Hv`C@x72@!a7ZKP+|k{Bw7PCQU;}Mb?GI -zBA)LGSU>HVHbk2A-FIr(qJziwlWm&^Y`M~`bce1YVCbz)a0mSU7+DlI@OiP*Eit%f -zTF0ZOp(p%s%e%1}`@IKg*mMCMlMydFjBTb>`Y^qrz4_Xn?ULVtE_=Qi4gWgJiHM9s6E>Dcrk>W6^f^Z-TIX -zef8pZ8mebXtst+ouv@~5PIs7kcT(!Oqs&+fJ&_xXw6@n_XmyTe?2%HDyYZu?TdU3c}{PLZKoj)fw@&zY@-9} -ziHRy8v?EeebwV1uj1EJz53111c9q*W9xZ{uK{~60Pf~12rZgh$6W(WuA^$;bCo&V; -zLm3EdGwVwaD_~a6>v#%*7czcME&|?fp`P_JR@sG7V;b{p-As9gbp|h=Xvf_#+6r*j -z&EO8$3mVx9U;c=;I@#VkZGuOP2rp=Qp162fHkNb?B><0MJapR!&71)7((OJ%XDdX8A0V%i%?vtz0AL -z(hkwN0g%!O>{JW<*u5&IE=+gP;EU%`Q6_6|*F+j<*1l -z!=2=-Lm0Czu&{a*dZ+@8AnJ -ztxQJUIWZJllv^&9nw8;~+rw<4SZV6jv|FdV{{cxWJ;x-sJw*H!p2KXb6 -zLPuKEAS+y4{a6l4jT~y|K5+Q4j4z149nqA(XY*Vi0uG?bHRIDL5`UCIjn1=2i;PkC -zkhpbu)Gy3LnJ|J+*3cMsDQ9y)SdU99V~o^@z>T$yifiiFBoV@`lQ&&~{o#dkvrh|w -zM!X5MU#P+BV!QuyYn&5|p|;3inS2vnqAfv=bw~U=uIK0*A35BZNm~RwFD4f}y3>K$ -zBB`bv7K;eN)$s8RAgvF~aFN?Mc*dIm6WO2h$A|5UUFi_V+eA-xKR*$F&Uo%z{M7!k -z(|?>5<69!m^pCZ~$}OJzyjhNy4j*`#@XBt31oI(t9u)}+Q1Updds9-3amj$*+O{`l -zG{*Ph$W7v>ASChIz%@1ZeTP@`fF1^RwNBtd=DCZ7kED_wuoSBlW(d%1iX!DGijhRG -z?}1Q}XKdUr9m{RP6n1>e033d)@st&K9N=Ehc)RF?g&%^!zXZZzmyJu}RQqR}_|Lk` -zj_-Psm?C?NpX4a!Z%ofTv7lMxBVLm`d1P(jUmtTE^T+xHH)C&QPY!C>Sr&TY-yFUT -ze75Qw6gUJPiKqJlpMWF%qGxE_G~ie0wlQKr=kx0U2haMfUPN|38~MTCVzjNL5ga+~ -zC{WgL`ITTK?(Uv2LRwl}aT^pLv1{9dg75olNE_}G4CCDJ+`HB=)Bq%}N=iy*n)@59 -zEMS`fck?Qc31y&QoiV3!Vya%2zeErfmKKW(K}P@(K)K-5wC5-ifI!wZR8?(vb*p0v -zmWc4$1Tu)0UOIX{SIhu7i6PVSon=ay&AN>n=MRd}$ymIVp!Y{|d#thXAUtCv=EYZ=|=MswkF#B9T#0A=;mR%1QtDxZA?*^o{CMLcD -zKR)kAk->WLP{ibIJDkSXVa#(Ajl2lliLWpO^XcW#20C&d;~~)M4g~O&j*;3>&tHiG -zv~$fU4op)He7~g2qapum}ALiTgW$kk0 -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 -zPi=?;o)YtDN>pOVUL?+Nw+rUx;XPP-BxJ2 -z7Fa%jUtt>1Fzkn$9N0Q>iETb(VbJ>?Ro+hQh~-LN9yE3R47ynl_VxmZ&uh8_xw8rbQ1Ri7GJRf+OvUVbK~e8q;8RNss(QWkng6urQzFPvEj4nO=v4^z7Uc$lp9Ne+bSeck)aggnve;*fDml=1F$djRJEW5OV9tH`7gF -zKHC@xWJm$1kf}4%_q$+6^@)6A-}IsL&szP=LYI!)@Z$OJ?5TjB3*bo#E0tjx($&HzFd -zz)ODD?DYV5v+3<(IUFAIPF6q=9LW+;2=_RtmHVHam>0x4sd5SKu?!`%A8jklelf-V -z-CX=UA3&(Z=>XQ-KslOnr=8G4P+O(`_|e4dF2Zj$pY2Zx=ts(l$OX-|AD;J8m)gM|nF;vEC>d8J%9)s*U?n}CH`FtkZGtVuMVT}(fW -zVRlT#av%Qcm7FN+Uc|y@kWUDeQ8Ca}=@1=0*&UmmF+Oz~FXhw{AGPL1VP{yFl7KNd -zkWKrIFug&9Hxem!kX-GY_vp>c^Ot<9a<{Ob7kvT?m_w|Zw3Al_84!Tg(9V(dWu;r+0~?U -zCOT$+r{!G!g~+=rRPa(C@B@I;n7QaHzG%4D@xV#Q9=M6xB?%04PyO(ZnQkfOBDMSl@}VT|M@;FSEIQW-L^K} -zdPYx#IMsQAGH@IQLWEY69gkt(QmmV^rS0zt;D0V0ThY` -z|28sM`wFc$grFh2q|(}wMPUZ&qpvrTQ^A0z -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 -zw62^z8Q> -zLtZJn$I6vVX3lv8xg2zcyHM4isKIQV8sPsRW}?4tMDiN$s6jFakNtAL#Of617CfJH -z<)y|gKQqLOdzrdBp#{C~GaSd^vyoB}oJclY%WpoBf#!#(`B+uVF+Ho2&vvg7QQz)% -z*vD~k2Tw#u01o}c5K`~^FfoU?COTB?>OJ#5W*Lg5s^{-*Q-4pLKMQq|_Ivs}=KJ$= -zucbyv?9xj8z_a@ff@>NjD}(CXl+37F#{3i1ECF6$y#o{dxP3$;;|`nSZX964Q6H)Q@PdF#91D%Jh1^K3u+6$V1(D8iRTiDtNiT%eOtz8)JeUF+n -zTPumoe~E@)1=Q~Hkogys*V=~X8LxIUt|chUH+sWGg1k}Zof9?ZvkH^4o=>{-`lLXX -z1>!aY81H7hcg8*lf_tOLdZROLu*w8*<;{20*!J}dxl|wHJ1rYui%{k6+as -zJh#4@s1=n&5=1t3#&mXX#uwNYw4cmNKTQdK{3Y7zO~(I7i57UWi|^u3M8(Ahhtq7c -z<$O6!&${va@@f|-{mLvAMJCrt{qRg}?XV=c{|2$DH374KUje$@3o?DELw6?K86qz# -zg2(<#-d)$p12Qgysp=(!Me5=Wxj90vZK^^=o8vI(uGX<=ZbRSNGU>>t=QC>!&Jj~U -z_g>U9nz;-&i^k^BK(OJ@9s#SINZ=CYNkz~5- -z{?@XU0GW`Y@6$exOB@2Z(@suJ??-D4IQ>3$WPo(0-C~kK%8;xG6BUk>yGh$otIWch -z=k^JEP6Yn0u#h-duRjx$)9HEzXHlLa4*;^=}Y -zKJ+qvLU+0GUC_?^AP;;4us9W|@+(vC#H}dac8_cR$DwAk5Hxp|H_)ag;I@+&M@*WU -z@}{=&_EGO`UWn>zyLu$s4Hd6riB>OawN=E!8dmL(2z5{nnUYcLU?Cgk$yd1l7;l$0 -zJR6lSIT!gKS_oKOhPyuYEV3nRJb2oJriEkt^y*DK)v5j?KH(yHj^sMv^O{ztR-TQo -zm4A1I6eJLTEnVm($qM55(=3kLcBOhRe)-DYCksB}o$F}k{Z{_&B_ezjPQ-@XPs(v4 -zO@n(>lCq)i)zOVV2@L##v2AE3E1tf4qxZtgl(_^C&z6FkI&afT*K#~ThhcY{+1l+< -z(Tbf62jR`yjHKou#kT7yB9mW2f6U00`!j@(Kl37n_}V+R)WD!0*b{L2PR5ucdykjv -z41uOoUAyW4xce-8jfexvGHfl%0;f^cUNVWk;VzEEu^cnfFH_Q#xY8&|(iYG1+T8L6%md=^77db66l -z$UATbS%Ok{70J)j@Js26WZj5cbc-0|sr|cqklhKA7|;3_(-O87#JgSw%f-)^yS-A- -zTS$@8YvRkcfNhRQJVWuz@mZnNs;Xk<41@>-L}!0V2UXM{a@|UBJ=Ob-3umC)_Z>NE -z=eLtjo%zg#-(E|nI%7FUa(6w=Ong~$N=T?qSwaZpIsjaVqu7?LLD@2qI{p<|q%9iH -zdc0S>Y3~_%JCPVY{B4P+3=#Un{A2XFXc^}TEGZKrZkHB%f6IL~E?$LZVq6w1bgsTrl=Z581l2VIO>J^qJ9|?-k;J8YDfj2?~^D@^^u8GNx^VwtMz7kZsqam;} -zR+nGH0Q%@A9}u(Q=A7jo39bB({`TjiI{-MmiXc%6YdXQMvI6H?Ux7%E!+TUiu^*$y -zdx98&Fy$o;!ut#iK1=YT`X46Gl^~V$KieL=rATEI4)Up1u&6Qp*NN_*@$d9rSVc@Y -z$?^}HYHw>XZ^-P^V7`z6uik>{Rz(Q%QE -ze)b*a%l{qf`~@!JSM>K-Dj2;1VJB7UFqtfMcdWZvkzID!Jcf1vcmHc+6eOP(8~oC% -zT?MpJD8J=Qa%B~Iba(?}&d9u0%Y_a-yS6^Ad!qOWk#W|s!1Zgl;5;nw@o8V}4D#q;)EPozvwZNy6B_-n0O?d>ZS -zvo;vDQabqAizk)mGwq0ncXhu&MRpN1aVLKso1X$J_?pWZb@-4+cK86j;J~Y>7q(Bj_7ITH%n;_G7@3@KbjuF577D@Q!l+DXXUauYZ`76un0~P4!9w74rZ0vQ5{WPhl -zvpH%xHa6etE$0A%nFHoso9r@(>j+%!EqF)3#K%Qltw%#Trg5l;oK*aiyI|^5Uw42F -z)s5it4o~KT0ZA~WPq}pSo(+e&-tYMf%JC>Tm+LjiL6-OJMdyE^-ip?7COao#Pj7$9 -zkX@}60}%AKlMt1ba$b0ijJgQbR}Ey)RNk+ftL!9u*n>52#dqe#=B3+BsfwG&Ar&q8 -z7X~mi!+ROJcn9#l+DY!efhnJ@#T52zcG*eRmjBvX5ltP=e{6M}uRi%T>f{v(Zh{q6 -zpzu)5g(4&48R{8-;RBMT`*}GIsSN!;=m8gqHkG2jt(IQN>j-7`td}J{&2-)Tk8af8 -zXND6F>@1V9I2W~VxuBmM4z2lx*wJ8O)O8S@_rjN(xlQ-8665RB$z%{c?E&u9@!31I -zjf&zrgG5S-tjDfjfDc)A48V=cVM$zCP*MZQFfm!Qd+(VUj4`!m>hN`%8Jaw(X*Fx! -zdynz40m^IZybh4@fOAtp0#xojeAfU6m$$F!&o&qj~y&=KiETVM~R&8at>S#>ed4wW$=p -z#j}z&|8-^%@u2&w&Gc~QZu)t>zFq1z_Wc;Fdr+r7;~b`Q5rv1k8sB;i(;*(W>~b!8 -zv%44!Ed-PRKem51FY005kQ?CEiQIA>czycS)OT{_Z`B3-`(g5_PY#7-Dq{z3Sa;`O -zf0JQ1Y1+W9_E!V?jnOwOCs7!}?q4pQ -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 -zLA&qxGC*k1g6)F*Ojy7cl@pr1zUX3Q32tWb -zn=8nBdhfFXcwo+wGTe!Ra;Z-$M(ajfIt@fd$1u7!vu(ZzSxTByag&n}AYyXrcQ4lc -zsLmAtph`YPk@P_(3G+ETH4uZ_Zs2ag(Igz2_%+VE>Z}i;CR(JIocQB=xU?SD?!~E= -zA4%zx)db6Lx@2n16%=m&E-;x?%N>iBnqa#BYj^}3#4*x&0-_k!tL{u`l3`z7#hv9^ -zZO!+FX(>;*Y+H|>)cOMe-AIErrfq#Xmy5O8;mg-*UspoWK8f<12YD5*7b@=*N6lljE&G+hA8kH|ddOX<+Mj;Kt(329gYEa*xQ8kf6_vDaUpFI7Tyde -z@--tS-pi*kypUv*S9%;GUp;C)QLc`+3fHCksY(;R1x&NF2^~nWm#kPutB$`2d5X&O -z0_3R0!TfzuAsR%LWMTQnNT(@a=0C@o_<0CyOUW4Bv=_S42@vJJHqeBMhGyTqQd7t) -zxQI=5=1$RMPb{v%!)%1jRU^m^+WsVKsx)W2x`*P!Ne}nKp(QNkgj*P7)9*1M-#y4m -z5Rg3kGNKq^B~!R~w^+I6e6tkJDUEctktH*(OD}q{>Mn82l-iug=-cALxXe4g)B^8n -zD&uU+e>VPS3Sq2etbltRQ($jQDP3S8c8jtA`7T>f4XLTo=L(anZM}n0<6eg3Z|UK( -z!`*2GY;01gxuLdpl9LnEc$!O|7ME7=zPyg0)8|~Fs!}A>HhjbHBd9-G+48JWtn2a-1qQ$&PXCLzqP?HNb&X%8 -zTV*%sCe$tbj>ZFHb@O=n -ze~9FDWukMBDpXD~M`M@%%#RHmOn@RwK}IJ+#u?Dm51xu@_*9$S^`|^=-<0Nx0kyL< -z_Qzwg0b!oJZ@2WkZq*j5gv~iQrUyB4r7cC0{(yvWB+w2g>3sbrRy%_2#ckf9&^#d~ -z+ay7vG;10CW-Y1G`?Kutry?5h=i!W=b< -z3iG@?4By5X@}F==?n;kzgMil@E|TsQMk~lGZ;8 -z7d`46h%thWE2-apGB3;)qFM>Nsp0a560mYW -zL4^@$qv+j|mo@3DHE0z5+qA};lVTimfTjVI_xrkU80M5QMk!azZ~nI{)H^=YnLkq~ -zZ>I2K#S0dNZLj?|&@mPNQu>1PnXrLPFSWxvJCP`YwaLI=|8$?SRdNX=3_L`?*^o87 -z82=NR{~L=jH?_iVt6wFyD5q!GA_YtNOGF2(=utXlY2&i~PbRbF`t(Z0k>vO!s{gLj -z%Q?o!oCAP2EntD8gw~&1y+y=;;Hi<2$8(+Cvm@ri<{_my_|i!YPipiUp=G%KNxG0{ -z>|BIfTnc52{m3I=1Wac&W6W;n%+Q#uE+4vHA>YU`SonIohPoTRR0F1Eop)QN{ZUxi -zs9_ImHaIx$Pnf95o9JG&uSMo5EMPnM;k)wzgE)jZ@H%wW{ZbGiiGDeToF`8d8n{>h -z^bmIEHSAs_%8NPBlR{YcP9r4XdGOWiSGR5?}@WCuaQCh`18vQ4Q=kPSP^JB -z2j>1!D_ugjGk~yVBqW;38 -z=%H#?M^F-40$4_@pJ8*Axs*g*=V+~n;sX##^=C4Q#y0i$#dw@xQ2q$M@$!94Y+fiE -zf5LKd4ry4RiZAMYTXOsxYpGCP3JA-8xS62PNB6w3&R)qqa<;6GN^v!Kk0^b2wMLQs -zBUc+M@&!egg{zP!0V`4{`P|F+Ta1pn5MPTk<*PwNXn#C(f@ck&C(bE55d<7NnHcrj -z;3SsOGrhN|10xrzi2Y-${Md^+RBQ?K;PIKh1^~Q|Hb)`FbZ~r3d)t}gEvx_k1G6YZ?K9qYvocOAleAF;78U+2qNOO%$bv??7L8Hz;GdS&Gv0i+?Usr-=dod@ -zILG6c6`zh?eU+-h?B{yT_=dR=GDvvuw}BM -z-Spv?V(Hr0Fof7CLJG9z?qon -zOzAe`AwMzfeUcig-Xlwc!ijxh3yUoX_E?{ubgACkZmZ-)Z)@RXu=|4fuL3HVw|?wT -z=dep^V6}yD)%eeX?<6}PG~HO2!yba?5ybJ61s{WC;OEl_If?M>eqT43yQl)f-K#5u -zCPTe7)nJBkDXgusBUE@#sFx7KiNc7HJiV3$9Y&r4DwT*Z-~K$)JN+zriCH15;a8Fo$;QHN{a??HzHf(^iLOZLz -z=WKLttiIU8iJyfdX@9-i+>g`WfDo -z$){%Awu2v>E|lQ{O`alS+MnAJyuI>^pJwquG9C(*t>M&|H7-Lb{kj4Sifl|vh8-mr -z$w55KliaFPl?)&FAmd5ZE!N3&UWZxi26ueSdNY_YK -zWXsWkaZy%v2mWdbe>OH0kG%4s*mVFd119>^h{;W~&zH8%oYZxv^%;n~ut4Vp=oy@w -z5kYL{xTFv22OHOH5mq0~!%1qZQwgkpVm{xG2?{3VGCD;2y&|W8#rbI5vM9rU^09?4 -zo+wfsu-%U-FNpc1h)t~^4!(eWV7-u$8M0`9zA_WQL~fw*wpLd(ADFU+wqGv{twGbDEv=4iW!k_? -zJb9YeQK3#Rd83?RACq#Fc>X44hLFWybww2kWZ82gg&tB+h45Qd)u2G(cKhj+1k){C -zQ!1pra_7KoVamG+tse&;8{bc@1SN1D9>FEkre-js)>pM}l`@8q_8Hjl4w%lrhpd8j -ziLGquTVmk94B}QDpT$R3_ZX6u7E4Jc%aGzim_vSIG^(q~->J}!V_vy`;}t{bpwMM4v8#Z_ -zx=FecJW?o6Y;jXl^-mE?a7k>E!>d<;^Sqbig;zy4Ndo4tqKk8w1P>ZUznmspL7zjM -z>O{$}9s`?+1M>NZ{DtnLvE)oa*y~Ix;!%00dkfw%fbx$Sn;p;UcF&vzQ}0?b2jGv; -zP-ClVa%7NFo8srdMfL6~9MPC6;JiQi2?2yM^n|DamNjmYyCG>M@*xelQo0qR@B}@F -z^#Q9Zz4>q3Ll*g}xA5AXNTy@vLppzxm*P@tbl$BoiAtyvB*%Pf-xq3~STCj!nQisN -zhQ(niVk)&Tc?F@SYuf&sLXj`xVGFC{bG)vwkQc4bbCBQb@cEp`Pj0J7p6AoA=c|^! -zl@uZkyP|!${q---4-K^6OUopxdN(|2x|v)n#OHT4k8!=+0hl#l&}8$@Xb`*$t-}KI -zU+!(K+T*`ADkv`uITQYFJ_>IF%4s5D)yO4aj5~@#`nzu*i?MQ^IqzWK0kS+x$EdDq -zK)YHNKde$apR+_5bcV~9NK5_Ba(6ZiZ{6f`tABf`L=H-_Hg;{zW~;XM{!-0)tT=*> -z_N#+O4-QZt2__fibzt$)bZo||!f>8>T2e?^?;(LqFWf12T283;G1%@OT{5`XDjmnn -z!c}sfp7Xdw%Sj@L7tFtlTQ9YJ2`4&IyI@nrf(-7`Z95PkS)!wXxj`P1kiW`uYJLo# -zB*vG+ay*6}^QM58(*9;dppX`y7&rL9ax(gB?q$zw0ZCw)V8 -zZzGOJ6!YrH@G-!ZL0jxZ=?zhD7l2-$56xYc -zVQzEqJ#NwT-u_?51=m%O+u6u|$efE5o| -zW9+`qWuw83!>B=vt@C3rPR>th^I*T=gZQ!-%Pfcxt4X1sw`| -zcr_9`&*pUF3>BeI?c2)Ilzz(@cS%4&3Aopm(4+Yf-drf*e}%GF$;aQLM-hb$H)9zB$`N -z1Cc7cz08F_t`R@^0J`RJK_rBecrH#iK;-*L*yX7ZwZD^I9xP&w+-g`NBEQgFy5jL$ -z0IVM{A3Y^b`T401!<^27=-~|a!z)GQ%~*!^e~VnHF7VSh!u5dcZ~WWF_2%%KIbSKO -zF!^sE2jA`;VTlDby74Rww=^tX%+%~njE@*$-slK|nY{en?z*Ts#K_PDWM)H4eP%|a -zFmF-?lR}T^_=3govq*}FCzuvP%e{vM!GMHUX0WH;s6G&Bh7i2twS1KKA -zyUTCbTJKjd(9?Fx67rF|(eNUuILjY|ai1yKxak(I)^J^sv@NV1*m)f4GURnyQckBH|sZ}q0#_R4)nn|(c -zGZvgt+x@$wIA#wcj@G>?6I0$SDA1su%C|o)NFIdja1GrAT0Ct80oZCq0>Po6-`UQz -zX@$eW5D>As^8T=N7wdkle&P-A#%3n2&Bfo6Zj|P42|(t5q48oMERHn^fy6l* -z-f!e8UQa%b%BcY~0AQO7&iFwGwb~37NfuTV#NXQy$jWZ1Vp}BoeNT1(I1fM|f6uki -z{-Ow7Xr -z?~v1{1>0f#3qS;^T6zZWRwULjb#45BcT(&pBLoj=w1v!jRoFF80s0egg#mB7_}Hm5 -zMs%9+175{fKZod~oMX;WomGVuSRCQ~TCK~*ILl(2sLD#MbOB19jAu*sQZTFEZt=e- -zYsbHlLR$VYt7=-&Q8ehrwGPW-+hG-(M)y$4;t# -z*pDG3y62_BU(mO4bloY3&jagALI9&-u)YN2l4b`reQM7P27qM2ABdhg~;0#mLg@^zdH!xOdK=v)-? -zNFuE2Xz_<=e4!AJ*&lBr;IHTVUHD7xc{S1x`gubG5qq5Hi6J^xA4=?H)h? -z+Nz*@0azmdOX>^a=d-$T)oPk^NZHF|YKzzfXv!%TExK?cZlevhL!35j{fsQ*I&{yO -zc#ud8Be|11Ce=hI@pqq45ybBxpppA<=W6%tpT4+oK9-LoLiMm^XZLy0hq4>feo -z1A{dcR||_s1$e2e%&%#gs}!Qb>2j8l>R|}G9KLo5{*3EmCktP -z(c9+>Axa*hed9g%jWq3iS-(tQ-0O!Ixzxb?h1|X4vXm5-pFt>XZn2cbHXQPS%(ByO -zR%ri{%F3+UdmLbV1KR8W5O{3ZxT`$Ni&&-ID2?|YRzG_QZ~A@V`L6&{QoiyMr4!(- -z0M4PTx&r>Y+^C)nMW>3Wx2%fE^hZAes7a0;mK$NdvG?=ylo;QEj?Wo?biZHTdIR7G -zkWdQs`pm(jSmZ&m-HSeT>3y9tq(iA0Aqe{o4nQm!RcXbi`1V~(=q`Z=lj_a>C6&Kn -zQQ*S8sK?F@X3|AvY?vj_p$fbMJIPVP36@h_j^7Pqv|BoGjo6nyQkw+Wk9zHkANm0eAQ -zfg|}!SQf3Y%_j-B&2iJ;2gDi00kCjs%;?6KU=_L+&}CP#GGRIon^z-9*^ODdZUglF -z+sO-(w^!;T)v!E)^~m;syJ2+yS9vek938>}nR7pP6>_q3I1M5D@cL)K6OKcy=Wi(r -zeTf{dB)2#QkW7?K)nr;HW>FrS=>Yp>i}k$HR@M`imsj&W|FO`m=luir0&nP;-JR2g -zeL1*T0z+yjm9O@ngS>P&rtk8quQ{<(iLTxV*ZBzZ{(*pS4mR3qE3J{Wfuvk@i$fu# -zgoUNBvv#M=xI@?mZWdNfopbq2c=dl1q -z04wr2q^uzxpXj2qNkFthQ0me11&))G6<;qXQHaPmy;+eY6d$t6LfR=*h+I0Bea|i>P!`x9OTNWSN -z -zfky!|QjtO|cRy09gyc7qnQ;U;5ov~qRR3y+YgLHnGKx6FW$0dRGJhuyC9}7OCxTY9 -zbGJNWgrj1_=!HF)QnK<%)ZDNXqYdMp*3M#aQ^1yc9?&E-KT`osgemu6d*s1~$#|Y@ -z2)&jue9bmx82bV`)|lL4{V0(N%m7vXFtgJRRP(#%agM;ij{a=hDd5CTMcyDh8C`=Y -zZfUUgsg*9i+J$2`s-u>Li>zwseju{j;>QpRfTUF8R98LOAbfx72$BNi9kE=$m!XsE -z;@wKc!DIX8y~+Pm&30gW&+}h;PKoA=69lXEHU|pGb~1b5pL04C;m1;W -zrFSGpAbzBqv7FqIW -z8_z52+;6|W_kC8w@{_a|b4b_P8MY`(L)N8M{X{-y5KP6-v<71o+_#Iy&Ot8~xSi0- -zj+r2z?l%luk_bqIRlywi(Tk)ApU>=mD@Cr9QQBh61KmIeEiu$3!LQYh!}d#w6-=@Z -zJfnOO7ykVBXU9hl74Wuw&Z<(w%P};;~eELG5US!&T!?--f{ -z#IcRmMoUlv@T0BKGOBX}eRw@Y`@-II@ytM;2QY}X5q4_^;hp!s8bTS{qOq2G5F2*i -zSRqiqftI&^Vf;y&sl$Y}^f5Q^Ew4?|eRSA3A#M*S73)S9=>n%(1qo*%ANlTcCVG$8 -z!tmb?l@9DbL%casFGpWv-pIQ!)Nha_brdINc91fTmmKqUJ9octx~r1_J7+#WAF(ge -zB5DlBU+C$xPpv{OKHjzfOr2=KkMTscW^*MeLWH`7VL_vK)C+fDP`#G6FT9-Cl2VKR -z1Vf6E?`WNtCVLhPLP?xKWR?DGB!{(~AfI3XQhbrpOec|N_OZ^#@RSK1DF>lB&D~Ss|CR=so^gszhgQ$+ -zS~*TY)@EoBC4oxoZ&ji4F?=ieW_?UO-0f;B7-47qLQyf|xq@t$P6IFH45{1qcG-M2 -zF4Q-b^X%H-^!b<_QiP-U6gcA-AYcXDa`^`xmCS9!JBXgy>?l;txf&R7$^clMv9OsQ -z*-4DXH-mvh*Ctb+_mnqn)bK9`{Df(b77Eq-IExHg$Bm}BH=5E3V;}@DQ2#MuJXP_` -zUxpds$Xs7s_r56AljmmjB0rQzyeB<|;J`~hdREIjA1CGQf2KU6v_p7SYgL(3ZH9H{ -zIbGl+|6(jGbKLotM7ECqlqrI^T@aB&7vP6$ -zEuAb?wCGi&8nKbvRDY5nYB$;E(g;lbA5T{u5JmfSL6Gi{knV1zyQEV(rJJQ&UZe!1 -zrBh%L5s;7+q`SMMySu?}*yZ>Ay|XjV%v1Nd=iGBLuzo$^$WIGvum=7Y{(EnhyARxv -za}DN_cUTvALw=8cBDBeSYi*Jwp{vmpugcvw=Gl~bgl)d&B4~1UgM;>m*_2ZBAg71R -zaGXl<{y;&Gsn6&yOKYB6c!~%tmRm^BW7PddMWjH0F&pM&ytf;`c8}@^T-L%*a&>xHY#j -z!Tr<<)GRnPae!KN`UFG|-i{R*Cr -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 -z_CScZy -z3N?KYRmyZ0P*+o>U0WCB!L5cO-XMQ=6HMLX+R){Bp^#nNHUuB{807!-*@^cj=I -zYIlO(LRwWu6I}e~(&nvK=&E(7-}M!It*64yFyaC!yxCC?$)Y%=)O0NS5gxfhMjZtKv@GzNu_ -zyUvtuPhqyv*Alu4-9l;c!Dl`Fca1zNaTclFn&es4RRm)M$z15&Ki--k{iG)Whvdn_ -z$3glJk6&H_bx)V7)I^~Tc0@phLt@!bMZ|w4?U8+B;32#(45~0NUL32Zrmh-;D4N+W -zE26*MgM=mwp5#+~fG{N_Spx>#JR8#(7!YXau37+Xuw#2~G417h!@f6=(bgji|I&2j@$pr)TZ^M+$VgQTI1C&ouJY_?1qbdl&z?K*u6{vDi9CSrOj1?_G8Y -zbq7J?#&2`5P|fQn2MkY|e@eu=QNoOb)F@g5RQE1eY}eXQ;rx-!i;L8Fjv&Kb&P*ov -zR8<%*b0lx{|5Uk_f7ynrK)SY)>@$kU-%Eg^Wms*bD(pLZ@s~UF3d#^U9HS%?*(%B@ -z(?VZV;(3u8jxLOnXgP)u;nGrlb_^Z5IJ1iiLmuvhDxfdB(#fTbZ3nhZd(fX;V?va% -z!foFxx)S#C8+5<;z@wogE4I0g_!uIF@dH2j51sVw1ti(<87?@y#-tE)25oAWQz?yT -z2d2U@7tVLVd)I7QwX@7RBF%Dd*$+jM|5_WGW1ZH+TGI5~k+xh=Uok(6Y(xAbNq?oj -zG3Zy51|2zD|AbVojWaE(xp&A5eP0Y3B0jLQk=8l;!rb&u;yDmXi-HFn#-Gk&+=v}U -zv8PtMC1k9EZXFF6XE!`iP8;Huku^Ftc@QN5YH9`u$&2=gHM>nA~JrK|r&W(KzmMTI3#}cG=YHw!YU6oB5pvZJM()Sj*~W#z;;3Tedn|U87y++_Q$Fmj88- -z9XHB3G2l; -z6|DMSH;xbSD{rs->8yPc+5<{mS>y};CF|NS!E(CXVJ9u~d^qJ7L+pSygYSZ71ZmgS -z_eZtGNb;e9VI~5PGUcB+KBgH@Pbs__=n_2n-$UL^Kq+XO)@cCL5pl>SqBWSFU9E -zuF$s%vsuvM%!w1D(Q(7=ZhDIk1W#YFmG63YxJQ)mdHuxlry0>T>*1|gSUuX+#Lwgp -zZ(#OvWc|dEvi*vn$5DQW6bVXd5?;~*~v)5AMQ*0K}FrUwHq^}8Cl_dtt*a-zY$+@gP%}r9db#z)62Ni2E6?3n7mPk@ -zw3$g0Pol`Ey_QW;GE|YkH7#QsJKD`fbM<6e0d$lOon8=JWTw`+9EncGYMGkV7=y=k -za#DQ?oM8Q_-gEOTWv}kc-Yf9ih5kPFuIQBS8zq@mRPi~a?4-QGgqE^N=WVWIJ(~Xk -zCHSZu(~wqVa@9m8+A5!`pQlk;beVAEpEwiG=-rhAsN^2y+jpso9j>4#0IJc|ud!=kE4?N+&!JCqAon&q*#d!K}&hF>09@CnQZZrSID6Uy$Fgz!!4N5hm^pOZ1&Ynqx!$E6D>&P9yU$oE3=iv0}5fjmcH=ptMMj$kw{96X}nJ2xbCj5&$6BaFMUm+Kyb<2mNsZ -zQ%Fft)wwBSL_i_%gEH#@(z1q`d<)-Q#co`3CSM>Sx~v|aeW}yu7EI9hE6W1<#KyLq -z?`=iC>8@M|&cUhvF=+~S9A-ysQmz|S&oR$oIKVtr8sq$u{vtQGepMszs1e<%1tEm(Jk(dJpt#amA;_T+6o -zTnT-@RJb-0zd;-CzPdCQULOtp7uFSS03e2ZCXXHYX$+}DQ-im=Q#vB)mC;SoV3$iiIr4@mQmnR_(A|2^2Yg=W2f%Ee|*BwaD^w8n}=W-zv)D5G({vDR8q -zcLvaNO8>9cB5>Pr -z+`T1LGXQb8RjaupBr%0Y)1fhxf;|~O{7tJy(LvX?ok8prj9nrlp`q%RtlxUAm_EJK -zAi=pqIrERhc4&VcmU`ryYu7@M#AlT&%QP9BdG -zYX6GC&}OvdF9PcgUy9yv*VLEy(_8*sjf|4c##y8Ky63%RO8~j-#wvjsut|RK4^^1c -zBNH{sGZ+g_=cXu&kosPwQzh$!fi!_4aIHiVyw0teZLMANA$3$9)ozIR2tFxEbLp&% -zy}B&#lE)H`MNYeOTvUYb-1z7=;r$$z`&4lHUYZ?C5^W+j>}dYf^l=oD?+-Y5F^nZa -z1QkspoWQNQ&j02CEGvsIR^*TRA{O@j?Fxv@$TOj$sF1xL>pUqy7+@U&@iTuu2J%3? -z+W@oN5QUw`Z5GsTQ{4d^E#l;-r4&!>faPrb-7iVICn&GGxSK%g4qC8yVj4MMf07iG -zLmrd3&zOb^$a82u*_o^djpT-KN8++wIJ}Fc%llWX9xtHK#~hB=eO~YcwtqaZV)6#= -z`+A_Ck#6=%OC!6gThEe!_ENx!;3oieKgPgGDrm)RGt^>@hZy4rnl37eUQAq^^=bY? -zI|Gn*WfH93|9lT&&JxttioKpZp8nU_>a2sK=rVND=;~S^PAA5*dopHVy7UT>cG2 -zT!5BH8kOH=5*pf4!2oQVzcOg&M{%| -zo4?ph2fA(id`;e~XdO(aQ-sKhhZ_3=7awNz;+g6}pz+4=DDS^*f -z*5EkJ4{zZe=0P;jDUKvqtc}J@rS|T67`Q{~KXhy?FpdZ?A|O%uR -z^HzKQzOd7|GQeB)DtZJmc|)+2Dnd1k2X@IAk?Am*!PO`SY^mY6qOT4kn`ySiSfM-% -zf^+xK*23V1+@dtz={UrJ>)CMCH&|fH+wM1+0BHaiE4ws_rcx|B(m;jF^w@MTr*CE! -zysN?X4kTIFdeO(qCpSV(1y=I|Nr%|cU3b$oSnwV~IRpYXo#s2StJ1px=u6jzbVGsh -zi2RkLag`;7Yf7B|CU{OE_W+srW*!%_xzQdbijF82V|kM3CL5%^T1RoTP9TMRBiFI3 -zzUK4UuvpF1yyLBZ_xxKxMmBB$-$0#2O?0|WbI)2;zRGkNNOBSY91+8{F|*vbchVC& -zOIAET7aE2b6n+{u_S^yw1JtSndf(Ep??~JC`k{1YAVxMc4#J0seObZvh3Z3u^qX{> -z8LFcPHO84lJ0R%KjA0myuccp1DJ{X>hJqhv@dTjp+-D)!As|TYh%5gww6R$tH#Z^> -zoms%Fpa&>=sw;jw^)Sa>fwDM^MQAlWIByA5<>h^>@n54NoSI4MgH=x`iwfKzqw8l} -zew2*bxqoMiHiMp;e+`9+vxIKo-suI6q8N5k()@R5LLx#jHW?*7Qx`@J2dRV&5x%S_ -z9ucv(E&#MnUz_DyVvh>lWUWG*`Co7DMWwzjCBJSPY%AY<%m7^s^P~{%+2UMz0dn49`*5t1neOTYANP!3`oX#ha=o!Swtoyjt1AluOfc&u<=qpI}l3#>&Gq#y{DTP{TVBmfyH2Ljg@)73- -z)hT#xFYSFXYPP*B#+{QwvI@(cwlFQv;VYy$Sjk>|6nZ^ok2>g078fpDck_xqj -zKEbT0rwQ(k2EEybp>>e~#GyJKI4LnPn*IAhy& -z3)(a13?6jSy(*RIs9uxY@|nf`L|A89VLYP22}8j8z83Ut=iq#kM$q-YO?i>tVhsFS -z(4^*x$R{|-<85<6b?8kDX%qR>B=eX+`KHXPqrcV-|NYz}H(GmY0|3gT112EdY)Q;X -zIRf(TMvABXLWmttqFlgfcAE%aC0$a22n|@(`?>8_m)(fQNo#;}( -z-dF`YbtZgVK+m#PwC{+()AJf<7#O -zC@|qfGq#3r^0Oc%fa*KjREPFcWh#W1x;9a#*7Q80zST`T1U%v`V?~TTpWdS)PFn=- -zKqU^MsC9zQG@L0vXkPz<&tGpElkYl27Z}0|LyUFXg3$f1H5y5ZLlNS5@@+>j66n&@ -zg_Q|0&<+`Bw73KL5bNB<;cu#;77X7UTyf`}QrPmaMMDFH3JH@nio6xL?pL3JePAef -zHPO5(7!dTGU}FF%Y~StgBiV$m-W56mj{!QVrzA`=V(06hA&P7#(MaZ9LOl!YIW36 -zy(d$W|3X`OIPBwze#Zr^O+Qg5fqb2!KAH8WSYUpyZ{`8tqCE3VoWeXH2gJjnnZf++ -z!&2^8IAEUuusZ7nvhRnhMR5+FEiytO20eKuX=0}kC}#@p^Zx6^R&i!XsBq5o+T -z-lA}Q>2{Chl8g!Ac?XJRTAcF}PZx+DTL0prf_>XexO$ybxOB?ZLYzmwaQ~M&#G8iH -z2w+)&>+%uo6ee -z*6wr+W_`Hgy-IFre(sJhUjt+gpah^yg@o@rziaI(v7DmDX{4OiB-t4PGv3P|-wOL^ -z3AeBnmdPE%Tb~{Z=x@%$oYCpPle)NQr}iUpdUj`^RJejrKEL?{qbBQB=HCyC4O#Nu -z*5d2DRMtRu8DePB)keIIu0kV-Y)^#K$Yx$LL17`)&3LK~0JsEz2}Ykk<`@%QQe$9A -zi{97%38nXuT`V^H1{~~=V5N@AYt_?2;=-q%e5}cu4JC&Js~;ALSHjvUf-O7U))PBgQ)8M?c9PrtP3*3%2)>8Y|@jOs5hnUMR5$xQNp99^XR+ -ze7_?i4!kW|?8DbP$>npF6nBsW!ORv97x^rP;cl|V<`$ei(c|!7Klb$X-!Z_V4#OvV -zN6K3Wi=9PJQ}dC3F1Y)q623?1)7CD>p1-XRpwD -zYX&{wstXR#a49NfdGI#f+1ebt(g)PEr7`PJWki%I?~e6u@M8wN$*oDip=lO!9_z^f -zf~qtY{_QQFjfC=>aa7#Aa-#bCuk8dqWB9>3*XrBV8=(lV^0Tg9r8FNf?f@=5Ij5U{ -znL4n>iWe3~34+C9cl(W+128x} -zOggVYQXAW-82>~KO=!R2+K_q7qY)4o2Wnoenw8cJc3l{X+c}da%wl!0&jmc{_Apqt -z$t^ycbixvFesQyuWtZ^DGYS^9{_F*SPftrtv`{q->h=xZ*7&l}jF-^c3`Y7#koFRX -z=qATCF+a6_fQyhUWX8tPCzLe}3-c1x|0Mq=*GL13g##TCwyb^j&dR~QN24@pD4UI{ -zfO11DS}Bdg2a?JB+`r#l&PZK~_!_-qg?sF5al<3;XKjQOr3UM#W2A$;>Z`f#lt9c0 -zQx{lki+^v2@ou*qE>cu@SfA)F=wO9;*TE(0>iHw?U4_gW1@{D4TQ#Zj)TRHW&rl<) -z-`TkByi=+RQ8RL?XK5YQojJvdZTZuq_zz71$}(ZD5Vyj+0|m2ZA`3dKs4d*z0oyVJ -zaWYIWtv#3`<&I>?3bNJ7Q2d#6k*;L&@-tRah~1+el;Bf0aqk$5ga7fz^30a|*@fu9 -z_8C4PX8|B6_>O3)WDWgI8E -zq@Qq^oR!4UPe#9PWA4I4TXN>5TIYB*PYC1)???$amTe6PDjwKaruS`=Cj~Ngjy)>+vrmkq-}NCbnii_G{fAxBUO1q -z3X(M827AaurvqeT*)fsH-Stp%|0^B?%307Hxn|69FGYC(9U={qyWBW0R2S;{=eaSv -zND1lN>i&vzV@ykvKY -z(t!KQ_ql@;N-R%=6kw}M9i@96&7)tG@)G^)>=yyv6B{6s1U9iXe5TF2PvFz>y5#;S -z)n6G7-p@5S#@c_C%U;crq&?=FbG?#IV~WDh!g+j5_fmRJEtCff3hZs|y~#rKAyyDO -zXm+pkqeFZaCVDTdkV`$}X6!2}0AhiYj4HvX-6A`pQQX27%-bg0{3pvlWHill2sKGL -zveJ5EnsS({_1=o+f%qzwmno_uNc&!pDsFs$kqEM#{YFtB>`2Ag;^dkMX-7BLtjqc> -z8rV%%m^NL{R+{nb*`X4f+^o^qf>FOvzwECdS&5+Bl5NC7C>y*u$NS7Cl2{o&o;Hp9 -zv%K-{64}0L2Bt*MLIe_Ic-P7~i_~zIVw1&v5_qX!+bsI);+eB@FlN$);D5aqHs#Rc -z88gpeK`{4v@Z59(9Wn?Pk46R4+=WQ~GF^Mam)b7~ffGaiA<*wL|6mjNhbot-|153b -zu(FWVPY#OJL9GBs2^iMC+-{S*)tXtrLYxc>c2A2r56d;(DPySfu -z!F#`hNU7h=re1%3Zw$5mDg{;}^368x3&FPsJ%6EGoc8FcY|{O{x9Kqdv#cGJO+l{vTt2pl&BJy*xsH7QU%+;g|GkJ(*~m9ssrghMo+m}9 -zCUu_dcAqE{0jXhuW&14!}JA+ReWyPoKXFmbI`X{9RLb;;XxOUgkS?RBBm -zkgO<)mcZGycWxLi?=2B&g%ZDOJLFjYykfuoffZDC)XEVsKyZOC&!Pw;?@mGr- -z)7Ur2MU7BO1XAR{CK0woOz_0rE -z=4!1j-edT4k-TSW@?Kq1RiM~KH?S{{_J*>1Jsfu$i9skKb%Wnr8YfD=QE8g^aLbG^ -zD+(nAoT@|78EkCH%lca@S-umt5@9!bX@cL9fR-Lqc!512YqWGAn*ecQFB&|b9MG9B -zg&P|K`H~tNC;I{Ngc!e+c)BH}VnQQTdQP?(;639fRcsi~V9tPD7uY!XL{QuecnaM= -zS>f#HCtMnuarU4Z?|Q8AA$@@AQ|Me{g;L7yOmt487l@rve4**q;;Jn88G^6JMY67A -za|ng{^wie5O+#aSjNC$PLQ9k$xDvJ^SQsh)PVRU%7h*dZ@kIzkq-MSAyBjB}z -z6FC@yx3~T0?tN%ep=+ -z(Xrq_@eo7PR|`1hZ_OW%iX9_qAkm7QtbmxvW>M^3x=B9TTdLqtuWv*fEg!Ho{Qz+Y -zUXVBzmh<|4_~A-RIx~_2(aya}ZYl9}jw1UWrg`MRoBwfph|pCI>X0NRweJU^LJcPp -zA|5nn5~3Fy4BJC?{UnYY;u9&7ff?m5!9$g7#sdy`TdJJjKM;Li81!P;rciqn3O5ugR#rz -zXCxPKc(b{(^KX2HEE^$0s^WUi5F7?>bYo$&@zQA(u*|;CgLHMsz_u)r`q!A>%P-r1 -zQt?p_UHzBCdh?~{oaFW_iB-I$Vs`bXB4mDqc)~vc-@2Q=Cqp!xRpCixh-b{y`gS(fs%UjwE|}_brW= -z=cuIOwH3?sW5s+)hel`7heiQ*8zRb(Miy9D6`9o!a>;XlZ$+FT%iD{JvJLX#q90&b -z;S#|maG@Kw;jQUc5$ChP%1A}%;8 -zP5L#7BHB7f7De}7>%mH#7|p@HI!A<7z&?iPNw>eHx~9~VCF$uVCxv#|2wb04aOG^6 -zrU)yy$p$J%yo5-pB36`}p;SP+^(bJvF88FjObnA*EJvD!?$%uI2e#}un=A*kM=&#q -zKA_CyU%kVu>nK7R%uw80L;*^pz}YoyMW*~C)MVZ8U3ZU}b@?B|w&KG)0g-`qq4KY5 -zGeZY)>s9xxh$+bc6R0|O$``D-Qly3_iv5@r`L0^la-lc_h9qvd>n{)RLT_*%mpV~8 -zi4fGgf{RuzXIrO!6!l5^^y4UM@_-)NQS^K#s)miCgdO#t%#awZE2zDYNxgecDbu8{ -zUkG@S>JyYNlT+g&A5|I%j`GdMi~}Y}Ao1%=0;N}4;0^C{O_7;i2KgCEc8{ -zWk)S-YJj;Z390u1d>$8A!QP>S-Mt%?h0L~l(h}V8S@CQ9IX~?(-AJ9z1>Qaj5{H!R -zcyexRbFKXvK=rB>PF(rpB+BQkBOhOsUM)v_fVk!a_@K1G#(xNkesJX*2r!aznCU16mwyMzb2_HL -z4->~CB=Q~6ntf9mh)*!P9VAe~LCC)pDq(6>lp+ka4*+vB?P#1j-G`I%oJ>}lg5r#80sOAcYZpcx$U}WE0tU -zmt^D`-YSR)AV-(_RV!;(KmzCEx7s4ZqfE-_F`uoYxaX=sxK4C$gcfq;KFRrw2~H7h -z{M>T=p9m3(%aH%IMc3Niw*B{^wzoUT{oPKXim@bVukR@T>vQP;gX+k&Bm;pX5QccE -zU(5O-!Z0x&RbZutF!N&YzC<*PKIcYBL5ZG5Os)m41CErS=qnEXUT#U2oQ>&QB4H*u -z^pAph|59gk%0jcDJ{mtXC-Css@9LVmw1S1a+gSaiDTh_l&O_UuoujDyDqPYiiJTPl -zd{H9DtB|<`!(bJ~>bUYFlB$YsMoMF!3iJSW&jh#h4zsk&@Ub?L?2fmd*nFQgvvDCv -zkrWa)t_3aA61g7bQ!yA!Td&By$)rH0^r=!$Zv7(zZ&`8-u|wJnq7aSbJpxJZ1SP4D -z9q^OZXH}pvQ=*bue?lMG&ez|7sNw=V(^QFYrdtATa#f8QCAUw9uT@B@c$`#8m&JP* -zAaTZLI4W3TDQ2oS?PZ;7>8`44-nn)`s@GJ(T=Z0L#8z#ytVg!@9agx+o@yhlFp%<+ -znzFJh$mlpTXKDHGvZ?Mz?|UQJ3qYv%zD|xM^q=JhNwA7?L#v3|`FExZ4^0!)z9xBe -zR5Xy&B`t%klAruj0Q+<}@`H;B#1z%x4pHk9!%gHgR^(<5rthD_BHN=;Jj7YrM}vK$ -zpkQ(=)p5E_Q1aqW;Z42ROOKs;QeULVY8E2tIWR!oAr_!mCf6G+{txZU(3b~p>*oL# -z(`p9)^<6H@z_ERlZ%)6Jg1|ZcR``!%tIo;oj -zk98oIec3Vw|75Q#tKlZ!)5LavC_e6o_+tWrOl@O!xF6G;u)Q~+9q|Pw8{^re*_0o4 -z?zh|`YB*;$#aHqZqFnM%%6FRa**RH4bz2WdDxE(s+V6A1`Ifq^ofiSTFAa_=pT1~C -zV=|ws)*x_@Z@gwxQw*dJiX9sCB!#>P(i;>0DaMp#>AEi20=`bh4Haegl+Fcv1jRp~ -zrEJCFX32ey5J!I%*M5jQ$x4vg7xH2*v{!bU3VR-A4tO2N`8WM@Qw9ebQa@qSHHYI9xj@EzSkl`2G) -zR@*(e-2D^a4;ltqSpPas>Um>U2jfn5yOV*7eNv%M+u(RuKQY>~|1hEVC~#IOSMgEv -zb*vNQ`<#yDm%sh>Er&q`+Tk8zx~K&bS3)q)`QOlgEi00mdouJtxfmW4a!XjJRe2G -zq!^{vVZ4LGsISKf@jvK8Kcg7FsEpM+Wv#o4VMo$K6qCMWP-yU@xznbIBcyr8F9$;@ -z>eAw*(cYvzq2)!>ug6-?Oj53DD^uWo6RqN_-zs#BY3Kbd!-o*|RuX -zRFcxcJ<#@!v8ME|!Avs5WPTE1?I*x(x`|&*ObSmMlsO4Wo#o-ht%iOmbTthtJuREG -zqv%SD?}-i*zt2sx0#l(!!Sdi{%|j~TgotVVMJ@X>DsP1XO7nU78YuhQPfO;|^}0;@ -z&~@aHWau?Qx1EdSQklSqYPt1836TTH%P?%~N-0&;aFe;27GJyUtPI}OV7T2_ALlD! -zKEWP96?=F#yrd(_f?MlwVL7e$h=G(X`6cqo5d?fU9V{(GUn|b`tOyl6FCVzX{)aYN -zdh*AQlnji2mAr7_b~XWA2(Ua(n;uaz|J?2~r`AGfGA{ZDZ)abOQyiA(U5TqcKK42P -z(YS`{TGaYh(+}L~Ju>E~e|)!{q8zVz$iqwR1^ftrCa+vXjWIMCxXU^1Ug5RWACUir -zY~>5q?kvd$s+t8QTw`Q;nqSvsUjFJc-$+zz%FaC!zR;|)ZiiTQP`z4K8b|V>Bxx8d -zyiH5Yn>YMR`tJ>t{&>j!odlIsGTV%Qv(d>h+ZSs?l;hPtr1h1qAGBq{Yb1-#OrnM0 -zEgRVoCFY;1rGRpf#DOkfW(6f81U@+&31V8!$NbiC57&>G0C6!J2?`7UoaJ -z9OMdsXT~i9?`dp>SQ^J@rA#6I@^e9zPlA}aAW_v{O`(oD;FGQfEk}b>X2)~n{nvv( -zGW2KB8d(js`@Z;!nCb-tADclvZ!`zM@iTJV%HJ5Rga!X8Kv!cOE`)r=T2oxQaZB2k -znJQ_SS*Fx>7KyQ-2)B@2RzR-c>DI?7AKY(uKts75y>S-@;&YW0i;4UkWmgW|0L26V -zC=2*o%!V3V&*KS_c_qTx#pQVZW4%$E4ZVWhJRNg?=AlT(;xu=nHvf@Qc-yr&v3JFB -z1mTo$ewl!+7U?YtEE9BNEJ7@&HaQc1pYKVzH+oaOQ1mMRs4)Oe3O`4O!VDsEo0ecw -z%7$$ii$sn_-`y}c#VlZgdmucXwjIl|<|1VSu;DFVOr&n3t0*a5s9Zjfwgt;^|8vRI -zMn%bmIb#pNq}b+i7M -z0uLIp4QsiE(tloxe*moNLTN>Xc=+FbMOBZW#cE(+m+|B@bEBy&azuq4!$xLtSZ>Ly -z2`lbG4IG%w6o*J~uw3i?*vA{0_o}ry7E5QJfSKBR!@&iX3=FlcLVZ;!JGL{I6g -zqw0;G@;bWF98imP2LI|Jk`~jz@4VIP!%)w=Xt=cbcLCv6`hrsv0~-St+_%!5_GIHF>{A>5l-qc`1o# -zyS84F`1NDMgq8UECIZrEIH->Ld1{#oYHkP}ca3CR8geV_0G3(O9Go#p;xf^phEplVUyndwlR5r(Dj|R@{j2Bf9$=?irex -zs+0`m?c=Bnc?L6pF9VRHv?;H -zo?5XDiyxXpDyp5L0{nsi_&{~VaxMy`nWzrp@6(3o>^5D9(}1sYH>q<5F_Y@OxLn -zz18fbw2irimiF7A)e8#nWpt=v2Y=p&@({OBz68~7>R_o%%9+zUV)-KFP -zl&FWUDLatr+z9}w1IoqUX_L7cBsH5sGm;&jxIa!iR7RKihnX?wp2Nlh+c6L?>O{mV -zRMy!Y>Irs+PW|_e9xakm^7{BBT_frP5A+H$*tsU4nAejLV@y<2;+g}jN9S$1!zqDD -zcRq100t>W3nNO2R#h{*irBF0foK1zZydodR_rU{+VSwJ@~~?KM&ieQx|lf -z(lyXyap%ls;{fLwpsewb#&2uv=HUrd0vy}ms`+dR_GT9+>;5Xp>3#QU7Uib^xHrJ= -zWFWrpN?+rDEvEdcVHaNHSE(BGJajl35|~b+YfHaV^J@Xa1mirq+3pi?;3QMzgTPj1n(*kAxV0N(!>f;7fZW>u>j-R!#nsod4Fj#J?tqgZ~o -zbc0F24Jj#i)0gh3tZZW$MCOK8RLvG!YbPfqlIWh=fDG`S6Z-iuQru$%%(k@-D`=w6 -zUZh7lcIG%}aQOf0<>9+{5~}WjJ&Ddf3pZ0 -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 -zlTq{~!nk0==dBcF{Ru}=QDBrn4!2g -zhNVeM5xgTsrhWX;oZShSM(ta!*LA0K;{LRSk-ziVFRAZ92!uPTx;ZfGGTc{`_)Et? -z1g`U(UZH7Nz$H70H~F$n=PfYqvh*I3gt|&6^ZTJ0c|r5}l@zMR2!r@01FnL48hVDl4 -z9T(4NvdRYnW( -zW|=Ba;_~xBa=*CiVm8H>^4rSu&3BpJc(<>s5<nS-8_UOf&p@$DaknX{qPH` -z(>R1XBt4?*06NYcF)D!OysF(kF8*jYxr;ueGQ6b*P|o*+<-PwxQul_v2~-hEwJ9#Y -zs3os=od$#6MC=#!+{y8%TnY*zsbFRtd%8I096v|Vs?;&;PqDwLQa(sQ#N799uizLCnXvRK*#F9)OE9v9+`i;HL5`_BM|vM4hpn2E(eD~BVA`V%HO9bUJ=Ytz2N -zkgnUCcor_mFX-l=3eK-?V$794eEfFCy;`xtxgO;~d^$a=<9G{$JTbK>?+IaGENkWX -zw?n!*{!DJ5;P*Kby1UMNhs|X^UnqE@^Z5dvqHyZj*={(k7{m2-KzSl=cYH-t4?zdb -zw*Z;3_TY?>nhzZ7$L6jii$t&gF?l3}!9qRHB>CovmT@{puMtKOgm~y+ORoubwd@p0 -zMXV4bh|h?!aFlGE{U~*-1FIRHF!vo%r5ZFotvCabc_B0r!{8V6L7s^g5*genquGGp -zY+WA|x`%U2*nqMvq1L3dTOL2cS+s@FhNz~AzP7zC_{0y9aSC{i(Wtj{DhOKLcMta)(D7LM7|l -z`UjEJ31tvr<6d9}Lj?(Q$|IJIU)X$85gY`Q!G9gAx;A;oW0>&8?Q? -z%^7aYvshove&)?7NnA>-&UppIOrr%C?~3D#O(o?{0tbO)JULa(+aQzAf*ub#LSW4m -zz!#z6f;x%F@y43}D^wOtU3ZjW2Ug}EY2e;~QMo#v`$c&&B|bDn=HPJ14|^waui+0S -z-z;gxtLg~#dx9V3MCQZ+(oE@3@$M9V)CpX^zACCOXbFrJL~Vc+F)%uA_!)0*%yD)5 -zwuT=z|86%6{=qRi*7>B&=rmbdN4EbNLk4Qa%SijWgNu!m+88#yOfs@E2Z?XCliF4aUf$>3)pynKm~ -z*@GSVii+rom*TIV3n-x!$;sIP3^)T`51&M2G5trn{jTpKsto{6128zEHRsOCwcG#n -z1IVs+$DHy0h-ihyf?UPO=)h0n1nvz7g6+>w`|fxLCHww93)oN47=>p<|HdiGcu(%I -zXC|#n>2g0R#te?h!<9N39Y=;P@xK2cO^%zr!WRUm9u`L`I}ZDpJSjEy*wd@|?qusZ -zi^m&~ApDGKBaIe+sI`F9jzyUK*$Nn_OKe9`wMs;WCzqnf7>i|^_0v4IDizq -zuMhbF>;(6<61P>x6~oA29rQlKfcE9<8dGeeuF0$?A^SqGS?qd%#r}ksS1~K%$?RYJ -z-%XkSUuPDsLZ+bsx#cil&`+gsUI`Y|ptg=ZvHg1uxkYGCxk$_8uGK%(`g7>}zIq)% -zru!Nc!wOzXqTMa-Bv3|^jqvT-V{(=!U6ztOtQG14p_$k_4#C1NbxIjD!TaW~;mA$^r>$#KKE1lSRUm)bfLZ1aZb2WhX -z))o{@dBUVI{9f?YpR%|jBp)c$gJj4XF{{PCOZA`2L*Bj%eL8S5Zc -z#z^v*HD3=wlDYQ+L(YJP5Vi}3EaOCj`2gy{iKcH%nZ;M~tgu1K{#(i-6F>n4NKQfH -zKx0_tMe+4*=dsi0`JHP=o2!9cXfZu};ouZP_8Jh>MK#|P!~06xE_f>2ns -z|23-tY+3Y9iTl$fGnJ)AP-W|j3pOr_K&C*>S9H_Fph23QqsG6gMEFeZGgoVK-Xn)a^D*FD -z^k-Xluv0V@B)bS8vbhssS -zK+L!A6?cY0^*-oE>r%4jZQOi5S5fCbLDUKU%OX4j`^lw*4BbII?J2Rs<#k^el+{CMEbK)ZS}H>N{}!_uMSfQ#@?H -z<5dQx;VJM9fR=P{=S^xZn-GN<1}b-!EfDt~y=?kNhWMc?xERwGUY{!`KA)%9@V32O -z5*V#5u)NpNdb;{!2P3_p1pIy(hG+!owu2+08_M1ACmR9c`UMj45YkGL$oEUr@D4(m -zcaDGl_BZNWths~VerNG}Xa|g-mjA2Esz$%Y&$#?0us<#`=!VRe>s#bwO|7qa -zeSnm`R^%CNA=(3*eDDByy6P0l5;)BAnagwG{cPZn0y0-zX1T-fQU|7LA&}= -z+54m-`};fyj_w}V_9035a+r8u5BmIUnBb5cD)jgL83pbb?5L6A4P5Og? -zC5-Hl%cL3`5fGn92Eo*0G4;((N);u@W6_SuNACGVBmYtF9~qsl)koxBNtWPSLt?Vr -zIGIfVpP4*N2J(Jq_^4pzxtdv9*B?_6Zs7Q747xg@XFm4JJN@hxxx-G8VaPmRv$G{Y -zw>kVdM>QsmD8ZE(Q0BpqK6VjsYTm|g0uC~Oe2{iODJ)XCA0VS0pfwJMDS8hP_Rv;# -zY9uVXOgO`SgMca+i=5>ox#^T$d@ogvMH{Y=~5e1BZ7 -zzJCgtXH)NGl22^zW2Q7=IF1y-$D7)A(`HY1fJFsRCz=Xd0CqmzJFWj-xU=IcG-Ii7 -zOXf}FcYOlMVa^Jt?OP%cU54e{qKJrV&{=|OJ{kOQH@oXMtWrS~1wmmnW%9Jfe+C<7 -z`&DU?pCoj!SIHB{93F#|eGSb6Z-*2tJ62}XAsmpCtKF|@U#=NmMvPv^XD0>5Db)@E -z;uFB}lF0aH6g@F0|8N?*K_~109DD$W%rf;oO}9Xf%O-8aY)x~9l-+FChC*U}aI`sQ -zXXtA{H+wB0nM*SclO82Qx#%ZK&fMpBovaOZ_A`-S9xCtx)ug<=_!<{{mP#jlK^tMQ -z81(ndHqHM6kdR;l1k?M!_FDB`SCRgWU1LmFy{2y>&B@CJnmnEp++pZ5qkFvMl>x`r -zACK41f^Gn`lE+wc*dhNTa{!@^YXKU%dd`t-=Lu#X4`$$%(QKO}q&{tq#~$umA*e-3 -zF_w$+W>PH6NNd!Z2f22Vks*CEpGCpY8U^4=0g=jxA&S5)JS`zwUzd4ZlaNr{7dN~v -z5FUz>%J=t&Ibi*0B+d5>ny;aItuVOrjFbLko#D8-6g$2I&BBZVGxvO0KUTMTP)eTh -zgG`o1MAnxt_;nRa4lc{HTfsZXnH3{YVwx2$ho0zNn?8RUkr3ZgE(6LE!Y(>Nq+(Z} -ziQY`H)9$XAi(6dyFqWbw+##n9Ha|eeTmb?Sz?QebZh`eSE4jC<>Q1%r1SRx2?0lAt -zcG}nU{oc54WFT(yDubi&Q6I+W`GUjHIs2O8^4qdBDb3^fWhbOcgP&l*x)#7t>lZ*3 -z7s|O8{pjlTZMK>@z&|{z71K}?$Y&gyynN-o6HK4OPGuj!9Zuq0!(%L)r26niTaIn)pZ&&2LeUu%x-Sx~00O -zRUC!Nf;@FhFUR3Q$an6`Ei_9B`YxAyei4Fd6wUF`n4uyc(P=Nc`1^?721!=Y1 -zBrP$^@#q@&8>hGGb~GM(O(oXP4dg(y!uI8s@TjH0zF>dkW6qy5Kx61aNdORBX6sQq -z9+`S2&J*kU!RvS3eI8^s&R)a-_EmF)q)mLfgC3+$fugU~BNl5wf9L)&ZjQe&x@52p -zQCAc@6TY$2Xj_HmxOCW -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 -zCy3 -zH133H4fS{U(hQ@{WC({7H&K~D4a}AV>&GJ74xjEuf(-`$CBHoXDfLkCE&LcZ#$1b! -zH_!ux9-20IV$kQHs$UBrv`QJN^=sP%}$AmBO^{*3yV4(NjX=m)f%;f_G<_iL5vZO*3439)Bzdo94AFOtT> -z;K4NHZ`Nx)uizp6j_XxEo#P;7k&yo9nobQ$XITty7$K -zhxF`8+1Yeqfj-kvQLL|hAQ`yd$clb+hcr7j@G+Zzq^~pbN0;9IN*`pzhX0B1LvJ|w -z$?)V^2vaUZ9wj_&eb^RyUbYnjkK1(pYI)`xlHy&of{f8VCLRyOF(oZ~lACI}O{f~< -zl1*Hq0I}|8AXRvWU$r8RKq^EyYF+)2g^~_W?TyAILpDd3(=hR#$o@gsDh*$MLZsN)X^Y9o)n^-JCy -zcZ|WY4=X(l@?Iy;0G|{IM~#odm$k&jmHIlpKk@LoPR?FJ&JYLmj34;`xqnsdaPaH# -z$`xet9NQ0!6{%w1CmC)UM#kHWQ(yI@tH!Y1BMc6tp~alP#@_%OU;up!nA;?*!vk~t -zl(xxq=w)zmT3;@yec?&vvyt>rTuNW;Lx0S -z_H&WwCOKD_bJ);Jy%i*-SZnDw0Fn;8qLn~L?)1Iyo}6yLJwM7C|1>UaE~7BSD;Y^Z -zUR8_0dCa_!0R4QPmBY -zH^a4zR_fsA<(`D`fF?ybgF?DBP2VBRt7S&X(BdgH&h_(XouJ|jqEkSc-~tHV^1Dsf%rtIBe)0I!ey3&Ok(r{ouiX>`S4h34SpF#&>TwwSOl(+UnZh -z<+OV6Bs6@)aYrV$`ry`soBHunm-)nXcunoOHuPv5@0T?4O9*aC@JnVs@{AbJ;>{Jx -z)FW+tH*{+SC}9C%A^Yg6^?mW-gkXX<_k#T9NJ$2^9cu=)yD9hqguqgrOb856>~pG@ -zi#gRB?e*$p4nj+ji$)3Usvz`Glc!51{VRhcrapZHwyqMv(0TW^%8}@HUGV{3L+6*1o*N~@0v)N&N6jh1x}cL -zn4S-N8jflOG@bPeNk5~kV5nB8dJ+Vp0{?VpX3>Xrf)w;XLp?1$fsNW>rm -zlbq}^31AEi?(|$<_0}3SL@8PvXcNK0&)TYtL`%;w!;kECtLp6GFO-ICqb9;N2?dBw -zxb@v1)GXXSE6wmkUlJq}02cAIvDQ=mHsDF|VU#y2Ifc|ni5bO+Vr -z>u&D%pnL_9X7IE$Xy^2M#ms*4k2>?R)1&ld5T>Om6X&+?pDIeT1TNA8y=Lu8nhH{~ -z!1{HJK6ocM9+gFGjg=0x$!GeaQ+hP1im-Q -z{bua}x?$AamdFk%p4Vw(as!5l>dd1Z{U2fVgo=YQ5=t`g1o{3gYz>sz66JJvkmg;< -zV-E(TyRLzc^5hzQ-U$Rp7boW(OhP<_-}O&?(P$VCW2e_s$|WK&Zg|Y&9TsS}b6#Lw -z8<6z^Kk-1Q9n^#-*@UoiLX~eX2uL2B1E&^wB=!Kj84{FSW;WLSO&&cLCP0NwUbUlrraxRei3YQee)642pm#4%F&}lvBrcjz!MmeN95_;c73U);w&;5u}qO? -zM(Q_ydkoM6fSMzz$}9Wy1DU9R6_P>-RbgvjNMMwv_l))hof7T)?!VP~=L~l{Jmj(F -zeLeAWn*#vZ0w7Rg{c!9!a-x6}!`%-0?q2vP9eUci@G91txb=q6rlV?XcZ{&`fzj0i -zJQzx7Y`iMChAj*{&5;4AjH#wiQRirMRM;-e@ZY%X=~e~Rc`p}vZ6V9^-eEKGM|#rb -zPUZlzp!h@JX_MMy1eQ&>?mtK7wtW>rie59~mQZD45t&2`5n6fruD4&aS(@A1fm#C) -z<4GBu!170FZc)#{UgC4H7I>0Xsf;ao`8kS)yvw9IoOlR^MfEtIMPhO>rY_ljZj$YR -zc69XajbN -z?2LI{WVf<-+RGq44iqe60VYK{PIVp+$j2GU`=gYyd{>Qr;=Cs_U53I@?hl3VJd5&` -z5(^Pt33cYm+niaO{TB&vUb0>8neo1}fm)mttP;HyVIFYTcqvLP2DdZ>-M2k@KBS={ -z@5vv>+axicdt;0y%vUeDVQ9*uyk8$=Ri5LVA8@SUn^FO*vl*F4lZ(-+Puls`;aSgG -zjS)BbLkE6axxWH^*Arm!(jYJLd+mFMOE7Ce(do!qEs%!DRGh>LSXQOhrw877Iqx}S -zjW_)D+Kb7C=P?%#_e=lORdgbAWg%XQ(G)xsW#?UZKo?{rIYEBQGrpAgg9Kedh^2VX -z45uEq0q+h)c9MC0gzK1kF=6vvX5&7aT$ZfTRFMcEy!|3ALXVhel_n1srlpJPouHXA -zog*&EjenNq6PMWWJ=SuI^ILNVyI8?(iE$ux0?dz2KTqA}T}GUF$sd#(h#Td^i$!*C -za%#H1Rt}M-2b$FJbrZ6W6p^(SpWY)2{#Nac;LOWvs>(>STDJ`R%)-q&4 -zqEo;VB9zJ=x*GcOlETB?(WbM78c49e*3F1@aVLw@)s(Qu!N&@q959R24~Ts5z1wMi -zOn%PLN+(2`y5!ikt -z5jIT;E+rm~4`AQ9;s3HZP&$X@GVx5^(=NGg+i4(>#jL^fUof?c*;1?JvS)v_G~W$^ -zd5kM~N>_Xqtyl{{D%M5!8^e0FB2T$;dd_W3$i?`mvzDEYvC;2s6dw0NZ^}#%9Q}A) -zvGtJ^3<@dcP;9m3ZwcueVGiz(2!TIaOgA|lz}sLoF;R_~=``+T>ALLCH26M5DtaD1 -zrjthW7wDe`5)OfdR}L@moIGWlG~KM*4hHXg`Ej>jWNm#r>ks_cX(>!BA5~G4nnENX -zHiPe0kI#Dd>*>6NJpH*2hLm6ygLnWFDR&}mEVPG&41+uFb;p07*F})+g*$D+B~uQC -zBz=9`(_gDDe#M}?!a3aGzeBg%k-fVX@ByJinAFfJG@6p_c3YHOQ_6a><6N^J}=@Zb&$V3KFg#Ykzna|rUXhC5U1xRj57q~Uw3c@ -zOTOdl0v%@>F0X>;t>uEvWwr4dmn5TKkN=N;&_E~=Sc0lEyUwLpcl^v`-*HwbSmL@7 -zPAUgu9~7`ha7x3DspKe%nT%;nEn)2d-oW)i05{& -zP{=dBy`b>f$$~h;hA*n|;H7o~z6{Nh{NWAKv!u7EQyInH?md`BwvLuaFzKfg63Mt^$^Aa{d!B-)-^mCXo|KZ|OpMolL~ -zHsaa_o=5W~l|h{=KPR7m5ttN4ZG>3k+HXj&EW7@aLl|IP`rpHdLOkk;KGR2&jaz8K -zP%WVho^q>8Nc;Vgo(Hrv!J%@CGM%7}65^8w;?qrJlQJK$3_iU*D(JrpvpaZxEI`PV -zFVA3nW6WgoM#ITN+BRgYaCyg}Q5w1#?PJjE&!B&*sv25_+#M7>$yN!WEOsUGGOP<4 -zfqW}pyW~d5C!g!aK$k7*2RWGT>b~Kl{hZ=m)|2G8±Rp^|s;xb#LuB)Yo_ki?H_ -zGvGr!Nk>ou)M=!berU9YKNUV}O`m{EKiZ%q(LJbryb}_(cyq4=I8heHC(02R_Y0!U -z<>3lMPpy~UXqxEBb|`@z -zc_ScPfLdc3_vM6K3x<9`a;cm*9bK9*m;1a9RvOO7@7_-O&w9Q<7PF}6YdX^qf9B8N -z(?mMM@g%#32ub`T;sgUN>eF=a@w^k>B3I2z1@cXbdGK2HMIm4;ZQv6_wjRBl`ahw3 -zfX$KDk9_+T3!>8^9_REhh>-W?G#hQLIviB~!Q2@|4W=+t4I5EVe4S>8ARPD-Ih-%5 -zW&@ZXh6`3MfhaQJ5K!bKgh3VfPs#nnoV%3BluiALt+Giz^yM$_P)`7B0#4AaNg_-$ -zj_xW08K_bT($qOufRq9b&5>#)<;9Ul?ziUTB!`C#VMxC&UN&sQbHS$cgu`T9>4J0q -z+~T4KjC9<21JwjJ!Hxnl|BpI3zARP^p{e{}@Bz4h>5kI`gOct`#=- -zn0&Xa#qSV@Pf1-vOPR6lixPx(hYBGx%TD1GuR`IaiXf*8iG=+$sgl>={hun_ty6P1 -z@w}pP5g$7IoJ7&tQy@hDL)0hsa1ZBIN$f0fgRw#m`j=q$9UzX&*e?5nyIfF~U@H`z -zlYl!DxiyeQ;ZIoP_u#M(kXV2q&K(5j?rT(4&B}VlpcwfBGbOsK)S)@gBe$+UtpuC| -z041e~kGOX#;xgG2p~*1R^)fbvl55Nb-?}Q}MKkZfrdmCg=InQYZ>Pf-<1leGiPw!J -zdw)W4)|;A)pgYBkL)D@VuSM756KDN~6zXoOFM>U#>n43$DwKyAxHum^Y)_!l>fBgF -z0+Kuc)^HrSK7HP2D8Vv$6bE9b=(Xs?m4kWh-nAMK%?hoYu&3JCRE2yFFjs6zu*SSD -znk1#OiyA5J%M5mzAQIwK-NGMa#e2gD8l7jYj#~}IBzi0tGnySD8Y6CR%b6|(ebp`2 -z)}A~40UOOuVa85}6jwm+#H4zRk_%g@-uofTrVzNXmx#eHxWnBUm*cMx4ueB99YMuB -z$LaD6(5E+uCZENYc1!x+UD|bWI#rjdyl`283^Esl45NrHK -zIHh8-cbd`28m4NR5}VY&moPWeBYFJAO>)^tu*RLMV9it~BS+jXwzg_%q#SYpZw3OC -zGr_zn{-sx+v>)=2ey^ow5eDpM{B6A0`mYg1YrbRBSkr6J@oc`Ao1)b;=ewo4{s4u7 -zV9es+V{0}5{{h<={1OENjy=asx^t`C)sb&Z;+P&Ho?tL{{e=Zs!a!w?leCyUMggVM -zvS0&)eA{`i2wL>sc@Nv|Pis}O?k}Im4Eq{W3`pzk$kFaRHkuPI>Xuo+p480_g3i0y -z;TK`ibFU0J<3N4T@UWP6{Qx!xlvB2e+xJvRK2yA)_ZmnHjI%5?rFwjmB6=_Zd<+=) -zX%ZvVf9JErN=-bD_bMsB-_%B*&~-z -zh`V0o?KX`BI@g{jsFR{ux^f>huG75UG3|G~{k4q~kOB5~-Go@C0L%QE2wmgG44+O5 -zgA~Mr^^-rTZBG6x&Z!XOG~w3{!1;vY&df$V+jmiT_kt7|t%pak1_hx#@*t*ZILP@Ubog^|^fx~RigQa@x(Vxufc__@ -zMf4dNH~5!6)IC5#1m0?J85l9b&4sm|vJsmBD$Mf&6rix0_u@?&N@0v^-lv)BTUrWR -z(E->JpGmM31Ak+1TvO*vop%MHA(o3NY((#U9*TRJ=0)~!Z~HTPaf%|Y%K6_?`uI6m -zuuwa1**{}_DJ%vyQCHA<+VC_>u+%o>E%;>zY^G^p8j7s4r8E!k@^o?z2{h&OP&EZy -zr4K4jPCOE1!~q?@g0@%E$0$&Sl!OPG^c1v>+SV*mL}u06#DQKc#Ui6>q*y%8LCah( -zG%>PSG;fG%PI9Z0@j(w-r)ld?Rn6L#Gl -zErL=ywosMyZV)kK1@I;U71&NJMmJu_+Z$3Qt8sLoz+;bhMGcq0QOGjDydIlG@<~h$ -z#CUdvl|ryXlg>!hU`nWT<`ELIjk$VYmM*7!ZZ1N#Cj)%QZ);LJsA1C2xZ(3nBcj(k -zGzJqq)s=w0{^pe2c81_vCEr{Dfw -zw@z^lpVtNocHy~d$PGd#^~$mq;Go(gH32Ghd{b#6KhtsOYCE_lK6d3upLO@pP}P~` -zLKCZ6dIQ0kCmy1pxTA3ZI+Gn@PkY}n~4-%9~Q`V{HC6h -zXcuOe#k~N2WxAiEzrWeMeVORe6}`cazaF99-QFkpR~OZ4Yvi0k#bI;uBYhkOF*Gej -z649z6o-${1pgQX!6z>#8-BZ9^;q2#eLS)VUK(sDrJ&`}&bYBa3#SQ-I!!UU`gL>@ -z_3R-6Z2cPJyuaYeBf0iQob!LpQ!t1_eMsrehvoF#+n5L5wh4o}lmSZFF3SkVjjK)e -zaXgvRH8$tA#aowa{_o7N8W#UqmgLm*%}h?cXF|#%rHkF&S0~J_TGOQ@xV9^+9^cjl -zm_^S5jOq*#H5MUyM_={7jT1gL*It&)CVMyoy)FW-2qJ(lb%?21^Fl4r+684 -z{Gj{y3X!Q0TNLb4+S^rc$zCewbF8pNAt#O)zpk7-rd&<*XTh$GfN?oC?;n58H*f|- -zeWoL;L{!7(h3xPDaG!mbuHOJhKax%ayEd6JYX~S=;)12@L-jD4$!QxBB7TRk*)J>} -zD9I)*ARMb|nGk_?2xu -zYIS2UKgCaTGOM=NvH4;9d|~#GU&wi^CxsfAa4ZbYwfPFQ8Bjpb>_>@>hvYi1!P{db -zS&atxoB<~&&?6usAI>#)F>9!W{li!T;}@5b9)>XK?d)-JTm&5%DVPs2t~1KzwXfo` -z!0K_4&W~4ydCr~AB^b77dkr&syg)<>4jt2t0`lG3Tt(v7r)lr$(EF5O*AN_Q*LUD7Sx-7US8 -z#P`_s`&XWC@4fHdxifRlocaB==V_Gb@M7lkkg1I}#e#`cK|zN|HRS=K7}+GTe_>BU -z2Fmss4xo3MXX_Ffs&tJWsE9#~Wn@9A{6D=vJcS8D$0iD2SxqjOcJ6UUKADqHwX6|)X{cKqQxGB}1+kKv&4 -z$!X9b_L|mAcy%pUQ*ffhKz@w(`=7COB5?~>aZVj-7}ra -zR+#u#(N9!n?$p5Ku`__+IH>w)uwr)aolBDzV;{lNRSR3H`U|}l+O2}c1QWd1!U_36 -zYDw-{BSpdgyY)04c!#JWY}HK`akbB)pvX3DaC)Gm0hQ^%xkGiE-00{`2T}2~I}Z)k -zIjH>EGF$h>JcUYr1D+3_S4KOsFNr{1Zq`j+P=$nc=8O4Us>y{rRVB44l(@#^ -zqKwV9LC9nVY?)^wa7b_&aY@b@m6!`pO#S429%g@)C(}b+G~zXL_-dJ+s8uzlvIA1l -z^IPvKm{Nz-h3{56-}FRhRd*p;;Dw4_HqW?0S}w)giR$V^phyV_3u`VCV_pYx!+-j>e`|gAE=>)F}xc+0Ef51Vv -z?(*XS2NfKgo7?#}y*Y)Y1UUC+d(nvo@I8ox}m`&-992H`(s?r4b4 -zzSzf}sLC1tGbG1|-Bfe0SQ)n6zaBaJbx-%!q~zV5|AcKE2Wl*8o`aaU)7>krStbuN -zO9+`_|22txxIh69^$q86_gZF<8QcLth5)`aiW?0z4`;<4F4cdR=EiUvZEE1OoW&Mn -zcDXEcZ1In&e00DE1>^;l5ln4~XdBDNjTUXt&)bGV7NwL6(DWX4Wp+=^J^snIZqXi0 -zGv%A5s$xK@-5GOUuM1AE7{z9>q`qP#BHxT6Uy{ydgMLGO1`ehGXVW`ru-ke#O>kT^5zyhyTU)H(sb3x{Gs{`L;ChD^R@%)7=Ty9m5#>yszD{X*5{C -z@zZrrL!~r!){1OVbs8zjq+Esg=vNCVNi*p6ofvnhem#U0x`o<(us9=7RphllZ6h3` -zBXXoI@s%-EivD!wiA?&G=pk_G)x$iaomA~{YGrfZGa%Vc*R;r1Nl}U`TnHA`r-^+} -zqpCn*QvgtYfH=@lKe*G$FO&BMvY2b(UWqLvPlIBm{WX2{OP31#s<=xkX+n$bIEhZ1 -zD=^|7I4XtL%qI+ro=U>-628hOGbr^d1!pSuaHWXgq8A^&dy=X|C@=(+sURjd>I!A?`qSMNy~Z-pd!} -zD%TAW-~?OKSGpkVOg+?JGjrv@y$Eyy#edK;Xt6CQ`W@~`{FNCkV!Zwfya6*RV*F)G -zQx4SQG&w{;)msmi+ny}vMrIM<>@OY$X6Ob{ -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 -z&F9L*%v-^6+$&S$ -zrW1kxODXb|_>(j|%V&`{7Fz7?LMPVIlhn<Gq$=IrZ1IAP$2NVfN1U -zuc|xCtpMojUp!HJZ_9{>7&v#DHH0j_m9nUeMyR|@b}iY2{wJJA|EcLq2b@ZY^85DR -z%6r(Jaq?2x%rhENn(!Kb)RI4XZVFEAA$$(9cyf9H_g$ED7t+MOq1|@;CqI -zk1vwBZkDv-RAZCp50(UAjEQyEq-}bJ3zaSuOm6xEeQ+we+)LNX2(;GjwivOZNEz8W -zaVrYw6znAFVnaM@Bdjqv;Hj@!60r8QQ>Px^H9a+RS@XftQ98z<^+XFH6>9IH#*3Pn -z`^=YygKzst9b;qIv2j)ka)rHS^i5Qnr4M(rM5y#9)aSIR^a?~DN$OvjKE%(H`A&b#LYkikrnkG-{YA>?rUOnii+vIy=u55}JFBst1bSGTy -zAzkfVKbp$S1xypTUpDnJ1C$9FPWwpAF#JuDu|h}_tCh-v)^@C}&#eEyZ@|;*s{^t% -z)9~J6xzy=SSs7zAufuxf!TO02*OcWSF7CeWKke7|WLVTiw!xu)IlCWSz%Zx3_;4F; -z>i~?oTSm$y9Tp?ipYQDffig!Vw8#A2@Ky<3%gFB^PM^)p^4H)C(Orq`_xlh|6$F}!pl0=h!kPoas<-gF1vT64ZB*@ykn=-o~S84x&HIlU(PE?-Nw8*qO& -zqX{Krtp}qdppJ>nXc6H>+s}@uy+osg{|^K40@W;d_-(LY3TBIl4J?jQ-&JJ}ibRdN -zC-(Iy;OWg?{(VPqI&b>zwahIyRhe)b{@lI0=92&npkz3EtG?mv|06pj&=9N9w)}B$ -z;DufbpOm^uoGm^C1f%It#g%AVcJkt0#E7r`lwOs1OV^o?lr0B-^CKQH`coAo4E(oD{kZg&l*ComQ0_d&)Zp>sT51nJ@ -zoF;Cf@}-5HDGIg~o@n+f0&RuO+xs=zCJ(r)j4aqFQTD9lBY8K_%M6?He7;d|Slb62 -zY1{F9%GeIEO@!M)o{xJKR(-HzPxbphr^KVvp8M0^ePth|nf;QIGdM+0EA -zG7zC&Jnp>k58Bv$5F&oz618G;9jrcb`l6gQ99!R(%NY$Hl$HmAXE~#on^Dknn%A7L -zAKI?eHjGa)CvJ`r!X4q0jz;1eq@vGlbPqmc99dxG&Hm>^_kYce4cIdA^&#@TL)@?m -z;>-Pn(C)bjMtXK=ug@l0F;J3hc;uSKqh8>&v<3YX0k-)hy~sOA%1#nSjH?c->!;dn -zroFQ|VEH!F9T)U!1h9{?t<^mMCkMiJ{J|eT&NdU#c4W@X4x8il2)@Y|Ap6iSl*4ZE -z$~871=R0Wh-_nSmd=dGugz-4rJHI95!}UelJO5RQl!u8lvgG)1TY#i;3CKtmG-D21 -zm5?l6w7(+RT7>A)=nwnk*=`z}(V;HF*CALWFE8FvKlI|nZMBTNhMvMz@AUVVNX2}F -z1k2ewL78hW4N`G(M7ZX1xhWe=;V*a11B9W^eZunXGC{&E(@Gh0^e6!*X0g~B^{603 -z7SS?l$E2sBg(yVXO^FLL!;th7)jvd34CKls7Mvk#Bcii#r_Tv&q@9zI>_J);(%pIm -z8ExjCzr3I}}Gj -z&)?j=!vAV^@0e9E`KpI_Ms~TTu;u+^C9--|Tu5)($|M(*mReN!fD^C2E6)%m7`}qB -z*iRwph^&Muj|4AA0g3=SGKcr|;-LI9q&Zom2M*;V5eGDxdPqBV)+j2n<+g;Y=fF6B -zb08I2=_B&y>QY}=-NTBKOD+5;x{F6-#hlNGjk9&$uN>E(%f7y=k)D$XvsezXSWX2p -z_D?qPq(tlD9J0TL)F_-Z#o+CjDI%chWB2GnD?Q&xILH|qnx -z{D@Jr-_Frl-PyYH9O?NkXZTNp;zyM0e~A~Yz(i)Wj@oTJL;X;ZDZjk$H?~;3 -zaWTm?mO)zXSvAR1*w+*R@lHC>c8{Ehl^81EVn!DlhenuG^NMP!@ts%9?dce_ -z-GKz3f(N8@inqA2kkD)~l`D~n`8C%SPk#`s8G^B7Fa2)6{}6RY)r*j(AM(Q;Xau8F -zCreLg65t48;9ePT@p+Y6q~g#UXG09-W{Qz3YgB&Um`TEH*%iYBSWAPLo4RwREj4iO -zg}wel7>4c`?Wf!4E_C*{Qlqfs(t*iTqR_zG?6>MoC3Va#+EinmJ9Wnf_s}$npKM-E -zwe~V^JQXV(7L(#*WJf0S<#h8dnxkn*W2MrQ?&+R(;PHn&h0R&VOEAov_ARtR4ko_o&qwLm@S3pk51m{((@(8xxs- -zAEm5TpV@c532#?=aAl`B!|fh&o{dz0`ZU*eKARj{J0J8 -z_V||j<1bebukakEngbwmVoGhd%;Y8}qog>ZJI1Y~M3%TS7yF-H0XY^Wm{%oF>=1ds -zCTsfpsTd_#uf7r#s*Wk9AgWl|68#~@E*|c*oQ9B#*OEx?dWjSx1P>?=8{C}a1Xo!8 -zaQC7+&dbbS^+x@`qLyxw-k964{n|p*y2dptxq&T_NgY-$&~&k3?J;lX%(p -zd3em=kvd~kfp&S%Q6vw53hhPW#b$iE{+8$7^O(6gHmM8bsV8S123t=0rLazjtNBg; -zM33a7%M+lfAWCE;AaKfd&Wu^3p>zxQ=`A1j?p2_)=;zPX3IRP8Mg=RZpAqw~T+k~N -zxR~zdi;7n)Q_Wb5YCd~Jhv~+Ds`_h`UizX>Bj~k$R0NGQ&nx{ -z9VE&E`7j=NhAPzTqY$>s5GzIgWuEc^Nwm*EhPK(ww`WYq{#YQ+yQM;~d^NG%cCwBX;RMyp65;D?Ri$XMtd -zR^sNrNBdl%VA4)c#gik?@;RNIO2rX>tEyqtS(uWXWgoe+Ql5O3%upP&Vke9inuneZ -z{OjZRo2x>Z-30=cF19zVF*auD{`TTMd9wg;>{0-`12;@PBL49zJ_huF$ou!IjSp(H -zigx^w%)8!^ZXJ1fV5`50@P4wc0KXwju8ayyjdwhs+w2WS8`M#WK@`VVHX<9lfY8g- -zS_qOnESbAmNv;;1?N`+5Dws&#Fw8k7g^ZdZ7rc8lm-9r7^BWUv5K*ZpW}T9k0#$+` -zT#EJ2gxHPg)R8L(LU;=w!hp+p-3N;}zu;w7@g7&ArOwu=gP3xgmr$&wVVWIr*`VKu -zmT(u^7dh2^0&F(uEGYcAJiz;C7rOk{#C+@}_WoJCDn#a|2Vqf^Po63uYgNX~1a^TS -zN9Ka&dJ*wjNdrDAYo*Qo@#}OFjrf9O;8*Gi1GB3CXm9XGV>kO{Ww5y8_1>9E(#XD5 -z*6R@Rm6uzxIRWGk0CNhbyyrqteaEz@7gpUqj*Sjd@8Mitvph3~VYc)mBm3z0&?ZFu)bGREOU^ -zpK(~dg=n8%_AgqT}#{1G`e@`zu{9a;5bN;JJ!A*dasd$Y{_+WpN^5(<8 -zQPiR69pS&&idBkM&O?d)nQdY@V#n$A&^38`GHd@(8`N#?J(QBSvOW1-P -zP*|6S2QK)2;Vzk9Va^{}V;Y -zt99c;A49vxiKpYX=2LXn9N{k6-{*Fr+y7ehD|~F+bE=D&A0P$EPOt?^#y!uI4+<>% -zOlQ|@T-oBA^}wiS!{r&op&kXIzv^J71Se!Ob~6lXyjT>+K9O6Tq4d^SETc;Ro5C+> -z#Loum -zk<426lV^Vn+GIk)@K|t^0SzaI++J$9m6@B?m};a=sRwT9)9MUKd-a=~?`~!o$I$7l -z`^aRI(=!r*@Ym{yb8<3l0v@m4O~Cp#m=Wy+2F`48Ci<2vk0_l*U<=2n5T$KA8^7ip -za2h;xlJ(EL5WLuKRSR_V`ccUhR`$|%GdChKCN_QqwI!8pyy%}$zUZmCID|dGG -z^K1&fiRM*rEv4bsxx}y&K0L|0TTGbSzHWHn$x5B2)^WS$vDnO5<76c`Pw%tnnAd-6 -z2S`2vu0}{!6q;tZz3oR#6oJ?Uq!-Td=7OK=7K~K~U%_k=?H28C*4L`kbj?lVuFrS= -z%l`G>Fifl=IEcS4`T=g2QIiJ@PDJS@p9tM;*wnKDT^}-Qn!v;vf@S?oYL2#wGxpQ# -z2aAMaHQ5U(Tn2+x*&s(#P>zKK27@(yC`x!I(qR0}pFaA77LlSjP!fmFsTNH{ckdIY -z2QUIYt{^t`b$+-#(p!jxl1lcgTgXCU_9>JTgz#}2sk}Kb8=d89mGLa;MdHkh2?@UU -z2+0Dk<)W^wBv8%B_`>hGt|_0Ii~>czy}EFCekhD)5zeD##_c9ULnFa){A!9s(FHGX -zdde@Yj!uZhY -z3a=uO+;z=%z11B{rU9M3TRNf7%zA8<~QbyYcSChTZS>zKZ!tN&&DiggxjH -zwM_^XP6yTB-sK;|tV#RbT3Ye8{dCL~M$v!dNfP?nS5dS#Vh?Nc5ees!m92cR6VlAj -zc5cmWugc{bXVNl5TUeMhs?0FaDmQ-wJso65sD#hjQ?e(vH)*!H*Ek1heB+!xaKA%6 -z!xNU>m;&v?!hkh%LBHz^x;*%iNy>`nJO1fkU(WH_Co$~|Y|R+x@7j4?iUE@cPSV*v -zb2NK!@hwF)WG4OVkps&viowtw+M>Ir2@n$iq|wnnyG*yUu>bgI35U>f#L$vS{b+mT -zjx7_yfYRSww&N%78(@Rj8uQA(9+{f(kIMI85nZIquydHv-7j7qYv@GgnI>+S;^#TWH@UD2&Vv+<-OtavzD+Pm -znKqTe%_%D@J1kaBQQ!s#w%D6!N09#t>l(O??`l^cu5ZI{MDc{T$tw;5&{}}f -zHD}C18L3h~BMlUJd-x(%zDrcue(iBBX8zzLI^a$zir!hUbCOJZ19V}*XW -zimm0nxn#`QPQTa_Q}4yR0DV=?he%;5-6^j}pxS4Q>7^6j8e=Ypo(E6L0hDIb?hw9| -zE5Ii(m2=44FGgx5u+EJVD>stvpZ)xefE0IybJ0@{2)GaS(0+Ca*$@BquWkD)hjJRP -z!q%oTv(?40bWqc5jq(nf9~LQ^w&}HT)i={cP#MAcE=#X9LKEYk(t&G#e^66$EHwZS -zROSIb(FUXakv*f9K{>vikYQnKR(Bpnfx1-o0~_#Dz)7F!bh;`%UPJleMONUODLSgG -zm9VVP{3OX>FJd8D4BL7gQ+Q -zW|UR=yQ@;R7E>+22D;%_G2Q?{?1=MO|>* -z8=dh!Q%S6ebGHP$?f_aKp!uV;7dI}DpBBbINMqr~G!dM24A~{F$$IQdC1iqVnUpa^ -z#&)@7v03uQV7(X$qt2_M5n=Y<48A9K$wU;2JP3K;5LQM(xW5r+$Svqb&J*?rC%fQqtr6U+>*4)5P}D6aeTd=*t= -zemxs%%eVok(4AOR1AqbQqm@fFIX(NEKo)AGXOQ0wxR!S4CGA_lI}%&+Idv{vXc#0)ra!218YL1qw&Bb8`$z;)#^fAHV)F -zqm0`_3G->cd6o&Cz_Lz7Ru5*v47dMe-|db8xd?y;NS~&ESt(t3n+!^t4Ddy#Kqqk$ -zkmOz>w3i%1Tl=>BV+4=~2b7$7lzxvy4?oCEg{!3O&is;Af@TIJ?f_a&pmTi8Uq1yc -z{*MQCTW83L&ER+ws8`nM`mNY%tFm;)e1g__1km|rAxC|dMRnSdoxP&52_zrhI};_qJA243LhP?`EU)0{ApQj~(Zu%OGj8fz(S@xwU)vZSOx} -z!21Eqjj3E&(3_t}F6OddB=F%8hlFxj=ZT{OL{GA;3Uy&z~Nv2iztdes8+? -zZw(-G10(&VK!l~aX@Z9FLq7FqqEpT_&0@wVq*{Se5!$;D8IBHP;e36W*(D=bNlRHH76ky<3_Ru=wuMC7`Uu3+hh*P^BANm -zAJ)JLL(X0oRf~uuf2ffn%Jj`P^LU2!U{7SUC7V5{DsAN98oA;#zjh=686b43oyHZz|y<~f=U;0*_S5Ik3p!!ZvML((4aMsXj -zPV&3!S^cesV#waFY6ahjQYdY^1CGiqUOMD;?ylmtq+AV|xqskCVW-c5zdU{dDXTYt -z0iZGMsV%|f{A}}vE`r;x(fWJ4l*T628#n&5>ni=+;FCDO-vk6TC~%Xq(58qA#;L-H -zo18Xne|d?}Y5zTRayA1pThKk@mod)Hc_*NXV+=X?Mq-Z#L6E_uS)I>^T~8s;)5-{= -z-cA$}4lGB!i7)BPohV&etHPoE`w75vo(95U`?F-ILzubSwuG%&7dXsRg?$vt-%KfK -zC!clrN65rBjc(WzWZhz2P}cW&t0=vZp*D35RyRl#tvq`eOLfe7K3>CF^^aL-XRP-F -zDIcLn2ct;~2iZ#}8ojIK7r&yaQBe8DU%ARn=ub9pC+{!ef>rS=j@C*^N=@xn;+yGU -zIAZn*qS#b&?fF;N6%g|eZBd@N{R#c!iqNoO9uZb4_akZa -z)QU>T<7@SE*0yFFM2R!#J^+%zC84G$n;N^IDhbFh@N!uI_G3m9Y#u?f|ly-+K%O -zUj75jiu4%{{NzUR(QyVrVT^f3(jXTXHqFlo8r9BT&*-52kOGoMcPUc#ws*WQP~(Y8 -z$5mE-z$%7*q4C#t_;E6s?tf-O5K^4cW7;MDkdjypl$9?a6|C_R( -zl`uuegN)-*#58=vqvzoV@S{M`^5wor;(QUT_DE{?K>utF`Yp5S*d1A3Mh!m4ZG5J; -z-4`}QgA8{W)^!ks&_!b3KyWo*`BG9IjXzaIVz;qv4sam=TsPJ=hZHNqi$e60Pw7)( -zW1H0Q2JMjTlFXb>Q_I36HEscg-^bfzWRcNTQXl+T=bl4m;c%B!uGxW^HC1|85Env0 -zzCW8Q&3Wmgri3GB&_ske{%e%c5_Danj&lhsQS)4x4!Rp^Ow25qbfw% -z*+q&gsCvBazkJejk -zg2k*k*9xx&E2FDBP2)2b)MktG&~qfaQSq#^E=UDo`YV$}@3u?FhBo|qaXJZg4C3Cu -zihCbz|FYc}ZLfR4d=mBv0Te&Yq$`~ll+^ZC-n-^gOF{BSZ|A=ylkr1M@mv3_uIK|J -zI`T)X25elQ_{LBNzOakRq6&kU1JnKWiG%f|byL)F=x+zA=0TSiEqFACsW_7wZzv8B -z-kBuMAVUK5WAN{5Vp|Ql+2a596GqvbV2wFOp1p{tmYr>&^g)KMUAZdZrNsOG(DDgL -zuK}nn7yhpw_SffAq+zsD(eQd077X_aEc2p#H++*0mH$}JM4lt(HSfYHXXK^z{Mck{ -zw^lhPc16g)={%M^;J9{Xwl^K*{h1-3#LZg@z90bq2Mtd!g-``6+Z=UfKZ5D=O~D^zTjLWe;m4bcYWB-UPW*t=8}e8`hYbTtz}-7wNWrvHZ(8T -z)v=R>&EPvhNk3HY;v~q{0$;mOXWQQ)#*#D~oFxB8xiG(8Rh38N9&8DHNHm?xc;11S -zvX=qxIad9TJcChbtk=f4eVe=Xv`aPjDV~zxR2g)p&A>40FVhV -z-62`6Jy7H=u1j42^~US6T`TQy?m+pTTmiFad|%coQ>8K?REP3b -zH)v7msn*!H23E^g+1{uQZP!8EVJ4eXy}$mUVqsb7>8_$eCB$v7*@)GZFw|UyC^}tA -zaUQ86oReJs&k;eED+yNpR)11TfJ9imE@!FGGYF9<$Co3Dli_7g;PU*ZIs6FmX&h|` -zbjkp^KUyH;lI-=vZtk^ -z2YM3bbEC2V;dzr})qCM}2Q)jBKej=L>(w;TTZOju)Qk?ZFR_Gp7*Yc|6rma#4VB -zXqKE2p`T{Co4Q9SjopA=`)ye2MlWCGSMi}oV$L@I&PV0ck;w<}@CUBm+MJ|{zXoIl -zKoMD`g04zIGe=h~gbn8ejN=~U7AsKD!?#oaAx)V(ritULuj3*Bmt_`X@TFruJI)1R}jg8w$JNFLQUd;~+Cb0CQX`I-1=%!bbIvQ~tJ7)Y8dBmGvtE?LOcAT`}0_3rl*U;#)e2@Exj -z;nJ86B!wCBCZsdG#(si_fLyKaZc(3fi+W>yBs5&th5V!G4)j};C4_n}Qe`M&z` -z(0+~RlI{a$(0|@wpf(3Or5ub%D*%38J0JcaH2)t8kn7CdxoUHTQA|4BxGojK-0_w- -z&K5QXf7Sp0>^2V>4Mnbo+b>mMdFXQ~lCjNrT_wV7mqhf%3o*AemyVazG@#uxJ;G4l -zKw)M!S5obKS8{rcO_N2`|Ac+Uc)DyfOkh8vYI)-zT_gUXOSNUmUl2kl2~mO7$GDKu -ze=od`ia(h;$B?8|S&VzW7j8TC@nm5OBnopFm2`yDz%5tmO8cb<{oj8#_YSrCx&n9v -zkQ5r&=(c&;#*>*>^9}K1BFayj<=ln#n)dfR@7vsyc%ZBi7lfD10Ob-AdHnO4`M3R0 -zQzm>QhtO(-;vF_vz0W2@7KK1X1;61oUO1brM0 -zz(z-`)+-re)YB)Aekur;2BnQ|BGHo;;*{p%*}#v)3iGVqltksuD0C4ybV~OI -zsq-?*sxKEFgpA41-@LOs5=*WSq})}riA>y5oQ}axkZbl~)GA@TusPa$Y9fJ)gs|N< -zfYs^bn+eBl%{Obu+kO=+6!TFnP8&Q7y)ZX9WE+Gq`okJ7WT;K5xk_Dzh_sq>=7n3VNuo0*pfzmTV7V-%TBP*h*0DPP0v;*naQ(gv$ -zggsTWZo8hm)0R@e9?Vz -z9{i7v`eBs*8DGB~I%euiIqOU937$okcheWY{Vv|uAsRymW$!)!K6F6Yq&_UKebzPq -z9IMncdym%kdLr5iS)BdyH8fJe0-=P(ffAYK2gyAPx&*QcyV{bo3WIX%vo&{%2BU&x -zT)kj&00DO+<&1mzTY)N#ApK&q8C+&XVCN;nw<^1 -zU{MoCUl_gXA&hgHV}h*oFfy9sWu(EWE{wO+__8C|X?;N0Slq~dt4{1ONqNIfw#kOD -z?fL#cmg>6K0o{6pjGw{5u&xWzMYT1)(2IKc7u=lB+OJk#W&fj3;bGT`i#=C}h94?q -zPMF3)SOt8VUmJeg9Qxyb^?8}Zj4T?+IN#j -zp%1NVXLXYmG9xzn(#?|DKVacyJey19J5@C^FeGFf9+qN6EpMDO=)a{0f^Yb17lGHpV0UKmvaYIeE$p+9G)pehj+{^D~ -zhI;0XNNS#M7#k7EG%LUBJd)YE?}fw){DCH9fK&<*^Kc*oxD%1r%qR23g;16l{5(Nv -zlf0|-X!GGr8zHufK(_pZVvsIs1Dz$M{YDY7WM^N)%^xjP?c>Y`{)}Msr~qPJ -z08;?!8|HE!9{@Ts5HZN4M(>kg_2`7e+WwEHvyO}6`}#O7-3Unc(y4%SBO?6;L0Gy( -zq#Ma4rA0#N5RgW?rMnx6rKP(ho?(~Y^Y_kc=gz%%?woj^&*@E(C|?}DCg5$^9lWC5 -z0$`Fzf%@w~|ym9?(tf;^#dwoYU4oK-$$us?V`A(Xv2eJVmUD~K#%AOB)DzSb$0PWrI -zTfL5z2{(M$!$3+W;HR7;ZQ=6$i^K}#-1vYI+nknJxDJG*ANjM3Iy~)l -zOp@@G?gy>))n<(gb(GBy32_yz$1fXk{P+?ImhnL^L~n?VUjN%W4(E;I?EMAXeS&BI -zAZhSkDH7Vmr(}UP?BDt=*W-370)E|cKUNk9uEh<5p6`!j%bdmY;|V5IfyQUJh`3fC -zog+w5zPuCeFT6A_=h;bNy+4M5gs_K|bs`{j%n8D-f1&Y5by@t|lMZRgvyl2csKy)g -zlPQ|j<5ajS1no&6l;-T0>zMsLY#%C}%D?+Ga4eq{1B-il)i1>hoz;hB3s?c5$ld!# -z>pdqGJ@(y)Euczqf(`Onfe9$1M%wU&OS?djXB|4^B5?NgdsG56@+hk|uGQ7)E;xkc -zQuxMRK3*hyBt2bkkzwKLm9n;#t|b|N?h$gAsZ=aE7q060AlK1`2!-4sTe?eblYNDJ -z1i#*8P3+O)m%A<@S@o%aH_AW{q16y2nD)ortac*9-(_A>x$V-7ZhW$IeLS7#1N#s4 -zGb=<}as9i9_Db`_`S8WoI=2f4xIf%@tz3S6wu%v?TFo&fy^vOMeS`(tdps$NwzMng -ziTg&ESGgpfeevJ$SGb{VvfkZ0J-Ze3A -zk0dyYw(PJj|7McpC==p5M9@3D?zv;k{F^^#-O@x`wL&v@*wYyh4CEN6%x~r`qf|iV -z^%gwh$?OV>bh{jgUK?y%=&(4eTWKL{8Od&VaKD1bs+CmgTd(A>C69b5f;{tenHhUu -zN%wT{$)6m5CU|}OQ4Wt2h;Tv%g5B_PO*38;cINzT}j89!_O3n*g_7%>!&u$B0xK0j(iE*$&UUg^P^ -zFZ|7oqGMxv)L@8@Tg!XGt=i}40QEn2=L&ntp74aLTrb|tTBjaHbKP2tKhu46P?_&e -zVjSsGy)OV)#^VQKaoTgKFWW)8kr&xRP}+2I7Cs3i=n_Wy5^5wY4Q3;+C*G;IN=up` -zSk_^s+V->aHS2qYpI~$jn=G~_0%w3;JXXf7LMl_>6A}4A=rHi%x|oq7^C(`v$VwI= -zKq9P}YomcAwKC(!PlqDV`!W4@qr%f9sK3@}qM7^s=5`TG_z2yY*3x#eBmj@Vk~9DL -zH^DW3ROL)9UQTJh?+{d-@S|h$IaPb|EFKA->Sv>T>C!b?rZ80Gs4$}zTbS|oQgg)P -zjYbcN#K4Ccn0?nn4amKj;OfiLrY8#bJ9fHaI41M^3Ld(>GD|tR2E$q03u-3*G%drP -zAO`)9OlrL+eW=?QA=cn#VffdHnmycuEn2<&K!bQ_X`?0+$&2_$!Y+WGAl~? -zax0?8lq0$QOT9XlUijJeE*CvQ~h7dRP6Hjh_kSgm7PsZG7ZB -z_&O`<)8%LarsqOt{?WkLo`P^&+P~l6&H0IJJNY@;CjPb4FRP -z+Uipp*F)pJok_&F0{OUHhO2(epzI;*epz6+1&3^E-+(xAn^-DTxXY9qS1oT`f0!#3 -zH5YI9+S)*Wd73`3B*37Kw?~V%64G0fqdP#}(0zw29z~0S)~i)`p#3+=Bm?dh$dFj2 -z{<0R`P8@S(E#U5mJW_7drD+7#A_XGb=>c(1k`!BRo#4a6mV2@4gBSV5pg8yxwLJ*p$4)!h5y6_z&?!o|5jxY+`@wa9WAtZUa61ih>Ui^Ka`hMdrIfm&!tC -zQ3fAG6_R+C5q)li;=LIaRC5#q0J#{L9YGnAYZzdGUEY<_FT{~#7WDT35o$K%-(6#R -zcwzpvYlnd4eHi0Q^2f3Q5N7&d*5H}>DnQ4a-VXl`CgCETb!snXuh;ZlejGr3qi#HD_SBn29Ip`H9fb+EbbLzMe#M#> -z!V&~loXwsz*Z@b7adn@Ze`R-smt8`ZB*Rh;voV#CF!*lpPUE$1>KOlR_+WL!+ -z)=dHicCMxn*^Y%aZ -z$>DuwmQ~ozR2`{zo^R)+b>j&PsO%<%e6aY*-DCN}k)&!NrX)7YFN4V}Tuab$n(qiQ -z)N(CbA14kLG;Twbx+@^#RYXC~3R4ye_Cl+Y*5};~H$A9kh?ipdG>7n^L@HW`bT(RZOlMGd0Q#@9U^1P>c -zcBjHrF11WWoa^MwktKe;LVVwI+I{ED5###qk)9013H5thG^FrSHoD)#z;!K6!>~Tw8pvvzHEXS%Jt)chc9!>$DdI>u>xolmMUR1BTh^L%JjIkyAK9?Kq#67~n -zqbGd{0#ORv6Vi89W`nsAi`Tvk;1P4j&ssX4JYHaL+oku)Iacin|56Q6fP5Zmkb7WZ -zsZR%!|3uFl_cH@{sB(fNC}LOkJhKF}R#zcr -z4WIhT5}pY4yx;UAp`ufz@`@jM+x9wmbiEu_Mw^UGZ#ji0ehQknDZAIY%;)#1zk72( -zY&ZEpZve@fKr_{TXZD)}w7SMOAa9ULm^SgG;pzS1gIQopiO{{L3r&EP6Gb@A_F2n@_-~>a&Qe8e4EmTmDv9W+@y%M`W1_XfEx&e -z!;&C?tkwPM(e|c^!V>6aCtvKjchlN0pV5cY4RDIN8Qk7dc4%cBZ^)C7a1Sh?rJV}`NFHP^y?mf38ks05@v^|J~t$kM~z`GHpHZ6WFE&SJ$riqCUo -zK+^9HOd{hCxpDsDcp+(?ygVtIqZRJirPJy))Gt5L>IZjkD14H7V7F8j;J)TiDb-ObQUM?;hDce!eMjK^5{C?-O -z|Dw|@N0oQX-(rF?*)`g4I_v)JhI1@hOAV6Xze^1uKnNA8H8wy`iP}Nm+d18A9VtT@ -z9DKbm=8AF#C@N4`@)TJnPe^^L -zEPgw`bJWVl(%6m?cNg)x?KG+qiK<9V)k{b03P>SUDC0qVwa+HnaNh;0IVPdY;kF?b -zZT$u@s;o9Ef%6!wCIX&uXkwS-tdEDAtVigfQ(h8ONr!!z>(Er0)MQr0z@&e2VfEX6 -zlZ)GDB0$fZ+2f2KEQX{8eY<0v6%x`eD;7@A=gPq}^g${@gUzv=S4cE_X}HoIwh}1h -z7Et#1IzE>UobJVXXOMAWvq;vu4x@0cN=x_e^B;mLv$Dil&Iv*^v)Z7mfq`_L;9ndNz1&s -z^`&>aV^hy76*82g7r?Qduvj(d%~TH;*T|V^vE}Sjn(Yz$wZmx7nuyhF%MP=m*f-}X -z%#p=|L;n+^!@Mv+z2IX*O1H(DMd&&%jv#j4MSEA4RhzLty2@QENh9C%Xt&Ags_U4l -zGF&r<>{RTH4TF;m(Vw{2EZdP2b)~&jj*>~EGxhP1z-dN-omSucB|7?!>-MDi-w9bK -zk3m!QMtAtVV}HNBvUub=N<+dJf{gA3-*!reV|-^Nx*TE0{!gH7E6S|D17$<=eP4a6 -zFwAg^(NX1B4V0MD^S4#sjl9YqcO@Om4);|0Pp#UhbKe;AS@bhu+MZ!_so|gPby?Q7 -zDJYqdnAkO*ZH3+Qegr~6ciGd-vUA6I89+Hu#yKeeZicVHp|QkXq`Ye|@dui&y1N#` -zh2TwsvJcaei(CLKm&Wqk()>%LV&iAeI1Sqldr5VudO)4xJX=(AbmAe41~w=zYQZCO -zSzqfR;f=4tBQC!>q~i;2QLuSVZHPzo*$^rg>ElO@TKI$XY~n$^4zMnjqW8CX23^QN -zTvz#SSnO`pdDLMl+||vG!nl~ABTHfB?9)M2{CLx!srp<}G9<)yO^u#@aRhljn9}!; -z1Xsr@&q4ym>t9TGpPXN)5h}6Fwy`ZZZnvN?!Eg&%k27Zu4F_HZ6J`qP(l^2w&}B`r -zOfYHMSWoN<3+ktN_6lHyfZ>=U+0-WYlqrKIXHqFeTKwdFE;67#0SzP$8LyM~+d -zF|5BC&Csk&McFe=jpgNh&_7TGJXe(#!qq0Bd~Q{Sk%*|C{>9eh<0E>|=5)CNIr}}~ -zh;PJ$$NvjS#pDO=B?401Y=)ZF_r#U%OUvb0AJw#K_y|-_EAhpkS_op$qcpWtx4VzO -z3tPBWrNsmPO{$WG&wMv*fnS&AO@^$u(HkqE^pD$*e*o8Z7-9Qwpk`qyH`f`8lmo#T -z#IJV5@${Qs0&E6QSPGBm$I}DL1Wj^BPGu~-vExq2n%y^kVeiK|oTq#g)OO^V)=>?F -zEi_G@_`!eC^-cJ0G8NwFlo0C9-gnzaCoFhGxF$3kaOi}()uZ6<nP!h!~yoRx9~T}>nshH9UJ -zo50h2Olmn!#=-@2jrN)hGdRRlN^SR1_J+2kO2`Z>OdQAow1&i)RO_W)FqVF@I~uCp -zMQpC7{b=xC&^op)_dp0-cN(iOWVYT8QoMvLytUe>fqJIQNDNqewO>v_aABUxCc9{tqzpvHI5OEWgbfh -zSQr*IaKsYU(wj|+u1&VcJ&GKWmxkg0QoH1h`HX&J)dVwdfT44sd4Gq!a8+RAC|?9S1yk -zTh@h}`Dnf8Pg(0Yzp&@|xVL1%wOFc@apGye$iBB=Lv+3yZSS`MV@(nrr%^C|@7W7i -zKxA6jXk~)=oNCOcb7>;VAo1^sFS-#eH!75SKPG3vwy%y@_}mbZlF+Z-U;moXXc7Km -zwRNYNoi7-Y4&m2u)S17MH;XUg{MO -z)Fr=QGBkWLUyl1l+gD05rwDY%`O}2|oxSmIn0o`@4euLWh(9B{FDG02{Gn1qvUrd^ -z2J(&ny#zVCfXD`Qd%j2>z9_zYiaL5N7+ -z-|=7)#xEjK9u025*sz`v{`Yj>QHg5h4!)kC90?5mgrPG$JS%BxANfK%veIEL;ZpNR -z??!D8xtLuf$vo^<@{JwJz5ICB^1?KEn8%kH5pV4ObYAwPPF2z=D9oN|uu|1-U_4I; -zF1vC`Fh-zJq{Zik{nuz^eVrdr`lb7%dF$!>@64=dH@HgywuWs1kx2oc$#Z5hYy0^H -z8Y#lUks4BYg!lEFA1hXk$RLSX3d#8W&*?TCf5sAS-|wjC6Cm6vG~dY-bit7ze}$`S -zApuF1PyPJmOcB&1=O{Hj!FxPV2ct;@dMO}S2fIwV%VL#}kIpgqQX)+M{mJj&+MUzG -zwJ7c)JMN!&SG$!nu`f-ciSh)`ImY2wPUE$DrvmwyZkOYf*bFOmbsA!5adRMHd!i?# -z1Rm}Ig53$a)zrP=A74`m`N`_2l(CsMHS;!Ojsh&Z-Ow1rs)3%cXh?h5%_(hh+^1)CqzZ{52`I*BXV3kh>Fs|nL^_HLlU&~;Wl19_Vcmp6Rw5Z3f#?g9Yf5P!Zc>sV&RGP -zl?@OHO-r-9m<`iI{Wwe3L#2-BK+A`ChT^hZFFMo@gA$}sf>?O@#JdE9kn7m9J=DNN -zuGD{VxpRWwmiCe$?wcJmtzsW{kaPDpOtI0p-$sQCpR>%gSHN80wSk -zyXDg!31{(HPYAsXIF}&Q4O{hN?RR`GPR|MB9A`lsaTtJwzt)xPN~G^ejLnimW$Ad{ -zE`cecY<0Tskefh~ZvE5Kd8H@5xeaFXAAPf|HxyHirbT4zXhoxqwpSHw3=C^hBa3!i -zVc~LZkAh=Q%QkiE=t|bC{SfJtb`7B%WU?kF;=8{#at>~@tlFL6QlDn)W=JI%Xpm+F?@@&^WgEp9=kAq?wdLZG;=v -zWgeQujZB&~9OHY&>VY`)h6R0qB5LFuWV9Hd*+Sb85vFt7RR{;c7#gqzXpUN#%=;S4 -zek9SQnkxL|*$+KbH((0@&%B@E@eT`N-EAUCC82%;fNNQYGVJuS9kWZb<~k?JCerHP -zL$aDI(=af23kG+7=FQqj-H%!ZcuJc)9lvJx5l*vhL-h4W>CM6-5t32cb>6H;_XRr6 -zeK!wia9&x?C|j1~JxAxeAh7!+nw{g!cSi7`E&R2*Dy@4+-<+^TNom>!jDeIXrXlb?W&r> -zUeIx$MIkQXd^ZYsNtS`4GLhU|es+?N`uu3)YOGwejXgZyQgMZ(Je1Oz!d~f@tP*#x -zwq$*>FXEh4Ft2_Bh6h0CoYI`+px$<4qWk@G;U?xfK_l0FNg0E-)b*Bnw6E-Ua{a`( -z?&}bBO+HtWJ5d`cPI00aMv_{oPSaieSC?O^i9DEr;)*Z+lx1WS4So%ShOdPTaF^5l -znS>OT>Sj3UQvid -zDB_!`-De6%fje%zLqH;13sK!mF1Sfs#-{l9Jwjg78ztGB2}Hw7 -z8F^PD0eY5mj@nmceSTIftse5a8*@rkC-e+M{V7gkwmhXGBN&PYA`}~%Sl6oJb#PLY8OH32!P6W9LSbBAR-tSo+0@l;RFLV?8ZGs*@VDHw7{AGKW -zUlQYU-B+%AqqO2gCaOXT$T)Z4e<29iWPa$evaMdFKNw->MXk(g;0(34BuZD>)DBOO -zqsDPIL*QEpIo1(MdN*uLeEk}ZhgP{j5j~rMm4SD*wpCQ4R-D6&Q+s|}$>OL`j3UZI -zK=N^VuN2OA_Jv24lvuG((wb8<5MfJZ95z>mO=)w+@nSc>cv|Z-_5yZSTIx(4(GO=_ -zE5FFI`?Za3c_w}yE!*(?mlO1nYK=RHozKkx&VB{xdD7A})8cN_Ufy?csPNs><`F|) -z3r@`x08GYJ2QTxMMEP>$Ti!(INAr_-q9c6RS-()n&uX}KtCB;!7sVL -zw(s*dT<6=BIB@UX3~#SA^#|%Aa(vA(#2qsq1x9{fJdfej3}yo-XbefT2+jF?DEbCK -zzFnaVmWr8@Pc*L%igF}1(wO+1qArW^NgX$#t9Z*>xW~WLcrCdlNLRkqUlWZL{z9Ra -z!w$s&<|umOYrUYI89Q#`-}(6Ur_~*2Hut~_Sn%3j^3?o;pX#E-4ugFx1M%Fyypw=r -z#?|i+dJzCY?ZbO8N!06}O$%;9B6;E!mtE_)Dq`ea6_*_<@97+x{E5U$@=6sg+k{ -zu`Ypdm1Z;&=Y(`gPsI13ZRoy!FwOZX(KOUoZ)r|8Hw>(!z1b0UhqWVskdmg -zL&6;ERUf1T=9M-tW=p25w$(%-zmSHOdY{dp7NQxvo05Iy(bpX~JRjxPLk&^ICc_u;w{-?jWk3CI28GTn -z+ZnufAoR`mau2x!z+_Cnxqd&`{mYuUN0EuAb0%f%qNE4zDp9Cnx))Wj_Kce4EuYjSnzmzj^@rDmZsyeC?A0Z+0BGsZ}PNIOuh -zV5n9ER#$qDhOKvyQq;mLx$WL;!PH?)RAhvqW~mVr8fX8i -zNf-F56Gf(6ZvIP-6CGR!hdaO_8F}dHdRk`hTjMmyYt1hruT=l$7Izi=Z}5(Zg;C#H -zx1L_)f;5lfU#x%>MN%H8{?wme74KP1ULcO?2l@ur>G(R}lvAY>c)WW+yj^DRh>!gMKs)l=HQ4f<$Gw4IP8=0kWYX1)TOC215f$KNiz|3$5ZWav-% -z!qq=e`kz|FM|FS({qc#B$<@%>Me54FKqSK0Q4H7v#kr;48+)23!$fOB>$7q|^rFr05 -zu{Ov8C)C -zF7Nn@bk@Eg#QcxC8?b+oX1%$!h8kX20mz=hLHgy(ur(aHLD)|#N86^hjo}ntT+{XD -znf#^gpFZ&#d^;u-HV6n{Mwc5@=MrvWNLhrv13kuU3Ra}OU38>D5=UI3&5;@sd?eJH -z+$3;{WJONm7-F|}ZX113Kzah%;7RUFm){W6upUty0 -z-gjYb-cR!39Oy2>i6#^2==Tn?pi{3%DC&lKwD$8CRipY##qc9;GklD=t~zV`NLQkV -zgsMMO=0!^bM_d4Oi;zm1oIGgkT2Q-+n+aW -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 -z;D(NX#ZcGhBk%>J -znqzX`l;BpY|L~v+FmPcai0-Fm%Q(n*aJi?raYxkgis*dzfdE7a^{>iEXEccpCAFAuFq;N -z1Uj5Nca*Hmum#lZt}f#vqML1X=dO```|EY25;01fS>Pfj^sPS*m%uAGIYT8aWx!xtqL`&%V~1scutSJKIB54*c^K -zi%q40_&IH?8o;)WYpNxwO`ziBaSN*ySaNCEakBawaK>sZaUIy4z?1VI(w3PH8XF+b -zB!xC)Ae+<#mIy(X`hm({4rQ7rZlKyZNit0twb|)dRIt;8=d(vxA|nF@{s(INqcZ-J -zURqZAsAWdxNJndqf?JMU9Kw5(ExjMWlmJ#7qE|IT3vdLZ?Og#nI&@5O^&@3qs>0M?iD*fu3yfMH&2meNwJl*`_ouB%4)-xYvR{`QHH5 -z7Sex6eMUJwC}7iVk5Q`AGOZ&at+r*4xBm^}k?^D^_AsANR(=GA(md9>nIcW`CEKhqe=v|W0fK#iyz1N+P^4nUbWgfbxm^X<8Bsdx5_w#U0 -zppCRo;1GI6c!Qf1#;L3o$W9)jV8a=%XV`Zv@f8=I{-Lf0pMu6zIE+X|G1o~9=#Zcc -zZ#+NtRO)Y=K5~Zdqn{pFE4JOlLq_Gg7|IF^eo~dQRB)R=K~fS$H1vgkZR7uHza5pA -z7B;QN5i~-3eTi9^n-cyBx4~Ew91j)SxNJ -zMt8-!A -zX`&hYlr_>l;u0y(2R*l{Su5^q7Gw!E6}EA2sJ-Gy{__&hW}@{vU0ZP68-;#2Xrb^+ -zg8dp{>#YdxiHIN--zexvtGP`s9VGK2l1xrHA`8x*5IXsVfBwjUfZu>>or8nK^|`zy -zR)tnq^v|RT>PQ9g6cpz;dmSc<$CBZ>~U1Rr1I!99^PmQ`!35>_ezA0&;StGIPzV&#MTZ;NHoU%{|C-(2b$YD -z)S!0%#p-YiXuH)tH&uh;EwSCeYi2;+?vkfmZwWy|R2TWJjq|0YnFM+vY+w$0w{Djr -zcsxf(jlQJkQ&Q_zB-uXMP9^sCS>yCd6p|8|-~OYrrdCR$mXs#qP(@bhR>AgY(_i)b -zNVw#WI*B+tioM|Kq!W-ZIh5OBcqQGErt4W!Oj+;xcVovAwnr!(WD~i*d`*2taqRBF -zTbNkVy;Sk>NsJLnPJ2POH}fJYga|1hCo@_BemO}zZA`x@Q>tMuSt5~YdN~VohS3f= -zKSrZ>tmQY@B=s1Z)D8L{+ihLbdF<9Y#c5F$mcH)rShVR#?rucO5DPb4giyi%3=gs- -z-!~9h%U+{@8NOCSdoxldF5jnEZF1@N*wV{+pAv<0z^ZOyBR(!fIcmc1rxZH(pfN)u -ze&s#RW2Ri4*ys6+th5e3It%)QUOAE;^Y2DjOFl${uVE+e&y43d;G65y(;b@fyg3~G -zZ3YEq3h7sokW9CvIGF2gOphXHwCKOj#oy~ -zkDm)MS~pR2-IlYrDFx6GJ)EVbn46SOT!II6)Y0appmtto$-&6S%BW+dAiK8?iKAOR -z%`qul?c~8z%!Fh@f2ZQ%N&CL3gJJJmHHMnFQr}*FDwi6c3wZxTt$s-0fXc*i1}8xpJ?U>!zb|{1F41}~68yRPN#97(5CZ!Rg_r*~mCZC#SKBMs+2;_6Y&TSo -zXpN!nlE5v8S@@9l;ufm75IqH|yCrW~(7D#^j(vFw8J=VqM=|p3O(v*r% -z>Cn8lx*3ND7X@JkS{yeh72FNddDY4)mmN!2&Z~ -z0|HR}49$Bl-C%?OI=8H_#vX#>E1kX$eRiKPrd^aBVJP0Wln!cn;+BDK(oSwTNkEw3 -zp*z~~^P11aZ`DOu$8R!`IDWmDAaUpOa8L>SlDv!(3_ULdR?%+aVU{}fZOg{b(cL$X -zf(UMuDi%131V?40!3f?@Wk9k8e}eeO)*mjp{$Kl4!9h_vgU~8)_f@!bR&bUeA305Q -zV=b6{9*#j!W6|wykp1jc{2Rohj>!9joJJqXgRaMtdMPR`8hfp|I~)E;OIzg@tZ&^U>%!}yzxV1o~&0RJ~qPR~N>o)l1 -z287KsMQl(@IRgTn_PQO&rjJn>m~Jm06n%iutLcl{C&OZz&oj@?MY@|kpfnEe -zHJ+-0^BFZ7WREZoyjqb7szR#F_br%`ML;5`T$yMJX=s5y5@ERq5fdsjZ?1%Dc{d+k -z0)F@{zxniE*T*ZrKuU9jK6_#O={AGA>th=9XO)0L31sr5`;gcfGAzJ{6Thxs((gv(04p*$Z5YtJum1MdUvrao>-cL1&?-B8!y}$3<{K4m -zpe$VyiCoP@FQw0*bV51@^oZ;*Df7_O5Lyaj0PVNUL&^O$728$?zqnu~#JLd&=kBLQ -zSnU3)DaDNT1l9~H{*)oP12If}a-%^zc9`4bX8mY6DYH4_*VBnO%lc10Ql*P8eFHr~ -zwj5`Hb=~%i%5Cy(r -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 -zc0D9nbHn8AD5aoqmcC>21> -zP4ujBqWJyORlLxj&w;*uo>kp&*6(cqnK3>OUq8#`A_OtkMVVFI*ME8Vo>4$1cTM*c -zB9Wq~#Eh@QA9W`ob9vlwLXO3}7&@aIV}~3+nzDC2E6uqcv=wD)L}2P5PsM8`%#aR# -zKtS}b#28+(0u5u7nf?4VHW8(tfG4682<4oSoun#^<1{SdMpg`H$|ggeo+z`5yU@q;FlqVH -ziiVF(lX)w@!NUA4cE69$JZTaZlt=xbKn$68Ku7$Sx?1?d_+5N3uqGd=u>6P{ukre9 -z)NUqa8lsXVsZJ}O^N#w;c4x!Aaf9r{ -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 -z+c=ZtUWE~0<VqeJ-R0&r` -z(M-mY-QeGg7!#Q0+09`~kmE9)O9s`Y*~=5uMmd^yi6Tg@dk+Jyy;qdqK}dn5k!EN1 -zXY`e8t>ecF8gmdjAZv)+h$|@BP4z-8Brrz`8f7qe!ds0tsMza&94u!&a2|c-t?EF6 -zW<~~oA|)$jxX@o-bJ1Aj0Y;oiAA2Y+0T5yYuevG=w7M4;cGrMexhI{U0<)TJb-eKa -z&(1fT9c{IWkzHh69C&JjOcqgNqr9{*|7jjx7JB0oalOA_lc_`F9uVpf%h9^I92azc -zw1C$07x#YBHR;4XJ8XTyw8AkYiiY6{2%q2Zma!-i~SjcTB7;hBwDd4&gGH9nR65b8La0=P)} -zxlsk6kXGZm-SNNj^%5vEpI1j=3 -zP3G+)8L1VKk^tFM6-@Bhe!8s*GcbzB#C@@3LdkqS6VGhPX1+@`GtAl}H0CP^X*{B&!1eEiXfeL~-$@sO__P})J>AJY-YQ_g3%N=Th -z8{A5-4abf${}`f{SI}}F4FM$>e96T2{*indcp?L-xYZJURTY#liJTnzdH%uR$mETU -z>=lgSKYy)({Cw1i(AfU0AECDFqq?S7$YW+Z#`ycSE5PDBR4;M8tvnfUtq9>HupUkP -z9%6d^s9lswhWs^wRnNeA2+bF38K4p>HC8Z!jQR|mu4|#q)*B;n&&RS}UbAtJ -zpzeKyL`x{=q=53`k+7RG%BkMTJ2lf_ -zqdPS7yO+^z`V)Xzw=5L{){dNf$9m>|BSv-l>R|OH5y@x?5ry+^#VxJ^^~}P$|F|3| -z79)Uphxiv4{mZv@?TvFuj}wE$>doBgT|c}e^2`x_C|K^?Mz1@J8&CC6Ut1YPQapt$ -z>xW*C>XHp=jD)`yp8C?AUCYq;Z*d|Q=Rg8r)LivNc?pQ)TSrt{_Kk^{f_O^lb6cyI -zdO6quK8QurKsTs@UB4z0F6?LcR4)n$mY(FcPRXc-2Ow>j@{o)V$E%RTub+2 -zYf<;eLpjLuV@d$v#R9@#8HLc>qXLb~bv2{6EG63o -zs)w9%5Vkf|UsQLr<#Hj=nkX8|E1%7U>z1SuKTfh~X!-Si1y}$#zoc9u+SdkquhLKU -zQEK#+0e>S{5M=6UE&DkC-EJx{BX=U*rUTFBwwFY`T|CqSrUR4Rm)Z{Zi$OVvAUKgu -z&)pwltjiV7^}k~um(H_13u>dKn01czf^Mq}wWeZp)!vnG6Jgy|MP0oIN9}A6^AGg& -zCfY2nt0AI8D)lrIx%0qSGr%zXlF07(w@9VDZg^J0FY4EHPi4Y_NqJTzDdSe{s=j>5BaBJ -ze9k^!r%PlI(GVsFE_%T!tKrIIU9j*U2hHi6o%F^6f$+yD!+%=eqFF}$jd-HdCM=Nd -zX)%vA{Ac(r8c%-i%vIxdxkJ9>;fLQbfJj6$#A)$W^3(tYcZjjAy`d{J-L_@z6Wq3- -zA3WJAAU2T#Yot>N$IXkqS~rIZXOZt;foF~aYlxF?kj>6QE^%0|Y?NjEhZK}a6|?vG -zD*ISxgb<@qDb9G_@0#WzcIA^{y+*1SQvYo2@DZ+pq3CTLxFaWx0&9d5UUsAm?{|-1 -zd#(&#n1p7uwG$c$)8^GUUb`!Y@0TnqQa<|PpjXUty$tStCmCS9#M8|D!=*5p{X;J> -zykDojAd?m0N@%0d7AstHduBy|QBDXu+4~Akk0Qi-Oc@G@>CDk{)9XKlwmniIl&L3z -zVJX0szhVy0BIDK0@Rmva%N>&;fIK^HKVy`f -zsK+ugk?VCEcmA9}7|ntlSx1!n#dORLBZjgff*M)s+;|*C5#1l -zW|zGt?*O0;-w$r}S>*!G33}#*NR2udjorTj1d;0IL=b^pVY7F&L1frOM1ytBd$#$H -z>3}b|K-3}>-y1VVZolTQwr)n-Z~4;8k#=NY=MoCfGaiELLX632^*)G_1vZd#?!qka)6i9;#p41mBBLQBOFWS%gXZ9PJcNe$s$sm3Cpk2$_ib+V46Au(JWb -z{#Q68nqy-Nd5^P>zpRV0K|#w^m-f1UMDPj9&~Se&QTWNS-3@s&2@v>W8E^SHSxaTz){4N>hwRYaJ9=NA8VY&KM?^YH -zF>bV!wF?JbRsgh?y+zB*KCd;e;aqW_;MiSIQ+%2<1r8BF0nU*o%6~W?mp1jzgAheQ>(n6o{o=d -zL1oDAFUm10t%2fef%5bPym_M&f{;(>*fwAAoFoYNl`GFeo0u>sJMD~Mi-@{1NqeLU -zu%QqG?TE4VZHR^3LFv;4PYxhvCw`uxC874)iys7@1X>%X5hrYd!4@pK;%v7Zv@l -zetVH+tZQUzvmCr7BVsPvoW;u9JJ(^(fqqxJ;qjNc4e4WkVfCuyZ!O@&n3O!d<=j+> -z(h^6QMoU<3Dm!oZ#E4ox^u{a-N%QtzldmAO;k^yZp>@%Y?bPEoJ5SxnHB3%AT+GZZ -z4$c3utW8)i>RFuo$qm*X@KZ+oXYJaH{nEG6bYZ3qLbvqwCn;~1WU!C#+FhSWbXT5n -zy)m5qvpoA1y)*Ph*h=}njQV|*O(@Ti#0<}+5>E+Nbdp2G*ZRE|I}T1qEvr|kNpM3C -zUTMDCtW0Z^#p6ep=1A_TZHH^MsFJG7nWH7ZqnC_Oljr$}1;UrK{7ZPz&KJ*>3fwEaPth9FAFNaRvNb^!va#NZ3Z86M-3aq(M2IMxd5KHZZ?zOJqiC1qJFy$ZS -z#vLy5q&GA%PR2?6h>9R^L6?4cLg?mp>1Z3pLpbJoVjGS&5uQlLmb11-@lep^X%=oM -zLxk*ZI2uLoYB{_{SJ3~n7Jlt3y!QCi6?6E0ktl4U}XgVwp3+fo~<^p{kPm0T=cqz&MEK18hX5%6=w>^We -zJ>Z+Ar++CIO}6l%Q-Iuhwaoj=Dc*mbUh&0XG8hAs7kvw9QAonL`Hi<67%&oC9Toh* -z7!+PyB_?I8y{L}2y2pk(-0zUC)`$? -zqYsU6%lA@cQq6M*&So-|2w6Dxir*vQ48gI->)KFPLO*^8iOwT4_PY8D8+PTnwG}93 -z#O8yGn<^J?4a5)S~2)e;!#?tCS@Ty+R+iRpw%3@3JVJ%<3+h -ze<@Yf$P&M=^lbMAbnyF;{)E)ihbMjFAO^0EKp2!Jf`2KKupZ@n@4KMrGm!OyD}f28 -zWP^_&WeKq~FQ}NUMD>`%?Vn2xiGw>^OZ9-h=0k?gH5@1S3Jil1IT72>Y7{0-G)Xa+ -zVv{X7q{{_2=WeV__o<6B`B(sBY^*IBcDHdl)0NgL%Dsf8Z<8Dr?nUTsXoRlMB0vAm -zU+6YrN9&!lkxg`qhE0jnQp<3i!;)tVlQzvE;$4s*-(%Xp6+^;~Ip#t9mYuH8a)oPF -z&hcWA5kXegmxCfx>|Fy@fZ`qjMiU<)wvNhmp9x)0M=Y!{_-0zUVkGpAEo9VUMI7H> -zsJSjMcAbar$tPO>NiiK8htbfxJ`e%rRov!d{91>r^QZ;Ad}i{{Go7L4DR~2y?hr|~ -z7Lw|Ls)NFVjSaXXw^xsh7xQUkXuyr!kP6F{&+CM_7l-sPKXekW?3tssQO2T;1*>f1 -z%*Z9dc6rpFs=uCJ#0e5-`|QPVD(R?f_c>xbyb0yHjeu9N_!nbKn-*;}Z@YxP{GvLb -z4BRz8?Mog|%bsKr-Olu#^oe3{1hzRt+iHqvzh -z&32y^h0gHJ%CSGDOE0HHFKn~*SBAjQ+=Nay283(??s&BNi+82ZErl)C6)xhr8dvK2 -zYL`J34q@)*!WL@^i+-+F6p_|a*?s4&>toZ9JmI!&wSSi6h>R0ev+d!69yNg2q{m#8 -z5S1dU{x9#WvB9DCoHS^y%_GOaT)q#-Kw{68AbBsYoYE;{H=<|(%81;y)t0bmop_UL -z);9tTi-vy=HS`3r|I?+ -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 -zR*#DBLOKE*4Xp+UA@zFC+*w=i<%lOT -zu@TN&7v{G1zMot1Rl;tumnz8zCERTodUcnczqfPD -zH=8v6)u}1&{lxJ{r5_Vcg5*y=_c$bnz5S-$Usg;Qao;Cp=`&^90hmk&b{%AYHyY<( -zo{h8WGbLVe-x2ROQ4HmR?XK{XlnimDQVBYnTcjZU)D2bdbFkQ;UdIt;Rz5-8jG9Q` -zXj1!EoM>{@@^D`J+!!o9-85kn8hOe)M(G?Hi;@>NN}-C9qpv>Rq!1>3%KfM4r6LgE -z{3zEn7QW}r&n9tIGOFPUE#4tOGumRDNsiWR`>2&rr=x1X6Z~)Sc#WWmj;1s -z5IZ5;&h$}Fe-UZB>X71zgF@>%-!Rd5_3MYA{G$}2CsTW`#ZPPobPM}FI1!+HU`0O-y*Jeri8*E?S -zcF0p5NUE4P|6-P>ec-y}Y)tasa^)3RxJ&%6aD|#cT9D22EIAgeYjL -zF|#m3P6a!^cNHN5zsQnsk0tKPcp@15Wd9xfWG=P-{M3g`1-lOi=afti42tNiJV|4sQ2=*-vL>)}1SmlNB$$)J1=9lnemr_`BSZyXuFO9u<<#v? -z`H^)5LB!ov1pd&fH%XS4Gxv50MJhX$6D{5;P>sXfB;iHHp@E<&klT_9Pww@1I(M}n -z9$H&BUm;B{Z|R_N($l(Qz$9oU-B-cKC>@jE-$V%8-kJrkETC84@o&pGuOEjp6y?T^ -zukE=CzE09T?Qd3g91e{)xBf||Q&3KgS?-gzQAl*F#Xs^LDhk@rY4H;TFy(NoHS5@9 -zOS4=R+ho_bT1}niLwPk-ro*>jWIbfok74kS6D-1laa~Ad=`@ce^f1eB?E~}41fKcO -zsvR>*^Mlasw%Pd`Aln5NK|$z=fj8ZN5C)e}DTXw-Bll?(R3yMLa93^=Jq?n*0*9#d -zbpxhp02y4l$MCI*VF{2nm#4B*B|PQNp%fLD&pJBHb-DSU{Q0Q{|6q7_-*sTN7<11N -z!X{MLElD@E{z*oGXM+7=J)LmBe+!4oh9S3s4+Av$-}*iCgTMW8iwPDBHv9;7l@2xV -zUZM&-tNV%sujRb1{@-&;!&l7>%Xux>G`{{j7p{G!#uS7Ln5SP_JNx#y^(D^Qzh#Xh -zU2l!H!X-b5Zlc`rts| -z%THI`6sWC=RLZv*x1p;X*4VY_!!rbhnhgtG6Xq*klOA0OLpsu&&K -z3zAEepDmy2N4v=IgpjX~|H*rA1Qnjq<;ei2l`5lpsXZSqNQ7UaDDo40F{3Nsj!u0k -zCfR&+iYFT8oBp*J=Oz;fDuYGg)9;9TI#U`W9*kWR7js}EX0i5IK*5V`F}W&>{;Jxd -z+U4eamkhM7m&2}3!b>}sP#8IKA`FkRxmF?uNMUckkx_WIuTZ*wAyV(P05n>l(9n+) -zKHBvn=?aG~YQ<1N;)F%zch#RJDr&@g< -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 -z3`O`>hEu+`*^8RGSf -zI^$m(OK+ujQk!7WaqR!Sz5AyReoLCEP&5vqd_gffpWr^d!a(${q32qE5Q3GC<7t5q -zt7%f_X5t+kOH9);=p6cp1JpFV$GO|C1;O^D==_1Y#x -zM6K;8(x$amRBFIJZ(Y`;cMb69)Ke>@x-oh5)XSFs*>YogDY;15Nl+%T*s>Jth498i -zt)JJMYaH`wWJTlQ87dS@;Av$6fw%6%^>fML4oR_r8BRpvjx50nhibPO>`KGk3_LNX -zaRp2bRoP!bL?n^GF+mCG#F3K%!z6LcZTg$Bp~Bj6d089ZNQ7pUvH1sW{Q>epiHAPy7pKqeOlLbYOns<^2W`PB^WuvHAQy#} -zxI}jk(z)>`?;B+6GfAqZmB~q3IlJ)1cVp$O4Fo8IY*BUlA49J$R+%z{7z`Pn3<+z& -zY``U9?wvKSM93J3+kexh6oojl)%~YSDsEB0JB?tuRxPt%P<6-Qxq51VCS|Xt-=>zy -zy#4fgBQQX`;YpJuUNdVD^^%C_q@dOGeji0t6!_qaLks1*3kp^Pog*t~2Rb@L^4&^G((Z%HW@u4G6nkrJss^itJ^u??z_@+-akax;$ -zEjAw^gcFL>mMTo}!{>XtJe$v7^m!HWQc -zbLSR(1_ahvG?_`nLKlSJx}Ri>zHNJ>A>g%zG^eQo+_Ag)%gTmTNq5!q-bk0WkYBPs -zMlWeNH<)24daoWsrGt9&jYf0_)BAVXkjf$<{Z3v17vT0?bi4u;P5fJnxSC}A?LW=^ -z%mhYW$ACi~K*wWE(B;;^h80OML}g9q6v)BO3lR`XU?`h&NRM_1Q_`-4LnDkzo^2=bYjJi7By_i -zf9bwFL0}_=k&8UOSrOK6k}M)ws*=*(8{LPXxX5=(rsv?z$u&_A%K+s; -zt?lm6Tl>iSE15$-!cE$UzCD!n3vAg?QQu;U8p_-VLi0aIu(6G&mZr}p_Gas@d=WVi4gwF5h^Nq#a>Mdj^A`qIi9U!< -zZg|r<(t#Unvu$P@af=WH^2aAomu*(I+dESz1cU9OZRQu$n7#{h^ZAnLugndBRPX|KpMQJA!`_OV2N-BZ;K%27 -zw;KbLz)+l|QyW5-3O3dpP+~zk`QQ8E%J5%M9mF9C0iXp<*9Fq6AkNk{Tc`uK+OUz_ -z-&#B0`^J+mDfuti_u^)T?m8>qnmc=mHRv36sa+05%_7VnX2+C?foL1Gsj^)PO%5SF -z$syBpW&dpY%zVy?7VD$8nC~@6s=Ws0IS2mUZA-ZD|25@zTp_;gJ>lF^1q+h?$GgeH=FI}Fo>uN_#Ey|KiN3#5SDLOlt{pZh>1G9rBxN9t;f0kR3q38 -zQd}&Kt)yG2&zrtc$Nt9=YbPG?ZCkxR-+ksfp%3-T5}QBT&L&`GAj)G9bF-Xr;2>7N -z|96-G=VHczU+vf`64)X|>h5%?rzIwve0+#aQ*OeUE})SSkT3 -zEuP###~khIT7Alzu#MTLLAdp7WDxa7 -zn+4g+0dAIB#essoClYwXg%qCtXA&woIwy|8T5ACi@D9|CPHoDBb%swyS|h@`1JY%p -zTj}kaV?Ba+HA9J7hp{ES{n8iF18*ie>0yxi+tiW;Hc^1ubQSPqdiM$*$!V&Lvm60o -z55+vx0E(uTxNc#R*EY1JGNNxJ!lI!~mD&E`0&@_2>2$(*fk`qx7`{f>p-^x%pQAo- -zsVd12!ox5r%>q|Abe3BHhSZhh_o(@?qDyD?75jOxQIm%2IHD_c;j_C}6!kR8^d`lj -zUTEnn73!!Wv?Ozt+10ZRge0-7?8ZI6;4$+7U39%(#6Xb%ki0lci*roN3}e0i0yG6q -zXwtY}G`M}=XFjQMp|hhb|KO^xHY}9aeBpzn95Fliv$55t^14|WwuF1-&iGUKf&@BJ -z7@*EMX#65&sq=4= -z2Rh;+9dxrW-|Z|v1&{CvAqVRSJk4LPoMAi`+%wwQmo3?V_e`LPSijQze!f%+5K4f1 -z+evOT)XRDo;N_vDF0!k(GLV+VW;&$#Dovhn@>&UaHvq~Jb16qGF+BfMg0G=vSL8w8 -zLGo#6f)}Vq2H;3^@N}#I8_|Cof9?NcN$e|ZPmO(e#qu4FKD>WtipqJX0IX90!h>WJ -z5vRGG&cE&-E!}twChDCbO2JotJ&X-iMbuFh0;^Q;w26&FHiU$6i$8lmBzsvGk#8f7 -zyUSJv_-?xDDctX|(kP8=@uVB58}VD&9(l(C#@Jm5D7$>=yz{~m&O(%Gknouh8n2{$G4TX>(EL2<4uWWJXCL~ -z=MBfem$GYvjkJaV1_iO)$L=a+V*>?(h+j#Y_wR~MYNr_;ux1#D@+}cT6oKw_T -z&U>UVrd%}}XVJL}vc}s)4hY+x3jei$!xQdzL@!@1;j6F?*WXkaHt5mswXK6j|JSa> -zBDPjl4uo-rJ+-s@-fTOkZ)b#+ihPv&?`P*rJX#DwL!;a9|5fFTFn>gZl+A -zz8J|8U@x-b^n0CKBGPqWLIVaq5(cD6JQWO~!L>FgG(VIbnP@xVHc&der;{-|_DLeu -zwSCt3{hXtKnOqL=&=izbAovr@z{2(@L*(X?QI>!fLD@dXg|LD#BdizVwmy7=W0bFG -z&)t4UbiND4*^XsG^R>(o1pbR^%5H%)tsukPzVYR!y5{~K%|N( -zM?EYkDl)t9C&ILpff`kcfPWvF5Bt};N1$h#_c{&X$Qdq!&hU#M&s)1$Ze-KnG!<6% -zm_&c%b!a+xbKtI8UF$Ia7DDa^K{9ea7#N0OhceD@5Cz#`NfNck^cm;>Za~vmrNcAViq=Dxk(hU&ZN$VSMQ_{Nw7;iL* -z=_XR|x=^z0S@y`w*A|_F)*VpzsWFT$f@e>!4}~$%05TA0N%ZswsG`8)WZuJXIBUJ%}4#YG<7-sNt*UDja4lyim%{gQl^ -zlAI(ra{~T4i2Si5E}L!XapA_JmVUBwmG=`Fi23M28P*oeOt%NV2e3k%)`8w;VlI|% -zbKyvt=S=i@P`GApKK2XXIIP`YKvlp(17>}D< -zguXhUH+%S&1L@igpg4Or&P?AK8-0}&2`6VvXC-Hp5jFHZD9&2G$7eYGs|QT^f6v|k -z&EIvQ@bd_hylU8vCG+E^9!1LSHWCf4deXyAZu*;6q~oQQAnVtD+D1=A6J03f@YE#f -zHGxi;Iy%EHWAamZml44Z#9BXbq{3ew3G@utexhS!UHqC032FGR1k@1B1y*N543D<< -za~)CZu}NGK9WL60ZUJf@SVm^hF%lU6P5_|=tlZARZ2Rwm#6_Q0jO9AZ=p?f*&Wg*jKCU5T}#*=sX4OvZu -zi5tpkqRQn9L8^* -z$G`6D8gL=J#5c>x5*w8AnX*0yTJXTUCqyjD{B#%ObI-G(-=w2WiIr*hlzV|Qny9;x -z*)c$qMQsqM*0FiLdAf4e)%Nt)zn`r+mH4Ry+x2~<5NV|d-Fb8sY-2*RlCU8PnTrBH -z752tNO^un}Tp=rd0%}wdS?KgBl9$3FAMSH9bh}ypB<1&j`JSr6Ti-bNi!g%#eHWSS -zub*@OGfHG^0Z4(M2}%dA>d_iw2%Bu4tBdLTNeSf;pBC935NugV3kf(OCH}5UAmiE>!C0(&Fs+v}nVIT^Z%GYgwF1U1!%FWwBxAZpU5p_+?tCBfW&{HHmHy7wpN -z-P5+NK0?GKDB!tJ0%S?MV1zcYEpeMJ0b5sd^ag<7%_~c}-2gqCIjulE^BZCslV2x( -z!!G^T6Bdexh{)DJqsJoC0GkPL-lvwA^25y~!@qP+G8UAH#fh#5$S#^Eo2h|aX$RI; -zYXR2t%EZ?b3qJf|55|uRQfz?TUH_rUVsxlqh$z1r#?)6fE}#U8=?Fa3MjLJu)ISJ4 -zzsb?uaMc`h5m0=)5%RPGXLX5{c;@V-L^$qeB_L8}y2FJ(CcaY6qtcQ@pQS_*aX=X- -zqnG)C#_LUc+}xt|ViH2nv&sjA*rXB)Tk -zBZoE!OvhQe=Os5@N-pnb2U=h~0U?ThQGL!`jm0jaWAFg$G-cMt`wBl0-4}HGV+Tup -z(jjF_b8lDw!^If$kb|xV5)@%QzCrJuhA953{qxUHaLwKXU%dM}R&d69M}|O0i7@5Z -zM!Ce4zVQDzZGEy&rVh1KO3dKsQ)@~>;9*qwY4fM)ulVC>vdz+Tk16gknyB10`#BdS -zP@n(QVZd>-)Gq7$j1bysKMBN^1fWHZ7f(Uk%kW(P)2&g-C>$~rci+ptf6h}zX~b;C -zgi0)8`Ko4Z+t3j)JbNnqZs)MZrX@C)*LLO*W3!xt1jLHzK+$l&ajyBmoOWkBDv -zHBaT|_DT!(@AK!N4YvHAulxNoH~zm)n|1F)(MT1n=+~367_@yRfy=%Mt`D?`0ds)N -zNE^bLiwLkk`^-7|&MNSSZ;q*OWY2yrvzc$6#PEK3YAlYcGLo@@jD9_)ltBjt-0r{; -z;C0(*kJf(~9g`^0EI8GsH~mw90)Yy+2F2iI*tU*1Q0qaIrq%5;hl)8{U6pE%6njTx -zc)8i#Ps(387aor&qUHMr1ow1@yYx9$9)&i|E3D9>{DM_4?wOEY!SRam?8)-wktLx3 -zXu|%J+y+K}Me6OFl1J6}XeHbuOe -zRJ{|4PZ(+RGNlS^E!@N}4_3471u&2^8AgQdOW4h|T0l^kVRv*|L=;|k%_BQASzgY) -zC=Elz?*NX#zjU-BOr^c^q;Z^QSXiwrGS6%=_t;1o0o>wZ(QuidN+>Oq-8JSz1bmY2 -zC>K_X_PzPMvYOp>p|63WEM)NQTBh5pxa$*$l02lGdSKSOp}6Ojy)%daBcJ19*)*AEcK2<6k}JlV49M~S7);^#j$XTEk- -zLpIz21S*w*-q_RBOJWb2>U+{`74`y=HX+=QHayC}+wfxo)*{)RH32=2epXU-%|A$j -z60>8;RJ@BT;uX2_qb5IUoF_P}k%Pu^8;~U-h=*svnt54E2 -z8Po2*1;{KE0yRKO1GWE_3-|mFRUTiahJX`P{-@Sh!bMuD##Iz)d&Uh&Q>I9UQSd){ -zY|*n^n3kG;yIL4#k&}IVjOl==h6EOByYOD8v7K|I+v^kjxX~yr{4FmkC5As3Grxqj -zkZ)pmE&c^dtrr?6q(o|P26w?gHz(LSD6n(9$|?b-3`o*M6JbRKEwLZdFTWmuSO0-6 -zJX%AYq@YCb2_Jv{b?|qF)ZlgUS(DD)VaIkI@)LENvbMBt%Y2u#Dy!PIS6h`nQoYwGwBe>sorp(AG>n?WBH^ -zg%y2I -zeXohd!uY76S{{!nmyHubm4QUICp+FBGvAp6O_DORlPlO*nE~^ZPZ5Gy^BPY7Qh9b3 -zNsnO$;r-M}d=Ft)+B1RF(ZB<}=(AFi;`PU*6zX9Qqzx0@RA#oYO^}rXW3&t4) -zT?mYHQknOi5>M!R(Ymg*$x}Y?R+k9%O=#%)#iL!MT{1Ydu4S*^8X@{{p~o-_1XGU= -zQ9yr@DxwO_H;WTA6g@m4@;`oq0Puk>3riY=QP^)gsjx~?r+zUsxD`;0v{wM%FB^6$ -z#^j&T^+Z}s=33^&A8JK?%uCH=eE(3|M>ndK1nAv&38bL)(G%4z)%Uy@=W*@ja~w8~ -zw}rR9c>j8Q5Z^z3o)?!}U(;o)jIu|`d!cVp<_-FLGbw(6pzo;gVaBQIYrCSj_1p}m -z=>^KcL%c_$hi1%3mJl95N1XNzO;((lZ!^g*Ky;5LD$f_jOKxHE-6E82msI)Ya))-8 -zgeJJ+kCT8RmE=lhT5c;)oZgVmmrd2SJ75wChT!4pIR;{Vp3Qjz2C6}sg?X)v7z$%& -zFCJ0T9|*#R+CbD&Q>Rhte(iCuLm0iYcE3xysr( -zq>@(MQU023c(cw9J^>p6M-j{^r?_wpOUZ{fgeHEAZbOq*EWzI&X2vbJE6&=;Ml|)) -zJFxo+h5MSh5sFS^pe`)zJ2NeL^988Dq2BU(0nAIt^ELip&W+t^BH&l~C9N -zJ#otw_XfFacd9osOtoDx_y~YX3PlD5N3~FUgXmB(C5zSTy5^qIk?NPeGUC2|;qxQu -zVHru)>Y7Q+qrP?%J>2CqlHLLyOB|_ZLZseKSkc(}pWAYV0glV%ODo>Oe+O>5V5z2I -z_lp%f*+R>}t24s~{z3qo>!z;}CmcOa23~o6u5a$yO95tX3-W_DEvR`A#9hnmaZudX -zEIbmjZlB{SZZ}TsPR^Y1Y^ne`O4-7PvtZEM&mb*bx_CM8kGoe{XkYnR#8ogPDq@MB -z9d$TQgm|_CQNH(a+mJ_N%`2)#Pj;e2rw`%vxn(p39h#9hGqt|rk@^~=17jvsuORH+ -zgl9w_TkLsov1Zp$X5B@&ug(n{`@}PnH*Ap1pfjZ@R|St&G>my&r(Vu<34LXJ$IQ^v)WMSaXE0eexa*j*PJ*sdXg!;(`Em}!PcmYAQ(GP -z_{a6En`8wZ_fAC>lLR>nw>(*U$2`bX*7gw7EgJwQ?+q>JfGDl!Gv{f6V*7sxuem^2oLu*|^BI=Yo-jrNPg%Kt1PnpwFqr -zR60nJS`rG$@VM?+X7#h?M1sT&L!w*_MJ!bxnP*gfx^4vEUw3aPW*ku+2w+PaGe)yA63HHnmRxE;)gdC%E;hFd3AjGFuK;!|XsoZx^9rY5F${03))qtTBxhUkA -zN~5tMJd1mflm)RfA{#&er+~)0ec>*sg1z>ZgDbyPVL*A}ugb-a(VjtQsDP|cS2%w- -zj?H!F?>OW1XgoFWITvef5rto&-BV=WV@^ysQm_RLt|$zZ9(Kg0=>AGJNR=BJO=gD% -z<`O+GQ%Bl8ms*%|%7Z(NfHaW@?RXML>0T_NnN2@!gB_*N?Sa<-rg6Q6(^_75R(8Wk -zIFrI7afxCbL5gRL9X%DlvEVaohq?$fQGc)9s|^hz9&TvtxVHjR`LP -z-eA92z1A-U%OA-C$GSIaFFYVQU2Rc_2=8~k>B3(w7k5nO*!t&v7`iJ89)Ct}?=xm7 -zf1oDN43e)*zAX^MO1`x}i5H}a%m-Dp*(qgp -zX*(9t--Tls+lJy6w5jIEEVE<9C3|_QH2Oq>-iXmM9a@y17&b6AY|u5D+uQNa%D=pF -zTIB-`vQ=h~XrZf#6qx%bZ{Tl#TPNLZV&Q+kIWY~pXIT6ww$|t -zm8@8ukrQXW(&-WC>M{@xYi9jsgRDP9gTMUqTZfI0D$pox`{>6RXn=KyXE9_5;R%u0^|9wY*!n>5>%z?e!ttIC} -zeD_B0fMXZy>ly;C0%-c&#rmQ$R*vI$&w+EcX5tKKGj=ZlLKh%Vi1E!V+YeB^yw+Q( -zEgY@2TfC-G-N*cE?(5&MrXJNP@D*lMOPRq7>ypmHgo=Z$ES -zUv_mj%TBcM#kP=S^84To6pFjzmUPkd#IQbcyC -z((Fg9TDR5fe_^*X_H(|`r3+~h&bzM`>a7@gNewxzUi -zbisWfRa~lfM5DU7+t1#*U2OAR^{fY$--8sP?8KW~G-xBp21*x(|JLg%svS#+jE6({ -zvf*z5@zur?(}w4WtOb~b=V0y2y9dql4~BLhkIG=B2gIWh;(Y$B+aD>w|OBGVhYXSQp)9q%{~SBx>p+F_B~5f)-6@N$R8W2mVZT7hyAi7JDl}#eaDFSKB}E -zKFrX|;{G=*=Z(ZSR@JE1oS6glNIXkf -zOoR?A)lk$bL4ryRIg!^gJT#)kvTP(qS4Zf1JB#%~SLp|DCM|bzME;h|bE80Cw`Hm! -z%iSG38^q9EX@zx)aFEpvcUSBma_X-I)k(7Xz$O)`2+y(EGDB -z$V|Bx;na8>L&f{CpRd^)9+k(>R5UzUJu9+--FH1o9|fCVDW4g&56kak4Mn)KZo6@) -zaC5HwK8%<8LghXIF?eKg{PR1BsYi0Hl`Pl7&s{~e7c_hi{nb5=kKRu}`;kKUi59rd -z_O^4NR$1BSTueFyt!=#2=g-+|4V{~vb`epa?tUp?66I3T#x{ZR8Om_5@3X&*fDg0Yry40PgwqR}>b0m*LmlcI)LqNFDR*Jh$-nQiVmWW}j_ihO5kQN)q%_#NIm-f{+`Ld(*C{_{d -zEeZWt#eea*(BL9osv>o*{4d=%IUbL?M-8oa5MVhFs=t&t`N1@qL4Pure3P^PkqjI9 -ztOHWxK3x5WpqcKA&)Sci+n;lg?F%EU -zF_scrBG3?0tl~H6C!p4PCXrvJJZKnqfr7$=OK*d2 -zb(MVfafo#y;5U)@^_+f^+lIs&OOK(ml8O48?5zd1Lf5jd-JXD8J5cB^9)HnVdH*e4 -ztkJS*Xu}U{#YFQ@nQ%?1$bHRL=EixKiGGTqx*ZNC5$6&^%)kpPv`$^(d8Ev-IHt=p -zE{kkE39bWGi)c|xvGU~~UmZn2n95JJ|4Ay{0J0DjL} -z2W;a5;1r*|58X0S{ALS~!xy%t0D}x@Ky@|>w5`s`Y?VDiE>Mpl{T2Eh#xr;Ea|K`< -zKQe_Dk1jN~F)aMS+Zb|U^$#JcdG>(-wn(4IN7cG3H%z4QakG2>=Yh}rrGK>a8sypj -zz}3>u!FQa~uiW*!Bc8|4|OKNGdG5(}Yi*YfRh -znoRA>W*yu~&)y*|u5(0u%*luTKN-Qq^FwNFv3NA@OYL|AV@vk~A3f|?t1NOl{5wP1 -zXH|ryz0g4}_2~(1bOs#<4K1R00LY26mb1t+O2dDht|Wd{)4_mM;orVm8lDH%mP3zD -zkCG~T>pMftZsvpK>pQ1KAkPU&*>p9?P8&XS6_oC4INDR#XEbq4m^EX{ix{X@D0|KM -zzBVaUa=WTJOXo{Zmx<{n>Yd)K%fQE=wBhzAUq>cWFI70-*CZv29#vBae>zD#Fbr=p -z8o8aS>BT>?F+$_pJ1dwJVssA&js~)4QMN(M0|=o -z;b;8$NFA5(;AY4j7X|cTN#VGqXtZ^JBH2&sRpW=zoTHQp?_mV8czk;!bmiTX5;MxL -z3P^5VthW@iu~Qu%q4S~>cF8$TJSwH0R_L>$w<3(~wLXn@&S!oPRw2h{7BPm|{TewC -zY>lmt6l?hS15|HvXD7p1jQen*&7_kP?T^Eh{Tgm3Xh(ERy%Gl1w_}O0?&ler4SCgo -zPgZT0oLH(ZagCqntos5emhlGAyjxg~hZv4U_VSzPZ23^seNFS=kcR$|S3$*{p}N$b -zYAH5j&}2InNZ#Lrdrr@*XFA -z?*g#!$d#EoVQuKW>Y=a7#PoPmqGTATb1FebTDjJdB+%@)0|SLc$=g*usy0_nux8{V -zR64QYBX}m5naV#c88y}vf+(P(6mQk~B}@Vz(rMpC94sKyohX926O!H{R%}IX+_$u0 -z57H48rYyKvRMWBFWB#MXLa#Xt#?s>eGxfKdFaEdmHbc{905evz)Xmx6^cz4+1GhSN -z(Ov3$xBuLK-s$(uV$k7>NU6jl!4UUBfq2m97`+Vd51riLbb!GHqPf9tE$neI3is5@ -z&x=W|=bydQ6*i?DfC@suGo(YC63OZ~AITesvI>8hVdT*)r*m&a&s2kU6$?MZHmv`- -z1PmHLj|R15e+-YOhkUT7z!rt>F-ytJdZ)Qd6VabdrB;{xGtI85Z+JxI!1|D(b{!)P0w{CPki#oC|UVxWDKV3n* -zfBegnQ8l%PP$letW$)5IC%p;nBQy9#Oe1*>oDPVnR(K!y5V}*eY#}l4E8jR|i^?ck -zbsyBpQ10Q+>1^{|J{ve9$KjYd%P(V`PEhaYC~|bn2X;*2V4`#XtXKp-;2bJ+8O|m% -zY+$G)p}jZ}gPqj)NzzsRp%uH1bH=B1mew&F+K=gQZG={)20{ -zp!shjE~f9(z1vIPTYTAg_R+xkb3nq@T|6rJB@SD^L8o78kTD^x{%?Jg8PV|pu$2vg -zwHi!p(>+Q+1*&Vg;9fR=Ro -zTZ!y@`HOi)65Kc-cBd`}oY%_#-bjdP5jVA{%iJ5Ts5V06)?sMbRq`Ttp&JWePx6ze -z&-#oC%m1AG0IJG>H_uY5$x)RpN13u8@7jKg`PiH^(teMP8Y>lc*y^Ciayr3_jf}$L -znRD^@8B1vsV?`v8do6$ps$$;tb_uwXzx`^9R7cIg>FEPQN$Bw0zkqVnBYBRT-FcgK -zF{++b#`Bix*m6Qh)GV@^8Xq|V$ot@x-S1J^i@o?Rv|tF0ZTzwX>b97%@8O*Ug82tn -zA65^h)e`y{i*fI+@u4-2b0zN%-->&x$NW??-Cvdfo?{kTFIrrVYwO4ThJX3F#_HE> -zfK3OyvyVXD@qpZeXJ(6RSZYzQ<%*zIWlH--tHlPup)Lo2c$oj9fg-8eY9Y=|4HM!y -za>dnkc}A|JQ2QOkUF7^3>SD^hNZye|v3fs%T8TL9s;2u|01 -zynlHHoF@wen)J}9A54s$5wMGh_&Mj3dY5QRb$tou;}6=1o&eXosBy2Kbn)6RmGc61 -z*{tb0Y0r-R#O^_(qaa$C*159;wHhmRLJY4VO>*G|dDJBq4g5Y}IQx0{4VqNa7hUkFzgxDXa5v%}E02m+;oM~F%=J72mweJCK -zy`N=S?7z?n#8ekqv&LBJ>52N*Mb5n*^tFKIufJR^u$OWuBhzZ#_AQ!EjX=PMW5jl# -zHk2i&XOYtegU1v{Uv93({vuhfjvRKEBOcp*#oIH`!IW+OJ*9+2b(|ykS@@&hgn+6=baLMHu|Zxi{OJ9*rhP7){`c`Vncn -zjaS`v>{u}|f^6=OC65ULH7Vg?e_}0eN6&MO)-Y+Z{0&k;P4H;1aPIq4T)Pdh|A0Q4 -z!Rl-G?rMijJ8<2tuRHi^6fPIKhIIZEzPJcLUBC+3PZno>`CbP)y_IBa#k3Iz?N$Hw -zA{x9k*?#u)O8A7mw@<5?>a2&WX!svNL)DVR6P?5s?>qQF+UO=#IBNEw^pa+!YVwq} -z--1bq6R{CZHNhU@2^$*Ut&B7-{xna#ENJDF@w9BU)C!HNnr7+DRzGXx3OKYFfReMr -z8@4@bXw~D*yk+v&9ko#MVilj+-v_eS4YF2ri=M)eL*ia7y!p!I3IY)fw4SUGd$I~A -z=_dn-@>KwS0PK^muTIiev7oZIMiJi6`O~(vI4BAHr*E4_?yF+~tqhPcm!~rN&~>`} -zJ<~JW%H39BS*rcov5%2v_g+x;t-d#Kp+xBS5E(hpu5d%0#b7NTWh-?ocGKyHuuHB8 -z9;w-TGCezDIWR8lY{N$qnye=Nb0bF*gEBe)xvMlT$Z)Lm^Wy&vY30i#la -z>2Ijm))afxJAwachmc}DcTlDHh?%iO>Cz4ld9-#(6BIZzBq{SWaRaIuQjrZPyJ-+LOd(0fY$$~JniDKZiioS{vWyX`|w_);Cb+i -zA852^!}{Xl#MfLnCnPT%<{vifO8?wUE-}^U%_IgWj#%@Aa_#9zPNO76D!8K4wvnXS -z&+^GVj$bYs?H*lKuTx`X;Kffk3>^T#6~JS$EGy~QtMsj=*Ai+Sgd5i& -z_E9-Y{~#o19qnT1o1J@4aKh!+Rh6!+@XUc@s#E-+{bX{m24J*+n8+jFZgP8Mhvz?7 -zJbuIrl_j55B?UcrPr{ -zoBL^Z@2d`U*&AL)lM*buW`6vlXC3(6GVPOWtLlSU(>FOXOT(=I$BoBKqkU0ikd>9} -zx+!<3m6p5j6&$!fR22=Jwx69p+u*Voop?v%?}M%|p_sAN6s_PBK~Rv6zQ0Q43rd&$ -z15I|wH>#)R)>^Ou+dn5N3{@Id^Ybb(m7rcDOk!gnEGwIP6 -zEg2}u|CuDJxn?}qJpXFY^caWoH$PYN|M7H{0abNPSGtst5~RCR;L=D)N()GrfYRL! -z(jeU}rF3_PbV~Ek-QDn=d#~^J_r^Z^>~r?)nOSSr7?<`h(4Lsw)%NkqX)3AUzs#f4 -zX%xhfl0yliRoWx*5iCr$|77jd?7Q;^camGeuQS&lI6>r<_(opeEjIirG2Sp}mfmM^ -zd~>edityzwHU}sV1*%Ha28yx^)RQygGU+#QaX^*U^(bx2nZO<}O) -zSAEKk-E^y*m_#yUfVH^wXE?L6kGWhe!L8wFth7i+si8RG8`+EZz%xEJ{(NL5n5(j! -zgz}#e>#)GvFZ-Sv;MlZi^l<1Z)*W%(^7=nV96MeQ#Db;P*VjglCgeB#&n#K#mru;I -zFIM)0q|PT)0SHcWE(DdGpl@hZnSr7~VxB;+Eo;TJ^v9_Hgg;>kaKXnFMZO-G6rS0^ -zE*mnrCLQ3*fymmz0x2*5$Gi>B5f@}()qnI%?W++o@Rv}WGA5=TXZPd<4u61iC{HP~ -z@>2B3t4rS3k)Y!mH>#kTbQvqr-J=i2yBAU_wdM0C)KFZh1s7)i&az&`fhDvTqNf)D -zC#oQ5dXu!j9Gp*0+Lkv8J&@@(KHs;s9N8~X5~ycLZPhsre(HWCP4LV%M;PoF{yc@gklaRqx9*)#$hhd+|l1fE=miH2$mB1xbRy7YB@l -zv~>dDk{!TC`H$~Xd3>$@!|~0xmm=mhvVSOYU_mLAA%pzNOTJYSt4A>UmR3Rg8!w&o -zst{QF1@MmxrYJ{i#9miQvi?WD9f)7rafh@--i(w4rc40YZBKe(b56SK0TRnlFy -zBf+S!OQd^OJds>UX7`TF{R*LjD@(^gAU$MgfNlT%y+v6aDe7hN)e3 -zI#+x^U$BE`xxt~@yuY7DyIDzGytqz6$=~oxUSR`TZ%2@%ZFN*L^3##{zDBSJO1AR1 -zfBXaI&Q0Wi+=*Pm6b<@OK4zPLSP5`F0wu+s!QKXe -zbaV}%9zp}-VN957cNeJ1240xh92_M9pn;@@wdCl{F^YBZIPAr+|sDgZ`=WNBJ -z(vp0prx;bRUcIIg0gB25XRWZ20y5k}0_`L_)~Qtg0K|fDEbgG?h|MtHC$nlt&8vbb -zdEz6;sX-KaR^NS@pl(tyZC2=PZYW`u8K{a(!4Naw-T?Tc08xC%hMdUoh(j+gojen> -z)gYE7P76N2`N#X;Vgxvqy@32R*hd%tuXXdAK*{u=X#9uYc|E+sVK)41vq?YBw!W*K -z>nP&TLF6C%H=F%_?sjvz8l)SulPHHbtRe{3Knt4DgNrGVuxTH{XD(e*>`f1?nD6y6 -z#uys)1k>+>7iFw;?V<26k(1ynT9ft)J&oEK{36`vD`)U=54_@1ltmL#qC@gZKG$@O -zcEuA0bQzD7;Xc`d10g(hhxEIU7_s}CN?H|Kq-x2n%{e)K=mtFk71|`lld==7#ypZ2 -zleg==F0` -zH`X?4b!PtVi!p021abq?(a+qGZ-iO4Iri+=xDemu6o|}9i;IMrSB~`3;ge_C -zqb5z~iQ3R@_~!ts!xXm?v#6n~+1P;Eq8)$&0MO`V&T-|a&@F@b)0h#|1P+mIV=P-r -zsrWSWy#Q*#9~dPhdu{oj7@dgG{S0;vbCenHY5PAczJ|Zdi&_5#zxY31CAI -zDPY6q;IL}v$F|{9W-7XD`;EpQ-ot8svHJ(57Q&ydE0gV%_ABl~r4sjr0RFzNorstH(u#71PphukiZ@p16;3zp59X0}LbyFDWH`+CS} -z@CT4-8=P-Kt?$ThMfH9tEmrzmcvO`4GFUneoGfJiLh;jx<~>7*It8fs^73XW@36s~ -zzaJ682zBJ#j0@7%!^ht+IpM^z$D_=oq5se9Wp#byy(#ZW2Rf_zqZBPdtJQ1Q;&f2a~?=i -zG(MivR_{ZhIJFs||*^b{oSAPf_Xaj+j9)UV? -zsRZ5X_;J{ZAFR9uT#DFW;iAWvS@RD2CX0NT?ipp -z!jbq)^j$#ULWSB{I;N`CSJK=0ALXKu?!%Yn#gmezCx_Jnw_#zP4LIUxR -ztC2hPkAuac+{D&2dOfsIJCHV}!jyZBlH7~!GF)A{_T{T<8kA|Et{79~n)nd6QOmH_ -z{DD*aN85$ie_%>TAY2X+Qud+!7YG+o=<<(QHI51%(I~1gd^P# -z_&D@=9i+55)tC$r2Y{;&29wloFPX=@eW^hFR0Si6w?jInK3(Hq3q`yQLdQ_kb+8C7 -zi$+a+@UL)_^38Q32{2}i0V8+`kmFMQ@8go!!S3cKgd6-xsjf_3~bq{jO#Lf -zt4!7yLPH2RXynT>!K(>$!7C#`$R#JuC*Y)%rR;^l_u41==&v?q%n73+5{~l3hpJSK -zAq?O8X8$+Zr;Q|O6`&2yx7y@VWMLt*d$Dn;qZr!GT_I|)Lya2l-pXkY5`0{g{2n~5=vTcs=noU0L^1MNyz>Dp7K>GqS&W0F# -znrUrM&wg`y{jMz1S}vG~dqurWT}>r(g#}74GS@fkrMzi2!K!D|0W%gqM&MliL_53?=HrMSGr!Q9Ol-s}gY -zdE#s5UkF+#pbR2qN(kwn5_-Oxzqg3vfH@_9Zw}O8PY#P$y?p0?W6F7DTy9|3KnjaM -z&^!M9Ye29WVM`f`_Bl5EO^xzz9#A1te9pAh{#<>kOd5SxtX+VKOHA2cVtq;>j>%~L -z8N}cyn2I8RiRXH*Z`f?}opob^;EfKv5e(xFhVxv%@ofY>2k3d|4?4dUA%!o`xO3M26apn73k|8fh(jc>t5I@L9d%`%R} -zP8yvRpX?7}cdzHyuOv`VzB@!p#6ecjy^GJhejgYSIFyhse8Fg -zbAzg&N32)oq1nG`=!*Tiy&&s7GjR0-;MAPIc-_K^a$o|rEQ_7ZnJc9r>R$~n1t$K2 -z){*R8fy`$w%<6UgTnX}gzNmXRgS8b6$}&ZjK_}@uUs-dw@Kpc;=(r_zXv$7b;Dtc= -zpya`l!4~l}2DjJtycu09q&XA-A`EOZLd*q_o9GrARwFeA8;2R~JO6aPcTL7`1RSVG -zaNgLuMRE>9pn=dFMyJtm-&9{Yi6IIRxhvfb$CAwG%>^Wzji{q>oMgbF0%kvp_LN0# -z8%21_yBIJ2e7RTD6tdp50(;68qHi=(qJ`O}L6b?sZ}skXI~nrVNcm0i|FK-&OThf) -zxiKi1JCiP~@{i+_%oC8fd9| -z#Qk3RcxB2(e})w7@k;jHI+WtWz1xm@Nvq{uJk!AnhLB9qk=c*Xy@{(3qh`8DR)^n3 -zlq>ZIF$q1ejsOnCFcBs?6^@n%^8|xpw?=0BSzQ~A>%1bI(51~|=~%)cAyJ5Qs?Y=U -z3WG53Pu=vi*LQZ#BRQt5W*n9!GkPD%q8Gs2697i>6Ov@zsvL{%8M=-y7tdGaAlqo` -ziR~MHS8YubA(?w?viCr-^pk4*l#6-0xo?KP=O>6PDUWj34h|8A -zhtVjf!6?x`Jp@imB^{!bupFB0JM$)g7DCsXsKHgU>YCfwh8F2bdqFZ$-T8IYtDJja -zmH>dQoKD5K(!91I$T^T?Cc;duMrCyE&|x}I6-r>mI|r*VuKMUlGb3@TCD3wfo{`Me -z5y_>Aw%YGvfJ=P<&w%w($dFU|yUVZ>HXZCQByAbnWEp4kc{yJRW4()3FeJa_gQ=*@ -zh&Ph=QaE$N`LC93zpeE@G9-MOYozjyKc`WgpIV&y0 -zuG_%mM0V6BN(EmJ*fS*YwngZg5+DW?cJ`{s2_3!>hs6BXi2Q#hqhTihc`LtDcj-D@ -zCJz-k0yv|7v!ZCO{Xsx|^~oaz%F6zjin5(hJhc9Fe0}eI-s3*dS-C#DV*XE&1wrue -zkB;B6m=eZjEp{aF*BRWP@RBpqYSF4pJl+41Ow`_yNPX_6Hqh3*Q6>GmQ;BQGk(RQW -z3I+W+a=2u-SsWi+J{9=SW~{A#-0epNSDSD7kXe79LU@02sZR@{kXIM-U%W>Q!3G4j -zAh(QM*D|x{L5-Gnf@v#rS@X_nRpE|@kcZq`@gSPw2v-Ms+zO%lG$k9hg*~MjIE|dU -z-&lKHp6^y&3LYpd)H8;T{)9JmzY+w>vjN}UIHGm5$f7A)d(rt$d7#I46Kz|YX^l7C -z3{oU*n=}~H^M+$i@J!OMbGW+U9Ff0?7^7{ZO4bw#H>0!vl7nrKqkhTPg~p|7&--@r -zVU&upN(f?e0d|5~9Q~V5!CaYM8yHcSK7yZ?;g!v+p#-P^_yi52;37%?q_iD|ewQJ_ -z;bH2vhfY#eT^%0ND}?R4n>dYf2vxVfEqQ=BPJJsnPm7b0x#IG!-=)%mE`|9;OxF9+$Kgp|t*B14ZO`eZf2j_ujrqwR -zOWd62vZVIuuf;C)Z?EtX<1KaU?T}hM3la4o`3Hx=!Z)M8SMVkEZ~ahMc6=1TK@4Ep -zejWtH`fKm~{w=0GZ8kuEbBa6C>Loq+3)irfxB<8_@RKxH!;KfnpS2nUjb240;8azR -zAT85kLCfv=#Mu*NrB7naee7?K0oe@n3dO`+UfN#2yMI&^@w}7S5AbhcU;a=maeafO -zqU_zlHS+U!(!Z)n5N2x`iV++-gSNBn -z^~e$l^{}V_F`sr4zxWo4U9jfT$}o})t%7%r7&x%hD0poHLwOi3AtZ}#)oAU -zPUXkA`1Wd#6pDxbrh@2)FXdp+9+2>z3-SiZmss@yO97mNxqo24Pm1eGhp)qHa2X_i -zJc5-meDbGyzaAXQ^icrPIu0mA`Ds({-Vhq9H&dV?y3P`}a~3Ur0mxbamEwTS!^!VT -z!(2Z);pB3W=}pntdV!?y{yqpyAOu)_uh|VhxRFIZI;1@BQ^M!?-qQzXZ0*pXvY(;A -zz|Hh2&$YuX2PQN;K>R-zA0#9waU$X$@}B39Kkup-uUR -ziW&C}(8YhpXpY(@>$IC-bVZiA)_&5zV -z*#P6p9Dn6M(S;2H-a5`Z)IXEM`*)hRb7z^E{u$5tl+M5;0aXVbzPaus`?w>=6O5<1 -zyebBP&_L_(#cWEp5a~N+mgiT&tyQu%;dyU!XA0|h2M$;wQ&H1LfZ -zA(`pz)$Ekc02PNORoc(r#Kz_-}oqb0OBIWQ*M(pSkTq|~2-y`s -zrZ#=ma<46$%1Oq3C)dS0(w%z!Vx)x%j|*1^EOHsbrC*H5uw)7MCV#yljvi;mrS5l_ -zxrMh3{Wj$dPbm8XEaupMa)39^Yra@^q*~l5x36)Iv{7>=YCJ*u{k;ZPJFH2HtC2lt -ziKbH5a2&s1PWxM84QVRk_rqKY_g|0bAO7@yFHd%6U)QQgmX2y0Fu3~@)Mllrl*(hB -zDKz1IqlkKJT-s6nLdCO)dao3(=JBTXBh-2FhlfBCOMaY-Xyu%_v=mf{Vm|8&m=h>ma%4ROW57Pq+7lfA9b` -z(bTWqdxpwr8C16t0D#w9Lep)*b(<$}Ds1nGA3)%W&y3VPZ4Q91vEgRSO74e<^Ju$j -zoGfprt6I9FN3DH9>^rO`uUA~`imF>Y3vuTF0A@I~?c?WKN|EC0lyl$A -z1kXJ^oBVN@M?Z79z0Vr>BWacS!_^U*N}T*k>L>;9PFF_{4pWQi9Q_P`6LTBjTbfMx -z#sTCVs9`qKX(x}pa=!?i{MIYY7DOyKJd4O#->b)VWa7l^pVTqBFCt3*bC#6hEjPr$ -z?c)tKI1G9$@*XGYQBlu4+ZQ^^TG(wcbklDk`P*KUrt~irRv(kV3!4}6^}rRaV@Pjn -z$>h6ph2+mT1*2=3vyGEvexe^%R$!8S1RQMW2RgzXDyYPqLyafrvH@ozZzU}8^bnEN$p_4jJwH6uXk6o)q;F|7s%LAJD>V#cWJ~-tH!Wui^nS3xX#ZJ%@fA(Rf=0Be@)6iqmfIW4V6iUMp8 -z6I#MF@Qjf42C(ceKbBZT6LT@|eImk@f6c4CBARE*BSd@y{%JCn>BwPYa7Vw -zh-MFItv8#zKxMQ2uuPGYs9NSk|+pub_ -z^M19^d+tb+1qs)7#J|3b++?PlI?r>^H$f!ozWUF5s33!vx_p1KTF7|!C6s=l^YQ&OOPN_%g|4?*w|MQ`8BrGHb0kO-qfKNvsM*Szez9S;{uoD>0LV -zYZjq0R2Gr>oe -zzdK0}r2|7XSZ**}M|iM~(JgbxIxb`gnY#sltSw8}etF;zG4we}-$mVLE{X|?*Ivt- -zNxZ@7Q-R%E`0MW5=j}c3U8gnTLNN^T`>3_*6kbwno6XEe4{#aRY&i|YUA0?9GT=D9 -zKRo^jNYa&!;6$lGr*N*{H#mtkpU+DuFa{nFfJ18(%l-GR$S}Xc*XX~=W6yIOvsJX2 -z6ZoK;f!>5aAnRL6Bp`PVY?VH2r_ovGaQddosPZ~}%xgi)I%NLF6qs?@U|-J>8I^9#AlJ^6+cFeHP6;k5B1A-@Muxh{Wy^cK-4fXtoIK3xpMt -z4#eGdl=eE`q8736-~QYAK{X5O3q=cd*n`Urz2J)n!ilCK+pQDTjs4a>ve`|`fX9xb -z4WgAK>X~_y3WfyNeS+uInR|=OI6>e%xz2MDdR=Rc{)%KHtPHX0*U^)OmL48JH -zV3?{he}7)~1=kN>ZT?5dw`XqEC{7k?P(NM90?8{VYam*q+zKt5J@S?qZCL*}eSG#? -zhTzzF_spYnA#Mu(oBnROKb%V#WfH~P;7}A;LXv4S&$BP26``L`c8Iha_RX7H=kUBv -zAm9BYM;jRrc+>t}+<^@(-Jy@$nzX5HRL9`uS8FAj&KBqT~aoSZ1>A9r=4%6)2$!D -zm=O>a8#;AFrWc4g6ux-(#hN8^XOY;M(b%{F*C@X^>g2PN2s88g2qduF>6mLMlU!uE -zck|#BswCS~%4j^RKFTF(n%i(90-g<^M4;}bnS=Zp9{tzO&pg1e!4qNwz -z)TIHN^_N)|p2P*ymq6AHDnndjip(U$#8$9Z!HLxURoqc>j70kF3`=%V@PD5CIbdB@ -zqyV)z%23QSQt6+7ICmRWN#z{;7Y2QXCH%7YMH1>_s)zIwP9%aO+tT9AN9(T2}%!CahYI -zZ5*C;CPPxqyrC=e}kOl_0E|o8aEFt -zvFriK{H3<0=l^QKa9-|kUp7#sIqtDPeFEMlW&l9OlqlYfy0cAjpRdl5m$pcUy}uWYpn1DVMN -z?@m=AiAAV5^{71LIJxdXV%s -z6J<;NMJ_Qu$c7L$mCzrwkv(Qf3`76m3m-BE{#5NZBlU~bm>=+jpf}p^hcEk#bu#+2>QJg#b~Ee&+hp0OlV?^9U7{rNGvB|8 -zGIFlnzgKa$NR5liFb~e$43pk%Jc+;nz+A7}39>dybjx1s8_o#N1foMke8ssXz7=`@ -z^bCL_z0K{hSp%&(tKbo@wC^?SCm*8P^ZsK=+lta)?TG8@m -zy|Mh;$_I%^BW?*Qq1QrNAW7)WZJTxT5)PW4#a6Dm(l`_j>rlTykf3Z*d52w{1KHQS -zl1+n-C=%*?;z%pw_(J=KFe1dVEQNfE!SjrNK92F=oNl%(mzXndyGxAr<4T&-rWLm-bNDf-uhoGf6^NU1E -z0Ix7!^{MxJrJlyU@EV7N_tx>lkg%KBDwm0nM{Si=1M#{R<2OTE3RiR$-4`MnO#y=@ -zaQhA-&D!eWJpK1KPD-M4%FE!D7OdUJm)&VduhJGb)b|#!>)H6`M -z0~{J`F@H(&eRW{b8Gb0y@f!!aJki6!#tZ)*Bwh``u#Z1`ru%fTuE{E0mP{^FtZ5>hsXC*Q?(8@n4MAL^K)(X6B{|1Em~(Nd=2lkSic%Io -zi@0_bSmU*Q-{b!R6o;|Wfdxw~`tVAcQ##5cO|dvYzbkUzUq6bNld?d+T~IT$_^8%P -zZ2U9hx5i{;=`oNMc|-DE&d(arp!(PwjgT3%>E9lD7)?)kxLk8`Z|YHxye#r5?bI{d -z6EYniV%(enwI?oHk)89qsm3R=8(zEmkQVB0vF0$gW$m6^y60E=Pgvw4 -zmq$c`6|r3JLm+#GbZlqM$>Kjb$}XNFiU$Bo6@&V9Lp*iX8)GfM6I(G{#k*`joN7gl -z(in@pz|8h`J-GWZ_d+{N@yigkpFik;w|qFG;^R8ROWuxWaJ!h -z%?MyGHoh$;Wp#~d)cK@jW*+hrDZV4Kd#f0US?ek2l%a-<_dP0kuWwlF2b=f5G_~-O -zyty>3=yie>uYi0zot6ph;aHWyVSjj}EWIFvJOIpbM&G}iz%YdKMsfXRc%YHNm~dzY -zGh@Skt63o1OGs$c{%U*f05Pj1sEtP2Bit9AX{zBw^yXsn=RKrS0@!_>&82A>u;(|L -z*~?hChq_FzK;I}aCI`sTZ|gUB;uBDzw-ImEx6VcMvhlUfha(2N^JMWOLk%j_{}s$) -zus#lvz_KHC-w^!zrC{YHP@(D6qt`BA&m&m*1s%FblhXaPzO))nWqT84nM-~#1Egow -z(83F25dqv~73a=eNyE>#2_tdXCZ#PPepUav_x%uA3D`v&^i8Mr-qhFYQY4aFTg+0f -zWV@s^JQX`Y$7F~Z+ei&@#>mK;`ku?)tmg5(DPxYB6OT3W7CkTb_gJ?+X$P!by@f{= -z;{qGRCDG4`MdnRr3lLnFvyY_j$AgvD^8Z+{8B(Ckz$_CB -zs%ZZysGUatFhuWOo($msABixjdOk4lkN4crl+k%89HZZuQLi4rj^GxLX9zrDu(bU1 -z^yMqYl+Y*RVl&5D$h#2=gs$*H>|7;RtE|M`Ee!>~QgN5YaQ;I=x^>E71lwTu{9wO* -zy>7xy{hE9_N5-4SXt{;GJju!a7fQ3hDMPa}<&Z(L=j|r6?VVmum{dXf(1xqPG-zMb -zA@=WmqeasY;7N^K{2L7SR=$07hdto_%74MOEh+~SChouwJhv1O*&cWOjbv-~(32Oq -z&IWjUwzmG#!cZR|Gdn$2r|I%*JpOzRY1EPZHz@BomMX|gW21Q4WtGy1`epNek-%{w -zJMEzpr!QyjU_3!n`XLBHv#aMy#E?8%?J7~zYv(XAUdL&$4`gnE)&vK8(5(_l=(Ce8 -zr6^oP4b)|w3@s-VL?Xbo9JtxE*Wa|S3xq>mJ5#~4-{_V+CD*&w9V(J}8asT}_N^z7 -z=7&HWm$(GNv}73HnZm -z7_p0(AIjwQ4ZeLERvm^#YCoL6q&Pd^?7LBfH-|2EFE#8wtdaSErN6BllR#> -zpU%^k)~Z*1nE|RF+o(s_9yOzzplS&l?x38ohj7N&1)}cZzSp}a;xU3nrUu(%&Zlwz -z3YV2&8mr9K#FV@mmf;JmV$xB*xVz=c``w6v`ncy=BbYFp_V8|VTf-xH#*v}ekA -zq~%Xf9FTJZIuc;3&ZwGV*xg*hXRLSNZv5k;v!aQPxUB>?7<&UonF$@R#T+=^+mCi9 -znpY79E)MKNIBFKAuY0Bo3PwtxV4v4z2BGK_-%k4ZU5y*_PnNJ*PTz4fIQe5(K@ -zNt-b?E+5^0!AA0c*>--fO1__-TW##{@()$mVYeUTmc{?uA_Q917di$1R}!nhW(^P? -z0QEW0<+0`4qxc!`UfO_v^Plhrg{(5ojM~xLgJy6L)S6@?y1d-;oeVpGHyL2CWw?ja -z1(yg4R0d^jCkP&@JQvslZYdzAX}>rA)`egu`=CTaezcTnr>4_GJ=*!7{jrpobXRv+ -z=fe2ZOBiUD?A2-+3P^tdc5FWNYp2DCScASnU~!&Yv6g%O$`Srw)F<1h^7XL*SHKAe -z-g*oqAxTxbP^U{9<*ORO$gxIKw^#`^w|`?VFUl27MIo1Jy=f(mQKX^y2~Sd31~pj7 -zcQ{Tzj;IPOx(!q9F9ZuB9S0Mn+Zvr$XKprqg&~IX#wPIlyR_0<+1(#mUTL|-gb~@v -z*Y6--ftFazLpUdnrOW7qDWhiI^i8l5t+{O0WxTpg`8X5=npg@PP0QEA(HEkmhr&?|1hN-U!97(sI31r6N{!*OtfjpOL -zN3AOMu;N4_bTp(CNO -zV&aMffvV0V85H{Q`oEo`FN?uxdJ0;jI62YaS8)X7YSHFa*>t+G50MQvRprfx{tr@0 -zoRD>)OQy-pcmpew?azF@S?SKo>jQLg=KOZR -zO#|D|l&?|w{cvY0o9b)j-p+tMIBBgQMz^)8F741!94_F#xzU3)4r?Y)HwFj;U#TOc -zA|?)RP&K{FxgLJHHNp>vJ}865_znFH4Afohskf=yJK?l7`wJN{(C>)P2d`k=M6WFI -znoL40LCMjwl`%T7fg(yl?UnwI%gv&CrUEj1!NN;&xF_kQW8|CfkR85-QmHoS0)3K& -zjU(Ec)c{$=QALv?9U@UeVhD}$LERHoE -z$cBqf7qUMlJ&~wyF9z;o`>Q%{@(S~Q*2;qP-KA;to{BoJzJ@g3w%1%ihDKZR!&#`N -zlDnV^?vNAZtjM%WKwE-AL4d;qT}gT53swBUf_I*U)t-P@01zk<-59l=)bZf0jLj4s -zSG~g5yWc`L!~9{%7?8dWD6T;4P$vT*r8h($e}FnQP_(MKx)u -zv^jAlgE|V#HYC!S3skQf#$Sl-k#u?GWV9{?)kK`=0d3P-le=-qonfRaR&B}rb>l92 -z>GH&|Ht`H%aIhEejs}~axWIjXV-;_1?QJ!hv9M*#?@J{+=&srr^;0g|m?+HX_!uQ3 -zh%g<+jhM2iP6H&zpFv$IQKsuhpFBpF-#V8is$F0J(gX$FGc+IWKBdU^(l)i4FI<*M -zfQf>U1|^oC*F&f0QT1)Jc*$^RavK|esfE`J-;A84VG!BO5W3F -zV0ch5ImZQE|3xinzlEz?HwPr2Pfh0chQ(C^Os7;4?gq-$UOE~e2zJ!VvK{qGUQ|PT -zRK@CyO%u_xN#6U$v_kfVG{eq7TRus5+r--Gog7I1Wcs>$SiC-*D6tFXa>d;Zks2yF -zkDB&%hI8X`YcrDJd+P>9;Ji@qCnFN+VVFxHET%$fWRj)?oi@lNel)j>TVMaNfu(B} -ziz|@hd|4h6nP~D13~$D^B&S3UFvmZi27dpOc1GZglk#C0n`rP|B8Cclc65C}LGdY| -zDgfjcZDStE$m7WTg3mN9@@uZpzUQE4yuMD7hu%ef+y1@XOqW?A;GjRsDwl^;RwV1o -zotxaXt5ibfP=6=Mds&&>j2FzQAm`8f+Hl345IL>356&Clr~n+4KCad%GsoR-Lr%_D -zG3o3HYq@tMQ2-GGh^R))tEpc8u(`40NCzr@9;R_VL){KnEhr9i!z43Fn~RP@L5!thQWO%N*Iu<;93 -zgwJ^1(MJ|elmuJ$G0_v5Kkk|7C>Qt6=YPToB-@5jR%q(^p@FtFAI?5Y0ZiCCDpiBv -z)4Aw-C`&;gS60J)HoSuwlws!79WIKFw9&10>bbhO=V8n5#Rnc}9z<5!OZ?U0SKnzw -zio3Q#yW6eF8kd>}O=YssjU=G>06dbTGDTR$?I-?36g_V2)-Mh5L<%cc4#SDT+t -zc7_DP>O9Kp5!6S_R##wIfPOGU4e>c;p@)i&9U(q~t}^cL5PEz?&A6CXs0{$(|{LXGl)+b`jvb7RSi3;(FAhimB8Uvg& -zmUZinoPSeyKgmrqc3N}d6+=7}7yL$i0teA8<<(u3*P+1~CZ7+=uxG!z1;40FiS$g| -z?EAxF#%TmqW{}@D%Nv@*`<%RM9BBN!L;pT3BZgIH9jcB{{{c=rw~sjf_>R}P&Nz+z -zqn2)Nx^Y@dj7q+rbRn|egSmF!gaGF6#RPuMlo0=P%dieaxj<=q5AcAT;n{E-b~zUjLS0OzY0Y_!KYDnNDt!l1>P{Xa;p^Cv{p -zX~F~M;RgYdwLl{0D4w=J0OU@lgLzWP3|>X -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 -zT&)4RJg1uu6<^ -zJBJ>a@+g0Rg+Nd;f_s5CQCYQH9|LTCCljVu?=S8Z;dGLcM~2IRVQE%stg -zF^W!_?Qdb}t54m#!?nXpXUjKkOBIn~;DL*!QB-v(@kNJbEQ?NC${7?(&#$7Y1ZUza -zv8PN||M1#{sXO6EW0fLlSb2or7t5W7q}k%=>?~y5VLNf!T&A>*y9N4i77AT8 -z$`NytPY^@qo!T@V$7L(w6ZGz@x#OWWH`x?YZGtH}W|Invrh;0s&VYB}cFxla?8aTd -zbGdI|y-r(I`24q(kymIRzpx7yPHJQG9aex1rd>!L=*e2D# -zJi1fvE7(?643ppK(Xu-AzE5;GfEQ6#NGF5?P-mMb#Rxr?ej5DJNF+5q1G&)xq%iJ7 -zv7N&d5CY?bOm$L;G^1%nPB>$5?Nw;xIX*kfAso~UfelHXW^Qm91+6Gk@$UM*QBj=k -zSLXm$@t0)^piW;z`BDONS@6{(LMJex@(%}gx_Z&`4upm`PctKa1O>aWqj;+BBO?0kPLI)cCG@U7(4<_ihcad}jR!aEt| -z@KjzbWEyZs4loYt9Q7#vh+L^|72g|+F -zwCv;63p)M69|9p<61JD)7P;zD59uf!RqZ$2I*ROxo6VC{#1&}}3`N6-DI0}}@UG}2 -zS{e3^oWU1?8#rZ1_zOWfKeN+_&>?VOFA2dA)XyE%0nNFiRKWd`Bu_!BSQ`Ndw?aB_ -zUtV#ktbI8OogR{BnNr9!A(D7t%`1_Qoeoz9`2|veyb7fPiy;ny=?P=MIceCD5SAZU -zvxyq{e;8#Um!4yN+FG)vxLe2q-u`=3C9VbFWCjl+hd={ -z%ix#NVVgYQ{B3Q1aKeNv8a~|I_QC383-{SW3hQSz9hZY#!{W -z)lpp_o&S^*DcoTR6mHf#22kM9PA-)@kT(N>EJAtL0(5f9puj>S;?{=%gM8!|@lx=> -z5D1jXb7Maf_WL*RXEOI2KAz0{Qwc`-~Wzb9mw=SxBH4 -z)u7O3UkGA?HW}wkz#?$9M01cYdYx#s{p(8BGxo~6GoL%1HP~PXT@aaR -zbkMwS6aUx2mUl)slEZ**ND8J;DPa((J(ptMYeN(Fq%RsIumV4mplWd3e -zCcvr>`S2)D0_*K#hvvzkXAv+6U}U2+cQR5-V#2C(GJ8Aj^;s51&uII;qA;ggX79O` -zdn627*w#1IbAXJq{P&rs<;Hs1rQzm-x}0^PJ_wQX0@znwIQ6V%bhSXOzFs+jibZ_@ -z^9Jxa#6;}qSL(ElB+VX1?FgKRY-YlhABF3Ep&(umY#Gan`EbWQFQuVLhz}Q~p;|cA -zYH&u!2Amu}Ec#dfx<2l~ppW29prF3p9x&7FSt01U;n=a%_n_+|x@smStP{g@|K?<$ -z^odsjP&Cdfo_6pkRK5+lHihT`7s>bJ)xKLH5+(azO#RJe<08gVt-`uLRt$DYrNVeI#!;a6VQ}6bXhGrj~7-rfd -zxc~0#K{k*>#}KXM5<`f`QmFka&)sBF)yLe-6L1p&Lsd&vg^>ugk`^nyc-TIMcDamb -zDY%~N9jLYGeY8ptJi*mCt1~a{CfudK)@!Z&e_W5x{P8AE1jL&6s{uxujode@KdZ-3P}+8S!}0|Jj<$2C+U6L^grnZ%pKH5i>;O~v)S -zL0cM)sjl|CXT*jiUAJ10AE0$=G!lk8J^N-|8EZ$wGY^l~40GNW=ui&^IrK%B`$UB( -z#7iSdOBUTnmYon-%t04n$Yd#VpLs&@{isPJDm9RsJ-AW-+5;Zz>OLuB*L`*BukDH6 -z?@gI40#a~^VTG@%gk4)a!H+*aUE_fB#TA@24DEJeK14<65wjI~Y;&g-POyY1@NQHK -zP(D45S#!+tC=)0PLJ?l~ez*v>8{OJIJvjp|7(hJU9JIcxrg1YPX?lE1$$Oe!GX!Mm -zfeYY;QTku_L%PTVXr%yhA)DMeppeiTp3`;|Pu4!EwDTV}bOb~rA{AzJTGSQ2@FtM1 -z_L%Q6e&Gb5V*vhhNwh9zG|V9qe>|*NWWXvk>w>W%LdgytzCj^j}8Bjg7M&|-gIZ}ZHIG?$9}fGbbe^`AoGBnwgrK1{wQ95 -zF_MoO*l?ru`$9MgCOfF9L}9HR%wz`uQramcbamG-;hjV=aAdQ59iB3-0QF6|Qj!kh -zD0g>_sSWMSHyzyj!OuIx5Rk>ETd6&|AIK9HV{uEZJK@`UhVzzmfM-s$|0q4K!nkP( -zy@#OhjvWtY!5JWdIG(I>5eobL5-3b*NG*3)BSH_7t69kuWSugueZUk3s{C~_=y4Qf -z&=lunxukSortt1>I>y*W1eDCCIhkf4vJgA0|H3BTET-zX1gN=+0jPtn)!3nZ6g(GR -z7#*U*0;Yn{;ks*^hO-M$-~O^|+>PL8yP0z|G^&>w7oPxsh2X&&V8J&#y{jgp#TI4y{XaeHa+?Mh{49F6qxj1 -zh(s`~z0PwRyXL_}U=!R|ZR^52P({W2KeMG^^7u#OzQ6Gv -zn9$PKR&M5H<=+@yaDEe{x}3{=^^K1#70O?z4c -zM^30k$`Guqh%#RAHCJ4k>tdVWcfb;7v3zes(8lAL0~1Fmh@^ -z3OX_rpp6gH+vQ7)KezkzILyo{>2Id_o51GC-C6KsiAapI*n}sk7F~8VG4T6<`{BlR -zRARoKojdqg@gdS)tsvE=2!Q-S67Q>hSc>twhml?+Qja{@f2i9|H*FvW(5mL2@Sm)# -z;y&U4l*;quOV`Z;pC>VUz$Xt#zfBpm8l!IZYt -z0?ZCzj!mPc#p_igBANyjl2p#6bZ=;$ot8MSFsc*IeOi(LQpzfk{*eTsalH6!l^f=c -zWk|Tt#TW~+tk-nfT&*UXhLaTg_ -zjS!|NeSL0*G>Y&Uob@KBJ8+&E{6fNLKRt7&`F+fxU;WdYb85>{*I&!kVvw09;C$;` -zINF`Dj@0cD^i8xF>n}&JDrN=2reUpFiqx{Uag=OvYXU&1LH{7%A|l#fKe$7`O7z}< -zsX=G?*?6zF&_;d|IZo)1#~(+eY&yg{%fO{Ybg1Ck&sqPXX1X@pw3h(xj|21hJN0g% -z1GY~~MRfIJ0JHPnYD|}EOuB_=2`&QOvS!uMFwBSEh?Mx^Q`iix423ra%V$Z&ehZ-+G(Iv% -zev14W_WDgjub@E6WW|;q*y@lD@ww|HIjL$R1lrVob4{46T4o5qoGRY>aOk -zMD`@3GlzPd-`s>)`6hy~+HCy-hfmaeod%p|pdeLTe@{O&%c-5QpC6ht91!>;P#8pw -zd|}Hk)qc>_#XF*$ayI!au)*~$g=+OhUV#Haa)PNR-@n0H?ZK{|B1jncaCH1{(1ZEH -zN6nV)fGVIg=Y~}6(Lfti*llQ8$0rY@t$;gvhv+@MaSY2T8uBV -zLKHdPGFZ#>^wNt%PpKkZTw5^j6om5HnXJ>~a-SZ%M?>P=DQEmJ0iS$XO7~Y=zgP5@ -zAGHb}15UabfLbbES6e%?do4o^M6v+uO1O;Wh*a3joJCboESmouu&2nu)0kDK5j~dS -zC%gikdWtF!Vu^UYzn$zz6I?eF3>ws%X-NeN?g8^2(U^$lt(&nr%uh77>d^HE1S9(M -zLc))B>u=uy2^R8Lv^f1u1qazIuIGlK_SJ*HvEg9*FCk8EfG>e$>!1tX9V|!>bnMhD -zpcyvQ!X!fQDlw#7=;Q}NcK-`0+oO;Bco9n)=**se9~F(#?f$= -zYpNH!36j;f6vwKTQ0Cz991xt~4sj|#4Ng<#njWomSA6-9EdHV&66e;--zS>=8LQ_v -zYQ{G1(ycr`T#?~wKhnqSt^a&9GEkI~e>R$vma7t6|E{>5KiKdQhdTW$<9HbLec2Kx -z!WK~$C=6Yndk+hpRWOD!#$J9rL(!WVo$+FW;Pr|*qPuf&Uf4u4&H;>%x4j?@xJ#?v -zGx^lQ{gYwGz4l~xgOi|bj-wmu3T54{g@h9H6^aXGjHWXCUL}x$}d&iML%jqjT9bBhMv9I3X)EeR}XIsab -zyn2*}m;^4S9zDr(9wmnHEJ`OVls*gJoUbG2oIWtVRNm+634;Y(`W+3XVux!MOS{}? -zFU5IerzVl{9y;odjs2@^tzsZ9px>m#>MO$;igb#|;oaf{<<(e$mPfq70<^pG=Nf(| -za`!SGtoXDom-c~-LB{)=)x@sH`BpYup~kG=zr?3}P9aD=jM!^>;eu_d?!CJ-4XTe$ -z82gF_c3)`cOmB}qx@)6TIT+Botveh71y$H!gRy=ysm8Y+0v-bKQa^q8vc)6Tz)`)Wfo -zgu09_d~o39&)cpp^{ms@uN7b~BDA*99(R5C1j*J{=dC%iNPRcb8BDDE{Icy3KH!l@ -z$`eB>up$U}@efhnOlYA`pZ(v&&% -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 -zTNouA-dh-Ln_DlPCx9KTG -zJc>VZTP*lb2C~gdiXsyoQ}j|1}8xIcMEqA(r8jhj9*RR0EMdU(*d& -zy$V^?hbDdZ24#W-IboZ$;@!G}nV%qg@Q?gz#hkxsO4FjWiD(JiN=2>E!5UVbN77eI -z+&Bdxg9QQztN>w`t`tTd^@XBx%ss~VzGPM%vlG2;wn6>b1P4^eB#b9`JFMvP4A#xZ -zGP?C_|2yHb4B#~*cUEEiW%au%e~@x;0jS>xLLt}^am<_?S}=#5@a?Lf@F-EKL&eQQ -zi^H;=b7Qx>i@{el03T -zr*rX3kwYsN)5y=aK-l#7IZ(%DP-zn{(8}1vvfb>Dkts(q!pGWK3ezkDsK5K;55Llu -zX|fTd*NOP@p>%qsdcD6_SDzq=8Doj466;{^g1yS%5D=nF5AScl42YocbU&P95Xy57 -zt4PIe2D#B;<6z(WdiA&_WO+PkQPQN|Q2qSTn<_<@m<`jBuJaLpy`11g0vn11p0B?k -z4qb9eIPxiT@ozIK&8qzPr>O&%cEN0N*EM&9Iqh7=Q{{bs704ovrY+RqyJlkKt0kR{ -zAA?7_!9o -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 -zxZKuLf)ZHa_4e*404&%=2@ZcM- -zL$mVBupVWOO4Xr#C@D^dRO<0j2QM%?0KKx)7sFZ8lu`9v41zpP=sXfy?`XdL$repp -zAma99b*ag+^G9%GUyRmR$7bFNZ8wS&Af7l~{SJe;Ug?7k*3sw*$mL{0TfTRPBklkG -z5AZ5ukX)73m`vazxBnt{hr8r9KWtwk0*^mPn{J1;D14;|Rw^wf$iv;V`Ymfz&_BeB -z1#XBUo0Np(1Kp&fFujD9yZ@+TG$WQXTGemb2lGSvaTi{+FL^+YU!_5zJjD*d*X;!R -zt8m%FhDr6qKlfem?`N#ZbEClb&r);6cXwf1%fvgJyQU0$W*4z50)S$IFU4JUGU7>T -zFJ{FDCXGS+@+`b9W}Kp_Ru7Ap<&-S`X>Z-4#*sF3aSshZR? -zUmzR3EF$1Sa#Ev+RNY~NtsX#MCe!+rAh-7pbL9!UuIje7Hcc^ffK?(bxGI;4#8-rM)2v -zv)C>-nNP0Ds@0TxcUbOs-RMg2ULTM&Pp2nAVv5Ru7O*Kq2ZC!xn05+3g>PFho=th* -zi8b#1+l+D#AviOOS1EhB;sY^b(urLhCAzC6k1@4YbMd;}{epOM)SLct}T+!$T -zjDijyzM10^nX8}c;=t3NA-TYUEroIs$A|3jqU^#JQtC0T&V -zRbWBLGmN?pa}RDOdz<;Zr270WKibTFw4*JX1KKraAj -z(oE;qGje31Z2DN$H)reKU~Ec&_qjfY+iIVjEoz~*?r|o1^y%fp$g~vr(QqEgpc6JR -zjuD7LjVFMa5chFAsE{Q?eh^h&*8DHyrYkw -zz;&}HHa(ku)Y*(iSMHXBTTCNf?Iw}!y{Ic^nBbRy5MTdh`ZNlQaM3?zE=3iZ7K}bP -zRS-MSmsP)G?l-g*Xf0atjZmRy_}hM~kt4Mw!?#g3gMBPhN;Q6^B16Eq=lRIED*q;^ -zS!90h$!g7sjc=?dTqAx9euMj6xZ7@gr!_-)_2K|#p(}?^iUapgCT`*UdBsOa8g4WX -z-bh$}fvC7psR)tIjC4G_1W(N$c -z3o4h~Ecx>^az3rLRQq=7!{P53@O3T=!k|{9o_k?JArVwsfKMu->XdAo9bQ%J)>>=| -znGq>z+L@-}zbYs@=*o5jdYIWeW)JR{Vvuc-{Xt;A@wFAkID-05k=%|7MlxX4fD5xl -z-n0lVmas2+P3hG`khb>2lrfJtVzRDiW(FhbG>T$*;Jn;?G`I`yq2@IUUBLyc=rP+K -zgn>hvB5n#gt}^&){hGM#IfQYW;e=W)amss`P)tBIHV2bV1#wgd*^X7Z-T-H)OmMGkMpn3&JS -z`8vP=fp5kP5wmpZac3wiz)tTV-ani>b})Oz5q>$g19JdX<4Pv&{paTYbgI -z`ji*!fjUuA{O!mZRo11U)a1>b;pQ;PIJf|ax8DGG(HXNW9lEYzLn_)#t2OSb-=))u -z)Q^`t&o<{=tklQ|B`RjL;9dnFVydZ+(Z@78FqTpRFYNan#k=!n|Jr|O)rU47NxQr! -z_=sY>mHHnes%XIHO5IwfF5 -z07_-B+v8)K-NM^(x2CC+<#6}B**mQ_a(gvCCf(Xsnf9eE|Elqn -zsY)T3iBGb=%cr!@gzZ1lf9o}PUL~1Ip}Qp_WgJZGS09$1G|FC)pE#P)(2n3 -zjf;cQi(33y01#VjXa -zy3Wb@m9L9xHn6MMnd_T6h}J#pG!~%ke%ksQ`wY6V@Z&O|%+_9Euq5>9ElN^pJQqo~ -zXZ0;A4cE~O;fVL^Jym@EmsxG0J#slr9qn%eF#qU?N->udTIy=g!3SlcCPsf$Bmhtm -zrPRg(u07HnY$Ul#e9>2vN!K^15*#qJfUFNM(>IsQLSHXbdO_{{ -z(_SK4Mt=~pddn<=MU3p2&09XFqA)uEd*pyZ#)wErzsn|q54CLd_R9m@X{M;xwuOSW -zQo<$t=$t~tD7leg*H0pUuF@VK@wiyV7%8MpJ`YOAp@{7_5t -z&Q8gQF>FDu7!Dr%l3vE>O4`v^_IGJRMxAda^+$Wo^3 -zN?_jARJbTzGbty*J#X5Z$;~LA(dE2sQ-wSvL^M4@?K5vP#=8+3ImP>DEfG)AI+lpC -z-(g_lus5GIZ(D$4!Y9O_rHThU|HbUa9`?`Lh&OiQErKp|hFd8nt5G?$&Vin4hgT~_ -zK}LV~FY0g2A(3$l9kZj3b2ohuq0cUXDutEjB|CjUIxcy1*yv;t^T~Kk~D}bh98|Bl${igrt2Dn1P -zVLE2KZNkO;=?;WcEKJ88dIXyI?rjRFzPYDyMmK#QTsPT=NvdVfLc~UG3?5%;Wy^Dw0i0^gcvM=7m0Jc -zM^IrvPorSOk}WH#`077>ED0Ww+o88F)S#=ph0bMnMaeB4E}jz32iqbl=k@NYGAOzU -z+%oGHi$%DR+WM?V-Pfs~pD%}HYoG70zl5z3Yd)CmS!{l0%Y_t{pSDe6=20+v9XfuE -zi*KGUbqV~uLcfOqiITomZ?BJj7rO#)j;)p4^R0@!U2XYs1j~ug|7HqujRpn66QR;g -zuAC&Yx(D=+uX_chi~g9kZp*k$;GZ0R{DKJaJq?zUN8ri7;s4>3zK}`mmEL);GcOA1 -zI5y&2mncjuBW}D4x*lJX(KFR|wNG9Jkn{7#HD0suLmefQtqd*vRJ6Z0mD-EX!$7SE -z1$d7@G7InqV@AuaEb4sVNpxuECLrnUFjg{? -z(^9!7B#DN7UPBZd^gtEwvN%8_h4A*GXI309U3U560KIFge;;&dg-{b)-+rV@Q -z)lht(v%7CfBCjL(vx62?ye3-P|GJaK*gaoe6a0xQbydtxC1`Yv%e9;G8g+JTjQO}I -zz7mU@Z)9_jg4s!27X7j<^LvCXKT!smY>9&BrRYlHrjQk!^bAuKa4aI0UrP-YaKyW^ -z8)!h8X%LeA+OLD@{U(+O)vIc)_EB!F`;mMOqGFG}IJh5?jM!Z= -zYHpelZQzja%novJjFV%izNJ|FqGBySVWC4uMn%sALdd`Q?fr0;SLEIfplNc3M;hoaQgl1}u4 -z9UKw~b)c>?Z>%?&uFH2ScI4yuSD|ZNUl06=jES4w&F;k6!Y -z8}4gKmfoFLcnFa`!PyX3KUy!o%ZpWd8mXpB#|B-t1_tw*!|~)>4!Bj3<88m<7O0qi -zh$R2fbd>>7wM|r{r9(ocrBk{~U@2*kMg*ipx>FinU;z;XkrWAOkPhisy1SM}nx*5r -z?DGBIyZ1i*%$##(rYj`bw!XinDz}1vL9Mf=d1V+OLK&b8xDEl~J%a3PLzzn`Gl;AG -z^40S+7S_k!Y2K94Ar?D$D##@Ws-W+nrozB3$Q}EYTBIoqwN` -zaj{>?9n$#=7sq1f2v=J=A?NC}0X2}|K>L2oh7Lw)y=snRg*QS9Bzpblds)CG6A#Xl -zE+Of2=Rl^9WbcP4(NpxiS}tvq#}*#``I?5`LKu)(zUc9J&kIJQ`XzA?;lF6q-v$|@ -zuxv1guP7iy4;^{c;oo|;oB09M!Cyw$QC#o3^%U)zr|+NRfq|vK(9^9205E&=0>AsI -zuvRqBpkan%A(T#&0>9U4z{ly|)8A^}awzbbn>l=3tXpLU(~1yeOz=>~vqS>3NKI*z -zgRr^sU|om>HIpz3MUB=AYhoi4#1W(&Inp~aJq -z1HQS2^H%CVwIZF$KSZelj@5lndxx?+CO|0kBmW^LcmegMc^8-?K)J=4q`;C9piXY7 -zFVy2jcVi;SqZ8ovC|ZTAROV$)F@)HJ1FrDG_y=~$GBa%)fVmh7Y=5jkb4o~vS~$33k6Eut%*VDCR6Cl& -z_^MXm+1+0865<)l{@j%_9LCXM1y(El-IGI5Mf`2+kE -z;F&svl_e8ftdgvZ4~7dy)6Lo)BFlNim4H9r1$t5#-e8#;EwH$qtc}ChT1G|}v(W;^ -zj7j_(D7}@jWF%*{kaR?XrW^sWC9j5B>hMJkN^~YCqQh5FN5tH#zVkb+M^4rZjPxa< -zd2B%#nm-14mHU*90&($q8xYqFE!Sh*aK~1K_X&y1N90?x;a)%N=G**vB1R5~mtXc@ -zJl=IgcX%w<*!2DOx#s2*_zf%l_XB41gp&aqI8;5ePaKQqv{d`Uzi@`Ya8b=?HX`cx -zmp5?AH4~hCvWJB$hZvHeIrY>^^K(rO@*u)~{Rp*0WAqtVUR`IJ)6llAjj*OHTqOfU -z3GlaqaEBec_2X>f=iC?=%XETHUtHqd8;1~dmAzZ#N7g``aAjwq=_p7z^v_T3?d`(VQQ_; -zwA3R-|Biw(y;P&OFX%PO;Re|G-0{-GYEbyn5BXFEp+bOWkQO!OvT2m -z?&BTVQi%R -zWs<8L9>lvhR0BY7fmoo!E~y1_^7LJu3Q^N)9PImZUS3=$JJ)H~5n-GMU)2r4q8 -zT`lEV@R}Yz{V^7ToJR{J@$I_74P>KB+=)7EjRA6`-~B~8Jlx(N7Hv@e=qU-oBHk$0 -z-rPSye4YcZQmGL~R@>AZJTD=z$f#-i0>L=B=KvCdIZPkm~pdXv7$+dX(b_LX|31Ds)i_q%YZ_uSkDTGnz86*7J&%46rIg&<^unD^^|f>yYXco99>FXO8nc*1U&BIL%iU9 -z2}6QS^>@D;9W=(7nO0HbPbZozg#TpxQZdkFP?ekX(jR1#J^e$D2mOk6eX``Pd1Y+7Tn?{p5~mP(%8uMDgG$Yx2f9^41{m#1DYrD!6t?68ef> -zJnTUtyn=L~mE{@q+Xro^fvySbh8T)?jb6^{q_=ZxM=vGb`CwDwF|U4R4NSH(Eg)_x -zh6`7bXRYsFf;2JPT(}kVK=h}3k$}~W;XJ#=VJKc5}|VM+Q4jV -zUD1)g&9_4yCwDDKE!%-bK$Tj3QNju-w1kNLR2urApXO3)r}F9f^#}(e(&A{GTWomr -zkg*kHHMa;8{(2h%6<)mG{J>GC3PTCuL@j&+T80K}*F%3@##yYFD390f@Rw3P1K%Q} -zqa>~KSS*W+34d46@A_6SDAO9gd~+XH1r4y`+E?LM6N_*b&}mh`*Tg-q`7h&)&_4z^ -z=k5uoZ-i-Qq3a4Gb#0cRHZS|GBpz)by4t{3_shHV6}LNM_$ro&I#SZRwe+Y>776g=bDuhAS1j8oRG)ds^aB>OAY=$rllLj?d^Jsbz8rAZ`R$HciP -zs6js|ug?tp0cdbF;BV181&rJY_ObxNTF{H`uHskit_R*%rMyO+>P+8Q$qD5=T#Vv0 -z;nO_IeeofACj7t5eijvW>npx`pTt*m@H@p(a?Xe8>r^UoGRw4QXv^SG_N0`o-EB;Z -zodwBTwm5F?yQbA-6}Sxq<~_ID*)PQS{?XAq|G+Wo%wy290J1qSay0i~=`p_gN=G^V -z;%J2fI*u1#lDqC(r!TRMh;60nz-x-j64w=f*%8h_d(BR}Y1Z4tsS%Y6U!|ZF4_(I{ -zp2xKUP*2>uc_=|z)$Q%5pYwyIY46*pvq5RQ+PQp-uH2x9#`waae$>pq6{vp#K1}7>-fw!}{~UPe2rDkPHVk`xfTwF%p_{tK5b-ko_OXnSWbIsc9ydl)>^7*+-NsmCX*)#BLca2qJF&Y5a&*1ipB|Sc@J+9l?I=p4pVq -zQ}#w@CzQ-Rz`p^pOpshYJL8V)-o6@x3dwg+EVhr;S&6*q=l##|h_*UFSESnljcFvi -zk_k$=xJavRsC<3_KLL4>u=3cU6i$$TP -zj4&J%EQ%#*Zt%zMXd9hU92O3Q6%U|C5qCpUl~6ikVyFfU;IfPtm`k03fpMjL~kO!c7OIsQJU_&^bf~GHvfWx -zb4{t{tG^Qv4omnn1eP(Hp0thnbkcS>2-4&2&(<~?-DLVB^8H;CJOlR!S1p~<@lq~@ -z*jT3Ql_x#!-$UfD@W2+a{SU+IZB-I+_U}J>(mLc=J1#PALX9LO=5T?O^pWd}YyIE6 -zDj%X5e3A@Y2nf39O21lvv?yisL`8q+!R}d)okTMBk7sxSt7rptX29&@>#yoY)Y(Fs -zH8p=8dt%o=2PbhgeuPpY)&o)RENk`3GK~ -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 -zxYGf1z?&eBW{0ZJz`xMlr8I8sbN+RG00 -zTv@-v%{wFQB!Y{d>3}VnjIZ^d{<)zS?gKmcJT_uQT!< -zjlWg|J*goTkkFib8)A~SaJX4+3+M;Gl*6jSxQd=#s#3ogBvlHmWmdWtGT$V&Z!WcsqZTQGq2{ -zBK{`tqpgM|P{et$4kE-P)ySNJemLRfy&0(t20u*}MS(pPd&RnP$a{lN)em?=!ge>y -zA-6tqpgHdK*3QNsvxhg_Yk(hnt~?Vwpv=#!trh1)Y_Gz-q&Iy@80i7*)v>^oW99hw -z1^71Yjg*JRmX9{%=aDJ+q|f7KBXJTJzcBv&R>8RmP+=;#4da^9Ul-`gVpEC+wUWlq -z*a&Xb9ye9OI8D0%)nQShLKdKKRa>T0GU<9eX|P`)AuU`^kU4C+WF3;(8iV`#fwCu# -zEew3Q_DCb-ld1#fMjX@6ka3UXNXQ5&97qU$?c3q-9z_t-ZvYybdo=Gb?Ui8B_l=c6 -zJ?>S75I(05W%WymwfL0>+@YPq?WFkAju^dH#Mi1N87$oN_1a6=iOzrDRl}N_fx`k= -zht%0536?J6zcDEkk_iiXd##9S*hhDHaQ=S@%nfJLtYOQYTgT@TcGEBAMj3n`Y#$5H -z$Q>Kl1WIk)E0HtZDrGuINuXw>H?)^=4#~JC9eu3k%1$5iP&~#j5jLzt3^cpy<>Yp| -zg`%KaTQ_8t6UNJ-rrN~T)e^~e64Fz?u=rq%v@E-T8CLDdg#gd!>7sCAZ7NfEorKc` -z$0p)Ht`2mXh(dnh@Xdp^If~IwfcmND^qleM3HYzA3ec|!L=N>Dj(a3>&X4I-R?`dE -z(EdGbUE=3htyN)SbGT^@gh&6Puu_|2z5YS^`n|AT!)mhOMPpT;D2m`BmC}P2z*j2C -zp1W7dHKZep{dxd4%lhO4 -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 -z4&eDhMeLFzAHnc*WDD1p`Z34 -zm3Tn5)whW~|2e_L4CHgssP{5tF7gw86lp9(KIf~@swaJh2RD}d%Cf;rxU>zg8%`ZX -zMqfq`&=&_Ou4LY$1HfMJd41kDN$7SEfz>V|bx`Wi(mjq^<%;y^D^*l&`S#D8hq#c0 -zx6RP;QH7c66^3%8R1QCY8qo_Sb6_ZG*shuEQL=-sI&YZ-`{0y%K&edB}gyE#(NZ&#au -zo0m)E{(&4r@u0o+vEgs$rITN3#E#AU_Bilvy|8@tp8vd|^qrM8ptyZ4;e)PkQkUzI -za@@UNWiw-?>|N0^30LZ5{Z5G9kz#Wk -zTRwdAK0$D@stemiut38efYl49A2z$TX`LQw5ct&}gr{>J6IXFCk;B19AD67#sSb?@ -zjn@U*ZAGO%J9O8G#r8hKn`7L4WisxtCJME06HQ%K#@|G^0Tw*G6n -z-9AH~oIl|iZ+S8WybATGvD*8HUxEI```!VA|z -z)!5(kyvE#(Xb{*kQJbcPFje2)>iX$_5>w2+?BE3SFo4D8BxkFaCJEIA2i5#I-wK6h -z{LWh8PC&8}g+TthkAm++YLTR*5!+XukhSX>&#_2deM_knT1jqM>5UKpp3A{H&dHL~ -zgSXM=1yVZ%Gc%p$pDp4&e&1HrA)QSxqc#ew%q<2$8(_Thcn0M{x)^<`_YKxwwtn$p -zJS$T9617^45;P$)K8eVifiDNDs-%m;T9jwQVc|G)@!h+jtqH({&k&b1A#y!R<`G@@#7>lIl~9f -z(2>VWyhcnw+>`~~@-^KfvB17KdL*p*wL$;H|MoWTSsFm2enIs+a$6>;8YFC;fgJcE -z4ck1jFJQ5mt)10k8;~Jv=^^;)%Lzz5N&3;@c3B~#xnXa4!eU$1uQ?LlIv1?UEcmQ! -zkk7A1qym>@O~#N#Fy&hL++C}}{OlJKxO55#^ten5r;4L|eZ<8?B-aDcd4hKP(f;;# -z6%5gDk5Y?YPXD?$d(8yi;jhIe+Lxq-e9B~78aXuL_;LTpa)8H^XaB_r3lJ(~`$b{x -zk}Mox7&Ld|4Cc_PlDu@+JA;Rr0am_1O0AswfyYitu4Dn4BiCN_?I}W>8vgavM#x=! -zdHh(7)>tCOFc$x;SgQ&`I5T2Lq>t#PYCpSj0u1^W;3B?XHB~NNeP9!Q5CvYl`xwbf -z_v9jFmeFXFgU}S3!_Tr2z~1}szR;0CL7wp7UiUJN<5R&9r^Gvr`>P3P^yZ}+O{XWD -zM;-P2qsJ#m;-i8zr^KBamg`~9!48M&xHb=_PI}3pf2z75{n>A-wQ-^ZhtII~;7lsx -z8+hW8EOk6_LFTqh*#Eg?`QD4)MsVbzKW8@sMA$ejISUauW0e@IlTWEfFC(D?78ZI -zvb^6w_2?}4qCxrn&iB?kkzj;=r -z<8ZjH9}ogBM;&c5684x8Kvti%ye&j#R0}zcw*;CF=t?~L7gV_I%d5RtThYNhbwggQ -zCFpI}E3esCV^K$1S(<7fh>obDed>y{RZ}H)0X0iFoCnAp1O&z%5^4~>|4$yU^$h|^ -zseV1e&3h33GI72Mkd-3c&{sc{T=A1hs!fJIBJ$d|$}mAUCxresL3F;x_t!<<*fVo` -zY>Xs3W@Ws&6{=5vt}6nw9~&$9JeV=Wt+|vqcR!L3aLCb1?eJ__>ipPJpJQmX6T;#; -znxVsRF^UZI8PU1hsPSS4gMzgdvkT#~wcX3B#FiU@Kaw5pQj8&>L#HT_OD=vj)k@{% -zw%{go>Qb4>-y_KlBqw+H{X|l~X{j=fLM;lD6vl{(h5Qb@LnKh|Ig*})N5pz)T4gAL -zGK`PseO9=$@oZb&g~oEO6C#K>&cAuh#q97}NwFvP)c-n|EE0C-&16g!`Nw4bf{~4_ -zp$kt`tieRYT@%j7EZYAl*`EVabjX71ifDXN)THYk1t&p>r2U%!QBX8MxJ0f0A-moC -z4@>MIW8ul-f0#vk8bPo4QWiDOM*;E!bgZ9%c2`E&O~G|eLBy%?(aU8)O~SA1PTD9G -ziX*66K{EC}*~;xb#BG?DTYNz`O`e1N9V{E`NyFo64e&yCvPd8x6l~$fq?&2Sev4xF -zxVtGmuPOe&C^rcCm?2R?ClB?$>&~l2>mFD!oiCN3|1YfLU$R&>5FX|e6o~H+^@cZw -z9v_Z1L$XkEAjpxoBw&>%U^GBdjV$&@KI@TX;1#;p`@>P+0jFH@%e)hnJr@4$Tb*qzIS>S|tKG!vDt -z-%^?xD~bQ{iQ$Yp8^3g{xpbpkXHQ=m^in^c#MoCd*KX5&MkSYIY@KKPtw|{*8_|zw -zWN{(}a=Lx77{i$L$VUcOG<1aR)LSPc{fIL2vBP{A**p2&hQ2uAi$toFYd?`$b2?AD -z*OhM!B;Zh8o@rNhOygt6MV0o5Awh8x(OwIVT@+RK+8e49`x}JD;-^6bhxvhR;jk#J -zPYpzYMIm=*B7KY8&4;bT5W0hSW?TB4*fOF!-C+C?nB;Uvj2q1vmyv+yi^Wm_a7el*M!mY~kAl$I&CHSq~7I>guwhf~8q0|z} -zW<1!O^7&OE-1C@Z!4A=ymF0|nr)-wi4RVVXhb)u9H8%E^j_=K^@2H(5c*Ws;I!87N -zub(p{2&H)LkVqyT=Tv|d)GvVvzuu%}k8N~bUU6q&`kw)Kpyu$_mDFpiT;1w^y_6jTO!_SivCPP -z2C4JnuMOkWe@mo=5keA)d5hrAVHy&ZRP`5QQRh=A>CC0CF}gGpqkQM^yZcGK6dNy; -z5o5oCblfX~O}~Oo`Z1tOD8tS-wG^c)VmNrE*g3-RfKx-@(JT0{;JbTLW6?f(m1dQ^ -zD)QKJEI_%-;W|m`poQLnyd;Q#;hnEe{F&W-I*(Q)b<+i%8)L04^GoSTZ;I9^3R!9M -zl(K9q%nmXRaGUp!l_T7OqWxV&VFsEA(!)u#)QR0XW!oUnc*{s2$BWx%qmT3~eiG_1 -zcT;2dD-T~!J9%%T_qY!0JX~;n-s98?Z-SIA8FJrC^L)^j_~@%NE~2vboMrP=%xjeo -zeqEkxsh;c%$EmaQycf%+BNkWdUKu#3Jg|a&G5-SiKXA`@g|7ZOPS-eASLMY^)TkBR -zYmVFSFFoN4nUdZ<;c(%0Q74`rer19m7u9#xrmBBpWh1J9 -zII>{AO6%f!h4aKnB9WP_Nd(pG4SZo54-sXp1W`Rr3?bF~{ -ze`s_ZzDRZG}0qFT+oJeN-7~)b?+ikst3Im8VylS{nYJlB7L5 -zyi_U=$O)pB!VQUVxn#H_c;^Z5uJG|6|F~Q@* -z#R}5^S2DUt498>+yj2Me!}zyWG{v^sK^Dp2YWW_7h+^lr|Ckuk+fv -zYXzim<9g4r0p7Ng+*$ULD;rSQ_aX?C$@*WJsW-_ThTb)IXfxo^tOVe16m!>!Iyobe -zx#H!oi$T9!tl2;O6(pZ)-Ql#Or_jklv3;rf76qa<6Tu-F{aXA?8Vc8vU_9-2j?ZBn -zr{Yn0Ef@ge{423i8S|NK5SDv;>3Cr&v4!Y6VLvhqI1x9 -zhg8zHoc4}fgxpQ*QtNdB@Fii)s=Ie<^%;O{4T!}MfM|g!jmXPKUUP^^hUmii<#O>1$6VrAwh*Z -z3CPhinM9v6BxFVFZ!S`Xr2k)w*aYluR9mDmhK)AM#jf&|O~|fB`O{l*4>3D(n{YdMmVS*-P}WK7ZEaJ`)I#0gbh@X_&}} -zU~+D4Dh1iOkog0fql$gTOZf2&6zG0~SLCtBWO3X**Prx7baiUL$^jO|e|*9U0D$-T -ziF}C77E99f(}zd9gN`S?$;kqZkyiyIE^0jNI@#yaP+aoVL -zZuJyS9rhM0Xo1-Ua!xbblio`GTvEk|w6dH#c(r=B?vXiUZNTXO29s0eptzf_Q#Q}t -z;x%CbIpps%r%`QNe?-;C-kRI)5hC|qy%~tF)^f^B%O5U&NWbBOJ^-`BeN-?)cwGbI -z6Wy}EOs9HMsRJKpg=Dp#I=wMj;rOU^$iG9|G|bM=pGs6IO1E%VUd}&ihhOEik1P#4 -ztK%Wj|FAl=Ldmy8N=5s183MMV_K&)$4w7n@?jA*{WG;THh5L$3KLwXDX9gNO8s+1LlOgJ^SDmwxr`Dj#$IC*(5@lF$d -z5>k18_C%z#xBMCGh(}_zTy*>|bJR&L&#g7MEDD?)XV4P>HF@_)?yt|Ur8?zc#KTm1 -zPh(4(^PjG}&Ijk;nbrCaJ%r&_tg?66Bp2+F&*3gKs6l3Lj5Z5?8~HPN8o<}5Xg~#v -zy=6Up!>#E&rI$r-O@fL4q%MBY -zk8H^h{RE12Y+~wK6}+>N^D&=Mzvgmk*g;0A5#B99N6M&| -zNY!)?+>&+R`a3#OftQH~ixD+136g?&kKN@?+qkmEe}DdurmGBys)?c?9n#$$l7b3I=aQ02cXvx8UD6;S -zxRi7W(%s!HA>CaP65nIj?>EESc{B6w+&K3fTlV+ZtmJmR+)X-p0P(_ED#>gR-J!BX -zigF|xPLUr)Eb-WIz;WGK^ZP-A5m{ -zLRR9UcUHmJsz0!1{ZXH*th1vHjO0;`XGLcM^cXss(}soycnry_){(qAgDCxr9X6n_%F+-5(9 -zqzUi(vp+IA*Y2yfa2ClwHnXG9Y;w!VyS=MKQ2E_d#JzGyeeC6XU-snT(!eu6n)OdI -zgsu$5sN@ZrJpX=6k|kDQ@IqVUZT-OxJpKTCPZ*rU;fDIa?j*}3r}jzLYq(% -zDK@&K4k?Rd`^CE!uksJQTHM1WA0!^E(*K)snz*if+J{%W7rbWN+Uh&&{z`*2;f-vr -z2%2H9KdeO^P1uQo^s?!ltnbAlXDs)Fj&K9yMsrUY;}?pkIDs`@h3n}UB|;STFL|-f -zjAs0vJH0~p{z2nf_o-GTQDCB%JOAazQ!2}qWx+lB%kcCnPI{7)>S}GwlZgasJuV!$ -z_r{J#8h7v+{l`(BH4X2(mp!ji0RT=E8P+$voGOFNJc$(j9umJ5{nwB0r>`MPB6ioH -zxt08-_>&YT(+FRT(#sb6o}pDaEM9 -zCLe$~?RNs6uo?g*_9`9ieJJ~Mm@CYHv=WJmX^&ak_n(hb?-n>-ohvBbO-(sL -zyvR)D7wsW*8rK)kd2`UE>;$pCz&mN%Q`}G-|87c#P=Ek<4~FC-o(RPz<*UlA>dV!o -zt0?iWQ;(wm!UKJijY!*wvr`i&XjGyO13`+9G8 -zQNe&{ -zWLPvzh301QH}gMnrH^ylk-TM#rr`Z7T6j -z^U#Gh;Wz*a=D08u>TzAP1t_hyNCp=OMM=LH{@Wuq8kTRu@Mmn-^t$M|2qLrmTV__l5L8RhhM~%CJwNxo@feQ&9*8PyHGe3Ce4aR2lYOH}f4w+OrHOl>c^EhXHF5EPa -zFwka7`=Fp1Ao~dWoV8ss&E&b__ondR(C{OiN}71s44(erP$lOr#fWTn&$p0tZl4?r -z2UkBeZ-QriFfl11IJYzIyRbRi(W+C+wwNL$uH!0O7qC*nRW#Sb9BN^vG`|}Na@frU -zmyt`B8&JjYp!E>@(d=H0(WeVRo`|gSmPU((!$N@a#*@UGxP_g2xdOnm>6Uy-H4=bW -zmnN9?n -z%aaQ>@IgFdoBc%J3~`I=T=AhC@yM<4$(e36g<-VeUCiy@3g5V&MjZn1iix=4k_{*1 -z-QgDcq*46W^g|%(=xB^nzp|GeR?Ghw=&3IQ;YJILIUgG2S&U_eI?eLhF;BLrE%yV| -zaFUcUDHR3PO`IXu5a&Fjgj&Tnm|PTE(|1I<@MKZPW?12hi{swkf+A_w{LIqZ0yGlC -zzkHrU6S091iUe)^G$-~7oDH@3&1$-zZpW=#^MFj>9hRJS^VLxRPSf?;%Tko8_7jxF -zCDD@94Vzl)7Z=*x5sg?8oh1Fu19XQa`%^tS=0_0-= -z57X`-{KY=l@;GzVT!yCi>$@$*!g&}ZquKIh=-)wE`{6puCM^`J8@awbIbAzvsbv85 -zOc{;$9oMsOs|KfmRqd|-S{2O^;P2ype7T6iBWNp+;iIzDj-Yh<+k9s4hy!ChNA{2X -zMj~pJvYR4m2a)myTj3L7tQb8uzL3j(b&N;)i(z-InE95#gceBmBT&nXIZA9B*QsAq -z4*4d>e(|=4Nn5k$=Y;Z2?<8sa@)pGEaI*4eoHM|wjXJXj+jUZlj8rpnR%3>C$ -zg=TK``@3-qt44O@uJ;!?WD+$V?YKMddOMU2+f*K1Up_5a7cBL8b4-pypAZu+`S$Fr -zN>ralU9ky%$Jr-edHWp{Xmt$WS^Z7X)!T!;d01csc;_`JhaezCQRJ4RxK{PNc7!kL -ze|0Y?_^*^!%F#U_LhZ~x9o;n)wkn^xilg@2_{`hRF;Cw-nFk8F@RL58@T=aib*kQY -zerY3K;yQ+=;f=4*+Ox!;#Jd1;b#y8Z-m@HV}oIQO>yHHy_(+6DQxDVrMK|< -zhU|eiC-*rbY}hq{-yBqDMMY+YmrD~C*dDU*V2`@Rrd<_;WX}#fJYq+r5BSvX!YtEX -zwM1UPOMT^~lFEok{;0C5pPkO_Gk~Ij`Me|rN9fyuZg8eK`#o!Nxa=9nvjT9aFH8sE -zWUcuj+a>&p%^kaRdZ}25CZvhuomf8@jJ)E$<Q6NSl1A;$TorD(@Z#Tf)Kf+M -z(6Wwsq~S_)tp6V6m;H&A$%C)lRBui-s3Cbm_)Nhk_Q -z5b|8&2I+H17Xl6%&uMHG#{eV-z`uOB -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 -zF7+?#`-zXrGk`Hn|0De`&Xx6%da><33R -zxS`mNWwd~ad~;_ir&TiE!0vk`iIk6Q1^rwViLm9r?Q^$3pyLbMRX5SEeLZJN>ab=- -zsbGAI2;e0rvYuEpq-p9qjjy8L(8HtMjtaGQ-c9`U4mHzZ4Tt-6_ct1>rSy3eUKGwU -zq&Mf~BWL4~lCEHFw -z*uM9YvZk-26d_Qy`@?Lw%e^ZK|Y%mSvG?@(XcmH=ZGf&VBAj~pZ4JG -z2Ql}Ue{MkI&AIV&rkp>!KEmOc>RvBx^xd)}uF9?uc-;Kpv%~lxAuKONxxYrGhB_d7aPNZ@C(A%et^tT?nz-C81^zU=Pt? -zSoFlabQv32DdjNn4PaPtr1~3hv3l0%o`^;n6tK!uuD7bZ!N!(^;?R+`;mD3oQtiKq -zGccOVS5SjOex`d*G{D70_w8fK8kbN -z=_rp*QVD<*TpE%+Mk67{8^v0o^ek_6p_yYd6(VF#K5Umes#Ms=ruC_F)fJOH*V+ShZ(TPHE%>-0 -zz$^;XDg3fw1gQ`_w!qSyn1~*iR;BRho>~cMRQN6;gB^4D#+Rixt9mAbQQ=mHkGWkK -z{3D32MNb{7_F7gZndGyJbfAn*~$w;J*b46!#rtDZ?JIwqnSe|E*+uN -zC@gi=x(9NTaFy`9YckY`(@+sd%5OQO+QG1YY%A*2*Rx1jqrN-u46tDYo0u`0i6ae# -zV3>Y&`1gXM&#-u7K+jq0YRqBzwTv($#ious{E7L7@f}?xjUNBeM)P~#_j@)3doxZ; -z?tjn@b@1T}3i>HH@I6HTDcJ>NuMaq@uNx3smdq-0h>G}*oDFG;tI9%mW^UsWPGMxr -zHvdP(KQme+=JD=Opzh$0K|L2!@pS1azUq#7p&q8eu{O;uu=E620Ww-e=7}w1QcN%M -zD1~t0*(h%UZT2Judar%`Xb3!I??nmN9TVD-QsKbb$mdQj&RBgt|Eqq(Y% -zE{fJ(Zx@`tGEvezb*?Fj(q6TKEic9UlB4gEV-kV@3MhXND1Yo)+b`zWAb!4uztUyL -zvx)M`;SqP}2~Oi6^5ZT!coyliV{STfr~0{?s~Pjl06WRg0g0xDFsNH)i1LqjyVK!j|KLE(-LJ^G(xzGAtqND&sUGjM>?rSqp3~-semN -zZ*6dTJad=1(K>UXP9c||Qn^|z|EL4`WoekT5>rjNoYIusrs+>(rHPxj$ge56Sp||& -zLowQFL_mPopr3n}?(NEm%R96hq_tPMKZlHFGd%1mMKxUY@- -zc*NCO0=>TGloxXhOFa|2_!l?*@2paAymT-1pVFehRS_TR`p(RT8&9&1PU4r!=t!T! -z3l~x(f?cl$!bge;P00MhGJiyHy&#Y~dyrY(B>=c6ZVsg;)YC)7C5FVO@(Z6GNfs>|CkaC -z*lRoibveELhj1(~uR2k5l<^Pxc{?rl?&UJSR(hKkLB{@QJ+Mgtdp&$TsM^;rhbE}` -zTc85hul_y7n4T7gE6ktikt8Khj%VZ~6wh%Gl8ag_L2#Oh`5a$JaFSDr2|@s<8~|g( -zJCt}GH_`yet2Y>78eC^Q#i-vh`VhJ~Fg|YxGDo1FTglO?dDdS76%=4V?km0P%9R=Y -z@`!3;<$&etH-UzsIaMFl%Z&93dc(wB;P_|XKT*B_?NREUWdq>pS9K~byi -zr-?{k9CN=$P=aoYny@+Y=MKigVR6uO_vQAYE#yI8Gb^W(euW8swji%JMb8GM{jquR -z3h(Ia(UVC6di6y5Sr7Yi2V*u(0PgcDL79Pt7^aZ(@+U$Npqjq)HO*RnO!fMQytE5k -zD#g{Db90lD5A?}m_*0)zOpDc7H*21A1t{FI7t>uuaLS2Qk`ur5d&|ACNGC-EtyA=LT7WGcC0`mSw*TC8`{v*l*~+S3 -zAWLP-Nzzla5{haCQ)H3EcNbmn -zT-Ys2?{-v$wSG3RKFdq@YP@WO{DOTl^DKF;If-T@{=hN$SqDPQjN_6&K9l)mHgo7A3@VGb2@9mNoh=+(H2?6BM^MACp(PyZ5-ghDZ#utlOLbr>Fwm -z()0l-XH2)%%>y!v)q&5fBjkp9Y^5=7%YnFXjbH9|dbygk^C0gLGC(cab<-exYg0ub+qPcW4K48We=jcuhbapS%pv& -zq@TQGTQaNwW}{vFOy^!NwP#o+H{l40VIAeA^7OH!Tm}ypQj4uXd2HRUAZbByJ9=%8uDJ;4Xz9iLrcl2fNu@Tcjka=Y1nz%34pXD -zjY85k1QemE6W2d`(JT+2pX=Rqa>-?HZ`cc2hAt$}_;)S`J1&R6!n(~_=_I=`F+6Tn -zwPv@Oe?hR#Ev?^9Xt}rNxQ9RKT^kf0iF*qOPG6#J22U_ -zs?VeAGyO!fZrVQ17^P?Ru`j>7;d(-xBdU5E3sDK`qtF>)9TfiP7-j#m8PL+(J@tR& -zzvQMoD@v0x@#fhxiuFBUiyWmC-~b3=w3Z=X)J662-@-rG$=W*#m^#NF(O{OiHr`hNqhVZZXzruDJ( -zZ(?&R(hD#ff{rZc?pc;5pMSx*he9+0_(?=_=pu#aMqxIsp3%B@brj-LplbzyIWrOh -zXHb!pUPQLgRYO!%0m*j9RI$k%FKQnm@j#CzOcCP{>yf4q5Yz4D%8rip?f@wZR{ -z?>oOSN8ig-DDVf9<09urCi5i!5GdkVA-lQ1UgF2UC&pA)Kv546vtnXJj(0~O?cJoGe)YarHyitI*anv@l@(fIWXZ!Z|yykMa+&*q%IkZPH7{q8E -zvlaZ|3Qv1tCXT|5C5P|GDO)p5=@AXr6R30j;u?M>yU(C}8$|!kguF*^4O7ECW;4af -zXO)#T#@p$r)NlnI0xL}lN7ELw#s!$n&BasQJBOYtj8{Z$7UB`uY*w`-nt}mF#DTOc -z;!gWEW>jt~mNz7GhYo))=|;_Uwwn>wBcEajcdS3`6TNVWR8%CLA*kbMlpYR!e`Q{I -zE6n>Y7Et0CZ5KQd$0Op%?2${R!A#NbwhHw4R0;(ktrus4Yg;~pM`WJhpBPGuZ$3qt -zTp4e+L~?H-G$ihMBNEAcqUxribk>wg-29VTF$zRKUuzyXv(kdvaoKCz1SX90a?#^Y -z5E7?Ez`jmdq@BV*v&{S9X>JYND|_D)^OIY{ioOC6ETO#4lw#hlY*k38pbpmL`= -zNEb?=>$H7_E)sPf{NWy6C+67_+-boo_Hf+Au=V#1HFvznd_>Wl1S7KOEtK>MH!eb< -z$^_UvEzCw?(S+utWD3-$97yDJpi{ -zq73IMM8jt1uWR2K=H(^8c&~+|flk(t61pD(unEAt@wXCTy#3>}@5WZ}#advU_(D5sM?81@q=PjCCIjQLAOhDs%;I$rH{im-=G<*EtJ8Qm}fB2p!H8+sb -z;FGmoh)}IA($v|sw|F{=6_P@_)oFL{2Xcd|5fxM56O!D!?tf@YR0?<=Z&Y%ZU}v-v -zNt4i)_cNyvf(vo{EAMtt*xhS{_GX}z(Sco(bm7?l{0NfqsCz>tB1VC_H -zPGt&D!tkZPX+Q`lbSyR~g$xZ9YjFZ9WfAl?Csb`ZK18slBqdRxy&kRBnJ~>c^d+vi -zyX(7jBq57M=bWo81RE>`lg+g3DEgDe*HhYCp5t10ho|}gDr>|+OOJyVZZd|D -zv)?ouBNE_N_Z`O5!Q{8 -zChc=&$(pBQ_zqRFI(j{zJ?QP^5kVIv+e9+tf|VvwTBg)7d2p&Iqzm8h)wZ6jp(qmX -zF$Bs4NCwCa&tj@Xev{Q?_|cM~j_4$g#&7p&DsiZMWC^-7yoPc#alFMYoY&4h4zQ!x -zp|nPIt|-@{{p^2RnOv5>LDGJq`uanvMfg~*YjLmMR=3^wf86Jc+~evV$o;2>8e~0P -z8zX>jHqSu(aZ_%g5~-BMe4fJC2dVOe)>rmq0t(^}3T&lVV0v%3A}odevIA4h`RJuk -zG$~_nS<2zdx({)WN3&1!2HM{5_vjB&w9An}!C)ScmOqWt{-Abw?E@n;Cim_E(H8fl -zWhz@aPqa=89zswZ5;DsoGT;)*liU*_wsqH>5$tblvuhO&ROc0$*cW>5gqmlzo<;&s -zj{>7|iFU<(d(QmjfNRlUxnm_%Kr|KAlznUTTD{fx3KA$x6${H^Q{yaQPi?B@fzdq= -zG#dTSlZOt`9R85RknmAyRc1xUFfqKEnVZxK{G03l{?8j}iv!O`-pVhV^-$+K3}h}o -zyh``yr_#I&<{N8zdlg67TsoRr3%$J#0SK&UZMa@;x?c5kN0Fn7K26U64BXs+bw%E- -zy7k{s+?*9=KzjK~PkgBL-SPos?m^bNkx>-&c-UgxS<9_MMpovDyQB>+zJ)?R8(~`a -zF*X(ee9!6Q3U`#b6gyrCxA|qN4qFd{3KzVS8{`)|mX>&avNOhGtnSDb^H@>S>vKrg -z`+CD{&;5hah6~=i{7UxK*END^&iEjd;BBL+8qD^-7YL? -z3GGty%Ld=^7G}2d{RNe#Zbh!MRHhonB(I@cTMEi0CDUW-M}3yB9bX|bfH9ybSDnN0 -zC@=dvw$s%848n-RjU@4w82>bvJZjG}-JGjoL$3DSO)KouUz^qC?frFRqp#QraG>jP -zUBuKajllfWODhcC*<0+M-lrqp#&=yB|b9&p( -zE?giPe>G7~vJ5~I0Izyrr|We7EKZ?@iDnJ{9V5zDE#0bowApTW%XSSN#LCt)K|@Y| -z9DwSph*tfYQK`)(pQ!&gU#FddTKez%)cU`C-F46(tg8x0R1V#4`&}C!)@>bVGq_&m%>`P?Al@96Y=W=8gxwCibBKJDpogXd-s!iE{oXg*u@(7Wa>hKD -zc)TF^=ha;7OaSc3^m?Sd+T!=pYZ6j>@Xq)$w(2230t29P*QeDvF2u)lSi-?&efgn0 -z&8tszKfwUYO^`#tC!BXG9b86gbDP|vuW8UdkCekI+1*JV7T)lxF1V*E?SxyF3Ap-H -zMhHUO8VfvjiUeQ5XMC1PEn{?(p9FEyx-L^fUEP_9$`4-2FH`?IF?*_*0nr2Oh?^Ye -z@7wdpj<3sRdcw`WfVduTw|R_VtCSMA+7t%PfN$EHL8^NWXAw-N(u1+uog9(#ua!&# -zHm+E}F*s|0H%4P^0`)?@fN|`{dcHs9P2!J@FSO2{dzO%QR}OIO`$%)+KV`T&TwJ>y -z;1PVmxU%lQ+!)JM`I-MEca_jH{0fj@BPJwN)El)R9-gyG&+?;NO_-#-pahDoK9Doj -zKDP*yO~x6T6G7d73SSl&cR}^$a@{{FFuCVlaqcjF6NX8cRuLiOmC+FI&-bARMJp!=3P?c -z?jqC-@y}bYBfkE5nHbYc+VRBD0{{@=?HxxyylK0Vu*U#7+Gub@a%OSs2~wGz)PX7u -zq@8P7oq>U`okV!4DS4EBVM2unOyoJLx -zIv&Lvo})A1L2+Y_RxLluzuy^K*My-IYG^vB=RuVr=$7H9nYl=>xJJWf*zuN -ze+2(i3?yrF;4pBei -z_M>}T`ukCnP9iI+Wc%wej`VX6ag%Vzt7#C#o>V091p5`{GNOqpBeqix5s`#67%UI@ -ztMUIH5%i?qnf(i>odJQFlgN$^QzM6%wKn0$?5Ujs<8M0?NlG^lWH2B9FTy06zD+e@ -zzso_F+)7d78`ly4R1$3Tk=ZbzFS59Y^ -zl1r*PPXe3@WLO1Q8alzEXV~1@*#}G!a9NdQq`uPM+M`hm!YCLuH7J9R^{{+_w*V4B -zxK)O{+k{;XAL-7V9_)K@L?>?jJPwy35YrymthAC-7aq-+p;ewW1kYzk?ScxQBm~Y( -z$c4gSbdH|bSq}khIvsXKJz_udGofeo%h?`^*;7YP*C9Y2mpg`1*zgvUT5gv~o=HYO -zN$c&v(9#TeO~ty7W~^x8HdEq>U9IbqCWcEBQxQcGTM=9Gkn3KsvKR*yo8hx^g$ -zLXr9UA6i79bV|zc&#y;mo`HF(5?{CoVpyU)zu4jui?bk~o5^9$4fZf&6?2(ryab*B -z64wtjx;p>}MB2$#)L{owap@C=%u$5(y`U(eY$uGR3u65xtA{u-ygP0jmLR-U -zM&S%zMZCKsN6?GE02(9}j^=kS#-iJi_&$#uRsEPMqCx!{cNAO6eD32MC>XR2bPOrk -z$ON3kMY8Bd8ly$!YehCc)|cAzzqJw__Fy>HW(fCdMd<%N0&nr96n$;>XQfXBpj8NS -z8+!J~aU$UBT)5W4ZBwVY7#RD_J1J`Ty_wP(!{?za0R!I=Lk3SB;|`qE$AHl4hrD9} -z<4Cw}xi0Np*~j_BHNsWDgpZZ2mMFh_0R|ThhUo7j$?WM|KgL3M(y=>-lX3dKcM#@9 -zQTlT99lOE<5L2^^-7PxOkttp$Id&ZkdloBU63#oHrOA{hk>rJl32zf2Tu~e~I8cny -zT{t$D9z#r{?>ogxRKyXY;A`q%oMl={38Ndug!46*?PqV~{C%lMtB-f`5MC>`W7&bE -zWWB!y#P!|9!=!Wd$@ayC6KjJuhtWII`Vmt3F(hxgiV-B76!-lqgXpcT4V4v;b)#8zPbqg|87WR4TXa4Atgzq -zM%b`^OVQGCfe@nZe2o{Qj?94$O!hhZpyslLpz9?S{?g!;zm1uCXjZ4GTCK_UxC}T4 -zo|f%Is?0r`$ESE@+K0Mi(HHuu?nq;sUgu(0%m5~~$>TKd1iRxGTG8@EbYe~Ybf_I} -zT_fV+;_^78*^r{%L;n~5D6F_KTtvnSVnW$Z1p~5*0~=GR?MHVi^N$|=vzj59S)?Qx -z5cua}y;5{c4q?Dh%`0?)c~a}+?8GJ%sT6jd;>#KA5_zsHilH~#kq -zjgw;gMK0#@?a0;tm4R!2`{yO~-Qb;IG1Hspo7&=zQJ7*D(=-z*57`Tcq|-yN9c0*3^k6L<|U34a;E{w&&+Ans!u5P8?mMC<)gO15m@ -zi(<2i033muzBFcwkq#Mo%^%AW6@Ib>cp1Tp5hNqAZ*%(*_rl+I_OY9O48s74D+=Pi -zh2~3jtI?xyPU?|n)}w1+f+Wsi6p^Tpda8@Q>yvFk+Q?~<;4PLMSY(%Q=Yz`lxoIXz -z#+|p>{q86in0ijnl-=A1lFt?&(oQDp$aXr<$Rehjfi(cq!AhKD9ep1MHLT7N>&6Ua -zb0=q3ld2~Q0-d8zCSi(>+Y*m1?Dowe8yrmWQdXwUfNHjVJv64gI0Pf9u -zr8~}yFPO^!;V87q`SRR$Z8|b*awu_85N7)g8Kzx6@wYy3S7K=gBOcAz(G&iv2liCC -z2)0x>yO2Ik)V4HX{e-S8EHifTM0!)9U4;*{Kq@dgEWZOG_ -zfy0BowC(lQxNk{J=LYLba_iHO{mFh`B8yJRt}A=umpV&rnmuG*gieja-da!It<;PW -zwFtZg8yOZEB~G;IGhOSt1MD+&k5&q*BOJY?@bn&5yGwJ~`| -z0c~@DWZ|&I5YLIoDl{d1JP8Z!FfuR6ZzVn`zv@Xk9aut=`gHiDZZunZdvV*!3r2Lt -z0T~R|EFbj49JwWxC-Ep?Z&X~FtOWYs`fZ7*J(r=!eu?TTSo~Q@xau_D!XE!&~ -zR+mhxFm+_Np7lQtbN&8Op|SoTt_Vu5h>D+};+}E-fB2NVB=)qqaq&G(Rj~3^&|6kN -z7^I09f4ui8$ju2#e8y(l24a!AZ_(b8He^1L(Ey_D2wFDEt-@s!`O#y@X$Mw>e_N&) -zlgRIiFrEO3>weNZ<=cMJ8Vs-QIa-`xq_c`!!(qxylUrf9Q0Zaj50!Ur*MgyDfpyHn -zmL^x^vn`Dc5sZVFTv!HCJ(BVZeu)#hW*Qho;mZi9x|H%(au<#5*ToM;b*iiykL*!l -zD-#PxyML~JoKv1%LJosONf$iz(AXjq4Rt$hkyQBNnoJ(~3)QYVLgdyJT3i})CQAJQ -zE(qo*jA?zk?#C^KM%d*L@hIR0W(H2^&Y7+7%I$`EQ161QMa<-Dt9syi1Dsb66>-bLhdY=ZgAKP$F8cn*e}wGHcI*LkDwZfx!cCr7R+2WCVQ+2DtY7AP -zN6roP{AP6|mkPMmgT9sMTM`Vo#0{jI{9nIeFzxw2M;YOL?bZM-*2E+BDpmamh@Nj| -z?1HF!g~`?1yT`qY2)qvIm-teEvcfK@LzqD<7Wm9abpcVGZk*YlTo>!MU)&x<2(c6y -zf^KSAHt^eH(ib{1!nkON$`x;Gyt+dCy?4R>ujw6+o)~3;T;o^+{uy3!()u&iSyFHT -z*u;CM8vXBws?HJT#-HQ1%xKP-WD)<9WN;q~;sv*^Si)1zgtf(k3P(6IV8d}aEv6YC -zTukV&_WYi|{pYO1Z|&z+$KMP^28~m~_VNGO(VlzB%@qD4=P&g^9W?CTv~^QiSaP-J -zl$-*$cyx~%9V~C{L+38~wIq6CFSNrtpTD#hu{br8KP=IHXc4RzU;Ou3U>{U~OIqD{{{sOaurX?8)Y}bYIO&wj@+u~O<5MqE>UgIKP!QQFs -zHffK#GBhHo0aFr^;77fQ70nl$Sbl9Au~V2LtdI<08D_7k5yRX*tYZ3&z_o2hYMpOe -zj9NO|2=BVF9cAbbf0pn2+-wkYm2E^Lq4g0(>3oRWoIyqdjk)Nt@=_D*SE?k_K*Lo1 -z=m%|qsp7vQ{%BL*n`TFwxSQlE6rR -zkxl@Fe1%X0_Lo`^Vi8&-338j9bBBo)4z#)W@4i&ibK-O!I3C<^6~Ez$CL1pyrdvW`9tHgw -zHMdo|G#!7P7WD^)OES|u;&2QTQOs+YpxXN1=oNy%`fd5GM9y`&)c3u&D2O$9C| -zQle-P_G#vd&kl{V8BQp+btPjnC`b-G-6@b!YNGqz3?^isGr>OoCzsE(t=G~rt5yEd -zuY|>XTU$KDj)I{jxdYvLY6wUncslTVWH_Zxy^N2hK+Ezi0 -z;8e^iaD@ZLFot{YwG{T+j7DIMd*_v9^Kz>q)sf4;s-qZQOYF_1Z`V;u~ilP?$ -znb57CkPb@R(|5?+^cNxG_Rlx5Vsq=tnV!yPl(giRbBLELSmc4wW|jlvAxcHSPywZCPz5C -zK_2A2So?!4cp;8FmDNN3KEC$->bMC&gWII8zrY5Pz>xxf;60PGsQwX_gCocdN1(Aj -zl5M@>1=r`|M>u9WJ0v-ZKFY=ukC!)(V -z82o+XKi+x`RsjLqc#~Sr#lWwQ%_+ZDkA1Fqd>cZ38qq@U(qC0OjU&W -z%b=Q#Aku=G0LfRQ6$`LhTBixfGBwXm+I*=xlObdGO_qDT+X3vdpf>}x8ajTA*@qhA -zkXOBWNbXtpj^z7U2=_c0C~apikw`vkC_dNxEZjk|eIX~%0DxEnO+9yR39vkL7;I*7 -za>Yx6U8vRvPVVjDu+k=<2w((kY(Ps&T7#C_HuC6~2g6Mu&fO~~Fn>m0+LvH~ebYDB -zTfh_sFR&+m?MM4|2n54-PRPDS*veX)b2I#%cVbcLD6#@W;hbv1_frHZnCD#7>ba2Z -zDdqjGEzp;kU;5bx&)!b?YFz*|Cczk8T^Ji2af1E*5olhnEdZuHxM2!2g1eZkzI>3h -zSev>@x65&NYdZxn;!JusOziQKl~vthATcMfD~|-ek9;JX_ysT(wQA<&U8Y7-w!fAw -zZM~jvyA6x+Ey}0-=rR-V^)~gz^z4srvBVV9jTfQ*dV@(xIF$7DM9hYB<()lf(I>`P -zw6qCN7bk#>yURKub_|hgl_n8L@YQGiEh$7 -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 -zvfeU6i56 -zG2I_+6Ow~G?x<@Gnc=iLtPabPeX*0Fe<|zfP#<=|5v`e$jKq}9!RxfXTj)2f>b=Dy -zP%#5_f?(xYEfv1|(K>Gz=iH-Lq3FqT?EPag>Z(@$^s_->u4bGHXl?EK<-{{=-PT2rV+Di!xOdmMQbTF0%) -zrw;w~-P``XU|@OJ;xslL$w#G>t>+#bAR>1JH7wJcQ7@KH*wr7vR;M%Jw<*VSZ0@Dm -zhk5aM+VW6A#z4_UDN0c^l)H1_LcdsfpJ8&T!PoJy)tF%JVOXG@Z?mVNnx3m{CE@-G -z5?S4d=EntXYn=Vi4S(9nh&r3X{j&E5u=+sI -zPsetj3rt8S>8-CVy93ylmQR)7@;K)87DE3aaNAn$bnzZb!38xLBEm$qgN|)WcY&N9 -zP%aqOxAeq+4m2L%>$Q>DTK+KLhLX*x0bn5!PnK>x$S+JfmAgp{Wf%oLGc6@)I`7D+c -z4d11~*7b+su%VAM8I!3-7vZ$T0B@XxuWMSL-GEv=kyql%PZp>=KW9BCP3)C(mwYLH -z_5rzbjbJ==Y|E?&B^osf&SXO4AV59)Ir}r@A?hrK`3Xgl%Ii&9$IbcXc8T8bTodfyFEd^uVWxd%LMIOd7Rjw;59ExHhzwu1N-GLZJFac`H8ay07U -zpJD~#E6;nx(nk(Q8$|^Kj-jX<{oPry5r`S4^7SZ1N>roXpG^L0Nvc?%JnitN<6e}o -zsCE3<1pM!r!uODrN!EGSnyPT+zqC>3gd3v?;_o`TWpcHC!}t~nOh2S%xQ3Qlb)#&p -zW9acYzC%#G-#_F9nh_5Pr)gMPxl#@Vz5dZ_YFP? -z1LWtCw3D(w6SGfu7!YBlzbmkYy!ph%ZWB?(!1w~o)Fl{QuS3&Gy85yws9hHdjZhb$ -z=zHBrSH7q9PE3$BzXJCjl*VJ2-`q-<;1A#+`!ndM)g`dqu%rmJSV=EaG`eX@M#lq -zlDPY!&cA~b+sj8?Jh_c;i?`Eyg17vI%V^3dI*WpusPNj@Lp`6NCWyB7w{V|lhT;JE -z4qD0_e%VlBO2c%|R!q+3pP%7Om52hj%DckIuH-)MJ+?`z7y4cPfFOV~DU(6od(qr) -z%Qnj_D28wRF4?uv06e74na4~h0TFj%x2u@aW;p3ILC1Hjy7G-cR{u|QX5`p#wUn1( -zX@GQzm#s&uoiqqgFJ~Ik&iwSzEL&6MB|rX`t=RRMzbvtVsMM6;Iep>Bj>6>CnCoHQor9*`F4}fu_BEL1?uK_wBWc&WS7}n>FBkrAD6;k(t0P` -za3d?qpY{E$GekeSRs@Jj@uBW`b| -zn$EH%`}X=GYV9NOehTqj)Ct%~>n1|p -zd%e(3fpk{RNKG4JJgIRu;99ZS#oB2i1vKyd#Y?`c0}vqa -z_urlJNBtXh`SyxpmX%wQLF-sp3C8><-e1S}`t&W0%J|1Rdj)`M#VB8#&UL>{6aA|Q -z9V;!nlerU?^VsHO9`{_c>pDnA-K7hU`s3a9qJJ-#VLnHCBhTEn7p%xSi1Ou@c(nzZ -z!_Q$TBnp;9K(Lmj!(PXTYP${dDH{2#&RLI5KIxaqN@$)II -zNU7_W^1o>W@L^Cekm7pADwO$b7V8JPr9rVV+(|>m`FYBn%FGQ#5ggIV53^G}oxk|n -zH@YUQZivYPgT=q^{-9zpfP@PvB;t|in}*YFJ`{}Xe@nsQ1di@UL1)h}8z%~!p>pt` -z#}o`Afrgepaje4Rm4k*+7@oOfCr1M{NH&g2o3<{LLZjw3&f)9B8269lMXHnbi#x -z40EVGs2T9p8ZIHHQ61T+CdFrUm}yxwuecVB&zZq#*&gKr5hLs5d!Zv-1+pkn8xk9> -z+12PBJ|(WRbW~sai%WlmD;TYm77e|SwvsA2U+!)=YY<5<0G6)}xw54Fz7Soo`NvFS -z*0A3|mcSHt5&(k%;sy#dk_x?qfUG>_aEcF6`GP+Ue}Jp=Tb3H(bV^;fzk&Su$ItgO -zp>B;tFrMe8YgHkJ2xdiAG#)3bS_a?d-5vnre{M6{kB&3f)arsk2z*C%Bm8=N|?shoA_<5-<;9l}Q2!z+~%2I4M* -zCU)aU-ZymaSEox(_5+ZoTrxH~i0J~wTTwbRe~n$ktYEoEtqc_SN39(H2}_H+_a&m$ -zx;(9NCrWxKE;pi87eVazVsixG?~++F9z^=9VsmTgna{U4VieSBydBd}Zz(NwweR-3 -zlJaW}4n9YBox-2!Ykb3b&cEpvgq2GF5E0?s-dlkFYU5APhg5V~`>fU!_{Gey%Fjkp -zzMK~Lo;R1XD|p46Pyc{EruM_X$r3kEZUrARKh2N+v63us9Lya)MSa_g(svma(&!?Y -zIy_LFYm}J=*(Z__nzr%YmS}P~;s^6zBs6gX&o%tx^8dah_^74+kClYQ#BsN5!G7|J -z39c#D_FMlu3}5v$Dq~pWW8u8K(Z-XPkV#z&Hm^h>{;?QM;FM9{2g(BVoGif}p{XBK -zjTJmlyX-+b@#RpW9n>{Gc2hVCj-%5R>5Bc;ST+m_Q6{1 -z|5PfW?{c;i1bPmK;^@MbU!`Kd6rhT&>314FhE|fp@up|y4u7lrm_5kdF?u-YpA=KN -z!esFFhcb|ks6SXAK -zXve7FHV493LTZC+B#D(16ekXwn($PGJ?sp6Wk^R~xiYa%PsWZ^j-eBg2cA%xcYI}= -ztr$1pQjL9y(E7eX_;2q6_un^=e#=wtT;!Fzla@8NgF>FxE3y7;Si=um?;hmiFO(Jn -z&2}MRn>@6^?-nUBOTKdGojW`Jrkr$d7d0q|X1QkcA%5C;qEtw -zM5PTCF_?#-;%7XQi)2HRDvPuG2?LX~Jm{wQ1u7z`$De0xGLTBb7knj52G+0`VieQW -zQoPRcD`S2mSuIGRP5c)+^*!Ccjwu6|eV)#nrSFi9#=_gv%8y`opunACw!B0<1F9!# -zCa4jsxm+s+$*M1xOV!#~bYf#EzlzPtcXRdrnGc04-R;x9wW$v@EPCmc*|Of1dJzIT -zFuU`F5^7FUwvN7ir!JFv?zSRG#P82Oi;Z-@it_n;2O{;B+&^iF)42&Xy#l>5! -zsnq;KJ>gM7D-$Y^#^HbrT~=po8`AwgzWRh=Kc0pUFH&B&j4RvRp(z4@jW~e&hdck+ -z@H!YVXjy_qtM@F-`OBUY;Qa$fP=65I8iH$_v)A6oW>Ip&M+mqg?=)esUzW789BjH& -zw(?~hxD7cng6kN}P~F2?g!oCxEZODp#V&;TW&MY8(3!FO(RK^#+A)q{z>`L#Wn&=j -z8e|~pJUN(A7F1$FVI^`MT3W$bvNapi<3O?;pM;g&=cfmHG8f}x%AZh@`0t8A1)Io2 -zP`a5_(o4bovfhz2RQf+w^fv^lYA5Hungn6TuUxvUpDC4rW5@|Kf4jFhZBJ@~nf%kU -zIqx8!JvN3~o|*WgnW?n1-*-@=`0^ -z@c^078>}b^<3vL(nitamS(SfK%jIswoeGR41VA(Kecg#+tQA%WRm8!VIQ{zmTh#`1 -zuK3m|s81Js-0!?=s<@{r)q<+?0sfgcfB;vF12v;+IC -zjQPuW8kGD8E_8HmLR6Yc+suXZ>dd2t{dJLB4LOP=p|NjYZ0f6?Z3>E^dMIYVbz|c7 -z!7v$NX6}+io8NxPYK+7rG9%ZPB=yS$lkRLnj=(GF%kl)7FTX1>J5e&t%@;)XS~WYrQ(00+MU0%9~E$fQDR|LxmL3ir3FjQGy?GN|eD1GI%sWWi9If&T^N -zG_81O0sP&EKk;ocvbI8AOk)5p5Vcy|e3yb5q(j&H$S|V^@HFf&J1fjh1ab -zF))?yH;+ftN~&4_#hff-mJGx7<5Asvnp}wHkzo4UBK;m7HXY0oDJOgs43_BUr26X@ -zU#+G?7f4K!DYQ`~Mdc`BIo!QI950@XJOC;o#Uu#;3CVulRuCMG-BUV6N7Yo?9DIP- -zC?klQ(eetF>;Ausi(MWEpyH$O62aMN$d3{oJ=bZNu21ltbt`)lCg^uh -zCmAS77Gm9`F=ikxneT+(E?^XYCCp7>i?}r9uIdL)1hD3@x2J>XZwYjT!eUOkZPNxHbd;VV`9xLbP;@0I6~g` -z;-2*c9`1P$~c&=>*07wC#F -zpAu8lu=>NnnK>&uR$LiXcBUA%4vg$a9F5<1KGP@yP|+B}x_)DZ9jylvu|Gjr%s(VK -z%P1d4Yr}RW(+t-r0J=^#NFf~8l%@BLZhp$9 -zG6t!%fHWemhhXzRjwgF&H%vd(RhjI46ubp*F-#G~bu6j%)7M5({Em#Y?M|k&QmfGP*0aVaSpmVk&D#%OL69cpD -z^@jV+gb5(F1su?IqtvO3$kso$ZCK0UDcS_Ah^SeYkUzb46wF_#Abc`|c#`YEES2K4 -zM3F<&St={`wRGl$rKVB{9X2re2O%4zwpF5`1Viu1kyHUd1HhBc!ts*7Z)lUj&I=V$ -zH;!+G6huBO0x+roowu5)8DMd(+LSGkrT5rzF}227BD#1X$!;_*hM#PQzZwMzL()Jf -z6KGfCa&KZ=#c6qhH!%Hv`C@x72@!a7ZKP+|k{Bw7PCQU;}Mb?GI -zBA)LGSU>HVHbk2A-FIr(qJziwlWm&^Y`M~`bce1YVCbz)a0mSU7+DlI@OiP*Eit%f -zTF0ZOp(p%s%e%1}`@IKg*mMCMlMydFjBTb>`Y^qrz4_Xn?ULVtE_=Qi4gWgJiHM9s6E>Dcrk>W6^f^Z-TIX -zef8pZ8mebXtst+ouv@~5PIs7kcT(!Oqs&+fJ&_xXw6@n_XmyTe?2%HDyYZu?TdU3c}{PLZKoj)fw@&zY@-9} -ziHRy8v?EeebwV1uj1EJz53111c9q*W9xZ{uK{~60Pf~12rZgh$6W(WuA^$;bCo&V; -zLm3EdGwVwaD_~a6>v#%*7czcME&|?fp`P_JR@sG7V;b{p-As9gbp|h=Xvf_#+6r*j -z&EO8$3mVx9U;c=;I@#VkZGuOP2rp=Qp162fHkNb?B><0MJapR!&71)7((OJ%XDdX8A0V%i%?vtz0AL -z(hkwN0g%!O>{JW<*u5&IE=+gP;EU%`Q6_6|*F+j<*1l -z!=2=-Lm0Czu&{a*dZ+@8AnJ -ztxQJUIWZJllv^&9nw8;~+rw<4SZV6jv|FdV{{cxWJ;x-sJw*H!p2KXb6 -zLPuKEAS+y4{a6l4jT~y|K5+Q4j4z149nqA(XY*Vi0uG?bHRIDL5`UCIjn1=2i;PkC -zkhpbu)Gy3LnJ|J+*3cMsDQ9y)SdU99V~o^@z>T$yifiiFBoV@`lQ&&~{o#dkvrh|w -zM!X5MU#P+BV!QuyYn&5|p|;3inS2vnqAfv=bw~U=uIK0*A35BZNm~RwFD4f}y3>K$ -zBB`bv7K;eN)$s8RAgvF~aFN?Mc*dIm6WO2h$A|5UUFi_V+eA-xKR*$F&Uo%z{M7!k -z(|?>5<69!m^pCZ~$}OJzyjhNy4j*`#@XBt31oI(t9u)}+Q1Updds9-3amj$*+O{`l -zG{*Ph$W7v>ASChIz%@1ZeTP@`fF1^RwNBtd=DCZ7kED_wuoSBlW(d%1iX!DGijhRG -z?}1Q}XKdUr9m{RP6n1>e033d)@st&K9N=Ehc)RF?g&%^!zXZZzmyJu}RQqR}_|Lk` -zj_-Psm?C?NpX4a!Z%ofTv7lMxBVLm`d1P(jUmtTE^T+xHH)C&QPY!C>Sr&TY-yFUT -ze75Qw6gUJPiKqJlpMWF%qGxE_G~ie0wlQKr=kx0U2haMfUPN|38~MTCVzjNL5ga+~ -zC{WgL`ITTK?(Uv2LRwl}aT^pLv1{9dg75olNE_}G4CCDJ+`HB=)Bq%}N=iy*n)@59 -zEMS`fck?Qc31y&QoiV3!Vya%2zeErfmKKW(K}P@(K)K-5wC5-ifI!wZR8?(vb*p0v -zmWc4$1Tu)0UOIX{SIhu7i6PVSon=ay&AN>n=MRd}$ymIVp!Y{|d#thXAUtCv=EYZ=|=MswkF#B9T#0A=;mR%1QtDxZA?*^o{CMLcD -zKR)kAk->WLP{ibIJDkSXVa#(Ajl2lliLWpO^XcW#20C&d;~~)M4g~O&j*;3>&tHiG -zv~$fU4op)He7~g2qapum}ALiTgW$kk0 -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 -zPi=?;o)YtDN>pOVUL?+Nw+rUx;XPP-BxJ2 -z7Fa%jUtt>1Fzkn$9N0Q>iETb(VbJ>?Ro+hQh~-LN9yE3R47ynl_VxmZ&uh8_xw8rbQ1Ri7GJRf+OvUVbK~e8q;8RNss(QWkng6urQzFPvEj4nO=v4^z7Uc$lp9Ne+bSeck)aggnve;*fDml=1F$djRJEW5OV9tH`7gF -zKHC@xWJm$1kf}4%_q$+6^@)6A-}IsL&szP=LYI!)@Z$OJ?5TjB3*bo#E0tjx($&HzFd -zz)ODD?DYV5v+3<(IUFAIPF6q=9LW+;2=_RtmHVHam>0x4sd5SKu?!`%A8jklelf-V -z-CX=UA3&(Z=>XQ-KslOnr=8G4P+O(`_|e4dF2Zj$pY2Zx=ts(l$OX-|AD;J8m)gM|nF;vEC>d8J%9)s*U?n}CH`FtkZGtVuMVT}(fW -zVRlT#av%Qcm7FN+Uc|y@kWUDeQ8Ca}=@1=0*&UmmF+Oz~FXhw{AGPL1VP{yFl7KNd -zkWKrIFug&9Hxem!kX-GY_vp>c^Ot<9a<{Ob7kvT?m_w|Zw3Al_84!Tg(9V(dWu;r+0~?U -zCOT$+r{!G!g~+=rRPa(C@B@I;n7QaHzG%4D@xV#Q9=M6xB?%04PyO(ZnQkfOBDMSl@}VT|M@;FSEIQW-L^K} -zdPYx#IMsQAGH@IQLWEY69gkt(QmmV^rS0zt;D0V0ThY` -z|28sM`wFc$grFh2q|(}wMPUZ&qpvrTQ^A0z -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 -zw62^z8Q> -zLtZJn$I6vVX3lv8xg2zcyHM4isKIQV8sPsRW}?4tMDiN$s6jFakNtAL#Of617CfJH -z<)y|gKQqLOdzrdBp#{C~GaSd^vyoB}oJclY%WpoBf#!#(`B+uVF+Ho2&vvg7QQz)% -z*vD~k2Tw#u01o}c5K`~^FfoU?COTB?>OJ#5W*Lg5s^{-*Q-4pLKMQq|_Ivs}=KJ$= -zucbyv?9xj8z_a@ff@>NjD}(CXl+37F#{3i1ECF6$y#o{dxP3$;;|`nSZX964Q6H)Q@PdF#91D%Jh1^K3u+6$V1(D8iRTiDtNiT%eOtz8)JeUF+n -zTPumoe~E@)1=Q~Hkogys*V=~X8LxIUt|chUH+sWGg1k}Zof9?ZvkH^4o=>{-`lLXX -z1>!aY81H7hcg8*lf_tOLdZROLu*w8*<;{20*!J}dxl|wHJ1rYui%{k6+as -zJh#4@s1=n&5=1t3#&mXX#uwNYw4cmNKTQdK{3Y7zO~(I7i57UWi|^u3M8(Ahhtq7c -z<$O6!&${va@@f|-{mLvAMJCrt{qRg}?XV=c{|2$DH374KUje$@3o?DELw6?K86qz# -zg2(<#-d)$p12Qgysp=(!Me5=Wxj90vZK^^=o8vI(uGX<=ZbRSNGU>>t=QC>!&Jj~U -z_g>U9nz;-&i^k^BK(OJ@9s#SINZ=CYNkz~5- -z{?@XU0GW`Y@6$exOB@2Z(@suJ??-D4IQ>3$WPo(0-C~kK%8;xG6BUk>yGh$otIWch -z=k^JEP6Yn0u#h-duRjx$)9HEzXHlLa4*;^=}Y -zKJ+qvLU+0GUC_?^AP;;4us9W|@+(vC#H}dac8_cR$DwAk5Hxp|H_)ag;I@+&M@*WU -z@}{=&_EGO`UWn>zyLu$s4Hd6riB>OawN=E!8dmL(2z5{nnUYcLU?Cgk$yd1l7;l$0 -zJR6lSIT!gKS_oKOhPyuYEV3nRJb2oJriEkt^y*DK)v5j?KH(yHj^sMv^O{ztR-TQo -zm4A1I6eJLTEnVm($qM55(=3kLcBOhRe)-DYCksB}o$F}k{Z{_&B_ezjPQ-@XPs(v4 -zO@n(>lCq)i)zOVV2@L##v2AE3E1tf4qxZtgl(_^C&z6FkI&afT*K#~ThhcY{+1l+< -z(Tbf62jR`yjHKou#kT7yB9mW2f6U00`!j@(Kl37n_}V+R)WD!0*b{L2PR5ucdykjv -z41uOoUAyW4xce-8jfexvGHfl%0;f^cUNVWk;VzEEu^cnfFH_Q#xY8&|(iYG1+T8L6%md=^77db66l -z$UATbS%Ok{70J)j@Js26WZj5cbc-0|sr|cqklhKA7|;3_(-O87#JgSw%f-)^yS-A- -zTS$@8YvRkcfNhRQJVWuz@mZnNs;Xk<41@>-L}!0V2UXM{a@|UBJ=Ob-3umC)_Z>NE -z=eLtjo%zg#-(E|nI%7FUa(6w=Ong~$N=T?qSwaZpIsjaVqu7?LLD@2qI{p<|q%9iH -zdc0S>Y3~_%JCPVY{B4P+3=#Un{A2XFXc^}TEGZKrZkHB%f6IL~E?$LZVq6w1bgsTrl=Z581l2VIO>J^qJ9|?-k;J8YDfj2?~^D@^^u8GNx^VwtMz7kZsqam;} -zR+nGH0Q%@A9}u(Q=A7jo39bB({`TjiI{-MmiXc%6YdXQMvI6H?Ux7%E!+TUiu^*$y -zdx98&Fy$o;!ut#iK1=YT`X46Gl^~V$KieL=rATEI4)Up1u&6Qp*NN_*@$d9rSVc@Y -z$?^}HYHw>XZ^-P^V7`z6uik>{Rz(Q%QE -ze)b*a%l{qf`~@!JSM>K-Dj2;1VJB7UFqtfMcdWZvkzID!Jcf1vcmHc+6eOP(8~oC% -zT?MpJD8J=Qa%B~Iba(?}&d9u0%Y_a-yS6^Ad!qOWk#W|s!1Zgl;5;nw@o8V}4D#q;)EPozvwZNy6B_-n0O?d>ZS -zvo;vDQabqAizk)mGwq0ncXhu&MRpN1aVLKso1X$J_?pWZb@-4+cK86j;J~Y>7q(Bj_7ITH%n;_G7@3@KbjuF577D@Q!l+DXXUauYZ`76un0~P4!9w74rZ0vQ5{WPhl -zvpH%xHa6etE$0A%nFHoso9r@(>j+%!EqF)3#K%Qltw%#Trg5l;oK*aiyI|^5Uw42F -z)s5it4o~KT0ZA~WPq}pSo(+e&-tYMf%JC>Tm+LjiL6-OJMdyE^-ip?7COao#Pj7$9 -zkX@}60}%AKlMt1ba$b0ijJgQbR}Ey)RNk+ftL!9u*n>52#dqe#=B3+BsfwG&Ar&q8 -z7X~mi!+ROJcn9#l+DY!efhnJ@#T52zcG*eRmjBvX5ltP=e{6M}uRi%T>f{v(Zh{q6 -zpzu)5g(4&48R{8-;RBMT`*}GIsSN!;=m8gqHkG2jt(IQN>j-7`td}J{&2-)Tk8af8 -zXND6F>@1V9I2W~VxuBmM4z2lx*wJ8O)O8S@_rjN(xlQ-8665RB$z%{c?E&u9@!31I -zjf&zrgG5S-tjDfjfDc)A48V=cVM$zCP*MZQFfm!Qd+(VUj4`!m>hN`%8Jaw(X*Fx! -zdynz40m^IZybh4@fOAtp0#xojeAfU6m$$F!&o&qj~y&=KiETVM~R&8at>S#>ed4wW$=p -z#j}z&|8-^%@u2&w&Gc~QZu)t>zFq1z_Wc;Fdr+r7;~b`Q5rv1k8sB;i(;*(W>~b!8 -zv%44!Ed-PRKem51FY005kQ?CEiQIA>czycS)OT{_Z`B3-`(g5_PY#7-Dq{z3Sa;`O -zf0JQ1Y1+W9_E!V?jnOwOCs7!}?q4pQ -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 -zLA&qxGC*k1g6)F*Ojy7cl@pr1zUX3Q32tWb -zn=8nBdhfFXcwo+wGTe!Ra;Z-$M(ajfIt@fd$1u7!vu(ZzSxTByag&n}AYyXrcQ4lc -zsLmAtph`YPk@P_(3G+ETH4uZ_Zs2ag(Igz2_%+VE>Z}i;CR(JIocQB=xU?SD?!~E= -zA4%zx)db6Lx@2n16%=m&E-;x?%N>iBnqa#BYj^}3#4*x&0-_k!tL{u`l3`z7#hv9^ -zZO!+FX(>;*Y+H|>)cOMe-AIErrfq#Xmy5O8;mg-*UspoWK8f<12YD5*7b@=*N6lljE&G+hA8kH|ddOX<+Mj;Kt(329gYEa*xQ8kf6_vDaUpFI7Tyde -z@--tS-pi*kypUv*S9%;GUp;C)QLc`+3fHCksY(;R1x&NF2^~nWm#kPutB$`2d5X&O -z0_3R0!TfzuAsR%LWMTQnNT(@a=0C@o_<0CyOUW4Bv=_S42@vJJHqeBMhGyTqQd7t) -zxQI=5=1$RMPb{v%!)%1jRU^m^+WsVKsx)W2x`*P!Ne}nKp(QNkgj*P7)9*1M-#y4m -z5Rg3kGNKq^B~!R~w^+I6e6tkJDUEctktH*(OD}q{>Mn82l-iug=-cALxXe4g)B^8n -zD&uU+e>VPS3Sq2etbltRQ($jQDP3S8c8jtA`7T>f4XLTo=L(anZM}n0<6eg3Z|UK( -z!`*2GY;01gxuLdpl9LnEc$!O|7ME7=zPyg0)8|~Fs!}A>HhjbHBd9-G+48JWtn2a-1qQ$&PXCLzqP?HNb&X%8 -zTV*%sCe$tbj>ZFHb@O=n -ze~9FDWukMBDpXD~M`M@%%#RHmOn@RwK}IJ+#u?Dm51xu@_*9$S^`|^=-<0Nx0kyL< -z_Qzwg0b!oJZ@2WkZq*j5gv~iQrUyB4r7cC0{(yvWB+w2g>3sbrRy%_2#ckf9&^#d~ -z+ay7vG;10CW-Y1G`?Kutry?5h=i!W=b< -z3iG@?4By5X@}F==?n;kzgMil@E|TsQMk~lGZ;8 -z7d`46h%thWE2-apGB3;)qFM>Nsp0a560mYW -zL4^@$qv+j|mo@3DHE0z5+qA};lVTimfTjVI_xrkU80M5QMk!azZ~nI{)H^=YnLkq~ -zZ>I2K#S0dNZLj?|&@mPNQu>1PnXrLPFSWxvJCP`YwaLI=|8$?SRdNX=3_L`?*^o87 -z82=NR{~L=jH?_iVt6wFyD5q!GA_YtNOGF2(=utXlY2&i~PbRbF`t(Z0k>vO!s{gLj -z%Q?o!oCAP2EntD8gw~&1y+y=;;Hi<2$8(+Cvm@ri<{_my_|i!YPipiUp=G%KNxG0{ -z>|BIfTnc52{m3I=1Wac&W6W;n%+Q#uE+4vHA>YU`SonIohPoTRR0F1Eop)QN{ZUxi -zs9_ImHaIx$Pnf95o9JG&uSMo5EMPnM;k)wzgE)jZ@H%wW{ZbGiiGDeToF`8d8n{>h -z^bmIEHSAs_%8NPBlR{YcP9r4XdGOWiSGR5?}@WCuaQCh`18vQ4Q=kPSP^JB -z2j>1!D_ugjGk~yVBqW;38 -z=%H#?M^F-40$4_@pJ8*Axs*g*=V+~n;sX##^=C4Q#y0i$#dw@xQ2q$M@$!94Y+fiE -zf5LKd4ry4RiZAMYTXOsxYpGCP3JA-8xS62PNB6w3&R)qqa<;6GN^v!Kk0^b2wMLQs -zBUc+M@&!egg{zP!0V`4{`P|F+Ta1pn5MPTk<*PwNXn#C(f@ck&C(bE55d<7NnHcrj -z;3SsOGrhN|10xrzi2Y-${Md^+RBQ?K;PIKh1^~Q|Hb)`FbZ~r3d)t}gEvx_k1G6YZ?K9qYvocOAleAF;78U+2qNOO%$bv??7L8Hz;GdS&Gv0i+?Usr-=dod@ -zILG6c6`zh?eU+-h?B{yT_=dR=GDvvuw}BM -z-Spv?V(Hr0Fof7CLJG9z?qon -zOzAe`AwMzfeUcig-Xlwc!ijxh3yUoX_E?{ubgACkZmZ-)Z)@RXu=|4fuL3HVw|?wT -z=dep^V6}yD)%eeX?<6}PG~HO2!yba?5ybJ61s{WC;OEl_If?M>eqT43yQl)f-K#5u -zCPTe7)nJBkDXgusBUE@#sFx7KiNc7HJiV3$9Y&r4DwT*Z-~K$)JN+zriCH15;a8Fo$;QHN{a??HzHf(^iLOZLz -z=WKLttiIU8iJyfdX@9-i+>g`WfDo -z$){%Awu2v>E|lQ{O`alS+MnAJyuI>^pJwquG9C(*t>M&|H7-Lb{kj4Sifl|vh8-mr -z$w55KliaFPl?)&FAmd5ZE!N3&UWZxi26ueSdNY_YK -zWXsWkaZy%v2mWdbe>OH0kG%4s*mVFd119>^h{;W~&zH8%oYZxv^%;n~ut4Vp=oy@w -z5kYL{xTFv22OHOH5mq0~!%1qZQwgkpVm{xG2?{3VGCD;2y&|W8#rbI5vM9rU^09?4 -zo+wfsu-%U-FNpc1h)t~^4!(eWV7-u$8M0`9zA_WQL~fw*wpLd(ADFU+wqGv{twGbDEv=4iW!k_? -zJb9YeQK3#Rd83?RACq#Fc>X44hLFWybww2kWZ82gg&tB+h45Qd)u2G(cKhj+1k){C -zQ!1pra_7KoVamG+tse&;8{bc@1SN1D9>FEkre-js)>pM}l`@8q_8Hjl4w%lrhpd8j -ziLGquTVmk94B}QDpT$R3_ZX6u7E4Jc%aGzim_vSIG^(q~->J}!V_vy`;}t{bpwMM4v8#Z_ -zx=FecJW?o6Y;jXl^-mE?a7k>E!>d<;^Sqbig;zy4Ndo4tqKk8w1P>ZUznmspL7zjM -z>O{$}9s`?+1M>NZ{DtnLvE)oa*y~Ix;!%00dkfw%fbx$Sn;p;UcF&vzQ}0?b2jGv; -zP-ClVa%7NFo8srdMfL6~9MPC6;JiQi2?2yM^n|DamNjmYyCG>M@*xelQo0qR@B}@F -z^#Q9Zz4>q3Ll*g}xA5AXNTy@vLppzxm*P@tbl$BoiAtyvB*%Pf-xq3~STCj!nQisN -zhQ(niVk)&Tc?F@SYuf&sLXj`xVGFC{bG)vwkQc4bbCBQb@cEp`Pj0J7p6AoA=c|^! -zl@uZkyP|!${q---4-K^6OUopxdN(|2x|v)n#OHT4k8!=+0hl#l&}8$@Xb`*$t-}KI -zU+!(K+T*`ADkv`uITQYFJ_>IF%4s5D)yO4aj5~@#`nzu*i?MQ^IqzWK0kS+x$EdDq -zK)YHNKde$apR+_5bcV~9NK5_Ba(6ZiZ{6f`tABf`L=H-_Hg;{zW~;XM{!-0)tT=*> -z_N#+O4-QZt2__fibzt$)bZo||!f>8>T2e?^?;(LqFWf12T283;G1%@OT{5`XDjmnn -z!c}sfp7Xdw%Sj@L7tFtlTQ9YJ2`4&IyI@nrf(-7`Z95PkS)!wXxj`P1kiW`uYJLo# -zB*vG+ay*6}^QM58(*9;dppX`y7&rL9ax(gB?q$zw0ZCw)V8 -zZzGOJ6!YrH@G-!ZL0jxZ=?zhD7l2-$56xYc -zVQzEqJ#NwT-u_?51=m%O+u6u|$efE5o| -zW9+`qWuw83!>B=vt@C3rPR>th^I*T=gZQ!-%Pfcxt4X1sw`| -zcr_9`&*pUF3>BeI?c2)Ilzz(@cS%4&3Aopm(4+Yf-drf*e}%GF$;aQLM-hb$H)9zB$`N -z1Cc7cz08F_t`R@^0J`RJK_rBecrH#iK;-*L*yX7ZwZD^I9xP&w+-g`NBEQgFy5jL$ -z0IVM{A3Y^b`T401!<^27=-~|a!z)GQ%~*!^e~VnHF7VSh!u5dcZ~WWF_2%%KIbSKO -zF!^sE2jA`;VTlDby74Rww=^tX%+%~njE@*$-slK|nY{en?z*Ts#K_PDWM)H4eP%|a -zFmF-?lR}T^_=3govq*}FCzuvP%e{vM!GMHUX0WH;s6G&Bh7i2twS1KKA -zyUTCbTJKjd(9?Fx67rF|(eNUuILjY|ai1yKxak(I)^J^sv@NV1*m)f4GURnyQckBH|sZ}q0#_R4)nn|(c -zGZvgt+x@$wIA#wcj@G>?6I0$SDA1su%C|o)NFIdja1GrAT0Ct80oZCq0>Po6-`UQz -zX@$eW5D>As^8T=N7wdkle&P-A#%3n2&Bfo6Zj|P42|(t5q48oMERHn^fy6l* -z-f!e8UQa%b%BcY~0AQO7&iFwGwb~37NfuTV#NXQy$jWZ1Vp}BoeNT1(I1fM|f6uki -z{-Ow7Xr -z?~v1{1>0f#3qS;^T6zZWRwULjb#45BcT(&pBLoj=w1v!jRoFF80s0egg#mB7_}Hm5 -zMs%9+175{fKZod~oMX;WomGVuSRCQ~TCK~*ILl(2sLD#MbOB19jAu*sQZTFEZt=e- -zYsbHlLR$VYt7=-&Q8ehrwGPW-+hG-(M)y$4;t# -z*pDG3y62_BU(mO4bloY3&jagALI9&-u)YN2l4b`reQM7P27qM2ABdhg~;0#mLg@^zdH!xOdK=v)-? -zNFuE2Xz_<=e4!AJ*&lBr;IHTVUHD7xc{S1x`gubG5qq5Hi6J^xA4=?H)h? -z+Nz*@0azmdOX>^a=d-$T)oPk^NZHF|YKzzfXv!%TExK?cZlevhL!35j{fsQ*I&{yO -zc#ud8Be|11Ce=hI@pqq45ybBxpppA<=W6%tpT4+oK9-LoLiMm^XZLy0hq4>feo -z1A{dcR||_s1$e2e%&%#gs}!Qb>2j8l>R|}G9KLo5{*3EmCktP -z(c9+>Axa*hed9g%jWq3iS-(tQ-0O!Ixzxb?h1|X4vXm5-pFt>XZn2cbHXQPS%(ByO -zR%ri{%F3+UdmLbV1KR8W5O{3ZxT`$Ni&&-ID2?|YRzG_QZ~A@V`L6&{QoiyMr4!(- -z0M4PTx&r>Y+^C)nMW>3Wx2%fE^hZAes7a0;mK$NdvG?=ylo;QEj?Wo?biZHTdIR7G -zkWdQs`pm(jSmZ&m-HSeT>3y9tq(iA0Aqe{o4nQm!RcXbi`1V~(=q`Z=lj_a>C6&Kn -zQQ*S8sK?F@X3|AvY?vj_p$fbMJIPVP36@h_j^7Pqv|BoGjo6nyQkw+Wk9zHkANm0eAQ -zfg|}!SQf3Y%_j-B&2iJ;2gDi00kCjs%;?6KU=_L+&}CP#GGRIon^z-9*^ODdZUglF -z+sO-(w^!;T)v!E)^~m;syJ2+yS9vek938>}nR7pP6>_q3I1M5D@cL)K6OKcy=Wi(r -zeTf{dB)2#QkW7?K)nr;HW>FrS=>Yp>i}k$HR@M`imsj&W|FO`m=luir0&nP;-JR2g -zeL1*T0z+yjm9O@ngS>P&rtk8quQ{<(iLTxV*ZBzZ{(*pS4mR3qE3J{Wfuvk@i$fu# -zgoUNBvv#M=xI@?mZWdNfopbq2c=dl1q -z04wr2q^uzxpXj2qNkFthQ0me11&))G6<;qXQHaPmy;+eY6d$t6LfR=*h+I0Bea|i>P!`x9OTNWSN -z -zfky!|QjtO|cRy09gyc7qnQ;U;5ov~qRR3y+YgLHnGKx6FW$0dRGJhuyC9}7OCxTY9 -zbGJNWgrj1_=!HF)QnK<%)ZDNXqYdMp*3M#aQ^1yc9?&E-KT`osgemu6d*s1~$#|Y@ -z2)&jue9bmx82bV`)|lL4{V0(N%m7vXFtgJRRP(#%agM;ij{a=hDd5CTMcyDh8C`=Y -zZfUUgsg*9i+J$2`s-u>Li>zwseju{j;>QpRfTUF8R98LOAbfx72$BNi9kE=$m!XsE -z;@wKc!DIX8y~+Pm&30gW&+}h;PKoA=69lXEHU|pGb~1b5pL04C;m1;W -zrFSGpAbzBqv7FqIW -z8_z52+;6|W_kC8w@{_a|b4b_P8MY`(L)N8M{X{-y5KP6-v<71o+_#Iy&Ot8~xSi0- -zj+r2z?l%luk_bqIRlywi(Tk)ApU>=mD@Cr9QQBh61KmIeEiu$3!LQYh!}d#w6-=@Z -zJfnOO7ykVBXU9hl74Wuw&Z<(w%P};;~eELG5US!&T!?--f{ -z#IcRmMoUlv@T0BKGOBX}eRw@Y`@-II@ytM;2QY}X5q4_^;hp!s8bTS{qOq2G5F2*i -zSRqiqftI&^Vf;y&sl$Y}^f5Q^Ew4?|eRSA3A#M*S73)S9=>n%(1qo*%ANlTcCVG$8 -z!tmb?l@9DbL%casFGpWv-pIQ!)Nha_brdINc91fTmmKqUJ9octx~r1_J7+#WAF(ge -zB5DlBU+C$xPpv{OKHjzfOr2=KkMTscW^*MeLWH`7VL_vK)C+fDP`#G6FT9-Cl2VKR -z1Vf6E?`WNtCVLhPLP?xKWR?DGB!{(~AfI3XQhbrpOec|N_OZ^#@RSK1DF>lB&D~Ss|CR=so^gszhgQ$+ -zS~*TY)@EoBC4oxoZ&ji4F?=ieW_?UO-0f;B7-47qLQyf|xq@t$P6IFH45{1qcG-M2 -zF4Q-b^X%H-^!b<_QiP-U6gcA-AYcXDa`^`xmCS9!JBXgy>?l;txf&R7$^clMv9OsQ -z*-4DXH-mvh*Ctb+_mnqn)bK9`{Df(b77Eq-IExHg$Bm}BH=5E3V;}@DQ2#MuJXP_` -zUxpds$Xs7s_r56AljmmjB0rQzyeB<|;J`~hdREIjA1CGQf2KU6v_p7SYgL(3ZH9H{ -zIbGl+|6(jGbKLotM7ECqlqrI^T@aB&7vP6$ -zEuAb?wCGi&8nKbvRDY5nYB$;E(g;lbA5T{u5JmfSL6Gi{knV1zyQEV(rJJQ&UZe!1 -zrBh%L5s;7+q`SMMySu?}*yZ>Ay|XjV%v1Nd=iGBLuzo$^$WIGvum=7Y{(EnhyARxv -za}DN_cUTvALw=8cBDBeSYi*Jwp{vmpugcvw=Gl~bgl)d&B4~1UgM;>m*_2ZBAg71R -zaGXl<{y;&Gsn6&yOKYB6c!~%tmRm^BW7PddMWjH0F&pM&ytf;`c8}@^T-L%*a&>xHY#j -z!Tr<<)GRnPae!KN`UFG|-i{R*Cr -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 -z_CScZy -z3N?KYRmyZ0P*+o>U0WCB!L5cO-XMQ=6HMLX+R){Bp^#nNHUuB{807!-*@^cj=I -zYIlO(LRwWu6I}e~(&nvK=&E(7-}M!It*64yFyaC!yxCC?$)Y%=)O0NS5gxfhMjZtKv@GzNu_ -zyUvtuPhqyv*Alu4-9l;c!Dl`Fca1zNaTclFn&es4RRm)M$z15&Ki--k{iG)Whvdn_ -z$3glJk6&H_bx)V7)I^~Tc0@phLt@!bMZ|w4?U8+B;32#(45~0NUL32Zrmh-;D4N+W -zE26*MgM=mwp5#+~fG{N_Spx>#JR8#(7!YXau37+Xuw#2~G417h!@f6=(bgji|I&2j@$pr)TZ^M+$VgQTI1C&ouJY_?1qbdl&z?K*u6{vDi9CSrOj1?_G8Y -zbq7J?#&2`5P|fQn2MkY|e@eu=QNoOb)F@g5RQE1eY}eXQ;rx-!i;L8Fjv&Kb&P*ov -zR8<%*b0lx{|5Uk_f7ynrK)SY)>@$kU-%Eg^Wms*bD(pLZ@s~UF3d#^U9HS%?*(%B@ -z(?VZV;(3u8jxLOnXgP)u;nGrlb_^Z5IJ1iiLmuvhDxfdB(#fTbZ3nhZd(fX;V?va% -z!foFxx)S#C8+5<;z@wogE4I0g_!uIF@dH2j51sVw1ti(<87?@y#-tE)25oAWQz?yT -z2d2U@7tVLVd)I7QwX@7RBF%Dd*$+jM|5_WGW1ZH+TGI5~k+xh=Uok(6Y(xAbNq?oj -zG3Zy51|2zD|AbVojWaE(xp&A5eP0Y3B0jLQk=8l;!rb&u;yDmXi-HFn#-Gk&+=v}U -zv8PtMC1k9EZXFF6XE!`iP8;Huku^Ftc@QN5YH9`u$&2=gHM>nA~JrK|r&W(KzmMTI3#}cG=YHw!YU6oB5pvZJM()Sj*~W#z;;3Tedn|U87y++_Q$Fmj88- -z9XHB3G2l; -z6|DMSH;xbSD{rs->8yPc+5<{mS>y};CF|NS!E(CXVJ9u~d^qJ7L+pSygYSZ71ZmgS -z_eZtGNb;e9VI~5PGUcB+KBgH@Pbs__=n_2n-$UL^Kq+XO)@cCL5pl>SqBWSFU9E -zuF$s%vsuvM%!w1D(Q(7=ZhDIk1W#YFmG63YxJQ)mdHuxlry0>T>*1|gSUuX+#Lwgp -zZ(#OvWc|dEvi*vn$5DQW6bVXd5?;~*~v)5AMQ*0K}FrUwHq^}8Cl_dtt*a-zY$+@gP%}r9db#z)62Ni2E6?3n7mPk@ -zw3$g0Pol`Ey_QW;GE|YkH7#QsJKD`fbM<6e0d$lOon8=JWTw`+9EncGYMGkV7=y=k -za#DQ?oM8Q_-gEOTWv}kc-Yf9ih5kPFuIQBS8zq@mRPi~a?4-QGgqE^N=WVWIJ(~Xk -zCHSZu(~wqVa@9m8+A5!`pQlk;beVAEpEwiG=-rhAsN^2y+jpso9j>4#0IJc|ud!=kE4?N+&!JCqAon&q*#d!K}&hF>09@CnQZZrSID6Uy$Fgz!!4N5hm^pOZ1&Ynqx!$E6D>&P9yU$oE3=iv0}5fjmcH=ptMMj$kw{96X}nJ2xbCj5&$6BaFMUm+Kyb<2mNsZ -zQ%Fft)wwBSL_i_%gEH#@(z1q`d<)-Q#co`3CSM>Sx~v|aeW}yu7EI9hE6W1<#KyLq -z?`=iC>8@M|&cUhvF=+~S9A-ysQmz|S&oR$oIKVtr8sq$u{vtQGepMszs1e<%1tEm(Jk(dJpt#amA;_T+6o -zTnT-@RJb-0zd;-CzPdCQULOtp7uFSS03e2ZCXXHYX$+}DQ-im=Q#vB)mC;SoV3$iiIr4@mQmnR_(A|2^2Yg=W2f%Ee|*BwaD^w8n}=W-zv)D5G({vDR8q -zcLvaNO8>9cB5>Pr -z+`T1LGXQb8RjaupBr%0Y)1fhxf;|~O{7tJy(LvX?ok8prj9nrlp`q%RtlxUAm_EJK -zAi=pqIrERhc4&VcmU`ryYu7@M#AlT&%QP9BdG -zYX6GC&}OvdF9PcgUy9yv*VLEy(_8*sjf|4c##y8Ky63%RO8~j-#wvjsut|RK4^^1c -zBNH{sGZ+g_=cXu&kosPwQzh$!fi!_4aIHiVyw0teZLMANA$3$9)ozIR2tFxEbLp&% -zy}B&#lE)H`MNYeOTvUYb-1z7=;r$$z`&4lHUYZ?C5^W+j>}dYf^l=oD?+-Y5F^nZa -z1QkspoWQNQ&j02CEGvsIR^*TRA{O@j?Fxv@$TOj$sF1xL>pUqy7+@U&@iTuu2J%3? -z+W@oN5QUw`Z5GsTQ{4d^E#l;-r4&!>faPrb-7iVICn&GGxSK%g4qC8yVj4MMf07iG -zLmrd3&zOb^$a82u*_o^djpT-KN8++wIJ}Fc%llWX9xtHK#~hB=eO~YcwtqaZV)6#= -z`+A_Ck#6=%OC!6gThEe!_ENx!;3oieKgPgGDrm)RGt^>@hZy4rnl37eUQAq^^=bY? -zI|Gn*WfH93|9lT&&JxttioKpZp8nU_>a2sK=rVND=;~S^PAA5*dopHVy7UT>cG2 -zT!5BH8kOH=5*pf4!2oQVzcOg&M{%| -zo4?ph2fA(id`;e~XdO(aQ-sKhhZ_3=7awNz;+g6}pz+4=DDS^*f -z*5EkJ4{zZe=0P;jDUKvqtc}J@rS|T67`Q{~KXhy?FpdZ?A|O%uR -z^HzKQzOd7|GQeB)DtZJmc|)+2Dnd1k2X@IAk?Am*!PO`SY^mY6qOT4kn`ySiSfM-% -zf^+xK*23V1+@dtz={UrJ>)CMCH&|fH+wM1+0BHaiE4ws_rcx|B(m;jF^w@MTr*CE! -zysN?X4kTIFdeO(qCpSV(1y=I|Nr%|cU3b$oSnwV~IRpYXo#s2StJ1px=u6jzbVGsh -zi2RkLag`;7Yf7B|CU{OE_W+srW*!%_xzQdbijF82V|kM3CL5%^T1RoTP9TMRBiFI3 -zzUK4UuvpF1yyLBZ_xxKxMmBB$-$0#2O?0|WbI)2;zRGkNNOBSY91+8{F|*vbchVC& -zOIAET7aE2b6n+{u_S^yw1JtSndf(Ep??~JC`k{1YAVxMc4#J0seObZvh3Z3u^qX{> -z8LFcPHO84lJ0R%KjA0myuccp1DJ{X>hJqhv@dTjp+-D)!As|TYh%5gww6R$tH#Z^> -zoms%Fpa&>=sw;jw^)Sa>fwDM^MQAlWIByA5<>h^>@n54NoSI4MgH=x`iwfKzqw8l} -zew2*bxqoMiHiMp;e+`9+vxIKo-suI6q8N5k()@R5LLx#jHW?*7Qx`@J2dRV&5x%S_ -z9ucv(E&#MnUz_DyVvh>lWUWG*`Co7DMWwzjCBJSPY%AY<%m7^s^P~{%+2UMz0dn49`*5t1neOTYANP!3`oX#ha=o!Swtoyjt1AluOfc&u<=qpI}l3#>&Gq#y{DTP{TVBmfyH2Ljg@)73- -z)hT#xFYSFXYPP*B#+{QwvI@(cwlFQv;VYy$Sjk>|6nZ^ok2>g078fpDck_xqj -zKEbT0rwQ(k2EEybp>>e~#GyJKI4LnPn*IAhy& -z3)(a13?6jSy(*RIs9uxY@|nf`L|A89VLYP22}8j8z83Ut=iq#kM$q-YO?i>tVhsFS -z(4^*x$R{|-<85<6b?8kDX%qR>B=eX+`KHXPqrcV-|NYz}H(GmY0|3gT112EdY)Q;X -zIRf(TMvABXLWmttqFlgfcAE%aC0$a22n|@(`?>8_m)(fQNo#;}( -z-dF`YbtZgVK+m#PwC{+()AJf<7#O -zC@|qfGq#3r^0Oc%fa*KjREPFcWh#W1x;9a#*7Q80zST`T1U%v`V?~TTpWdS)PFn=- -zKqU^MsC9zQG@L0vXkPz<&tGpElkYl27Z}0|LyUFXg3$f1H5y5ZLlNS5@@+>j66n&@ -zg_Q|0&<+`Bw73KL5bNB<;cu#;77X7UTyf`}QrPmaMMDFH3JH@nio6xL?pL3JePAef -zHPO5(7!dTGU}FF%Y~StgBiV$m-W56mj{!QVrzA`=V(06hA&P7#(MaZ9LOl!YIW36 -zy(d$W|3X`OIPBwze#Zr^O+Qg5fqb2!KAH8WSYUpyZ{`8tqCE3VoWeXH2gJjnnZf++ -z!&2^8IAEUuusZ7nvhRnhMR5+FEiytO20eKuX=0}kC}#@p^Zx6^R&i!XsBq5o+T -z-lA}Q>2{Chl8g!Ac?XJRTAcF}PZx+DTL0prf_>XexO$ybxOB?ZLYzmwaQ~M&#G8iH -z2w+)&>+%uo6ee -z*6wr+W_`Hgy-IFre(sJhUjt+gpah^yg@o@rziaI(v7DmDX{4OiB-t4PGv3P|-wOL^ -z3AeBnmdPE%Tb~{Z=x@%$oYCpPle)NQr}iUpdUj`^RJejrKEL?{qbBQB=HCyC4O#Nu -z*5d2DRMtRu8DePB)keIIu0kV-Y)^#K$Yx$LL17`)&3LK~0JsEz2}Ykk<`@%QQe$9A -zi{97%38nXuT`V^H1{~~=V5N@AYt_?2;=-q%e5}cu4JC&Js~;ALSHjvUf-O7U))PBgQ)8M?c9PrtP3*3%2)>8Y|@jOs5hnUMR5$xQNp99^XR+ -ze7_?i4!kW|?8DbP$>npF6nBsW!ORv97x^rP;cl|V<`$ei(c|!7Klb$X-!Z_V4#OvV -zN6K3Wi=9PJQ}dC3F1Y)q623?1)7CD>p1-XRpwD -zYX&{wstXR#a49NfdGI#f+1ebt(g)PEr7`PJWki%I?~e6u@M8wN$*oDip=lO!9_z^f -zf~qtY{_QQFjfC=>aa7#Aa-#bCuk8dqWB9>3*XrBV8=(lV^0Tg9r8FNf?f@=5Ij5U{ -znL4n>iWe3~34+C9cl(W+128x} -zOggVYQXAW-82>~KO=!R2+K_q7qY)4o2Wnoenw8cJc3l{X+c}da%wl!0&jmc{_Apqt -z$t^ycbixvFesQyuWtZ^DGYS^9{_F*SPftrtv`{q->h=xZ*7&l}jF-^c3`Y7#koFRX -z=qATCF+a6_fQyhUWX8tPCzLe}3-c1x|0Mq=*GL13g##TCwyb^j&dR~QN24@pD4UI{ -zfO11DS}Bdg2a?JB+`r#l&PZK~_!_-qg?sF5al<3;XKjQOr3UM#W2A$;>Z`f#lt9c0 -zQx{lki+^v2@ou*qE>cu@SfA)F=wO9;*TE(0>iHw?U4_gW1@{D4TQ#Zj)TRHW&rl<) -z-`TkByi=+RQ8RL?XK5YQojJvdZTZuq_zz71$}(ZD5Vyj+0|m2ZA`3dKs4d*z0oyVJ -zaWYIWtv#3`<&I>?3bNJ7Q2d#6k*;L&@-tRah~1+el;Bf0aqk$5ga7fz^30a|*@fu9 -z_8C4PX8|B6_>O3)WDWgI8E -zq@Qq^oR!4UPe#9PWA4I4TXN>5TIYB*PYC1)???$amTe6PDjwKaruS`=Cj~Ngjy)>+vrmkq-}NCbnii_G{fAxBUO1q -z3X(M827AaurvqeT*)fsH-Stp%|0^B?%307Hxn|69FGYC(9U={qyWBW0R2S;{=eaSv -zND1lN>i&vzV@ykvKY -z(t!KQ_ql@;N-R%=6kw}M9i@96&7)tG@)G^)>=yyv6B{6s1U9iXe5TF2PvFz>y5#;S -z)n6G7-p@5S#@c_C%U;crq&?=FbG?#IV~WDh!g+j5_fmRJEtCff3hZs|y~#rKAyyDO -zXm+pkqeFZaCVDTdkV`$}X6!2}0AhiYj4HvX-6A`pQQX27%-bg0{3pvlWHill2sKGL -zveJ5EnsS({_1=o+f%qzwmno_uNc&!pDsFs$kqEM#{YFtB>`2Ag;^dkMX-7BLtjqc> -z8rV%%m^NL{R+{nb*`X4f+^o^qf>FOvzwECdS&5+Bl5NC7C>y*u$NS7Cl2{o&o;Hp9 -zv%K-{64}0L2Bt*MLIe_Ic-P7~i_~zIVw1&v5_qX!+bsI);+eB@FlN$);D5aqHs#Rc -z88gpeK`{4v@Z59(9Wn?Pk46R4+=WQ~GF^Mam)b7~ffGaiA<*wL|6mjNhbot-|153b -zu(FWVPY#OJL9GBs2^iMC+-{S*)tXtrLYxc>c2A2r56d;(DPySfu -z!F#`hNU7h=re1%3Zw$5mDg{;}^368x3&FPsJ%6EGoc8FcY|{O{x9Kqdv#cGJO+l{vTt2pl&BJy*xsH7QU%+;g|GkJ(*~m9ssrghMo+m}9 -zCUu_dcAqE{0jXhuW&14!}JA+ReWyPoKXFmbI`X{9RLb;;XxOUgkS?RBBm -zkgO<)mcZGycWxLi?=2B&g%ZDOJLFjYykfuoffZDC)XEVsKyZOC&!Pw;?@mGr- -z)7Ur2MU7BO1XAR{CK0woOz_0rE -z=4!1j-edT4k-TSW@?Kq1RiM~KH?S{{_J*>1Jsfu$i9skKb%Wnr8YfD=QE8g^aLbG^ -zD+(nAoT@|78EkCH%lca@S-umt5@9!bX@cL9fR-Lqc!512YqWGAn*ecQFB&|b9MG9B -zg&P|K`H~tNC;I{Ngc!e+c)BH}VnQQTdQP?(;639fRcsi~V9tPD7uY!XL{QuecnaM= -zS>f#HCtMnuarU4Z?|Q8AA$@@AQ|Me{g;L7yOmt487l@rve4**q;;Jn88G^6JMY67A -za|ng{^wie5O+#aSjNC$PLQ9k$xDvJ^SQsh)PVRU%7h*dZ@kIzkq-MSAyBjB}z -z6FC@yx3~T0?tN%ep=+ -z(Xrq_@eo7PR|`1hZ_OW%iX9_qAkm7QtbmxvW>M^3x=B9TTdLqtuWv*fEg!Ho{Qz+Y -zUXVBzmh<|4_~A-RIx~_2(aya}ZYl9}jw1UWrg`MRoBwfph|pCI>X0NRweJU^LJcPp -zA|5nn5~3Fy4BJC?{UnYY;u9&7ff?m5!9$g7#sdy`TdJJjKM;Li81!P;rciqn3O5ugR#rz -zXCxPKc(b{(^KX2HEE^$0s^WUi5F7?>bYo$&@zQA(u*|;CgLHMsz_u)r`q!A>%P-r1 -zQt?p_UHzBCdh?~{oaFW_iB-I$Vs`bXB4mDqc)~vc-@2Q=Cqp!xRpCixh-b{y`gS(fs%UjwE|}_brW= -z=cuIOwH3?sW5s+)hel`7heiQ*8zRb(Miy9D6`9o!a>;XlZ$+FT%iD{JvJLX#q90&b -z;S#|maG@Kw;jQUc5$ChP%1A}%;8 -zP5L#7BHB7f7De}7>%mH#7|p@HI!A<7z&?iPNw>eHx~9~VCF$uVCxv#|2wb04aOG^6 -zrU)yy$p$J%yo5-pB36`}p;SP+^(bJvF88FjObnA*EJvD!?$%uI2e#}un=A*kM=&#q -zKA_CyU%kVu>nK7R%uw80L;*^pz}YoyMW*~C)MVZ8U3ZU}b@?B|w&KG)0g-`qq4KY5 -zGeZY)>s9xxh$+bc6R0|O$``D-Qly3_iv5@r`L0^la-lc_h9qvd>n{)RLT_*%mpV~8 -zi4fGgf{RuzXIrO!6!l5^^y4UM@_-)NQS^K#s)miCgdO#t%#awZE2zDYNxgecDbu8{ -zUkG@S>JyYNlT+g&A5|I%j`GdMi~}Y}Ao1%=0;N}4;0^C{O_7;i2KgCEc8{ -zWk)S-YJj;Z390u1d>$8A!QP>S-Mt%?h0L~l(h}V8S@CQ9IX~?(-AJ9z1>Qaj5{H!R -zcyexRbFKXvK=rB>PF(rpB+BQkBOhOsUM)v_fVk!a_@K1G#(xNkesJX*2r!aznCU16mwyMzb2_HL -z4->~CB=Q~6ntf9mh)*!P9VAe~LCC)pDq(6>lp+ka4*+vB?P#1j-G`I%oJ>}lg5r#80sOAcYZpcx$U}WE0tU -zmt^D`-YSR)AV-(_RV!;(KmzCEx7s4ZqfE-_F`uoYxaX=sxK4C$gcfq;KFRrw2~H7h -z{M>T=p9m3(%aH%IMc3Niw*B{^wzoUT{oPKXim@bVukR@T>vQP;gX+k&Bm;pX5QccE -zU(5O-!Z0x&RbZutF!N&YzC<*PKIcYBL5ZG5Os)m41CErS=qnEXUT#U2oQ>&QB4H*u -z^pAph|59gk%0jcDJ{mtXC-Css@9LVmw1S1a+gSaiDTh_l&O_UuoujDyDqPYiiJTPl -zd{H9DtB|<`!(bJ~>bUYFlB$YsMoMF!3iJSW&jh#h4zsk&@Ub?L?2fmd*nFQgvvDCv -zkrWa)t_3aA61g7bQ!yA!Td&By$)rH0^r=!$Zv7(zZ&`8-u|wJnq7aSbJpxJZ1SP4D -z9q^OZXH}pvQ=*bue?lMG&ez|7sNw=V(^QFYrdtATa#f8QCAUw9uT@B@c$`#8m&JP* -zAaTZLI4W3TDQ2oS?PZ;7>8`44-nn)`s@GJ(T=Z0L#8z#ytVg!@9agx+o@yhlFp%<+ -znzFJh$mlpTXKDHGvZ?Mz?|UQJ3qYv%zD|xM^q=JhNwA7?L#v3|`FExZ4^0!)z9xBe -zR5Xy&B`t%klAruj0Q+<}@`H;B#1z%x4pHk9!%gHgR^(<5rthD_BHN=;Jj7YrM}vK$ -zpkQ(=)p5E_Q1aqW;Z42ROOKs;QeULVY8E2tIWR!oAr_!mCf6G+{txZU(3b~p>*oL# -z(`p9)^<6H@z_ERlZ%)6Jg1|ZcR``!%tIo;oj -zk98oIec3Vw|75Q#tKlZ!)5LavC_e6o_+tWrOl@O!xF6G;u)Q~+9q|Pw8{^re*_0o4 -z?zh|`YB*;$#aHqZqFnM%%6FRa**RH4bz2WdDxE(s+V6A1`Ifq^ofiSTFAa_=pT1~C -zV=|ws)*x_@Z@gwxQw*dJiX9sCB!#>P(i;>0DaMp#>AEi20=`bh4Haegl+Fcv1jRp~ -zrEJCFX32ey5J!I%*M5jQ$x4vg7xH2*v{!bU3VR-A4tO2N`8WM@Qw9ebQa@qSHHYI9xj@EzSkl`2G) -zR@*(e-2D^a4;ltqSpPas>Um>U2jfn5yOV*7eNv%M+u(RuKQY>~|1hEVC~#IOSMgEv -zb*vNQ`<#yDm%sh>Er&q`+Tk8zx~K&bS3)q)`QOlgEi00mdouJtxfmW4a!XjJRe2G -zq!^{vVZ4LGsISKf@jvK8Kcg7FsEpM+Wv#o4VMo$K6qCMWP-yU@xznbIBcyr8F9$;@ -z>eAw*(cYvzq2)!>ug6-?Oj53DD^uWo6RqN_-zs#BY3Kbd!-o*|RuX -zRFcxcJ<#@!v8ME|!Avs5WPTE1?I*x(x`|&*ObSmMlsO4Wo#o-ht%iOmbTthtJuREG -zqv%SD?}-i*zt2sx0#l(!!Sdi{%|j~TgotVVMJ@X>DsP1XO7nU78YuhQPfO;|^}0;@ -z&~@aHWau?Qx1EdSQklSqYPt1836TTH%P?%~N-0&;aFe;27GJyUtPI}OV7T2_ALlD! -zKEWP96?=F#yrd(_f?MlwVL7e$h=G(X`6cqo5d?fU9V{(GUn|b`tOyl6FCVzX{)aYN -zdh*AQlnji2mAr7_b~XWA2(Ua(n;uaz|J?2~r`AGfGA{ZDZ)abOQyiA(U5TqcKK42P -z(YS`{TGaYh(+}L~Ju>E~e|)!{q8zVz$iqwR1^ftrCa+vXjWIMCxXU^1Ug5RWACUir -zY~>5q?kvd$s+t8QTw`Q;nqSvsUjFJc-$+zz%FaC!zR;|)ZiiTQP`z4K8b|V>Bxx8d -zyiH5Yn>YMR`tJ>t{&>j!odlIsGTV%Qv(d>h+ZSs?l;hPtr1h1qAGBq{Yb1-#OrnM0 -zEgRVoCFY;1rGRpf#DOkfW(6f81U@+&31V8!$NbiC57&>G0C6!J2?`7UoaJ -z9OMdsXT~i9?`dp>SQ^J@rA#6I@^e9zPlA}aAW_v{O`(oD;FGQfEk}b>X2)~n{nvv( -zGW2KB8d(js`@Z;!nCb-tADclvZ!`zM@iTJV%HJ5Rga!X8Kv!cOE`)r=T2oxQaZB2k -znJQ_SS*Fx>7KyQ-2)B@2RzR-c>DI?7AKY(uKts75y>S-@;&YW0i;4UkWmgW|0L26V -zC=2*o%!V3V&*KS_c_qTx#pQVZW4%$E4ZVWhJRNg?=AlT(;xu=nHvf@Qc-yr&v3JFB -z1mTo$ewl!+7U?YtEE9BNEJ7@&HaQc1pYKVzH+oaOQ1mMRs4)Oe3O`4O!VDsEo0ecw -z%7$$ii$sn_-`y}c#VlZgdmucXwjIl|<|1VSu;DFVOr&n3t0*a5s9Zjfwgt;^|8vRI -zMn%bmIb#pNq}b+i7M -z0uLIp4QsiE(tloxe*moNLTN>Xc=+FbMOBZW#cE(+m+|B@bEBy&azuq4!$xLtSZ>Ly -z2`lbG4IG%w6o*J~uw3i?*vA{0_o}ry7E5QJfSKBR!@&iX3=FlcLVZ;!JGL{I6g -zqw0;G@;bWF98imP2LI|Jk`~jz@4VIP!%)w=Xt=cbcLCv6`hrsv0~-St+_%!5_GIHF>{A>5l-qc`1o# -zyS84F`1NDMgq8UECIZrEIH->Ld1{#oYHkP}ca3CR8geV_0G3(O9Go#p;xf^phEplVUyndwlR5r(Dj|R@{j2Bf9$=?irex -zs+0`m?c=Bnc?L6pF9VRHv?;H -zo?5XDiyxXpDyp5L0{nsi_&{~VaxMy`nWzrp@6(3o>^5D9(}1sYH>q<5F_Y@OxLn -zz18fbw2irimiF7A)e8#nWpt=v2Y=p&@({OBz68~7>R_o%%9+zUV)-KFP -zl&FWUDLatr+z9}w1IoqUX_L7cBsH5sGm;&jxIa!iR7RKihnX?wp2Nlh+c6L?>O{mV -zRMy!Y>Irs+PW|_e9xakm^7{BBT_frP5A+H$*tsU4nAejLV@y<2;+g}jN9S$1!zqDD -zcRq100t>W3nNO2R#h{*irBF0foK1zZydodR_rU{+VSwJ@~~?KM&ieQx|lf -z(lyXyap%ls;{fLwpsewb#&2uv=HUrd0vy}ms`+dR_GT9+>;5Xp>3#QU7Uib^xHrJ= -zWFWrpN?+rDEvEdcVHaNHSE(BGJajl35|~b+YfHaV^J@Xa1mirq+3pi?;3QMzgTPj1n(*kAxV0N(!>f;7fZW>u>j-R!#nsod4Fj#J?tqgZ~o -zbc0F24Jj#i)0gh3tZZW$MCOK8RLvG!YbPfqlIWh=fDG`S6Z-iuQru$%%(k@-D`=w6 -zUZh7lcIG%}aQOf0<>9+{5~}WjJ&Ddf3pZ0 -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 -zlTq{~!nk0==dBcF{Ru}=QDBrn4!2g -zhNVeM5xgTsrhWX;oZShSM(ta!*LA0K;{LRSk-ziVFRAZ92!uPTx;ZfGGTc{`_)Et? -z1g`U(UZH7Nz$H70H~F$n=PfYqvh*I3gt|&6^ZTJ0c|r5}l@zMR2!r@01FnL48hVDl4 -z9T(4NvdRYnW( -zW|=Ba;_~xBa=*CiVm8H>^4rSu&3BpJc(<>s5<nS-8_UOf&p@$DaknX{qPH` -z(>R1XBt4?*06NYcF)D!OysF(kF8*jYxr;ueGQ6b*P|o*+<-PwxQul_v2~-hEwJ9#Y -zs3os=od$#6MC=#!+{y8%TnY*zsbFRtd%8I096v|Vs?;&;PqDwLQa(sQ#N799uizLCnXvRK*#F9)OE9v9+`i;HL5`_BM|vM4hpn2E(eD~BVA`V%HO9bUJ=Ytz2N -zkgnUCcor_mFX-l=3eK-?V$794eEfFCy;`xtxgO;~d^$a=<9G{$JTbK>?+IaGENkWX -zw?n!*{!DJ5;P*Kby1UMNhs|X^UnqE@^Z5dvqHyZj*={(k7{m2-KzSl=cYH-t4?zdb -zw*Z;3_TY?>nhzZ7$L6jii$t&gF?l3}!9qRHB>CovmT@{puMtKOgm~y+ORoubwd@p0 -zMXV4bh|h?!aFlGE{U~*-1FIRHF!vo%r5ZFotvCabc_B0r!{8V6L7s^g5*genquGGp -zY+WA|x`%U2*nqMvq1L3dTOL2cS+s@FhNz~AzP7zC_{0y9aSC{i(Wtj{DhOKLcMta)(D7LM7|l -z`UjEJ31tvr<6d9}Lj?(Q$|IJIU)X$85gY`Q!G9gAx;A;oW0>&8?Q? -z%^7aYvshove&)?7NnA>-&UppIOrr%C?~3D#O(o?{0tbO)JULa(+aQzAf*ub#LSW4m -zz!#z6f;x%F@y43}D^wOtU3ZjW2Ug}EY2e;~QMo#v`$c&&B|bDn=HPJ14|^waui+0S -z-z;gxtLg~#dx9V3MCQZ+(oE@3@$M9V)CpX^zACCOXbFrJL~Vc+F)%uA_!)0*%yD)5 -zwuT=z|86%6{=qRi*7>B&=rmbdN4EbNLk4Qa%SijWgNu!m+88#yOfs@E2Z?XCliF4aUf$>3)pynKm~ -z*@GSVii+rom*TIV3n-x!$;sIP3^)T`51&M2G5trn{jTpKsto{6128zEHRsOCwcG#n -z1IVs+$DHy0h-ihyf?UPO=)h0n1nvz7g6+>w`|fxLCHww93)oN47=>p<|HdiGcu(%I -zXC|#n>2g0R#te?h!<9N39Y=;P@xK2cO^%zr!WRUm9u`L`I}ZDpJSjEy*wd@|?qusZ -zi^m&~ApDGKBaIe+sI`F9jzyUK*$Nn_OKe9`wMs;WCzqnf7>i|^_0v4IDizq -zuMhbF>;(6<61P>x6~oA29rQlKfcE9<8dGeeuF0$?A^SqGS?qd%#r}ksS1~K%$?RYJ -z-%XkSUuPDsLZ+bsx#cil&`+gsUI`Y|ptg=ZvHg1uxkYGCxk$_8uGK%(`g7>}zIq)% -zru!Nc!wOzXqTMa-Bv3|^jqvT-V{(=!U6ztOtQG14p_$k_4#C1NbxIjD!TaW~;mA$^r>$#KKE1lSRUm)bfLZ1aZb2WhX -z))o{@dBUVI{9f?YpR%|jBp)c$gJj4XF{{PCOZA`2L*Bj%eL8S5Zc -z#z^v*HD3=wlDYQ+L(YJP5Vi}3EaOCj`2gy{iKcH%nZ;M~tgu1K{#(i-6F>n4NKQfH -zKx0_tMe+4*=dsi0`JHP=o2!9cXfZu};ouZP_8Jh>MK#|P!~06xE_f>2ns -z|23-tY+3Y9iTl$fGnJ)AP-W|j3pOr_K&C*>S9H_Fph23QqsG6gMEFeZGgoVK-Xn)a^D*FD -z^k-Xluv0V@B)bS8vbhssS -zK+L!A6?cY0^*-oE>r%4jZQOi5S5fCbLDUKU%OX4j`^lw*4BbII?J2Rs<#k^el+{CMEbK)ZS}H>N{}!_uMSfQ#@?H -z<5dQx;VJM9fR=P{=S^xZn-GN<1}b-!EfDt~y=?kNhWMc?xERwGUY{!`KA)%9@V32O -z5*V#5u)NpNdb;{!2P3_p1pIy(hG+!owu2+08_M1ACmR9c`UMj45YkGL$oEUr@D4(m -zcaDGl_BZNWths~VerNG}Xa|g-mjA2Esz$%Y&$#?0us<#`=!VRe>s#bwO|7qa -zeSnm`R^%CNA=(3*eDDByy6P0l5;)BAnagwG{cPZn0y0-zX1T-fQU|7LA&}= -z+54m-`};fyj_w}V_9035a+r8u5BmIUnBb5cD)jgL83pbb?5L6A4P5Og? -zC5-Hl%cL3`5fGn92Eo*0G4;((N);u@W6_SuNACGVBmYtF9~qsl)koxBNtWPSLt?Vr -zIGIfVpP4*N2J(Jq_^4pzxtdv9*B?_6Zs7Q747xg@XFm4JJN@hxxx-G8VaPmRv$G{Y -zw>kVdM>QsmD8ZE(Q0BpqK6VjsYTm|g0uC~Oe2{iODJ)XCA0VS0pfwJMDS8hP_Rv;# -zY9uVXOgO`SgMca+i=5>ox#^T$d@ogvMH{Y=~5e1BZ7 -zzJCgtXH)NGl22^zW2Q7=IF1y-$D7)A(`HY1fJFsRCz=Xd0CqmzJFWj-xU=IcG-Ii7 -zOXf}FcYOlMVa^Jt?OP%cU54e{qKJrV&{=|OJ{kOQH@oXMtWrS~1wmmnW%9Jfe+C<7 -z`&DU?pCoj!SIHB{93F#|eGSb6Z-*2tJ62}XAsmpCtKF|@U#=NmMvPv^XD0>5Db)@E -z;uFB}lF0aH6g@F0|8N?*K_~109DD$W%rf;oO}9Xf%O-8aY)x~9l-+FChC*U}aI`sQ -zXXtA{H+wB0nM*SclO82Qx#%ZK&fMpBovaOZ_A`-S9xCtx)ug<=_!<{{mP#jlK^tMQ -z81(ndHqHM6kdR;l1k?M!_FDB`SCRgWU1LmFy{2y>&B@CJnmnEp++pZ5qkFvMl>x`r -zACK41f^Gn`lE+wc*dhNTa{!@^YXKU%dd`t-=Lu#X4`$$%(QKO}q&{tq#~$umA*e-3 -zF_w$+W>PH6NNd!Z2f22Vks*CEpGCpY8U^4=0g=jxA&S5)JS`zwUzd4ZlaNr{7dN~v -z5FUz>%J=t&Ibi*0B+d5>ny;aItuVOrjFbLko#D8-6g$2I&BBZVGxvO0KUTMTP)eTh -zgG`o1MAnxt_;nRa4lc{HTfsZXnH3{YVwx2$ho0zNn?8RUkr3ZgE(6LE!Y(>Nq+(Z} -ziQY`H)9$XAi(6dyFqWbw+##n9Ha|eeTmb?Sz?QebZh`eSE4jC<>Q1%r1SRx2?0lAt -zcG}nU{oc54WFT(yDubi&Q6I+W`GUjHIs2O8^4qdBDb3^fWhbOcgP&l*x)#7t>lZ*3 -z7s|O8{pjlTZMK>@z&|{z71K}?$Y&gyynN-o6HK4OPGuj!9Zuq0!(%L)r26niTaIn)pZ&&2LeUu%x-Sx~00O -zRUC!Nf;@FhFUR3Q$an6`Ei_9B`YxAyei4Fd6wUF`n4uyc(P=Nc`1^?721!=Y1 -zBrP$^@#q@&8>hGGb~GM(O(oXP4dg(y!uI8s@TjH0zF>dkW6qy5Kx61aNdORBX6sQq -z9+`S2&J*kU!RvS3eI8^s&R)a-_EmF)q)mLfgC3+$fugU~BNl5wf9L)&ZjQe&x@52p -zQCAc@6TY$2Xj_HmxOCW -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 -zCy3 -zH133H4fS{U(hQ@{WC({7H&K~D4a}AV>&GJ74xjEuf(-`$CBHoXDfLkCE&LcZ#$1b! -zH_!ux9-20IV$kQHs$UBrv`QJN^=sP%}$AmBO^{*3yV4(NjX=m)f%;f_G<_iL5vZO*3439)Bzdo94AFOtT> -z;K4NHZ`Nx)uizp6j_XxEo#P;7k&yo9nobQ$XITty7$K -zhxF`8+1Yeqfj-kvQLL|hAQ`yd$clb+hcr7j@G+Zzq^~pbN0;9IN*`pzhX0B1LvJ|w -z$?)V^2vaUZ9wj_&eb^RyUbYnjkK1(pYI)`xlHy&of{f8VCLRyOF(oZ~lACI}O{f~< -zl1*Hq0I}|8AXRvWU$r8RKq^EyYF+)2g^~_W?TyAILpDd3(=hR#$o@gsDh*$MLZsN)X^Y9o)n^-JCy -zcZ|WY4=X(l@?Iy;0G|{IM~#odm$k&jmHIlpKk@LoPR?FJ&JYLmj34;`xqnsdaPaH# -z$`xet9NQ0!6{%w1CmC)UM#kHWQ(yI@tH!Y1BMc6tp~alP#@_%OU;up!nA;?*!vk~t -zl(xxq=w)zmT3;@yec?&vvyt>rTuNW;Lx0S -z_H&WwCOKD_bJ);Jy%i*-SZnDw0Fn;8qLn~L?)1Iyo}6yLJwM7C|1>UaE~7BSD;Y^Z -zUR8_0dCa_!0R4QPmBY -zH^a4zR_fsA<(`D`fF?ybgF?DBP2VBRt7S&X(BdgH&h_(XouJ|jqEkSc-~tHV^1Dsf%rtIBe)0I!ey3&Ok(r{ouiX>`S4h34SpF#&>TwwSOl(+UnZh -z<+OV6Bs6@)aYrV$`ry`soBHunm-)nXcunoOHuPv5@0T?4O9*aC@JnVs@{AbJ;>{Jx -z)FW+tH*{+SC}9C%A^Yg6^?mW-gkXX<_k#T9NJ$2^9cu=)yD9hqguqgrOb856>~pG@ -zi#gRB?e*$p4nj+ji$)3Usvz`Glc!51{VRhcrapZHwyqMv(0TW^%8}@HUGV{3L+6*1o*N~@0v)N&N6jh1x}cL -zn4S-N8jflOG@bPeNk5~kV5nB8dJ+Vp0{?VpX3>Xrf)w;XLp?1$fsNW>rm -zlbq}^31AEi?(|$<_0}3SL@8PvXcNK0&)TYtL`%;w!;kECtLp6GFO-ICqb9;N2?dBw -zxb@v1)GXXSE6wmkUlJq}02cAIvDQ=mHsDF|VU#y2Ifc|ni5bO+Vr -z>u&D%pnL_9X7IE$Xy^2M#ms*4k2>?R)1&ld5T>Om6X&+?pDIeT1TNA8y=Lu8nhH{~ -z!1{HJK6ocM9+gFGjg=0x$!GeaQ+hP1im-Q -z{bua}x?$AamdFk%p4Vw(as!5l>dd1Z{U2fVgo=YQ5=t`g1o{3gYz>sz66JJvkmg;< -zV-E(TyRLzc^5hzQ-U$Rp7boW(OhP<_-}O&?(P$VCW2e_s$|WK&Zg|Y&9TsS}b6#Lw -z8<6z^Kk-1Q9n^#-*@UoiLX~eX2uL2B1E&^wB=!Kj84{FSW;WLSO&&cLCP0NwUbUlrraxRei3YQee)642pm#4%F&}lvBrcjz!MmeN95_;c73U);w&;5u}qO? -zM(Q_ydkoM6fSMzz$}9Wy1DU9R6_P>-RbgvjNMMwv_l))hof7T)?!VP~=L~l{Jmj(F -zeLeAWn*#vZ0w7Rg{c!9!a-x6}!`%-0?q2vP9eUci@G91txb=q6rlV?XcZ{&`fzj0i -zJQzx7Y`iMChAj*{&5;4AjH#wiQRirMRM;-e@ZY%X=~e~Rc`p}vZ6V9^-eEKGM|#rb -zPUZlzp!h@JX_MMy1eQ&>?mtK7wtW>rie59~mQZD45t&2`5n6fruD4&aS(@A1fm#C) -z<4GBu!170FZc)#{UgC4H7I>0Xsf;ao`8kS)yvw9IoOlR^MfEtIMPhO>rY_ljZj$YR -zc69XajbN -z?2LI{WVf<-+RGq44iqe60VYK{PIVp+$j2GU`=gYyd{>Qr;=Cs_U53I@?hl3VJd5&` -z5(^Pt33cYm+niaO{TB&vUb0>8neo1}fm)mttP;HyVIFYTcqvLP2DdZ>-M2k@KBS={ -z@5vv>+axicdt;0y%vUeDVQ9*uyk8$=Ri5LVA8@SUn^FO*vl*F4lZ(-+Puls`;aSgG -zjS)BbLkE6axxWH^*Arm!(jYJLd+mFMOE7Ce(do!qEs%!DRGh>LSXQOhrw877Iqx}S -zjW_)D+Kb7C=P?%#_e=lORdgbAWg%XQ(G)xsW#?UZKo?{rIYEBQGrpAgg9Kedh^2VX -z45uEq0q+h)c9MC0gzK1kF=6vvX5&7aT$ZfTRFMcEy!|3ALXVhel_n1srlpJPouHXA -zog*&EjenNq6PMWWJ=SuI^ILNVyI8?(iE$ux0?dz2KTqA}T}GUF$sd#(h#Td^i$!*C -za%#H1Rt}M-2b$FJbrZ6W6p^(SpWY)2{#Nac;LOWvs>(>STDJ`R%)-q&4 -zqEo;VB9zJ=x*GcOlETB?(WbM78c49e*3F1@aVLw@)s(Qu!N&@q959R24~Ts5z1wMi -zOn%PLN+(2`y5!ikt -z5jIT;E+rm~4`AQ9;s3HZP&$X@GVx5^(=NGg+i4(>#jL^fUof?c*;1?JvS)v_G~W$^ -zd5kM~N>_Xqtyl{{D%M5!8^e0FB2T$;dd_W3$i?`mvzDEYvC;2s6dw0NZ^}#%9Q}A) -zvGtJ^3<@dcP;9m3ZwcueVGiz(2!TIaOgA|lz}sLoF;R_~=``+T>ALLCH26M5DtaD1 -zrjthW7wDe`5)OfdR}L@moIGWlG~KM*4hHXg`Ej>jWNm#r>ks_cX(>!BA5~G4nnENX -zHiPe0kI#Dd>*>6NJpH*2hLm6ygLnWFDR&}mEVPG&41+uFb;p07*F})+g*$D+B~uQC -zBz=9`(_gDDe#M}?!a3aGzeBg%k-fVX@ByJinAFfJG@6p_c3YHOQ_6a><6N^J}=@Zb&$V3KFg#Ykzna|rUXhC5U1xRj57q~Uw3c@ -zOTOdl0v%@>F0X>;t>uEvWwr4dmn5TKkN=N;&_E~=Sc0lEyUwLpcl^v`-*HwbSmL@7 -zPAUgu9~7`ha7x3DspKe%nT%;nEn)2d-oW)i05{& -zP{=dBy`b>f$$~h;hA*n|;H7o~z6{Nh{NWAKv!u7EQyInH?md`BwvLuaFzKfg63Mt^$^Aa{d!B-)-^mCXo|KZ|OpMolL~ -zHsaa_o=5W~l|h{=KPR7m5ttN4ZG>3k+HXj&EW7@aLl|IP`rpHdLOkk;KGR2&jaz8K -zP%WVho^q>8Nc;Vgo(Hrv!J%@CGM%7}65^8w;?qrJlQJK$3_iU*D(JrpvpaZxEI`PV -zFVA3nW6WgoM#ITN+BRgYaCyg}Q5w1#?PJjE&!B&*sv25_+#M7>$yN!WEOsUGGOP<4 -zfqW}pyW~d5C!g!aK$k7*2RWGT>b~Kl{hZ=m)|2G8±Rp^|s;xb#LuB)Yo_ki?H_ -zGvGr!Nk>ou)M=!berU9YKNUV}O`m{EKiZ%q(LJbryb}_(cyq4=I8heHC(02R_Y0!U -z<>3lMPpy~UXqxEBb|`@z -zc_ScPfLdc3_vM6K3x<9`a;cm*9bK9*m;1a9RvOO7@7_-O&w9Q<7PF}6YdX^qf9B8N -z(?mMM@g%#32ub`T;sgUN>eF=a@w^k>B3I2z1@cXbdGK2HMIm4;ZQv6_wjRBl`ahw3 -zfX$KDk9_+T3!>8^9_REhh>-W?G#hQLIviB~!Q2@|4W=+t4I5EVe4S>8ARPD-Ih-%5 -zW&@ZXh6`3MfhaQJ5K!bKgh3VfPs#nnoV%3BluiALt+Giz^yM$_P)`7B0#4AaNg_-$ -zj_xW08K_bT($qOufRq9b&5>#)<;9Ul?ziUTB!`C#VMxC&UN&sQbHS$cgu`T9>4J0q -z+~T4KjC9<21JwjJ!Hxnl|BpI3zARP^p{e{}@Bz4h>5kI`gOct`#=- -zn0&Xa#qSV@Pf1-vOPR6lixPx(hYBGx%TD1GuR`IaiXf*8iG=+$sgl>={hun_ty6P1 -z@w}pP5g$7IoJ7&tQy@hDL)0hsa1ZBIN$f0fgRw#m`j=q$9UzX&*e?5nyIfF~U@H`z -zlYl!DxiyeQ;ZIoP_u#M(kXV2q&K(5j?rT(4&B}VlpcwfBGbOsK)S)@gBe$+UtpuC| -z041e~kGOX#;xgG2p~*1R^)fbvl55Nb-?}Q}MKkZfrdmCg=InQYZ>Pf-<1leGiPw!J -zdw)W4)|;A)pgYBkL)D@VuSM756KDN~6zXoOFM>U#>n43$DwKyAxHum^Y)_!l>fBgF -z0+Kuc)^HrSK7HP2D8Vv$6bE9b=(Xs?m4kWh-nAMK%?hoYu&3JCRE2yFFjs6zu*SSD -znk1#OiyA5J%M5mzAQIwK-NGMa#e2gD8l7jYj#~}IBzi0tGnySD8Y6CR%b6|(ebp`2 -z)}A~40UOOuVa85}6jwm+#H4zRk_%g@-uofTrVzNXmx#eHxWnBUm*cMx4ueB99YMuB -z$LaD6(5E+uCZENYc1!x+UD|bWI#rjdyl`283^Esl45NrHK -zIHh8-cbd`28m4NR5}VY&moPWeBYFJAO>)^tu*RLMV9it~BS+jXwzg_%q#SYpZw3OC -zGr_zn{-sx+v>)=2ey^ow5eDpM{B6A0`mYg1YrbRBSkr6J@oc`Ao1)b;=ewo4{s4u7 -zV9es+V{0}5{{h<={1OENjy=asx^t`C)sb&Z;+P&Ho?tL{{e=Zs!a!w?leCyUMggVM -zvS0&)eA{`i2wL>sc@Nv|Pis}O?k}Im4Eq{W3`pzk$kFaRHkuPI>Xuo+p480_g3i0y -z;TK`ibFU0J<3N4T@UWP6{Qx!xlvB2e+xJvRK2yA)_ZmnHjI%5?rFwjmB6=_Zd<+=) -zX%ZvVf9JErN=-bD_bMsB-_%B*&~-z -zh`V0o?KX`BI@g{jsFR{ux^f>huG75UG3|G~{k4q~kOB5~-Go@C0L%QE2wmgG44+O5 -zgA~Mr^^-rTZBG6x&Z!XOG~w3{!1;vY&df$V+jmiT_kt7|t%pak1_hx#@*t*ZILP@Ubog^|^fx~RigQa@x(Vxufc__@ -zMf4dNH~5!6)IC5#1m0?J85l9b&4sm|vJsmBD$Mf&6rix0_u@?&N@0v^-lv)BTUrWR -z(E->JpGmM31Ak+1TvO*vop%MHA(o3NY((#U9*TRJ=0)~!Z~HTPaf%|Y%K6_?`uI6m -zuuwa1**{}_DJ%vyQCHA<+VC_>u+%o>E%;>zY^G^p8j7s4r8E!k@^o?z2{h&OP&EZy -zr4K4jPCOE1!~q?@g0@%E$0$&Sl!OPG^c1v>+SV*mL}u06#DQKc#Ui6>q*y%8LCah( -zG%>PSG;fG%PI9Z0@j(w-r)ld?Rn6L#Gl -zErL=ywosMyZV)kK1@I;U71&NJMmJu_+Z$3Qt8sLoz+;bhMGcq0QOGjDydIlG@<~h$ -z#CUdvl|ryXlg>!hU`nWT<`ELIjk$VYmM*7!ZZ1N#Cj)%QZ);LJsA1C2xZ(3nBcj(k -zGzJqq)s=w0{^pe2c81_vCEr{Dfw -zw@z^lpVtNocHy~d$PGd#^~$mq;Go(gH32Ghd{b#6KhtsOYCE_lK6d3upLO@pP}P~` -zLKCZ6dIQ0kCmy1pxTA3ZI+Gn@PkY}n~4-%9~Q`V{HC6h -zXcuOe#k~N2WxAiEzrWeMeVORe6}`cazaF99-QFkpR~OZ4Yvi0k#bI;uBYhkOF*Gej -z649z6o-${1pgQX!6z>#8-BZ9^;q2#eLS)VUK(sDrJ&`}&bYBa3#SQ-I!!UU`gL>@ -z_3R-6Z2cPJyuaYeBf0iQob!LpQ!t1_eMsrehvoF#+n5L5wh4o}lmSZFF3SkVjjK)e -zaXgvRH8$tA#aowa{_o7N8W#UqmgLm*%}h?cXF|#%rHkF&S0~J_TGOQ@xV9^+9^cjl -zm_^S5jOq*#H5MUyM_={7jT1gL*It&)CVMyoy)FW-2qJ(lb%?21^Fl4r+684 -z{Gj{y3X!Q0TNLb4+S^rc$zCewbF8pNAt#O)zpk7-rd&<*XTh$GfN?oC?;n58H*f|- -zeWoL;L{!7(h3xPDaG!mbuHOJhKax%ayEd6JYX~S=;)12@L-jD4$!QxBB7TRk*)J>} -zD9I)*ARMb|nGk_?2xu -zYIS2UKgCaTGOM=NvH4;9d|~#GU&wi^CxsfAa4ZbYwfPFQ8Bjpb>_>@>hvYi1!P{db -zS&atxoB<~&&?6usAI>#)F>9!W{li!T;}@5b9)>XK?d)-JTm&5%DVPs2t~1KzwXfo` -z!0K_4&W~4ydCr~AB^b77dkr&syg)<>4jt2t0`lG3Tt(v7r)lr$(EF5O*AN_Q*LUD7Sx-7US8 -z#P`_s`&XWC@4fHdxifRlocaB==V_Gb@M7lkkg1I}#e#`cK|zN|HRS=K7}+GTe_>BU -z2Fmss4xo3MXX_Ffs&tJWsE9#~Wn@9A{6D=vJcS8D$0iD2SxqjOcJ6UUKADqHwX6|)X{cKqQxGB}1+kKv&4 -z$!X9b_L|mAcy%pUQ*ffhKz@w(`=7COB5?~>aZVj-7}ra -zR+#u#(N9!n?$p5Ku`__+IH>w)uwr)aolBDzV;{lNRSR3H`U|}l+O2}c1QWd1!U_36 -zYDw-{BSpdgyY)04c!#JWY}HK`akbB)pvX3DaC)Gm0hQ^%xkGiE-00{`2T}2~I}Z)k -zIjH>EGF$h>JcUYr1D+3_S4KOsFNr{1Zq`j+P=$nc=8O4Us>y{rRVB44l(@#^ -zqKwV9LC9nVY?)^wa7b_&aY@b@m6!`pO#S429%g@)C(}b+G~zXL_-dJ+s8uzlvIA1l -z^IPvKm{Nz-h3{56-}FRhRd*p;;Dw4_HqW?0S}w)giR$V^phyV_3u`VCV_pYx!+-j>e`|gAE=>)F}xc+0Ef51Vv -z?(*XS2NfKgo7?#}y*Y)Y1UUC+d(nvo@I8ox}m`&-992H`(s?r4b4 -zzSzf}sLC1tGbG1|-Bfe0SQ)n6zaBaJbx-%!q~zV5|AcKE2Wl*8o`aaU)7>krStbuN -zO9+`_|22txxIh69^$q86_gZF<8QcLth5)`aiW?0z4`;<4F4cdR=EiUvZEE1OoW&Mn -zcDXEcZ1In&e00DE1>^;l5ln4~XdBDNjTUXt&)bGV7NwL6(DWX4Wp+=^J^snIZqXi0 -zGv%A5s$xK@-5GOUuM1AE7{z9>q`qP#BHxT6Uy{ydgMLGO1`ehGXVW`ru-ke#O>kT^5zyhyTU)H(sb3x{Gs{`L;ChD^R@%)7=Ty9m5#>yszD{X*5{C -z@zZrrL!~r!){1OVbs8zjq+Esg=vNCVNi*p6ofvnhem#U0x`o<(us9=7RphllZ6h3` -zBXXoI@s%-EivD!wiA?&G=pk_G)x$iaomA~{YGrfZGa%Vc*R;r1Nl}U`TnHA`r-^+} -zqpCn*QvgtYfH=@lKe*G$FO&BMvY2b(UWqLvPlIBm{WX2{OP31#s<=xkX+n$bIEhZ1 -zD=^|7I4XtL%qI+ro=U>-628hOGbr^d1!pSuaHWXgq8A^&dy=X|C@=(+sURjd>I!A?`qSMNy~Z-pd!} -zD%TAW-~?OKSGpkVOg+?JGjrv@y$Eyy#edK;Xt6CQ`W@~`{FNCkV!Zwfya6*RV*F)G -zQx4SQG&w{;)msmi+ny}vMrIM<>@OY$X6Ob{ -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 -z&F9L*%v-^6+$&S$ -zrW1kxODXb|_>(j|%V&`{7Fz7?LMPVIlhn<Gq$=IrZ1IAP$2NVfN1U -zuc|xCtpMojUp!HJZ_9{>7&v#DHH0j_m9nUeMyR|@b}iY2{wJJA|EcLq2b@ZY^85DR -z%6r(Jaq?2x%rhENn(!Kb)RI4XZVFEAA$$(9cyf9H_g$ED7t+MOq1|@;CqI -zk1vwBZkDv-RAZCp50(UAjEQyEq-}bJ3zaSuOm6xEeQ+we+)LNX2(;GjwivOZNEz8W -zaVrYw6znAFVnaM@Bdjqv;Hj@!60r8QQ>Px^H9a+RS@XftQ98z<^+XFH6>9IH#*3Pn -z`^=YygKzst9b;qIv2j)ka)rHS^i5Qnr4M(rM5y#9)aSIR^a?~DN$OvjKE%(H`A&b#LYkikrnkG-{YA>?rUOnii+vIy=u55}JFBst1bSGTy -zAzkfVKbp$S1xypTUpDnJ1C$9FPWwpAF#JuDu|h}_tCh-v)^@C}&#eEyZ@|;*s{^t% -z)9~J6xzy=SSs7zAufuxf!TO02*OcWSF7CeWKke7|WLVTiw!xu)IlCWSz%Zx3_;4F; -z>i~?oTSm$y9Tp?ipYQDffig!Vw8#A2@Ky<3%gFB^PM^)p^4H)C(Orq`_xlh|6$F}!pl0=h!kPoas<-gF1vT64ZB*@ykn=-o~S84x&HIlU(PE?-Nw8*qO& -zqX{Krtp}qdppJ>nXc6H>+s}@uy+osg{|^K40@W;d_-(LY3TBIl4J?jQ-&JJ}ibRdN -zC-(Iy;OWg?{(VPqI&b>zwahIyRhe)b{@lI0=92&npkz3EtG?mv|06pj&=9N9w)}B$ -z;DufbpOm^uoGm^C1f%It#g%AVcJkt0#E7r`lwOs1OV^o?lr0B-^CKQH`coAo4E(oD{kZg&l*ComQ0_d&)Zp>sT51nJ@ -zoF;Cf@}-5HDGIg~o@n+f0&RuO+xs=zCJ(r)j4aqFQTD9lBY8K_%M6?He7;d|Slb62 -zY1{F9%GeIEO@!M)o{xJKR(-HzPxbphr^KVvp8M0^ePth|nf;QIGdM+0EA -zG7zC&Jnp>k58Bv$5F&oz618G;9jrcb`l6gQ99!R(%NY$Hl$HmAXE~#on^Dknn%A7L -zAKI?eHjGa)CvJ`r!X4q0jz;1eq@vGlbPqmc99dxG&Hm>^_kYce4cIdA^&#@TL)@?m -z;>-Pn(C)bjMtXK=ug@l0F;J3hc;uSKqh8>&v<3YX0k-)hy~sOA%1#nSjH?c->!;dn -zroFQ|VEH!F9T)U!1h9{?t<^mMCkMiJ{J|eT&NdU#c4W@X4x8il2)@Y|Ap6iSl*4ZE -z$~871=R0Wh-_nSmd=dGugz-4rJHI95!}UelJO5RQl!u8lvgG)1TY#i;3CKtmG-D21 -zm5?l6w7(+RT7>A)=nwnk*=`z}(V;HF*CALWFE8FvKlI|nZMBTNhMvMz@AUVVNX2}F -z1k2ewL78hW4N`G(M7ZX1xhWe=;V*a11B9W^eZunXGC{&E(@Gh0^e6!*X0g~B^{603 -z7SS?l$E2sBg(yVXO^FLL!;th7)jvd34CKls7Mvk#Bcii#r_Tv&q@9zI>_J);(%pIm -z8ExjCzr3I}}Gj -z&)?j=!vAV^@0e9E`KpI_Ms~TTu;u+^C9--|Tu5)($|M(*mReN!fD^C2E6)%m7`}qB -z*iRwph^&Muj|4AA0g3=SGKcr|;-LI9q&Zom2M*;V5eGDxdPqBV)+j2n<+g;Y=fF6B -zb08I2=_B&y>QY}=-NTBKOD+5;x{F6-#hlNGjk9&$uN>E(%f7y=k)D$XvsezXSWX2p -z_D?qPq(tlD9J0TL)F_-Z#o+CjDI%chWB2GnD?Q&xILH|qnx -z{D@Jr-_Frl-PyYH9O?NkXZTNp;zyM0e~A~Yz(i)Wj@oTJL;X;ZDZjk$H?~;3 -zaWTm?mO)zXSvAR1*w+*R@lHC>c8{Ehl^81EVn!DlhenuG^NMP!@ts%9?dce_ -z-GKz3f(N8@inqA2kkD)~l`D~n`8C%SPk#`s8G^B7Fa2)6{}6RY)r*j(AM(Q;Xau8F -zCreLg65t48;9ePT@p+Y6q~g#UXG09-W{Qz3YgB&Um`TEH*%iYBSWAPLo4RwREj4iO -zg}wel7>4c`?Wf!4E_C*{Qlqfs(t*iTqR_zG?6>MoC3Va#+EinmJ9Wnf_s}$npKM-E -zwe~V^JQXV(7L(#*WJf0S<#h8dnxkn*W2MrQ?&+R(;PHn&h0R&VOEAov_ARtR4ko_o&qwLm@S3pk51m{((@(8xxs- -zAEm5TpV@c532#?=aAl`B!|fh&o{dz0`ZU*eKARj{J0J8 -z_V||j<1bebukakEngbwmVoGhd%;Y8}qog>ZJI1Y~M3%TS7yF-H0XY^Wm{%oF>=1ds -zCTsfpsTd_#uf7r#s*Wk9AgWl|68#~@E*|c*oQ9B#*OEx?dWjSx1P>?=8{C}a1Xo!8 -zaQC7+&dbbS^+x@`qLyxw-k964{n|p*y2dptxq&T_NgY-$&~&k3?J;lX%(p -zd3em=kvd~kfp&S%Q6vw53hhPW#b$iE{+8$7^O(6gHmM8bsV8S123t=0rLazjtNBg; -zM33a7%M+lfAWCE;AaKfd&Wu^3p>zxQ=`A1j?p2_)=;zPX3IRP8Mg=RZpAqw~T+k~N -zxR~zdi;7n)Q_Wb5YCd~Jhv~+Ds`_h`UizX>Bj~k$R0NGQ&nx{ -z9VE&E`7j=NhAPzTqY$>s5GzIgWuEc^Nwm*EhPK(ww`WYq{#YQ+yQM;~d^NG%cCwBX;RMyp65;D?Ri$XMtd -zR^sNrNBdl%VA4)c#gik?@;RNIO2rX>tEyqtS(uWXWgoe+Ql5O3%upP&Vke9inuneZ -z{OjZRo2x>Z-30=cF19zVF*auD{`TTMd9wg;>{0-`12;@PBL49zJ_huF$ou!IjSp(H -zigx^w%)8!^ZXJ1fV5`50@P4wc0KXwju8ayyjdwhs+w2WS8`M#WK@`VVHX<9lfY8g- -zS_qOnESbAmNv;;1?N`+5Dws&#Fw8k7g^ZdZ7rc8lm-9r7^BWUv5K*ZpW}T9k0#$+` -zT#EJ2gxHPg)R8L(LU;=w!hp+p-3N;}zu;w7@g7&ArOwu=gP3xgmr$&wVVWIr*`VKu -zmT(u^7dh2^0&F(uEGYcAJiz;C7rOk{#C+@}_WoJCDn#a|2Vqf^Po63uYgNX~1a^TS -zN9Ka&dJ*wjNdrDAYo*Qo@#}OFjrf9O;8*Gi1GB3CXm9XGV>kO{Ww5y8_1>9E(#XD5 -z*6R@Rm6uzxIRWGk0CNhbyyrqteaEz@7gpUqj*Sjd@8Mitvph3~VYc)mBm3z0&?ZFu)bGREOU^ -zpK(~dg=n8%_AgqT}#{1G`e@`zu{9a;5bN;JJ!A*dasd$Y{_+WpN^5(<8 -zQPiR69pS&&idBkM&O?d)nQdY@V#n$A&^38`GHd@(8`N#?J(QBSvOW1-P -zP*|6S2QK)2;Vzk9Va^{}V;Y -zt99c;A49vxiKpYX=2LXn9N{k6-{*Fr+y7ehD|~F+bE=D&A0P$EPOt?^#y!uI4+<>% -zOlQ|@T-oBA^}wiS!{r&op&kXIzv^J71Se!Ob~6lXyjT>+K9O6Tq4d^SETc;Ro5C+> -z#Loum -zk<426lV^Vn+GIk)@K|t^0SzaI++J$9m6@B?m};a=sRwT9)9MUKd-a=~?`~!o$I$7l -z`^aRI(=!r*@Ym{yb8<3l0v@m4O~Cp#m=Wy+2F`48Ci<2vk0_l*U<=2n5T$KA8^7ip -za2h;xlJ(EL5WLuKRSR_V`ccUhR`$|%GdChKCN_QqwI!8pyy%}$zUZmCID|dGG -z^K1&fiRM*rEv4bsxx}y&K0L|0TTGbSzHWHn$x5B2)^WS$vDnO5<76c`Pw%tnnAd-6 -z2S`2vu0}{!6q;tZz3oR#6oJ?Uq!-Td=7OK=7K~K~U%_k=?H28C*4L`kbj?lVuFrS= -z%l`G>Fifl=IEcS4`T=g2QIiJ@PDJS@p9tM;*wnKDT^}-Qn!v;vf@S?oYL2#wGxpQ# -z2aAMaHQ5U(Tn2+x*&s(#P>zKK27@(yC`x!I(qR0}pFaA77LlSjP!fmFsTNH{ckdIY -z2QUIYt{^t`b$+-#(p!jxl1lcgTgXCU_9>JTgz#}2sk}Kb8=d89mGLa;MdHkh2?@UU -z2+0Dk<)W^wBv8%B_`>hGt|_0Ii~>czy}EFCekhD)5zeD##_c9ULnFa){A!9s(FHGX -zdde@Yj!uZhY -z3a=uO+;z=%z11B{rU9M3TRNf7%zA8<~QbyYcSChTZS>zKZ!tN&&DiggxjH -zwM_^XP6yTB-sK;|tV#RbT3Ye8{dCL~M$v!dNfP?nS5dS#Vh?Nc5ees!m92cR6VlAj -zc5cmWugc{bXVNl5TUeMhs?0FaDmQ-wJso65sD#hjQ?e(vH)*!H*Ek1heB+!xaKA%6 -z!xNU>m;&v?!hkh%LBHz^x;*%iNy>`nJO1fkU(WH_Co$~|Y|R+x@7j4?iUE@cPSV*v -zb2NK!@hwF)WG4OVkps&viowtw+M>Ir2@n$iq|wnnyG*yUu>bgI35U>f#L$vS{b+mT -zjx7_yfYRSww&N%78(@Rj8uQA(9+{f(kIMI85nZIquydHv-7j7qYv@GgnI>+S;^#TWH@UD2&Vv+<-OtavzD+Pm -znKqTe%_%D@J1kaBQQ!s#w%D6!N09#t>l(O??`l^cu5ZI{MDc{T$tw;5&{}}f -zHD}C18L3h~BMlUJd-x(%zDrcue(iBBX8zzLI^a$zir!hUbCOJZ19V}*XW -zimm0nxn#`QPQTa_Q}4yR0DV=?he%;5-6^j}pxS4Q>7^6j8e=Ypo(E6L0hDIb?hw9| -zE5Ii(m2=44FGgx5u+EJVD>stvpZ)xefE0IybJ0@{2)GaS(0+Ca*$@BquWkD)hjJRP -z!q%oTv(?40bWqc5jq(nf9~LQ^w&}HT)i={cP#MAcE=#X9LKEYk(t&G#e^66$EHwZS -zROSIb(FUXakv*f9K{>vikYQnKR(Bpnfx1-o0~_#Dz)7F!bh;`%UPJleMONUODLSgG -zm9VVP{3OX>FJd8D4BL7gQ+Q -zW|UR=yQ@;R7E>+22D;%_G2Q?{?1=MO|>* -z8=dh!Q%S6ebGHP$?f_aKp!uV;7dI}DpBBbINMqr~G!dM24A~{F$$IQdC1iqVnUpa^ -z#&)@7v03uQV7(X$qt2_M5n=Y<48A9K$wU;2JP3K;5LQM(xW5r+$Svqb&J*?rC%fQqtr6U+>*4)5P}D6aeTd=*t= -zemxs%%eVok(4AOR1AqbQqm@fFIX(NEKo)AGXOQ0wxR!S4CGA_lI}%&+Idv{vXc#0)ra!218YL1qw&Bb8`$z;)#^fAHV)F -zqm0`_3G->cd6o&Cz_Lz7Ru5*v47dMe-|db8xd?y;NS~&ESt(t3n+!^t4Ddy#Kqqk$ -zkmOz>w3i%1Tl=>BV+4=~2b7$7lzxvy4?oCEg{!3O&is;Af@TIJ?f_a&pmTi8Uq1yc -z{*MQCTW83L&ER+ws8`nM`mNY%tFm;)e1g__1km|rAxC|dMRnSdoxP&52_zrhI};_qJA243LhP?`EU)0{ApQj~(Zu%OGj8fz(S@xwU)vZSOx} -z!21Eqjj3E&(3_t}F6OddB=F%8hlFxj=ZT{OL{GA;3Uy&z~Nv2iztdes8+? -zZw(-G10(&VK!l~aX@Z9FLq7FqqEpT_&0@wVq*{Se5!$;D8IBHP;e36W*(D=bNlRHH76ky<3_Ru=wuMC7`Uu3+hh*P^BANm -zAJ)JLL(X0oRf~uuf2ffn%Jj`P^LU2!U{7SUC7V5{DsAN98oA;#zjh=686b43oyHZz|y<~f=U;0*_S5Ik3p!!ZvML((4aMsXj -zPV&3!S^cesV#waFY6ahjQYdY^1CGiqUOMD;?ylmtq+AV|xqskCVW-c5zdU{dDXTYt -z0iZGMsV%|f{A}}vE`r;x(fWJ4l*T628#n&5>ni=+;FCDO-vk6TC~%Xq(58qA#;L-H -zo18Xne|d?}Y5zTRayA1pThKk@mod)Hc_*NXV+=X?Mq-Z#L6E_uS)I>^T~8s;)5-{= -z-cA$}4lGB!i7)BPohV&etHPoE`w75vo(95U`?F-ILzubSwuG%&7dXsRg?$vt-%KfK -zC!clrN65rBjc(WzWZhz2P}cW&t0=vZp*D35RyRl#tvq`eOLfe7K3>CF^^aL-XRP-F -zDIcLn2ct;~2iZ#}8ojIK7r&yaQBe8DU%ARn=ub9pC+{!ef>rS=j@C*^N=@xn;+yGU -zIAZn*qS#b&?fF;N6%g|eZBd@N{R#c!iqNoO9uZb4_akZa -z)QU>T<7@SE*0yFFM2R!#J^+%zC84G$n;N^IDhbFh@N!uI_G3m9Y#u?f|ly-+K%O -zUj75jiu4%{{NzUR(QyVrVT^f3(jXTXHqFlo8r9BT&*-52kOGoMcPUc#ws*WQP~(Y8 -z$5mE-z$%7*q4C#t_;E6s?tf-O5K^4cW7;MDkdjypl$9?a6|C_R( -zl`uuegN)-*#58=vqvzoV@S{M`^5wor;(QUT_DE{?K>utF`Yp5S*d1A3Mh!m4ZG5J; -z-4`}QgA8{W)^!ks&_!b3KyWo*`BG9IjXzaIVz;qv4sam=TsPJ=hZHNqi$e60Pw7)( -zW1H0Q2JMjTlFXb>Q_I36HEscg-^bfzWRcNTQXl+T=bl4m;c%B!uGxW^HC1|85Env0 -zzCW8Q&3Wmgri3GB&_ske{%e%c5_Danj&lhsQS)4x4!Rp^Ow25qbfw% -z*+q&gsCvBazkJejk -zg2k*k*9xx&E2FDBP2)2b)MktG&~qfaQSq#^E=UDo`YV$}@3u?FhBo|qaXJZg4C3Cu -zihCbz|FYc}ZLfR4d=mBv0Te&Yq$`~ll+^ZC-n-^gOF{BSZ|A=ylkr1M@mv3_uIK|J -zI`T)X25elQ_{LBNzOakRq6&kU1JnKWiG%f|byL)F=x+zA=0TSiEqFACsW_7wZzv8B -z-kBuMAVUK5WAN{5Vp|Ql+2a596GqvbV2wFOp1p{tmYr>&^g)KMUAZdZrNsOG(DDgL -zuK}nn7yhpw_SffAq+zsD(eQd077X_aEc2p#H++*0mH$}JM4lt(HSfYHXXK^z{Mck{ -zw^lhPc16g)={%M^;J9{Xwl^K*{h1-3#LZg@z90bq2Mtd!g-``6+Z=UfKZ5D=O~D^zTjLWe;m4bcYWB-UPW*t=8}e8`hYbTtz}-7wNWrvHZ(8T -z)v=R>&EPvhNk3HY;v~q{0$;mOXWQQ)#*#D~oFxB8xiG(8Rh38N9&8DHNHm?xc;11S -zvX=qxIad9TJcChbtk=f4eVe=Xv`aPjDV~zxR2g)p&A>40FVhV -z-62`6Jy7H=u1j42^~US6T`TQy?m+pTTmiFad|%coQ>8K?REP3b -zH)v7msn*!H23E^g+1{uQZP!8EVJ4eXy}$mUVqsb7>8_$eCB$v7*@)GZFw|UyC^}tA -zaUQ86oReJs&k;eED+yNpR)11TfJ9imE@!FGGYF9<$Co3Dli_7g;PU*ZIs6FmX&h|` -zbjkp^KUyH;lI-=vZtk^ -z2YM3bbEC2V;dzr})qCM}2Q)jBKej=L>(w;TTZOju)Qk?ZFR_Gp7*Yc|6rma#4VB -zXqKE2p`T{Co4Q9SjopA=`)ye2MlWCGSMi}oV$L@I&PV0ck;w<}@CUBm+MJ|{zXoIl -zKoMD`g04zIGe=h~gbn8ejN=~U7AsKD!?#oaAx)V(ritULuj3*Bmt_`X@TFruJI)1R}jg8w$JNFLQUd;~+Cb0CQX`I-1=%!bbIvQ~tJ7)Y8dBmGvtE?LOcAT`}0_3rl*U;#)e2@Exj -z;nJ86B!wCBCZsdG#(si_fLyKaZc(3fi+W>yBs5&th5V!G4)j};C4_n}Qe`M&z` -z(0+~RlI{a$(0|@wpf(3Or5ub%D*%38J0JcaH2)t8kn7CdxoUHTQA|4BxGojK-0_w- -z&K5QXf7Sp0>^2V>4Mnbo+b>mMdFXQ~lCjNrT_wV7mqhf%3o*AemyVazG@#uxJ;G4l -zKw)M!S5obKS8{rcO_N2`|Ac+Uc)DyfOkh8vYI)-zT_gUXOSNUmUl2kl2~mO7$GDKu -ze=od`ia(h;$B?8|S&VzW7j8TC@nm5OBnopFm2`yDz%5tmO8cb<{oj8#_YSrCx&n9v -zkQ5r&=(c&;#*>*>^9}K1BFayj<=ln#n)dfR@7vsyc%ZBi7lfD10Ob-AdHnO4`M3R0 -zQzm>QhtO(-;vF_vz0W2@7KK1X1;61oUO1brM0 -zz(z-`)+-re)YB)Aekur;2BnQ|BGHo;;*{p%*}#v)3iGVqltksuD0C4ybV~OI -zsq-?*sxKEFgpA41-@LOs5=*WSq})}riA>y5oQ}axkZbl~)GA@TusPa$Y9fJ)gs|N< -zfYs^bn+eBl%{Obu+kO=+6!TFnP8&Q7y)ZX9WE+Gq`okJ7WT;K5xk_Dzh_sq>=7n3VNuo0*pfzmTV7V-%TBP*h*0DPP0v;*naQ(gv$ -zggsTWZo8hm)0R@e9?Vz -z9{i7v`eBs*8DGB~I%euiIqOU937$okcheWY{Vv|uAsRymW$!)!K6F6Yq&_UKebzPq -z9IMncdym%kdLr5iS)BdyH8fJe0-=P(ffAYK2gyAPx&*QcyV{bo3WIX%vo&{%2BU&x -zT)kj&00DO+<&1mzTY)N#ApK&q8C+&XVCN;nw<^1 -zU{MoCUl_gXA&hgHV}h*oFfy9sWu(EWE{wO+__8C|X?;N0Slq~dt4{1ONqNIfw#kOD -z?fL#cmg>6K0o{6pjGw{5u&xWzMYT1)(2IKc7u=lB+OJk#W&fj3;bGT`i#=C}h94?q -zPMF3)SOt8VUmJeg9Qxyb^?8}Zj4T?+IN#j -zp%1NVXLXYmG9xzn(#?|DKVacyJey19J5@C^FeGFf9+qN6EpMDO=)a{0f^Yb17lGHpV0UKmvaYIeE$p+9G)pehj+{^D~ -zhI;0XNNS#M7#k7EG%LUBJd)YE?}fw){DCH9fK&<*^Kc*oxD%1r%qR23g;16l{5(Nv -zlf0|-X!GGr8zHufK(_pZVvsIs1Dz$M{YDY7WM^N)%^xjP?c>Y`{)}Msr~qPJ -z08;?!8|HE!9{@Ts5HZN4M(>kg_2`7e+WwEHvyO}6`}#O7-3Unc(y4%SBO?6;L0Gy( -zq#Ma4rA0#N5RgW?rMnx6rKP(ho?(~Y^Y_kc=gz%%?woj^&*@E(C|?}DCg5$^9lWC5 -z0$`Fzf%@w~|ym9?(tf;^#dwoYU4oK-$$us?V`A(Xv2eJVmUD~K#%AOB)DzSb$0PWrI -zTfL5z2{(M$!$3+W;HR7;ZQ=6$i^K}#-1vYI+nknJxDJG*ANjM3Iy~)l -zOp@@G?gy>))n<(gb(GBy32_yz$1fXk{P+?ImhnL^L~n?VUjN%W4(E;I?EMAXeS&BI -zAZhSkDH7Vmr(}UP?BDt=*W-370)E|cKUNk9uEh<5p6`!j%bdmY;|V5IfyQUJh`3fC -zog+w5zPuCeFT6A_=h;bNy+4M5gs_K|bs`{j%n8D-f1&Y5by@t|lMZRgvyl2csKy)g -zlPQ|j<5ajS1no&6l;-T0>zMsLY#%C}%D?+Ga4eq{1B-il)i1>hoz;hB3s?c5$ld!# -z>pdqGJ@(y)Euczqf(`Onfe9$1M%wU&OS?djXB|4^B5?NgdsG56@+hk|uGQ7)E;xkc -zQuxMRK3*hyBt2bkkzwKLm9n;#t|b|N?h$gAsZ=aE7q060AlK1`2!-4sTe?eblYNDJ -z1i#*8P3+O)m%A<@S@o%aH_AW{q16y2nD)ortac*9-(_A>x$V-7ZhW$IeLS7#1N#s4 -zGb=<}as9i9_Db`_`S8WoI=2f4xIf%@tz3S6wu%v?TFo&fy^vOMeS`(tdps$NwzMng -ziTg&ESGgpfeevJ$SGb{VvfkZ0J-Ze3A -zk0dyYw(PJj|7McpC==p5M9@3D?zv;k{F^^#-O@x`wL&v@*wYyh4CEN6%x~r`qf|iV -z^%gwh$?OV>bh{jgUK?y%=&(4eTWKL{8Od&VaKD1bs+CmgTd(A>C69b5f;{tenHhUu -zN%wT{$)6m5CU|}OQ4Wt2h;Tv%g5B_PO*38;cINzT}j89!_O3n*g_7%>!&u$B0xK0j(iE*$&UUg^P^ -zFZ|7oqGMxv)L@8@Tg!XGt=i}40QEn2=L&ntp74aLTrb|tTBjaHbKP2tKhu46P?_&e -zVjSsGy)OV)#^VQKaoTgKFWW)8kr&xRP}+2I7Cs3i=n_Wy5^5wY4Q3;+C*G;IN=up` -zSk_^s+V->aHS2qYpI~$jn=G~_0%w3;JXXf7LMl_>6A}4A=rHi%x|oq7^C(`v$VwI= -zKq9P}YomcAwKC(!PlqDV`!W4@qr%f9sK3@}qM7^s=5`TG_z2yY*3x#eBmj@Vk~9DL -zH^DW3ROL)9UQTJh?+{d-@S|h$IaPb|EFKA->Sv>T>C!b?rZ80Gs4$}zTbS|oQgg)P -zjYbcN#K4Ccn0?nn4amKj;OfiLrY8#bJ9fHaI41M^3Ld(>GD|tR2E$q03u-3*G%drP -zAO`)9OlrL+eW=?QA=cn#VffdHnmycuEn2<&K!bQ_X`?0+$&2_$!Y+WGAl~? -zax0?8lq0$QOT9XlUijJeE*CvQ~h7dRP6Hjh_kSgm7PsZG7ZB -z_&O`<)8%LarsqOt{?WkLo`P^&+P~l6&H0IJJNY@;CjPb4FRP -z+Uipp*F)pJok_&F0{OUHhO2(epzI;*epz6+1&3^E-+(xAn^-DTxXY9qS1oT`f0!#3 -zH5YI9+S)*Wd73`3B*37Kw?~V%64G0fqdP#}(0zw29z~0S)~i)`p#3+=Bm?dh$dFj2 -z{<0R`P8@S(E#U5mJW_7drD+7#A_XGb=>c(1k`!BRo#4a6mV2@4gBSV5pg8yxwLJ*p$4)!h5y6_z&?!o|5jxY+`@wa9WAtZUa61ih>Ui^Ka`hMdrIfm&!tC -zQ3fAG6_R+C5q)li;=LIaRC5#q0J#{L9YGnAYZzdGUEY<_FT{~#7WDT35o$K%-(6#R -zcwzpvYlnd4eHi0Q^2f3Q5N7&d*5H}>DnQ4a-VXl`CgCETb!snXuh;ZlejGr3qi#HD_SBn29Ip`H9fb+EbbLzMe#M#> -z!V&~loXwsz*Z@b7adn@Ze`R-smt8`ZB*Rh;voV#CF!*lpPUE$1>KOlR_+WL!+ -z)=dHicCMxn*^Y%aZ -z$>DuwmQ~ozR2`{zo^R)+b>j&PsO%<%e6aY*-DCN}k)&!NrX)7YFN4V}Tuab$n(qiQ -z)N(CbA14kLG;Twbx+@^#RYXC~3R4ye_Cl+Y*5};~H$A9kh?ipdG>7n^L@HW`bT(RZOlMGd0Q#@9U^1P>c -zcBjHrF11WWoa^MwktKe;LVVwI+I{ED5###qk)9013H5thG^FrSHoD)#z;!K6!>~Tw8pvvzHEXS%Jt)chc9!>$DdI>u>xolmMUR1BTh^L%JjIkyAK9?Kq#67~n -zqbGd{0#ORv6Vi89W`nsAi`Tvk;1P4j&ssX4JYHaL+oku)Iacin|56Q6fP5Zmkb7WZ -zsZR%!|3uFl_cH@{sB(fNC}LOkJhKF}R#zcr -z4WIhT5}pY4yx;UAp`ufz@`@jM+x9wmbiEu_Mw^UGZ#ji0ehQknDZAIY%;)#1zk72( -zY&ZEpZve@fKr_{TXZD)}w7SMOAa9ULm^SgG;pzS1gIQopiO{{L3r&EP6Gb@A_F2n@_-~>a&Qe8e4EmTmDv9W+@y%M`W1_XfEx&e -z!;&C?tkwPM(e|c^!V>6aCtvKjchlN0pV5cY4RDIN8Qk7dc4%cBZ^)C7a1Sh?rJV}`NFHP^y?mf38ks05@v^|J~t$kM~z`GHpHZ6WFE&SJ$riqCUo -zK+^9HOd{hCxpDsDcp+(?ygVtIqZRJirPJy))Gt5L>IZjkD14H7V7F8j;J)TiDb-ObQUM?;hDce!eMjK^5{C?-O -z|Dw|@N0oQX-(rF?*)`g4I_v)JhI1@hOAV6Xze^1uKnNA8H8wy`iP}Nm+d18A9VtT@ -z9DKbm=8AF#C@N4`@)TJnPe^^L -zEPgw`bJWVl(%6m?cNg)x?KG+qiK<9V)k{b03P>SUDC0qVwa+HnaNh;0IVPdY;kF?b -zZT$u@s;o9Ef%6!wCIX&uXkwS-tdEDAtVigfQ(h8ONr!!z>(Er0)MQr0z@&e2VfEX6 -zlZ)GDB0$fZ+2f2KEQX{8eY<0v6%x`eD;7@A=gPq}^g${@gUzv=S4cE_X}HoIwh}1h -z7Et#1IzE>UobJVXXOMAWvq;vu4x@0cN=x_e^B;mLv$Dil&Iv*^v)Z7mfq`_L;9ndNz1&s -z^`&>aV^hy76*82g7r?Qduvj(d%~TH;*T|V^vE}Sjn(Yz$wZmx7nuyhF%MP=m*f-}X -z%#p=|L;n+^!@Mv+z2IX*O1H(DMd&&%jv#j4MSEA4RhzLty2@QENh9C%Xt&Ags_U4l -zGF&r<>{RTH4TF;m(Vw{2EZdP2b)~&jj*>~EGxhP1z-dN-omSucB|7?!>-MDi-w9bK -zk3m!QMtAtVV}HNBvUub=N<+dJf{gA3-*!reV|-^Nx*TE0{!gH7E6S|D17$<=eP4a6 -zFwAg^(NX1B4V0MD^S4#sjl9YqcO@Om4);|0Pp#UhbKe;AS@bhu+MZ!_so|gPby?Q7 -zDJYqdnAkO*ZH3+Qegr~6ciGd-vUA6I89+Hu#yKeeZicVHp|QkXq`Ye|@dui&y1N#` -zh2TwsvJcaei(CLKm&Wqk()>%LV&iAeI1Sqldr5VudO)4xJX=(AbmAe41~w=zYQZCO -zSzqfR;f=4tBQC!>q~i;2QLuSVZHPzo*$^rg>ElO@TKI$XY~n$^4zMnjqW8CX23^QN -zTvz#SSnO`pdDLMl+||vG!nl~ABTHfB?9)M2{CLx!srp<}G9<)yO^u#@aRhljn9}!; -z1Xsr@&q4ym>t9TGpPXN)5h}6Fwy`ZZZnvN?!Eg&%k27Zu4F_HZ6J`qP(l^2w&}B`r -zOfYHMSWoN<3+ktN_6lHyfZ>=U+0-WYlqrKIXHqFeTKwdFE;67#0SzP$8LyM~+d -zF|5BC&Csk&McFe=jpgNh&_7TGJXe(#!qq0Bd~Q{Sk%*|C{>9eh<0E>|=5)CNIr}}~ -zh;PJ$$NvjS#pDO=B?401Y=)ZF_r#U%OUvb0AJw#K_y|-_EAhpkS_op$qcpWtx4VzO -z3tPBWrNsmPO{$WG&wMv*fnS&AO@^$u(HkqE^pD$*e*o8Z7-9Qwpk`qyH`f`8lmo#T -z#IJV5@${Qs0&E6QSPGBm$I}DL1Wj^BPGu~-vExq2n%y^kVeiK|oTq#g)OO^V)=>?F -zEi_G@_`!eC^-cJ0G8NwFlo0C9-gnzaCoFhGxF$3kaOi}()uZ6<nP!h!~yoRx9~T}>nshH9UJ -zo50h2Olmn!#=-@2jrN)hGdRRlN^SR1_J+2kO2`Z>OdQAow1&i)RO_W)FqVF@I~uCp -zMQpC7{b=xC&^op)_dp0-cN(iOWVYT8QoMvLytUe>fqJIQNDNqewO>v_aABUxCc9{tqzpvHI5OEWgbfh -zSQr*IaKsYU(wj|+u1&VcJ&GKWmxkg0QoH1h`HX&J)dVwdfT44sd4Gq!a8+RAC|?9S1yk -zTh@h}`Dnf8Pg(0Yzp&@|xVL1%wOFc@apGye$iBB=Lv+3yZSS`MV@(nrr%^C|@7W7i -zKxA6jXk~)=oNCOcb7>;VAo1^sFS-#eH!75SKPG3vwy%y@_}mbZlF+Z-U;moXXc7Km -zwRNYNoi7-Y4&m2u)S17MH;XUg{MO -z)Fr=QGBkWLUyl1l+gD05rwDY%`O}2|oxSmIn0o`@4euLWh(9B{FDG02{Gn1qvUrd^ -z2J(&ny#zVCfXD`Qd%j2>z9_zYiaL5N7+ -z-|=7)#xEjK9u025*sz`v{`Yj>QHg5h4!)kC90?5mgrPG$JS%BxANfK%veIEL;ZpNR -z??!D8xtLuf$vo^<@{JwJz5ICB^1?KEn8%kH5pV4ObYAwPPF2z=D9oN|uu|1-U_4I; -zF1vC`Fh-zJq{Zik{nuz^eVrdr`lb7%dF$!>@64=dH@HgywuWs1kx2oc$#Z5hYy0^H -z8Y#lUks4BYg!lEFA1hXk$RLSX3d#8W&*?TCf5sAS-|wjC6Cm6vG~dY-bit7ze}$`S -zApuF1PyPJmOcB&1=O{Hj!FxPV2ct;@dMO}S2fIwV%VL#}kIpgqQX)+M{mJj&+MUzG -zwJ7c)JMN!&SG$!nu`f-ciSh)`ImY2wPUE$DrvmwyZkOYf*bFOmbsA!5adRMHd!i?# -z1Rm}Ig53$a)zrP=A74`m`N`_2l(CsMHS;!Ojsh&Z-Ow1rs)3%cXh?h5%_(hh+^1)CqzZ{52`I*BXV3kh>Fs|nL^_HLlU&~;Wl19_Vcmp6Rw5Z3f#?g9Yf5P!Zc>sV&RGP -zl?@OHO-r-9m<`iI{Wwe3L#2-BK+A`ChT^hZFFMo@gA$}sf>?O@#JdE9kn7m9J=DNN -zuGD{VxpRWwmiCe$?wcJmtzsW{kaPDpOtI0p-$sQCpR>%gSHN80wSk -zyXDg!31{(HPYAsXIF}&Q4O{hN?RR`GPR|MB9A`lsaTtJwzt)xPN~G^ejLnimW$Ad{ -zE`cecY<0Tskefh~ZvE5Kd8H@5xeaFXAAPf|HxyHirbT4zXhoxqwpSHw3=C^hBa3!i -zVc~LZkAh=Q%QkiE=t|bC{SfJtb`7B%WU?kF;=8{#at>~@tlFL6QlDn)W=JI%Xpm+F?@@&^WgEp9=kAq?wdLZG;=v -zWgeQujZB&~9OHY&>VY`)h6R0qB5LFuWV9Hd*+Sb85vFt7RR{;c7#gqzXpUN#%=;S4 -zek9SQnkxL|*$+KbH((0@&%B@E@eT`N-EAUCC82%;fNNQYGVJuS9kWZb<~k?JCerHP -zL$aDI(=af23kG+7=FQqj-H%!ZcuJc)9lvJx5l*vhL-h4W>CM6-5t32cb>6H;_XRr6 -zeK!wia9&x?C|j1~JxAxeAh7!+nw{g!cSi7`E&R2*Dy@4+-<+^TNom>!jDeIXrXlb?W&r> -zUeIx$MIkQXd^ZYsNtS`4GLhU|es+?N`uu3)YOGwejXgZyQgMZ(Je1Oz!d~f@tP*#x -zwq$*>FXEh4Ft2_Bh6h0CoYI`+px$<4qWk@G;U?xfK_l0FNg0E-)b*Bnw6E-Ua{a`( -z?&}bBO+HtWJ5d`cPI00aMv_{oPSaieSC?O^i9DEr;)*Z+lx1WS4So%ShOdPTaF^5l -znS>OT>Sj3UQvid -zDB_!`-De6%fje%zLqH;13sK!mF1Sfs#-{l9Jwjg78ztGB2}Hw7 -z8F^PD0eY5mj@nmceSTIftse5a8*@rkC-e+M{V7gkwmhXGBN&PYA`}~%Sl6oJb#PLY8OH32!P6W9LSbBAR-tSo+0@l;RFLV?8ZGs*@VDHw7{AGKW -zUlQYU-B+%AqqO2gCaOXT$T)Z4e<29iWPa$evaMdFKNw->MXk(g;0(34BuZD>)DBOO -zqsDPIL*QEpIo1(MdN*uLeEk}ZhgP{j5j~rMm4SD*wpCQ4R-D6&Q+s|}$>OL`j3UZI -zK=N^VuN2OA_Jv24lvuG((wb8<5MfJZ95z>mO=)w+@nSc>cv|Z-_5yZSTIx(4(GO=_ -zE5FFI`?Za3c_w}yE!*(?mlO1nYK=RHozKkx&VB{xdD7A})8cN_Ufy?csPNs><`F|) -z3r@`x08GYJ2QTxMMEP>$Ti!(INAr_-q9c6RS-()n&uX}KtCB;!7sVL -zw(s*dT<6=BIB@UX3~#SA^#|%Aa(vA(#2qsq1x9{fJdfej3}yo-XbefT2+jF?DEbCK -zzFnaVmWr8@Pc*L%igF}1(wO+1qArW^NgX$#t9Z*>xW~WLcrCdlNLRkqUlWZL{z9Ra -z!w$s&<|umOYrUYI89Q#`-}(6Ur_~*2Hut~_Sn%3j^3?o;pX#E-4ugFx1M%Fyypw=r -z#?|i+dJzCY?ZbO8N!06}O$%;9B6;E!mtE_)Dq`ea6_*_<@97+x{E5U$@=6sg+k{ -zu`Ypdm1Z;&=Y(`gPsI13ZRoy!FwOZX(KOUoZ)r|8Hw>(!z1b0UhqWVskdmg -zL&6;ERUf1T=9M-tW=p25w$(%-zmSHOdY{dp7NQxvo05Iy(bpX~JRjxPLk&^ICc_u;w{-?jWk3CI28GTn -z+ZnufAoR`mau2x!z+_Cnxqd&`{mYuUN0EuAb0%f%qNE4zDp9Cnx))Wj_Kce4EuYjSnzmzj^@rDmZsyeC?A0Z+0BGsZ}PNIOuh -zV5n9ER#$qDhOKvyQq;mLx$WL;!PH?)RAhvqW~mVr8fX8i -zNf-F56Gf(6ZvIP-6CGR!hdaO_8F}dHdRk`hTjMmyYt1hruT=l$7Izi=Z}5(Zg;C#H -zx1L_)f;5lfU#x%>MN%H8{?wme74KP1ULcO?2l@ur>G(R}lvAY>c)WW+yj^DRh>!gMKs)l=HQ4f<$Gw4IP8=0kWYX1)TOC215f$KNiz|3$5ZWav-% -z!qq=e`kz|FM|FS({qc#B$<@%>Me54FKqSK0Q4H7v#kr;48+)23!$fOB>$7q|^rFr05 -zu{Ov8C)C -zF7Nn@bk@Eg#QcxC8?b+oX1%$!h8kX20mz=hLHgy(ur(aHLD)|#N86^hjo}ntT+{XD -znf#^gpFZ&#d^;u-HV6n{Mwc5@=MrvWNLhrv13kuU3Ra}OU38>D5=UI3&5;@sd?eJH -z+$3;{WJONm7-F|}ZX113Kzah%;7RUFm){W6upUty0 -z-gjYb-cR!39Oy2>i6#^2==Tn?pi{3%DC&lKwD$8CRipY##qc9;GklD=t~zV`NLQkV -zgsMMO=0!^bM_d4Oi;zm1oIGgkT2Q-+n+aW -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 -z;D(NX#ZcGhBk%>J -znqzX`l;BpY|L~v+FmPcai0-Fm%Q(n*aJi?raYxkgis*dzfdE7a^{>iEXEccpCAFAuFq;N -z1Uj5Nca*Hmum#lZt}f#vqML1X=dO```|EY25;01fS>Pfj^sPS*m%uAGIYT8aWx!xtqL`&%V~1scutSJKIB54*c^K -zi%q40_&IH?8o;)WYpNxwO`ziBaSN*ySaNCEakBawaK>sZaUIy4z?1VI(w3PH8XF+b -zB!xC)Ae+<#mIy(X`hm({4rQ7rZlKyZNit0twb|)dRIt;8=d(vxA|nF@{s(INqcZ-J -zURqZAsAWdxNJndqf?JMU9Kw5(ExjMWlmJ#7qE|IT3vdLZ?Og#nI&@5O^&@3qs>0M?iD*fu3yfMH&2meNwJl*`_ouB%4)-xYvR{`QHH5 -z7Sex6eMUJwC}7iVk5Q`AGOZ&at+r*4xBm^}k?^D^_AsANR(=GA(md9>nIcW`CEKhqe=v|W0fK#iyz1N+P^4nUbWgfbxm^X<8Bsdx5_w#U0 -zppCRo;1GI6c!Qf1#;L3o$W9)jV8a=%XV`Zv@f8=I{-Lf0pMu6zIE+X|G1o~9=#Zcc -zZ#+NtRO)Y=K5~Zdqn{pFE4JOlLq_Gg7|IF^eo~dQRB)R=K~fS$H1vgkZR7uHza5pA -z7B;QN5i~-3eTi9^n-cyBx4~Ew91j)SxNJ -zMt8-!A -zX`&hYlr_>l;u0y(2R*l{Su5^q7Gw!E6}EA2sJ-Gy{__&hW}@{vU0ZP68-;#2Xrb^+ -zg8dp{>#YdxiHIN--zexvtGP`s9VGK2l1xrHA`8x*5IXsVfBwjUfZu>>or8nK^|`zy -zR)tnq^v|RT>PQ9g6cpz;dmSc<$CBZ>~U1Rr1I!99^PmQ`!35>_ezA0&;StGIPzV&#MTZ;NHoU%{|C-(2b$YD -z)S!0%#p-YiXuH)tH&uh;EwSCeYi2;+?vkfmZwWy|R2TWJjq|0YnFM+vY+w$0w{Djr -zcsxf(jlQJkQ&Q_zB-uXMP9^sCS>yCd6p|8|-~OYrrdCR$mXs#qP(@bhR>AgY(_i)b -zNVw#WI*B+tioM|Kq!W-ZIh5OBcqQGErt4W!Oj+;xcVovAwnr!(WD~i*d`*2taqRBF -zTbNkVy;Sk>NsJLnPJ2POH}fJYga|1hCo@_BemO}zZA`x@Q>tMuSt5~YdN~VohS3f= -zKSrZ>tmQY@B=s1Z)D8L{+ihLbdF<9Y#c5F$mcH)rShVR#?rucO5DPb4giyi%3=gs- -z-!~9h%U+{@8NOCSdoxldF5jnEZF1@N*wV{+pAv<0z^ZOyBR(!fIcmc1rxZH(pfN)u -ze&s#RW2Ri4*ys6+th5e3It%)QUOAE;^Y2DjOFl${uVE+e&y43d;G65y(;b@fyg3~G -zZ3YEq3h7sokW9CvIGF2gOphXHwCKOj#oy~ -zkDm)MS~pR2-IlYrDFx6GJ)EVbn46SOT!II6)Y0appmtto$-&6S%BW+dAiK8?iKAOR -z%`qul?c~8z%!Fh@f2ZQ%N&CL3gJJJmHHMnFQr}*FDwi6c3wZxTt$s-0fXc*i1}8xpJ?U>!zb|{1F41}~68yRPN#97(5CZ!Rg_r*~mCZC#SKBMs+2;_6Y&TSo -zXpN!nlE5v8S@@9l;ufm75IqH|yCrW~(7D#^j(vFw8J=VqM=|p3O(v*r% -z>Cn8lx*3ND7X@JkS{yeh72FNddDY4)mmN!2&Z~ -z0|HR}49$Bl-C%?OI=8H_#vX#>E1kX$eRiKPrd^aBVJP0Wln!cn;+BDK(oSwTNkEw3 -zp*z~~^P11aZ`DOu$8R!`IDWmDAaUpOa8L>SlDv!(3_ULdR?%+aVU{}fZOg{b(cL$X -zf(UMuDi%131V?40!3f?@Wk9k8e}eeO)*mjp{$Kl4!9h_vgU~8)_f@!bR&bUeA305Q -zV=b6{9*#j!W6|wykp1jc{2Rohj>!9joJJqXgRaMtdMPR`8hfp|I~)E;OIzg@tZ&^U>%!}yzxV1o~&0RJ~qPR~N>o)l1 -z287KsMQl(@IRgTn_PQO&rjJn>m~Jm06n%iutLcl{C&OZz&oj@?MY@|kpfnEe -zHJ+-0^BFZ7WREZoyjqb7szR#F_br%`ML;5`T$yMJX=s5y5@ERq5fdsjZ?1%Dc{d+k -z0)F@{zxniE*T*ZrKuU9jK6_#O={AGA>th=9XO)0L31sr5`;gcfGAzJ{6Thxs((gv(04p*$Z5YtJum1MdUvrao>-cL1&?-B8!y}$3<{K4m -zpe$VyiCoP@FQw0*bV51@^oZ;*Df7_O5Lyaj0PVNUL&^O$728$?zqnu~#JLd&=kBLQ -zSnU3)DaDNT1l9~H{*)oP12If}a-%^zc9`4bX8mY6DYH4_*VBnO%lc10Ql*P8eFHr~ -zwj5`Hb=~%i%5Cy(r -zm*4mI&d$tx^XlGn?m5h>=p}iFt3@$Sxk5(7A`BGGGJLjKDm(H3LxCawpJ>65@N%g~ -zsgD^xEQp&YI&KZFhZ`IxSDKI#LtUf2Q{2W#!3P`%1PZMyVc3cyEiA2W5lI|CMhr2Jl?m~;jg^+o)|0U4awA;{IBGIcu_>G<7OAcI3E7Q(gu?JXg$TeOw~ -z70-3ylufQ`t3dl9$3XLa;cKZkUw_Z^{NScOn1i4M{B|WNWffOiw;> -z@?9{wq~}f1AwaVLRHjs-J4!(fkJQgbYt4=Zd?H7EHfdzkSHn*|ZWh}BE(9Q=MU*