From f9870f773a501c28786784801237293dce81ef24 Mon Sep 17 00:00:00 2001 From: gwenchee Date: Thu, 23 Sep 2021 16:17:26 -0500 Subject: [PATCH 01/27] updates for bw --- examples/critical-sphere/critical_sphere.py | 26 ++++++++++++++ .../rollo_critical_sphere.json | 30 ++++++++++++++++ examples/critical-sphere/run | 34 +++++++++++++++++++ 3 files changed, 90 insertions(+) create mode 100644 examples/critical-sphere/critical_sphere.py create mode 100644 examples/critical-sphere/rollo_critical_sphere.json create mode 100644 examples/critical-sphere/run diff --git a/examples/critical-sphere/critical_sphere.py b/examples/critical-sphere/critical_sphere.py new file mode 100644 index 00000000..d3632da6 --- /dev/null +++ b/examples/critical-sphere/critical_sphere.py @@ -0,0 +1,26 @@ +import openmc +import numpy as np + +pu = openmc.Material() +pu.set_density("g/cm3", 19.84) +pu.add_nuclide("Pu238", 1) +mats = openmc.Materials([pu]) + +radius = {{radius}} + +fuel_sphere = openmc.Sphere(r=radius, boundary_type='vacuum') +fuel_cell = openmc.Cell(fill=pu, region=-fuel_sphere) +univ = openmc.Universe(cells=[fuel_cell]) +geom = openmc.Geometry(univ) + +settings = openmc.Settings() +settings.batches = 100 +settings.inactive = 20 +settings.particles = 20000 +settings.temperature = {"multipole": True, "method": "interpolation"} + + +mats.export_to_xml() +geom.export_to_xml() +settings.export_to_xml() +openmc.run() \ No newline at end of file diff --git a/examples/critical-sphere/rollo_critical_sphere.json b/examples/critical-sphere/rollo_critical_sphere.json new file mode 100644 index 00000000..17ad302a --- /dev/null +++ b/examples/critical-sphere/rollo_critical_sphere.json @@ -0,0 +1,30 @@ +{ + "control_variables": { + "radius": {"min": 0.0, "max": 20.0} + }, + "evaluators": { + "openmc": { + "input_script": "critical_sphere.py", + "inputs": ["radius"], + "outputs": ["keff", "radius"], + "keep_files": false + } + }, + "constraints": {"keff": {"operator": [">="], "constrained_val": [1.0]}}, + "algorithm": { + "parallel": "mpi_evals", + "objective": ["min"], + "optimized_variable": ["radius"], + "pop_size": 50, + "generations": 10, + "mutation_probability": 0.23, + "mating_probability": 0.46, + "selection_operator": {"operator": "selTournament", "inds": 15, "tournsize": 5}, + "mutation_operator": { + "operator": "mutPolynomialBounded", + "eta": 0.23, + "indpb": 0.23 + }, + "mating_operator": {"operator": "cxBlend", "alpha": 0.46} + } +} diff --git a/examples/critical-sphere/run b/examples/critical-sphere/run new file mode 100644 index 00000000..2ebcd210 --- /dev/null +++ b/examples/critical-sphere/run @@ -0,0 +1,34 @@ +#!/bin/bash +#PBS -j oe +#PBS -l nodes=51:ppn=16:xk +#PBS -l walltime=1:00:00 +#PBS -l gres=ccm +#PBS -l flags=commlocal:commtolerant +#PBS -N run +#PBS -q normal +#PBS -A bbcc +cd $PBS_O_WORKDIR + +source /opt/modules/default/init/bash +module list + +cd /u/sciteam/chee1/github/rollo/examples/critical-sphere +source /projects/sciteam/bbcc/projects/openmc/openmc-parallel-python/openmc/build/myvirtualenv/bin/activate +export PATH=$PATH:$HOME/openmpi/bin +export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/openmpi/lib + +TPN=1 +NNODES=51 +HOSTLIST=znodelist +LAUNCH=zstart.sh +cat $HOME/.crayccm/ccm_nodelist.$PBS_JOBID | sort -u | awk -v n=$TPN '{for(i=0;i $HOSTLIST + +let NTASKS=$NNODES*$TPN + +echo "#!/bin/bash +$HOME/openmpi/bin/mpirun --bind-to none $(export -p | sed 's/declare //;s/=.*//;s/-rx/-x/' | paste -s) -v -np $NTASKS --mca btl tcp,self --mca btl_tcp_if_include ipogif0 --hostfile $HOSTLIST -npernode $TPN $(which python) ../../../../rollo/rollo -i rollo_critical_sphere.json -p max &> job.out" > $LAUNCH +chmod 755 $LAUNCH + +export PMI_NO_FORK=1 + +ccmrun $LAUNCH \ No newline at end of file From c24fbd1196acc6f43bc9cd86c027d961641c4804 Mon Sep 17 00:00:00 2001 From: gwenchee Date: Thu, 23 Sep 2021 16:21:11 -0500 Subject: [PATCH 02/27] ubuntu --- examples/critical-sphere/rollo_critical_sphere.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/critical-sphere/rollo_critical_sphere.json b/examples/critical-sphere/rollo_critical_sphere.json index 17ad302a..dd2bdd39 100644 --- a/examples/critical-sphere/rollo_critical_sphere.json +++ b/examples/critical-sphere/rollo_critical_sphere.json @@ -12,10 +12,10 @@ }, "constraints": {"keff": {"operator": [">="], "constrained_val": [1.0]}}, "algorithm": { - "parallel": "mpi_evals", + "parallel": "multiprocessing", "objective": ["min"], "optimized_variable": ["radius"], - "pop_size": 50, + "pop_size": 10, "generations": 10, "mutation_probability": 0.23, "mating_probability": 0.46, From efb8a439daa9e858616bc082233c378c3a6323e4 Mon Sep 17 00:00:00 2001 From: gwenchee Date: Thu, 23 Sep 2021 16:23:03 -0500 Subject: [PATCH 03/27] 226 --- examples/critical-sphere/rollo_critical_sphere.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/critical-sphere/rollo_critical_sphere.json b/examples/critical-sphere/rollo_critical_sphere.json index dd2bdd39..35662ca0 100644 --- a/examples/critical-sphere/rollo_critical_sphere.json +++ b/examples/critical-sphere/rollo_critical_sphere.json @@ -19,7 +19,7 @@ "generations": 10, "mutation_probability": 0.23, "mating_probability": 0.46, - "selection_operator": {"operator": "selTournament", "inds": 15, "tournsize": 5}, + "selection_operator": {"operator": "selTournament", "inds": 5, "tournsize": 5}, "mutation_operator": { "operator": "mutPolynomialBounded", "eta": 0.23, From bb18f51073a51f8a41e1a23f29adb014ed645dad Mon Sep 17 00:00:00 2001 From: gwenchee Date: Thu, 23 Sep 2021 16:23:15 -0500 Subject: [PATCH 04/27] 226 --- examples/critical-sphere/rollo_critical_sphere.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/critical-sphere/rollo_critical_sphere.json b/examples/critical-sphere/rollo_critical_sphere.json index 35662ca0..5bdced60 100644 --- a/examples/critical-sphere/rollo_critical_sphere.json +++ b/examples/critical-sphere/rollo_critical_sphere.json @@ -7,7 +7,7 @@ "input_script": "critical_sphere.py", "inputs": ["radius"], "outputs": ["keff", "radius"], - "keep_files": false + "keep_files": true } }, "constraints": {"keff": {"operator": [">="], "constrained_val": [1.0]}}, From 46f2a98c7afef89371032a9fe12117a5d0a921f3 Mon Sep 17 00:00:00 2001 From: gwenchee Date: Thu, 23 Sep 2021 16:26:35 -0500 Subject: [PATCH 05/27] 226 --- examples/critical-sphere/rollo_critical_sphere.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/critical-sphere/rollo_critical_sphere.json b/examples/critical-sphere/rollo_critical_sphere.json index 5bdced60..214f2173 100644 --- a/examples/critical-sphere/rollo_critical_sphere.json +++ b/examples/critical-sphere/rollo_critical_sphere.json @@ -15,11 +15,11 @@ "parallel": "multiprocessing", "objective": ["min"], "optimized_variable": ["radius"], - "pop_size": 10, + "pop_size": 50, "generations": 10, "mutation_probability": 0.23, "mating_probability": 0.46, - "selection_operator": {"operator": "selTournament", "inds": 5, "tournsize": 5}, + "selection_operator": {"operator": "selTournament", "inds": 15, "tournsize": 5}, "mutation_operator": { "operator": "mutPolynomialBounded", "eta": 0.23, From 9654ba264a465a4fc8a4e3394f0078c115e71552 Mon Sep 17 00:00:00 2001 From: gwenchee Date: Thu, 23 Sep 2021 16:40:33 -0500 Subject: [PATCH 06/27] 226 --- examples/critical-sphere/rollo_critical_sphere.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/critical-sphere/rollo_critical_sphere.json b/examples/critical-sphere/rollo_critical_sphere.json index 214f2173..8135504b 100644 --- a/examples/critical-sphere/rollo_critical_sphere.json +++ b/examples/critical-sphere/rollo_critical_sphere.json @@ -1,13 +1,13 @@ { "control_variables": { - "radius": {"min": 0.0, "max": 20.0} + "radius": {"min": 2.0, "max": 6.0} }, "evaluators": { "openmc": { "input_script": "critical_sphere.py", "inputs": ["radius"], "outputs": ["keff", "radius"], - "keep_files": true + "keep_files": false } }, "constraints": {"keff": {"operator": [">="], "constrained_val": [1.0]}}, From e3755ff8080a938188d568f020923b57b67d7c5d Mon Sep 17 00:00:00 2001 From: gwen Date: Thu, 23 Sep 2021 16:58:46 -0500 Subject: [PATCH 07/27] cp --- examples/critical-sphere/checkpoint.pkl | Bin 0 -> 45564 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 examples/critical-sphere/checkpoint.pkl diff --git a/examples/critical-sphere/checkpoint.pkl b/examples/critical-sphere/checkpoint.pkl new file mode 100644 index 0000000000000000000000000000000000000000..b8baebdfbdd978cd226c0a71ec2cfc1a66fa27f7 GIT binary patch literal 45564 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 Kq`_dZME)P Date: Thu, 23 Sep 2021 17:38:36 -0500 Subject: [PATCH 08/27] wider gap --- .../rollo_critical_sphere.json | 2 +- examples/critical-sphere/run | 34 ------------------- 2 files changed, 1 insertion(+), 35 deletions(-) delete mode 100644 examples/critical-sphere/run diff --git a/examples/critical-sphere/rollo_critical_sphere.json b/examples/critical-sphere/rollo_critical_sphere.json index 8135504b..6b22dfeb 100644 --- a/examples/critical-sphere/rollo_critical_sphere.json +++ b/examples/critical-sphere/rollo_critical_sphere.json @@ -1,6 +1,6 @@ { "control_variables": { - "radius": {"min": 2.0, "max": 6.0} + "radius": {"min": 1.0, "max": 10.0} }, "evaluators": { "openmc": { diff --git a/examples/critical-sphere/run b/examples/critical-sphere/run deleted file mode 100644 index 2ebcd210..00000000 --- a/examples/critical-sphere/run +++ /dev/null @@ -1,34 +0,0 @@ -#!/bin/bash -#PBS -j oe -#PBS -l nodes=51:ppn=16:xk -#PBS -l walltime=1:00:00 -#PBS -l gres=ccm -#PBS -l flags=commlocal:commtolerant -#PBS -N run -#PBS -q normal -#PBS -A bbcc -cd $PBS_O_WORKDIR - -source /opt/modules/default/init/bash -module list - -cd /u/sciteam/chee1/github/rollo/examples/critical-sphere -source /projects/sciteam/bbcc/projects/openmc/openmc-parallel-python/openmc/build/myvirtualenv/bin/activate -export PATH=$PATH:$HOME/openmpi/bin -export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/openmpi/lib - -TPN=1 -NNODES=51 -HOSTLIST=znodelist -LAUNCH=zstart.sh -cat $HOME/.crayccm/ccm_nodelist.$PBS_JOBID | sort -u | awk -v n=$TPN '{for(i=0;i $HOSTLIST - -let NTASKS=$NNODES*$TPN - -echo "#!/bin/bash -$HOME/openmpi/bin/mpirun --bind-to none $(export -p | sed 's/declare //;s/=.*//;s/-rx/-x/' | paste -s) -v -np $NTASKS --mca btl tcp,self --mca btl_tcp_if_include ipogif0 --hostfile $HOSTLIST -npernode $TPN $(which python) ../../../../rollo/rollo -i rollo_critical_sphere.json -p max &> job.out" > $LAUNCH -chmod 755 $LAUNCH - -export PMI_NO_FORK=1 - -ccmrun $LAUNCH \ No newline at end of file From 5f6a3b34e7e0772b2fce6ff48384efbb6e5f51ee Mon Sep 17 00:00:00 2001 From: gwenchee Date: Thu, 23 Sep 2021 17:54:01 -0500 Subject: [PATCH 09/27] 239 --- examples/critical-sphere/critical_sphere.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/critical-sphere/critical_sphere.py b/examples/critical-sphere/critical_sphere.py index d3632da6..828be53c 100644 --- a/examples/critical-sphere/critical_sphere.py +++ b/examples/critical-sphere/critical_sphere.py @@ -3,7 +3,7 @@ pu = openmc.Material() pu.set_density("g/cm3", 19.84) -pu.add_nuclide("Pu238", 1) +pu.add_nuclide("Pu239", 1) mats = openmc.Materials([pu]) radius = {{radius}} From ae766306f56da0f4d447b4ad5ef1594fddd5f84b Mon Sep 17 00:00:00 2001 From: gwen Date: Thu, 23 Sep 2021 18:16:52 -0500 Subject: [PATCH 10/27] update --- examples/critical-sphere/checkpoint.pkl | Bin 45564 -> 46021 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/examples/critical-sphere/checkpoint.pkl b/examples/critical-sphere/checkpoint.pkl index b8baebdfbdd978cd226c0a71ec2cfc1a66fa27f7..01688ccf9d021262a6cc4525e729ae508874ce33 100644 GIT binary patch literal 46021 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 literal 45564 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 Kq`_dZME)P Date: Thu, 23 Sep 2021 18:17:15 -0500 Subject: [PATCH 11/27] 239 --- examples/critical-sphere/rollo_critical_sphere.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/critical-sphere/rollo_critical_sphere.json b/examples/critical-sphere/rollo_critical_sphere.json index 6b22dfeb..0c26976c 100644 --- a/examples/critical-sphere/rollo_critical_sphere.json +++ b/examples/critical-sphere/rollo_critical_sphere.json @@ -1,6 +1,6 @@ { "control_variables": { - "radius": {"min": 1.0, "max": 10.0} + "radius": {"min": 1.0, "max": 8.0} }, "evaluators": { "openmc": { From bf40fde8c954eaf52424256fc59e5f9c4409c839 Mon Sep 17 00:00:00 2001 From: gwenchee Date: Fri, 24 Sep 2021 10:53:40 -0500 Subject: [PATCH 12/27] more pop --- examples/critical-sphere/rollo_critical_sphere.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/critical-sphere/rollo_critical_sphere.json b/examples/critical-sphere/rollo_critical_sphere.json index 0c26976c..cc15f073 100644 --- a/examples/critical-sphere/rollo_critical_sphere.json +++ b/examples/critical-sphere/rollo_critical_sphere.json @@ -15,7 +15,7 @@ "parallel": "multiprocessing", "objective": ["min"], "optimized_variable": ["radius"], - "pop_size": 50, + "pop_size": 80, "generations": 10, "mutation_probability": 0.23, "mating_probability": 0.46, From 27cc753c5d824f97881221e77321b3fc42e34588 Mon Sep 17 00:00:00 2001 From: gwenchee Date: Fri, 24 Sep 2021 12:19:53 -0500 Subject: [PATCH 13/27] move backend update before constraints --- examples/critical-sphere/critical_sphere.py | 2 +- rollo/algorithm.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/examples/critical-sphere/critical_sphere.py b/examples/critical-sphere/critical_sphere.py index 828be53c..9bab716a 100644 --- a/examples/critical-sphere/critical_sphere.py +++ b/examples/critical-sphere/critical_sphere.py @@ -6,7 +6,7 @@ pu.add_nuclide("Pu239", 1) mats = openmc.Materials([pu]) -radius = {{radius}} +radius = 4.94 #{{radius}} fuel_sphere = openmc.Sphere(r=radius, boundary_type='vacuum') fuel_cell = openmc.Cell(fill=pu, region=-fuel_sphere) diff --git a/rollo/algorithm.py b/rollo/algorithm.py index 611d1967..945528c2 100644 --- a/rollo/algorithm.py +++ b/rollo/algorithm.py @@ -176,8 +176,8 @@ def initialize_pop(self, pop): fitness_vals.append(fitness[i]) ind.fitness.values = tuple(fitness_vals) ind.output = fitness - pop = self.constraint_obj.apply_constraints(pop) self.backend.update_backend(pop, 0, copy_invalids, random.getstate()) + pop = self.constraint_obj.apply_constraints(pop) return pop def apply_algorithm_ngen(self, pop, gen): @@ -224,8 +224,8 @@ def apply_algorithm_ngen(self, pop, gen): fitness_vals.append(fitness[i]) ind.fitness.values = tuple(fitness_vals) ind.output = fitness - pop = self.constraint_obj.apply_constraints(pop) self.backend.update_backend(pop, gen, copy_invalids, random.getstate()) + pop = self.constraint_obj.apply_constraints(pop) return pop def apply_selection_operator(self, pop): From 50d6ed6697d1aa366ea6f2625d68b4af4361854c Mon Sep 17 00:00:00 2001 From: gwenchee Date: Fri, 24 Sep 2021 12:27:13 -0500 Subject: [PATCH 14/27] move backend update before constraints --- examples/critical-sphere/critical_sphere.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/critical-sphere/critical_sphere.py b/examples/critical-sphere/critical_sphere.py index 9bab716a..828be53c 100644 --- a/examples/critical-sphere/critical_sphere.py +++ b/examples/critical-sphere/critical_sphere.py @@ -6,7 +6,7 @@ pu.add_nuclide("Pu239", 1) mats = openmc.Materials([pu]) -radius = 4.94 #{{radius}} +radius = {{radius}} fuel_sphere = openmc.Sphere(r=radius, boundary_type='vacuum') fuel_cell = openmc.Cell(fill=pu, region=-fuel_sphere) From 8d3629e13bde08a5512eb8ef502939b806db4e3c Mon Sep 17 00:00:00 2001 From: gwen Date: Fri, 24 Sep 2021 13:18:51 -0500 Subject: [PATCH 15/27] cp --- examples/critical-sphere/checkpoint.pkl | Bin 46021 -> 67905 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/examples/critical-sphere/checkpoint.pkl b/examples/critical-sphere/checkpoint.pkl index 01688ccf9d021262a6cc4525e729ae508874ce33..b41eb4cd738cf606ef26568f04cbb2433f49cf79 100644 GIT binary patch literal 67905 zcmbtd1zc6h_kYBrOnlgdx+=C}Cz$BPZdVi$pFW-lNZ7q5vL^Q0-L>W_VJCKXcek$k zKWAouGwfA3_G2T4*v~}^@wo^3JHsf^zRuIY>dU< zu7RN;k>R1i{`~^Ng95q-8zTUYaR?9S5fp`AJ!0(o1ck)Dm)~hk1+)5!agXZ2PBv!#yJvE zo*jKujB85z76h2FmZ8A|Lqhum1q9a%jSA^u>;Z)~Mh1}V>47$^dnynGUgH_IpmPiy zP%qdR0u1_q;4l+%h(bg~L8O#6C8`-}H6t)U!}4eCCAMRLtxgxzCoD8P(w$#$cM(5B zqWXjlbPtGd4+(Q|35#;CEdrEn77%HK3JLZo0dUy}W2Ao%Ba}RHphw|eXcrgDu zbf}9<&nRPZn@^3}hV=oD@Y+0FY4`5v(}3`S{*eR2jJ1pR3kZyg>QlS~j~!?X4o;0* zAAWg29}cb^7FF6k+}I0hymlFqObM5$kf4645!%5oV|awo19>89cVfdo(>a1%B-Qsy=S0XHUJEZaRGGSFniKo!cDPlba*0$BF|+>^l2r(hg_ zv4-L0X^co?AJ%1~!i{ioaADr(LW7NkYq+-!k202aFAUi;h4z5og`vY6!^1*@S%)bM zj%Kw});Iv0g@0tI|A0PN*;qgon38qN(7ZL34UY=(C=m<88}!yFo&t1ZkC==-i~(U~ z1H+AMSc$P~0&RGDY>AODCK}?-m|Y)U3&4@bv1d?Z2#gc4rg|}UFih|;(2O1X<8TSX ztWSanKPEP!dyE~71F^o&F?P^;V|{fo4txYmWrab?Za|g;yBmy+jp}Y{V40xF$J7L{ zp|Pf>60xbdud}IzuZ^i?O8%0W%KQ?Otp-y?iRpTeLQCtS6D;z?a4f9IlO1PbFyzVR z=!Hom4HDC>Mb8Q~(qLjZVY25;38QC>*JT6o^2^p+{UTCWlyS^I8KM=6nA4xg|(g3OdKan*?685o&44jF|6KF@Ec`Ho%FQF*4!4(IQstjI;|owoFtrw7lFZ01l`mMS!y?y6ZROn zU27aWgE(Qz%b6IAZtZ{G+^ng@lt%x|XVE{khCP!hr90<`;6bE2UwgMbk529CIEIsa z7U210Fjm^tSpx=dA^CJ$zxhXA`*$iPffJ^J$RuE3TK@dSom^pr$q;v{{+?hP6_daT zlRM873y!|K)9%Kx(h}31!`^?nYcMgKFcsoV3{-{xOn#n0#UyaT^cyk> z7?@uF8$Nk}D`6sQL()yOMxUZQPtxckmoAOgTFj!grZHF*x9Fc&_V#RaTvcL29K%V8 zJ$ODD3?BI6m9*$pX%wrJ1^dZaE4=>DC>Fy>u}bq|F&M_X z@2Bb?^lmN{>&E0WFNmF$yU$u;>=p63K~pbr4nmZnpP+9fx;WEXZJE}j z4E~iN_*ydfU#OJZ;fO|SVK}LUDma@BE8tErb|On5qgU436~~ zTPOiE(ZW}xEJiHVVz(kMa$xd@tfJf=-4K57WTHxmcl zac~Wvq>)dClYBPf`D8HmoL6!8&OMXzdG*J)R$n!k7*3dcI1_`BX|(=hCt11CY8YDM zd}GeUf&&wd^TVA6R zDR{1rp_6lTd#1{#z)3!vVm<}zN@HVO8bgQ{JsV*Nre-n?6CU;O2Lm?vOl2TGj!9J+<6lod@pH$n>{zyd7<~{Z zw=4jYCcVT(UP)$K5bHtp(}5BRH%Cxx9u*#I^j=omf1o|)8lL(@z;lz}fN*%QlKS`} z#@5&uvJ}-l#xXdwSNG7+-m&JdFlxm(HWfcvemyY5_VD1v2$HF>Vx8ykdqqXN3%aef}>aR5rqPJyO?Fc8usV)02DJnLc)knmRzW6uD1 z=G7x8FcPZ3oE2O(Cbl&Y*g<6e8#HI;db@yr@IWj(d-hT`Fcco{G37oWJUjp%@@4c7 zH}dChQH&}^&jNxPj!!%=$aKibnArL@-DAgL3cfbJHe+JVWgx{EeGhyf0wH2-dsd5` zFrEjni?OK{+q`*m(Vq?yHyN>KzL|W9%X#A*ZE*$6O9;8WJ&A zfG;$a>hK%leHebjqtxS{UOXN?^|UTt_FX%Eo|yhRIUYP7wJzRYPZON{MiylG6b+L! zTwYsTGFL!;*Q_wwCmMKCwCI$DhpI}EnPvhmcKS{=lB~`|BoJNeZilspMP>TTN^fsiyVl9{7JTz#@6lZoMQYa9_`1t=4_Droo7VV$ zjHK2Ve0tJ)W%Z$S7kqioNgE>;^-gcWzfM^b7oL#rf*-1U^y``=5sgni|1nEgU+|s| z-#%yFp6-Hw2-11xt#U2B1)tsbb2iVad{i`BU*jkG>w;>G%S&tgKW0Gd3qHAcY_3h; z(p~Uv6-UJXn0h0<1s}E9eL_)Zm-P1Wz&@*2`A?Sm_dfxAMks zYsK5O>P(C7_nfzwG}cWd`a7{?9AtatVBdomt!i*2dh*KAexQHtWxd5@oW>YSq9-pP z4W=&hrh0$ksq;zZ*A|k5yQf%47At$$cKNtB>2*vyv7juFsc_qyk9VclG06+d{ZCGg zU4P;Qk8ZtVk{6hVKZL)?G~*+6%&#ppiDRCLh32tof0XmC%UAto>sw3#vEYnuK63fH zgpKKSO!C6>hjPJJcj{Ss9h1BO^{Cd$uIV+&F~7DDC5~Ay7NS{Rk99dxDBX@pUXbR= zocPb^;!D%(nB;}&%fp^E%Grz5t#2{O3)D~5PS$+<>K$z{zqU{%j+reMs%L9@{+ro3 z-Hu6Ku%6oOSbBZ?`ssB{^1^lW((thU>32->0@iCt-tV4SMdtrM3t8eAvslRP{I=KJ z=j|(AGV8n2d$FK>YxibL?^|2b>zL$)?Wv#ztv}Tf>tgF$O!5ME(XloDUF<*57V~Qh zUE-LjVxhad^4H==J<{D`wu=RC_f}WNFRGGm$0RR&_sl79(l7TzUNY+)le_@FckA5s zhw;)F^J@!X;+W)xu>Roqy|oIa+cC)t;_$!zc;(S;b$VM&^1^sng}IG#T^EZ5>m8H4 zKz=rOLe||Qr55vR3uWS%1!AH6xNPA+o|H?sW0DulTaW&=>B7$)>2*x(E>OZiznhAiZ5Fd4b(%?WG3&LZn$K-3x7VRXd#y*Vj4ue@1h406h3wnGL!rYwXBa zb4|DgYwM_#SdPASzItDO-(tz}a1JmvXDX$+7KAnz10XeKj8ixqFo2^BaLU2XBU-<0 zY2ZwqQhm(%EYW(mPIVXRloJOYDbf0W;v+umqV;F;Z`!I;8V@PgMY-*|v8nPPVtF~m zr|;htlwlV#6pYqan16OD1UoU<>i~SrtUWbGrx=QTwu#o?3CM5zN~}%QLQ0mihssCmm(+fI0|kJ6Pt#p{#{PF1=oNyBgDP@Wz9+9Fzic6HTlI%VIy9GR30 zw$qwM>n}b%8x5gbjm$X*K3;$C0hia^Z`eXf_%YBfT5tSv`J_&n^mBQCrC9Aru1c3u zkE$uhi`LH*t#4R;*iDF1qMhG7ow7C0zKY7*7B%gZbFW%tRqlFCuN1A{(lN&foid=r z)3!?Q#Nv6O{4OhY>6DlPI(mA-Wy6= z_vHhfQh0ZgoihGIh3wJ#_FtVJLd-tX-|j_%;``s}6c3m85Y60W;uW1zD6~dq#W40@ zfKuyoco}77w+{`WN}aE5h0ux9CLGf#=PHML0G7iviYFzyS0sjg82yT9TVMLc`{khw@uswuMp8p*_R=Vt)q*Ki8 zm)k0Bo1ZEkt+&nG?-}4f%OpbMdcI~~q!PU-bAf36{JNjw0I$3*?@FEGI4u%#5w@!6 zQ-B(s9|dK&wx(Y-<@eXo`IUCzl{!In{k~8Z&Zl?dK!#F?XWZTKIT>sm4+G=zYOy3w&(#`?^=BWL{Pu+VN}qZ$EU( zj`FVtM(fwk%J3B~d;M&EN~es`oe5D&4tSP9IX1bbxAOk<>)uM{(2-T6^`}1U+YZ4_ zjF_9GQ=CKmhAMj;jzTAMyA!fVr?`IZ3w^y?-S`_i<=;l9>nU~x484{8GsZ&=9|>r4 zTc>PZQyH4bmYqRwfMraXuSa!Cu@Qf_i`G9s_#0gA5;naUWPI+5@o;&6nR+MTBXhyZ zN$|0D&fQp@vT9O&sLRWL=6MXzIQw;wkX`ORxuW$Uxdvt~g( zid{V6%8PCAF>}%Ow>ss^8~YZ@$e5#!%Gb=9^C;h5WUmmd-@CrSaTp;gR_z_FpBNK= z8+q!Kdkr5K?kye%?QvPXR?&K!T!w`J9eRJ`Z=F(bMzi2(ecT@h&jIwcbHqcPGOzj^ z==>XY4<8NCICF`eI%P?jR<)z`^+sJ;p;I;<)Wev#J9Y&$?KapbmA8-bjn?0Q}*Qx0XB(i)~N zkJie~C36ZXzFQjfR;v1RbyTJoiq5RKX4+OliOli{;}JLzNL^5$a!JK^Ka-m(XD%F$sZ)_5ub+w-)_&#*;&D>&u_eAx7_1XZ>y z^u1fOe%|D{`*q5qUbku}Ge70Xqih>-Z%DL$&F-c!aJpx!-d-6R(7L%&^!_}(vf<-! zlTx$yihj}hE_D{eJe=@;6_j$4%Mi$VuC6nOD?eT|gRy_=y(e>Yifz9?!Fg4N?Yjsm z#@+dd<7MtA9TVXrqKfheW__n~kp9{gJ3i}_+t+vWQ0BGYQ&MpVTjd_D_s-z88UjA? z^u*RurFCy?x>wrlnyORUd3G!ttv2Nbp89F8V;Xj5e#TNU3Ct7}d zH%g~?)hy+#{QWI!YsIjp7W7cNQvD&Ht30N3QknGn$C{Cahj1N|P9h}P#gd+L%-iI{8)(?}2B4jUoh^$&-z0oOLqg0|6V zdwm!tqiVX%04S{W3>Xa8&1}~VhNs&z&H&^euxt{1lx|-M0|dX0goYk6qp*$A7L`3uM0w@e z&7CkfJy|*mCa#0mhXlejFzD18Xuj2ZwuP~BehK*Arrs==5?Xz8Tn=%EkNEm0eDuDN z1j~*}t=}lh^dAZ&zwTlJPGVW7#yr<4Q*w`oDs6k;2pwT=>&@kqZ5>SgmDT(F`YFp} zj+m7i84`NIRJQRZ_OICyl@{of@W%CXM(ay$I)M|*<;JUEu6dC8O{7w4Qt=_m{lqok zwAk3=xB_r)xEx0AGlRz1EA0ZjVKkT@vtk6`?Jl-MXI{88@-BR=t-KcN{^#3`Q{W?_ z$@N9>F{Dhd)jDN+fq5{wKkj>Df=;>Bt$AZ*&A=7|pglL4fn!=|n`y6gO7Xr;%0=sU zxkgO~M_p*)uO#H3Tur(5XnTZG;mb~#0^85O0fWx|<9D4h@ob+K%IT74fN^5ppdAqTM8$f4!lKxDRA=S< zpT53|lbx3>w6*RButD6cTn@WvsShKdQ=X_*xK^~@>C8sx{?E3492%`RjQj-N9(>>e ztan>P#bHNmaBccE_~<{ZGft+?N^V>nzA*3H2On)~EroG0_R}Z05jcN75-}VSOI;11ywX@vc+oJaY>x-G}Tirrgbb7-spoHsfFFl-y-XRaCl1E{3r-vT-$BD6R{7od6%##_w6D zQ{H&5Z>kK{m4VvvUz-T?#EB){+bT_0_ROhFsJN|?^2jBulXCEM_GZfA!3$wPKCT>r zWyJm&KguXq-X%iX0nM*MUEPej8=%zh)~o3Ty8(|f0-?mD${!+do(;$p~NH6H8$6va(0ata} zik&R*)Hzs8eDBjSyArOS4y%jqGm0m`?D*5Zw(@P;*I*?yy9W?d>3#enEJhcv3{<)o z`2bb1vhG=&l6$&UiHvOy&zJ0A zD;zuf5ARBVGvEQR6Q~y+tabI(!Es=C*p!NSm`cE=HaB0JsF)0?=Y-j73*c5;oYJ*f zR=oACBU4oS6$LK#2IAg09q#B8u#eZxrDO9i&7PI)GPF6fp+Ua3m(@%hCrs?TuLurI zPb-%{QMf%}vc0`_qhq(dDkgywCU)Lez&>8LI~JN>Y6jhLTX3YGQ^M1~R7?UVOzga` zfPK6^c~70!#YE5hI$ybD+@W}=m;_Fk*m++8!`|wb18s~7-A|m|Q|CJMOn{0>;DiYd z{=%^x9^A+4joslcd)JLuaPMFwHU;)Ek)0%xh`fmy+Oa(JE{+hAh zK2@FsPMFwHU;%@l?DL;pwB&gzlh;?}MO2})Yb=@K1x}doC~$IcAFoU9kGB74(La^R z+x26_&@4}!ESVAnPMFwHU;+Dhy%_0hZrtoJVX`0mrr5PCZ&geJCrs=puz-EM?kwq< z?a+SdtoEOO?O#7Kypsx@(h>w{n0GF95q1H4(YY(hsS7#FN!5;$RE2Z#j>t>Ei5w+iP+5T;Cz zKaHvCTu#L#aKgk65DOR%U%M6j5t`J3Fy(BxX4&-j-Be5hCrs=Bv4DNN-unMLWlC6C z!jz+4t|?Vdo>egkoG`he#{~?d%FbFx^ews&rkpdR@3a>!oSxPc!!uA8P}5;$RkL&k6- zfd_{Z3FUJbyFR36?OeuJTU>I+V-=IY2@^YZEMVw&19p6?yComVlapanJt*?*B#YR0Z*~SCr6SJKy#?tC$2%nAo{w0Yfz<*$+)hxJ8&; z+g~|Vy+m0RlfVfRJC`hAAFt>0n)zK1p{MRhIfvtT zlBZmY-`w`T?WW3;zzGvOmn>jdOw{RB;or-2A(&-GhaK(vsm~<~oG`I-$pVH6sdcud za~fYEdCC@Y+os4Qb?F37nAo{w0sDBpELr7fw$AhoC3(zu;veM5rz)Mm2@@Pp_VE_5 zkJtNl`A0Zys zExYi}v`d{QffFWnJX*l8nE3KxWS%_q9U?hH-7hcvQAw32ffFWnJX*jostmn8<@c_X z$?isDgWsypDkgywCO9YU<1JuVOcdQ%*6${rkaAo;UbN+~qbeqW6DBx94HGvH4tXkA zXWsj<^cE$5`y3-TT<)i05;$REhpGh(L$=%UmD{H6Cmzq)p=Wr3qGeP}0w+xDP_=*| zPko~Nn_Q)D7Ra9OW4`Nod#IQMPMFxCY5~I;tPj_p%xV3Cf zmZggqIAOx0*vY}+u-mC31&`a^PG$1e*FLJ`pQT<13Y;*pqu2uW@w(e&!__zkT z1wC3bD3!@OL(=!_V_R&tWJ(Y?VS?k@KFPs-ydL%4mvdHQ`fd>0IlXn!Av0A>0w+xD z0JnfauE;g0N4ZszBu}~9&f1q$#X-d+aKgk6a0?jb;B{*tDbG8UfnH2Z@{ue4UOMY@~SFN0w+vx$lJ$Tz|ik%x>fb88AeLyP3Ggb5CX`*;f&`kn2te`>z+ zAWSaa8;g#Ki&ilSoG`It;sS=*ymp?q1qad>7i2Hox`ge9zA7ex6DD>{T)@yozbQRD z%f2Le(l5yKyXW%pDkgywCO9wd<1JwD(~P8Pd;RGVG)Xcd#d2@@P8hw+IA z2R~gISLu0Ma`4ydjrXciUFwEdGQ|s=FyZ0yB+%; zyw05O8t`li5%;{EbH@zsl(n)dPXZ@Q>`1zRK?L>ddGgZ)dPDD=b*J%pk6UUcjuR$! zBwYjtrdBy48qQpuS~~B1@za%$6IZL41WuUPk#qsWNVn&65dlCsWZ*vF$DUsY9JHN?1%2t(cfs1@&dQ9XNF!Y0}2c8Br zqc1sgd*oCrB9y(^Q+j)ozzGu*xdjYNXEJZdeRVGJWzL2d%jaDftICtW2@?~!1q|yx z|Mm7$JReggAHVTqSF6{@IXO<4n8+<)U+Yu)1Rjqj-Z6zRYn+MTWqCL5r z|DlmU$u{qykqie<#owA;QI%(blRPu&TEIA3Dn}a+`b6@aYyQh_B_^m>a{?z!Ou7~@ zj3@Q3uL;dFo-kQ=7lkdCN!J#4QKblz_FQ28L|p=+wfVE;63q!jjs*I2`Xhl9El1K; zXU&PUUxVsw-beejH6sWJ%<>45Q$Nq=`+`-fY8E)D9HuA>7`jWJsri+6ZEO+sI z&K0v|y{wjj1Wvre)L#L^u+;S9q36#U67RURn)>0Nv-WB~bDS_S^;ZN(KX(~*`ouxP zWLVb9GsEX(!5Z?OGUi=MMpOadoN`0f>N0YiJtIQ{mc z{p7~h+s%DluSTWSZ(J5QVPcZ7fT46vT9$~+L2n=2ZWuQldpu5+CxH_t{;EnI9GH&o zDE_|A5b7r@#v%}d<))?G9^rL7oQx#T)L#KZ@@xe>fhJ#X+wuc{pH~&cz;VLF)L#KZ zHFdrJ^L=l3!jyeQ>%lWu|EppWIALPyuYjSNTFr7gyy+)l(k`7mJcI5lyTqD76C_@F z(9BUIa`Dj7>bFh{oaC8lx&nqgZw$VgXOJz)v)h%T{j<6SsY)+!!o)OP0Yi=KpL}yg zKmcK~W&{8=R~`YhCscE1It_wwYxbklpf!;|qqT^n`E1X8lFn!#$C{JqjFz+9=Ir`$ zE-LQ`oOp-nuL6e2scp7P-}<*A-Z9+G5SwX}dYgg32@}&_1q^=9|1$sbp;SB1Ik3|E zXMyTFHh~i+roRdp@-%X3Rh{=olBawpmD8>As0Raq6DFp=3K)jp`17ZSC#)w-Ie+hL ze$nxx+D{xOOiX_j!68q*BRsqGrLQO}P^ajbhMB!pOadoNOn((H+_%rj^dkHN-TI*2 z8@0w7{!&Z%Zd)2_G>1AZCjL@OnQ1=pQ?_EZh8-hns7fbrQaYx;3K*UYoLE2h z=gwaKXs^VcDkgywCZ@j%7}m7oH+1{$Mg+-Iu93}V7RuOL#UyaT#PnAI15>$vS(?nF z+g7sAnz+QbhkBY4IALP1!W1x!N==>ft*=>zJ2agCrnI#6)-T}T3k1C zo4+VizKeTJ-_+`I4vrHhroRdpm=@LQ)$Kdou;5nb?BeAk)MKu|2@~qC-U5am{QIlH z=L+v7dCHzSc=(=nUsN6!IALP?tAK&&S=PzzKW-;XxiTb8>w9mvib>#viRrHbhJJVV z{-k+sQH05$f0<)(+iWT(ffFXCzX}-UQ>WRZr*ul9Oq#t#o&`a9m1jZi&MHR&kyVal z%|aFQRC%FljbZ`PsjOIJZ&rR=iQ#G`Sm4AvOe+;Iv?8|;S6zda5btC+{yR{)-$3PO zffFXKmGa=gRQR*)-Fu@5Q@+cui+A`#y%k5`go$aT0*28$smhvdF9r}M!@G~)PdCwc z!#BqX6VpmXaA=PuC$wrlO(ql$S-;6ciLqxuDkcArLPu`jF-`e_3Ayol-1x zi7@#eS@d)i8l$ZcCMyDvqA_YmvYfLqD#(-YCwSyJdpT)8+6#1_1c8eRLMEnG3K)7U z+p944mzbDZX~86|Ces*WF*l%7%C%;_OPDZe;gWfzAlgjk%MPSQK$0|H0U)(TH1#}l zcNz)QM{}SQNwc6@)d-@asu~xinP)8~P$E@Kbnmfi)ei3;Y<-~`ngmW71QR9&3|p9j z=KqoRPI`tWtVWO|t*OS;sS+cB`k4Mm>6RNYrF6@U7)d2J8ct+h7~D$ZZ-#K3xRh;m z6~STNa60qn;J0)TG#otl+uI3eRh1)f!URerR5K3_OwOw&)!1J=%?2a;86-)o{49-C zpgx+d7^~!zKxj;VN}wsGKP78LM5# z(Sm8#FEKH>(Sm6*WwK&a1fkKIQBfX$K~qfs_zUu(RVk%Broi3|N})APQ>(_lV_*r`vPhEXrK|m>#Wj5{PWj})`XyIq8r!3F{RTE7N$+LFy zT7Cq9P{kDcOH52Jw5Sof@5}l;F}=`&X;PYbl1Dw%3$1wqCapYBFO*jvnl&O)%(+B?6yNrp57A~8ZPM3jvXyLMxo1Whqp)t2|ob(~47aBMWGh(I-W1Cm+ zMw35K{?hQ@HRe{16DFn?8aRw|>#o%&9si_Enl+;3T&5RVxP;y(W<7F$aGu}QfA&Y< zBu`8)6tIuivr{_X3ySpTbTsoMw?|M4W#<++GIQg-%4(MgoFvbrK>_17$fkC!s(Jj9 zOPDlh;gYmFmX>pwG-$z;c4wDe0-~Vo62WINX3LR4|Fb5NR-T#QXOZV$Tjw*u&w^=2 znl&O91f)J|3L-}WRZotT`rX&P0gG3pxaoqov-CbF5~ew zj|*wsVn#J15wbbWtFs~2L10>m()z~vnc%>nrF?SPOJ1>@RM5!6-V3_hMs>=P-6oY$4SfO zf**&Wy)FCaua7$SY9w>aOrb74m|3_V{rpbfUXI_(b@~IVw38S_rSDi;<3I71}6QNsRv!@fFmkPqej^NOu__OpsH@^ zK1}PGKp<2xy{DzKx{nCGkZrt&(y?U@oxrr~)^aMu%Hn#VJQYey3e7%{s&69)>V+0# zQQ9K}>V@(Mapd!tt^a&g*9gZ+jj-*B1`b2%U4AIDN)@DjJo5P1+Jeh9m>5o&*!DyN z4-QP3n}2COH#cS47dI-QPYE>>#|abYi%_>51}6J*H9QZ~Ga!bOqdV29kX_Bhal!o%9JPpj`VPgb`QEe(<`1hiYOT(`KpQLbAn8UzT97LhcSaCyoAP0^x3XcknS z(NIK`XEg0dDbqW)R}>NDf!>NpC?Z-DNg4`KM3jfZ6WLnDT~u#Nfewo}X$Hw6BEr}V z*5zIJ;DOW(GPf=rry+oxU^rnCA|iu<$u;oL;}eGxrrdw*TeYOXL{-xiIAH=Q5stX< z;ILKZq*JaFr|5w&>xUiC7om}Jw`1w>KFx|rURuq7&}dorX%9P~DO$9$#IB>gAFB@2 zBp5hOO3y_^4nv+DCeEqmWq0wTnuu71_j?9%sS&*Y|K@wV>x<({v z51Bw;gwo4QU1{kx3!=3Yeqjx8IPf-fkOW{sGoVFQFli(x}Ed3mG;P0_-SR-^>- zp*1OK6_oEUlneTp7F09OT1cNxlgJ`Ou>Dn!VAyi{2)nUbx$e+XTta zD!owqak;!m0Hx5<&swKX z|Mt=yQok3=z;VLFR6qgaxG-ZwtypQPdGN-OZEKmKh~OwGh`!o*ZS z1BZbr%l3O!|1C+Fa__5rxbEe3DkgywCZ+-k7*<%X9@jisO}g2%VgLjE&!V|&jzx0E z0;$iUV;#vgr|+i6syrJwPV&sPJq|IjS(C+KG$j=LhNm|r6#V3r_E+pN>TmU-00YNGtz#y+;KyO8b^HEd;Y;az z*$hc*z8LE)8-RnCuh#dfA<%c{=#G?eP7o7g~T=%W%TPr9ln@Q>F!PLzl0i zOb5Q!Tje)bqiz{an7A~^g9DS}&bABRN~?ndmkLi@sD53Cf#ZaUOM@InKh-;%ZGe0y zqcx|SH_-|QQP8|us&LI#Vz~mx1}1h5GU*eN$D5YHlIpC@8GUM**gbXH-NubrcuodCzZpsJsupqlc8@BHy?Ut!EkUx z>oI1dnu+6tiEDct1}29M8?L^cOPgLAa}~M_R6UEi%8JsXj3<}g3O}QaC;Qoo8bujT zuF(UZ_AZ{Jen*>uPk-|8V-2{p0hKk^Tct&!~{PP9GL>Vx^$4Q>JG{|AdlVgtAvDt$t)3H}go?kz$X5u(u;?f|8u|`%O&*?ORGFdT_ zf+%RsNUGIHK?}5Oq=Ri~@>bNXS{k%s%0OvQo-$YspHRDu9}4fmrfEJtY+ey4rQh%G*5?}3e9Pue#B(pIPo}0iQp#=L+KpX?R|Gn z+DUQjV(l$+)$e07aGWrKz6eYl#=0v$H!y4(%@b=?mJiU((ycJcjq3AwKJfS)Us&BmIZnJIL_`)GypwV6o7yMZQ19%2UaMxU zZ)zrv6DBSqau}HGSB`LZYc4VEyHsh>b`2(m6DE)np~m(z7;CIo$@QKCDAS?LfBx*; zOU=Y_!UXyvFmV`|9Q=apb5TLgaKN?6xJ`A{OdKanTyEqrmhM}L4@UXfL_*$mzSq@E z2N_P7xZKELU~(z5eo@1}Y3a1vW6HKFoY_HWv{;i`5eYO!i%9#z%Ra8TQk`dxlRSfz z2!7-+Io5e9NzQzUs1 z9l<3WhUD3@DLZwEcJk6qH)@dbO}7;dLR*8h>ZU*sjS!Sb>|E>~0`mQd~uh7iPY;Wms4@+2hBVMsnhqmo%x(f7X?4g|W?@rzQ| zKgS6ZXqL#tf&-JY(}504#!D4YwP(KS>SGXwgA6B3T*BlqFgecLJTqq!VajTI>Bs~p zb?X*5VPX=dfZ+}Li$9cYy?X^=GVFh0e*3T1gA#@lCLv)m81iJ_ZGHt?y6wZT|IwX) z2l}b~#BsvJB}@*ZpB|K3pWjc))9%j&n>uSSF`O`gkO>~&&tPD3`gw8EXGLOqnW<$> z^~P(%eufh!P&bi@!RYafrs!?=DU;^Cn|Uv7gdlU8#%W;xC*EKl|$+Nv6 z|Ip;qSSMgZ21V0iouDb1n={ZngLrAqn0B61pB-RIpi^4heprz`kR&a#XY~ldw5b_Uo^jS4ca#LC&fLP-a(_gFq|;)?TI`%Fge#A;oeAUW&0DFEs50FO~!G;#3f7) zV|S@y+v=V)X(mR8U)ij&AmTV-;u0o@vE@&2*}3-)Ege^|)TNUIFKm^3d!j6OB~m8M zE)2awmnonE zhPS><-BPs3i1mcYaPV_E+k!S~=W?7daRrpaP)#n=esn(njWTIInlLw^eE=0uMd|~Z zHw9+jjAUj<1+*yusWZFgasaAPdc=d($Q4le5zk?oXUzv#=2A4zpnaN4lRSIKV zb6?f_D&qxCT!vz2a&RB7Yjr-gUJ!JOCa>AD&2wn-Aak1MlH_5E`ns>nmtE=_<2Xs4 z>zW*f8gn}G-u-DqntWo0LO-&-S2J;(FmYXz!@y+!KDgnL-IVD-N&jmF)Ccnn94Aa% z*W@rTWpY`Nx%@zhX@klBfvq}E2N+J6xUR`zEZv-mz5NW7$%-zDx~4pkTM-F$O*xVk zqdzE`7NfuBU|?QO>mI~Q^9s4{pXWL1re5_K_A{J#hpUww#u{50P(HCA_0Ik$p2Y%m zYCm(FFmbh#!^o5vlcAFjWlHQ+X5B;e8{Z8aCrqGO!l=e!WO`nBao`8alrSKBo#`4% z495u*moPaDOm-h#%75uWnDUOR5v1#{78V6gn95_G1Pt%|vhU)*=9qL$)`|v!x~AM9 ztcV1PX8I$6cxe%7e@Il%=NgB1I8F-6H!^YiD3Vs*s#+1H5vrN2@{tv zd2nFT*J__*p|oq+ict-BH(HEpTI!HI5r9r^DC596wE==;^z~mgCIO>7)=vK4zFgbCYFmYj$!@$HI&po4g(i|ax ziQ|Nc3zO1vA>C_Q6eiQ%h*6l7BWadip3zX4lH`Rk7V3i)kw8~bAFpP zIcYC*!iSpe%Kxoq;y7XAdLf4~PqkKG+Mbi0@V=aRt^J`e$tI%T_jyKetheDH8nIWjuR#>B61j*9G4l3o6bvl z`ri-8u%)4hDEC$?x&w-cT*0Fo8RMQ5tbA*V+5;RH`F4ObxroSN$hYpeQ-z+PG~bEe zcf4$%ablL^gbAcXT&J+$=*vR&D;JV(w-c2=J|9}8&J)K86IT{Fj7+<{`d*;-afXCy zTkGH2r)J_fVdBanhmon+w|}x-lS-#`=qOdTKo5bYXfbqH)hIA36A=w^qc}s8*JLt# zWES^v$N}=9xdZ^I_i>uHsGoptp%Iffk6Z2&-ii)EE==c2JjD%|xWZ6sBF2 z$qGNBG${Kqjj0f845dMO>kGxPX2FF~K_JA^v*6fXalu93*;Qb&|Ekq}0#$w#IPoK> zhVXaCcyM?jQ2fK|=Wg9gXX&%5O0VfMOC<;k!u3K~32H4RuhkxriQ%Lmpc;Zp zmPffeSTTU%mPdI2v!V~73Mls>D^kKOk5Wqc`v$-A9CXpb5k3h5C#{SLegcN>Qlvz; zYVsxpE9wEHK8t$b^{Pr<-N-@VQ#DQc(iwvl$)n&WHv`S&a9hd<=F+b zJ-HcZrli%IQQNcZ%|_bZt!4s+PsOy2G9^wM>2dJ3ML{4>94B?p1wRhspj+7(9@$Z1 zY9ICHd^Qaxh7%?s_%Rrmoa^-d;wmvEJS~5_sK(Y&juR#>_;DDR>|2c=vwaB7Q^Ir8 z!uD;|dEz)>;({NCk!irCrn%g zp(CdEnHnBw1D^V@J-&BSrS#5Xc> z7?^bLPxSgCuR+qjNdl!X{e1vLL5n_+@bA934xQC`<~YeSR{=Q;dDa&{()^}$upn_> z=x9H!F`MCpiK~D-I562|%jJ4a5;&|F>QDughdRv>045)fljK1QgpR{uNS^5i^kG-7 z?z$OS1|C$oMBs!81VZ?0wLCZ+Spm_U|@16pLywu4N{)8?q}q+7HW{v z{k8UxFRKrrK3a6FeczL2J^5XoXO5FRgXjo(<}l>he$L!E?djtlLqdi7J^STUGjW_S zff9+OXTgEVdEl~UFQqj^VzqPUZ)u#=<2YgB!X$@*$?@>8t&x)8mM}Xs$6Qy9JTaUw zabc1N#~Nu-xksFDI%@GkN&~*){kLE;aU6a^!*2h>4S(f7@&s=WgFy`6t zVoZ7ZmP$iHw9WWO>dr23!o=l99vuBxt)1?1+jN#5AsXvGjW_SaS@Tjz+|^JZ_Rr3B&I%9lV;`7U}8970x1#tQ9OfzNjJOo z@YmAj+k}iC`)a-Efa8RTD~lWkCYza~z1&*TJSB9rKmYoiI!_!YOrS4f-)6z#4{rT@ zaP^-tTPRcf(u_N=%~vyVoG^jth^1q}(NBhqZDux+m^$1#R7pbwjAuAu0wofe7>uRs zRiS3huM$(=E_qsM9OjE>IALPKq=Cbjr>EUBRHA~KfiE;QN=MhF*q*pBDX&YVJ2I=8 zxG*U*Nt+Df&X`>vT5i5H`9*X$HHSA`vJH!-E~(OP{30jEN+mUlz;NOW5GK*B3j5p)|LpJu;tPrfOH5)o%q5I7yyKk^+WJ10#25oiJE>a;y2! z!d#UmkCJ3Hn*4ugT~eMwjFj_iO(fi{C>7M2NVr>3j+8KPoau3hx^g&9ydyM47987r zJ9DF4(i8H8zD-BeveRHt}DY%p7X zA3S*hWlHekB zl=934I~b~ul8~sailM;8Y-C&{zz zh60Aa33WYJqq!A^Nq)9QPQgqFNm7zir2BBq@y=X1i+Bu$94JXv0f3BEi6u69@6l*_ z3?~HvVG_qG21A3f_jK<6b~!Cb{HF^O=hxO?VmM&}wGx>ajNRdJ&PS&^QKkgCEHHM-Ne^MAzpfuW2kPIZl{_c*%kz)6NygHc30y;+qe-c=WkO=@?F! zxOmBf1C!mziqq~&eIUN@hkC8F7EBB$OkBL=!GX!X>eHKT8$;}HM@KftG0* zNh{Ch5_EvVJ%}Zx0ZMat)*9%!PAL!c@-skdM_R5^%1qtTbeW}?gwE$WC2!u~d?qGI z`wgsEVSz$v)e1|hG2EDF(OuH6G2ECaN3z=ad}E^QGI?^+OkP?Up!#UBGDy3NgYIb2 z#jS8DNQ@RP)rswRi{jvPYvYmf_o6clr7jY!Zqr;%l-qP|ny?k+1|89|+*)pz?}AY{ zv=}=yBT0iK3WpZsT|jJggSUlWaI#@I@h}$-ISd}wZ_ht>t8^MQzGS;Ai|VPFI8KMHJYFa~IiW>)}GBWW)&Q|2Fx1hS%K8`7G8Oq)_N z2J)e4Gf6{hpfQ)H83UQnTtUj%|I(H)S0D#U+S31S)))h1KZ|A^pLLw_`v8rKXE>=U zq4O~qD&F3!{g^h3N&j`rIqduI9ziN5ffFXC^9dN3yv==={%|Br*$>@y-(2L4ib>#v ziRpX-hQHbra3eJG9nI5!$UrGQ9bEznpM^`(a(hPE?V2N?*@aduh+s+ zd=nvufk|KOi|b#-Nu}ngINfJ&z<3ptzzGxEL?~dG{%f5M{M}E|0RGnug}wt}k2)i* z>I5;5_982)6GS`9>ii!nFlGtFIhsZqaty}6J%1MWrx`{LPtbVRbv(m~13`PkN@Xxq zg-x*U>U>>DRT$!~?Csgea<_rGtPL3@QHm=E02#rudhJfSs;WOjJi|%yAjo0z42IS;^n)NyOsMULwvjk3@#gsMyLx1&28Z&y(9_p;Pr;FYk*Vrb* zal*uvHV%WcY<}o$Dm9Rp?!*mv5T?qLA&%jMi7Ra!1}29Awn<;4i6QQh&8oZ_81dY>I94Bt%Tm3i;ZnT?NDWltKS|M>qkNQTHP*(`Y2@{vlI1Eg> z1|II$rR|6DD_5OduJKMUjuR#>p>Y@+iG%6JrioIX?*7^7qsBXS;uubtxP-=GWOBTF zbygdRDQW0ZR}DQqj^TufZ}sCaFxkYuYjj6?W103$!|#f*%Ympy*Bn;dQlO$H-{}aA49kEZqIAw8bZ_ za)ZVum0RnsNSV3QX%aUU9uDjA^B1{qFrD+D$MLvHO(4?25Q+WZ)wdvK3KXVgp_ zCrn}|9}5mlj?Lr76<~L0DJl1y1rQL^T#1X6ZIp`bAWoE#>oJ+`(rW?_G#vIAP+V8i&Dm_JwkF zy>25h{TSh%w~i`LhB$^3CN8RR7?||^?o=#4Tw+SY8K9*RXIOK$hsv3(>%)nm#Z-baSuxCl8fP)gYDbbZ0TABgR^sfk zd)lZL>bqBglRPt}O~5{051Ku`>QS4XVs$)He^ayP>LrlC2@_M=1nlE=zg4E?d0Vju zL`G9xV~k^HRAg9GWJGM2SP%H$+|pjBGq*?Mho(Ck6Pge-k!S{?8G&Xjniw?G(9A}& z0L?NqYtU>$vmMPIH2csTL6d~$JesR$ZligK<~f?TXg;HHwgqFW2jhe$Ga5HEdC<6{ zDTbyr8c#IU(9}WG0F8pCC7SkV{LpkqV?q;xCKAmcG$YWAMH7Q&8k*T?7NA*%W(}H6 zXttx-gJvI^BWRM)oJVsN&22Of(L6`<77hL-OY;vj_6}fN&}2oE15G|Oh0%C`K{b?@ zh55fK;_D>@&3-gT(VRlVn6KcsTWB7nU@VPy`11=IM&*YEXNI+aEbzyQ&Dqi9MNNmzWtzjk0QmJ)=~vmh4V z8ek9wO-nTG(XfP4lVs8GFGsV#(8*g5yE+1~v1nq@Ohdy0v#ZQ3Lk$0VH^1;Ve#5^m zXHGzKDCNRw{B{w|^%RUzJ;k4|W$Xw3w08#Mf+j1P9BA^PVYz3eEQvqMqp51omipQS^(Huu}22Co#E&TZaO{xo0zOl+-#bXf53j3B3-q>Z%h9(!90%+I;BQoLX zL$fCueAk7!4w?pN@U1F5du{O>3(TUiG+4gz^^xWhW+xhaRjK&^8WxzDv-tBenwx0uqhV>h#BVGJOZQ*=X$!CA<9W`A-?E{} zg{Ate_d?SL4NEOGNmhY> z;DrfjCZoYa59WDjQUkMZ>k-?EhS9Th@u-LSFq)HS&Y?+-#=@nxD3(9wL}pmH?-(Ps z92sCMgxM8MPBi(^6hVWx5Zsd(m(>aGbT-#P(*TWvhH>IeK99gW#|qRFv0yaeXxIgo zpAq18wt!` z(db}z6|Xi{Pb_dY#8Q38=zl{D_m-H;qrtm*b1gLW&@@KV98Fs^EG~=I9eutn{pWxA5WvG|$ky zLGuaCcQkfc!8oJIf+jl{Qx|hV{LX6+zp)BtKU0ktUTBEM7fmZPEKwc}of?Q3b7dd= z7J-I&Y$$&F1I+|9lhMpTGY`#TG%L|C-!a3YG3LE^VLzIqau8N4*ATmd<`Ei}@l=*C zh%pw%$FAbTNhW*pYJHCxFNj!CG^NnsqiJ(hH0)|!_+|<+`=$Vlk)_fFu|PCIXhOlT z+UN&gOo2QZ3~k!XNWs%A+H4HG0L?Nqh`}YynJEZTibL=KnqwRi*Sc_T-p4EW#LD~< zzrDvW6U{&HyM4A4CLT5i0OovX3ZwBr!+e4J0?bw5CnW5RXd^TX<(Htbn7WwOn!6$1 z6HPFha5MwJKt7ot#v%~I0meKRfkkLmAld~2{*AwOqe(z0hF6Bgr>>ATqu9p{WD3!3a`@}emO1{s)ZArd5Du8S9Z@B;p7hrc?b2|&{e@j!4< z6#g2FW+a+%91k+jz+dz57uG7)7?5m6a0mMit>Pg5I*#THnoAt-Vt#_x9TH_oH5Y|XLx|Qt%r7QNuZz}sMkPR1 zBu`ALZ&t1TW`{_l0mMYq!<;)*7Zj9rRcCe#)#;*$3Nfh@K!W_BLyRHXKO_Q5fb_Hg z%AOa5iAK?oK3B7*ss83dnVEHgpmZ2q$yClC$nyDz1xJFM`f#E`-YEZQ|FAG!SgN^D zxG~HS5)~b()y2ewL`01}>zT71#5>0oowaJU)~ zY<2azqem9$Z5kUdO$fTdm(b8`dS4{R0F2 zB8=LwkU*V>dsk!aI=|uNs*a#ejGQvYqkojqx2mHf9XOC-=urCS@ZpY*K}MaW&u10w zLB@bbbW@tInp*(c)IU1G&yWzMYg#4NUu!gmSE))%Yjt5^S!G+pHxC%YVNIiq)!d?W z!O-GOt25P9bu>nV#AX%f1>bbhF**60L(Q6ugR7$=)%d6HAd^; z;!t-w<|4y%?v31fMjLh2+}uGtePkefcZUJ5i;jv6BLl`A3{6_cQx}ij!p{)t7axv| zjS9-ZOwp}#)86D6ZH(}!nhMh!j8-G90fw=Mxj>-KKgv@Zts~Ql*}enx;pwSWN5h<` z(bhTSux+17@+pBxRibtz7D~@u|iDeH-fv^_Wy+QO zy6*~(>EoS8<4P+q5u9PlO_>M`OmQuuDlRz1F)e$%L3KodiQo*Anlcd>wG$6Mp4E(H z(pK^K{JMyoiQ)`X9>PRnU@}x$88!4@mMI`%@%+?tawdv1Ob%2gk{z|{bu;CXykQ(nqMU|@=^bFie(Ka5N+=|eh~dSoYKl5mD8A2La>SMxVB;-g;s7G#(- zTIco+7L1oMNjSsgNbN+jgG?imd;K+OJI9ncsQ8{q2OGnbpE8l`z(hvNgr8z6pujX< z#+0F;9af&f$mEp8lwpx6g<*27ay|6@t4=Z|31^rJB9jDz#or$56<=@?!$c>OT{0#K zXP63Q$+XKNlS#%zrZL9i`e~U{Kw*7X{q(F!C?Gx0?Qb9D6;qt4xCp73!ccLn`@lh= z&9kjoX*w&KrNVBD3Q5^A>33wRPz+SqnWci(;n21uh1rkdj0zfBG06@UN5_09(IlU& zV(XrvpPyN=GgQ2QsaR>4=*^kgi$nI5tn4+OKDQBWM!{kO~ zBH4k-cq*!1u~IBkz>B!BA)vP@Y{jPmGrhX!IszjF3j znay7TvZrS?zsGZHa#^h$16o<2Zb7m|2 z0>;>q)e5B1{>Lo!D`aP8senBmB{~$6%SmxY&T6#LNOq7jwydd*OCl$ytwX0eW#WcT zZI0<~-BXVu6l5YeBaiDcY3fl4=a<_@pDo4Ulf=K&M?)YOaw-md|uzEy`N*sW`(hy zZ`I7wZj}Fz9LZ-Y(CMg3On58Nx%&vHtq?izkk`$cW54evpNJ~ zNs>Vdmgq%lQ!&U+rGkjY0b(N+ZB|kgOc>LlWWQUt(1frL6$3jtVgAvu)swZMV$P)- z3?dl=%no6Z!2ywxp{e3Ppffvkl)e&qJy77>uoa|(Ag+It+l^qy3~E%F)wsCn2QmiGj7nrx#&eV=3>nFlIQo5lJ@e8aYJ{^XhAOK zmeURmtI?NURLd`p_;9+>C{i*Hy;zc|b9ChChxDR@ykufGQ=wa=WL|o)G*fb1+d6Ic zl8gB)C3R@0d;!LwAlN(7#bfZBSF87rg3vxD75DaF_l<06;kQ6tkU#9g1%_x1&;+6Z zOf@dGI}q4IVfr1SU}AcE|5(_fb0)h%p4v#*ZX|mN{?XC?uqtR@*D zKF2*6%rYG$8JF7HE+91tYw))7wi}l!PQ`{+2jUhDc{Xp`5?lTr8^0*IP->uZZg63Y&}da>}h69Yr-4*V|moXYTN|Wm|HJ|Hp{5UGdM$ zUAk9p=A2W-=dWMXV_p6GIaNHYSg5N@NRAaBd#TJXL3=sH|6{hXU2%7EVjW=p6hXGpX&0w=)K$d7sL$;^9$mN9S#q z;}(A+G_>ET&9UNNm&MIowS{Z(|5zn#SA4?EF_*UfmgBBI_uKB0J?A~jX^a1);#<=K zw{&0W&Q5Osu>#tz_@*1HYfpKY;}*}QO{_fe>7AS^zI&U)p*lHl@%j(zJM8s$V-^38 z)!lZ*gGy~U*f}uAiaSodvg1XS?m1Qb-O*+H>j&hxtGC@eb?e9=sTdvO|KYjVuDI*! zoo#ZZ=UDN6H{$cpFkj56;vc`=&Xb;V#S5KY>znw1`WwVAXb4mz)!lG3~_;dq%n$fMro1%_Lp*j z4@iB!!m*OC*r5DmZPLCE)Nt9XqD*m%%eY9a+2ZT5V>a2HDQ@u`m%rOFGiZ(Eer4lF zF~uzoWUZbzT`Ir+Olzkj@8=vzhTGyuR!c5du*uFhIW>&Mq5Px4mh|ZU2Xbl{i(?tL z>3x%f!*XmGi-S3=lH0!UO`KtV&e3EH^F?wr9Sd&_{r#IHn(aNt;&5Ip8eOK!gL3hZv8jq*f17{_18N4b?7a6WgXUJ?dd$x`vW#KIOOEVsUW@M5`IuwFSRC3~z8T{ArWrZy zF&4ut+A?zWMMI7aV{vesx4QW{$dj96e$LTl46{*kbbI*J*f-*EjtygRc;hdR@oIf% zYfcSgaeRNW$5*VSGslMMFFDN5)ti@g zxw|^2hOs!#ry7^|5EGqa!&n^X0#03y4SOUxVbm}`=SVY#u{hGxyL9!qm6Bt_jF%kh zsAjY7R&}s#yM(FT;#gNt-{0|gWR4AEaj+*9jPG^qt>lDJ!{pe}7U#e%eCS`h(EmDd z9snNHS0?^TrjKn%6&JuY@U4xRr5wENz17}+-jyxoPz-%%vP&s0gxsPDfUJ_{ywPyW zBivjG_g&h1nAE4bpZQ&7QilxQzYIRk{@8mNJ{p$v7^4z8zX>ZUY<~7dEu3&K?QK#& zsG2q#F7^xT_z6CC^a;7I5++yt;bl@!5Kfx`I=Er_O87WC`0al9sHz{iOeJ)m6&Pkx zSG&9HqDnX%Si7r9U9@QHTX1>U?0aWa!nv;VqfP3+CJdOS65b>)4HC|tTGLM`Ic#A* z;Y4)h+QQO?e>WBW&EK}3U_V7uPH5#>JKUuH)Uy2sU^s5tl&BI0HSAW=q<%Z;<6M={ z?}Fz*llqJ<`KC(n@A}nQcsDVBkV*Zad#9z4KTkmLBKYW0sp|^(SoXZ{KPtgIVQD{; zdS1y7lK~2U*5HatXg_00JE7+zpXMfY`Ll;XuH6-eI0%usiu(#j6Y|#-W_k`SXHp;O zw`G$`m~m=TNt4>$Z{-J-(7HfOQQ>mhb6=sn7_1kZ%<-iK_k-03nA97$lsKmn+WomP z)TH*>bNeP#^{U6zSt_B%#PlI1b<}}US5?COn*;ir)WwqWOjHR+eWHsASn`dt_A4Z z-9=N=z_UBP5!T!!Zov@_(+V;=|R7GB?gid3kU4)K-qho|^@r`ns)W7@O zoTL(l^sZRMq;A~i$#Ru&GUB*VNM1j_tx4Td?Xe!H3N^jFM0nX^ zSFZP1B{Z*A(8r{H)Nampxa=CS{1trET-x`MN~ojX93Z@3^r{X8fj0U3 z(FXviqDIh z)YJM^K+{%?*zgB@j4S6d1wKw4uCYobw0hat)ucXA)-YNnOq}`=#%S+$W3XpF?7ZQa zN~kxkA++e!{q!rS&u z+=WGF(@UGwb5<+|`AgS6-(S#onblpG+A{wLlX`OZ`OkoUd(!@mFl{WY1iklloq7yH6^i&A4IEr>-472vbAd;QKIMi;Vv5FJLbl zxgT0{>UKA0LDl41JE3IBcm6`jyPhtB>+K#eC2jL*jJ?!lNI&f5TPJOYx$Q^Wm;fcCQF_?pP76f41{i-fP-C@O{AE@s*om2_V zcH@oEZI2tFV>PVwFZ9JPH&&eof*$+-fN{KN@_{14()@**n$%am>^uXwf68p=5x+NV zH9EH*wezb!&^{CMFJ2XhU_=d1ROu0E(CA4V%F1K)Z#eJCbM)pp6uM!-0 z+v!c}M*SBg0#E$vZwKJxjko)0mEcnA7%Wa#@74gzOzc{+r%C-T?<36RI@wsTB=~*xDPdB#xZel5!mQS1>zdS)!Y;3d zJOL@6Ps2xnT@91rW5T+>E~$j`H`@7{)CFG-fa#zd!W;PLp~^T59~bog&`O%!ds>*(ZF-kSxqdMnJ_}Q1Xn}Sn^`Vm& z*8${}UT-Fh$)&H03%T`^2SINwe;A5gtz)h#9Mj!{S@PY6zfp)XEiZxsO@6u9(WH)z zJ#rPGvlB{hhL2A9>cdF?*6k%^uIBzK384J@bUWdr^r~VoBJ&p<6ek3)nd2(-b+QW) zM&7Ak7*>!crRPJAdV8E;u~IE{scBNz+LkyMpql#!tW^m`w6%SOslS$VhB@}%X1i6w zz>SR>3+=>Vg}~T`b6B>s%g#G0;jUA!M#4Yhx1pfr=Ah{+!N-^z#^#StJ7++iM|bN_ zPzm$Jw%}xl1>dh!38$u4iV?K)rd1ML7v#%tQrGbsk5lxBsd;9=tQ|14z92>{gk`2( z^Tz3b59#y#8+_=)T76Lo2cie4g+o>HR|d;p@Pm1`*Uc5a!il^opwOEd$KI&~uaUVD zpjPLuupCUU*SxUsp~>(lSdVJ;M=v0?-ZqfH*<+yr;ey8^cmQ-ijZ8>Sp+vFO*IKf6Z^i+Pzl`*Ol~1G zUgiUn*VJQAVIr9wu?c$P?Uwm3L7oO%G%x{tY~uLO7&pg9s79L9wLh-erV@%( z`T_RdS}$atO6c3A0?Y%Sx5ESgLUnOUfe$Qip?oJ2RJ`Nsq!CvSA&N*eqF3^yzTP};B;#5jfUJkM)f)c z9XelqaL(FRc1ctT4$BV=HmR%JK922tZ+4AwDq;AjNhtlnsnY@acWo`4-G)N znRMZkz0k4SLO0>bxoTjzkySsT4;T5+1LmN4f3|5VoJ{-C5|@E8V^zYAOLe;nU%f6t z>()JS2iLlfS3fRL3BL{qjRTeA$J|f}mjk{ynbbSKF91cy<{b%RW%t=_$06&9W3gb( z6VV@w38hC~X)QdcwY3ebj90#(G>?{#cneO>_m6di`1nU2!lI=O`w2Ch^z<~T6W-h5 zl=HUwuv<{mth+EK$LxEU2GEO*ZK1dM^q31B@MFy#*8%$L-(%}xksc7>W>ULVS#=yn zL9=$HV8%%6odnC9wo`&I+W#Nu`%X&_V<&Lg+szCgWuHxirQu~`2Up?9=!1SjhHHl^ zLgTc=B0`sRO3$fpc4#_Ug;v7__zd|&g8t0vGLqyZbRqr;)|&uVCgRNN(;*~96+dy z1^w;-zWCj^DIjeBYQ2P6`HqEvuNmNqv(3_iRbgU$Rbv!%oD=qUpQ?oFeU|-dQqQke zW;tBWH^2|(;AZs~*qPMjMqd67(9;clSAp;KM|Chk>*D8OxSGqRK({FVr5jAkJ`Dy} z75aJlLsZkFTYe#zJ;pMZgPMMYB29u|wm*L-9f#-O{;$vn(C#~nRu6tTaSVLaHMCf% z5(-|v(pdQQ*kkAsQ9Fkn0ROV0D~$1o*_*CGp7m`L(a*c+F&f+W>%D0((bk?(B){;b zSSJ_Z@$H#)gs&a1)DZ?$kA;q3`CuxxMbFCDU_d6o7@WvaXVL8|S zcyA{x9K0c~&@kXfDWOk|2EB#4g(|svI~YnU)I2n_K zGfd7CKqIqV6Wz%POd5UaY!1&RKb+I>Fnk*GA0RUnBchruND#v zc6wdeKIKu>w5@XMHs&F%E%Laz2yuNRPt!>N8WuiF4M4lFq zvV)!8cDYx1A^SLDne*EZPM09%XA0LXj@KzXo=#n?hHOhpY>NU=r4)@&hY3$YDbNZD->H`z1d!QK4gW&kq9 zQ=XMXC$=V-kHms(P0B8Wc!;eDoConRTa$9%5Ie9nL9Y-6wkG8zLHxqj1dDAfE>_mumY>xoq0?aO(wrCF_6tBJVkOf7k zlP0YpSUq{MfdpH8x511e*-f3uA)7i&Z!glRais||J4!fHJqffV7@W{eW4@L>I)ka+ z#dYrVBB9PQCJASl=sOH(c5r0cE=hks{||<#Y+}(C(;Xhkm?WHGBJVJeU~oUS4EYq| z&c4H-%*hVHqmpjOm?WHGBJVJeU|{mDQPXsXbw8Bb)@!eXGfd#+T}^|DYluMPs|>e{9bMn31^r{6f41?Nciq@ zt6I-w6mdOK>+fh|N103#&M?7y3&3-w*`enSxZ5=_gYCJRYlD|1uKrubB;gDbeUkyr z4%!_FTf3{6$jFr4Vu51--eJHm7PhnqytjaFk&<@n=dIiCE|Xcp8JWqe3nUm~Q_b`< z|C(+vGHc$|-{RFFzl=%3876p#0YoJ85iY?Nz@BIuoPbG9voVDo@4RHDe4 z=q?j_%4C*sMrQIt1PO+=9~Uz!W85Z2`%?Nt=Eno&&p1ms!$e+)Ai-eAH{VRn*0JxN za2dTM{Dn45CX<9SOk@W`f?)!h@aFZ8jqZ$0#VdU;=&*aUj7h>7CU}U~tAzx^7+Kt* zt6y2RMQrJhxMp+COLoBkc4Bx}0v`-$qDJd-JN1&uEa8mI^yLUNJM^Mq2b;X#6vt@q ze0xdyy(jY5+DJIVMD|J~7_^TotKau#F2huzW!bgE=laNGl5mEJ?3G9`#B7_w_qkOX z#xU8^Nnw|S@1)8LBFx!zo06%XY>P-RD1zIOtJO^PwlpKWZ-H+{iO zSl|^cd4IF-m3KpBc9w8PQL@(}!7zsA+}inm-7!W{*W}{%NdoWDOEe7wDp?fe4lhR%byUy6oMBmmxD}bI&c5NnSD--Y2!Y&JMTw6vXytct= zG}^S&gaetrxq+8?NwzX8*^$1vfoEbzqq3)&6_2Ad82NMYxGmaaXw7X*DEE9NXNl~v zSUF3P*=opw-dz~?MU>ap)lBKWVcp}R()fcc5M5)qI`m!iQ)_sIY!b@7?{>CzRQGR;5wuB9it zk*RF)td5AS1`!fJb=Xn}f+4Fy8NHqwT%O47NO4AH68&f>jCS-k`!CwZYA?QOR3%Ws zC7?LNMBm^>VPHx)y3Oa}HI~Vy=?rZ^q8~|bU?NlS;%u3CJIbRU#p?M&5cgQwQL&Kq z#ECMKK*vhvHQCDycWBYgS>%8aN1O;i=I*ER9GJEGVLmW$8LEE@-gnz#jVwIrOz!@)H=Dl)H|#^MFj`eQ{Py?BTd(;e{^kuC?LcS(EezBn@rA`Xrj%?b*Pd+hVH@X7CWwKcL(uGClIcs|MvU3ZGTG4cAsDiyKk~f@&qcXjq-;mN5C%G2p$dD0 zekpTltV~e}XB35S2kw8N*}a;7slG6=z##4wyf!F`$9>$uD<0*WuizglS@jamR8NkQ zB^X-lLR$SFU7XR*Z1gkn+k_##F3Q+66qnfSVGgCy4~22Q@^H9gPGMVZZu`0AD+kM& zD9$jE=to0gV4CMqc*#|^PfCl26_eN@kK{$6G+{=FN^G~&ga`CN-AI$_?~Thh=zKTs8vy^30 zoHY5V4)5UMJPyeZwyItn%{C6+|1^ec9Gf;(aL|ww9mx{|naM^FH(C{q4--ANIfYCR z*}(kBZ%*A|wO5o09_L^j3k-C)?V11Z5vQ`+`%6;g)N$K!tdi;!M{i@r8!M&T;{P%$t7M5eK5?bKSPJ2IKxDbTqq1oDNXk-3~0qN?H&C7 znz4$UiQ)_sJ#wKiFm3&6KRoC%%QVMW>T8Pp>_9_th6&;k=;RazrnK`;L+*3h>CQ(S z4eKwLiQ)_s2~RW>2Bsln+LyNvVP#TWCc#b=XPC(0j06J{*%jej9K}f&n7G{|9Ks}K zvD!Tv!pfxR(~1w+(FoqG_>hc7Hqfz2gxnwk4RmOBP=;(^v3I^JhbPv`AQKIA{s)ud zye!X1Vg+cp-qm?7_ zjAt7lY~W|ZU$Jr~iZe_!(4jCg)g5$S{eopuRwQ##MQI?!v07AZZbll@@W$ty7n@u& z6oSSyyldviDw55-jU0G*!_V8=o%Rg{g~J<)Gj^om3x&as#;IusblnFdFgjCdZ=@4{vyxbuR`x4$UWTF^V%SMh|Z&3@sK{^TA(V zN3$)K_~voC$2~a{#Th1gctc@en)u>S6>skD0de~0yT2pHo) z?K`p0uJ;pP%4MQB!$cz$3IkJui%Ip@Nme_>7+cK6PIY*fnms?&DFxPG2M# zHdHIj9hCB(^L>pyqa0zFsr;!TH4kjBn#6A88H-E;gTGjQR zD48M}iZe_!QlT&~jXBY&=mhrOTWRvNV&WHhj8v?q6(!G4T+a>{j8ryo!$r|#O4B#Q zE3)W{b75^5Lm0mBV@R=jUQsxVu~O8A1s7u;e!&%A*GO!$-O8k>D8ZS=fyf6HB``G3 z(EI1B7vdbi(7#s}ZFEG=L~(|Rp1x2Rn1=UnKkz!YcPn2q8L6OE223{0^n zO8pq!h#mKO-_q&ZPRnJYIKxDvBMJjkT;7u(oY)7dl{Yr|`4dlH`1#X@$pTMb_{l=C z!$6BroROKvJQN0*$+iZ+HE7EQ2~IvV=HZ!kv33kSy}v`q-*P)roRNvfJQN0*h92DZ zZs8b?$!Au_O-j9l;0zOuc|r+{EpoYt)59;w#D*_oxv)HCo#b*+Tw+s$hBWA)Ft81q zJ#5KkZkQ@Im9@i!Ob~j&IN%+o;jD%>xiQED@dz;SZVdOMQ~DWQbG;0aYe#WLI~r6_ z7_>|Hvtm)FqpVDdZngNuG6$kG7*u@Ceh$o0>l~%K@ElwO3rSSu=Jr~p3Y)5(~ z!ZUFZyJFjl&UvMP5~YD~LM#qIRzRs-DD$`t3*qqxKX$X3x3Lh03cSf^AGc~|@c=6x z1PS6nPP}ZKK&%O)0&YHXU)g<2V46H8l5nO&k*Gj|;eK+@pw~BBaX+3Yer@dZe20g5wB^!$Rtz+^nBYSfH7YE|^r#Tu*~ z@%*ADYsa!lwLBWG-X~K;!kOwxs35`cgwvk=-zU7xV8@uv{gs9ae1B!bm$K`RcpST0 zT`m*F8JS3^AY})c&i!h5|LhzqQ_z4Nb5fFJOd5(aO!QEL!eCs(#nmIXEaI4q{tjp4 z4>f3l2+lCkLk$W8Q{21MUhm4YOp10AE3nOkK}AKjnWS0LN)f&g9%}G~Y#5DrsKJj$ z8w%l}24BdA$wD3#C>J`yPRbY+9OWiu#X?H!6ul>lW`}l=-En5yh8@l$^qwr9$-uR! z`=0!z6;9N31ZVmN4HYO1G9}z|_+;e01HaXGRgbKi8MF%}IKxCk1quVx@PzB{-U_Tt zp}QtsIiuvU5S(FxfB{xvnjM+Wc23*%on;EC>G9oH;m0m1&M-j~ft~@$j!f5{pKy)h zn8y6m`l!NoV+g?+CK^;w7?_6K>^HkFw{xr;v$@tG`5oRGiZe_QTA+_XvIA56&eDb6 zrgJjcat9;!0*E(IJCYrkNPpsX4sGt45QNB>hOsi)Fhk%u3_sWvtIrC|Q3X7Q;nr)H zhZFC(I|a-7n}joVB$0*$!y|7e;_L#ajbLTAVLgTzgI|v|Hmq0}RB$Vn^0?)_84N0T zZ$_^B}ZX ztYn#Na7rPZ$hlJrk%QIrY{Q%`UkH?Y;VX8X!u{*lWSwGz61{%4-RZjuwkEh_p*+wZ z>6r@64i+-*^lVZ1Pu4=Zb$x2zQ#dB1IKxE48wvx{kg9**c*yXZE85emtx#Z$KTv876v~LSbNv)xECr zPBa_({ zCVFtfGjWGvAt6VqFMTGLiQ7go z_T|+l*k%km=e1(=y{7T(^o%QG5;r~D+_v;Ig=UB9 z$y^h|Rv0)5i&xfQ$bHF`=VSuc}trkP2QBEj&Q;ItMAiS`}XX4dYnl;^guj7dXrhKZhh zP#8K)e1)=sRoGn;H~+m3^&i%kF-bVXL{2^=7-V`LV7j=&h%&K3MnL`j%Z|RYViWc7 z%R%IYhYm2IKzJdB1CZrc2aVi1b+f`9vlN#^z@jvspfD&i?6%8i-OxeuaXdw(r_yJFY9INWZ=a$JH3t>?5f}QN8eJATenJWYq z!h;vSCTdNqLe^6>7NzkAZ+za@-yC$Rg8T(r8ZE&YlhOEt!eFx4urhCFbAh{&;ISOUTe>$Ss{NEwStw``H@Xkm<$xoN{SR&gKTY4cRsL>hjgH_96OAM&3{1vySL=pyZy5?WeslQY##SS0#H9axm_XfBV6B{gufdg;B?4*ULft6N!BHk}e zqhKb2GiIVEAT&F+ciNd>x3cfJ)C4|NU4Bqe&O~vBiJpK^7?=h-*V0s*&GwwYw2UXy z6&|3YIKxCwKq!n&7y3QpK6jr%;F3=xhyAV~6TulK8eGuqz!a~4HRpAIR;KLC3NZy| z)@-JF2pqWVwmM4W)WgbA;+}xDVbQ?Y!D?^jb?!EuHqhA6&mk(vVLu1&pR;f_4FWDcmtCnr#P6(A0M3s1gL4XOP(I6zV?&4k z)w%M*OaXBNC!C@#J4l#;*&$ZY@67U50`_>6=wSUol33HSqF@P#3B+3biqd>oSY4&t z{s}I12`oy304;%`OC-Eczux0two7EE9Qgj(D@UCqtPdP~E_+P>Yt4$uN4S>YjGU4? zPhgNUu6*(Ik>6N31Jd){{$_oTqkeOyRl$qbZ^^Q1c4|ROb8_0ULZg1*v&&ZKr>vaX zq`|r`3WJs6jK=g_fx)tdG5G9UcE!P%d9NH=O@2asXJZ!W;ja`-rf6FB|$tkloJbH=%jQ(@XqF;QQdXEMu}l;Rq!JcAiA;89y-%CMLLesZCJNy<7z$MnFXQ`l^ zJ!^deH<&e$4buYdqFaURN`r)HGjNmHIY5=#C!M`{zMD;r4jP8 zFyu#a$gh=%dExg!$SZ`&&kl(t@v9pq__i&v8YZ}G*X4Cd5Dl zTVu&WwEq*o?Z)IFCdVpz>wJ~XkNi$5^V1hR{id`}3jS0S~M-0G(*ntp`zYK_F@!<%40$_Acm}gU+ZDg7?YNm5b;QDq+Vi8AH0AM(@}b&S}1PwNalwRWS|0zxgL|<$CUr3R4HIG!k`NY>5b;PO_+S=aOthGU zU=oRm5tE^q;Q0Z$n?+2)zX%l}n1f%5xqWy8acm|UTkm#pV zp-JIKh~j1`)t?yQD}K!dyEtNAObTK`sEMwn@vA$J)y(|b2>)tj~G#oFq6v3SEBzIyh<*Z@vmu^%)*4oLb4F5tP&gXDjqM1yCET}Pa5ISN9@)z!5iE4V-~{mF~Q>c=|u2udLO;7UaJq$N9v9Gq59GK zBz+37r0W;xm*`i)Ut9D$;r}7{o}xdmzYKq+=pX8z>)+}>>3?8Oi<~ZK@-moIK#8}2 eSh#yfo1!WH)f$rym~?>zctZ4-bvmQb^Zx*$;b-mu From 8b130316940802e97b6c3aa1a3368a2aae64f444 Mon Sep 17 00:00:00 2001 From: gwen Date: Fri, 24 Sep 2021 13:19:55 -0500 Subject: [PATCH 16/27] 4 --- examples/critical-sphere/checkpoint_4.pkl | Bin 0 -> 46021 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 examples/critical-sphere/checkpoint_4.pkl diff --git a/examples/critical-sphere/checkpoint_4.pkl b/examples/critical-sphere/checkpoint_4.pkl new file mode 100644 index 0000000000000000000000000000000000000000..01688ccf9d021262a6cc4525e729ae508874ce33 GIT binary patch literal 46021 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 literal 0 HcmV?d00001 From 7aa292784b45728c5ccf951f2b9ec35f4a037b4b Mon Sep 17 00:00:00 2001 From: gwenchee Date: Fri, 24 Sep 2021 15:37:19 -0500 Subject: [PATCH 17/27] move backend back --- rollo/algorithm.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rollo/algorithm.py b/rollo/algorithm.py index 945528c2..611d1967 100644 --- a/rollo/algorithm.py +++ b/rollo/algorithm.py @@ -176,8 +176,8 @@ def initialize_pop(self, pop): fitness_vals.append(fitness[i]) ind.fitness.values = tuple(fitness_vals) ind.output = fitness - self.backend.update_backend(pop, 0, copy_invalids, random.getstate()) pop = self.constraint_obj.apply_constraints(pop) + self.backend.update_backend(pop, 0, copy_invalids, random.getstate()) return pop def apply_algorithm_ngen(self, pop, gen): @@ -224,8 +224,8 @@ def apply_algorithm_ngen(self, pop, gen): fitness_vals.append(fitness[i]) ind.fitness.values = tuple(fitness_vals) ind.output = fitness - self.backend.update_backend(pop, gen, copy_invalids, random.getstate()) pop = self.constraint_obj.apply_constraints(pop) + self.backend.update_backend(pop, gen, copy_invalids, random.getstate()) return pop def apply_selection_operator(self, pop): From cb1a5c9284e2d09837f0cfdaf3cd9b16ce494f7c Mon Sep 17 00:00:00 2001 From: gwen Date: Fri, 24 Sep 2021 15:58:04 -0500 Subject: [PATCH 18/27] cp --- examples/critical-sphere/checkpoint.pkl | Bin 67905 -> 83950 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/examples/critical-sphere/checkpoint.pkl b/examples/critical-sphere/checkpoint.pkl index b41eb4cd738cf606ef26568f04cbb2433f49cf79..0f9e1d8d5f864d842e309b37122594963158fe6a 100644 GIT binary patch literal 83950 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 z zTdXbrD!p3GGf!m&5vz(=OT-2uHWjh8h#f`zN5ozt28$Rb;!qJIM2r$q6>+MFGew*) z;!+V;i5MqB-cVh+Q^b8D9v1P0i04GSB;s`u?}+$N#OESriTGZ`FCzXF(V{h?jfe$B zD4S}UL)p|>E2A7*OU+x?v>1w_h1AMuJ+vXT9$H*2X}whHqSe;}T750JX43|{R0^q@ z0%#6((ei0yE4fx$U8GIf0kw|y%S5TvBO>G@b(QBuyewjxh<8PNBtmJl^2();2zIbXM0-GCW}yjX`;O=;v*6DdVC|MQfgJT^r~sv ze9VPPdl8*QbQ7_Zh~6T!eCk{urR&Rq{s{VIUG0~xC1pnu@?DL}ULppI7$)LS5hFy5 z5>XX#s)#d1oG;>1)nssJbKM~3ts?FgalZ)V*GfGj<`faHig-(e9?%|FF;mjM74egZ z-$l$7p-1O$izZ*NH#W`NUCdr0RuHkO2yGfYx{;Whi>SB7E@JK>Ld&cpa+sKhicnMY zs?cmIv;>;tT=BbD#FZlIem9GGr-=JRJS^e~5zmQuNyO_SG>5jh0w|Oq(=Y33zkDNJ zKZ^KG#6Kd`UmH^!xa0h!brqpi(TZx>mzT6vM64-deG&ad*xV2(Z9>J<7F7W4aqZoM z#97{@Vt#r+DNl41HO~=KDb*Y+=Jg`f)B}pAro0BV@~8-<)T1wo`I?BgMSLLQGZ9*# zZ$wi7t=k`BYGZ1Tx8curP@x?FFOeRrzq;D*|b?z(=V#slv2yG zub4wcD97QVDM~%>Ns=aCuC2(&Wdp~RV#-_ELk{_hXyrZ;4~uw0M7_}!S-uEak&iZ7 z!L<>!zIxQ1>6Z<(U*x-f75Vg@6;Zvk1+;TI^OpKbHxWyT=q;kJ2yM)I!)ZCS88l5R zuW4!ylpKRRo91m2Q`yuUDW*Etq0W%B^F%1#6{1}$qE2+X^rQ;;NJvG#<6%XU7ZBUD zRXlm0roMlmA|Gt1$Tt-#^4SC3C~tVmAusROA46KpYtgh+${|0s)J;c~-lFvtv6_gr zMQkWyGZEW}7$8DRx~FLMx~Zn+Q%W^QiiQs@J%~q}wF;0a1 z#@h-jIVb46|s|u-Q0PwXtML5a;S(AB1Va*ijW-^6?r?4 z?ryBeJ8mlS8X7yG@badXio8t48mG=H?+dBOD?KXm){Tn17^5QZuCTtB*F#j~4GtA~ z$$~YLyvLv-uNtV#%WsG(^NUzWM7@@x(JvcmzbqriO(SspRrdt_uw|t~75)R{JYmMJy>o)9Tq)k+d~MtS>^5 zwN%QsgQV>$qMk$Ift7j@sW9=0A zQI(^S!)u~g)jCKdTHNJW0HVdaybL{wVy1X^h)Li0%L zHjSxtmjta{AJJA8A+6Okpt6DJ5&mub?j&M21fxL@$#ZSx5D`acYSTcDXtk9^ z1PS%_m*x73tf(94t(r;Kjhn_-WOcS83#b)YP@7nn+CuzsA&kY(sX3gNaPsdY&x&$68%5E z>6WIunkF_q()1+un5L;sZ{j1~1Dn2TnyuddR9f+CqRIjyI*RBjVo4FpAjG$_npkU# zHL%iO^sPkfpa~=mN{Vt0tQ;)|v&#PgvU-`N literal 67905 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 Date: Fri, 24 Sep 2021 16:06:52 -0500 Subject: [PATCH 19/27] CP rm --- examples/critical-sphere/checkpoint_4.pkl | Bin 46021 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 examples/critical-sphere/checkpoint_4.pkl diff --git a/examples/critical-sphere/checkpoint_4.pkl b/examples/critical-sphere/checkpoint_4.pkl deleted file mode 100644 index 01688ccf9d021262a6cc4525e729ae508874ce33..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 46021 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 From 65f2a109b9f8ea9b240cdf1b2a4147bdb8b86c41 Mon Sep 17 00:00:00 2001 From: gwenchee Date: Fri, 24 Sep 2021 16:07:18 -0500 Subject: [PATCH 20/27] rename --- .../{checkpoint.pkl => critical_sphere_results.pkl} | Bin 1 file changed, 0 insertions(+), 0 deletions(-) rename examples/critical-sphere/{checkpoint.pkl => critical_sphere_results.pkl} (100%) diff --git a/examples/critical-sphere/checkpoint.pkl b/examples/critical-sphere/critical_sphere_results.pkl similarity index 100% rename from examples/critical-sphere/checkpoint.pkl rename to examples/critical-sphere/critical_sphere_results.pkl From f4660f29d0a21aa1c0d74035e4f45b8da0c6f134 Mon Sep 17 00:00:00 2001 From: gwenchee Date: Fri, 24 Sep 2021 16:14:27 -0500 Subject: [PATCH 21/27] results --- .../critical_sphere_results_analysis.ipynb | 113 ++++++++++++++++++ 1 file changed, 113 insertions(+) create mode 100644 examples/critical-sphere/critical_sphere_results_analysis.ipynb diff --git a/examples/critical-sphere/critical_sphere_results_analysis.ipynb b/examples/critical-sphere/critical_sphere_results_analysis.ipynb new file mode 100644 index 00000000..880a012a --- /dev/null +++ b/examples/critical-sphere/critical_sphere_results_analysis.ipynb @@ -0,0 +1,113 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 56, + "id": "69b90671-f392-488e-87ce-3008f07b1b3c", + "metadata": {}, + "outputs": [], + "source": [ + "from deap import base, creator, tools, algorithms\n", + "import matplotlib.pyplot as plt\n", + "import numpy as np \n", + "import pickle\n", + "from numpy import pi\n", + "import operator" + ] + }, + { + "cell_type": "code", + "execution_count": 75, + "id": "8123d5c7-ebd9-47c4-9987-ad1b86552526", + "metadata": {}, + "outputs": [], + "source": [ + "checkpoint_file=\"checkpoint.pkl\"\n", + "with open(checkpoint_file, \"rb\") as cp_file:\n", + " cp = pickle.load(cp_file)" + ] + }, + { + "cell_type": "code", + "execution_count": 76, + "id": "a7ac55e0-e72c-4f5c-b0a5-ada6f862451d", + "metadata": {}, + "outputs": [], + "source": [ + "def get_ind_list(pop_list, index):\n", + " ind_list = [] \n", + " for pop in pop_list:\n", + " ind_list.append(pop[index])\n", + " return ind_list\n" + ] + }, + { + "cell_type": "code", + "execution_count": 84, + "id": "287ef6be-aa75-4fc7-9c63-603fd0c2d329", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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mFvgdHkAAAA4gu3bt09hYWEyxmj27NlOl4MGQLBzWKuYcE2+7HgtvHOABnVtqReW/KQz/7pEU5du5iHnAAAAaBRz5sxRfn6+OnTooGnTpjldjqNGjx6tnJwc9e/f3+lS6oVg10R0TGimF646UR/cdoZOOKa5Jn/8vc56YonmrNyqAh5yDgAAgAY0bdo0DRw4UHfccYeWLl2qzZs3O11ShfLz85WX17i3K7lcLt/oZSAj2DUxPdvE6F/X9tMbN5yq5BYR+vO76zX4qaV679tdKiriGXgAAACon2+++UZr167VqFGjNHz4cIWEhGjGjBl++xQWFiopKUn9+vWrsI8XX3xRxhh98MEHvrbc3Fw9+uij6t69u8LCwtSiRQtdfPHF+vbbb2tU1/333y9jjL7//nvdcccdatOmjcLDw/X1119Lkl577TVddNFFatu2rdxutxISEnTZZZdp/fr1FfY3depUdenSRW63W507d9bzzz9f4X4V3WNXUsuOHTvK7Z+cnKxzzjnHr+3999/XgAEDFB8fr/DwcLVr106XX365fvrppxp994YQfNjOhFo5pWOc3rrxNH36/W49MX+Txr6+RlNSN2v8kC5K6ZIQ8P+iAAAAAGdMmzZNkZGRuvzyyxUZGakLLrhA//rXvzRp0iQFBXnHfYKDg3XVVVfp6aef1vfff6+uXbv69TFr1iy1bNlSf/jDHyR5R9bOPfdcrVy5UiNHjtTYsWO1b98+vfzyyzr99NO1fPly9enTp0b1DRs2TJGRkbr77rtljFFiYqIk6YUXXlBiYqLGjBmjxMRE/fTTT3rppZd0+umna82aNTr22GN9fTz55JMaP368+vTpo8mTJyszM1OTJ09WUlJSQ/wR+lm8eLEuueQSHX/88brvvvsUExOjnTt3atGiRfr555/VqVOnBj9nRQh2TZgxRmd3S9TALi313re79NTCHzR65tfq1z5WE/7QRX3bxzpdIgAAwBHp4fc36LtdB+vdz3e/evtoiGfZdW8drQcv6lGvPnJzc/X666/riiuuUGRkpCRp1KhRevfddzV//nydd955vn1HjRqlp59+WrNmzdJjjz3ma9+0aZO++uor3XnnnQoO9saJZ599VsuXL9eCBQv8RrNuuukm9ezZU+PHj9eiRYtqVGNcXJwWLFggl8vl175w4UJfzSVGjBihE088Uc8++6ye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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# Radius plot\n", + "logbook = cp[\"logbook\"]\n", + "gen = logbook.select(\"gen\")\n", + "rad_avg = get_ind_list(logbook.chapters[\"oup\"].select(\"avg\"), 0)\n", + "rad_std = get_ind_list(logbook.chapters[\"oup\"].select(\"std\"), 0)\n", + "rad_min = get_ind_list(logbook.chapters[\"oup\"].select(\"min\"), 0)\n", + "rad_max = get_ind_list(logbook.chapters[\"oup\"].select(\"max\"), 0)\n", + "fig, ax = plt.subplots(figsize=(15,7))\n", + "ax.errorbar(gen, rad_avg, yerr=rad_std, label=\"Ave radius\")\n", + "ax.plot(gen, keff_min, \"*-\", label=\"Min radius\")\n", + "ax.plot(gen, keff_max, \"*-\", label=\"Max radius\")\n", + "ax.set_xlabel(\"Generation\", fontsize=18)\n", + "ax.set_ylabel(\"Radius\", fontsize=18)\n", + "ax.grid()\n", + "handles, labels = ax.get_legend_handles_labels()\n", + "ax.legend(handles, labels, fontsize=18)\n", + "fig.savefig('radius-convergence.png',bbox_inches='tight', dpi=300)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b5b4a877-c3e3-4a55-894d-d215df60a027", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.3" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} From 3627f08748869c79f2c46367ea6ecbd87b92a0eb Mon Sep 17 00:00:00 2001 From: gwenchee Date: Fri, 24 Sep 2021 16:22:49 -0500 Subject: [PATCH 22/27] update defaults --- rollo/input_validation.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/rollo/input_validation.py b/rollo/input_validation.py index 5cfd1fc8..22ea5689 100644 --- a/rollo/input_validation.py +++ b/rollo/input_validation.py @@ -41,18 +41,18 @@ def add_all_defaults(self, input_dict): ) input_algorithm = input_dict["algorithm"] input_algorithm = self.default_check(input_algorithm, "objective", "min") - input_algorithm = self.default_check(input_algorithm, "pop_size", 100) + input_algorithm = self.default_check(input_algorithm, "pop_size", 60) input_algorithm = self.default_check(input_algorithm, "generations", 10) input_algorithm = self.default_check( - input_algorithm, "selection_operator", {"operator": "selBest", "inds": 1} + input_algorithm, "selection_operator", {"operator": "selTournament", "inds": 15, 'tournsize': 5} ) input_algorithm = self.default_check( input_algorithm, "mutation_operator", - {"operator": "mutGaussian", "indpb": 0.5, "mu": 0.5, "sigma": 0.5}, + {"operator": "mutPolynomialBounded", "eta": 0.23, "indpb": 0.23}, ) input_algorithm = self.default_check( - input_algorithm, "mating_operator", {"operator": "cxOnePoint"} + input_algorithm, "mating_operator", {"operator": "cxBlend", "alpha": 0.46} ) reloaded_input_dict = input_dict.copy() reloaded_input_dict["evaluators"] = input_evaluators From 03f7b6054db9cf91f0d6550cd5cd340f61450178 Mon Sep 17 00:00:00 2001 From: gwenchee Date: Mon, 27 Sep 2021 16:29:26 -0500 Subject: [PATCH 23/27] correct --- .../critical_sphere_results_analysis.ipynb | 31 +++++++++++++------ examples/fhr-slab/rollo_input.json | 11 ++----- 2 files changed, 23 insertions(+), 19 deletions(-) diff --git a/examples/critical-sphere/critical_sphere_results_analysis.ipynb b/examples/critical-sphere/critical_sphere_results_analysis.ipynb index 880a012a..6ea17230 100644 --- a/examples/critical-sphere/critical_sphere_results_analysis.ipynb +++ b/examples/critical-sphere/critical_sphere_results_analysis.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 56, + "execution_count": 1, "id": "69b90671-f392-488e-87ce-3008f07b1b3c", "metadata": {}, "outputs": [], @@ -17,19 +17,30 @@ }, { "cell_type": "code", - "execution_count": 75, + "execution_count": 2, + "id": "d49c9d01-2bca-4be3-a49f-17a1d8cb3f00", + "metadata": {}, + "outputs": [], + "source": [ + "creator.create(\"obj\", base.Fitness, weights=(1.0,))\n", + "creator.create(\"Ind\", list, fitness=creator.obj)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, "id": "8123d5c7-ebd9-47c4-9987-ad1b86552526", "metadata": {}, "outputs": [], "source": [ - "checkpoint_file=\"checkpoint.pkl\"\n", + "checkpoint_file=\"critical_sphere_results.pkl\"\n", "with open(checkpoint_file, \"rb\") as cp_file:\n", " cp = pickle.load(cp_file)" ] }, { "cell_type": "code", - "execution_count": 76, + "execution_count": 6, "id": "a7ac55e0-e72c-4f5c-b0a5-ada6f862451d", "metadata": {}, "outputs": [], @@ -38,18 +49,18 @@ " ind_list = [] \n", " for pop in pop_list:\n", " ind_list.append(pop[index])\n", - " return ind_list\n" + " return ind_list" ] }, { "cell_type": "code", - "execution_count": 84, + "execution_count": 7, "id": "287ef6be-aa75-4fc7-9c63-603fd0c2d329", "metadata": {}, "outputs": [ { "data": { - "image/png": "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mFvgdHkAAAA4gu3bt09hYWEyxmj27NlOl4MGQLBzWKuYcE2+7HgtvHOABnVtqReW/KQz/7pEU5du5iHnAAAAaBRz5sxRfn6+OnTooGnTpjldjqNGjx6tnJwc9e/f3+lS6oVg10R0TGimF646UR/cdoZOOKa5Jn/8vc56YonmrNyqAh5yDgAAgAY0bdo0DRw4UHfccYeWLl2qzZs3O11ShfLz85WX17i3K7lcLt/oZSAj2DUxPdvE6F/X9tMbN5yq5BYR+vO76zX4qaV679tdKiriGXgAAACon2+++UZr167VqFGjNHz4cIWEhGjGjBl++xQWFiopKUn9+vWrsI8XX3xRxhh98MEHvrbc3Fw9+uij6t69u8LCwtSiRQtdfPHF+vbbb2tU1/333y9jjL7//nvdcccdatOmjcLDw/X1119Lkl577TVddNFFatu2rdxutxISEnTZZZdp/fr1FfY3depUdenSRW63W507d9bzzz9f4X4V3WNXUsuOHTvK7Z+cnKxzzjnHr+3999/XgAEDFB8fr/DwcLVr106XX365fvrppxp994YQfNjOhFo5pWOc3rrxNH36/W49MX+Txr6+RlNSN2v8kC5K6ZIQ8P+iAAAAAGdMmzZNkZGRuvzyyxUZGakLLrhA//rXvzRp0iQFBXnHfYKDg3XVVVfp6aef1vfff6+uXbv69TFr1iy1bNlSf/jDHyR5R9bOPfdcrVy5UiNHjtTYsWO1b98+vfzyyzr99NO1fPly9enTp0b1DRs2TJGRkbr77rtljFFiYqIk6YUXXlBiYqLGjBmjxMRE/fTTT3rppZd0+umna82aNTr22GN9fTz55JMaP368+vTpo8mTJyszM1OTJ09WUlJSQ/wR+lm8eLEuueQSHX/88brvvvsUExOjnTt3atGiRfr555/VqVOnBj9nRQh2TZgxRmd3S9TALi313re79NTCHzR65tfq1z5WE/7QRX3bxzpdIgAAwBHp4fc36LtdB+vdz3e/evtoiGfZdW8drQcv6lGvPnJzc/X666/riiuuUGRkpCRp1KhRevfddzV//nydd955vn1HjRqlp59+WrNmzdJjjz3ma9+0aZO++uor3XnnnQoO9saJZ599VsuXL9eCBQv8RrNuuukm9ezZU+PHj9eiRYtqVGNcXJwWLFggl8vl175w4UJfzSVGjBihE088Uc8++6ye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\n", + "image/png": "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0X/CsfXcwwvbHLAtA2jXT3992nrR8jDa5dqWquEw27mHbesnwdaXyLa9RYCHwbBhCkw6NvzjRQ5d05mw41WybVuL3tO3Fb6nfb50L3p+yPuLm5c4Pr5t0F9/MOrPb6sFZrozc1odP9zzB9i/O9zfaeFVLEfNgNTrJboYyMmMAZ7wGFCzgfZ1aHXlAmEUQnvX3cmHVYKC9XiAzIfYEu0yWTL7W8l07SdtGarIkqqqIV0/LjzDRSYKT1GoKvF8wOFoKHnRMikT5kLbVrJdbeG/+XQdnHARnP/NhAsbGAVAEZHBdsk93HVHODQ0F12abC0jTRAAQXh5aFU0mEXnXn5R/35+mnkvt530ShioJx2TaJkj3sNfhNV300U11fTA8ReNqMuXylL0nnZSRQ0ZvadH6uEvwnM/gFRNeI/6/I+M+vcz+u03dH+cR1endJOmxjJw6hFenVLp4r9HM51QM3bE3AeoACgiIuUtCtStra1w0TVJVzM6DPZZasm9pwVfVMjha98aXj4fn/JJjow+o4NrBP8eVQAUERGpNDpLPfj0RcXgGsopnyrVJffwPqBm1SpYos/oERvBv0dHxh2nIiIiIiIicsQUAEVERERERCqEAqCIiIiIiEiFUAAUERERERGpEAqAIiJS9u6/+gyuX1yXdBkiIiIjngKgiIiIiIhIhVAAFBERERERqRAKgCIiIiIiIhVCAVBERERERKRCKACKiIiIiIhUCAVAERERERGRCqEAKCIiIiIiUiHSSRcgIiIiIiIy0tx/9RlJl3BYdAZQRERERESkQigAioiIiIiIVAgFQBERERERkQqhACgiIiIiIlIhNAiMiMgQGKk3houIiMjopgAoIiJSgfQlhYhIZdIloCIiIiIiIhVCAVBERERERKRCKACKiIiIiIhUCAVAERERERGRCqEAKCIiIiIiUiEUAEVERERERCqEAqCIiIiIiEiFUAAUERERGQT3X30G1y+uS7oMEZEDUgAUERERERGpEAqAIiIiIiIiFUIBUEREREREpEIoAIqIiIiIiFQIBUAREREREZEKoQAoIiIiIiJSIRQARUREREREKoQCoIiIiIiISIVQABQREREREakQCoAiIiIiIiIVQgFQRERERESkQigAioiIiIiIVIjEA6CZpczseTP7eYl9S8xst5m9ED3+JokaRURERERERoN00gUAXwDW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\n", "text/plain": [ "
" ] @@ -70,8 +81,8 @@ "rad_max = get_ind_list(logbook.chapters[\"oup\"].select(\"max\"), 0)\n", "fig, ax = plt.subplots(figsize=(15,7))\n", "ax.errorbar(gen, rad_avg, yerr=rad_std, label=\"Ave radius\")\n", - "ax.plot(gen, keff_min, \"*-\", label=\"Min radius\")\n", - "ax.plot(gen, keff_max, \"*-\", label=\"Max radius\")\n", + "ax.plot(gen, rad_min, \"*-\", label=\"Min radius\")\n", + "ax.plot(gen, rad_max, \"*-\", label=\"Max radius\")\n", "ax.set_xlabel(\"Generation\", fontsize=18)\n", "ax.set_ylabel(\"Radius\", fontsize=18)\n", "ax.grid()\n", @@ -83,7 +94,7 @@ { "cell_type": "code", "execution_count": null, - "id": "b5b4a877-c3e3-4a55-894d-d215df60a027", + "id": "0284fa3a-8c42-4250-aea6-4ef7273ec086", "metadata": {}, "outputs": [], "source": [] diff --git a/examples/fhr-slab/rollo_input.json b/examples/fhr-slab/rollo_input.json index 076ff176..00456dac 100644 --- a/examples/fhr-slab/rollo_input.json +++ b/examples/fhr-slab/rollo_input.json @@ -6,7 +6,7 @@ }, "evaluators": { "openmc": { - "input_script": "openmcinp.py", + "input_script": "openmc_input.py", "inputs": ["sine_a", "sine_b", "sine_c"], "outputs": ["keff"], "keep_files": false @@ -20,13 +20,6 @@ "pop_size": 4, "generations": 10, "mutation_probability": 0.2374127402121101, - "mating_probability": 0.4699131568275016, - "selection_operator": {"operator": "selTournament", "inds": 1, "tournsize": 5}, - "mutation_operator": { - "operator": "mutPolynomialBounded", - "eta": 0.2374127402121101, - "indpb": 0.2374127402121101 - }, - "mating_operator": {"operator": "cxBlend", "alpha": 0.4699131568275016} + "mating_probability": 0.4699131568275016 } } From cf3ba30d8e94d181c883820d75c59aa367ed3836 Mon Sep 17 00:00:00 2001 From: gwenchee Date: Mon, 27 Sep 2021 16:54:52 -0500 Subject: [PATCH 24/27] fix default bug --- examples/fhr-slab/rollo_input.json | 15 ++------------- rollo/executor.py | 3 ++- rollo/input_validation.py | 8 ++++++-- 3 files changed, 10 insertions(+), 16 deletions(-) diff --git a/examples/fhr-slab/rollo_input.json b/examples/fhr-slab/rollo_input.json index 076ff176..9a0b0e06 100644 --- a/examples/fhr-slab/rollo_input.json +++ b/examples/fhr-slab/rollo_input.json @@ -6,7 +6,7 @@ }, "evaluators": { "openmc": { - "input_script": "openmcinp.py", + "input_script": "openmc_input.py", "inputs": ["sine_a", "sine_b", "sine_c"], "outputs": ["keff"], "keep_files": false @@ -16,17 +16,6 @@ "algorithm": { "parallel": "multiprocessing", "objective": ["max"], - "optimized_variable": ["keff"], - "pop_size": 4, - "generations": 10, - "mutation_probability": 0.2374127402121101, - "mating_probability": 0.4699131568275016, - "selection_operator": {"operator": "selTournament", "inds": 1, "tournsize": 5}, - "mutation_operator": { - "operator": "mutPolynomialBounded", - "eta": 0.2374127402121101, - "indpb": 0.2374127402121101 - }, - "mating_operator": {"operator": "cxBlend", "alpha": 0.4699131568275016} + "optimized_variable": ["keff"] } } diff --git a/rollo/executor.py b/rollo/executor.py index 8b461208..24c5bdb7 100644 --- a/rollo/executor.py +++ b/rollo/executor.py @@ -54,8 +54,9 @@ def execute(self): t0 = time.time() input_dict = self.read_input_file() iv = InputValidation(input_dict) + iv.add_all_defaults() iv.validate() - complete_input_dict = iv.add_all_defaults(input_dict) + complete_input_dict = iv.input # organize control variables and output dict control_dict, output_dict = self.organize_input_output(complete_input_dict) # generate evaluator function diff --git a/rollo/input_validation.py b/rollo/input_validation.py index 22ea5689..5750542c 100644 --- a/rollo/input_validation.py +++ b/rollo/input_validation.py @@ -18,7 +18,7 @@ class InputValidation: def __init__(self, input_dict): self.input = input_dict - def add_all_defaults(self, input_dict): + def add_all_defaults(self): """ Goes through the entire input_dict and adds default inputs if they are missing from the input_dict @@ -33,6 +33,7 @@ def add_all_defaults(self, input_dict): input file dict with additional missing default inputs """ + input_dict = self.input.copy() input_evaluators = {} for solver in input_dict["evaluators"]: input_evaluators[solver] = input_dict["evaluators"][solver] @@ -43,6 +44,8 @@ def add_all_defaults(self, input_dict): input_algorithm = self.default_check(input_algorithm, "objective", "min") input_algorithm = self.default_check(input_algorithm, "pop_size", 60) input_algorithm = self.default_check(input_algorithm, "generations", 10) + input_algorithm = self.default_check(input_algorithm, 'mutation_probability', 0.23) + input_algorithm = self.default_check(input_algorithm, 'mating_probability', 0.47) input_algorithm = self.default_check( input_algorithm, "selection_operator", {"operator": "selTournament", "inds": 15, 'tournsize': 5} ) @@ -57,7 +60,8 @@ def add_all_defaults(self, input_dict): reloaded_input_dict = input_dict.copy() reloaded_input_dict["evaluators"] = input_evaluators reloaded_input_dict["algorithm"] = input_algorithm - return reloaded_input_dict + self.input = reloaded_input_dict.copy() + return def default_check(self, input_dict, variable, default_val): """Checks if a single variable is missing from a dict, and adds a From 0d96539a0bb6d8e2d5e24b69328268959a1de569 Mon Sep 17 00:00:00 2001 From: gwenchee Date: Mon, 27 Sep 2021 17:04:25 -0500 Subject: [PATCH 25/27] pep --- rollo/input_validation.py | 85 +++++++++++++++++++++------------------ 1 file changed, 46 insertions(+), 39 deletions(-) diff --git a/rollo/input_validation.py b/rollo/input_validation.py index 5750542c..bfd4938a 100644 --- a/rollo/input_validation.py +++ b/rollo/input_validation.py @@ -4,14 +4,15 @@ class InputValidation: """The InputValidation class contains methods to read and validate the JSON - ROLLO input file to ensure the user defined all key parameters. If the user - did not, ROLLO raises an exception to tell the user which parameters are - missing. + ROLLO input + file to ensure the user defined all key parameters. If the user + did not, ROLLO raises an exception to tell the user which parameters are + missing. - Attributes - ---------- - input : dict - rollo json input file as a dict + Attributes + ---------- + input : dict + rollo json input file as a dict """ @@ -19,7 +20,7 @@ def __init__(self, input_dict): self.input = input_dict def add_all_defaults(self): - """ Goes through the entire input_dict and adds default inputs if they + """Goes through the entire input_dict and adds default inputs if they are missing from the input_dict Parameters @@ -44,10 +45,16 @@ def add_all_defaults(self): input_algorithm = self.default_check(input_algorithm, "objective", "min") input_algorithm = self.default_check(input_algorithm, "pop_size", 60) input_algorithm = self.default_check(input_algorithm, "generations", 10) - input_algorithm = self.default_check(input_algorithm, 'mutation_probability', 0.23) - input_algorithm = self.default_check(input_algorithm, 'mating_probability', 0.47) input_algorithm = self.default_check( - input_algorithm, "selection_operator", {"operator": "selTournament", "inds": 15, 'tournsize': 5} + input_algorithm, "mutation_probability", 0.23 + ) + input_algorithm = self.default_check( + input_algorithm, "mating_probability", 0.47 + ) + input_algorithm = self.default_check( + input_algorithm, + "selection_operator", + {"operator": "selTournament", "inds": 15, "tournsize": 5}, ) input_algorithm = self.default_check( input_algorithm, @@ -61,10 +68,10 @@ def add_all_defaults(self): reloaded_input_dict["evaluators"] = input_evaluators reloaded_input_dict["algorithm"] = input_algorithm self.input = reloaded_input_dict.copy() - return + return def default_check(self, input_dict, variable, default_val): - """Checks if a single variable is missing from a dict, and adds a + """Checks if a single variable is missing from a dict, and adds a default value if it is Parameters @@ -221,8 +228,8 @@ def validate_algorithm(self, input_algorithm, input_evaluators): # k value cannot be larger than pop size if input_algorithm["selection_operator"]["operator"] == "selTournament": if ( - input_algorithm["selection_operator"]["inds"] > - input_algorithm["pop_size"] + input_algorithm["selection_operator"]["inds"] + > input_algorithm["pop_size"] ): raise Exception("Population size must be larger than inds.") return @@ -261,9 +268,9 @@ def validate_algorithm_operators(self, operator_type, input_algorithm): op_op = op["operator"] except KeyError: print( - " You must define an operator for the " + - operator_type + - "_operator" + " You must define an operator for the " + + operator_type + + "_operator" ) raise else: @@ -465,11 +472,11 @@ def validate_evaluators(self, input_evaluators): a = input_evaluators[evaluator]["output_script"] except KeyError: print( - " You must define an output_script for evaluator: " + - evaluator + - " since the outputs: " + - str(which_strings) + - " are not inputs or pre-defined outputs." + " You must define an output_script for evaluator: " + + evaluator + + " since the outputs: " + + str(which_strings) + + " are not inputs or pre-defined outputs." ) raise return @@ -515,12 +522,12 @@ def validate_in_list(self, variable, accepted_variables, name): """ assert variable in accepted_variables, ( - " variable: " + - name + - ", only accepts: " + - str(accepted_variables) + - " not variable: " + - variable + " variable: " + + name + + ", only accepts: " + + str(accepted_variables) + + " not variable: " + + variable ) return @@ -548,19 +555,19 @@ def validate_correct_keys( a = dict_to_validate[key] for key in dict_to_validate: assert key in combined_key_names, ( - " Only " + - str(combined_key_names) + - " are accepted for " + - variable_type + - ", not variable: " + - key + " Only " + + str(combined_key_names) + + " are accepted for " + + variable_type + + ", not variable: " + + key ) except KeyError: print( - " " + - str(key_names) + - " variables must be defined for " + - variable_type + " " + + str(key_names) + + " variables must be defined for " + + variable_type ) raise except AssertionError as error: From 9957ed75ff527923e53f756a64032d40aaa8ef98 Mon Sep 17 00:00:00 2001 From: gwenchee Date: Mon, 27 Sep 2021 17:05:56 -0500 Subject: [PATCH 26/27] pep --- rollo/input_validation.py | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/rollo/input_validation.py b/rollo/input_validation.py index bfd4938a..98c13950 100644 --- a/rollo/input_validation.py +++ b/rollo/input_validation.py @@ -4,15 +4,14 @@ class InputValidation: """The InputValidation class contains methods to read and validate the JSON - ROLLO input - file to ensure the user defined all key parameters. If the user - did not, ROLLO raises an exception to tell the user which parameters are - missing. - - Attributes - ---------- - input : dict - rollo json input file as a dict + ROLLO input file to ensure the user defined all key parameters. If the + user did not, ROLLO raises an exception to tell the user which + parameters are missing. + + Attributes + ---------- + input : dict + rollo json input file as a dict """ From c56a704498883ad4cabe815cb485cd0e70d8f382 Mon Sep 17 00:00:00 2001 From: gwenchee Date: Mon, 27 Sep 2021 17:10:16 -0500 Subject: [PATCH 27/27] pep8 --- rollo/input_validation.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/rollo/input_validation.py b/rollo/input_validation.py index 98c13950..0092ea25 100644 --- a/rollo/input_validation.py +++ b/rollo/input_validation.py @@ -61,7 +61,9 @@ def add_all_defaults(self): {"operator": "mutPolynomialBounded", "eta": 0.23, "indpb": 0.23}, ) input_algorithm = self.default_check( - input_algorithm, "mating_operator", {"operator": "cxBlend", "alpha": 0.46} + input_algorithm, + "mating_operator", + {"operator": "cxBlend", "alpha": 0.46}, ) reloaded_input_dict = input_dict.copy() reloaded_input_dict["evaluators"] = input_evaluators @@ -267,7 +269,7 @@ def validate_algorithm_operators(self, operator_type, input_algorithm): op_op = op["operator"] except KeyError: print( - " You must define an operator for the " + " You must define an operator for " + operator_type + "_operator" ) @@ -471,7 +473,8 @@ def validate_evaluators(self, input_evaluators): a = input_evaluators[evaluator]["output_script"] except KeyError: print( - " You must define an output_script for evaluator: " + "" + + "You must define an output_script for evaluator: " + evaluator + " since the outputs: " + str(which_strings)