From 2821925bf7ddd55e0f07312e850606c4dfdd739b Mon Sep 17 00:00:00 2001 From: cringeyburger Date: Fri, 16 Aug 2024 18:12:20 +0530 Subject: [PATCH 01/61] migrate build system from `setuptools` to `scikit-build-core` --- MANIFEST.in | 8 -- pyproject.toml | 36 +++-- setup.py | 347 ------------------------------------------------- 3 files changed, 23 insertions(+), 368 deletions(-) delete mode 100644 MANIFEST.in delete mode 100644 setup.py diff --git a/MANIFEST.in b/MANIFEST.in deleted file mode 100644 index 6b0e944a4c..0000000000 --- a/MANIFEST.in +++ /dev/null @@ -1,8 +0,0 @@ -graft src -include CITATION.cff -prune tests - -exclude CHANGELOG.md CODE-OF-CONDUCT.md CONTRIBUTING.md all_contributors.md -include CMakeLists.txt - -global-exclude __pycache__ *.py[cod] .venv diff --git a/pyproject.toml b/pyproject.toml index 5e9c891877..5bcb8cdb74 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,15 +1,15 @@ [build-system] requires = [ - "setuptools>=64", - "wheel", + "scikit-build-core>=0.9.9", # On Windows, use the CasADi vcpkg registry and CMake bundled from MSVC "casadi>=3.6.5; platform_system!='Windows'", # Note: the version of CasADi as a build-time dependency should be matched # cross platforms, so updates to its minimum version here should be accompanied # by a version bump in https://github.com/pybamm-team/casadi-vcpkg-registry. "cmake; platform_system!='Windows'", + "pybind11", ] -build-backend = "setuptools.build_meta" +build-backend = "scikit_build_core.build" [project] name = "pybamm" @@ -156,15 +156,18 @@ Xu2019 = "pybamm.input.parameters.lithium_ion.Xu2019:get_parameter_values" ECM_Example = "pybamm.input.parameters.ecm.example_set:get_parameter_values" MSMR_Example = "pybamm.input.parameters.lithium_ion.MSMR_example_set:get_parameter_values" -[tool.setuptools] -include-package-data = true +[tool.scikit-build] +minimum-version = "0.9" +build-dir = "build/{wheel_tag}" -# List of files to include as package data. These are mainly the parameter CSV files in -# the input/parameters/ subdirectories. Other files such as the CITATIONS file, relevant -# README.md files, and specific .txt files inside the pybamm/ directory are also included. -# These are specified to be included in the SDist through MANIFEST.in. -[tool.setuptools.package-data] -pybamm = [ +[tool.scikit-build.logging] +level = "INFO" + +[tool.scikit-build.wheel] +cmake = false + +[tool.scikit-build.sdist] +include = [ "*.txt", "*.md", "*.csv", @@ -173,8 +176,15 @@ pybamm = [ "src/pybamm/plotting/mplstyle", ] -[tool.setuptools.packages.find] -where = ["src"] +[[tool.scikit-build.overrides]] +if.any.env.BUILD_IDAKLU = true +if.any.env.CIBUILDWHEEL = true +wheel.cmake = true +cmake.version = ">=3.13" +cmake.verbose = true +cmake.build-type = "Release" +cmake.targets = ["idaklu"] + [tool.ruff] extend-include = ["*.ipynb"] extend-exclude = ["__init__.py"] diff --git a/setup.py b/setup.py deleted file mode 100644 index 95108454ed..0000000000 --- a/setup.py +++ /dev/null @@ -1,347 +0,0 @@ -import os -import sys -import logging -import subprocess -from multiprocessing import cpu_count -from pathlib import Path -from platform import system -import wheel.bdist_wheel as orig - -from setuptools import setup, Extension -from setuptools.command.install import install -from setuptools.command.build_ext import build_ext - - -default_lib_dir = ( - "" if system() == "Windows" else os.path.join(os.getenv("HOME"), ".local") -) - -# ---------- set environment variables for vcpkg on Windows ---------------------------- - - -def set_vcpkg_environment_variables(): - if not os.getenv("VCPKG_ROOT_DIR"): - raise OSError("Environment variable 'VCPKG_ROOT_DIR' is undefined.") - if not os.getenv("VCPKG_DEFAULT_TRIPLET"): - raise OSError("Environment variable 'VCPKG_DEFAULT_TRIPLET' is undefined.") - if not os.getenv("VCPKG_FEATURE_FLAGS"): - raise OSError("Environment variable 'VCPKG_FEATURE_FLAGS' is undefined.") - return ( - os.getenv("VCPKG_ROOT_DIR"), - os.getenv("VCPKG_DEFAULT_TRIPLET"), - os.getenv("VCPKG_FEATURE_FLAGS"), - ) - - -# ---------- CMakeBuild class (custom build_ext for IDAKLU target) --------------------- - - -class CMakeBuild(build_ext): - user_options = [ - *build_ext.user_options, - ("suitesparse-root=", None, "suitesparse source location"), - ("sundials-root=", None, "sundials source location"), - ] - - def initialize_options(self): - build_ext.initialize_options(self) - self.suitesparse_root = None - self.sundials_root = None - - def finalize_options(self): - build_ext.finalize_options(self) - # Determine the calling command to get the - # undefined options from. - # If build_ext was called directly then this - # doesn't matter. - try: - self.get_finalized_command("install", create=0) - calling_cmd = "install" - except AttributeError: - calling_cmd = "bdist_wheel" - self.set_undefined_options( - calling_cmd, - ("suitesparse_root", "suitesparse_root"), - ("sundials_root", "sundials_root"), - ) - if not self.suitesparse_root: - self.suitesparse_root = os.path.join(default_lib_dir) - if not self.sundials_root: - self.sundials_root = os.path.join(default_lib_dir) - - def get_build_directory(self): - # setuptools outputs object files in directory self.build_temp - # (typically build/temp.*). This is our CMake build directory. - # On Windows, setuptools is too smart and appends "Release" or - # "Debug" to self.build_temp. So in this case we want the - # build directory to be the parent directory. - if system() == "Windows": - return Path(self.build_temp).parents[0] - return self.build_temp - - def run(self): - if not self.extensions: - return - - # Build in parallel wherever possible - os.environ["CMAKE_BUILD_PARALLEL_LEVEL"] = str(cpu_count()) - - if system() == "Windows": - use_python_casadi = False - else: - use_python_casadi = True - - build_type = os.getenv("PYBAMM_CPP_BUILD_TYPE", "RELEASE") - idaklu_expr_casadi = os.getenv("PYBAMM_IDAKLU_EXPR_CASADI", "ON") - idaklu_expr_iree = os.getenv("PYBAMM_IDAKLU_EXPR_IREE", "OFF") - cmake_args = [ - f"-DCMAKE_BUILD_TYPE={build_type}", - f"-DPYTHON_EXECUTABLE={sys.executable}", - "-DUSE_PYTHON_CASADI={}".format("TRUE" if use_python_casadi else "FALSE"), - f"-DPYBAMM_IDAKLU_EXPR_CASADI={idaklu_expr_casadi}", - f"-DPYBAMM_IDAKLU_EXPR_IREE={idaklu_expr_iree}", - ] - if self.suitesparse_root: - cmake_args.append( - f"-DSuiteSparse_ROOT={os.path.abspath(self.suitesparse_root)}" - ) - if self.sundials_root: - cmake_args.append(f"-DSUNDIALS_ROOT={os.path.abspath(self.sundials_root)}") - - build_dir = self.get_build_directory() - if not os.path.exists(build_dir): - os.makedirs(build_dir) - - # The CMakeError.log file is generated by cmake is the configure step - # encounters error. In the following the existence of this file is used - # to determine whether or not the cmake configure step went smoothly. - # So must make sure this file does not remain from a previous failed build. - if os.path.isfile(os.path.join(build_dir, "CMakeError.log")): - os.remove(os.path.join(build_dir, "CMakeError.log")) - - # ---------- configuration for vcpkg on Windows ---------------------------------------- - - build_env = os.environ - if os.getenv("PYBAMM_USE_VCPKG"): - ( - vcpkg_root_dir, - vcpkg_default_triplet, - vcpkg_feature_flags, - ) = set_vcpkg_environment_variables() - build_env["vcpkg_root_dir"] = vcpkg_root_dir - build_env["vcpkg_default_triplet"] = vcpkg_default_triplet - build_env["vcpkg_feature_flags"] = vcpkg_feature_flags - - # ---------- Run CMake and build IDAKLU module ----------------------------------------- - - cmake_list_dir = os.path.abspath(os.path.dirname(__file__)) - print("-" * 10, "Running CMake for IDAKLU solver", "-" * 40) - subprocess.run( - ["cmake", cmake_list_dir, *cmake_args], - cwd=build_dir, - env=build_env, - check=True, - ) - - if os.path.isfile(os.path.join(build_dir, "CMakeError.log")): - msg = ( - "cmake configuration steps encountered errors, and the IDAKLU module" - " could not be built. Make sure dependencies are correctly " - "installed. See " - "https://docs.pybamm.org/en/latest/source/user_guide/installation/install-from-source.html" - ) - raise RuntimeError(msg) - else: - print("-" * 10, "Building IDAKLU module", "-" * 40) - subprocess.run( - ["cmake", "--build", ".", "--config", "Release"], - cwd=build_dir, - env=build_env, - check=True, - ) - - # Move from build temp to final position - for ext in self.extensions: - self.move_output(ext) - - def move_output(self, ext): - # Copy built module to dist/ directory - build_temp = Path(self.build_temp).resolve() - # Get destination location - # self.get_ext_fullpath(ext.name) --> - # build/lib.linux-x86_64-3.5/idaklu.cpython-37m-x86_64-linux-gnu.so - # using resolve() with python < 3.6 will result in a FileNotFoundError - # since the location does not yet exists. - dest_path = Path(self.get_ext_fullpath(ext.name)).resolve() - source_path = build_temp / os.path.basename(self.get_ext_filename(ext.name)) - dest_directory = dest_path.parents[0] - dest_directory.mkdir(parents=True, exist_ok=True) - self.copy_file(source_path, dest_path) - - -# ---------- end of CMake steps -------------------------------------------------------- - - -# ---------- configure setup logger ---------------------------------------------------- - - -log_format = "%(asctime)s - %(name)s - %(levelname)s - %(message)s" -logger = logging.getLogger("PyBaMM setup") - -# To override the default severity of logging -logger.setLevel("INFO") - -# Use FileHandler() to log to a file -logfile = os.path.join(os.path.dirname(os.path.abspath(__file__)), "setup.log") -file_handler = logging.FileHandler(logfile) -formatter = logging.Formatter(log_format) -file_handler.setFormatter(formatter) - -# Add the file handler -logger.addHandler(file_handler) -logger.info("Starting PyBaMM setup") - - -class CustomInstall(install): - """A custom install command to add 2 build options""" - - user_options = [ - *install.user_options, - ("suitesparse-root=", None, "suitesparse source location"), - ("sundials-root=", None, "sundials source location"), - ] - - def initialize_options(self): - install.initialize_options(self) - self.suitesparse_root = None - self.sundials_root = None - - def finalize_options(self): - install.finalize_options(self) - if not self.suitesparse_root: - self.suitesparse_root = default_lib_dir - if not self.sundials_root: - self.sundials_root = default_lib_dir - - def run(self): - install.run(self) - - -# ---------- Custom class for building wheels ------------------------------------------ - - -class bdist_wheel(orig.bdist_wheel): - """A custom install command to add 2 build options""" - - user_options = [ - *orig.bdist_wheel.user_options, - ("suitesparse-root=", None, "suitesparse source location"), - ("sundials-root=", None, "sundials source location"), - ] - - def initialize_options(self): - orig.bdist_wheel.initialize_options(self) - self.suitesparse_root = None - self.sundials_root = None - - def finalize_options(self): - orig.bdist_wheel.finalize_options(self) - if not self.suitesparse_root: - self.suitesparse_root = default_lib_dir - if not self.sundials_root: - self.sundials_root = default_lib_dir - - def run(self): - orig.bdist_wheel.run(self) - - -def compile_KLU(): - # Return whether or not the KLU extension should be compiled. - # Return True if: - # - Not running on Windows AND - # - CMake is found AND - # - The pybind11/ directory is found in the PyBaMM project directory - CMakeFound = True - PyBind11Found = True - windows = (not system()) or system() == "Windows" - - msg = "Running on Windows" if windows else "Not running on windows" - logger.info(msg) - - try: - subprocess.run(["cmake", "--version"]) - logger.info("Found CMake.") - except OSError: - CMakeFound = False - logger.info("Could not find CMake. Skipping compilation of KLU module.") - - pybamm_project_dir = os.path.dirname(os.path.abspath(__file__)) - pybind11_dir = os.path.join(pybamm_project_dir, "pybind11") - try: - open(os.path.join(pybind11_dir, "tools", "pybind11Tools.cmake")) - logger.info(f"Found pybind11 directory ({pybind11_dir})") - except FileNotFoundError: - PyBind11Found = False - msg = ( - f"Could not find PyBind11 directory ({pybind11_dir})." - " Skipping compilation of KLU module." - ) - logger.info(msg) - - return CMakeFound and PyBind11Found - - -idaklu_ext = Extension( - name="pybamm.solvers.idaklu", - # The sources list should mirror the list in CMakeLists.txt - sources=[ - "src/pybamm/solvers/c_solvers/idaklu/Expressions/Expressions.hpp", - "src/pybamm/solvers/c_solvers/idaklu/Expressions/Base/Expression.hpp", - "src/pybamm/solvers/c_solvers/idaklu/Expressions/Base/ExpressionSet.hpp", - "src/pybamm/solvers/c_solvers/idaklu/Expressions/Base/ExpressionTypes.hpp", - "src/pybamm/solvers/c_solvers/idaklu/Expressions/Base/ExpressionSparsity.hpp", - "src/pybamm/solvers/c_solvers/idaklu/Expressions/Casadi/CasadiFunctions.cpp", - "src/pybamm/solvers/c_solvers/idaklu/Expressions/Casadi/CasadiFunctions.hpp", - "src/pybamm/solvers/c_solvers/idaklu/Expressions/IREE/IREEBaseFunction.hpp", - "src/pybamm/solvers/c_solvers/idaklu/Expressions/IREE/IREEFunction.hpp", - "src/pybamm/solvers/c_solvers/idaklu/Expressions/IREE/IREEFunctions.cpp", - "src/pybamm/solvers/c_solvers/idaklu/Expressions/IREE/IREEFunctions.hpp", - "src/pybamm/solvers/c_solvers/idaklu/Expressions/IREE/iree_jit.cpp", - "src/pybamm/solvers/c_solvers/idaklu/Expressions/IREE/iree_jit.hpp", - "src/pybamm/solvers/c_solvers/idaklu/Expressions/IREE/ModuleParser.cpp", - "src/pybamm/solvers/c_solvers/idaklu/Expressions/IREE/ModuleParser.hpp", - "src/pybamm/solvers/c_solvers/idaklu/idaklu_solver.hpp", - "src/pybamm/solvers/c_solvers/idaklu/IDAKLUSolver.cpp", - "src/pybamm/solvers/c_solvers/idaklu/IDAKLUSolver.hpp", - "src/pybamm/solvers/c_solvers/idaklu/IDAKLUSolverOpenMP.inl", - "src/pybamm/solvers/c_solvers/idaklu/IDAKLUSolverOpenMP.hpp", - "src/pybamm/solvers/c_solvers/idaklu/IDAKLUSolverOpenMP_solvers.cpp", - "src/pybamm/solvers/c_solvers/idaklu/IDAKLUSolverOpenMP_solvers.hpp", - "src/pybamm/solvers/c_solvers/idaklu/sundials_functions.inl", - "src/pybamm/solvers/c_solvers/idaklu/sundials_functions.hpp", - "src/pybamm/solvers/c_solvers/idaklu/IdakluJax.cpp", - "src/pybamm/solvers/c_solvers/idaklu/IdakluJax.hpp", - "src/pybamm/solvers/c_solvers/idaklu/common.hpp", - "src/pybamm/solvers/c_solvers/idaklu/python.hpp", - "src/pybamm/solvers/c_solvers/idaklu/python.cpp", - "src/pybamm/solvers/c_solvers/idaklu/Solution.cpp", - "src/pybamm/solvers/c_solvers/idaklu/Solution.hpp", - "src/pybamm/solvers/c_solvers/idaklu/Options.hpp", - "src/pybamm/solvers/c_solvers/idaklu/Options.cpp", - "src/pybamm/solvers/c_solvers/idaklu.cpp", - ], -) -ext_modules = [idaklu_ext] if compile_KLU() else [] - -# Project metadata was moved to pyproject.toml (which is read by pip). However, custom -# build commands and setuptools extension modules are still defined here. -setup( - # silence "Package would be ignored" warnings - include_package_data=True, - ext_modules=ext_modules, - cmdclass={ - "build_ext": CMakeBuild, - "bdist_wheel": bdist_wheel, - "install": CustomInstall, - }, -) From cab71d7865c4bcf9dc6f7986710f25ba2bb057c4 Mon Sep 17 00:00:00 2001 From: cringeyburger Date: Fri, 16 Aug 2024 18:16:20 +0530 Subject: [PATCH 02/61] remove `setuptools` and `pybind11` from `nox` functions --- noxfile.py | 47 +++++++++++++---------------------------------- 1 file changed, 13 insertions(+), 34 deletions(-) diff --git a/noxfile.py b/noxfile.py index a34d6e81f4..bf4a610aa1 100644 --- a/noxfile.py +++ b/noxfile.py @@ -52,9 +52,11 @@ def set_iree_state(): return state +project_dir = Path(__file__).parent.resolve() homedir = os.getenv("HOME") +libs_install_dir = project_dir / "sundials_KLU_libs" PYBAMM_ENV = { - "LD_LIBRARY_PATH": f"{homedir}/.local/lib", + "LD_LIBRARY_PATH": f"{homedir}/.local/lib:{libs_install_dir}", "PYTHONIOENCODING": "utf-8", "MPLBACKEND": "Agg", # Expression evaluators (...EXPR_CASADI cannot be fully disabled at this time) @@ -87,23 +89,10 @@ def set_environment_variables(env_dict, session): def run_pybamm_requires(session): """Download, compile, and install the build-time requirements for Linux and macOS. Supports --install-dir for custom installation paths and --force to force installation.""" set_environment_variables(PYBAMM_ENV, session=session) + session.run("python", "-m", "pip", "install", "--upgrade", "pip") if sys.platform != "win32": session.install("cmake", silent=False) session.run("python", "scripts/install_KLU_Sundials.py", *session.posargs) - if not os.path.exists("./pybind11"): - session.run( - "git", - "clone", - "--depth", - "1", - "--branch", - "v2.12.0", - "https://github.com/pybind/pybind11.git", - "pybind11/", - "-c", - "advice.detachedHead=false", - external=True, - ) if PYBAMM_ENV.get("PYBAMM_IDAKLU_EXPR_IREE") == "ON" and not os.path.exists( "./iree" ): @@ -135,7 +124,7 @@ def run_pybamm_requires(session): def run_coverage(session): """Run the coverage tests and generate an XML report.""" set_environment_variables(PYBAMM_ENV, session=session) - session.install("setuptools", silent=False) + session.run("python", "-m", "pip", "install", "--upgrade", "pip") session.install("coverage", silent=False) # Using plugin here since coverage runs unit tests on linux with latest python version. if "CI" in os.environ: @@ -157,7 +146,7 @@ def run_coverage(session): def run_integration(session): """Run the integration tests.""" set_environment_variables(PYBAMM_ENV, session=session) - session.install("setuptools", silent=False) + session.run("python", "-m", "pip", "install", "--upgrade", "pip") if ( "CI" in os.environ and sys.version_info[:2] == (3, 12) @@ -171,9 +160,7 @@ def run_integration(session): @nox.session(name="doctests") def run_doctests(session): """Run the doctests and generate the output(s) in the docs/build/ directory.""" - # TODO: Temporary fix for Python 3.12 CI. - # See: https://bitbucket.org/pybtex-devs/pybtex/issues/169/ - session.install("setuptools", silent=False) + session.run("python", "-m", "pip", "install", "--upgrade", "pip") session.install("-e", ".[all,dev,docs]", silent=False) session.run( "python", @@ -188,7 +175,7 @@ def run_doctests(session): def run_unit(session): """Run the unit tests.""" set_environment_variables(PYBAMM_ENV, session=session) - session.install("setuptools", silent=False) + session.run("python", "-m", "pip", "install", "--upgrade", "pip") session.install("-e", ".[all,dev,jax]", silent=False) if PYBAMM_ENV.get("PYBAMM_IDAKLU_EXPR_IREE") == "ON": # See comments in 'dev' session @@ -206,7 +193,7 @@ def run_unit(session): def run_examples(session): """Run the examples tests for Jupyter notebooks.""" set_environment_variables(PYBAMM_ENV, session=session) - session.install("setuptools", silent=False) + session.run("python", "-m", "pip", "install", "--upgrade", "pip") session.install("-e", ".[all,dev]", silent=False) notebooks_to_test = session.posargs if session.posargs else [] session.run( @@ -218,10 +205,7 @@ def run_examples(session): def run_scripts(session): """Run the scripts tests for Python scripts.""" set_environment_variables(PYBAMM_ENV, session=session) - # Temporary fix for Python 3.12 CI. TODO: remove after - # https://bitbucket.org/pybtex-devs/pybtex/issues/169/replace-pkg_resources-with - # is fixed - session.install("setuptools", silent=False) + session.run("python", "-m", "pip", "install", "--upgrade", "pip") session.install("-e", ".[all,dev]", silent=False) session.run("python", "-m", "pytest", "-m", "scripts") @@ -244,10 +228,7 @@ def set_dev(session): # - IREE compiler matches Jaxlib (use the matching nightly build) [pyproject.toml] components.append("iree") args = ["--find-links", PYBAMM_ENV.get("IREE_INDEX_URL")] - # Temporary fix for Python 3.12 CI. TODO: remove after - # https://bitbucket.org/pybtex-devs/pybtex/issues/169/replace-pkg_resources-with - # is fixed - session.run(python, "-m", "pip", "install", "setuptools", external=True) + session.run("python", "-m", "pip", "install", "--upgrade", "pip") session.run( python, "-m", @@ -264,7 +245,7 @@ def set_dev(session): def run_tests(session): """Run the unit tests and integration tests sequentially.""" set_environment_variables(PYBAMM_ENV, session=session) - session.install("setuptools", silent=False) + session.run("python", "-m", "pip", "install", "--upgrade", "pip") session.install("-e", ".[all,dev,jax]", silent=False) specific_test_files = session.posargs if session.posargs else [] session.run( @@ -276,9 +257,7 @@ def run_tests(session): def build_docs(session): """Build the documentation and load it in a browser tab, rebuilding on changes.""" envbindir = session.bin - # TODO: Temporary fix for Python 3.12 CI. - # See: https://bitbucket.org/pybtex-devs/pybtex/issues/169/ - session.install("setuptools", silent=False) + session.run("python", "-m", "pip", "install", "--upgrade", "pip") session.install("-e", ".[all,docs]", silent=False) session.chdir("docs") # Local development From ebd99b412c2fdded94ec9d079989ca6b82f865cc Mon Sep 17 00:00:00 2001 From: cringeyburger Date: Fri, 16 Aug 2024 18:17:11 +0530 Subject: [PATCH 03/61] remove `install_sundials.sh` --- scripts/install_sundials.sh | 84 ------------------------------------- 1 file changed, 84 deletions(-) delete mode 100644 scripts/install_sundials.sh diff --git a/scripts/install_sundials.sh b/scripts/install_sundials.sh deleted file mode 100644 index 020166a188..0000000000 --- a/scripts/install_sundials.sh +++ /dev/null @@ -1,84 +0,0 @@ -#!/bin/bash - -# This script installs both SuiteSparse -# (https://people.engr.tamu.edu/davis/suitesparse.html) and SUNDIALS -# (https://computing.llnl.gov/projects/sundials) from source. For each -# two library: -# - Archive downloaded and source code extracted in current working -# directory. -# - Library is built and installed. -# -# Usage: ./install_sundials.sh suitesparse_version sundials_version - -function prepend_python_bin_dir_to_PATH { - python_bin_dir_cmd="print(os.path.split(sys.executable)[0])" - python_bin_dir=$(python -c "import sys, os;$python_bin_dir_cmd") - export PATH=$python_bin_dir:$PATH -} - -function download { - ROOT_ADDR=$1 - FILENAME=$2 - - wget -q $ROOT_ADDR/$FILENAME -} - -function extract { - tar -xf $1 -} - -SUITESPARSE_VERSION=$1 -SUNDIALS_VERSION=$2 - -SUITESPARSE_ROOT_ADDR=https://github.com/DrTimothyAldenDavis/SuiteSparse/archive -SUNDIALS_ROOT_ADDR=https://github.com/LLNL/sundials/releases/download/v$SUNDIALS_VERSION - -SUITESPARSE_ARCHIVE_NAME=v$SUITESPARSE_VERSION.tar.gz -SUNDIALS_ARCHIVE_NAME=sundials-$SUNDIALS_VERSION.tar.gz - -yum -y update -yum -y install wget -download $SUITESPARSE_ROOT_ADDR $SUITESPARSE_ARCHIVE_NAME -download $SUNDIALS_ROOT_ADDR $SUNDIALS_ARCHIVE_NAME -extract $SUITESPARSE_ARCHIVE_NAME -extract $SUNDIALS_ARCHIVE_NAME - -# Build in parallel wherever possible -export MAKEFLAGS="-j$(nproc)" -export CMAKE_BUILD_PARALLEL_LEVEL=$(nproc) - -### Compile and install SUITESPARSE ### -# SuiteSparse is required to compile SUNDIALS's -# KLU solver. - -SUITESPARSE_DIR=SuiteSparse-$SUITESPARSE_VERSION -for dir in SuiteSparse_config AMD COLAMD BTF KLU -do - make -C $SUITESPARSE_DIR/$dir library - make -C $SUITESPARSE_DIR/$dir install INSTALL=/usr -done - -### Compile and install SUNDIALS ### - -# Building cmake requires cmake >= 3.5 -python -m pip install cmake -prepend_python_bin_dir_to_PATH - -# Building SUNDIALS requires a BLAS library -yum -y install openblas-devel - -mkdir -p build_sundials -cd build_sundials -KLU_INCLUDE_DIR=/usr/local/include -KLU_LIBRARY_DIR=/usr/local/lib -SUNDIALS_DIR=sundials-$SUNDIALS_VERSION -cmake -DENABLE_LAPACK=ON\ - -DSUNDIALS_INDEX_SIZE=32\ - -DEXAMPLES_ENABLE:BOOL=OFF\ - -DENABLE_KLU=ON\ - -DENABLE_OPENMP=ON\ - -DKLU_INCLUDE_DIR=$KLU_INCLUDE_DIR\ - -DKLU_LIBRARY_DIR=$KLU_LIBRARY_DIR\ - -DCMAKE_INSTALL_PREFIX=/usr\ - ../$SUNDIALS_DIR -make install From 4190eda7e67033fdc0c97a8fdf78ea59153aa0ff Mon Sep 17 00:00:00 2001 From: cringeyburger Date: Fri, 16 Aug 2024 18:21:13 +0530 Subject: [PATCH 04/61] set default libs installation dir to `sundials_KLU_libs` in `install_KLU_Sundials.py` script --- scripts/install_KLU_Sundials.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/install_KLU_Sundials.py b/scripts/install_KLU_Sundials.py index 7a5466f467..445332f303 100755 --- a/scripts/install_KLU_Sundials.py +++ b/scripts/install_KLU_Sundials.py @@ -20,7 +20,7 @@ "7111b505c1207f6f4bd0be9740d0b2897e1146b845d73787df07901b4f5c1fb7" ) SUNDIALS_CHECKSUM = "4e0b998dff292a2617e179609b539b511eb80836f5faacf800e688a886288502" -DEFAULT_INSTALL_DIR = os.path.join(os.getenv("HOME"), ".local") +DEFAULT_INSTALL_DIR = "sundials_KLU_libs" def safe_remove_dir(path): @@ -285,7 +285,7 @@ def parallel_download(urls, download_dir): # Create download directory in PyBaMM dir pybamm_dir = os.path.split(os.path.abspath(os.path.dirname(__file__)))[0] -download_dir = os.path.join(pybamm_dir, "install_KLU_Sundials") +download_dir = os.path.join(pybamm_dir, "download_KLU_Sundials") if not os.path.exists(download_dir): os.makedirs(download_dir) From 98fa55aab11225347d5f0917866547a473b2f2b8 Mon Sep 17 00:00:00 2001 From: cringeyburger Date: Fri, 16 Aug 2024 18:21:53 +0530 Subject: [PATCH 05/61] ignore `SUNDIALS` and `SuiteSparse` libraries and distribution files --- .gitignore | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 42c76b7c55..2a7598768e 100644 --- a/.gitignore +++ b/.gitignore @@ -55,8 +55,7 @@ matplotlibrc ideas/ .idea/ -# setup.py files -*.egg-info +# distribution files dist/ # coverage @@ -85,6 +84,7 @@ sundials-* SuiteSparse-* build_sundials KLU_module_deps +sundials_KLU_libs/include # downloads *.gz From 11a41768ec082bae6f931fe4e81ee92485cfce18 Mon Sep 17 00:00:00 2001 From: cringeyburger Date: Fri, 16 Aug 2024 18:24:52 +0530 Subject: [PATCH 06/61] reflect changes to support `scikit-build-core` and add support for custom installation dir --- CMakeLists.txt | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 42ab10ee69..a155239bd2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -35,7 +35,9 @@ add_compile_definitions(_GLIBCXX_USE_CXX11_ABI=0) if(NOT PYBIND11_DIR) set(PYBIND11_DIR pybind11) endif() -add_subdirectory(${PYBIND11_DIR}) +find_package(pybind11 CONFIG REQUIRED) + +find_package(Python COMPONENTS Interpreter Development.Module REQUIRED) # Check Casadi build flag if(NOT DEFINED PYBAMM_IDAKLU_EXPR_CASADI) @@ -107,7 +109,9 @@ pybind11_add_module(idaklu ${IDAKLU_EXPR_IREE_SOURCE_FILES} ) -if (NOT DEFINED USE_PYTHON_CASADI) +if(CMAKE_SYSTEM_NAME STREQUAL "Windows") + set(USE_PYTHON_CASADI FALSE) +else() set(USE_PYTHON_CASADI TRUE) endif() @@ -140,6 +144,15 @@ set_target_properties( ) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${PROJECT_SOURCE_DIR}) + +if(NOT DEFINED ENV{INSTALL_DIR}) + set(INSTALL_DIR "${CMAKE_CURRENT_SOURCE_DIR}/sundials_KLU_libs") +else() + set(INSTALL_DIR $ENV{INSTALL_DIR}) +endif() + +message(STATUS "INSTALL_DIR is set to: ${INSTALL_DIR}") + # Sundials find_package(SUNDIALS REQUIRED) message("SUNDIALS found in ${SUNDIALS_INCLUDE_DIR}: ${SUNDIALS_LIBRARIES}") @@ -170,3 +183,5 @@ if(${PYBAMM_IDAKLU_EXPR_IREE} STREQUAL "ON" ) target_link_libraries(idaklu PRIVATE iree_compiler_bindings_c_loader) target_link_libraries(idaklu PRIVATE iree_runtime_runtime) endif() + +install(TARGETS idaklu DESTINATION "pybamm/solvers") From 02afa126aeff90d571fd719f91ffbc0dd46af475 Mon Sep 17 00:00:00 2001 From: cringeyburger Date: Fri, 16 Aug 2024 18:25:42 +0530 Subject: [PATCH 07/61] add path to `INSTALL_DIR` to find `SUNDIALS` --- FindSUNDIALS.cmake | 2 ++ 1 file changed, 2 insertions(+) diff --git a/FindSUNDIALS.cmake b/FindSUNDIALS.cmake index 4f8c52b64f..ca7fee4bd9 100644 --- a/FindSUNDIALS.cmake +++ b/FindSUNDIALS.cmake @@ -41,6 +41,7 @@ find_path(SUNDIALS_INCLUDE_DIR include PATHS ${SUNDIALS_ROOT} + ${INSTALL_DIR} ) set(SUNDIALS_WANT_COMPONENTS @@ -74,6 +75,7 @@ foreach(LIB ${SUNDIALS_WANT_COMPONENTS}) Lib PATHS ${SUNDIALS_ROOT} + ${INSTALL_DIR} ) set(SUNDIALS_${LIB}_FOUND FALSE) From cf09058f5cdf4f23c1a5fe97be9990bd1a20f338 Mon Sep 17 00:00:00 2001 From: cringeyburger Date: Fri, 16 Aug 2024 18:27:08 +0530 Subject: [PATCH 08/61] add path to `INSTALL_DIR` and add config to find `openBLAS` and `SUITESPARSE` --- FindSuiteSparse.cmake | 50 ++++++++++++++++++++++++++++++++++++++----- 1 file changed, 45 insertions(+), 5 deletions(-) diff --git a/FindSuiteSparse.cmake b/FindSuiteSparse.cmake index c5275c02c0..a0e43715c5 100644 --- a/FindSuiteSparse.cmake +++ b/FindSuiteSparse.cmake @@ -37,6 +37,36 @@ # system paths. # +enable_language(Fortran) + +set(IDAKLU_BLAS_VENDOR + "OpenBLAS" + CACHE + STRING + "Sets the BLAS/LAPACK vendor. See https://cmake.org/cmake/help/latest/module/FindBLAS.html#blas-lapack-vendors." +) +set_property(CACHE IDAKLU_BLAS_VENDOR PROPERTY STRINGS OpenBLAS Intel10_64lp Apple Generic) + +if(DEFINED ENV{CONDA_BUILD_STATE}) + set(IDAKLU_BLAS_VENDOR "Generic") +endif() + +if(IDAKLU_BLAS_VENDOR MATCHES "Intel") + set(BLA_STATIC FALSE) + set(BLA_SIZEOF_INTEGER 4) +elseif(IDAKLU_BLAS_VENDOR MATCHES "Apple") + set(BLA_STATIC TRUE) + set(BLA_SIZEOF_INTEGER 4) +else() + set(BLA_STATIC FALSE) + set(BLA_SIZEOF_INTEGER 4) +endif() + +set(BLA_VENDOR ${IDAKLU_BLAS_VENDOR}) + +# openBLAS: include a "lib" prefix in it's names +set(CMAKE_FIND_LIBRARY_PREFIXES "" lib) + find_package(BLAS QUIET) # look for desired componenents @@ -60,7 +90,9 @@ endif() # look for library at positions given by the user find_library(SUITESPARSE_CONFIG_LIB NAMES "suitesparseconfig" - PATHS ${SuiteSparse_ROOT} + PATHS + ${SuiteSparse_ROOT} + ${INSTALL_DIR} PATH_SUFFIXES "lib" "lib32" "lib64" "Lib" NO_DEFAULT_PATH ) @@ -73,7 +105,9 @@ find_library(SUITESPARSE_CONFIG_LIB #look for header files at positions given by the user find_path(SUITESPARSE_INCLUDE_DIR NAMES "SuiteSparse_config.h" - PATHS ${SuiteSparse_ROOT} + PATHS + ${SuiteSparse_ROOT} + ${INSTALL_DIR} PATH_SUFFIXES "SuiteSparse_config" "SuiteSparse_config/include" "suitesparse" "include" "src" "SuiteSparse_config/Include" NO_DEFAULT_PATH ) @@ -89,7 +123,9 @@ foreach(_component ${SUITESPARSE_COMPONENTS}) #look for library at positions given by the user find_library(${_component}_LIBRARY NAMES "${_componentLower}" - PATHS ${SuiteSparse_ROOT} + PATHS + ${SuiteSparse_ROOT} + ${INSTALL_DIR} PATH_SUFFIXES "lib" "lib32" "lib64" "${_component}" "${_component}/Lib" NO_DEFAULT_PATH ) @@ -102,7 +138,9 @@ foreach(_component ${SUITESPARSE_COMPONENTS}) #look for header files at positions given by the user find_path(${_component}_INCLUDE_DIR NAMES "${_componentLower}.h" - PATHS ${SuiteSparse_ROOT} + PATHS + ${SuiteSparse_ROOT} + ${INSTALL_DIR} PATH_SUFFIXES "${_componentLower}" "include/${_componentLower}" "suitesparse" "include" "src" "${_component}" "${_component}/Include" NO_DEFAULT_PATH ) @@ -117,7 +155,9 @@ endforeach() #look for header files at positions given by the user find_path(SPQR_INCLUDE_DIR NAMES "SuiteSparseQR.hpp" - PATHS ${SuiteSparse_ROOT} + PATHS + ${SuiteSparse_ROOT} + ${INSTALL_DIR} PATH_SUFFIXES "spqr" "include/spqr" "suitesparse" "include" "src" "SPQR" "SPQR/Include" NO_DEFAULT_PATH ) From 4568f72d80c7aecec0677cffb75bcb013b3ae3fe Mon Sep 17 00:00:00 2001 From: cringeyburger Date: Fri, 16 Aug 2024 18:43:40 +0530 Subject: [PATCH 09/61] use the defined `python` in `dev` session --- noxfile.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/noxfile.py b/noxfile.py index bf4a610aa1..9526cabbfd 100644 --- a/noxfile.py +++ b/noxfile.py @@ -228,7 +228,7 @@ def set_dev(session): # - IREE compiler matches Jaxlib (use the matching nightly build) [pyproject.toml] components.append("iree") args = ["--find-links", PYBAMM_ENV.get("IREE_INDEX_URL")] - session.run("python", "-m", "pip", "install", "--upgrade", "pip") + session.run(python, "-m", "pip", "install", "--upgrade", "pip") session.run( python, "-m", From 9d9d9c994e4fc7f69d06d570e64ca7adaa7cc23e Mon Sep 17 00:00:00 2001 From: cringeyburger Date: Fri, 16 Aug 2024 20:01:03 +0530 Subject: [PATCH 10/61] replace `setuptools` and `wheel` with `scikit-build-core` in workflows --- .github/workflows/benchmark_on_push.yml | 2 +- .github/workflows/update_version.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/benchmark_on_push.yml b/.github/workflows/benchmark_on_push.yml index b0da71461e..8350036dbc 100644 --- a/.github/workflows/benchmark_on_push.yml +++ b/.github/workflows/benchmark_on_push.yml @@ -25,7 +25,7 @@ jobs: - name: Install python dependencies run: | - python -m pip install --upgrade pip wheel setuptools wget cmake casadi numpy + python -m pip install --upgrade pip scikit-build-core wget cmake casadi numpy python -m pip install asv[virtualenv] - name: Install SuiteSparse and SUNDIALS diff --git a/.github/workflows/update_version.yml b/.github/workflows/update_version.yml index eb62469778..99a81d050d 100644 --- a/.github/workflows/update_version.yml +++ b/.github/workflows/update_version.yml @@ -48,7 +48,7 @@ jobs: - name: Install dependencies run: | - pip install wheel + pip install scikit-build-core pip install --editable ".[all]" # update all the version strings and add CHANGELOG headings From 31d5415e3323ac8019c3eefb352e50aff316cc55 Mon Sep 17 00:00:00 2001 From: cringeyburger Date: Fri, 16 Aug 2024 20:45:30 +0530 Subject: [PATCH 11/61] fix: doctests by updating expected `parameter_sets` --- src/pybamm/parameters/parameter_sets.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pybamm/parameters/parameter_sets.py b/src/pybamm/parameters/parameter_sets.py index a3ddd0ed2e..ebc8b83fa8 100644 --- a/src/pybamm/parameters/parameter_sets.py +++ b/src/pybamm/parameters/parameter_sets.py @@ -18,7 +18,7 @@ class ParameterSets(Mapping): >>> import pybamm >>> list(pybamm.parameter_sets) - ['Ai2020', 'Chen2020', ...] + ['Sulzer2019', 'Ai2020', 'Chen2020', 'Chen2020_composite', 'Ecker2015', 'Ecker2015_graphite_halfcell', 'Marquis2019', 'Mohtat2020', 'NCA_Kim2011', 'OKane2022', 'OKane2022_graphite_SiOx_halfcell', 'ORegan2022', 'Prada2013', 'Ramadass2004', 'Xu2019', 'ECM_Example', 'MSMR_Example'] Get the docstring for a parameter set: From 005bc00b21e0dff695eba8b2ffd94ef428dd5396 Mon Sep 17 00:00:00 2001 From: cringeyburger Date: Sat, 17 Aug 2024 03:39:25 +0530 Subject: [PATCH 12/61] set `RPATHS` to `casADi`, `SUNDIALS` and `SuiteSparse` to let the compiled artifact have links with all three of them --- CMakeLists.txt | 17 +++++++++++------ pyproject.toml | 1 - 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index a155239bd2..452daa8c23 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -137,12 +137,6 @@ else() find_package(casadi CONFIG REQUIRED) endif() -set_target_properties( - idaklu PROPERTIES - INSTALL_RPATH "${CASADI_DIR}" - INSTALL_RPATH_USE_LINK_PATH TRUE -) - set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${PROJECT_SOURCE_DIR}) if(NOT DEFINED ENV{INSTALL_DIR}) @@ -171,6 +165,17 @@ endif() include_directories(${SuiteSparse_INCLUDE_DIRS}) target_link_libraries(idaklu PRIVATE ${SuiteSparse_LIBRARIES}) +set(SUNDIALS_LIBRARY_DIR "${INSTALL_DIR}/lib") +set(SUITESPARSE_LIBRARY_DIR "${INSTALL_DIR}/lib") + +set_target_properties(idaklu PROPERTIES + INSTALL_RPATH "${CASADI_DIR};${SUNDIALS_LIBRARY_DIR};${SUITESPARSE_LIBRARY_DIR}" + INSTALL_RPATH_USE_LINK_PATH TRUE + BUILD_RPATH "${CASADI_DIR};${SUNDIALS_LIBRARY_DIR};${SUITESPARSE_LIBRARY_DIR}" +) +message("NOTE: RPATHS linking SUNDIALS, SuiteSparse and casADi are set") + + # IREE (MLIR compiler and runtime library) build settings if(${PYBAMM_IDAKLU_EXPR_IREE} STREQUAL "ON" ) set(IREE_BUILD_COMPILER ON) diff --git a/pyproject.toml b/pyproject.toml index 5bcb8cdb74..edf6c75ddc 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -183,7 +183,6 @@ wheel.cmake = true cmake.version = ">=3.13" cmake.verbose = true cmake.build-type = "Release" -cmake.targets = ["idaklu"] [tool.ruff] extend-include = ["*.ipynb"] From e6347ad9bd751cc267c76daa714fd8cacdf705c5 Mon Sep 17 00:00:00 2001 From: cringeyburger Date: Sat, 17 Aug 2024 05:46:48 +0530 Subject: [PATCH 13/61] feat: use `tomlkit` to parse through build-time requirements in `pyproject.toml` for `dev` session and add recommended command for editable and partial builds --- CMakeLists.txt | 1 - noxfile.py | 16 +++++++++++++++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 452daa8c23..8ac88d0fb0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -76,7 +76,6 @@ if(${PYBAMM_IDAKLU_EXPR_IREE} STREQUAL "ON" ) ) endif() -# The complete (all dependencies) sources list should be mirrored in setup.py pybind11_add_module(idaklu # pybind11 interface src/pybamm/solvers/c_solvers/idaklu.cpp diff --git a/noxfile.py b/noxfile.py index 9526cabbfd..245a99c19f 100644 --- a/noxfile.py +++ b/noxfile.py @@ -4,6 +4,7 @@ import warnings import platform from pathlib import Path +import tomlkit # Options to modify nox behaviour @@ -218,6 +219,15 @@ def set_dev(session): session.run("virtualenv", os.fsdecode(VENV_DIR), silent=True) python = os.fsdecode(VENV_DIR.joinpath("bin/python")) components = ["all", "dev", "jax"] + with open("pyproject.toml", encoding="utf-8") as file: + toml_data = tomlkit.parse(file.read()) + build_dependencies = toml_data.get("build-system").get("requires") + if sys.platform == "win32": + build_dependencies = [ + dep + for dep in build_dependencies + if not (dep.startswith("casadi") or dep.startswith("cmake")) + ] args = [] if PYBAMM_ENV.get("PYBAMM_IDAKLU_EXPR_IREE") == "ON": # Install IREE libraries for Jax-MLIR expression evaluation in the IDAKLU solver @@ -229,12 +239,16 @@ def set_dev(session): components.append("iree") args = ["--find-links", PYBAMM_ENV.get("IREE_INDEX_URL")] session.run(python, "-m", "pip", "install", "--upgrade", "pip") + session.run(python, "-m", "pip", "install", *build_dependencies) session.run( python, "-m", "pip", "install", - "-e", + "--no-build-isolation", + "--config-settings=editable.rebuild=true", + "-Cbuild_dir=build", + "-ve", ".[{}]".format(",".join(components)), *args, external=True, From 828b89757ef32a60e2dfc01de5c38a2910be77ce Mon Sep 17 00:00:00 2001 From: cringeyburger Date: Sat, 17 Aug 2024 06:04:34 +0530 Subject: [PATCH 14/61] set upper pins to build-time pre-requisites to avoid breaking changes --- pyproject.toml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index edf6c75ddc..30e7925180 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,13 +1,13 @@ [build-system] requires = [ - "scikit-build-core>=0.9.9", + "scikit-build-core>=0.9.9,<=0.10.3", # On Windows, use the CasADi vcpkg registry and CMake bundled from MSVC - "casadi>=3.6.5; platform_system!='Windows'", + "casadi>=3.6.5,<=3.6.6; platform_system!='Windows'", # Note: the version of CasADi as a build-time dependency should be matched # cross platforms, so updates to its minimum version here should be accompanied # by a version bump in https://github.com/pybamm-team/casadi-vcpkg-registry. - "cmake; platform_system!='Windows'", - "pybind11", + "cmake>=3.13,<=3.20.3; platform_system!='Windows'", + "pybind11<=2.13.4", ] build-backend = "scikit_build_core.build" From 9d885963aa66f7b86cdc5f369c9e371312c22464 Mon Sep 17 00:00:00 2001 From: cringeyburger Date: Sat, 17 Aug 2024 14:40:26 +0530 Subject: [PATCH 15/61] feat: add `scikit-build-core` editable install support for Docker --- .github/workflows/docker.yml | 2 +- scripts/Dockerfile | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index f76b67829c..da27bf5459 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -35,7 +35,7 @@ jobs: context: . file: scripts/Dockerfile tags: pybamm/pybamm:latest - push: true + push: false platforms: linux/amd64, linux/arm64 - name: List built image(s) diff --git a/scripts/Dockerfile b/scripts/Dockerfile index e6fac122ff..49c5d67dc7 100644 --- a/scripts/Dockerfile +++ b/scripts/Dockerfile @@ -13,7 +13,8 @@ USER pybamm WORKDIR /home/pybamm/ -RUN git clone https://github.com/pybamm-team/PyBaMM.git +# TODO: Change clone to upstream before PR merge +RUN git clone --branch migrate-to-sbc https://github.com/cringeyburger/PyBaMM.git WORKDIR /home/pybamm/PyBaMM @@ -28,11 +29,10 @@ RUN uv venv $VIRTUAL_ENV RUN #!/bin/bash && source /home/pybamm/venv/bin/activate; ENV PATH="$VIRTUAL_ENV/bin:$PATH" -RUN uv pip install --upgrade setuptools wheel wget cmake - +RUN uv pip install --upgrade scikit-build-core==0.10.3 wget cmake casadi pybind11 +ENV BUILD_IDAKLU=ON RUN python scripts/install_KLU_Sundials.py && \ -rm -rf pybind11 && \ -git clone https://github.com/pybind/pybind11.git && \ -uv pip install -e ".[all,dev,docs,jax]"; + uv pip install --no-build-isolation --config-settings=editable.rebuild=true -Cbuild-dir=build -ve ".[all,dev,docs,jax]"; + ENTRYPOINT ["/bin/bash"] From ba1c5a5743ea73b97fdf9db2f8912a3fa8a5a520 Mon Sep 17 00:00:00 2001 From: cringeyburger Date: Sat, 17 Aug 2024 13:44:30 +0530 Subject: [PATCH 16/61] fix: install `tomlkit` along with `nox` to fix dependency issues --- .../workflows/run_benchmarks_over_history.yml | 4 ++-- .github/workflows/run_periodic_tests.yml | 16 ++++++++-------- .github/workflows/test_on_push.yml | 16 ++++++++-------- 3 files changed, 18 insertions(+), 18 deletions(-) diff --git a/.github/workflows/run_benchmarks_over_history.yml b/.github/workflows/run_benchmarks_over_history.yml index d01564b210..46cedbda5f 100644 --- a/.github/workflows/run_benchmarks_over_history.yml +++ b/.github/workflows/run_benchmarks_over_history.yml @@ -28,8 +28,8 @@ jobs: with: python-version: 3.12 - - name: Install nox and asv - run: pip install -U pip nox asv + - name: Install nox, asv and tomlkit + run: pip install -U pip nox asv tomlkit - name: Fetch develop branch # Not required when worklow trigerred diff --git a/.github/workflows/run_periodic_tests.yml b/.github/workflows/run_periodic_tests.yml index 2dd9ef8a89..527b8cc0bb 100644 --- a/.github/workflows/run_periodic_tests.yml +++ b/.github/workflows/run_periodic_tests.yml @@ -68,8 +68,8 @@ jobs: with: python-version: ${{ matrix.python-version }} - - name: Install nox - run: python -m pip install nox + - name: Install nox and tomlkit + run: python -m pip install nox tomlkit - name: Install SuiteSparse and SUNDIALS on GNU/Linux and macOS timeout-minutes: 10 @@ -114,8 +114,8 @@ jobs: with: python-version: 3.11 - - name: Install nox - run: python -m pip install nox + - name: Install nox and tomlkit + run: python -m pip install nox tomlkit - name: Install docs dependencies and run doctests for GNU/Linux run: python -m nox -s doctests @@ -141,8 +141,8 @@ jobs: with: python-version: 3.12 - - name: Install nox - run: python -m pip install nox + - name: Install nox and tomlkit + run: python -m pip install nox tomlkit - name: Install SuiteSparse and SUNDIALS on GNU/Linux timeout-minutes: 10 @@ -169,8 +169,8 @@ jobs: with: python-version: 3.12 - - name: Install nox - run: python -m pip install nox + - name: Install nox and tomlkit + run: python -m pip install nox tomlkit - name: Install SuiteSparse and SUNDIALS on GNU/Linux timeout-minutes: 10 diff --git a/.github/workflows/test_on_push.yml b/.github/workflows/test_on_push.yml index adfb698a69..859e8d2ce0 100644 --- a/.github/workflows/test_on_push.yml +++ b/.github/workflows/test_on_push.yml @@ -86,8 +86,8 @@ jobs: python-version: ${{ matrix.python-version }} cache: 'pip' - - name: Install nox - run: python -m pip install nox + - name: Install nox and tomlkit + run: python -m pip install nox tomlkit - name: Cache pybamm-requires nox environment for GNU/Linux and macOS uses: actions/cache@v4 @@ -158,8 +158,8 @@ jobs: python-version: 3.11 cache: 'pip' - - name: Install nox - run: python -m pip install nox + - name: Install nox and tomlkit + run: python -m pip install nox tomlkit - name: Install docs dependencies and run doctests for GNU/Linux run: python -m nox -s doctests @@ -198,8 +198,8 @@ jobs: python-version: 3.12 cache: 'pip' - - name: Install nox - run: python -m pip install nox + - name: Install nox and tomlkit + run: python -m pip install nox tomlkit - name: Cache pybamm-requires nox environment for GNU/Linux uses: actions/cache@v4 @@ -251,8 +251,8 @@ jobs: python-version: 3.12 cache: 'pip' - - name: Install nox - run: python -m pip install nox + - name: Install nox and tomlkit + run: python -m pip install nox tomlkit - name: Cache pybamm-requires nox environment for GNU/Linux uses: actions/cache@v4 From a9cd92d5c6ff2fe3b0b33e960d45f152780a959c Mon Sep 17 00:00:00 2001 From: cringeyburger Date: Sat, 17 Aug 2024 18:00:39 +0530 Subject: [PATCH 17/61] feat: use `scikit-build-core` in benchmarks --- .github/workflows/benchmark_on_push.yml | 12 ++++++++---- asv.conf.json | 7 +++---- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/.github/workflows/benchmark_on_push.yml b/.github/workflows/benchmark_on_push.yml index 8350036dbc..fe46911d6b 100644 --- a/.github/workflows/benchmark_on_push.yml +++ b/.github/workflows/benchmark_on_push.yml @@ -2,6 +2,9 @@ name: Run benchmarks on push on: push: branches: [main, develop] + # TODO: Remove before PR merge + workflow_dispatch: + concurrency: # Cancel intermediate builds always @@ -31,6 +34,7 @@ jobs: - name: Install SuiteSparse and SUNDIALS run: python scripts/install_KLU_Sundials.py + # TODO: Set to upstream before PR merge - name: Fetch base branch run: | # This workflow also runs for merge commits @@ -39,16 +43,16 @@ jobs: current_branch=$(git rev-parse --abbrev-ref HEAD) # This workflow should also run on forks; hence, # we should fetch the upstream develop branch. - git remote add upstream https://github.com/pybamm-team/PyBaMM/ - if [ $current_branch != "develop" ]; then - git fetch upstream develop:develop + git remote add upstream https://github.com/cringeyburger/PyBaMM/ + if [ $current_branch != "migrate-to-sbc" ]; then + git fetch upstream migrate-to-sbc:migrate-to-sbc fi - name: Run benchmarks run: | asv machine --machine "GitHubRunner" # Get IDs of branch and PR commits - BASE_COMMIT=$(git rev-parse develop) + BASE_COMMIT=$(git rev-parse migrate-to-sbc) HEAD_COMMIT=$(git rev-parse HEAD) echo $BASE_COMMIT | tee commits_to_compare.txt echo $HEAD_COMMIT | tee -a commits_to_compare.txt diff --git a/asv.conf.json b/asv.conf.json index bf9935ce95..1d6ce24d38 100644 --- a/asv.conf.json +++ b/asv.conf.json @@ -24,8 +24,6 @@ // "install_command": ["in-dir={env_dir} python -mpip install {wheel_file}"], // "uninstall_command": ["return-code=any python -mpip uninstall -y {project}"], "build_command": [ - "/bin/rm -rf pybind11", - "/usr/bin/git clone --depth 1 --branch v2.12.0 https://github.com/pybind/pybind11.git pybind11 -c advice.detachedHead=false", "python -m pip install build", "python -m build --wheel -o {build_cache_dir} {build_dir}" ], @@ -34,7 +32,7 @@ // List of branches to benchmark. If not provided, defaults to "master" // (for git) or "default" (for mercurial). - "branches": ["develop"], // for git + "branches": ["migrate-to-sbc"], // for git // "branches": ["default"], // for mercurial // The DVCS being used. If not set, it will be automatically @@ -91,7 +89,8 @@ "matplotlib": [], }, "env": { - "LD_LIBRARY_PATH": "/home/runner/.local/lib" + "LD_LIBRARY_PATH": "/home/runner/work/PyBaMM/PyBaMM/sundials_KLU_libs/lib/", + "BUILD_IDAKLU": "ON" } } From 0e035ff8d52eb7f11dde9c6a71cd4d363c12119c Mon Sep 17 00:00:00 2001 From: cringeyburger Date: Sat, 17 Aug 2024 22:52:27 +0530 Subject: [PATCH 18/61] fix: hard code `INSTALL_DIR` to help CMake find libs in benchmarks --- asv.conf.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/asv.conf.json b/asv.conf.json index 1d6ce24d38..db02e17127 100644 --- a/asv.conf.json +++ b/asv.conf.json @@ -86,10 +86,11 @@ "sympy": [], "bpx": [], "tqdm": [], - "matplotlib": [], + "matplotlib": [] }, "env": { - "LD_LIBRARY_PATH": "/home/runner/work/PyBaMM/PyBaMM/sundials_KLU_libs/lib/", + "LD_LIBRARY_PATH": "/home/runner/work/PyBaMM/PyBaMM/sundials_KLU_libs/lib/:${HOME}/.local/lib:${LD_LIBRARY_PATH}", + "INSTALL_DIR": "/home/runner/work/PyBaMM/PyBaMM/sundials_KLU_libs", "BUILD_IDAKLU": "ON" } } From 5f941606d5f0648fc9e3cd874cb7afa4dd7bfd33 Mon Sep 17 00:00:00 2001 From: cringeyburger Date: Sat, 17 Aug 2024 22:01:40 +0530 Subject: [PATCH 19/61] fix: `test_on_push.yml` - add `BUILD_IDAKLU=ON` in notebooks builds --- .github/workflows/test_on_push.yml | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/.github/workflows/test_on_push.yml b/.github/workflows/test_on_push.yml index 859e8d2ce0..d5a2272e50 100644 --- a/.github/workflows/test_on_push.yml +++ b/.github/workflows/test_on_push.yml @@ -169,6 +169,8 @@ jobs: run_example_tests: needs: style + env: + BUILD_IDAKLU: ON runs-on: ubuntu-latest strategy: fail-fast: false @@ -205,12 +207,8 @@ jobs: uses: actions/cache@v4 with: path: | - # Repository files - ${{ github.workspace }}/pybind11/ - ${{ github.workspace }}/install_KLU_Sundials/ # Headers and dynamic library files for SuiteSparse and SUNDIALS - ${{ env.HOME }}/.local/lib/ - ${{ env.HOME }}/.local/include/ + ${{ github.workspace }}/sundials_KLU_libs/ key: nox-${{ matrix.os }}-pybamm-requires-${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('**/install_KLU_Sundials.py', '**/noxfile.py', '**/test_on_push.yml') }} - name: Install SuiteSparse and SUNDIALS on GNU/Linux @@ -258,12 +256,8 @@ jobs: uses: actions/cache@v4 with: path: | - # Repository files - ${{ github.workspace }}/pybind11/ - ${{ github.workspace }}/install_KLU_Sundials/ # Headers and dynamic library files for SuiteSparse and SUNDIALS - ${{ env.HOME }}/.local/lib/ - ${{ env.HOME }}/.local/include/ + ${{ github.workspace }}/sundials_KLU_libs/ key: nox-${{ matrix.os }}-pybamm-requires-${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('**/install_KLU_Sundials.py', '**/noxfile.py', '**/test_on_push.yml') }} - name: Install SuiteSparse and SUNDIALS on GNU/Linux From 79eea01370d6f2bf78af766a7d0ea0ab9769eaf2 Mon Sep 17 00:00:00 2001 From: cringeyburger Date: Sat, 17 Aug 2024 22:20:25 +0530 Subject: [PATCH 20/61] fix: `run_periodic_tests.yml` - add `BUILD_IDAKLU=ON` in notebook builds --- .github/workflows/run_periodic_tests.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/run_periodic_tests.yml b/.github/workflows/run_periodic_tests.yml index 527b8cc0bb..9ca7a878e0 100644 --- a/.github/workflows/run_periodic_tests.yml +++ b/.github/workflows/run_periodic_tests.yml @@ -125,6 +125,8 @@ jobs: run_example_tests: runs-on: ubuntu-latest + env: + BUILD_IDAKLU: ON name: Example notebooks (ubuntu-latest / Python 3.12) steps: From 2c14cbef5f5034883644e39a048495a9d387119f Mon Sep 17 00:00:00 2001 From: cringeyburger Date: Fri, 16 Aug 2024 19:05:29 +0530 Subject: [PATCH 21/61] update CI builds workflow with `scikit-build-core` --- .github/workflows/publish_pypi.yml | 94 +++++++++++++++++------------- CMakeLists.txt | 6 +- 2 files changed, 57 insertions(+), 43 deletions(-) diff --git a/.github/workflows/publish_pypi.yml b/.github/workflows/publish_pypi.yml index 0e11e61c48..ae20d8ec70 100644 --- a/.github/workflows/publish_pypi.yml +++ b/.github/workflows/publish_pypi.yml @@ -15,6 +15,8 @@ on: description: 'Run the build with tmate debugging enabled (https://github.com/marketplace/actions/debugging-with-tmate)' required: false default: false + pull_request: # Temporarily trigger on PRs for debugging, remove later + types: [opened, synchronize, reopened] # Set options available for all jobs that use cibuildwheel env: @@ -47,9 +49,6 @@ jobs: with open(output_file, "a", encoding="utf-8") as output_stream: output_stream.write(f"count={num_cpus}\n") - - name: Clone pybind11 repo (no history) - run: git clone --depth 1 --branch v2.12.0 https://github.com/pybind/pybind11.git -c advice.detachedHead=false - - name: Install vcpkg on Windows run: | cd C:\ @@ -72,7 +71,10 @@ jobs: if: ${{ github.event_name == 'workflow_dispatch' && inputs.debug_enabled }} - name: Build 64-bit wheels on Windows - run: pipx run cibuildwheel --output-dir wheelhouse + uses: pypa/cibuildwheel@v2.19.2 + with: + package-dir: . + output-dir: wheelhouse env: CIBW_ENVIRONMENT: > PYBAMM_USE_VCPKG=ON @@ -83,7 +85,7 @@ jobs: CMAKE_GENERATOR_PLATFORM=x64 CMAKE_BUILD_PARALLEL_LEVEL=${{ steps.get_num_cores.outputs.count }} CIBW_ARCHS: AMD64 - CIBW_BEFORE_BUILD: python -m pip install setuptools wheel delvewheel # skip CasADi and CMake + CIBW_BEFORE_BUILD: python -m pip install scikit-build-core delvewheel pybind11 CIBW_REPAIR_WHEEL_COMMAND: delvewheel repair -w {dest_dir} {wheel} CIBW_TEST_COMMAND: python -c "import pybamm; print(pybamm.IDAKLUSolver())" @@ -106,17 +108,26 @@ jobs: with: python-version: 3.11 - - name: Clone pybind11 repo (no history) - run: git clone --depth 1 --branch v2.12.0 https://github.com/pybind/pybind11.git -c advice.detachedHead=false - - name: Build wheels on Linux - run: pipx run cibuildwheel --output-dir wheelhouse + uses: pypa/cibuildwheel@v2.19.2 + with: + package-dir: . + output-dir: wheelhouse env: CIBW_ARCHS_LINUX: x86_64 - CIBW_BEFORE_ALL_LINUX: > - yum -y install openblas-devel lapack-devel && - bash scripts/install_sundials.sh 6.0.3 6.5.0 - CIBW_BEFORE_BUILD_LINUX: python -m pip install cmake casadi setuptools wheel + CIBW_BEFORE_BUILD_LINUX: | + set -e -x + + yum update -y + yum -y install openblas-devel + # lapack-devel + python scripts/install_KLU_Sundials.py + # mkdir -p $(pwd)/sundials_KLU_libs/lib64/ + # export LD_LIBRARY_PATH=$(pwd)/sundials_KLU_libs/lib64/:$LD_LIBRARY_PATH + # export PATH=$(pwd)/sundials_KLU_libs/lib64/:$PATH + # echo "LD_LIBRARY_PATH: $LD_LIBRARY_PATH" + + python -m pip install cmake casadi scikit-build-core pybind11 CIBW_REPAIR_WHEEL_COMMAND_LINUX: auditwheel repair -w {dest_dir} {wheel} CIBW_TEST_COMMAND: | set -e -x @@ -142,18 +153,16 @@ jobs: with: python-version: '3.11' - - name: Clone pybind11 repo (no history) - run: git clone --depth 1 --branch v2.12.0 https://github.com/pybind/pybind11.git -c advice.detachedHead=false - - name: Set macOS-specific environment variables run: echo "MACOSX_DEPLOYMENT_TARGET=11.0" >> $GITHUB_ENV - - name: Install cibuildwheel - run: python -m pip install cibuildwheel - - name: Build wheels on macOS - shell: bash - run: | + uses: pypa/cibuildwheel@v2.19.2 + with: + package-dir: . + output-dir: wheelhouse + env: + CIBW_BEFORE_ALL: | set -e -x # Set LLVM-OpenMP URL @@ -190,23 +199,25 @@ jobs: export PATH=$(pwd)/gfortran_installed/gfortran-darwin-arm64-native/bin:$PATH fi - # link libgfortran dylibs and place them in $HOME/.local/lib - # and then change rpath to $HOME/.local/lib for each of them + # link libgfortran dylibs and place them in sundials_KLU_libs/lib/ + # and then change rpath to /sundials_KLU_libs/lib/ for each of them # Note: libgcc_s.1.dylib not available on macOS arm64; skip for now - mkdir -p $HOME/.local/lib + + mkdir -p $(pwd)/sundials_KLU_libs/lib/ + if [[ $(uname -m) == "x86_64" ]]; then lib_dir=$(pwd)/gfortran_installed/gfortran-darwin-x86_64-native/lib for lib in libgfortran.5.dylib libgfortran.dylib libquadmath.0.dylib libquadmath.dylib libgcc_s.1.dylib libgcc_s.1.1.dylib; do - cp $lib_dir/$lib $HOME/.local/lib/ - install_name_tool -id $HOME/.local/lib/$lib $HOME/.local/lib/$lib - codesign --force --sign - $HOME/.local/lib/$lib + cp $lib_dir/$lib $(pwd)/sundials_KLU_libs/lib/ + install_name_tool -id $(pwd)/sundials_KLU_libs/lib/$lib $(pwd)/sundials_KLU_libs/lib/$lib + codesign --force --sign - $(pwd)/sundials_KLU_libs/lib/$lib done elif [[ $(uname -m) == "arm64" ]]; then lib_dir=$(pwd)/gfortran_installed/gfortran-darwin-arm64-native/lib for lib in libgfortran.5.dylib libgfortran.dylib libquadmath.0.dylib libquadmath.dylib libgcc_s.1.1.dylib; do - cp $lib_dir/$lib $HOME/.local/lib/ - install_name_tool -id $HOME/.local/lib/$lib $HOME/.local/lib/$lib - codesign --force --sign - $HOME/.local/lib/$lib + cp $lib_dir/$lib $(pwd)/sundials_KLU_libs/lib/ + install_name_tool -id $(pwd)/sundials_KLU_libs/lib/$lib $(pwd)/sundials_KLU_libs/lib/$lib + codesign --force --sign - $(pwd)/sundials_KLU_libs/lib/$lib done fi @@ -221,10 +232,10 @@ jobs: PREFIX="/opt/homebrew/Caskroom/miniforge/base/envs/pybamm-dev" fi - # Copy libomp.dylib from PREFIX to $HOME/.local/lib, needed for wheel repair - cp $PREFIX/lib/libomp.dylib $HOME/.local/lib/ - install_name_tool -id $HOME/.local/lib/libomp.dylib $HOME/.local/lib/libomp.dylib - codesign --force --sign - $HOME/.local/lib/libomp.dylib + # Copy libomp.dylib from PREFIX to /sundials_KLU_libs/lib/, needed for wheel repair + cp $PREFIX/lib/libomp.dylib $(pwd)/sundials_KLU_libs/lib/ + install_name_tool -id $(pwd)/sundials_KLU_libs/lib/libomp.dylib $(pwd)/sundials_KLU_libs/lib/libomp.dylib + codesign --force --sign - $(pwd)/sundials_KLU_libs/lib/libomp.dylib export CC=/usr/bin/clang export CXX=/usr/bin/clang++ @@ -233,15 +244,13 @@ jobs: export CXXFLAGS="$CXXFLAGS -I$PREFIX/include" export LDFLAGS="$LDFLAGS -L$PREFIX/lib -lomp" - # cibuildwheel not recognising its environment variable, so set manually - export CIBUILDWHEEL="1" - python scripts/install_KLU_Sundials.py - python -m cibuildwheel --output-dir wheelhouse - env: CIBW_ARCHS_MACOS: auto - CIBW_BEFORE_BUILD: python -m pip install cmake casadi setuptools wheel delocate + CIBW_BEFORE_BUILD: python -m pip install cmake casadi scikit-build-core delocate pybind11 CIBW_REPAIR_WHEEL_COMMAND: | + export LD_LIBRARY_PATH=$(pwd)/sundials_KLU_libs/lib/:$LD_LIBRARY_PATH + echo "$LD_LIBRARY_PATH" + if [[ $(uname -m) == "x86_64" ]]; then delocate-listdeps {wheel} && delocate-wheel -v -w {dest_dir} {wheel} elif [[ $(uname -m) == "arm64" ]]; then @@ -282,7 +291,10 @@ jobs: publish_pypi: # This job is only of value to PyBaMM and would always be skipped in forks - if: github.event_name != 'schedule' && github.repository == 'pybamm-team/PyBaMM' + if: >- + (github.event_name == 'workflow_dispatch' || + github.event_name == 'release') && + github.repository == 'pybamm-team/PyBaMM' name: Upload package to PyPI needs: [ build_manylinux_wheels, diff --git a/CMakeLists.txt b/CMakeLists.txt index 8ac88d0fb0..a04df242bd 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -164,8 +164,10 @@ endif() include_directories(${SuiteSparse_INCLUDE_DIRS}) target_link_libraries(idaklu PRIVATE ${SuiteSparse_LIBRARIES}) -set(SUNDIALS_LIBRARY_DIR "${INSTALL_DIR}/lib") -set(SUITESPARSE_LIBRARY_DIR "${INSTALL_DIR}/lib") +if(DEFINED ENV{CIBUILDWHEEL} AND CMAKE_SYSTEM_NAME STREQUAL "Linux") + set(SUNDIALS_LIBRARY_DIR "${INSTALL_DIR}/lib64") + set(SUITESPARSE_LIBRARY_DIR "${INSTALL_DIR}/lib64") +endif() set_target_properties(idaklu PROPERTIES INSTALL_RPATH "${CASADI_DIR};${SUNDIALS_LIBRARY_DIR};${SUITESPARSE_LIBRARY_DIR}" From 547fb5ebc190a4731d34aead1025c03935b0600f Mon Sep 17 00:00:00 2001 From: cringeyburger Date: Sun, 18 Aug 2024 14:50:54 +0530 Subject: [PATCH 22/61] fix: exclude macOS systems from the custom `BLAS` finding sequence --- .github/workflows/benchmark_on_push.yml | 1 - .github/workflows/publish_pypi.yml | 12 ++----- CMakeLists.txt | 1 - FindSuiteSparse.cmake | 43 +++++++++++++------------ 4 files changed, 25 insertions(+), 32 deletions(-) diff --git a/.github/workflows/benchmark_on_push.yml b/.github/workflows/benchmark_on_push.yml index fe46911d6b..01cbb6661b 100644 --- a/.github/workflows/benchmark_on_push.yml +++ b/.github/workflows/benchmark_on_push.yml @@ -5,7 +5,6 @@ on: # TODO: Remove before PR merge workflow_dispatch: - concurrency: # Cancel intermediate builds always group: ${{ github.workflow }}-${{ github.ref }} diff --git a/.github/workflows/publish_pypi.yml b/.github/workflows/publish_pypi.yml index ae20d8ec70..861dd446b1 100644 --- a/.github/workflows/publish_pypi.yml +++ b/.github/workflows/publish_pypi.yml @@ -117,16 +117,9 @@ jobs: CIBW_ARCHS_LINUX: x86_64 CIBW_BEFORE_BUILD_LINUX: | set -e -x - yum update -y - yum -y install openblas-devel - # lapack-devel + yum -y install openblas-devel python scripts/install_KLU_Sundials.py - # mkdir -p $(pwd)/sundials_KLU_libs/lib64/ - # export LD_LIBRARY_PATH=$(pwd)/sundials_KLU_libs/lib64/:$LD_LIBRARY_PATH - # export PATH=$(pwd)/sundials_KLU_libs/lib64/:$PATH - # echo "LD_LIBRARY_PATH: $LD_LIBRARY_PATH" - python -m pip install cmake casadi scikit-build-core pybind11 CIBW_REPAIR_WHEEL_COMMAND_LINUX: auditwheel repair -w {dest_dir} {wheel} CIBW_TEST_COMMAND: | @@ -246,7 +239,8 @@ jobs: python scripts/install_KLU_Sundials.py CIBW_ARCHS_MACOS: auto - CIBW_BEFORE_BUILD: python -m pip install cmake casadi scikit-build-core delocate pybind11 + CIBW_BEFORE_BUILD: | + python -m pip install cmake casadi scikit-build-core delocate pybind11 CIBW_REPAIR_WHEEL_COMMAND: | export LD_LIBRARY_PATH=$(pwd)/sundials_KLU_libs/lib/:$LD_LIBRARY_PATH echo "$LD_LIBRARY_PATH" diff --git a/CMakeLists.txt b/CMakeLists.txt index a04df242bd..c1aedfd51b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -176,7 +176,6 @@ set_target_properties(idaklu PROPERTIES ) message("NOTE: RPATHS linking SUNDIALS, SuiteSparse and casADi are set") - # IREE (MLIR compiler and runtime library) build settings if(${PYBAMM_IDAKLU_EXPR_IREE} STREQUAL "ON" ) set(IREE_BUILD_COMPILER ON) diff --git a/FindSuiteSparse.cmake b/FindSuiteSparse.cmake index a0e43715c5..1ed20fb4f8 100644 --- a/FindSuiteSparse.cmake +++ b/FindSuiteSparse.cmake @@ -37,35 +37,36 @@ # system paths. # -enable_language(Fortran) - -set(IDAKLU_BLAS_VENDOR +if(NOT DEFINED ENV{CIBUILDWHEEL} OR NOT CMAKE_SYSTEM_NAME STREQUAL "Darwin") + enable_language(Fortran) + set(IDAKLU_BLAS_VENDOR "OpenBLAS" CACHE STRING "Sets the BLAS/LAPACK vendor. See https://cmake.org/cmake/help/latest/module/FindBLAS.html#blas-lapack-vendors." -) -set_property(CACHE IDAKLU_BLAS_VENDOR PROPERTY STRINGS OpenBLAS Intel10_64lp Apple Generic) + ) + set_property(CACHE IDAKLU_BLAS_VENDOR PROPERTY STRINGS OpenBLAS Intel10_64lp Apple Generic) -if(DEFINED ENV{CONDA_BUILD_STATE}) - set(IDAKLU_BLAS_VENDOR "Generic") -endif() + if(DEFINED ENV{CONDA_BUILD_STATE}) + set(IDAKLU_BLAS_VENDOR "Generic") + endif() -if(IDAKLU_BLAS_VENDOR MATCHES "Intel") - set(BLA_STATIC FALSE) - set(BLA_SIZEOF_INTEGER 4) -elseif(IDAKLU_BLAS_VENDOR MATCHES "Apple") - set(BLA_STATIC TRUE) - set(BLA_SIZEOF_INTEGER 4) -else() - set(BLA_STATIC FALSE) - set(BLA_SIZEOF_INTEGER 4) -endif() + if(IDAKLU_BLAS_VENDOR MATCHES "Intel") + set(BLA_STATIC FALSE) + set(BLA_SIZEOF_INTEGER 4) + elseif(IDAKLU_BLAS_VENDOR MATCHES "Apple") + set(BLA_STATIC TRUE) + set(BLA_SIZEOF_INTEGER 4) + else() + set(BLA_STATIC FALSE) + set(BLA_SIZEOF_INTEGER 4) + endif() -set(BLA_VENDOR ${IDAKLU_BLAS_VENDOR}) + set(BLA_VENDOR ${IDAKLU_BLAS_VENDOR}) -# openBLAS: include a "lib" prefix in it's names -set(CMAKE_FIND_LIBRARY_PREFIXES "" lib) + # openBLAS: include a "lib" prefix in it's names + set(CMAKE_FIND_LIBRARY_PREFIXES "" lib) +endif() find_package(BLAS QUIET) From f8e8d925ad5b43f64b5d3b182718585a737c2a88 Mon Sep 17 00:00:00 2001 From: cringeyburger Date: Sun, 18 Aug 2024 19:05:00 +0530 Subject: [PATCH 23/61] update `periodic_benchmarks.yml` with `scikit-build-core` --- .github/workflows/periodic_benchmarks.yml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/.github/workflows/periodic_benchmarks.yml b/.github/workflows/periodic_benchmarks.yml index faa008ff05..297282a79d 100644 --- a/.github/workflows/periodic_benchmarks.yml +++ b/.github/workflows/periodic_benchmarks.yml @@ -33,7 +33,7 @@ jobs: - name: Install python dependencies run: | - python -m pip install --upgrade pip wheel setuptools wget cmake casadi numpy + python -m pip install --upgrade pip scikit-build-core wget cmake casadi numpy python -m pip install asv[virtualenv] - name: Install SuiteSparse and SUNDIALS @@ -43,9 +43,6 @@ jobs: run: | asv machine --machine "GitHubRunner" asv run --machine "GitHubRunner" NEW --show-stderr -v - env: - SUNDIALS_INST: $HOME/.local - LD_LIBRARY_PATH: $HOME/.local/lib - name: Upload results as artifact uses: actions/upload-artifact@v4.3.6 From c74251d8e0549893fa3e23a6febccfeec6b1d877 Mon Sep 17 00:00:00 2001 From: cringeyburger Date: Sun, 18 Aug 2024 23:07:02 +0530 Subject: [PATCH 24/61] fix: failing macOS builds --- .github/workflows/publish_pypi.yml | 3 --- CMakeLists.txt | 5 ++++- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/publish_pypi.yml b/.github/workflows/publish_pypi.yml index 861dd446b1..48853ef6a5 100644 --- a/.github/workflows/publish_pypi.yml +++ b/.github/workflows/publish_pypi.yml @@ -242,9 +242,6 @@ jobs: CIBW_BEFORE_BUILD: | python -m pip install cmake casadi scikit-build-core delocate pybind11 CIBW_REPAIR_WHEEL_COMMAND: | - export LD_LIBRARY_PATH=$(pwd)/sundials_KLU_libs/lib/:$LD_LIBRARY_PATH - echo "$LD_LIBRARY_PATH" - if [[ $(uname -m) == "x86_64" ]]; then delocate-listdeps {wheel} && delocate-wheel -v -w {dest_dir} {wheel} elif [[ $(uname -m) == "arm64" ]]; then diff --git a/CMakeLists.txt b/CMakeLists.txt index c1aedfd51b..f38007f18f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -122,7 +122,7 @@ execute_process( OUTPUT_VARIABLE CASADI_DIR OUTPUT_STRIP_TRAILING_WHITESPACE) -if (CASADI_DIR) +if(CASADI_DIR) file(TO_CMAKE_PATH ${CASADI_DIR} CASADI_DIR) message("Found Python casadi path: ${CASADI_DIR}") endif() @@ -167,6 +167,9 @@ target_link_libraries(idaklu PRIVATE ${SuiteSparse_LIBRARIES}) if(DEFINED ENV{CIBUILDWHEEL} AND CMAKE_SYSTEM_NAME STREQUAL "Linux") set(SUNDIALS_LIBRARY_DIR "${INSTALL_DIR}/lib64") set(SUITESPARSE_LIBRARY_DIR "${INSTALL_DIR}/lib64") +else() + set(SUNDIALS_LIBRARY_DIR "${INSTALL_DIR}/lib") + set(SUITESPARSE_LIBRARY_DIR "${INSTALL_DIR}/lib") endif() set_target_properties(idaklu PROPERTIES From b5b3801360b133a52b8edabe67c4b97fce581a15 Mon Sep 17 00:00:00 2001 From: cringeyburger Date: Mon, 19 Aug 2024 01:08:43 +0530 Subject: [PATCH 25/61] feat: inverse the logic - build `IDAKLU` by default and fallback to pure python if build fails --- .github/workflows/docker.yml | 15 +++++++++------ .github/workflows/run_periodic_tests.yml | 8 ++++++-- .github/workflows/test_on_push.yml | 14 +++++++------- FindSUNDIALS.cmake | 6 +++--- asv.conf.json | 3 +-- pyproject.toml | 21 ++++++++++++--------- 6 files changed, 38 insertions(+), 29 deletions(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index da27bf5459..2847f0071d 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -9,7 +9,8 @@ on: jobs: build_docker_image: # This workflow is only of value to PyBaMM and would always be skipped in forks - if: github.repository_owner == 'pybamm-team' + # TODO: Reset to upstream before PR merge + # if: github.repository_owner == 'pybamm-team' name: Build image runs-on: ubuntu-latest @@ -23,11 +24,12 @@ jobs: - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - - name: Login to Docker Hub - uses: docker/login-action@v3 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} + # TODO: Reset before PR merge + # - name: Login to Docker Hub + # uses: docker/login-action@v3 + # with: + # username: ${{ secrets.DOCKERHUB_USERNAME }} + # password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Build and push Docker image to Docker Hub uses: docker/build-push-action@v6 @@ -35,6 +37,7 @@ jobs: context: . file: scripts/Dockerfile tags: pybamm/pybamm:latest + # TODO: Set it to true before PR merge push: false platforms: linux/amd64, linux/arm64 diff --git a/.github/workflows/run_periodic_tests.yml b/.github/workflows/run_periodic_tests.yml index 9ca7a878e0..3202295be1 100644 --- a/.github/workflows/run_periodic_tests.yml +++ b/.github/workflows/run_periodic_tests.yml @@ -28,6 +28,8 @@ concurrency: jobs: run_tests: runs-on: ${{ matrix.os }} + env: + BUILD_IDAKLU: OFF strategy: fail-fast: false matrix: @@ -96,6 +98,8 @@ jobs: # Skips IDAKLU module compilation for speedups, which is already tested in other jobs. run_doctests: runs-on: ubuntu-latest + env: + BUILD_IDAKLU: OFF name: Doctests (ubuntu-latest / Python 3.11) steps: @@ -125,8 +129,6 @@ jobs: run_example_tests: runs-on: ubuntu-latest - env: - BUILD_IDAKLU: ON name: Example notebooks (ubuntu-latest / Python 3.12) steps: @@ -155,6 +157,8 @@ jobs: run_scripts_tests: runs-on: ubuntu-latest + env: + BUILD_IDAKLU: OFF name: Example scripts (ubuntu-latest / Python 3.12) steps: diff --git a/.github/workflows/test_on_push.yml b/.github/workflows/test_on_push.yml index d5a2272e50..acff820437 100644 --- a/.github/workflows/test_on_push.yml +++ b/.github/workflows/test_on_push.yml @@ -34,6 +34,8 @@ jobs: run_unit_integration_and_coverage_tests: needs: style + env: + BUILD_IDAKLU: OFF runs-on: ${{ matrix.os }} strategy: fail-fast: false @@ -94,12 +96,8 @@ jobs: if: matrix.os != 'windows-latest' with: path: | - # Repository files - ${{ github.workspace }}/pybind11/ - ${{ github.workspace }}/install_KLU_Sundials/ # Headers and dynamic library files for SuiteSparse and SUNDIALS - ${{ env.HOME }}/.local/lib/ - ${{ env.HOME }}/.local/include/ + ${{ github.workspace }}/install_KLU_Sundials/ key: nox-${{ matrix.os }}-pybamm-requires-${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('**/install_KLU_Sundials.py', '**/noxfile.py', '**/test_on_push.yml') }} - name: Install SuiteSparse and SUNDIALS on GNU/Linux and macOS @@ -127,6 +125,8 @@ jobs: # Skips IDAKLU module compilation for speedups, which is already tested in other jobs. run_doctests: needs: style + env: + BUILD_IDAKLU: OFF runs-on: ubuntu-latest strategy: fail-fast: false @@ -169,8 +169,6 @@ jobs: run_example_tests: needs: style - env: - BUILD_IDAKLU: ON runs-on: ubuntu-latest strategy: fail-fast: false @@ -220,6 +218,8 @@ jobs: run_scripts_tests: needs: style + env: + BUILD_IDAKLU: OFF runs-on: ubuntu-latest strategy: fail-fast: false diff --git a/FindSUNDIALS.cmake b/FindSUNDIALS.cmake index ca7fee4bd9..d3b2d0147d 100644 --- a/FindSUNDIALS.cmake +++ b/FindSUNDIALS.cmake @@ -73,9 +73,9 @@ foreach(LIB ${SUNDIALS_WANT_COMPONENTS}) PATH_SUFFIXES lib Lib - PATHS - ${SUNDIALS_ROOT} - ${INSTALL_DIR} + PATHS + ${SUNDIALS_ROOT} + ${INSTALL_DIR} ) set(SUNDIALS_${LIB}_FOUND FALSE) diff --git a/asv.conf.json b/asv.conf.json index db02e17127..cf1a09842d 100644 --- a/asv.conf.json +++ b/asv.conf.json @@ -90,8 +90,7 @@ }, "env": { "LD_LIBRARY_PATH": "/home/runner/work/PyBaMM/PyBaMM/sundials_KLU_libs/lib/:${HOME}/.local/lib:${LD_LIBRARY_PATH}", - "INSTALL_DIR": "/home/runner/work/PyBaMM/PyBaMM/sundials_KLU_libs", - "BUILD_IDAKLU": "ON" + "INSTALL_DIR": "/home/runner/work/PyBaMM/PyBaMM/sundials_KLU_libs" } } diff --git a/pyproject.toml b/pyproject.toml index 30e7925180..db4c2cbb4e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [build-system] requires = [ - "scikit-build-core>=0.9.9,<=0.10.3", + "scikit-build-core>=0.10,<=0.10.3", # On Windows, use the CasADi vcpkg registry and CMake bundled from MSVC "casadi>=3.6.5,<=3.6.6; platform_system!='Windows'", # Note: the version of CasADi as a build-time dependency should be matched @@ -157,14 +157,19 @@ ECM_Example = "pybamm.input.parameters.ecm.example_set:get_parameter_values" MSMR_Example = "pybamm.input.parameters.lithium_ion.MSMR_example_set:get_parameter_values" [tool.scikit-build] -minimum-version = "0.9" +minimum-version = "0.10" build-dir = "build/{wheel_tag}" +build.verbose = true [tool.scikit-build.logging] level = "INFO" [tool.scikit-build.wheel] -cmake = false +cmake = true + +[tool.scikit-build.cmake] +version = ">=3.13" +build-type = "Release" [tool.scikit-build.sdist] include = [ @@ -177,12 +182,10 @@ include = [ ] [[tool.scikit-build.overrides]] -if.any.env.BUILD_IDAKLU = true -if.any.env.CIBUILDWHEEL = true -wheel.cmake = true -cmake.version = ">=3.13" -cmake.verbose = true -cmake.build-type = "Release" +if.any.failed = true +if.any.env.BUILD_IDAKLU = false +if.any.env.READTHEDOCS = true +wheel.cmake = false [tool.ruff] extend-include = ["*.ipynb"] From 2758cf99975e0dd6811d5d83110aa44bf88d5a65 Mon Sep 17 00:00:00 2001 From: cringeyburger Date: Tue, 20 Aug 2024 00:22:18 +0530 Subject: [PATCH 26/61] feat: remove fallback option --- pyproject.toml | 1 - 1 file changed, 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index db4c2cbb4e..a6df49817b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -182,7 +182,6 @@ include = [ ] [[tool.scikit-build.overrides]] -if.any.failed = true if.any.env.BUILD_IDAKLU = false if.any.env.READTHEDOCS = true wheel.cmake = false From 670b30dbee4d3e4fbfed10e33d43f368dafe85d8 Mon Sep 17 00:00:00 2001 From: cringeyburger Date: Wed, 21 Aug 2024 01:02:55 +0530 Subject: [PATCH 27/61] feat: add documentation for Windows source Installation and update other documentations --- .gitignore | 3 + .../pic1-msvc-select.png | Bin 0 -> 191662 bytes .../pic2-env-var-open.png | Bin 0 -> 31546 bytes .../images-windows-source/pic3-show-path.png | Bin 0 -> 56635 bytes .../pic4-save-env-var.png | Bin 0 -> 178936 bytes docs/source/user_guide/installation/index.rst | 1 + .../installation/install-from-source.rst | 146 +++++-- .../installation/install-source-windows.rst | 382 ++++++++++++++++++ .../user_guide/installation/windows.rst | 8 +- noxfile.py | 5 +- 10 files changed, 503 insertions(+), 42 deletions(-) create mode 100644 docs/source/user_guide/installation/images-windows-source/pic1-msvc-select.png create mode 100644 docs/source/user_guide/installation/images-windows-source/pic2-env-var-open.png create mode 100644 docs/source/user_guide/installation/images-windows-source/pic3-show-path.png create mode 100644 docs/source/user_guide/installation/images-windows-source/pic4-save-env-var.png create mode 100644 docs/source/user_guide/installation/install-source-windows.rst diff --git a/.gitignore b/.gitignore index 2a7598768e..80bd271f1a 100644 --- a/.gitignore +++ b/.gitignore @@ -44,6 +44,9 @@ input/* # keep images required by notebooks !docs/examples/notebooks/creating_models/SEI.png +# keep images required for installation guide +!docs/source/user_guide/installation/images-windows-source/*.png + # simulation outputs out/ config.py diff --git a/docs/source/user_guide/installation/images-windows-source/pic1-msvc-select.png b/docs/source/user_guide/installation/images-windows-source/pic1-msvc-select.png new file mode 100644 index 0000000000000000000000000000000000000000..5f9dd449a7cdf306b691f7c8a5f9b6e8edd4de20 GIT binary patch literal 191662 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 z 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±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 z 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%0A?S;HSrqK-ROeD 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 B;dY8q2P=fH(}ohSf<0Mi9@M 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
  • 26$Q1ELQRAfoW|HU`6&RZ53H!O?w+;9JwzQn`>wfaX*_Paxtx^p zeyVs4=V<}W>NyViY5@|!y-vP0>Od#8K5{hVjvY*#*= z1L^z(!VR0JeJc54Dl!Tr-;EZRM)znn&+$H*$ur^gF&S`b)G=4L)-F)kunLUyh*RzN zPD3btmAz$bQ)v;kIV8_!66_GHG{T*g5WpVBk>CFc(cnvx&WqSt(l5Mq`H%eX2S#ir z8sS*GSH|kzNl16147>ADlL;v?lr-tGBJWh|3=1ReYWkF^Y_mFmt}A$e}) zIaaXe{1*%zf7hy!41IQ^@tyN9f}CuTQhIv2gp|}`o7vuvLcNY@jcs3Rz`!%j0v~Eq zD#v5jNE_sWe!if!EK0L}NUWU#5c>9i@!i}jB)f}MdsFV1^N-1Y>kw;TUua6iZmvQX z$g(kn>@n}a%%|4Szet@5@t=zhkt2tJ7ODP4X#k4@+0M#5mgv=U&(L{Lm%mbA?q9Hq z90?X56^5P8sK{`iKMD=H{XfWMpM%27$`yLlqRPUfGk$-&$j*Cmh~hsN1#-G$$N&}X z4EBo(Ft)_X^|uLW=wGC!JYg+VS2>_B%7?Q_63grLF@1~^o@7)5T51ZcVWX+#q*C%1O(owif+jO_p% zTVMFvaS-%QxUseOw}1D6fic9KcvqGq*Q4CCM)*v!X2TLS7Uh<3YwEgp+3BYVzU@T4 znN#`WdYOnO>AZMi2_n9UaZgqO4Gvi`8TBKsPc6bqc76^Rxv~eDy@X_5o=)y5GsmtT z*U;g=RIj*+QBycX*ZW!OUO)Ax&)t9HLM z7d`vR^)VvirvJiewher4vZv@KkqFt3@90$<y z^I{MJAn^848>qlxgV{POTz2@+zn!6cOj6fYSnVGI zRbNZYgot(ZG#Rt>Lx>rr^#cAz$0uL5GH-gprKX{fGZBFz=+E?T`2yR)3r3El;-J0* zlg_{ysTjI_a6DgALHmh4q+qyYO($LiO{$5P?YpkEd{W*!J!u)FJ;Mc$PoG`n1*~f3 zLj0b!Et*RZ(^+8mNXG@!q-i71zrk_{nfP+{?ZCa!-8s@)!y@T$3tK0Ed1}&n+70o2 zw{h|%v3*_y+trM-jF*J$eCz#a0g2K%)Q@;ghLRD>O3C6DZ1P*-n7=Z_5Kc&KXS02X zNQxo8r+qe}Xe(>0;aDeT8EYuW^(na#Boyh&Bv2B}Y;uxEspP+9UU}o@#eEEip8e0- zlQV3;zcqQ`Wj4Bj!$t+P;Y;gZNoj6>870#L)-({3doje<``ZyExp(mXfHJM(=v#c# zhYL?l{ZI3c9MwgN{a(hpXGRW(=_}mY^H&ln=+)n?TtF@~tGOkcfGRLN9=+&bJmW6s z*_nRvf|d3w3+k#z>Up!q!fCFNB@%Y2NV#;6>+DJuC{q_eRzN0$T^sKIqanRnvGS5d=5Te%%U;)LwA${u;N`Bo#C z>J|J14vs#y*r*?RYZ-EeL+y*)imeOwTlce!m5dwGV_P-ifaDn8Fqu-B-_Z|Xn#&SI z&#^(lvgEpt_;kR|Q|ucQZA?didkXL$?;9SghRJ&;ZXh3V>pts{!E~ZxK)stR@1H7I?E4*L%@fG;mddv zHT#Dz>~zjLw6z<#@L#mpezMSJg1-iJ_gNRqNL%{8RoEh~;cQ6?mM$6r)0y1Zj>eUy zsl|tH^B;hzhi#vPyym}a?H(mur1S2S#tlNu-yr2eb$B19`FBaUS@SMzVEZt+o%S_{ zeU|CZX|qgFsPD6!IaiUL!X1{jiF~-6{}#_N8Wo+TKgW%= z1odBQD9%_yNNXA%oY5{hdH-dpvwMvv6ij>XmkFj^)kZ@8Xm$UYB7sC?ivr)d;GxS$ zZ>BQ)@<4j_Y+H~pbVXsAlZN=pCljNQblEk<=dYU(!HGQw=A9Xzk5mdpSBKo{Puc}N zL@s8X@fd-g?Z!`&ID_~y{3mmjN$TNp**DYd6u;KhavqxLjFZ!5TVjDZ+a)el^n@-6_bR?PmuQWBqeQmIf^OD=*ZA5?Rd7fb7pM zmVD7ACd&IApmV(7zVx-#nQLQ8hYuTy-SMPGNN~I~2*Pbp7-&4KjSp#h{6-_YhE36MzjzJ_D!*&zhHmOBwG zAnzKoiOpN#WePWPF zR~qK&Ou9-qApxErkZ^yIC{ zl#gV0gW#QJ-Zol@9~o?Td_NdtnzXM8zFzEE<1&r;mK^51G8?y6RhH2dHQ_5RP~#J$ zQ@>T<{lwNCqSb3J|NSj^3+U17Z8&{S%5B}%O*hH3+*tf+IZQ2ku{WgeqK5eB)xbwK zq!d=V+FQEN0)K1<{cg`;q&8=!dV3*sD0P2j(07J3Ih?wO+2c>eA!WRP6Y?v7T3E0n zBr~WsD*p1Y=)IBejjzl<*`;P76#1xT2IG)D5k@`|v|>~3rF&T>o%z~EvOJtw$IIQj zWz1sjcOrR58>h)f>q*e&m}7i$lI`q$I53Y^Vs`F9Hdz+Moley4AuH5Ve+<+jy|)VH z`n+*xugikh>?wIf1*(HKZO1iU#W__++1kdU#b)qL9vz9wAGD==S4INvus(NqlXqfM z;{3^SLneKHSZv|UqrLiX0dDm0Xy_ID;@T!;&S>4txtu+2VR+-MtD*cbR~eo>0X9px zU9#JM2t?*(UY!|2ZHIH03PL&=8wft%>ey6$w<7FOJJJ5(atGRA0wuP9Z%d%itjz;d z(>ixKEVTembSHd3T8J%Kjwr1iPi`031DSk_5*n*xl?XJE1;I~t0QSG@laD?`q*M*$LK4?rb_mJ%q5?dvW62sY>}++%$=>+dteJScf*+_B)Al5InXkQ%PTF> zj&K`ml=>Nj*ovQk)njqrhdx?0)FVGjZN7Z$K!#NnyNRW*_3>Xw2B9{PS&_aV_sjce zN=FM`m6YqxQ$Nsv()ln1s&URaxuDumO^Q&i*xOyHSt>zlm!6WLf> zPAak<5@ly<{B8O8YhJK}_FQ6Jq^e^*>i$#h876T$%$(Ya`siuKBON~i3qD2!XwYoW z^~TFcJ?R-k3|+LIUcMwBMoge>s(~I^){2a+C1!2gQ3b5y`(RyigG9}XurB?n8$<*Wykm=J2K>;?n^O6Vr5|CNW=M2f(hGk+pq4I2P9%e& zccgbI1L5A*<||^bK+Ur+w4xM%)u#%WUJH1*9MSsgxy@~*wfrA5oISg`Q%GwmiTnlQ z|9=T7x?P87t;>`*w_+zloGI}<9RxBR~K7DBp3Qlb#v zvSio`-_$L*9PDgz~x>|6Fo3 zIX~vPhd+8vT&t<^5wJ<@pq>h_`u@>GkXhr~!KkH7)Tay!{^Ev?pteHv$+Em?x8cb$ zYwxpYk+RO7ayE)`kv96ZJFnZE8kVGTNG_Xa(-aOHvvLA7wJtC1bcg>9DYWZe;|1AzeRlg4vpHIRfhkU!#yX|_a!gyJBsJ1rB=3Cr{#F{s+y|P@(z5>TUQD|B{{PI zc8Vc6tDihR&gimx*-5uXJoua73J2EtQdGE5e|1m)xT;ulus2yy=TozJ+q>bexro5- zalstj{yX%Pmv0-M=8{?EJL&^S^q zpO0wO=N-1Wk8ylAi}vz_XBX6)Uii}}=E6GYX=Wu^-MsmHZvL#era?v1nyn-Q{5%Y? zJ?$j^a`#Cxvj!FXgK6A{gfkZ)-{@}3jYh6OQP&;Iap`Tbh z!gqV=!)v3@SJn}Bd1hCG3dDW-KZdyd#J^AN517M6b-$246{re{+kSSkwdxsW;f{5( zdFI95+M6H~W)k!4Xx`-&Y%)1-4Y%^1_fZEdWmY)7x}-8w=)TX^fH2Vg9u}mj zTZEHT23;!Trd#%LiN1FOv3JYiNw>qJNBgV0Z-bEdtiwY-2j@G6jQV9?X}{W(Q7Sb^ zna_^LZ=c8sc)r|@xoUK^3hp+!?G)tN3I!BQVvG720ILwO1tT$3;0}H%9*rvur>8BN5E-T+ml`kPUyx+X+?$gB_ z+d8V|xv5a2NV4ZB%!CqPKo;pZyNUazQ`Lseq>cBF|&YkLRmwdb3?hO*>cMoZz~`K zk{peo!<}hbbhrwk+Q%F#-ZHiauYt z35GzS)rE4dgB1B7k$h0dzSmk~Ki|%@!7yzzjQA1kR3~3L&eM*ZEF*%OZzL z{`W^sN@whucC!vbSL`viZqrt2`~XrZqQ!lRE2ORxxy&QJxv4kwviD+1<7P3#S@zSi z1_BG!_V$OQ&Q-YrDa+ZEJFJ(t`#mOJ@<)b5+y$c!4xBa#fBHojtCR4ZXgAY^Zb!48 zkd8j;62sIGYYM=wgQ}lH(Oiad@TATg?DBHKRXV!*iZR8%Yd0nEgAFq;?N>QJiS$H! zuc}j65t4M$IengM1eQ$8VCr-oYLHub70+s0u^&WvWSbZ}>MvziEvtAm-60NKmmNdt z{?eZO_3M|eKx!_B@&Kf5ar|+`*p9m11DEB`@k{uMKn(>lX)r}OZ`Kq;PAv>x_)~?3 zlyis6A(S5TtO?>+M5w*E}u>c2>(3G*at|c-E;8F`*hsra8Qc1F_5P7nEO>8 zX%+gU;mS&IV&|tnK|b(%QNpW#(m%8Aqrlf*lhRm`ihg4CDCuq z<-;!xFY|8Z7I>~q*N;!P5g4qh9hdTjwSL^O+__UGOkwAC&nj9Q`S?*DS()FI_&%ff z?>uxcJD@;Hh>}>@Yv> z1l`Zkx1PzCxAJzrqGmR0mbrNfj=P)~`|`P4!9>3OMntNGt+bg}cHimF86NDh*CD@6 zjKyrYHP!Yw>{{_F6yP)KjToX}o^fX0zskF1ciw2^mW-IuK9k~I(pj}FDd*A%XmQrp zdeXd9O5&o#9u5~$;NEKgvGt?r_Ue=L@o8Z{+l)IR7A`KT&EhY|r4)D7Bc^T{#7_N{ zs4iJ?QTC!uT=JB=>4D6_RD$zW?-ksG_2|2Mni>eZfdSp|roWM$f%%O#W@lMtI@|GX z6=EN4sdtNSf(lCbI4;KqB(br9B?q==385pT3X^2hkWg(wbba=5T-pbUVT?s)Z9SW3m6_`=0cmk z0+)FJb#gddFP^In1Zpp=pA37j@$$mbQ4kiE1HCXLHbeQo)k>f3de#lI+rr=NnLep6 zK0^Nxi>>%D{qsJiFc-_O zBv)UPWytH@sXz`L)Cg+t=X}T#-aY7(;NYTf&V8`v^ke%U4&`kh3Vk;g+#06S z=RHKn*o<{3GLHitX6Q=)CWxs^Q#%g&SWh%w{SM79o9_kyVlfgmm0_r`AaK2 z134oXo-wNQtDER)b_mQGMzHg>&^flf~yr1BC zHfiAt_B~w_H<@R~S$nJw%dB{DLGa47-l&fhbB#i04$o+1n4Dj!F3}}jet#hr5S2!I zoQdgajTSkG5?dsKR>f4_M9R)h2s(;%n)VdmMy{qVXop$K=dB*lNv~u36`2SrLg72Z zbI3;2;T5iR)fZ#B{ro0=MGRG2tH%}MAQi(nA-92mo|dw=i9#_jz0(!h-B) zGX1phAJeHL8Qo?VpHy4?_nACWA}W@iD%jm3362Hw`GXePt#s+fWNm9G?Y4+!Za28t_E0xK5* z3X2hS;_b8;+tiBwuc_}3E`C=sEz*e_Jhk{+Tm&~Sv-wMQ^gr!6@lR5w^7r0bnC)0b z%xRkUKqzr&Odg4;k+UkR9SzZto+D*{Vsf8E_FG*!S83t2-_pw*PSf5)dt&rd(iHWj z7g99{bj}HY&RM8=-%JC~VV@e5V8#SKxTiy-*=JYfUm9U7+_0i3j^`HK`<5ODs^5ET zczj&Df&)<0DvFB$%s6f5=n> zs!(&GY9lISN~iQ3k8x(%sh#67)%(3IX2mZ~ymOou6PEl|Q`%X# z4Awdk<>a+(er%IAxbOs-hHW7wTK`0=GN5M0FlLZDJW%QADK()e&3M^GQn)^Y;yFDB zKT$*gj5NG&f6U588e(IqXdX28X>jskYIgq_3Upk2CiMlh=>Vk6Jq?{f=r$5Hy5KMD zFfMtA{T#9@t6sUi^9k&Q43gq}Z|K5VF5Bfff(2%0*!R6p(S6kI|J8)stH zp1moT*x`hjTcF&;#m}<$j!OILE0T#ADtmu7u@ll~X5L`&zd5FBg1rF-+loqfz)x%8 zl-_XeXXP!Anw{4>#xDeDwWm$!iEJfgYSG#Igdji!|gS!n87Q6du8utMS z`#59pae8@N=<_Gbd}=Tn8k^?m*VFphZ!a;gt8KzN;qJXYe$p!&wjHy3=&j0si{CH- zD|@>O)P6PUYmll?z+I;5PY%SiKIREr6<_CR%Rcw3RQ>26(`9Ru@aPkQOqWWrnhZOM z$}UNeaO^K+r(+>cj7#i6gX2I9P1XgXAu4rUMm2!ldZ&UiEit;#-1e>dx5Spc(910F zY4my&6@6-e2Bn+M)5g|#vlr&Mf52#qP%J4zrfWLMs#EhvW@k$n@Qzr7pSGc4g!mEe zJz3a$?Sr>K#dqK`ab(qGCHoRFfhmhCW;Kg-Mf$TOQ4Ru}f{#9#a%h5@7C{RUEpRgS zXqtHY#ghKM9mQ(wGZ409VjgQvochZnxA^M@{#FsERbV=hiCr)1Z$UZuDOHxe<$!uk zBfDwf>WH33$hMOfdA50DGHcU5ou_|>5(e0i|X6OzblzT`3saG(=)$!cP0(sU}f zrj4hk%@S+t$pm+N-r4lHHSv43?TorEQ8X=uZuTu8gaa1b~Sa%90Smv z3fxbA$Z6ZpB^9CS67<(%V+3Vdglw~+@%w-yD)PK#8+^+3a6Etz0Qzn^$7GZy*A~6< z=H7Fq142zc?&r1|G-q@$&T}H(a*a$(;ZwAaFfSB9n@=5SX1NuU=25^E@SK5NTaEc< zazpKqYC(H*@YX9k&RdI|rAuCu#1U<~;L*h)>C&e;m-F!B75!aOa)rFMHDeH$Ud+&w zJWj1rgBVa9S}jy69?y8T;j|6$G2OkcgN=3K?rOVoC-1n>ZvkQD=edSbfqpVG_^@%K z)7Go%WyW>mO=Yv6uklmTYml!&nB#^$x#1b}zL}}t4YjVc7l^2)RNGQ~9@!LUPD*2M zMCArC`78CP*m9_{rE*Ueg)i24RxflrZrT5!<-O#`RVqEEdolWt;w}YQ65_vQVz5r9fTgPe|uU-I?d1 z*1Fc;&Cz%gZ)kt#xJ%ggBv`U5Qx=kI*DC$~f?;EIQjVEfBIvVqpQe69G#PQy7t_zt zfl=brZl?kh>knVQo6!?;8--Zpx$G>vjA<~#ZV+{c)86lAF#*ue1ROPZ>yO?GGoAkh ze5)xZz_%@ve}Zp41o&3ULx68YeE)!NzvJ=3XKSFjH}u!&gL4Gb_<=(UykNk@KiT1H zsjJ-=f)oA0e$Y9z_P%VNB@^~a|DKWGueb3?X%Pp_kE6bTamcB_qUa@-53ttt8u;Lx z(fC_8u(<)eTmd-`bBWPRCcw^q*p1bnrwSL8*Zt|9)jY1|?8Vz!jy-Fk+1h1L(zhVZ zvs&7C-AtQ8cfFD)tJvcsud`4k@(et;(kSi(g{xjpZ9|JKJyH~oQ!$Riho9~EjpDzx z9)-V0=(A=rexbq`aXcU`Aaw(jFgVOqMUqx1QuKLWlhAv^^g+^(_Y%jpG9{Z|7Tt?x zf;N;UyZIUl=5Zt@4SGGuT;o-hn;x9#aC?%~2zNsw$iPF{fd$nG)}5ysFW$`zpv?U2 zGFsSOwv&jXeGJ-pTt18dgOZISOiqyhp~9OeG{#id;<{!==X=c7*u2A#_>q1Bt!yj; z#sk^uJHXE9A?FR(F8hP|&OYN-)`P?9zD>A10*^d-^2F7+2Pl#n%gCt`pB)vyPE*PmT>4MTDgNRO|3Ls>Gyejf^3&Q&U|5*?41Nj>l z19E(%@8LgPiAJS)Jn?@n;VS;4gbUxgW&AIGVpMfoYv#q`XO%m#hNoVBgNjyz|0(6W zeQsQP7(|Ez=Bvx@>_rK1a}Ou~c>xczm999w-#;1M*QS`eOE}3AoTOhwxG4V8UTG_k zJdG7Uy7Lb}pKR9g_r*(pLRkMljLiNEXM+DN|L1Abuh!)!u;9Nd9rorHQTjIxanqbv z#V5bDoPFu0Xu*CtS>tMX?6==Ru>$1;M^P9)ERYmC&-oh3G?Wlv>AIxaA~Ca7c)GgZRSsTXeZNk{ zO0GzU1H5NeqG2nB)xPkW+~L7|lV?A!#0Rx%TZcz?gf!~RHf@i4PlO0r&1$eZ&6K+P zmHCMYr5)in2Krd#&d8}3)Vs8#kYep{gNJ_THssucAss>l=G+5_3yinTxS9{6^jm29 ze?43PA0)xMspogE)C0!8voW0lE$9mG-^#6wt=ibMf;y$)v%1$r_%@o6bqAmJVv-d^ za3oyf3IYvT3n2NR+P}7SZ`Mi@0N1dQ$YeQU86RH%V z7|V@AiQ{TcxU3f<2X>+acl2nluD%8xYqKGwsZvQ-pU)5x*&iz61|YtbO?#n`$C48k zhkIj*%%bZd8dQV&P3#L_53L^1$%r@bNM2w^NS|3T%}rXRI1mv%U%+p>nGL3i+L7X4 zTl6|>*70#7Yb?i&cJpTH5Me5=h5f$P?Gg=dpZThsVTLl``Fk1WNbEzJbY%5BzUWZL zbR_gNp0G6yz}@e=$7-U5sj2DD&`d*H8=G!|i83f|lhML3;%pbY(+d!l*3cOJW_df` zCC&W??V0`-m}H{%0o1d3Gmoq&LK)))&94{tJaFIHv>+LK<1Ti`_$bb7A=%Osd|-hR ztn{YU-LRamOOsJOSa)c&;WzG_b8N;o?}V2Gd+{%!cTQb+psrP?sd+_NXFF}!0f7RY z->rSN?HoWnZe20c}MR9&%SG$T>NuYCI@IuyccIN3Z4r+UAPVp*x-QFtNEVU zH=M8|I$;q4bFZ_b$Jws|SIWLSW{cF4*X(T5jjOkJX(1ZYsxgRIK*QkO#NtlPfDwlN zRvyD(3vR@W@@zAHSs4gDlOI*clVywB$DYui?FtEJUK<91y{>TiSZ1GvPt7Vh9Uc!%4kZ$0? zLb7ihRP6BH*_<~pjMP2g{fJRNfzGI_}9Bu6cK3{X~0^UniBblcV0HWh*gqa z{ffnOe?3ODOIYSnJG7vZu{eJ@U}nt1&A8Km_E+EHqp2njz%+;hthy0+=7-cM_K9M6dj9_-%QhHiZ$C-u!89BeH* zhKd*Ibf(_0SZ=NaC1%(m!-gH zyjCJeg2kMqKRUN^l6dsbX+kxMZ)*=LkvJWiPo4diGsE?4J)zZ!*ZG2VBG{Yy>(?8E zaom;i#m_q{kGI=ec-v+e3-j6^kj#wNq1A<-`j3sXFZo)Pho?PCnjZ8o1NiOOSX;dJV2tU)DFh3k=P#$Jj$Ho#(6eeXbI)34?{5$gz&j z)3UxzT(YURv$U*Pj_IN-9K0&46QNVzW0q$Judhel6I{~kR=3bn=(P4(34u(RdAw9S z`IQN)YU+J2A5Zdorav)C5ELczVYfmlGB3#sUEtq%i#ux3;W^AhM z8TiVtUeCfcU3IlvN^p%VzjE9}d>0Nbtz$?>O&8}Xa-ICSk4OIJPsM?dqz<{J^1jfW z=TF;Ui*%8O*PPFMvS~Exi%_xmuubCccoRA9J%&xlBiUnbjm=HNkatnkBQv={Tx_|NETTYE4?aOpo1;=sL$-RtKa?C$RVL@n7m zJvkZS){Hc;W1pWkY<*0RZKha07zEy`Z_ZXN=AWJ&1(!uy8|G#SEzi3dHn1^pJp$vf9Ug>yKw#Z+WBkhlO->O`txi*i?FErQ|;!>c_Pt2 zUsKB?D;Huj!=;@XHDI#%4ge)+eqN2ZbDrRS2-R@m?|XMG1wU*LNVp7QN3{QX>vglm z{}z_0-)-*OU-=5{j^}K#0jK*c-ot*OYB?^|UbeP6I<7U0TpKILrfM%^cl4tmMOc&t zr|(%s)9!CGY#db!e#8tLM%9AbH^Zh;wLpU?3=4bZt=zF{nw$m`wl&U(2%MTteZotf z4CcL2AS8V5%-zDvhcrI9vEVI5=Xv6_-ztix#ZJ4uuRl)r#uTrlLR-~b>%&x>n?M=! zliGThM_Z;_k!Tm!S)5mYG1V0k5^7ksJn{R{_N4)^Emz8(UwAs5aI41-&JNOmv6@Hv z{PIaph9}#dszc4antXDRWkncPPp!r_m`U8?d@>fr?%6;M@>7>wuWm`7weA-=g+p53 z#FD2TCzbdiyzJ~yP@!drJ1Rqj|KJJlJShNIhKj`%375rRGS9~1T^tL}@NC8n@POQ| zk6+2PA7!~SQ|RaXxLm5~JL8en`+L+)>%Tg07<(TSo}^w&n%$TnmgYA&TU#w9k!V32 z^FHw(=^KJtHF)tKBzuh4B~7&yy=a}d$U)IRE>@fek3(=|i?!lE9K(HFjeb@5XdWc5 zBv_)bTTPxtwRC8wYWyNzTTi)`<^XS{0?i8B(gs-1r%AfZ59Z# zevMYP&7R_M<1B2zjo?okt}q1~daCZah>Ks@9+C3MIq~s`6no}MM>|*;Z*9oWV3^`l znL2Ule8fPK3LqB~-8FD@0IZThLB3;~N4^*{hg=6C`EXh(3P@eM?|9i^SGsfd8ESuz z33%&$uiq#t?!Tjc2!;3_Boj*LusKvcTZe)!(%*Pz`SD z*M*}l0-)JC&d!FJfZcu(l*ap;m4m&>^M_A7@JK_hM%T*~2i@FwQ-d|t!`+G67R|D{ zM}n273oVCPCvdLTN9j0Z{PGmUfJamr+-xm@*59jWLQEI0@IzbV2F&!#5xykO(sEs% zr+aj$195BQsgXU1amT`rK zA5$?yRnt&K_zz>cZtF@qqszRjcgUeSHNU}o`6rLQv zhZ*h6H_udg$R-1UiyoT!(&6A`eU}b@QZ23?poxN6z5Qa~dPMIf=W3!?!NjNjKQF)Y zd`0qn-Wk7f!`bSf9&qM9RcyV%IeM13UUxir$?Sa#0zDp5>@svV*69O9t$dtlXIE~< ztd8!WoFV!HZaO6Ko{Oip8i8#EwOlU`5Gd}Y%pHEe+JhN{=WMMAenU^mwgKC8nnDda z7>h@67(&0+a<#b0F0X8G){EGGJo)YdjYWdJKAw>8G|1U;HOcugRBHp#lNupPyBL$LS%sYJrx+jaa4*8>@- zHUfwjG6v8F@N>?e_kfdcx@HspJoku2nvs9|Gu73bLAn)ZJ@=QL?E0VVe8*3O00h|3 z-=FVP1kxj08~$0)Pr<46Hz8kvzpt16q>z%3Oe0!u{|-F&ir;1vc`f?Sopu`B2+RG; zfp$ZfG8YnZx=rstQ+n&1wEe^XCiV8Oskr|S|6WFrkawqv@;Xk0f*f7V!#4$YGeouk z{Q%$?7;bxWH7$;Wyx^CSviFK`KL_g8Esp7>_#)c3KMy3vD46|=ya1^I=^}eQ6aKDk8UMc zv$HaYdBuC4`wXSqsy_ofudxMQ=MKQ#HpzkY#EvTPJdr(FSu48u*u*!ZvKY zkZ%-HFXKGx{u}mdAtawZhWK>wV+(Yi`%`HVCD?cQKykw{Zy_(C=0m0#JkG4BxB+vD za23eKR&4w@pnEMMc0m!H9p`*5=BP3^Iy=Q{;#d0f;;=|92cUU-m{jKEKb-qaJti-+2a}vTfSrPHAZVR5(i* zp@TuWq-kh;)Vh&fvR{(Ka!?~I3CvF4xT6&*vlFRjrHQkPnAuSoRZ3BPn7mdZk`WlD zw^KKFnHAKl=ou%hu0?Vvg8w8^^1F+XL~^(z6x36?Um${wp$5$}epJzL&ORN9dr!Hi_z&Ti>&Ap$%Qz(R#|WlrtA(Xbeh+ZUBu$w2O)70bBN*VF6Km#-yQb z-7o94i7X|~;s8F}w{a6f%ANrne%a}f@<-pwU;bgMbUttB1dEBI^;TN4$sTdsdzw1l zq2zfg9r=T-_G{@@ohZ|*#F`#=-CkPUx27C3QO=caF)v-ZZ>Xn?7pjJPeHFaUZ(}~7 zKJXS-Vdk9wprP+9qLMdH6kdvC=^0W}>!q5+jCp#h*bT^d z+!Z#PWR^33X7%#nxI4HBPkTh-wbe3QBqk}c)aB*&VQuBed&C89eWoE7s;pPS*HoQj zMHhIoLJ5`T4k0r;w68q}8=dzvL&!{+j2=zTQ8UbQHfLbdM= zm%^DLo+TZwb~H zBBJo*Tp8`sv900)@VQ;Lswj2;6#XrDtD-c+d3EM3u;6_9k0R?`<=uyK)o~NPN=Uog z^hyz8E#Q#usSi}_r%&|%^|AqEFkk*E++3v1AguAfhsaFW4%y~HYirR$il9^HzmmoO z`^tgq?yt6avQLFf!CACRNmb)qaA==ZlLdY0C<5eL>Bli%@Y!JTleZYoFAIbS2Pk!s{!4NDe}t%q!mh5uV4IPmBy=(P zbM8yX(I>m2H<6u;?$+omzF?6llyhMG)B;z$xcL zmM_RP2>Z!y9ZoaZb1iTNBKpnnwH|O16H-W=EX<_MuG`hGiS7@5yy4ge5*a%Uuf#lW z+`{(%vEnf|tV0Q1q~4ASFF-KE_=G)x_9}D-96R4|ueR%@(3|VgoK?#GyAe$?JMnSQ zuKQ&xV_o+74-GC6nZ_>}DJ>jr$J~*jQ=^QM68x3td6PXYw$aX>5x;(pu~(JS;Iy=3 z)BN7QGQuv2C6+E5T>e8IGna&S^4alcFUn9NfiZ8}WC}=rg*(c3l`lkcUL?|um@(Q$ zkchJ|FMkrLdH}n4vHN`-bdgwQrA3cEHkiKW{3| zM9QT)UUJY$0;#o_Q3CW|UX+mvqX`iifIOYGdz>lu)v{?j9Wog5a}Zl4;?BSad6$TY zUxB;V1Li}s*%jbpOV7id$SsBOx1VsZE1_uXbTSU{vH?ZY#<^pDFlH5Z2mh##pGFJ> zAwbQyQ|;l8(~7^Pd5)yGrA=cutH0ey#YH+j-@UwmFXLxWhU&AuC zK!3~$X^FAat02z0(YO4QazUUb`X>KO9$(ipDNl(cusC$qJrxI=1e!t~ONjx=V)|RD zbVbh>6&Hi67TEmPk)*8l**L&X&$rfeIn*jGLiR6`-RX$w;*AYXCS!VavElx z)p)+?7*WIAUhxAa#z4NX_r|`y#YMEdAWzgaeYR+x-lKb9Db{WsrIvWHeh_y;=niA+ zMoFyREW7o!o7lZpIox}hGj_m=!CYL-bC9FOl}>>8*6jANuVvk~Vhy!VPOSChT2Q0d zBbnc@r7LNiNI4ssCs$!DF7PB+wZh;I*tO3d#5~ zc|pgS;O6aMqzb!2bz>@jbwK`+1_OWTguEF$GQIW1HcvBI9hwEO^iCxg!FRWtdxaf? zn6*xPOSpDeJb0o43U=aybm#4sH5;toq_$gVJ`u3zm~vutVWzUMSdR0e)1+LnpJ{r> zKNyxn%xOY*PrZ~6Ti=rFOSe^j;4m6(@;od`529vKVu*HTaGj^Vp2hX`Q#ZzABn7h*X}@VLKYBY) z{5Z!HLiYfyB@8z?80@5PH%AmpCe0`E(Go>i174*1(uloj#^vqCw&mL?0$#K?*x7lF8W8U)8!LL%d}N za?H5{FK3B-{xChn$Lf#mpjO`I8G%Muy10L@e2Y@oUeyOSvq5nQ&M~8&HMWF=WpxIPbC5mxD1|_!kuhr zhg9>S2pcb$+@uh2#x6?70&GQIyPtRT6iZvcZAqb4%|CG68W2y7?Rs^K-#=`Xr&Sk7 z=ni5g&uATxX|9dK;%bKNWu>b9BA%4=!#hy5 zS`l`)^_q{FbX22IZHuy%Zf={nmOLq7+E{lY#$k4#8z2i<3ip56Sw+hYKo^*ssTqEs zj^e!L8OizkKM^%=m-MgqZ%J}DYuY7)_4C1SpIC|>Uqm+ zH`QaWKc%fIIAwidpnDULa_jf#p_v|%6DH4~ppD4J%;_ReGMN(uoNDF1wtj9QM*ZUM zrv1Va=3Hb}Fpf7a@Vq4x+ z<4bkDpXW8{i`AY4MF6$(+lT73{*s@(ZtO$Yc?uPUiBKq=wI}Mry9|p%UZ4btd zvQ?CU;o3?v@2h$}rc}7pgF83f#jPvIYr{m*GqHZ{)6-+-uBi18WV2U5IorSb71`{d+EQa@>9B!_xr2i7c>Q9rhN zH$I$0D*uA8t~I>;+GO0?lKgzv&CfU21Yj~}Z^UXjJB(GOoYrzS^E_-av}1fOiwY13 z>`N^I+4HFUAe?=19g(Ln>3I*A59%+bdM>-zv8St9H(vBl z!hyZXOIlI)t23A0eLljPK7TEvIWl=bj?I?$89mX3D8}B7a+;;fAQ0p=0)= zd~JkXAeI)VS2OSqE#d2a z5F4+wgc{Eo)!=LISOK7A*Dk<*C%WTkBMN9&!RezHDKX#R+pa7+qkZ$#I2;#B01Z8nb|EG~_iQhwA? z-*WK~IRa(Ndcwg%v`|N1Mgxf*xw|rGPhNqA_zlU=mQEHmOf!NMLq>)(E;kmUXFZRZ z1q8uF{@Xnk0I_j2>mWc%kD2wd*8!okieu^4d%I{r2JsCfDvFPx*?OOjW9dR3v5H^S?M_<)k3gdY4Fs$8 z{QhABk?7L{ei}XzUS{={B0JyqI}L}n1~BY~TAV^vjq-KYCEFWDFgSGJ^{Pm~aZ6ym z{v4{hsO)g+<)LnRW_S2hZ?BKL{v#T2!Se$;9M!c(3%VYFcl#q~G>C=#^eG zX{f3Xwe4|+edL>hHwYEkH8zOskPnSJe%+`u7XwaG*<`DqpC&m4r~Z1kN}+~vz6GV& zsrA>5v>^$P%p#r(nz7ejOU;E8sp%IKDM-DpFEY+Af+@OdJk!*yZ`pYH&b%@t2f^J} z(>I)Md4j34y~@ek5Z1Y&VdN84du#m#5VbsCO$j%UI7<4q)N$N#yUum9`ne{Gi^W?s zajzRi-z;zkDp}iH?V=I|o!WKOE@l;{#cqxTg7YBF1FjxRXx;%dR42GwVL*&J{YfJJ z4bYTyf!^!pPp%m|y`u!CoG#f>N!&CH88o@{M|+9P?i=^t7_$>MTy-PI=e}^kwZM@r zYyM1M_5mKepL`=Al`5-q|3Q5^-g>NE7+g2#^*#@}0LAf8sbZD! zsSWN(=^dU&i@}F^8(JfW2{-Q@-cfYvSCmcm$fDP~_`tgXd5wM4YnnFgTlt{&u~F@? z*ew#*D>Hkqj;6=;5y=>k6WKkpkz#QRA=$mMRMK%#M$O$Hx!zYOVdcUi!FW}>%ojB2@VY3LD4 zb)ofG)6~0yvpJp_g;YW@yE77vOQe%$slnBmsGEdpIvDP%x@#HDQLfM{ZrU+LCL^G@40%Ff++UGZY0NqP(Tg zfbGfW`wE@YF6M8GJFvVRoI}r4BTADdty~6y&Q0XbtqxJ#2#;`*6TZ{kxulIC1Y9Q$L2q~v!; zlJ?J@L_yXIVIl!zLJnl0b@v~!EeN_RipsG8Q6R&fsB161b6rIrMR6uZ-J}*l0QQ=j$KF>(YlWfpcy0qn z_)#ZTO1-0kz)wB2 z!^`m%aka}C{ZPFkX&*$wh^s)(M6aaWkZrbO&7jrxdh4P%v6^SNAmBc&9T-odr@{?Ex>+IR@@@=rbUbO3O zNAj`rZd@ta&KTa#w4PBpQBcWY+BYl*XGbx=XFw&JaJL3s-yMI6ZR3*eVvurxna~ZO?3)t6*Qi zxEh(k1b?mya&_Mce9QFak&OaFqA}$+P215Nx2-RFaY=c_SMF2f&_y?(-$gn%26VS< zx=yD6LpGE_psTOF%h$4HNiLQX0^`1G(EztSBX*m}4Cwd=26dkvA6q>zL{~=+Cw3-a zZEC0F5saVCLpj)=_Gk_-CBIAsP^LN09v(L&eWGjK=QeiRVcPLEZ(=(?R7jYdKceNPid%vr&#R z>1|{O4oVEI7KN}zrfXfzxolT|jY%QWCt;%!wG+1GpN-(L>7sg)06%aamPk4*7yrF@~5KUSENqy&?EHPA} za=qJt&rv(Q>rU3cN$!DpNQhWNhGsy$xv} zL*#~wqohlb< z8%>ZmiRNMttm33}o@(dnqR5MRc=VoKvpeYTb=~M}nCX{=KtR7N2B!#}60ekfEGki| z*EtEYFjZ1C6uaja6;3-suNzkrxKA`Da;#Nj80zLHsM9D?H z3><}(;_m=q@^7ohN&dDTVyDLsgdcA}D;&g*yY}l{SnhviO%i4{0}YrEH)n0Kt$zc{ z-D${P6dTKBIOt=oFo=B}JM=Agy~@?bB#B?7@`?Ouw9;i}W{NTFH*dMrL@}?m9Gd6i z<5&l^%f84;$Jv2NcRzusHQcz;oZa>)k*EBEt3O~ORm9_hGD+!*VY@L_w)2fAgBnaUag;1G;Og@HA!$4Q;)-#+pim%`8p80sGlsE_JS@WJnK&f`*DBFfj zs!$FLZTV`$kyqJf}-a`~x+tGX9Ku{T?&3RU+D6NQIi* z;9$?z;s;!BDIa4#)nXPjbMg`1VUN6Z;)`isbZ%?ioL->XlH|h6ayooAU}p3#iGsH& zC@WOPJV6xOcI9DWOKa{E7!;>w%mpb6uPMeFM`9zJ=R-mVdsaPhzGkPZXEsF#Psz4N zQLUg;cB03KB_o*G#*Yc0<>5v|DUMFvtX+e8Pcyx+5ODg#q&TGygRaIt?F)qG{jAQu z%G{#Z!X;}uC*LKxrLARV<YPlD^6j-I`5o)dhh;BcnMG+-p{RJN2~z1g zqy}Z$P%Z@N2-A+QFwLs=QB%>*;P4jQ>D&CsyL#=g+8gi?bfYa*DwO?bG(!>Xz}~(2 zsZ40Y0CJAM1ACrPe+U73{?rRV%UY`0ms*I1@?_h7@wMR7IaDjRPHj4$)!7(CsleaS zPsq_;XO*Oku2+m#5&#DWS!zumYHp411rYSlE!G$Tp`we;KLitRC_`da3;Ua}z0m`s zmW^lmKNo&h44*1wgLbsHQe`ad(^tjFGDLl7`*qq_d0DT;28}l;RNumvb0kbAC%ZYk z2ulnvqMlvU(IKy5p^T#(r4l*eYy4`Lep`E!(w92?~C)jF37s51J-y z%lqwf{bQ|LdcTb2=YO=R>UWBOxf6!NW!dDqG#fHTK0E$OqK{^Z4>({`EGAMOr0x|7 z<0vGx7}oabt0E@VG8-L#nSXzb2fuaJG$L~_&RKrIQyrumKIF-?Eh!4^Rf$7g*$64) zWZEThDIDqHL;k@me_SM7unRa@q&k)q?}Vn($sH)je%8Lu)2e)#eQ%48SYZeVl|P!G zR;WYK7P`#>_iJW6j_7f*l0g21}zFJN+3;f|D`C}?s#^#Zz4~R?{gfOt%j%v&0O7zqkmAq}~ zaw1=^wNgyl_zA$RF~zVHnE{7%K-Nv%4ZGw7pW6rXjzDbkuT0&s)Klz(%LaP=7NuzL zfNwN;5!xg@5@KxHMqhI*FSegc)}jKK`RiZoNp6=uQ(lWV6MGVG$rHc*xt_!0z@kq7 z%DDcon&r&#jkGyq;ok)}OygWUO)tt*FHiZrdq3jIU?$J2ov*Jcn<^$%^puqhotaLy zp+DZ&E-=YGj-<*X4CMuA6#k~2w<1qoMRUmWd4;%s?3;V9kYyW77X=wtPD4hMff1z1 zIMgZY&E{XIlKV$8X^SydYPi|DOB`$W1BXxXNVeqOvNcYd1;!B^6lZPi{sXz)iNY|M zKZ*hf{u$Onsvo<>Qo{{`pjKHu_Ls{H7u0>CFC4~Bqpqs=u3E_5vFX&zmjO>_`~!~f zFHeU^$){3nwtwOlG?!a%8sYFFP0o!TfIkGoN8r+rmR)!T|3&T zqT$|u9V(Fb@-lT>=x{76Yihuz*>Jz*Q~u%7m=vXC`nAG{ZBZ{$Krl7NbQ7G?oxE=wAW4e~3;O%O453GLtEvdT4T*;1kZCIr=P>)VloU1p`IH0@6wrnQU zsz9%&icw{IbupK)*sASq%Wr3S8cA9QACX^vY8uGnbc~AYLo&B-@sw5N@oiO)s!}q~ zg+1P$=22erN&R?~AfVRQm$%HJ_VvH<_TEuVeeKpL7W9V-SV5&(DAGGfM-h;YR4Jhd zp%>|dE+~TZ-iwsbLk}$h5v7IRLI>#(AV>%$K=?NLzUMn*oO|vVcZ_rH{zqbxy|dR^ zdp&JFa}F6&1OE5M%li{kUZS_=he&7OJy|?!7*Xi&FzOzvms8;K{`a467@ipG z?!H;UFgl4K*yj#^t0WXhYCwSg0E>^heLZ)@Ujwdq<^W#E z#INtsct+FLpowIFgZ107*E?6cuFu^wq=7ycS<1$k5L?mVSSleJVrrlRG zq``mCGv>Qxge27jU8P(>np2S2btE`=vlx28zO;J_zH=Ld1IerQ};6+OMH!QofeT$G@9}+@#5XcnX${V6FYRu~fMk9`{< z?0{FDS&;dGN4VsJbwb(ecl@-Mc-hmzpr_M*VSddoR-giO{Qlk8OBznA-fgxyeMVBP zk3lQqQwOeKKdhHxPw6C>(OzvB)3UycL7XPXbGhq0R|%hxw;oO%KiV7^f-`dU*F`Ge zUhP*;sh+vwCazdp#2xDi>Ge;<4{he&^oGfu&5lWw-g#G-KXGs%J$Y-ujyMk)SIvB? zwy;g!`WQi(iap4~jhhiOlV=+jD-w=t6MT%WR31NHT~(RIn|7rmd9DM5*!pFPqf(`+ zUAsj)WJ%&JsS=FKh!wdv=l-_|{po3Dr3~S;>XlB1rf5EqjnB=hCz3{QtTqPFo(#$= z*U<%=!%eul4{e>mqbkp~BQA}#}AOZ&X&hDE&cj zGEL8TtkxwDLOU+%FH^UIgrh8#8-+q|oz7WBeshbE{bqDyLSdfZWBjuWzOLet;ZY9E zH1PD=a>d4xy#1cGTMcVl+Y^2e!Q5dOysv zM8>;YS+7uLd``j9ioKu&aT`1_kmP<1YMDJ126S#+dL?hJf4yoT_S%@##pyw?Tvbn& z-)vR7frlf_!#l^>n_4}g#<$a8^u-_^y}B~(S#oinEDf~_4>vb z0mPM&i0;kx&kE9=W+6Qo zW9yW>rvS@hZ~E;s^?Yt^Y5WN=!CZW3%!nbUG-gRcSr@nQ%B^z5i(|`b>$xS$W%C~i zSEOCO&Mw3nHdjNrHUROx+cVLlK={$Ab3sAaKM{hw%+Gp9+wwN0+k!lOe98s|z(%~{ zYmkU_)Xlv-R{&5+ji5Sb?S10EG@B@eFw4%UjjnqDDx^+o9hw$GJ;SSq1(@~b0@xI; zBxPwlkW11wQK!c9RE-gPJ*{22Yr4ls80gddJTR&)v&FT*-=Cl^R)1K4Z1dLctoKt5 zG)?o}(VnKh@%zc7qU}(bu|fChh!On3OEr6j#^3I*rV0eCn&K8{!$HCxr9mCzTTO`@ zW)qlNBd{Yo)>Oy5MQ|$e%Bo&@KArU{B?G1g61jv!XWZF##KX-SM@F|S&zdRnA1ib` z>J>3MgY5{;co__r9wVz4hM1cekeCW@w2hA>_fe{X_vz#^tUR3p#@`6@4-`qdSpdV@ zXLjawzP8d^(Y8^OxVG^wMCE42M;l6LV^GpJs|PJDAkx!%#N&kbwD6x>Ag*Vx=5UH3 z%!UayrYXrB-Gt5G^S$DDe1_I!+^)AxqeP3KxXY0FBMVC5*DU(YMEi>SpsQ}DeQD|L zyAgW2x)MMo!}d;Pu}00rOP*nKzI(0i??*S%)7isI!c9ZEo{=g&RvPw_q*M1I1EmWM zrE*}Vv3AYG>rW2q>zn2ExQx3nLVL@^A~juzY(EG-;s8avZ`o84XB29! z@LKb=RdX(JiT4W@5*>KgIG)iJ&JqC!2qGZ>7I8Wbi?`MkE*~|KET0gJ+igvImq-J7 z|Jec4Mxp-lJ5uLUU0h6(dZjwR$%GPV}Mf+H3@-4C^p_)s)8sZl{rHui8R zw6Kmr`$^3~!Xm}TsvMIT`fT)l}8(JRGzmQ0H5X#Y*o|Zh1izP^wIZ^i5;EG$5`Ya5j zI4vMCwC}9wxvNvzhQjsy>_u!qGlukcHaGB;wMZa_J$@ra@=q3zb$@H}5T>fTNQH9^ zH;_cekGfv>Rk1p1Q}bl2>2pK4{iAvH4hiRQjZ8~qqPuy9)FW`_(-kkYokAk_YvB<; z_G8%MuLr|KI}lya_q3AE25Hiu5YO1Yen2Hm%x54PEw4qi78!QS# zM{xwHXT4;<%`u4a*Uoc8{tU@Kjg@l74!y$@taX? z0jaN9YlOrf$MHT0bvHlFbm(W8=Mz~Mlj-_q0O!uVDfg- zzHK7()?ZLI=~3Yw_V>+sQddFRh5GBYL|D#d+Q4zXA9r!O?nK>dv5vdPoe~^tYZ5)$ zoVbgxLHCQ5zSv#>&(GQ@t)_YGL~n~@YHM=KYUC7>Rzt)(zBB1%zBg)R$15ZoU4L1X zwMa<*NyODpAg*(an%~I^AO9j^7v-v_@R)r+=uG0BVptO)`rw=sk&*wffHsLT{_0L zgZnd?QpKiizlF-rD$NM2u#)0jzMt@5@QQrBJ)jR=^yPl>cOm#v@oPb{ciuu}4_xTB z!|SFk3bdi*@1)@_16p&teBGk_j@u$ai&p*BOGC95?-;0RyeTzTzol~T3^gI^=g-y| z{H-HeEG6m~hG?_Lai!>?$o=6|EeHkJ)1og=p_UPyKoo#c&4>)TAmT&;-hxK0+6n`- z4Nn$&Db)$>nA%sYvCJ^&0k%Jw~Y? zzcz((5SsrI@_cQd{&bdElzB9OjcjR+~cWd|v z7IC>~yDm%`j0-Rt=8F|u4nMpXJ?RO%o?lF!%<@|@rN8yNq+qYbh?~W%64tGKFx`?f z2{z&VcF(kxYPKzX5*x9;rF+4nZ6Bk0_-9)AtyNORKU+kl=oUK$Hgj%%WA=&k(6HP$ z(_f!T`?=9xn;PA()NG+K>ra!Zwgzo3wy@5U?(hB;AEgDDQMU=Fo;zXpYi%fpokr-Ge<5H-?bJF#$8aE;7pN@D+M0nWT;N5HZ<0T6M2 z6o62aja`seuq1}jIk03c(;obgIJB-Zej-}OAVEGgDND~|p`12NaNX8diRlk(us}>c zjVMkiz>Hj*88EhAnI^N^7?M}5|MF^=oOooGIhg?U#edf9FY&hg0#P(b6~do{UGK;t z3u$_rl!U)QMh#AMv;Tx{ihV`%v_oS`GgJ zUwM8FGm22FKu2?|ov}sQf8Foe*F{k3n06~PZ{J&uGb0G@YT*l(6*@Vfb>Y@enwan+ zllBsdOFwLIm}|2ck$4_2$*9eA;~&6@N_2PSD^rMD9WeAbtzHzxWigq&X2FXX<(6Ey zg46B7F|RH8?bQoB8d~X5a=b`+AGuthk|yd|mU?V%D9PO`xF~8B%DL>0G~Ec8n_G`a zGssUPjbUpM)Y&6Rwf^bjVfV!fw{p_?TZm^4qR zFp=4>W&=Yag$>vn3@liq`2F#<)*jo$q=n=k_Hhq3rlMUbpo{QPsgFqs6`Vx-zD8qj zdq4g$6Deq~i$H2Wk+V^C0xB%kQ9EhbhIY;Mz3l?3tztm>-h7~uu1myHgv?MJBV&9s z@cI!PQ#7$KwK^p6Yb)OJ!1R5HRMd238E46ar}x4_s48V@%R4EEo^(LKJY-60u&9IO&$s9pY8EJe}ox^BL| zIX04P$rWE#hGn`plT<75FknlX2d%rONrx`8>*1M9xk5$~z?i=ndm^*yt62BBL?=i} z;=^U!G;R^mx<+L z|Lk2o@BNuvC|^(lT3~51^;}k+v6r3QGYAqDHIz$`oygMvu9wD;$0PSY^SUh~|IM|= zmJG0o9YxyyyZ=;+r%vAe&R;G!*m;WS)4v3ve!2%}l%@WG%}Yz3OJbeZ)*vtcMJOlm zH)CMnz@er%%*Vs?=u&Q&hErUiB3~I%vhnSiE!e51_2dtaZW>pEQ~tWgNCI@!$HwTa z!#0cZM(%lgmOvQ``8tQN(Tjm8^w(efJ?AKpvq%GK((JyytZETEFHWihITi ztCwZi!tQ^fxUZsnIULOl!Lf^DYGDQ)#T=x%RUZacQP*?a<&@vYnu;0BQqgPzE9+&} za7Sma#_-a3@}uHM>~YKU;=f4qGt@BSyo%!1IWo$RSd0|wJ% z6=1>3BD7seDa;gN(qzLnh-dO9cjZ0%nL~)w?3z+yxgzNnY`L@)INN|D`w+@vEoLx7Mb{aD za^76sgLZ|#PM#o z^L`CCSnssvKGSE4lzA(?cFj?|ZSPWE7q~Ld_~ps^8GPD z`Q@2v^@Y`{9^uFe(RZHjG)Ny}oMD^H0>9?^bn2LTSBKb94O;y#hx*V+Gp#v~b##6c zo3o!xUVXOGRCmrI;cfmR+c;+AH!zoL488*wx|3;@v>S(mLuJ?&)74XTM8SNsF8tmz zADP)!WtWY?=8m5g?*ma<>OHXYlipo6fX#S$p@2eGF*mS%Df){sfcz^_b4}4ZyZdBn zVgsIcYN+pi)Z5=ugLC_JUv?if>9#Ip&^=ySQ|4-;C+l;ZH-Fx&Y=W0{Ol;$40e=P9 zgg+Z#Z{+dP@WA@%DYb2J#U=UVH#SCpifVLbPu+^ZV6&9;I0q6t?;Z&DQ&I01kw8w< z39me~T?fOj1yc%6GE@TmrEo3Pu*ifVA1==FjZHh#Y*Ts8^%cwxui|t0AsBAII^Tn@ zN;g=B4l!^9GzpHc6P_fO)L!3sXZZ{+YEsynNOt2()%(&nj8zq_7L=ZU@fxOgPaUz`kLE|@FE+-P=@pG@RS19I%`08&aUZ6q9lhBVaJ*V+57oD3Plo$~w0cBg zy@l$cW$M|y&8CUe5wZZ6DP}5GHq|UwEk+Pm=M`{wZqYpTNYo`fHS4K08q!pT%8Nfe z_Oa_Kb*ZTV5UnPwYgs0$3ZtyAXtb|(M6M6D+~ZYQW!qo<2l{Y~GCZd7YKKL;xq`>j z7V*q&kJ*}ENN8Ll{w^{i-X7FKQKxzBs;sqFgz`AB?0)*f(q3efM;i*Zw{_)%DsgUm z_w%LB2Y!q_1g2tBtT#y}*yi0E6VDmC3e3KjI*?2e#o0{3=^P%bD-P;dd%k3Ln?fuy z9k^V+K2#A5zL-X~6;R29OS4*6dWwwXRuxQXVTAUFc7@)^cL3dO$|!SC3XYVSTo7Hc zChR;CH~t*;2I|7NCF+=Ox<0ZDEbalv^Yj(d4I{uwgl@$c+cgPCttV9Jl}ESnnPK$1 zf89HExm-pn1|N>Pwf^dJBDAJL&pIzk*K4A117z)G*!$IcZS&hT_t(?z@J3GfM>idc zI$eRucvcam$Ku8XQEw9eUXGV;ru}l=iYS{Zpzdu5+#ErDj?{&Do-gBTsS=}szO62` z4Rw6JZYS?CKPd*oc|{C19JTPB*ZQkEcelMJ0WJeHkLes+Ld2nMVP7~RDLN0UU=$Bd zfr8GxrVLJpF#WN~;w|Z?z_*566Wz@SS3AuVkt0rH1zM-i3xG{!0?=waa_MmOs9zdo)7JfR9U-^X?5GaE#7CnswwIdo^#CA)@Ubo>h1c~EMXi1 zbkBY3ik>);z$0kptQ6!J^_KHc75Ep0=3R*d91tHxgETT{eR1~?^}2Mfn@KA z1U5A1OualR?)?)q_vq)hj*?HgH`tGAP_47yF0dTu~WKct_GPMQR*G7=}5+4AY*4E1aeEz^Q z1s7SW)g-rV*+1ADOFLFka%qony4!Sp_UTcHED8N(N|lA*!|^T}?!)3j1MJ<+f%MgA zh#R1{IMoF;SKR7Zc2XP#_FQXcnjQcQ4%P#|(@BcWdJ5!`i$xN_%{t<`R0(RAE4JES zQTNFz%_%zD=$V^4YkaaBj1{9>Q*hE?_T0YxzBAu#k-Q}75=nqx+^`Ak94rlW*iesS zd-3Z=E?v^{kriHv#GtrBEvdPz)B3FTttgm&h&DAPS^>YhEG=Mp3AwQJs*JI(<^ryk zx+J2BZQRJ9;&9*N7rdHxw8}SUt2dCz6u>{fn>uU2;z^BSz?Kx?oRw-C$fwM9U>y*eZ0 z->8Rn&u7gKJ$0+6)+3T&X+QZmZx z9r^h%jw!*E4O1{KI$V$ycxU8-f#W#TP|dZSJ;YZy#7qfHBMy;>0<_UFRSRJ&uC)V2q_xWa z$5Q2cgFdy_H&;$jI+($1f@hU!ibzolJIL}GK$mc)%ySTIFl#2a%M8PPtO>Rp>(Sit zQb*T+xfh`7lJAHruygy_Z4F$tI}iP+k5nGM#AQEf!!!itGVG=ZfPAAS2P^i+nvy$Wx?IcMX(!qqQi5+6`L_pUiUH_`6%moq?OLd?L zV;5FujFEHs4zAxwftthHE^{y51qX@h;$t@yz9m*ky{ULiXb9(o(8PFsXu9sId^f(? z2B0k$dh;%0f}Xp6nCU%pMa_#$-$Qetn*V+c3#l93cYZM#nFVaCEgG%U^bJCmmFWkU z5yV&G3b_RvelT1>GHl?2YYb3ihwR*b2Eirxq!foXYc$cDDo&hSJGMc--`MvjvgJZ& z4D0s>i%yAYu$2b!S&LD}w9K-8dMF$)AHELiuqjS-q4KL)Pqi!>x1aWtjfD*>8Yh0~ zU9T^WzcU*BvAEKzblCCDo`sdhc_ZFh8T~bjv4Y93QcBSwP)@4O&k5J40hcD(n7rWd ze+%TU$1TIF=Ey;JV4Nla0ILai)`L+onH1rzunT~l=(cuDOvRKw+6Ovk9;(_Z6y=2%6~S}?e= ztn|z@di$3K%jL&r9d-pzKB>mAj{RoAeV#Z=u=2_Rl)I&Gm{$1w*O2*SCM1;)+duWJrCr z^_1QOUd^tyTTi=9^R1q3RIz>p#%ZR6XNxcrJ+CmYSYA*T1)>fzDF6QIcop!7ml{%KM2JJ%?Na%b7Nx4J*EAMoP#Ed(Hu zlX@TQ*@1H7xKP?Udk?JX_aomsl-p-j9G#_i5k1nWz7Bzrfu+ic7)<`>@u2!qKKizi z)wlOoopmH2Tpb&mm2_fxQZ*b-{;+hTTSzwydqHl>@BiG{boAD3avvmYT^Ml%(d1cByjR9n}+J@J)^W!4ydXPi+qU1E*|s;!t?*4Zsu0(PzHu|7;zfVD=;_NecC9hkcw7=V_?pyn@A-G~S zNt?n&d+hsFJHQ5W^4Ch*vbj_OolUjbpUjd^X%`J0WU(12r^feoKu;8*#4bIGSn1;c z`XXCPIo7W*p@JKiE`N4>&8xH*^W>_2qok-kO?lb~TK)@8a+V5euvXk`%P%a>TNK;q zCPJ-BdSUPG>4=ja*jne3N6FoD=ki?O&$20Q&t;P5Z!=RX!c?}e#PGG#i=@PaQAw9L znc$B0oRrpI$ajfroE5($xx>2s_mj^2y$|ltbhxp2p2%zP@+ppKF?QS1bcJ6e@-E$? z>~f&6x1ns}zZzSXa&KSy#+A2_3KG`dizS8B?B9ZFsnQatd9yEp=`9#{qbs9cQHa(n zkdAlJE@(3Z&d^%D`|N&F(m|!$u#I9b ztaghrQYwQlDkcf%QUMVu7PA&(YLuk4_ccfm3wyH2FY24idET=%6rRp*vqzO!>2p`l z@aT0s)@<{@?fQ%+f=pd#JB{la{Zs*hd*>ekwKOr`+AYon%0%&~h(W zdv~Qze*22tr;gz8&V~ot2@#m!5ykn*0iU7I$o|HZMSQER_CJz2i{OppyOS2Nzu%-m zp){~1h{ra6ZTLjf;9~y~1}?g4^i$v{V{!$(Oc2@W_%b1ItsqIbSthG(4IZdqGG-eS z9OGKlGPdE_b`*o4^|SQNN=KoNli;}pZkVYmfsxO;*yL{f5&P<^vWFYpE2LieDK0js z{S@`d0x_(+KL#82fZ^T%*G${-yYW-26QAP-x+EF3YB#fkj(-X?)9h>5gn#kfAs~>L zcyt0U;xrG;^{m*rJd6YuBYGm+zccNjvrwJ zPyD)C#qQRA2{*b4X)`wVctlZ3`6#znSk^x(9zlFr6k*uF>|);(EpW|3++ z3u=0z>)aseX}mCOi>vz8q9&oULIoCu?cS~K)d$z$J<0DK77~JcT4Ibn*vrL|kdgXj zeL!QUo4vNJmRykWA+Pc>Sc`43(ICoSa4H zh!$U@1PE>fwC%6?HcxoGnVTnp8LZ`mhK2%y+3r$DOL2zuKp<4vUjR9& z!_H|znj#V!Kndg?tJ-9x{QX@pHdmD*%p@#+#RF4f--9g{wM0J`6eE;z5W52r#M%iJCs6jNn15)NgRhKz?N ziC@C;dpYOEbk~LNIg9I)Vc1)w+}m4OyyY=cWRo1JZD}# zL>nj2BZQnokaGkr^kR4U29rpGm)F7tub+MwfT@rk3 z)o^Po!P_EBi>ZD39)rDAG-J#>cSlUB;Ba?`)s-uhJ zNfugVfO|0`zRexO%u3xQDfQiP=DKl!oSMA8fh?VGJ@2StZmI-BqkBFl!`7~E=6=bI zuM!xupfkx2-{X~gt$jbMVQHrw6`(!r_qS~IzTa*h}1PPKa|Ch>ivu-3L4 zy}*Zj>LtkPz;(rgz#`Rd(_^=(q_B@!bFX}9GtMd&F^y30(d%TaFQ~=ARO+7N#k+GW zD!(mIeb22P0?_ERUQTjspY6WA=W&JS%ypq2&xBV&t+-zi-rWjIkzNlQZ}XI~8F@{= zKG7QS9!kftHrVK|P1eTJr4vAoVn$3}9b#R-W0S(tlA6-taJ)+YH7ko^yVv}V5_f1* z9x)Espr1ZjchH9-<`q_7NLdZP$P^*I$K;MGh}a<=s+EO)Tp%C``=pA8Yed?%$zN5f7l6s&zdaO<#npEceP9Pr>2 z3+Bqpv8s_b&G0#ydnT$nw~0pDsV)v|h0QVb4+x^SGMkN1onNP zNJEpgZ9nFe#)x`Jy-uP!Q{?lR)n2r7 zxZ`Zax2RS$5*X$6aifoPaj%YF{hC8Wv#B_<~C$2N+jAg-o=<=nxKfISoFR_AXhnnv3BU3If?n(+b7g#DNFr zBL>bvO$NVZ;IIz^N0f9dua_>s^E1QZqn3{R{CC|Ckz0u|pD)(+sC3!4bWQJDHv4%! zwdhIr%F0T?AHO7}k)~FeNd);TS{kUHcI>@#4e(44c6wMe0aI2yd2~imPDw!VtsEkX zDjZqLUB^_qj(+bnq$UbVNVs=5RlUG3hKaum6kzh|!|zQ20&=hD$Y-WiyvmcaLMFVi zH3C^uP4~28rk``7FJ*}!3p2yg(ahH46_i3Msp)O)i+DD*m@djr6f6Fn(d=0bUVkpW zoBUiM1ktsBH3sZ!uZJQM33YtxY3(aknPZ}GsqjlKeUkAK+6_7X0ORL>5!`c zm>6}5x#te5Ak?JFPW;=(-9gE@gAHKit_^GIZ%8(?v$O9P_1QT(q6P+{LERR=9EmzG zhFuiR9V)gfkadEV7I68&43kAvDJ*pGlA>0*g~Q&>*=xj%%R=xF45(w z{a3Kq=lJVCPq>UKar?RQQJelV{Li01LmT_5aGfn1k6Tuuo*E5xFYlVt@L$dLM1%^R zyx3k}5}#ciSX)YOvch`m&KXiE3@32kJ3rxL`(Ito6s**#nVbm-kYP>Fh37T(W*Fun z&Mz((U%la?pwwR>nZG$`yyK-zV!ZpF4)P!*$8etKaq^}2Yo1azW&U?UxFOV#b@@r_ zCGev!&L7%7{-uGX{a1GxMOEu`#lauGzxm5|dNL088B$5l1F!%ZEgp}T#CeR`r0k#9 z*MZl{SN=*ZePca!ey2_h1)aY`QvYG%PZ{ppi@)?(^N;?L1HM;p@!4xWSdSCmMjbFHErv#5y33Ro0!Y`z)SvWPOWYp~MHBpB7R_I|1CpL3{I`Pp5G zxSEt3br&q*PQwW^lcPYR?oLAM{BP(D_Zp?q)L|u3{VfGnedS6PYgYT`Lba?bScQ%M zX%Rm1bGM({?FYqYeOofY`aV{M~j#eHl{dBFKCLE{gy;oCM5q1ZApe2P? zWZ80mr-1R19EplH5wZ<;ydWFyi$aPU4Gjt3T$<{@-QKoxUr%p1xNN}fdP>v`(<2+c z74}FW3q9nvK@TQApI)X&^=M@%3r8tR7<)%0h#XU8oh~FBrC&#S$gH5D20py3wO^*K z@EJKk!Q&p%ZkHA7t#8L&+3r%qr>mLNO|@z{2TNidGQd2W0Z5g;gk!KbYALNZ?rW~% z`(*o7G9>*s`lpZPQ(i}3fes0>q4;S&_-aLs$K5KoJ+@eip*CB3Kh2px>9=oY=e8{j zELYHQF=xvIa#5kV1VMa3CNmut3!7H0XahzH6pNpXwwcp3D%Zc3Z%{}Sb@P@@=uYKm zd4PQFIE#R3s3c4b5EyE?aNxOH710jd;tmYlQh? zLkt^Mbzd)T0~Ju&q&jFV=s4dzFy#dQ65@#eiS$RK1lG&kp3Xp*;AJ74s&)T3v_bny zaA+T69c=P@1^rQj9P9av11p|#<(WuHw6gAgS(>xxHnb6WO5(kZo{h+?i#Qfc@Yn7u zok=1;PVXHBkZQINqg8NG|r-(AO+`LVYs% z5gDeH>YrPE{qlT>fCo(+0$mc#)s0VnNazV?bBsxoY}Rgg^Tt?=pP$bmt4lX3>A<(q z$fBWXy37?9l%$9a=Ya@c3=|RBl;Yqh)hTu` zm`H|2M3o>OpeM`NTiF)B042=O)80o@wU3XQEp5q_SPcE?8k{)^bZ{>jwpx*f#5QVK zct7eXa6>=SdYu=WyHg_&Vthh(R6q$wLw++(%BCCe1~J1DLv`w0l?KSyoPCJV?4#JW zuk$mfN;+N2gjow?(QXl6kIF8$Z>}=K#zy@UEI!4C8&3Dg+AV4l3?TjWYH$?l&}Fb6 zwdytD&@zN<(0d^Arqpsy zCBrkvIPZL=c_ieR+2X8f;cE6;=DTOY{7{d`@4kK0*}00l)|u;*(c;+rBfsuMwS?EF zg46m?;3-O&57ucoB_hOkZ|v&Sn>gS=!|cKXpMJDFU9`-(B~sw5U&DGdKZ>P@id4*p zHou>%f7#yg%S1nDgs^(qFARGwg9Y^ zP_XJcJTTeheSGuI^Xe8o^Clt2$%7triE9oXjU40CjCZk17_Ra&qK8~LV$|nh8#)3C_A!zRZ?H`X;oS4(rIZNnXfAovBU+ieg$#?~^@!L`c`(G2^`z2t%N}OSYJ13S?7Y<&Hre^=3U=UMY4hRe7caS0ytQ#Meg( z`*ToZ8IN`ykLLm_H?&Wng)GeVjKySLSP;=Dt~LEe z>%~~+=5Q@~v%p^xT|?3|4bJ@t%ksdKcg|ELV#kT{Ms{3Liw;Z^`(hGuQ+&U!4hba} zW_b+TY}DD*Y&R!C{57>Vy-k1{8Wz=hNoPpYm~oIZ3AhE&+EVzlFuL0AZ~p0LUYZHryJqp|PMTQM#!=?AWIHsK_GQ@2aP>@4pvTvV49;v5xlH~`!*@un z_K~$F3{lL87wATeJff(icz1s8MNM4vX8%anRm0h*{3+JQo=D}mS>DDNhpk=3QuS;a znj6A*(yl}xu0gl1BntVvLgpHaau-#zr=||tIlRgcMkTLym|F|i=#fT^j2ON?A~Slu z_Obh%7{chMt*$@$?of7hz_Yo2lvsZ@|IaiMrfkV$bqU-R`V|Uwtn$Yy2rjUQ2ck0j z)OnfQ_rOo@SH=G0Kj2kyT`&D|5KQHhuCMjnTYPi0B5ue@4SCt?Dp^pd1HjMTyH(-w~xp>vZKGl5-gvxxD4sS{*p4bwE zOl@DBwe#2)$^M2AEAG1Z&~bo}quk;81_x=G8iN^pxt53U6LEe4;vUjn;a`i{-6r=t zz(Tjr@O&y>^2;d>@C1Ry%~t$&IQ6iu{=?yH5ly{r6RCYp39PDb>{zT_$IR9iiz)lr zfn)L`Q3SV9V`*20m__!RsxggErz%gfY-K#>#F~umz46$+Q3V81mV_O6WA@ZVhWmLC zp8ZCHPyQ`=lBgj`4^5IrwdLa-*KW4#hPoVQAFzNs31Q>s{QY3ohBAXNssgiFjJ>zl z8xM9e%I!!~EYH~OaQU~$!u2_KfgQKJa2UM+*<$&mhijlWAWEY zjR$64gN=ki#OQTSJRdIHls2qFB$N7!C zjOmEpgJnwX$$Eoub#5^Z7PR)7l7HB~9BQQV$>F3yy~3&fK$yeHh*HtV{&gjm6{efA z-*D;p6wZU6J8P5p0#lhG*MY-dkQee_E-Xcncu>R3ev3b!mzDkdCdJ=;Kgrcwf4Hjyg8o9$ z{)=n+FQ(Mz|58Kv4|n)~=<5?E4&%o_MH}#X1IboYeU2%6&w0*BzLB#fi*fny;90hw z{CQ2vmVBIgGl- zEQ;FL$23d!7OjMrRwRQImwY5`Wq+Q`>@%+2E2--Ojz7BCjo6Y}# zYFmFuZ@-a2)0W5P&^`YeGxwh9#DB*q%+i1AL;s)VcYdIWJ?YAorOk^{x}R3IjUGmS zsJ?zus7DFJNhIG$J-E99itU8UU%z=EwRa+Z8)B%@@U)Cm?|I2s{=zo2j8udsjk;d$ zF8Mj59aoX|k{lsbgd!rgrySear@G^$#Jp9K@!R3P;gd6wCtTcG%gW%M%WlU>kxOX~ z=j-X)gK9o8_A0Hup`nX;yc|h$8VP50TqS3vWp0ou;&ok>Zq9on+P!W|rJG7m>5ia( zsL0=U9vNug8{$+*nVKfyOBF!Jq-t5Mc+j8!2Gx}K5*$-ZzHaP{Hf2->S@?%989m>c zTbv9d=%i#x^ll1CV2++Ne_~FS>NzvJr+td%6m^%_4QgXvJ}D(syB1U?wEV>96uG05 zb&i-(t6wjipEdG9^GRb*l8pwWQst+-ZoHPP;tG1pGsP_>=}Y)T_edVBcQi5o;drNx z+k_Uv1~vK(F1$pCU)ntKku&;5lG2S!*6P!`v{-1A=m9jnn$O*~+)ebFBOu~O&Z@PW zW;u6*P;y!5q6Y&jUbjkS1fkl^UAvGFo>oI+<19VkY2dn_h$=6+rh)2GhnxTU`DMhS zWOoegKN6>p1xvhbhi|B43WLfLFAYuyf0?vc#lz>`JWh8zh%8>~zgC%kT`O9O%4&Te zN_zQln>>L<5mz;PGXxl0gJ12YICyE=Le{+3tr#$!F$?BNNFo4XH5BmCQ$`j{m_IYn z){C@Nq471+p0wSK3>`thbOaq=G_ZRlD(?C~l=}*IwjyVC#t2hS@>jtl2Cvk@Qd%qM z>(}?RvB|6@HZGkNsxGvWmgdTq!LQI^(HxjVQ9Ww%^R4H7yl`l1EMjOu$lW*n3y|g0 z^?{b;OF78ZeM_*&6W=6-IHnow8)#_P!p4E1yV{lA=a5;Y2_u{S_ayY^p>+DPO0Y%= zV!Xyc!#7=V?Tuq8uLsaJRNv&0xN$Do)>ALyauvzQ4}K|<%>$=eN=Vk3grmdm>y7<( ztKt$rkIJ9hIr7EpKJ-Uf*K_cD4JoyhoAdAcI+k-Mb0y-lRjxw3oZ~mdH2BNhW{2NT z6t0PIKV+$^?5TfEOW}^tw>C05=qO=A8eInKb)dT%t^UYY4WD$W+kD+tAevtUTc^`* z!whYbiQaF!i*>XOj1udDUZfS-6+Nn~LhG--x%Wb%%-5G@D{)ZFF0=5H#f@qG=<4Om zU(@MySKV6hF%0QB!}|ReY`7}=lNX0S&|%phF+Wz)II=!JKmYmleX7B?c_B*f#noS( zSivz#K?%=my&&zEgNAO_Kwf0JxA#Po2>3R=kd=87FpC}DSR~8h;-Wj5Y%LtlT%ej!rPLKIOmP+1aJyoKQ~z$bKz;^T#sOjf z12(6EaC{85wCv#e8d3%2{=1h#lZMe(T-s(CNJuCuSu#Ce!t3g`Zhu)@jFL(Oa!r%@ zOPw@7FQeJgw8Aj#<2bz6`B}jEoFa1IjRM%}te&Nl7ox6Sde8HDww1)bTDg zakw+kVH!YAAezRJEF$oTYh2(FKzCgTP0ZPY>pjK2tJuZ*RkVsbDns z??<<`z7TQSh^G~C{vnx00m)51-|M3gw^+(OiwwCiCfh$}{Er-!cC(1#e-loPtoQ)z!6AD{v-MHzii?E?OzbiwbAiXqc)@BgGF0g_Q$~N05~2y zE2~ao5~#tjPYSRAz~P!iv9k8pSNZ?RM~Nn1kwZwGUz>y_*<|~Nl$hBc?GF+M0Ovy{ zf{*xbe30cIyyr5lz){EZm-qg^cu5;cQN$O1#3Ili1O5D~@zPVszY>b7yfYla{yzO2 z=O-YU9uVf`tt>e!(kWR1raho-gMneIv!z@zzV-|!2HBh9-mHEWxVwh!IygH_J|WHr z_%dg7L@}TMzsHAov%FGV~N@!Bh-mGU!;q!oFWU)`kcd8q$}lTShXeZvqhPsu9oA1qD!K5oxVG*SDkm46abQ}Sfbyq+?%y; zC%@W0@6NYgf&f|o8Q0cadE`}rJf%8u11lMGMvzzQ@;}m*x$I1uJB({$lRn%2;WWIP znh4vJI^7%I9nn;~)p;*mRgEqi^VtF7M&1DE21yse&Wsy&wq7)Sd@|HJJsC7Nk-zkx zJtGrUkFRcj+=u|#FvCi^()xW`Z7w%W2@w`2X_&gTj5aKpT?59(CeVM>{E4wwH>|XCq{P3 zbITKuGXd<=#V?JGQWG}%A~#1EFnnk3A`n?)QqN_kn2C)@gd1dBGIZ8Sm#fH?z9gM2 z9~Y@*xn-bk^(PnnDTnRQ>|Rl?j&?pVQF+o*qRsh;6Es+^0OpvyhL*niku8?Jw;Wa0 z9+AzmCJp0Is$A#bgJ3ux6S@9g|Kfzcr);9RPBG_`iY^0fd?XVj-x`-r{*MxFSM=5k zHO1JzXMaEWeLQxr{PD~}WtkJ=oZicp6go4bp z<;7awqV&NTu}f3c+-c|zwj91_UwhDstbN_Y53#j>&K)o5H+E&Hsg3@W%F-=sC5@sr zs;s03j>`c**2N+00v}YW6ZP)>XrZ@?$Uv~+*j9`itEod~kiXnoK#pqw18-f=ZXyR_ zEdo7#j4*9DsUlS5>n4M$um7Fwl`VW}?TTIztY3*0HhLw}cJpD8C2Pd9-q#I}C212Y z`8WEfFhXlh>>hiYP;TLMKU;$vmi?b6UFEZMP2Z`^k_lhRHTyG{vb^HVjoTn4b=%n; zf|+7o?(7a20=P`bwi(QTn4KsK`6P1g8m;Y`P0D(~bvu-!n9?#bdr*AOTy$S>DeT+~ zWb+`lU8-CQ@ck6yREa~%BJfY(!(9VtRg2cj=K^m{44K_SJI+q_;}e4qgzEkF;Vp?| zPk#SDmnU5~+mvpQtxlCPSVnQO9n8AlKB1?h_^~t!VI5`LeFwGjRvL>FsQg5p1ZEZp zhP`M)$B6w|!!J|f4cw;ZcpBksn`x@prpa7L z`JJ=1@}9Wx`cYg;A!77>^*qdw59M7hJgcN$9{0I1@XuXXxyt%m$`@O*@lnw>X)y@n zbNW@1b4EqC>Czt87?N= ztT(pn@UR~A@=aM;Syz!}!KMb5Jqh*S`5rVq5uW~k_F~m@m%zU-K=u69`_OAEs-40u zzw-cj4dAGkCUr56d+`o<=7BdAThgC1|8PG4d!EVy5R3LkaU6QvH;pIznGtKq3NHFx%a^Z=JuW@l%Ay5z0jIq&z9{EUo@?=P3np9XC8 zNy^DhYi(uyZ3a^1u>EK9LlfJRo~xhA|9QX;?6m{ip?l`5UD&*^=HpTEXP$q-qZ|vi z|9RnVZ)7+dcyqyr!~A;_-T`Cn)9Ltsm-aja-e{x9C<`*|i-7EjzfaWd4gbHskqd14 zzD~=W7YG{OQ1_o_^8dBo^v#<$_bdc8Od6OM9Y3L~t9vzl!xh~ketA2S|K=>kx5D@T z3axxLGkwYa`zE(emhby4D=8~$dhjmr=H(UNXM=Xo0B_E`m!fkG>S!8UO#+^|Z*>)|H>0tb121X<}fI5cOhS%_mRe)2R_Z{xVcar;0J~E#FZk z({S&q&bMD*F8lj-&v_RmDI$I5=e{pX^-qTH`y~3g;!&silM@q_mmTfvQVgh>Qp`{w ze^BOuSZrD;_ndi`fmc1-i~pVdV3(?&zI*4N`tQ5=yO-?zAq8@or>mdKI;Vst06861 AhyVZp diff --git a/docs/source/user_guide/installation/images-windows-source/pic4-save-env-var.png b/docs/source/user_guide/installation/images-windows-source/pic4-save-env-var.png deleted file mode 100644 index 2378cfcbf5031442037c8f52cfe9d25538d4021e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 178936 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 z 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�SE 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 Ci6W~2 diff --git a/docs/source/user_guide/installation/index.rst b/docs/source/user_guide/installation/index.rst index d4db9f3a49..d6411348c5 100644 --- a/docs/source/user_guide/installation/index.rst +++ b/docs/source/user_guide/installation/index.rst @@ -227,7 +227,6 @@ Installing a specific version? Installing from source? Check the advanced instal gnu-linux-mac windows - install-source-windows windows-wsl install-from-source install-from-docker diff --git a/docs/source/user_guide/installation/install-from-source.rst b/docs/source/user_guide/installation/install-from-source.rst index 6804b2fb87..55c5ca5a2d 100644 --- a/docs/source/user_guide/installation/install-from-source.rst +++ b/docs/source/user_guide/installation/install-from-source.rst @@ -1,5 +1,5 @@ -Install from source (GNU Linux and macOS) -========================================= +Install from source +=================== .. contents:: @@ -12,164 +12,288 @@ Here is a gentle introduction/refresher: `Python Virtual Environments: A Primer Prerequisites --------------- -The following instructions are valid for both GNU/Linux distributions and MacOS. -If you are running Windows, consider using the `Windows Subsystem for Linux (WSL) `_. +.. tab:: Ubuntu/Debian -To obtain the PyBaMM source code, clone the GitHub repository + To install PyBaMM, you will need: -.. code:: bash + - Python 3 (PyBaMM supports versions 3.9, 3.10, 3.11, and 3.12) + - The Python headers file for your current Python version. + - A BLAS library (for instance `openblas `_). + - A C compiler (ex: ``gcc``). + - A Fortran compiler (ex: ``gfortran``). + - ``graphviz`` (optional), if you wish to build the documentation locally. + - ``pandoc`` (optional) to convert the example Jupyter notebooks when building the documentation. + - ``texlive-latex-extra`` (optional) to convert model equations in latex. + - ``dvipng`` (optional) to convert a DVI file to a PNG image. - git clone https://github.com/pybamm-team/PyBaMM.git + You can install the above with -or download the source archive on the repository's homepage. + .. code:: bash -To install PyBaMM, you will need: + sudo apt install python3.X python3.X-dev libopenblas-dev gcc gfortran graphviz cmake pandoc texlive-latex-extra dvipng -- Python 3 (PyBaMM supports versions 3.9, 3.10, 3.11, and 3.12) -- The Python headers file for your current Python version. -- A BLAS library (for instance `openblas `_). -- A C compiler (ex: ``gcc``). -- A Fortran compiler (ex: ``gfortran``). -- ``graphviz`` (optional), if you wish to build the documentation locally. -- ``pandoc`` (optional) to convert the example Jupyter notebooks when building the documentation. -- ``texlive-latex-extra`` (optional) to convert model equations in latex. -- ``dvipng`` (optional) to convert a DVI file to a PNG image. + Where ``X`` is the version sub-number. -You can install the above with + .. note:: -.. tab:: Ubuntu/Debian + If you are using some other linux distribution you can install the equivalent packages for ``python3, cmake, gcc, gfortran, openblas, pandoc, texlive-latex-extra, dvipng``. + + Finally, we recommend using `Nox `_. + You can install it to your local user account (make sure you are not within a virtual environment) with .. code:: bash - sudo apt install python3.X python3.X-dev libopenblas-dev gcc gfortran graphviz cmake pandoc texlive-latex-extra dvipng + python3.X -m pip install --user nox - Where ``X`` is the version sub-number. + Note that running ``nox`` will create new virtual environments for you to use, so you do not need to create one yourself. + + Depending on your operating system, you may or may not have ``pip`` installed along Python. + If ``pip`` is not found, you probably want to install the ``python3-pip`` package. .. tab:: MacOS + To install PyBaMM, you will need: + + - Python 3 (PyBaMM supports versions 3.9, 3.10, 3.11, and 3.12) + - The Python headers file for your current Python version. + - A BLAS library (for instance `openblas `_). + - A C compiler (ex: ``gcc``). + - A Fortran compiler (ex: ``gfortran``). + - ``graphviz`` (optional), if you wish to build the documentation locally. + - ``pandoc`` (optional) to convert the example Jupyter notebooks when building the documentation. + - ``texlive-latex-extra`` (optional) to convert model equations in latex. + - ``dvipng`` (optional) to convert a DVI file to a PNG image. + + You can install the above with + .. code:: bash brew install python openblas gcc gfortran graphviz libomp cmake pandoc -.. note:: + Finally, we recommend using `Nox `_. + You can install it to your local user account (make sure you are not within a virtual environment) with - If you are using some other linux distribution you can install the equivalent packages for ``python3, cmake, gcc, gfortran, openblas, pandoc, texlive-latex-extra, dvipng``. + .. code:: bash - On Windows, you can install ``graphviz`` using the `Chocolatey `_ package manager, or follow the instructions on the `graphviz website `_. + python3.X -m pip install --user nox -In addition to the packages above, you will need `TOML Kit `_, a ``toml`` table parser. The tool is necessary to install build-time dependencies in "editable mode" without build isolation. + Note that running ``nox`` will create new virtual environments for you to use, so you do not need to create one yourself. -To install ``tomlkit`` to your local user account (ensure you are not within a virtual environment), use the following command: + Depending on your operating system, you may or may not have ``pip`` installed along Python. + If ``pip`` is not found, you probably want to install the ``python3-pip`` package. -.. code:: bash +.. tab:: Windows - python3.X -m pip install --user tomlkit + To use PyBaMM, you must have Python 3.9, 3.10, 3.11, or 3.12 installed. -Finally, we recommend using `Nox `_. -You can install it to your local user account (make sure you are not within a virtual environment) with + To install Python 3.X, download the installation files from `Python’s + website `_. Make sure to + tick the box on ``Add Python 3.X to PATH``. For more detailed + instructions please see the `official Python on Windows + guide `__. -.. code:: bash + (Optional) If you wish to build the documentation locally, you can install ``graphviz`` using the `Chocolatey `_ package manager, + + .. code:: bash + + choco install graphviz - python3.X -m pip install --user nox + or follow the instructions on the `graphviz website `_. -Note that running ``nox`` will create new virtual environments for you to use, so you do not need to create one yourself. + Finally, we recommend using `Nox `_. + You can install it to your local user account (make sure you are not within a virtual environment) with -Depending on your operating system, you may or may not have ``pip`` installed along Python. -If ``pip`` is not found, you probably want to install the ``python3-pip`` package. + .. code:: bash + + python -m pip install --user nox + + Note that running ``nox`` will create new virtual environments for you to use, so you do not need to create one yourself. + + After installing, you must add the following location to your ``Path`` environment variable to run ``nox`` in a terminal, like Command Prompt. + + .. code:: + + C:\Users\\AppData\Roaming\Python\Python3\Scripts + + Make sure to replace ```` with your user name and ``X`` with your Python subversion. + +.. _install-build-time: Installing the build-time requirements -------------------------------------- -PyBaMM comes with a DAE solver based on the IDA solver provided by the SUNDIALS library. -To use this solver, you must make sure that you have the necessary SUNDIALS components -installed on your system. +.. tab:: GNU/Linux and MacOS -.. code:: bash + PyBaMM comes with a DAE solver based on the IDA solver provided by the SUNDIALS library. + To use this solver, you must make sure that you have the necessary SUNDIALS components + installed on your system. + + .. code:: bash - # in the PyBaMM/ directory - nox -s pybamm-requires + # in the project root directory + nox -s pybamm-requires -This will download, compile and install the SuiteSparse and SUNDIALS libraries. -Both libraries are installed in ``PyBaMM/sundials_KLU_libs``. + This will download, compile and install the SuiteSparse and SUNDIALS libraries. + Both libraries are installed in ``PyBaMM/sundials_KLU_libs``. + + For users requiring more control over the installation process, the ``pybamm-requires`` session supports additional command-line arguments: + + - ``--install-dir``: Specify a custom installation directory for SUNDIALS and SuiteSparse. + + Example: + + .. code:: bash + + nox -s pybamm-requires -- --install-dir [custom_directory_path] + + After running this command, you need to export the environment variable ``INSTALL_DIR`` with the custom installation directory to link the libraries with the solver: + + .. code:: bash + + export INSTALL_DIR=[custom_directory_path] -For users requiring more control over the installation process, the ``pybamm-requires`` session supports additional command-line arguments: + - ``--force``: Force the installation of SUNDIALS and SuiteSparse, even if they are already found in the specified directory. -- ``--install-dir``: Specify a custom installation directory for SUNDIALS and SuiteSparse. + Example: - Example: + .. code:: bash - .. code:: bash + nox -s pybamm-requires -- --force - nox -s pybamm-requires -- --install-dir [custom_directory_path] +.. tab:: Windows - After running this command, you need to export the environment variable ``INSTALL_DIR`` with the custom installation directory to link the libraries with the solver: + PyBaMM comes with a DAE solver based on the IDA solver provided by the SUNDIALS library. To use this solver, you must ensure you have the necessary SUNDIALS components installed on your system. + To install SUNDIALS, you will need to install the following components: - .. code:: bash + VCPKG - export INSTALL_DIR=[custom_directory_path] + - VCPKG automatically installs the required libraries for you during the build process. To install VCPKG, follow the instructions in `Microsoft's official documentation `_. + - Make sure to add the location to ``Path`` and a new environment variable ``VCPKG_ROOT_DIR`` with the location to VCPKG. -- ``--force``: Force the installation of SUNDIALS and SuiteSparse, even if they are already found in the specified directory. + C++ Compiler - Example: + - PyBaMM uses a recent version of Microsoft Visual C++ (MSVC), which you can get using `Build Tools for Visual Studio Code 2022 `_. + - Note that you won't need Visual Studio 2022 entirely; just ``Desktop development with C++`` will suffice. - .. code:: bash + CMake - nox -s pybamm-requires -- --force + - ``CMake`` is required to install the SUNDIALS and other libraries for the ``IDAKLU`` solver. + - To install it, follow the link to the `official CMake downloads page `_. + - Download an installer based on your system's architecture, i.e. ``x32/x64``, and check ``Add CMake to the PATH environment variable`` during installation. Manual install of build time requirements ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -If you'd rather do things yourself, +.. tab:: GNU/Linux and MacOS -1. Make sure you have CMake installed -2. Compile and install SuiteSparse (PyBaMM only requires the ``KLU`` component). -3. Compile and install SUNDIALS. + If you'd rather do things yourself, + 1. Make sure you have CMake installed + 2. Compile and install SuiteSparse (PyBaMM only requires the ``KLU`` component). + 3. Compile and install SUNDIALS. -PyBaMM ships with a Python script that automates points 2. and 3. You can run it with -.. code:: bash + PyBaMM ships with a Python script that automates points 2. and 3. You can run it with + + .. code:: bash - python scripts/install_KLU_Sundials.py + python scripts/install_KLU_Sundials.py -This script supports optional arguments for custom installations: + This script supports optional arguments for custom installations: + + - ``--install-dir``: Specify a custom installation directory for SUNDIALS and SuiteSparse. + + By default, they are installed in ``PyBaMM/sundials_KLU_libs``. + + Example: + + .. code:: bash -- ``--install-dir``: Specify a custom installation directory for SUNDIALS and SuiteSparse. - By default, they are installed in ``PyBaMM/sundials_KLU_libs``. + python scripts/install_KLU_Sundials.py --install-dir [custom_directory_path] - Example: + After running this command, you need to export the environment variable ``INSTALL_DIR`` with the custom installation directory to link the libraries with the solver: - .. code:: bash + .. code:: bash - python scripts/install_KLU_Sundials.py --install-dir [custom_directory_path] + export INSTALL_DIR=[custom_directory_path] - After running this command, you need to export the environment variable ``INSTALL_DIR`` with the custom installation directory to link the libraries with the solver: + - ``--force``: Force the installation of SUNDIALS and SuiteSparse, even if they are already found in the specified directory. - .. code:: bash + Example: - export INSTALL_DIR=[custom_directory_path] + .. code:: bash -- ``--force``: Force the installation of SUNDIALS and SuiteSparse, even if they are already found in the specified directory. + python scripts/install_KLU_Sundials.py --force - Example: +.. tab:: Windows - .. code:: bash + There isn't a method to manually build SUNDIALS on Windows. However, if you've followed the instructions provided in the previous section (:ref:`install-build-time`), you should have successfully set up SUNDIALS on your Windows system. - python scripts/install_KLU_Sundials.py --force + With SUNDIALS already set up, you can proceed directly to the next section. .. _pybamm-install: Installing PyBaMM ----------------- -You should now have everything ready to build and install PyBaMM successfully. +.. tab:: GNU/Linux and MacOS + + To obtain the PyBaMM source code, clone the GitHub repository + + .. code:: bash + + git clone https://github.com/pybamm-team/PyBaMM.git + + or download the source archive on the repository's homepage. + + You should now have everything ready to build and install PyBaMM successfully. + +.. tab:: Windows + + Open a Command Prompt and navigate to the folder where you want to install PyBaMM, + + 1. Obtain the PyBaMM source code by cloning the GitHub repository or downloading the source archive on the repository's homepage. + + .. code:: bash + + git clone https://github.com/pybamm-team/PyBaMM.git + + 2. PyBaMM requires setting a few environment variables to install the IDAKLU solver. To put them automatically, run the following ``.bat`` script using the following command from the project root directory. + + .. code:: + + .\Scripts\windows_setup.bat + + The script sets the following environment variables with the following defaults. + + .. code-block:: bash + + PYBAMM_USE_VCPKG: ON + VCPKG_DEFAULT_TRIPLET: x64-windows-static-md + VCPKG_FEATURE_FLAGS: manifests,registries + + .. note:: + + Ensure you set the ``VCPKG_ROOT_DIR`` environment variable to the location where VCPKG is installed. + + You should now have everything ready to build and install PyBaMM successfully. Using ``Nox`` (recommended) ~~~~~~~~~~~~~~~~~~~~~~~~~~~ +PyBaMM needs a few build-time dependencies when installing PyBaMM in "editable mode" without build-isolation. `TOML Kit `_, a ``toml`` table parser, automates this process for you. + +To install ``tomlkit`` to your local user account (ensure you are not within a virtual environment), use the following command: + .. code:: bash - # in the PyBaMM/ directory + python -m pip install --user tomlkit + +To install PyBaMM, execute the following command + +.. code:: bash + + # in the project root directory nox -s dev .. note:: @@ -188,7 +312,7 @@ You can now activate the environment with .. tab:: Windows - .. code:: bash + .. code:: venv\Scripts\activate.bat @@ -197,62 +321,124 @@ and run the tests to check your installation. Manual install ~~~~~~~~~~~~~~ -We recommend to install PyBaMM within a virtual environment, in order -not to alter any distribution Python files. +We recommend installing PyBaMM within a virtual environment to avoid altering any distribution of Python files. -To create a virtual environment ``env`` within your current directory type: +.. tab:: GNU/Linux and MacOS -.. code:: bash + To create a virtual environment ``env`` within your current directory type: - virtualenv env + .. code:: bash -You can then “activate” the environment using: + virtualenv env -.. code:: bash + You can then “activate” the environment using: - source env/bin/activate + .. code:: bash -Now all the calls to pip described below will install PyBaMM and its -dependencies into the environment ``env``. When you are ready to exit -the environment and go back to your original system, just type: + source env/bin/activate -.. code:: bash + Now all the calls to pip described below will install PyBaMM and its + dependencies into the environment ``env``. When you are ready to exit + the environment and go back to your original system, just type: - deactivate + .. code:: bash -From the ``PyBaMM/`` directory inside the virtual environment, you can install PyBaMM using + deactivate -.. code:: bash + From the ``PyBaMM/`` directory inside the virtual environment, you can install PyBaMM using - pip install . + .. code:: bash -If you want to install PyBaMM in an "editable mode", use the following command: + pip install . -.. code:: bash + If you intend to contribute to the development of PyBaMM, it is convenient to + install in "editable mode", along with all the optional dependencies and useful + tools for development and documentation. - pip install -e . + You can install PyBaMM in an "editable mode" using the following command: -If you intend to contribute to the development of PyBaMM, it is convenient to -install in "editable mode", along with all the optional dependencies and useful -tools for development and documentation. + .. code:: bash -Due to the ``--no-build-isolation`` flag in the "editable mode" command, you first need to install the build-time dependencies inside the virtual environment: + pip install -e .[all,dev,docs] -.. code:: bash + You can also install PyBaMM with "partial rebuilds" enabled. But, due to the ``--no-build-isolation`` flag, you first need to install the build-time dependencies inside the virtual environment: - pip install scikit-build-core casadi cmake pybind11 + .. code:: bash -You can now install PyBaMM in "editable mode" for development using the following commands: + pip install scikit-build-core pybind11 casadi cmake -.. code:: bash + You can now install PyBaMM in "editable mode" with "partial rebuilds" for development using the following command: + + .. code:: bash - pip install --no-build-isolation --config-settings=editable.rebuild=true -ve .[all,dev,docs] + pip install --no-build-isolation --config-settings=editable.rebuild=true -e .[all,dev,docs] -If you are using ``zsh`` or ``tcsh``, you would need to use different pattern matching: + If you are using ``zsh`` or ``tcsh``, you would need to use different pattern matching: -.. code:: bash + .. code:: bash + + pip install --no-build-isolation --config-settings=editable.rebuild=true -e '.[all,dev,docs]' + + +.. tab:: Windows + + You can install ``virtualenv`` by executing the following command: - pip install --no-build-isolation --config-settings=editable.rebuild=true -ve '.[all,dev,docs]' + .. code:: bash + + python -m pip install virtualenv + + Create a virtual environment ``venv`` within the PyBaMM root directory: + + .. code:: bash + + python -m virtualenv venv + + You can then “activate” the environment using: + + .. code:: text + + venv\Scripts\activate.bat + + Now, all the calls to pip described below will install PyBaMM and its + dependencies into the environment ``venv``. When you are ready to exit + the environment and go back to your original system, just type: + + .. code:: bash + + deactivate + + From the ``PyBaMM/`` directory inside the virtual environment, you can install PyBaMM using + + .. code:: bash + + pip install . + + If you intend to contribute to the development of PyBaMM, it is convenient to + install in "editable mode", along with all the optional dependencies and useful + tools for development and documentation. + + You can install PyBaMM in an "editable mode" using the following command: + + .. code:: bash + + pip install -e .[all,dev,docs] + + You can also install PyBaMM with "partial rebuilds" enabled. But, due to the ``--no-build-isolation`` flag, you first need to install the build-time dependencies inside the virtual environment: + + .. code:: bash + + pip install scikit-build-core pybind11 + + You can now install PyBaMM in "editable mode" with "partial rebuilds" for development using the following command: + + .. code:: bash + + pip install --no-build-isolation --config-settings=editable.rebuild=true -e .[all,dev,docs] + +.. note:: + + The "partial rebuilds" feature is still experimental and may break. To learn more, check out `scikit-build-core's official documentation `_. Before you start contributing to PyBaMM, please read the `contributing guidelines `__. @@ -260,6 +446,14 @@ guidelines ` Running the tests ----------------- +.. tab:: GNU/Linux + + Make sure to install ``texlive-latex-extra`` to pass all tests. Otherwise, you can safely ignore the failed tests needing it. + +.. tab:: Windows and MacOS + + Make sure to install ``graphviz`` using the `Chocolatey `_ package manager (Windows) or using ``brew`` (MacOS) to pass all the tests. Otherwise, you can safely ignore the failed tests needing ``graphviz``. + Using Nox (recommended) ~~~~~~~~~~~~~~~~~~~~~~~ @@ -292,31 +486,32 @@ Finally, to run the unit and the integration suites sequentially, use nox -s tests -Using the test runner -~~~~~~~~~~~~~~~~~~~~~~ +Using ``pytest`` +~~~~~~~~~~~~~~~~ -You can run unit tests for PyBaMM using +You can run unit tests for PyBaMM inside the virtual environment using .. code:: bash - # in the PyBaMM/ directory - python run-tests.py --unit + pytest -m unit +You can run integration tests using -The above starts a sub-process using the current python interpreter (i.e. using your current -Python environment) and run the unit tests. This can take a few minutes. +.. code:: bash -You can also use the test runner to run the doctests: + pytest -m integration + +To run both unit and integration tests, use the following command: .. code:: bash - python run-tests.py --doctest + pytest -m tests -There is more to the PyBaMM test runner. To see a list of all options, type +You can also use ``pytest`` to test example notebooks. .. code:: bash - python run-tests.py --help + pytest --nbmake docs/source/examples/ How to build the PyBaMM documentation ------------------------------------- @@ -359,53 +554,86 @@ Here are some additional useful commands you can run with ``Nox``: Troubleshooting --------------- -**Problem:** I ran a ``nox``/python build command and encountered ``Could NOT find SUNDIALS (missing: SUNDIALS_INCLUDE_DIR SUNDIALS_LIBRARIES)`` error. +.. tab:: GNU/Linux and MacOS -**Solution:** This error occurs when the build system, ``scikit-build-core``, can not find the SUNDIALS libraries to build the ``IDAKLU`` solver. + **Problem:** I ran a ``nox``/python build command and encountered ``Could NOT find SUNDIALS (missing: SUNDIALS_INCLUDE_DIR SUNDIALS_LIBRARIES)`` error. -1. Run the following command to ensure SUNDIALS libraries are installed: + **Solution:** This error occurs when the build system, ``scikit-build-core``, can not find the SUNDIALS libraries to build the ``IDAKLU`` solver. - .. code:: bash + 1. Run the following command to ensure SUNDIALS libraries are installed: - nox -s pybamm-requires -- --force + .. code:: bash -2. If you are using a custom directory for SUNDIALS, set the ``INSTALL_DIR`` environment variable to specify the path: + nox -s pybamm-requires -- --force - .. code:: bash + 2. If you are using a custom directory for SUNDIALS, set the ``INSTALL_DIR`` environment variable to specify the path: - export INSTALL_DIR=[custom_directory_path] + .. code:: bash -**Problem:** When installing SUNDIALS, I encountered ``CMake Error: The source "../CMakeLists.txt" does not match the source "../CMakeLists.txt" used to generate cache`` error. + export INSTALL_DIR=[custom_directory_path] -**Solution:** This error occurs when there is a delay between installing and downloading SUNDIALS libraries. + **Problem:** When installing SUNDIALS, I encountered ``CMake Error: The source "../CMakeLists.txt" does not match the source "../CMakeLists.txt" used to generate cache`` error. -1. Remove the following directories from the PyBaMM directory if they exist: + **Solution:** This error occurs when there is a delay between installing and downloading SUNDIALS libraries. - a. ``download_KLU_Sundials`` - b. ``sundials_KLU_libs`` - c. Any custom directory you have set for installation + 1. Remove the following directories from the PyBaMM directory if they exist: -2. Re-run the command to install SUNDIALS. -3. If you are using a custom directory, make sure to set the ``INSTALL_DIR`` environment variable: + a. ``download_KLU_Sundials`` + b. ``sundials_KLU_libs`` + c. Any custom directory you have set for installation - .. code:: bash + 2. Re-run the command to install SUNDIALS. + 3. If you are using a custom directory, make sure to set the ``INSTALL_DIR`` environment variable: - export INSTALL_DIR=[custom_directory_path] + .. code:: bash -**Problem:** I have made edits to source files in PyBaMM, but these are -not being used when I run my Python script. + export INSTALL_DIR=[custom_directory_path] -**Solution:** Make sure you have installed PyBaMM using the ``-e`` flag, like so: + **Problem:** I have made edits to source files in PyBaMM, but these are + not being used when I run my Python script. -.. code:: bash + **Solution:** Make sure you have installed PyBaMM using the ``-e`` flag, like so: - pip install -ve . + .. code:: bash -If you want to install to contribute to PyBaMM, use this command: + pip install -e . -.. code:: bash + If you want to install with "partial rebuilds" enabled, use this command: + + .. code:: bash + + pip install --no-build-isolation --config-settings=editable.rebuild=true -e. + + Make sure you have the build-time dependencies installed beforehand. + + These commands set the installed location of the + source files to your current directory. + +.. tab:: Windows + + **Problem:** I ran a ``nox``/python build command and encountered ``Configuring incomplete, errors occurred!`` error. + + **Solution:** This can occur when the environment variables are improperly set in the terminal. + + 1. Make sure you've set environment variables before running any ``nox``/python build command. + 2. Try running the build command again in the same terminal. + + **Problem:** I have made edits to source files in PyBaMM, but these are + not being used when I run my Python script. + + **Solution:** Make sure you have installed PyBaMM using the ``-e`` flag, like so: + + .. code:: bash + + pip install -e . + + If you want to install with "partial rebuilds" enabled, use this command: + + .. code:: bash + + pip install --no-build-isolation --config-settings=editable.rebuild=true -e. - pip install --no-build-isolation --config-settings=editable.rebuild=true -ve .[all,dev,docs] + Make sure you have the build-time dependencies installed beforehand. -These commands set the installed location of the -source files to your current directory. + These commands set the installed location of the + source files to your current directory. diff --git a/docs/source/user_guide/installation/install-source-windows.rst b/docs/source/user_guide/installation/install-source-windows.rst deleted file mode 100644 index 8d162541c7..0000000000 --- a/docs/source/user_guide/installation/install-source-windows.rst +++ /dev/null @@ -1,382 +0,0 @@ -Install from source (Windows) -========================================= - -.. contents:: - -This page describes the build and installation of PyBaMM from the source code, available on GitHub. Note that this is **not the recommended approach for most users** and should be reserved to people wanting to participate in the development of PyBaMM, or people who really need to use bleeding-edge feature(s) not yet available in the latest released version. If you do not fall in the two previous categories, you would be better off installing PyBaMM using pip or conda. - -Lastly, familiarity with the Python ecosystem is recommended (pip, virtualenvs). -Here is a gentle introduction/refresher: `Python Virtual Environments: A Primer `_. - - -Prerequisites ---------------- - -To use PyBaMM, you must have Python 3.9, 3.10, 3.11, or 3.12 installed. - -To install Python 3.X, download the installation files from `Python’s -website `_. Make sure to -tick the box on ``Add Python 3.X to PATH``. For more detailed -instructions please see the `official Python on Windows -guide `__. - -(Optional) If you wish to build the documentation locally, you can install ``graphviz`` using the `Chocolatey `_ package manager, - -.. code:: bash - - choco install graphviz --version=8.0.5 - -or follow the instructions on the `graphviz website `_. - -To install PyBaMM, you will need to install the following components: - -C++ Compiler -~~~~~~~~~~~~ - -PyBaMM uses a recent version of Microsoft Visual C++ (MSVC), which you can get using `Build Tools for Visual Studio Code 2022 `_. - -Note that you won't need Visual Studio 2022 entirely; just ``Desktop development with C++`` will suffice. - -.. image:: images-windows-source/pic1-msvc-select.png - :height: 456px - :width: 810px - :scale: 100% - :alt: Image with the packages to install - - -VCPKG -~~~~~ - -PyBaMM comes with a DAE solver based on the IDA solver provided by the SUNDIALS library. -To use this solver, you must ensure you have the necessary SUNDIALS components -installed on your system. - -VCPKG automatically installs them for you during the build process. To learn more, look at the `official documentation by Microsoft `_. - -To install VCPKG, follow the steps below: - -1. Open a Command Shell, and navigate to ``C:\``. - * We are installing VCPKG in ``C:\vcpkg`` - * If you wish to install in a custom directory, change the environment variable ``VCPKG_ROOT_DIR`` before installation as mentioned herein :ref:`installing-pybamm`. -2. Clone VCPKG's GitHub repository - - .. code:: bash - - git clone https://github.com/microsoft/vcpkg.git - - - * If you do not have Git installed, download and install it from the `official Git download page `_. - -3. Navigate inside VCPKG directory and install it: - - .. code:: bash - - cd vcpkg && bootstrap-vcpkg.bat - -4. Add VCPKG directory to ``Path`` environment variable: - * Copy the location ``C:\vcpkg`` or the location of your custom directory. - * In the start menu, search for ``Edit the system environment variables`` and open it. - * Under the ``Advanced`` tab, click on ``Environment Variables`` - .. image:: images-windows-source/pic2-env-var-open.png - :scale: 70% - - - * Select ``Path`` from ``user variables`` if you want to set VCPKG just for you, or use ``Path`` from ``system variables`` to set VCPKG for all your system users. - .. image:: images-windows-source/pic3-show-path.png - :scale: 50% - - - * Select ``Path`` and select ``NEW``. Paste the location to VCPKG, then confirm your options by clicking ``OK``. - .. image:: images-windows-source/pic4-save-env-var.png - :height: 900px - :width: 900px - :scale: 70% - - -5. Close and reopen Command Prompt and execute ``vcpkg`` to see an output of different options available for ``vcpkg``. - -CMake -~~~~~ - -``CMake`` is required to install the SUNDIALS and other libraries for the ``IDAKLU`` solver. -To install it, follow the link to the `official CMake downloads page `_. - -Download an installer based on your system's architecture, i.e. ``x32/x64``, and check ``Add CMake to the PATH environment variable`` during installation. - -Python Packages -~~~~~~~~~~~~~~~ - -In addition to the packages above, you will need `TOML Kit `_, a ``toml`` table parser. The tool is necessary to install build-time dependencies in "editable mode" without build isolation. - -To install ``tomlkit`` to your local user account (ensure you are not within a virtual environment), use the following command: - -.. code:: bash - - python3.X -m pip install --user tomlkit - -Finally, we recommend using `Nox `_. -You can install it to your local user account (make sure you are not within a virtual environment) with - -.. code:: bash - - python3.X -m pip install --user nox - -Note that running ``nox`` will create new virtual environments for you to use, so you do not need to create one yourself. - -After installing the above packages, you must add the following location to your ``Path`` environment variable to run ``nox`` in a terminal, like Command Prompt. -Follow the instructions above for VCPKG to add it to the ``Path``. - -.. code:: - - C:\Users\\AppData\Roaming\Python\Python3\Scripts - -Make sure to replace ```` with your user name and ``X`` with your Python subversion. - -.. _installing-pybamm: - -Installing PyBaMM ------------------ - -Open a Command Prompt and navigate to the folder where you want to install PyBaMM, - -1. Obtain the PyBaMM source code by cloning the GitHub repository or downloading the source archive on the repository's homepage. - - .. code:: bash - - git clone https://github.com/pybamm-team/PyBaMM.git - -2. Set the following environment variables by pasting the commands to your Command Prompt. - - .. code-block:: bash - - set PYBAMM_USE_VCPKG=ON - set VCPKG_ROOT_DIR=C:\vcpkg - set VCPKG_DEFAULT_TRIPLET=x64-windows-static-md - set VCPKG_FEATURE_FLAGS=manifests,registries - set CMAKE_GENERATOR="Visual Studio 17 2022" - set CMAKE_GENERATOR_PLATFORM=x64 - -3. To check if the environment variables are properly set, try executing ``set CMAKE_GENERATOR_PLATFORM`` command to get an output ``CMAKE_GENERATOR_PLATFORM=x64``. - -.. note:: - - The environment variables set through Command Prompt will expire as soon as the session, i.e. terminal, is closed. Hence, if you closed and reopened the terminal, the ``IDAKLU`` solver would not compile with the build commands. - - To avoid this, you can set them permanently by adding them to either ``User Variables`` or ``System Variables`` if you want to set them for all users on the system. For more information, follow `this tutorial `_ on permanently setting environment variables. - -You should now have everything ready to build and install PyBaMM successfully. - -Using ``Nox`` (recommended) -~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -In the same Command Prompt shell where you've set the environment variables, execute the following command inside the PyBaMM directory: - -.. code:: text - - nox -s dev - -.. note:: - It is recommended to use ``--verbose`` or ``-v`` to see outputs of all commands run. - -This creates a virtual environment ``venv/`` inside the ``PyBaMM/`` directory. -It comes ready with PyBaMM and some useful development tools like `pre-commit `_ and `ruff `_. - -You can now activate the environment with - -.. code:: text - - venv\Scripts\activate.bat - -and run the tests to check your installation. - -Manual install -~~~~~~~~~~~~~~ - -We recommend installing PyBaMM within a virtual environment to avoid altering any distribution of Python files. - -In the same Command Prompt shell where you've set the environment variables, install ``virtualenv`` by executing the following command: - -.. code:: bash - - python -m pip install virtualenv - -Create a virtual environment ``venv`` within the PyBaMM directory: - -.. code:: bash - - python -m virtualenv venv - -You can then “activate” the environment using: - -.. code:: text - - venv\Scripts\activate.bat - -Now, all the calls to pip described below will install PyBaMM and its -dependencies into the environment ``venv``. When you are ready to exit -the environment and go back to your original system, just type: - -.. code:: bash - - deactivate - - -From the ``PyBaMM/`` directory inside the virtual environment, you can install PyBaMM using - -.. code:: bash - - pip install . - -If you want to install PyBaMM in an "editable mode", use the following command: - -.. code:: bash - - pip install -e . - -If you intend to contribute to the development of PyBaMM, it is convenient to -install in "editable mode", along with all the optional dependencies and useful -tools for development and documentation. - -Due to the ``--no-build-isolation`` flag in the "editable mode" command, you first need to install the build-time dependencies inside the virtual environment: - -.. code:: bash - - pip install scikit-build-core pybind11 - -You can now install PyBaMM in "editable mode" for development using the following commands: - -.. code:: bash - - pip install --no-build-isolation --config-settings=editable.rebuild=true -ve .[all,dev,docs] - -Before you start contributing to PyBaMM, please read the `contributing -guidelines `__. - -Running the tests ------------------ - -Using Nox (recommended) -~~~~~~~~~~~~~~~~~~~~~~~ - -You can use ``Nox`` to run the unit tests and example notebooks in isolated virtual environments. - -Make sure to install ``graphviz`` using the `Chocolatey `_ package manager or by following the instructions on the `graphviz website `_ to pass all the tests. Otherwise, you can safely ignore the failed tests needing ``graphviz``. - -The default command - -.. code:: bash - - nox - -will run pre-commit and run the unit tests. -This can take several minutes. - -To just run the unit tests, use - -.. code:: bash - - nox -s unit - -Similarly, to run the integration tests, use - -.. code:: bash - - nox -s integration - -Finally, to run the unit and the integration suites sequentially, use - -.. code:: bash - - nox -s tests - -Using the test runner -~~~~~~~~~~~~~~~~~~~~~~ - -You can run unit tests for PyBaMM inside the virtual environment using - -.. code:: bash - - # in the PyBaMM/ directory - python run-tests.py --unit - - -The above starts a sub-process using the current python interpreter (i.e. using your current -Python environment) and run the unit tests. This can take a few minutes. - -You can also use the test runner to run the doctests: - -.. code:: bash - - python run-tests.py --doctest - -There is more to the PyBaMM test runner. To see a list of all options, type - -.. code:: bash - - python run-tests.py --help - -How to build the PyBaMM documentation -------------------------------------- - -The documentation is built using - -.. code:: bash - - nox -s docs - -This will build the documentation and serve it locally (thanks to `sphinx-autobuild `_) for preview. -The preview will be updated automatically following changes. - -Doctests, examples, and coverage --------------------------------- - -``Nox`` can also be used to run doctests, run examples, and generate a coverage report using: - -- ``nox -s examples``: Run the Jupyter notebooks in ``docs/source/examples/notebooks/``. -- ``nox -s examples -- ``: Run specific Jupyter notebooks. -- ``nox -s scripts``: Run the example scripts in ``examples/scripts/``. -- ``nox -s doctests``: Run doctests. -- ``nox -s coverage``: Measure current test coverage and generate a coverage report. -- ``nox -s quick``: Run integration tests, unit tests, and doctests sequentially. - -Extra tips while using ``Nox`` ------------------------------- - -Here are some additional useful commands you can run with ``Nox``: - -- ``--verbose or -v``: Enables verbose mode, providing more detailed output during the execution of Nox sessions. -- ``--list or -l``: Lists all available Nox sessions and their descriptions. -- ``--stop-on-first-error``: Stops the execution of Nox sessions immediately after the first error or failure occurs. -- ``--envdir ``: Specifies the directory where Nox creates and manages the virtual environments used by the sessions. In this case, the directory is set to ````. -- ``--install-only``: Skips the test execution and only performs the installation step defined in the Nox sessions. -- ``--nocolor``: Disables the color output in the console during the execution of Nox sessions. -- ``--report output.json``: Generates a JSON report of the Nox session execution and saves it to the specified file, in this case, "output.json". -- ``nox -s docs --non-interactive``: Builds the documentation without serving it locally (using ``sphinx-build`` instead of ``sphinx-autobuild``). - -Troubleshooting ---------------- - -**Problem:** I ran a ``nox``/python build command and encountered ``Configuring incomplete, errors occurred!`` error. - -**Solution:** This can occur when the environment variables are improperly set in the terminal. - -1. Make sure you've set environment variables before running any ``nox``/python build command. -2. Try running the build command again in the same terminal. - -**Problem:** I have made edits to source files in PyBaMM, but these are -not being used when I run my Python script. - -**Solution:** Make sure you have installed PyBaMM using the ``-e`` flag, like so: - -.. code:: bash - - pip install -ve . - -If you want to install to contribute to PyBaMM, use this command: - -.. code:: bash - - pip install --no-build-isolation --config-settings=editable.rebuild=true -ve .[all,dev,docs] - -These commands set the installed location of the -source files to your current directory. diff --git a/scripts/windows_setup.bat b/scripts/windows_setup.bat index c116609985..5193dac961 100644 --- a/scripts/windows_setup.bat +++ b/scripts/windows_setup.bat @@ -3,7 +3,6 @@ echo Setting environment variables... setx PYBAMM_USE_VCPKG ON -setx VCPKG_ROOT_DIR C:\vcpkg setx VCPKG_DEFAULT_TRIPLET x64-windows-static-md setx VCPKG_FEATURE_FLAGS manifests,registries From 871d19235f520e6abbc8ed717bbf70d48f3ea2bb Mon Sep 17 00:00:00 2001 From: cringeyburger Date: Sun, 25 Aug 2024 17:20:00 +0530 Subject: [PATCH 40/61] feat: add IREE support and fix unit tests --- .github/workflows/test_on_push.yml | 3 - .gitignore | 5 +- CMakeLists.txt | 12 ++- tests/unit/test_solvers/test_idaklu_solver.py | 100 ------------------ 4 files changed, 14 insertions(+), 106 deletions(-) diff --git a/.github/workflows/test_on_push.yml b/.github/workflows/test_on_push.yml index 05931718d4..51a5df310d 100644 --- a/.github/workflows/test_on_push.yml +++ b/.github/workflows/test_on_push.yml @@ -107,9 +107,6 @@ jobs: - name: Install nox and tomlkit run: python -m pip install nox tomlkit - - name: print name - run: python -c "import platform;print(platform.platform(terse=True))" - - name: Cache pybamm-requires nox environment for macOS uses: actions/cache@v4 with: diff --git a/.gitignore b/.gitignore index 562e9ce5de..61d7150ef2 100644 --- a/.gitignore +++ b/.gitignore @@ -90,9 +90,12 @@ KLU_module_deps sundials_KLU_libs/include download_KLU_Sundials/ -# Ignore Python Egg Info Directories +# ignore Python Egg Info Directories *.egg-info +# ignore IREE +iree + # downloads *.gz diff --git a/CMakeLists.txt b/CMakeLists.txt index 4f3eb8ac9c..73db2e2ca7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -41,7 +41,11 @@ find_package(Python COMPONENTS Interpreter Development.Module REQUIRED) # Check Casadi build flag if(NOT DEFINED PYBAMM_IDAKLU_EXPR_CASADI) - set(PYBAMM_IDAKLU_EXPR_CASADI ON) + if(DEFINED ENV{PYBAMM_IDAKLU_EXPR_CASADI}) + set(PYBAMM_IDAKLU_EXPR_CASADI "$ENV{PYBAMM_IDAKLU_EXPR_CASADI}") + else() + set(PYBAMM_IDAKLU_EXPR_CASADI ON) + endif() endif() message("PYBAMM_IDAKLU_EXPR_CASADI: ${PYBAMM_IDAKLU_EXPR_CASADI}") @@ -57,7 +61,11 @@ endif() # Check IREE build flag if(NOT DEFINED PYBAMM_IDAKLU_EXPR_IREE) - set(PYBAMM_IDAKLU_EXPR_IREE OFF) + if(DEFINED ENV{PYBAMM_IDAKLU_EXPR_IREE}) + set(PYBAMM_IDAKLU_EXPR_IREE "$ENV{PYBAMM_IDAKLU_EXPR_IREE}") + else() + set(PYBAMM_IDAKLU_EXPR_IREE OFF) + endif() endif() message("PYBAMM_IDAKLU_EXPR_IREE: ${PYBAMM_IDAKLU_EXPR_IREE}") diff --git a/tests/unit/test_solvers/test_idaklu_solver.py b/tests/unit/test_solvers/test_idaklu_solver.py index f56c26b209..d2df99bf6e 100644 --- a/tests/unit/test_solvers/test_idaklu_solver.py +++ b/tests/unit/test_solvers/test_idaklu_solver.py @@ -8,7 +8,6 @@ import pytest import numpy as np import sys -import platform import pybamm from tests import get_discretisation_for_testing @@ -17,17 +16,6 @@ @pytest.mark.cibw @unittest.skipIf(not pybamm.have_idaklu(), "idaklu solver is not installed") class TestIDAKLUSolver(unittest.TestCase): - @pytest.mark.xfail( - platform.system() == "Linux" - or ( - ( - platform.platform(terse=True).startswith("macOS-13") - or platform.platform(terse=True).startswith("macOS-14") - ) - and sys.version_info[:2] == (3, 11) - ), - reason="problem with IDAKLU not having `create_iree_solver` attribute", - ) def test_ida_roberts_klu(self): # this test implements a python version of the ida Roberts # example provided in sundials @@ -77,17 +65,6 @@ def test_ida_roberts_klu(self): true_solution = 0.1 * solution.t np.testing.assert_array_almost_equal(solution.y[0, :], true_solution) - @pytest.mark.xfail( - platform.system() == "Linux" - or ( - ( - platform.platform(terse=True).startswith("macOS-13") - or platform.platform(terse=True).startswith("macOS-14") - ) - and sys.version_info[:2] == (3, 11) - ), - reason="problem with IDAKLU not having `create_iree_solver` attribute", - ) def test_model_events(self): for form in ["python", "casadi", "jax", "iree"]: if (form == "jax" or form == "iree") and not pybamm.have_jax(): @@ -217,17 +194,6 @@ def test_model_events(self): err_msg=f"Failed for form {form}", ) - @pytest.mark.xfail( - platform.system() == "Linux" - or ( - ( - platform.platform(terse=True).startswith("macOS-13") - or platform.platform(terse=True).startswith("macOS-14") - ) - and sys.version_info[:2] == (3, 11) - ), - reason="problem with IDAKLU not having `create_iree_solver` attribute", - ) def test_input_params(self): # test a mix of scalar and vector input params for form in ["python", "casadi", "jax", "iree"]: @@ -286,17 +252,6 @@ def test_input_params(self): sol.y[1:3], true_solution, err_msg=f"Failed for form {form}" ) - @pytest.mark.xfail( - platform.system() == "Linux" - or ( - ( - platform.platform(terse=True).startswith("macOS-13") - or platform.platform(terse=True).startswith("macOS-14") - ) - and sys.version_info[:2] == (3, 11) - ), - reason="problem with IDAKLU not having `create_iree_solver` attribute", - ) def test_sensitivities_initial_condition(self): for form in ["casadi", "iree"]: for output_variables in [[], ["2v"]]: @@ -348,17 +303,6 @@ def test_sensitivities_initial_condition(self): err_msg=f"Failed for form {form}", ) - @pytest.mark.xfail( - platform.system() == "Linux" - or ( - ( - platform.platform(terse=True).startswith("macOS-13") - or platform.platform(terse=True).startswith("macOS-14") - ) - and sys.version_info[:2] == (3, 11) - ), - reason="problem with IDAKLU not having `create_iree_solver` attribute", - ) def test_ida_roberts_klu_sensitivities(self): # this test implements a python version of the ida Roberts # example provided in sundials @@ -467,17 +411,6 @@ def test_ida_roberts_klu_sensitivities(self): err_msg=f"Failed for form {form}", ) - @pytest.mark.xfail( - platform.system() == "Linux" - or ( - ( - platform.platform(terse=True).startswith("macOS-13") - or platform.platform(terse=True).startswith("macOS-14") - ) - and sys.version_info[:2] == (3, 11) - ), - reason="problem with IDAKLU not having `create_iree_solver` attribute", - ) def test_ida_roberts_consistent_initialization(self): # this test implements a python version of the ida Roberts # example provided in sundials @@ -522,17 +455,6 @@ def test_ida_roberts_consistent_initialization(self): model.ydot0full, [0.1, 0], err_msg=f"Failed for form {form}" ) - @pytest.mark.xfail( - platform.system() == "Linux" - or ( - ( - platform.platform(terse=True).startswith("macOS-13") - or platform.platform(terse=True).startswith("macOS-14") - ) - and sys.version_info[:2] == (3, 11) - ), - reason="problem with IDAKLU not having `create_iree_solver` attribute", - ) def test_sensitivities_with_events(self): # this test implements a python version of the ida Roberts # example provided in sundials @@ -697,17 +619,6 @@ def test_failures(self): with self.assertRaisesRegex(pybamm.SolverError, "FAILURE IDA"): solver.solve(model, t_eval) - @pytest.mark.xfail( - platform.system() == "Linux" - or ( - ( - platform.platform(terse=True).startswith("macOS-13") - or platform.platform(terse=True).startswith("macOS-14") - ) - and sys.version_info[:2] == (3, 11) - ), - reason="problem with IDAKLU not having `create_iree_solver` attribute", - ) def test_dae_solver_algebraic_model(self): for form in ["python", "casadi", "jax", "iree"]: if (form == "jax" or form == "iree") and not pybamm.have_jax(): @@ -1011,17 +922,6 @@ def construct_model(): sol["x_s [m]"].domain = ["current collector"] sol["x_s [m]"].initialise_1D() - @pytest.mark.xfail( - platform.system() == "Linux" - or ( - ( - platform.platform(terse=True).startswith("macOS-13") - or platform.platform(terse=True).startswith("macOS-14") - ) - and sys.version_info[:2] == (3, 11) - ), - reason="problem with IDAKLU not having `create_iree_solver` attribute", - ) def test_with_output_variables_and_sensitivities(self): # Construct a model and solve for all variables, then test # the 'output_variables' option for each variable in turn, confirming From 5aebe48c27920f17c6cf4e05cff3c9710ada6620 Mon Sep 17 00:00:00 2001 From: cringeyburger Date: Mon, 26 Aug 2024 03:11:10 +0530 Subject: [PATCH 41/61] feat: clean `test_on_push` and fix `run_periodic_tests` --- .github/workflows/run_periodic_tests.yml | 213 ++++++++++++++++++++--- .github/workflows/test_on_push.yml | 114 ------------ 2 files changed, 184 insertions(+), 143 deletions(-) diff --git a/.github/workflows/run_periodic_tests.yml b/.github/workflows/run_periodic_tests.yml index 3202295be1..9c6799ea00 100644 --- a/.github/workflows/run_periodic_tests.yml +++ b/.github/workflows/run_periodic_tests.yml @@ -26,29 +26,72 @@ concurrency: cancel-in-progress: true jobs: - run_tests: - runs-on: ${{ matrix.os }} + style: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Setup Python + uses: actions/setup-python@v5 + with: + python-version: 3.12 + + - name: Check style + run: | + python -m pip install pre-commit + pre-commit run -a + + run_windows_unit_integration_tests: + needs: style env: BUILD_IDAKLU: OFF + runs-on: windows-latest strategy: fail-fast: false matrix: - os: [ ubuntu-latest, macos-12, macos-14, windows-latest ] - python-version: [ "3.9", "3.10", "3.11", "3.12" ] - name: Tests (${{ matrix.os }} / Python ${{ matrix.python-version }}) + python-version: ["3.9", "3.10", "3.11", "3.12"] + name: Tests (windows_latest / Python ${{ matrix.python-version }}) steps: - name: Check out PyBaMM repository uses: actions/checkout@v4 - - name: Install Linux system dependencies - if: matrix.os == 'ubuntu-latest' - run: | - sudo apt-get update - sudo apt-get install gfortran gcc graphviz pandoc libopenblas-dev texlive-latex-extra dvipng + - name: Install Windows system dependencies + run: choco install graphviz --version=8.0.5 + + - name: Set up Python ${{ matrix.python-version }} + id: setup-python + uses: actions/setup-python@v5 + with: + python-version: ${{ matrix.python-version }} + cache: 'pip' + + - name: Install nox and tomlkit + run: python -m pip install nox tomlkit + + - name: Run unit tests for windows-latest with Python ${{ matrix.python-version }} + run: python -m nox -s unit + + - name: Run integration tests for windows-latest with Python ${{ matrix.python-version }} + run: python -m nox -s integration + + run_macos_unit_integration_tests: + needs: style + runs-on: ${{ matrix.os }} + env: + PYBAMM_IDAKLU_EXPR_CASADI: ON + PYBAMM_IDAKLU_EXPR_IREE: ON + strategy: + fail-fast: false + matrix: + os: [macos-12, macos-14] + python-version: ["3.9", "3.10", "3.11", "3.12"] + name: Tests (${{ matrix.os }} / Python ${{ matrix.python-version }}) + + steps: + - name: Check out PyBaMM repository + uses: actions/checkout@v4 - name: Install macOS system dependencies - if: matrix.os == 'macos-12' || matrix.os == 'macos-14' env: HOMEBREW_NO_INSTALL_CLEANUP: 1 HOMEBREW_NO_AUTO_UPDATE: 1 @@ -58,48 +101,110 @@ jobs: # sometimes gfortran cannot be found, so reinstall gcc just to be sure run: | brew analytics off - brew install graphviz libomp + brew install graphviz libomp openblas brew reinstall gcc - - name: Install Windows system dependencies - if: matrix.os == 'windows-latest' - run: choco install graphviz --version=8.0.5 - - name: Set up Python ${{ matrix.python-version }} + id: setup-python uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} + cache: 'pip' - name: Install nox and tomlkit run: python -m pip install nox tomlkit - - name: Install SuiteSparse and SUNDIALS on GNU/Linux and macOS + - name: Cache pybamm-requires nox environment for macOS + uses: actions/cache@v4 + with: + path: | + # Headers and dynamic library files for SuiteSparse and SUNDIALS + ${{ github.workspace }}/install_KLU_Sundials/ + key: nox-${{ matrix.os }}-pybamm-requires-${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('**/install_KLU_Sundials.py', '**/noxfile.py', '**/test_on_push.yml') }} + + - name: Install SuiteSparse and SUNDIALS on macOS timeout-minutes: 10 - if: matrix.os != 'windows-latest' run: python -m nox -s pybamm-requires - name: Run unit tests for ${{ matrix.os }} with Python ${{ matrix.python-version }} - if: matrix.os != 'ubuntu-latest' || matrix.python-version != '3.12' run: python -m nox -s unit - - name: Run coverage tests for ${{ matrix.os }} with Python ${{ matrix.python-version }} - if: matrix.os == 'ubuntu-latest' && matrix.python-version == '3.12' + - name: Run integration tests for ${{ matrix.os }} with Python ${{ matrix.python-version }} + run: python -m nox -s integration + + run_linux_unit_integration_coverage_tests: + needs: style + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + python-version: ["3.9", "3.10", "3.11", "3.12"] + name: Tests (ubuntu-latest / Python ${{ matrix.python-version }}) + + steps: + - name: Check out PyBaMM repository + uses: actions/checkout@v4 + + - name: Install Linux system dependencies + uses: awalsh128/cache-apt-pkgs-action@v1.4.2 + with: + packages: gfortran gcc graphviz pandoc + execute_install_scripts: true + + # dot -c is for registering graphviz fonts and plugins + - name: Install OpenBLAS and TeXLive for Linux + run: | + sudo apt-get update + sudo dot -c + sudo apt-get install libopenblas-dev texlive-latex-extra dvipng + + - name: Set up Python ${{ matrix.python-version }} + id: setup-python + uses: actions/setup-python@v5 + with: + python-version: ${{ matrix.python-version }} + cache: 'pip' + + - name: Install nox and tomlkit + run: python -m pip install nox tomlkit + + - name: Cache pybamm-requires nox environment for GNU/Linux + uses: actions/cache@v4 + with: + path: | + # Headers and dynamic library files for SuiteSparse and SUNDIALS + ${{ github.workspace }}/install_KLU_Sundials/ + key: nox-ubuntu-latest-pybamm-requires-${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('**/install_KLU_Sundials.py', '**/noxfile.py', '**/test_on_push.yml') }} + + - name: Install SuiteSparse and SUNDIALS on GNU/Linux + timeout-minutes: 10 + run: python -m nox -s pybamm-requires + + - name: Run unit tests for GNU/Linux with Python ${{ matrix.python-version }} + if: matrix.python-version != '3.12' + run: python -m nox -s unit + + - name: Run coverage tests for GNU/Linux with Python ${{ matrix.python-version }} + if: matrix.python-version == '3.12' run: python -m nox -s coverage - name: Upload coverage report - if: matrix.os == 'ubuntu-latest' && matrix.python-version == '3.12' + if: matrix.python-version == '3.12' uses: codecov/codecov-action@v4.5.0 with: token: ${{ secrets.CODECOV_TOKEN }} - - name: Run integration tests for ${{ matrix.os }} with Python ${{ matrix.python-version }} + - name: Run integration tests for GNU/Linux with Python ${{ matrix.python-version }} run: python -m nox -s integration # Skips IDAKLU module compilation for speedups, which is already tested in other jobs. run_doctests: - runs-on: ubuntu-latest + needs: style env: BUILD_IDAKLU: OFF + runs-on: ubuntu-latest + strategy: + fail-fast: false name: Doctests (ubuntu-latest / Python 3.11) steps: @@ -109,14 +214,24 @@ jobs: fetch-depth: 0 - name: Install Linux system dependencies + uses: awalsh128/cache-apt-pkgs-action@v1.4.2 + with: + packages: graphviz pandoc + execute_install_scripts: true + + # dot -c is for registering graphviz fonts and plugins + - name: Install TeXLive for Linux run: | sudo apt-get update - sudo apt-get install graphviz pandoc texlive-latex-extra dvipng + sudo dot -c + sudo apt-get install texlive-latex-extra dvipng - name: Set up Python + id: setup-python uses: actions/setup-python@v5 with: python-version: 3.11 + cache: 'pip' - name: Install nox and tomlkit run: python -m pip install nox tomlkit @@ -128,7 +243,10 @@ jobs: run: python -m nox -s docs run_example_tests: + needs: style runs-on: ubuntu-latest + strategy: + fail-fast: false name: Example notebooks (ubuntu-latest / Python 3.12) steps: @@ -136,18 +254,36 @@ jobs: uses: actions/checkout@v4 - name: Install Linux system dependencies + uses: awalsh128/cache-apt-pkgs-action@v1.4.2 + with: + packages: gfortran gcc graphviz pandoc + execute_install_scripts: true + + # dot -c is for registering graphviz fonts and plugins + - name: Install OpenBLAS and TeXLive for Linux run: | sudo apt-get update - sudo apt-get install gfortran gcc graphviz pandoc libopenblas-dev texlive-latex-extra dvipng + sudo dot -c + sudo apt-get install libopenblas-dev texlive-latex-extra dvipng - name: Set up Python 3.12 + id: setup-python uses: actions/setup-python@v5 with: python-version: 3.12 + cache: 'pip' - name: Install nox and tomlkit run: python -m pip install nox tomlkit + - name: Cache pybamm-requires nox environment for GNU/Linux + uses: actions/cache@v4 + with: + path: | + # Headers and dynamic library files for SuiteSparse and SUNDIALS + ${{ github.workspace }}/sundials_KLU_libs/ + key: nox-ubuntu-latest-pybamm-requires-${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('**/install_KLU_Sundials.py', '**/noxfile.py', '**/test_on_push.yml') }} + - name: Install SuiteSparse and SUNDIALS on GNU/Linux timeout-minutes: 10 run: python -m nox -s pybamm-requires @@ -156,9 +292,10 @@ jobs: run: python -m nox -s examples run_scripts_tests: + needs: style runs-on: ubuntu-latest - env: - BUILD_IDAKLU: OFF + strategy: + fail-fast: false name: Example scripts (ubuntu-latest / Python 3.12) steps: @@ -166,18 +303,36 @@ jobs: uses: actions/checkout@v4 - name: Install Linux system dependencies + uses: awalsh128/cache-apt-pkgs-action@v1.4.2 + with: + packages: gfortran gcc graphviz + execute_install_scripts: true + + # dot -c is for registering graphviz fonts and plugins + - name: Install OpenBLAS and TeXLive for Linux run: | sudo apt-get update - sudo apt install gfortran gcc graphviz libopenblas-dev texlive-latex-extra dvipng + sudo dot -c + sudo apt-get install libopenblas-dev texlive-latex-extra dvipng - name: Set up Python 3.12 + id: setup-python uses: actions/setup-python@v5 with: python-version: 3.12 + cache: 'pip' - name: Install nox and tomlkit run: python -m pip install nox tomlkit + - name: Cache pybamm-requires nox environment for GNU/Linux + uses: actions/cache@v4 + with: + path: | + # Headers and dynamic library files for SuiteSparse and SUNDIALS + ${{ github.workspace }}/sundials_KLU_libs/ + key: nox-${{ matrix.os }}-pybamm-requires-${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('**/install_KLU_Sundials.py', '**/noxfile.py', '**/test_on_push.yml') }} + - name: Install SuiteSparse and SUNDIALS on GNU/Linux timeout-minutes: 10 run: python -m nox -s pybamm-requires diff --git a/.github/workflows/test_on_push.yml b/.github/workflows/test_on_push.yml index 51a5df310d..383f030a90 100644 --- a/.github/workflows/test_on_push.yml +++ b/.github/workflows/test_on_push.yml @@ -332,117 +332,3 @@ jobs: - name: Run example scripts tests for GNU/Linux with Python 3.12 run: python -m nox -s scripts - - # run_unit_integration_and_coverage_tests: - # needs: style - # runs-on: ${{ matrix.os }} - # strategy: - # fail-fast: false - # matrix: - # os: [ubuntu-latest, macos-12, macos-14, windows-latest] - # python-version: ["3.9", "3.10", "3.11", "3.12"] - # name: Tests (${{ matrix.os }} / Python ${{ matrix.python-version }}) - - # steps: - # - name: Check out PyBaMM repository - # uses: actions/checkout@v4 - - # - name: Install Linux system dependencies - # uses: awalsh128/cache-apt-pkgs-action@v1.4.2 - # if: matrix.os == 'ubuntu-latest' - # with: - # packages: gfortran gcc graphviz pandoc - # execute_install_scripts: true - - # # dot -c is for registering graphviz fonts and plugins - # - name: Install OpenBLAS and TeXLive for Linux - # if: matrix.os == 'ubuntu-latest' - # run: | - # sudo apt-get update - # sudo dot -c - # sudo apt-get install libopenblas-dev texlive-latex-extra dvipng - - # - name: Install macOS system dependencies - # if: matrix.os == 'macos-12' || matrix.os == 'macos-14' - # env: - # HOMEBREW_NO_INSTALL_CLEANUP: 1 - # HOMEBREW_NO_AUTO_UPDATE: 1 - # HOMEBREW_NO_COLOR: 1 - # # Speed up CI - # NONINTERACTIVE: 1 - # # sometimes gfortran cannot be found, so reinstall gcc just to be sure - # run: | - # brew analytics off - # brew install graphviz libomp - # brew reinstall gcc - - # - name: Install Windows system dependencies - # if: matrix.os == 'windows-latest' - # run: choco install graphviz - - # - name: Set Windows Environment Variables - # if: matrix.os == 'windows-latest' - # run: | - # echo "PYBAMM_USE_VCPKG=ON" >> $GITHUB_ENV - # echo "VCPKG_ROOT_DIR=C:\vcpkg" >> $GITHUB_ENV - # echo "VCPKG_DEFAULT_TRIPLET=x64-windows-static-md" >> $GITHUB_ENV - # echo "VCPKG_FEATURE_FLAGS=manifests,registries" >> $GITHUB_ENV - - # - name: Set up Python ${{ matrix.python-version }} - # id: setup-python - # uses: actions/setup-python@v5 - # with: - # python-version: ${{ matrix.python-version }} - # cache: 'pip' - - # - name: Install nox and tomlkit - # run: python -m pip install nox tomlkit - - # - name: Install vcpkg on Windows - # if: matrix.os == 'windows-latest' - # run: | - # cd C:\ - # rm -r -fo 'C:\vcpkg' - # git clone https://github.com/microsoft/vcpkg - # cd vcpkg - # .\bootstrap-vcpkg.bat - - # - name: Cache packages installed through vcpkg on Windows - # if: matrix.os == 'windows-latest' - # uses: actions/cache@v4 - # env: - # cache-name: vckpg_binary_cache - # with: - # path: C:\Users\runneradmin\AppData\Local\vcpkg\archives - # key: ${{ runner.os }}-build-VS2022-${{ env.cache-name }}-${{ hashFiles('vcpkg*.json') }} - - # - name: Cache pybamm-requires nox environment for GNU/Linux and macOS - # uses: actions/cache@v4 - # if: matrix.os != 'windows-latest' - # with: - # path: | - # # Headers and dynamic library files for SuiteSparse and SUNDIALS - # ${{ github.workspace }}/install_KLU_Sundials/ - # key: nox-${{ matrix.os }}-pybamm-requires-${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('**/install_KLU_Sundials.py', '**/noxfile.py', '**/test_on_push.yml') }} - - # - name: Install SuiteSparse and SUNDIALS on GNU/Linux and macOS - # timeout-minutes: 10 - # if: matrix.os != 'windows-latest' - # run: python -m nox -s pybamm-requires - - # - name: Run unit tests for ${{ matrix.os }} with Python ${{ matrix.python-version }} - # if: matrix.os != 'ubuntu-latest' || matrix.python-version != '3.12' - # run: python -m nox -s unit - - # - name: Run coverage tests for ${{ matrix.os }} with Python ${{ matrix.python-version }} - # if: matrix.os == 'ubuntu-latest' && matrix.python-version == '3.12' - # run: python -m nox -s coverage - - # - name: Upload coverage report - # if: matrix.os == 'ubuntu-latest' && matrix.python-version == '3.12' - # uses: codecov/codecov-action@v4.5.0 - # with: - # token: ${{ secrets.CODECOV_TOKEN }} - - # - name: Run integration tests for ${{ matrix.os }} with Python ${{ matrix.python-version }} - # run: python -m nox -s integration From 377b4b79ac86d2a4c430aa5e18154e546b376e6b Mon Sep 17 00:00:00 2001 From: cringeyburger Date: Tue, 27 Aug 2024 02:32:36 +0530 Subject: [PATCH 42/61] feat: remove images and add `sundials_KLU_libs` in `.gitignore`, skip `parameter_sets` doctest, remove extra `sys` import, update `pyproject.toml` and docs --- .gitignore | 5 +---- .../user_guide/installation/install-from-source.rst | 10 +++------- pyproject.toml | 2 +- src/pybamm/parameters/parameter_sets.py | 3 +-- tests/unit/test_solvers/test_idaklu_solver.py | 1 - 5 files changed, 6 insertions(+), 15 deletions(-) diff --git a/.gitignore b/.gitignore index 61d7150ef2..0340df11bc 100644 --- a/.gitignore +++ b/.gitignore @@ -44,9 +44,6 @@ input/* # keep images required by notebooks !docs/examples/notebooks/creating_models/SEI.png -# keep images required for installation guide -!docs/source/user_guide/installation/images-windows-source/*.png - # simulation outputs out/ config.py @@ -87,7 +84,7 @@ sundials-* SuiteSparse-* build_sundials KLU_module_deps -sundials_KLU_libs/include +sundials_KLU_libs/ download_KLU_Sundials/ # ignore Python Egg Info Directories diff --git a/docs/source/user_guide/installation/install-from-source.rst b/docs/source/user_guide/installation/install-from-source.rst index 55c5ca5a2d..0226a30cb2 100644 --- a/docs/source/user_guide/installation/install-from-source.rst +++ b/docs/source/user_guide/installation/install-from-source.rst @@ -122,11 +122,10 @@ Prerequisites Installing the build-time requirements -------------------------------------- -.. tab:: GNU/Linux and MacOS +PyBaMM comes with a DAE solver based on the IDA solver provided by the SUNDIALS library. To use this solver, you must ensure you have the necessary SUNDIALS components installed on your system. +To install SUNDIALS, you will need to install the following components: - PyBaMM comes with a DAE solver based on the IDA solver provided by the SUNDIALS library. - To use this solver, you must make sure that you have the necessary SUNDIALS components - installed on your system. +.. tab:: GNU/Linux and MacOS .. code:: bash @@ -162,9 +161,6 @@ Installing the build-time requirements .. tab:: Windows - PyBaMM comes with a DAE solver based on the IDA solver provided by the SUNDIALS library. To use this solver, you must ensure you have the necessary SUNDIALS components installed on your system. - To install SUNDIALS, you will need to install the following components: - VCPKG - VCPKG automatically installs the required libraries for you during the build process. To install VCPKG, follow the instructions in `Microsoft's official documentation `_. diff --git a/pyproject.toml b/pyproject.toml index 56faf86848..45fcea2d1c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -157,7 +157,7 @@ ECM_Example = "pybamm.input.parameters.ecm.example_set:get_parameter_values" MSMR_Example = "pybamm.input.parameters.lithium_ion.MSMR_example_set:get_parameter_values" [tool.scikit-build] -minimum-version = "0.10" +minimum-version = "build-system.requires" build-dir = "build/{wheel_tag}" build.verbose = true diff --git a/src/pybamm/parameters/parameter_sets.py b/src/pybamm/parameters/parameter_sets.py index ebc8b83fa8..9f5c5f142c 100644 --- a/src/pybamm/parameters/parameter_sets.py +++ b/src/pybamm/parameters/parameter_sets.py @@ -17,8 +17,7 @@ class ParameterSets(Mapping): >>> import pybamm - >>> list(pybamm.parameter_sets) - ['Sulzer2019', 'Ai2020', 'Chen2020', 'Chen2020_composite', 'Ecker2015', 'Ecker2015_graphite_halfcell', 'Marquis2019', 'Mohtat2020', 'NCA_Kim2011', 'OKane2022', 'OKane2022_graphite_SiOx_halfcell', 'ORegan2022', 'Prada2013', 'Ramadass2004', 'Xu2019', 'ECM_Example', 'MSMR_Example'] + >>> list(pybamm.parameter_sets) # doctest: +SKIP Get the docstring for a parameter set: diff --git a/tests/unit/test_solvers/test_idaklu_solver.py b/tests/unit/test_solvers/test_idaklu_solver.py index d2df99bf6e..e70846bb16 100644 --- a/tests/unit/test_solvers/test_idaklu_solver.py +++ b/tests/unit/test_solvers/test_idaklu_solver.py @@ -1101,7 +1101,6 @@ def test_interpolate_time_step_start_offset(self): if __name__ == "__main__": print("Add -v for more debug output") - import sys if "-v" in sys.argv: debug = True From 5fba7538d387693f5402b4e6ae29185c1db56a6b Mon Sep 17 00:00:00 2001 From: cringeyburger Date: Tue, 27 Aug 2024 03:27:06 +0530 Subject: [PATCH 43/61] feat: enable IDAKLU in Windows tests --- .github/workflows/test_on_push.yml | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/.github/workflows/test_on_push.yml b/.github/workflows/test_on_push.yml index 383f030a90..c1c4a14549 100644 --- a/.github/workflows/test_on_push.yml +++ b/.github/workflows/test_on_push.yml @@ -36,7 +36,11 @@ jobs: run_windows_unit_integration_tests: needs: style env: - BUILD_IDAKLU: OFF + PYBAMM_USE_VCPKG: ON + VCPKG_ROOT_DIR: C:\vcpkg + VCPKG_DEFAULT_TRIPLET: x64-windows-static-md + VCPKG_FEATURE_FLAGS: manifests,registries + CMAKE_GENERATOR: "Visual Studio 17 2022" runs-on: windows-latest strategy: fail-fast: false @@ -58,6 +62,22 @@ jobs: python-version: ${{ matrix.python-version }} cache: 'pip' + - name: Cache packages installed through vcpkg on Windows + uses: actions/cache@v4 + env: + cache-name: vckpg_binary_cache + with: + path: C:\Users\runneradmin\AppData\Local\vcpkg\archives + key: ${{ runner.os }}-build-VS2022-${{ env.cache-name }}-${{ hashFiles('vcpkg*.json') }} + + - name: Install vcpkg on Windows + run: | + cd C:\ + rm -r -fo 'C:\vcpkg' + git clone https://github.com/microsoft/vcpkg + cd vcpkg + .\bootstrap-vcpkg.bat + - name: Install nox and tomlkit run: python -m pip install nox tomlkit From c561ebf7882570824db1f003312ae3f302895119 Mon Sep 17 00:00:00 2001 From: cringeyburger Date: Tue, 27 Aug 2024 18:27:06 +0530 Subject: [PATCH 44/61] fix: install the solver in the project `src/pybamm/solvers` and not `site-packages` --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 73db2e2ca7..90a72a896d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -201,4 +201,4 @@ if(${PYBAMM_IDAKLU_EXPR_IREE} STREQUAL "ON" ) target_link_libraries(idaklu PRIVATE iree_runtime_runtime) endif() -install(TARGETS idaklu DESTINATION "pybamm/solvers") +install(TARGETS idaklu DESTINATION "${CMAKE_CURRENT_SOURCE_DIR}/src/pybamm/solvers") From 94d4715a40708e08e7d22cc6894d6624e8af13a3 Mon Sep 17 00:00:00 2001 From: cringeyburger Date: Tue, 27 Aug 2024 19:24:51 +0530 Subject: [PATCH 45/61] fix: set `CIBW_BUILD_FRONTEND` with no isolation --- .github/workflows/publish_pypi.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/publish_pypi.yml b/.github/workflows/publish_pypi.yml index ac12d49ae4..0375af0a5b 100644 --- a/.github/workflows/publish_pypi.yml +++ b/.github/workflows/publish_pypi.yml @@ -85,6 +85,7 @@ jobs: CMAKE_GENERATOR_PLATFORM=x64 CMAKE_BUILD_PARALLEL_LEVEL=${{ steps.get_num_cores.outputs.count }} CIBW_ARCHS: AMD64 + CIBW_BUILD_FRONTEND: "build; args: --no-isolation" CIBW_BEFORE_BUILD: python -m pip install scikit-build-core delvewheel pybind11 CIBW_REPAIR_WHEEL_COMMAND: delvewheel repair -w {dest_dir} {wheel} CIBW_TEST_EXTRAS: "all,dev,jax" @@ -117,6 +118,7 @@ jobs: output-dir: wheelhouse env: CIBW_ARCHS_LINUX: x86_64 + CIBW_BUILD_FRONTEND: "build; args: --no-isolation" CIBW_BEFORE_BUILD_LINUX: | set -e -x yum update -y @@ -243,6 +245,7 @@ jobs: python scripts/install_KLU_Sundials.py CIBW_ARCHS_MACOS: auto + CIBW_BUILD_FRONTEND: "build; args: --no-isolation" CIBW_BEFORE_BUILD: | python -m pip install cmake casadi scikit-build-core delocate pybind11 CIBW_REPAIR_WHEEL_COMMAND: | From 6d9cb3d5b0a1338ba483ff60363bc2a723551442 Mon Sep 17 00:00:00 2001 From: cringeyburger Date: Tue, 27 Aug 2024 19:30:07 +0530 Subject: [PATCH 46/61] fix: add required `ninja` dependency --- .github/workflows/publish_pypi.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/publish_pypi.yml b/.github/workflows/publish_pypi.yml index 0375af0a5b..3a6dc7af71 100644 --- a/.github/workflows/publish_pypi.yml +++ b/.github/workflows/publish_pypi.yml @@ -86,7 +86,7 @@ jobs: CMAKE_BUILD_PARALLEL_LEVEL=${{ steps.get_num_cores.outputs.count }} CIBW_ARCHS: AMD64 CIBW_BUILD_FRONTEND: "build; args: --no-isolation" - CIBW_BEFORE_BUILD: python -m pip install scikit-build-core delvewheel pybind11 + CIBW_BEFORE_BUILD: python -m pip install scikit-build-core delvewheel pybind11 ninja CIBW_REPAIR_WHEEL_COMMAND: delvewheel repair -w {dest_dir} {wheel} CIBW_TEST_EXTRAS: "all,dev,jax" CIBW_TEST_COMMAND: | @@ -124,7 +124,7 @@ jobs: yum update -y yum -y install openblas-devel python scripts/install_KLU_Sundials.py - python -m pip install cmake casadi scikit-build-core pybind11 + python -m pip install cmake casadi scikit-build-core pybind11 ninja CIBW_REPAIR_WHEEL_COMMAND_LINUX: auditwheel repair -w {dest_dir} {wheel} CIBW_TEST_EXTRAS: "all,dev,jax" CIBW_TEST_COMMAND: | @@ -247,7 +247,7 @@ jobs: CIBW_ARCHS_MACOS: auto CIBW_BUILD_FRONTEND: "build; args: --no-isolation" CIBW_BEFORE_BUILD: | - python -m pip install cmake casadi scikit-build-core delocate pybind11 + python -m pip install cmake casadi scikit-build-core delocate pybind11 ninja CIBW_REPAIR_WHEEL_COMMAND: | if [[ $(uname -m) == "x86_64" ]]; then delocate-listdeps {wheel} && delocate-wheel -v -w {dest_dir} {wheel} From e164d68bfb6634ad950cb531fd0f9937002e0a1a Mon Sep 17 00:00:00 2001 From: cringeyburger Date: Tue, 27 Aug 2024 20:34:59 +0530 Subject: [PATCH 47/61] fix: remove `CIBW_BUILD_FRONTEND` and add conditional in installation --- .github/workflows/publish_pypi.yml | 9 +++------ CMakeLists.txt | 6 +++++- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/.github/workflows/publish_pypi.yml b/.github/workflows/publish_pypi.yml index 3a6dc7af71..ac12d49ae4 100644 --- a/.github/workflows/publish_pypi.yml +++ b/.github/workflows/publish_pypi.yml @@ -85,8 +85,7 @@ jobs: CMAKE_GENERATOR_PLATFORM=x64 CMAKE_BUILD_PARALLEL_LEVEL=${{ steps.get_num_cores.outputs.count }} CIBW_ARCHS: AMD64 - CIBW_BUILD_FRONTEND: "build; args: --no-isolation" - CIBW_BEFORE_BUILD: python -m pip install scikit-build-core delvewheel pybind11 ninja + CIBW_BEFORE_BUILD: python -m pip install scikit-build-core delvewheel pybind11 CIBW_REPAIR_WHEEL_COMMAND: delvewheel repair -w {dest_dir} {wheel} CIBW_TEST_EXTRAS: "all,dev,jax" CIBW_TEST_COMMAND: | @@ -118,13 +117,12 @@ jobs: output-dir: wheelhouse env: CIBW_ARCHS_LINUX: x86_64 - CIBW_BUILD_FRONTEND: "build; args: --no-isolation" CIBW_BEFORE_BUILD_LINUX: | set -e -x yum update -y yum -y install openblas-devel python scripts/install_KLU_Sundials.py - python -m pip install cmake casadi scikit-build-core pybind11 ninja + python -m pip install cmake casadi scikit-build-core pybind11 CIBW_REPAIR_WHEEL_COMMAND_LINUX: auditwheel repair -w {dest_dir} {wheel} CIBW_TEST_EXTRAS: "all,dev,jax" CIBW_TEST_COMMAND: | @@ -245,9 +243,8 @@ jobs: python scripts/install_KLU_Sundials.py CIBW_ARCHS_MACOS: auto - CIBW_BUILD_FRONTEND: "build; args: --no-isolation" CIBW_BEFORE_BUILD: | - python -m pip install cmake casadi scikit-build-core delocate pybind11 ninja + python -m pip install cmake casadi scikit-build-core delocate pybind11 CIBW_REPAIR_WHEEL_COMMAND: | if [[ $(uname -m) == "x86_64" ]]; then delocate-listdeps {wheel} && delocate-wheel -v -w {dest_dir} {wheel} diff --git a/CMakeLists.txt b/CMakeLists.txt index 90a72a896d..758bf9b116 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -201,4 +201,8 @@ if(${PYBAMM_IDAKLU_EXPR_IREE} STREQUAL "ON" ) target_link_libraries(idaklu PRIVATE iree_runtime_runtime) endif() -install(TARGETS idaklu DESTINATION "${CMAKE_CURRENT_SOURCE_DIR}/src/pybamm/solvers") +if(DEFINED ENV{CIBUILDWHEEL}) + install(TARGETS idaklu DESTINATION "pybamm/solvers") +else() + install(TARGETS idaklu DESTINATION "${CMAKE_CURRENT_SOURCE_DIR}/src/pybamm/solvers") +endif() From b74921efa1cd731ac74400e3cd7a4ca7cb6793df Mon Sep 17 00:00:00 2001 From: cringeyburger Date: Wed, 28 Aug 2024 01:09:34 +0530 Subject: [PATCH 48/61] feat: resolve conversations --- .github/workflows/benchmark_on_push.yml | 11 +- .github/workflows/docker.yml | 17 ++- .../workflows/run_benchmarks_over_history.yml | 4 +- .github/workflows/run_periodic_tests.yml | 106 +++++------------- .github/workflows/test_on_push.yml | 37 +++--- .github/workflows/update_version.yml | 1 - CMakeLists.txt | 3 - asv.conf.json | 2 +- .../installation/install-from-source.rst | 14 +-- noxfile.py | 61 +++++++--- tests/unit/test_solvers/test_idaklu_jax.py | 6 + 11 files changed, 117 insertions(+), 145 deletions(-) diff --git a/.github/workflows/benchmark_on_push.yml b/.github/workflows/benchmark_on_push.yml index 01cbb6661b..8350036dbc 100644 --- a/.github/workflows/benchmark_on_push.yml +++ b/.github/workflows/benchmark_on_push.yml @@ -2,8 +2,6 @@ name: Run benchmarks on push on: push: branches: [main, develop] - # TODO: Remove before PR merge - workflow_dispatch: concurrency: # Cancel intermediate builds always @@ -33,7 +31,6 @@ jobs: - name: Install SuiteSparse and SUNDIALS run: python scripts/install_KLU_Sundials.py - # TODO: Set to upstream before PR merge - name: Fetch base branch run: | # This workflow also runs for merge commits @@ -42,16 +39,16 @@ jobs: current_branch=$(git rev-parse --abbrev-ref HEAD) # This workflow should also run on forks; hence, # we should fetch the upstream develop branch. - git remote add upstream https://github.com/cringeyburger/PyBaMM/ - if [ $current_branch != "migrate-to-sbc" ]; then - git fetch upstream migrate-to-sbc:migrate-to-sbc + git remote add upstream https://github.com/pybamm-team/PyBaMM/ + if [ $current_branch != "develop" ]; then + git fetch upstream develop:develop fi - name: Run benchmarks run: | asv machine --machine "GitHubRunner" # Get IDs of branch and PR commits - BASE_COMMIT=$(git rev-parse migrate-to-sbc) + BASE_COMMIT=$(git rev-parse develop) HEAD_COMMIT=$(git rev-parse HEAD) echo $BASE_COMMIT | tee commits_to_compare.txt echo $HEAD_COMMIT | tee -a commits_to_compare.txt diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 2847f0071d..f76b67829c 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -9,8 +9,7 @@ on: jobs: build_docker_image: # This workflow is only of value to PyBaMM and would always be skipped in forks - # TODO: Reset to upstream before PR merge - # if: github.repository_owner == 'pybamm-team' + if: github.repository_owner == 'pybamm-team' name: Build image runs-on: ubuntu-latest @@ -24,12 +23,11 @@ jobs: - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - # TODO: Reset before PR merge - # - name: Login to Docker Hub - # uses: docker/login-action@v3 - # with: - # username: ${{ secrets.DOCKERHUB_USERNAME }} - # password: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Login to Docker Hub + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Build and push Docker image to Docker Hub uses: docker/build-push-action@v6 @@ -37,8 +35,7 @@ jobs: context: . file: scripts/Dockerfile tags: pybamm/pybamm:latest - # TODO: Set it to true before PR merge - push: false + push: true platforms: linux/amd64, linux/arm64 - name: List built image(s) diff --git a/.github/workflows/run_benchmarks_over_history.yml b/.github/workflows/run_benchmarks_over_history.yml index 46cedbda5f..d01564b210 100644 --- a/.github/workflows/run_benchmarks_over_history.yml +++ b/.github/workflows/run_benchmarks_over_history.yml @@ -28,8 +28,8 @@ jobs: with: python-version: 3.12 - - name: Install nox, asv and tomlkit - run: pip install -U pip nox asv tomlkit + - name: Install nox and asv + run: pip install -U pip nox asv - name: Fetch develop branch # Not required when worklow trigerred diff --git a/.github/workflows/run_periodic_tests.yml b/.github/workflows/run_periodic_tests.yml index 9c6799ea00..2327aed35b 100644 --- a/.github/workflows/run_periodic_tests.yml +++ b/.github/workflows/run_periodic_tests.yml @@ -43,13 +43,17 @@ jobs: run_windows_unit_integration_tests: needs: style env: - BUILD_IDAKLU: OFF + PYBAMM_USE_VCPKG: ON + VCPKG_ROOT_DIR: C:\vcpkg + VCPKG_DEFAULT_TRIPLET: x64-windows-static-md + VCPKG_FEATURE_FLAGS: manifests,registries + CMAKE_GENERATOR: "Visual Studio 17 2022" runs-on: windows-latest strategy: fail-fast: false matrix: python-version: ["3.9", "3.10", "3.11", "3.12"] - name: Tests (windows_latest / Python ${{ matrix.python-version }}) + name: Tests (windows-latest / Python ${{ matrix.python-version }}) steps: - name: Check out PyBaMM repository @@ -59,14 +63,20 @@ jobs: run: choco install graphviz --version=8.0.5 - name: Set up Python ${{ matrix.python-version }} - id: setup-python uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} - cache: 'pip' - - name: Install nox and tomlkit - run: python -m pip install nox tomlkit + - name: Install vcpkg on Windows + run: | + cd C:\ + rm -r -fo 'C:\vcpkg' + git clone https://github.com/microsoft/vcpkg + cd vcpkg + .\bootstrap-vcpkg.bat + + - name: Install nox + run: python -m pip install nox - name: Run unit tests for windows-latest with Python ${{ matrix.python-version }} run: python -m nox -s unit @@ -101,26 +111,16 @@ jobs: # sometimes gfortran cannot be found, so reinstall gcc just to be sure run: | brew analytics off - brew install graphviz libomp openblas + brew install graphviz libomp brew reinstall gcc - name: Set up Python ${{ matrix.python-version }} - id: setup-python uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} - cache: 'pip' - - - name: Install nox and tomlkit - run: python -m pip install nox tomlkit - - name: Cache pybamm-requires nox environment for macOS - uses: actions/cache@v4 - with: - path: | - # Headers and dynamic library files for SuiteSparse and SUNDIALS - ${{ github.workspace }}/install_KLU_Sundials/ - key: nox-${{ matrix.os }}-pybamm-requires-${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('**/install_KLU_Sundials.py', '**/noxfile.py', '**/test_on_push.yml') }} + - name: Install nox + run: python -m pip install nox - name: Install SuiteSparse and SUNDIALS on macOS timeout-minutes: 10 @@ -146,10 +146,7 @@ jobs: uses: actions/checkout@v4 - name: Install Linux system dependencies - uses: awalsh128/cache-apt-pkgs-action@v1.4.2 - with: - packages: gfortran gcc graphviz pandoc - execute_install_scripts: true + run: sudo apt install gfortran gcc graphviz pandoc # dot -c is for registering graphviz fonts and plugins - name: Install OpenBLAS and TeXLive for Linux @@ -159,22 +156,12 @@ jobs: sudo apt-get install libopenblas-dev texlive-latex-extra dvipng - name: Set up Python ${{ matrix.python-version }} - id: setup-python uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} - cache: 'pip' - - name: Install nox and tomlkit - run: python -m pip install nox tomlkit - - - name: Cache pybamm-requires nox environment for GNU/Linux - uses: actions/cache@v4 - with: - path: | - # Headers and dynamic library files for SuiteSparse and SUNDIALS - ${{ github.workspace }}/install_KLU_Sundials/ - key: nox-ubuntu-latest-pybamm-requires-${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('**/install_KLU_Sundials.py', '**/noxfile.py', '**/test_on_push.yml') }} + - name: Install nox + run: python -m pip install nox - name: Install SuiteSparse and SUNDIALS on GNU/Linux timeout-minutes: 10 @@ -214,10 +201,7 @@ jobs: fetch-depth: 0 - name: Install Linux system dependencies - uses: awalsh128/cache-apt-pkgs-action@v1.4.2 - with: - packages: graphviz pandoc - execute_install_scripts: true + run: sudo apt install graphviz pandoc # dot -c is for registering graphviz fonts and plugins - name: Install TeXLive for Linux @@ -227,14 +211,12 @@ jobs: sudo apt-get install texlive-latex-extra dvipng - name: Set up Python - id: setup-python uses: actions/setup-python@v5 with: python-version: 3.11 - cache: 'pip' - - name: Install nox and tomlkit - run: python -m pip install nox tomlkit + - name: Install nox + run: python -m pip install nox - name: Install docs dependencies and run doctests for GNU/Linux run: python -m nox -s doctests @@ -254,10 +236,7 @@ jobs: uses: actions/checkout@v4 - name: Install Linux system dependencies - uses: awalsh128/cache-apt-pkgs-action@v1.4.2 - with: - packages: gfortran gcc graphviz pandoc - execute_install_scripts: true + run: sudo apt install gfortran gcc graphviz pandoc # dot -c is for registering graphviz fonts and plugins - name: Install OpenBLAS and TeXLive for Linux @@ -267,22 +246,12 @@ jobs: sudo apt-get install libopenblas-dev texlive-latex-extra dvipng - name: Set up Python 3.12 - id: setup-python uses: actions/setup-python@v5 with: python-version: 3.12 - cache: 'pip' - - name: Install nox and tomlkit - run: python -m pip install nox tomlkit - - - name: Cache pybamm-requires nox environment for GNU/Linux - uses: actions/cache@v4 - with: - path: | - # Headers and dynamic library files for SuiteSparse and SUNDIALS - ${{ github.workspace }}/sundials_KLU_libs/ - key: nox-ubuntu-latest-pybamm-requires-${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('**/install_KLU_Sundials.py', '**/noxfile.py', '**/test_on_push.yml') }} + - name: Install nox + run: python -m pip install nox - name: Install SuiteSparse and SUNDIALS on GNU/Linux timeout-minutes: 10 @@ -303,10 +272,7 @@ jobs: uses: actions/checkout@v4 - name: Install Linux system dependencies - uses: awalsh128/cache-apt-pkgs-action@v1.4.2 - with: - packages: gfortran gcc graphviz - execute_install_scripts: true + run: sudo apt install gfortran gcc graphviz # dot -c is for registering graphviz fonts and plugins - name: Install OpenBLAS and TeXLive for Linux @@ -316,22 +282,12 @@ jobs: sudo apt-get install libopenblas-dev texlive-latex-extra dvipng - name: Set up Python 3.12 - id: setup-python uses: actions/setup-python@v5 with: python-version: 3.12 - cache: 'pip' - - - name: Install nox and tomlkit - run: python -m pip install nox tomlkit - - name: Cache pybamm-requires nox environment for GNU/Linux - uses: actions/cache@v4 - with: - path: | - # Headers and dynamic library files for SuiteSparse and SUNDIALS - ${{ github.workspace }}/sundials_KLU_libs/ - key: nox-${{ matrix.os }}-pybamm-requires-${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('**/install_KLU_Sundials.py', '**/noxfile.py', '**/test_on_push.yml') }} + - name: Install nox + run: python -m pip install nox - name: Install SuiteSparse and SUNDIALS on GNU/Linux timeout-minutes: 10 diff --git a/.github/workflows/test_on_push.yml b/.github/workflows/test_on_push.yml index c1c4a14549..3c6f572408 100644 --- a/.github/workflows/test_on_push.yml +++ b/.github/workflows/test_on_push.yml @@ -1,4 +1,3 @@ - name: PyBaMM on: @@ -46,7 +45,7 @@ jobs: fail-fast: false matrix: python-version: ["3.9", "3.10", "3.11", "3.12"] - name: Tests (windows_latest / Python ${{ matrix.python-version }}) + name: Tests (windows-latest / Python ${{ matrix.python-version }}) steps: - name: Check out PyBaMM repository @@ -78,8 +77,8 @@ jobs: cd vcpkg .\bootstrap-vcpkg.bat - - name: Install nox and tomlkit - run: python -m pip install nox tomlkit + - name: Install nox + run: python -m pip install nox - name: Run unit tests for windows-latest with Python ${{ matrix.python-version }} run: python -m nox -s unit @@ -91,8 +90,8 @@ jobs: needs: style runs-on: ${{ matrix.os }} env: - PYBAMM_IDAKLU_EXPR_CASADI: ON - PYBAMM_IDAKLU_EXPR_IREE: ON + PYBAMM_IDAKLU_EXPR_CASADI: ON + PYBAMM_IDAKLU_EXPR_IREE: ON strategy: fail-fast: false matrix: @@ -114,7 +113,7 @@ jobs: # sometimes gfortran cannot be found, so reinstall gcc just to be sure run: | brew analytics off - brew install graphviz libomp openblas + brew install graphviz libomp brew reinstall gcc - name: Set up Python ${{ matrix.python-version }} @@ -124,8 +123,8 @@ jobs: python-version: ${{ matrix.python-version }} cache: 'pip' - - name: Install nox and tomlkit - run: python -m pip install nox tomlkit + - name: Install nox + run: python -m pip install nox - name: Cache pybamm-requires nox environment for macOS uses: actions/cache@v4 @@ -133,6 +132,7 @@ jobs: path: | # Headers and dynamic library files for SuiteSparse and SUNDIALS ${{ github.workspace }}/install_KLU_Sundials/ + ${{ github.workspace }}/sundials_KLU_libs/ key: nox-${{ matrix.os }}-pybamm-requires-${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('**/install_KLU_Sundials.py', '**/noxfile.py', '**/test_on_push.yml') }} - name: Install SuiteSparse and SUNDIALS on macOS @@ -178,8 +178,8 @@ jobs: python-version: ${{ matrix.python-version }} cache: 'pip' - - name: Install nox and tomlkit - run: python -m pip install nox tomlkit + - name: Install nox + run: python -m pip install nox - name: Cache pybamm-requires nox environment for GNU/Linux uses: actions/cache@v4 @@ -187,6 +187,7 @@ jobs: path: | # Headers and dynamic library files for SuiteSparse and SUNDIALS ${{ github.workspace }}/install_KLU_Sundials/ + ${{ github.workspace }}/sundials_KLU_libs/ key: nox-ubuntu-latest-pybamm-requires-${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('**/install_KLU_Sundials.py', '**/noxfile.py', '**/test_on_push.yml') }} - name: Install SuiteSparse and SUNDIALS on GNU/Linux @@ -246,8 +247,8 @@ jobs: python-version: 3.11 cache: 'pip' - - name: Install nox and tomlkit - run: python -m pip install nox tomlkit + - name: Install nox + run: python -m pip install nox - name: Install docs dependencies and run doctests for GNU/Linux run: python -m nox -s doctests @@ -286,14 +287,15 @@ jobs: python-version: 3.12 cache: 'pip' - - name: Install nox and tomlkit - run: python -m pip install nox tomlkit + - name: Install nox + run: python -m pip install nox - name: Cache pybamm-requires nox environment for GNU/Linux uses: actions/cache@v4 with: path: | # Headers and dynamic library files for SuiteSparse and SUNDIALS + ${{ github.workspace }}/install_KLU_Sundials/ ${{ github.workspace }}/sundials_KLU_libs/ key: nox-ubuntu-latest-pybamm-requires-${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('**/install_KLU_Sundials.py', '**/noxfile.py', '**/test_on_push.yml') }} @@ -335,14 +337,15 @@ jobs: python-version: 3.12 cache: 'pip' - - name: Install nox and tomlkit - run: python -m pip install nox tomlkit + - name: Install nox + run: python -m pip install nox - name: Cache pybamm-requires nox environment for GNU/Linux uses: actions/cache@v4 with: path: | # Headers and dynamic library files for SuiteSparse and SUNDIALS + ${{ github.workspace }}/install_KLU_Sundials/ ${{ github.workspace }}/sundials_KLU_libs/ key: nox-${{ matrix.os }}-pybamm-requires-${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('**/install_KLU_Sundials.py', '**/noxfile.py', '**/test_on_push.yml') }} diff --git a/.github/workflows/update_version.yml b/.github/workflows/update_version.yml index 99a81d050d..4816ba5d06 100644 --- a/.github/workflows/update_version.yml +++ b/.github/workflows/update_version.yml @@ -48,7 +48,6 @@ jobs: - name: Install dependencies run: | - pip install scikit-build-core pip install --editable ".[all]" # update all the version strings and add CHANGELOG headings diff --git a/CMakeLists.txt b/CMakeLists.txt index d5bc5ba85f..c982787a69 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -32,9 +32,6 @@ endif() # casadi seems to compile without the newer versions of std::string add_compile_definitions(_GLIBCXX_USE_CXX11_ABI=0) -if(NOT PYBIND11_DIR) - set(PYBIND11_DIR pybind11) -endif() find_package(pybind11 CONFIG REQUIRED) find_package(Python COMPONENTS Interpreter Development.Module REQUIRED) diff --git a/asv.conf.json b/asv.conf.json index cf1a09842d..5705909aa9 100644 --- a/asv.conf.json +++ b/asv.conf.json @@ -32,7 +32,7 @@ // List of branches to benchmark. If not provided, defaults to "master" // (for git) or "default" (for mercurial). - "branches": ["migrate-to-sbc"], // for git + "branches": ["develop"], // for git // "branches": ["default"], // for mercurial // The DVCS being used. If not set, it will be automatically diff --git a/docs/source/user_guide/installation/install-from-source.rst b/docs/source/user_guide/installation/install-from-source.rst index 0226a30cb2..6a8120beac 100644 --- a/docs/source/user_guide/installation/install-from-source.rst +++ b/docs/source/user_guide/installation/install-from-source.rst @@ -277,14 +277,6 @@ Installing PyBaMM Using ``Nox`` (recommended) ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -PyBaMM needs a few build-time dependencies when installing PyBaMM in "editable mode" without build-isolation. `TOML Kit `_, a ``toml`` table parser, automates this process for you. - -To install ``tomlkit`` to your local user account (ensure you are not within a virtual environment), use the following command: - -.. code:: bash - - python -m pip install --user tomlkit - To install PyBaMM, execute the following command .. code:: bash @@ -572,14 +564,14 @@ Troubleshooting **Solution:** This error occurs when there is a delay between installing and downloading SUNDIALS libraries. - 1. Remove the following directories from the PyBaMM directory if they exist: + 3. Remove the following directories from the PyBaMM directory if they exist: a. ``download_KLU_Sundials`` b. ``sundials_KLU_libs`` c. Any custom directory you have set for installation - 2. Re-run the command to install SUNDIALS. - 3. If you are using a custom directory, make sure to set the ``INSTALL_DIR`` environment variable: + 4. Re-run the command to install SUNDIALS. + 5. If you are using a custom directory, make sure to set the ``INSTALL_DIR`` environment variable: .. code:: bash diff --git a/noxfile.py b/noxfile.py index 65ca60df50..b8ef6ddd31 100644 --- a/noxfile.py +++ b/noxfile.py @@ -4,7 +4,6 @@ import warnings import platform from pathlib import Path -import tomlkit # Options to modify nox behaviour @@ -53,6 +52,22 @@ def set_iree_state(): return state +def get_build_dependencies(): + """ + Gets build-time dependencies from `pyproject.toml` specific to platform + """ + build_dependencies = nox.project.load_toml("pyproject.toml")["build-system"][ + "requires" + ] + if sys.platform == "win32": + build_dependencies = [ + dep + for dep in build_dependencies + if not (dep.startswith("casadi") or dep.startswith("cmake")) + ] + return build_dependencies + + project_dir = Path(__file__).parent.resolve() homedir = os.getenv("HOME") libs_install_dir = project_dir / "sundials_KLU_libs" @@ -128,10 +143,13 @@ def run_coverage(session): # Using plugin here since coverage runs unit tests on linux with latest python version. if "CI" in os.environ: session.install("pytest-github-actions-annotate-failures") - session.install("-e", ".[all,dev,jax]", silent=False) + build_dependencies = get_build_dependencies() + session.install(*build_dependencies) + session.install("--no-build-isolation", "-e", ".[all,dev,jax]", silent=False) if PYBAMM_ENV.get("PYBAMM_IDAKLU_EXPR_IREE") == "ON": # See comments in 'dev' session session.install( + "--no-build-isolation", "-e", ".[iree]", "--find-links", @@ -151,14 +169,18 @@ def run_integration(session): and sys.platform == "linux" ): session.install("pytest-github-actions-annotate-failures") - session.install("-e", ".[all,dev,jax]", silent=False) + build_dependencies = get_build_dependencies() + session.install(*build_dependencies) + session.install("--no-build-isolation", "-e", ".[all,dev,jax]", silent=False) session.run("python", "-m", "pytest", "-m", "integration") @nox.session(name="doctests") def run_doctests(session): """Run the doctests and generate the output(s) in the docs/build/ directory.""" - session.install("-e", ".[all,dev,docs]", silent=False) + build_dependencies = get_build_dependencies() + session.install(*build_dependencies) + session.install("--no-build-isolation", "-e", ".[all,dev,docs]", silent=False) session.run( "python", "-m", @@ -172,10 +194,13 @@ def run_doctests(session): def run_unit(session): """Run the unit tests.""" set_environment_variables(PYBAMM_ENV, session=session) - session.install("-e", ".[all,dev,jax]", silent=False) + build_dependencies = get_build_dependencies() + session.install(*build_dependencies) + session.install("--no-build-isolation", "-e", ".[all,dev,jax]", silent=False) if PYBAMM_ENV.get("PYBAMM_IDAKLU_EXPR_IREE") == "ON": # See comments in 'dev' session session.install( + "--no-build-isolation", "-e", ".[iree]", "--find-links", @@ -189,7 +214,9 @@ def run_unit(session): def run_examples(session): """Run the examples tests for Jupyter notebooks.""" set_environment_variables(PYBAMM_ENV, session=session) - session.install("-e", ".[all,dev]", silent=False) + build_dependencies = get_build_dependencies() + session.install(*build_dependencies) + session.install("--no-build-isolation", "-e", ".[all,dev]", silent=False) notebooks_to_test = session.posargs if session.posargs else [] session.run( "pytest", "--nbmake", *notebooks_to_test, "docs/source/examples/", external=True @@ -200,7 +227,9 @@ def run_examples(session): def run_scripts(session): """Run the scripts tests for Python scripts.""" set_environment_variables(PYBAMM_ENV, session=session) - session.install("-e", ".[all,dev]", silent=False) + build_dependencies = get_build_dependencies() + session.install(*build_dependencies) + session.install("--no-build-isolation", "-e", ".[all,dev]", silent=False) session.run("python", "-m", "pytest", "-m", "scripts") @@ -215,16 +244,8 @@ def set_dev(session): else: python = os.fsdecode(VENV_DIR.joinpath("bin/python")) components = ["all", "dev", "jax"] - with open("pyproject.toml", encoding="utf-8") as file: - toml_data = tomlkit.parse(file.read()) - build_dependencies = toml_data.get("build-system").get("requires") - if sys.platform == "win32": - build_dependencies = [ - dep - for dep in build_dependencies - if not (dep.startswith("casadi") or dep.startswith("cmake")) - ] args = [] + build_dependencies = get_build_dependencies() if PYBAMM_ENV.get("PYBAMM_IDAKLU_EXPR_IREE") == "ON": # Install IREE libraries for Jax-MLIR expression evaluation in the IDAKLU solver # (optional). IREE is currently pre-release and relies on nightly jaxlib builds. @@ -254,7 +275,9 @@ def set_dev(session): def run_tests(session): """Run the unit tests and integration tests sequentially.""" set_environment_variables(PYBAMM_ENV, session=session) - session.install("-e", ".[all,dev,jax]", silent=False) + build_dependencies = get_build_dependencies() + session.install(*build_dependencies) + session.install("--no-build-isolation", "-e", ".[all,dev,jax]", silent=False) specific_test_files = session.posargs if session.posargs else [] session.run( "python", "-m", "pytest", *specific_test_files, "-m", "unit or integration" @@ -265,7 +288,9 @@ def run_tests(session): def build_docs(session): """Build the documentation and load it in a browser tab, rebuilding on changes.""" envbindir = session.bin - session.install("-e", ".[all,docs]", silent=False) + build_dependencies = get_build_dependencies() + session.install(*build_dependencies) + session.install("--no-build-isolation", "-e", ".[all,docs]", silent=False) session.chdir("docs") # Local development if session.interactive: diff --git a/tests/unit/test_solvers/test_idaklu_jax.py b/tests/unit/test_solvers/test_idaklu_jax.py index d985991929..d44d895a0f 100644 --- a/tests/unit/test_solvers/test_idaklu_jax.py +++ b/tests/unit/test_solvers/test_idaklu_jax.py @@ -7,6 +7,8 @@ import pybamm import numpy as np import unittest +import pytest +import sys testcase = [] if pybamm.have_idaklu() and pybamm.have_jax(): @@ -100,6 +102,10 @@ def test_instantiate_fails(self): not pybamm.have_idaklu() or not pybamm.have_jax(), "IDAKLU Solver and/or JAX are not available", ) +@pytest.mark.skipif( + sys.platform.startswith("win"), + reason="Problem with tests crashing workers on Windows", +) class TestIDAKLUJax(unittest.TestCase): # Initialisation tests From 300317ce32f2cf964eba90f1e9395249e95f2f28 Mon Sep 17 00:00:00 2001 From: cringeyburger Date: Wed, 28 Aug 2024 18:45:43 +0530 Subject: [PATCH 49/61] fix: resolve conversations --- .github/workflows/run_periodic_tests.yml | 56 +--------- .github/workflows/test_on_push.yml | 48 ++------ .../installation/install-from-source.rst | 105 ++++++------------ noxfile.py | 6 - 4 files changed, 49 insertions(+), 166 deletions(-) diff --git a/.github/workflows/run_periodic_tests.yml b/.github/workflows/run_periodic_tests.yml index 2327aed35b..72bec43d99 100644 --- a/.github/workflows/run_periodic_tests.yml +++ b/.github/workflows/run_periodic_tests.yml @@ -26,22 +26,7 @@ concurrency: cancel-in-progress: true jobs: - style: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - name: Setup Python - uses: actions/setup-python@v5 - with: - python-version: 3.12 - - - name: Check style - run: | - python -m pip install pre-commit - pre-commit run -a - run_windows_unit_integration_tests: - needs: style env: PYBAMM_USE_VCPKG: ON VCPKG_ROOT_DIR: C:\vcpkg @@ -85,7 +70,6 @@ jobs: run: python -m nox -s integration run_macos_unit_integration_tests: - needs: style runs-on: ${{ matrix.os }} env: PYBAMM_IDAKLU_EXPR_CASADI: ON @@ -133,7 +117,6 @@ jobs: run: python -m nox -s integration run_linux_unit_integration_coverage_tests: - needs: style runs-on: ubuntu-latest strategy: fail-fast: false @@ -146,14 +129,7 @@ jobs: uses: actions/checkout@v4 - name: Install Linux system dependencies - run: sudo apt install gfortran gcc graphviz pandoc - - # dot -c is for registering graphviz fonts and plugins - - name: Install OpenBLAS and TeXLive for Linux - run: | - sudo apt-get update - sudo dot -c - sudo apt-get install libopenblas-dev texlive-latex-extra dvipng + run: sudo apt install gfortran gcc graphviz pandoc libopenblas-dev texlive-latex-extra dvipng - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v5 @@ -186,7 +162,6 @@ jobs: # Skips IDAKLU module compilation for speedups, which is already tested in other jobs. run_doctests: - needs: style env: BUILD_IDAKLU: OFF runs-on: ubuntu-latest @@ -201,14 +176,7 @@ jobs: fetch-depth: 0 - name: Install Linux system dependencies - run: sudo apt install graphviz pandoc - - # dot -c is for registering graphviz fonts and plugins - - name: Install TeXLive for Linux - run: | - sudo apt-get update - sudo dot -c - sudo apt-get install texlive-latex-extra dvipng + run: sudo apt install graphviz pandoc texlive-latex-extra dvipng - name: Set up Python uses: actions/setup-python@v5 @@ -225,7 +193,6 @@ jobs: run: python -m nox -s docs run_example_tests: - needs: style runs-on: ubuntu-latest strategy: fail-fast: false @@ -236,14 +203,7 @@ jobs: uses: actions/checkout@v4 - name: Install Linux system dependencies - run: sudo apt install gfortran gcc graphviz pandoc - - # dot -c is for registering graphviz fonts and plugins - - name: Install OpenBLAS and TeXLive for Linux - run: | - sudo apt-get update - sudo dot -c - sudo apt-get install libopenblas-dev texlive-latex-extra dvipng + run: sudo apt install gfortran gcc graphviz pandoc libopenblas-dev texlive-latex-extra dvipng - name: Set up Python 3.12 uses: actions/setup-python@v5 @@ -261,7 +221,6 @@ jobs: run: python -m nox -s examples run_scripts_tests: - needs: style runs-on: ubuntu-latest strategy: fail-fast: false @@ -272,14 +231,7 @@ jobs: uses: actions/checkout@v4 - name: Install Linux system dependencies - run: sudo apt install gfortran gcc graphviz - - # dot -c is for registering graphviz fonts and plugins - - name: Install OpenBLAS and TeXLive for Linux - run: | - sudo apt-get update - sudo dot -c - sudo apt-get install libopenblas-dev texlive-latex-extra dvipng + run: sudo apt install gfortran gcc graphviz libopenblas-dev texlive-latex-extra dvipng - name: Set up Python 3.12 uses: actions/setup-python@v5 diff --git a/.github/workflows/test_on_push.yml b/.github/workflows/test_on_push.yml index 3c6f572408..d15f058fca 100644 --- a/.github/workflows/test_on_push.yml +++ b/.github/workflows/test_on_push.yml @@ -64,10 +64,10 @@ jobs: - name: Cache packages installed through vcpkg on Windows uses: actions/cache@v4 env: - cache-name: vckpg_binary_cache + cache-name: vcpkg_binary_cache with: path: C:\Users\runneradmin\AppData\Local\vcpkg\archives - key: ${{ runner.os }}-build-VS2022-${{ env.cache-name }}-${{ hashFiles('vcpkg*.json') }} + key: ${{ runner.os }}-build-VS2022-${{ env.cache-name }}-${{ hashFiles('vcpkg*.json') }}-${{ steps.setup-python.outputs.python-version }} - name: Install vcpkg on Windows run: | @@ -131,7 +131,7 @@ jobs: with: path: | # Headers and dynamic library files for SuiteSparse and SUNDIALS - ${{ github.workspace }}/install_KLU_Sundials/ + ${{ github.workspace }}/download_KLU_Sundials/ ${{ github.workspace }}/sundials_KLU_libs/ key: nox-${{ matrix.os }}-pybamm-requires-${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('**/install_KLU_Sundials.py', '**/noxfile.py', '**/test_on_push.yml') }} @@ -161,16 +161,9 @@ jobs: - name: Install Linux system dependencies uses: awalsh128/cache-apt-pkgs-action@v1.4.2 with: - packages: gfortran gcc graphviz pandoc + packages: gfortran gcc graphviz pandoc libopenblas-dev texlive-latex-extra dvipng execute_install_scripts: true - # dot -c is for registering graphviz fonts and plugins - - name: Install OpenBLAS and TeXLive for Linux - run: | - sudo apt-get update - sudo dot -c - sudo apt-get install libopenblas-dev texlive-latex-extra dvipng - - name: Set up Python ${{ matrix.python-version }} id: setup-python uses: actions/setup-python@v5 @@ -186,7 +179,7 @@ jobs: with: path: | # Headers and dynamic library files for SuiteSparse and SUNDIALS - ${{ github.workspace }}/install_KLU_Sundials/ + ${{ github.workspace }}/download_KLU_Sundials/ ${{ github.workspace }}/sundials_KLU_libs/ key: nox-ubuntu-latest-pybamm-requires-${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('**/install_KLU_Sundials.py', '**/noxfile.py', '**/test_on_push.yml') }} @@ -230,16 +223,9 @@ jobs: - name: Install Linux system dependencies uses: awalsh128/cache-apt-pkgs-action@v1.4.2 with: - packages: graphviz pandoc + packages: graphviz pandoc texlive-latex-extra dvipng execute_install_scripts: true - # dot -c is for registering graphviz fonts and plugins - - name: Install TeXLive for Linux - run: | - sudo apt-get update - sudo dot -c - sudo apt-get install texlive-latex-extra dvipng - - name: Set up Python id: setup-python uses: actions/setup-python@v5 @@ -270,16 +256,9 @@ jobs: - name: Install Linux system dependencies uses: awalsh128/cache-apt-pkgs-action@v1.4.2 with: - packages: gfortran gcc graphviz pandoc + packages: gfortran gcc graphviz pandoc libopenblas-dev texlive-latex-extra dvipng execute_install_scripts: true - # dot -c is for registering graphviz fonts and plugins - - name: Install OpenBLAS and TeXLive for Linux - run: | - sudo apt-get update - sudo dot -c - sudo apt-get install libopenblas-dev texlive-latex-extra dvipng - - name: Set up Python 3.12 id: setup-python uses: actions/setup-python@v5 @@ -295,7 +274,7 @@ jobs: with: path: | # Headers and dynamic library files for SuiteSparse and SUNDIALS - ${{ github.workspace }}/install_KLU_Sundials/ + ${{ github.workspace }}/download_KLU_Sundials/ ${{ github.workspace }}/sundials_KLU_libs/ key: nox-ubuntu-latest-pybamm-requires-${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('**/install_KLU_Sundials.py', '**/noxfile.py', '**/test_on_push.yml') }} @@ -320,16 +299,9 @@ jobs: - name: Install Linux system dependencies uses: awalsh128/cache-apt-pkgs-action@v1.4.2 with: - packages: gfortran gcc graphviz + packages: gfortran gcc graphviz libopenblas-dev texlive-latex-extra dvipng execute_install_scripts: true - # dot -c is for registering graphviz fonts and plugins - - name: Install OpenBLAS and TeXLive for Linux - run: | - sudo apt-get update - sudo dot -c - sudo apt-get install libopenblas-dev texlive-latex-extra dvipng - - name: Set up Python 3.12 id: setup-python uses: actions/setup-python@v5 @@ -345,7 +317,7 @@ jobs: with: path: | # Headers and dynamic library files for SuiteSparse and SUNDIALS - ${{ github.workspace }}/install_KLU_Sundials/ + ${{ github.workspace }}/download_KLU_Sundials/ ${{ github.workspace }}/sundials_KLU_libs/ key: nox-${{ matrix.os }}-pybamm-requires-${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('**/install_KLU_Sundials.py', '**/noxfile.py', '**/test_on_push.yml') }} diff --git a/docs/source/user_guide/installation/install-from-source.rst b/docs/source/user_guide/installation/install-from-source.rst index 6a8120beac..5af6d8f996 100644 --- a/docs/source/user_guide/installation/install-from-source.rst +++ b/docs/source/user_guide/installation/install-from-source.rst @@ -109,13 +109,7 @@ Prerequisites Note that running ``nox`` will create new virtual environments for you to use, so you do not need to create one yourself. - After installing, you must add the following location to your ``Path`` environment variable to run ``nox`` in a terminal, like Command Prompt. - - .. code:: - - C:\Users\\AppData\Roaming\Python\Python3\Scripts - - Make sure to replace ```` with your user name and ``X`` with your Python subversion. + Please note that all ``nox`` commands should now be run with ``python -m`` prepended. For example, instead of using ``nox -s dev``, use ``python -m nox -s dev``. .. _install-build-time: @@ -258,7 +252,7 @@ Installing PyBaMM .. code:: - .\Scripts\windows_setup.bat + .\scripts\windows_setup.bat The script sets the following environment variables with the following defaults. @@ -325,49 +319,6 @@ We recommend installing PyBaMM within a virtual environment to avoid altering an source env/bin/activate - Now all the calls to pip described below will install PyBaMM and its - dependencies into the environment ``env``. When you are ready to exit - the environment and go back to your original system, just type: - - .. code:: bash - - deactivate - - From the ``PyBaMM/`` directory inside the virtual environment, you can install PyBaMM using - - .. code:: bash - - pip install . - - If you intend to contribute to the development of PyBaMM, it is convenient to - install in "editable mode", along with all the optional dependencies and useful - tools for development and documentation. - - You can install PyBaMM in an "editable mode" using the following command: - - .. code:: bash - - pip install -e .[all,dev,docs] - - You can also install PyBaMM with "partial rebuilds" enabled. But, due to the ``--no-build-isolation`` flag, you first need to install the build-time dependencies inside the virtual environment: - - .. code:: bash - - pip install scikit-build-core pybind11 casadi cmake - - You can now install PyBaMM in "editable mode" with "partial rebuilds" for development using the following command: - - .. code:: bash - - pip install --no-build-isolation --config-settings=editable.rebuild=true -e .[all,dev,docs] - - If you are using ``zsh`` or ``tcsh``, you would need to use different pattern matching: - - .. code:: bash - - pip install --no-build-isolation --config-settings=editable.rebuild=true -e '.[all,dev,docs]' - - .. tab:: Windows You can install ``virtualenv`` by executing the following command: @@ -388,41 +339,55 @@ We recommend installing PyBaMM within a virtual environment to avoid altering an venv\Scripts\activate.bat - Now, all the calls to pip described below will install PyBaMM and its - dependencies into the environment ``venv``. When you are ready to exit - the environment and go back to your original system, just type: +Now all the calls to pip described below will install PyBaMM and its +dependencies into the environment ``env``. When you are ready to exit +the environment and go back to your original system, just type: - .. code:: bash +.. code:: bash - deactivate + deactivate - From the ``PyBaMM/`` directory inside the virtual environment, you can install PyBaMM using +From the ``PyBaMM/`` directory inside the virtual environment, you can install PyBaMM using - .. code:: bash +.. code:: bash + + pip install . - pip install . +If you intend to contribute to the development of PyBaMM, it is convenient to +install in "editable mode", along with all the optional dependencies and useful +tools for development and documentation. - If you intend to contribute to the development of PyBaMM, it is convenient to - install in "editable mode", along with all the optional dependencies and useful - tools for development and documentation. +Due to the ``--no-build-isolation`` flag, you first need to install the build-time dependencies inside the virtual environment: - You can install PyBaMM in an "editable mode" using the following command: +.. tab:: GNU/Linux and MacOS .. code:: bash - pip install -e .[all,dev,docs] + pip install scikit-build-core pybind11 casadi cmake - You can also install PyBaMM with "partial rebuilds" enabled. But, due to the ``--no-build-isolation`` flag, you first need to install the build-time dependencies inside the virtual environment: +.. tab:: Windows .. code:: bash pip install scikit-build-core pybind11 - You can now install PyBaMM in "editable mode" with "partial rebuilds" for development using the following command: +You can now install PyBaMM in "editable mode" using the following command: - .. code:: bash +.. code:: bash + + pip install --no-build-isolation -e .[all,dev,docs] + +You can also install PyBaMM in "editable mode" with "partial rebuilds" for development using the following command: + +.. code:: bash + + pip install --no-build-isolation --config-settings=editable.rebuild=true -e .[all,dev,docs] + +If you are using ``zsh`` or ``tcsh``, you would need to use different pattern matching: + +.. code:: bash - pip install --no-build-isolation --config-settings=editable.rebuild=true -e .[all,dev,docs] + pip install --no-build-isolation --config-settings=editable.rebuild=true -e '.[all,dev,docs]' .. note:: @@ -584,7 +549,7 @@ Troubleshooting .. code:: bash - pip install -e . + pip install --no-build-isolation -e . If you want to install with "partial rebuilds" enabled, use this command: @@ -613,7 +578,7 @@ Troubleshooting .. code:: bash - pip install -e . + pip install --no-build-isolation -e . If you want to install with "partial rebuilds" enabled, use this command: diff --git a/noxfile.py b/noxfile.py index b8ef6ddd31..a93c1a960e 100644 --- a/noxfile.py +++ b/noxfile.py @@ -59,12 +59,6 @@ def get_build_dependencies(): build_dependencies = nox.project.load_toml("pyproject.toml")["build-system"][ "requires" ] - if sys.platform == "win32": - build_dependencies = [ - dep - for dep in build_dependencies - if not (dep.startswith("casadi") or dep.startswith("cmake")) - ] return build_dependencies From cccbf4a79d86096deeddd38a3856d1660dc58a0d Mon Sep 17 00:00:00 2001 From: cringeyburger Date: Wed, 28 Aug 2024 18:49:06 +0530 Subject: [PATCH 50/61] test: find which tests need latex --- .github/workflows/test_on_push.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test_on_push.yml b/.github/workflows/test_on_push.yml index d15f058fca..dee92f518f 100644 --- a/.github/workflows/test_on_push.yml +++ b/.github/workflows/test_on_push.yml @@ -161,7 +161,7 @@ jobs: - name: Install Linux system dependencies uses: awalsh128/cache-apt-pkgs-action@v1.4.2 with: - packages: gfortran gcc graphviz pandoc libopenblas-dev texlive-latex-extra dvipng + packages: gfortran gcc graphviz pandoc libopenblas-dev dvipng execute_install_scripts: true - name: Set up Python ${{ matrix.python-version }} From c00eba32999fcd41001b7a4151ae3274961bbfa0 Mon Sep 17 00:00:00 2001 From: cringeyburger Date: Wed, 28 Aug 2024 20:16:06 +0530 Subject: [PATCH 51/61] fix: skip test if LaTeX is not found --- .../test_operations/test_latexify.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/tests/unit/test_expression_tree/test_operations/test_latexify.py b/tests/unit/test_expression_tree/test_operations/test_latexify.py index 66cd30d399..638788abdc 100644 --- a/tests/unit/test_expression_tree/test_operations/test_latexify.py +++ b/tests/unit/test_expression_tree/test_operations/test_latexify.py @@ -6,10 +6,20 @@ import os import platform import uuid +import subprocess import pybamm +def is_latex_installed(): + try: + # Try to run the LaTeX version command + subprocess.run(["latex", "--version"], check=True, capture_output=True) + return True + except (subprocess.CalledProcessError, FileNotFoundError): + return False + + class TestLatexify: def test_latexify(self): model_dfn = pybamm.lithium_ion.DFN() @@ -83,6 +93,7 @@ def test_latexify_other_variables(self): @pytest.mark.skipif( platform.system() in ["Windows", "Darwin"], reason="Only run for Linux" ) + @pytest.mark.skipif(not is_latex_installed(), reason="LaTeX is not installed") def test_sympy_preview(self): # Test sympy preview model_spme = pybamm.lithium_ion.SPMe() From b94947b3eaf5cfed46162df3c77f95342356021f Mon Sep 17 00:00:00 2001 From: cringeyburger Date: Thu, 29 Aug 2024 00:35:42 +0530 Subject: [PATCH 52/61] feat: add latex back in tests --- .github/workflows/test_on_push.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test_on_push.yml b/.github/workflows/test_on_push.yml index dee92f518f..d15f058fca 100644 --- a/.github/workflows/test_on_push.yml +++ b/.github/workflows/test_on_push.yml @@ -161,7 +161,7 @@ jobs: - name: Install Linux system dependencies uses: awalsh128/cache-apt-pkgs-action@v1.4.2 with: - packages: gfortran gcc graphviz pandoc libopenblas-dev dvipng + packages: gfortran gcc graphviz pandoc libopenblas-dev texlive-latex-extra dvipng execute_install_scripts: true - name: Set up Python ${{ matrix.python-version }} From 5b42fe871770ccb3c802451c07b53d97f358726c Mon Sep 17 00:00:00 2001 From: cringeyburger Date: Thu, 29 Aug 2024 17:42:43 +0530 Subject: [PATCH 53/61] fix: security issues + skip check --- .../test_expression_tree/test_operations/test_latexify.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/unit/test_expression_tree/test_operations/test_latexify.py b/tests/unit/test_expression_tree/test_operations/test_latexify.py index 638788abdc..ada4aa7c84 100644 --- a/tests/unit/test_expression_tree/test_operations/test_latexify.py +++ b/tests/unit/test_expression_tree/test_operations/test_latexify.py @@ -6,7 +6,7 @@ import os import platform import uuid -import subprocess +import subprocess # nosec import pybamm @@ -14,7 +14,7 @@ def is_latex_installed(): try: # Try to run the LaTeX version command - subprocess.run(["latex", "--version"], check=True, capture_output=True) + subprocess.run("latex --version", check=True, shell=True, capture_output=True) # nosec return True except (subprocess.CalledProcessError, FileNotFoundError): return False From 36661b6ab3bc869eba8136696f1e263287f89052 Mon Sep 17 00:00:00 2001 From: cringeyburger Date: Fri, 30 Aug 2024 04:11:11 +0530 Subject: [PATCH 54/61] test: install openblas separately --- .github/workflows/test_on_push.yml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.github/workflows/test_on_push.yml b/.github/workflows/test_on_push.yml index d15f058fca..8ce1a2f8dd 100644 --- a/.github/workflows/test_on_push.yml +++ b/.github/workflows/test_on_push.yml @@ -161,8 +161,13 @@ jobs: - name: Install Linux system dependencies uses: awalsh128/cache-apt-pkgs-action@v1.4.2 with: - packages: gfortran gcc graphviz pandoc libopenblas-dev texlive-latex-extra dvipng + packages: gfortran gcc graphviz pandoc execute_install_scripts: true + + - name: Install OpenBLAS and TeXLive for Linux + run: | + sudo apt-get update + sudo apt-get install libopenblas-dev texlive-latex-extra dvipng - name: Set up Python ${{ matrix.python-version }} id: setup-python From 29112f82502fb4ee0efa89453de21016610642e4 Mon Sep 17 00:00:00 2001 From: cringeyburger Date: Fri, 30 Aug 2024 04:18:59 +0530 Subject: [PATCH 55/61] fix: style issues --- .github/workflows/test_on_push.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test_on_push.yml b/.github/workflows/test_on_push.yml index 8ce1a2f8dd..2f9f5efcb7 100644 --- a/.github/workflows/test_on_push.yml +++ b/.github/workflows/test_on_push.yml @@ -163,7 +163,7 @@ jobs: with: packages: gfortran gcc graphviz pandoc execute_install_scripts: true - + - name: Install OpenBLAS and TeXLive for Linux run: | sudo apt-get update From d01562cce271974f7c8dbf2af4f77585a12c8952 Mon Sep 17 00:00:00 2001 From: cringeyburger Date: Fri, 30 Aug 2024 04:26:02 +0530 Subject: [PATCH 56/61] fix: CI tests by installing openBLAS separately --- .github/workflows/test_on_push.yml | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/.github/workflows/test_on_push.yml b/.github/workflows/test_on_push.yml index 2f9f5efcb7..abc95caea6 100644 --- a/.github/workflows/test_on_push.yml +++ b/.github/workflows/test_on_push.yml @@ -161,13 +161,13 @@ jobs: - name: Install Linux system dependencies uses: awalsh128/cache-apt-pkgs-action@v1.4.2 with: - packages: gfortran gcc graphviz pandoc + packages: gfortran gcc graphviz pandoc texlive-latex-extra dvipng execute_install_scripts: true - - name: Install OpenBLAS and TeXLive for Linux + - name: Install OpenBLAS for Linux run: | sudo apt-get update - sudo apt-get install libopenblas-dev texlive-latex-extra dvipng + sudo apt-get install libopenblas-dev - name: Set up Python ${{ matrix.python-version }} id: setup-python @@ -261,9 +261,14 @@ jobs: - name: Install Linux system dependencies uses: awalsh128/cache-apt-pkgs-action@v1.4.2 with: - packages: gfortran gcc graphviz pandoc libopenblas-dev texlive-latex-extra dvipng + packages: gfortran gcc graphviz pandoc texlive-latex-extra dvipng execute_install_scripts: true + - name: Install OpenBLAS for Linux + run: | + sudo apt-get update + sudo apt-get install libopenblas-dev + - name: Set up Python 3.12 id: setup-python uses: actions/setup-python@v5 @@ -307,6 +312,11 @@ jobs: packages: gfortran gcc graphviz libopenblas-dev texlive-latex-extra dvipng execute_install_scripts: true + - name: Install OpenBLAS for Linux + run: | + sudo apt-get update + sudo apt-get install libopenblas-dev + - name: Set up Python 3.12 id: setup-python uses: actions/setup-python@v5 From ec5af1e22c88b6bdbbccf4c9279f667cffa169ae Mon Sep 17 00:00:00 2001 From: cringeyburger Date: Tue, 3 Sep 2024 04:33:54 +0530 Subject: [PATCH 57/61] fix: remove redundant `env` --- .github/workflows/publish_pypi.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/publish_pypi.yml b/.github/workflows/publish_pypi.yml index 03f3658d38..0e2f4521d1 100644 --- a/.github/workflows/publish_pypi.yml +++ b/.github/workflows/publish_pypi.yml @@ -245,7 +245,6 @@ jobs: python scripts/install_KLU_Sundials.py python -m cibuildwheel --output-dir wheelhouse - env: # 10.13 for Intel (macos-12/macos-13), 11.0 for Apple Silicon (macos-14 and macos-latest) MACOSX_DEPLOYMENT_TARGET: ${{ matrix.os == 'macos-14' && '11.0' || '10.13' }} CIBW_ARCHS_MACOS: auto From 97660cc59e00b61e0ffbc82cd27570647a52f44c Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Fri, 13 Sep 2024 22:27:11 +0000 Subject: [PATCH 58/61] style: pre-commit fixes --- tests/unit/test_solvers/test_idaklu_solver.py | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/unit/test_solvers/test_idaklu_solver.py b/tests/unit/test_solvers/test_idaklu_solver.py index e2d7777857..32e289b3e0 100644 --- a/tests/unit/test_solvers/test_idaklu_solver.py +++ b/tests/unit/test_solvers/test_idaklu_solver.py @@ -6,7 +6,6 @@ import io import pytest import numpy as np -import sys import pybamm from tests import get_discretisation_for_testing From 460143bc3aae22888d314bcf950bdaec23009aa3 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 30 Sep 2024 10:48:02 +0000 Subject: [PATCH 59/61] style: pre-commit fixes --- tests/unit/test_solvers/test_idaklu_jax.py | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/unit/test_solvers/test_idaklu_jax.py b/tests/unit/test_solvers/test_idaklu_jax.py index 708c4504db..8b8e0e61d5 100644 --- a/tests/unit/test_solvers/test_idaklu_jax.py +++ b/tests/unit/test_solvers/test_idaklu_jax.py @@ -7,7 +7,6 @@ import pybamm import numpy as np import unittest -import pytest import sys testcase = [] From 73c81cfdf4994f902e554347560dbdae64491535 Mon Sep 17 00:00:00 2001 From: cringeyburger Date: Mon, 30 Sep 2024 17:17:32 +0530 Subject: [PATCH 60/61] fix: clean up config --- CMakeLists.txt | 4 ++-- pyproject.toml | 1 - 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 76617273cd..8415024cff 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -145,12 +145,12 @@ else() endif() # openmp -if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin") +if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") execute_process( COMMAND "brew" "--prefix" OUTPUT_VARIABLE HOMEBREW_PREFIX OUTPUT_STRIP_TRAILING_WHITESPACE) - if (OpenMP_ROOT) + if(OpenMP_ROOT) set(OpenMP_ROOT "${OpenMP_ROOT}:${HOMEBREW_PREFIX}/opt/libomp") else() set(OpenMP_ROOT "${HOMEBREW_PREFIX}/opt/libomp") diff --git a/pyproject.toml b/pyproject.toml index 4588d4c306..df2275f7ef 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -6,7 +6,6 @@ requires = [ # Note: the version of CasADi as a build-time dependency should be matched # across platforms, so updates to its minimum version here should be accompanied # by a version bump in https://github.com/pybamm-team/casadi-vcpkg-registry. - "cmake>=3.13; platform_system!='Windows'", "pybind11>=2.13.4", ] build-backend = "scikit_build_core.build" From 0fbc7ed81a4690b4b092f84235e7a02303ceb54a Mon Sep 17 00:00:00 2001 From: cringeyburger Date: Wed, 16 Oct 2024 01:46:12 +0530 Subject: [PATCH 61/61] fix: MacOS builds --- .github/workflows/publish_pypi.yml | 44 ++++++++++++++---------------- 1 file changed, 21 insertions(+), 23 deletions(-) diff --git a/.github/workflows/publish_pypi.yml b/.github/workflows/publish_pypi.yml index 6c0b51f235..20699ecc48 100644 --- a/.github/workflows/publish_pypi.yml +++ b/.github/workflows/publish_pypi.yml @@ -156,12 +156,8 @@ jobs: run: python -m pip install cibuildwheel - name: Build wheels on macOS - uses: pypa/cibuildwheel@v2.19.2 - with: - package-dir: . - output-dir: wheelhouse - env: - CIBW_BEFORE_ALL: | + shell: bash + run: | set -e -x # Set LLVM-OpenMP URL @@ -198,25 +194,23 @@ jobs: export PATH=$(pwd)/gfortran_installed/gfortran-darwin-arm64-native/bin:$PATH fi - # link libgfortran dylibs and place them in sundials_KLU_libs/lib/ - # and then change rpath to /sundials_KLU_libs/lib/ for each of them + # link libgfortran dylibs and place them in $HOME/.local/lib + # and then change rpath to $HOME/.local/lib for each of them # Note: libgcc_s.1.dylib not available on macOS arm64; skip for now - - mkdir -p $(pwd)/sundials_KLU_libs/lib/ - + mkdir -p $HOME/.local/lib if [[ $(uname -m) == "x86_64" ]]; then lib_dir=$(pwd)/gfortran_installed/gfortran-darwin-x86_64-native/lib for lib in libgfortran.5.dylib libgfortran.dylib libquadmath.0.dylib libquadmath.dylib libgcc_s.1.dylib libgcc_s.1.1.dylib; do - cp $lib_dir/$lib $(pwd)/sundials_KLU_libs/lib/ - install_name_tool -id $(pwd)/sundials_KLU_libs/lib/$lib $(pwd)/sundials_KLU_libs/lib/$lib - codesign --force --sign - $(pwd)/sundials_KLU_libs/lib/$lib + cp $lib_dir/$lib $HOME/.local/lib/ + install_name_tool -id $HOME/.local/lib/$lib $HOME/.local/lib/$lib + codesign --force --sign - $HOME/.local/lib/$lib done elif [[ $(uname -m) == "arm64" ]]; then lib_dir=$(pwd)/gfortran_installed/gfortran-darwin-arm64-native/lib for lib in libgfortran.5.dylib libgfortran.dylib libquadmath.0.dylib libquadmath.dylib libgcc_s.1.1.dylib; do - cp $lib_dir/$lib $(pwd)/sundials_KLU_libs/lib/ - install_name_tool -id $(pwd)/sundials_KLU_libs/lib/$lib $(pwd)/sundials_KLU_libs/lib/$lib - codesign --force --sign - $(pwd)/sundials_KLU_libs/lib/$lib + cp $lib_dir/$lib $HOME/.local/lib/ + install_name_tool -id $HOME/.local/lib/$lib $HOME/.local/lib/$lib + codesign --force --sign - $HOME/.local/lib/$lib done fi @@ -231,10 +225,10 @@ jobs: PREFIX="/opt/homebrew/Caskroom/miniforge/base/envs/pybamm-dev" fi - # Copy libomp.dylib from PREFIX to /sundials_KLU_libs/lib/, needed for wheel repair - cp $PREFIX/lib/libomp.dylib $(pwd)/sundials_KLU_libs/lib/ - install_name_tool -id $(pwd)/sundials_KLU_libs/lib/libomp.dylib $(pwd)/sundials_KLU_libs/lib/libomp.dylib - codesign --force --sign - $(pwd)/sundials_KLU_libs/lib/libomp.dylib + # Copy libomp.dylib from PREFIX to $HOME/.local/lib, needed for wheel repair + cp $PREFIX/lib/libomp.dylib $HOME/.local/lib/ + install_name_tool -id $HOME/.local/lib/libomp.dylib $HOME/.local/lib/libomp.dylib + codesign --force --sign - $HOME/.local/lib/libomp.dylib export CC=/usr/bin/clang export CXX=/usr/bin/clang++ @@ -243,13 +237,17 @@ jobs: export CXXFLAGS="$CXXFLAGS -I$PREFIX/include" export LDFLAGS="$LDFLAGS -L$PREFIX/lib -lomp" + # cibuildwheel not recognising its environment variable, so set manually + export CIBUILDWHEEL="1" + python scripts/install_KLU_Sundials.py python -m cibuildwheel --output-dir wheelhouse + + env: # 10.13 for Intel (macos-12/macos-13), 11.0 for Apple Silicon (macos-14 and macos-latest) MACOSX_DEPLOYMENT_TARGET: ${{ matrix.os == 'macos-14' && '11.0' || '10.13' }} CIBW_ARCHS_MACOS: auto - CIBW_BEFORE_BUILD: | - python -m pip install cmake casadi scikit-build-core delocate pybind11 + CIBW_BEFORE_BUILD: python -m pip install cmake casadi scikit-build-core delocate CIBW_REPAIR_WHEEL_COMMAND: | if [[ $(uname -m) == "x86_64" ]]; then delocate-listdeps {wheel} && delocate-wheel -v -w {dest_dir} {wheel}

  • 26$Q1ELQRAfoW|HU`6&RZ53H!O?w+;9JwzQn`>wfaX*_Paxtx^p zeyVs4=V<}W>NyViY5@|!y-vP0>Od#8K5{hVjvY*#*= z1L^z(!VR0JeJc54Dl!Tr-;EZRM)znn&+$H*$ur^gF&S`b)G=4L)-F)kunLUyh*RzN zPD3btmAz$bQ)v;kIV8_!66_GHG{T*g5WpVBk>CFc(cnvx&WqSt(l5Mq`H%eX2S#ir z8sS*GSH|kzNl16147>ADlL;v?lr-tGBJWh|3=1ReYWkF^Y_mFmt}A$e}) zIaaXe{1*%zf7hy!41IQ^@tyN9f}CuTQhIv2gp|}`o7vuvLcNY@jcs3Rz`!%j0v~Eq zD#v5jNE_sWe!if!EK0L}NUWU#5c>9i@!i}jB)f}MdsFV1^N-1Y>kw;TUua6iZmvQX z$g(kn>@n}a%%|4Szet@5@t=zhkt2tJ7ODP4X#k4@+0M#5mgv=U&(L{Lm%mbA?q9Hq z90?X56^5P8sK{`iKMD=H{XfWMpM%27$`yLlqRPUfGk$-&$j*Cmh~hsN1#-G$$N&}X z4EBo(Ft)_X^|uLW=wGC!JYg+VS2>_B%7?Q_63grLF@1~^o@7)5T51ZcVWX+#q*C%1O(owif+jO_p% zTVMFvaS-%QxUseOw}1D6fic9KcvqGq*Q4CCM)*v!X2TLS7Uh<3YwEgp+3BYVzU@T4 znN#`WdYOnO>AZMi2_n9UaZgqO4Gvi`8TBKsPc6bqc76^Rxv~eDy@X_5o=)y5GsmtT z*U;g=RIj*+QBycX*ZW!OUO)Ax&)t9HLM z7d`vR^)VvirvJiewher4vZv@KkqFt3@90$<y z^I{MJAn^848>qlxgV{POTz2@+zn!6cOj6fYSnVGI zRbNZYgot(ZG#Rt>Lx>rr^#cAz$0uL5GH-gprKX{fGZBFz=+E?T`2yR)3r3El;-J0* zlg_{ysTjI_a6DgALHmh4q+qyYO($LiO{$5P?YpkEd{W*!J!u)FJ;Mc$PoG`n1*~f3 zLj0b!Et*RZ(^+8mNXG@!q-i71zrk_{nfP+{?ZCa!-8s@)!y@T$3tK0Ed1}&n+70o2 zw{h|%v3*_y+trM-jF*J$eCz#a0g2K%)Q@;ghLRD>O3C6DZ1P*-n7=Z_5Kc&KXS02X zNQxo8r+qe}Xe(>0;aDeT8EYuW^(na#Boyh&Bv2B}Y;uxEspP+9UU}o@#eEEip8e0- zlQV3;zcqQ`Wj4Bj!$t+P;Y;gZNoj6>870#L)-({3doje<``ZyExp(mXfHJM(=v#c# zhYL?l{ZI3c9MwgN{a(hpXGRW(=_}mY^H&ln=+)n?TtF@~tGOkcfGRLN9=+&bJmW6s z*_nRvf|d3w3+k#z>Up!q!fCFNB@%Y2NV#;6>+DJuC{q_eRzN0$T^sKIqanRnvGS5d=5Te%%U;)LwA${u;N`Bo#C z>J|J14vs#y*r*?RYZ-EeL+y*)imeOwTlce!m5dwGV_P-ifaDn8Fqu-B-_Z|Xn#&SI z&#^(lvgEpt_;kR|Q|ucQZA?didkXL$?;9SghRJ&;ZXh3V>pts{!E~ZxK)stR@1H7I?E4*L%@fG;mddv zHT#Dz>~zjLw6z<#@L#mpezMSJg1-iJ_gNRqNL%{8RoEh~;cQ6?mM$6r)0y1Zj>eUy zsl|tH^B;hzhi#vPyym}a?H(mur1S2S#tlNu-yr2eb$B19`FBaUS@SMzVEZt+o%S_{ zeU|CZX|qgFsPD6!IaiUL!X1{jiF~-6{}#_N8Wo+TKgW%= z1odBQD9%_yNNXA%oY5{hdH-dpvwMvv6ij>XmkFj^)kZ@8Xm$UYB7sC?ivr)d;GxS$ zZ>BQ)@<4j_Y+H~pbVXsAlZN=pCljNQblEk<=dYU(!HGQw=A9Xzk5mdpSBKo{Puc}N zL@s8X@fd-g?Z!`&ID_~y{3mmjN$TNp**DYd6u;KhavqxLjFZ!5TVjDZ+a)el^n@-6_bR?PmuQWBqeQmIf^OD=*ZA5?Rd7fb7pM zmVD7ACd&IApmV(7zVx-#nQLQ8hYuTy-SMPGNN~I~2*Pbp7-&4KjSp#h{6-_YhE36MzjzJ_D!*&zhHmOBwG zAnzKoiOpN#WePWPF zR~qK&Ou9-qApxErkZ^yIC{ zl#gV0gW#QJ-Zol@9~o?Td_NdtnzXM8zFzEE<1&r;mK^51G8?y6RhH2dHQ_5RP~#J$ zQ@>T<{lwNCqSb3J|NSj^3+U17Z8&{S%5B}%O*hH3+*tf+IZQ2ku{WgeqK5eB)xbwK zq!d=V+FQEN0)K1<{cg`;q&8=!dV3*sD0P2j(07J3Ih?wO+2c>eA!WRP6Y?v7T3E0n zBr~WsD*p1Y=)IBejjzl<*`;P76#1xT2IG)D5k@`|v|>~3rF&T>o%z~EvOJtw$IIQj zWz1sjcOrR58>h)f>q*e&m}7i$lI`q$I53Y^Vs`F9Hdz+Moley4AuH5Ve+<+jy|)VH z`n+*xugikh>?wIf1*(HKZO1iU#W__++1kdU#b)qL9vz9wAGD==S4INvus(NqlXqfM z;{3^SLneKHSZv|UqrLiX0dDm0Xy_ID;@T!;&S>4txtu+2VR+-MtD*cbR~eo>0X9px zU9#JM2t?*(UY!|2ZHIH03PL&=8wft%>ey6$w<7FOJJJ5(atGRA0wuP9Z%d%itjz;d z(>ixKEVTembSHd3T8J%Kjwr1iPi`031DSk_5*n*xl?XJE1;I~t0QSG@laD?`q*M*$LK4?rb_mJ%q5?dvW62sY>}++%$=>+dteJScf*+_B)Al5InXkQ%PTF> zj&K`ml=>Nj*ovQk)njqrhdx?0)FVGjZN7Z$K!#NnyNRW*_3>Xw2B9{PS&_aV_sjce zN=FM`m6YqxQ$Nsv()ln1s&URaxuDumO^Q&i*xOyHSt>zlm!6WLf> zPAak<5@ly<{B8O8YhJK}_FQ6Jq^e^*>i$#h876T$%$(Ya`siuKBON~i3qD2!XwYoW z^~TFcJ?R-k3|+LIUcMwBMoge>s(~I^){2a+C1!2gQ3b5y`(RyigG9}XurB?n8$<*Wykm=J2K>;?n^O6Vr5|CNW=M2f(hGk+pq4I2P9%e& zccgbI1L5A*<||^bK+Ur+w4xM%)u#%WUJH1*9MSsgxy@~*wfrA5oISg`Q%GwmiTnlQ z|9=T7x?P87t;>`*w_+zloGI}<9RxBR~K7DBp3Qlb#v zvSio`-_$L*9PDgz~x>|6Fo3 zIX~vPhd+8vT&t<^5wJ<@pq>h_`u@>GkXhr~!KkH7)Tay!{^Ev?pteHv$+Em?x8cb$ zYwxpYk+RO7ayE)`kv96ZJFnZE8kVGTNG_Xa(-aOHvvLA7wJtC1bcg>9DYWZe;|1AzeRlg4vpHIRfhkU!#yX|_a!gyJBsJ1rB=3Cr{#F{s+y|P@(z5>TUQD|B{{PI zc8Vc6tDihR&gimx*-5uXJoua73J2EtQdGE5e|1m)xT;ulus2yy=TozJ+q>bexro5- zalstj{yX%Pmv0-M=8{?EJL&^S^q zpO0wO=N-1Wk8ylAi}vz_XBX6)Uii}}=E6GYX=Wu^-MsmHZvL#era?v1nyn-Q{5%Y? zJ?$j^a`#Cxvj!FXgK6A{gfkZ)-{@}3jYh6OQP&;Iap`Tbh z!gqV=!)v3@SJn}Bd1hCG3dDW-KZdyd#J^AN517M6b-$246{re{+kSSkwdxsW;f{5( zdFI95+M6H~W)k!4Xx`-&Y%)1-4Y%^1_fZEdWmY)7x}-8w=)TX^fH2Vg9u}mj zTZEHT23;!Trd#%LiN1FOv3JYiNw>qJNBgV0Z-bEdtiwY-2j@G6jQV9?X}{W(Q7Sb^ zna_^LZ=c8sc)r|@xoUK^3hp+!?G)tN3I!BQVvG720ILwO1tT$3;0}H%9*rvur>8BN5E-T+ml`kPUyx+X+?$gB_ z+d8V|xv5a2NV4ZB%!CqPKo;pZyNUazQ`Lseq>cBF|&YkLRmwdb3?hO*>cMoZz~`K zk{peo!<}hbbhrwk+Q%F#-ZHiauYt z35GzS)rE4dgB1B7k$h0dzSmk~Ki|%@!7yzzjQA1kR3~3L&eM*ZEF*%OZzL z{`W^sN@whucC!vbSL`viZqrt2`~XrZqQ!lRE2ORxxy&QJxv4kwviD+1<7P3#S@zSi z1_BG!_V$OQ&Q-YrDa+ZEJFJ(t`#mOJ@<)b5+y$c!4xBa#fBHojtCR4ZXgAY^Zb!48 zkd8j;62sIGYYM=wgQ}lH(Oiad@TATg?DBHKRXV!*iZR8%Yd0nEgAFq;?N>QJiS$H! zuc}j65t4M$IengM1eQ$8VCr-oYLHub70+s0u^&WvWSbZ}>MvziEvtAm-60NKmmNdt z{?eZO_3M|eKx!_B@&Kf5ar|+`*p9m11DEB`@k{uMKn(>lX)r}OZ`Kq;PAv>x_)~?3 zlyis6A(S5TtO?>+M5w*E}u>c2>(3G*at|c-E;8F`*hsra8Qc1F_5P7nEO>8 zX%+gU;mS&IV&|tnK|b(%QNpW#(m%8Aqrlf*lhRm`ihg4CDCuq z<-;!xFY|8Z7I>~q*N;!P5g4qh9hdTjwSL^O+__UGOkwAC&nj9Q`S?*DS()FI_&%ff z?>uxcJD@;Hh>}>@Yv> z1l`Zkx1PzCxAJzrqGmR0mbrNfj=P)~`|`P4!9>3OMntNGt+bg}cHimF86NDh*CD@6 zjKyrYHP!Yw>{{_F6yP)KjToX}o^fX0zskF1ciw2^mW-IuK9k~I(pj}FDd*A%XmQrp zdeXd9O5&o#9u5~$;NEKgvGt?r_Ue=L@o8Z{+l)IR7A`KT&EhY|r4)D7Bc^T{#7_N{ zs4iJ?QTC!uT=JB=>4D6_RD$zW?-ksG_2|2Mni>eZfdSp|roWM$f%%O#W@lMtI@|GX z6=EN4sdtNSf(lCbI4;KqB(br9B?q==385pT3X^2hkWg(wbba=5T-pbUVT?s)Z9SW3m6_`=0cmk z0+)FJb#gddFP^In1Zpp=pA37j@$$mbQ4kiE1HCXLHbeQo)k>f3de#lI+rr=NnLep6 zK0^Nxi>>%D{qsJiFc-_O zBv)UPWytH@sXz`L)Cg+t=X}T#-aY7(;NYTf&V8`v^ke%U4&`kh3Vk;g+#06S z=RHKn*o<{3GLHitX6Q=)CWxs^Q#%g&SWh%w{SM79o9_kyVlfgmm0_r`AaK2 z134oXo-wNQtDER)b_mQGMzHg>&^flf~yr1BC zHfiAt_B~w_H<@R~S$nJw%dB{DLGa47-l&fhbB#i04$o+1n4Dj!F3}}jet#hr5S2!I zoQdgajTSkG5?dsKR>f4_M9R)h2s(;%n)VdmMy{qVXop$K=dB*lNv~u36`2SrLg72Z zbI3;2;T5iR)fZ#B{ro0=MGRG2tH%}MAQi(nA-92mo|dw=i9#_jz0(!h-B) zGX1phAJeHL8Qo?VpHy4?_nACWA}W@iD%jm3362Hw`GXePt#s+fWNm9G?Y4+!Za28t_E0xK5* z3X2hS;_b8;+tiBwuc_}3E`C=sEz*e_Jhk{+Tm&~Sv-wMQ^gr!6@lR5w^7r0bnC)0b z%xRkUKqzr&Odg4;k+UkR9SzZto+D*{Vsf8E_FG*!S83t2-_pw*PSf5)dt&rd(iHWj z7g99{bj}HY&RM8=-%JC~VV@e5V8#SKxTiy-*=JYfUm9U7+_0i3j^`HK`<5ODs^5ET zczj&Df&)<0DvFB$%s6f5=n> zs!(&GY9lISN~iQ3k8x(%sh#67)%(3IX2mZ~ymOou6PEl|Q`%X# z4Awdk<>a+(er%IAxbOs-hHW7wTK`0=GN5M0FlLZDJW%QADK()e&3M^GQn)^Y;yFDB zKT$*gj5NG&f6U588e(IqXdX28X>jskYIgq_3Upk2CiMlh=>Vk6Jq?{f=r$5Hy5KMD zFfMtA{T#9@t6sUi^9k&Q43gq}Z|K5VF5Bfff(2%0*!R6p(S6kI|J8)stH zp1moT*x`hjTcF&;#m}<$j!OILE0T#ADtmu7u@ll~X5L`&zd5FBg1rF-+loqfz)x%8 zl-_XeXXP!Anw{4>#xDeDwWm$!iEJfgYSG#Igdji!|gS!n87Q6du8utMS z`#59pae8@N=<_Gbd}=Tn8k^?m*VFphZ!a;gt8KzN;qJXYe$p!&wjHy3=&j0si{CH- zD|@>O)P6PUYmll?z+I;5PY%SiKIREr6<_CR%Rcw3RQ>26(`9Ru@aPkQOqWWrnhZOM z$}UNeaO^K+r(+>cj7#i6gX2I9P1XgXAu4rUMm2!ldZ&UiEit;#-1e>dx5Spc(910F zY4my&6@6-e2Bn+M)5g|#vlr&Mf52#qP%J4zrfWLMs#EhvW@k$n@Qzr7pSGc4g!mEe zJz3a$?Sr>K#dqK`ab(qGCHoRFfhmhCW;Kg-Mf$TOQ4Ru}f{#9#a%h5@7C{RUEpRgS zXqtHY#ghKM9mQ(wGZ409VjgQvochZnxA^M@{#FsERbV=hiCr)1Z$UZuDOHxe<$!uk zBfDwf>WH33$hMOfdA50DGHcU5ou_|>5(e0i|X6OzblzT`3saG(=)$!cP0(sU}f zrj4hk%@S+t$pm+N-r4lHHSv43?TorEQ8X=uZuTu8gaa1b~Sa%90Smv z3fxbA$Z6ZpB^9CS67<(%V+3Vdglw~+@%w-yD)PK#8+^+3a6Etz0Qzn^$7GZy*A~6< z=H7Fq142zc?&r1|G-q@$&T}H(a*a$(;ZwAaFfSB9n@=5SX1NuU=25^E@SK5NTaEc< zazpKqYC(H*@YX9k&RdI|rAuCu#1U<~;L*h)>C&e;m-F!B75!aOa)rFMHDeH$Ud+&w zJWj1rgBVa9S}jy69?y8T;j|6$G2OkcgN=3K?rOVoC-1n>ZvkQD=edSbfqpVG_^@%K z)7Go%WyW>mO=Yv6uklmTYml!&nB#^$x#1b}zL}}t4YjVc7l^2)RNGQ~9@!LUPD*2M zMCArC`78CP*m9_{rE*Ueg)i24RxflrZrT5!<-O#`RVqEEdolWt;w}YQ65_vQVz5r9fTgPe|uU-I?d1 z*1Fc;&Cz%gZ)kt#xJ%ggBv`U5Qx=kI*DC$~f?;EIQjVEfBIvVqpQe69G#PQy7t_zt zfl=brZl?kh>knVQo6!?;8--Zpx$G>vjA<~#ZV+{c)86lAF#*ue1ROPZ>yO?GGoAkh ze5)xZz_%@ve}Zp41o&3ULx68YeE)!NzvJ=3XKSFjH}u!&gL4Gb_<=(UykNk@KiT1H zsjJ-=f)oA0e$Y9z_P%VNB@^~a|DKWGueb3?X%Pp_kE6bTamcB_qUa@-53ttt8u;Lx z(fC_8u(<)eTmd-`bBWPRCcw^q*p1bnrwSL8*Zt|9)jY1|?8Vz!jy-Fk+1h1L(zhVZ zvs&7C-AtQ8cfFD)tJvcsud`4k@(et;(kSi(g{xjpZ9|JKJyH~oQ!$Riho9~EjpDzx z9)-V0=(A=rexbq`aXcU`Aaw(jFgVOqMUqx1QuKLWlhAv^^g+^(_Y%jpG9{Z|7Tt?x zf;N;UyZIUl=5Zt@4SGGuT;o-hn;x9#aC?%~2zNsw$iPF{fd$nG)}5ysFW$`zpv?U2 zGFsSOwv&jXeGJ-pTt18dgOZISOiqyhp~9OeG{#id;<{!==X=c7*u2A#_>q1Bt!yj; z#sk^uJHXE9A?FR(F8hP|&OYN-)`P?9zD>A10*^d-^2F7+2Pl#n%gCt`pB)vyPE*PmT>4MTDgNRO|3Ls>Gyejf^3&Q&U|5*?41Nj>l z19E(%@8LgPiAJS)Jn?@n;VS;4gbUxgW&AIGVpMfoYv#q`XO%m#hNoVBgNjyz|0(6W zeQsQP7(|Ez=Bvx@>_rK1a}Ou~c>xczm999w-#;1M*QS`eOE}3AoTOhwxG4V8UTG_k zJdG7Uy7Lb}pKR9g_r*(pLRkMljLiNEXM+DN|L1Abuh!)!u;9Nd9rorHQTjIxanqbv z#V5bDoPFu0Xu*CtS>tMX?6==Ru>$1;M^P9)ERYmC&-oh3G?Wlv>AIxaA~Ca7c)GgZRSsTXeZNk{ zO0GzU1H5NeqG2nB)xPkW+~L7|lV?A!#0Rx%TZcz?gf!~RHf@i4PlO0r&1$eZ&6K+P zmHCMYr5)in2Krd#&d8}3)Vs8#kYep{gNJ_THssucAss>l=G+5_3yinTxS9{6^jm29 ze?43PA0)xMspogE)C0!8voW0lE$9mG-^#6wt=ibMf;y$)v%1$r_%@o6bqAmJVv-d^ za3oyf3IYvT3n2NR+P}7SZ`Mi@0N1dQ$YeQU86RH%V z7|V@AiQ{TcxU3f<2X>+acl2nluD%8xYqKGwsZvQ-pU)5x*&iz61|YtbO?#n`$C48k zhkIj*%%bZd8dQV&P3#L_53L^1$%r@bNM2w^NS|3T%}rXRI1mv%U%+p>nGL3i+L7X4 zTl6|>*70#7Yb?i&cJpTH5Me5=h5f$P?Gg=dpZThsVTLl``Fk1WNbEzJbY%5BzUWZL zbR_gNp0G6yz}@e=$7-U5sj2DD&`d*H8=G!|i83f|lhML3;%pbY(+d!l*3cOJW_df` zCC&W??V0`-m}H{%0o1d3Gmoq&LK)))&94{tJaFIHv>+LK<1Ti`_$bb7A=%Osd|-hR ztn{YU-LRamOOsJOSa)c&;WzG_b8N;o?}V2Gd+{%!cTQb+psrP?sd+_NXFF}!0f7RY z->rSN?HoWnZe20c}MR9&%SG$T>NuYCI@IuyccIN3Z4r+UAPVp*x-QFtNEVU zH=M8|I$;q4bFZ_b$Jws|SIWLSW{cF4*X(T5jjOkJX(1ZYsxgRIK*QkO#NtlPfDwlN zRvyD(3vR@W@@zAHSs4gDlOI*clVywB$DYui?FtEJUK<91y{>TiSZ1GvPt7Vh9Uc!%4kZ$0? zLb7ihRP6BH*_<~pjMP2g{fJRNfzGI_}9Bu6cK3{X~0^UniBblcV0HWh*gqa z{ffnOe?3ODOIYSnJG7vZu{eJ@U}nt1&A8Km_E+EHqp2njz%+;hthy0+=7-cM_K9M6dj9_-%QhHiZ$C-u!89BeH* zhKd*Ibf(_0SZ=NaC1%(m!-gH zyjCJeg2kMqKRUN^l6dsbX+kxMZ)*=LkvJWiPo4diGsE?4J)zZ!*ZG2VBG{Yy>(?8E zaom;i#m_q{kGI=ec-v+e3-j6^kj#wNq1A<-`j3sXFZo)Pho?PCnjZ8o1NiOOSX;dJV2tU)DFh3k=P#$Jj$Ho#(6eeXbI)34?{5$gz&j z)3UxzT(YURv$U*Pj_IN-9K0&46QNVzW0q$Judhel6I{~kR=3bn=(P4(34u(RdAw9S z`IQN)YU+J2A5Zdorav)C5ELczVYfmlGB3#sUEtq%i#ux3;W^AhM z8TiVtUeCfcU3IlvN^p%VzjE9}d>0Nbtz$?>O&8}Xa-ICSk4OIJPsM?dqz<{J^1jfW z=TF;Ui*%8O*PPFMvS~Exi%_xmuubCccoRA9J%&xlBiUnbjm=HNkatnkBQv={Tx_|NETTYE4?aOpo1;=sL$-RtKa?C$RVL@n7m zJvkZS){Hc;W1pWkY<*0RZKha07zEy`Z_ZXN=AWJ&1(!uy8|G#SEzi3dHn1^pJp$vf9Ug>yKw#Z+WBkhlO->O`txi*i?FErQ|;!>c_Pt2 zUsKB?D;Huj!=;@XHDI#%4ge)+eqN2ZbDrRS2-R@m?|XMG1wU*LNVp7QN3{QX>vglm z{}z_0-)-*OU-=5{j^}K#0jK*c-ot*OYB?^|UbeP6I<7U0TpKILrfM%^cl4tmMOc&t zr|(%s)9!CGY#db!e#8tLM%9AbH^Zh;wLpU?3=4bZt=zF{nw$m`wl&U(2%MTteZotf z4CcL2AS8V5%-zDvhcrI9vEVI5=Xv6_-ztix#ZJ4uuRl)r#uTrlLR-~b>%&x>n?M=! zliGThM_Z;_k!Tm!S)5mYG1V0k5^7ksJn{R{_N4)^Emz8(UwAs5aI41-&JNOmv6@Hv z{PIaph9}#dszc4antXDRWkncPPp!r_m`U8?d@>fr?%6;M@>7>wuWm`7weA-=g+p53 z#FD2TCzbdiyzJ~yP@!drJ1Rqj|KJJlJShNIhKj`%375rRGS9~1T^tL}@NC8n@POQ| zk6+2PA7!~SQ|RaXxLm5~JL8en`+L+)>%Tg07<(TSo}^w&n%$TnmgYA&TU#w9k!V32 z^FHw(=^KJtHF)tKBzuh4B~7&yy=a}d$U)IRE>@fek3(=|i?!lE9K(HFjeb@5XdWc5 zBv_)bTTPxtwRC8wYWyNzTTi)`<^XS{0?i8B(gs-1r%AfZ59Z# zevMYP&7R_M<1B2zjo?okt}q1~daCZah>Ks@9+C3MIq~s`6no}MM>|*;Z*9oWV3^`l znL2Ule8fPK3LqB~-8FD@0IZThLB3;~N4^*{hg=6C`EXh(3P@eM?|9i^SGsfd8ESuz z33%&$uiq#t?!Tjc2!;3_Boj*LusKvcTZe)!(%*Pz`SD z*M*}l0-)JC&d!FJfZcu(l*ap;m4m&>^M_A7@JK_hM%T*~2i@FwQ-d|t!`+G67R|D{ zM}n273oVCPCvdLTN9j0Z{PGmUfJamr+-xm@*59jWLQEI0@IzbV2F&!#5xykO(sEs% zr+aj$195BQsgXU1amT`rK zA5$?yRnt&K_zz>cZtF@qqszRjcgUeSHNU}o`6rLQv zhZ*h6H_udg$R-1UiyoT!(&6A`eU}b@QZ23?poxN6z5Qa~dPMIf=W3!?!NjNjKQF)Y zd`0qn-Wk7f!`bSf9&qM9RcyV%IeM13UUxir$?Sa#0zDp5>@svV*69O9t$dtlXIE~< ztd8!WoFV!HZaO6Ko{Oip8i8#EwOlU`5Gd}Y%pHEe+JhN{=WMMAenU^mwgKC8nnDda z7>h@67(&0+a<#b0F0X8G){EGGJo)YdjYWdJKAw>8G|1U;HOcugRBHp#lNupPyBL$LS%sYJrx+jaa4*8>@- zHUfwjG6v8F@N>?e_kfdcx@HspJoku2nvs9|Gu73bLAn)ZJ@=QL?E0VVe8*3O00h|3 z-=FVP1kxj08~$0)Pr<46Hz8kvzpt16q>z%3Oe0!u{|-F&ir;1vc`f?Sopu`B2+RG; zfp$ZfG8YnZx=rstQ+n&1wEe^XCiV8Oskr|S|6WFrkawqv@;Xk0f*f7V!#4$YGeouk z{Q%$?7;bxWH7$;Wyx^CSviFK`KL_g8Esp7>_#)c3KMy3vD46|=ya1^I=^}eQ6aKDk8UMc zv$HaYdBuC4`wXSqsy_ofudxMQ=MKQ#HpzkY#EvTPJdr(FSu48u*u*!ZvKY zkZ%-HFXKGx{u}mdAtawZhWK>wV+(Yi`%`HVCD?cQKykw{Zy_(C=0m0#JkG4BxB+vD za23eKR&4w@pnEMMc0m!H9p`*5=BP3^Iy=Q{;#d0f;;=|92cUU-m{jKEKb-qaJti-+2a}vTfSrPHAZVR5(i* zp@TuWq-kh;)Vh&fvR{(Ka!?~I3CvF4xT6&*vlFRjrHQkPnAuSoRZ3BPn7mdZk`WlD zw^KKFnHAKl=ou%hu0?Vvg8w8^^1F+XL~^(z6x36?Um${wp$5$}epJzL&ORN9dr!Hi_z&Ti>&Ap$%Qz(R#|WlrtA(Xbeh+ZUBu$w2O)70bBN*VF6Km#-yQb z-7o94i7X|~;s8F}w{a6f%ANrne%a}f@<-pwU;bgMbUttB1dEBI^;TN4$sTdsdzw1l zq2zfg9r=T-_G{@@ohZ|*#F`#=-CkPUx27C3QO=caF)v-ZZ>Xn?7pjJPeHFaUZ(}~7 zKJXS-Vdk9wprP+9qLMdH6kdvC=^0W}>!q5+jCp#h*bT^d z+!Z#PWR^33X7%#nxI4HBPkTh-wbe3QBqk}c)aB*&VQuBed&C89eWoE7s;pPS*HoQj zMHhIoLJ5`T4k0r;w68q}8=dzvL&!{+j2=zTQ8UbQHfLbdM= zm%^DLo+TZwb~H zBBJo*Tp8`sv900)@VQ;Lswj2;6#XrDtD-c+d3EM3u;6_9k0R?`<=uyK)o~NPN=Uog z^hyz8E#Q#usSi}_r%&|%^|AqEFkk*E++3v1AguAfhsaFW4%y~HYirR$il9^HzmmoO z`^tgq?yt6avQLFf!CACRNmb)qaA==ZlLdY0C<5eL>Bli%@Y!JTleZYoFAIbS2Pk!s{!4NDe}t%q!mh5uV4IPmBy=(P zbM8yX(I>m2H<6u;?$+omzF?6llyhMG)B;z$xcL zmM_RP2>Z!y9ZoaZb1iTNBKpnnwH|O16H-W=EX<_MuG`hGiS7@5yy4ge5*a%Uuf#lW z+`{(%vEnf|tV0Q1q~4ASFF-KE_=G)x_9}D-96R4|ueR%@(3|VgoK?#GyAe$?JMnSQ zuKQ&xV_o+74-GC6nZ_>}DJ>jr$J~*jQ=^QM68x3td6PXYw$aX>5x;(pu~(JS;Iy=3 z)BN7QGQuv2C6+E5T>e8IGna&S^4alcFUn9NfiZ8}WC}=rg*(c3l`lkcUL?|um@(Q$ zkchJ|FMkrLdH}n4vHN`-bdgwQrA3cEHkiKW{3| zM9QT)UUJY$0;#o_Q3CW|UX+mvqX`iifIOYGdz>lu)v{?j9Wog5a}Zl4;?BSad6$TY zUxB;V1Li}s*%jbpOV7id$SsBOx1VsZE1_uXbTSU{vH?ZY#<^pDFlH5Z2mh##pGFJ> zAwbQyQ|;l8(~7^Pd5)yGrA=cutH0ey#YH+j-@UwmFXLxWhU&AuC zK!3~$X^FAat02z0(YO4QazUUb`X>KO9$(ipDNl(cusC$qJrxI=1e!t~ONjx=V)|RD zbVbh>6&Hi67TEmPk)*8l**L&X&$rfeIn*jGLiR6`-RX$w;*AYXCS!VavElx z)p)+?7*WIAUhxAa#z4NX_r|`y#YMEdAWzgaeYR+x-lKb9Db{WsrIvWHeh_y;=niA+ zMoFyREW7o!o7lZpIox}hGj_m=!CYL-bC9FOl}>>8*6jANuVvk~Vhy!VPOSChT2Q0d zBbnc@r7LNiNI4ssCs$!DF7PB+wZh;I*tO3d#5~ zc|pgS;O6aMqzb!2bz>@jbwK`+1_OWTguEF$GQIW1HcvBI9hwEO^iCxg!FRWtdxaf? zn6*xPOSpDeJb0o43U=aybm#4sH5;toq_$gVJ`u3zm~vutVWzUMSdR0e)1+LnpJ{r> zKNyxn%xOY*PrZ~6Ti=rFOSe^j;4m6(@;od`529vKVu*HTaGj^Vp2hX`Q#ZzABn7h*X}@VLKYBY) z{5Z!HLiYfyB@8z?80@5PH%AmpCe0`E(Go>i174*1(uloj#^vqCw&mL?0$#K?*x7lF8W8U)8!LL%d}N za?H5{FK3B-{xChn$Lf#mpjO`I8G%Muy10L@e2Y@oUeyOSvq5nQ&M~8&HMWF=WpxIPbC5mxD1|_!kuhr zhg9>S2pcb$+@uh2#x6?70&GQIyPtRT6iZvcZAqb4%|CG68W2y7?Rs^K-#=`Xr&Sk7 z=ni5g&uATxX|9dK;%bKNWu>b9BA%4=!#hy5 zS`l`)^_q{FbX22IZHuy%Zf={nmOLq7+E{lY#$k4#8z2i<3ip56Sw+hYKo^*ssTqEs zj^e!L8OizkKM^%=m-MgqZ%J}DYuY7)_4C1SpIC|>Uqm+ zH`QaWKc%fIIAwidpnDULa_jf#p_v|%6DH4~ppD4J%;_ReGMN(uoNDF1wtj9QM*ZUM zrv1Va=3Hb}Fpf7a@Vq4x+ z<4bkDpXW8{i`AY4MF6$(+lT73{*s@(ZtO$Yc?uPUiBKq=wI}Mry9|p%UZ4btd zvQ?CU;o3?v@2h$}rc}7pgF83f#jPvIYr{m*GqHZ{)6-+-uBi18WV2U5IorSb71`{d+EQa@>9B!_xr2i7c>Q9rhN zH$I$0D*uA8t~I>;+GO0?lKgzv&CfU21Yj~}Z^UXjJB(GOoYrzS^E_-av}1fOiwY13 z>`N^I+4HFUAe?=19g(Ln>3I*A59%+bdM>-zv8St9H(vBl z!hyZXOIlI)t23A0eLljPK7TEvIWl=bj?I?$89mX3D8}B7a+;;fAQ0p=0)= zd~JkXAeI)VS2OSqE#d2a z5F4+wgc{Eo)!=LISOK7A*Dk<*C%WTkBMN9&!RezHDKX#R+pa7+qkZ$#I2;#B01Z8nb|EG~_iQhwA? z-*WK~IRa(Ndcwg%v`|N1Mgxf*xw|rGPhNqA_zlU=mQEHmOf!NMLq>)(E;kmUXFZRZ z1q8uF{@Xnk0I_j2>mWc%kD2wd*8!okieu^4d%I{r2JsCfDvFPx*?OOjW9dR3v5H^S?M_<)k3gdY4Fs$8 z{QhABk?7L{ei}XzUS{={B0JyqI}L}n1~BY~TAV^vjq-KYCEFWDFgSGJ^{Pm~aZ6ym z{v4{hsO)g+<)LnRW_S2hZ?BKL{v#T2!Se$;9M!c(3%VYFcl#q~G>C=#^eG zX{f3Xwe4|+edL>hHwYEkH8zOskPnSJe%+`u7XwaG*<`DqpC&m4r~Z1kN}+~vz6GV& zsrA>5v>^$P%p#r(nz7ejOU;E8sp%IKDM-DpFEY+Af+@OdJk!*yZ`pYH&b%@t2f^J} z(>I)Md4j34y~@ek5Z1Y&VdN84du#m#5VbsCO$j%UI7<4q)N$N#yUum9`ne{Gi^W?s zajzRi-z;zkDp}iH?V=I|o!WKOE@l;{#cqxTg7YBF1FjxRXx;%dR42GwVL*&J{YfJJ z4bYTyf!^!pPp%m|y`u!CoG#f>N!&CH88o@{M|+9P?i=^t7_$>MTy-PI=e}^kwZM@r zYyM1M_5mKepL`=Al`5-q|3Q5^-g>NE7+g2#^*#@}0LAf8sbZD! zsSWN(=^dU&i@}F^8(JfW2{-Q@-cfYvSCmcm$fDP~_`tgXd5wM4YnnFgTlt{&u~F@? z*ew#*D>Hkqj;6=;5y=>k6WKkpkz#QRA=$mMRMK%#M$O$Hx!zYOVdcUi!FW}>%ojB2@VY3LD4 zb)ofG)6~0yvpJp_g;YW@yE77vOQe%$slnBmsGEdpIvDP%x@#HDQLfM{ZrU+LCL^G@40%Ff++UGZY0NqP(Tg zfbGfW`wE@YF6M8GJFvVRoI}r4BTADdty~6y&Q0XbtqxJ#2#;`*6TZ{kxulIC1Y9Q$L2q~v!; zlJ?J@L_yXIVIl!zLJnl0b@v~!EeN_RipsG8Q6R&fsB161b6rIrMR6uZ-J}*l0QQ=j$KF>(YlWfpcy0qn z_)#ZTO1-0kz)wB2 z!^`m%aka}C{ZPFkX&*$wh^s)(M6aaWkZrbO&7jrxdh4P%v6^SNAmBc&9T-odr@{?Ex>+IR@@@=rbUbO3O zNAj`rZd@ta&KTa#w4PBpQBcWY+BYl*XGbx=XFw&JaJL3s-yMI6ZR3*eVvurxna~ZO?3)t6*Qi zxEh(k1b?mya&_Mce9QFak&OaFqA}$+P215Nx2-RFaY=c_SMF2f&_y?(-$gn%26VS< zx=yD6LpGE_psTOF%h$4HNiLQX0^`1G(EztSBX*m}4Cwd=26dkvA6q>zL{~=+Cw3-a zZEC0F5saVCLpj)=_Gk_-CBIAsP^LN09v(L&eWGjK=QeiRVcPLEZ(=(?R7jYdKceNPid%vr&#R z>1|{O4oVEI7KN}zrfXfzxolT|jY%QWCt;%!wG+1GpN-(L>7sg)06%aamPk4*7yrF@~5KUSENqy&?EHPA} za=qJt&rv(Q>rU3cN$!DpNQhWNhGsy$xv} zL*#~wqohlb< z8%>ZmiRNMttm33}o@(dnqR5MRc=VoKvpeYTb=~M}nCX{=KtR7N2B!#}60ekfEGki| z*EtEYFjZ1C6uaja6;3-suNzkrxKA`Da;#Nj80zLHsM9D?H z3><}(;_m=q@^7ohN&dDTVyDLsgdcA}D;&g*yY}l{SnhviO%i4{0}YrEH)n0Kt$zc{ z-D${P6dTKBIOt=oFo=B}JM=Agy~@?bB#B?7@`?Ouw9;i}W{NTFH*dMrL@}?m9Gd6i z<5&l^%f84;$Jv2NcRzusHQcz;oZa>)k*EBEt3O~ORm9_hGD+!*VY@L_w)2fAgBnaUag;1G;Og@HA!$4Q;)-#+pim%`8p80sGlsE_JS@WJnK&f`*DBFfj zs!$FLZTV`$kyqJf}-a`~x+tGX9Ku{T?&3RU+D6NQIi* z;9$?z;s;!BDIa4#)nXPjbMg`1VUN6Z;)`isbZ%?ioL->XlH|h6ayooAU}p3#iGsH& zC@WOPJV6xOcI9DWOKa{E7!;>w%mpb6uPMeFM`9zJ=R-mVdsaPhzGkPZXEsF#Psz4N zQLUg;cB03KB_o*G#*Yc0<>5v|DUMFvtX+e8Pcyx+5ODg#q&TGygRaIt?F)qG{jAQu z%G{#Z!X;}uC*LKxrLARV<YPlD^6j-I`5o)dhh;BcnMG+-p{RJN2~z1g zqy}Z$P%Z@N2-A+QFwLs=QB%>*;P4jQ>D&CsyL#=g+8gi?bfYa*DwO?bG(!>Xz}~(2 zsZ40Y0CJAM1ACrPe+U73{?rRV%UY`0ms*I1@?_h7@wMR7IaDjRPHj4$)!7(CsleaS zPsq_;XO*Oku2+m#5&#DWS!zumYHp411rYSlE!G$Tp`we;KLitRC_`da3;Ua}z0m`s zmW^lmKNo&h44*1wgLbsHQe`ad(^tjFGDLl7`*qq_d0DT;28}l;RNumvb0kbAC%ZYk z2ulnvqMlvU(IKy5p^T#(r4l*eYy4`Lep`E!(w92?~C)jF37s51J-y z%lqwf{bQ|LdcTb2=YO=R>UWBOxf6!NW!dDqG#fHTK0E$OqK{^Z4>({`EGAMOr0x|7 z<0vGx7}oabt0E@VG8-L#nSXzb2fuaJG$L~_&RKrIQyrumKIF-?Eh!4^Rf$7g*$64) zWZEThDIDqHL;k@me_SM7unRa@q&k)q?}Vn($sH)je%8Lu)2e)#eQ%48SYZeVl|P!G zR;WYK7P`#>_iJW6j_7f*l0g21}zFJN+3;f|D`C}?s#^#Zz4~R?{gfOt%j%v&0O7zqkmAq}~ zaw1=^wNgyl_zA$RF~zVHnE{7%K-Nv%4ZGw7pW6rXjzDbkuT0&s)Klz(%LaP=7NuzL zfNwN;5!xg@5@KxHMqhI*FSegc)}jKK`RiZoNp6=uQ(lWV6MGVG$rHc*xt_!0z@kq7 z%DDcon&r&#jkGyq;ok)}OygWUO)tt*FHiZrdq3jIU?$J2ov*Jcn<^$%^puqhotaLy zp+DZ&E-=YGj-<*X4CMuA6#k~2w<1qoMRUmWd4;%s?3;V9kYyW77X=wtPD4hMff1z1 zIMgZY&E{XIlKV$8X^SydYPi|DOB`$W1BXxXNVeqOvNcYd1;!B^6lZPi{sXz)iNY|M zKZ*hf{u$Onsvo<>Qo{{`pjKHu_Ls{H7u0>CFC4~Bqpqs=u3E_5vFX&zmjO>_`~!~f zFHeU^$){3nwtwOlG?!a%8sYFFP0o!TfIkGoN8r+rmR)!T|3&T zqT$|u9V(Fb@-lT>=x{76Yihuz*>Jz*Q~u%7m=vXC`nAG{ZBZ{$Krl7NbQ7G?oxE=wAW4e~3;O%O453GLtEvdT4T*;1kZCIr=P>)VloU1p`IH0@6wrnQU zsz9%&icw{IbupK)*sASq%Wr3S8cA9QACX^vY8uGnbc~AYLo&B-@sw5N@oiO)s!}q~ zg+1P$=22erN&R?~AfVRQm$%HJ_VvH<_TEuVeeKpL7W9V-SV5&(DAGGfM-h;YR4Jhd zp%>|dE+~TZ-iwsbLk}$h5v7IRLI>#(AV>%$K=?NLzUMn*oO|vVcZ_rH{zqbxy|dR^ zdp&JFa}F6&1OE5M%li{kUZS_=he&7OJy|?!7*Xi&FzOzvms8;K{`a467@ipG z?!H;UFgl4K*yj#^t0WXhYCwSg0E>^heLZ)@Ujwdq<^W#E z#INtsct+FLpowIFgZ107*E?6cuFu^wq=7ycS<1$k5L?mVSSleJVrrlRG zq``mCGv>Qxge27jU8P(>np2S2btE`=vlx28zO;J_zH=Ld1IerQ};6+OMH!QofeT$G@9}+@#5XcnX${V6FYRu~fMk9`{< z?0{FDS&;dGN4VsJbwb(ecl@-Mc-hmzpr_M*VSddoR-giO{Qlk8OBznA-fgxyeMVBP zk3lQqQwOeKKdhHxPw6C>(OzvB)3UycL7XPXbGhq0R|%hxw;oO%KiV7^f-`dU*F`Ge zUhP*;sh+vwCazdp#2xDi>Ge;<4{he&^oGfu&5lWw-g#G-KXGs%J$Y-ujyMk)SIvB? zwy;g!`WQi(iap4~jhhiOlV=+jD-w=t6MT%WR31NHT~(RIn|7rmd9DM5*!pFPqf(`+ zUAsj)WJ%&JsS=FKh!wdv=l-_|{po3Dr3~S;>XlB1rf5EqjnB=hCz3{QtTqPFo(#$= z*U<%=!%eul4{e>mqbkp~BQA}#}AOZ&X&hDE&cj zGEL8TtkxwDLOU+%FH^UIgrh8#8-+q|oz7WBeshbE{bqDyLSdfZWBjuWzOLet;ZY9E zH1PD=a>d4xy#1cGTMcVl+Y^2e!Q5dOysv zM8>;YS+7uLd``j9ioKu&aT`1_kmP<1YMDJ126S#+dL?hJf4yoT_S%@##pyw?Tvbn& z-)vR7frlf_!#l^>n_4}g#<$a8^u-_^y}B~(S#oinEDf~_4>vb z0mPM&i0;kx&kE9=W+6Qo zW9yW>rvS@hZ~E;s^?Yt^Y5WN=!CZW3%!nbUG-gRcSr@nQ%B^z5i(|`b>$xS$W%C~i zSEOCO&Mw3nHdjNrHUROx+cVLlK={$Ab3sAaKM{hw%+Gp9+wwN0+k!lOe98s|z(%~{ zYmkU_)Xlv-R{&5+ji5Sb?S10EG@B@eFw4%UjjnqDDx^+o9hw$GJ;SSq1(@~b0@xI; zBxPwlkW11wQK!c9RE-gPJ*{22Yr4ls80gddJTR&)v&FT*-=Cl^R)1K4Z1dLctoKt5 zG)?o}(VnKh@%zc7qU}(bu|fChh!On3OEr6j#^3I*rV0eCn&K8{!$HCxr9mCzTTO`@ zW)qlNBd{Yo)>Oy5MQ|$e%Bo&@KArU{B?G1g61jv!XWZF##KX-SM@F|S&zdRnA1ib` z>J>3MgY5{;co__r9wVz4hM1cekeCW@w2hA>_fe{X_vz#^tUR3p#@`6@4-`qdSpdV@ zXLjawzP8d^(Y8^OxVG^wMCE42M;l6LV^GpJs|PJDAkx!%#N&kbwD6x>Ag*Vx=5UH3 z%!UayrYXrB-Gt5G^S$DDe1_I!+^)AxqeP3KxXY0FBMVC5*DU(YMEi>SpsQ}DeQD|L zyAgW2x)MMo!}d;Pu}00rOP*nKzI(0i??*S%)7isI!c9ZEo{=g&RvPw_q*M1I1EmWM zrE*}Vv3AYG>rW2q>zn2ExQx3nLVL@^A~juzY(EG-;s8avZ`o84XB29! z@LKb=RdX(JiT4W@5*>KgIG)iJ&JqC!2qGZ>7I8Wbi?`MkE*~|KET0gJ+igvImq-J7 z|Jec4Mxp-lJ5uLUU0h6(dZjwR$%GPV}Mf+H3@-4C^p_)s)8sZl{rHui8R zw6Kmr`$^3~!Xm}TsvMIT`fT)l}8(JRGzmQ0H5X#Y*o|Zh1izP^wIZ^i5;EG$5`Ya5j zI4vMCwC}9wxvNvzhQjsy>_u!qGlukcHaGB;wMZa_J$@ra@=q3zb$@H}5T>fTNQH9^ zH;_cekGfv>Rk1p1Q}bl2>2pK4{iAvH4hiRQjZ8~qqPuy9)FW`_(-kkYokAk_YvB<; z_G8%MuLr|KI}lya_q3AE25Hiu5YO1Yen2Hm%x54PEw4qi78!QS# zM{xwHXT4;<%`u4a*Uoc8{tU@Kjg@l74!y$@taX? z0jaN9YlOrf$MHT0bvHlFbm(W8=Mz~Mlj-_q0O!uVDfg- zzHK7()?ZLI=~3Yw_V>+sQddFRh5GBYL|D#d+Q4zXA9r!O?nK>dv5vdPoe~^tYZ5)$ zoVbgxLHCQ5zSv#>&(GQ@t)_YGL~n~@YHM=KYUC7>Rzt)(zBB1%zBg)R$15ZoU4L1X zwMa<*NyODpAg*(an%~I^AO9j^7v-v_@R)r+=uG0BVptO)`rw=sk&*wffHsLT{_0L zgZnd?QpKiizlF-rD$NM2u#)0jzMt@5@QQrBJ)jR=^yPl>cOm#v@oPb{ciuu}4_xTB z!|SFk3bdi*@1)@_16p&teBGk_j@u$ai&p*BOGC95?-;0RyeTzTzol~T3^gI^=g-y| z{H-HeEG6m~hG?_Lai!>?$o=6|EeHkJ)1og=p_UPyKoo#c&4>)TAmT&;-hxK0+6n`- z4Nn$&Db)$>nA%sYvCJ^&0k%Jw~Y? zzcz((5SsrI@_cQd{&bdElzB9OjcjR+~cWd|v z7IC>~yDm%`j0-Rt=8F|u4nMpXJ?RO%o?lF!%<@|@rN8yNq+qYbh?~W%64tGKFx`?f z2{z&VcF(kxYPKzX5*x9;rF+4nZ6Bk0_-9)AtyNORKU+kl=oUK$Hgj%%WA=&k(6HP$ z(_f!T`?=9xn;PA()NG+K>ra!Zwgzo3wy@5U?(hB;AEgDDQMU=Fo;zXpYi%fpokr-Ge<5H-?bJF#$8aE;7pN@D+M0nWT;N5HZ<0T6M2 z6o62aja`seuq1}jIk03c(;obgIJB-Zej-}OAVEGgDND~|p`12NaNX8diRlk(us}>c zjVMkiz>Hj*88EhAnI^N^7?M}5|MF^=oOooGIhg?U#edf9FY&hg0#P(b6~do{UGK;t z3u$_rl!U)QMh#AMv;Tx{ihV`%v_oS`GgJ zUwM8FGm22FKu2?|ov}sQf8Foe*F{k3n06~PZ{J&uGb0G@YT*l(6*@Vfb>Y@enwan+ zllBsdOFwLIm}|2ck$4_2$*9eA;~&6@N_2PSD^rMD9WeAbtzHzxWigq&X2FXX<(6Ey zg46B7F|RH8?bQoB8d~X5a=b`+AGuthk|yd|mU?V%D9PO`xF~8B%DL>0G~Ec8n_G`a zGssUPjbUpM)Y&6Rwf^bjVfV!fw{p_?TZm^4qR zFp=4>W&=Yag$>vn3@liq`2F#<)*jo$q=n=k_Hhq3rlMUbpo{QPsgFqs6`Vx-zD8qj zdq4g$6Deq~i$H2Wk+V^C0xB%kQ9EhbhIY;Mz3l?3tztm>-h7~uu1myHgv?MJBV&9s z@cI!PQ#7$KwK^p6Yb)OJ!1R5HRMd238E46ar}x4_s48V@%R4EEo^(LKJY-60u&9IO&$s9pY8EJe}ox^BL| zIX04P$rWE#hGn`plT<75FknlX2d%rONrx`8>*1M9xk5$~z?i=ndm^*yt62BBL?=i} z;=^U!G;R^mx<+L z|Lk2o@BNuvC|^(lT3~51^;}k+v6r3QGYAqDHIz$`oygMvu9wD;$0PSY^SUh~|IM|= zmJG0o9YxyyyZ=;+r%vAe&R;G!*m;WS)4v3ve!2%}l%@WG%}Yz3OJbeZ)*vtcMJOlm zH)CMnz@er%%*Vs?=u&Q&hErUiB3~I%vhnSiE!e51_2dtaZW>pEQ~tWgNCI@!$HwTa z!#0cZM(%lgmOvQ``8tQN(Tjm8^w(efJ?AKpvq%GK((JyytZETEFHWihITi ztCwZi!tQ^fxUZsnIULOl!Lf^DYGDQ)#T=x%RUZacQP*?a<&@vYnu;0BQqgPzE9+&} za7Sma#_-a3@}uHM>~YKU;=f4qGt@BSyo%!1IWo$RSd0|wJ% z6=1>3BD7seDa;gN(qzLnh-dO9cjZ0%nL~)w?3z+yxgzNnY`L@)INN|D`w+@vEoLx7Mb{aD za^76sgLZ|#PM#o z^L`CCSnssvKGSE4lzA(?cFj?|ZSPWE7q~Ld_~ps^8GPD z`Q@2v^@Y`{9^uFe(RZHjG)Ny}oMD^H0>9?^bn2LTSBKb94O;y#hx*V+Gp#v~b##6c zo3o!xUVXOGRCmrI;cfmR+c;+AH!zoL488*wx|3;@v>S(mLuJ?&)74XTM8SNsF8tmz zADP)!WtWY?=8m5g?*ma<>OHXYlipo6fX#S$p@2eGF*mS%Df){sfcz^_b4}4ZyZdBn zVgsIcYN+pi)Z5=ugLC_JUv?if>9#Ip&^=ySQ|4-;C+l;ZH-Fx&Y=W0{Ol;$40e=P9 zgg+Z#Z{+dP@WA@%DYb2J#U=UVH#SCpifVLbPu+^ZV6&9;I0q6t?;Z&DQ&I01kw8w< z39me~T?fOj1yc%6GE@TmrEo3Pu*ifVA1==FjZHh#Y*Ts8^%cwxui|t0AsBAII^Tn@ zN;g=B4l!^9GzpHc6P_fO)L!3sXZZ{+YEsynNOt2()%(&nj8zq_7L=ZU@fxOgPaUz`kLE|@FE+-P=@pG@RS19I%`08&aUZ6q9lhBVaJ*V+57oD3Plo$~w0cBg zy@l$cW$M|y&8CUe5wZZ6DP}5GHq|UwEk+Pm=M`{wZqYpTNYo`fHS4K08q!pT%8Nfe z_Oa_Kb*ZTV5UnPwYgs0$3ZtyAXtb|(M6M6D+~ZYQW!qo<2l{Y~GCZd7YKKL;xq`>j z7V*q&kJ*}ENN8Ll{w^{i-X7FKQKxzBs;sqFgz`AB?0)*f(q3efM;i*Zw{_)%DsgUm z_w%LB2Y!q_1g2tBtT#y}*yi0E6VDmC3e3KjI*?2e#o0{3=^P%bD-P;dd%k3Ln?fuy z9k^V+K2#A5zL-X~6;R29OS4*6dWwwXRuxQXVTAUFc7@)^cL3dO$|!SC3XYVSTo7Hc zChR;CH~t*;2I|7NCF+=Ox<0ZDEbalv^Yj(d4I{uwgl@$c+cgPCttV9Jl}ESnnPK$1 zf89HExm-pn1|N>Pwf^dJBDAJL&pIzk*K4A117z)G*!$IcZS&hT_t(?z@J3GfM>idc zI$eRucvcam$Ku8XQEw9eUXGV;ru}l=iYS{Zpzdu5+#ErDj?{&Do-gBTsS=}szO62` z4Rw6JZYS?CKPd*oc|{C19JTPB*ZQkEcelMJ0WJeHkLes+Ld2nMVP7~RDLN0UU=$Bd zfr8GxrVLJpF#WN~;w|Z?z_*566Wz@SS3AuVkt0rH1zM-i3xG{!0?=waa_MmOs9zdo)7JfR9U-^X?5GaE#7CnswwIdo^#CA)@Ubo>h1c~EMXi1 zbkBY3ik>);z$0kptQ6!J^_KHc75Ep0=3R*d91tHxgETT{eR1~?^}2Mfn@KA z1U5A1OualR?)?)q_vq)hj*?HgH`tGAP_47yF0dTu~WKct_GPMQR*G7=}5+4AY*4E1aeEz^Q z1s7SW)g-rV*+1ADOFLFka%qony4!Sp_UTcHED8N(N|lA*!|^T}?!)3j1MJ<+f%MgA zh#R1{IMoF;SKR7Zc2XP#_FQXcnjQcQ4%P#|(@BcWdJ5!`i$xN_%{t<`R0(RAE4JES zQTNFz%_%zD=$V^4YkaaBj1{9>Q*hE?_T0YxzBAu#k-Q}75=nqx+^`Ak94rlW*iesS zd-3Z=E?v^{kriHv#GtrBEvdPz)B3FTttgm&h&DAPS^>YhEG=Mp3AwQJs*JI(<^ryk zx+J2BZQRJ9;&9*N7rdHxw8}SUt2dCz6u>{fn>uU2;z^BSz?Kx?oRw-C$fwM9U>y*eZ0 z->8Rn&u7gKJ$0+6)+3T&X+QZmZx z9r^h%jw!*E4O1{KI$V$ycxU8-f#W#TP|dZSJ;YZy#7qfHBMy;>0<_UFRSRJ&uC)V2q_xWa z$5Q2cgFdy_H&;$jI+($1f@hU!ibzolJIL}GK$mc)%ySTIFl#2a%M8PPtO>Rp>(Sit zQb*T+xfh`7lJAHruygy_Z4F$tI}iP+k5nGM#AQEf!!!itGVG=ZfPAAS2P^i+nvy$Wx?IcMX(!qqQi5+6`L_pUiUH_`6%moq?OLd?L zV;5FujFEHs4zAxwftthHE^{y51qX@h;$t@yz9m*ky{ULiXb9(o(8PFsXu9sId^f(? z2B0k$dh;%0f}Xp6nCU%pMa_#$-$Qetn*V+c3#l93cYZM#nFVaCEgG%U^bJCmmFWkU z5yV&G3b_RvelT1>GHl?2YYb3ihwR*b2Eirxq!foXYc$cDDo&hSJGMc--`MvjvgJZ& z4D0s>i%yAYu$2b!S&LD}w9K-8dMF$)AHELiuqjS-q4KL)Pqi!>x1aWtjfD*>8Yh0~ zU9T^WzcU*BvAEKzblCCDo`sdhc_ZFh8T~bjv4Y93QcBSwP)@4O&k5J40hcD(n7rWd ze+%TU$1TIF=Ey;JV4Nla0ILai)`L+onH1rzunT~l=(cuDOvRKw+6Ovk9;(_Z6y=2%6~S}?e= ztn|z@di$3K%jL&r9d-pzKB>mAj{RoAeV#Z=u=2_Rl)I&Gm{$1w*O2*SCM1;)+duWJrCr z^_1QOUd^tyTTi=9^R1q3RIz>p#%ZR6XNxcrJ+CmYSYA*T1)>fzDF6QIcop!7ml{%KM2JJ%?Na%b7Nx4J*EAMoP#Ed(Hu zlX@TQ*@1H7xKP?Udk?JX_aomsl-p-j9G#_i5k1nWz7Bzrfu+ic7)<`>@u2!qKKizi z)wlOoopmH2Tpb&mm2_fxQZ*b-{;+hTTSzwydqHl>@BiG{boAD3avvmYT^Ml%(d1cByjR9n}+J@J)^W!4ydXPi+qU1E*|s;!t?*4Zsu0(PzHu|7;zfVD=;_NecC9hkcw7=V_?pyn@A-G~S zNt?n&d+hsFJHQ5W^4Ch*vbj_OolUjbpUjd^X%`J0WU(12r^feoKu;8*#4bIGSn1;c z`XXCPIo7W*p@JKiE`N4>&8xH*^W>_2qok-kO?lb~TK)@8a+V5euvXk`%P%a>TNK;q zCPJ-BdSUPG>4=ja*jne3N6FoD=ki?O&$20Q&t;P5Z!=RX!c?}e#PGG#i=@PaQAw9L znc$B0oRrpI$ajfroE5($xx>2s_mj^2y$|ltbhxp2p2%zP@+ppKF?QS1bcJ6e@-E$? z>~f&6x1ns}zZzSXa&KSy#+A2_3KG`dizS8B?B9ZFsnQatd9yEp=`9#{qbs9cQHa(n zkdAlJE@(3Z&d^%D`|N&F(m|!$u#I9b ztaghrQYwQlDkcf%QUMVu7PA&(YLuk4_ccfm3wyH2FY24idET=%6rRp*vqzO!>2p`l z@aT0s)@<{@?fQ%+f=pd#JB{la{Zs*hd*>ekwKOr`+AYon%0%&~h(W zdv~Qze*22tr;gz8&V~ot2@#m!5ykn*0iU7I$o|HZMSQER_CJz2i{OppyOS2Nzu%-m zp){~1h{ra6ZTLjf;9~y~1}?g4^i$v{V{!$(Oc2@W_%b1ItsqIbSthG(4IZdqGG-eS z9OGKlGPdE_b`*o4^|SQNN=KoNli;}pZkVYmfsxO;*yL{f5&P<^vWFYpE2LieDK0js z{S@`d0x_(+KL#82fZ^T%*G${-yYW-26QAP-x+EF3YB#fkj(-X?)9h>5gn#kfAs~>L zcyt0U;xrG;^{m*rJd6YuBYGm+zccNjvrwJ zPyD)C#qQRA2{*b4X)`wVctlZ3`6#znSk^x(9zlFr6k*uF>|);(EpW|3++ z3u=0z>)aseX}mCOi>vz8q9&oULIoCu?cS~K)d$z$J<0DK77~JcT4Ibn*vrL|kdgXj zeL!QUo4vNJmRykWA+Pc>Sc`43(ICoSa4H zh!$U@1PE>fwC%6?HcxoGnVTnp8LZ`mhK2%y+3r$DOL2zuKp<4vUjR9& z!_H|znj#V!Kndg?tJ-9x{QX@pHdmD*%p@#+#RF4f--9g{wM0J`6eE;z5W52r#M%iJCs6jNn15)NgRhKz?N ziC@C;dpYOEbk~LNIg9I)Vc1)w+}m4OyyY=cWRo1JZD}# zL>nj2BZQnokaGkr^kR4U29rpGm)F7tub+MwfT@rk3 z)o^Po!P_EBi>ZD39)rDAG-J#>cSlUB;Ba?`)s-uhJ zNfugVfO|0`zRexO%u3xQDfQiP=DKl!oSMA8fh?VGJ@2StZmI-BqkBFl!`7~E=6=bI zuM!xupfkx2-{X~gt$jbMVQHrw6`(!r_qS~IzTa*h}1PPKa|Ch>ivu-3L4 zy}*Zj>LtkPz;(rgz#`Rd(_^=(q_B@!bFX}9GtMd&F^y30(d%TaFQ~=ARO+7N#k+GW zD!(mIeb22P0?_ERUQTjspY6WA=W&JS%ypq2&xBV&t+-zi-rWjIkzNlQZ}XI~8F@{= zKG7QS9!kftHrVK|P1eTJr4vAoVn$3}9b#R-W0S(tlA6-taJ)+YH7ko^yVv}V5_f1* z9x)Espr1ZjchH9-<`q_7NLdZP$P^*I$K;MGh}a<=s+EO)Tp%C``=pA8Yed?%$zN5f7l6s&zdaO<#npEceP9Pr>2 z3+Bqpv8s_b&G0#ydnT$nw~0pDsV)v|h0QVb4+x^SGMkN1onNP zNJEpgZ9nFe#)x`Jy-uP!Q{?lR)n2r7 zxZ`Zax2RS$5*X$6aifoPaj%YF{hC8Wv#B_<~C$2N+jAg-o=<=nxKfISoFR_AXhnnv3BU3If?n(+b7g#DNFr zBL>bvO$NVZ;IIz^N0f9dua_>s^E1QZqn3{R{CC|Ckz0u|pD)(+sC3!4bWQJDHv4%! zwdhIr%F0T?AHO7}k)~FeNd);TS{kUHcI>@#4e(44c6wMe0aI2yd2~imPDw!VtsEkX zDjZqLUB^_qj(+bnq$UbVNVs=5RlUG3hKaum6kzh|!|zQ20&=hD$Y-WiyvmcaLMFVi zH3C^uP4~28rk``7FJ*}!3p2yg(ahH46_i3Msp)O)i+DD*m@djr6f6Fn(d=0bUVkpW zoBUiM1ktsBH3sZ!uZJQM33YtxY3(aknPZ}GsqjlKeUkAK+6_7X0ORL>5!`c zm>6}5x#te5Ak?JFPW;=(-9gE@gAHKit_^GIZ%8(?v$O9P_1QT(q6P+{LERR=9EmzG zhFuiR9V)gfkadEV7I68&43kAvDJ*pGlA>0*g~Q&>*=xj%%R=xF45(w z{a3Kq=lJVCPq>UKar?RQQJelV{Li01LmT_5aGfn1k6Tuuo*E5xFYlVt@L$dLM1%^R zyx3k}5}#ciSX)YOvch`m&KXiE3@32kJ3rxL`(Ito6s**#nVbm-kYP>Fh37T(W*Fun z&Mz((U%la?pwwR>nZG$`yyK-zV!ZpF4)P!*$8etKaq^}2Yo1azW&U?UxFOV#b@@r_ zCGev!&L7%7{-uGX{a1GxMOEu`#lauGzxm5|dNL088B$5l1F!%ZEgp}T#CeR`r0k#9 z*MZl{SN=*ZePca!ey2_h1)aY`QvYG%PZ{ppi@)?(^N;?L1HM;p@!4xWSdSCmMjbFHErv#5y33Ro0!Y`z)SvWPOWYp~MHBpB7R_I|1CpL3{I`Pp5G zxSEt3br&q*PQwW^lcPYR?oLAM{BP(D_Zp?q)L|u3{VfGnedS6PYgYT`Lba?bScQ%M zX%Rm1bGM({?FYqYeOofY`aV{M~j#eHl{dBFKCLE{gy;oCM5q1ZApe2P? zWZ80mr-1R19EplH5wZ<;ydWFyi$aPU4Gjt3T$<{@-QKoxUr%p1xNN}fdP>v`(<2+c z74}FW3q9nvK@TQApI)X&^=M@%3r8tR7<)%0h#XU8oh~FBrC&#S$gH5D20py3wO^*K z@EJKk!Q&p%ZkHA7t#8L&+3r%qr>mLNO|@z{2TNidGQd2W0Z5g;gk!KbYALNZ?rW~% z`(*o7G9>*s`lpZPQ(i}3fes0>q4;S&_-aLs$K5KoJ+@eip*CB3Kh2px>9=oY=e8{j zELYHQF=xvIa#5kV1VMa3CNmut3!7H0XahzH6pNpXwwcp3D%Zc3Z%{}Sb@P@@=uYKm zd4PQFIE#R3s3c4b5EyE?aNxOH710jd;tmYlQh? zLkt^Mbzd)T0~Ju&q&jFV=s4dzFy#dQ65@#eiS$RK1lG&kp3Xp*;AJ74s&)T3v_bny zaA+T69c=P@1^rQj9P9av11p|#<(WuHw6gAgS(>xxHnb6WO5(kZo{h+?i#Qfc@Yn7u zok=1;PVXHBkZQINqg8NG|r-(AO+`LVYs% z5gDeH>YrPE{qlT>fCo(+0$mc#)s0VnNazV?bBsxoY}Rgg^Tt?=pP$bmt4lX3>A<(q z$fBWXy37?9l%$9a=Ya@c3=|RBl;Yqh)hTu` zm`H|2M3o>OpeM`NTiF)B042=O)80o@wU3XQEp5q_SPcE?8k{)^bZ{>jwpx*f#5QVK zct7eXa6>=SdYu=WyHg_&Vthh(R6q$wLw++(%BCCe1~J1DLv`w0l?KSyoPCJV?4#JW zuk$mfN;+N2gjow?(QXl6kIF8$Z>}=K#zy@UEI!4C8&3Dg+AV4l3?TjWYH$?l&}Fb6 zwdytD&@zN<(0d^Arqpsy zCBrkvIPZL=c_ieR+2X8f;cE6;=DTOY{7{d`@4kK0*}00l)|u;*(c;+rBfsuMwS?EF zg46m?;3-O&57ucoB_hOkZ|v&Sn>gS=!|cKXpMJDFU9`-(B~sw5U&DGdKZ>P@id4*p zHou>%f7#yg%S1nDgs^(qFARGwg9Y^ zP_XJcJTTeheSGuI^Xe8o^Clt2$%7triE9oXjU40CjCZk17_Ra&qK8~LV$|nh8#)3C_A!zRZ?H`X;oS4(rIZNnXfAovBU+ieg$#?~^@!L`c`(G2^`z2t%N}OSYJ13S?7Y<&Hre^=3U=UMY4hRe7caS0ytQ#Meg( z`*ToZ8IN`ykLLm_H?&Wng)GeVjKySLSP;=Dt~LEe z>%~~+=5Q@~v%p^xT|?3|4bJ@t%ksdKcg|ELV#kT{Ms{3Liw;Z^`(hGuQ+&U!4hba} zW_b+TY}DD*Y&R!C{57>Vy-k1{8Wz=hNoPpYm~oIZ3AhE&+EVzlFuL0AZ~p0LUYZHryJqp|PMTQM#!=?AWIHsK_GQ@2aP>@4pvTvV49;v5xlH~`!*@un z_K~$F3{lL87wATeJff(icz1s8MNM4vX8%anRm0h*{3+JQo=D}mS>DDNhpk=3QuS;a znj6A*(yl}xu0gl1BntVvLgpHaau-#zr=||tIlRgcMkTLym|F|i=#fT^j2ON?A~Slu z_Obh%7{chMt*$@$?of7hz_Yo2lvsZ@|IaiMrfkV$bqU-R`V|Uwtn$Yy2rjUQ2ck0j z)OnfQ_rOo@SH=G0Kj2kyT`&D|5KQHhuCMjnTYPi0B5ue@4SCt?Dp^pd1HjMTyH(-w~xp>vZKGl5-gvxxD4sS{*p4bwE zOl@DBwe#2)$^M2AEAG1Z&~bo}quk;81_x=G8iN^pxt53U6LEe4;vUjn;a`i{-6r=t zz(Tjr@O&y>^2;d>@C1Ry%~t$&IQ6iu{=?yH5ly{r6RCYp39PDb>{zT_$IR9iiz)lr zfn)L`Q3SV9V`*20m__!RsxggErz%gfY-K#>#F~umz46$+Q3V81mV_O6WA@ZVhWmLC zp8ZCHPyQ`=lBgj`4^5IrwdLa-*KW4#hPoVQAFzNs31Q>s{QY3ohBAXNssgiFjJ>zl z8xM9e%I!!~EYH~OaQU~$!u2_KfgQKJa2UM+*<$&mhijlWAWEY zjR$64gN=ki#OQTSJRdIHls2qFB$N7!C zjOmEpgJnwX$$Eoub#5^Z7PR)7l7HB~9BQQV$>F3yy~3&fK$yeHh*HtV{&gjm6{efA z-*D;p6wZU6J8P5p0#lhG*MY-dkQee_E-Xcncu>R3ev3b!mzDkdCdJ=;Kgrcwf4Hjyg8o9$ z{)=n+FQ(Mz|58Kv4|n)~=<5?E4&%o_MH}#X1IboYeU2%6&w0*BzLB#fi*fny;90hw z{CQ2vmVBIgGl- zEQ;FL$23d!7OjMrRwRQImwY5`Wq+Q`>@%+2E2--Ojz7BCjo6Y}# zYFmFuZ@-a2)0W5P&^`YeGxwh9#DB*q%+i1AL;s)VcYdIWJ?YAorOk^{x}R3IjUGmS zsJ?zus7DFJNhIG$J-E99itU8UU%z=EwRa+Z8)B%@@U)Cm?|I2s{=zo2j8udsjk;d$ zF8Mj59aoX|k{lsbgd!rgrySear@G^$#Jp9K@!R3P;gd6wCtTcG%gW%M%WlU>kxOX~ z=j-X)gK9o8_A0Hup`nX;yc|h$8VP50TqS3vWp0ou;&ok>Zq9on+P!W|rJG7m>5ia( zsL0=U9vNug8{$+*nVKfyOBF!Jq-t5Mc+j8!2Gx}K5*$-ZzHaP{Hf2->S@?%989m>c zTbv9d=%i#x^ll1CV2++Ne_~FS>NzvJr+td%6m^%_4QgXvJ}D(syB1U?wEV>96uG05 zb&i-(t6wjipEdG9^GRb*l8pwWQst+-ZoHPP;tG1pGsP_>=}Y)T_edVBcQi5o;drNx z+k_Uv1~vK(F1$pCU)ntKku&;5lG2S!*6P!`v{-1A=m9jnn$O*~+)ebFBOu~O&Z@PW zW;u6*P;y!5q6Y&jUbjkS1fkl^UAvGFo>oI+<19VkY2dn_h$=6+rh)2GhnxTU`DMhS zWOoegKN6>p1xvhbhi|B43WLfLFAYuyf0?vc#lz>`JWh8zh%8>~zgC%kT`O9O%4&Te zN_zQln>>L<5mz;PGXxl0gJ12YICyE=Le{+3tr#$!F$?BNNFo4XH5BmCQ$`j{m_IYn z){C@Nq471+p0wSK3>`thbOaq=G_ZRlD(?C~l=}*IwjyVC#t2hS@>jtl2Cvk@Qd%qM z>(}?RvB|6@HZGkNsxGvWmgdTq!LQI^(HxjVQ9Ww%^R4H7yl`l1EMjOu$lW*n3y|g0 z^?{b;OF78ZeM_*&6W=6-IHnow8)#_P!p4E1yV{lA=a5;Y2_u{S_ayY^p>+DPO0Y%= zV!Xyc!#7=V?Tuq8uLsaJRNv&0xN$Do)>ALyauvzQ4}K|<%>$=eN=Vk3grmdm>y7<( ztKt$rkIJ9hIr7EpKJ-Uf*K_cD4JoyhoAdAcI+k-Mb0y-lRjxw3oZ~mdH2BNhW{2NT z6t0PIKV+$^?5TfEOW}^tw>C05=qO=A8eInKb)dT%t^UYY4WD$W+kD+tAevtUTc^`* z!whYbiQaF!i*>XOj1udDUZfS-6+Nn~LhG--x%Wb%%-5G@D{)ZFF0=5H#f@qG=<4Om zU(@MySKV6hF%0QB!}|ReY`7}=lNX0S&|%phF+Wz)II=!JKmYmleX7B?c_B*f#noS( zSivz#K?%=my&&zEgNAO_Kwf0JxA#Po2>3R=kd=87FpC}DSR~8h;-Wj5Y%LtlT%ej!rPLKIOmP+1aJyoKQ~z$bKz;^T#sOjf z12(6EaC{85wCv#e8d3%2{=1h#lZMe(T-s(CNJuCuSu#Ce!t3g`Zhu)@jFL(Oa!r%@ zOPw@7FQeJgw8Aj#<2bz6`B}jEoFa1IjRM%}te&Nl7ox6Sde8HDww1)bTDg zakw+kVH!YAAezRJEF$oTYh2(FKzCgTP0ZPY>pjK2tJuZ*RkVsbDns z??<<`z7TQSh^G~C{vnx00m)51-|M3gw^+(OiwwCiCfh$}{Er-!cC(1#e-loPtoQ)z!6AD{v-MHzii?E?OzbiwbAiXqc)@BgGF0g_Q$~N05~2y zE2~ao5~#tjPYSRAz~P!iv9k8pSNZ?RM~Nn1kwZwGUz>y_*<|~Nl$hBc?GF+M0Ovy{ zf{*xbe30cIyyr5lz){EZm-qg^cu5;cQN$O1#3Ili1O5D~@zPVszY>b7yfYla{yzO2 z=O-YU9uVf`tt>e!(kWR1raho-gMneIv!z@zzV-|!2HBh9-mHEWxVwh!IygH_J|WHr z_%dg7L@}TMzsHAov%FGV~N@!Bh-mGU!;q!oFWU)`kcd8q$}lTShXeZvqhPsu9oA1qD!K5oxVG*SDkm46abQ}Sfbyq+?%y; zC%@W0@6NYgf&f|o8Q0cadE`}rJf%8u11lMGMvzzQ@;}m*x$I1uJB({$lRn%2;WWIP znh4vJI^7%I9nn;~)p;*mRgEqi^VtF7M&1DE21yse&Wsy&wq7)Sd@|HJJsC7Nk-zkx zJtGrUkFRcj+=u|#FvCi^()xW`Z7w%W2@w`2X_&gTj5aKpT?59(CeVM>{E4wwH>|XCq{P3 zbITKuGXd<=#V?JGQWG}%A~#1EFnnk3A`n?)QqN_kn2C)@gd1dBGIZ8Sm#fH?z9gM2 z9~Y@*xn-bk^(PnnDTnRQ>|Rl?j&?pVQF+o*qRsh;6Es+^0OpvyhL*niku8?Jw;Wa0 z9+AzmCJp0Is$A#bgJ3ux6S@9g|Kfzcr);9RPBG_`iY^0fd?XVj-x`-r{*MxFSM=5k zHO1JzXMaEWeLQxr{PD~}WtkJ=oZicp6go4bp z<;7awqV&NTu}f3c+-c|zwj91_UwhDstbN_Y53#j>&K)o5H+E&Hsg3@W%F-=sC5@sr zs;s03j>`c**2N+00v}YW6ZP)>XrZ@?$Uv~+*j9`itEod~kiXnoK#pqw18-f=ZXyR_ zEdo7#j4*9DsUlS5>n4M$um7Fwl`VW}?TTIztY3*0HhLw}cJpD8C2Pd9-q#I}C212Y z`8WEfFhXlh>>hiYP;TLMKU;$vmi?b6UFEZMP2Z`^k_lhRHTyG{vb^HVjoTn4b=%n; zf|+7o?(7a20=P`bwi(QTn4KsK`6P1g8m;Y`P0D(~bvu-!n9?#bdr*AOTy$S>DeT+~ zWb+`lU8-CQ@ck6yREa~%BJfY(!(9VtRg2cj=K^m{44K_SJI+q_;}e4qgzEkF;Vp?| zPk#SDmnU5~+mvpQtxlCPSVnQO9n8AlKB1?h_^~t!VI5`LeFwGjRvL>FsQg5p1ZEZp zhP`M)$B6w|!!J|f4cw;ZcpBksn`x@prpa7L z`JJ=1@}9Wx`cYg;A!77>^*qdw59M7hJgcN$9{0I1@XuXXxyt%m$`@O*@lnw>X)y@n zbNW@1b4EqC>Czt87?N= ztT(pn@UR~A@=aM;Syz!}!KMb5Jqh*S`5rVq5uW~k_F~m@m%zU-K=u69`_OAEs-40u zzw-cj4dAGkCUr56d+`o<=7BdAThgC1|8PG4d!EVy5R3LkaU6QvH;pIznGtKq3NHFx%a^Z=JuW@l%Ay5z0jIq&z9{EUo@?=P3np9XC8 zNy^DhYi(uyZ3a^1u>EK9LlfJRo~xhA|9QX;?6m{ip?l`5UD&*^=HpTEXP$q-qZ|vi z|9RnVZ)7+dcyqyr!~A;_-T`Cn)9Ltsm-aja-e{x9C<`*|i-7EjzfaWd4gbHskqd14 zzD~=W7YG{OQ1_o_^8dBo^v#<$_bdc8Od6OM9Y3L~t9vzl!xh~ketA2S|K=>kx5D@T z3axxLGkwYa`zE(emhby4D=8~$dhjmr=H(UNXM=Xo0B_E`m!fkG>S!8UO#+^|Z*>)|H>0tb121X<}fI5cOhS%_mRe)2R_Z{xVcar;0J~E#FZk z({S&q&bMD*F8lj-&v_RmDI$I5=e{pX^-qTH`y~3g;!&silM@q_mmTfvQVgh>Qp`{w ze^BOuSZrD;_ndi`fmc1-i~pVdV3(?&zI*4N`tQ5=yO-?zAq8@or>mdKI;Vst06861 AhyVZp literal 0 HcmV?d00001 diff --git a/docs/source/user_guide/installation/images-windows-source/pic4-save-env-var.png b/docs/source/user_guide/installation/images-windows-source/pic4-save-env-var.png new file mode 100644 index 0000000000000000000000000000000000000000..2378cfcbf5031442037c8f52cfe9d25538d4021e GIT binary patch literal 178936 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 z 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�SE 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 Ci6W~2 literal 0 HcmV?d00001 diff --git a/docs/source/user_guide/installation/index.rst b/docs/source/user_guide/installation/index.rst index d6411348c5..d4db9f3a49 100644 --- a/docs/source/user_guide/installation/index.rst +++ b/docs/source/user_guide/installation/index.rst @@ -227,6 +227,7 @@ Installing a specific version? Installing from source? Check the advanced instal gnu-linux-mac windows + install-source-windows windows-wsl install-from-source install-from-docker diff --git a/docs/source/user_guide/installation/install-from-source.rst b/docs/source/user_guide/installation/install-from-source.rst index ea664b4a5b..3952ad01a4 100644 --- a/docs/source/user_guide/installation/install-from-source.rst +++ b/docs/source/user_guide/installation/install-from-source.rst @@ -32,6 +32,8 @@ To install PyBaMM, you will need: - A Fortran compiler (ex: ``gfortran``). - ``graphviz`` (optional), if you wish to build the documentation locally. - ``pandoc`` (optional) to convert the example Jupyter notebooks when building the documentation. +- ``texlive-latex-extra`` (optional) to convert model equations in latex. +- ``dvipng`` (optional) to convert a DVI file to a PNG image. You can install the above with @@ -39,7 +41,7 @@ You can install the above with .. code:: bash - sudo apt install python3.X python3.X-dev libopenblas-dev gcc gfortran graphviz cmake pandoc + sudo apt install python3.X python3.X-dev libopenblas-dev gcc gfortran graphviz cmake pandoc texlive-latex-extra dvipng Where ``X`` is the version sub-number. @@ -51,10 +53,18 @@ You can install the above with .. note:: - If you are using some other linux distribution you can install the equivalent packages for ``python3, cmake, gcc, gfortran, openblas, pandoc``. + If you are using some other linux distribution you can install the equivalent packages for ``python3, cmake, gcc, gfortran, openblas, pandoc, texlive-latex-extra, dvipng``. On Windows, you can install ``graphviz`` using the `Chocolatey `_ package manager, or follow the instructions on the `graphviz website `_. +In addition to the packages above, you will also need `TOML Kit `_, a ``toml`` table parser. This is necessary for installing build-time dependencies when installing in "editable mode" without build isolation. + +To install ``tomlkit`` to your local user accout (ensure you are not within a virtual environment), use the following command: + +.. code:: bash + + python3.X -m pip install --user tomlkit + Finally, we recommend using `Nox `_. You can install it to your local user account (make sure you are not within a virtual environment) with @@ -74,16 +84,13 @@ PyBaMM comes with a DAE solver based on the IDA solver provided by the SUNDIALS To use this solver, you must make sure that you have the necessary SUNDIALS components installed on your system. -The IDA-based solver is currently unavailable on windows. -If you are running windows, you can simply skip this section and jump to :ref:`pybamm-install`. - .. code:: bash # in the PyBaMM/ directory nox -s pybamm-requires This will download, compile and install the SuiteSparse and SUNDIALS libraries. -Both libraries are installed in ``~/.local``. +Both libraries are installed in ``PyBaMM/sundials_KLU_libs``. For users requiring more control over the installation process, the ``pybamm-requires`` session supports additional command-line arguments: @@ -94,6 +101,12 @@ For users requiring more control over the installation process, the ``pybamm-req .. code:: bash nox -s pybamm-requires -- --install-dir [custom_directory_path] + + After running this command, you need to export the environment variable ``INSTALL_DIR`` with the custom installation directory to link the libraries with the solver: + + .. code:: bash + + export INSTALL_DIR=[custom_directory_path] - ``--force``: Force the installation of SUNDIALS and SuiteSparse, even if they are already found in the specified directory. @@ -111,7 +124,6 @@ If you'd rather do things yourself, 1. Make sure you have CMake installed 2. Compile and install SuiteSparse (PyBaMM only requires the ``KLU`` component). 3. Compile and install SUNDIALS. -4. Clone the pybind11 repository in the ``PyBaMM/`` directory (make sure the directory is named ``pybind11``). PyBaMM ships with a Python script that automates points 2. and 3. You can run it with @@ -123,13 +135,19 @@ PyBaMM ships with a Python script that automates points 2. and 3. You can run it This script supports optional arguments for custom installations: - ``--install-dir``: Specify a custom installation directory for SUNDIALS and SuiteSparse. - By default, they are installed in ``~/.local``. + By default, they are installed in ``PyBaMM/sundials_KLU_libs``. Example: .. code:: bash - python scripts/install_KLU_Sundials.py --install-dir [custom_directory_path] + python scripts/install_KLU_Sundials.py --install-dir [custom_directory_path] + + After running this command, you need to export the environment variable ``INSTALL_DIR`` with the custom installation directory to link the libraries with the solver: + + .. code:: bash + + export INSTALL_DIR=[custom_directory_path] - ``--force``: Force the installation of SUNDIALS and SuiteSparse, even if they are already found in the specified directory. @@ -179,25 +197,62 @@ and run the tests to check your installation. Manual install ~~~~~~~~~~~~~~ -From the ``PyBaMM/`` directory, you can install PyBaMM using +We recommend to install PyBaMM within a virtual environment, in order +not to alter any distribution Python files. + +To create a virtual environment ``env`` within your current directory type: + +.. code:: bash + + virtualenv env + +You can then “activate” the environment using: + +.. code:: bash + + source env/bin/activate + +Now all the calls to pip described below will install PyBaMM and its +dependencies into the environment ``env``. When you are ready to exit +the environment and go back to your original system, just type: + +.. code:: bash + + deactivate + +From the ``PyBaMM/`` directory inside the virtual environment, you can install PyBaMM using .. code:: bash pip install . +If you want to install PyBaMM in an "editable mode", use the following command: + +.. code:: bash + + pip install -e . + If you intend to contribute to the development of PyBaMM, it is convenient to install in "editable mode", along with all the optional dependencies and useful -tools for development and documentation: +tools for development and documentation. + +Due to the ``--no-build-isolation`` flag in the "editable mode" command, you first need to install the build-time dependencies inside the virtual environment: .. code:: bash - pip install -e .[all,dev,docs] + pip install scikit-build-core==0.10.3 casadi cmake pybind11 + +You can now install PyBaMM in "editable mode" for development using the following commands: + +.. code:: bash + + pip install --no-build-isolation --config-settings=editable.rebuild=true -ve .[all,dev,docs] If you are using ``zsh`` or ``tcsh``, you would need to use different pattern matching: .. code:: bash - pip install -e '.[all,dev,docs]' + pip install --no-build-isolation --config-settings=editable.rebuild=true -ve '.[all,dev,docs]' Before you start contributing to PyBaMM, please read the `contributing guidelines `__. @@ -304,36 +359,53 @@ Here are some additional useful commands you can run with ``Nox``: Troubleshooting --------------- +**Problem:** I ran a ``nox``/python build command and encountered ``Could NOT find SUNDIALS (missing: SUNDIALS_INCLUDE_DIR SUNDIALS_LIBRARIES)`` error. + +**Solution:** This error occurs when the build system, ``scikit-build-core``, can not find the SUNDIALS libraries to build the ``IDAKLU`` solver. + +1. Run the following command to ensure SUNDIALS libraries are installed: + + .. code:: bash + + nox -s pybamm-requires -- --force + +2. If you are using a custom directory for SUNDIALS, set the ``INSTALL_DIR`` environment variable to specify the path: + + .. code:: bash + + export INSTALL_DIR=[custom_directory_path] + +**Problem:** When installing SUNDIALS, I encountered ``CMake Error: The source "../CMakeLists.txt" does not match the source "../CMakeLists.txt" used to generate cache`` error. + +**Solution:** This error occurs when there is a delay between installing and downloading SUNDIALS libraries. + +1. Remove the following directories from the PyBaMM directory if they exist: + + a. ``download_KLU_Sundials`` + b. ``sundials_KLU_libs`` + c. Any custom directory you have set for installation + +2. Re-run the command to install SUNDIALS. +3. If you are using a custom directory, make sure to set the ``INSTALL_DIR`` environment variable: + + .. code:: bash + + export INSTALL_DIR=[custom_directory_path] + **Problem:** I have made edits to source files in PyBaMM, but these are not being used when I run my Python script. -**Solution:** Make sure you have installed PyBaMM using the ``-e`` flag, -i.e. ``pip install -e .``. This sets the installed location of the -source files to your current directory. - -**Problem:** Errors when solving model -``ValueError: Integrator name ida does not exist``, or -``ValueError: Integrator name cvode does not exist``. +**Solution:** Make sure you have installed PyBaMM using the ``-e`` flag, like so: -**Solution:** This could mean that you have not installed -``scikits.odes`` correctly, check the instructions given above and make -sure each command was successful. +.. code:: bash -One possibility is that you have not set your ``LD_LIBRARY_PATH`` to -point to the sundials library, type ``echo $LD_LIBRARY_PATH`` and make -sure one of the directories printed out corresponds to where the -SUNDIALS libraries are located. + pip install -ve . -Another common reason is that you forget to install a BLAS library such -as OpenBLAS before installing SUNDIALS. Check the cmake output when you -configured SUNDIALS, it might say: +If you want to install to contribute to PyBaMM, use this command: -:: +.. code:: bash - -- A library with BLAS API not found. Please specify library location. - -- LAPACK requires BLAS + pip install --no-build-isolation --config-settings=editable.rebuild=true -ve .[all,dev,docs] -If this is the case, on a Debian or Ubuntu system you can install -OpenBLAS using ``sudo apt-get install libopenblas-dev`` (or -``brew install openblas`` for Mac OS) and then re-install SUNDIALS using -the instructions above. +This sets the installed location of the +source files to your current directory. diff --git a/docs/source/user_guide/installation/install-source-windows.rst b/docs/source/user_guide/installation/install-source-windows.rst new file mode 100644 index 0000000000..0098ec6b41 --- /dev/null +++ b/docs/source/user_guide/installation/install-source-windows.rst @@ -0,0 +1,382 @@ +Install from source (Windows) +========================================= + +.. contents:: + +This page describes the build and installation of PyBaMM from the source code, available on GitHub. Note that this is **not the recommended approach for most users** and should be reserved to people wanting to participate in the development of PyBaMM, or people who really need to use bleeding-edge feature(s) not yet available in the latest released version. If you do not fall in the two previous categories, you would be better off installing PyBaMM using pip or conda. + +Lastly, familiarity with the Python ecosystem is recommended (pip, virtualenvs). +Here is a gentle introduction/refresher: `Python Virtual Environments: A Primer `_. + + +Prerequisites +--------------- + +To use PyBaMM, you must have Python 3.9, 3.10, 3.11, or 3.12 installed. + +To install Python 3.X, download the installation files from `Python’s +website `_. Make sure to +tick the box on ``Add Python 3.X to PATH``. For more detailed +instructions please see the `official Python on Windows +guide `__. + +(Optional) If you wish to build the documentation locally, you can install ``graphviz`` using the `Chocolatey `_ package manager, + +.. code:: bash + + choco install graphviz --version=8.0.5 + +or follow the instructions on the `graphviz website `_. + +To install PyBaMM, you will need to install the following components: + +C++ Compiler +~~~~~~~~~~~~ + +PyBaMM uses a recent version of Microsoft Visual C++ (MSVC), which you can get using `Build Tools for Visual Studio Code 2022 `_. + +Note that you won't need Visual Studio 2022 entirely, just ``Desktop development with C++`` will suffice. + +.. image:: images-windows-source/pic1-msvc-select.png + :height: 456px + :width: 810px + :scale: 100% + :alt: Image with the packages to install + + +VCPKG +~~~~~ + +PyBaMM comes with a DAE solver based on the IDA solver provided by the SUNDIALS library. +To use this solver, you must make sure that you have the necessary SUNDIALS components +installed on your system. + +VCPKG automatically installs them for you during the build process. To learn more, have a look at the `offical documentation by Microsoft `_. + +To install VCPKG, follow the steps below: + +1. Open a Command Shell, and navigate to ``C:\``. + * We are installing VCPKG in ``C:\vcpkg`` + * If you wish to install in a custom directory, make sure to change environment variable ``VCPKG_ROOT_DIR`` before installation as mentioned here in :ref:`installing-pybamm`. +2. Clone VCPKG's GitHub repository + + .. code:: bash + + git clone https://github.com/microsoft/vcpkg.git + + + * If you do not have Git installed, download and install it from the `official downloads page `_. + +3. Navigate inside VCPKG directory and install it: + + .. code:: bash + + cd vcpkg && bootstrap-vcpkg.bat + +4. Add VCPKG directory to ``Path`` environment variable: + * Copy the location ``C:\vcpkg``, or the location of your custom directory. + * In the start menu, search for ``Edit the system environment variables`` and open it. + * Under the ``Advanced`` tab, click on ``Environment Variables`` + .. image:: images-windows-source/pic2-env-var-open.png + :scale: 70% + + + * Select ``Path`` from ``user variables`` if you want to set VCPKG just for you, or use ``Path`` from ``system variables`` to set VCPKG for all the users using your system. + .. image:: images-windows-source/pic3-show-path.png + :scale: 50% + + + * Select ``Path`` and click ``Edit``. select new. Paste the path to vcpasdfkg. then confirm your options by click okay. + .. image:: images-windows-source/pic4-save-env-var.png + :height: 900px + :width: 900px + :scale: 70% + + +5. Close and reopen Command Prompt and type ``vcpkg`` to see an output of different options available for ``vcpkg``. + +CMake +~~~~~ + +``CMake`` is required to install the SUNDIALS and other libraries required for the ``IDAKLU`` solver. +To install it, follow the link to the `official downloads page `_. + +Download an installer based on your system's architecture, i.e. ``x32/x64``, and make sure to check ``Add CMake to the PATH environment variable`` during installation. + +Python Packages +~~~~~~~~~~~~~~~ + +In addition to the packages above, you will also need `TOML Kit `_, a ``toml`` table parser. This is necessary for installing build-time dependencies when installing in "editable mode" without build isolation. + +To install ``tomlkit`` to your local user accout (ensure you are not within a virtual environment), use the following command: + +.. code:: bash + + python3.X -m pip install --user tomlkit + +Finally, we recommend using `Nox `_. +You can install it to your local user account (make sure you are not within a virtual environment) with + +.. code:: bash + + python3.X -m pip install --user nox + +Note that running ``nox`` will create new virtual environments for you to use, so you do not need to create one yourself. + +After installing the above packages, you need to add the following location to your ``Path`` environment variable to be able to run ``nox`` in a terminal, like command prompt. +Follow the instructions given above for VCPKG to add it to the ``Path``. + +.. code:: python + + C:\Users\\AppData\Roaming\Python\Python312\Scripts + +Make sure to replace ```` with your user name. + +.. _installing-pybamm: + +Installing PyBaMM +----------------- + +Open a Command Prompt and navigate to the folder where you want to install PyBaMM, + +1. Obtain the PyBaMM source code, clone the GitHub repository or download the source archive on the repository's homepage. + + .. code:: bash + + git clone https://github.com/pybamm-team/PyBaMM.git + +2. Set the following environment variables by pasting the commands to your Command Prompt. + + .. code-block:: bash + + set PYBAMM_USE_VCPKG=ON + set VCPKG_ROOT_DIR=C:\vcpkg + set VCPKG_DEFAULT_TRIPLET=x64-windows-static-md + set VCPKG_FEATURE_FLAGS=manifests,registries + set CMAKE_GENERATOR="Visual Studio 17 2022" + set CMAKE_GENERATOR_PLATFORM=x64 + +3. To check if the environment variables are properly set, try executing ``set CMAKE_GENERATOR_PLATFORM`` command to get an output ``CMAKE_GENERATOR_PLATFORM=x64``. + +.. note:: + + The environment variables set through Command Prompt will expire as soon as the session, i.e. terminal, is closed. Hence, the ``IDAKLU`` solver would not compile with the build commands if you closed and reopened the terminal. + + To avoid this, you can set them permanently by adding them in either ``User Variables`` or ``System Variables``, if you want to set them for all users on the system. For more information, follow `this tutorial `_ on how to set environmental variables permanently. + +You should now have everything ready to build and install PyBaMM successfully. + +Using ``Nox`` (recommended) +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +In the same Command Prompt shell where you've set the environment variables, execute the following command inside the PyBaMM directory: + +.. code:: text + + nox -s dev + +.. note:: + It is recommended to use ``--verbose`` or ``-v`` to see outputs of all commands run. + +This creates a virtual environment ``venv/`` inside the ``PyBaMM/`` directory. +It comes ready with PyBaMM and some useful development tools like `pre-commit `_ and `ruff `_. + +You can now activate the environment with + +.. code:: text + + venv\Scripts\activate.bat + +and run the tests to check your installation. + +Manual install +~~~~~~~~~~~~~~ + +We recommend to install PyBaMM within a virtual environment, in order not to alter any distribution python files. + +In the same Command Prompt shell where you've set the environment variables, install ``virtualenv`` by exexuting the following command: + +.. code:: bash + + python -m pip install virtualenv + +Create a virtual environment ``venv`` within the PyBaMM directory: + +.. code:: bash + + python -m virtualenv venv + +You can then “activate” the environment using: + +.. code:: text + + venv\Scripts\activate.bat + +Now all the calls to pip described below will install PyBaMM and its +dependencies into the environment ``venv``. When you are ready to exit +the environment and go back to your original system, just type: + +.. code:: bash + + deactivate + + +From the ``PyBaMM/`` directory inside the virtual environment, you can install PyBaMM using + +.. code:: bash + + pip install . + +If you want to install PyBaMM in an "editable mode", use the following command: + +.. code:: bash + + pip install -e . + +If you intend to contribute to the development of PyBaMM, it is convenient to +install in "editable mode", along with all the optional dependencies and useful +tools for development and documentation. + +Due to the ``--no-build-isolation`` flag in the "editable mode" command, you first need to install the build-time dependencies inside the virtual environment: + +.. code:: bash + + pip install scikit-build-core==0.10.3 pybind11 + +You can now install PyBaMM in "editable mode" for development using the following commands: + +.. code:: bash + + pip install --no-build-isolation --config-settings=editable.rebuild=true -ve .[all,dev,docs] + +Before you start contributing to PyBaMM, please read the `contributing +guidelines `__. + +Running the tests +----------------- + +Using Nox (recommended) +~~~~~~~~~~~~~~~~~~~~~~~ + +You can use ``Nox`` to run the unit tests and example notebooks in isolated virtual environments. + +Make sure to install ``graphviz`` using the `Chocolatey `_ package manager or, by following the instructions on the `graphviz website `_ to pass all the tests. Otherwise, you can safely ignore the failed tests needing ``graphviz``. + +The default command + +.. code:: bash + + nox + +will run pre-commit and run the unit tests. +This can take several minutes. + +To just run the unit tests, use + +.. code:: bash + + nox -s unit + +Similarly, to run the integration tests, use + +.. code:: bash + + nox -s integration + +Finally, to run the unit and the integration suites sequentially, use + +.. code:: bash + + nox -s tests + +Using the test runner +~~~~~~~~~~~~~~~~~~~~~~ + +You can run unit tests for PyBaMM inside the virtual environment using + +.. code:: bash + + # in the PyBaMM/ directory + python run-tests.py --unit + + +The above starts a sub-process using the current python interpreter (i.e. using your current +Python environment) and run the unit tests. This can take a few minutes. + +You can also use the test runner to run the doctests: + +.. code:: bash + + python run-tests.py --doctest + +There is more to the PyBaMM test runner. To see a list of all options, type + +.. code:: bash + + python run-tests.py --help + +How to build the PyBaMM documentation +------------------------------------- + +The documentation is built using + +.. code:: bash + + nox -s docs + +This will build the documentation and serve it locally (thanks to `sphinx-autobuild `_) for preview. +The preview will be updated automatically following changes. + +Doctests, examples, and coverage +-------------------------------- + +``Nox`` can also be used to run doctests, run examples, and generate a coverage report using: + +- ``nox -s examples``: Run the Jupyter notebooks in ``docs/source/examples/notebooks/``. +- ``nox -s examples -- ``: Run specific Jupyter notebooks. +- ``nox -s scripts``: Run the example scripts in ``examples/scripts/``. +- ``nox -s doctests``: Run doctests. +- ``nox -s coverage``: Measure current test coverage and generate a coverage report. +- ``nox -s quick``: Run integration tests, unit tests, and doctests sequentially. + +Extra tips while using ``Nox`` +------------------------------ + +Here are some additional useful commands you can run with ``Nox``: + +- ``--verbose or -v``: Enables verbose mode, providing more detailed output during the execution of Nox sessions. +- ``--list or -l``: Lists all available Nox sessions and their descriptions. +- ``--stop-on-first-error``: Stops the execution of Nox sessions immediately after the first error or failure occurs. +- ``--envdir ``: Specifies the directory where Nox creates and manages the virtual environments used by the sessions. In this case, the directory is set to ````. +- ``--install-only``: Skips the test execution and only performs the installation step defined in the Nox sessions. +- ``--nocolor``: Disables the color output in the console during the execution of Nox sessions. +- ``--report output.json``: Generates a JSON report of the Nox session execution and saves it to the specified file, in this case, "output.json". +- ``nox -s docs --non-interactive``: Builds the documentation without serving it locally (using ``sphinx-build`` instead of ``sphinx-autobuild``). + +Troubleshooting +--------------- + +**Problem:** I ran a ``nox``/python build command and encountered ``Configuring incomplete, errors occurred!`` error. + +**Solution:** This can occur when the environment variables are improperly set in the terminal. + +1. Make sure you've set environment variables before running any ``nox``/python build command. +2. Try running the build command again in the same terminal. + +**Problem:** I have made edits to source files in PyBaMM, but these are +not being used when I run my Python script. + +**Solution:** Make sure you have installed PyBaMM using the ``-e`` flag, like so: + +.. code:: bash + + pip install -ve . + +If you want to install to contribute to PyBaMM, use this command: + +.. code:: bash + + pip install --no-build-isolation --config-settings=editable.rebuild=true -ve .[all,dev,docs] + +This sets the installed location of the +source files to your current directory. diff --git a/docs/source/user_guide/installation/windows.rst b/docs/source/user_guide/installation/windows.rst index 02d9f8dd29..2aaa3a8930 100644 --- a/docs/source/user_guide/installation/windows.rst +++ b/docs/source/user_guide/installation/windows.rst @@ -33,21 +33,21 @@ To install ``virtualenv``, type: python -m pip install virtualenv -To create a virtual environment ``env`` within your current directory +To create a virtual environment ``venv`` within your current directory type: .. code:: bash - python -m virtualenv env + python -m virtualenv venv You can then “activate” the environment using: .. code:: - env\Scripts\activate.bat + venv\Scripts\activate.bat Now all the calls to pip described below will install PyBaMM and its -dependencies into the environment ``env``. When you are ready to exit +dependencies into the environment ``venv``. When you are ready to exit the environment and go back to your original system, just type: .. code:: bash diff --git a/noxfile.py b/noxfile.py index 245a99c19f..76cf8e35a2 100644 --- a/noxfile.py +++ b/noxfile.py @@ -217,7 +217,10 @@ def set_dev(session): set_environment_variables(PYBAMM_ENV, session=session) session.install("virtualenv", "cmake") session.run("virtualenv", os.fsdecode(VENV_DIR), silent=True) - python = os.fsdecode(VENV_DIR.joinpath("bin/python")) + if sys.platform == "win32": + python = os.fsdecode(VENV_DIR.joinpath("Scripts\\python")) + else: + python = os.fsdecode(VENV_DIR.joinpath("bin/python")) components = ["all", "dev", "jax"] with open("pyproject.toml", encoding="utf-8") as file: toml_data = tomlkit.parse(file.read()) From 7a28544a7e67416d1ce5a7366abcfe5c512435a4 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Tue, 20 Aug 2024 19:34:12 +0000 Subject: [PATCH 28/61] style: pre-commit fixes --- .../installation/install-from-source.rst | 16 ++++----- .../installation/install-source-windows.rst | 36 +++++++++---------- 2 files changed, 26 insertions(+), 26 deletions(-) diff --git a/docs/source/user_guide/installation/install-from-source.rst b/docs/source/user_guide/installation/install-from-source.rst index 3952ad01a4..a650cf7ac6 100644 --- a/docs/source/user_guide/installation/install-from-source.rst +++ b/docs/source/user_guide/installation/install-from-source.rst @@ -57,7 +57,7 @@ You can install the above with On Windows, you can install ``graphviz`` using the `Chocolatey `_ package manager, or follow the instructions on the `graphviz website `_. -In addition to the packages above, you will also need `TOML Kit `_, a ``toml`` table parser. This is necessary for installing build-time dependencies when installing in "editable mode" without build isolation. +In addition to the packages above, you will also need `TOML Kit `_, a ``toml`` table parser. This is necessary for installing build-time dependencies when installing in "editable mode" without build isolation. To install ``tomlkit`` to your local user accout (ensure you are not within a virtual environment), use the following command: @@ -101,11 +101,11 @@ For users requiring more control over the installation process, the ``pybamm-req .. code:: bash nox -s pybamm-requires -- --install-dir [custom_directory_path] - + After running this command, you need to export the environment variable ``INSTALL_DIR`` with the custom installation directory to link the libraries with the solver: .. code:: bash - + export INSTALL_DIR=[custom_directory_path] - ``--force``: Force the installation of SUNDIALS and SuiteSparse, even if they are already found in the specified directory. @@ -146,7 +146,7 @@ This script supports optional arguments for custom installations: After running this command, you need to export the environment variable ``INSTALL_DIR`` with the custom installation directory to link the libraries with the solver: .. code:: bash - + export INSTALL_DIR=[custom_directory_path] - ``--force``: Force the installation of SUNDIALS and SuiteSparse, even if they are already found in the specified directory. @@ -364,20 +364,20 @@ Troubleshooting **Solution:** This error occurs when the build system, ``scikit-build-core``, can not find the SUNDIALS libraries to build the ``IDAKLU`` solver. 1. Run the following command to ensure SUNDIALS libraries are installed: - + .. code:: bash nox -s pybamm-requires -- --force 2. If you are using a custom directory for SUNDIALS, set the ``INSTALL_DIR`` environment variable to specify the path: - + .. code:: bash export INSTALL_DIR=[custom_directory_path] **Problem:** When installing SUNDIALS, I encountered ``CMake Error: The source "../CMakeLists.txt" does not match the source "../CMakeLists.txt" used to generate cache`` error. -**Solution:** This error occurs when there is a delay between installing and downloading SUNDIALS libraries. +**Solution:** This error occurs when there is a delay between installing and downloading SUNDIALS libraries. 1. Remove the following directories from the PyBaMM directory if they exist: @@ -387,7 +387,7 @@ Troubleshooting 2. Re-run the command to install SUNDIALS. 3. If you are using a custom directory, make sure to set the ``INSTALL_DIR`` environment variable: - + .. code:: bash export INSTALL_DIR=[custom_directory_path] diff --git a/docs/source/user_guide/installation/install-source-windows.rst b/docs/source/user_guide/installation/install-source-windows.rst index 0098ec6b41..240ca2a83f 100644 --- a/docs/source/user_guide/installation/install-source-windows.rst +++ b/docs/source/user_guide/installation/install-source-windows.rst @@ -20,7 +20,7 @@ tick the box on ``Add Python 3.X to PATH``. For more detailed instructions please see the `official Python on Windows guide `__. -(Optional) If you wish to build the documentation locally, you can install ``graphviz`` using the `Chocolatey `_ package manager, +(Optional) If you wish to build the documentation locally, you can install ``graphviz`` using the `Chocolatey `_ package manager, .. code:: bash @@ -55,20 +55,20 @@ VCPKG automatically installs them for you during the build process. To learn mor To install VCPKG, follow the steps below: -1. Open a Command Shell, and navigate to ``C:\``. - * We are installing VCPKG in ``C:\vcpkg`` +1. Open a Command Shell, and navigate to ``C:\``. + * We are installing VCPKG in ``C:\vcpkg`` * If you wish to install in a custom directory, make sure to change environment variable ``VCPKG_ROOT_DIR`` before installation as mentioned here in :ref:`installing-pybamm`. -2. Clone VCPKG's GitHub repository - +2. Clone VCPKG's GitHub repository + .. code:: bash git clone https://github.com/microsoft/vcpkg.git - + * If you do not have Git installed, download and install it from the `official downloads page `_. 3. Navigate inside VCPKG directory and install it: - + .. code:: bash cd vcpkg && bootstrap-vcpkg.bat @@ -76,12 +76,12 @@ To install VCPKG, follow the steps below: 4. Add VCPKG directory to ``Path`` environment variable: * Copy the location ``C:\vcpkg``, or the location of your custom directory. * In the start menu, search for ``Edit the system environment variables`` and open it. - * Under the ``Advanced`` tab, click on ``Environment Variables`` + * Under the ``Advanced`` tab, click on ``Environment Variables`` .. image:: images-windows-source/pic2-env-var-open.png - :scale: 70% + :scale: 70% + - - * Select ``Path`` from ``user variables`` if you want to set VCPKG just for you, or use ``Path`` from ``system variables`` to set VCPKG for all the users using your system. + * Select ``Path`` from ``user variables`` if you want to set VCPKG just for you, or use ``Path`` from ``system variables`` to set VCPKG for all the users using your system. .. image:: images-windows-source/pic3-show-path.png :scale: 50% @@ -99,14 +99,14 @@ CMake ~~~~~ ``CMake`` is required to install the SUNDIALS and other libraries required for the ``IDAKLU`` solver. -To install it, follow the link to the `official downloads page `_. +To install it, follow the link to the `official downloads page `_. Download an installer based on your system's architecture, i.e. ``x32/x64``, and make sure to check ``Add CMake to the PATH environment variable`` during installation. Python Packages ~~~~~~~~~~~~~~~ -In addition to the packages above, you will also need `TOML Kit `_, a ``toml`` table parser. This is necessary for installing build-time dependencies when installing in "editable mode" without build isolation. +In addition to the packages above, you will also need `TOML Kit `_, a ``toml`` table parser. This is necessary for installing build-time dependencies when installing in "editable mode" without build isolation. To install ``tomlkit`` to your local user accout (ensure you are not within a virtual environment), use the following command: @@ -137,18 +137,18 @@ Make sure to replace ```` with your user name. Installing PyBaMM ----------------- -Open a Command Prompt and navigate to the folder where you want to install PyBaMM, +Open a Command Prompt and navigate to the folder where you want to install PyBaMM, 1. Obtain the PyBaMM source code, clone the GitHub repository or download the source archive on the repository's homepage. - + .. code:: bash - + git clone https://github.com/pybamm-team/PyBaMM.git 2. Set the following environment variables by pasting the commands to your Command Prompt. .. code-block:: bash - + set PYBAMM_USE_VCPKG=ON set VCPKG_ROOT_DIR=C:\vcpkg set VCPKG_DEFAULT_TRIPLET=x64-windows-static-md @@ -158,7 +158,7 @@ Open a Command Prompt and navigate to the folder where you want to install PyBaM 3. To check if the environment variables are properly set, try executing ``set CMAKE_GENERATOR_PLATFORM`` command to get an output ``CMAKE_GENERATOR_PLATFORM=x64``. -.. note:: +.. note:: The environment variables set through Command Prompt will expire as soon as the session, i.e. terminal, is closed. Hence, the ``IDAKLU`` solver would not compile with the build commands if you closed and reopened the terminal. From 8a0dd426bcae9b3c1647ce71d0154aaf97260ebe Mon Sep 17 00:00:00 2001 From: cringeyburger Date: Wed, 21 Aug 2024 01:35:57 +0530 Subject: [PATCH 29/61] fix: style issues --- docs/source/user_guide/installation/install-source-windows.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/user_guide/installation/install-source-windows.rst b/docs/source/user_guide/installation/install-source-windows.rst index 240ca2a83f..24dd5cbf24 100644 --- a/docs/source/user_guide/installation/install-source-windows.rst +++ b/docs/source/user_guide/installation/install-source-windows.rst @@ -126,7 +126,7 @@ Note that running ``nox`` will create new virtual environments for you to use, s After installing the above packages, you need to add the following location to your ``Path`` environment variable to be able to run ``nox`` in a terminal, like command prompt. Follow the instructions given above for VCPKG to add it to the ``Path``. -.. code:: python +.. code:: C:\Users\\AppData\Roaming\Python\Python312\Scripts From 1e685e9cbade168be9d6bc020c3eb1b7b7b8206c Mon Sep 17 00:00:00 2001 From: cringeyburger Date: Wed, 21 Aug 2024 02:52:18 +0530 Subject: [PATCH 30/61] fix: set unique names and clean Dockerfile --- .../source/user_guide/installation/install-source-windows.rst | 4 ++-- scripts/Dockerfile | 3 +-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/docs/source/user_guide/installation/install-source-windows.rst b/docs/source/user_guide/installation/install-source-windows.rst index 24dd5cbf24..60647cd00c 100644 --- a/docs/source/user_guide/installation/install-source-windows.rst +++ b/docs/source/user_guide/installation/install-source-windows.rst @@ -65,7 +65,7 @@ To install VCPKG, follow the steps below: git clone https://github.com/microsoft/vcpkg.git - * If you do not have Git installed, download and install it from the `official downloads page `_. + * If you do not have Git installed, download and install it from the `official Git download page `_. 3. Navigate inside VCPKG directory and install it: @@ -99,7 +99,7 @@ CMake ~~~~~ ``CMake`` is required to install the SUNDIALS and other libraries required for the ``IDAKLU`` solver. -To install it, follow the link to the `official downloads page `_. +To install it, follow the link to the `official CMake downloads page `_. Download an installer based on your system's architecture, i.e. ``x32/x64``, and make sure to check ``Add CMake to the PATH environment variable`` during installation. diff --git a/scripts/Dockerfile b/scripts/Dockerfile index 49c5d67dc7..66c80d71d6 100644 --- a/scripts/Dockerfile +++ b/scripts/Dockerfile @@ -30,9 +30,8 @@ RUN #!/bin/bash && source /home/pybamm/venv/bin/activate; ENV PATH="$VIRTUAL_ENV/bin:$PATH" RUN uv pip install --upgrade scikit-build-core==0.10.3 wget cmake casadi pybind11 -ENV BUILD_IDAKLU=ON RUN python scripts/install_KLU_Sundials.py && \ - uv pip install --no-build-isolation --config-settings=editable.rebuild=true -Cbuild-dir=build -ve ".[all,dev,docs,jax]"; + uv pip install --no-build-isolation --config-settings=editable.rebuild=true -ve ".[all,dev,docs,jax]"; ENTRYPOINT ["/bin/bash"] From b862f9cf3e17aff64e237d31797c1398db179d9e Mon Sep 17 00:00:00 2001 From: cringeyburger Date: Wed, 21 Aug 2024 10:49:18 +0530 Subject: [PATCH 31/61] fix: pin `scipy` till upstream issues are fixed --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index a6df49817b..ad3b7cb30c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -36,7 +36,7 @@ classifiers = [ ] dependencies = [ "numpy>=1.23.5,<2.0.0", - "scipy>=1.11.4", + "scipy>=1.11.4,<1.14.1", "casadi>=3.6.5", "xarray>=2022.6.0", "anytree>=2.8.0", From 5cdb904f096fccb232d678efffd62d9db475d1a8 Mon Sep 17 00:00:00 2001 From: cringeyburger Date: Wed, 21 Aug 2024 11:48:20 +0530 Subject: [PATCH 32/61] improve docs --- .../installation/install-from-source.rst | 6 +-- .../installation/install-source-windows.rst | 48 +++++++++---------- 2 files changed, 27 insertions(+), 27 deletions(-) diff --git a/docs/source/user_guide/installation/install-from-source.rst b/docs/source/user_guide/installation/install-from-source.rst index a650cf7ac6..d7c7459f16 100644 --- a/docs/source/user_guide/installation/install-from-source.rst +++ b/docs/source/user_guide/installation/install-from-source.rst @@ -57,9 +57,9 @@ You can install the above with On Windows, you can install ``graphviz`` using the `Chocolatey `_ package manager, or follow the instructions on the `graphviz website `_. -In addition to the packages above, you will also need `TOML Kit `_, a ``toml`` table parser. This is necessary for installing build-time dependencies when installing in "editable mode" without build isolation. +In addition to the packages above, you will need `TOML Kit `_, a ``toml`` table parser. The tool is necessary to install build-time dependencies in "editable mode" without build isolation. -To install ``tomlkit`` to your local user accout (ensure you are not within a virtual environment), use the following command: +To install ``tomlkit`` to your local user account (ensure you are not within a virtual environment), use the following command: .. code:: bash @@ -407,5 +407,5 @@ If you want to install to contribute to PyBaMM, use this command: pip install --no-build-isolation --config-settings=editable.rebuild=true -ve .[all,dev,docs] -This sets the installed location of the +These commands set the installed location of the source files to your current directory. diff --git a/docs/source/user_guide/installation/install-source-windows.rst b/docs/source/user_guide/installation/install-source-windows.rst index 60647cd00c..4438c35ea9 100644 --- a/docs/source/user_guide/installation/install-source-windows.rst +++ b/docs/source/user_guide/installation/install-source-windows.rst @@ -35,7 +35,7 @@ C++ Compiler PyBaMM uses a recent version of Microsoft Visual C++ (MSVC), which you can get using `Build Tools for Visual Studio Code 2022 `_. -Note that you won't need Visual Studio 2022 entirely, just ``Desktop development with C++`` will suffice. +Note that you won't need Visual Studio 2022 entirely; just ``Desktop development with C++`` will suffice. .. image:: images-windows-source/pic1-msvc-select.png :height: 456px @@ -48,16 +48,16 @@ VCPKG ~~~~~ PyBaMM comes with a DAE solver based on the IDA solver provided by the SUNDIALS library. -To use this solver, you must make sure that you have the necessary SUNDIALS components +To use this solver, you must ensure you have the necessary SUNDIALS components installed on your system. -VCPKG automatically installs them for you during the build process. To learn more, have a look at the `offical documentation by Microsoft `_. +VCPKG automatically installs them for you during the build process. To learn more, look at the `official documentation by Microsoft `_. To install VCPKG, follow the steps below: 1. Open a Command Shell, and navigate to ``C:\``. * We are installing VCPKG in ``C:\vcpkg`` - * If you wish to install in a custom directory, make sure to change environment variable ``VCPKG_ROOT_DIR`` before installation as mentioned here in :ref:`installing-pybamm`. + * If you wish to install in a custom directory, change the environment variable ``VCPKG_ROOT_DIR`` before installation as mentioned herein :ref:`installing-pybamm`. 2. Clone VCPKG's GitHub repository .. code:: bash @@ -74,41 +74,41 @@ To install VCPKG, follow the steps below: cd vcpkg && bootstrap-vcpkg.bat 4. Add VCPKG directory to ``Path`` environment variable: - * Copy the location ``C:\vcpkg``, or the location of your custom directory. + * Copy the location ``C:\vcpkg`` or the location of your custom directory. * In the start menu, search for ``Edit the system environment variables`` and open it. * Under the ``Advanced`` tab, click on ``Environment Variables`` .. image:: images-windows-source/pic2-env-var-open.png :scale: 70% - * Select ``Path`` from ``user variables`` if you want to set VCPKG just for you, or use ``Path`` from ``system variables`` to set VCPKG for all the users using your system. + * Select ``Path`` from ``user variables`` if you want to set VCPKG just for you, or use ``Path`` from ``system variables`` to set VCPKG for all your system users. .. image:: images-windows-source/pic3-show-path.png :scale: 50% - * Select ``Path`` and click ``Edit``. select new. Paste the path to vcpasdfkg. then confirm your options by click okay. + * Select ``Path`` and select ``NEW``. Paste the location to VCPKG, then confirm your options by clicking ``OK``. .. image:: images-windows-source/pic4-save-env-var.png :height: 900px :width: 900px :scale: 70% -5. Close and reopen Command Prompt and type ``vcpkg`` to see an output of different options available for ``vcpkg``. +5. Close and reopen Command Prompt and execute ``vcpkg`` to see an output of different options available for ``vcpkg``. CMake ~~~~~ -``CMake`` is required to install the SUNDIALS and other libraries required for the ``IDAKLU`` solver. +``CMake`` is required to install the SUNDIALS and other libraries for the ``IDAKLU`` solver. To install it, follow the link to the `official CMake downloads page `_. -Download an installer based on your system's architecture, i.e. ``x32/x64``, and make sure to check ``Add CMake to the PATH environment variable`` during installation. +Download an installer based on your system's architecture, i.e. ``x32/x64``, and check ``Add CMake to the PATH environment variable`` during installation. Python Packages ~~~~~~~~~~~~~~~ -In addition to the packages above, you will also need `TOML Kit `_, a ``toml`` table parser. This is necessary for installing build-time dependencies when installing in "editable mode" without build isolation. +In addition to the packages above, you will need `TOML Kit `_, a ``toml`` table parser. The tool is necessary to install build-time dependencies in "editable mode" without build isolation. -To install ``tomlkit`` to your local user accout (ensure you are not within a virtual environment), use the following command: +To install ``tomlkit`` to your local user account (ensure you are not within a virtual environment), use the following command: .. code:: bash @@ -123,14 +123,14 @@ You can install it to your local user account (make sure you are not within a vi Note that running ``nox`` will create new virtual environments for you to use, so you do not need to create one yourself. -After installing the above packages, you need to add the following location to your ``Path`` environment variable to be able to run ``nox`` in a terminal, like command prompt. -Follow the instructions given above for VCPKG to add it to the ``Path``. +After installing the above packages, you must add the following location to your ``Path`` environment variable to run ``nox`` in a terminal, like Command Prompt. +Follow the instructions above for VCPKG to add it to the ``Path``. .. code:: - C:\Users\\AppData\Roaming\Python\Python312\Scripts + C:\Users\\AppData\Roaming\Python\Python3\Scripts -Make sure to replace ```` with your user name. +Make sure to replace ```` with your user name and ``X`` with your Python subversion. .. _installing-pybamm: @@ -139,7 +139,7 @@ Installing PyBaMM Open a Command Prompt and navigate to the folder where you want to install PyBaMM, -1. Obtain the PyBaMM source code, clone the GitHub repository or download the source archive on the repository's homepage. +1. Obtain the PyBaMM source code by cloning the GitHub repository or downloading the source archive on the repository's homepage. .. code:: bash @@ -160,9 +160,9 @@ Open a Command Prompt and navigate to the folder where you want to install PyBaM .. note:: - The environment variables set through Command Prompt will expire as soon as the session, i.e. terminal, is closed. Hence, the ``IDAKLU`` solver would not compile with the build commands if you closed and reopened the terminal. + The environment variables set through Command Prompt will expire as soon as the session, i.e. terminal, is closed. Hence, if you closed and reopened the terminal, the ``IDAKLU`` solver would not compile with the build commands. - To avoid this, you can set them permanently by adding them in either ``User Variables`` or ``System Variables``, if you want to set them for all users on the system. For more information, follow `this tutorial `_ on how to set environmental variables permanently. + To avoid this, you can set them permanently by adding them to either ``User Variables`` or ``System Variables`` if you want to set them for all users on the system. For more information, follow `this tutorial `_ on permanently setting environment variables. You should now have everything ready to build and install PyBaMM successfully. @@ -192,9 +192,9 @@ and run the tests to check your installation. Manual install ~~~~~~~~~~~~~~ -We recommend to install PyBaMM within a virtual environment, in order not to alter any distribution python files. +We recommend installing PyBaMM within a virtual environment to avoid altering any distribution of Python files. -In the same Command Prompt shell where you've set the environment variables, install ``virtualenv`` by exexuting the following command: +In the same Command Prompt shell where you've set the environment variables, install ``virtualenv`` by executing the following command: .. code:: bash @@ -212,7 +212,7 @@ You can then “activate” the environment using: venv\Scripts\activate.bat -Now all the calls to pip described below will install PyBaMM and its +Now, all the calls to pip described below will install PyBaMM and its dependencies into the environment ``venv``. When you are ready to exit the environment and go back to your original system, just type: @@ -260,7 +260,7 @@ Using Nox (recommended) You can use ``Nox`` to run the unit tests and example notebooks in isolated virtual environments. -Make sure to install ``graphviz`` using the `Chocolatey `_ package manager or, by following the instructions on the `graphviz website `_ to pass all the tests. Otherwise, you can safely ignore the failed tests needing ``graphviz``. +Make sure to install ``graphviz`` using the `Chocolatey `_ package manager or by following the instructions on the `graphviz website `_ to pass all the tests. Otherwise, you can safely ignore the failed tests needing ``graphviz``. The default command @@ -378,5 +378,5 @@ If you want to install to contribute to PyBaMM, use this command: pip install --no-build-isolation --config-settings=editable.rebuild=true -ve .[all,dev,docs] -This sets the installed location of the +These commands set the installed location of the source files to your current directory. From 1f6bf65c1e29634064feca5284cab54dc2f3b2dc Mon Sep 17 00:00:00 2001 From: cringeyburger Date: Wed, 21 Aug 2024 15:28:37 +0530 Subject: [PATCH 33/61] fix: revert pin on `scipy` --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index ad3b7cb30c..a6df49817b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -36,7 +36,7 @@ classifiers = [ ] dependencies = [ "numpy>=1.23.5,<2.0.0", - "scipy>=1.11.4,<1.14.1", + "scipy>=1.11.4", "casadi>=3.6.5", "xarray>=2022.6.0", "anytree>=2.8.0", From 7ec445bbcb6a890129c6d2e170e41822100341c0 Mon Sep 17 00:00:00 2001 From: cringeyburger Date: Sat, 24 Aug 2024 01:00:00 +0530 Subject: [PATCH 34/61] feat: add new `.bat` script to set environment variables permanently --- scripts/windows_setup.bat | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 scripts/windows_setup.bat diff --git a/scripts/windows_setup.bat b/scripts/windows_setup.bat new file mode 100644 index 0000000000..c116609985 --- /dev/null +++ b/scripts/windows_setup.bat @@ -0,0 +1,11 @@ +@echo off + +echo Setting environment variables... + +setx PYBAMM_USE_VCPKG ON +setx VCPKG_ROOT_DIR C:\vcpkg +setx VCPKG_DEFAULT_TRIPLET x64-windows-static-md +setx VCPKG_FEATURE_FLAGS manifests,registries + +echo Environment variables have been set. Please open a new Command Prompt to see the changes. +pause From 52658564899a94299ebccc31ed2378296edaffa9 Mon Sep 17 00:00:00 2001 From: cringeyburger Date: Sat, 24 Aug 2024 02:13:00 +0530 Subject: [PATCH 35/61] feat: remove upgrade pip commands from noxfile --- noxfile.py | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/noxfile.py b/noxfile.py index 76cf8e35a2..65ca60df50 100644 --- a/noxfile.py +++ b/noxfile.py @@ -90,7 +90,6 @@ def set_environment_variables(env_dict, session): def run_pybamm_requires(session): """Download, compile, and install the build-time requirements for Linux and macOS. Supports --install-dir for custom installation paths and --force to force installation.""" set_environment_variables(PYBAMM_ENV, session=session) - session.run("python", "-m", "pip", "install", "--upgrade", "pip") if sys.platform != "win32": session.install("cmake", silent=False) session.run("python", "scripts/install_KLU_Sundials.py", *session.posargs) @@ -125,7 +124,6 @@ def run_pybamm_requires(session): def run_coverage(session): """Run the coverage tests and generate an XML report.""" set_environment_variables(PYBAMM_ENV, session=session) - session.run("python", "-m", "pip", "install", "--upgrade", "pip") session.install("coverage", silent=False) # Using plugin here since coverage runs unit tests on linux with latest python version. if "CI" in os.environ: @@ -147,7 +145,6 @@ def run_coverage(session): def run_integration(session): """Run the integration tests.""" set_environment_variables(PYBAMM_ENV, session=session) - session.run("python", "-m", "pip", "install", "--upgrade", "pip") if ( "CI" in os.environ and sys.version_info[:2] == (3, 12) @@ -161,7 +158,6 @@ def run_integration(session): @nox.session(name="doctests") def run_doctests(session): """Run the doctests and generate the output(s) in the docs/build/ directory.""" - session.run("python", "-m", "pip", "install", "--upgrade", "pip") session.install("-e", ".[all,dev,docs]", silent=False) session.run( "python", @@ -176,7 +172,6 @@ def run_doctests(session): def run_unit(session): """Run the unit tests.""" set_environment_variables(PYBAMM_ENV, session=session) - session.run("python", "-m", "pip", "install", "--upgrade", "pip") session.install("-e", ".[all,dev,jax]", silent=False) if PYBAMM_ENV.get("PYBAMM_IDAKLU_EXPR_IREE") == "ON": # See comments in 'dev' session @@ -194,7 +189,6 @@ def run_unit(session): def run_examples(session): """Run the examples tests for Jupyter notebooks.""" set_environment_variables(PYBAMM_ENV, session=session) - session.run("python", "-m", "pip", "install", "--upgrade", "pip") session.install("-e", ".[all,dev]", silent=False) notebooks_to_test = session.posargs if session.posargs else [] session.run( @@ -206,7 +200,6 @@ def run_examples(session): def run_scripts(session): """Run the scripts tests for Python scripts.""" set_environment_variables(PYBAMM_ENV, session=session) - session.run("python", "-m", "pip", "install", "--upgrade", "pip") session.install("-e", ".[all,dev]", silent=False) session.run("python", "-m", "pytest", "-m", "scripts") @@ -241,7 +234,6 @@ def set_dev(session): # - IREE compiler matches Jaxlib (use the matching nightly build) [pyproject.toml] components.append("iree") args = ["--find-links", PYBAMM_ENV.get("IREE_INDEX_URL")] - session.run(python, "-m", "pip", "install", "--upgrade", "pip") session.run(python, "-m", "pip", "install", *build_dependencies) session.run( python, @@ -262,7 +254,6 @@ def set_dev(session): def run_tests(session): """Run the unit tests and integration tests sequentially.""" set_environment_variables(PYBAMM_ENV, session=session) - session.run("python", "-m", "pip", "install", "--upgrade", "pip") session.install("-e", ".[all,dev,jax]", silent=False) specific_test_files = session.posargs if session.posargs else [] session.run( @@ -274,7 +265,6 @@ def run_tests(session): def build_docs(session): """Build the documentation and load it in a browser tab, rebuilding on changes.""" envbindir = session.bin - session.run("python", "-m", "pip", "install", "--upgrade", "pip") session.install("-e", ".[all,docs]", silent=False) session.chdir("docs") # Local development From 90363882bb61cc93f3c78365179388a1b3661f40 Mon Sep 17 00:00:00 2001 From: cringeyburger Date: Sat, 24 Aug 2024 02:21:28 +0530 Subject: [PATCH 36/61] feat: remove upper pins from all build-time dependencies, including `scikit-build-core` --- .../user_guide/installation/install-from-source.rst | 2 +- .../user_guide/installation/install-source-windows.rst | 2 +- pyproject.toml | 8 ++++---- scripts/Dockerfile | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/source/user_guide/installation/install-from-source.rst b/docs/source/user_guide/installation/install-from-source.rst index d7c7459f16..6804b2fb87 100644 --- a/docs/source/user_guide/installation/install-from-source.rst +++ b/docs/source/user_guide/installation/install-from-source.rst @@ -240,7 +240,7 @@ Due to the ``--no-build-isolation`` flag in the "editable mode" command, you fir .. code:: bash - pip install scikit-build-core==0.10.3 casadi cmake pybind11 + pip install scikit-build-core casadi cmake pybind11 You can now install PyBaMM in "editable mode" for development using the following commands: diff --git a/docs/source/user_guide/installation/install-source-windows.rst b/docs/source/user_guide/installation/install-source-windows.rst index 4438c35ea9..8d162541c7 100644 --- a/docs/source/user_guide/installation/install-source-windows.rst +++ b/docs/source/user_guide/installation/install-source-windows.rst @@ -241,7 +241,7 @@ Due to the ``--no-build-isolation`` flag in the "editable mode" command, you fir .. code:: bash - pip install scikit-build-core==0.10.3 pybind11 + pip install scikit-build-core pybind11 You can now install PyBaMM in "editable mode" for development using the following commands: diff --git a/pyproject.toml b/pyproject.toml index ef54d4f83c..56faf86848 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,13 +1,13 @@ [build-system] requires = [ - "scikit-build-core>=0.10,<=0.10.3", + "scikit-build-core>=0.10", # On Windows, use the CasADi vcpkg registry and CMake bundled from MSVC - "casadi>=3.6.5,<=3.6.6; platform_system!='Windows'", + "casadi>=3.6.5; platform_system!='Windows'", # Note: the version of CasADi as a build-time dependency should be matched # cross platforms, so updates to its minimum version here should be accompanied # by a version bump in https://github.com/pybamm-team/casadi-vcpkg-registry. - "cmake>=3.13,<=3.20.3; platform_system!='Windows'", - "pybind11<=2.13.4", + "cmake>=3.13; platform_system!='Windows'", + "pybind11>=2.13.4", ] build-backend = "scikit_build_core.build" diff --git a/scripts/Dockerfile b/scripts/Dockerfile index 66c80d71d6..05279b49d4 100644 --- a/scripts/Dockerfile +++ b/scripts/Dockerfile @@ -29,7 +29,7 @@ RUN uv venv $VIRTUAL_ENV RUN #!/bin/bash && source /home/pybamm/venv/bin/activate; ENV PATH="$VIRTUAL_ENV/bin:$PATH" -RUN uv pip install --upgrade scikit-build-core==0.10.3 wget cmake casadi pybind11 +RUN uv pip install --upgrade scikit-build-core wget cmake casadi pybind11 RUN python scripts/install_KLU_Sundials.py && \ uv pip install --no-build-isolation --config-settings=editable.rebuild=true -ve ".[all,dev,docs,jax]"; From cc864025b2626fd8e2f5573620b90a284b6f9658 Mon Sep 17 00:00:00 2001 From: cringeyburger Date: Sat, 24 Aug 2024 02:42:43 +0530 Subject: [PATCH 37/61] feat: set the script for only `openBLAS` --- FindSuiteSparse.cmake | 19 +------------------ 1 file changed, 1 insertion(+), 18 deletions(-) diff --git a/FindSuiteSparse.cmake b/FindSuiteSparse.cmake index 1ed20fb4f8..e9c7b714c2 100644 --- a/FindSuiteSparse.cmake +++ b/FindSuiteSparse.cmake @@ -45,26 +45,9 @@ if(NOT DEFINED ENV{CIBUILDWHEEL} OR NOT CMAKE_SYSTEM_NAME STREQUAL "Darwin") STRING "Sets the BLAS/LAPACK vendor. See https://cmake.org/cmake/help/latest/module/FindBLAS.html#blas-lapack-vendors." ) - set_property(CACHE IDAKLU_BLAS_VENDOR PROPERTY STRINGS OpenBLAS Intel10_64lp Apple Generic) - - if(DEFINED ENV{CONDA_BUILD_STATE}) - set(IDAKLU_BLAS_VENDOR "Generic") - endif() - - if(IDAKLU_BLAS_VENDOR MATCHES "Intel") - set(BLA_STATIC FALSE) - set(BLA_SIZEOF_INTEGER 4) - elseif(IDAKLU_BLAS_VENDOR MATCHES "Apple") - set(BLA_STATIC TRUE) - set(BLA_SIZEOF_INTEGER 4) - else() - set(BLA_STATIC FALSE) - set(BLA_SIZEOF_INTEGER 4) - endif() - set(BLA_VENDOR ${IDAKLU_BLAS_VENDOR}) - # openBLAS: include a "lib" prefix in it's names + # openBLAS: include a "lib" prefix in its names set(CMAKE_FIND_LIBRARY_PREFIXES "" lib) endif() From 13d0db8cedb50d240e9da5a2be02892c722e54c6 Mon Sep 17 00:00:00 2001 From: cringeyburger Date: Sat, 24 Aug 2024 18:42:19 +0530 Subject: [PATCH 38/61] feat: run macOS and Linux tests with IDAKLU and skip IREE tests using `xtest` --- .github/workflows/test_on_push.yml | 251 +++++++++++++++--- FindSuiteSparse.cmake | 2 +- tests/unit/test_solvers/test_idaklu_solver.py | 101 +++++++ 3 files changed, 319 insertions(+), 35 deletions(-) diff --git a/.github/workflows/test_on_push.yml b/.github/workflows/test_on_push.yml index acff820437..05931718d4 100644 --- a/.github/workflows/test_on_push.yml +++ b/.github/workflows/test_on_push.yml @@ -1,3 +1,4 @@ + name: PyBaMM on: @@ -32,39 +33,58 @@ jobs: python -m pip install pre-commit pre-commit run -a - run_unit_integration_and_coverage_tests: + run_windows_unit_integration_tests: needs: style env: BUILD_IDAKLU: OFF - runs-on: ${{ matrix.os }} + runs-on: windows-latest strategy: fail-fast: false matrix: - os: [ubuntu-latest, macos-12, macos-14, windows-latest] python-version: ["3.9", "3.10", "3.11", "3.12"] - name: Tests (${{ matrix.os }} / Python ${{ matrix.python-version }}) + name: Tests (windows_latest / Python ${{ matrix.python-version }}) steps: - name: Check out PyBaMM repository uses: actions/checkout@v4 - - name: Install Linux system dependencies - uses: awalsh128/cache-apt-pkgs-action@v1.4.2 - if: matrix.os == 'ubuntu-latest' + - name: Install Windows system dependencies + run: choco install graphviz --version=8.0.5 + + - name: Set up Python ${{ matrix.python-version }} + id: setup-python + uses: actions/setup-python@v5 with: - packages: gfortran gcc graphviz pandoc - execute_install_scripts: true + python-version: ${{ matrix.python-version }} + cache: 'pip' - # dot -c is for registering graphviz fonts and plugins - - name: Install OpenBLAS and TeXLive for Linux - if: matrix.os == 'ubuntu-latest' - run: | - sudo apt-get update - sudo dot -c - sudo apt-get install libopenblas-dev texlive-latex-extra dvipng + - name: Install nox and tomlkit + run: python -m pip install nox tomlkit + + - name: Run unit tests for windows-latest with Python ${{ matrix.python-version }} + run: python -m nox -s unit + + - name: Run integration tests for windows-latest with Python ${{ matrix.python-version }} + run: python -m nox -s integration + + run_macos_unit_integration_tests: + needs: style + runs-on: ${{ matrix.os }} + env: + PYBAMM_IDAKLU_EXPR_CASADI: ON + PYBAMM_IDAKLU_EXPR_IREE: ON + strategy: + fail-fast: false + matrix: + os: [macos-12, macos-14] + python-version: ["3.9", "3.10", "3.11", "3.12"] + name: Tests (${{ matrix.os }} / Python ${{ matrix.python-version }}) + + steps: + - name: Check out PyBaMM repository + uses: actions/checkout@v4 - name: Install macOS system dependencies - if: matrix.os == 'macos-12' || matrix.os == 'macos-14' env: HOMEBREW_NO_INSTALL_CLEANUP: 1 HOMEBREW_NO_AUTO_UPDATE: 1 @@ -74,13 +94,9 @@ jobs: # sometimes gfortran cannot be found, so reinstall gcc just to be sure run: | brew analytics off - brew install graphviz libomp + brew install graphviz libomp openblas brew reinstall gcc - - name: Install Windows system dependencies - if: matrix.os == 'windows-latest' - run: choco install graphviz --version=8.0.5 - - name: Set up Python ${{ matrix.python-version }} id: setup-python uses: actions/setup-python@v5 @@ -91,35 +107,90 @@ jobs: - name: Install nox and tomlkit run: python -m pip install nox tomlkit - - name: Cache pybamm-requires nox environment for GNU/Linux and macOS + - name: print name + run: python -c "import platform;print(platform.platform(terse=True))" + + - name: Cache pybamm-requires nox environment for macOS uses: actions/cache@v4 - if: matrix.os != 'windows-latest' with: path: | # Headers and dynamic library files for SuiteSparse and SUNDIALS ${{ github.workspace }}/install_KLU_Sundials/ key: nox-${{ matrix.os }}-pybamm-requires-${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('**/install_KLU_Sundials.py', '**/noxfile.py', '**/test_on_push.yml') }} - - name: Install SuiteSparse and SUNDIALS on GNU/Linux and macOS + - name: Install SuiteSparse and SUNDIALS on macOS timeout-minutes: 10 - if: matrix.os != 'windows-latest' run: python -m nox -s pybamm-requires - name: Run unit tests for ${{ matrix.os }} with Python ${{ matrix.python-version }} - if: matrix.os != 'ubuntu-latest' || matrix.python-version != '3.12' run: python -m nox -s unit - - name: Run coverage tests for ${{ matrix.os }} with Python ${{ matrix.python-version }} - if: matrix.os == 'ubuntu-latest' && matrix.python-version == '3.12' + - name: Run integration tests for ${{ matrix.os }} with Python ${{ matrix.python-version }} + run: python -m nox -s integration + + run_linux_unit_integration_coverage_tests: + needs: style + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + python-version: ["3.9", "3.10", "3.11", "3.12"] + name: Tests (ubuntu-latest / Python ${{ matrix.python-version }}) + + steps: + - name: Check out PyBaMM repository + uses: actions/checkout@v4 + + - name: Install Linux system dependencies + uses: awalsh128/cache-apt-pkgs-action@v1.4.2 + with: + packages: gfortran gcc graphviz pandoc + execute_install_scripts: true + + # dot -c is for registering graphviz fonts and plugins + - name: Install OpenBLAS and TeXLive for Linux + run: | + sudo apt-get update + sudo dot -c + sudo apt-get install libopenblas-dev texlive-latex-extra dvipng + + - name: Set up Python ${{ matrix.python-version }} + id: setup-python + uses: actions/setup-python@v5 + with: + python-version: ${{ matrix.python-version }} + cache: 'pip' + + - name: Install nox and tomlkit + run: python -m pip install nox tomlkit + + - name: Cache pybamm-requires nox environment for GNU/Linux + uses: actions/cache@v4 + with: + path: | + # Headers and dynamic library files for SuiteSparse and SUNDIALS + ${{ github.workspace }}/install_KLU_Sundials/ + key: nox-ubuntu-latest-pybamm-requires-${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('**/install_KLU_Sundials.py', '**/noxfile.py', '**/test_on_push.yml') }} + + - name: Install SuiteSparse and SUNDIALS on GNU/Linux + timeout-minutes: 10 + run: python -m nox -s pybamm-requires + + - name: Run unit tests for GNU/Linux with Python ${{ matrix.python-version }} + if: matrix.python-version != '3.12' + run: python -m nox -s unit + + - name: Run coverage tests for GNU/Linux with Python ${{ matrix.python-version }} + if: matrix.python-version == '3.12' run: python -m nox -s coverage - name: Upload coverage report - if: matrix.os == 'ubuntu-latest' && matrix.python-version == '3.12' + if: matrix.python-version == '3.12' uses: codecov/codecov-action@v4.5.0 with: token: ${{ secrets.CODECOV_TOKEN }} - - name: Run integration tests for ${{ matrix.os }} with Python ${{ matrix.python-version }} + - name: Run integration tests for GNU/Linux with Python ${{ matrix.python-version }} run: python -m nox -s integration # Skips IDAKLU module compilation for speedups, which is already tested in other jobs. @@ -207,7 +278,7 @@ jobs: path: | # Headers and dynamic library files for SuiteSparse and SUNDIALS ${{ github.workspace }}/sundials_KLU_libs/ - key: nox-${{ matrix.os }}-pybamm-requires-${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('**/install_KLU_Sundials.py', '**/noxfile.py', '**/test_on_push.yml') }} + key: nox-ubuntu-latest-pybamm-requires-${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('**/install_KLU_Sundials.py', '**/noxfile.py', '**/test_on_push.yml') }} - name: Install SuiteSparse and SUNDIALS on GNU/Linux timeout-minutes: 10 @@ -218,8 +289,6 @@ jobs: run_scripts_tests: needs: style - env: - BUILD_IDAKLU: OFF runs-on: ubuntu-latest strategy: fail-fast: false @@ -266,3 +335,117 @@ jobs: - name: Run example scripts tests for GNU/Linux with Python 3.12 run: python -m nox -s scripts + + # run_unit_integration_and_coverage_tests: + # needs: style + # runs-on: ${{ matrix.os }} + # strategy: + # fail-fast: false + # matrix: + # os: [ubuntu-latest, macos-12, macos-14, windows-latest] + # python-version: ["3.9", "3.10", "3.11", "3.12"] + # name: Tests (${{ matrix.os }} / Python ${{ matrix.python-version }}) + + # steps: + # - name: Check out PyBaMM repository + # uses: actions/checkout@v4 + + # - name: Install Linux system dependencies + # uses: awalsh128/cache-apt-pkgs-action@v1.4.2 + # if: matrix.os == 'ubuntu-latest' + # with: + # packages: gfortran gcc graphviz pandoc + # execute_install_scripts: true + + # # dot -c is for registering graphviz fonts and plugins + # - name: Install OpenBLAS and TeXLive for Linux + # if: matrix.os == 'ubuntu-latest' + # run: | + # sudo apt-get update + # sudo dot -c + # sudo apt-get install libopenblas-dev texlive-latex-extra dvipng + + # - name: Install macOS system dependencies + # if: matrix.os == 'macos-12' || matrix.os == 'macos-14' + # env: + # HOMEBREW_NO_INSTALL_CLEANUP: 1 + # HOMEBREW_NO_AUTO_UPDATE: 1 + # HOMEBREW_NO_COLOR: 1 + # # Speed up CI + # NONINTERACTIVE: 1 + # # sometimes gfortran cannot be found, so reinstall gcc just to be sure + # run: | + # brew analytics off + # brew install graphviz libomp + # brew reinstall gcc + + # - name: Install Windows system dependencies + # if: matrix.os == 'windows-latest' + # run: choco install graphviz + + # - name: Set Windows Environment Variables + # if: matrix.os == 'windows-latest' + # run: | + # echo "PYBAMM_USE_VCPKG=ON" >> $GITHUB_ENV + # echo "VCPKG_ROOT_DIR=C:\vcpkg" >> $GITHUB_ENV + # echo "VCPKG_DEFAULT_TRIPLET=x64-windows-static-md" >> $GITHUB_ENV + # echo "VCPKG_FEATURE_FLAGS=manifests,registries" >> $GITHUB_ENV + + # - name: Set up Python ${{ matrix.python-version }} + # id: setup-python + # uses: actions/setup-python@v5 + # with: + # python-version: ${{ matrix.python-version }} + # cache: 'pip' + + # - name: Install nox and tomlkit + # run: python -m pip install nox tomlkit + + # - name: Install vcpkg on Windows + # if: matrix.os == 'windows-latest' + # run: | + # cd C:\ + # rm -r -fo 'C:\vcpkg' + # git clone https://github.com/microsoft/vcpkg + # cd vcpkg + # .\bootstrap-vcpkg.bat + + # - name: Cache packages installed through vcpkg on Windows + # if: matrix.os == 'windows-latest' + # uses: actions/cache@v4 + # env: + # cache-name: vckpg_binary_cache + # with: + # path: C:\Users\runneradmin\AppData\Local\vcpkg\archives + # key: ${{ runner.os }}-build-VS2022-${{ env.cache-name }}-${{ hashFiles('vcpkg*.json') }} + + # - name: Cache pybamm-requires nox environment for GNU/Linux and macOS + # uses: actions/cache@v4 + # if: matrix.os != 'windows-latest' + # with: + # path: | + # # Headers and dynamic library files for SuiteSparse and SUNDIALS + # ${{ github.workspace }}/install_KLU_Sundials/ + # key: nox-${{ matrix.os }}-pybamm-requires-${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('**/install_KLU_Sundials.py', '**/noxfile.py', '**/test_on_push.yml') }} + + # - name: Install SuiteSparse and SUNDIALS on GNU/Linux and macOS + # timeout-minutes: 10 + # if: matrix.os != 'windows-latest' + # run: python -m nox -s pybamm-requires + + # - name: Run unit tests for ${{ matrix.os }} with Python ${{ matrix.python-version }} + # if: matrix.os != 'ubuntu-latest' || matrix.python-version != '3.12' + # run: python -m nox -s unit + + # - name: Run coverage tests for ${{ matrix.os }} with Python ${{ matrix.python-version }} + # if: matrix.os == 'ubuntu-latest' && matrix.python-version == '3.12' + # run: python -m nox -s coverage + + # - name: Upload coverage report + # if: matrix.os == 'ubuntu-latest' && matrix.python-version == '3.12' + # uses: codecov/codecov-action@v4.5.0 + # with: + # token: ${{ secrets.CODECOV_TOKEN }} + + # - name: Run integration tests for ${{ matrix.os }} with Python ${{ matrix.python-version }} + # run: python -m nox -s integration diff --git a/FindSuiteSparse.cmake b/FindSuiteSparse.cmake index e9c7b714c2..de75d728d5 100644 --- a/FindSuiteSparse.cmake +++ b/FindSuiteSparse.cmake @@ -37,7 +37,7 @@ # system paths. # -if(NOT DEFINED ENV{CIBUILDWHEEL} OR NOT CMAKE_SYSTEM_NAME STREQUAL "Darwin") +if(NOT CMAKE_SYSTEM_NAME STREQUAL "Darwin") enable_language(Fortran) set(IDAKLU_BLAS_VENDOR "OpenBLAS" diff --git a/tests/unit/test_solvers/test_idaklu_solver.py b/tests/unit/test_solvers/test_idaklu_solver.py index 5bc845d66c..f56c26b209 100644 --- a/tests/unit/test_solvers/test_idaklu_solver.py +++ b/tests/unit/test_solvers/test_idaklu_solver.py @@ -7,6 +7,8 @@ import unittest import pytest import numpy as np +import sys +import platform import pybamm from tests import get_discretisation_for_testing @@ -15,6 +17,17 @@ @pytest.mark.cibw @unittest.skipIf(not pybamm.have_idaklu(), "idaklu solver is not installed") class TestIDAKLUSolver(unittest.TestCase): + @pytest.mark.xfail( + platform.system() == "Linux" + or ( + ( + platform.platform(terse=True).startswith("macOS-13") + or platform.platform(terse=True).startswith("macOS-14") + ) + and sys.version_info[:2] == (3, 11) + ), + reason="problem with IDAKLU not having `create_iree_solver` attribute", + ) def test_ida_roberts_klu(self): # this test implements a python version of the ida Roberts # example provided in sundials @@ -64,6 +77,17 @@ def test_ida_roberts_klu(self): true_solution = 0.1 * solution.t np.testing.assert_array_almost_equal(solution.y[0, :], true_solution) + @pytest.mark.xfail( + platform.system() == "Linux" + or ( + ( + platform.platform(terse=True).startswith("macOS-13") + or platform.platform(terse=True).startswith("macOS-14") + ) + and sys.version_info[:2] == (3, 11) + ), + reason="problem with IDAKLU not having `create_iree_solver` attribute", + ) def test_model_events(self): for form in ["python", "casadi", "jax", "iree"]: if (form == "jax" or form == "iree") and not pybamm.have_jax(): @@ -193,6 +217,17 @@ def test_model_events(self): err_msg=f"Failed for form {form}", ) + @pytest.mark.xfail( + platform.system() == "Linux" + or ( + ( + platform.platform(terse=True).startswith("macOS-13") + or platform.platform(terse=True).startswith("macOS-14") + ) + and sys.version_info[:2] == (3, 11) + ), + reason="problem with IDAKLU not having `create_iree_solver` attribute", + ) def test_input_params(self): # test a mix of scalar and vector input params for form in ["python", "casadi", "jax", "iree"]: @@ -251,6 +286,17 @@ def test_input_params(self): sol.y[1:3], true_solution, err_msg=f"Failed for form {form}" ) + @pytest.mark.xfail( + platform.system() == "Linux" + or ( + ( + platform.platform(terse=True).startswith("macOS-13") + or platform.platform(terse=True).startswith("macOS-14") + ) + and sys.version_info[:2] == (3, 11) + ), + reason="problem with IDAKLU not having `create_iree_solver` attribute", + ) def test_sensitivities_initial_condition(self): for form in ["casadi", "iree"]: for output_variables in [[], ["2v"]]: @@ -302,6 +348,17 @@ def test_sensitivities_initial_condition(self): err_msg=f"Failed for form {form}", ) + @pytest.mark.xfail( + platform.system() == "Linux" + or ( + ( + platform.platform(terse=True).startswith("macOS-13") + or platform.platform(terse=True).startswith("macOS-14") + ) + and sys.version_info[:2] == (3, 11) + ), + reason="problem with IDAKLU not having `create_iree_solver` attribute", + ) def test_ida_roberts_klu_sensitivities(self): # this test implements a python version of the ida Roberts # example provided in sundials @@ -410,6 +467,17 @@ def test_ida_roberts_klu_sensitivities(self): err_msg=f"Failed for form {form}", ) + @pytest.mark.xfail( + platform.system() == "Linux" + or ( + ( + platform.platform(terse=True).startswith("macOS-13") + or platform.platform(terse=True).startswith("macOS-14") + ) + and sys.version_info[:2] == (3, 11) + ), + reason="problem with IDAKLU not having `create_iree_solver` attribute", + ) def test_ida_roberts_consistent_initialization(self): # this test implements a python version of the ida Roberts # example provided in sundials @@ -454,6 +522,17 @@ def test_ida_roberts_consistent_initialization(self): model.ydot0full, [0.1, 0], err_msg=f"Failed for form {form}" ) + @pytest.mark.xfail( + platform.system() == "Linux" + or ( + ( + platform.platform(terse=True).startswith("macOS-13") + or platform.platform(terse=True).startswith("macOS-14") + ) + and sys.version_info[:2] == (3, 11) + ), + reason="problem with IDAKLU not having `create_iree_solver` attribute", + ) def test_sensitivities_with_events(self): # this test implements a python version of the ida Roberts # example provided in sundials @@ -618,6 +697,17 @@ def test_failures(self): with self.assertRaisesRegex(pybamm.SolverError, "FAILURE IDA"): solver.solve(model, t_eval) + @pytest.mark.xfail( + platform.system() == "Linux" + or ( + ( + platform.platform(terse=True).startswith("macOS-13") + or platform.platform(terse=True).startswith("macOS-14") + ) + and sys.version_info[:2] == (3, 11) + ), + reason="problem with IDAKLU not having `create_iree_solver` attribute", + ) def test_dae_solver_algebraic_model(self): for form in ["python", "casadi", "jax", "iree"]: if (form == "jax" or form == "iree") and not pybamm.have_jax(): @@ -921,6 +1011,17 @@ def construct_model(): sol["x_s [m]"].domain = ["current collector"] sol["x_s [m]"].initialise_1D() + @pytest.mark.xfail( + platform.system() == "Linux" + or ( + ( + platform.platform(terse=True).startswith("macOS-13") + or platform.platform(terse=True).startswith("macOS-14") + ) + and sys.version_info[:2] == (3, 11) + ), + reason="problem with IDAKLU not having `create_iree_solver` attribute", + ) def test_with_output_variables_and_sensitivities(self): # Construct a model and solve for all variables, then test # the 'output_variables' option for each variable in turn, confirming From 37ada420af306401ebf15847e40866b25f6d5f15 Mon Sep 17 00:00:00 2001 From: cringeyburger Date: Sun, 25 Aug 2024 14:14:00 +0530 Subject: [PATCH 39/61] feat: merge all install from source documentations and update `.gitignore` --- .gitignore | 4 + .../pic1-msvc-select.png | Bin 191662 -> 0 bytes .../pic2-env-var-open.png | Bin 31546 -> 0 bytes .../images-windows-source/pic3-show-path.png | Bin 56635 -> 0 bytes .../pic4-save-env-var.png | Bin 178936 -> 0 bytes docs/source/user_guide/installation/index.rst | 1 - .../installation/install-from-source.rst | 526 +++++++++++++----- .../installation/install-source-windows.rst | 382 ------------- scripts/windows_setup.bat | 1 - 9 files changed, 381 insertions(+), 533 deletions(-) delete mode 100644 docs/source/user_guide/installation/images-windows-source/pic1-msvc-select.png delete mode 100644 docs/source/user_guide/installation/images-windows-source/pic2-env-var-open.png delete mode 100644 docs/source/user_guide/installation/images-windows-source/pic3-show-path.png delete mode 100644 docs/source/user_guide/installation/images-windows-source/pic4-save-env-var.png delete mode 100644 docs/source/user_guide/installation/install-source-windows.rst diff --git a/.gitignore b/.gitignore index 80bd271f1a..562e9ce5de 100644 --- a/.gitignore +++ b/.gitignore @@ -88,6 +88,10 @@ SuiteSparse-* build_sundials KLU_module_deps sundials_KLU_libs/include +download_KLU_Sundials/ + +# Ignore Python Egg Info Directories +*.egg-info # downloads *.gz diff --git a/docs/source/user_guide/installation/images-windows-source/pic1-msvc-select.png b/docs/source/user_guide/installation/images-windows-source/pic1-msvc-select.png deleted file mode 100644 index 5f9dd449a7cdf306b691f7c8a5f9b6e8edd4de20..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 191662 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 z zJzrbOuSXp`c`P0`^7G5{@tjwBbkx>^Ra+oE_Q^Td_^0I7_V`#-dg&4?BJ6WgyN=eOBI`B%@NcL48xGIQ+Rnsy^60`M;K67q)~-@2BwL@swYMFP9(b$|l*IhI>Z>uJ z>I;{q>gfWBpx?6|jL|G}BGGtW!>Y(!b<5aZ_I7&d559mfRCCmH z1GDDKBdBGmIwS_KO!3dDG$&CK(paoknM;%NRbdfec%&It-AC#1%hwS{nZvXFXv;+3 zNVj{WXFc~8{JPS8eq>K;X70uz5n4bYKr&~%C0?Fo1?7bqUBu7i`Y$vpJec~Pw(w3@ z^wWd?9-G4R1gjAE0WPQYs|&=Sml0#4I-u&)z)1M|x5hmO<}B@DN}@7E3mXrIXKf#n zQfEDQZp?AlMsx!7f>)zHEu|1M10-Q!(F{lkcl%J82=_(`)PGRoOKOVb=MQEh`FqLg z3ZP;)1Cn(D7b#wI{hr2v|E#uAO_CRHrUcINNug$CUJt{q_){eJQJY*hTaSwb;H(Oo zxOL!u*wMeZqA`vn>nlIW$DqQrdU`f%jKdZ(o(;rk>UMD7S$i%Z0+*tHig;d9zivIK zB;icfi8|y5_=n8=Eb7AoW5mMW4ARA(qjcjB)2k>nc23at$(J(hZtfQQz+c?zLix@e zs_yY2<-^3YBZ*>R8##XY&I?u;7;qGtJv&vW-%Km|jlt+m+eP5pmx*dv`T8zFP-n{e zkgyA_fraIMop86TRB82?=E==upog=fu5i6+z@50TWR*5#^7r0x6yi<-*oVoo2tsbc zOKUHHW?D+Z>f{SUxGvuz>8TYy`|4{1&<2eOzzuG;UnIG`6Z4O#CvpwoQ-th8m&zi- zj$!$@`=ygR2h}LW=F6~RpV}{bg_G7c`wztN# zN{5Qqnv*rNnw#9tw>Hg05iML6uV1T8!Sal>^PUb+=9ch-3*uAOp7W37>6NP`-!kM} z)%LAJN#7G!l!=YAr$1QE6py!ptOy>{OGvp+kJIZf*uD93Ily0Q_gb->zzM$DgGASS zbBH!__T(4@E}1*+{)u86gbgXHdDOdx=^{2gj^ICr1h9xFhkRS{zqW(Rfqx_buF>aD4%P0(@cI4Uh$({1sZPx z5kV^}0f2{N9g>T3G#}@^E_tRPycNz~K?Gu~iZGoM2Vf8$)LMK05VcUYMVnH%T8vtT ztaYl1illN;)Z`$^8Cd_j*DgTzp(oRO(?h*pZ(||7-38CD>7gU6m}ev6khlsF51TJ3 zT}5|&pTg4%C|7C>X11ehZDc|ccEYbfd$L6gemXuGizAz!G4+Tkcuqjc-Gh7vsD}(7 z6!2d#^7SEV1~kT>6FAcYOZy&WhHV^53Fu?7#u+FA?&#{!R50b%}HfFNXnU@4w(_X zsP*p5fy~B%?0~El083L? zpK%Hm3I`m!EIgUm)?&6`^?$|(nsFVt=PWC;;Rex03tVbL-hZa|P(0Zt;_fp|?gI&G zD5ev);dSk^CZ!XDP6%8o?WN?#$2n|&7(E^o?#dn{C;P-L2C**>wI1B#3e+1m%Sjj6>o8DnZzb+Be`qy^X|j< z#CC3z?)dB7ISjZ~55#e#?*4u3bJ#~0{eLSldb#O{EY29$=Tkcmf$kQVEUHkR#_ZwW zwUgF_>m~Pt)84c@LJt0r_$OrrK(i@KVtnq3RVrkSm}aZ-KUk{3Dm7joWWM{~P_$So ztuAAJ?tj2ue#QX0tz!l%QpIiXKY)DTyE~+BZ|Q$Nrx_?7-I<|D(6Z6BF@w8Y{}3`D z5FQO2B@Iz&sM|nVmcRzi2nROby*lsL$fr^bkTfcyJ`1nT#XZ@USIEH>%(&G1EF-nq z^K>97!1F2pIFsG828b}S3+rUB_!jA2Kn3G3f3?pH2K)iyGP7tjr_~cojI{gQz0-6HS#^auJ=IQo|lSI<=fq&5bqtp<#^4rF)M7X4E}l$~S<5scP0& z_8N3Z^*ao(avB!4If?>#9+eWZ|DAF8Isgx7H5s1x)`u_i_dLVBN$FR!t}=VP!YF** z(tYb}^_!G!ggGD!kluhDc>stM+t4to2}nmk$dujFwfC^-yz+=|Z{$LZ4E9y(E6Ed< zt>S)wS7k;%3YmDPI}8wS-IIF1+W?-v`>he*Yp#zEtSz^WzQUe^y{`j^H9i*@FwJ2= zZBWtIw)iqOH#ZkKISQjg0|35IiHD04tZ$cy7hTiOe|)4m6V@rmo9zi8m8E-mK=NF3 zwxe|+fWXS?AONAic zAZ5dAb@m)4NqP9Vh;P?5ES$q$NYIyyM&4Mc9zT>p8mzGA&So=7gl6+01WME73_%GZ zW{|Gf>ak5ri+kbm0AJaa<=uR8>Aep!%RfCsBd83(&}+Y?Orz(yg=|Y(*9s;JjI!p| zfy6s7#zzdk>7B^BMS2-gJ1b_NR7M1_j>lSK`b$A;$!xRq?mXSvrSTRO;U|3gQ8v7D zl@ff+haa|pUym46#yX|-_TSr$$@#ni5W^zzHx&)P{J8dfZK1b+i07%P z3@hGfx8cvmI>*@StGS z0U&>eZ0Tn%<>4+?9N0R(f|z7#JvGy^g!Wx{DZ4E|=GTao*sPmuFY%fJD5-X9%0Qc^jFRMETgY);}O!jx*#wk;oAJ_`EjRDBl549l8RG6@v?; zO37w^?M~T21;Upf-T=(A#^r=oXm!S;IMv|`h|puk(USK|KH$09{+R2ajL4n^IdS-k zw=U0pucG{vr+>5Gi)I0UY*6b*f>zyma(7oBKo==rl(<%`(k z)`rqQd_)cQGbn|wnL3M#uxv7ANLC5_^)PS3><{l25hx*Si#MC1Jxkj6GHm|HfPNJZ zl$UA`#owsI=2fID2wMeBCOb)KW?Hx-pjmnxY+0N1x_erdtDD<_?AJW}65sw{fbc=t zlY15peX(zKc#6$d4i_$p9nt<`!)*YdrL{mk0e2XXdXHardWIN}Q8q$m=18j4kug(Wt>n~JWp}?YYyKOCG8e$xy7_@hiQXLP1RZ7!Hxa_C2$Q8m zfm$gTas0sAqdinY-x{EGrfcj@5Lh*;63HA$hxs3`rB-GnvkkR`YEMo6slWK(c6*@G zs&J}9&m0l0#`W0_k1{gtx_fO*dt5rG5ai(Y;zOF6$F{5!J6)08lXU1x7(m<`_F%N% zrsxZ+c-m^*eIJq5s#sMiVX}yRs<-D)MMd~Y zzq2bmUmVdrXJPBz6sTwJN`p+_B)fDdeV8laFo^KZV|%>rz+m;P#m2+qpI*i3gma3W_OzxRaT&32?8fnXrvd2nY`M~ylG;2E> z{xJcbbKX@lXz*CF|G|Dxzzy|EUJ&ZzB)}<>+4Gh~{7~yJA+GiLVlp$jJliD^$)fVU(8xNeyM{GfWPt18o4!e^)~iCR zO;1JOWvS)IW?Ign*bIQmi$#7H1vsFxwSLi%gzVkH4c&+SXw%>AW`BBhi9~!>P4#x& zbv0w@+@5FcdG{B#3rJ9|5yxM+c&vTJyz}J0`U7Ade&-D8e zl%UtI?0KKTuXnZz`B)qK{yMc%8k`_t%a@;@c=xM0)F%cbgXsv668IrEc~37#+bYK_ z3Dr=8(d±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 z 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%0A?S;HSrqK-ROeD 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 B;dY8q2P=fH(}ohSf<0Mi9@M z3q8cMbC_3ndgIGLHFNa$=NYJDyT_$jEKPVt7MRHR{NbpY0Nk{QFcfAnT>P+cW&G}u z!fwuRcoaLsbcTf=`yU1qg(yF~7yENFtRH0s<3%3&lUm~5v*#(xppLtmf#X&o|q~zLhIBv#-=g50q`%(6(hW{K|y5Noi)Mv{ZawQOk z2sR(Vp{S!~=PqhF?D#+!I@#tHGGNrCdu)%(#$qTv`8I4-c!{{U>V~QcG#U10H0KA= z*N9_YTFUaNnMnLGdJ(Lu1AZ4Kon#puQ@+a~#N;G1q?UJ0y8C|F4d1^#TbL~mCrdv}Y~C*Zg&0ic^X z8q5x$KEId1V1#lm13bp(EkNNJ*0Q>}+jux;lliXQ^Qx5`-S3SA&~vu(ngcWnHztva zWm9eJTj7=g*MD%i^wDqsy2t!;48WHzIPi6{@ybA1CS>Y1`SKva8tjqnNw|LvK%R+u zW5M%UkM z?vaUh?oSEl|Mns92Xpk#Lz~PW)x7)Qs{Gx$P$13Yug?p6`N)yu|6CNbztxzluF!5( z|Fjy@Ouf}Z4^jLC?o$o@|BeD(jeh13MaJU~Bp4?DX({=J>T&9#`5)S~ewk7J^Xn9O zl*X0p9G9%1&l^Yn_vV9_${$*NM)O_pG;wi>Ce6>c+Wq_0JKj*}mO3Q*8w3BfKbGQz zVq5R`y@hTyjdn1E%z;;f+(|@ zHkD4)@%6#q52STEJTd!+p;;gCF#F{He%+PmSN22uN-X6A+bMpU@#%LP&ATe}LLlFu zO$%?}I`!&m4b3KwT|*W9n0;UdD4X>(U+kLQ?}vliidyEB`oSfkSOOJ_eB^NxL>W|y z|8<6k4102L2Mq;1!=$z=M?bT6&?E^_vNIp|eh<^&wR(;646=U+Y{%Q|Jo(>CD_82q zj-R1hnkOS55GuWc^cYLY(>jl;$bwW>yg` zrZ`!Wm{g_4gD|+K;%8}NF8UvYgq2~1c(Ob z-tj&V*+CBK*nCHsUrC0PW2e}QPTU$zv#6qZg->8$D@ISJ>0@0n{WBw#3?!FnXH z(OL+jlzAx=BiI4r`O1pfg64f|7-E!ssM_!UHMSO0$$b12aUQG&+GCYvbXK7bObh4x2tQJhcDiQE9cqF_40mfq zKm7f=ag-Ng0hj(b4cE)gpoz0~@;TAbfs58lHkFkb6G@9_n z#0}Ci4SuymcR=uXu6rH4v5A1wbSb8fQLmdrI@hxGk4zqu_vA@(oC2VU|1@R!-Y+NVx)RkbA=43U6QM`En|JJH%Km+gx4c_w$-neTip>LU zQ4W+NMw~-`S_9{4DEFuOp78aaZDvp`+ zKqta-%W~KYz3=dGKFxPkF=ECN=rWg7_;z&^e`l15chllJ3Q;Wxk5T$M;60)AA?%^p^aRDBOrBAp3+m8)?6vr*v ziu@-D?Gotp@oG4Sm=_JmyJp9oN!6J})9}}mF2gNAYgE=6_&QqYz-McUqhTO$K|k4D zX4F&vBUB7aSp=J`59LcFv0Qy7?E)?(H+jG=>hMd2_RpU`zm)9r0L$qbS|C=mUE1p> zby^HL->FDlT-gEy{$24VNwy7I#CXpH&Xu<1pzRMk_)!fOa+kgdN(PknH2}ZX=qJ0V z2p)k=H*l0fr|;MRna0Q)UNnAqn0uzktXiUXP+uFuo-`~Cc9@q#6- z)dUF8D6LhCW|+cdMAJQ~wAlA32w-d$7i8UJnN9GBs+~&<2M0+?-2?01uV`RV(m<_k z;C{R0>F;MgtXqG$u5{?(GwwE;G5n^gpvPS}ufIgxV%Bgtx|1Wm(e(78Ka%;es0ZpD zi45*W+NT&Z1Ub318Na)sUPsUXBBK?59|{x_YF@hyh?JaKN`ijx8UNB=4B8RLba`Uu{UsD zxbVXg-VtN!e12gbnAVn8HrammLZS`5OZw|K%TuGCRD&??H|(N~n8&hTf9={8>9GbG ztz`auyk|Vlx6>oEGFLh6=u8YBgO*goHAU+uNJrC(B8&o?{iyG3qKYdXm>$-DGyY=4pc|f5RaxNoJ*%kyohXOP zEG=Imsi;BZCAZk+Rrhm``|8p@7mC>F>$+HUXm4FAkNG_!Jb*9!of-U&pK{y4ivRTA z*wsiEPkgpE%TsX=npz3m;2ysZ&O4gerw_)}1U^uEi3Tg|gzgF1d=)9@nn$YX|YQ)A)Q z_Y?6`WA$ml%QUIdnT-U9zn5YqA}@N_xmE;eM4r!0B9L{ISH=&>;h9QnXr&U)Chx38nG8GqVjM3>WGQ*4_TonszdpFfyd(<#>bGJ&ZqI@-aw zR8Qnt{yuAvYfej$_>nBTMIAp>{P5P#z%+W8w#9QvIgd{yqqm+oR!_?&Fx~`1jjv+M ziw68ywci2gPGWy#5Uon)%BvzoLD=d|76*3j?qqdHw|cmrwJBG5CyjBl0^|B=WCgL% zg5Phk;sT=5(fNckvDW!YdCDH8yij))diovO{_L+NPRP-J8&c0<=6dTyPsSG+hAFIn;TJYPWmFI-@#idXE%!3w$##PX{3e86f zT+I4h5>g<*U`^fK4Si;tj_B1@`#)^GcUV(d_x_D&!~sDaDN41B(u>jrse^#hdkGLw zqyz{7=|QR^CRdD0Rjm{L0Vz}fzU$v9p*dpJoCKQ%RgS1IXTHW z+57CZ@AX;tVrQ9#A!ZpfJP<60QdoPwUS*f5>m1WI)eMY!YBW%ipa)%#=p` z5m*i(;4Do{0y^m9c1wPh0KcNX5CPi)T(@JLia}`kpFK?P4+9%3UOCGgtp57}7F=v|CWCh&wfUKe5YDeKh*$6`c;FbK6GbG@&}wjoY`9!nqmvwkv_ z%1nz}XsK7}mc~SLgWR|#OfQOXh|FYBbYnK zp5IRbqwel6q~cI+eZ&Q_RfTTVsv$p|j4+8u)RKn(5KHqPCuL+v8D-gPZ)<0ze zB2htZ)I%pHzdE^~-+|6LN253It3l*=HH0e^8`&8s8V|d5!r-}6PITt~1cr6_Z&puB zP=KPuF|nXSIx*>-2&q_O-W_FAe`8C+%W8^`h@c&vB=dt|aw}sOdj@z7ztmr1-@8A~ z`NlkC;?Ny6gWB;Hmb25T3>~u--kCm6{mCu~figOytTWo!oFUhwry6X@@}oUuUR3aR z1p2$+`@pp?g$!lqEnxHD_kvHEZ1T_G(%8Y94D-hANWw$(gKP3Bz;pM~ksup4+Awy9 ztF;rZVo*D6XVXs&Z>IdujCr?Rq##Mhdo4iZRQy#d%XV|S<~8?*RpYa+ zD)XYmTB-{je>%^;Ap6e+by<`Z??m;Z-Ag-j0_@YV zHd->hjA5Ta-dr11zxmLKJ`528q_3F9R}Vc&hPBZlCrg^$iShIGWFATIH^@Fd4F|wk z&+iR;wZA=ytk&((VW28=%1@qJR*LhPo;AKe^s%NjyeF_0tgF_9fIEQzTL#c)asU8@ zEJRqAXxdDZtxgel1>eJiyZJUc6@ZX9VVsc#Xt6$yU(ieLxPg<<^l>v4Xd!SfZ+^t@Nlc?ud#&hRMq+<~rFPWjN#gfr zuIF+f^)O*@qVI~s8sC5(Dd%?754%{@E;1Lbg$#xMx_-MucNsucS{|)q z9JCp`8)=>2fh?!s&if1DGL9ZM=^rfD-RYFEtm4OVE2{HvWT#HLd|o_*rOyBs_&9j@ zX4cK~04 zF&5@gX(3jSn-HDLeG%<)vU&pRD(U&_1kUAlAbO8YGdI~dS=#GW{RWkmnt`5O3Elmb z{AhdrItwQA1r*SZM($*peo3y@KIIRR!Faca@{8|Qe0>G%u4cc6K||QDdvkuXwu@hT zS9O<=bVhlSVU12Yfvmb2rWb742dbYbVDQyKBJSb$zjq9?w)K)N_~5-j$(Rr`u`h{z zGkeA@7ziRcdIQV)eLSjWwwtyRE*~|T1-k4wre$*h0)CFh!vBaX1}+qsn7v}}gR;nN zK!W5u>xvStK%@q3gf}F=j)8|W$g_fdcR98TWj|8eJQ%hoSwVg{+}1x@9GTrO#udO+ zqx0gQjepmuQ~Nrv;g7fNOp&jve?H1%Pst`!oVQ0&nIjxM>vHfhI>DS;CQHz0iZb4kIKR-dtvKz$gXI#NQbH&yG^ zYo%3XY=J|u6;|ywyk24??~#^@hwWhs$;3j$$Y@Pqzalc#bfnnj_D#0+(&WYelWX#o zPFD49#&O??0qDtCeRe#n91g?+&5E6S15?L5MOJ|DVO3)><)r3ZISir!hJAO>B+RV< zWg2~H6U)|}`^b|7*fh|U^6gNCsiFyAa&y8;dVIyeIBUAmnFLZh#k$t+=%l%^&-v02 z{G9^7I!M!kKmUi`bkgu6;T*ZPH@7itKy{USp2tn_8dq(wb}&RAalk|KY!jvVW^RS2 zl{RK2M!AX(w;or`ejN+}pzzYr+KzjU|Lh2G?{G|M_Ew^44ylGYf?cfVSD2fmJj#F; zJ{Pzk%T|$(co=po&=Q)v`oNiWladYT%CsMaUxtC~?eFTI1~g6D4URg|3#_^PKrFJC zE#?_?;)Jf|W=;y?FFypRwrL9=Yev=1X^@>`e~-kvtSR&QJPqh)b8f+o+H5slIrt`e zi%x<2HFmjX>Wnp#7J@yS!sI=6PIlj~grM#WR^F<2){ zJPUraGy7R>EEjxOpgq!&DL244dE8Io!s+op{FZ&onlm=BzMZ?HzI*(CuYu{$ z8}v%%w3W+reF080Hz?Cb1*)cR=@+9ob(qcWfAl zyN3Gmica!CB7(-)YB=k!nNfh9jPVtmtYC*Z4-ONSRr_hN7aalWm6bbWfmFY7#ZSm|F@lD6h`ZHMXic0?oOksibMmtb?;B+UlSq6FA!WHY? z-exyEiuJS@Qm&x@O>((RGkO{wyP6!X%3-rseGTUMFdqX7Y{TpodgA zOnMOBNSm2xQK<1$l{WM2sNZxNNxJ<+n_(dxfz%@9dYE>ML9$fU?8YbzZOOi*MD+zC zw&+oaAsO5lkZlGg1eOGn9ac@SlBL(Ui^n0lbQrJqig{nndilz3feA{-g0Z!mEWE;Tvd^cI|I1TLyzXn*VLc zdTQ(HDw!utG*7;RTgv{5AOPn50aS9$btOl$(dw=_EB}U;^04dbn^1B1jE!e#Z$8)@ zW4qJQTRfs21Ue^?Umj1xMGCQ8(S{Owg7sf4C_3%|qa7kn| zDlOI7G^b?Yy6+c_1#s0H%1B^5DF$02S2@UsY=7NvfX?mHeShBbKBf=9SO%*o4=dg? z>c1`7xkdLsbWMC$742d^P=T@)IJQGq>y#77j_ViLqFN_wp;&sR zR4o&&W+-CM#|it2rms20IP!<4muWOGcl=lr`$F>WmK48tq zc7LhL!#V%|ISH4MpK2_CQ2wsWx2Y}-H9oo=Z>j}P2dsf@8tS8g55X;?;C^HwEHsHGf8S zO3qeqK{^U&2$ga4ErxzSfE?gbZqdDUmV@`kHKQ}vRidgU=<4tqmk z%b)jEMNiBC4Bdv!@W8U$9ZA@vHwgA?qYn|ij;;7-;*?3-;^{!E_`VN`x(nt3GaO@i zq{2jbm=>AJ+3#t}C+fjdkD!+BEFxV=?R^FT`E3f7wKgMrX1&$X86Fo_d<8wx#u!4g zYLA6ZV9ju`i=}#wht{3YP7%r{d+K2!H>NlEw=+ct;>OCZ#be5eD`DCz7(d#B-_Jfl zvG^+c`>A*}(kVHen`&Q2RGv}g_Z%&`o2Q>qDRtk*{emVBn_l)#P!^JwA}nFYTc@=& zlsJz1C?!cTkiNf{iP9Rpwb8*7mwaJAM+V(`!*<@Y4Z##Ig;u0Yjy*I@szke)OJWfB z#`LYH`1E-O;}I*5GS5;oEURKOu~&EScol~~o36Q-CP|ZB+j2iZt4qdl_27`YfbVqh z9IUrrEI)bMUcZ7Pu20X)ZiR~3$XUE8X=iScm%4aY0yBYLzEtD+p>Mik<7~{9C zE!=+KFcb@LMK92(e$F3b)~mhJ=weXx%sV!^5y!Ib;>fU3D^s98&f4BG44nZ>L+V}Z zRwnt%Dj;ifXt!F#86w-(IJMyKOqP?ELAqcUps}%6L(+zFr|`Mqv~pr=l>;tV4dNdK z;n@jz+z!cizR{4|s~0-LxukpQ;()o2W|RO(l($~+!yV8soWmvpD@VO|kj|#lw#JGm zaj;JR_|GhEarkQqh`e}gQCNjyF2xpHF>e(L`Ur+~Te&IU=2|zEc?h0161KTo!GbO+ zDknaD2c}7|H;)w_LRC?DXAhLMPrcWHm6b1ryc^j%g1b!@2G-8&MHykZkYSg|X#y`k z=JrBOb8H1hl_8mvZU!_GqDSF(!Jr)FvzaJ@PA07XZszuNQd$n51&7!snnPD#)it1V z#z=YDaE*;DuohW`I71GPzy0@^GPky>Ntuqpcy5*@lUtT@`IvpV`8{=IyMM>(@!&i` zNUn5~VcR(kOAk3s=t2o3@>yYBWDIB}vmi1WkuBfnh{}(T?qFRkSF|SuqK!rZQQ;Ck zh1aZ1v+4_C%(XYGSNRqWf7h4#38q8SjOw%!2{um|bd@8=m{a7-1A?aNl@BVSA49u_ z+!>Ye^-k&>(7@d#3sj)%-rWK0G}vXhrclB1m%~%PB5Epv&MN@QdVnXpI%IS;Ntsgq zHV-Wfs~&H;JDr5BQjQNT;07YCdLV{)j4#-^l|vj$H!F*>(3BZo1%{jr$wH=$?6 z%FDKTc_vWSaM|iutF~}bV?bd;1F^0E`u1+k5Zc=l1a{Uw#UXCZ_iT)mNNZhY0U-?g zKSb$)RJK&4+>o8j4_GHYQc5fXA|@WkE)2y%9l?$(9$22LdjCpYZ~KluNAOIAE4gk% zph*>GO|@+ueFj!j-L@$6br>ZWT_Z_W#akH%8X$tz(9v5*$ zjogP2G1dm^gc)gmOLQ8nXhpr^bsH!HhuKg+uAt>8yJEj%8Lren2a%~p{l;xVV;LJo z=rMv`E6^l*-cRdNd#<;gdg^dn^Ba{X@d(dfp>jGCUSv25IMgqTJEzV+w{{@ni=HnD0woAjQO_ zVGOFr|?;SCNR7eO$8;OU>=OASPruNKoQ1lk<%{bea-Ulp6}o z5xes4tb|0l^G>-%off@x!OIb0NG*=iQzhcC*?pbvf7+J3M-WOfX<;=?X0n>78`=w1 zGtmQHRg((*O{(Ix&HU&#ybxS>4@*=0nV38dvw-}(rjAMm^I~MHHk%~~D&_Xb<7W1X zBjj=52bZdf@*G>4nbbR}fmyZrMdOB|j(U#SwXTHfF!4@bWlsUN((>uDJ+vr?38@8- zw;dgS&})wq$a*sHUDnFKH4;5gJ~MV3zi(>$k>R<+uS(isb6&!stI;`I_CzCrtY*VW zWmI&ljs|LjmC#2$-$j}O+rf6tb;<^Fe=!WLFQrU) zK$jJGKoVSD?wrdHU|Fq3WAlcZNr)&Tdby?3BTa6n%H@xNwUHR+OlPhSA4Z+qBe|~q z^RwQOJV{(iLG0V7$-(z2>pQq=i)SU$dAoahO5!cGkb{JSk{@HJQ(s^V(_eR_S9?hX)!v(JEZjWunqu3cMSBuO(Fa5Z8{ zQpcW8LI-p^7Q=J5HpWyQEd}BCEsa~=(>*uc{=Pq?`j*pOx@{EIF{X9v;~#!p$7zhY zCoz$$X9M9Rn~^Xpz+!1<#AFD^<7=>U?6Um#`<&*;Q>VV9b$qv3YWQ6|jP_y3st*~* zn7g&~O*%oEx$Ez<1OMQr7de=O_TxI)R3l|oM+W|*^#QL*fPZ$)*a@JuDow4^XwnSs6qFJwEt|2#9O|dRqB=285%CZ7i0uxQB(N-4g zBfDQ}{TH(S_qF0oJ|Xo0RK+E%M$V@1->@P{9zN4Ha5uy2kaViawI}mH^uM5^l7dC zc~=b**~djBle7L}BmaJfKi~ARbptS-k*qr>G~wTWk=~`(e8!1HEvA3LLb&wRQxcQ= z?4I`H$vZ6nJs7zE)px^&Vf9X~N1Xqh0U*3k4Ojgb4#%ls|4lvtfLK!>V*jqD<4eI-aWE>fp-)N-O?*nt5A_A%E?h{cPD+V{!d|5vt#h`|oN;T|MLF~ewtF09tKzIK0zcLl} zfs-z)0KPJm_qd@jx8N1r%C}}K!8q5lB1L?aZ7Hl{zwaK9i+LOj?9$n~Z~pU6jiwVg zY-+W2EmvJUaJe9MF(N?{bhZ{p5!)%a5GIoM;>SjxbqD?gvsyi=y*@E5*l2NfM$@b5 z&SklXO2$}iI8vQ&<-=uT|C8+XkyjBQ$&v+tLZ!V%Qm>}?!pQdy{FXlMvyC0v-89(# z|CIMNrGp37!1SxJ_~Sp=57Y8_P!8u8%p=Zh{Uv!SK-iQ834i=8dX!rwk?e;00+)b5 z%uVYoH7ERATwiqRrA2qH?6VpHJ`d849!2*qfOX!xfeOmvJU%yZBA72Ev9L4E!>ZNM z{OiQtmZG6HJgs>)ep4wqPsd_7YwjfR^L%huY3|j{KRPbl`x5zlaMZ=+2T&B+w3q#Q zDeq_{@3wzf7*I_e)VbRuJq0MH=|k^>DKQHCS#M}Ag-egtWIb-GAMXuqDh<+_X2T!n zmewCx`ccFk_u?1;t&^-yR>|E)m%UVG0365fL(p8*{h0-Y+)-DBAOS8@@@w*s;Jw{m z^;ICr{bZ+YNmV*eRsk)9L4DE)DB0`}P9Z;)$)I%P<{f+!UIp4Od;**gnG93_1>uU) zyUw+W*o_C@uh;BGfs)L{tQ|Tlb^Ape6A*L8x3$8>(!`|9MS?50n5=kwTd#2$XR1%y zKd`93IpViPefbiCVpfUIx<@Fc!Xp?DFW>P-UQ%zDi8!BPt$?pNvn^)m&?-*al~ zQ5U||0*|u%tcjf+s~4TPMcnhfjRRX4rKI)gr{523H%EO9sEJGK1Ie1V{A#k1*~f5- zX&O8XI$Hc^rxebA6C@UPXP%i)87e_aF&aN`a`FJekC9CWY%dHLeA(aEtWSc zKKxWA(;`splQJ~v4&=(&mwumYbc5ru{zn-Ku*}wlRJ#o&^CaeWWu95UkYg{q@_6U? z$njo~ysXNoyNFL^em9VhoB~E>;g`@dX7zFBR>(!(>2Bs1#|J~l*+UsBDT<&7x~)v$ z)`%{FZ-VMS4ct0)j-*)rXAgr7Y{OIl`p;b9;sqv+vdQ(JG_*lFDLrO<*2ACK_fR*%@gb+4$(1wP3X(*ofrnC-MAd!TI zw(3OiEcB1dTLt~@**MOeHnXDGZ z+*-Gm&K{;9?RyM+uGNi5^IH7CME^9c$Mcf&!IgeCpZziIqE&j=gT{k`)~Ow%;1&jr zsGd8dsW`%NH3XTpH1vIu-{_1`*p{gxVCM3CP{+gVE>O2=*dar0 ziS7o{myT*I?n9Gqc>*L7aNe|`$}CC5s-tr``(|!;Kdegv>9@ zY2>6@cab6HOKPf3&nk2o=2N}nTx``JLo943<#m%+t&{s~$lrfqw3X28!YaSxx357j z+6*BD?R3mr)mO&?N41F2BMS2SpDVg5$6@Hi)OsPQiP2XSJ!-->t_EMEaDw3|<;m_H zev4+C3Q=cdte&#Z#Gi5k;^bkLETp(K4zQ9@%xiq7He8|j$KlSb`s33b6@OK99IY5f zuqH8mOzW89Oc2YLc2Z6%kF7)8>j4^ZGA^mhonmsjiv!xRYrSo9zp~5&Wa#Ga&H+)b z`AcSJph4ly!(})~ln$1~CxVx9L%o9yB1Y|#B&+OhTrIgN5cM!>Iyg6)z*Jtxx(ZFG?+_hMMqDJfXx ze8oRAQ>s*%ziYK_wpah9Qjo4#G9X#Hd3r?aw2}zSP{@7RjPRKH9Xmu)3q4 zRt)PahSpkke#F-%*Cfi@NgKj5$D3CT?71^}X{`@Yp-kihV9k3Ltd|yYST-p1V?UA6 zelMa#uhui?^wECvrG5dQ-TJ+sEwveXX?yX`#{nOx39Gi%UoFPSmU5iAeZn2JE+eY0 zgvi*{w5rFq=WyWNU5BKc1E<@7wl3``z7u&ItS(#VO_BZ;arO!{4hm~7H zRI0s3R3iytAECs$aqVtA_q4IXU|wlp%=K}W3!wB9hUEF+!@eRl|Eirdsje`<(1)F2 zHVsxS*^$Ns;2Y3;z6i{KO(WIA!)133T^+aD!rOG;P#Y#T=-1xxu24ByPExynVtsMN z*F0s_2DNQ&VLiZ~jM*?5t%)xVF(ix|Wbiy9Ks-gX*t^S@Iu)l_p*@-B%JAkk4wwHXCb}SQ9{$3raOB` z>voFeyC8QHr~~RwIAiIJr|A$xM^qP zC<9XmTTy$wY@D<3@mx>H4KA4iX8V`(c0arV5{R2W>!%qKMkuP0uu$^iTGT#J%0o74 z3)c&H5&+HX#>DbuC*2CS@C_OXXx*rSwil$*;_bCN5NQ!Ig%M0*!ZBTbHA$Y%?zKjfabWx1DtY6E zHq@}G2<@KHtTvBU5Nl0`-84+5+(kLsS&C+R7lWOuOszO^JK=Zs@!j1iEkoS6i;lpCjL2l&L}1hX=Y$6$r+u(oAHu*B*kFV2ZE zx0IArOSo12AvfrJJXVQ!WjjR}`3|(6P}0+pNA>eHolLm>X9fDhd-p?Bh_6%UB^1FR z5<(0>!$9BcN>sqtTFPT_BJ93hwlG7OPo+p~MIlq2Ux_IHsqvpgye9(hj%W%JqO7Uk zE;j0LD%PYkTX`J(pelUOK>UF}lFN>kEc*x)i2Vldthva?aqUoBzfbDzgaT$QFebWO zH)KTG%u7i5af#*w|SbGGrMSH_M)u|a$LLGGz%Y2K$8!^-+!x?`v^^(eKT4^FLkMf z+LoveCQ%-Rp#7o02S#^QQnvKHvI;e~Vt&dbw3OKTrd&`uLHJDCT zR?nl|GnM>Yo3CY_HAkxF$ikEaWc7l;x_8=zMe8!W^>?%_$zDt8UTNExmMj@~U+1_! zdlyqqgEtkc^JuCsV6c5%p8j_!lI>8&9HUpE=D-4pi#wLHHVD?6v1M;!p={>R@NLIjP z(8U^49i$XR^kQaID|hJ+V7D7#m;S%pDB) z5eNYaK@!jXe41%^0PlH@HoSB;ES%_OA3EgKBwRi|CT|ZjP7c#`x11{I!xwvY+zE4Q zNDR@Ai{Tl!SZjQ4u=i?mNgS2uZO*vEeNONK^hnaFmih(C>+FlTuboFW&m>Yhz&{NW z$=I-3>W4dp)LTCXb!B}XrCA?0e0Hgk>-iX&ctOx%%CPrn{I$s8%V^MV)UZeRmjd!& zPlJ!l?#i~6n$)K}1S+_8naJ@2i-t?O@q8f_M8XfmIT*JdwF+)w^aj?kseLLQF zU9v22CPhMeC93Lh@+W;^URC1uyg$?dsVm;;Q~`_xoC2E3fuShw*xNtuo0{j4Nm%NL?Vef5GuM?c&9mHB0yqkoyAfFTbKq`HU!e zJ575uk=ZI;)I#5H*TDBBf`)_?#`^<~H|2w-L5>$9#ILju2r^piq>iFOHwq}V%_-cV z--D*sw7pk3vW~tK2#zI5RaU<7fB$(ox|&&ra_b_YC)=p)l34Q<$1nP!G%#*1bXM$Q zk<||YUUQ)gk51r`cQhw`bYs-5t!AT^DUy;80dtj`8~f5XWJqw*wwI7^R=omA z6t`RBXSnbD5-<-^vVW=yIK2VbKWp8GfNG~AO8NL`ZF2(ba@Q9_V)4@XB`K5F4o$ z<``8A)QG*5J8|`YoD167I;vnhRtH>Ox;IC%`%@MH1;;q#;pwOKI!iM5$LFzC4aa~t znnjbhcCY7R=hZfAw<%TpoP}@v8-c7o$!DY@Ec9Q@FJpn7! zTmb1~96e=O`Nf$khGOhs7|V2F>EQQlf4Kb?+*uiaPslAd#Py->evU+`Mt*UWVQ43S zqAG?TnXgN7^sTgOK!;mq-R~=Nb7jl1dWe}!zUtEmv6!@j>yLzEgmPjtO9XSU>>we` z@xA7<=ViTBcw4lPBu~?i8+t*!A{Ki#O63EUD3M*hv;t&8^bBoSNr^q*L)}CAM^K|& zdFA29fTu1g5T;QqL1+wZ7FaK5gSueGI~R+D4&Be4Ytmb~E6}S$zRJtX$^eS}@4o7c!06}A(rwFT+@`FSH{(HG z^s8-?o-c9S*Y^2KJqb8&hc#T5q+@(^5m*N*nh8FvaqjOGcr*7250)0m@o<@Roxo%_ zn_H_)25joM5XE4%R$p2P43C$j0NFgdta_!*JFA?Vl1QLFx-4_|%g8M2x!(30uyZeV z*-*S0M#1zCn!Pu0GL>iT9#DHU%|yXg335kxl31&g=l5cwM^|C4+(U2plWmawf{A|} z#?My|pBy=6$NymTC=Oe@VG@G9d=aG$f3c zA%7dH6zrt#1BMn07p4~!s%;lshiV~RwwQ14E?x}(RG%kuesOjCz&hqy1L(JbIAKAb zLs?e_%`0yRnmFh;ZZ3k{_PXrwdF2BO4_jio+^Z)maW8~60H>PY;teorKIw8akDI0mP+f`;Uma*5q^(2!7um$y+zSi(U*@qL!P zjzy8>(M-x~#WZ8O)B6nsWBFUGdrr}J{wwAre_sVv>C%3W7CMzkWFO>$>BG!VrJp$0 zehv9+(sNi!j}`_#b;;fS(y=oWs+Ci^(T8qKl*Gw)0tD#yj5XVpis8F>yAcT3*ud_z*ecQ&x3Kp4od-Uaj zYCK^Gov8>`K1-$bGsi+}Z9s}#POo0P#(e1hiF~my&^X9%K0$F2sCIF#7O|Q7Nqz5= zG3#lFw#)1*q^YT(f38`Uaj3*c37evLu{+}P>G%_Vd~rwt-{4#8*uJzZ8;5M%sOYMv zXwYWV9LtaJfhpdd8MqoQFLQ<%t8(pLgttM7sMAj!H7BoZ5TjD{M^m$Bh7NT85 z=!eXpShCz2LfW9Ss>v+y4x1Gj!-RZIv7-%4P2%QBDb$_B8rjvJxFf;;I%i$sHn1`jtbuPV0-JV>=>7x!QAtP?Bg(36}%Or<2Z;J?= z+S`xG#pMF>T6t@6SfW9DsYM4^IKi`+w}8KN6 zHVS%dxbm{rY7>I4#ul(OZ!Zu_chA6h+zBpQ&ar{8!EMj?DLPt?Xy+=2Dl+65+_&ym zErp$-Y=Ic3#I;XVk5mKfN+Q=!gh4)=R?;E8x04ThdGX8LqcO|4u~nocF>U zQls75H*Ly99B@t<<8GwW<=i=C^IwXXc}^w{y_wLX4*H1h6jHeJi^nB;3Sl3&{g%1HOY{_H4X6Ck5_39{Nbq&3ZWqjYs8od1Fp2>-w?qUR{Y$oYfJT42?0yVSkd|y-hc<&vEZ+qo>uCYu)}cahJ-dUVSl5^cZjdJzdhAY(f0YDDputuP>iO*z;1$)_ zO)nJe0umYAh+1?m)_2_~!cLl$Uc*BUZ5(OaCDo}35gDg^B*D_`fYiL=rVb<5^u#L@ zSMHYt%+wD_2Erbor?*1O5K|tx;b{KGK?KgIpsj?6j>k_*gc+IU;_34o(U|S3+;P$P zt36bn1q_$R1+jU#biTE2m0Dcr5M#HD^cfu*qA{uLW~VQV=SCajuVh{UB)X1Cc|l0U~*g9 z_fyBu9q>}$hwfN*@^-kvRSv)9dG3T)FZBv3-Kd7|oWn90HIRMx?jo=*uS8P=1o?L;7_+p(mrxy=oG2gh7mY4qWaG zOqtWYtXw!vs-{P%)O_5o@ttd$_!HIpYTAtnDSE0^|vIl+!J1tgMmk;e`C;hX|LAPEA7n$n%+f$q2Zo7a{Iqv0* zFkQ)tm`00zx^GAPl|XGCziHNQW1=5r5mwe1z*Rnq1G=IO0I>FK6v4Arp|Vo4i24ID zl;q3?*4czzecfryhZ4qSm+szgsR^oTv_8OXPp{IQkY)JPMcMYVMTZ|Rvy4_D%3Jw)3LPN|~j$k?H>Cy$%GcN@c$;uQW4{g<+ zJ*C^&`6+)+?>Z$*lvSl?zO%cX&3RmdzF?ei>!{~fNsk9VYQbj8uWd|}N~E8!$e3lB z@Atp9>O4a<_q-Q1@?DE;ag~zxOJ(ftnIfhaMjYBvfJaZC$e{IJ@71d zqchF;cJjn76}d#k7y6kuw!8NJ+U_skj{u8ZDPapvh>0)~oyAF)O1by6-zDTK=oLxb zQ!L#0j&@}}k2@zwXpve4l|L8Tt=MU>D3Y_&sBlkrBO3#y{|rdcV`nO@Xxa~cDW^Mb zW(^gdb$Cis)?aP3!~c#gBO#W>o1Ts?XmCcQ#&=w-B$mUfAQ{A>_@;#Lbd%b4dHm;) z$JL~GQe~fR`#$0ETe@Izn3w}@Ss=o7`9lkk+xD_Ta8y}u@Bf^3w$_}UXpMw{r3TDo zMq+;CoRe6#fuEbV5?Qt>c4ts9mC7E9!Bej=mSasMP36x4jTGcNdV?gdAZhvD*pHN> zjj8d3F%Kby^8qT)8`=F(LoaxbCOf`S+bUr0WbN)pP2J4TLU4F3t&1oumxuJ`<= zlOb9ffYN~C{7sA%0)8u=JGYjnv-v$BY+G^velEPfhxm!!2Kgd4gEhpY8mH-(knw?X zT#|fc)2RufT>_mo6_-#&6%QNt3}m`(U}grVf!_o?rsoy`sm$uUun< zO(r=5XvWZT5VD}dzs&KWWl&#o_*KrOPcb)5+A~JZPrg0-kn6eOi+0qvc5VjJ8Z4z( zwqOji4H*w4u+axn+)T5~7^8p+OKnMoZ6|rn z^PWSkEk(36ep{JiPT4X^!(mySh9+z%q0HNPK%<$D+kXLeh7BAyF8&pG+ zpB|!iE*-7``v)9VhwGWN{gzuO9LLYWv( z0$np;wg=xw54CGPIg{`jPzemE7s zrl2ixuL8??e<8*ESHU@ixyd%rmcV}*bXZ{=CYIM)(Kw`b|4jWT^_rA1J>LkbjuS9N z@Vz`q;-A-?0cws`I4JUqKk z-@OBRZ_S1leLH?WOq9@b+2IYwKU@y6}j{e_ln@y*TWnV<|nTRZF4VdtPPbhVjVy z>4C-eR4~n;vp8wfEXB=G!8Jk^LrN);oyjG|ZOpuqI{HAX9E-=Y%2cTY)Zd$lkfjw} z0y#u%mRv|^9$M?43B|Q8T^QSV{$@-_89Rdd5@v8(e+WyLmbL`RnnCb`47wD{sd4M&o6r`!An71+OT;7rOb>nblZ489Pz zw)OIXelqEy>4g>7q(?B_0M4d&uKg~6C9xnxH(9FYQb zpPr<4h$*@LI+!MkDZ8Jg7! zv;&?(9I6}sMxz_7(c?Ilx|npUbpjUkC6-bM`GU6Pwjc%)Hk%=Y7TvX^0shOZyj0cE zzF(m!g$RP%!^7c*8JS6)rL5*^xxehXqMFmUYqv|Tp(V>6tvPFJ{Z=(YJ0yyrNNLRG ztbYbZ_ZhF?L#`VUzkK=f>g)3Wsm8|%u&b>@UIv;|{z^#HqP&)tNY!_m8ZMJl!XoK2 znx!ho9P=h|!ODH&F-`oirZC^WRn>QX-e5=1N^P#IBT*drBJq~p>MiMzM^~&`Gs46M zJb0|IzHc2)SuEV*s07QHZ_W$-?0z319Z#t8Yrsyw8A-`0dDI(l5H`r%?Lnp^#Ii<4 z!)}V{zkacj(6)`K6_8>%Jg1{|kIE9Fqs}yv)Rf{T>9_u#1-{`x2eiHA_4N^~BrGlT zFN_f*seDj7^|kg;-+F($GuLwD+;G{k`_r}T9}PZVfx5m+YfFVp$Y@L6%W6kAV(N>e z{c%^ylv)a=jG0{;FKlewAhs z5sWf2n&y4cwL5&_yUYLC>E-MmC1>kINQF^T8pU`y_SMfZ!GAraeHh)8F_Umb_3&r= z_WLyU2kjHZBg20@fvZjPY8Y-N4&FO(o_)3%#M{b9hjCP;sZqiYhEUT@m%DcHOJ}LK z9N>RCFfGfmvsHf`i$@Iog}X-9Hvvre@$UNz_q8Lnm?kWNjTL1(a_&KC!`RzrKWd*= zx5=MzkUceP(R7B|dtqQhDW@?; z%p7BEX2Q(O?04<{e(t;O-~PMr<+`q2hxhw>zu(W-<56kPa1{lSpA?k*o!-@@sYMHH z>hr!D9T6zmyK?==)58yN9)=yq5o6~9g<`{Gy1f|snukK=89*t&LA)!oWsv*r=bc?g zm5*$SKlndVroYQ!S%K}q$;u6ZooUJ%Kqb5;z3YcaY8F4#&frWLzB|~TslfLBPcF3F zN>t#0^&aP=yMOqLez?j~Nb!slFuTwYT=p9OV}d!`VnNU;X!My>sQw)DKNP=_GPxbc zVEYfEjYil16SVd!Hu~TRw-|+AS{Brj1|oZxBDNM06#Use#S|c~iO&nm0Aw&1UzVNa zrj*zAX;k>p>W+6+tUjGL_qxrE@Q_-_YkZ`+)uTW@*|}{DaMGGOaNFIu1_0Ob<#^;& zJWzl=I|q>3!}-esYu>LOx3aK|MrG)t@&7RqiV7M~-S1%Hwi~>XUqvK84gz7zu5IGC z%jxk=g<2miDH{n3Ub@PuMqX?;FwTlDP{kq^6bCLAL z?D>fm8HqpLkfw&YTeI85nussWAk{mQYIGL0Xzk3|^oADS;vkm9j&)|fItAMN)GYh;XBx2j82iaj z%k)o;g}U5aX~40)23nSy+`O)XSaV^P+df*21~e?$_`mO?e7kh!-9ESxd+>9wQe__C zA~<>P-XH+h$Wb;g_N?<)PhLZ8CkYv=@*}qHF7+Byal6M?=eo&!`dQ2^;@wis{NJ_; z+OA2NyPYD9YrCl1LPt3hk)*k(#71E9dMszH>S0IdGN_dRu3_$qs%F}GEVtGJw@#S@*av`PYjFZtIGzh>p6u^`#-ZVM`~WInYVU!lYl2tNQVCsub6kfC zvv+KO;s>}>ot$o$#@7#3VRZ#ph5OGU@<&>4;3 zjhGEDk(d9g{aA2;SAI<}61UY@8&U>1p>H`e2U@cL^7Rk3*6AwS6d<`R9jog6-X*Q9 zvl`+_RTX+RIFTtySj&I7f9!7dB1UCj?XrC|(b~500CYj$-319Qq4}214y+3k59WvC z#_Mb|2{<6E`H0@x@ux$p>3~{jTGx83rvc}2ag;IZ^y2;EpiFVPGJQ29;E9n z&gNt92`@^lXCRnM16szl)KSPQN79AGog^{z6R)oG=>bJHT++53cFUCH{u(A4SOGOM zk2dWtyq8%wk(@eMc*&YW+@Qjry!Uxor$bo1(cL&)bIQjddCUj75e|?!L>VKP7bU7n zsJeZ>E8^>V-_tGXpbE8xYThsLUSmj~vy*?NyJocx-5WDA*UTu~5cdm>x#5&r(_oTa zhI&O;2bP3OE{z3s9yj!_7+|X@9FIdn~DRTYfngshb zwfg;9`1qi6MEeNYcxPj_%0j7mGG;Lk04{C2MnVT}PKG+t-v(|vR`EWJ2Jmcg9ptb% zgVT_sh&u9dR`kGQC{Wd_SicscHh+c;K9zGDfNn^X_wg zh7VeoLRNMF z9a|7TE4kFY)7Q^#Fm0f@-*}1Ooc$Rqqdr#QW{AHFekvP>B1_7H}NqH)Sbh zgy-K&+e>QzGwPSMr>li06Va8cRjeD`fylZe@F#CPBiM5p%@iG0<8+9=)1ERFDDXzu zb(<1I#MZEDA~Wk+DsP>~V_LiHIkj~q-A`6y0f7HJ9zZ&d5-V_C@8<$%RvUOb9R1v+ zu71Lod$_S&v}KvKQcc~G^(3IjOC+B|y#95gV%F|uc*^f*9Ilg6*vfg8 zZ|AUxoxTC1rc=5Av4(&IvK@Ww-V%Kn*lSv#KH>5YI|%kRC8WE3AW2hmXA2N(M&HpT4f_1+v!b*&5) zhEJ{uz*?8PoYML%J*u+w79lLD%XY0Y^^9o-9W*Sbc%8YiO#y*mn3|L~b8sa-ly5>C z=w)RF609a52RPk8M?Ag$-V;7wGzu{zIV|xTdGZb??byY+=Z4ZjeBRWWceYZkFR^?j z(@uLk`54e)Ph-nbDCIm$CLc5d1t?45{CxI1@4GpclWVytdFobPz)(Irc78D0Wm`HL zSi=hl4)i}B@eT9UnE|mq8sGkgbklV&&?}79+#4udc@?|&s4`=#|Fcr}r3|D!whzFw zDgk}Or~$irAvMC*j8aVZcv2NTRoLBTwf+9V1CU9$ab+k3^;=uU|7?^LJ+uJQ^+`2AR82^$u4>_rlzG~&=dCBGfzAu1))B&0K6yr{ z(TGW^ke|@novzw+2}c)F%}tIaxkLq@UUMRyP!UQ31T@%7iiFahvEtBD)8TRu(ZB&` z@e)SNRO%WHHbN0I>;!s%NvyXj^0c}MYn)HES+~^->TQnS`(0remzWx}N-dSibo1!P zYwj~11}`w#CDs!2v*5C0@Nl@FiO&eP5-5zl1XLV!u4tJCWy)VcM2(@~_Axce+Pr&{ zU5-tGmZ47{qlrNE3&Esyuxa=b^C^bA@Tx8<%RduhHS81JzY%6KB;V;ENwlq9(tb}U zYI)PX@iM)370sN{Z60e-N*eVuU=o+UjXr)5kB^yi91oL-J)Ku;ZWfrQIkn=^0fpeg zwv+YaZVP@=-|iHug3YIQuvUoBKgG9?r_eW|svNN`5O<4qXQ4bWCo5h1ezxWknJ4X% zrp@g?O@@xR97$(?K%|PKNfI<#@hf@Cn+cA=c+*Gi)86M}iX7SR^&hoQzTAa_X)%na zb3dmn+g1icX@EvU(8)Nl%ZG%`JG`r*aJoU&RXZ8JhYOx_x;9q`mOuVY&D5Oyg$rjz zGY8x=uh@aR$6@s1X|zM=HwOuK@k%tNTP8+!GApXWm zm%LH1s%nG##>w0zE?oX53=td)WcvV!o9<0Pxx;&Hz?qwS4-VT{?cZo>Z75-m?4Q$b zALC25e!3@qp$S;e@3{Dk4+=cIi_3g~^GzFbLAJfg6slzi7#M z`fx`0cj`Dopg<8Z6?iPpKcUNUZavAiix&_{QGD-kd^`ipOx z@WC;ib$h$H=X-X0966XeC~j$QzcQL`4)tjUDwIm{JnsOJn}tA{j|FGA@p6fZ+)6-q zDe~N=)ZXrtF3l=+V*CS|2I>R*_5{D6DfLsd17j>r=_g{vZtg+-ZffEMU(%N5{vGO- z{>Izjo(&}HP)=TGjKn|Kpj@0H-kwzMA8h(wFI5@hyD4sZSie3bbPap~;}hnjvQjVxpk^t<*8eE^o8gEw{k< z-MmfkBC2tf@B`OgXq7+{0AS;xan5ta?TZIT^}XS|mtb{dE9P(poO+>;0+i^y z!`umy9vU86p5@Y*4ZV(;AL&+0U+!I-J33F(kdb~&Oi9=qKmt>~ z*V}|-oW^SKPa)VaB2~h7o(z`K%Xfne@!IAIt|>IFXwKrX->*#fr}jKiL>e zYCwLNE1)l6i)^l@s>1bNOVAp#rPGi}q&#BASn_YC?DBf#gVsCogj1L2&;P8g?}2C2 zX2;h@L$0q+0j&^>(`yz$$VS^!>6$PEG=Wu2|Df$ZH~#_9D!0sfxNpu~(H-+&+2HkE zRb4-7Gc^p6Q^+sReM?1;pBDm0MD-bymz6h-BN(d5etZ1H?QTWSf1G<0=YM%I6}t*` z{h6K8eVtSXEe-JUzY4pSv$)eGT*Y9{bad>@Ga9^0*CHn~V$nO^Cxi;cmP{WuQlFQx zWYC&iaOgLU*a>+d!HNmnwTKR5Osh820=Pcu!>YSF=s!NdzhDU-NEuFPzf5RU&hxJ-i z>+JNDgi9hAxE&hqkE`X{q!=N0v6i&SG|O@cp_I^Exvu0crjT-^-k0kwAb3UBi7Jnx z{5)p<5EM$RwT-eN1yV*xR4zM^w-Ly$^<6Px_J2O{;=w==gUD}tr&~%GGDfuz9tm4@ zMjg&E6o1S&W366I0e`7J`C8w)>LNTX_JSM9R(j9{?O;n$J#MHW^WMj2M04WeYNxxe zaTg8HY`(<*cGI%}-@SF{nR(OsoFMxToy}BJ!LjRLJ(5xMNIAGXq7jJ*S*dDX)|fH; z&DT#j>0{oDlwEC$F~AJ_c1ry>Hb89G2FCvT<84HKRZuQZY%ry1mytF4FP1}wIl<#3 zTZX3m>Ea5P6|A&S0=jkJVns+(-)y*&6&rzthHX>1dV;PwhwCaQr0TS}oA2IJZslBN z7M;z}PjQg}OAENERMsB_H~~uwm_(Vk-}a7wX;Esp^A-K@vlqGF#8xs?N$SgmqpfdD z&TPFc6hJDKDy$SGpUt_`{=o_>B5_?XL*S4TM=L~f{Ref^i51*0deq{R0UjU6QqRJDnoO{Dw3fTHa?v48>69FpgLZD% zgt_)B2XMYUdKC=h-o#Tv3%PZLE{+vMM~K#!g`YkWGJs}64uZ0nn8jSmTD8924}tAW zJwyc==0z1plQNX?uH;e+>9OD2%G?SQ9ByexLb=lqJ?sNrzaUH{e{CwIRO}*Ro<1l6 zgjZ|flA|JEBEfJCN43lkU4#NFOdI1@exKPv>1h0^&wu8xq^h*NPsrGmd7c>FcR$!W0tt7=U71I7^(+Z8jt^oESk=Y@cka|{DneX{GIgVKJnq`pMqOHb1wN)@s}$hzUK zWa=&bV1(dW=vD43lgd;$h-U444Q!D2h_F3ej=L_lf_4edvI;2ot56VHQGM?p)3cyT zj6T+2sw%uv;UxY^$v4?Smabam2Ht{x1>Sx{1+U~F#tK?WD950!=ctRLN^n;by;fkU z@6!5|1T=hLM;aI}08+-fIwST#+RgJfN_2}_E2xQw3tg&(t9kqqLcGV;zM{G^Rt(}E zEPUrS%43eWnrksyddrvjtBw7+YKL{KRXd?@0&g(1HcWWq<~N=o_Op$nG3gP}(Wtxp z_(!n?>jTRWaQEt8(iF@sc}jNGMWt&`Iq|2Q!_U@ubWs-c1N5c9h_OjI&b+)w|{@ zIX2Mu;bpIZ>$vJ@hQq*z%)TE>mo&4Xs2t zO2*WO7kDDo>wArhqik+p3-g(~B+2ZmbT)Fus`-W$oN!i%Z*mZ`L%+4myf-;a>)+** zj(b^Lo1^Pu!m-pPu8Of#>IEERsoh^L^aLr>3T2GNh!3fbg04g~T048>@y6&a(x8wM zry!o-sQj~o*=4p(t_q&;YU7$&81OLNsRM&AE#76zUnqC~b8w>Oj{YSn(TiFheZ%f{ zvjeyLRk3^T_avN4jh02Qkg8_d;jTNj9%&OBvaF{WGOFXr4K^2=55Y4NY;2T$nO~i; zOEuf@^5ZO6(2gzTi<;lu2=zK^k4>9a@mn#bn@zO~6FDadfHw3VZ0pqkoM-1A=j_FfM6V zE49W~|EaIbcE=m9bDt34(#}^81ep(DNDJNk92VSb@yhKud%>Jj5SaA^eTtVRs8h@h z{0Q=CaqSs|Oyyd0Y@Qhjy80<>>FEu43k%s_H;%8bQ{U`WpVTTe3_!}9e=kW)?h+@; zjEV^zA{FBwZ?z{01rg8A=9leyJ*yY*4NbRdv(!IE8+Tu$nxovwFx!qZeioXw(rxrT zTPb}!jdcIb^~l@-N^hZVprTK;UDVK3J+_j@b#$P)i&*4v^?a6w9_M&>h`aWdUTSRJ zz`h*YP#q$t6#kq%X-hc@Hl){;BB`Bn0@YVlNiPoS(kc;9L~3n#^s?E;1mf_h)#4-P zC|@k?^OloZ^sv7=P_Z1dF;vv{u(j>IzRMAxjX!4ZweAB~DO&(JWptKUrG=Ymd=^Bk zXJA$M2<=_2P$I#lF6S=EX3PqIWFaMbZSmp`y#B%QCb{(ec+x(!II$RRs)3fYs<8H= z`wpceTk3Es^sMvu$Api21Cu0Ut$#Y&FPt)MIgow+3;Br%cPt%K23t19jE_ZYiX4+LMVCs~xgce(sT9FuXbps5jgO&~K4i#s zQmn&(kt6M6NVtNAbF2PtsXtIdqmJMV{JD~7d==E!f47zJT^+_JR>JfPn$Qzc5SP@%h>^?qTyVd0e{OiYsf0lY&cV&R$_1s}ON z5qYmK{9GD!z!U34JZ!Q?aH%}}oQji%XF?=tqZ5FOyw%y;9**((O1HY8vsm)$0tH@L)3v0b0xM!ks3Z+E=yF{U~C4iwHR&x~n z^i)=8*UKHR#M8tN3PR$QCW`&HRbHpVod+&B_4Wg+hw_G`)Ll7auv+YKDejFnx%^W4 z5oX`fl)9cVq8yY-Ej;Xh6hy*xwVIC(8`b94J4g$krJia;O7L{^pF@1Ab%URW6Mm}* zbGbp(;Hl_?9``rN?=42>=)%g)ThRxEavc}LNVhmX2H07B&P}|y0o$*B|JlM@>49dh zu!XB*J@>mLZ$;9`d2kTvM#s6dGvtVfI6l4~<=SDTu0beMcCyA*w5A3#iqfbksBV79X z(tR=@&@#iu3A~t-4TE;;Hp8m87Z3_|6+z}x({-}N;F&e~{uLcb>c*@VD^AUZc?B}m zLZhdAwe+ML+_2bCP>OckDLFw~$~-N|oCss&oAW+y)gqy2X45$j5H0X#E8dENM?I6q(pKqulCR&5TSQ4JWu{ z8FYA;h+QLY5W<*FK1qY6E$@AP3*0J{+1s=3Y3+lO_{n(CuU)KYsssZ1h!sRT(^5!s zx(WtivckEvnFN=5`hq!L6(m|kiYaPQlNvIQGp8XsWEGTCAQ~l-aC^;{Ir58b)v1T`9Z(reW@bYJN*jVpjS zOgGFDO&!tHscRLb$g3skwlE6SP8%>)r5)Ju`amv1otXvOxqfulXlWD6eHL#FzEbY!n)h3_(vs(2D~$Y)H*Q&Dyog+|X=y zeLZ{+1LgNJ5tPe1Q%|432f>)_DRhguH|~{0WA*)7sF<1dXC)0T7EFu}KACzwRM}G@ zc{8vkE)-i(XQoN7JNSkTNP5%pWfmxV=Ot@1uS!zBdNh?qhqfIV^w}%yGpSlmFNWCcs&B>)Mtx?OUJNx(F_PH0Ssr}(gre8 zt5=C`VF*alIkNEZ0#qDpoY=wU4ICiOP`n7n^rZ@kItPx6l!O3h_MfxG_ zHKXy}wt{ZQFAM+tF^YhNgzdM~tepdE3R6dQ&`y_6Uo4X*L?5cy8=&nl&sVDf(kj*< z`eY_t8oF$nIBnY~XX;y2jyg4bS$(Icj45^^ZE+J=l|hVumd$&O_fewP@Q1V~8N(r? z3lkkS(r7BSbYGI3vd=Rs#^EuPj>tznw;Y9`{p&iGX;c?VmIEl<=PTb|4qARf%1&hh z2=hL2Mn&?nC{45Fc!19Qdr3QSmAyxI< z6freYs(f-YQm#A#s1ymFbL{-1<>`Zd1aqN$S2sLMs)Dw;jz z(n{X&;8c&$&iNj|xN2U1zj}<}=xHmai?Vk0FkQ5URJu5b{-o~MTGqMTptg@)!NK`L z_|wy@b#2C*5sLAUH*4R-9oq4P`fnxpZLJ;}kaKaarpo(F#5LCE2XfY!B%jD-AFY?Tj%(h_>DZM4ha#V!I&gZH#ayC6)@M&h&h zQVJ;xq6K)jP`w#hkyU_S?%+$}LA()zU-f*!Rf3~t~y)s3_B)wZ71@LI+&tCU2G- z&lz?IlVXP++IIvww3)Uy^4GRb6F7j{E-`tts6e-@uQ6w7pz`e?=V4bDp*$|J??rj@ zt=ktY=L%TPq|O0D8SQa>bZM;Wxub)(4qAeS-hz(-OI-!6=iREBqB^7|4pPrgi~!-u zb<6{*uu~^#!238BRYJ0mW=aosVY9{mw1v!KFn~MhK*mk;Mu%9Y^vHgZsdFbLOseY+ z(H@n@l@$lwzklH;hK2#<1lWw#f~-FIr#W8Lnq#};hyYrs`nOpEmyKySt?@0Gic^0*C@HI8}R;~t2a+T8)t z9eCrx1L!I;hrS*mC7#V;gi2Qn1Pz3%oRiVu>qku-nl2AH#~SVKIPB>#E&Ft=DPFY- zu+uCSF}6pNc)~ME4dv`98`;qe&j3KJeaiB{4WZAPhvM=|edo;e^o5?whD^lYattM? zlc%=AvVXc0U#2UuF5Y03|0bvH>%A1p4srJ_kj6Hd5jzro;n3-G{p)<#TZ^GalF$1G z+5lndia@yxQfq6WNOX5jq3#r46WD*bH8bua)e`T-{n_?(gNo%2ko^1*AlRWA?6wrT zb;U0%I#I@g8?+&0D>mMAv)ycHB)(aUhyTbe`{sg{O27LYd-aBg0SbH-PgA!@hv0T5Y8u# z&YjiKae%&lkZ5VkiaF-j1x&IYp%-a&W(XZ4(j2sHRoCA_CaH9U++R>`A=~Y$G6g|Knjh7&z&~A+a#O}0FI?^W~HE; z$hL61t6Qkb(wa^463s^E+wDP?=AN@fy@v!aZK$UP409=J)W*^%AP*t?I+9*n2PBy-bzI6JIe}66%$UQ>{lzE z+I%yUfB&!H_*L-vhJ6AlEgd{gg60I6#&a)}2biq8+QcdHTmNzmbtMMx4*`KoLm<#5 zXCs&cBNa?ET^z^j-2K$cm%y(SKEzb&dbrYTTALO45 zK-Lt>AQpPAv!)YebhhiyivFUw7_KS~ZWhOwk`m2zR6t(cB`j?l$@AIE`P|50Ok|u{ytPCu&YW-%7Qv*fe^C4ZDNtr1`*(!XE1Hu3F+*C&u-8-wFqmNKMU4Z@a(4Ktq*< z#wK<)>YMqlAor#zfJMefAsiC45gJNYcGYR=;p4-$#noFm7{?iK!R&-2SBt%Y#g(eTR8y{KqNgO3VHj2c~lKuE)Oyx z_o{T=2PQA#$O6`6_R&hLmcQw!oWlysJ5)3Iq_?QFho~c3WPnW4Q8W;v7zk7?dXj9U z>r9HY(lv-p3!LjsA9w>T(eo-k33jzH>+Ro~1Yj%FWqr>wHUM0**)YfR z--j=Vm$4kwAx(Ly>pWPk=4lgLC~e$$TT5gn=>hHl+t6`-UxeQ)STipow6)Kdw|$K@ zxUyx&1x4jVXKGGrtKHG2qvYD2)(~I7oy)AkGZjp81nyJes2ES6T7PZN-yuTawr-n0 zGHGkwPEu(rZ?ivk#Y&gSmtgKxs*!6|_qUE=>VYETm|M|eR!^fJ0~J#$@>e7S9R+VI zN)28L8dHoU8{Kx`4DNuP&2_|oQWXCBasSn?&#GSweKuG$Z@OcYCUo9I-V$CQqzt?k zhf5K2FbHPKobm)p?u+lsy~vC`sUGPONQn{ToF4n~nC;lDm#iz!!fFbjZ`v7Xa)ZCr zz}p~)y0iwUoqY-GK>Ionn5?Cs?LLv|c+pdj1ua#lU z#VI#lUiC&pHH7yh4>wPO0-T{q->k-_AkhhcLFv1~PIu(S?zF-%^%A zJ})rML>tFBR2>Cadv}hkTbJ7`i#hMy6nbsNf&&2nifi81K_?u~-~VECdkk^}(QZYu zMFtaMia!%%EXO>KyjT2dPaE3FsU+zB*e+aG9^u&F+LinAMutwTvO*VPNvZnV_xj2T zy3&C-xf{ypRhKvB+NI|QTa3-6uj{u@@ROn2$WGul!uM{k+lh^f!>J}FP3^OUW`m%mZ$XvLIPP)_&wSvUK892!OA}_1&W_5j>J_GXVHhn{E4yWOMNVh zPClB=2cKp>s6IDG#vo%H<7~pbv>O5Py(7_R#f5%t?vxFWnj__RCXY_g(HL0H3IarM zf4blyugg=zas6y?u2 z@jr2&Z|JYf$06LRAVDQ8JJWNUh_>wE-;z&M?t%#WI-nfr9lJV&6NYJenhw-661ZA%U}@)>kXks@hXKT%(Ihuen5^p?3`;OEV&*d>bcX z2{FFx&|ERNc{AZ;Z3^?(&MyPn4^YfB`o7sp&M&r%^H0BF-1R@eA+Ni;c5W7H9LRl8 zA)6EWS2MM|;@wJr7SKYq0KT5~;mxp|$EwOFEszLTQfEjm7N=`RRo*<%!kvAHXIg>)(JlnuW^mQI!MF$oFy{ zU}Q`IxkwAHa?ATZil^QUYW>8!oF%Iql9*t4br_VL&P(|g*2~~6RbjV|0N0LTMHh6s z)^06y8w7aK=0cnr46Dhqo25mm!m{K|rbp`4vs&f#fhMwq$VQ;0R@WMn>Tc!O1Qs5j zdBR5@noHFyEdy%*J2?WD8M~stVFSXTn)`L-zaaejgi9C0 zgw&CU>fXUOQ~ASmF}mdlZdMnyGu(1(8S$7bF}hlEb7WTWi(RsdSvNpa5>*;YTrF`g zu?*+Us`OV-vH}I!w{DXauwAHPV?k2rrr(ESGnmspI_Q|D*RgU3I~6qad@Qei(NPhH zpS~U_16p)xRnz{O2RkJ>%(mc}u{NMDNNO#>vt_pC-*C^7VZ=Jh5|}XAdb?PqPKzi$ zJjpCGYP1N?*lCq~eJoH!LTO)`giEA*Q>WAZL3oc56r{F zYuoO};K-3i(NwkW;gKgs*eLL0zCE)gQs$djZPenwms+6d`SQ8f6P*rgD*Nga-lQfX z6B7JdL*K6lb<+Ppyl(yLV|=*%C{O$A&jQ^*67yGSnvj|JOKl)!zY0_<3%tbyYCq37 zZ~rSqp#Bv3-*O6Fb&EK4Y#RE`70Io}0qtx=q2mi!1PAuYVUK*KBj_v8JHego&E5W# zZfydg5+YL{wr!DeU4uWLnZ8@ZS^2mWi$y-JSCDM7*T3p$c9$$`7YduUYjG(8%jN77 z`4{2eGyu#u&6}2ZEptRn42*Lf7}BnoKF^2Zl*hb)H~AI7h8b%WINaX~L}nx~=aj%% z8KY$lIo2Ql7ON6ky8-6>Dn-3IF#^o9solxEPWtBw0J7Ztc3_G$9jec1!E<8?`=aK$~3 ze$X-W!?!L`)GEnSm&jv{P6NE}M=wCWckff$UTzNoRT>n4XZ-KS+2_7$JFS@QRjSdXb0@J#k z%D&38P5#|IKq4Lmqrl^R&4F`oliuOZ{L%LPyMAO>KtEhzw^GH0T`J%IcPQFuVJ({t zvp6OE!%;a`5NLZ6Ax<`B2@ifaQ_j>a(BxtjZaF*y{>$HWasRg=UE7M6(N2MQl?-dA z`L6Mw|9Pwo$TmdZN_!{U`RL-x4H8 zMrvIIr`{?I2>p0)wwU+UM#fHysthe8VZ<^x!kLZThJQl?HGSJZ+z1N+{5&~N(p9#F zb=Ow9$0^r7m8HN(C&&*ZD$ zfq~$12#~V|EYoTvn}Jmy9ptf@@R6!I(cvywi<85Fn$0Wa5let_HC;5$lsn706|BAE zS|U3x_|Msm>$|;T)P6~*(V;lbwSsnTN>;cn?5|xxM#-3p&MT$fFa<2|#;7Y~m|W@H ztoEkh9&Bqm{=qY!{u+R^Yt(V?o+k1q*oRdWkB?7Rj#{qRveii7dS}B2xWczC^#RU1 zm16*>=oQ+U)1HX#DAX9zBIQb>UAh2_-d16`%W6 zayR@0KSWMUL^E=DL@l9T&`@S8kSO(Oawwq79~iDs5v`X0gp@}6Of_ag%UQm!hp)GT zgaA)Hq~jyaM^jj70^swpUk{k44ZqwdgLdjUGOfU9e|P}gyJ!l9sh~?KP*f&^R;*Er zjSsq+rLWOog+RK(M3o(CqM;teJ*vx5^{ohMd{4jNHFuZZiOEjS8y<`u4BwL_gs%bbLk&vfZ8FHgciuzy;yxM9<|llil8IdTVW>Qb4h0L)Cd^jw2Cpa35h`?;1m z2o*23B!F+WJati)lx&nHc_CdY($no)DzUlyo5$sl$ged3AcI{OMiUiuuHzOKq*+fI zgq;^IJ;MKQ`YXji`tP^A&98Q%NIHHsT3^B|Q_Y~dh*z7Q4Tn%>o;A$ ziM8byzRrC1uhmQ@ZV+jq>F&dlL5mHmz`bv(IznA0!|^3*ON$ zseap@^47w$&C~wOf1EyQ3hL)W6o$2@-!|5IH(Yh>`Tri<;mcp;W4ka}xJTKV-Znb_ zyxal%?FVK>W2KJS<^6wEqYM)sZc&NfZ|Lhk z{7>Czeda|!1@(}Pn2g1nWn$9bH!0wJk9+&GsP&c;FoE`cCJ<2Lu&6Y8h_*ed+sUBa z^+&%_KT@7H(%^r;&GQU}H?aGk=MLCr({PV}Kht)&(Vsqs4xneD|9cF-IWSA59I)>_ z_4UQouh{kdw-Lihg1rZQ7%#FzeK@)4znyST4ybdn4`+|! z!OQ~F|9jPg`$bDlzEvv)t28qti^okxHgpZ-{TmEO+uI3_e$R%1p)%p~DI8k`g8laWsQVS?11^pr z?P|NM-~QE|Ff7{OVjIjYZr%3${%>^azeJ;;MJo+0(T?;9-b1x7HaGQ2o_L ztFccM=qYQxV_Sc?`fi0JXa;xug~D)?g(s$Yt&geX==fXk0iCTkjv(NoR*m#7Wo9c2 zf8YMA(p=_KiKfw7O0&3vO|zkl^K3v9)5aFEA#G^$wsHpI?HP~__G-*E`k>7oIvv0s z>s%%N^XK>cfob&VAol9q^dSL(r#WDWrNw#wMr?&u*Yao2hXMEWalGacI8eH3DbM9{ zm1y1L>#Zk89PMc~+Uz&Ylw}gRT-116*VDQ6pO#p__cZYC(e@?#sz_5DX9Iq6L9rJC?R`Zrp_ecgiPpK^_G-2N=YWB^Njn-nXWpyVX$q57pGaEt!H1ZU=C1}ME6z9X>?{V%z34+a zn1{oS0F79tf~|bjdhUx>+s|)%MB#g#0N2qVcYPDfY67{g!2-G)FOLUAFHd7er+otQ zFNxXM)rVuHB-gt)UOLT3TmcfL8Nem_>PlNniy%iPNBe&Mm1i`1JhFdnd|W7GylxR% zg{znCso0!b$0JTu=3UJ@%B!>J8^?L=rHRk0%DRoMuj~6n8)EYkJC|FHA1z_N1jJ`k zXd(R>DXvXfhI6K{3iHh-^QLHMCUZ+ddILONlPI&wmTTO-U+colw7?6o=iq6RZ%{9C zpW&0T=LdC)aCjygiFCwvIR}l-#X4qYUyexC1V*kula$!u`CH1IuGMBHi4cs?U!-6TeSBSUzKOXzmfX4+&_*#{<7S;4AcDH9@CbCoy-&!P zb@%$%Uh3^cM@B=D0t>${%6cM3p4%kv%&RM;I1oot^4^A3j9cX4D~D!F@Z;|QpPQfh z*FlZ15`>+Y=YERX-)Qoz*j0`qd)A9cC~i%)`4f`eJi8wlCU=NFg0gq5@_ca9d9Jom z!&_%u1F)?D0AN3_Vju8~ixC##6xs1cZw=a$ljxc}{lw?wV z*tXb4aSK~zoyBU>nT*?32*98Q6}KScNZ3v-=*fBO^zrmHOt9G`!#<#G1ZvM-r=1Jb zL%;e%=d!CDy!~XvU>+*MZ=@;&K)wVwFV|!%B!+)o`*uJ>>^@YNA)Q5Tn z+^PwDIzcb5^UQK<^l}hZN7PYqMHVCE*oa66E#^jUy5n94>d%Q1p<6NKFJFcb^*>N- zqdsqMSV?Fyu&9thL^D(4=Do?*r(0HiJI8A0mNKjG6x0kUZ7et~57sMFwXrB2dYRG} zp-FGbcBBtp`bsLt%=wY?5D+JOmMP0}el3sPHL&WJp%|th9sPbJI?b_q@Yar#N+-$^ zxf_1-Mn>+}u*#6-{;jZphk>F9*=%k@G<)q+?^3>DpowEj=4bdbQlOd*_vPHj^}1 zlq8Ec{elTcZ6Kn`&3=g*^3$2s=q%%Aa2rp)eh2`ITD868WfU1a=2jF22RwCjw@n{0D{J=F=H#JW$O!J)w0HJCBH%qrz5 z&bQPOUbmY6*ZvpyWV7d>yz?Oy(y*R-qO^L4jNj#Xwg#Q)S)hi9*;G+L`O@bK+WXHk z_mdbS&KnE*8kq^({*8luRRqeU?KY>puR(*69=3nIVvENCmua)NH$(K(@RX#)<+aOD zV88{>)`lre&O1lu9bMt9qmPVXCzLNw?qLQLtUV-XPOV82XoHvh_QLkBce0<3I&NKB zW!Sdv?BPZkIxc*pH{wUoZ*PxQw_6Wa1y^t{TH0fWWeX>JCt{=3hd{l7qYMNdG0Jew zQ{OJ1#=cpqM+A4pKoWuXsNG`-W!w%D6FkVR(Xd-(_;tNy%xO=)j<@0Uew_dC{K&`EQ!?RVz9J>eUm-$gl0y z_`i6!RXb%6XJ9ThcoAYr$zQ9KU-G=riOg8gAjc@+KGCRt^(5>mXEnQ)n_BR6m=ojM zm^lc6j&7Yj?E`u)=qeA#kk}_7Gh!45&Xv1cndvme)wEoY~J*J%k1HruRNPZ ze@$2}=?(0FRZ=^N*TEk35<+^C3mmJ99Zb$41mWAd#qkc0PWj zc=E;-TR*7^?p4z$I|glILX+!#jK{Je1Kgp(+C2*6_EM`!VC%AmdUXJn^pUYP zijPVqO|fe4%q2a$4*fXD`4Xq2%xNM|$)KyceBnH;2)y&oA)_=JGM5ZO)2i!P2_)xF*=)M)sKNtL}B8GHf!yHl5o>mpe_29`bVg4fUQ8nS#9Kzwzl7xW##H=IhC+SSC;wMqq@*Sb4DIp7iQ+5$G0D>`MbTPdo z7?Ty7Vz(C@>K&@>yf7uvtYzS{r7O+tkw0@=z_oE>$?o`m%>J0dt-;e2vb|BRTzskp zTliV7l&4Uu6S{%LadpClaC|HbKWX1)T*ZGVgkm6U4~}~tC5UfczKlwJnY?^TX*W<; zM`=$Muk#tcvU_EaijTY=spL}ff>1o5@bnH9MzklzbN1rXkG`>tuPvAdCu>Q#v9{jQ zxXPp3n?Qs22AD>%3jcXBOhY6%1j8{tBMUKe++~Vp3NiG0m7ciNX^|&|xLIM|FDei- zr11zIyAy+gCoVKNw?v+^4Ky{?B}W`8{or21RMv@Ag_N9R{!mjQ$+tt2{65g*NSaj& zI7tRdl9eK;0zF>&39>te`Z2OWXoi{0G{?n^OJGH$_60arVAqa8#ehb;F)maQmysW< z01o7)W(@@^8af=~7q6PNC{!%$3LigFqqu|{Tmi^!kXwR#Fi2``z>Kvh+Mk0Wf5fQf zo;xJIk#m zilBkap9A@_=uovGnF{-WibNO=k*H$s%9L}{qn8CMVDK%4{2S+3<;9?@mL`caaPI>)nU7YU*PA_p1v$fOalAY!}F5&!9nrGZnr3C zCd-5K=K5>znryzJfecbEAe@-lhGdE{CZVL&9U4Er^05H9Ae>tmudCxc_askVJAa0s z&;_@vG}jPQT(P-}R9D4B(>DkFGi0PM3ye?08EQq4k>ts=2gR#)`?!zFb}c4PhAQ)t z*d7XhPS0&@ja)dpNQ_|B=r*^&;Pj=oxgi~pu>|QT@$=)dgKr~70}wgN>SffT9ZAk6 zD;vIqB$-z_2*hOm=!Mu)74w|3JQ4$3aYK?wEDNQ$lcUsAas7;UA>*$kzLv$~qeu{f zcbeSZUa7g*%nvS+E2f3WD0fiPSUH{ol;3AcD104^HyVntOY5yVD*{%%kp<27Saa{d z2at8V%~MdpxPU3#8%J+Pmh+F#_uT%3&jpcJOcA+Uj?_8+_KuVQrQ0+_#7Xb=pz!n} zdNz~jQi=@=;Zwc--3i4wM^tG1%~lYCG=4*eYnDVFgupM=Bish!oV=&ClTI^4oAnz+NnA0?>JY6=R^RW zF%1FEp&~hX3fL1tWvLZBi*``>6tEVC?_G)InxxG0b9Bsn^n)=Dj8`D0f16pK%_gJZ#PA6Ebt6 z`UU#JkbPt$B?YW4BgJGbaf6TaV6-_c+^i3z9UobN(uWiceOWRtD`)9m$?5g*elm0s zHt4HFAAOq&_g!gi@&%ZpfEd2&jOJ0Nlwz{4h2m$o)$V?6#bu6>eHK;3xhoV2x8!gl zlG$_Qt(0CC1Hhyt+c$q{IR!f%;KeO6SdgGVb?)47$tYzKka_7ROF20O_Bd3jsJ;SJ zPlr8IGHG7oDs}*pj*%NMag!aYyae-)<8N~3D*Zlfra4Ba$+8x)MRC{|QA`~V(_%O* zJdO->5S<0YjIXR7BR6I}eSX{B+`6}mp$0FMx3+fN8_^-dTx5yKS#>I|@!4%i&|p3K z5hW^BA#3@JjNJVPW2kCw*ZLyOPp}%aBG8W%B-S<41ru~6XpD|zuB#Ak$U`nleE-(# z#OJK%+*MAJQZIS56!nNJ-3V~##DBJ%mVcOK0AAPmvkm>$-$7lAq?PdD_J}Gd==tI_uR8;%J6PX-_8OvDHFOtjhG6h~!p~l6Zl3h$^A{WhIY`Y10x3 z%>uml^1jpWgN#M&8X5a<4i==)?3#gPniY`}{KBg}En zItHYRBdqm{fQ7+{OJ~}I4TX#E#S~g=;mbuLquc{yS2gDkjA%rUDiEhIIY{AnkJq+{ z9x-eJloCKxXL%%u{;i#pf3)`w+vF;*37a?oh0p?3-pryDRs}m_HGLs-&LbZV@m)4kah2fk}w6bXdmH5&xkzmnyd^bEuVk zUkV`%<2xNeUY!3x**qT3iCblGW#w)}gZ|tSSb1SOr7tCrFDJ~dkfnzB2_t}_{k3Wp zapJHtusSS>C2Q$4?jnC%vZ{lAXP&ChOos3AmQZ-60JMJ1gs0ZXTTdl5!|Rved6 zo+e{%575n@2CHd{C905{n=TW!T>>bQrLReYLK_^?$KtvKF zd+Z{l=(zR1pX3#lv!4PB2zPwU{R%3a5OSw$AbO}Oor3e@`D=n;u z`0woaG!9j|H|jnTwL14}sBtnk8G|Y3UJzY;A2-Jhbggv9gN4d9p|@0~{fKgkqEeQ2 zOyQS|1&H89PEhrcu<#LzwWORwrzyphV&LI~v7s;ZHPIt$WnAhpGB^OK&6)Ov#!mH2 z*!(Gc2#y53XHioWB+4j*FG}*#|AXDhaYBuu#~|l3ktK47%-=t10qqnL`0rUW0h&Z*L_?IGdI5DAq5Xq35gdry&TCHfJ!#y9GaagKMB z2Cc@NV4TbHeFpB}a$7-X51knGFrz*MTyc?Q@Vj)(=%I|~RB3iELTGU>eo|23hl8j3 z;Xh+MWz6FNo|jJLywW@1yt(Y6h}n7-i`KTetxU3A@O*6Fyj}{}l+}JVPWjc{84LQf z@LT55;_NdCFi5fFg3-w@>PN!A*c=V$Wv>}kH}1uxe+bw4aNNL^2r^G99ai_>Jbi5O zSFvL8cui^A?nz(xKWW_qDJppzder65U={X+aZ`??i5qLU>WyyB`E?z8K<`9pwbw5A zKzGQZ)f8V#6YVeD@d?;A_^mBgk(&A6m#PhD|LVKeqB;IQC!d|xsXXRQZktaO^ehxn zk51p5#bZ+;{GzSfvGND9*`<+)Z>>$!r(H(tu;wQ6KXX{e-X~7C2-tX)=-Rf3H09s# zE^HJi@`kE(jpPMaWAmqPiL^tkWI>`G%R=nAvJQOc$R7O7#c2E&WHXfD2Hv!)Uf|9w z0<<+HwR0CWD>WZgs?m`QL99g8m!el4XH6_M>B}-E@GUx6`j0uYi6>rR^2RabT7Y-> zR|&Hr5O@-69F_Alzx8&ZmS_O?%DPX;^*kuq#twO?z1_a+=V$DUbJv#i_=IeJwvu2k z7F1;Cz8=ws*`CCPyGn=sQktV?%AbIX;Az}ApK$N%?fI&=2yzoj@_1yAWVqPA*1d|!wO!7 z*wwY@+c+B@a9^et6F<5HRp94SP#~g1&GWx;0+_+etw5yKkt)1v$FK-Vb3QPpA=|)M-~p9;8*CBoWn5=AtZ~YcD+ePJSN^k-P$%>yA0{ zeG)Xr2OWTt#O@mj7Z3V5DYbiMJ&K&9;|;;5TaTGAd`EN97Q=^5&TJj+<3Z;=wWr&g z>(u1~j?h1;OePc^#KTX9#RPgAHWhYXfo>Rve9_gxv_@qKviI&UmdP0QPK!_9fSy;O z)3h1BR4`4NI#yw*4iBPz45hJ#&&lm7X2I2cg|t-W(xC_;G}stx3bu3Mz{`x8t{_D&Mv6i_Cu!;%Y+_XtRPtQY5vejsRTQE?E2iv@4!=GFwu9BL}yN~LxGU7IZZ$0dz|*mM7} zHzoeL%~q-OICbNKRq3ei+34v0n)k~aiqFQ{_#CG8?<34rOMeYJX&&RD|1NOOyst%( z{3YV&K42^Wt*3~?6&^QFAJ4cF*ln6{=6GkP)Sz}hVc}8OVtdH=NDh0}yps~b#6Jw= zmrb179CL}FbzpvW3mx0u`@I3TJNe1ieIKjWCiJE4C=uHD=^F>#!pU5C#=UyA@%x$q zYSqGijP0%MluwS-Glpo@P+wPA4TTl8A z#tc)^#S<4HZ%^%s&&(XA#odauo7?TiQgH!V5sZ+{Yn z5Zk)Qt!RrafPM7mC&5Q+9ZF;a2{sB|eZb_z((S~*AOVYYzqGdRd1mQ=W2Ie1LZHK| z5SR&m)ePz16Neq%vk$Y>T4l7d%Pcs(-m>E_Oy@bq<^Eo*fqxLitqaQYnF;`u#7e%F zh9~XT)BEwBqvzh}itxKid*K`Q!RU8lmE&y!siiXYD z2PsjI`uk%oiAJLzjR!z~k=HD*Bd1R3 z>4ofM&4GEIn!p!zo;jfGac=1P~)Nkg@W$d{MCoLRm%X4=qS!}EzeBBZI(4n~O#uMuccegH-wP|-~48b&Ay+$G6LaNozgst93*SL07 zoAblqU2#42@1XbA^cm*pBk38zqlIB&u@RDa->!{7YMT8$3kb^;oPN;#(bbune`=RF z$L_@gc)ZVTv(=JWedNgR*H}nx&1m0}$heqJLr{V+)@~(3G!S`<)qK38yUg1SvhNO*Jdf zcAwUc{RoXYY*FY~%{A4&xtpNzZ23h3H7)De35Tuhv6~k2t@?XDd57$EEC{g}%NR+i zvb6_xAIE*Nof(uS@l$(Smm9SHb0_ZBZ!Ckut7{)^$?G?6`%uO(Vi63*4?gv7`F00Y z6XUC%q&)HaM7u-YPQ9Km(RDY(mDu#U!0?c2MDI&%LYqyk)9Zy^V7ig}ZVo;DjQh*E z*0k^~MzizfQ|9QH(buFKx+?tnH$rFJp^lx}Pk=^)c=k|S8AB%8bi$GWGX72#4xjD* zgzUN`8;e>5z#bQ1?UpY@hg>_{{ReT+%nqk_dWpN*)-=YmHK)oxYyY#8>#=P6g#qXc zd#pyov)3i>pK(^WKVWbqwg%qEMHl7SUq4Y`Bay!GWC zMuOc3J*LyXpK~wjsg~1Q{rzV!gRswgB9GP`dz>8>Z8x{%<}LRXW>+cH54}&N23xDf`coUU$eqjzi%Jl#wB;QeBj?Z8U{5g+=oj4erMGI z0AcGnPzK01`sEMa?m)j0=4U6k6}~w;lD2+ja|#K$$??Sa z4on#fZ_3R|HwtR8`~l3c#NT+j+WwYkJF3(fMZL(|GYlHw9%2u|uOLU5hf6w>cP!rc zj?6@R74|2DegoXxa1H*=N&NxMWx0xLjLx#V)s}KW|G)cjcQ$4<&wGuYht8_O6_+#< zouRTk#n&>?*>B`sX$63rB)6yPI{s$29uy?c^lv7e9~!9TpGRkY(I6r?G~xE^m<8N zWiZWuMZ3*GSgN4p(0SU@Oe{+y&GJ8)K-m^8`7|4_VAs_%2mB%lj9}${w|SreX^xy! v=+M?U`c=C!YkiWEp-oy%XW;QP0ifj2yZFtzl7|1IP%fNxJ5zi5+JFB8p6Y8dTxPpWLqo%$ zt@Xr^hUTmj_0x0l0`*F`h7rJ)HN)PC~l`D?3K8ugELfJW)-K97`B z3j)8zWXXEw zUJ4~dgR&R2+16-r7?ehu-kM~cGAbai@y7zD2Z2z{kK68keq zg8tVg-&wu@hVS3+-y3W%Giq6GXuWXXf2Fe@GiW-!w;9Yu&fQlUf(oNPVmJNg*t@TZJGtUFb9?f+sqM{cLR2BNjeTqA~B=?-;l0-TTa;u&yA9ByV+! zZME-bS#$)0l2cN!vjOvdKaP*EbJuR%{&R(k^7jLlCsQS^aX#2c6iF9BTYH%rv6_UW z{f9YSf_0W4!wjX>{)8X^5fm3M?Kx-H85n7?+ubSiHZ8M`v1RTVYlF09FO%+|%1Kl( z4$$$tVp^~0diW*hkWq&4%V)+E2!wAjPeM9OJ?K-k;tYaI6vd6^gF^JZkzC0W<=It6 z{m?~|1eRluXLom%AR(gsNdEz2gAUmJlccX#RG*x)L`Z`t1SP`{ztSl$d^eGqc@;Y2 zivfBsMa%S~GZi-2d$1imaauRZkCRNT1WYaclJ0atm;FiejGF+KJT9$X&5&myD=8t` z%7?#VrsU4h&^$#B563TiHy{0NgpnK3zU9xzzhXj`NAgKG&pUA)Ezn`rxDI296c*Sv z3)Y%axsNPYN&;V_4)&+nEY`u#DC>h1y<03SncFhdHVZjg;!@ZeMe}F9UYv&=m3tzQ zp3PE@tBoORjmz}b2k(5Xr&ZyncMA^lp^nM>$o~F_ww+;JeIL95?9d2dkUmA4-3r;C z?>snUTv=W9PM44pzr)GtuY8V%Mim@PNXQnxJTwQvb07xOeAM2ICpLq}Mb83gXx=ao zNP{q|z`(!^IBiR7Yo-gw9LKrUg|1Mv5cPf1KXTPRWSF}5v@J#m<#*E$Y&I=1u54`h z&C$}(*w`KQR~|(iO;sMJW7_q|Cjo!*0Ex~5Vm4@ak?(aJQHJE*KeMJ%%^;td#n{&r$OT%@2|G zb^;yj;Df(#hDz}AwdP_(?`NsrmeAVL%8nMdgI?H?CV6Fyxvt|dIKEtKe4{q|xQv6A z#s*B@n5VdtR=EuNVF#fqRYoNk(r4&y43@~GXoHZ{?CzShKI*ZSW!dWGf?0@Kwj^?K z2LFAepy|Ud=Y8M%%r~y|qNz@_4)Tj7bhp%cw&n~U4UO&b+^;->r{T$mqwQr_8Eei8 zUOpRLIS(%Uyan9~`l8lO`D(92TMZ+LofKp)%KNXU9udS&YB#<{y0k4V`oy=_=XK@H2fN@Fb{dJdytdaRkl;7)CQ`%fmZt}Z?ipn{OBM4D>pGh7yh^)mK6HVN$jME)g z4i7Ly94SGC#Ejpq?&VAvw+a$bnbox>R-pPrC|he+>!Nj$t-~SI(e?cNdFS$qheS#C z3<%0HaGSvuO`e@Uw#2{Vy5U`NW@9Wn^)(qH>Hl0@A7+{btG>587%UhZs+N zC^vky@ayg)aFFEfZRerFx4KW=v-U!X&N+FKHh+`z=0_D#D3sjN?(iG+(2ikBK=#QI zK5|SwR2G$eL58w&*scQ+1FD58T8^1^5N;}{XV_?UZe<&UK4y^B4PBa-QFxvQJu5XK zyx~;jQ2Mr*#TSgJzzud@fstrwhV&(`lDSSM`LSCkohPep4f5hfYnRc9RwljB6CWH$~B zn~4_G18rY-70Ec;+!*niL&o5@D4Sau4ezdogW2YfgGgN%`)*O&`ipfi5PpVcDycJOvX<|M zz((kpAdnuNc)^k_*o8~1petp}0s@3vpB#>7PSqJ&#pVGW1Go3zwd&OQYoshO#U81- zM4LSiUS!U$+Ug%=etNid`S`u{!Fl}Xd@oWZjDa1z{Z13sDSfiw*)o#;$g_pz$!S-- zlRqJobLu5j!LF}x+bS=YtdC1!SV?!+=v1qs()09zZ};f}1dCva7v$2DJ4rPhuYnPd zx||9M%_;>(43HRl@Ae!4=Z>mxir0Il8Pf*?Umu_C9{G5d=IZ%JZ_}K3&eny8*5*uI zZ4WgJEgWW~^snh{A|6GkJl#H&B9TKO(9|PIV0j#-P*H_}Mu+S8DlglDGppj?ue9o2 z5y@|*X+U9mZ#3sgbVk)Z7;` zdKO?%N?YeQngM}+Zu>nwPiep;8k8Er;Eoo?mEDn7saJz?i&4D#i`GCqnw@RYQ2~j1*^wzEQ z#2?T@Ot!z3`7pjLu`}idHKC2HPgJW}p|GozYsC4J_Ia?54Q`yUpa(|Pfoebj3}fT*&el}FIpcg8!;getQDCtDK7*@*-MN=27r?cUEa?~|YRra6t>)PZ0X)*ghERg2M zf^lh18Pr9QX5#h!j86HW+>c*_*5TG6z4S>Zg*RKh;} znR8BGFB~FZhy0{Jnks@E9M8>U{@D|%u-dm30V^icOEneQ}w z0|KT4oRbR*c*%@KQ9duuNTGk#RV?V89Cogjlx9RnZm5NB2h2lFD>@Ec70&Ml;xhv- zqRmu8Ybz>56)v1xVmDbxI#0c+rh-d(JX*)5;rNdms{}D(J}_4r^*{?}aT; zTj1{Fi|98Okx{-nPELp@`}MG^-U+lg1s=m*(|cf{a(bFD^;Z|3m}ux1%m%D%YxgyK zo}n?fhMoVB9I|?6>1E`1TmS%oW;%o@bfU&t>nT?E!;7-+Z3lT07#Qn6*Sj$-3ANcxyx? z8)e)xuQPbXj$4 zCNFw_E5*S5-16x6XA}752m4Yy8kXQIM%H^9V(%rO-Y=H7$(u9sWQKdCD_xVN) zLnvn;gl6q#1z7B?Z~$yY4njD?9HlssCG}W@cmQSp^B_e*1Vdzl^A2d~?J@0t$~Q>b zZSRlz?%*sbYBzZk-<3XDJu8tZZT-CZ_=`0>TX}=N!Q0!6dGk*4@k8dW>m~)WD|RA9l+Xz@4kpy2V^EVRpn<}@W6Lor5l6$Nth0w?O$bA z2JJVz!+F7kSx~aZdq0<UX8 z!y-TD*_r$F*GnKHIxDGC`KXPQw-m7Kq0qCnIjDG-a8wtJ43G}4FCq~|wV@lJ z`91=h)C6LPm}x1~RjfA=(klaMtSM?qR31UyN7-X5!#C5Z>;N zI@cct7z)S5?}UB&IrC7ah$!=EDyP!(btg%Z+lcJ}kar+RC^`1S4w?6@&HNKHoZ(zB zZ`Vs3<+=s~r-wchgHqAYLoUDvcV2f~s61?uTr>vBI$7=Q98%NtC9AB~`zcxE_!+lG z_rIjCV|xl@P22gQV-&pow~u;=O8H4sxw$3T^Edm)v z36CMv_(;y9hFg2vGR*&C^GraJ9hv5h?pOU#3}`FMtNRu&a;;kOr_84Jwt^2bt^}d7 z#iBkb24~N#biQL7R8bT)fZ-lGWwCU)`S*|q)JYWxEFh-Y7-c<{S(^{}3rRrlls5=0 zz2|p0nCW&{G4Ua$WC4&8aS4id4bmmEYSYkoQXh+3)(7lNcR=!PUSRMHa^Bu1XLU76 zOv#bb0;SkOsusKK80QqYl6&_L(j5j4*CB1e&{Yvc)!MN9@A2|F#cbfLz`jx&|GY2d z+eEp)+lg+l6*p2AadDE=$Wl6Ta|=@!1FjBzG69qmEn&#`?%@Sgh z>y#>4q?rF^Z_D!YiTU+-Kba+K#%>Jde!VQQ!n(W-Qg`$N3m~MTmy%5T6j4T;e;ZvD z8oj6Q9;V;P5DC%DN-^jwSMqOTBc{w8EIBp?4v+UP;94CB+CIk6;I==N2m>hTVOpJg zzKjB_;o}t*oD@8ee*uxnT!1&S4(VDiYY^zpCl^!`eAgU_Wh7GkxML78W%;3!s?KnT z%>dGx0Y^@+$8%9!pHb-b(*B&0UI8aRTq7!=C3MG|KYN$hS*|+1Ln#np^`s99JtQ?T zv7?roNlqd20(z|^4|qT+-h@aYZTo@0rYKR1hqCEJ44*PRL2i_KPyMUJn^i2ke@ZQQ)_-o(!>G1q4q6PEi- zK~{Gtb&bDKoB&cr^WQXRm%e~eZ^yH7uRCLmsQ zlk6z1#`XIfEhJ3$nhtrhj~_L!Tz&)=Q;i(!xi*nzLPs3WmD4OU|EO|yW>=P<9{qmN zT%w$Rgugy{Sh{q)1j~@8?(pZrQ|9*}HY8h(c(&z>?bG?t{9JgsMG}V-1NQqko&^1V z&yUq+E>f~-KrNZkdLhQ^mfZo?CuL6A(susSQ$D@jjv|@@eHhAI zl4$Q`|1jkSb`mgJkuCA7xKiu!)@8cTo~Zd07>z3jojv(Fa%VOi+s6`o#;CNxN2rlu z>akB~tvn-pW134$qU9aWO(~=LcX@r>ATEd4TUGF4?e zQ~73xvY3Z;=#P32%hi#uEygneM;V1Bcn33{hxjlDTxYBA6fJ>uOa9j@<#fw%4;t*= zC84BPT0V6D{%*vEs3g5ff~?KEmbwf!FD}&YT{|D}AHAVOeJmLwbzhuIE^TB=cH^(L zKz7=-zIiD&f6KAoIQUj_D=GS_8+=`As{N4ya9 zz{wlZ5v2TW>mc=0+RtTlCnPv&ww#oqC@_<>MgTG^jt8o}iBg!LyDg&)>y7S-aT2etgs;Fk=YqPgv>v$@W_x`|`@%W&yV z9C-N3m$#X7KkYPW)qfw96c}=XGlja#%oh~>6vJA6wbiHkP==u2&ENk!MHKGK`GDVW zrjR2%=*Rf-T9=i}%Wl^iZ^*QA{NDYXbi|lvK=5}GtXq-!L;Ap#SP5Z$pxgLLCOaT% z#l4RyS<)`)c=x4(i9BQvv0-uSKGe(^U?2}myID;K$J}sgcV(;_ZW}8fUAwN4x0XB~ zaGCt#cY}9!s|pX3;z^s21k&2sFFlQLMC@=``>9!r9BS_V#Zr}68}JB+|CE;FSTO_x z3-VrKzF1zSchmLf^Oyak8Tw?!hX5!#WSm5qNzBjKY1?XznH~zU4PkS;Db~HrgEau7 zg-dr7c##B^Z{63tEx!>m?RKs)zArbQ=unS2-o}l0emFl4Zf7<^l4Tls;VgrooJJ)Ejgn~S?{#` z%!Z=uuqKmq^u&&dGk>KiGSsX!_n2#}cy!GWBR>XgoKIkCGJphh>}T3SYJADsF@J#Y z9{z$i)TZq%OyMr^Mn6RN{ptF`I2Ty*OOqi{n%E@8(-L%$E{Wm-s!va>-0slqIC{6` zfda~!N~#t4yb4{zvFBNfTF`B_ZDlCh^ebljssb4%bVX%|* z4#+o`(aD#ypsQlSZL5u_AJz!naUuCpLE%G5DtB(^v#0BR zx!uPs{5W9QR`)l%NshzzZzkBpXYR|J&3I0H{dp-TnxQPKQCvUDO`4V_l#264N;d}w zA0Hnmh(JF&OJ@0rmd$D{}v5xYer-F@o{dM0}@x0CfvRUNUO$o}9SfaaR&zu@wS zUt{51!6h4LlX)#^#{)?7@!r38YS@2| zo&WWXRxeBEfjaeZRQi_Y4RCauA4cFOloS62$|D?s)T@~LVjwqfcqyUA7BT-lv8-%BThOr=TpSRR zV?4lhS#1TPjV?=tdh0YT+VDJS0s;7nn_0DW%)&1mvBYKQ@oDz33rYY|Bz(?X6!Gb2 ze}NE2+snw2z7peLD>JYOt`bWj;;& zuf>65wyGL@fQ}r|rjmxh(Z>DEs7kZx{Ivl$Fa=9_@Xxhz#z3Pxe#y-l0+rL^7R3zjZB~w6WsAF~PU%v)D7N>q`zDxYU}G)xc5urq&N+46s#$WTLQFvZUa#_(DnQlK*>pe*AtjM2RG zGhUK+gZ4^*>vB7evOK+KjLg{ywj(U&n=4ua`iskV_V+7S{_ahCjY9K$dH3Yd%&904#CfeoydNqjX$7rUn4k22|d6T36hBJ^w`dgoC4oIo;9Q{fA7s z_=KchOCRfg(B=`8PYkDkuBibtL;Xbg6{^QfB@M=wJ7u{>i3Muho=|207?kNa)+{U5 z;ayGIPu|EzIKS#|dHT5?ISTI;VoKO&ZM|Ym=^ivvsR=eEGb2A-b&*aqRhT$>-D^+)E%Rq(AzVFddN5V_xGWS#(fG{bIp2rZ{2-3KV<9TF zpZgV?#KcfwDSe~Aa*k-Y>le`5?!7m>lkG`_Fa#;PJgEGQ41(f^VjZl#^{=q?rx?H3 za_x0N5w28c?RqkADOi!UH&R(fNcU1_W{(Mw{%^ENViprKo@9z8e?*`<|TP&h;9>cz&Lj2Y^(l0PSgI8;Y* z%+v`9t1OU>k@epc)k&3hStSsL1pSq(jvQ=LGVeZo*$SIL+lDU&OJQSdZi|b8WUTZGe(tSAf+wbEV!_9gmuU@lBMlb)7;^@EQwUwLZ?;aoQ+6a0nRg(!Wn0$cO zpy5$UG-#|fB73I0bljn36Ie+Sx^A5|OmL8GZStpdanszc>$he>J*)I*`Ww!==bWmo@K57wj>Q{o3e$m| zo9$KSUtUT}hbJW6B#uW+7V~9fy8iS}w4|GtZ^eF*G5900fbF)3#@`4N7>^(xgk>WF zt-AA#1PA0L`FMD?o2~%2lB<2Wvq7`5A%5=oSQqKLd4q#Pnu8OP^r3ROE1w4EZVzd( zdVVZq7mH5vT-(bXE3_0oYS{fZu|3?CZSFZMQ;1c$Qn1BW~ z8nke*K|s`B@)hYHU|4jt{d?BBEhBQn(ID9L*B zQZ>6LqQ5Z`f8Qr?YCS|-&IW$eP4NS$qzmU8wV(?vhH-;*2#X`)pQRgz;RX4ZIxSMY zQG-TJH#=T|n{Rq&rJv5(V)3=1i$UK~_mmz8J2imYr<=7>CGW(-*#q?R3!u`99x!xW z#xO@ioPjCZK0VY~za{mmEOOqb=X8DT5aI+PR8 zO+bF-`;+$D^1X&WJ;-6mqGMJp(_aSjihs}wBp%;uUzl&vJ;2OYiCwvpQgAxtMt}yl z0k|@WRd=-nmW1^x|G>XtljsoJ;WBf5eFHeNWql-qH~{c@SNG3s7a1*E;&mfk$RDkP z7A3iuVir1*QimP4>aI+-RqRs-97@7vSov4~2Ajq|**Dsa8Gk$bDr@5!2Uow2H=lVh zt(Fu}(NqdM^|Ur)wTw0D4F{Si8Re7(`H}V%MIh9i3Jni)B=#$_n+BefniIr{G&Bt< z<-YDO%*^7cS_1xfb+v?OhEm#}S!(l0O9wppWNKd9+HZ}q#hsyX6SKH;ql^p)U%G7@-7M4awQ`P>;z38LzsXIYL zHT!gDC-UasI>dj768~L6o{>vg_>=j@ZR!uCjeED3dU=T)|Jp^W|G(RN{)fDyb?2Ou zTpIhIL^PUUYh&|7LQY{?-a+GnTMHjhfq`nS$g4L%fxI{Z~wiGu>kdfN`T31XEHYJ9 zNI5;}cUsx>P8vt@x^vru1;dqXBk#K#(zg1*wDGk3v?+dO5HY0RePjSpfXS%)@kHap zeJfs(N;%&UUkiN>ErofcekvsVg1yaGxR?-gd~&X4yRY8DO|B&0V7(fv1b2Up#g$(* z4lXTA-m1gsU}=td#k9DlE71{AlZsAGi;k0Cci6+lsQ#2H$drsM(!pLrPLK#?Cd6u} zQ+L1y@T=f^BE@0u*--`em3|?vB_0TUjJM;9Eg1`Q!RVj|wEN*=$*}?qi;wdQAgMLX zcI{qxKiLfwOTuw?I>M-744Gg0HvZCOVqdC*((>{&ytiNlUC>6-8ScY3$7a7+u%))<*VMPd{nHyw+0SlQfcuv-iG{p~!tVy42fbzPy|93YxU^p~tO zIE?R(&(dk`(s6tu|Di@AZuk82{&T#v+s{4?mi>G_us=7y*16NlfG9x4sKsagOuyS7 z^6+l?%<`M>noAN!SX}5LBB)20FsU>&7#Mex$ibihj9|U zJ0xX)rI(`L9v(h7))5Mr({m^A$VedWmp?L+H*V*$5P1t}VEQ}Cc!Cn9cJYve`2$%W zg~qkaxP-YS9&hU44(wt=QUcF%C5)x+9go+w<)~wZH9hY4z9aie^nM)HY3_tFx^ntq09m+EvjhEqAAfVZEg6ye-1x1=)4DnUlPg*6fYZV3+}`#%X0 zzQsH~K%k1c<-ab-P~BZLl1%^nyDRyB4`TiYdW~&hMDx+f7x>s1di%FoREQf;hnNDL zeGOp%HJYOc-H3sh{=B5mVKXjiSu87e=ESQ1jU`pUEVvwYok3l1$DU=F z&h@0iGtWjUdO4m(Kw0k;wZo;D>Ar_K#Vg-r&vfAAxXJwO=Zk4BAhf2{?dH3}Gc<4f z$G6{$1wW#sm~Xt8*8X`$MxMS%1O2nO4x-KZb6onSF+HBo;R#$Zv+$AoA^Wy5E1e8; zk}*iZVGNcITcomBo@Gafo*}Q7;;}Ou@s^cAQKM7O>oi!JOf2bjXn%s?o zR7!Ilt%9e&R6vV;VSClnxi6dH*kxp=8$7K>l9-gOwl*nU-`{cF8srvv42A!bbAD6( zuN88qrXFi^5XfaJ7KuHJ7?-l=A3J<977yUXIK_h#=Tl|ei^F*0%WM5l4b zcqopzJQW2{u62B=JdfXu&3urp8BfK7o>^|T>3~h^LYWxPRPA)gE|ImB9bS2~?{`s$ z$HpwRZU&-9+1Rh)b$H$u@?KIf#i+b1`9ngu2)~gAGqfWZLRuGE*8OmF_!^^wlvXjo z?*6+O#|NC=?+UR!7DEiT1Y&1QA2=mwJd?v?iUPQ*iOa-A(bCoG-}5Swd!vB_kO)(K z_&4u(f6LjUG%T)BjR#wc_T4xfnbUM*gEGJO(Or=AyjTr%-L!kJh{Z7Z4J3KOr?4-; z7ZX?%DjeqPpv4-^aaGM*N;X_PaU_*sf~oziu`>L zox08?4VPE4DxwSk`(ID3Uk>DXlllC9gZW{GW7iqPs;tqNV%-^UJdp9w{x!^t(T@Bf zvn{idU)OfHhInJ&C{o+iL*1lMaK><`#Jgt2#G?0W8yjV7)GS-v!4Q1x3gzU>ww0tR zC({+rQwc?N%6D9930Dh)*`B#TUDtUwy)p4y`fxdiAN@oYvvR0#l=yU^F?QnPg}s8B zV3QZw4dW#n&x;3S0%7xK8@~IXUlu>qPG?YoPR$aUF_^asR#w8iK9j84>8T#dN`h)? zUX7^fahOnI#>UbTSSEnXK9X$yGaa^T4?3s-eBb4}5V!vLAdg4SY*W!|rQFHd(?l*Q zVmCeGxm9ljWEWaFb{Hl&Z?GPQ=ayn*UzGUMlzM z%l4Miy}l<6e=SeMO?x>CZHK+_eLAzfGc8B~RgbRa@9f`hqSJ2@SIJi8yO%6Gs3WQ$ zZ%be`<3Sdyr4pQfc#nbqtI@rnuA4kok#FYKm*-}lSM%O2D)t zUy^(uNcS?A58b-6;@++eld7G))L!_!p!4xlNdu|s#C(*s#tOH!vNulbL1V22bhO!a zSb``EyUKXeBM9xlc@tH^@-z8()TlP&TN)Se7G9U@ykWT`Alr0a`^yfsO8k0hBW9gu zr&YS0n_>i+9=%bh_%1mCruc^cdv!HuE@9~GY28S>E;d}-9SUYbOxz9HD5&svlJG!- zi-ugq{>;z&=8 zKUI_5J0sEh<%XY;)PYfV{QbEJ-y#N0blu5MPJGA;Q1HpxoB=o*u?Za zQ6M>82(1~cRkO|7haR<#=HwHxM5JAc^O_#KtDKm$tY<=i_M@z$^xu?bgQN9O-j_{- zFe&WG#HEg4USNl-uf2huOMM5ZVVwV-$K`-82dDk%cv|_VWbKXMu^Zm7vX+g<7u#d* z*Gkx@Bq*x5C7ZVyj4Miy6)Q5?@j{Af$Hem;Ib%ZBCN(o|oyi-ME5}I}*T=k9%pRSS zw(YO}u?POvJj(0{V_ZxMvJ??7*~ZaTm%Vg};U=5zCEczYkhGvIgSihIqx zTtL=1=1Irzvkk!888TPz9+JsFxMjQLm+ie3TQ?LuzI@sd!=uq(vc3EEE0Ob3jljKD z3k^;wA*%q4S!vjmwC$@o)i*^OTkxobD{DDSkE1<&=%=3QW%o*PZ?8N)ffFcx=CDqm z5H(XW4X@Mcs_BGb?mzE(DjZKH^W_avy@3-Ze|%1Li=m6Brp5nZr2GF#L7tIA{(k2u zxR)AlRk8m+#5VjtS%K=^)>psZtxwe>KcAtglItMv1rZixsHZ~y9u6*VWS319e~h4Q zt&CSW+}S1Qj$7Cw$_6!hxO8=Ohet=TZPu3M?bfqCgGy*2s+ZEn9P@R3{PT$nN#+Do zA1~1@#g*S{kl1#N*~c!Q>^B^BHKr_kb{<3mFAaU+%&4Y2OVdyfgF}ocvzFt?t@%-) z&8 zS)AILprlbi@t46{{7kyA4pOZ(BYBFio>a5{6GYq$yW)x|A_+U2dDS{Y{C+d20dr#w?&&qGSDQU8=`25c`=21xW3F(HtX4l-QBf2~>sgJ{!~NA~ zcFs%)t)=%M;=etT3&=P1pK2J)8es(utxC(?uf-7o#aUln9-%oQPdMX(u=(yLN`+k+ zl|U(v4JX9+*sD;%i$<_wbBUZE2E@`xyy5?FElG&E8TOo;Q46 zp$IiTRfT(@?R-N7*8)C(;f>O?1$-Ryy`Y%P#OL2GyigL5TWNq+w1(?oloCA6cHjL# z%zW(^B@eB8^@+*brffj4ymCT8*o7RHqg}1V16Jnzw536CM7eH!*${k&Zr1E8C3(gp!tk`k>(Vcc7-}-5$>5(XRb8;(q~V7%BZ1)>*eeU4~wA4Taj5#4bJZ>$T1m7?Y$bajJplQ zPPD?xE`Heh)~n6yvJb3G>vGI0hNP^MmWdGAlhX6=HGN-L#ink78y=)h^6O~@Xl-IY zzezrwL^;~mdrci|_i}#n?CVxmih;Ix78NDB=Pg#|CYv?0s*aoeSHN2!L0RS!kd;;P=B9^2LkNqgMXY73|Kvj|(PxG43{p2a*_vLT z*u#!xZNyDpR1vkqpX}C@9er?ZObf4lw%toTSLW;IC%09*GFuovj5q zImy<$y({ZnmrlFHO@>d^hx0QW)-c7&oche^*3HwaH2;$|{f+xZdiFFm@9aPo!ixgQ zhH+fVO9szr=_VC6@;cGsAY{KCyVy!24 zuR+#f8*$bxI2{E)=oiYV0i8;Jng7PasZm~K```K6|3kI+RXkV-^$w_{o(H4(TDbap zy}EaK^8Ei1)B5wj@7by?YDCiLQ|hgC4D`REn_W-6|5e6RQtMY4)x`f_N80|Urv8t1 z|NmGRzSRYC%r}y!5NMkL#QGWG@WA7pfP!wf9*uNjmQ3W3FXDb&szjwve8lA7 z8Je%jYOlt8A8IQ}azo>jjex}iYYDUGsAmq`?wA8)k-+|soqb+5`DG-rQ>J(hpGhmR znB5g@t#YT&-c5e3=zM9s34~LERA`P62zcN=hdO0X#vP~GfN93#+V3B*P$Oz?uzFS4 z^)&c-P4{FlU`bCAd^Y3p)BLvv!IDDV0ROD@DtpZ(hvTu~CB(Aol(fKQxv22437JuLm}!us#Q5{2tqaL<>2K1^=MLq%`1N^98eX|HV>wcN>g;IU*Z6oloWicO08T<8jXjCfaS8I1#o%Uv12HyZdzUMc z*Ip;II$kmCx?`qm5{`(3k65Q$n?O+MfylvJ-|Gu%SE_a8i+vI9mGVkx0sydff4}_Q}<3I221#PF@ zOp74RnMPTxd*e5pvs!0%5>cfpmSW}NkRgaJo*07{Y^$u+zlrQAX`ot7CIpYXG)n&) za+cmm*6+L%IzKAvelM?*^~a3Ecz}eH@*t2=t4;As{~G*f{|p85I}~u@9eVDZlLzOb zgpmo@fiNp~AA}0k0C9)b9wXGs68N4LSWsUj`t1kT8a0LEB*7Ksa@!#L9{>GM1KEQC z$zsU~M82^<#QEVOV3^O8Jpx+k_{4l4hf(`7TS@hc0zx->u{-U8oEdiudu9~v9ddo& zd(%@Lvu%wXieXj=K`d2okWOKVsaMagjp&LhxjB^j=6=$crumENS=@13h8R#6Tp+!g zTaiStA-^9z{u8A!R$NC7O7(tSFT*Wk%)RRF*Yv zh%W&AqVMh&<$-{M4k!)Uy#x#oVV*YN%6)ijuNUHMQ5; z@*;&X{jUfM49&mui9{rPOt5_)K^jVQzt}AH&D+$@PQ~T&-7yac;F`iql(kS;+1plPCZw3 z=UHbv^E#?8=%J5y7E=FX{)eywswPzzSw4#wPL8k6|1|i6zh}NB4$dBT#+vz$mdmuJ zhoQ!WU{wCp6SD%yclTs(_|qL|uo)a!uL#RK8B0H)KuL9vVR_tj?}ftMLn9e5{e0aaMjxGc#ddYglT&rOU^-& z{f7;_5Gd`FlY=B@@Vx-BihF&mjhA>&J)mKr!ut+Cf??=}(&ZF*J+N}}Vcak7PbtsW zP;eJaYwwKX)Ou7Jtj;Z~?JA_azT*+8ypFK|r`hXZ!KgJQ8uXav^cONlD72I!%W8y93pIzTbZ+<)n|p zvV6%PtyzGTB*o!^tvaL$Y~Yy;p5)kKR)pE0X=DxrnNIKfO?XtCm_Jj}`2|97#Yznv zR)iM92TMr-of;Qcj5gI}JJEb%b6=SKC$r@Hr^Mt;v}!4SlGq9sr`oQz`*j&y-nd2x z({1na*7EEbH(UItFRrW6G<09v4G`_<$Y) zP#=mQfAP6mW#fAF|GZv`z~%}y&tIgzUU~SVfDav8nunZ)kimVH+4{t#=TpIsq7!|qnR}7xCda1NGN7F?YjNce-aH;L5r)fwPVavc~pbrDbQxC{tlZ-Pf+&&L?55Fx- zNPM}L;eNK?+KmWx@Q$a>4N-1wxvL|M1Np_!J-j9tDnMAY^jZ~B7K!2qCo3#J`K->= zpK;0zir8eenL!w8J2aj${AdA75!Mv%k<=9e8V=K$)lGp(6k;i8$erImRm<;+`?Qw1q)M)0qT5^)So(*rts zs8rpUt%jrTXBwN0$o!Kop9I|H0V{#f@ zX6*b|7e5_62M4~iB<@ypAJI-C&)p*HLchFLk>5`0o4e%!0;@dY84l^eX~2hNnfXU& z$5aNq`^O|p;-b>AJ<)VFPm4Mm!Y!T}Ueno>mR5UL6YQlv-|2)*|X(nJv{ z5|K^_T|ioZgx&;|p3n&png{`efV5x;h_gelS6h5gLX-+L@r=zwc?6d1VnFB_yx(j0=M>;oICFqeoEKFNi5{}PepU&8M4In&g8rfbK6y(ooqah$ibV1J8c zC-9=;ll|B~0WSTE{N?vINCf=zVF?5Rfqv}>*v5QpY{bTu%|=i&S!2pg0hV+a%7eIN zLu{iD;o#@zuWD#;EWE`>)&tjXcCaq?@WYY1V|ID-5I{ssHZ_@voPblFKMyki5RT6^ z1urL@;LSLbS?}fLZ0$R0Goi=9_5Pc=O~A39!x|D|+zK&)?j3AooXsrs(5Fxz_lDJ# z<6aEMG!Kg?*l*hBFE|`v{=tPY@p=cqa1LPwC^YsIc{_{6)_WBOM-~maAWiqrTmkOV zKUPxzRStzhrpA9cJVZ}N%nZzi8Vbh{wxtC$9i?%Nz9vZ;z1PKm912e;?7!tX0eilk zRXc2c<+(nmZDeTb!**EF(7>TWpPA4$1M?hbw-I|XUuV?8thzhyfs{QtfNOh%N~&=$ zHA9^{{}TW1<6AyDarkRen_c-&+aip~lfgb(>EET7T9ABnY0u9zy+ON}gvgKbvj-DG zk-;trlR*8eiC*8cGeAT9AQ!Bi z*3Vc0dmrfa4@TR>G(D|3B!?YD<`$%@*%MHdu??G}F$L*TQ~a+~2wj8cYFB)|7a0+Z zX!iveQg`>*;=Rth%&4;BzW(#z=znT|1<>qlLaLpsMS7EyWv0qvi&u8ftPZteWc_ z74aWXm*p2~w&X>In-cJ~ z!#af{6>E*$2Uju*+8}VP6uM@WKD~G^>N4s#Q#Kp%GxK#7hFWUqR2lY3C(lpSVXs^T z%|oBKN+{hSkGL`FtmCJ=$Udl7u7`ov2HSQB{5m4IMJ-Y-xI4Ygv<3<(R?mcF4Hl>; z@bcD;D7aLJLCz>%KDk+npuvsO0|7)X3qRJ`a4e|)GJRqha?Me+P9~r)h@SNX)wEq! zjna>U{b{7dCPt}WLQGh>zK8X1Tsf|p=B`(7(T)RKNw*RR6)jh_k{ET_ZO zwumwr$D`rxoYDe9kNft-o+tLLG4SMrxb{3%6nZZM>t%o|>PJb{y%$dx;z=Jdn3U4J z%N}fL-`&c+H`b;&wZ@N3K)WgD2z@=_$42&1FJLW>nzN#CwY&Dluq&NR)`a(@l5-7f zB(O9e;;2!Kp)+Q?24O&%HO|?|*wiS-WTTVyG8r6F<}qT`*%C||+d-|ZmHs_9Y694P zlkI?hG#_mBdUoFM8?VFzZcJEC#N`l^ju@eq+qKia&>K!ue+B(xT3%Gs(9uc5M}Ui{ zzzg=QG1w^)X6}w=R=j+t_`dkkc)$aAMD45Ck6^N)#UN6sfL6e{MZ_M?k07LMa+IM54*67 z0jEgJ_&;=Q+EfPlIQ?J(_Se{%#oiR|l-_QrTgx3MC$!Dw%O2mZ8FYzZOgNjHn>`nk z3?@IVGVFpcaFEq2*o*SBKzR6nP${zh&u=4%4gdjvkc&AjPOv`*1bBJ5G<@{rPC;47 z&u8an?`^tlew>oD(mVo=^?5^H|F!Uai+#^q(L_3LvNhxySI1-FM}0; z9qzqhW#LKh;w(s)wYf2F`+yWaZ~M?KGgdwBYO)csiKBXJ`H6&x)cgV_O$+Lazh0g} z49Z^K9$vz$&_=1cO*L6FMQ>$oFXebCD692+MX7YlaHH}T9jvEp#_^X;&}VeUOP_5$ ztjk)%29M0=88K&ePd3p#852Mt1lV=DI@Ozs z0z|Xk90qZNcr1JRjAq9}1~udWItbGx+`%#+djrt zLt`a$p+e<&iK&>6uO8;zi^nmLmu@T5Lv?bWGHC6PG)D+2=uAyA2CH6E$cI=x-_#s=ngx0 z@W0;Ah-r#)y6!q`YhtV4r!)b(T4XQhRmuJqq84P!ofXHY^#sZosh(Z*(%`$NnGE=s z49okof_drpRv1wU%<<@)Qg!QKMTm9_+czYmW7k>G%Y7be9vI)*vTMoO$PgV1Hmy`q zOYX(RW6koH8z~`X=>-~vlX6rP2`21_IXh_|9rBI+SrrmPk$)Cv{%xjeB;X z{lPiA399bNmKS#uvf}fpCUF|Sp5JDYD9fc`9Ax=|?Dnc&e1?XE-caH>KQGLZ<>7es zFhG=jr0)xWgr35R8r(;P37)1H&mFrF`g+9PeT)qsQfnDP8r=qulp! z+G)BU#;EIC9b82g(7jFFo$J{$qWqA`X`ZA2soBK2z9h-)HaFuft)U_$jmxc_^+1{o z6{j-kX*yEU&~3rIucuUhR;eI^K6rjEIYpfidC`&-iSpA(PjF46_u>U?bS!h(Grj@Z z>};BPh~+P^pBK(DGb)hd%FZTyp0RlZ;QTs)BTWprb^{uA2r2i9$*!sz9z~=TNql) z-0>ha@!gpJF)yQ*Q^eeRmVqG{;GOR|I`l=DU~$TL(@fjPKleV|Os9D=JfsQ;7T;=t z`sId=)AM7y4HdSnz@CO^2-fB&oR!OtYjtA)SDPu5JaB;Gng(mS4@t=jh^#uc`<%%? zxRLYb#hx>uybfArl2~0@ZCqTiYIhcfLViEh|6uz(KxxidSK~{_%qLc_+@{#6bP($Z z5deC*&C*33PE+I-HM?DSo3FkbcRU`1rsWtGHd%4i0ct26w5JrlE@*1?27TnQ1)y%` zHs+cXfZTBdCgj9(j)H>^P#m}{d!d?+LX#Sff$U@A0y-Uic!y^nssx#NJtuSiT^9|- zC5ykW+5H!5M}K2ZRV5aVFi}>fq|8SkMC55`VjuI^$-9M5ALdQzZ~s7H{`??9c`p~MP#z)>ZGz(y0DrkPm|Ut`LP7-f@B+E z;HWK4isL*WV!y$bu+|e@D)~^q;|)Ui>PBMx?aXHt&8flOw`GO8nWrTRxh!}Ml2V1Y z(PR;6rI^cCUsr49cWVgfJ1ffPC-AhcL)r%Py*J;@2rFTpC_Q7I{YQZKw4GgNJSeyd z8bdjGkt9%IG$|w5+x=jy>FbN&mub9!L&~z}&xJ-{W5L%|)y(&CWV|Kwwhp z-Um1vhWKx>6QJK~#7R0d&a%Fb&$aQ_xXlb^c$wDu2{l|W-db-Pf#g%=Vzu0qBFLWsWv-D?pf%{m`Zhi6j;4-+f%MCEObG$%&x zYYqCkBGZhfiKXnmO}RZ^Hs>R{Zlw#m_R?5v9bTgOSWay+a!V5K3n>`EpbLe$UulKXUYs zBRVc!g-an@tcnOB`YWjfYUr%-BCYeA8n-cTdL6G@_s_3CoyvF(YYkchKPK|m)6V1i znM|kpq1#5Yze1uG(a_e*By0axzp&0eDo6D7qG$WYspghb2Obj=@yUAaAwtO?keT;} zekg@DugK{7W*WLp1>DetB4Mg#VF5iTC)s z1p^601{Yo!wWVX#U>e<_fK;_bfl%NfSBmHFn@5W_7wczh19!S17;EAlMZ*A@6*5)a-cOy#me-aKAqB-0mwrMT;M010WlY$drxh&tz@yjBqgQ9F%0fw`H{Ls z3nJ5})DHa2XQA-ZVU2OT?Vpm8pS#t&B>MIWJ+%Y`k(sH)-rE+ZtMA~QY)@B5$uZ>9 zP8^-7aS(8UuLp9z9Of!G4=1h$qWiK$v-+KAr`|t5Bk}a3BWTIn7ZEJn)N)b!s|rdF zpywvU9Z_!Kx*S>)FEjtz{o+Zocg{A1FVA-6^yH2O)~pgrtY6h?4Ug4Q5q-C>q|8X4 zj=eW)gpnRYz*)X;>&^y_4MmH7DXN>2?iED(tlP0>g0s78^xXBoIu*Y!t?SHbZII?% zuMQ5?t|pFTh(`pxgqbZzZi%^loGK2$@;+?U6&}HYONynpZ67c(NBucNkOne@yhG)Q6yc@+m*HR=r98{J*7ll|jvV54ovY}f2q z)4yln{s8;AFg%>&d!)EX|Te!^B0<9Me7Z9tG!VR)$(X#^n~Eov2vNpfR%139Lg5#lGRaOz#c zfqY7>c7w$pF-P`kO|Kd~;UA*mY&FrX@vUE69OJsVhlsAWa^&2mMk-(>oOlZKxj-TU z!kLM6n9fHe-q;u~P_Top@`L^cW$gq*OSLKnkF=WLBxz8!n(SSMiBAvAQzYkhEVkwM zI-7Mz_GAw~hX0PW-kktex5mKZnZBqyWq#Z%oM)W_xTNIG?W<8Ogo#wY@lR6^(Ag2wAh`RX@xJNQ8QZtt@kJEd z9NWYD%9a+o2u@|T&Ur3d`So`NuD~MelE;-X>rfYx5M91a7^y$L&^QkyIYrtelW<}ZH5>P;<$RXn* z6ptQvF3Igl5oz~Rf&V>v&?(WfNlWw{U`PhutoZ)F0e}CEXzG9J#YCmsY>Qa12ne*Q zUSt~(U<6op)aK6@slOSECVdtdCPsMS zY_#A)_qKN)|LiL+%~ZV>Tq7A^xWA3cI`kaJh<`$*G^?P~{dldPLX}Z=io?-RF%i%4 zw9I&bV&I}b3fX2vEgiP>qpDy9hO+KXj zuM6VmeOg?QOL5wlW?_G8$aUaIGp4w7o2=37e&Lr!p&OT_{04BS{QHed8P`_?X}1P0 z-pC?NEiFh`k_~G_`)D)i(kSq6X$a{Gy(LNMeUG(EZNsxvG~cet`s(OVv6}DZFXUqh z_3JEr8hh$34x`j8S)OP38`mBpI=NeyUz^q}C8aEst|h&CW%dih8TG?X{k?6ARbjS| zbj#*Dx2{?*^7oWJ(fV1JF*sQiVU#BJa`GkvE<;lIc5^e&5(MtOQQL>J2@| z1VcNp9Q@w*UKx1tRsEV&?LdQhmnng5MKF#!2DpIO?(Ljro)lwh$>p)rgxUpP-Nci5 zGpe4QEFIX@B*n|(x4W}`e`BxbK6a_ZyJ#e(lzGagkyzBTK>W?@(jyw+8UBQJg!1{e zJ#&+>Sc){o$k03=``ubMm?B15+k9oqYt1o#_>774Vz#h`fPq znVLk%3bTIiv}yW1ALEI2shz0oaM3%c{5P!U1-{XsmmEq?42}Q7Z`Hw5v5uecyq$Ro z9p{z`vr519y|zz5JXDDZHM&TfeOm!8p0+d)MO@bRghO9k5Vwu8`^ZVzq-}I>els6V#dDE)#cy;fJ|c> zgNRiNo>BqZCJ6$%FU5&1U_V5bJ+)2v{4hb(>9ZN&Al_ za`Ra-V4gu{C;OEl{s9E1`-;p%D=QwHi~Z-ktlr1<2d{g18uS5r3kq{xpP(PCv+tKY z|0{l2|1i+~2^eQ1|K64f3302aRUh2$8~P`mo$%y1Rybq*CSN>j z-!DZLWX%;|1}O9%?i@=BrW`vD#^p@-9#|H7udRQG1FwI8wc4AB`IE*+t9~qLP!zU3 z-|L@{8l)pHciMVjIsh?P{(VwX(j?RSPnbs+(Bc?)Du@ZnP3EuhgwL zuGFnBS$9^mC*HsWJ(cdO_`&I0*Y0cwlH7pdUE5E+yD-*dpy7aG_PMG--?r+Q5;~o8 z{G6ciS!TV2G~YZy?1q5g@BEJs_ZH{B#hlD%4T))F&M7j%I@@)YG_#js9I;y7h}QfR zH%9}_S>2#Zr@%9<8CsF6=>dDwev2tUQ(t!{t?bjH*&@ab7z2$c1%|_Sk zcmQSz#8c)#^a9m9GZkGmEbBX(x}yt&SKZszGYB<;q}haYw9wbc)__aMXuYjM zKN7vm_)!+$_rqY`xmg#-V}JI z=aFD}+4Wv{B*?zuNcfIW?-oy&v4j6b8-OgWRko!Qu{HJ`gl#cO1b)|mw;f99_hkl| z3?wSEGehC4&j1Ze`fs6S1Um8iflLT*-?x1;@bITGmfaqygg8vTv~$5vq~++=++aYa z@GPdEsqZ(H$WhwCR!=Jfa?MLqLA!La3NAKljbR*SHN2&C=cja$v z@Qba#=KEHyaPm_-@FXXV+qrc6$p-s3Olv|qTh|iMGP^<`8d~coQ1RoAv@I3kpK;P1 zu+If`2g+xXjf|5+EQW8JO4Np$Z0^5sOu_i6SJYyRwEE#tA`}x@DSI*`Ror@y5rjn&?JnTCN@^x@zs3YrSI% zxc922PK-$egOaOVjC&r#xJRgG!7Lh_MQdM@F~dA{n1)(}Z3Cfgxc`ZhWi2Z?+`RFE zwol=N@wy+aEF8n93OcYf@gzLEYhG`*ST8MH{eIz&ohVRsp-n50;{H(~=b@cSZcA9Nz;_qtg=MAp!mM zUa>?@l7yeQ?xIb~%-y_*S9aMl#ov|=T_!|eL~4B_PTmo$?a#aKT{ zc{;rgcMLBcR#6v7ox@ShR_(5TbAO56uY_usV6$Gt1i+yg1c(q&|B7Xh#WDb35S>WV7^L zJz}%W;?LEl(&GZ0`H496hONYD3goL4aEKAP=MhLB+X$B7K8XUSSo45~VGmmCC>)>- z{Dnc#{P$()hTSMKf#C01LqL}ZbJmjD{xsu5xO~M%IMCUosnj;qy0a!+%!o8m{FZqN zvp0oFdKPeu&+3}|meoaaJJcIXK2n_t{StdT(A4s){P1qNMdPj%u!RY8DUF|_x!L6Q zph4npnmOJy;8+E>8)^HyjoYaCS6tI^Iy1VJ)9Kjd8#)%C2o(bxjTl=J@I@v!V!o==1xY2hVP%dH9zxRpK>VV&hih%xlI!noj_j!vA*y zT5^u@Kk%!8j#H$Kl*W@iB+!ZE$3l0)mI?Zg1Q7psxu-KZL0Um_z-64ky+CwKIf($m$0A*tr$nik92S zq3;HAD}DnLj|kWmHf(*cXafv0HkN@eg-dfZNJ~p+;2W(v=|CT)L!L8?EAKoydc}UA zP~LhJ2$(MUYX0dh4{gz1v!>hd)}w|XV8;MoZAbaKvcGe+qwTm0ZV`aNVCYMPTnONp zp?3UuzgsKh7W?nd=O4K6|8c%szqWxEG@f5*CEVNMB&X$A3|F$n%y-Q}wGic61mzqV zzk$8{EHLR!vZpA+s-5{6=)Q9r`x)qnCEpFubgViD=yr0;LVYl=@KYf_r_shg3aanf zv$JH6Vh_~aDV-TkQmz3y?-yc2cCq*=GnNVTNNRP8at+fz0lK_Je(SSX*_d6K8pY8Z z9(qawpv$g6Pd?g9(yEi1k(UJ9ND4h)R(U&36@hBP+q^kC`f_DrUV?-{!w!YJ*9Wh{ zWe%?qdkk7`X|)1expsansEy3sZ6^G0Mqs&w0-FO3w`44^9zTb3u`yi zWW7u-LQ7Syd=e3Uv0Qq+K6L1{+jy0kl#o!b%hp8y49^y>w@Sf#j4Y|WjJ%xyN$px2 z(58wl3Doi2dEYg`Yx_!w5R)(je>st3bQ(dM5KmQ@?5TIfHyS)|X7{SQw6?8JTzYCl zTxtm_PfvPP8+(1sAt7zvR>$R5wO5@QRJ#}2%=ARQ@FM)&-JXNA6eU-zVC__u))8^n ztp|MQP!>Qp}KZ!RX3`Aby$G_a!D56#Kj|C z5|kqm7`T@j+TZg;X=$}^;TKxbi`enTt7gLN(-kce*Fqho8jnBP?R)0yST>PUdr^ha zjvWLx&>cISnIKtV{{e~q`FzQ1rHBaIk<70}b=|2_YfI_MeDV*~G^Isk99q-k*=HkhwUdOXlvljT7mBKt^fL3pZ~qR(L!Dmr#kpZiG%bLJlJXUQ~D zLE5#!I)erHanC35goA=Qz%2cukJV=%3{+uVBLH#9BB|t_meHl1=hN_5lEjo8dT$=ZfT z%pa-R=VY2O@I0gPkIv*R2uAP3v)1+wCb)v{7q+H~ON;@+5;@)^#ucEGXWSzDsSS)a_J^F4`Fw2V!=ErTdboyb-{81{Km zdiG2d|0r&AZi1(n@zV6IMmG_mYpyh1FIF`e+D(NpV7ty&dTG3~NTB~oy681vDcM(P zB&Y<&u)mu-uvFN%j6Y|Fz~%A!4B@Y9ZsXp#_mW=IFdp6t69*GO{iPsp(M8H(ar?k_ zzmhUn3~AMQY=`aByfYX&Vrlz8H0|LY&(^8^C`E?1*KFT^akU1UtVX{v$&l9-<7oKy z4jt_ZI3mJrt&gr@Wdb&@1?)q48XC*M`$4L&(|9)~qa_2~xZl6C*ugRV|%0GsAQL0MHmKLF*rV!X=MVN>8@JTIYZt-W|bB8^hR zbpbY8z9)an^Vd_L*8rc#l)#3eMZkW{mB_xM?}8<~HiR6j7Yk8}jiob+QnhyajOcNN z%d3~>E3ctN`qk$a8t>2TV_g#f3ql-0m*;x$$_wrn7=J zXzmRA`;Xj*Hqyu#_T%53TRHT>U2zd#PCjo(i$=~ePj>c)5Jc=6M}gHlPDyUC8dF0z zQu+w$nuP&}PBWJ`*R({6SHiF=d01jJf4O_O$c-Y!81ZR2`NI`0*!L3=#Fy``8h>Om z3yrgf}Lh8^UIHno;67m_bls!3A)M^#*JiV%pi{(7x5+2)f{h;Fz}fIUO-?p~sNLYZu}`>+T&u3Rw{{*{Kc{ZU%`~cc_Pse$l;} z@u{S|K~0WO2~kyvBq5+#`y+)5$$kO zPJKH#b;!}kaNH`qHADj|b+{wZilo$lO1%o9FZK>GM^p%%zHo(5OY>5{ZFwJ}Q4;9{zs-%TY{DkP8Yg1C7T3c;B5ha^<4^Bj6(dpd#kV=_@L7{j&QrQ}PHV zp7S4trosKc0KoKs=95P+-hwxXSAy=W1dj)jDAxa^KbZ^<@^jXHDV|6t`}|wpm0~xq zp$Ckr_j86Wt%*owBB@^=Cte5uqoTpNg@_zMY=AJ^Gd(RyH$66fn91p4>`NY< zw7gGYwOT%&7qqX|2$||SAK&ZXT`Cb>Z0vXOT|p^SF-O^Z#mQM-SDXx(R$9_G!$Hs1n z{`>PvWqrK>R21ZCSQaLWSp$ZxszHBZmPFi&l70}!V~8nN85pn;IXQPF*~#Mo1E%tC zN?r)o%r_B{B)bCKjRr)>K}kVg-_1+QVA2UT{f69T8=G4qL&)EEyN!5E|5wWMVYOpz zZ4ts^V%>&%O15pVz%9AsW!WZ&S!}o*=pMcniRslj{a|@Sb-ZMGX1m96KBOEIvLG9x z7D7NmrqHBaXp{5g@Mgda4vZJ`VXOB;FR&M!35MM{@4BDNc{b0P%xoF-JnQYB%ZAqq zrv_6aJW!7LuH1zs#y2`B$emQT2P@K|C%j)}Y<1iGjbL+)^=sVA+>MY$KT ze-i++3~$(ysF-S)JrHFdotWM)GtT#E&hI-I|I?-8Zn&KDm$|dexnw7Jy?U1aGK(zF1iRn#t8;44Ho4`B z(o|Mf*=`$3ZNh{7@lmpaJ^raXb$5Z(NDco0O94fuO6>5S-wl`LlkvsHJpZT?$76fQq5bl~K#tlnBe|!lZ`1{pE48PY$-Da2 z)>bnGBp$OJyc}E?oFuDf;gE3lRTcp^``)eu4iqEGxz(R#w-Op4mmnHx2g83FwHZ$K z(vWxDK29;si1w=J9VrZzenDOZeJh}G%c|QR_CDy$D^3oW)FY1QjTZk}C*nl<*-p{h zV~E)k|0zWK!3yzoDm(J;;mKOl@d|J%LhO`%o_K9`C4js%fV_xkHqMu;Fx3ifR+bj$ zI+(gTcbqvVKDy)0rojI3Z7L}>m1QqreMDeyeUN2GENK49Zd^>zFW@J9l?tJ%#y1d^ znNk2HhA{+j4P?26gn-r6)n98Dv6jJLXJ{lEg5N&N?CI@I4gK@Q^7OR}iavH<{&;Qs zbPaaqaEzHFU?zj~ln!1vhYr61dAlzMM{=NTr5$s>mpos$JzC4w&?9J&Ryjx84t|UD z6X-E6uZD+*E32z*mUp5-DYIZA=4^>)(-4E$7e8DcZr9u{v7^YG)kCosk-Sch-co?3 zl}UW0MOaGHInFYd8CL1P2faa3%CWc9fFuef2js0c={zVt_vr^xM23vAY(ofcq%sz) zH!ne!e6FWcYAP$^i@l;DIlj>Y4*3P+sALeuNpelhH$X|@JG|Dd;h2} zFaKTe`LfQw6hvT<=7m)ebZw4_{n{FU?@o0d2wIJHOg!TnyOM$VZ35A&>ouSDeIx(O z$yaCJvn4ERHd^KAor=4)&-~I_|C;J<0_-%8Ot|kJW44I|5JXq6fpkXbJ%Tpw=XV@0 zz&Od9S(Re1BX)?W2$P5vq+ztLQ0!hcd(W|U)BZK=b@hjPq(fxW45rF^3hw?poANgM zcj>)cm6P19%mYgj4g$P-0lz)R$(Ai;PNt~_SM-kh&9}dfyG$BigE3Yj(=xq;J~7B~ z_ws0hFKB2eENzzatT-8R+77wXFnhNC4fR5MueN1xLFH^=3*>dSo`AY#xJ@XplLJyp|9_+}~c=_$|bz(u27+mU{qpwnfYKE>X?mN}dfeKxmX!yZx<}?rFfB)6` ziZ-~9SmeI~S`zP^nmv@ki)OkHU}?o(UV&PzKN{wF=1^TF3O3TlTva+MdFdDc!5s|d z=YsX&+Lz4pDfuyq?9T$ahk3j*zrB-UzjK1m=h&wNh+P_4iJqla>Lnm>gd+x%+!Y~Sr&$g|%-ENqYh#CO4) zJmC*9c-2h^8_Jc+Tj^%cTBsVdZq?u($aB%B1eOG+{tmr~4QpFb#>*LE2AmRV8E1Es zktrtIg#h`xxD(v*fiI5Bl%~fc%=6);u~DO`>!MVnMhXkRHksM4wi)H_udbJAc58oA zNE(#)KbJ6}b*g>Co1t*~a5=Hx1Nl!hU1o;{V8h*mE{&)84^T=e^f%HDq9+^z8oULD zXq5kkJqu;Qn%l6-{~e-mV?vqbpM9nGZV9WTkM^#48UxlNy=4MtuWkQ$vQ5Z47$vkq zGSKwitVu7|Z>V69+?#Pcn8{X06M%`p$S3Sl8Y4}hmP|2g$3f@-Vuo^TeXT-d~YUdAFuUuq? zlo1Vvi&s>CjL_Yr$o{cr*shPDN#*8mW{@tYgdja!lW{wFDE*C6ohSzhe7GHmb{VEX zKsIoUYF&_9D;K*g1Dcm?IK9+FpmUs9{@me-wi$U zKvB5qG>oBRx?Op>KnA~a?0?)lcM23xInGNTLRD0Vv-KF2V6}_(O=Vfm2Mv6rU!|s| zo*o|?Zq9I$#QP8~oHxI5RG^g8>-P@*S9=y?MStGv*+J#yRxNgZ8)|WTgbshmeo7^K zE{OmglzR$Zq?RldzubS16>kUqZKhdjhBPg!pK~jKzbXy?c^RvAk*o~)5})v4zr0jn-IZ{AGoIe)Dx$Mye|^#6Y=>#ba2!T%t)7=C$q_T}j-$$z-$pkeI6 zJa-MkbNn~JGxmV^0)0(p{(+Z^fqE$_@V)0hg{Ol#pz55GL+{*6Iai7Pd&!!JP~qvf zaJMG6p5yY?F)AqGzmVMeqUyAJh%@c_`7>4JIvFpBgXQ@>p#FjTlnXM|@~X-|TDrMg&Uy$tZdh;Ts;{Gu-n%#7%>mdjEkHwUWbt?zIC%u(aET;ycQBc5)_` zK1r#yPFT^sbGq4&|Mcl{xZFPcix`?~jxdW~%7Dg``4hG=?o;YSg{O3<(j-?bs0 zNpUWFV@NrfRMFF7keAZX4eHO~H7(r}`$-z63JZ{I;`Cf^xE7 z*28-YpgJyQQQi{-f?=K&%=DJ$K?y#BD{)u@#jRtNW+;s4k(NAD;v(t+|PA`tSA&D zo*%~5`{ey!odLrwgYgY>UfblR(7q0%2PWG#Ep+oTK6)zrG^Y@T8qE?PT2Eiz!|kla zKDD1NGt+e>1vOmae&*ozo5oVqUo_2Pa~<7fr%Fh50b#t~d051=KlfhDte5u2Y1~q) zckH*72~sl&gP2OjoNAG%i^&s>bFh;f!h3sxcu~hUZ#po;9<3DhOY;hg730Mb@-Lr1 z`WeU(f8`5`Cz%aO2-<@srLx35-Sc}&BZ!>l_MEf!JQP*Zc*`R5rf%_ z$X5*x6j#{9v>&=X9lorfue{!tQAn0i5dX`M~RQ>5) z2jUTKHpf7`-sj*u-631^3hOwBi31gn5{SPmM)xAtQjY+QY1BBwla9=NAHxEAOW-mp zI%M#LX7+M2*AxpiNfy4VmlA@Cq*R54y?5Y#%QLvwRUFIa_XW2^g-87y1(JC*?xRyDqXKA@PV$aqYj{V` z94ccZ<%H}a;sF=n0h}pYoc#@ZeM6*_=V($)n@Eth`3aapO`d@+_1N zhk8}P)0g$2oPOKkqLzVW=yfBLhKjS@G%R`&bI!};t*654pLIfE0#pq~TXjlz%b$mh znSz`TR$F#IMoYQYft-6WeaZLPAFehol+xF_CJ~}#zR<#w-#^T!((Def=!#n{?qu*o zRziLf9wtz}_M71r53^eE32w>4;z4|O5y8Dqi#~|pGPeIrN6=bE$0OX?L}qZ`T!noX zxoc+WjlB6J=S8<&a)m2)X6Zbkpp=XDhA^i>o3$U$>$k@=mge=8g=5AVyX$kfP?gy# zs`3h6U)Bm#s&u-CM!DY25T^WNI@CTrjs3UZjNY(Zd}mqAEI0D~A*9L&v)d)K*y|Qx zJ(oBDs&Im$=jjlB=Nwyg#o0+(+c1AS2R}0Prry^Ag(ImVzNEo-S9)_Jp6Pv}VH&NB zen0tPMqoG2-R-mKc%M8+@cwf~^9ZPyDifyo;}${Lf7n{2)~mZxnDLU5Z$i*eZ(-yM zCGUa>mEJ=SCX~(gPis%u_fS!E4=*lYG|8kZ9o_^!+-Nk0H?9{?Cy!v3M-eh%0_-sI zda~JSHw!O^3WEdIc)VQ3tb)RIl3-_Gm`e zmrkVcen3b++1v6uQX9Hh$-3{vdP4Aia59N)REPV|;HJ;{_mA~Oy_?s1Cec@W_7wXNzR}kCdmxn4SxGReHMV!@c(6rnl{cMQF&f{dC@;v#V>@z(6dU zQ!gbUkEYBEfyWs?Z>JjA<6~zm&Y+g_qA8 zxgswu|6i5zrJke^mfI=G@oa8+Qc7Hugl*_&HktueIN9-6esf78MUn*>L1Cy_Kr^B^ z?C`kwK4U#Zh2;sEc$Qho09kdbzq;H;4=jQ}mtGhsBfPbUMmFmMDeN=@hIJ9-l}oH>Gk3j42OEHFNOs_ z_0n({cu}kZEn3K1*z9tl;r}#Rt#eTN+*EPdmJ&22J9E~?_IT6XF_SN`U~>+nQ2(Zo zwijx|oaNUv4J+6IErm>MTPnL84iw7!)6vu)bMM{PSxKV=0OXRUtVD~_l8dsW~S(M6rMkbc5HzSy_`l-%_>ngMOOST!4DBp~*==N5II z2geIr!7GyYzRdb1+CCo%kUqT@Yna&>VcslF))+j6o0>Dec2=}L&%C*BG+a4arOwAN z_O7CW=XiSNY@o+@+ss_O^kJuqhEeei~F7T^`yk1e%&;oM&l&QO1jKr zhJ(*}-%g+o8I}Li_;EYkhjgPhpUukx4LhM-ET*Qzz3(4$3Qw2Tz5!-^BwmYkW5+~P z{rLwMD9%cE>7wnB;y6;S`PqSR>sgl3U45W7G`8kjLbq0>BDlXiE$2aQWs)jv@{iL) zdMsIfbd&_qcu5G;xajI@d5l&G;=3`9lOvAOFMuWgWJ16(IAT;qs)T}eahM6*a=DI7 zlB(b(#gsjx;WXXiEJouvK9%j+S`i0R7?h8D(?!s;ZEP)mT=Dhy_ZP+m5! z&+4P9kG`|&nWb;p#lA)cpoKf7K>4{apLtdpmB4Zt?sg~6VVA8oqw>}EbG+?}keV}0 zfZCT|^h>na6ruTZ1*?{8BJ1(Xo?kXyDuuPFT$a+8z_KuoHt1;ex# zvYMKjYpFCt(8>Fre_VhoCM)>R)E{R)x86pkdU>akJ=Q%~on>^$>PI#w5Z@mjm)Ebq zacccL)mAHa|0na{e>NBXPwE4Vr)^}Ut@7@&{+B_g{XZLaqA62O|7AE>h1chBlJ5R@ z69yzE+vtR3JC6?l7Q<+lXSo7DE}d7nOsJPmu-zQ8LkO*5N{I(3en#0@r+{GM3D9kO zJ6?z3YRBq5d-CA}u;RYV3JZP7mB^O((fsN~2LrNiYuJI&%=z7r_v*{ZS0$8psu*s( zYy2!6U3`!>o2)bf-9L*~X_NUum%&g$P}&T-oAi{0t{(@~X1%xaL4nh8Pf8CGkCa81 z=Ghj^%--tmMq_+Br*fVor{4p9Qs9uDcll%vo+K9Ln`SX(#SpFlvSk+)Q>s!^e{Os% zH7+qYper$SO>VSBDgnVYe$tZ>--Hu`+pE!B66VjKa)`Ca;6&prrCMsD%nqRbY2;ce6TQ|T_36ZDtmeLbxh>- znf{$_Z6s+(OboX}1+c;`K1>;w9rrNJ8j>C7Vev9lveuqw^Me&-K4(d%D5A1h|l^_OXV&>6@tOwJ)U3I z+VT%Al8^Jg)HUyXoazTcv8t0xwsMUCfOE|w|1AOkNmGs4Vw*JBk(JiROH_}Uf(8a`Py$ks-809eE zzJ$?#;NYk0{$=y9T&o_#`#`L#F`TWR%Qw&*44yu86sXPhG}~~!T-a~z`9{koc&XY< z>*eQ#=hJ-6z5E@@(%UGN=N*+8AQZZEbOBI)K>ai;;R^HgOV|4|R_T|JbI-nq*uvxq zk=2|0BiGFAPHc~*!EjT%X5*)395H7~m6?r)qRUkko0ijlGH=*!js#8BbR0JLr@5+S z?8;dll*r)Yl6QlimCW`%K)LRGq3_4mnPoxzQ)_FQkIOL;wsvK#{Pmh8ufKiLOntLE zsJ>^!#L&HQlGxLm_r()U^Q`&km+_iV+Y|c1AH@foK%vbLP41Aun#0;$t6ZL%mGCrn zhAI_qnD#8GH_sfLyl@5ZV@z^XxSzDenI1Rot`{sh^8;(2@BVTz&uLG8G-^G$U5yU! zGulhRGWRmJQWnPQtngW1eaa^G-6lW!kjFT}_Cr#1cb5$&^OGsu4b+}IA~mC|jzQF1 z+0o)Z2%wrQO0<16Qrpl&Oz{_17K)pEG@GzLUMnu1R+?*;eOWbp%5qMH4tY1M^Ls#Q zx9?$G@_Nvl56X>p%{4wkVz+>?jF(nl_rv7mOm3TKUt0Tf9IKu0AfE1B*;zmNM!Ck4 zz8_vfWGwr}j=0}GdfNKIy7?G%Fcybl|Cpt?oYRWxVUnQ!tvNL{w0omgwrn2rO)YcD zaB#1*G&i?gs@-}cMfld}0pr`)90W5v;H389=3#*;ST>rh_^>Zd_GBW(QbX81>I<>rrk)F?$&BK)w*uB@zB|UlXtU`{ z4rr?lS&~!b*uU4++POBgq?UHAF;*$f*NT5igXiMjb6vYLhS#&>&0X)_s6odl_Vz~_ z1IwtVoYrfByv7*_d;XjKoXm+--g`kEpHwezpDGJz$XAsQ^_t9y73sAP6}=f45LthV zrSwz!{u`tc^ig0`uLi@CY%+X!7~LtJFz}UzV!ccI&` zlGRl*Ga%4VlmQURk-Rr6Ecx+;5-XFr_A)J?q8%J+&yKJj%|#*fFB z1@N{2UGEoVYQ2KdUPIT~dCYBR{cMN3aYu~})+(8DxYe{H2NDi;=!P3?A5>v~D(^}u zahfrjh=^F!lr|sFYe{`W`6w^G6A0dySmAq0k0V|)oQ$_?9ID=`<2DbRim(4IX^h*t z&A5mQee%I%K3aKb3!1&SN8nwKVbI>X#8gMeqC@iZ!>gzqO^*6Gy z5J7r8^7?sLi&g{x0yLE0$wB95#(%ca)&{>{D4wkrEHAx%=n!~UzecoMPvl5a&yK&R zxHNF)Z%;<&_z3Na*<0GVAa<9Av{3;|{bYg2TPF_T`k&Mq2>dlEwMyn?Q!8p)tFHS# zmzPgU@3`*gak(ldg>hPrtr$lPK|gQ45}!{BTjKSBnmI;)G@l!abO!3+78 z9e0KS`LXMolS>DaWSPKqA2}-A9-SY2A=5Y)AU+aU(9qm2y@iwz7Gg}Na4cR67@dgL zH(vDCq`C6c^x4cyQOyLOk$h^@LrsW%A-$<;S8!q&QQ)HGX+RqyFMx!T-As1p{ybA z!&)rFoBv8dv>|=8RKc!Ff#0<-DLQ&B-Y3AYj2vOTh#)Ddl zkp1KNIgMFQ;^gGm)fKh=&*mo5Kodqf@9_lR#!?GH8}*~aiDZ5|0fc7-ZIKxDN7Su2MYl@hO++b1Eb6AP_vml;ci-YCDxN< zg(k$EVRfzE6{@NLWwG2GtTvFLHo*YLxK`Tg^Zwg?70}qs1_7E&oe-u|9~~CFP^&c1 zVE&J_mAok0~l!h!V*FiqwGF&E)%>7|KfqTVwE7~ywGUJv~1MJdAHT7jh z{gGg4-bnSISbUxHD$MLsruN!$H@}f4bP}Iaon0<5u_*6m!~J5jd}b3^rO4;f2^P%R zHY%JcHW?ZVucJ3|cE1e|&u|SK7DEiTGm~vnmb%T_sp6B~wc*0v_r5OwM|=0K7bj*a zD#zSgcK*Y}b=04&YlnPf#h;W$`bG5ISJRk&`QL0{Ik8kVHZz9?vI0&H)nDt`)CZ@> z2shQ7E1B7TQ^5Fkl z2J!#c@8n*J5Rjqchw7UY(fTIe=eEz)Tjp>PgRP&_1)|PX)cz>ZV!t1KhNgF->Z8?p zJXz|U;Dbvp$w_ZT>YZGKh9cDsoHg{i>(2590RV4}#&>dlxg3^R@uQAL#Wgv?SJ)QT zBiIvIHtNVqCvmPU(ugHhB;~4_tEAJ9Wd6=-lrC)*caBq?AX!CaYMN(BH5`WOEuH@C zTJsG$lf(0Fo+PMK0tSrEjX~b>2SPZ*lJz$9eQVcZX<XIJV~zx zQU{lIq*56h8b@nb4(P`Pyt!mWyDPBesL#n`HoVK>w-xflN{>Y@T|jkDMXL}B(qk#N zF|(NGX`D1eZvX(42(sD2)&rbut7Q!RY5D_Ik#8j3UfJVj2=5PR>MFgnGAMQ}d6_j@ z+E<6^Gp^E8etR%uCK@N&w8*=tldz!5N(WHIFG;18bgU)$#1*N<6&^pb{>I6HKxDvc zydJp7dN)Msn|~fZyg7f!lsct7z71V6tl{gg*%kxRB%7vl1aRIOcFo=Nxmc?<>Gbjn z4BsLlZhF-MyZO0#jTVb>^33D`VQZR>Rm{z6XQGjyhVH197L%qEBP3l^G^K<0rW+Xz zp`u+54@{E11Y!EqChiNJw1m%sh3>k+Kkb8!X(ONN25j;f7mnmTF5i6LNWpCPl&Q;? zW2Q}QWJN-z{J|V&K@(}@Zo_nnqe8(+d>Y?wd7Y=3&e@y3-~u(=C1*K5(Zc$Og{%EN zoiC=P<5PQsV%&tEO=vR|qpI8ZHhq}t;pt+5Z|xqzQ4*HT)9G`kc15V6+C?&OfMoED z(;i=47F@Aa!+hOvsX2K3oJse@b)Wzh8}bl0V`apm3Z&0*?>T~4W?-^OlpFEw5ySG~^{hnZ)Gfa?{t%0Zjes4*! z4MWqfK61=&-)FRaytpgX8a#C5UsKkY=SkZbO`+u(j`tuec$l7CHXHFSYYyI{pshx1if=)NI6IWvKw|;dg!)|kYJEx;qgqlGwwvHUcB9$ z17G7cp!UjmCcMhwfDp;YJ4y#Jbz}(9F4VEV;8nwiHs%|MB=-NF9oM-zWKV z^zg=nfyz|Lw}yz<#Xo9%GxN=BuY!HuJO#HN#;Rju$>#*sN#zx|sqOlNt*l+Bv&hy5 zc9@lDCsk8C_3%lgdX3u!!7mbX>-fN?1*vV;X&l|BHJ$8pVtZP>@MXhn?GjI;2zETa z!ME#*fdxm5x4~ea&zSSXJ(GGY`m+Lk-XI70l&H$4TDh*alOk9;Zz8mDJJfWY+QSPK zdRpnMS=Y?p6?n+xiDSXv>bUr-LYl1ECJ-HK@qO;MY@20%mCIK~|2Sk(C1{|#|{?%q8f-jIU*JpP1c`5+&`cZ~&*pdNEOK19{uN@6345nq5D4Utm3f4