From ca7e2c8fac4e58e753620824a91629359ce45344 Mon Sep 17 00:00:00 2001 From: zStupan Date: Tue, 24 Oct 2023 15:39:26 +0200 Subject: [PATCH 1/7] moved tests outside of package --- niapy/tests/__init__.py | 1 - niapy/tests/conftest.py | 22 ---------- tests/__init__.py | 1 - tests/conftest.py | 5 --- {niapy/tests => tests}/test_aba.py | 2 +- {niapy/tests => tests}/test_abc.py | 2 +- {niapy/tests => tests}/test_algorithm.py | 0 {niapy/tests => tests}/test_argparser.py | 0 {niapy/tests => tests}/test_aso.py | 2 +- {niapy/tests => tests}/test_ba.py | 2 +- {niapy/tests => tests}/test_bea.py | 2 +- {niapy/tests => tests}/test_bfo.py | 2 +- {niapy/tests => tests}/test_ca.py | 2 +- {niapy/tests => tests}/test_clonalg.py | 2 +- {niapy/tests => tests}/test_cro.py | 2 +- {niapy/tests => tests}/test_cs.py | 2 +- {niapy/tests => tests}/test_cso.py | 2 +- {niapy/tests => tests}/test_de.py | 2 +- {niapy/tests => tests}/test_es.py | 2 +- {niapy/tests => tests}/test_fa.py | 2 +- {niapy/tests => tests}/test_foa.py | 2 +- {niapy/tests => tests}/test_fpa.py | 2 +- {niapy/tests => tests}/test_fss.py | 2 +- {niapy/tests => tests}/test_fwa.py | 2 +- {niapy/tests => tests}/test_ga.py | 2 +- {niapy/tests => tests}/test_gsa.py | 2 +- {niapy/tests => tests}/test_gso.py | 2 +- {niapy/tests => tests}/test_gwo.py | 2 +- {niapy/tests => tests}/test_hba.py | 2 +- {niapy/tests => tests}/test_hc.py | 2 +- {niapy/tests => tests}/test_hde.py | 2 +- {niapy/tests => tests}/test_hho.py | 2 +- {niapy/tests => tests}/test_hs.py | 2 +- {niapy/tests => tests}/test_hsaba.py | 2 +- .../tests => tests}/test_iter_gen_counters.py | 0 {niapy/tests => tests}/test_jde.py | 2 +- {niapy/tests => tests}/test_kh.py | 2 +- {niapy/tests => tests}/test_loa.py | 42 +++++++++---------- {niapy/tests => tests}/test_mbo.py | 2 +- {niapy/tests => tests}/test_mfo.py | 2 +- {niapy/tests => tests}/test_mke.py | 2 +- {niapy/tests => tests}/test_mts.py | 2 +- {niapy/tests => tests}/test_nmm.py | 2 +- {niapy/tests => tests}/test_problem.py | 0 .../tests => tests}/test_problem_functions.py | 0 {niapy/tests => tests}/test_pso.py | 2 +- {niapy/tests => tests}/test_rs.py | 2 +- {niapy/tests => tests}/test_runner.py | 0 {niapy/tests => tests}/test_sa.py | 2 +- {niapy/tests => tests}/test_saba.py | 2 +- {niapy/tests => tests}/test_sca.py | 2 +- {niapy/tests => tests}/test_shade.py | 2 +- {niapy/tests => tests}/test_task.py | 0 {niapy/tests => tests}/test_utility.py | 0 54 files changed, 62 insertions(+), 91 deletions(-) delete mode 100644 niapy/tests/__init__.py delete mode 100644 niapy/tests/conftest.py delete mode 100644 tests/conftest.py rename {niapy/tests => tests}/test_aba.py (94%) rename {niapy/tests => tests}/test_abc.py (91%) rename {niapy/tests => tests}/test_algorithm.py (100%) rename {niapy/tests => tests}/test_argparser.py (100%) rename {niapy/tests => tests}/test_aso.py (97%) rename {niapy/tests => tests}/test_ba.py (93%) rename {niapy/tests => tests}/test_bea.py (92%) rename {niapy/tests => tests}/test_bfo.py (96%) rename {niapy/tests => tests}/test_ca.py (91%) rename {niapy/tests => tests}/test_clonalg.py (91%) rename {niapy/tests => tests}/test_cro.py (91%) rename {niapy/tests => tests}/test_cs.py (91%) rename {niapy/tests => tests}/test_cso.py (91%) rename {niapy/tests => tests}/test_de.py (98%) rename {niapy/tests => tests}/test_es.py (98%) rename {niapy/tests => tests}/test_fa.py (91%) rename {niapy/tests => tests}/test_foa.py (94%) rename {niapy/tests => tests}/test_fpa.py (91%) rename {niapy/tests => tests}/test_fss.py (91%) rename {niapy/tests => tests}/test_fwa.py (98%) rename {niapy/tests => tests}/test_ga.py (98%) rename {niapy/tests => tests}/test_gsa.py (91%) rename {niapy/tests => tests}/test_gso.py (97%) rename {niapy/tests => tests}/test_gwo.py (91%) rename {niapy/tests => tests}/test_hba.py (95%) rename {niapy/tests => tests}/test_hc.py (90%) rename {niapy/tests => tests}/test_hde.py (99%) rename {niapy/tests => tests}/test_hho.py (92%) rename {niapy/tests => tests}/test_hs.py (95%) rename {niapy/tests => tests}/test_hsaba.py (94%) rename {niapy/tests => tests}/test_iter_gen_counters.py (100%) rename {niapy/tests => tests}/test_jde.py (98%) rename {niapy/tests => tests}/test_kh.py (93%) rename {niapy/tests => tests}/test_loa.py (89%) rename {niapy/tests => tests}/test_mbo.py (91%) rename {niapy/tests => tests}/test_mfo.py (91%) rename {niapy/tests => tests}/test_mke.py (97%) rename {niapy/tests => tests}/test_mts.py (95%) rename {niapy/tests => tests}/test_nmm.py (94%) rename {niapy/tests => tests}/test_problem.py (100%) rename {niapy/tests => tests}/test_problem_functions.py (100%) rename {niapy/tests => tests}/test_pso.py (99%) rename {niapy/tests => tests}/test_rs.py (91%) rename {niapy/tests => tests}/test_runner.py (100%) rename {niapy/tests => tests}/test_sa.py (95%) rename {niapy/tests => tests}/test_saba.py (93%) rename {niapy/tests => tests}/test_sca.py (92%) rename {niapy/tests => tests}/test_shade.py (98%) rename {niapy/tests => tests}/test_task.py (100%) rename {niapy/tests => tests}/test_utility.py (100%) diff --git a/niapy/tests/__init__.py b/niapy/tests/__init__.py deleted file mode 100644 index 2a6774823..000000000 --- a/niapy/tests/__init__.py +++ /dev/null @@ -1 +0,0 @@ -"""Unit tests for the package.""" diff --git a/niapy/tests/conftest.py b/niapy/tests/conftest.py deleted file mode 100644 index a07763af1..000000000 --- a/niapy/tests/conftest.py +++ /dev/null @@ -1,22 +0,0 @@ -"""Unit tests configuration file.""" - -import logging - - -def pytest_configure(config): - """Disable verbose output when running tests.""" - logging.basicConfig(level=logging.DEBUG) - -# terminal = config.pluginmanager.getplugin('terminal') -# base = terminal.TerminalReporter - -# class QuietReporter(base): -# """Reporter that only shows dots when running tests.""" - -# def __init__(self, *args, **kwargs): -# super(QuietReporter, self).__init__(*args, **kwargs) -# self.verbosity = 0 -# self.showlongtestinfo = False -# self.showfspath = False - -# terminal.TerminalReporter = QuietReporter diff --git a/tests/__init__.py b/tests/__init__.py index a916f18f3..e69de29bb 100644 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -1 +0,0 @@ -"""Integration tests for the package.""" diff --git a/tests/conftest.py b/tests/conftest.py deleted file mode 100644 index ea5e6ac42..000000000 --- a/tests/conftest.py +++ /dev/null @@ -1,5 +0,0 @@ -"""Integration tests configuration file.""" - -from niapy.tests.conftest import pytest_configure - -__all__ = ["pytest_configure"] diff --git a/niapy/tests/test_aba.py b/tests/test_aba.py similarity index 94% rename from niapy/tests/test_aba.py rename to tests/test_aba.py index f429d6498..0a9d7e539 100644 --- a/niapy/tests/test_aba.py +++ b/tests/test_aba.py @@ -1,6 +1,6 @@ # pylint: disable=line-too-long from niapy.algorithms.modified import AdaptiveBatAlgorithm -from niapy.tests.test_algorithm import AlgorithmTestCase, MyProblem +from tests.test_algorithm import AlgorithmTestCase, MyProblem class ABATestCase(AlgorithmTestCase): diff --git a/niapy/tests/test_abc.py b/tests/test_abc.py similarity index 91% rename from niapy/tests/test_abc.py rename to tests/test_abc.py index ee9b7e5c1..937b24a99 100644 --- a/niapy/tests/test_abc.py +++ b/tests/test_abc.py @@ -1,6 +1,6 @@ # encoding=utf8 from niapy.algorithms.basic import ArtificialBeeColonyAlgorithm -from niapy.tests.test_algorithm import AlgorithmTestCase, MyProblem +from tests.test_algorithm import AlgorithmTestCase, MyProblem class ABCTestCase(AlgorithmTestCase): diff --git a/niapy/tests/test_algorithm.py b/tests/test_algorithm.py similarity index 100% rename from niapy/tests/test_algorithm.py rename to tests/test_algorithm.py diff --git a/niapy/tests/test_argparser.py b/tests/test_argparser.py similarity index 100% rename from niapy/tests/test_argparser.py rename to tests/test_argparser.py diff --git a/niapy/tests/test_aso.py b/tests/test_aso.py similarity index 97% rename from niapy/tests/test_aso.py rename to tests/test_aso.py index e5fc662ac..44f97d02a 100644 --- a/niapy/tests/test_aso.py +++ b/tests/test_aso.py @@ -1,7 +1,7 @@ # encoding=utf8 from niapy.algorithms.other import AnarchicSocietyOptimization from niapy.algorithms.other.aso import elitism, sequential, crossover -from niapy.tests.test_algorithm import AlgorithmTestCase, MyProblem +from tests.test_algorithm import AlgorithmTestCase, MyProblem class ASOTestCase(AlgorithmTestCase): diff --git a/niapy/tests/test_ba.py b/tests/test_ba.py similarity index 93% rename from niapy/tests/test_ba.py rename to tests/test_ba.py index 1dd107581..fd01b2219 100644 --- a/niapy/tests/test_ba.py +++ b/tests/test_ba.py @@ -1,7 +1,7 @@ # encoding=utf8 from niapy.algorithms.basic import BatAlgorithm -from niapy.tests.test_algorithm import AlgorithmTestCase, MyProblem +from tests.test_algorithm import AlgorithmTestCase, MyProblem class BATestCase(AlgorithmTestCase): diff --git a/niapy/tests/test_bea.py b/tests/test_bea.py similarity index 92% rename from niapy/tests/test_bea.py rename to tests/test_bea.py index b253f878b..0145f44fb 100644 --- a/niapy/tests/test_bea.py +++ b/tests/test_bea.py @@ -1,6 +1,6 @@ # encoding=utf8 from niapy.algorithms.basic import BeesAlgorithm -from niapy.tests.test_algorithm import AlgorithmTestCase, MyProblem +from tests.test_algorithm import AlgorithmTestCase, MyProblem class BEATestCase(AlgorithmTestCase): diff --git a/niapy/tests/test_bfo.py b/tests/test_bfo.py similarity index 96% rename from niapy/tests/test_bfo.py rename to tests/test_bfo.py index ece69eca8..6465294be 100644 --- a/niapy/tests/test_bfo.py +++ b/tests/test_bfo.py @@ -1,7 +1,7 @@ # encoding=utf8 from niapy.algorithms.basic import BacterialForagingOptimization -from niapy.tests.test_algorithm import AlgorithmTestCase, MyProblem +from tests.test_algorithm import AlgorithmTestCase, MyProblem class BFOTestCase(AlgorithmTestCase): diff --git a/niapy/tests/test_ca.py b/tests/test_ca.py similarity index 91% rename from niapy/tests/test_ca.py rename to tests/test_ca.py index 7eb63ec64..6f1314db3 100644 --- a/niapy/tests/test_ca.py +++ b/tests/test_ca.py @@ -1,6 +1,6 @@ # encoding=utf8 from niapy.algorithms.basic import CamelAlgorithm -from niapy.tests.test_algorithm import AlgorithmTestCase, MyProblem +from tests.test_algorithm import AlgorithmTestCase, MyProblem class CATestCase(AlgorithmTestCase): diff --git a/niapy/tests/test_clonalg.py b/tests/test_clonalg.py similarity index 91% rename from niapy/tests/test_clonalg.py rename to tests/test_clonalg.py index 001763566..6d1b7b077 100644 --- a/niapy/tests/test_clonalg.py +++ b/tests/test_clonalg.py @@ -1,6 +1,6 @@ # encoding=utf8 from niapy.algorithms.basic import ClonalSelectionAlgorithm -from niapy.tests.test_algorithm import AlgorithmTestCase, MyProblem +from tests.test_algorithm import AlgorithmTestCase, MyProblem class ClonalgTestCase(AlgorithmTestCase): diff --git a/niapy/tests/test_cro.py b/tests/test_cro.py similarity index 91% rename from niapy/tests/test_cro.py rename to tests/test_cro.py index 869fe824c..e573668f9 100644 --- a/niapy/tests/test_cro.py +++ b/tests/test_cro.py @@ -1,7 +1,7 @@ # encoding=utf8 from niapy.algorithms.basic import CoralReefsOptimization -from niapy.tests.test_algorithm import AlgorithmTestCase, MyProblem +from tests.test_algorithm import AlgorithmTestCase, MyProblem class CROTestCase(AlgorithmTestCase): diff --git a/niapy/tests/test_cs.py b/tests/test_cs.py similarity index 91% rename from niapy/tests/test_cs.py rename to tests/test_cs.py index 644089e11..a71ba08a1 100644 --- a/niapy/tests/test_cs.py +++ b/tests/test_cs.py @@ -1,6 +1,6 @@ # encoding=utf8 from niapy.algorithms.basic import CuckooSearch -from niapy.tests.test_algorithm import AlgorithmTestCase, MyProblem +from tests.test_algorithm import AlgorithmTestCase, MyProblem class CSTestCase(AlgorithmTestCase): diff --git a/niapy/tests/test_cso.py b/tests/test_cso.py similarity index 91% rename from niapy/tests/test_cso.py rename to tests/test_cso.py index a0bce7f77..c03cc23df 100644 --- a/niapy/tests/test_cso.py +++ b/tests/test_cso.py @@ -1,7 +1,7 @@ # encoding=utf8 from niapy.algorithms.basic import CatSwarmOptimization -from niapy.tests.test_algorithm import AlgorithmTestCase, MyProblem +from tests.test_algorithm import AlgorithmTestCase, MyProblem class CSOTestCase(AlgorithmTestCase): diff --git a/niapy/tests/test_de.py b/tests/test_de.py similarity index 98% rename from niapy/tests/test_de.py rename to tests/test_de.py index dd4969740..864457f32 100644 --- a/niapy/tests/test_de.py +++ b/tests/test_de.py @@ -3,7 +3,7 @@ from niapy.algorithms.basic import DifferentialEvolution, DynNpDifferentialEvolution, AgingNpDifferentialEvolution, \ MultiStrategyDifferentialEvolution, DynNpMultiStrategyDifferentialEvolution from niapy.algorithms.basic.de import cross_rand1, cross_rand2, cross_best1, cross_best2, cross_curr2rand1, cross_curr2best1 -from niapy.tests.test_algorithm import AlgorithmTestCase, MyProblem +from tests.test_algorithm import AlgorithmTestCase, MyProblem class DETestCase(AlgorithmTestCase): diff --git a/niapy/tests/test_es.py b/tests/test_es.py similarity index 98% rename from niapy/tests/test_es.py rename to tests/test_es.py index a5fd3b827..2a61f5c27 100644 --- a/niapy/tests/test_es.py +++ b/tests/test_es.py @@ -3,7 +3,7 @@ from niapy.algorithms.basic import EvolutionStrategy1p1, EvolutionStrategyMp1, EvolutionStrategyMpL, EvolutionStrategyML from niapy.algorithms.basic.es import IndividualES -from niapy.tests.test_algorithm import AlgorithmTestCase, MyProblem +from tests.test_algorithm import AlgorithmTestCase, MyProblem class IndividualESTestCase(TestCase): diff --git a/niapy/tests/test_fa.py b/tests/test_fa.py similarity index 91% rename from niapy/tests/test_fa.py rename to tests/test_fa.py index 29636a843..f3b55c0c9 100644 --- a/niapy/tests/test_fa.py +++ b/tests/test_fa.py @@ -1,5 +1,5 @@ from niapy.algorithms.basic import FireflyAlgorithm -from niapy.tests.test_algorithm import AlgorithmTestCase, MyProblem +from tests.test_algorithm import AlgorithmTestCase, MyProblem class FATestCase(AlgorithmTestCase): diff --git a/niapy/tests/test_foa.py b/tests/test_foa.py similarity index 94% rename from niapy/tests/test_foa.py rename to tests/test_foa.py index 6539c8d8b..6c33d32f0 100644 --- a/niapy/tests/test_foa.py +++ b/tests/test_foa.py @@ -1,6 +1,6 @@ # encoding=utf8 from niapy.algorithms.basic import ForestOptimizationAlgorithm -from niapy.tests.test_algorithm import AlgorithmTestCase, MyProblem +from tests.test_algorithm import AlgorithmTestCase, MyProblem class FOATestCase(AlgorithmTestCase): diff --git a/niapy/tests/test_fpa.py b/tests/test_fpa.py similarity index 91% rename from niapy/tests/test_fpa.py rename to tests/test_fpa.py index b4ea93382..2744a64fb 100644 --- a/niapy/tests/test_fpa.py +++ b/tests/test_fpa.py @@ -1,6 +1,6 @@ # encoding=utf8 from niapy.algorithms.basic import FlowerPollinationAlgorithm -from niapy.tests.test_algorithm import AlgorithmTestCase, MyProblem +from tests.test_algorithm import AlgorithmTestCase, MyProblem class FPATestCase(AlgorithmTestCase): diff --git a/niapy/tests/test_fss.py b/tests/test_fss.py similarity index 91% rename from niapy/tests/test_fss.py rename to tests/test_fss.py index 28dc20476..14e48904e 100644 --- a/niapy/tests/test_fss.py +++ b/tests/test_fss.py @@ -1,6 +1,6 @@ # encoding=utf8 from niapy.algorithms.basic import FishSchoolSearch -from niapy.tests.test_algorithm import AlgorithmTestCase, MyProblem +from tests.test_algorithm import AlgorithmTestCase, MyProblem class FSSTestCase(AlgorithmTestCase): diff --git a/niapy/tests/test_fwa.py b/tests/test_fwa.py similarity index 98% rename from niapy/tests/test_fwa.py rename to tests/test_fwa.py index 12c27b4dd..685880154 100644 --- a/niapy/tests/test_fwa.py +++ b/tests/test_fwa.py @@ -2,7 +2,7 @@ from niapy.algorithms.basic import BareBonesFireworksAlgorithm, FireworksAlgorithm, EnhancedFireworksAlgorithm, \ DynamicFireworksAlgorithm, DynamicFireworksAlgorithmGauss -from niapy.tests.test_algorithm import AlgorithmTestCase, MyProblem +from tests.test_algorithm import AlgorithmTestCase, MyProblem class BBFWATestCase(AlgorithmTestCase): diff --git a/niapy/tests/test_ga.py b/tests/test_ga.py similarity index 98% rename from niapy/tests/test_ga.py rename to tests/test_ga.py index a17c15851..114d4ede5 100644 --- a/niapy/tests/test_ga.py +++ b/tests/test_ga.py @@ -2,7 +2,7 @@ from niapy.algorithms.basic import GeneticAlgorithm from niapy.algorithms.basic.ga import two_point_crossover, multi_point_crossover, creep_mutation, roulette_selection, \ crossover_uros, mutation_uros -from niapy.tests.test_algorithm import AlgorithmTestCase, MyProblem +from tests.test_algorithm import AlgorithmTestCase, MyProblem class GATestCase(AlgorithmTestCase): diff --git a/niapy/tests/test_gsa.py b/tests/test_gsa.py similarity index 91% rename from niapy/tests/test_gsa.py rename to tests/test_gsa.py index b30bbaf06..a64b287ff 100644 --- a/niapy/tests/test_gsa.py +++ b/tests/test_gsa.py @@ -1,6 +1,6 @@ # encoding=utf8 from niapy.algorithms.basic import GravitationalSearchAlgorithm -from niapy.tests.test_algorithm import AlgorithmTestCase, MyProblem +from tests.test_algorithm import AlgorithmTestCase, MyProblem class GSATestCase(AlgorithmTestCase): diff --git a/niapy/tests/test_gso.py b/tests/test_gso.py similarity index 97% rename from niapy/tests/test_gso.py rename to tests/test_gso.py index 287bbe22c..89724c5e2 100644 --- a/niapy/tests/test_gso.py +++ b/tests/test_gso.py @@ -2,7 +2,7 @@ from niapy.algorithms.basic import GlowwormSwarmOptimization, GlowwormSwarmOptimizationV1, GlowwormSwarmOptimizationV2, \ GlowwormSwarmOptimizationV3 -from niapy.tests.test_algorithm import AlgorithmTestCase, MyProblem +from tests.test_algorithm import AlgorithmTestCase, MyProblem class GSOTestCase(AlgorithmTestCase): diff --git a/niapy/tests/test_gwo.py b/tests/test_gwo.py similarity index 91% rename from niapy/tests/test_gwo.py rename to tests/test_gwo.py index 3756255e6..77a62f87e 100644 --- a/niapy/tests/test_gwo.py +++ b/tests/test_gwo.py @@ -1,6 +1,6 @@ # encoding=utf8 from niapy.algorithms.basic import GreyWolfOptimizer -from niapy.tests.test_algorithm import AlgorithmTestCase, MyProblem +from tests.test_algorithm import AlgorithmTestCase, MyProblem class GWOTestCase(AlgorithmTestCase): diff --git a/niapy/tests/test_hba.py b/tests/test_hba.py similarity index 95% rename from niapy/tests/test_hba.py rename to tests/test_hba.py index 84a2a0cb8..3b62c6355 100644 --- a/niapy/tests/test_hba.py +++ b/tests/test_hba.py @@ -1,6 +1,6 @@ # encoding=utf8 from niapy.algorithms.modified import HybridBatAlgorithm -from niapy.tests.test_algorithm import AlgorithmTestCase, MyProblem +from tests.test_algorithm import AlgorithmTestCase, MyProblem class HBATestCase(AlgorithmTestCase): diff --git a/niapy/tests/test_hc.py b/tests/test_hc.py similarity index 90% rename from niapy/tests/test_hc.py rename to tests/test_hc.py index 1e5dd4fed..eb1b6deca 100644 --- a/niapy/tests/test_hc.py +++ b/tests/test_hc.py @@ -1,6 +1,6 @@ # encoding=utf8 from niapy.algorithms.other import HillClimbAlgorithm -from niapy.tests.test_algorithm import AlgorithmTestCase, MyProblem +from tests.test_algorithm import AlgorithmTestCase, MyProblem class HCTestCase(AlgorithmTestCase): diff --git a/niapy/tests/test_hde.py b/tests/test_hde.py similarity index 99% rename from niapy/tests/test_hde.py rename to tests/test_hde.py index 5f4b00dc3..c15406ebb 100644 --- a/niapy/tests/test_hde.py +++ b/tests/test_hde.py @@ -3,7 +3,7 @@ MultiStrategyDifferentialEvolutionMTS, MultiStrategyDifferentialEvolutionMTSv1, \ DynNpMultiStrategyDifferentialEvolutionMTS, DynNpMultiStrategyDifferentialEvolutionMTSv1, \ DynNpDifferentialEvolutionMTS, DynNpDifferentialEvolutionMTSv1 -from niapy.tests.test_algorithm import AlgorithmTestCase, MyProblem +from tests.test_algorithm import AlgorithmTestCase, MyProblem class DEMTSTestCase(AlgorithmTestCase): diff --git a/niapy/tests/test_hho.py b/tests/test_hho.py similarity index 92% rename from niapy/tests/test_hho.py rename to tests/test_hho.py index e33f3ff3a..616f24f41 100644 --- a/niapy/tests/test_hho.py +++ b/tests/test_hho.py @@ -1,7 +1,7 @@ # encoding=utf8 from niapy.algorithms.basic import HarrisHawksOptimization -from niapy.tests.test_algorithm import AlgorithmTestCase, MyProblem +from tests.test_algorithm import AlgorithmTestCase, MyProblem class HHOTestCase(AlgorithmTestCase): diff --git a/niapy/tests/test_hs.py b/tests/test_hs.py similarity index 95% rename from niapy/tests/test_hs.py rename to tests/test_hs.py index 1867039af..d4d328ef5 100644 --- a/niapy/tests/test_hs.py +++ b/tests/test_hs.py @@ -1,7 +1,7 @@ # encoding=utf8 from niapy.algorithms.basic import HarmonySearch, HarmonySearchV1 -from niapy.tests.test_algorithm import AlgorithmTestCase, MyProblem +from tests.test_algorithm import AlgorithmTestCase, MyProblem class HSTestCase(AlgorithmTestCase): diff --git a/niapy/tests/test_hsaba.py b/tests/test_hsaba.py similarity index 94% rename from niapy/tests/test_hsaba.py rename to tests/test_hsaba.py index 48d8dceb9..5b43dedd9 100644 --- a/niapy/tests/test_hsaba.py +++ b/tests/test_hsaba.py @@ -1,6 +1,6 @@ # encoding=utf8 from niapy.algorithms.modified import HybridSelfAdaptiveBatAlgorithm -from niapy.tests.test_algorithm import AlgorithmTestCase, MyProblem +from tests.test_algorithm import AlgorithmTestCase, MyProblem class HSABATestCase(AlgorithmTestCase): diff --git a/niapy/tests/test_iter_gen_counters.py b/tests/test_iter_gen_counters.py similarity index 100% rename from niapy/tests/test_iter_gen_counters.py rename to tests/test_iter_gen_counters.py diff --git a/niapy/tests/test_jde.py b/tests/test_jde.py similarity index 98% rename from niapy/tests/test_jde.py rename to tests/test_jde.py index e33676a85..ef22024f2 100644 --- a/niapy/tests/test_jde.py +++ b/tests/test_jde.py @@ -7,7 +7,7 @@ MultiStrategySelfAdaptiveDifferentialEvolution from niapy.algorithms.modified.jde import SolutionJDE from niapy.task import Task -from niapy.tests.test_algorithm import AlgorithmTestCase, MyProblem +from tests.test_algorithm import AlgorithmTestCase, MyProblem class SolutionJDETestCase(TestCase): diff --git a/niapy/tests/test_kh.py b/tests/test_kh.py similarity index 93% rename from niapy/tests/test_kh.py rename to tests/test_kh.py index 33e602fad..09f0bb60e 100644 --- a/niapy/tests/test_kh.py +++ b/tests/test_kh.py @@ -1,6 +1,6 @@ # encoding=utf8 from niapy.algorithms.basic import KrillHerd -from niapy.tests.test_algorithm import AlgorithmTestCase, MyProblem +from tests.test_algorithm import AlgorithmTestCase, MyProblem class KHTestCase(AlgorithmTestCase): diff --git a/niapy/tests/test_loa.py b/tests/test_loa.py similarity index 89% rename from niapy/tests/test_loa.py rename to tests/test_loa.py index dbe656591..493987187 100644 --- a/niapy/tests/test_loa.py +++ b/tests/test_loa.py @@ -1,21 +1,21 @@ -# encoding=utf8 -from niapy.algorithms.basic import LionOptimizationAlgorithm -from niapy.tests.test_algorithm import AlgorithmTestCase, MyProblem - - -class LOATestCase(AlgorithmTestCase): - def setUp(self): - AlgorithmTestCase.setUp(self) - self.algo = LionOptimizationAlgorithm - - def test_custom(self): - loa_custom = self.algo(population_size=10, seed=self.seed) - loa_customc = self.algo(population_size=10, seed=self.seed) - AlgorithmTestCase.test_algorithm_run(self, loa_custom, loa_customc, MyProblem()) - - def test_griewank(self): - loa_griewank = self.algo(population_size=10, seed=self.seed) - loa_griewankc = self.algo(population_size=10, seed=self.seed) - AlgorithmTestCase.test_algorithm_run(self, loa_griewank, loa_griewankc) - -# vim: tabstop=3 noexpandtab shiftwidth=3 softtabstop=3 +# encoding=utf8 +from niapy.algorithms.basic import LionOptimizationAlgorithm +from tests.test_algorithm import AlgorithmTestCase, MyProblem + + +class LOATestCase(AlgorithmTestCase): + def setUp(self): + AlgorithmTestCase.setUp(self) + self.algo = LionOptimizationAlgorithm + + def test_custom(self): + loa_custom = self.algo(population_size=10, seed=self.seed) + loa_customc = self.algo(population_size=10, seed=self.seed) + AlgorithmTestCase.test_algorithm_run(self, loa_custom, loa_customc, MyProblem()) + + def test_griewank(self): + loa_griewank = self.algo(population_size=10, seed=self.seed) + loa_griewankc = self.algo(population_size=10, seed=self.seed) + AlgorithmTestCase.test_algorithm_run(self, loa_griewank, loa_griewankc) + +# vim: tabstop=3 noexpandtab shiftwidth=3 softtabstop=3 diff --git a/niapy/tests/test_mbo.py b/tests/test_mbo.py similarity index 91% rename from niapy/tests/test_mbo.py rename to tests/test_mbo.py index 6612b42c5..46e4c76e9 100644 --- a/niapy/tests/test_mbo.py +++ b/tests/test_mbo.py @@ -1,5 +1,5 @@ from niapy.algorithms.basic import MonarchButterflyOptimization -from niapy.tests.test_algorithm import AlgorithmTestCase, MyProblem +from tests.test_algorithm import AlgorithmTestCase, MyProblem class MBOTestCase(AlgorithmTestCase): diff --git a/niapy/tests/test_mfo.py b/tests/test_mfo.py similarity index 91% rename from niapy/tests/test_mfo.py rename to tests/test_mfo.py index 3ae1eea9f..24cd19c07 100644 --- a/niapy/tests/test_mfo.py +++ b/tests/test_mfo.py @@ -1,6 +1,6 @@ # encoding=utf8 from niapy.algorithms.basic import MothFlameOptimizer -from niapy.tests.test_algorithm import AlgorithmTestCase, MyProblem +from tests.test_algorithm import AlgorithmTestCase, MyProblem class MFOTestCase(AlgorithmTestCase): diff --git a/niapy/tests/test_mke.py b/tests/test_mke.py similarity index 97% rename from niapy/tests/test_mke.py rename to tests/test_mke.py index 27c3145bd..f1ff32dd9 100644 --- a/niapy/tests/test_mke.py +++ b/tests/test_mke.py @@ -7,7 +7,7 @@ from niapy.algorithms.basic import MonkeyKingEvolutionV1, MonkeyKingEvolutionV2, MonkeyKingEvolutionV3 from niapy.algorithms.basic.mke import MkeSolution from niapy.task import Task -from niapy.tests.test_algorithm import AlgorithmTestCase, MyProblem +from tests.test_algorithm import AlgorithmTestCase, MyProblem class MkeSolutionTestCase(TestCase): diff --git a/niapy/tests/test_mts.py b/tests/test_mts.py similarity index 95% rename from niapy/tests/test_mts.py rename to tests/test_mts.py index b6c1e3b8e..84a9fbef7 100644 --- a/niapy/tests/test_mts.py +++ b/tests/test_mts.py @@ -1,6 +1,6 @@ # encoding=utf8 from niapy.algorithms.other import MultipleTrajectorySearch, MultipleTrajectorySearchV1 -from niapy.tests.test_algorithm import AlgorithmTestCase, MyProblem +from tests.test_algorithm import AlgorithmTestCase, MyProblem class MTSTestCase(AlgorithmTestCase): diff --git a/niapy/tests/test_nmm.py b/tests/test_nmm.py similarity index 94% rename from niapy/tests/test_nmm.py rename to tests/test_nmm.py index 8ccc347d3..0c48527d6 100644 --- a/niapy/tests/test_nmm.py +++ b/tests/test_nmm.py @@ -1,6 +1,6 @@ # encoding=utf8 from niapy.algorithms.other import NelderMeadMethod -from niapy.tests.test_algorithm import AlgorithmTestCase, MyProblem +from tests.test_algorithm import AlgorithmTestCase, MyProblem class NMMTestCase(AlgorithmTestCase): diff --git a/niapy/tests/test_problem.py b/tests/test_problem.py similarity index 100% rename from niapy/tests/test_problem.py rename to tests/test_problem.py diff --git a/niapy/tests/test_problem_functions.py b/tests/test_problem_functions.py similarity index 100% rename from niapy/tests/test_problem_functions.py rename to tests/test_problem_functions.py diff --git a/niapy/tests/test_pso.py b/tests/test_pso.py similarity index 99% rename from niapy/tests/test_pso.py rename to tests/test_pso.py index 7ebf65fb5..b5e5df785 100644 --- a/niapy/tests/test_pso.py +++ b/tests/test_pso.py @@ -3,7 +3,7 @@ OppositionVelocityClampingParticleSwarmOptimization, CenterParticleSwarmOptimization, \ MutatedParticleSwarmOptimization, MutatedCenterParticleSwarmOptimization, \ ComprehensiveLearningParticleSwarmOptimizer, MutatedCenterUnifiedParticleSwarmOptimization -from niapy.tests.test_algorithm import AlgorithmTestCase, MyProblem +from tests.test_algorithm import AlgorithmTestCase, MyProblem class PSOTestCase(AlgorithmTestCase): diff --git a/niapy/tests/test_rs.py b/tests/test_rs.py similarity index 91% rename from niapy/tests/test_rs.py rename to tests/test_rs.py index 9f79462db..da70da963 100644 --- a/niapy/tests/test_rs.py +++ b/tests/test_rs.py @@ -1,7 +1,7 @@ # encoding=utf8 from niapy.algorithms.other import RandomSearch -from niapy.tests.test_algorithm import AlgorithmTestCase, MyProblem +from tests.test_algorithm import AlgorithmTestCase, MyProblem class RSTestCase(AlgorithmTestCase): diff --git a/niapy/tests/test_runner.py b/tests/test_runner.py similarity index 100% rename from niapy/tests/test_runner.py rename to tests/test_runner.py diff --git a/niapy/tests/test_sa.py b/tests/test_sa.py similarity index 95% rename from niapy/tests/test_sa.py rename to tests/test_sa.py index 287545042..d884c9676 100644 --- a/niapy/tests/test_sa.py +++ b/tests/test_sa.py @@ -2,7 +2,7 @@ from niapy.algorithms.other import SimulatedAnnealing from niapy.algorithms.other.sa import cool_linear -from niapy.tests.test_algorithm import AlgorithmTestCase, MyProblem +from tests.test_algorithm import AlgorithmTestCase, MyProblem class SATestCase(AlgorithmTestCase): diff --git a/niapy/tests/test_saba.py b/tests/test_saba.py similarity index 93% rename from niapy/tests/test_saba.py rename to tests/test_saba.py index 3ac5062b6..1daae9bed 100644 --- a/niapy/tests/test_saba.py +++ b/tests/test_saba.py @@ -1,6 +1,6 @@ # pylint: disable=line-too-long from niapy.algorithms.modified import SelfAdaptiveBatAlgorithm -from niapy.tests.test_algorithm import AlgorithmTestCase, MyProblem +from tests.test_algorithm import AlgorithmTestCase, MyProblem class HBATestCase(AlgorithmTestCase): diff --git a/niapy/tests/test_sca.py b/tests/test_sca.py similarity index 92% rename from niapy/tests/test_sca.py rename to tests/test_sca.py index dae59ea47..631b26291 100644 --- a/niapy/tests/test_sca.py +++ b/tests/test_sca.py @@ -1,6 +1,6 @@ # encoding=utf8 from niapy.algorithms.basic import SineCosineAlgorithm -from niapy.tests.test_algorithm import AlgorithmTestCase, MyProblem +from tests.test_algorithm import AlgorithmTestCase, MyProblem class SCATestCase(AlgorithmTestCase): diff --git a/niapy/tests/test_shade.py b/tests/test_shade.py similarity index 98% rename from niapy/tests/test_shade.py rename to tests/test_shade.py index 621a2bd37..56f6733a8 100644 --- a/niapy/tests/test_shade.py +++ b/tests/test_shade.py @@ -7,7 +7,7 @@ LpsrSuccessHistoryAdaptiveDifferentialEvolution from niapy.algorithms.modified.shade import SolutionSHADE from niapy.task import Task -from niapy.tests.test_algorithm import AlgorithmTestCase, MyProblem +from tests.test_algorithm import AlgorithmTestCase, MyProblem class SolutionSHADETestCase(TestCase): diff --git a/niapy/tests/test_task.py b/tests/test_task.py similarity index 100% rename from niapy/tests/test_task.py rename to tests/test_task.py diff --git a/niapy/tests/test_utility.py b/tests/test_utility.py similarity index 100% rename from niapy/tests/test_utility.py rename to tests/test_utility.py From f459f56152fa8da1e027d125233f44931706bff0 Mon Sep 17 00:00:00 2001 From: zStupan Date: Tue, 24 Oct 2023 16:02:48 +0200 Subject: [PATCH 2/7] Added pyproject.toml and poetry lock --- poetry.lock | 1351 ++++++++++++++++++++++++++++++++++++++++++++++++ pyproject.toml | 44 ++ 2 files changed, 1395 insertions(+) create mode 100644 poetry.lock create mode 100644 pyproject.toml diff --git a/poetry.lock b/poetry.lock new file mode 100644 index 000000000..53db668b3 --- /dev/null +++ b/poetry.lock @@ -0,0 +1,1351 @@ +# This file is automatically @generated by Poetry 1.6.1 and should not be changed by hand. + +[[package]] +name = "alabaster" +version = "0.7.13" +description = "A configurable sidebar-enabled Sphinx theme" +optional = false +python-versions = ">=3.6" +files = [ + {file = "alabaster-0.7.13-py3-none-any.whl", hash = "sha256:1ee19aca801bbabb5ba3f5f258e4422dfa86f82f3e9cefb0859b283cdd7f62a3"}, + {file = "alabaster-0.7.13.tar.gz", hash = "sha256:a27a4a084d5e690e16e01e03ad2b2e552c61a65469419b907243193de1a84ae2"}, +] + +[[package]] +name = "babel" +version = "2.13.0" +description = "Internationalization utilities" +optional = false +python-versions = ">=3.7" +files = [ + {file = "Babel-2.13.0-py3-none-any.whl", hash = "sha256:fbfcae1575ff78e26c7449136f1abbefc3c13ce542eeb13d43d50d8b047216ec"}, + {file = "Babel-2.13.0.tar.gz", hash = "sha256:04c3e2d28d2b7681644508f836be388ae49e0cfe91465095340395b60d00f210"}, +] + +[package.extras] +dev = ["freezegun (>=1.0,<2.0)", "pytest (>=6.0)", "pytest-cov"] + +[[package]] +name = "certifi" +version = "2023.7.22" +description = "Python package for providing Mozilla's CA Bundle." +optional = false +python-versions = ">=3.6" +files = [ + {file = "certifi-2023.7.22-py3-none-any.whl", hash = "sha256:92d6037539857d8206b8f6ae472e8b77db8058fec5937a1ef3f54304089edbb9"}, + {file = "certifi-2023.7.22.tar.gz", hash = "sha256:539cc1d13202e33ca466e88b2807e29f4c13049d6d87031a3c110744495cb082"}, +] + +[[package]] +name = "charset-normalizer" +version = "3.3.1" +description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." +optional = false +python-versions = ">=3.7.0" +files = [ + {file = "charset-normalizer-3.3.1.tar.gz", hash = "sha256:d9137a876020661972ca6eec0766d81aef8a5627df628b664b234b73396e727e"}, + {file = "charset_normalizer-3.3.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:8aee051c89e13565c6bd366813c386939f8e928af93c29fda4af86d25b73d8f8"}, + {file = "charset_normalizer-3.3.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:352a88c3df0d1fa886562384b86f9a9e27563d4704ee0e9d56ec6fcd270ea690"}, + {file = "charset_normalizer-3.3.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:223b4d54561c01048f657fa6ce41461d5ad8ff128b9678cfe8b2ecd951e3f8a2"}, + {file = "charset_normalizer-3.3.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4f861d94c2a450b974b86093c6c027888627b8082f1299dfd5a4bae8e2292821"}, + {file = "charset_normalizer-3.3.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1171ef1fc5ab4693c5d151ae0fdad7f7349920eabbaca6271f95969fa0756c2d"}, + {file = "charset_normalizer-3.3.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:28f512b9a33235545fbbdac6a330a510b63be278a50071a336afc1b78781b147"}, + {file = "charset_normalizer-3.3.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0e842112fe3f1a4ffcf64b06dc4c61a88441c2f02f373367f7b4c1aa9be2ad5"}, + {file = "charset_normalizer-3.3.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3f9bc2ce123637a60ebe819f9fccc614da1bcc05798bbbaf2dd4ec91f3e08846"}, + {file = "charset_normalizer-3.3.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:f194cce575e59ffe442c10a360182a986535fd90b57f7debfaa5c845c409ecc3"}, + {file = "charset_normalizer-3.3.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:9a74041ba0bfa9bc9b9bb2cd3238a6ab3b7618e759b41bd15b5f6ad958d17605"}, + {file = "charset_normalizer-3.3.1-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:b578cbe580e3b41ad17b1c428f382c814b32a6ce90f2d8e39e2e635d49e498d1"}, + {file = "charset_normalizer-3.3.1-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:6db3cfb9b4fcecb4390db154e75b49578c87a3b9979b40cdf90d7e4b945656e1"}, + {file = "charset_normalizer-3.3.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:debb633f3f7856f95ad957d9b9c781f8e2c6303ef21724ec94bea2ce2fcbd056"}, + {file = "charset_normalizer-3.3.1-cp310-cp310-win32.whl", hash = "sha256:87071618d3d8ec8b186d53cb6e66955ef2a0e4fa63ccd3709c0c90ac5a43520f"}, + {file = "charset_normalizer-3.3.1-cp310-cp310-win_amd64.whl", hash = "sha256:e372d7dfd154009142631de2d316adad3cc1c36c32a38b16a4751ba78da2a397"}, + {file = "charset_normalizer-3.3.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ae4070f741f8d809075ef697877fd350ecf0b7c5837ed68738607ee0a2c572cf"}, + {file = "charset_normalizer-3.3.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:58e875eb7016fd014c0eea46c6fa92b87b62c0cb31b9feae25cbbe62c919f54d"}, + {file = "charset_normalizer-3.3.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:dbd95e300367aa0827496fe75a1766d198d34385a58f97683fe6e07f89ca3e3c"}, + {file = "charset_normalizer-3.3.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:de0b4caa1c8a21394e8ce971997614a17648f94e1cd0640fbd6b4d14cab13a72"}, + {file = "charset_normalizer-3.3.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:985c7965f62f6f32bf432e2681173db41336a9c2611693247069288bcb0c7f8b"}, + {file = "charset_normalizer-3.3.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a15c1fe6d26e83fd2e5972425a772cca158eae58b05d4a25a4e474c221053e2d"}, + {file = "charset_normalizer-3.3.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ae55d592b02c4349525b6ed8f74c692509e5adffa842e582c0f861751701a673"}, + {file = "charset_normalizer-3.3.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:be4d9c2770044a59715eb57c1144dedea7c5d5ae80c68fb9959515037cde2008"}, + {file = "charset_normalizer-3.3.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:851cf693fb3aaef71031237cd68699dded198657ec1e76a76eb8be58c03a5d1f"}, + {file = "charset_normalizer-3.3.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:31bbaba7218904d2eabecf4feec0d07469284e952a27400f23b6628439439fa7"}, + {file = "charset_normalizer-3.3.1-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:871d045d6ccc181fd863a3cd66ee8e395523ebfbc57f85f91f035f50cee8e3d4"}, + {file = "charset_normalizer-3.3.1-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:501adc5eb6cd5f40a6f77fbd90e5ab915c8fd6e8c614af2db5561e16c600d6f3"}, + {file = "charset_normalizer-3.3.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:f5fb672c396d826ca16a022ac04c9dce74e00a1c344f6ad1a0fdc1ba1f332213"}, + {file = "charset_normalizer-3.3.1-cp311-cp311-win32.whl", hash = "sha256:bb06098d019766ca16fc915ecaa455c1f1cd594204e7f840cd6258237b5079a8"}, + {file = "charset_normalizer-3.3.1-cp311-cp311-win_amd64.whl", hash = "sha256:8af5a8917b8af42295e86b64903156b4f110a30dca5f3b5aedea123fbd638bff"}, + {file = "charset_normalizer-3.3.1-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:7ae8e5142dcc7a49168f4055255dbcced01dc1714a90a21f87448dc8d90617d1"}, + {file = "charset_normalizer-3.3.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:5b70bab78accbc672f50e878a5b73ca692f45f5b5e25c8066d748c09405e6a55"}, + {file = "charset_normalizer-3.3.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5ceca5876032362ae73b83347be8b5dbd2d1faf3358deb38c9c88776779b2e2f"}, + {file = "charset_normalizer-3.3.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:34d95638ff3613849f473afc33f65c401a89f3b9528d0d213c7037c398a51296"}, + {file = "charset_normalizer-3.3.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9edbe6a5bf8b56a4a84533ba2b2f489d0046e755c29616ef8830f9e7d9cf5728"}, + {file = "charset_normalizer-3.3.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f6a02a3c7950cafaadcd46a226ad9e12fc9744652cc69f9e5534f98b47f3bbcf"}, + {file = "charset_normalizer-3.3.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:10b8dd31e10f32410751b3430996f9807fc4d1587ca69772e2aa940a82ab571a"}, + {file = "charset_normalizer-3.3.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:edc0202099ea1d82844316604e17d2b175044f9bcb6b398aab781eba957224bd"}, + {file = "charset_normalizer-3.3.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:b891a2f68e09c5ef989007fac11476ed33c5c9994449a4e2c3386529d703dc8b"}, + {file = "charset_normalizer-3.3.1-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:71ef3b9be10070360f289aea4838c784f8b851be3ba58cf796262b57775c2f14"}, + {file = "charset_normalizer-3.3.1-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:55602981b2dbf8184c098bc10287e8c245e351cd4fdcad050bd7199d5a8bf514"}, + {file = "charset_normalizer-3.3.1-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:46fb9970aa5eeca547d7aa0de5d4b124a288b42eaefac677bde805013c95725c"}, + {file = "charset_normalizer-3.3.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:520b7a142d2524f999447b3a0cf95115df81c4f33003c51a6ab637cbda9d0bf4"}, + {file = "charset_normalizer-3.3.1-cp312-cp312-win32.whl", hash = "sha256:8ec8ef42c6cd5856a7613dcd1eaf21e5573b2185263d87d27c8edcae33b62a61"}, + {file = "charset_normalizer-3.3.1-cp312-cp312-win_amd64.whl", hash = "sha256:baec8148d6b8bd5cee1ae138ba658c71f5b03e0d69d5907703e3e1df96db5e41"}, + {file = "charset_normalizer-3.3.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:63a6f59e2d01310f754c270e4a257426fe5a591dc487f1983b3bbe793cf6bac6"}, + {file = "charset_normalizer-3.3.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1d6bfc32a68bc0933819cfdfe45f9abc3cae3877e1d90aac7259d57e6e0f85b1"}, + {file = "charset_normalizer-3.3.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4f3100d86dcd03c03f7e9c3fdb23d92e32abbca07e7c13ebd7ddfbcb06f5991f"}, + {file = "charset_normalizer-3.3.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:39b70a6f88eebe239fa775190796d55a33cfb6d36b9ffdd37843f7c4c1b5dc67"}, + {file = "charset_normalizer-3.3.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4e12f8ee80aa35e746230a2af83e81bd6b52daa92a8afaef4fea4a2ce9b9f4fa"}, + {file = "charset_normalizer-3.3.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7b6cefa579e1237ce198619b76eaa148b71894fb0d6bcf9024460f9bf30fd228"}, + {file = "charset_normalizer-3.3.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:61f1e3fb621f5420523abb71f5771a204b33c21d31e7d9d86881b2cffe92c47c"}, + {file = "charset_normalizer-3.3.1-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:4f6e2a839f83a6a76854d12dbebde50e4b1afa63e27761549d006fa53e9aa80e"}, + {file = "charset_normalizer-3.3.1-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:1ec937546cad86d0dce5396748bf392bb7b62a9eeb8c66efac60e947697f0e58"}, + {file = "charset_normalizer-3.3.1-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:82ca51ff0fc5b641a2d4e1cc8c5ff108699b7a56d7f3ad6f6da9dbb6f0145b48"}, + {file = "charset_normalizer-3.3.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:633968254f8d421e70f91c6ebe71ed0ab140220469cf87a9857e21c16687c034"}, + {file = "charset_normalizer-3.3.1-cp37-cp37m-win32.whl", hash = "sha256:c0c72d34e7de5604df0fde3644cc079feee5e55464967d10b24b1de268deceb9"}, + {file = "charset_normalizer-3.3.1-cp37-cp37m-win_amd64.whl", hash = "sha256:63accd11149c0f9a99e3bc095bbdb5a464862d77a7e309ad5938fbc8721235ae"}, + {file = "charset_normalizer-3.3.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:5a3580a4fdc4ac05f9e53c57f965e3594b2f99796231380adb2baaab96e22761"}, + {file = "charset_normalizer-3.3.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:2465aa50c9299d615d757c1c888bc6fef384b7c4aec81c05a0172b4400f98557"}, + {file = "charset_normalizer-3.3.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:cb7cd68814308aade9d0c93c5bd2ade9f9441666f8ba5aa9c2d4b389cb5e2a45"}, + {file = "charset_normalizer-3.3.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:91e43805ccafa0a91831f9cd5443aa34528c0c3f2cc48c4cb3d9a7721053874b"}, + {file = "charset_normalizer-3.3.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:854cc74367180beb327ab9d00f964f6d91da06450b0855cbbb09187bcdb02de5"}, + {file = "charset_normalizer-3.3.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c15070ebf11b8b7fd1bfff7217e9324963c82dbdf6182ff7050519e350e7ad9f"}, + {file = "charset_normalizer-3.3.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2c4c99f98fc3a1835af8179dcc9013f93594d0670e2fa80c83aa36346ee763d2"}, + {file = "charset_normalizer-3.3.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3fb765362688821404ad6cf86772fc54993ec11577cd5a92ac44b4c2ba52155b"}, + {file = "charset_normalizer-3.3.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:dced27917823df984fe0c80a5c4ad75cf58df0fbfae890bc08004cd3888922a2"}, + {file = "charset_normalizer-3.3.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:a66bcdf19c1a523e41b8e9d53d0cedbfbac2e93c649a2e9502cb26c014d0980c"}, + {file = "charset_normalizer-3.3.1-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:ecd26be9f112c4f96718290c10f4caea6cc798459a3a76636b817a0ed7874e42"}, + {file = "charset_normalizer-3.3.1-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:3f70fd716855cd3b855316b226a1ac8bdb3caf4f7ea96edcccc6f484217c9597"}, + {file = "charset_normalizer-3.3.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:17a866d61259c7de1bdadef418a37755050ddb4b922df8b356503234fff7932c"}, + {file = "charset_normalizer-3.3.1-cp38-cp38-win32.whl", hash = "sha256:548eefad783ed787b38cb6f9a574bd8664468cc76d1538215d510a3cd41406cb"}, + {file = "charset_normalizer-3.3.1-cp38-cp38-win_amd64.whl", hash = "sha256:45f053a0ece92c734d874861ffe6e3cc92150e32136dd59ab1fb070575189c97"}, + {file = "charset_normalizer-3.3.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:bc791ec3fd0c4309a753f95bb6c749ef0d8ea3aea91f07ee1cf06b7b02118f2f"}, + {file = "charset_normalizer-3.3.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:0c8c61fb505c7dad1d251c284e712d4e0372cef3b067f7ddf82a7fa82e1e9a93"}, + {file = "charset_normalizer-3.3.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:2c092be3885a1b7899cd85ce24acedc1034199d6fca1483fa2c3a35c86e43041"}, + {file = "charset_normalizer-3.3.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c2000c54c395d9e5e44c99dc7c20a64dc371f777faf8bae4919ad3e99ce5253e"}, + {file = "charset_normalizer-3.3.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4cb50a0335382aac15c31b61d8531bc9bb657cfd848b1d7158009472189f3d62"}, + {file = "charset_normalizer-3.3.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c30187840d36d0ba2893bc3271a36a517a717f9fd383a98e2697ee890a37c273"}, + {file = "charset_normalizer-3.3.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fe81b35c33772e56f4b6cf62cf4aedc1762ef7162a31e6ac7fe5e40d0149eb67"}, + {file = "charset_normalizer-3.3.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d0bf89afcbcf4d1bb2652f6580e5e55a840fdf87384f6063c4a4f0c95e378656"}, + {file = "charset_normalizer-3.3.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:06cf46bdff72f58645434d467bf5228080801298fbba19fe268a01b4534467f5"}, + {file = "charset_normalizer-3.3.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:3c66df3f41abee950d6638adc7eac4730a306b022570f71dd0bd6ba53503ab57"}, + {file = "charset_normalizer-3.3.1-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:cd805513198304026bd379d1d516afbf6c3c13f4382134a2c526b8b854da1c2e"}, + {file = "charset_normalizer-3.3.1-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:9505dc359edb6a330efcd2be825fdb73ee3e628d9010597aa1aee5aa63442e97"}, + {file = "charset_normalizer-3.3.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:31445f38053476a0c4e6d12b047b08ced81e2c7c712e5a1ad97bc913256f91b2"}, + {file = "charset_normalizer-3.3.1-cp39-cp39-win32.whl", hash = "sha256:bd28b31730f0e982ace8663d108e01199098432a30a4c410d06fe08fdb9e93f4"}, + {file = "charset_normalizer-3.3.1-cp39-cp39-win_amd64.whl", hash = "sha256:555fe186da0068d3354cdf4bbcbc609b0ecae4d04c921cc13e209eece7720727"}, + {file = "charset_normalizer-3.3.1-py3-none-any.whl", hash = "sha256:800561453acdecedaac137bf09cd719c7a440b6800ec182f077bb8e7025fb708"}, +] + +[[package]] +name = "colorama" +version = "0.4.6" +description = "Cross-platform colored terminal text." +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" +files = [ + {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, + {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, +] + +[[package]] +name = "contourpy" +version = "1.1.1" +description = "Python library for calculating contours of 2D quadrilateral grids" +optional = false +python-versions = ">=3.8" +files = [ + {file = "contourpy-1.1.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:46e24f5412c948d81736509377e255f6040e94216bf1a9b5ea1eaa9d29f6ec1b"}, + {file = "contourpy-1.1.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:0e48694d6a9c5a26ee85b10130c77a011a4fedf50a7279fa0bdaf44bafb4299d"}, + {file = "contourpy-1.1.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a66045af6cf00e19d02191ab578a50cb93b2028c3eefed999793698e9ea768ae"}, + {file = "contourpy-1.1.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4ebf42695f75ee1a952f98ce9775c873e4971732a87334b099dde90b6af6a916"}, + {file = "contourpy-1.1.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f6aec19457617ef468ff091669cca01fa7ea557b12b59a7908b9474bb9674cf0"}, + {file = "contourpy-1.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:462c59914dc6d81e0b11f37e560b8a7c2dbab6aca4f38be31519d442d6cde1a1"}, + {file = "contourpy-1.1.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:6d0a8efc258659edc5299f9ef32d8d81de8b53b45d67bf4bfa3067f31366764d"}, + {file = "contourpy-1.1.1-cp310-cp310-win32.whl", hash = "sha256:d6ab42f223e58b7dac1bb0af32194a7b9311065583cc75ff59dcf301afd8a431"}, + {file = "contourpy-1.1.1-cp310-cp310-win_amd64.whl", hash = "sha256:549174b0713d49871c6dee90a4b499d3f12f5e5f69641cd23c50a4542e2ca1eb"}, + {file = "contourpy-1.1.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:407d864db716a067cc696d61fa1ef6637fedf03606e8417fe2aeed20a061e6b2"}, + {file = "contourpy-1.1.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:dfe80c017973e6a4c367e037cb31601044dd55e6bfacd57370674867d15a899b"}, + {file = "contourpy-1.1.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e30aaf2b8a2bac57eb7e1650df1b3a4130e8d0c66fc2f861039d507a11760e1b"}, + {file = "contourpy-1.1.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3de23ca4f381c3770dee6d10ead6fff524d540c0f662e763ad1530bde5112532"}, + {file = "contourpy-1.1.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:566f0e41df06dfef2431defcfaa155f0acfa1ca4acbf8fd80895b1e7e2ada40e"}, + {file = "contourpy-1.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b04c2f0adaf255bf756cf08ebef1be132d3c7a06fe6f9877d55640c5e60c72c5"}, + {file = "contourpy-1.1.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:d0c188ae66b772d9d61d43c6030500344c13e3f73a00d1dc241da896f379bb62"}, + {file = "contourpy-1.1.1-cp311-cp311-win32.whl", hash = "sha256:0683e1ae20dc038075d92e0e0148f09ffcefab120e57f6b4c9c0f477ec171f33"}, + {file = "contourpy-1.1.1-cp311-cp311-win_amd64.whl", hash = "sha256:8636cd2fc5da0fb102a2504fa2c4bea3cbc149533b345d72cdf0e7a924decc45"}, + {file = "contourpy-1.1.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:560f1d68a33e89c62da5da4077ba98137a5e4d3a271b29f2f195d0fba2adcb6a"}, + {file = "contourpy-1.1.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:24216552104ae8f3b34120ef84825400b16eb6133af2e27a190fdc13529f023e"}, + {file = "contourpy-1.1.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:56de98a2fb23025882a18b60c7f0ea2d2d70bbbcfcf878f9067234b1c4818442"}, + {file = "contourpy-1.1.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:07d6f11dfaf80a84c97f1a5ba50d129d9303c5b4206f776e94037332e298dda8"}, + {file = "contourpy-1.1.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f1eaac5257a8f8a047248d60e8f9315c6cff58f7803971170d952555ef6344a7"}, + {file = "contourpy-1.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:19557fa407e70f20bfaba7d55b4d97b14f9480856c4fb65812e8a05fe1c6f9bf"}, + {file = "contourpy-1.1.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:081f3c0880712e40effc5f4c3b08feca6d064cb8cfbb372ca548105b86fd6c3d"}, + {file = "contourpy-1.1.1-cp312-cp312-win32.whl", hash = "sha256:059c3d2a94b930f4dafe8105bcdc1b21de99b30b51b5bce74c753686de858cb6"}, + {file = "contourpy-1.1.1-cp312-cp312-win_amd64.whl", hash = "sha256:f44d78b61740e4e8c71db1cf1fd56d9050a4747681c59ec1094750a658ceb970"}, + {file = "contourpy-1.1.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:70e5a10f8093d228bb2b552beeb318b8928b8a94763ef03b858ef3612b29395d"}, + {file = "contourpy-1.1.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:8394e652925a18ef0091115e3cc191fef350ab6dc3cc417f06da66bf98071ae9"}, + {file = "contourpy-1.1.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c5bd5680f844c3ff0008523a71949a3ff5e4953eb7701b28760805bc9bcff217"}, + {file = "contourpy-1.1.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:66544f853bfa85c0d07a68f6c648b2ec81dafd30f272565c37ab47a33b220684"}, + {file = "contourpy-1.1.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e0c02b75acfea5cab07585d25069207e478d12309557f90a61b5a3b4f77f46ce"}, + {file = "contourpy-1.1.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:41339b24471c58dc1499e56783fedc1afa4bb018bcd035cfb0ee2ad2a7501ef8"}, + {file = "contourpy-1.1.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:f29fb0b3f1217dfe9362ec55440d0743fe868497359f2cf93293f4b2701b8251"}, + {file = "contourpy-1.1.1-cp38-cp38-win32.whl", hash = "sha256:f9dc7f933975367251c1b34da882c4f0e0b2e24bb35dc906d2f598a40b72bfc7"}, + {file = "contourpy-1.1.1-cp38-cp38-win_amd64.whl", hash = "sha256:498e53573e8b94b1caeb9e62d7c2d053c263ebb6aa259c81050766beb50ff8d9"}, + {file = "contourpy-1.1.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:ba42e3810999a0ddd0439e6e5dbf6d034055cdc72b7c5c839f37a7c274cb4eba"}, + {file = "contourpy-1.1.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:6c06e4c6e234fcc65435223c7b2a90f286b7f1b2733058bdf1345d218cc59e34"}, + {file = "contourpy-1.1.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ca6fab080484e419528e98624fb5c4282148b847e3602dc8dbe0cb0669469887"}, + {file = "contourpy-1.1.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:93df44ab351119d14cd1e6b52a5063d3336f0754b72736cc63db59307dabb718"}, + {file = "contourpy-1.1.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:eafbef886566dc1047d7b3d4b14db0d5b7deb99638d8e1be4e23a7c7ac59ff0f"}, + {file = "contourpy-1.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:efe0fab26d598e1ec07d72cf03eaeeba8e42b4ecf6b9ccb5a356fde60ff08b85"}, + {file = "contourpy-1.1.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:f08e469821a5e4751c97fcd34bcb586bc243c39c2e39321822060ba902eac49e"}, + {file = "contourpy-1.1.1-cp39-cp39-win32.whl", hash = "sha256:bfc8a5e9238232a45ebc5cb3bfee71f1167064c8d382cadd6076f0d51cff1da0"}, + {file = "contourpy-1.1.1-cp39-cp39-win_amd64.whl", hash = "sha256:c84fdf3da00c2827d634de4fcf17e3e067490c4aea82833625c4c8e6cdea0887"}, + {file = "contourpy-1.1.1-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:229a25f68046c5cf8067d6d6351c8b99e40da11b04d8416bf8d2b1d75922521e"}, + {file = "contourpy-1.1.1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a10dab5ea1bd4401c9483450b5b0ba5416be799bbd50fc7a6cc5e2a15e03e8a3"}, + {file = "contourpy-1.1.1-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:4f9147051cb8fdb29a51dc2482d792b3b23e50f8f57e3720ca2e3d438b7adf23"}, + {file = "contourpy-1.1.1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:a75cc163a5f4531a256f2c523bd80db509a49fc23721b36dd1ef2f60ff41c3cb"}, + {file = "contourpy-1.1.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b53d5769aa1f2d4ea407c65f2d1d08002952fac1d9e9d307aa2e1023554a163"}, + {file = "contourpy-1.1.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:11b836b7dbfb74e049c302bbf74b4b8f6cb9d0b6ca1bf86cfa8ba144aedadd9c"}, + {file = "contourpy-1.1.1.tar.gz", hash = "sha256:96ba37c2e24b7212a77da85004c38e7c4d155d3e72a45eeaf22c1f03f607e8ab"}, +] + +[package.dependencies] +numpy = [ + {version = ">=1.16,<2.0", markers = "python_version <= \"3.11\""}, + {version = ">=1.26.0rc1,<2.0", markers = "python_version >= \"3.12\""}, +] + +[package.extras] +bokeh = ["bokeh", "selenium"] +docs = ["furo", "sphinx (>=7.2)", "sphinx-copybutton"] +mypy = ["contourpy[bokeh,docs]", "docutils-stubs", "mypy (==1.4.1)", "types-Pillow"] +test = ["Pillow", "contourpy[test-no-images]", "matplotlib"] +test-no-images = ["pytest", "pytest-cov", "wurlitzer"] + +[[package]] +name = "coverage" +version = "7.3.2" +description = "Code coverage measurement for Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "coverage-7.3.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d872145f3a3231a5f20fd48500274d7df222e291d90baa2026cc5152b7ce86bf"}, + {file = "coverage-7.3.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:310b3bb9c91ea66d59c53fa4989f57d2436e08f18fb2f421a1b0b6b8cc7fffda"}, + {file = "coverage-7.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f47d39359e2c3779c5331fc740cf4bce6d9d680a7b4b4ead97056a0ae07cb49a"}, + {file = "coverage-7.3.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:aa72dbaf2c2068404b9870d93436e6d23addd8bbe9295f49cbca83f6e278179c"}, + {file = "coverage-7.3.2-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:beaa5c1b4777f03fc63dfd2a6bd820f73f036bfb10e925fce067b00a340d0f3f"}, + {file = "coverage-7.3.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:dbc1b46b92186cc8074fee9d9fbb97a9dd06c6cbbef391c2f59d80eabdf0faa6"}, + {file = "coverage-7.3.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:315a989e861031334d7bee1f9113c8770472db2ac484e5b8c3173428360a9148"}, + {file = "coverage-7.3.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:d1bc430677773397f64a5c88cb522ea43175ff16f8bfcc89d467d974cb2274f9"}, + {file = "coverage-7.3.2-cp310-cp310-win32.whl", hash = "sha256:a889ae02f43aa45032afe364c8ae84ad3c54828c2faa44f3bfcafecb5c96b02f"}, + {file = "coverage-7.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:c0ba320de3fb8c6ec16e0be17ee1d3d69adcda99406c43c0409cb5c41788a611"}, + {file = "coverage-7.3.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ac8c802fa29843a72d32ec56d0ca792ad15a302b28ca6203389afe21f8fa062c"}, + {file = "coverage-7.3.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:89a937174104339e3a3ffcf9f446c00e3a806c28b1841c63edb2b369310fd074"}, + {file = "coverage-7.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e267e9e2b574a176ddb983399dec325a80dbe161f1a32715c780b5d14b5f583a"}, + {file = "coverage-7.3.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2443cbda35df0d35dcfb9bf8f3c02c57c1d6111169e3c85fc1fcc05e0c9f39a3"}, + {file = "coverage-7.3.2-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4175e10cc8dda0265653e8714b3174430b07c1dca8957f4966cbd6c2b1b8065a"}, + {file = "coverage-7.3.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:0cbf38419fb1a347aaf63481c00f0bdc86889d9fbf3f25109cf96c26b403fda1"}, + {file = "coverage-7.3.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:5c913b556a116b8d5f6ef834038ba983834d887d82187c8f73dec21049abd65c"}, + {file = "coverage-7.3.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:1981f785239e4e39e6444c63a98da3a1db8e971cb9ceb50a945ba6296b43f312"}, + {file = "coverage-7.3.2-cp311-cp311-win32.whl", hash = "sha256:43668cabd5ca8258f5954f27a3aaf78757e6acf13c17604d89648ecc0cc66640"}, + {file = "coverage-7.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:e10c39c0452bf6e694511c901426d6b5ac005acc0f78ff265dbe36bf81f808a2"}, + {file = "coverage-7.3.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:4cbae1051ab791debecc4a5dcc4a1ff45fc27b91b9aee165c8a27514dd160836"}, + {file = "coverage-7.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:12d15ab5833a997716d76f2ac1e4b4d536814fc213c85ca72756c19e5a6b3d63"}, + {file = "coverage-7.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3c7bba973ebee5e56fe9251300c00f1579652587a9f4a5ed8404b15a0471f216"}, + {file = "coverage-7.3.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fe494faa90ce6381770746077243231e0b83ff3f17069d748f645617cefe19d4"}, + {file = "coverage-7.3.2-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f6e9589bd04d0461a417562649522575d8752904d35c12907d8c9dfeba588faf"}, + {file = "coverage-7.3.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d51ac2a26f71da1b57f2dc81d0e108b6ab177e7d30e774db90675467c847bbdf"}, + {file = "coverage-7.3.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:99b89d9f76070237975b315b3d5f4d6956ae354a4c92ac2388a5695516e47c84"}, + {file = "coverage-7.3.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:fa28e909776dc69efb6ed975a63691bc8172b64ff357e663a1bb06ff3c9b589a"}, + {file = "coverage-7.3.2-cp312-cp312-win32.whl", hash = "sha256:289fe43bf45a575e3ab10b26d7b6f2ddb9ee2dba447499f5401cfb5ecb8196bb"}, + {file = "coverage-7.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:7dbc3ed60e8659bc59b6b304b43ff9c3ed858da2839c78b804973f613d3e92ed"}, + {file = "coverage-7.3.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:f94b734214ea6a36fe16e96a70d941af80ff3bfd716c141300d95ebc85339738"}, + {file = "coverage-7.3.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:af3d828d2c1cbae52d34bdbb22fcd94d1ce715d95f1a012354a75e5913f1bda2"}, + {file = "coverage-7.3.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:630b13e3036e13c7adc480ca42fa7afc2a5d938081d28e20903cf7fd687872e2"}, + {file = "coverage-7.3.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c9eacf273e885b02a0273bb3a2170f30e2d53a6d53b72dbe02d6701b5296101c"}, + {file = "coverage-7.3.2-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d8f17966e861ff97305e0801134e69db33b143bbfb36436efb9cfff6ec7b2fd9"}, + {file = "coverage-7.3.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:b4275802d16882cf9c8b3d057a0839acb07ee9379fa2749eca54efbce1535b82"}, + {file = "coverage-7.3.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:72c0cfa5250f483181e677ebc97133ea1ab3eb68645e494775deb6a7f6f83901"}, + {file = "coverage-7.3.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:cb536f0dcd14149425996821a168f6e269d7dcd2c273a8bff8201e79f5104e76"}, + {file = "coverage-7.3.2-cp38-cp38-win32.whl", hash = "sha256:307adb8bd3abe389a471e649038a71b4eb13bfd6b7dd9a129fa856f5c695cf92"}, + {file = "coverage-7.3.2-cp38-cp38-win_amd64.whl", hash = "sha256:88ed2c30a49ea81ea3b7f172e0269c182a44c236eb394718f976239892c0a27a"}, + {file = "coverage-7.3.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b631c92dfe601adf8f5ebc7fc13ced6bb6e9609b19d9a8cd59fa47c4186ad1ce"}, + {file = "coverage-7.3.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:d3d9df4051c4a7d13036524b66ecf7a7537d14c18a384043f30a303b146164e9"}, + {file = "coverage-7.3.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5f7363d3b6a1119ef05015959ca24a9afc0ea8a02c687fe7e2d557705375c01f"}, + {file = "coverage-7.3.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2f11cc3c967a09d3695d2a6f03fb3e6236622b93be7a4b5dc09166a861be6d25"}, + {file = "coverage-7.3.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:149de1d2401ae4655c436a3dced6dd153f4c3309f599c3d4bd97ab172eaf02d9"}, + {file = "coverage-7.3.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:3a4006916aa6fee7cd38db3bfc95aa9c54ebb4ffbfc47c677c8bba949ceba0a6"}, + {file = "coverage-7.3.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9028a3871280110d6e1aa2df1afd5ef003bab5fb1ef421d6dc748ae1c8ef2ebc"}, + {file = "coverage-7.3.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:9f805d62aec8eb92bab5b61c0f07329275b6f41c97d80e847b03eb894f38d083"}, + {file = "coverage-7.3.2-cp39-cp39-win32.whl", hash = "sha256:d1c88ec1a7ff4ebca0219f5b1ef863451d828cccf889c173e1253aa84b1e07ce"}, + {file = "coverage-7.3.2-cp39-cp39-win_amd64.whl", hash = "sha256:b4767da59464bb593c07afceaddea61b154136300881844768037fd5e859353f"}, + {file = "coverage-7.3.2-pp38.pp39.pp310-none-any.whl", hash = "sha256:ae97af89f0fbf373400970c0a21eef5aa941ffeed90aee43650b81f7d7f47637"}, + {file = "coverage-7.3.2.tar.gz", hash = "sha256:be32ad29341b0170e795ca590e1c07e81fc061cb5b10c74ce7203491484404ef"}, +] + +[package.dependencies] +tomli = {version = "*", optional = true, markers = "python_full_version <= \"3.11.0a6\" and extra == \"toml\""} + +[package.extras] +toml = ["tomli"] + +[[package]] +name = "cycler" +version = "0.12.1" +description = "Composable style cycles" +optional = false +python-versions = ">=3.8" +files = [ + {file = "cycler-0.12.1-py3-none-any.whl", hash = "sha256:85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30"}, + {file = "cycler-0.12.1.tar.gz", hash = "sha256:88bb128f02ba341da8ef447245a9e138fae777f6a23943da4540077d3601eb1c"}, +] + +[package.extras] +docs = ["ipython", "matplotlib", "numpydoc", "sphinx"] +tests = ["pytest", "pytest-cov", "pytest-xdist"] + +[[package]] +name = "docutils" +version = "0.20.1" +description = "Docutils -- Python Documentation Utilities" +optional = false +python-versions = ">=3.7" +files = [ + {file = "docutils-0.20.1-py3-none-any.whl", hash = "sha256:96f387a2c5562db4476f09f13bbab2192e764cac08ebbf3a34a95d9b1e4a59d6"}, + {file = "docutils-0.20.1.tar.gz", hash = "sha256:f08a4e276c3a1583a86dce3e34aba3fe04d02bba2dd51ed16106244e8a923e3b"}, +] + +[[package]] +name = "et-xmlfile" +version = "1.1.0" +description = "An implementation of lxml.xmlfile for the standard library" +optional = false +python-versions = ">=3.6" +files = [ + {file = "et_xmlfile-1.1.0-py3-none-any.whl", hash = "sha256:a2ba85d1d6a74ef63837eed693bcb89c3f752169b0e3e7ae5b16ca5e1b3deada"}, + {file = "et_xmlfile-1.1.0.tar.gz", hash = "sha256:8eb9e2bc2f8c97e37a2dc85a09ecdcdec9d8a396530a6d5a33b30b9a92da0c5c"}, +] + +[[package]] +name = "exceptiongroup" +version = "1.1.3" +description = "Backport of PEP 654 (exception groups)" +optional = false +python-versions = ">=3.7" +files = [ + {file = "exceptiongroup-1.1.3-py3-none-any.whl", hash = "sha256:343280667a4585d195ca1cf9cef84a4e178c4b6cf2274caef9859782b567d5e3"}, + {file = "exceptiongroup-1.1.3.tar.gz", hash = "sha256:097acd85d473d75af5bb98e41b61ff7fe35efe6675e4f9370ec6ec5126d160e9"}, +] + +[package.extras] +test = ["pytest (>=6)"] + +[[package]] +name = "fonttools" +version = "4.43.1" +description = "Tools to manipulate font files" +optional = false +python-versions = ">=3.8" +files = [ + {file = "fonttools-4.43.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:bf11e2cca121df35e295bd34b309046c29476ee739753bc6bc9d5050de319273"}, + {file = "fonttools-4.43.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:10b3922875ffcba636674f406f9ab9a559564fdbaa253d66222019d569db869c"}, + {file = "fonttools-4.43.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9f727c3e3d08fd25352ed76cc3cb61486f8ed3f46109edf39e5a60fc9fecf6ca"}, + {file = "fonttools-4.43.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ad0b3f6342cfa14be996971ea2b28b125ad681c6277c4cd0fbdb50340220dfb6"}, + {file = "fonttools-4.43.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:3b7ad05b2beeebafb86aa01982e9768d61c2232f16470f9d0d8e385798e37184"}, + {file = "fonttools-4.43.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:4c54466f642d2116686268c3e5f35ebb10e49b0d48d41a847f0e171c785f7ac7"}, + {file = "fonttools-4.43.1-cp310-cp310-win32.whl", hash = "sha256:1e09da7e8519e336239fbd375156488a4c4945f11c4c5792ee086dd84f784d02"}, + {file = "fonttools-4.43.1-cp310-cp310-win_amd64.whl", hash = "sha256:1cf9e974f63b1080b1d2686180fc1fbfd3bfcfa3e1128695b5de337eb9075cef"}, + {file = "fonttools-4.43.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:5db46659cfe4e321158de74c6f71617e65dc92e54980086823a207f1c1c0e24b"}, + {file = "fonttools-4.43.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1952c89a45caceedf2ab2506d9a95756e12b235c7182a7a0fff4f5e52227204f"}, + {file = "fonttools-4.43.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9c36da88422e0270fbc7fd959dc9749d31a958506c1d000e16703c2fce43e3d0"}, + {file = "fonttools-4.43.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7bbbf8174501285049e64d174e29f9578495e1b3b16c07c31910d55ad57683d8"}, + {file = "fonttools-4.43.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:d4071bd1c183b8d0b368cc9ed3c07a0f6eb1bdfc4941c4c024c49a35429ac7cd"}, + {file = "fonttools-4.43.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:d21099b411e2006d3c3e1f9aaf339e12037dbf7bf9337faf0e93ec915991f43b"}, + {file = "fonttools-4.43.1-cp311-cp311-win32.whl", hash = "sha256:b84a1c00f832feb9d0585ca8432fba104c819e42ff685fcce83537e2e7e91204"}, + {file = "fonttools-4.43.1-cp311-cp311-win_amd64.whl", hash = "sha256:9a2f0aa6ca7c9bc1058a9d0b35483d4216e0c1bbe3962bc62ce112749954c7b8"}, + {file = "fonttools-4.43.1-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:4d9740e3783c748521e77d3c397dc0662062c88fd93600a3c2087d3d627cd5e5"}, + {file = "fonttools-4.43.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:884ef38a5a2fd47b0c1291647b15f4e88b9de5338ffa24ee52c77d52b4dfd09c"}, + {file = "fonttools-4.43.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9648518ef687ba818db3fcc5d9aae27a369253ac09a81ed25c3867e8657a0680"}, + {file = "fonttools-4.43.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:95e974d70238fc2be5f444fa91f6347191d0e914d5d8ae002c9aa189572cc215"}, + {file = "fonttools-4.43.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:34f713dad41aa21c637b4e04fe507c36b986a40f7179dcc86402237e2d39dcd3"}, + {file = "fonttools-4.43.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:360201d46165fc0753229afe785900bc9596ee6974833124f4e5e9f98d0f592b"}, + {file = "fonttools-4.43.1-cp312-cp312-win32.whl", hash = "sha256:bb6d2f8ef81ea076877d76acfb6f9534a9c5f31dc94ba70ad001267ac3a8e56f"}, + {file = "fonttools-4.43.1-cp312-cp312-win_amd64.whl", hash = "sha256:25d3da8a01442cbc1106490eddb6d31d7dffb38c1edbfabbcc8db371b3386d72"}, + {file = "fonttools-4.43.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:8da417431bfc9885a505e86ba706f03f598c85f5a9c54f67d63e84b9948ce590"}, + {file = "fonttools-4.43.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:51669b60ee2a4ad6c7fc17539a43ffffc8ef69fd5dbed186a38a79c0ac1f5db7"}, + {file = "fonttools-4.43.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:748015d6f28f704e7d95cd3c808b483c5fb87fd3eefe172a9da54746ad56bfb6"}, + {file = "fonttools-4.43.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f7a58eb5e736d7cf198eee94844b81c9573102ae5989ebcaa1d1a37acd04b33d"}, + {file = "fonttools-4.43.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:6bb5ea9076e0e39defa2c325fc086593ae582088e91c0746bee7a5a197be3da0"}, + {file = "fonttools-4.43.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:5f37e31291bf99a63328668bb83b0669f2688f329c4c0d80643acee6e63cd933"}, + {file = "fonttools-4.43.1-cp38-cp38-win32.whl", hash = "sha256:9c60ecfa62839f7184f741d0509b5c039d391c3aff71dc5bc57b87cc305cff3b"}, + {file = "fonttools-4.43.1-cp38-cp38-win_amd64.whl", hash = "sha256:fe9b1ec799b6086460a7480e0f55c447b1aca0a4eecc53e444f639e967348896"}, + {file = "fonttools-4.43.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:13a9a185259ed144def3682f74fdcf6596f2294e56fe62dfd2be736674500dba"}, + {file = "fonttools-4.43.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b2adca1b46d69dce4a37eecc096fe01a65d81a2f5c13b25ad54d5430ae430b13"}, + {file = "fonttools-4.43.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:18eefac1b247049a3a44bcd6e8c8fd8b97f3cad6f728173b5d81dced12d6c477"}, + {file = "fonttools-4.43.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2062542a7565091cea4cc14dd99feff473268b5b8afdee564f7067dd9fff5860"}, + {file = "fonttools-4.43.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:18a2477c62a728f4d6e88c45ee9ee0229405e7267d7d79ce1f5ce0f3e9f8ab86"}, + {file = "fonttools-4.43.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a7a06f8d95b7496e53af80d974d63516ffb263a468e614978f3899a6df52d4b3"}, + {file = "fonttools-4.43.1-cp39-cp39-win32.whl", hash = "sha256:10003ebd81fec0192c889e63a9c8c63f88c7d72ae0460b7ba0cd2a1db246e5ad"}, + {file = "fonttools-4.43.1-cp39-cp39-win_amd64.whl", hash = "sha256:e117a92b07407a061cde48158c03587ab97e74e7d73cb65e6aadb17af191162a"}, + {file = "fonttools-4.43.1-py3-none-any.whl", hash = "sha256:4f88cae635bfe4bbbdc29d479a297bb525a94889184bb69fa9560c2d4834ddb9"}, + {file = "fonttools-4.43.1.tar.gz", hash = "sha256:17dbc2eeafb38d5d0e865dcce16e313c58265a6d2d20081c435f84dc5a9d8212"}, +] + +[package.extras] +all = ["brotli (>=1.0.1)", "brotlicffi (>=0.8.0)", "fs (>=2.2.0,<3)", "lxml (>=4.0,<5)", "lz4 (>=1.7.4.2)", "matplotlib", "munkres", "scipy", "skia-pathops (>=0.5.0)", "sympy", "uharfbuzz (>=0.23.0)", "unicodedata2 (>=15.0.0)", "xattr", "zopfli (>=0.1.4)"] +graphite = ["lz4 (>=1.7.4.2)"] +interpolatable = ["munkres", "scipy"] +lxml = ["lxml (>=4.0,<5)"] +pathops = ["skia-pathops (>=0.5.0)"] +plot = ["matplotlib"] +repacker = ["uharfbuzz (>=0.23.0)"] +symfont = ["sympy"] +type1 = ["xattr"] +ufo = ["fs (>=2.2.0,<3)"] +unicode = ["unicodedata2 (>=15.0.0)"] +woff = ["brotli (>=1.0.1)", "brotlicffi (>=0.8.0)", "zopfli (>=0.1.4)"] + +[[package]] +name = "idna" +version = "3.4" +description = "Internationalized Domain Names in Applications (IDNA)" +optional = false +python-versions = ">=3.5" +files = [ + {file = "idna-3.4-py3-none-any.whl", hash = "sha256:90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2"}, + {file = "idna-3.4.tar.gz", hash = "sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4"}, +] + +[[package]] +name = "imagesize" +version = "1.4.1" +description = "Getting image size from png/jpeg/jpeg2000/gif file" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +files = [ + {file = "imagesize-1.4.1-py2.py3-none-any.whl", hash = "sha256:0d8d18d08f840c19d0ee7ca1fd82490fdc3729b7ac93f49870406ddde8ef8d8b"}, + {file = "imagesize-1.4.1.tar.gz", hash = "sha256:69150444affb9cb0d5cc5a92b3676f0b2fb7cd9ae39e947a5e11a36b4497cd4a"}, +] + +[[package]] +name = "importlib-metadata" +version = "6.8.0" +description = "Read metadata from Python packages" +optional = false +python-versions = ">=3.8" +files = [ + {file = "importlib_metadata-6.8.0-py3-none-any.whl", hash = "sha256:3ebb78df84a805d7698245025b975d9d67053cd94c79245ba4b3eb694abe68bb"}, + {file = "importlib_metadata-6.8.0.tar.gz", hash = "sha256:dbace7892d8c0c4ac1ad096662232f831d4e64f4c4545bd53016a3e9d4654743"}, +] + +[package.dependencies] +zipp = ">=0.5" + +[package.extras] +docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] +perf = ["ipython"] +testing = ["flufl.flake8", "importlib-resources (>=1.3)", "packaging", "pyfakefs", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy (>=0.9.1)", "pytest-perf (>=0.9.2)", "pytest-ruff"] + +[[package]] +name = "importlib-resources" +version = "6.1.0" +description = "Read resources from Python packages" +optional = false +python-versions = ">=3.8" +files = [ + {file = "importlib_resources-6.1.0-py3-none-any.whl", hash = "sha256:aa50258bbfa56d4e33fbd8aa3ef48ded10d1735f11532b8df95388cc6bdb7e83"}, + {file = "importlib_resources-6.1.0.tar.gz", hash = "sha256:9d48dcccc213325e810fd723e7fbb45ccb39f6cf5c31f00cf2b965f5f10f3cb9"}, +] + +[package.dependencies] +zipp = {version = ">=3.1.0", markers = "python_version < \"3.10\""} + +[package.extras] +docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (<7.2.5)", "sphinx (>=3.5)", "sphinx-lint"] +testing = ["pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy (>=0.9.1)", "pytest-ruff", "zipp (>=3.17)"] + +[[package]] +name = "iniconfig" +version = "2.0.0" +description = "brain-dead simple config-ini parsing" +optional = false +python-versions = ">=3.7" +files = [ + {file = "iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374"}, + {file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"}, +] + +[[package]] +name = "jinja2" +version = "3.1.2" +description = "A very fast and expressive template engine." +optional = false +python-versions = ">=3.7" +files = [ + {file = "Jinja2-3.1.2-py3-none-any.whl", hash = "sha256:6088930bfe239f0e6710546ab9c19c9ef35e29792895fed6e6e31a023a182a61"}, + {file = "Jinja2-3.1.2.tar.gz", hash = "sha256:31351a702a408a9e7595a8fc6150fc3f43bb6bf7e319770cbc0db9df9437e852"}, +] + +[package.dependencies] +MarkupSafe = ">=2.0" + +[package.extras] +i18n = ["Babel (>=2.7)"] + +[[package]] +name = "kiwisolver" +version = "1.4.5" +description = "A fast implementation of the Cassowary constraint solver" +optional = false +python-versions = ">=3.7" +files = [ + {file = "kiwisolver-1.4.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:05703cf211d585109fcd72207a31bb170a0f22144d68298dc5e61b3c946518af"}, + {file = "kiwisolver-1.4.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:146d14bebb7f1dc4d5fbf74f8a6cb15ac42baadee8912eb84ac0b3b2a3dc6ac3"}, + {file = "kiwisolver-1.4.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6ef7afcd2d281494c0a9101d5c571970708ad911d028137cd558f02b851c08b4"}, + {file = "kiwisolver-1.4.5-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:9eaa8b117dc8337728e834b9c6e2611f10c79e38f65157c4c38e9400286f5cb1"}, + {file = "kiwisolver-1.4.5-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:ec20916e7b4cbfb1f12380e46486ec4bcbaa91a9c448b97023fde0d5bbf9e4ff"}, + {file = "kiwisolver-1.4.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:39b42c68602539407884cf70d6a480a469b93b81b7701378ba5e2328660c847a"}, + {file = "kiwisolver-1.4.5-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aa12042de0171fad672b6c59df69106d20d5596e4f87b5e8f76df757a7c399aa"}, + {file = "kiwisolver-1.4.5-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2a40773c71d7ccdd3798f6489aaac9eee213d566850a9533f8d26332d626b82c"}, + {file = "kiwisolver-1.4.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:19df6e621f6d8b4b9c4d45f40a66839294ff2bb235e64d2178f7522d9170ac5b"}, + {file = "kiwisolver-1.4.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:83d78376d0d4fd884e2c114d0621624b73d2aba4e2788182d286309ebdeed770"}, + {file = "kiwisolver-1.4.5-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:e391b1f0a8a5a10ab3b9bb6afcfd74f2175f24f8975fb87ecae700d1503cdee0"}, + {file = "kiwisolver-1.4.5-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:852542f9481f4a62dbb5dd99e8ab7aedfeb8fb6342349a181d4036877410f525"}, + {file = "kiwisolver-1.4.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:59edc41b24031bc25108e210c0def6f6c2191210492a972d585a06ff246bb79b"}, + {file = "kiwisolver-1.4.5-cp310-cp310-win32.whl", hash = "sha256:a6aa6315319a052b4ee378aa171959c898a6183f15c1e541821c5c59beaa0238"}, + {file = "kiwisolver-1.4.5-cp310-cp310-win_amd64.whl", hash = "sha256:d0ef46024e6a3d79c01ff13801cb19d0cad7fd859b15037aec74315540acc276"}, + {file = "kiwisolver-1.4.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:11863aa14a51fd6ec28688d76f1735f8f69ab1fabf388851a595d0721af042f5"}, + {file = "kiwisolver-1.4.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:8ab3919a9997ab7ef2fbbed0cc99bb28d3c13e6d4b1ad36e97e482558a91be90"}, + {file = "kiwisolver-1.4.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:fcc700eadbbccbf6bc1bcb9dbe0786b4b1cb91ca0dcda336eef5c2beed37b797"}, + {file = "kiwisolver-1.4.5-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dfdd7c0b105af050eb3d64997809dc21da247cf44e63dc73ff0fd20b96be55a9"}, + {file = "kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:76c6a5964640638cdeaa0c359382e5703e9293030fe730018ca06bc2010c4437"}, + {file = "kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bbea0db94288e29afcc4c28afbf3a7ccaf2d7e027489c449cf7e8f83c6346eb9"}, + {file = "kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ceec1a6bc6cab1d6ff5d06592a91a692f90ec7505d6463a88a52cc0eb58545da"}, + {file = "kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:040c1aebeda72197ef477a906782b5ab0d387642e93bda547336b8957c61022e"}, + {file = "kiwisolver-1.4.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:f91de7223d4c7b793867797bacd1ee53bfe7359bd70d27b7b58a04efbb9436c8"}, + {file = "kiwisolver-1.4.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:faae4860798c31530dd184046a900e652c95513796ef51a12bc086710c2eec4d"}, + {file = "kiwisolver-1.4.5-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:b0157420efcb803e71d1b28e2c287518b8808b7cf1ab8af36718fd0a2c453eb0"}, + {file = "kiwisolver-1.4.5-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:06f54715b7737c2fecdbf140d1afb11a33d59508a47bf11bb38ecf21dc9ab79f"}, + {file = "kiwisolver-1.4.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:fdb7adb641a0d13bdcd4ef48e062363d8a9ad4a182ac7647ec88f695e719ae9f"}, + {file = "kiwisolver-1.4.5-cp311-cp311-win32.whl", hash = "sha256:bb86433b1cfe686da83ce32a9d3a8dd308e85c76b60896d58f082136f10bffac"}, + {file = "kiwisolver-1.4.5-cp311-cp311-win_amd64.whl", hash = "sha256:6c08e1312a9cf1074d17b17728d3dfce2a5125b2d791527f33ffbe805200a355"}, + {file = "kiwisolver-1.4.5-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:32d5cf40c4f7c7b3ca500f8985eb3fb3a7dfc023215e876f207956b5ea26632a"}, + {file = "kiwisolver-1.4.5-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:f846c260f483d1fd217fe5ed7c173fb109efa6b1fc8381c8b7552c5781756192"}, + {file = "kiwisolver-1.4.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5ff5cf3571589b6d13bfbfd6bcd7a3f659e42f96b5fd1c4830c4cf21d4f5ef45"}, + {file = "kiwisolver-1.4.5-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7269d9e5f1084a653d575c7ec012ff57f0c042258bf5db0954bf551c158466e7"}, + {file = "kiwisolver-1.4.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da802a19d6e15dffe4b0c24b38b3af68e6c1a68e6e1d8f30148c83864f3881db"}, + {file = "kiwisolver-1.4.5-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3aba7311af82e335dd1e36ffff68aaca609ca6290c2cb6d821a39aa075d8e3ff"}, + {file = "kiwisolver-1.4.5-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:763773d53f07244148ccac5b084da5adb90bfaee39c197554f01b286cf869228"}, + {file = "kiwisolver-1.4.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2270953c0d8cdab5d422bee7d2007f043473f9d2999631c86a223c9db56cbd16"}, + {file = "kiwisolver-1.4.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d099e745a512f7e3bbe7249ca835f4d357c586d78d79ae8f1dcd4d8adeb9bda9"}, + {file = "kiwisolver-1.4.5-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:74db36e14a7d1ce0986fa104f7d5637aea5c82ca6326ed0ec5694280942d1162"}, + {file = "kiwisolver-1.4.5-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:7e5bab140c309cb3a6ce373a9e71eb7e4873c70c2dda01df6820474f9889d6d4"}, + {file = "kiwisolver-1.4.5-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:0f114aa76dc1b8f636d077979c0ac22e7cd8f3493abbab152f20eb8d3cda71f3"}, + {file = "kiwisolver-1.4.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:88a2df29d4724b9237fc0c6eaf2a1adae0cdc0b3e9f4d8e7dc54b16812d2d81a"}, + {file = "kiwisolver-1.4.5-cp312-cp312-win32.whl", hash = "sha256:72d40b33e834371fd330fb1472ca19d9b8327acb79a5821d4008391db8e29f20"}, + {file = "kiwisolver-1.4.5-cp312-cp312-win_amd64.whl", hash = "sha256:2c5674c4e74d939b9d91dda0fae10597ac7521768fec9e399c70a1f27e2ea2d9"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:3a2b053a0ab7a3960c98725cfb0bf5b48ba82f64ec95fe06f1d06c99b552e130"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3cd32d6c13807e5c66a7cbb79f90b553642f296ae4518a60d8d76243b0ad2898"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:59ec7b7c7e1a61061850d53aaf8e93db63dce0c936db1fda2658b70e4a1be709"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:da4cfb373035def307905d05041c1d06d8936452fe89d464743ae7fb8371078b"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2400873bccc260b6ae184b2b8a4fec0e4082d30648eadb7c3d9a13405d861e89"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:1b04139c4236a0f3aff534479b58f6f849a8b351e1314826c2d230849ed48985"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:4e66e81a5779b65ac21764c295087de82235597a2293d18d943f8e9e32746265"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:7931d8f1f67c4be9ba1dd9c451fb0eeca1a25b89e4d3f89e828fe12a519b782a"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:b3f7e75f3015df442238cca659f8baa5f42ce2a8582727981cbfa15fee0ee205"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:bbf1d63eef84b2e8c89011b7f2235b1e0bf7dacc11cac9431fc6468e99ac77fb"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:4c380469bd3f970ef677bf2bcba2b6b0b4d5c75e7a020fb863ef75084efad66f"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-win32.whl", hash = "sha256:9408acf3270c4b6baad483865191e3e582b638b1654a007c62e3efe96f09a9a3"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-win_amd64.whl", hash = "sha256:5b94529f9b2591b7af5f3e0e730a4e0a41ea174af35a4fd067775f9bdfeee01a"}, + {file = "kiwisolver-1.4.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:11c7de8f692fc99816e8ac50d1d1aef4f75126eefc33ac79aac02c099fd3db71"}, + {file = "kiwisolver-1.4.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:53abb58632235cd154176ced1ae8f0d29a6657aa1aa9decf50b899b755bc2b93"}, + {file = "kiwisolver-1.4.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:88b9f257ca61b838b6f8094a62418421f87ac2a1069f7e896c36a7d86b5d4c29"}, + {file = "kiwisolver-1.4.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3195782b26fc03aa9c6913d5bad5aeb864bdc372924c093b0f1cebad603dd712"}, + {file = "kiwisolver-1.4.5-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fc579bf0f502e54926519451b920e875f433aceb4624a3646b3252b5caa9e0b6"}, + {file = "kiwisolver-1.4.5-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5a580c91d686376f0f7c295357595c5a026e6cbc3d77b7c36e290201e7c11ecb"}, + {file = "kiwisolver-1.4.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:cfe6ab8da05c01ba6fbea630377b5da2cd9bcbc6338510116b01c1bc939a2c18"}, + {file = "kiwisolver-1.4.5-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:d2e5a98f0ec99beb3c10e13b387f8db39106d53993f498b295f0c914328b1333"}, + {file = "kiwisolver-1.4.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:a51a263952b1429e429ff236d2f5a21c5125437861baeed77f5e1cc2d2c7c6da"}, + {file = "kiwisolver-1.4.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:3edd2fa14e68c9be82c5b16689e8d63d89fe927e56debd6e1dbce7a26a17f81b"}, + {file = "kiwisolver-1.4.5-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:74d1b44c6cfc897df648cc9fdaa09bc3e7679926e6f96df05775d4fb3946571c"}, + {file = "kiwisolver-1.4.5-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:76d9289ed3f7501012e05abb8358bbb129149dbd173f1f57a1bf1c22d19ab7cc"}, + {file = "kiwisolver-1.4.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:92dea1ffe3714fa8eb6a314d2b3c773208d865a0e0d35e713ec54eea08a66250"}, + {file = "kiwisolver-1.4.5-cp38-cp38-win32.whl", hash = "sha256:5c90ae8c8d32e472be041e76f9d2f2dbff4d0b0be8bd4041770eddb18cf49a4e"}, + {file = "kiwisolver-1.4.5-cp38-cp38-win_amd64.whl", hash = "sha256:c7940c1dc63eb37a67721b10d703247552416f719c4188c54e04334321351ced"}, + {file = "kiwisolver-1.4.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:9407b6a5f0d675e8a827ad8742e1d6b49d9c1a1da5d952a67d50ef5f4170b18d"}, + {file = "kiwisolver-1.4.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:15568384086b6df3c65353820a4473575dbad192e35010f622c6ce3eebd57af9"}, + {file = "kiwisolver-1.4.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:0dc9db8e79f0036e8173c466d21ef18e1befc02de8bf8aa8dc0813a6dc8a7046"}, + {file = "kiwisolver-1.4.5-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:cdc8a402aaee9a798b50d8b827d7ecf75edc5fb35ea0f91f213ff927c15f4ff0"}, + {file = "kiwisolver-1.4.5-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:6c3bd3cde54cafb87d74d8db50b909705c62b17c2099b8f2e25b461882e544ff"}, + {file = "kiwisolver-1.4.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:955e8513d07a283056b1396e9a57ceddbd272d9252c14f154d450d227606eb54"}, + {file = "kiwisolver-1.4.5-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:346f5343b9e3f00b8db8ba359350eb124b98c99efd0b408728ac6ebf38173958"}, + {file = "kiwisolver-1.4.5-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b9098e0049e88c6a24ff64545cdfc50807818ba6c1b739cae221bbbcbc58aad3"}, + {file = "kiwisolver-1.4.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:00bd361b903dc4bbf4eb165f24d1acbee754fce22ded24c3d56eec268658a5cf"}, + {file = "kiwisolver-1.4.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:7b8b454bac16428b22560d0a1cf0a09875339cab69df61d7805bf48919415901"}, + {file = "kiwisolver-1.4.5-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:f1d072c2eb0ad60d4c183f3fb44ac6f73fb7a8f16a2694a91f988275cbf352f9"}, + {file = "kiwisolver-1.4.5-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:31a82d498054cac9f6d0b53d02bb85811185bcb477d4b60144f915f3b3126342"}, + {file = "kiwisolver-1.4.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:6512cb89e334e4700febbffaaa52761b65b4f5a3cf33f960213d5656cea36a77"}, + {file = "kiwisolver-1.4.5-cp39-cp39-win32.whl", hash = "sha256:9db8ea4c388fdb0f780fe91346fd438657ea602d58348753d9fb265ce1bca67f"}, + {file = "kiwisolver-1.4.5-cp39-cp39-win_amd64.whl", hash = "sha256:59415f46a37f7f2efeec758353dd2eae1b07640d8ca0f0c42548ec4125492635"}, + {file = "kiwisolver-1.4.5-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:5c7b3b3a728dc6faf3fc372ef24f21d1e3cee2ac3e9596691d746e5a536de920"}, + {file = "kiwisolver-1.4.5-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:620ced262a86244e2be10a676b646f29c34537d0d9cc8eb26c08f53d98013390"}, + {file = "kiwisolver-1.4.5-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:378a214a1e3bbf5ac4a8708304318b4f890da88c9e6a07699c4ae7174c09a68d"}, + {file = "kiwisolver-1.4.5-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aaf7be1207676ac608a50cd08f102f6742dbfc70e8d60c4db1c6897f62f71523"}, + {file = "kiwisolver-1.4.5-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:ba55dce0a9b8ff59495ddd050a0225d58bd0983d09f87cfe2b6aec4f2c1234e4"}, + {file = "kiwisolver-1.4.5-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:fd32ea360bcbb92d28933fc05ed09bffcb1704ba3fc7942e81db0fd4f81a7892"}, + {file = "kiwisolver-1.4.5-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:5e7139af55d1688f8b960ee9ad5adafc4ac17c1c473fe07133ac092310d76544"}, + {file = "kiwisolver-1.4.5-pp38-pypy38_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:dced8146011d2bc2e883f9bd68618b8247387f4bbec46d7392b3c3b032640126"}, + {file = "kiwisolver-1.4.5-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c9bf3325c47b11b2e51bca0824ea217c7cd84491d8ac4eefd1e409705ef092bd"}, + {file = "kiwisolver-1.4.5-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:5794cf59533bc3f1b1c821f7206a3617999db9fbefc345360aafe2e067514929"}, + {file = "kiwisolver-1.4.5-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:e368f200bbc2e4f905b8e71eb38b3c04333bddaa6a2464a6355487b02bb7fb09"}, + {file = "kiwisolver-1.4.5-pp39-pypy39_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e5d706eba36b4c4d5bc6c6377bb6568098765e990cfc21ee16d13963fab7b3e7"}, + {file = "kiwisolver-1.4.5-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:85267bd1aa8880a9c88a8cb71e18d3d64d2751a790e6ca6c27b8ccc724bcd5ad"}, + {file = "kiwisolver-1.4.5-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:210ef2c3a1f03272649aff1ef992df2e724748918c4bc2d5a90352849eb40bea"}, + {file = "kiwisolver-1.4.5-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:11d011a7574eb3b82bcc9c1a1d35c1d7075677fdd15de527d91b46bd35e935ee"}, + {file = "kiwisolver-1.4.5.tar.gz", hash = "sha256:e57e563a57fb22a142da34f38acc2fc1a5c864bc29ca1517a88abc963e60d6ec"}, +] + +[[package]] +name = "markupsafe" +version = "2.1.3" +description = "Safely add untrusted strings to HTML/XML markup." +optional = false +python-versions = ">=3.7" +files = [ + {file = "MarkupSafe-2.1.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:cd0f502fe016460680cd20aaa5a76d241d6f35a1c3350c474bac1273803893fa"}, + {file = "MarkupSafe-2.1.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e09031c87a1e51556fdcb46e5bd4f59dfb743061cf93c4d6831bf894f125eb57"}, + {file = "MarkupSafe-2.1.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:68e78619a61ecf91e76aa3e6e8e33fc4894a2bebe93410754bd28fce0a8a4f9f"}, + {file = "MarkupSafe-2.1.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:65c1a9bcdadc6c28eecee2c119465aebff8f7a584dd719facdd9e825ec61ab52"}, + {file = "MarkupSafe-2.1.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:525808b8019e36eb524b8c68acdd63a37e75714eac50e988180b169d64480a00"}, + {file = "MarkupSafe-2.1.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:962f82a3086483f5e5f64dbad880d31038b698494799b097bc59c2edf392fce6"}, + {file = "MarkupSafe-2.1.3-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:aa7bd130efab1c280bed0f45501b7c8795f9fdbeb02e965371bbef3523627779"}, + {file = "MarkupSafe-2.1.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:c9c804664ebe8f83a211cace637506669e7890fec1b4195b505c214e50dd4eb7"}, + {file = "MarkupSafe-2.1.3-cp310-cp310-win32.whl", hash = "sha256:10bbfe99883db80bdbaff2dcf681dfc6533a614f700da1287707e8a5d78a8431"}, + {file = "MarkupSafe-2.1.3-cp310-cp310-win_amd64.whl", hash = "sha256:1577735524cdad32f9f694208aa75e422adba74f1baee7551620e43a3141f559"}, + {file = "MarkupSafe-2.1.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ad9e82fb8f09ade1c3e1b996a6337afac2b8b9e365f926f5a61aacc71adc5b3c"}, + {file = "MarkupSafe-2.1.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3c0fae6c3be832a0a0473ac912810b2877c8cb9d76ca48de1ed31e1c68386575"}, + {file = "MarkupSafe-2.1.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b076b6226fb84157e3f7c971a47ff3a679d837cf338547532ab866c57930dbee"}, + {file = "MarkupSafe-2.1.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bfce63a9e7834b12b87c64d6b155fdd9b3b96191b6bd334bf37db7ff1fe457f2"}, + {file = "MarkupSafe-2.1.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:338ae27d6b8745585f87218a3f23f1512dbf52c26c28e322dbe54bcede54ccb9"}, + {file = "MarkupSafe-2.1.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e4dd52d80b8c83fdce44e12478ad2e85c64ea965e75d66dbeafb0a3e77308fcc"}, + {file = "MarkupSafe-2.1.3-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:df0be2b576a7abbf737b1575f048c23fb1d769f267ec4358296f31c2479db8f9"}, + {file = "MarkupSafe-2.1.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:5bbe06f8eeafd38e5d0a4894ffec89378b6c6a625ff57e3028921f8ff59318ac"}, + {file = "MarkupSafe-2.1.3-cp311-cp311-win32.whl", hash = "sha256:dd15ff04ffd7e05ffcb7fe79f1b98041b8ea30ae9234aed2a9168b5797c3effb"}, + {file = "MarkupSafe-2.1.3-cp311-cp311-win_amd64.whl", hash = "sha256:134da1eca9ec0ae528110ccc9e48041e0828d79f24121a1a146161103c76e686"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:f698de3fd0c4e6972b92290a45bd9b1536bffe8c6759c62471efaa8acb4c37bc"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:aa57bd9cf8ae831a362185ee444e15a93ecb2e344c8e52e4d721ea3ab6ef1823"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ffcc3f7c66b5f5b7931a5aa68fc9cecc51e685ef90282f4a82f0f5e9b704ad11"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47d4f1c5f80fc62fdd7777d0d40a2e9dda0a05883ab11374334f6c4de38adffd"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1f67c7038d560d92149c060157d623c542173016c4babc0c1913cca0564b9939"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:9aad3c1755095ce347e26488214ef77e0485a3c34a50c5a5e2471dff60b9dd9c"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:14ff806850827afd6b07a5f32bd917fb7f45b046ba40c57abdb636674a8b559c"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8f9293864fe09b8149f0cc42ce56e3f0e54de883a9de90cd427f191c346eb2e1"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-win32.whl", hash = "sha256:715d3562f79d540f251b99ebd6d8baa547118974341db04f5ad06d5ea3eb8007"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-win_amd64.whl", hash = "sha256:1b8dd8c3fd14349433c79fa8abeb573a55fc0fdd769133baac1f5e07abf54aeb"}, + {file = "MarkupSafe-2.1.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:8e254ae696c88d98da6555f5ace2279cf7cd5b3f52be2b5cf97feafe883b58d2"}, + {file = "MarkupSafe-2.1.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cb0932dc158471523c9637e807d9bfb93e06a95cbf010f1a38b98623b929ef2b"}, + {file = "MarkupSafe-2.1.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9402b03f1a1b4dc4c19845e5c749e3ab82d5078d16a2a4c2cd2df62d57bb0707"}, + {file = "MarkupSafe-2.1.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ca379055a47383d02a5400cb0d110cef0a776fc644cda797db0c5696cfd7e18e"}, + {file = "MarkupSafe-2.1.3-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:b7ff0f54cb4ff66dd38bebd335a38e2c22c41a8ee45aa608efc890ac3e3931bc"}, + {file = "MarkupSafe-2.1.3-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:c011a4149cfbcf9f03994ec2edffcb8b1dc2d2aede7ca243746df97a5d41ce48"}, + {file = "MarkupSafe-2.1.3-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:56d9f2ecac662ca1611d183feb03a3fa4406469dafe241673d521dd5ae92a155"}, + {file = "MarkupSafe-2.1.3-cp37-cp37m-win32.whl", hash = "sha256:8758846a7e80910096950b67071243da3e5a20ed2546e6392603c096778d48e0"}, + {file = "MarkupSafe-2.1.3-cp37-cp37m-win_amd64.whl", hash = "sha256:787003c0ddb00500e49a10f2844fac87aa6ce977b90b0feaaf9de23c22508b24"}, + {file = "MarkupSafe-2.1.3-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:2ef12179d3a291be237280175b542c07a36e7f60718296278d8593d21ca937d4"}, + {file = "MarkupSafe-2.1.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:2c1b19b3aaacc6e57b7e25710ff571c24d6c3613a45e905b1fde04d691b98ee0"}, + {file = "MarkupSafe-2.1.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8afafd99945ead6e075b973fefa56379c5b5c53fd8937dad92c662da5d8fd5ee"}, + {file = "MarkupSafe-2.1.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8c41976a29d078bb235fea9b2ecd3da465df42a562910f9022f1a03107bd02be"}, + {file = "MarkupSafe-2.1.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d080e0a5eb2529460b30190fcfcc4199bd7f827663f858a226a81bc27beaa97e"}, + {file = "MarkupSafe-2.1.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:69c0f17e9f5a7afdf2cc9fb2d1ce6aabdb3bafb7f38017c0b77862bcec2bbad8"}, + {file = "MarkupSafe-2.1.3-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:504b320cd4b7eff6f968eddf81127112db685e81f7e36e75f9f84f0df46041c3"}, + {file = "MarkupSafe-2.1.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:42de32b22b6b804f42c5d98be4f7e5e977ecdd9ee9b660fda1a3edf03b11792d"}, + {file = "MarkupSafe-2.1.3-cp38-cp38-win32.whl", hash = "sha256:ceb01949af7121f9fc39f7d27f91be8546f3fb112c608bc4029aef0bab86a2a5"}, + {file = "MarkupSafe-2.1.3-cp38-cp38-win_amd64.whl", hash = "sha256:1b40069d487e7edb2676d3fbdb2b0829ffa2cd63a2ec26c4938b2d34391b4ecc"}, + {file = "MarkupSafe-2.1.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:8023faf4e01efadfa183e863fefde0046de576c6f14659e8782065bcece22198"}, + {file = "MarkupSafe-2.1.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6b2b56950d93e41f33b4223ead100ea0fe11f8e6ee5f641eb753ce4b77a7042b"}, + {file = "MarkupSafe-2.1.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9dcdfd0eaf283af041973bff14a2e143b8bd64e069f4c383416ecd79a81aab58"}, + {file = "MarkupSafe-2.1.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:05fb21170423db021895e1ea1e1f3ab3adb85d1c2333cbc2310f2a26bc77272e"}, + {file = "MarkupSafe-2.1.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:282c2cb35b5b673bbcadb33a585408104df04f14b2d9b01d4c345a3b92861c2c"}, + {file = "MarkupSafe-2.1.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:ab4a0df41e7c16a1392727727e7998a467472d0ad65f3ad5e6e765015df08636"}, + {file = "MarkupSafe-2.1.3-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:7ef3cb2ebbf91e330e3bb937efada0edd9003683db6b57bb108c4001f37a02ea"}, + {file = "MarkupSafe-2.1.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:0a4e4a1aff6c7ac4cd55792abf96c915634c2b97e3cc1c7129578aa68ebd754e"}, + {file = "MarkupSafe-2.1.3-cp39-cp39-win32.whl", hash = "sha256:fec21693218efe39aa7f8599346e90c705afa52c5b31ae019b2e57e8f6542bb2"}, + {file = "MarkupSafe-2.1.3-cp39-cp39-win_amd64.whl", hash = "sha256:3fd4abcb888d15a94f32b75d8fd18ee162ca0c064f35b11134be77050296d6ba"}, + {file = "MarkupSafe-2.1.3.tar.gz", hash = "sha256:af598ed32d6ae86f1b747b82783958b1a4ab8f617b06fe68795c7f026abbdcad"}, +] + +[[package]] +name = "matplotlib" +version = "3.8.0" +description = "Python plotting package" +optional = false +python-versions = ">=3.9" +files = [ + {file = "matplotlib-3.8.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:c4940bad88a932ddc69734274f6fb047207e008389489f2b6f77d9ca485f0e7a"}, + {file = "matplotlib-3.8.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a33bd3045c7452ca1fa65676d88ba940867880e13e2546abb143035fa9072a9d"}, + {file = "matplotlib-3.8.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2ea6886e93401c22e534bbfd39201ce8931b75502895cfb115cbdbbe2d31f287"}, + {file = "matplotlib-3.8.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d670b9348e712ec176de225d425f150dc8e37b13010d85233c539b547da0be39"}, + {file = "matplotlib-3.8.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:7b37b74f00c4cb6af908cb9a00779d97d294e89fd2145ad43f0cdc23f635760c"}, + {file = "matplotlib-3.8.0-cp310-cp310-win_amd64.whl", hash = "sha256:0e723f5b96f3cd4aad99103dc93e9e3cdc4f18afdcc76951f4857b46f8e39d2d"}, + {file = "matplotlib-3.8.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:5dc945a9cb2deb7d197ba23eb4c210e591d52d77bf0ba27c35fc82dec9fa78d4"}, + {file = "matplotlib-3.8.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f8b5a1bf27d078453aa7b5b27f52580e16360d02df6d3dc9504f3d2ce11f6309"}, + {file = "matplotlib-3.8.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6f25ffb6ad972cdffa7df8e5be4b1e3cadd2f8d43fc72085feb1518006178394"}, + {file = "matplotlib-3.8.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eee482731c8c17d86d9ddb5194d38621f9b0f0d53c99006275a12523ab021732"}, + {file = "matplotlib-3.8.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:36eafe2128772195b373e1242df28d1b7ec6c04c15b090b8d9e335d55a323900"}, + {file = "matplotlib-3.8.0-cp311-cp311-win_amd64.whl", hash = "sha256:061ee58facb3580cd2d046a6d227fb77e9295599c5ec6ad069f06b5821ad1cfc"}, + {file = "matplotlib-3.8.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:3cc3776836d0f4f22654a7f2d2ec2004618d5cf86b7185318381f73b80fd8a2d"}, + {file = "matplotlib-3.8.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6c49a2bd6981264bddcb8c317b6bd25febcece9e2ebfcbc34e7f4c0c867c09dc"}, + {file = "matplotlib-3.8.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:23ed11654fc83cd6cfdf6170b453e437674a050a452133a064d47f2f1371f8d3"}, + {file = "matplotlib-3.8.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dae97fdd6996b3a25da8ee43e3fc734fff502f396801063c6b76c20b56683196"}, + {file = "matplotlib-3.8.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:87df75f528020a6299f76a1d986c0ed4406e3b2bd44bc5e306e46bca7d45e53e"}, + {file = "matplotlib-3.8.0-cp312-cp312-win_amd64.whl", hash = "sha256:90d74a95fe055f73a6cd737beecc1b81c26f2893b7a3751d52b53ff06ca53f36"}, + {file = "matplotlib-3.8.0-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:c3499c312f5def8f362a2bf761d04fa2d452b333f3a9a3f58805273719bf20d9"}, + {file = "matplotlib-3.8.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:31e793c8bd4ea268cc5d3a695c27b30650ec35238626961d73085d5e94b6ab68"}, + {file = "matplotlib-3.8.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0d5ee602ef517a89d1f2c508ca189cfc395dd0b4a08284fb1b97a78eec354644"}, + {file = "matplotlib-3.8.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5de39dc61ca35342cf409e031f70f18219f2c48380d3886c1cf5ad9f17898e06"}, + {file = "matplotlib-3.8.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:dd386c80a98b5f51571b9484bf6c6976de383cd2a8cd972b6a9562d85c6d2087"}, + {file = "matplotlib-3.8.0-cp39-cp39-win_amd64.whl", hash = "sha256:f691b4ef47c7384d0936b2e8ebdeb5d526c81d004ad9403dfb9d4c76b9979a93"}, + {file = "matplotlib-3.8.0-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:0b11f354aae62a2aa53ec5bb09946f5f06fc41793e351a04ff60223ea9162955"}, + {file = "matplotlib-3.8.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7f54b9fb87ca5acbcdd0f286021bedc162e1425fa5555ebf3b3dfc167b955ad9"}, + {file = "matplotlib-3.8.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:60a6e04dfd77c0d3bcfee61c3cd335fff1b917c2f303b32524cd1235e194ef99"}, + {file = "matplotlib-3.8.0.tar.gz", hash = "sha256:df8505e1c19d5c2c26aff3497a7cbd3ccfc2e97043d1e4db3e76afa399164b69"}, +] + +[package.dependencies] +contourpy = ">=1.0.1" +cycler = ">=0.10" +fonttools = ">=4.22.0" +importlib-resources = {version = ">=3.2.0", markers = "python_version < \"3.10\""} +kiwisolver = ">=1.0.1" +numpy = ">=1.21,<2" +packaging = ">=20.0" +pillow = ">=6.2.0" +pyparsing = ">=2.3.1" +python-dateutil = ">=2.7" +setuptools_scm = ">=7" + +[[package]] +name = "numpy" +version = "1.26.1" +description = "Fundamental package for array computing in Python" +optional = false +python-versions = "<3.13,>=3.9" +files = [ + {file = "numpy-1.26.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:82e871307a6331b5f09efda3c22e03c095d957f04bf6bc1804f30048d0e5e7af"}, + {file = "numpy-1.26.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:cdd9ec98f0063d93baeb01aad472a1a0840dee302842a2746a7a8e92968f9575"}, + {file = "numpy-1.26.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d78f269e0c4fd365fc2992c00353e4530d274ba68f15e968d8bc3c69ce5f5244"}, + {file = "numpy-1.26.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8ab9163ca8aeb7fd32fe93866490654d2f7dda4e61bc6297bf72ce07fdc02f67"}, + {file = "numpy-1.26.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:78ca54b2f9daffa5f323f34cdf21e1d9779a54073f0018a3094ab907938331a2"}, + {file = "numpy-1.26.1-cp310-cp310-win32.whl", hash = "sha256:d1cfc92db6af1fd37a7bb58e55c8383b4aa1ba23d012bdbba26b4bcca45ac297"}, + {file = "numpy-1.26.1-cp310-cp310-win_amd64.whl", hash = "sha256:d2984cb6caaf05294b8466966627e80bf6c7afd273279077679cb010acb0e5ab"}, + {file = "numpy-1.26.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cd7837b2b734ca72959a1caf3309457a318c934abef7a43a14bb984e574bbb9a"}, + {file = "numpy-1.26.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1c59c046c31a43310ad0199d6299e59f57a289e22f0f36951ced1c9eac3665b9"}, + {file = "numpy-1.26.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d58e8c51a7cf43090d124d5073bc29ab2755822181fcad978b12e144e5e5a4b3"}, + {file = "numpy-1.26.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6081aed64714a18c72b168a9276095ef9155dd7888b9e74b5987808f0dd0a974"}, + {file = "numpy-1.26.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:97e5d6a9f0702c2863aaabf19f0d1b6c2628fbe476438ce0b5ce06e83085064c"}, + {file = "numpy-1.26.1-cp311-cp311-win32.whl", hash = "sha256:b9d45d1dbb9de84894cc50efece5b09939752a2d75aab3a8b0cef6f3a35ecd6b"}, + {file = "numpy-1.26.1-cp311-cp311-win_amd64.whl", hash = "sha256:3649d566e2fc067597125428db15d60eb42a4e0897fc48d28cb75dc2e0454e53"}, + {file = "numpy-1.26.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:1d1bd82d539607951cac963388534da3b7ea0e18b149a53cf883d8f699178c0f"}, + {file = "numpy-1.26.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:afd5ced4e5a96dac6725daeb5242a35494243f2239244fad10a90ce58b071d24"}, + {file = "numpy-1.26.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a03fb25610ef560a6201ff06df4f8105292ba56e7cdd196ea350d123fc32e24e"}, + {file = "numpy-1.26.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dcfaf015b79d1f9f9c9fd0731a907407dc3e45769262d657d754c3a028586124"}, + {file = "numpy-1.26.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:e509cbc488c735b43b5ffea175235cec24bbc57b227ef1acc691725beb230d1c"}, + {file = "numpy-1.26.1-cp312-cp312-win32.whl", hash = "sha256:af22f3d8e228d84d1c0c44c1fbdeb80f97a15a0abe4f080960393a00db733b66"}, + {file = "numpy-1.26.1-cp312-cp312-win_amd64.whl", hash = "sha256:9f42284ebf91bdf32fafac29d29d4c07e5e9d1af862ea73686581773ef9e73a7"}, + {file = "numpy-1.26.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:bb894accfd16b867d8643fc2ba6c8617c78ba2828051e9a69511644ce86ce83e"}, + {file = "numpy-1.26.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e44ccb93f30c75dfc0c3aa3ce38f33486a75ec9abadabd4e59f114994a9c4617"}, + {file = "numpy-1.26.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9696aa2e35cc41e398a6d42d147cf326f8f9d81befcb399bc1ed7ffea339b64e"}, + {file = "numpy-1.26.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a5b411040beead47a228bde3b2241100454a6abde9df139ed087bd73fc0a4908"}, + {file = "numpy-1.26.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:1e11668d6f756ca5ef534b5be8653d16c5352cbb210a5c2a79ff288e937010d5"}, + {file = "numpy-1.26.1-cp39-cp39-win32.whl", hash = "sha256:d1d2c6b7dd618c41e202c59c1413ef9b2c8e8a15f5039e344af64195459e3104"}, + {file = "numpy-1.26.1-cp39-cp39-win_amd64.whl", hash = "sha256:59227c981d43425ca5e5c01094d59eb14e8772ce6975d4b2fc1e106a833d5ae2"}, + {file = "numpy-1.26.1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:06934e1a22c54636a059215d6da99e23286424f316fddd979f5071093b648668"}, + {file = "numpy-1.26.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:76ff661a867d9272cd2a99eed002470f46dbe0943a5ffd140f49be84f68ffc42"}, + {file = "numpy-1.26.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:6965888d65d2848e8768824ca8288db0a81263c1efccec881cb35a0d805fcd2f"}, + {file = "numpy-1.26.1.tar.gz", hash = "sha256:c8c6c72d4a9f831f328efb1312642a1cafafaa88981d9ab76368d50d07d93cbe"}, +] + +[[package]] +name = "openpyxl" +version = "3.1.2" +description = "A Python library to read/write Excel 2010 xlsx/xlsm files" +optional = false +python-versions = ">=3.6" +files = [ + {file = "openpyxl-3.1.2-py2.py3-none-any.whl", hash = "sha256:f91456ead12ab3c6c2e9491cf33ba6d08357d802192379bb482f1033ade496f5"}, + {file = "openpyxl-3.1.2.tar.gz", hash = "sha256:a6f5977418eff3b2d5500d54d9db50c8277a368436f4e4f8ddb1be3422870184"}, +] + +[package.dependencies] +et-xmlfile = "*" + +[[package]] +name = "packaging" +version = "23.2" +description = "Core utilities for Python packages" +optional = false +python-versions = ">=3.7" +files = [ + {file = "packaging-23.2-py3-none-any.whl", hash = "sha256:8c491190033a9af7e1d931d0b5dacc2ef47509b34dd0de67ed209b5203fc88c7"}, + {file = "packaging-23.2.tar.gz", hash = "sha256:048fb0e9405036518eaaf48a55953c750c11e1a1b68e0dd1a9d62ed0c092cfc5"}, +] + +[[package]] +name = "pandas" +version = "2.1.1" +description = "Powerful data structures for data analysis, time series, and statistics" +optional = false +python-versions = ">=3.9" +files = [ + {file = "pandas-2.1.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:58d997dbee0d4b64f3cb881a24f918b5f25dd64ddf31f467bb9b67ae4c63a1e4"}, + {file = "pandas-2.1.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:02304e11582c5d090e5a52aec726f31fe3f42895d6bfc1f28738f9b64b6f0614"}, + {file = "pandas-2.1.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ffa8f0966de2c22de408d0e322db2faed6f6e74265aa0856f3824813cf124363"}, + {file = "pandas-2.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c1f84c144dee086fe4f04a472b5cd51e680f061adf75c1ae4fc3a9275560f8f4"}, + {file = "pandas-2.1.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:75ce97667d06d69396d72be074f0556698c7f662029322027c226fd7a26965cb"}, + {file = "pandas-2.1.1-cp310-cp310-win_amd64.whl", hash = "sha256:4c3f32fd7c4dccd035f71734df39231ac1a6ff95e8bdab8d891167197b7018d2"}, + {file = "pandas-2.1.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:9e2959720b70e106bb1d8b6eadd8ecd7c8e99ccdbe03ee03260877184bb2877d"}, + {file = "pandas-2.1.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:25e8474a8eb258e391e30c288eecec565bfed3e026f312b0cbd709a63906b6f8"}, + {file = "pandas-2.1.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b8bd1685556f3374520466998929bade3076aeae77c3e67ada5ed2b90b4de7f0"}, + {file = "pandas-2.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dc3657869c7902810f32bd072f0740487f9e030c1a3ab03e0af093db35a9d14e"}, + {file = "pandas-2.1.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:05674536bd477af36aa2effd4ec8f71b92234ce0cc174de34fd21e2ee99adbc2"}, + {file = "pandas-2.1.1-cp311-cp311-win_amd64.whl", hash = "sha256:b407381258a667df49d58a1b637be33e514b07f9285feb27769cedb3ab3d0b3a"}, + {file = "pandas-2.1.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:c747793c4e9dcece7bb20156179529898abf505fe32cb40c4052107a3c620b49"}, + {file = "pandas-2.1.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3bcad1e6fb34b727b016775bea407311f7721db87e5b409e6542f4546a4951ea"}, + {file = "pandas-2.1.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f5ec7740f9ccb90aec64edd71434711f58ee0ea7f5ed4ac48be11cfa9abf7317"}, + {file = "pandas-2.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:29deb61de5a8a93bdd033df328441a79fcf8dd3c12d5ed0b41a395eef9cd76f0"}, + {file = "pandas-2.1.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:4f99bebf19b7e03cf80a4e770a3e65eee9dd4e2679039f542d7c1ace7b7b1daa"}, + {file = "pandas-2.1.1-cp312-cp312-win_amd64.whl", hash = "sha256:84e7e910096416adec68075dc87b986ff202920fb8704e6d9c8c9897fe7332d6"}, + {file = "pandas-2.1.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:366da7b0e540d1b908886d4feb3d951f2f1e572e655c1160f5fde28ad4abb750"}, + {file = "pandas-2.1.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:9e50e72b667415a816ac27dfcfe686dc5a0b02202e06196b943d54c4f9c7693e"}, + {file = "pandas-2.1.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cc1ab6a25da197f03ebe6d8fa17273126120874386b4ac11c1d687df288542dd"}, + {file = "pandas-2.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a0dbfea0dd3901ad4ce2306575c54348d98499c95be01b8d885a2737fe4d7a98"}, + {file = "pandas-2.1.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:0489b0e6aa3d907e909aef92975edae89b1ee1654db5eafb9be633b0124abe97"}, + {file = "pandas-2.1.1-cp39-cp39-win_amd64.whl", hash = "sha256:4cdb0fab0400c2cb46dafcf1a0fe084c8bb2480a1fa8d81e19d15e12e6d4ded2"}, + {file = "pandas-2.1.1.tar.gz", hash = "sha256:fecb198dc389429be557cde50a2d46da8434a17fe37d7d41ff102e3987fd947b"}, +] + +[package.dependencies] +numpy = [ + {version = ">=1.22.4", markers = "python_version < \"3.11\""}, + {version = ">=1.23.2", markers = "python_version == \"3.11\""}, + {version = ">=1.26.0", markers = "python_version >= \"3.12\""}, +] +python-dateutil = ">=2.8.2" +pytz = ">=2020.1" +tzdata = ">=2022.1" + +[package.extras] +all = ["PyQt5 (>=5.15.6)", "SQLAlchemy (>=1.4.36)", "beautifulsoup4 (>=4.11.1)", "bottleneck (>=1.3.4)", "dataframe-api-compat (>=0.1.7)", "fastparquet (>=0.8.1)", "fsspec (>=2022.05.0)", "gcsfs (>=2022.05.0)", "html5lib (>=1.1)", "hypothesis (>=6.46.1)", "jinja2 (>=3.1.2)", "lxml (>=4.8.0)", "matplotlib (>=3.6.1)", "numba (>=0.55.2)", "numexpr (>=2.8.0)", "odfpy (>=1.4.1)", "openpyxl (>=3.0.10)", "pandas-gbq (>=0.17.5)", "psycopg2 (>=2.9.3)", "pyarrow (>=7.0.0)", "pymysql (>=1.0.2)", "pyreadstat (>=1.1.5)", "pytest (>=7.3.2)", "pytest-asyncio (>=0.17.0)", "pytest-xdist (>=2.2.0)", "pyxlsb (>=1.0.9)", "qtpy (>=2.2.0)", "s3fs (>=2022.05.0)", "scipy (>=1.8.1)", "tables (>=3.7.0)", "tabulate (>=0.8.10)", "xarray (>=2022.03.0)", "xlrd (>=2.0.1)", "xlsxwriter (>=3.0.3)", "zstandard (>=0.17.0)"] +aws = ["s3fs (>=2022.05.0)"] +clipboard = ["PyQt5 (>=5.15.6)", "qtpy (>=2.2.0)"] +compression = ["zstandard (>=0.17.0)"] +computation = ["scipy (>=1.8.1)", "xarray (>=2022.03.0)"] +consortium-standard = ["dataframe-api-compat (>=0.1.7)"] +excel = ["odfpy (>=1.4.1)", "openpyxl (>=3.0.10)", "pyxlsb (>=1.0.9)", "xlrd (>=2.0.1)", "xlsxwriter (>=3.0.3)"] +feather = ["pyarrow (>=7.0.0)"] +fss = ["fsspec (>=2022.05.0)"] +gcp = ["gcsfs (>=2022.05.0)", "pandas-gbq (>=0.17.5)"] +hdf5 = ["tables (>=3.7.0)"] +html = ["beautifulsoup4 (>=4.11.1)", "html5lib (>=1.1)", "lxml (>=4.8.0)"] +mysql = ["SQLAlchemy (>=1.4.36)", "pymysql (>=1.0.2)"] +output-formatting = ["jinja2 (>=3.1.2)", "tabulate (>=0.8.10)"] +parquet = ["pyarrow (>=7.0.0)"] +performance = ["bottleneck (>=1.3.4)", "numba (>=0.55.2)", "numexpr (>=2.8.0)"] +plot = ["matplotlib (>=3.6.1)"] +postgresql = ["SQLAlchemy (>=1.4.36)", "psycopg2 (>=2.9.3)"] +spss = ["pyreadstat (>=1.1.5)"] +sql-other = ["SQLAlchemy (>=1.4.36)"] +test = ["hypothesis (>=6.46.1)", "pytest (>=7.3.2)", "pytest-asyncio (>=0.17.0)", "pytest-xdist (>=2.2.0)"] +xml = ["lxml (>=4.8.0)"] + +[[package]] +name = "pillow" +version = "10.1.0" +description = "Python Imaging Library (Fork)" +optional = false +python-versions = ">=3.8" +files = [ + {file = "Pillow-10.1.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:1ab05f3db77e98f93964697c8efc49c7954b08dd61cff526b7f2531a22410106"}, + {file = "Pillow-10.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6932a7652464746fcb484f7fc3618e6503d2066d853f68a4bd97193a3996e273"}, + {file = "Pillow-10.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a5f63b5a68daedc54c7c3464508d8c12075e56dcfbd42f8c1bf40169061ae666"}, + {file = "Pillow-10.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0949b55eb607898e28eaccb525ab104b2d86542a85c74baf3a6dc24002edec2"}, + {file = "Pillow-10.1.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:ae88931f93214777c7a3aa0a8f92a683f83ecde27f65a45f95f22d289a69e593"}, + {file = "Pillow-10.1.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:b0eb01ca85b2361b09480784a7931fc648ed8b7836f01fb9241141b968feb1db"}, + {file = "Pillow-10.1.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:d27b5997bdd2eb9fb199982bb7eb6164db0426904020dc38c10203187ae2ff2f"}, + {file = "Pillow-10.1.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:7df5608bc38bd37ef585ae9c38c9cd46d7c81498f086915b0f97255ea60c2818"}, + {file = "Pillow-10.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:41f67248d92a5e0a2076d3517d8d4b1e41a97e2df10eb8f93106c89107f38b57"}, + {file = "Pillow-10.1.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:1fb29c07478e6c06a46b867e43b0bcdb241b44cc52be9bc25ce5944eed4648e7"}, + {file = "Pillow-10.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2cdc65a46e74514ce742c2013cd4a2d12e8553e3a2563c64879f7c7e4d28bce7"}, + {file = "Pillow-10.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:50d08cd0a2ecd2a8657bd3d82c71efd5a58edb04d9308185d66c3a5a5bed9610"}, + {file = "Pillow-10.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:062a1610e3bc258bff2328ec43f34244fcec972ee0717200cb1425214fe5b839"}, + {file = "Pillow-10.1.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:61f1a9d247317fa08a308daaa8ee7b3f760ab1809ca2da14ecc88ae4257d6172"}, + {file = "Pillow-10.1.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:a646e48de237d860c36e0db37ecaecaa3619e6f3e9d5319e527ccbc8151df061"}, + {file = "Pillow-10.1.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:47e5bf85b80abc03be7455c95b6d6e4896a62f6541c1f2ce77a7d2bb832af262"}, + {file = "Pillow-10.1.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:a92386125e9ee90381c3369f57a2a50fa9e6aa8b1cf1d9c4b200d41a7dd8e992"}, + {file = "Pillow-10.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:0f7c276c05a9767e877a0b4c5050c8bee6a6d960d7f0c11ebda6b99746068c2a"}, + {file = "Pillow-10.1.0-cp312-cp312-macosx_10_10_x86_64.whl", hash = "sha256:a89b8312d51715b510a4fe9fc13686283f376cfd5abca8cd1c65e4c76e21081b"}, + {file = "Pillow-10.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:00f438bb841382b15d7deb9a05cc946ee0f2c352653c7aa659e75e592f6fa17d"}, + {file = "Pillow-10.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3d929a19f5469b3f4df33a3df2983db070ebb2088a1e145e18facbc28cae5b27"}, + {file = "Pillow-10.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9a92109192b360634a4489c0c756364c0c3a2992906752165ecb50544c251312"}, + {file = "Pillow-10.1.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:0248f86b3ea061e67817c47ecbe82c23f9dd5d5226200eb9090b3873d3ca32de"}, + {file = "Pillow-10.1.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:9882a7451c680c12f232a422730f986a1fcd808da0fd428f08b671237237d651"}, + {file = "Pillow-10.1.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:1c3ac5423c8c1da5928aa12c6e258921956757d976405e9467c5f39d1d577a4b"}, + {file = "Pillow-10.1.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:806abdd8249ba3953c33742506fe414880bad78ac25cc9a9b1c6ae97bedd573f"}, + {file = "Pillow-10.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:eaed6977fa73408b7b8a24e8b14e59e1668cfc0f4c40193ea7ced8e210adf996"}, + {file = "Pillow-10.1.0-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:fe1e26e1ffc38be097f0ba1d0d07fcade2bcfd1d023cda5b29935ae8052bd793"}, + {file = "Pillow-10.1.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:7a7e3daa202beb61821c06d2517428e8e7c1aab08943e92ec9e5755c2fc9ba5e"}, + {file = "Pillow-10.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:24fadc71218ad2b8ffe437b54876c9382b4a29e030a05a9879f615091f42ffc2"}, + {file = "Pillow-10.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fa1d323703cfdac2036af05191b969b910d8f115cf53093125e4058f62012c9a"}, + {file = "Pillow-10.1.0-cp38-cp38-manylinux_2_28_aarch64.whl", hash = "sha256:912e3812a1dbbc834da2b32299b124b5ddcb664ed354916fd1ed6f193f0e2d01"}, + {file = "Pillow-10.1.0-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:7dbaa3c7de82ef37e7708521be41db5565004258ca76945ad74a8e998c30af8d"}, + {file = "Pillow-10.1.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:9d7bc666bd8c5a4225e7ac71f2f9d12466ec555e89092728ea0f5c0c2422ea80"}, + {file = "Pillow-10.1.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:baada14941c83079bf84c037e2d8b7506ce201e92e3d2fa0d1303507a8538212"}, + {file = "Pillow-10.1.0-cp38-cp38-win_amd64.whl", hash = "sha256:2ef6721c97894a7aa77723740a09547197533146fba8355e86d6d9a4a1056b14"}, + {file = "Pillow-10.1.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:0a026c188be3b443916179f5d04548092e253beb0c3e2ee0a4e2cdad72f66099"}, + {file = "Pillow-10.1.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:04f6f6149f266a100374ca3cc368b67fb27c4af9f1cc8cb6306d849dcdf12616"}, + {file = "Pillow-10.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bb40c011447712d2e19cc261c82655f75f32cb724788df315ed992a4d65696bb"}, + {file = "Pillow-10.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1a8413794b4ad9719346cd9306118450b7b00d9a15846451549314a58ac42219"}, + {file = "Pillow-10.1.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:c9aeea7b63edb7884b031a35305629a7593272b54f429a9869a4f63a1bf04c34"}, + {file = "Pillow-10.1.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:b4005fee46ed9be0b8fb42be0c20e79411533d1fd58edabebc0dd24626882cfd"}, + {file = "Pillow-10.1.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:4d0152565c6aa6ebbfb1e5d8624140a440f2b99bf7afaafbdbf6430426497f28"}, + {file = "Pillow-10.1.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:d921bc90b1defa55c9917ca6b6b71430e4286fc9e44c55ead78ca1a9f9eba5f2"}, + {file = "Pillow-10.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:cfe96560c6ce2f4c07d6647af2d0f3c54cc33289894ebd88cfbb3bcd5391e256"}, + {file = "Pillow-10.1.0-pp310-pypy310_pp73-macosx_10_10_x86_64.whl", hash = "sha256:937bdc5a7f5343d1c97dc98149a0be7eb9704e937fe3dc7140e229ae4fc572a7"}, + {file = "Pillow-10.1.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b1c25762197144e211efb5f4e8ad656f36c8d214d390585d1d21281f46d556ba"}, + {file = "Pillow-10.1.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:afc8eef765d948543a4775f00b7b8c079b3321d6b675dde0d02afa2ee23000b4"}, + {file = "Pillow-10.1.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:883f216eac8712b83a63f41b76ddfb7b2afab1b74abbb413c5df6680f071a6b9"}, + {file = "Pillow-10.1.0-pp39-pypy39_pp73-macosx_10_10_x86_64.whl", hash = "sha256:b920e4d028f6442bea9a75b7491c063f0b9a3972520731ed26c83e254302eb1e"}, + {file = "Pillow-10.1.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1c41d960babf951e01a49c9746f92c5a7e0d939d1652d7ba30f6b3090f27e412"}, + {file = "Pillow-10.1.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:1fafabe50a6977ac70dfe829b2d5735fd54e190ab55259ec8aea4aaea412fa0b"}, + {file = "Pillow-10.1.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:3b834f4b16173e5b92ab6566f0473bfb09f939ba14b23b8da1f54fa63e4b623f"}, + {file = "Pillow-10.1.0.tar.gz", hash = "sha256:e6bf8de6c36ed96c86ea3b6e1d5273c53f46ef518a062464cd7ef5dd2cf92e38"}, +] + +[package.extras] +docs = ["furo", "olefile", "sphinx (>=2.4)", "sphinx-copybutton", "sphinx-inline-tabs", "sphinx-removed-in", "sphinxext-opengraph"] +tests = ["check-manifest", "coverage", "defusedxml", "markdown2", "olefile", "packaging", "pyroma", "pytest", "pytest-cov", "pytest-timeout"] + +[[package]] +name = "pluggy" +version = "1.3.0" +description = "plugin and hook calling mechanisms for python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pluggy-1.3.0-py3-none-any.whl", hash = "sha256:d89c696a773f8bd377d18e5ecda92b7a3793cbe66c87060a6fb58c7b6e1061f7"}, + {file = "pluggy-1.3.0.tar.gz", hash = "sha256:cf61ae8f126ac6f7c451172cf30e3e43d3ca77615509771b3a984a0730651e12"}, +] + +[package.extras] +dev = ["pre-commit", "tox"] +testing = ["pytest", "pytest-benchmark"] + +[[package]] +name = "pygments" +version = "2.16.1" +description = "Pygments is a syntax highlighting package written in Python." +optional = false +python-versions = ">=3.7" +files = [ + {file = "Pygments-2.16.1-py3-none-any.whl", hash = "sha256:13fc09fa63bc8d8671a6d247e1eb303c4b343eaee81d861f3404db2935653692"}, + {file = "Pygments-2.16.1.tar.gz", hash = "sha256:1daff0494820c69bc8941e407aa20f577374ee88364ee10a98fdbe0aece96e29"}, +] + +[package.extras] +plugins = ["importlib-metadata"] + +[[package]] +name = "pyparsing" +version = "3.1.1" +description = "pyparsing module - Classes and methods to define and execute parsing grammars" +optional = false +python-versions = ">=3.6.8" +files = [ + {file = "pyparsing-3.1.1-py3-none-any.whl", hash = "sha256:32c7c0b711493c72ff18a981d24f28aaf9c1fb7ed5e9667c9e84e3db623bdbfb"}, + {file = "pyparsing-3.1.1.tar.gz", hash = "sha256:ede28a1a32462f5a9705e07aea48001a08f7cf81a021585011deba701581a0db"}, +] + +[package.extras] +diagrams = ["jinja2", "railroad-diagrams"] + +[[package]] +name = "pytest" +version = "7.4.2" +description = "pytest: simple powerful testing with Python" +optional = false +python-versions = ">=3.7" +files = [ + {file = "pytest-7.4.2-py3-none-any.whl", hash = "sha256:1d881c6124e08ff0a1bb75ba3ec0bfd8b5354a01c194ddd5a0a870a48d99b002"}, + {file = "pytest-7.4.2.tar.gz", hash = "sha256:a766259cfab564a2ad52cb1aae1b881a75c3eb7e34ca3779697c23ed47c47069"}, +] + +[package.dependencies] +colorama = {version = "*", markers = "sys_platform == \"win32\""} +exceptiongroup = {version = ">=1.0.0rc8", markers = "python_version < \"3.11\""} +iniconfig = "*" +packaging = "*" +pluggy = ">=0.12,<2.0" +tomli = {version = ">=1.0.0", markers = "python_version < \"3.11\""} + +[package.extras] +testing = ["argcomplete", "attrs (>=19.2.0)", "hypothesis (>=3.56)", "mock", "nose", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] + +[[package]] +name = "pytest-cov" +version = "4.1.0" +description = "Pytest plugin for measuring coverage." +optional = false +python-versions = ">=3.7" +files = [ + {file = "pytest-cov-4.1.0.tar.gz", hash = "sha256:3904b13dfbfec47f003b8e77fd5b589cd11904a21ddf1ab38a64f204d6a10ef6"}, + {file = "pytest_cov-4.1.0-py3-none-any.whl", hash = "sha256:6ba70b9e97e69fcc3fb45bfeab2d0a138fb65c4d0d6a41ef33983ad114be8c3a"}, +] + +[package.dependencies] +coverage = {version = ">=5.2.1", extras = ["toml"]} +pytest = ">=4.6" + +[package.extras] +testing = ["fields", "hunter", "process-tests", "pytest-xdist", "six", "virtualenv"] + +[[package]] +name = "pytest-randomly" +version = "3.15.0" +description = "Pytest plugin to randomly order tests and control random.seed." +optional = false +python-versions = ">=3.8" +files = [ + {file = "pytest_randomly-3.15.0-py3-none-any.whl", hash = "sha256:0516f4344b29f4e9cdae8bce31c4aeebf59d0b9ef05927c33354ff3859eeeca6"}, + {file = "pytest_randomly-3.15.0.tar.gz", hash = "sha256:b908529648667ba5e54723088edd6f82252f540cc340d748d1fa985539687047"}, +] + +[package.dependencies] +importlib-metadata = {version = ">=3.6.0", markers = "python_version < \"3.10\""} +pytest = "*" + +[[package]] +name = "python-dateutil" +version = "2.8.2" +description = "Extensions to the standard Python datetime module" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" +files = [ + {file = "python-dateutil-2.8.2.tar.gz", hash = "sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86"}, + {file = "python_dateutil-2.8.2-py2.py3-none-any.whl", hash = "sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9"}, +] + +[package.dependencies] +six = ">=1.5" + +[[package]] +name = "pytz" +version = "2023.3.post1" +description = "World timezone definitions, modern and historical" +optional = false +python-versions = "*" +files = [ + {file = "pytz-2023.3.post1-py2.py3-none-any.whl", hash = "sha256:ce42d816b81b68506614c11e8937d3aa9e41007ceb50bfdcb0749b921bf646c7"}, + {file = "pytz-2023.3.post1.tar.gz", hash = "sha256:7b4fddbeb94a1eba4b557da24f19fdf9db575192544270a9101d8509f9f43d7b"}, +] + +[[package]] +name = "requests" +version = "2.31.0" +description = "Python HTTP for Humans." +optional = false +python-versions = ">=3.7" +files = [ + {file = "requests-2.31.0-py3-none-any.whl", hash = "sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f"}, + {file = "requests-2.31.0.tar.gz", hash = "sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1"}, +] + +[package.dependencies] +certifi = ">=2017.4.17" +charset-normalizer = ">=2,<4" +idna = ">=2.5,<4" +urllib3 = ">=1.21.1,<3" + +[package.extras] +socks = ["PySocks (>=1.5.6,!=1.5.7)"] +use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] + +[[package]] +name = "setuptools" +version = "68.2.2" +description = "Easily download, build, install, upgrade, and uninstall Python packages" +optional = false +python-versions = ">=3.8" +files = [ + {file = "setuptools-68.2.2-py3-none-any.whl", hash = "sha256:b454a35605876da60632df1a60f736524eb73cc47bbc9f3f1ef1b644de74fd2a"}, + {file = "setuptools-68.2.2.tar.gz", hash = "sha256:4ac1475276d2f1c48684874089fefcd83bd7162ddaafb81fac866ba0db282a87"}, +] + +[package.extras] +docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-hoverxref (<2)", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier"] +testing = ["build[virtualenv]", "filelock (>=3.4.0)", "flake8-2020", "ini2toml[lite] (>=0.9)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pip (>=19.1)", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy (>=0.9.1)", "pytest-perf", "pytest-ruff", "pytest-timeout", "pytest-xdist", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] +testing-integration = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "packaging (>=23.1)", "pytest", "pytest-enabler", "pytest-xdist", "tomli", "virtualenv (>=13.0.0)", "wheel"] + +[[package]] +name = "setuptools-scm" +version = "8.0.4" +description = "the blessed package to manage your versions by scm tags" +optional = false +python-versions = ">=3.8" +files = [ + {file = "setuptools-scm-8.0.4.tar.gz", hash = "sha256:b5f43ff6800669595193fd09891564ee9d1d7dcb196cab4b2506d53a2e1c95c7"}, + {file = "setuptools_scm-8.0.4-py3-none-any.whl", hash = "sha256:b47844cd2a84b83b3187a5782c71128c28b4c94cad8bfb871da2784a5cb54c4f"}, +] + +[package.dependencies] +packaging = ">=20" +setuptools = "*" +tomli = {version = ">=1", markers = "python_version < \"3.11\""} +typing-extensions = "*" + +[package.extras] +docs = ["entangled-cli[rich]", "mkdocs", "mkdocs-entangled-plugin", "mkdocs-material", "mkdocstrings[python]", "pygments"] +rich = ["rich"] +test = ["build", "pytest", "rich", "wheel"] + +[[package]] +name = "six" +version = "1.16.0" +description = "Python 2 and 3 compatibility utilities" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" +files = [ + {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, + {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, +] + +[[package]] +name = "snowballstemmer" +version = "2.2.0" +description = "This package provides 29 stemmers for 28 languages generated from Snowball algorithms." +optional = false +python-versions = "*" +files = [ + {file = "snowballstemmer-2.2.0-py2.py3-none-any.whl", hash = "sha256:c8e1716e83cc398ae16824e5572ae04e0d9fc2c6b985fb0f900f5f0c96ecba1a"}, + {file = "snowballstemmer-2.2.0.tar.gz", hash = "sha256:09b16deb8547d3412ad7b590689584cd0fe25ec8db3be37788be3810cbf19cb1"}, +] + +[[package]] +name = "sphinx" +version = "7.2.6" +description = "Python documentation generator" +optional = false +python-versions = ">=3.9" +files = [ + {file = "sphinx-7.2.6-py3-none-any.whl", hash = "sha256:1e09160a40b956dc623c910118fa636da93bd3ca0b9876a7b3df90f07d691560"}, + {file = "sphinx-7.2.6.tar.gz", hash = "sha256:9a5160e1ea90688d5963ba09a2dcd8bdd526620edbb65c328728f1b2228d5ab5"}, +] + +[package.dependencies] +alabaster = ">=0.7,<0.8" +babel = ">=2.9" +colorama = {version = ">=0.4.5", markers = "sys_platform == \"win32\""} +docutils = ">=0.18.1,<0.21" +imagesize = ">=1.3" +importlib-metadata = {version = ">=4.8", markers = "python_version < \"3.10\""} +Jinja2 = ">=3.0" +packaging = ">=21.0" +Pygments = ">=2.14" +requests = ">=2.25.0" +snowballstemmer = ">=2.0" +sphinxcontrib-applehelp = "*" +sphinxcontrib-devhelp = "*" +sphinxcontrib-htmlhelp = ">=2.0.0" +sphinxcontrib-jsmath = "*" +sphinxcontrib-qthelp = "*" +sphinxcontrib-serializinghtml = ">=1.1.9" + +[package.extras] +docs = ["sphinxcontrib-websupport"] +lint = ["docutils-stubs", "flake8 (>=3.5.0)", "flake8-simplify", "isort", "mypy (>=0.990)", "ruff", "sphinx-lint", "types-requests"] +test = ["cython (>=3.0)", "filelock", "html5lib", "pytest (>=4.6)", "setuptools (>=67.0)"] + +[[package]] +name = "sphinx-press-theme" +version = "0.8.0" +description = "A Sphinx-doc theme based on Vuepress" +optional = false +python-versions = "*" +files = [ + {file = "sphinx_press_theme-0.8.0-py3-none-any.whl", hash = "sha256:ddf877d414a2c66e13396d726115aa3f0c94d1ac9133b4df028c261bf388ab25"}, + {file = "sphinx_press_theme-0.8.0.tar.gz", hash = "sha256:2884caab1dc01ecb11d158d4dd6d3179e2dd97cd48516c769cc27360272e62b3"}, +] + +[package.dependencies] +sphinx = ">=4.0.1" + +[[package]] +name = "sphinxcontrib-applehelp" +version = "1.0.7" +description = "sphinxcontrib-applehelp is a Sphinx extension which outputs Apple help books" +optional = false +python-versions = ">=3.9" +files = [ + {file = "sphinxcontrib_applehelp-1.0.7-py3-none-any.whl", hash = "sha256:094c4d56209d1734e7d252f6e0b3ccc090bd52ee56807a5d9315b19c122ab15d"}, + {file = "sphinxcontrib_applehelp-1.0.7.tar.gz", hash = "sha256:39fdc8d762d33b01a7d8f026a3b7d71563ea3b72787d5f00ad8465bd9d6dfbfa"}, +] + +[package.dependencies] +Sphinx = ">=5" + +[package.extras] +lint = ["docutils-stubs", "flake8", "mypy"] +test = ["pytest"] + +[[package]] +name = "sphinxcontrib-devhelp" +version = "1.0.5" +description = "sphinxcontrib-devhelp is a sphinx extension which outputs Devhelp documents" +optional = false +python-versions = ">=3.9" +files = [ + {file = "sphinxcontrib_devhelp-1.0.5-py3-none-any.whl", hash = "sha256:fe8009aed765188f08fcaadbb3ea0d90ce8ae2d76710b7e29ea7d047177dae2f"}, + {file = "sphinxcontrib_devhelp-1.0.5.tar.gz", hash = "sha256:63b41e0d38207ca40ebbeabcf4d8e51f76c03e78cd61abe118cf4435c73d4212"}, +] + +[package.dependencies] +Sphinx = ">=5" + +[package.extras] +lint = ["docutils-stubs", "flake8", "mypy"] +test = ["pytest"] + +[[package]] +name = "sphinxcontrib-htmlhelp" +version = "2.0.4" +description = "sphinxcontrib-htmlhelp is a sphinx extension which renders HTML help files" +optional = false +python-versions = ">=3.9" +files = [ + {file = "sphinxcontrib_htmlhelp-2.0.4-py3-none-any.whl", hash = "sha256:8001661c077a73c29beaf4a79968d0726103c5605e27db92b9ebed8bab1359e9"}, + {file = "sphinxcontrib_htmlhelp-2.0.4.tar.gz", hash = "sha256:6c26a118a05b76000738429b724a0568dbde5b72391a688577da08f11891092a"}, +] + +[package.dependencies] +Sphinx = ">=5" + +[package.extras] +lint = ["docutils-stubs", "flake8", "mypy"] +test = ["html5lib", "pytest"] + +[[package]] +name = "sphinxcontrib-jsmath" +version = "1.0.1" +description = "A sphinx extension which renders display math in HTML via JavaScript" +optional = false +python-versions = ">=3.5" +files = [ + {file = "sphinxcontrib-jsmath-1.0.1.tar.gz", hash = "sha256:a9925e4a4587247ed2191a22df5f6970656cb8ca2bd6284309578f2153e0c4b8"}, + {file = "sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl", hash = "sha256:2ec2eaebfb78f3f2078e73666b1415417a116cc848b72e5172e596c871103178"}, +] + +[package.extras] +test = ["flake8", "mypy", "pytest"] + +[[package]] +name = "sphinxcontrib-qthelp" +version = "1.0.6" +description = "sphinxcontrib-qthelp is a sphinx extension which outputs QtHelp documents" +optional = false +python-versions = ">=3.9" +files = [ + {file = "sphinxcontrib_qthelp-1.0.6-py3-none-any.whl", hash = "sha256:bf76886ee7470b934e363da7a954ea2825650013d367728588732c7350f49ea4"}, + {file = "sphinxcontrib_qthelp-1.0.6.tar.gz", hash = "sha256:62b9d1a186ab7f5ee3356d906f648cacb7a6bdb94d201ee7adf26db55092982d"}, +] + +[package.dependencies] +Sphinx = ">=5" + +[package.extras] +lint = ["docutils-stubs", "flake8", "mypy"] +test = ["pytest"] + +[[package]] +name = "sphinxcontrib-serializinghtml" +version = "1.1.9" +description = "sphinxcontrib-serializinghtml is a sphinx extension which outputs \"serialized\" HTML files (json and pickle)" +optional = false +python-versions = ">=3.9" +files = [ + {file = "sphinxcontrib_serializinghtml-1.1.9-py3-none-any.whl", hash = "sha256:9b36e503703ff04f20e9675771df105e58aa029cfcbc23b8ed716019b7416ae1"}, + {file = "sphinxcontrib_serializinghtml-1.1.9.tar.gz", hash = "sha256:0c64ff898339e1fac29abd2bf5f11078f3ec413cfe9c046d3120d7ca65530b54"}, +] + +[package.dependencies] +Sphinx = ">=5" + +[package.extras] +lint = ["docutils-stubs", "flake8", "mypy"] +test = ["pytest"] + +[[package]] +name = "tomli" +version = "2.0.1" +description = "A lil' TOML parser" +optional = false +python-versions = ">=3.7" +files = [ + {file = "tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"}, + {file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"}, +] + +[[package]] +name = "typing-extensions" +version = "4.8.0" +description = "Backported and Experimental Type Hints for Python 3.8+" +optional = false +python-versions = ">=3.8" +files = [ + {file = "typing_extensions-4.8.0-py3-none-any.whl", hash = "sha256:8f92fc8806f9a6b641eaa5318da32b44d401efaac0f6678c9bc448ba3605faa0"}, + {file = "typing_extensions-4.8.0.tar.gz", hash = "sha256:df8e4339e9cb77357558cbdbceca33c303714cf861d1eef15e1070055ae8b7ef"}, +] + +[[package]] +name = "tzdata" +version = "2023.3" +description = "Provider of IANA time zone data" +optional = false +python-versions = ">=2" +files = [ + {file = "tzdata-2023.3-py2.py3-none-any.whl", hash = "sha256:7e65763eef3120314099b6939b5546db7adce1e7d6f2e179e3df563c70511eda"}, + {file = "tzdata-2023.3.tar.gz", hash = "sha256:11ef1e08e54acb0d4f95bdb1be05da659673de4acbd21bf9c69e94cc5e907a3a"}, +] + +[[package]] +name = "urllib3" +version = "2.0.7" +description = "HTTP library with thread-safe connection pooling, file post, and more." +optional = false +python-versions = ">=3.7" +files = [ + {file = "urllib3-2.0.7-py3-none-any.whl", hash = "sha256:fdb6d215c776278489906c2f8916e6e7d4f5a9b602ccbcfdf7f016fc8da0596e"}, + {file = "urllib3-2.0.7.tar.gz", hash = "sha256:c97dfde1f7bd43a71c8d2a58e369e9b2bf692d1334ea9f9cae55add7d0dd0f84"}, +] + +[package.extras] +brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"] +secure = ["certifi", "cryptography (>=1.9)", "idna (>=2.0.0)", "pyopenssl (>=17.1.0)", "urllib3-secure-extra"] +socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] +zstd = ["zstandard (>=0.18.0)"] + +[[package]] +name = "zipp" +version = "3.17.0" +description = "Backport of pathlib-compatible object wrapper for zip files" +optional = false +python-versions = ">=3.8" +files = [ + {file = "zipp-3.17.0-py3-none-any.whl", hash = "sha256:0e923e726174922dce09c53c59ad483ff7bbb8e572e00c7f7c46b88556409f31"}, + {file = "zipp-3.17.0.tar.gz", hash = "sha256:84e64a1c28cf7e91ed2078bb8cc8c259cb19b76942096c8d7b84947690cabaf0"}, +] + +[package.extras] +docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (<7.2.5)", "sphinx (>=3.5)", "sphinx-lint"] +testing = ["big-O", "jaraco.functools", "jaraco.itertools", "more-itertools", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-ignore-flaky", "pytest-mypy (>=0.9.1)", "pytest-ruff"] + +[metadata] +lock-version = "2.0" +python-versions = ">=3.9,<3.13" +content-hash = "a9b31ad44183b0540184a63bbbae8cb59084ce58bcf7dd717ca16aad989d0f20" diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 000000000..9258b6d2f --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,44 @@ +[tool.poetry] +name = "niapy" +version = "2.0.5" +description = "Python micro framework for building nature-inspired algorithms." +authors = ["NiaOrg "] +license = "MIT" +readme = "README.md" +homepage = "https://github.com/NiaOrg/NiaPy" +repository = "https://github.com/NiaOrg/NiaPy" +documentation = "https://niapy.org/en/stable/" +keywords = ["nature-inspired", "evolutionary", "optimization"] +classifiers = [ + "Development Status :: 5 - Production/Stable", + "Intended Audience :: Developers", + "Intended Audience :: Science/Research", + "Natural Language :: English", + "Operating System :: OS Independent", + "Topic :: Scientific/Engineering", + "Topic :: Software Development" +] + +[tool.poetry.dependencies] +python = ">=3.9,<3.13" +numpy = "^1.26.1" +pandas = "^2.1.1" +openpyxl = "^3.1.2" +matplotlib = "^3.8.0" + + +[tool.poetry.group.test.dependencies] +pytest = "^7.4.2" +pytest-cov = "^4.1.0" +pytest-randomly = "^3.15.0" + +[tool.poetry.group.docs] +optional = true + +[tool.poetry.group.docs.dependencies] +sphinx = "^7.2.6" +sphinx-press-theme = "^0.8.0" + +[build-system] +requires = ["poetry-core"] +build-backend = "poetry.core.masonry.api" From a48d1ffd342aea27dbb1f81780acca7ed8fddce5 Mon Sep 17 00:00:00 2001 From: zStupan Date: Tue, 24 Oct 2023 16:09:45 +0200 Subject: [PATCH 3/7] removed unused files --- .bumpversion.cfg | 20 --- .coveragerc | 7 - .flake8 | 16 -- .pycodestyle.ini | 7 - .pydocstyle.ini | 13 -- .pyup.yml | 6 - .scrutinizer.yml | 17 -- .testmondata | Bin 1347584 -> 0 bytes .verchew.ini | 30 ---- MANIFEST.in | 4 - Makefile | 228 -------------------------- Pipfile | 38 ----- README.rst | 317 ------------------------------------ bin/.verchew.ini | 17 -- bin/checksum | 20 --- bin/open | 22 --- bin/verchew | 276 ------------------------------- config/testmondata/.gitkeep | 0 scent.py | 97 ----------- setup.py | 89 ---------- 20 files changed, 1224 deletions(-) delete mode 100644 .bumpversion.cfg delete mode 100644 .coveragerc delete mode 100644 .flake8 delete mode 100644 .pycodestyle.ini delete mode 100644 .pydocstyle.ini delete mode 100644 .pyup.yml delete mode 100644 .scrutinizer.yml delete mode 100644 .testmondata delete mode 100644 .verchew.ini delete mode 100644 MANIFEST.in delete mode 100644 Makefile delete mode 100644 Pipfile delete mode 100644 README.rst delete mode 100644 bin/.verchew.ini delete mode 100755 bin/checksum delete mode 100755 bin/open delete mode 100755 bin/verchew delete mode 100644 config/testmondata/.gitkeep delete mode 100644 scent.py delete mode 100644 setup.py diff --git a/.bumpversion.cfg b/.bumpversion.cfg deleted file mode 100644 index bbfb17414..000000000 --- a/.bumpversion.cfg +++ /dev/null @@ -1,20 +0,0 @@ -[bumpversion] -current_version = 2.0.5 -commit = True -tag = True -parse = (?P\d+)\.(?P\d+)(\.(?P\d+))(\-?((rc)?(?P\d+))?) -serialize = - {major}.{minor}.{patch}rc{rc} - {major}.{minor}.{patch} - -[bumpversion:file:niapy/__init__.py] -search = __version__ = "{current_version}" -replace = __version__ = "{new_version}" - -[bumpversion:file:setup.py] -search = version="{current_version}" -replace = version="{new_version}" - -[bumpversion:file:docs/source/conf.py] -search = release = u'{current_version}' -replace = release = u'{new_version}' diff --git a/.coveragerc b/.coveragerc deleted file mode 100644 index 5033e7f33..000000000 --- a/.coveragerc +++ /dev/null @@ -1,7 +0,0 @@ -[run] - -branch = true - -omit = - .venv/* - */tests/* diff --git a/.flake8 b/.flake8 deleted file mode 100644 index b37dbc834..000000000 --- a/.flake8 +++ /dev/null @@ -1,16 +0,0 @@ -[flake8] -ignore = E126, E501, D302,D401,D413,D414,D202,RST210,RST299,RST304,RST305,RST399,FI -exclude = - .git, - __pycache__, - docs/source/conf.py, - old, - build, - dist, - scent.py -per-file-ignores = - niapy/tests/*:B007,D100,D101,D102,D103,D107,D208,D211,D413,E117,E302,E701,E704,F841,S110,W191,W293,D204,RST210,E101,D204,D205,D206,E741 - niapy/algorithms/*:B007,D100,D101,D102,D107,D204,D206,D413,RST201,RST203,RST204,RST210,RST301 - niapy/util/*:RST203,D100 - niapy/problems/*:W191,RST203,D204,D206,D208 - diff --git a/.pycodestyle.ini b/.pycodestyle.ini deleted file mode 100644 index 8c57a9356..000000000 --- a/.pycodestyle.ini +++ /dev/null @@ -1,7 +0,0 @@ -[pycodestyle] - -# E401 multiple imports on one line (checked by PyLint) -# E402 module level import not at top of file (checked by PyLint) -# E501: line too long (checked by PyLint) -# E126: continuation line over-indented for hanging indent -ignore = E401,E402,E501,E711,E712,E126 diff --git a/.pydocstyle.ini b/.pydocstyle.ini deleted file mode 100644 index 96b0160c5..000000000 --- a/.pydocstyle.ini +++ /dev/null @@ -1,13 +0,0 @@ -[pydocstyle] - -# D211: No blank lines allowed before class docstring -# add_select = D211 - -# D100: Missing docstring in public module -# D101: Missing docstring in public class -# D102: Missing docstring in public method -# D103: Missing docstring in public function -# D104: Missing docstring in public package -# D105: Missing docstring in magic method -# D401: Use imperative mood. Because apparently the word initialize is not imperative. -add_ignore = D100,D101,D102,D103,D104,D105,D401 diff --git a/.pyup.yml b/.pyup.yml deleted file mode 100644 index 60afb9620..000000000 --- a/.pyup.yml +++ /dev/null @@ -1,6 +0,0 @@ -search: False - -requirements: - - Pipfile - -branch: master diff --git a/.scrutinizer.yml b/.scrutinizer.yml deleted file mode 100644 index 4d847c43b..000000000 --- a/.scrutinizer.yml +++ /dev/null @@ -1,17 +0,0 @@ -build: - environment: - python: 3.9.5 - dependencies: - override: - - pip install -q flake8 - tests: - stop_on_failure: false - override: - - flake8 --exclude examples,docs/source/conf.py -checks: - python: - code_rating: true - duplicate_code: true -filter: - paths: - - niapy/* \ No newline at end of file diff --git a/.testmondata b/.testmondata deleted file mode 100644 index bf988a405fea33d1eb2f0a3296901ff00f2dabef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1347584 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

YixAS#%_ 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%0DQtkJNtT`a`{2lGi{w{Ty9KM+i$6$ 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

k>Ok@%Y-HsxZ2%ICl;WiYFb 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 *(u26?WETlHk-=fZs0RP{M0W;%U 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

CE%3RBYL@94l%td3;5321TYC45K^NIxii zRd{Q*D@}qnUGNo;I9QpkQ9Nkx{xHqB#e(z21^hziOv$_!K%<^?S|+9?PCos;WRwAP zMc<&Nwyvxz3Yso-?A?!DwIe`hbiH(S=Vg-XhAGmNP7~EsX=rW#&%I+i_JS!iV}VAC zI`47SB`pjSNA8a9yt=ly^FGj!0SmNxUVY|w^*Db_uAHL2px<|6f#zMwH0{HUpqT09 z*`WSj-UCC4SMH=0o)dcP<@Gak^!%Y&g4e_Xk@uq4f|cvUyLp9%Q_5+EYl?4#D-^c7 zpd1O7Yk@x7Mu7EN8~(Ua;j-RsT1hz4c9ZZ-4Z9tZE3jCV_wN9xw4BF&C;&o`{#-4ggZJUjH- zD)}brYRyjdvwV~G6#K1-)6->-+fr#Aj)`>_$&g)Va{cEQFgmolc&))~G9oKogUxEx z7!6KSyw>bc>x??&TEXVDAgc?D)o3hq6gNPsSw&Sj;lQ2wfa1vGl32~9JaM}ZU`$2P zjczhyDqZyL+R9@}DxXyhm2M$2DhzAmzuw^_>!4G^8By zrJazDkPHfdbSwSCV@Pj`Q_euD6(8G;?~8-K!1qN9v8zo+2hFB+m@HbY2C1Ow&33a| zZA9v48m(Gq)o65DyUuBGnyp&3rpQ*Dh{kS745RMlqAdIy#xC^ls>UN+uWC%e^}lO; zJj-kOSn6g^X54^iEB9Hr_N)6-x8nNHpPq=>1)Kk{{saa4+xk(h;(Dkb6+am;zvxF+ z*KYtsqH#5AyTgBFKn)T5%^tMu0pQ|eo>dFDxSJS)Bh8d3c5)az1bjSDXLvE#QUER< zq8CZSq=79y^E$HK;XUMHnk+oGqpT>`6&HI5hQ7++;`hga!*6K9cb@2whU1Km9ElxF3-`88g zd4R9)vF!7D1yFHosPM}v^o6jHI2N*N1N6rZRUV-121Wj@J zogfUSmjy53be$+}Z$wD=y|E!B{+<1$_AR1rd*OM7v`c;F2(mKGD9H}rXWhF%XULv) z?{jI*?$5ec@f}%m9+{szowj(J0jd03jMjLk9vT1J(PF`D)|-&uEQT&wD0J za{Y<-nP-)GpyXv-9?*s{dDmFs`ds~*->q3#)8pikkON-KhGwYbA42;a{AdX5e;VRA}J% zG($Y>sUy^x5m^Jd^ttbk$RY>zSL9!UW7Gm^K?0**vXC=K;p$ee8?RN|1LtzP|><iBq+WOyKKy3*2>_2B*W z!pTeD=6)IK;A!hz;|UYrBRjX$@x^@|)XFXj9!onzSYy!}#40L+JIgOrF%kCH5KErW<^g=!ASVc9Pu(oyERl@uKiYdLLg6&*$VIbJ3(ekWQUfz%B(W) znyP`ni&sOkS2I_BZ^%wR#qV|LF1+ckm1(hk5>w|W)wJKmS3u@t@3Txjm&vX_#ka3C zeGfhsLh&D zF~v>MI2l)!mO;O~o{pTjzIhN>0LDp8^0FFq6d6^6T8f|_!EWxW$PLPYyaoEaD8;dT z{CH&gQNZ?#J`*JtbS{PbQgO=%kmg4Xdvbq3)VX7kym#W@dO-BM(Kc$T1@c-MWn1B) zKMZ57nP}Rw>c-j_+4yxZ)<&j9eg|W1p?BilK5b98V|z~Q`kL(E5Ql1sN$s_JwJL~P zllJt=bX8wCCQ-L_?Ki-d)==+ z)+PeAhoiDBV_nDGD0RpaYxulx-!D#Q7*b6AFRleW!c@CxMgk#{zBEh?0aD|eOCKKNMei)=zZj@kQ!-SJ(CXm*7)WzgFzMjHS}|{$)*K0 z4pY2Z6R$(@Qjoh|wZW=Wn+#f$+G@5Nb#|m;rZ4m;ZUQlRs`Btv(NiynTt5O|*J*U0 zCtugfU)8#jumJed!56Bjw12(I_bW>ECFw94<57uBYP}X|JRnb18m$%ux-mK8^-iNs zZ9zVSQ2-pHsYp?r3c5N^zW=}Y+Bhrg>ZHj^x~&!ZEOgb``Br@RjIVT&2|EAVRC*ie z{CkL@SYM|=G3dUlzRoMMxpfwYjCj&$@6nSeqjXN)&n5RY`(z_WxpwwI(fqwkBR)%4 zr>$XI_Tivu)1gCIf~Rh&s$(%npB9bIVl&&!YKlNk=?6@a!*|weBO{Dm}1g<_8t6vE)3`JwfM%dW#0h z+-%f15Wpe*!gxzODuK>nvTCeGo7xnwFC1E&f*h_@6)Yvsk)4^9hww~6)o%}227yw7 zsm84a^Xbfn(uHPlxYk8DX*4)oGm75Xv_m>Jn{l)j5^&~BhUeI+j3?`r^pFT}u%`Fb zEP7s`lxWqXUFl-}F&HzyCiu`S(e?6QTXO3Mb8QZO0Y-!F}QPT>fZ$pq($cisuJH;pN$IT_n7X(`doN0{C53 zkfCLw>7SpIl}#Bhd6<5ZD(C{wdGOa^Z|DmCJ2-urzH}9?2MBDKPKe+TPSXT!Fu#rb zJ-8g7@K@%+a|ihAamp9B-37k|f}#PCYK6hr2Kh~X8h(DTKu`$Rk1K}rAeGSaOOQH* zN9RGBA-sUoXui+}zo!an6+!w}c(n#Tzt@xX(BejDxb~?+fevdL*6>)p4u)$uz3Pdw z`zArbXjkw|uO0mPj@svW1N>h5$^YLdZ{+OHZq=i)tF{^~HmwdtLqXcX7Q0&OusXC_ zhr?nsn2>jRSm2#KC3|g@(RXk8LD}b}r@h*IT-Wnn5BOI0^XWUj5r1g!CGzgeJ`o+> zulBTKmF3UrLxR4lZKjYKS8wM^&)Z6rYtqIlRqfg-3tGcB$j4_~4fqDJ33XMm-?a88u5yU`)W>F zxHK?#&_z$hfKR+SYyfEPE43M2=Ow)Yb{DupbEx*x2KbhesxyxOhQ-0jJ}_6kP49?h zU>Mq~vPn^CSuM!#e&rx1a1=aOk^v42d?;a7XbI{&j`n|nm zo@mF(5>lUfk!!Afj5jkmS2*vj?J8s7*Pd^eKz#;Ff;_9MPis>Io>#JcEDqOt6?n9` zU76yl!Bwt|3{M4meZ=s5Alp5>I-Z?*?P8%_8J?lOCvDJ{exAL@R_6I8 z6`ak;a;W50SylX>CC_a>^M`^w3;cYdUqqfaYP>-o;v5fA;JzVek!^F+XTQ3h%-idGM6}YUi*Xzrm&&-k3iiLUwdu-kX{UA@g z;z%<8nw1|qwDo;5e4M{nyIUPVwr0vGROrrBSH_2(R0>$vH}l`H4a!iuKvCS= zfCbBw-EEisL>zS*HV~z;+rE=24xfh|qS^FC!8+lm3t@4yN4R(qq#{X_H*>h`x?=?Q zYDgwMu|BDMuc2hlldXDRy8Su0|B@>A@_N-mx^rORlTG5vQ93@OdptStu1vG?v&;sw z(_%pTsSb3atW!JmHguY7(5tOB6n|Q4wV*952MYFKLMP8f&f?Z!Yx*Rjhl@b|I$P73 zg5cMeie>!UqSAZdO6H&7`mjRM=X$=VZRwb>;#TNjWzw^c@&7d2QaFwLtL;BwFgzzgI8qp^<|F03k?3Y?(3Z5jVQTgGQQNx0Fob#3V~ zXyZ@S|hej0WWn|beiYDbva zfo16TR#44>FLTiMqM>_>0*YJ07vjkX#0wV^v*j< z$z>{EcF|tqG5CG6V&>@`o*O%MXLV<_k`~qfEk_iI;uD|U5N=sD%k$Le6~15Xe$%)2 zo`yzC32bdLUU14)1vb~M&G#dY&w@DYD<%DcVOy3h+h|4Zr@qe>jd;I>qKl-PDphY$ z?bRnnD)^OEC5Cg;qDOK&M<;XrLkH8Nt`4WSTJj-meXyTFk9^_TVYPTXy0H+Q`+eNyG23Y?`vR1LAbEO)|VM)G3 zLa(Hoi;s$jii1S!MNNc12yKGvf*FDY{vp1T&!r|&p5$h-1Mhp@7+yGcC$}T#I%fhW zi2WhEBXOA+NBALPf7V~`BE5j+SE!&Uif?x~E%|-&D*Ro$%zT{Lp!AiH(6~)fJ4bF_ zBTKF$Ap!2EKT!`$&v4|Wqd*0gzK%RcPHtkd^lb0#ELLKpuhMs+q9^Ldu5aIf#p+$8 zdoH)17oLb?exE)`ImoMIWxnaoKK(3+KitzLHu~{Z=>o*1&buql09W0L`X8XwTBHST zM74D*sHj_VXMd2O-@S^|z(`&#BdiOK zSfsUXl+!Oax8DFqP9-isH(6$uvtMFrNpKHfW_rs%>m*9`DKiIbXR$gJ#qn8w{i@@I z=fepJEpwAoDzRvkpPSdOZ(>UNKm#J(K$O)u!+eRAm>~29KgpRzu}}|bb+jv@#wH{r z56Wtlot)CLUD^OmB_==D0~)8r-K%X!qT<)@ls7mSr3tzFubpJE>_xSK7w?66wM?s; zo2{ZsO>-|bXn?9DJLun>T+2#K-uTsPEa+%4z^2-c##HGEhqOu+%E-xd6j-u)C#H1T z5sw0cG*AWwY8THNnV2wh9U1YhD6qA zLEEj{p$A;*9){}Fr6?NpfczKY)-t=rvntbg`o`vndIR=__sXsnuoBJR#rEyNV)ZDB zLexi8M?C`vx=lz(O?x)#;4YjZ`0gDfpTv5FYhJ|_SaDMt%wlyfs)<+(sg8vWv<4Fr z8dYwJpZgYO(0Hm={3&7(KVe)k3nVn8NmrEiE~)_yQY~~=tcDU2+Ei1C%I)FU`vBS_ zxp$|qlPEPbUAlcFiuCI+K6Auk0i*>DyOmI=+y zqTij1A`pk%>NxcJiAA$tjQO95Puu2=gw=q5qP4H{3sjByUEkc!V&xZwgRp8;N4+YY z&V&T$S#5IqS^GHpHfEGPfBO9N&9wEj^l=nq+6E^!S&>yAi7Bzs>}D`T6ZIX^vwE;t zc|~EsH=;Ve%+P!xw5ilusU1GQqekpfZrnWB2Bo^Mzdgx<)(U-IYdsmOEh`V6pSvGG zTk5M<4sS=4jr=Ps7XXK8y*a_q`$C@E`+oJORGXN3bNnX_5SRLrd1*a>+t3E3h^wtA z7`Sn&6Jwqww>KV7?NFu?9%Sbrb>(zhzpMf2c?JCvTUbAopG4H#e7RKgJxcXgxAsB5 zI~N5#uLo9GI{_-R9-ytnBHqLn0 z#sWcYT3v5Di&e-i@&}G7)p2xf{T7*hGxORyvMrgF=L3D4=v?IYyar=H=@*j(n4h$@WZ5-| zO{Dg-3y@Sr-qN0vuOTLfZ@pdy69r$WW3>|n%deU6z-VgPEmeeQCmP=rM+AdFQ>NBJ zY0n}b;6=ZvJfA%=g?`>AGdEA0*mB8^T}VcWNh5gWGLYHeHZ>8e&PA%{$;@K4;eMFZ zuu-Kh{sd+lk1%OQBAIb|KbRF;j5^4c`DR4COOZDsUhP+#`6RV$lh*oK)RXfw15YCA z>~0}*PYgz%)(P)V-46ZS>$&}$Y43`eTO|fRBU>dHZ7Q(h8GN$O9VcRxsDJ%j;|A~z z_e9mH_8X3Ua%yd)6P9r}>eqUv>Om6qu0RK(8OchT<1v`=(6VybXPE|e(>QnAp(`} zm!G(b%HMF>#DX>`HI#*YkL1;(NQ&xF?Zoq^9$du?>gNW>^FmtzapVjloz&yA1u~Qx z+2%JKcI-_)Qa5)_TW zc%Tn`kqA;vB=0E)w}RuF_Oi8eU3cNXh)h@oyU*4do3`N;?Q}!R91HHFKjlQoj&=e5 zCH&Vdh(C+PIsO+*^jEVR9nVXh$V6lL_cZ}NnXRe|JdmEkw&U%5t#hFZz)3AMdk?YV zDSLw&H9PNJLSAnM8_Y(zX~9KWtr{&BpBN*qbz+%p+<3EZ?glul0K3#jghxJ1Ct` zd8TXknx||TJ4Dg!K6I~lMERSm>)x-*zQ%T@LjBNhn7TDk9;`P_S@IIpaf|fbVXj^K zvTtMt@EYv5XP|4@n6gwZBU3h~Pe!w7#q95)OqrrytE(&18~%guz>s?@fp>=~(<0T4 zP6FSe*G_wVe+0_)jzIW3ugVgT5&gfb`#(st=4>J@!eLS_lwOq_e z?i)V5W>BVVner9aGBG^Z`zNq?snhO2^IJLKyZ z76x5yHPNrFU~k010|)%(rm_8N*M(6wg!Z|^yz^$zg%R-H8jr{m@Lrs}+gNe1eZo~= zkMHkMf_9aA`cESOp=yVJ`M1j5+z4QPZtjz#NAOZ7CI1wg$^BjY&wdv#kY`>3^zfEb z^Cro@9uEo@eWY{i19}+6tG*|tWzp-To0|MTemhP4k9tGd$N3K1WAi?JzjE1+dPE#v zFRj<~|MC0UVRTnCF&+A^T^syg;;rlC>KUIxcIC;|pFJ`CClA2?+sUhtMpGIdJD4RD z^IxZ?an_-%`_C{p^{}Oou(L;*^ltGBYX89KRJ8H@0oqSFga9 zSu^G1c<>?CJ-nvAUqJY*{h=Rs9jQ3?m@jUy=QTQrhIRQS*@-EcV(Ro80^_tK(cEpI zn95T8fc;aw6guN$sOFWxfD3bd8eq-nx*o6XVb=Z6(trmVJnxNb&Z$QF!J0Z$y1kd{ zn))k6m(D`wrR;`wXW&KD}HWKW6=Y$J=qSV*O69a^+Ro z56JM)PioW&pK=RmAN6nAtvcFMypNxSx+JO2KfbKm90~N5ien*F(O)BvyA5S$>X7RD z;eu1)i_O5NFyQSe)$w8K(81>eya!=bhUQkqgOOLysIhB%M)r6MXj4HQZ@&ob1wQ@K zZT|1Fp$@^G$LCZ>pV3&?gj`%Ctr7eq@L3(?qpprmYwz=CKvweu);fSkmY3!Z!{ZhC z**9PnE)){wFeg1NyEzQz(*|-|o67AI8~f4C6LAYJ1JB_#Bl4=_$+QpfjP{ib1HK+U z<4PI6&>ofPb0Xe+I9k0e73fDq)!0@YeWqPJgQQ;p?H;~|?^Z{fQOZNH^PDE+Vhx3# zHO1R>8st7xZM14FdZdh}RXa6KlLp0h)0&Iu687J2`vpRJo(&gc?*%x&TtAd4H6go%h3qA!Co|5d+}j<0$#%!zw3+#jTEY1UP7i@CjIELf^}yv2d^W=6#}>lp zVz}3XPhpihi#pyJp2_p@`bsVJZ_7OQiT68PcpI`>>&|^o$(5DPTiyIDRP+2G0b34Ba{2 z-m+3r=zG_cJzA^~ezT;9|AwAGyPNWQqnCvnUR~j}Zav7bnY_`K&R%EsE5trK%Vj6~ z2a3zSS|Svz3ikI<_VBBH_K~!EG90zkQxP17eno`s-UA`R_Um5#Km28c?a-}Xh^S8{ zdFltQ64I}C@HspQc;A&evp-jeA3gLQ`pvGe2?5{woZWChHfhQN56^4sR2$!4=n-`d z`bA6Wi3V}vpu-T6yFP!5C4_%Dos^XfJxdk!>@OboRW0wS_vd@{xwbuUe^@Qg+pVqi zYd_`$(-Y)Az9aILYn$E@mF?*zI952>uePLnB>RmchVz*h!uo9fD~_X>sfN?x(AXU) zXtu!;Z*o{nC~z+dlWo?SoH{*(0JNfT+9-^#8n6EeHcNDgYEKGzAt?JF`y1<5+#Xpw zmsYi&`jaE+{vFoNFG~vLFpy%E=e7R9bq15(d%uiQUn}e*i3)Nx8k|XAzSAXQTzuca zcRD`uNdF?#^QykCa7SrnOX;4nbprq>!IwF_FZ7&3I1DxBBq-5=Vc~fH6%SYff8)KQv^XdOO zwAElmVlzmke*P~*`i^+_x337+mcV*>t1xL5taI8+TNz+YU>9y%3KP%qUe+031=O1j z>x!bNH*Qw9u4t#)<$qr?DdmymMhdO!5|ON|)1-~;jY*xN&g21Yi5E8qXn!Ny|EBAD zBR_K59^ggP*ol4K-4(xy%fDVE-4EB72s%%JG*^-r2`Nif)*sT!@~>A*xI2<;*c|GX z?4wBN7dnv##9BoA0ZC@0vdIzXd!lbUNQUMm}JvBkmCm}vI0Y21G`zRHrliXjaIF* zYBV~nUFWno&G2m~N-a*KSoMmBGPD0Yq|2Tg2mh!4q>bmgz|zyZ&!!0T%IZizj)@j5 z9DG(JJqGMY@SEm9I!V}k@j8jd1pVea&h%hrPYC+4O?ZAf^kZ;Mq7jD}Ny(#`#fG}F z8T?%Aqqrr1pdDzm;V;9fhCcxN_Pr{&K4FQ6&-pWg!4u&AEa8L&klq#)U|)_b@eJ%s zcptS2?<0|t9U{2zAxRKJx=U!sZc#oLhA)QS8RDWtkmic-^MQucWp`Ds>%HpPZ&qX~O)lH*P8)^nWY6{+ak>e+mcUm$;$WnA^06z*4qdTSSNkzNL}NGX zP^Q-hnJW~sJ&qn+BMt3r)-KQK zDIHyBMqF+L&>6=cR5G|`w^qrb^Iv@DId2~GP1$5zb@_W~vv%Lt+;Y8#SL`OhSTD~8 z_?$FYcB%CmuQlT@NRyiTisrqwfuGag6(gc*z16oFe{C_e0kiklS=bo2nN6}O0j@WY zXpG#jq;G&u@h8f9y}+-sOd|6JLwHvi*=r87-cVkAwLQN}Pe#Y+9{suJF~1Gi=)bPtmG7X; zC6UJ;FX3c*K{>`MJh|hf+Ri`+jOO1_UXOw@9g(kJzg!%A<+jMYCy=~WU&#xLS{QIg z4f)=JEu*&zr_G0QF*JeJ9aX>jah^*oKr6=Eb2ZTM^t$`rTFI7L-uyGYM^R@x)*#h& zUZ(D~XWnP(Rr&pS9-Vf=`?J``#cv7Tnh>n$du5F9$Hl%e5o=~~YeozCXPv94j@?d@ zQ<|*uTOopabqenND!em_Uh#M^IVT~=XKcgjzCFcqYMIqT^%?ZZH@znN?h_r_(V90r zYNpIo9P0hvsc6rhUAl*T_z}>&>Hlc;d*rnyyFK&Q?&Yfn-0;Y`{h1(sYN~MIf^Cuu z_07T$rp)wF&UGjk$3O5M8OpTTAXT~v-oM~=?C=)x=G%3J=~E9VCdDSJ#zw(21Eq28 zKlD1X7i1Phmt4iq(xZaU3KC~*=h^ho4?p7H9y<9N0($b&ZjC-VD!r(@A%? zlgef{c&et~lJB&MA+IEuy-uGwO0H}I??wntlt6kz@B_Wtz4s)l5(mJmMeG!74f3?}@6QaPS-3y$TK=md}4X zO}1hH@MrvGNWHE#a)pzXswRPJ=^P%E=elG>U76p_YY|>OXD?PRZ4xc}b|925!{gS6 zP`*oa9p5d{SHgXH<6>gCheGD?JWShovrNqd#|Fjw?84%{%zsq4oxdRq=nasjwwB4x z_k?DQqtD&|8vW>ZqlXGbSdEiWNz4giV>kHgJaSK}bv?d>dPm8(&v;(FnfgNgoSr$| zp?j;mS(&c&>maeUg>JxX|L^yBaOzm|chuG8SODO4jq?Ip&#e{-e6UUW45;+Xj0LOXU15(6-}!G!5Y0&*e+Dim2KzpXb#{ zg!a%W&psL2#nSMWvw|Dry#%Y@tG9l+myr6@UINetnmegE&b31Q@lQoNuY?G)^KwIl z$6li*+o$+n+o%+^-L^)&{l_Lg-#zNO5ug3X_L|()bxXi40k;I)5^zhvEdjR#+!An0z%2o{1pZzLz+Q^` zNc6vZBuX6qd;6c8yITTo3AiQTmVjFVZV9+0;Ff?}0&WSoCE%98pDzK>{}-~(vLspb zWpRn9i{LwI6}gg(;k88<|22POdlsi7h0L-ivEzQB_*CJlmob<=>@jC=hIrUsSFNX+ z5m^Jd^ttbk$RY>zSL9y;ZH@wIK|*y}HV>qqVdru?GAI9qicL^S$;} zwD0GO&Pe&aYbpjkwtDqjmPbD%2a2zLKctrDW6)9orS{3(xzWD72{E93)s>2GH<=7e zsmtYtUKFgE_77UPhPQMe3MOqa;Sse6FO+rmLBQt0#_^F?dl{Y<590a`q5z1GYG z+67+Ueb}B3yL&NWf72rB{pR&NHXK{4tX&`8Tj6!*BZXwJr$VyL6W;0PGd&O9$@2X~ zu->El!P9=9uZk9^va*EJ*2GGWHHCLB(IXVTV*U|$zO}q;K0H53*yi9i$)l(b1czTM zATPJ6#jB|vD}U#enu_s{mnxbi_w*Eu1nncxf~m>^X__o>AfpweSB1s=NSDPX$@-K6 z?So2dx0b5nx-Asb6!(>aR;HkwG_H8=C!lm$=;bpN$^;rl71la?bnKezQ}pcdr#hesHQm;J0VM$|%vd z?{rO#f$;{f70coG*vLY~$3AoBYr=@WNg+$WnW$iXgT;j6s+cuawaMB?Uin}9^8AVU*iCpyP zD^P|P*Sh5((beS;wR1cj%zjpcPL1S!zh~XkN{-`uV0nF2`ekddyzbyX>fGD@Yxs48 zQc@TX6gtU+XVPFS1ng#`T5EIKEjowJh+=Jmju`rBavI`I2D4RfHQ9}7olQNgxEsl; z(}z(Wb*Wb$?2CMvciJwf(=d7!3(5^;GfVr_hO$L^`D`8M)#z|&PF3{+Z z_-q=JU5l*NoKCx17jMy94FC1 zEU!a3I#dWCZcceT3jW}}@Ov(QG`8Q! z7hJ`#EEHaz4cA4&+c=FDJjBYdgTx$cs&Y*D5ZhtY63DQ>(UVjGLIPy3!Cz;ERKb4- zr!Ui&uEOsCfepVOA~=N8G(j88XCr?P=Kl$QWga|tfWIE6d~sWB#~~0D4S?%fVKDZo z`X)aOKR;L?D1__B6~lRuN@)2dNFBnX^B~O-UchNIUx@8brV45m!F5kM7C(1VcpR7i z8$ly%kMcS7Bepw<?U)( z#es&8$!yX%j25%aU^h66a*8{H`-B!%4Bg-FJ^@O&N_YYTc4N`U8{zj5Vg7tbmx&(k zfb_WV#Bxagh;X@!l%?~)Ah0jx+`LvH<>TrSl& zD5Cgf@ZwR`XvJ>3FUE9nP7mbFl*ab&0Js@Vce@G905>PltFBd!jR`S2n+ANoW@SL? zr^8ib+9g5LSD>=r3BquCS@050*NNix!u3BYRwvM^T$VpFPA7`&-0AO+>}!8b)?aHQwuBHjn^%n9K++?AV%j^M67OgIX6^%Wu--#;n5g6|)e#$&>~05FKQQ~f=ATu2XFsm%&(Sa+ zFryYtf=o!K+=ymCdUd?UqO%zs4!aXsoZAgrjYE%s%HY%#ONu-Ec5h-Jp=Wv8`a3*` z!8rBsn7y#7GQF<}86K`xZOjVTk{c$u?!$mcRnJ1b21;J8@w{jL3~ypWsXt4@8qSg& zluVX1rLWQp=`@-ae<;ort3)4*Mu_ynuY_ZT@q#OY*91-YxA=?so%kYZ1C>byk>8Lr z$wb~&-XdN%o|5}6H;Ws>IlvjqX~^NSKVbJ^2N9nW#YBD9eb!dQqKd!zT)%$oXGQYs zSrPE6N#%f7Ojr>%U6=8dEbNz<=4jK@cf#}nE-K&RsA@R&!_)G#79Vsn^>o@E-uz#v2v5qw6`i=Nq zR6xY6>n|Y@D}EQ9r=?3Qd`=JeNjfjqoyN69#S=ZZc+V$>`;(<3q89WAPpVc4@f*7N98^e^3WWcEBNPxrHUR3^-h*Su_VN+B;-ftxFv#b!5nx2Eo)z;`| zN?7Ww_NY{TFDms)75kZ1C6SMO&Pe~MgcSiBnZ93%I3s#uZ!-|wbBkClv7bKFwV#7& zFH)|bD-ECRZf#NFJbz!|ex`_HxjW zFkw@_qCKi6_0u3p`xWg`HKC{4gNXeV?eRQ%xIIdLMSDDt;M46vg#B6}R_ZxSYp@r17-q6==bVBIf=3|FAPnaM;KkXMz)j%Ey@Q<5Kr= zsq1m^vyMxN6aW4Jd$X4iw`_C-_w*>wR5-4e2>_EW;$K)}Zp-;9zbK{-_6YPa|zQHyI0tvQ>nKN@N z?YP8v1!jT?f}`?Uysv7fNQz~P6+7;Mlkx|`k5*q3E!_{cFTG_xV}^N->hB58I_ zP@=x&-(hp6@S6ozUO@B@vTh3>dL~Z-MQX9fwzoi$8oUNG!6)XavK2jiw@n4Ro5vpM z2N}B?a4fH<2b>zt`N87{qLTo;26NJCd6P4&3`%a`dt)YOaxr!^YXlF1AD_L!B4Q7I^lK!yHm!UIMJt{2%Z2}*U33~UBz9zFiCs}^E-h~#1e z@BX9bdwu`%n2-{W9^Tq1?|Ef9JNWzP+DY`muFt~z6`G1W7Z}XQgu|e*>a0$KL8C#@ z_KXIL-5js6spFByY^Oozv>`JNEmF0&xmE4Qu>VP__F8%lzgRUgcc1sW!s=A+p+Edt zs`g{ji>?3S=&Wx^C-jYvZvGkLavZ>}gD7oRw#Sz{V!Vz_iQvxiVN>FNZyvLk-Q<9Cz&c4FDaA^lw?U9k}i_Ak|vTwi9r%036=Or zWD<&gMBkz>(x>U8^g((Ty^UT^ub>yvuhM1o7}mF_<(q)_+9Z^;^pFn;+f*f;!)zE;#_32&_mo&+)A7*P7rIvHN`<< zFR@t65#1ME6P*(s7abPu6YUVaEm|XbLo`n`RWw0VBpM{j7CA-TMD0Y)L`fo(C{`39 z@)voC1j5I{Tf&RNQ^@||fN-a9t8l$=xp1Lyrf{-wlyHbJN7z%CF6vx08~hXi{C?+Z2y-V`hm%n?ixj2Da)6bSkX?1C7~hvK=Tp=p>K63_^(}RTIza8Dwo-3V%c+IbOlmSUiW)-or+QM|srFP0sv%{j z)Km>BkWx}2icQ`luaf7;-AM|hv`KICoTt>Z1@E#S@IP3Dc_4dLbRGI>3C9eJ&IDZIKo z9WR;}!c*}iJRbK)?hWn*?n&;K+)ub4Axn{U+-2Ma-09p&+!F2(ZVoq-+k@MY+lrgQ zt;^MNqqxCbZ?1&P^>>6ZwD!wEk%Nyg2oGMSj_gEiL<;fLKMN;LBDsmB2dBciaI9Z;A zUl>G{H>kK2MwTbSrFN(m^>Ic*mDhuN?bxAYd0n`ahVIqD8C1grxR=HbA=O*oT9mK$*fRnUMlsDgT&K^4^D462~Ef>1D7u7OK!5fe4e&}4ZW&Y=3m;*6Xu zuZ=SzvOET75b0Vtqb19uaR!l&!Wj)&UK3~3RCx{H(Uu)VmPf*+mk^H#oMBVt;c)LI z;v!id2AA5Pd!aa^Aj?B=2JsKZ84Fb&1W&hN2a@H1_!25W0M2BR<^DK>3gCw`sBXR$ zPY00YK5(fuqOHOiR5x#&LA1Sa#zK~R;tZ;!5@&jm;6j_pI06BRiXSl?{h`E!f^<*)V)bLY581 znE*`8!s9=;?Z%W`o> zN|oi{d&F6?tUtaaAj`6GMn;wOt9VaImSw@EW{68)oS~_*K5(xYTS1of#+MMkUO0pJ zWmeqtAj^8xj z1_`A*&LD2x;OVAp7FpI6UqVc};EaPR>x}OagUGU%@g)IO)(Kx?y+@UGtawpImSKo$ z!lBAAL^UBw$+C9vd=o?qLsS#Q5J42WqN2(WLa~V^Y*YsfQK_hS2%-og6+Mj+DiuAA z5h@iujSz}Wq_QPc8GM6Cm4co|5JeCv zh$ccPltER-0F}a8MV29eLYEL@j87@3${3$gSS!dfj87@3$_Ss>L<(C>mLY&5h-5?@ z<5MzfJ&aGusB{>gl39DmGK^2jsCpQmlF@4zpOR4%VSGwPO@#1?O(e4sV+>G@5J?PB zjd)}k0w{uL#HGp*KCy{LY#~{O0jg0fS%v|sA$l4ER6{mdh5@SKOJo@as3dd?15^^K zI0mRBRB;SYNfxpU15^^~7zm&UA_=j__>_bSi}5L`2U&*j3Ee`44Z|7KycnL6(y1~8 zPi!KIjqYK5YJgfC<5L4RpDe@p)Bush_|yQg#rV_!wIRYMHqn4hk!1*=2qF;`65~@M zk{iM&Hj&6C$ubO3_0c^HQ1y{;F+kNvlrTWmN2SC7RbNY%VSuWSN`e8ZzJ@A80L3Qi zvw2h*LMX^_$ua~{1W^x>#0XW7qRJ3Lv59(YRB{ASC`Sw@%P>aOMNeUjs*4z7jH(+& zmSK#li^e&|sJg8AWEsLJf~bqS1%fCxQI|E3EaTuys97;Y)n%h*K@dd{br4OAP<13! zDMBbVQHM>Cr3j)3B7sAeVuVUikfj)*63{~kq1Z$M8jPg~qR>MQsuUp zWGTj|IP?(4s5sPo2%`uhE{ZC}5EVzA% zv57e17FmiRDi)E%5EYB0(g^Ow5D@fQUp;1 z5tB`pVuXr`B1=S&AVl8kGq{R5Wpg zEX5ENh025=icLfjm&sCuQ3Mf%Ist+xbcr>EEX5dA6O{#HR84dbVHBIFNnD~z5lBJq zB3X)2ss?%rqf`x4D}+)6Q3Lg83{o|SAE;6UQYiK{ae*wwC>4nwM<_)Qk*I(&^JFOosYp~+3{sIu<_M(F(@5qRqau;a5k{dasD22d;I;3`QiM?i z5rLRsh>Ac=FhoT}k&_Wbp<8llGD0Xe5kZ_ICu4|;5RsEHL`6uc$rz#{h_lpW1X1wR zcjRP*QRqbhIT=G#gp8VuAu576Lrz8zMG)Z}YBEA7HWAKRNlr!(g)SkY7@@)?*hCm>D>)fK6uQKtCL@GGmxxnBqCHE(8qJa{r!At_ zgdYhm2*i9N6+r5F6SzA#w>VyBo7H+N~X`Bu2>aR*pi3bILQ#p8oW9k7bvIR_l!EqcyxNtzuTJ0 zUf)&V@kUC}x=YQ;dbwE^U z_x})6ce-a_=ukjmIzR*wMKQ2jVG@*-5XB@6R9w5)T)R-QSH)PnS9k4R6}xfG-#vrZ zokd~ex9|Ji-S^HPJluNDb3RX>=R_Y{bmJoNj;CbWt1>v01Mf~}+~}7txEZe4dwEg| zZY-?s-N`KC9C4gV&vw{^!G)*)7zFYYi4ld;zqV!1=9PKEY3n#i*ky!zGPinzg45mW zNb7|S*e6n>*u`m6N%eJD2z5_NO7Gs3Tr+&LghsG=9ehN4a|XU4(tXZkdPe{GaH;|1Cy=0bqnn9@C>Aee@61{1|jR z>haI4HH;ZZ2jtg58Tp$vKPVV9FZ+VJq5UMhP+EPo&PdO-q@__% zzn;JqOrya)z93)|fKf(1nNiaOCKV6bcbAsVG#cHSaPa zU5?fNNS0$y`?{YYZZ!xT-d3NdPth+jZ__DkKUQ&Cwp*_q9jRNU#pU-P#uR*3-Ko7z zNrn_lZf{c_%G^2jq4`*yFQcIADP+-CXE}wdt2gc!jCq1&w=LZ<=8j6&48Po6U|cB->d zosC(}aSaQQgtLCmeSI2pDsykMcGd5QAf*n0`8|n^K4&f2ke!v2lW9QNo5E z$T?qt@wYj=P6F_k5ZgKVOZ*KIA9~_WTk`E6@g`dZPGvrBf>mI9^41QkD6`U|SYgrj)5tQ~i9@r3b`;w; z%y9lV5ms?DZrtNR?0^IFs0R;11>O?3oCen=tQ!NdiVPAmyc+oT8YHQ++7TM-30GOb zDf*93eycLUA#?S<$mG}U7tV?u#iP_Obm)X)WcmNa={LVG=s;{#lwEz!!F&gx9l?|N zbv+Eny8NIzhbg+go~$Sx;8?*CuY!HzNLu!8iC^SOdmQbj-+b;P_6^R!Gk{?OiD~T# zQN$YzKbUI6sMEJicFP!YR9e`J=j87SI6|i=rIYVqI2zq%??`gHxAV6;{Z|zI{ND7r z@B1)?Z8((1g{2(cVh>4lC;N^&LeOToNq-~6zP!~tZ7XfVvryg_ji=^eWwjrapnR}? zt6qn2j{~sxX-pZE%x1DhbCHvapwvP^WJB0AnClKUKI7k?(UHsI?aPU;ePjskcx|k3T(%CvYxiDY`*EQv_o>Y~?=EmbooR zM7fzfoP4Wu9g-}pEBWV+*!P&~Z1wNwaJ%e-?`Jw*rmv^2ALGeOeKZnzyU?YcU+GNe zx`7DgmUR`mbI+@!NzGQduAl*5T|AR#z&FDgD?a3rW`}x6Mn&1H9nT{li?LU+E##1w z8M)$9&??pl$GIG#o!%Ws91<{{tu6Ex?Ytf+Nb26pXYY5A=X2@%)jLT~njIA6tUXK- z_j|_8e0hqhn;e78pSOc~x1k={Gikbn|Fwm`Q1?bO%p0%)-Uf){webC2;l(rC=$l_Q zK;kDK=amFUi$?{(JN;Q99rp^)9tO-j7)6h5?=psa-l9fKD<_&%P>0`9UfTR2pC_$s z2G@SnD@6)kk~4hYo6~de_ChehpGPAc^~=oFM6^As)WAOjHFDGn-)%Zz=1>=r_Fd! zEu7C0l!9s@xF1>Ioa^mOd{<{6BAgaa;r9d=B#(vPJ~$A3DXp1f5Y>e~^rXKi`r;#g zryi@FPVx407JT!g;L&P7PDBaF?31PQI(28WCQcx=Y1r6npCg3t5|b*FiOdE9Oz!{O zu`j*4+&_%NThf$!{$wf3yPICIJTr+kB5YbnmQ9nem@=R!uWrxQ(X@&meiF=?12Xnt zeuZL_X4S(xtk@2B>TY|QAPnAQf9~SReh^nGEFFE9)u@FFZO-})l+30~&^QWzKm5f$j@!HW0Li;MkX&)dT>}=;4 zKO8@^`VXC1L7RZ{CrIIZ3DVlmjo`Wc`4C(?3>aAl?bZB`hqa%&a#qNvfAL=ZyL|4p~A4?xceai81*ddw_Z{0`{tfH?GKXP-uw;JpxjnqsUAbK6??{cqrXqu_Qv zyr0h!8lktt`_QW)#e3>M_jDQR@Bg=_(!u|q6LA=UHjlInP4FL%0FD5T0FJ~=n zbkd&+5)Gq&^`OiUAR6xf9Rfo`aNJY;ggW+RvRVI_hWG&7rOe7PUO#BqX{L@l0E5vBX>TL@7 z*rZ)vj<*f!F5DQ{rgIE58e(uyfyAN76n znC^UAG=tb)pXb}RQ>M4kKOa@0Vj!(Yj%ajaCTt%|`KgVDu^orKqm&OyVKk|PEgx(n zM{&HD!S?Yf(tmApX+0^8_aZ*UM=~#hvZoJ~a=hnb?!ktzm7K~lmq7Z2`@(iz$Z>oO z*O&Qc${>Biw1l_{SgpXD<9Wu_SJ;;GOCBz>qD@`Eg6=kdLL%l_Ge$i}4IUn!F>l$n zo}rBG9Q$o!L;!&~nmi`4D>L7wOAgymsb^RoNp$$f0NIoL6lQ=2Y(o>dFZRNMaXRB+ zWp}?~U8?)m&X^a@2FUKO9tLHEW1b?h?I-3j@}dSJlM>DsdfAAt!czh3h%Jz4y_2oSb#`^^+@( z`WCux8E2?%+XXnlHBr)cF|?07UPLUUELUk)NVn1tUYkf=TLkT3JJM(sPp9SSC2w3vGwsLk5@0Y%2mNa?KeAa{^?(P@O4{O$jy`-c|z|Cy? za$jN}U1MMF9RDeYfR;m@eYYTeMPFkpe;JK+6s{LhyG?>Li<#{YDS-^r@$_@B7Z=@}XYNNMHH1|EwN^#BDR4MYk0eHuX_Pw>IhdKAd`US=#=22B? z*2+yronE8RTeTLMNu$%r)ab}(Fc@_vlR>4CX{{!cTtBKup_NRC887{UgWgXg;9szr z2FyX^HOqDAjq0MZYto?^FwO-DJC01CjoPrAAKwsoUg$S*T}PHS;h!WT`@NfKXe0P$ zxk|mex+*oUiv9Oh#kMW0#+|rk)F>5dwOX%K%9KX4Rwh&F6&lpRv016rnamokRx8(7 zHENsL20qvRG6&&v?Z0QPb-4Xs+Qi{xa0GA!a0GA!a0GA!a0GA!a0GA!a0LDV2p~?E z2}Fmp1nOh*UB+wL3x~7Bo9He4_YX&)$eGxAWP^`xN3tzh*;yg*H~yoa#&~N^nklUB0H1!cWun&7{HsmXXZ6D;BWo zdu(AikGV{DXnvZya)K|vx3A_CQLeK{|-)nGfj-N?t0Y zUsFb;K$=5+JPc9FRX59w8MZg)tzlyyc( zd6ccTv@7GmW4Lysnrz?ym9eW{(HyV1@w%l%i)QS(%o{=kI!p%V0i+h>{2WLVk-N4u zkb;=tdNMVr08#-X*!JF4PR7 z4{ykL@o@xj1pWd9@EPI16V31`eT~4A8|&Lwm=OQBn-QKAIl;Q%qhdC`F0idXHc}4R z)+NU%E3;w#Jx(dJr4)L*{cugC7W9Kufp|`VbPc7w?fpC|)wZswZ9VXuepukm9pXDk zSU=(KvMvzfjo?2s6wDQLpPBF0Q8A5gSpRol9D3vP!GER^zz6}A--^oGgI3%nm$jeB9bx}ZA@=BSNapS}g% zMbNLCB~J4Oy}I||af_k_Yy18ubRakJv@f78--hn8uB1m^w{HV&-Mp6{q4BqWNk`Hk zY1a{J1B*GxdQ6vh33tGG(372nG@rU#bIZ|8w#5G@btw}Wou6an0G(j095nX91Sm&0 z_rrdmYYFWZdk@~Z#U3@bCjDW+z~6oGaQJ?<^h&Wq#b2=9!n42;z!AU^z!AU^z!AU^ zz!AU^_!}Ys_Wwk}G6Ll!ImR)<;Q;#Y-}6`CT9}I3e-?hp5UR@l(*$SP;3^2tvd?g5 zAMVCze9PX}^BE;O*N67)nn(OIUBJ%k0#TyG?7ZeX4dB_^?Lhzqv8c3?=Qg(t?CZcb zZW4FWL$Le8>?_l$!)9VOUomul+g|uM&0&|#j*$I)FzhEvUD`Via9dA*BWTJ1IYJvD zp9(2vf9A+tauTjPvHG;ePNJXqH*^Y7J_|p)u)X8mmR6QRplhjX`G6$kZ~0 zS*J3|bPBmDyD)`B(D%Ts#Ox&dHduVP)7RgZWaMcXXI{Y3K3M0jry54?q`0I3IqZnO z$|`rtV3S;~HCT-Xxz%Das1+JLN?B#F%2i4kYCU3>nH5^CNntXNb}mdt&C@2PV1z%} zq+wRM8CmIQwU8LIK48`IkiPb8d*&%7cx<{#-99RkR=#3BV_zko`H-B$zHct#=Izq+ zrr+2t*w`67IJIUKG(0BkWHYr)WtlYgRo2JtU@jJc0pfFbD;{is>LQ76zK@_^IrR+L zwrZx}`iK=S=MJuMNj?;%G1$xmu_~M(&NX3G2srHWyF3$2WLGlNZ4oXU*&B^J={|R| zXhV0kFsjW7AwzH zkUZ*-(9HAY&BJJ3;iWQbqiK+5mIKXKjN>lACq`2xzS_*5Ce~hMZlpLYZ-l43SzF%k zx`=rY4lP!?VF%C%LZW8YLwd|?No!HoilR%lZ%YB922S?$dh$ZI1D+MUHa62_tS+&B zROvq1HY^8wjJ2sOVR&O^x-ywwrqJtDs9OTL&Z;*V%KXFKN^EL0Wx8 z9?qEWfQ{If8B0IZ^xi<`i8{ZP*AI+ijNf|aDuc=Tt#^EwPbI(gPJd?C-z<+e^T2QB zQ#B*qPO>V@8iT^DH&_&Mt;MQUSmiRg+@P@-qw^&{7eE(iUZB*^D~E=8-4E0Z70@pKrzCd+3=HMKy`(P@0es2rhHKS z8JT@2sitSE*@Yu(dbWe9SJw1wGwYk4H9cFx-Y}x3XRSHo7sE49wM!KmCPP`Zegk*S z^poEe`&@tUYn8i=jm&bT)u>P_tvah(X;8}16C9=5U@t6v`8W=FW6qa^q^nRt`yqtts+*KEer=1iXoA1eFep8&m874#9d4Wy|IQ2 z@ng_=I^rwfb z_@uGD-qT8PGxxQOOd^=TJ!KAUz;=E9#7~$sYaxGWvq1K>{`R_y4;W!C+X5f?x)6)& z)pI`WHJixQ?jX+8#!@d1&`I{kK-nKs-rHOq3_@r&Jwr_YF4M!&=4xpjH|wfQneZd< z7QiW=_FKGRJOK|@L1r&dB@v4Vz3qAE#5A=7+L+$qQSO`T7hC9TI({2?R?hFC0eYb2 zq@Ato>CBO|_}QM$dgct9`=|)kY@04@0iv++2=5%EyvTzxDCviPrFV$&J(=6`xPM&G zM&SF8lnKfs6BY~yzGag1^Y-PLPHB+|G^=Bb9qlR!(O^_*Eh>Xd zi|UOPunW^rW#vNW8n;-9S%zvlR$6|-v;kG#mmEV%Ra57f;r)h6@f?_b}kb^?7Z+HjCr7nKs zfp?W_`3gue1;)cx4?MglrMaBah6+>>>vr+>M^q%oRJ3Z>qtLA4b%W{p~<)yQOK zrCFnw>(TfCW}Oi>y14y+?XideS6qh**P+7qB2{hR|I+>+`XaU$aX|eW;y)Y#9042w z9042w9042w9042w9DzTEKy|qV$SEd?F5dznRU>i5hlk?L{vfO1^DcT}vIsnoRF7rFHyMsMP2VrJ*XaKrpc82zA-L)=Uw+*s0Ud|zT1{bHOWfsWh0#= zdt!l}k?);VogUD@1cFHcqt+(*C#;9O$sV0w{+_(&Nz&s@(r+Che^0^X+12ys2#WfS z^bxW#8W6wr24z7y2vV=Plpf}DW`B+O95eD>z5+Q7_#Bga-Cw|}hcO31v2koSEK4S;aB`NkJq{cfx;mE%H!xN{0}Zp=^m-S& zv*PN5;>mSR&aNHg=80)MqF*>wHK-k>UCt4$vLhOiL*o)z3C-#{O=itSHk8idenUP>-8*XzuR*;@$nw(7uH8CR zkV6x@NCpplLEe$*?oK@$$Ot6MMQvHZ$kj#VG_UhI_b03{*NRGhgvI>=C3b|KmazZ0 zX57jZBYg_q_gv{c&53{_Stl>ohvUnCLry_F`}gYkEDi8+cOhIz?+;t`!eL& zBjBnE@_fX(wM@p8Qy|YMDr;~Q5;19kQ+xh-ND#PftYLi;4(rYbBW4>o$E~+S$?~B!#o#vE% zy@3K%C(*+1^XUawLD^|0ZP}i+l(DwpKu;)%Ipy40@2S)_*^W$UKucEp@eAprNI6Ic zTadsU`t%DRnIWwz<8YB$r&k%}8jIO%F{%t^v(9AJn+*z`T&p%1j0T-jp|Yry zI%A2bupg?lID?Os@iV1G+|L#6=ZbsJp$irC&$6OTT|mZqn?E5Di$M{io?}x~#gs@x z8QVGba=eHD0u!8Jc4g*sK>iubuTV%m!}3U?!#@Vdp5&)613c^%NvAU&R(AI*)}^{{ z?fjk_|AV*Sv8n;G`>TgR8R2zElD5#yG5s}=tHSk5kI9SYAy4K){>i+#j$yoFqDDYX z33gw+50kTA;7r{1j#j&lRvb6#JIEuQJvbY_gV+!?#d`pmEyN@FH|TT$hW7DV;2Mv! zg2!30*F&{GTS;-v*iA zpSDTqe!cG2sqRkGS;2iff#Pu>qvvx>k$5g8&lVgQGmp4Qb)5)}`T@1ME&Yk=V@n@W z+uG7~w2;H_d>gH&E#@eI0Osyb3d_~$++`%PF@@y{?(_Zd++F#Yo3Bi3*1%oz z0V~h6g zGNIM@Pi~v-=J3>Xb8l;Ji#epqN(S?5t>xXk{30Y|R6Cz@6Jco>%m1K*rC~4Mx~g#uBP#N+a6WJ75V#;N3e7ZJ@39v;%u+ zX}e+U)N&TCzRi9*JB@qbCko#~24j1+aO-p!FCCe;{eBRM1KzNMmNsWZx!iP|#G1({ zcX;IPcK2&ZWC@%bHQ;`8sJ3$>Fk%4OMA635+u~uaK;N5H-p78hpCiykrfdnke5q4S;?J}So%6)@-;$dy&#?HGcMV9+e<_tDtm3^73J4hbleXLHH z@1z%y_jzgap0(wTo!8;#toS)=O=I>SIcLSjYNNqw)hgvOt;Vd?nUr$WORh{~R2WpK z!(xTZDz|Fos26#K9=5u;{y)C9tjEb&XFsOpile^8*OpN&aC_qatUa;A%fD9GhUbPO zfFpn-fFpn-fFpn-fFpn-fFn>d0&xCMcAiUMPGuAz-&2m0rV*#0m-r7y07n2v;Qtzd z{LI3ksP0Tb2TaSs?kLHc3(i`)26bESDKamGb0jAwPl%n(RCgXTlyQSl)3d#dt+bk+ z?P1KU@fpH=Z=(l}tb94=2LVl?OXoTRT-G=7_c$Ddof%b~3vFy<((5&PqYPE$&?t2# zg~4i3m{IYpRSCg7tunnqX*4Px%^r;J4 zLhad&oudi#CwvH$N89>&zI^&6ra0`sSOY zoHcF8ojV0`&KFD}M%SO|Bol59ual7P9P5z~+c|lX(;ESwQZ@v_pPD7{<#60FNPOst zJ8j9ga6~kfuk3opjehxpo8bx^5A|i|r^1noT5w|_h!3+!MNuF&97<`Pd7VTtxRJU< zmbeMx&O?6&j`7WYL<#aeI<34EgoPGq+}ZK zgVp2;N}f%-=WEIc+bLxZ_3 zDfD*x;hIV(DRcM0Dwn@kNVfcFH9VB7mwk;^tdE>Rngf&1T+-*$sEgwn?ZX&I7gb02k+ zoMYqf5@lEp+`mj2WlMh~D{S}AlHF|SXzF5Hxi%x31@PV`%0pXux%A^UeyZBdk0d?n z|IVzn8qfm_xz?&R8%<`dUT3iA3}{Qz%F$z1y-96WTZ;&VgHX+_5oWCC*qx|;j1rs) z@o2H*R0tDn@7l?qk#W~c@N_0@=2rI2=FoeS?I*wY7&^4-!L6B2tWfW)C*|UbhW%YOt#sy`>-(OnFS+EG!7i2Tb{2W>st0uj z$FoW7b^X9~6@#_%SFvo@kj}SsB2JgH*iCx*v0jEHi$6FnV|N+&9dk@wET-*Ax9he( za+r0^)(1NHB=3ZLe{pG*LpwjB=V>b%aadurs8t$`S*|l!6*7fEfsUjyG(xdSu1B3& znH4INN;W*Ga3HD~SNv)0_^b{5Bi;D{B>#4Id^JVUR+DzL`PaJXV;APt?v>7(fqA9- zQdIM^%q{*D4r{o9x3Ut3CIbD*xAsHRSG;Z%`w-dh8gG!CAhI<%;nHa^B!O1OdfE@= z_Cw7S*0oIgp~fnBb=ArqVSph<#=e!Qq`RD{K6GfDpL$gaa-Tpu{oE@Z)`fL)nL=%p znGJHa#VFV7!6}{6q*JIgD!E#VdhIirWJYU&wQvBL(6~s24dZspKG2@-ojt&A()VG; zJ8fq*Xfc+)^V)05a@#}`LXp@eBmpg9C6p)@Icu8``_mMg;d&KvWgetWX$Lk!IuOa3 z3+Xc2yWNmpMy@P}G=_G<_IwaB*!FxmjkpKyUqNo$o;RbNwLKq<47WXBL1XNxkGO9i zNbmV3nRqH}0`G$2D)Pwo?ip6SM3_i=FvRb%yDd3Rv$6l9IY(w<{}*uwoWcIDnlNuCX$=aQS%doeLxbe1WM}|)g~gE?Q zxnwe#VzyWfIVss`y$u-yLhNeZHf)E6Hfi4~qh$w6R(4}UmL)V4UWiZ3>}|<4q$SHE zV!pb3zMMdabj&(6D`^CsAYg5 z)sk(=%!+85yK)wrfYK@FT}ePwgKHy@Se1KB^{i8KvJJ2>kI%_W&x$ui zG*4JSMT;Csx~`?{9Y=_0Ii5QoWhuU(({E9z(tQgJjUJHJIwQJCs}Aj}abe2I%1%#3 zbF4_1hf?r*%FaLjU3oh$fP=;smrp@)ks8979u0>WsWd0-;Yq2cXHRjpi>ySZHX|oRpMC znVE(G)#w`Httsh-?D&-4S=q{nm_9Ea$WS5?^+$YFj;5-GV`Huo2*!f;K+K^wVxME! zPhO4IM--d2`MxOuMUkCaFk?kBA)*m;mQMnK(7m7?T2DE((ZIS+<61gSv)tsf8EEc~ zytEzlI-sn)*5`Oa$83w{UTeoR!45Apv~l&y|E15Ml@!s!8d-#vHbQ%M!1s{=QBRJ? zFan`lK^rvxtlCO%-!E%`CMLGwb~Lj{Qm_*e^%R9>exHb|ka^r6$h;crzx2SuWC2>@ zNb)(reT&FJ}|FKpZ{XFbvG`C2?Bf;H1`&gyM55c6cL)l%0;PlFKF>wP}vlZLqi+E zI8u$qr;3Q^GW6|7eA8S8mZyTdN>tCM;G-DadfdFrA zp1SZDI;cnQ+9V?odK5HA3Di3GRSCP$k+5m!Mlm&&zu8yYt>e+`iO1fQ^m|B%2vhPe zq2w|Pnn4|S)m8^z5~_rT0--ilvZtn)wB_TB+c&3oT6S-fA|k4Z?Jp&ok)CTwNr`AO=D`)H{T5qVmjg-Jfj11O;8fGjwWfTskX-4x>c)c6n<$2S2DhV zdU6=G!-+{mn*mdIe;$F*wICYJyl-vg|7A-5Y(oFo-J2+aj>yow2?fOdJvyQc1xq1P59beE01+CU~iqTrN?uu$! z)2c2$&1ylHS|j%Hpjw=EG@Cs1D-=5a`C^op{soc1Oa0n-`NQ4El$4W}7@uhwkd~fe z&WeajtK?q=7;nc9tY9ri0HXd93X<$#nz(9ojr0wN|0ra5DRy04~CRlM8H>(yIN( zA++YnzG}KTUp%V~T6%rU!4EyrRJ~;O1Qf6?1r2_Si(hsT)i)6zxo9l7S&3#HNkHuc zI!6;C8bsZgUk(eqFyP`ZTi6+3(HGIAIC)9+tu%6CYmp~w-7wCZ#*IMhkYSjOgkiFLVz;-eb(fEC{ zvhgSzO^@B55((^#Hk?K&CKu>{BCj@zCYxXuUFNl`-b-s7e4>eGGESgWqWv~peGJr$ zZg+;kkf8m|A;D6$cZq6J^GFASPPD{xi6@$~Mm26~Ihv|>_dh-l*4-N5r`C1%FYWBJ z-Rdt4+1hgS4_oEIh%mz*xzw7$~GS?6%uZ~1h z<;GV}69@zZz2}4|35b%(p?jkj_zy<_M*v3vM*v3vM*v3vM*v6Q*9eRv6PtY1!LjOi z=F?I(E2K)l;!k^>fs?Vv+=C4vor-#Hf%FOYh3&eKU*URA59hs1p>rmvc-3V6Ngz0ck4#3Z zTZ&gVT3w0U7kfe5?e{vm`6pF(6r0-TV zv&DFQ&X5vSjDxpI81tWkUa3t_knJ#_j4Vwg&=xGuU|&fD1)2)~Gfxlj+VNo^^&_qg z?LZVnIy=7+f6E@!9|q&24nq+bjF-~3u7&qcvyOEWvsF1$d8<5T^U6F&NX`t8miU{l z3GxTCI9JAfTBYNZG%A(XDk10dr8nL zMHiLd`(7$1hwgQQrZj9ayPiTMz08ta>r(7~=Wc@Za&s85qG)d0-imyfeI$V!wsXcE z8N;|i-AsL0+)HwK!PF4PzTnQqAoa<(#j#8~$7Nt|I=V zpHG~i@8|oWvXpt$_Z*ur_y>fv@FA)X`jT|IbpqMD^Gf8wdT3TZl0S4i%1hLoBd&|+ zOUi5t_adm*hC@1+X4wYmItK3pq+2OYwwSAXi3?S5?N~}6IE(&etqo@fM*v6Q{~Lj$ z`8|jch0Y%b?T;sJSs@<}qR}(g?--rkF{20}xk2j;%KD`5nB@Ur6ww_i839HS^=O?o zeaG*#x<75@Im{@cvvl6Tcj7B_%pf9}cihr|PNsrUgo4?^r;PhFEtX+^3dRvCil7ku zDQ=@)JkED7ThhucX5=KNK7KGrOT~lsb)>Jp@J9_Lnh11L9lk>G>0Ho;*r+Jw%AzOp>v|ZAb@@Sc4pVe}Jy}sYV6lQDUIi?Uq-F1x_(iV7*aMr7YrF}MF!u7f zkJvXj1J3|^4J4+uCqxl%FuM<6EsQ#S+hn(lAxEW!y?9RkHaA^h0|Mi7bsG=3SIXfn z_K-w(vbQ}MA!sw)q`whjUxw;-C#|#%&q5hqG@hD=(XVcIvPQV^@E?UUgt?QvOn6)F zMviXlgQ6N((4E+%Xwc_7nDp!MtA)jHM58`>e1-EJuf`Q|oikEePP3KAXmRv~Z zF!m6J@E%fN!{tUly${=PfgOOF@zX_2*%piAj_Lh3;e;*thTkDl!F%Pjly{uhmKM9y zUg`D@t=%nqrQ1>dJ7{Y9HOIH~Ww!x?Jp#)_Z^^B=Qc)SjU;NPZIO|o?QKu1NY*zwt z+}G1rlKPNGb!f&HB1N3=arc?w0T9Ps8;~hGg*>zA*@M3RaOMzq(AVEfy4?cusJ;Ig5cH-_9}a`jMr6nG-K)Vm9tAM}h#}fq@~yOblu4G|!h>Z{wghCDZ7$$& zTxUdzu6bc)t8{(T%)V@a0_tig+bOU18Yo)_@@f-w>LKjbW@v=pimHshzBDM-r_8Yk z1Up*W)7#HG=H@40EXU|MxhHnCr^n)rhyZ$^9Xjk0t}hzQ`R!>Zrg0!*P~$@pa&+3HMJ6$sv4rk?0>YC zoS^oa-i@jpRhKpWS7kHPw?23Gz8Fwb*(jb{ZFoGc#~S;4%2pFDKhaJfh~y1@3Aoss za5~TqmOd(7&a|g*UmxdIk9`L9k-u$95JtcHG+Gl)$6knIAc5vUBsljV-ym%zmNH~KLKE&{%PtpKX=P}D>b`bwjFn}4Cf}IHn1YiOS zV;!g$NS&W|i^j6qYkwb&yU(}iJZ-!*N;)3T*hjeyOGr{ z7wcjU^9q7czxv~I|5*rD7q{Ftfqn6!BU__fokwS)vBO%*|(soR<>~`0Je{vwG6;pK%U>L8*@x3 zfVY5i?Z?k%yw(NYC~*9b+n;|{3xfe0m<2|G!QZn)zy^D)YgPvluB(G2{TEDvfYtY& z<=H$zX{XwjP=5v=N8!I{ZHcWRgWS(^P|$w67*4`ca1vZn#VU+P^LSTM0= zu|G@z!0Z>~e+H=j|Kd3h@WPgv7+$b(`7<~XcB9g(fIqRM|KI$?Q7M_w8*s){istZJ z1rOxKz6J^RR$9(xdkMFFkOB}+&0t?x2cj56HRuvZY(d2+l7BLM3csi=Y<9P?z8!2Y z)qd#WpLmyavn_~cL>%&*6844BpbC}3`nn-VLLn$Ui8VfO9cxpwJl8`uZ%JX|h8|G9 zGU~l466%eC@a=Zyn{X^ZlrQJveE4>V@Xd)(PG0Fu^5t&uPBvF~PR5e9!`?e4+UgAN z-StQvzLmL4)t|Q}2c(`&x%U*UXx#0MIGW8&WXc5i_APm`5x%=FxIGmlww*bR$`bf5I^febt(AfhVaf= zz-=ox*V!Job<(T~E#v1^SUs5&? z_>odD_&I%XRHzWa$J^4=?cSSbLSRq_j1{lV28gJ_+ym^#Im+YIszS`HFKK|Sy zgu2R8%H=1x*1z?h)him>XSmqG3CrIW1jaMD|4wd)M~j7h_r`LaFGF3OmQI}2m@+6? z%=O;>1C4yFM4;-w3SlhnBso(8v|q8T8Q=5h@85|AUE1$6#_gKq)`sKkl1cNpf+y?5 z8+Xm;20Vdw(Ta5?GKB7NW;^pzKtswlgBRstJc(U2=oYyksV}|wT##t;>$$>|C*|%( zeS!opukw}{!v2rWle>Pm%-j`B)!gg*h_hGH}8i%Q#9p?@wxYclTy0k;LrT6rPG9AtFe99 zb@n&IH7rf(E^y`Yo*Iz_ST=QL#(<{)HN zr+BLOxLbboV@2G-j_$OwtraY7M}g~QqyhO}ms0wQcSq`$%wOuBHQ>I0*YB9Hlg%_L zm1WY{@5%eP9n8fv^;H70P&#Gw2%J!?g6Ep5VHb zSnrr52u^`Ak(r^+wUy~oqd{-%`G3tJU8&AL_gD>Sb(+`Rh2LQ`->?r3sf}hgVuxURn%*u~ zO@OnjAbHdup_%8)n}^Z7!b@e=M$;hAEC-se7{^_JPmHEYe6^W9&5iC$GJrps8z~OU z8{sK$)|U6XE@B?Y;bNs5b^whaBx+_oq{qybv=(KpD7s|(wiF<0;ABs)Cogn6(5v9J zxn+;*X0mrLxUO`c%z!l5W2{Zl1gm35Vzm(jzr+#15x^0^5x^0^5x^0^5x^0^5%?z{ zV2l4p=s}>CQks&OM6z=#;SzfJm;8nl(MW{wPeH8gH0VCMv2_>6JcqblDU8{+fCvyr zE1lU_3~{v1$exYX$-gfrcyw=wMPI^#8)&pTy+*Az%T!vK0Sy@?(`Z#{g<6jOt2L-) zR<+z}l<9Pak@O-24XrVD5Ee$_GjBCj{uAw^0kvlr_2e)n-L{Vk6zO&U`Xb4N%y3S^ zS5tW-xv;lY)4dPEzU+v@kk9t^upb*J%KZxV_?se&{9#`Pa)lJeeFqQmSklk@ywteCU&1hgI zz1pDDS`1pN%&3sb^-8T(snY9JTBAyDHd;-xd|?q4jcb=L#rmV&kWl5M*;hjGgAt)W z3Tb6q0G+ClV#;8R zRcX*$bZV1Xr_<=PS~Pf=MxisJq2{a#i$S3>s*NU@#%L&TDx#1HtqMNH4f|w#{cA_f zs14mNw%^y74c!px?)IkT*{?T0}?;NjbY|A1dx}=#_^OB~@OFM}%>jR8Z zU~vDCzV>W;<|*blr##VB>h@8QwDJ}68T%^v%!lM0_I+~^H*c4oH~q$L!N$(L2)zic zSp^OM%&|!X{mQ9l$hK881=mNca5;ByjZ5;OD2<^AM9^3e!wKSCll_usm*3@?qse0u zS2EK*VT5yJZ#3?t``pQ*4c*m}*PYo@9HTOb533^lc@#Jr!kitza%6~e`@mt&-2$VX zrQUgr;g5$fwmt4a$*>OfK9VPY2dupbv#RI*e8}XKO{cZyp(TlKg5AVf~mI5r~6XdNQ`LbK^}d17sWTI z%O^D9jej{8Il1U0V=}cw{64f%oyTv#bhI@^Ft!8G7{~rDzmi%urBv!Nbr<Au9O3s*dm(Pc6tIu_zIjY{zAc(TY_HGr?b|8S+vuNyaZG z-I&=74dY$PPi-`e?KtcmrF>8dqe*2`?)j6eolfyaalDs-nB^(be{FMVJt>X%B0j}O zGB1L%rw^5Kyyw5&!!eA{;Ia4yWkEWuWzyM$vlnxa^_V%x5ca4HSpQ5ynop&M?bdXs z-0BCOjprdx=ED16(h^jWa3*ehN85Jd4DH_0v4Rh|kVkG^+WBMN zZw}RCw76^U6?rdzWHjUj-&UE3H0|G(H;9z)8u0cf=KC;Mw_zqCpqhl4h=6JmtTAth zPkM@7mZyeGjg>$rM$n-DkicU@vwSlgW(X?}%Y7VDlO#X){7-sbF5?V+30Pu$5hZ;W zgY&UGUPLUUELUk)NVn1tUYkf=TLdD$?MS0lu-5L#YORJgXhwD{g*-+JjnmG#h0g-9 zVL`x>=a|?K^G$-OK|vlJ#QUYMnI%o$GoLkKh`akm^TV38VJ|7^5^ysc^2R(yUt%9! zW515i@t<-CXgSo`XHzA4MPFkpe;JK+6z(sgcAErg7Bkx)QUZH?Ur4KawGIzL4*HX# zS^#g+5?*M!_gEs7yTa@I-rC9y;?3rbw6?tlR>m&8p`P|-jH}OD1~iNPXLN!T+Z$jW zw%Y|w%4CMdlmNX|iiB3R(ZkGeQd~1ORf>FX0N$~peZNxG!c?TN{IR;k=4ho^D>oTY zQMN*F)mmgGjZP<1>(JQ92BXeoGN?3Yyj~L;*}R~25eF5U716&SHmi!873UK;^QK4B zxQ#yd=C%`SIUquFXEu~zQGu(A&%R@lRhW3qpVckY{`qsiZLH4z!TMgFM|YChcamz# zV>P>QWKGX@F!joso^57*)3c^$OV}Gm)by-1XZ+%to>j@YHa0TLl~$udt+eW_YNbIb zM-f)44HlC^ZPKGRH7cV8l~3xl`I$v*6w!hXUqH0#NT6#_xAmSP^HM<4iOCbzM0qIV z2BD^Bdl_44H9gzIm|5d9g!$e^4}_n-ob!Y1Yv%_SFQeWyG(SapQiXAC((5&PqfD+< zYm_>Z!eF&1(1Q>iD*DvO)K;0^pfnm47OfhU?y+#`-mj&5b7}71d-5swH$=w-O2Y& z;LyyNLs!O$hYL=@NO08UHG-&1M;i6V=Q7DyGx!!^vE}Aq(xy4}A>SP85+NBtH zm-=;=g0Ay#?n+B(meXXxu$A4|30t}JXS!*>Y3@Y@fNozKm%v!z9 zV9^=SHl&qXGzPs%ZB|?JiA8i0A?%YB*X|&!Dt_!XUJFNukE(oHXDz%>r zuDZ}Hja`F_hDp0>%8*o>15&IYDwS4gHR<#Qy-};MDCKGyy6M*_v|6)DWl@>rXam=1 z(Q`1^)O`4|D^S`Blqtsy1+|@BY-1-BY-1-BY-1-BY-1-BY-1-Bk+HP z0D=-G5?KU_ACX1BOKXns9rX_V39bKJdC2vgB=F^MS7MXmFGSp_3K5%VKqZEl&izZz zX$AJW_UXQ--<(EH&S&|?KitkKyB0=wKZ+f=vPJD5sE{_(wEV<4?7;N^^Ib3;zFZfk zQ4X-vzaGvWZ#yU(%*srLL!?ox)v1t%F{f%Fb!IH0MA8c{VtMvqPWG`sz@3WfxI=ym z98(z@qEgWVVK3asa++#ni0W@~>ccvZOvmQaRp)|B3m9;Zj&xWgQ-h6AT1H{hW3!w7zL!2W;^4xY+b ztGg{@K2=X*HR&=|M*hmXzVv%haOXbuigpZIw?p=aU->?C|AT?uR@bL@I|7o^V19)n zT$nPq2e;xPhd)VnS9RpsJo&fGDT;R+;Sf|Ph-`S6_(okM%qm$S7?W_An6BHy z_pHclt08n{1?m6QD(N26paR5hG4*Qu@og0Oc@nmIf-yqo-%M={@Vo*4f9fMU3q6QU zMqn`z|93zG5HN85s->kTe;xfGF<*V1KSlk7cL`a+GrfW)Je~2d(p|D+Xm`J2T^maA za9?(Eo7PMxmX5V3_&Tz5p*O9~VjVL1t1nfMW7I!oYOiUU-4LDo^#9607-|`x+FOVG zS;y^w-`~-I*I^DU#KDC9OS+(wM3-;Dma>t!;=@DnW`Ecg^LZD&?6;NR4iC61<%HPu zJrjk?U%+*Y%iej{eHZFsYn$)3Wm5I6ZS^fJ(CH-EV{>V4De!))9E{6kMKNTmG27rrhiP0#+T*w?JpLheTEzoj6g&P2gd! z+gc0INE6B{Yoiey{N3{_A@d$W-b3p8W!IKBRu7POpbK*_g=d3e@vHE;K4cvc_+A>c~x89j=aC?_6;u=jsT7TjsT7TjsT7TjsT7TjsT7T zjsT88O$dPfKao&CpshtlIURKDhyMFt{uO2viO7UHBR;v_$~I&rqY45&X>kWYN#Hg4 zUS}{Zdd`p%Rg8nTN*ME>X0bQ-v?&d+9R`$c9lKI~-u zh-*VT5CxIW&TquuvIq5tT`)M~2WiJr+Sax3{%O{+Zeq47XDV-%$827i=LpG};n5O* z(=|c4`fxNlq@tUM*yUzF(4OV(OgXTEKB?~;6RkB{^kPy9i4g1v1p2;H~x-?ojJb4~u(AE-#oG;@B60&l#jX8Mio=Y3Eq&+RUXVonJ)1a{dfsG5;3p=h#)m zpY-#I6ZHLjKU9`7kNTct69)f)kQP2fE-!pZI^8;f?A>`K@?bqkVtyol=ysHss5wVm z7txoL*%aMa_LTx--T&8X8c zjaH^8h$|AJ7G+LQdud3__tOj24cOBtSt;;sD@uPeq-`k6 zY^j{m&jip4Bt3ud=pkCU^`zFu<0QQtz> z`;t$Dom}Q^P{k@?ibE$bGeY;$hM(TVy?Y@~!Zm|G4i9Q!9&~?SPyct}|Bt<^fRF0f z`n#LmYrFTZ#odWO+>u}*xCOVc+3Y5P7!gA72rebN0b1Oh7NtY?%q_pwf5H)Z=@h8*!>a4&03Fp#!0e6U zMs@!#p9-%OZ-ze>H}`Z^-d%J>36nyHg!c1O!cae(fpSkemKA1|Lc9DFs1tasvT zefV@=d2|OzFOhd14n7>7NUaXT``}w6$Z9>l=4Y$2{u;=$hMntlOzmB-obwL$qn;#> zmb@2SPkh36E_trc>A-W3$56p}$@>-&z$rGV4A72duFlIL z>a^@69ldj(Y}acD*D2vWieulHf`|^N6-QZxXAKUkP-nqhjYA7Ddc|XzD zXa@rT#(laK4zJT5ID9~N!r=yKAl|LCL)sUIYI*NQHI?PdePYiazztMHbTg%;_YKZF z?7MG4o=eldci0p~O=X;t`}C_Rt#X`SdOJB>t49ZRwc!!ykZ?p2^4oU8l>w~g z)|PLgc9X4A`g!_?lTYVmu7wf?LJbu_`{ouCv!4YhptnWE<(#>EAKh&eLj$kFsdSwWSJm3#4&l{mH{-i9-@4oC=JthqVNLC->Wc@p@y)NPJ-5-_1D>-L z>{?TvVcoQsqWHZZ9S{G+^E}f1c%Ay5#-~vJ1;Yb&2$6Ev^Qn%8Cl>i9Oq`xZ*l z==G7I!9kG`=u1o+8mtM9Kz^=~TLR?wFC<8hJ|u!8A~Ye<@UhR2RsZY$wam7p*_Jfh zlK_%GD}tpAGzw**`ceUfU7 zBLAg-Q@fNppnG%Xy!D~{i{(-Cy*dBu_vXMn+C3}v;NNri5zJA`T$|g$T<OK&kMU!7Fral7m)v2BL(*l!A(D24fFA*6!*u>mwkR| zvCQf61lg90Ku=?xKOX4avk&+;zvHfs!oAz=r;msE`Bj#5TY>tlz)t;8^jhh1guhz} z=IN8{w&S(EH{_1=Evn$wGsOG+CXy4oP9>*y9YQwfy2i2jPrx@nmku&rR1W_(Tej%} zlzr1`=d>GEy{Fx=oEYcmF#ZU?E;q_X^W0lH=%eoxmx`m*em`!o^^Jr%_N9^r(Hhp$ zDOY|Xzkzl7xoa}fqkPZL0;f~$2EyG+jVxV#pj^HjxLfHxsr#N}t88u6yOm_hj>{Fw zWy`}X3tA~{*xM4DT{nOR+^e)y=5h77jYpddE9Iy*zQN}=y5{RXWTt;~S6X}z?pk_b zxqY3?%h8#q1#5~c?c+WyQ9CIp`;4hDA6npG=huuHKG0Sbzw5a4%&{P= zQCABMR7v3>`sRWec0G@jSOzwD?wxUDj$~O(HeECi)<#-5oL~42ePh1fJCPKto4C)D z4mpvg7?w5NVNrMkDtG8QwrPl~d)ZG%eWoldl)qOv)^@>@cDB)?RI7k=XiFp)Bd)D2 znePuW-ya0`ph2I0?p)477~nD)Z)bu&0l)e6gI{}pPzhIRk38v*c{{F}tlL(OsN>we zKF)c#MNrOn%F8|LmBHezk&VO~vVh_<>C6KVntC>d-(%Q?LVnS-raZ&AFY54%v-j*i zYGs(qG7ZMz)(?^ErgM)&DH4!?rv=feYhb4t3hiF5SG!q<4?U1EY z_SRebe~G07daTJpfi(UiT)0UOe)BE*KYc{6$t^)(i^eTrqz74R8mUe7!t294V%$~T z6;|G;*GtkR0IVyKokj;1mAicfzGA?^YT$TN3(kDw+@CmNFr~IIVu<+-EdTE##$)np z9l~0>*zhzRTzoVW*M*r87@vvCJAUYrw1lvj)r>Fl)f90ka0o8Zc|Xtbu=q1{m>h zfmEk=IRGWZ5;vN}(LthqZkTs|+tKPI}I>z4k>qT|Salo*o6|snmxr8rk&5G2F_4 z54g(-)sTs;CGd7ova>;rjbS?-MGS1H;mE#~m?=E|e9AihoZ!__C0SAMCg@C=_O z8ebd-dK6}+X|f9g|0nbax&qzZXO(?S^;uPqps$0nE9a}zC6r;R$L?k|^3AfU8bMXO z3PGhmQVsI?CRtUDF$i6LxwF5xDQcp;ukrutCTg@iq%&=j(Czu=3Sn)!h4h;AD*Ehy zM~9$?KLakI9Mdi?+K3#XNB%R0=>I4#{&z;|zoPpBWQH(#2GJF>9)FF+^R6LA@RM1O zzebOy!wKm07nWo4|BfDi>yQHa`n8s$P+->MuW66(?ANc%di*tdH0{@>CJyKqk29en zWL=0w-N44klpUbHBI=5|iKw?G2eajE^v{Smj7yQky=Pg|O+vrhLm6Bf^GJ2L5ri}3 z$x|SFta^%nmncP#;P++AGn*iM$>{9;x)ySJv+x+9}_f z+)RDL8un(jR-)8nvvJ63k$Cg`HSy5K(O0=#qSsn7Ji=+(vhXy++S znLQt@mz96}rE2>u`L6c!myK7HY&EU-5X)mT{Or#7O?6#25%>Xb zF86H;dYzkF4@4_Emg-afwu&ydcWzuF|~Ws+39Zgo#nFc z@nud2ZCbewbaGnqt>dS~cOBY?XdL#c($!8rr`js^P^pt6%v7^Ok;Xd9b66&$Roktmdvu zb-5+Cl0MnA-Rj^N&{w)_$v_3XK_U*m%L%M;&=6fS1cPQaltX^wqsqT-S$CwP*!`-%#S8B zC5xR%uDeWi?1`4MXq`{gX?>UtaXU=z?w@SY-KM3oWbq0rd(=xRdDz!huZ`oB6*GX= z3T43>zWhV7JC~r$QNBle>lG8n{vf&3tXMYgGSCp&%EExptL|Q_S}7(c!MieM!t_+~ zL1#a5a_j1Ng;M}UGV%t`>kw{@<$m=o-{Eehz8h5SzlU<&6$APvIdAF%Job0C@3WZg zDc36>Ujja1U#dH!m=3gf9@CUvR(?ekwtq$+G_GbYE%mlqJ@jLBPv7C{hwi}pLg(8* zwQ$|KxP!VuQL=i>2+EMLnA=@F?A$y6Ke!;9dv4NJN2BLi=DQ@?XJ+dO>cNT z?B%~NUHZv(8+m=~jTU6q)`90H*|Qw980mTN!lNMy%~49+avckLfFE9|$0Q z-qEXD5_dI=2dPEO(B*rr3(lNT&fk`xSUngzDDU!7ZvD8KX$M_n+tPVGnb6i9P@O*L!_?EEkQOTY{96dC%3iK&d&0Ye{}zz_x9|k~1X&l40ojA> zvM!kN^FGxkr#f0f6>6+zYvcF(Ed5WiHlP7i=NlBPz2EBZ6UzF#e0u^dQ{S9e4&;Lq zLh!W-A^69H5PV=lSk;pIt9?msRYyJraQrD|pMH(3@f83>-sfm1C-+rHrIx!Ucz@6h zc;l@R-s8p6-yn^|_7bRp{)kZ4Ug~xket` z`0{ycRwzWB-F|GCBz|%=w^qJA{_^wC#dL*%7~7QnzD{SE`r8CF1Mk z?!BTzR^_D1$JU=2nCk^)PM``)hx+tw-&}h8>~*Vo^PpDX67Q`MYaiT_x9)PwXUCKN z)&X0ghT!sUup?X*_dBe!UN`ZMyh$5->Aa1bshmNk@agNnF{3rLzQnZldNC~)EwwHo zq5Nx3a}R-C5$Igr2FjZ)P28>Jw#GpI#$0d&gevZ+GlUw;eghzc^7}a-y*@~BA{)v8 zTP4=F>(RQFLn3xteKZ5gi zg)$mAJiHF{OT90@S!$7H4SbAOTZt#gLwZ3u)2$|V*>3s77kE0a+_Y(x%=O_jY4j0i z;&CHOiHGk(r{_TsA4u;QyNj7V-?U69>$z=Kqd=>r8Yru-jn#)xj+ONfd)9M1{B5Xf z1ILgzy4N9s>h~mHbOl{i5XP1e4khNqxY&(v%D0W`dPs?qT$!Y@Jqc~$BkQU5@ZN6j zP9q3+$Uc4s;a-Ur`(yu%dNvq-Um(`t^1bM9O5yi+^xZ``A2A7=D?+V^5(@~ySk!@p zvEs2zE73Z^SSpsAgC6|7f0s)=CGq2Bzg*+5+J7%lJqPS&uFNrA@%OWNbAWde&zqYX zu8TkPXK)z5hVDHEbX(Oqd^}r%y>mWQy5L(3d57{AY}Dg}@~b_odxtky`Bn8c?23n= z(_yqVHvN`UK^gG-N5ZEygd<4L1PImiV_YX%GO{!LKB(U64Y<(GQPcrKM{bY3PQI^I zRhoc~*-CCT;KDq`t+9ZTRe9jgAkLE~wSuzk<;ejMGRoPQCkt7MQ_RWKzQ!tx6@BcmTMp$ zq9C=aRbgkqsBJBsz7n(n_i0x5u`*6EaRYp?j85>r4q94h6Z=DY=c`>rR+IZIQG7W} zXS*~q$olYywk~2H*2+4~RBIQxpw2vU*K{IqWcQpUuD+|*tL=+CL0eON9@;-~=(-c) z{ManFC3?W`5e`d-LC72FJX(Hjoxl0l$}?Ya6U#HV$?kckWB6w_+1O7oqnJ>}^9;16 zdMDgWk%Z#W!@ka?H@uI0(KiTvL}Q0Y;-`ewG+&f4P*>&C@}$paNv5BbEuCeuIO&P? zYb+Z!3m3hhs;dRyvYo>-%jN1`id#-GS4{g-GP8RHaM?q4{Un6zxo&mcZ0kBg%@)d@ zU#zWWlWpcqg_>Q^%V`$SfVr}HHsgqRk84}Mv>nptj%v$~K#QLzy300+Hr329@992r zZUMe^AV_f|XSK~OWjntW9Xi=HC>fxhU|p zdq?pSw_D<){$!mt7~A<8KO`$7K%Omh_zVb_v+sLA=&2;}t|V{y;$HB(YD-8^Hx#(r z24MMz%6|CG@`JpAHX9DZcy*uc_;2#Amf5`mnv*S4(;(z|=%Vf>@URWSG>6Gv{3eOiLz&+bPF=4N z8C___{6e>YO|Mpx2gY4gCRD^Zoa08SZ*g~txK1-Xn$6n9UGkkp_n36A&hnT;c5~(j zdk8buSf4o-tPG!|a)`dWz>zpB9K(qO^?(0h|GZQz={~N(F9+`IoUEjDT}GllKU15R zmX!&x%n#adfe*#?Q#PW5Cc=PFL5|4iL`r(hl@Se3%c5I4S{LfZad%cPlGk(D#)>Ch zmI+&(rq`5tT6TStPwYrrstCDkzQK_6zyOlU~_;rrFpP&}Z`rN*Yi^L+Zz zXb2hR!E6Yn%rhMN(Xa3TSSYhN3(qeyuNFh-Pb-E%SV0!xfk;Jd!1EqzYC8^lviBcB zx)ZI%@4L~bahO1N#B{b$M=<^4)S5iVcY@l4LrT^e55zQGjE#X1#uaZx{D?}x`G?Xp z9-uF)M@ry5j#b`=P{&-D2Vn|x2Zw$Xqg}!D*m_La&3m8q>y_oSe=($6u>m-L1-b|b zeqW-S;oECYkw4*19!L$)!t+f`#zF|Mk@;A@OVnt*Rq`@59*5`15d8c+>4d|H^fJuX z$4mq^Ah%KvFuy9<2`rEB6>31E$AwDTP4)aGg#V3x=|QN!%fEa#X~My5)wxgVTAw$< zY72k&^`Gr09%SN?>aXw-KSyc!G(xua)_?jP-b$;|LE}8E6}+zad4m76d%S+ z2QSB8d6&0Pj5_YD-;e%(?VCbLaX$%iE>q3mlADEwlRxTP=Cw5B^ULgtH~e=8cmUW~ z?{0VN0Kdtmeq(q)Gtd)F^TKa_$oWt779g~Q`kVZ*<^2W+YVEwTh4r$PV3v%N z)wuvBkgMwBgJ5zrryeJL@4o0uM_I^W-j&FIx@#4vKC`nlv$M3SAM5ZbXLgomc9!-| zzZDLD?eJ$V-K+t#2Fw~TYrw1lvj)r>Fl)f9fj?OT;QyaO6F_ort}XqD>PN~%>xJ?E zgc+eC-%<}!(4?rk8)0+uGc$ELChG~8#OqvO0{|@c$4f7KJW9665*G8Uf{XxHi`lLPD&T-`N}PB9q)7(UA(SCx2x+l zT3whXJSjXXNUse})`moBgOKyxP`xpm4;R0)bgL_q@W(-yvv`O zlrvCrvVNKR>yX+U7QiAm@2mi{W$L5=e*ckUDDXb7=}1jTP;x|2awyVkSWrkrbcjwH z85F4xiPUPMgM*_Zk~Jad#!CJ8?xk+%{@ZD99ZtX9ACepRH?A|7@4x-y_uoSG^K;yP z*Sdy}`_?|R%O-6(RWvBx{?i3lJQqj93V)H)HY2~nU)}C2{yyJscKchyiguEvd#>pU zKCCV`Q}w=MdY^Bq@A&np-u*X1`J_wtXTPTW1$J49TF0Ftpy6tDc}`UtraJpiUEeU3 z;jdiV;C9CmZj zp*5B9v3yD2n$nglHjk|-t-W&EvYOH=!Fo%R5HK1v@RstFAaO^yr=*XXn% z;o4~QFd{5T7pc=kMWWjQT)@|JbsGKqZU=z&_O4YM(DZzz&D84h+4;y94)?M7qLWpp&m}bcvDkj5ck|sAz8<>Ju*7&>QVeeduYy{pvCsn7vg#B~xdu0w0 zvo~*@S9li=Qs>_Xd@GO_;9Y~&?Ye@4IxpoXx52dffk3JSzgKLHm3maL%=P>#u3x}4 zCA;|<^|bIu(wO|p`ydNDc~+>h4*?Dq$Y1D9anRmt+ZQQlA6bN=O&8d$^TPh|SAO=V z7G0B51AWwmZ<4IDR_3v9X{uiFBCKN`Pt%3VE!Q^?|v0F7--;p#Xx@uz(0`kg0jgWAH+7F(Wj%hl=XI=AF}bfzL)GSs>n-awg7;QiKmSb44Yg8pyRG1zEV~(bz)zFWaI7hAzQ_t{Zudl_{e@^?^9n-BS?Fde_#&As;BPoG&*Ks@N^ zFYyT)uiS3%QBQocLfyJ~suhhlp1>}pQpWXtD93b{(sYIM5V%JNb}5C~der@iofgnU zk^UZ({iS76-*&bo4ce-wtADhl+ef z?f~$3+R-qZFMowJ_>(DCVMEq3?6RtK7O;*=XX(9N*AzK3Z0$5Tx9#hF)Wd)0;{xyf zR~kEidkuCg#oA}g2(B|ED%^VYD)>F#yGYINTx#OB;`(&XS+K^^PFTmb_v7E&_F#7& zw6E1RKOTVgwN!C>g=zZ&ogPr%R9jPL2ZLTG5k$vc&NpuQ*bezaG@B9wTAR{cuDJSd zbeG8w8UU+86d~9j8DFQqw$uL*U7E;`H>JB$@#Np=X2=t#0Noezo^v4N=~kk>ND``z zj*5y3(nKUBg++u!g=-?C^wH75NkNgxdQDhlL|9aCba+s7a8b8XCxrIJZ*Lwk89ysg zMH1MdU7_^RDi}8>vaX_<#+hJlp97=;DnFE;?EvFnsP)}FGpyauH*krISxvVM&qblO$9dgd}tP z?UDiasdC>SQ_h+=oo&3tNu@1z%!=Tptd9G?OEQ>FxB;CQwj1)D*bEYtTX;=7jTt1W z2MLk$pFAUFF3zk0vj)r>Fl)f90ka0o8Zc|XtO2tI%o;Fj;IGm^b?aS5o69%g^S6oZ z?Kcl>KlX-sGE4PEH`94CSo5mx?2vhl?e;a$-F&C@I?!9Db@215dV@J1e(f_L;Ir?) z30&|1=Fvy`c;(f$PRQ2_lQRHDK0&Sp#Mb zm^EP5fLQ}(4VX1x)__?9f2IZ)afZM~kSh=`qrR25CM2AZy(oIadRc6dWl|P0A3?4# zjf#_wXDTFpna0Ac^!uVj!9HTAL@wTkt`7V?f9=He(|_sEAthIX_Ve$s4U)s=km2k^ z0lxvHjp9!4`P5MC#|JikT(KT`H_j$ktat1kCfZQsEkQd@sw)p1MEsErC-8|5^d4ES zdXQkVmV_-Ezjs@PXxZh-wwp{0^#qjm7Jn*Npx{FzN=E8F`iJLe^VL|d_PatWj{1Z zU$)uze4|X1e!JduUk|V$SI#Pduq|g$Bt|6f`6PmP(bP7^t3r8jIXrigQ-Kg3;3R$! zTFCAnfN&I7=mg;|_U;=9zn8^bgD^yP@i0!8xnk#3yQB-TFF(=zKaK4a{|~1e@qe;& zv_r}ZQ}%)EpU(D3Vy7Vb_aKJgPm>qq`Xh3#4Zk`<5#h46f$e_JcU6;+{`-0<$W^sD z@;wuJ@MHOT+=IJ0j=8zbaUEs4iB7cnZ&&ZUP&Qi_)@ymTh46d#%|89hT^|!ZetP&Gs=OF{y`maX# zxW5lNOb7Vt;DLvc>Z(O}`Oh8TtE0hJy(yoNk2i*D9IQAdEQJRnCIQph!QUP z`}Fu*`Gov}Npa%(eX8r=zt(8Sr5OKkXI$l%6vq1BPKt59@tSV{e`Gudw%#?43-115 zwtc$qKlz4~|)FVy3Qui~4kukou1$Oza+_ zSG!P3mZ2lp^j1p*Av2jei};KC@X<5WOyMXQ)IS^#gAk4;LC7D`sp_=*uRa!KO8f6P z4z*jcFCUJdAt%J6L5JWLHHjS1j<%mU1*RJW z+$}3#>xolfJ4n@wD~$FJr^D6{emdey#rp--9bIi}wa&22=9D9CJ0jwN)47$E2cHfs zhz^eq*F=Ryg+%JZLc&5q^hx@lh^U~5P)(!`{R-1Xp+jCFkx@muQeRSlaIG4C|8ii1 z#`bFftw*RZc1P&ld~9L=JV(Nx@Y06pkY|aIV02J9EIK(lC@2CQQVtFY3QYG(Zv2f=aFTd$pu?k+ zcKcuQ_btGVEB=m=*V3RHraPjlI~5D}2!ZeZWUDs#RO}?{qDR-|orfpbM)bE)4gdDI zZU51pD$8s9y+8mzQx%^TWm0ESQ<%X^6w*)Ey{6;eU(S>-$zaYbv6i~62YA;I@$oin z!$(sj6Qi5S!q21;8S&rAmRtpB-$y=7t>04{21znel6L( z@BjCGSh!D4{o>oCh|rMm@bKu+P&7~^M+OCjMTbO0MWgW|GD@2q5g8d79HEa0*Ntge z>O~47C%)~I;Oi+6d5g-+$|*#BF~s(h4u?51rXTytI*hP`Z|RG7aVi(Bo*;ER62`4TSBlmd4S6@n#@>g#_Ks6Erg^OuYcdjL)3487W6E+5Qh7ObAjY+Zd#mh*6$Vp;AIMR>kadV5`8#%uNscAxyV^vL1!ihEKvxR3CkHUrHSbk~yEHY1<+v+2y0Vs9A&havn|#RGJG*sqNVsrq66GvugHiDmgn+ z8n^MP?9Gh?T3ND|Wi0}w@f&hwcW)KQTyFcQ?_B>znthmN&oNT=3DbrdI_o25-_%Ev`uS@?Q_%{_Rg+Gy z8L>pY;+ebko`P%Y%$FM_$`FOBXnU#EaoxvuTlxrG9$cB|)F(5~Q?;OlkE6{=r=25) zSo_cHZ?#Ty()s&u`q?|Y=j^nuS%q7lJqO&sXU5kFJhIGxOo5`_RfnM=vnDifj$gh^ zJ%{qNv+v|>7vIUpF0WInZHC7J+qFJtZ9CO_X5;wc6PsK2a-1%A8tv?|r`Wmko>J#A zdwx>+-C!&~tv5p++^Lt%=)+^3lCrKjepLUC>+*sqm*d}A+MM0vX|<*gr8>4F(>`tL zS!eH0H@Tb;F|H*66{@D+-mraDC)>gEScOB@3rnZ{&D6GEh*sN8Ox@#nsac7e+-fUb9<1o^-W##zt{L>^fu7pG+M+BpT?x8_ZNyxEQ zm@YXqA~Y!|C_F4QLXU=>Agw;BB&XDq6!?!#=Es+}PS&=|pJ&iS{~#Dy=2?tWIgrxU z;1?v0$(zVNbIX>gRXDcwk&&jdrCmfvhlsPk_dS*hTfm0{K)o4d|{99Nk3 zi_bE|;u}P>_#@KIJDi!4sr|`q9e-jz-I`R5XJ=?irF3 zaNSrpW*p-|FQFZ%Ig}ImA$n;3Gi$)C0ka0o8Zc|%e?kLj6)wEk^5;2xY|H29vNdVo zX_mh(dXQz;8TVy%gvB0L_G1&>YR%FcYRj;DYPWDO)t}2>rhs81=AL@AR9u`4{!@p^ zPCbI~lzdSUgd5pmF7y55>)`z+^7aX)?=O{Z*ah$BQVX-bQf|MLN#)>ho5cXj;7mz) zQP|(Y9U z0X8_xHba07)5?Kz>KBnneEyo*+8YBeK2IM)D6cv`;2vLSD4DX%vry5g)KERBWrkeT z3HX5!_<=?O9BB1`#Y-9M>iLU;Ucow@*-+)ZvP=j3AUCHI88#eKt_<&JTmayz&U+zM_!H=Ucz6?27LHkZQn zq${NJr8A^cq@~iK(rjsp zw6C;_w2ichG*TKM^^!VDRZ^OH!#rc|F;|%j%$Lj|W)HK4S<5V8W;11Io@6AG&!jU+ zOi!i*(}HQhgfhO2D`Ug3jF^5&Kc;Wdm+3R~QF=eUjb2ADr{~er=}B}EJ%rArb#!mK zGu@Jor6cHivO?^+@rLIutsT0%zY8SPUT173SW>QnBG1M?Bhf1Roscuv| zsu>kS1yeqh3uR5oC=2oh`G~wpULsGEN6_-pRy1$3l$=8v$O+_Vaxj@eCX>C$PGmgU zhzukBNq5qYl#>MUiuj(mLwrk|Cyo=J5j%+u#7bfTF@u;wloG>;93qWKB)Sr9h^9mo z5kPnmj)aP!34!Ff)8bmbpW9%~^I3a7})@qgjws3UFnDdU@Ef8$ z6hD#@x;P>t%l#p3lAwYp_k%|h zQJOD~AWnR61aVRaN0dalH;y2(UO0ltdg4e3QSN~wh^#w~1e4`%Q1nER16l4`8PgHv zE|53@5pl*5#DEi|O%O~X${pd+c$DUVBO;>Q9!Gi+<#rGmXF-_ge1!uNGla-$Z{ITgh&e%B$l9DB#s~j5jcW$C&3Y0vRn+gOGN$2 za*N7XB2g}a#A5WG5JymU0ggyX<0!~fEb2!XN8(4eq;W*$qrQZ3I6Nw{AdJIsge8na zafBm`g*c)lj6-llN*D`pL{1t9!}~>omxM7NKcY!v9)2Y1Ll|@MBL!*9seII%Fb;x8 zqY;&C93e?#7Nm_9^&*X#I3_$q7&9Po6v~y3BZ!xQID&W?fFp>PG#o*^q~ZwTB?aCe z1-$6-BbqSka3mNx=f-KmNYbdqF;P##m;{LAdUTTOw@xkCRWC}6UKg! zZ3JSbFODE)`rrs+rZ{gl9l`wY2j}U)d za3q;DCRC<%A&i~j(Qrhr6OM>TV@F6EE=nMb9pKS0l-3?c5C`pW#ECSvg-pXloe5(b zcr+AcYKhmZ=TiP{iG3{|`3}M7jm5r(fLsd4C218Z0f;3>L$`-{D z1`JhM7Nh|~RhFnZVZcz8B_RwLs z5LgL?nG(`~unIjwm1{s?B@||$(h*jPgc+hHgaLsSdPI^2gjMjUF=4=9m5vHUU?mi$ ziwOh5DilFQA*d1w(?zkQ0bv!y8W9EzRs&IX3|0d>69x=c0};m)PwJ>Ku9GL4iKIs3<#>wBbqc|q#7Xnk}x2oLXVKn z5Ky69qK1S4BUKtI6C+g`B8QPG4e^VRN`x%u2BZN)RhsYMqq z>7}FrBb8nhMHnzr>CpQasdPw-2&sfZ9U_8&N+i??))5AbR63+jj8rewBSAogl9Yr2!G{Sv^0ppYg)epug4U*R# zzlP*RFeMUdM2HB+ss4xv!YQG!e==dfFx4OF5W$p4*k2S%7%)yHq7H*`Dp3?d7%)yH zqDF>sDiJj@j8loi0>XfCsvjy7<5WMyIKnBRupeR^!&E;dX}~bmPZUfTFiiDBB4C*6 zhZ+`!seXuY1XJiW#5hK&eu#05QvF0hgaM;eUql3ctq<8}WuQs<)gh z!x+^Y^~y4gQN3xh3}aMpQ2LzkCJ5wp-?VS zU7`#_R8K?&LsU;OQHCH&DC{XA%P>Oq6#0{72%$v6p2*BB!w}U2WycWJ12Kgmss~~U zLsSnXS%x4=BK`*)c?Q7yLk!VTkG;N0ecR>P|Bj zDFRw3640Ay5mlGy%$yWo5{jgUxbFWG3qDB5QmrIz0)IsP?MBMnz{=ZjQgeUaQps;q zh0QKP_4OY&k&Y=J%H6W(O8f7ct6aYlwyZib`pNv3)v9;O!zDOFRKsS&)>Ui2-9p$D zL)cz>ebioaD%pPJy6J3p1#DrxrRw-4%#&ZBHOox5ur_zu6!(%Dyb?B~Y_|JpZmzT7 z=@sV%GG}G>QrL(B7u=ku8&8@=d=U49+CBISm$`b_^uk|ebBP$x7Jie`vpW{B88no0 zUcNV(-?Dd^I*Bi)=}B)M_dPqrfn%nZL7p3`6Sw$0r)Ae~1Fem$KwL*waQdp1VUk;* zd-e(0jz@cl0S#emYYSzIx0laUUKleFUl_B@deEn>RpQIAi3To=$(GL8VXKPY1sBHL zv)tciAtPJ{Wgk<-jX7aG>FT$v_{~t2%U;f*;f|TErwyrgFZ!-$ljuvz#~=P0UB{@G zehRuahI~o$7Y_NbdtTIK=^sJQ+teHZdZwh3lcsuprm|~PEX~^svM*CU{dko!VH@xT zClA_Fmvo(}tGZ(KFsw^c-Rh|!Y48rOD`)!YaConeyM;uU#wmq^|5rNHKS$2uTuI!R zx<9Wf{j<9^bj{kjETluXgpl7s{#SR0U`31$x+}v7%b+QjMKn1F-2-^2t_#3((e9ES zlK8QCH7Y$7_WYaPF4l`}b^}0_zg=uO`{czr`OS{ct;UXlj{XrNm7^f6_Euo)83`Gr;n8$Q15}FpvfS^DMEvg=y!{ zuxXG0Qt%xcH2syb^%lNkH&lB)Jm|j8+e7X6U4p}kijS;TjpPB%ii*}2D7Vc7Kdf_xY>BXg&&1*O zmLm&uJUa~DVQE~~f+`vGLfYoxP+B{EkGer{o@&|)cy>baaXdWBVJ)~Js)j#q@i`W; zRXx&SoliQ~j;_0&Q)vzbGp$xts1`g9VOpjgjBc> zPHkLOd_Mwep-1pB|LSTM-W4t_3PMuxYgNCHD&=oEqjFmM)1K-$&kOCDSM`XW;90Sw z1RblXsfYbN9E0xuiKl8rb&B$kc4`Lw|Cd(!d+_IDWb8njsCs;~h#b|8KPJkL1ft=k z@shalyc>^SwBr9NEA}ViWosUgK|!0y_j^M(Kf~SaWwvhLZQVlGt#SAshpe|2f82sA zsUwLSYgrRS{Z}-{ZqkH<{E_aDn6TA@$hLjv(yb@*ebe-V3snAhTW>(~oz_}~h?NL9 zkr8TqgM6GkoQq)-MMha`={#mA-H(bP50hCEokj0I-XzQ=m^JWgHIPu$6nT{5hclBi z^7;ZeA>Y%#*G5;H!)l)2TcSHE65QUok&TKxiX^RX<2kjN9#h}IPT8sMe=$s z+gS0W%Q9iB)AX7$Ps^@v@`)X3OBJCxEZZUBIXxR6Y3jpFnF$);50$T`hGxL;xzyNn z2=nPj`08MWc`zG(OPOal^rK%D!0$qt1$IApk$JTke*4pkArMxO1;{PKIFX9lkOZNc z+K$7X?EOdZ+lkiV_uc5zI82~BVme!>BbfeiYE2&GJ3(#2Atmd45Ps8i@n8r;7}x0# zenchU{6lHF2!3BykCZ^jvC8`p>X-}jAWUKI;Lwj^wD7x}_AiFeiVeW|DwxZd|4VeU zN$~s>`BN_l1E~Qx|0X75VF){iDzP1%d(>tpbB)Z$@?D}v=R>~B)OZ}8BSY}>^Q03F zC(_F>Umr6Oiy+@t>H+3gB|CxT5ne^jet@|pj1&DQwFIci+FC$Y=II(gZew7IYU;pW z-4eb=Eg`L|xIX{!W`b;)8L*>zhq{djP;CM$#g`)k%J@r9t}{ip3VW%pnL|M7Xvdxr z&}M;Ckqnibnl6bhs{2b1L<3V%$#)b3MncJ9?AWJ0xxQZ2c@=TA_Ai7vQ9vD_Jd`RK zXi9mYeXl0R?Wz7V9Eg|5_peZ0jNH4H@^j}V!lWka5XlZ6ezUH*wCJ$K;Qw~Z;dT0t(hYoM^!)wp=lANSy7&I5UO?ZamIeN%b@jd1 z4taO)fard%$M!5&Y#v)vdu^|rwydT!;bWwuCx5O7L*VtVxKUl?gxb32-{!gvs`1yj zY-<`eZuQcz$gAKQs3v#HXi-=ofPa6@U*n>#$T3_sh_B;~K6$|I>k9Rm+klU=*?aT` z<_iq!N0`OfppbIDHZ`@8I@}a{NP~KPBa69d+6F;MO}RNvHNE?Ys*4S+we-UYkoP3p zpZ&FYg-WEYNk#dR=#py8TMYmA>h{*paJG0~9x$jIh~~%ked|7Z61(XB4kv)bW7#D_C$d?_J^7kx9+G}(oLznC%ABx#Yp3&a)n{94sB z*O|qp>r_4D(_xO0;?1WtX@9bhV2IL!TMGf`9b1oS=)zS5nY?bQpfZ# zZxu&;9C1Y+i9h42t~>C)aiWtVf`Ws?Lbb@3L}+qyxK^hL3qvj@bm5wyV0}nfgf>!# zTuekxbSVuc1#!ljb&OF0)XSeE1Ql;mcAPfKBYwj{Z}zo^n?BFovE>v~wNIBfodQRI z9;psDYR6eAdV3eIl!W7zUg^FPs_6+cWPM9VH%D51G_k2$|Bqv-{R3#~MBf?m zWK8d|>S-gOTcQ-F}Pp(MGSF@vQ{h@@-=jVKb9v7u^zAjMZDXOQR zLY2SIK6u{SYeH0p^Y-qqRf%WatsaFnU_N>8fq!4J!J)9_V@crpJ_qsm34|_}C{iVu& zE6+;F<5R4{hQQtuydY@%rK_#|s*Hw?NzZ|=c&i3OM*1BemFt-;{J{G8=fNJr3|Q(s zVU?cI!r65*)aiBWOG{1bbOCuhp6{+umtnSbY)X`^7v6UGDjK>fXD!Zw_EcAyzrnN~ z3v8R>%NsT+M?C}GgB~E1*bQ0+?P#bvwl#!u2gjZeZkHYY)1sc1UCTmS0C7Id1 z0^Xfyoiy_+r-rkE&tl)@-`B=x7u$o5KXOyzUUT2Yv9`Uvnp@Uy*-^24N)O*_d8T|{ zQXKopl<$1+=|_N;u+D)S5dI+h2=l*5DnAClm(snA5ax1u-Vh2D(*{8ZZ3RMJ&W8TX zVQ->o8<4HJojNAVeX<1jzU_A5)7tn3{kCcnS!&8-5A`TlQyx3ildl9?6TClo3vcin z+Bbxq{f#+XO#Bp}w>G4IyV~gOvzh-IXr()3Z+&j#c@^riwatN_OzH6#xANulGB!D% zFTF6f@9EIw$Y5YG*3JQ-3O4ewSqO@8~SVT~yUaJj`F7_%7Lf$n? zs`IY-hfS#7PJ1`*c4~NPnr%{osVM~t`TsVdD!mjfy^Tf>y!jz|g$)&@sJh6P82fd{OJps?`BFytL6JR~?eBq}UgtB(o|ii}JeU%xZ}jbZP- zrThy!0UPl!hCL_ec8A$p7{gNJLjz35tixXZ`_iSKY`2lu$5_vs1}QTA4@r#IOu)2f ztfM_()M3^2bAU~1CSdk0$+V~hZnVotXImMx-A1hKBfjlcx4#hfyPbFR>XyV^&Em0X z5i@l8Uh9H0XO#1|B`8)8hPKVS$&_0^Zf4r9*VwjnUeD%8fS)Jas0Ip$?;m?vr_Nq% zxuT_?;@csnLs3LbuW+B&g7Yn284r1q852)8gd#TOX zvDaXEdlL7y zDTNClPmtC6{!io=`$E2plI9Hy#3A(_OO7_!M2}q9TB1hYqK`IMOkZCBG!9cwhc>c4 z_#V91+_GiB3sv3kK&RGnV>rBTCu+k!6x;gS((}j1S;*Y$iWfSB%0B;gfiiO;Pm3R` zXW38K3Getb?PsRgr7Xa8z-^)+AD^eMq2$W z$hlf_bXah3WN0y4S`YADRt<3dsbBxVY*nn|zx?6j)1K}6iows?$r@d7P;h9FE=(H|oD?1wl%z!t=R%N2+ptJom?kJvqYEkFO6wvo z%VVljNH+d-9_RM;an8dnf^xo7UhY}13{c(3M&c=Hkg_@_*YJD{yAUIPZFz=qU)140 z>T4?JEPMRz97s)hDp*ebu5vuMCwQK_HhzY1JuyE}Ly9%n`WZc*wx_mH?U0|jd{TgX#MO};lVnIZ@ltW5 z#pf11MbAYBQMmAg5V@m4h5c23y-I|Xz#*3;Nh(>V*W{5V;Ovy>p6=*UC#>TB|->0!a&{)WLbeq#$5F6vaa{69@KwBc91r9|P zwUwTc2YYs6V%l{{7#v)s{I^R3iD{Yotl0SSyNgk&vC+OQK1bAI!`gPvK^WF^_s580T5%yzl-EX4U)eiaRIQYMDJ?~p zmx%ToX)<(qx}4nD<`xOvzW`dBvsgqUHZ1JSkp%+5z~Ui5OI;hSJWcLEti3KMQbl#S zd0E+s+N{jvL~VXvmR_GYSd*Twi;Yvi6hdvaem-Ugq7oan^}~i00)f7`0I1QmQN!z{ zF)_^xGuvmk%WWQ4h2Xygtn8hWK57aCqV9$cXbgl3?)OE%`xFm;SMRLc+KdRrRR;pv zd?Z;$Y-`1ri-STdaUs#(M_)^7~nE0A22wHXgs*k^O z1@^tK2~fGQVU4Z~MZdcj=b`eE%dMKhCHH4|tXh60^U1hEZ2{bK)KfuOKB2dX!) zHomJnF!PSCQkayUmYF*+Eiq4%nGzevJ%|z@RmESJPzhz_1@=g=oZ>-1+pRX*Z>t>I z7OwXi8&{Ry6PF!Z4+$LGeA(@RkD#7bKit1SAkY?G`r|a_abcwmT zbR9lBl&Fnuc2=|qmETxG-#hj7EmUjQZ;AU01R2FyK*y#wIvE3Dt3DcS+QbbG{k3v6 zyE03J%8zZ@;Z9g%6oyYebZ0amP$tl;6@hA!>t7wTiVm9{n_tHj(P(nf^H4_=M&xxE zTpBG^<9Fz?Y#il)k+c@KfX(I zq@~7g*O$(leW-D4Oy|a;1t3VuI|Tvf=4p9w*B`QV^3&6sD3 zNRDpBI#l+++RD~e+O^GUQqXRZ1u*+Ya{a>f-KeHd`+Ox32$GAFK|zw*O0JFTe^~)K zH2&wt#-Eq;LAr=-+bd}Y$PqUD>DR7c)M|lDt(G}&Z#G8;XM9!tr>A7)q~)b%R9fb( zBtf0lq0%EixQ_xvWmVJWqroIhLRzZbB>cGp)@C=u@Z7FVofAQ*K$#{=k^x} ziUh^|fl|ZTD#o+^lp|LRMyM zEA5+lkC2e9ZhU=j9SA#)IO__4mIy4=3ZIpmtP!9!ZB~V7jX2QO=St>YM5Vdk?tVzp z*l_VTNfm$t{oaKGyn$HNGHeFgY>I5|;MlkYx3(h@8Z*xh?l*KrCjE|&bfZC(zV8&} zEy`f~GogCx@Ly6vD`_QKqZS|$BGzqN(ijvspeVUNQ0wzfYL&a*(4gI->IdS#NK_d{ z+pbcdRv;?P`t*HK0g7|%AzdKAfBaS-^VVJS)?K_`<$rMNt|+*&FPQ%~Yrw1lvj)r> zFl)f90ka0o8Zc|XtO2tI{#!Kw>;JUCO~8$1=Q3TXXH)^{BiSuZM~^E1#>bb|Ck5@^ zOXtt9yq#gl4a~?&PSdC9k^?JeKlqdKk?L!gp9Thw@9goF0gl17wtN${n{1WR&(kL? z%gJ-rG514#MyqeWp=6DZEMZ+(I99b)@r^M}MqXV`M@(-box2;3=LpnyPs8z?PVO@g z?U!bL0>_FXm5V>TsdzFcQ+4P%W$6+GN0IWZx4#d^hD6*=ud_C`|Hs}_z(;j7fBNq3 z-M!Pu#f2mUKbIgOKnMgUfl@4-1__!#a7c2vOD?!WaEIdB;>8LSic7I#h2r+#dEuqk zkQ`M0-}kk>^jCK8$;|BR?CieXkutBvtO4~EP4vFtL z1BS6L=CQzw`cqd{Y#__mW)*D-Ql@NhQ)f82AAA68yiO zb1h=N5%6RMZJzWwZD{VdHxY1{y~5Lr!$Gy7eVO5F+DElp2e3IIUp)I9*mL~4rdR^E zF#vw3_oW%`;8X6s%CLL$M5ROD0G^d0ehPPZ8u{M20lbtiNyoz?b@s80QW?Gji42p^6;|06(%!=^gIiQ!?ZoB02}K z+xee<;SM(C4reym?RvFRq1RdU28&vWT#OVtv&y8=YE&wPU1`@Vb;udXnBCA3gS@{S z#d&`fXpnz<#IOSIt&MS3rP^**Y1MXvU8^>!mB^u7tu@&!Dy_wcF6uO98wAN&&$a0#uq&57W=Cv)BdbYlVIfJU#k{p>v)g974r>Q#SC#N^5 z6jq(Ws)m>*3YE^NvRU-VJzu4_n2buLQD-%&knq~G>p2V@T2%+D7*2mU;&NrPhB$aL z9?uwGS#+R$S>D{fH~Aux+(F#Bq-W_Eyx#n^LZu#tdC^Z#<>agHzB%Bbz;REoSVyDs$Ar9;&>fkp;H|5h$(Mk2Ox1YD_kJ3vmobvtH z?;RDD_cH{^dqH28A!-(e*h}GGT~jnBfJibe2MDS!oG6C!ie!I2ltChHrNg>+$1Ca= z;~IH>#OH)og!f7csYtD3EGiqCU{y-Aj6qE@Dik`jgi)##YO_+QR$0|(qA)_!vwJzz zu#QPCW_JDGS;s(&KWFVS&#PIgw^%ZeTEDzzo{X3!zi~W`H+i7zI%X1)Ry{_zq~cWJ zrKHKi?4&=lrr9ibab1OHOr$2_&t2ERM?SUq@O<OeXc^hFh@LJw&!JAT3gy{{F{|O^A~>$hoe;D7%&y#i@HU_;po%A=9@a;7w4GS zL1ljux0(CayVe*u7!^o&tOIL9NG3ofgPA4oCTr)vV=^4fzL%z)pblo?6sTw}B4$$Q zHoGLvT2U?Os@5Q*%;u_?iq5*KS1BG{?&3)zX8W_tA?3>C~lgWR- zDYJP9b&yV3?$PUJ+1O2TSZ+F{eY(jEK^&l44oIWFzwY;Qnyb;OL>!VLmT$yjysLEr zGS3mcnLwti)ed!V24~n?$_Gb6PJ%eu;xB+~I2*ns3hz|cYh2YEvHqkXWsG$7W@til z$&l|TwoR1W%rEXtdy}HxTEFO3GGN!j=nY}6>|7rBc0K&2r)Ed8n>hXs%>;6xIkP1- z$YN>hq=8Ds=VFvnI7I(fq~Wh%6TpC`Z{XM31?I@NB~89b zK7 z9``En;2X+Tx;T4pG_BnP`+uDFjz+8z%n?NMj`J#WCbM_5ZqaX{i~smPWMC8jA2YCl z@mQQ;%?j=H0b*UqSCFH0JMq(dck zp>1n~&C7?$%Ll@&+DGvG0yX&;XVqu*oiP?>*EubNrU4Gf3O37k7?x1###blgy<6Xv zZhQr}Zc7`VfSL6tBF;$7tbnUuRBp6LIET!jrx4%lvCQ|jq(RxmjhgsX$>}H?;Rn-5 zYoA+_K@UO(y>WhHr$QDzNS@eBQfWLxJg#9NYeCp;){%0Y()AJmCM;@(2nPm(4jqY= ziU%0D_voqsV+gV2)n?ZB;SHod`_75e20vjbl#|#O_0*JfKrjIV7#n$7CzScblu}Se zNI0Ykbd+d5X`f43t5H^JNwTW6aCt?NXMF`PemBp6N0ofn9t0lUCmR2TN6Q3$Z-Iu< zUhPTiLW+iDS#w$`xq`&mPw?`0;oL8OR>KwNLn7rjIKjLmQ#ilMDE~X>JC#~782C-8 zEa*RiHH|bwDawZeGbd?#WV)>~nUrRm(Q3C^w05OMqtMy329w5wOt+D3nNq7(>WsFm z=8l@k^&mU27z48c$#=Ehz7RG2d_!5}-FRfd4Q6#2gos8Nj(6f$C2cVyg-r@G%N8}W zixPGz@m^`+DDobdG}k2LkBh!r(6a9_6yFr3Y%!sR*o;b}MXl1BbjUo=sx;`e8m-EV z45@8eWLB5c$Wa5OC>vU6nC`NyDX_IAEd{Chx@Z>Dt`VnRpTbYf6-A^x*e+Rr73}VZ zh{uyD2?vOJbb{Z*MJqc)Sy|}RL&+i*a-lpX+M5OC6ydD;P*xS?b|9|{YF)oA9HNDR zozI!vh#J_Gof!;dqT-7K)UugcCa)K*Y`H}ESUX7+-(s|aGcLSB;CH?izvu`8M5Qbv z_$?2)4(zN_f~bRKTdu4iXn6z{ITgL`sH*y;&2BBdb3x)YNpV+m%r`(q8k*)&4BIh%b{_ zUQkLQ*l))mN-0E$J2h@7WQq);g%z*ii|2>)8!s~8lgBBd>S*m{La)O>q6RHx_Ng|Y z6j6E|5?3usaR+&L^ahpDrcmqDcD)r@%_~vP9=BzX!`MxnRY0t55J38$NKP_!#}eX z%3p}y0Z>vbT7#DK7bQQh{2Y2?WDCCrdMBw)@F>xVCU(9oPw>b&V6#k!fqvui*(WJl z0oOCBUo|MRW&KE6iqcjv@)&Hj*{E0RQL;w6!CdGn@K-)TAzADpH>Eh6xk|Dp$mGx-$-uufduDYYL zD8uY35Q3UNJ?bN#X9c~11up1o^mhiQdr#k7PTp&npDZmlR@y=u=B4X7$frCLbO)7U zw_2FrqorjhUg;)i`CVCI6G0U5<8YMV)iZlV-=RsW|`=w-?Kzq=tnAG9ra zyKV*V;Rs;z|7Qw4M?FUsG&v0GPidWx1~?g8lbRgL`fl4t?J)9XX|KT#dk>E{as@ZB z%f_Jn2VmSC!WPArG(o^P>rXtv)A(C<9+I@!c}#X7bP8{5uIpG1_UlA?70mIQ-yfPk zQQGu8l;gZ?u~4@4nSK zFFP{bb^M3P@ARAD{rm^5?36Fh|HK2oz_$}D5waRJBLt;f$A5Xe$!gc}Z-{&@xf-Z@ zx`#h?H>CsS$}7wZ^r`%AgG{a);UD2UH85`b^@uMr_eLE5!c_;14cjEKMs2GIW4<@P z;-;JY^zCN^)z94&j*osJ@~i(wWU7Cw^fKMR081}ut2;da1!z8q7+q0nHOC z6(rR~$%xVN!)!qwd1@QFsIXeV1;q&G|61C38eu0w1y|7?KyCgrem=hmpN((9GjSE~ z2G7Z>&i$D?pPS5Ob5?Lth*ul}+lOUgH847R1>3^*XPsj?S;;I3a|>-evkNnragLG8 z_>vJo-z!>6??sQGT@DhTfjbA<^=J-Gd=&qe_<86`#c@6?_Qv>HbR^h`#Mt}Y?| z3x@(3=#!CKn-wsqL|C5_yBFdE)4y+mXp;RYIKPd>NKbR$N{X^iHxq@CWZ1tz0M{N&x%24}PpYE~_nMxf z@6*tJOC_U0LqsJ}B9$FbB9N3+TNjkCqh}XL3Q`d4ylBMx+HooHWIFBZzX}`~6rA=g z@Q^4`M2e^GBfV5BzJR)(e}uT=pcN2zw;3WX;CHgFMp4$)_`tf9jIJqmTRQ#9A8B%l zP;38H(8wkyxSd$3^Ha#W5cd&9g-WA^TLtePNP*&@%}7L?XP3x%_b`5=J?LxPPs^VR ziqs+d-3!F$!ust9r5$oFwZB6B^w@{BLo@g5n%@JCR7@#fqP{5g8GZ3-@_yTJMjN-& zQ(=OSkCJf}O4@d}(^JU+K1kVtcr-n^X&9*r>$pn>2K<)0ou5i3;#V;RHq+0!|7_@N z?)sTuM?h1mdtjeGnE5)dVx(|H+Gw?k$!h-(s{CPOw;edw&9u9ao z;NgIW10D`|IPgEufgvI6_>sk!zW)K^r^Qg%T2wjx-TT=VI|Js|Envp7Sk9Kp=f6pW6-$)(ETQPZgRo&0Ls;r)4x&V-Jw zR<*{(^SLrbViydLPm*j=^SH;_6lY{L6@NP26(*g~-}M&^I#Cp^PSEG@x22RL=JW34 zWOB3Y9>c7X4YPVn6OY27FIdBqfx1I$_ueT@erOKZ@ibA&x&&68rvfKVugUG-NiI#; zzL>Avlj5Cko{Q5Lff0wzyLrd$!i!}dMYpKd#Xs&)PQdC)8e;tWrktea7X<2iSlIp> z>4CE|>AQynu;WJ*<8<&}5>T+v10fUg_vO0^RT>fhyr@9A3hHCL_nPRCa~nZOT`d4T z!ui)*4gRNulXj1R&!n-iiAc-S{e^@;jZNgH|Ie#@4}l&IcsStUfQJMBOb$HDX~m8o zTH=z4JTRdQ9RFL^?_h)n*6y$IUQ1vdxxw$v%=BQ|(`&(V1i_MS3t^3TOUe?Qs zCaVkgbo*4i*8(yB>(%dg2~+a%$qPE;rx*C}!`6T=rwL0)@Fl7~8p9rGtSQi*?tpbp zcp_ME9W>l-&chTi!Dh+qHz-;Pb`?7H=HX$v^>_w{>#l+~*J#OAJA16zdrwp z_~fMKyw+m`Vp=y99=G7Oc>Lr{Vo7iUG4Xk&fI3Z|3vvz0fE!Jt1S|a10fUp+#5cy% zUVESCK zPof<_QrT^IG&^CuSBX8F4n6BS_ofO4kltsMbHS9zF1=aAt=nhCQGL40dftZ~&lF`A zhW04V1MRiwB$+c~UnOpB=yiyhvD{lWNGS+CyHwb=;tdJ0;TiX7pI4ko*0)jn36O}z z(ryP}FD+B_((Wn|{*jxHr=pM`I&r;Z=!uv9Kc6e>|J}SBB5tQ>S)cc2pRP+Xh__g8 z!K2&#%6Y%1=IODlnPvUiqsrfAk2kdD7?Q^#kKQUQR`@;M>d}iL@6f2wB9zxyxXdXO z3la_ij?H+VW${GHo1XkN+fK?A^+5`o`m83C(q;Pm_;oX))QfwO-`36M?5D}NML966l%oOiyctunTV`Qo3_I(z zKjl@oUeb8{pi&8I_eT-$N`=`o!UOA!adoTD71bC6dvcGY2dhEp6j{mNKTDsIzjGvv zM{xa;*Xi|8z82al1$c`Zz`*)}xbnhPl@^WPlU~cx0tVDAuL-GC+@J*QEUl|bjUl#6 zTnA8W8Jch;XB3(A2uAvt^UeiToep$nm&yOd9i7SY{eiE9W8&Wl zpTraLR*|*5D%WW&&L7jF%#93Jx-W{qUFAx5r(Krg-YzMD|K5Ue8UU(XkjUV969 zEhoYCbYVsmlr-`9?obxxZPjx4!6>XoJ!o4kKUqxI@X>6b`%c&oU%R6l_**wl?{KBD zg=|o$D~*jRh?W4(5m8f{LrEz(s-K&do76)XlQ0JGtx&aV;0_;^2q!I|+gHzhBd&vj zPW0XPhQjxg(4+yybyH~6!t_fe?itQ`(w=hrr|?p8Rp>o!Majg>$d3sn5YyWf7M%h4 z;v&x`6J#8-m^3<+wasEtLYBe$e>}?|aGt6)v85FS=-Jt=M^|&2t#f*% z^o%~{v<_X;J9S9OFm*{q9KXhkp8*q0lDKBdL*9}xb@{#4SCjs-D}uS&=O{j4;&7It zlu8&8R^IDHgTDBh4WqCd39IGn>b?&sl~`5IJDkg|Rbd)a;nP%l<=!P+b~=ld7&4LA zPsakI22WzX_HNC2XMwf&R^EkUUcu}08w4c`o5buG2?P3T-$OGRiYyIbHRAMAe|b7c zaOr%I=`sxH?&7S@up-fVU!M$*n4)dWOV4-1^g1IC?4tJ zO>MZswvuW*#YpJqE1UtHn{e1IW(u&Xrv%12fj)g~!-RL2%@b7!*-WrTT@ujip5iT^ z5aHGAeNSv_hlOHw4}xfv^qe=H%$wL6ACm{NLG|r2Zr{%EdnR{i8k9YGkH{4kjz5?V zzxntxvMkGcn+d=B2$*L!3HQYxk#>J^*vn_%1^g}P0$YwJCbOzt;bgXg=cL@VW+-Lc zEoAv6asLtg4&qrzIAOd~WSPWkOyb+fJw(!Rl)F3wo;$`}PnKLk)BW(9$IB+&PgQs* znK^D1H;H_{FONs6tV^yC< zB9fj>xNaW2_Z9a6NvBkBjBH1N+Wv1I4LOhNje4a` zXEIu}R;_(lD@Ov#T0OQfHbbEi?SC|DH8kZvm3NxH;L(zPA6(d3^~I90k#3!ly;4WqK?1W&E;in~Xx>ma5@dvSLA zqVN8l*LGn4&!K-$BVO~L@*Z;Tu&*;OqMx3>zc&XQEH+v+eb~iw861DNH4_ZS&si%? zzz1$TCi=Q#h;Vrg&zh-V&BSQ@Z<7L$7U=ycqFc5%J~x|!H2m9F&a@~0Rw)2!fZm_Z z&pp{+##sQ;@NfNoV$AusO94m&^!{vq@OPoII|G^t8#Vd2eMQs9dZeI03P2j5_bF*; zF8rd&zhy6lA@WGUZ>0dF0eWAsXhI?@yN%%ZT=*)j|rkiwVgEK*O_W#q4ZRjoV z1GHcMpf33vzeW$pZpp4Zgz`#tom@!+x?y4Gj|xkL>A1mnCr^&3FaZwEClPukbtL_a zpSKS*M$w(-A;etzr=IC2JYM=!&zvES5}$hJ3Lz|vN?sB@rG$_DJ_V<@@XJrq6D~YJ z!hs$3Y@ZWZfbVC{c^ih$n^2Soj4zO2^!>YNmnZzgmz0ub^PkBY_I7tT488q18=b#* z5d+WvQx`9c(P*Aw{aqvhdg9MWz-oN*j-#SA9g~F#O+4lSzcmk_{Y;}V&;E@k3=ioZ z4tO|FJO?KJbJkL@zL83&&xQ5PI7#2R#jS7t>NOS2J0-2(7`sXPe};%A%q80Lqj*8w zbnFiM3A*6<`!{l6SUX2Els;%|1Z8jOVmDV<{onx(vI589(ybcK<-di(Mf22t=`o@~w5@p;zqI#pQ3n=(ZIh0$G5)Ulwl zM3xW1Oje7+TN+hMd$bn~t(;dWowQ#a!R_Pd8{MX1E&iP|KYGua1$L~EHtZ|iiU+qv ziOIL4w?1y?Q}HXXXN7cOV9y#VzTarI&+3tPMRE1~`Lot-;P&WF8MVUzD^qS==S1$B z9H>(U^eyq)q%EUG_*KlMz)fcWPn2w~I8$~kj1~6o8!&{=j(WKd;4ct8vsM=>b*xfx z7vZ@|UR_k9{e@fC1n++h&zZe%Wx;b;YK4IBUynXiej*Q~33Gf@Ky&Sfq z4tNNu>`FBOD7e8x8(3dVk} z=EW{mW^T}P1=Kt7whrBn=gxM839z2ayH=~@z0d@(%KLh+1UTM4FLtgGZY}4_z0qk1 z=jIosF-7GsIWL=0?^Eq6`u;3w3$ib!F)j(#@z#wBm34kN41Y7*;c_O(m7-o+d`(v`G)(9wB7vyTV4mAi{xE)K>39C6De1_uu)_l zO42qKrF=2#P?A8c)~Hr1)Ml$*q0ksrI%HsORqG8Ft4@znzvz(BwJocMBN;5`lc_Q8 zvOQtX1bhB3%e7n=>T6vL+Y(Hn%!m5KFZwAyh`3&u?5VW?JK}o(N1uxK>i9;n(*jRu zz9zQtOM_vLpWhtKMK&n{*1TU12n- zQAR79UYmnClE5vbIFrF{|Hw@lSZt(w9g&qZ`Tw4c8IZe@;1u-4t@d^mN?)k58cjBp z5|Y!YQ2t7#(xkH?D^9Ilg&ZKPDvR1|%8GI{<XjbYqHl^Ka*O|2_NvOeOu-H@vvr2^$Y?^gwxL7rMlY{MOf*fCl7Rro^M~1B% zBJvV3Dui;wScK0#Qi&7L&_RU11viXV_?V&KhVc_`@8q%Gk7g|8-`P#MVSE)RS#?!5 z;UVRQv0gSv^MK!-biY>jQ;XNKSQI6x>>+A6UQt0s^H~C zijLl_UEx7^`I+|uo=$hAf$sfF2a1L>es%%4fn<9Hx2h_u$Nn?;&76?rYXaFNSNy@a zVdew>%D5|jS00>|ZyrM750M^U@j3Vt_&s*Ql<<4pP!#;w^96!nZLBpKQ6f&ITA?@D zPy#%SO<}TWtXl9fGnn-{ElT^SQfn$nbR@(0fsdNfB9@quV$vu$y-6Z zU=;}^wIZZkIKj!wVzd|)N{trfyHy))My(00PSj?F0i~O?+w~fh#?+|HPIWZo(5j+D zhiyKxPRKB&cS0^-PUfMcdAF|$%gEkDaN$yMyg+)UxWz<;;2DF*2alfLHt;(&qZK2ZZv4-D zg4bnLwtj3XUp)Q5r6>?mNEHbNMy#O>Qcu>U_@;q?|DgUVJ5ol{AXwRL(a9qfTFIq9KE23=1!FbQ{qn`NZ)53WJ^Z3G=1va0qyML$ zLb~f?#+C-G%2ePR7w#4>Ex=Jq+Aj<1CAfYd0Tz19|IgU@qcj3dAJHgi$f{agi;EXZ zXmVF!cR7GLt#~rhp!{wZEu>X7%5#>%|HI&bIsh|K+34|8Q~vEMy?>b_@maJ9{Mo5?f}cA;ru^IK>;4P|iq=j( zOO77(k>BbaaQMYX7^?mi7ywgAKKhJ$e!=^!kd0w!TSi`y5C4)a^JE-3E zAzx+Yh(`6;!8LRN=-niV6QG)r?X-5oXQDvh~@R0kS*H zGb2`g=ZYDgrw{%A#!9vKNCZ;{?Sh+)x4I&KvhsfsCo35Olk;lLac9PVXPZBFJfQbSUw|kK=pX(|W*LhS_!1WrKugi}Z_#BIM7PNo$0oskP_}g1Z8$lL4==cO(Mxjv>o4U`T&4DEqj9|ciEyIIcgIY-BMYkIH1 ziA9s7nme%XwL)CA`+Bd^K{KTnHv3AkMGW!yMnKnhGQqoh0gvBQ5`>(Fd?3}hTTNly z2Pv4?(f=kVyM1@Th;!w9C%>BQllJqj;BQNn^M2OIOe}cQBa|2=@$(-fj$Who78@!_R^97F)m$$}6WGw& zD%v){b#L#1e^e?6Qs00>WW=G$@@gUQ8~O~&7)jsNP(q(W3H=16-7htscy#ej@SOgfFxs4?ozCZ)-wu&V4!kKJ>x=PHkER$+Z z!zXtlKX-|{Pwrvjk>obO;H0P@;gfr=Z|sY-rq`1h-lJPD5TEF0lP}aOd=9RZhp?gv zZ=VjX=06vNil(lgy`g26u95j?MF4NdL_hR@9MFu6x=$Iji{w}fxHlkRVLvFTPjl*X z`Mgih4WCQ*Z1F9U?wN5r3Qd)Owr_m9oq|ttTs&d|MO#TxcF zr7ymxvK17_K=^k?J+cYb8nk+YLTON|En2NwsnD8{#h+HCN4;;=sjW)0R+A%ie2L71 zhZGl1{L}m6fc;bZxbB|$Z|vW~zH&+C!9$}Pp1Ko#lBo&qx$3`VCOjh0(E^Ri34z6o z$^zTDf_}k>>F=o#`9QGdY?AP#5L{2L@U{=H&fm3cF0t>qm+%3nr}&=LA?>@{D4TM9 zkN3tez!jyTD7)HGpXM82q;(cqbgm<%YC!gS3S4{K1 zHguW)xr3|xI~}T_Gm&`~DC4>b@=OaQ!O-`+BQH&(@@fnUKhjq&SWkxbrbgE$PB?jl zN{yS6<%e99V|mH|J$6W<>)TX6W|d_mBq5rT~u0H4XH=WxJx z&%a_}?gwZ~XdrzTl*}XlO=0d z0opZQ_DJj6W(w!EV4rU&oUg?P2fAxtOLlTa;5mge-2aLN_#EKfY54EK**8Kqhr)ST z)>-Hdr%Bmk7vOwB9P@{EQaCm8D|K9PQu3+@!WvPqahdvtJJ@eq$YpKV4J#!EZrA}h z%HcJpmB(98tIw~uz5&S6b;E%ZCzqpGCcIHzow6f}WW5PlG(_y~RAN170%x1Vq3IM9e+Rd+;z6vGUW zM%<%^$VX!@z4|tU5!y_=W+o-Qz{fLDF)N@nm;P!8Sr##wK0+L4Mv8xE1^6A@MJ9Ln zUyH7h>C=+^%`*W%90dW+b^_UNG*Rj3mWLN&j}zf2OefLLxko7ELj{7%!vy6nFAx|4}`{Kx+_5i=)<9G2->@Zt-Id1H7(& zL@FGk(R?1w0vLNF>*r>LJZd;PpegTgAbEzdfpCR=*rw|1;rH%@ZdX6kTN0w*|d5$bU zcD1nEY)Y$5t3eJH2EEOsw<}OO9i>sNN4b^I=dj+aFW!*;edw&9u9ao;NgIW10D`|IN;%chXWoC{Chcob0^Z6bPY|A#JWn?pdX&U zPjX;bIX22H`@xUO#a5tmS8E4*2b;B0K?+K0t649*ap`HLO2eC$IyVuvniIX=8^C0s zZA7%DYf!|rZ^I9?9xS`{o-3$+XaNyIz!vUT;>(jd2sqdCdAi&<{>&Y45JHpvL>`Sd z3C|-#J$Mq!w%`G;Ciz~v3H*tZ-+BK)z9|Z}zP)4@!d$o8;h@u#Shj#)jeP$-iDelH z!z!V{8t56UKFyca^6#??&XcZ7k3XQ!lc-oYl%)d9jpNV@16l#;_c`@tdx(K;?oe}@P^PXW!SxWqSB#n zfL|*^{1oo^^*Mueled1>tH6VAC_EJ_e)G%aN^>3n{DIMt8Sday{V_XejjgP|Z~*kT z)NjN%cm2(bT=jOSVn+hNk1SJqhdcO`EP02B&XH%5{-$|+(W6Fwe+hGKB;Lfm6BcM2U|LZ>Gx`K__kIfp< zDI2d#J|oWvg+%ZOyj}i7;jGFpiG5W@Mst%-m7f20uGjZ2Qfwx?$dbmWkK60z?cy1+e`ev?T^e>Yt zMePppD`nmuzzxBCTO11X5lw;62(5i?O{VO|T65|rRm7){@5O(zb{>1AZWi}w$6W5< zj(gZE^;3B32DZYtPI$r#84k8&(;^4$X%lqD@KDew3`P`KYNm>J^#pq`LbSXpz#Kv> zd9|7KeYlJ(?qtED65n%tI(~_btJ@P>lW4t-!HHx|3y|{j*8{BD z!e)_Bt`+|<3Ce|>^JE-P9&fc1e%CBJaUhgl<$vi4Wm|E7GF;nL?$JK*J4CGS4&@@@ zaXply{b=b>o|e9(L76B^lS4^aD^orYloct8A#F6Mbr!QiuhHrZW{cLKGMWuWyGCs_ zC~X!LXjrW>TU0|d4imCl98t2}Vk#M&oZ3tRzmrtKfWxk`G$pc2Zx(Uu_E~XMpYF1r z_d%XAMVT?~7O$hfRs@LbZOJz6&M zJzQ_^%^O@CFH6f?{rpGU12&LA^D^I8`+(+!;!}%VX)cO8THgCl;i`dkOmxMUFTP%g zkFr+Aary+1>95tB?=BMUp9pPMiB)9WSc(T_U$_0KU$mlrd1g z6n!}ZN(yg*y)A>SMq+C)C`>xDS))@Kv?dfv-)K}KF}B)G8of?qP#U!g6r#71qa6y- z`)g$5!qDg@OQ$qjAEf@O6R89h9DO2oA^sj`O`AC3ZaEbc9D<`S#wRW*9};8SARoJj z3JlH;p3v-?Z!DV%Ouk#@2wE?D6&4`Q`x*j-PbBu!%gD6}6TB1GjlkE;fI#79Uh7qf ztkD7W#qG_|-E%@1-t+mK-Js4~gM%xHS~NA$ou(yb(Li-|7iV>bF41~lpHG>)2C^2A zdxzDymU#tec5gNo3LHfj`UY_UXxcL=MY8le7-_=Sf!g z+hlbGa`QcAH0U%|z1^fTX_R`q-fFg3^+toqW+ffdLN90UU^N&J!=SPuD)$Iz*uOI-&DT>Fw2J-oDN zU=_gG0-xF+vJO}TD}RX8pyb?TfG7|$Yh%6Htkfz| z4j7}|qP1IfDzi#wG9Z6gtx==V*mPDS(otr;0x739|Le*L`0J{a77P4&`y`i-L4tNZ z{%ktjFUxzI31uGv^9+=qlj#7S`#p)_;rV}RPSxM5oN}r-TBG&rkk*uP`sh=rATqY= z`W4o$$Nf7VgG12ceCA%7a3nERd@mE$t!KHj(%h|E+xX^9 za-(#_^DR=}7qIrBJTS)y?!9we^G)@?)2S^n;|b^wX28`m!E%jJFkzZtWYrRbd@gj_-YN!u%xI-^dn zwIDZVH46Q&H<%S>wb`ao*iaq>lhLkI>y0SYf*rp9qi6$ZqTwQM;VNNGVkc2ca9Pk- z;LqQ}Z^ftKQ*Z_ETb_xBahGxHaL#gU92%C3so2NZJ=jdvOqPOqh}n{HkCDcZ&{xqD zX%`T%&;DzbQ<_T)=*i)5xK^9p)H5yPqkIoG@Vt+SiBD?KO_^*<&!}lix5dPOuU$%N zj}Ep>Q{gsUM%xR?}z$a>9W_dUvpUW^_pFkO7|$F)>X|U93%Q-Ao;N6lq3U zht3@`QhJcLQp_f6N?O-UTaT3Vu4(A?u3chl?rb~h5i~7M{t`+}^>Hsz(>mpZeOeyc zcO`Mxsne(k(qB8Ms61@F7S;`6sS)|&paPZZgPl8s(rBG?LIInvyVe%?iN?en@s5D(ccxsy3&qR1)s~)|Wj#_8Q2?2aeclbJYvXQN8P%plhs>Jq@0$8h?c|Slm zG|j#X*fi|#opWfkjyb`AMdA*NYaiC`nU)sUqlc+aQEVypw63O%l(Y`%8OqrBsIHmE z5t8avcr>!Z@bd=-Lz99&*(4LWJrWZWm((c9*1e~#OGXD%S`lQHp6MA~JIBU9cr?2) z!m=d!^0q#^ki<9KFalvo%LxQ5-tL-IV9^s3Q>#yxhTR$@)rxPB>`r5l9BhOIt%SzJ zMbGN5K&9qo=xxNomN@}vfTg>`Mu|n^q>_i&n#a>tqans<9^QCYN2Ky@<>nyZ?Q;AP z@Imf?+tUkFUhSl$B5e9q!b$pT&OE*Vp@`L87mf-=r8>706P4|9{62}IYk`KS-KZ%2 zMNzbF7cw4DJnHKhj7rr^KQ$`b=g6T)2zSl+O^=ZM@rl-)OW99DD6}mzm~&96VU_ho zsLVOOfXc1bF4%!X3NNXVn^^)y^N+1{WLdQ<&>l{W3hhv-9`>HMi$?2~;{!;7+_mS! zM_r1&XBP`7v4T#5HZ|_i)tqMQT${S_VfM3jNJnxVTl3!1w}7g4R6{28mZrh$$Adxp zcmqne+UN7MK@n{iZz}x*bXm=*vu+*-eATY?4F#$2`jk|(CzIHG#@v?>z4jLx0&Sd$ zOHfl{)vxzWM`eo~8A9Q9W-3{>Kd69&jv*E1pkYJri0yk`1`V6o!=tVMXz8awr;@yE@R=+~SzWnhR8jaQ=M*IPa-y(RihQ=pC5uR9W78Y>@;NzcyPt8+}nisQvDWt#V&+GagNAxpj&*Se* zK=h|9dyU|mb9m6hpRIY-MVSBFM%23T=35#fUZ?ue0*z4T$+O!567DCFxT?XDKLUVL zHMb-^+J%7Y*K~OZrTTQa>j+uz91b9<;I1oN*F>MUu1)RQ)#|dO-KDO8m>8S*UffiS zN)2c5p->tvivrjdK4fg4URxKT;YLE%c!WD4ztu4sH2+1XnW*_4 za@atETMb8^hsMOzt5aep7S(Y2X4|hI95r`eS^fyxi(m0VI4wCWz~y$4>uyl}Dm0{$ zi+7kxDG+o+x!bBafTiFot6L5eu>7_2b-}qvY;{`ZCTLi~L>sEZ`g-8(b~IYg90s5) z?XDkx_Y#5HA6BW9u?abK=YrtW%;#=tj7mk?>h`F~1dT?+88}Tilo0Uy;&XUsc+u>5 z=5EGFbkXzoFXF%eM;eO8m`3g6WuTR3dL{TbrC{l^Rjv?0_QC$d$ihsH^~85u&F1z^ zi}X3aZMYBXbZCfQ4Jx-p!A{i1IM{PGn6yTf*{U_@^e7+&IvQ8$v?zU?+NM)mtai0t zZ&ImHuGCKMbET5YB-f3^mPAc5FEn44_8K-5pKvoWOYyg@dgyh!1#BjsXZxv3+DwFv zbh+>9=dz&L>tQ1?S-wATl62Ao*A2w3yus64HxOTY*Cw9erI*15oHaLy7>2xM^G^@}mR91t=qA;kGnjD&=Biev<6c@a*z!s%o$>+*9 zSL1;wqTAgt@5j?1@Z>DX&`VG@6}MOnWpmNFs?ELkb_8BNC9X0`;-wk0R@oZVvSvVq zJ5}5HZhZ_vk$U2@?^1>Z^@#X)gMvfv|LCRc^2VqC4Y9aI=Z5k_DGwz%&rfQjGG22# z^~kD}U9JQ7h253^kBDs*DE=o1qP~UA(PMo2Zs7TK@h<~lLo_LDUq0a7=eyBZv6P1X zNKWkSTdL+s;O)i8ZsOH`dsx2VyUSDk0p*FHYvkd;VbN7H{7x>_X(yB)^?^>MGMmkM zlr7b4L3zQoD1W)yZqS;IN}XP*Lv|cWi_M_d4@+@$;Lwnp0X29Er2ggXat8 z(jmT9J2DMWAafIo4gI4qEA4iZ9@!9>RW_BvW-@6t7MtE?R%F$7qyn|Y#a1r(oQ3?^ zkUM)?ph8zh_U@3;E4EBL%ApO^mnC9eQ`C3FlH-7amsoHjlo`ax_ds20=z{q)-$tEN zd}_xX3T=2W)c1IwK|aG8h(q+%sTDx7P!n2wOZLst8j+EaR*BA}>{=~4tTMrhz-lxo z(X3`Ls_a^|-GU5_R9Vd(cGQyWLe=WR_kx8!yHcYDefW=-0_7u#PzFVLQOru=?tqf+ zsf3rvdk~rMk?8wIuJ6VLovFScNNULr?5a}>UzZ4@aJ^&HDO45|U0Q8Z>lAvE(P~qp zpL)C2px2^k(`LO@r%+oIDB>_WOZ#s}9EKL(^IKK7xVVm3nbYD9We!!>gtUHqhB!)4 z+$-)`kc}&ZQ1q#1N(mqPed?Lt6H5~CmPAiMkKAhixiKWOd!bbnt)?Tnm@)qA_q%K6 z`R$@A^+pSJUVX(~+7l?L#PuVy!+Z1FEr;KU_}N@2d-GLfQmqyEWzyQOHvhmzxZV%% zIUC9){I`3cyo6s~3S|QSIC;N6K7hQxl+WG^*DvF@$oqBpXUY2m@FC>=Wqg9Xe+7R? z-ajoWpE}R0S*o{KGO#rvC$ojWW}b|gCBJbzjW>B9PjYI|B(DRu7~ztNQ-zn3CJVEZ zq_Tsgb*4x*fGnqZOIicYXqpVQPmit}h) zuRzjnMbT508ih({RM{+gh2E~xTTDi!(x|hdaj!Gk5$7!)&X>e_;P8IIwX?->AA0D| za2|dC(>pM((nQZh_eD2E=S3$(2ShtW8$`=R^F`A{6OdiNKv9OMlgKP;A!;Ow7gZ6d zMA4!Uk&lQFF@>*$kA$~`mxQN@jv5yNsQ|zQy)pTd>twJ~j*4b&SHYu-;f#%#O9elCgSN z4a|U5!XmLiOp5U^8v7ahKKnZR9Q!zXKYIszJ$os8E_(`l9D4}6KRcb>k!@nPU^imN zv#YSx?6T}owl7=AX0u+i9<%PSuCTsm9c6vP+R9qXTEd#catnO0^i zW>aPzW;LdkS)N&n>Bkf?F~%Fl6UJR6(glB5UNnDfHcnotf=eqndEsP@u@uV-gPY$lvAj^S!p8DK$O?;-7Yq-5!&t(}3o58B z#_|H;=GW-)0J4HG`;!%f*^jK4usk_g5n*}0WThRJ=R;O_Se`do5o38?WF>`@Cj-!5 zGxD)KDO}o%KugF9f#r$G3IZ)6D+siZtVlR{1iZGF5sc*t$V+@Ik55(*TAZwO!18!x z1)=4V6)`7|Q}Eg%EDwWAdzhR&HeA|+oG9{G1+@j7JZ3>{K9_t}O9B0phhvs0;47jud!AvJB1m^5PR?1+`?qmhQ?nYJ+psr*^#Bp|k z_jl0dVb0FvrFhJlMpk&3vlCenbDSN?hZwUlX9u{n9U*B?RuGa@vLfU-?eNfcdI!vD zBQGIzR5XG^k1yMj5tgqvH@<1NSv8*_d^R#+Tob9iVgV+P0Bte`d>b0)*hEr`EKaA^x; z8s=cx1nf_kwQ0NTWu!g1CtsO4eK8gTO~^j;iUL627_ zD}0VK79RSF;l!NP$V&)9)q+d8n6nC8+KAq(OjZz0F=PeNYlMe3(hqT*2C~NJfjRYX za|3!@M^;deYRL-1ry(m6j#CX!Z(vNuoGS7XYJ-xjpdM9_71X1Z$O`Jwiev@#XoZ5; zki3_NOY0F6%fY4fjER`DEP08;ah55#Gy!vxT5264r8L}IhbSPm)H)-_NouKejPV>N z(oziiIz}YNNvf%Jj0nt$)D(I?h~q?B3f-hX;y96-g2%>TPEt>;MNpBRqSM!+&L!2< zTEp?AWZq@G%h?vZ+GHM)oN6obB+ zQ4MpFifR?QhZGf^z6#M!>Zw(zw~(G<&{r|WU`|p|twOzp6ct<=jX6n8wGzFDG!>n` z60x6DR4dD1PEt{=MC?b3ia}pVTZ=hKO|=rSpVU+<5&My*La(7wODd|Bi2X=Wp(}{} zq@G&I7=<~Jo}$xNAS9%kS|P)nNKK(DXw)Jt#h|aCZNhR%HMK&-$tBg)3ffm#E~%zg zn6O+@O|9Tzxkyc+_r#oBq@~b%jFDI_Qd4yLawe8bYN_P}mP=}>iVoM@W#CV$hc}Mqs%}P0{Jgn4Das zr5N;Ow4GQksiu|*ImjdjE-{8ia}q@aA3JeQPJu7=pNEjsDijcs;T@kST3oi@+DXE zmDD0OCzn)Gix^p0E~%szBAQ4gwUEQfMM{c6U&t8D$wgWU)#wedTvAOfKu?isYC%6N zmsC>=`eM0AP0{HKP{$%Ig(`ipTvACb;B#`3l48&oFa}|{q?VeG-bY%BPM?ojPAaMS zsO3mWp)086q>h^Zf9zcad=y6)Ki`wxJxeaGBtU|l=PpR_;BLiF36MZYf@=(dTT)1H z_W~ujYk}fYC{`#?TnZE~eDgLe9M>d-7Fycx@@tv38~M+hH}VX%oZ?Y)5YZtX#bVB3 z+~#E=CWSt#!OKEC3SFRXp;*)$)N;h4&_}F6yex`G%|DHd}E3n7Kr6q7jv0UJU+V*J3%LR^Z; zoQ^W3nACJsKZ;3BXCXWhlVUQbp?4IInuh3=;!)EO!iYzqSBL-*i()aSF%U^nJZhQ^ z%R)Q~Jz^pFDJC@)Wq_CzlQ|U?jCd4_IhEB1%R)>FT`^AavJjVIGN+)gC?+)p^$5kJ zrl4XdCN%~12x3y`8`L8dkD7vL5%DPWM9s^hSkx5M4-|`cz{Vm{bm`6k<~Fs3%%o!&lkpE5xN(%xqQ?FN;GxLSG>+ zg&r}c@Ukd2H5pZyVpEgRJBm$BW+h^oh)uDWlUX%+nTSs@nUmPOOo~lSVquwxO|h7h z(5#k8@u{!TJH)4$%&$efOo~l?P4Y4+Hube9mWkLDi}^LH2bPKW6kNsgG7+O42=OT~BR0iiPGH6IGATYa9_3B(sqq|MCdH@5bFoasr&!GKtgcul zVpQmgd7GC>ajJ1_ER*6?<5*pInG~lQhtQxn)i@>skK$BgQKpDfF_~l0JH)71%(1M_ zSSI3B=!&tCmx)*vlQ{-`MRBSz1TT}~RAW%H5T`<~q`XYTsL%!KP>N5Dv0<5rPqCO| z&AD* zHW#$!XK?1RzhYfN4_$vBk3cG()(hmZZ;##`WPy3|*gPdgFxCtA*tDmUxL?`k{M)v1 zg4QV@FWo8<9sf}=cJC(fT5C1=FA9){){!r}0tR0OA`XWGpOtv#rK7S9w?Qr&FBzq73#g2ZvHenSV5}2l@D~ z-W~YgFm%YPHs6Q6ZaUtI}vP^-SxD)Ee66bEKQs4=d&4 zUW4dhG|`h19l(Kj6;bv|M-c$jEAL2i-VGZH9*N|?8jaa#LkF8`q`iOw3!>;6CY4pK z(W}e`yTyX+rc-LAB_TRUE!andozjwal*_jk2N@h?^CP50&QAGI9QxUem)P&v&yTr3 zm38dj>NSo>9pOs!{R2jfqWkxyq{+13$dIZdJSMYSc(&9h$Y!2(l&>o!0mJCNEl9pz zwYIjFE<9kT8`-T6;83kt(Df#Y5iGc-`*agA$ph{cvH{f5@mA^6{c!)>!&(W_g8I;c z1VB2A(yRrObE^_b)Ga2|YkIRDNlpxQjX{N+Cnzm?BwtT-$=APVzkNlK-~ZeF`2i`@ zdJr!8df|TjK3cxsAT0spym&s0`p?OEfsx-6|L~qH7kZGE^}@9?lmC?R-Q?bBJ&=ct zl($pQTeJN<%ME0RwTx_Ai8k7w%WGKk6_(rHC_Z9zHWYu(3#{{4R znH1W1|Dwe63>b@N_~qUx$XNWc=|^N5qcC^%Af_lZ9q~zkIAOEe-cBWks~iELNY zT=zz$`UwQdP|pkUL0m{lLV5>MoAAtZNIMB{QfW9}NQt2{1*Is%Wp|=1_1#6`g*ouu zc|o<2kRHcgwuZDEzYFz!t}t#E++V?ZwxPb`523``7x)=edJ0oh&rf51R60U1pQ_I~ zp?)@ezn1^kJY6IYPV0{5`FBIcVeR}*kB%}Uf@M<)**D+rm6bdNOD5W>_E)0%Yi5$c zC0P=o6_!o2_%-dc+9LS6^^+*7I4+xhC^03CUM{T>JQ>}UU!@Byks@U)*29uphS)nc?*bSSo{9fe^tSRyP&o87E5 zYBk8;hfRe-Qd`hM(l#)yTLD_QA6~BN72~&ME51KnHQ-(iS_kK2m#wL>X>n-TI!I?hXaI0aZ)S+^VNaqg3Pgi9{<0aoVdi!6;3A6`dr zuCLZ-+Y&iJ8yfJ#EK7)x$$F zRusI|>R#8fM0kFl&-w9J_JO70u)s7DC3(U)e#QZK&^IFJr6nR&*+q>L~pb{0Y z{lcvhRjo{XJx{;PVzq)M)oMo^@;K~2+}=E(Q#acFe^79R(o}z=?U7M!RjDm{v(=*3 z7|nXC8U2r#c7$GuHZ4}Y5z(MpXEm5X$)Cfo&LE|DFu%G`^YI&A*DqWMxDaq5;6lKK zfD3{DM+7qJa_f(4_K$|x*eU9^1D0D6(mCH;lRTK(O}6(c-z`81OSB}#hRLv;Vv*NE zfAH`Odm$;cur^WE`wDBKIEUEA{JY}lz!DV9W&%VRlm!{JEJSXg+@w>diHP{;uq52# z5h;MW4&cYyN@5oq+qn&tXN1T0-3Um(`Fpv|y>|uF=rWZTT6>EyY|%gAU>s?SmdR*{ zy1T8byE!NPpi6(0w`sjfJTlG@UiTP%I!Ny{{{7v}IGs@pbvMV=-Txomy)mN_>h226 zJU?s>oBwy`FO)kBdjJ19f}6RR`QHrf&(YdPOYHjvY~;#|_m&P9%pd^I^$S3xp~pBM|jtXl-QhsPx=mie*jxX9p&=K9U{1wk&!s0 z-wCa=L$Kz}=L+!2OR!<>Zh37QeOwqq9Rqj5Q%=A)iTHCWZ76uhYt^?j+&Oc7p6ZjHvbqfB}(B2hpYXWbd6yeKUH0sRx^e_;h+Emgb~F z1?!O$B#>T|en;sN_=!=B0(8HJADRxw)XRm8NicMGGy4c31jhzp+)PJNLF+Orr_#sMVj-FBs7Vn^vMOIv?5L^} zH&wzu1dgRglTWpA$xbV*u&gwt>i&Eful zQ=a!D!08D#ttCh!kCohQc09_j<&WbvM2A-{b*orS$9l#;z#K&3<9Lh@xYYM~?6yGO zT5{bl@@K%NxwwH2Se{k5Wg)b+6@HcS%CM4bQ98)8v@c-Z7k_e&77gSV_QdKjm2&qx zv$bCilmTHKrh5$IMHjoW_NZr{wl`&Ko;!*PZV^?CjyU%(o>dac#!A$UrtyY!FFu|J z=^BCVYe*LmlZ!zbBE=}JqvGN@6gzd+Txlw=$O!fS11;CWxKj4~LnkF5lhfi;2TSn-=xfTDXek1X%9^>U_)t}Sk7JR1A=C*($nAt+= z$Ti`Voff187@J=U__mia;Ak~k%=jss79cIJJ}xbfvD#6xR0n2YE|1^K+_{ds*}z!u^HvG8?%J|W`E*57ozZ0%pc zpGAN2ND10oL4Mx?rT;(pya4$>##b@Oi^Mj3p(sNbBWR3nU4JeFTnM-ja3SDAz=ePd zfp-X`_;bsr;cvu&4mgam(UmjqL*uZrx2{T6#(5_zf(@Fv<0pg5G^2NgY_32QWw_F-0^=*k5p*-x)i=ZOlH!ZpoU5Uby}~8v-ez=^`X2Pt8wGPAS>kF5SkC zJU2}im+jF4R#M?aySH-kk;JlJ!Sy~(V)igq(!Q|mGgEwqKD#3DnE=o42x?R5RY5T- zy(?%;rQeFmeGl(9irP`BT->G-y`pi<6TS&U;VBDxca!KODd^pCamn@ty~~pr&AVaM zS?qR;!J^ZnV8?o7Ij==#;8u$nSrlrKmt160ueBgyraifAx)9_T_41Jz73_Q&7}YcJ z&f2sC=F0x&hjaY5%N^ww&W@O&#h*f!F)$r@OUyTzf`y7#H^F^hQ|Qs5#9YczG}JYi zU|(@u=-gIpxYN*MJ+Ghdce*^pvIZhQ)oL5kNU#~THk}4(CLl-j)`$qJ%49`8g^gwu zuH6PEnkl`~`Tu{K2@{Ff%8nWd1vylOUe3>%>ZfpJo7OuWLt!j3-Z~NfgT$Q*IqImG z0K#^r{Oa>u%(v4w;-L6xqK=!VNmnic0lBZxKB_PQc^_H-DPTLN2;ag40Xfg}%But3 zrsG!cMJuw1mJ&zd_!)s|zN2uwdO&WC7s6hPKw)9E*UM>%{*2##_MeISOXKI!iVLR& zl}G0AvTHoxZ|QX;V45AEqqSSl^Sab~$$L?UwsQj|hFolN8~E)>@>Xk1^uxxPM4SNL zpB8Vk(zbLL_{Wmqo38|`hdmjV^@$k(rvcuQuZ%*J>Z@@RJ2nMGF-uuL5_X#6| z$_2+C#y8&I%Ii`Q6e4O$Yfh%i&a<)W+Gne***#|)yLi#p8$D&wo59BJw%g9SbS&M2 zk{aoU6(cWSA~>)6$pW^KJ{31k3Oq3Z;^?kKN*U*+zkXAcK8Tdh+Xa0vQGHZED~OaN zwmvIO2q@)*^>UI20)M`Ud(094$1*RsPiRr<4K^g_R~vK@HWbVr zDNosSYITHBZ&xC9DV;9Gp3eRIr2bID!X*8m70`lzw%>4kEu|IkR~&7BaZ>+~bPm$_ zNq(yv|?O8%%g!0uOmC(7cxr?44i zQQi}ud={RUlZ09WeM(Fc2pT1wAC$P(g9oEmtM-lQ)2Drx3RV z-wKaVChGfzb10K@5gFz|FEgA;v;;YtTDkz4zs4i4IljN9nA)w5N5_#feOA4wN>24F zD3AO6(!HSJ%LMm^LwXFkrY`EY^fJe8(wVI$n@XwDC~aDc8achuqJT1HX@WWkatlZB6)>ZH{c)u}z_Ze#yV{ZGD{E z^U>^Fn$84vo}YGdzU&-8a-?y%r&&0Rfm~tD1^3l3B%^m^`mvV9Th_zeMnr9hVQs9b=x&fmU3^AEbZ50@*1IS-0IYa zy3#%+mXh~c&~+_H+X8$_q=k$R?kzmE8|pQ*jOiYv^xBKAf2^znrNT_tJFh>3kDJg+ z0U7!u_gN}6Qr1S(G1^U;ZD@aB)Z1(-jTSkgFd8hB{(mTADnpzu_9VBGQN+*05F!*` zfj1Cc6ZI8wgtLUz1t$a+{#AZYK5|%$g(HvgcJ2e@^F4^Oj`J1!6?-gO%UaJ0XYOK} z8P8BwpX{%7YCRNzw9rV|oeGS~`!@V&v}s2%6!@?*@9A(ur%EW`V#~3)sEYQ~x)5+t zP*}jlw}EU6i~9YxplS=Q-a^47E6ZOrKDxH&kf>@KRYBtzj1H-FP%8!&R?Zt+gUHBc zro^tzP{_S%rbOGDFwdQnP^iuhmhL^fB}G+Rw!0+6ZmfP&v~e3swSlWn%!HtrwLdB- zX2C&D^CJH;7rcr`xkuFXx!Vz?n(eYQlqQQ(Ye6wh3v0zve~d)E$0y}L(MyT#mxGLACDbqGW4iPH2Ob73Zf(KWRS6eKT<>I>#VZ&z>~ zoI0d>3)@dnTGeN^$EbNxn!D}qT!aYTl@V%#3oGnRt7yV9t*&WDb#Q=+W( zFDupwM5%Un@FA4;NR5I91r%1sM-QAtQ*8G*G+68IjDg;Xs-<}924(A#$&IL4*3?Q+ zCbzIMDa#-fU)?#pI_jGa@!dOjOX`3EStcfSN1=@@Bb7}=>L!n`g zKOAt|i43ZC>Y5aYaH?|pkoypnYF>w4MQOLx@=%snVR+GOAm8BI?f3iOhH|xv>0{7+|5O8%rzxzwk0yCrpLkO@s}05I zw!|RyS45RjE8;$Htd~g59?^JbCyRh?&%x5F-~%Hc8{VNA~mDL179BdU`AUJxpz zW2*K;9I@cc-?fBV*;G3byA#Nwa{B$|D^Oa_ZBU=e3`Rn#2Ji|hj64uS?M9uNL`F8D zE}cj+?|lbY#n6=~2sWM7+qU9k&V3|}FHLK7CA0@AgjI3V6i7wuf zcXZC)jS`qu(hhys=LjRpXzsoh711HJ%!d%mlW;{wR%zO>Mr`M#&WUkOWzY+;Mt;v{ zq7pclt0c~Oisr4hjebX!Z=G5il~CxUSTJXQTm2e=(qVy+`P9o^({3`NDyV%Iqx*rW zrJy?^3L83(dx9p2Wj3+Jn>r^rwIQ~199oJcP_L*_l(!dny9=oK!tLHg)FTZw;$L7i zX^)*#%w#ZHq=uu$buFy;w==#|iEmJ=UQvBgi5e!n^_sEvJA~TzPhNLqFuJ6MLBphl zR?9{pVT3?b7GP@s>YcEsZjgM6KlOd=tXJ677{u&qRw%hibLF>dS^=#dY#xI(S{}`JM3p*c^iGR@9{>cNbBBZB2ScR zu0A-+U@(M2Z-$aFj3L-1h!x=c75p~XYit45P_$BH!3De*yp_Dpypr5sxS8C#Tn>uf zmdYu|zRI48BCmO}cCz}g$}#US7cpBf3C14AFcdkkv)G?JK~5kW5HE?redr9UDbVjU}wb z^+{&_wR~WnVV-Y-GIIZG8NJWfnY*iTeENPk$7;?0xGAK^Ftc?Pj!(}&mq#AXOcD@c zf4HOatHyg+$JId@asOOh-em+}GcGnmS$X}{tlo#4v9>D5r*{$ZEClVrl{r3%e=3VS zuo-iUNRHM1Sc!KKA-ZM`s13dLr>gQUBMR$>O;JuBe=(=`p=Qo35>@8Y$hUOeq)6N& zpB(alb}th5$mi$pz(FW8<`k{F3eATC`D$YXvik=IS)m!dk8vXeaqkajSnrR7L}Og8 zNW@$%pB&zBj#tsBQOrM8hxcHvRWw@8uO{#Ep_ufbqS12UIlYfFBcmm1Wl+Jb{McPy zKU3EjQ$qJ%K9Fxf!Q<{@^X(neIVslGm+_(v%D2QP%-7Z#omM9$m=Y5iSs&obA6w_7 zgw9r`-zTncV$Zk^i9LFn5^RZ#Cmj$N{DkF(ADZDkyWiBSH*Iu(}B`>kZmF48pC zsHyYO1U(Hhr=X=q_afBDIfFM#y3sW_J_G;6&))$9>$$Ty)0DY%uyOa;)M6EXJe_%FzGj2bS zl@s0@i-c7^+vc}udrC0M$SI*iJFdXzMe@ZFHyS@RK$*>IDQf|Ug)5Lp`0eZjv6lqi~9|w zHFK8niGe+%IHM(%C({}(ptX|Y_v8GQ(mrXRP6e*fT8f|4UxYuu2d=I<$$r}f zs#V}7O(?R@Ys=5Hm*K8c+xVL-bLBUE1IXE-#r=P$v|woMmsVuUVsc^miIAU3a%XH+ z@%#p$eSBR$t~lhC8Q6N+Y@ScWRvtU$SMWzy;5+!{XYtfwSH#~9+wal)0esJtfAbT3 zzYTAAYde1E)(&igeUGs9vT=BoCkA2K%pZlnpRPjm55L0p2|6qE`>`645#EJ=v~4fn z9g8mGhp2pGM8qaOardEf{(aoyBOS|t{Ii8W9~^*foV-_VYqUaQOM|k)B+|Je@C=w86@+n4P^n2a>)c!OinvXCqpHbo*e|4wXpmFltm251?Lk{81uAJEhWt?S={_tyrk>wDfKPdi68 zfxLeZVTVS$Yx_WC6DR}nt|VF3(;|LR+b^_@I#)LN>9T-1-$S}EsBD(EtVe7mzqEwy zqNdyW;BHsoT2+i0rwrM*kyfEot4taT(uB6@%@G=%R-;GyO%X=qrcr4(s8lwkQf;xJ zpj6g@>GA^1F!IL3GtVg!&@3HHoMV7iCuqqHmo#s;o4ZU4bPI~m?!I1{KEBJE$NKKn z(%N!*rCn!Ln(auJ(~e>oA{|bHMQzk-b+!n#$)?rX^+*$1tFfk3NSC2;nc6lVZMlDX zT!xdKynqf4iAsJ==?`x;AxJB*1p6Sv8f_E0Z|DYZp+iz(h=@Qg$!``Y;JMh!Dmq;`R{4_)mACtiI zivZV&#mElqTxp|mz*lEU-B)bEYIhpL?&mR^(>s{M{k=qgp<+@8zFWKYjP{KCicNPw zb-Y^89u}mYyc?QMWCeHH+T#(c2kz`*vAk5ipr-81(G}w0)<*T>gc$MA@{`IXQW}uM z`F+#+m2B6by6DCaSKX&ihcODgcCCKd-Rt5y&90Z+_@JYr>{{q+g?nYHuLC7_8m>^R z7;#fvrLMPV`l{9ZgdUE3JFL{IxH|lml+#t3_qG<+q%^NBaht6<|$NWa3KHHY*fZ(=P-`|+km26$yurLl0p(7Ev51g75tP2?;i?o zQEl1A8%eo`r08VKkxM85samJg88sT@^VJ%mRBDZCy#d8k(x8EE)kh%Lw|cuCSzLss zi!nx()>e7nRSEl*>1G!;3U!L&A@81}OH>npNz6j*USr1v zLJF_5&T)aTz1`_5&`FOx4|RCqyDn{^Pv_7$pRYW$fro}2a=$bY77Jgy4G4hFBZQB> zd5`FPm8I_pZ!7=;PV$na_xBsHqNMM#hIf4Ys^kVvSld7`Z?*HnLCLuo6v$Z-bcE|~ zILEDHc*_03u-dnMeZUF`m-exGhpbltCLmh>9OHhgdcvurT7cqjuj1XTH-{&PruDW@ ziPA5@@12R4CK9DZr#4v)c9T}6MP`e7jZJB>A~PMk8M#ANN9fE3EqbbrNHe7qh)6Qt zGLtv*>BMrh+!=8aLb7lm9SYLJBcbvx{=;}L@$V533bKuG^w12Bve*z&$sHs7e+{C; zKyLMIw<6o)NpCs?WRh>hFbDxz$wOZuN{(HEFp$1{-@$b_qkNi5o|yscG|w#$7U4Ut z0k|I%2C|N)YROlEk{Kn$gDOCsS_!iU^x0Q0hJojVJX2@YNO!XVK@KW1@--+hfQR6p*Yw8&;7pw;6MzHAt>QlYk?-Cq~! zj<`k4But`nqLCt_@R~47SX1yDB$o@nz z?>DKzXKK>>r7+gFM@=eIG~|k;to0rlGlz8sBKw5dzw4Fv8^Yv#4kqGM#_TSrH8qOV z8p_(`V~EVDC|@fo%J`{^dcP3H{G!v?$64>ZPXt2&w&)@an~y8z9Wl^+bMWUZ>V5RW z8lYAYMe3n~XB4nw09`;0GwM@jr)GMAn2{(F<{z$|%CB&trQ>Ax;oKNUpsC_dP&X53 zSZZVqA-hk|5ma_+W~Wb@pNc8@R6R@8kFn;{u4FXKW}h}g6?6Kh=-+pGvX;UHlSL!G zyzKG_hN=0)IjWgKpEySqBlpww3e{?6`NE}_9|0rd7Fxicc3#B)7w%1nlW2;>Ns7F_ zdv7Xa@e9>WEX?qiTD*rA-iL+#J~63#JhB_^X6-zqEfbArr1QL zwQ!v)M;a~S0_#2anLih)1t^TUVJ@~I{iquhQ-`w5!bm34TFe{_kSujt3zA7Jr#(M7BapN zCM*HD!w#~k3evuc8NWf=T-tmWq_idlD`#jTx5ntw1tIb_NHYz{xm2vU}~>S$0!xG&pR3DU2{R_gv&*>BW+s+4sfo?mb~nG5L)(pJvL zU0fd|!e@w!PaVbeTB6s_juPR->Xud@5x(X&zEf9;*RX-^L*k-!({+w&W0AyWsU!GN zVGMEvHnI~m{BEiEiY0hnjp3SBMMx(z8o>SIfJ{n7rK=pP>j=_e_t?0a{(-BZepeOe zDJM=4y)r*_0*EY`Dy=i?hR=^is1vE+BmhB_miGMCu}-}`t5UIIbEShR6$83Vu2+xw zfJr}jR2@jgKE7W;x&hyJX@X#78nk`0u*x#X+c`4k2!(mlkA4-WKs{5!7Cdsq(OCtg zndf)D&&km>UXc%L5T0#9tGku2)kv~nbgQr{NsjeCFFCl}vEDt4XYB`Um?if70_jtH zIaU8$k@z6o&l9ws2x%gjR2))RI^t#q_Ao|HY0 zgVCl51K&E1rBxxvih{RV-RoLF6|#rdzJ)*&S?;5n0V5wH*_~_;8!p?9-Rl4hy0Wa> ze)!$%((3#0{*YT;%P(OgzG{!X{OU*U5G640!P23#V8VFd(OwMSRuX4ag>Nn75x))I zR$pN36L^hkz&D^u*+lOB`jl7sk=-Q&ll0!-kN?hXc{BK3MYn|&w-PeUOTOt&MPkF_ zNwO9{Kt7Fl&8uW!-e0B5pH}7IjPo7IIw3EG;-x<;R^DqY_$y%oEQAoZjO<6ohxC^}3hu~nV#>u@oA~|8`ysg?c)nD)3hI1TdSWeI=WddR z@lf9szl?EhWU3p7#cj-l{N8Pt$ojiojHKHSs-z_X87&&i2k^#uR;_r%JtGtHI^jEE z3azHiB*aY|^Y?g?Cd{U%yrO3-_7?45mg3HvyzH17*n;9EJN9 z;x5#LNv|T9cVPd|L*9u=si+h-P3Xseh;CeeE(BZ%xDaq5;6mWPfk3jB8=X?%W;u@X zap|c0?6@oLD@t0sh>$a;O1Cb634J^Nnw_4|VJEqhtmEUj)4ia+Hv=YfdIxe{*61kg zKC0k*f2AjKdiNm|GRHgaKF;Z{^`Iwb)-Nf|xY22`1+7H>J0@LcBpWkeSwo1IR)jTO zIYNP<1O1 z)xVtKKiP}(`K^WrN<)@`Vbv}9L%lYzc`uRIn8toV zoRxrLqNKcKspPP|Sm~?FdJ4LKy_q~8wh(V|<500F-A7}c&Gkc$bHV8BXt1eib1c5o zD(}<>d%dR40Ani%fx)-WKsHZm^Jq>`wC$jToyZ6gPt{Ewk#uBvFRz^mOEc~FxM*ieelon#|n4J2>USK zt>)6+j~Bp}m_9e17SecTX+h8s;FdKc%hP&EpY9D2cWHOny~_N>{w0|(qwbSkJq27) zE-X8xGQXoOS9osLAgo*S7&1;g8E=2Ht)ODsVSgenhouu&7~^^dEH+eKH*|K-uier*%&WQJiK+A#KL4`Dd8hAvwjm9BX@GO4OHX| z`WS!`GLX6aH?s^{+O>uKzkt!3!RXBzD5%Iu6;{B=*>#?JF3ngoJq*z}2D$|yj-t#I@tNa<)tOZfe$*f-PoLt}kJ z0lU7E=mz~Nuidw&;QkQ!&Sk0+M}^+Gg7s_zc%0`Cp<)DG;Ac?jDNId0KaKfO=?KC6 zWcY5KP)`|IuI1mQ@Ri|*zk}zj4qqx2go!%s?j+ecIDlMQ6{rDf>!N}#7Qi7__-Uzt zY5h{D;0(@r=_#xKePgm*d}aj7GtRJ}vxmrHL3+Ob z&CJY@GULH%!$cy2O^4!oESj_j`o}rEQ93b;imwUp3i_r$d8EXL^7(-{^fv5QLHS%H z$hXn*3i_rP`M~Q#W%VJy`e1#6$-N)Uhb>BJ&n=%$?^qmXSr?}H&j_k%QVV4e9=I2TYi)atn?^e2P#*c_O*99J_g&h_~?7i;rBO$9x1 zpSzVk*9R<;H2J2mHLZ&ZJ|h*ZOKAtZmRW%Fa@YLjP5CpSd1qm~mgZ*ZB@Z9JUa|>W z?XOvGPHBOb2LoKogJGv;FZrV4KU2WBy)K(*k?5l#9*lIh90IV|U zZ6=joXGc+hHCDAnV>YE!PWJ{UaaOt~{vccUJbHzI^WUj;2jvx2y}8Qio}x2D+nvy8 zEhxS@@^@oWX>>+qgvGAcnACc$5ycvh(Adm&yTNGCS#85wrh8$G`eX8QfcZ8oZC*$* zT3{6+zjEQXa^*6b6#H=k99+}UY1@aC)OPm^$vGIjx9t%5wby*S^8UF*00D=+Yb8HT z?2NR&7YOuORYcRaz`-s~Wk>E7Rz5AFe&S)f4Q0nmh-Hpt55t+ypiOkSgMts0C?7KM zH^}>pZ|!!4D9f1#di}6@(*;s zFtxD!X{BLR(Cyjc5`izFoNofWl!cYk(BsAxz-oryN*k2XO`&>HSQ%x@?tb)BxtVt% z??EL)lM2h5?gz*_+?yN-`OCb9k1Z^JcIfiohbp&3L;j&*CAJinKaIb8fcQtqyQBBX zr-kKB4{b9Fniru_DI@e&*urofbK*v#adL#~$LJ#?;Q~p2&UL&QpnnO1S%cC`DnSF+SlouKcK3z7vhon3a#;2ZlThL7?T@d7I-J@17^_#PbW z<*}*`?XK*6$;u{h*_Ez){4zh6UC-nX7sG&n20FVaix7-0u*~8r;|(Zth3Bf;;3Cbj z%yH!!ctV+m3R}j1Y?&8CIeU%rntyOj)=zX|2QT8PS3zao*WNq^WlpY=?U7%Z;F|2R zcxh*l6n%`FxO)8G2AsgE585s*ePRuk^%d>L%&bAvpvq#7(CIWfl|_R(+h9=HYzCE4 zZPI8ADvQcsLT*!$8#9l8iyJebgMXt;sJ=L(<4VQkS{*%h{Ad%NnGWsfB)mzb;d~)= z%AYAHl>*P*iL!Sfy(qje2h#I`Y9k>%j=gLR>E}8R&ZC=CJflIcwMN)Yh%Klh>=9No z@~~($m~4nxB8(9#o8Dx!=&U+>^1yTj#xSPD{((tApiIOddgG0Mr5VIt?o&fB*0+9d zV#rHJ|B4p`Zkf;B!_LtD{J_8B7{&DxG;`p%)gJ(Z=34^8HSX=>VBmm%#e)19g0DqP z^fdQl2a(l7dLR#grVorJmCcS8J8G2@d6rZn&S*30lp34HVpds{7L`qFGn#Y;EgCrP zu7NX*6(l&(8wj(hpb;gsUBll`2^|mdmnOmU!~9$-<>O5#A*4W%(hHueg@IX+F6TF; zzW*G4{~8MyEFC1RE5GHIboNUbI3WLL;?WHBpX<+sfC~W^0xkqx2)Gb%A>cy5g@6kI z7Xn2=U|0mV{+N91t6XRAf`S~5(C4QA4aT+eA)GX`}w=nJ*~&EVhRa;#{X|U zgMY5*cnSK0ZpWuSho9x~Nc!A&-%C1w#*adFD~6D9ox#t-TQRO<6?h!M0d^8GjsMW*dSVT zgnBp2ade-c==iN5)natdr^3g z`u3!_bSH4a)0XgjMXQtwq$dVLelq#KbC8PV1F1B}UD_7zbKEvX(cjjSvZvD5)ujh= z=<76D-;?w;i}%mrRz~Q*c_A+0kHoinK>Pm;hS27J0yky@?iGfwBmFsE|8tlE9{J%2 zwAO-uw%;SsuxEgEVRZSAVS4(X#|>}-ntUu8OX2h}afQpchYCz-=Cj@`&}50 zuQ>-Qj3!0T3{V5S?Opb*uT>z6Kwsvz4c=K9pbWFvO;C>^|AFBpzsGtd4cNaGFLpgq zG?)rQZT8yG5d1d0#x};Tk*Vr@&DkD40vpkM3^t~DAFM+2rM}f)LVlnETTwB20eHoU z3MtM4-w1ttD@ozEJ7ptIlyc+Sz=x2=+d$C%fqWpd;V%0N5D$?xlEd?2OE{Mlczn=bQ(WZ$5|+Si)ftgK_1 z!QK}w&`uxst{ERwX1@^mOuEdUGS~Poh=+D5 z{df)OyoGYjmBRA=y_KgNe0S9GUA+a$C?%|#Q(D+Ir=F;8ZhgL?t0Ucpc~oFKme)=m zxf#m4A#X(aO{V*D9TwakocybOGNXvfP(Jl_im=Z&A~MW_RseAJr&WR+?Oo8j zs^nC^g5KTdm!`~YmI>|+hu!iqqT^eCTFzxSf176tHSdPqq%&KQ6`@k4QQEW?WI(Ue zD$N$NO{F%Q%-RT>)})L;#`Y=A(u0vbeOi9D;CbP~IwhK%f_OBQq_rCQ#4jtzu zJ)8okVP)NJsK>ca>Jcuv)CW$n+A6MP!YLMn4@=|3hu0CD>#OzIMui1~(+3$jo20#E z!}qT}D}=)Lxxz6E;l!&A_vgsp1l7mTr(WMRVjj8RD8^yT^6!hA`EUUzMTF z>}1$a^<(+^nC)b>Fh?`HlA@DqntR6A98Jb(X;V9}iCrnbvyV2l>#qnre3ZOjk2bfv zDk(L7i`%+r+E%q7lRL0mZH%kVeyquz7^~NLy>v))9<5m$nUKc@r3RVTsm;j$fW@x0 zYK&H7j%+d;v_`ewXx14mO05;l?gIbc&F-d%vW^XqV{^gl*q3a62V>w%F}q8)r3V1B zerwe3ppw=JnA2hT>DOsxRd zUg`d*p~)e%VXi|%V_;UA>)9y+8d!no`naIk<1#Ur@~jAr&lT2O;Mn*S#g*e%6M;8D^dM)x>QlRAI7Nh&IgWz z=aueBF}8$qf0!s>f+!^qc)10u-6_hw|F{R9i&}ve-ckR0GDxQrI~jxIclj`B_~9q^ z(31wZyw(v{&(SWgVbTC5Mo$(sq~&MNb!%2xEq}^hC_gN3EUL2=j-}}+P}fCGesP>Y zGKy~z>F`Uem-wPIzka(T1%5tvZc0LTfc6PY*Vu z#bS#v7)QjX`=W_EvpP*H4&9MAamQ1RD|y6}*D%RIjL*CH%F|8BW8@fiKaY!o%^8(N z+m_5C_B?ST?_xbAx2DWWz#$`F~KM!5v{o}sn-d*=s)tjhrhIAi|_v~$P?4#|W z7jhtcknKF9wI6r`_QAmi`g!8H_W@t%D`ycH-BJ|6<9mATPF3yh3yPlVkpY)isDHtm6ENX_}T zZQ}&3Q(z0RRU|t8qhjpdP2#oIYVuzcutcsSUv>qwstiON4$JwKc;=;}vJJOk>liN@ z`>mr!6Yf3XbaU?+^D`u=YaO>JYPW-5hkKn29}~D@1ih8KWK)rRr{l6*9$a-wY|tHlG5+X#*s6TzQ9H1!pWoa|zPnOx`7}_Q ze74DA<$fhk1U0cZZ&f&MR?Z4Hy!6+yN*k)m-G3T^*_+D*);>EzcFZsaE}#tNV5?#l z&8DJ5LzF+rL*ZVzlH?H4B<`cD8pU! zAQ$jjA~;HEToK-~<8Xi0{S_6#{&H|AWgtgyYv}V%*5Q=4DDofeMEVb#%YSbV9unVf z0ULJbXp;Lqm=l3I9t9S^L-#Ns<=ivy>@TC+E4d|#v6=M7YU7XS#?xo+ux)n^nthsF zUz{%$r<>$Up8)+c@LxAMZq3KaTk{?1{`YFDy^e4t`kobiCjs4qBh^)+AGSFjnPiDC zCD1fp5JE4aa~9a$pI!t6p1Ak^6;fxqX_gYhjZQBxV5I#YZ5UJ-8eo?UHNn7DN`6Vu z;NB;l2dSR(Ajq+SeT1VILs|Ycz&;lBP>yk!EFls=IS5+2$E>V8cgYVn2!UNwk7?R?P98K|a(#cE zu;n9Mv~ttKd5rS;sV8)ci$iPYjq92dv$*nZ z7a(u}EpBpIDE++_N*^mKKoMg~{__!IU{rmIXfdEmAd^j*RZw1kXQalw8SGk2Q6t7A zE7D7#o=EnkXD|n)3bVaCnoC2x_@OYD_95=SrsvXJNt4bnm$Jjk4^9^NFYObuq1{+= zV9c3-Y031QI!ttIJs_Ma%B9l0nq>{t+chSm&7iYb4FqH6fx#b$x?<=~$7-~0y2&86uDA7@;1MXGib|1Rt_ryOm zbbNnbvG{INk7ZbjZ+E?#yg+@IUmhCrMS<_~TDGQ&)u>mhEq1F3`Bc{<{XwG@`Bt|h zpYu9HgwANznj@@wqzR@>3rr71tA=536O?T1LcJKicNPwiKJT49u}mYyc?QMWChAT z6f_SXv3lT+vlVRW%1h-7YRb+WT_Fx`ZB#E#h!GDhKdD?|D4Z+~=l4zPSF&A$>Y^Kz zatFP!1FXVIt%|F|Ur8wq(VMo`!kV+;orPQ*329|grH52T9`J|MxX0{{vUy z+Ib`Qj5zKN&$|jX4u$k9>{)Y2FY+eVg0vrRYGi;{MpgQBr!0Gh*tt!qQf!e~=6MX- zuv{_5`v8h&(U3bRY_cRGHP~b8&*APdZQ2*xwHvlYk9=Q!vz7O2t$pr2SANg;?DbHV z@c5X(kQptUHFFDjliF-<#MeEBvbS+9T1a>EANPXv3~wn_r%=I9X>k8gaEogHHr~i+ zxTk1j%#llGJ<@>G>5Li;(r>axD3zcCXh3?C8Wg$2s*gb9L2uXVZ0Y6FLy$hv@PZXs zC`DW#ktf)+mOvhl11F`xVX@;Le_v>+?XjXA8$872b+9+5!`^qo?N80Z&`Ge{d`$Ry z!_Lw%%>8xlI73r%NWdU}PwIT265)BDh8gsa9AT#Qk52oBwlI^IyVHkgvxWT@Y*X|; zc~UxKeN)MjUXEu2V#Tl397$-YXDx~>3|`++aNXs0$7w!{%>W8 z7nPchr{L@&OuB8-hw4Vx3F=^XPiPP1;OW8W>{y2uq@@XT746aPpzOuZ=js|LGw#)L zyR;}}fPT+5-q!k#SNRb;jq%83$Br2-kI2-Q>@;hTN@-}=Ej4gURmrsZ_I zGiCJ-7jIZ<4Yd1X>IC&sDpJy+-Ab?SXB_J@nO`>n%5=tcy5g@6lzFCKxR zNMblTABo|o+>-4rd%jyORw;ouKKN*HkLu^{xwUBf4f~k(@haI3DT(a^k44<_Ai<_0ex}U;Z^ntRnCZCx#O@c`JzZ zLfE41C(69+8AFmO*pMtj3g0-v0v)gOP2V~Ch+e2;@yHw*3=qe#4 z9y5eT=Q*~^T5_QIq1)~3=KMA>v_uuQo9BF1Q~LE4eC}O^Jkp9^cs-BZSpoIPkh^n+ zi`A_mpDg!L%{I6_2!lGEmgeRz#slv?78&>Z^M0-5#w`{$%kPO2u3_uCS(r5g>P6=X zc|Gy$Ua6e>JQL(q+Qa=D$j4prbn8lTV<`{*m9FX7FD*;(l;vT|OaGp3m-FwZ%UbP$ z-{-I{;Hw0yMh42`?hO;Zoa0?ObVUxQWVn$3i+vf^vfW?VHpBkluWo@^#fLMv(c|+` zd-{|kj6U?3;xqWN^GLhoJ2)OjTPa2JVI4&ot9Q6{s05>JPUwVhn~Nhle#%3V&ppEC zDN-?@sw;le_5!7r^UtgcR4_%Kxb^+(f29p2|j(LejW| zA9E^vKgTP6Fnq5iXOvR=dn0b&IwOP|Jr4h)3Wlq@Kc1m}>h6XC?R*CJ7Z@?>?s`Jz zW`>mUj6s$sdgH4^Peoc`ykIq}G2;nZX1<>!;74Yhdewx}+j~^GLo=4m4? zSMb~!;%rdNJn_X=8+yyJx-{z0491h>GKffMeKiLL^2HDdRG%ge=9Z5immncMC@vKZ zJZ(hS`oue7=9%9Fez%+EX*BPHavY^|aQ`{RB{PV8!Z`m$Pbz<-$coEwsK zqbmS-|0x&_4v8i(Oq@ci#M z9_The`nT7;NwN{@{>S(T1=k(w={!d1dPBSDwTolBKF1i=d_3tCR`vYe(ba}#C5WFG z9G7IJ!ZMc8?CZ}iyO@3cnKsZ};YpfO1?KvhV!!yEJ6Ka3B7Q z{!`=J)fg87E(BZ%xDaq5;6lKKfC~W^0xkspzY#$8|IE&;%M9@o@g4DH@fq<^@m}#( z@oMo>@f>lEc$|2sc%V2*+(m2>w-PrL*AQ0_Ys6vVK(U9I6m!X! z8_AXALUKBpMUEm<$$n%HGKTCxwjk@1)yeXtnk-2MkP4C@*~D|=SK>NxfjCJVAa)WP zh!w;FVmgsUj3QEqzC=9HiD*wWBkB-U2m?`$2qk<8IU&Gb_!ayteiZ)>--55k zm*R8q9DF>Ufe*%e;jy>{{|aw}N8=T7EnW%_!aZ;j=Zap49*Ay;E{aZx4vBV&Hi}k? z7K)~evP7dqsiMB3cu^-&J5e)HT~Sq$QKS?V7x{|hBB6*Od?LInydpd!JR}v7@T>F7^VR$?ejs1L$N6mR8FnALhMmVwVBcdq zu=UsqY(6#(%fv=v$ygt(J7&Y$V2!a_SS3t{mBxZGFHDT_c)#-=@ow>c=AGsp=I!Ba z=H>F1@MiHQ^TzUq@&@n{d7XJ3c`bPLdDVI4d1_usUI0(QBY14?bMAfaHSPuON$&UD z9o+TY<=lDPsoaU&;oQO8UfejYmD`5fgjAe=N9K@&S}nJ z&K}NYPA+FLXBKBNXDlb3Gk}xG>CEZKY00V2sm>|SQFFpLfgBGG$>FkJuph8*uzzBo zWFKJfWUpthU@u@#V`s8QvQyZ7*xlJSc3XB+b{%#Vwt-!a9m@7)%h>|fYu01d9YoUf zAC@C!vsf%1t1>S~!e%j9TsAL9OkH4D4hiqLte>zPg1Ta?;^pA*l7qeyQ5P&MM+omY zjJdoV0X$-(cYNw1fR}?&7e-zVkGddvIb7<(kC(%tE<{)k8-CAbUEt-Qf0^hK%VEMJ z7VA7Ohe16O@v;X~7bGux5Ov{+We?2z=o~M506b!{dD;D`3l^5$58g4E0le(K@Q8ul z^`R~>EW0SU7#Ei(L3gAR!?4b0z7(!-u0j^H^iJJ9S~>Wp|@4)V%CC>O#QFj-@WFyzH*jg$2v*0y(}yhIQGU;nD9X#~A7YmDUN~ z{m!_?%eKR#m*}01x%zqo^r{YZfqJSo{Ok$q6qa3!x?=A5AA8>c7S+-9zjw>M+jn8P4VF~$kl|7K(2Uv_KbasDvYCJgpn+a#fMKJS7SN? zA~eEhPua0#VGJfcfoIWl1Z=Az9RV#iz)VlrC&|M4bP`xuz2c-3WMLF0J%;y8bOcmo zq$BX20W&=&63Ie6odnv~(UIC@p_Yz-_BC__G^M6 zL9yx-CxO7VG3jSuT#Jry$-XL6kRg+GHDdMhxbRtX60!(3SFX^Ol>K435IsvB$;wF%!Vd^GOqG9UhV9E(F z#U^gDcau)QDT25GnP`~0!KR!5Q*7b}Ats$PPF?3vPQWQPah?4==>(u6i0fR^N#oRY z9_0j_f@efD>7;?`8jzxa>KbGMpdyHCkO^>#O~BdY02M)80-`idT>^%HQ*7cAy9wz8 zpdyHi@QlW(i%>H(PF<`)IRU5G#6{u`=>(vHOi)KOPF;*Aoq$u20_H-))J0$iFa^2U zyGSREQx`z7G)`S0>Qhd@DK>F|y_0eRP+{yF(n%xLdEiVV)p-f!q><`88?2E=s`E8S zCm5|7R2XYWIsvH&;uPeff$9{L0f354oMKNQ zoitLNglB+M1aXo}IRU8H#7Xv7q?1OflTaE!DoldxG*q2{>@-xJkdRJ*DuOrxa?(h3 z!UIO5bP5y!kP04wrfHx$0T2X01u39uz$u8RC?~)an>fJ+CV*2I+d>x5Ky{o$7SKR- zTtpTCP!Ys&DOo_{)Nwzm0C0*;9A|H)3IM1uwuvmDk?I({2S`N_$D~vN02P}!#{QBl zppoh*JOiX6h@)Jx0DuZ2JgNY2icK74Z=?zUs369gKo-zQbp*20NOeR(764Ka#1Rky zfC?gJssM0`O&lQ>kOeeQ9g&d*G*BH$Aq!}rIwBwoXrMYGrwRb5AUAshSpY~y5Ql*_ z4OEALHUJf*)F2CJoH{I{3IM0r#9`J*vVaDv!|`MR02O2ck~B^o29khNkcqvXEC8S) zh(kb<#;HScvH)-jQa}X&Q*7c8`wOyw#;Jpl32=%a4zkGt8m10v$pRXt4!|QCrVdER z0)Q!kH~__^QR;x1ETB>9fCpJXqtpSY6+kJ-1I4C6>VTRoph4<@fGVIt>Hs^9ETBQ^ z07wfU#U>80*O3K)QUtLdxX~cBUqThoAhn-(LKXl>!81?=jZynOr~<$!HnE?0Ocnr0 z!LxL-fX1l(AOVe0`#}Q0D0l=~q9JNOXo-fX{lFI>3f^b0B?|zf2x1@br6Fox2vq`|} zc7u%rK(UG4?3GjjAQZ+{kOeeEea}Jve?s;=mh`nGSGZp=h+0W@<(=c&I71<^;;%vj z|Jxb>k3zbCuScPG?LvAVFG9HE>u1>++7nTyp!{2#gVylths2loBmAo#h2Rb_?f=*v zU|7g^ZT$UABk45j!zQ9V8!;Rz>^}#? zWun(RF}x_ev>d~xq9gS4VZ!0`^W`GmE=<29yhT56COShuA1=(NpRW)}=;xP(Khe)m z%4#Lg_v)DJE%zAFUE=o}9_e|-IacK}zw1X*1=B_dJWhOs^gI=N&rg-4#zaY%)hU!- zOqeFkNsuXq)1Gi=dV6%oJTtwvMl(l(T6u7an0TDWftgG^&vWoeCSGh_w|c>~Yf5lQ zWrMq1R9Yq6MX0u04N8MUZLpe6DwRoZGppgILdWoYHMrYMeTR#%;_ENJ@>9z2c+)V+ z_>v<`E#-H+&EXG8Mfq?u;8mXy_u_rCxQ?K1+7k2DtKl{;ok?x6>5O`VNoUqu!5xy$ zYylTqdX3fQ&=~M)xSTfmDrmTGui*es4~DKZ6HKQ%Ty; zpDA(a4a?t2DQ#KLDEaMPWj$Lh&mB|Nvu#q7rmSb1WD9$g^=yfJ!|1Y}wegs|7@r|v zr1_Yqxt8Ne#8SZI-X3Sk*>*mDH&@s}Jb0hp6oy^eOd{x<~tzdLjwpX(fAaPLj-flqKKPgZ3>Y zCkC&lf|6OH`OEvtFD0XIr8`wmKH8&b?}evnBY110I`F(>xZGEMTjj$Bq2DC*D~;~C zmWsBl#r!8^hr0U7wf$!(R)rKP)>j_we=f=Ah`yg)E|uN>3?zljJoW8 z*V$8L=AiJtH$ChHXJzf%%@OxHw@7^H+)2q|ubZ+LEmrYvnC9`Om!HM zhU+AX-!a_6=g@wjzU3{TU5XX^U7C|4M|N?wx&k6rXS^_bay{9eT9JZzLvD&>G?;wEZ%(^`nj~zw zV4W1M)`M!h!I@E+@v4R{q^!a_Gq5VqBvs;2Jt_UonX9WWFW_g<4ZSsgkPVB}j=zi! zRr~=o*gh0Intocvd;tq>3bJg;)31y`~bD8D~6=SJ+6?AT_!zU=$D{3h5; z@b2H0-inV@;>u^1OMBM2?jhOmjQ@1-OKPg^b=BPxtdpglefMCU43xcaxVmNth}e82 znWv$>?=6nF!>UI5e}KARJoJSrW=QdO1J4a~{ih43({9MBE5_4i*~?on5}z|}!5B9Q z)%?2s{CCTPcPpUGD|}ymk1{WkpIFMsd{1iD;z4q}c>^Yl-}HZpuYl~|)Rpft`J+GZO_L=~LcT9#9~NQA z@GZ7mHcw+Uf#)@)S#Pmu@eWe60WM-QsVqu^&0&V?m9<8dNvAZaat7qr#^F(i5?Hrq zWoOmJ?lSSecX)&va~%=|OPlm|9WF7$qs`)9uI(0IJ@Y>?L>l!`el3dCI;T6M`H~y0 ztr=M<>Gs65ltJ13GjXhP)FWXJf<}ToHgT+=a?VwuX31TT=AYxm);|h3L&tKJ;RJWQ z?{9)WQ>=j-4>A{9KM(w=S$it6QzcoC>&)fWt^IFkM{!$(JdM~e951x)K&`g6;7$yz z5wYtbHn6R}4`xv^q9OK`GrTk(o(vXW{2|zU3H^@rlaETnhNknrwg4Mp7Ma%=Rf!$J zZypEi#m1+pYd2|hcC}HhbC?V|gTbm+YwQM#)!=}!hTX0+Tfx<-6`tYzzbY%0CHqVk zEL|_{EV%_M@M7`j;zpuNqG2LRxKLOd*0F8;-}!U+I%*fy6IPA0Nj`5euO9azw>MYD zSw7(ed}wN4I0KqNAE$J{AL^*6V54kt|l9+0e+cUGGTUEcu+W}nSIGqR!rQ5t8nk57go#9T?>fx@EIhX<^MqBwHXk(S!n;IQBlp)Z7Bm% zZ2irt@uj(@q^D#jX7owSNViAFPH8ZC2QV-uKCTPJi&i%nR_8K{Wz9`1*A9wr`i+We z+bOnPLfMs+**`rx_UFy_D+6_Xx7st2i;frzx&!5ie!m|6R0WoM*Cw~IVaT?UKee0TfRg2!NSH6F-;MVH)^@!7K_y{w-;(C#GTl0@Hf%XKi!(0l97&AszpU%)wIjZ zu%z14nlKOEK!P>Po^G>eMK@V=rkfmiHaUJ>t5lR^vQ`AKJ0CQ?|Q)|E74}q0oWriRL z!$&u6R%WphbL~)$;qEwPS&OSBA+~h2yu|@*Epf#1DoUWN-+S8{1EI!L{ns66zqWGi zx0jVJN3+;cMR?1g6wt(8Oy2;sqZ=i$KR5!RdaC^JTx^+Er>n^o8|Wy3EZ@4*Ixj)!MPUXR@a^K-VU>(qFSY-rDV6a_cfE*UP}^%I-FMXU0KOp4qQaWfm(rHxW6C+;J@a#1j=2H#ogb-?(@v zo!hd-x6;js0Z#gig!3#2)vvr~?O?Hbwj|a2^rg8gE(H)8Qn_YRJ&ZOMV<&`UyzV-}2scqR6Mwctr ztHGTlU}30PZv=)~kD1+pMPhEJ@@yi_f*(a-eA?LkFstE!HEb4gNNjMO<}~Hg{lKA5 zZb#IdTQGkg7Nty~so~J4XbSO)>JuMAsA^GXN@eWOJ3x8d4!7UhcndYqQ%#`F57^g0g)dVilXbmwCYKAqhx&tAo zJ#uy1N4WM+P5P&%Hp*E!igB2||5Oph^QnQ{%K=y$ zPr2O6WnIEGSnBK7gWuZ`99E?c*2pMP{^wXD-xGs{c$rom>R>!`**4ZdZPA*ozlgi@ z77Guqx5;0BbXD=p$6G$$F(zocrB=YRC8%}gBCpw1KA=}Bm&tY6jTLq7BK>)yMQh5U zkC%0=6bCoO8t27VtB(A90~RhF9eBCjX8&DJAA6lHSmCQS7kVzOyxk-J$vj17$KSm_ zyo@{_OK;M5!PS#xTbP=bNe@YJ)pnjpy}`AnLz~N9iDU0QM9n&5w*+Fy)GVXvCDM3$ z!O7FJ^$~pD*XQ644B4JL4`O)I|MABdPN~|C-ZC|+8dre71+`b(F>K-;L|>N0tW2}F z=K1pC$CP;``hP^z!GgIqku8FA<8k$_d!SLU(o_A@GR69cuY4!->&mk>^OX~yOs!k> zn-KqS%h!SY5Yo5Hz91i&6Dy*-&#h_LAY^PyiIMfL=9nzs(H|>WB3s!2X)^bREBNw0RSHF+EQHn+1qP$bp zM+M9lqw13FFKS5yFHzRb3Mq-*IbXy(#>k4ipLzPz7hvWnhSIW>mW|yA*Z=vfXDsoz zB8woBUkeT|dvfYP!hiK&o;JS$#p*n!KC|&78_B+eXI^G29`2^(OM7}W6e!2z zcDl>d@U#yoUYFTovcU;bxDzgliRLE+E2mWP>iBzq@~f0Z za!sa0(l+6_U>3cFuDftj0oD`lwS6gyxMcJ=wje~hvhfQ3kTgu6%^#hLVSmBHkr)bv z4`yK~58 zc%1r`-db3f-nuoqmQ2ro-`q#k4$|g!=jT z-k1Cbw49#e!*n@{cgvh6O|Z!puKYEt&04tG*kH3*Z3dIkY&XI_Et5fI*PBgNolWP+ zP0FtiTMS3P>k{DNErt~XOp1FV_@6YuWVYkk&9Fyaue57nSGCD%G^;HZwaRSJscjCU zQg5^_h&o1ulF(?na+d5u% z)SYF|TQ3v8{0Ya8$(~QYWyX&}kz-MJ{xnBz-X^u3zty@>aW^PLIzOUnrPtqKTfn~H zocyb??;0as5pniv1eTnEREO>b%P>Sa z74lEb7-uF7On=AJ11KF130RGGy#=+s^?d_J8fE(+EeiSz*LEW-sp^b?;FZ~to5$z-8WV{oatXZ zd)~C5JBED8JOYs%C4N_4Odl#eQmwo^rzD3Y<>k37k;=-;^N+rEen`FvHmbg3yJX2C z7kuWB$rNpvos##d(4I{Mt%g;V<(Y7&$#oJ+Tu;%aekNsZfjcEf@Xt@eosz%HSP3}ZiS+wzcTLGp&#*20m7S6^ zeTIHnY>x?#bauPaWVS2K7Q5Z1wm?h`<_LErD`9`G(gC-7>#Zu-(hp+>S2{^p1k2(E@mgjov4S&0C>&D;AR&I>{Pi*5JZOqq0k3FGe1O1_x!OXCniS&%Z9?_o=QJ{JX^`V_CN3H91K9@b=J}-oG=w{Kwqckpa93 zwQln!8@p4+4j+@@@%6dfu=|2F6H6Z;$(N3(7k<2SGxv0uou{t%Gfx=3o$T6L z!xyL7sg>OnJeImZSZzMjAUB0V7+Ql8&FWFf4dhx2;4@r6ZfA#PQ zuK#oSTUnBW{H@|(VZZcKjHD!&3YR=6Wm> z(`xaj+IRZwU5~tzgd;~IZx4^a!WiExp$u<4D(cER(p#_^c^?Z+&@;zGaVNkCc^eyZ zOtdV1wfUdfy}h@!apkvLaVR*#Te6(t$ElRu(UqS}F*+LgeHk)$Eb>bd^!Xh54VH(| z{KWp&a8GgJnZNq6B|A$H` z%QB*n+&WNK%mVyBqpr%5^?#~?d5Ay$%Lac%`pmA8r+)lD)d9rjfCHY<@Y9nL_auWx3|xBSO_{bjEW2ov3elW15PDXPA6e5IdDU}<|$k2Qt9 z&j&K!X0w9~V-O}9`s(XPE2t|76+!%;Duhg(dw^Lh;9v zFWFrQ75x17|BZ^vkAu(Wqe^@&xO@hE*Xcz3AbQWQv-XwuwUmA08E50c`%NyIhM?gv ztUirkBOMMGtR538xIGlpY73I+G_iQ;flRsAdX0?VtO5V9c{+6=K_c?lJ4(PF8zHDd z=TQlY=&*Ph;QP4-rBY+os+AVA!|qUnHzt$XX4Kdr!EVr~^h&GRp){%ux}1poSn%4G z`>w46^ijn7wYoWGRN^>gb^3L}6{$!`k0;EkkE?Gj6!^Lzkak`2qo6q*-VlV-;RC@3 zbhu7bcR%L)O4Nf66|!y(%c507x-+1xXLlvZ^0J;CmsRhH&v3=;m{(FYl(A`K;l1UN z2mR|;^8X$8CZG((iduBXrn5R6R-;u1Yo*}Z#OQz%@HU&(qBohe2Af`OR%xwPz11-; zD8Dg$m7NmAtl$0Vt8DQ}EmAV;cf_QVo<;i~h}WJ;kRFqM%o*Z)S@8AP7}1Uu^CaIt z_mV!K`pfUz@;rxpV^TP;?eyN*xhJb9tBowD;US++8*rU9O=i`*?)m8*ymz4MI%}Bv z#|^m7ihF&c#g~pf7JjvAruWs+D+12${XC%0zQ%fUp6j~n6u*I1*LBx#A}-Ekw!eN9 zc3_B~cs;#`g4t8Ei3;n9dScc+H&$BG7k|I-+Oh`2``(HHe@9l7NnAP3AKUUX$<8{i zGK~=vFOarEvg0=lD=zWWSNg$wa~|5m5NU|F>$>|~>QGZxduVHjxPkV-_BY#Ibv)3s z)l){tjC-TfTcTUn+s)@H+SEp!PgcCW&=Y?%^?kLH&v%S0ujG42xRa$TuR|SIS;7J? zTd}?az59%1WI@{H@f=b`F_+s0_AQizNYL27lwX>fBBrh_5$LBk63yO*hR;&mJAsYugRp`4vFw)9rSDPO-DujDnCHkULGKo^8FB|C_pDh1!2 z?H@A1cr>U;4f(r)B;=l2JGo2nvxFU9%L()5cwKK&M# zzt(uveTHU@x~LxZWp_cydh0a)sD4cYzMXru$^sMe92LBIsym)cc{=&;YJvPLUSV0K z`5_NR|GjFAUE8Z_(icdZ3hDgpeQ3}1&q%ZeZDk|<%H9`?O4Il7&g(ZO+(*vv$d`_7 zbB#Yg1MBumz?%J7ugo58i{jZYSg&0x?T=7}-k&e4R{2+yWp#+Z(w!`AeeYaH-OdSK zYezZKeN@j&%i&tiI(5E#a;fgz2S|HF^@wbDw3&KC+K~a$;Yi=pf7~af>A&(j`RmcjZB3C!M2%|O-0@)Q$vZ@L7U?GiocyIUeOLLJ&HzU94j8^G4SI0LY1OFA zFp}3>V4Ej&0&1lLyh*CSSFYLw&T6Co`<>NdC-J@arexQS!POxx6!#z=Z3#PGRW_|nZ&X3sx75oswEL}27 zSgrj`aH~a~RQhYDG>VH~=$K=yu9HICYH^{_uvhqnky)yI=|Ns{_l1u6lFjhi;a9PA z_kVTij=l4*8*RlK6&k3}K!pY>G*F>|3Jp|fph5!`8mQ1fg$61#@Ru}z`~O8mC`&qC zk|^FFIxd*SpUPKI3=fvR&j}*MF4yleim=ABQbT{NBojZ`k2}tG`!=uKCpdWFm7s5P z?gh3{n*(=vrYeG~p9pPlE$w2A>t*Av@e>&&>Uo?wqK_<}O$@bcTh8IPP{Or5)I4W@5E#KS4FI@@l@ z6({fD8IM_#`+{}CBlFIZfo(E`cQ@@5E};DliljAsnR6GVH&j)VPAWOCQTkb9X;E-l z?>*$#qJ1x}68tm{3x7%5M$EKT*pl;!m5n9P|x}%$8g{!;v7*>)|1pddt-xUQFoytBd@9 z$ZX(|^vMjx7*8~Goj7bSv*i!{;<cmp*%WZThj=g{(V+aQ%M>rAkbKQ`C9)Gdf9sgIdtMs+b z9Re(~kw0$PrMDi66(#2bkao4|UH2~{AGN^7qxUe(y)RMvjTVb9jS<(pv`jv3yeS}S z0~$N}bUrU?__ZI`85+R-EHqNOUDR8$;34{NZXLmD#9Z|pC10O}bnE#w48btUV+ehI zq>+by6aHQ=xJUck)c8+H!QV{TKJ#i_XQ-mZODx+KQU6Wu%2p`uOWf^XuqP2Y>X_WWn^S?_$RlBRLr`KGNp)muXZQX zlAs~aQKm1Vc+VM`=KDSFA_&M?c+Kbb8I)^_=RmHjTplmoC^>eD&uio`&yGjuc7#5;;PIlP9AbX@QNuJQCRL4C$X+@JIgB zhugGjy;g5EgB~;hw<;s-QM4MhYL(KaS6YlVvrc6<>eQMXZhi}j6`hmKfKJIt);G6( z!a>$hDXSK9ko7mx(z*-ZKY5k3Dt)$}ImqfITDT!Q=)*kb;AH9Z^*sZoKf{BQ=wxt1 zz|~!NcoMH-Mk9RJ`F^~Xxq;a095(d7a#Xx8_dxB3-t$YYW;VlB%yv+?Uabbjt1WOg z7xrW7G!DH(ZPYt#Iyk*zRoj)|aIpFRw!=YeO#g|F2FHl%A6@F%t^+z#{=ep=cvR2) zX0Vq%r)1}~OA9W(?bg-V;Q6YverThJxEl}WYq3>lOJpo&=+Q^ifbMc4q#u+yRH-UW zFY{S7=>+;2?mLf__&q{|@DA{(HYgx9zDmgS#(zYJ(eEhmWx9}jqT4SzvIk2%$Ls3DYUH%~I@wZ7YyKemzLIwQWpp@2G-*o%FMgZi0n}*{ z0NkQ7XzeP8&7rsG)GD3PYy?0xTGVO~*P^%D^fs-*oKr2o3G9N;Es@k^0F{vqj!Np% zm+Ip93CB(-VogQJuP9_?X?Mh3R88%y6T|Ba~aRoA}iUhos@qWH7x2x*yqBVq!y+TFrmx-ZCm4@;nf_1f zP+K$_tKAAmsMThh)e88g(<$vbjap-J==X#b zuj02z-x$1m4_fy=a&dH7qeQgkVUowfRMD30`#idAKdjhO*(vyVI$Aq(wN54fKDnsJ zx&902o_1@r3%_8CvB1{G3j4!dDP*^nriS>nYYMipH^3#NkY<#F1<* z;RkD&mROdz^xk1PAGh;rdd3*>+~Z1+{wd0PtJ(_vh(Ien17x;P911)ii_eaUFTBF= zIC-oMhGy|CdUX7DM7n|h$;U^osBA_H0G1jCTWUPKZ#3yOMzzIiFsL**0#n+sLF!DS z~BKJP|yXuioM-e%>Hophq|tq!L_OT-!OwaB)i{QaGi@+4ueUET8B z6YQGyvG>EG<)S;^Ff*FcZgAEsKGHrA^*f2Pn)zNAlb8CA{*iGBQ`W2o-NSf^W^VYa zvzpi9A4xOi)!~Zx#RW!Abk!3qtTp?7;L};IG7{cTQW*C^r~DmalrP7tQnv<*mb~|o z4;vVQWofT!7AmB}Rk7ltEB{JDTX|@_nc8g7K$d~80 zhhf6F5=R<;8YUFaI&m2IoSNMkk?vUa?<}svz-E=i;&{>FwJW_E#Ol~D_{`+S^`kHj zvswo}^ID?lD!&~Zb=7s)XA^E)iYU=VeB&5~Yo(oPh5FSB!Xf2g@$>U#4JmOrXY(!k z7}0TV*Wj7R13&bB<~xRL8h-uDqkei zkQtWk5lNp|fWF*_nK&`sOM;>SE6lGBE&CAhFMnBf z)Jt98b$fA``J<%WA7ou2_J57CO!VqSe>`Sn=%DDt3ingeJco*3{3V{d{hl>;<@u8& zv4kh%KnE{ObL~z)>$!GeXn;hMpnN0r4CM}MPH{S@*9+`y;SDSnyyY@j9&(j-k z_zxd|cJ!bFtF%M( z%_Ej@#6;|+*M#>H+I?9sE_f{4Tj=+-ac|J2v=fHrUQfLne!fN#ShJF{*R*Q2l9q1> zkbtsZ zU=yUhNg7fYL#9m>e@qB!0bfa#78_jGr7>Eq1|57Bf~ky6XSC@p@EI8SAXzMl6W!VSU%!6iYCAeg^}--fzHrI0_9ACq-?hj>{$ zIrnpJE6!a`KF62+CA%B(3o(Pxvd#j*a{s#L1@Kvc11XB)+u*}r|J3aC6m#FfbzMID z6!#lZQLS6X4^VZ0EBa#1S@x(X%#oO!nPMMkPVW=lbZNbaxhz%;@nrC?FTQ0(*IO{2 zpTuHy$@2&D8Scmz&t9XVnsjbdinz6ZR(3{Obew!w5lwnlPi1fvD>|m}uI6$UD>2Ux zNDp^Mn)YoG71b=^PjZ(4QDSEQ^ys**(+3`5v7+@J-L`|!(VB15a&{mG-|{%5(f9?r zY0|co@PFjcWbCjSKrve1bFA|+gxYE;M}bpPo)2*N$Xyv|Z-!A(joS2$i+9VS(eu;a zvw*a5^rTzJ!j$fnJ(9)xFwYxU^!uAEVvDPwX}y{oW1x10gSN~ldccY{Jeg{T-#zlY zfc9W_v>j%^cc|Rbbz4e31HTX_fy@RXe)kSkPa9T47K_yxhZ3MzUCzJWu3CxZ_sr`zk6bZg6^= zzO57D;#+q}C{-(OthNa|CR7P33;p~z&!bgX(ebT?%F1X{9_87TnZ8yHsyxBHO~voK zy7dSut<8Y@bFmnjD_4`yrsU<>6uo;QDk?sqb*oaszpa*(bVo*XlV77V9s+6O{?75p zLi=6Vp~@^)&pa8h80t<@(5%w!nRMN^r=z796+e$|GH>BPkU9F>-p6KEx(r4u3hD>H zlk%kHmEnC_9$ki}zdpMHGDn*}S^PPMy05cm??7ad01LOsR01ERWG?}|CfDw51(GqM z@y|Ba8^nr^3U9NPh3XNPryjNSpD+^*w(7KGa;9DkYMlE-=3bGVoohp6>sgeR2z>!`%;E{V~)#P zO@>e_&|ik%L-Y8^SL2TF+hvZZsP=Y8s@antH${ zM)AaRVk!ZE*7ozO&|FjUNMs{(%LeDG*fo|aRGA8mtMhCUDl*pF=g=BdXw0;@%V;aS z@@%DeZVa~aC#ZbOjBcrMtm8Ihp}!q6X9t9uNup!G!ji|u;<&}--X+~YZ#Vq__VuxQ z=EQ)`qILd)pMZF@CU0qH7K_z2j|1h%a;LIvb5Wm&e8ugt(*r=4)i4qkp;;ZK$|@kWIVH3`?p#tqJqs&Csj(h6PP@ z+_)*Dkyq0y`J+&KZ-y3$c?1;5?eNI@rlW~1rwzv*T(S*07+dFZldx0=j{G(fVGi!B zcHaxox5Gz8wQN>OU8O6&xLb)fEZQudiws^5a>PJinfpkQJxw)!*FF$2`BogOS`hHR%QyPJ>|-K55<)+1qb zlsg=VyB!^67T0on_rf=iy8Czs2(6#_U9{80iEzWh&6Zb05nZ+$BKbo zH+KlobldA@(W{kFQ31VF80PAuG0SC9E^^%d5s&DD3(jRpmdoJpj99eMg4H=0n zPAco{fHsvo5Lmb!S-nxupS1IqJ`JX^W6wun8FX_Rt-K7OwpIIW5L$8vlnbWJj4bZY zQ?gP_8c(0R6RScu=G#qJ3T=Lm`ANv6f4NLtXO)^V;Q`GvuHZy83yA9rrVaz*(VF9< zU&XLk>ABg+#NVBL{&i4=rJ(5eJv~PtL#E5aI+}~Nn^m6emfh98vE6u8x8V<=S;U;r zZC!UtyXeN*?BkPJEWH1ZE&QG(vBG~9e-#?2&_IO-Dl|}`feH;&XrMv^6&m=D&_I45 zFMiyxH#b3+%oMWf7VlC_#+3kO6Y8_d1v##(yctzaygDH~I!{(5@xj*~>#x)kS31~? zT~n~eE3J{-H{nOEuw8+{E4ghG&vQptbB-zYNMF~%mG!GW>HIzNjM@3}$%}D|_HbEd z9}LIJR;OWDPddXO6@9;iq19VDEj(2c|D2&S1CD|ro%!rEiJqrXcNfYRJQ5CCTRr6L zMgjkD53XbpAL$&H?HYxlQ~Fse3>(O%rz{mXa~Zm;J!XAJNDOxa#2+0kO?$5Qrtt^E zRpS;2?!fGBl;f~C?%Hi>z7AKjmr&E%GP@!e2jIAhEvfU%9%fY=SF`cB(|XzJuFIs4 zbW>&VT_!52Pr_;k9rvx%xwq@ewM5i)pXsy%teE69Etlp(zdO)Lnxq)ly zY9*6@Z%-w3Ixp7TCqs8%&kC9|kTvojYMf|HXk;G*F>|3Jp|f;2*7l+4-rwrW1n7nx8r{Tqmfw6}hV{)aW`%9q%ETxl1uxj1xDD zxEg)6AmfPn8ShdZX2OOOxVZS^(MNc4{m_u{6PXFzuk!Y@pGvDV9`Ebqbn@%0&-9%8 zgX`qYM;c2q-Y%P&yfyZ0dOk~W(w869x&DbD`JjhB$4-^rTKq(C zU}B!A*QPFBb;7E6TUzO*{Utkj219Ik=~s1gZ=ll0bJ+R7%Gw-e^7c)@>2rEn z|MvK#M?{*EmRUO~GU3vEbzu?A$@xARHzwC4H*Y?5pI39_GD`g3T@SS|$2`{da z*V+@}#z&r#QJwL9v0}A!mCPspQ-w#Z#UAnln?>7pzx1^={7#-VgyB2W^Tm~y0neW> zbe@OQ?X^)7?fIExHn~K6<@z47Lp!9k$V;6zNO-#F%YY#-Yf4whqs9Eg^%Q&WtdV!j z$8FF3WR4i5nJQj(7Ue1O^_AnKbCE~SWh;ai7Cn>K+=Y6c?me*s()-4H#?)(yp32vf zHqn`qX&$&mdZHqnV&uZf?9;G)&2cjOQ^15X%w+ambdla5zG9F=+TK*pd#r=v)bpJd z`pwf&?{7x2eb;*bqKT*OdCR6%=5DAmEnwOAluzd7+rE7}3<>GO5Z(Zpf#O+O(p)J-NQ0jb)`@ zvr20vnLL!|k@Tbb^1vrQNBH!bwZLm>vq<@sL9UGi57vJb`BRku-nd$|xFB8{`54QXA=w%^Oek8jO%(nO z=E3KWWaoQep4sBGE12gzFRsBruDbS4&tBdwc#3*!J-G_Jr*u4TN?kO%2a?St27~W4 zkRKnDCaSiryVtL3G`dwDpYB6CgvXR^ulQZYWrnZ^^1Zf3BR_1cJtYONivmTzi9E;e zTkJFATgJ$q_#|=}I;TX`p-JA_L92w4#SFdgsUpW(q4wfVsU~@BSf_idy{{hMLQUwg zk^H3HC9x>7naK9#s^HzHLOteeTIZQ{S*b}nji6V_Hbp_+E$gn9PzpANw^jd=ebyzZlpF@2h6tHV{>*4&8Y{wp$}JW8LOd@Q%pKjWOM zJWhVgOr*`6vtW2N!u|h3Ld22{ls=c(Mau=5)C96V*U0VxiT}6$;0{ppKkE)qJP0E5 z$QX~O_^|fy^xl-nEn}ZV_Sn?3^1MIPNNCpLB$Q*83 z3x}vKc>KH?8+?$^G0`0eMJX12iyhWf^-%#cx~neP{-TydKp#@vtdNoj0DKYem@5GM zyYCInW928}0Xy3}sY4>xD4Ztxn!o2$*Pp*VklZyb$Z zfdeD2*ANT3euD9(;?}P)>|bMe$@2jTsTK^e?IHuXSL1Pwc)>esrkaZ;?Uivv;*$2)DY#+b6}f z^FJ?DwrBLp9B#ZRHR-UEXM6>W=$yH*a*gF{6#=8FU_DQ&{!_rCz>Zrn&WwI#eq)#?x9IZBZnW()#wJka?|l2x7n=*^C+jOW4Pvtwb$O$MvltTXE1@Gm%N(^$bbnM$d%!0~pS+Mu+UYTB^|bv{ZL$I&bw-Im{NL6(F}_zq8Q!H`?nQbF zRwM6Yp$U5AjqdjF2=)kh8yi+Hy4XY2y^CLM{%3Y??`>^d`R!I53XbrWENA#}DkXPx zEvrm1IvV+X88UY)@=Fr*`5gHTmWR>&#QxTBPjTTHME$?w(l0_bE`6MA@a&D$^bd=x z+15_4*XoQWyVhtnm<)Pw=m>7E%xbMeYf)OQ8t|&4x0`i#yBVB7bpLO60)ch-f5G{~ zFj3tz8sAgXyULTcoTk*>u-s>;U^*NxSUd`UZxa4{oIvCn^1H!c3OtDPC}UPlpLt;R zIpAlc>+*@iTxZlN14JevbyUiuldx>Kxnwpu`R*Ot}gnFKP8n) zDvc8+E%{0MS-lsM@9U4R&hK!d+Je{fyiPaY;2Cv85g4wMpQHUh zFQR^+z4ZwMYiN%Pv5}vSz~^4Io@8LyQ$CD#oOOkNXfXZ`ksJD9xLA6`fZ;@cRu+aQ zJzuaeY@tZ?!?1Mc%(%7#H-9FhMsKw!4O*SvXt9D*EtAD)a%eR+qY6CUne7_ztEJAB z=68jeMZTD+I+u>J_>{+(&>s#-!$bA_N_VGCt5SOk`tq16G0^=TO7Kin@I8j5NBQ}Z zc?2_(FDuVb>5*#XU@rTr`zJ2Na${7b4ermVDX0^=(zN=LR@NugKf08Pd8K76C2QS|$i^it5 zYAojA`5%_ywm?+0MdB+~#@m6Vj`e|N&;};U7_CG!IkNm%% zt5-U7HYK?8RjV92l?7aBgDY2)R;#lc)Zh~c9H)R&Ag~T__S>ZlXTQa#P*~o*8lV7! zB$Y}8m@M`@<*JD0!85C_4DQ{`FQieUKMHcIm)&Y~fWKcox)?SYEM{>1tF);dHnkC4 z%xWAqvsD8lIg1we|La-nS+Z|rBV{$D=cSXSF_K>;n9fpE>I_wAR73^eo72+H*nfTye{jAWM7dT49F3V{EbBd=?YH~(qN_MZbGLLxRX%+TI zZGf7jY-(mp@j3GMBsZcVH?SX3mTc}0@@1OSlkNV^K^jh((ztuSZ)Qq*cA_;SeL!ON zzzm}DzlBmpx}Ei)F*k7V-zrkNeNc8{3Y>hG!~%)GRjM@eAeurJ;rX}4KpOS|=F}{G zG*r&t5+gNZpgogt#B&3O|E>2?30Y7%{nN9FeQ`kLZ|O57E74&$XQjZQ%m#m36j~E+ zL|KSUN%FU3K{AOM1MHcJB~{ez-$jiUF$!8z#@|vlzRsEx!wt;(Tdx#5M}GwZoI$ch8&dBzDmJrh92P)Pb_h?W&$SCuD*0KiNz%)0-dN=!GD^d~J^|^t4{^r}P z*KRxStTH73g8>o~fW}Za4e8zDzomi3m)aJpR`!=m@s`LRYn0g966jIo(JS9j5P&kv zL9@R!hE#U~!GiyF!TwlYcDVbd0mXO^zd4B(vn`Q1+??GjGh<*D@r8Tz{R@QcgZgG< zW+%R(+p#O?A)-t@`~|viZJ?Mm>jI3yhW?9`*)nL88D$!ESsoUct|8fNn=I??;ug)i z=C)0i_3~RafbIxv*JZcK@@Zh3?B~8smQUo5Hp;r{zD>TN_kL|s<-Se6H!UnDdw}~k z`QF6-SYCEtw}VW^1IVBKe=tTwoN(K%luh8x_@W`K{}a90mszssvIny3vL9qeWqV}X zWgBIyWD8}pWS`2$!FPcHvNV}Z)>Za_teGrYrjyl@h06kDav3H4P5MN7PkL2)R(eFb zTl%&13+Zy{JZXXSV`;v0s5DcWB2AKZmbQ_`N$W|~(i+kbsgG15}*$ER}pFnI@Sa$&n0_WJny6?vnPBW|D>ytt3(sD)Ey@B|P!3;>X~b@Ur-{ z_>lNJ@mJz?;$`Bw;sWs`ajtlXxUV=_+*8~^+)~_FY!ufOM~H*O3b8=U5 zCps$HBib(7C|V_2D4HpnA{r|iA?hzm6Oks*JN!Ur)S{N%d36;WX!b(DKp-9LUybwGT z+!S0892e{r>=1k@SS?s2m?ijBFitR1FhGzdunD>eJ`gk$L<{tST7qyvfWSjQ@qgn# z<=^LD<)7sr;eXHnn!ldEoIj86m=fRfme8f+$Z)K(WZ@ z4PP3{Hmaqd3uH{4C!)!aqgBJNb~IPOU9KyDh>#_h&!&uzwy=IXh%x#8RZt_PRT z`Hl0GbDwjKbCz?2vzxPxv!1hpGoMq)`Ghl?GaSAv_2!s4T{vwy@tpb`4JVRQnd8fm za(L`l>__Z7VASwO77gXF33fXUSu})>aLJ;F9f3^UF;jC6JnM!@%^=d1jzFdl=?G-%f|;6e zJjtTYnA8+9b)q96Q%5=iGIhXAO*ta6C;^k2K&JL|1TuX%+!SAK^C>eq=2{XlT_+*h0lcFJ$fsR0-^!O~A12lD*)DWI&=?J7~=m>C8W2S~!Qz}eq0GX6@ z1PIi{XARgd$f7!!R3DzzrXxV0799ZsH8B%NNESt6Qa#92gN{I^>U0D$Rl`j6IAXG> zDkeoirU*I$T&m!+D6G72Oftc0ja<=`PfNG z{YtN=@sa{M1(FJ&1Ynzj7f7$?;Uzh=QKSMWTv7oP4tA2mqB|DgrDPuMm`^Gc-!Tu{ zlEF3|bMaDFs1Szg3T?np6xEfwO*;rhb%8dZC@$57rX7T#y72i9U?_^}LfxPpgrYh_ zC!i=U)fqYwhUyHRfT1V~%!76iis}TNfTFlmCqMy)qM-64?I0A@5!whvb%X)3u~SDF z02qp*I`X)*gHTiwbRra$1VRBtajB$0z5^JFqLO$V+CeC)19T!3)d4yIMRBPP&X6xA9!5sGRJod`v>rhcIvL$Ol=bRra$0G$X$B|s-aQ3Pb)D}3io)78+Cey~C6DhQ9MzKgfp!p%Y6&9{j%o=b07r4DmM{WP z6h*b9uF?*|QL%tWI4Tx;14nVGSm;eCDi(SJMNw2Nb%pOB92HA_Pdf-l#Q+{~6h*~w zcF+#6LM{~(N;`n0paLThj*2nT4#H6}GTK2nDn>~=fTN&~kaiG?iV5O7fTCa^>N4#B zj^a`+U`}mFg`pjUqFN-;js$Wgn063`Y5~(F4Anx$cK}0CR13~>+5r>=e=p=afT8fx zGTK2Xss*3`MZqQN672wv;!@FoLMSR4=1nLn8s<$XD%!|*5Q>VX#?cN!QPC{l0Te}1 z(bQPl0UQMbfCz-5qAh#}P!zUZq#eLfTq+6%ClnP0wh0tPQBl-F+9AQVNN59&f(o<& zMNv>mrX7T%BA|_MR0M2m;3zH?F_d-?iVBA&LQ&x`U!W*16`sU*@bK@$sc_msC@LJZ z!6lctr)dXp6!a3(c0y6%L3}$<6n4Kr+kvCFR2Yx86N(C>_;#QuiVEZIr|rN|Tq=~u zw*y5{R4DZwZ6_QR8c5p-M}-FP?S!L3x$o0Ktt+Bo)M`?S!O)rqFgXc9KCS;3$fcaSqaUBe|4B z+X+d@g86nrQZmkqd^?a7_WF)*2bRLxTD~1<3To6@zMb%tj7sF&fv51=x3rxQm8^`m z15p7IOdfa&+s@E-LR3;3`MQR1&}?L?wasBSa+u zTp%hgB>`N*QxfVFZ6`b>23+7NE+qzBpec$HQ{8Dh;VCiT5}p#nLJ*!3Qz3ji@D%hy zU_w-40478w24F%|VgLrBf-wOYcnT^23^avfMo%mq9_6NHEkzE#fMIW zsQ4fr5EVu7sRY_in2HbL0aI})KB$!t6@LJ22cm*2xwM_|6d!~Go`NeN9HA*lonR+4 z#RuUCP4PiEpeY>s1Z@YN;!-qNHP94A(NrC62cCjUAPS)=IuOtQ3pooo(n>}x{#x8$ zG*!5r{~WI?T>5YPtLRiQ0}eGU>)|>XbLS^2SMZiU?J9)FX8zmmK#1AUod-Xo%MO;V z!$d9@48NO8^SHSTl(c&vU70=J|5SIMm=ozAM(>-8E) zM{O``l^TPERj~$xL1!_j6$+hd>D-D;IQ9NuQ)y-HST4NFz(aU#h4~qUbW0tc*Tv({ z+k;0uh==hu28VCM{I2)&W=C!cC~X}Oc(eT+QN$zD1z}UCai(!DNBrx;!LDECVoVhb z>eDW=-?2+!AA$Jf+~gqHL#yZ!z4|8XryMa0PB#9# z6R`{O@ozgtj9ro@Ub^Fru<5<-xjfL`8iqdAuYt!FYOQ%7Pt-w;vPxr^is}X!3&GA z?m96)Ni<;7=7`0_ZS7Rcs)NKOE^f^b9M2)1{+e0(3OUi9DphFl??R;S#bId-n>GVW z9DiEed*2iUeVC7PL_f)tq_OXH4x6QYE&Tb1aXg)5`X|enbM!XmRS}Mh{*7e`i>`)8 z?3;g%Vf$)I1c)L?h3n- zgmXF)ynXvKlK4y4#fEp{=&|MOVa-@D{${P)!%6ZYfZ+o|J{mxM2^ zh!4%Vv_y2{u@;>Zx7h<<)AJGcw|Gzd$s5B1=O?X$%t5Uq_kP_mJY({-HgCR#xIe_+dTuZM{h+tQ zOI~2Ar+>peu%*L)bdvTMJnrAgRlmMnSfn-NFeMIE(bY?n!2rXv2dFy)cjKr_h}`hGqod-)9ET+K6j7NBr?#{97ge!@*aD=ZWh;Exlsk;z;%yHj zd>-33^6zz?9fyppCN1Q;)@TeWm0V@A=;U&>L8;Xnlol17AA}TZ;4`4LYBj8ls>tAj zbL}0Ei#zYYcFBIs5z=XLWS(l?l8_j_crYFTMu&@gg6Azj<~bRB{dHuXr|B05oDaC& zy0<80l_PeaJSg6D6IWrGv`tcF$P4d+2cJyr0pfa5#p38 zl$}YXLrc!CX2hIR;SbplMxKvDiM|%y``Bk9`mxh=-+}LlckGT6ExtdE|LTYvqIX{^ z5qEe6wM2{PYShAM$$dn_ed6B!XhL9ZVy<}U%TpyOr=o;C%JK7|Ao1dN#Vc$3#PmP6 zNH$^MGa*xtSA}nQXm8})dum0CH=tJ26~ zDPmocZtA#+*FB;(^4)7V&)cG?rxK)Ww~Nf`BnxkR?yHy~c(Hi4$Yw`pTy=D- zHO~s3GP^toSd|7+n6W0-tYl3(7V?UlA=8-x&KE0;dK27*6e@5n&>I#eR;2Sey_-yb ze#anOo;P0xY-@#{H|TLQP<(Xf0?DQ@^tgF}e>%5VymAko*4^IfmD0ts6@{+}^to@u zj9ZZ(Ja`o<*dFwA4wgfLW=zA++Nd#U^l~d?3^ptEW;vX;wHS0t zrCbgkEekCbR=8dMmWlq(J<|1b=gg(j@XUI{^Xg^d;#Zz#LOJV$_dbc|)n6B!u{NZU zebT`(E*ime>c^FrHZ*jAa-Bc#EjjqT>-OS0f8IDF-7)Q%0v9zq<)i{Z_iBSiWi;t5 zW+S9?H|ecLwLz^^7~l-A#;R5-brwiErdSwV!9upNCi62A568!&(sg*6w+EAT9Tkqp ziMxno4>df_y(r?;$KOQE`0k0A4mVCR3+^1XZrJCyMc7|swwNpyt-&nU>RCvB2ictQ zz_UfE(6f-&S!d8%<=}Iq(STd4*^bPx<*7!l+X1Hs6E@<%*cWo~1Hl_K$g+^yq znE0H&wmZHp4ICtXON!&7G<=%gBkM8bKFQt_zX+ZwL8+1j(Zty=T%5KAKMxiiS&QW? zv2rJtTSZ?Hr@sN>gD>OfIiivcSUxSj`39E9MPHGmoCC#&Nc&vTJktJ*IB*}fe1Vo)Tu++!Zq`S z!JjNx9d?lICVjf=qtfG}*GLzQ4hemmI6}%o=aJGL9y|px?GSLmwW33VdFx&Ee!=hA zU3FVX*{4{4Rr1qGrKtEJ7e(ugkj7mrx2S-S)pDiQpk&QDxz4K8nT?Rm6_RBdm0GRQ zis%3N0wqU!f_X>sjCi@IP&f)c`v3Vg;Mag(1AYzoHQ?8PUjq#^uqZCDyG>Fb%dWw5 znlpXi@HQRor&+r_jbvw14(#7oVnGA#y%RdbO*r<-f zg~I>OuK~XX{2K6Uz^?(n2K*Xm1`RA31)0FI-DLtZV`Mbf`R|UA|JvU;3)mY%;qtA5 z!MQKDJa7=tfWJdOk>WZ7-Z+~Vp8cN7Toq-DckO*Ac*5QfLl4HU6W+fTW0AYEhs8x_ zEuJf!xeT2Ia-+Dzz6)>jEV_I&%pmr$B=h(=>6ab$iI&-qN)~>u5v;TZ3v$>sLbh@T zB+jUber)brl7!1R#)^>VK7Sx2>S$iLeJ(l|?22A!c_?Jm7rlgERABoB>8OFUCQoF3 z8t47I^kTaW66N6&fr8Ymz!y7429JI$Us7=r=a3Q9bNQ^0z9h5QHi0O!R%G9FMVxh@ zCV1r2-t>*B6dWPfWO(*|U);;dUxdErz%__$@%U4fF?AynqR!4)AO7P}P3R|)!WRF& z7#(|amAP$bpT2D+ZE#JlN>39Pvd*HB+g#`K@hzA>@yFm3vD#~Ih#w^x&gj_3XK#$^ zvMDyA`>h?JQQBoK+D1Ma+k4N+w&P3pwLLT**DpQf+MB4y`xABsTiX4rYlyUyXqLF^ z&eP(eJ)cQZKR+#fu)|NX=%F`c#-V50KdYS|W1fjvF88tzVvh9+v$k&38Bwzk|R1$Fw|NeE^ z?3s$tFDRD_)zzST9>>3#7n3`#t_$J7xuq zSf?064E7%zcKALvboq_80guKQC1=i3;!Ce$zcQIQ-8J^QAZ9K0?Gco}^0St~AEFH` z6dcG$UxrVZtD!D=@}eKMU2DDh9#Qb~Pj-uTWV7#52ud*$)3iw#C?e+ z?msMXuVIP%3QODFI|cTybertdZyY|5piKG! z@m$*|R_;J@b7hvA(R$JSBf({Rv;n(yIZFMsEb44stSFY?iS$3y1_;@?Y| z;0su?qNCMVri;#zvZFvmB5SM>c3Onj!!nj zvBA$boYRBJ_eSBI^gUi%WKsoU zDDV?Q^AZDD`z8qCisbq5_>jSE3nJ2{|I>+KZbd%LF=V@Fp@FNU6<b4fq^+lGDcb9?Cu zw{1=d57R8f6H~~IMm0o#Qy9z;vd{>*gw+;>UZ+uOlqR`W$!e?`^}@o6T$He>XinBr z)bYellU|CCv^<3p@uZ;la&NQ2pf#A}3Y|u)f@ID{E333vbg-&Mtz2W38;mNGNy+Lo zixMkxAPC&zJE4pltg8i=^}EiKtq;fX*2%gSj6=aYGE<3xq53xnW@lsR66lmL<{|ui zL3j@-zY(?}Hz@R5rPnO973?N|L^D$2^jQwBxY-=?!Zna6U7PpQa zw6bBaz_qeID<#}g>T<~2y|8>(W+9)y54lD@FAkZ69Oe#>RJ_O-H_aI7$Bf!fa_$tA+;`)-e}7bpS2FZ ztnMLtNqDEz*j_y|$KJpIe70f$?E8oD{? z=kP~M&WN~AxL)2?NSBhAwbxs%c>>4D3gr*M()H5z!|?2!0des=P#51se7U)yE*i%I zR!6muTpT=jIU(s(al?6k8T9`14d-3bZtXjW#cjX;G?qU}o+tC) zE|$HIpEnC9t;VuQTHFpxPSAq|ST@#e&rYJZ+tGc7plto3L%Zd*zAq5xeKz6fo1W&4 z`n{*O&em{_6G9inH=N_}F0!Xz3DuFqCO5jhZrvhD{TgjyQS`=9XbU4-wtnV4aoC<^ z?H(P6b8E_O5@VgwQ1e3$zcDtbbxvY{J;r4xqdKiFly)1q66d>BnKsPRd|!{;a0};} z9h3jckCAOpqAd)L+<&9td_$SqTR0Eb_%8eFT_1m2WzoR{pB|!E8mu~2ZiWXwIYbq; z7>y>q*=$s6;pS>KD+~~MG3$>57xlRGZ78zo|Bt6F)w2><{0W zj&p6w+5g_)2cK|}abtO0cP)!TWi=@^Dy!bAQ5jVV(6CBlgvhcQvjHw@)h1TQ8udE- zj_u!}{vGOWhf?4DU494h&%>_)zXtpo@N2-Y0lx1^@zd}E<8hb?9ci&DBLNoK=r zQ~KHHxm2ss@8epZ!R}arFN6hYCF>`Zr{upL=Mc%bq#2oj; zrc}gSRkaa5TW#GCQ|L*b`9;32Au806wq<_}0BAP!G^QcYf-W=5ap4SJ7ml2|@Qp-jInxmAlusS^h(-tsUo5t&UWte>wj;xnBwgAW1B;;h(pll~%PNkv&su9Pd0Xknx`f3>6=Uy7Y zK_I&!83E-%xu$pyC*P(*pq8Et;}7fb*IQc=Ds}hj34omgs$?ttXJ{1>B;dQYJeYHfgSkltGS{Pq5;T<4fz;SM_LYo|M5Q{E9e}02yZFI0D3wW*^zfOrC3_W)_$~TsAcmwN5w$2>&nsUdPV(a~Q{}i? zUA?ZBiS>24P>cG@sj5^28hHD@Is`h(o&lhATNecKNKwvs{k}-#w2Q%?)A4|yJv`wl zER*-Hyv9MK&R&sxzl%AMl7^eo5UIy6PuC!leKWrt7pariMItYbeG!RRVE4T%aeU1P zvw-02nEML{CFu2Eu~#qSg#P_K%&XO|;T>#skD&sJMouRy+UYyxyo@<(X^py@O_ zCLVz%Ul9OMzO4-cdAyhTd}C>>#Pn&UwE&g+RR0@tgzT4pFclZBwbzBqDfaaq(-IGru4mkH?f+59WAeI1H|sf z)|?0ALR(8j^!UK=yAj#!?9BY)Omj-#p9efO0>B1L8h7+El=779hf|TcV-eINbN_D8 zqWWXW({q(6L+^QfvK;XGzSSr8K`51%#wV0>IKyo*0#3|SPui`w)&afm{u-PzGZW&*w&A378?d|;j7W(-=Fs$~9QgNxAcFps86y!0*9nK<1^++42K*ZEYrwC8 zX4HV_W3Htchw~5Bv1s9sVg=XWx=i+icq$f8J(@*lAI1}pcpgt7Nzl^LTk95UdIUWp zC?W^ChY4m`aEuXxr%9<0%p~4XmxWh|*VHNDY*N}qD{5-^>$AoLotV9mUroyQqP{7` z&o}wmb2bE7mmT646=8W@SW5EVb0m)tPp|j*TZ!itEqz0bSRvAG5-bmhESs?WSk#ty zYNbmSeS)8hB)^byxa?MU{LGj9M8;_)dG{cG<}BoJxco)Qpuo=mC%gZmIWF$Gp|amdv7JW3HL}?2HH5 zPx8&v{zac05*hLGszFpIVT5GmCy|mZpFGF=C^R-`=^Qkr8$ll)HNpzSEz$(`wYePM z@m)p{dG9g(ugi$NP8k2h1i@FcuZth}c~$5a%D*BzHlBxeWyZz@!;IKiHb)k094AFu z!__oR3jV8}G;n^=0I;_)|GDG;I(x(Q`YUX#xihe1cJ%|2ua9`k!jAG#W>E5z|NrQ+ z@!q|_1W#$0-QL%1_Ne14g2WP6Mth=5_z97l=E-RNZGTP!`2IhFGm0ao4o^U>rsBCw zp%30h_qUZy3FX;~Ve?sVqSTrU3YE%aVC5E-(yG!a^eVXte90_Il~w^xW@fWqV=Sl? zxWRP3v^*I8?-_`h&8)xW8S~}dDucpk)UjrT#$>UwR-Ktus?p^SoH(^+m4P)|OnMco zG2~bB!Hu*jImt`Qny~jfB4lUAamUNgowJ77Vg$!YonCKMsC7D%O0HuS2CIctSoGj! zXppN6R;^WSROeUHZXn4EvGyU)y@-%)nXOknOIZ=AFc~c-HMp$GOqrqS>Sztl6 zDhv3^>U0VXEU6B3tF&sh%EHP3n$xo>#n!+0i;EiggKw*OCPS+OuOf}cB3J9=MxDhX z*XqDkRil8a&Zv=FH3|@1uQ%pb^4!QtUi@7N`SCD9CNl4OQSI7!Cbe3nRVw9XrB!b< zfa|(})oCpTqX9f;b>KX!G#FT|(xfh^q}&*-^M#op>iluUoW%s+artf9f;OL3gZbzb z3ZqJ{1=nMx-fFU%%m!8kHl?zv(s2( z1Y6W%fgMv&vB1p=I$vcy5TbhvF*BJSUTA0SJd0YXRcp;gjZv>sf)}|SIM1wCD;2O! zpmE$}PT4_)yY-cdKvgz7KC)>W>cPYuMlLYc7{^G}4X zy5x#=^i9YUN{sRIBEy%&hF<*<9YoM$JEH7SF83zy}Y9sU|iR z^GFkZ@-cK0Zy4_=FDh!sSmCRWI5&W0gjNers1~bL2~Tlyi$Sl_n2aW^+-x#wjBs~U z!BeVH1>WKi3#h~&3+TTS3kWUz&%^-QD*Eh|aV=T|e-kGA;(r|^Y~j3$Vh9qp$nqaM z#&rY$HqBGvIU8M@CXYX9?AwBv0(HdcM;iyny2jLmXSIBFvTNgDK&}z|@#8uMA6?|y zJY!=L_u}Tc+5ViuU4X3PAtn;p;rDEu{R|_1GxX)xog1g`YPAKvHYy-+4MeR`Xp9Pz z6&_#}YIwM0VH3f_q*V=HE43Dk|IZU%;xNC8uR-De=huK=1AYzoHQ?8PUju#(_%-l< zO9Qrm!0}6Z{O2p)rVgvRj>r@R?VKu*P7CfOlrP8MNb30Waz^q4Csax3o}WkzgJL7f z*d@|)&u)@+Y4s`-u;RFcd(S7rEvwpwjlEq$@6OyDq$*^X;iG>PI>@n=DWa8+H2ksS zS;1@)n7B$%Nsi2v2rrWW$0E^12lf+-u9LE(@Fod>TqfathS!gYZjxgyorFQN@N*r% zlmr?M5xi)^&!K`{q@2iHxQw4$3eDv2e@`IgfzqSOXT#;(R?;nfJOxz7@&74-lqtU7 z3jWwPdgDp?v|M9-a8YGVWKD zMB4AxZCDmNIxibexaQ?HQfA2r2oi(N*L{HNXY>IgaK9q1!G`poscJNgiwHQ!JX^Sj zA?i)^j29;GFv4#JhD>nH3lsP>5MhEVUYNkAk?vkNZk}h(Z7`(LjjHGStm(!h)N^k2 zK(HOIciVyGZal(Wn$GZD(eB3~ir(P6qTP?wNYQJ3wrO`aH>yPn+}(WAQ{y3=nojlI zq#F-#m!i2#aUk9wn#peip{6^Hf`KCcfyz{VKQ}z-d;w9-qT=-2U}%rhxakNY8h3A4VZM zmU_9H`!LSk+T~91Vo>!X`esn2UJT0T!HBSfycm?vqunhsmEqZ->O;T{>*LO#xH~+X zgxdk`G70Wyo=w7sQBX_V?Osg6hjH%K4;LNy^}c+wZrtb2`~P43@BbU?#{b!`0lx

l@M3q}#3Xj@*Ot$HXKbuIIo8*7<`_Hrj zv_f3{IpTyP?ZP+ho)na}>yM_>ZtJIlf3^{jV+N2*eXcn9h$`~4wP*~#H>Wyv4E_H@ z13utLe`QJ}KT9gam&IA4A4PLSeBo+gE5Wk@9e*ERNk0_0Bd`y2^Z)Z}z^?(n2L7fR zD5#8e;~bxnfv0>9N0dE+uE6EYH80NbFZZ^ZR5}%FP-;!!)eFH#3Vi zwK}ETWYK8N`uxfmH}1Y>jBMK`WZg>$sbfBM>jUj{+FCo$tWfBTR+CX-1&?QqQfsiX zYBl6sSF7Y^ixwuK)alGhvt{AL$`;@RyQnEA*mR6+{bA^l+qSNX3&oN#`w%>d>FYKK zi7eQ@81E%Rr4I#RSr>fZNi18+1j$(Lmj-skk|(*aAIk;OvX)rxVb0&i@&`%(Q&=h` z$KEFGl6Z1FcaL}@$^YyW4)Ul&l60d|sepvEY6Ezu$+eJ-R-u%uObUfcX;DFPd4owQ zS1gRJjOKGv7B(eZMtua3@)nP*M7cQ9Z^M%!mal9oGT-VJm)5!>^WnU%iytBLZycn; zIluii28{t?FR1lOomH(=E0qvJL$1}!wJHb(1E18a-l&5{{X(WP3Y6cZ!+8d-_~TLO zI-Fb&ChNL8pYoH;0-3uu*MuO@jK!igm|+&I5mF=TH981KV*w4a8YS4E)+z^`X*30u zk#3CMO2V8kkK+A|^C@Lc-F9KRb2vAt<$AM~h4o<-U}#!aqcf^hMiY1rn$4`iq*t23 zfG1HlwH(i)bE57&@tx{)!=p`12(;_zjK14AwYrxmvsxYX) z-(SJ1wQ7sTswk)ocY|pz#LYb}qW=QKtY9j+o-x8nEB&*Cr;ct&d%u42QuX4(DS|tmcjWwuQjS4oM zLaVcYt`!jJM`bpcz@%BLoQ3raaf9i6Tl#d^#~l!JF*C*s=3&|-SC|1tt$y3 zS3@KrR-uKZG${2DR>TS+oFL3mS!FO_-toLG{w=^^5sA6O3D4+>n6sF;J7n#76Q9Xo z&3Y@uZ_=s_1~tSmF+wOOU`?w<34x@nDu@kYhUifc3#6bj$c?<|Bznc}D7g%==Q7Lh zU^n*acde@hLd58e8iNw<2YRgzSVU`v+lB_Rlt9QRl^McV=#cpqaw}y3+EmyP6L~M% zHd>JA6!`L;joNtAED?Y7Dze#P@pe)=C$V-ONM|%afEcp{B-KMKAe|K$!=zG}t$4?R zs4gZT5|eRZaHSO4tEm7$Ss7r_=YnR;$4RJ}%4-v)Qxlt_*4T(nWeusd@g!Xg2Bv0E z0GF6lAUCb! zi0NdJo2+J~0)ji4AjXy6tTd?A8WuJ-+)k}ppi;HUQdTK(V|~uEr@KRkP>8vV5xd>l zF7I`xyoYJETBov_^$_aGq*JoscP*EzU>RV)snx97tgt9FT8JH_SWH!lAx?v>DN}H! z!djB>#Rt+h30gtixixFrc3FipSKN&rdzia%+DNZNdmCq#bfVY!w3Z(9I*xM{&SY4X7A=^S!N@8Vc*j&)6>7P+f>A9 z;|b^Y$aMEvniT!bEu8@+rT3#Je?WA3%i~XSFjdSHMD>^vhkWDnMY=|i2JP<2H2{_R zLv{B<2${6*Q}~>3o9q>meC7BfkYg?mEk`Mbcb_Cj$aXysr(vd;NeJmNQ;g4Rh=-k0 z^hfsfssjM6^6YaUQ%dsSmdUjUG|?-N&uQKWkRd4ku`~eC{P5W@0^~}%Ho+^9&nbQg zQ1{O1vrDOW@zh~a6RFr9q zSDAb^b*J5(PS(S~Dca=amO3cwvq7fYMkA2N+lljgvoEXUG`wyh(lkKO8>Z~zAkz0= ze^HCOcN8LdBn+REE;S~M8GBwY2dLBw!3%1jtj{T%ZX4-UIOi91pM~omv3SJ@K+x>W zj!(sMPjM9yZiH9id`{lkNH|^Ec{362rQ~B+$~z4h1CRx_;Rxw5ZJqO%0AGY_glPy* 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 diff --git a/.verchew.ini b/.verchew.ini deleted file mode 100644 index 15d722165..000000000 --- a/.verchew.ini +++ /dev/null @@ -1,30 +0,0 @@ -[Make] - -cli = make -version = GNU Make - -[Python] - -cli = python -version = Python 3.6. -optional = True - -[pipenv] - -cli = pipenv -version = 9. - -[pandoc] - -cli = pandoc -version = 1. -optional = true -message = This is only needed to generate the README for PyPI. - -[Graphviz] - -cli = dot -cli_version_arg = -V -version = 2. -optional = true -message = This is only needed to generate UML diagrams for documentation. diff --git a/MANIFEST.in b/MANIFEST.in deleted file mode 100644 index 855deca1b..000000000 --- a/MANIFEST.in +++ /dev/null @@ -1,4 +0,0 @@ -include *.rst *.txt *.md -recursive-include docs *.rst *.txt *.md -graft */files -graft */*/files diff --git a/Makefile b/Makefile deleted file mode 100644 index d7437b02c..000000000 --- a/Makefile +++ /dev/null @@ -1,228 +0,0 @@ -# Project settings -PROJECT := NiaPy -PACKAGE := niapy -REPOSITORY := NiaOrg/NiaPy - -# Project paths -PACKAGES := $(PACKAGE) tests -CONFIG := $(wildcard *.py) -MODULES := $(wildcard $(PACKAGE)/*.py) - -# Virtual environment paths -export PIPENV_SHELL_COMPAT=true -export PIPENV_VENV_IN_PROJECT=true -export PIPENV_IGNORE_VIRTUALENVS=true -ENV := .venv - -# set python interpreter -PYTHON := python - -# MAIN TASKS ################################################################## - -SNIFFER := pipenv run sniffer - -.PHONY: all -all: install - -.PHONY: ci -ci: check test ## Run all tasks that determine CI status - -.PHONY: watch -watch: install .clean-test ## Continuously run all CI tasks when files chanage - $(SNIFFER) - -.PHONY: run ## Start the program -run: install - pipenv run $(PYTHON) $(PACKAGE)/__main__.py - -# SYSTEM DEPENDENCIES ######################################################### - -.PHONY: doctor -doctor: ## Confirm system dependencies are available - bin/verchew - -# PROJECT DEPENDENCIES ######################################################## - -DEPENDENCIES := $(ENV)/.pipenv-$(shell bin/checksum Pipfile*) -METADATA := *.egg-info - -.PHONY: install -install: $(DEPENDENCIES) $(METADATA) - -$(DEPENDENCIES): - @ if [ $(TPV) = T ]; then pipenv --python $(shell $(PYTHON) -c "import sys; print('%d.%d.%d' % (sys.version_info.major, sys.version_info.minor, sys.version_info.micro))"); fi - pipenv install --skip-lock --dev - @ touch $@ - -$(METADATA): setup.py - pipenv run $(PYTHON) setup.py develop - @ touch $@ - -# CHECKS ###################################################################### - -FLAKE8 := pipenv run flake8 -PYCODESTYLE := pipenv run pycodestyle -PYDOCSTYLE := pipenv run pydocstyle - -.PHONY: check -check: flake8 pycodestyle pydocstyle ## Run linters and static analysis - -.PHONY: flake8 -flake8: install - $(FLAKE8) $(PACKAGES) $(CONFIG) - -.PHONY: pycodestyle -pycodestyle: install - $(PYCODESTYLE) $(PACKAGES) $(CONFIG) --config=.pycodestyle.ini - -.PHONY: pydocstyle -pydocstyle: install - $(PYDOCSTYLE) $(PACKAGES) $(CONFIG) - -# TESTS ####################################################################### - -PYTEST := pipenv run pytest -COVERAGE := pipenv run coverage -COVERAGE_SPACE := pipenv run coverage.space - -RANDOM_SEED ?= $(shell date +%s) -FAILURES := .cache/v/cache/lastfailed -REPORTS ?= xmlreport - -PYTEST_CORE_OPTIONS := -ra -vv -PYTEST_COV_OPTIONS := --cov=$(PACKAGE) --no-cov-on-fail --cov-report=term-missing:skip-covered --cov-report=html -PYTEST_RANDOM_OPTIONS := --random --random-seed=$(RANDOM_SEED) -PYTEST_TESTMON_OPTIONS := --testmon - -PYTEST_OPTIONS := $(PYTEST_CORE_OPTIONS) $(PYTEST_RANDOM_OPTIONS) -ifndef DISABLE_COVERAGE -PYTEST_OPTIONS += $(PYTEST_COV_OPTIONS) -endif -PYTEST_RERUN_OPTIONS := $(PYTEST_CORE_OPTIONS) --last-failed --exitfirst - -.PHONY: test -test: test-incremental ## Run unit and integration tests - -.PHONY: test-incremental -test-incremental: install - @ if test -e $(FAILURES); then $(PYTEST) $(PYTEST_RERUN_OPTIONS) $(PACKAGES); fi - @ rm -rf $(FAILURES) - $(PYTEST) $(PYTEST_TESTMON_OPTIONS) $(PYTEST_OPTIONS) $(PACKAGES) - -.PHONY: test-unit -test-unit: install - @- mv $(FAILURES) $(FAILURES).bak - $(PYTEST) $(PYTEST_OPTIONS) $(PACKAGE) --junitxml=$(REPORTS)/unit.xml - @- mv $(FAILURES).bak $(FAILURES) - $(COVERAGE_SPACE) $(REPOSITORY) unit - -.PHONY: test-int -test-int: install - @ if test -e $(FAILURES); then $(PYTEST) $(PYTEST_RERUN_OPTIONS) tests; fi - @ rm -rf $(FAILURES) - $(PYTEST) $(PYTEST_OPTIONS) tests --junitxml=$(REPORTS)/integration.xml - $(COVERAGE_SPACE) $(REPOSITORY) integration - -.PHONY: test-all -test-all: install - @ if test -e $(FAILURES); then $(PYTEST) $(PYTEST_RERUN_OPTIONS) $(PACKAGES); fi - @ rm -rf $(FAILURES) - $(PYTEST) $(PYTEST_OPTIONS) $(PACKAGES) --junitxml=$(REPORTS)/overall.xml - $(COVERAGE_SPACE) $(REPOSITORY) overall - -.PHONY: read-coverage -read-coverage: - bin/open htmlcov/index.html - -# DOCUMENTATION ############################################################### - -PYREVERSE := pipenv run pyreverse - -SPHINXOPTS = -SPHINXBUILD = sphinx-build -SPHINXPROJ = NiaPy -SOURCEDIR = docs/source -BUILDDIR = docs/build - -.PHONY: docs -docs: - - rm -rf $(BUILDDIR) - @$(SPHINXBUILD) -M html "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) - -.PHONY: uml -uml: install docs/*.png -docs/*.png: $(MODULES) - $(PYREVERSE) $(PACKAGE) -p $(PACKAGE) -a 1 -f ALL -o png --ignore tests - - mv -f classes_$(PACKAGE).png docs/classes.png - - mv -f packages_$(PACKAGE).png docs/packages.png - -PYINSTALLER := pipenv run pyinstaller -PYINSTALLER_MAKESPEC := pipenv run pyi-makespec - -DIST_FILES := dist/*.tar.gz dist/*.whl -EXE_FILES := dist/$(PROJECT).* - -.PHONY: build -build: dist - -.PHONY: dist -dist: install $(DIST_FILES) -$(DIST_FILES): $(MODULES) README.rst - rm -f $(DIST_FILES) - pipenv run $(PYTHON) setup.py sdist - pipenv run $(PYTHON) setup.py bdist_wheel - $(TWINE) check dist/* - -.PHONY: exe -exe: install $(EXE_FILES) -$(EXE_FILES): $(MODULES) $(PROJECT).spec - # For framework/shared support: https://github.com/yyuu/pyenv/wiki - $(PYINSTALLER) $(PROJECT).spec --noconfirm --clean - -$(PROJECT).spec: - $(PYINSTALLER_MAKESPEC) $(PACKAGE)/__main__.py --onefile --windowed --name=$(PROJECT) - -# RELEASE ##################################################################### - -TWINE := pipenv run twine - -.PHONY: upload -upload: dist ## Upload the current version to PyPI - git diff --name-only --exit-code - $(TWINE) upload dist/*.* - bin/open https://pypi.python.org/pypi/$(PROJECT) - -# CLEANUP ##################################################################### - -.PHONY: clean -clean: .clean-build .clean-docs .clean-test .clean-install ## Delete all generated and temporary files - -.PHONY: clean-all -clean-all: clean - rm -rf $(ENV) - -.PHONY: .clean-install -.clean-install: - find $(PACKAGES) -name '*.pyc' -delete - find $(PACKAGES) -name '__pycache__' -delete - rm -rf *.egg-info - -.PHONY: .clean-test -.clean-test: - rm -rf .cache .pytest .coverage htmlcov xmlreport - -.PHONY: .clean-docs -.clean-docs: - rm -rf docs/apidocs *.html docs/*.png site - -.PHONY: .clean-build -.clean-build: - rm -rf *.spec dist build - -# HELP ######################################################################## - -.PHONY: help -help: all - @ grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}' - -.DEFAULT_GOAL := help diff --git a/Pipfile b/Pipfile deleted file mode 100644 index 9f9d8f056..000000000 --- a/Pipfile +++ /dev/null @@ -1,38 +0,0 @@ -[[source]] -url = "https://pypi.python.org/simple" -verify_ssl = true -name = "pypi" - -[packages] -numpy = ">=1.17.0" -matplotlib = ">=2.2.4" -pandas = ">=0.24.2" -openpyxl = ">=3.0.3" - -[dev-packages] -flake8 = "*" -flake8-docstrings = "*" -flake8-rst-docstrings = "*" -flake8-bandit = "*" -pycodestyle = "*" -pydocstyle = "*" -pytest = ">=4.4.0" -pytest-describe = ">=0.12.0" -pytest-expecter = ">=1.3" -pytest-random = ">=0.02" -pytest-cov = ">=2.6.1" -sniffer = ">=0.4.0" -freezegun = ">=0.3.11" -coverage-space = ">=1.0.2" -docutils = ">=0.14" -wheel = ">=0.33.1" -Pygments = ">=2.3.1" -MacFSEvents = {version = ">=0.8.4",sys_platform = "== 'darwin'"} -Sphinx = {version = ">=3.1.2",sys_platform= "!= 'win32'"} -sphinx-press-theme = {version = ">=0.5.1",sys_platform= "!= 'win32'"} -sphinx-autobuild = {version = ">=0.7.1",sys_platform= "!= 'win32'"} -bump2version = "*" -pandoc = "*" -twine = "*" -pytest-testmon = ">=1.2.2" -bandit = "*" diff --git a/README.rst b/README.rst deleted file mode 100644 index 175ffbd02..000000000 --- a/README.rst +++ /dev/null @@ -1,317 +0,0 @@ -.. image:: https://raw.githubusercontent.com/NiaOrg/NiaPy/master/.github/imgs/NiaPyLogo.png - :align: center - --------------- - -|Check codestyle and test build| |PyPI Version| |PyPI - Python Version| -|PyPI - Status| |PyPI - Downloads| |GitHub Release Date| -|Anaconda-Server Badge| |Fedora package| |AUR package| |Documentation Status| |GitHub license| - -|Scrutinizer Code Quality| |Coverage Status| |GitHub commit activity| -|Updates| |Average time to resolve an issue| |Percentage of issues still -open| |GitHub contributors| - -|DOI| |image1| - -Nature-inspired algorithms are a very popular tool for solving -optimization problems. Numerous variants of nature-inspired algorithms -have been developed (`paper 1 `__, -`paper 2 `__) since the -beginning of their era. To prove their versatility, those were tested in -various domains on various applications, especially when they are -hybridized, modified or adapted. However, implementation of -nature-inspired algorithms is sometimes a difficult, complex and tedious -task. In order to break this wall, NiaPy is intended for simple and -quick use, without spending time for implementing algorithms from -scratch. - -- **Free software:** MIT license -- **Documentation:** https://niapy.readthedocs.io/en/stable/ -- **Python versions:** 3.6.x, 3.7.x, 3.8.x, 3.9.x -- **Dependencies:** `click - here `__ - -Mission -======= - -Our mission is to build a collection of nature-inspired algorithms and -create a simple interface for managing the optimization process. NiaPy -offers: - -- numerous optimization problem implementations, -- use of various nature-inspired algorithms without struggle and effort - with a simple interface, -- easy comparison between nature-inspired algorithms, and -- export of results in various formats such as Pandas DataFrame, JSON - or even Excel (only when using Python >= 3.6). - -Installation -============ - -Install NiaPy with pip: - -.. code:: sh - - $ pip install niapy - -To install NiaPy with conda, use: - -.. code:: sh - - $ conda install -c niaorg niapy - -To install NiaPy on Fedora, use: - -.. code:: sh - - $ dnf install python3-niapy - -To install NiaPy on Arch Linux, please use an `AUR helper `__: - -.. code:: sh - - $ yay -Syyu python-niapy - -To install NiaPy on Alpine Linux, please enable Testing repository and use - -.. code:: sh - - $ apk add py3-niapy - -Install from source -------------------- - -In case you want to install directly from the source code, use: - -.. code:: sh - - $ git clone https://github.com/NiaOrg/NiaPy.git - $ cd NiaPy - $ python setup.py install - -Usage -===== - -After installation, you can import NiaPy as any other Python module: - -.. code:: sh - - $ python - >>> import niapy - >>> niapy.__version__ - -Let’s go through a basic and advanced example. - -Basic Example -------------- - -Let's say, we want to try out Gray Wolf Optimizer algorithm against the Pintér problem. -Firstly, we have to create new file, called *basic_example.py*. Then we have to import chosen -algorithm from NiaPy, so we can use it. Afterwards we initialize ParticleSwarmAlgorithm class instance and run the algorithm. -Given bellow is complete source code of basic example. - -.. code:: python - - from niapy.algorithms.basic import ParticleSwarmAlgorithm - from niapy.task import Task - - # we will run 10 repetitions of Weighed, velocity clamped PSO on the Pinter problem - for i in range(10): - task = Task(problem='pinter', dimension=10, max_evals=10000) - algorithm = ParticleSwarmAlgorithm(population_size=100, w=0.9, c1=0.5, c2=0.3, min_velocity=-1, max_velocity=1) - best_x, best_fit = algorithm.run(task) - print(best_fit) - -Given example can be run with *python basic_example.py* command and -should give you similar output as following: - -.. code:: sh - - 0.008773534890863646 - 0.036616190934621755 - 186.75116812592546 - 0.024186452828927896 - 263.5697469837348 - 45.420706924365916 - 0.6946753611091367 - 7.756100204780568 - 5.839673314425907 - 0.06732518679742806 - -Advanced Example ----------------- - -In this example we will show you how to implement a custom problem class and use it with any of -implemented algorithms. First let's create new file named advanced_example.py. As in the previous examples -we wil import algorithm we want to use from niapy module. - -For our custom optimization function, we have to create new class. Let's name it *MyProblem*. In the initialization -method of *MyProblem* class we have to set the *dimension*, *lower* and *upper* bounds of the problem. Afterwards we have to -override the abstract method _evaluate which takes a parameter *x*, the solution to be evaluated, and returns the function value. -Now we should have something similar as is shown in code snippet bellow. - -.. code:: python - - from niapy.task import Task - from niapy.problems import Problem - from niapy.algorithms.basic import ParticleSwarmAlgorithm - import numpy as np - - # our custom Problem class - class MyProblem(Problem): - def __init__(self, dimension, lower=-10, upper=10, *args, **kwargs): - super().__init__(dimension, lower, upper, *args, **kwargs) - - def _evaluate(self, x): - return np.sum(x ** 2) - - -Now, all we have to do is to initialize our algorithm as in previous examples and pass as problem parameter, -instance of our *MyProblem* class. - -.. code:: python - - my_problem = MyProblem(dimension=20) - for i in range(10): - task = Task(problem=my_problem, max_iters=100) - algorithm = ParticleSwarmAlgorithm(population_size=100, w=0.9, c1=0.5, c2=0.3, min_velocity=-1, max_velocity=1) - - # running algorithm returns best found minimum - best_x, best_fit = algorithm.run(task) - - # printing best minimum - print(best_fit) - -Now we can run our advanced example with following command python advanced_example.py. The results should be -similar to those bellow. - -.. code:: bash - - 0.0009232355257327939 - 0.0012993317932349976 - 0.0026231249714186128 - 0.001404157010165644 - 0.0012822904697534436 - 0.002202199078241452 - 0.00216496834770605 - 0.0010092926171364153 - 0.0007432303831633373 - 0.0006545778971016809 - -For more usage examples please look at `examples `__ folder. - -More advanced examples can also be found in the `NiaPy-examples -repository `__. - -Cite us -======= - -Are you using NiaPy in your project or research? Please cite us! - -Plain format ------------- - -:: - - Vrbančič, G., Brezočnik, L., Mlakar, U., Fister, D., & Fister Jr., I. (2018). - NiaPy: Python microframework for building nature-inspired algorithms. - Journal of Open Source Software, 3(23), 613\. - -Bibtex format -------------- - -:: - - @article{NiaPyJOSS2018, - author = {Vrban{\v{c}}i{\v{c}}, Grega and Brezo{\v{c}}nik, Lucija - and Mlakar, Uro{\v{s}} and Fister, Du{\v{s}}an and {Fister Jr.}, Iztok}, - title = {{NiaPy: Python microframework for building nature-inspired algorithms}}, - journal = {{Journal of Open Source Software}}, - year = {2018}, - volume = {3}, - issue = {23}, - issn = {2475-9066}, - doi = {10.21105/joss.00613}, - url = {https://doi.org/10.21105/joss.00613} - } - -RIS format ----------- - -:: - - TY - JOUR - T1 - NiaPy: Python microframework for building nature-inspired algorithms - AU - Vrbančič, Grega - AU - Brezočnik, Lucija - AU - Mlakar, Uroš - AU - Fister, Dušan - AU - Fister Jr., Iztok - PY - 2018 - JF - Journal of Open Source Software - VL - 3 - IS - 23 - DO - 10.21105/joss.00613 - UR - http://joss.theoj.org/papers/10.21105/joss.00613 - - -Contributing ------------- - -|Open Source Helpers| - -We encourage you to contribute to NiaPy! Please check out the -`Contributing to NiaPy guide `__ for guidelines about -how to proceed. - -Everyone interacting in NiaPy’s codebases, issue trackers, chat rooms -and mailing lists is expected to follow the NiaPy `code of -conduct `__. - -Licence -------- - -This package is distributed under the MIT License. This license can be -found online at http://www.opensource.org/licenses/MIT. - -Disclaimer ----------- - -This framework is provided as-is, and there are no guarantees that it -fits your purposes or that it is bug-free. Use it at your own risk! - -.. |Check codestyle and test build| image:: https://github.com/NiaOrg/NiaPy/workflows/Check%20and%20Test/badge.svg -.. |PyPI Version| image:: https://img.shields.io/pypi/v/NiaPy.svg - :target: https://pypi.python.org/pypi/NiaPy -.. |PyPI - Python Version| image:: https://img.shields.io/pypi/pyversions/NiaPy.svg -.. |PyPI - Status| image:: https://img.shields.io/pypi/status/NiaPy.svg -.. |PyPI - Downloads| image:: https://img.shields.io/pypi/dm/NiaPy.svg -.. |GitHub Release Date| image:: https://img.shields.io/github/release-date/NiaOrg/NiaPy.svg -.. |Anaconda-Server Badge| image:: https://anaconda.org/niaorg/niapy/badges/installer/conda.svg - :target: https://conda.anaconda.org/niaorg -.. |Fedora package| image:: https://img.shields.io/fedora/v/python3-niapy?color=blue&label=Fedora%20Linux&logo=fedora - :target: https://src.fedoraproject.org/rpms/python-niapy -.. |AUR package| image:: https://img.shields.io/aur/version/python-niapy?color=blue&label=Arch%20Linux&logo=arch-linux - :target: https://aur.archlinux.org/packages/python-niapy -.. |Documentation Status| image:: https://readthedocs.org/projects/niapy/badge/?version=latest - :target: http://niapy.readthedocs.io/en/latest/?badge=latest -.. |GitHub license| image:: https://img.shields.io/github/license/NiaOrg/NiaPy.svg - :target: https://github.com/NiaOrg/NiaPy/blob/master/LICENSE -.. |Scrutinizer Code Quality| image:: https://scrutinizer-ci.com/g/NiaOrg/NiaPy/badges/quality-score.png?b=master - :target: https://scrutinizer-ci.com/g/NiaOrg/NiaPy/?branch=master -.. |Coverage Status| image:: https://img.shields.io/coveralls/NiaOrg/NiaPy/master.svg - :target: https://coveralls.io/r/NiaOrg/NiaPy -.. |GitHub commit activity| image:: https://img.shields.io/github/commit-activity/w/NiaOrg/NiaPy.svg -.. |Updates| image:: https://pyup.io/repos/github/NiaOrg/NiaPy/shield.svg - :target: https://pyup.io/repos/github/NiaOrg/NiaPy/ -.. |Average time to resolve an issue| image:: http://isitmaintained.com/badge/resolution/NiaOrg/NiaPy.svg - :target: http://isitmaintained.com/project/NiaOrg/NiaPy -.. |Percentage of issues still open| image:: http://isitmaintained.com/badge/open/NiaOrg/NiaPy.svg - :target: http://isitmaintained.com/project/NiaOrg/NiaPy -.. |GitHub contributors| image:: https://img.shields.io/github/contributors/NiaOrg/NiaPy.svg -.. |DOI| image:: https://zenodo.org/badge/DOI/10.5281/zenodo.1205048.svg - :target: https://doi.org/10.5281/zenodo.1205048 -.. |image1| image:: http://joss.theoj.org/papers/10.21105/joss.00613/status.svg - :target: https://doi.org/10.21105/joss.00613 -.. |Open Source Helpers| image:: https://www.codetriage.com/niaorg/niapy/badges/users.svg - :target: https://www.codetriage.com/niaorg/niapy diff --git a/bin/.verchew.ini b/bin/.verchew.ini deleted file mode 100644 index e3068ffa5..000000000 --- a/bin/.verchew.ini +++ /dev/null @@ -1,17 +0,0 @@ -[Make] - -cli = make -version = GNU Make -message = - -[virtualenv] - -cli = virtualenv -version = 15. -message = - -[Python 3] - -cli = python -version = Python 3. -message = diff --git a/bin/checksum b/bin/checksum deleted file mode 100755 index ce48931ef..000000000 --- a/bin/checksum +++ /dev/null @@ -1,20 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -import sys -import hashlib - - -def run(paths): - hash_md5 = hashlib.md5() - - for path in paths: - with open(path, 'rb') as f: - for chunk in iter(lambda: f.read(4096), b''): - hash_md5.update(chunk) - - print(hash_md5.hexdigest()) - - -if __name__ == '__main__': - run(sys.argv[1:]) diff --git a/bin/open b/bin/open deleted file mode 100755 index f7ae38a49..000000000 --- a/bin/open +++ /dev/null @@ -1,22 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -import os -import sys - - -COMMANDS = { - 'linux': "open", - 'win32': "cmd /c start", - 'cygwin': "cygstart", - 'darwin': "open", -} - - -def run(path): - command = COMMANDS.get(sys.platform, "open") - os.system(command + ' ' + path) - - -if __name__ == '__main__': - run(sys.argv[-1]) diff --git a/bin/verchew b/bin/verchew deleted file mode 100755 index b717cf68a..000000000 --- a/bin/verchew +++ /dev/null @@ -1,276 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -# The MIT License (MIT) -# Copyright © 2017, Jace Browning -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -# SOFTWARE. -# -# Source: https://github.com/jacebrowning/verchew -# Documentation: https://verchew.readthedocs.io -# Package: https://pypi.org/project/verchew - - -from __future__ import unicode_literals - -import os -import sys -import argparse -try: - import configparser # Python 3 -except ImportError: - import ConfigParser as configparser # Python 2 -from collections import OrderedDict -from subprocess import Popen, PIPE, STDOUT -import logging - -__version__ = '1.2' - -PY2 = sys.version_info[0] == 2 -CONFIG_FILENAMES = ['.verchew.ini', 'verchew.ini', '.verchew', '.verchewrc'] -SAMPLE_CONFIG = """ -[Make] - -cli = make -version = GNU Make -message = - -[Python 2] - -cli = python2 -version = Python 2.7. -message = - -[virtualenv] - -cli = virtualenv -version = 15. -message = - -[Python 3] - -cli = python -version = Python 3. -message = - -""".strip() -STYLE = { - "~": "✔", - "*": "⭑", - "?": "⚠", - "x": "✘", -} -COLOR = { - "x": "\033[91m", # red - "~": "\033[92m", # green - "?": "\033[93m", # yellow - "*": "\033[94m", # cyan - None: "\033[0m", # reset -} - -log = logging.getLogger(__name__) - - -def main(): - args = parse_args() - configure_logging(args.verbose) - - log.debug("PWD: %s", os.getenv('PWD')) - log.debug("PATH: %s", os.getenv('PATH')) - - path = find_config(args.root, generate=args.init) - config = parse_config(path) - - if not check_dependencies(config) and args.exit_code: - sys.exit(1) - - -def parse_args(): - parser = argparse.ArgumentParser() - - version = "%(prog)s v" + __version__ - parser.add_argument('--version', action='version', version=version) - parser.add_argument('-r', '--root', metavar='PATH', - help="specify a custom project root directory") - parser.add_argument('--init', action='store_true', - help="generate a sample configuration file") - parser.add_argument('--exit-code', action='store_true', - help="return a non-zero exit code on failure") - parser.add_argument('-v', '--verbose', action='count', default=0, - help="enable verbose logging") - - args = parser.parse_args() - - return args - - -def configure_logging(count=0): - if count == 0: - level = logging.WARNING - elif count == 1: - level = logging.INFO - else: - level = logging.DEBUG - - logging.basicConfig(level=level, format="%(levelname)s: %(message)s") - - -def find_config(root=None, filenames=None, generate=False): - root = root or os.getcwd() - filenames = filenames or CONFIG_FILENAMES - - path = None - log.info("Looking for config file in: %s", root) - log.debug("Filename options: %s", ", ".join(filenames)) - for filename in os.listdir(root): - if filename in filenames: - path = os.path.join(root, filename) - log.info("Found config file: %s", path) - return path - - if generate: - path = generate_config(root, filenames) - return path - - msg = "No config file found in: {0}".format(root) - raise RuntimeError(msg) - - -def generate_config(root=None, filenames=None): - root = root or os.getcwd() - filenames = filenames or CONFIG_FILENAMES - - path = os.path.join(root, filenames[0]) - - log.info("Generating sample config: %s", path) - with open(path, 'w') as config: - config.write(SAMPLE_CONFIG + '\n') - - return path - - -def parse_config(path): - data = OrderedDict() - - log.info("Parsing config file: %s", path) - config = configparser.ConfigParser() - config.read(path) - - for section in config.sections(): - data[section] = OrderedDict() - for name, value in config.items(section): - data[section][name] = value - - return data - - -def check_dependencies(config): - success = [] - - for name, settings in config.items(): - show("Checking for {0}...".format(name), head=True) - output = get_version(settings['cli'], settings.get('cli_version_arg')) - if match_version(settings['version'], output): - show(_("~") + " MATCHED: {0}".format(settings['version'])) - success.append(_("~")) - else: - if settings.get('optional'): - show(_("?") + " EXPECTED: {0}".format(settings['version'])) - success.append(_("?")) - else: - show(_("x") + " EXPECTED: {0}".format(settings['version'])) - success.append(_("x")) - if settings.get('message'): - show(_("*") + " MESSAGE: {0}".format(settings['message'])) - - show("Results: " + " ".join(success), head=True) - - return _("x") not in success - - -def get_version(program, argument=None): - argument = argument or '--version' - args = [program, argument] - - show("$ {0}".format(" ".join(args))) - output = call(args) - show(output.splitlines()[0]) - - return output - - -def match_version(pattern, output): - return output.startswith(pattern) or " " + pattern in output - - -def call(args): - try: - process = Popen(args, stdout=PIPE, stderr=STDOUT) - except OSError: - log.debug("Command not found: %s", args[0]) - output = "sh: command not found: {0}".format(args[0]) - else: - raw = process.communicate()[0] - output = raw.decode('utf-8').strip() - log.debug("Command output: %r", output) - - return output - - -def show(text, start='', end='\n', head=False): - """Python 2 and 3 compatible version of print.""" - if head: - start = '\n' - end = '\n\n' - - if log.getEffectiveLevel() < logging.WARNING: - log.info(text) - else: - formatted = (start + text + end) - if PY2: - formatted = formatted.encode('utf-8') - sys.stdout.write(formatted) - sys.stdout.flush() - - -def _(word, is_tty=None, supports_utf8=None, supports_ansi=None): - """Format and colorize a word based on available encoding.""" - formatted = word - - if is_tty is None: - is_tty = hasattr(sys.stdout, 'isatty') and sys.stdout.isatty() - if supports_utf8 is None: - supports_utf8 = sys.stdout.encoding == 'UTF-8' - if supports_ansi is None: - supports_ansi = sys.platform != 'win32' or 'ANSICON' in os.environ - - style_support = supports_utf8 - color_support = is_tty and supports_ansi - - if style_support: - formatted = STYLE.get(word, word) - - if color_support and COLOR.get(word): - formatted = COLOR[word] + formatted + COLOR[None] - - return formatted - - -if __name__ == '__main__': # pragma: no cover - main() diff --git a/config/testmondata/.gitkeep b/config/testmondata/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/scent.py b/scent.py deleted file mode 100644 index 0a31c6170..000000000 --- a/scent.py +++ /dev/null @@ -1,97 +0,0 @@ -"""Configuration file for sniffer.""" - -import time -import subprocess - -from sniffer.api import select_runnable, file_validator, runnable -try: - from pync import Notifier -except ImportError: - notify = None -else: - notify = Notifier.notify - - -watch_paths = ["niapy", "tests"] - - -class Options: - group = int(time.time()) # unique per run - show_coverage = False - rerun_args = None - - targets = [ - (('make', 'test-unit', 'DISABLE_COVERAGE=true'), "Unit Tests", True), - (('make', 'test-all'), "Integration Tests", False), - (('make', 'test-incremental'), "Incremental Tests", False), - (('make', 'check'), "Static Analysis", True), - (('make', 'docs'), None, True), - ] - - -@select_runnable('run_targets') -@file_validator -def python_files(filename): - return filename.endswith('.py') - - -@select_runnable('run_targets') -@file_validator -def html_files(filename): - return filename.split('.')[-1] in ['html', 'css', 'js'] - - -@runnable -def run_targets(*args): - """Run targets for Python.""" - Options.show_coverage = 'coverage' in args - - count = 0 - for count, (command, title, retry) in enumerate(Options.targets, start=1): - - success = call(command, title, retry) - if not success: - message = "OK " * (count - 1) - show_notification(message, title) - - return False - - message = "OK " * count - title = "All Targets" - show_notification(message, title) - show_coverage() - - return True - - -def call(command, title, retry): - """Run a command-line program and display the result.""" - if Options.rerun_args: - command, title, retry = Options.rerun_args - Options.rerun_args = None - success = call(command, title, retry) - if not success: - return False - - print("") - print("$ %s" % ' '.join(command)) - failure = subprocess.call(command) - - if failure and retry: - Options.rerun_args = command, title, retry - - return not failure - - -def show_notification(message, title): - """Show a user notification.""" - if notify and title: - notify(message, title=title, group=Options.group) - - -def show_coverage(): - """Launch the coverage report.""" - if Options.show_coverage: - subprocess.call(['make', 'read-coverage']) - - Options.show_coverage = False diff --git a/setup.py b/setup.py deleted file mode 100644 index 806a0bef5..000000000 --- a/setup.py +++ /dev/null @@ -1,89 +0,0 @@ -#!/usr/bin/env python - -"""Setup script for the package.""" - -import io -import os -import sys -import logging - -import setuptools - - -PACKAGE_NAME = 'niapy' -MINIMUM_PYTHON_VERSION = (3, 8) - - -def check_python_version(): - """Exit when the Python version is too low.""" - if sys.version_info[:2] < MINIMUM_PYTHON_VERSION: - sys.exit("Python {}.{}+ is required.".format(*MINIMUM_PYTHON_VERSION)) - - -def read_package_variable(key, filename='__init__.py'): - """Read the value of a variable from the package without importing.""" - module_path = os.path.join(PACKAGE_NAME, filename) - with open(module_path) as module: - for line in module: - parts = line.strip().split(' ', 2) - if parts[:-1] == [key, '=']: - return parts[-1].strip("'") - logging.warning("'%s' not found in '%s'", key, module_path) - return None - - -def build_description(): - """Build a description for the project from documentation files.""" - try: - readme = io.open("README.rst", encoding="UTF-8").read() - except IOError: - return "" - else: - return readme - - -check_python_version() - -PACKAGE_VERSION = read_package_variable('__version__') - -setuptools.setup( - name=PACKAGE_NAME, - version="2.0.5", - description="Python micro framework for building nature-inspired algorithms.", - url='https://github.com/NiaOrg/NiaPy', - author='NiaOrg', - author_email='niapy.organization@gmail.com', - packages=setuptools.find_packages(exclude=['*tests*']), - long_description=build_description(), - license='MIT', - classifiers=[ - 'Development Status :: 5 - Production/Stable', - 'Intended Audience :: Developers', - 'Intended Audience :: Science/Research', - 'Natural Language :: English', - 'Operating System :: OS Independent', - 'Programming Language :: Python', - 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.6', - 'Programming Language :: Python :: 3.7', - 'Programming Language :: Python :: 3.8', - 'Programming Language :: Python :: 3.9', - 'Programming Language :: Python :: 3.10', - 'Topic :: Scientific/Engineering', - 'Topic :: Software Development' - ], - tests_require=[ - 'flake8 ~= 3.7.7', - 'astroid >= 2.0.4', - 'pytest ~= 3.7.1', - 'coverage ~= 4.4.2', - 'coverage-space ~= 1.0.2', - 'bandit < 1.7.3' - ], - install_requires=[ - 'numpy >= 1.17.0', - 'matplotlib >= 2.2.4', - 'pandas >= 0.24.2', - 'openpyxl >= 3.0.3', - ] -) From ab71ddcd5b840fdc4032eeec44d37f9be8be91c0 Mon Sep 17 00:00:00 2001 From: zStupan Date: Tue, 24 Oct 2023 16:20:48 +0200 Subject: [PATCH 4/7] fix docs warnings --- .readthedocs.yml | 2 +- docs/source/conf.py | 4 ++-- niapy/algorithms/basic/loa.py | 44 +++++++++++++++++------------------ 3 files changed, 25 insertions(+), 25 deletions(-) diff --git a/.readthedocs.yml b/.readthedocs.yml index 607de4976..977e0d686 100644 --- a/.readthedocs.yml +++ b/.readthedocs.yml @@ -2,4 +2,4 @@ requirements_file: docs/requirements.txt build: image: latest python: - version: 3.6 + version: 3.9 diff --git a/docs/source/conf.py b/docs/source/conf.py index d50f7a6db..224eedaf6 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -66,7 +66,7 @@ # # This is also used if you do content translation via gettext catalogs. # Usually you set "language" from the command line for these cases. -language = None +language = 'en' # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. @@ -175,7 +175,7 @@ # -- Options for intersphinx extension --------------------------------------- # Example configuration for intersphinx: refer to the Python standard library. -intersphinx_mapping = {'https://docs.python.org/': None} +intersphinx_mapping = {'python': ('https://docs.python.org/3', None)} # -- Options for todo extension ---------------------------------------------- diff --git a/niapy/algorithms/basic/loa.py b/niapy/algorithms/basic/loa.py index 76187d200..e2a286d28 100644 --- a/niapy/algorithms/basic/loa.py +++ b/niapy/algorithms/basic/loa.py @@ -94,12 +94,12 @@ class LionOptimizationAlgorithm(Algorithm): Name (List[str]): List of strings representing name of the algorithm. population_size (Optional[int]): Population size :math:`\in [1, \infty)`. nomad_ratio (Optional[float]): Ratio of nomad lions :math:`\in [0, 1]`. - num_of_prides = Number of prides :math:`\in [1, \infty)`. - female_ratio = Ratio of female lions in prides :math:`\in [0, 1]`. - roaming_factor = Roaming factor :math:`\in [0, 1]`. - mating_factor = Mating factor :math:`\in [0, 1]`. - mutation_factor = Mutation factor :math:`\in [0, 1]`. - immigration_factor = Immigration factor :math:`\in [0, 1]`. + num_of_prides (Optional[int]): Number of prides :math:`\in [1, \infty)`. + female_ratio (Optional[float]): Ratio of female lions in prides :math:`\in [0, 1]`. + roaming_factor (Optional[float]): Roaming factor :math:`\in [0, 1]`. + mating_factor (Optional[float]): Mating factor :math:`\in [0, 1]`. + mutation_factor (Optional[float]): Mutation factor :math:`\in [0, 1]`. + immigration_factor (Optional[float]): Immigration factor :math:`\in [0, 1]`. See Also: * :class:`niapy.algorithms.Algorithm` @@ -127,12 +127,12 @@ def __init__(self, population_size=50, nomad_ratio=0.2, num_of_prides=5, female_ Args: population_size (Optional[int]): Population size :math:`\in [1, \infty)`. nomad_ratio (Optional[float]): Ratio of nomad lions :math:`\in [0, 1]`. - num_of_prides = Number of prides :math:`\in [1, \infty)`. - female_ratio = Ratio of female lions in prides :math:`\in [0, 1]`. - roaming_factor = Roaming factor :math:`\in [0, 1]`. - mating_factor = Mating factor :math:`\in [0, 1]`. - mutation_factor = Mutation factor :math:`\in [0, 1]`. - immigration_factor = Immigration factor :math:`\in [0, 1]`. + num_of_prides (Optional[int]): Number of prides :math:`\in [1, \infty)`. + female_ratio (Optional[float]): Ratio of female lions in prides :math:`\in [0, 1]`. + roaming_factor (Optional[float]): Roaming factor :math:`\in [0, 1]`. + mating_factor (Optional[float]): Mating factor :math:`\in [0, 1]`. + mutation_factor (Optional[float]): Mutation factor :math:`\in [0, 1]`. + immigration_factor (Optional[float]): Immigration factor :math:`\in [0, 1]`. See Also: @@ -155,12 +155,12 @@ def set_parameters(self, population_size=50, nomad_ratio=0.2, num_of_prides=5, f Args: population_size (Optional[int]): Population size :math:`\in [1, \infty)`. nomad_ratio (Optional[float]): Ratio of nomad lions :math:`\in [0, 1]`. - num_of_prides = Number of prides :math:`\in [1, \infty)`. - female_ratio = Ratio of female lions in prides :math:`\in [0, 1]`. - roaming_factor = Roaming factor :math:`\in [0, 1]`. - mating_factor = Mating factor :math:`\in [0, 1]`. - mutation_factor = Mutation factor :math:`\in [0, 1]`. - immigration_factor = Immigration factor :math:`\in [0, 1]`. + num_of_prides (Optional[int]): Number of prides :math:`\in [1, \infty)`. + female_ratio (Optional[float]): Ratio of female lions in prides :math:`\in [0, 1]`. + roaming_factor (Optional[float]): Roaming factor :math:`\in [0, 1]`. + mating_factor (Optional[float]): Mating factor :math:`\in [0, 1]`. + mutation_factor (Optional[float]): Mutation factor :math:`\in [0, 1]`. + immigration_factor (Optional[float]): Immigration factor :math:`\in [0, 1]`. See Also: * :func:`niapy.algorithms.Algorithm.set_parameters` @@ -218,7 +218,7 @@ def init_population_data(self, pop, d): r"""Initialize data of starting population. Args: - pop (numpy.ndarray[Lion]: Starting lion population + pop (numpy.ndarray[Lion]): Starting lion population d (Dict[str, Any]): Additional arguments Returns: @@ -491,7 +491,7 @@ def mating(self, population, pride_size, gender_distribution, task): task (Task): Optimization task. Returns: - Tuple[numpy.ndarray[Lion], numpy.ndarray[int]): + Tuple[numpy.ndarray[Lion], numpy.ndarray[int]]: 1. Lion population that finished with mating. 2. Pride and nomad excess gender quantities. @@ -703,7 +703,7 @@ def defense(self, population, pride_size, gender_distribution, excess_lion_gende task (Task): Optimization task. Returns: - Tuple[numpy.ndarray[Lion], numpy.ndarray[int]): + Tuple[numpy.ndarray[Lion], numpy.ndarray[int]]: 1. Lion population that finished with defending. 2. Pride and nomad excess gender quantities. @@ -812,7 +812,7 @@ def migration(self, population, pride_size, gender_distribution, excess_lion_gen task (Task): Optimization task. Returns: - Tuple[numpy.ndarray[Lion], numpy.ndarray[int]): + Tuple[numpy.ndarray[Lion], numpy.ndarray[int]]: 1. Lion population that finished with migration. 2. Pride and nomad excess gender quantities. From c0b1278355773c20564959e8957500295d5ea317 Mon Sep 17 00:00:00 2001 From: zStupan Date: Tue, 24 Oct 2023 16:56:20 +0200 Subject: [PATCH 5/7] updated docs --- CONTRIBUTING.md | 106 ++++++++++++----------------------- README.md | 5 +- docs/source/index.rst | 2 +- docs/source/installation.rst | 50 ++++++----------- 4 files changed, 58 insertions(+), 105 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 58783bea4..5ebe589b4 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -29,105 +29,73 @@ If you are not so familiar with Git or/and GitHub, we suggest you take a look at ### Requirements -* Make: - * Windows: [http://mingw.org/download/installer](http://mingw.org/download/installer) [Detailed install instructions](.github/mingw_install_guide.md) - * Mac: http://developer.apple.com/xcode - * Linux: http://www.gnu.org/software/make -* pipenv: http://docs.pipenv.org (run ```pip install pipenv``` command) -* Pandoc: [http://johnmacfarlane.net/pandoc/installing.html] (http://johnmacfarlane.net/pandoc/installing.html) * optional -* Graphviz: [http://www.graphviz.org/Download.php](http://www.graphviz.org/Download.php) * optional +* Python >= 3.9 +* Poetry: https://python-poetry.org/docs/ ### Development dependencies -List of NiaPy's dependencies: - -| Package | Version | Platform | -| ---------- |:-------:|:--------:| -| numpy | 1.17.0 | All | -| matplotlib | 2.2.4 | All | -| pandas | 0.24.2 | All | -| openpyxl | 3.0.3 | All | - - -List of development dependencies: - -| Package | Version | Platform | -| ----------------------------- |:-------:|:--------:| -|flake8 | Any | Any | -|pycodestyle | Any | Any | -|pydocstyle | Any | Any | -|pytest | ~=3.3 | Any | -|pytest-describe | Any | Any | -|pytest-expecter | Any | Any | -|pytest-random | Any | Any | -|pytest-cov | Any | Any | -|freezegun | Any | Any | -|coverage-space | Any | Any | -|docutils | Any | Any | -|Pygments | Any | Any | -|wheel | Any | Any | -|twine | Any | Any | -|sniffer | Any | Any | -|sphinx | Any | Any | -|autopep8 | Any | Any | -|sphinx-autobuild | Any | Any | - - -To confirm these system dependencies are configured correctly: +**NiaPy dependencies:** -```sh -$ make doctor -``` +| Package | Version | Platform | +|------------|:---------:|:--------:| +| numpy | \>=1.26.1 | All | +| matplotlib | \>=3.8.0 | All | +| pandas | \>=2.1.1 | All | +| openpyxl | \>=3.1.2 | All | + +**Test dependencies:** + +| Package | Version | Platform | +|-----------------|:---------:|:--------:| +| pytest | \>=7.4.2 | Any | +| pytest-cov | \>=4.1.0 | Any | +| pytest-randomly | \>=3.15.0 | Any | + +**Documentation dependencies (optional):** + +| Package | Version | Platform | +|--------------------|:--------:|:--------:| +| sphinx | \>=7.2.6 | Any | +| sphinx-press-theme | \>=0.8.0 | Any | ### Installation Install project dependencies into a virtual environment: ```sh -$ make install +$ poetry install +``` + +Install the optional documentation dependencies with: + +```sh +$ poetry install --with docs ``` To enter created virtual environment with all installed dependencies run: ```sh -$ pipenv shell +$ poetry shell ``` ## Development Tasks ### Testing -Manually run the tests: +Run the tests: ```sh -$ make test +$ poetry run pytest ``` -or keep them running on change: - -```sh -$ make watch -``` - -> In order to have OS X notifications, `brew install terminal-notifier`. - ### Documentation Build the documentation: ```sh -$ make docs -``` - -### Static Analysis - -Run linters and static analyzers: - -```sh -$ make flake8 -$ make pycodestyle -$ make pydocstyle -$ make check # includes all checks +$ poetry shell +$ cd docs +$ make html ``` ## Support diff --git a/README.md b/README.md index d7c36573e..30a03a053 100644 --- a/README.md +++ b/README.md @@ -33,7 +33,7 @@ Nature-inspired algorithms are a very popular tool for solving optimization prob * **Free software:** MIT license * **Documentation:** https://niapy.readthedocs.io/en/stable/ -* **Python versions:** 3.6.x, 3.7.x, 3.8.x, 3.9.x, 3.10x, 3.11x +* **Python versions:** 3.9.x, 3.10.x, 3.11.x * **Dependencies:** [click here](CONTRIBUTING.md#development-dependencies) # Mission @@ -96,8 +96,7 @@ In case you want to install directly from the source code, use: ```sh $ git clone https://github.com/NiaOrg/NiaPy.git -$ cd NiaPy -$ python setup.py install +$ pip install NiaPy/ ``` # Algorithms diff --git a/docs/source/index.rst b/docs/source/index.rst index 8f56250e6..6fe8156d8 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -28,7 +28,7 @@ implementing algorithms from scratch. * **Free software:** MIT license * **Github repository:** https://github.com/NiaOrg/NiaPy -* **Python versions:** 3.6.x, 3.7.x, 3.8.x, 3.9.x, 3.10.x, 3.11.x +* **Python versions:** 3.9.x, 3.10.x, 3.11.x The main documentation is organized into a couple sections: diff --git a/docs/source/installation.rst b/docs/source/installation.rst index 49cc9e04c..a2302dbcd 100644 --- a/docs/source/installation.rst +++ b/docs/source/installation.rst @@ -7,55 +7,41 @@ Setup development environment Requirements ~~~~~~~~~~~~ -- Python: `download `__ (3.6 or greater) -- Pip: `installation docs `__ -- Make - - Windows: `download `__ [:doc:`/guides/mingw_installation`] - - Mac: `download `__ - - Linux: `download `__ -- pipenv: `docs `__ (run ``pip install pipenv`` command) -- Pandoc: `installation docs `__ * optional -- Graphviz: `download `__ * optional - -To confirm these system dependencies are configured correctly: - -.. code-block:: bash - - make doctor +- Python: `download `__ (3.9 or greater) +- Poetry: `docs `__ Installation of development dependencies ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -List of NiaPy's dependencies: - -========== ======== =================== -Package Version Platform -========== ======== =================== -numpy >=1.16.2 All -scipy >=1.1.1 All -pandas >=0.24.2 All -matplotlib >=2.2.4 All -openpyxl ==3.0.3 All -xlwt ==1.3.0 All -enum34 >=1.1.6 All: python < 3.4 -future >=0.18.2 All: python < 3 -========== ======== =================== +**NiaPy dependencies:** + ++-----------+-----------+----------+ +| Package | Version | Platform | ++===========+===========+==========+ +| numpy | >=1.26.1 | All | ++-----------+-----------+----------+ +| matplotlib| >=3.8.0 | All | ++-----------+-----------+----------+ +| pandas | >=2.1.1 | All | ++-----------+-----------+----------+ +| openpyxl | >=3.1.2 | All | ++-----------+-----------+----------+ Install project dependencies into a virtual environment: .. code-block:: bash - make install + poetry install Run tests with: .. code-block:: bash - make test + poetry run pytest To enter created virtual environment with all installed development dependencies run: .. code-block:: bash - pipenv shell + poetry shell From dae7cacfa1a56e4f368cc5271f7160febf3a7531 Mon Sep 17 00:00:00 2001 From: zStupan Date: Tue, 24 Oct 2023 17:21:50 +0200 Subject: [PATCH 6/7] Update git workflow --- .github/workflows/all_tests.yml | 45 ---------- .github/workflows/main.yml | 144 +++++++++++++++++--------------- 2 files changed, 78 insertions(+), 111 deletions(-) delete mode 100644 .github/workflows/all_tests.yml diff --git a/.github/workflows/all_tests.yml b/.github/workflows/all_tests.yml deleted file mode 100644 index 5e96d4166..000000000 --- a/.github/workflows/all_tests.yml +++ /dev/null @@ -1,45 +0,0 @@ -name: All Tests - -on: workflow_dispatch - -jobs: - all_tests: - runs-on: ${{ matrix.os }} - strategy: - matrix: - os: [ubuntu-latest, windows-latest, macOS-latest] - python-version: [3.6, 3.7, 3.8, 3.9, '3.10'] - env: - MPLBACKEND: "agg" - steps: - - uses: actions/checkout@v2 - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v2 - with: - python-version: ${{ matrix.python-version }} - - name: Install pipenv - run: | - python3 -m pip install --upgrade pip - pip install pipenv - - name: Cache dependencies - id: cache-dependencies - uses: tespkg/actions-cache@v1 - with: - endpoint: s3.eu-central-1.wasabisys.com - insecure: false - accessKey: ${{ secrets.S3_ACCESS_KEY }} - secretKey: ${{ secrets.S3_SECRET_KEY }} - bucket: niapy-actions-cache - use-fallback: false - key: ${{ matrix.os }}_py${{ matrix.python-version }}-Pipfile_${{ hashFiles('**/Pipfile') }} - path: | - .venv - restore-keys: | - ${{ matrix.os }}_py${{ matrix.python-version }}-Pipfile_ - - name: Install dependencies - if: steps.cache-dependencies.outputs.cache-hit != 'true' - run: | - pipenv install --skip-lock --dev - - name: Run all tests - run: | - pipenv run pytest -ra -vv --random --random-seed=32786 --cov=niapy --no-cov-on-fail --cov-report=term-missing:skip-covered --cov-report=html niapy tests --junitxml=xmlreport/overall.xml \ No newline at end of file diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 7ab71ab7f..90fcf48bb 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -1,72 +1,84 @@ -name: Build, Check, and Test +name: Unit tests -on: [pull_request] +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] jobs: - build_and_test: # run lint, codestyle, docstyle, and incremental tests - runs-on: ${{ matrix.os }} + tests: + name: ${{ matrix.os }} / ${{ matrix.python-version }} + runs-on: ${{ matrix.image }} strategy: matrix: - os: [ubuntu-latest, windows-latest, macOS-latest] - python-version: [3.8, 3.9, '3.10', '3.11'] - env: - MPLBACKEND: "agg" - PIPENV_VENV_IN_PROJECT: 1 + os: [Ubuntu, macOS, Windows] + python-version: ["3.9", "3.10", "3.11", "3.12"] + include: + - os: Ubuntu + image: ubuntu-22.04 + - os: Windows + image: windows-2022 + - os: macOS + image: macos-12 + fail-fast: false + defaults: + run: + shell: bash steps: - - uses: actions/checkout@v2 - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v2 - with: - python-version: ${{ matrix.python-version }} - - name: Install pipenv - run: | - python3 -m pip install --upgrade pip - pip install pipenv - echo "HASH PIPFILE: ${{ hashFiles('Pipfile') }}" - - name: Cache dependencies - id: cache-dependencies - uses: tespkg/actions-cache@v1 - with: - endpoint: s3.eu-central-1.wasabisys.com - insecure: false - accessKey: ${{ secrets.S3_ACCESS_KEY }} - secretKey: ${{ secrets.S3_SECRET_KEY }} - bucket: niapy-actions-cache - use-fallback: false - key: ${{ matrix.os }}_py${{ matrix.python-version }}-Pipfile_${{ hashFiles('Pipfile') }} - path: | - .venv - - name: Install dependencies - if: steps.cache-dependencies.outputs.cache-hit != 'true' - run: | - pipenv install --skip-lock --dev - - name: Lint with flake8 - run: | - pipenv run flake8 niapy tests scent.py setup.py - - name: Check codestyle - run: | - pipenv run pycodestyle niapy tests scent.py setup.py --config=.pycodestyle.ini - - name: Check docstyle - run: | - pipenv run pydocstyle niapy tests scent.py setup.py - - name: Cache testmondata - uses: tespkg/actions-cache@v1 - with: - endpoint: s3.eu-central-1.wasabisys.com - insecure: false - accessKey: ${{ secrets.S3_ACCESS_KEY }} - secretKey: ${{ secrets.S3_SECRET_KEY }} - bucket: niapy-actions-cache - use-fallback: false - key: testmondata-${{ matrix.os }}_py${{ matrix.python-version }} - path: | - config/testmondata - - name: Run incremental tests - env: - TESTMON_DATAFILE: config/testmondata/${{ matrix.os }}_py${{ matrix.python-version }} - shell: bash - run: | - echo "${TESTMON_DATAFILE}" - pipenv run pytest --testmon -ra -vv --random --random-seed=32786 niapy tests - status=$? - if [ "$status" -eq 5 ]; then exit 0; else exit $status; fi \ No newline at end of file + - uses: actions/checkout@v4 + + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v4 + with: + python-version: ${{ matrix.python-version }} + + - name: Get full Python version + id: full-python-version + run: echo version=$(python -c "import sys; print('-'.join(str(v) for v in sys.version_info))") >> $GITHUB_OUTPUT + + - name: Bootstrap poetry + run: | + curl -sSL https://install.python-poetry.org | python - -y + + - name: Update PATH + if: ${{ matrix.os != 'Windows' }} + run: echo "$HOME/.local/bin" >> $GITHUB_PATH + + - name: Update Path for Windows + if: ${{ matrix.os == 'Windows' }} + run: echo "$APPDATA\Python\Scripts" >> $GITHUB_PATH + + - name: Enable long paths for git on Windows + if: ${{ matrix.os == 'Windows' }} + # Enable handling long path names (+260 char) on the Windows platform + # https://docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file#maximum-path-length-limitation + run: git config --system core.longpaths true + + - name: Configure poetry + run: poetry config virtualenvs.in-project true + + - name: Set up cache + uses: actions/cache@v3 + id: cache + with: + path: .venv + key: venv-${{ runner.os }}-${{ steps.full-python-version.outputs.version }}-${{ hashFiles('**/poetry.lock') }} + + - name: Ensure cache is healthy + if: steps.cache.outputs.cache-hit == 'true' + run: | + # `timeout` is not available on macOS, so we define a custom function. + [ "$(command -v timeout)" ] || function timeout() { perl -e 'alarm shift; exec @ARGV' "$@"; } + + # Using `timeout` is a safeguard against the Poetry command hanging for some reason. + timeout 10s poetry run pip --version || rm -rf .venv + + - name: Check lock file + run: poetry check --lock + + - name: Install dependencies + run: poetry install + + - name: Run tests + run: poetry run pytest -v From e29e8e3548b96c8b3409ffa6684eedc0fcb7d161 Mon Sep 17 00:00:00 2001 From: zStupan Date: Tue, 24 Oct 2023 17:30:30 +0200 Subject: [PATCH 7/7] update lock file --- poetry.lock | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/poetry.lock b/poetry.lock index 53db668b3..309ad814e 100644 --- a/poetry.lock +++ b/poetry.lock @@ -13,15 +13,18 @@ files = [ [[package]] name = "babel" -version = "2.13.0" +version = "2.13.1" description = "Internationalization utilities" optional = false python-versions = ">=3.7" files = [ - {file = "Babel-2.13.0-py3-none-any.whl", hash = "sha256:fbfcae1575ff78e26c7449136f1abbefc3c13ce542eeb13d43d50d8b047216ec"}, - {file = "Babel-2.13.0.tar.gz", hash = "sha256:04c3e2d28d2b7681644508f836be388ae49e0cfe91465095340395b60d00f210"}, + {file = "Babel-2.13.1-py3-none-any.whl", hash = "sha256:7077a4984b02b6727ac10f1f7294484f737443d7e2e66c5e4380e41a3ae0b4ed"}, + {file = "Babel-2.13.1.tar.gz", hash = "sha256:33e0952d7dd6374af8dbf6768cc4ddf3ccfefc244f9986d4074704f2fbd18900"}, ] +[package.dependencies] +setuptools = {version = "*", markers = "python_version >= \"3.12\""} + [package.extras] dev = ["freezegun (>=1.0,<2.0)", "pytest (>=6.0)", "pytest-cov"] @@ -1348,4 +1351,4 @@ testing = ["big-O", "jaraco.functools", "jaraco.itertools", "more-itertools", "p [metadata] lock-version = "2.0" python-versions = ">=3.9,<3.13" -content-hash = "a9b31ad44183b0540184a63bbbae8cb59084ce58bcf7dd717ca16aad989d0f20" +content-hash = "4a4413b7b673495058351ccce94e90b225514b5408e32faef895057fb89d61db"