diff --git a/ISSUES.rst b/ISSUES.rst index d2ff61e..82833b4 100644 --- a/ISSUES.rst +++ b/ISSUES.rst @@ -1,16 +1,2 @@ List of known issues ==================== - -* ``Click`` // can't hide subcommand from help, ``hidden = True`` doesn't work. -* ``ideasUnvToFoam`` // can't import mesh with '-case' flag (temporary used ``os.chdir``). -* ``salome`` // removes commas from string list (example: "[1, 0, 0]") in the cli arguments. -* ``geompyBuilder`` // missing groups from father object in study tree. -* ``Anisotropy`` // writes ``Done`` status for failed operations (detected on mesh operations). -* ``Database`` // ``WHERE ..`` peewee operation error on update function with all control parameters (type, direction, theta) but fields are written to the database correctly. -* ``Database`` // awkward arguments and their order in the class init function. -* ``Mesh`` // outdated class. -* ``genmesh`` // awkward function, move precalculation parameters to Mesh class. -* ``Anisotropy`` // outdated functions for porosity and etc. -* ``Anisotropy`` // not sufficiently used variable ``env``. -* ``openfoam`` // outdated module, add functionality for FoamFile parsing, ``postProcess`` utility?. -* ``Database`` // add flexibility. \ No newline at end of file diff --git a/anisotropy/__init__.py b/anisotropy/__init__.py index c65c2ac..90032e9 100644 --- a/anisotropy/__init__.py +++ b/anisotropy/__init__.py @@ -1,6 +1,4 @@ # -*- coding: utf-8 -*- -# This file is part of anisotropy. -# License: GNU GPL version 3, see the file "LICENSE" for details. """anisotropy diff --git a/anisotropy/cli/__init__.py b/anisotropy/cli/__init__.py new file mode 100644 index 0000000..527449c --- /dev/null +++ b/anisotropy/cli/__init__.py @@ -0,0 +1,15 @@ +# -*- coding: utf-8 -*- + +from . import utils + +from .cli import anisotropy_cli + + +__all__ = [ + "utils", + "anisotropy_cli" +] + + +if __name__ == "__main__": + anisotropy_cli() diff --git a/anisotropy/cli/cli.py b/anisotropy/cli/cli.py new file mode 100644 index 0000000..fc2d7bd --- /dev/null +++ b/anisotropy/cli/cli.py @@ -0,0 +1,173 @@ +# -*- coding: utf-8 -*- + +import click +import os +import logging + +from . import utils + + +@click.group() +@click.version_option() +def anisotropy_cli(): + pass + + +@anisotropy_cli.command( + help = "Initialize new anisotropy project." +) +@click.option( + "-P", "--path", "path", + default = os.getcwd(), + help = "Specify directory to use (instead of cwd)" +) +@click.option( + "-v", "--verbose", "verbose", + count = True, + help = "Increase verbose level" +) +def init(path, verbose): + from anisotropy.core import config + from anisotropy.core import utils as core_utils + + core_utils.setupLogger(utils.verbose_level(verbose)) + logger = logging.getLogger(__name__) + + conf = config.DefaultConfig() + filepath = os.path.abspath(os.path.join(path, "anisotropy.toml")) + + logger.info(f"Saving file at { filepath }") + conf.dump(filepath) + + +@anisotropy_cli.command() +@click.option( + "-P", "--path", "path", + default = os.getcwd(), + help = "Specify directory to use (instead of cwd)" +) +@click.option( + "-C", "--conf", "configFile" +) +@click.option( + "-N", "--nprocs", "nprocs", + type = click.INT, + # default = 1, + help = "Count of parallel processes" +) +@click.option( + "-s", "--stage", "stage", + type = click.Choice(["all", "shape", "mesh", "flow", "postProcess"]), + # default = "all", + help = "Current computation stage" +) +@click.option( + "-f", "--force", "overwrite", + is_flag = True, + # default = False, + help = "Overwrite existing entries" +) +@click.option( + "-p", "--params", "params", + metavar = "key=value", + multiple = True, + cls = utils.KeyValueOption, + help = "Overwrite existing parameter (except control variables)" +) +@click.option( + "-v", "--verbose", "verbose", + count = True, + help = "Increase verbose level" +) +@click.option( + "--exec-id", "execution" +) +@click.option( + "--pid", "pid", + help = "Specify pid file path" +) +@click.option( + "--logfile", "logfile", + help = "Specify log file path" +) +def compute(path, configFile, nprocs, stage, overwrite, params, verbose, execution, pid, logfile): + import anisotropy + from anisotropy.core import UltimateRunner + from anisotropy.core import config + from anisotropy.core import utils as core_utils + + anisotropy.loadEnv() + + if path: + os.makedirs(os.path.abspath(path), exist_ok = True) + os.chdir(os.path.abspath(path)) + os.environ["ANISOTROPY_CWD"] = path + + core_utils.setupLogger(utils.verbose_level(verbose), logfile) + logger = logging.getLogger(__name__) + + conf = config.DefaultConfig() + + if configFile: + filepath = os.path.abspath(configFile) + logger.info(f"Loading file from { filepath }") + + try: + conf.load(configFile) + + except FileNotFoundError: + conf.dump(configFile) + + else: + logger.info("Using default configuration") + + args = { + "nprocs": nprocs, + "stage": stage, + "overwrite": overwrite + } + + for k, v in args.items(): + if v is not None: + conf.update(**{ k: v }) + + if pid: + pidpath = os.path.abspath(pid) + + with open(pidpath, "w") as io: + io.write(str(os.getpid())) + + runner = UltimateRunner(config = conf, exec_id = execution) + runner.fill() + runner.start() + + os.remove(pidpath) + logger.info("Computation done. Exiting ...") + + +@anisotropy_cli.command() +@click.option( + "-P", "--path", "path", + default = os.getcwd(), + help = "Specify directory to use (instead of cwd)" +) +@click.option( + "-v", "--verbose", "verbose", + count = True, + help = "Increase verbose level" +) +def gui(path, verbose): + import anisotropy + from anisotropy.core import core_utils + from anisotropy.gui import app + + anisotropy.loadEnv() + + os.makedirs(os.path.abspath(path), exist_ok = True) + os.chdir(os.path.abspath(path)) + os.environ["ANISOTROPY_CWD"] = path + + core_utils.setupLogger(utils.verboseLevel(verbose)) + # logger = logging.getLogger(__name__) + + app.run_server(debug = True) diff --git a/anisotropy/cli/utils.py b/anisotropy/cli/utils.py new file mode 100644 index 0000000..828f85b --- /dev/null +++ b/anisotropy/cli/utils.py @@ -0,0 +1,74 @@ +# -*- coding: utf-8 -*- + +import click +import ast +import logging + + +class LiteralOption(click.Option): + def type_cast_value(self, ctx, value): + try: + return ast.literal_eval(value) + + except Exception: + raise click.BadParameter(f"{ value } (Type error)") + + +class KeyValueOption(click.Option): + def _convert(self, ctx, value): + if not value: + return {} + + if value.find("=") == -1: + raise click.BadParameter(f"{ value } (Missed '=')") + + params = value.split("=") + + if not len(params) == 2: + raise click.BadParameter(f"{ value } (Syntax error)") + + key, val = params[0].strip(), params[1].strip() + + if val[0].isalpha(): + val = f"'{ val }'" + + try: + return { key: ast.literal_eval(val) } + + except Exception: + raise click.BadParameter(f"{ value } (Type error)") + + def type_cast_value(self, ctx, value): + if isinstance(value, list): + return [ self._convert(ctx, val) for val in value ] + + else: + return self._convert(ctx, value) + + +class CliListOption(click.Option): + def _convert(self, ctx, value): + if not value: + return [] + + output = [ val for val in value.split(",") ] + + if "" in output: + raise click.BadParameter(f"{ value } (Trying to pass empty item)") + + return output + + def type_cast_value(self, ctx, value): + if isinstance(value, list): + return [ self._convert(ctx, val) for val in value ] + + else: + return self._convert(ctx, value) + + +def verbose_level(level: int): + return { + 0: logging.ERROR, + 1: logging.INFO, + 2: logging.DEBUG + }.get(level, logging.ERROR) diff --git a/anisotropy/core/__init__.py b/anisotropy/core/__init__.py index 212a6ec..b670258 100644 --- a/anisotropy/core/__init__.py +++ b/anisotropy/core/__init__.py @@ -1,8 +1,17 @@ # -*- coding: utf-8 -*- -# This file is part of anisotropy. -# License: GNU GPL version 3, see the file "LICENSE" for details. -from .config import Config, DefaultConfig +from . import utils +from . import config +from . import postprocess + from .parallel import ParallelRunner from .runner import UltimateRunner -from .postProcess import PostProcess + + +__all__ = [ + "utils", + "config", + "postprocess", + "ParallelRunner", + "UltimateRunner" +] diff --git a/anisotropy/core/cli.py b/anisotropy/core/cli.py deleted file mode 100644 index e7d1906..0000000 --- a/anisotropy/core/cli.py +++ /dev/null @@ -1,400 +0,0 @@ -# -*- coding: utf-8 -*- -# This file is part of anisotropy. -# License: GNU GPL version 3, see the file "LICENSE" for details. - -import click -import ast -import os -import logging - - -class LiteralOption(click.Option): - def type_cast_value(self, ctx, value): - try: - return ast.literal_eval(value) - - except: - raise click.BadParameter(f"{ value } (Type error)") - -class KeyValueOption(click.Option): - def _convert(self, ctx, value): - if not value: - return {} - - if value.find("=") == -1: - raise click.BadParameter(f"{ value } (Missed '=')") - - params = value.split("=") - - if not len(params) == 2: - raise click.BadParameter(f"{ value } (Syntax error)") - - key, val = params[0].strip(), params[1].strip() - - if val[0].isalpha(): - val = f"'{ val }'" - - try: - return { key: ast.literal_eval(val) } - - except: - raise click.BadParameter(f"{ value } (Type error)") - - def type_cast_value(self, ctx, value): - if isinstance(value, list): - return [ self._convert(ctx, val) for val in value ] - - else: - return self._convert(ctx, value) - -class CliListOption(click.Option): - def _convert(self, ctx, value): - if not value: - return [] - - output = [ val for val in value.split(",") ] - - if "" in output: - raise click.BadParameter(f"{ value } (Trying to pass empty item)") - - return output - - - def type_cast_value(self, ctx, value): - if isinstance(value, list): - return [ self._convert(ctx, val) for val in value ] - - else: - return self._convert(ctx, value) - - -def verboseLevel(level: int): - return { - 0: logging.ERROR, - 1: logging.INFO, - 2: logging.DEBUG - }.get(level, logging.ERROR) - - -@click.group() -@click.version_option() -def anisotropy(): - pass - -@anisotropy.command( - help = "Initialize new anisotropy project." -) -@click.option( - "-P", "--path", "path", - default = os.getcwd(), - help = "Specify directory to use (instead of cwd)" -) -@click.option( - "-v", "--verbose", "verbose", - count = True, - help = "Increase verbose level" -) -def init(path, verbose): - from anisotropy.core.config import DefaultConfig - from anisotropy.core.utils import setupLogger - - setupLogger(verboseLevel(verbose)) - logger = logging.getLogger(__name__) - - config = DefaultConfig() - filepath = os.path.abspath(os.path.join(path, "anisotropy.toml")) - - logger.info(f"Saving file at { filepath }") - config.dump(filepath) - - -@anisotropy.command() -@click.option( - "-P", "--path", "path", - default = os.getcwd(), - help = "Specify directory to use (instead of cwd)" -) -@click.option( - "-C", "--conf", "configFile" -) -@click.option( - "-N", "--nprocs", "nprocs", - type = click.INT, - #default = 1, - help = "Count of parallel processes" -) -@click.option( - "-s", "--stage", "stage", - type = click.Choice(["all", "shape", "mesh", "flow", "postProcess"]), - #default = "all", - help = "Current computation stage" -) -@click.option( - "-f", "--force", "overwrite", - is_flag = True, - #default = False, - help = "Overwrite existing entries" -) -@click.option( - "-p", "--params", "params", - metavar = "key=value", - multiple = True, - cls = KeyValueOption, - help = "Overwrite existing parameter (except control variables)" -) -@click.option( - "-v", "--verbose", "verbose", - count = True, - help = "Increase verbose level" -) -@click.option( - "--exec-id", "execution" -) -@click.option( - "--pid", "pid", - help = "Specify pid file path" -) -@click.option( - "--logfile", "logfile", - help = "Specify log file path" -) -def compute(path, configFile, nprocs, stage, overwrite, params, verbose, execution, pid, logfile): - import anisotropy - from anisotropy.core.runner import UltimateRunner - from anisotropy.core.config import DefaultConfig - from anisotropy.core.utils import setupLogger - - anisotropy.loadEnv() - - if path: - os.makedirs(os.path.abspath(path), exist_ok = True) - os.chdir(os.path.abspath(path)) - os.environ["ANISOTROPY_CWD"] = path - - setupLogger(verboseLevel(verbose), logfile) - logger = logging.getLogger(__name__) - - config = DefaultConfig() - - if configFile: - filepath = os.path.abspath(configFile) - logger.info(f"Loading file from { filepath }") - - try: - config.load(configFile) - - except FileNotFoundError: - config.dump(configFile) - - else: - logger.info("Using default configuration") - - args = { - "nprocs": nprocs, - "stage": stage, - "overwrite": overwrite - } - - for k, v in args.items(): - if v is not None: - config.update(**{ k: v }) - - if pid: - pidpath = os.path.abspath(pid) - - with open(pidpath, "w") as io: - io.write(str(os.getpid())) - - runner = UltimateRunner(config = config, exec_id = execution) - runner.fill() - runner.start() - - os.remove(pidpath) - logger.info("Computation done. Exiting ...") - -@anisotropy.command() -@click.option( - "-P", "--path", "path", - default = os.getcwd(), - help = "Specify directory to use (instead of cwd)" -) -@click.option( - "-v", "--verbose", "verbose", - count = True, - help = "Increase verbose level" -) -def gui(path, verbose): - import anisotropy - from anisotropy.core.utils import setupLogger - from anisotropy.gui import app - - anisotropy.loadEnv() - - os.makedirs(os.path.abspath(path), exist_ok = True) - os.chdir(os.path.abspath(path)) - os.environ["ANISOTROPY_CWD"] = path - - setupLogger(verboseLevel(verbose)) - logger = logging.getLogger(__name__) - - app.run_server(debug = True) - - -############## -""" - - -@click.group() -@click.version_option(version = "", message = version()) -def anisotropy(): - pass - - -@anisotropy.command() -@click.option( - "-p", "--params", "params", - metavar = "key=value", - multiple = True, - cls = KeyValueOption, - help = "Select by control parameters (type, direction, theta)" -) -@click.option( - "-P", "--path", "path", - metavar = "PATH", - default = os.getcwd(), - help = "Specify directory to use (instead of cwd)" -) -@click.option( - "--list", "printlist", - is_flag = True, - help = "Print a list of avaliable fields." -) -@click.option( - "--export", - metavar = "PATH", - help = "Export output." -) -@click.option( - "--fields", "fields", - metavar = "f1,f2,...", - multiple = True, - cls = CliListOption, - help = "Select fields to use." -) -@click.argument( - "output", - required = False, - type = click.Choice(["cli", "plot"]), - default = "cli" -) -def show(params, path, printlist, export, fields, output): - from anisotropy import env - from anisotropy.core.database import Database, Structure - from pandas import DataFrame, Series - import matplotlib.pyplot as plt - - env.update( - LOG = os.path.join(path, "logs"), - BUILD = os.path.join(path, "build"), - CONFIG = os.path.join(path, "anisotropy.toml"), - db_path = path - ) - - args = dict() - - for param in params: - args.update(param) - - - ### - db = Database(env["db_name"], env["db_path"]) - db.setup() - - searchargs = [] - - if args.get("type"): - searchargs.append(Structure.type == args["type"]) - - if args.get("direction"): - searchargs.append(Structure.direction == str(args["direction"])) - - if args.get("theta"): - searchargs.append(Structure.theta == args["theta"]) - - result = db.search(searchargs) - result.sort(key = lambda src: f"{ src['type'] }{ src['direction'] }{ src['theta'] }") - - df = DataFrame(result) - df_keys = [ key for key in df.keys() ] - - if printlist: - click.echo("Avaliable fields for query:") - click.echo("\t{}".format("\n\t".join(df_keys))) - - return - - if not result: - click.echo("Empty result.") - - return - - tables = [] - - if fields: - for fieldslist in fields: - for field in fieldslist: - if field not in df_keys: - click.echo(f"Unknown field '{ field }'. Try to use '--list' flag to see all avaliable fields.") - - return - - tables.append(df[fieldslist]) - else: - tables.append(df) - - if output == "plot": - fig, ax = plt.subplots(nrows = 1, ncols = 1) - - for table in tables: - table.plot(table.keys()[0], table.keys()[1], ax = ax, style = "o") - - plt.legend() - plt.grid() - - if export: - supported = ["csv", "jpg"] - filepath, ext = os.path.splitext(export) - ext = ext.replace(".", "") - - if ext not in supported: - click.echo(f"Unknown extension '{ ext }'.") - - return - - if ext == "csv": - if len(tables) == 1: - tables[0].to_csv(export, sep = ";") - - else: - for n, table in enumerate(tables): - table.to_csv("{}.{}.{}".format(filepath, n, ext), sep = ";") - - elif ext == "jpg": - plt.savefig(export) - - else: - - if output == "cli": - res = "\n\n".join([ table.to_string() for table in tables ]) - click.echo(res) - - elif output == "plot": - plt.show() - -""" -### -# CLI entry -## -if __name__ == "__main__": - anisotropy() - diff --git a/anisotropy/core/config.py b/anisotropy/core/config.py index 106130c..899a828 100644 --- a/anisotropy/core/config.py +++ b/anisotropy/core/config.py @@ -4,8 +4,8 @@ import os import toml -from copy import deepcopy -from numpy import arange, array, round +import copy +import numpy as np class Config(object): @@ -41,7 +41,7 @@ class Config(object): raise FileNotFoundError(path) self.content = toml.load(path) - self.options = deepcopy(self.content["options"]) + self.options = copy.deepcopy(self.content["options"]) self.content.pop("options") def dump(self, filename: str): @@ -67,21 +67,20 @@ class Config(object): self.params = None def copy(self): - return deepcopy(self) + return copy.deepcopy(self) def expand(self): self.cases = [] # Expand structures for each direction and each alpha for structure in self.content["structures"]: - # ISSUE: precision error 0.06999999999999999 - structure = deepcopy(structure) - alphaA = round(arange( + structure = copy.deepcopy(structure) + alphaA = np.round(np.arange( structure["alpha"][0], structure["alpha"][1] + structure["alphaStep"], structure["alphaStep"] ), 9) - directionA = array(structure["directions"], dtype = float) + directionA = np.array(structure["directions"], dtype = float) structure.pop("alpha") structure.pop("directions") @@ -100,6 +99,7 @@ class Config(object): else: raise IndexError("list index out of range in cause of zero length of 'cases'") + class DefaultConfig(Config): def __init__(self): Config.__init__(self) diff --git a/anisotropy/core/parallel.py b/anisotropy/core/parallel.py index 8856317..556cc58 100644 --- a/anisotropy/core/parallel.py +++ b/anisotropy/core/parallel.py @@ -1,9 +1,6 @@ # -*- coding: utf-8 -*- -# This file is part of anisotropy. -# License: GNU GPL version 3, see the file "LICENSE" for details. - -from multiprocessing import Queue, Process +import multiprocessing as mlp import dill @@ -13,8 +10,8 @@ class ParallelRunner(object): self.daemon = daemon self.processes = [] - self.queueInput = Queue(maxsize = 1) - self.queueOutput = Queue() + self.queueInput = mlp.Queue(maxsize = 1) + self.queueOutput = mlp.Queue() self.__pos = -1 self.output = [] @@ -41,7 +38,7 @@ class ParallelRunner(object): def start(self): for n in range(self.nprocs): - self.processes.append(Process( + self.processes.append(mlp.Process( target = self.queueRelease, args = (self.queueInput, self.queueOutput), name = f"worker-{ n + 1 }" @@ -65,8 +62,3 @@ class ParallelRunner(object): proc.join() self.__pos = -1 - - - - - diff --git a/anisotropy/core/postProcess.py b/anisotropy/core/postprocess.py similarity index 55% rename from anisotropy/core/postProcess.py rename to anisotropy/core/postprocess.py index 1fd9fae..3499d9e 100644 --- a/anisotropy/core/postProcess.py +++ b/anisotropy/core/postprocess.py @@ -1,14 +1,12 @@ # -*- coding: utf-8 -*- -# This file is part of anisotropy. -# License: GNU GPL version 3, see the file "LICENSE" for details. from os import path import logging logger = logging.getLogger(__name__) -from anisotropy.openfoam.runnerPresets import postProcess -from anisotropy.openfoam import datReader +from anisotropy.openfoam import commands +from anisotropy.openfoam import conversion class PostProcess(object): @@ -18,8 +16,7 @@ class PostProcess(object): def flowRate(self, patch: str): func = "patchFlowRate(patch={})".format(patch) filepath = path.join(self.path, "postProcessing", func, "0", "surfaceFieldValue.dat") - postProcess(func, cwd = self.path, logpath = path.join(self.path, "patchFlowRate.log")) - surfaceFieldValue = datReader(filepath) + commands.postProcess(func, cwd = self.path, logpath = path.join(self.path, "patchFlowRate.log")) + surfaceFieldValue = conversion.datReader(filepath) return surfaceFieldValue["sum(phi)"][-1] - diff --git a/anisotropy/core/runner.py b/anisotropy/core/runner.py index ced246e..673f809 100644 --- a/anisotropy/core/runner.py +++ b/anisotropy/core/runner.py @@ -2,7 +2,7 @@ from datetime import datetime import os -from os import path, PathLike +from os import PathLike from pathlib import Path from anisotropy.core.config import DefaultConfig @@ -48,7 +48,6 @@ class UltimateRunner(object): # Parameters self.queue = [] - def createRow(self): # create a row in each table for the current case with self.database: @@ -72,7 +71,6 @@ class UltimateRunner(object): flow = T.FlowOnephase(mesh_id = mesh.mesh_id, **self.config.params) self.database.csave(mesh) - def fill(self): self.config.expand() logger.info(f"Preparing queue: { len(self.config.cases) }") @@ -88,7 +86,6 @@ class UltimateRunner(object): } self.queue.append(kwargs) - def start(self, queue: list = None, nprocs: int = None): nprocs = nprocs or self.config["nprocs"] @@ -101,7 +98,6 @@ class UltimateRunner(object): parallel.wait() - @property def casepath(self) -> PathLike: params = self.config.params @@ -115,7 +111,6 @@ class UltimateRunner(object): return path.resolve() - def computeShape(self): params = self.config.params shapeParams = self.database.getShape( @@ -148,14 +143,14 @@ class UltimateRunner(object): filletsEnabled = shapeParams.filletsEnabled ) - with ErrorHandler() as (eh, handler): - handler(shape.build)() + with ErrorHandler() as (eh, handle): + handle(shape.build)() if not eh.returncode: self.casepath.mkdir(exist_ok = True) - with ErrorHandler() as (eh, handler): - handler(shape.write)(shapeFile) + with ErrorHandler() as (eh, handle): + handle(shape.write)(shapeFile) if not eh.returncode: shapeParams.shapeStatus = "done" @@ -170,9 +165,8 @@ class UltimateRunner(object): shapeParams.shapeExecutionTime = timer.elapsed() self.database.csave(shapeParams) - def computeMesh(self): - out, err, returncode = "", "", 0 + err, returncode = "", 0 params = self.config.params meshParams = self.database.getMesh( params["label"], @@ -238,7 +232,6 @@ class UltimateRunner(object): meshParams.meshExecutionTime = timer.elapsed() meshParams.save() - def computeFlow(self): params = self.config.params query = ( @@ -286,21 +279,20 @@ class UltimateRunner(object): out, err, returncode = flow.build() except Exception as e: - out, err, returncode = "", e, 1 + # out, err, returncode = "", e, 1 logger.error(e, exc_info = True) if returncode == 0: flowParams.flowStatus = "done" else: - #logger.error(err) + # logger.error(err) flowParams.flowStatus = "failed" with self.database: flowParams.flowExecutionTime = timer.elapsed() flowParams.save() - def computePostProcess(self): params = self.config.params flowParams = self.database.getFlowOnephase( @@ -344,6 +336,3 @@ class UltimateRunner(object): runner = UltimateRunner(config = kwargs["config"], exec_id = kwargs["exec_id"], typo = "worker") runner.createRow() runner.pipeline() - - - diff --git a/anisotropy/core/utils.py b/anisotropy/core/utils.py index 2f9570e..5732da8 100644 --- a/anisotropy/core/utils.py +++ b/anisotropy/core/utils.py @@ -1,11 +1,7 @@ # -*- coding: utf-8 -*- -# This file is part of anisotropy. -# License: GNU GPL version 3, see the file "LICENSE" for details. import logging -import copy import time -from types import FunctionType import contextlib @@ -76,128 +72,6 @@ def setupLogger(level: int, filepath: str = None): logging.root.addHandler(filehandler) -class struct: - def __init__(self, *args, **kwargs): - if len(args) > 0: - if type(args[0]) == dict: - for (k, v) in args[0].items(): - if type(v) == dict: - setattr(self, k, struct(v)) - - else: - setattr(self, k, v) - else: - self.__dict__.update(kwargs) - - def __iter__(self): - for k in self.__dict__: - if type(getattr(self, k)) == struct: - yield k, dict(getattr(self, k)) - - else: - yield k, getattr(self, k) - - def __str__(self): - members = [] - - for key in self.__dict__.keys(): - members.append(f"{ key } = ") - - if type(self.__dict__[key]) == str: - members[len(members) - 1] += f"\"{ self.__dict__[key] }\"" - - else: - members[len(members) - 1] += f"{ self.__dict__[key] }" - - return f"struct({', '.join(members)})" - - def __repr__(self): - return str(self) - - -def deepupdate(target, src): - for k, v in src.items(): - if isinstance(v, dict): - if k not in target: - target[k] = copy.deepcopy(v) - - else: - deepupdate(target[k], v) - - else: - target[k] = copy.copy(v) - - -def collapse(source, key = None, level = 0, sep = "_"): - if isinstance(source, dict) and source: - level = level + 1 - res = {} - - for k, v in source.items(): - ret, lvl = collapse(v, k, level) - - for kk, vv in ret.items(): - if level == lvl: - newkey = k - - else: - newkey = "{}{}{}".format(k, sep, kk) - - res.update({ newkey: vv }) - - if level == 1: - return res - - else: - return res, level - - else: - return { key: source }, level - - -def expand(source, sep = "_"): - res = {} - - for k, v in source.items(): - if k.find(sep) == -1: - res.update({ k: v }) - - else: - keys = k.split(sep) - cur = res - - for n, kk in enumerate(keys): - if not len(keys) == n + 1: - if not cur.get(kk): - cur.update({ kk: {} }) - - cur = cur[kk] - - else: - cur[kk] = v - return res - - -def timer(func: FunctionType) -> (tuple, float): - """(Decorator) Returns output of inner function and execution time - - :param func: inner function - :type func: FunctionType - - :return: output, elapsed time - :rtype: tuple(tuple, float) - """ - - def inner(*args, **kwargs): - start = time.monotonic() - ret = func(*args, **kwargs) - elapsed = time.monotonic() - start - - return ret, elapsed - - return inner - - class Timer(object): def __init__(self): self.update() @@ -216,7 +90,7 @@ class ErrorHandler(contextlib.AbstractContextManager): self.traceback = None def __enter__(self): - return self, self.handler + return self, self.handle def __exit__(self, exc_type, exc_value, traceback): if exc_type: diff --git a/anisotropy/gui/__init__.py b/anisotropy/gui/__init__.py index ca07f06..a6814f2 100644 --- a/anisotropy/gui/__init__.py +++ b/anisotropy/gui/__init__.py @@ -1,8 +1,7 @@ # -*- coding: utf-8 -*- -# This file is part of anisotropy. -# License: GNU GPL version 3, see the file "LICENSE" for details. -from .main import app +from .layouts.main import app + if __name__ == "__main__": - app.run_server(debug = True) \ No newline at end of file + app.run_server(debug = True) diff --git a/anisotropy/gui/app.py b/anisotropy/gui/app.py index 5e9f9ba..dcc1661 100644 --- a/anisotropy/gui/app.py +++ b/anisotropy/gui/app.py @@ -1,6 +1,4 @@ # -*- coding: utf-8 -*- -# This file is part of anisotropy. -# License: GNU GPL version 3, see the file "LICENSE" for details. import dash import dash_bootstrap_components as dbc @@ -9,4 +7,4 @@ app = dash.Dash(__name__, external_stylesheets = [ dbc.themes.LUX ]) app.title = "anisotropy" app.config.update( update_title = None -) \ No newline at end of file +) diff --git a/anisotropy/gui/layouts/__init__.py b/anisotropy/gui/layouts/__init__.py new file mode 100644 index 0000000..40a96af --- /dev/null +++ b/anisotropy/gui/layouts/__init__.py @@ -0,0 +1 @@ +# -*- coding: utf-8 -*- diff --git a/anisotropy/gui/about.py b/anisotropy/gui/layouts/about.py similarity index 67% rename from anisotropy/gui/about.py rename to anisotropy/gui/layouts/about.py index c5afcb0..7f3d955 100644 --- a/anisotropy/gui/about.py +++ b/anisotropy/gui/layouts/about.py @@ -1,12 +1,7 @@ # -*- coding: utf-8 -*- -# This file is part of anisotropy. -# License: GNU GPL version 3, see the file "LICENSE" for details. from dash import html -from dash import dcc -import dash_bootstrap_components as dbc -from .styles import * import anisotropy diff --git a/anisotropy/gui/database.py b/anisotropy/gui/layouts/database.py similarity index 94% rename from anisotropy/gui/database.py rename to anisotropy/gui/layouts/database.py index b58e589..122a1d0 100644 --- a/anisotropy/gui/database.py +++ b/anisotropy/gui/layouts/database.py @@ -1,6 +1,4 @@ # -*- coding: utf-8 -*- -# This file is part of anisotropy. -# License: GNU GPL version 3, see the file "LICENSE" for details. from dash.dash_table import DataTable from dash import html @@ -10,8 +8,8 @@ from dash.dependencies import Input, Output, State import os -from .app import app -from .styles import * +from ..app import app +from ..styles import * ### diff --git a/anisotropy/gui/main.py b/anisotropy/gui/layouts/main.py similarity index 93% rename from anisotropy/gui/main.py rename to anisotropy/gui/layouts/main.py index 84db149..5e4b381 100644 --- a/anisotropy/gui/main.py +++ b/anisotropy/gui/layouts/main.py @@ -1,6 +1,4 @@ # -*- coding: utf-8 -*- -# This file is part of anisotropy. -# License: GNU GPL version 3, see the file "LICENSE" for details. from dash import html from dash import dcc @@ -14,8 +12,8 @@ from . import ( visualization, about ) -from .app import app -from .styles import * +from ..app import app +from ..styles import * import anisotropy ### diff --git a/anisotropy/gui/runner.py b/anisotropy/gui/layouts/runner.py similarity index 96% rename from anisotropy/gui/runner.py rename to anisotropy/gui/layouts/runner.py index 7aa1bea..683d86c 100644 --- a/anisotropy/gui/runner.py +++ b/anisotropy/gui/layouts/runner.py @@ -1,6 +1,4 @@ # -*- coding: utf-8 -*- -# This file is part of anisotropy. -# License: GNU GPL version 3, see the file "LICENSE" for details. from dash.dash_table import DataTable from dash import html @@ -10,9 +8,9 @@ from dash.dependencies import Input, Output, State import os -from .app import app -from .styles import * -from .utils import getSize +from ..app import app +from ..styles import * +from ..utils import getSize ### diff --git a/anisotropy/gui/settings.py b/anisotropy/gui/layouts/settings.py similarity index 95% rename from anisotropy/gui/settings.py rename to anisotropy/gui/layouts/settings.py index c61f420..dad9fc4 100644 --- a/anisotropy/gui/settings.py +++ b/anisotropy/gui/layouts/settings.py @@ -1,6 +1,4 @@ # -*- coding: utf-8 -*- -# This file is part of anisotropy. -# License: GNU GPL version 3, see the file "LICENSE" for details. from dash import html from dash import dcc @@ -8,8 +6,8 @@ import dash_bootstrap_components as dbc from dash.dependencies import Input, Output, State import os -from .app import app -from .styles import * +from ..app import app +from ..styles import * ### diff --git a/anisotropy/gui/visualization.py b/anisotropy/gui/layouts/visualization.py similarity index 98% rename from anisotropy/gui/visualization.py rename to anisotropy/gui/layouts/visualization.py index 7c1abd7..7e2788b 100644 --- a/anisotropy/gui/visualization.py +++ b/anisotropy/gui/layouts/visualization.py @@ -1,6 +1,4 @@ # -*- coding: utf-8 -*- -# This file is part of anisotropy. -# License: GNU GPL version 3, see the file "LICENSE" for details. from dash.dash_table import DataTable from dash import html @@ -12,8 +10,8 @@ import dash_vtk.utils import vtk import os -from .app import app -from . import styles +from ..app import app +from .. import styles class MeshRepresentation(object): diff --git a/anisotropy/gui/styles.py b/anisotropy/gui/styles.py index 8f1696e..51406ce 100644 --- a/anisotropy/gui/styles.py +++ b/anisotropy/gui/styles.py @@ -1,6 +1,4 @@ # -*- coding: utf-8 -*- -# This file is part of anisotropy. -# License: GNU GPL version 3, see the file "LICENSE" for details. minWidth = { "min-width": "200px", diff --git a/anisotropy/gui/utils.py b/anisotropy/gui/utils.py index 97276c2..08baa98 100644 --- a/anisotropy/gui/utils.py +++ b/anisotropy/gui/utils.py @@ -1,6 +1,4 @@ # -*- coding: utf-8 -*- -# This file is part of anisotropy. -# License: GNU GPL version 3, see the file "LICENSE" for details. def getSize(bytes): for unit in ["", "K", "M", "G", "T", "P"]: diff --git a/anisotropy/solving/__init__.py b/anisotropy/solving/__init__.py index f632f63..94e2efa 100644 --- a/anisotropy/solving/__init__.py +++ b/anisotropy/solving/__init__.py @@ -1,5 +1,3 @@ # -*- coding: utf-8 -*- -# This file is part of anisotropy. -# License: GNU GPL version 3, see the file "LICENSE" for details. from .onephase import OnePhaseFlow diff --git a/anisotropy/solving/onephase.py b/anisotropy/solving/onephase.py index 99ff7e4..5ff789b 100644 --- a/anisotropy/solving/onephase.py +++ b/anisotropy/solving/onephase.py @@ -1,6 +1,4 @@ # -*- coding: utf-8 -*- -# This file is part of anisotropy. -# License: GNU GPL version 3, see the file "LICENSE" for details. import anisotropy.openfoam.presets as F import anisotropy.openfoam.runnerPresets as R diff --git a/playground/analytics.ipynb b/playground/analytics.ipynb deleted file mode 100644 index 10bc570..0000000 --- a/playground/analytics.ipynb +++ /dev/null @@ -1,1035 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 2, - "id": "cbaf1c39-e423-47a3-a3ea-e78a528bc4c1", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n" - ] - } - ], - "source": [ - "from anisotropy.database import database, tables as T\n", - "import pandas\n", - "from pandas import DataFrame, Series\n", - "import matplotlib.pyplot as plt\n", - "#import seaborn\n", - "import numpy\n", - "import warnings\n", - "\n", - "# ignore some warnings, especially from seaborn\n", - "warnings.filterwarnings('ignore')" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "09b1bf83-6b42-4144-81a0-b57c661181b1", - "metadata": {}, - "outputs": [], - "source": [ - "db = Database(\"anisotropy\", \"woPrismaticLayer\")\n", - "db.setup()" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "f341fbd4-797b-4d5d-8393-0f7cf2e67883", - "metadata": {}, - "outputs": [], - "source": [ - "res = db.search([])\n", - "df = DataFrame(res)\n", - "\n", - "df_prep = df[[\n", - " col for col in df.columns \n", - " if not isinstance(df[col][0], str) \n", - " and not isinstance(df[col][0], numpy.bool_)\n", - " and not isinstance(df[col][0], dict)\n", - " and not isinstance(df[col][0], list)\n", - " and not df[col][0] is None\n", - " and not col[-3: ] == \"_id\"\n", - "]]" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "id": "c2dbce30-d80a-4b78-b2a6-cf9c2075f5b5", - "metadata": {}, - "outputs": [], - "source": [ - "df_prep = df_prep.assign(direction = df[\"direction\"].astype(\"str\"))\n", - "df_prep = df_prep.assign(type = df[\"type\"])" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "id": "d182461e-1e42-4e0b-8dd2-ba6425654ee7", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "seaborn.set_style('whitegrid')\n", - "seaborn.lmplot(\n", - " x = \"theta\", y = \"flowRate\", \n", - " hue = \"direction\", col = \"type\", \n", - " data = df_prep, order = 3, \n", - " sharex = False, sharey = False, ci = None)" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "7b7092aa-de0e-430c-9ed5-07483b278d45", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
typedirectionthetameshStatusflowStatus
101bodyCentered[0.0, 0.0, 1.0]0.01DoneFailed
113bodyCentered[0.0, 0.0, 1.0]0.13DoneFailed
114bodyCentered[0.0, 0.0, 1.0]0.14FailedIdle
115bodyCentered[0.0, 0.0, 1.0]0.15FailedIdle
117bodyCentered[0.0, 0.0, 1.0]0.17FailedIdle
96bodyCentered[1.0, 0.0, 0.0]0.13DoneFailed
97bodyCentered[1.0, 0.0, 0.0]0.14FailedIdle
98bodyCentered[1.0, 0.0, 0.0]0.15FailedIdle
99bodyCentered[1.0, 0.0, 0.0]0.16FailedIdle
100bodyCentered[1.0, 0.0, 0.0]0.17FailedIdle
128bodyCentered[1.0, 1.0, 1.0]0.11FailedIdle
129bodyCentered[1.0, 1.0, 1.0]0.12FailedIdle
130bodyCentered[1.0, 1.0, 1.0]0.13FailedIdle
131bodyCentered[1.0, 1.0, 1.0]0.14FailedIdle
132bodyCentered[1.0, 1.0, 1.0]0.15FailedIdle
133bodyCentered[1.0, 1.0, 1.0]0.16FailedIdle
134bodyCentered[1.0, 1.0, 1.0]0.17FailedIdle
152faceCentered[0.0, 0.0, 1.0]0.06FailedIdle
155faceCentered[0.0, 0.0, 1.0]0.09FailedIdle
156faceCentered[0.0, 0.0, 1.0]0.10FailedIdle
157faceCentered[0.0, 0.0, 1.0]0.11FailedIdle
158faceCentered[0.0, 0.0, 1.0]0.12FailedIdle
137faceCentered[1.0, 0.0, 0.0]0.03FailedIdle
143faceCentered[1.0, 0.0, 0.0]0.09FailedIdle
144faceCentered[1.0, 0.0, 0.0]0.10FailedIdle
145faceCentered[1.0, 0.0, 0.0]0.11FailedIdle
146faceCentered[1.0, 0.0, 0.0]0.12FailedIdle
167faceCentered[1.0, 1.0, 1.0]0.09FailedIdle
168faceCentered[1.0, 1.0, 1.0]0.10FailedIdle
169faceCentered[1.0, 1.0, 1.0]0.11FailedIdle
170faceCentered[1.0, 1.0, 1.0]0.12FailedIdle
58simple[1.0, 1.0, 1.0]0.03FailedIdle
60simple[1.0, 1.0, 1.0]0.05FailedIdle
61simple[1.0, 1.0, 1.0]0.06FailedIdle
64simple[1.0, 1.0, 1.0]0.09FailedIdle
65simple[1.0, 1.0, 1.0]0.10FailedIdle
66simple[1.0, 1.0, 1.0]0.11FailedIdle
67simple[1.0, 1.0, 1.0]0.12FailedIdle
68simple[1.0, 1.0, 1.0]0.13FailedIdle
69simple[1.0, 1.0, 1.0]0.14FailedIdle
70simple[1.0, 1.0, 1.0]0.15FailedIdle
82simple[1.0, 1.0, 1.0]0.27DoneFailed
83simple[1.0, 1.0, 1.0]0.28DoneFailed
\n", - "
" - ], - "text/plain": [ - " type direction theta meshStatus flowStatus\n", - "101 bodyCentered [0.0, 0.0, 1.0] 0.01 Done Failed\n", - "113 bodyCentered [0.0, 0.0, 1.0] 0.13 Done Failed\n", - "114 bodyCentered [0.0, 0.0, 1.0] 0.14 Failed Idle\n", - "115 bodyCentered [0.0, 0.0, 1.0] 0.15 Failed Idle\n", - "117 bodyCentered [0.0, 0.0, 1.0] 0.17 Failed Idle\n", - "96 bodyCentered [1.0, 0.0, 0.0] 0.13 Done Failed\n", - "97 bodyCentered [1.0, 0.0, 0.0] 0.14 Failed Idle\n", - "98 bodyCentered [1.0, 0.0, 0.0] 0.15 Failed Idle\n", - "99 bodyCentered [1.0, 0.0, 0.0] 0.16 Failed Idle\n", - "100 bodyCentered [1.0, 0.0, 0.0] 0.17 Failed Idle\n", - "128 bodyCentered [1.0, 1.0, 1.0] 0.11 Failed Idle\n", - "129 bodyCentered [1.0, 1.0, 1.0] 0.12 Failed Idle\n", - "130 bodyCentered [1.0, 1.0, 1.0] 0.13 Failed Idle\n", - "131 bodyCentered [1.0, 1.0, 1.0] 0.14 Failed Idle\n", - "132 bodyCentered [1.0, 1.0, 1.0] 0.15 Failed Idle\n", - "133 bodyCentered [1.0, 1.0, 1.0] 0.16 Failed Idle\n", - "134 bodyCentered [1.0, 1.0, 1.0] 0.17 Failed Idle\n", - "152 faceCentered [0.0, 0.0, 1.0] 0.06 Failed Idle\n", - "155 faceCentered [0.0, 0.0, 1.0] 0.09 Failed Idle\n", - "156 faceCentered [0.0, 0.0, 1.0] 0.10 Failed Idle\n", - "157 faceCentered [0.0, 0.0, 1.0] 0.11 Failed Idle\n", - "158 faceCentered [0.0, 0.0, 1.0] 0.12 Failed Idle\n", - "137 faceCentered [1.0, 0.0, 0.0] 0.03 Failed Idle\n", - "143 faceCentered [1.0, 0.0, 0.0] 0.09 Failed Idle\n", - "144 faceCentered [1.0, 0.0, 0.0] 0.10 Failed Idle\n", - "145 faceCentered [1.0, 0.0, 0.0] 0.11 Failed Idle\n", - "146 faceCentered [1.0, 0.0, 0.0] 0.12 Failed Idle\n", - "167 faceCentered [1.0, 1.0, 1.0] 0.09 Failed Idle\n", - "168 faceCentered [1.0, 1.0, 1.0] 0.10 Failed Idle\n", - "169 faceCentered [1.0, 1.0, 1.0] 0.11 Failed Idle\n", - "170 faceCentered [1.0, 1.0, 1.0] 0.12 Failed Idle\n", - "58 simple [1.0, 1.0, 1.0] 0.03 Failed Idle\n", - "60 simple [1.0, 1.0, 1.0] 0.05 Failed Idle\n", - "61 simple [1.0, 1.0, 1.0] 0.06 Failed Idle\n", - "64 simple [1.0, 1.0, 1.0] 0.09 Failed Idle\n", - "65 simple [1.0, 1.0, 1.0] 0.10 Failed Idle\n", - "66 simple [1.0, 1.0, 1.0] 0.11 Failed Idle\n", - "67 simple [1.0, 1.0, 1.0] 0.12 Failed Idle\n", - "68 simple [1.0, 1.0, 1.0] 0.13 Failed Idle\n", - "69 simple [1.0, 1.0, 1.0] 0.14 Failed Idle\n", - "70 simple [1.0, 1.0, 1.0] 0.15 Failed Idle\n", - "82 simple [1.0, 1.0, 1.0] 0.27 Done Failed\n", - "83 simple [1.0, 1.0, 1.0] 0.28 Done Failed" - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "failed = df[[\"type\", \"direction\", \"theta\", \"meshStatus\", \"flowStatus\"]][\n", - " (df[\"meshStatus\"] == \"Failed\") | (df[\"flowStatus\"] == \"Failed\")\n", - "].assign(\n", - " direction = df[\"direction\"].astype(\"str\")\n", - ").sort_values(\n", - " by = [\"type\", \"direction\", \"theta\"]\n", - ")\n", - "failed" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "id": "1a25020c-5bcc-4e46-985f-cfe55c30d117", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 12, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "simple3 = df.assign(direction = df[\"direction\"].astype(\"str\"))\n", - "simple3 = simple3[\n", - " (simple3[\"type\"] == \"simple\") & (simple3[\"direction\"] == \"[1.0, 1.0, 1.0]\")\n", - "]\n", - "\n", - "seaborn.scatterplot(data = simple3, x = \"theta\", y = \"chordalError\", hue = \"meshStatus\")\n", - "seaborn.lineplot(data = simple3, x = \"theta\", y = \"minSize\", color = \"grey\", label = \"minSize\")\n", - "seaborn.lineplot(data = simple3, x = \"theta\", y = \"maxSize\", color = \"black\", label = \"maxSize\")" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "id": "78e0c05f-3161-404a-9ed7-cd9ebc981a43", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 13, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "seaborn.scatterplot(data = simple3.round({ \"fillets\": 2 }), x = \"theta\", y = \"fillets\", hue = \"meshStatus\")" - ] - }, - { - "cell_type": "code", - "execution_count": 42, - "id": "7d6de026-fe25-497f-a872-66b249e0e979", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 42, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "simple1 = df.assign(direction = df[\"direction\"].astype(\"str\"))\n", - "simple1 = simple1[\n", - " (simple1[\"type\"] == \"simple\") & (simple1[\"direction\"] == \"[1.0, 0.0, 0.0]\")\n", - "]\n", - "\n", - "seaborn.scatterplot(data = simple1, x = \"theta\", y = \"chordalError\", hue = \"meshStatus\")\n", - "seaborn.lineplot(data = simple1, x = \"theta\", y = \"minSize\", color = \"grey\", label = \"minSize\")\n", - "seaborn.lineplot(data = simple1, x = \"theta\", y = \"maxSize\", color = \"black\", label = \"maxSize\")" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "id": "e994037e-e266-444a-9ee3-80cccdf8386f", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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e+310Zj+Pv74Y6699lr69OkDQFhYGGazudl7qEljejOZTJw7d47KykrKysoICAigXbt23mjjsurTW2RkJH369MHPr+qvwR07djBs2DA6duxIhw4dGDZsGNu3b2/O8uvUmP569uxJjx49gAu37+7UqRNFRUVuvb6CoxnY7XbCw8Ndjy0WC3a7vdqciIgI4MLdE0NDQykuLq4yJz09neuuu47AwEDPF11PjentzJkzvPzyy8ydO7dZa3ZHY/o7dOgQJpOJn/70p6SkpPDyyy83a+11aUxviYmJtGnThuHDhzNy5Eh+8pOf0LFjx+Ysv1b16c0TyzaXpqoxKyuLiooKrr76areW89itY6VpHTx4kNTUVF599VVvl9Jk/ud//odZs2bRtm1bb5fiEU6nk3/+85+sW7eONm3aMHv2bPr168fQoUO9XVqjZWVl4efnx/bt2zl9+jQ/+tGPuOmmm4iKivJ2aVJPx44dY+HChTzzzDPVvpXURd84moHFYqGwsND12G63uzY/XTqnoKAAgMrKSkpKSggLCwOgsLCQuXPn8swzz7j9ycDTGtPbF198QWpqKlarlT/+8Y+sXr2aN954o1nrr0tj+gsPD+eGG26gU6dOtGnThptvvpl9+/Y1a/21aUxvmzdvZsSIEQQEBNC5c2eGDBnCv/71r2atvzb16c0TyzaXxtZYWlrKPffcwwMPPFDjhQxro+BoBv379yc3N5e8vDwcDgc2mw2r1VpljtVqdR29kZ6eTnx8PCaTidOnT3P33Xfz4IMP8l//9V/eKL9WjentzTffJDMzk8zMTGbNmsU999zDbbfd5o02atSY/oYPH86BAwdc+wJ2795NTEyMN9q4rMb0FhERwa5duwA4e/YsX3zxBb169Wr2HmpSn95qMnz4cHbs2MGpU6c4deoUO3bsYPjw4R6u2D2N6c/hcPDzn/+c5ORkxo4d27ACGrVrX+pt69atxpgxY4xRo0YZL774omEYhvHcc88ZH374oWEYhlFWVmbcd999xujRo42pU6cahw8fNgzDMH73u98ZAwcONCZNmuT6c/z4ca/1cTkN7e1Szz///BV5VJVhNK6/9957zxg/fryRlJRkPPPMM16pvzYN7a20tNS47777jPHjxxvjxo0zXn75Za/1UJO6evviiy+MESNGGAMHDjRuvPFGY/z48a5l165da4wePdoYPXq0sW7dOq/UX5eG9vfee+8Z1113XZXfKV999ZVbr63LqouIiFu0qUpERNyi4BAREbcoOERExC0KDhERcYuCQ0RE3KLgEGkip0+f5s9//jMAu3bt4p577nFr+fXr119xl7YQuRwFh0gTOX36NG+99VaDl9+wYQPHjh1rwopEPEPncYg0kQceeICMjAx69uyJv78/ISEhhIWFceDAAfr27Utqaiomk4kvv/ySp59+mrNnzxIWFsaKFSv4/PPPWbx4MVdddRXBwcG88847pKWl8dFHH1FeXs7gwYNZvnw5JpPJ222K6MxxkaaSl5dnJCUlGYZhGJ9++qkxZMgQo6CgwHA6ncatt95q7N6923A4HMaMGTOMEydOGIZhGDabzVi0aJFhGIZx2223GVlZWa71FRcXu/7+0EMPGRkZGc3XjEgtdHVcEQ8ZMGCA69LXffr04ciRI7Rv354DBw5w5513AnD+/Hm6du162eV37dpFWloaZWVlnDx5ktjY2Hpfj0jEkxQcIh5y6X1TzGYzTqcTwzCIjY3lnXfeqXXZ8vJyli1bxrvvvktERAQvvPDCFXfbWWm9tHNcpIm0bduWM2fO1DqnZ8+eFBUVsWfPHuDCvbsPHjxYbfmLIREWFsaZM2dIT0/3YOUi7tE3DpEmEhYWxpAhQ5gwYQJBQUF06dKl2pzAwECef/55nnzySUpKSnA6ncyaNYvY2FhSUlJ47LHHXDvHp0+fzoQJE+jSpQv9+/f3Qkcil6ejqkRExC3aVCUiIm5RcIiIiFsUHCIi4hYFh4iIuEXBISIiblFwiIiIWxQcIiLilv8Ph1Ca1nVT56sAAAAASUVORK5CYII=\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "fc = df.assign(direction = df[\"direction\"].astype(\"str\"))\n", - "fc = fc[\n", - " (fc[\"type\"] == \"faceCentered\") & (fc[\"direction\"] == \"[1.0, 1.0, 1.0]\")\n", - "]\n", - "seaborn.set_style('whitegrid')\n", - "seaborn.scatterplot(data = fc, x = \"theta\", y = \"fillets\", hue = \"meshStatus\")" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "id": "b541a36e-f3b2-4b50-bfc9-ec8958666053", - "metadata": {}, - "outputs": [], - "source": [ - "general: list = db.loadGeneral()\n", - "dfe: list = [] #DataFrame()" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "2d93a051-acab-448b-a7fd-5fe281cc323f", - "metadata": {}, - "outputs": [], - "source": [ - "def pandasify(listOfDicts):\n", - " dfe: list = []\n", - " \n", - " for entry in listOfDicts:\n", - " structure: dict = entry[\"structure\"]\n", - " extended: dict = db.load(structure[\"type\"], structure[\"direction\"], structure[\"theta\"])\n", - " fields: list = extended.keys()\n", - "\n", - " for key in fields:\n", - " extended[key] = pandas.json_normalize(extended[key])\n", - "\n", - " dfe.append(extended)\n", - "\n", - " dfe: DataFrame = DataFrame(dfe)\n", - " dfe: Series = Series(\n", - " [ pandas.concat(dfe[field].to_list(), ignore_index = True) for field in dfe.keys() ],\n", - " dfe.keys()\n", - " )\n", - " \n", - " return dfe" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "437d9432-206e-4d23-a5cb-d9958b65f68a", - "metadata": {}, - "outputs": [], - "source": [ - "from anisotropy.core.main import Anisotropy" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "id": "756351e4-34b6-49d1-8cdb-29e3def4361d", - "metadata": {}, - "outputs": [], - "source": [ - "model = Anisotropy()\n", - "params = model.loadFromScratch(\"test_anisotropy.toml\")" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "id": "a6a7b464-045a-4d81-a7ad-eca75590179f", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "171" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "len(params)" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "id": "cdbc661b-701f-475b-a72a-51b3bd2937ee", - "metadata": {}, - "outputs": [], - "source": [ - "dfparams = pandasify(params)" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "id": "73e04119-9f70-4e22-928b-caef022c365d", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
structure_idtypedirectionthetar0LradiusfilletsEnabledfillets
01simple[1.0, 0.0, 0.0]0.011.02.01.010101True0.191919
12simple[1.0, 0.0, 0.0]0.021.02.01.020408True0.183900
23simple[1.0, 0.0, 0.0]0.031.02.01.030928True0.175945
34simple[1.0, 0.0, 0.0]0.041.02.01.041667True0.168056
45simple[1.0, 0.0, 0.0]0.051.02.01.052632True0.160234
..............................
7980simple[1.0, 1.0, 1.0]0.241.02.01.315789True0.028070
8081simple[1.0, 1.0, 1.0]0.251.02.01.333333True0.022222
8182simple[1.0, 1.0, 1.0]0.261.02.01.351351True0.016517
8283simple[1.0, 1.0, 1.0]0.271.02.01.369863True0.010959
8384simple[1.0, 1.0, 1.0]0.281.02.01.388889True0.005556
\n", - "

84 rows × 9 columns

\n", - "
" - ], - "text/plain": [ - " structure_id type direction theta r0 L radius \\\n", - "0 1 simple [1.0, 0.0, 0.0] 0.01 1.0 2.0 1.010101 \n", - "1 2 simple [1.0, 0.0, 0.0] 0.02 1.0 2.0 1.020408 \n", - "2 3 simple [1.0, 0.0, 0.0] 0.03 1.0 2.0 1.030928 \n", - "3 4 simple [1.0, 0.0, 0.0] 0.04 1.0 2.0 1.041667 \n", - "4 5 simple [1.0, 0.0, 0.0] 0.05 1.0 2.0 1.052632 \n", - ".. ... ... ... ... ... ... ... \n", - "79 80 simple [1.0, 1.0, 1.0] 0.24 1.0 2.0 1.315789 \n", - "80 81 simple [1.0, 1.0, 1.0] 0.25 1.0 2.0 1.333333 \n", - "81 82 simple [1.0, 1.0, 1.0] 0.26 1.0 2.0 1.351351 \n", - "82 83 simple [1.0, 1.0, 1.0] 0.27 1.0 2.0 1.369863 \n", - "83 84 simple [1.0, 1.0, 1.0] 0.28 1.0 2.0 1.388889 \n", - "\n", - " filletsEnabled fillets \n", - "0 True 0.191919 \n", - "1 True 0.183900 \n", - "2 True 0.175945 \n", - "3 True 0.168056 \n", - "4 True 0.160234 \n", - ".. ... ... \n", - "79 True 0.028070 \n", - "80 True 0.022222 \n", - "81 True 0.016517 \n", - "82 True 0.010959 \n", - "83 True 0.005556 \n", - "\n", - "[84 rows x 9 columns]" - ] - }, - "execution_count": 15, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "dfparams.structure[dfparams.structure.type == \"simple\"]" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "c7abc63e-960c-4157-99b3-d947acf10c10", - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "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.10.0" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} \ No newline at end of file diff --git a/playground/bc-section.png b/playground/bc-section.png deleted file mode 100644 index 67f6863..0000000 Binary files a/playground/bc-section.png and /dev/null differ diff --git a/playground/bc-section.svg b/playground/bc-section.svg deleted file mode 100644 index a3d77e5..0000000 --- a/playground/bc-section.svg +++ /dev/null @@ -1,614 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - r0 - - - - r0/(1-s) - - - - - - - - - - - - - - - - - - - - - - - - - r0 - - - - r0/(1-s) - - - - - - - - r1 - - - - - - - diff --git a/playground/fc_section.svg b/playground/fc_section.svg deleted file mode 100644 index 0dd8e89..0000000 --- a/playground/fc_section.svg +++ /dev/null @@ -1,433 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - $r_1$ - - - - - - - - - - - - - - - - - - $r_0$ - - - - - - - - diff --git a/playground/fc_section.tex b/playground/fc_section.tex deleted file mode 100644 index 5ab5043..0000000 --- a/playground/fc_section.tex +++ /dev/null @@ -1,767 +0,0 @@ -%LaTeX with PSTricks extensions -%%Creator: Inkscape 1.1 (c68e22c387, 2021-05-23) -%%Please note this file requires PSTricks extensions -\psset{xunit=.5pt,yunit=.5pt,runit=.5pt} -\begin{pspicture}(411.4037317,197.80027375) -{ -\newrgbcolor{curcolor}{0 0 0} -\pscustom[linewidth=0.37795276,linecolor=curcolor] -{ -\newpath -\moveto(130.18897134,65.18896918) -\lineto(270.18896126,100.18896666) -} -} -{ -\newrgbcolor{curcolor}{0 0 0} -\pscustom[linewidth=0.99999833,linecolor=curcolor] -{ -\newpath -\moveto(340.18896593,62.61633477) -\curveto(340.18896593,108.16724613)(312.74957732,149.23323957)(270.66677706,166.66383207) -\curveto(228.58406263,184.09438902)(180.14608194,174.45661335)(147.93686235,142.24739375) -\curveto(115.72764276,110.03817416)(106.08986709,61.60019348)(123.52042404,19.51747905) -\curveto(140.95101654,-22.56532121)(182.01700997,-50.00470982)(227.56792134,-50.00470982) -\curveto(273.1188327,-50.00470982)(314.18482614,-22.56532121)(331.61541864,19.51747905) -\curveto(349.04597559,61.60019348)(339.40819992,110.03817416)(307.19898032,142.24739375) -\curveto(274.98976073,174.45661335)(226.55178005,184.09438902)(184.46906562,166.66383207) -\curveto(142.38626536,149.23323957)(114.94687675,108.16724613)(114.94687675,62.61633477) -\curveto(114.94687675,17.0654234)(142.38626536,-24.00057003)(184.46906562,-41.43116253) -\curveto(226.55178005,-58.86171948)(274.98976073,-49.22394381)(307.19898032,-17.01472422) -\curveto(339.40819992,15.19449537)(349.04597559,63.63247606)(331.61541864,105.71519049) -\curveto(314.18482614,147.79799075)(273.1188327,175.23737936)(227.56792134,175.23737936) -\curveto(182.01700997,175.23737936)(140.95101654,147.79799075)(123.52042404,105.71519049) -\curveto(106.08986709,63.63247606)(115.72764276,15.19449537)(147.93686235,-17.01472422) -\curveto(180.14608194,-49.22394381)(228.58406263,-58.86171948)(270.66677706,-41.43116253) -\curveto(312.74957732,-24.00057003)(340.18896593,17.0654234)(340.18896593,62.61633477) -\closepath -} -} -{ -\newrgbcolor{curcolor}{0 0 0} -\pscustom[linewidth=0.99999833,linecolor=curcolor] -{ -\newpath -\moveto(453.12480548,258.97272628) -\curveto(453.12480548,304.52363764)(425.68541687,345.58963108)(383.60261661,363.02022358) -\curveto(341.51990218,380.45078053)(293.0819215,370.81300486)(260.8727019,338.60378526) -\curveto(228.66348231,306.39456567)(219.02570664,257.95658499)(236.45626359,215.87387056) -\curveto(253.88685609,173.7910703)(294.95284952,146.35168169)(340.50376089,146.35168169) -\curveto(386.05467226,146.35168169)(427.12066569,173.7910703)(444.55125819,215.87387056) -\curveto(461.98181514,257.95658499)(452.34403947,306.39456567)(420.13481988,338.60378526) -\curveto(387.92560028,370.81300486)(339.4876196,380.45078053)(297.40490517,363.02022358) -\curveto(255.32210491,345.58963108)(227.8827163,304.52363764)(227.8827163,258.97272628) -\curveto(227.8827163,213.42181491)(255.32210491,172.35582148)(297.40490517,154.92522898) -\curveto(339.4876196,137.49467203)(387.92560028,147.1324477)(420.13481988,179.34166729) -\curveto(452.34403947,211.55088688)(461.98181514,259.98886757)(444.55125819,302.071582) -\curveto(427.12066569,344.15438226)(386.05467226,371.59377087)(340.50376089,371.59377087) -\curveto(294.95284952,371.59377087)(253.88685609,344.15438226)(236.45626359,302.071582) -\curveto(219.02570664,259.98886757)(228.66348231,211.55088688)(260.8727019,179.34166729) -\curveto(293.0819215,147.1324477)(341.51990218,137.49467203)(383.60261661,154.92522898) -\curveto(425.68541687,172.35582148)(453.12480548,213.42181491)(453.12480548,258.97272628) -\closepath -} -} -{ -\newrgbcolor{curcolor}{0 0 0} -\pscustom[linewidth=0.99999833,linecolor=curcolor] -{ -\newpath -\moveto(565.43108758,62.61633477) -\curveto(565.43108758,108.16724613)(537.99169897,149.23323957)(495.90889871,166.66383207) -\curveto(453.82618428,184.09438902)(405.38820359,174.45661335)(373.178984,142.24739375) -\curveto(340.96976441,110.03817416)(331.33198874,61.60019348)(348.76254569,19.51747905) -\curveto(366.19313819,-22.56532121)(407.25913162,-50.00470982)(452.81004299,-50.00470982) -\curveto(498.36095435,-50.00470982)(539.42694779,-22.56532121)(556.85754029,19.51747905) -\curveto(574.28809724,61.60019348)(564.65032157,110.03817416)(532.44110197,142.24739375) -\curveto(500.23188238,174.45661335)(451.7939017,184.09438902)(409.71118727,166.66383207) -\curveto(367.62838701,149.23323957)(340.1889984,108.16724613)(340.1889984,62.61633477) -\curveto(340.1889984,17.0654234)(367.62838701,-24.00057003)(409.71118727,-41.43116253) -\curveto(451.7939017,-58.86171948)(500.23188238,-49.22394381)(532.44110197,-17.01472422) -\curveto(564.65032157,15.19449537)(574.28809724,63.63247606)(556.85754029,105.71519049) -\curveto(539.42694779,147.79799075)(498.36095435,175.23737936)(452.81004299,175.23737936) -\curveto(407.25913162,175.23737936)(366.19313819,147.79799075)(348.76254569,105.71519049) -\curveto(331.33198874,63.63247606)(340.96976441,15.19449537)(373.178984,-17.01472422) -\curveto(405.38820359,-49.22394381)(453.82618428,-58.86171948)(495.90889871,-41.43116253) -\curveto(537.99169897,-24.00057003)(565.43108758,17.0654234)(565.43108758,62.61633477) -\closepath -} -} -{ -\newrgbcolor{curcolor}{0 0 0} -\pscustom[linewidth=0.99999833,linecolor=curcolor] -{ -\newpath -\moveto(355.63886394,128.1829283) -\curveto(355.63886394,142.8082659)(337.95749265,150.13001147)(327.61707083,139.78958964) -\curveto(317.27664901,129.44916782)(324.59839457,111.76779654)(339.22373218,111.76779654) -\curveto(353.84906978,111.76779654)(361.17081535,129.44916782)(350.83039353,139.78958964) -\curveto(340.48997171,150.13001147)(322.80860042,142.8082659)(322.80860042,128.1829283) -\curveto(322.80860042,113.55759069)(340.48997171,106.23584512)(350.83039353,116.57626695) -\curveto(361.17081535,126.91668877)(353.84906978,144.59806005)(339.22373218,144.59806005) -\curveto(324.59839457,144.59806005)(317.27664901,126.91668877)(327.61707083,116.57626695) -\curveto(337.95749265,106.23584512)(355.63886394,113.55759069)(355.63886394,128.1829283) -\closepath -} -} -{ -\newrgbcolor{curcolor}{0 0 0} -\pscustom[linewidth=0.99999833,linecolor=curcolor] -{ -\newpath -\moveto(340.18897418,130.18896477) -\lineto(340.18897418,145.96899355) -\lineto(340.18897418,265.33422477) -} -} -{ -\newrgbcolor{curcolor}{0 0 0} -\pscustom[linewidth=0.99999833,linecolor=curcolor] -{ -\newpath -\moveto(340.18896566,265.33423328) -\lineto(452.81000999,62.61634328) -} -} -{ -\newrgbcolor{curcolor}{0 0 0} -\pscustom[linewidth=0.99999833,linecolor=curcolor] -{ -\newpath -\moveto(340.18896566,265.33423328) -\lineto(283.8784435,163.97528828) -\lineto(227.56791283,62.61634328) -} -} -{ -\newrgbcolor{curcolor}{0 0 0} -\pscustom[linewidth=0.99999833,linecolor=curcolor] -{ -\newpath -\moveto(452.81000999,62.61634328) -\lineto(227.56791283,62.61634328) -} -} -{ -\newrgbcolor{curcolor}{0 0 0} -\pscustom[linewidth=0.99999833,linecolor=curcolor] -{ -\newpath -\moveto(340.18896566,130.18897328) -\lineto(227.56791283,62.61634328) -} -} -{ -\newrgbcolor{curcolor}{0 0 0} -\pscustom[linewidth=0.99999871,linecolor=curcolor] -{ -\newpath -\moveto(410.90371957,124.44871468) -\curveto(410.90371957,153.77170207)(393.23986122,180.20756408)(366.149439,191.42835042) -\curveto(339.05907204,202.64911388)(307.87755988,196.44488292)(287.14316596,175.710489) -\curveto(266.40877203,154.97609507)(260.20454107,123.79458291)(271.42530453,96.70421595) -\curveto(282.64609087,69.61379374)(309.08195288,51.94993539)(338.40494027,51.94993539) -\curveto(367.72792766,51.94993539)(394.16378967,69.61379374)(405.38457601,96.70421595) -\curveto(416.60533947,123.79458291)(410.40110851,154.97609507)(389.66671458,175.710489) -\curveto(368.93232066,196.44488292)(337.7508085,202.64911388)(310.66044154,191.42835042) -\curveto(283.57001932,180.20756408)(265.90616097,153.77170207)(265.90616097,124.44871468) -\curveto(265.90616097,95.1257273)(283.57001932,68.68986528)(310.66044154,57.46907894) -\curveto(337.7508085,46.24831549)(368.93232066,52.45254645)(389.66671458,73.18694037) -\curveto(410.40110851,93.92133429)(416.60533947,125.10284645)(405.38457601,152.19321342) -\curveto(394.16378967,179.28363563)(367.72792766,196.94749398)(338.40494027,196.94749398) -\curveto(309.08195288,196.94749398)(282.64609087,179.28363563)(271.42530453,152.19321342) -\curveto(260.20454107,125.10284645)(266.40877203,93.92133429)(287.14316596,73.18694037) -\curveto(307.87755988,52.45254645)(339.05907204,46.24831549)(366.149439,57.46907894) -\curveto(393.23986122,68.68986528)(410.90371957,95.1257273)(410.90371957,124.44871468) -\closepath -} -} -{ -\newrgbcolor{curcolor}{0 0 0} -\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor] -{ -\newpath -\moveto(345.79697174,120.02145903) -\lineto(345.0157224,120.02145903) -\lineto(345.0079099,122.37301956) -\curveto(344.46103536,122.38343621)(343.91416082,122.44593616)(343.36728628,122.5605194) -\curveto(342.82041174,122.68031096)(342.27093304,122.85739415)(341.71885017,123.09176895) -\lineto(341.71885017,124.49801777) -\curveto(342.25009972,124.16468472)(342.78655761,123.91208076)(343.32822382,123.74020591) -\curveto(343.87509836,123.57353938)(344.43759788,123.48760195)(345.0157224,123.48239362) -\lineto(345.0157224,127.04489063) -\curveto(343.8646817,127.23239047)(343.02614074,127.55009853)(342.50009951,127.99801482) -\curveto(341.97926662,128.44593111)(341.71885017,129.06051393)(341.71885017,129.84176327) -\curveto(341.71885017,130.69072089)(342.0027041,131.35999116)(342.57041195,131.84957409) -\curveto(343.13811981,132.33915701)(343.95322329,132.62040677)(345.0157224,132.69332338) -\lineto(345.0157224,134.52925933) -\lineto(345.79697174,134.52925933) -\lineto(345.79697174,132.71676086) -\curveto(346.28134633,132.69592754)(346.75009594,132.64384425)(347.20322056,132.56051099) -\curveto(347.65634518,132.48238605)(348.09905314,132.37301115)(348.53134444,132.23238626) -\lineto(348.53134444,130.86519991) -\curveto(348.09905314,131.08394973)(347.65374101,131.25322042)(347.19540807,131.37301199) -\curveto(346.74228345,131.49280355)(346.276138,131.56311599)(345.79697174,131.58394931) -\lineto(345.79697174,128.24801461) -\curveto(346.97926241,128.0657231)(347.84905335,127.74020254)(348.40634455,127.27145294) -\curveto(348.96363574,126.80270333)(349.24228134,126.16207887)(349.24228134,125.34957955) -\curveto(349.24228134,124.46937196)(348.94540659,123.77406004)(348.35165709,123.26364381) -\curveto(347.76311592,122.7584359)(346.91155414,122.46676948)(345.79697174,122.38864454) -\closepath -\moveto(345.0157224,128.3886395) -\lineto(345.0157224,131.5917618) -\curveto(344.41155624,131.52405353)(343.95061913,131.35217867)(343.63291106,131.07613724) -\curveto(343.315203,130.8000958)(343.15634896,130.43290861)(343.15634896,129.97457566) -\curveto(343.15634896,129.52665937)(343.30218217,129.17770133)(343.59384859,128.92770154) -\curveto(343.89072334,128.67770175)(344.36468128,128.4980144)(345.0157224,128.3886395) -\closepath -\moveto(345.79697174,126.88864076) -\lineto(345.79697174,123.5058311) -\curveto(346.45842952,123.5943727)(346.95582493,123.78187254)(347.28915799,124.06833063) -\curveto(347.62769937,124.35478872)(347.79697006,124.73239257)(347.79697006,125.20114218) -\curveto(347.79697006,125.65947512)(347.63551186,126.02405815)(347.31259547,126.29489126) -\curveto(346.9948874,126.56572436)(346.48967949,126.76364086)(345.79697174,126.88864076) -\closepath -} -} -{ -\newrgbcolor{curcolor}{0 0 0} -\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor] -{ -\newpath -\moveto(357.14852491,129.77926333) -\curveto(356.98706671,129.87301325)(356.80998352,129.94072152)(356.61727535,129.98238816) -\curveto(356.42977551,130.02926312)(356.22144235,130.0527006)(355.99227588,130.0527006) -\curveto(355.17977656,130.0527006)(354.55477709,129.78707582)(354.11727745,129.25582627) -\curveto(353.68498615,128.72978504)(353.4688405,127.97197318)(353.4688405,126.98239068) -\lineto(353.4688405,122.37301956) -\lineto(352.02352922,122.37301956) -\lineto(352.02352922,131.1230122) -\lineto(353.4688405,131.1230122) -\lineto(353.4688405,129.76363834) -\curveto(353.77092358,130.29488789)(354.16415242,130.68811673)(354.64852701,130.94332485) -\curveto(355.1329016,131.2037413)(355.72144277,131.33394952)(356.41415052,131.33394952) -\curveto(356.51310877,131.33394952)(356.62248368,131.32613703)(356.74227525,131.31051204) -\curveto(356.86206681,131.30009538)(356.9948792,131.28186623)(357.14071241,131.25582458) -\closepath -} -} -{ -\newrgbcolor{curcolor}{0 0 0} -\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor] -{ -\newpath -\moveto(365.30476751,119.71677179) -\lineto(365.30476751,118.59958523) -\lineto(356.9922745,118.59958523) -\lineto(356.9922745,119.71677179) -\closepath -} -} -{ -\newrgbcolor{curcolor}{0 0 0} -\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor] -{ -\newpath -\moveto(367.13289097,123.70114344) -\lineto(369.7110138,123.70114344) -\lineto(369.7110138,132.59957345) -\lineto(366.90632866,132.03707393) -\lineto(366.90632866,133.47457272) -\lineto(369.69538882,134.03707225) -\lineto(371.27351249,134.03707225) -\lineto(371.27351249,123.70114344) -\lineto(373.85163532,123.70114344) -\lineto(373.85163532,122.37301956) -\lineto(367.13289097,122.37301956) -\closepath -} -} -{ -\newrgbcolor{curcolor}{0 0 0} -\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor] -{ -\newpath -\moveto(380.73444315,120.02145903) -\lineto(379.9531938,120.02145903) -\lineto(379.94538131,122.37301956) -\curveto(379.39850677,122.38343621)(378.85163223,122.44593616)(378.30475769,122.5605194) -\curveto(377.75788315,122.68031096)(377.20840444,122.85739415)(376.65632158,123.09176895) -\lineto(376.65632158,124.49801777) -\curveto(377.18757113,124.16468472)(377.72402901,123.91208076)(378.26569522,123.74020591) -\curveto(378.81256976,123.57353938)(379.37506929,123.48760195)(379.9531938,123.48239362) -\lineto(379.9531938,127.04489063) -\curveto(378.8021531,127.23239047)(377.96361214,127.55009853)(377.43757092,127.99801482) -\curveto(376.91673802,128.44593111)(376.65632158,129.06051393)(376.65632158,129.84176327) -\curveto(376.65632158,130.69072089)(376.9401755,131.35999116)(377.50788336,131.84957409) -\curveto(378.07559122,132.33915701)(378.8906947,132.62040677)(379.9531938,132.69332338) -\lineto(379.9531938,134.52925933) -\lineto(380.73444315,134.52925933) -\lineto(380.73444315,132.71676086) -\curveto(381.21881774,132.69592754)(381.68756734,132.64384425)(382.14069196,132.56051099) -\curveto(382.59381658,132.48238605)(383.03652454,132.37301115)(383.46881585,132.23238626) -\lineto(383.46881585,130.86519991) -\curveto(383.03652454,131.08394973)(382.59121242,131.25322042)(382.13287947,131.37301199) -\curveto(381.67975485,131.49280355)(381.21360941,131.56311599)(380.73444315,131.58394931) -\lineto(380.73444315,128.24801461) -\curveto(381.91673382,128.0657231)(382.78652475,127.74020254)(383.34381595,127.27145294) -\curveto(383.90110715,126.80270333)(384.17975275,126.16207887)(384.17975275,125.34957955) -\curveto(384.17975275,124.46937196)(383.882878,123.77406004)(383.2891285,123.26364381) -\curveto(382.70058733,122.7584359)(381.84902554,122.46676948)(380.73444315,122.38864454) -\closepath -\moveto(379.9531938,128.3886395) -\lineto(379.9531938,131.5917618) -\curveto(379.34902764,131.52405353)(378.88809053,131.35217867)(378.57038247,131.07613724) -\curveto(378.2526744,130.8000958)(378.09382037,130.43290861)(378.09382037,129.97457566) -\curveto(378.09382037,129.52665937)(378.23965358,129.17770133)(378.53132,128.92770154) -\curveto(378.82819475,128.67770175)(379.30215268,128.4980144)(379.9531938,128.3886395) -\closepath -\moveto(380.73444315,126.88864076) -\lineto(380.73444315,123.5058311) -\curveto(381.39590092,123.5943727)(381.89329634,123.78187254)(382.22662939,124.06833063) -\curveto(382.56517077,124.35478872)(382.73444146,124.73239257)(382.73444146,125.20114218) -\curveto(382.73444146,125.65947512)(382.57298327,126.02405815)(382.25006687,126.29489126) -\curveto(381.93235881,126.56572436)(381.4271509,126.76364086)(380.73444315,126.88864076) -\closepath -} -} -{ -\newrgbcolor{curcolor}{0.40000001 0.40000001 0.40000001} -\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor] -{ -\newpath -\moveto(340.1106768,74.99942849) -\curveto(340.0574768,75.30882848)(339.89607681,76.50222847)(339.75206681,77.65142845) -\curveto(338.28719683,89.34167831)(334.26953688,102.40515814)(328.75711695,113.401748) -\curveto(328.22354695,114.46615799)(327.78698696,115.37603798)(327.78698696,115.42369798) -\curveto(327.78698696,115.47139798)(328.31135695,115.12047798)(328.95225694,114.64394799) -\curveto(334.83256687,110.27179804)(342.72690677,110.03975805)(348.7006367,114.063478) -\curveto(350.11731668,115.01769798)(352.21524665,117.09295796)(353.19290664,118.50719794) -\curveto(355.22722661,121.4499579)(356.3809266,125.37759785)(356.2093066,128.77619781) -\curveto(356.1762066,129.4317878)(356.2003066,129.9681678)(356.2623066,129.9681678) -\curveto(356.3246066,129.9681678)(356.5610466,129.8976678)(356.78779659,129.8114178) -\curveto(357.19923659,129.6549878)(357.20007659,129.6564578)(357.20007659,130.53469779) -\lineto(357.20007659,131.41471778) -\lineto(356.5835166,131.41471778) -\lineto(355.9669666,131.41471778) -\lineto(355.69193661,132.40392776) -\curveto(354.80815662,135.58272772)(353.48941664,137.8750977)(351.26214666,140.10430767) -\curveto(348.6023267,142.76642763)(345.68450673,144.31594761)(342.18326678,144.92565761) -\curveto(341.47164679,145.04957761)(341.07057679,145.2037376)(340.96978679,145.3920776) -\curveto(340.8344068,145.6450376)(340.94258679,145.6838276)(342.04225678,145.7767876) -\curveto(342.71493677,145.8336876)(343.88725676,145.88046759)(344.64741675,145.88082759) -\curveto(347.97943671,145.88282759)(354.46419662,146.54955759)(359.61098656,147.42027758) -\curveto(369.28412644,149.05676755)(379.03794631,152.07898752)(388.0483162,156.23160746) -\curveto(389.50064618,156.90093746)(390.71114617,157.42633745)(390.73831617,157.39916745) -\curveto(390.76551617,157.37196745)(390.04949617,156.84850746)(389.14721619,156.23587746) -\curveto(378.88459632,149.26774755)(369.63885643,140.41790766)(362.13565653,130.38092779) -\curveto(350.51476667,114.83576799)(343.05491677,96.45590822)(340.5711868,77.24960846) -\curveto(340.3077668,75.21261848)(340.1807568,74.59202849)(340.1106668,74.99942849) -\closepath -} -} -{ -\newrgbcolor{curcolor}{0.40000001 0.40000001 0.40000001} -\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor] -{ -\newpath -\moveto(321.92043703,125.18717786) -\curveto(319.78771706,128.51235781)(315.14462712,134.53866774)(312.10105716,137.93182769) -\curveto(305.09616725,145.7413376)(296.65565735,152.91383751)(288.28463746,158.17032744) -\curveto(287.46494747,158.68504743)(286.81945748,159.13132743)(286.85020748,159.16207743) -\curveto(286.88090747,159.19287743)(288.34720746,158.50136744)(290.10854743,157.62548745) -\curveto(304.42507725,150.50617754)(319.97550706,146.52111759)(335.86936686,145.89853759) -\curveto(337.79526683,145.8230376)(339.40061681,145.7317576)(339.43680681,145.6955676) -\curveto(339.68937681,145.4429976)(339.04838682,145.2195076)(337.66354683,145.0772976) -\curveto(335.45206686,144.85018761)(333.77155688,144.38744761)(331.88553691,143.48626762) -\curveto(324.872687,140.13536767)(321.09746704,132.55988776)(322.56567703,124.78471786) -\curveto(322.62827702,124.45321786)(322.65337702,124.18261787)(322.62137702,124.18338787) -\curveto(322.58947702,124.18419787)(322.27399703,124.63586786)(321.92039703,125.18717786) -\closepath -} -} -{ -\newrgbcolor{curcolor}{0.40000001 0.40000001 0.40000001} -\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor] -{ -\newpath -\moveto(279.64914757,163.10481738) -\curveto(278.13289758,163.87562737)(278.17829758,163.84125737)(278.39274758,164.05569737) -\curveto(278.51053758,164.17348736)(278.91961758,163.99589737)(279.74820756,163.46737737) -\curveto(281.71948754,162.20990739)(281.68168754,162.07155739)(279.64910757,163.10481738) -\closepath -} -} -{ -\newrgbcolor{curcolor}{0 0 0} -\pscustom[linewidth=0.37795276,linecolor=curcolor] -{ -\newpath -\moveto(100.18897146,50.1889654) -\curveto(100.18897146,70.41205485)(88.00679565,88.64398993)(69.32343217,96.38259319) -\curveto(50.64010679,104.12118067)(29.1352546,99.84232886)(14.8354325,85.54250676) -\curveto(0.5356104,71.24268466)(-3.74324141,49.73783247)(3.99534607,31.05450709) -\curveto(11.73394933,12.37114361)(29.96588441,0.1889678)(50.18897386,0.1889678) -\curveto(70.41206331,0.1889678)(88.64399839,12.37114361)(96.38260165,31.05450709) -\curveto(104.12118913,49.73783247)(99.84233732,71.24268466)(85.54251522,85.54250676) -\curveto(71.24269312,99.84232886)(49.73784093,104.12118067)(31.05451555,96.38259319) -\curveto(12.37115207,88.64398993)(0.18897626,70.41205485)(0.18897626,50.1889654) -\curveto(0.18897626,29.96587595)(12.37115207,11.73394087)(31.05451555,3.99533761) -\curveto(49.73784093,-3.74324987)(71.24269312,0.53560194)(85.54251522,14.83542404) -\curveto(99.84233732,29.13524614)(104.12118913,50.64009833)(96.38260165,69.32342371) -\curveto(88.64399839,88.00678719)(70.41206331,100.188963)(50.18897386,100.188963) -\curveto(29.96588441,100.188963)(11.73394933,88.00678719)(3.99534607,69.32342371) -\curveto(-3.74324141,50.64009833)(0.5356104,29.13524614)(14.8354325,14.83542404) -\curveto(29.1352546,0.53560194)(50.64010679,-3.74324987)(69.32343217,3.99533761) -\curveto(88.00679565,11.73394087)(100.18897146,29.96587595)(100.18897146,50.1889654) -\closepath -} -} -{ -\newrgbcolor{curcolor}{0 0 0} -\pscustom[linewidth=0.37795276,linecolor=curcolor] -{ -\newpath -\moveto(150.32872755,137.36467168) -\curveto(150.32872755,157.58776113)(138.14655174,175.8196962)(119.46318826,183.55829947) -\curveto(100.77986288,191.29688695)(79.27501069,187.01803514)(64.97518859,172.71821304) -\curveto(50.67536649,158.41839094)(46.39651468,136.91353874)(54.13510216,118.23021337) -\curveto(61.87370542,99.54684988)(80.1056405,87.36467408)(100.32872995,87.36467408) -\curveto(120.5518194,87.36467408)(138.78375448,99.54684988)(146.52235774,118.23021337) -\curveto(154.26094522,136.91353874)(149.98209341,158.41839094)(135.68227131,172.71821304) -\curveto(121.38244921,187.01803514)(99.87759702,191.29688695)(81.19427164,183.55829947) -\curveto(62.51090816,175.8196962)(50.32873235,157.58776113)(50.32873235,137.36467168) -\curveto(50.32873235,117.14158222)(62.51090816,98.90964715)(81.19427164,91.17104389) -\curveto(99.87759702,83.43245641)(121.38244921,87.71130822)(135.68227131,102.01113032) -\curveto(149.98209341,116.31095241)(154.26094522,137.81580461)(146.52235774,156.49912999) -\curveto(138.78375448,175.18249347)(120.5518194,187.36466927)(100.32872995,187.36466927) -\curveto(80.1056405,187.36466927)(61.87370542,175.18249347)(54.13510216,156.49912999) -\curveto(46.39651468,137.81580461)(50.67536649,116.31095241)(64.97518859,102.01113032) -\curveto(79.27501069,87.71130822)(100.77986288,83.43245641)(119.46318826,91.17104389) -\curveto(138.14655174,98.90964715)(150.32872755,117.14158222)(150.32872755,137.36467168) -\closepath -} -} -{ -\newrgbcolor{curcolor}{0 0 0} -\pscustom[linewidth=0.37795276,linecolor=curcolor] -{ -\newpath -\moveto(200.18898107,50.1889654) -\curveto(200.18898107,70.41205485)(188.00680526,88.64398993)(169.32344178,96.38259319) -\curveto(150.6401164,104.12118067)(129.13526421,99.84232886)(114.83544211,85.54250676) -\curveto(100.53562001,71.24268466)(96.2567682,49.73783247)(103.99535568,31.05450709) -\curveto(111.73395894,12.37114361)(129.96589402,0.1889678)(150.18898347,0.1889678) -\curveto(170.41207292,0.1889678)(188.644008,12.37114361)(196.38261126,31.05450709) -\curveto(204.12119874,49.73783247)(199.84234693,71.24268466)(185.54252483,85.54250676) -\curveto(171.24270273,99.84232886)(149.73785054,104.12118067)(131.05452516,96.38259319) -\curveto(112.37116168,88.64398993)(100.18898587,70.41205485)(100.18898587,50.1889654) -\curveto(100.18898587,29.96587595)(112.37116168,11.73394087)(131.05452516,3.99533761) -\curveto(149.73785054,-3.74324987)(171.24270273,0.53560194)(185.54252483,14.83542404) -\curveto(199.84234693,29.13524614)(204.12119874,50.64009833)(196.38261126,69.32342371) -\curveto(188.644008,88.00678719)(170.41207292,100.188963)(150.18898347,100.188963) -\curveto(129.96589402,100.188963)(111.73395894,88.00678719)(103.99535568,69.32342371) -\curveto(96.2567682,50.64009833)(100.53562001,29.13524614)(114.83544211,14.83542404) -\curveto(129.13526421,0.53560194)(150.6401164,-3.74324987)(169.32344178,3.99533761) -\curveto(188.00680526,11.73394087)(200.18898107,29.96587595)(200.18898107,50.1889654) -\closepath -} -} -{ -\newrgbcolor{curcolor}{0 0 0} -\pscustom[linewidth=0.72877604,linecolor=curcolor] -{ -\newpath -\moveto(107.04821225,79.29835193) -\curveto(107.04821225,85.79151534)(99.19827155,89.04212682)(94.60746822,84.45132349) -\curveto(90.01666489,79.86052016)(93.26727637,72.01057946)(99.76043978,72.01057946) -\curveto(106.25360318,72.01057946)(109.50421466,79.86052016)(104.91341134,84.45132349) -\curveto(100.32260801,89.04212682)(92.47266731,85.79151534)(92.47266731,79.29835193) -\curveto(92.47266731,72.80518853)(100.32260801,69.55457705)(104.91341134,74.14538038) -\curveto(109.50421466,78.7361837)(106.25360318,86.5861244)(99.76043978,86.5861244) -\curveto(93.26727637,86.5861244)(90.01666489,78.7361837)(94.60746822,74.14538038) -\curveto(99.19827155,69.55457705)(107.04821225,72.80518853)(107.04821225,79.29835193) -\closepath -} -} -{ -\newrgbcolor{curcolor}{0 0 0} -\pscustom[linewidth=0.37795276,linecolor=curcolor] -{ -\newpath -\moveto(100.18897512,80.1889654) -\lineto(100.18897512,87.19477327) -\lineto(100.18897512,140.1889654) -} -} -{ -\newrgbcolor{curcolor}{0 0 0} -\pscustom[linewidth=0.37795276,linecolor=curcolor] -{ -\newpath -\moveto(100.18897134,140.18896918) -\lineto(150.18896882,50.18896918) -} -} -{ -\newrgbcolor{curcolor}{0 0 0} -\pscustom[linewidth=0.37795276,linecolor=curcolor] -{ -\newpath -\moveto(100.18897134,140.18896918) -\lineto(75.1889726,95.18896918) -\lineto(50.18897008,50.18896918) -} -} -{ -\newrgbcolor{curcolor}{0 0 0} -\pscustom[linewidth=0.37795276,linecolor=curcolor] -{ -\newpath -\moveto(150.18896882,50.18896918) -\lineto(50.18897008,50.18896918) -} -} -{ -\newrgbcolor{curcolor}{0 0 0} -\pscustom[linewidth=0.37795276,linecolor=curcolor] -{ -\newpath -\moveto(100.18897134,80.18896918) -\lineto(50.18897008,50.18896918) -} -} -{ -\newrgbcolor{curcolor}{0 0 0} -\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor] -{ -\newpath -\moveto(78.88845527,115.42226777) -\lineto(78.10720593,115.42226777) -\lineto(78.09939343,117.7738283) -\curveto(77.55251889,117.78424495)(77.00564435,117.8467449)(76.45876981,117.96132814) -\curveto(75.91189527,118.0811197)(75.36241657,118.25820289)(74.8103337,118.49257769) -\lineto(74.8103337,119.89882651) -\curveto(75.34158325,119.56549346)(75.87804114,119.3128895)(76.41970735,119.14101465) -\curveto(76.96658189,118.97434812)(77.52908141,118.88841069)(78.10720593,118.88320236) -\lineto(78.10720593,122.44569937) -\curveto(76.95616523,122.63319921)(76.11762427,122.95090727)(75.59158304,123.39882356) -\curveto(75.07075015,123.84673985)(74.8103337,124.46132267)(74.8103337,125.24257201) -\curveto(74.8103337,126.09152963)(75.09418763,126.7607999)(75.66189548,127.25038283) -\curveto(76.22960334,127.73996575)(77.04470682,128.02121551)(78.10720593,128.09413212) -\lineto(78.10720593,129.93006807) -\lineto(78.88845527,129.93006807) -\lineto(78.88845527,128.1175696) -\curveto(79.37282986,128.09673628)(79.84157947,128.04465299)(80.29470409,127.96131973) -\curveto(80.74782871,127.88319479)(81.19053667,127.77381989)(81.62282797,127.633195) -\lineto(81.62282797,126.26600865) -\curveto(81.19053667,126.48475847)(80.74522454,126.65402916)(80.28689159,126.77382073) -\curveto(79.83376698,126.89361229)(79.36762153,126.96392473)(78.88845527,126.98475805) -\lineto(78.88845527,123.64882335) -\curveto(80.07074594,123.46653184)(80.94053688,123.14101128)(81.49782808,122.67226168) -\curveto(82.05511927,122.20351207)(82.33376487,121.56288761)(82.33376487,120.75038829) -\curveto(82.33376487,119.8701807)(82.03689012,119.17486878)(81.44314062,118.66445255) -\curveto(80.85459945,118.15924464)(80.00303767,117.86757822)(78.88845527,117.78945328) -\closepath -\moveto(78.10720593,123.78944824) -\lineto(78.10720593,126.99257054) -\curveto(77.50303977,126.92486227)(77.04210266,126.75298741)(76.72439459,126.47694598) -\curveto(76.40668652,126.20090454)(76.24783249,125.83371735)(76.24783249,125.3753844) -\curveto(76.24783249,124.92746811)(76.3936657,124.57851007)(76.68533212,124.32851028) -\curveto(76.98220687,124.07851049)(77.45616481,123.89882314)(78.10720593,123.78944824) -\closepath -\moveto(78.88845527,122.2894495) -\lineto(78.88845527,118.90663984) -\curveto(79.54991305,118.99518143)(80.04730846,119.18268128)(80.38064152,119.46913937) -\curveto(80.7191829,119.75559746)(80.88845359,120.13320131)(80.88845359,120.60195092) -\curveto(80.88845359,121.06028386)(80.72699539,121.42486689)(80.404079,121.6957) -\curveto(80.08637093,121.9665331)(79.58116302,122.1644496)(78.88845527,122.2894495) -\closepath -} -} -{ -\newrgbcolor{curcolor}{0 0 0} -\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor] -{ -\newpath -\moveto(90.24000843,125.18007207) -\curveto(90.07855024,125.27382199)(89.90146705,125.34153026)(89.70875888,125.3831969) -\curveto(89.52125904,125.43007186)(89.31292588,125.45350934)(89.08375941,125.45350934) -\curveto(88.27126009,125.45350934)(87.64626062,125.18788456)(87.20876098,124.65663501) -\curveto(86.77646968,124.13059378)(86.56032403,123.37278192)(86.56032403,122.38319942) -\lineto(86.56032403,117.7738283) -\lineto(85.11501274,117.7738283) -\lineto(85.11501274,126.52382094) -\lineto(86.56032403,126.52382094) -\lineto(86.56032403,125.16444708) -\curveto(86.86240711,125.69569663)(87.25563594,126.08892547)(87.74001054,126.34413359) -\curveto(88.22438513,126.60455004)(88.8129263,126.73475826)(89.50563405,126.73475826) -\curveto(89.6045923,126.73475826)(89.71396721,126.72694577)(89.83375878,126.71132078) -\curveto(89.95355034,126.70090412)(90.08636273,126.68267497)(90.23219594,126.65663332) -\closepath -} -} -{ -\newrgbcolor{curcolor}{0 0 0} -\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor] -{ -\newpath -\moveto(98.39625104,115.11758053) -\lineto(98.39625104,114.00039397) -\lineto(90.08375803,114.00039397) -\lineto(90.08375803,115.11758053) -\closepath -} -} -{ -\newrgbcolor{curcolor}{0 0 0} -\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor] -{ -\newpath -\moveto(103.32593439,128.39881936) -\curveto(102.51343508,128.39881936)(101.90145643,127.99777803)(101.48999844,127.19569537) -\curveto(101.08374878,126.39882104)(100.88062395,125.19830122)(100.88062395,123.5941359) -\curveto(100.88062395,121.99517891)(101.08374878,120.79465909)(101.48999844,119.99257643) -\curveto(101.90145643,119.1957021)(102.51343508,118.79726493)(103.32593439,118.79726493) -\curveto(104.14364204,118.79726493)(104.75562069,119.1957021)(105.16187035,119.99257643) -\curveto(105.57332834,120.79465909)(105.77905733,121.99517891)(105.77905733,123.5941359) -\curveto(105.77905733,125.19830122)(105.57332834,126.39882104)(105.16187035,127.19569537) -\curveto(104.75562069,127.99777803)(104.14364204,128.39881936)(103.32593439,128.39881936) -\closepath -\moveto(103.32593439,129.64881831) -\curveto(104.63322496,129.64881831)(105.63061996,129.13058958)(106.31811938,128.09413212) -\curveto(107.01082713,127.06288298)(107.357181,125.56288424)(107.357181,123.5941359) -\curveto(107.357181,121.63059589)(107.01082713,120.13059715)(106.31811938,119.09413968) -\curveto(105.63061996,118.06289055)(104.63322496,117.54726599)(103.32593439,117.54726599) -\curveto(102.01864383,117.54726599)(101.01864467,118.06289055)(100.32593692,119.09413968) -\curveto(99.6384375,120.13059715)(99.29468778,121.63059589)(99.29468778,123.5941359) -\curveto(99.29468778,125.56288424)(99.6384375,127.06288298)(100.32593692,128.09413212) -\curveto(101.01864467,129.13058958)(102.01864383,129.64881831)(103.32593439,129.64881831) -\closepath -} -} -{ -\newrgbcolor{curcolor}{0 0 0} -\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor] -{ -\newpath -\moveto(113.82592668,115.42226777) -\lineto(113.04467733,115.42226777) -\lineto(113.03686484,117.7738283) -\curveto(112.4899903,117.78424495)(111.94311576,117.8467449)(111.39624122,117.96132814) -\curveto(110.84936668,118.0811197)(110.29988797,118.25820289)(109.74780511,118.49257769) -\lineto(109.74780511,119.89882651) -\curveto(110.27905466,119.56549346)(110.81551254,119.3128895)(111.35717875,119.14101465) -\curveto(111.90405329,118.97434812)(112.46655282,118.88841069)(113.04467733,118.88320236) -\lineto(113.04467733,122.44569937) -\curveto(111.89363663,122.63319921)(111.05509567,122.95090727)(110.52905445,123.39882356) -\curveto(110.00822155,123.84673985)(109.74780511,124.46132267)(109.74780511,125.24257201) -\curveto(109.74780511,126.09152963)(110.03165903,126.7607999)(110.59936689,127.25038283) -\curveto(111.16707474,127.73996575)(111.98217823,128.02121551)(113.04467733,128.09413212) -\lineto(113.04467733,129.93006807) -\lineto(113.82592668,129.93006807) -\lineto(113.82592668,128.1175696) -\curveto(114.31030127,128.09673628)(114.77905087,128.04465299)(115.23217549,127.96131973) -\curveto(115.68530011,127.88319479)(116.12800807,127.77381989)(116.56029938,127.633195) -\lineto(116.56029938,126.26600865) -\curveto(116.12800807,126.48475847)(115.68269595,126.65402916)(115.224363,126.77382073) -\curveto(114.77123838,126.89361229)(114.30509294,126.96392473)(113.82592668,126.98475805) -\lineto(113.82592668,123.64882335) -\curveto(115.00821735,123.46653184)(115.87800828,123.14101128)(116.43529948,122.67226168) -\curveto(116.99259068,122.20351207)(117.27123628,121.56288761)(117.27123628,120.75038829) -\curveto(117.27123628,119.8701807)(116.97436153,119.17486878)(116.38061203,118.66445255) -\curveto(115.79207085,118.15924464)(114.94050907,117.86757822)(113.82592668,117.78945328) -\closepath -\moveto(113.04467733,123.78944824) -\lineto(113.04467733,126.99257054) -\curveto(112.44051117,126.92486227)(111.97957406,126.75298741)(111.661866,126.47694598) -\curveto(111.34415793,126.20090454)(111.1853039,125.83371735)(111.1853039,125.3753844) -\curveto(111.1853039,124.92746811)(111.33113711,124.57851007)(111.62280353,124.32851028) -\curveto(111.91967828,124.07851049)(112.39363621,123.89882314)(113.04467733,123.78944824) -\closepath -\moveto(113.82592668,122.2894495) -\lineto(113.82592668,118.90663984) -\curveto(114.48738445,118.99518143)(114.98477987,119.18268128)(115.31811292,119.46913937) -\curveto(115.6566543,119.75559746)(115.82592499,120.13320131)(115.82592499,120.60195092) -\curveto(115.82592499,121.06028386)(115.6644668,121.42486689)(115.3415504,121.6957) -\curveto(115.02384233,121.9665331)(114.51863443,122.1644496)(113.82592668,122.2894495) -\closepath -} -} -{ -\newrgbcolor{curcolor}{0 0 0} -\pscustom[linewidth=0.3041295,linecolor=curcolor] -{ -\newpath -\moveto(131.63046565,78.01909351) -\curveto(131.63046565,91.0375233)(123.78830084,102.77416559)(111.76105562,107.75582102) -\curveto(99.73383494,112.73746629)(85.89028204,109.98299437)(76.68490169,100.77761403) -\curveto(67.47952135,91.57223368)(64.72504943,77.72868079)(69.7066947,65.7014601) -\curveto(74.68835013,53.67421488)(86.42499242,45.83205007)(99.44342222,45.83205007) -\curveto(112.46185201,45.83205007)(124.1984943,53.67421488)(129.18014973,65.7014601) -\curveto(134.161795,77.72868079)(131.40732308,91.57223368)(122.20194274,100.77761403) -\curveto(112.9965624,109.98299437)(99.1530095,112.73746629)(87.12578881,107.75582102) -\curveto(75.09854359,102.77416559)(67.25637878,91.0375233)(67.25637878,78.01909351) -\curveto(67.25637878,65.00066371)(75.09854359,53.26402142)(87.12578881,48.28236599) -\curveto(99.1530095,43.30072072)(112.9965624,46.05519264)(122.20194274,55.26057298) -\curveto(131.40732308,64.46595333)(134.161795,78.30950622)(129.18014973,90.33672691) -\curveto(124.1984943,102.36397213)(112.46185201,110.20613694)(99.44342222,110.20613694) -\curveto(86.42499242,110.20613694)(74.68835013,102.36397213)(69.7066947,90.33672691) -\curveto(64.72504943,78.30950622)(67.47952135,64.46595333)(76.68490169,55.26057298) -\curveto(85.89028204,46.05519264)(99.73383494,43.30072072)(111.76105562,48.28236599) -\curveto(123.78830084,53.26402142)(131.63046565,65.00066371)(131.63046565,78.01909351) -\closepath -} -} -{ -\newrgbcolor{curcolor}{0.40000001 0.40000001 0.40000001} -\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor] -{ -\newpath -\moveto(107.42981974,79.07450844) -\curveto(107.42981974,80.27388842)(107.21155974,81.7313684)(106.93133974,82.40320839) -\curveto(106.27446975,83.97809837)(104.67750977,85.62831835)(103.12097979,86.34062834) -\lineto(101.86595981,86.91495834) -\lineto(103.76388978,87.12374833) -\curveto(109.9713497,87.80660833)(114.75578964,88.85953831)(118.4239696,90.35005829) -\curveto(119.50870958,90.79082829)(120.43412957,91.11354828)(120.48046957,91.06720829) -\curveto(120.52676957,91.02090829)(119.35091959,90.0003783)(117.8673896,88.79942831) -\curveto(114.80298964,86.31872835)(111.87002968,83.14707838)(109.23637971,79.46600843) -\lineto(107.42981974,76.94094846) -\closepath -} -} -{ -\newrgbcolor{curcolor}{0.40000001 0.40000001 0.40000001} -\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor] -{ -\newpath -\moveto(90.23987995,80.74165842) -\curveto(88.39937998,83.25100838)(83.90172003,87.83609833)(81.46581006,89.6862683) -\curveto(80.54900007,90.38262829)(79.85821008,91.01170829)(79.93072008,91.08421828) -\curveto(80.00322008,91.15671828)(81.19345007,90.78056829)(82.57564005,90.2482883) -\curveto(86.6698,88.67163832)(92.80913992,87.29646833)(95.75810988,87.29550833) -\curveto(97.25245986,87.29501833)(97.86218986,86.82337834)(96.73922987,86.53659834) -\curveto(95.58913988,86.24288835)(93.64728991,84.45480837)(92.91095992,83.01147839) -\curveto(92.53824992,82.2809084)(92.14463993,80.98068841)(92.03627993,80.12209842) -\lineto(91.83926993,78.56103844) -\closepath -} -} -{ -\newrgbcolor{curcolor}{0.40000001 0.40000001 0.40000001} -\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor] -{ -\newpath -\moveto(99.80548983,58.55970869) -\curveto(99.34431984,61.67904866)(98.10725985,65.9998486)(96.64668987,69.59277856) -\curveto(96.04075988,71.08331854)(95.59308988,72.35094852)(95.65186988,72.40971852) -\curveto(95.71066988,72.46851852)(96.28258988,72.29770852)(96.92285987,72.03018853) -\curveto(99.24703984,71.05908854)(103.08285979,71.70514853)(104.93275977,73.37927851) -\curveto(105.66786976,74.0445485)(105.65063976,73.7400385)(104.86615977,72.20230852) -\curveto(102.97679979,68.49886857)(101.26309981,63.02074864)(100.54811982,58.3989787) -\lineto(100.18053983,56.02290873) -\closepath -} -} -\end{pspicture} diff --git a/playground/geometry.ipynb b/playground/geometry.ipynb deleted file mode 100644 index 65e07f8..0000000 --- a/playground/geometry.ipynb +++ /dev/null @@ -1,60 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "c94a76d4-15cb-4628-980e-644c24119b55", - "metadata": { - "tags": [] - }, - "source": [ - "# Geometry parameters\n", - "\n", - "## Simple structure\n", - "\n", - "$$ \\theta \\in \\left[ 0.01, 0.28 \\right] $$\n", - "$$ r_0 = 1 $$\n", - "$$ L = 2 r_0 $$\n", - "$$ r = \\frac{r_0}{1 - \\theta} $$\n", - "$$ r_{fillet} = r_0 \\left (\\sqrt{2} - \\frac{1}{1 - \\theta} \\right) $$\n", - "\n", - "## Face centered structure\n", - "\n", - "$$ \\theta \\in \\left[ 0.01, 0.13 \\right] $$\n", - "$$ r_0 = 1 $$\n", - "$$ L = \\frac{4 r_0}{\\sqrt{2}} $$\n", - "$$ r = \\frac{r_0}{1 - \\theta} $$\n", - "$$ r_{fillet} = r_0 \\left( \\frac{2 \\sqrt{3}}{3} - \\frac{1}{1 - \\theta} \\right) $$\n", - "\n", - "## Body centered structure\n", - "\n", - "$$ \\theta \\in \\left[ 0.01, 0.18 \\right] $$\n", - "$$ r_0 = 1 $$\n", - "$$ L = \\frac{4 r_0}{\\sqrt{3}} $$\n", - "$$ r = \\frac{r_0}{1 - \\theta} $$\n", - "$$ r_{fillet} = r_0 \\left( \\frac{\\sqrt{2}}{\\sqrt{1 - \\cos \\left(\\pi - 2 \\arccos \\left(\\sqrt{\\frac{2}{3}} \\right) \\right)}} - \n", - " \\frac{1}{1 - \\theta} \\right) $$\n" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "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.10.0" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/playground/graph.gv b/playground/graph.gv deleted file mode 100644 index 87c34ec..0000000 --- a/playground/graph.gv +++ /dev/null @@ -1,97 +0,0 @@ -digraph G { - rankdir = LR; - edge[arrowhead = vee; arrowtail = vee; arrowsize = 0.8]; - #compound = true; - - subgraph anisotropy { - - - subgraph cluster_cae { - label = <Pipeline>; - #graph [ranksep=1]; - node [shape = box; style = rounded]; - - geometry [ - label=< - - - -
CAD geometry
- Salome
- OpenCascade
> - ]; - - mesh [ - label=< - - - -
Meshing
- Salome
- Netgen
> - ]; - - solving [ - label=< - - -
Solving
- OpenFoam
> - - ]; - - database [ - label=< - - -
Database
- Sqlite
>; - width = 1; - shape = cylinder; - ]; - - postprocess [ - label=< - - -
Post-processing
>; - ]; - - ml [ - label=< - - -
Machine learning
>; - color = goldenrod; - ]; - - geometry -> mesh -> solving -> postprocess -> ml [weight = 10]; - - { - edge[dir = both; arrowhead = box; arrowtail = box]; - database -> geometry; - database -> mesh; - database -> solving; - database -> postprocess; - { rank = same; mesh; database } - } - - { - - edge[dir = normal; color = goldenrod] - ml -> geometry; - ml -> mesh; - ml -> solving; - { rank = same; mesh; ml } - - } - } - - subgraph cluster_caeN { - label = <Pipeline>; - empty1 [label = "..."; shape = plaintext; width = 1]; - - } - subgraph cluster_caeN2 { - label = <Pipeline2>; - empty2 [label = "..."; shape = plaintext; width = 1]; - - } -} - - -} diff --git a/playground/mesh.py b/playground/mesh.py deleted file mode 100644 index ea3ef5a..0000000 --- a/playground/mesh.py +++ /dev/null @@ -1,304 +0,0 @@ -# -*- coding: utf-8 -*- -# This file is part of anisotropy. -# License: GNU GPL version 3, see the file "LICENSE" for details. - -import logging - -SMESH_IMPORTED = False - -try: - import SMESH - from salome.smesh import smeshBuilder - - SMESH_IMPORTED = True - -except: - pass - -class Mesh(object): - def __init__(self, geom): - - # Mesh module - if not SMESH_IMPORTED: - raise ImportError("Cannot find the salome mesh modules.") - - else: - self.smesh = smeshBuilder.New() - self.smeshBuilder = smeshBuilder - - # General attributes - self.geom = geom - self.mesh = self.smesh.Mesh(self.geom.shape, self.geom.name) - - def algo3d(self, algo, type = "tetrahedron"): - smeshAlgo = self.mesh.__dict__.get(type.capitalize()) - self.meshAlgorithm3d = algo() - self.meshAlgorithm3d.initialize(smeshAlgo(algo = self.meshAlgorithm3d.key)) - self.mesh.AddHypothesis(self.meshAlgorithm3d.hypo) - - return self.meshAlgorithm3d - - def algo2d(self, algo, type = "triangle"): - smeshAlgo = self.mesh.__dict__.get(type.capitalize()) - self.meshAlgorithm2d = algo() - self.meshAlgorithm2d.initialize(smeshAlgo(algo = self.meshAlgorithm2d.key)) - self.mesh.AddHypothesis(self.meshAlgorithm2d.hypo) - - return self.meshAlgorithm2d - - def algo1d(self, algo, type = "segment"): - smeshAlgo = self.mesh.__dict__.get(type.capitalize()) - self.meshAlgorithm1d = algo() - self.meshAlgorithm1d.initialize(smeshAlgo(algo = self.meshAlgorithm1d.key)) - self.mesh.AddHypothesis(self.meshAlgorithm1d.hypo) - - return self.meshAlgorithm1d - - def createGroups(self, prefix = None): - prefix = prefix or "" - - for group in self.shape.groups: - name = group.GetName() - - if name: - name = prefix + name - self.mesh.GroupOnGeom(group, name, SMESH.FACE) - - def compute(self): - """Compute mesh. - """ - isDone = self.mesh.Compute() - out = "" - err = self.mesh.GetComputeErrors() - returncode = int(not isDone) - - return out, err, returncode - - def stats(self): - return { - "elements": self.mesh.NbElements(), - "edges": self.mesh.NbEdges(), - "faces": self.mesh.NbFaces(), - "volumes": self.mesh.NbVolumes(), - "tetrahedrons": self.mesh.NbTetras(), - "prisms": self.mesh.NbPrisms(), - "pyramids": self.mesh.NbPyramids() - } - - def removePyramids(self): - if self.mesh.NbPyramids() > 0: - pyramidCriterion = smesh.GetCriterion( - SMESH.VOLUME, - SMESH.FT_ElemGeomType, - SMESH.FT_Undefined, - SMESH.Geom_PYRAMID - ) - pyramidGroup = self.mesh.MakeGroupByCriterion("pyramids", pyramidCriterion) - pyramidVolumes = self.mesh.GetIDSource(pyramidGroup.GetIDs(), SMESH.VOLUME) - - self.mesh.SplitVolumesIntoTetra(pyramidVolumes, smesh.Hex_5Tet) - - self.mesh.RemoveGroup(pyramidGroup) - self.mesh.RenumberElements() - - def export( - filename: str - ): - """Export a mesh. - - Supported formats: unv. - - :param filename: - Name of the file to store the given mesh in. - - :return: - Output, error messages and returncode - """ - out, err, returncode = "", "", 0 - ext = os.path.splitext(filename)[1][1: ] - - try: - if ext == "unv": - self.mesh.ExportUNV(self.mesh, filename) - - else: - raise NotImplementedError(f"{ ext } is not supported") - - except NotImplementedError as e: - err = e - returncode = 1 - - except Exception as e: - err = e.details.text - returncode = 1 - - return out, err, returncode - - -class MeshAlgorithm(object): - pass - -class AlgorithmHypothesis(object): - pass - -class Netgen3D(MeshAlgorithm): - """ - MaxElementVolume - Parameters - ViscousLayers - """ - def __init__(self, **kwargs): - self.key = smeshBuilder.NETGEN_3D - - def initialize(self, algo, hypo): #thesises: list): - self.algo = algo - #self.hypo = self.algo.Parameters() - - #for hypo in hypothesises: - - self.hypo = self.__dict__[hypo.__name__]() - - class ViscousLayers(AlgorithmHypothesis): - def __init__(self, - algo, - thickness = 1, - numberOfLayers = 1, - stretchFactor = 0, - faces = [], - isFacesToIgnore = True, - extrMethod = "SURF_OFFSET_SMOOTH", - **kwargs - ): - extrusionMethod = dict( - SURF_OFFSET_SMOOTH = smeshBuilder.SURF_OFFSET_SMOOTH, - FACE_OFFSET = smeshBuilder.FACE_OFFSET, - NODE_OFFSET = smeshBuilder.NODE_OFFSET, - ).get(extrMethod, smeshBuilder.SURF_OFFSET_SMOOTH) - - self.hypo = self.algo.ViscousLayers( - thickness, - numberOfLayers, - stretchFactor, - faces, - isFacesToIgnore, - extrusionMethod - ) - - class Parameters(AlgorithmHypothesis): - def __init__(self, algo): - self.hypo = self.algo.Parameters() - - @property - def minSize(self): - return self.hypo.GetMinSize() - - @minSize.setter - def minSize(self, value): - self.hypo.SetMinSize(value) - - @property - def maxSize(self): - return self.hypo.GetMaxSize() - - @maxSize.setter - def maxSize(self, value): - self.hypo.SetMaxSize(value) - - @property - def fineness(self): - return self.hypo.GetFineness() - - @fineness.setter - def fineness(self, value): - self.hypo.SetFineness(value) - - @property - def growthRate(self): - return self.hypo.GetGrowthRate() - - @growthRate.setter - def growthRate(self, value): - self.hypo.SetGrowthRate(value) - - @property - def nbSegPerEdge(self): - return self.hypo.GetNbSegPerEdge() - - @nbSegPerEdge.setter - def nbSegPerEdge(self, value): - self.hypo.SetNbSegPerEdge(value) - - @property - def nbSegPerRadius(self): - return self.hypo.GetNbSegPerRadius() - - @nbSegPerRadius.setter - def nbSegPerRadius(self, value): - self.hypo.SetNbSegPerRadius(value) - - @property - def chordalErrorEnabled(self): - return self.hypo.GetChordalErrorEnabled() - - @chordalErrorEnabled.setter - def chordalErrorEnabled(self, value): - self.hypo.SetChordalErrorEnabled(value) - - @property - def chordalError(self): - return self.hypo.GetChordalError() - - @chordalError.setter - def chordalError(self, value): - self.hypo.SetChordalError(value) - - @property - def secondOrder(self): - return self.hypo.GetSecondOrder() - - @secondOrder.setter - def secondOrder(self, value): - self.hypo.SetSecondOrder(value) - - @property - def optimize(self): - return self.hypo.GetOptimize() - - @optimize.setter - def optimize(self, value): - self.hypo.SetOptimize(value) - - @property - def quadAllowed(self): - return self.hypo.GetQuadAllowed() - - @quadAllowed.setter - def quadAllowed(self, value): - self.hypo.SetQuadAllowed(value) - - @property - def useSurfaceCurvature(self): - return self.hypo.GetUseSurfaceCurvature() - - @useSurfaceCurvature.setter - def useSurfaceCurvature(self, value): - self.hypo.SetUseSurfaceCurvature(value) - - @property - def fuseEdges(self): - return self.hypo.GetFuseEdges() - - @fuseEdges.setter - def fuseEdges(self, value): - self.hypo.SetFuseEdges(value) - - @property - def checkChartBoundary(self): - return self.hypo.GetCheckChartBoundary() - - @checkChartBoundary.setter - def GetCheckChartBoundary(self, value): - self.hypo.SetCheckChartBoundary(value) - -class MEFISTO(MeshAlgorithm): - pass diff --git a/playground/meshConvert.py b/playground/meshConvert.py deleted file mode 100644 index 67b4ff5..0000000 --- a/playground/meshConvert.py +++ /dev/null @@ -1,47 +0,0 @@ -from netgen.meshing import Mesh as netgenMesh -from meshio import Mesh as meshioMesh -from meshio._mesh import topological_dimension -from meshio._common import num_nodes_per_cell -from numpy import array - -meshfile = "mesh.mesh" - -mesh = netgenMesh() -mesh.Load(meshfile) - -def detectTopology(dimension: dict, num_nodes: dict): - for dim in topological_dimension.keys(): - for num in num_nodes_per_cell.keys(): - if topological_dimension[dim] == dimension and num_nodes_per_cell[num] == num_nodes and dim == num: - return dim - -def extractCells(dimension: int, elements): - cellsNew = {} - - for cell in elements: - cellTopo = detectTopology(dimension, len(cell.points)) - # shift indicies, they should starts from zero - cellNew = array([ pointId.nr for pointId in cell.points ], dtype = int) - 1 - - if cellsNew.get(cellTopo): - cellsNew[cellTopo].append(cellNew) - - else: - cellsNew[cellTopo] = [ cellNew ] - - return cellsNew - -def extractPoints(points): - return array([ point.p for point in mesh.Points() ], dtype = float) - -points = extractPoints(mesh.Points()) -cells1d = extractCells(1, mesh.Elements1D()) -cells2d = extractCells(2, mesh.Elements2D()) -cells3d = extractCells(3, mesh.Elements3D()) -cells = [ - *[ e for e in cells1d.items() ], - *[ e for e in cells2d.items() ], - *[ e for e in cells3d.items() ] -] - -meshNew = meshioMesh(points, cells) \ No newline at end of file diff --git a/playground/newtest.db b/playground/newtest.db deleted file mode 100644 index f04e55e..0000000 Binary files a/playground/newtest.db and /dev/null differ diff --git a/playground/newtest2.db b/playground/newtest2.db deleted file mode 100644 index 1de202b..0000000 Binary files a/playground/newtest2.db and /dev/null differ diff --git a/playground/salome-run.py b/playground/salome-run.py deleted file mode 100644 index 732d3f4..0000000 --- a/playground/salome-run.py +++ /dev/null @@ -1,8 +0,0 @@ -# -*- coding: utf-8 -*- - -import sys; path = "/home/nafaryus/projects/anisotropy"; sys.path.extend([path, path + "/env/lib/python3.10/site-packages"]) -from anisotropy.samples.faceCentered import FaceCentered, FaceCenteredMesh -fc = FaceCentered([1, 0, 0], 0.12, filletsEnabled = True) -fc.build() -fcm = FaceCenteredMesh(fc) -fcm.build() diff --git a/playground/test_anisotropy.toml b/playground/test_anisotropy.toml deleted file mode 100644 index 223514c..0000000 --- a/playground/test_anisotropy.toml +++ /dev/null @@ -1,281 +0,0 @@ -# -*- coding: utf-8 -*- -# This file is part of anisotropy. -# License: GNU GPL version 3, see the file "LICENSE" for details. - -[logger] -name = "anisotropy" -format = "[ %(levelname)s ] %(message)s" - -[base] -simple = true -bodyCentered = true -faceCentered = true - -[[structures]] - [structures.structure] - type = "simple" - # auto # from theta: list # theta: float - theta = [0.01, 0.28, 0.01] # [min, max, step] - # auto # from directions:list # direction: list - directions = [ - [1, 0, 0], - [0, 0, 1], - [1, 1, 1] - ] - - # r0 = - # L = - # radius = - - filletsEnabled = true - # auto # fillets: float - - [structures.mesh] - maxSize = 0.5 - minSize = 0.05 - - fineness = 5 - growthRate = 0.5 - nbSegPerEdge = 2 - nbSegPerRadius = 1 - - chordalErrorEnabled = true - chordalError = 0.25 - - secondOrder = false - optimize = true - quadAllowed = false - useSurfaceCurvature = true - fuseEdges = true - checkChartBoundary = false - - viscousLayers = false - thickness = [0.01, 0.005] # [min, max] # step is controlled by theta count - numberOfLayers = 1 - stretchFactor = 1 - isFacesToIgnore = true - facesToIgnore = ["inlet", "outlet"] - # auto # faces: list - extrusionMethod = "SURF_OFFSET_SMOOTH" - - [[structures.submesh]] - name = "strips" - maxSize = 0.5 - minSize = 0.05 - - fineness = 5 - growthRate = 0.2 - nbSegPerEdge = 2 - nbSegPerRadius = 3 - - chordalErrorEnabled = true - chordalError = 0.25 - - secondOrder = false - optimize = true - quadAllowed = false - useSurfaceCurvature = true - fuseEdges = true - checkChartBoundary = false - - [structures.flowapproximation] - transportProperties.nu = 1e-6 - - pressure.boundaryField.inlet = { type = "fixedValue", value = 1e-3 } - pressure.boundaryField.outlet = { type = "fixedValue", value = 0.0 } - - # multiplication velocity value with flow direction vector - velocity.boundaryField.inlet = { type = "fixedValue", value = 6e-5 } - velocity.boundaryField.outlet = { type = "zeroGradient", value = "None" } - - [structures.flow] - scale = [ 1e-5, 1e-5, 1e-5 ] - - transportProperties.nu = 1e-6 - - pressure.boundaryField.inlet = { type = "fixedValue", value = 1e-3 } - pressure.boundaryField.outlet = { type = "fixedValue", value = 0.0 } - - velocity.boundaryField.inlet = { type = "pressureInletVelocity", value = 0.0 } - velocity.boundaryField.outlet = { type = "zeroGradient", value = "None" } - - -[[structures]] - [structures.structure] - type = "bodyCentered" - # auto # from theta: list # theta: float - theta = [0.01, 0.17, 0.01] # [min, max, step] - # auto # from directions:list # direction: list - directions = [ - [1, 0, 0], - [0, 0, 1], - [1, 1, 1] - ] - - # r0 = - # L = - # radius = - - filletsEnabled = true - # auto # fillets: float - - [structures.mesh] - maxSize = 0.5 - minSize = 0.05 - - fineness = 5 - growthRate = 0.5 - nbSegPerEdge = 2 - nbSegPerRadius = 1 - - chordalErrorEnabled = true - chordalError = 0.25 - - secondOrder = false - optimize = true - quadAllowed = false - useSurfaceCurvature = true - fuseEdges = true - checkChartBoundary = false - - viscousLayers = false - thickness = [0.005, 0.0005] # [min, max] # step is controlled by theta count - numberOfLayers = 1 - stretchFactor = 1 - isFacesToIgnore = true - facesToIgnore = ["inlet", "outlet"] - # auto # faces: list - extrusionMethod = "SURF_OFFSET_SMOOTH" - - [[structures.submesh]] - name = "strips" - maxSize = 0.5 - minSize = 0.05 - - fineness = 5 - growthRate = 0.2 - nbSegPerEdge = 2 - nbSegPerRadius = 3 - - chordalErrorEnabled = true - chordalError = 0.25 - - secondOrder = false - optimize = true - quadAllowed = false - useSurfaceCurvature = true - fuseEdges = true - checkChartBoundary = false - - [structures.flowapproximation] - transportProperties.nu = 1e-6 - - pressure.boundaryField.inlet = { type = "fixedValue", value = 1e-3 } - pressure.boundaryField.outlet = { type = "fixedValue", value = 0.0 } - - # multiplication velocity value with direction vector - velocity.boundaryField.inlet = { type = "fixedValue", value = 6e-5 } - velocity.boundaryField.outlet = { type = "zeroGradient", value = "None" } - - [structures.flow] - scale = [ 1e-5, 1e-5, 1e-5 ] - - transportProperties.nu = 1e-6 - - pressure.boundaryField.inlet = { type = "fixedValue", value = 1e-3 } - pressure.boundaryField.outlet = { type = "fixedValue", value = 0.0 } - - velocity.boundaryField.inlet = { type = "pressureInletVelocity", value = 0.0 } - velocity.boundaryField.outlet = { type = "zeroGradient", value = "None" } - - -[[structures]] - [structures.structure] - type = "faceCentered" - # auto # from theta: list # theta: float - theta = [0.01, 0.12, 0.01] # [min, max, step] - # auto # from directions:list # direction: list - directions = [ - [1, 0, 0], - [0, 0, 1], - [1, 1, 1] - ] - - # r0 = - # L = - # radius = - - filletsEnabled = true - # auto # fillets: float - - [structures.mesh] - maxSize = 0.5 - minSize = 0.05 - - fineness = 5 - growthRate = 0.5 - nbSegPerEdge = 2 - nbSegPerRadius = 1 - - chordalErrorEnabled = true - chordalError = 0.25 - - secondOrder = false - optimize = true - quadAllowed = false - useSurfaceCurvature = true - fuseEdges = true - checkChartBoundary = false - - viscousLayers = false - thickness = [0.001, 0.0005] # [min, max] # step is controlled by theta count - numberOfLayers = 1 - stretchFactor = 1 - isFacesToIgnore = true - facesToIgnore = ["inlet", "outlet"] - # auto # faces: list - extrusionMethod = "SURF_OFFSET_SMOOTH" - - [[structures.submesh]] - name = "strips" - maxSize = 0.5 - minSize = 0.05 - - fineness = 5 - growthRate = 0.2 - nbSegPerEdge = 2 - nbSegPerRadius = 3 - - chordalErrorEnabled = true - chordalError = 0.25 - - secondOrder = false - optimize = true - quadAllowed = false - useSurfaceCurvature = true - fuseEdges = true - checkChartBoundary = false - - [structures.flowapproximation] - transportProperties.nu = 1e-6 - - pressure.boundaryField.inlet = { type = "fixedValue", value = 1e-3 } - pressure.boundaryField.outlet = { type = "fixedValue", value = 0.0 } - - # multiplication velocity value with direction vector - velocity.boundaryField.inlet = { type = "fixedValue", value = 6e-5 } - velocity.boundaryField.outlet = { type = "zeroGradient", value = "None" } - - [structures.flow] - scale = [ 1e-5, 1e-5, 1e-5 ] - - transportProperties.nu = 1e-6 - - pressure.boundaryField.inlet = { type = "fixedValue", value = 1e-3 } - pressure.boundaryField.outlet = { type = "fixedValue", value = 0.0 } - - velocity.boundaryField.inlet = { type = "pressureInletVelocity", value = 0.0 } - velocity.boundaryField.outlet = { type = "zeroGradient", value = "None" } - - - diff --git a/playground/test_db.db b/playground/test_db.db deleted file mode 100644 index 65290e3..0000000 Binary files a/playground/test_db.db and /dev/null differ diff --git a/playground/test_mesh.py b/playground/test_mesh.py deleted file mode 100644 index 523482b..0000000 --- a/playground/test_mesh.py +++ /dev/null @@ -1,311 +0,0 @@ -#!/usr/bin/env python - -### -### This file is generated automatically by SALOME v9.7.0 with dump python functionality -### - -import sys -import salome - -salome.salome_init() -import salome_notebook -notebook = salome_notebook.NoteBook() -sys.path.insert(0, r'/home/nafaryus/projects/anisotropy/playground') - -### -### GEOM component -### - -import GEOM -from salome.geom import geomBuilder -import math -import SALOMEDS - - -geompy = geomBuilder.New() - -O = geompy.MakeVertex(0, 0, 0) -OX = geompy.MakeVectorDXDYDZ(1, 0, 0) -OY = geompy.MakeVectorDXDYDZ(0, 1, 0) -OZ = geompy.MakeVectorDXDYDZ(0, 0, 1) -Box_1 = geompy.MakeBoxDXDYDZ(1, 1, 1) -Fillet_1 = geompy.MakeFilletR1R2(Box_1, 0.2, 0.5, geompy.ShapeType["EDGE"], [18]) -Group_1 = geompy.CreateGroup(Fillet_1, geompy.ShapeType["FACE"]) -geompy.UnionIDs(Group_1, [13]) -Group_2 = geompy.CreateGroup(Fillet_1, geompy.ShapeType["FACE"]) -geompy.UnionIDs(Group_2, [37]) -Group_3 = geompy.CreateGroup(Fillet_1, geompy.ShapeType["FACE"]) -geompy.UnionIDs(Group_3, [3]) -Group_4 = geompy.CreateGroup(Fillet_1, geompy.ShapeType["FACE"]) -geompy.UnionIDs(Group_4, [27]) -Group_5 = geompy.CreateGroup(Fillet_1, geompy.ShapeType["FACE"]) -geompy.UnionIDs(Group_5, [32]) -Group_6 = geompy.CreateGroup(Fillet_1, geompy.ShapeType["FACE"]) -geompy.UnionIDs(Group_6, [40]) -Group_7 = geompy.CreateGroup(Fillet_1, geompy.ShapeType["FACE"]) -geompy.UnionIDs(Group_7, [22]) -[Group_1, Group_2, Group_3, Group_4, Group_5, Group_6, Group_7] = geompy.GetExistingSubObjects(Fillet_1, False) -geompy.addToStudy( O, 'O' ) -geompy.addToStudy( OX, 'OX' ) -geompy.addToStudy( OY, 'OY' ) -geompy.addToStudy( OZ, 'OZ' ) -geompy.addToStudy( Box_1, 'Box_1' ) -geompy.addToStudy( Fillet_1, 'Fillet_1' ) -geompy.addToStudyInFather( Fillet_1, Group_1, 'Group_1' ) -geompy.addToStudyInFather( Fillet_1, Group_2, 'Group_2' ) -geompy.addToStudyInFather( Fillet_1, Group_3, 'Group_3' ) -geompy.addToStudyInFather( Fillet_1, Group_4, 'Group_4' ) -geompy.addToStudyInFather( Fillet_1, Group_5, 'Group_5' ) -geompy.addToStudyInFather( Fillet_1, Group_6, 'Group_6' ) -geompy.addToStudyInFather( Fillet_1, Group_7, 'Group_7' ) - -### -### SMESH component -### - -import SMESH, SALOMEDS -from salome.smesh import smeshBuilder - -smesh = smeshBuilder.New() -#smesh.SetEnablePublish( False ) # Set to False to avoid publish in study if not needed or in some particular situations: - # multiples meshes built in parallel, complex and numerous mesh edition (performance) - -Mesh_1 = smesh.Mesh(Fillet_1) -GMSH = Mesh_1.Tetrahedron(algo=smeshBuilder.GMSH) -Gmsh_Parameters = GMSH.Parameters() -Gmsh_Parameters.Set2DAlgo( 0 ) -Gmsh_Parameters.SetMinSize( 0 ) -Gmsh_Parameters.SetMaxSize( 0.5 ) -Gmsh_Parameters.SetIs2d( 0 ) -Group_1_1 = Mesh_1.GroupOnGeom(Group_1,'Group_1',SMESH.FACE) -Group_2_1 = Mesh_1.GroupOnGeom(Group_2,'Group_2',SMESH.FACE) -Group_3_1 = Mesh_1.GroupOnGeom(Group_3,'Group_3',SMESH.FACE) -Group_4_1 = Mesh_1.GroupOnGeom(Group_4,'Group_4',SMESH.FACE) -Group_5_1 = Mesh_1.GroupOnGeom(Group_5,'Group_5',SMESH.FACE) -Group_6_1 = Mesh_1.GroupOnGeom(Group_6,'Group_6',SMESH.FACE) -Group_7_1 = Mesh_1.GroupOnGeom(Group_7,'Group_7',SMESH.FACE) -isDone = Mesh_1.Compute() -[ Group_1_1, Group_2_1, Group_3_1, Group_4_1, Group_5_1, Group_6_1, Group_7_1 ] = Mesh_1.GetGroups() -Gmsh_Parameters.SetMinSize( 0.15307 ) -Gmsh_Parameters.SetMaxSize( 0.17443 ) -Gmsh_Parameters.SetIs2d( 0 ) -isDone = Mesh_1.Compute() -[ Group_1_1, Group_2_1, Group_3_1, Group_4_1, Group_5_1, Group_6_1, Group_7_1 ] = Mesh_1.GetGroups() -status = Mesh_1.RemoveHypothesis(GMSH) -PolyhedronPerSolid_3D = Mesh_1.Polyhedron() -status = Mesh_1.RemoveHypothesis(Gmsh_Parameters) -isDone = Mesh_1.Compute() -[ Group_1_1, Group_2_1, Group_3_1, Group_4_1, Group_5_1, Group_6_1, Group_7_1 ] = Mesh_1.GetGroups() -NETGEN_1D_2D = Mesh_1.Triangle(algo=smeshBuilder.NETGEN_1D2D) -NETGEN_2D_Parameters_1 = NETGEN_1D_2D.Parameters() -NETGEN_2D_Parameters_1.SetMaxSize( 0.173205 ) -NETGEN_2D_Parameters_1.SetMinSize( 0.0147777 ) -NETGEN_2D_Parameters_1.SetSecondOrder( 0 ) -NETGEN_2D_Parameters_1.SetOptimize( 1 ) -NETGEN_2D_Parameters_1.SetFineness( 2 ) -NETGEN_2D_Parameters_1.SetChordalError( -1 ) -NETGEN_2D_Parameters_1.SetChordalErrorEnabled( 0 ) -NETGEN_2D_Parameters_1.SetUseSurfaceCurvature( 1 ) -NETGEN_2D_Parameters_1.SetFuseEdges( 1 ) -NETGEN_2D_Parameters_1.SetWorstElemMeasure( 0 ) -NETGEN_2D_Parameters_1.SetUseDelauney( 0 ) -NETGEN_2D_Parameters_1.SetQuadAllowed( 0 ) -NETGEN_2D_Parameters_1.SetCheckChartBoundary( 16 ) -isDone = Mesh_1.Compute() -[ Group_1_1, Group_2_1, Group_3_1, Group_4_1, Group_5_1, Group_6_1, Group_7_1 ] = Mesh_1.GetGroups() -status = Mesh_1.RemoveHypothesis(NETGEN_1D_2D) -status = Mesh_1.RemoveHypothesis(PolyhedronPerSolid_3D) -status = Mesh_1.RemoveHypothesis(NETGEN_2D_Parameters_1) -Prism_3D = Mesh_1.Prism() -isDone = Mesh_1.Compute() -[ Group_1_1, Group_2_1, Group_3_1, Group_4_1, Group_5_1, Group_6_1, Group_7_1 ] = Mesh_1.GetGroups() -UseExisting_1D = Mesh_1.UseExistingSegments() -isDone = Mesh_1.Compute() -[ Group_1_1, Group_2_1, Group_3_1, Group_4_1, Group_5_1, Group_6_1, Group_7_1 ] = Mesh_1.GetGroups() -status = Mesh_1.RemoveHypothesis(UseExisting_1D) -Regular_1D = Mesh_1.Segment() -Number_of_Segments_1 = Regular_1D.NumberOfSegments(15) -isDone = Mesh_1.Compute() -[ Group_1_1, Group_2_1, Group_3_1, Group_4_1, Group_5_1, Group_6_1, Group_7_1 ] = Mesh_1.GetGroups() -status = Mesh_1.RemoveHypothesis(Regular_1D) -status = Mesh_1.RemoveHypothesis(Prism_3D) -status = Mesh_1.RemoveHypothesis(Number_of_Segments_1) -Hexa_3D = Mesh_1.Hexahedron(algo=smeshBuilder.Hexa) -isDone = Mesh_1.Compute() -[ Group_1_1, Group_2_1, Group_3_1, Group_4_1, Group_5_1, Group_6_1, Group_7_1 ] = Mesh_1.GetGroups() -Quadrangle_2D = Mesh_1.Quadrangle(algo=smeshBuilder.QUADRANGLE) -Quadrangle_Parameters_1 = Quadrangle_2D.QuadrangleParameters(smeshBuilder.QUAD_QUADRANGLE_PREF,-1,[],[]) -isDone = Mesh_1.Compute() -[ Group_1_1, Group_2_1, Group_3_1, Group_4_1, Group_5_1, Group_6_1, Group_7_1 ] = Mesh_1.GetGroups() -Renumber_1 = Hexa_3D.Renumber() -Renumber_1.SetBlocksOrientation([ ]) -isDone = Mesh_1.Compute() -[ Group_1_1, Group_2_1, Group_3_1, Group_4_1, Group_5_1, Group_6_1, Group_7_1 ] = Mesh_1.GetGroups() -Regular_1D_1 = Mesh_1.Segment() -Number_of_Segments_2 = Regular_1D.NumberOfSegments(15) -status = Mesh_1.RemoveHypothesis(Renumber_1) -isDone = Mesh_1.Compute() -[ Group_1_1, Group_2_1, Group_3_1, Group_4_1, Group_5_1, Group_6_1, Group_7_1 ] = Mesh_1.GetGroups() -SegmentAroundVertex_0D = smesh.CreateHypothesis('SegmentAroundVertex_0D') -Length_Near_Vertex_1 = Regular_1D.LengthNearVertex(0.1,Fillet_1) -isDone = Mesh_1.Compute() -[ Group_1_1, Group_2_1, Group_3_1, Group_4_1, Group_5_1, Group_6_1, Group_7_1 ] = Mesh_1.GetGroups() -status = Mesh_1.RemoveHypothesis(Quadrangle_2D) -status = Mesh_1.RemoveHypothesis(Hexa_3D) -MEFISTO_2D = Mesh_1.Triangle(algo=smeshBuilder.MEFISTO) -status = Mesh_1.RemoveHypothesis(Quadrangle_Parameters_1) -Max_Element_Area_1 = MEFISTO_2D.MaxElementArea(0.03) -MG_Tetra = Mesh_1.Tetrahedron(algo=smeshBuilder.MG_Tetra) -MG_Tetra_Parameters_1 = MG_Tetra.Parameters() -MG_Tetra_Parameters_1.SetOptimizationLevel( 2 ) -MG_Tetra_Parameters_1.SetToMeshHoles( 0 ) -MG_Tetra_Parameters_1.SetToMakeGroupsOfDomains( 0 ) -MG_Tetra_Parameters_1.SetMaximumMemory( -1 ) -MG_Tetra_Parameters_1.SetInitialMemory( -1 ) -MG_Tetra_Parameters_1.SetKeepFiles( 0 ) -MG_Tetra_Parameters_1.SetWorkingDirectory( '/tmp/' ) -MG_Tetra_Parameters_1.SetVerboseLevel( 10 ) -MG_Tetra_Parameters_1.SetStandardOutputLog( 0 ) -MG_Tetra_Parameters_1.SetRemoveLogOnSuccess( 0 ) -isDone = Mesh_1.Compute() -[ Group_1_1, Group_2_1, Group_3_1, Group_4_1, Group_5_1, Group_6_1, Group_7_1 ] = Mesh_1.GetGroups() -status = Mesh_1.RemoveHypothesis(MG_Tetra) -NETGEN_3D = Mesh_1.Tetrahedron() -status = Mesh_1.RemoveHypothesis(MG_Tetra_Parameters_1) -NETGEN_3D_Parameters_1 = NETGEN_3D.Parameters() -NETGEN_3D_Parameters_1.SetMaxSize( 0.173205 ) -NETGEN_3D_Parameters_1.SetMinSize( 0.0147777 ) -NETGEN_3D_Parameters_1.SetOptimize( 1 ) -NETGEN_3D_Parameters_1.SetFineness( 2 ) -NETGEN_3D_Parameters_1.SetElemSizeWeight( -5.29735e+296 ) -NETGEN_3D_Parameters_1.SetCheckOverlapping( 0 ) -NETGEN_3D_Parameters_1.SetCheckChartBoundary( 16 ) -isDone = Mesh_1.Compute() -[ Group_1_1, Group_2_1, Group_3_1, Group_4_1, Group_5_1, Group_6_1, Group_7_1 ] = Mesh_1.GetGroups() -NETGEN_1D_2D_1 = Mesh_1.Triangle(algo=smeshBuilder.NETGEN_1D2D,geom=Group_7) -NETGEN_2D_Parameters_2 = NETGEN_1D_2D_1.Parameters() -NETGEN_2D_Parameters_2.SetMaxSize( 0.173205 ) -NETGEN_2D_Parameters_2.SetMinSize( 0.015262 ) -NETGEN_2D_Parameters_2.SetSecondOrder( 0 ) -NETGEN_2D_Parameters_2.SetOptimize( 1 ) -NETGEN_2D_Parameters_2.SetFineness( 2 ) -NETGEN_2D_Parameters_2.SetChordalError( -1 ) -NETGEN_2D_Parameters_2.SetChordalErrorEnabled( 0 ) -NETGEN_2D_Parameters_2.SetUseSurfaceCurvature( 1 ) -NETGEN_2D_Parameters_2.SetFuseEdges( 1 ) -NETGEN_2D_Parameters_2.SetWorstElemMeasure( 0 ) -NETGEN_2D_Parameters_2.SetUseDelauney( 0 ) -NETGEN_2D_Parameters_2.SetQuadAllowed( 0 ) -NETGEN_2D_Parameters_2.SetCheckChartBoundary( 112 ) -[ Group_1_1, Group_2_1, Group_3_1, Group_4_1, Group_5_1, Group_6_1, Group_7_1 ] = Mesh_1.GetGroups() -status = Mesh_1.RemoveHypothesis(NETGEN_1D_2D,Group_7) -Regular_1D_2 = Mesh_1.Segment(geom=Group_7) -Max_Size_1 = Regular_1D_2.MaxSize(0.01) -NETGEN_2D = Mesh_1.Triangle(algo=smeshBuilder.NETGEN_2D,geom=Group_7) -status = Mesh_1.RemoveHypothesis(NETGEN_2D_Parameters_2,Group_7) -Length_From_Edges_1 = NETGEN_2D.LengthFromEdges() -[ Group_1_1, Group_2_1, Group_3_1, Group_4_1, Group_5_1, Group_6_1, Group_7_1 ] = Mesh_1.GetGroups() -status = Mesh_1.RemoveHypothesis(MEFISTO_2D) -status = Mesh_1.RemoveHypothesis(Number_of_Segments_2) -Deflection_1 = Regular_1D.Deflection1D(0.001) -NETGEN_2D_1 = Mesh_1.Triangle(algo=smeshBuilder.NETGEN_2D) -status = Mesh_1.RemoveHypothesis(Max_Element_Area_1) -Max_Element_Area_2 = MEFISTO_2D.MaxElementArea(0.05) -[ Group_1_1, Group_2_1, Group_3_1, Group_4_1, Group_5_1, Group_6_1, Group_7_1 ] = Mesh_1.GetGroups() -status = Mesh_1.RemoveHypothesis(Length_From_Edges_1,Group_7) -Max_Element_Area_3 = NETGEN_2D.MaxElementArea(0.01) -[ Group_1_1, Group_2_1, Group_3_1, Group_4_1, Group_5_1, Group_6_1, Group_7_1 ] = Mesh_1.GetGroups() -status = Mesh_1.RemoveHypothesis(Max_Element_Area_3,Group_7) -NETGEN_2D_Parameters_1_1 = NETGEN_2D.Parameters() -NETGEN_2D_Parameters_1_1.SetMaxSize( 0.173205 ) -NETGEN_2D_Parameters_1_1.SetMinSize( 0.015262 ) -NETGEN_2D_Parameters_1_1.SetOptimize( 1 ) -NETGEN_2D_Parameters_1_1.SetFineness( 2 ) -NETGEN_2D_Parameters_1_1.SetChordalError( -1 ) -NETGEN_2D_Parameters_1_1.SetChordalErrorEnabled( 0 ) -NETGEN_2D_Parameters_1_1.SetUseSurfaceCurvature( 1 ) -NETGEN_2D_Parameters_1_1.SetWorstElemMeasure( 0 ) -NETGEN_2D_Parameters_1_1.SetUseDelauney( 0 ) -NETGEN_2D_Parameters_1_1.SetCheckChartBoundary( 0 ) -NETGEN_2D_Parameters_1_1.SetQuadAllowed( 0 ) -[ Group_1_1, Group_2_1, Group_3_1, Group_4_1, Group_5_1, Group_6_1, Group_7_1 ] = Mesh_1.GetGroups() -#Mesh_1.GetMesh().RemoveSubMesh( smeshObj_1 ) ### smeshObj_1 has not been yet created -status = Mesh_1.RemoveHypothesis(Length_Near_Vertex_1) -isDone = Mesh_1.Compute() -[ Group_1_1, Group_2_1, Group_3_1, Group_4_1, Group_5_1, Group_6_1, Group_7_1 ] = Mesh_1.GetGroups() -Max_Element_Area_2.SetMaxElementArea( 0.01 ) -isDone = Mesh_1.Compute() -[ Group_1_1, Group_2_1, Group_3_1, Group_4_1, Group_5_1, Group_6_1, Group_7_1 ] = Mesh_1.GetGroups() -status = Mesh_1.RemoveHypothesis(NETGEN_3D_Parameters_1) -NETGEN_3D_Parameters_2 = NETGEN_3D.Parameters() -NETGEN_3D_Parameters_2.SetMaxSize( 0.173205 ) -NETGEN_3D_Parameters_2.SetMinSize( 0.015262 ) -NETGEN_3D_Parameters_2.SetOptimize( 1 ) -NETGEN_3D_Parameters_2.SetFineness( 4 ) -NETGEN_3D_Parameters_2.SetElemSizeWeight( -5.29735e+296 ) -NETGEN_3D_Parameters_2.SetCheckOverlapping( 0 ) -NETGEN_3D_Parameters_2.SetCheckChartBoundary( 16 ) -isDone = Mesh_1.Compute() -[ Group_1_1, Group_2_1, Group_3_1, Group_4_1, Group_5_1, Group_6_1, Group_7_1 ] = Mesh_1.GetGroups() -status = Mesh_1.RemoveHypothesis(Deflection_1) -Automatic_Length_1 = Regular_1D.AutomaticLength(1) -isDone = Mesh_1.Compute() -[ Group_1_1, Group_2_1, Group_3_1, Group_4_1, Group_5_1, Group_6_1, Group_7_1 ] = Mesh_1.GetGroups() -Automatic_Length_1.SetFineness( 0.5 ) -isDone = Mesh_1.Compute() -[ Group_1_1, Group_2_1, Group_3_1, Group_4_1, Group_5_1, Group_6_1, Group_7_1 ] = Mesh_1.GetGroups() -status = Mesh_1.RemoveHypothesis(Max_Element_Area_2) -Length_From_Edges_2 = MEFISTO_2D.LengthFromEdges() -isDone = Mesh_1.Compute() -[ Group_1_1, Group_2_1, Group_3_1, Group_4_1, Group_5_1, Group_6_1, Group_7_1 ] = Mesh_1.GetGroups() -Automatic_Length_1.SetFineness( 0.25 ) -isDone = Mesh_1.Compute() -[ Group_1_1, Group_2_1, Group_3_1, Group_4_1, Group_5_1, Group_6_1, Group_7_1 ] = Mesh_1.GetGroups() - - -## Set names of Mesh objects -smesh.SetName(GMSH.GetAlgorithm(), 'GMSH') -smesh.SetName(Automatic_Length_1, 'Automatic Length_1') -smesh.SetName(NETGEN_1D_2D.GetAlgorithm(), 'NETGEN 1D-2D') -smesh.SetName(Length_From_Edges_2, 'Length From Edges_2') -smesh.SetName(PolyhedronPerSolid_3D.GetAlgorithm(), 'PolyhedronPerSolid_3D') -smesh.SetName(UseExisting_1D.GetAlgorithm(), 'UseExisting_1D') -smesh.SetName(NETGEN_2D_Parameters_1, 'NETGEN 2D Parameters_1') -smesh.SetName(Number_of_Segments_1, 'Number of Segments_1') -smesh.SetName(Prism_3D.GetAlgorithm(), 'Prism_3D') -smesh.SetName(Hexa_3D.GetAlgorithm(), 'Hexa_3D') -smesh.SetName(Regular_1D.GetAlgorithm(), 'Regular_1D') -smesh.SetName(Gmsh_Parameters, 'Gmsh Parameters') -smesh.SetName(SegmentAroundVertex_0D, 'SegmentAroundVertex_0D') -smesh.SetName(Renumber_1, 'Renumber_1') -smesh.SetName(Number_of_Segments_2, 'Number of Segments_2') -smesh.SetName(Quadrangle_2D.GetAlgorithm(), 'Quadrangle_2D') -smesh.SetName(Group_1_1, 'Group_1') -smesh.SetName(Quadrangle_Parameters_1, 'Quadrangle Parameters_1') -smesh.SetName(Group_2_1, 'Group_2') -smesh.SetName(Group_3_1, 'Group_3') -smesh.SetName(Group_4_1, 'Group_4') -smesh.SetName(Length_Near_Vertex_1, 'Length Near Vertex_1') -smesh.SetName(Group_5_1, 'Group_5') -smesh.SetName(MG_Tetra_Parameters_1, 'MG-Tetra Parameters_1') -smesh.SetName(Group_6_1, 'Group_6') -smesh.SetName(Group_7_1, 'Group_7') -smesh.SetName(Mesh_1.GetMesh(), 'Mesh_1') -smesh.SetName(Length_From_Edges_1, 'Length From Edges_1') -smesh.SetName(NETGEN_2D_Parameters_2, 'NETGEN 2D Parameters_2') -smesh.SetName(NETGEN_3D_Parameters_1, 'NETGEN 3D Parameters_1') -smesh.SetName(Max_Element_Area_1, 'Max. Element Area_1') -smesh.SetName(Max_Element_Area_3, 'Max. Element Area_3') -smesh.SetName(Deflection_1, 'Deflection_1') -smesh.SetName(Max_Element_Area_2, 'Max. Element Area_2') -smesh.SetName(Max_Size_1, 'Max Size_1') -smesh.SetName(NETGEN_3D_Parameters_2, 'NETGEN 3D Parameters_2') -smesh.SetName(NETGEN_2D_Parameters_1_1, 'NETGEN 2D Parameters_1') -smesh.SetName(MEFISTO_2D.GetAlgorithm(), 'MEFISTO_2D') -smesh.SetName(MG_Tetra.GetAlgorithm(), 'MG-Tetra') -smesh.SetName(NETGEN_3D.GetAlgorithm(), 'NETGEN 3D') -smesh.SetName(NETGEN_2D.GetAlgorithm(), 'NETGEN 2D') - - -if salome.sg.hasDesktop(): - salome.sg.updateObjBrowser() diff --git a/playground/test_mesh_2.py b/playground/test_mesh_2.py deleted file mode 100644 index b6bcc79..0000000 --- a/playground/test_mesh_2.py +++ /dev/null @@ -1,686 +0,0 @@ -#!/usr/bin/env python - -### -### This file is generated automatically by SALOME v9.7.0 with dump python functionality -### - -import sys -import salome - -salome.salome_init() -import salome_notebook -notebook = salome_notebook.NoteBook() -sys.path.insert(0, r'/home/nafaryus/projects/anisotropy/playground') - -### -### GEOM component -### - -import GEOM -from salome.geom import geomBuilder -import math -import SALOMEDS - - -geompy = geomBuilder.New() - -O = geompy.MakeVertex(0, 0, 0) -OX = geompy.MakeVectorDXDYDZ(1, 0, 0) -OY = geompy.MakeVectorDXDYDZ(0, 1, 0) -OZ = geompy.MakeVectorDXDYDZ(0, 0, 1) -Box_1 = geompy.MakeBoxDXDYDZ(1, 1, 1) -Fillet_1 = geompy.MakeFilletR1R2(Box_1, 0.2, 0.5, geompy.ShapeType["EDGE"], [18]) -Group_1 = geompy.CreateGroup(Fillet_1, geompy.ShapeType["FACE"]) -geompy.UnionIDs(Group_1, [13]) -Group_2 = geompy.CreateGroup(Fillet_1, geompy.ShapeType["FACE"]) -geompy.UnionIDs(Group_2, [37]) -Group_3 = geompy.CreateGroup(Fillet_1, geompy.ShapeType["FACE"]) -geompy.UnionIDs(Group_3, [3]) -Group_4 = geompy.CreateGroup(Fillet_1, geompy.ShapeType["FACE"]) -geompy.UnionIDs(Group_4, [27]) -Group_5 = geompy.CreateGroup(Fillet_1, geompy.ShapeType["FACE"]) -geompy.UnionIDs(Group_5, [32]) -Group_6 = geompy.CreateGroup(Fillet_1, geompy.ShapeType["FACE"]) -geompy.UnionIDs(Group_6, [40]) -Group_7 = geompy.CreateGroup(Fillet_1, geompy.ShapeType["FACE"]) -geompy.UnionIDs(Group_7, [22]) -[Group_1, Group_2, Group_3, Group_4, Group_5, Group_6, Group_7] = geompy.GetExistingSubObjects(Fillet_1, False) -geomObj_1 = geompy.MakeVertex(0, 0, 0) - -sk = geompy.Sketcher3D() -sk.addPointsAbsolute(2.0000000, 0.0000000, 0.0000000) -sk.addPointsAbsolute(0.0000000, 2.0000000, 0.0000000) -sk.addPointsAbsolute(0.0000000, 2.0000000, 2.0000000) -sk.addPointsAbsolute(2.0000000, 0.0000000, 2.0000000) -sk.addPointsAbsolute(2.0000000, 0.0000000, 0.0000000) -geomObj_2 = sk.wire() -geomObj_3 = geompy.MakeFaceWires([geomObj_2], 1) -geomObj_4 = geompy.GetNormal(geomObj_3) -geomObj_5 = geompy.MakePrismVecH(geomObj_3, geomObj_4, 2.82842712474619) -geomObj_6 = geompy.MakeScaleTransform(geomObj_3, geomObj_1, 100) -geomObj_7 = geompy.MakeScaleTransform(geomObj_5, geomObj_1, 100) -[geomObj_8,geomObj_9,geomObj_10,geomObj_11,geomObj_12,geomObj_13] = geompy.ExtractShapes(geomObj_7, geompy.ShapeType["FACE"], False) -geomObj_14 = geompy.GetNormal(geomObj_8) -geomObj_15 = geompy.GetNormal(geomObj_9) -geomObj_16 = geompy.GetNormal(geomObj_10) -geomObj_17 = geompy.GetNormal(geomObj_11) -geomObj_18 = geompy.GetNormal(geomObj_12) -geomObj_19 = geompy.GetNormal(geomObj_13) -geomObj_20 = geompy.MakeVectorDXDYDZ(1, 0, 0) -geomObj_21 = geompy.MakeVectorDXDYDZ(0, 1, 0) -geomObj_22 = geompy.MakeVectorDXDYDZ(0, 0, 1) -geomObj_23 = geompy.MakeSphereR(1.298701298701299) -geomObj_24 = geompy.MakeMultiTranslation2D(geomObj_23, geomObj_20, 2, 3, geomObj_21, 2, 3) -geomObj_25 = geompy.MakeMultiTranslation1D(geomObj_24, geomObj_22, 2, 3) -[geomObj_26,geomObj_27,geomObj_28,geomObj_29,geomObj_30,geomObj_31,geomObj_32,geomObj_33,geomObj_34,geomObj_35,geomObj_36,geomObj_37,geomObj_38,geomObj_39,geomObj_40,geomObj_41,geomObj_42,geomObj_43,geomObj_44,geomObj_45,geomObj_46,geomObj_47,geomObj_48,geomObj_49,geomObj_50,geomObj_51,geomObj_52] = geompy.ExtractShapes(geomObj_25, geompy.ShapeType["SOLID"], True) -geomObj_53 = geompy.MakeFuseList([geomObj_26, geomObj_27, geomObj_28, geomObj_29, geomObj_30, geomObj_31, geomObj_32, geomObj_33, geomObj_34, geomObj_35, geomObj_36, geomObj_37, geomObj_38, geomObj_39, geomObj_40, geomObj_41, geomObj_42, geomObj_43, geomObj_44, geomObj_45, geomObj_46, geomObj_47, geomObj_48, geomObj_49, geomObj_50, geomObj_51, geomObj_52], False, False) -geomObj_54 = geompy.MakeScaleTransform(geomObj_53, geomObj_1, 100) -geomObj_55 = geompy.MakeScaleTransform(geomObj_54, geomObj_1, 0.01) -geomObj_56 = geompy.MakeFilletAll(geomObj_54, 3) -geomObj_57 = geompy.MakeScaleTransform(geomObj_56, geomObj_1, 0.01) -geomObj_58 = geompy.MakeCutList(geomObj_7, [geomObj_56]) -simple = geompy.MakeScaleTransform(geomObj_58, geomObj_1, 0.01) -[geomObj_59] = geompy.ExtractShapes(simple, geompy.ShapeType["SHELL"], True) -geomObj_60 = geompy.CreateGroup(simple, geompy.ShapeType["FACE"]) -geompy.UnionIDs(geomObj_60, [3, 17, 32, 39, 44, 68, 73, 82, 87, 96, 105, 112, 115, 124, 127, 134, 139, 144, 150, 152, 159, 164, 169, 176, 185, 194, 197, 213, 216, 225, 228, 237, 242, 247, 258, 261, 268, 271, 274, 279, 284, 288, 290, 293]) -inlet = geompy.CreateGroup(simple, geompy.ShapeType["FACE"]) -geomObj_61 = geompy.MakeCutList(geomObj_6, [geomObj_56]) -geomObj_62 = geompy.MakeVertex(0, 0, 0) -geomObj_63 = geompy.MakeScaleTransform(geomObj_61, geomObj_62, 0.01) -geomObj_64 = geompy.GetInPlace(simple, geomObj_63, True) -[geomObj_65] = geompy.SubShapeAll(geomObj_64, geompy.ShapeType["FACE"]) -geompy.UnionList(inlet, [geomObj_65]) -outlet = geompy.CreateGroup(simple, geompy.ShapeType["FACE"]) -geomObj_66 = geompy.MakeCutList(geomObj_13, [geomObj_56]) -geomObj_67 = geompy.MakeVertex(0, 0, 0) -geomObj_68 = geompy.MakeScaleTransform(geomObj_66, geomObj_67, 0.01) -geomObj_69 = geompy.GetInPlace(simple, geomObj_68, True) -[geomObj_70] = geompy.SubShapeAll(geomObj_69, geompy.ShapeType["FACE"]) -geompy.UnionList(outlet, [geomObj_70]) -symetry0 = geompy.CreateGroup(simple, geompy.ShapeType["FACE"]) -geomObj_71 = geompy.MakeCutList(geomObj_8, [geomObj_56]) -geomObj_72 = geompy.MakeVertex(0, 0, 0) -geomObj_73 = geompy.MakeScaleTransform(geomObj_71, geomObj_72, 0.01) -geomObj_74 = geompy.GetInPlace(simple, geomObj_73, True) -[geomObj_75,geomObj_76,geomObj_77,geomObj_78] = geompy.SubShapeAll(geomObj_74, geompy.ShapeType["FACE"]) -geompy.UnionList(symetry0, [geomObj_75, geomObj_76, geomObj_77, geomObj_78]) -symetry1 = geompy.CreateGroup(simple, geompy.ShapeType["FACE"]) -geomObj_79 = geompy.MakeCutList(geomObj_9, [geomObj_56]) -geomObj_80 = geompy.MakeVertex(0, 0, 0) -geomObj_81 = geompy.MakeScaleTransform(geomObj_79, geomObj_80, 0.01) -geomObj_82 = geompy.GetInPlace(simple, geomObj_81, True) -[geomObj_83] = geompy.SubShapeAll(geomObj_82, geompy.ShapeType["FACE"]) -geompy.UnionList(symetry1, [geomObj_83]) -symetry2 = geompy.CreateGroup(simple, geompy.ShapeType["FACE"]) -geomObj_84 = geompy.MakeCutList(geomObj_10, [geomObj_56]) -geomObj_85 = geompy.MakeVertex(0, 0, 0) -geomObj_86 = geompy.MakeScaleTransform(geomObj_84, geomObj_85, 0.01) -geomObj_87 = geompy.GetInPlace(simple, geomObj_86, True) -[geomObj_88,geomObj_89,geomObj_90,geomObj_91] = geompy.SubShapeAll(geomObj_87, geompy.ShapeType["FACE"]) -geompy.UnionList(symetry2, [geomObj_88, geomObj_89, geomObj_90, geomObj_91]) -symetry3 = geompy.CreateGroup(simple, geompy.ShapeType["FACE"]) -geomObj_92 = geompy.MakeCutList(geomObj_11, [geomObj_56]) -geomObj_93 = geompy.MakeVertex(0, 0, 0) -geomObj_94 = geompy.MakeScaleTransform(geomObj_92, geomObj_93, 0.01) -geomObj_95 = geompy.GetInPlace(simple, geomObj_94, True) -[geomObj_96] = geompy.SubShapeAll(geomObj_95, geompy.ShapeType["FACE"]) -geompy.UnionList(symetry3, [geomObj_96]) -strips = geompy.CreateGroup(simple, geompy.ShapeType["FACE"]) -geomObj_97 = geompy.MakeCutList(geomObj_59, [inlet, outlet, symetry0, symetry1, symetry2, symetry3, geomObj_55]) -geomObj_98 = geompy.GetInPlace(simple, geomObj_97, True) -[geomObj_99,geomObj_100,geomObj_101,geomObj_102,geomObj_103,geomObj_104,geomObj_105,geomObj_106,geomObj_107,geomObj_108,geomObj_109,geomObj_110,geomObj_111,geomObj_112,geomObj_113,geomObj_114,geomObj_115,geomObj_116,geomObj_117,geomObj_118] = geompy.SubShapeAll(geomObj_98, geompy.ShapeType["FACE"]) -geompy.UnionList(strips, [geomObj_99, geomObj_100, geomObj_101, geomObj_102, geomObj_103, geomObj_104, geomObj_105, geomObj_106, geomObj_107, geomObj_108, geomObj_109, geomObj_110, geomObj_111, geomObj_112, geomObj_113, geomObj_114, geomObj_115, geomObj_116, geomObj_117, geomObj_118]) -wall = geompy.CutListOfGroups([geomObj_60], [inlet, outlet, symetry0, symetry1, symetry2, symetry3, strips]) -[geomObj_60, inlet, geomObj_64, outlet, geomObj_69, symetry0, geomObj_74, symetry1, geomObj_82, symetry2, geomObj_87, symetry3, geomObj_95, geomObj_59, strips, geomObj_98, wall] = geompy.GetExistingSubObjects(simple, False) -geomObj_119 = geompy.MakeVertex(0, 0, 0) - -sk = geompy.Sketcher3D() -sk.addPointsAbsolute(2.0000000, 0.0000000, 0.0000000) -sk.addPointsAbsolute(0.0000000, 2.0000000, 0.0000000) -sk.addPointsAbsolute(0.0000000, 2.0000000, 2.0000000) -sk.addPointsAbsolute(2.0000000, 0.0000000, 2.0000000) -sk.addPointsAbsolute(2.0000000, 0.0000000, 0.0000000) -geomObj_120 = sk.wire() -geomObj_121 = geompy.MakeFaceWires([geomObj_120], 1) -geomObj_122 = geompy.GetNormal(geomObj_121) -geomObj_123 = geompy.MakePrismVecH(geomObj_121, geomObj_122, 2.82842712474619) -geomObj_124 = geompy.MakeScaleTransform(geomObj_121, geomObj_119, 100) -geomObj_125 = geompy.MakeScaleTransform(geomObj_123, geomObj_119, 100) -[geomObj_126,geomObj_127,geomObj_128,geomObj_129,geomObj_130,geomObj_131] = geompy.ExtractShapes(geomObj_125, geompy.ShapeType["FACE"], False) -geomObj_132 = geompy.GetNormal(geomObj_126) -geomObj_133 = geompy.GetNormal(geomObj_127) -geomObj_134 = geompy.GetNormal(geomObj_128) -geomObj_135 = geompy.GetNormal(geomObj_129) -geomObj_136 = geompy.GetNormal(geomObj_130) -geomObj_137 = geompy.GetNormal(geomObj_131) -geomObj_138 = geompy.MakeVectorDXDYDZ(1, 0, 0) -geomObj_139 = geompy.MakeVectorDXDYDZ(0, 1, 0) -geomObj_140 = geompy.MakeVectorDXDYDZ(0, 0, 1) -geomObj_141 = geompy.MakeSphereR(1.388888888888889) -geomObj_142 = geompy.MakeMultiTranslation2D(geomObj_141, geomObj_138, 2, 3, geomObj_139, 2, 3) -geomObj_143 = geompy.MakeMultiTranslation1D(geomObj_142, geomObj_140, 2, 3) -[geomObj_144,geomObj_145,geomObj_146,geomObj_147,geomObj_148,geomObj_149,geomObj_150,geomObj_151,geomObj_152,geomObj_153,geomObj_154,geomObj_155,geomObj_156,geomObj_157,geomObj_158,geomObj_159,geomObj_160,geomObj_161,geomObj_162,geomObj_163,geomObj_164,geomObj_165,geomObj_166,geomObj_167,geomObj_168,geomObj_169,geomObj_170] = geompy.ExtractShapes(geomObj_143, geompy.ShapeType["SOLID"], True) -geomObj_171 = geompy.MakeFuseList([geomObj_144, geomObj_145, geomObj_146, geomObj_147, geomObj_148, geomObj_149, geomObj_150, geomObj_151, geomObj_152, geomObj_153, geomObj_154, geomObj_155, geomObj_156, geomObj_157, geomObj_158, geomObj_159, geomObj_160, geomObj_161, geomObj_162, geomObj_163, geomObj_164, geomObj_165, geomObj_166, geomObj_167, geomObj_168, geomObj_169, geomObj_170], False, False) -geomObj_172 = geompy.MakeScaleTransform(geomObj_171, geomObj_119, 100) -geomObj_173 = geompy.MakeScaleTransform(geomObj_172, geomObj_119, 0.01) -geomObj_174 = geompy.MakeFilletAll(geomObj_172, 1) -geomObj_175 = geompy.MakeScaleTransform(geomObj_174, geomObj_119, 0.01) -geomObj_176 = geompy.MakeCutList(geomObj_125, [geomObj_174]) -simple_1 = geompy.MakeScaleTransform(geomObj_176, geomObj_119, 0.01) -[geomObj_177] = geompy.ExtractShapes(simple_1, geompy.ShapeType["SHELL"], True) -geomObj_178 = geompy.CreateGroup(simple_1, geompy.ShapeType["FACE"]) -geompy.UnionIDs(geomObj_178, [3, 17, 32, 39, 44, 68, 73, 82, 87, 96, 105, 112, 115, 124, 127, 134, 139, 144, 150, 152, 159, 164, 169, 176, 185, 194, 197, 213, 216, 225, 228, 237, 242, 247, 258, 261, 268, 271, 274, 279, 284, 288, 290, 293]) -inlet_1 = geompy.CreateGroup(simple_1, geompy.ShapeType["FACE"]) -geomObj_179 = geompy.MakeCutList(geomObj_124, [geomObj_174]) -geomObj_180 = geompy.MakeVertex(0, 0, 0) -geomObj_181 = geompy.MakeScaleTransform(geomObj_179, geomObj_180, 0.01) -geomObj_182 = geompy.GetInPlace(simple_1, geomObj_181, True) -[geomObj_183] = geompy.SubShapeAll(geomObj_182, geompy.ShapeType["FACE"]) -geompy.UnionList(inlet_1, [geomObj_183]) -outlet_1 = geompy.CreateGroup(simple_1, geompy.ShapeType["FACE"]) -geomObj_184 = geompy.MakeCutList(geomObj_131, [geomObj_174]) -geomObj_185 = geompy.MakeVertex(0, 0, 0) -geomObj_186 = geompy.MakeScaleTransform(geomObj_184, geomObj_185, 0.01) -geomObj_187 = geompy.GetInPlace(simple_1, geomObj_186, True) -[geomObj_188] = geompy.SubShapeAll(geomObj_187, geompy.ShapeType["FACE"]) -geompy.UnionList(outlet_1, [geomObj_188]) -symetry0_1 = geompy.CreateGroup(simple_1, geompy.ShapeType["FACE"]) -geomObj_189 = geompy.MakeCutList(geomObj_126, [geomObj_174]) -geomObj_190 = geompy.MakeVertex(0, 0, 0) -geomObj_191 = geompy.MakeScaleTransform(geomObj_189, geomObj_190, 0.01) -geomObj_192 = geompy.GetInPlace(simple_1, geomObj_191, True) -[geomObj_193,geomObj_194,geomObj_195,geomObj_196] = geompy.SubShapeAll(geomObj_192, geompy.ShapeType["FACE"]) -geompy.UnionList(symetry0_1, [geomObj_193, geomObj_194, geomObj_195, geomObj_196]) -symetry1_1 = geompy.CreateGroup(simple_1, geompy.ShapeType["FACE"]) -geomObj_197 = geompy.MakeCutList(geomObj_127, [geomObj_174]) -geomObj_198 = geompy.MakeVertex(0, 0, 0) -geomObj_199 = geompy.MakeScaleTransform(geomObj_197, geomObj_198, 0.01) -geomObj_200 = geompy.GetInPlace(simple_1, geomObj_199, True) -[geomObj_201] = geompy.SubShapeAll(geomObj_200, geompy.ShapeType["FACE"]) -geompy.UnionList(symetry1_1, [geomObj_201]) -symetry2_1 = geompy.CreateGroup(simple_1, geompy.ShapeType["FACE"]) -geomObj_202 = geompy.MakeCutList(geomObj_128, [geomObj_174]) -geomObj_203 = geompy.MakeVertex(0, 0, 0) -geomObj_204 = geompy.MakeScaleTransform(geomObj_202, geomObj_203, 0.01) -geomObj_205 = geompy.GetInPlace(simple_1, geomObj_204, True) -[geomObj_206,geomObj_207,geomObj_208,geomObj_209] = geompy.SubShapeAll(geomObj_205, geompy.ShapeType["FACE"]) -geompy.UnionList(symetry2_1, [geomObj_206, geomObj_207, geomObj_208, geomObj_209]) -symetry3_1 = geompy.CreateGroup(simple_1, geompy.ShapeType["FACE"]) -geomObj_210 = geompy.MakeCutList(geomObj_129, [geomObj_174]) -geomObj_211 = geompy.MakeVertex(0, 0, 0) -geomObj_212 = geompy.MakeScaleTransform(geomObj_210, geomObj_211, 0.01) -geomObj_213 = geompy.GetInPlace(simple_1, geomObj_212, True) -[geomObj_214] = geompy.SubShapeAll(geomObj_213, geompy.ShapeType["FACE"]) -geompy.UnionList(symetry3_1, [geomObj_214]) -strips_1 = geompy.CreateGroup(simple_1, geompy.ShapeType["FACE"]) -geomObj_215 = geompy.MakeCutList(geomObj_177, [inlet_1, outlet_1, symetry0_1, symetry1_1, symetry2_1, symetry3_1, geomObj_173]) -geomObj_216 = geompy.GetInPlace(simple_1, geomObj_215, True) -[geomObj_217,geomObj_218,geomObj_219,geomObj_220,geomObj_221,geomObj_222,geomObj_223,geomObj_224,geomObj_225,geomObj_226,geomObj_227,geomObj_228,geomObj_229,geomObj_230,geomObj_231,geomObj_232,geomObj_233,geomObj_234,geomObj_235,geomObj_236] = geompy.SubShapeAll(geomObj_216, geompy.ShapeType["FACE"]) -geompy.UnionList(strips_1, [geomObj_217, geomObj_218, geomObj_219, geomObj_220, geomObj_221, geomObj_222, geomObj_223, geomObj_224, geomObj_225, geomObj_226, geomObj_227, geomObj_228, geomObj_229, geomObj_230, geomObj_231, geomObj_232, geomObj_233, geomObj_234, geomObj_235, geomObj_236]) -wall_1 = geompy.CutListOfGroups([geomObj_178], [inlet_1, outlet_1, symetry0_1, symetry1_1, symetry2_1, symetry3_1, strips_1]) -[geomObj_178, inlet_1, geomObj_182, outlet_1, geomObj_187, symetry0_1, geomObj_192, symetry1_1, geomObj_200, symetry2_1, geomObj_205, symetry3_1, geomObj_213, geomObj_177, strips_1, geomObj_216, wall_1] = geompy.GetExistingSubObjects(simple_1, False) -geompy.addToStudy( O, 'O' ) -geompy.addToStudy( OX, 'OX' ) -geompy.addToStudy( OY, 'OY' ) -geompy.addToStudy( OZ, 'OZ' ) -geompy.addToStudy( Box_1, 'Box_1' ) -geompy.addToStudy( Fillet_1, 'Fillet_1' ) -geompy.addToStudyInFather( Fillet_1, Group_1, 'Group_1' ) -geompy.addToStudyInFather( Fillet_1, Group_2, 'Group_2' ) -geompy.addToStudyInFather( Fillet_1, Group_3, 'Group_3' ) -geompy.addToStudyInFather( Fillet_1, Group_4, 'Group_4' ) -geompy.addToStudyInFather( Fillet_1, Group_5, 'Group_5' ) -geompy.addToStudyInFather( Fillet_1, Group_6, 'Group_6' ) -geompy.addToStudyInFather( Fillet_1, Group_7, 'Group_7' ) -geompy.addToStudy( simple, 'simple' ) -geompy.addToStudyInFather( simple, inlet, 'inlet' ) -geompy.addToStudyInFather( simple, outlet, 'outlet' ) -geompy.addToStudyInFather( simple, symetry0, 'symetry0' ) -geompy.addToStudyInFather( simple, symetry1, 'symetry1' ) -geompy.addToStudyInFather( simple, symetry2, 'symetry2' ) -geompy.addToStudyInFather( simple, symetry3, 'symetry3' ) -geompy.addToStudyInFather( simple, strips, 'strips' ) -geompy.addToStudyInFather( simple, wall, 'wall' ) -geompy.addToStudy( simple_1, 'simple' ) -geompy.addToStudyInFather( simple_1, inlet_1, 'inlet' ) -geompy.addToStudyInFather( simple_1, outlet_1, 'outlet' ) -geompy.addToStudyInFather( simple_1, symetry0_1, 'symetry0' ) -geompy.addToStudyInFather( simple_1, symetry1_1, 'symetry1' ) -geompy.addToStudyInFather( simple_1, symetry2_1, 'symetry2' ) -geompy.addToStudyInFather( simple_1, symetry3_1, 'symetry3' ) -geompy.addToStudyInFather( simple_1, strips_1, 'strips' ) -geompy.addToStudyInFather( simple_1, wall_1, 'wall' ) - -### -### SMESH component -### - -import SMESH, SALOMEDS -from salome.smesh import smeshBuilder - -smesh = smeshBuilder.New() -#smesh.SetEnablePublish( False ) # Set to False to avoid publish in study if not needed or in some particular situations: - # multiples meshes built in parallel, complex and numerous mesh edition (performance) - -Mesh_1 = smesh.Mesh(Fillet_1) -GMSH = Mesh_1.Tetrahedron(algo=smeshBuilder.GMSH) -Gmsh_Parameters = GMSH.Parameters() -Gmsh_Parameters.Set2DAlgo( 0 ) -Gmsh_Parameters.SetMinSize( 0 ) -Gmsh_Parameters.SetMaxSize( 0.5 ) -Gmsh_Parameters.SetIs2d( 0 ) -Group_1_1 = Mesh_1.GroupOnGeom(Group_1,'Group_1',SMESH.FACE) -Group_2_1 = Mesh_1.GroupOnGeom(Group_2,'Group_2',SMESH.FACE) -Group_3_1 = Mesh_1.GroupOnGeom(Group_3,'Group_3',SMESH.FACE) -Group_4_1 = Mesh_1.GroupOnGeom(Group_4,'Group_4',SMESH.FACE) -Group_5_1 = Mesh_1.GroupOnGeom(Group_5,'Group_5',SMESH.FACE) -Group_6_1 = Mesh_1.GroupOnGeom(Group_6,'Group_6',SMESH.FACE) -Group_7_1 = Mesh_1.GroupOnGeom(Group_7,'Group_7',SMESH.FACE) -isDone = Mesh_1.Compute() -[ Group_1_1, Group_2_1, Group_3_1, Group_4_1, Group_5_1, Group_6_1, Group_7_1 ] = Mesh_1.GetGroups() -Gmsh_Parameters.SetMinSize( 0.15307 ) -Gmsh_Parameters.SetMaxSize( 0.17443 ) -Gmsh_Parameters.SetIs2d( 0 ) -isDone = Mesh_1.Compute() -[ Group_1_1, Group_2_1, Group_3_1, Group_4_1, Group_5_1, Group_6_1, Group_7_1 ] = Mesh_1.GetGroups() -status = Mesh_1.RemoveHypothesis(GMSH) -PolyhedronPerSolid_3D = Mesh_1.Polyhedron() -status = Mesh_1.RemoveHypothesis(Gmsh_Parameters) -isDone = Mesh_1.Compute() -[ Group_1_1, Group_2_1, Group_3_1, Group_4_1, Group_5_1, Group_6_1, Group_7_1 ] = Mesh_1.GetGroups() -NETGEN_1D_2D = Mesh_1.Triangle(algo=smeshBuilder.NETGEN_1D2D) -NETGEN_2D_Parameters_1 = NETGEN_1D_2D.Parameters() -NETGEN_2D_Parameters_1.SetMaxSize( 0.173205 ) -NETGEN_2D_Parameters_1.SetMinSize( 0.0147777 ) -NETGEN_2D_Parameters_1.SetSecondOrder( 0 ) -NETGEN_2D_Parameters_1.SetOptimize( 1 ) -NETGEN_2D_Parameters_1.SetFineness( 2 ) -NETGEN_2D_Parameters_1.SetChordalError( -1 ) -NETGEN_2D_Parameters_1.SetChordalErrorEnabled( 0 ) -NETGEN_2D_Parameters_1.SetUseSurfaceCurvature( 1 ) -NETGEN_2D_Parameters_1.SetFuseEdges( 1 ) -NETGEN_2D_Parameters_1.SetWorstElemMeasure( 0 ) -NETGEN_2D_Parameters_1.SetUseDelauney( 0 ) -NETGEN_2D_Parameters_1.SetQuadAllowed( 0 ) -NETGEN_2D_Parameters_1.SetCheckChartBoundary( 16 ) -isDone = Mesh_1.Compute() -[ Group_1_1, Group_2_1, Group_3_1, Group_4_1, Group_5_1, Group_6_1, Group_7_1 ] = Mesh_1.GetGroups() -status = Mesh_1.RemoveHypothesis(NETGEN_1D_2D) -status = Mesh_1.RemoveHypothesis(PolyhedronPerSolid_3D) -status = Mesh_1.RemoveHypothesis(NETGEN_2D_Parameters_1) -Prism_3D = Mesh_1.Prism() -isDone = Mesh_1.Compute() -[ Group_1_1, Group_2_1, Group_3_1, Group_4_1, Group_5_1, Group_6_1, Group_7_1 ] = Mesh_1.GetGroups() -UseExisting_1D = Mesh_1.UseExistingSegments() -isDone = Mesh_1.Compute() -[ Group_1_1, Group_2_1, Group_3_1, Group_4_1, Group_5_1, Group_6_1, Group_7_1 ] = Mesh_1.GetGroups() -status = Mesh_1.RemoveHypothesis(UseExisting_1D) -Regular_1D = Mesh_1.Segment() -Number_of_Segments_1 = Regular_1D.NumberOfSegments(15) -isDone = Mesh_1.Compute() -[ Group_1_1, Group_2_1, Group_3_1, Group_4_1, Group_5_1, Group_6_1, Group_7_1 ] = Mesh_1.GetGroups() -status = Mesh_1.RemoveHypothesis(Regular_1D) -status = Mesh_1.RemoveHypothesis(Prism_3D) -status = Mesh_1.RemoveHypothesis(Number_of_Segments_1) -Hexa_3D = Mesh_1.Hexahedron(algo=smeshBuilder.Hexa) -isDone = Mesh_1.Compute() -[ Group_1_1, Group_2_1, Group_3_1, Group_4_1, Group_5_1, Group_6_1, Group_7_1 ] = Mesh_1.GetGroups() -Quadrangle_2D = Mesh_1.Quadrangle(algo=smeshBuilder.QUADRANGLE) -Quadrangle_Parameters_1 = Quadrangle_2D.QuadrangleParameters(smeshBuilder.QUAD_QUADRANGLE_PREF,-1,[],[]) -isDone = Mesh_1.Compute() -[ Group_1_1, Group_2_1, Group_3_1, Group_4_1, Group_5_1, Group_6_1, Group_7_1 ] = Mesh_1.GetGroups() -Renumber_1 = Hexa_3D.Renumber() -Renumber_1.SetBlocksOrientation([ ]) -isDone = Mesh_1.Compute() -[ Group_1_1, Group_2_1, Group_3_1, Group_4_1, Group_5_1, Group_6_1, Group_7_1 ] = Mesh_1.GetGroups() -Regular_1D_1 = Mesh_1.Segment() -Number_of_Segments_2 = Regular_1D.NumberOfSegments(15) -status = Mesh_1.RemoveHypothesis(Renumber_1) -isDone = Mesh_1.Compute() -[ Group_1_1, Group_2_1, Group_3_1, Group_4_1, Group_5_1, Group_6_1, Group_7_1 ] = Mesh_1.GetGroups() -SegmentAroundVertex_0D = smesh.CreateHypothesis('SegmentAroundVertex_0D') -Length_Near_Vertex_1 = Regular_1D.LengthNearVertex(0.1,Fillet_1) -isDone = Mesh_1.Compute() -[ Group_1_1, Group_2_1, Group_3_1, Group_4_1, Group_5_1, Group_6_1, Group_7_1 ] = Mesh_1.GetGroups() -status = Mesh_1.RemoveHypothesis(Quadrangle_2D) -status = Mesh_1.RemoveHypothesis(Hexa_3D) -MEFISTO_2D = Mesh_1.Triangle(algo=smeshBuilder.MEFISTO) -status = Mesh_1.RemoveHypothesis(Quadrangle_Parameters_1) -Max_Element_Area_1 = MEFISTO_2D.MaxElementArea(0.03) -MG_Tetra = Mesh_1.Tetrahedron(algo=smeshBuilder.MG_Tetra) -MG_Tetra_Parameters_1 = MG_Tetra.Parameters() -MG_Tetra_Parameters_1.SetOptimizationLevel( 2 ) -MG_Tetra_Parameters_1.SetToMeshHoles( 0 ) -MG_Tetra_Parameters_1.SetToMakeGroupsOfDomains( 0 ) -MG_Tetra_Parameters_1.SetMaximumMemory( -1 ) -MG_Tetra_Parameters_1.SetInitialMemory( -1 ) -MG_Tetra_Parameters_1.SetKeepFiles( 0 ) -MG_Tetra_Parameters_1.SetWorkingDirectory( '/tmp/' ) -MG_Tetra_Parameters_1.SetVerboseLevel( 10 ) -MG_Tetra_Parameters_1.SetStandardOutputLog( 0 ) -MG_Tetra_Parameters_1.SetRemoveLogOnSuccess( 0 ) -isDone = Mesh_1.Compute() -[ Group_1_1, Group_2_1, Group_3_1, Group_4_1, Group_5_1, Group_6_1, Group_7_1 ] = Mesh_1.GetGroups() -status = Mesh_1.RemoveHypothesis(MG_Tetra) -NETGEN_3D = Mesh_1.Tetrahedron() -status = Mesh_1.RemoveHypothesis(MG_Tetra_Parameters_1) -NETGEN_3D_Parameters_1 = NETGEN_3D.Parameters() -NETGEN_3D_Parameters_1.SetMaxSize( 0.173205 ) -NETGEN_3D_Parameters_1.SetMinSize( 0.0147777 ) -NETGEN_3D_Parameters_1.SetOptimize( 1 ) -NETGEN_3D_Parameters_1.SetFineness( 2 ) -NETGEN_3D_Parameters_1.SetElemSizeWeight( -5.29735e+296 ) -NETGEN_3D_Parameters_1.SetCheckOverlapping( 0 ) -NETGEN_3D_Parameters_1.SetCheckChartBoundary( 16 ) -isDone = Mesh_1.Compute() -[ Group_1_1, Group_2_1, Group_3_1, Group_4_1, Group_5_1, Group_6_1, Group_7_1 ] = Mesh_1.GetGroups() -NETGEN_1D_2D_1 = Mesh_1.Triangle(algo=smeshBuilder.NETGEN_1D2D,geom=Group_7) -NETGEN_2D_Parameters_2 = NETGEN_1D_2D_1.Parameters() -NETGEN_2D_Parameters_2.SetMaxSize( 0.173205 ) -NETGEN_2D_Parameters_2.SetMinSize( 0.015262 ) -NETGEN_2D_Parameters_2.SetSecondOrder( 0 ) -NETGEN_2D_Parameters_2.SetOptimize( 1 ) -NETGEN_2D_Parameters_2.SetFineness( 2 ) -NETGEN_2D_Parameters_2.SetChordalError( -1 ) -NETGEN_2D_Parameters_2.SetChordalErrorEnabled( 0 ) -NETGEN_2D_Parameters_2.SetUseSurfaceCurvature( 1 ) -NETGEN_2D_Parameters_2.SetFuseEdges( 1 ) -NETGEN_2D_Parameters_2.SetWorstElemMeasure( 0 ) -NETGEN_2D_Parameters_2.SetUseDelauney( 0 ) -NETGEN_2D_Parameters_2.SetQuadAllowed( 0 ) -NETGEN_2D_Parameters_2.SetCheckChartBoundary( 112 ) -[ Group_1_1, Group_2_1, Group_3_1, Group_4_1, Group_5_1, Group_6_1, Group_7_1 ] = Mesh_1.GetGroups() -status = Mesh_1.RemoveHypothesis(NETGEN_1D_2D,Group_7) -Regular_1D_2 = Mesh_1.Segment(geom=Group_7) -Max_Size_1 = Regular_1D_2.MaxSize(0.01) -NETGEN_2D = Mesh_1.Triangle(algo=smeshBuilder.NETGEN_2D,geom=Group_7) -status = Mesh_1.RemoveHypothesis(NETGEN_2D_Parameters_2,Group_7) -Length_From_Edges_1 = NETGEN_2D.LengthFromEdges() -[ Group_1_1, Group_2_1, Group_3_1, Group_4_1, Group_5_1, Group_6_1, Group_7_1 ] = Mesh_1.GetGroups() -status = Mesh_1.RemoveHypothesis(MEFISTO_2D) -status = Mesh_1.RemoveHypothesis(Number_of_Segments_2) -Deflection_1 = Regular_1D.Deflection1D(0.001) -NETGEN_2D_1 = Mesh_1.Triangle(algo=smeshBuilder.NETGEN_2D) -status = Mesh_1.RemoveHypothesis(Max_Element_Area_1) -Max_Element_Area_2 = MEFISTO_2D.MaxElementArea(0.05) -[ Group_1_1, Group_2_1, Group_3_1, Group_4_1, Group_5_1, Group_6_1, Group_7_1 ] = Mesh_1.GetGroups() -status = Mesh_1.RemoveHypothesis(Length_From_Edges_1,Group_7) -Max_Element_Area_3 = NETGEN_2D.MaxElementArea(0.01) -[ Group_1_1, Group_2_1, Group_3_1, Group_4_1, Group_5_1, Group_6_1, Group_7_1 ] = Mesh_1.GetGroups() -status = Mesh_1.RemoveHypothesis(Max_Element_Area_3,Group_7) -NETGEN_2D_Parameters_1_1 = NETGEN_2D.Parameters() -NETGEN_2D_Parameters_1_1.SetMaxSize( 0.173205 ) -NETGEN_2D_Parameters_1_1.SetMinSize( 0.015262 ) -NETGEN_2D_Parameters_1_1.SetOptimize( 1 ) -NETGEN_2D_Parameters_1_1.SetFineness( 2 ) -NETGEN_2D_Parameters_1_1.SetChordalError( -1 ) -NETGEN_2D_Parameters_1_1.SetChordalErrorEnabled( 0 ) -NETGEN_2D_Parameters_1_1.SetUseSurfaceCurvature( 1 ) -NETGEN_2D_Parameters_1_1.SetWorstElemMeasure( 0 ) -NETGEN_2D_Parameters_1_1.SetUseDelauney( 0 ) -NETGEN_2D_Parameters_1_1.SetCheckChartBoundary( 0 ) -NETGEN_2D_Parameters_1_1.SetQuadAllowed( 0 ) -[ Group_1_1, Group_2_1, Group_3_1, Group_4_1, Group_5_1, Group_6_1, Group_7_1 ] = Mesh_1.GetGroups() -#Mesh_1.GetMesh().RemoveSubMesh( smeshObj_1 ) ### smeshObj_1 has not been yet created -status = Mesh_1.RemoveHypothesis(Length_Near_Vertex_1) -isDone = Mesh_1.Compute() -[ Group_1_1, Group_2_1, Group_3_1, Group_4_1, Group_5_1, Group_6_1, Group_7_1 ] = Mesh_1.GetGroups() -Max_Element_Area_2.SetMaxElementArea( 0.01 ) -isDone = Mesh_1.Compute() -[ Group_1_1, Group_2_1, Group_3_1, Group_4_1, Group_5_1, Group_6_1, Group_7_1 ] = Mesh_1.GetGroups() -status = Mesh_1.RemoveHypothesis(NETGEN_3D_Parameters_1) -NETGEN_3D_Parameters_2 = NETGEN_3D.Parameters() -NETGEN_3D_Parameters_2.SetMaxSize( 0.173205 ) -NETGEN_3D_Parameters_2.SetMinSize( 0.015262 ) -NETGEN_3D_Parameters_2.SetOptimize( 1 ) -NETGEN_3D_Parameters_2.SetFineness( 4 ) -NETGEN_3D_Parameters_2.SetElemSizeWeight( -5.29735e+296 ) -NETGEN_3D_Parameters_2.SetCheckOverlapping( 0 ) -NETGEN_3D_Parameters_2.SetCheckChartBoundary( 16 ) -isDone = Mesh_1.Compute() -[ Group_1_1, Group_2_1, Group_3_1, Group_4_1, Group_5_1, Group_6_1, Group_7_1 ] = Mesh_1.GetGroups() -status = Mesh_1.RemoveHypothesis(Deflection_1) -Automatic_Length_1 = Regular_1D.AutomaticLength(1) -isDone = Mesh_1.Compute() -[ Group_1_1, Group_2_1, Group_3_1, Group_4_1, Group_5_1, Group_6_1, Group_7_1 ] = Mesh_1.GetGroups() -Automatic_Length_1.SetFineness( 0.5 ) -isDone = Mesh_1.Compute() -[ Group_1_1, Group_2_1, Group_3_1, Group_4_1, Group_5_1, Group_6_1, Group_7_1 ] = Mesh_1.GetGroups() -status = Mesh_1.RemoveHypothesis(Max_Element_Area_2) -Length_From_Edges_2 = MEFISTO_2D.LengthFromEdges() -isDone = Mesh_1.Compute() -[ Group_1_1, Group_2_1, Group_3_1, Group_4_1, Group_5_1, Group_6_1, Group_7_1 ] = Mesh_1.GetGroups() -Automatic_Length_1.SetFineness( 0.25 ) -isDone = Mesh_1.Compute() -[ Group_1_1, Group_2_1, Group_3_1, Group_4_1, Group_5_1, Group_6_1, Group_7_1 ] = Mesh_1.GetGroups() -status = Mesh_1.RemoveHypothesis(Regular_1D) -status = Mesh_1.RemoveHypothesis(NETGEN_2D) -status = Mesh_1.RemoveHypothesis(NETGEN_3D) -status = Mesh_1.RemoveHypothesis(Automatic_Length_1) -status = Mesh_1.RemoveHypothesis(Length_From_Edges_2) -NETGEN_1D_2D_3D = Mesh_1.Tetrahedron(algo=smeshBuilder.NETGEN_1D2D3D) -status = Mesh_1.RemoveHypothesis(NETGEN_3D_Parameters_2) -NETGEN_3D_Simple_Parameters_1 = NETGEN_1D_2D_3D.Parameters(smeshBuilder.SIMPLE) -NETGEN_3D_Simple_Parameters_1.SetNumberOfSegments( 15 ) -NETGEN_3D_Simple_Parameters_1.LengthFromEdges() -NETGEN_3D_Simple_Parameters_1.LengthFromFaces() -isDone = Mesh_1.Compute() -[ Group_1_1, Group_2_1, Group_3_1, Group_4_1, Group_5_1, Group_6_1, Group_7_1 ] = Mesh_1.GetGroups() -NETGEN_3D_Simple_Parameters_1.SetNumberOfSegments( 3 ) -NETGEN_3D_Simple_Parameters_1.LengthFromEdges() -NETGEN_3D_Simple_Parameters_1.LengthFromFaces() -isDone = Mesh_1.Compute() -[ Group_1_1, Group_2_1, Group_3_1, Group_4_1, Group_5_1, Group_6_1, Group_7_1 ] = Mesh_1.GetGroups() -NETGEN_3D_Simple_Parameters_1.SetLocalLength( 0.173205 ) -NETGEN_3D_Simple_Parameters_1.LengthFromEdges() -NETGEN_3D_Simple_Parameters_1.LengthFromFaces() -isDone = Mesh_1.Compute() -[ Group_1_1, Group_2_1, Group_3_1, Group_4_1, Group_5_1, Group_6_1, Group_7_1 ] = Mesh_1.GetGroups() -NETGEN_3D_Simple_Parameters_1.SetNumberOfSegments( 10 ) -NETGEN_3D_Simple_Parameters_1.LengthFromEdges() -NETGEN_3D_Simple_Parameters_1.LengthFromFaces() -isDone = Mesh_1.Compute() -[ Group_1_1, Group_2_1, Group_3_1, Group_4_1, Group_5_1, Group_6_1, Group_7_1 ] = Mesh_1.GetGroups() -Mesh_2 = smesh.Mesh(simple) -NETGEN_1D_2D_3D_1 = Mesh_2.Tetrahedron(algo=smeshBuilder.NETGEN_1D2D3D) -NETGEN_3D_Simple_Parameters_2 = NETGEN_1D_2D_3D_1.Parameters(smeshBuilder.SIMPLE) -NETGEN_3D_Simple_Parameters_2.SetNumberOfSegments( 15 ) -NETGEN_3D_Simple_Parameters_2.LengthFromEdges() -NETGEN_3D_Simple_Parameters_2.LengthFromFaces() -#Group_1_2 = Mesh_2.GroupOnGeom(__NOT__Published__Object__,'',SMESH.FACE) -inlet_2 = Mesh_2.GroupOnGeom(inlet,'inlet',SMESH.FACE) -#Group_3_2 = Mesh_2.GroupOnGeom(__NOT__Published__Object__,'',SMESH.FACE) -outlet_2 = Mesh_2.GroupOnGeom(outlet,'outlet',SMESH.FACE) -#Group_5_2 = Mesh_2.GroupOnGeom(__NOT__Published__Object__,'',SMESH.FACE) -symetry0_2 = Mesh_2.GroupOnGeom(symetry0,'symetry0',SMESH.FACE) -#Group_7_2 = Mesh_2.GroupOnGeom(__NOT__Published__Object__,'',SMESH.FACE) -symetry1_2 = Mesh_2.GroupOnGeom(symetry1,'symetry1',SMESH.FACE) -#Group_9 = Mesh_2.GroupOnGeom(__NOT__Published__Object__,'',SMESH.FACE) -symetry2_2 = Mesh_2.GroupOnGeom(symetry2,'symetry2',SMESH.FACE) -#Group_11 = Mesh_2.GroupOnGeom(__NOT__Published__Object__,'',SMESH.FACE) -symetry3_2 = Mesh_2.GroupOnGeom(symetry3,'symetry3',SMESH.FACE) -#Group_13 = Mesh_2.GroupOnGeom(__NOT__Published__Object__,'',SMESH.FACE) -#Group_14 = Mesh_2.GroupOnGeom(__NOT__Published__Object__,'',SMESH.FACE) -strips_2 = Mesh_2.GroupOnGeom(strips,'strips',SMESH.FACE) -#Group_16 = Mesh_2.GroupOnGeom(__NOT__Published__Object__,'',SMESH.FACE) -wall_2 = Mesh_2.GroupOnGeom(wall,'wall',SMESH.FACE) -isDone = Mesh_2.Compute() -[ Group_1_2, inlet_2, Group_3_2, outlet_2, Group_5_2, symetry0_2, Group_7_2, symetry1_2, Group_9, symetry2_2, Group_11, symetry3_2, Group_13, Group_14, strips_2, Group_16, wall_2 ] = Mesh_2.GetGroups() -Mesh_1.Clear() -CompositeSegment_1D = Mesh_2.Segment(algo=smeshBuilder.COMPOSITE,geom=strips) -Number_of_Segments_3 = CompositeSegment_1D.NumberOfSegments(17) -NETGEN_2D_2 = Mesh_2.Triangle(algo=smeshBuilder.NETGEN_2D,geom=strips) -Length_From_Edges_3 = NETGEN_2D_2.LengthFromEdges() -[ Group_1_2, inlet_2, Group_3_2, outlet_2, Group_5_2, symetry0_2, Group_7_2, symetry1_2, Group_9, symetry2_2, Group_11, symetry3_2, Group_13, Group_14, strips_2, Group_16, wall_2 ] = Mesh_2.GetGroups() -Length_Near_Vertex_2 = CompositeSegment_1D.LengthNearVertex(0.01,strips) -[ Group_1_2, inlet_2, Group_3_2, outlet_2, Group_5_2, symetry0_2, Group_7_2, symetry1_2, Group_9, symetry2_2, Group_11, symetry3_2, Group_13, Group_14, strips_2, Group_16, wall_2 ] = Mesh_2.GetGroups() -status = Mesh_2.RemoveHypothesis(Length_Near_Vertex_2,strips) -status = Mesh_2.RemoveHypothesis(Number_of_Segments_3,strips) -Automatic_Length_2 = CompositeSegment_1D.AutomaticLength(0.633882) -status = Mesh_2.RemoveHypothesis(Length_From_Edges_3,strips) -Length_From_Edges_4 = NETGEN_2D_2.LengthFromEdges() -[ Group_1_2, inlet_2, Group_3_2, outlet_2, Group_5_2, symetry0_2, Group_7_2, symetry1_2, Group_9, symetry2_2, Group_11, symetry3_2, Group_13, Group_14, strips_2, Group_16, wall_2 ] = Mesh_2.GetGroups() -Automatic_Length_2.SetFineness( 1 ) -[ Group_1_2, inlet_2, Group_3_2, outlet_2, Group_5_2, symetry0_2, Group_7_2, symetry1_2, Group_9, symetry2_2, Group_11, symetry3_2, Group_13, Group_14, strips_2, Group_16, wall_2 ] = Mesh_2.GetGroups() -status = Mesh_2.RemoveHypothesis(NETGEN_3D_Simple_Parameters_2) -NETGEN_3D_Parameters_1_1 = NETGEN_1D_2D_3D_1.Parameters() -NETGEN_3D_Parameters_1_1.SetMinSize( 0.00326849 ) -NETGEN_3D_Parameters_1_1.SetSecondOrder( 0 ) -NETGEN_3D_Parameters_1_1.SetOptimize( 1 ) -NETGEN_3D_Parameters_1_1.SetUseSurfaceCurvature( 1 ) -NETGEN_3D_Parameters_1_1.SetFuseEdges( 1 ) -NETGEN_3D_Parameters_1_1.SetQuadAllowed( 0 ) -[ Group_1_2, inlet_2, Group_3_2, outlet_2, Group_5_2, symetry0_2, Group_7_2, symetry1_2, Group_9, symetry2_2, Group_11, symetry3_2, Group_13, Group_14, strips_2, Group_16, wall_2 ] = Mesh_2.GetGroups() -NETGEN_3D_Parameters_1_1.SetFineness( 5 ) -NETGEN_3D_Parameters_1_1.SetGrowthRate( 0.3 ) -NETGEN_3D_Parameters_1_1.SetNbSegPerEdge( 1 ) -NETGEN_3D_Parameters_1_1.SetNbSegPerRadius( 2 ) -NETGEN_3D_Parameters_1_1.SetChordalErrorEnabled( 1 ) -[ Group_1_2, inlet_2, Group_3_2, outlet_2, Group_5_2, symetry0_2, Group_7_2, symetry1_2, Group_9, symetry2_2, Group_11, symetry3_2, Group_13, Group_14, strips_2, Group_16, wall_2 ] = Mesh_2.GetGroups() -NETGEN_3D_Parameters_1_1.SetMaxSize( 0.2 ) -NETGEN_3D_Parameters_1_1.SetChordalError( 0.1 ) -NETGEN_3D_Parameters_1_1.SetCheckChartBoundary( 0 ) -[ Group_1_2, inlet_2, Group_3_2, outlet_2, Group_5_2, symetry0_2, Group_7_2, symetry1_2, Group_9, symetry2_2, Group_11, symetry3_2, Group_13, Group_14, strips_2, Group_16, wall_2 ] = Mesh_2.GetGroups() -status = Mesh_2.RemoveHypothesis(NETGEN_1D_2D_3D) -Regular_1D_3 = Mesh_2.Segment() -Automatic_Length_3 = Regular_1D_3.AutomaticLength(1) -NETGEN_2D_3 = Mesh_2.Triangle(algo=smeshBuilder.NETGEN_2D) -Max_Element_Area_4 = NETGEN_2D_3.MaxElementArea(0.197375) -NETGEN_3D_1 = Mesh_2.Tetrahedron() -status = Mesh_2.RemoveHypothesis(NETGEN_3D_Parameters_1_1) -isDone = Mesh_2.Compute() -[ Group_1_2, inlet_2, Group_3_2, outlet_2, Group_5_2, symetry0_2, Group_7_2, symetry1_2, Group_9, symetry2_2, Group_11, symetry3_2, Group_13, Group_14, strips_2, Group_16, wall_2 ] = Mesh_2.GetGroups() - - -Mesh_3 = smesh.Mesh(simple_1) -status = Mesh_3.AddHypothesis(Automatic_Length_3) -Regular_1D_4 = Mesh_3.Segment() -status = Mesh_3.AddHypothesis(Max_Element_Area_4) -NETGEN_2D_4 = Mesh_3.Triangle(algo=smeshBuilder.NETGEN_2D) -NETGEN_3D_2 = Mesh_3.Tetrahedron() -#Group_1_3 = Mesh_3.GroupOnGeom(__NOT__Published__Object__,'',SMESH.FACE) -inlet_3 = Mesh_3.GroupOnGeom(inlet_1,'inlet',SMESH.FACE) -#Group_3_3 = Mesh_3.GroupOnGeom(__NOT__Published__Object__,'',SMESH.FACE) -outlet_3 = Mesh_3.GroupOnGeom(outlet_1,'outlet',SMESH.FACE) -#Group_5_3 = Mesh_3.GroupOnGeom(__NOT__Published__Object__,'',SMESH.FACE) -symetry0_3 = Mesh_3.GroupOnGeom(symetry0_1,'symetry0',SMESH.FACE) -#Group_7_3 = Mesh_3.GroupOnGeom(__NOT__Published__Object__,'',SMESH.FACE) -symetry1_3 = Mesh_3.GroupOnGeom(symetry1_1,'symetry1',SMESH.FACE) -#Group_9_1 = Mesh_3.GroupOnGeom(__NOT__Published__Object__,'',SMESH.FACE) -symetry2_3 = Mesh_3.GroupOnGeom(symetry2_1,'symetry2',SMESH.FACE) -#Group_11_1 = Mesh_3.GroupOnGeom(__NOT__Published__Object__,'',SMESH.FACE) -symetry3_3 = Mesh_3.GroupOnGeom(symetry3_1,'symetry3',SMESH.FACE) -#Group_13_1 = Mesh_3.GroupOnGeom(__NOT__Published__Object__,'',SMESH.FACE) -#Group_14_1 = Mesh_3.GroupOnGeom(__NOT__Published__Object__,'',SMESH.FACE) -strips_3 = Mesh_3.GroupOnGeom(strips_1,'strips',SMESH.FACE) -#Group_16_1 = Mesh_3.GroupOnGeom(__NOT__Published__Object__,'',SMESH.FACE) -wall_3 = Mesh_3.GroupOnGeom(wall_1,'wall',SMESH.FACE) - -Regular_1D_5 = Mesh_3.Segment(geom=strips_1) -status = Mesh_3.AddHypothesis(Automatic_Length_2,strips_1) -NETGEN_2D_5 = Mesh_3.Triangle(algo=smeshBuilder.NETGEN_2D,geom=strips_1) -status = Mesh_3.AddHypothesis(Length_From_Edges_4,strips_1) - -[ Group_1_3, inlet_3, Group_3_3, outlet_3, Group_5_3, symetry0_3, Group_7_3, symetry1_3, Group_9_1, symetry2_3, Group_11_1, symetry3_3, Group_13_1, Group_14_1, strips_3, Group_16_1, wall_3 ] = Mesh_3.GetGroups() -isDone = Mesh_3.Compute() -[ Group_1_3, inlet_3, Group_3_3, outlet_3, Group_5_3, symetry0_3, Group_7_3, symetry1_3, Group_9_1, symetry2_3, Group_11_1, symetry3_3, Group_13_1, Group_14_1, strips_3, Group_16_1, wall_3 ] = Mesh_3.GetGroups() -Sub_mesh_1 = CompositeSegment_1D.GetSubMesh() -Sub_mesh_2 = Regular_1D_5.GetSubMesh() - - -## Set names of Mesh objects -smesh.SetName(Automatic_Length_1, 'Automatic Length_1') -smesh.SetName(Length_From_Edges_2, 'Length From Edges_2') -smesh.SetName(Group_16, 'Group_16') -smesh.SetName(wall_2, 'wall') -smesh.SetName(NETGEN_3D_Simple_Parameters_1, 'NETGEN 3D Simple Parameters_1') -smesh.SetName(Group_14, 'Group_14') -smesh.SetName(NETGEN_3D_Simple_Parameters_2, 'NETGEN 3D Simple Parameters_2') -smesh.SetName(strips_2, 'strips') -smesh.SetName(Length_From_Edges_3, 'Length From Edges_3') -smesh.SetName(symetry3_2, 'symetry3') -smesh.SetName(Number_of_Segments_3, 'Number of Segments_3') -smesh.SetName(Group_13, 'Group_13') -smesh.SetName(symetry2_2, 'symetry2') -smesh.SetName(Length_Near_Vertex_2, 'Length Near Vertex_2') -smesh.SetName(Group_11, 'Group_11') -smesh.SetName(Length_From_Edges_4, 'Length From Edges_4') -smesh.SetName(NETGEN_3D_Parameters_1_1, 'NETGEN 3D Parameters_1') -smesh.SetName(Automatic_Length_2, 'Automatic Length_2') -smesh.SetName(Automatic_Length_3, 'Automatic Length_3') -smesh.SetName(Max_Element_Area_4, 'Max. Element Area_4') -smesh.SetName(Length_From_Edges_1, 'Length From Edges_1') -smesh.SetName(NETGEN_2D_Parameters_2, 'NETGEN 2D Parameters_2') -smesh.SetName(NETGEN_3D_Parameters_1, 'NETGEN 3D Parameters_1') -smesh.SetName(Max_Element_Area_1, 'Max. Element Area_1') -smesh.SetName(Max_Element_Area_3, 'Max. Element Area_3') -smesh.SetName(Deflection_1, 'Deflection_1') -smesh.SetName(Max_Element_Area_2, 'Max. Element Area_2') -smesh.SetName(Max_Size_1, 'Max Size_1') -smesh.SetName(NETGEN_3D_Parameters_2, 'NETGEN 3D Parameters_2') -smesh.SetName(NETGEN_2D_Parameters_1_1, 'NETGEN 2D Parameters_1') -smesh.SetName(NETGEN_2D_Parameters_1, 'NETGEN 2D Parameters_1') -smesh.SetName(Number_of_Segments_1, 'Number of Segments_1') -smesh.SetName(Gmsh_Parameters, 'Gmsh Parameters') -smesh.SetName(Renumber_1, 'Renumber_1') -smesh.SetName(Number_of_Segments_2, 'Number of Segments_2') -smesh.SetName(Quadrangle_Parameters_1, 'Quadrangle Parameters_1') -smesh.SetName(Length_Near_Vertex_1, 'Length Near Vertex_1') -smesh.SetName(MG_Tetra_Parameters_1, 'MG-Tetra Parameters_1') -smesh.SetName(Mesh_1.GetMesh(), 'Mesh_1') -smesh.SetName(Mesh_3.GetMesh(), 'Mesh_3') -smesh.SetName(Mesh_2.GetMesh(), 'Mesh_2') -smesh.SetName(symetry1_3, 'symetry1') -smesh.SetName(Group_9_1, 'Group_9') -smesh.SetName(symetry0_3, 'symetry0') -smesh.SetName(Group_7_3, 'Group_7') -smesh.SetName(outlet_3, 'outlet') -smesh.SetName(Group_5_3, 'Group_5') -smesh.SetName(inlet_3, 'inlet') -smesh.SetName(Group_3_3, 'Group_3') -smesh.SetName(Group_1_3, 'Group_1') -smesh.SetName(MEFISTO_2D.GetAlgorithm(), 'MEFISTO_2D') -smesh.SetName(MG_Tetra.GetAlgorithm(), 'MG-Tetra') -smesh.SetName(Group_9, 'Group_9') -smesh.SetName(NETGEN_3D.GetAlgorithm(), 'NETGEN 3D') -smesh.SetName(symetry1_2, 'symetry1') -smesh.SetName(NETGEN_2D.GetAlgorithm(), 'NETGEN 2D') -smesh.SetName(Group_7_2, 'Group_7') -smesh.SetName(NETGEN_1D_2D_3D.GetAlgorithm(), 'NETGEN 1D-2D-3D') -smesh.SetName(symetry0_2, 'symetry0') -smesh.SetName(CompositeSegment_1D.GetAlgorithm(), 'CompositeSegment_1D') -smesh.SetName(Group_5_2, 'Group_5') -smesh.SetName(outlet_2, 'outlet') -smesh.SetName(Group_3_2, 'Group_3') -smesh.SetName(inlet_2, 'inlet') -smesh.SetName(GMSH.GetAlgorithm(), 'GMSH') -smesh.SetName(Group_1_2, 'Group_1') -smesh.SetName(NETGEN_1D_2D.GetAlgorithm(), 'NETGEN 1D-2D') -smesh.SetName(PolyhedronPerSolid_3D.GetAlgorithm(), 'PolyhedronPerSolid_3D') -smesh.SetName(UseExisting_1D.GetAlgorithm(), 'UseExisting_1D') -smesh.SetName(Prism_3D.GetAlgorithm(), 'Prism_3D') -smesh.SetName(Hexa_3D.GetAlgorithm(), 'Hexa_3D') -smesh.SetName(Regular_1D.GetAlgorithm(), 'Regular_1D') -smesh.SetName(SegmentAroundVertex_0D, 'SegmentAroundVertex_0D') -smesh.SetName(Quadrangle_2D.GetAlgorithm(), 'Quadrangle_2D') -smesh.SetName(Sub_mesh_1, 'Sub-mesh_1') -smesh.SetName(wall_3, 'wall') -smesh.SetName(Group_16_1, 'Group_16') -smesh.SetName(strips_3, 'strips') -smesh.SetName(Group_14_1, 'Group_14') -smesh.SetName(Group_13_1, 'Group_13') -smesh.SetName(Group_1_1, 'Group_1') -smesh.SetName(symetry3_3, 'symetry3') -smesh.SetName(Group_2_1, 'Group_2') -smesh.SetName(Group_11_1, 'Group_11') -smesh.SetName(Group_3_1, 'Group_3') -smesh.SetName(symetry2_3, 'symetry2') -smesh.SetName(Group_4_1, 'Group_4') -smesh.SetName(Group_5_1, 'Group_5') -smesh.SetName(Group_6_1, 'Group_6') -smesh.SetName(Group_7_1, 'Group_7') -smesh.SetName(Sub_mesh_2, 'Sub-mesh_2') - - -if salome.sg.hasDesktop(): - salome.sg.updateObjBrowser() diff --git a/playground/test_models.py b/playground/test_models.py deleted file mode 100644 index e3dac44..0000000 --- a/playground/test_models.py +++ /dev/null @@ -1,87 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -from peewee import ( - SqliteDatabase, JOIN, - Model, Field, - AutoField, ForeignKeyField, - TextField, FloatField, - IntegerField, BooleanField, - TimeField -) - -db = SqliteDatabase("test_db.db", pragmas = { "foreign_keys" : 1, "journal_mode": "wal" }) - -class ListField(Field): - field_type = "list" - - def db_value(self, value): - return str(value) - - def python_value(self, value): - pval = [] - - for entry in value[1 : -1].split(","): - try: - pval.append(float(entry)) - - except: - pval.append(entry.strip().replace("'", "")) - - return pval - -class Structure(Model): - structure_id = AutoField() - - type = TextField() - direction = ListField() - theta = FloatField() - - r0 = FloatField(null = True) - L = FloatField(null = True) - radius = FloatField(null = True) - - filletsEnabled = BooleanField(null = True) - fillets = FloatField(null = True) - #path = TextField() - - class Meta: - database = db - db_table = "structures" - - -class Mesh(Model): - mesh_id = AutoField() - structure_id = ForeignKeyField(Structure, backref = "meshes") - - maxSize = FloatField(null = True) - minSize = FloatField(null = True) - - fineness = IntegerField(null = True) - growthRate = FloatField(null = True) - nbSegPerEdge = FloatField(null = True) - nbSegPerRadius = FloatField(null = True) - - chordalErrorEnabled = BooleanField(null = True) - chordalError = FloatField(null = True) - - secondOrder = BooleanField(null = True) - optimize = BooleanField(null = True) - quadAllowed = BooleanField(null = True) - useSurfaceCurvature = BooleanField(null = True) - fuseEdges = BooleanField(null = True) - checkChartBoundary = BooleanField(null = True) - - viscousLayers = BooleanField(null = True) - thickness = FloatField(null = True) - numberOfLayers = IntegerField(null = True) - stretchFactor = FloatField(null = True) - isFacesToIgnore = BooleanField(null = True) - facesToIgnore = ListField(null = True) - #faces = [] - extrusionMethod = TextField(null = True) - - class Meta: - database = db - db_table = "meshes" - depends_on = Structure diff --git a/playground/test_smesh.py b/playground/test_smesh.py deleted file mode 100644 index 9d1ae05..0000000 --- a/playground/test_smesh.py +++ /dev/null @@ -1,31 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -from salome.smesh import smeshBuilder - -smesh = smeshBuilder.New() - -ALGOS = [ - smeshBuilder.NETGEN_1D2D3D, - smeshBuilder.NETGEN_3D, smeshBuilder.NETGEN_1D2D, - smeshBuilder.NETGEN_2D, - smeshBuilder.MEFISTO, # only 2d - smeshBuilder.REGULAR, smeshBuilder.COMPOSITE -] - -mesh = smesh.Mesh(SHAPE) - -algo = mesh.Tetrahedron(algo = ALGO) - -### -# fc 111 0.12 N3D N2D(0.1, 0.0001, Mod) -# 3min 321k - -### -# fc 100 -# theta max min fineness gr.rate perEdge perRadius choralErr -# 0.01 0.1 0.001 custom 0.3 3 5 0.05 -# 0.12 0.1 0.001 moderate 0.3 1 2 0.05 -# -# fc 111 -# 0.12 0.1 0.001 moderate 0.3 1 2 0.05 diff --git a/playground/training-models.ipynb b/playground/training-models.ipynb deleted file mode 100644 index 5c02b34..0000000 --- a/playground/training-models.ipynb +++ /dev/null @@ -1,303 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "id": "c054d421-9717-4feb-bb30-d080d91ceac5", - "metadata": {}, - "outputs": [], - "source": [ - "from anisotropy.core.database import Database, Structure\n", - "from pandas import DataFrame, Series\n", - "import matplotlib.pyplot as plt\n", - "import seaborn\n", - "import numpy" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "7ec2ae1b-8a7e-4d50-b1bd-201fc3cd190d", - "metadata": {}, - "outputs": [], - "source": [ - "db = Database(\"anisotropy\", \"woPrismaticLayer\")\n", - "db.setup()" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "75498f51-fa01-494e-a64e-e650138d1ca2", - "metadata": {}, - "outputs": [], - "source": [ - "res = db.search([Structure.type == \"simple\", Structure.direction == str([1.0, 0.0, 0.0])])\n", - "df = DataFrame(res)" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "3bc80bca-03ce-416e-be2f-ab7ae2af95fa", - "metadata": {}, - "outputs": [], - "source": [ - "df_numeric = df[[\n", - " col for col in df.columns \n", - " if not isinstance(df[col][0], str) \n", - " and not isinstance(df[col][0], numpy.bool_)\n", - " and not isinstance(df[col][0], dict)\n", - " and not isinstance(df[col][0], list)\n", - " and not df[col][0] is None\n", - " and not col[-3: ] == \"_id\"\n", - "]]" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "id": "eab92bcc-8f1f-4490-8dc6-8ebf191d6cf2", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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bz7D9ouPkJGdC3vzipjfqxkqG31cVnTCrgDYmlWAe5eGJcqt3W9hiR5HkmVFPpJ3BKnQNLOTd4RSweIPfVZpF39khcUf2ZJG8UdWpFH8kYXiFH/o67H4Q8quOMWfskRaxR9pU9QfxhVZSYo/ZYE0ij+yoKh9vLjFnzKjmMWfMqOYxR/6drH4I1vFLf6UFSUt/pQF0ij+yEJxij9lCYs/pYvFn7JNQb8lEhERERERERERERERkSQs/hARERERERERERERESkR6SwOS0REREREREREREREyiuPy7iWZTzzh4iIiIiIiIiIiIiISImw+ENERERERERERERERKREWPwhIiIiIiIiIiIiIiJSIiz+EBERERERERERERERKRF1eQcgIiIiIiIiIiIiIiIFI8yVdwL6DJ75Q0REREREREREREREpERY/CEiIiIiIiIiIiIiIlIiLP4QEREREREREREREREpEV7zh4iIiIiIiIiIiIiIiidPKO8E9Bk884eIiIiIiIiIiIiIiEiJsPhDRERERERERERERESkRFTy8vLy5B2Cyq63b5PlHYGIiIiIiIiIiIjoq1WsqC/vCEolK/y2vCNIhaZFY3lHKBW85g8RERERERERERERERWPkNf8Kcu47BsREREREREREREREZESYfGHiIiIiIiIiIiIiIhIibD4Q0REREREREREREREpER4zR8iIiIiIiIiIiIiIiqWvDxe86cs45k/RERERERERERERERESoTFHyIiIiIiIiIiIiIiIiXC4g8REREREREREREREZESYfGHiIiIiIiIiIiIiIhIiajLOwARERERERERERERESkYoVDeCegzeOYPERERERERERERERGREmHxh4iIiIiIiIiIiIiISImw+ENERERERERERERERKREeM2fb8Dhw4exfft25OXloW3btli4cCFUVVn3IyIiIiIiIiIiIqISyuM1f8oyVgCUWE5ODl6/fo3Nmzfj0KFDOHfuHCIiIuDn5yfvaEREREREREREREREJCU880fJWFpaYtKkSbh06RLatGkDPT09dO7cGcbGxgCA/v3749ixY+jdu7d8gxIRERERERERERERkVSw+KOEtLS04O3tDQBYunQpqlSpItpXpUoVxMTEyCsaERERERERERERERFJGYs/SsjFxUXeEYiIiIiIiIiIiIhImQlz5Z2APoPX/FFCOjo6otumpqaIjo4W3Y+Ojoapqak8YhERERERERERERERkQyw+KPkunXrhoCAAMTHx0MoFOLIkSPo0aOHvGMREREREREREREREZGUcNk3JVetWjVMnDgRAwYMAAC0atUKvXr1knMqIiIiIiIiIiIiIiKSFpW8vLw8eYegsuvt22R5RyAiIiIiIiIiIiL6ahUr6ss7glLJDL4o7whSoWXdQd4RSgWXfSMiIiIiIiIiIiIiIlIiLP4QEREREREREREREREpERZ/iIiIiIiIiIiIiIiIlAiLP0REREREREREREREREpEXd4BiIiIiIiIiIiIiIhIwQiF8k5An8Ezf4iIiIiIiIiIiIiIiJQIiz9ERERERERERERERERKhMUfIiIiIiIiIiIiIiIiJcJr/hARERERERERERERUfHk8Zo/ZRnP/CEiIiIiIiIiIiIiIlIiLP4QEREREREREREREREpERZ/iIiIiIiIiIiIiIiIlAiv+UNERERERERERERERMUj5DV/yjKe+UNERERERERERERERKREWPwhIiIiIiIiIiIiIiJSIiz+EBERERERERERERERKRFe84eIiIiIiIiIiIiIiIolLy9X3hHoM3jmDxERERERERERERERkRJh8YeIiIiIiIiIiIiIiEiJsPhDRERERERERERERESkRFj8ISIiIiIiIiIiIiIiUiLq8g5AREREREREREREREQKJk8o7wT0GTzzh4iIiIiIiIiIiIiISImw+ENERERERERERERERKREWPwhIiIiIiIiIiIiIiJSIrzmDxERERERERERERERFY+Q1/wpy3jmDxERERERERERERERkRJh8YeIiIiIiIiIiIiIiEiJsPhDRERERERERERERESkRFj8+QZ07NgRISEh8o5BRERERERERERERMoiT6icf0qCxR8iIiIiIiIiIiIiIiIlwuIPERERERERERERERGREmHxh4iIiIiIiIiIiIiISImoyzsAEREREREREREREREpGGGuvBPQZ/DMHyIiIiIiIiIiIiIiIiXC4g8REREREREREREREZES4bJv34iRI0dCTU1NdN/f3x+GhoZyTERERERERERERERERNLA4s834MKFC/KOQEREREREREREREREMsLiDxERERERERERERERFU+eUN4J6DN4zR8iIiIiIiIiIiIiIiIlwuIPERERERERERERERGREmHxh4iIiIiIiIiIiIiISInwmj9ERERERERERERERFQ8Ql7zpyzjmT9ERERERERERERERERKhMUfIiIiIiIiIiIiIiIiJcLiDxERERERERERERERkRLhNX+IiIiIiIiIiIiIiKh48njNn7KMZ/4QEREREREREREREREpERZ/iIiIiIiIiIiIiIiIlAiLP0REREREREREREREREqE1/whIiIiIiIiIiIiIqLiEfKaP2UZz/whIiIiIiIiIiIiIiJSIjzzhz7LSOWtvCOUSEJeRXlH+KYoaj8BAJ0qbeQdoUTSIgLkHeGbkqBuJu8IRFJllBMp7wglom3eWd4RSiQm6qm8I3xzTKtayTvCN0VR+7je3d3yjlAyKgp6TGcejxSmL5PSaLi8I3xT9K5skneEEqk2wkveEUosISNV3hFKJNlnlrwjlIzjVHknIJIZBf2WSERERERERERERERERJKw+ENERERERERERERERKREuOwbEREREREREREREREVj5DLuJZlPPOHiIiIiIiIiIiIiIhIibD4Q0REREREREREREREpERY/CEiIiIiIiIiIiIiIlIivOYPEREREREREREREREVS15errwj0GfwzB8iIiIiIiIiIiIiIiIlwuIPERERERERERERERGREmHxh4iIiIiIiIiIiIiISInwmj9ERERERERERERERFQ8QqG8E9Bn8MwfIiIiIiIiIiIiIiIiJcLiDxERERERERERERERkRLhsm8KZu7cubC1tcWQIUOwceNG1KlTBw4ODvKO9cX2H/XD8VMBCH3xEg6d22P5whnyjkRlVFnuK1M8xmDmzInQ0dHGsWMn4T5pHrKysiS2HTVyEGbNckflypVw7drfGDN2BmJiYgEAhoYG+HnDT+jWrQMA4Lf/7cbSpRtKPW9iUjJ+WLMZgbfvw8jQAFPHDIFj53Zi7ZKSU7Bq8w5cvXkXAODq3B3uIwcBAGJi36LX8MlF2qdnZGDmhBEY4dq71DMrcm4iZfctfDZtbCyxdvWPaNSoPipUMIa6ZlV5RyI5mOIxBrMK5nvvL5jvZxea77+XMN93LzTf/ySF+V7RcyuixNQMLD7wJwKfvkI5XW1MdmoBh8aWYu3cPX1xNyxGdD87NxcWlcrh6LzBAIDvfz2GsJj3yMrJRdXyBpjg0Bwd6teUbu79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Y+7cudi6dSsMDAywevVqAMCYMWPg4eEBOzs7AICPjw86dOgAQ0PDIo/fsGEDnjx5AlVVVWhoaGDNmjVFzgb6Giz+EBERERERERERERFR8QiV85o/xVGrVi0cOXJEbPv27duL3J8wYYLEx/9TLJIGVak9MxEREREREREREREREckciz9ERERERERERERERERKhMUfIiIiIiIiIiIiIiIiJcJr/hARERERERERERERUfHk8Zo/ZRnP/CEiIiIiIiIiIiIiIlIiLP4QEREREREREREREREpERZ/iIiIiIiIiIiIiIiIlAiLP0REREREREREREREREpEXd4BiIiIiIiIiIiIiIhIwQiF8k5An8HiD32WdpU28o5QIjFRT+Ud4Zuio6D9BADSoq/IO0KJlDfvLO8I35Sw8AfyjkAkVeVrO8o7QomkK+gYnpAn7wTfnvSIAHlHKBkNLXknKBFF7eM9R/vJO0KJ5EIxf3RR40Ik9IUO3hsu7wjflP5Tr8k7QolEB3nLO0KJqQh05R2hRBztJ8o7Qomcez1V3hGIZIbftoiIiIiIiIiIiIiIiJQIiz9ERERERERERERERERKhMu+ERERERERERERERFR8fCaP2Uaz/whIiIiIiIiIiIiIiJSIiz+EBERERERERERERERKREWf4iIiIiIiIiIiIiIiJQIr/lDRERERERERERERETFk8dr/pRlPPOHiIiIiIiIiIiIiIhIibD4Q0REREREREREREREpERY/CEiIiIiIiIiIiIiIlIivOYPEREREREREREREREVj5DX/CnLeOYPERERERERERERERGREmHxh+TCxsYSp07sw5voR8jJipJ3HJKTKR5j8PrVPbx/9xTbt62HpqbmJ9uOGjkIwUFX8SE+BCf898LU1ES0z9DQADt3/IKoyAeIinyAH36YLov4Eu0/6ocBozxg394JC5atl1sOSdwnjULoi5uIjHmALZ6rP/t+Dxs+APcfXkB07CMcO74LlStXKvI8Dx5fQmTMAzx7HoiVqxdCTU2NuYm+Mcr62SzL4zjJRmJSMjwWrkST7q7o4joGJwMuS2yXlJyC+Ss3om3v4Wjbezi27Dog2hcT+xZNug8s8mfbvje8Dh2X0auQjP279PX9vg+O3D0Iv2AfzFw3HRqaGp9sqyXQgsfyyTj28Ah8g3zw89GP/x8Mmz4UZ1+e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+UNERERERERERERERKREWPwhIiIiIiIiIiIiIiJSIiz+EBERERERERERERERKRFe84eIiIiIiIiIiIiIiIpHyGv+lGU884eIiIiIiIiIiIiIiEiJsPhDRERERERERERERESkRFj8ISIiIiIiIiIiIiIiUiIs/hARERERERERERERESkRdXkHICIiIiIiIiIiIiIiBSMUyjsBfQbP/CEiIiIiIiIiIiIiIlIiLP4QEREREREREREREREpERZ/iIiIiIiIiIiIiIiIlAiv+UOflRZ2St4RSiRR3gG+MWkRAfKOUGLlzTvLO0KJvFfg91wRJeTJOwGRdCnqmGJUvaO8I5RIeMQjeUf45ugo6Hyvpa4p7wgl8jLiobwjlMhJn3HyjlAyqmryTlAywlx5JyAFkSzvAN+YI3/0lXeEErH/7nt5RyixiOQ4eUcokXeX1sg7ApUFefzBpCzjmT9ERERERERERERERERKhMUfIiIiIiIiIiIiIiIiJcLiDxERERERERERERERkRLhNX+IiIiIiIiIiIiIiKh4hEJ5J6DP4Jk/RERERERERERERERESoTFHyIiIiIiIiIiIiIiIiXC4g8REREREREREREREZES4TV/iIiIiIiIiIiIiIioeHjNnzKNZ/4QEREREREREREREREpERZ/iIiIiIiIiIiIiIiIlAiLP0REREREREREREREREqExR8iIiIiIiIiIiIiIiIloi7vAEREREREREREREREpGDyhPJOQJ/B4o8COH36NP73v/8hLy8PmZmZsLGxwfr16wEAzs7OOHToEAQCgZxTAolJKfhxvScC7zyEkYE+poweDMdOrcXaJaWkYvWWXbh66z4AwNWpKyYOHyDa383NHe8/JEBVNf/EtIY2lti2eqFMXgPJRmJSMn5YsxmBt+/DyNAAU8cMgWPndmLtkpJTsGrzDly9eRcA4OrcHe4jBwEAYmLfotfwyUXap2dkYOaEERjh2luq+d0njcLU6eOgrS2A7/EzmDblB2RlZUlsO2z4AEyfMR6VTCriRuBtTBw/B2/exImeZ+z4YShfvhxSU9NwzPskFs5fidzcXKnml2T/UT8cPxWA0Bcv4dC5PZYvnCHzDCWlyNmJlFVZ/lxOmjQa02eMh7a2AMePn8YUj4WfHMOHj3DFjBkTYGJSEYGBtzF+/Cy8ickfw+cvmIrZs92R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Y25hzo5TrnzV4xuOHzoR63W+nTacanWqYG1jxbMnz9nr5s68yYsIDXnzLRYObh+eoLw+/gGMmruGw2evkN7Wmv6dmtLkowqcuOhJr/HzObJ8EgDP/QKYtGQDh89cITw8HIc8ORjSpQWlC+UDICw8gslLXdl+6C/MzcxoULUsAz9phsWLS8K9DZPsb38Q+vu0vS9Xpstbt/1b554d6N7XBYsXY8rYYZMM/WSjxyoWzFwWa0xxP7uVgd1HxBlTABq3qs/A//WiQcVWCcpw7sE/b6Pk7e3N5pzSEZJE3Qe/pnSERKHij7zRuxR/3gcq/iSvdy3+vA8SUvx5n7xL8UfenYo/kta9S/HnfZDQ4s/7IrX+MJ6aJXbxJ9kkoPjzPkmtffxdij/vg3ct/qS0dy3+yH+Pij/J612LPyktocWf90lCij/vk3cp/rwPVPxJXCr+vN9MUzqAiIiIiIiIiIiIiIikLpEpHUDe6D93zx8REREREREREREREZG0TMUfERERERERERERERGRNETFHxERERERERERERERkTRE9/wREREREREREREREZEEicIopSPIG+jMHxERERERERERERERkTRExR8REREREREREREREZE0RMUfERERERERERERERGRNETFHxERERERERERERERkTTENKUDiIiIiIiIiIiIiIhI6hKZ0gHkjXTmj4iIiIiIiIiIiIiISBqi4o+IiIiIiIiIiIiIiEgaouKPiIiIiIiIiIiIiIhIGqJ7/oiIiIiIiIiIiIiISILonj/vNxV/5I0io6JSOoJI0jKzSOkE78TC1DylI4hIGpJqxxQTs5RO8G60e5X8IsJSOsG7UR9PVlnN7FI6wjuJiEqdP7sYGxmldIR3ZkTqzS7yT7KY2qZ0hHdinD57Skd4d6l0e58tlW43Rf5LdNk3ERERERERERERERGRNETFHxERERERERERERERkTREl30TEREREREREREREZEEidKlUN9rOvNHREREREREREREREQkDVHxR0REREREREREREREJA1R8UdERERERERERERERCQN0T1/REREREREREREREQkQSJ1y5/3ms78ERERERERERERERERSUNU/BEREREREREREREREUlDVPwRERERERERERERERFJQ1T8ERERERERERERERERSUNMUzqAiIiIiIiIiIiIiIikLpEY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IiIiIiIikoao+CMiIiIiIiIiIiIiIpKGGEVFRUWldAh5fz165JfSEURERERERERERET+tSxZ0qV0hDRldc5OKR0hSXS4uzKlIyQKnfkjIiIiIiIiIiIiIiKShqj4IyIiIiIiIiIiIiIikoao+CMiIiIiIiIiIiIiIpKGmKZ0ABERERERERERERERSV0iMUrpCPIGOvNHREREREREREREREQkDVHxR0REREREREREREREJA1R8UdERERERERERERERCQN0T1/REREREREREREREQkQaJSOoC8kc78ERERERERERERERERSUNU/BEREREREREREREREUlDVPwRERERERERERERERFJQ1T8ERERERERERERERERSUNMUzqAiIiIiIiIiIiIiIikLpFGKZ1A3kRn/rwjFxcX9u/fn2zv5+/vz3fffUf9+vVp0aIFTk5OzJs37x+XGz58OCtWrABg1qxZTJo0KamjioiIiIiIiIiIiIhICtKZP6lAVFQUn3/+OcWKFWPr1q2Ym5sTEhLC2rVrUzqaiIiIiIiIiIiIiIi8Z3TmDzB37lzGjx9vmH727BmVK1fGz8+PESNG0LRpU5o2bcqCBQviXf7Vs4BiTru4uDBx4kQ6duxIzZo1WbRoEW5ubrRv3546deqwfft2w3KnT5/GxcUFJycnnJyccHd3B+Dw4cPcvXuXESNGYG5uDoCFhQUuLi4AhIaGMmnSJNq0aUPz5s0ZOnQoAQEBibqOREREREREREREREQkdVDxB2jZsiXbtm0jPDwcADc3N+rUqcO8efOIjIxky5YtrFmzho0bN+Lh4ZHg179//z4rVqxg7dq1zJw5k6tXr7JmzRqmT5/OhAkTAPD19WXUqFFMnTqVDRs2MG/ePL799lt8fX05f/48JUqUwMzMLN7XX7hwIenSpWPdunVs3ryZrFmzMn/+/HdfISIiIiIiIiIiIiIibxCZRv/SCl32DciZMyeFChXCw8ODunXr4urqyogRI5gwYQIjR47EyMgIW1tbHB0dOXz4MDVr1kzQ6zdq1AhjY2OyZctG+vTpqVevHgAlS5bkwYMHhISEcPLkSby9venRo4dhOSMjI7y8vP7x9fft24e/vz87d+4Eos8EKlasWIIyioiIiIiIiIiIiIhI2qDizwutWrVi48aN5M6dGz8/PypWrPjWy5qYmBAZ+bImGBISEmu+hYVFrLZ/T5uYmAAQHh5OVFQURYsWZeXKlXFe38/Pj1WrVhEeHo6padx/sqioKEaNGkXVqlXfOrOIiIiIiIiIiIiIiKRNuuzbCw0aNOD48eMsWbKEVq1aYWRkRNWqVVm/fj1RUVH4+/uzbds2qlWrFmfZvHnzcvbsWQCuXbvGxYsXE/z+5cqVw8vLiyNHjhieO3PmDFFRUVStWpVs2bIxceJEQkNDgeize1asWAFAnTp1WLp0KcHBwQD4+/vj6emZ4AwiIiIiIiIiIiIiIpL6qfjzgpWVFXXr1mXTpk20bNkSgF69ehEVFUWzZs1o3749zZs3p0aNGnGW7dGjBwcOHKBZs2YsWLCAEiVKJPj97e3tmTt3LnPmzKF58+Y0btyY2bNnExUVhZGREQsXLiQiIoImTZrQrFkzWrduTWBgIACff/45xYoVo02bNjRr1oyOHTuq+CMiIiIiIiIiIiIiSSYqjf6lFUZRUVFp6fNIInv0yC+lI4iIiIiIiIiIiIj8a1mypEvpCGnKklyfpHSEJNH1zoqUjpAodOaPiIiIiIiIiIiIiIhIGqLij4iIiIiIiIiIiIiISBpimtIBREREREREREREREQkdYk0SukE8iY680dERERERERERERERCQNUfFHREREREREREREREQkDVHxR0REREREREREREREJA1R8UdERERERERERERERCQNMU3pACIiIiIiIiIiIiIikrpEpnQAeSOd+SMiIiIiIiIiIiIiIpKGqPgjIiIiIiIiIiIiIiKShqj4IyIiIiIiIiIiIiIikobonj8iIiIiIiIiIiIiIpIguufP+01n/oiIiIiIiIiIiIiIiKQhKv6IiIiIiIiIiIiIiIikISr+iIiIiIiIiIiIiIiIpCG654+8ke2hOSkd4Z34f9Q7pSP8p9ieWJbSEd5Z0+6bUzrCO9nq2jOlI/yn+OVvkNIRRJJUupu7UjrCO6nfcm5KR3gnG05tTOkI/zm1StVL6QjvJKuZXUpHeCdrT25I6QjvJL3Ro5SOICLxeB6VJaUj/Kek1rGwX8XhKR3hnV0Kf5bSEd7JrlM/p3SEd5QupQOkKVFGKZ1A3kTFHxERERERERERERERkUQWFBTEiBEjOH/+PCYmJnz11VfUrl07Trs9e/Ywd+5cQkNDiYqKonXr1nTr1g2ADRs2MH78eHLlygVA7ty5mTPnn0/aUPFHREREREREREREREQkkS1atAhbW1t2797NzZs36dSpE7t27cLGxiZWuyxZsvDTTz+RLVs2/Pz8cHJyokyZMlSsWBGAatWqMXPmzAS9t+75IyIiIiIiIiIiIiIiAvj6+uLt7R3nz9fXN8GvtX37dpydnQHInz8/pUqV4sCBA3HaffDBB2TLlg2AdOnS4eDgwJ07d/7V59CZPyIiIiIiIiIiIiIikiCRKR0giSxbtozZs2fHeb5Pnz707ds3Qa919+5dw+XaAHLkyMH9+/ffuIynpyenTp1izJgxhueOHTtGixYtsLW1pUePHtSqVesf31vFHxEREREREREREREREaBLly60atUqzvN2dnZxnmvVqhV3796N93X++OOPBL/3w4cP6dWrF6NGjTKcCVSrVi2aNGmCpaUlFy5coEePHvzyyy84ODi88bVU/BERERERERERERERESG6yBNfoSc+rq6ub5yfM2dO7ty5Q8aMGQG4d+8elStXjrftkydP6Nq1K5999hmNGzc2PP/3sgAlSpSgfPnynDlz5h+LP7rnj4iIiIiIiIiIiIiISCJr1KgRv/76KwA3b97k7NmzfPzxx3HaPXv2jK5du9KpUyfatm0ba96DBw8Mj+/cucOpU6coWrToP763zvwRERERERERERERERFJZN27d2f48OHUr18fY2Njxo4di62tLQAzZswga9asdOjQgfnz53Pz5k1+/fVXQ7Goc+fOtG7dmpUrV7J3715MTEwAGDRoECVKlPjH91bxR0REREREREREREREEiQypQOkAtbW1sycOTPeef379zc8/uqrr/jqq6/ibTdo0CAGDRqU4PfWZd9ERERERERERERERETSEBV/RERERERERERERERE0hAVf0RERERERERERERERNIQ3fNHEo1PYAij1x3i8NW7ZLCxoG+jCjQp6xBv24t3HvPDlmNcvPsEK3NTutcqQ6ePSgJw6e4TJm0+ytV7T7G2MKNN5aJ8XrdsMn4SSWo+AcGMXr2Xw5dukcHGir7NqtKkYtE47Xr/tIkTnvcM02EREeTPmoF1IzoC8NnMDXjee0JoeAS5MtnxZZMq1C5TMMnzt/7Mifa92mFhZcGBrQeZMXIWYaFh8ba1sLSg5zefU6tZDUxMTbl+4ToD2wwGoPMgFzr17RBr2R71e3Lv1v1EzevjH8io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IyQKFX/kjRJS/HmfqPiTvBJa/HmfvEvx532QkOKP/Hsq/khal5Diz/vkXYo/7wMVf5LfuxR/3gfvUvx5H6j4IyKJScWf5JVax8J3Lf68D96l+PM+SOziT3JR8SdxqfjzftNl30RERERERERERERERNIQFX9ERERERERERERERETSEBV/RERERERERERERERE0hDTlA4gIiIiIiIiIiIiIiKpS2RKB5A30pk/IiIiIiIiIiIiIiIiaYiKPyIiIiIiIiIiIiIiImmIij8iIiIiIiIiIiIiIiJpiO75IyIiIiIiIiIiIiIiCRKV0gHkjXTmj4iIiIiIiIiIiIiISBqi4o+IiIiIiIiIiIiIiEgaouKPiIiIiIiIiIiIiIhIGqJ7/oiIiIiIiIiIiIiISIJEGqV0AnkTnfkjIiIiIiIiIiIiIiKShqj4IyIiIiIiIiIiIiIikobosm/yZsaqD8pbMEq9/SSCyJSO8G6MTVI6gYikJal0TIkkKqUjSCoRGZU6+0pEVCrdTxEREUlm4al4v1DbexFJKir+iIiIiIiIiIiIiIhIgqh0+X5LvYfri4iIiIiIiIiIiIiISBwq/oiIiIiIiIiIiIiIiKQhKv6IiIiIiIiIiIiIiIikISr+iIiIiIiIiIiIiIiIpCGmKR1ARERERERERERERERSl6iUDiBvpDN/RERERERERERERERE0hAVf0RERERERERERERERNIQFX9ERERERERERERERETSEN3zR0REREREREREREREEiRSd/15r+nMHxERERERERERERERkTRExR8REREREREREREREZE0RMUfERERERERERERERGRNET3/HmPeXt707p1a44ePZrSUd6KT2AIo387yOErd8hgY0Hfxh/SpJxDvG0vej/mhy1HuHjnCVbmpnSv8wGdPioFwKmbD/hhyxFuPPAhV0ZbRraqRrkC2ZPzo0gS8wkIZvSqPRy+5EUGGyv6Nq9Gk4rF4rTrPXcjJzzvGqbDIiLInzUD60Z+Eqvdn1e9+Wzmej5r+CF9mlZL8vxtPmtNx17OWFhZ4LH1INNGziAsNCzethaWFnz5TU9qN6uJiakpnhc86d9mkGF+4VKF6DO6F0VKFyYoMJiVs1exfpFroub18Q9k1Px1HD57hQzpbOjn3Igm1cvFaRcaFs6kXzaz7/h5wiMiKFskP193b0W2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Me3Y1Oet8/r4BzLq5984fO4q6W2t6d++MU2ql+PEpRv0mrSYI0u+A+C5XwCTlm3m8LmrhIdH4JA7O0M+aUrpQnl46uvPkOkruHLrHpFRUeTInIGODavRuk7lhKy6BHmfcvvljfufF5G0JN2tvW/d9n36btZtPjNB7QGcP2/DJ73aY2Fpgfu2g/wwfJphDF+xbzG/zFrJLtfo9VGgSH6GTxmMQ/GC3Pd+wPxJizmw4xAAdZrVpP/o3tja23L7ujdzv5/PMY8/3yrDxlObEpxb/p0aJRM+jnf5oiOf9XXB0tKCXW77GT10oqGvbDmwhp9nLMFtffSPJOYW5hw8t53+3YZz5ODxWK/TqHk9RowbSDq7dNy8foup383m9/1vd4nDLGbp/rnRK9p93oaOL/ZTPLYdZOrw6Ybcy/YtYsWsVex+0cfzF8nHsClDcHixn7Jg0iIOxthPqduiNj1H9qBd5Y4JyrD+1MYE534fpDf6532whJqzaAU/LV4Z67kvu3Wid/dPEv29EpNyJy/lfrPnUboSSHJK6Fjo4+vHN+Oncfj4Cezt7Rj4RVccG9Tmr1Pn+GLINxzfE33lmh17DzBpxs/4+QeQL08uBvXqFqu4M3TURA4ejt6GVq9ckZGDviRThvRvnaNXxa8SlPtv9bs3pdEXLTCzNOfEjqOs+N98wkOj7zs9ZtePbJuzgaObDsVZbsKhOfzy1Twu/h59hZ3MubPSfnRXHCoUxcjIiBunr7F61CIe3rz/jxkuhz1NcO73YXu/9/SCBOd+k+QaU8wyF/znRvLWxubrlNIRksS3Xiv/uVEqoOJPKjJmzBhOnDhBWFgYefLkYezYsWTLFvcyK4kpIcWf94mKP8krocWf98m7FH/eBwkp/si/p+KPpHUJKf68T96l+PM+UPEn+b1L8ed98C7Fn/eBij8ikphU/EleqXUsfNfiz/vgXYo/74PELv4kFxV/EtfoNFr8GZ1Gij+mKR1A3t6oUaNSOoKIiIiIiIiIiIiIiLzndM8fERERERERERERERGRNETFHxERERERERERERERkTREl30TEREREREREREREZEEiTRK6QTyJjrzR0REREREREREREREJA1R8UdERERERERERERERCQNUfFHREREREREREREREQkDdE9f0REREREREREREREJEEiiUrpCPIGOvNHREREREREREREREQkDVHxR0REREREREREREREJA1R8UdERERERERERERERCQN0T1/REREREREREREREQkQXTHn/ebzvwRERERERERERERERFJQ1T8ERERERERERERERERSUN02Td5s8jIlE4gqUFU6u0nJqm1Bh4ZkdIJRCQtSaVjijFGKR1BUgljo9TZV1JrbhERkeSWSv9nD2h7LyJJJzWPjSIiIiIiIiIiIiIiIvIKnfkjIiIiIiIiIiIiIiIJknqvBfTfoDN/RERERERERERERERE0hAVf0RERERERERERERERNIQFX9ERERERERERERERETSEN3zR0REREREREREREREEiSSqJSOIG+gM39ERERERERERERERETSEBV/RERERERERERERERE0hAVf0RERERERERERERERNIQ3fNHREREREREREREREQSRHf8eb/pzB8REREREREREREREZE0RMUfERERERERERERERGRNESXfZNE4xMYwuh1hzh89S4ZbCzo26gCTco6xNv24p3H/LDlGBfvPsHK3JTutcrQ6aOSAFy6+4RJm49y9d5TrC3MaFO5KJ/XLZuMn0SSmk9AMKNX7+XwpVtksLGib7OqNKlYNE673j9t4oTnPcN0WEQE+bNmYN2IjgB8NnMDnveeEBoeQa5MdnzZpAq1yxRM8vytP3Oifa92WFhZcGDrQWaMnEVYaFi8bS0sLej5zefUalYDE1NTrl+4zsA2gwHoPMiFTn07xFq2R/2e3Lt1P1Hz+vgHMmrBBg6fu0oGWxv6OTegSbWycdqFhoUzabkb+/48T3hEJGWL5OPrri3IltGe0LBwvl+6iaPnPPEJCCRP1kz0c27ARx/E/Xf7r+cWSetS+3ezXY/WdOzVHksrC9y3HmDqiBlvHMN7f9uT2s1qYWpqwrUL1+nbeiAAZuZm9BvbmxqNPsLU1ISzf55nyvDpPL7/OMk/gySPzj3b071PZyytLNnlto+xwybF21ccWzdk9A/DDdNGRsZYWVvStn4XLpy5hJm5GSPGDaJuk1qYmZpw8vgZxgydxMP7j5Ikd5vPWtOxlzMWVhZ4bD3ItJFv7uNfftOT2s1qYmJqiucFT/q3GWSYX7hUIfqM7kWR0oUJCgxm5exVrF/kmiS506pV6zazcdserl6/QZN6tfj+68EpHemtKHfyUm5JzXx8/fhmwjQOHztBent7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OXKEKlWqkDNnzlgJptu3b5MzZ87XxqY1f0RERERERERERERERJJYgwYN+PPPP4GYad1OnjzJe++9F6fcvXv3iI6OmUbvyZMn7Nu3jyJFihjOsXr1akJCQggJCWH16tU0bNjwtdfWyB8REREREREREREREZEk1qNHD4YPH069evUwNTVl7NixhlE+U6ZMIVu2bHTo0IEtW7awZMkSzM3NiYyMpHnz5tStWxeASpUqUb9+fRo1agRA8+bNY60B9CpK/oiIiIiIiIiIiIiISKJEpXYA6YCtrS1Tp06Nd1///v0Njzt37kznzp1feZ6+ffvSt2/fRF1b076JiIiIiIiIiIiIiIgYESV/REREREREREREREREjIiSPyIiIiIiIiIiIiIiIkZEa/6IiIiIiIiIiIiIiEiiREVHp3YIkgCN/BERERERERERERERETEiSv6IiIiIiIiIiIiIiIgYESV/REREREREREREREREjIjW/BERERERERERERERkUTRij9pm0b+iIiIiIiIiIiIiIiIGBElf0RERERERERERERERIyIkj8iIiIiIiIiIiIiIiJGRGv+iIiIiIiIiIiIiIhIokRp1Z80TSN/REREREREREREREREjIiSPyIiIiIiIiIiIiIiIkZEyR8REREREREREREREREjouSPiIiIiIiIiIiIiIiIETFP7QBERERERERERERERCR9iSY6tUOQBCj5I0nGNyiUL5bvZf9FHzLZWdG3QTncS7vEW/bsrQd87/k3Z30eYmNpTo+a/6NTteIAnPN5yIS1B7l4+xG2Vha0ruTKR3VKp+ArkeTmGxjCF0u2s//cdTLZ2dC3ybu4l3eNU85j1hqOXL5teB4eGUm+bJlYPqIjAB9OXcnl2w8Ji4gkVxYHPnavTK3/FUj2+Ft92JL2fdpiZWPF7vV7mDJyGuFh4fGWtbK2otfoj6jZpDpm5uZcOXOFga0HA9B1UBc69e0Q69ie9Xpx+/qdJI3XNyCIMXNXsv/URTLZ29GvXX3cq5SOUy4sPIIJC9ex45/TRERGUbqwM6M+aEb2zBkJC4/gm1/XcPDUZXwDg8iTLQv92tWnWqm4/9/+63GLGLv0/tls27MVHfu0x9rGCq/1u/lhxJQE23CPz3tRq0lNzM3NuHTmCn1bDQTAwtKCfmM9qN6gGubmZpz85zQTh0/mwZ0Hyf4a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ipOHTjF55DTu3054uhuApUdXJjrutMDR5PWvLbFmzP+dWT/HngXi4+6d8OjROcmvlZQUd8pS3Al7Eq01gFNSYttCXz9/Ro+bxP5DR8iY0YGBvT+gUf1aHD52it5DRnNoW8xNzJu272bClJ/wDwjEOU8uBvXpHiu5M3TMePbsj7nJpmql8owc9DFZMjm+cRz9yg9PVNzP1OnRiPq9m2FhbcnRTQdZ8tlcIsIiABi95Qc2zVgVa7TQM1/vnc7vw37i3L6Thm1ufZpTomYZfmg7JlExnIt4nOi408L3/ZZjPyU67oSkVJtikTXplgoQaOPcLLVDSBbLvNe8vlA6YPTJH/l3EpP8SUuU/ElZiU3+pCVvk/xJCxKT/JF/T8kfMXaJSf6kJW+T/EkLlPxJeW+T/EkL3ib5kxYo+SMiSUnJn5SVXtvCt03+pAVvk/xJC5I6+ZNSlPxJWkr+pG1GP+2biIiIiIiIiIiIiIjIf8mbz6MlIiIiIiIiIiIiIiICRBvR+jjGSCN/REREREREREREREREjIiSPyIiIiIiIiIiIiIiIkZEyR8REREREREREREREREjouSPiIiIiIiIiIiIiIiIETFP7QBERERERERERERERCR9iUrtACRBGvkjIiIiIiIiIiIiIiJiRJT8ERERERERERERERERMSJK/oiIiIiIiIiIiIiIiBgRrfkjIiIiIiIiIiIiIiKJEh0dndohSAI08kdERERERERERERERMSIKPkjIiIiIiIiIiIiIiJiRJT8ERERERERERERERERMSIm0ZqYTxJw/75/aocgIiIiIiIiIiIi8q85OWVI7RCMSrO8jVM7hGSx5vq61A4hSWjkj4iIiIiIiIiIiIiIiBFR8kdERERERERERERERMSIKPkjIiIiIiIiIiIiIiJiRMxTOwAREREREREREREREUlfolI7AEmQRv6IiIiIiIiIiIiIiIgYESV/REREREREREREREREjIiSPyIiIiIiIiIiIiIiIkZEyR8REREREREREREREREjYp7aAYiIiIiIiIiIiIiISPoSTXRqhyAJ0MgfERERERERERERERERI6Lkj4iIiIiIiIiIiIiIiBFR8kdERERERERERERERMSIaM0fERERERERERERERFJlCit+ZOmaeRPGrR9+3YmTJiQ2mGIiIiIiIiIiIiIiEg6pJE/aUxERAR16tShTp06qR2KiIiIiIiIiIiIiIikQ0r+pBBXV1c8PDzYvn07ISEhDBo0CDc3N8O+Tz75BC8vL9577z3y5s2Ll5cXU6dO5cqVK4wYMYLg4GCioqJo0aIFPXr0YNq0aVy5coWAgACuXbtG8eLF+eijjxg/fjw+Pj7Uq1ePYcOGATB9+nTWrVuHlZUVJiYm/Pbbbzg4OKTm2yEiIiIiIiIiIiIiIslEyZ8UZGpqypo1a7hy5QodOnSgfPnyZMmSBQArKytWrFgBwMqVKw3HLF68mNq1a9OrVy8AfH19DftOnz7NihUrsLW1pUWLFvzwww/MmzfPMHqoXbt2ODo68uuvv7J3716sra0JCAjA2to6BV+1iIiIiIiIiIiIiBib6Git+ZOWac2fFNSmTRsAChQoQLFixTh27JhhX4sWLeI9pkKFCixbtozJkyezf//+WCN2qlWrRoYMGTAzM8PV1ZUqVapgaWmJra0t+fPn5/r162TIkIG8efPy6aefsnTpUoKCgjA3V85PRERERERERERERMRYKfmTRtja2sa73c3NjUWLFpE3b17mzp3L0KFDDfusrKwMj83MzOI8j4yMxMzMjKVLl9K5c2fu3LlDy5YtOXfuXPK9EBERERERERERERERSVVK/qSgZ9O6Xbt2jTNnzlC6dOnXHuPt7Y2TkxMtW7bEw8ODkydPJuqaAQEBPHr0iIoVK9KvXz8KFy7MxYsX3yZ8ERERERERERERERFJBzT/VwqKjIykefPmBAcHM3bsWMN6PwnZuHEjnp6eWFhYYGJiwsiRIxN1zYCAAPr27UtISAjR0dEUK1aM+vXrv+1LEBEREREREREREREhKrUDkASZRGtVphTh6urKkSNHsLOzS+1QEuX+ff/UDkFERERERERERETkX3NyypDaIRgVtzwNUzuEZLH5xsbUDiFJaNo3ERERERERERERERERI6Jp31LI+fPnUzsEERERERERERERERH5D9DIHxERERERERERERERESOikT8iIiIiIiIiIiIiIpIo0USndgiSAI38ERERERERERERERERMSJK/oiIiIiIiIiIiIiIiBgRJX9ERERERERERERERESMiNb8ERERERERERERERGRRInSmj9pmkb+iIiIiIiIiIiIiIiIGBElf0RERERERERERERERIyIkj8iIiIiIiIiIiIiIiJGRGv+iIiIiIiIiIiIiIhIokRHa82ftEwjf0RERERERERERERERIyIkj8iIiIiIiIiIiIiIiJGRMkfERERERERERERERERI6I1f0REREREREREREREJFGi0Jo/aZlG/oiIiIiIiIiIiIiIiBgRJX9ERERERERERERERESMiJI/IiIiIiIiIiIiIiIiRkTJHxERERERERERERERESNintoBiIiIiIiIiIiIiIhI+hJNdGqHIAnQyB8REREREREREREREREjouSPiIiIiIiIiIiIiIiIEVHyR0RERERERERERERExIhozR8REREREREREREREUmUqGit+ZOWaeSPiIiIiIiIiIiIiIiIEVHyR0RERERERERERERExIgo+SMiIiIiIiIiIiIiImJEtOaPiIiIiIiIiIiIiIgkilb8Sds08icd2759OxMmTIh338GDB2nZsmUKRyQiIiIiIiIiIiIiIqlNI39SWFRUFCYmJpiYmPzrc9WpU4c6deokQVQiIiIiIiIiIiIiImIslPxJJFdXVzw8PNi+fTshISEMGjQINzc35s2bx61btxgzZgwADx48oGnTpmzfvp158+Zx8eJFAgIC8PHx4c8//2T27Nn8/fffhIeHkylTJsaNG0euXLm4efMmrVq1om3btuzZs4eQkBAmTpzIH3/8wfHjx7G2tmbmzJk4OTmxcuVKvLy8mDp1KgCTJk1iw4YNODg4ULFiRUPMV65cYcSIEQQHBxMVFUWLFi3o0aNHqrx/IiIiIiIiIiIiIiKSvDTt21swNTVlzZo1zJo1i88//5yHDx/SunVrtmzZQmBgIAB//vknjRs3xsbGBoATJ04wceJENm3aRMaMGenZsycrVqxg7dq1NG7cmIkTJxrO/+TJE8qVK8fq1atp3bo177//Pp06dcLT05PixYvz+++/x4lpx44d7Nixg9WrV7N06VKuXr1q2Ld48WJq167N2rVrWbduHa1bt07md0hEREREREREREREjFkU0Ub5z1go+fMW2rRpA0CBAgUoVqwYx44dw9HRkdq1a7NmzRoiIiJYtmwZHTt2NBxTvXp1MmfObHi+e/du2rZtS+PGjZk/fz5nz5417LO1taVmzZoAFC9enBw5clC0aFHD8+vXr8eJ6eDBg7i7u2NnZ4eZmVmsBE+FChVYtmwZkydPZv/+/Tg4OCTp+yEiIiIiIiIiIiIiImmHkj9JqHPnzixZsoTt27fj4uJCvnz5DPvs7OwMj2/dusW3337LDz/8wLp16xg3bhxhYWGG/ZaWlobHpqamsZ6bmZkRGRmZqLjc3NxYtGgRefPmZe7cuQwdOvQtXp2IiIiIiIiIiIiIiKQHSv68hRUrVgBw7do1zpw5Q+nSpYGY9YAcHR0ZN25crFE/LwsICMDCwgInJyeioqL4448//nVMlStXZuPGjQQFBREZGWmIEcDb2xsnJydatmyJh4cHJ0+e/NfXExERERERERERERGRtMk8tQNIjyIjI2nevDnBwcGMHTuWLFmyGPa1adOGSZMmUatWrVce7+rqSoMGDXB3dydTpkzUqFGDf/7551/FVKtWLY4dO0azZs1wcHCgYsWK3L17F4CNGzfi6emJhYUFJiYmjBw58l9dS0RERERERERERERE0i6T6Oho41nBKAW4urpy5MiRWNO4veizzz4jf/78fPjhhykcWfK4f98/tUMQERERERERERER+decnDKkdghG5d1crx4AkZ7tv7UztUNIEpr2LYncvXsXNzc3vL296dSpU2qHIyIiIiIiIiIiIiIi/1Ga9i2Rzp8/H+/27Nmzs3nz5hSORkREREREREREREREJDaN/BERERERERERERERETEiGvkjIiIiIiIiIiIiIiKJEh0dndohSAI08kdERERERERERERERMSIKPkjIiIiIiIiIiIiIiJiRJT8ERERERERERERERERMSJa80dERERERERERERERBIlCq35k5Zp5I+IiIiIiIiIiIiIiIgRUfJHRERERERERERERETEiCj5IyIiIiIiIiIiIiIiYkS05o+IiIiIiIiIiIiIiCRKtNb8SdM08kdERERERERERERERMSIKPkjIiIiIiIiIiIiIiJiRDTtmyTIfst3qR3CWwmo/2lqh/CfYr9nWmqH8NbaDNiX2iG8lWW/tUrtEP5TAoq3Se0QRJKV/ellqR3CW2nWZWlqh/BWFh1Jn+93euZeqlFqh/BWnMztUzuEt7Lg8J+pHcJbcTS5n9ohiEg8nkQ7pXYI/ynptS38tPzI1A7hrZ2P8kvtEN7Kmn+mpHYIbylDagcgkmI08kdERERERERERERERMSIaOSPiIiIiIiIiIiIiIgkSnR0dGqHIAnQyB8REREREREREREREREjouSPiIiIiIiIiIiIiIiIEVHyR0RERERERERERERExIhozR8REREREREREREREUmUKLTmT1qmkT8iIiIiIiIiIiIiIiJGRMkfERERERERERERERERI6Lkj4iIiIiIiIiIiIiIiBHRmj8iIiIiIiIiIiIiIpIo0dFa8+d1goODGTFiBKdPn8bMzIxhw4ZRq1atOOV+++03VqxYYXh+48YN2rRpw4gRIzh48CAfffQR+fLlA8DS0pJly5a99tpK/oiIiIiIiIiIiIiIiCSx+fPnY29vz9atW7l27RqdOnViy5Yt2NnZxSrXtWtXunbtCkB4eDjVq1encePGhv0uLi6sXLkyUdfWtG8iIiIiIiIiIiIiIiJJbOPGjbRr1w6AfPnyUaJECXbv3p3gMTt37sTJyYmSJUv+q2tr5I+IiIiIiIiIiIiIiAjg5+eHn59fnO0ODg44ODgk6lw+Pj7kypXL8DxnzpzcuXMnwWNWrFhBy5YtY227du0aLVq0wNzcnI4dO9KiRYvXXjtVkz/Dhw+nRIkSdO7cOd79e/bsYcaMGTx69Ah7e3ucnJwYNGgQrq6urzznwYMHmTBhQqKHQD1z8+ZNWrVqxcGDB19bbt++fYasHUDPnj0ZPXo0efPmfatrt2nThrCwMMLDw7l27RqFChUCoFixYuTIkYNChQrh7u7+VudOCb7BoXyx9h/2X7lDJlsr+tYuiXtJ53jLnr39mO83H+Xs7SfYWJrRo1pROlUqDMCHC3Zy+b4fYRGR5Mpkx8c1S1DLNVe855H0yTcolC9W7GP/xdtksrOir1tZ3EsXiLfs2VsP+X7d35z1eYSNpTk9apakU9ViAJzzecQEz4NcvP0YWysLWlcszEd1SiV7/M16NKf1x62xsrFi34a9zPhsBhFhEfGWtbK2ovuoHlRrXA1zc3Ounr3K8DbDACj57v/o0L8DLiVcCPANoEfV7skSr29gMF/8tpH9Z66Ryd6Gvi1q4F6xWJxyHlOXcuTSTcPz8IhI8mXPzPIxPbj9yI+WX8yLVT44NJxBrWvRtV5FxS3yH5LeP5stP2xB24/bYGVjxZ4Ne5k2cjrhYeHxlrWytuKj0R9SvXF1zM3NuXL2CoNbDzWcp9n7TXHI7EBIUAi7PHcx5+t5REVGJWv8knI69GxDN4+OWNlYs2O9F+OH/xhvXWnQoh4jvhtseG5qaoq1jTVd3D7k3MkLdOjZhnbdW5Exc0aCA4PZunYHU7+aRWRkZLLE3fxpP8Xaxpq9G/Yy/bPpCfZTeozqwXuN3zP0Uz5t8ykA/3vaTylYoiABvgF8UPWDZIk3PfP182f0t5PY//cRHDNmZEDv92lUP+787X7+AYyfPJu9B/4BoF3Lxnj0eP438NGTZ5gw5SeuXLtBrneyM3qwB2VLlVDciltxi9FYvHwtqzds4+KVq7jXrck3owa//qAUUqOHO7V7N8XS2pLjGw+ybNR8Il/xvflM/X4taTioLbM6fc2FfacAaDK8I2WaVsUmgw1BvoHsX7ydbTNXJ1vc6e373tfPn9Hjp7D/0FEcMzowoFc3GtWrGaecn38A46fOYe+BwwC0a+GOR/dOhv1HT55lwrQ5XLl2k1w5szN68MeU/V/xZIlZ3kwUxrnmz4IFC5g+fXqc7Z988gl9+/aNta1Fixb4+PjEe56//vor0de+d+8eBw4c4NtvvzVsK168OLt27SJDhgzcuHGDDz74gOzZs1OlSpUEz5VmR/7s3buXzz77jBkzZhiGN509e5b79+8nmPxJKbdu3eLPP/+MlfyZO3fuvzrns0WaniWg1qxZ86/Ol9K+3XAECzNTdgxuyvk7T+i7ZC+FsztSMFvGWOUeB4XSZ9FuhriVpl7R3IRHRnHXL9iw/9MGZSjg5IC5qSknbz6k1++7WOPREKcMNin9kiSZfLvmABZmZuz4rC3nbz+i76/bKZwzEwWzZ4pV7nFgCH1+2caQRhWoV9I5pq74Bhr2j/xzN7WK5WVeTzd8HgfwwU+bKJwzEzWLvV0C9k2UrV6W1n1a81mHkTy8+4hRcz6j06DOLBj/a7zlPxnfFzNzUz6u3ZuAJwHkL/48yRUaFMLWpVvYtdaKth5tky3mb5dsjXm/v/+E8zfv0XfaMgrndqLgO06xys3oFzuGHj8spqJrTAI3Z2YH9k8dZNh368ETmoyaQ50yydcep9e4RYxdev5slqtRjnZ92vJp++E8vPuQMXM/p8ugzvw8/pd4yw+Y0B8zc1M+rPUR/k/8cXmhDd+/9QCbl24h0C+QDI72jJ49ihbdm7Ni7tvdgCRpS+UaFej2SSf6tBnA/bsP+H7+N/Qa0p3p436KU3bTqq1sWrXV8Lxx2wb0GNCNcycvALB7yz48/9xIgF8ADo4ZGD/nK9r1aMXiOUuTPO6y1cvSpk8bRnQYwaO7jxg1ZxSdB3Xm11f0U/qO74uZuRm9avci4EkABV6o4yFBIWxdupVda3fRzqNdvMf/1339wwwszC3Y5bmEcxcv02foGFwLFqBggdg3wH03dQ4hoaFsXvErjx770qPfcN7JkY0Wjerj6+fPJ59+wedD+1K3RhU2bNvFJ8O+ZOPSn8nokEFxK27FLUbBKWsWer3fnn0HDxMaGpba4Ri4Vv8fdXo3ZWbHr/G9+5jucwbTcGAb1k1Y8spjsuTNTin3yvjefRRr+4GlO9k8ZQVhwaFkzJ6J3gtHcvfyLU5uPpTkcafH7/uvf5yFhYUFu9b8zrlLV+jz6Ze4FsxPwfwvtSnT5hESEsrmZfNj2pQBn/FO9my0aFQvpk0ZPpbPh3hQt/q7bNi2m0+GjWXj0vlkzGCfbLHLf1O3bt3iHVkT36ifVatWJXiud955h1u3bpE5c2YAbt++TaVKlV5ZfvXq1dSoUcNQHsDe/nkdz5MnD3Xr1uXIkSOvTf68ds0fV1dXZs2aRatWrahTpw779+/nhx9+oHnz5jRu3JjLly8byq5atYo2bdrQsmVLunbtypUrVwA4cuQILVq0oFmzZjRq1Ih169YZjrlw4QJdu3alfv36fPrpp0RHx2QLZ8yYQZ8+fWLNa1e0aFGqVasGwODBg2nZsiVNmjTBw8MDX1/feOPfuXMnLVu2pGnTpjRv3pxz585x8+bNWG/wy89f9KrrjB07lsuXL9OsWTP69esHQO3atblwIeaPPG9vb7p160aTJk1o0aJFrHn8XF1dmT17tuE93bx58+v+NzB8+HB+//13AKZNm8bAgQPp2bMn9erVY8CAAZw5c4auXbtSt25dJkyYYDju3r179OvXj9atW9OkSRNmz5792mu9jeCwCLadvYVHrRLYWlpQJq8TNQq/w/oT3nHKLtx/niouOWhU0hlLczPsrCwo4PT8g1M4uyPmpk+rpglEREZxxy8oWeKWlBccFs6209fxqFcaWysLyuTLTo2ieVh/9Eqcsgv3nqFKoXdoVKbA87qSzdGw3+dxAO6lC2BmakqeLA6Uds7G5XvxtwVJpXbrOmz9cwvXL1wn0DeAP6b+Qd3WdeMtm9slN5XqVWLa8Gn4PfIjKiqKyycvGfZfOH6BnSt3cud6wkM9/43g0DC2HTmPR7P3sLW2pEzB3NQoVYj1B04neNytB74cvXiTxpXjvyvPc/8pyhbKQ66sGePd/2+l17hFjF16/2zWa12XTX9uxvuCNwG+ASyaspj6berFWzaPS24q16vE5GFT8X3kS1RUFBdfaMNve98m0O/ZDQkmREVF806+nMkav6ScRm0bsHbJeq5cuIa/bwDzJy+gcdsGb3ZsmwasX/68f3/L24cAvwAATExMiI6OIk++5BnVXrd1XbY87acE+AawZOqSBPspletVZurwqYZ+yqWX+ik7Vu5I1n5KehYUHMJWr3307dkFW1sbypYqQc1qlfHcvD1OWa99B/mgU2tsrK3JlTM7LRu7sWrdFiBmVETWzJlwq/0eZmZmNHGrTSbHjGzblfi7RBW34v6vxy1pV72aValTvQqOGRM3VVJyq9CqBgeWenHn4k2C/QLZMnUlFVrXSPCYVl99wLrxi4kMjz2C9/6V24QFhxqeR0VF45QvR7LEnd6+74OCQ9i66y/69ugc06b8rzg1q1bCc/POOGW9/vqbDzq2et6mNKrPqg0xN9kcPXk2pk2pVe1pm1JLbYokGwcHB3Lnzh3nX2KnfANo0KABf/75JxAzddvJkyd57733Xll+xYoVtGrVKta2e/fuGfImT548Yd++fRQpUuS1135t8gdiXuyKFSsYMmQIffr0oWzZsqxevZpmzZoxa9YsAP755x82btzIokWLWLlyJT169GDkyJFAzIiYHj16sGbNGtatW0f16tUN57548SJz585l3bp1nD592jAU6syZM5Qq9erpmz777DNWrlyJp6cnBQsWjHfUzdWrVxk1ahQ//vgja9euZenSpeTOnftNXvJrr/P555/j4uLCmjVrmDp1apzjhgwZQuPGjfH09OT7779n6NChPHr0/K4Ae3t7VqxYwXfffcfXX3+dqJgATp8+zY8//simTZu4cuUKP/zwA/PmzWPt2rWsXr2aa9euATBs2DC6dOnC8uXLWbFiBbt372bfvn2Jvt7reD/0x9zUBOcsz+/eKZw9I5fvx/0h/uStRzjYWNL15+3UmriGfkv2cPuF0RwAfZfsoeI3y+kyfzvl82Wj+DuZ45xH0ifvB34xdcXp+Q98hXNm4vLdJ3HKnrx+HwdbK7rO2kCtr/+k34Lt3H4SYNjfsWox1h29THhkFNfu+3Li+n0quSTvD2/OhfNy9exVw/OrZ66SKVsmMjjGvXOtcOnC3Lt1j06DOrPo2GKmb5lBlYYJZ+STmvfdx5ibmuKc/flnqHBuJy77PEjwuHUHTlGmUO54f4iNjo5m3YHTNHk3+aZrSK9xixi79P7ZdC7szJUzz282uHLmCpmzZY63DXct7cq9W/foOrgzy47/yU9bZ1GtYdVYZWo1r8mqMytYcXIZBYrlZ/3vG5L9NUjKKFA4PxfPPL/J7cKZy2TJloWMmRL+Yy9HruyUqVyKDcti39zl1qIuO89vZNvpdRQqVpCVv69NlrjzxtNPeVUdf9ZP6TyoM0uOLWHmlplUfamOy6t537iJuZkZ+fI+//vStWB+Ll2Ne/MbwIszokQTHatc9EvTpURHR3PpyrWkDNdAcSvuN5Fe4xZJrByFc+Nz9nl99TnrjYOTI7aO8Y8iKeVeiYiwCM56HYt3f52PmzL+9K98cXAWVrZWHF6T9L+/Qfr7vve+cetpm/L85peE25Tn7UY00Vy68kKbEv1Sm/LSfpG0qEePHvj5+VGvXj169erF2LFjDSN5pkyZwpIlz0cbHj58mKCgIMMAmGe2bNlC48aNadasGZ07d6ZZs2bUrRt/0vdFbzTtW8OGDYGYueUAatWKmee1RIkSbN0ak33dsWMH586do02bNkDMh/HZokiVKlVi1qxZXL9+napVq8ZK6tStWxcrKysgZm2bZ2VeZ82aNXh6ehIeHk5QUBD58uWLU+avv/6ievXqhn2WlpZYWlry5MmTN3nZb3ydlwUEBHD27FlDhq5gwYIULVqUY8eOUbt2bQDD2j2lS5fm3r17hIaGGt6HN1GtWjUyZIhp1F1dXSlSpIjh9eXPn5/r16+TLVs2/v7771hJp8DAQC5fvvxG73FiBIVFYGdlEWubvbUFgfHMN3rXL4iztx8zu3MNCmXPyORtxxm+4gALutcxlJnW4T3CI6M4eOUuVx/4YWpikqTxSuoJCo2vrlgSGBp3Dv27vkGc9XnI7O71KZQjE5M3/sPwP3azoHfM56d6kdyMXrqX3/acJjIqmo9ql6JEnqzJGr+1nQ2BL4xEC/SPSVza2Nvg/8Q/VtksObKSr0g+/tq4j24VulKkbBHG/PoF1y/e4OalG8ka5zNBoWHY2cRuW+xtrAh8zVD7dQdO8aF7/Imqo5du8tA/kHplk296pvQat4ixS++fTRs7a0O7Dc/bcFt72zhteNacWclfJD97N+yjQ/lOFC1XlK9/HYv3xevceNqG71ztxc7VXryT7x3qta7L4wdPkv01SMqwtbMxjNYBDI9t7WzxfRx34ddnGrVx49jBE/jcuB1r++ZV29i8aht58uemUWs3Ht1/nCxx29jZvDAiLeF+Stan/ZR9G/fRpUIXipQtwpe/fsn1F+q4vFpQUAh2draxtmWwtyMwKDhO2aqVyjFv4VLGjRrMw8dPWLVuC8EhIQCULlGU+w8esWGrF/VqVWPDlp3cuHWbkNDQOOdR3IpbcYskLStba0L8n/99H/z0sZW9DUEv3HgKYGVnTaOh7ZnVZdwrz7d91lq2z1pLruL5KFm/fKxzJ6X09n0fFByMnV3spRwy2NnG36ZULMu8RcsZ99lAHj56wqr1Wwl+2maULlGE+w8fsWHbLurVrMqGrbu4ceuO2hRJ82xtbeMdPALQv3//WM/LlSvHnj174pTr3LkznTt3jrP9dd5o5M+zpISpqSmWlpbPDzY1JSIi5sf96Ohowzo1a9asYe3atXh5eQHw/vvvM2vWLDJnzsxXX33FpEmT4pwbwMzMzLDwabFixThx4kS88fzzzz8sWbKEefPm4enpyYABAwgLe/M5Q83NzWNlikNf0Uj82+sk5NnrNjMzAzC8j4k9/tk54nsfo6KiMDExYfny5Yb/L9u2baNr165J8Apis7U0j/PjfWBoBHaWcfOL1hZm1C6SixK5MmNlbkav6sU5fvMh/iGx31sLM1OqFcrJ/it38Tp/K8ljltRhaxVfXQmPkxCCp3WleF5K5MmKlYUZveqU4rj3ffxDwvANCsXjl218VKcUB8d2ZvPw1uy/eIs/959L0nhrNq/JsrPLWXZ2OV8s+JKQwGBsX1h/ytY+5o+i4IC4nZawkDDCw8L5Y+ofRIRHcOrgKU7uP0HZ6mWSNMaE2FpZEhgcu40LDAnDzsryFUfE/BD7wO/VP8R67j9FnTKu2Fq/+hz/VnqNW8TYpbfPZu3mtVhzbhVrzq3im9++IjgwxNBuw/M2PCgg7h/mz9rwRVMXExEewckDJzn+13HKVS8bp6zPNR+8L3jT95tPkvw1SMpo0KIeuy5uYtfFTUz5/TuCAoOxy2Bn2G//9HFQYMI/4ri3bsD6ZZteuf/G1ZtcvnCVYd8OemWZxKjZvCYrzq5gxdkVjF0wluDAYGwzxK3jCfVTlkxdYuinnNh/grLx1HGJy9bWmsCX6kNAYBB2tnHXKR058GOsrSxxb/8hfYd9iXu9mmR3irlhyTGjA1PHf86CP1ZSo3EH9h48TOXypQ37FbfiVtwiSadss6qMP/0r40//yke/Dic0KARr++f1+tnj0Hi+N90GtOafVXt4fPP+a69z6/Q1wkPCaDCwTZLEnd6/721tbAgMjB1bQNAr2pQBvWLalA4f0XfE17jXrRG7TRk3igV/rqZG084vtClZUuR1SPyijfQ/Y/FGI3/eRO3atRk2bBjt2rUjR44cREZGcvbsWUqUKMHVq1fJnz8/efPmxdbWltWrV7/2fB9//DGjR4+mRIkShhFH586d48GDB4SFhWFvb4+joyNhYWGsWLEi3nNUrVqVmTNncu3aNfLly0dYWBhhYWFkzZqV8PBwvL29cXZ2jrUG0Yv8/PxeeR17e3sCAgLiPc7e3p6iRYuyatUqWrVqxeXLlzl37hylS5d+7etOSvb29pQrV445c+bg4eEBxCwoZW5ujpOT02uOThznLBmIiIrG+6G/Yeq3C3ef4OIUd3qXQtkceXEgz+sG9URGRXHjcfzvtaQ/zlkdYurKAz+cs8ZMnXLh9iNcsjvGKVsoRyZMeF5BTF6oLDcf+WNqYkKTsi4AZM9oh9v/8rP3/C3avfv6OS/flNdqL7xWexmeD5k6lPxFC7B33V4A8hfLz+N7j+PcXQNw7dzVONuiU/j7wzl7JiKiovC++8gwTdOFm/dweefVf3Ct3X+SOmUKx/tDbEhYOFsPn+PHj1smW8yQfuMWMXbp7bO5Y/VOdqx+Ppf48GnDKFCsALvXxdxJ5VKsAI/uPYq3Db9yNp42PIFrmZmZkdNZa/6kV5tWbWXTqq2G51/NGE2hYi5s84ypP4WKFeThvYcJjvr5X4USOOXIwvZ1Xgley9zMjFzO7yRJ3C/3Uz6d+in5i+Znz9M6XiCBOn413n6K8fyhm9yc8+QmIjIS7xu3cM4TM43N+UtX4yxcDZDRIQMTvhhmeD559q+ULPY8IV6hzP/4c37M3aAREZE0aPsB73doFec8iltxK26Rf+fImn0ceWEqts5T+vJOUWeOrT8AwDtFnfG7/yTOqB+AwlVLkDFHZqp2qQ+AfWYHus4YwI7Za9kxO+50rqZmZmRxzp4kcaf373vnPLkS16Z8PtTwfPJPCyhZtLDheYUyJflzbsyggoiISBq0+5D32zVP3hcgko690cifN1GhQgUGDBjAxx9/TNOmTWncuDHbt8csBrhw4UIaNWpE8+bN+f333xkwYMBrz1e9enXGjh3L2LFjcXNzo1GjRkyaNIls2bLx3nvvkTdvXtzc3OjcuTPFihWL9xz58uXjq6++YuDAgTRt2pR27dpx69YtzM3N+eyzz/jggw9o3bq1YfTNyxK6jqurK/nz56dx48b069cvzrETJ05k7dq1NGnShCFDhvDdd9+ROXPKr1szceJELl++TJMmTWjSpAkDBw40TMeXlGwszalTNBezvE4RHBbB0esP8DrvQ6P/xW3Im5XOx45ztzh35zHhkVHM2X2GMnmyksHakqsP/Nh78TYh4RGER0ax/oQ3h70fUN45W5LHLKnDxtKCOsXzMmvrUYLDwjl67R5eZ27QqEyBOGWblS/IjtPXOefzKKau7DhOmXzZyGBtiXNWB6KJZsOxK0RFRfPAP5gtJ65RKGemZI1/x4od1G9XnzyF8mDnYEe7vu3ZtnxbvGVPHTzFfZ/7tPVoi6mZKUXLF6XkuyU5susIEJPMsrCywNzc7PljiyTLyQNgY2VJnTKFmeW5l+DQMI5euonXsYs0qlw83vIhYeFs/eccTd8tGe/+HccuksHOmgqueZM0zpel17hFjF16/2xuW7GNBu3cyFsoL3YOdnTs14Ety7bGW/bkwZPc87lPh0/aY2pmSrHyxSj17v84vOswAA3aN8AxS8xNLnkL5aWdRzuO7TuWIq9Dkt+GZZtp1qER+Qs5Y+9gT/f+XVm39NUjegAat2nAjvW7CHrpztZmHRuRKYsjAPkLOfN+384c2ns4WeLevmJ7rH5K+zfop7TzaGeo4/97oY4/76eYJ1s/JT2ztbGmbo0qTJ+3kKDgEI6cOM3OPftp4lYnTtnrN3144utHZGQke/YfYvnajfTq1sGw/+yFS4RHRBAQGMjE6XPJkc2JqpXKKW7FrbjFaERERBIaGkZkZBSRUVGEhoYRERGZ2mHxz8rdVGpXi+wFc2HtYEv9vi04tHxXvGVndvya79yGMtF9GBPdh+F79zHLRs5l72+bMTEx4d2OdbBxiBkpnLeUC9W61ufivlPJEnd6+763tbGmbvV3mT5/0dM25Qw79x6kiVutOGWv37r9vE058A/LPTfTq1s7w/6zFy4/bVOCmDhzPjmyZVWbIpIAk2jd3iUJCF40+o3L+gaHMmbtIQ5cuYujjRX96pTEvaQzR7zv47F4D/tHPL+rd+k/l5i75ywh4RGUyZOVke7lyJHRliv3/fh8zd9cebrOT94s9nxYrSi1i+RO4MpxBdT/NFHl5d+x3zMtUeV9g0IZs2IfBy7extHWin4NyuJeugBHrt7F49dt7P+yk6Hs0gPnmLvzBCFhkZTJl42RzSqTwzGmQ/X35dtM3niY6w/8sLIwo3rRPHzauCI28Uw3+CptBiR+AcbmHzan1cetsbK2Yt/GfcwYOZ2Ip+tbzdg2k2XTlxruyslbOC/9JvQjX9H83Lt1j4Xf/cb+zfsBKFm5JN8uHR/r3Cf3n2BEuxGvjWHZb29+t5xvYDBjFmzkwNlrONpZ069lTdwrFuPIxRt4TFvG/qnPp57Z+PcZpq7axYZxvWONtHrm4yl/UiJfTjyaVX/j67+ttBR3QPGkGa4vklbZn172xmXT0mezWZeliT6mVc+WtP24DZbWluzduI+pI6YRHhYzHemcbT/xx/Q/DKOFnAs7M/C7ARQomp+7N+/y6/cL2LfpLwAG/zCIirUqYGNnw5OHvuxZv4dfJy4gPJ417F626Mibv9+SNNxLNUr0MR0/aktXj45YWVuxc8Muvh32g6Gu/LlzAb9M/d0wWsjSypJNx1YxrOdoDu09Eus8n08aTpXalbG1s+HxwydsX+fF7O/mE/aatbIAnMzjX3A6IS0+bEHrF/op00ZOM/RTZm2bxZ/T/4zVT+k/oT/5n/ZTFny3IFY/ZcLSCbHOfWL/CYa3G/7aGBYc/jPRcacFjiavn8rnRb5+/oweN4n9h46QMaMDA3t/QKP6tTh87BS9h4zm0LZVAGzavpsJU37CPyAQ5zy5GNSne6wfqoaOGc+e/YcAqFqpPCMHfUyWTI5J9roUt+JO73E/iU7amUskYYltC9/EjPm/M+vnRbG2fdy9Ex49Er9+xat8Wn7kWx1Xo4c7dXo3xcLakuOb/mbZZ/OIfPq9OWzL92ydsTrWaKFnRu+dxp/DfuLCvlOYmJjQ89dh5C1VEHMLc3zvPubQ8l1sm7n6jWI4H5X4m7TTwvf9mn+mvHG8vn7+jP52Cvv/OUpGBwcG9u5Go3o1OXz8FL2HfsGhLcsB2LRjDxOmzn3aprzDoN7vx25TvviOPQf+AWLWHBs5oFei2xSLbIUSVV4S9r8c76Z2CMnixJ39qR1CklDyRxKUmORPWqLkT8pKbPInLXmb5E9akJjkj/x7Sv6IsUtM8icteZvkT1qg5E/Ke5vkT1rwNsmftOC/kvwRkZSh5E/KSq9t4dsmf9KCt0n+pAWJSf6kJUr+JK0S2SundgjJ4tTdA6kdQpJIsmnfREREREREREREREREJPUp+SMiIiIiIiIiIiIiImJElPwRERERERERERERERExIm++KrqIiIiIiIiIiIiIiAgQTXRqhyAJ0MgfERERERERERERERERI6Lkj4iIiIiIiIiIiIiIiBFR8kdERERERERERERERMSIaM0fERERERERERERERFJlKhorfmTlmnkj4iIiIiIiIiIiIiIiBFR8kdERERERERERERERMSIKPkjIiIiIiIiIiIiIiJiRJT8ERERERERERERERERMSLmqR2AiIiIiIiIiIiIiIikL9FEp3YIkgCN/BERERERERERERERETEiJtHR0UrPySs52BVI7RDeyuVrx1M7hP+Uoi7lUjuEt+ZzZkVqh/BWypT7MLVD+E/xOrUttUMQSVY1S9RN7RDeytGDM1I7hLfia+ea2iH852Tw2ZPaIbwVU8ccqR3CW/G1LZTaIbyVzyv0SO0Q3kpEOr3jNj3fiWqKSWqH8J8y9tD81A7hP2VchZ6pHcJb+e6fcakdwluLDnyS2iG8lUE1JqR2CG9l+rU/UzsEo1IkW4XUDiFZnLt3KLVDSBLpub8lIiIiIiIiIiIiIiIiL9GaPyIiIiIiIiIiIiIikihRmlQsTdPIHxERERERERERERERESOi5I+IiIiIiIiIiIiIiIgRUfJHRERERERERERERETEiGjNHxERERERERERERERSZRotOZPWqaRPyIiIiIiIiIiIiIiIkZEyR8REREREREREREREREjouSPiIiIiIiIiIiIiIiIEdGaPyIiIiIiIiIiIiIikihR0VrzJy3TyB8REREREREREREREREjouSPiIiIiIiIiIiIiIiIEdG0b5LkPD7pzoBBvbCxsWbN6k0M7D+asLCweMt27daWQYN7ky27Ewf2/0Of3sO4c+derDIWFhb8dWA99hnsKFq4akq8BEkFvT3ep++Antja2LB2zSaGDhxDWFh4vGU7d21Dv0EfkS1bVg4eOEz/PiPj1Jvk4Ovnz+cTZ7H/8HEcHTLQ/8NONKrzXpxyfgGBTJj+M3sPHQWgXVM3+nRrZ9jv1vFjHj72xdQ0Jv9eunhh5nz3ebLH37VXe3p80hVrG2u2rNvB2E8nEB7Pe9yolRtffD/c8NzExBQbW2va1OvGmRPnsLC0YMTXg6jjXhMLczOOHjrBl0MncO/OfcUt8h+SHj+bvn4BfD5pLvsPn8Qxoz39P2hHo9px+xZ+AYFMmLWQvYeOA9CuSV36dGkVp9yhE2fpPvRrenZoRr/32yZ5vJI6fAMCGTPrT/afOE+mDHb069gI92rl4pQLC49gwi8r2XHoJBERUZR2zceoj9qQPbOjoczGfUf4aflmbj94QlbHDHzVpwNli7okT9x+AXz+409P63cG+ndv/+r6PXPBC/W7Hn26to5T7tCJM3Qf8hU9OzSn3wft4uyXGLV7NKJ+72ZYWltydONBloyaS0RYRILHuPdrRZNB7ZjS6SvO7TsJwOgtP5A5l5OhjIWVBae9jjHrwwnJFnvdHo1o0Ls5ltaWHN54gEVvEHvjfq1pNqgdP3Yay9mnsdtmtKfzNz0pWrUk0dHRnNl9nN9HzSUkIDhZ4q7ToxFuT+M+svEAi98g7kb9WtN0UDsmdRpreM/HbPkxnvf8KDOS6T1Pr3UlvcYtKa9GD3dq926KpbUlxzceZNmo+US+pq7U79eShoPaMqvT11zYdwqAJsM7UqZpVWwy2BDkG8j+xdvZNnN1CryCuBYvX8vqDdu4eOUq7nVr8s2owakSx4vS+/d9rR7u1OvdDAtrS45tPMifo+a9tk1p0K8VjQe1ZVqnrzn/tE3pPPFjyjetRmT482OHlHyf6ChNQSbyIo38+Re2bdtGw4YNad68Oa6urgQGBibJeV1dXWnSpAlNmzalSZMmbN++/Y2OmzZt2iuTLCmlTt33GDi4N00adaZE0ffIly8PI0cNiLdstfcqMebLIbRv1wvn3GW5du0mP/86JU65/gN68uDBo2SOXFJTrTrV6DfwI1o26UbpEjXJly8Pw0b2j7ds1WoV+WzMILq0/5hCzhW5fu0mc37+MUXi/GbqPCwszPFaPo/xI/vz9ZS5XLp2I06572b+SnBoKJsWzWLxjPF4bt3Nqk07YpWZ9vVw/l7/O3+v/z1FEj9Va1aiR99udG/tQb1yzcid9x0++bRnvGXXr9hMhQK1DP++Hv4d16/d5MyJcwB06dmO0uVL0rJWJ2qWaozvE39GjkueTnB6jVvE2KXXz+Y3M37FwtwMrz9nMn6YB19P+4VL127GKffd7N9j2vHfJrN46lg8t+9l1eZdscqER0QwYdZv/K9I8vyQL6ln3LwVWJibsXPuWMb168w3c5dz6cbtOOUWbdjFiYveLP/+U7b99AUO9raM/3mlYf/+E+eZsmgdYz/uwP4F3/Lzl5+QK3uWZIv7m+k/x/RTls5m/HAPvp46P/5+yuyFBIeGsWnhVBZP+xrP7XtYtdkrVpnwiAgmzPyN/xUpmGzxGoOi1Uvh1rsZUzqOZVRVD7LmzUbjgQkngrPmzU5Z93d5cjf23zdf1R/MwOJdDf8e337IkQ37ky324tVL0bB3c37s+CXDq/bBKW92mg5M+Ec/p7zZKRdP7M2HtMfWwY4R73nwWY2+ZMiakaYDkichXqx6KRr0bs6kjl8ysmofsubNTpPXxJ31FXF/WX8Q/Yt3Mfx7fPshh5PpPU+vdSW9xi0pz7X6/6jTuymzOn7N2Kp9yZI3Ow0HtknwmCx5s1PKvTK+L9WVA0t3Mr7OIEaU7M7UVp9TrnlVSrpVSM7wX8kpaxZ6vd+eFo3qp8r145Oev++LVi9Fvd7NmNrxKz6v+glZ82bD/TX1JKZNiVtPALb9tJbBxbsZ/inxkzqijfQ/Y6Hkz7/wxx9/0K9fP1avXp0s5167di1DhgxhyJAhREQknAUHmD59OuHh8Y+USCkdO7XitwVLOXf2Ik+e+PHdhOl06hz3TlmABg1rs3rlRs6dvUh4eDjfjZ9GtfcqkT9/XkMZZ+fctGvfnB9/mJVSL0FSQfuOLVj023LOn7uE7xM/Jn43k/adWsRbtn6DWqxdvYnz5y4RHh7OD9/NpEq1iuTLnydZYwwKDmHrnoN88n57bG1sKFuyKDX/z95dx0WV7nEc/wDSpe4qNtbaratiry2KhYrtqmusgd256trda68dCCL2Wqhr69piYmArSkvfP5ARJPUCZw7+3vfl6zJzzgxfzj5zzpknbSrg9o97nH3dz1ykm0NzjI0MyZktKy0b1WbX/qPxvGvaaebQGOfNu3lwxxNfHz+Wz1tDc4cmyX7t7u37NI9z5snBv8fO8u6NNyHBIRxwPUzBwvkltxDfETV+NgM/fuSfU+fp16U1JsZGlCtRmFo25XA7cirOvu7nLtOtdZNP5/EstGxQi11fNP78vXMfVcqXJG/uHCmeVSgn8GMwh89do69DI0yMDClXJD81KxRnz4mLcfZ99tqbKqUL80NGcwwN9GlQpQwPnr7UbF+2/QA9W9WnVKG86OrqYpU5Y6xRQSmaOyi6fLf5VL6LUMumfPzl++wlurWx+1y+G/7Cri8qg/522ivlOxls7GtyevsxXtzzItA3gH0Ld1K5Va1EX9N2cndcpm+K1VP5Sz9VKopZJnP+238uhRN/ZmNfi1Pbj/L8U/Y9C52okkT29pN/Y+f0jYR9kf3H3Fm5cug8H/2DCPIL5L+D58lRKFeq5f53+9EYx9wJm2Tkdo4nd0w/VSqGWSZzLqfSMVdrWVFrbpH2fravydntx3l5z4sg3wAOLXTm51Y1E32N/eSu7Jm+mfDQ8FjPv3n4gpCgYM3jiIhIsuTNliq5k1KvVlXq1KhCRksLRX7/l9R+va9kX4Mz249pysn+hc5JnlPaTO7GrumbEj2HCyESJo0/32jq1KlcunSJ2bNn06lTp1jbrl27hoODA3Z2djg4OHDt2jUA5syZw6pVqwDYt28fRYoU4d27dwD06NGDU6finqwrVapEYGAgvr6+AKxZswZ7e3uaN2+Og4MDt2/fBuCPP/4AoG3btjRr1gxfX1/8/f0ZM2YMrVq1ws7OjilTphAeHh7nd6SkIkV/4sb125rH16/fxsoqC5kT+KKro6MT5+eixQppnps1ZyJ/TJxNUNDH1AkstELhIj9x84aH5vHN6x5YWWUhU4LlJu6DokULxbtvSnns9ZwMerqxbooKF7DmQTw9bIBYvQQigXtf7Ddy6gJqtOxGz+GTuPPgUWpEjqVg4fzcuXlP8/jOzXv8mPUHLDMlfhObPVc2ylcuw+4dnytqnTfvpmzFUmSx+hEjY0Oa2Dfg1NHU6bWn1txCpHdq/Gw+9npJBj098ubKrnmucD5rHjyOO/IHIDIy5s+R3Hv8+Tz+/NUbdh10p3eHlimeUyjr8Ys3Udf7HFk1zxW2zhmrUSdai9qVuHLHk9fePgQFh7Dv5GWqlS0KQHhEBDcfPOW9rz9N+v9Jvd4Tmbp6Jx9TaZT+42cv4pbv/NY8iGdkG0SV6Zg/34uxX1T5Pk7vBDpwic+yF8qF1+1Hmsdetx9jmSUjphnN4t2/nG1lwkJCuXn8v0Tft7J9Lf47cC5W5WdKy1EoF09vP9Y8Tip7+U/Zb8ST/fj6A5SqUx4TC1NMLEwp36gy15P4G79V1DH/nPtpMo55aAK5Y7Kxr8nlVDzmai0ras0t0l62Qrl4HuOz+fz2YyyyZMQkgbJS2rYSYSFh3D5+Jd7tdX5vyvSb65h4bhmGJoZccv03NWKrjtqv99kK5eZZjHLy7FM5SeicUvbTOeVWAuWkeqf6zLiymuFu0yjTsGJqRBZC9aTx5xuNHj2aEiVKMHbsWDZs2KB5PiQkBEdHRwYOHIibmxsDBgzA0dGRkJAQbGxsOHMmqjLj7NmzlClThrNnzxIaGsq1a9coXz7uXOL//PMPlStXJnPmzAA0b96cnTt3smvXLgYMGMCECRMANP+/detWXF1dsbCwYNq0afz88884OTnh6uqKt7c3O3fuTNXjYmZqgq+vn+axr0/Uz2ZmpnH2PfzPCVq0tKV4iSIYGRkyYlR/IiIiMDExBqCJXX309HTZ43YoVTML5ZmafVFufBMuN0cOn6RZC1uKFS+MkZEhw0b0JSIiAmMTo1TNGBj0EVMTk1jPmZmaEBAUdy7zqj+XYfUWFwICg3jy7AUu+4/yMfjzF5vpowdwcPNSDm5eRsUyJeg1Ygq+/ikzbWRCjE2N8ff11zyO/tk0nmMcU7PWtlw6e4VnTz5Pd/P44VNePH/N8Wt7OXf/KPl/ysuyOasltxDfETV+NqPO48axnjMzNSYgng4mVSuUZvX23Z/O4y9xOeTOx+DPlfbTlq6nX+dWmBin7rVHpL2gj8GYfvHf1czEiMCPcSso82TPgtUPmajXeyJVu4zi4bNX9GoVNS3Muw9+hIWHc/jsVdZO6sf2mUO588iLlTv/SZXcgUHBCZTveO5TKpRm9bYY5fvg8Vj3KdOW/q3pUSwSZ2hiRJBfoOZx9M+GZsZx9zU1otmwdmz/Y12i76lvZEDZRpU443Q8JaPGzZNAdqMEsrcY1p6tf6yN970e3/BETzZCO1MAALLsSURBVD8D866sYd6VNUSER3B8Q+p8hzP6ytzNh7VnewK5o+kbGVCuUWXOOB1L2bAxs6i0rKg1t0h7hiZGfPyKstJ4WFtc/vg7wfc7smw3I4v/yuzGI7nocjLWe3/P1H69NzQx/Kpzit2wtjglUE6Orz3ApFoDGFW+B3vmbKPj7D7kL184dYILoWIZlA6Q3nh6eqKvr4+NjQ0AVapUQV9fH09PT8qVK8egQYMICQnh8uXLDB8+nIMHD2JlZcVPP/2EsfHnk13btm0JCAjg7du3/P335xPdjRs3+Ouvv/Dx8UFHR4dHjx4lmOXo0aNcu3aNtWujbnY/fvyIlZVViv69bRyaMX/hFADOnL6Af0Ag5uafW+wtLKJ+9o+nYvv4sX+Z+ucCNm5airmFGUuXrMXPL4Bnz15iYmLM5CkjadWyW4rmFdqhVRs7Zs+fBMDZM5cI8I9dbswTKTcnjp9mxtSFrNu4CDNzM/5a+jf+fgE8f/YqVTObGBsREBj7hjMgIAhT47g3KaP6dWPq4tU07tyfjBZmNKpdjf1HP4/sK1uiiObn39q3xPXQcS5fu02tKhVSLG/MBdYvnb1CUEAQpuafK2Wjfw5IotGpaRtbVixYF+u5sdOHYWCgT5XC9QgMDKJ7304s3zKPdo26f7e5hUjv0sNnM+o8HvuLcUBgUJyKfoBRv3dm6tK/adxtCBnNzWhUy4b9x6M68Bw/e5nAoI80rGWTovmEdjA2MozTIOgf9BETI8M4+05dtZOQ0DBOrJmCsaEha12P0mfqCjZNHYSRgT4A7RpWJ0smSwA6Na7FCud/6N+ucYrnNjE2TKB8x3Of0udXpi5ZR+Oug6LuU2pVYf/x0wAcP3OJwMAgKd8J+LlZNdpP7QnAgwu3CQ78iJHZ585Bxp8qr4L941bCNRnYmnMuJ/D2epPo7yjbsBKBPv7cO3srBZNDpWbV6Di1FwD3PmU3jlHZFt148jGe7E0HtuGsywneJZC915LBeHk8ZkmPmejo6NB6TCd+m9efv/rN+79zV2xWjQ6fct+/cJuPgR9jNfQYJ5LbbmAbziWSO1q5hpUI8PHnbgoec7WWFbXmFmmvXLOqtJkatd7jwwsen8pK3HNKfGWlwcBWXHQ5yfskygrAs5uPKFKjFA0HtcZ1yoYk90/v1Ha9r9CsGu0+lZP7F24THBgc7zk8vnJiO7A1511OJnhO8brpqfn51vErXHQ9RemGFXl46U5K/glCqJ40/qQhIyMjChUqxN69e8mSJQuVK1dmxowZZMuWjcqVK8fad+vWrZiamrJ69WoGDx7MgQMH0NHRYcCAAWzcuJHixYvz6tUratSokeDvi4yMZOnSpeTOnXproWzf5sr2ba6ax6vXzqdEyaK4OEdN51KiZFFevXqDt/eHeF+/csUGVq6IuoAXLJiPYcP7cvvWHQoUzEse65wc+GcbAAb6+lhYmnPv4Tnq1GrJkyfPUu1vEqnPabsbTtvdNI//Wj2H4iWK4OqyH4ASJYrw6tUb3idQbtas3MSalZsAKFAwL4OH/c7t23dTNbN1rhyEhUfw2OsF1p+GWN95+IgCeeN+viwtzJkxeqDm8YJVmyiZyAKKOjo6Kb6Y3N6dB9m786Dm8cxlkyhc/CcO7j4CQJHiP/H29Tt83vsm+B5lfy5Flmw/csgt9npFRUoUYsG05fh8iHrtptXb6T+yFxkzW/LB2+e7zC1EepcePpvWubIRFh7O42cvsc4ZNW/8nYdPKGAdd10KSwszZozsq3m8YM02ShYuAMC5/25y895DarXtA4B/QCC6urrc83zKoj+GpFheoQzr7Fmirvcv3mCdPQsAdx8/p0DuuGsN3Hn8jP5tbbH8NOKtXaPqLN2+n/e+/mSyMMPqh4yxpjiOPW9tCufOmf1T+X6Bdc7o+5QnFMibQPke1U/zeMGarZ/L95Ub3LznSS2H3kCM8v3oKYv+GJpq+dXiguspLrh+7tDTbYEjuYpac3lvVONwrqLW+Lz5QMAH/zivLVy1JJmyZaZGpwYAmGe24Lclgzi03JVDyz9/n6psX5OzO0+kePZzrqc4FyP7bwsGkKtoXi5+yp67aN4EsxetWpKM2TJTK0b2XksGc2D5Lg4sdyV3sbxsHr9KM4WX+6Z/GL5jcorkPu96ivMxcnf/lPuS5pgnnLvIp2NeM0bunksGc3D5Lg7GOua1UvyYq7WsqDW3SHuXXf/lcoyp2Dou6E+OotZc2XsWgBxFrfF984HAeMpKoaolsMyWmaqdokbLmmW2oPOSgRxdvpujy3fH2V9XT48frFO2I7Naqe16f9H1FBdjnFN+XdCfXEWt+e9TOcn5qZzEf04pQcZsmakRo5x0WzKQf5a7cjiechIZGZmat1oiEZGREUpHEImQad9SWL58+QgNDeXs2agT2ZkzZwgLCyNfvnwA2NjYsGjRImxsbDAwMCBbtmy4uLhoRgp9qVu3bvzwww9s2bKFkJAQwsLCyJ496gS/efPmWPuampri7//5hFm7dm1WrFihWefH29ubp0/jX58kpWzZ7EznLm0oXKQglpbmDBvRl00b459qztDQQLO+T65cOViw6E+WLV3Hhw++3Lp5l6KFq1LVpjFVbRrTr+8oXr9+S1Wbxnh5vYj3/YR6bduyiw6dW1GocAEsLM0ZPOx3tm5yiXdfQ0MDihT9CYCcubIzd8FkVixbr6k0TC0mxkbUrVaRJeu2Ehj0kf9ueHDs9EXs6sVdxPLp85d88PEjPDyck+cu47T3MD07tgLgxas3/HfDg9DQUIJDQli7zZUPPn6ULV4kzvukpN3b92HfvikFCuXD3MKMXoO6sWvbnkRf08yhMf/sOUZgQOwRTzf+u02z1raYmZuSIYMebbva8+rF61RpQFFrbiHSOzV+Nk2MjKhb9WeWrHci8ONH/rt5h2NnLmFXp1qcfZ8+f8UHXz/CwyM4eeEKTvuP0rNdcwD6dWnFntVzcFo6FaelU6lVuRz2jX5hypBeKZpXKMPEyJA6lUqxdNt+Aj8G85/HQ45fuEGTGnFH5xYvkAc394v4BQYRGhbO9oOnyJLJkkyfRjA3q1WRLQdO8s7HD1//QDbuPU6NcsVSJ7exEXWrVmTJ3zui7lNu3om6T0mqfJ+/gtO+I/Rs3wKAfl3asGfNXJyWTcdp2XRq2ZTHvlFtpgzpnSq51e6ssztVHGqTrWBOjC1MaNTfnrMJTGW1oP0kJjcYwlTbYUy1HcaHV95sHr0C9/UHNPtkzJaZQjbFObvTPdWzn3F2p5pDbbIXzIWxhQmN+9tzOoHsc9r/wcQGQ5hkO4xJn7JvGP0Xx9ZHdQp4dO0+1R3qoG9ogL6hAdXb1cXL43G87/X/OuvsTtUYuW372yc4fdi89n/wR4MhTLEdxpRPuTeO/ovj6z93ZsiYLTOFbYpzZmf875GSudVYVtSaW6S9i84nqOTwC1YFc2JkYUL9/i244BT/f+el7acws8EwZtuOYLbtCHxevWfH6JWcWn8QHR0dbNrXwdgiqmNFntIFqNa5Pvf+vZGWf45GWFg4wcEhhIdHEB4RQXBwCGFhqbuWdmLUfr0/53wCmxjnlAb9WyZ4TlnUfjJ/NhjKNNvhTLMdjs8rb7aOXsmJT+fwMo0qYWBiiI6ODkWql+Ln5tW5fvhSquYXQo1k5E8KMzAwYOHChfz5558EBgZiYmLCggULMDAwAKIafxYsWKAZ6VO5cmUuX75MqVKl4n0/HR0dRowYwaBBg2jbti2Ojo60atWKjBkz0qBBg1j7duvWjc6dO2NkZMSGDRsYPXo0s2bNolmzZujo6KCvr8/o0aNTdSTQ4X9OMH/eCvbu34yRkSG7XQ8ydcp8zfZzFw4wZ/Yytm9zxcjIkNVr55MvXx78/QPYuMGJKZPmAhAeHs7rV281r3v//gMRERGxnhPpx9HDJ1k8fxW79m7A2MgIt90HmTF1gWb7qXN7mT9nOU7b3TA0MuSv1XPI+6ncbNnozLQYZSw1jR3Qg3GzllKrVXcsLcwZO6AHBfPm5tK1W/w+airn924E4Obdh8xcuhY//wCsc+Vg+ugBFPw0Qigg6COT56/A68UrDPT1KVIwL8umjSajpXmqZj917CxrFm9gjfNSjIwM+WfPMRbPXKnZ7uq+hRUL12l69hsYGtCgaR0Gdh8Z571m/bGA0X8OYd9ZJ/T19bnv8ZABXUdIbiG+I2r9bI7t15Vxc1dQq00fLC3MGNu/KwXz5uLSdQ9+HzuT865rALh5z5OZyzfgFxCIdc5sTB/Rl4KfelSamhjHmmvd0NAAYyNDLC3iX6hWqM+Y3+yZsHQrv/QYT0YzE8b0aEXB3Nm5fPsBfaau4OyGGQAM6dSUGWudsXOcSlhYGAVyZ2fesK6a9+lpX58PfgE0GzAVA3196tuUoUfLeqmWe2z/boyb8xe12vSOKt+O3aPuU6578PuY6ZzfvQ6Am/ceMnPZ+k/lOzvTR/bT3KfEKd8GUr4Tc8v9Kv8sd2XQlgnoGxnw34Fz7Jm3XbN93KE5HFjiwgXXU3F6NUdGRBDoE0Bw4Of1Fyq1rIHn5bu8fZK60xkD3HS/wsHlrgz9lP3ygXPsnrdNs/2PQ3PZt8SZc/Fkj9Bkj5oi8e9hy2g7sSszzy5HR0cHz6v3WTtkcarlPrTclcExjrlbjNwTDs1l/xJnzicjN0DlljV4mAbHXK1lRa25RdrzcL/K0eW76btlHPpGBlw9cJ7983Zoto84NIt/luzisuu/cUYDRUZEEOQTQEhgMDo6OpRs8DONh7cjg34GfF695+S6g5xcd+DLX5km/vp7C8vWbNI83nPwKL9360Df7h0VyQPqvt7fdr/K4eW7cdwyXlNO9sUoJ2MOzebgkl1cTOQcHvLpnFKrayM6zOgNOvDO6w1bRq2Q6SSFiIdOZGRkys41JNIVC9P8Skf4Jg8eXVU6wnelaIHySkf4Zs9vxT8yTduVLf+b0hG+K8dvHFY6ghCpqlaJukpH+Cb/nVuidIRv4mMqi9GmNfPnJ5WO8E10M8adbk4NfEx+UjrCNxn/szrXAQxL4emD04qapyHRReYWSkuTLqxWOsJ3ZerPPZSO8E1mXpyqdIRvFhnwQekI32RwzRlKR/gmix9tS3onkWz5fiitdIRU4fkufdQty8gfIYQQQgghhBBCCCGEEEJ8lQiVdkL5Xqi5s40QQgghhBBCCCGEEEIIIYT4gjT+CCGEEEIIIYQQQgghhBBCpCPS+COEEEIIIYQQQgghhBBCCJGOyJo/QgghhBBCCCGEEEIIIYT4KpGRsuaPNpORP0IIIYQQQgghhBBCCCGEEOmINP4IIYQQQgghhBBCCCGEEEKkI9L4I4QQQgghhBBCCCGEEEIIkY7Imj9CCCGEEEIIIYQQQgghhPgqEciaP9pMRv4IIYQQQgghhBBCCCGEEEKkI9L4I4QQQgghhBBCCCGEEEIIkY5I448QQgghhBBCCCGEEEIIIUQ6Io0/QgghhBBCCCGEEEIIIYQQ6UgGpQMIIYQQQgghhBBCCCGEEEJdIiMjlY4gEiGNPyJRgaHBSkcQKvDhY4DSEb6ZjpGp0hG+yWO/10pHEEKkI2o9p+iYZVY6wreR70dpTi9bAaUjfBs9faUTfBuVlnGPsPdKR/gm4ZERSkf4Jro6OkpH+GY6qDe7EEm5E+GrdIRvEhnwQekI30zHNKPSEb7JbZVeN4X4nsi0b0IIIYQQQgghhBBCCCGEEOmINP4IIYQQQgghhBBCCCGEEEKkIzLtmxBCCCGEEEIIIYQQQgghvkqErPmj1WTkjxBCCCGEEEIIIYQQQgghRDoijT9CCCGEEEIIIYQQQgghhBDpiDT+CCGEEEIIIYQQQgghhBBCpCOy5o8QQgghhBBCCCGEEEIIIb5KJLLmjzaTkT9CCCGEEEIIIYQQQgghhBDpiDT+CCGEEEIIIYQQQgghhBBCpCPS+COEEEIIIYQQQgghhBBCCJGOyJo/QgghhBBCCCGEEEIIIYT4KpGRsuaPNpORP0IIIYQQQgghhBBCCCGEEOmINP4IIYQQQgghhBBCCCGEEEKkI9L4kw4cOXKEGTNmAODl5cW2bdsUTpS04sULs2/PJl4+v05YyDOl4wiFDHDsgdeT//B+68HKFXMwMDBIcN9uXdvhcesUH7zvstdtI9mzW2m2WVpasGb1fJ57XeW511XGjxucFvHjtdlpN226OVK2lh1jpsxRLEd8+vbrxgPP8zx/eY2ly2ckery7/OrA1evHePn6Bi6u68iWPWucffT19bl0+R/u3DudmrFVm1uI9C69fja1+Twu0oaPrx+OY6byc/3W1Gvdnb3/uMe7n6+fP6P/nEeNpp2o0bQTS9ZsjrXd495DOvcbSeVGbalj35Xlf29Ni/iJkvKd8lr91pKdl7ex5/Yuhs8egr6BfoL7GhoZMvDP/uy65oTbrV3Md4r93+CnEgWZ7zSHfXd2s/O/7dh3b5Gq2Vv3sMflvx3s99jNiDlDk8w+aKoju687s++2K4t2ztNsm7lhGgfu7tH8O+J5gHWHV6Za7la/2eN8eTt7b7syfHbSuQf+6YjrtZ3sueXKAqe5sbb/VKIgC5zmsv+OG87/7UjVY67WsqLW3CLtNe/enI0XN+J004mBswaSwSDhlSYMjQzpM6UPW65sYceNHczcMVOzrZRNKaZtncaOGztY++/aVMvr4+vPgIlzqGj3K/U79mfv0X/j3c/XP4AxM5dSs3UvarbuxdL1TvHud+HaLUrWb8fCtcrXyWnz9d7+t5bsuLyV3bddGDp7cJLnFMc/++N8bQeut1yYF+Oc0nlwJw567mPPHVfNv+x5sqXFnyCEqkjjj5YJDw//6tfUqVOHESNGAPDs2TNVNP6Ehoaxw8mNHr2GKB1FKKR+vZoMH9aX+g0dyF+wEvnz5WHihPjLQ80aNkyZPJKWrbqRxao4no+esmnDEs32ObMnYmJiTIGfKmFTtTEd2tvTpXObtPpTYsny4w/0+rUtLRrXV+T3J6RO3RoMGfI7TWw7UKxINfLlzcOYsQPj3bd69UpMnDiUtm16kjtnWR4/esq6dQvj7DdwUE/evvWW3EJ8h9LzZ1Nbz+Mi7UyZtxz9DBlw37WeGeOGMHnuMu57Pomz38zFq/kYHMzB7avY8tds3A4dx2XfYc324ZPmUL50cf7ds4m1C6ey1WU/x06dS8s/JQ4p3ynr55oVaNe3LUPaDqdt5Y5kt87Or0M6J7j/kJkDMc9oTpda3WlWoiVL/1iu2WaRyYIZG6eyZ9NempW0p2O1Llxwv5Sq2Tv0bccgh6G0rtSeHHmy021IlwT3HzZzMBYZLehUsytNirdg0cSlmm3DO42iYaEmmn83Lt7k2J4TqZa7fd+2DG47DIfKHchhnZ2uieQeOnMQFhnN6VyrG01LtGDJH8s02ywzWTBz4zTcNu2hacmWdKjWOdWOuVrLilpzi7RXrkY5Wvdpzej2o/m1yq9ky5ONjoM7Jrh//+n9Mc9oTq/avXAo5cCKSSs02z4GfuSf7f+weurqVM385+I16Otn4Pj25Uwf2ZcpC1dz/9HTOPvNXL6BoOAQDmxYyOZFU3A7chKXg8dj7RMaFsaMpespVaRgqmZOLm293leoWZ52fR0Y2nYE7St3Irt1droM6ZTg/oNnDsQiozlda/1GixL2sc4pAMfd3GlSuJnm34snL1P7TxBCdaTxJwUVLlyYhQsX0qxZMxo0aMDBgwc1206cOEHz5s2xs7OjS5cuPH78GIBz585hZ2fHqFGjaNasGSdOnODatWs4ODhgZ2eHg4MD165dA+Ddu3f8+uuv2NnZYWdnx9SpUwFwdnbG0dERgEmTJvHgwQOaNWuGo6Mj+/fvp2fPnpocISEhVKtWjefPn6fVYYnX3bsPWLtuK7du3VU0h1BOp06tNWXgwwcf/py6gM6d4m+waWxbF6ede7h16y6hoaH8OXU+NWrYkD+/NQBNGtdj9uylBAV95PFjL9au20rXX9um5Z+jUa9WVerUqEJGSwtFfn9COnRoyd/rt3H79j0+fPBlxvRFdOzUKt59Gzaqg4vLfm7fvkdoaCjTpy+iWvVK5MuXR7OPtXUu2rZtzuzZS+N9j+89txDpXXr+bGrreVykjcCgj/zjfob+v3XAxMSYcqWKUatqRdwOHouz7/HT5+nazh5jI0NyZreiZeO6sRp/nr98RZN6NdHT0yNPzuyUK1WU+4/iNiKlJSnfKatB63rs33qAR3cf4+/jz4b5m2jYOv6KttwFclOlng1zRszHx9uHiIgI7l6/p9nepmcrLrhf4rDLUUJDQgkKCOLJ/dQrLw1b12fv1v2a7H8v2EjDNg3i3TdPgdxUrW/DrOFz480eU7ZcVpSqVJKDTodSJXeD1vXZFyP3+vkbEzzmeT4d89kj5sWbu3XPVlxwv5gmx1ytZUWtuUXaq9uqLoe2HeLJ3Sf4+/izZeEW6raqG+++uQrkonK9yiwcuRBfb18iIiK4f/2+Zvvdq3c56nyUl6lYkR8Y9JF/Tp2nX5c2mBgbUa5EEWrZlMftyKk4+7qfvUS3NnZR1/tsWWjZ8Bd2fdH487fTXqqUL0ne3DlSLfPX0Nbrff1P55THn84pG+dvokEi5xSbepWZG+Occi+Ba49QVgSR6fJfeiGNPylMV1cXV1dXli1bxvjx43n37h3v3r1j+PDhzJ49Gzc3N5o0acLQoUM1r7l//z5t2rTB1dWVqlWr4ujoyMCBA3Fzc2PAgAE4OjoSEhKCm5sbefLkwc3NDTc3N/r27Rvn948fP54CBQrg6urKwoULqVevHvfu3ePp06jeC/v27aN06dLkyKEdFyTx/SpWrDBXr93SPL567SbZsmUlc+ZM8e6vo6MT5+fixQsnuD3mNgFFixbixrXbmsfXr9/GyioLmTNnjHf/GIdTc2yLxTims+dOZOLEWXwM+pgqeaOpNbcQ6Z18NkV69fjpMzLo6ZI3d07Nc4UL5Eu40SYyMtaP9x8+1jzu2Lopuw8cIzQsDM8nXly9eYfK5cukVnShgLyFrHlw64Hm8f1bD8icNTMWGc3j7Fu0TGFePXvNr0M6s+uaE6sPr6CGbbXP28sVwe+DH4t2zcf5ynb+XDuJrDmypFr2fIXzxsr+4OYDfsiaGYtMcSsKi5YtwiuvV3Qb2oXd151Zd3glNW2rx/u+DVrV59q567z0epUquaOO+cPPuTXHPG7uImWK8OrZa7oO6YLrtZ2sObySGjFyFytXFN8PfizetQCXKzuYunYyWXPEnZY05XKrr6yoNbdIe3kK5cHztqfmsectTzJnzYx5PGWlUJlCvH72mo6DO7LlyhaWHlpK1UZV0zIuj5+9IIOeHnlzZdc8Vzi/NQ8eecW7f2Ss630k92Ls9/zVG3YdPE7vjvapFzidiHsOf5jgOaXIp3NKlyGdcb62g5WH/6J6jHMKQOW6lXG54cTqIyuw69Qk1fMLoUbS+JPCWrduDUD+/PkpVqwYV65c4erVqxQpUoSCBaOGf9rb23P79m38/f0BsLa2pmzZsgB4enqir6+PjY0NAFWqVEFfXx9PT09Kly7NiRMnmDFjBseOHcPExCTJPBkyZMDBwYGtW6PmGN+8eTMdOnRI8b9biK9lZmqCr4+v5rGPjx8A5uamcfY9eOg4rVvZUbJkUYyMjBg7ZhARERGYmBh/2n6M4cP7YmZmSoECefm1i4Nmm4hiamaCj6+f5nH08TYzi3u8//nHnZYtG1O8RBGMjAwZNcox6ngbGwFg17Q+enp6uO1OnR6d6SG3EOmdfDZFehUY9BFT09j32OZmJgQEBsXZt2rFcqza5ERAYCBPvJ7jsu8wQcHBmu01bX7mkPu/VKjXCruOfWjRuB4li/6U6n+DSDtGJsb4+wVoHgd8+tnYLO73tCzZs5C/SD4C/AJoVb4tC8cuZuS84eQpmEezvUGreiyesBSHSh14+fQl45aMSbXsxibG+Pt+zh79d5iYxr2HzpI9C/mL5ifAN4CW5dowb+wiRs0fgXXBPHH2bdCqHvt3pN753NjEWHOcY+U2iy/3j5pjbl/egQVjFzHqi2PesFV9Fk1YikOl9rx4+pJxS0anSm61lhW15hZpz9jUmADf+MpK3M/mj9l+JG+RvAT6BdLp504sHbeUwXMHk7tg7jTLGxgUjOkXdQZmpsYEBMVzva9QmtXbdhMQGMSTZy9xOXicjzGu99OW/q0ZQSQS9+U5PPFzyudzeJvy7Vg0djEj5g0jz6dy4u7mTrdfumNfqg1zhs+n08AO/NKsVpr8HUKoiTT+aIHkNOIAlC1bFhcXF0qUKIGrqyudOyc8125Mbdq0Yc+ePVy6dAlfX19Nw1JaateuBR+87/LB+y57dm9I898vlPdlGfAPCMTc4nPvDotPP/vFuBGIduToSf6YNJvtW1fy4N5ZHj9+ip+fP8+8XgAwcNB4goI+4nHrFM4717Btuyten7Z9r9o4NOPl6xu8fH0D511rCfAPxMI85vE2A8DfP+7xPn7sX/78cz6bNi/l1u1TPH7sFXW8n73ExMSYyVNGMmzIH5JbiO+IfDbF98LE2IiAgMBYz/kHBMapIAIYPaAnRoaG2LbvTf/Rf2JbpwZWWX4EwMfXj97DJtK7S1su/bOTw05rOH3+Mltd9qXJ3yFSR90Wtdl3Zzf77uxm+oY/+RgYhGmMCqvon4P8A+O8NvhjMKEhoWxYsImw0DCunr3Gf6ev8HPN8gCEfAzm5IF/uXP1LqHBofw9dwMlfi6OqXnyvismpV6LOhy4u4cDd/cwc8M0ggKDYr236acOWIEBcSs+o7OvX7Dxi+wVYu1X8ucSZM6aGfc97imSGaKO+f47buy/48aMDVMJCgzCJNYx/5TbP77cIZ+O+Ze5y2v+rpMHTnHn6h1CPh3zkj+X0ByL/ze3GsuKWnOLtFereS123t7Jzts7mfT3JIICgjCJ8d/SRFNW4n42Qz59Nrcs3EJYaBg3zt3g2plrlKtRLs3ymxgbxunYERAYhKlx3Ov9qD6/YmhgQOOug3CcOJtGtapg9WNmAI6fuURgYBANa6V9PZsa1GlRmz13XNlzx5VpG/6M5xye2Dklqpxs/HROuXb2OldOX6XCp3PK43tPePfKm4iICG5duoXzml3UaBz/qFQhvmfS+JPCdu7cCcCjR4+4desWZcqUoUyZMnh4ePDgQdRwaRcXF4oVK4aZmVmc1+fLl4/Q0FDOnj0LwJkzZwgLCyNfvnw8ffoUMzMzGjduzKhRo7h58yYRERGxXm9mZqYZURQtc+bMVKlShcGDB9O+fftY02OllS1bXMiYuRAZMxeiSdOEF3MT6deXZeDWrTuULlVMs710qWK8fPkab+/38b5+2fK/KVq8Gjlzl8HZZR8ZMmTgxs07ALx//4HOXfqTK09ZSpepja6uLhcuXkmLP0trbd/mSrasJciWtQQtm3fl9u27lCxVVLO9ZMmivHr1Bm/vD/G+fsVfGyhTqjb58/2M664DZMiQgVu37lCgYF6srXNx6PB2HnieZ9OW5WTLlpUHnufJkydnvO/1PeQWIr2Tz6b4XljnzklYeASPn35eH/POg0cUzBt3hIOlhTkzxg/Bfdd6XNcvISIyQjOy5+nzl+jp6tKsYW0yZNAjW9YfaVS7OifOXkyzv0WkvMMuR7Et3BTbwk0Z2WkMj+4+pkCxAprtBYoVwPu1N74f/OK89mGM6ZCixZhFiAe3PWNPI5iy0fnH5QgNCzWhYaEmDO80Cs87j2JlL1gsP+9ee+P73jfOax/cfhjnuVjhP2nYuj4n9p8kKDDlpvA87HKURoXtaFTYjhGdRn865vk12wsUy//pmMfN/TCe3DGnbnp4+2GsPyMyBY+6WsuKWnOLtHd813Hsi9pjX9Se8V3G8+TuE/IVzafZnv/TZ9MvnrLi6RFfWUnbEmGdMzth4eE8fva50+idh08okDdXnH0tLcyYMaofx7ctZ9fK2URGRlKycNTn4tyVG9y850kth97UcujNQfczbHTZT/8Js9Psb9FmR1yO0qRwM5oUbsYozTnl8zk8f6LnlMTP4fFsVKS+U0T9d0mP/9ILafxJYeHh4TRv3pxevXoxadIkfvjhBzJnzszMmTMZOnQodnZ27N69m1mzZsX7egMDAxYuXMi8efOws7Nj/vz5LFiwAAMDA86fP0/Lli1p1qwZv/32G3/88Qe6urH/ExYuXJh8+fLRpEkTHB0dNc+3atUKX19fWrRokap//9cwNDTEwEA/xs8GCicSaWnjRie6/tqWokV/wtLSgtGjBrB+w/Z49zU0NNSs4ZM7dw6WL53BosWr+fDBB4D8+a3JnDkTurq6NGzwC79178DUaQvS7G+JKSwsnODgEMLDIwiPiCA4OISwsHBFssS0ebMznbu0oUiRglhamjN8RD82bnCKd19DQwOKFSsEQK5cOVi0eCpLl67lwwdfbt28S+FCVbCpbItNZVv69R3J69dvsalsmyqjrdSaW4j0Lj1/NrX1PC7ShomxEXVr2LB4zSYCgz5y+fotjp06h12DX+Ls++TZCz74+BIeHs7Js5dwcjtIr84OAOTNnZNIYO8/7kRERPD23XsOHDtFoQJ50/YP+oKU75R10OkfbNs2xPqnPJhamNJxQHsOJDDl2dVz13j9/DUd+rVDV0+XEhWKU7ZKac4fj2oQPLDtINUaVqVAsQLoZdCj04AOXDt3nQC/uL2hUyp747aNsP7JGjMLUzoP6MiB7Qfjz372Gq+evaZD//boabKX4fzxC5p9DIwM+MWuZoLvkVIOaXLnwczClE4DOiR5zNv3axcr94VPx3z/toNUb1iVgp+OeecBHT8d87ijWP9fai0ras0t0t6RnUeo71Cf3D/lxtTClLb923LY6XC8+944d4M3z9/g0NcBXT1dilUoRimbUlxyvwRErQ+pb6hPhgwZPv+snyFF85oYG1G3akWW/L2DwKCP/HfzDsdOX8SuTrU4+z59/ooPvn6Eh0dw8vwVnPYdoWf7qLq1fl3asGfNXJyWTcdp2XRq2ZTHvlFtpgzpnaJ5v5a2Xu//cTpMoy/OKQcTOKdcO3ddcw7X1dOleIVilKlSmgvHo8pJlfo2mFlGdaovXKYwLbo15/TBM2n2twihFjqR6akpS2GFCxfm8uXLmJr+/8PEU9rSpUt58+YNEyZM+KrXZTBInV631ta5eHDvXKznHj16SsFClVPk/V8880iR9xHJkz1nkW963cABPRk2tA/GxkY4u+yjT9+RhISEAHD1ylGmz1jEli0uWFpacOzoTgrkz4ufnz9/r9/GuPEzNSPfWrWyY+7siWTMaMndew8ZPfpPDv2TvOkmgp6f/KbsCVmyeiPL1myK9dzv3TrQt3vHFP09mfLU+erX9OvfncGDe2NkbIir6wEG9B+rOd4XLh5k1qylbN/miqWlOQcPbSdf/jz4+wewYf0OJv0xJ85IQ4Dq1Suxas08Cv9U5f/+m7Q5t+fjayn6NwmhbfJZl/rq12jDZ/P9kyNfnTspaXEe/xApC1yntYwRz5Pe6RMfXz/GTV/ImYtXsLQwZ1CvLjSuV5NLV2/Se/gfXDgY1VnlwNFTzFi0Cj9/f6xz52Rw7y5Urfh5yppzl64y96+/efz0OYaGBtSqUpGRjj0wNjJMfnA9/eTvmwxpdZ+i1jLepmzLr35N6x72tO3jgKGRASf2nWLeqAWEhoQCsPbISjYt3sJhl6NA1ELXQ2cNJn/RfLzyes3qmWs5deBfzXs17dSEjgM6YGRkyPULN5g/ehFvXrxJMkN4ZNzzaXK06dmK9n3aYmhkgPu+k8wZOV+T/e+jq9m4aDP/uBzRZB8+eygFPmVfOWM1J2Nkr9PsF3qN7kGbSu2T/ft1v7GHduse9rT7lPvEvpPMjXXMV7Fp8eZYx3zYrCGaY75q5povjrkdnWIc83mjFybrmOvw9dm1oax8C23Ivf0/51T520T8upR3+KbXtfitBa1+b4WhkSH/7v+XRaMXERYSBsCyw8vYtngbx3cdByBPoTwMmDGAfEXz8frZa/6e+TdnPlXcl6xckhnbZ8R672tnrjHSYWSiv3/XySlfldfH159xc/7i7OXrWFqYMbB7OxrXrsql6x78PmY653evA+CA+xlmLluPX0Ag1jmzM+i3dlStUDre9xwzaxlWP2bGsevXHUMd04xftX9S0up637DM1zdytephT9s+bTAwMuDkvlPMH7VQc05ZfWQFmxdv5cinc4p1IWuGzhpEvqL5ee31itUz1/Hvp3PKmMWjqFCzPPoG+rx58Zbd691wWbMrWRmOeMlaoynpR4tCSkdIFW997yodIUVI408K0tbGn8aNG6Onp8fq1avJkuXrvoilVuNPapPGn7T1rY0/2iClG3/Syrc0/ohvJ40/Ir37lsYfbZAajT9pQa0V42r2NY0/WiWFG3/SilrL+Lc0/miDb238Udq3Nv5og29p/BHfThp/0ta3Nv4o7Wsbf7RJSjf+pJVvafzRBtL4k7Kk8Ue7pey4ye/cnTt3lI4Qr7179yodQQghhBBCCCGEEEIIIUQ6EiHjSrSarPkjhBBCCCGEEEIIIYQQQgiRjkjjjxBCCCGEEEIIIYQQQgghRDoijT9CCCGEEEIIIYQQQgghhBDpiKz5I4QQQgghhBBCCCGEEEKIrxIpa/5oNRn5I4QQQgghhBBCCCGEEEIIkY5I448QQgghhBBCCCGEEEIIIUQ6Io0/QgghhBBCCCGEEEIIIYQQ6Yg0/gghhBBCCCGEEEIIIYQQQqQjGZQOIIQQQgghhBBCCCGEEEIIdYkgUukIIhEy8kcIIYQQQgghhBBCCCGEECIdkcYfIYQQQgghhBBCCCGEEEKIdEQaf4QQQgghhBBCCCGEEEIIIdIRWfNHCCGEEEIIIYQQQgghhBBfJTJS1vzRZtL4IxLlt/l3pSN8E3+lA3xn/FyGKR3hmzUu20fpCN/k7fGZSkf4rvgpHUCIVKbWc0q9Mj2VjvBNdvznonSE707ZUl2UjvBNrPQtlI7wTbb+t1PpCN/k0JW/lI4ghIjHB6lXTFOuFxcoHeGbDKo4VukI3+x22HulI3yTA1eWKx1BCJEEmfZNCCGEEEIIIYQQQgghhBAiHZHGHyGEEEIIIYQQQgghhBBCiHREpn0TQgghhBBCCCGEEEIIIcRXiZA1f7SajPwRQgghhBBCCCGEEEIIIYRIR6TxRwghhBBCCCGEEEIIIYQQIh2Rxh8hhBBCCCGEEEIIIYQQQoh0RNb8EUIIIYQQQgghhBBCCCHEV4lE1vzRZjLyRwghhBBCCCGEEEIIIYQQIh2Rxh8hhBBCCCGEEEIIIYQQQoh0RBp/hBBCCCGEEEIIIYQQQggh0hFp/BFCCCGEEEIIIYQQQgghhEhHMigdQAghhBBCCCGEEEIIIYQQ6hIRGal0BJEIafwRKcYnMJiJzmc4c/85mUyN6F+/LLal88W77+1n75i17yK3n3tjrJ+B7rVK0KFKUV58CKDlgt2x9g0KCWNwo/J0rlYsLf4MkQZ8Aj4ycdtxztx9GlVWbCthW75QnP36rtjD5YcvNI9DwyPImyUjTsMd8PYLZOauf7n04DlBIWEUyJaZoc2qUNLaKtXzt/ytBW1+b42hsSEn951i0ejFhIaExruvoZEhPcf9Ro0mNciQIQMPbz9kSKthsfbJoJ+B5QeXYmxmTIeKnVI8r49/IBNWuXDm+n0ymZvg2KY+tlVKx9kvJDSMGRv3cvTiLcLCIyjzUx7Gdm2GVWYLQkLD+HPdbs7dfIBPQBC5s2bGsU19qpWO+9/te88tRHqn9s9mq9/sad/HAUNjQ9z3nmTe6AWJnsN/H9eLX+xqopchAw9uPWBAq8EAzNgwlVIVS2r2zaCfgacPvehWt0eq/w0ibXTq1Zbu/TphZGzEP3uOMmn4zHjLSmP7BkyYNULzWEdHF2MTI9rU68Kta3dYtnke5St//ozo6+vj+eAxLWt1TJXc9r+1pG2fNhgaG3Ji70kWjF6UaBnvNa4ntexqoJchAw9vPWRQqyEAdB7ciQ7928V6bY96vXjx5GWq5E6vNjvtZte+w9x76Ilt3Vr8OXaI0pGSRXKnLckt1MzH149x0xdw5sJ/ZLS0YGCvLjSuVyvOfr5+/kxfuIJTZy8B4NDClr7dOmi2/3f9NjMWreDhIy9yZrdi3JDfKVeqeKrn/6W7LfV6N0PfyIAr+8+xbewqwkLCEn1NQ0d7mgxuw6IOU7jz73UAOs7+nQpNqxEe+vm1Q0v+SmRE6lSMp8frvZxThEh5/3fjz+HDh5kzZw6Ghobcvn2by5cvY2pq+n8H8/f3Z968eZw4cQITExP09PSoX78+vXv3TvR1nTp1olu3bvzyyy/f9HtHjhxJiRIl6Ngx8S9jzs7OlC1blnz5oho3jhw5wsWLFxkxYkSir0vIzp07Wb9+PQAvXrzAyMiITJkyATBmzBgWLVrEhg0bvum908o0t/PoZ9Dl6KjW3Hnxnv7rj1IoWyYKWmWMtd/7gI/0+fsIQ20rUK+ENaHhEbzyCQQge0ZTzkxop9n3mbcfdnNdqVM8T1r+KSKVTXM+GVVW/viVO8/e0n/VPgrl/JGC2TLH2m9JzyaxHndf4krFgjkBCAwJo3jurAxpVoXMZsa4nPOg/6p97BvbERND/VTLXr5meRz6tGF425G8e/WOCSvH02lwR9ZMXxvv/gNnDEAvgy6//dITvw9+FCieP84+rXu3wsfbB2Mz41TJPPVvN/Qz6HFsyUg8Hr+g/5wNFMqTjYK5YjeUbTp4hmv3nuI0tT9mxoZMWuPK9A17mDegPWHhEWT7wZLVY34j+w+WnLx6l2GLt+I0tT85s2SS3EJ8R9T82fy5ZgXa923LYIehvH31jimr/qDrkC6smLYq3v2HzhyEnp4enWt1w++DHwWLF9BsG9FpdKx95++Yw+V//0u17CJtValVid/6d6abfV/evHzLgrUz6Du8B/OnLI2z796dB9m786DmcTOHxvQe3JVb1+4A8Hv7QbH2X+u8lHOnLqZK7go1y9OurwNDHIbz7tU7/lg1gS5DOrFq2pp49x88cyB6enp0rfXbp/uUArG2H3dzZ5rjjFTJ+r3I8uMP9Pq1Lf+eu0RwcIjScZJNcqctyS3UbMrcZejr6+PuuhGP+w/pM/wPChfMR8F81rH2m7loFR8/BnNwx2q83/vQfeAYclhlpUXjevj4+tFv5CTGD+1L3Ro27Dt8gn4jJrF/+2oszc1SLXvRGqWp17sZC9tPxufVe3quGILtoNbsnrElwdf8mMeKcraV8XnlHWfb4b92s2fOtlTLGy29Xu/lnCJEyvu/1/zZunUrjo6O7Nq1KwXiRImMjKRnz55ERkayd+9eXF1d2bJlS4o0KqUUFxcXHj16pHlcp06db274AbC3t8fV1RVXV1dq165Nz549NY8rVqyo9Q0/QSGhHL75hL51y2BiqE/ZvFmpWTQXe688jLPvhn9vU+WnHDQukx+DDHqYGuqTP6tlvO/r9t9DyuXNSs5MqXexF2krKDiUw9ce0rdhxaiykj87NYvnZe/Fu4m+7pm3L/89fEGTn6N6hef6wYJOtUqTxcIUPV1dWtkUIzQsnEevP6Rq/nqt6nJg20Ee332Mv48/mxZspn7revHum7tALirXq8T8EQvx8fYhIiKCe9fvx9onW24r6rSozdbFqXODGPgxhMMXbtHXvi4mRoaUK5yXmuWKsOffK3H2ffbmPVVKFuQHSzMMDfRpULkkD7xeA2BiZMDvLeuQM0smdHV1qVm2CDmzZOL2o+eSW4jviNo/mw1a12ff1v08+nQOXz9/Iw1b14933zwFclOlng2zR8zTnMPvXr8X777ZcllRsmIJDjn9k5rxRRpq5mCL8+bdPLjjia+PH8vnraG5Q+Nkv3b39v3xbsuROzvlKpdm9474t/+/6reux/6tBzT3KRvnb6JBAmU8d4Hc2NSrzNwR82Pcp8RfxsW3q1erKnVqVCGjpYXSUb6K5E5bkluoVWDQR/5xP03/7h0xMTGmXKni1KpaCbeDx+Lse/z0ebq2t8fYyIic2a1o2bg+Lvui7p3+u36bHzNnosEv1dDT08OuwS9kymjJYffTqZq/kn0Nzmw/xst7XgT5BrB/oTOVW9VK9DVtJndj1/RNhIUmPjooNaXX672cU4RIef9X48/UqVO5dOkSs2fPplOn2FMVXbt2DQcHB+zs7HBwcODatWsAzJkzh1WronpX7tu3jyJFivDu3TsAevTowalTpzhz5gzPnz9n1KhRGBgYAGBoaKj5HWfOnMHBwYHmzZtjZ2fH3r17483n5+fHqFGjsLOzo2nTpkyaNAmIGt2zceNGzX5fPo6W0O/ZuXMnN27cYMqUKTRr1ozTp0/j7OyMo6Oj5rUrVqygSZMmNGnShFGjRhEQEADAokWLGDx4MD169KBhw4b07NmToKCgRI+zl5cXlSpV0jwuXLgwy5Ytw97enjp16nDmzBnmzJlD8+bNadKkCQ8ePNDs6+LiQuvWrWnZsiWdO3fm4cO4jTEp4fFbPzLo6mD94+cTdKFsmXjw6kOcfa8/fYOFsSGd/zrAL1O347j+KC8+BMTZLzIykj1XHmJXrkCcbUK9Hr/5QAZdXayzZtQ8VyjHDzx4GbfXTEx7LtylbP7s5Mwc/02Ax7O3hIZHkPvH1L1JsC5kzcNbnz9HD289JHPWzJhnNI+zb+EyhXn97DWdh3Rkx9Vt/PXPMqo1qhprnz6T+rB25jqCP6ZOr5bHL9+SQU+XvNl//Jwrd3ZNBWxMLWqW58q9J7x+70tQcAj7Tl+lWumf4n3fdz7+PH75jgI5s0puIb4jav9s5i1kzYMY5/AHtx6QOWtmLDLGvXYUKVOEV89e03VIF1yv7WTN4ZXUsK0e7/vWb1WP6+dv8NLrVaplF2mrYOH83Ln5ucPGnZv3+DHrD1hmSvw+I3uubJSvXIbdO/bFu71p60ZcPnuV509fxLv9/xW3jD/8VMbj3qcUKVOYV89e02VIZ5yv7WDl4b+oblst1j6V61bG5YYTq4+swK5TkzjvIYQQ4vv2+OkzMujpkTdPTs1zhQvm477n4/hfEGNtkEgiuf/wcYxNsadH+3J7ashWKDfPbn/+Hc9uP8YiS0ZMM8bfAbmsbWXCQkK5dfxKvNurd6rPjCurGe42jTINK6ZGZECu90K7REZGpst/6cX/1fgzevRoSpQowdixY2ONTAkJCcHR0ZGBAwfi5ubGgAEDcHR0JCQkBBsbG86cOQPA2bNnKVOmDGfPniU0NJRr165Rvnx5bt68SbFixdDXj3/qpmLFirF582Z27drF2rVrmTFjBj4+PnH2mzp1KiYmJri6urJ792769ev3VX9fQr/H3t5e83e7urpSpUqVWK9zd3dn9+7dbN26FTc3N8LDw1m69PMUETdu3GDOnDns37+fsLAw3NzcvioXgIWFBTt37mTo0KH06dOHcuXKsWvXLpo1a8ayZcsAuHjxIvv372fTpk04OzvTvXt3Ro8encQ7f5vAkFBMv5hqy8zIgIB45kl95ROI238PGN64AgeG2ZMzsxkjt52Ms99/j1/zzv8j9WTKt3QlMCQUU6N4ykpw/HPTRttz8Q5Nfy4c7zb/jyGM3XSEXvUrYG5smGJZ42NsakSA3+fGyuifTcxM4uz7Y/YfyVckHwG+gbSr0IHF45YybN5QchfMDUDVhlXQ09Pl3wOp15spKDgE0y+OiZmJIYEfg+PsmyfbD1hltqSe40yq9pzCw+dv6NU87hSaoWHhjFq2HbtqZciXI4vkFuI7ovbPprGJcaxzuL/mHB532s0s2X8kf5F8BPgFYF/egQVjFzFq3nDyFIx7X9KgVT0ObD8Y53mhXiamxvj5+mse+3/62dQs8ZkIoht3nj2Jv3GnaZtG7NoWf8e1lPBlGY/+2Tie+5SYZbxN+XYsGruYEfOGkefTfYq7mzvdfumOfak2zBk+n04DO/BLs1qpll0IIYT6BAYFYWoa+z7K3NSEgMC4nZyrVizHqk1OBAQG8sTrOS57/yEoOOoeskyJIrx5582+w+6EhoXhuv8IT5+95GNw3HvMlGRoYkiQX6DmcfTPhvHcGxqaGmE3rC1Of/wd73sdX3uASbUGMKp8D/bM2UbH2X3IXz7+Ooz/l1zvhRDJ9X+v+RMfT09P9PX1sbGxAaBKlSpRC5t6elKuXDkGDRpESEgIly9fZvjw4Rw8eBArKyt++uknjI2TXvPC29ub0aNH8/jxY/T09PDx8cHT05MyZcrE2u/YsWM4OzujqxvVxpU5c+Z43u3//z1fOnPmDLa2tpiZRfUUaNOmDVOnTtVsr1atGhYWUb0GS5UqxZMnT74qF0CjRo0AKF48avG76DWOSpQowT//RA2bPXr0KB4eHrRu3RqIaon19fX96t+VHCYG+nEq7wOCQzE1iFvEjPQzULtYHkrkiuo13Kt2aWr9uR2/jyGYGxlo9nO7/JA6xfOk6votIu2ZGOgT8PHLshISp/Ewpv8evuCtXyD1SscdBfYxJIwBq/ZR0tqK7nXLpXje2s1/YcD0qFF9N87fICjgY6yGnuifA/0D47w25GMIoSGhbFq4mYjwCK6fvc7V01cpX6Mcb5695rfR3RnTeVyKZ47J2NCAgKDYN8z+QcGYGMVtJJv6txshYWGcWDYaY0MD1u49SZ9Z69n0x+e11iIiIhiz3Al9vQyM6mwnuYX4zqjts1m3RW2GTI9ab+Xa+esEBQbFOodHV+QH+setoAj+dA7fsGAj4eERXD17jf9OX+HnmuV5cv/zvVvJn0uQOUtm3PeeSPH8Iu00tm/AhFlRUzhfOnuVwIAgzMw/N/SYfvo5wD/uaPWYmraxZeWCdfFuK1uxND9m/YFDbkdTJjRQp0VtBk0fAMD18zfiKeNRPwfFc58SXcY3LthERHgE185e58rpq1SoWZ4n95/y+N7ncn7r0i2c1+yiRuPqHHM9nmL5hRBCqJuJsTEBAbHvo/wDAzE1iVu3N3pgL6bOX45tu55ktLDAtm5N9h12ByCjpQULp45l9tI1TJm7jKoVy1G5QhmssvyQonkrNKtGu6k9ALh/4TbBgcEYxWjoiV6HNziee0Pbga0573ISb6838b63101Pzc+3jl/houspSjesyMNLd/7v3HK9F0J8q1Rp/EmMkZERhQoVYu/evWTJkoXKlSszY8YMsmXLRuXKlYGoBo3NmzcTFhZGhgxxI06cOJHatWuzePFidHR0aNCgAcFf0RtAT0+PiIgIzeOEXvv//p6EGBp+riDR09P7pveMfg9dXV3N1HjRj8PCokbbREZGYm9vz4ABA/7PxEmz/tGcsIhIHr/11Uz9dvfFewpYZYyz70/ZMqIT47FOnD3gY2gY/9x4zNwONVMlr1COdZaMhEVE8PjNB6yzZATg7vN3FMiWcOPs7gt3qFMqf5yGwJCwcAatPUDWjGaMa506ZeXormMc3fV5vuKRi0aQv1h+TuyJGq1WoFh+vF974/fBL85rH972jPNc9MDRHPlyYpXLirk7ZwOQwUAfU3MTtl7azIBmg3iVQlMHWWf7kbDwCB6/fIt1tqgG17tPXlIgV9yple48fkH/1vWw/HTj2K5eZZbuPMJ7vwAymZsSGRnJhFUuvPP1Z8nQzuhn0EuRjOkptxDpndo+m4ddjnLY5XNF+9jFoylQLD/H90RVNESfw30/xO0c8/B23Kly4xv+36B1fU7sP0VQ4McUTC7S2t6dB9m78/PorRnL/qBw8Z84uPsIAIWL/8Tb1+/weZ9wR6qyP5ciS7YfOeQWd50DiFoL6PDe4wTF0xv6Wx1xOcqRGGV89OKRFCiWH/c9UY2R+YsV+FTG47tPSV4Zj7ERHZ347tyFEEJ8r6xz5yQsPJzHT59hnTtq6rc79z0pmM86zr6WFubMGD9M83j+X39TsmghzeOfy5Zk28p5AISFhdPQ4Td+dWieonkvup7iouspzeNfF/QnV1Fr/tt7FoCcRa3xffOBgA/+cV5buGoJMmbLTI1OUWvrmGW2oNuSgfyz3JXDy3fH2T8yMpKUumzK9V4I8a3+r2nfEpIvXz5CQ0M5ezbq5HnmzBnCwsLIly8fADY2NixatAgbGxsMDAzIli0bLi4umpFCNjY2WFlZMX36dEJCotbBCAkJ0azL4+fnR86cOdHR0eHff//l8eP45wD95ZdfWL16teak5u0dtaaItbU1169fB+D169ecO3cu3tcn9ntMTU3x84t7Uo3Ov3//fvz9/YmMjMTJySnO1HBpoXbt2ri6uvLy5UsAwsPDuXHjRqr8LmMDfeoUy82yI1cJCgnlv8evOX77KY3L5I+zb7NyBTh66ykez70JDY9gxbFrlLXOGmvUz9FbTzE3NuDn/NlSJa9QjrGhPnVK5mfZgQsEBYfyn+cLjt94ROMKheLd/2NIGP9cfRBnyrfQ8HCGrjuIob4ek9vVRlc3bW5ODu88TEOHBuT5KQ+mFqa0d2zHoR3xL/B9/dx1Xj9/Q7t+bdHV06VYhWKUtinFJfdLPLrziA6VOvF7w7783rAv84bN58PbD/zesC9vnsffk+hbmBgZUKdCMZbuPELgxxD+u/uY45dv06RqmTj7Fs+fE7dT/+EX+JHQsHC2HzlHlkzmZPrU23nKut14Pn/DosEdMTJI3RF5as0tRHqn9s/mIad/aNy2EdY/5cHMwpROAzpwYMehePe9eu4ar5+/pn2/dujp6VKiQnHKVinDheMXNfsYGBlQq0lNmfItHdq9fT8t29uRv1BezC3M6DWoa5LTtTV1sOXwnmMEBsTtdWtoZEiDpnVSdco3gH+cDtOobUOsP92ndBzQnoMJlPFr565ryriuni7FKxSjTJXSXDh+CYAq9W0ws4yayaBwmcK06Nac0wfPpGr+9CgsLJzg4BDCwyMIj4ggODiEsLBwpWMlSXKnLckt1MrE2Ii6NWxYvHoTgUEfuXztFsdOncOuQdypfp88e8EHH1/Cw8M5efYiTm4H6dXFQbP99t0HhIaF4R8QyOylq8mW9UeqViqfqvnPOZ/AxqE22QrmxNjChAb9W3LW6Xi8+y5qP5k/Gwxlmu1wptkOx+eVN1tHr+TE+qj7wDKNKmFgYoiOjg5Fqpfi5+bVuX74UqrkTq/XezmnqFNkOv1fepEqI38MDAxYuHAhf/75J4GBgZiYmLBgwQLNCBUbGxsWLFigGelTuXJlLl++TKlSpQDQ0dFh1apVzJkzB1tbW81UcHZ2UdOBDBkyhD/++INFixZRsmRJCheOfw7NUaNGMXXqVJo0aYKenh4VK1Zk7NixtG7dGkdHR2xtbcmbN6/m934psd/j4ODA9OnTWb16NSNGjIj1upo1a3Lnzh3atm0LRE3F9vvvv3/r4fxmP//8MwMHDuT3338nPDyc0NBQGjZsSIkSJVLl941uWokJzqf5ZeoOMpoYMrpZJQpaZeTyo1f0/fsoZya0A6Bigez0r1+G/uuP8jE0nLLWWZjWJvZic26XH9CkTH7pbZBOjbavzoRtx/hlwjoymhgx2r46BbNl5vLD5/RdsZcz03to9j12wzOqIbBgzljvcdXzFSduPcZIPwPVx6zWPL+kZ2PK5c+RatkvHr/EjuVOzNo2AwMjA07t/5cNczdqtq84/BdbF2/l6K5jhIeFM7H7HwyaORCHPm145fWKWYNm8/SBFwDv37zXvM7vgx8RERGxnkspY361Y8JKF37pO42M5iaM+bUpBXNZcfnOI/rMWs/ZVeMBGNKuETM27MFu6DzCwsMpkCsr8wZ0AOD52/c4Hb2AgX4GaveboXnvcV2b0jieSt/vObcQ6Z2aP5vnj19gy7JtzNs+B0MjA07sO8naOZ/nbV97ZBWbFm/msMtRwsPCGdNtPMNmDaF937a88nrN1IEzePLgqWb/ag2q4u/rz3+nr6RaZqGMf4+dZc3ijax1XoqhkSH/7DnGkpkrNdt3uW9m5cK/NaOFDAwNaNC0DoO6j4r3/Wo3qoGfjx/nT6VOJVC0C8cvsm3ZDuZsn4WBkQEn953i7zmf12ZdfWQFmxdv5cinMj6u20SGzhpE274OvPZ6xfSBs3j6qYz/0rQWw+YMQd9Anzcv3rJ16XYOOcXf4UUk7K+/t7BszSbN4z0Hj/J7tw707d5RwVRJk9xpS3ILNRs3pA/jpi2gZtMOWFpYMG5IHwrms+bS1Rv0HjaRC4ecALh15z4zFq7Ezz8A69w5mDFuSKwRQms27+Tk2ahONlUrlWfB1DGpnv22+1UOL9+N45bx6BsZcPXAefbN26HZPubQbA4u2cVF11NxRgNFREQQ6BNASGDUbD61ujaiw4zeoAPvvN6wZdQK7p29lSq50+v1Xs4pQqQ8nchEx/qJ712Q0xSlI3wT/5qpP9Wd+Mzs/Oqkd9JSzXofUDrCN9m9s7vSEb4rfvkaKh1BiFRl7qnOc2HDln8pHeGb7PjPRekI351fStRTOsI3sdK3UDrCN9n6306lI3yTjDopN/paCJFyPkRmUTrCdyVj5EulI3yTQRXHKh3hm90OS/lOoGnhwJXlSkf4Jvo/xp2lSHw7Q6PcSkdIFcEfnya9kwqkyrRvQgghhBBCCCGEEEIIIYQQQhmpMu2bEEIIIYQQQgghhBBCCCHSL5lUTLvJyB8hhBBCCCGEEEIIIYQQQoh0RBp/hBBCCCGEEEIIIYQQQggh0hFp/BFCCCGEEEIIIYQQQgghhEhHpPFHCCGEEEIIIYQQQgghhBAiHcmgdAAhhBBCCCGEEEIIIYQQQqhLZGSk0hFEImTkjxBCCCGEEEIIIYQQQgghRDoijT9CCCGEEEIIIYQQQgghhBDpiDT+CCGEEEIIIYQQQgghhBBCpCPS+COEEEIIIYQQQgghhBBCiK8SmU7/pSRXV1fs7OwoVqwYGzduTHTf7du3U69ePerWrcukSZOIiIhI1raESOOPEEIIIYQQQgghhBBCCCFECitatCjz5s2jSZMmie739OlTFi9ezLZt2zh06BCPHz9m9+7dSW5LjDT+CCGEEEIIIYQQQgghhBBCpLBChQpRsGBBdHUTb4o5ePAgdevWJXPmzOjq6tK6dWv27duX5LbEZEiRv0AIIYQQQgghhBBCCCGEEELlfH198fX1jfO8hYUFFhYWqfI7X7x4QY4cOTSPc+TIwYsXL5Lclhhp/BGJMm41VukI38RY6QDfm8YDlU7wzQ49Hah0BKECRkoHECK1ZWmtdIJvctxLnblF2rvx6qzSEYQqmCsdQAgRjyxKB/juqPNcuPjRNqUjCPFdCgt5pnSEVLFo0SIWL14c5/l+/frRv3//WM+1aNGC58+fx/s+p0+fRk9PL1UyJoc0/gghhBBCCCGEEEIIIYQQQgBdunShRYsWcZ6Pb9SPi4tLivzO7Nmzx2pEev78OdmzZ09yW2JkzR8hhBBCCCGEEEIIIYQQQgiiGnly5coV519qTfkG0KBBAw4fPoy3tzcRERHs2LGDRo0aJbktMTqRkZGRqZZYCCGEEEIIIYQQQgghhBDiO7Rnzx5mzpyJr68v+vr6GBsbs2bNGgoWLMiCBQvImjUr7dq1A2Dr1q2sWrUKgKpVqzJ+/HjNtHGJbUuINP4IIYQQQgghhBBCCCGEEEKkIzLtmxBCCCGEEEIIIYQQQgghRDoijT9CCCGEEEIIIYQQQgghhBDpiDT+CCGEEEIIIYQQQgghhBBCpCPS+COEEEIIIYQQQgghhBBCCJGOSOOPEEIIIYQQQgghhBBCCCFEOiKNP0IIIYQQQgghhBBCCCGEEOmINP4I8Z3x8/NTOoIQQoh0LCIiAg8PD6VjCCGEEEIIIYQQ3zVp/BFp6uHDh+zbt49du3Zp/om0ZWdnp3SEJHl6ehIcHAzAyZMnWbFiBT4+PgqnStq+ffvw9/cHYMGCBXTv3p0bN24onOrreHt7Kx0h3VN7OfH39+fmzZtKx/hq7969Y+jQoXTo0AEADw8PtmzZonCqpK1du1bTaD9s2DAaNmzIqVOnFE6VOF1dXYYNG6Z0jK+m5s+mGrOHh4fTq1cvpWN8s1OnTrFy5UoWL16s+acGaj2Hi7SlxmsPqDd3ehASEsKbN2+UjpFs/v7+REREAHD37l327t1LSEiIwqmSpuYyfubMGTZu3AjA27dv8fT0VDhR0iIjI9mxYwezZs0CwMvLi8uXLyucKnlevnypdAQhhJaQxh+RZtavX0///v2ZOHEibm5uTJgwgT179igdK0murq707t2bZs2a0axZM3r37s2uXbuIjIxUOto3UUPugQMHoqury9OnT5kwYQJPnz5lxIgRSsdK0rJlyzAzM+PatWucOnWK5s2bM2XKFKVjJcvVq1f55ZdfaNGiBQDXr19n3LhxCqdK2qNHj2jXrh21a9cG4ObNmyxatEjhVIlTczlxd3encePG9O/fH4gqJ71791Y4VfKMHTuW8uXL4+vrC0D+/PnZvHmzwqmS5uzsjLm5OWfPnsXb25upU6cyd+5cpWMlydraGi8vL6VjfBU1fzbVmF1PT48PHz5oKt/UZPbs2axcuZJ169bx+vVrtmzZwqNHj5SOlSS1ncNnzpyZ6D81mD59On5+foSFhdG+fXvKlCmDq6ur0rGSpNZrj1pzq7WcDBo0CD8/Pz5+/IidnR2NGzdm9erVSsdKls6dO/Px40fevHlD9+7dcXZ2Zvz48UrHSpJay/iKFStYvHgx69evByAsLIzRo0crnCpp06ZN4+zZsxw5cgQAU1NTpk6dqnCq5GnVqhX9+/fnzJkzSkdJNjV+txdCDaTxR6SZ7du3s2PHDrJnz87q1avZsWMHpqamSsdK1JQpU9i9ezctWrRg8uTJTJ48mRYtWuDm5sbkyZOVjvdNdHR0lI6QJF1dXfT19XF3d6ddu3ZMnjyZFy9eKB0rSRkyZADg33//pXXr1tjZ2WlGMGm7adOmsXLlSjJlygRAyZIlVdGraeLEifz++++Ym5sDULRoUQ4cOKBwqsSpuZwsXLgQJycnLCwsgKhy8uTJE4VTJc+rV69o164denp6ABgYGKCrq/23QdF5z507h52dHeXKlVNFI35AQABNmzalR48eDBgwQPNPm6n5s6nW7KVLl6Zfv37s27cPd3d3zT9t5+7uzurVq/nhhx+YNGkSzs7OqhihrLZzuImJSaL/1OD06dOYm5tz6tQprKysOHjwIGvWrFE6VpLUeu1Ra261lhNPT0/Mzc05fvw4lSpVwt3dXTUze0RGRmJiYsLx48dp06YNq1evVsWoSLWW8T179rBu3TrNuTtbtmyaEcva7Ny5c8yePRsjIyMAMmXKpIr7K4CjR49Sp04d5s+fj62tLZs2bdL6Y67G7/ZCqEEGpQOI74eBgQEmJiZEREQQGRlJoUKFtL6X5IkTJzh06FCs50qVKkW9evVo2LChQqmSdv/+/QS3hYWFpWGSbxMcHMzbt285duwYAwcOBNQxYklHR4d9+/axb98+li5dCkBoaKjCqZInNDSUggULxnpOX19foTTJ5+fnR40aNTQ93qIbDrWZmssJQJYsWWI9NjAwUCjJ14muHI/m6+urivOKkZERK1asYO/evWzatInIyEhVlJemTZvStGlTpWN8FTV/NtWa/fbt2wCxpmDU0dGhZs2aSkVKFgMDAzJkyICOjg6hoaFYWVmpZnoVNZ3D+/Xrp3SEFHPhwgXq1auHlZWVKjpiqfXao9bc0dRWTqK/V164cIGaNWtibGysio41EPV9MyQkhH///ZeOHTsCqCK7Wsu4kZFRnO9oaijjhoaGsXKqabSygYEBzZs3p3nz5ly+fJnBgwczZ84cWrRoQZ8+ffjhhx+UjhiHGr/bC6EG0vgj0oyxsTGhoaEUKVKEWbNmkT17dlVcPD98+EDGjBljPefj46PVlYY9e/ZMcJuhoWEaJvk2Xbp0oWHDhtjY2FCyZEmePn2q6f2hzcaNG8fKlStp1aoVuXPn5tGjR1SqVEnpWMliYGBAQECA5ub2/v37qigrenp6hIaGanK/evVK67+4jR07llWrVqmynJiamvL27VvN8T537pwqPpsA9erVY/z48QQEBODs7MzmzZuxt7dXOlaSpk2bxubNmxk6dChZsmThyZMnqli7LXoKSTVR82dTrdefDRs2KB3hm5iamhIUFETZsmUZOXIkWbJk0fQK1mZqO4dv2rQp0e3Ra7hpsx9++IEJEyZw8uRJevbsSVhYGOHh4UrHSpJarz1qza3WclKgQAF+++03Hj58yJAhQ/j48aPSkZLN1taWqlWrYm1tTbly5Xjz5o0qvvuotYxny5aNixcvoqOjQ0REBMuXL+enn35SOlaSChUqxO7du4mMjMTLy4sVK1ZQvnx5pWMl27Nnz9i6dSt79uzBxsaG1q1bc/bsWbp3766Vo/TU+N1eCDXQidTmGmyRrty9e5dcuXIRFBTE3Llz8fPz4/fff6do0aJKR0vQ9u3bWbJkCfXq1SNHjhxA1AX0yJEj9OnThzZt2iic8PsQERFBWFiYVvdOhahFLG1sbJJ8Thu5u7uzbNkynj59SvXq1Tl58iSzZs2iSpUqSkdL1K5du9i/fz937tzB3t6eXbt2MWjQIJo0aaJ0tHTp6tWrTJw4ES8vL4oUKcKjR49YtmwZJUqUUDpasuzevZujR48SGRlJ7dq1adasmdKR0i1vb28mT56smWe8atWqjBkzhsyZMyucLP0JDw9nyZIlODo6Kh3lm5w8eZLTp08DUK1aNapWrapwoqS9ffsWCwsLwsPDNYtvd+rUSXOvqK2uXbvGhAkTVHMOHzVqVKLbp02blkZJvp23tze7d++mTJkylClTBi8vL86fP0/Lli2VjpYs3t7eqjxvqy23WsvJx48fOXXqFIULFyZ37ty8evWKO3fuUKNGDaWjJYuPjw/m5ubo6uoSEBCAv78/VlZWSsdKl968ecOIESM4f/48Ojo6VKhQgdmzZ2vl6JOY/P39mT59OkePHgWgdu3ajBo1SuuXLwDo1asX9+7do23btrRu3VozvTtAkyZNtHL9bfluL0TqkMYfkWbUWjHu5eXFwYMHNWvOZM+enfr165M7d26Fk6VfCfX01PYeni1atMDFxSXJ57TV06dPOXnyJJGRkVSrVg1ra2ulIyXLxYsXOXbsmKZCv0KFCkpHStT06dPp27cvxsbGdO7cmVu3bvHHH3+opiHCz89Psx5U2bJlNWtHiNRhb28f77QYTk5OCqRJvv79+1OwYEHatm1LZGQk27dv5+7duyxevFjpaAlS82ezVatWWl8m4rNq1Sp27dpF48aNAdi3bx/Nmzene/fuCidLHrVVMIOcw9PaypUr6dGjR5LPaZurV68ycOBAIiIicHd35/r162zfvl3r1zxVa26IqmR+/PgxxYsXVzrKVwsJCYk1UsnY2FjBNMn35MkTnjx5Eiu7tk47mtD9YDS13AMEBQURERGhisYTiPpcmpmZJfmcNjpw4AD16tXTrBOlFmr7bi+EGsi0byLNzJw5M04leHzPaZvs2bMTEBDA2LFjlY7y3bhx44bm5+DgYM6dO0fp0qW1tvHn8ePHPHr0CH9//1gLVfv5+REUFKRgsuTbsGEDdnZ2tG/fXvPcnj17tL6XzdGjR6lWrVqsm8Lz589TsWJFBVMl7vTp04wcOZLjx49jZWXFvHnz6NmzpyoqmP/880/GjBkT64tx9HPaztHRMc6XZnNzc8qUKUPLli21dkqBESNGaH4ODg5m7969ZM2aVcFEyfPkyRMWLVqkeezo6Kj1ZVzNn81atWqxevVqmjdvrllMGbS/As7V1ZWtW7dqKlE6depEu3bttL7xR80VzObm5tjY2GgqO4OCgrS+nAQFBfHXX3/x9OlT5syZw4MHD/D09KRu3bpKR0vSvn374jT0xPectpk2bRorV65k6NChAJQsWZKRI0cqnCppas3t7u7O+PHj0dPT4+jRo1y/fp0lS5awfPlypaMl6tChQ0yZMoU3b94AUWu06ujoaNZz02YzZ85k165d5MuXT3MPqM1rzkXfDx4/fpyHDx/SqlUrAJydncmXL5+S0ZJNTY1t0Tp16hSnviq+57TR/v3746xTPWDAABYsWKBQouSpUKGCNPgIkcKk8UekOrVXjOvp6XHixAnVTqeiRl9O4/H69WsmTZqkUJqkXb58GWdnZ96+fcuqVas0z5uZmaniCyfA3Llz2bp1K8uXL9eMalu9erXWN/44OjpSsmRJli9fjqWlJRBVftRwQ662RX0hqifWly5cuKBAkq+XJUsWbty4EWuEgbm5Ofv378fDw0NrG/i/bMisVq0a7dq1UyhN8kVERPDu3TvNdB7v3r1TxTp/oM7PZvSIqlmzZqGjo6OqCriYvWfV0JMW1FvBfPDgQaZOncrr168B9VTUTpw4kSxZsuDh4QFErR0xZMgQrW78+ffffzl16hSvX79m5syZmuf9/f21et3QaKGhoRQsWDDWc2pYdFutuRcuXIiTk5OmUbBkyZI8efJE4VRJmzVrFvPnz6dMmTJa24kmIYcPH+bIkSNa3/gdLfp+cNasWWzfvl1zf/LLL7/Qtm1bJaMli9oa28LCwggNDSUiIoKPHz9qzttqqcMC4j2HPHz4UIEkyffw4UOWL1/OkydPCAsL0zyvlpFtQmgrafwRqS49VIyrtUdtepE1a1YePXqkdIwEtWjRghYtWuDs7Kz1c3MnxNramiFDhvDrr78yd+5cSpcurYrKiYIFC9KyZUvat2/PsmXLyJMnj9bnVuOivvv372f//v08e/aMAQMGaJ739/dXxSLnAB4eHmzYsEGzdpiDgwO//vorf//9N82bN1c23Ffw9/fn7du3SsdIUvfu3WnevDm1atUCono1DxkyRNlQSVDjZzNadKW42pQoUYJRo0bRunVrIOrLvbauPxOTWiuYZ86cyaJFiyhRooSqKmrv3LnDjBkzOHXqFACmpqZa35isr6+PqakpOjo6sb47ZM2alZ49eyqYLHkMDAwICAjQVDDfv38fQ0NDhVMlTa25IaqTSkzavtYpgKWlJeXKlVM6xjfJnj27Ks7bX/Lx8SE4OFhz/x0SEoKPj4/CqZKmtsa25cuXs3jxYnR0dChTpozmeTMzM7p27apcsGTYvn0727Zt49GjR5oRYhDVcKXto8QGDBhAs2bNaNGiheqmqxNCm0njj0h16aFiXM09atUo5po/kZGRXL9+XRVz6jdv3pwdO3bw+PFjhg4dipeXF69fv1bFlyIdHR2qV6/O4sWLGTBgAEOGDFFFj3cdHR1at25NtmzZ6Natm+Yzqs3mzJnD7t27adGiBZaWlnh5eWn9l4h8+fJRq1Ytrl+/rqnMh6gvQNq+blu0t2/fxvqSnyFDBt6/f4+BgYFWV7DEnOM9IiJCFeUFoE6dOhQvXpxz584B0LlzZ3766SeFUyVOjZ/NmDw9PXnw4AF169YlICCA0NBQMmbMqHSsRI0bN46lS5cyZcoUAKpUqUKfPn0UTpU0tVYwZ8mShVKlSikd46t9eY4ODg7W+o4eFStWpGLFitSvX59ChQopHeer9e7dm+7du/P69WtGjhzJyZMnmTVrltKxkqTW3Kamprx9+1ZzTjl37hzm5uYKp0pavXr12Lx5M7a2trHOgWqo4B85ciS9e/ematWqsc4x2jrNeLRGjRrh4OCAra0tENVBK/pnbaa2xrZ+/frRr18/Jk2axPjx45WO81WqVq2KtbU1kydPZvjw4ZrnzczMKFy4sILJkpYhQwZ+++03pWMIke7oRGr7nbNINyIiIti5c6cqK8ZF2ho1apTmZz09PfLkyUObNm20vhJr6tSpvHv3jps3b3LgwAHev39Pjx49VDFMuXnz5uzatQuAly9f0rt3bx49esSVK1cUzZWUmLk9PDxwdHTk/fv3Wj8VmVoX9f3w4YPWfw4TMm7cOF6+fKlZv8XNzY0sWbIwatQounbtyvbt2xVOGL/z589rftbT0yN37txav+ZPZGQkjRs3Zt++fUpH+Wpq/Ww6OzuzYsUKQkNDOXLkCA8fPmTSpEmsW7dO6WiJevDgAQUKFEjyOW3j7u7OsmXLePr0KdWrV9dUMFepUkXpaInau3cv9+7do169erEqar8cxaRtZs6ciYWFBbt372bChAmsXbuWwoULM2jQIKWjJSk4OJjdu3fz9OnTWFPYxKyQ01ZPnz7l5MmTREZGUq1aNaytrZWOlCxqzH3t2jUmTJiAl5cXRYoU4dGjRyxbtkzrR0IWKVIkznNq6SA5aNAgHj58SOHChWONMPhy+nFtdPToUc39YeXKlWN1zNJWt2/fZs6cOaprbBNpa+7cuZQvX15rpwMUQq2k8UekGTVXjAuRHM2aNWPXrl20aNFC0yBhZ2eHm5ubssGSwcPDI9YXOH9/fw4fPqz102G5u7vHujl89eoVO3bsoF+/fgqmSpxaF/WFqPmvd+7cye3btwkODtY8r4YvyqGhoWzdulXzZblixYq0bdtWVb0Q1aR79+7MnTtXsxaXGqj5s9m8eXM2bdpEhw4dNNefJk2asGfPHmWDJaFFixZx1miL7zlt4+fnx4cPH1RXwbxmzRoWLlxIxowZY625cOTIEYWTJS40NJRVq1Zx9OhRIiMjqV27Nj179iRDBu2fxKJ3796EhoZSqlSpWBXM2nyfombe3t6YmZlpKpdDQkLw9/dXxQwCfn5+XL58GYCyZctiYWGhcKL0rX79+hw8eFDrZwxIL9Ta2Obh4cGECRPw8PAgJCRE87w2N3DOmjWLYcOG4ejoGG/5XrBggQKpkufMmTP06dMHXV1dDAwMNDPunDlzRuloQqia9t8xi3Tj3LlzmopxgEyZMsWqPBRi//79NGrUKNa0bzFpe88gQ0PDWDdY2j4fPUR9KTYwMMDa2jrW4pV6eno0aNBAwWTJ82WvICsrK62vUFHror4A48ePJzw8nHPnztGuXTv27NlDhQoVlI6VLPr6+nTq1IlOnTopHSVZhg0bxqxZs2JN+xaTtnecMDMzo0WLFtSoUSPWehfa3NtdzZ/N6PVFYtLmudK9vb3x9vYmODiYBw8exFpIOTAwUOF0iYuMjMTBwYF9+/bRvn17peN8lQ0bNnDo0CGtHz34JX19fX7//Xd+//13paN8tcePH7N//36lY3y1ypUrx7n2mJubU6ZMGYYNGxZnfRpt0atXL9avX695HBYWRu/evbV2dG9M5ubm2NjYaNaaCwoKUsX0ae/fv+fq1asAlClTRjUjxPPmzUtgYGCca6e2UnOFPsDNmzdV2dg2ceJEBg4cyLRp01i1ahWbNm3S+jJTvnx5AH755ReFk3y98ePHM23aNIoXL66qtQmF0HbS+CPSjBorxkXaunfvHo0aNeLGjRtKR/kmhQoVYvfu3URGRuLl5cWKFSs0N1/aysHBARcXF8qWLatZzyqaNk/b0KVLF/7+++84lRNq6R2kxkV9Aa5fv46bmxt2dnb06tWL9u3ba/36HAl9SY6mrV+Wu3TpAsCIESMUTvJtfvrpJ61f4yc+av1sZsyYEU9PT01Zd3V1JVu2bAqnSpibmxt///03r1+/1jS2QVTlp7bP9a6jo0P27Nnx8fFR1cg2gBw5cqiq4WfFihWYmprG6fyzadMmAgMDY5UdbZU7d278/f0xMzNTOspX6dChA76+vtjb2wOwa9cu9PT0MDY2Zty4cVo7IjIkJCRWg4mJiYkqOhsePHiQqVOn8vr1awDVrC978uRJhg0bRtGiRQEYPXo0s2bNomrVqgonS5qZmRktW7akevXqsa712tpJRc0V+qC+xrZoISEh2NjYEBkZSdasWRk0aBD29vb07NlT6WgJql27NoCm07WaWFpa0rBhQ6VjCJHuSOOPSDNqrBgXacvR0RHQ/uHfCRk5ciTTp0/nzZs3tGnThtq1a2t9xW301DoeHh4KJ/k60Yv37ty5U+EkX0+ti/oCmjUi9PT0CAoKwtzcnHfv3imcKnHRX5KvXbvGtWvXaNq0KQB79uzR6oXPo+f5r1ixosJJvl54eDgvX75kypQpSkf5Kmr+bI4ePZohQ4bg6elJ7dq1MTIy0trKWYhq3OzSpQvLly+nd+/eSsf5amoc2QZQqlQpBg8eTMOGDWOt+aOtc+sfPHiQLVu2xHm+devWtGrVShWNP+bm5tjb26umgjnaiRMn2LFjh+bxyJEjsbe3Z+fOnTRu3FjBZEnz9vbWTPP27t07VXQ4nDlzJosWLaJEiRKq6u0+b948Nm3apFmn7cGDBwwbNkwVjT/58+cnf/78SsdINjVX6IP6GtuiRY+itrS0xMPDAysrK96/f69wquSZPn06ffv2xdjYmM6dO3Pr1i3++OMPzfqn2qhu3bps2bKFRo0axbpPUcMoSCG0mTT+iDSjxopxkbYSmu4tmrZP+2ZmZqa6ys4v+fr6cv78eXLlyhXvIq7aIrrncs6cOYGoaT3u3buHlZWV1s/rPnToUHr06IGXlxedOnXSLOqrBpaWlvj4+FC9enV69OhBpkyZsLKyUjpWoqK/JG/bto1NmzZhZGQERI16+/XXXxVMlriEpnuLps3Tvunp6XHnzh2lY3w1NX828+XLx44dO3j06BGRkZHky5dPq6d9i1aqVCn8/Pw0jWy+vr7cvHkTGxsbhZMlTq0j26JHVm/YsEHznI6OjtY2/kRERMQ7+k4tI/Ig6rOZL18+pWN8NV9fXz58+KCZwuv9+/f4+/sDaPVaeZ06daJdu3aayk1XV1et7qEfLUuWLFrdISUhYWFhmoYfgAIFChAWFqZgouTT9mmiE/Lu3Ts2btzIkydPYh1rbR3JHk1tjW3RbG1tef/+PT179qRdu3ZERETQv39/pWMly+nTpxk5ciTHjx/HysqKefPm0bNnT61u/Jk/fz4Af/zxh2ZWEjWMghRC20njj0gz6aFiXKSu6EqJ9+/fc/78eU3lz5kzZ6hUqZLWNv64u7snul1bK1UgqrLzt99+o0iRInz48IFmzZphZmbG+/fvGTRoEK1bt1Y6YrxmzpxJ8+bNKVSoEB8/fqRt27Y8e/aMsLAwZs2aRd26dZWOmKBSpUqxfv16VS7qu2LFCvT09Bg0aBBubm74+fnRvHlzpWMly/v372NVGOrr62t1z73ozhHHjx/n4cOHtGrVCgBnZ2dVVCRWrlyZSZMm0bx581gjIwoWLKhgqsSp+bM5fvx4OnbsSKFChZSO8lVmzpypGYEKUfeKXz6njeKrNLx48aICSb5OzEYfNQgICCAsLIwMGWJ/ZQ0NDY21TqE2U2sFc6dOnWjWrJnmHvbEiRP89ttvBAQEUK5cOYXTJaxVq1bkzp1bc28+efJkVYyg7dSpE/Pnz6devXqxertr8zUTIHPmzDg7O9OyZUsgakYBbe+EFW3t2rW0atUKc3Nzhg0bxvXr1xk7dizVqlVTOlqi+vTpQ7FixbCxsVFFJ49oaj0Xdu3aFYAaNWpw/vx5goODVdUBAeDChQvUq1cPKysrrV9zSW2zkQihFtL4I9LUmTNn4vRS0dYKfZH2oqd769mzJ66uruTOnRuAp0+f8ueffyoZLVGrVq1KcJs296gFuHXrlmaEj6urKwUKFGDNmjW8fPmSXr16aW3jz/Hjxxk2bBgAu3fvRl9fn9OnT/Pw4UNGjx6t1Y0/oN5FfaO/ZOrq6tKsWTPevn3LokWLGDVqlMLJklapUiV69OihGQnk6upKpUqVFE6VsOjKqlmzZrF9+3bNl7VffvmFtm3bKhktWfbu3QtEfVaj6ejocOTIEYUSJY9aP5v58uWjf//+/Pjjj3To0IH69evHqTDXRtE9OqPp6upqjr0avH79GhcXF5ydnYmMjOTQoUNKR0pUQp1VtPU+pUaNGkyfPp1Ro0Zprj8RERHMmjWL6tWrK5wued69e8e0adN48eIFmzZtwsPDg//++4927dopHS1RHTt2pEKFCly4cAGA9u3ba+4Xx48fr2S0JFWqVEmrr+/xefXqFevWrWPXrl2aad/UcM2cNGkSQ4cOZeLEiQAULVqU2bNnKxsqmZydnenatStnz57F29ubqVOnMmXKFK1v/AkKCmLChAlKx0i2/fv306hRowRn+NDmuqCIiAh8fHzIlCkTEHXP4uzszKpVqzhx4oTC6ZL2ww8/MGHCBE6ePEnPnj0JCwtT1T2WECLlaP+3QpFujBw5khs3blCsWDFV9VIRae/58+eahh+IWizXy8tLwUSJU1tP2phi9i68dOmSptEkW7ZsWt0zyMDAINa6HI0bN0ZfX5/ChQtr/U3toUOHmDJlCm/evAHUsajvu3fvWLx4MS9evMDW1paGDRuyYMECzZzMajBu3Di2bt3KwYMHAahVqxZt2rRROFXSfHx8CA4O1kxXFxISgo+Pj8Kpknb06FGlI3w1NX42o3Xt2pWuXbty4sQJNm/ezPTp02nVqhVt27bVTJOpjUxNTbl69SqlS5cG4OrVq7FGimmjsLAwjhw5gpOTE9euXSMsLIzVq1dTpkwZpaMlKWZnlZCQEG7fvk2xYsW0tvFn0KBB9OzZk3r16lGsWDEgqtNKtmzZWLlypcLpkmfs2LHUqFGDzZs3A1FTHw0bNkzrG38AihQpotVTAMfHz8+PlStXcvv2bYKDgzXPr1+/XsFUSduwYQOHDh3S6vP1l8LDwzlz5gzbt28nICAAiDqnq0V0fcS5c+ews7OjXLlyREZGKpwqaaVLl+bOnTsULlxY6SjJcv/+feDzDB9qcfToUYYOHUpQUBCVK1dm4MCBDBo0iB9//JG5c+cqHS9Z5syZw+7du2nRogWWlpZ4eXlpRjJpmy5duvD3339TuXLlWHUQ0ffiZ86cUTCdEOonjT8izfz333/s2bNHq+eJFtrhxx9/ZMmSJZpRJzt37uTHH39UOFXCom9qE6LtUza8evUKS0tLzp8/j6Ojo+b5mF+atU14eDj+/v4YGxtz8eLFWDeyISEhCiZL2qxZs5g/fz5lypRRzaK+Y8aMwcTEhJo1a7Jv3z5NJdaWLVtU8+VTX1+fTp060alTJ6WjfJVGjRrh4OCAra0tENWDMvpnbXTlyhVNJXjMRbcBjh07xi+//KJQsqSp8bP5pTJlyvDgwQM8PDy4cuUKTk5OdOvWTWvXtxo2bBh9+/bVXCfv37/P4sWLFU6VsKlTp7J3714KFy5MixYtWLRoEba2tqpo+IG4nVXu37/P6tWrFUqTNFNTUzZt2sTp06e5desWENVLXNvXhIrp1atXtGvXjm3btgFRnVe0+fzyZcXbl7S9Am706NEUKFCAR48eMWDAAHbu3Enx4sWVjpWkHDlyqKrhB6IaT7Zt24aDg4OqGn2iGRkZsWLFCvbu3cumTZuIjIwkNDRU6VhJatu2LR07diRbtmyxOvFp61qQL168AD7P8KEWCxYsYP78+VSqVIlDhw7RpUsXHB0d6datm9LRki1z5sx07NgRT09P7t27R758+TRTNGqb6GkBd+7cqXASIdInafwRaSZbtmxKRxAqMWPGDP7880/s7OyAqC+iM2bMUDhVwhJbSFbbp2zo2bMnzZs3R19fn/Lly2sq4K5cuUKOHDkUTpewtm3bYm9vj7m5OdmyZaNEiRIA3Lt3T+vnGre0tNTq+fLj8/TpU800Xvb29lSpUoUTJ05ofQ99iBp1On36dACWLl1Knz59NNt69erFX3/9pVS0ZBk0aBClS5fm/PnzAAwcOJBatWopGyoRf/zxh2a9lu7du8dau2XhwoVa3fijxs9mtBs3brBp0yb+/fdfmjRpwsaNG8mVKxf+/v40adJEaxt/ypYty969e7ly5QoQ1XhlaWmpbKhEbNu2jTJlytCzZ08qV64MoNWjZJNSsGBBbt68qXSMJFWpUoVSpUrx+PFjVVTkx/Tl9Iu+vr5aPboguuLNycmJDx8+4ODgQGRkJE5OTlr92Yz2+PFjFi1axJEjR2jSpAn169enc+fOSsdKUqlSpRg8eDANGzaMVaGvraPyolWqVIkDBw7QsGFDpaN8tWnTprF582aGDh1KlixZePLkiea7pzYbNmwYvXv3Vs1sKmoYPZ2QGjVqAGBnZ8f8+fNV1fADcP36dRwdHTEwMCAyMpKwsDAWLVqkldfRqVOn4uLiQs6cOZWOIkS6JI0/ItVFz++aN29efv31V+rWrRtrkTxtnudVKMPKyoqFCxcqHSPZ1Di9UbRGjRpRoUIF3r59G2tqj+zZszN58mQFkyWuQ4cOlCpVilevXlG1alXN83p6eowePVrBZEmrV68emzdvxtbWNtYXfG1eVyTmOdvAwIDcuXOrouEH4M6dO5qf//nnn1iNP69evVIi0lerXbs2tWvXVjpGssSs1PyyglObKzxBnZ/NaKNGjaJjx46MHz8+Vl4zMzN69+6tYLKkWVpaan0FZ7STJ0/i5ubGzJkz8fHxoXnz5lo/1WhMMdf8iYiI4Pr166pYG8rd3Z3x48ejp6fH0aNHuX79OkuWLGH58uVKR0tSvXr1GD9+PAEBATg7O7N582bs7e2VjpWg6Io3d3d3nJ2dNc+PGzcOe3v7WCPEtVH0/Yq+vj4fPnzA0tISb29vhVMlLXpKrJij87R93VAAFxcX1q5di5GREcbGxqqaoilfvnyMGTNG8zhPnjz06tVLwUTJY2hoSPfu3ZWO8V34+PGj5t7VzMws1mM13Bv++eefTJ06VTNa9syZM0yePJmtW7cqnCwubf+OIITaaf/dvlC96JtZPz8/8uTJw927dzXb/Pz8pPFHxOvhw4d4eHjEmsKrefPmygVKREhICAYGBgQFBcW7XdtvDrNkycK7d+9i9V62srLi5MmTWj36p2TJkpQsWTLWc/nz51coTfLNmzcPiFokV0dHRxXrinh5eTFgwIAEHy9YsECJWMmSWGOEGnrsq239gpjH9Mvjq+3HW42fzWhubm4Jbmvbtm0aJvk6Hh4eTJgwIc71XluPuYWFBR06dKBDhw54eHiwc+dOgoOD6dChA3Z2dlp9rCH2mj8ZMmQgT548Wn3+jrZw4UKcnJzo0aMHEHX9f/LkicKpkqdHjx7s3r0bX19f3N3d6dSpE82aNVM6VpL8/f1jTd3p7e2Nv7+/wqkS9ujRI/LmzUvevHn58OEDdnZ2ODg4YG5urpW93L+k1vVD1ThF06xZsxg2bBiOjo7x3pdo+zmxevXqnDhxQjMqRdvdvXs33qk6tb2h8M6dO5QtWzbWd4fox2q5NwwKCop17G1sbDSzIWib9+/fazqNx0fqDIX4/0jjj0h10fO7tmjRItb0L9HPCfGl9evXs23bNt68eUPJkiW5ePEiP//8s9Y2/lSsWJErV65QtmxZTYVhNLXcHPbt25cePXrQtm1bIiIimDdvHseOHaN69epKR0vU5cuXmTVrFk+fPiU8PFzrv0hAVGWn2nw5mkqbpx37UmKNEWqgtvUL/Pz8NKML/P39Y4000OaKQ1DnZzNaWFgYO3fujNNIqO1z7E+cOJGBAwcybdo0Vq1axaZNm1SzdkSRIkUYM2YMw4cP5/Dhwzg7O2t9449aK5ghqqNKTDFHpGq7pk2b0rRpU6VjfJUuXbrQrFkzzVSd7u7uiU5zrLTBgwfj7OzMmzdvyJgxI127dqVkyZL4+flp/b0sxB6VF5O2j/xR4xRN5cuXB9DqaWgTs337dlasWIGpqalmOi9t/u6TN29eVqxYoXSMr6bme8JoxsbGnDt3jkqVKgFw/vx5re2U+vHjR02ncSFEypPGH5HqwsLCCA0NJSIiItZQWT8/vwRHSojv2/bt29mxYwft2rVj9erV3L17lyVLligdK0HRo00qVqyotb3xk7Jt2zaGDRvGmTNnePv2LXny5GHHjh1Kx0rSmDFj6NOnj+oWaPf09OTBgwfUrVuXgIAAQkNDyZgxo9KxEqTmhnpPT09atWpFZGSk5meI6nH46NEjZcMlg9rWL8iePbtmdEG2bNlijTTQ9rX/4lu3YNmyZfz+++8KJUq+8ePHEx4ezrlz52jXrh179uyhQoUKSsdKUkhICDY2NkRGRpI1a1YGDRqEvb29VlcyR4t5Hq9evbpmDSBtlFDFcjRtr2A2NTXl7du3mgb8c+fOYW5urnCq5Hn37h0bN27kyZMnhIWFaZ7X9tEFHTp0oHDhwpw7dw4LCwvat28fa3pgbfPx40cOHjzI8+fPY5V3XV1d/v33X60v4zGvlSEhIdy+fZtixYppbe7KlSsn2qFGWxsiIGoq3fDwcJ4+far10xjGR22jrQwMDFTZSBjt9OnTVKhQQVUdDqKNGTNGs+YPQGhoqNZOrZ8jRw6t77AkhJpJ449IdcuXL2fx4sVA1EK+0czMzOjatatCqYQ2MzAwwMTEhIiICCIjIylUqJBWV9JGf+F88eJFvBUs2vrFLaYff/yRDh06MGzYMMzNzZk2bZrW9gyKycjISBWLs8bk7OzMihUrCA0NpW7durx69YpJkyaxbt06paMlKTg4mN27d/P06dNYlVjDhw9XMFXi1NjbMCa1rV+g5pEFK1euJGvWrJQrVw6AdevWcfr0aVU0/ly/fh03Nzfs7Ozo1asX7du3j7W+lbaKXqza0tISDw8PrKyseP/+vcKpkubi4sJff/2lOY+/fv1aq8/jMSuWv6SGdUWGDh1Kjx498PLyolOnTjx69Ihly5YpHStZ+vTpQ7FixbCxsVHF4uzRotdZ0tXV5dixY1y/fp3evXtr7TpLgwcPZtu2bbx9+zZOeVdDGf/y2nn//n1Wr16tUJqkRTdAODk58eHDBxwcHIiMjMTJyQlLS0uF0yVNT0+PEydOqLLxR20NKfr6+kpH+L+sW7eOQYMGUahQIWxsbLCxsaFUqVJafz6PiIjA29ubQ4cO4enpCUStc6Wt/z1kzR8hUpc0/ohU169fP/r168ekSZMYP3680nGEChgbGxMaGkqRIkWYNWsW2bNnJyIiQulYCVL7F06Imhro7Nmz7Ny5k/v37/Prr78ydOhQbG1tlY6WqBo1auDu7q6KYxxt/fr17Ny5UzN3cf78+Xn79q3CqZJnwIABhIaGUqpUKdX0gKtYsSLh4eEsWbJElV/y1bZ+QVIjerW5UXnx4sX07NmTBQsWcO7cOQ4cOMCaNWuUjpUshoaGQFSFVlBQEObm5rx7907hVEmztbXl/fv39OzZk3bt2hEREaGKz+nff/+tqvO4mhtlAUqVKsX69eu5fPkyELXugoWFhcKpkicoKIgJEyYoHeOrqW2dpbp161K3bl2mTZvGqFGjlI7zfytYsCA3b95UOkaCohsg3N3dcXZ21jw/btw47O3tVXEer1WrFqtXr6Z58+aYmJhontfm+xSAFy9eMGvWLDw8PGJN83rkyBEFUyVs+/btsR6HhIQQHh6ueaztx3vFihWEhYVx5coVzp49y5AhQ/Dx8eHSpUtKR0uUrq4u8+fPp2bNmhQqVEjpOEnS5lkNhEgPpPFHpBlp+BHJNWHCBEJDQxk5ciRz587Fy8uLmTNnKh0rQenhC2dAQADbt2/H0NCQ/PnzU7RoUQYPHqz1jT/btm3jr7/+Us281xDVA+7LNS20vfdYtMePH7N//36lY3w1NffwnD17NkCs9Qu0eZHfhNY+U8MCudmzZ2fWrFn07t0bS0tL1q5dG6tCSJtZWlri4+ND9erV6dGjB5kyZcLKykrpWAlas2YN3bp1o2vXrty7d48aNWpw/vx5goODMTMzUzpektR8Hj958iSnT58GoFq1alStWlXhRMljbm6OjY2NptIwKChI6ysNAUqXLs2dO3coXLiw0lG+mhrXWVLrfXjMmQMiIiK4fv06GTJof1WNv78/3t7eZM6cGQBvb2+tX98vWvTMJLNmzdI8p+33KRC1FqStrS23b99m9uzZbNmyhTx58igdK0n//PMPkydP5s2bNwCquC+EqDJ99uxZTp8+zZUrV8iXLx82NjZKx0qWIkWKcO3aNUqVKqV0lCS1bNkSUOcsE0KogfbfUQghvivh4eEcOHAAR0dHTExM+PPPP5WOlGxq/cIJMGXKlFiPc+fOzebNmxVKk3xqm/caIGPGjHh6emrmSnd1ddX6tVCi5c6dG39/f1VUzn5JrT08Y6pQoQIeHh4MGDBAU2mhbdS4QK6jo2OstQt0dHQwMTFhzJgxgPavzQFRPVP19PQYNGgQbm5u+Pn50bx5c6VjJcjNzY1u3boBUV/oXVxc0NfX19rpSL6k1vP4qlWr2LVrF40bNwZg+vTpNG/enO7duyucLHEHDx5k6tSpvH79GlBPpSFA27Zt6dixI9myZdOM0IOo6bK0mZrXWVKjmDMHZMiQgTx58qji2tOlSxeaNWvGL7/8AkQ1YvXq1UvhVMmjxvsVgPfv39O6dWvWr19P2bJlKV26NA4ODvTr10/paImaOXMm8+fPV906rVWrVqVMmTL07duXCRMmqOY+BeDmzZu0a9cOa2vrWN99tPn6o8ZZJoRQA51ImVxRCKFlWrVqpdU3JenVqVOnuH37dqwpBLT9i4QaeXp6MmTIEB4+fEjmzJkxMjJi+fLlWt1rL3rk3atXr7hx4wbVq1ePdUOuht5YMReqVsNIFE9PT6ZOncrLly9p3Lgx7dq1Y8KECZw6dYpu3bqpYj0XtXBxcUl0e4sWLdIoScrq1q2b1k5b17x5c3bt2hXnZ7VQ43kcwM7Oji1btmga8P39/WnXrh1ubm4KJ0tcnTp1mDdvHiVKlFBVpSFETW1ob29PsWLFYo0Oq1ixooKpknbt2jUmTJiAl5cXRYoU0ayzVKJECaWjCS3j4eHBhQsXgKhyraZRbt7e3ly9ehWIWps4U6ZMCidKWuvWrdmxYwcODg7MmzePH3/8kUaNGmnttG/R1Pr9ft++fZw9e5b//vuPrFmzUrlyZapUqaLVUzBHO3/+fLzPa/P1p1GjRqqcZUIIbScjf4QQWic99NBXm9mzZ3P9+nXu379PnTp1OHLkiFYPaR82bBizZs3C3t4+Vo/9aNr85SJfvnzs2LGDR48eERkZSb58+bR+uqDoz2G+fPnIly+fwmm+jdp6eI4fP57SpUvTqVMnjhw5QuvWrSlcuDAHDx7khx9+UDpekjw8PJgwYQIeHh6EhIRontfGxja1Nu4k5cGDB0pHSFBkZCQfP34kMjIy1s/RtP16r8bzeLSYIzfVMoozS5Ysqpi2Jj6GhoZaP7IqPmpeZ0lNYk73Fh81rGmZK1cuwsPDVVEZHtOhQ4cYN26cJvfo0aOZPHkydevWVThZ4ipUqMCHDx9o164dLVu2xMDAgIYNGyodK0n16tVj8+bN2NraxhoFqe3Xe1tbW2xtbQkNDWXv3r0sXLiQuXPnauX97JeiG3kCAwMBVDGVsZpnmRBCm8nIHyGE1lFbD/30wM7ODhcXF1q2bMnu3bt59eoVY8eOZeXKlUpHi9eNGzcoUaKEKns0QdRaBS9fvoy14GnBggUVTJQ8Dx48oECBAkk+p608PT158OABdevWJSAggNDQUDJmzKh0rHjZ2dlpeuNHRERQtWpVTp48qYo1ACBqqqMBAwYwbdo0Vq1axaZNmzA1NaVnz55KR0tQ//79mTx5sqZMvH//nokTJ6pi6p341KpVi+PHjysdI15FihRR7dpQAKdPn6ZkyZKaabB8fX25efOmVneagM/T07Zu3RqI6igRGRnJtGnTlIyVpL1793Lv3j3q1asXq9JQDdfNuXPnUqFCBa1eq00op1OnTglu09HRYf369WmY5uu5u7szfvx49PT0OHr0KNevX2fJkiUsX75c6WhJatSoEUuXLtV0anr06BG///671o868PPz01x7nj9/jr+/P4UKFVI4VdJifr+Ppobr/Zo1azhz5gzXr1+ncOHCVK5cGRsbG8qUKaN0tCQ9ffqUIUOGcPv2bXR0dChWrBizZs0id+7cSkdL0JAhQ1Q7y4QQ2kwdNQhCiO+K2nropwcGBgZkyJABHR0dQkNDsbKy4uXLl0rHSlD0tCPa3sgTn02bNjF79mwyZsyoGbWko6Oj9dM1AAwdOjTOFFnxPaeNnJ2dWbFiBaGhodStW5dXr14xadIk1q1bp3S0eMVs5NHV1SVbtmyqafgBCAkJwcbGhsjISLJmzcqgQYOwt7fX6safp0+fxmoMzJQpE0+ePFEuUDqm9uv8zJkzY533zMzM4jynjcaMGcPy5cs16/xVqVJFFVNIvnr1inXr1rFr1y7NtG9quW5u376dFStWYGpqioGBgaaB88yZM0pHE1pgw4YNSkf4vyxcuBAnJyd69OgBQMmSJVVz3TQ0NIw1mj1v3rwYGRkpmChpkZGRODg4sG/fPgBy5MihcKLkU+t1/8OHD3Tr1o1y5crF6nygBuPHj6dNmzbY29sDUd+Fxo8fz9q1axVOljA1zzIhhDZTTy2CEEKIVGNqakpQUBBly5Zl5MiRZMmSReu/AAE8fPiQ5cuX8+TJE8LCwjTPa/O0b2vWrGHPnj3kzJlT6SjJ5u3tjbe3N8HBwTx48EDTW9/Pz08zlYC2W79+PTt37qRDhw4A5M+fn7dv3yqcKmGenp60atUqwcfaXMYBzRRYlpaWeHh4YGVlxfv37xVOlbjw8HDCw8M12UNDQ2NNWaeNKleuHO/Ul5GRkfj5+SmQ6PsQXYEfTVdXN9ZITm1Vt25d6tSpw+jRo6lQoYLScZJtw4YNHDp0iKxZsyod5avt3LlT6QhCJU6ePMnp06cBqFatGlWrVlU4UfJkyZIl1mO1LNJep04dli1bRqtWrYiMjMTZ2Zk6depopiHVxunIdHR0yJ49Oz4+PlhaWiod56u9f/8+1hpL2jr6PqbBgwcTFhaGp6cnENU4oZbOWN7e3rG+O9jb22v9aEJZb1iI1KGOs5YQQohUNXfuXPT09BgxYgRr167Fz89PFVMdDfhfe/cf1/O9/4//9uqHtGo1hqz5kR8TQsVGfsRRzhmWirDmxzkbhZAT2qYNWzVJbEMUGmMnv/vlR+jynvPJQcIMaeKYEo4TpdaPpXrV6/tH356nlIrF4/l8uV0vl3M5r9fj9c9tLq/q+XzeH4/7fcECuLi4wM3NTTHzFtq0aaOowg8AHDx4ENu3b8f9+/el3Z0AYGJigpkzZwpM1nT6+vowMjKqtSbn78zmzZtFR/hDxowZg7y8PHh5ecHDwwOVlZXw8fERHatBQ4cOha+vL6ZPnw6gqmA4bNgwwakapvQHyxcuXEBoaChu376NiooKxZyKMDIywqVLl9CvXz8AwKVLlxTRS//o0aM4dOgQVqxYgeLiYri5ucHV1RXm5uaiozXojTfeUGThBwAsLCxQVFSEW7duKW4mCr04kZGRiIuLw9ixYwEAK1euhKurq+znRRkZGSEnJ0cqhqekpEgtyeRuw4YNAFDnficsLEzW7ciMjY3h5uYGBweHWn935N4W61//+hf8/PzQs2dPAFUzlkJDQ2Vf5Lxy5Qrmz58PfX19AIBarcb69esV8ftcR0cHN2/eRJcuXQBUbSST870PUNUafePGjbUK4bNnz5ZlMZZISTjzh4iIFMvNzU32bXYet27dOjx69Ahjx45V3OyCiIgIzJ49W3SMZ+Lp6Ql/f38sXLgQsbGxiI+PR0JCAjZt2iQ62hNVVFRgw4YNsi+aNKa8vBylpaWyH95aXl6OTZs2SXNyRowYAS8vL1nvYp46dSr+8Y9/IDQ0FH5+fqLjPLXRo0fD29sbNjY2UjsvALIvkP/888+YP3++9Hv7xo0bCAsLU8QMgGrXr1/Htm3bcODAAaSlpYmO06CQkBBkZ2fj3XffrfV3c/jw4QJTNY2SZ6LQi+Ps7Ixdu3ZJfyeLiorg4eEhzf6Tq8uXL2P58uW4c+cOrKyskJmZifDwcKk9MzW/sLCwetflfmJi/PjxCA0NleaE/vrrr/Dz80NMTIzgZA2rnmFZPdMvOTkZa9euxe7duwUna9yJEyfwySefoGfPntBoNLh27RpWrVqFoUOHio72RP7+/qioqMCkSZMA/K/TgdxnExLJHU/+EBGRItunAcCwYcOQlJSkiAdA1eLi4gBU7cCuppTZBSUlJUhJSYGtra2sH4jXx9/fH4sWLUJGRgZGjhyJli1byv7hm66uLk6cOKGo4k9SUlKDn8v5Z1VfXx/z5s2T/QOUmnJzc5GXl4eTJ09i/vz5eHxPl9x3SrZs2RLOzs6iYzw1W1tbHD58GBcvXgRQ1b5GKS14KisrkZSUhNjYWJw7dw5ubm6iIzXqypUrAGrPR1GpVLL+fVJNyTNR6MWquUFC7pslqvXt2xc7duzAhQsXAFT9bnz11VcFp9Junp6eips9A1SdmKku/ABA165da91zylVJSYlU+AEAe3t7rFy5UmCipnNwcMDhw4elVnv9+vVDq1atBKdqWGpqaq2it52dHcaNGycwEZF2YPGHiIgU2T4NqLoA9/b2ho6OjmIGKR8/flx0hGdmYmKCzZs348qVK+jZsyfs7e0xaNAgqfWRnJmZmWHfvn3IzMyERqOBpaWlIr7rI0aMwHfffQdXV9da7T3k+lA/MjISAFBWVobU1FS89dZbAKpOGfTt21eWD2uPHDmC0aNHIyoqqt7Pq+dEydGf//xnjBgxAmVlZdKpE5VKJf0ulGvbmmoODg6KK+BXMzU1VVzu4OBgJCQkoHv37nB1dcWqVasUMd+vZtFHiZQ6E4VeHGtrayxZsgQTJ04EULX5SimnZ0xMTGBvby/NPSspKZHtNYo2GDlyJMaNG4cPPvgAHTp0EB2nyVq1aoWYmBiMHz8eABAbGyv7QgRQdb2dkpKCgQMHAgDOnj3L7/dz9vvvv0v3PCUlJYLTEGkHtn0jIiJFtk8DgFGjRmHRokXo3bu37FsGlZWVoUWLFk+8iFXSjURZWRkSEhKwbt063Lt3T9YPmJOTk+Hr64v8/Hy0b98eGzdulPqNK4GVlZX0WkkP9RcuXIi//vWvUmHw8uXL2L59O9asWSM4WV3r1q2Dj48PlixZUu/nSmg1MWXKlCcWr+Ro0KBB0vc5Pz8fRkZGiingA0B6ejqWL1+O9PR0lJWVSety/7kMDw+Hq6sr2rdvLzrKU3nSiUIlFN+mT5+Or7/+Gp6enoiNjUVKSgrCwsIUX9Ci5lVUVISIiAhpzsXgwYPh7e0t+1liiYmJCAoKwoMHDwBAMdcoSpabm4s9e/Zg37596Nq1K6ZMmYI//elPomM1KisrC4sXL8bVq1ehUqnQs2dPhIaGomPHjqKjNejy5ctYsGCBVLQvLy/HunXrFFGcTUxMxNKlS2FtbQ2NRoOrV68iMDAQTk5OoqM90ebNm3Hw4EFp/llCQgLGjRunmBmzRHLF4g8REeHrr79G//79FfEgpSZ3d3fZt6arZmNjg4sXL8LKykp66FlNKTfKx44dQ3JyMi5cuIDWrVtLJ3/69u0rOtoTjR8/HnPnzsWQIUOQkJCAhIQE6XQKPT/Ozs51ZhXUt0bNp6SkBBqNRvYPCwHg7t27DX4uxwJ+TdUzAIKDgxEZGYmoqCgYGRnBy8tLdDStNG3aNOl1WVkZrl69il69eili5gJnolBTDBo0CI6OjnBzc8OAAQNEx2myUaNGISQkpM7cNnr+Kioq8OOPP2LFihXQ0dHB1KlTMWXKFNm3hCsuLgYAGBkZCU7SdOXl5cjIyAAAWFpaQl9fX3Ciphk9ejQ2btwIS0tLAEBmZibmzJmDI0eOCE7WsKSkJJw5cwZAVZcPBwcHwYmIlI9t34iISJHt0wDAyckJu3btwujRo2vd7MjxFE2XLl0AAO+88w527NghOM2z+fvf/w4bGxt8/PHHGDRoEPT05H8ZUVFRAUdHRwBVhSAl/ttnZGTg119/hZOTE4qLi1FeXg4zMzPRsRpkaGiI+Ph4uLi4AAAOHDggy5/LxyUnJ9eZfSbntm8AcPDgQaxfvx5ZWVlQqVR48803MX/+fFn3SK8u7jx8+BDGxsbSjtqysjIUFRWJjNYkZWVlsLe3h0ajQdu2beHr64sJEyaw+POcPH5K5saNG/juu+8EpXk6nIlCTXH06FEcOnQIK1asQHFxMdzc3ODq6gpzc3PR0RpkamoKOzs70TFeOiUlJYiPj8fOnTvRsWNHTJw4ESkpKfD09JTdde7t27fRoUMH3Lhxo97Pu3Xr9oITNc3jnRqqW+yp1Wqo1WpFXNMaGBhIhR8A6Ny5syJavQ4fPlxxG1KJ5E7+T22IiOi5W7ZsGYKDg+u0T5O7b7/9FgDw5Zdfyr4l1qNHj3Ds2DHcu3ev3hY2SrjIPXnyJM6cOYMjR44gJCQE5ubmGDx4MD788EPR0Rr06NEj6aSVRqOp9V7uN28xMTHYvHkzysvL4eTkhOzsbAQEBOD7778XHa1BwcHB8PPzw9KlSwEAb731FkJCQgSnatgnn3yCtLQ09OrVSxHzoABg37592L59Oz7//HNp5s/PP/+M1atX49GjR5g0aZLYgI2YNWtWrQdVarUas2fPxt69ewWmalz198PU1BTp6elo164d8vLyBKd6eXTr1g1paWmiYzSZiYmJIv7GkzhmZmaYOnUqpk6diuvXr2Pbtm1wdHSU7fe8+sH4qFGjsHPnTowZM0b2m7C0RUBAABITEzFy5EisXr1amq3o7OyMd999V3C6uoKCgrBp06Z6N0eoVCr8+OOPAlI1ztbWFiqVCgDweLMkud5rPs7R0RHh4eFwd3eHRqNBTEwMHB0dpfsgOf2choaGws/PDz4+PtK/e01r164VkIpIe7D4Q0REMDU1leUNQ2PS09NFR2iyhQsXYs+ePcjJyanTdkylUiniwVDr1q3x7rvvwtzcHO3bt0dMTAx++uknWRd/rl27Bltb21o3btXvlXDztmPHDkRHR0unT7p06YKcnBzBqRpWUVGB8+fPIyYmRjrFYWxsLDhV4y5evIhDhw4ppp0HAGzfvh3fffcd2rVrJ60NHz4cb731FmbOnCn74k9ZWVmthw+vvPIKSktLBSZqmjFjxiAvLw9eXl7w8PBAZWUlfHx8RMfSWjU3TFRWViI1NVX2J0+r51o9Tiknq+nFq6ysRFJSEmJjY3Hu3Dm4ubmJjvRE1Q/Gq6+tAgICZL8JS1tYWFjg8OHDMDU1rfOZ3E79AMCmTZsAAMePHxec5On07NkTsbGxmD59uiz/XZtiw4YNAOoWTsLCwmT3c9q/f38AUMT8KiIlkvdVMxERvRBKap+mVE5OTnByckJwcPATB8vL3axZs3Dp0iV0794dAwcORGhoKPr16yc6VoOUVCCsj76+fp2+6HI/laKrq4s9e/Zg8uTJiij6VJN7e536aDSaWoWfau3btxeQ5tk8fPgQrVq1AlA1yLqyslJwoic7dOgQ3nvvPTg5OeG1116Dg4MDzp49i9LSUkV915Wm5oYJPT09dOzYUfa7gKOjo6XXhYWFUKvVeO2116DRaOrsIicKDg5GQkICunfvDldXV6xatUrW7ZmUfm2lZDNmzMDDhw/xz3/+EwDQr18/6W9o27ZtRUZr0IIFC+r83q5vTS5KS0sV37FBST+nI0eOBFB1LW5vb1/rM26WIPrjWPwhIiJFtU9TOqUWfoCqodtr166V9QMJbWNmZoaMjAxpB3l8fLwiihQDBw7E0aNHFXGiMCoqCkBVL/S//e1vcHJykmbQAPKe+aNWq1FUVFSn8FBQUFBrbpFcTZs2DR4eHtJsqPj4eFnPzdm6dSvee+89+Pj4IDY2FkBVgVZJp8WU6PGZP0pQPdcqKSkJy5Ytg66uLo4fP47U1FRs2LABERERghOSnJiZmWHv3r2KKtyTGImJiVi6dCmsra2h0Wjg7++PwMBAODk5iY7WoKysrDprN2/eFJCkabShY4MSrVq1Srq+amiNiJ6OSsOtR0RERNREN27cQEpKCoCqtjZdu3YVnKhp6mvBY2JiAhsbG/j5+aFNmzaCkjUsIyMDixYtws2bN9GqVSu0bNkSERER6Nixo+hoDRo0aBDy8/PRsmVLGBoayrrVUXVBtrCwECYmJrU+KywsRFhYmIhYTRIREYHTp08jICAAnTt3BlD1nVm+fDkGDx6M2bNniw3YBCkpKdKu2hEjRuCdd94RnOjJ3NzcYGdnhyNHjsDV1bXO5x9//PGLD6XF6tttXZMSHr5NmDABERER8PT0RFxcHICqtoEJCQligxE1g/T0dCxfvhzp6ekoKyuT1rl57PkZPXo0Nm7cCEtLSwBAZmYm5syZgyNHjghOVr+9e/diz549uHnzZq17hsLCQlhaWsq+EK7kjg1KcuvWLWRmZiIoKAiff/65tF59HX706FGB6YiUjyd/iIiIqEni4uKwZs0a6YHbpk2bsHjxYowbN05wssZNmTIFBQUFmDBhAoCq/xZdXV0YGhpi6dKlsr35NDMzw759+5CZmQmNRgNLS0vZt30Darc8krvg4GAAVQ/2H99ZKOeZC0BVK8aKigq4urpKp5XKy8sxc+ZMzJo1S3C6xsXHx8PFxQUDBw6ssyZH3377LRITE6Gjo4NXXnlFdByt9/hu65qUtPP68c0FNU8WEinZF198gb///e8IDg5GZGQkoqKi6rSqpeZlYGAgFX6AqlPLcj6RP2TIEHTq1AmBgYG1NkgYGxujR48eApM1DQs/L8aFCxcQExNT56SVsbExPv30U4HJiLQDiz9ERETUJFu3bkVMTIz0IOvBgweYMWOGIoo/J06cwL59+6T3n376KSZMmIDo6GiMHTtWYLL6JScnw9fXF/n5+Wjfvj02btyInj17io7VZBYWFlCr1cjIyAAAWFpaynZAu1qtRnl5OSorK/Ho0SNpHkdhYSFKSkoEp2uYSqXC3LlzMWnSJOTn50Oj0aBz586Kebj8/fff1yn01LcmF506dcKMGTNQUVGhiFNVSqfEdm+PMzIyQk5OjnTyNCUlpc4JQyKlKisrg729PTQaDdq2bQtfX19MmDBB1u07lc7R0RHh4eFwd3eHRqNBTEwMHB0dpesXuc1rtbCwgIWFBQ4dOiQ6CsmYm5sb3NzcEBMTg/Hjx4uOQ6R15HkXTkRERLJUcwezXFul1aegoAD5+fkwMzMDAOTl5aGoqAgAZDmvIzQ0FF999RWGDBmChIQErFmzpsFd8HKTmpoKHx8ftGjRAhqNBmq1GuvXr0fv3r1FR6sjIiJCau1mY2MjrRsbG+PDDz8UlKrpNBoN/vrXvyqqjVRqaiouX76MvLw8aeYSABQVFaG8vFxgssbp6Ojg8OHDLP68YP/6179w+vRpAMDQoUMxZMgQwYmaZvHixfD09MSdO3cwbdo0ZGZmIjw8XHQsomaho6MDADA1NUV6ejratWuHvLw8wam024YNGwAAa9eurbUeFhYm63mthYWF2LJlC65evYrS0lJpfceOHQJTkdyMHz8ehYWFyMjIqPU9efvttwWmIlI+Fn+IiIioSTp27Ih169Zh8uTJAIB9+/ahQ4cOglM1zbRp0+Di4iK1CTpx4gRmzpyJ4uJi2NnZCU5XV0VFBRwdHQFU3Qgp7eb4q6++wooVK2Bvbw+g6iRTYGAgdu/eLThZXfPmzcO8efMQEBCAZcuWiY7z1FQqFdq3b4/ffvsNpqamouM0SXZ2Nq5cuYKSkhJcuXJFWjcyMpLa8MlZp06dcOfOHbz55puio7wUIiMjERcXJ53SXLlyJVxdXTFjxgzByRrXt29f7NixAxcuXAAA2Nra4tVXXxWciqh5jB07Fnl5efDy8oKHhwcqKyvh4+MjOpZWS09PFx3hmfj7+6Nr167IzMzEggULEB0dLcsNQSRWQkICQkJCUFBQgLZt2yIrKwtWVlZ12jIT0dNRaap7WxARERE1IDc3F0FBQTh9+jRUKhUGDx6Mzz77DK1btxYdrUnS09Nx7tw5AFU7yKysrAQnejIXFxfs2bNHakH2/vvv13ovt7Yej3NxcUF8fHyja9Q8FixYgNTUVDg4ONSaRVOzv74cnTx5EkOHDhUd46l9+OGHuHTpEvr371/r3/vxndjUPJydnbFr1y4YGxsDqDoh5uHhgYMHDwpORvTyqqysxPXr16VrqfLycpSWlko/p0Q1jRs3DgcOHICzszMOHjyIsrIyTJ8+XZabgkiccePGYdu2bZgxYwbi4uJw6tQpHDt2DAEBAaKjESkaT/4QERFRoyoqKhAVFYVvvvlGdJRn9uabb6KiokIROw2vXbsGW1tb1NyjU/1ezm09qhkaGiIlJQUDBw4EAJw9e1b2BSsl6969O7p37y46xlPr378/vv32W9y+fRtr1qzBr7/+ioyMDDg5OYmO1qBx48YpYtaZNqn5QJkPl4nE09HRgZ+fn1SE1dfXl2UbXZKH6lmE+vr6yM/Ph6mpKR4+fCg4FcmNnp4eWrdujYqKCgDAkCFDsHr1asGpiJSPxR8iIiJqlK6uLk6cOKHYdh5JSUlYtmwZdHV1cfz4caSmpmLDhg2IiIgQHa1eSm3rUc3f3x8LFiyQbvbLy8uxbt06wam017x580RHeCZffPEF2rRpI33fzc3NsWjRItkXf9zc3ERHeKlYW1tjyZIlmDhxIgBg//79sLa2FpyKiNgCk5qqc+fOyM/Ph7OzMyZPngwTExNFbMaiF6t6VminTp3www8/wMLCAr///rvoWESKx7ZvRERE1CRhYWEwNDSEq6trrVZHSjjRMWHCBERERMDT0xNxcXEAgDFjxiAhIUFsMC1WXl6OjIwMAIClpSV3BD9Hubm5CA4Oxr179xAVFYX09HT8/PPP8PDwEB2tQa6uroiLi5P+H/hfaxg58/HxgUqlqrPOtm/PR1FRESIiInD69GkAwODBg+Ht7V3r7xARvXhsgUnP4vz58ygsLMSwYcOgp8f96PQ/ycnJsLa2Rm5uLr744gsUFhZi0aJFGDx4sOhoRIrG37RERETUJGFhYQCA0NBQaU0JLciqtWnTptb76lMpcjZo0KA6D5lNTExgY2MDPz+/Ov9NcqJWq6Gvr4+KigrcunULANCtWzfBqbTT559/DgcHB+zcuRMA0KVLF/j5+cm++PP4z2BpaSmUsC/tT3/6k/S6tLQUx44dQ9euXQUm0m5OTk5wdHSEv78/BgwYIDoOEf3/2AKTngV/j9OT2NvbA6i61/n+++/FhiHSIiz+EBERUZNcuHChzpoSTv0AgJGREXJycqRCSkpKCkxMTASnatyUKVNQUFCACRMmAADi4uKgq6sLQ0NDLF26VLZt66KiorB69WqYmZlJ/+YqlQo//vij4GTaKTs7Gx4eHtizZw+AqqKKjo6O4FSNGzBgACIiIlBWVoaUlBRs27YNI0eOFB2rUY+3fRs/fjxmzJghKI32O3r0KA4dOoQVK1aguLgYbm5ucHV1hbm5uehoRC81c3Nz6WFtteTkZEFpSI7q28QEQJphye8LAVX3DQ2ZMmXKC0pCpJ1Y/CEiIqImsbOzq3MDp6enh759+yIwMBBdunQRlKxxixcvhqenJ+7cuYNp06YhMzMT4eHhomM16sSJE9i3b5/0/tNPP8WECRMQHR2NsWPHCkzWsK1bt+LQoUOwsLAQHeWl8HjblIKCAkWcoPH19UVkZCSMjIwQGhqKkSNHwsvLS3Ssp6ZSqZCdnS06htYyMzPD1KlTMXXqVFy/fh3btm2Do6Mj0tLSREcjeqmtWrUKsbGxja7Ryys6Olp0BFKAK1euiI5ApNVY/CEiIqIm8fX1hYGBAdzd3aHRaBAbG4u8vDx06NABy5cvxw8//CA64hP17dsXO3bskE4v2dra4tVXXxWcqnEFBQXIz8+HmZkZACAvLw9FRUUAIOsZOm3atGHh5wUaNWoUli1bhuLiYsTExGDnzp3SaTG5qqiowJdffomgoCDMmTNHdJynUnPmj0ajQXp6ep3d79S8KisrkZSUhNjYWJw7d67O6SsienFu3bqFzMxMFBUVISkpSVovLCxESUmJwGQkN7wWpKYIDg4WHYFIq7H4Q0RERE1y7NgxxMTESO+nT5+O8ePHIyYmBtu2bROYrGlMTExga2uLs2fP4j//+Y8iij/Tpk2Di4sLhg8fDqDqJNDMmTNRXFwMOzs7wenqunHjBoCqgeyrVq3C2LFjYWBgIH3OmT/Ph6enJw4cOICCggIkJSVJ3xs509XVxbVr10THeCY1Z/7o6enho48+go2NjbhAWi44OBgJCQno3r07XF1dsWrVKrRs2VJ0LKKX1oULFxATE4OcnBxERkZK68bGxvj0008FJiO5elL7N7Z9o5qe1P6Nbd+I/hiVRgk9IYiIiEi40aNHY/PmzejQoQMA4Pbt2/D09MTRo0fh6uqKuLg4sQHrsXjxYsycORNWVlbIz8+Hi4sLjI2NkZeXB19fX0ycOFF0xEalp6fj3LlzAIC3334bVlZWghM9WUPzWjjzhx63Zs0aFBcXw9XVFa+88oq0Lvcioa+vLwICAqCvrw8XFxfk5eVh1qxZnPvznISHh8PV1RXt27cXHYWIaoiJicH48eNFxyAFuHv3rvS6tLQUBw8ehJ6eHubOnSswFcnNkiVLpNelpaVISUlBv379sHHjRoGpiJSPxR8iIiJqkmPHjmHZsmWwtrYGAKSlpeHLL7/E0KFD8cMPP2D27NmCE9Y1ZswYJCQkAAC2b9+OpKQkbN26Ff/9738xa9YsxMfHC07YuKKiIty6dQu9e/cWHaXJTp06hT59+kinqwoKCpCWlsbWWM/J/fv3ERQUhJSUFABVO2w/++wztG3bVnCyhtVXLFRCkbC62H306FGcPn0aS5YswaRJk3Dw4EHR0YiIXpjKykpER0fj1q1bWLx4Me7cuYP79+/L8mQyyc+kSZOwd+9e0TFIxu7fv4+AgACEhYWJjkKkaGz7RkRERE3yl7/8BQMGDMClS5cAAP369UPr1q0BQJaFHwC1Wo799NNPcHJyAgCYm5vX235CbpKSkrBs2TLo6uri+PHjSE1NxYYNGxARESE6WoNCQ0NrDXw2NjbmEOjn6OOPP8aAAQPw2WefAagasPzxxx/j+++/FxusEcePHxcd4Zmo1WoAwLlz5zB8+HAYGhpCR0dHcCoiohdr5cqVyM3NRVpaGhYvXgwjIyOsWLEC+/fvFx2NZO727dvIzc0VHYNkrm3btsjMzBQdg0jxWPwhIiKiJmvdunWDrb3kKDs7G6ampjh79ix8fHyk9dLSUoGpmmbdunXYv38/PD09AQB9+vRBVlaW4FSN02g0tYprOjo6qKioEJhIuz148ADz5s2T3nt7e+Pw4cMCEzXNggULsHbt2kbX5KZr166YOXMmbt68iUWLFuHRo0eiIxERvXApKSmIi4uDm5sbAOC1115TxLUVvXg1Z/5UVlZCrVZLG1aIqtWc+aPRaJCamopWrVoJTESkHVj8ISIiIq3l5eUFV1dX6Ovro3///tIskYsXL+KNN94QnK5p2rRpU+t9ixYtBCVpOiMjI1y6dAn9+vUDAFy6dKnWTBdqXh07dsStW7fQqVMnAEBWVhY6d+4sNlQT1FfIvHnzpoAkTyckJAQnT55Ejx498MorryA7OxuLFi0SHYuI6IUyMDCotdGjsrJSYBqSs+joaOm1np4eXn/9dejq6gpMRHJ05coV6bWuri66du1aaw4QET0bFn+IiIhIa40ePRoDBgxATk4OrKyspPX27dsjMDBQYLKmMTIyQk5OjvRwJSUlBSYmJoJTNc7Pzw9z586Vim03btxgv+7nwMfHByqVCqWlpXBxcUH//v0BABcuXJD1zIW9e/diz549yMzMhLu7u7ReWFgIS0tLgcmapmXLllILSQBo164d2rVrJzAREdGL99Zbb+HAgQPQaDS4c+cONm/eLP0dIqqpuLgYb775prQR6Pfff8fdu3fRvXt3wclIToKDg0VHINJKKo1GoxEdgoiIiOh5e/jwYa15RUpoI3D58mUsX74cd+7cgZWVFTIzMxEeHg5ra2vR0Rr122+/4eLFiwAAGxsbmJqaig2khRqboVTdikdu7t69izt37iAwMBDLli0DUNWG0cTEBH369OFuYCIiBbh37x42bNggzW8bOXIk5s+fz2I41TF+/Hjs2bMH+vr6AICysjK8//77iImJEZyM5CQoKAjz5s2DmZkZACAvLw8bN25ki0CiP4gnf4iIiEjrJSYmYunSpbC2toZGo4G/vz8CAwNr7d6Xo759+2LHjh24cOECAMDW1havvvqq4FRNY2pqiuHDh4uOodXkWtxpjIWFBSwsLNCtWzf07NkT+vr6cHFxQV5eHmbNmoUZM2aIjkhERI3w9vauswnBzc2t0Y0J9PKpqKiQCj9AVQtjzoKkx50/f14q/ABVc8TOnTsnLhCRlmDxh4iIiLTeN998g927d0stpTIzMzFnzhzZF38AwMTEBLa2tjh79iz+85//KKb4Qy9Obm4u/vGPfyArKwtqtVpaX7t2rcBUjcvMzISJiQmOHj2KgQMHYsmSJZg0aRKLP0REMqZWq1FeXo7Kyko8evQIGo0GKpUKBQUFKCkpER2PZEhPTw+3b99Ghw4dAFTN/OMpX3pcfQXBmte1RPRsWPwhIiIirWdgYFBrlkjnzp3RsmVLgYkatnjxYsycORNWVlbIz8+Hi4sLjI2NkZeXB19fX0ycOFF0RJIRb29v9OrVC/b29op6mFJ9Q3/u3DkMHz4choaG0NHREZyKiIgaEhERgbCwMKhUKtjY2EjrxsbG+PDDD8UFI9maN28ePDw8pBPhSUlJCAoKEpyK5KZPnz4ICgqCp6cnNBoNIiMj0adPH9GxiBSPM3+IiIhIa1XvQI2MjISenh7c3d2h0WgQExMDtVqNefPmCU5YvzFjxiAhIQEAsH37diQlJWHr1q3473//i1mzZiE+Pl5wQpKTcePG4cCBA6JjPLUFCxaguLgYN2/exKFDh6Cjo4PJkyfz+01EpAABAQHS3DaixmRkZOD06dMAgKFDh6JTp06CE5HcFBUV4auvvsL/+3//DyqVCiNGjMCSJUtgYmIiOhqRorH4Q0RERFrLysoKKpUK9V3uqFQqXL16VUCqxtXsme/j44NBgwbhgw8+AAC4uroiLi5OYDqSm6VLl2Lq1Kno0aOH6ChP5dGjRzh58iR69OiBDh06IDs7G9euXYODg4PoaERERERERIrHtm9ERESktdLT00VHeGbZ2dkwNTXF2bNn4ePjI62XlpYKTEVy9P7772Pq1KkwNzeHgYGBtL5//36BqRrXsmXLWnO32rVrh3bt2glMRERERM1lwoQJUKlUT/xc7tcp9GIkJSU1+Hl1u0AiejYs/hAREdFLo6ysrNYwUUNDQ4FpnszLywuurq7Q19dH//790a1bNwDAxYsX8cYbbwhOR3Lj5+eH2bNno1evXoqa+UNERETa65NPPhEdgRQgMjLyiZ+pVCoWf4j+ILZ9IyIiIq2XmJiIoKAg3L9/X2oDJ+e2bwDw4MED5OTkSK3rgKrTQBUVFSwAUS012wQSERERERERASz+EBER0Utg1KhRCAkJgY2NDXR0dETHeSoPHz7EpUuXAAD9+vVDq1atBCciufn6668xYMAAzsohIiIi2SksLMSWLVtw9erVWu2Ld+zYITAVyVFhYSEyMjJqfU/efvttgYmIlI9t34iIiEjrmZqaws7OTnSMp5aYmIilS5fC2toaGo0G/v7+CAwMrDUnhWjv3r3YvHkzjIyM0KJFC+lkW3JysuhoRERE9JLz9/dH165dkZmZiQULFiA6Ohq9e/cWHYtkJiEhASEhISgoKEDbtm2RlZUFKysrnm4n+oNY/CEiIiKtN2rUKOzcuRNjxoyBgYGBtC7XmT/VvvnmG+zevRuWlpYAgMzMTMyZM4fFH6olOjpadAQiIiKiet26dQvr16/Hjz/+iPfeew9//vOfMX36dNGxSGYiIiIQExODGTNmIC4uDqdOncKxY8dExyJSPBZ/iIiISOt98803AICAgADFzPwBAAMDA6nwAwCdO3dGy5YtBSYiObKwsBAdgYiIiKheLVq0AADo6+sjPz8fpqamePjwoeBUJDd6enpo3bo1KioqAABDhgzB6tWrBaciUj4Wf4iIiEjrpaeni47wVEpKSgAAjo6OCA8Ph7u7OzQaDWJiYuDo6Cg4HcnNoEGDoFKp6qyz7RsRERGJ1rlzZ+Tn58PZ2RmTJ0+GiYkJ275RHdWtizt16oQffvgBFhYW+P3330XHIlI8lUaj0YgOQURERET/Y2VlJZ1QepwSTizRi3X37l3pdWlpKQ4ePAg9PT3MnTtXYCoiIiKi2s6fP4/CwkIMGzYMenrcj07/k5ycDGtra+Tm5uKLL75AYWEhFi1ahMGDB4uORqRoLP4QEREREWmZSZMmYe/evaJjEBER0Uvq3//+Nx48eFDn4f2pU6fQrl07dOvWTVAyIqKXh47oAERERETUsLKyMpSUlEj/I2rI7du3kZubKzoGERERvcTWrFmDVq1a1Vl//fXXOcuFJJs3b0ZUVFSd9aioKGzZskVAIiLtwjOWRERERDKVmJiIoKAg3L9/X2oDx7Zv9LiaM38qKyuhVqvx2WefCU5FREREL7OcnBxYWVnVWe/Ro0etlrX0cjt27Bh27dpVZ33ixIlwd3eHp6engFRE2oPFHyIiIiKZCg0NxbfffgsbGxvo6PDANtUvOjpaeq2np4fXX38durq6AhMRERHRy66wsPCJn5WXl7/AJCRnlZWVaNGiRZ31+taI6Omx+ENEREQkU6amprCzsxMdg2TOwsICQFV7wIqKCpSVlQEADA0NRcYiIiKil1irVq3wyy+/oFevXrXWf/nlF5iZmYkJRbJTXFwMtVoNPb3aj6jLy8vZ7pqoGXALKREREZFMjRo1Cjt37kR+fj5n/tATJSYmwsHBAf369YOdnR1sbW1ZNCQiIiKhvL294e3tjX379iE9PR3p6enYt28f5s6dC29vb9HxSCYcHBywcuVKVFRUSGuVlZUIDQ3FsGHDBCYj0g4qjUajER2CiIiIiOqq2SedM3/oSUaNGoWQkBC2ByQiIiJZOXnyJDZu3IhffvkFANC7d2/Mnj2bD/VJUlxcDC8vL9y7d086JfbLL7/A3NwcW7ZsgZGRkeCERMrG4g8RERERkYK5u7tj//79omMQERERET2T5ORkpKWlAagqEtrb2wtORKQdWPwhIiIiIlKwTZs2wcTEBGPGjIGBgYG0zpk/REREJAfJycnIysqCWq2W1qZMmSIwEcnN6dOn0b9//1rXskT0x7H4Q0RERESkYGwPSERERHL1ySefIC0tDb169YKurq60HhwcLDAVyY2XlxcuX76M7t27w97eHvb29ujbt2+t7wwRPT0Wf4iIiIiIiIiIiKjZ/eUvf8GhQ4egr68vOgrJnFqtxsWLF3HmzBnExMTgt99+w08//SQ6FpGi6YkOQERERERERERERNrH3NxcdARSgIcPH+LMmTM4ffo0Ll68CEtLS879IWoGPPlDREREREREREREzSYqKgoAcP36ddy4cQNOTk5o0aKF9Dln/lBNPXv2hI2NDebOnYuBAwfypBhRM+HJHyIiIiIiIiIiImo2V65ckV537NgR169fF5iG5G7NmjU4c+YMQkJC0LZtWwwaNAiDBw9G7969RUcjUjSe/CEiIiIiIiIiIiIiocrLy3H48GGsW7cO9+7dw9WrV0VHIlI0nvwhIiIiIiIiIiKiZpeQkAAHBwcYGxtj7dq1uHz5MhYuXMgTHVTL1q1bkZycjNTUVPTo0QMTJ07kzB+iZsDiDxERERERERERETW78PBwjBkzBpcvX8bJkycxffp0BAYGYvfu3aKjkYzk5+fjo48+gp2dHQwMDETHIdIaOqIDEBERERERERERkfbR06vad37q1ClMnDgRzs7OKC0tFZyK5GbhwoV4++23kZWVhX//+99Qq9WiIxFpBZ78ISIiIiIiIiIiomanUqmQkJCAhIQEbNy4EUDVXBeimq5cuYL58+dDX18fAKBWq7F+/Xq2ByT6g1j8ISIiIiIiIiIioma3dOlSbNmyBe7u7ujQoQMyMzMxcOBA0bFIZoKCgrBixQppzk9ycjLbAxI1A5VGo9GIDkFERERERERERERELx8XFxfEx8c3ukZET4czf4iIiIiIiIiIiKjZZWZmwsPDAyNHjgQApKWlYf369YJTkdwYGhoiJSVFen/27FkYGhoKTESkHXjyh4iIiIiIiIiIiJrd3/72N3z00UdYs2YN4uPjUVlZCWdnZxw+fFh0NJKRy5cvY8GCBWjRogWAqrlQ69atg7W1teBkRMrGmT9ERERERERERETU7AoLC+Hg4ICvv/4aAKCjowN9fX3BqUhu+vbti8TERGRkZAAALC0t+T0hagYs/hAREREREREREVGz09XVRXl5OVQqFQAgOzsbOjqcQkFVSkpKar3v0KEDAECtVkOtVrP1G9EfxOIPERERERERERERNbsPPvgA8+bNQ15eHtavX4+4uDj4+vqKjkUyYWtrKxUGH59MolKpcPXqVRGxiLQGZ/4QERERERERERHRc3H+/Hn885//hEajwciRIzFgwADRkUgm3NzcEBsbi+nTp2PHjh2i4xBpHZ78ISIiIiIiIiIioudiwIABLPhQvUpLS3Hs2DHcu3cPSUlJdT4fPny4gFRE2oMnf4iIiIiIiIiIiKjZ3bx5ExEREcjKyoJarZbW9+/fLzAVycX//d//Yc+ePTh//jysra1rfaZSqXgaiOgPYvGHiIiIiIiIiIiImp2zszNcXFzQu3dv6OrqSuvvvPOOwFQkN8HBwViyZInoGERah8UfIiIiIiIiIiIianbVM12IiOjF0xEdgIiIiIiIiIiIiLTPsGHD6p3lQkREz5+e6ABERERERERERESkfezt7eHt7Q0dHR20aNECGo0GKpUKycnJoqMREWk9tn0jIiIiIiIiIiKiZjdq1CgsWrQIvXv3ho7O/xoQWVhYCExFRPRy4MkfIiIiIiIiIiIianampqZ49913RccgInopceYPERERERERERERNTsnJyfs2rUL+fn5KCkpkf5HRETPH9u+ERERERERERERUbOzsrKSXqtUKmnmz9WrVwWmIiJ6ObD4Q0REREREREREREREpEXY9o2IiIiIiIiIiIiIiEiLsPhDRERERERERERERESkRVj8ISIiIiIiIiIiIiIi0iIs/hAREREREREREREREWkRFn+IiIiIiIiIiIiIiIi0yP8H3uPqt0qphr8AAAAASUVORK5CYII=\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "seaborn.set(rc = { \"figure.figsize\": (30, 20) })\n", - "seaborn.heatmap(df_numeric.corr(), annot = True)" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "7611c892-1e13-404e-849e-3cfa15d8dfca", - "metadata": {}, - "outputs": [], - "source": [ - "x = df_numeric[[\"theta\", \"r0\", \"L\", \"radius\"]] #.drop(columns = [\"flowRate\"])\n", - "y = df_numeric[\"flowRate\"]" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "id": "1a38aaa0-89fb-40f7-abce-e500ab696349", - "metadata": {}, - "outputs": [], - "source": [ - "from sklearn.model_selection import train_test_split\n", - "xtr, xte, ytr, yte = train_test_split(x, y, test_size = 0.2, random_state = 100)" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "id": "1b7e9f62-35a9-4a1a-9ffa-a2a6e757ff46", - "metadata": {}, - "outputs": [], - "source": [ - "from sklearn import preprocessing\n", - "scaler = preprocessing.MinMaxScaler()\n", - "x_scaled = scaler.fit_transform(xtr)" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "id": "19bd2f52-a5bf-404c-93f7-0626bc35a915", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "DecisionTreeRegressor(random_state=500)" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "from sklearn.tree import DecisionTreeRegressor\n", - "neigh = DecisionTreeRegressor(random_state = 500)\n", - "neigh.fit(x_scaled, ytr)" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "id": "d063265f-2f06-4290-811e-b6b1753bcac9", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "2.664398739090909e-15" - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "from sklearn.metrics import mean_absolute_error\n", - "xte_scaled = scaler.transform(xte)\n", - "y_pred = neigh.predict(xte_scaled)\n", - "mean_absolute_error(yte, y_pred)" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "id": "762af50c-371a-4ba5-b5ab-763970ef2a37", - "metadata": {}, - "outputs": [], - "source": [ - "#df_numeric[[\"theta\", \"r0\", \"L\", \"radius\", \"flowRate\", \"volumeCell\", \"volume\"]]" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "id": "7a951647-efa1-4231-b96d-f67bc0ed6c33", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
thetar0Lradius
00.291.02.01.408451
\n", - "
" - ], - "text/plain": [ - " theta r0 L radius\n", - "0 0.29 1.0 2.0 1.408451" - ] - }, - "execution_count": 12, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "test_df = DataFrame([{\n", - " \"theta\": 0.29,\n", - " \"r0\": 1.,\n", - " \"L\": 2.,\n", - " \"radius\": 1. / (1. - 0.29)\n", - "}]); test_df" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "id": "bc9204db-bde4-4032-b4f5-313e99e25ab5", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "array([4.53058768e-15])" - ] - }, - "execution_count": 13, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "neigh.predict(scaler.transform(test_df))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "4b95277f-c49e-42b9-8d5f-3334d5ca7729", - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "c56035b1-18d5-4c88-94b6-da4d7eccac9a", - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "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.10.0" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/playground/untitled.tex b/playground/untitled.tex deleted file mode 100644 index f972a5b..0000000 --- a/playground/untitled.tex +++ /dev/null @@ -1,23 +0,0 @@ -\documentclass{article} -\usepackage{tikz} -\usetikzlibrary{calc} -\usepackage{amssymb} - -\begin{document} -\begin{tikzpicture} - \draw[semithick] (0, 0) circle (1); - \draw[semithick] (2, 0) circle (1); - \draw[semithick] (1, 1.73205) circle (1); - \draw[dashed,color=gray] (0,0) arc (-90:90:0.5 and 1.5);% right half of the left ellipse - \draw[semithick] (0,0) -- (4,1);% bottom line - \draw[semithick] (0,3) -- (4,2);% top line - \draw[semithick] (0,0) arc (270:90:0.5 and 1.5);% left half of the left ellipse - \draw[semithick] (4,1.5) ellipse (0.166 and 0.5);% right ellipse - \draw (-1,1.5) node {$\varnothing d_1$}; - \draw (3.3,1.5) node {$\varnothing d_2$}; - \draw[|-,semithick] (0,-0.5) -- (4,-0.5); - \draw[|->,semithick] (4,-0.5) -- (4.5,-0.5); - \draw (0,-1) node {$x=0$}; - \draw (4,-1) node {$x=l$}; -\end{tikzpicture} -\end{document} \ No newline at end of file diff --git a/playground/wPrismaticLayer/anisotropy.db b/playground/wPrismaticLayer/anisotropy.db deleted file mode 100644 index 80960bd..0000000 Binary files a/playground/wPrismaticLayer/anisotropy.db and /dev/null differ diff --git a/playground/wPrismaticLayer/anisotropy.toml b/playground/wPrismaticLayer/anisotropy.toml deleted file mode 100644 index f72c3b4..0000000 --- a/playground/wPrismaticLayer/anisotropy.toml +++ /dev/null @@ -1,281 +0,0 @@ -# -*- coding: utf-8 -*- -# This file is part of anisotropy. -# License: GNU GPL version 3, see the file "LICENSE" for details. - -[logger] -name = "anisotropy" -format = "[ %(levelname)s ] %(message)s" - -[base] -simple = true -bodyCentered = true -faceCentered = true - -[[structures]] - [structures.structure] - type = "simple" - # auto # from theta: list # theta: float - theta = [0.01, 0.28, 0.01] # [min, max, step] - # auto # from directions:list # direction: list - directions = [ - [1, 0, 0], - [0, 0, 1], - [1, 1, 1] - ] - - # r0 = - # L = - # radius = - - filletsEnabled = true - # auto # fillets: float - - [structures.mesh] - maxSize = 0.5 - minSize = 0.05 - - fineness = 5 - growthRate = 0.5 - nbSegPerEdge = 2 - nbSegPerRadius = 1 - - chordalErrorEnabled = true - chordalError = 0.25 - - secondOrder = false - optimize = true - quadAllowed = false - useSurfaceCurvature = true - fuseEdges = true - checkChartBoundary = false - - viscousLayers = true - thickness = [0.01, 0.005] # [min, max] # step is controlled by theta count - numberOfLayers = 1 - stretchFactor = 1 - isFacesToIgnore = true - facesToIgnore = ["inlet", "outlet"] - # auto # faces: list - extrusionMethod = "SURF_OFFSET_SMOOTH" - - [[structures.submesh]] - name = "strips" - maxSize = 0.5 - minSize = 0.05 - - fineness = 5 - growthRate = 0.2 - nbSegPerEdge = 2 - nbSegPerRadius = 3 - - chordalErrorEnabled = true - chordalError = 0.25 - - secondOrder = false - optimize = true - quadAllowed = false - useSurfaceCurvature = true - fuseEdges = true - checkChartBoundary = false - - [structures.flowapproximation] - transportProperties.nu = 1e-6 - - pressure.boundaryField.inlet = { type = "fixedValue", value = 1e-3 } - pressure.boundaryField.outlet = { type = "fixedValue", value = 0.0 } - - # multiplication velocity value with flow direction vector - velocity.boundaryField.inlet = { type = "fixedValue", value = 6e-5 } - velocity.boundaryField.outlet = { type = "zeroGradient", value = "None" } - - [structures.flow] - scale = [ 1e-5, 1e-5, 1e-5 ] - - transportProperties.nu = 1e-6 - - pressure.boundaryField.inlet = { type = "fixedValue", value = 1e-3 } - pressure.boundaryField.outlet = { type = "fixedValue", value = 0.0 } - - velocity.boundaryField.inlet = { type = "pressureInletVelocity", value = 0.0 } - velocity.boundaryField.outlet = { type = "zeroGradient", value = "None" } - - -[[structures]] - [structures.structure] - type = "bodyCentered" - # auto # from theta: list # theta: float - theta = [0.01, 0.17, 0.01] # [min, max, step] - # auto # from directions:list # direction: list - directions = [ - [1, 0, 0], - [0, 0, 1], - [1, 1, 1] - ] - - # r0 = - # L = - # radius = - - filletsEnabled = true - # auto # fillets: float - - [structures.mesh] - maxSize = 0.5 - minSize = 0.05 - - fineness = 5 - growthRate = 0.5 - nbSegPerEdge = 2 - nbSegPerRadius = 1 - - chordalErrorEnabled = true - chordalError = 0.25 - - secondOrder = false - optimize = true - quadAllowed = false - useSurfaceCurvature = true - fuseEdges = true - checkChartBoundary = false - - viscousLayers = true - thickness = [0.005, 0.0005] # [min, max] # step is controlled by theta count - numberOfLayers = 1 - stretchFactor = 1 - isFacesToIgnore = true - facesToIgnore = ["inlet", "outlet"] - # auto # faces: list - extrusionMethod = "SURF_OFFSET_SMOOTH" - - [[structures.submesh]] - name = "strips" - maxSize = 0.5 - minSize = 0.05 - - fineness = 5 - growthRate = 0.2 - nbSegPerEdge = 2 - nbSegPerRadius = 3 - - chordalErrorEnabled = true - chordalError = 0.25 - - secondOrder = false - optimize = true - quadAllowed = false - useSurfaceCurvature = true - fuseEdges = true - checkChartBoundary = false - - [structures.flowapproximation] - transportProperties.nu = 1e-6 - - pressure.boundaryField.inlet = { type = "fixedValue", value = 1e-3 } - pressure.boundaryField.outlet = { type = "fixedValue", value = 0.0 } - - # multiplication velocity value with direction vector - velocity.boundaryField.inlet = { type = "fixedValue", value = 6e-5 } - velocity.boundaryField.outlet = { type = "zeroGradient", value = "None" } - - [structures.flow] - scale = [ 1e-5, 1e-5, 1e-5 ] - - transportProperties.nu = 1e-6 - - pressure.boundaryField.inlet = { type = "fixedValue", value = 1e-3 } - pressure.boundaryField.outlet = { type = "fixedValue", value = 0.0 } - - velocity.boundaryField.inlet = { type = "pressureInletVelocity", value = 0.0 } - velocity.boundaryField.outlet = { type = "zeroGradient", value = "None" } - - -[[structures]] - [structures.structure] - type = "faceCentered" - # auto # from theta: list # theta: float - theta = [0.01, 0.12, 0.01] # [min, max, step] - # auto # from directions:list # direction: list - directions = [ - [1, 0, 0], - [0, 0, 1], - [1, 1, 1] - ] - - # r0 = - # L = - # radius = - - filletsEnabled = true - # auto # fillets: float - - [structures.mesh] - maxSize = 0.5 - minSize = 0.05 - - fineness = 5 - growthRate = 0.5 - nbSegPerEdge = 2 - nbSegPerRadius = 1 - - chordalErrorEnabled = true - chordalError = 0.25 - - secondOrder = false - optimize = true - quadAllowed = false - useSurfaceCurvature = true - fuseEdges = true - checkChartBoundary = false - - viscousLayers = true - thickness = [0.001, 0.0005] # [min, max] # step is controlled by theta count - numberOfLayers = 1 - stretchFactor = 1 - isFacesToIgnore = true - facesToIgnore = ["inlet", "outlet"] - # auto # faces: list - extrusionMethod = "SURF_OFFSET_SMOOTH" - - [[structures.submesh]] - name = "strips" - maxSize = 0.5 - minSize = 0.05 - - fineness = 5 - growthRate = 0.2 - nbSegPerEdge = 2 - nbSegPerRadius = 3 - - chordalErrorEnabled = true - chordalError = 0.25 - - secondOrder = false - optimize = true - quadAllowed = false - useSurfaceCurvature = true - fuseEdges = true - checkChartBoundary = false - - [structures.flowapproximation] - transportProperties.nu = 1e-6 - - pressure.boundaryField.inlet = { type = "fixedValue", value = 1e-3 } - pressure.boundaryField.outlet = { type = "fixedValue", value = 0.0 } - - # multiplication velocity value with direction vector - velocity.boundaryField.inlet = { type = "fixedValue", value = 6e-5 } - velocity.boundaryField.outlet = { type = "zeroGradient", value = "None" } - - [structures.flow] - scale = [ 1e-5, 1e-5, 1e-5 ] - - transportProperties.nu = 1e-6 - - pressure.boundaryField.inlet = { type = "fixedValue", value = 1e-3 } - pressure.boundaryField.outlet = { type = "fixedValue", value = 0.0 } - - velocity.boundaryField.inlet = { type = "pressureInletVelocity", value = 0.0 } - velocity.boundaryField.outlet = { type = "zeroGradient", value = "None" } - - - diff --git a/playground/woPrismaticLayer-2/anisotropy.db b/playground/woPrismaticLayer-2/anisotropy.db deleted file mode 100644 index f061bdd..0000000 Binary files a/playground/woPrismaticLayer-2/anisotropy.db and /dev/null differ diff --git a/playground/woPrismaticLayer-2/anisotropy.pid b/playground/woPrismaticLayer-2/anisotropy.pid deleted file mode 100644 index 1fe1d60..0000000 --- a/playground/woPrismaticLayer-2/anisotropy.pid +++ /dev/null @@ -1 +0,0 @@ -18221 \ No newline at end of file diff --git a/playground/woPrismaticLayer-2/anisotropy.toml b/playground/woPrismaticLayer-2/anisotropy.toml deleted file mode 100644 index 223514c..0000000 --- a/playground/woPrismaticLayer-2/anisotropy.toml +++ /dev/null @@ -1,281 +0,0 @@ -# -*- coding: utf-8 -*- -# This file is part of anisotropy. -# License: GNU GPL version 3, see the file "LICENSE" for details. - -[logger] -name = "anisotropy" -format = "[ %(levelname)s ] %(message)s" - -[base] -simple = true -bodyCentered = true -faceCentered = true - -[[structures]] - [structures.structure] - type = "simple" - # auto # from theta: list # theta: float - theta = [0.01, 0.28, 0.01] # [min, max, step] - # auto # from directions:list # direction: list - directions = [ - [1, 0, 0], - [0, 0, 1], - [1, 1, 1] - ] - - # r0 = - # L = - # radius = - - filletsEnabled = true - # auto # fillets: float - - [structures.mesh] - maxSize = 0.5 - minSize = 0.05 - - fineness = 5 - growthRate = 0.5 - nbSegPerEdge = 2 - nbSegPerRadius = 1 - - chordalErrorEnabled = true - chordalError = 0.25 - - secondOrder = false - optimize = true - quadAllowed = false - useSurfaceCurvature = true - fuseEdges = true - checkChartBoundary = false - - viscousLayers = false - thickness = [0.01, 0.005] # [min, max] # step is controlled by theta count - numberOfLayers = 1 - stretchFactor = 1 - isFacesToIgnore = true - facesToIgnore = ["inlet", "outlet"] - # auto # faces: list - extrusionMethod = "SURF_OFFSET_SMOOTH" - - [[structures.submesh]] - name = "strips" - maxSize = 0.5 - minSize = 0.05 - - fineness = 5 - growthRate = 0.2 - nbSegPerEdge = 2 - nbSegPerRadius = 3 - - chordalErrorEnabled = true - chordalError = 0.25 - - secondOrder = false - optimize = true - quadAllowed = false - useSurfaceCurvature = true - fuseEdges = true - checkChartBoundary = false - - [structures.flowapproximation] - transportProperties.nu = 1e-6 - - pressure.boundaryField.inlet = { type = "fixedValue", value = 1e-3 } - pressure.boundaryField.outlet = { type = "fixedValue", value = 0.0 } - - # multiplication velocity value with flow direction vector - velocity.boundaryField.inlet = { type = "fixedValue", value = 6e-5 } - velocity.boundaryField.outlet = { type = "zeroGradient", value = "None" } - - [structures.flow] - scale = [ 1e-5, 1e-5, 1e-5 ] - - transportProperties.nu = 1e-6 - - pressure.boundaryField.inlet = { type = "fixedValue", value = 1e-3 } - pressure.boundaryField.outlet = { type = "fixedValue", value = 0.0 } - - velocity.boundaryField.inlet = { type = "pressureInletVelocity", value = 0.0 } - velocity.boundaryField.outlet = { type = "zeroGradient", value = "None" } - - -[[structures]] - [structures.structure] - type = "bodyCentered" - # auto # from theta: list # theta: float - theta = [0.01, 0.17, 0.01] # [min, max, step] - # auto # from directions:list # direction: list - directions = [ - [1, 0, 0], - [0, 0, 1], - [1, 1, 1] - ] - - # r0 = - # L = - # radius = - - filletsEnabled = true - # auto # fillets: float - - [structures.mesh] - maxSize = 0.5 - minSize = 0.05 - - fineness = 5 - growthRate = 0.5 - nbSegPerEdge = 2 - nbSegPerRadius = 1 - - chordalErrorEnabled = true - chordalError = 0.25 - - secondOrder = false - optimize = true - quadAllowed = false - useSurfaceCurvature = true - fuseEdges = true - checkChartBoundary = false - - viscousLayers = false - thickness = [0.005, 0.0005] # [min, max] # step is controlled by theta count - numberOfLayers = 1 - stretchFactor = 1 - isFacesToIgnore = true - facesToIgnore = ["inlet", "outlet"] - # auto # faces: list - extrusionMethod = "SURF_OFFSET_SMOOTH" - - [[structures.submesh]] - name = "strips" - maxSize = 0.5 - minSize = 0.05 - - fineness = 5 - growthRate = 0.2 - nbSegPerEdge = 2 - nbSegPerRadius = 3 - - chordalErrorEnabled = true - chordalError = 0.25 - - secondOrder = false - optimize = true - quadAllowed = false - useSurfaceCurvature = true - fuseEdges = true - checkChartBoundary = false - - [structures.flowapproximation] - transportProperties.nu = 1e-6 - - pressure.boundaryField.inlet = { type = "fixedValue", value = 1e-3 } - pressure.boundaryField.outlet = { type = "fixedValue", value = 0.0 } - - # multiplication velocity value with direction vector - velocity.boundaryField.inlet = { type = "fixedValue", value = 6e-5 } - velocity.boundaryField.outlet = { type = "zeroGradient", value = "None" } - - [structures.flow] - scale = [ 1e-5, 1e-5, 1e-5 ] - - transportProperties.nu = 1e-6 - - pressure.boundaryField.inlet = { type = "fixedValue", value = 1e-3 } - pressure.boundaryField.outlet = { type = "fixedValue", value = 0.0 } - - velocity.boundaryField.inlet = { type = "pressureInletVelocity", value = 0.0 } - velocity.boundaryField.outlet = { type = "zeroGradient", value = "None" } - - -[[structures]] - [structures.structure] - type = "faceCentered" - # auto # from theta: list # theta: float - theta = [0.01, 0.12, 0.01] # [min, max, step] - # auto # from directions:list # direction: list - directions = [ - [1, 0, 0], - [0, 0, 1], - [1, 1, 1] - ] - - # r0 = - # L = - # radius = - - filletsEnabled = true - # auto # fillets: float - - [structures.mesh] - maxSize = 0.5 - minSize = 0.05 - - fineness = 5 - growthRate = 0.5 - nbSegPerEdge = 2 - nbSegPerRadius = 1 - - chordalErrorEnabled = true - chordalError = 0.25 - - secondOrder = false - optimize = true - quadAllowed = false - useSurfaceCurvature = true - fuseEdges = true - checkChartBoundary = false - - viscousLayers = false - thickness = [0.001, 0.0005] # [min, max] # step is controlled by theta count - numberOfLayers = 1 - stretchFactor = 1 - isFacesToIgnore = true - facesToIgnore = ["inlet", "outlet"] - # auto # faces: list - extrusionMethod = "SURF_OFFSET_SMOOTH" - - [[structures.submesh]] - name = "strips" - maxSize = 0.5 - minSize = 0.05 - - fineness = 5 - growthRate = 0.2 - nbSegPerEdge = 2 - nbSegPerRadius = 3 - - chordalErrorEnabled = true - chordalError = 0.25 - - secondOrder = false - optimize = true - quadAllowed = false - useSurfaceCurvature = true - fuseEdges = true - checkChartBoundary = false - - [structures.flowapproximation] - transportProperties.nu = 1e-6 - - pressure.boundaryField.inlet = { type = "fixedValue", value = 1e-3 } - pressure.boundaryField.outlet = { type = "fixedValue", value = 0.0 } - - # multiplication velocity value with direction vector - velocity.boundaryField.inlet = { type = "fixedValue", value = 6e-5 } - velocity.boundaryField.outlet = { type = "zeroGradient", value = "None" } - - [structures.flow] - scale = [ 1e-5, 1e-5, 1e-5 ] - - transportProperties.nu = 1e-6 - - pressure.boundaryField.inlet = { type = "fixedValue", value = 1e-3 } - pressure.boundaryField.outlet = { type = "fixedValue", value = 0.0 } - - velocity.boundaryField.inlet = { type = "pressureInletVelocity", value = 0.0 } - velocity.boundaryField.outlet = { type = "zeroGradient", value = "None" } - - - diff --git a/playground/woPrismaticLayer/anisotropy.db b/playground/woPrismaticLayer/anisotropy.db deleted file mode 100644 index b161e33..0000000 Binary files a/playground/woPrismaticLayer/anisotropy.db and /dev/null differ diff --git a/playground/woPrismaticLayer/anisotropy.toml b/playground/woPrismaticLayer/anisotropy.toml deleted file mode 100644 index 223514c..0000000 --- a/playground/woPrismaticLayer/anisotropy.toml +++ /dev/null @@ -1,281 +0,0 @@ -# -*- coding: utf-8 -*- -# This file is part of anisotropy. -# License: GNU GPL version 3, see the file "LICENSE" for details. - -[logger] -name = "anisotropy" -format = "[ %(levelname)s ] %(message)s" - -[base] -simple = true -bodyCentered = true -faceCentered = true - -[[structures]] - [structures.structure] - type = "simple" - # auto # from theta: list # theta: float - theta = [0.01, 0.28, 0.01] # [min, max, step] - # auto # from directions:list # direction: list - directions = [ - [1, 0, 0], - [0, 0, 1], - [1, 1, 1] - ] - - # r0 = - # L = - # radius = - - filletsEnabled = true - # auto # fillets: float - - [structures.mesh] - maxSize = 0.5 - minSize = 0.05 - - fineness = 5 - growthRate = 0.5 - nbSegPerEdge = 2 - nbSegPerRadius = 1 - - chordalErrorEnabled = true - chordalError = 0.25 - - secondOrder = false - optimize = true - quadAllowed = false - useSurfaceCurvature = true - fuseEdges = true - checkChartBoundary = false - - viscousLayers = false - thickness = [0.01, 0.005] # [min, max] # step is controlled by theta count - numberOfLayers = 1 - stretchFactor = 1 - isFacesToIgnore = true - facesToIgnore = ["inlet", "outlet"] - # auto # faces: list - extrusionMethod = "SURF_OFFSET_SMOOTH" - - [[structures.submesh]] - name = "strips" - maxSize = 0.5 - minSize = 0.05 - - fineness = 5 - growthRate = 0.2 - nbSegPerEdge = 2 - nbSegPerRadius = 3 - - chordalErrorEnabled = true - chordalError = 0.25 - - secondOrder = false - optimize = true - quadAllowed = false - useSurfaceCurvature = true - fuseEdges = true - checkChartBoundary = false - - [structures.flowapproximation] - transportProperties.nu = 1e-6 - - pressure.boundaryField.inlet = { type = "fixedValue", value = 1e-3 } - pressure.boundaryField.outlet = { type = "fixedValue", value = 0.0 } - - # multiplication velocity value with flow direction vector - velocity.boundaryField.inlet = { type = "fixedValue", value = 6e-5 } - velocity.boundaryField.outlet = { type = "zeroGradient", value = "None" } - - [structures.flow] - scale = [ 1e-5, 1e-5, 1e-5 ] - - transportProperties.nu = 1e-6 - - pressure.boundaryField.inlet = { type = "fixedValue", value = 1e-3 } - pressure.boundaryField.outlet = { type = "fixedValue", value = 0.0 } - - velocity.boundaryField.inlet = { type = "pressureInletVelocity", value = 0.0 } - velocity.boundaryField.outlet = { type = "zeroGradient", value = "None" } - - -[[structures]] - [structures.structure] - type = "bodyCentered" - # auto # from theta: list # theta: float - theta = [0.01, 0.17, 0.01] # [min, max, step] - # auto # from directions:list # direction: list - directions = [ - [1, 0, 0], - [0, 0, 1], - [1, 1, 1] - ] - - # r0 = - # L = - # radius = - - filletsEnabled = true - # auto # fillets: float - - [structures.mesh] - maxSize = 0.5 - minSize = 0.05 - - fineness = 5 - growthRate = 0.5 - nbSegPerEdge = 2 - nbSegPerRadius = 1 - - chordalErrorEnabled = true - chordalError = 0.25 - - secondOrder = false - optimize = true - quadAllowed = false - useSurfaceCurvature = true - fuseEdges = true - checkChartBoundary = false - - viscousLayers = false - thickness = [0.005, 0.0005] # [min, max] # step is controlled by theta count - numberOfLayers = 1 - stretchFactor = 1 - isFacesToIgnore = true - facesToIgnore = ["inlet", "outlet"] - # auto # faces: list - extrusionMethod = "SURF_OFFSET_SMOOTH" - - [[structures.submesh]] - name = "strips" - maxSize = 0.5 - minSize = 0.05 - - fineness = 5 - growthRate = 0.2 - nbSegPerEdge = 2 - nbSegPerRadius = 3 - - chordalErrorEnabled = true - chordalError = 0.25 - - secondOrder = false - optimize = true - quadAllowed = false - useSurfaceCurvature = true - fuseEdges = true - checkChartBoundary = false - - [structures.flowapproximation] - transportProperties.nu = 1e-6 - - pressure.boundaryField.inlet = { type = "fixedValue", value = 1e-3 } - pressure.boundaryField.outlet = { type = "fixedValue", value = 0.0 } - - # multiplication velocity value with direction vector - velocity.boundaryField.inlet = { type = "fixedValue", value = 6e-5 } - velocity.boundaryField.outlet = { type = "zeroGradient", value = "None" } - - [structures.flow] - scale = [ 1e-5, 1e-5, 1e-5 ] - - transportProperties.nu = 1e-6 - - pressure.boundaryField.inlet = { type = "fixedValue", value = 1e-3 } - pressure.boundaryField.outlet = { type = "fixedValue", value = 0.0 } - - velocity.boundaryField.inlet = { type = "pressureInletVelocity", value = 0.0 } - velocity.boundaryField.outlet = { type = "zeroGradient", value = "None" } - - -[[structures]] - [structures.structure] - type = "faceCentered" - # auto # from theta: list # theta: float - theta = [0.01, 0.12, 0.01] # [min, max, step] - # auto # from directions:list # direction: list - directions = [ - [1, 0, 0], - [0, 0, 1], - [1, 1, 1] - ] - - # r0 = - # L = - # radius = - - filletsEnabled = true - # auto # fillets: float - - [structures.mesh] - maxSize = 0.5 - minSize = 0.05 - - fineness = 5 - growthRate = 0.5 - nbSegPerEdge = 2 - nbSegPerRadius = 1 - - chordalErrorEnabled = true - chordalError = 0.25 - - secondOrder = false - optimize = true - quadAllowed = false - useSurfaceCurvature = true - fuseEdges = true - checkChartBoundary = false - - viscousLayers = false - thickness = [0.001, 0.0005] # [min, max] # step is controlled by theta count - numberOfLayers = 1 - stretchFactor = 1 - isFacesToIgnore = true - facesToIgnore = ["inlet", "outlet"] - # auto # faces: list - extrusionMethod = "SURF_OFFSET_SMOOTH" - - [[structures.submesh]] - name = "strips" - maxSize = 0.5 - minSize = 0.05 - - fineness = 5 - growthRate = 0.2 - nbSegPerEdge = 2 - nbSegPerRadius = 3 - - chordalErrorEnabled = true - chordalError = 0.25 - - secondOrder = false - optimize = true - quadAllowed = false - useSurfaceCurvature = true - fuseEdges = true - checkChartBoundary = false - - [structures.flowapproximation] - transportProperties.nu = 1e-6 - - pressure.boundaryField.inlet = { type = "fixedValue", value = 1e-3 } - pressure.boundaryField.outlet = { type = "fixedValue", value = 0.0 } - - # multiplication velocity value with direction vector - velocity.boundaryField.inlet = { type = "fixedValue", value = 6e-5 } - velocity.boundaryField.outlet = { type = "zeroGradient", value = "None" } - - [structures.flow] - scale = [ 1e-5, 1e-5, 1e-5 ] - - transportProperties.nu = 1e-6 - - pressure.boundaryField.inlet = { type = "fixedValue", value = 1e-3 } - pressure.boundaryField.outlet = { type = "fixedValue", value = 0.0 } - - velocity.boundaryField.inlet = { type = "pressureInletVelocity", value = 0.0 } - velocity.boundaryField.outlet = { type = "zeroGradient", value = "None" } - - - diff --git a/pyproject.toml b/pyproject.toml index e123911..781f32e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -23,7 +23,7 @@ include = ["doc"] exclude = ["doc/source", "doc/Makefile"] [tool.poetry.scripts] -anisotropy = "anisotropy.core.cli:anisotropy" +anisotropy = "anisotropy.cli:anisotropy_cli" [tool.poetry.dependencies] python = ">=3.9,<3.11"