From 05fa0333a3b42cc3444bb12d05c2b2c306071a8f Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Wed, 4 Feb 2015 14:29:12 +0100 Subject: [PATCH 001/464] Trivial external engine to create example. --- openpathsampling/external_engine/engine.c | 25 +++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 openpathsampling/external_engine/engine.c diff --git a/openpathsampling/external_engine/engine.c b/openpathsampling/external_engine/engine.c new file mode 100644 index 000000000..979fdfcce --- /dev/null +++ b/openpathsampling/external_engine/engine.c @@ -0,0 +1,25 @@ +#include +#include +#include + +int main(int argc, char ** argv) +{ + if (argc < 2) { + printf("Requires two arguments: delay time (ms) and filename"); + exit(1); + } + // argv[0] is program name + int milliseconds = atoi(argv[1]); + FILE * f = (argc == 2) ? stdout : fopen(argv[2], "w"); + + struct timespec sleep_time, foo; + + sleep_time.tv_sec = milliseconds / 1000; + sleep_time.tv_nsec = (milliseconds % 1000) * 1000000; + + int max_steps = 100000; + int i; for (i=0; i Date: Thu, 19 Mar 2015 12:46:55 +0100 Subject: [PATCH 002/464] Little Makefile for the test external engine --- openpathsampling/external_engine/Makefile | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 openpathsampling/external_engine/Makefile diff --git a/openpathsampling/external_engine/Makefile b/openpathsampling/external_engine/Makefile new file mode 100644 index 000000000..8ab816fe9 --- /dev/null +++ b/openpathsampling/external_engine/Makefile @@ -0,0 +1,2 @@ +exe: engine.c + ${CC} -o engine engine.c From 1511664bad0802cad5955072fae3ebd772cb9db4 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 19 Mar 2015 14:13:24 +0100 Subject: [PATCH 003/464] Start on the external_engine.py --- openpathsampling/external_engine/Makefile | 1 + openpathsampling/external_engine/engine.c | 2 +- .../external_engine/external_engine.py | 47 +++++++++++++++++++ 3 files changed, 49 insertions(+), 1 deletion(-) create mode 100644 openpathsampling/external_engine/external_engine.py diff --git a/openpathsampling/external_engine/Makefile b/openpathsampling/external_engine/Makefile index 8ab816fe9..c75ec1fb5 100644 --- a/openpathsampling/external_engine/Makefile +++ b/openpathsampling/external_engine/Makefile @@ -1,2 +1,3 @@ exe: engine.c ${CC} -o engine engine.c + ln -s ${PWD}/engine ~/bin/engine diff --git a/openpathsampling/external_engine/engine.c b/openpathsampling/external_engine/engine.c index 979fdfcce..2a0e36746 100644 --- a/openpathsampling/external_engine/engine.c +++ b/openpathsampling/external_engine/engine.c @@ -5,7 +5,7 @@ int main(int argc, char ** argv) { if (argc < 2) { - printf("Requires two arguments: delay time (ms) and filename"); + printf("Requires two arguments: delay time (ms) and filename\n"); exit(1); } // argv[0] is program name diff --git a/openpathsampling/external_engine/external_engine.py b/openpathsampling/external_engine/external_engine.py new file mode 100644 index 000000000..3ea4c60ea --- /dev/null +++ b/openpathsampling/external_engine/external_engine.py @@ -0,0 +1,47 @@ +import openpathsampling as paths +from paths.dynamics_engine import DynamicsEngine +from paths.todict import restores_as_full_object + +import subprocess + +import logging + +@restores_as_full_object +class ExternalEngine(DynamicsEngine): + """ + Generic object to handle arbitrary external engines. + + Typically, this will be subclassed for any given engine. As written, it + will work with the trivial `engine.c` developed for testing purposes. + """ + + default_options = { + 'n_frames_max' : 10000, + 'engine_command' : "engine 100 engine.out", + } + + + def __init__(self, options, template): + pass + + @property + def current_snapshot(self): + pass + + @current_snapshot.setter + def current_snapshot(self, snap): + pass + + def generate_next_frame(self): + pass + + def read_frame_from_file(self, frame_num): + pass + + def start(self, snapshot=None): + super(ExternalEngine, self).start(snapshot) + pass + + def stop(self, trajectory): + super(ExternalEngine, self).stop(trajectory) + pass From 8d1597ea8856f8d4e5ead11855adb542d5189965 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Sun, 29 Mar 2015 16:17:19 +0200 Subject: [PATCH 004/464] Skeleton of tests for external engine --- .../external_engine/external_engine.py | 4 ++-- .../external_engine/testexternal_engine.py | 22 +++++++++++++++++++ 2 files changed, 24 insertions(+), 2 deletions(-) create mode 100644 openpathsampling/external_engine/testexternal_engine.py diff --git a/openpathsampling/external_engine/external_engine.py b/openpathsampling/external_engine/external_engine.py index 3ea4c60ea..4722a2a8c 100644 --- a/openpathsampling/external_engine/external_engine.py +++ b/openpathsampling/external_engine/external_engine.py @@ -1,6 +1,6 @@ import openpathsampling as paths -from paths.dynamics_engine import DynamicsEngine -from paths.todict import restores_as_full_object +from openpathsampling import DynamicsEngine +from openpathsampling import restores_as_full_object import subprocess diff --git a/openpathsampling/external_engine/testexternal_engine.py b/openpathsampling/external_engine/testexternal_engine.py new file mode 100644 index 000000000..4b72f5400 --- /dev/null +++ b/openpathsampling/external_engine/testexternal_engine.py @@ -0,0 +1,22 @@ + +from nose.tools import (assert_equal, assert_not_equal, assert_items_equal, + assert_almost_equal, raises) +from nose.plugins.skip import Skip, SkipTest +import openpathsampling as paths + +from external_engine import * + +class testExternalEngine(object): + def setUp(self): + options = {} + template = paths.Snapshot() + self.eng = ExternalEngine(options, template) + + def test_current_snapshot(self): + raise SkipTest + + def test_read_frame_from_file(self): + raise SkipTest + + def test_start_stop(self): + raise SkipTest From c65357312876d3f8b3e0fe969c0f45bfbcfe1cd4 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Mon, 30 Mar 2015 15:32:17 +0200 Subject: [PATCH 005/464] More organization work on external_engine --- openpathsampling/dynamics_engine.py | 1 + .../external_engine/external_engine.py | 40 +++++++++++++++---- .../external_engine/testexternal_engine.py | 31 +++++++++++--- openpathsampling/toy_dynamics/toy_engine.py | 3 +- 4 files changed, 60 insertions(+), 15 deletions(-) diff --git a/openpathsampling/dynamics_engine.py b/openpathsampling/dynamics_engine.py index a50cedee6..2205dabf2 100644 --- a/openpathsampling/dynamics_engine.py +++ b/openpathsampling/dynamics_engine.py @@ -160,6 +160,7 @@ def _register_options(self, options = None): self.options = okay_options for variable, value in okay_options.iteritems(): + #print variable, "=", value setattr(self, variable, value) else: self.options = {} diff --git a/openpathsampling/external_engine/external_engine.py b/openpathsampling/external_engine/external_engine.py index 4722a2a8c..a6d80668c 100644 --- a/openpathsampling/external_engine/external_engine.py +++ b/openpathsampling/external_engine/external_engine.py @@ -2,10 +2,12 @@ from openpathsampling import DynamicsEngine from openpathsampling import restores_as_full_object -import subprocess - import logging +import subprocess +import shlex +import time + @restores_as_full_object class ExternalEngine(DynamicsEngine): """ @@ -18,30 +20,52 @@ class ExternalEngine(DynamicsEngine): default_options = { 'n_frames_max' : 10000, 'engine_command' : "engine 100 engine.out", + 'trajectory_file' : "engine.out" } - def __init__(self, options, template): - pass + # needs to be overridden for each engine + options = { + 'n_spatial' : 1, + 'n_atoms' : 1 + } + super(ExternalEngine, self).__init__(options=options) + self.template = template @property def current_snapshot(self): - pass + return self._current_snapshot @current_snapshot.setter def current_snapshot(self, snap): - pass + self._current_snapshot = snap + # for a real engine, this should also write frame to whatever + # file is input for the trajectory def generate_next_frame(self): + # should be completely general pass def read_frame_from_file(self, frame_num): + # main part that needs to be rewritten for each engine pass + def set_input_file(self, fname): + self.input_file = fname + + def set_output_file(self, fname): + self.output_file = fname + + def engine_command(self): + return "engine " + str(delay_time) + " " + str(self.output_file) + def start(self, snapshot=None): super(ExternalEngine, self).start(snapshot) - pass + try: + self.proc = subprocess.Popen(shlex.split(self.engine_command())) + except OSError: + pass def stop(self, trajectory): super(ExternalEngine, self).stop(trajectory) - pass + self.proc.kill() diff --git a/openpathsampling/external_engine/testexternal_engine.py b/openpathsampling/external_engine/testexternal_engine.py index 4b72f5400..413374cac 100644 --- a/openpathsampling/external_engine/testexternal_engine.py +++ b/openpathsampling/external_engine/testexternal_engine.py @@ -8,15 +8,36 @@ class testExternalEngine(object): def setUp(self): - options = {} - template = paths.Snapshot() - self.eng = ExternalEngine(options, template) + slow_options = { + 'n_frames_max' : 10000, + 'engine_command' : "engine 100 engine.out", + 'trajectory_file' : "engine.out" + } + fast_options = { + 'n_frames_max' : 10000, + 'engine_command' : "engine 0 engine.out", + 'trajectory_file' : "engine.out" + } + self.template = paths.Snapshot() + self.slow_engine = ExternalEngine(slow_options, self.template) + self.fast_engine = ExternalEngine(fast_options, self.template) + self.ensemble = paths.LengthEnsemble(5) - def test_current_snapshot(self): + def test_start_stop(self): + self.slow_engine.start(self.template) + # check that it is running + self.slow_engine.stop(self.template) + # check that it has stopped raise SkipTest def test_read_frame_from_file(self): raise SkipTest - def test_start_stop(self): + def test_slow_run(self): + # generate traj in LengthEnsemble if frames only come every 100ms raise SkipTest + + def test_fast_run(self): + # generate traj in LengthEnsemble if frames come as fast as possible + raise SkipTest + diff --git a/openpathsampling/toy_dynamics/toy_engine.py b/openpathsampling/toy_dynamics/toy_engine.py index e31d4f47a..bf0778584 100644 --- a/openpathsampling/toy_dynamics/toy_engine.py +++ b/openpathsampling/toy_dynamics/toy_engine.py @@ -44,8 +44,7 @@ def __init__(self, options, template): options['n_atoms'] = 1 - super(ToyEngine, self).__init__( - options=options) + super(ToyEngine, self).__init__(options=options) self.template = template self.mass = template.topology.masses From 0ddfff2277d09a8cf9af5c70a8b3e534f166b0ea Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Wed, 1 Apr 2015 18:37:45 +0200 Subject: [PATCH 006/464] Engine starts and stops correctly. --- devtools/ci/requirements-conda-2.7.txt | 3 +- openpathsampling/external_engine/engine.c | 4 +- .../external_engine/external_engine.py | 82 ++++++++++++++----- .../external_engine/testexternal_engine.py | 38 +++++++-- 4 files changed, 96 insertions(+), 31 deletions(-) diff --git a/devtools/ci/requirements-conda-2.7.txt b/devtools/ci/requirements-conda-2.7.txt index 19d0c6d71..5afd4f218 100644 --- a/devtools/ci/requirements-conda-2.7.txt +++ b/devtools/ci/requirements-conda-2.7.txt @@ -12,4 +12,5 @@ openmmtools ipython ipython-notebook matplotlib -svgwrite \ No newline at end of file +svgwrite +psutil diff --git a/openpathsampling/external_engine/engine.c b/openpathsampling/external_engine/engine.c index 2a0e36746..0f54d329b 100644 --- a/openpathsampling/external_engine/engine.c +++ b/openpathsampling/external_engine/engine.c @@ -17,9 +17,9 @@ int main(int argc, char ** argv) sleep_time.tv_sec = milliseconds / 1000; sleep_time.tv_nsec = (milliseconds % 1000) * 1000000; - int max_steps = 100000; + int max_steps = 1000000; int i; for (i=0; i Date: Thu, 2 Apr 2015 13:15:49 +0200 Subject: [PATCH 007/464] Start some docs on external_engine --- docs/dynamics_engines_api.md | 58 ++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 docs/dynamics_engines_api.md diff --git a/docs/dynamics_engines_api.md b/docs/dynamics_engines_api.md new file mode 100644 index 000000000..699c7494b --- /dev/null +++ b/docs/dynamics_engines_api.md @@ -0,0 +1,58 @@ +So you want to add a new dynamics engine to OpenPathSampling? Great! We've +tried to make it as easy as possible, because supporting more engines is a +quick way to make OpenPathSampling useful to more people. + +There are two main approaches to controlling a dynamics engine from +OpenPathSampling: direct control and indirect control. The first thing you +need to decide is which approach is best for your engine. + +Direct control is when you have an API that directly controls the dynamics: +for example, you can ask the dynamics to generate 10 frames, and it gives +you those 10 frames and then just waits for the next request. Direct +control works best when there's already a Python API for your engine, or +when start-up time is nearly nothing compared to obtaining a single MD step. + +With indirect control, we take a different approach: we launch a trajectory +as a separate process, and check in on the trajectory it outputs until ???. + + +--- + +For both APIs, the main ideas are the same: your subclass needs to translate +information back and forth between our `Snapshot` class and your engine's +internal data storage, and your subclass needs to be able to tell your +engine to run its dynamics. + +## Direct control API + +## Indirect control API + +* `read_frame_from_file(filename, frame_num)` +* `write_frame_to_file(filename, snapshot, mode="a")` +* `engine_command()` +* `set_filenames(number)` +* `cleanup()` + +Additionally, you may wish to override the following options: + +* `killsig` (class variable): the signal sent to terminate the process + (default is `signal.SIGTERM`). +* `default_sleep_ms` (set in `options`): time the engines sleeps before + checking again whether a new frame has been written. (In the near future, + we will have an adaptive approach so that this optimizes on the fly.) + +## Testing your new engine + +### Extra tests for direct control + +### Extra tests for indirect control + +Indirect control requires a few extra tests, to ensure that your file +reading is working correctly. + +* Write a test which writes half a frame to a file, then tries to + `get_next_frame` (this part should return `None`), then finish writing the + frame to the file, and try to `get_next_frame` (now it should work). This + simulates the case that `get_next_frame` is called while the frame is + being written. (You might also check for various EOL options, in case + the engine uses platform-dependent EOL choices.) From 1ecbd35f86eedb89c30a67d5a6486b9faee84994 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 2 Apr 2015 13:22:00 +0200 Subject: [PATCH 008/464] Draft read_frame_from_file --- .../external_engine/external_engine.py | 82 +++++++++++-------- .../external_engine/testexternal_engine.py | 6 +- 2 files changed, 54 insertions(+), 34 deletions(-) diff --git a/openpathsampling/external_engine/external_engine.py b/openpathsampling/external_engine/external_engine.py index 6b35c7776..86c681e4d 100644 --- a/openpathsampling/external_engine/external_engine.py +++ b/openpathsampling/external_engine/external_engine.py @@ -10,6 +10,8 @@ import shlex import time +import linecache + @restores_as_full_object class ExternalEngine(DynamicsEngine): """ @@ -19,6 +21,8 @@ class ExternalEngine(DynamicsEngine): will work with the trivial `engine.c` developed for testing purposes. """ + # TODO: include clever adaptive waiting scheme + default_options = { 'n_frames_max' : 10000, 'name_prefix' : "test", @@ -26,6 +30,8 @@ class ExternalEngine(DynamicsEngine): 'engine_sleep' : 100 } + killsig = signal.SIGTERM + def __init__(self, options, template): # needs to be overridden for each engine options = { @@ -37,8 +43,7 @@ def __init__(self, options, template): self.sleep_ms = self.default_sleep_ms # per engine, you can override this to terminate with the signal of # your choice - self.killsig = signal.SIGKILL - self.traj_num = -1 + self._traj_num = -1 @property def current_snapshot(self): @@ -47,65 +52,78 @@ def current_snapshot(self): @current_snapshot.setter def current_snapshot(self, snap): self._current_snapshot = snap - # for a real engine, this should also write frame to whatever - # file is input for the trajectory def generate_next_frame(self): # should be completely general next_frame_found = False while not next_frame_found: - try: - next_frame = self.read_frame_from_file(self.frame_num) - next_frame_found = True - except: #TODO what error to throw here? - time.sleep(self.sleep_ms/1000.0) + next_frame = self.read_frame_from_file(self.frame_num) + if next_frame == "partial": + pass # rerun immediately + elif next_frame is None: # TODO: optimize sleep time - self.current_snapshot = next_frame + time.sleep(self.sleep_ms/1000.0) + elif isinstance(next_frame, paths.Snapshot): # success + self.current_snapshot = next_frame + next_frame_found = True + self.frame_num += 1 + else: + raise RuntimeError("Strange return value from read_next_frame_from_file") return self.current_snapshot def start(self, snapshot=None): super(ExternalEngine, self).start(snapshot) - self.traj_num += 1 - self.set_input_filename(self.traj_num) - self.set_output_filename(self.traj_num) - if snapshot is not None: - self.current_snapshot = snapshot + self._traj_num += 1 + self.set_filenames(self._traj_num) self.write_frame_to_file(self.input_file, self.current_snapshot) cmd = shlex.split(self.engine_command()) try: + # TODO: add the ability to have handlers for stdin and stdout self.proc = psutil.Popen(shlex.split(self.engine_command()), - preexec_fn=os.setsid - ) + preexec_fn=os.setsid + ) except OSError: - pass #TODO: need to handle this, but do what? + pass #TODO: need to handle this, but do what? Probably reraise def stop(self, trajectory): super(ExternalEngine, self).stop(trajectory) self.proc.send_signal(self.killsig) self.proc.wait() # wait for the zombie to die + self.cleanup() # FROM HERE ARE THE FUNCTIONS TO OVERRIDE IN SUBCLASSES: def read_frame_from_file(self, filename, frame_num): - """Reads given frame number from file, and returns snapshot + """Reads given frame number from file, and returns snapshot. + + If no frame is available, returns None. If the frame appears to be + partially written, returns string "partial". """ - # main part that needs to be rewritten for each engine + # in a more complicated case, you'll need to read in all lines from + # the first associated with frame_num until either (a) you hit EOF + # or (b) you have a complete frame; then you need to return + # appropriately + line = linecache.getline(filename, frame_num) + if line is '': + return None + elif line[-1] != "\n": + return "partial" + else: + return paths.Snapshot(coordinates=[[float(line)]], + velocities=[[1.0]] + ) + + def write_frame_to_file(self, filename, snapshot, mode="a"): + """Writes given snapshot to file.""" pass - def write_frame_to_file(self, filename, snapshot): - """Writes given snapshot to appropriate input file. - """ - # also needs to be rewritten for each engine + def cleanup(self): + """Any cleanup actions to do after the subprocess dies.""" pass - def set_input_filename(self, number): - """Sets the filename for the input to trajectory number `number` - """ - self.input_file = self.name_prefix + str(number) + ".inp" - - def set_output_filename(self, number): - """Sets the filename for the output from trajectory number `number` - """ + def set_filenames(self, number): + """Sets names for files associated with trajectory `number`""" + self.input_file = self.name_prefix + str(number) + ".inp" # not used self.output_file = self.name_prefix + str(number) + ".out" def engine_command(self): diff --git a/openpathsampling/external_engine/testexternal_engine.py b/openpathsampling/external_engine/testexternal_engine.py index 89e0c25dd..0a464359d 100644 --- a/openpathsampling/external_engine/testexternal_engine.py +++ b/openpathsampling/external_engine/testexternal_engine.py @@ -33,7 +33,6 @@ def setUp(self): def test_start_stop(self): eng = self.fast_engine - #print get_all_pids() # check that it isn't running yet try: assert_equal(eng.proc.is_running(), False) @@ -43,7 +42,7 @@ def test_start_stop(self): # start it; check that it is running eng.start(self.template) assert_equal(eng.proc.is_running(), True) - assert_equal(eng.proc.status(), 'running') + assert_equal(eng.proc.status(), 'running') # zombies also run # stop it; check that it isn't running eng.stop(self.template) @@ -52,6 +51,9 @@ def test_start_stop(self): def test_read_frame_from_file(self): raise SkipTest + def test_read_frame_while_writing_file(self): + raise SkipTest + def test_slow_run(self): # generate traj in LengthEnsemble if frames only come every 100ms raise SkipTest From 9ee153d5adc4bc6a1367b7c36bc13f9973ed2bbc Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 2 Apr 2015 15:06:19 +0200 Subject: [PATCH 009/464] Working read_file_from_frame and tests --- .../external_engine/external_engine.py | 34 ++++++++++++++----- .../external_engine/testexternal_engine.py | 25 ++++++++++++-- 2 files changed, 48 insertions(+), 11 deletions(-) diff --git a/openpathsampling/external_engine/external_engine.py b/openpathsampling/external_engine/external_engine.py index 86c681e4d..414ba9347 100644 --- a/openpathsampling/external_engine/external_engine.py +++ b/openpathsampling/external_engine/external_engine.py @@ -88,8 +88,9 @@ def start(self, snapshot=None): def stop(self, trajectory): super(ExternalEngine, self).stop(trajectory) - self.proc.send_signal(self.killsig) - self.proc.wait() # wait for the zombie to die + proc = self.who_to_kill() + proc.send_signal(self.killsig) + proc.wait() # wait for the zombie to die self.cleanup() # FROM HERE ARE THE FUNCTIONS TO OVERRIDE IN SUBCLASSES: @@ -103,20 +104,35 @@ def read_frame_from_file(self, filename, frame_num): # the first associated with frame_num until either (a) you hit EOF # or (b) you have a complete frame; then you need to return # appropriately - line = linecache.getline(filename, frame_num) + first_line = frame_num + line = linecache.getline(filename, first_line) if line is '': - return None - elif line[-1] != "\n": - return "partial" + snap = None else: - return paths.Snapshot(coordinates=[[float(line)]], - velocities=[[1.0]] - ) + try: + floatval = float(line) + snap = paths.Snapshot(coordinates=[[floatval]], + velocities=[[1.0]] + ) + except ValueError: + snap = "partial" + return snap def write_frame_to_file(self, filename, snapshot, mode="a"): """Writes given snapshot to file.""" pass + def who_to_kill(self): + """Returns psutil.Process object to send kill signal to. + + Might override to send kill signal to a process other than the one + directly spawned above (e.g., when launching parallel runs) + """ + # this should only be called if you're about to kill the process; if + # the process doesn't exist, you shouldn't be killing anything and + # it will raise an error + return self.proc + def cleanup(self): """Any cleanup actions to do after the subprocess dies.""" pass diff --git a/openpathsampling/external_engine/testexternal_engine.py b/openpathsampling/external_engine/testexternal_engine.py index 0a464359d..cec77c70f 100644 --- a/openpathsampling/external_engine/testexternal_engine.py +++ b/openpathsampling/external_engine/testexternal_engine.py @@ -9,6 +9,7 @@ import psutil import time +import os def setUp(): # TODO: run Makefile @@ -49,10 +50,30 @@ def test_start_stop(self): assert_equal(eng.proc.is_running(), False) def test_read_frame_from_file(self): - raise SkipTest + eng = self.slow_engine + testf = open('testf1.data', 'w') + testf.write("1.0\n2.0\n3.0\n") + testf.close() + snap2 = eng.read_frame_from_file("testf1.data", 2) + assert_equal(snap2.xyz[0][0], 2.0) + snap1 = eng.read_frame_from_file("testf1.data", 1) + assert_equal(snap1.xyz[0][0], 1.0) + snap3 = eng.read_frame_from_file("testf1.data", 3) + assert_equal(snap3.xyz[0][0], 3.0) + snap4 = eng.read_frame_from_file("testf1.data", 4) + assert_equal(snap4, None) + os.remove('testf1.data') def test_read_frame_while_writing_file(self): - raise SkipTest + eng = self.slow_engine + testf = open('testf2.data', 'w') + testf.write("6.0\ninvalid") + testf.close() + snap1 = eng.read_frame_from_file("testf2.data", 1) + assert_equal(snap1.xyz[0][0], 6.0) + snap2 = eng.read_frame_from_file("testf2.data", 2) + assert_equal(snap2, "partial") + os.remove('testf2.data') def test_slow_run(self): # generate traj in LengthEnsemble if frames only come every 100ms From c975d6c9a80e740f02a6ef976ad4a243cd4d3354 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 2 Apr 2015 16:36:55 +0200 Subject: [PATCH 010/464] External engine passes its test suite. --- .../external_engine/external_engine.py | 27 ++++++++++------ .../external_engine/testexternal_engine.py | 32 +++++++++++++------ 2 files changed, 40 insertions(+), 19 deletions(-) diff --git a/openpathsampling/external_engine/external_engine.py b/openpathsampling/external_engine/external_engine.py index 414ba9347..969b0598c 100644 --- a/openpathsampling/external_engine/external_engine.py +++ b/openpathsampling/external_engine/external_engine.py @@ -12,6 +12,8 @@ import linecache +import sys # DEBUG + @restores_as_full_object class ExternalEngine(DynamicsEngine): """ @@ -26,7 +28,7 @@ class ExternalEngine(DynamicsEngine): default_options = { 'n_frames_max' : 10000, 'name_prefix' : "test", - 'default_sleep_ms' : 10, + 'default_sleep_ms' : 100, 'engine_sleep' : 100 } @@ -41,8 +43,6 @@ def __init__(self, options, template): super(ExternalEngine, self).__init__(options=options) self.template = template self.sleep_ms = self.default_sleep_ms - # per engine, you can override this to terminate with the signal of - # your choice self._traj_num = -1 @property @@ -57,11 +57,14 @@ def generate_next_frame(self): # should be completely general next_frame_found = False while not next_frame_found: - next_frame = self.read_frame_from_file(self.frame_num) + next_frame = self.read_frame_from_file(self.output_file, + self.frame_num) + #print self.frame_num, next_frame # DEBUG LOGGER if next_frame == "partial": - pass # rerun immediately + time.sleep(0.001) # wait a millisec and rerun elif next_frame is None: # TODO: optimize sleep time + #print "Sleep", self.sleep_ms / 1000.0 # TODO logger time.sleep(self.sleep_ms/1000.0) elif isinstance(next_frame, paths.Snapshot): # success self.current_snapshot = next_frame @@ -74,6 +77,7 @@ def generate_next_frame(self): def start(self, snapshot=None): super(ExternalEngine, self).start(snapshot) self._traj_num += 1 + self.frame_num = 0 self.set_filenames(self._traj_num) self.write_frame_to_file(self.input_file, self.current_snapshot) @@ -100,11 +104,14 @@ def read_frame_from_file(self, filename, frame_num): If no frame is available, returns None. If the frame appears to be partially written, returns string "partial". """ - # in a more complicated case, you'll need to read in all lines from - # the first associated with frame_num until either (a) you hit EOF - # or (b) you have a complete frame; then you need to return - # appropriately - first_line = frame_num + # under most circumstances, start with linecache.checkcache and + # setting the value of the first line + linecache.checkcache(filename) + first_line = frame_num + 1 + + # create a snapshot out of lines starting with first_line... if + # nothing exists, linecache returns '', so we return None. + # Otherwise, try to make a snapshot and return "partial" if we fail line = linecache.getline(filename, first_line) if line is '': snap = None diff --git a/openpathsampling/external_engine/testexternal_engine.py b/openpathsampling/external_engine/testexternal_engine.py index cec77c70f..41f942215 100644 --- a/openpathsampling/external_engine/testexternal_engine.py +++ b/openpathsampling/external_engine/testexternal_engine.py @@ -46,7 +46,7 @@ def test_start_stop(self): assert_equal(eng.proc.status(), 'running') # zombies also run # stop it; check that it isn't running - eng.stop(self.template) + eng.stop(None) assert_equal(eng.proc.is_running(), False) def test_read_frame_from_file(self): @@ -54,13 +54,13 @@ def test_read_frame_from_file(self): testf = open('testf1.data', 'w') testf.write("1.0\n2.0\n3.0\n") testf.close() - snap2 = eng.read_frame_from_file("testf1.data", 2) + snap2 = eng.read_frame_from_file("testf1.data", 1) assert_equal(snap2.xyz[0][0], 2.0) - snap1 = eng.read_frame_from_file("testf1.data", 1) + snap1 = eng.read_frame_from_file("testf1.data", 0) assert_equal(snap1.xyz[0][0], 1.0) - snap3 = eng.read_frame_from_file("testf1.data", 3) + snap3 = eng.read_frame_from_file("testf1.data", 2) assert_equal(snap3.xyz[0][0], 3.0) - snap4 = eng.read_frame_from_file("testf1.data", 4) + snap4 = eng.read_frame_from_file("testf1.data", 3) assert_equal(snap4, None) os.remove('testf1.data') @@ -69,18 +69,32 @@ def test_read_frame_while_writing_file(self): testf = open('testf2.data', 'w') testf.write("6.0\ninvalid") testf.close() - snap1 = eng.read_frame_from_file("testf2.data", 1) + snap1 = eng.read_frame_from_file("testf2.data", 0) assert_equal(snap1.xyz[0][0], 6.0) - snap2 = eng.read_frame_from_file("testf2.data", 2) + snap2 = eng.read_frame_from_file("testf2.data", 1) assert_equal(snap2, "partial") os.remove('testf2.data') + + def test_generate_next_frame(self): + eng = self.slow_engine + eng.start(self.template) + traj = eng.generate_next_frame() + eng.stop(traj) + + def test_slow_run(self): # generate traj in LengthEnsemble if frames only come every 100ms - raise SkipTest + self.slow_engine.initialized = True + traj = self.slow_engine.generate(self.template, + [self.ensemble.can_append]) + assert_equal(len(traj), 5) def test_fast_run(self): # generate traj in LengthEnsemble if frames come as fast as possible - raise SkipTest + self.fast_engine.initialized = True + traj = self.fast_engine.generate(self.template, + [self.ensemble.can_append]) + assert_equal(len(traj), 5) From dede53b5910adc92c1c90823b7a4eb77c212cf74 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Fri, 24 Apr 2015 13:39:15 +0200 Subject: [PATCH 011/464] More docs on dynamics engine API --- docs/dynamics_engines_api.md | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/docs/dynamics_engines_api.md b/docs/dynamics_engines_api.md index 699c7494b..e5f44e935 100644 --- a/docs/dynamics_engines_api.md +++ b/docs/dynamics_engines_api.md @@ -13,25 +13,31 @@ control works best when there's already a Python API for your engine, or when start-up time is nearly nothing compared to obtaining a single MD step. With indirect control, we take a different approach: we launch a trajectory -as a separate process, and check in on the trajectory it outputs until ???. - +as a separate process, and check in on the trajectory file it outputs until +we hit the stopping condition. Then we kill the subprocess and clean up. --- For both APIs, the main ideas are the same: your subclass needs to translate information back and forth between our `Snapshot` class and your engine's internal data storage, and your subclass needs to be able to tell your -engine to run its dynamics. +engine to run its dynamics. The main difference is that the indirect +approach uses the file system and external processes as intermediates for +this translation. ## Direct control API ## Indirect control API -* `read_frame_from_file(filename, frame_num)` -* `write_frame_to_file(filename, snapshot, mode="a")` -* `engine_command()` -* `set_filenames(number)` -* `cleanup()` +* `read_frame_from_file(filename, frame_num)`: reads the frame from the + external engine's file format +* `write_frame_to_file(filename, snapshot, mode="a")`: writes the frame to + the external engine's format (used to initiate trajectories) +* `engine_command()`: returns a string of the command to be called by the + operating system +* `set_filenames(number)`: sets the file names for step `number` +* `cleanup()`: does any clean-up tasks needed after killing the subprocess + (e.g., removing temporary files) Additionally, you may wish to override the following options: From f498d963cb433dbc4ca5ff8049c0cbf2bde934a8 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 28 May 2015 12:09:05 +0200 Subject: [PATCH 012/464] returned psutils to reqs --- devtools/ci/requirements-conda-2.7.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/devtools/ci/requirements-conda-2.7.txt b/devtools/ci/requirements-conda-2.7.txt index ac515a6d1..af5204efc 100644 --- a/devtools/ci/requirements-conda-2.7.txt +++ b/devtools/ci/requirements-conda-2.7.txt @@ -13,4 +13,5 @@ ipython ipython-notebook matplotlib svgwrite +psutil networkx From 11eba049a3b96b3238bf9b2cab715e82e0e98ae1 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Tue, 23 Jun 2015 12:43:30 +0200 Subject: [PATCH 013/464] Fixes for long-ago changes in other PRs --- openpathsampling/external_engine/external_engine.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/openpathsampling/external_engine/external_engine.py b/openpathsampling/external_engine/external_engine.py index 969b0598c..340bedf49 100644 --- a/openpathsampling/external_engine/external_engine.py +++ b/openpathsampling/external_engine/external_engine.py @@ -1,6 +1,5 @@ import openpathsampling as paths from openpathsampling import DynamicsEngine -from openpathsampling import restores_as_full_object import os import logging @@ -14,7 +13,6 @@ import sys # DEBUG -@restores_as_full_object class ExternalEngine(DynamicsEngine): """ Generic object to handle arbitrary external engines. From 7cfa0e8c16b633c6ba43c6ba98c3cb14b8cc367d Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Mon, 11 Apr 2016 15:56:20 +0200 Subject: [PATCH 014/464] Add psutil to conda recipe --- devtools/conda-recipe/meta.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/devtools/conda-recipe/meta.yaml b/devtools/conda-recipe/meta.yaml index c57d8e4b3..b3f1a1554 100644 --- a/devtools/conda-recipe/meta.yaml +++ b/devtools/conda-recipe/meta.yaml @@ -31,6 +31,7 @@ requirements: - svgwrite - networkx - matplotlib + - psutil test: requires: From b8610cc2e7377e03dd9c435602af7bd76f723a35 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Mon, 11 Apr 2016 15:57:26 +0200 Subject: [PATCH 015/464] Move external engine into engines/ --- openpathsampling/{external_engine => engines/external}/Makefile | 0 openpathsampling/{external_engine => engines/external}/engine.c | 0 .../{external_engine => engines/external}/external_engine.py | 0 .../{external_engine => engines/external}/testexternal_engine.py | 0 4 files changed, 0 insertions(+), 0 deletions(-) rename openpathsampling/{external_engine => engines/external}/Makefile (100%) rename openpathsampling/{external_engine => engines/external}/engine.c (100%) rename openpathsampling/{external_engine => engines/external}/external_engine.py (100%) rename openpathsampling/{external_engine => engines/external}/testexternal_engine.py (100%) diff --git a/openpathsampling/external_engine/Makefile b/openpathsampling/engines/external/Makefile similarity index 100% rename from openpathsampling/external_engine/Makefile rename to openpathsampling/engines/external/Makefile diff --git a/openpathsampling/external_engine/engine.c b/openpathsampling/engines/external/engine.c similarity index 100% rename from openpathsampling/external_engine/engine.c rename to openpathsampling/engines/external/engine.c diff --git a/openpathsampling/external_engine/external_engine.py b/openpathsampling/engines/external/external_engine.py similarity index 100% rename from openpathsampling/external_engine/external_engine.py rename to openpathsampling/engines/external/external_engine.py diff --git a/openpathsampling/external_engine/testexternal_engine.py b/openpathsampling/engines/external/testexternal_engine.py similarity index 100% rename from openpathsampling/external_engine/testexternal_engine.py rename to openpathsampling/engines/external/testexternal_engine.py From f6ac4cc550acd83dbe4871f811808dbc22334eba Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Mon, 11 Apr 2016 16:15:07 +0200 Subject: [PATCH 016/464] Fixes for external engine with new dynamics engine --- openpathsampling/engines/dynamics_engine.py | 13 ++++++++++++- .../engines/external/external_engine.py | 12 +++++------- .../engines/external/testexternal_engine.py | 4 +++- 3 files changed, 20 insertions(+), 9 deletions(-) diff --git a/openpathsampling/engines/dynamics_engine.py b/openpathsampling/engines/dynamics_engine.py index 406a3aa3e..795ef3d60 100644 --- a/openpathsampling/engines/dynamics_engine.py +++ b/openpathsampling/engines/dynamics_engine.py @@ -162,7 +162,18 @@ def _check_options(self, options = None): def __getattr__(self, item): # default is to look for an option and return it's value - return self.options[item] + try: + return self.options[item] + except KeyError: + default_msg = "'{0}' has no attribute '{1}'" + raise AttributeError( + (default_msg + ", nor does its options dictionary").format( + self.__class__.__name__, + item + ) + ) + + @property def topology(self): diff --git a/openpathsampling/engines/external/external_engine.py b/openpathsampling/engines/external/external_engine.py index 340bedf49..c5af4b2be 100644 --- a/openpathsampling/engines/external/external_engine.py +++ b/openpathsampling/engines/external/external_engine.py @@ -1,5 +1,4 @@ -import openpathsampling as paths -from openpathsampling import DynamicsEngine +import openpathsampling.engines as peng import os import logging @@ -13,7 +12,7 @@ import sys # DEBUG -class ExternalEngine(DynamicsEngine): +class ExternalEngine(peng.DynamicsEngine): """ Generic object to handle arbitrary external engines. @@ -64,7 +63,7 @@ def generate_next_frame(self): # TODO: optimize sleep time #print "Sleep", self.sleep_ms / 1000.0 # TODO logger time.sleep(self.sleep_ms/1000.0) - elif isinstance(next_frame, paths.Snapshot): # success + elif isinstance(next_frame, peng.BaseSnapshot): # success self.current_snapshot = next_frame next_frame_found = True self.frame_num += 1 @@ -116,9 +115,8 @@ def read_frame_from_file(self, filename, frame_num): else: try: floatval = float(line) - snap = paths.Snapshot(coordinates=[[floatval]], - velocities=[[1.0]] - ) + snap = peng.toy.Snapshot(coordinates=[[floatval]], + velocities=[[1.0]]) except ValueError: snap = "partial" return snap diff --git a/openpathsampling/engines/external/testexternal_engine.py b/openpathsampling/engines/external/testexternal_engine.py index 41f942215..d4cfb9e09 100644 --- a/openpathsampling/engines/external/testexternal_engine.py +++ b/openpathsampling/engines/external/testexternal_engine.py @@ -2,7 +2,9 @@ from nose.tools import (assert_equal, assert_not_equal, assert_items_equal, assert_almost_equal, raises) from nose.plugins.skip import Skip, SkipTest + import openpathsampling as paths +import openpathsampling.engines as peng from external_engine import * @@ -27,7 +29,7 @@ def setUp(self): 'engine_sleep' : 0, 'name_prefix' : "test" } - self.template = paths.Snapshot() + self.template = peng.toy.Snapshot() self.slow_engine = ExternalEngine(slow_options, self.template) self.fast_engine = ExternalEngine(fast_options, self.template) self.ensemble = paths.LengthEnsemble(5) From 86563eda3f77b0abeb864cb59cd28ce7991f724a Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Fri, 22 Apr 2016 16:53:26 +0200 Subject: [PATCH 017/464] External toy engine now has velocities & positions Instead of just writing "0.0" for each frame. --- openpathsampling/engines/external/engine.c | 11 ++++++++++- openpathsampling/engines/external/external_engine.py | 12 +++++++++--- .../engines/external/testexternal_engine.py | 11 ++++++++--- 3 files changed, 27 insertions(+), 7 deletions(-) diff --git a/openpathsampling/engines/external/engine.c b/openpathsampling/engines/external/engine.c index 0f54d329b..31a882a0f 100644 --- a/openpathsampling/engines/external/engine.c +++ b/openpathsampling/engines/external/engine.c @@ -11,6 +11,13 @@ int main(int argc, char ** argv) // argv[0] is program name int milliseconds = atoi(argv[1]); FILE * f = (argc == 2) ? stdout : fopen(argv[2], "w"); + double initial_position = 0.0; + double velocity = 1.0; + if (argc == 4) { + // this means we have an input file given last + FILE * inf = fopen(argv[3], "r"); + // TODO: set initial value + } struct timespec sleep_time, foo; @@ -18,8 +25,10 @@ int main(int argc, char ** argv) sleep_time.tv_nsec = (milliseconds % 1000) * 1000000; int max_steps = 1000000; + double position = initial_position; int i; for (i=0; i Date: Fri, 22 Apr 2016 17:47:15 +0200 Subject: [PATCH 018/464] Implement write_frame_to_file for toy external --- openpathsampling/engines/external/external_engine.py | 11 +++++++---- .../engines/external/testexternal_engine.py | 3 ++- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/openpathsampling/engines/external/external_engine.py b/openpathsampling/engines/external/external_engine.py index 89f7e8b69..65869bed4 100644 --- a/openpathsampling/engines/external/external_engine.py +++ b/openpathsampling/engines/external/external_engine.py @@ -77,14 +77,13 @@ def start(self, snapshot=None): self._traj_num += 1 self.frame_num = 0 self.set_filenames(self._traj_num) - self.write_frame_to_file(self.input_file, self.current_snapshot) + self.write_frame_to_file(self.input_file, self.current_snapshot, "w") cmd = shlex.split(self.engine_command()) try: # TODO: add the ability to have handlers for stdin and stdout self.proc = psutil.Popen(shlex.split(self.engine_command()), - preexec_fn=os.setsid - ) + preexec_fn=os.setsid) except OSError: pass #TODO: need to handle this, but do what? Probably reraise @@ -129,7 +128,11 @@ def read_frame_from_file(self, filename, frame_num): def write_frame_to_file(self, filename, snapshot, mode="a"): """Writes given snapshot to file.""" - pass + f = open(filename, mode) + snapshot_text = "{pos} {vel}\n".format(pos=snapshot.xyz[0][0], + vel=snapshot.xyz[0][0]) + f.write(snapshot_text) + f.close() def who_to_kill(self): """Returns psutil.Process object to send kill signal to. diff --git a/openpathsampling/engines/external/testexternal_engine.py b/openpathsampling/engines/external/testexternal_engine.py index 025c44f20..b379a0db1 100644 --- a/openpathsampling/engines/external/testexternal_engine.py +++ b/openpathsampling/engines/external/testexternal_engine.py @@ -29,7 +29,8 @@ def setUp(self): 'engine_sleep' : 0, 'name_prefix' : "test" } - self.template = peng.toy.Snapshot() + self.template = peng.toy.Snapshot(coordinates=np.array([[0.0]]), + velocities=np.array([[1.0]])) self.slow_engine = ExternalEngine(slow_options, self.template) self.fast_engine = ExternalEngine(fast_options, self.template) self.ensemble = paths.LengthEnsemble(5) From abbb4391759a51c5b7c98e974c21792bc4e711c5 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Wed, 4 May 2016 15:46:18 +0200 Subject: [PATCH 019/464] Draft of shooting move test Still needs a little more to do the correct shooting as expected --- openpathsampling/engines/external/engine.c | 9 +++++++++ .../engines/external/testexternal_engine.py | 15 ++++++++++++++- 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/openpathsampling/engines/external/engine.c b/openpathsampling/engines/external/engine.c index 31a882a0f..f0511f2e2 100644 --- a/openpathsampling/engines/external/engine.c +++ b/openpathsampling/engines/external/engine.c @@ -2,6 +2,15 @@ #include #include +/* + * engine.c + * + * Trivial 1D "engine" to be used for tests of an external engine. + * + * Allows us to control pace of creating new frames, as well as initial + * frame condition. + */ + int main(int argc, char ** argv) { if (argc < 2) { diff --git a/openpathsampling/engines/external/testexternal_engine.py b/openpathsampling/engines/external/testexternal_engine.py index b379a0db1..748285e15 100644 --- a/openpathsampling/engines/external/testexternal_engine.py +++ b/openpathsampling/engines/external/testexternal_engine.py @@ -105,4 +105,17 @@ def test_fast_run(self): [self.ensemble.can_append]) assert_equal(len(traj), 5) - + def test_in_shooting_move(self): + ens10 = paths.LengthEnsemble(10) + init_traj = self.fast_engine.generate_forward(self.template, ens10) + assert_equal(ens10(init_traj), True) + init_conds = paths.SampleSet([ + paths.Sample(replica=0, ensemble=ens10, trajectory=init_traj) + ]) + print [snap.xyz[0][0] for snap in init_conds[0].trajectory] + shooter = paths.OneWayShootingMover(ensemble=ens10, + selector=paths.UniformSelector(), + engine=self.fast_engine) + change = shooter.move(init_conds) + new_sample_set = init_conds.apply_samples(change.results) + print [snap.xyz[0][0] for snap in new_sample_set[0].trajectory] From d9b6f1ae0556d48bf70a4d14138eb6baf01a28c7 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Wed, 4 May 2016 18:18:38 +0200 Subject: [PATCH 020/464] Shooting-based test of external engine --- openpathsampling/engines/external/engine.c | 4 +-- .../engines/external/external_engine.py | 9 ++++-- .../engines/external/testexternal_engine.py | 32 ++++++++++++++++--- openpathsampling/pathmover.py | 1 - 4 files changed, 35 insertions(+), 11 deletions(-) diff --git a/openpathsampling/engines/external/engine.c b/openpathsampling/engines/external/engine.c index f0511f2e2..2cda2aadc 100644 --- a/openpathsampling/engines/external/engine.c +++ b/openpathsampling/engines/external/engine.c @@ -24,8 +24,8 @@ int main(int argc, char ** argv) double velocity = 1.0; if (argc == 4) { // this means we have an input file given last - FILE * inf = fopen(argv[3], "r"); - // TODO: set initial value + FILE * in_f = fopen(argv[3], "r"); + fscanf(in_f, "%lf %lf", &initial_position, &velocity); } struct timespec sleep_time, foo; diff --git a/openpathsampling/engines/external/external_engine.py b/openpathsampling/engines/external/external_engine.py index 65869bed4..4e5986008 100644 --- a/openpathsampling/engines/external/external_engine.py +++ b/openpathsampling/engines/external/external_engine.py @@ -61,10 +61,11 @@ def generate_next_frame(self): if next_frame == "partial": time.sleep(0.001) # wait a millisec and rerun elif next_frame is None: - # TODO: optimize sleep time + # TODO: optimize sleep time to wait longer #print "Sleep", self.sleep_ms / 1000.0 # TODO logger time.sleep(self.sleep_ms/1000.0) elif isinstance(next_frame, peng.BaseSnapshot): # success + # TODO: optimize sleep time to wait less self.current_snapshot = next_frame next_frame_found = True self.frame_num += 1 @@ -130,7 +131,7 @@ def write_frame_to_file(self, filename, snapshot, mode="a"): """Writes given snapshot to file.""" f = open(filename, mode) snapshot_text = "{pos} {vel}\n".format(pos=snapshot.xyz[0][0], - vel=snapshot.xyz[0][0]) + vel=snapshot.velocities[0][0]) f.write(snapshot_text) f.close() @@ -156,6 +157,8 @@ def set_filenames(self, number): def engine_command(self): """Generates a string for the command to run the engine.""" - return "engine " + str(self.engine_sleep) + " " + str(self.output_file) + return ("engine " + str(self.engine_sleep) + " " + + str(self.output_file) + " " + str(self.input_file)) + diff --git a/openpathsampling/engines/external/testexternal_engine.py b/openpathsampling/engines/external/testexternal_engine.py index 748285e15..0d680d3d0 100644 --- a/openpathsampling/engines/external/testexternal_engine.py +++ b/openpathsampling/engines/external/testexternal_engine.py @@ -1,6 +1,6 @@ from nose.tools import (assert_equal, assert_not_equal, assert_items_equal, - assert_almost_equal, raises) + assert_almost_equal, raises, assert_true) from nose.plugins.skip import Skip, SkipTest import openpathsampling as paths @@ -13,6 +13,10 @@ import time import os +import logging + +logging.getLogger('openpathsampling.ensemble').setLevel(logging.CRITICAL) + def setUp(): # TODO: run Makefile pass @@ -106,16 +110,34 @@ def test_fast_run(self): assert_equal(len(traj), 5) def test_in_shooting_move(self): + import glob + for testfile in glob.glob("test*out") + glob.glob("test*inp"): + os.remove(testfile) ens10 = paths.LengthEnsemble(10) init_traj = self.fast_engine.generate_forward(self.template, ens10) assert_equal(ens10(init_traj), True) init_conds = paths.SampleSet([ paths.Sample(replica=0, ensemble=ens10, trajectory=init_traj) ]) - print [snap.xyz[0][0] for snap in init_conds[0].trajectory] shooter = paths.OneWayShootingMover(ensemble=ens10, selector=paths.UniformSelector(), engine=self.fast_engine) - change = shooter.move(init_conds) - new_sample_set = init_conds.apply_samples(change.results) - print [snap.xyz[0][0] for snap in new_sample_set[0].trajectory] + prev_sample_set = init_conds + default_traj = [[[0.0]], [[1.0]], [[2.0]], [[3.0]], [[4.0]], + [[5.0]], [[6.0]], [[7.0]], [[8.0]], [[9.0]]] + assert_items_equal(init_conds[0].trajectory.xyz, default_traj) + for step in range(10): + assert_equal(len(prev_sample_set), 1) + change = shooter.move(prev_sample_set) + new_sample_set = prev_sample_set.apply_samples(change.results) + assert_items_equal(new_sample_set[0].trajectory.xyz, + default_traj) + prev_traj = prev_sample_set[0].trajectory + new_traj = new_sample_set[0].trajectory + shared = prev_traj.shared_configurations(new_traj) + assert_true(0 < len(list(shared)) < len(new_traj)) + prev_sample_set = new_sample_set + + for testfile in glob.glob("test*out") + glob.glob("test*inp"): + os.remove(testfile) + diff --git a/openpathsampling/pathmover.py b/openpathsampling/pathmover.py index b6a4f3658..3602b8eeb 100644 --- a/openpathsampling/pathmover.py +++ b/openpathsampling/pathmover.py @@ -522,7 +522,6 @@ def __call__(self, input_sample): trial_trajectory = self._run(initial_trajectory, shooting_index) - bias = self.selector.probability_ratio( initial_trajectory[shooting_index], initial_trajectory, From a7796c78dc76ab89c28f0e38ec41ce64f96e6578 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Wed, 11 May 2016 20:10:02 +0200 Subject: [PATCH 021/464] Automatic sleep optimization works beautifully! --- openpathsampling/engines/dynamics_engine.py | 10 ++++--- .../engines/external/external_engine.py | 28 +++++++++++++------ 2 files changed, 26 insertions(+), 12 deletions(-) diff --git a/openpathsampling/engines/dynamics_engine.py b/openpathsampling/engines/dynamics_engine.py index 64a61de3f..308352f2b 100644 --- a/openpathsampling/engines/dynamics_engine.py +++ b/openpathsampling/engines/dynamics_engine.py @@ -85,7 +85,7 @@ def __init__(self, options=None, template=None): # self.set_as_default() # REMOVED because this breaks the ability to have multiple engines - def _check_options(self, options = None): + def _check_options(self, options=None): """ This will register all variables in the options dict as a member variable if they are present in either the DynamicsEngine.default_options or this @@ -107,9 +107,11 @@ def _check_options(self, options = None): Notes ----- - Options are what is necessary to recreate the engine, but not runtime variables or independent - variables like the actual initialization status, the runners or an attached storage. - If there are non-default options present they will be ignored (no error thrown) + Options are what is necessary to recreate the engine, but not + runtime variables or independent variables like the actual + initialization status, the runners or an attached storage. If there + are non-default options present they will be ignored (no error + thrown) """ # start with default options from a dynamics engine my_options = {} diff --git a/openpathsampling/engines/external/external_engine.py b/openpathsampling/engines/external/external_engine.py index 4e5986008..49f3891b9 100644 --- a/openpathsampling/engines/external/external_engine.py +++ b/openpathsampling/engines/external/external_engine.py @@ -13,6 +13,8 @@ import sys # DEBUG +logger = logging.getLogger(__name__) + class ExternalEngine(peng.DynamicsEngine): """ Generic object to handle arbitrary external engines. @@ -23,24 +25,24 @@ class ExternalEngine(peng.DynamicsEngine): # TODO: include clever adaptive waiting scheme - default_options = { + _default_options = { 'n_frames_max' : 10000, 'name_prefix' : "test", 'default_sleep_ms' : 100, - 'engine_sleep' : 100 + 'auto_optimize_sleep' : True, + 'engine_sleep' : 100, + 'n_spatial' : 1, + 'n_atoms' : 1 } killsig = signal.SIGTERM def __init__(self, options, template): # needs to be overridden for each engine - options = { - 'n_spatial' : 1, - 'n_atoms' : 1 - } super(ExternalEngine, self).__init__(options=options) self.template = template self.sleep_ms = self.default_sleep_ms + self.start_time = None self._traj_num = -1 @property @@ -58,29 +60,38 @@ def generate_next_frame(self): next_frame = self.read_frame_from_file(self.output_file, self.frame_num) #print self.frame_num, next_frame # DEBUG LOGGER + now = time.time() if next_frame == "partial": time.sleep(0.001) # wait a millisec and rerun elif next_frame is None: # TODO: optimize sleep time to wait longer - #print "Sleep", self.sleep_ms / 1000.0 # TODO logger + logger.info("Sleeping for {:.2f}ms".format(self.sleep_ms)) time.sleep(self.sleep_ms/1000.0) elif isinstance(next_frame, peng.BaseSnapshot): # success - # TODO: optimize sleep time to wait less + self.n_frames_since_start += 1 + logger.info("Found frame") self.current_snapshot = next_frame next_frame_found = True self.frame_num += 1 else: raise RuntimeError("Strange return value from read_next_frame_from_file") + if self.auto_optimize_sleep and self.n_frames_since_start > 0: + self.sleep_ms = ((now - self.start_time) / + self.n_frames_since_start) * 1000.0 return self.current_snapshot def start(self, snapshot=None): super(ExternalEngine, self).start(snapshot) + print "Engine", self.engine_sleep + print "Default", self.default_sleep_ms self._traj_num += 1 self.frame_num = 0 + self.n_frames_since_start = 0 self.set_filenames(self._traj_num) self.write_frame_to_file(self.input_file, self.current_snapshot, "w") cmd = shlex.split(self.engine_command()) + self.start_time = time.time() try: # TODO: add the ability to have handlers for stdin and stdout self.proc = psutil.Popen(shlex.split(self.engine_command()), @@ -90,6 +101,7 @@ def start(self, snapshot=None): def stop(self, trajectory): super(ExternalEngine, self).stop(trajectory) + logger.info("total_time {:.4f}".format(time.time() - self.start_time)) proc = self.who_to_kill() proc.send_signal(self.killsig) proc.wait() # wait for the zombie to die From 360f7490b40154d45006e8a67c552fe2fd72415b Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Fri, 13 May 2016 14:44:26 +0200 Subject: [PATCH 022/464] Move ext_eng tests to tests/ dir, restructure eng/ --- openpathsampling/engines/__init__.py | 1 + openpathsampling/engines/external/Makefile | 3 -- .../engines/{external => }/external_engine.py | 24 +++++++++----- .../tests/external_engine/Makefile | 5 +++ .../external_engine}/engine.c | 0 .../tests/external_engine/microtest.py | 33 +++++++++++++++++++ .../external => tests}/testexternal_engine.py | 32 +++++++++++++----- 7 files changed, 77 insertions(+), 21 deletions(-) delete mode 100644 openpathsampling/engines/external/Makefile rename openpathsampling/engines/{external => }/external_engine.py (88%) create mode 100644 openpathsampling/tests/external_engine/Makefile rename openpathsampling/{engines/external => tests/external_engine}/engine.c (100%) create mode 100644 openpathsampling/tests/external_engine/microtest.py rename openpathsampling/{engines/external => tests}/testexternal_engine.py (85%) diff --git a/openpathsampling/engines/__init__.py b/openpathsampling/engines/__init__.py index 77caa5a90..82d380de2 100644 --- a/openpathsampling/engines/__init__.py +++ b/openpathsampling/engines/__init__.py @@ -6,3 +6,4 @@ import features from dynamics_engine import DynamicsEngine +from external_engine import ExternalEngine diff --git a/openpathsampling/engines/external/Makefile b/openpathsampling/engines/external/Makefile deleted file mode 100644 index c75ec1fb5..000000000 --- a/openpathsampling/engines/external/Makefile +++ /dev/null @@ -1,3 +0,0 @@ -exe: engine.c - ${CC} -o engine engine.c - ln -s ${PWD}/engine ~/bin/engine diff --git a/openpathsampling/engines/external/external_engine.py b/openpathsampling/engines/external_engine.py similarity index 88% rename from openpathsampling/engines/external/external_engine.py rename to openpathsampling/engines/external_engine.py index 49f3891b9..e194a5007 100644 --- a/openpathsampling/engines/external/external_engine.py +++ b/openpathsampling/engines/external_engine.py @@ -1,4 +1,6 @@ -import openpathsampling.engines as peng +from openpathsampling.engines.dynamics_engine import DynamicsEngine +from openpathsampling.engines.snapshot import BaseSnapshot +from openpathsampling.engines.toy import ToySnapshot import numpy as np import os @@ -15,7 +17,7 @@ logger = logging.getLogger(__name__) -class ExternalEngine(peng.DynamicsEngine): +class ExternalEngine(DynamicsEngine): """ Generic object to handle arbitrary external engines. @@ -31,6 +33,7 @@ class ExternalEngine(peng.DynamicsEngine): 'default_sleep_ms' : 100, 'auto_optimize_sleep' : True, 'engine_sleep' : 100, + 'engine_directory' : "", 'n_spatial' : 1, 'n_atoms' : 1 } @@ -67,7 +70,7 @@ def generate_next_frame(self): # TODO: optimize sleep time to wait longer logger.info("Sleeping for {:.2f}ms".format(self.sleep_ms)) time.sleep(self.sleep_ms/1000.0) - elif isinstance(next_frame, peng.BaseSnapshot): # success + elif isinstance(next_frame, BaseSnapshot): # success self.n_frames_since_start += 1 logger.info("Found frame") self.current_snapshot = next_frame @@ -82,8 +85,6 @@ def generate_next_frame(self): def start(self, snapshot=None): super(ExternalEngine, self).start(snapshot) - print "Engine", self.engine_sleep - print "Default", self.default_sleep_ms self._traj_num += 1 self.frame_num = 0 self.n_frames_since_start = 0 @@ -93,6 +94,7 @@ def start(self, snapshot=None): cmd = shlex.split(self.engine_command()) self.start_time = time.time() try: + logger.info(self.engine_command()) # TODO: add the ability to have handlers for stdin and stdout self.proc = psutil.Popen(shlex.split(self.engine_command()), preexec_fn=os.setsid) @@ -133,8 +135,8 @@ def read_frame_from_file(self, filename, frame_num): vels = float(splitted[1]) else: raise ValueError() # force the raise we then ignore - snap = peng.toy.Snapshot(coordinates=np.array([[coords]]), - velocities=np.array([[vels]])) + snap = ToySnapshot(coordinates=np.array([[coords]]), + velocities=np.array([[vels]])) except ValueError: snap = "partial" return snap @@ -169,8 +171,12 @@ def set_filenames(self, number): def engine_command(self): """Generates a string for the command to run the engine.""" - return ("engine " + str(self.engine_sleep) + " " + - str(self.output_file) + " " + str(self.input_file)) + if self.engine_directory != "": + engine_path = os.path.join(self.engine_directory, "engine") + else: + engine_path = "engine" + return (engine_path + " " + str(self.engine_sleep) + + " " + str(self.output_file) + " " + str(self.input_file)) diff --git a/openpathsampling/tests/external_engine/Makefile b/openpathsampling/tests/external_engine/Makefile new file mode 100644 index 000000000..0c65aa929 --- /dev/null +++ b/openpathsampling/tests/external_engine/Makefile @@ -0,0 +1,5 @@ +exe: engine.c + @${CC} -o engine engine.c + +clean: + @rm -f engine diff --git a/openpathsampling/engines/external/engine.c b/openpathsampling/tests/external_engine/engine.c similarity index 100% rename from openpathsampling/engines/external/engine.c rename to openpathsampling/tests/external_engine/engine.c diff --git a/openpathsampling/tests/external_engine/microtest.py b/openpathsampling/tests/external_engine/microtest.py new file mode 100644 index 000000000..8959dfdee --- /dev/null +++ b/openpathsampling/tests/external_engine/microtest.py @@ -0,0 +1,33 @@ +""" +Quick test script to show how the automatic sleep optimization works. + +Change the engine_sleep parameter to see different sleep times. +""" +import openpathsampling.engines as peng +import openpathsampling as paths +import numpy as np +import os +import logging + + +def build_engine(template): + opts = { + 'n_frames_max' : 10000, + # 'engine_sleep' : 20, + 'engine_sleep' : 500, + 'name_prefix' : "microtest", + 'engine_directory' : os.path.dirname(os.path.realpath(__file__)) + } + engine = peng.ExternalEngine(opts, template) + return engine + +def run(): + template = peng.toy.Snapshot(coordinates=np.array([[0.0]]), + velocities=np.array([[1.0]])) + ensemble = paths.LengthEnsemble(20) + engine = build_engine(template) + logging.basicConfig(level=logging.INFO) + engine.generate_forward(template, ensemble) + +if __name__ == "__main__": + run() diff --git a/openpathsampling/engines/external/testexternal_engine.py b/openpathsampling/tests/testexternal_engine.py similarity index 85% rename from openpathsampling/engines/external/testexternal_engine.py rename to openpathsampling/tests/testexternal_engine.py index 0d680d3d0..c60052d85 100644 --- a/openpathsampling/engines/external/testexternal_engine.py +++ b/openpathsampling/tests/testexternal_engine.py @@ -1,4 +1,3 @@ - from nose.tools import (assert_equal, assert_not_equal, assert_items_equal, assert_almost_equal, raises, assert_true) from nose.plugins.skip import Skip, SkipTest @@ -6,37 +5,51 @@ import openpathsampling as paths import openpathsampling.engines as peng -from external_engine import * +import numpy as np import psutil +import shlex import time import os +import glob import logging logging.getLogger('openpathsampling.ensemble').setLevel(logging.CRITICAL) +logging.getLogger('openpathsampling.netcdfplus').setLevel(logging.CRITICAL) + +engine_dir = os.path.join(os.path.dirname(os.path.realpath(__file__)), + "external_engine") def setUp(): - # TODO: run Makefile - pass + proc = psutil.Popen("make", cwd=engine_dir) + proc.wait() + +def teardown(): + # proc = psutil.Popen("make clean", cwd=engine_dir, shell=True) + # proc.wait() + for testfile in glob.glob("test*out") + glob.glob("test*inp"): + os.remove(testfile) class testExternalEngine(object): def setUp(self): slow_options = { 'n_frames_max' : 10000, 'engine_sleep' : 100, - 'name_prefix' : "test" + 'name_prefix' : "test", + 'engine_directory' : engine_dir } fast_options = { 'n_frames_max' : 10000, 'engine_sleep' : 0, - 'name_prefix' : "test" + 'name_prefix' : "test", + 'engine_directory' : engine_dir } self.template = peng.toy.Snapshot(coordinates=np.array([[0.0]]), velocities=np.array([[1.0]])) - self.slow_engine = ExternalEngine(slow_options, self.template) - self.fast_engine = ExternalEngine(fast_options, self.template) + self.slow_engine = peng.ExternalEngine(slow_options, self.template) + self.fast_engine = peng.ExternalEngine(fast_options, self.template) self.ensemble = paths.LengthEnsemble(5) def test_start_stop(self): @@ -104,13 +117,14 @@ def test_slow_run(self): def test_fast_run(self): # generate traj in LengthEnsemble if frames come as fast as possible + print "starting fast" self.fast_engine.initialized = True traj = self.fast_engine.generate(self.template, [self.ensemble.can_append]) + print "done generating" assert_equal(len(traj), 5) def test_in_shooting_move(self): - import glob for testfile in glob.glob("test*out") + glob.glob("test*inp"): os.remove(testfile) ens10 = paths.LengthEnsemble(10) From d165a9e9ee919bf92340bd6bda8817f0c4b859e0 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Fri, 13 May 2016 14:51:27 +0200 Subject: [PATCH 023/464] Remove test comments --- openpathsampling/tests/testexternal_engine.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/openpathsampling/tests/testexternal_engine.py b/openpathsampling/tests/testexternal_engine.py index c60052d85..1289e1d9d 100644 --- a/openpathsampling/tests/testexternal_engine.py +++ b/openpathsampling/tests/testexternal_engine.py @@ -117,11 +117,9 @@ def test_slow_run(self): def test_fast_run(self): # generate traj in LengthEnsemble if frames come as fast as possible - print "starting fast" self.fast_engine.initialized = True traj = self.fast_engine.generate(self.template, [self.ensemble.can_append]) - print "done generating" assert_equal(len(traj), 5) def test_in_shooting_move(self): From 8376503b1ab44e7b399485afec3618a008449306 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Fri, 13 May 2016 15:07:54 +0200 Subject: [PATCH 024/464] Fix test to be not zombie, instead of running running or sleeping should be fine; but we shouldn't be a zombie --- openpathsampling/tests/testexternal_engine.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/openpathsampling/tests/testexternal_engine.py b/openpathsampling/tests/testexternal_engine.py index 1289e1d9d..6a3bb0d5e 100644 --- a/openpathsampling/tests/testexternal_engine.py +++ b/openpathsampling/tests/testexternal_engine.py @@ -63,7 +63,8 @@ def test_start_stop(self): # start it; check that it is running eng.start(self.template) assert_equal(eng.proc.is_running(), True) - assert_equal(eng.proc.status(), 'running') # zombies also run + # zombies also run + assert_not_equal(eng.proc.status(), psutil.STATUS_ZOMBIE) # stop it; check that it isn't running eng.stop(None) From d031c57af5a81f8bdbe97b8e1553febed60432da Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Fri, 13 May 2016 15:42:02 +0200 Subject: [PATCH 025/464] More docs. Coverage exclusions. --- docs/dynamics_engines_api.md | 26 +++++++++++++++++++-- openpathsampling/engines/external_engine.py | 6 ++--- 2 files changed, 27 insertions(+), 5 deletions(-) diff --git a/docs/dynamics_engines_api.md b/docs/dynamics_engines_api.md index e5f44e935..525b1347b 100644 --- a/docs/dynamics_engines_api.md +++ b/docs/dynamics_engines_api.md @@ -25,10 +25,26 @@ engine to run its dynamics. The main difference is that the indirect approach uses the file system and external processes as intermediates for this translation. +## API elements for both control models + +Most parts of creating a new engine are independent of the approach to +controlling the dynamics. + +**TODO: list this stuff** + ## Direct control API +If you intend to use direct control, your engine class should inherit from +`paths.engines.DynamicsEngine`. You will need to implement these methods: + +**TODO: more on the direct API** + ## Indirect control API +If you intend to use indirect control, your engine class should inherit from +`paths.engines.ExternalEngine`, and you should consider overriding the +following methods: + * `read_frame_from_file(filename, frame_num)`: reads the frame from the external engine's file format * `write_frame_to_file(filename, snapshot, mode="a")`: writes the frame to @@ -44,11 +60,17 @@ Additionally, you may wish to override the following options: * `killsig` (class variable): the signal sent to terminate the process (default is `signal.SIGTERM`). * `default_sleep_ms` (set in `options`): time the engines sleeps before - checking again whether a new frame has been written. (In the near future, - we will have an adaptive approach so that this optimizes on the fly.) + checking again whether a new frame has been written. Note that + `ExternalEngine`s will automatically optimize the sleep time until you set + the option `auto_optimize_sleep` to `False`. ## Testing your new engine +We strongly recommend developing thorough unit tests for your engine, and we +require unit tests for any engines added to the OpenPathSampling core. In +particular, there are some special cases for each of direct and indirect +control that your tests should include. + ### Extra tests for direct control ### Extra tests for indirect control diff --git a/openpathsampling/engines/external_engine.py b/openpathsampling/engines/external_engine.py index e194a5007..5a3f49598 100644 --- a/openpathsampling/engines/external_engine.py +++ b/openpathsampling/engines/external_engine.py @@ -76,7 +76,7 @@ def generate_next_frame(self): self.current_snapshot = next_frame next_frame_found = True self.frame_num += 1 - else: + else: # pragma: no cover raise RuntimeError("Strange return value from read_next_frame_from_file") if self.auto_optimize_sleep and self.n_frames_since_start > 0: self.sleep_ms = ((now - self.start_time) / @@ -98,7 +98,7 @@ def start(self, snapshot=None): # TODO: add the ability to have handlers for stdin and stdout self.proc = psutil.Popen(shlex.split(self.engine_command()), preexec_fn=os.setsid) - except OSError: + except OSError: # pragma: no cover/ pass #TODO: need to handle this, but do what? Probably reraise def stop(self, trajectory): @@ -173,7 +173,7 @@ def engine_command(self): """Generates a string for the command to run the engine.""" if self.engine_directory != "": engine_path = os.path.join(self.engine_directory, "engine") - else: + else: # pragma: no cover engine_path = "engine" return (engine_path + " " + str(self.engine_sleep) + " " + str(self.output_file) + " " + str(self.input_file)) From e66fbce0508166c29e1097edfa4a582cdac53ddb Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Wed, 3 Aug 2016 19:39:31 +0200 Subject: [PATCH 026/464] Seems to fix the problem.... weird --- openpathsampling/engines/toy/snapshot.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openpathsampling/engines/toy/snapshot.py b/openpathsampling/engines/toy/snapshot.py index efa3b6a33..11ed0e4f2 100644 --- a/openpathsampling/engines/toy/snapshot.py +++ b/openpathsampling/engines/toy/snapshot.py @@ -5,7 +5,7 @@ """ from openpathsampling.engines import BaseSnapshot, SnapshotFactory -import openpathsampling.engines.features as feats +from openpathsampling.engines import features as feats @feats.attach_features([ From 9ab6509cb58712a69fe83503ed1c025be5df6592 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 1 Sep 2016 20:45:46 +0200 Subject: [PATCH 027/464] Fix external engine test for removed generate_fwd --- openpathsampling/tests/testexternal_engine.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/openpathsampling/tests/testexternal_engine.py b/openpathsampling/tests/testexternal_engine.py index 6a3bb0d5e..b5f2f0455 100644 --- a/openpathsampling/tests/testexternal_engine.py +++ b/openpathsampling/tests/testexternal_engine.py @@ -127,7 +127,8 @@ def test_in_shooting_move(self): for testfile in glob.glob("test*out") + glob.glob("test*inp"): os.remove(testfile) ens10 = paths.LengthEnsemble(10) - init_traj = self.fast_engine.generate_forward(self.template, ens10) + init_traj = self.fast_engine.generate(self.template, + [ens10.can_append]) assert_equal(ens10(init_traj), True) init_conds = paths.SampleSet([ paths.Sample(replica=0, ensemble=ens10, trajectory=init_traj) From a49a885d41259ecc0bd672abe2f5829670763a51 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Sun, 2 Oct 2016 23:39:38 +0200 Subject: [PATCH 028/464] Seems to fix local tests --- openpathsampling/engines/toy/snapshot.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/openpathsampling/engines/toy/snapshot.py b/openpathsampling/engines/toy/snapshot.py index 286cf67fc..42d49fa6e 100644 --- a/openpathsampling/engines/toy/snapshot.py +++ b/openpathsampling/engines/toy/snapshot.py @@ -5,15 +5,15 @@ """ from openpathsampling.engines import BaseSnapshot, SnapshotFactory -import openpathsampling.engines.features as feats +from openpathsampling.engines import features as feats import features as toy_feats @feats.attach_features([ - feats.velocities, - feats.coordinates, + toy_feats.velocities, + toy_feats.coordinates, toy_feats.instantaneous_temperature, - feats.engine + toy_feats.engine ]) class ToySnapshot(BaseSnapshot): """ From 40606f45a2e08bc57c496e30311cb019ea57859d Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Tue, 16 May 2017 17:35:02 +0200 Subject: [PATCH 029/464] Start skeleton from Gromacs engine --- openpathsampling/engines/gromacs/engine.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 openpathsampling/engines/gromacs/engine.py diff --git a/openpathsampling/engines/gromacs/engine.py b/openpathsampling/engines/gromacs/engine.py new file mode 100644 index 000000000..997823d7d --- /dev/null +++ b/openpathsampling/engines/gromacs/engine.py @@ -0,0 +1,21 @@ +import logging + +import mdtraj as md +from openpathsampling.engines import ExternalEngine + +class Gromacs5Engine(ExternalEngine): + _default_options = { + } + + def read_frame_from_file(self, filename, frame_num): + pass + + def write_frame_to_file(self, filename, snapshot, mode='a'): + pass + + def set_filenames(self, number): + pass + + def engine_command(self): + pass + pass From 44fd12201574e21fde154b10dad3de9e69b3458e Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Tue, 16 May 2017 17:41:54 +0200 Subject: [PATCH 030/464] whitespace cleanup --- openpathsampling/engines/external_engine.py | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/openpathsampling/engines/external_engine.py b/openpathsampling/engines/external_engine.py index 5a3f49598..e1f3de57e 100644 --- a/openpathsampling/engines/external_engine.py +++ b/openpathsampling/engines/external_engine.py @@ -19,7 +19,7 @@ class ExternalEngine(DynamicsEngine): """ - Generic object to handle arbitrary external engines. + Generic object to handle arbitrary external engines. Typically, this will be subclassed for any given engine. As written, it will work with the trivial `engine.c` developed for testing purposes. @@ -79,7 +79,7 @@ def generate_next_frame(self): else: # pragma: no cover raise RuntimeError("Strange return value from read_next_frame_from_file") if self.auto_optimize_sleep and self.n_frames_since_start > 0: - self.sleep_ms = ((now - self.start_time) / + self.sleep_ms = ((now - self.start_time) / self.n_frames_since_start) * 1000.0 return self.current_snapshot @@ -112,7 +112,7 @@ def stop(self, trajectory): # FROM HERE ARE THE FUNCTIONS TO OVERRIDE IN SUBCLASSES: def read_frame_from_file(self, filename, frame_num): """Reads given frame number from file, and returns snapshot. - + If no frame is available, returns None. If the frame appears to be partially written, returns string "partial". """ @@ -120,7 +120,7 @@ def read_frame_from_file(self, filename, frame_num): # setting the value of the first line linecache.checkcache(filename) first_line = frame_num + 1 - + # create a snapshot out of lines starting with first_line... if # nothing exists, linecache returns '', so we return None. # Otherwise, try to make a snapshot and return "partial" if we fail @@ -151,7 +151,7 @@ def write_frame_to_file(self, filename, snapshot, mode="a"): def who_to_kill(self): """Returns psutil.Process object to send kill signal to. - + Might override to send kill signal to a process other than the one directly spawned above (e.g., when launching parallel runs) """ @@ -177,6 +177,3 @@ def engine_command(self): engine_path = "engine" return (engine_path + " " + str(self.engine_sleep) + " " + str(self.output_file) + " " + str(self.input_file)) - - - From b60718fcfd84d4914ee8931f9464d1500d3774b9 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Mon, 29 May 2017 17:39:41 +0200 Subject: [PATCH 031/464] Getting toward to a basic structure for gmx engine Note that a lot of this is now designed so that it can be refactored out of engines.gromacs and into some generic ExternalMDEngine (which assumes you're doing MD, unlike the purely generic ExternalEngine -- although some of this code might refactor to ExternalEngine, too) --- openpathsampling/engines/gromacs/__init__.py | 2 + openpathsampling/engines/gromacs/engine.py | 88 +++++++++++++++++-- .../engines/gromacs/features/__init__.py | 2 + .../engines/gromacs/features/coordinates.py | 18 ++++ .../engines/gromacs/features/file_info.py | 21 +++++ 5 files changed, 126 insertions(+), 5 deletions(-) create mode 100644 openpathsampling/engines/gromacs/__init__.py create mode 100644 openpathsampling/engines/gromacs/features/__init__.py create mode 100644 openpathsampling/engines/gromacs/features/coordinates.py create mode 100644 openpathsampling/engines/gromacs/features/file_info.py diff --git a/openpathsampling/engines/gromacs/__init__.py b/openpathsampling/engines/gromacs/__init__.py new file mode 100644 index 000000000..d412f0a78 --- /dev/null +++ b/openpathsampling/engines/gromacs/__init__.py @@ -0,0 +1,2 @@ +from engine import Gromacs5Engine as Engine +from engine import GromacsSnapshot diff --git a/openpathsampling/engines/gromacs/engine.py b/openpathsampling/engines/gromacs/engine.py index 997823d7d..9f4ca3a3a 100644 --- a/openpathsampling/engines/gromacs/engine.py +++ b/openpathsampling/engines/gromacs/engine.py @@ -1,21 +1,99 @@ +""" +Gromacs support in OpenPathSampling + +OpenPathSampling supports Gromacs as an "external engine," meaning that +Gromacs itself runs as a coprocess, and OPS uses the file system as an +intermediary to monitor when a path needs to be terminated. +""" + import logging -import mdtraj as md +from mdtraj.formats import TRRTrajectoryFile + from openpathsampling.engines import ExternalEngine +from openpathsampling.engines import features +from openpathsampling.engines.snapshot import BaseSnapshot +import features as gmx_features + +# TODO: all gmx_features should be moved to external_md + +@features.base.attach_features([ + features.engine, + gmx_features.coordinates, + # gmx_features.velocities, + # gmx_features.box_vectors + gmx_features.file_info +]) +class GromacsSnapshot(BaseSnapshot): + """ + Snapshot for external MD engines + """ + def __init__(self, file_number=None, file_position=None): + self.file_number = file_number + self.file_position = file_position + self._xyz = None + self._velocities = None + self._box_vectors = None + + def load_details(self) + filename = self.engine.trajectory_filename(self.file_number) + (xyz, vel, box) = self.engine.read_frame_data(filename, + self.file_position) + self._xyz = xyz + self._velocities = vel + self._box_vectors = box + + def clear_cache(self): + self._xyz = None + self._velocities = None + self._box_vectors = None + class Gromacs5Engine(ExternalEngine): - _default_options = { - } + def __init__(self, gro, mdp, options, template, name="gmx"): + self.gro = gro + self.mdp = mdp + self.name = name + self._last_file = None # file open/close efficiency + self._last_file_name = None + # TODO: update options with correct n_spatial, n_atoms + # TODO: add snapshot_timestep; first via options, later read mdp + super(Gromacs5Engine, self).__init__(options, template) + + def read_frame_data(self, filename, frame_num): + """ + Returns pos, vel, box or raises error + """ + if self._last_filename != filename: + self._last_file.close() + self._file = TRRTrajectoryFile(file_name) + self._file.seek(offset=frame_num) + data = self._file._read(n_frames=1, atom_indices=None, + get_velocities=True) + return data[0], data[5], data[3] def read_frame_from_file(self, filename, frame_num): - pass + # note: this only needs to return the file pointers -- but should + # only do so once that frame has been written! + file_number = filename # TODO: get actual file name + try: + self.read_frame_data(filename, frame_num) + except Exception as e: + # TODO: what kind of exception is this? + print e + return 'partial' + else: + return GromacsSnapshot(file_number, file_position) def write_frame_to_file(self, filename, snapshot, mode='a'): pass + def trajectory_filename(self, number): + trr_dir = self.name + "_trr/" + return trr_dir + '{:07d}'.format(number) + '.trr' + def set_filenames(self, number): pass def engine_command(self): pass - pass diff --git a/openpathsampling/engines/gromacs/features/__init__.py b/openpathsampling/engines/gromacs/features/__init__.py new file mode 100644 index 000000000..29530388e --- /dev/null +++ b/openpathsampling/engines/gromacs/features/__init__.py @@ -0,0 +1,2 @@ +import coordinates +import file_info diff --git a/openpathsampling/engines/gromacs/features/coordinates.py b/openpathsampling/engines/gromacs/features/coordinates.py new file mode 100644 index 000000000..3ae1e7d62 --- /dev/null +++ b/openpathsampling/engines/gromacs/features/coordinates.py @@ -0,0 +1,18 @@ +@property +def xyz(snapshot): + """ + Returns + ------- + xyz : numpy.ndarray, shape=(atoms, 3), dtype=numpy.float32 + atomic coordinates without dimensions. + """ + if snapshot._xyz is None: + snapshot.load_details() + + return snapshot._xyz + +@property +def coordinates(snapshot): + """ + """ + return snapshot.xyz diff --git a/openpathsampling/engines/gromacs/features/file_info.py b/openpathsampling/engines/gromacs/features/file_info.py new file mode 100644 index 000000000..8ac2d78b4 --- /dev/null +++ b/openpathsampling/engines/gromacs/features/file_info.py @@ -0,0 +1,21 @@ +""" +Attributes +---------- +file_number : int +file_position : int +""" + +variables = ['file_number', 'file_position'] + +def netcdfplus_init(store): + store.create_variable( + 'file_number', + 'int', + description="the file number that this snapshot is stored in" + ) + store.create_variable( + 'file_position', + 'int', + description="position within the file to find this trajectory" + ) + From 75df7f7f72d77b0767c0552c6bb31b52fa7a6a35 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Tue, 30 May 2017 17:49:48 +0200 Subject: [PATCH 032/464] Snapshot read/write works for TRR. Still need to add unit tests, esp. for partial/failure. Also need to add filename setting and command running --- openpathsampling/engines/gromacs/__init__.py | 2 +- openpathsampling/engines/gromacs/engine.py | 75 ++++++++++++++----- .../engines/gromacs/features/__init__.py | 2 + .../engines/gromacs/features/box_vectors.py | 8 ++ .../engines/gromacs/features/velocities.py | 8 ++ 5 files changed, 77 insertions(+), 18 deletions(-) create mode 100644 openpathsampling/engines/gromacs/features/box_vectors.py create mode 100644 openpathsampling/engines/gromacs/features/velocities.py diff --git a/openpathsampling/engines/gromacs/__init__.py b/openpathsampling/engines/gromacs/__init__.py index d412f0a78..0b66ad16d 100644 --- a/openpathsampling/engines/gromacs/__init__.py +++ b/openpathsampling/engines/gromacs/__init__.py @@ -1,2 +1,2 @@ from engine import Gromacs5Engine as Engine -from engine import GromacsSnapshot +from engine import ExternalMDSnapshot diff --git a/openpathsampling/engines/gromacs/engine.py b/openpathsampling/engines/gromacs/engine.py index 9f4ca3a3a..9b7f37b1e 100644 --- a/openpathsampling/engines/gromacs/engine.py +++ b/openpathsampling/engines/gromacs/engine.py @@ -15,27 +15,35 @@ from openpathsampling.engines.snapshot import BaseSnapshot import features as gmx_features +import os +import numpy as np + # TODO: all gmx_features should be moved to external_md @features.base.attach_features([ features.engine, gmx_features.coordinates, - # gmx_features.velocities, - # gmx_features.box_vectors + gmx_features.velocities, + gmx_features.box_vectors, gmx_features.file_info ]) -class GromacsSnapshot(BaseSnapshot): +class ExternalMDSnapshot(BaseSnapshot): """ Snapshot for external MD engines + + Internally, this only stores the file_number and the file_position. All + specific details (positions, velocities, box vectors) are loaded from + file when requested. """ - def __init__(self, file_number=None, file_position=None): + def __init__(self, file_number=None, file_position=None, engine=None): self.file_number = file_number self.file_position = file_position + self.engine = engine self._xyz = None self._velocities = None self._box_vectors = None - def load_details(self) + def load_details(self): filename = self.engine.trajectory_filename(self.file_number) (xyz, vel, box) = self.engine.read_frame_data(filename, self.file_position) @@ -48,34 +56,48 @@ def clear_cache(self): self._velocities = None self._box_vectors = None + def __repr__(self): + num_str = "file_number=" + str(self.file_number) + pos_str = "file_position=" + str(self.file_position) + eng_str = "engine=" + repr(self.engine) + args = ", ".join([num_str, pos_str, eng_str]) + return "{cls_str}(".format(cls_str=self.cls) + args + ")" + class Gromacs5Engine(ExternalEngine): - def __init__(self, gro, mdp, options, template, name="gmx"): + def __init__(self, gro, mdp, top, options, name="gmx"): self.gro = gro self.mdp = mdp - self.name = name - self._last_file = None # file open/close efficiency - self._last_file_name = None + self._file = None # file open/close efficiency + self._last_filename = None # TODO: update options with correct n_spatial, n_atoms # TODO: add snapshot_timestep; first via options, later read mdp + template = None # TODO: extract a template from the gro super(Gromacs5Engine, self).__init__(options, template) + self.named(name) def read_frame_data(self, filename, frame_num): """ Returns pos, vel, box or raises error """ if self._last_filename != filename: - self._last_file.close() - self._file = TRRTrajectoryFile(file_name) + try: + self._file.close() + except AttributeError: + pass # first time thru, self._file is None + self._file = TRRTrajectoryFile(filename) self._file.seek(offset=frame_num) data = self._file._read(n_frames=1, atom_indices=None, get_velocities=True) - return data[0], data[5], data[3] + return data[0][0], data[5][0], data[3][0] def read_frame_from_file(self, filename, frame_num): # note: this only needs to return the file pointers -- but should # only do so once that frame has been written! - file_number = filename # TODO: get actual file name + basename = os.path.basename(filename) + # basename should be in the format [0-9]+\.trr (as set by the + # trajectory_filename method) + file_number = int(basename.split('.')[0]) try: self.read_frame_data(filename, frame_num) except Exception as e: @@ -83,10 +105,25 @@ def read_frame_from_file(self, filename, frame_num): print e return 'partial' else: - return GromacsSnapshot(file_number, file_position) - - def write_frame_to_file(self, filename, snapshot, mode='a'): - pass + return ExternalMDSnapshot(file_number=file_number, + file_position=frame_num, + engine=self) + + def write_frame_to_file(self, filename, snapshot, mode='w'): + if os.path.isfile(filename): + # stop if we already have this file; could also happen because + # of a weird behavior in a mover. You must remove the files if + # you don't want them. + raise RuntimeError("File " + str(filename) + " exists. " + + "Preventing overwrite.") + trr = TRRTrajectoryFile(filename, mode) + xyz = np.asarray([snapshot.xyz], dtype=np.float32) + time = np.asarray([0.0], dtype=np.float32) + step = np.asarray([0], dtype=np.int32) + box = np.asarray([snapshot.box_vectors], dtype=np.float32) + lambd = np.asarray([0.0], dtype=np.float32) + vel = np.asarray([snapshot.velocities], dtype=np.float32) + trr._write(xyz, time, step, box, lambd, vel) def trajectory_filename(self, number): trr_dir = self.name + "_trr/" @@ -96,4 +133,8 @@ def set_filenames(self, number): pass def engine_command(self): + # first prepare the system with + # gmx grompp -c conf.gro -f md.mdp -t initial_frame.trr -p topol.top + # then run with + # gmx mdrun -s topol.tpr -o trr/0000001.trr -g 0000001.log pass diff --git a/openpathsampling/engines/gromacs/features/__init__.py b/openpathsampling/engines/gromacs/features/__init__.py index 29530388e..2a001f2b3 100644 --- a/openpathsampling/engines/gromacs/features/__init__.py +++ b/openpathsampling/engines/gromacs/features/__init__.py @@ -1,2 +1,4 @@ import coordinates +import velocities +import box_vectors import file_info diff --git a/openpathsampling/engines/gromacs/features/box_vectors.py b/openpathsampling/engines/gromacs/features/box_vectors.py new file mode 100644 index 000000000..0f2f070cb --- /dev/null +++ b/openpathsampling/engines/gromacs/features/box_vectors.py @@ -0,0 +1,8 @@ +@property +def box_vectors(snapshot): + """ + """ + if snapshot._box_vectors is None: + snapshot.load_details() + + return snapshot._box_vectors diff --git a/openpathsampling/engines/gromacs/features/velocities.py b/openpathsampling/engines/gromacs/features/velocities.py new file mode 100644 index 000000000..6db748c28 --- /dev/null +++ b/openpathsampling/engines/gromacs/features/velocities.py @@ -0,0 +1,8 @@ +@property +def velocities(snapshot): + """ + """ + if snapshot._velocities is None: + snapshot.load_details() + + return snapshot._velocities From 83d7c77d138787150c2b13586e486558c331ffd3 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Tue, 30 May 2017 18:14:43 +0200 Subject: [PATCH 033/464] ExternalEngine.prepare(); and some cleanup --- openpathsampling/engines/external_engine.py | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/openpathsampling/engines/external_engine.py b/openpathsampling/engines/external_engine.py index e1f3de57e..a34781471 100644 --- a/openpathsampling/engines/external_engine.py +++ b/openpathsampling/engines/external_engine.py @@ -25,8 +25,6 @@ class ExternalEngine(DynamicsEngine): will work with the trivial `engine.c` developed for testing purposes. """ - # TODO: include clever adaptive waiting scheme - _default_options = { 'n_frames_max' : 10000, 'name_prefix' : "test", @@ -67,7 +65,6 @@ def generate_next_frame(self): if next_frame == "partial": time.sleep(0.001) # wait a millisec and rerun elif next_frame is None: - # TODO: optimize sleep time to wait longer logger.info("Sleeping for {:.2f}ms".format(self.sleep_ms)) time.sleep(self.sleep_ms/1000.0) elif isinstance(next_frame, BaseSnapshot): # success @@ -91,6 +88,8 @@ def start(self, snapshot=None): self.set_filenames(self._traj_num) self.write_frame_to_file(self.input_file, self.current_snapshot, "w") + self.prepare() + cmd = shlex.split(self.engine_command()) self.start_time = time.time() try: @@ -98,15 +97,15 @@ def start(self, snapshot=None): # TODO: add the ability to have handlers for stdin and stdout self.proc = psutil.Popen(shlex.split(self.engine_command()), preexec_fn=os.setsid) - except OSError: # pragma: no cover/ - pass #TODO: need to handle this, but do what? Probably reraise + except OSError: # pragma: no cover + raise #TODO: need to handle this, but do what? def stop(self, trajectory): super(ExternalEngine, self).stop(trajectory) logger.info("total_time {:.4f}".format(time.time() - self.start_time)) proc = self.who_to_kill() proc.send_signal(self.killsig) - proc.wait() # wait for the zombie to die + proc.wait() # wait for the zombie to die self.cleanup() # FROM HERE ARE THE FUNCTIONS TO OVERRIDE IN SUBCLASSES: @@ -160,13 +159,19 @@ def who_to_kill(self): # it will raise an error return self.proc + def prepare(self): + """ + Any preparation between writing snapshot and running command + """ + pass + def cleanup(self): """Any cleanup actions to do after the subprocess dies.""" pass def set_filenames(self, number): """Sets names for files associated with trajectory `number`""" - self.input_file = self.name_prefix + str(number) + ".inp" # not used + self.input_file = self.name_prefix + str(number) + ".inp" self.output_file = self.name_prefix + str(number) + ".out" def engine_command(self): From fbfa7a750dfc1f2969417102d36454d6074aee73 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Tue, 30 May 2017 19:12:48 +0200 Subject: [PATCH 034/464] Draft of remainder of Gromacs5Engine --- openpathsampling/engines/gromacs/engine.py | 34 ++++++++++++++++++---- 1 file changed, 29 insertions(+), 5 deletions(-) diff --git a/openpathsampling/engines/gromacs/engine.py b/openpathsampling/engines/gromacs/engine.py index 9b7f37b1e..4d09b0e4a 100644 --- a/openpathsampling/engines/gromacs/engine.py +++ b/openpathsampling/engines/gromacs/engine.py @@ -16,6 +16,8 @@ import features as gmx_features import os +import psutil +import shlex import numpy as np # TODO: all gmx_features should be moved to external_md @@ -100,9 +102,14 @@ def read_frame_from_file(self, filename, frame_num): file_number = int(basename.split('.')[0]) try: self.read_frame_data(filename, frame_num) + except IndexError: + # this means that no such frame exists yet, so we return None + return None except Exception as e: # TODO: what kind of exception is this? print e + # how to get partial? + raise e return 'partial' else: return ExternalMDSnapshot(file_number=file_number, @@ -117,6 +124,7 @@ def write_frame_to_file(self, filename, snapshot, mode='w'): raise RuntimeError("File " + str(filename) + " exists. " + "Preventing overwrite.") trr = TRRTrajectoryFile(filename, mode) + # type control before passing things to Cython code xyz = np.asarray([snapshot.xyz], dtype=np.float32) time = np.asarray([0.0], dtype=np.float32) step = np.asarray([0], dtype=np.int32) @@ -124,17 +132,33 @@ def write_frame_to_file(self, filename, snapshot, mode='w'): lambd = np.asarray([0.0], dtype=np.float32) vel = np.asarray([snapshot.velocities], dtype=np.float32) trr._write(xyz, time, step, box, lambd, vel) + trr.close() def trajectory_filename(self, number): trr_dir = self.name + "_trr/" return trr_dir + '{:07d}'.format(number) + '.trr' def set_filenames(self, number): - pass + self.input_file = "initial_frame.trr" + self.output_file = self.trajectory_filename(number + 1) + num_str = '{:07d}'.format(number) + self.edr_file = os.path.join([self.name + "_edr", num_str + '.edr']) + self.log_file = os.path.join([self.name + "_log", num_str + '.log']) - def engine_command(self): - # first prepare the system with + def prepare(self): # gmx grompp -c conf.gro -f md.mdp -t initial_frame.trr -p topol.top - # then run with + cmd = "gmx grompp -c {gro} -f {mdp} -p {top} -t {inp}".format( + gro=self.gro, mdp=self.mdp, top=self.top, inp=self.input_file + ) + run_cmd = shlex.split(cmd) + return_code = psutil.Popen(run_cmd, preexec_fn=os.setsid).wait() + print return_code # TODO: what are the appropriate values here? + + def engine_command(self): # gmx mdrun -s topol.tpr -o trr/0000001.trr -g 0000001.log - pass + cmd = "gmx mdrun -s topol.tpr -o {out} -e {edr} -g {log} {args}" + cmd = cmd.format(out=self.output_file, + edr=self.edr_file, + log=self.log_file, + args=self.options['mdrun_args']) + return cmd From f68ae1210d099bc2b20f462ee052beed9bc7f059 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 1 Jun 2017 14:07:49 +0200 Subject: [PATCH 035/464] Looks like we're correctly returning 'partial' --- openpathsampling/engines/gromacs/engine.py | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/openpathsampling/engines/gromacs/engine.py b/openpathsampling/engines/gromacs/engine.py index 4d09b0e4a..a11ff2bbc 100644 --- a/openpathsampling/engines/gromacs/engine.py +++ b/openpathsampling/engines/gromacs/engine.py @@ -105,11 +105,8 @@ def read_frame_from_file(self, filename, frame_num): except IndexError: # this means that no such frame exists yet, so we return None return None - except Exception as e: - # TODO: what kind of exception is this? - print e - # how to get partial? - raise e + except RuntimeError as e: + # TODO: matches "TRR read error" return 'partial' else: return ExternalMDSnapshot(file_number=file_number, From 56cd447aff5a0fb37ebb77c42de65b8b25376377 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Fri, 2 Jun 2017 13:19:44 +0200 Subject: [PATCH 036/464] We seem to have working Gromacs support! --- openpathsampling/engines/gromacs/engine.py | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/openpathsampling/engines/gromacs/engine.py b/openpathsampling/engines/gromacs/engine.py index a11ff2bbc..4dc3e61b1 100644 --- a/openpathsampling/engines/gromacs/engine.py +++ b/openpathsampling/engines/gromacs/engine.py @@ -67,9 +67,16 @@ def __repr__(self): class Gromacs5Engine(ExternalEngine): + _default_options = dict(ExternalEngine._default_options, + **{ + 'mdrun_args': "", + 'gmx_executable': "gmx" + } + ) def __init__(self, gro, mdp, top, options, name="gmx"): self.gro = gro self.mdp = mdp + self.top = top self._file = None # file open/close efficiency self._last_filename = None # TODO: update options with correct n_spatial, n_atoms @@ -138,9 +145,9 @@ def trajectory_filename(self, number): def set_filenames(self, number): self.input_file = "initial_frame.trr" self.output_file = self.trajectory_filename(number + 1) - num_str = '{:07d}'.format(number) - self.edr_file = os.path.join([self.name + "_edr", num_str + '.edr']) - self.log_file = os.path.join([self.name + "_log", num_str + '.log']) + num_str = '{:07d}'.format(number + 1) + self.edr_file = os.path.join(self.name + "_edr", num_str + '.edr') + self.log_file = os.path.join(self.name + "_log", num_str + '.log') def prepare(self): # gmx grompp -c conf.gro -f md.mdp -t initial_frame.trr -p topol.top @@ -153,9 +160,11 @@ def prepare(self): def engine_command(self): # gmx mdrun -s topol.tpr -o trr/0000001.trr -g 0000001.log + args = self.options['mdrun_args'].format(prev_traj=self._traj_num-1, + next_traj=self._traj_num) cmd = "gmx mdrun -s topol.tpr -o {out} -e {edr} -g {log} {args}" cmd = cmd.format(out=self.output_file, edr=self.edr_file, log=self.log_file, - args=self.options['mdrun_args']) + args=args) return cmd From 7345e37556c4de98b4977623c9fe05507e81a80e Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Fri, 2 Jun 2017 16:53:50 +0200 Subject: [PATCH 037/464] Fix problem that first frame from traj was input --- openpathsampling/engines/external_engine.py | 6 +++- openpathsampling/engines/gromacs/engine.py | 39 +++++++++++++++++++-- 2 files changed, 41 insertions(+), 4 deletions(-) diff --git a/openpathsampling/engines/external_engine.py b/openpathsampling/engines/external_engine.py index a34781471..6e443fc3f 100644 --- a/openpathsampling/engines/external_engine.py +++ b/openpathsampling/engines/external_engine.py @@ -38,12 +38,13 @@ class ExternalEngine(DynamicsEngine): killsig = signal.SIGTERM - def __init__(self, options, template): + def __init__(self, options, template, first_frame_in_file=False): # needs to be overridden for each engine super(ExternalEngine, self).__init__(options=options) self.template = template self.sleep_ms = self.default_sleep_ms self.start_time = None + self.first_frame_in_file = first_frame_in_file self._traj_num = -1 @property @@ -100,6 +101,9 @@ def start(self, snapshot=None): except OSError: # pragma: no cover raise #TODO: need to handle this, but do what? + if self.first_frame_in_file: + _ = self.generate_next_frame() # throw away repeat first frame + def stop(self, trajectory): super(ExternalEngine, self).stop(trajectory) logger.info("total_time {:.4f}".format(time.time() - self.start_time)) diff --git a/openpathsampling/engines/gromacs/engine.py b/openpathsampling/engines/gromacs/engine.py index 4dc3e61b1..c8298cceb 100644 --- a/openpathsampling/engines/gromacs/engine.py +++ b/openpathsampling/engines/gromacs/engine.py @@ -67,10 +67,42 @@ def __repr__(self): class Gromacs5Engine(ExternalEngine): + """ + External engine wrapper for Gromacs (using indirect API). + + This provides Gromacs support, using our indirect engine API (TODO + link). + + Parameters + ---------- + gro : string + .gro file + mdp : string + .mdp file + top : string + .top file + options : dict + Dictionary of option name to value. Gromacs-specific option names + are + * ``gmx_prefix``: Prefix to gromacs commands, which are run as + ``{gmx_prefix}command``. Default is 'gmx ' (note the space). + This allows you to use either Gromacs 4 or Gromacs 5, as well + as specifying the path to your version of Gromacs. + * ``grompp_args``: Additional arguments to ``grompp``. The + defaults take ``-c {self.gro} -f {self.mdp} -p {self.top} + -t {self.input_file}``, where the input filename is set by + :meth:`.set_filenames`. Default is the empty string. + * ``mdrun_args``: Additional arguments to ``mdrun``. The + defaults take ``-s topol.top -o self.output_file + -e self.edr_file -g self.log_file``, where the ``topol.top`` + is generated by :meth:`.prepare`, and the other filenames are + set by :meth:`.set_filenames`. Default is the empty string. + """ _default_options = dict(ExternalEngine._default_options, **{ - 'mdrun_args': "", - 'gmx_executable': "gmx" + 'gmx_executable': "gmx ", + 'grompp_args': "", + 'mdrun_args': "" } ) def __init__(self, gro, mdp, top, options, name="gmx"): @@ -82,7 +114,8 @@ def __init__(self, gro, mdp, top, options, name="gmx"): # TODO: update options with correct n_spatial, n_atoms # TODO: add snapshot_timestep; first via options, later read mdp template = None # TODO: extract a template from the gro - super(Gromacs5Engine, self).__init__(options, template) + super(Gromacs5Engine, self).__init__(options, template, + first_frame_in_file=True) self.named(name) def read_frame_data(self, filename, frame_num): From 4dd865f20af1ce62032eb1ecf0870281273ed069 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Tue, 6 Jun 2017 14:08:38 +0200 Subject: [PATCH 038/464] Update GromacsEngine for file path stuff --- openpathsampling/engines/gromacs/__init__.py | 2 +- openpathsampling/engines/gromacs/engine.py | 38 +++++++++++++------- 2 files changed, 26 insertions(+), 14 deletions(-) diff --git a/openpathsampling/engines/gromacs/__init__.py b/openpathsampling/engines/gromacs/__init__.py index 0b66ad16d..fba1e8f0b 100644 --- a/openpathsampling/engines/gromacs/__init__.py +++ b/openpathsampling/engines/gromacs/__init__.py @@ -1,2 +1,2 @@ -from engine import Gromacs5Engine as Engine +from engine import GromacsEngine as Engine from engine import ExternalMDSnapshot diff --git a/openpathsampling/engines/gromacs/engine.py b/openpathsampling/engines/gromacs/engine.py index c8298cceb..e9a552356 100644 --- a/openpathsampling/engines/gromacs/engine.py +++ b/openpathsampling/engines/gromacs/engine.py @@ -18,9 +18,11 @@ import os import psutil import shlex +import shutil import numpy as np -# TODO: all gmx_features should be moved to external_md +# TODO: all gmx_features should be moved to external_md; along with the +# snapshot @features.base.attach_features([ features.engine, @@ -66,7 +68,7 @@ def __repr__(self): return "{cls_str}(".format(cls_str=self.cls) + args + ")" -class Gromacs5Engine(ExternalEngine): +class GromacsEngine(ExternalEngine): """ External engine wrapper for Gromacs (using indirect API). @@ -93,7 +95,7 @@ class Gromacs5Engine(ExternalEngine): -t {self.input_file}``, where the input filename is set by :meth:`.set_filenames`. Default is the empty string. * ``mdrun_args``: Additional arguments to ``mdrun``. The - defaults take ``-s topol.top -o self.output_file + defaults take ``-s topol.top -o self.output_file -e self.edr_file -g self.log_file``, where the ``topol.top`` is generated by :meth:`.prepare`, and the other filenames are set by :meth:`.set_filenames`. Default is the empty string. @@ -105,18 +107,28 @@ class Gromacs5Engine(ExternalEngine): 'mdrun_args': "" } ) - def __init__(self, gro, mdp, top, options, name="gmx"): - self.gro = gro - self.mdp = mdp - self.top = top + def __init__(self, gro, mdp, top, options, base_dir="", prefix="gmx", + initial_trr=None): + self.base_dir = base_dir + self.gro = os.path.join(base_dir, gro) + self.mdp = os.path.join(base_dir, mdp) + self.top = os.path.join(base_dir, top) + self.prefix = os.path.join(base_dir, prefix) self._file = None # file open/close efficiency self._last_filename = None # TODO: update options with correct n_spatial, n_atoms # TODO: add snapshot_timestep; first via options, later read mdp + traj_0 = self.trajectory_filename(0) + if initial_trr is None: + if not os.path.isfile(traj_0): + raise RuntimeError("No initial trajectory. Expected " + + traj_0) + else: + shutil.copy(initial_trr, traj_0) + template = None # TODO: extract a template from the gro - super(Gromacs5Engine, self).__init__(options, template, + super(GromacsEngine, self).__init__(options, template, first_frame_in_file=True) - self.named(name) def read_frame_data(self, filename, frame_num): """ @@ -141,7 +153,7 @@ def read_frame_from_file(self, filename, frame_num): # trajectory_filename method) file_number = int(basename.split('.')[0]) try: - self.read_frame_data(filename, frame_num) + xyz, vel, box = self.read_frame_data(filename, frame_num) except IndexError: # this means that no such frame exists yet, so we return None return None @@ -172,15 +184,15 @@ def write_frame_to_file(self, filename, snapshot, mode='w'): trr.close() def trajectory_filename(self, number): - trr_dir = self.name + "_trr/" + trr_dir = self.prefix + "_trr/" return trr_dir + '{:07d}'.format(number) + '.trr' def set_filenames(self, number): self.input_file = "initial_frame.trr" self.output_file = self.trajectory_filename(number + 1) num_str = '{:07d}'.format(number + 1) - self.edr_file = os.path.join(self.name + "_edr", num_str + '.edr') - self.log_file = os.path.join(self.name + "_log", num_str + '.log') + self.edr_file = os.path.join(self.prefix + "_edr", num_str + '.edr') + self.log_file = os.path.join(self.prefix + "_log", num_str + '.log') def prepare(self): # gmx grompp -c conf.gro -f md.mdp -t initial_frame.trr -p topol.top From 08750e041e7ac4cf09607a820a11eabc330e73a5 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Tue, 6 Jun 2017 14:12:33 +0200 Subject: [PATCH 039/464] Start to tests for GromacsEngine have files locally; want smaller files before adding to repo --- openpathsampling/tests/test_gromacs_engine.py | 101 ++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 openpathsampling/tests/test_gromacs_engine.py diff --git a/openpathsampling/tests/test_gromacs_engine.py b/openpathsampling/tests/test_gromacs_engine.py new file mode 100644 index 000000000..2e7cf1f08 --- /dev/null +++ b/openpathsampling/tests/test_gromacs_engine.py @@ -0,0 +1,101 @@ +from nose.tools import (assert_equal, assert_not_equal, assert_items_equal, + assert_almost_equal, raises, assert_true) +from nose.plugins.skip import Skip, SkipTest + +from test_helpers import data_filename + +import openpathsampling as paths + +from openpathsampling.engines.gromacs import * + +import logging + +logging.getLogger('openpathsampling.initialization').setLevel(logging.CRITICAL) +logging.getLogger('openpathsampling.ensemble').setLevel(logging.CRITICAL) +logging.getLogger('openpathsampling.storage').setLevel(logging.CRITICAL) +logging.getLogger('openpathsampling.netcdfplus').setLevel(logging.CRITICAL) + +# lazily use subprocess here; in case we ever change use of psutil +import subprocess +import os +devnull = open(os.devnull, 'w') +try: + has_gmx = not subprocess.call(["gmx", "-version"], stdout=devnull, + stderr=devnull) +except OSError: + has_gmx = False +finally: + devnull.close() + +class TestGromacsEngine(object): + def setup(self): + self.test_dir = data_filename("gromacs_engine") + self.engine = Engine(gro="conf.gro", + mdp="md.mdp", + top="topol.top", + options={}, + base_dir=self.test_dir, + prefix="project") + + def test_read_frame_from_file_success(self): + # create file with 3 frames 0000000 + fname = os.path.join(self.test_dir, "project_trr", "0000000.trr") + result = self.engine.read_frame_from_file(fname, 0) + assert_true(isinstance(result, ExternalMDSnapshot)) + assert_equal(result.file_number, 0) + assert_equal(result.file_position, 0) + # TODO: add caching of xyz, vel, box; check that we have it now + + fname = os.path.join(self.test_dir, "project_trr", "0000000.trr") + result = self.engine.read_frame_from_file(fname, 3) + assert_true(isinstance(result, ExternalMDSnapshot)) + assert_equal(result.file_number, 0) + assert_equal(result.file_position, 3) + + def test_read_frame_from_file_partial(self): + # create file with 3rd frame broken 0000099 + fname = os.path.join(self.test_dir, "project_trr", "0000099.trr") + frame_2 = self.engine.read_frame_from_file(fname, 49) + assert_true(isinstance(frame_2, ExternalMDSnapshot)) + frame_3 = self.engine.read_frame_from_file(fname, 50) + assert_equal(frame_3, "partial") + + def test_read_frame_from_file_none(self): + # use first file 0000000 + fname = os.path.join(self.test_dir, "project_trr", "0000000.trr") + result = self.engine.read_frame_from_file(fname, 4) + assert_equal(result, None) + + def test_write_frame_to_file_read_back(self): + # write random frame; read back + pass + + def test_set_filenames(self): + # just check the filenames for 0 and 99 + pass + + def test_engine_command(self): + # check the engine command for 0 and 99 + pass + + def test_start_stop(self): + if not has_gmx: + raise SkipTest("Gromacs 5 (gmx) not found. Skipping test.") + # run LengthEnsemble(3) with alanine dipeptide + pass + + def test_prepare(self): + if not has_gmx: + raise SkipTest("Gromacs 5 (gmx) not found. Skipping test.") + # test prepare command works for 0. Make sure we write out the + # correct files, then delete them + pass + + def test_open_file_caching(self): + # read several frames from one file, then switch to another file + # first read from 0000000, then 0000099 + pass + + def test_trajectory_filename(self): + # check trajectory filenames for 0, 99 + pass From 3e44ea166e9f683ed40225681c70a31448addfbe Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Tue, 6 Jun 2017 15:45:54 +0200 Subject: [PATCH 040/464] Tests for Gromacs engine strings --- openpathsampling/engines/gromacs/engine.py | 14 ++-------- openpathsampling/tests/test_gromacs_engine.py | 28 +++++++++++++++++-- 2 files changed, 28 insertions(+), 14 deletions(-) diff --git a/openpathsampling/engines/gromacs/engine.py b/openpathsampling/engines/gromacs/engine.py index e9a552356..8e9854784 100644 --- a/openpathsampling/engines/gromacs/engine.py +++ b/openpathsampling/engines/gromacs/engine.py @@ -18,7 +18,6 @@ import os import psutil import shlex -import shutil import numpy as np # TODO: all gmx_features should be moved to external_md; along with the @@ -83,6 +82,8 @@ class GromacsEngine(ExternalEngine): .mdp file top : string .top file + base_dir : string + root directory where all files will be found (defaults to pwd) options : dict Dictionary of option name to value. Gromacs-specific option names are @@ -107,8 +108,7 @@ class GromacsEngine(ExternalEngine): 'mdrun_args': "" } ) - def __init__(self, gro, mdp, top, options, base_dir="", prefix="gmx", - initial_trr=None): + def __init__(self, gro, mdp, top, options, base_dir="", prefix="gmx"): self.base_dir = base_dir self.gro = os.path.join(base_dir, gro) self.mdp = os.path.join(base_dir, mdp) @@ -118,14 +118,6 @@ def __init__(self, gro, mdp, top, options, base_dir="", prefix="gmx", self._last_filename = None # TODO: update options with correct n_spatial, n_atoms # TODO: add snapshot_timestep; first via options, later read mdp - traj_0 = self.trajectory_filename(0) - if initial_trr is None: - if not os.path.isfile(traj_0): - raise RuntimeError("No initial trajectory. Expected " - + traj_0) - else: - shutil.copy(initial_trr, traj_0) - template = None # TODO: extract a template from the gro super(GromacsEngine, self).__init__(options, template, first_frame_in_file=True) diff --git a/openpathsampling/tests/test_gromacs_engine.py b/openpathsampling/tests/test_gromacs_engine.py index 2e7cf1f08..d42fc7994 100644 --- a/openpathsampling/tests/test_gromacs_engine.py +++ b/openpathsampling/tests/test_gromacs_engine.py @@ -72,11 +72,33 @@ def test_write_frame_to_file_read_back(self): def test_set_filenames(self): # just check the filenames for 0 and 99 - pass + test_engine = Engine(gro="conf.gro", mdp="md.mdp", top="topol.top", + options={}, prefix="proj") + test_engine.set_filenames(0) + assert_equal(test_engine.input_file, "initial_frame.trr") + assert_equal(test_engine.output_file, + os.path.join("proj_trr", "0000001.trr")) + assert_equal(test_engine.edr_file, + os.path.join("proj_edr", "0000001.edr")) + assert_equal(test_engine.log_file, + os.path.join("proj_log", "0000001.log")) + + test_engine.set_filenames(99) + assert_equal(test_engine.input_file, "initial_frame.trr") + assert_equal(test_engine.output_file, + os.path.join("proj_trr", "0000100.trr")) + assert_equal(test_engine.edr_file, + os.path.join("proj_edr", "0000100.edr")) + assert_equal(test_engine.log_file, + os.path.join("proj_log", "0000100.log")) def test_engine_command(self): - # check the engine command for 0 and 99 - pass + test_engine = Engine(gro="conf.gro", mdp="md.mdp", top="topol.top", + options={}, prefix="proj") + test_engine.set_filenames(0) + assert_equal(test_engine.engine_command(), "gmx mdrun -s topol.tpr " + + "-o proj_trr/0000001.trr -e proj_edr/0000001.edr " + + "-g proj_log/0000001.log ") def test_start_stop(self): if not has_gmx: From 98728f17fdca9cc3bb1629e390a4ff47b3a4c6bb Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Tue, 6 Jun 2017 16:12:54 +0200 Subject: [PATCH 041/464] Test for GromacsEngine.prepare (skippable) --- openpathsampling/engines/gromacs/engine.py | 16 ++++++++++------ openpathsampling/tests/test_gromacs_engine.py | 14 +++++++++++--- 2 files changed, 21 insertions(+), 9 deletions(-) diff --git a/openpathsampling/engines/gromacs/engine.py b/openpathsampling/engines/gromacs/engine.py index 8e9854784..e50d5577e 100644 --- a/openpathsampling/engines/gromacs/engine.py +++ b/openpathsampling/engines/gromacs/engine.py @@ -7,6 +7,7 @@ """ import logging +logger = logging.getLogger(__name__) from mdtraj.formats import TRRTrajectoryFile @@ -180,20 +181,23 @@ def trajectory_filename(self, number): return trr_dir + '{:07d}'.format(number) + '.trr' def set_filenames(self, number): - self.input_file = "initial_frame.trr" + self.input_file = os.path.join(self.base_dir, "initial_frame.trr") self.output_file = self.trajectory_filename(number + 1) num_str = '{:07d}'.format(number + 1) self.edr_file = os.path.join(self.prefix + "_edr", num_str + '.edr') self.log_file = os.path.join(self.prefix + "_log", num_str + '.log') - def prepare(self): - # gmx grompp -c conf.gro -f md.mdp -t initial_frame.trr -p topol.top - cmd = "gmx grompp -c {gro} -f {mdp} -p {top} -t {inp}".format( - gro=self.gro, mdp=self.mdp, top=self.top, inp=self.input_file + def prepare(self): # pragma: no cover + # coverage ignored here b/c Travis tests won't have gmx, however, we + # do have a (skippable) test for it + cmd = "gmx grompp -c {gro} -f {mdp} -p {top} -t {inp} {xtra}".format( + gro=self.gro, mdp=self.mdp, top=self.top, inp=self.input_file, + xtra=self.options['grompp_args'] ) + logger.info(cmd) run_cmd = shlex.split(cmd) return_code = psutil.Popen(run_cmd, preexec_fn=os.setsid).wait() - print return_code # TODO: what are the appropriate values here? + return return_code def engine_command(self): # gmx mdrun -s topol.tpr -o trr/0000001.trr -g 0000001.log diff --git a/openpathsampling/tests/test_gromacs_engine.py b/openpathsampling/tests/test_gromacs_engine.py index d42fc7994..6f9443cd5 100644 --- a/openpathsampling/tests/test_gromacs_engine.py +++ b/openpathsampling/tests/test_gromacs_engine.py @@ -109,9 +109,17 @@ def test_start_stop(self): def test_prepare(self): if not has_gmx: raise SkipTest("Gromacs 5 (gmx) not found. Skipping test.") - # test prepare command works for 0. Make sure we write out the - # correct files, then delete them - pass + self.engine.set_filenames(0) + files = ['topol.tpr', 'mdout.mdp'] + for f in files: + if os.path.isfile(f): + raise AssertionError("File " + str(f) + " already exists!") + assert_equal(self.engine.prepare(), 0) + for f in files: + if not os.path.isfile(f): + raise AssertionError("File " + str(f) + " was not created!") + for f in files: + os.remove(f) def test_open_file_caching(self): # read several frames from one file, then switch to another file From 7636c430af95d0bff21b3960cf64172fd927cff7 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Tue, 6 Jun 2017 17:10:24 +0200 Subject: [PATCH 042/464] Test for writing TRR frame to file (reading back) --- openpathsampling/engines/gromacs/engine.py | 16 ++++++- openpathsampling/tests/test_gromacs_engine.py | 46 +++++++++++++++---- 2 files changed, 51 insertions(+), 11 deletions(-) diff --git a/openpathsampling/engines/gromacs/engine.py b/openpathsampling/engines/gromacs/engine.py index e50d5577e..a13bac23b 100644 --- a/openpathsampling/engines/gromacs/engine.py +++ b/openpathsampling/engines/gromacs/engine.py @@ -55,6 +55,18 @@ def load_details(self): self._velocities = vel self._box_vectors = box + def set_details(self, xyz, velocities, box_vectors): + try: + self.load_details() + except: + pass + else: + raise RuntimeError("Can't set details if frame already exists.") + finally: + self._xyz = xyz + self._velocities = velocities + self._box_vectors = box_vectors + def clear_cache(self): self._xyz = None self._velocities = None @@ -188,8 +200,8 @@ def set_filenames(self, number): self.log_file = os.path.join(self.prefix + "_log", num_str + '.log') def prepare(self): # pragma: no cover - # coverage ignored here b/c Travis tests won't have gmx, however, we - # do have a (skippable) test for it + # coverage ignored b/c Travis won't have gmx. However, we do have a + # test that covers this if gmx is present (otherwise it is skipped) cmd = "gmx grompp -c {gro} -f {mdp} -p {top} -t {inp} {xtra}".format( gro=self.gro, mdp=self.mdp, top=self.top, inp=self.input_file, xtra=self.options['grompp_args'] diff --git a/openpathsampling/tests/test_gromacs_engine.py b/openpathsampling/tests/test_gromacs_engine.py index 6f9443cd5..d08dcadc5 100644 --- a/openpathsampling/tests/test_gromacs_engine.py +++ b/openpathsampling/tests/test_gromacs_engine.py @@ -1,6 +1,7 @@ from nose.tools import (assert_equal, assert_not_equal, assert_items_equal, assert_almost_equal, raises, assert_true) from nose.plugins.skip import Skip, SkipTest +import numpy.testing as npt from test_helpers import data_filename @@ -9,12 +10,15 @@ from openpathsampling.engines.gromacs import * import logging +import numpy as np + logging.getLogger('openpathsampling.initialization').setLevel(logging.CRITICAL) logging.getLogger('openpathsampling.ensemble').setLevel(logging.CRITICAL) logging.getLogger('openpathsampling.storage').setLevel(logging.CRITICAL) logging.getLogger('openpathsampling.netcdfplus').setLevel(logging.CRITICAL) +# check whether we have Gromacs 5 available; otherwise some tests skipped # lazily use subprocess here; in case we ever change use of psutil import subprocess import os @@ -27,7 +31,12 @@ finally: devnull.close() + class TestGromacsEngine(object): + # Files used (in test_data/gromacs_engine/) + # conf.gro, md.mdp, topol.top : standard Gromacs input files + # project_trr/0000000.trr : working file, 4 frames + # project_trr/0000099.trr : 49 working frames, final frame partial def setup(self): self.test_dir = data_filename("gromacs_engine") self.engine = Engine(gro="conf.gro", @@ -38,7 +47,7 @@ def setup(self): prefix="project") def test_read_frame_from_file_success(self): - # create file with 3 frames 0000000 + # when the frame is present, we should return it fname = os.path.join(self.test_dir, "project_trr", "0000000.trr") result = self.engine.read_frame_from_file(fname, 0) assert_true(isinstance(result, ExternalMDSnapshot)) @@ -53,7 +62,7 @@ def test_read_frame_from_file_success(self): assert_equal(result.file_position, 3) def test_read_frame_from_file_partial(self): - # create file with 3rd frame broken 0000099 + # if a frame is partial, return 'partial' fname = os.path.join(self.test_dir, "project_trr", "0000099.trr") frame_2 = self.engine.read_frame_from_file(fname, 49) assert_true(isinstance(frame_2, ExternalMDSnapshot)) @@ -61,17 +70,40 @@ def test_read_frame_from_file_partial(self): assert_equal(frame_3, "partial") def test_read_frame_from_file_none(self): - # use first file 0000000 + # if a frame is beyond the last frame, return None fname = os.path.join(self.test_dir, "project_trr", "0000000.trr") result = self.engine.read_frame_from_file(fname, 4) assert_equal(result, None) def test_write_frame_to_file_read_back(self): # write random frame; read back - pass + # sinfully, we start by reading in a frame to get the correct dims + fname = os.path.join(self.test_dir, "project_trr", "0000000.trr") + tmp = self.engine.read_frame_from_file(fname, 0) + shape = tmp.xyz.shape + xyz = np.random.randn(*shape) + vel = np.random.randn(*shape) + box = np.random.randn(3, 3) + traj_50 = self.engine.trajectory_filename(50) + # clear it out, in case it exists from a previous failed test + if os.path.isfile(traj_50): + os.remove(traj_50) + snap = ExternalMDSnapshot(file_number=49, file_position=2, + engine=self.engine) + snap.set_details(xyz, vel, box) + self.engine.write_frame_to_file(traj_50, snap) + + snap2 = self.engine.read_frame_from_file(traj_50, 0) + assert_equal(snap2.file_number, 50) + assert_equal(snap2.file_position, 0) + npt.assert_array_almost_equal(snap.xyz, snap2.xyz) + npt.assert_array_almost_equal(snap.velocities, snap2.velocities) + npt.assert_array_almost_equal(snap.box_vectors, snap2.box_vectors) + + if os.path.isfile(traj_50): + os.remove(traj_50) def test_set_filenames(self): - # just check the filenames for 0 and 99 test_engine = Engine(gro="conf.gro", mdp="md.mdp", top="topol.top", options={}, prefix="proj") test_engine.set_filenames(0) @@ -125,7 +157,3 @@ def test_open_file_caching(self): # read several frames from one file, then switch to another file # first read from 0000000, then 0000099 pass - - def test_trajectory_filename(self): - # check trajectory filenames for 0, 99 - pass From e06108642bb9baaa393f8921fc744763cfb8ba07 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Tue, 6 Jun 2017 18:28:11 +0200 Subject: [PATCH 043/464] Main tests for Gromacs engine complete --- openpathsampling/engines/external_engine.py | 11 ++++-- openpathsampling/engines/gromacs/engine.py | 12 +++++++ openpathsampling/tests/test_gromacs_engine.py | 36 +++++++++++++++++-- 3 files changed, 54 insertions(+), 5 deletions(-) diff --git a/openpathsampling/engines/external_engine.py b/openpathsampling/engines/external_engine.py index 6e443fc3f..83d9f7afb 100644 --- a/openpathsampling/engines/external_engine.py +++ b/openpathsampling/engines/external_engine.py @@ -59,8 +59,15 @@ def generate_next_frame(self): # should be completely general next_frame_found = False while not next_frame_found: - next_frame = self.read_frame_from_file(self.output_file, - self.frame_num) + try: + next_frame = self.read_frame_from_file(self.output_file, + self.frame_num) + except IOError: + # maybe the file doesn't exist + if self.proc.is_running(): + next_frame = None + else: + raise #print self.frame_num, next_frame # DEBUG LOGGER now = time.time() if next_frame == "partial": diff --git a/openpathsampling/engines/gromacs/engine.py b/openpathsampling/engines/gromacs/engine.py index a13bac23b..240cd218f 100644 --- a/openpathsampling/engines/gromacs/engine.py +++ b/openpathsampling/engines/gromacs/engine.py @@ -127,6 +127,14 @@ def __init__(self, gro, mdp, top, options, base_dir="", prefix="gmx"): self.mdp = os.path.join(base_dir, mdp) self.top = os.path.join(base_dir, top) self.prefix = os.path.join(base_dir, prefix) + + dirs = [self.prefix + s for s in ['_trr', '_log', '_edr']] + for d in dirs: + try: + os.mkdir(d) + except OSError: + pass # the directory already exists + self._file = None # file open/close efficiency self._last_filename = None # TODO: update options with correct n_spatial, n_atoms @@ -211,6 +219,10 @@ def prepare(self): # pragma: no cover return_code = psutil.Popen(run_cmd, preexec_fn=os.setsid).wait() return return_code + def cleanup(self): + if os.path.isfile(self.input_file): + os.remove(self.input_file) + def engine_command(self): # gmx mdrun -s topol.tpr -o trr/0000001.trr -g 0000001.log args = self.options['mdrun_args'].format(prev_traj=self._traj_num-1, diff --git a/openpathsampling/tests/test_gromacs_engine.py b/openpathsampling/tests/test_gromacs_engine.py index d08dcadc5..e97441c24 100644 --- a/openpathsampling/tests/test_gromacs_engine.py +++ b/openpathsampling/tests/test_gromacs_engine.py @@ -6,12 +6,15 @@ from test_helpers import data_filename import openpathsampling as paths +import mdtraj as md from openpathsampling.engines.gromacs import * import logging import numpy as np +import shutil + logging.getLogger('openpathsampling.initialization').setLevel(logging.CRITICAL) logging.getLogger('openpathsampling.ensemble').setLevel(logging.CRITICAL) @@ -46,6 +49,17 @@ def setup(self): base_dir=self.test_dir, prefix="project") + def teardown(self): + files = ['topol.tpr', 'mdout.mdp', 'initial_frame.trr', + self.engine.trajectory_filename(1)] + for f in files: + if os.path.isfile(f): + os.remove(f) + if os.path.isfile(os.path.join(self.engine.base_dir, f)): + os.remove(os.path.join(self.engine.base_dir, f)) + shutil.rmtree(self.engine.prefix + "_log") + shutil.rmtree(self.engine.prefix + "_edr") + def test_read_frame_from_file_success(self): # when the frame is present, we should return it fname = os.path.join(self.test_dir, "project_trr", "0000000.trr") @@ -132,24 +146,40 @@ def test_engine_command(self): + "-o proj_trr/0000001.trr -e proj_edr/0000001.edr " + "-g proj_log/0000001.log ") - def test_start_stop(self): + def test_generate(self): if not has_gmx: raise SkipTest("Gromacs 5 (gmx) not found. Skipping test.") - # run LengthEnsemble(3) with alanine dipeptide - pass + + traj_0 = self.engine.trajectory_filename(0) + snap = self.engine.read_frame_from_file(traj_0, 0) + self.engine.set_filenames(0) + + ens = paths.LengthEnsemble(3) + traj = self.engine.generate(snap, running=[ens.can_append]) + assert_equal(self.engine.proc.is_running(), False) + assert_equal(len(traj), 3) + ttraj = md.load(self.engine.trajectory_filename(1), + top=self.engine.gro) + # the mdp suggests a max length of 100 frames + assert_true(len(ttraj) < 100) def test_prepare(self): if not has_gmx: raise SkipTest("Gromacs 5 (gmx) not found. Skipping test.") self.engine.set_filenames(0) + traj_0 = self.engine.trajectory_filename(0) + snap = self.engine.read_frame_from_file(traj_0, 0) + self.engine.write_frame_to_file(self.engine.input_file, snap) files = ['topol.tpr', 'mdout.mdp'] for f in files: if os.path.isfile(f): raise AssertionError("File " + str(f) + " already exists!") + assert_equal(self.engine.prepare(), 0) for f in files: if not os.path.isfile(f): raise AssertionError("File " + str(f) + " was not created!") + for f in files: os.remove(f) From 1f6f9565fcd0a35dbb7b35bbae4cd68c48010fa4 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Wed, 7 Jun 2017 16:29:03 +0200 Subject: [PATCH 044/464] Add some docstrings; ExternMDSnap init calls super --- openpathsampling/engines/gromacs/engine.py | 47 +++++++++++++++++++--- 1 file changed, 42 insertions(+), 5 deletions(-) diff --git a/openpathsampling/engines/gromacs/engine.py b/openpathsampling/engines/gromacs/engine.py index 240cd218f..03072390e 100644 --- a/openpathsampling/engines/gromacs/engine.py +++ b/openpathsampling/engines/gromacs/engine.py @@ -38,8 +38,20 @@ class ExternalMDSnapshot(BaseSnapshot): Internally, this only stores the file_number and the file_position. All specific details (positions, velocities, box vectors) are loaded from file when requested. + + Parameters + ---------- + file_number : int + the number associated with the file for this snapshot; its engine + should be able to convert this to a filename + file_position : int + position within the file; the engine should be able to load data for + this specific snapshot based on this number + engine : :class:`.DynamicsEngine` + the engine associated with this snapshot """ def __init__(self, file_number=None, file_position=None, engine=None): + super(ExternalMDSnapshot, self).__init__() self.file_number = file_number self.file_position = file_position self.engine = engine @@ -48,6 +60,7 @@ def __init__(self, file_number=None, file_position=None, engine=None): self._box_vectors = None def load_details(self): + """Cache coords, velocities, box vectors from the external file""" filename = self.engine.trajectory_filename(self.file_number) (xyz, vel, box) = self.engine.read_frame_data(filename, self.file_position) @@ -56,6 +69,19 @@ def load_details(self): self._box_vectors = box def set_details(self, xyz, velocities, box_vectors): + """Set coords, velocities, and box vectors. + + This is mainly used if OPS must modify/create a snapshot. + + Parameters + ---------- + xyz : np.array + unitless coordinates + velocities : np.array + velocities + box_vectors : np.array + unit cell for the periodic box + """ try: self.load_details() except: @@ -68,6 +94,12 @@ def set_details(self, xyz, velocities, box_vectors): self._box_vectors = box_vectors def clear_cache(self): + """Remove internal details from snapshot. + + These details should always be accessible later using + :method:`.load_details`. Removing them allows them memory to be + freed. + """ self._xyz = None self._velocities = None self._box_vectors = None @@ -207,13 +239,17 @@ def set_filenames(self, number): self.edr_file = os.path.join(self.prefix + "_edr", num_str + '.edr') self.log_file = os.path.join(self.prefix + "_log", num_str + '.log') - def prepare(self): # pragma: no cover - # coverage ignored b/c Travis won't have gmx. However, we do have a - # test that covers this if gmx is present (otherwise it is skipped) + @property + def grompp_command(self): cmd = "gmx grompp -c {gro} -f {mdp} -p {top} -t {inp} {xtra}".format( gro=self.gro, mdp=self.mdp, top=self.top, inp=self.input_file, xtra=self.options['grompp_args'] ) + + def prepare(self): # pragma: no cover + # coverage ignored b/c Travis won't have gmx. However, we do have a + # test that covers this if gmx is present (otherwise it is skipped) + cmd = self.grompp_command logger.info(cmd) run_cmd = shlex.split(cmd) return_code = psutil.Popen(run_cmd, preexec_fn=os.setsid).wait() @@ -227,8 +263,9 @@ def engine_command(self): # gmx mdrun -s topol.tpr -o trr/0000001.trr -g 0000001.log args = self.options['mdrun_args'].format(prev_traj=self._traj_num-1, next_traj=self._traj_num) - cmd = "gmx mdrun -s topol.tpr -o {out} -e {edr} -g {log} {args}" - cmd = cmd.format(out=self.output_file, + cmd = "{gmx}mdrun -s topol.tpr -o {out} -e {edr} -g {log} {args}" + cmd = cmd.format(gmx=self.options['gmx_executable'], + out=self.output_file, edr=self.edr_file, log=self.log_file, args=args) From 539505889df0d5334dcbbc17b01a95af797a1d8a Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Wed, 7 Jun 2017 17:00:14 +0200 Subject: [PATCH 045/464] Fixes for snapshot UUID; more logging --- openpathsampling/engines/external_engine.py | 2 ++ openpathsampling/engines/gromacs/engine.py | 7 ++++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/openpathsampling/engines/external_engine.py b/openpathsampling/engines/external_engine.py index 83d9f7afb..85647ab52 100644 --- a/openpathsampling/engines/external_engine.py +++ b/openpathsampling/engines/external_engine.py @@ -58,6 +58,7 @@ def current_snapshot(self, snap): def generate_next_frame(self): # should be completely general next_frame_found = False + logger.debug("Looking for frame") while not next_frame_found: try: next_frame = self.read_frame_from_file(self.output_file, @@ -65,6 +66,7 @@ def generate_next_frame(self): except IOError: # maybe the file doesn't exist if self.proc.is_running(): + logger.info("Waiting for file to be written") next_frame = None else: raise diff --git a/openpathsampling/engines/gromacs/engine.py b/openpathsampling/engines/gromacs/engine.py index 03072390e..ba9845164 100644 --- a/openpathsampling/engines/gromacs/engine.py +++ b/openpathsampling/engines/gromacs/engine.py @@ -51,10 +51,14 @@ class ExternalMDSnapshot(BaseSnapshot): the engine associated with this snapshot """ def __init__(self, file_number=None, file_position=None, engine=None): - super(ExternalMDSnapshot, self).__init__() + # these are done in place of calling super + self._reversed = None + self.__uuid__ = self.get_uuid() + # these are the requried attributes self.file_number = file_number self.file_position = file_position self.engine = engine + # these are containers for temporary data self._xyz = None self._velocities = None self._box_vectors = None @@ -245,6 +249,7 @@ def grompp_command(self): gro=self.gro, mdp=self.mdp, top=self.top, inp=self.input_file, xtra=self.options['grompp_args'] ) + return cmd def prepare(self): # pragma: no cover # coverage ignored b/c Travis won't have gmx. However, we do have a From f8f31abe74a5e99c212cb4215dd0f615153ad8ef Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Mon, 26 Jun 2017 15:35:48 +0200 Subject: [PATCH 046/464] Add n_poll_per_step --- openpathsampling/engines/external_engine.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/openpathsampling/engines/external_engine.py b/openpathsampling/engines/external_engine.py index 85647ab52..942f351fb 100644 --- a/openpathsampling/engines/external_engine.py +++ b/openpathsampling/engines/external_engine.py @@ -33,7 +33,8 @@ class ExternalEngine(DynamicsEngine): 'engine_sleep' : 100, 'engine_directory' : "", 'n_spatial' : 1, - 'n_atoms' : 1 + 'n_atoms' : 1, + 'n_poll_per_step': 1 } killsig = signal.SIGTERM @@ -86,8 +87,10 @@ def generate_next_frame(self): else: # pragma: no cover raise RuntimeError("Strange return value from read_next_frame_from_file") if self.auto_optimize_sleep and self.n_frames_since_start > 0: - self.sleep_ms = ((now - self.start_time) / - self.n_frames_since_start) * 1000.0 + n_poll_per_step = self.options['n_poll_per_step'] + elapsed = now - self.start_time + time_per_step = elapsed / self.n_frames_since_start + self.sleep_ms = time_per_step / n_poll_per_step * 1000.0 return self.current_snapshot def start(self, snapshot=None): From 364cb2307021cc11de5a31f577e12a5f3e1f6bf6 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Mon, 3 Jul 2017 12:06:55 +0200 Subject: [PATCH 047/464] Fix for bad merge decision --- openpathsampling/engines/toy/snapshot.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openpathsampling/engines/toy/snapshot.py b/openpathsampling/engines/toy/snapshot.py index 281bd14bb..395a1e42a 100644 --- a/openpathsampling/engines/toy/snapshot.py +++ b/openpathsampling/engines/toy/snapshot.py @@ -5,7 +5,7 @@ """ from openpathsampling.engines import BaseSnapshot, SnapshotFactory -import openpathsampling.engines.features as feats +from openpathsampling.engines import features as feats from . import features as toy_feats From f362f66e1ae427e8791bd8f3c056924afaa250fc Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Mon, 3 Jul 2017 12:14:22 +0200 Subject: [PATCH 048/464] Fix import for Py3 --- openpathsampling/engines/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openpathsampling/engines/__init__.py b/openpathsampling/engines/__init__.py index 9363819c2..ce22181b0 100644 --- a/openpathsampling/engines/__init__.py +++ b/openpathsampling/engines/__init__.py @@ -9,4 +9,4 @@ DynamicsEngine, NoEngine, EngineError, EngineNaNError, EngineMaxLengthError) -from external_engine import ExternalEngine +from .external_engine import ExternalEngine From 4e393f0cfd18d8aba516acd0829e13f0e46f3939 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Mon, 3 Jul 2017 12:22:32 +0200 Subject: [PATCH 049/464] Use test_helpers.assert_items_equal --- openpathsampling/tests/testexternal_engine.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/openpathsampling/tests/testexternal_engine.py b/openpathsampling/tests/testexternal_engine.py index b5f2f0455..679b67127 100644 --- a/openpathsampling/tests/testexternal_engine.py +++ b/openpathsampling/tests/testexternal_engine.py @@ -1,6 +1,7 @@ -from nose.tools import (assert_equal, assert_not_equal, assert_items_equal, - assert_almost_equal, raises, assert_true) +from nose.tools import (assert_equal, assert_not_equal, assert_almost_equal, + raises, assert_true) from nose.plugins.skip import Skip, SkipTest +from .test_helpers import assert_items_equal import openpathsampling as paths import openpathsampling.engines as peng From cde9ed48a798068f88405a8f24211f1a0c25039f Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Sat, 30 Dec 2017 16:10:50 -0500 Subject: [PATCH 050/464] Steps to switch file_number to file_name Will still need to create file name from number for shooting --- openpathsampling/engines/gromacs/engine.py | 23 +++++++++---------- openpathsampling/tests/test_gromacs_engine.py | 9 ++++---- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/openpathsampling/engines/gromacs/engine.py b/openpathsampling/engines/gromacs/engine.py index ba9845164..ec258b370 100644 --- a/openpathsampling/engines/gromacs/engine.py +++ b/openpathsampling/engines/gromacs/engine.py @@ -41,21 +41,21 @@ class ExternalMDSnapshot(BaseSnapshot): Parameters ---------- - file_number : int - the number associated with the file for this snapshot; its engine - should be able to convert this to a filename + file_name : string + the name of the external file where the positions/velocities/etc. + reside file_position : int position within the file; the engine should be able to load data for this specific snapshot based on this number engine : :class:`.DynamicsEngine` the engine associated with this snapshot """ - def __init__(self, file_number=None, file_position=None, engine=None): + def __init__(self, file_name=None, file_position=None, engine=None): # these are done in place of calling super self._reversed = None self.__uuid__ = self.get_uuid() # these are the requried attributes - self.file_number = file_number + self.file_name = file_name self.file_position = file_position self.engine = engine # these are containers for temporary data @@ -65,8 +65,7 @@ def __init__(self, file_number=None, file_position=None, engine=None): def load_details(self): """Cache coords, velocities, box vectors from the external file""" - filename = self.engine.trajectory_filename(self.file_number) - (xyz, vel, box) = self.engine.read_frame_data(filename, + (xyz, vel, box) = self.engine.read_frame_data(self.file_name, self.file_position) self._xyz = xyz self._velocities = vel @@ -109,7 +108,7 @@ def clear_cache(self): self._box_vectors = None def __repr__(self): - num_str = "file_number=" + str(self.file_number) + num_str = "file_name=" + str(self.file_name) pos_str = "file_position=" + str(self.file_position) eng_str = "engine=" + repr(self.engine) args = ", ".join([num_str, pos_str, eng_str]) @@ -194,15 +193,15 @@ def read_frame_data(self, filename, frame_num): get_velocities=True) return data[0][0], data[5][0], data[3][0] - def read_frame_from_file(self, filename, frame_num): + def read_frame_from_file(self, file_name, frame_num): # note: this only needs to return the file pointers -- but should # only do so once that frame has been written! - basename = os.path.basename(filename) + basename = os.path.basename(file_name) # basename should be in the format [0-9]+\.trr (as set by the # trajectory_filename method) file_number = int(basename.split('.')[0]) try: - xyz, vel, box = self.read_frame_data(filename, frame_num) + xyz, vel, box = self.read_frame_data(file_name, frame_num) except IndexError: # this means that no such frame exists yet, so we return None return None @@ -210,7 +209,7 @@ def read_frame_from_file(self, filename, frame_num): # TODO: matches "TRR read error" return 'partial' else: - return ExternalMDSnapshot(file_number=file_number, + return ExternalMDSnapshot(file_name=file_name, file_position=frame_num, engine=self) diff --git a/openpathsampling/tests/test_gromacs_engine.py b/openpathsampling/tests/test_gromacs_engine.py index e97441c24..561fa95e2 100644 --- a/openpathsampling/tests/test_gromacs_engine.py +++ b/openpathsampling/tests/test_gromacs_engine.py @@ -65,14 +65,14 @@ def test_read_frame_from_file_success(self): fname = os.path.join(self.test_dir, "project_trr", "0000000.trr") result = self.engine.read_frame_from_file(fname, 0) assert_true(isinstance(result, ExternalMDSnapshot)) - assert_equal(result.file_number, 0) + assert_equal(result.file_name, fname) assert_equal(result.file_position, 0) # TODO: add caching of xyz, vel, box; check that we have it now fname = os.path.join(self.test_dir, "project_trr", "0000000.trr") result = self.engine.read_frame_from_file(fname, 3) assert_true(isinstance(result, ExternalMDSnapshot)) - assert_equal(result.file_number, 0) + assert_equal(result.file_name, fname) assert_equal(result.file_position, 3) def test_read_frame_from_file_partial(self): @@ -102,13 +102,14 @@ def test_write_frame_to_file_read_back(self): # clear it out, in case it exists from a previous failed test if os.path.isfile(traj_50): os.remove(traj_50) - snap = ExternalMDSnapshot(file_number=49, file_position=2, + file_49 = os.path.join(self.test_dir, "project_trr", "0000049.trr") + snap = ExternalMDSnapshot(file_name=file_49, file_position=2, engine=self.engine) snap.set_details(xyz, vel, box) self.engine.write_frame_to_file(traj_50, snap) snap2 = self.engine.read_frame_from_file(traj_50, 0) - assert_equal(snap2.file_number, 50) + assert_equal(snap2.file_name, traj_50) assert_equal(snap2.file_position, 0) npt.assert_array_almost_equal(snap.xyz, snap2.xyz) npt.assert_array_almost_equal(snap.velocities, snap2.velocities) From 2920d950a0883f586cf8e9e78dc81e7ff9526691 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 18 Jan 2018 08:35:12 +0100 Subject: [PATCH 051/464] Update microtest.py for (long-ago) changed API --- openpathsampling/tests/external_engine/microtest.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openpathsampling/tests/external_engine/microtest.py b/openpathsampling/tests/external_engine/microtest.py index 8959dfdee..34b3ce1d2 100644 --- a/openpathsampling/tests/external_engine/microtest.py +++ b/openpathsampling/tests/external_engine/microtest.py @@ -27,7 +27,7 @@ def run(): ensemble = paths.LengthEnsemble(20) engine = build_engine(template) logging.basicConfig(level=logging.INFO) - engine.generate_forward(template, ensemble) + engine.generate(template, ensemble.can_append, direction=+1) if __name__ == "__main__": run() From 9452efcd3dd13344e82de83e8a7ebc6de8caeab8 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Fri, 26 Jan 2018 23:26:08 +0100 Subject: [PATCH 052/464] Update GromacsEngine; runs TPS without crash Likely still having problems with the correctness, but it runs! --- openpathsampling/engines/external_engine.py | 9 +++- openpathsampling/engines/features/base.py | 29 +++++++++-- openpathsampling/engines/gromacs/engine.py | 52 ++++++++++++++++--- .../engines/gromacs/features/box_vectors.py | 2 + .../engines/gromacs/features/coordinates.py | 2 + .../engines/gromacs/features/file_info.py | 8 +-- .../engines/gromacs/features/velocities.py | 16 +++++- 7 files changed, 100 insertions(+), 18 deletions(-) diff --git a/openpathsampling/engines/external_engine.py b/openpathsampling/engines/external_engine.py index 942f351fb..9e99298a5 100644 --- a/openpathsampling/engines/external_engine.py +++ b/openpathsampling/engines/external_engine.py @@ -39,14 +39,17 @@ class ExternalEngine(DynamicsEngine): killsig = signal.SIGTERM - def __init__(self, options, template, first_frame_in_file=False): + def __init__(self, options, descriptor, template, + first_frame_in_file=False): # needs to be overridden for each engine - super(ExternalEngine, self).__init__(options=options) + super(ExternalEngine, self).__init__(options=options, + descriptor=descriptor) self.template = template self.sleep_ms = self.default_sleep_ms self.start_time = None self.first_frame_in_file = first_frame_in_file self._traj_num = -1 + self._current_snapshot = template @property def current_snapshot(self): @@ -76,6 +79,8 @@ def generate_next_frame(self): if next_frame == "partial": time.sleep(0.001) # wait a millisec and rerun elif next_frame is None: + if not self.proc.is_running(): + raise RuntimeError("External engine died unexpectedly") logger.info("Sleeping for {:.2f}ms".format(self.sleep_ms)) time.sleep(self.sleep_ms/1000.0) elif isinstance(next_frame, BaseSnapshot): # success diff --git a/openpathsampling/engines/features/base.py b/openpathsampling/engines/features/base.py index 2a81fb0c5..e71e8dfde 100644 --- a/openpathsampling/engines/features/base.py +++ b/openpathsampling/engines/features/base.py @@ -141,7 +141,7 @@ def Function(self, name): FeatureTuple = namedtuple( 'FeatureTuple', 'classes variables properties functions required lazy ' + 'numpy reversal minus flip exclude_copy imports debug storables ' + - 'dimensions' + 'dimensions default_none' ) @@ -227,7 +227,7 @@ def _decorator(cls): for name in ['variables', 'minus', 'reversal', 'properties', 'flip', 'numpy', 'lazy', 'required', 'classes', 'exclude_copy', 'imports', 'functions', 'storables', - 'dimensions']: + 'dimensions', 'default_none']: if name not in __features__: __features__[name] = [] @@ -278,7 +278,7 @@ def _decorator(cls): # copy specific attribute types for name in ['variables', 'minus', 'lazy', 'flip', 'numpy', 'required', 'imports', - 'functions', 'storables', 'dimensions']: + 'functions', 'storables', 'dimensions', 'default_none']: if hasattr(feature, name): content = getattr(feature, name) if type(content) is str: @@ -372,6 +372,13 @@ def _decorator(cls): translate={'returns': 'variables'} ) + # code for setting default_none (reused in several + # (for some reason join wasn't working for me?) + default_none_lines = [ + ' {obj}.' + name + ' = None' + for name in __features__['default_none'] + ] + # set new docstring. This is only possible since our class is created # using a Metaclass for abstract classes `abc`. Normal classes cannot # have their docstring changed. @@ -440,6 +447,11 @@ def _decorator(cls): # Copying is effectively creating a new unique object, hence a new UUID code.add_uuid('target') + default_none_code = [line.format(obj='target') + for line in default_none_lines] + code += default_none_code + + if has_lazy: code += [ " target._lazy = {", @@ -501,6 +513,10 @@ def _decorator(cls): " this._reversed = self" ] + default_none_code = [line.format(obj='this') + for line in default_none_lines] + code += default_none_code + code.format(" this.{0} = self.{0}", 'reversal', [], ['lazy']) code.format(" this.{0} = - self.{0}", 'minus', [], ['lazy']) code.format(" this.{0} = not self.{0}", 'flip', [], ['lazy']) @@ -525,6 +541,10 @@ def _decorator(cls): code.add_uuid('this') + default_none_code = [line.format(obj='this') + for line in default_none_lines] + code += default_none_code + if has_lazy: code += [ " this._lazy = {}", @@ -614,6 +634,9 @@ def _decorator(cls): ] code.add_uuid('self') + default_none_code = [line.format(obj='self') + for line in default_none_lines] + code += default_none_code if has_lazy: code += [ diff --git a/openpathsampling/engines/gromacs/engine.py b/openpathsampling/engines/gromacs/engine.py index ec258b370..f42cb7dbf 100644 --- a/openpathsampling/engines/gromacs/engine.py +++ b/openpathsampling/engines/gromacs/engine.py @@ -10,10 +10,12 @@ logger = logging.getLogger(__name__) from mdtraj.formats import TRRTrajectoryFile +import mdtraj as md from openpathsampling.engines import ExternalEngine from openpathsampling.engines import features -from openpathsampling.engines.snapshot import BaseSnapshot +from openpathsampling.engines.snapshot import BaseSnapshot, SnapshotDescriptor +from openpathsampling.engines.openmm.topology import MDTrajTopology import features as gmx_features import os @@ -35,13 +37,13 @@ class ExternalMDSnapshot(BaseSnapshot): """ Snapshot for external MD engines - Internally, this only stores the file_number and the file_position. All + Internally, this only stores the file_name and the file_position. All specific details (positions, velocities, box vectors) are loaded from file when requested. Parameters ---------- - file_name : string + file_name : str the name of the external file where the positions/velocities/etc. reside file_position : int @@ -58,6 +60,7 @@ def __init__(self, file_name=None, file_position=None, engine=None): self.file_name = file_name self.file_position = file_position self.engine = engine + self.velocity_direction = 1 # by default; reversed flips it # these are containers for temporary data self._xyz = None self._velocities = None @@ -115,6 +118,36 @@ def __repr__(self): return "{cls_str}(".format(cls_str=self.cls) + args + ")" +def snapshot_from_gro(gro_file): + class GroFileEngine(ExternalEngine): + def __init__(self, gro): + traj = md.load(gro) + self.topology = MDTrajTopology(traj.topology) + n_atoms = self.topology.n_atoms + n_spatial = self.topology.n_spatial + descriptor = SnapshotDescriptor.construct( + snapshot_class=ExternalMDSnapshot, + snapshot_dimensions={'n_spatial': n_spatial, + 'n_atoms': n_atoms} + ) + super(GroFileEngine, self).__init__(options={}, + descriptor=descriptor, + template=None) + + def read_frame_data(self, file_name, file_position): + traj = md.load(file_name) + xyz = traj.xyz[0] + vel = np.zeros(shape=xyz.shape) + box = traj.unitcell_vectors[0] + return (xyz, vel, box) + + template_engine = GroFileEngine(gro_file) + snapshot = ExternalMDSnapshot(file_name=gro_file, + file_position=0, + engine=template_engine) + return snapshot + + class GromacsEngine(ExternalEngine): """ External engine wrapper for Gromacs (using indirect API). @@ -172,10 +205,12 @@ def __init__(self, gro, mdp, top, options, base_dir="", prefix="gmx"): self._file = None # file open/close efficiency self._last_filename = None - # TODO: update options with correct n_spatial, n_atoms # TODO: add snapshot_timestep; first via options, later read mdp - template = None # TODO: extract a template from the gro - super(GromacsEngine, self).__init__(options, template, + template = snapshot_from_gro(self.gro) + self.topology = template.topology + descriptor = template.engine.descriptor # descriptor from gro file + + super(GromacsEngine, self).__init__(options, descriptor, template, first_frame_in_file=True) def read_frame_data(self, filename, frame_num): @@ -244,8 +279,9 @@ def set_filenames(self, number): @property def grompp_command(self): - cmd = "gmx grompp -c {gro} -f {mdp} -p {top} -t {inp} {xtra}".format( - gro=self.gro, mdp=self.mdp, top=self.top, inp=self.input_file, + cmd = "{gmx}grompp -c {gro} -f {mdp} -p {top} -t {inp} {xtra}".format( + gmx=self.options['gmx_executable'], gro=self.gro, mdp=self.mdp, + top=self.top, inp=self.input_file, xtra=self.options['grompp_args'] ) return cmd diff --git a/openpathsampling/engines/gromacs/features/box_vectors.py b/openpathsampling/engines/gromacs/features/box_vectors.py index 0f2f070cb..db5f3c435 100644 --- a/openpathsampling/engines/gromacs/features/box_vectors.py +++ b/openpathsampling/engines/gromacs/features/box_vectors.py @@ -1,3 +1,5 @@ +default_none = ['_box_vectors'] + @property def box_vectors(snapshot): """ diff --git a/openpathsampling/engines/gromacs/features/coordinates.py b/openpathsampling/engines/gromacs/features/coordinates.py index 3ae1e7d62..fc620c4a3 100644 --- a/openpathsampling/engines/gromacs/features/coordinates.py +++ b/openpathsampling/engines/gromacs/features/coordinates.py @@ -1,3 +1,5 @@ +default_none = ['_xyz'] + @property def xyz(snapshot): """ diff --git a/openpathsampling/engines/gromacs/features/file_info.py b/openpathsampling/engines/gromacs/features/file_info.py index 8ac2d78b4..f80566d1f 100644 --- a/openpathsampling/engines/gromacs/features/file_info.py +++ b/openpathsampling/engines/gromacs/features/file_info.py @@ -1,16 +1,16 @@ """ Attributes ---------- -file_number : int +file_name : str file_position : int """ -variables = ['file_number', 'file_position'] +variables = ['file_name', 'file_position'] def netcdfplus_init(store): store.create_variable( - 'file_number', - 'int', + 'file_name', + 'str', description="the file number that this snapshot is stored in" ) store.create_variable( diff --git a/openpathsampling/engines/gromacs/features/velocities.py b/openpathsampling/engines/gromacs/features/velocities.py index 6db748c28..e42be8105 100644 --- a/openpathsampling/engines/gromacs/features/velocities.py +++ b/openpathsampling/engines/gromacs/features/velocities.py @@ -1,3 +1,17 @@ +variables = ['velocity_direction'] +minus = ['velocity_direction'] +default_none = ['_velocities'] + +def netcdfplus_init(store): + store.create_variable( + 'velocity_direction', + 'int', + description=("whether the stored velocities are flipped. " + + "Note: all trajectories (forward or backward in " + + "in trajectory time) are generated as forward " + + "trajectories.") + ) + @property def velocities(snapshot): """ @@ -5,4 +19,4 @@ def velocities(snapshot): if snapshot._velocities is None: snapshot.load_details() - return snapshot._velocities + return snapshot.velocity_direction * snapshot._velocities From b4ee24ce1d52e29426644345b1a2f126d252ca96 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Sat, 27 Jan 2018 15:42:57 +0100 Subject: [PATCH 053/464] Now can reload TPS sim; calculate path density --- openpathsampling/engines/__init__.py | 2 ++ openpathsampling/engines/features/base.py | 10 ++++++++++ openpathsampling/engines/gromacs/engine.py | 12 ++++++++++++ 3 files changed, 24 insertions(+) diff --git a/openpathsampling/engines/__init__.py b/openpathsampling/engines/__init__.py index ce22181b0..2e0c68c64 100644 --- a/openpathsampling/engines/__init__.py +++ b/openpathsampling/engines/__init__.py @@ -10,3 +10,5 @@ EngineNaNError, EngineMaxLengthError) from .external_engine import ExternalEngine + +from . import gromacs diff --git a/openpathsampling/engines/features/base.py b/openpathsampling/engines/features/base.py index e71e8dfde..b637a4d22 100644 --- a/openpathsampling/engines/features/base.py +++ b/openpathsampling/engines/features/base.py @@ -400,6 +400,9 @@ def _decorator(cls): ] code.add_uuid('this') + default_none_code = [line.format(obj='this') + for line in default_none_lines] + code += default_none_code if has_lazy: code += [ @@ -583,6 +586,9 @@ def _decorator(cls): ] code.add_uuid('self') + default_none_code = [line.format(obj='self') + for line in default_none_lines] + code += default_none_code # dict for lazy attributes using DelayedLoader descriptor if has_lazy: @@ -616,6 +622,10 @@ def _decorator(cls): code.add_uuid('self') + default_none_code = [line.format(obj='self') + for line in default_none_lines] + code += default_none_code + # dict for lazy attributes using DelayedLoader descriptor if has_lazy: code += [ diff --git a/openpathsampling/engines/gromacs/engine.py b/openpathsampling/engines/gromacs/engine.py index f42cb7dbf..daf612c8a 100644 --- a/openpathsampling/engines/gromacs/engine.py +++ b/openpathsampling/engines/gromacs/engine.py @@ -213,6 +213,18 @@ def __init__(self, gro, mdp, top, options, base_dir="", prefix="gmx"): super(GromacsEngine, self).__init__(options, descriptor, template, first_frame_in_file=True) + def to_dict(self): + # TODO: eventually, read files in and store the text + return { + 'base_dir': self.base_dir, + 'gro': self.gro, + 'mdp': self.mdp, + 'top': self.top, + 'options': self.options, + 'base_dir': self.base_dir, + 'prefix': self.prefix + } + def read_frame_data(self, filename, frame_num): """ Returns pos, vel, box or raises error From 2f072dad56a362f1b2d31e40065bf0466be96930 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Wed, 31 Jan 2018 19:45:37 +0100 Subject: [PATCH 054/464] Start to sql-based storage --- openpathsampling/new/storage.py | 180 +++++++++++++++++++++++++++ openpathsampling/new/test_storage.py | 66 ++++++++++ 2 files changed, 246 insertions(+) create mode 100644 openpathsampling/new/storage.py create mode 100644 openpathsampling/new/test_storage.py diff --git a/openpathsampling/new/storage.py b/openpathsampling/new/storage.py new file mode 100644 index 000000000..8a2c1fa7a --- /dev/null +++ b/openpathsampling/new/storage.py @@ -0,0 +1,180 @@ +import os +import collections +import sqlalchemy as sql + +# dict to convert from OPS string type descriptors to SQL types +sql_type = { + 'uuid': sql.String, + 'str': sql.String, + 'json': sql.String, + 'int': sql.Integer #TODO add more +} + +class SQLStorageBackend(object): + """Generic storage backend for SQL. + + Uses SQLAlchemy; could easily duck-type an object that implements the + necessary methods for other backends. + """ + def __init__(self, filename, mode='r', template=None, fallback=None, + backend=None): + self.template = template + self.filename = filename + self.fallback = fallback + self.mode = mode + self._metadata = sql.MetaData() + if backend is None: + backend = 'sqlite' + + if self.mode == "w" and os.path.exists(filename): + # delete existing file; write after + os.remove(filename) + + # we prevent writes by disallowing write method in read mode; + # for everything else; just connect to the database + connection_uri = self.filename_from_backend(filename, backend) + self.engine = sql.create_engine(connection_uri) + self.schema = {} + + @property + def metadata(self): + return self._metadata + + @property + def class_to_table(self): + # dict that links class to table it is stored in + pass + + @staticmethod + def filename_from_backend(filename, backend): + # take backends like "sqlite", etc and return proper file connection + # URI; would be essentially no-op for regular file opening as with + # .nc + uri_root = { + 'sqlite': "sqlite:///{filename}", + }[backend] + return uri_root.format(filename=filename) + + @staticmethod + def _extract_metadata(sql_schema_metadata, table, column): + if sql_schema_metadata: + try: + table_metadata = sql_schema_metadata[table] + except KeyError: + return {} + try: + col_metadata = table_metadata[column] + except KeyError: + return {} + return col_metadata + else: + return {} + + ### FROM HERE IS THE GENERIC PUBLIC API + def register_schema(self, schema, sql_schema_metadata=None): + """Register (part of) a schema (create necessary tables in DB) + + Raises + ------ + TypeError + if the schema provided has names in the existing schema (may be + trying to modify existing schema) + + """ + for table in schema: + columns = [ + sql.Column( + col, sql_type[type_name], + **self._extract_metadata(sql_schema_metadata, + table, col) + ) + for (col, type_name) in schema[table] + ] + try: + table = sql.Table(table, self.metadata, *columns) + except sql.exc.InvalidRequestError: + raise TypeError("Schema registration problem. Your schema " + "may already have tables of the same names.") + + self.metadata.create_all(self.engine) + self.schema.update(schema) + + + def add_to_table(self, objects): + """Add a list of objects of a given class""" + table = self.class_to_table[obj_class] + # this will insert objects into the table + pass + + def load_table_data(self, uuids): + # this pulls out a table the information for the relevant UUIDs + pass + + +class GeneralStorage(object): + def __init__(self, filename, mode='r', template=None, fallback=None, + backend=None): + pass + + @classmethod + def from_backend(cls, backend): + obj = cls.__new__() + obj.filename = backend.filename + obj.mode = backend.mode + obj.template = backend._template + obj.fallback = backend.fallback + obj.backend = backend.backend + obj.db = backend + + + def _cache_simulation_objects(self): + # load up all the simulation objects + pass + + def _create_virtual_stores(self, store_categories): + # create virtual stores for simulation objects (e.g., .volume, etc) + pass + + def save(self, obj): + # prepare a single object for storage + pass + + def save_list(self, list_of_objs): + self.db.add_to_table(list_of_objs) + +ops_schema = {} +ops_schema_sql_metadata = {} + + +class OPSStorage(GeneralStorage): + pass + +class StorageCache(object): + def __init__(self, n_subcaches): + pass + +class StorageList(object): + def __init__(self): + # set self.cache + pass + + def __iter__(self): + # iter fills the cache + pass + + def __getitem__(self): + # getitem builds the complete object + # is is possible that using local lists of UUIDs to get might make + # this just as fast? (stopping at trajectory level; no snapshots) + pass + +class SampleStore(StorageList): + def cache_table(self, start_idx, end_idx): + pass + + def cache_table_to_husks(self, cache_table): + pass + + def fill_husks(self, husks): + pass + diff --git a/openpathsampling/new/test_storage.py b/openpathsampling/new/test_storage.py new file mode 100644 index 000000000..560de6cee --- /dev/null +++ b/openpathsampling/new/test_storage.py @@ -0,0 +1,66 @@ +from storage import * +import pytest + +# NOTE: you can add other SQL backends by subclassing and changing setup +class TestSQLStorageBackend(object): + def setup(self): + self._delete_tmp_files() + self.storage = SQLStorageBackend(":memory:") + self.schema = { + 'uuid': [('uuid', 'uuid'), + ('table', 'int'), + ('row', 'int')], + 'samples': [('replica', 'int'), + ('ensemble', 'uuid'), + ('trajectory', 'uuid')] + } + self.storage.register_schema(self.schema) + + def teardown(self): + self._delete_tmp_files() + + @staticmethod + def _delete_tmp_files(): + if os.path.isfile("test.sql"): + os.remove("test.sql") + + def test_extract_metadata(self): + pass + + def test_filename_from_backend(self): + pass + + def _col_names_set(self, table): + meta = self.storage.metadata + return set([col.name for col in meta.tables[table].columns]) + + def test_setup(self): + table_names = self.storage.engine.table_names() + assert set(table_names) == set(['uuid', 'samples']) + assert self._col_names_set('uuid') == set(['uuid', 'table', 'row']) + assert self._col_names_set('samples') == set(['replica', 'ensemble', + 'trajectory']) + + def test_register_schema(self): + new_schema = { + 'snapshot0': [('filename', 'str'), + ('index', 'int')] + } + self.storage.register_schema(new_schema) + table_names = self.storage.engine.table_names() + assert set(table_names) == set(['uuid', 'samples', 'snapshot0']) + assert self._col_names_set('snapshot0') == set(['filename', + 'index']) + + def test_register_schema_modify_fails(self): + # run register_schema on self.schema again + pass + + def test_add_to_table(self): + pass + + def test_load_table_data(self): + pass + + def test_persistence(self): + pass From c320ba4d7bd8e3908a0ce7e5657b53e84bfc20ca Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Wed, 31 Jan 2018 20:17:10 +0100 Subject: [PATCH 055/464] more tests for sql-based storage --- openpathsampling/new/test_storage.py | 33 +++++++++++++++++++--------- 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/openpathsampling/new/test_storage.py b/openpathsampling/new/test_storage.py index 560de6cee..e0dfd40cb 100644 --- a/openpathsampling/new/test_storage.py +++ b/openpathsampling/new/test_storage.py @@ -1,11 +1,10 @@ from storage import * import pytest -# NOTE: you can add other SQL backends by subclassing and changing setup class TestSQLStorageBackend(object): def setup(self): self._delete_tmp_files() - self.storage = SQLStorageBackend(":memory:") + self.storage = self._default_backend self.schema = { 'uuid': [('uuid', 'uuid'), ('table', 'int'), @@ -19,16 +18,30 @@ def setup(self): def teardown(self): self._delete_tmp_files() + @property + def _default_backend(self): + # NOTE: test other SQL backends by subclassing and changing this + return SQLStorageBackend(":memory:") + @staticmethod def _delete_tmp_files(): if os.path.isfile("test.sql"): os.remove("test.sql") def test_extract_metadata(self): - pass + pytest.skip() + + @pytest.mark.parametrize('test_input,expected', [ + (("file.sql", "sqlite"), "sqlite:///file.sql"), + ((":memory:", "sqlite"), "sqlite:///:memory:") + ]) + def test_filename_from_backend(self, test_input, expected): + filename_from_backend = self.storage.filename_from_backend + assert filename_from_backend(*test_input) == expected - def test_filename_from_backend(self): - pass + def test_filename_from_backend_unknown(self): + with pytest.raises(KeyError): + self.storage.filename_from_backend("file.sql", "foo") def _col_names_set(self, table): meta = self.storage.metadata @@ -53,14 +66,14 @@ def test_register_schema(self): 'index']) def test_register_schema_modify_fails(self): - # run register_schema on self.schema again - pass + with pytest.raises(TypeError): + self.storage.register_schema(self.schema) def test_add_to_table(self): - pass + pytest.skip() def test_load_table_data(self): - pass + pytest.skip() def test_persistence(self): - pass + pytest.skip() From 5d40746151cca979d90914226fc68c7b68ecee76 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 1 Feb 2018 01:05:55 +0100 Subject: [PATCH 056/464] Another test for new storage --- openpathsampling/new/test_storage.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/openpathsampling/new/test_storage.py b/openpathsampling/new/test_storage.py index e0dfd40cb..b1f267fc4 100644 --- a/openpathsampling/new/test_storage.py +++ b/openpathsampling/new/test_storage.py @@ -29,7 +29,11 @@ def _delete_tmp_files(): os.remove("test.sql") def test_extract_metadata(self): - pytest.skip() + sql_meta = { + 'uuid': {'uuid': {'primary_key': True}} + } + meta = self.storage._extract_metadata(sql_meta, 'uuid', 'uuid') + assert meta == {'primary_key': True} @pytest.mark.parametrize('test_input,expected', [ (("file.sql", "sqlite"), "sqlite:///file.sql"), From a4ef3b9b4810d4dd8f6cd5cfe00d8b5d9312582b Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 1 Feb 2018 15:38:16 +0100 Subject: [PATCH 057/464] progress on sql backend --- openpathsampling/new/storage.py | 128 +++++++++++++++++++++++---- openpathsampling/new/test_storage.py | 6 +- 2 files changed, 116 insertions(+), 18 deletions(-) diff --git a/openpathsampling/new/storage.py b/openpathsampling/new/storage.py index 8a2c1fa7a..d61579ab9 100644 --- a/openpathsampling/new/storage.py +++ b/openpathsampling/new/storage.py @@ -1,13 +1,27 @@ import os import collections import sqlalchemy as sql +import openpathsampling as paths # dict to convert from OPS string type descriptors to SQL types sql_type = { 'uuid': sql.String, + 'list_of_uuid': sql.String, 'str': sql.String, 'json': sql.String, - 'int': sql.Integer #TODO add more + 'int': sql.Integer, + #TODO add more +} + +# these two tables are required in *all* schema +universal_schema = { + 'uuid': [('uuid', 'uuid'), ('table', 'int'), ('row', 'int')], + 'tables': [('name', 'str'), ('idx', 'int')] +} + +universal_sql_meta = { + 'uuid': {'uuid': {'primary_key': True}}, + 'tables': {'name': {'primary_key': True}} } class SQLStorageBackend(object): @@ -22,7 +36,13 @@ def __init__(self, filename, mode='r', template=None, fallback=None, self.filename = filename self.fallback = fallback self.mode = mode + + # override later if mode == 'r' or 'a' self._metadata = sql.MetaData() + self.schema = {} # TODO: how to load these correctly? + self.table_to_number = {} + self.number_to_table = {} + if backend is None: backend = 'sqlite' @@ -34,17 +54,11 @@ def __init__(self, filename, mode='r', template=None, fallback=None, # for everything else; just connect to the database connection_uri = self.filename_from_backend(filename, backend) self.engine = sql.create_engine(connection_uri) - self.schema = {} @property def metadata(self): return self._metadata - @property - def class_to_table(self): - # dict that links class to table it is stored in - pass - @staticmethod def filename_from_backend(filename, backend): # take backends like "sqlite", etc and return proper file connection @@ -56,6 +70,7 @@ def filename_from_backend(filename, backend): return uri_root.format(filename=filename) @staticmethod + # TODO: this is not going to be specific to SQL; refactor def _extract_metadata(sql_schema_metadata, table, column): if sql_schema_metadata: try: @@ -70,6 +85,48 @@ def _extract_metadata(sql_schema_metadata, table, column): else: return {} + def internal_tables_from_db(self): + """Obtain mappings of table name to number from database. + """ + tables = self.metadata.tables['tables'] + with self.engine.connect() as conn: + res = conn.execute(tables.select()) + table_to_number = {r.name: r.idx for r in res} + number_to_table = {v: k for (k, v) in table_to_number.items} + return table_to_number, number_to_table + + def is_consistent(self): + """Test whether the DB, schema, and internal table list agree. + """ + db_tables = set(self.engine.table_names()) + db_tables_tables = self.metadata.tables['tables'] + schema_tables = set(self.schema.keys()) + internal_tables_1 = set(self.table_to_number.keys()) + internal_tables_2 = set(self.number_to_table.values()) + consistent = (db_table == scheme_tables == internal_tables_1 + == interal_tables_2) + return consistent + + def _add_table_to_tables_list(self, table_name): + if table_name in ['uuid', 'tables']: + return + # note that this return the number of tables in 'tables', which does + # not include 'uuid' or 'tables' + # There must be a better way to do this, but this seems to get the + # job done, + tables = self.metadata.tables['tables'] + with self.engine.connect() as conn: + res = conn.execute(tables.select()) + n_tables = len([r for r in res]) + + with self.engine.connect() as conn: + conn.execute(tables.insert().values(name=table_name, + idx=n_tables)) + + self.table_to_number.update({table_name: n_tables}) + self.number_to_table.update({n_tables: table_name}) + + ### FROM HERE IS THE GENERIC PUBLIC API def register_schema(self, schema, sql_schema_metadata=None): """Register (part of) a schema (create necessary tables in DB) @@ -81,33 +138,67 @@ def register_schema(self, schema, sql_schema_metadata=None): trying to modify existing schema) """ - for table in schema: - columns = [ + for table_name in schema: + columns = [] + if table_name not in ['uuid', 'tables']: + columns.append(sql.Column('idx', sql.Integer, + primary_key=True)) + columns += [ sql.Column( col, sql_type[type_name], **self._extract_metadata(sql_schema_metadata, - table, col) + table_name, col) ) - for (col, type_name) in schema[table] + for (col, type_name) in schema[table_name] ] try: - table = sql.Table(table, self.metadata, *columns) + table = sql.Table(table_name, self.metadata, *columns) except sql.exc.InvalidRequestError: raise TypeError("Schema registration problem. Your schema " "may already have tables of the same names.") + self._add_table_to_tables_list(table_name) + self.metadata.create_all(self.engine) self.schema.update(schema) + def add_to_table(self, table_name, objects): + """Add a list of objects of a given class - def add_to_table(self, objects): - """Add a list of objects of a given class""" - table = self.class_to_table[obj_class] + Parameters + ---------- + table_name : str + the name of the table + objects : list of dict + dict representation of the objects to be added + """ # this will insert objects into the table + table = self.metadata.tables[table_name] + insert_statements = [table.insert().values(**obj) + for obj in objects] + # TODO: run the inserts on the database + # TODO: how do I get the autoincr row numbers from that? how do I get + # autoincr to work? (get from ResultProxy.inserted_primary_key!) + table_num = self.table_to_number[table_name] + uuid_to_rows = {} + uuid_table = self.metadata.tables['uuid'] + uuid_inserts = [ + uuid_table.insert().values(uuid=k, table=table_num, row=v) + for (k, v) in uuid_to_rows.items() + ] + # TODO: run the inserts on the database + pass + + def load_n_rows_from_table(self, table_name, first_row, n_rows): pass def load_table_data(self, uuids): # this pulls out a table the information for the relevant UUIDs + # TODO: something like this + uuid_table = self.metadata.tables['uuid'] + uuid_or_stmt = sql.or_(*(uuid_table.c.uuid == uuid + for uuid in uuids)) + uuid_sel = uuid_table.select() pass @@ -144,6 +235,13 @@ def save_list(self, list_of_objs): ops_schema = {} ops_schema_sql_metadata = {} +ops_class_to_table = { + # this is only for data objects + paths.Sample: 'samples', + paths.SampleSet: 'sample_sets', + paths.Trajectory: 'trajectories', + paths.MoveChange: 'move_changes' +} class OPSStorage(GeneralStorage): diff --git a/openpathsampling/new/test_storage.py b/openpathsampling/new/test_storage.py index b1f267fc4..5695e7f27 100644 --- a/openpathsampling/new/test_storage.py +++ b/openpathsampling/new/test_storage.py @@ -55,8 +55,8 @@ def test_setup(self): table_names = self.storage.engine.table_names() assert set(table_names) == set(['uuid', 'samples']) assert self._col_names_set('uuid') == set(['uuid', 'table', 'row']) - assert self._col_names_set('samples') == set(['replica', 'ensemble', - 'trajectory']) + assert self._col_names_set('samples') == \ + set(['idx', 'replica', 'ensemble', 'trajectory']) def test_register_schema(self): new_schema = { @@ -66,7 +66,7 @@ def test_register_schema(self): self.storage.register_schema(new_schema) table_names = self.storage.engine.table_names() assert set(table_names) == set(['uuid', 'samples', 'snapshot0']) - assert self._col_names_set('snapshot0') == set(['filename', + assert self._col_names_set('snapshot0') == set(['idx', 'filename', 'index']) def test_register_schema_modify_fails(self): From 968219b42266f6b9344045061ddaca1757d73f8a Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 1 Feb 2018 15:40:01 +0100 Subject: [PATCH 058/464] move file names --- openpathsampling/new/{storage.py => sql_backend.py} | 0 openpathsampling/new/{test_storage.py => test_sql_backend.py} | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename openpathsampling/new/{storage.py => sql_backend.py} (100%) rename openpathsampling/new/{test_storage.py => test_sql_backend.py} (100%) diff --git a/openpathsampling/new/storage.py b/openpathsampling/new/sql_backend.py similarity index 100% rename from openpathsampling/new/storage.py rename to openpathsampling/new/sql_backend.py diff --git a/openpathsampling/new/test_storage.py b/openpathsampling/new/test_sql_backend.py similarity index 100% rename from openpathsampling/new/test_storage.py rename to openpathsampling/new/test_sql_backend.py From 14659cf5b72c5aa12aa085357948437b14d65356 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 1 Feb 2018 15:44:05 +0100 Subject: [PATCH 059/464] Split off storage from sql_backend --- openpathsampling/new/sql_backend.py | 79 +---------------------------- openpathsampling/new/storage.py | 77 ++++++++++++++++++++++++++++ 2 files changed, 78 insertions(+), 78 deletions(-) create mode 100644 openpathsampling/new/storage.py diff --git a/openpathsampling/new/sql_backend.py b/openpathsampling/new/sql_backend.py index d61579ab9..573e0bf76 100644 --- a/openpathsampling/new/sql_backend.py +++ b/openpathsampling/new/sql_backend.py @@ -1,7 +1,6 @@ import os import collections import sqlalchemy as sql -import openpathsampling as paths # dict to convert from OPS string type descriptors to SQL types sql_type = { @@ -196,83 +195,7 @@ def load_table_data(self, uuids): # this pulls out a table the information for the relevant UUIDs # TODO: something like this uuid_table = self.metadata.tables['uuid'] - uuid_or_stmt = sql.or_(*(uuid_table.c.uuid == uuid + uuid_or_stmt = sql.or_(*(uuid_table.c.uuid == uuid for uuid in uuids)) uuid_sel = uuid_table.select() pass - - -class GeneralStorage(object): - def __init__(self, filename, mode='r', template=None, fallback=None, - backend=None): - pass - - @classmethod - def from_backend(cls, backend): - obj = cls.__new__() - obj.filename = backend.filename - obj.mode = backend.mode - obj.template = backend._template - obj.fallback = backend.fallback - obj.backend = backend.backend - obj.db = backend - - - def _cache_simulation_objects(self): - # load up all the simulation objects - pass - - def _create_virtual_stores(self, store_categories): - # create virtual stores for simulation objects (e.g., .volume, etc) - pass - - def save(self, obj): - # prepare a single object for storage - pass - - def save_list(self, list_of_objs): - self.db.add_to_table(list_of_objs) - -ops_schema = {} -ops_schema_sql_metadata = {} -ops_class_to_table = { - # this is only for data objects - paths.Sample: 'samples', - paths.SampleSet: 'sample_sets', - paths.Trajectory: 'trajectories', - paths.MoveChange: 'move_changes' -} - - -class OPSStorage(GeneralStorage): - pass - -class StorageCache(object): - def __init__(self, n_subcaches): - pass - -class StorageList(object): - def __init__(self): - # set self.cache - pass - - def __iter__(self): - # iter fills the cache - pass - - def __getitem__(self): - # getitem builds the complete object - # is is possible that using local lists of UUIDs to get might make - # this just as fast? (stopping at trajectory level; no snapshots) - pass - -class SampleStore(StorageList): - def cache_table(self, start_idx, end_idx): - pass - - def cache_table_to_husks(self, cache_table): - pass - - def fill_husks(self, husks): - pass - diff --git a/openpathsampling/new/storage.py b/openpathsampling/new/storage.py new file mode 100644 index 000000000..a879f857d --- /dev/null +++ b/openpathsampling/new/storage.py @@ -0,0 +1,77 @@ +import collections +import openpathsampling as paths + +class GeneralStorage(object): + def __init__(self, filename, mode='r', template=None, fallback=None, + backend=None): + pass + + @classmethod + def from_backend(cls, backend): + obj = cls.__new__() + obj.filename = backend.filename + obj.mode = backend.mode + obj.template = backend._template + obj.fallback = backend.fallback + obj.backend = backend.backend + obj.db = backend + + + def _cache_simulation_objects(self): + # load up all the simulation objects + pass + + def _create_virtual_stores(self, store_categories): + # create virtual stores for simulation objects (e.g., .volume, etc) + pass + + def save(self, obj): + # prepare a single object for storage + pass + + def save_list(self, list_of_objs): + self.db.add_to_table(list_of_objs) + +ops_schema = {} +ops_schema_sql_metadata = {} +ops_class_to_table = { + # this is only for data objects + paths.Sample: 'samples', + paths.SampleSet: 'sample_sets', + paths.Trajectory: 'trajectories', + paths.MoveChange: 'move_changes' +} + + +class OPSStorage(GeneralStorage): + pass + +class StorageCache(object): + def __init__(self, n_subcaches): + pass + +class StorageList(object): + def __init__(self): + # set self.cache + pass + + def __iter__(self): + # iter fills the cache + pass + + def __getitem__(self): + # getitem builds the complete object + # is is possible that using local lists of UUIDs to get might make + # this just as fast? (stopping at trajectory level; no snapshots) + pass + +class SampleStore(StorageList): + def cache_table(self, start_idx, end_idx): + pass + + def cache_table_to_husks(self, cache_table): + pass + + def fill_husks(self, husks): + pass + From 9197ae1f0db39f360ad1695bc311b0f4874acf59 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 1 Feb 2018 16:20:00 +0100 Subject: [PATCH 060/464] fix up tests --- openpathsampling/new/sql_backend.py | 35 ++++++++++++++++-------- openpathsampling/new/storage.py | 7 +++++ openpathsampling/new/test_sql_backend.py | 12 ++++---- 3 files changed, 36 insertions(+), 18 deletions(-) diff --git a/openpathsampling/new/sql_backend.py b/openpathsampling/new/sql_backend.py index 573e0bf76..9ea1f00fc 100644 --- a/openpathsampling/new/sql_backend.py +++ b/openpathsampling/new/sql_backend.py @@ -1,6 +1,7 @@ import os import collections import sqlalchemy as sql +from storage import universal_schema # dict to convert from OPS string type descriptors to SQL types sql_type = { @@ -12,12 +13,6 @@ #TODO add more } -# these two tables are required in *all* schema -universal_schema = { - 'uuid': [('uuid', 'uuid'), ('table', 'int'), ('row', 'int')], - 'tables': [('name', 'str'), ('idx', 'int')] -} - universal_sql_meta = { 'uuid': {'uuid': {'primary_key': True}}, 'tables': {'name': {'primary_key': True}} @@ -53,6 +48,9 @@ def __init__(self, filename, mode='r', template=None, fallback=None, # for everything else; just connect to the database connection_uri = self.filename_from_backend(filename, backend) self.engine = sql.create_engine(connection_uri) + if self.mode == "w": + self.register_schema(universal_schema) + @property def metadata(self): @@ -112,7 +110,7 @@ def _add_table_to_tables_list(self, table_name): # note that this return the number of tables in 'tables', which does # not include 'uuid' or 'tables' # There must be a better way to do this, but this seems to get the - # job done, + # job done, tables = self.metadata.tables['tables'] with self.engine.connect() as conn: res = conn.execute(tables.select()) @@ -191,11 +189,26 @@ def add_to_table(self, table_name, objects): def load_n_rows_from_table(self, table_name, first_row, n_rows): pass - def load_table_data(self, uuids): - # this pulls out a table the information for the relevant UUIDs - # TODO: something like this + def load_uuids(self, uuids, ignore_missing=False): + """Loads uuids, rows + """ uuid_table = self.metadata.tables['uuid'] uuid_or_stmt = sql.or_(*(uuid_table.c.uuid == uuid for uuid in uuids)) - uuid_sel = uuid_table.select() + uuid_sel = uuid_table.select(uuid_or_stmt) + # TODO: something like this + # pull `results` from the DB + results = {} + if not ignore_missing and len(results) != len(uuid): + # figure out which UUID is missing, raise error on first found + pass + + + def load_table_data(self, uuids): + # this pulls out a table the information for the relevant UUIDs + uuid_table_row = self.load_uuids(uuids) + # group by table + # load each table + # return dict of uuid: dict for row + pass diff --git a/openpathsampling/new/storage.py b/openpathsampling/new/storage.py index a879f857d..18d3a6b69 100644 --- a/openpathsampling/new/storage.py +++ b/openpathsampling/new/storage.py @@ -1,6 +1,13 @@ +import os import collections import openpathsampling as paths +# these two tables are required in *all* schema +universal_schema = { + 'uuid': [('uuid', 'uuid'), ('table', 'int'), ('row', 'int')], + 'tables': [('name', 'str'), ('idx', 'int')] +} + class GeneralStorage(object): def __init__(self, filename, mode='r', template=None, fallback=None, backend=None): diff --git a/openpathsampling/new/test_sql_backend.py b/openpathsampling/new/test_sql_backend.py index 5695e7f27..438a6be0e 100644 --- a/openpathsampling/new/test_sql_backend.py +++ b/openpathsampling/new/test_sql_backend.py @@ -1,4 +1,4 @@ -from storage import * +from sql_backend import * import pytest class TestSQLStorageBackend(object): @@ -13,7 +13,6 @@ def setup(self): ('ensemble', 'uuid'), ('trajectory', 'uuid')] } - self.storage.register_schema(self.schema) def teardown(self): self._delete_tmp_files() @@ -21,7 +20,7 @@ def teardown(self): @property def _default_backend(self): # NOTE: test other SQL backends by subclassing and changing this - return SQLStorageBackend(":memory:") + return SQLStorageBackend(":memory:", mode='w') @staticmethod def _delete_tmp_files(): @@ -53,10 +52,9 @@ def _col_names_set(self, table): def test_setup(self): table_names = self.storage.engine.table_names() - assert set(table_names) == set(['uuid', 'samples']) + assert set(table_names) == set(['uuid', 'tables']) assert self._col_names_set('uuid') == set(['uuid', 'table', 'row']) - assert self._col_names_set('samples') == \ - set(['idx', 'replica', 'ensemble', 'trajectory']) + assert self._col_names_set('tables') == set(['name', 'idx']) def test_register_schema(self): new_schema = { @@ -65,7 +63,7 @@ def test_register_schema(self): } self.storage.register_schema(new_schema) table_names = self.storage.engine.table_names() - assert set(table_names) == set(['uuid', 'samples', 'snapshot0']) + assert set(table_names) == set(['uuid', 'tables', 'snapshot0']) assert self._col_names_set('snapshot0') == set(['idx', 'filename', 'index']) From 298ce49064d9fe3cc45d4cf44fd895d47e5e8e9e Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 1 Feb 2018 17:31:42 +0100 Subject: [PATCH 061/464] add_to_table seems to be working --- openpathsampling/new/sql_backend.py | 39 ++++++++++++++++++----------- openpathsampling/new/storage.py | 13 +++++++++- 2 files changed, 37 insertions(+), 15 deletions(-) diff --git a/openpathsampling/new/sql_backend.py b/openpathsampling/new/sql_backend.py index 9ea1f00fc..3c395f782 100644 --- a/openpathsampling/new/sql_backend.py +++ b/openpathsampling/new/sql_backend.py @@ -51,7 +51,6 @@ def __init__(self, filename, mode='r', template=None, fallback=None, if self.mode == "w": self.register_schema(universal_schema) - @property def metadata(self): return self._metadata @@ -171,26 +170,39 @@ def add_to_table(self, table_name, objects): """ # this will insert objects into the table table = self.metadata.tables[table_name] - insert_statements = [table.insert().values(**obj) - for obj in objects] - # TODO: run the inserts on the database - # TODO: how do I get the autoincr row numbers from that? how do I get - # autoincr to work? (get from ResultProxy.inserted_primary_key!) table_num = self.table_to_number[table_name] - uuid_to_rows = {} + + # this is if we don't use the UUID in the schema... but doing so + # would be another option (redundant data, but better sanity checks) + pop_uuids = [{k: v for (k, v) in obj.items() if k != 'uuid'} + for obj in objects] + insert_statements = [table.insert().values(**obj) + for obj in pop_uuids] + + with self.engine.connect() as conn: + # can't use executemany here because we need the resulting + # primary key values + uuid_to_rows = { + obj['uuid']: conn.execute(ins).inserted_primary_key[0] + for (obj, ins) in zip(objects, insert_statements) + } + uuid_table = self.metadata.tables['uuid'] - uuid_inserts = [ - uuid_table.insert().values(uuid=k, table=table_num, row=v) - for (k, v) in uuid_to_rows.items() - ] - # TODO: run the inserts on the database - pass + uuid_insert_dicts = [{'uuid': k, 'table': table_num, 'row':v} + for (k, v) in uuid_to_rows.items()] + + with self.engine.connect() as conn: + # here we use executemany for performance + conn.execute(uuid_table.insert(), uuid_insert_dicts) def load_n_rows_from_table(self, table_name, first_row, n_rows): pass def load_uuids(self, uuids, ignore_missing=False): """Loads uuids, rows + + This can also be used to identify which UUIDs already exist in the + database. """ uuid_table = self.metadata.tables['uuid'] uuid_or_stmt = sql.or_(*(uuid_table.c.uuid == uuid @@ -203,7 +215,6 @@ def load_uuids(self, uuids, ignore_missing=False): # figure out which UUID is missing, raise error on first found pass - def load_table_data(self, uuids): # this pulls out a table the information for the relevant UUIDs uuid_table_row = self.load_uuids(uuids) diff --git a/openpathsampling/new/storage.py b/openpathsampling/new/storage.py index 18d3a6b69..9fa4b19d7 100644 --- a/openpathsampling/new/storage.py +++ b/openpathsampling/new/storage.py @@ -11,6 +11,7 @@ class GeneralStorage(object): def __init__(self, filename, mode='r', template=None, fallback=None, backend=None): + self.simulation_objects = self._cache_simulation_objects() pass @classmethod @@ -22,6 +23,7 @@ def from_backend(cls, backend): obj.fallback = backend.fallback obj.backend = backend.backend obj.db = backend + obj.simulation_objects = obj._cache_simulation_objects() def _cache_simulation_objects(self): @@ -34,10 +36,15 @@ def _create_virtual_stores(self, store_categories): def save(self, obj): # prepare a single object for storage + # check if obj is in DB pass def save_list(self, list_of_objs): - self.db.add_to_table(list_of_objs) + # get the UUIDs of all objs + # figure out which objs are already in the DB + # organize by type + # convert object to appropriate dict + pass ops_schema = {} ops_schema_sql_metadata = {} @@ -49,6 +56,10 @@ def save_list(self, list_of_objs): paths.MoveChange: 'move_changes' } +ops_class_to_serialization = { + paths.Sample: (paths.Sample.to_dict, paths.Sample.from_dict), + # this allows us to override the to_dict behavior for new storage +} class OPSStorage(GeneralStorage): pass From 23f0f7b6e96f0d434e832bda7a741be2c10faf8a Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 1 Feb 2018 18:20:04 +0100 Subject: [PATCH 062/464] more drafts of loading function for sql storage --- openpathsampling/new/sql_backend.py | 26 ++++++++++++++++++------ openpathsampling/new/storage.py | 1 + openpathsampling/new/test_sql_backend.py | 22 ++++++++++++-------- 3 files changed, 35 insertions(+), 14 deletions(-) diff --git a/openpathsampling/new/sql_backend.py b/openpathsampling/new/sql_backend.py index 3c395f782..d4157a4d9 100644 --- a/openpathsampling/new/sql_backend.py +++ b/openpathsampling/new/sql_backend.py @@ -174,6 +174,7 @@ def add_to_table(self, table_name, objects): # this is if we don't use the UUID in the schema... but doing so # would be another option (redundant data, but better sanity checks) + # TODO: I think the sanity checks will be worth it pop_uuids = [{k: v for (k, v) in obj.items() if k != 'uuid'} for obj in objects] insert_statements = [table.insert().values(**obj) @@ -195,26 +196,39 @@ def add_to_table(self, table_name, objects): # here we use executemany for performance conn.execute(uuid_table.insert(), uuid_insert_dicts) + def _load_from_table(self, table_name, idx_list): + # this is not public API (assumes idx_list, which is reserved by not + # guaranteed) + table = self.metadata.tables[table] + or_stmt = sql.or_(*(table.c.idx == idx for idx in idx_list)) + sel = table.select(or_stmt) + with engine.connection() as conn: + results = list(conn.execute(sel)) + return results + def load_n_rows_from_table(self, table_name, first_row, n_rows): - pass + idx_list = list(range(first_row, first_row + n_rows)) + return self._load_from_table(table_name, idx_list) def load_uuids(self, uuids, ignore_missing=False): - """Loads uuids, rows + """Loads uuids and info on finding data within the table. This can also be used to identify which UUIDs already exist in the - database. + database (with ignore_missing=True). """ uuid_table = self.metadata.tables['uuid'] uuid_or_stmt = sql.or_(*(uuid_table.c.uuid == uuid for uuid in uuids)) uuid_sel = uuid_table.select(uuid_or_stmt) - # TODO: something like this - # pull `results` from the DB - results = {} + with self.engine.connection() as conn: + results = list(conn.execute(uuid_sel)) if not ignore_missing and len(results) != len(uuid): + # TODO # figure out which UUID is missing, raise error on first found pass + return results + def load_table_data(self, uuids): # this pulls out a table the information for the relevant UUIDs uuid_table_row = self.load_uuids(uuids) diff --git a/openpathsampling/new/storage.py b/openpathsampling/new/storage.py index 9fa4b19d7..0dd174a63 100644 --- a/openpathsampling/new/storage.py +++ b/openpathsampling/new/storage.py @@ -44,6 +44,7 @@ def save_list(self, list_of_objs): # figure out which objs are already in the DB # organize by type # convert object to appropriate dict + # gather UUIDs to construct pass ops_schema = {} diff --git a/openpathsampling/new/test_sql_backend.py b/openpathsampling/new/test_sql_backend.py index 438a6be0e..f72be6236 100644 --- a/openpathsampling/new/test_sql_backend.py +++ b/openpathsampling/new/test_sql_backend.py @@ -6,12 +6,10 @@ def setup(self): self._delete_tmp_files() self.storage = self._default_backend self.schema = { - 'uuid': [('uuid', 'uuid'), - ('table', 'int'), - ('row', 'int')], 'samples': [('replica', 'int'), ('ensemble', 'uuid'), - ('trajectory', 'uuid')] + ('trajectory', 'uuid')], + 'snapshot0': [('filename', 'str'), ('index', 'int')] } def teardown(self): @@ -58,20 +56,27 @@ def test_setup(self): def test_register_schema(self): new_schema = { - 'snapshot0': [('filename', 'str'), - ('index', 'int')] + 'snapshot1': [('filename', 'str'), ('index', 'int')] } self.storage.register_schema(new_schema) table_names = self.storage.engine.table_names() - assert set(table_names) == set(['uuid', 'tables', 'snapshot0']) - assert self._col_names_set('snapshot0') == set(['idx', 'filename', + assert set(table_names) == set(['uuid', 'tables', 'snapshot1']) + assert self._col_names_set('snapshot1') == set(['idx', 'filename', 'index']) def test_register_schema_modify_fails(self): + self.storage.register_schema(self.schema) with pytest.raises(TypeError): self.storage.register_schema(self.schema) + def test_load_uuids(self): + pytest.skip() + + def test_load_n_rows_from_table(self): + pytest.skip() + def test_add_to_table(self): + pytest.skip() def test_load_table_data(self): @@ -79,3 +84,4 @@ def test_load_table_data(self): def test_persistence(self): pytest.skip() + From f4809848b675294ed81e492871b21a301a44e1fb Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 1 Feb 2018 20:33:53 +0100 Subject: [PATCH 063/464] always use UUID columns --- openpathsampling/new/sql_backend.py | 21 ++++++++++++++------- openpathsampling/new/storage.py | 17 +++++++++++++++++ openpathsampling/new/test_sql_backend.py | 4 ++-- 3 files changed, 33 insertions(+), 9 deletions(-) diff --git a/openpathsampling/new/sql_backend.py b/openpathsampling/new/sql_backend.py index d4157a4d9..cfa55c999 100644 --- a/openpathsampling/new/sql_backend.py +++ b/openpathsampling/new/sql_backend.py @@ -2,6 +2,7 @@ import collections import sqlalchemy as sql from storage import universal_schema +from tools import group_by # dict to convert from OPS string type descriptors to SQL types sql_type = { @@ -139,6 +140,7 @@ def register_schema(self, schema, sql_schema_metadata=None): if table_name not in ['uuid', 'tables']: columns.append(sql.Column('idx', sql.Integer, primary_key=True)) + columns.append(sql.Column('uuid', sql.String)) columns += [ sql.Column( col, sql_type[type_name], @@ -175,10 +177,10 @@ def add_to_table(self, table_name, objects): # this is if we don't use the UUID in the schema... but doing so # would be another option (redundant data, but better sanity checks) # TODO: I think the sanity checks will be worth it - pop_uuids = [{k: v for (k, v) in obj.items() if k != 'uuid'} - for obj in objects] + # pop_uuids = [{k: v for (k, v) in obj.items() if k != 'uuid'} + # for obj in objects] insert_statements = [table.insert().values(**obj) - for obj in pop_uuids] + for obj in objects] with self.engine.connect() as conn: # can't use executemany here because we need the resulting @@ -232,8 +234,13 @@ def load_uuids(self, uuids, ignore_missing=False): def load_table_data(self, uuids): # this pulls out a table the information for the relevant UUIDs uuid_table_row = self.load_uuids(uuids) - # group by table - # load each table - # return dict of uuid: dict for row - + by_table_number = group_by(uuid_table_row, 1) + by_table_name = {self.number_to_table[k]: v + for (k, v) in by_table_number} + loaded_results = [] + for table in by_table_name: + idxs = [val[2] for val in by_table_name[table]] + loaded_results += self._load_from_table(table, idxs) + + # TODO: check that the UUIDs match pass diff --git a/openpathsampling/new/storage.py b/openpathsampling/new/storage.py index 0dd174a63..f164e27b7 100644 --- a/openpathsampling/new/storage.py +++ b/openpathsampling/new/storage.py @@ -2,6 +2,23 @@ import collections import openpathsampling as paths +""" +A simple storage interface for simulation objects and data objects. + +Reserved words +-------------- + +Table names: + +* ``uuid`` +* ``tables`` + +Column names: + +* ``uuid`` +* ``idx`` +""" + # these two tables are required in *all* schema universal_schema = { 'uuid': [('uuid', 'uuid'), ('table', 'int'), ('row', 'int')], diff --git a/openpathsampling/new/test_sql_backend.py b/openpathsampling/new/test_sql_backend.py index f72be6236..5f3c7cd8d 100644 --- a/openpathsampling/new/test_sql_backend.py +++ b/openpathsampling/new/test_sql_backend.py @@ -61,7 +61,8 @@ def test_register_schema(self): self.storage.register_schema(new_schema) table_names = self.storage.engine.table_names() assert set(table_names) == set(['uuid', 'tables', 'snapshot1']) - assert self._col_names_set('snapshot1') == set(['idx', 'filename', + assert self._col_names_set('snapshot1') == set(['idx', 'uuid', + 'filename', 'index']) def test_register_schema_modify_fails(self): @@ -76,7 +77,6 @@ def test_load_n_rows_from_table(self): pytest.skip() def test_add_to_table(self): - pytest.skip() def test_load_table_data(self): From cfaf730aec2fa91a1feb0d3ab16d254f4cde7e76 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Fri, 2 Feb 2018 01:26:18 +0100 Subject: [PATCH 064/464] test int_table_from_db; smoketest load_uuids --- openpathsampling/new/sql_backend.py | 17 +++++++++-------- openpathsampling/new/storage.py | 1 + openpathsampling/new/test_sql_backend.py | 16 ++++++++++++++++ 3 files changed, 26 insertions(+), 8 deletions(-) diff --git a/openpathsampling/new/sql_backend.py b/openpathsampling/new/sql_backend.py index cfa55c999..9a1fba33e 100644 --- a/openpathsampling/new/sql_backend.py +++ b/openpathsampling/new/sql_backend.py @@ -89,7 +89,7 @@ def internal_tables_from_db(self): with self.engine.connect() as conn: res = conn.execute(tables.select()) table_to_number = {r.name: r.idx for r in res} - number_to_table = {v: k for (k, v) in table_to_number.items} + number_to_table = {v: k for (k, v) in table_to_number.items()} return table_to_number, number_to_table def is_consistent(self): @@ -201,10 +201,10 @@ def add_to_table(self, table_name, objects): def _load_from_table(self, table_name, idx_list): # this is not public API (assumes idx_list, which is reserved by not # guaranteed) - table = self.metadata.tables[table] + table = self.metadata.tables[table_name] or_stmt = sql.or_(*(table.c.idx == idx for idx in idx_list)) sel = table.select(or_stmt) - with engine.connection() as conn: + with self.engine.connect() as conn: results = list(conn.execute(sel)) return results @@ -222,9 +222,9 @@ def load_uuids(self, uuids, ignore_missing=False): uuid_or_stmt = sql.or_(*(uuid_table.c.uuid == uuid for uuid in uuids)) uuid_sel = uuid_table.select(uuid_or_stmt) - with self.engine.connection() as conn: + with self.engine.connect() as conn: results = list(conn.execute(uuid_sel)) - if not ignore_missing and len(results) != len(uuid): + if not ignore_missing and len(results) != len(uuids): # TODO # figure out which UUID is missing, raise error on first found pass @@ -236,11 +236,12 @@ def load_table_data(self, uuids): uuid_table_row = self.load_uuids(uuids) by_table_number = group_by(uuid_table_row, 1) by_table_name = {self.number_to_table[k]: v - for (k, v) in by_table_number} + for (k, v) in by_table_number.items()} loaded_results = [] for table in by_table_name: idxs = [val[2] for val in by_table_name[table]] loaded_results += self._load_from_table(table, idxs) - # TODO: check that the UUIDs match - pass + loaded_uuids = [res.uuid for res in loaded_results] + assert set(uuids) == set(loaded_uuids) # sanity check + return loaded_results diff --git a/openpathsampling/new/storage.py b/openpathsampling/new/storage.py index f164e27b7..8b721a44b 100644 --- a/openpathsampling/new/storage.py +++ b/openpathsampling/new/storage.py @@ -12,6 +12,7 @@ * ``uuid`` * ``tables`` +* ``metadata`` Column names: diff --git a/openpathsampling/new/test_sql_backend.py b/openpathsampling/new/test_sql_backend.py index 5f3c7cd8d..353d34543 100644 --- a/openpathsampling/new/test_sql_backend.py +++ b/openpathsampling/new/test_sql_backend.py @@ -70,6 +70,22 @@ def test_register_schema_modify_fails(self): with pytest.raises(TypeError): self.storage.register_schema(self.schema) + def test_internal_tables_from_db(self): + self.storage.register_schema(self.schema) + tab2num, num2tab = self.storage.internal_tables_from_db() + tables_db = self.storage.metadata.tables['tables'] + with self.storage.engine.connect() as conn: + res = list(conn.execute(tables_db.select())) + + assert len(res) == 2 + num2name = {r.idx: r.name for r in res} + name2num = {r.name: r.idx for r in res} + assert tab2num == name2num + assert num2tab == num2name + + def test_is_consistent(self): + pytest.skip() + def test_load_uuids(self): pytest.skip() From 5fefb55331dccde843fe0bf3044f38468b9ea2bb Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Fri, 2 Feb 2018 13:55:17 +0100 Subject: [PATCH 065/464] full test for add_to_table --- openpathsampling/new/sql_backend.py | 80 +++++++++++++++++++----- openpathsampling/new/test_sql_backend.py | 53 +++++++++++++++- openpathsampling/new/tools.py | 30 +++++++++ 3 files changed, 145 insertions(+), 18 deletions(-) create mode 100644 openpathsampling/new/tools.py diff --git a/openpathsampling/new/sql_backend.py b/openpathsampling/new/sql_backend.py index 9a1fba33e..56b4d467b 100644 --- a/openpathsampling/new/sql_backend.py +++ b/openpathsampling/new/sql_backend.py @@ -2,7 +2,7 @@ import collections import sqlalchemy as sql from storage import universal_schema -from tools import group_by +from tools import group_by, compare_sets # dict to convert from OPS string type descriptors to SQL types sql_type = { @@ -19,6 +19,21 @@ 'tables': {'name': {'primary_key': True}} } +# TODO: test this, and then see if I can refactor existing code to use it +def sql_db_execute(engine, statements, execmany_dict=None): + """Convenience for interacting with the database.""" + if not isinstance(statements, list): + listified = True + statements = [statements] + if execmany_dict is None: + execmany_dict = {} + with engine.connect() as conn: + results = [conn.execute(statement, execmany_dict) + for statement in statements] + if listify: + results = results[0] + return results + class SQLStorageBackend(object): """Generic storage backend for SQL. @@ -92,7 +107,7 @@ def internal_tables_from_db(self): number_to_table = {v: k for (k, v) in table_to_number.items()} return table_to_number, number_to_table - def is_consistent(self): + def table_list_is_consistent(self): """Test whether the DB, schema, and internal table list agree. """ db_tables = set(self.engine.table_names()) @@ -104,6 +119,40 @@ def is_consistent(self): == interal_tables_2) return consistent + def table_inconsistencies(self, table_name): + """Test whether a given table is consistent with its entries in the + UUID table. + """ + tables = self.storage.metadata.tables + table_num = self.table_to_number[table_name] + uuid_db = tables['uuid'] + uuid_sel = uuid_db.select().where(uuid_db.c.table == table_num) + with self.engine.connect() as conn: + table_data = list(conn.execute(tables[table_name].select())) + uuid_data = list(conn.execute(uuid_sel)) + table_uuids = set([val.uuid for val in table_data]) + uuid_uuids = set([val.uuid for val in uuid_data]) + (table_only, uuid_only) = compare_sets(table_uuids, uuid_uuids) + return table_only, uuid_only + + def table_is_consistent(self, table_name): + """ + Are all UUIDs in this table also in the UUID table, and vice versa? + + More specifically, this compares all UUIDs in this table with all + the objects pointing to this table in the UUID table. + + Note that this is an expensive process, and should be guaranteed by + the insertion process. But this can act as a useful check on the + data. The :meth:`.table_inconsistencies` method gives the detailed + results of the comparison, for debugging purposes. + """ + table_only, uuid_only = self.table_inconsistencies(table_name) + if table_only == set([]) and uuid_only == set([]): + return True + else: + return False + def _add_table_to_tables_list(self, table_name): if table_name in ['uuid', 'tables']: return @@ -114,7 +163,7 @@ def _add_table_to_tables_list(self, table_name): tables = self.metadata.tables['tables'] with self.engine.connect() as conn: res = conn.execute(tables.select()) - n_tables = len([r for r in res]) + n_tables = len(list(res)) with self.engine.connect() as conn: conn.execute(tables.insert().values(name=table_name, @@ -123,6 +172,16 @@ def _add_table_to_tables_list(self, table_name): self.table_to_number.update({table_name: n_tables}) self.number_to_table.update({n_tables: table_name}) + def _load_from_table(self, table_name, idx_list): + # this is not public API (assumes idx_list, which is reserved by not + # guaranteed) + table = self.metadata.tables[table_name] + or_stmt = sql.or_(*(table.c.idx == idx for idx in idx_list)) + sel = table.select(or_stmt) + with self.engine.connect() as conn: + results = list(conn.execute(sel)) + return results + ### FROM HERE IS THE GENERIC PUBLIC API def register_schema(self, schema, sql_schema_metadata=None): @@ -176,7 +235,6 @@ def add_to_table(self, table_name, objects): # this is if we don't use the UUID in the schema... but doing so # would be another option (redundant data, but better sanity checks) - # TODO: I think the sanity checks will be worth it # pop_uuids = [{k: v for (k, v) in obj.items() if k != 'uuid'} # for obj in objects] insert_statements = [table.insert().values(**obj) @@ -198,21 +256,11 @@ def add_to_table(self, table_name, objects): # here we use executemany for performance conn.execute(uuid_table.insert(), uuid_insert_dicts) - def _load_from_table(self, table_name, idx_list): - # this is not public API (assumes idx_list, which is reserved by not - # guaranteed) - table = self.metadata.tables[table_name] - or_stmt = sql.or_(*(table.c.idx == idx for idx in idx_list)) - sel = table.select(or_stmt) - with self.engine.connect() as conn: - results = list(conn.execute(sel)) - return results - def load_n_rows_from_table(self, table_name, first_row, n_rows): idx_list = list(range(first_row, first_row + n_rows)) return self._load_from_table(table_name, idx_list) - def load_uuids(self, uuids, ignore_missing=False): + def load_uuids_table(self, uuids, ignore_missing=False): """Loads uuids and info on finding data within the table. This can also be used to identify which UUIDs already exist in the @@ -233,7 +281,7 @@ def load_uuids(self, uuids, ignore_missing=False): def load_table_data(self, uuids): # this pulls out a table the information for the relevant UUIDs - uuid_table_row = self.load_uuids(uuids) + uuid_table_row = self.load_uuids_table(uuids) by_table_number = group_by(uuid_table_row, 1) by_table_name = {self.number_to_table[k]: v for (k, v) in by_table_number.items()} diff --git a/openpathsampling/new/test_sql_backend.py b/openpathsampling/new/test_sql_backend.py index 353d34543..f38391b58 100644 --- a/openpathsampling/new/test_sql_backend.py +++ b/openpathsampling/new/test_sql_backend.py @@ -83,16 +83,65 @@ def test_internal_tables_from_db(self): assert tab2num == name2num assert num2tab == num2name - def test_is_consistent(self): + def test_table_list_is_consistent(self): pytest.skip() - def test_load_uuids(self): + def test_table_inconsistencies(self): + pytest.skip() + + def test_table_is_consistent(self): + pytest.skip() + + def test_load_uuids_table(self): pytest.skip() def test_load_n_rows_from_table(self): pytest.skip() def test_add_to_table(self): + schema = {'samples': [('replica', 'int'), + ('ensemble', 'uuid'), + ('trajectory', 'uuid')]} + self.storage.register_schema(schema) + sample_list = [(0, 'ens1', 'traj1'), + (1, 'ens2', 'traj2'), + (0, 'ens1', 'traj2')] + sample_dict = [ + {'replica': s[0], 'ensemble': s[1], 'trajectory': s[2]} + for s in sample_list + ] + for s in sample_dict: + s.update({'uuid': str(hex(hash(str(sample_dict))))}) + self.storage.add_to_table('samples', sample_dict) + + # load created data + tables = self.storage.metadata.tables + with self.storage.engine.connect() as conn: + samples = list(conn.execute(tables['samples'].select())) + uuids = list(conn.execute(tables['uuid'].select())) + + # tests + assert len(samples) == 3 + assert len(uuids) == 3 + for uuid in uuids: + assert uuid.table == 0 + # check that row numbers match to right UUID + uuid_dict = {u.uuid: u.row for u in uuids} + samples_uuid_dict = {s.idx: s.uuid for s in samples} + for uuid_val in uuid_dict: + assert samples_uuid_dict[uuid_dict[uuid_val]] == uuid_val + + # check that we got back the objects we created + returned_sample_dict = [ + {'uuid': s.uuid, 'replica': s.replica, 'ensemble': s.ensemble, + 'trajectory': s.trajectory} + for s in samples + ] + # effectively test sets; but dict isn't hashable; length already + # tested above + for dct in returned_sample_dict: + assert dct in sample_dict + pytest.skip() def test_load_table_data(self): diff --git a/openpathsampling/new/tools.py b/openpathsampling/new/tools.py new file mode 100644 index 000000000..aca298f87 --- /dev/null +++ b/openpathsampling/new/tools.py @@ -0,0 +1,30 @@ +import collections + +# TODO: write tests! + +def group_by(list_of_iterable, column_number): + results = collections.defaultdict(list) + for obj in list_of_iterable: + results[obj[column_number]].append(obj) + + return results + +def compare_sets(set1, set2): + only_in_1 = set1 - set2 + only_in_2 = set2 - set1 + return (only_in_1, only_in_2) + +def flatten(inputs, value_iter, classes): + results = [] + for val in value_iter(inputs): + if isinstance(val, classes): + results += flatter(val, value_iter, classes) + else: + results.append(val) + return results + +def flatten_dict(dct): + return flatten(dct, lambda x: x.values(), dict) + +def flatten_iterable(ll): + return flatter(ll, lambda x: x, (list, tuple, set)) From 97ec6c825459f57bae23c66a9d3ebbe805dd912b Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Fri, 2 Feb 2018 23:11:31 +0100 Subject: [PATCH 066/464] more steps on storage --- openpathsampling/new/storage.py | 62 ++++++++++++++++++++++-- openpathsampling/new/test_sql_backend.py | 24 ++++----- openpathsampling/new/tools.py | 12 ++++- 3 files changed, 80 insertions(+), 18 deletions(-) diff --git a/openpathsampling/new/storage.py b/openpathsampling/new/storage.py index 8b721a44b..abe5828e5 100644 --- a/openpathsampling/new/storage.py +++ b/openpathsampling/new/storage.py @@ -26,15 +26,38 @@ 'tables': [('name', 'str'), ('idx', 'int')] } +class LazyLoader(object): + def __init__(self, uuid, storage): + self.uuid = self + self.storage = storage + self._loaded_object = None + + def __getattr__(self, attr): + if self._loaded_object is None: + self._loaded_object = storage.load(self.uuid, lazy=False) + return getattr(self._loaded_object, attr) + + def repr(self): + return "" + + class GeneralStorage(object): def __init__(self, filename, mode='r', template=None, fallback=None, backend=None): + + self._init_new() self.simulation_objects = self._cache_simulation_objects() - pass + + def _init_new(self): + """Initial empty version of various dictionaries""" + self.schema = {} + self.serialization = {} + self.class_to_table = {} @classmethod def from_backend(cls, backend): obj = cls.__new__() + obj._init_new() obj.filename = backend.filename obj.mode = backend.mode obj.template = backend._template @@ -43,15 +66,29 @@ def from_backend(cls, backend): obj.db = backend obj.simulation_objects = obj._cache_simulation_objects() - def _cache_simulation_objects(self): # load up all the simulation objects pass + def register_schema(self, schema, backend_metadata, class_to_table, + serialization): + # check validity + self.backend.register_schema(schema, backend_metadata) + self.schema.update(schema) + self.class_to_table.update(class_to_table) + self.serialization.update(serialization) + pass + + def table_for_class(self, class_): + return self.class_to_table[class_] + def _create_virtual_stores(self, store_categories): # create virtual stores for simulation objects (e.g., .volume, etc) pass + def load(self, uuid, lazy=True): + pass + def save(self, obj): # prepare a single object for storage # check if obj is in DB @@ -65,14 +102,21 @@ def save_list(self, list_of_objs): # gather UUIDs to construct pass -ops_schema = {} +ops_schema = { + 'samples': {}, + 'sample_sets': {}, + 'trajectories': {}, + 'move_changes': {}, + 'steps': {} +} ops_schema_sql_metadata = {} ops_class_to_table = { # this is only for data objects paths.Sample: 'samples', paths.SampleSet: 'sample_sets', paths.Trajectory: 'trajectories', - paths.MoveChange: 'move_changes' + paths.MoveChange: 'move_changes', + paths.MCStep: 'steps' } ops_class_to_serialization = { @@ -81,7 +125,15 @@ def save_list(self, list_of_objs): } class OPSStorage(GeneralStorage): - pass + def table_for_class(self, class_): + try: + table = ops_class_to_table[class_] + except KeyError: + if issubclass(class_, paths.netcdfplus.StorableNamedObject): + table = 'simulation_object' + else: + table = None + return table class StorageCache(object): def __init__(self, n_subcaches): diff --git a/openpathsampling/new/test_sql_backend.py b/openpathsampling/new/test_sql_backend.py index f38391b58..20d1bb8d3 100644 --- a/openpathsampling/new/test_sql_backend.py +++ b/openpathsampling/new/test_sql_backend.py @@ -12,6 +12,18 @@ def setup(self): 'snapshot0': [('filename', 'str'), ('index', 'int')] } + def _sample_data_dict(self): + sample_list = [(0, 'ens1', 'traj1'), + (1, 'ens2', 'traj2'), + (0, 'ens1', 'traj2')] + sample_dict = [ + {'replica': s[0], 'ensemble': s[1], 'trajectory': s[2]} + for s in sample_list + ] + for s in sample_dict: + s.update({'uuid': str(hex(hash(str(sample_dict))))}) + return sample_dict + def teardown(self): self._delete_tmp_files() @@ -103,15 +115,7 @@ def test_add_to_table(self): ('ensemble', 'uuid'), ('trajectory', 'uuid')]} self.storage.register_schema(schema) - sample_list = [(0, 'ens1', 'traj1'), - (1, 'ens2', 'traj2'), - (0, 'ens1', 'traj2')] - sample_dict = [ - {'replica': s[0], 'ensemble': s[1], 'trajectory': s[2]} - for s in sample_list - ] - for s in sample_dict: - s.update({'uuid': str(hex(hash(str(sample_dict))))}) + sample_dict = self._sample_data_dict() self.storage.add_to_table('samples', sample_dict) # load created data @@ -142,8 +146,6 @@ def test_add_to_table(self): for dct in returned_sample_dict: assert dct in sample_dict - pytest.skip() - def test_load_table_data(self): pytest.skip() diff --git a/openpathsampling/new/tools.py b/openpathsampling/new/tools.py index aca298f87..2f6a8b0eb 100644 --- a/openpathsampling/new/tools.py +++ b/openpathsampling/new/tools.py @@ -18,7 +18,7 @@ def flatten(inputs, value_iter, classes): results = [] for val in value_iter(inputs): if isinstance(val, classes): - results += flatter(val, value_iter, classes) + results += flatten(val, value_iter, classes) else: results.append(val) return results @@ -27,4 +27,12 @@ def flatten_dict(dct): return flatten(dct, lambda x: x.values(), dict) def flatten_iterable(ll): - return flatter(ll, lambda x: x, (list, tuple, set)) + return flatten(ll, lambda x: x, (list, tuple, set)) + +def is_mappable(obj): + return isinstance(dict) # for now + +def flatten_all(obj): + return flatten(obj, + lambda x: x.values() if is_mappable(x) else x.__iter__(), + (list, tuple, set, dict)) From 4b0894caf19e412c81ea2b4aa8588d90caef6aca Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Sat, 3 Feb 2018 11:47:13 +0100 Subject: [PATCH 067/464] Added most of serialization --- openpathsampling/new/serialization.py | 139 ++++++++++++++++++++++++++ openpathsampling/new/tools.py | 8 +- 2 files changed, 144 insertions(+), 3 deletions(-) create mode 100644 openpathsampling/new/serialization.py diff --git a/openpathsampling/new/serialization.py b/openpathsampling/new/serialization.py new file mode 100644 index 000000000..0fffb3278 --- /dev/null +++ b/openpathsampling/new/serialization.py @@ -0,0 +1,139 @@ +import importlib +import ujson +import networkx as nx +import networkx.algorithms.dag as nx_dag +from tools import flatten_all + +# mappable/iterable identification ################################## + +def is_mappable(obj): + return isinstance(obj, dict) # for now + +def is_iterable(obj): + return isinstance(obj, (list, set, tuple)) + +# UUID recognition and encoding ##################################### + +def uuid_test(obj): + # TODO: or isinstance? or other? try a few for performance checks + return hasattr(obj, '__uuid__') + +# TODO: try a few UUID encodings for performance +def encode_uuid(uuid): + return "UUID(" + str(uuid) + ")" + +def decode_uuid(uuid_str): + return long(uuid_str[5:-1]) + +def is_uuid_string(obj): + return ( + isinstance(obj, (str, unicode)) + and obj[:5] == 'UUID(' and obj[-1] == ')' + ) + +# TODO: have a special UUID encoding for dict keys? string keys have special +# fast-path + + +# Getting the list of UUIDs bsed on initial objets ################### + +# TODO: does this work with arbitrary nested yet? (flatten_all?) +# NOTE: this needs find everything, including if the iterable/mapping has a +# UUID, find that and things under it +def get_all_uuids(initial_object): + uuid_dict = {initial_object.__uuid__: initial_object} + with_uuid = [o for o in flatten_all(initial_object.to_dict()) + if uuid_test(o)] + for obj in with_uuid: + uuid_dict.update({obj.__uuid__: obj}) + uuid_dict.update(get_all_uuids(obj)) + return uuid_dict + +def find_dependent_uuids(json_dct): + dct = ujson.loads(json_dct) + uuids = [decode_uuid(obj) for obj in flatten_all(dct) + if is_uuid_string(obj)] + return uuids + +def get_all_uuid_strings(dct): + all_uuids = [] + for uuid in dct: + all_uuids.append(uuid) + all_uuids += find_dependent_uuids(dct[uuid]) + return all_uuids + +# NOTE: this only need to find until the first UUID: iterables/mapping with +# UUIDs aren't necessary here +def replace_uuid(obj): + replacement = obj + if uuid_test(obj): + # TODO: compact representation of UUID + replacement = encode_uuid(obj.__uuid__) + elif is_mappable(obj): + replacement = {k: replace_uuid(v) for (k, v) in replacement.items()} + elif is_iterable(obj): + replace_type = type(obj) + replacement = replace_type([replace_uuid(o) for o in obj]) + return replacement + +def to_dict_with_uuids(obj): + dct = obj.to_dict() + return replace_uuid(dct) + +def to_json(obj): + dct = to_dict_with_uuids(obj) + dct.update({'__module__': obj.__class__.__module__, + '__class__': obj.__class__.__name__}) + return ujson.dumps(dct) + +def from_json(json_str, existing_uuids): + # NOTE: from_json only works with existing_uuids + dct = ujson.loads(json_str) + mod = importlib.import_module(dct.pop('__module__')) + cls = getattr(mod, dct.pop('__class__')) + for (key, value) in dct.items(): + if is_uuid_string(value): + # raises KeyError if object hasn't been visited + # (indicates problem in DAG reconstruction) + value_obj = existing_uuids[decode_uuid(value)] + dct[key] = value_obj + return cls.from_dict(dct) + +def reconstruction_dag(uuid_json_dict, dag=None) + dependent_uuids = {uuid: find_dependent_uuids(json_str) + for (uuid, json_str) in uuid_json_dict.items()} + if dag is None: + dag = nx.DiGraph() + for from_node, to_nodes in dependent_uuids.items(): + if to_nodes: + dag.add_edges_from([(from_node, to_node) + for to_node in to_nodes]) + if not nx_dag.is_directed_acyclic_graph(dag): + raise RuntimeError("Reconstruction DAG not acyclic?!?!") + return dag + + +def serialize(list_of_objects): + uuid_object_dict = {} + for obj in list_of_objects: + uuid_object_dict.update(get_all_uuids(obj)) + + uuid_json_dict = {uuid: to_json(obj) + for (uuid, obj) in uuid_object_dict.item()} + return uuid_json_dict + + +def deserialize(uuid_json_dict, storage): + dag = reconstruction_dag(uuid_json_dict) + missing = check_dag(dag, uuid_json_dict) + while missing: + more_json = storage.backend.load_table_data(missing) + dag = reconstruction_dag(uuid_json_dict, dag) + missing = check_dag(dag, uuid_json_dict) + + new_uuids = {} + known_uuids = storage.known_uuids + ordered_nodes = list(reversed(list(nx_dag.topological_sort(dag)))) + for node in ordered_nodes: + new_uuids[node] = from_json(all_json[node], new_uuids, known_uuids) + return new_uuids diff --git a/openpathsampling/new/tools.py b/openpathsampling/new/tools.py index 2f6a8b0eb..dcbe2c795 100644 --- a/openpathsampling/new/tools.py +++ b/openpathsampling/new/tools.py @@ -2,6 +2,11 @@ # TODO: write tests! +def none_to_default(option, default): + if option is None: + option = default + return option + def group_by(list_of_iterable, column_number): results = collections.defaultdict(list) for obj in list_of_iterable: @@ -29,9 +34,6 @@ def flatten_dict(dct): def flatten_iterable(ll): return flatten(ll, lambda x: x, (list, tuple, set)) -def is_mappable(obj): - return isinstance(dict) # for now - def flatten_all(obj): return flatten(obj, lambda x: x.values() if is_mappable(x) else x.__iter__(), From dd4613d6b6b49aee2886818a9b7fde5653c7b23d Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Sat, 3 Feb 2018 16:41:50 +0100 Subject: [PATCH 068/464] start thinking about lazy loading --- openpathsampling/new/serialization.py | 26 +++++++-- openpathsampling/new/sql_backend.py | 8 ++- openpathsampling/new/storage.py | 81 ++++++++++++++++++--------- openpathsampling/new/tools.py | 11 +++- 4 files changed, 90 insertions(+), 36 deletions(-) diff --git a/openpathsampling/new/serialization.py b/openpathsampling/new/serialization.py index 0fffb3278..979262f10 100644 --- a/openpathsampling/new/serialization.py +++ b/openpathsampling/new/serialization.py @@ -1,16 +1,18 @@ import importlib +import collections import ujson import networkx as nx import networkx.algorithms.dag as nx_dag -from tools import flatten_all +from tools import flatten_all, nested_update # mappable/iterable identification ################################## +# TODO: may just hard-code these; this seems to be the proper way def is_mappable(obj): - return isinstance(obj, dict) # for now + return isinstance(obj, collections.Mapping) def is_iterable(obj): - return isinstance(obj, (list, set, tuple)) + return isinstance(obj, collections.Iterable) # UUID recognition and encoding ##################################### @@ -113,27 +115,41 @@ def reconstruction_dag(uuid_json_dict, dag=None) return dag +# TODO: move this to storage def serialize(list_of_objects): uuid_object_dict = {} for obj in list_of_objects: uuid_object_dict.update(get_all_uuids(obj)) + # TODO: replace to_json with something that gets the serializer uuid_json_dict = {uuid: to_json(obj) for (uuid, obj) in uuid_object_dict.item()} return uuid_json_dict -def deserialize(uuid_json_dict, storage): +def deserialize(uuid_json_dict, lazies, storage): dag = reconstruction_dag(uuid_json_dict) missing = check_dag(dag, uuid_json_dict) while missing: - more_json = storage.backend.load_table_data(missing) + (more_json, loc_lazies) = storage.backend.load_table_data(missing) + uuid_json_dict.update(more_json) + lazies = nested_update(lazies, loc_lazies) dag = reconstruction_dag(uuid_json_dict, dag) missing = check_dag(dag, uuid_json_dict) new_uuids = {} known_uuids = storage.known_uuids + for lazy_table in lazies: + lazy_uuid_objects = { + lazy.uuid: storage.make_lazy(lazy_table, lazy.uuid) + for lazy in lazies[lazy_table] + if lazy.uuid not in known_uuids + } + new_uuids.update(lazy_uuid_objects) + known_uuids.update(lazy_uuid_objects) + ordered_nodes = list(reversed(list(nx_dag.topological_sort(dag)))) for node in ordered_nodes: + # TODO: replace from_json with something that gets the deserializer new_uuids[node] = from_json(all_json[node], new_uuids, known_uuids) return new_uuids diff --git a/openpathsampling/new/sql_backend.py b/openpathsampling/new/sql_backend.py index 56b4d467b..a17d6338b 100644 --- a/openpathsampling/new/sql_backend.py +++ b/openpathsampling/new/sql_backend.py @@ -279,17 +279,21 @@ def load_uuids_table(self, uuids, ignore_missing=False): return results - def load_table_data(self, uuids): + def load_table_data(self, uuids, lazy=True): # this pulls out a table the information for the relevant UUIDs uuid_table_row = self.load_uuids_table(uuids) by_table_number = group_by(uuid_table_row, 1) by_table_name = {self.number_to_table[k]: v for (k, v) in by_table_number.items()} loaded_results = [] + lazy_results = {} + if lazy: + lazy_results = {table: by_table_name.pop(table) + for table in self.lazy_tables} for table in by_table_name: idxs = [val[2] for val in by_table_name[table]] loaded_results += self._load_from_table(table, idxs) loaded_uuids = [res.uuid for res in loaded_results] assert set(uuids) == set(loaded_uuids) # sanity check - return loaded_results + return (loaded_results, lazy_results) diff --git a/openpathsampling/new/storage.py b/openpathsampling/new/storage.py index abe5828e5..91bda001d 100644 --- a/openpathsampling/new/storage.py +++ b/openpathsampling/new/storage.py @@ -26,19 +26,38 @@ 'tables': [('name', 'str'), ('idx', 'int')] } +def make_lazy_class(cls_): + # this is to mix-in inheritence + class LazyClass(LazyLoader, cls_): + pass + return LazyClass + class LazyLoader(object): - def __init__(self, uuid, storage): - self.uuid = self + def __init__(self, uuid, class_, storage): + self.__uuid__ = uuid self.storage = storage + self.class_= class_ self._loaded_object = None - def __getattr__(self, attr): + def load(self): if self._loaded_object is None: - self._loaded_object = storage.load(self.uuid, lazy=False) - return getattr(self._loaded_object, attr) + self._loaded_object = storage.load(self.__uuid__, lazy=False) + return self._loaded_object + + def __getattr__(self, attr): + return getattr(self.load(), attr) + + def __iter__(self): + loaded = self.load() + if not hasattr(loaded, '__iter__'): + raise TypeError() # TODO: message + # TODO: load all objects in the list + return loaded.__iter__ + # TODO: how to handle isinstance? each lazy-loading class needs a sub def repr(self): - return "" + return ("") class GeneralStorage(object): @@ -53,6 +72,8 @@ def _init_new(self): self.schema = {} self.serialization = {} self.class_to_table = {} + self.table_to_class = {} + self.lazy_tables = {} @classmethod def from_backend(cls, backend): @@ -70,14 +91,25 @@ def _cache_simulation_objects(self): # load up all the simulation objects pass - def register_schema(self, schema, backend_metadata, class_to_table, - serialization): + def make_lazy(self, table, uuid): + return self.lazy_classes[table](uuid=uuid, + cls=self.table_to_class[table], + storage=self) + + def register_schema(self, schema, class_to_table, serialization, + lazy_tables=None, backend_metadata=None): # check validity self.backend.register_schema(schema, backend_metadata) self.schema.update(schema) self.class_to_table.update(class_to_table) + self.table_to_class.update({ + table: cls_ for (cls_, table) in class_to_table.items() + }) self.serialization.update(serialization) - pass + if lazy_tables: + if lazy_tables is True: + lazy_tables = list(schema.keys()) + self.lazy_tables += lazy_tables def table_for_class(self, class_): return self.class_to_table[class_] @@ -102,6 +134,10 @@ def save_list(self, list_of_objs): # gather UUIDs to construct pass + def __getattr__(self, attr): + # override getattr to create iterators over the tables + pass + ops_schema = { 'samples': {}, 'sample_sets': {}, @@ -119,6 +155,8 @@ def save_list(self, list_of_objs): paths.MCStep: 'steps' } +ops_lazy_tables = ['trajectories', 'details'] + ops_class_to_serialization = { paths.Sample: (paths.Sample.to_dict, paths.Sample.from_dict), # this allows us to override the to_dict behavior for new storage @@ -135,17 +173,15 @@ def table_for_class(self, class_): table = None return table -class StorageCache(object): - def __init__(self, n_subcaches): - pass +class TableIterator(object): + def __init__(self, storage): + self.cache = storage.simulation_objects.copy() -class StorageList(object): - def __init__(self): - # set self.cache + def __iter__(self): + # iter manages the cache pass - def __iter__(self): - # iter fills the cache + def _get_single(self, value): pass def __getitem__(self): @@ -153,14 +189,3 @@ def __getitem__(self): # is is possible that using local lists of UUIDs to get might make # this just as fast? (stopping at trajectory level; no snapshots) pass - -class SampleStore(StorageList): - def cache_table(self, start_idx, end_idx): - pass - - def cache_table_to_husks(self, cache_table): - pass - - def fill_husks(self, husks): - pass - diff --git a/openpathsampling/new/tools.py b/openpathsampling/new/tools.py index dcbe2c795..dd712d197 100644 --- a/openpathsampling/new/tools.py +++ b/openpathsampling/new/tools.py @@ -28,6 +28,14 @@ def flatten(inputs, value_iter, classes): results.append(val) return results +def nested_update(original, update): + for (k, v) in update.items(): + if isinstance(v, collections.Mapping): + original[k] = nested_update(original.get(k, {}), v) + else: + original[k] = v + return original + def flatten_dict(dct): return flatten(dct, lambda x: x.values(), dict) @@ -35,6 +43,7 @@ def flatten_iterable(ll): return flatten(ll, lambda x: x, (list, tuple, set)) def flatten_all(obj): + is_mappable = lambda x: isinstance(x, collections.Mappable) return flatten(obj, lambda x: x.values() if is_mappable(x) else x.__iter__(), - (list, tuple, set, dict)) + (collections.Mappable, collections.Iterable)) From 48f3f6078148c278d49219afd923d6c5c70ebcd4 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Sat, 3 Feb 2018 17:38:00 +0100 Subject: [PATCH 069/464] added draft of OPS schema --- openpathsampling/new/sql_backend.py | 4 +++- openpathsampling/new/storage.py | 17 ++++++++++++----- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/openpathsampling/new/sql_backend.py b/openpathsampling/new/sql_backend.py index a17d6338b..d466a6a7a 100644 --- a/openpathsampling/new/sql_backend.py +++ b/openpathsampling/new/sql_backend.py @@ -7,10 +7,12 @@ # dict to convert from OPS string type descriptors to SQL types sql_type = { 'uuid': sql.String, - 'list_of_uuid': sql.String, + 'list_uuid': sql.String, + 'lazy': sql.String, 'str': sql.String, 'json': sql.String, 'int': sql.Integer, + 'float': sql.Float, #TODO add more } diff --git a/openpathsampling/new/storage.py b/openpathsampling/new/storage.py index 91bda001d..bc8282bce 100644 --- a/openpathsampling/new/storage.py +++ b/openpathsampling/new/storage.py @@ -139,11 +139,18 @@ def __getattr__(self, attr): pass ops_schema = { - 'samples': {}, - 'sample_sets': {}, - 'trajectories': {}, - 'move_changes': {}, - 'steps': {} + 'samples': [('trajectory', 'lazy'), ('ensemble', 'uuid'), + ('replica', 'int'), + # in my opinion, the next 3 should be removed + ('parent', 'lazy'), ('bias', 'float'), + ('mover', 'uuid')], + 'sample_sets': [('samples', 'list_uuid'), ('movepath', 'lazy')], + 'trajectories': [('snapshots', 'list_uuid')], + 'move_changes': [('mover', 'uuid'), ('details', 'lazy'), ('cls', 'str'), + ('subchanges', 'list_uuid'), ('samples', 'list_uuid'), + ('input_samples', 'list_uuid')], + 'steps': [('change', 'uuid'), ('active', 'uuid'), ('previous', 'uuid'), + ('simulation', 'uuid'), ('mccycle', 'int')] } ops_schema_sql_metadata = {} ops_class_to_table = { From 84a073ea1e0ab6144c85bd5e3a1acad28e2703cd Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Sat, 3 Feb 2018 19:58:06 +0100 Subject: [PATCH 070/464] work on tests for sql_backend --- openpathsampling/new/serialization.py | 12 +++-- openpathsampling/new/storage.py | 2 - openpathsampling/new/test_sql_backend.py | 67 +++++++++++++++++------- 3 files changed, 57 insertions(+), 24 deletions(-) diff --git a/openpathsampling/new/serialization.py b/openpathsampling/new/serialization.py index 979262f10..e2340398f 100644 --- a/openpathsampling/new/serialization.py +++ b/openpathsampling/new/serialization.py @@ -88,11 +88,17 @@ def to_json(obj): '__class__': obj.__class__.__name__}) return ujson.dumps(dct) +def import_class(mod, cls): + # TODO: this needs some error-checking + mod = importlib.import_module(mod) + cls = getattr(mod, cls) + return cls + + def from_json(json_str, existing_uuids): - # NOTE: from_json only works with existing_uuids + # NOTE: from_json only works with existing_uuids (DAG-ordering) dct = ujson.loads(json_str) - mod = importlib.import_module(dct.pop('__module__')) - cls = getattr(mod, dct.pop('__class__')) + cls = import_class(dct.pop('__module__'), dct.pop('__class__')) for (key, value) in dct.items(): if is_uuid_string(value): # raises KeyError if object hasn't been visited diff --git a/openpathsampling/new/storage.py b/openpathsampling/new/storage.py index bc8282bce..9f3ce1e9f 100644 --- a/openpathsampling/new/storage.py +++ b/openpathsampling/new/storage.py @@ -162,8 +162,6 @@ def __getattr__(self, attr): paths.MCStep: 'steps' } -ops_lazy_tables = ['trajectories', 'details'] - ops_class_to_serialization = { paths.Sample: (paths.Sample.to_dict, paths.Sample.from_dict), # this allows us to override the to_dict behavior for new storage diff --git a/openpathsampling/new/test_sql_backend.py b/openpathsampling/new/test_sql_backend.py index 20d1bb8d3..02afe626f 100644 --- a/openpathsampling/new/test_sql_backend.py +++ b/openpathsampling/new/test_sql_backend.py @@ -4,7 +4,7 @@ class TestSQLStorageBackend(object): def setup(self): self._delete_tmp_files() - self.storage = self._default_backend + self.backend = self._default_backend self.schema = { 'samples': [('replica', 'int'), ('ensemble', 'uuid'), @@ -24,6 +24,16 @@ def _sample_data_dict(self): s.update({'uuid': str(hex(hash(str(sample_dict))))}) return sample_dict + def _add_sample_data(self): + # use this as a fixture when you need sample data + schema = {'samples': [('replica', 'int'), + ('ensemble', 'uuid'), + ('trajectory', 'uuid')]} + self.backend.register_schema(schema) + sample_dict = self._sample_data_dict() + self.backend.add_to_table('samples', sample_dict) + return sample_dict + def teardown(self): self._delete_tmp_files() @@ -41,7 +51,7 @@ def test_extract_metadata(self): sql_meta = { 'uuid': {'uuid': {'primary_key': True}} } - meta = self.storage._extract_metadata(sql_meta, 'uuid', 'uuid') + meta = self.backend._extract_metadata(sql_meta, 'uuid', 'uuid') assert meta == {'primary_key': True} @pytest.mark.parametrize('test_input,expected', [ @@ -49,19 +59,19 @@ def test_extract_metadata(self): ((":memory:", "sqlite"), "sqlite:///:memory:") ]) def test_filename_from_backend(self, test_input, expected): - filename_from_backend = self.storage.filename_from_backend + filename_from_backend = self.backend.filename_from_backend assert filename_from_backend(*test_input) == expected def test_filename_from_backend_unknown(self): with pytest.raises(KeyError): - self.storage.filename_from_backend("file.sql", "foo") + self.backend.filename_from_backend("file.sql", "foo") def _col_names_set(self, table): - meta = self.storage.metadata + meta = self.backend.metadata return set([col.name for col in meta.tables[table].columns]) def test_setup(self): - table_names = self.storage.engine.table_names() + table_names = self.backend.engine.table_names() assert set(table_names) == set(['uuid', 'tables']) assert self._col_names_set('uuid') == set(['uuid', 'table', 'row']) assert self._col_names_set('tables') == set(['name', 'idx']) @@ -70,23 +80,23 @@ def test_register_schema(self): new_schema = { 'snapshot1': [('filename', 'str'), ('index', 'int')] } - self.storage.register_schema(new_schema) - table_names = self.storage.engine.table_names() + self.backend.register_schema(new_schema) + table_names = self.backend.engine.table_names() assert set(table_names) == set(['uuid', 'tables', 'snapshot1']) assert self._col_names_set('snapshot1') == set(['idx', 'uuid', 'filename', 'index']) def test_register_schema_modify_fails(self): - self.storage.register_schema(self.schema) + self.backend.register_schema(self.schema) with pytest.raises(TypeError): - self.storage.register_schema(self.schema) + self.backend.register_schema(self.schema) def test_internal_tables_from_db(self): - self.storage.register_schema(self.schema) - tab2num, num2tab = self.storage.internal_tables_from_db() - tables_db = self.storage.metadata.tables['tables'] - with self.storage.engine.connect() as conn: + self.backend.register_schema(self.schema) + tab2num, num2tab = self.backend.internal_tables_from_db() + tables_db = self.backend.metadata.tables['tables'] + with self.backend.engine.connect() as conn: res = list(conn.execute(tables_db.select())) assert len(res) == 2 @@ -105,7 +115,13 @@ def test_table_is_consistent(self): pytest.skip() def test_load_uuids_table(self): - pytest.skip() + sample_dict = self._add_sample_data() + uuids = [s['uuid'] for s in sample_dict] + loaded_uuids = self.backend.load_uuids_table(uuids) + assert len(loaded_uuids) == 3 + for uuid in loaded_uuids: + assert uuid.uuid in uuids + assert uuid.table == 0 def test_load_n_rows_from_table(self): pytest.skip() @@ -114,13 +130,13 @@ def test_add_to_table(self): schema = {'samples': [('replica', 'int'), ('ensemble', 'uuid'), ('trajectory', 'uuid')]} - self.storage.register_schema(schema) + self.backend.register_schema(schema) sample_dict = self._sample_data_dict() - self.storage.add_to_table('samples', sample_dict) + self.backend.add_to_table('samples', sample_dict) # load created data - tables = self.storage.metadata.tables - with self.storage.engine.connect() as conn: + tables = self.backend.metadata.tables + with self.backend.engine.connect() as conn: samples = list(conn.execute(tables['samples'].select())) uuids = list(conn.execute(tables['uuid'].select())) @@ -147,6 +163,19 @@ def test_add_to_table(self): assert dct in sample_dict def test_load_table_data(self): + sample_dict = self._add_sample_data() + uuids = [s['uuid'] for s in sample_dict] + # (loaded_table, loaded_lazy) = self.backend.load_table_data(uuids) + # assert len(loaded.table) == 3 + pytest.skip() + + def test_load_table_data_missing(self): + pytest.skip() + + def test_load_table_data_missing_ignored(self): + pytest.skip() + + def test_load_table_data_lazy(self): pytest.skip() def test_persistence(self): From 01a635f5da47f0524af8ae8f0aefb3d8c5c57cc2 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Sun, 4 Feb 2018 03:30:09 +0100 Subject: [PATCH 071/464] tests for some of the tools methods --- openpathsampling/new/storage.py | 3 +- openpathsampling/new/test_tools.py | 45 ++++++++++++++++++++++++++++++ openpathsampling/new/tools.py | 28 +++++++++++-------- 3 files changed, 63 insertions(+), 13 deletions(-) create mode 100644 openpathsampling/new/test_tools.py diff --git a/openpathsampling/new/storage.py b/openpathsampling/new/storage.py index 9f3ce1e9f..a07fa0c20 100644 --- a/openpathsampling/new/storage.py +++ b/openpathsampling/new/storage.py @@ -150,7 +150,8 @@ def __getattr__(self, attr): ('subchanges', 'list_uuid'), ('samples', 'list_uuid'), ('input_samples', 'list_uuid')], 'steps': [('change', 'uuid'), ('active', 'uuid'), ('previous', 'uuid'), - ('simulation', 'uuid'), ('mccycle', 'int')] + ('simulation', 'uuid'), ('mccycle', 'int')], + 'simulation_objects': [('json', 'json'), ('class_idx', 'int')] } ops_schema_sql_metadata = {} ops_class_to_table = { diff --git a/openpathsampling/new/test_tools.py b/openpathsampling/new/test_tools.py new file mode 100644 index 000000000..242076272 --- /dev/null +++ b/openpathsampling/new/test_tools.py @@ -0,0 +1,45 @@ +import pytest + +from tools import * + +def test_none_to_default(): + assert none_to_default(option=None, default="foo") == "foo" + assert none_to_default(option="bar", default="foo") == "bar" + +def test_compare_sets(): + pytest.skip() + +class TestGroupBy(object): + def setup(self): + pass + +class TestFlatten(object): + def setup(self): + self.result = ['a', 'b', 'c', 'd', 'e', 'f'] + self.list = ['a', 'b', [['c'], ['d'], 'e'], [['f']]] + self.dict = {11: 'a', 12: 'b', + 13: {21: {31: 'c'}, 22: {32: 'd'}, 23: 'e'}, + 14: {24: 'f'}} + self.mixed_dict = {11: 'a', 12: 'b', + 13: [{31: 'c'}, {32: 'd'}, 'e'], + 14: ['f']} + self.mixed_list = ['a', 'b', {21: ['c'], 22: ['d'], 23: 'e'}, + {24: 'f'}] + + def test_flatten_dict(self): + assert flatten_dict(self.dict) == self.result + expected_mixed = ['a', 'b', [{31: 'c'}, {32: 'd'}, 'e'], ['f']] + assert flatten_dict(self.mixed_dict) == expected_mixed + + def test_flatten_iterable(self): + assert flatten_iterable(self.list) == self.result + assert flatten_iterable(self.mixed_list) == self.mixed_list + + def test_flatten_all(self): + assert flatten_all(self.list) == self.result + assert flatten_all(self.dict) == self.result + assert flatten_all(self.mixed_dict) == self.result + assert flatten_all(self.mixed_list) == self.result + +class TestNestedUpdate(object): + pass diff --git a/openpathsampling/new/tools.py b/openpathsampling/new/tools.py index dd712d197..ca8e49fb0 100644 --- a/openpathsampling/new/tools.py +++ b/openpathsampling/new/tools.py @@ -1,5 +1,9 @@ import collections +import sys +if sys.version_info > (3, ): + basestring = str + # TODO: write tests! def none_to_default(option, default): @@ -11,7 +15,6 @@ def group_by(list_of_iterable, column_number): results = collections.defaultdict(list) for obj in list_of_iterable: results[obj[column_number]].append(obj) - return results def compare_sets(set1, set2): @@ -22,20 +25,12 @@ def compare_sets(set1, set2): def flatten(inputs, value_iter, classes): results = [] for val in value_iter(inputs): - if isinstance(val, classes): + if isinstance(val, classes) and not isinstance(val, basestring): results += flatten(val, value_iter, classes) else: results.append(val) return results -def nested_update(original, update): - for (k, v) in update.items(): - if isinstance(v, collections.Mapping): - original[k] = nested_update(original.get(k, {}), v) - else: - original[k] = v - return original - def flatten_dict(dct): return flatten(dct, lambda x: x.values(), dict) @@ -43,7 +38,16 @@ def flatten_iterable(ll): return flatten(ll, lambda x: x, (list, tuple, set)) def flatten_all(obj): - is_mappable = lambda x: isinstance(x, collections.Mappable) + is_mappable = lambda x: isinstance(x, collections.Mapping) return flatten(obj, lambda x: x.values() if is_mappable(x) else x.__iter__(), - (collections.Mappable, collections.Iterable)) + (collections.Mapping, collections.Iterable)) + +def nested_update(original, update): + for (k, v) in update.items(): + if isinstance(v, collections.Mapping): + original[k] = nested_update(original.get(k, {}), v) + else: + original[k] = v + return original + From ea56dad07ac214e8ba0c380ceff5e935d1d9d998 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Sun, 4 Feb 2018 16:59:35 +0100 Subject: [PATCH 072/464] majot work on save method --- openpathsampling/new/serialization.py | 48 +++++++------- openpathsampling/new/sql_backend.py | 2 +- openpathsampling/new/storage.py | 90 +++++++++++++++++++++++---- openpathsampling/new/tools.py | 28 ++++++++- 4 files changed, 128 insertions(+), 40 deletions(-) diff --git a/openpathsampling/new/serialization.py b/openpathsampling/new/serialization.py index e2340398f..516a700e2 100644 --- a/openpathsampling/new/serialization.py +++ b/openpathsampling/new/serialization.py @@ -3,24 +3,18 @@ import ujson import networkx as nx import networkx.algorithms.dag as nx_dag -from tools import flatten_all, nested_update - -# mappable/iterable identification ################################## -# TODO: may just hard-code these; this seems to be the proper way - -def is_mappable(obj): - return isinstance(obj, collections.Mapping) - -def is_iterable(obj): - return isinstance(obj, collections.Iterable) +from tools import flatten_all, nested_update, is_iterable, is_mappable # UUID recognition and encoding ##################################### -def uuid_test(obj): - # TODO: or isinstance? or other? try a few for performance checks +def has_uuid(obj): + # TODO: (perf) or isinstance? or other? try a few return hasattr(obj, '__uuid__') -# TODO: try a few UUID encodings for performance +def get_uuid(obj): + return obj.__uuid__ + +# TODO: (perf) try a few UUID encodings for performance def encode_uuid(uuid): return "UUID(" + str(uuid) + ")" @@ -33,19 +27,18 @@ def is_uuid_string(obj): and obj[:5] == 'UUID(' and obj[-1] == ')' ) -# TODO: have a special UUID encoding for dict keys? string keys have special -# fast-path +# TODO: (perf) have a special UUID encoding for dict keys? string keys have +# special fast-path # Getting the list of UUIDs bsed on initial objets ################### -# TODO: does this work with arbitrary nested yet? (flatten_all?) # NOTE: this needs find everything, including if the iterable/mapping has a # UUID, find that and things under it def get_all_uuids(initial_object): - uuid_dict = {initial_object.__uuid__: initial_object} + uuid_dict = {get_uuid(initial_object): initial_object} with_uuid = [o for o in flatten_all(initial_object.to_dict()) - if uuid_test(o)] + if has_uuid(o)] for obj in with_uuid: uuid_dict.update({obj.__uuid__: obj}) uuid_dict.update(get_all_uuids(obj)) @@ -68,7 +61,7 @@ def get_all_uuid_strings(dct): # UUIDs aren't necessary here def replace_uuid(obj): replacement = obj - if uuid_test(obj): + if has_uuid(obj): # TODO: compact representation of UUID replacement = encode_uuid(obj.__uuid__) elif is_mappable(obj): @@ -78,6 +71,7 @@ def replace_uuid(obj): replacement = replace_type([replace_uuid(o) for o in obj]) return replacement +# NOTE: I think this is the generic serializer for data objects def to_dict_with_uuids(obj): dct = obj.to_dict() return replace_uuid(dct) @@ -122,15 +116,21 @@ def reconstruction_dag(uuid_json_dict, dag=None) # TODO: move this to storage -def serialize(list_of_objects): +def serialize_simulation_objects(list_of_objects): uuid_object_dict = {} for obj in list_of_objects: uuid_object_dict.update(get_all_uuids(obj)) - # TODO: replace to_json with something that gets the serializer - uuid_json_dict = {uuid: to_json(obj) - for (uuid, obj) in uuid_object_dict.item()} - return uuid_json_dict + storables_list = [] + # TODO: make storable versions of data objects here + + # uuid_json_dict = {uuid: to_json(obj) + # for (uuid, obj) in uuid_object_dict.items()} + storables_list = [ + {'uuid': uuid, 'json': to_json(obj)} + for (uuid, obj) in uuid_object_dict.items() + ] + return storables_list def deserialize(uuid_json_dict, lazies, storage): diff --git a/openpathsampling/new/sql_backend.py b/openpathsampling/new/sql_backend.py index d466a6a7a..98f3a09ed 100644 --- a/openpathsampling/new/sql_backend.py +++ b/openpathsampling/new/sql_backend.py @@ -7,8 +7,8 @@ # dict to convert from OPS string type descriptors to SQL types sql_type = { 'uuid': sql.String, - 'list_uuid': sql.String, 'lazy': sql.String, + 'list_uuid': sql.String, 'str': sql.String, 'json': sql.String, 'int': sql.Integer, diff --git a/openpathsampling/new/storage.py b/openpathsampling/new/storage.py index a07fa0c20..c108aad86 100644 --- a/openpathsampling/new/storage.py +++ b/openpathsampling/new/storage.py @@ -1,6 +1,9 @@ import os import collections +import itertools import openpathsampling as paths +from serialization import get_uuid +import tools """ A simple storage interface for simulation objects and data objects. @@ -26,6 +29,11 @@ 'tables': [('name', 'str'), ('idx', 'int')] } +ClassInfo = collections.namedtuple( + 'ClassInfo', + ['table', 'class', 'serializer', 'deserializer'] +) + def make_lazy_class(cls_): # this is to mix-in inheritence class LazyClass(LazyLoader, cls_): @@ -41,7 +49,7 @@ def __init__(self, uuid, class_, storage): def load(self): if self._loaded_object is None: - self._loaded_object = storage.load(self.__uuid__, lazy=False) + self._loaded_object = self.storage.load(self.__uuid__, lazy=False) return self._loaded_object def __getattr__(self, attr): @@ -60,12 +68,44 @@ def repr(self): + str(self.__uuid__) + ">") +class MixedCache(collections.MutableMapping): + """Combine a frozen cache and a mutable cache""" + def __init__(self, fixed_cache=None): + self.fixed_cache = tools.none_to_default(fixed_cache, default={}) + self.cache = {} + + def __getitem__(self, key): + if key in self.fixed_cache: + return self.fixed_cache[key] + else: + return self.cache[key] + + def __setitem__(self, key, value): + self.cache[key] = value + + def __delitem__(self, key, value): + try: + del self.cache[key] + except KeyError as e: + if key in self.fixed_cache: + raise TypeError("Can't delete from fixed cache") + else: + raise e + + def __len__(self): + return len(self.fixed_cache) + len(self.cache) + + def __iter__(self): + return itertools.chain(self.fixed_cache, self.cache) + + + class GeneralStorage(object): def __init__(self, filename, mode='r', template=None, fallback=None, backend=None): - self._init_new() self.simulation_objects = self._cache_simulation_objects() + self.cache = MixedCache(self.simulation_objects) def _init_new(self): """Initial empty version of various dictionaries""" @@ -92,8 +132,11 @@ def _cache_simulation_objects(self): pass def make_lazy(self, table, uuid): + class_ = self.table_to_class[table] + if table not in self.lazy_classes: + self.lazy_classes[table] = make_lazy_class(class_) return self.lazy_classes[table](uuid=uuid, - cls=self.table_to_class[table], + cls=class_, storage=self) def register_schema(self, schema, class_to_table, serialization, @@ -118,21 +161,41 @@ def _create_virtual_stores(self, store_categories): # create virtual stores for simulation objects (e.g., .volume, etc) pass - def load(self, uuid, lazy=True): + def load(self, uuid, lazy=None): + # get UUIDs and tables associated + # if lazy, return the lazy object + # if table has custom loader, use that pass + def serialize(self, obj): + class_info = self.get_class_info(obj.__class__) + return class_info.serializer(obj) + def save(self, obj): - # prepare a single object for storage # check if obj is in DB - pass + exists = self.backend.load_uuids_table(uuids=[get_uuid(obj)], + ignore_missing=True) + if exists: + return + # find all UUIDs we need to save with this object + # TODO: (perf) is this faster if we stop traversal on cached UUID? + uuids = get_all_uuids(obj) + # remove any UUIDs that have already been saved + exists = self.backend.load_uuids_table(uuids=list(uuids.keys()), + ignore_missing=True) + for existing in exists: + del uuids[existing.uuid] + # group by table, then save appropriately + # by_table; convert a dict of {uuid: obj} to {table: {uuid: obj}} + get_table_name = lambda uuid, obj_: \ + self.get_class_info(obj_.__class__).table + + by_table = dict_group_by(uuids, key_extract=get_table_name) + + for table in by_table: + storables_list = [self.serialize(o) for o in by_table[table]] + self.backend.add_to_table(table, storables_list) - def save_list(self, list_of_objs): - # get the UUIDs of all objs - # figure out which objs are already in the DB - # organize by type - # convert object to appropriate dict - # gather UUIDs to construct - pass def __getattr__(self, attr): # override getattr to create iterators over the tables @@ -151,6 +214,7 @@ def __getattr__(self, attr): ('input_samples', 'list_uuid')], 'steps': [('change', 'uuid'), ('active', 'uuid'), ('previous', 'uuid'), ('simulation', 'uuid'), ('mccycle', 'int')], + 'details': [('json', 'json')] 'simulation_objects': [('json', 'json'), ('class_idx', 'int')] } ops_schema_sql_metadata = {} diff --git a/openpathsampling/new/tools.py b/openpathsampling/new/tools.py index ca8e49fb0..5ec06e8ef 100644 --- a/openpathsampling/new/tools.py +++ b/openpathsampling/new/tools.py @@ -3,20 +3,44 @@ import sys if sys.version_info > (3, ): basestring = str +else: + basestring = basestring + +def is_mappable(obj): + return isinstance(obj, collections.Mapping) + +def is_iterable(obj): + return (isinstance(obj, collections.Iterable) + and not isinstance(obj, basestring)) -# TODO: write tests! def none_to_default(option, default): if option is None: option = default return option -def group_by(list_of_iterable, column_number): +def group_by(list_of_iterable, group, grouping_function): + results = collections.defaultdict(list) + for obj in list_of_iterable: + results[grouping_function(obj, group)].append(obj) + return results + +def group_by_index(list_of_iterable, column_number): results = collections.defaultdict(list) for obj in list_of_iterable: results[obj[column_number]].append(obj) return results +def group_by_attribute(list_of_iterable, attr): + return group_by(list_of_iterable, attr, getattr) + +def dict_group_by(dct, group, key_extract): + results = collections.defaultdict(dict) + for (key, value) in dct.items(): + results[key_extract(key, value)].update({key: value}) + return results + + def compare_sets(set1, set2): only_in_1 = set1 - set2 only_in_2 = set2 - set1 From f6c75f8c61ded76d9d0267e82dbd52a11c1e93d3 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Sun, 4 Feb 2018 21:11:52 +0100 Subject: [PATCH 073/464] reorg for more straightforward setup --- openpathsampling/new/serialization.py | 13 +-- openpathsampling/new/sql_backend.py | 18 ++-- openpathsampling/new/storage.py | 138 ++++++++++++++------------ openpathsampling/new/tools.py | 11 +- 4 files changed, 93 insertions(+), 87 deletions(-) diff --git a/openpathsampling/new/serialization.py b/openpathsampling/new/serialization.py index 516a700e2..d8ecceb6e 100644 --- a/openpathsampling/new/serialization.py +++ b/openpathsampling/new/serialization.py @@ -6,15 +6,16 @@ from tools import flatten_all, nested_update, is_iterable, is_mappable # UUID recognition and encoding ##################################### +# Things in here might be modified for performance optimization. In +# particular, it might be worth using a string representation of the UUID +# whenever possible (dicts with string keys have a special fast-path) def has_uuid(obj): - # TODO: (perf) or isinstance? or other? try a few return hasattr(obj, '__uuid__') def get_uuid(obj): return obj.__uuid__ -# TODO: (perf) try a few UUID encodings for performance def encode_uuid(uuid): return "UUID(" + str(uuid) + ")" @@ -27,10 +28,6 @@ def is_uuid_string(obj): and obj[:5] == 'UUID(' and obj[-1] == ')' ) -# TODO: (perf) have a special UUID encoding for dict keys? string keys have -# special fast-path - - # Getting the list of UUIDs bsed on initial objets ################### # NOTE: this needs find everything, including if the iterable/mapping has a @@ -40,7 +37,7 @@ def get_all_uuids(initial_object): with_uuid = [o for o in flatten_all(initial_object.to_dict()) if has_uuid(o)] for obj in with_uuid: - uuid_dict.update({obj.__uuid__: obj}) + uuid_dict.update({get_uuid(obj): obj}) uuid_dict.update(get_all_uuids(obj)) return uuid_dict @@ -101,7 +98,7 @@ def from_json(json_str, existing_uuids): dct[key] = value_obj return cls.from_dict(dct) -def reconstruction_dag(uuid_json_dict, dag=None) +def reconstruction_dag(uuid_json_dict, dag=None): dependent_uuids = {uuid: find_dependent_uuids(json_str) for (uuid, json_str) in uuid_json_dict.items()} if dag is None: diff --git a/openpathsampling/new/sql_backend.py b/openpathsampling/new/sql_backend.py index 98f3a09ed..b933ae778 100644 --- a/openpathsampling/new/sql_backend.py +++ b/openpathsampling/new/sql_backend.py @@ -3,6 +3,7 @@ import sqlalchemy as sql from storage import universal_schema from tools import group_by, compare_sets +import tools # dict to convert from OPS string type descriptors to SQL types sql_type = { @@ -42,11 +43,9 @@ class SQLStorageBackend(object): Uses SQLAlchemy; could easily duck-type an object that implements the necessary methods for other backends. """ - def __init__(self, filename, mode='r', template=None, fallback=None, - backend=None): - self.template = template + def __init__(self, filename, mode='r', sql_dialect=None): self.filename = filename - self.fallback = fallback + sql_dialect = tools.none_to_default(sql_dialect, 'sqlite') self.mode = mode # override later if mode == 'r' or 'a' @@ -55,16 +54,13 @@ def __init__(self, filename, mode='r', template=None, fallback=None, self.table_to_number = {} self.number_to_table = {} - if backend is None: - backend = 'sqlite' - if self.mode == "w" and os.path.exists(filename): # delete existing file; write after os.remove(filename) # we prevent writes by disallowing write method in read mode; # for everything else; just connect to the database - connection_uri = self.filename_from_backend(filename, backend) + connection_uri = self.filename_from_dialect(filename, sql_dialect) self.engine = sql.create_engine(connection_uri) if self.mode == "w": self.register_schema(universal_schema) @@ -74,13 +70,13 @@ def metadata(self): return self._metadata @staticmethod - def filename_from_backend(filename, backend): - # take backends like "sqlite", etc and return proper file connection + def filename_from_dialect(filename, dialect): + # take dialects like "sqlite", etc and return proper file connection # URI; would be essentially no-op for regular file opening as with # .nc uri_root = { 'sqlite': "sqlite:///{filename}", - }[backend] + }[dialect] return uri_root.format(filename=filename) @staticmethod diff --git a/openpathsampling/new/storage.py b/openpathsampling/new/storage.py index c108aad86..dd7fba1f9 100644 --- a/openpathsampling/new/storage.py +++ b/openpathsampling/new/storage.py @@ -3,7 +3,13 @@ import itertools import openpathsampling as paths from serialization import get_uuid +from serialization import to_json as serialize_sim +from serialization import from_json as deserialize_sim +# TODO: both of these are from +from serialization import to_dict_with_uuids as serialize_data +from serialization import deserialize as deserialize_data import tools +from openpathsampling.netcdfplus import StorableNamedObject """ A simple storage interface for simulation objects and data objects. @@ -31,9 +37,35 @@ ClassInfo = collections.namedtuple( 'ClassInfo', - ['table', 'class', 'serializer', 'deserializer'] + ['table', 'cls', 'serializer', 'deserializer'] ) +#TODO: should this become a collections.Sequence? +class ClassInfoContainer(object): + def __init__(self, default_info, class_info_list=None): + class_info_list = tools.none_to_default(class_info_list, []) + self.class_to_info = {} + self.table_to_info = {} + self.class_to_table = {} + self.table_to_class = {} + self.default_info = default_info + for info in class_info_list: + self.add_class_info(info) + + def add_class_info(self, info_node): + # check that we're not in any existing + self.class_to_info.update({info_node.cls: info_node}) + self.table_to_info.update({info_node.table: info_node}) + self.class_to_table.update({info_node.cls: info_node.table}) + self.table_to_class.update({info_node.table: info_node.cls}) + + def __getitem__(self, item): + if tools.is_string(item): + return self.table_to_info[item] + else: + return self.class_to_info[item] + + def make_lazy_class(cls_): # this is to mix-in inheritence class LazyClass(LazyLoader, cls_): @@ -101,58 +133,34 @@ def __iter__(self): class GeneralStorage(object): - def __init__(self, filename, mode='r', template=None, fallback=None, - backend=None): + def __init__(self, backend, schema, class_info, fallbacks=None): self._init_new() + self.scheme = scheme + self.class_info = class_info + self._lazy_classes = {} self.simulation_objects = self._cache_simulation_objects() self.cache = MixedCache(self.simulation_objects) - def _init_new(self): - """Initial empty version of various dictionaries""" - self.schema = {} - self.serialization = {} - self.class_to_table = {} - self.table_to_class = {} - self.lazy_tables = {} - - @classmethod - def from_backend(cls, backend): - obj = cls.__new__() - obj._init_new() - obj.filename = backend.filename - obj.mode = backend.mode - obj.template = backend._template - obj.fallback = backend.fallback - obj.backend = backend.backend - obj.db = backend - obj.simulation_objects = obj._cache_simulation_objects() - def _cache_simulation_objects(self): # load up all the simulation objects - pass + return {} def make_lazy(self, table, uuid): class_ = self.table_to_class[table] - if table not in self.lazy_classes: - self.lazy_classes[table] = make_lazy_class(class_) - return self.lazy_classes[table](uuid=uuid, - cls=class_, - storage=self) - - def register_schema(self, schema, class_to_table, serialization, - lazy_tables=None, backend_metadata=None): + if table not in self._lazy_classes: + self._lazy_classes[table] = make_lazy_class(class_) + return self._lazy_classes[table](uuid=uuid, + cls=class_, + storage=self) + + def register_schema(self, schema, class_info_list, + backend_metadata=None): # check validity self.backend.register_schema(schema, backend_metadata) self.schema.update(schema) - self.class_to_table.update(class_to_table) - self.table_to_class.update({ - table: cls_ for (cls_, table) in class_to_table.items() - }) - self.serialization.update(serialization) - if lazy_tables: - if lazy_tables is True: - lazy_tables = list(schema.keys()) - self.lazy_tables += lazy_tables + for info in class_info_list: + self.class_info.add_class_info(info) + def table_for_class(self, class_): return self.class_to_table[class_] @@ -214,34 +222,34 @@ def __getattr__(self, attr): ('input_samples', 'list_uuid')], 'steps': [('change', 'uuid'), ('active', 'uuid'), ('previous', 'uuid'), ('simulation', 'uuid'), ('mccycle', 'int')], - 'details': [('json', 'json')] + 'details': [('json', 'json')], 'simulation_objects': [('json', 'json'), ('class_idx', 'int')] } -ops_schema_sql_metadata = {} -ops_class_to_table = { - # this is only for data objects - paths.Sample: 'samples', - paths.SampleSet: 'sample_sets', - paths.Trajectory: 'trajectories', - paths.MoveChange: 'move_changes', - paths.MCStep: 'steps' -} -ops_class_to_serialization = { - paths.Sample: (paths.Sample.to_dict, paths.Sample.from_dict), - # this allows us to override the to_dict behavior for new storage -} +ops_schema_sql_metadata = {} -class OPSStorage(GeneralStorage): - def table_for_class(self, class_): - try: - table = ops_class_to_table[class_] - except KeyError: - if issubclass(class_, paths.netcdfplus.StorableNamedObject): - table = 'simulation_object' - else: - table = None - return table +ops_class_info = ClassInfoContainer( + default_info=ClassInfo('simulation_objects', cls=StorableNamedObject, + serializer=serialize_sim, + deserializer=deserialize_sim), + class_info_list=[ + ClassInfo(table='samples', cls=paths.Sample, + serializer=serialize_data, + deserializer=deserialize_data), + ClassInfo(table='sample_sets', cls=paths.SampleSet, + serializer=serialize_data, + deserializer=deserialize_data), + ClassInfo(table='trajectories', cls=paths.Trajectory, + serializer=serialize_data, + deserializer=deserialize_data), + ClassInfo(table='move_changes', cls=paths.MoveChange, + serializer=deserialize_data, + deserializer=deserialize_data), #TODO: may need custoom + ClassInfo(table='steps', cls=paths.MCStep, + serializer=serialize_data, + deserializer=deserialize_data) + ] +) class TableIterator(object): def __init__(self, storage): diff --git a/openpathsampling/new/tools.py b/openpathsampling/new/tools.py index 5ec06e8ef..b8caa7783 100644 --- a/openpathsampling/new/tools.py +++ b/openpathsampling/new/tools.py @@ -6,12 +6,15 @@ else: basestring = basestring +# simplifications for the necessary type-checking +def is_string(obj): + return isinstance(obj, basestring) + def is_mappable(obj): return isinstance(obj, collections.Mapping) def is_iterable(obj): - return (isinstance(obj, collections.Iterable) - and not isinstance(obj, basestring)) + return isinstance(obj, collections.Iterable) and not is_string(obj) def none_to_default(option, default): @@ -19,6 +22,7 @@ def none_to_default(option, default): option = default return option +# group_by and variants def group_by(list_of_iterable, group, grouping_function): results = collections.defaultdict(list) for obj in list_of_iterable: @@ -34,7 +38,7 @@ def group_by_index(list_of_iterable, column_number): def group_by_attribute(list_of_iterable, attr): return group_by(list_of_iterable, attr, getattr) -def dict_group_by(dct, group, key_extract): +def dict_group_by(dct, key_extract): results = collections.defaultdict(dict) for (key, value) in dct.items(): results[key_extract(key, value)].update({key: value}) @@ -46,6 +50,7 @@ def compare_sets(set1, set2): only_in_2 = set2 - set1 return (only_in_1, only_in_2) +# flatten and variants def flatten(inputs, value_iter, classes): results = [] for val in value_iter(inputs): From 06b2e78140a3d55b2a4a6a013dacf80d34393c42 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Sun, 4 Feb 2018 23:02:03 +0100 Subject: [PATCH 074/464] steps toward serialization can set up a Storage; still trouble storing objects to DB --- openpathsampling/new/serialization.py | 15 +++++++---- openpathsampling/new/storage.py | 36 +++++++++++++++++++-------- 2 files changed, 36 insertions(+), 15 deletions(-) diff --git a/openpathsampling/new/serialization.py b/openpathsampling/new/serialization.py index d8ecceb6e..5a09f2e19 100644 --- a/openpathsampling/new/serialization.py +++ b/openpathsampling/new/serialization.py @@ -14,7 +14,8 @@ def has_uuid(obj): return hasattr(obj, '__uuid__') def get_uuid(obj): - return obj.__uuid__ + # TODO: I can come up with a better string encoding than this + return str(obj.__uuid__) def encode_uuid(uuid): return "UUID(" + str(uuid) + ")" @@ -86,16 +87,20 @@ def import_class(mod, cls): return cls -def from_json(json_str, existing_uuids): - # NOTE: from_json only works with existing_uuids (DAG-ordering) - dct = ujson.loads(json_str) - cls = import_class(dct.pop('__module__'), dct.pop('__class__')) +def from_dict_with_uuids(dct, existing_uuids): for (key, value) in dct.items(): if is_uuid_string(value): # raises KeyError if object hasn't been visited # (indicates problem in DAG reconstruction) value_obj = existing_uuids[decode_uuid(value)] dct[key] = value_obj + return dct + +def from_json(json_str, existing_uuids): + # NOTE: from_json only works with existing_uuids (DAG-ordering) + dct = ujson.loads(json_str) + cls = import_class(dct.pop('__module__'), dct.pop('__class__')) + dct = from_dict_with_uuids(dct, existing_uuids) return cls.from_dict(dct) def reconstruction_dag(uuid_json_dict, dag=None): diff --git a/openpathsampling/new/storage.py b/openpathsampling/new/storage.py index dd7fba1f9..107afed3b 100644 --- a/openpathsampling/new/storage.py +++ b/openpathsampling/new/storage.py @@ -2,14 +2,14 @@ import collections import itertools import openpathsampling as paths -from serialization import get_uuid +from serialization import get_uuid, get_all_uuids from serialization import to_json as serialize_sim from serialization import from_json as deserialize_sim # TODO: both of these are from from serialization import to_dict_with_uuids as serialize_data from serialization import deserialize as deserialize_data import tools -from openpathsampling.netcdfplus import StorableNamedObject +from openpathsampling.netcdfplus import StorableObject """ A simple storage interface for simulation objects and data objects. @@ -48,12 +48,14 @@ def __init__(self, default_info, class_info_list=None): self.table_to_info = {} self.class_to_table = {} self.table_to_class = {} + self.class_info_list = [] self.default_info = default_info for info in class_info_list: self.add_class_info(info) def add_class_info(self, info_node): # check that we're not in any existing + self.class_info_list.append(info_node) self.class_to_info.update({info_node.cls: info_node}) self.table_to_info.update({info_node.table: info_node}) self.class_to_table.update({info_node.cls: info_node.table}) @@ -63,7 +65,18 @@ def __getitem__(self, item): if tools.is_string(item): return self.table_to_info[item] else: - return self.class_to_info[item] + try: + return self.class_to_info[item] + except KeyError as e: + if issubclass(item, self.default_info.cls): + return self.default_info + else: + raise e + + def __repr__(self): # pragma: no cover + return ("ClassInfoContainer(default_info=" + repr(self.default_info) + + ", class_info_list=" + repr(self.class_info_list) + ")") + def make_lazy_class(cls_): @@ -134,8 +147,8 @@ def __iter__(self): class GeneralStorage(object): def __init__(self, backend, schema, class_info, fallbacks=None): - self._init_new() - self.scheme = scheme + self.backend = backend + self.schema = schema self.class_info = class_info self._lazy_classes = {} self.simulation_objects = self._cache_simulation_objects() @@ -176,7 +189,7 @@ def load(self, uuid, lazy=None): pass def serialize(self, obj): - class_info = self.get_class_info(obj.__class__) + class_info = self.class_info[obj.__class__] return class_info.serializer(obj) def save(self, obj): @@ -196,12 +209,15 @@ def save(self, obj): # group by table, then save appropriately # by_table; convert a dict of {uuid: obj} to {table: {uuid: obj}} get_table_name = lambda uuid, obj_: \ - self.get_class_info(obj_.__class__).table + self.class_info[obj_.__class__].table - by_table = dict_group_by(uuids, key_extract=get_table_name) + by_table = tools.dict_group_by(uuids, key_extract=get_table_name) for table in by_table: - storables_list = [self.serialize(o) for o in by_table[table]] + print table + print by_table + storables_list = [self.serialize(o) + for o in by_table[table].values()] self.backend.add_to_table(table, storables_list) @@ -229,7 +245,7 @@ def __getattr__(self, attr): ops_schema_sql_metadata = {} ops_class_info = ClassInfoContainer( - default_info=ClassInfo('simulation_objects', cls=StorableNamedObject, + default_info=ClassInfo('simulation_objects', cls=StorableObject, serializer=serialize_sim, deserializer=deserialize_sim), class_info_list=[ From af2ce7655a0ae8d868764e4fc8c54005ad7c3bb9 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Sun, 4 Feb 2018 23:50:03 +0100 Subject: [PATCH 075/464] successful storing of a PES with storage.save() --- openpathsampling/new/serialization.py | 5 +++-- openpathsampling/new/storage.py | 4 ++-- openpathsampling/new/tools.py | 4 ++++ 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/openpathsampling/new/serialization.py b/openpathsampling/new/serialization.py index 5a09f2e19..cdc2c4df6 100644 --- a/openpathsampling/new/serialization.py +++ b/openpathsampling/new/serialization.py @@ -3,7 +3,8 @@ import ujson import networkx as nx import networkx.algorithms.dag as nx_dag -from tools import flatten_all, nested_update, is_iterable, is_mappable +from tools import flatten_all, nested_update +from tools import is_iterable, is_mappable, is_numpy_iterable # UUID recognition and encoding ##################################### # Things in here might be modified for performance optimization. In @@ -64,7 +65,7 @@ def replace_uuid(obj): replacement = encode_uuid(obj.__uuid__) elif is_mappable(obj): replacement = {k: replace_uuid(v) for (k, v) in replacement.items()} - elif is_iterable(obj): + elif is_iterable(obj) and not is_numpy_iterable(obj): replace_type = type(obj) replacement = replace_type([replace_uuid(o) for o in obj]) return replacement diff --git a/openpathsampling/new/storage.py b/openpathsampling/new/storage.py index 107afed3b..5698949e6 100644 --- a/openpathsampling/new/storage.py +++ b/openpathsampling/new/storage.py @@ -153,6 +153,7 @@ def __init__(self, backend, schema, class_info, fallbacks=None): self._lazy_classes = {} self.simulation_objects = self._cache_simulation_objects() self.cache = MixedCache(self.simulation_objects) + self.register_schema(self.schema, class_info_list=[]) def _cache_simulation_objects(self): # load up all the simulation objects @@ -214,10 +215,9 @@ def save(self, obj): by_table = tools.dict_group_by(uuids, key_extract=get_table_name) for table in by_table: - print table - print by_table storables_list = [self.serialize(o) for o in by_table[table].values()] + print storables_list self.backend.add_to_table(table, storables_list) diff --git a/openpathsampling/new/tools.py b/openpathsampling/new/tools.py index b8caa7783..60a3bb071 100644 --- a/openpathsampling/new/tools.py +++ b/openpathsampling/new/tools.py @@ -1,4 +1,5 @@ import collections +from numpy import ndarray import sys if sys.version_info > (3, ): @@ -16,6 +17,9 @@ def is_mappable(obj): def is_iterable(obj): return isinstance(obj, collections.Iterable) and not is_string(obj) +def is_numpy_iterable(obj): + return isinstance(obj, ndarray) + def none_to_default(option, default): if option is None: From 573c554e8d90b9fbef9d39506d60eec58c61bdb6 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Mon, 5 Feb 2018 14:39:32 +0100 Subject: [PATCH 076/464] starting on numpy support --- openpathsampling/new/sql_backend.py | 20 +++++++++++--------- openpathsampling/new/storage.py | 1 - 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/openpathsampling/new/sql_backend.py b/openpathsampling/new/sql_backend.py index b933ae778..f51d768e4 100644 --- a/openpathsampling/new/sql_backend.py +++ b/openpathsampling/new/sql_backend.py @@ -5,7 +5,7 @@ from tools import group_by, compare_sets import tools -# dict to convert from OPS string type descriptors to SQL types +# dict to convert from OPS type descriptors to SQL types sql_type = { 'uuid': sql.String, 'lazy': sql.String, @@ -14,6 +14,8 @@ 'json': sql.String, 'int': sql.Integer, 'float': sql.Float, + 'ndarray.float64': sql.LargeBinary, #TODO: numpy store/load + 'ndarray.float32': sql.LargeBinary #TODO add more } @@ -198,20 +200,20 @@ def register_schema(self, schema, sql_schema_metadata=None): columns.append(sql.Column('idx', sql.Integer, primary_key=True)) columns.append(sql.Column('uuid', sql.String)) - columns += [ - sql.Column( - col, sql_type[type_name], - **self._extract_metadata(sql_schema_metadata, - table_name, col) - ) - for (col, type_name) in schema[table_name] - ] + for col, type_name in schema[table_name]: + # TODO: more general creation of type name + col_type = sql_type[type_name] + metadata = self._extract_metadata(sql_schema_metadata, + table_name, col) + columns.append(sql.Column(col, col_type, **metadata)) + try: table = sql.Table(table_name, self.metadata, *columns) except sql.exc.InvalidRequestError: raise TypeError("Schema registration problem. Your schema " "may already have tables of the same names.") + #TODO: add schema to schema table self._add_table_to_tables_list(table_name) self.metadata.create_all(self.engine) diff --git a/openpathsampling/new/storage.py b/openpathsampling/new/storage.py index 5698949e6..51d46b2e2 100644 --- a/openpathsampling/new/storage.py +++ b/openpathsampling/new/storage.py @@ -217,7 +217,6 @@ def save(self, obj): for table in by_table: storables_list = [self.serialize(o) for o in by_table[table].values()] - print storables_list self.backend.add_to_table(table, storables_list) From 1767b4f413a2b0ff26a3334183833c4e561ddc6f Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Mon, 5 Feb 2018 16:29:17 +0100 Subject: [PATCH 077/464] fix tests --- openpathsampling/new/test_sql_backend.py | 52 ++++++++++++------------ 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/openpathsampling/new/test_sql_backend.py b/openpathsampling/new/test_sql_backend.py index 02afe626f..883688163 100644 --- a/openpathsampling/new/test_sql_backend.py +++ b/openpathsampling/new/test_sql_backend.py @@ -4,7 +4,7 @@ class TestSQLStorageBackend(object): def setup(self): self._delete_tmp_files() - self.backend = self._default_backend + self.database = self._default_database self.schema = { 'samples': [('replica', 'int'), ('ensemble', 'uuid'), @@ -29,16 +29,16 @@ def _add_sample_data(self): schema = {'samples': [('replica', 'int'), ('ensemble', 'uuid'), ('trajectory', 'uuid')]} - self.backend.register_schema(schema) + self.database.register_schema(schema) sample_dict = self._sample_data_dict() - self.backend.add_to_table('samples', sample_dict) + self.database.add_to_table('samples', sample_dict) return sample_dict def teardown(self): self._delete_tmp_files() @property - def _default_backend(self): + def _default_database(self): # NOTE: test other SQL backends by subclassing and changing this return SQLStorageBackend(":memory:", mode='w') @@ -51,27 +51,27 @@ def test_extract_metadata(self): sql_meta = { 'uuid': {'uuid': {'primary_key': True}} } - meta = self.backend._extract_metadata(sql_meta, 'uuid', 'uuid') + meta = self.database._extract_metadata(sql_meta, 'uuid', 'uuid') assert meta == {'primary_key': True} @pytest.mark.parametrize('test_input,expected', [ (("file.sql", "sqlite"), "sqlite:///file.sql"), ((":memory:", "sqlite"), "sqlite:///:memory:") ]) - def test_filename_from_backend(self, test_input, expected): - filename_from_backend = self.backend.filename_from_backend - assert filename_from_backend(*test_input) == expected + def test_filename_from_dialect(self, test_input, expected): + filename_from_dialect = self.database.filename_from_dialect + assert filename_from_dialect(*test_input) == expected - def test_filename_from_backend_unknown(self): + def test_filename_from_dialect_unknown(self): with pytest.raises(KeyError): - self.backend.filename_from_backend("file.sql", "foo") + self.database.filename_from_dialect("file.sql", "foo") def _col_names_set(self, table): - meta = self.backend.metadata + meta = self.database.metadata return set([col.name for col in meta.tables[table].columns]) def test_setup(self): - table_names = self.backend.engine.table_names() + table_names = self.database.engine.table_names() assert set(table_names) == set(['uuid', 'tables']) assert self._col_names_set('uuid') == set(['uuid', 'table', 'row']) assert self._col_names_set('tables') == set(['name', 'idx']) @@ -80,23 +80,23 @@ def test_register_schema(self): new_schema = { 'snapshot1': [('filename', 'str'), ('index', 'int')] } - self.backend.register_schema(new_schema) - table_names = self.backend.engine.table_names() + self.database.register_schema(new_schema) + table_names = self.database.engine.table_names() assert set(table_names) == set(['uuid', 'tables', 'snapshot1']) assert self._col_names_set('snapshot1') == set(['idx', 'uuid', 'filename', 'index']) def test_register_schema_modify_fails(self): - self.backend.register_schema(self.schema) + self.database.register_schema(self.schema) with pytest.raises(TypeError): - self.backend.register_schema(self.schema) + self.database.register_schema(self.schema) def test_internal_tables_from_db(self): - self.backend.register_schema(self.schema) - tab2num, num2tab = self.backend.internal_tables_from_db() - tables_db = self.backend.metadata.tables['tables'] - with self.backend.engine.connect() as conn: + self.database.register_schema(self.schema) + tab2num, num2tab = self.database.internal_tables_from_db() + tables_db = self.database.metadata.tables['tables'] + with self.database.engine.connect() as conn: res = list(conn.execute(tables_db.select())) assert len(res) == 2 @@ -117,7 +117,7 @@ def test_table_is_consistent(self): def test_load_uuids_table(self): sample_dict = self._add_sample_data() uuids = [s['uuid'] for s in sample_dict] - loaded_uuids = self.backend.load_uuids_table(uuids) + loaded_uuids = self.database.load_uuids_table(uuids) assert len(loaded_uuids) == 3 for uuid in loaded_uuids: assert uuid.uuid in uuids @@ -130,13 +130,13 @@ def test_add_to_table(self): schema = {'samples': [('replica', 'int'), ('ensemble', 'uuid'), ('trajectory', 'uuid')]} - self.backend.register_schema(schema) + self.database.register_schema(schema) sample_dict = self._sample_data_dict() - self.backend.add_to_table('samples', sample_dict) + self.database.add_to_table('samples', sample_dict) # load created data - tables = self.backend.metadata.tables - with self.backend.engine.connect() as conn: + tables = self.database.metadata.tables + with self.database.engine.connect() as conn: samples = list(conn.execute(tables['samples'].select())) uuids = list(conn.execute(tables['uuid'].select())) @@ -165,7 +165,7 @@ def test_add_to_table(self): def test_load_table_data(self): sample_dict = self._add_sample_data() uuids = [s['uuid'] for s in sample_dict] - # (loaded_table, loaded_lazy) = self.backend.load_table_data(uuids) + # (loaded_table, loaded_lazy) = self.database.load_table_data(uuids) # assert len(loaded.table) == 3 pytest.skip() From 754ff2019127c25885cb5cb090ea6b246fb396bf Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Tue, 6 Feb 2018 11:37:04 +0100 Subject: [PATCH 078/464] progress on numpy support --- openpathsampling/new/my_types.py | 22 ++++++++++++++++ openpathsampling/new/serialization.py | 36 ++++++++++----------------- openpathsampling/new/sql_backend.py | 35 ++++++++++++++++++++------ openpathsampling/new/storage.py | 29 +++++++++++---------- 4 files changed, 79 insertions(+), 43 deletions(-) create mode 100644 openpathsampling/new/my_types.py diff --git a/openpathsampling/new/my_types.py b/openpathsampling/new/my_types.py new file mode 100644 index 000000000..7e02b6efc --- /dev/null +++ b/openpathsampling/new/my_types.py @@ -0,0 +1,22 @@ +import re +import numpy as np +ndarray_re = \ + re.compile("ndarray\.(?P[a-z0-9]+)(?P\([0-9\,\ ]+\))") + +def parse_ndarray_type(type_name): + m_ndarray = ndarray_re.match(type_name) + if m_ndarray: + dtype = getattr(np, m_ndarray.group('dtype')), + shape = tuple(map(int, m_ndarray.group('shape')[1:-1].split(','))) + return dtype, shape + return None + + +uuid_types = ['uuid', 'lazy'] +list_uuid = ['list_uuid'] +builtin_types = ['str', 'int', 'float'] +ndarray_types = ['ndarray'] + +all_types = uuid_types + list_uuid + builtin_types + ndarray_types + + diff --git a/openpathsampling/new/serialization.py b/openpathsampling/new/serialization.py index cdc2c4df6..c02fb85ce 100644 --- a/openpathsampling/new/serialization.py +++ b/openpathsampling/new/serialization.py @@ -62,7 +62,7 @@ def replace_uuid(obj): replacement = obj if has_uuid(obj): # TODO: compact representation of UUID - replacement = encode_uuid(obj.__uuid__) + replacement = encode_uuid(get_uuid(obj)) elif is_mappable(obj): replacement = {k: replace_uuid(v) for (k, v) in replacement.items()} elif is_iterable(obj) and not is_numpy_iterable(obj): @@ -75,7 +75,15 @@ def to_dict_with_uuids(obj): dct = obj.to_dict() return replace_uuid(dct) -def to_json(obj): +def to_bare_json(obj): + replaced = replace_uuid(obj) + return ujson.dumps(replaced) + +def from_bare_json(json_str, existing_uuids): + pass #TODO + + +def to_json_obj(obj): dct = to_dict_with_uuids(obj) dct.update({'__module__': obj.__class__.__module__, '__class__': obj.__class__.__name__}) @@ -87,7 +95,6 @@ def import_class(mod, cls): cls = getattr(mod, cls) return cls - def from_dict_with_uuids(dct, existing_uuids): for (key, value) in dct.items(): if is_uuid_string(value): @@ -97,7 +104,7 @@ def from_dict_with_uuids(dct, existing_uuids): dct[key] = value_obj return dct -def from_json(json_str, existing_uuids): +def from_json_obj(json_str, existing_uuids): # NOTE: from_json only works with existing_uuids (DAG-ordering) dct = ujson.loads(json_str) cls = import_class(dct.pop('__module__'), dct.pop('__class__')) @@ -118,24 +125,7 @@ def reconstruction_dag(uuid_json_dict, dag=None): return dag -# TODO: move this to storage -def serialize_simulation_objects(list_of_objects): - uuid_object_dict = {} - for obj in list_of_objects: - uuid_object_dict.update(get_all_uuids(obj)) - - storables_list = [] - # TODO: make storable versions of data objects here - - # uuid_json_dict = {uuid: to_json(obj) - # for (uuid, obj) in uuid_object_dict.items()} - storables_list = [ - {'uuid': uuid, 'json': to_json(obj)} - for (uuid, obj) in uuid_object_dict.items() - ] - return storables_list - - +# TODO: replace this with something in storage def deserialize(uuid_json_dict, lazies, storage): dag = reconstruction_dag(uuid_json_dict) missing = check_dag(dag, uuid_json_dict) @@ -160,5 +150,5 @@ def deserialize(uuid_json_dict, lazies, storage): ordered_nodes = list(reversed(list(nx_dag.topological_sort(dag)))) for node in ordered_nodes: # TODO: replace from_json with something that gets the deserializer - new_uuids[node] = from_json(all_json[node], new_uuids, known_uuids) + new_uuids[node] = from_json_obj(all_json[node], new_uuids, known_uuids) return new_uuids diff --git a/openpathsampling/new/sql_backend.py b/openpathsampling/new/sql_backend.py index f51d768e4..09bcdaf21 100644 --- a/openpathsampling/new/sql_backend.py +++ b/openpathsampling/new/sql_backend.py @@ -4,6 +4,9 @@ from storage import universal_schema from tools import group_by, compare_sets import tools +import ujson as json + +from my_types import parse_ndarray_type # dict to convert from OPS type descriptors to SQL types sql_type = { @@ -12,10 +15,10 @@ 'list_uuid': sql.String, 'str': sql.String, 'json': sql.String, + 'json_obj': sql.String, 'int': sql.Integer, 'float': sql.Float, - 'ndarray.float64': sql.LargeBinary, #TODO: numpy store/load - 'ndarray.float32': sql.LargeBinary + 'ndarray': sql.LargeBinary, #TODO: numpy store/load #TODO add more } @@ -45,7 +48,7 @@ class SQLStorageBackend(object): Uses SQLAlchemy; could easily duck-type an object that implements the necessary methods for other backends. """ - def __init__(self, filename, mode='r', sql_dialect=None): + def __init__(self, filename, mode='r', sql_dialect=None, echo=False): self.filename = filename sql_dialect = tools.none_to_default(sql_dialect, 'sqlite') self.mode = mode @@ -63,7 +66,11 @@ def __init__(self, filename, mode='r', sql_dialect=None): # we prevent writes by disallowing write method in read mode; # for everything else; just connect to the database connection_uri = self.filename_from_dialect(filename, sql_dialect) - self.engine = sql.create_engine(connection_uri) + self.engine = sql.create_engine(connection_uri, echo=echo) + schema_table = sql.Table('schema', self.metadata, + sql.Column('table', sql.String), + sql.Column('schema', sql.String)) + self.metadata.create_all(self.engine) if self.mode == "w": self.register_schema(universal_schema) @@ -153,7 +160,7 @@ def table_is_consistent(self, table_name): else: return False - def _add_table_to_tables_list(self, table_name): + def _add_table_to_tables_list(self, table_name, table_schema): if table_name in ['uuid', 'tables']: return # note that this return the number of tables in 'tables', which does @@ -165,9 +172,15 @@ def _add_table_to_tables_list(self, table_name): res = conn.execute(tables.select()) n_tables = len(list(res)) + schema_table = self.metadata.tables['schema'] + with self.engine.connect() as conn: conn.execute(tables.insert().values(name=table_name, idx=n_tables)) + conn.execute(schema_table.insert().values( + table=table_name, + schema=json.dumps(table_schema) + )) self.table_to_number.update({table_name: n_tables}) self.number_to_table.update({n_tables: table_name}) @@ -183,6 +196,13 @@ def _load_from_table(self, table_name, idx_list): return results + def parse_registration_type(self, type_name): + ops_type = type_name + ndarray_info = parse_ndarray_type(type_name) + if parse_ndarray_type(type_name): + ops_type = 'ndarray' + return ops_type + ### FROM HERE IS THE GENERIC PUBLIC API def register_schema(self, schema, sql_schema_metadata=None): """Register (part of) a schema (create necessary tables in DB) @@ -202,19 +222,20 @@ def register_schema(self, schema, sql_schema_metadata=None): columns.append(sql.Column('uuid', sql.String)) for col, type_name in schema[table_name]: # TODO: more general creation of type name - col_type = sql_type[type_name] + col_type = sql_type[self.parse_registration_type(type_name)] metadata = self._extract_metadata(sql_schema_metadata, table_name, col) columns.append(sql.Column(col, col_type, **metadata)) try: + print table_name table = sql.Table(table_name, self.metadata, *columns) except sql.exc.InvalidRequestError: raise TypeError("Schema registration problem. Your schema " "may already have tables of the same names.") #TODO: add schema to schema table - self._add_table_to_tables_list(table_name) + self._add_table_to_tables_list(table_name, schema[table_name]) self.metadata.create_all(self.engine) self.schema.update(schema) diff --git a/openpathsampling/new/storage.py b/openpathsampling/new/storage.py index 51d46b2e2..60f9265a4 100644 --- a/openpathsampling/new/storage.py +++ b/openpathsampling/new/storage.py @@ -3,8 +3,8 @@ import itertools import openpathsampling as paths from serialization import get_uuid, get_all_uuids -from serialization import to_json as serialize_sim -from serialization import from_json as deserialize_sim +from serialization import to_json_obj as serialize_sim +from serialization import from_json_obj as deserialize_sim # TODO: both of these are from from serialization import to_dict_with_uuids as serialize_data from serialization import deserialize as deserialize_data @@ -115,6 +115,7 @@ def repr(self): class MixedCache(collections.MutableMapping): """Combine a frozen cache and a mutable cache""" + # TODO: benchmark with single dict instead; might be just as fast! def __init__(self, fixed_cache=None): self.fixed_cache = tools.none_to_default(fixed_cache, default={}) self.cache = {} @@ -144,7 +145,6 @@ def __iter__(self): return itertools.chain(self.fixed_cache, self.cache) - class GeneralStorage(object): def __init__(self, backend, schema, class_info, fallbacks=None): self.backend = backend @@ -160,7 +160,7 @@ def _cache_simulation_objects(self): return {} def make_lazy(self, table, uuid): - class_ = self.table_to_class[table] + class_ = self.class_info(table).cls if table not in self._lazy_classes: self._lazy_classes[table] = make_lazy_class(class_) return self._lazy_classes[table](uuid=uuid, @@ -175,10 +175,6 @@ def register_schema(self, schema, class_info_list, for info in class_info_list: self.class_info.add_class_info(info) - - def table_for_class(self, class_): - return self.class_to_table[class_] - def _create_virtual_stores(self, store_categories): # create virtual stores for simulation objects (e.g., .volume, etc) pass @@ -194,7 +190,7 @@ def serialize(self, obj): return class_info.serializer(obj) def save(self, obj): - # check if obj is in DB + # check if obj is in DB (maybe this can be removed?) exists = self.backend.load_uuids_table(uuids=[get_uuid(obj)], ignore_missing=True) if exists: @@ -235,10 +231,10 @@ def __getattr__(self, attr): 'move_changes': [('mover', 'uuid'), ('details', 'lazy'), ('cls', 'str'), ('subchanges', 'list_uuid'), ('samples', 'list_uuid'), ('input_samples', 'list_uuid')], - 'steps': [('change', 'uuid'), ('active', 'uuid'), ('previous', 'uuid'), + 'steps': [('change', 'uuid'), ('active', 'uuid'), ('previous', 'lazy'), ('simulation', 'uuid'), ('mccycle', 'int')], 'details': [('json', 'json')], - 'simulation_objects': [('json', 'json'), ('class_idx', 'int')] + 'simulation_objects': [('json', 'json_obj'), ('class_idx', 'int')] } ops_schema_sql_metadata = {} @@ -267,8 +263,8 @@ def __getattr__(self, attr): ) class TableIterator(object): - def __init__(self, storage): - self.cache = storage.simulation_objects.copy() + def __init__(self, storage, table): + self.storage = storage def __iter__(self): # iter manages the cache @@ -282,3 +278,10 @@ def __getitem__(self): # is is possible that using local lists of UUIDs to get might make # this just as fast? (stopping at trajectory level; no snapshots) pass + + def store_order(self): + # return in order of the idx + pass + + # TODO: subclass for MCSteps with additional method .ordered, returning + # things in the order of the mccycle number From e3858f9379d43c5ae56e7c48b7a5fddad148f32a Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Tue, 6 Feb 2018 14:15:23 +0100 Subject: [PATCH 079/464] numpy can be serialized/deserialized --- openpathsampling/new/my_types.py | 2 +- ...ialization.py => serialization_helpers.py} | 1 - openpathsampling/new/storage.py | 36 +------------------ 3 files changed, 2 insertions(+), 37 deletions(-) rename openpathsampling/new/{serialization.py => serialization_helpers.py} (98%) diff --git a/openpathsampling/new/my_types.py b/openpathsampling/new/my_types.py index 7e02b6efc..0bed2717c 100644 --- a/openpathsampling/new/my_types.py +++ b/openpathsampling/new/my_types.py @@ -6,7 +6,7 @@ def parse_ndarray_type(type_name): m_ndarray = ndarray_re.match(type_name) if m_ndarray: - dtype = getattr(np, m_ndarray.group('dtype')), + dtype = getattr(np, m_ndarray.group('dtype')) shape = tuple(map(int, m_ndarray.group('shape')[1:-1].split(','))) return dtype, shape return None diff --git a/openpathsampling/new/serialization.py b/openpathsampling/new/serialization_helpers.py similarity index 98% rename from openpathsampling/new/serialization.py rename to openpathsampling/new/serialization_helpers.py index c02fb85ce..5abe9bc1d 100644 --- a/openpathsampling/new/serialization.py +++ b/openpathsampling/new/serialization_helpers.py @@ -70,7 +70,6 @@ def replace_uuid(obj): replacement = replace_type([replace_uuid(o) for o in obj]) return replacement -# NOTE: I think this is the generic serializer for data objects def to_dict_with_uuids(obj): dct = obj.to_dict() return replace_uuid(dct) diff --git a/openpathsampling/new/storage.py b/openpathsampling/new/storage.py index 60f9265a4..d6daa4d1a 100644 --- a/openpathsampling/new/storage.py +++ b/openpathsampling/new/storage.py @@ -40,6 +40,7 @@ ['table', 'cls', 'serializer', 'deserializer'] ) + #TODO: should this become a collections.Sequence? class ClassInfoContainer(object): def __init__(self, default_info, class_info_list=None): @@ -78,41 +79,6 @@ def __repr__(self): # pragma: no cover + ", class_info_list=" + repr(self.class_info_list) + ")") - -def make_lazy_class(cls_): - # this is to mix-in inheritence - class LazyClass(LazyLoader, cls_): - pass - return LazyClass - -class LazyLoader(object): - def __init__(self, uuid, class_, storage): - self.__uuid__ = uuid - self.storage = storage - self.class_= class_ - self._loaded_object = None - - def load(self): - if self._loaded_object is None: - self._loaded_object = self.storage.load(self.__uuid__, lazy=False) - return self._loaded_object - - def __getattr__(self, attr): - return getattr(self.load(), attr) - - def __iter__(self): - loaded = self.load() - if not hasattr(loaded, '__iter__'): - raise TypeError() # TODO: message - # TODO: load all objects in the list - return loaded.__iter__ - - # TODO: how to handle isinstance? each lazy-loading class needs a sub - def repr(self): - return ("") - - class MixedCache(collections.MutableMapping): """Combine a frozen cache and a mutable cache""" # TODO: benchmark with single dict instead; might be just as fast! From 3ca393d7959ba9b4b32f62a65897a8e454067d2b Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Tue, 6 Feb 2018 15:53:30 +0100 Subject: [PATCH 080/464] save snapshots and sim objs --- openpathsampling/new/serialization.py | 166 ++++++++++++++++++++++++++ openpathsampling/new/storage.py | 60 ++++------ 2 files changed, 192 insertions(+), 34 deletions(-) create mode 100644 openpathsampling/new/serialization.py diff --git a/openpathsampling/new/serialization.py b/openpathsampling/new/serialization.py new file mode 100644 index 000000000..ea858118c --- /dev/null +++ b/openpathsampling/new/serialization.py @@ -0,0 +1,166 @@ +import numpy as np +from my_types import parse_ndarray_type, ndarray_re +import serialization_helpers as serialization +from tools import is_mappable + +def make_lazy_class(cls_): + # this is to mix-in inheritence + class LazyClass(LazyLoader, cls_): + pass + return LazyClass + +class LazyLoader(object): + def __init__(self, uuid, class_, storage): + self.__uuid__ = uuid + self.storage = storage + self.class_= class_ + self._loaded_object = None + + def load(self): + if self._loaded_object is None: + self._loaded_object = self.storage.load(self.__uuid__, lazy=False) + if self._loaded_object is None: + raise RuntimeError("UUID not found in storage: " + + str(self.__uuid__)) + return self._loaded_object + + def __getattr__(self, attr): + return getattr(self.load(), attr) + + def __iter__(self): + loaded = self.load() + if not hasattr(loaded, '__iter__'): + raise TypeError() # TODO: message + # TODO: load all objects in the list + return loaded.__iter__ + + # TODO: how to handle isinstance? each lazy-loading class needs a sub + def repr(self): + return ("") + +class Serialization(object): + builtin_types = ['int', 'float', 'str'] + uuid_types = ['uuid', 'list_uuid', 'lazy'] + # TODO: to_json here might not quite be correct; need to_bare_json? + def __init__(self, storage): + self.storage = storage + self.cache = self.storage.cache + self.attribute_serializers = { + 'uuid': serialization.get_uuid, + 'lazy': serialization.get_uuid, + 'json': serialization.to_bare_json, + 'list_uuid': serialization.to_bare_json + } + + self.attribute_deserializers = { + 'uuid': serialization.from_json_obj, + 'lazy': self.make_lazy, + 'json': serialization.from_bare_json, + 'list_uuid': serialization.from_bare_json + } + self.schema = {} + self.table_to_class = {} + self._ser_dict = {} + self._deser_dict = {} + self._lazy_classes = {} + + def make_lazy(self, cls, uuid): + if cls not in self._lazy_classes: + self._lazy_classes[cls] = make_lazy_class(cls) + return self._lazy_classes[cls](uuid=uuid, + class_=cls, + storage=self.storage) + + def register_serialization(self, schema, class_info): + for table in schema: + if class_info[table].serializer: + self._ser_dict[table] = class_info[table].serializer + else: + self._ser_dict[table] = \ + self.default_serializer_dict(schema[table]) + + if class_info[table].deserializer: + self._deser_dict[table] = class_info[table].deserializer + else: + self._deser_dict[table] = \ + self.default_deserializer_dict(schema[table]) + + self.table_to_class.update({table: class_info[table].cls}) + self.schema.update(schema) + + def attribute_serializer(self, type_name): + if type_name in self.attribute_serializers: + return self.attribute_serializers[type_name] + if ndarray_re.match(type_name): + return lambda arr: arr.tostring() + else: + raise TypeError("Unknown type for serialization: " + type_name) + + def attribute_deserializer(self, type_name): + if type_name in self.attribute_deserializers: + return self.attribute_deserializers[type_name] + as_ndarray = parse_ndarray_type(type_name) + if as_ndarray: + (dtype, shape) = as_ndarray + return lambda data: \ + np.fromstring(data, dtype=dtype).reshape(shape) + + def _serialization_dict(self, attribute_handler, table_description): + dct = {} + for (attr, type_name) in table_description: + if type_name in self.builtin_types: + dct[attr] = None + else: + dct[attr] = attribute_handler(type_name) + return dct + + def default_serializer_dict(self, table_description): + return self._serialization_dict(self.attribute_serializer, + table_description) + + def default_deserializer_dict(self, table_description): + return self._serialization_dict(self.attribute_deserializer, + table_description) + + @property + def serialize(self): + default_tables = set(tab for (tab, func) in self._ser_dict.items() + if is_mappable(func)) + non_default_tables = set(self._ser_dict.keys()) - default_tables + results = {table: self._ser_dict[table] + for table in non_default_tables} + results.update({ + table: + lambda obj, table=table: self.default_serialize(obj, table) + for table in default_tables + }) + return results + + def default_serialize(self, obj, table): + all_objects = [] + dct = {'uuid': serialization.get_uuid(obj)} + serializer_dict = self._ser_dict[table] + for (attr, type_name) in self.schema[table]: + attr_obj = getattr(obj, attr) + if attr not in serializer_dict: + dct[attr] = attr_obj # built-in types + else: + dct[attr] = serializer_dict[attr](attr_obj) + return dct + + def default_deserialize(self, uuid, dct, table): + # this must be called in the DAG order; otherwise error + deserializer_dict = self._deser_dict[table] + cls = self.table_to_class[table] + for (attr, type_name) in self.schema[table]: + if type_name == 'lazy': + dct[attr] = self.make_lazy(cls, uuid) + elif type_name in ['uuid', 'list_uuid']: + dct[attr] = deserializer_dict[attr](dct[attr], self.cache) + else: + dct[attr] = deserializer_dict[attr](dct[attr]) + obj = cls.from_dict(dct) + obj.__uuid__ = uuid + return obj + diff --git a/openpathsampling/new/storage.py b/openpathsampling/new/storage.py index d6daa4d1a..9a723a337 100644 --- a/openpathsampling/new/storage.py +++ b/openpathsampling/new/storage.py @@ -2,14 +2,15 @@ import collections import itertools import openpathsampling as paths -from serialization import get_uuid, get_all_uuids -from serialization import to_json_obj as serialize_sim -from serialization import from_json_obj as deserialize_sim +from serialization_helpers import get_uuid, get_all_uuids +from serialization_helpers import to_json_obj as serialize_sim +from serialization_helpers import from_json_obj as deserialize_sim # TODO: both of these are from -from serialization import to_dict_with_uuids as serialize_data -from serialization import deserialize as deserialize_data +from serialization_helpers import to_dict_with_uuids as serialize_data +from serialization_helpers import deserialize as deserialize_data import tools from openpathsampling.netcdfplus import StorableObject +from serialization import Serialization """ A simple storage interface for simulation objects and data objects. @@ -51,6 +52,7 @@ def __init__(self, default_info, class_info_list=None): self.table_to_class = {} self.class_info_list = [] self.default_info = default_info + self.add_class_info(default_info) for info in class_info_list: self.add_class_info(info) @@ -116,23 +118,11 @@ def __init__(self, backend, schema, class_info, fallbacks=None): self.backend = backend self.schema = schema self.class_info = class_info - self._lazy_classes = {} self.simulation_objects = self._cache_simulation_objects() self.cache = MixedCache(self.simulation_objects) + self.serialization = Serialization(self) self.register_schema(self.schema, class_info_list=[]) - def _cache_simulation_objects(self): - # load up all the simulation objects - return {} - - def make_lazy(self, table, uuid): - class_ = self.class_info(table).cls - if table not in self._lazy_classes: - self._lazy_classes[table] = make_lazy_class(class_) - return self._lazy_classes[table](uuid=uuid, - cls=class_, - storage=self) - def register_schema(self, schema, class_info_list, backend_metadata=None): # check validity @@ -140,10 +130,8 @@ def register_schema(self, schema, class_info_list, self.schema.update(schema) for info in class_info_list: self.class_info.add_class_info(info) + self.serialization.register_serialization(schema, self.class_info) - def _create_virtual_stores(self, store_categories): - # create virtual stores for simulation objects (e.g., .volume, etc) - pass def load(self, uuid, lazy=None): # get UUIDs and tables associated @@ -177,15 +165,22 @@ def save(self, obj): by_table = tools.dict_group_by(uuids, key_extract=get_table_name) for table in by_table: - storables_list = [self.serialize(o) + storables_list = [self.serialization.serialize[table](o) for o in by_table[table].values()] self.backend.add_to_table(table, storables_list) + def _cache_simulation_objects(self): + # load up all the simulation objects + return {} - def __getattr__(self, attr): - # override getattr to create iterators over the tables + def _create_virtual_stores(self, store_categories): + # create virtual stores for simulation objects (e.g., .volume, etc) pass + #def __getattr__(self, attr): + # override getattr to create iterators over the tables (stores) + # pass + ops_schema = { 'samples': [('trajectory', 'lazy'), ('ensemble', 'uuid'), ('replica', 'int'), @@ -211,20 +206,17 @@ def __getattr__(self, attr): deserializer=deserialize_sim), class_info_list=[ ClassInfo(table='samples', cls=paths.Sample, - serializer=serialize_data, - deserializer=deserialize_data), + serializer=None, deserializer=None), ClassInfo(table='sample_sets', cls=paths.SampleSet, - serializer=serialize_data, - deserializer=deserialize_data), + serializer=None, deserializer=None), ClassInfo(table='trajectories', cls=paths.Trajectory, - serializer=serialize_data, - deserializer=deserialize_data), + serializer=None, deserializer=None), ClassInfo(table='move_changes', cls=paths.MoveChange, - serializer=deserialize_data, - deserializer=deserialize_data), #TODO: may need custoom + serializer=None, deserializer=None), ClassInfo(table='steps', cls=paths.MCStep, - serializer=serialize_data, - deserializer=deserialize_data) + serializer=None, deserializer=None), + ClassInfo(table='details', cls=paths.Details, + serializer=None, deserializer=None) ] ) From 0fbf74ea1be32fdca3c879437e3aed78e6c01055 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Wed, 7 Feb 2018 01:13:10 +0100 Subject: [PATCH 081/464] Snapshots fully save with manual registration --- examples/toy_model_mistis/toy_mistis_2_flux.ipynb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/toy_model_mistis/toy_mistis_2_flux.ipynb b/examples/toy_model_mistis/toy_mistis_2_flux.ipynb index 4c6a90319..4bd03c2b9 100644 --- a/examples/toy_model_mistis/toy_mistis_2_flux.ipynb +++ b/examples/toy_model_mistis/toy_mistis_2_flux.ipynb @@ -185,7 +185,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", - "version": "2.7.13" + "version": "2.7.14" } }, "nbformat": 4, From 20acd6cfa456beaa73ae463e8f2f290aec963d04 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Wed, 7 Feb 2018 14:24:25 +0100 Subject: [PATCH 082/464] pep8 cleanup; start features --- .../engines/features/coordinates.py | 2 ++ .../engines/features/velocities.py | 1 + openpathsampling/new/serialization.py | 19 ++++++++++--------- openpathsampling/new/serialization_helpers.py | 19 +++++++++++++++++-- openpathsampling/new/sql_backend.py | 5 ++++- openpathsampling/new/storage.py | 10 ++++++---- 6 files changed, 40 insertions(+), 16 deletions(-) diff --git a/openpathsampling/engines/features/coordinates.py b/openpathsampling/engines/features/coordinates.py index ecda0cb1b..b36a315fb 100644 --- a/openpathsampling/engines/features/coordinates.py +++ b/openpathsampling/engines/features/coordinates.py @@ -10,6 +10,8 @@ dimensions = ['n_atoms', 'n_spatial'] +schema_entries = [('coordinates', 'ndarray.float64(n_atoms,n_spatial)')] + def netcdfplus_init(store): store.create_variable( diff --git a/openpathsampling/engines/features/velocities.py b/openpathsampling/engines/features/velocities.py index a812a1bc7..38d7eaa67 100644 --- a/openpathsampling/engines/features/velocities.py +++ b/openpathsampling/engines/features/velocities.py @@ -11,6 +11,7 @@ dimensions = ['n_atoms', 'n_spatial'] +schema_entries = [('velocities', 'ndarray.float64(n_atoms,n_spatial)')] def netcdfplus_init(store): diff --git a/openpathsampling/new/serialization.py b/openpathsampling/new/serialization.py index ea858118c..d84f98c4b 100644 --- a/openpathsampling/new/serialization.py +++ b/openpathsampling/new/serialization.py @@ -3,17 +3,19 @@ import serialization_helpers as serialization from tools import is_mappable + def make_lazy_class(cls_): # this is to mix-in inheritence - class LazyClass(LazyLoader, cls_): + class LazyLoader(GenericLazyLoader, cls_): pass - return LazyClass + return LazyLoader + -class LazyLoader(object): +class GenericLazyLoader(object): def __init__(self, uuid, class_, storage): self.__uuid__ = uuid self.storage = storage - self.class_= class_ + self.class_ = class_ self._loaded_object = None def load(self): @@ -30,19 +32,20 @@ def __getattr__(self, attr): def __iter__(self): loaded = self.load() if not hasattr(loaded, '__iter__'): - raise TypeError() # TODO: message - # TODO: load all objects in the list + raise TypeError() # TODO: message + # TODO: load all objects in the list? return loaded.__iter__ - # TODO: how to handle isinstance? each lazy-loading class needs a sub def repr(self): return ("") + class Serialization(object): builtin_types = ['int', 'float', 'str'] uuid_types = ['uuid', 'list_uuid', 'lazy'] # TODO: to_json here might not quite be correct; need to_bare_json? + def __init__(self, storage): self.storage = storage self.cache = self.storage.cache @@ -138,7 +141,6 @@ def serialize(self): return results def default_serialize(self, obj, table): - all_objects = [] dct = {'uuid': serialization.get_uuid(obj)} serializer_dict = self._ser_dict[table] for (attr, type_name) in self.schema[table]: @@ -163,4 +165,3 @@ def default_deserialize(self, uuid, dct, table): obj = cls.from_dict(dct) obj.__uuid__ = uuid return obj - diff --git a/openpathsampling/new/serialization_helpers.py b/openpathsampling/new/serialization_helpers.py index 5abe9bc1d..a6c5733f5 100644 --- a/openpathsampling/new/serialization_helpers.py +++ b/openpathsampling/new/serialization_helpers.py @@ -1,5 +1,4 @@ import importlib -import collections import ujson import networkx as nx import networkx.algorithms.dag as nx_dag @@ -11,25 +10,31 @@ # particular, it might be worth using a string representation of the UUID # whenever possible (dicts with string keys have a special fast-path) + def has_uuid(obj): return hasattr(obj, '__uuid__') + def get_uuid(obj): # TODO: I can come up with a better string encoding than this return str(obj.__uuid__) + def encode_uuid(uuid): return "UUID(" + str(uuid) + ")" + def decode_uuid(uuid_str): return long(uuid_str[5:-1]) + def is_uuid_string(obj): return ( isinstance(obj, (str, unicode)) and obj[:5] == 'UUID(' and obj[-1] == ')' ) + # Getting the list of UUIDs bsed on initial objets ################### # NOTE: this needs find everything, including if the iterable/mapping has a @@ -43,12 +48,14 @@ def get_all_uuids(initial_object): uuid_dict.update(get_all_uuids(obj)) return uuid_dict + def find_dependent_uuids(json_dct): dct = ujson.loads(json_dct) uuids = [decode_uuid(obj) for obj in flatten_all(dct) if is_uuid_string(obj)] return uuids + def get_all_uuid_strings(dct): all_uuids = [] for uuid in dct: @@ -56,6 +63,7 @@ def get_all_uuid_strings(dct): all_uuids += find_dependent_uuids(dct[uuid]) return all_uuids + # NOTE: this only need to find until the first UUID: iterables/mapping with # UUIDs aren't necessary here def replace_uuid(obj): @@ -70,16 +78,19 @@ def replace_uuid(obj): replacement = replace_type([replace_uuid(o) for o in obj]) return replacement + def to_dict_with_uuids(obj): dct = obj.to_dict() return replace_uuid(dct) + def to_bare_json(obj): replaced = replace_uuid(obj) return ujson.dumps(replaced) + def from_bare_json(json_str, existing_uuids): - pass #TODO + pass # TODO def to_json_obj(obj): @@ -88,12 +99,14 @@ def to_json_obj(obj): '__class__': obj.__class__.__name__}) return ujson.dumps(dct) + def import_class(mod, cls): # TODO: this needs some error-checking mod = importlib.import_module(mod) cls = getattr(mod, cls) return cls + def from_dict_with_uuids(dct, existing_uuids): for (key, value) in dct.items(): if is_uuid_string(value): @@ -103,6 +116,7 @@ def from_dict_with_uuids(dct, existing_uuids): dct[key] = value_obj return dct + def from_json_obj(json_str, existing_uuids): # NOTE: from_json only works with existing_uuids (DAG-ordering) dct = ujson.loads(json_str) @@ -110,6 +124,7 @@ def from_json_obj(json_str, existing_uuids): dct = from_dict_with_uuids(dct, existing_uuids) return cls.from_dict(dct) + def reconstruction_dag(uuid_json_dict, dag=None): dependent_uuids = {uuid: find_dependent_uuids(json_str) for (uuid, json_str) in uuid_json_dict.items()} diff --git a/openpathsampling/new/sql_backend.py b/openpathsampling/new/sql_backend.py index 09bcdaf21..82553adfd 100644 --- a/openpathsampling/new/sql_backend.py +++ b/openpathsampling/new/sql_backend.py @@ -8,6 +8,9 @@ from my_types import parse_ndarray_type +import logging +logger = logging.getLogger(__name__) + # dict to convert from OPS type descriptors to SQL types sql_type = { 'uuid': sql.String, @@ -228,7 +231,7 @@ def register_schema(self, schema, sql_schema_metadata=None): columns.append(sql.Column(col, col_type, **metadata)) try: - print table_name + logger.info("Add schema table" + str(table_name)) table = sql.Table(table_name, self.metadata, *columns) except sql.exc.InvalidRequestError: raise TypeError("Schema registration problem. Your schema " diff --git a/openpathsampling/new/storage.py b/openpathsampling/new/storage.py index 9a723a337..e3482fda4 100644 --- a/openpathsampling/new/storage.py +++ b/openpathsampling/new/storage.py @@ -12,6 +12,9 @@ from openpathsampling.netcdfplus import StorableObject from serialization import Serialization +import logging +logger = logging.getLogger(__name__) + """ A simple storage interface for simulation objects and data objects. @@ -139,10 +142,6 @@ def load(self, uuid, lazy=None): # if table has custom loader, use that pass - def serialize(self, obj): - class_info = self.class_info[obj.__class__] - return class_info.serializer(obj) - def save(self, obj): # check if obj is in DB (maybe this can be removed?) exists = self.backend.load_uuids_table(uuids=[get_uuid(obj)], @@ -167,7 +166,10 @@ def save(self, obj): for table in by_table: storables_list = [self.serialization.serialize[table](o) for o in by_table[table].values()] + logger.info("Storing {} UUIDs to table {}".\ + format(len(storables_list), table)) self.backend.add_to_table(table, storables_list) + logger.info("Storing complete") def _cache_simulation_objects(self): # load up all the simulation objects From efeb459724a0a446127d7b320b4d8570d683e3cd Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Wed, 7 Feb 2018 15:47:56 +0100 Subject: [PATCH 083/464] Can create schema from snapshot features --- openpathsampling/engines/features/base.py | 45 +++++++++++++++++++ .../engines/features/coordinates.py | 2 +- openpathsampling/engines/features/engine.py | 6 ++- openpathsampling/engines/features/statics.py | 5 +++ .../engines/features/velocities.py | 2 +- openpathsampling/new/storage.py | 1 + 6 files changed, 57 insertions(+), 4 deletions(-) diff --git a/openpathsampling/engines/features/base.py b/openpathsampling/engines/features/base.py index 2a81fb0c5..ffad0576d 100644 --- a/openpathsampling/engines/features/base.py +++ b/openpathsampling/engines/features/base.py @@ -145,6 +145,51 @@ def Function(self, name): ) +def _nested_schema_entries(schema_entries, lazies): + """Recursive algorithm to create all schema entries + """ + entries = [] + schema = {} + for (feat_name, feat_type) in schema_entries: + if not isinstance(feat_type, str): + loc_entr, loc_schema = _nested_schema_entries(feat_type, lazies) + schema.update(loc_schema) + schema.update({feat_name: loc_entr}) + feat_type = 'lazy' if feat_name in lazies else 'uuid' + entries.append((feat_name, feat_type)) + return entries, schema + + +def schema_from_entries(features, lazies): + """Build the schema dict from the features. + + Note that the resulting dict has two types of placeholders, compared to + the actual snapshot: the snapshot name will be changed by the storage, + and and dimensions in the type definitions will be replaced by values + from the SnapshotDescriptor. + + Parameters + ---------- + features : list of modules + the feature modules to be used + lazies : list of str + the feature names that have been marked as lazy + + Returns + ------- + dict + the schema dictionary, ready for replacement of dimensions by + SnapshotDescriptor + """ + # load entries from all features, recurse over them to find all + # subentries, and then return the dict tht comes from it all + schema_entries = sum([feat.schema_entries for feat in features + if hasattr(feat, 'schema_entries')], []) + entries, schema = _nested_schema_entries(schema_entries, lazies) + schema.update({'snapshot__PLACEHOLDER__': entries}) + return schema + + def attach_features(features, use_lazy_reversed=False): """ Attach features to a snapshot class diff --git a/openpathsampling/engines/features/coordinates.py b/openpathsampling/engines/features/coordinates.py index b36a315fb..d4c91ffc7 100644 --- a/openpathsampling/engines/features/coordinates.py +++ b/openpathsampling/engines/features/coordinates.py @@ -10,7 +10,7 @@ dimensions = ['n_atoms', 'n_spatial'] -schema_entries = [('coordinates', 'ndarray.float64(n_atoms,n_spatial)')] +schema_entries = [('coordinates', 'ndarray.float32({n_atoms},{n_spatial})')] def netcdfplus_init(store): diff --git a/openpathsampling/engines/features/engine.py b/openpathsampling/engines/features/engine.py index 6935c4845..b20ba8df3 100644 --- a/openpathsampling/engines/features/engine.py +++ b/openpathsampling/engines/features/engine.py @@ -2,11 +2,13 @@ Attributes ---------- engine : :class:`openpathsampling.DynamicsEngine` - referenec to the engine used to generate the snapshot + reference to the engine used to generate the snapshot """ variables = ['engine'] +schema_entries = [('engine', 'uuid')] + def netcdfplus_init(store): store.create_variable( @@ -23,4 +25,4 @@ def descriptor(snapshot): @property def topology(snapshot): - return snapshot.engine.topology \ No newline at end of file + return snapshot.engine.topology diff --git a/openpathsampling/engines/features/statics.py b/openpathsampling/engines/features/statics.py index 4cf2965b4..8cc7a257d 100644 --- a/openpathsampling/engines/features/statics.py +++ b/openpathsampling/engines/features/statics.py @@ -11,6 +11,11 @@ dimensions = ['n_atoms', 'n_spatial'] +schema_entries = [( + 'statics', [('coordinates', 'ndarray.float32({n_atoms},{n_spatial})'), + ('box_vectors', 'ndarray.float32({n_spatial},{n_spatial})')] +)] + def netcdfplus_init(store): static_store = StaticContainerStore() diff --git a/openpathsampling/engines/features/velocities.py b/openpathsampling/engines/features/velocities.py index 38d7eaa67..8e16830b6 100644 --- a/openpathsampling/engines/features/velocities.py +++ b/openpathsampling/engines/features/velocities.py @@ -11,7 +11,7 @@ dimensions = ['n_atoms', 'n_spatial'] -schema_entries = [('velocities', 'ndarray.float64(n_atoms,n_spatial)')] +schema_entries = [('velocities', 'ndarray.float32({n_atoms},{n_spatial})')] def netcdfplus_init(store): diff --git a/openpathsampling/new/storage.py b/openpathsampling/new/storage.py index e3482fda4..529c3d4f4 100644 --- a/openpathsampling/new/storage.py +++ b/openpathsampling/new/storage.py @@ -222,6 +222,7 @@ def _create_virtual_stores(self, store_categories): ] ) + class TableIterator(object): def __init__(self, storage, table): self.storage = storage From 72b12de2629730fed213a7c8d004ce1eb3755750 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Wed, 7 Feb 2018 17:58:32 +0100 Subject: [PATCH 084/464] allow one class to have multiple tables necessary for snapshots of different dimensions --- openpathsampling/new/ops_storage.py | 55 +++++++++++ openpathsampling/new/serialization.py | 1 + openpathsampling/new/storage.py | 129 +++++++++++++++----------- 3 files changed, 130 insertions(+), 55 deletions(-) create mode 100644 openpathsampling/new/ops_storage.py diff --git a/openpathsampling/new/ops_storage.py b/openpathsampling/new/ops_storage.py new file mode 100644 index 000000000..0560e6a4c --- /dev/null +++ b/openpathsampling/new/ops_storage.py @@ -0,0 +1,55 @@ +import storage +import sql_backend + +from serialization_helpers import to_json_obj as serialize_sim +from serialization_helpers import from_json_obj as deserialize_sim + +import openpathsampling as paths + +from storage import ClassInfo + +ops_schema = { + 'samples': [('trajectory', 'lazy'), ('ensemble', 'uuid'), + ('replica', 'int'), + # in my opinion, the next 3 should be removed + ('parent', 'lazy'), ('bias', 'float'), + ('mover', 'uuid')], + 'sample_sets': [('samples', 'list_uuid'), ('movepath', 'lazy')], + 'trajectories': [('snapshots', 'list_uuid')], + 'move_changes': [('mover', 'uuid'), ('details', 'lazy'), ('cls', 'str'), + ('subchanges', 'list_uuid'), ('samples', 'list_uuid'), + ('input_samples', 'list_uuid')], + 'steps': [('change', 'uuid'), ('active', 'uuid'), ('previous', 'lazy'), + ('simulation', 'uuid'), ('mccycle', 'int')], + 'details': [('json', 'json')], + 'simulation_objects': [('json', 'json_obj'), ('class_idx', 'int')] +} + +ops_schema_sql_metadata = {} + +class OPSClasInfoContact(storage.ClassInfoContainer): + def is_special(self, item): + return isinstance(item, paths.BaseSnapshot) + + def get_special(self, item): + lookup = (item.engine, item.__class__) + return self.lookup_to_info[lookup] + +ops_class_info = OPSClassInfoContainer( + default_info=ClassInfo('simulation_objects', cls=StorableObject, + serializer=serialize_sim, + deserializer=deserialize_sim), + class_info_list=[ + ClassInfo(table='samples', cls=paths.Sample) + ClassInfo(table='sample_sets', cls=paths.SampleSet) + ClassInfo(table='trajectories', cls=paths.Trajectory) + ClassInfo(table='move_changes', cls=paths.MoveChange) + ClassInfo(table='steps', cls=paths.MCStep) + ClassInfo(table='details', cls=paths.Details) + ] +) + + +class OPSStorage(storage.GeneralStorage): + pass + diff --git a/openpathsampling/new/serialization.py b/openpathsampling/new/serialization.py index d84f98c4b..d238d5286 100644 --- a/openpathsampling/new/serialization.py +++ b/openpathsampling/new/serialization.py @@ -96,6 +96,7 @@ def attribute_serializer(self, type_name): if type_name in self.attribute_serializers: return self.attribute_serializers[type_name] if ndarray_re.match(type_name): + # TODO: cast to correct dtype return lambda arr: arr.tostring() else: raise TypeError("Unknown type for serialization: " + type_name) diff --git a/openpathsampling/new/storage.py b/openpathsampling/new/storage.py index 529c3d4f4..c72659844 100644 --- a/openpathsampling/new/storage.py +++ b/openpathsampling/new/storage.py @@ -39,20 +39,36 @@ 'tables': [('name', 'str'), ('idx', 'int')] } -ClassInfo = collections.namedtuple( - 'ClassInfo', - ['table', 'cls', 'serializer', 'deserializer'] -) +class ClassInfo(object): + # I so wanted this to be a namedtuple, but it needs more attention + """ + Parameters + ---------- + table : str + the table name for this object type + cls : class + the class for this object type (used in the default deserializer) + serializer : callable + serializer for this object type (None gives the default serializer) + deserializer : callable + deserializer for this object type (None gives the default + deserializer) + lookup_result : any + the result when ClassInfoContainer looks up objects in this table + """ + def __init__(self, table, cls, serializer=None, deserializer=None, + lookup_result=None): + self.table = table + self.cls = cls + self.serializer = serializer + self.deserializer = deserializer + self.lookup_result = lookup_result - -#TODO: should this become a collections.Sequence? class ClassInfoContainer(object): def __init__(self, default_info, class_info_list=None): class_info_list = tools.none_to_default(class_info_list, []) - self.class_to_info = {} + self.lookup_to_info = {} self.table_to_info = {} - self.class_to_table = {} - self.table_to_class = {} self.class_info_list = [] self.default_info = default_info self.add_class_info(default_info) @@ -62,19 +78,25 @@ def __init__(self, default_info, class_info_list=None): def add_class_info(self, info_node): # check that we're not in any existing self.class_info_list.append(info_node) - self.class_to_info.update({info_node.cls: info_node}) + self.lookup_to_info.update({info_node.lookup_result: info_node}) self.table_to_info.update({info_node.table: info_node}) - self.class_to_table.update({info_node.cls: info_node.table}) - self.table_to_class.update({info_node.table: info_node.cls}) + + def is_special(self, item): + return False + + def get_special(self, item): + return NotImplementedError("No special types implemented") def __getitem__(self, item): if tools.is_string(item): return self.table_to_info[item] + elif self.is_special(item): + return self.get_special(item) else: try: - return self.class_to_info[item] + return self.lookup_to_info[item.__class__] except KeyError as e: - if issubclass(item, self.default_info.cls): + if isinstance(item, self.default_info.cls): return self.default_info else: raise e @@ -126,6 +148,8 @@ def __init__(self, backend, schema, class_info, fallbacks=None): self.serialization = Serialization(self) self.register_schema(self.schema, class_info_list=[]) + self.n_snapshot_types = 0 # TODO: OPS-SPECIFIC! + def register_schema(self, schema, class_info_list, backend_metadata=None): # check validity @@ -140,7 +164,38 @@ def load(self, uuid, lazy=None): # get UUIDs and tables associated # if lazy, return the lazy object # if table has custom loader, use that - pass + pass + + # OPS-specific stuff on registering snapshots + def should_register(self, cls_): + return issubclass(cls_, paths.engines.BaseSnapshot) + + def register_class_from_instance(self, obj): + # we assume all on-the-fly registrations are snapshots + table_name = "snapshot" + str(self.n_snapshot_types) + schema[table_name] = obj._schema['snapshot'] # after replacement + # loop catching nested structures + class_info_list = [ + ClassInfo(cls=obj.__class__, table=table_name, + serializer=None, deserializer=None) + for table_name in schema + ] + self.register_schema(schema, class_info_list) + + # back to generic + def register_unregistered(self, obj_list): + # TODO: snapshots and related are connected to engine, not class + classes = {} + registered = [] + for obj in obj_list: + cls_ = obj.__class__ + if cls_ not in classes and self.should_register(cls_): + logger.info("Registering " + str(cls_) + " for storage") + self.register_class_from_instance(obj) + registered.append(cls_) + classes |= {obj.__class__} + return registered + def save(self, obj): # check if obj is in DB (maybe this can be removed?) @@ -159,10 +214,13 @@ def save(self, obj): # group by table, then save appropriately # by_table; convert a dict of {uuid: obj} to {table: {uuid: obj}} get_table_name = lambda uuid, obj_: \ - self.class_info[obj_.__class__].table + self.class_info[obj_].table by_table = tools.dict_group_by(uuids, key_extract=get_table_name) + # check default table for things to register; register them + + for table in by_table: storables_list = [self.serialization.serialize[table](o) for o in by_table[table].values()] @@ -183,45 +241,6 @@ def _create_virtual_stores(self, store_categories): # override getattr to create iterators over the tables (stores) # pass -ops_schema = { - 'samples': [('trajectory', 'lazy'), ('ensemble', 'uuid'), - ('replica', 'int'), - # in my opinion, the next 3 should be removed - ('parent', 'lazy'), ('bias', 'float'), - ('mover', 'uuid')], - 'sample_sets': [('samples', 'list_uuid'), ('movepath', 'lazy')], - 'trajectories': [('snapshots', 'list_uuid')], - 'move_changes': [('mover', 'uuid'), ('details', 'lazy'), ('cls', 'str'), - ('subchanges', 'list_uuid'), ('samples', 'list_uuid'), - ('input_samples', 'list_uuid')], - 'steps': [('change', 'uuid'), ('active', 'uuid'), ('previous', 'lazy'), - ('simulation', 'uuid'), ('mccycle', 'int')], - 'details': [('json', 'json')], - 'simulation_objects': [('json', 'json_obj'), ('class_idx', 'int')] -} - -ops_schema_sql_metadata = {} - -ops_class_info = ClassInfoContainer( - default_info=ClassInfo('simulation_objects', cls=StorableObject, - serializer=serialize_sim, - deserializer=deserialize_sim), - class_info_list=[ - ClassInfo(table='samples', cls=paths.Sample, - serializer=None, deserializer=None), - ClassInfo(table='sample_sets', cls=paths.SampleSet, - serializer=None, deserializer=None), - ClassInfo(table='trajectories', cls=paths.Trajectory, - serializer=None, deserializer=None), - ClassInfo(table='move_changes', cls=paths.MoveChange, - serializer=None, deserializer=None), - ClassInfo(table='steps', cls=paths.MCStep, - serializer=None, deserializer=None), - ClassInfo(table='details', cls=paths.Details, - serializer=None, deserializer=None) - ] -) - class TableIterator(object): def __init__(self, storage, table): From 6c41c693451ffddccc47700aaead682f698d1319 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Wed, 7 Feb 2018 21:23:22 +0100 Subject: [PATCH 085/464] most of the way to snapshot registration --- openpathsampling/engines/features/base.py | 46 +------------- openpathsampling/new/ops_storage.py | 13 ++-- openpathsampling/new/snapshots.py | 75 +++++++++++++++++++++++ openpathsampling/new/storage.py | 56 ++++++++++------- 4 files changed, 117 insertions(+), 73 deletions(-) create mode 100644 openpathsampling/new/snapshots.py diff --git a/openpathsampling/engines/features/base.py b/openpathsampling/engines/features/base.py index ffad0576d..8f6c9fb8b 100644 --- a/openpathsampling/engines/features/base.py +++ b/openpathsampling/engines/features/base.py @@ -145,51 +145,6 @@ def Function(self, name): ) -def _nested_schema_entries(schema_entries, lazies): - """Recursive algorithm to create all schema entries - """ - entries = [] - schema = {} - for (feat_name, feat_type) in schema_entries: - if not isinstance(feat_type, str): - loc_entr, loc_schema = _nested_schema_entries(feat_type, lazies) - schema.update(loc_schema) - schema.update({feat_name: loc_entr}) - feat_type = 'lazy' if feat_name in lazies else 'uuid' - entries.append((feat_name, feat_type)) - return entries, schema - - -def schema_from_entries(features, lazies): - """Build the schema dict from the features. - - Note that the resulting dict has two types of placeholders, compared to - the actual snapshot: the snapshot name will be changed by the storage, - and and dimensions in the type definitions will be replaced by values - from the SnapshotDescriptor. - - Parameters - ---------- - features : list of modules - the feature modules to be used - lazies : list of str - the feature names that have been marked as lazy - - Returns - ------- - dict - the schema dictionary, ready for replacement of dimensions by - SnapshotDescriptor - """ - # load entries from all features, recurse over them to find all - # subentries, and then return the dict tht comes from it all - schema_entries = sum([feat.schema_entries for feat in features - if hasattr(feat, 'schema_entries')], []) - entries, schema = _nested_schema_entries(schema_entries, lazies) - schema.update({'snapshot__PLACEHOLDER__': entries}) - return schema - - def attach_features(features, use_lazy_reversed=False): """ Attach features to a snapshot class @@ -680,6 +635,7 @@ def _decorator(cls): # register (new) __features__ with the class as a namedtuple cls.__features__ = FeatureTuple(**__features__) + return cls return _decorator diff --git a/openpathsampling/new/ops_storage.py b/openpathsampling/new/ops_storage.py index 0560e6a4c..c60fff4eb 100644 --- a/openpathsampling/new/ops_storage.py +++ b/openpathsampling/new/ops_storage.py @@ -27,13 +27,13 @@ ops_schema_sql_metadata = {} -class OPSClasInfoContact(storage.ClassInfoContainer): +class OPSClassInfoContact(storage.ClassInfoContainer): def is_special(self, item): return isinstance(item, paths.BaseSnapshot) - def get_special(self, item): - lookup = (item.engine, item.__class__) - return self.lookup_to_info[lookup] + def special_lookup(self, item): + if isinstance(item, paths.BaseSnapshot): + return (item.engine, item.__class__) ops_class_info = OPSClassInfoContainer( default_info=ClassInfo('simulation_objects', cls=StorableObject, @@ -51,5 +51,8 @@ def get_special(self, item): class OPSStorage(storage.GeneralStorage): - pass + def __init__(self, backend, schema, class_info, fallbacks=None): + super(OPSStorage, self).__init__(backend, schema, class_info, + fallbacks) + self.n_snapshot_types = 0 diff --git a/openpathsampling/new/snapshots.py b/openpathsampling/new/snapshots.py new file mode 100644 index 000000000..f4ad41587 --- /dev/null +++ b/openpathsampling/new/snapshots.py @@ -0,0 +1,75 @@ +from storage import ClassInfo + +def _nested_schema_entries(schema_entries, lazies): + """Recursive algorithm to create all schema entries + """ + entries = [] + schema = {} + for (feat_name, feat_type) in schema_entries: + if not isinstance(feat_type, str): + loc_entr, loc_schema = _nested_schema_entries(feat_type, lazies) + schema.update(loc_schema) + schema.update({feat_name: loc_entr}) + feat_type = 'lazy' if feat_name in lazies else 'uuid' + entries.append((feat_name, feat_type)) + return entries, schema + + +def schema_from_entries(features, lazies): + """Build the schema dict from the features. + + Note that the resulting dict has two types of placeholders, compared to + the actual snapshot: the snapshot name will be changed by the storage, + and and dimensions in the type definitions will be replaced by values + from the SnapshotDescriptor. + + Parameters + ---------- + features : list of modules + the feature modules to be used + lazies : list of str + the feature names that have been marked as lazy + + Returns + ------- + dict + the schema dictionary, ready for replacement of dimensions by + SnapshotDescriptor + """ + # load entries from all features, recurse over them to find all + # subentries, and then return the dict tht comes from it all + schema_entries = sum([feat.schema_entries for feat in features + if hasattr(feat, 'schema_entries')], []) + entries, schema = _nested_schema_entries(schema_entries, lazies) + schema.update({'snapshot': entries}) + return schema + + +def schema_for_snapshot(snapshot): + return schema_from_entries(features=snapshot.__features__.classes, + lazies=snapshot.__features__.lazy) + + +def replace_schema_dimensions(schema, descriptor): + descriptor_dict = {desc[0]: desc[1] for desc in descriptor + if desc[0] != 'class'} + for (table, entries) in schema.items(): + schema[table] = [ + (attr, type_name.format(**descriptor_dict)) + for (attr, type_name) in entries + ] + return schema + + +def snapshot_registration_info(snapshot_instance, snapshot_number): + schema = schema_for_snapshot(snapshot_instance) + real_table = {table: table + str(snapshot_number) for table in schema} + real_schema = {real_table[table]: entries + for (table, entries) in schema.items()} + snapshot_info = ClassInfo(table=real_table['snapshot'], + cls=snapshot_instance.__class__) + extra_infos = [ClassInfo(table=real_table[table], + cls=getattr(snapshot_instance, table)) + for table in schema if table != 'snapshot'] + class_info_list = [snapshot_info] + extra_infos + return real_schema, class_info_list diff --git a/openpathsampling/new/storage.py b/openpathsampling/new/storage.py index c72659844..23ecae951 100644 --- a/openpathsampling/new/storage.py +++ b/openpathsampling/new/storage.py @@ -71,6 +71,7 @@ def __init__(self, default_info, class_info_list=None): self.table_to_info = {} self.class_info_list = [] self.default_info = default_info + self.missing_table = ClassInfo(table="__missing__", cls=None) self.add_class_info(default_info) for info in class_info_list: self.add_class_info(info) @@ -84,17 +85,25 @@ def add_class_info(self, info_node): def is_special(self, item): return False - def get_special(self, item): + def special_lookup(self, item): return NotImplementedError("No special types implemented") + def get_special(self, item): + lookup = self.special_lookup(item) + try: + self.lookup_to_info[lookup] + except KeyError: + return self.missing_table + def __getitem__(self, item): if tools.is_string(item): return self.table_to_info[item] elif self.is_special(item): return self.get_special(item) else: + lookup = item.__class__ # default lookup try: - return self.lookup_to_info[item.__class__] + return self.lookup_to_info[lookup] except KeyError as e: if isinstance(item, self.default_info.cls): return self.default_info @@ -148,8 +157,6 @@ def __init__(self, backend, schema, class_info, fallbacks=None): self.serialization = Serialization(self) self.register_schema(self.schema, class_info_list=[]) - self.n_snapshot_types = 0 # TODO: OPS-SPECIFIC! - def register_schema(self, schema, class_info_list, backend_metadata=None): # check validity @@ -166,24 +173,19 @@ def load(self, uuid, lazy=None): # if table has custom loader, use that pass - # OPS-specific stuff on registering snapshots - def should_register(self, cls_): - return issubclass(cls_, paths.engines.BaseSnapshot) - - def register_class_from_instance(self, obj): - # we assume all on-the-fly registrations are snapshots - table_name = "snapshot" + str(self.n_snapshot_types) - schema[table_name] = obj._schema['snapshot'] # after replacement - # loop catching nested structures - class_info_list = [ - ClassInfo(cls=obj.__class__, table=table_name, - serializer=None, deserializer=None) - for table_name in schema - ] - self.register_schema(schema, class_info_list) - - # back to generic + def register_missing_from_instance(self, obj): + return NotImplementedError("Registration of missing classes") + def register_unregistered(self, obj_list): + """ + + Notes + ----- + This is only expected to be used on classes that the + ClassInfoContainer identified as "missing" (i.e., special cases). + Normally, class registration should be through the + :meth:`.register_schema` method. + """ # TODO: snapshots and related are connected to engine, not class classes = {} registered = [] @@ -191,7 +193,7 @@ def register_unregistered(self, obj_list): cls_ = obj.__class__ if cls_ not in classes and self.should_register(cls_): logger.info("Registering " + str(cls_) + " for storage") - self.register_class_from_instance(obj) + self.register_missing_from_instance(obj) registered.append(cls_) classes |= {obj.__class__} return registered @@ -219,7 +221,15 @@ def save(self, obj): by_table = tools.dict_group_by(uuids, key_extract=get_table_name) # check default table for things to register; register them - + if '__missing__' in by_table: + # __missing__ is a special result returned by the + # ClassInfoContainer if this is object is expected to have a + # table, but the table doesn't exist (e.g., for dynamically + # added tables) + missing = by_table.pop('__missing__') + self.register_missing_tables_for_objects(missing) + missing_by_table = tools.dict_group_by(missing, get_table_name) + by_table.update(missing_by_table) for table in by_table: storables_list = [self.serialization.serialize[table](o) From b2ddfdae16083f7462e728ed0be77203f1fdc7f1 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 8 Feb 2018 09:59:01 +0100 Subject: [PATCH 086/464] automatic storagw registration of toy snapshots --- openpathsampling/new/ops_storage.py | 30 +++++++++--- openpathsampling/new/snapshots.py | 16 ++++-- openpathsampling/new/storage.py | 75 ++++++++++++++++++----------- 3 files changed, 80 insertions(+), 41 deletions(-) diff --git a/openpathsampling/new/ops_storage.py b/openpathsampling/new/ops_storage.py index c60fff4eb..a351bbb03 100644 --- a/openpathsampling/new/ops_storage.py +++ b/openpathsampling/new/ops_storage.py @@ -5,9 +5,12 @@ from serialization_helpers import from_json_obj as deserialize_sim import openpathsampling as paths +from openpathsampling.netcdfplus import StorableObject from storage import ClassInfo +import snapshots + ops_schema = { 'samples': [('trajectory', 'lazy'), ('ensemble', 'uuid'), ('replica', 'int'), @@ -27,11 +30,11 @@ ops_schema_sql_metadata = {} -class OPSClassInfoContact(storage.ClassInfoContainer): +class OPSClassInfoContainer(storage.ClassInfoContainer): def is_special(self, item): return isinstance(item, paths.BaseSnapshot) - def special_lookup(self, item): + def special_lookup_key(self, item): if isinstance(item, paths.BaseSnapshot): return (item.engine, item.__class__) @@ -40,12 +43,12 @@ def special_lookup(self, item): serializer=serialize_sim, deserializer=deserialize_sim), class_info_list=[ - ClassInfo(table='samples', cls=paths.Sample) - ClassInfo(table='sample_sets', cls=paths.SampleSet) - ClassInfo(table='trajectories', cls=paths.Trajectory) - ClassInfo(table='move_changes', cls=paths.MoveChange) - ClassInfo(table='steps', cls=paths.MCStep) - ClassInfo(table='details', cls=paths.Details) + ClassInfo(table='samples', cls=paths.Sample), + ClassInfo(table='sample_sets', cls=paths.SampleSet), + ClassInfo(table='trajectories', cls=paths.Trajectory), + ClassInfo(table='move_changes', cls=paths.MoveChange), + ClassInfo(table='steps', cls=paths.MCStep), + ClassInfo(table='details', cls=paths.Details), ] ) @@ -56,3 +59,14 @@ def __init__(self, backend, schema, class_info, fallbacks=None): fallbacks) self.n_snapshot_types = 0 + def register_from_instance(self, lookup, obj): + if isinstance(obj, paths.BaseSnapshot): + schema, class_info_list = snapshots.snapshot_registration_info( + obj, self.n_snapshot_types + ) + schema = snapshots.replace_schema_dimensions( + schema, obj.engine.descriptor + ) + self.register_schema(schema, class_info_list) + self.n_snapshot_types += 1 + diff --git a/openpathsampling/new/snapshots.py b/openpathsampling/new/snapshots.py index f4ad41587..82907707b 100644 --- a/openpathsampling/new/snapshots.py +++ b/openpathsampling/new/snapshots.py @@ -66,10 +66,16 @@ def snapshot_registration_info(snapshot_instance, snapshot_number): real_table = {table: table + str(snapshot_number) for table in schema} real_schema = {real_table[table]: entries for (table, entries) in schema.items()} + engine = snapshot_instance.engine snapshot_info = ClassInfo(table=real_table['snapshot'], - cls=snapshot_instance.__class__) - extra_infos = [ClassInfo(table=real_table[table], - cls=getattr(snapshot_instance, table)) - for table in schema if table != 'snapshot'] - class_info_list = [snapshot_info] + extra_infos + cls=snapshot_instance.__class__, + lookup_result=(engine, + snapshot_instance.__class__)) + attr_infos = [] + for table in [tbl for tbl in schema.keys() if tbl != 'snapshot']: + obj = getattr(snapshot_instance, table) + attr_infos.append(ClassInfo(table=real_table, + cls=obj.__class__, + lookup_result=(engine, obj.__class__))) + class_info_list = [snapshot_info] + attr_infos return real_schema, class_info_list diff --git a/openpathsampling/new/storage.py b/openpathsampling/new/storage.py index 23ecae951..ac6e550f0 100644 --- a/openpathsampling/new/storage.py +++ b/openpathsampling/new/storage.py @@ -65,6 +65,26 @@ def __init__(self, table, cls, serializer=None, deserializer=None, self.lookup_result = lookup_result class ClassInfoContainer(object): + """Connect table to serialization information. + + This is the primary location for information connecting application + objects (i.e., OPS) to the serialization mechanisms. In particular, the + __getattr__ in this can take either an instance or a table name, and in + either case links it to the ClassInfo. This lets us link an object + instance to the name of the table where it should be stored, and to + link the table to the serialization methods. + + Notes + ----- + Linking instances to tables can require special treatment. The default + behavior is to use the class of the object to identify the table, and + this works for most cases. However, sometimes a class can map to more + than one table, and therefore is not a unique key. For example, a single + class might be used to represent data with different dimensions, and + therefore require different tables (e.g, coordinates for different + systems). In such cases, the ClassInfoContainer needs to be subclassed + with specialized information. + """ def __init__(self, default_info, class_info_list=None): class_info_list = tools.none_to_default(class_info_list, []) self.lookup_to_info = {} @@ -79,19 +99,29 @@ def __init__(self, default_info, class_info_list=None): def add_class_info(self, info_node): # check that we're not in any existing self.class_info_list.append(info_node) + # TODO: is it possible to generalize the special cases (use the type + # of the expected return to identify the function to call -- won't + # be completely general, but may simplify some) self.lookup_to_info.update({info_node.lookup_result: info_node}) self.table_to_info.update({info_node.table: info_node}) + def lookup_key(self, item): + if not self.is_special(item): + lookup_key = item.__class__ + else: + lookup_key = self.special_lookup_key(item) + return lookup_key + def is_special(self, item): return False - def special_lookup(self, item): + def special_lookup_key(self, item): return NotImplementedError("No special types implemented") def get_special(self, item): - lookup = self.special_lookup(item) + lookup = self.special_lookup_key(item) try: - self.lookup_to_info[lookup] + return self.lookup_to_info[lookup] except KeyError: return self.missing_table @@ -101,7 +131,7 @@ def __getitem__(self, item): elif self.is_special(item): return self.get_special(item) else: - lookup = item.__class__ # default lookup + lookup = self.lookup_key(item) try: return self.lookup_to_info[lookup] except KeyError as e: @@ -173,31 +203,16 @@ def load(self, uuid, lazy=None): # if table has custom loader, use that pass - def register_missing_from_instance(self, obj): - return NotImplementedError("Registration of missing classes") - - def register_unregistered(self, obj_list): - """ - - Notes - ----- - This is only expected to be used on classes that the - ClassInfoContainer identified as "missing" (i.e., special cases). - Normally, class registration should be through the - :meth:`.register_schema` method. - """ - # TODO: snapshots and related are connected to engine, not class - classes = {} - registered = [] - for obj in obj_list: - cls_ = obj.__class__ - if cls_ not in classes and self.should_register(cls_): - logger.info("Registering " + str(cls_) + " for storage") - self.register_missing_from_instance(obj) - registered.append(cls_) - classes |= {obj.__class__} - return registered + def register_from_instance(self, lookup, obj): + raise NotImplementedError("No way to register from an instance") + def register_missing_tables_for_objects(self, uuid_obj_dict): + # mistting items are handled by the special_lookup + lookup_examples = {} + for obj in uuid_obj_dict.values(): + lookup = self.class_info.lookup_key(obj) + if lookup not in lookup_examples: + self.register_from_instance(lookup, obj) def save(self, obj): # check if obj is in DB (maybe this can be removed?) @@ -227,10 +242,14 @@ def save(self, obj): # table, but the table doesn't exist (e.g., for dynamically # added tables) missing = by_table.pop('__missing__') + print by_table.keys() self.register_missing_tables_for_objects(missing) + print missing missing_by_table = tools.dict_group_by(missing, get_table_name) + print missing_by_table by_table.update(missing_by_table) + for table in by_table: storables_list = [self.serialization.serialize[table](o) for o in by_table[table].values()] From d82af4cc4da79c99b3bd9ac991c827e641bb12b5 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 8 Feb 2018 11:36:59 +0100 Subject: [PATCH 087/464] updates to keep the play notebooks working notebooks not in repo are will become tests later; this ensures that they keep working --- openpathsampling/new/ops_storage.py | 14 ++++++++++++++ openpathsampling/new/sql_backend.py | 8 ++------ openpathsampling/new/storage.py | 11 +++++++---- 3 files changed, 23 insertions(+), 10 deletions(-) diff --git a/openpathsampling/new/ops_storage.py b/openpathsampling/new/ops_storage.py index a351bbb03..be79ba07f 100644 --- a/openpathsampling/new/ops_storage.py +++ b/openpathsampling/new/ops_storage.py @@ -55,10 +55,24 @@ def special_lookup_key(self, item): class OPSStorage(storage.GeneralStorage): def __init__(self, backend, schema, class_info, fallbacks=None): + # TODO: this will change to match the current notation super(OPSStorage, self).__init__(backend, schema, class_info, fallbacks) self.n_snapshot_types = 0 + @classmethod + def from_backend(cls, backend, schema=None, class_info=None, + fallbacks=None): + obj = cls.__new__(cls) + if schema is None: + scheme = ops_schema + if class_info is None: + class_info = ops_class_info + super(OPSStorage, obj).__init__(backend, schema, class_info, + fallbacks) + obj.n_snapshot_types = 0 + return obj + def register_from_instance(self, lookup, obj): if isinstance(obj, paths.BaseSnapshot): schema, class_info_list = snapshots.snapshot_registration_info( diff --git a/openpathsampling/new/sql_backend.py b/openpathsampling/new/sql_backend.py index 82553adfd..d05d69482 100644 --- a/openpathsampling/new/sql_backend.py +++ b/openpathsampling/new/sql_backend.py @@ -306,18 +306,14 @@ def load_uuids_table(self, uuids, ignore_missing=False): def load_table_data(self, uuids, lazy=True): # this pulls out a table the information for the relevant UUIDs uuid_table_row = self.load_uuids_table(uuids) - by_table_number = group_by(uuid_table_row, 1) + by_table_number = tools.group_by_index(uuid_table_row, 1) by_table_name = {self.number_to_table[k]: v for (k, v) in by_table_number.items()} loaded_results = [] - lazy_results = {} - if lazy: - lazy_results = {table: by_table_name.pop(table) - for table in self.lazy_tables} for table in by_table_name: idxs = [val[2] for val in by_table_name[table]] loaded_results += self._load_from_table(table, idxs) loaded_uuids = [res.uuid for res in loaded_results] assert set(uuids) == set(loaded_uuids) # sanity check - return (loaded_results, lazy_results) + return loaded_results diff --git a/openpathsampling/new/storage.py b/openpathsampling/new/storage.py index ac6e550f0..9ad286af4 100644 --- a/openpathsampling/new/storage.py +++ b/openpathsampling/new/storage.py @@ -236,20 +236,23 @@ def save(self, obj): by_table = tools.dict_group_by(uuids, key_extract=get_table_name) # check default table for things to register; register them + # TODO: convert to while? if '__missing__' in by_table: # __missing__ is a special result returned by the # ClassInfoContainer if this is object is expected to have a # table, but the table doesn't exist (e.g., for dynamically # added tables) missing = by_table.pop('__missing__') - print by_table.keys() + logger.info("Attempting to register for {} missing objects".\ + format(len(missing))) self.register_missing_tables_for_objects(missing) - print missing missing_by_table = tools.dict_group_by(missing, get_table_name) - print missing_by_table + logger.info("Registered {} new tables: {}".\ + format(len(missing_by_table), + str(list(missing_by_table.keys())))) by_table.update(missing_by_table) - + # this is the actual serialization for table in by_table: storables_list = [self.serialization.serialize[table](o) for o in by_table[table].values()] From 7bd99844afa733541e98d80cbffdded03b28996f Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 8 Feb 2018 14:16:51 +0100 Subject: [PATCH 088/464] fix pytest; check persistence in db --- openpathsampling/new/sql_backend.py | 86 ++++++++++++++++++++---- openpathsampling/new/storage.py | 24 +++++-- openpathsampling/new/test_sql_backend.py | 26 ++++--- 3 files changed, 106 insertions(+), 30 deletions(-) diff --git a/openpathsampling/new/sql_backend.py b/openpathsampling/new/sql_backend.py index d05d69482..67b21e948 100644 --- a/openpathsampling/new/sql_backend.py +++ b/openpathsampling/new/sql_backend.py @@ -31,6 +31,9 @@ } # TODO: test this, and then see if I can refactor existing code to use it +# NOTE: looks like the results have to be loaded into memory before this +# function ends (otherwise the DB connection closes and errors .. so make a +# list of them at the end, only use when we want the whole list? def sql_db_execute(engine, statements, execmany_dict=None): """Convenience for interacting with the database.""" if not isinstance(statements, list): @@ -41,7 +44,7 @@ def sql_db_execute(engine, statements, execmany_dict=None): with engine.connect() as conn: results = [conn.execute(statement, execmany_dict) for statement in statements] - if listify: + if listified: results = results[0] return results @@ -50,15 +53,29 @@ class SQLStorageBackend(object): Uses SQLAlchemy; could easily duck-type an object that implements the necessary methods for other backends. + + Parameters + ---------- + filename : str + name of the sqlite file or connection URI for a service-based + database + mode : 'r', 'w', or 'a' + "file mode", as with files -- this is a little strange for + databases, but keeps the interface consistent + sql_dialect : str + name of the SQL dialect to use; default is sqlite + echo : bool + whether the engine to echo SQL commands to stdout (useful for + debugging) """ def __init__(self, filename, mode='r', sql_dialect=None, echo=False): self.filename = filename sql_dialect = tools.none_to_default(sql_dialect, 'sqlite') self.mode = mode + self.debug = False # override later if mode == 'r' or 'a' - self._metadata = sql.MetaData() - self.schema = {} # TODO: how to load these correctly? + self.schema = {} self.table_to_number = {} self.number_to_table = {} @@ -69,13 +86,43 @@ def __init__(self, filename, mode='r', sql_dialect=None, echo=False): # we prevent writes by disallowing write method in read mode; # for everything else; just connect to the database connection_uri = self.filename_from_dialect(filename, sql_dialect) - self.engine = sql.create_engine(connection_uri, echo=echo) - schema_table = sql.Table('schema', self.metadata, - sql.Column('table', sql.String), - sql.Column('schema', sql.String)) - self.metadata.create_all(self.engine) - if self.mode == "w": + self.engine = sql.create_engine(connection_uri, + echo=echo) + self._metadata = sql.MetaData(bind=self.engine) + self.initialize_with_mode(self.mode) + + def initialize_with_mode(self, mode): + if mode == "w": + # TODO: drop tables + schema_table = sql.Table('schema', self.metadata, + sql.Column('table', sql.String), + sql.Column('schema', sql.String)) + metadata_table = sql.Table('metadata', self.metadata, + sql.Column('key', sql.String), + sql.Column('value', sql.String)) + self.metadata.create_all(self.engine) self.register_schema(universal_schema) + elif mode == "r" or mode == "a": + self.metadata.reflect(self.engine) + self.schema = self.database_schema() + self.table_to_number, self.number_to_table = \ + self.internal_tables_from_db() + + @classmethod + def from_engine(cls, engine, mode='r'): + obj = cls.__new__(cls) + self._metadata = sql.MetaData() + self.schema = {} + self.table_to_number = {} + self.number_to_table = {} + self.engine = engine + self.mode = mode + self.initialize_with_mode(self.mode) + + + def close(self): + # is this necessary? + self.engine.dispose() @property def metadata(self): @@ -303,10 +350,10 @@ def load_uuids_table(self, uuids, ignore_missing=False): return results - def load_table_data(self, uuids, lazy=True): + def load_table_data(self, uuid_table_rows): # this pulls out a table the information for the relevant UUIDs - uuid_table_row = self.load_uuids_table(uuids) - by_table_number = tools.group_by_index(uuid_table_row, 1) + uuid_table_rows = list(uuid_table_rows) # iterator to list + by_table_number = tools.group_by_index(uuid_table_rows, 1) by_table_name = {self.number_to_table[k]: v for (k, v) in by_table_number.items()} loaded_results = [] @@ -314,6 +361,17 @@ def load_table_data(self, uuids, lazy=True): idxs = [val[2] for val in by_table_name[table]] loaded_results += self._load_from_table(table, idxs) - loaded_uuids = [res.uuid for res in loaded_results] - assert set(uuids) == set(loaded_uuids) # sanity check + if self.debug: + loaded_uuids = [res.uuid for res in loaded_results] + input_uuids = [row.uuid for row in uuid_table_rows] + assert set(input_uuids) == set(loaded_uuids) # sanity check return loaded_results + + def database_schema(self): + schema_table = self.metadata.tables['schema'] + sel = schema_table.select() + with self.engine.connect() as conn: + schema_rows = list(conn.execute(schema_table.select())) + schema = {r.table: map(tuple, json.loads(r.schema)) + for r in schema_rows} + return schema diff --git a/openpathsampling/new/storage.py b/openpathsampling/new/storage.py index 9ad286af4..4289c0c84 100644 --- a/openpathsampling/new/storage.py +++ b/openpathsampling/new/storage.py @@ -178,15 +178,25 @@ def __iter__(self): class GeneralStorage(object): - def __init__(self, backend, schema, class_info, fallbacks=None): + def __init__(self, backend, class_info, schema=None, fallbacks=None): self.backend = backend self.schema = schema self.class_info = class_info + # TODO: implement fallbacks + self.fallbacks = tools.none_to_default(fallbacks, []) self.simulation_objects = self._cache_simulation_objects() self.cache = MixedCache(self.simulation_objects) self.serialization = Serialization(self) + if schema is None: + schema = backend.schema self.register_schema(self.schema, class_info_list=[]) + def close(self): + # TODO: should sync on close + self.backend.close() + for fallback in self.fallbacks: + fallback.close() + def register_schema(self, schema, class_info_list, backend_metadata=None): # check validity @@ -197,12 +207,6 @@ def register_schema(self, schema, class_info_list, self.serialization.register_serialization(schema, self.class_info) - def load(self, uuid, lazy=None): - # get UUIDs and tables associated - # if lazy, return the lazy object - # if table has custom loader, use that - pass - def register_from_instance(self, lookup, obj): raise NotImplementedError("No way to register from an instance") @@ -261,6 +265,12 @@ def save(self, obj): self.backend.add_to_table(table, storables_list) logger.info("Storing complete") + def load(self, uuid, lazy=None): + # get UUIDs and tables associated + # if lazy, return the lazy object + # if table has custom loader, use that + pass + def _cache_simulation_objects(self): # load up all the simulation objects return {} diff --git a/openpathsampling/new/test_sql_backend.py b/openpathsampling/new/test_sql_backend.py index 883688163..e0fa17a16 100644 --- a/openpathsampling/new/test_sql_backend.py +++ b/openpathsampling/new/test_sql_backend.py @@ -5,12 +5,14 @@ class TestSQLStorageBackend(object): def setup(self): self._delete_tmp_files() self.database = self._default_database + self.database.debug = True self.schema = { 'samples': [('replica', 'int'), ('ensemble', 'uuid'), ('trajectory', 'uuid')], 'snapshot0': [('filename', 'str'), ('index', 'int')] } + self.default_table_names = {'uuid', 'tables', 'schema', 'metadata'} def _sample_data_dict(self): sample_list = [(0, 'ens1', 'traj1'), @@ -72,9 +74,10 @@ def _col_names_set(self, table): def test_setup(self): table_names = self.database.engine.table_names() - assert set(table_names) == set(['uuid', 'tables']) - assert self._col_names_set('uuid') == set(['uuid', 'table', 'row']) - assert self._col_names_set('tables') == set(['name', 'idx']) + assert set(table_names) == self.default_table_names + assert self._col_names_set('uuid') == {'uuid', 'table', 'row'} + assert self._col_names_set('tables') == {'name', 'idx'} + assert self._col_names_set('schema') == {'table', 'schema'} def test_register_schema(self): new_schema = { @@ -82,10 +85,9 @@ def test_register_schema(self): } self.database.register_schema(new_schema) table_names = self.database.engine.table_names() - assert set(table_names) == set(['uuid', 'tables', 'snapshot1']) - assert self._col_names_set('snapshot1') == set(['idx', 'uuid', - 'filename', - 'index']) + assert set(table_names) == self.default_table_names | {'snapshot1'} + assert self._col_names_set('snapshot1') == {'idx', 'uuid', + 'filename', 'index'} def test_register_schema_modify_fails(self): self.database.register_schema(self.schema) @@ -165,8 +167,9 @@ def test_add_to_table(self): def test_load_table_data(self): sample_dict = self._add_sample_data() uuids = [s['uuid'] for s in sample_dict] - # (loaded_table, loaded_lazy) = self.database.load_table_data(uuids) - # assert len(loaded.table) == 3 + uuid_table_rows = self.database.load_uuids_table(uuids) + loaded_table = self.database.load_table_data(uuid_table_rows) + assert len(loaded_table) == 3 pytest.skip() def test_load_table_data_missing(self): @@ -181,3 +184,8 @@ def test_load_table_data_lazy(self): def test_persistence(self): pytest.skip() + def test_database_schema(self): + self.database.register_schema(self.schema) + db_schema = self.database.database_schema() + assert db_schema == self.schema + From e8685e7f4c33418484254858642e78a51b31fce9 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 8 Feb 2018 17:03:22 +0100 Subject: [PATCH 089/464] steps toward reloading --- openpathsampling/new/ops_storage.py | 5 +- openpathsampling/new/sql_backend.py | 25 ++- openpathsampling/new/storage.py | 213 ++++++++--------------- openpathsampling/new/test_sql_backend.py | 20 ++- 4 files changed, 101 insertions(+), 162 deletions(-) diff --git a/openpathsampling/new/ops_storage.py b/openpathsampling/new/ops_storage.py index be79ba07f..05338b928 100644 --- a/openpathsampling/new/ops_storage.py +++ b/openpathsampling/new/ops_storage.py @@ -68,8 +68,9 @@ def from_backend(cls, backend, schema=None, class_info=None, scheme = ops_schema if class_info is None: class_info = ops_class_info - super(OPSStorage, obj).__init__(backend, schema, class_info, - fallbacks) + super(OPSStorage, obj).__init__(backend=backend, schema=schema, + class_info=class_info, + fallbacks=fallbacks) obj.n_snapshot_types = 0 return obj diff --git a/openpathsampling/new/sql_backend.py b/openpathsampling/new/sql_backend.py index 67b21e948..0d3b11374 100644 --- a/openpathsampling/new/sql_backend.py +++ b/openpathsampling/new/sql_backend.py @@ -21,6 +21,7 @@ 'json_obj': sql.String, 'int': sql.Integer, 'float': sql.Float, + 'function': sql.String, 'ndarray': sql.LargeBinary, #TODO: numpy store/load #TODO add more } @@ -75,7 +76,7 @@ def __init__(self, filename, mode='r', sql_dialect=None, echo=False): self.debug = False # override later if mode == 'r' or 'a' - self.schema = {} + self.schema = {} self.table_to_number = {} self.number_to_table = {} @@ -100,8 +101,9 @@ def initialize_with_mode(self, mode): metadata_table = sql.Table('metadata', self.metadata, sql.Column('key', sql.String), sql.Column('value', sql.String)) + self.metadata.create_all(self.engine) - self.register_schema(universal_schema) + self.register_schema(universal_schema, {}) elif mode == "r" or mode == "a": self.metadata.reflect(self.engine) self.schema = self.database_schema() @@ -112,7 +114,7 @@ def initialize_with_mode(self, mode): def from_engine(cls, engine, mode='r'): obj = cls.__new__(cls) self._metadata = sql.MetaData() - self.schema = {} + self.schema = {} self.table_to_number = {} self.number_to_table = {} self.engine = engine @@ -210,7 +212,7 @@ def table_is_consistent(self, table_name): else: return False - def _add_table_to_tables_list(self, table_name, table_schema): + def _add_table_to_tables_list(self, table_name, table_schema, cls_): if table_name in ['uuid', 'tables']: return # note that this return the number of tables in 'tables', which does @@ -224,9 +226,14 @@ def _add_table_to_tables_list(self, table_name, table_schema): schema_table = self.metadata.tables['schema'] + module = cls_.__module__ + class_name = cls_.__name__ + with self.engine.connect() as conn: conn.execute(tables.insert().values(name=table_name, - idx=n_tables)) + idx=n_tables, + module=module, + class_name=class_name)) conn.execute(schema_table.insert().values( table=table_name, schema=json.dumps(table_schema) @@ -254,7 +261,8 @@ def parse_registration_type(self, type_name): return ops_type ### FROM HERE IS THE GENERIC PUBLIC API - def register_schema(self, schema, sql_schema_metadata=None): + def register_schema(self, schema, table_to_class, + sql_schema_metadata=None): """Register (part of) a schema (create necessary tables in DB) Raises @@ -285,7 +293,10 @@ def register_schema(self, schema, sql_schema_metadata=None): "may already have tables of the same names.") #TODO: add schema to schema table - self._add_table_to_tables_list(table_name, schema[table_name]) + if table_name not in ['uuid', 'tables']: + self._add_table_to_tables_list(table_name, + schema[table_name], + table_to_class[table_name]) self.metadata.create_all(self.engine) self.schema.update(schema) diff --git a/openpathsampling/new/storage.py b/openpathsampling/new/storage.py index 4289c0c84..af54b4249 100644 --- a/openpathsampling/new/storage.py +++ b/openpathsampling/new/storage.py @@ -8,6 +8,7 @@ # TODO: both of these are from from serialization_helpers import to_dict_with_uuids as serialize_data from serialization_helpers import deserialize as deserialize_data +from class_info import ClassInfo, ClassInfoContainer import tools from openpathsampling.netcdfplus import StorableObject from serialization import Serialization @@ -36,160 +37,44 @@ # these two tables are required in *all* schema universal_schema = { 'uuid': [('uuid', 'uuid'), ('table', 'int'), ('row', 'int')], - 'tables': [('name', 'str'), ('idx', 'int')] + 'tables': [('name', 'str'), ('idx', 'int'), ('module', 'str'), + ('class_name', 'str')] } -class ClassInfo(object): - # I so wanted this to be a namedtuple, but it needs more attention - """ - Parameters - ---------- - table : str - the table name for this object type - cls : class - the class for this object type (used in the default deserializer) - serializer : callable - serializer for this object type (None gives the default serializer) - deserializer : callable - deserializer for this object type (None gives the default - deserializer) - lookup_result : any - the result when ClassInfoContainer looks up objects in this table - """ - def __init__(self, table, cls, serializer=None, deserializer=None, - lookup_result=None): - self.table = table - self.cls = cls - self.serializer = serializer - self.deserializer = deserializer - self.lookup_result = lookup_result - -class ClassInfoContainer(object): - """Connect table to serialization information. - - This is the primary location for information connecting application - objects (i.e., OPS) to the serialization mechanisms. In particular, the - __getattr__ in this can take either an instance or a table name, and in - either case links it to the ClassInfo. This lets us link an object - instance to the name of the table where it should be stored, and to - link the table to the serialization methods. - - Notes - ----- - Linking instances to tables can require special treatment. The default - behavior is to use the class of the object to identify the table, and - this works for most cases. However, sometimes a class can map to more - than one table, and therefore is not a unique key. For example, a single - class might be used to represent data with different dimensions, and - therefore require different tables (e.g, coordinates for different - systems). In such cases, the ClassInfoContainer needs to be subclassed - with specialized information. - """ - def __init__(self, default_info, class_info_list=None): - class_info_list = tools.none_to_default(class_info_list, []) - self.lookup_to_info = {} - self.table_to_info = {} - self.class_info_list = [] - self.default_info = default_info - self.missing_table = ClassInfo(table="__missing__", cls=None) - self.add_class_info(default_info) - for info in class_info_list: - self.add_class_info(info) - - def add_class_info(self, info_node): - # check that we're not in any existing - self.class_info_list.append(info_node) - # TODO: is it possible to generalize the special cases (use the type - # of the expected return to identify the function to call -- won't - # be completely general, but may simplify some) - self.lookup_to_info.update({info_node.lookup_result: info_node}) - self.table_to_info.update({info_node.table: info_node}) - - def lookup_key(self, item): - if not self.is_special(item): - lookup_key = item.__class__ - else: - lookup_key = self.special_lookup_key(item) - return lookup_key - - def is_special(self, item): - return False - - def special_lookup_key(self, item): - return NotImplementedError("No special types implemented") - - def get_special(self, item): - lookup = self.special_lookup_key(item) - try: - return self.lookup_to_info[lookup] - except KeyError: - return self.missing_table - - def __getitem__(self, item): - if tools.is_string(item): - return self.table_to_info[item] - elif self.is_special(item): - return self.get_special(item) - else: - lookup = self.lookup_key(item) - try: - return self.lookup_to_info[lookup] - except KeyError as e: - if isinstance(item, self.default_info.cls): - return self.default_info - else: - raise e - - def __repr__(self): # pragma: no cover - return ("ClassInfoContainer(default_info=" + repr(self.default_info) - + ", class_info_list=" + repr(self.class_info_list) + ")") - - -class MixedCache(collections.MutableMapping): - """Combine a frozen cache and a mutable cache""" - # TODO: benchmark with single dict instead; might be just as fast! - def __init__(self, fixed_cache=None): - self.fixed_cache = tools.none_to_default(fixed_cache, default={}) - self.cache = {} - - def __getitem__(self, key): - if key in self.fixed_cache: - return self.fixed_cache[key] - else: - return self.cache[key] - - def __setitem__(self, key, value): - self.cache[key] = value - - def __delitem__(self, key, value): - try: - del self.cache[key] - except KeyError as e: - if key in self.fixed_cache: - raise TypeError("Can't delete from fixed cache") - else: - raise e - - def __len__(self): - return len(self.fixed_cache) + len(self.cache) - - def __iter__(self): - return itertools.chain(self.fixed_cache, self.cache) - - class GeneralStorage(object): def __init__(self, backend, class_info, schema=None, fallbacks=None): self.backend = backend self.schema = schema self.class_info = class_info + self.mode = self.backend.mode # TODO: implement fallbacks self.fallbacks = tools.none_to_default(fallbacks, []) self.simulation_objects = self._cache_simulation_objects() self.cache = MixedCache(self.simulation_objects) self.serialization = Serialization(self) - if schema is None: - schema = backend.schema - self.register_schema(self.schema, class_info_list=[]) + if self.schema is None: + self.schema = backend.schema + self.initialize_with_mode(self.mode) + + def initialize_with_mode(self, mode): + if mode == 'r' or mode == 'a': + missing_info_tables = [tbl for tbl in self.schema + if tbl not in self.class_info.tables] + for missing in missing_info_tables: + # TODO: this is waiting on iterables over tables + # instance = getattr(self, missing)[0] + # lookup = self.class_info.lookup_key(instance) + # self.register_from_instance(lookup, instance) + pass + # should have gotten them all, just checking + missing_info_tables = [tbl for tbl in self.schema + if tbl not in self.class_info.tables] + if missing_info_tables: + raise RuntimeError("Unable to register existing tables: " + + str(missing)) + + elif mode == 'w': + self.register_schema(self.schema, class_info_list=[]) def close(self): # TODO: should sync on close @@ -198,12 +83,18 @@ def close(self): fallback.close() def register_schema(self, schema, class_info_list, - backend_metadata=None): + backend_metadata=None, read_mode=False): # check validity - self.backend.register_schema(schema, backend_metadata) - self.schema.update(schema) for info in class_info_list: self.class_info.add_class_info(info) + + table_to_class = {table: self.class_info[table].cls + for table in schema + if table not in ['uuid', 'tables']} + self.backend.register_schema(schema, table_to_class, + backend_metadata) + self.schema.update(schema) + # here's where we add the class_info to the backend self.serialization.register_serialization(schema, self.class_info) @@ -284,6 +175,38 @@ def _create_virtual_stores(self, store_categories): # pass +class MixedCache(collections.MutableMapping): + """Combine a frozen cache and a mutable cache""" + # TODO: benchmark with single dict instead; might be just as fast! + def __init__(self, fixed_cache=None): + self.fixed_cache = tools.none_to_default(fixed_cache, default={}) + self.cache = {} + + def __getitem__(self, key): + if key in self.fixed_cache: + return self.fixed_cache[key] + else: + return self.cache[key] + + def __setitem__(self, key, value): + self.cache[key] = value + + def __delitem__(self, key, value): + try: + del self.cache[key] + except KeyError as e: + if key in self.fixed_cache: + raise TypeError("Can't delete from fixed cache") + else: + raise e + + def __len__(self): + return len(self.fixed_cache) + len(self.cache) + + def __iter__(self): + return itertools.chain(self.fixed_cache, self.cache) + + class TableIterator(object): def __init__(self, storage, table): self.storage = storage diff --git a/openpathsampling/new/test_sql_backend.py b/openpathsampling/new/test_sql_backend.py index e0fa17a16..5c261dddd 100644 --- a/openpathsampling/new/test_sql_backend.py +++ b/openpathsampling/new/test_sql_backend.py @@ -12,6 +12,9 @@ def setup(self): ('trajectory', 'uuid')], 'snapshot0': [('filename', 'str'), ('index', 'int')] } + self.table_to_class = {'samples': tuple, + 'snapshot0': tuple, + 'snapshot1': tuple} self.default_table_names = {'uuid', 'tables', 'schema', 'metadata'} def _sample_data_dict(self): @@ -31,7 +34,7 @@ def _add_sample_data(self): schema = {'samples': [('replica', 'int'), ('ensemble', 'uuid'), ('trajectory', 'uuid')]} - self.database.register_schema(schema) + self.database.register_schema(schema, self.table_to_class) sample_dict = self._sample_data_dict() self.database.add_to_table('samples', sample_dict) return sample_dict @@ -76,26 +79,27 @@ def test_setup(self): table_names = self.database.engine.table_names() assert set(table_names) == self.default_table_names assert self._col_names_set('uuid') == {'uuid', 'table', 'row'} - assert self._col_names_set('tables') == {'name', 'idx'} + assert self._col_names_set('tables') == {'name', 'idx', 'module', + 'class_name'} assert self._col_names_set('schema') == {'table', 'schema'} def test_register_schema(self): new_schema = { 'snapshot1': [('filename', 'str'), ('index', 'int')] } - self.database.register_schema(new_schema) + self.database.register_schema(new_schema, self.table_to_class) table_names = self.database.engine.table_names() assert set(table_names) == self.default_table_names | {'snapshot1'} assert self._col_names_set('snapshot1') == {'idx', 'uuid', 'filename', 'index'} def test_register_schema_modify_fails(self): - self.database.register_schema(self.schema) + self.database.register_schema(self.schema, self.table_to_class) with pytest.raises(TypeError): - self.database.register_schema(self.schema) + self.database.register_schema(self.schema, self.table_to_class) def test_internal_tables_from_db(self): - self.database.register_schema(self.schema) + self.database.register_schema(self.schema, self.table_to_class) tab2num, num2tab = self.database.internal_tables_from_db() tables_db = self.database.metadata.tables['tables'] with self.database.engine.connect() as conn: @@ -132,7 +136,7 @@ def test_add_to_table(self): schema = {'samples': [('replica', 'int'), ('ensemble', 'uuid'), ('trajectory', 'uuid')]} - self.database.register_schema(schema) + self.database.register_schema(schema, self.table_to_class) sample_dict = self._sample_data_dict() self.database.add_to_table('samples', sample_dict) @@ -185,7 +189,7 @@ def test_persistence(self): pytest.skip() def test_database_schema(self): - self.database.register_schema(self.schema) + self.database.register_schema(self.schema, self.table_to_class) db_schema = self.database.database_schema() assert db_schema == self.schema From c1f245d4a972973b9655a0aa01de3143e0f7ee42 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 8 Feb 2018 23:54:53 +0100 Subject: [PATCH 090/464] progress on general loading/deserialization --- openpathsampling/new/ops_storage.py | 3 ++ openpathsampling/new/serialization.py | 2 +- openpathsampling/new/serialization_helpers.py | 50 ++++++++++++++++- openpathsampling/new/snapshots.py | 14 ++++- openpathsampling/new/sql_backend.py | 25 +++++++++ openpathsampling/new/storage.py | 53 +++++++++++++------ openpathsampling/new/tools.py | 10 ++++ 7 files changed, 136 insertions(+), 21 deletions(-) diff --git a/openpathsampling/new/ops_storage.py b/openpathsampling/new/ops_storage.py index 05338b928..ac357cf71 100644 --- a/openpathsampling/new/ops_storage.py +++ b/openpathsampling/new/ops_storage.py @@ -74,6 +74,9 @@ def from_backend(cls, backend, schema=None, class_info=None, obj.n_snapshot_types = 0 return obj + def register_from_table(self, table_name): + pass + def register_from_instance(self, lookup, obj): if isinstance(obj, paths.BaseSnapshot): schema, class_info_list = snapshots.snapshot_registration_info( diff --git a/openpathsampling/new/serialization.py b/openpathsampling/new/serialization.py index d238d5286..3e7b9ce7e 100644 --- a/openpathsampling/new/serialization.py +++ b/openpathsampling/new/serialization.py @@ -20,7 +20,7 @@ def __init__(self, uuid, class_, storage): def load(self): if self._loaded_object is None: - self._loaded_object = self.storage.load(self.__uuid__, lazy=False) + self._loaded_object = self.storage.load(self.__uuid__) if self._loaded_object is None: raise RuntimeError("UUID not found in storage: " + str(self.__uuid__)) diff --git a/openpathsampling/new/serialization_helpers.py b/openpathsampling/new/serialization_helpers.py index a6c5733f5..84d426188 100644 --- a/openpathsampling/new/serialization_helpers.py +++ b/openpathsampling/new/serialization_helpers.py @@ -2,7 +2,7 @@ import ujson import networkx as nx import networkx.algorithms.dag as nx_dag -from tools import flatten_all, nested_update +from tools import flatten_all, nested_update, group_by_function from tools import is_iterable, is_mappable, is_numpy_iterable # UUID recognition and encoding ##################################### @@ -125,6 +125,54 @@ def from_json_obj(json_str, existing_uuids): return cls.from_dict(dct) +def uuids_from_table_row(table_row, schema_entries): + # take the schema entries here, not the whole schema + lazy = [] + uuid = [] + # TODO implement this + for (attr, attr_type) in schema_entries: + if attr_type == 'uuid': + pass + elif attr_type == 'list_uuid': + pass + elif attr_type == 'lazy': + pass + + + +def get_all_uuids_loading(uuid_list, backend, schema, existing_uuids=None): + if existing_uuids is None: + existing_uuids = {} + known_uuids = set(existing_uuids.keys()) + uuid_to_table = {} + all_table_rows = [] + lazy = [] + while uuid_list: + new_uuids = {uuid for uuid in uuid_list if uuid not in known_uuids} + uuid_rows = backend.load_uuids_table(new_uuids) + new_table_rows = backend.load_table_data(uuid_rows) + uuid_to_table.update({r.uuid: backend.uuid_row_to_table_name(r) + for r in uuid_rows}) + uuid_list = [] + for row in new_table_rows: + entries = schema[uuid_to_table[row.uuid]] + loc_uuid, loc_lazy = uuids_from_table_row(row, entries) + uuid_list += loc_uuid + lazy += loc_lazy + + # find everything for the next uuid_list + # TODO: this needs to be solved; requires using the schema + + all_table_rows += new_table_rows + known_uuids |= new_uuids + + by_table = group_by_function(all_table_rows, + lambda r: uuid_to_table[r.uuid]) + return (by_table, lazy) # let the next level deal with this + + + + def reconstruction_dag(uuid_json_dict, dag=None): dependent_uuids = {uuid: find_dependent_uuids(json_str) for (uuid, json_str) in uuid_json_dict.items()} diff --git a/openpathsampling/new/snapshots.py b/openpathsampling/new/snapshots.py index 82907707b..463945434 100644 --- a/openpathsampling/new/snapshots.py +++ b/openpathsampling/new/snapshots.py @@ -61,6 +61,15 @@ def replace_schema_dimensions(schema, descriptor): return schema +def snapshot_registration_from_db(storage, schema, table_name): + cls = storage.backend.table_to_class[table_name] + representative = storage.backend.get_representative(table_name) + lookup_result = (decode_uuid(representative.engine), cls) + attributes = scheme[table_name] + for (attr, type_name) in attributes: + pass + + def snapshot_registration_info(snapshot_instance, snapshot_number): schema = schema_for_snapshot(snapshot_instance) real_table = {table: table + str(snapshot_number) for table in schema} @@ -69,13 +78,14 @@ def snapshot_registration_info(snapshot_instance, snapshot_number): engine = snapshot_instance.engine snapshot_info = ClassInfo(table=real_table['snapshot'], cls=snapshot_instance.__class__, - lookup_result=(engine, + lookup_result=(engine.__uuid__, snapshot_instance.__class__)) attr_infos = [] for table in [tbl for tbl in schema.keys() if tbl != 'snapshot']: obj = getattr(snapshot_instance, table) attr_infos.append(ClassInfo(table=real_table, cls=obj.__class__, - lookup_result=(engine, obj.__class__))) + lookup_result=(engine.__uuid__, + obj.__class__))) class_info_list = [snapshot_info] + attr_infos return real_schema, class_info_list diff --git a/openpathsampling/new/sql_backend.py b/openpathsampling/new/sql_backend.py index 0d3b11374..9edd213e6 100644 --- a/openpathsampling/new/sql_backend.py +++ b/openpathsampling/new/sql_backend.py @@ -7,6 +7,7 @@ import ujson as json from my_types import parse_ndarray_type +from serialization_helpers import import_class import logging logger = logging.getLogger(__name__) @@ -386,3 +387,27 @@ def database_schema(self): schema = {r.table: map(tuple, json.loads(r.schema)) for r in schema_rows} return schema + + def get_representative(self, table_name): + table = self.metadata.tables[table_name] + with self.engine.connect() as conn: + results = conn.execute(table.select()) + representative = results.fetchone() + results.close() + return representative + + @property + def table_to_class(self): + tables_table = self.metadata.tables['tables'] + with self.engine.connect() as conn: + rows = list(conn.execute(tables_table.select())) + table_to_class = {} + for row in rows: + table = row.name + cls = import_class(row.module, row.class_name) + table_to_class[table] = cls + return table_to_class + + def uuid_row_to_table_name(self, uuid_row): + return self.number_to_table[uuid_row.table] + diff --git a/openpathsampling/new/storage.py b/openpathsampling/new/storage.py index af54b4249..b59a069b6 100644 --- a/openpathsampling/new/storage.py +++ b/openpathsampling/new/storage.py @@ -58,24 +58,35 @@ def __init__(self, backend, class_info, schema=None, fallbacks=None): def initialize_with_mode(self, mode): if mode == 'r' or mode == 'a': - missing_info_tables = [tbl for tbl in self.schema - if tbl not in self.class_info.tables] - for missing in missing_info_tables: - # TODO: this is waiting on iterables over tables - # instance = getattr(self, missing)[0] - # lookup = self.class_info.lookup_key(instance) - # self.register_from_instance(lookup, instance) - pass - # should have gotten them all, just checking - missing_info_tables = [tbl for tbl in self.schema - if tbl not in self.class_info.tables] - if missing_info_tables: - raise RuntimeError("Unable to register existing tables: " - + str(missing)) + table_to_class = self.backend.table_to_class + self._load_missing_info_tables(table_to_class) elif mode == 'w': self.register_schema(self.schema, class_info_list=[]) + def _load_missing_info_tables(self, table_to_class): + missing_info_tables = [tbl for tbl in self.schema + if tbl not in self.class_info.tables] + for missing in missing_info_tables: + deserializer = table_to_class[missing].from_dict + representative = self.backend.get_representative(missing) + print "loading (partial) representative of " + missing + dct = {attr: getattr(representative, attr) + for (attr, type_name) in self.schema[missing]} + print dct + obj = deserializer(dct) + # TODO: this is waiting on iterables over tables + # instance = getattr(self, missing)[0] + # lookup = self.class_info.lookup_key(instance) + # self.register_from_instance(lookup, instance) + pass + # should have gotten them all, just checking + missing_info_tables = [tbl for tbl in self.schema + if tbl not in self.class_info.tables] + if missing_info_tables: + raise RuntimeError("Unable to register existing tables: " + + str(missing)) + def close(self): # TODO: should sync on close self.backend.close() @@ -156,7 +167,14 @@ def save(self, obj): self.backend.add_to_table(table, storables_list) logger.info("Storing complete") - def load(self, uuid, lazy=None): + def load(self, uuid_list): + uuid_list = tools.listify(uuid_list) + uuid_rows = self.backend.load_uuids_table(uuid_list) + + by_table = tools.group_by_function(uuid_rows, + self.backend.uuid_row_to_table_name) + + # get UUIDs and tables associated # if lazy, return the lazy object # if table has custom loader, use that @@ -170,9 +188,10 @@ def _create_virtual_stores(self, store_categories): # create virtual stores for simulation objects (e.g., .volume, etc) pass - #def __getattr__(self, attr): + # def __getattr__(self, attr): # override getattr to create iterators over the tables (stores) - # pass + # if attr in schema: + # return TableIterator(self, attr) class MixedCache(collections.MutableMapping): diff --git a/openpathsampling/new/tools.py b/openpathsampling/new/tools.py index 60a3bb071..582c46267 100644 --- a/openpathsampling/new/tools.py +++ b/openpathsampling/new/tools.py @@ -20,6 +20,10 @@ def is_iterable(obj): def is_numpy_iterable(obj): return isinstance(obj, ndarray) +def listify(obj): + if not is_iterable(obj): + obj = [obj] + return obj def none_to_default(option, default): if option is None: @@ -33,6 +37,12 @@ def group_by(list_of_iterable, group, grouping_function): results[grouping_function(obj, group)].append(obj) return results +def group_by_function(ll, function): + results = collections.defaultdict(list) + for obj in ll: + results[function(obj)].append(obj) + return results + def group_by_index(list_of_iterable, column_number): results = collections.defaultdict(list) for obj in list_of_iterable: From fd197808e55b5fc8d18e3bea30bb5814ba6d9891 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Fri, 9 Feb 2018 09:01:06 +0100 Subject: [PATCH 091/464] most of loading (just need to add deserialization) --- openpathsampling/new/serialization.py | 11 +++++ openpathsampling/new/serialization_helpers.py | 49 ++++++++++++++----- openpathsampling/new/sql_backend.py | 14 ++++-- openpathsampling/new/storage.py | 47 ++++++++++++------ 4 files changed, 90 insertions(+), 31 deletions(-) diff --git a/openpathsampling/new/serialization.py b/openpathsampling/new/serialization.py index 3e7b9ce7e..60736a00f 100644 --- a/openpathsampling/new/serialization.py +++ b/openpathsampling/new/serialization.py @@ -75,6 +75,16 @@ def make_lazy(self, cls, uuid): class_=cls, storage=self.storage) + def make_all_lazies(self, lazies): + # lazies is dict of {table_name: list_of_lazy_uuid_rows} + all_lazies = {} + for (table, lazy_uuid_rows) in lazies.items(): + cls = self.table_to_class[table] + for row in lazy_uuid_rows: + all_lazies[row.uuid] = self.make_lazy(cls, row.uuid) + return all_lazies + + def register_serialization(self, schema, class_info): for table in schema: if class_info[table].serializer: @@ -166,3 +176,4 @@ def default_deserialize(self, uuid, dct, table): obj = cls.from_dict(dct) obj.__uuid__ = uuid return obj + diff --git a/openpathsampling/new/serialization_helpers.py b/openpathsampling/new/serialization_helpers.py index 84d426188..574263e36 100644 --- a/openpathsampling/new/serialization_helpers.py +++ b/openpathsampling/new/serialization_helpers.py @@ -19,6 +19,9 @@ def get_uuid(obj): # TODO: I can come up with a better string encoding than this return str(obj.__uuid__) +def set_uuid(obj, uuid): + obj.__uuid__ = long(uuid) + def encode_uuid(uuid): return "UUID(" + str(uuid) + ")" @@ -129,53 +132,70 @@ def uuids_from_table_row(table_row, schema_entries): # take the schema entries here, not the whole schema lazy = [] uuid = [] - # TODO implement this for (attr, attr_type) in schema_entries: if attr_type == 'uuid': - pass + uuid.append(getattr(table_row, attr)) elif attr_type == 'list_uuid': - pass + # TODO: can find_dependent_uuids work here? + uuid_list = ujson.loads(getattr(table_row, attr)) + uuid.extend(uuid_list) + elif attr_type == 'json_obj': + json_dct = getattr(table_row, attr) + uuid_list = find_dependent_uuids(json_dct) + uuid.extend([str(u) for u in uuid_list]) elif attr_type == 'lazy': - pass - + lazy.append(getattr(table_row, attr)) + # other cases aren't UUIDs and are ignored + dependencies = {table_row.uuid: uuid + lazy} + return (uuid, lazy, dependencies) def get_all_uuids_loading(uuid_list, backend, schema, existing_uuids=None): + """Get all information to reload from UUIDs. + + This is the main function for identifying objects to reload from + storage. It returns the table rows to load (sorted by table), the UUIDs + of objects to lazy-load (sorted by table), and the dictionary of + dependencies, which can be used to create the reconstruction DAG. + """ if existing_uuids is None: existing_uuids = {} known_uuids = set(existing_uuids.keys()) uuid_to_table = {} all_table_rows = [] lazy = [] + dependencies = {} while uuid_list: new_uuids = {uuid for uuid in uuid_list if uuid not in known_uuids} uuid_rows = backend.load_uuids_table(new_uuids) new_table_rows = backend.load_table_data(uuid_rows) uuid_to_table.update({r.uuid: backend.uuid_row_to_table_name(r) for r in uuid_rows}) + uuid_list = [] for row in new_table_rows: entries = schema[uuid_to_table[row.uuid]] - loc_uuid, loc_lazy = uuids_from_table_row(row, entries) + loc_uuid, loc_lazy, deps = uuids_from_table_row(row, entries) uuid_list += loc_uuid lazy += loc_lazy - - # find everything for the next uuid_list - # TODO: this needs to be solved; requires using the schema + dependencies.update(deps) all_table_rows += new_table_rows known_uuids |= new_uuids - by_table = group_by_function(all_table_rows, - lambda r: uuid_to_table[r.uuid]) - return (by_table, lazy) # let the next level deal with this - + row_to_table = lambda r: uuid_to_table[r.uuid] + to_load = group_by_function(all_table_rows, row_to_table) + lazies = group_by_function(lazy, row_to_table) + return (to_load, lazies, dependencies, uuid_to_table) def reconstruction_dag(uuid_json_dict, dag=None): dependent_uuids = {uuid: find_dependent_uuids(json_str) for (uuid, json_str) in uuid_json_dict.items()} + return dependency_dag(dependent_uuids, dag) + +def dependency_dag(dependent_uuids, dag=None): if dag is None: dag = nx.DiGraph() for from_node, to_nodes in dependent_uuids.items(): @@ -186,6 +206,9 @@ def reconstruction_dag(uuid_json_dict, dag=None): raise RuntimeError("Reconstruction DAG not acyclic?!?!") return dag +def dag_reload_order(dag): + return list(reversed(list(nx_dag.topological_sort(dag)))) + # TODO: replace this with something in storage def deserialize(uuid_json_dict, lazies, storage): diff --git a/openpathsampling/new/sql_backend.py b/openpathsampling/new/sql_backend.py index 9edd213e6..4cee3a0a0 100644 --- a/openpathsampling/new/sql_backend.py +++ b/openpathsampling/new/sql_backend.py @@ -91,9 +91,10 @@ def __init__(self, filename, mode='r', sql_dialect=None, echo=False): self.engine = sql.create_engine(connection_uri, echo=echo) self._metadata = sql.MetaData(bind=self.engine) - self.initialize_with_mode(self.mode) + self._initialize_with_mode(self.mode) - def initialize_with_mode(self, mode): + def _initialize_with_mode(self, mode): + """setup of tables; etc, as varies between w and r/a modes""" if mode == "w": # TODO: drop tables schema_table = sql.Table('schema', self.metadata, @@ -113,6 +114,12 @@ def initialize_with_mode(self, mode): @classmethod def from_engine(cls, engine, mode='r'): + """Constructor allowing user to specify the SQLAlchemy Engine. + + The default constructor doesn't allow all the options to the engine + that SQLAlchemy can provide. Use this if you want more customization + of the database engine. + """ obj = cls.__new__(cls) self._metadata = sql.MetaData() self.schema = {} @@ -120,7 +127,7 @@ def from_engine(cls, engine, mode='r'): self.number_to_table = {} self.engine = engine self.mode = mode - self.initialize_with_mode(self.mode) + self._initialize_with_mode(self.mode) def close(self): @@ -410,4 +417,3 @@ def table_to_class(self): def uuid_row_to_table_name(self, uuid_row): return self.number_to_table[uuid_row.table] - diff --git a/openpathsampling/new/storage.py b/openpathsampling/new/storage.py index b59a069b6..d67897dd3 100644 --- a/openpathsampling/new/storage.py +++ b/openpathsampling/new/storage.py @@ -5,6 +5,8 @@ from serialization_helpers import get_uuid, get_all_uuids from serialization_helpers import to_json_obj as serialize_sim from serialization_helpers import from_json_obj as deserialize_sim +from serialization_helpers import get_all_uuids_loading +from serialization_helpers import dependency_dag, dag_reload_order # TODO: both of these are from from serialization_helpers import to_dict_with_uuids as serialize_data from serialization_helpers import deserialize as deserialize_data @@ -168,17 +170,31 @@ def save(self, obj): logger.info("Storing complete") def load(self, uuid_list): - uuid_list = tools.listify(uuid_list) - uuid_rows = self.backend.load_uuids_table(uuid_list) - - by_table = tools.group_by_function(uuid_rows, - self.backend.uuid_row_to_table_name) - - - # get UUIDs and tables associated - # if lazy, return the lazy object - # if table has custom loader, use that - pass + # loading happens in 4 parts: + # 1. Get UUIDs that need to be loaded + # 2. Build the DAG to determine loading order + # 3. Make all lazy objects + # 4. Reserialize remaining in DAG order + uuid_list = [uuid for uuid in uuid_list if uuid not in self.cache] + to_load, lazies, dependencies, uuid_to_table = \ + get_all_uuids_loading(uuid_list=uuid_list, + backend=self.backend, + schema=self.schema, + existing_uuids=self.cache) + + # build the dag + dag = dependency_dag(dependencies) + # lazies can't have dependencies + new_uuids = self.serialization.make_all_lazies(lazies) + + # deserialize in order + for uuid in dag_reload_order(dag): + table = uuid_to_table[uuid] + deserialize = self.serialization.deserialize[table] + new_uuids[uuid] = deserialize(table_row[table]) + + self.cache.update(new_uuids) + return [new_uuids[uuid] for uuid in uuid_list] def _cache_simulation_objects(self): # load up all the simulation objects @@ -226,13 +242,16 @@ def __iter__(self): return itertools.chain(self.fixed_cache, self.cache) -class TableIterator(object): +# TODO: collections.Sequence? +class StorageTable(object): def __init__(self, storage, table): self.storage = storage + self.table = table def __iter__(self): - # iter manages the cache - pass + backend_iterator = self.storage.backend.table_iterator(self.table) + for row in backend_iterator: + yield self.storage.load([row.uuid]) def _get_single(self, value): pass From ef0753cc3f9e1aa87c9abd378e75559b2070be11 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Fri, 9 Feb 2018 14:50:50 +0100 Subject: [PATCH 092/464] working reloads of toys with std load function --- openpathsampling/new/serialization.py | 72 ++++++++++++++++++- openpathsampling/new/serialization_helpers.py | 55 +++++++++----- openpathsampling/new/snapshots.py | 16 ++++- openpathsampling/new/storage.py | 25 +++++-- 4 files changed, 138 insertions(+), 30 deletions(-) diff --git a/openpathsampling/new/serialization.py b/openpathsampling/new/serialization.py index 60736a00f..35ae51699 100644 --- a/openpathsampling/new/serialization.py +++ b/openpathsampling/new/serialization.py @@ -2,6 +2,13 @@ from my_types import parse_ndarray_type, ndarray_re import serialization_helpers as serialization from tools import is_mappable +import tools +import ujson as json + + +def load_list_uuid(json_str, cache_list): + uuid_list = json.loads(json_str) + return [search_caches(uuid, cache_list) for uuid in uuid_list] def make_lazy_class(cls_): @@ -162,7 +169,7 @@ def default_serialize(self, obj, table): dct[attr] = serializer_dict[attr](attr_obj) return dct - def default_deserialize(self, uuid, dct, table): + def default_deserialize(self, uuid, dct, table, existing_uuids): # this must be called in the DAG order; otherwise error deserializer_dict = self._deser_dict[table] cls = self.table_to_class[table] @@ -173,7 +180,68 @@ def default_deserialize(self, uuid, dct, table): dct[attr] = deserializer_dict[attr](dct[attr], self.cache) else: dct[attr] = deserializer_dict[attr](dct[attr]) + return dct + + +class DefaultDeserializer(object): + default_handlers = { + 'lazy': serialization.search_caches, + 'uuid': serialization.search_caches, + 'list_uuid': load_list_uuid, + } + + def __init__(self, schema, table, cls): + self.schema = schema + self.table = table + self.entries = schema[table] + self.cls = cls + self.attribute_handler = self.init_attribute_handlers() + + @staticmethod + def make_numpy_handler(dtype, shape): + return lambda data: np.fromstring(data, dtype=dtype).reshape(shape) + + def init_attribute_handlers(self): + attribute_handlers = {} + for (attr, type_name) in self.entries: + handler = None + if type_name in self.default_handlers: + handler = self.default_handlers[type_name] + else: + as_ndarray = parse_ndarray_type(type_name) + if as_ndarray: + (dtype, shape) = as_ndarray + handler = make_numpy_handler + if handler: + attribute_handlers[attr] = handler + + def make_dct(self, table_dct, cache_list): + for attr in self.attribute_handlers: + table_dct[attr] = self.attribute_handlers[attr](table_dct[attr], + cache_list) + return table_dct + + def __call__(self, uuid, table_dct, cache_list): + dct = self.make_dct(table_dct, cache_list) obj = cls.from_dict(dct) - obj.__uuid__ = uuid + set_uuid(obj, uuid) return obj + +class DefaultSerializer(DefaultDeserializer): + handlers = { + 'uuid': serialization.get_uuid, + 'lazy': serialization.get_uuid, + 'json': serialization.to_bare_json, + 'list_uuid': serialization.to_bare_json + } + + @staticmethod + def make_numpy_handler(dtype, shape): + return lambda arr: arr.astype(dtype=dtype, copy=False).tostring() + + def __call__(self, obj): + dct = obj.to_dict() + dct = replace_uuid(dct) + dct.update({'uuid': get_uuid(obj)}) + return dct diff --git a/openpathsampling/new/serialization_helpers.py b/openpathsampling/new/serialization_helpers.py index 574263e36..6edcd6129 100644 --- a/openpathsampling/new/serialization_helpers.py +++ b/openpathsampling/new/serialization_helpers.py @@ -28,7 +28,7 @@ def encode_uuid(uuid): def decode_uuid(uuid_str): - return long(uuid_str[5:-1]) + return uuid_str[5:-1] def is_uuid_string(obj): @@ -70,9 +70,9 @@ def get_all_uuid_strings(dct): # NOTE: this only need to find until the first UUID: iterables/mapping with # UUIDs aren't necessary here def replace_uuid(obj): + # this is UUID => string replacement = obj if has_uuid(obj): - # TODO: compact representation of UUID replacement = encode_uuid(get_uuid(obj)) elif is_mappable(obj): replacement = {k: replace_uuid(v) for (k, v) in replacement.items()} @@ -109,23 +109,44 @@ def import_class(mod, cls): cls = getattr(mod, cls) return cls +def search_caches(key, cache_list, raise_error=True): + if not isinstance(cache_list, list): + cache_list = [cache_list] + obj = None + for cache in cache_list: + if key in cache: + obj = cache[key] + break + if obj is None and raise_error: + raise KeyError("Missing key: " + str(key)) + return obj -def from_dict_with_uuids(dct, existing_uuids): - for (key, value) in dct.items(): - if is_uuid_string(value): - # raises KeyError if object hasn't been visited - # (indicates problem in DAG reconstruction) - value_obj = existing_uuids[decode_uuid(value)] - dct[key] = value_obj - return dct + +def from_dict_with_uuids(obj, cache_list): + replacement = obj + if is_uuid_string(obj): + # raises KeyError if object hasn't been visited + # (indicates problem in DAG reconstruction) + uuid = decode_uuid(obj) + replacement = search_caches(uuid, cache_list) + elif is_mappable(obj): + replacement = {k: from_dict_with_uuids(v, cache_list) + for (k, v) in obj.items()} + elif is_iterable(obj) and not is_numpy_iterable(obj): + replace_type = type(obj) + replacement = replace_type([from_dict_with_uuids(o, cache_list) + for o in obj]) + return replacement -def from_json_obj(json_str, existing_uuids): +def from_json_obj(uuid, table_row, cache_list): # NOTE: from_json only works with existing_uuids (DAG-ordering) - dct = ujson.loads(json_str) + dct = ujson.loads(table_row['json']) cls = import_class(dct.pop('__module__'), dct.pop('__class__')) - dct = from_dict_with_uuids(dct, existing_uuids) - return cls.from_dict(dct) + dct = from_dict_with_uuids(dct, cache_list) + obj = cls.from_dict(dct) + set_uuid(obj, uuid) + return obj def uuids_from_table_row(table_row, schema_entries): @@ -183,11 +204,7 @@ def get_all_uuids_loading(uuid_list, backend, schema, existing_uuids=None): all_table_rows += new_table_rows known_uuids |= new_uuids - row_to_table = lambda r: uuid_to_table[r.uuid] - to_load = group_by_function(all_table_rows, row_to_table) - lazies = group_by_function(lazy, row_to_table) - - return (to_load, lazies, dependencies, uuid_to_table) + return (all_table_rows, lazy, dependencies, uuid_to_table) def reconstruction_dag(uuid_json_dict, dag=None): diff --git a/openpathsampling/new/snapshots.py b/openpathsampling/new/snapshots.py index 463945434..e45a9bb6e 100644 --- a/openpathsampling/new/snapshots.py +++ b/openpathsampling/new/snapshots.py @@ -61,13 +61,23 @@ def replace_schema_dimensions(schema, descriptor): return schema -def snapshot_registration_from_db(storage, schema, table_name): +def snapshot_registration_from_db(storage, schema, class_info, table_name): + # TODO: snapshot tables always have `snapshotNUM`; this should be used + # to identify other related tables in the DB cls = storage.backend.table_to_class[table_name] representative = storage.backend.get_representative(table_name) - lookup_result = (decode_uuid(representative.engine), cls) + engine_uuid = get_uuid(representative.engine) + lookup_result = (engine_uuid, cls) + proposed_lookups = {table_name: lookup_result} attributes = scheme[table_name] for (attr, type_name) in attributes: - pass + is_object = type_name in ['lazy', 'uuid', 'uuid_list'] + is_table = attr in schema + if is_object and is_table: + cls = storage.backend.table_to_class[attr] + proposed_lookups[attr] = (engine_uuid, cls) + class_info_list = [] + return proposed_lookups def snapshot_registration_info(snapshot_instance, snapshot_number): diff --git a/openpathsampling/new/storage.py b/openpathsampling/new/storage.py index d67897dd3..30d4a54ff 100644 --- a/openpathsampling/new/storage.py +++ b/openpathsampling/new/storage.py @@ -13,7 +13,7 @@ from class_info import ClassInfo, ClassInfoContainer import tools from openpathsampling.netcdfplus import StorableObject -from serialization import Serialization +from serialization import Serialization, DefaultDeserializer import logging logger = logging.getLogger(__name__) @@ -99,6 +99,7 @@ def register_schema(self, schema, class_info_list, backend_metadata=None, read_mode=False): # check validity for info in class_info_list: + info.set_defaults(schema) self.class_info.add_class_info(info) table_to_class = {table: self.class_info[table].cls @@ -169,13 +170,15 @@ def save(self, obj): self.backend.add_to_table(table, storables_list) logger.info("Storing complete") - def load(self, uuid_list): + def load(self, input_uuids): # loading happens in 4 parts: # 1. Get UUIDs that need to be loaded # 2. Build the DAG to determine loading order # 3. Make all lazy objects # 4. Reserialize remaining in DAG order - uuid_list = [uuid for uuid in uuid_list if uuid not in self.cache] + results = {uuid: self.cache[uuid] for uuid in input_uuids + if uuid in self.cache} + uuid_list = [uuid for uuid in input_uuids if uuid not in self.cache] to_load, lazies, dependencies, uuid_to_table = \ get_all_uuids_loading(uuid_list=uuid_list, backend=self.backend, @@ -185,16 +188,26 @@ def load(self, uuid_list): # build the dag dag = dependency_dag(dependencies) # lazies can't have dependencies + lazies = tools.group_by_function(lazies, + lambda r: uuid_to_table[r.uuid]) new_uuids = self.serialization.make_all_lazies(lazies) + # deserialize in order + uuid_to_table_row = {r.uuid: r for r in to_load} for uuid in dag_reload_order(dag): table = uuid_to_table[uuid] - deserialize = self.serialization.deserialize[table] - new_uuids[uuid] = deserialize(table_row[table]) + table_row = uuid_to_table_row[uuid] + table_dict = {attr: getattr(table_row, attr) + for (attr, type_name) in self.schema[table]} + # TODO: improve this + deserialize = self.class_info[table].deserializer + obj = deserialize(uuid, table_dict, [new_uuids, self.cache]) + new_uuids[uuid] = obj self.cache.update(new_uuids) - return [new_uuids[uuid] for uuid in uuid_list] + results.update(new_uuids) + return [results[uuid] for uuid in input_uuids] def _cache_simulation_objects(self): # load up all the simulation objects From 934320c97b223c76940342c70a8b4d8264daf9a8 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Fri, 9 Feb 2018 15:57:42 +0100 Subject: [PATCH 093/464] can reopen after saving dynamically gen'd table --- openpathsampling/new/ops_storage.py | 32 ++++++++++++++++++++++++--- openpathsampling/new/serialization.py | 6 ++--- openpathsampling/new/snapshots.py | 14 +++++++----- openpathsampling/new/sql_backend.py | 2 +- openpathsampling/new/storage.py | 29 ++++++++++-------------- 5 files changed, 53 insertions(+), 30 deletions(-) diff --git a/openpathsampling/new/ops_storage.py b/openpathsampling/new/ops_storage.py index ac357cf71..71109c790 100644 --- a/openpathsampling/new/ops_storage.py +++ b/openpathsampling/new/ops_storage.py @@ -7,9 +7,13 @@ import openpathsampling as paths from openpathsampling.netcdfplus import StorableObject +from serialization_helpers import get_uuid + from storage import ClassInfo import snapshots +import logging +logger = logging.getLogger(__name__) ops_schema = { 'samples': [('trajectory', 'lazy'), ('ensemble', 'uuid'), @@ -36,7 +40,7 @@ def is_special(self, item): def special_lookup_key(self, item): if isinstance(item, paths.BaseSnapshot): - return (item.engine, item.__class__) + return (get_uuid(item.engine), item.__class__) ops_class_info = OPSClassInfoContainer( default_info=ClassInfo('simulation_objects', cls=StorableObject, @@ -74,8 +78,29 @@ def from_backend(cls, backend, schema=None, class_info=None, obj.n_snapshot_types = 0 return obj - def register_from_table(self, table_name): - pass + def register_from_tables(self, table_names, classes): + lookups = {} + table_to_class = {tbl: cls for tbl, cls in zip(table_names, classes)} + for table in table_names: + logger.info("Attempting to register missing table {} ({})"\ + .format(table, str(table_to_class[table]))) + if issubclass(table_to_class[table], paths.BaseSnapshot): + lookups.update(snapshots.snapshot_registration_from_db( + storage=self, + schema=self.schema, + class_info=self.class_info, + table_name=table + )) + logger.info("Found {} possible lookups".format(len(lookups))) + logger.info("Lookups for tables: " + str(lookups.keys())) + class_info_list = [ClassInfo(table=table, + cls=table_to_class[table], + lookup_result=lookups[table]) + for table in lookups] + for info in class_info_list: + info.set_defaults(self.schema) + self.class_info.add_class_info(info) + def register_from_instance(self, lookup, obj): if isinstance(obj, paths.BaseSnapshot): @@ -85,6 +110,7 @@ def register_from_instance(self, lookup, obj): schema = snapshots.replace_schema_dimensions( schema, obj.engine.descriptor ) + self.register_schema(schema, class_info_list) self.n_snapshot_types += 1 diff --git a/openpathsampling/new/serialization.py b/openpathsampling/new/serialization.py index 35ae51699..78e66cf08 100644 --- a/openpathsampling/new/serialization.py +++ b/openpathsampling/new/serialization.py @@ -211,7 +211,7 @@ def init_attribute_handlers(self): as_ndarray = parse_ndarray_type(type_name) if as_ndarray: (dtype, shape) = as_ndarray - handler = make_numpy_handler + handler = self.make_numpy_handler if handler: attribute_handlers[attr] = handler @@ -242,6 +242,6 @@ def make_numpy_handler(dtype, shape): def __call__(self, obj): dct = obj.to_dict() - dct = replace_uuid(dct) - dct.update({'uuid': get_uuid(obj)}) + dct = serialization.replace_uuid(dct) + dct.update({'uuid': serialization.get_uuid(obj)}) return dct diff --git a/openpathsampling/new/snapshots.py b/openpathsampling/new/snapshots.py index e45a9bb6e..d64756079 100644 --- a/openpathsampling/new/snapshots.py +++ b/openpathsampling/new/snapshots.py @@ -1,5 +1,7 @@ from storage import ClassInfo +from serialization_helpers import get_uuid + def _nested_schema_entries(schema_entries, lazies): """Recursive algorithm to create all schema entries """ @@ -65,18 +67,17 @@ def snapshot_registration_from_db(storage, schema, class_info, table_name): # TODO: snapshot tables always have `snapshotNUM`; this should be used # to identify other related tables in the DB cls = storage.backend.table_to_class[table_name] - representative = storage.backend.get_representative(table_name) - engine_uuid = get_uuid(representative.engine) + representative_row = storage.backend.get_representative(table_name) + engine_uuid = representative_row.engine lookup_result = (engine_uuid, cls) proposed_lookups = {table_name: lookup_result} - attributes = scheme[table_name] + attributes = schema[table_name] for (attr, type_name) in attributes: is_object = type_name in ['lazy', 'uuid', 'uuid_list'] is_table = attr in schema if is_object and is_table: cls = storage.backend.table_to_class[attr] proposed_lookups[attr] = (engine_uuid, cls) - class_info_list = [] return proposed_lookups @@ -86,16 +87,17 @@ def snapshot_registration_info(snapshot_instance, snapshot_number): real_schema = {real_table[table]: entries for (table, entries) in schema.items()} engine = snapshot_instance.engine + engine_uuid = get_uuid(engine) snapshot_info = ClassInfo(table=real_table['snapshot'], cls=snapshot_instance.__class__, - lookup_result=(engine.__uuid__, + lookup_result=(engine_uuid, snapshot_instance.__class__)) attr_infos = [] for table in [tbl for tbl in schema.keys() if tbl != 'snapshot']: obj = getattr(snapshot_instance, table) attr_infos.append(ClassInfo(table=real_table, cls=obj.__class__, - lookup_result=(engine.__uuid__, + lookup_result=(engine_uuid, obj.__class__))) class_info_list = [snapshot_info] + attr_infos return real_schema, class_info_list diff --git a/openpathsampling/new/sql_backend.py b/openpathsampling/new/sql_backend.py index 4cee3a0a0..279864f63 100644 --- a/openpathsampling/new/sql_backend.py +++ b/openpathsampling/new/sql_backend.py @@ -294,7 +294,7 @@ def register_schema(self, schema, table_to_class, columns.append(sql.Column(col, col_type, **metadata)) try: - logger.info("Add schema table" + str(table_name)) + logger.info("Add schema table " + str(table_name)) table = sql.Table(table_name, self.metadata, *columns) except sql.exc.InvalidRequestError: raise TypeError("Schema registration problem. Your schema " diff --git a/openpathsampling/new/storage.py b/openpathsampling/new/storage.py index 30d4a54ff..a2d95fbb1 100644 --- a/openpathsampling/new/storage.py +++ b/openpathsampling/new/storage.py @@ -69,25 +69,19 @@ def initialize_with_mode(self, mode): def _load_missing_info_tables(self, table_to_class): missing_info_tables = [tbl for tbl in self.schema if tbl not in self.class_info.tables] - for missing in missing_info_tables: - deserializer = table_to_class[missing].from_dict - representative = self.backend.get_representative(missing) - print "loading (partial) representative of " + missing - dct = {attr: getattr(representative, attr) - for (attr, type_name) in self.schema[missing]} - print dct - obj = deserializer(dct) - # TODO: this is waiting on iterables over tables - # instance = getattr(self, missing)[0] - # lookup = self.class_info.lookup_key(instance) - # self.register_from_instance(lookup, instance) - pass - # should have gotten them all, just checking + n_missing = len(missing_info_tables) + logger.info("Missing info from {} dynamically-registered tables"\ + .format(n_missing)) + classes = [table_to_class[tbl] for tbl in missing_info_tables] + self.register_from_tables(missing_info_tables, classes) missing_info_tables = [tbl for tbl in self.schema if tbl not in self.class_info.tables] + logger.info("Successfully registered {} missing tables"\ + .format(n_missing - len(missing_info_tables))) + if missing_info_tables: - raise RuntimeError("Unable to register existing tables: " - + str(missing)) + raise RuntimeError("Unable to register existing database " + + "tables: " + str(missing_info_tables)) def close(self): # TODO: should sync on close @@ -152,6 +146,7 @@ def save(self, obj): # table, but the table doesn't exist (e.g., for dynamically # added tables) missing = by_table.pop('__missing__') + print missing logger.info("Attempting to register for {} missing objects".\ format(len(missing))) self.register_missing_tables_for_objects(missing) @@ -165,7 +160,7 @@ def save(self, obj): for table in by_table: storables_list = [self.serialization.serialize[table](o) for o in by_table[table].values()] - logger.info("Storing {} UUIDs to table {}".\ + logger.info("Storing {} objects to table {}".\ format(len(storables_list), table)) self.backend.add_to_table(table, storables_list) logger.info("Storing complete") From 5fec580cb5c2e255d2a1a9e79954f3ca42f496b5 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Fri, 9 Feb 2018 16:48:30 +0100 Subject: [PATCH 094/464] successful reloading of snapshot --- openpathsampling/new/serialization.py | 20 ++++++++++++------- openpathsampling/new/serialization_helpers.py | 15 ++++++++------ openpathsampling/new/storage.py | 20 +++++++++---------- 3 files changed, 32 insertions(+), 23 deletions(-) diff --git a/openpathsampling/new/serialization.py b/openpathsampling/new/serialization.py index 78e66cf08..c6ce13ae0 100644 --- a/openpathsampling/new/serialization.py +++ b/openpathsampling/new/serialization.py @@ -5,6 +5,8 @@ import tools import ujson as json +import logging +logger = logging.getLogger(__name__) def load_list_uuid(json_str, cache_list): uuid_list = json.loads(json_str) @@ -195,11 +197,11 @@ def __init__(self, schema, table, cls): self.table = table self.entries = schema[table] self.cls = cls - self.attribute_handler = self.init_attribute_handlers() + self.attribute_handlers = self.init_attribute_handlers() @staticmethod def make_numpy_handler(dtype, shape): - return lambda data: np.fromstring(data, dtype=dtype).reshape(shape) + return lambda data, _: np.fromstring(data, dtype=dtype).reshape(shape) def init_attribute_handlers(self): attribute_handlers = {} @@ -211,9 +213,10 @@ def init_attribute_handlers(self): as_ndarray = parse_ndarray_type(type_name) if as_ndarray: (dtype, shape) = as_ndarray - handler = self.make_numpy_handler + handler = self.make_numpy_handler(dtype, shape) if handler: attribute_handlers[attr] = handler + return attribute_handlers def make_dct(self, table_dct, cache_list): for attr in self.attribute_handlers: @@ -223,13 +226,13 @@ def make_dct(self, table_dct, cache_list): def __call__(self, uuid, table_dct, cache_list): dct = self.make_dct(table_dct, cache_list) - obj = cls.from_dict(dct) - set_uuid(obj, uuid) + obj = self.cls.from_dict(dct) + serialization.set_uuid(obj, uuid) return obj class DefaultSerializer(DefaultDeserializer): - handlers = { + default_handlers = { 'uuid': serialization.get_uuid, 'lazy': serialization.get_uuid, 'json': serialization.to_bare_json, @@ -242,6 +245,9 @@ def make_numpy_handler(dtype, shape): def __call__(self, obj): dct = obj.to_dict() - dct = serialization.replace_uuid(dct) + for attr in self.attribute_handlers: + dct[attr] = self.attribute_handlers[attr](dct[attr]) + dct = serialization.replace_uuid(dct, + uuid_encoding=lambda x: x) dct.update({'uuid': serialization.get_uuid(obj)}) return dct diff --git a/openpathsampling/new/serialization_helpers.py b/openpathsampling/new/serialization_helpers.py index 6edcd6129..c4b2a1ee6 100644 --- a/openpathsampling/new/serialization_helpers.py +++ b/openpathsampling/new/serialization_helpers.py @@ -69,26 +69,28 @@ def get_all_uuid_strings(dct): # NOTE: this only need to find until the first UUID: iterables/mapping with # UUIDs aren't necessary here -def replace_uuid(obj): +def replace_uuid(obj, uuid_encoding): # this is UUID => string replacement = obj if has_uuid(obj): - replacement = encode_uuid(get_uuid(obj)) + replacement = uuid_encoding(get_uuid(obj)) elif is_mappable(obj): - replacement = {k: replace_uuid(v) for (k, v) in replacement.items()} + replacement = {k: replace_uuid(v, uuid_encoding) + for (k, v) in replacement.items()} elif is_iterable(obj) and not is_numpy_iterable(obj): replace_type = type(obj) - replacement = replace_type([replace_uuid(o) for o in obj]) + replacement = replace_type([replace_uuid(o, uuid_encoding) + for o in obj]) return replacement def to_dict_with_uuids(obj): dct = obj.to_dict() - return replace_uuid(dct) + return replace_uuid(dct, uuid_encoding=encode_uuid) def to_bare_json(obj): - replaced = replace_uuid(obj) + replaced = replace_uuid(obj, uuid_encoding=encode_uuid) return ujson.dumps(replaced) @@ -203,6 +205,7 @@ def get_all_uuids_loading(uuid_list, backend, schema, existing_uuids=None): all_table_rows += new_table_rows known_uuids |= new_uuids + uuid_list = {uuid for uuid in uuid_list if uuid not in known_uuids} return (all_table_rows, lazy, dependencies, uuid_to_table) diff --git a/openpathsampling/new/storage.py b/openpathsampling/new/storage.py index a2d95fbb1..842220bfb 100644 --- a/openpathsampling/new/storage.py +++ b/openpathsampling/new/storage.py @@ -158,8 +158,8 @@ def save(self, obj): # this is the actual serialization for table in by_table: - storables_list = [self.serialization.serialize[table](o) - for o in by_table[table].values()] + serialize = self.class_info[table].serializer + storables_list = [serialize(o) for o in by_table[table].values()] logger.info("Storing {} objects to table {}".\ format(len(storables_list), table)) self.backend.add_to_table(table, storables_list) @@ -191,14 +191,14 @@ def load(self, input_uuids): # deserialize in order uuid_to_table_row = {r.uuid: r for r in to_load} for uuid in dag_reload_order(dag): - table = uuid_to_table[uuid] - table_row = uuid_to_table_row[uuid] - table_dict = {attr: getattr(table_row, attr) - for (attr, type_name) in self.schema[table]} - # TODO: improve this - deserialize = self.class_info[table].deserializer - obj = deserialize(uuid, table_dict, [new_uuids, self.cache]) - new_uuids[uuid] = obj + if uuid not in self.cache: + table = uuid_to_table[uuid] + table_row = uuid_to_table_row[uuid] + table_dict = {attr: getattr(table_row, attr) + for (attr, type_name) in self.schema[table]} + deserialize = self.class_info[table].deserializer + obj = deserialize(uuid, table_dict, [new_uuids, self.cache]) + new_uuids[uuid] = obj self.cache.update(new_uuids) results.update(new_uuids) From ff044c7f8f74da3acec57274ffcda18ed89b1bb0 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Sat, 10 Feb 2018 17:31:33 +0100 Subject: [PATCH 095/464] better serialization --- openpathsampling/new/ops_storage.py | 6 ++++- openpathsampling/new/serialization.py | 16 ++++++++++++- openpathsampling/new/sql_backend.py | 33 ++++++++++++++++++--------- openpathsampling/new/storage.py | 13 +++++++---- openpathsampling/new/tools.py | 11 +++++++++ openpathsampling/sample.py | 7 ++++-- 6 files changed, 67 insertions(+), 19 deletions(-) diff --git a/openpathsampling/new/ops_storage.py b/openpathsampling/new/ops_storage.py index 71109c790..a4493a0f0 100644 --- a/openpathsampling/new/ops_storage.py +++ b/openpathsampling/new/ops_storage.py @@ -21,7 +21,8 @@ # in my opinion, the next 3 should be removed ('parent', 'lazy'), ('bias', 'float'), ('mover', 'uuid')], - 'sample_sets': [('samples', 'list_uuid'), ('movepath', 'lazy')], + # movepath no longer exists in sample sets? + 'sample_sets': [('samples', 'list_uuid')], #, ('movepath', 'lazy')], 'trajectories': [('snapshots', 'list_uuid')], 'move_changes': [('mover', 'uuid'), ('details', 'lazy'), ('cls', 'str'), ('subchanges', 'list_uuid'), ('samples', 'list_uuid'), @@ -56,6 +57,9 @@ def special_lookup_key(self, item): ] ) +for info in ops_class_info.class_info_list: + info.set_defaults(ops_schema) + class OPSStorage(storage.GeneralStorage): def __init__(self, backend, schema, class_info, fallbacks=None): diff --git a/openpathsampling/new/serialization.py b/openpathsampling/new/serialization.py index c6ce13ae0..6e6412738 100644 --- a/openpathsampling/new/serialization.py +++ b/openpathsampling/new/serialization.py @@ -231,7 +231,7 @@ def __call__(self, uuid, table_dct, cache_list): return obj -class DefaultSerializer(DefaultDeserializer): +class ToDictSerializer(DefaultDeserializer): default_handlers = { 'uuid': serialization.get_uuid, 'lazy': serialization.get_uuid, @@ -251,3 +251,17 @@ def __call__(self, obj): uuid_encoding=lambda x: x) dct.update({'uuid': serialization.get_uuid(obj)}) return dct + +class DefaultSerializer(ToDictSerializer): + def __call__(self, obj): + dct = {attr: getattr(obj, attr) + for (attr, type_name) in self.entries} + replace = {attr: handler(dct[attr]) + for (attr, handler) in self.attribute_handlers.items()} + replace = serialization.replace_uuid(replace, + uuid_encoding=lambda x: x) + dct.update(replace) + dct.update({'uuid': serialization.get_uuid(obj)}) + return dct + + diff --git a/openpathsampling/new/sql_backend.py b/openpathsampling/new/sql_backend.py index 279864f63..e5cc299eb 100644 --- a/openpathsampling/new/sql_backend.py +++ b/openpathsampling/new/sql_backend.py @@ -75,6 +75,7 @@ def __init__(self, filename, mode='r', sql_dialect=None, echo=False): sql_dialect = tools.none_to_default(sql_dialect, 'sqlite') self.mode = mode self.debug = False + self.max_query_size = 500 # override later if mode == 'r' or 'a' self.schema = {} @@ -327,8 +328,12 @@ def add_to_table(self, table_name, objects): # would be another option (redundant data, but better sanity checks) # pop_uuids = [{k: v for (k, v) in obj.items() if k != 'uuid'} # for obj in objects] - insert_statements = [table.insert().values(**obj) - for obj in objects] + # insert_statements = [table.insert().values(**obj) + # for obj in objects] + insert_statements = [] + for obj in objects: + print obj + insert_statements.append(table.insert().values(**obj)) with self.engine.connect() as conn: # can't use executemany here because we need the resulting @@ -357,15 +362,21 @@ def load_uuids_table(self, uuids, ignore_missing=False): database (with ignore_missing=True). """ uuid_table = self.metadata.tables['uuid'] - uuid_or_stmt = sql.or_(*(uuid_table.c.uuid == uuid - for uuid in uuids)) - uuid_sel = uuid_table.select(uuid_or_stmt) - with self.engine.connect() as conn: - results = list(conn.execute(uuid_sel)) - if not ignore_missing and len(results) != len(uuids): - # TODO - # figure out which UUID is missing, raise error on first found - pass + logger.debug("Looking for {} UUIDs".format(len(uuids))) + results = [] + for uuid_block in tools.block(uuids, self.max_query_size): + uuid_sel = uuid_table.select().\ + where(uuid_table.c.uuid.in_(uuid_block)) + # uuid_or_stmt = sql.or_(*(uuid_table.c.uuid == uuid + # for uuid in uuids)) + # uuid_sel = uuid_table.select(uuid_or_stmt) + with self.engine.connect() as conn: + res = list(conn.execute(uuid_sel)) + if not ignore_missing and len(results) != len(uuids): + # TODO + # figure out which UUID is missing, raise error on first found + pass + results += res return results diff --git a/openpathsampling/new/storage.py b/openpathsampling/new/storage.py index 842220bfb..ddd1a3187 100644 --- a/openpathsampling/new/storage.py +++ b/openpathsampling/new/storage.py @@ -111,21 +111,25 @@ def register_from_instance(self, lookup, obj): def register_missing_tables_for_objects(self, uuid_obj_dict): # mistting items are handled by the special_lookup - lookup_examples = {} + lookup_examples = set([]) for obj in uuid_obj_dict.values(): lookup = self.class_info.lookup_key(obj) if lookup not in lookup_examples: self.register_from_instance(lookup, obj) + lookup_examples |= {lookup} def save(self, obj): # check if obj is in DB (maybe this can be removed?) + logger.debug("Starting save") exists = self.backend.load_uuids_table(uuids=[get_uuid(obj)], ignore_missing=True) if exists: return # find all UUIDs we need to save with this object # TODO: (perf) is this faster if we stop traversal on cached UUID? + logger.debug("Listing all objects to save") uuids = get_all_uuids(obj) + logger.debug("Checking if objects already exist in database") # remove any UUIDs that have already been saved exists = self.backend.load_uuids_table(uuids=list(uuids.keys()), ignore_missing=True) @@ -146,7 +150,6 @@ def save(self, obj): # table, but the table doesn't exist (e.g., for dynamically # added tables) missing = by_table.pop('__missing__') - print missing logger.info("Attempting to register for {} missing objects".\ format(len(missing))) self.register_missing_tables_for_objects(missing) @@ -157,13 +160,15 @@ def save(self, obj): by_table.update(missing_by_table) # this is the actual serialization + logger.debug("Filling {} tables: {}"\ + .format( len(by_table), str(list(by_table.keys())))) for table in by_table: serialize = self.class_info[table].serializer storables_list = [serialize(o) for o in by_table[table].values()] - logger.info("Storing {} objects to table {}".\ + logger.debug("Storing {} objects to table {}".\ format(len(storables_list), table)) self.backend.add_to_table(table, storables_list) - logger.info("Storing complete") + logger.debug("Storing complete") def load(self, input_uuids): # loading happens in 4 parts: diff --git a/openpathsampling/new/tools.py b/openpathsampling/new/tools.py index 582c46267..8bc08b946 100644 --- a/openpathsampling/new/tools.py +++ b/openpathsampling/new/tools.py @@ -58,6 +58,17 @@ def dict_group_by(dct, key_extract): results[key_extract(key, value)].update({key: value}) return results +def block(sliceable, length): + max_len = len(sliceable) + n_iterations = max_len // length + 1 + min_val = 0 + max_val = length + while max_val < max_len: + yield sliceable[slice(min_val, max_val)] + min_val += length + max_val += length + max_val = min(max_val, max_len) + def compare_sets(set1, set2): only_in_1 = set1 - set2 diff --git a/openpathsampling/sample.py b/openpathsampling/sample.py index b14ad86d9..85297a55e 100644 --- a/openpathsampling/sample.py +++ b/openpathsampling/sample.py @@ -7,7 +7,7 @@ from openpathsampling.tools import refresh_output -from collections import Counter +from collections import Counter, Mapping logger = logging.getLogger(__name__) @@ -22,7 +22,7 @@ def __init__(self, key, sample, sample_key): # @lazy_loading_attributes('movepath') -class SampleSet(StorableObject): +class SampleSet(StorableObject, Mapping): """ SampleSet is essentially a list of samples, with a few conveniences. It can be treated as a list of samples (using, e.g., .append), or as a @@ -79,6 +79,9 @@ def __init__(self, samples, movepath=None): def ensembles(self): return self.ensemble_dict.keys() + def values(self): + return self.samples + @property def replicas(self): return self.replica_dict.keys() From 2c8183fac3ecec6f2067316de8c7cf805a31a2df Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Sun, 11 Feb 2018 03:37:27 +0100 Subject: [PATCH 096/464] corrected get_all_uuids --- openpathsampling/new/serialization_helpers.py | 53 ++++++++++++++++--- openpathsampling/new/tools.py | 11 ++-- 2 files changed, 52 insertions(+), 12 deletions(-) diff --git a/openpathsampling/new/serialization_helpers.py b/openpathsampling/new/serialization_helpers.py index c4b2a1ee6..503bb1915 100644 --- a/openpathsampling/new/serialization_helpers.py +++ b/openpathsampling/new/serialization_helpers.py @@ -1,6 +1,7 @@ import importlib import ujson import networkx as nx +import numpy as np import networkx.algorithms.dag as nx_dag from tools import flatten_all, nested_update, group_by_function from tools import is_iterable, is_mappable, is_numpy_iterable @@ -42,14 +43,50 @@ def is_uuid_string(obj): # NOTE: this needs find everything, including if the iterable/mapping has a # UUID, find that and things under it -def get_all_uuids(initial_object): - uuid_dict = {get_uuid(initial_object): initial_object} - with_uuid = [o for o in flatten_all(initial_object.to_dict()) - if has_uuid(o)] - for obj in with_uuid: - uuid_dict.update({get_uuid(obj): obj}) - uuid_dict.update(get_all_uuids(obj)) - return uuid_dict +def get_all_uuids(initial_object, excluded_iterables=None, known_uuids=None): + if excluded_iterables is None: + excluded_iterables = np.ndarray + if known_uuids is None: + known_uuids = {} + objects = {initial_object} + uuids = {} + while objects: + new_objects = set([]) + for obj in objects: + obj_uuid = get_uuid(obj) if has_uuid(obj) else None + # filter known uuids: skip processing if known + if obj_uuid in uuids or obj_uuid in known_uuids: + continue + # UUID objects + if has_uuid(obj): + uuids.update({obj_uuid: obj}) + # this part might be optimized + dct = obj.to_dict() + # get iterable/mappable UUID objects that would be flattened, + # then get objects in lists/dicts + new_objects.update({o for o in dct.values() if has_uuid(o)}) + # this is really slow in test because the lazy snapshots + # have to be reloaded + new_objects.update({o for o in flatten_all(dct) if has_uuid(o)}) + + # mappables and iterables + if is_mappable(obj): + new_objects.update(set(obj.values())) + elif is_iterable(obj) and not is_numpy_iterable(obj): + new_objects.update(set(obj)) + objects = new_objects + return uuids + + +# older version +# def get_all_uuids(initial_object): +# uuid_dict = {get_uuid(initial_object): initial_object} +# with_uuid = [o for o in flatten_all(initial_object.to_dict()) +# if has_uuid(o)] +# for obj in with_uuid: +# uuid_dict.update({get_uuid(obj): obj}) +# uuid_dict.update(get_all_uuids(obj)) +# return uuid_dict def find_dependent_uuids(json_dct): diff --git a/openpathsampling/new/tools.py b/openpathsampling/new/tools.py index 8bc08b946..8078d4b60 100644 --- a/openpathsampling/new/tools.py +++ b/openpathsampling/new/tools.py @@ -76,11 +76,13 @@ def compare_sets(set1, set2): return (only_in_1, only_in_2) # flatten and variants -def flatten(inputs, value_iter, classes): +def flatten(inputs, value_iter, classes, excluded=None): + if excluded is None: + excluded = basestring results = [] for val in value_iter(inputs): - if isinstance(val, classes) and not isinstance(val, basestring): - results += flatten(val, value_iter, classes) + if isinstance(val, classes) and not isinstance(val, excluded): + results += flatten(val, value_iter, classes, excluded) else: results.append(val) return results @@ -95,7 +97,8 @@ def flatten_all(obj): is_mappable = lambda x: isinstance(x, collections.Mapping) return flatten(obj, lambda x: x.values() if is_mappable(x) else x.__iter__(), - (collections.Mapping, collections.Iterable)) + (collections.Mapping, collections.Iterable), + (basestring, ndarray)) def nested_update(original, update): for (k, v) in update.items(): From 72a2c20daee196b8cd78119853f4c167e57ef631 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Sun, 11 Feb 2018 04:14:26 +0100 Subject: [PATCH 097/464] looks like we can store a sample_set now! reloading not tested.... --- openpathsampling/engines/trajectory.py | 4 ++++ openpathsampling/new/ops_storage.py | 7 ++++++- openpathsampling/new/serialization.py | 6 ++++++ openpathsampling/new/sql_backend.py | 2 +- 4 files changed, 17 insertions(+), 2 deletions(-) diff --git a/openpathsampling/engines/trajectory.py b/openpathsampling/engines/trajectory.py index 4e0d3c732..ed1ef7f55 100644 --- a/openpathsampling/engines/trajectory.py +++ b/openpathsampling/engines/trajectory.py @@ -65,6 +65,10 @@ def __str__(self): def __repr__(self): return 'Trajectory[' + str(len(self)) + ']' + @property + def snapshots(self): + return list(self) + def map(self, fnc, allow_fast=True): """ This runs a function and tries to be fast. diff --git a/openpathsampling/new/ops_storage.py b/openpathsampling/new/ops_storage.py index a4493a0f0..2a9241134 100644 --- a/openpathsampling/new/ops_storage.py +++ b/openpathsampling/new/ops_storage.py @@ -9,6 +9,11 @@ from serialization_helpers import get_uuid +from serialization import ( + ToDictSerializer, DefaultSerializer, DefaultDeserializer, + SimulationObjectSerializer +) + from storage import ClassInfo import snapshots @@ -45,7 +50,7 @@ def special_lookup_key(self, item): ops_class_info = OPSClassInfoContainer( default_info=ClassInfo('simulation_objects', cls=StorableObject, - serializer=serialize_sim, + serializer=SimulationObjectSerializer(), deserializer=deserialize_sim), class_info_list=[ ClassInfo(table='samples', cls=paths.Sample), diff --git a/openpathsampling/new/serialization.py b/openpathsampling/new/serialization.py index 6e6412738..5d69c3b47 100644 --- a/openpathsampling/new/serialization.py +++ b/openpathsampling/new/serialization.py @@ -185,6 +185,11 @@ def default_deserialize(self, uuid, dct, table, existing_uuids): return dct +class SimulationObjectSerializer(object): + def __call__(self, obj): + return {'uuid': serialization.get_uuid(obj), + 'json': serialization.to_json_obj(obj)} + class DefaultDeserializer(object): default_handlers = { 'lazy': serialization.search_caches, @@ -236,6 +241,7 @@ class ToDictSerializer(DefaultDeserializer): 'uuid': serialization.get_uuid, 'lazy': serialization.get_uuid, 'json': serialization.to_bare_json, + 'json_obj': serialization.to_json_obj, 'list_uuid': serialization.to_bare_json } diff --git a/openpathsampling/new/sql_backend.py b/openpathsampling/new/sql_backend.py index e5cc299eb..ca16d4ded 100644 --- a/openpathsampling/new/sql_backend.py +++ b/openpathsampling/new/sql_backend.py @@ -332,7 +332,7 @@ def add_to_table(self, table_name, objects): # for obj in objects] insert_statements = [] for obj in objects: - print obj + # print obj # extreme debugging, not even worth logging insert_statements.append(table.insert().values(**obj)) with self.engine.connect() as conn: From 8f32692bac854d951a9fb75743ec2f3fd09ab576 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Sun, 11 Feb 2018 05:05:57 +0100 Subject: [PATCH 098/464] fixes so all notebooks work again --- openpathsampling/new/sql_backend.py | 5 ++++- openpathsampling/new/tools.py | 5 +++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/openpathsampling/new/sql_backend.py b/openpathsampling/new/sql_backend.py index ca16d4ded..e084db634 100644 --- a/openpathsampling/new/sql_backend.py +++ b/openpathsampling/new/sql_backend.py @@ -75,7 +75,7 @@ def __init__(self, filename, mode='r', sql_dialect=None, echo=False): sql_dialect = tools.none_to_default(sql_dialect, 'sqlite') self.mode = mode self.debug = False - self.max_query_size = 500 + self.max_query_size = 900 # override later if mode == 'r' or 'a' self.schema = {} @@ -365,6 +365,7 @@ def load_uuids_table(self, uuids, ignore_missing=False): logger.debug("Looking for {} UUIDs".format(len(uuids))) results = [] for uuid_block in tools.block(uuids, self.max_query_size): + logger.debug("New block of {} UUIDs".format(len(uuid_block))) uuid_sel = uuid_table.select().\ where(uuid_table.c.uuid.in_(uuid_block)) # uuid_or_stmt = sql.or_(*(uuid_table.c.uuid == uuid @@ -378,6 +379,8 @@ def load_uuids_table(self, uuids, ignore_missing=False): pass results += res + logger.debug("Found {} UUIDs".format(len(results))) + return results def load_table_data(self, uuid_table_rows): diff --git a/openpathsampling/new/tools.py b/openpathsampling/new/tools.py index 8078d4b60..e6f954df2 100644 --- a/openpathsampling/new/tools.py +++ b/openpathsampling/new/tools.py @@ -59,11 +59,12 @@ def dict_group_by(dct, key_extract): return results def block(sliceable, length): + sliceable = list(sliceable) max_len = len(sliceable) n_iterations = max_len // length + 1 min_val = 0 - max_val = length - while max_val < max_len: + max_val = min(length, max_len) + while min_val <= max_len: yield sliceable[slice(min_val, max_val)] min_val += length max_val += length From a19f04087f65773a0ab43098334ab31ec14ec69d Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Mon, 12 Feb 2018 15:54:50 +0100 Subject: [PATCH 099/464] Reloading, including lazies --- openpathsampling/new/class_info.py | 132 ++++++++++++++++++ openpathsampling/new/ops_storage.py | 8 +- openpathsampling/new/serialization.py | 41 ++++-- openpathsampling/new/serialization_helpers.py | 11 +- openpathsampling/new/storage.py | 49 +++++-- 5 files changed, 208 insertions(+), 33 deletions(-) create mode 100644 openpathsampling/new/class_info.py diff --git a/openpathsampling/new/class_info.py b/openpathsampling/new/class_info.py new file mode 100644 index 000000000..cf102c174 --- /dev/null +++ b/openpathsampling/new/class_info.py @@ -0,0 +1,132 @@ +import tools + +from serialization import DefaultSerializer, DefaultDeserializer + +import cloudpickle + +class ClassInfo(object): + """ + Parameters + ---------- + table : str + the table name for this object type + cls : class + the class for this object type (used in the default deserializer) + serializer : callable + serializer for this object type (None gives the default serializer) + deserializer : callable + deserializer for this object type (None gives the default + deserializer) + lookup_result : any + the result when ClassInfoContainer looks up objects in this table + """ + def __init__(self, table, cls, serializer=None, deserializer=None, + lookup_result=None): + self.table = table + self.cls = cls + self.serializer = serializer + self.deserializer = deserializer + if lookup_result is None: + lookup_result = cls + self.lookup_result = lookup_result + + def set_defaults(self, schema): + if self.serializer is None: + self.serializer = DefaultSerializer(schema, self.table, + self.cls) + if self.deserializer is None: + self.deserializer = DefaultDeserializer(schema, self.table, + self.cls) + + def __repr__(self): + return ("ClassInfo(table=" + self.table + ", cls=" + str(self.cls) + + ", lookup_result=" + str(self.lookup_result) + ")") + + +class ClassInfoContainer(object): + """Connect table to serialization information. + + This is the primary location for information connecting application + objects (i.e., OPS) to the serialization mechanisms. In particular, the + __getattr__ in this can take either an instance or a table name, and in + either case links it to the ClassInfo. This lets us link an object + instance to the name of the table where it should be stored, and to + link the table to the serialization methods. + + Notes + ----- + Linking instances to tables can require special treatment. The default + behavior is to use the class of the object to identify the table, and + this works for most cases. However, sometimes a class can map to more + than one table, and therefore is not a unique key. For example, a single + class might be used to represent data with different dimensions, and + therefore require different tables (e.g, coordinates for different + systems). In such cases, the ClassInfoContainer needs to be subclassed + with specialized information. + """ + def __init__(self, default_info, class_info_list=None): + class_info_list = tools.none_to_default(class_info_list, []) + self.lookup_to_info = {} + self.table_to_info = {} + self.class_info_list = [] + self.default_info = default_info + self.missing_table = ClassInfo(table="__missing__", cls=None) + self.add_class_info(default_info) + for info in class_info_list: + self.add_class_info(info) + + def add_class_info(self, info_node): + # check that we're not in any existing + self.class_info_list.append(info_node) + # TODO: is it possible to generalize the special cases (use the type + # of the expected return to identify the function to call -- won't + # be completely general, but may simplify some) + self.lookup_to_info.update({info_node.lookup_result: info_node}) + self.table_to_info.update({info_node.table: info_node}) + + @property + def tables(self): + tables = [info.table for info in self.class_info_list] + tables.append(self.default_info.table) + return tables + + def lookup_key(self, item): + if not self.is_special(item): + lookup_key = item.__class__ + else: + lookup_key = self.special_lookup_key(item) + return lookup_key + + def is_special(self, item): + return False + + def special_lookup_key(self, item): + return NotImplementedError("No special types implemented") + + def get_special(self, item): + lookup = self.special_lookup_key(item) + try: + return self.lookup_to_info[lookup] + except KeyError: + return self.missing_table + + def __getitem__(self, item): + if tools.is_string(item): + return self.table_to_info[item] + elif self.is_special(item): + return self.get_special(item) + else: + lookup = self.lookup_key(item) + try: + return self.lookup_to_info[lookup] + except KeyError as e: + if isinstance(item, self.default_info.cls): + return self.default_info + else: + raise e + + def __repr__(self): # pragma: no cover + return ("ClassInfoContainer(default_info=" + repr(self.default_info) + + ", class_info_list=" + repr(self.class_info_list) + ")") + + diff --git a/openpathsampling/new/ops_storage.py b/openpathsampling/new/ops_storage.py index 2a9241134..b52414fc9 100644 --- a/openpathsampling/new/ops_storage.py +++ b/openpathsampling/new/ops_storage.py @@ -22,11 +22,11 @@ ops_schema = { 'samples': [('trajectory', 'lazy'), ('ensemble', 'uuid'), - ('replica', 'int'), + ('replica', 'int')], # in my opinion, the next 3 should be removed - ('parent', 'lazy'), ('bias', 'float'), - ('mover', 'uuid')], - # movepath no longer exists in sample sets? + # ('parent', 'lazy'), ('bias', 'float'), + # ('mover', 'lazy')], + # # movepath no longer exists in sample sets? 'sample_sets': [('samples', 'list_uuid')], #, ('movepath', 'lazy')], 'trajectories': [('snapshots', 'list_uuid')], 'move_changes': [('mover', 'uuid'), ('details', 'lazy'), ('cls', 'str'), diff --git a/openpathsampling/new/serialization.py b/openpathsampling/new/serialization.py index 5d69c3b47..b3421fac3 100644 --- a/openpathsampling/new/serialization.py +++ b/openpathsampling/new/serialization.py @@ -10,7 +10,9 @@ def load_list_uuid(json_str, cache_list): uuid_list = json.loads(json_str) - return [search_caches(uuid, cache_list) for uuid in uuid_list] + uuid_list = [serialization.decode_uuid(u) for u in uuid_list] + return [serialization.search_caches(uuid, cache_list) + for uuid in uuid_list] def make_lazy_class(cls_): @@ -22,32 +24,45 @@ class LazyLoader(GenericLazyLoader, cls_): class GenericLazyLoader(object): def __init__(self, uuid, class_, storage): - self.__uuid__ = uuid + serialization.set_uuid(self, uuid) self.storage = storage self.class_ = class_ self._loaded_object = None def load(self): if self._loaded_object is None: - self._loaded_object = self.storage.load(self.__uuid__) + self._loaded_object = \ + self.storage.load([serialization.get_uuid(self)], + force=True)[0] if self._loaded_object is None: raise RuntimeError("UUID not found in storage: " + - str(self.__uuid__)) + serialization.get_uuid(self)) return self._loaded_object def __getattr__(self, attr): + # apparently IPython pretty-printing looks for a bunch of + # attributes; this means we auto-load if we try to autoprint the + # repr in IPython (TODO) return getattr(self.load(), attr) + def __getitem__(self, item): + return self.load()[item] + def __iter__(self): - loaded = self.load() - if not hasattr(loaded, '__iter__'): - raise TypeError() # TODO: message - # TODO: load all objects in the list? - return loaded.__iter__ + return self.load().__iter__() + + def __str__(self): + if self._loaded_object: + return str(self._loaded_object) + else: + return repr(self) - def repr(self): - return ("") + def __repr__(self): + if self._loaded_object: + return repr(self._loaded_object) + else: + return ("") class Serialization(object): @@ -88,6 +103,8 @@ def make_all_lazies(self, lazies): # lazies is dict of {table_name: list_of_lazy_uuid_rows} all_lazies = {} for (table, lazy_uuid_rows) in lazies.items(): + logger.debug("Making {} lazy proxies for objects in table '{}'"\ + .format(len(lazy_uuid_rows), table)) cls = self.table_to_class[table] for row in lazy_uuid_rows: all_lazies[row.uuid] = self.make_lazy(cls, row.uuid) diff --git a/openpathsampling/new/serialization_helpers.py b/openpathsampling/new/serialization_helpers.py index 503bb1915..ad9108e56 100644 --- a/openpathsampling/new/serialization_helpers.py +++ b/openpathsampling/new/serialization_helpers.py @@ -190,7 +190,7 @@ def from_json_obj(uuid, table_row, cache_list): def uuids_from_table_row(table_row, schema_entries): # take the schema entries here, not the whole schema - lazy = [] + lazy = set([]) uuid = [] for (attr, attr_type) in schema_entries: if attr_type == 'uuid': @@ -198,15 +198,16 @@ def uuids_from_table_row(table_row, schema_entries): elif attr_type == 'list_uuid': # TODO: can find_dependent_uuids work here? uuid_list = ujson.loads(getattr(table_row, attr)) + uuid_list = [decode_uuid(u) for u in uuid_list] uuid.extend(uuid_list) elif attr_type == 'json_obj': json_dct = getattr(table_row, attr) uuid_list = find_dependent_uuids(json_dct) uuid.extend([str(u) for u in uuid_list]) elif attr_type == 'lazy': - lazy.append(getattr(table_row, attr)) + lazy.add(getattr(table_row, attr)) # other cases aren't UUIDs and are ignored - dependencies = {table_row.uuid: uuid + lazy} + dependencies = {table_row.uuid: uuid + list(lazy)} return (uuid, lazy, dependencies) @@ -223,7 +224,7 @@ def get_all_uuids_loading(uuid_list, backend, schema, existing_uuids=None): known_uuids = set(existing_uuids.keys()) uuid_to_table = {} all_table_rows = [] - lazy = [] + lazy = set([]) dependencies = {} while uuid_list: new_uuids = {uuid for uuid in uuid_list if uuid not in known_uuids} @@ -237,7 +238,7 @@ def get_all_uuids_loading(uuid_list, backend, schema, existing_uuids=None): entries = schema[uuid_to_table[row.uuid]] loc_uuid, loc_lazy, deps = uuids_from_table_row(row, entries) uuid_list += loc_uuid - lazy += loc_lazy + lazy.update(loc_lazy) dependencies.update(deps) all_table_rows += new_table_rows diff --git a/openpathsampling/new/storage.py b/openpathsampling/new/storage.py index ddd1a3187..76a5bd207 100644 --- a/openpathsampling/new/storage.py +++ b/openpathsampling/new/storage.py @@ -150,7 +150,7 @@ def save(self, obj): # table, but the table doesn't exist (e.g., for dynamically # added tables) missing = by_table.pop('__missing__') - logger.info("Attempting to register for {} missing objects".\ + logger.info("Registering tables for {} missing objects".\ format(len(missing))) self.register_missing_tables_for_objects(missing) missing_by_table = tools.dict_group_by(missing, get_table_name) @@ -170,33 +170,58 @@ def save(self, obj): self.backend.add_to_table(table, storables_list) logger.debug("Storing complete") - def load(self, input_uuids): + def load(self, input_uuids, force=False): # loading happens in 4 parts: # 1. Get UUIDs that need to be loaded # 2. Build the DAG to determine loading order # 3. Make all lazy objects # 4. Reserialize remaining in DAG order - results = {uuid: self.cache[uuid] for uuid in input_uuids - if uuid in self.cache} - uuid_list = [uuid for uuid in input_uuids if uuid not in self.cache] - to_load, lazies, dependencies, uuid_to_table = \ + # set force=True to make it reload this full object (used for + # loading a lazy-loaded object) + if isinstance(input_uuids, basestring): + # TEMP: remove; for now, prevents my stupidity + raise RuntimeError("David, you forgot to wrap UUID in list") + + logger.debug("Starting to load {} objects".format(len(input_uuids))) + if force: + cache = {} + for uuid in input_uuids: + if uuid in self.cache: + del self.cache[uuid] + else: + cache = self.cache + + cache = self.cache + + results = {uuid: cache[uuid] for uuid in input_uuids + if uuid in cache} + uuid_list = [uuid for uuid in input_uuids if uuid not in cache] + logger.debug("Getting internal structure of {} non-cached objects"\ + .format(len(uuid_list))) + to_load, lazy_uuids, dependencies, uuid_to_table = \ get_all_uuids_loading(uuid_list=uuid_list, backend=self.backend, schema=self.schema, - existing_uuids=self.cache) + existing_uuids=cache) + logger.debug("Loading {} objects; creating {} lazy proxies"\ + .format(len(to_load), len(lazy_uuids))) # build the dag dag = dependency_dag(dependencies) # lazies can't have dependencies - lazies = tools.group_by_function(lazies, - lambda r: uuid_to_table[r.uuid]) + logger.debug("Identifying classes for {} lazy proxies"\ + .format(len(lazy_uuids))) + lazy_uuid_rows = self.backend.load_uuids_table(lazy_uuids) + group_table = self.backend.uuid_row_to_table_name + lazies = tools.group_by_function(lazy_uuid_rows, group_table) new_uuids = self.serialization.make_all_lazies(lazies) - + logger.debug("Reconstructing from {} objects".format(len(dag))) # deserialize in order uuid_to_table_row = {r.uuid: r for r in to_load} for uuid in dag_reload_order(dag): - if uuid not in self.cache: + if uuid not in self.cache and uuid not in new_uuids: + is_in = [k for (k, v) in dependencies.items() if v==uuid] table = uuid_to_table[uuid] table_row = uuid_to_table_row[uuid] table_dict = {attr: getattr(table_row, attr) @@ -239,7 +264,7 @@ def __getitem__(self, key): def __setitem__(self, key, value): self.cache[key] = value - def __delitem__(self, key, value): + def __delitem__(self, key): try: del self.cache[key] except KeyError as e: From 2aaf0fd27389d47782967d898511b5c0a75c0d8e Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Mon, 12 Feb 2018 18:47:37 +0100 Subject: [PATCH 100/464] faster SQL inserts --- openpathsampling/new/sql_backend.py | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/openpathsampling/new/sql_backend.py b/openpathsampling/new/sql_backend.py index e084db634..dc98afa1f 100644 --- a/openpathsampling/new/sql_backend.py +++ b/openpathsampling/new/sql_backend.py @@ -326,22 +326,20 @@ def add_to_table(self, table_name, objects): # this is if we don't use the UUID in the schema... but doing so # would be another option (redundant data, but better sanity checks) - # pop_uuids = [{k: v for (k, v) in obj.items() if k != 'uuid'} - # for obj in objects] - # insert_statements = [table.insert().values(**obj) - # for obj in objects] - insert_statements = [] - for obj in objects: - # print obj # extreme debugging, not even worth logging - insert_statements.append(table.insert().values(**obj)) with self.engine.connect() as conn: - # can't use executemany here because we need the resulting - # primary key values - uuid_to_rows = { - obj['uuid']: conn.execute(ins).inserted_primary_key[0] - for (obj, ins) in zip(objects, insert_statements) - } + conn.execute(table.insert(), objects) + + res = [] + uuids = [obj['uuid'] for obj in objects] + for uuid_block in tools.block(uuids, self.max_query_size): + sel_uuids_idx = sql.select([table.c.uuid, table.c.idx]).\ + where(table.c.uuid.in_(uuid_block)) + with self.engine.connect() as conn: + res += list(conn.execute(sel_uuids_idx)) + + uuid_to_rows = {r[0]: r[1] for r in res} + uuid_table = self.metadata.tables['uuid'] uuid_insert_dicts = [{'uuid': k, 'table': table_num, 'row':v} From 10e9c205100bf6217bb370214a33f3ff59cdab03 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Tue, 13 Feb 2018 11:54:49 +0100 Subject: [PATCH 101/464] StorageTable drafts (getitem doesn't work yet) --- openpathsampling/new/sql_backend.py | 7 ++++++ openpathsampling/new/storage.py | 33 ++++++++++++++--------------- 2 files changed, 23 insertions(+), 17 deletions(-) diff --git a/openpathsampling/new/sql_backend.py b/openpathsampling/new/sql_backend.py index dc98afa1f..668db67c6 100644 --- a/openpathsampling/new/sql_backend.py +++ b/openpathsampling/new/sql_backend.py @@ -429,3 +429,10 @@ def table_to_class(self): def uuid_row_to_table_name(self, uuid_row): return self.number_to_table[uuid_row.table] + + def table_iterator(self, table_name): + table = self.metadata.tables[table_name] + with self.engine.connect() as conn: + results = list(conn.execute(table.select())) + for row in results: + yield row diff --git a/openpathsampling/new/storage.py b/openpathsampling/new/storage.py index 76a5bd207..2f0c50a68 100644 --- a/openpathsampling/new/storage.py +++ b/openpathsampling/new/storage.py @@ -184,12 +184,10 @@ def load(self, input_uuids, force=False): logger.debug("Starting to load {} objects".format(len(input_uuids))) if force: - cache = {} + # call this del_cache(self.cache, input_uuids) for uuid in input_uuids: if uuid in self.cache: del self.cache[uuid] - else: - cache = self.cache cache = self.cache @@ -280,29 +278,30 @@ def __iter__(self): return itertools.chain(self.fixed_cache, self.cache) -# TODO: collections.Sequence? -class StorageTable(object): - def __init__(self, storage, table): +class StorageTable(collections.Sequence): + def __init__(self, storage, table, cache=None): self.storage = storage self.table = table + self.cache = tools.none_to_default(cache, {}) def __iter__(self): + # TODO: ensure that this gives us things in idx order backend_iterator = self.storage.backend.table_iterator(self.table) for row in backend_iterator: yield self.storage.load([row.uuid]) - def _get_single(self, value): - pass + def __getitem__(self, item): + backend_iterator = self.storage.backend.table_iterator(self.table) + return self.storage.load([backend_iterator[item].uuid]) - def __getitem__(self): - # getitem builds the complete object - # is is possible that using local lists of UUIDs to get might make - # this just as fast? (stopping at trajectory level; no snapshots) - pass + def __len__(self): + backend_iterator = self.storage.backend.table_iterator(self.table) + return len(backend_iterator) - def store_order(self): - # return in order of the idx - pass + def save(self, obj): + # this is to match with the netcdfplus API + self.storage.save(obj) # TODO: subclass for MCSteps with additional method .ordered, returning - # things in the order of the mccycle number + # things in the order of the mccycle number -- also, manage special + # caching From 07079b757fa94ad65a476f3b7506d6b54e7176e3 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Tue, 13 Feb 2018 13:37:08 +0100 Subject: [PATCH 102/464] StorageTable object seems to work Now to create them by default! --- openpathsampling/new/storage.py | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/openpathsampling/new/storage.py b/openpathsampling/new/storage.py index 2f0c50a68..efb0589d0 100644 --- a/openpathsampling/new/storage.py +++ b/openpathsampling/new/storage.py @@ -279,6 +279,8 @@ def __iter__(self): class StorageTable(collections.Sequence): + # NOTE: currently you still need to be able to hold the whole table in + # memory ... at least, with the SQL backend. def __init__(self, storage, table, cache=None): self.storage = storage self.table = table @@ -288,15 +290,22 @@ def __iter__(self): # TODO: ensure that this gives us things in idx order backend_iterator = self.storage.backend.table_iterator(self.table) for row in backend_iterator: - yield self.storage.load([row.uuid]) + yield self.storage.load([row.uuid])[0] def __getitem__(self, item): backend_iterator = self.storage.backend.table_iterator(self.table) - return self.storage.load([backend_iterator[item].uuid]) + if item < 0: + item += len(self) + n_iter = 0 + row = backend_iterator.next() + while row and n_iter < item: + row = backend_iterator.next() + n_iter += 1 + return self.storage.load([row.uuid])[0] def __len__(self): backend_iterator = self.storage.backend.table_iterator(self.table) - return len(backend_iterator) + return len(list(backend_iterator)) def save(self, obj): # this is to match with the netcdfplus API From b044c6e9305d185569d28ab3804cfa9a370519c7 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Tue, 13 Feb 2018 15:24:08 +0100 Subject: [PATCH 103/464] Access table iterators as storage.table_name --- openpathsampling/new/storage.py | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/openpathsampling/new/storage.py b/openpathsampling/new/storage.py index efb0589d0..25b39798e 100644 --- a/openpathsampling/new/storage.py +++ b/openpathsampling/new/storage.py @@ -51,6 +51,8 @@ def __init__(self, backend, class_info, schema=None, fallbacks=None): self.mode = self.backend.mode # TODO: implement fallbacks self.fallbacks = tools.none_to_default(fallbacks, []) + + self._storage_tables = {} # stores .steps, .snapshots self.simulation_objects = self._cache_simulation_objects() self.cache = MixedCache(self.simulation_objects) self.serialization = Serialization(self) @@ -102,7 +104,9 @@ def register_schema(self, schema, class_info_list, self.backend.register_schema(schema, table_to_class, backend_metadata) self.schema.update(schema) - # here's where we add the class_info to the backend + for table in self.schema: + self._storage_tables[table] = StorageTable(self, table) + # here's where we add the class_info to the backend self.serialization.register_serialization(schema, self.class_info) @@ -240,10 +244,13 @@ def _create_virtual_stores(self, store_categories): # create virtual stores for simulation objects (e.g., .volume, etc) pass - # def __getattr__(self, attr): + def __getattr__(self, attr): # override getattr to create iterators over the tables (stores) - # if attr in schema: - # return TableIterator(self, attr) + if attr in self._storage_tables: + return self._storage_tables[attr] + else: + raise AttributeError("'{}' object has no attribute '{}'"\ + .format(self.__class__.__name__, attr)) class MixedCache(collections.MutableMapping): @@ -284,7 +291,7 @@ class StorageTable(collections.Sequence): def __init__(self, storage, table, cache=None): self.storage = storage self.table = table - self.cache = tools.none_to_default(cache, {}) + self.cache = tools.none_to_default(cache, storage.cache) def __iter__(self): # TODO: ensure that this gives us things in idx order From 1713365e6427b22cdc5c370121d73578e9afe2a6 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Tue, 13 Feb 2018 18:18:37 +0100 Subject: [PATCH 104/464] can store entire MCStep without error --- openpathsampling/high_level/interface_set.py | 22 ++++++++++------ openpathsampling/new/serialization_helpers.py | 25 +++++++++++++------ openpathsampling/new/tools.py | 4 +-- 3 files changed, 34 insertions(+), 17 deletions(-) diff --git a/openpathsampling/high_level/interface_set.py b/openpathsampling/high_level/interface_set.py index 93483f5fd..3a7aa1e1a 100644 --- a/openpathsampling/high_level/interface_set.py +++ b/openpathsampling/high_level/interface_set.py @@ -191,14 +191,20 @@ def _set_volume_func(self, volume_func): self.volume_func = lambda minv: volume_func(minv, self.maxvals) def to_dict(self): - return {'cv': self.cv, - 'cv_max': self.cv_max, - 'minvals': self.minvals, - 'maxvals': self.maxvals, - 'intersect_with': self.intersect_with, - 'lambdas': self.lambdas, - 'direction': self.direction, - 'volumes': self.volumes} + dct = {'cv': self.cv, + 'minvals': self.minvals, + 'maxvals': self.maxvals, + 'intersect_with': self.intersect_with, + 'lambdas': self.lambdas, + 'direction': self.direction, + 'volumes': self.volumes} + try: + dct.update({'cv_max': self.cv_max}) + except AttributeError: # pragma: no cover + # reverse compatibility; deprecated in 0.9.5, remove in 2.0 + pass + + return dct def _load_from_dict(self, dct): self.cv = dct['cv'] diff --git a/openpathsampling/new/serialization_helpers.py b/openpathsampling/new/serialization_helpers.py index ad9108e56..beee8701e 100644 --- a/openpathsampling/new/serialization_helpers.py +++ b/openpathsampling/new/serialization_helpers.py @@ -3,8 +3,10 @@ import networkx as nx import numpy as np import networkx.algorithms.dag as nx_dag +import collections from tools import flatten_all, nested_update, group_by_function from tools import is_iterable, is_mappable, is_numpy_iterable +import tools # UUID recognition and encoding ##################################### # Things in here might be modified for performance optimization. In @@ -50,30 +52,39 @@ def get_all_uuids(initial_object, excluded_iterables=None, known_uuids=None): known_uuids = {} objects = {initial_object} uuids = {} + uuid_or_none = lambda o: get_uuid(o) if has_uuid(o) else None + flatten_uuids = lambda obj: tools.flatten_unique( + inputs=obj, + value_iter=lambda x: x.values() if is_mappable(x) else x.__iter__(), + classes=(collections.Mapping, collections.Iterable), + excluded=(basestring, np.ndarray), + unique_hash=uuid_or_none + ) while objects: - new_objects = set([]) + new_objects = [] for obj in objects: - obj_uuid = get_uuid(obj) if has_uuid(obj) else None + obj_uuid = uuid_or_none(obj) # filter known uuids: skip processing if known if obj_uuid in uuids or obj_uuid in known_uuids: continue # UUID objects - if has_uuid(obj): + if obj_uuid: uuids.update({obj_uuid: obj}) # this part might be optimized dct = obj.to_dict() # get iterable/mappable UUID objects that would be flattened, # then get objects in lists/dicts - new_objects.update({o for o in dct.values() if has_uuid(o)}) + new_objects.extend(dct.values()) + # new_objects.extend([o for o in dct.values() if has_uuid(o)]) # this is really slow in test because the lazy snapshots # have to be reloaded - new_objects.update({o for o in flatten_all(dct) if has_uuid(o)}) + # new_objects.update({o for o in flatten_uuids(dct)}) # mappables and iterables if is_mappable(obj): - new_objects.update(set(obj.values())) + new_objects.extend(list(obj.values())) elif is_iterable(obj) and not is_numpy_iterable(obj): - new_objects.update(set(obj)) + new_objects.extend(list(obj)) objects = new_objects return uuids diff --git a/openpathsampling/new/tools.py b/openpathsampling/new/tools.py index e6f954df2..1d2cbdbd4 100644 --- a/openpathsampling/new/tools.py +++ b/openpathsampling/new/tools.py @@ -78,8 +78,7 @@ def compare_sets(set1, set2): # flatten and variants def flatten(inputs, value_iter, classes, excluded=None): - if excluded is None: - excluded = basestring + excluded = none_to_default(excluded, basestring) results = [] for val in value_iter(inputs): if isinstance(val, classes) and not isinstance(val, excluded): @@ -88,6 +87,7 @@ def flatten(inputs, value_iter, classes, excluded=None): results.append(val) return results + def flatten_dict(dct): return flatten(dct, lambda x: x.values(), dict) From 08c5b8a02c5b62e7f45a476d8f8aaea262c92ed9 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Wed, 14 Feb 2018 12:43:54 +0100 Subject: [PATCH 105/464] fix problem reloading objects with no deps --- openpathsampling/new/storage.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/openpathsampling/new/storage.py b/openpathsampling/new/storage.py index 25b39798e..ce0cad572 100644 --- a/openpathsampling/new/storage.py +++ b/openpathsampling/new/storage.py @@ -53,8 +53,8 @@ def __init__(self, backend, class_info, schema=None, fallbacks=None): self.fallbacks = tools.none_to_default(fallbacks, []) self._storage_tables = {} # stores .steps, .snapshots - self.simulation_objects = self._cache_simulation_objects() - self.cache = MixedCache(self.simulation_objects) + self._simulation_objects = self._cache_simulation_objects() + self.cache = MixedCache(self._simulation_objects) self.serialization = Serialization(self) if self.schema is None: self.schema = backend.schema @@ -218,10 +218,16 @@ def load(self, input_uuids, force=False): lazies = tools.group_by_function(lazy_uuid_rows, group_table) new_uuids = self.serialization.make_all_lazies(lazies) + # objects with no dependents don't show up in dag; deserialize those + # first + no_deps = {r.uuid for r in to_load} + no_deps.difference_update(set(dag.nodes)) + logger.debug("Reconstructing from {} objects".format(len(dag))) # deserialize in order uuid_to_table_row = {r.uuid: r for r in to_load} - for uuid in dag_reload_order(dag): + ordered_uuids = list(no_deps) + dag_reload_order(dag) + for uuid in ordered_uuids: if uuid not in self.cache and uuid not in new_uuids: is_in = [k for (k, v) in dependencies.items() if v==uuid] table = uuid_to_table[uuid] From 9cc896cf227de00a87087bd39c3aae44786624d5 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Wed, 14 Feb 2018 13:47:34 +0100 Subject: [PATCH 106/464] Reloading networks works Fixes problem reloading dicts with UUID objects as keys --- openpathsampling/new/my_types.py | 5 +- openpathsampling/new/serialization_helpers.py | 56 +++++++------------ openpathsampling/new/storage.py | 3 +- 3 files changed, 25 insertions(+), 39 deletions(-) diff --git a/openpathsampling/new/my_types.py b/openpathsampling/new/my_types.py index 0bed2717c..7a082be55 100644 --- a/openpathsampling/new/my_types.py +++ b/openpathsampling/new/my_types.py @@ -1,7 +1,8 @@ import re import numpy as np -ndarray_re = \ - re.compile("ndarray\.(?P[a-z0-9]+)(?P\([0-9\,\ ]+\))") +ndarray_re = re.compile( + "ndarray\.(?P[a-z0-9]+)(?P\([0-9\,\ ]+\))" +) def parse_ndarray_type(type_name): m_ndarray = ndarray_re.match(type_name) diff --git a/openpathsampling/new/serialization_helpers.py b/openpathsampling/new/serialization_helpers.py index beee8701e..1c8a8c8ad 100644 --- a/openpathsampling/new/serialization_helpers.py +++ b/openpathsampling/new/serialization_helpers.py @@ -1,4 +1,5 @@ import importlib +import re import ujson import networkx as nx import numpy as np @@ -34,6 +35,9 @@ def decode_uuid(uuid_str): return uuid_str[5:-1] +encoded_uuid_re = re.compile("UUID\((?P[0-9]+)\)") + + def is_uuid_string(obj): return ( isinstance(obj, (str, unicode)) @@ -46,20 +50,10 @@ def is_uuid_string(obj): # NOTE: this needs find everything, including if the iterable/mapping has a # UUID, find that and things under it def get_all_uuids(initial_object, excluded_iterables=None, known_uuids=None): - if excluded_iterables is None: - excluded_iterables = np.ndarray - if known_uuids is None: - known_uuids = {} + known_uuids = tools.none_to_default(known_uuids, {}) objects = {initial_object} uuids = {} uuid_or_none = lambda o: get_uuid(o) if has_uuid(o) else None - flatten_uuids = lambda obj: tools.flatten_unique( - inputs=obj, - value_iter=lambda x: x.values() if is_mappable(x) else x.__iter__(), - classes=(collections.Mapping, collections.Iterable), - excluded=(basestring, np.ndarray), - unique_hash=uuid_or_none - ) while objects: new_objects = [] for obj in objects: @@ -70,18 +64,11 @@ def get_all_uuids(initial_object, excluded_iterables=None, known_uuids=None): # UUID objects if obj_uuid: uuids.update({obj_uuid: obj}) - # this part might be optimized - dct = obj.to_dict() - # get iterable/mappable UUID objects that would be flattened, - # then get objects in lists/dicts - new_objects.extend(dct.values()) - # new_objects.extend([o for o in dct.values() if has_uuid(o)]) - # this is really slow in test because the lazy snapshots - # have to be reloaded - # new_objects.update({o for o in flatten_uuids(dct)}) + new_objects.extend(list(obj.to_dict().values())) # mappables and iterables if is_mappable(obj): + new_objects.extend([o for o in obj.keys() if has_uuid(o)]) new_objects.extend(list(obj.values())) elif is_iterable(obj) and not is_numpy_iterable(obj): new_objects.extend(list(obj)) @@ -89,17 +76,6 @@ def get_all_uuids(initial_object, excluded_iterables=None, known_uuids=None): return uuids -# older version -# def get_all_uuids(initial_object): -# uuid_dict = {get_uuid(initial_object): initial_object} -# with_uuid = [o for o in flatten_all(initial_object.to_dict()) -# if has_uuid(o)] -# for obj in with_uuid: -# uuid_dict.update({get_uuid(obj): obj}) -# uuid_dict.update(get_all_uuids(obj)) -# return uuid_dict - - def find_dependent_uuids(json_dct): dct = ujson.loads(json_dct) uuids = [decode_uuid(obj) for obj in flatten_all(dct) @@ -120,11 +96,16 @@ def get_all_uuid_strings(dct): def replace_uuid(obj, uuid_encoding): # this is UUID => string replacement = obj + # fast exit for string keys + if tools.is_string(obj): + return replacement if has_uuid(obj): replacement = uuid_encoding(get_uuid(obj)) elif is_mappable(obj): - replacement = {k: replace_uuid(v, uuid_encoding) - for (k, v) in replacement.items()} + replacement = { + replace_uuid(k, uuid_encoding): replace_uuid(v, uuid_encoding) + for (k, v) in replacement.items() + } elif is_iterable(obj) and not is_numpy_iterable(obj): replace_type = type(obj) replacement = replace_type([replace_uuid(o, uuid_encoding) @@ -179,8 +160,12 @@ def from_dict_with_uuids(obj, cache_list): # (indicates problem in DAG reconstruction) uuid = decode_uuid(obj) replacement = search_caches(uuid, cache_list) + elif tools.is_string(obj): + # fast exit for string keys + return obj elif is_mappable(obj): - replacement = {k: from_dict_with_uuids(v, cache_list) + replacement = {from_dict_with_uuids(k, cache_list): \ + from_dict_with_uuids(v, cache_list) for (k, v) in obj.items()} elif is_iterable(obj) and not is_numpy_iterable(obj): replace_type = type(obj) @@ -213,8 +198,7 @@ def uuids_from_table_row(table_row, schema_entries): uuid.extend(uuid_list) elif attr_type == 'json_obj': json_dct = getattr(table_row, attr) - uuid_list = find_dependent_uuids(json_dct) - uuid.extend([str(u) for u in uuid_list]) + uuid.extend(encoded_uuid_re.findall(json_dct)) elif attr_type == 'lazy': lazy.add(getattr(table_row, attr)) # other cases aren't UUIDs and are ignored diff --git a/openpathsampling/new/storage.py b/openpathsampling/new/storage.py index ce0cad572..b15204d25 100644 --- a/openpathsampling/new/storage.py +++ b/openpathsampling/new/storage.py @@ -223,10 +223,11 @@ def load(self, input_uuids, force=False): no_deps = {r.uuid for r in to_load} no_deps.difference_update(set(dag.nodes)) - logger.debug("Reconstructing from {} objects".format(len(dag))) # deserialize in order uuid_to_table_row = {r.uuid: r for r in to_load} ordered_uuids = list(no_deps) + dag_reload_order(dag) + logger.debug("Reconstructing from {} objects"\ + .format(len(ordered_uuids))) for uuid in ordered_uuids: if uuid not in self.cache and uuid not in new_uuids: is_in = [k for (k, v) in dependencies.items() if v==uuid] From aa122b8f2db9958c745a79de80d3e592350f3cca Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Wed, 14 Feb 2018 16:14:31 +0100 Subject: [PATCH 107/464] starting toward pseudo-tables in new storage --- openpathsampling/new/ops_storage.py | 15 ++++++++++++++- openpathsampling/new/serialization.py | 3 +++ openpathsampling/new/storage.py | 5 ++++- openpathsampling/sample.py | 4 ++-- 4 files changed, 23 insertions(+), 4 deletions(-) diff --git a/openpathsampling/new/ops_storage.py b/openpathsampling/new/ops_storage.py index b52414fc9..a375ef3bd 100644 --- a/openpathsampling/new/ops_storage.py +++ b/openpathsampling/new/ops_storage.py @@ -41,12 +41,15 @@ ops_schema_sql_metadata = {} class OPSClassInfoContainer(storage.ClassInfoContainer): + special_superclasses = (paths.BaseSnapshot, paths.MoveChange) def is_special(self, item): - return isinstance(item, paths.BaseSnapshot) + return isinstance(item, self.special_superclasses) def special_lookup_key(self, item): if isinstance(item, paths.BaseSnapshot): return (get_uuid(item.engine), item.__class__) + elif isinstance(item, paths.MoveChange): + return paths.MoveChange ops_class_info = OPSClassInfoContainer( default_info=ClassInfo('simulation_objects', cls=StorableObject, @@ -66,6 +69,16 @@ def special_lookup_key(self, item): info.set_defaults(ops_schema) +ops_simulation_classes = { + 'volumes': paths.Volume, + 'ensembles': paths.Ensemble, + 'pathsimulators': paths.PathSimulator, + 'pathmovers': paths.PathMover, + 'networks': paths.TransitionNetwork, + 'cvs': paths.CollectiveVariable +} + + class OPSStorage(storage.GeneralStorage): def __init__(self, backend, schema, class_info, fallbacks=None): # TODO: this will change to match the current notation diff --git a/openpathsampling/new/serialization.py b/openpathsampling/new/serialization.py index b3421fac3..cfa875cbf 100644 --- a/openpathsampling/new/serialization.py +++ b/openpathsampling/new/serialization.py @@ -51,6 +51,9 @@ def __getitem__(self, item): def __iter__(self): return self.load().__iter__() + def __len__(self): + return len(self.load()) + def __str__(self): if self._loaded_object: return str(self._loaded_object) diff --git a/openpathsampling/new/storage.py b/openpathsampling/new/storage.py index b15204d25..5c01521cf 100644 --- a/openpathsampling/new/storage.py +++ b/openpathsampling/new/storage.py @@ -130,8 +130,8 @@ def save(self, obj): if exists: return # find all UUIDs we need to save with this object - # TODO: (perf) is this faster if we stop traversal on cached UUID? logger.debug("Listing all objects to save") + # TODO: use self.cache as the known_uuids uuids = get_all_uuids(obj) logger.debug("Checking if objects already exist in database") # remove any UUIDs that have already been saved @@ -244,6 +244,9 @@ def load(self, input_uuids, force=False): return [results[uuid] for uuid in input_uuids] def _cache_simulation_objects(self): + # backend_iterator = self.backend.table_iterator('simulation_objects') + # sim_obj_uuids = [row.uuid for row in backend_iterator] + # objs = self.load(sim_obj_uuids) # load up all the simulation objects return {} diff --git a/openpathsampling/sample.py b/openpathsampling/sample.py index 85297a55e..4447c750c 100644 --- a/openpathsampling/sample.py +++ b/openpathsampling/sample.py @@ -851,8 +851,8 @@ def __str__(self): # mystr = "Replica: "+str(self.replica)+"\n" # mystr += "Trajectory: "+str(self.trajectory)+"\n" # mystr += "Ensemble: "+repr(self.ensemble)+"\n" - mystr = 'Sample(RepID: %d, Ens: %s, %d steps)' % ( - self.replica, repr(self.ensemble), len(self.trajectory)) + mystr = 'Sample(RepID: %d, Ens: %s, %s)' % ( + self.replica, repr(self.ensemble), repr(self.trajectory)) return mystr @property From 0c47ed88741275ff8faa6bb23e88de720175cb78 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 15 Feb 2018 12:38:33 +0100 Subject: [PATCH 108/464] Pseudo-tables (for volumes, ensembles, etc) --- openpathsampling/new/ops_storage.py | 22 ++++++++++++++-------- openpathsampling/new/storage.py | 25 +++++++++++++++++++++---- 2 files changed, 35 insertions(+), 12 deletions(-) diff --git a/openpathsampling/new/ops_storage.py b/openpathsampling/new/ops_storage.py index a375ef3bd..99634114c 100644 --- a/openpathsampling/new/ops_storage.py +++ b/openpathsampling/new/ops_storage.py @@ -8,6 +8,7 @@ from openpathsampling.netcdfplus import StorableObject from serialization_helpers import get_uuid +import tools from serialization import ( ToDictSerializer, DefaultSerializer, DefaultDeserializer, @@ -69,6 +70,7 @@ def special_lookup_key(self, item): info.set_defaults(ops_schema) +# TODO: add more to these ops_simulation_classes = { 'volumes': paths.Volume, 'ensembles': paths.Ensemble, @@ -88,15 +90,19 @@ def __init__(self, backend, schema, class_info, fallbacks=None): @classmethod def from_backend(cls, backend, schema=None, class_info=None, - fallbacks=None): + simulation_classes=None, fallbacks=None): obj = cls.__new__(cls) - if schema is None: - scheme = ops_schema - if class_info is None: - class_info = ops_class_info - super(OPSStorage, obj).__init__(backend=backend, schema=schema, - class_info=class_info, - fallbacks=fallbacks) + schema = tools.none_to_default(schema, ops_schema) + class_info = tools.none_to_default(class_info, ops_class_info) + simulation_classes = tools.none_to_default(simulation_classes, + ops_simulation_classes) + super(OPSStorage, obj).__init__( + backend=backend, + schema=schema, + class_info=class_info, + simulation_classes=simulation_classes, + fallbacks=fallbacks + ) obj.n_snapshot_types = 0 return obj diff --git a/openpathsampling/new/storage.py b/openpathsampling/new/storage.py index 5c01521cf..41514130b 100644 --- a/openpathsampling/new/storage.py +++ b/openpathsampling/new/storage.py @@ -44,7 +44,8 @@ } class GeneralStorage(object): - def __init__(self, backend, class_info, schema=None, fallbacks=None): + def __init__(self, backend, class_info, schema=None, + simulation_classes=None, fallbacks=None): self.backend = backend self.schema = schema self.class_info = class_info @@ -52,6 +53,12 @@ def __init__(self, backend, class_info, schema=None, fallbacks=None): # TODO: implement fallbacks self.fallbacks = tools.none_to_default(fallbacks, []) + self.simulation_classes = tools.none_to_default(simulation_classes, + {}) + + self._pseudo_tables = {table_name: dict() + for table_name in self.simulation_classes} + self._storage_tables = {} # stores .steps, .snapshots self._simulation_objects = self._cache_simulation_objects() self.cache = MixedCache(self._simulation_objects) @@ -172,6 +179,9 @@ def save(self, obj): logger.debug("Storing {} objects to table {}".\ format(len(storables_list), table)) self.backend.add_to_table(table, storables_list) + # special handling for simulation objects + if table == 'simulation_objects': + self._update_pseudo_tables(by_table[table]) logger.debug("Storing complete") def load(self, input_uuids, force=False): @@ -250,14 +260,21 @@ def _cache_simulation_objects(self): # load up all the simulation objects return {} - def _create_virtual_stores(self, store_categories): - # create virtual stores for simulation objects (e.g., .volume, etc) - pass + def _update_pseudo_tables(self, simulation_objects): + for uuid, obj in simulation_objects.items(): + for (key, cls) in self.simulation_classes.items(): + if isinstance(obj, cls): + self._pseudo_tables[key][uuid] = obj + if obj.is_named: + self._pseudo_tables[key][obj.name] = obj + continue def __getattr__(self, attr): # override getattr to create iterators over the tables (stores) if attr in self._storage_tables: return self._storage_tables[attr] + elif attr in self._pseudo_tables: + return self._pseudo_tables[attr] else: raise AttributeError("'{}' object has no attribute '{}'"\ .format(self.__class__.__name__, attr)) From 66acbb4d185e4fe63f01146b1669144db3a55a25 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 15 Feb 2018 16:31:32 +0100 Subject: [PATCH 109/464] Fixes to get Details stored --- openpathsampling/movechange.py | 10 +++++ openpathsampling/new/ops_storage.py | 45 +++++++++++++++++-- openpathsampling/new/serialization.py | 2 + openpathsampling/new/serialization_helpers.py | 8 +++- openpathsampling/pathmover.py | 5 +++ 5 files changed, 65 insertions(+), 5 deletions(-) diff --git a/openpathsampling/movechange.py b/openpathsampling/movechange.py index 666f819d1..babce1f72 100644 --- a/openpathsampling/movechange.py +++ b/openpathsampling/movechange.py @@ -72,6 +72,16 @@ def __getattr__(self, item): e.args = tuple([e.args[0] + "; " + msg] + list(e.args[1:])) raise + def to_dict(self): + return { + 'mover': self.mover, + 'details': self.details, + 'samples': self.samples, + 'input_samples': self.input_samples, + 'subchanges': self.subchanges, + 'cls': self.__class__.__name__ + } + # hook for TreeMixin @property def _subnodes(self): diff --git a/openpathsampling/new/ops_storage.py b/openpathsampling/new/ops_storage.py index 99634114c..386663b8b 100644 --- a/openpathsampling/new/ops_storage.py +++ b/openpathsampling/new/ops_storage.py @@ -41,8 +41,36 @@ ops_schema_sql_metadata = {} +class MoveChangeDeserializer(DefaultDeserializer): + # in general, I think it would be better to reorg MoveChange to only be + # one class, but this is aimed at fixing problems with reloading + # MoveChange objects + def __init__(self, schema, table): + super(MoveChangeDeserializer, self).__init__( + schema=schema, + table=table, + cls=None + ) + + def __call__(self, uuid, table_dct, cache_list): + class_name = table_dct.pop('cls') + cls = serialization.import_class('openpathsampling.movechange', + class_name) + dct = self.make_dct(table_dct, cache_list) + # from here based on JHP's MoveChangeStore._load + obj = cls.__new__(cls) + paths.MoveChange.__init__(obj, mover=dct['mover']) + obj.samples = dct['samples'] + obj.details = dct['details'] + obj.subchanges = dct['subchanges'] + obj.input_samples = dct['input_samples'] + serialization.set_uuid(obj, uuid) + return obj + + class OPSClassInfoContainer(storage.ClassInfoContainer): - special_superclasses = (paths.BaseSnapshot, paths.MoveChange) + special_superclasses = (paths.BaseSnapshot, paths.MoveChange, + paths.Details) def is_special(self, item): return isinstance(item, self.special_superclasses) @@ -51,6 +79,11 @@ def special_lookup_key(self, item): return (get_uuid(item.engine), item.__class__) elif isinstance(item, paths.MoveChange): return paths.MoveChange + elif isinstance(item, paths.Details): + # TODO: this should be removed, since all Details classes are + # equivalent -- unfortunately, JHP's LoaderProxy breaks in that + # case + return paths.Details ops_class_info = OPSClassInfoContainer( default_info=ClassInfo('simulation_objects', cls=StorableObject, @@ -60,9 +93,15 @@ def special_lookup_key(self, item): ClassInfo(table='samples', cls=paths.Sample), ClassInfo(table='sample_sets', cls=paths.SampleSet), ClassInfo(table='trajectories', cls=paths.Trajectory), - ClassInfo(table='move_changes', cls=paths.MoveChange), + ClassInfo(table='move_changes', cls=paths.MoveChange, + deserializer=MoveChangeDeserializer( + schema=ops_schema, + table='move_changes' + )), ClassInfo(table='steps', cls=paths.MCStep), - ClassInfo(table='details', cls=paths.Details), + ClassInfo(table='details', cls=paths.Details, + serializer=SimulationObjectSerializer(), + deserializer=deserialize_sim), ] ) diff --git a/openpathsampling/new/serialization.py b/openpathsampling/new/serialization.py index cfa875cbf..11a40b1bd 100644 --- a/openpathsampling/new/serialization.py +++ b/openpathsampling/new/serialization.py @@ -10,6 +10,8 @@ def load_list_uuid(json_str, cache_list): uuid_list = json.loads(json_str) + if uuid_list is None: + return uuid_list uuid_list = [serialization.decode_uuid(u) for u in uuid_list] return [serialization.search_caches(uuid, cache_list) for uuid in uuid_list] diff --git a/openpathsampling/new/serialization_helpers.py b/openpathsampling/new/serialization_helpers.py index 1c8a8c8ad..02e3ffb42 100644 --- a/openpathsampling/new/serialization_helpers.py +++ b/openpathsampling/new/serialization_helpers.py @@ -63,6 +63,8 @@ def get_all_uuids(initial_object, excluded_iterables=None, known_uuids=None): continue # UUID objects if obj_uuid: + # print repr(obj) + # print obj.to_dict().keys() uuids.update({obj_uuid: obj}) new_objects.extend(list(obj.to_dict().values())) @@ -194,8 +196,10 @@ def uuids_from_table_row(table_row, schema_entries): elif attr_type == 'list_uuid': # TODO: can find_dependent_uuids work here? uuid_list = ujson.loads(getattr(table_row, attr)) - uuid_list = [decode_uuid(u) for u in uuid_list] - uuid.extend(uuid_list) + if uuid_list: + # skip if None (or empty) + uuid_list = [decode_uuid(u) for u in uuid_list] + uuid.extend(uuid_list) elif attr_type == 'json_obj': json_dct = getattr(table_row, attr) uuid.extend(encoded_uuid_re.findall(json_dct)) diff --git a/openpathsampling/pathmover.py b/openpathsampling/pathmover.py index 09ad90864..91daded34 100644 --- a/openpathsampling/pathmover.py +++ b/openpathsampling/pathmover.py @@ -2583,6 +2583,11 @@ def __str__(self): return mystr +# these subclasses make no actual difference; just alias them +# MoveDetails = Details +# SampleDetails = Details +# SampleDetails deprecated in OPS 0.9.3; will be removed in 2.0 + class MoveDetails(Details): """Details of the move as applied to a given replica From 56625bd76fc21e1146e2c7acf08404ef3dc367aa Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 15 Feb 2018 16:41:21 +0100 Subject: [PATCH 110/464] can reload move changes & details --- openpathsampling/new/ops_storage.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/openpathsampling/new/ops_storage.py b/openpathsampling/new/ops_storage.py index 386663b8b..2df8cad45 100644 --- a/openpathsampling/new/ops_storage.py +++ b/openpathsampling/new/ops_storage.py @@ -3,11 +3,12 @@ from serialization_helpers import to_json_obj as serialize_sim from serialization_helpers import from_json_obj as deserialize_sim +from serialization_helpers import import_class +from serialization_helpers import get_uuid, set_uuid import openpathsampling as paths from openpathsampling.netcdfplus import StorableObject -from serialization_helpers import get_uuid import tools from serialization import ( @@ -54,8 +55,7 @@ def __init__(self, schema, table): def __call__(self, uuid, table_dct, cache_list): class_name = table_dct.pop('cls') - cls = serialization.import_class('openpathsampling.movechange', - class_name) + cls = import_class('openpathsampling.movechange', class_name) dct = self.make_dct(table_dct, cache_list) # from here based on JHP's MoveChangeStore._load obj = cls.__new__(cls) @@ -64,7 +64,7 @@ def __call__(self, uuid, table_dct, cache_list): obj.details = dct['details'] obj.subchanges = dct['subchanges'] obj.input_samples = dct['input_samples'] - serialization.set_uuid(obj, uuid) + set_uuid(obj, uuid) return obj From 52a4ab4ad1a16d70fd554b5a2b2cb99c30c2b419 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Fri, 16 Feb 2018 12:48:55 +0100 Subject: [PATCH 111/464] runs toy MSTIS correctly! --- openpathsampling/new/serialization_helpers.py | 11 +++++- openpathsampling/new/sql_backend.py | 5 +++ openpathsampling/new/storage.py | 39 +++++++++++++------ 3 files changed, 41 insertions(+), 14 deletions(-) diff --git a/openpathsampling/new/serialization_helpers.py b/openpathsampling/new/serialization_helpers.py index 02e3ffb42..4df5c635a 100644 --- a/openpathsampling/new/serialization_helpers.py +++ b/openpathsampling/new/serialization_helpers.py @@ -21,7 +21,13 @@ def has_uuid(obj): def get_uuid(obj): # TODO: I can come up with a better string encoding than this - return str(obj.__uuid__) + try: + return str(obj.__uuid__) + except AttributeError as e: + if obj is None: + return obj + else: + raise e def set_uuid(obj, uuid): obj.__uuid__ = long(uuid) @@ -206,7 +212,8 @@ def uuids_from_table_row(table_row, schema_entries): elif attr_type == 'lazy': lazy.add(getattr(table_row, attr)) # other cases aren't UUIDs and are ignored - dependencies = {table_row.uuid: uuid + list(lazy)} + # remove all existiences of None as a UUID to depend on + dependencies = {table_row.uuid: (set(uuid) | lazy) - {None}} return (uuid, lazy, dependencies) diff --git a/openpathsampling/new/sql_backend.py b/openpathsampling/new/sql_backend.py index 668db67c6..6bfbcc987 100644 --- a/openpathsampling/new/sql_backend.py +++ b/openpathsampling/new/sql_backend.py @@ -151,6 +151,7 @@ def filename_from_dialect(filename, dialect): @staticmethod # TODO: this is not going to be specific to SQL; refactor + # TODO: move to backend.py def _extract_metadata(sql_schema_metadata, table, column): if sql_schema_metadata: try: @@ -175,6 +176,7 @@ def internal_tables_from_db(self): number_to_table = {v: k for (k, v) in table_to_number.items()} return table_to_number, number_to_table + # TODO: move to backend.py def table_list_is_consistent(self): """Test whether the DB, schema, and internal table list agree. """ @@ -187,6 +189,7 @@ def table_list_is_consistent(self): == interal_tables_2) return consistent + # TODO: move to backend.py def table_inconsistencies(self, table_name): """Test whether a given table is consistent with its entries in the UUID table. @@ -203,6 +206,7 @@ def table_inconsistencies(self, table_name): (table_only, uuid_only) = compare_sets(table_uuids, uuid_uuids) return table_only, uuid_only + # TODO: move to backend.py def table_is_consistent(self, table_name): """ Are all UUIDs in this table also in the UUID table, and vice versa? @@ -262,6 +266,7 @@ def _load_from_table(self, table_name, idx_list): return results + # TODO: move elsewhere (backend.py?) def parse_registration_type(self, type_name): ops_type = type_name ndarray_info = parse_ndarray_type(type_name) diff --git a/openpathsampling/new/storage.py b/openpathsampling/new/storage.py index 41514130b..2cdeaa5a2 100644 --- a/openpathsampling/new/storage.py +++ b/openpathsampling/new/storage.py @@ -174,10 +174,17 @@ def save(self, obj): logger.debug("Filling {} tables: {}"\ .format( len(by_table), str(list(by_table.keys())))) for table in by_table: + logger.debug("Storing {} objects to table {}".\ + format(len(by_table[table]), table)) serialize = self.class_info[table].serializer + + # DEBUG + # if table == 'move_changes': + # for o in by_table[table].values(): + # print o + # serialize(o) + storables_list = [serialize(o) for o in by_table[table].values()] - logger.debug("Storing {} objects to table {}".\ - format(len(storables_list), table)) self.backend.add_to_table(table, storables_list) # special handling for simulation objects if table == 'simulation_objects': @@ -198,23 +205,18 @@ def load(self, input_uuids, force=False): logger.debug("Starting to load {} objects".format(len(input_uuids))) if force: - # call this del_cache(self.cache, input_uuids) - for uuid in input_uuids: - if uuid in self.cache: - del self.cache[uuid] + self.cache.delete_items(input_uuids) - cache = self.cache - - results = {uuid: cache[uuid] for uuid in input_uuids - if uuid in cache} - uuid_list = [uuid for uuid in input_uuids if uuid not in cache] + results = {uuid: self.cache[uuid] for uuid in input_uuids + if uuid in self.cache} + uuid_list = [uuid for uuid in input_uuids if uuid not in self.cache] logger.debug("Getting internal structure of {} non-cached objects"\ .format(len(uuid_list))) to_load, lazy_uuids, dependencies, uuid_to_table = \ get_all_uuids_loading(uuid_list=uuid_list, backend=self.backend, schema=self.schema, - existing_uuids=cache) + existing_uuids=self.cache) logger.debug("Loading {} objects; creating {} lazy proxies"\ .format(len(to_load), len(lazy_uuids))) @@ -253,6 +255,12 @@ def load(self, input_uuids, force=False): results.update(new_uuids) return [results[uuid] for uuid in input_uuids] + def sync(self): + pass + + def sync_all(self): + pass + def _cache_simulation_objects(self): # backend_iterator = self.backend.table_iterator('simulation_objects') # sim_obj_uuids = [row.uuid for row in backend_iterator] @@ -287,6 +295,13 @@ def __init__(self, fixed_cache=None): self.fixed_cache = tools.none_to_default(fixed_cache, default={}) self.cache = {} + def delete_items(list_of_items, error_if_missing=False): + for item in list_of_items: + if item in self: + del self[item] + elif error_if_missing: + raise KeyError() # TODO: message and check error type + def __getitem__(self, key): if key in self.fixed_cache: return self.fixed_cache[key] From 1b576dd4c78d658240cc8cf4558cade2fe304bcf Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Fri, 16 Feb 2018 15:14:15 +0100 Subject: [PATCH 112/464] refactoring for readability --- openpathsampling/new/backend.py | 26 ++++++ openpathsampling/new/my_types.py | 8 ++ openpathsampling/new/sql_backend.py | 108 +++++------------------ openpathsampling/new/storage.py | 19 ++-- openpathsampling/new/test_sql_backend.py | 24 ++--- 5 files changed, 71 insertions(+), 114 deletions(-) create mode 100644 openpathsampling/new/backend.py diff --git a/openpathsampling/new/backend.py b/openpathsampling/new/backend.py new file mode 100644 index 000000000..5d1829013 --- /dev/null +++ b/openpathsampling/new/backend.py @@ -0,0 +1,26 @@ +from tools import group_by + +def extract_backend_metadata(metadata, table, column): + col_metadata = {} # default + if metadata: + try: + col_metadata = metadata[table][column] + except KeyError: + # doesn't matter whether missing key was table or column + pass + return col_metadata + +def backend_table_list_consistency(backend): + """Check that the stored list of tables matches the backend's schema""" + schema_tables = backend.schema.keys() + pass + +def backend_table_inconsistencies(backend, table_name): + """ + Check that UUIDs in a table match the UUIDs pointing to that table + """ + all_uuids = list(backend.table_iterator('uuid')) + all_uuids_by_table = group_by(all_uuids, + lambda r: backend.uuid_row_to_table_name) + tables = list(backend.table_iterator('tables')) + pass diff --git a/openpathsampling/new/my_types.py b/openpathsampling/new/my_types.py index 7a082be55..e7054f2a7 100644 --- a/openpathsampling/new/my_types.py +++ b/openpathsampling/new/my_types.py @@ -13,6 +13,14 @@ def parse_ndarray_type(type_name): return None +def backend_registration_type(type_name): + backend_type = type_name + ndarray_info = parse_ndarray_type(type_name) + if parse_ndarray_type(type_name): + backend_type = 'ndarray' + return backend_type + + uuid_types = ['uuid', 'lazy'] list_uuid = ['list_uuid'] builtin_types = ['str', 'int', 'float'] diff --git a/openpathsampling/new/sql_backend.py b/openpathsampling/new/sql_backend.py index 6bfbcc987..7c293a478 100644 --- a/openpathsampling/new/sql_backend.py +++ b/openpathsampling/new/sql_backend.py @@ -6,9 +6,11 @@ import tools import ujson as json -from my_types import parse_ndarray_type +from backend import extract_backend_metadata +from my_types import backend_registration_type from serialization_helpers import import_class + import logging logger = logging.getLogger(__name__) @@ -32,6 +34,21 @@ 'tables': {'name': {'primary_key': True}} } +def make_columns(table_name, schema, sql_schema_metadata): + columns = [] + if table_name not in ['uuid', 'tables']: + columns.append(sql.Column('idx', sql.Integer, + primary_key=True)) + columns.append(sql.Column('uuid', sql.String)) + for col, type_name in schema[table_name]: + # TODO: more general creation of type name + col_type = sql_type[backend_registration_type(type_name)] + metadata = extract_backend_metadata(sql_schema_metadata, + table_name, col) + columns.append(sql.Column(col, col_type, **metadata)) + return columns + + # TODO: test this, and then see if I can refactor existing code to use it # NOTE: looks like the results have to be loaded into memory before this # function ends (otherwise the DB connection closes and errors .. so make a @@ -149,23 +166,6 @@ def filename_from_dialect(filename, dialect): }[dialect] return uri_root.format(filename=filename) - @staticmethod - # TODO: this is not going to be specific to SQL; refactor - # TODO: move to backend.py - def _extract_metadata(sql_schema_metadata, table, column): - if sql_schema_metadata: - try: - table_metadata = sql_schema_metadata[table] - except KeyError: - return {} - try: - col_metadata = table_metadata[column] - except KeyError: - return {} - return col_metadata - else: - return {} - def internal_tables_from_db(self): """Obtain mappings of table name to number from database. """ @@ -176,55 +176,6 @@ def internal_tables_from_db(self): number_to_table = {v: k for (k, v) in table_to_number.items()} return table_to_number, number_to_table - # TODO: move to backend.py - def table_list_is_consistent(self): - """Test whether the DB, schema, and internal table list agree. - """ - db_tables = set(self.engine.table_names()) - db_tables_tables = self.metadata.tables['tables'] - schema_tables = set(self.schema.keys()) - internal_tables_1 = set(self.table_to_number.keys()) - internal_tables_2 = set(self.number_to_table.values()) - consistent = (db_table == scheme_tables == internal_tables_1 - == interal_tables_2) - return consistent - - # TODO: move to backend.py - def table_inconsistencies(self, table_name): - """Test whether a given table is consistent with its entries in the - UUID table. - """ - tables = self.storage.metadata.tables - table_num = self.table_to_number[table_name] - uuid_db = tables['uuid'] - uuid_sel = uuid_db.select().where(uuid_db.c.table == table_num) - with self.engine.connect() as conn: - table_data = list(conn.execute(tables[table_name].select())) - uuid_data = list(conn.execute(uuid_sel)) - table_uuids = set([val.uuid for val in table_data]) - uuid_uuids = set([val.uuid for val in uuid_data]) - (table_only, uuid_only) = compare_sets(table_uuids, uuid_uuids) - return table_only, uuid_only - - # TODO: move to backend.py - def table_is_consistent(self, table_name): - """ - Are all UUIDs in this table also in the UUID table, and vice versa? - - More specifically, this compares all UUIDs in this table with all - the objects pointing to this table in the UUID table. - - Note that this is an expensive process, and should be guaranteed by - the insertion process. But this can act as a useful check on the - data. The :meth:`.table_inconsistencies` method gives the detailed - results of the comparison, for debugging purposes. - """ - table_only, uuid_only = self.table_inconsistencies(table_name) - if table_only == set([]) and uuid_only == set([]): - return True - else: - return False - def _add_table_to_tables_list(self, table_name, table_schema, cls_): if table_name in ['uuid', 'tables']: return @@ -266,14 +217,6 @@ def _load_from_table(self, table_name, idx_list): return results - # TODO: move elsewhere (backend.py?) - def parse_registration_type(self, type_name): - ops_type = type_name - ndarray_info = parse_ndarray_type(type_name) - if parse_ndarray_type(type_name): - ops_type = 'ndarray' - return ops_type - ### FROM HERE IS THE GENERIC PUBLIC API def register_schema(self, schema, table_to_class, sql_schema_metadata=None): @@ -287,20 +230,9 @@ def register_schema(self, schema, table_to_class, """ for table_name in schema: - columns = [] - if table_name not in ['uuid', 'tables']: - columns.append(sql.Column('idx', sql.Integer, - primary_key=True)) - columns.append(sql.Column('uuid', sql.String)) - for col, type_name in schema[table_name]: - # TODO: more general creation of type name - col_type = sql_type[self.parse_registration_type(type_name)] - metadata = self._extract_metadata(sql_schema_metadata, - table_name, col) - columns.append(sql.Column(col, col_type, **metadata)) - + logger.info("Add schema table " + str(table_name)) + columns = make_columns(table_name, schema, sql_schema_metadata) try: - logger.info("Add schema table " + str(table_name)) table = sql.Table(table_name, self.metadata, *columns) except sql.exc.InvalidRequestError: raise TypeError("Schema registration problem. Your schema " diff --git a/openpathsampling/new/storage.py b/openpathsampling/new/storage.py index 2cdeaa5a2..3391ea161 100644 --- a/openpathsampling/new/storage.py +++ b/openpathsampling/new/storage.py @@ -269,13 +269,13 @@ def _cache_simulation_objects(self): return {} def _update_pseudo_tables(self, simulation_objects): - for uuid, obj in simulation_objects.items(): - for (key, cls) in self.simulation_classes.items(): - if isinstance(obj, cls): - self._pseudo_tables[key][uuid] = obj - if obj.is_named: - self._pseudo_tables[key][obj.name] = obj - continue + for uuid, obj in simulation_objects.items(): + for (key, cls) in self.simulation_classes.items(): + if isinstance(obj, cls): + self._pseudo_tables[key][uuid] = obj + if obj.is_named: + self._pseudo_tables[key][obj.name] = obj + continue def __getattr__(self, attr): # override getattr to create iterators over the tables (stores) @@ -333,11 +333,14 @@ class StorageTable(collections.Sequence): def __init__(self, storage, table, cache=None): self.storage = storage self.table = table - self.cache = tools.none_to_default(cache, storage.cache) + self.clear_cache_frequency = 1 + self.iter_block_size = 1 def __iter__(self): # TODO: ensure that this gives us things in idx order backend_iterator = self.storage.backend.table_iterator(self.table) + # TODO: implement use of self.iter_block_size + # TODO: implement use of self.clear_cache_frequency for row in backend_iterator: yield self.storage.load([row.uuid])[0] diff --git a/openpathsampling/new/test_sql_backend.py b/openpathsampling/new/test_sql_backend.py index 5c261dddd..c80855713 100644 --- a/openpathsampling/new/test_sql_backend.py +++ b/openpathsampling/new/test_sql_backend.py @@ -52,12 +52,12 @@ def _delete_tmp_files(): if os.path.isfile("test.sql"): os.remove("test.sql") - def test_extract_metadata(self): - sql_meta = { - 'uuid': {'uuid': {'primary_key': True}} - } - meta = self.database._extract_metadata(sql_meta, 'uuid', 'uuid') - assert meta == {'primary_key': True} + # def test_extract_metadata(self): + # sql_meta = { + # 'uuid': {'uuid': {'primary_key': True}} + # } + # meta = self.database._extract_metadata(sql_meta, 'uuid', 'uuid') + # assert meta == {'primary_key': True} @pytest.mark.parametrize('test_input,expected', [ (("file.sql", "sqlite"), "sqlite:///file.sql"), @@ -111,15 +111,6 @@ def test_internal_tables_from_db(self): assert tab2num == name2num assert num2tab == num2name - def test_table_list_is_consistent(self): - pytest.skip() - - def test_table_inconsistencies(self): - pytest.skip() - - def test_table_is_consistent(self): - pytest.skip() - def test_load_uuids_table(self): sample_dict = self._add_sample_data() uuids = [s['uuid'] for s in sample_dict] @@ -182,9 +173,6 @@ def test_load_table_data_missing(self): def test_load_table_data_missing_ignored(self): pytest.skip() - def test_load_table_data_lazy(self): - pytest.skip() - def test_persistence(self): pytest.skip() From 4cfa93538df48cf567433238887881c1a6c9ac27 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Fri, 16 Feb 2018 17:05:29 +0100 Subject: [PATCH 113/464] refactoring storage loading will facilitate better caching behavior, as well as being more direct --- openpathsampling/new/serialization_helpers.py | 7 ++++ openpathsampling/new/sql_backend.py | 4 +-- openpathsampling/new/storage.py | 36 ++++++++++--------- 3 files changed, 27 insertions(+), 20 deletions(-) diff --git a/openpathsampling/new/serialization_helpers.py b/openpathsampling/new/serialization_helpers.py index 4df5c635a..3783d457f 100644 --- a/openpathsampling/new/serialization_helpers.py +++ b/openpathsampling/new/serialization_helpers.py @@ -273,6 +273,13 @@ def dependency_dag(dependent_uuids, dag=None): def dag_reload_order(dag): return list(reversed(list(nx_dag.topological_sort(dag)))) +def get_reload_order(to_load, dependencies): + dag = dependency_dag(dependencies) + no_deps = {row.uuid for row in to_load} + no_deps.difference_update(set(dag.nodes)) + ordered_uuids = list(no_deps) + dag_reload_order(dag) + return ordered_uuids + # TODO: replace this with something in storage def deserialize(uuid_json_dict, lazies, storage): diff --git a/openpathsampling/new/sql_backend.py b/openpathsampling/new/sql_backend.py index 7c293a478..cea9b3dcf 100644 --- a/openpathsampling/new/sql_backend.py +++ b/openpathsampling/new/sql_backend.py @@ -25,7 +25,7 @@ 'int': sql.Integer, 'float': sql.Float, 'function': sql.String, - 'ndarray': sql.LargeBinary, #TODO: numpy store/load + 'ndarray': sql.LargeBinary, #TODO add more } @@ -41,7 +41,6 @@ def make_columns(table_name, schema, sql_schema_metadata): primary_key=True)) columns.append(sql.Column('uuid', sql.String)) for col, type_name in schema[table_name]: - # TODO: more general creation of type name col_type = sql_type[backend_registration_type(type_name)] metadata = extract_backend_metadata(sql_schema_metadata, table_name, col) @@ -238,7 +237,6 @@ def register_schema(self, schema, table_to_class, raise TypeError("Schema registration problem. Your schema " "may already have tables of the same names.") - #TODO: add schema to schema table if table_name not in ['uuid', 'tables']: self._add_table_to_tables_list(table_name, schema[table_name], diff --git a/openpathsampling/new/storage.py b/openpathsampling/new/storage.py index 3391ea161..e3512d008 100644 --- a/openpathsampling/new/storage.py +++ b/openpathsampling/new/storage.py @@ -7,6 +7,7 @@ from serialization_helpers import from_json_obj as deserialize_sim from serialization_helpers import get_all_uuids_loading from serialization_helpers import dependency_dag, dag_reload_order +from serialization_helpers import get_reload_order # TODO: both of these are from from serialization_helpers import to_dict_with_uuids as serialize_data from serialization_helpers import deserialize as deserialize_data @@ -194,9 +195,9 @@ def save(self, obj): def load(self, input_uuids, force=False): # loading happens in 4 parts: # 1. Get UUIDs that need to be loaded - # 2. Build the DAG to determine loading order - # 3. Make all lazy objects - # 4. Reserialize remaining in DAG order + # 2. Make lazy-loading proxy objects + # 3. Identify the order in which we deserialize + # 4. Deserialize # set force=True to make it reload this full object (used for # loading a lazy-loaded object) if isinstance(input_uuids, basestring): @@ -220,9 +221,7 @@ def load(self, input_uuids, force=False): logger.debug("Loading {} objects; creating {} lazy proxies"\ .format(len(to_load), len(lazy_uuids))) - # build the dag - dag = dependency_dag(dependencies) - # lazies can't have dependencies + # make lazies logger.debug("Identifying classes for {} lazy proxies"\ .format(len(lazy_uuids))) lazy_uuid_rows = self.backend.load_uuids_table(lazy_uuids) @@ -230,19 +229,24 @@ def load(self, input_uuids, force=False): lazies = tools.group_by_function(lazy_uuid_rows, group_table) new_uuids = self.serialization.make_all_lazies(lazies) - # objects with no dependents don't show up in dag; deserialize those - # first - no_deps = {r.uuid for r in to_load} - no_deps.difference_update(set(dag.nodes)) - - # deserialize in order + # get order are deserialize uuid_to_table_row = {r.uuid: r for r in to_load} - ordered_uuids = list(no_deps) + dag_reload_order(dag) + ordered_uuids = get_reload_order(to_load, dependencies) + new_uuids = self.deserialize_uuids(ordered_uuids, uuid_to_table, + uuid_to_table_row, new_uuids) + + self.cache.update(new_uuids) + results.update(new_uuids) + return [results[uuid] for uuid in input_uuids] + + def deserialize_uuids(self, ordered_uuids, uuid_to_table, + uuid_to_table_row, new_uuids=None): logger.debug("Reconstructing from {} objects"\ .format(len(ordered_uuids))) + new_uuids = tools.none_to_default(new_uuids, {}) for uuid in ordered_uuids: if uuid not in self.cache and uuid not in new_uuids: - is_in = [k for (k, v) in dependencies.items() if v==uuid] + # is_in = [k for (k, v) in dependencies.items() if v==uuid] table = uuid_to_table[uuid] table_row = uuid_to_table_row[uuid] table_dict = {attr: getattr(table_row, attr) @@ -250,10 +254,8 @@ def load(self, input_uuids, force=False): deserialize = self.class_info[table].deserializer obj = deserialize(uuid, table_dict, [new_uuids, self.cache]) new_uuids[uuid] = obj + return new_uuids - self.cache.update(new_uuids) - results.update(new_uuids) - return [results[uuid] for uuid in input_uuids] def sync(self): pass From 1c6e505b6b2adb720b4c7ab3bee01554bcbcc06a Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Fri, 16 Feb 2018 18:35:00 +0100 Subject: [PATCH 114/464] pylint cleanup --- openpathsampling/new/ops_storage.py | 4 +- openpathsampling/new/snapshots.py | 2 +- openpathsampling/new/storage.py | 94 +++++++++++++---------------- 3 files changed, 45 insertions(+), 55 deletions(-) diff --git a/openpathsampling/new/ops_storage.py b/openpathsampling/new/ops_storage.py index 2df8cad45..954bbe8b1 100644 --- a/openpathsampling/new/ops_storage.py +++ b/openpathsampling/new/ops_storage.py @@ -16,7 +16,7 @@ SimulationObjectSerializer ) -from storage import ClassInfo +from class_info import ClassInfo, ClassInfoContainer import snapshots import logging @@ -68,7 +68,7 @@ def __call__(self, uuid, table_dct, cache_list): return obj -class OPSClassInfoContainer(storage.ClassInfoContainer): +class OPSClassInfoContainer(ClassInfoContainer): special_superclasses = (paths.BaseSnapshot, paths.MoveChange, paths.Details) def is_special(self, item): diff --git a/openpathsampling/new/snapshots.py b/openpathsampling/new/snapshots.py index d64756079..a845eb96c 100644 --- a/openpathsampling/new/snapshots.py +++ b/openpathsampling/new/snapshots.py @@ -1,4 +1,4 @@ -from storage import ClassInfo +from class_info import ClassInfo from serialization_helpers import get_uuid diff --git a/openpathsampling/new/storage.py b/openpathsampling/new/storage.py index e3512d008..b0f025d54 100644 --- a/openpathsampling/new/storage.py +++ b/openpathsampling/new/storage.py @@ -1,24 +1,3 @@ -import os -import collections -import itertools -import openpathsampling as paths -from serialization_helpers import get_uuid, get_all_uuids -from serialization_helpers import to_json_obj as serialize_sim -from serialization_helpers import from_json_obj as deserialize_sim -from serialization_helpers import get_all_uuids_loading -from serialization_helpers import dependency_dag, dag_reload_order -from serialization_helpers import get_reload_order -# TODO: both of these are from -from serialization_helpers import to_dict_with_uuids as serialize_data -from serialization_helpers import deserialize as deserialize_data -from class_info import ClassInfo, ClassInfoContainer -import tools -from openpathsampling.netcdfplus import StorableObject -from serialization import Serialization, DefaultDeserializer - -import logging -logger = logging.getLogger(__name__) - """ A simple storage interface for simulation objects and data objects. @@ -37,6 +16,18 @@ * ``idx`` """ +import logging +import collections +import itertools + +import tools +from serialization_helpers import get_uuid, get_all_uuids +from serialization_helpers import get_all_uuids_loading +from serialization_helpers import get_reload_order +from serialization import Serialization + +logger = logging.getLogger(__name__) + # these two tables are required in *all* schema universal_schema = { 'uuid': [('uuid', 'uuid'), ('table', 'int'), ('row', 'int')], @@ -80,14 +71,14 @@ def _load_missing_info_tables(self, table_to_class): missing_info_tables = [tbl for tbl in self.schema if tbl not in self.class_info.tables] n_missing = len(missing_info_tables) - logger.info("Missing info from {} dynamically-registered tables"\ - .format(n_missing)) + logger.info("Missing info from %d dynamically-registered tables", + n_missing) classes = [table_to_class[tbl] for tbl in missing_info_tables] self.register_from_tables(missing_info_tables, classes) missing_info_tables = [tbl for tbl in self.schema if tbl not in self.class_info.tables] - logger.info("Successfully registered {} missing tables"\ - .format(n_missing - len(missing_info_tables))) + logger.info("Successfully registered %d missing tables", + n_missing - len(missing_info_tables)) if missing_info_tables: raise RuntimeError("Unable to register existing database " @@ -149,8 +140,7 @@ def save(self, obj): del uuids[existing.uuid] # group by table, then save appropriately # by_table; convert a dict of {uuid: obj} to {table: {uuid: obj}} - get_table_name = lambda uuid, obj_: \ - self.class_info[obj_].table + get_table_name = lambda uuid, obj_: self.class_info[obj_].table by_table = tools.dict_group_by(uuids, key_extract=get_table_name) @@ -162,21 +152,21 @@ def save(self, obj): # table, but the table doesn't exist (e.g., for dynamically # added tables) missing = by_table.pop('__missing__') - logger.info("Registering tables for {} missing objects".\ - format(len(missing))) + logger.info("Registering tables for %d missing objects", + len(missing)) self.register_missing_tables_for_objects(missing) missing_by_table = tools.dict_group_by(missing, get_table_name) - logger.info("Registered {} new tables: {}".\ - format(len(missing_by_table), - str(list(missing_by_table.keys())))) + logger.info("Registered %d new tables: %s", + len(missing_by_table), + str(list(missing_by_table.keys()))) by_table.update(missing_by_table) # this is the actual serialization - logger.debug("Filling {} tables: {}"\ - .format( len(by_table), str(list(by_table.keys())))) + logger.debug("Filling %d tables: %s", len(by_table), + str(list(by_table.keys()))) for table in by_table: - logger.debug("Storing {} objects to table {}".\ - format(len(by_table[table]), table)) + logger.debug("Storing %d objects to table %s", + len(by_table[table]), table) serialize = self.class_info[table].serializer # DEBUG @@ -204,29 +194,29 @@ def load(self, input_uuids, force=False): # TEMP: remove; for now, prevents my stupidity raise RuntimeError("David, you forgot to wrap UUID in list") - logger.debug("Starting to load {} objects".format(len(input_uuids))) + logger.debug("Starting to load %d objects", len(input_uuids)) if force: self.cache.delete_items(input_uuids) results = {uuid: self.cache[uuid] for uuid in input_uuids if uuid in self.cache} uuid_list = [uuid for uuid in input_uuids if uuid not in self.cache] - logger.debug("Getting internal structure of {} non-cached objects"\ - .format(len(uuid_list))) + logger.debug("Getting internal structure of %d non-cached objects", + len(uuid_list)) to_load, lazy_uuids, dependencies, uuid_to_table = \ get_all_uuids_loading(uuid_list=uuid_list, backend=self.backend, schema=self.schema, existing_uuids=self.cache) - logger.debug("Loading {} objects; creating {} lazy proxies"\ - .format(len(to_load), len(lazy_uuids))) + logger.debug("Loading %d objects; creating %d lazy proxies", + len(to_load), len(lazy_uuids)) # make lazies - logger.debug("Identifying classes for {} lazy proxies"\ - .format(len(lazy_uuids))) + logger.debug("Identifying classes for %d lazy proxies", + len(lazy_uuids)) lazy_uuid_rows = self.backend.load_uuids_table(lazy_uuids) - group_table = self.backend.uuid_row_to_table_name - lazies = tools.group_by_function(lazy_uuid_rows, group_table) + lazies = tools.group_by_function(lazy_uuid_rows, + self.backend.uuid_row_to_table_name) new_uuids = self.serialization.make_all_lazies(lazies) # get order are deserialize @@ -241,8 +231,7 @@ def load(self, input_uuids, force=False): def deserialize_uuids(self, ordered_uuids, uuid_to_table, uuid_to_table_row, new_uuids=None): - logger.debug("Reconstructing from {} objects"\ - .format(len(ordered_uuids))) + logger.debug("Reconstructing from %d objects", len(ordered_uuids)) new_uuids = tools.none_to_default(new_uuids, {}) for uuid in ordered_uuids: if uuid not in self.cache and uuid not in new_uuids: @@ -297,7 +286,7 @@ def __init__(self, fixed_cache=None): self.fixed_cache = tools.none_to_default(fixed_cache, default={}) self.cache = {} - def delete_items(list_of_items, error_if_missing=False): + def delete_items(self, list_of_items, error_if_missing=False): for item in list_of_items: if item in self: del self[item] @@ -306,9 +295,10 @@ def delete_items(list_of_items, error_if_missing=False): def __getitem__(self, key): if key in self.fixed_cache: - return self.fixed_cache[key] + value = self.fixed_cache[key] else: - return self.cache[key] + value = self.cache[key] + return value def __setitem__(self, key, value): self.cache[key] = value @@ -316,11 +306,11 @@ def __setitem__(self, key, value): def __delitem__(self, key): try: del self.cache[key] - except KeyError as e: + except KeyError as err: if key in self.fixed_cache: raise TypeError("Can't delete from fixed cache") else: - raise e + raise err def __len__(self): return len(self.fixed_cache) + len(self.cache) From e2a3f2e436389c7f12bb09a3f2551bdd4f648080 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Fri, 16 Feb 2018 20:58:00 +0100 Subject: [PATCH 115/464] Clear out unused code --- openpathsampling/new/serialization.py | 73 ------------------- openpathsampling/new/serialization_helpers.py | 34 --------- 2 files changed, 107 deletions(-) diff --git a/openpathsampling/new/serialization.py b/openpathsampling/new/serialization.py index 11a40b1bd..d5bd4aa91 100644 --- a/openpathsampling/new/serialization.py +++ b/openpathsampling/new/serialization.py @@ -133,79 +133,6 @@ def register_serialization(self, schema, class_info): self.table_to_class.update({table: class_info[table].cls}) self.schema.update(schema) - def attribute_serializer(self, type_name): - if type_name in self.attribute_serializers: - return self.attribute_serializers[type_name] - if ndarray_re.match(type_name): - # TODO: cast to correct dtype - return lambda arr: arr.tostring() - else: - raise TypeError("Unknown type for serialization: " + type_name) - - def attribute_deserializer(self, type_name): - if type_name in self.attribute_deserializers: - return self.attribute_deserializers[type_name] - as_ndarray = parse_ndarray_type(type_name) - if as_ndarray: - (dtype, shape) = as_ndarray - return lambda data: \ - np.fromstring(data, dtype=dtype).reshape(shape) - - def _serialization_dict(self, attribute_handler, table_description): - dct = {} - for (attr, type_name) in table_description: - if type_name in self.builtin_types: - dct[attr] = None - else: - dct[attr] = attribute_handler(type_name) - return dct - - def default_serializer_dict(self, table_description): - return self._serialization_dict(self.attribute_serializer, - table_description) - - def default_deserializer_dict(self, table_description): - return self._serialization_dict(self.attribute_deserializer, - table_description) - - @property - def serialize(self): - default_tables = set(tab for (tab, func) in self._ser_dict.items() - if is_mappable(func)) - non_default_tables = set(self._ser_dict.keys()) - default_tables - results = {table: self._ser_dict[table] - for table in non_default_tables} - results.update({ - table: - lambda obj, table=table: self.default_serialize(obj, table) - for table in default_tables - }) - return results - - def default_serialize(self, obj, table): - dct = {'uuid': serialization.get_uuid(obj)} - serializer_dict = self._ser_dict[table] - for (attr, type_name) in self.schema[table]: - attr_obj = getattr(obj, attr) - if attr not in serializer_dict: - dct[attr] = attr_obj # built-in types - else: - dct[attr] = serializer_dict[attr](attr_obj) - return dct - - def default_deserialize(self, uuid, dct, table, existing_uuids): - # this must be called in the DAG order; otherwise error - deserializer_dict = self._deser_dict[table] - cls = self.table_to_class[table] - for (attr, type_name) in self.schema[table]: - if type_name == 'lazy': - dct[attr] = self.make_lazy(cls, uuid) - elif type_name in ['uuid', 'list_uuid']: - dct[attr] = deserializer_dict[attr](dct[attr], self.cache) - else: - dct[attr] = deserializer_dict[attr](dct[attr]) - return dct - class SimulationObjectSerializer(object): def __call__(self, obj): diff --git a/openpathsampling/new/serialization_helpers.py b/openpathsampling/new/serialization_helpers.py index 3783d457f..2f36bf841 100644 --- a/openpathsampling/new/serialization_helpers.py +++ b/openpathsampling/new/serialization_helpers.py @@ -254,11 +254,6 @@ def get_all_uuids_loading(uuid_list, backend, schema, existing_uuids=None): return (all_table_rows, lazy, dependencies, uuid_to_table) -def reconstruction_dag(uuid_json_dict, dag=None): - dependent_uuids = {uuid: find_dependent_uuids(json_str) - for (uuid, json_str) in uuid_json_dict.items()} - return dependency_dag(dependent_uuids, dag) - def dependency_dag(dependent_uuids, dag=None): if dag is None: dag = nx.DiGraph() @@ -279,32 +274,3 @@ def get_reload_order(to_load, dependencies): no_deps.difference_update(set(dag.nodes)) ordered_uuids = list(no_deps) + dag_reload_order(dag) return ordered_uuids - - -# TODO: replace this with something in storage -def deserialize(uuid_json_dict, lazies, storage): - dag = reconstruction_dag(uuid_json_dict) - missing = check_dag(dag, uuid_json_dict) - while missing: - (more_json, loc_lazies) = storage.backend.load_table_data(missing) - uuid_json_dict.update(more_json) - lazies = nested_update(lazies, loc_lazies) - dag = reconstruction_dag(uuid_json_dict, dag) - missing = check_dag(dag, uuid_json_dict) - - new_uuids = {} - known_uuids = storage.known_uuids - for lazy_table in lazies: - lazy_uuid_objects = { - lazy.uuid: storage.make_lazy(lazy_table, lazy.uuid) - for lazy in lazies[lazy_table] - if lazy.uuid not in known_uuids - } - new_uuids.update(lazy_uuid_objects) - known_uuids.update(lazy_uuid_objects) - - ordered_nodes = list(reversed(list(nx_dag.topological_sort(dag)))) - for node in ordered_nodes: - # TODO: replace from_json with something that gets the deserializer - new_uuids[node] = from_json_obj(all_json[node], new_uuids, known_uuids) - return new_uuids From 381fab7f1b3e4bf4a7ea8da224b161fe7035bdae Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Sat, 17 Feb 2018 12:27:41 +0100 Subject: [PATCH 116/464] tests & docstrings in sql_backend --- openpathsampling/new/sql_backend.py | 31 ++++++++++++++ openpathsampling/new/test_sql_backend.py | 51 ++++++++++++++++++++++++ 2 files changed, 82 insertions(+) diff --git a/openpathsampling/new/sql_backend.py b/openpathsampling/new/sql_backend.py index cea9b3dcf..40556ef41 100644 --- a/openpathsampling/new/sql_backend.py +++ b/openpathsampling/new/sql_backend.py @@ -334,6 +334,17 @@ def load_table_data(self, uuid_table_rows): return loaded_results def database_schema(self): + """Reload the schema as stored in the database. + + One of the special tables in the database stores the schema + information. This reloads that into the standard dict form for a + schema. + + Returns + ------- + schema : dict + schema dictionary + """ schema_table = self.metadata.tables['schema'] sel = schema_table.select() with self.engine.connect() as conn: @@ -343,6 +354,22 @@ def database_schema(self): return schema def get_representative(self, table_name): + """Get a row from the table (as a representative of table data) + + This gets a single row from the given table. This can be useful for + introspection of table structure, or for providing an example object + (e.g., to use as a template for identifying results of applying a + function to that kind of object). + + Parameters + ---------- + table_name : str + name of the table + + Returns + ------- + ??? TODO + """ table = self.metadata.tables[table_name] with self.engine.connect() as conn: results = conn.execute(table.select()) @@ -363,9 +390,13 @@ def table_to_class(self): return table_to_class def uuid_row_to_table_name(self, uuid_row): + """Identify the table name from a row from the UUIDs table + """ return self.number_to_table[uuid_row.table] def table_iterator(self, table_name): + """Iterate over all rows in the table + """ table = self.metadata.tables[table_name] with self.engine.connect() as conn: results = list(conn.execute(table.select())) diff --git a/openpathsampling/new/test_sql_backend.py b/openpathsampling/new/test_sql_backend.py index c80855713..f0f5cb6e5 100644 --- a/openpathsampling/new/test_sql_backend.py +++ b/openpathsampling/new/test_sql_backend.py @@ -1,6 +1,7 @@ from sql_backend import * import pytest + class TestSQLStorageBackend(object): def setup(self): self._delete_tmp_files() @@ -39,6 +40,15 @@ def _add_sample_data(self): self.database.add_to_table('samples', sample_dict) return sample_dict + def _add_snapshot_data(self): + snapshot_schema = {'snapshot0': self.schema['snapshot0']} + self.database.register_schema(snapshot_schema, self.table_to_class) + snap_dicts = [{'filename': 'file.trr', 'index': 100, + 'uuid': 'snapuuid'}] + self.database.add_to_table('snapshot0', snap_dicts) + return snap_dicts + + def teardown(self): self._delete_tmp_files() @@ -181,3 +191,44 @@ def test_database_schema(self): db_schema = self.database.database_schema() assert db_schema == self.schema + def test_get_representative(self): + samps = self._add_sample_data() + snaps = self._add_snapshot_data() + samp_rep = self.database.get_representative('samples') + samp_dct = [s for s in samps if s['uuid'] == samp_rep.uuid][0] + assert samp_rep.replica == samp_dct['replica'] + assert samp_rep.trajectory == samp_dct['trajectory'] + assert samp_rep.ensemble == samp_dct['ensemble'] + snap_rep = self.database.get_representative('snapshot0') + assert snap_rep.filename == 'file.trr' + assert snap_rep.index == 100 + + def test_table_to_class(self): + pytest.skip() + + @pytest.mark.parametrize('table', ['samples', 'snapshot0']) + def test_uuid_row_to_table_name(self, table): + samps = self._add_sample_data() + snaps = self._add_snapshot_data() + input_dict = {'samples': samps, 'snapshot0': snaps}[table] + uuid_rows = sum([self.database.load_uuids_table([s['uuid']]) + for s in input_dict], []) + for row in uuid_rows: + assert self.database.uuid_row_to_table_name(row) == table + + @pytest.mark.parametrize('table', ['samples', 'snapshot0']) + def test_table_iterator(self, table): + samps = self._add_sample_data() + snaps = self._add_snapshot_data() + input_dicts = {'samples': samps, 'snapshot0': snaps}[table] + table_iter = list(self.database.table_iterator(table)) + + # test the ordering of the iterator results + for row in table_iter: + assert table_iter.index(row) == row.idx - 1 + + # test correctness + for row in table_iter: + dct = [d for d in input_dicts if d['uuid'] == row.uuid][0] + for attr in dct: + assert getattr(row, attr) == dct[attr] From 36c3f54e38f5bef8c0f6995fd1690f52c90e40bc Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Sat, 17 Feb 2018 13:18:52 +0100 Subject: [PATCH 117/464] more testing; more cleanup --- openpathsampling/new/serialization_helpers.py | 9 +++------ openpathsampling/new/test_backend.py | 10 ++++++++++ .../new/test_serialization_helpers.py | 18 ++++++++++++++++++ openpathsampling/new/test_sql_backend.py | 7 ------- 4 files changed, 31 insertions(+), 13 deletions(-) create mode 100644 openpathsampling/new/test_backend.py create mode 100644 openpathsampling/new/test_serialization_helpers.py diff --git a/openpathsampling/new/serialization_helpers.py b/openpathsampling/new/serialization_helpers.py index 2f36bf841..fbd68ea39 100644 --- a/openpathsampling/new/serialization_helpers.py +++ b/openpathsampling/new/serialization_helpers.py @@ -55,7 +55,7 @@ def is_uuid_string(obj): # NOTE: this needs find everything, including if the iterable/mapping has a # UUID, find that and things under it -def get_all_uuids(initial_object, excluded_iterables=None, known_uuids=None): +def get_all_uuids(initial_object, known_uuids=None): known_uuids = tools.none_to_default(known_uuids, {}) objects = {initial_object} uuids = {} @@ -84,13 +84,14 @@ def get_all_uuids(initial_object, excluded_iterables=None, known_uuids=None): return uuids +# TODO: I think this can be removed (only used by get_all_uuid_string) def find_dependent_uuids(json_dct): dct = ujson.loads(json_dct) uuids = [decode_uuid(obj) for obj in flatten_all(dct) if is_uuid_string(obj)] return uuids - +# TODO: I think this can be removed (not used?) def get_all_uuid_strings(dct): all_uuids = [] for uuid in dct: @@ -131,10 +132,6 @@ def to_bare_json(obj): return ujson.dumps(replaced) -def from_bare_json(json_str, existing_uuids): - pass # TODO - - def to_json_obj(obj): dct = to_dict_with_uuids(obj) dct.update({'__module__': obj.__class__.__module__, diff --git a/openpathsampling/new/test_backend.py b/openpathsampling/new/test_backend.py new file mode 100644 index 000000000..4f4e6ac91 --- /dev/null +++ b/openpathsampling/new/test_backend.py @@ -0,0 +1,10 @@ +from backend import * +import pytest + +def test_extract_metadata(): + sql_meta = { + 'uuid': {'uuid': {'primary_key': True}} + } + meta = extract_backend_metadata(sql_meta, 'uuid', 'uuid') + assert meta == {'primary_key': True} + diff --git a/openpathsampling/new/test_serialization_helpers.py b/openpathsampling/new/test_serialization_helpers.py new file mode 100644 index 000000000..e02d39fae --- /dev/null +++ b/openpathsampling/new/test_serialization_helpers.py @@ -0,0 +1,18 @@ +from serialization_helpers import * +import numpy as np +import pytest + +class MockUUIDObject(object): + def __init__(self, uuid): + self.__uuid__ = uuid + self.none_attr = None + self.dict_attr = {} + self.list_attr = [] + self.ndarray_attr = np.array([1.0, 1.0]) + self.int_attr = 5 + self.str_attr = "foo" + self.obj_attr = None + pass + +def test_get_uuid(): + pytest.skip() diff --git a/openpathsampling/new/test_sql_backend.py b/openpathsampling/new/test_sql_backend.py index f0f5cb6e5..ddf35d850 100644 --- a/openpathsampling/new/test_sql_backend.py +++ b/openpathsampling/new/test_sql_backend.py @@ -62,13 +62,6 @@ def _delete_tmp_files(): if os.path.isfile("test.sql"): os.remove("test.sql") - # def test_extract_metadata(self): - # sql_meta = { - # 'uuid': {'uuid': {'primary_key': True}} - # } - # meta = self.database._extract_metadata(sql_meta, 'uuid', 'uuid') - # assert meta == {'primary_key': True} - @pytest.mark.parametrize('test_input,expected', [ (("file.sql", "sqlite"), "sqlite:///file.sql"), ((":memory:", "sqlite"), "sqlite:///:memory:") From aa8b1eea44ad99dd766bbebc1339ab5965906c87 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Mon, 19 Feb 2018 15:46:15 +0100 Subject: [PATCH 118/464] Tests for get_all_uuids and some other UUID funcs --- openpathsampling/new/serialization_helpers.py | 24 ++++ .../new/test_serialization_helpers.py | 120 ++++++++++++++++-- 2 files changed, 133 insertions(+), 11 deletions(-) diff --git a/openpathsampling/new/serialization_helpers.py b/openpathsampling/new/serialization_helpers.py index fbd68ea39..dd221b148 100644 --- a/openpathsampling/new/serialization_helpers.py +++ b/openpathsampling/new/serialization_helpers.py @@ -41,6 +41,8 @@ def decode_uuid(uuid_str): return uuid_str[5:-1] +# use the regular expression when looking through an entire JSON string; use +# the is_uuid_string method for individual objects encoded_uuid_re = re.compile("UUID\((?P[0-9]+)\)") @@ -56,6 +58,25 @@ def is_uuid_string(obj): # NOTE: this needs find everything, including if the iterable/mapping has a # UUID, find that and things under it def get_all_uuids(initial_object, known_uuids=None): + """Find all UUID objects (to be stored) + + This searches through an initial object, finding *all* nested objects + (including those in lists and dictionaries) that have UUIDs. + + Parameters + ---------- + initial_object : object with UUID + the object to search within + known_uuids : dict of {uuid: object} + objects that can be excluded from the search tree, presumably + because they have already been searched and any object beneath them + in the search tree also also already known + + Returns + ------- + dict of {uuid: object} + objects found in the search + """ known_uuids = tools.none_to_default(known_uuids, {}) objects = {initial_object} uuids = {} @@ -75,6 +96,9 @@ def get_all_uuids(initial_object, known_uuids=None): new_objects.extend(list(obj.to_dict().values())) # mappables and iterables + # TODO: There might be a way, using a ClassInfoContainer, to + # simplify this for data objects. (We spend a significant + # fraction of time in is_mappable/is_iterable.) if is_mappable(obj): new_objects.extend([o for o in obj.keys() if has_uuid(o)]) new_objects.extend(list(obj.values())) diff --git a/openpathsampling/new/test_serialization_helpers.py b/openpathsampling/new/test_serialization_helpers.py index e02d39fae..7907fb509 100644 --- a/openpathsampling/new/test_serialization_helpers.py +++ b/openpathsampling/new/test_serialization_helpers.py @@ -3,16 +3,114 @@ import pytest class MockUUIDObject(object): - def __init__(self, uuid): + def __init__(self, uuid, normal_attr=None, obj_attr=None, + list_attr=None, dict_attr=None): self.__uuid__ = uuid - self.none_attr = None - self.dict_attr = {} - self.list_attr = [] - self.ndarray_attr = np.array([1.0, 1.0]) - self.int_attr = 5 - self.str_attr = "foo" - self.obj_attr = None - pass - -def test_get_uuid(): + self.dict_attr = dict_attr + self.list_attr = list_attr + self.obj_attr = obj_attr + self.normal_attr = normal_attr + + def to_dict(self): + return { + 'obj_attr': self.obj_attr, + 'list_attr': self.list_attr, + 'dict_attr': self.dict_attr, + 'normal_attr': self.normal_attr + } + + @classmethod + def from_dict(cls, dct): + # set UUID after + return cls(uuid=None, **dct) + +def create_test_objects(): + obj_int = MockUUIDObject(uuid='int', normal_attr=5) + obj_str = MockUUIDObject(uuid='str', normal_attr='foo') + obj_np = MockUUIDObject(uuid='np', normal_attr=np.array([1.0, 2.0])) + obj_obj = MockUUIDObject(uuid='obj', obj_attr=obj_int) + obj_lst = MockUUIDObject(uuid='lst', list_attr=[obj_int, obj_str]) + obj_dct = MockUUIDObject(uuid='dct', dict_attr={'foo': obj_str, + obj_int: obj_np}) + obj_nest = MockUUIDObject( + uuid='nest', + dict_attr={'bar': [obj_str, {obj_int: [obj_np, obj_obj]}]} + ) + obj_repeat = MockUUIDObject('rep', list_attr=[obj_int, [obj_int]]) + all_objects = { + obj.__uuid__: obj + for obj in [obj_int, obj_str, obj_np, obj_obj, obj_lst, obj_dct, + obj_nest, obj_repeat] + } + return all_objects + +all_objects = create_test_objects() + + +@pytest.mark.parametrize('obj', list(all_objects.values())) +def test_has_uuid(obj): + assert has_uuid(obj) + +def test_has_uuid_no_uuid(): + assert not has_uuid(10) + assert not has_uuid('foo') + +@pytest.mark.parametrize('uuid,obj', list(all_objects.items())) +def test_get_uuid(uuid, obj): + assert get_uuid(obj) == uuid + +def test_get_uuid_none(): + assert get_uuid(None) == None + +@pytest.mark.parametrize('obj,included_objs', [ + (all_objects['int'], []), + (all_objects['str'], []), + (all_objects['np'], []), + (all_objects['obj'], [all_objects['int']]), + (all_objects['lst'], [all_objects['int'], all_objects['str']]), + (all_objects['dct'], [all_objects['str'], all_objects['int'], + all_objects['np']]), + (all_objects['nest'], [all_objects['str'], all_objects['int'], + all_objects['np'], all_objects['obj']]), + (all_objects['rep'], [all_objects['int']]) +]) +def test_get_all_uuids(obj, included_objs): + expected = {o.__uuid__: o for o in included_objs} + expected.update({obj.__uuid__: obj}) + assert get_all_uuids(obj) == expected + +@pytest.mark.parametrize('obj,included_objs', [ + (all_objects['int'], []), + (all_objects['str'], []), + (all_objects['np'], []), + (all_objects['obj'], []), + (all_objects['lst'], [all_objects['str']]), + (all_objects['dct'], [all_objects['str'], all_objects['np']]), + (all_objects['nest'], [all_objects['str'], all_objects['np'], + all_objects['obj']]), + (all_objects['rep'], []) +]) +def test_get_all_uuids_with_known(obj, included_objs): + expected = {o.__uuid__: o for o in included_objs} + known_obj = all_objects['int'] + known_uuids = {known_obj.__uuid__: known_obj} + if obj is not all_objects['int']: + expected.update({obj.__uuid__: obj}) + assert get_all_uuids(obj, known_uuids=known_uuids) == expected + +# def test_replace_uuid(obj, replace_dct): + # pytest.skip() + +def test_search_caches(): + pytest.skip() + +def test_search_caches_missing(): + pytest.skip() + +def test_seach_caches_missing_error(): + pytest.skip() + +def test_from_dict_with_uuids(): pytest.skip() + + From e8a8944698084da7c6f2d057ef30eb5433ac2043 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Mon, 19 Feb 2018 18:23:12 +0100 Subject: [PATCH 119/464] Tests & docs for replace_uuid --- openpathsampling/new/serialization_helpers.py | 29 +++++ .../new/test_serialization_helpers.py | 100 ++++++++++++++---- 2 files changed, 107 insertions(+), 22 deletions(-) diff --git a/openpathsampling/new/serialization_helpers.py b/openpathsampling/new/serialization_helpers.py index dd221b148..e616da20b 100644 --- a/openpathsampling/new/serialization_helpers.py +++ b/openpathsampling/new/serialization_helpers.py @@ -127,6 +127,35 @@ def get_all_uuid_strings(dct): # NOTE: this only need to find until the first UUID: iterables/mapping with # UUIDs aren't necessary here def replace_uuid(obj, uuid_encoding): + """Return storage-ready replacements for values in dict representation + + This is used by first creating the dict representation of an object by + calling ``obj.to_dict()``. The resulting dict can be the ``obj`` + parameter of ``replace_uuid``. This algorithm is implemented + recursively, so nested structures will call it again to create the + correct nested locations of any UUID objects. + + Note that this does not go into the internal structure of any objects + with UUIDs (such as UUID objects that are also iterable or mappable). + The purpose here is to transform to the dict representation with UUIDs + in the place of objects. + + Parameters + ---------- + obj : object + input; replace with UUID if is has one, or search for nested + structures + uuid_encoding : callable + function that maps a UUID to a version that can be identified from + the (JSON) serialized string representation of the object. + + Returns + ------- + object + input object with UUID objects replaced by the encoded form, + leaving structure (of dicts, lists, etc) and all other objects the + same + """ # this is UUID => string replacement = obj # fast exit for string keys diff --git a/openpathsampling/new/test_serialization_helpers.py b/openpathsampling/new/test_serialization_helpers.py index 7907fb509..72a717a4f 100644 --- a/openpathsampling/new/test_serialization_helpers.py +++ b/openpathsampling/new/test_serialization_helpers.py @@ -2,10 +2,17 @@ import numpy as np import pytest +def toy_uuid_maker(name): + return int(hash(name)) + +def toy_uuid_encode(name): + return "U(" + str(toy_uuid_maker(name)) + ")" + class MockUUIDObject(object): - def __init__(self, uuid, normal_attr=None, obj_attr=None, + def __init__(self, name, normal_attr=None, obj_attr=None, list_attr=None, dict_attr=None): - self.__uuid__ = uuid + self.name = name + self.__uuid__ = int(hash(name)) self.dict_attr = dict_attr self.list_attr = list_attr self.obj_attr = obj_attr @@ -13,6 +20,7 @@ def __init__(self, uuid, normal_attr=None, obj_attr=None, def to_dict(self): return { + 'name': self.name, 'obj_attr': self.obj_attr, 'list_attr': self.list_attr, 'dict_attr': self.dict_attr, @@ -22,23 +30,23 @@ def to_dict(self): @classmethod def from_dict(cls, dct): # set UUID after - return cls(uuid=None, **dct) + return cls(name=None, **dct) def create_test_objects(): - obj_int = MockUUIDObject(uuid='int', normal_attr=5) - obj_str = MockUUIDObject(uuid='str', normal_attr='foo') - obj_np = MockUUIDObject(uuid='np', normal_attr=np.array([1.0, 2.0])) - obj_obj = MockUUIDObject(uuid='obj', obj_attr=obj_int) - obj_lst = MockUUIDObject(uuid='lst', list_attr=[obj_int, obj_str]) - obj_dct = MockUUIDObject(uuid='dct', dict_attr={'foo': obj_str, + obj_int = MockUUIDObject(name='int', normal_attr=5) + obj_str = MockUUIDObject(name='str', normal_attr='foo') + obj_np = MockUUIDObject(name='np', normal_attr=np.array([1.0, 2.0])) + obj_obj = MockUUIDObject(name='obj', obj_attr=obj_int) + obj_lst = MockUUIDObject(name='lst', list_attr=[obj_int, obj_str]) + obj_dct = MockUUIDObject(name='dct', dict_attr={'foo': obj_str, obj_int: obj_np}) obj_nest = MockUUIDObject( - uuid='nest', + name='nest', dict_attr={'bar': [obj_str, {obj_int: [obj_np, obj_obj]}]} ) obj_repeat = MockUUIDObject('rep', list_attr=[obj_int, [obj_int]]) all_objects = { - obj.__uuid__: obj + obj.name : obj for obj in [obj_int, obj_str, obj_np, obj_obj, obj_lst, obj_dct, obj_nest, obj_repeat] } @@ -55,12 +63,12 @@ def test_has_uuid_no_uuid(): assert not has_uuid(10) assert not has_uuid('foo') -@pytest.mark.parametrize('uuid,obj', list(all_objects.items())) -def test_get_uuid(uuid, obj): - assert get_uuid(obj) == uuid +@pytest.mark.parametrize('name,obj', list(all_objects.items())) +def test_get_uuid(name, obj): + assert get_uuid(obj) == str(int(hash(name))) def test_get_uuid_none(): - assert get_uuid(None) == None + assert get_uuid(None) is None @pytest.mark.parametrize('obj,included_objs', [ (all_objects['int'], []), @@ -75,8 +83,8 @@ def test_get_uuid_none(): (all_objects['rep'], [all_objects['int']]) ]) def test_get_all_uuids(obj, included_objs): - expected = {o.__uuid__: o for o in included_objs} - expected.update({obj.__uuid__: obj}) + expected = {str(o.__uuid__): o for o in included_objs} + expected.update({str(obj.__uuid__): obj}) assert get_all_uuids(obj) == expected @pytest.mark.parametrize('obj,included_objs', [ @@ -91,15 +99,63 @@ def test_get_all_uuids(obj, included_objs): (all_objects['rep'], []) ]) def test_get_all_uuids_with_known(obj, included_objs): - expected = {o.__uuid__: o for o in included_objs} + expected = {str(o.__uuid__): o for o in included_objs} known_obj = all_objects['int'] - known_uuids = {known_obj.__uuid__: known_obj} + known_uuids = {str(known_obj.__uuid__): known_obj} if obj is not all_objects['int']: - expected.update({obj.__uuid__: obj}) + expected.update({str(obj.__uuid__): obj}) assert get_all_uuids(obj, known_uuids=known_uuids) == expected -# def test_replace_uuid(obj, replace_dct): - # pytest.skip() +@pytest.mark.parametrize('obj,replace_dct', [ + (all_objects['int'], {'name': 'int', 'normal_attr': 5}), + (all_objects['str'], {'name': 'str', 'normal_attr': 'foo'}), + # (all_objects['np'], {'name': 'np', + # 'normal_attr': np.array([1.0, 2.0])}), + (all_objects['obj'], {'name': 'obj', + 'obj_attr': toy_uuid_encode('int')}), + (all_objects['lst'], {'name': 'lst', + 'list_attr': [toy_uuid_encode('int'), + toy_uuid_encode('str')]}), + (all_objects['dct'], {'name': 'dct', + 'dict_attr': { + 'foo': toy_uuid_encode('str'), + toy_uuid_encode('int'): toy_uuid_encode('np') + }}), + (all_objects['nest'], { + 'name': 'nest', + 'dict_attr': { + 'bar': [toy_uuid_encode('str'), + {toy_uuid_encode('int'): [toy_uuid_encode('np'), + toy_uuid_encode('obj')]}] + }}), + (all_objects['rep'], {'name': 'rep', + 'list_attr': [toy_uuid_encode('int'), + [toy_uuid_encode('int')]]}) +]) +def test_replace_uuid(obj, replace_dct): + after_replacement = {key: None + for key in ['name', 'dict_attr', 'list_attr', + 'normal_attr', 'obj_attr']} + after_replacement.update(replace_dct) + encoding = lambda x: "U(" + str(x) + ")" + assert replace_uuid(obj.to_dict(), encoding) == after_replacement + +def test_replace_uuid_ndarray(): + # can't use assert == with arrays + after_replacement = {'name': 'np', 'dict_attr': None, + 'list_attr': None, 'obj_attr': None, + 'normal_attr': np.array([1.0, 2.0])} + encoding = lambda x: "U(" + str(x) + ")" + result = replace_uuid(all_objects['np'].to_dict(), encoding) + assert set(result.keys()) == set(after_replacement.keys()) + for key in after_replacement: + if key == 'normal_attr': + assert np.allclose(result[key], after_replacement[key]) + else: + assert result[key] == after_replacement[key] + + + def test_search_caches(): pytest.skip() From 5bc05ddafa40357d7834fe8daee130f2bac4c082 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Mon, 19 Feb 2018 20:47:35 +0100 Subject: [PATCH 120/464] tests for search_caches --- .../new/test_serialization_helpers.py | 47 +++++++++++++------ 1 file changed, 32 insertions(+), 15 deletions(-) diff --git a/openpathsampling/new/test_serialization_helpers.py b/openpathsampling/new/test_serialization_helpers.py index 72a717a4f..71e042547 100644 --- a/openpathsampling/new/test_serialization_helpers.py +++ b/openpathsampling/new/test_serialization_helpers.py @@ -109,8 +109,6 @@ def test_get_all_uuids_with_known(obj, included_objs): @pytest.mark.parametrize('obj,replace_dct', [ (all_objects['int'], {'name': 'int', 'normal_attr': 5}), (all_objects['str'], {'name': 'str', 'normal_attr': 'foo'}), - # (all_objects['np'], {'name': 'np', - # 'normal_attr': np.array([1.0, 2.0])}), (all_objects['obj'], {'name': 'obj', 'obj_attr': toy_uuid_encode('int')}), (all_objects['lst'], {'name': 'lst', @@ -154,19 +152,38 @@ def test_replace_uuid_ndarray(): else: assert result[key] == after_replacement[key] - - - -def test_search_caches(): - pytest.skip() - -def test_search_caches_missing(): - pytest.skip() - -def test_seach_caches_missing_error(): - pytest.skip() - -def test_from_dict_with_uuids(): +@pytest.fixture +def cache_list(): + make_cache = lambda keys: {get_uuid(all_objects[key]): all_objects[key] + for key in keys} + cache_1 = make_cache(['int', 'str']) + cache_2 = make_cache(['obj']) + return [cache_1, cache_2] + +def test_search_caches(cache_list): + for key in ['int', 'str', 'obj']: + uuid = get_uuid(all_objects[key]) + assert search_caches(uuid, cache_list) == all_objects[key] + # seearch in a single cache (listify) + for key in ['int', 'str']: + uuid = get_uuid(all_objects[key]) + assert search_caches(uuid, cache_list[0]) == all_objects[key] + +def test_search_caches_missing(cache_list): + assert search_caches("foo", cache_list, raise_error=False) is None + uuid = get_uuid(all_objects['obj']) + assert search_caches(uuid, cache_list[0], raise_error=False) is None + +def test_seach_caches_missing_error(cache_list): + with pytest.raises(KeyError): + search_caches("foo", cache_list) + + with pytest.raises(KeyError): + uuid = get_uuid(all_objects['obj']) + search_caches(uuid, cache_list[0]) + +def test_from_dict_with_uuids(cache_list): + # this one only uses lst pytest.skip() From 79790b693c122f0dc12bdd88886245c61931d976 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Mon, 19 Feb 2018 23:29:54 +0100 Subject: [PATCH 121/464] docs & tests for from_dict_with_uuids --- openpathsampling/new/serialization_helpers.py | 43 ++++++++++++++++++ .../new/test_serialization_helpers.py | 44 +++++++++++-------- 2 files changed, 69 insertions(+), 18 deletions(-) diff --git a/openpathsampling/new/serialization_helpers.py b/openpathsampling/new/serialization_helpers.py index e616da20b..f55fb06b6 100644 --- a/openpathsampling/new/serialization_helpers.py +++ b/openpathsampling/new/serialization_helpers.py @@ -199,6 +199,25 @@ def import_class(mod, cls): return cls def search_caches(key, cache_list, raise_error=True): + """Find UUID if it is in the cache_list dicts + + Parameters + ---------- + key : str + the UUID we're looking for + cache_list : mapping or list of mapping + caches that the objects are stored in (will be searched in order of + the list). Mapping is {uuid: object} + raise_error : bool + whether to raise a KeyError if UUID not found; default True. If + False, object not found returns None + + Returns + ------- + object or None + the object with the given UUID, or ``None`` if the object is not + found and ``raise_error`` is ``False``. + """ if not isinstance(cache_list, list): cache_list = [cache_list] obj = None @@ -212,6 +231,30 @@ def search_caches(key, cache_list, raise_error=True): def from_dict_with_uuids(obj, cache_list): + """Replace encoded UUIDs with the actual objects. + + This is used to replace UUIDs as encoding for storage with actual + objects, to complete reconstruction of the dict representation. This + method can be seen as the inverse process of :meth:`.replace_uuid`, an + must be done before using the ``cls.from_dict()`` to properly + instantiate the object. + + All input objects for the object being reconstructed must already be in + the ``cache_list``. This means that the order is very important; that is + controlled by :meth:`.get_reload_order`. + + Parameters + ---------- + obj : object + object to reconstruct; replace UUID strings with the actual objects + cache_list : mapping or list of mapping + existing objects, keyed by their UUIDs + + Returns + ------- + object + input object with UUID strings replaced by the actual objects + """ replacement = obj if is_uuid_string(obj): # raises KeyError if object hasn't been visited diff --git a/openpathsampling/new/test_serialization_helpers.py b/openpathsampling/new/test_serialization_helpers.py index 71e042547..fb8c6a82f 100644 --- a/openpathsampling/new/test_serialization_helpers.py +++ b/openpathsampling/new/test_serialization_helpers.py @@ -5,14 +5,14 @@ def toy_uuid_maker(name): return int(hash(name)) -def toy_uuid_encode(name): - return "U(" + str(toy_uuid_maker(name)) + ")" +def uuid_encode(name): + return "UUID(" + str(toy_uuid_maker(name)) + ")" class MockUUIDObject(object): def __init__(self, name, normal_attr=None, obj_attr=None, list_attr=None, dict_attr=None): self.name = name - self.__uuid__ = int(hash(name)) + self.__uuid__ = toy_uuid_maker(name) self.dict_attr = dict_attr self.list_attr = list_attr self.obj_attr = obj_attr @@ -110,32 +110,32 @@ def test_get_all_uuids_with_known(obj, included_objs): (all_objects['int'], {'name': 'int', 'normal_attr': 5}), (all_objects['str'], {'name': 'str', 'normal_attr': 'foo'}), (all_objects['obj'], {'name': 'obj', - 'obj_attr': toy_uuid_encode('int')}), + 'obj_attr': uuid_encode('int')}), (all_objects['lst'], {'name': 'lst', - 'list_attr': [toy_uuid_encode('int'), - toy_uuid_encode('str')]}), + 'list_attr': [uuid_encode('int'), + uuid_encode('str')]}), (all_objects['dct'], {'name': 'dct', 'dict_attr': { - 'foo': toy_uuid_encode('str'), - toy_uuid_encode('int'): toy_uuid_encode('np') + 'foo': uuid_encode('str'), + uuid_encode('int'): uuid_encode('np') }}), (all_objects['nest'], { 'name': 'nest', 'dict_attr': { - 'bar': [toy_uuid_encode('str'), - {toy_uuid_encode('int'): [toy_uuid_encode('np'), - toy_uuid_encode('obj')]}] + 'bar': [uuid_encode('str'), + {uuid_encode('int'): [uuid_encode('np'), + uuid_encode('obj')]}] }}), (all_objects['rep'], {'name': 'rep', - 'list_attr': [toy_uuid_encode('int'), - [toy_uuid_encode('int')]]}) + 'list_attr': [uuid_encode('int'), + [uuid_encode('int')]]}) ]) def test_replace_uuid(obj, replace_dct): after_replacement = {key: None for key in ['name', 'dict_attr', 'list_attr', 'normal_attr', 'obj_attr']} after_replacement.update(replace_dct) - encoding = lambda x: "U(" + str(x) + ")" + encoding = lambda x: "UUID(" + str(x) + ")" assert replace_uuid(obj.to_dict(), encoding) == after_replacement def test_replace_uuid_ndarray(): @@ -143,7 +143,7 @@ def test_replace_uuid_ndarray(): after_replacement = {'name': 'np', 'dict_attr': None, 'list_attr': None, 'obj_attr': None, 'normal_attr': np.array([1.0, 2.0])} - encoding = lambda x: "U(" + str(x) + ")" + encoding = lambda x: "UUID(" + str(x) + ")" result = replace_uuid(all_objects['np'].to_dict(), encoding) assert set(result.keys()) == set(after_replacement.keys()) for key in after_replacement: @@ -164,6 +164,7 @@ def test_search_caches(cache_list): for key in ['int', 'str', 'obj']: uuid = get_uuid(all_objects[key]) assert search_caches(uuid, cache_list) == all_objects[key] + # seearch in a single cache (listify) for key in ['int', 'str']: uuid = get_uuid(all_objects[key]) @@ -184,6 +185,13 @@ def test_seach_caches_missing_error(cache_list): def test_from_dict_with_uuids(cache_list): # this one only uses lst - pytest.skip() - - + # this matches test_replace_uuid + lst_dict = {key: None + for key in ['name', 'dict_attr', 'list_attr', 'normal_attr', + 'obj_attr']} + lst_dict.update({'name': 'lst', 'list_attr': [uuid_encode('int'), + uuid_encode('str')]}) + + lst_obj = from_dict_with_uuids(lst_dict, cache_list) + expected = all_objects['lst'] + assert lst_obj == expected.to_dict() From e1b099f07a0033f1955c3f327154ba56e0f2e74c Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Tue, 20 Feb 2018 13:37:55 +0100 Subject: [PATCH 122/464] tests & docs for _uuids_from_table_row --- openpathsampling/new/serialization_helpers.py | 54 +++++++++++++++---- .../new/test_serialization_helpers.py | 50 +++++++++++++---- 2 files changed, 84 insertions(+), 20 deletions(-) diff --git a/openpathsampling/new/serialization_helpers.py b/openpathsampling/new/serialization_helpers.py index f55fb06b6..a62cc3369 100644 --- a/openpathsampling/new/serialization_helpers.py +++ b/openpathsampling/new/serialization_helpers.py @@ -285,29 +285,61 @@ def from_json_obj(uuid, table_row, cache_list): return obj -def uuids_from_table_row(table_row, schema_entries): +def _uuids_from_table_row(table_row, schema_entries): + """Gather UUIDs from a table row (as provided by storage). + + This organizes the UUIDS that are included in the table row based on + information from that row. It separated objects to be proxied ('lazy') + from objects to be directory loaded ('uuid', 'list_uuid', 'json_obj'). + It also create the dependency dictionary (the entry for this row) that + will be used to create the reconstruction DAG. + + This is for internal use; not to be part of the API. + + Parameters + ---------- + table_row : object + must have attributes as defined by ``schema_entries``, plus a + ``uuid`` attribute. Typically comes directly from the backend. + schema_entries : list of 2-tuple + the pairs of (attribute_name, attribute_type) describing the columns + from the ``table_row``. Should match the schema entry for the table + that the table row comes from. + + Returns + ------- + uuid : list + list of UUIDs to be fully loaded + lazy : set + set of UUIDs to a lazy-loaded (i.e., as proxy) + dependencies : dict + length 1 dict mapping the input row's UUID to all UUIDs that it + directly depends on (i.e., everything from ``uuid`` and ``lazy``). + """ # take the schema entries here, not the whole schema lazy = set([]) - uuid = [] + uuid = set([]) for (attr, attr_type) in schema_entries: if attr_type == 'uuid': - uuid.append(getattr(table_row, attr)) + uuid.add(getattr(table_row, attr)) elif attr_type == 'list_uuid': - # TODO: can find_dependent_uuids work here? + # TODO: better to use encoded_uuid_re here? uuid_list = ujson.loads(getattr(table_row, attr)) if uuid_list: # skip if None (or empty) - uuid_list = [decode_uuid(u) for u in uuid_list] - uuid.extend(uuid_list) + uuid_list = {decode_uuid(u) for u in uuid_list} + uuid.update(uuid_list) elif attr_type == 'json_obj': json_dct = getattr(table_row, attr) - uuid.extend(encoded_uuid_re.findall(json_dct)) + uuid.update(set(encoded_uuid_re.findall(json_dct))) elif attr_type == 'lazy': lazy.add(getattr(table_row, attr)) # other cases aren't UUIDs and are ignored - # remove all existiences of None as a UUID to depend on - dependencies = {table_row.uuid: (set(uuid) | lazy) - {None}} - return (uuid, lazy, dependencies) + # remove all cases of None as a UUID to depend on + # TODO: should None be in the UUID list even? + # TODO: can we return the set here? + dependencies = {table_row.uuid: (uuid | lazy) - {None}} + return (list(uuid), lazy, dependencies) def get_all_uuids_loading(uuid_list, backend, schema, existing_uuids=None): @@ -335,7 +367,7 @@ def get_all_uuids_loading(uuid_list, backend, schema, existing_uuids=None): uuid_list = [] for row in new_table_rows: entries = schema[uuid_to_table[row.uuid]] - loc_uuid, loc_lazy, deps = uuids_from_table_row(row, entries) + loc_uuid, loc_lazy, deps = _uuids_from_table_row(row, entries) uuid_list += loc_uuid lazy.update(loc_lazy) dependencies.update(deps) diff --git a/openpathsampling/new/test_serialization_helpers.py b/openpathsampling/new/test_serialization_helpers.py index fb8c6a82f..86a6e7692 100644 --- a/openpathsampling/new/test_serialization_helpers.py +++ b/openpathsampling/new/test_serialization_helpers.py @@ -1,3 +1,5 @@ +from collections import namedtuple +import json from serialization_helpers import * import numpy as np import pytest @@ -9,14 +11,17 @@ def uuid_encode(name): return "UUID(" + str(toy_uuid_maker(name)) + ")" class MockUUIDObject(object): + attr_list = ['name', 'normal_attr', 'obj_attr', 'list_attr', + 'dict_attr', 'lazy_attr'] def __init__(self, name, normal_attr=None, obj_attr=None, - list_attr=None, dict_attr=None): + list_attr=None, dict_attr=None, lazy_attr=None): self.name = name self.__uuid__ = toy_uuid_maker(name) self.dict_attr = dict_attr self.list_attr = list_attr self.obj_attr = obj_attr self.normal_attr = normal_attr + self.lazy_attr = lazy_attr def to_dict(self): return { @@ -24,7 +29,8 @@ def to_dict(self): 'obj_attr': self.obj_attr, 'list_attr': self.list_attr, 'dict_attr': self.dict_attr, - 'normal_attr': self.normal_attr + 'normal_attr': self.normal_attr, + 'lazy_attr': self.lazy_attr } @classmethod @@ -131,16 +137,14 @@ def test_get_all_uuids_with_known(obj, included_objs): [uuid_encode('int')]]}) ]) def test_replace_uuid(obj, replace_dct): - after_replacement = {key: None - for key in ['name', 'dict_attr', 'list_attr', - 'normal_attr', 'obj_attr']} + after_replacement = {key: None for key in MockUUIDObject.attr_list} after_replacement.update(replace_dct) encoding = lambda x: "UUID(" + str(x) + ")" assert replace_uuid(obj.to_dict(), encoding) == after_replacement def test_replace_uuid_ndarray(): # can't use assert == with arrays - after_replacement = {'name': 'np', 'dict_attr': None, + after_replacement = {'name': 'np', 'dict_attr': None, 'lazy_attr': None, 'list_attr': None, 'obj_attr': None, 'normal_attr': np.array([1.0, 2.0])} encoding = lambda x: "UUID(" + str(x) + ")" @@ -186,12 +190,40 @@ def test_seach_caches_missing_error(cache_list): def test_from_dict_with_uuids(cache_list): # this one only uses lst # this matches test_replace_uuid - lst_dict = {key: None - for key in ['name', 'dict_attr', 'list_attr', 'normal_attr', - 'obj_attr']} + lst_dict = {key: None for key in MockUUIDObject.attr_list} lst_dict.update({'name': 'lst', 'list_attr': [uuid_encode('int'), uuid_encode('str')]}) lst_obj = from_dict_with_uuids(lst_dict, cache_list) expected = all_objects['lst'] assert lst_obj == expected.to_dict() + +def test_uuids_from_table_row(): + TableRow = namedtuple("TableRow", + ['uuid', 'idx'] + MockUUIDObject.attr_list) + row = TableRow(name="row", + dict_attr=None, + list_attr=json.dumps([uuid_encode('int'), + uuid_encode('str')]), + obj_attr=str(toy_uuid_maker('obj')), + lazy_attr=str(toy_uuid_maker('nest')), + normal_attr="bar", + uuid=str(toy_uuid_maker('row')), + idx=1) + entries = [('dict_attr', 'uuid'), ('list_attr', 'list_uuid'), + ('obj_attr', 'uuid'), ('lazy_attr', 'lazy'), + ('normal_attr', 'str')] + uuids, lazy, deps = uuids_from_table_row(row, entries) + + assert lazy == {str(toy_uuid_maker('nest'))} + # TODO: do we want to allow None in the UUID list? Comes from dict_attr + assert set(uuids) == {str(toy_uuid_maker('int')), + str(toy_uuid_maker('str')), + str(toy_uuid_maker('obj')), None} + assert len(deps) == 1 + assert set(deps[str(toy_uuid_maker('row'))]) == \ + {str(toy_uuid_maker('int')), str(toy_uuid_maker('str')), + str(toy_uuid_maker('obj')), str(toy_uuid_maker('nest'))} + +def test_get_reload_order(): + pytest.skip() From 1ee80fbd24b25c242fc0f8a9a8bed83640b30fbc Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Tue, 20 Feb 2018 18:02:38 +0100 Subject: [PATCH 123/464] steps toward performance improvements (find UUIDs) --- openpathsampling/new/class_info.py | 40 +++++++-- openpathsampling/new/ops_storage.py | 4 +- openpathsampling/new/serialization.py | 7 +- openpathsampling/new/serialization_helpers.py | 86 ++++++++++++++----- openpathsampling/new/storage.py | 2 +- .../new/test_serialization_helpers.py | 3 +- 6 files changed, 105 insertions(+), 37 deletions(-) diff --git a/openpathsampling/new/class_info.py b/openpathsampling/new/class_info.py index cf102c174..816f49b29 100644 --- a/openpathsampling/new/class_info.py +++ b/openpathsampling/new/class_info.py @@ -1,8 +1,7 @@ import tools from serialization import DefaultSerializer, DefaultDeserializer - -import cloudpickle +from serialization_helpers import SchemaFindUUIDs class ClassInfo(object): """ @@ -21,7 +20,7 @@ class ClassInfo(object): the result when ClassInfoContainer looks up objects in this table """ def __init__(self, table, cls, serializer=None, deserializer=None, - lookup_result=None): + lookup_result=None, find_uuids=None): self.table = table self.cls = cls self.serializer = serializer @@ -29,14 +28,22 @@ def __init__(self, table, cls, serializer=None, deserializer=None, if lookup_result is None: lookup_result = cls self.lookup_result = lookup_result + self.find_uuids = find_uuids def set_defaults(self, schema): - if self.serializer is None: - self.serializer = DefaultSerializer(schema, self.table, - self.cls) - if self.deserializer is None: - self.deserializer = DefaultDeserializer(schema, self.table, - self.cls) + self.serializer = tools.none_to_default( + self.serializer, + DefaultSerializer(schema, self.table, self.cls) + ) + self.deserializer = tools.none_to_default( + self.deserializer, + DefaultDeserializer(schema, self.table, self.cls) + ) + self.find_uuids = tools.none_to_default( + self.find_uuids, + SchemaFindUUIDs(schema[self.table]) + ) + def __repr__(self): return ("ClassInfo(table=" + self.table + ", cls=" + str(self.cls) @@ -111,6 +118,7 @@ def get_special(self, item): return self.missing_table def __getitem__(self, item): + # TODO: base this off of info_from_instance if tools.is_string(item): return self.table_to_info[item] elif self.is_special(item): @@ -125,6 +133,20 @@ def __getitem__(self, item): else: raise e + def info_from_instance(self, item): + if self.is_special(item): + self.get_special(item) + else: + lookup = self.lookup_key(item) + if lookup in self.lookup_to_info: + return self.lookup_to_info[lookup] + elif isinstance(item, self.default_info.cls): + return self.default_info + else: + return None + + + def __repr__(self): # pragma: no cover return ("ClassInfoContainer(default_info=" + repr(self.default_info) + ", class_info_list=" + repr(self.class_info_list) + ")") diff --git a/openpathsampling/new/ops_storage.py b/openpathsampling/new/ops_storage.py index 954bbe8b1..301e30aaa 100644 --- a/openpathsampling/new/ops_storage.py +++ b/openpathsampling/new/ops_storage.py @@ -5,6 +5,7 @@ from serialization_helpers import from_json_obj as deserialize_sim from serialization_helpers import import_class from serialization_helpers import get_uuid, set_uuid +from serialization_helpers import default_find_uuids import openpathsampling as paths from openpathsampling.netcdfplus import StorableObject @@ -88,7 +89,8 @@ def special_lookup_key(self, item): ops_class_info = OPSClassInfoContainer( default_info=ClassInfo('simulation_objects', cls=StorableObject, serializer=SimulationObjectSerializer(), - deserializer=deserialize_sim), + deserializer=deserialize_sim, + find_uuids=default_find_uuids), class_info_list=[ ClassInfo(table='samples', cls=paths.Sample), ClassInfo(table='sample_sets', cls=paths.SampleSet), diff --git a/openpathsampling/new/serialization.py b/openpathsampling/new/serialization.py index d5bd4aa91..e48401934 100644 --- a/openpathsampling/new/serialization.py +++ b/openpathsampling/new/serialization.py @@ -73,7 +73,8 @@ def __repr__(self): class Serialization(object): builtin_types = ['int', 'float', 'str'] uuid_types = ['uuid', 'list_uuid', 'lazy'] - # TODO: to_json here might not quite be correct; need to_bare_json? + # TODO: this whole object is deprecated; need better way to handle lazy + # proxies; serialization registration may move to the ClassInfoContainer def __init__(self, storage): self.storage = storage @@ -88,8 +89,8 @@ def __init__(self, storage): self.attribute_deserializers = { 'uuid': serialization.from_json_obj, 'lazy': self.make_lazy, - 'json': serialization.from_bare_json, - 'list_uuid': serialization.from_bare_json + 'json': None, + 'list_uuid': None } self.schema = {} self.table_to_class = {} diff --git a/openpathsampling/new/serialization_helpers.py b/openpathsampling/new/serialization_helpers.py index a62cc3369..cdbd9bd05 100644 --- a/openpathsampling/new/serialization_helpers.py +++ b/openpathsampling/new/serialization_helpers.py @@ -54,10 +54,40 @@ def is_uuid_string(obj): # Getting the list of UUIDs bsed on initial objets ################### +def caches_contain(key, cache_list): + for cache in cache_list: + if key in cache: + return True + return False + +def default_find_uuids(obj, cache_list): + uuids = {} + new_objects = [] + obj_uuid = get_uuid(obj) if has_uuid(obj) else None + # filter known uuids: skip processing if known + if caches_contain(obj_uuid, [uuids] + cache_list): + return uuids, new_objects + # UUID objects + if obj_uuid: + # print repr(obj) + # print obj.to_dict().keys() + uuids.update({obj_uuid: obj}) + new_objects.extend(list(obj.to_dict().values())) + + # mappables and iterables + # TODO: There might be a way, using a ClassInfoContainer, to + # simplify this for data objects. (We spend a significant + # fraction of time in is_mappable/is_iterable.) + if is_mappable(obj): + new_objects.extend([o for o in obj.keys() if has_uuid(o)]) + new_objects.extend(list(obj.values())) + elif is_iterable(obj) and not is_numpy_iterable(obj): + new_objects.extend(list(obj)) + return uuids, new_objects # NOTE: this needs find everything, including if the iterable/mapping has a # UUID, find that and things under it -def get_all_uuids(initial_object, known_uuids=None): +def get_all_uuids(initial_object, known_uuids=None, class_info=None): """Find all UUID objects (to be stored) This searches through an initial object, finding *all* nested objects @@ -71,6 +101,7 @@ def get_all_uuids(initial_object, known_uuids=None): objects that can be excluded from the search tree, presumably because they have already been searched and any object beneath them in the search tree also also already known + class_info : Returns ------- @@ -80,34 +111,45 @@ def get_all_uuids(initial_object, known_uuids=None): known_uuids = tools.none_to_default(known_uuids, {}) objects = {initial_object} uuids = {} - uuid_or_none = lambda o: get_uuid(o) if has_uuid(o) else None while objects: new_objects = [] for obj in objects: - obj_uuid = uuid_or_none(obj) - # filter known uuids: skip processing if known - if obj_uuid in uuids or obj_uuid in known_uuids: - continue - # UUID objects - if obj_uuid: - # print repr(obj) - # print obj.to_dict().keys() - uuids.update({obj_uuid: obj}) - new_objects.extend(list(obj.to_dict().values())) - - # mappables and iterables - # TODO: There might be a way, using a ClassInfoContainer, to - # simplify this for data objects. (We spend a significant - # fraction of time in is_mappable/is_iterable.) - if is_mappable(obj): - new_objects.extend([o for o in obj.keys() if has_uuid(o)]) - new_objects.extend(list(obj.values())) - elif is_iterable(obj) and not is_numpy_iterable(obj): - new_objects.extend(list(obj)) + if class_info and class_info.info_from_instance(obj): + find_uuids = class_info.info_from_instance(obj).find_uuids + else: + find_uuids = default_find_uuids + + new_uuids, new_objs = find_uuids(obj=obj, + cache_list=[uuids, known_uuids]) + + uuids.update(new_uuids) + new_objects.extend(new_objs) + objects = new_objects return uuids +class SchemaFindUUIDs(object): + def __init__(self, schema_entries): + self.schema_entries = [ + (attr, attr_type) for (attr, attr_type) in schema_entries + if attr_type in ['uuid', 'lazy', 'list_uuid'] + ] + + def __call__(self, obj, known_uuids): + uuids = {get_uuid(obj): obj} + new_objects = [] + + for (attr, attr_type) in self.schema_entries: + attr_obj = getattr(obj, attr) + if attr_type in ['uuid', 'lazy']: + new_objects.append(attr_obj) + elif attr_type == 'list_uuid': + new_objects.extend(attr_obj) + + return uuids, new_objects + + # TODO: I think this can be removed (only used by get_all_uuid_string) def find_dependent_uuids(json_dct): dct = ujson.loads(json_dct) diff --git a/openpathsampling/new/storage.py b/openpathsampling/new/storage.py index b0f025d54..0f868d092 100644 --- a/openpathsampling/new/storage.py +++ b/openpathsampling/new/storage.py @@ -131,7 +131,7 @@ def save(self, obj): # find all UUIDs we need to save with this object logger.debug("Listing all objects to save") # TODO: use self.cache as the known_uuids - uuids = get_all_uuids(obj) + uuids = get_all_uuids(obj, known_uuids=self.cache) logger.debug("Checking if objects already exist in database") # remove any UUIDs that have already been saved exists = self.backend.load_uuids_table(uuids=list(uuids.keys()), diff --git a/openpathsampling/new/test_serialization_helpers.py b/openpathsampling/new/test_serialization_helpers.py index 86a6e7692..0430d9fa7 100644 --- a/openpathsampling/new/test_serialization_helpers.py +++ b/openpathsampling/new/test_serialization_helpers.py @@ -1,6 +1,7 @@ from collections import namedtuple import json from serialization_helpers import * +from serialization_helpers import _uuids_from_table_row import numpy as np import pytest @@ -213,7 +214,7 @@ def test_uuids_from_table_row(): entries = [('dict_attr', 'uuid'), ('list_attr', 'list_uuid'), ('obj_attr', 'uuid'), ('lazy_attr', 'lazy'), ('normal_attr', 'str')] - uuids, lazy, deps = uuids_from_table_row(row, entries) + uuids, lazy, deps = _uuids_from_table_row(row, entries) assert lazy == {str(toy_uuid_maker('nest'))} # TODO: do we want to allow None in the UUID list? Comes from dict_attr From cd6a4672d18389f7081679106740f83f1fa951f9 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Wed, 21 Feb 2018 12:14:13 +0100 Subject: [PATCH 124/464] Added some logging (to watch process ID) --- openpathsampling/engines/external_engine.py | 6 ++++++ openpathsampling/tests/external_engine/microtest.py | 10 +++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/openpathsampling/engines/external_engine.py b/openpathsampling/engines/external_engine.py index 9e99298a5..40a336074 100644 --- a/openpathsampling/engines/external_engine.py +++ b/openpathsampling/engines/external_engine.py @@ -117,6 +117,8 @@ def start(self, snapshot=None): preexec_fn=os.setsid) except OSError: # pragma: no cover raise #TODO: need to handle this, but do what? + else: + logger.info("Started engine: " + str(self.proc)) if self.first_frame_in_file: _ = self.generate_next_frame() # throw away repeat first frame @@ -125,8 +127,12 @@ def stop(self, trajectory): super(ExternalEngine, self).stop(trajectory) logger.info("total_time {:.4f}".format(time.time() - self.start_time)) proc = self.who_to_kill() + logger.info("About to send signal %s to %s", str(self.killsig), + str(proc)) proc.send_signal(self.killsig) + logger.debug("Signal has been sent") proc.wait() # wait for the zombie to die + logger.debug("Zombie should be dead") self.cleanup() # FROM HERE ARE THE FUNCTIONS TO OVERRIDE IN SUBCLASSES: diff --git a/openpathsampling/tests/external_engine/microtest.py b/openpathsampling/tests/external_engine/microtest.py index 34b3ce1d2..c51791918 100644 --- a/openpathsampling/tests/external_engine/microtest.py +++ b/openpathsampling/tests/external_engine/microtest.py @@ -18,7 +18,15 @@ def build_engine(template): 'name_prefix' : "microtest", 'engine_directory' : os.path.dirname(os.path.realpath(__file__)) } - engine = peng.ExternalEngine(opts, template) + n_atoms, n_spatial = template.coordinates.shape + descriptor = paths.engines.SnapshotDescriptor.construct( + snapshot_class=peng.toy.Snapshot, + snapshot_dimensions={ + 'n_atoms': n_atoms, + 'n_spatial': n_spatial + } + ) + engine = peng.ExternalEngine(opts, descriptor, template) return engine def run(): From 1dfa224b9e1d92db5fb17f41fcd93c74cf452e4d Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Fri, 2 Mar 2018 12:36:53 +0100 Subject: [PATCH 125/464] Remove req simtk.unit from dictify.py --- openpathsampling/netcdfplus/dictify.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/openpathsampling/netcdfplus/dictify.py b/openpathsampling/netcdfplus/dictify.py index 388c0e1a8..644089635 100644 --- a/openpathsampling/netcdfplus/dictify.py +++ b/openpathsampling/netcdfplus/dictify.py @@ -2,7 +2,12 @@ import importlib import numpy as np -from simtk import unit as units +try: + from simtk import unit as units +except ImportError: + is_simtk_quantity = lambda obj: False +else: + is_simtk_quantity = lambda obj: obj.__class__ is units.Quantity import math import abc from uuid import UUID @@ -132,7 +137,8 @@ def simplify(self, obj, base_type=''): '_integer': str(obj)} elif obj.__class__.__module__ != builtin_module: - if obj.__class__ is units.Quantity: + #if obj.__class__ is units.Quantity: + if is_simtk_quantity(obj): # This is number with a unit so turn it into a list if self.unit_system is not None: return { @@ -318,6 +324,7 @@ def unit_to_dict(unit): @staticmethod def unit_from_dict(unit_dict): + # this will *only* work if simtk.unit is installed unit = units.Unit({}) for unit_name, unit_multiplication in unit_dict.items(): unit *= getattr(units, unit_name) ** unit_multiplication From 0e4031c68a3c985e5df895c7de943d93ebccd588 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Fri, 2 Mar 2018 12:57:29 +0100 Subject: [PATCH 126/464] Remove reqs in features. Add integration_tools.py --- openpathsampling/engines/features/shared.py | 6 +++--- openpathsampling/engines/features/statics.py | 1 - openpathsampling/integration_tools.py | 18 ++++++++++++++++++ openpathsampling/netcdfplus/dictify.py | 8 ++------ 4 files changed, 23 insertions(+), 10 deletions(-) create mode 100644 openpathsampling/integration_tools.py diff --git a/openpathsampling/engines/features/shared.py b/openpathsampling/engines/features/shared.py index e413dbdf5..c22b2e2ca 100644 --- a/openpathsampling/engines/features/shared.py +++ b/openpathsampling/engines/features/shared.py @@ -1,10 +1,8 @@ import copy import numpy as np -from simtk import unit as u - from openpathsampling.netcdfplus import StorableObject, ObjectStore, WeakLRUCache - +from openpathsampling.integration_tools import error_if_no_simtk_unit # ============================================================================= # SIMULATION CONFIGURATION @@ -154,6 +152,7 @@ def coordinates_as_numpy(self, frame_indices=None, atom_indices=None): def initialize(self): super(StaticContainerStore, self).initialize() + error_if_no_simtk_unit("StaticContainerStore") self.create_variable( 'coordinates', 'numpy.float32', @@ -295,6 +294,7 @@ def initialize(self): """ Initializes the associated storage to index momentums in it """ + error_if_no_simtk_unit("KineticContainerStore") super(KineticContainerStore, self).initialize() diff --git a/openpathsampling/engines/features/statics.py b/openpathsampling/engines/features/statics.py index 4cf2965b4..0838aaf7b 100644 --- a/openpathsampling/engines/features/statics.py +++ b/openpathsampling/engines/features/statics.py @@ -1,6 +1,5 @@ import numpy as np from .shared import StaticContainerStore, StaticContainer -import mdtraj from openpathsampling.netcdfplus import WeakLRUCache import openpathsampling as paths diff --git a/openpathsampling/integration_tools.py b/openpathsampling/integration_tools.py new file mode 100644 index 000000000..c7017bfd4 --- /dev/null +++ b/openpathsampling/integration_tools.py @@ -0,0 +1,18 @@ +""" +Tools for integration with miscellaneous non-required packages. +""" + +try: + from simtk import unit as units +except ImportError: + is_simtk_quantity = lambda obj: False + HAS_SIMTK_UNIT = False +else: + is_simtk_quantity = lambda obj: obj.__class__ is units.Quantity + HAS_SIMTK_UNIT = True + +def error_if_no_simtk_unit(name): + if not HAS_SIMTK_UNIT: + raise RuntimeError(name + " requires simtk.unit, which is " + + "not installed") + diff --git a/openpathsampling/netcdfplus/dictify.py b/openpathsampling/netcdfplus/dictify.py index 644089635..027180fd4 100644 --- a/openpathsampling/netcdfplus/dictify.py +++ b/openpathsampling/netcdfplus/dictify.py @@ -2,12 +2,8 @@ import importlib import numpy as np -try: - from simtk import unit as units -except ImportError: - is_simtk_quantity = lambda obj: False -else: - is_simtk_quantity = lambda obj: obj.__class__ is units.Quantity + +from openpathsampling.integration_tools import is_simtk_quantity import math import abc from uuid import UUID From 2d35675cd68f1fa6d14162ff9a2ab74097caf77d Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Fri, 2 Mar 2018 14:32:22 +0100 Subject: [PATCH 127/464] Progress on removing mdtraj & simtk.unit as reqs --- openpathsampling/collectivevariable.py | 27 ++++++----- openpathsampling/engines/dynamics_engine.py | 17 ++++--- openpathsampling/engines/features/shared.py | 10 ++-- openpathsampling/engines/openmm/__init__.py | 30 +++++++----- openpathsampling/engines/openmm/tools.py | 54 +++++++++++++-------- openpathsampling/engines/trajectory.py | 9 ++-- openpathsampling/integration_tools.py | 30 ++++++++++-- openpathsampling/netcdfplus/dictify.py | 8 +-- 8 files changed, 117 insertions(+), 68 deletions(-) diff --git a/openpathsampling/collectivevariable.py b/openpathsampling/collectivevariable.py index 99dab969d..55a190e07 100644 --- a/openpathsampling/collectivevariable.py +++ b/openpathsampling/collectivevariable.py @@ -1,5 +1,6 @@ -import openpathsampling.engines as peng +import openpathsampling as paths import openpathsampling.netcdfplus.chaindict as cd +from openpathsampling.integration_tools import md, error_if_no_mdtraj from openpathsampling.engines.openmm.tools import trajectory_to_mdtraj from openpathsampling.netcdfplus import WeakKeyCache, \ ObjectJSON, create_to_dict, ObjectStore, PseudoAttribute @@ -53,7 +54,7 @@ def __init__( name, cv_time_reversible=False ): - super(CollectiveVariable, self).__init__(name, peng.BaseSnapshot) + super(CollectiveVariable, self).__init__(name, paths.BaseSnapshot) self.cv_time_reversible = cv_time_reversible self.diskcache_allow_incomplete = not self.cv_time_reversible @@ -189,11 +190,11 @@ def __init__( with the function and this can only be done if they are passed as arguments to the function and added as kwargs to the FunctionCV - >>> import openpathsampling.engines as peng + >>> import openpathsampling as paths >>> def func(snapshot, indices): >>> import mdtraj as md >>> return md.compute_dihedrals( - >>> peng.Trajectory([snapshot]).to_mdtraj(), indices=indices) + >>> paths.Trajectory([snapshot]).to_mdtraj(), indices=indices) >>> cv = FunctionCV('my_cv', func, indices=[[4, 6, 8, 10]]) @@ -446,7 +447,7 @@ def generator(self): return self.cv_callable def _eval(self, items): - trajectory = peng.Trajectory(items) + trajectory = paths.Trajectory(items) return [self._instance(snap) for snap in trajectory] @@ -511,7 +512,7 @@ class MDTrajFunctionCV(CoordinateFunctionCV): >>> # To create an order parameter which calculates the dihedral formed >>> # by atoms [7,9,15,17] (psi in Ala dipeptide): >>> import mdtraj as md - >>> traj = 'peng.Trajectory()' + >>> traj = 'paths.Trajectory()' >>> psi_atoms = [7,9,15,17] >>> psi_orderparam = FunctionCV("psi", md.compute_dihedrals, >>> indices=[[2,4,6,8]]) @@ -558,7 +559,7 @@ def __init__(self, self.topology = topology def _eval(self, items): - trajectory = peng.Trajectory(items) + trajectory = paths.Trajectory(items) t = trajectory_to_mdtraj(trajectory, self.topology.mdtraj) return self.cv_callable(t, **self.kwargs) @@ -626,9 +627,9 @@ def __init__( # turn Snapshot and Trajectory into md.trajectory for key in md_kwargs: - if isinstance(md_kwargs[key], peng.BaseSnapshot): + if isinstance(md_kwargs[key], paths.BaseSnapshot): md_kwargs[key] = md_kwargs[key].to_mdtraj() - elif isinstance(md_kwargs[key], peng.Trajectory): + elif isinstance(md_kwargs[key], paths.Trajectory): md_kwargs[key] = md_kwargs[key].to_mdtraj() self._instance = featurizer(**md_kwargs) @@ -649,7 +650,7 @@ def featurizer(self): return self.cv_callable def _eval(self, items): - trajectory = peng.Trajectory(items) + trajectory = paths.Trajectory(items) # create an mdtraj trajectory out of it ptraj = trajectory_to_mdtraj(trajectory, self.topology.mdtraj) @@ -714,9 +715,9 @@ def __init__( # turn Snapshot and Trajectory into md.trajectory for key in md_kwargs: - if isinstance(md_kwargs[key], peng.BaseSnapshot): + if isinstance(md_kwargs[key], paths.BaseSnapshot): md_kwargs[key] = md_kwargs[key].to_mdtraj() - elif isinstance(md_kwargs[key], peng.Trajectory): + elif isinstance(md_kwargs[key], paths.Trajectory): md_kwargs[key] = md_kwargs[key].to_mdtraj() self.topology = topology @@ -736,7 +737,7 @@ def __init__( ) def _eval(self, items): - trajectory = peng.Trajectory(items) + trajectory = paths.Trajectory(items) t = trajectory_to_mdtraj(trajectory, self.topology.mdtraj) return self._instance.transform(t) diff --git a/openpathsampling/engines/dynamics_engine.py b/openpathsampling/engines/dynamics_engine.py index 0919a1b34..30e6ba6e0 100644 --- a/openpathsampling/engines/dynamics_engine.py +++ b/openpathsampling/engines/dynamics_engine.py @@ -8,9 +8,8 @@ import logging import sys -import simtk.unit as u - from openpathsampling.netcdfplus import StorableNamedObject +from openpathsampling.integration_tools import is_simtk_unit_type from .snapshot import BaseSnapshot from .trajectory import Trajectory @@ -121,10 +120,15 @@ class DynamicsEngine(StorableNamedObject): 'on_error': 'fail' } + #units = { + #'length': u.Unit({}), + #'velocity': u.Unit({}), + #'energy': u.Unit({}) + #} units = { - 'length': u.Unit({}), - 'velocity': u.Unit({}), - 'energy': u.Unit({}) + 'length': None, + 'velocity': None, + 'energy': None } base_snapshot_type = BaseSnapshot @@ -217,7 +221,8 @@ def _check_options(self, options=None): if variable in my_options: if type(my_options[variable]) is type(default_value): - if type(my_options[variable]) is u.Unit: + #if type(my_options[variable]) is u.Unit: + if is_simtk_unit_type(my_options[variable]): if my_options[variable].unit.is_compatible( default_value): okay_options[variable] = my_options[variable] diff --git a/openpathsampling/engines/features/shared.py b/openpathsampling/engines/features/shared.py index c22b2e2ca..36d3916a3 100644 --- a/openpathsampling/engines/features/shared.py +++ b/openpathsampling/engines/features/shared.py @@ -2,7 +2,7 @@ import numpy as np from openpathsampling.netcdfplus import StorableObject, ObjectStore, WeakLRUCache -from openpathsampling.integration_tools import error_if_no_simtk_unit +from openpathsampling.integration_tools import error_if_no_simtk_unit, unit # ============================================================================= # SIMULATION CONFIGURATION @@ -44,7 +44,7 @@ def __init__(self, coordinates, box_vectors): # if self.coordinates is not None: # # Check for nans in coordinates, and raise an exception if # # something is wrong. - # if type(self.coordinates) is u.Quantity: + # if type(self.coordinates) is unit.Quantity: # coords = self.coordinates._value # else: # coords = self.coordinates @@ -160,13 +160,13 @@ def initialize(self): description="coordinate of atom '{ix[1]}' in dimension " + "'{ix[2]}' of configuration '{ix[0]}'.", chunksizes=('n_atoms', 'n_spatial'), - simtk_unit=u.nanometers) + simtk_unit=unit.nanometers) self.create_variable( 'box_vectors', 'numpy.float32', dimensions=('n_spatial', 'n_spatial'), chunksizes=('n_spatial', 'n_spatial'), - simtk_unit=u.nanometers) + simtk_unit=unit.nanometers) # ============================================================================= @@ -304,4 +304,4 @@ def initialize(self): description="the velocity of atom 'atom' in dimension " + "'coordinate' of momentum 'momentum'.", chunksizes=('n_atoms', 'n_spatial'), - simtk_unit=u.nanometers / u.picoseconds) + simtk_unit=unit.nanometers / unit.picoseconds) diff --git a/openpathsampling/engines/openmm/__init__.py b/openpathsampling/engines/openmm/__init__.py index ada7ce8ab..4c924cc58 100644 --- a/openpathsampling/engines/openmm/__init__.py +++ b/openpathsampling/engines/openmm/__init__.py @@ -1,14 +1,20 @@ -from .engine import OpenMMEngine as Engine -from .tools import ( - empty_snapshot_from_openmm_topology, - snapshot_from_pdb, - snapshot_from_testsystem, - to_openmm_topology, - trajectory_from_mdtraj, - trajectory_to_mdtraj -) +try: + import simtk.openmm + import simtk.openmm.app +except ImportError: + HAS_OPENMM = False +else: + from .engine import OpenMMEngine as Engine + from .tools import ( + empty_snapshot_from_openmm_topology, + snapshot_from_pdb, + snapshot_from_testsystem, + to_openmm_topology, + trajectory_from_mdtraj, + trajectory_to_mdtraj + ) -from . import features + from . import features -from .snapshot import Snapshot, MDSnapshot -from openpathsampling.engines import NoEngine, SnapshotDescriptor + from .snapshot import Snapshot, MDSnapshot + from openpathsampling.engines import NoEngine, SnapshotDescriptor diff --git a/openpathsampling/engines/openmm/tools.py b/openpathsampling/engines/openmm/tools.py index 0e9efd4a1..71f3a7cbd 100644 --- a/openpathsampling/engines/openmm/tools.py +++ b/openpathsampling/engines/openmm/tools.py @@ -1,7 +1,8 @@ -import mdtraj as md import numpy as np -import simtk.unit as u +from openpathsampling.integration_tools import ( + md, error_if_no_mdtraj, unit, error_if_no_simtk_unit +) from .snapshot import Snapshot from .topology import Topology, MDTrajTopology from openpathsampling.engines import Trajectory, NoEngine, SnapshotDescriptor @@ -93,6 +94,8 @@ def snapshot_from_pdb(pdb_file, simple_topology=False): the constructed Snapshot """ + error_if_no_mdtraj("snapshot_from_pdb") + error_if_no_simtk_unit("snapshot_from_pdb") pdb = md.load(pdb_file) velocities = np.zeros(pdb.xyz[0].shape) @@ -102,9 +105,10 @@ def snapshot_from_pdb(pdb_file, simple_topology=False): topology = MDTrajTopology(pdb.topology) snapshot = Snapshot.construct( - coordinates=u.Quantity(pdb.xyz[0], u.nanometers), - box_vectors=u.Quantity(pdb.unitcell_vectors[0], u.nanometers), - velocities=u.Quantity(velocities, u.nanometers / u.picoseconds), + coordinates=unit.Quantity(pdb.xyz[0], unit.nanometers), + box_vectors=unit.Quantity(pdb.unitcell_vectors[0], unit.nanometers), + velocities=unit.Quantity(velocities, + unit.nanometers / unit.picoseconds), engine=FileEngine(topology, pdb_file) ) @@ -160,9 +164,11 @@ def snapshot_from_testsystem(testsystem, simple_topology=False, the constructed Snapshot """ - - velocities = u.Quantity( - np.zeros(testsystem.positions.shape), u.nanometers / u.picoseconds) + error_if_no_simtk_unit("snapshot_from_testsystem") + u_nm = unit.nanometers + u_ps = unit.picoseconds + velocities = unit.Quantity(np.zeros(testsystem.positions.shape), + u_nm / u_ps) if simple_topology: topology = Topology(*testsystem.positions.shape) @@ -173,7 +179,7 @@ def snapshot_from_testsystem(testsystem, simple_topology=False, box_vectors = \ np.array([ v / u.nanometers for v in - testsystem.system.getDefaultPeriodicBoxVectors()]) * u.nanometers + testsystem.system.getDefaultPeriodicBoxVectors()]) * u_nm else: box_vectors = None @@ -207,8 +213,11 @@ def trajectory_from_mdtraj(mdtrajectory, simple_topology=False, openpathsampling.engines.Trajectory the constructed Trajectory instance """ + error_if_no_simtk_unit("trajectory_from_mdtraj") trajectory = Trajectory() - vel_unit = u.nanometer / u.picosecond + u_nm = unit.nanometer + u_ps = unit.picosecond + vel_unit = u_nm / u_ps if simple_topology: topology = Topology(*mdtrajectory.xyz[0].shape) @@ -216,23 +225,23 @@ def trajectory_from_mdtraj(mdtrajectory, simple_topology=False, topology = MDTrajTopology(mdtrajectory.topology) if velocities is None: - empty_vel = u.Quantity(np.zeros(mdtrajectory.xyz[0].shape), - vel_unit) + empty_vel = unit.Quantity(np.zeros(mdtrajectory.xyz[0].shape), + vel_unit) engine = TopologyEngine(topology) for frame_num in range(len(mdtrajectory)): # mdtraj trajectories only have coordinates and box_vectors - coord = u.Quantity(mdtrajectory.xyz[frame_num], u.nanometers) + coord = unit.Quantity(mdtrajectory.xyz[frame_num], u_nm) if velocities is not None: - vel = u.Quantity(velocities[frame_num], vel_unit) + vel = unit.Quantity(velocities[frame_num], vel_unit) else: vel = empty_vel if mdtrajectory.unitcell_vectors is not None: - box_v = u.Quantity(mdtrajectory.unitcell_vectors[frame_num], - u.nanometers) + box_v = unit.Quantity(mdtrajectory.unitcell_vectors[frame_num], + u_nm) else: box_v = None @@ -272,18 +281,22 @@ def empty_snapshot_from_openmm_topology(topology, simple_topology=False): the complete snapshot with zero coordinates and velocities """ + + error_if_no_simtk_unit("empty_snapshot_from_openmm_topology") + u_nm = unit.nanometers + u_ps = unit.picoseconds n_atoms = topology.n_atoms if simple_topology: topology = Topology(n_atoms, 3) else: + error_if_no_mdtraj("empty_snaphsot_from_openmm_topology") topology = MDTrajTopology(md.Topology.from_openmm(topology)) snapshot = Snapshot.construct( - coordinates=u.Quantity(np.zeros((n_atoms, 3)), u.nanometers), - box_vectors=u.Quantity(topology.setUnitCellDimensions(), u.nanometers), - velocities=u.Quantity( - np.zeros((n_atoms, 3)), u.nanometers / u.picoseconds), + coordinates=unit.Quantity(np.zeros((n_atoms, 3)), u_nm), + box_vectors=unit.Quantity(topology.setUnitCellDimensions(), u_nm), + velocities=u.Quantity(np.zeros((n_atoms, 3)), u_nm / u_ps), engine=TopologyEngine(topology) ) @@ -349,4 +362,5 @@ def trajectory_to_mdtraj(trajectory, md_topology=None): return trajectory.to_mdtraj(md_topology) def ops_load_trajectory(filename, **kwargs): + error_if_no_mdtraj("ops_load_trajectory") return trajectory_from_mdtraj(md.load(filename, **kwargs)) diff --git a/openpathsampling/engines/trajectory.py b/openpathsampling/engines/trajectory.py index 4e0d3c732..4e2b89d42 100644 --- a/openpathsampling/engines/trajectory.py +++ b/openpathsampling/engines/trajectory.py @@ -4,9 +4,10 @@ """ import numpy as np -import mdtraj as md -import simtk.unit as u +from openpathsampling.integration_tools import ( + error_if_no_mdtraj, is_simtk_quantity_type, md +) from openpathsampling.netcdfplus import StorableObject, LoaderProxy import openpathsampling as paths @@ -132,7 +133,8 @@ def __getattr__(self, item): hasattr(snapshot_class, '__features__') \ and item in snapshot_class.__features__.variables: first = getattr(self[0], item) - if type(first) is u.Quantity: + #if type(first) is u.Quantity: + if is_simtk_quantity_type(first): inner = first._value if type(inner) is np.ndarray: dtype = inner.dtype @@ -548,6 +550,7 @@ def to_mdtraj(self, topology=None): MDTraj, because an OPS zero-length trajectory cannot determine its MDTraj topology. """ + error_if_no_mdtraj("Converting to mdtraj") try: snap = self[0] except IndexError: diff --git a/openpathsampling/integration_tools.py b/openpathsampling/integration_tools.py index c7017bfd4..748fe0057 100644 --- a/openpathsampling/integration_tools.py +++ b/openpathsampling/integration_tools.py @@ -2,17 +2,37 @@ Tools for integration with miscellaneous non-required packages. """ +def error_if_no(name, package_name, has_package): + if not has_package: + raise RuntimeError(name + " requires " + package_name + + ", which is not installed") + +# simtk.unit ######################################################## try: - from simtk import unit as units + from simtk import unit except ImportError: + unit = None is_simtk_quantity = lambda obj: False + is_simtk_quantity_type = lambda obj: False + is_simtk_unit_type = lambda obj: False HAS_SIMTK_UNIT = False else: - is_simtk_quantity = lambda obj: obj.__class__ is units.Quantity + is_simtk_quantity = lambda obj: obj.__class__ is unit.Quantity + is_simtk_quantity_type = lambda obj: type(obj) is unit.Quantity + is_simtk_unit_type = lambda obj: type(obj) is unit.Unit HAS_SIMTK_UNIT = True def error_if_no_simtk_unit(name): - if not HAS_SIMTK_UNIT: - raise RuntimeError(name + " requires simtk.unit, which is " - + "not installed") + return error_if_no(name, "simtk.unit", HAS_SIMTK_UNIT) + +# mdtraj ############################################################ +try: + import mdtraj as md +except ImportError: + md = None + HAS_MDTRAJ = False +else: + HAS_MDTRAJ = True +def error_if_no_mdtraj(name): + return error_if_no(name, "mdtraj", HAS_MDTRAJ) diff --git a/openpathsampling/netcdfplus/dictify.py b/openpathsampling/netcdfplus/dictify.py index 027180fd4..18daebe34 100644 --- a/openpathsampling/netcdfplus/dictify.py +++ b/openpathsampling/netcdfplus/dictify.py @@ -3,7 +3,7 @@ import numpy as np -from openpathsampling.integration_tools import is_simtk_quantity +from openpathsampling.integration_tools import is_simtk_quantity, unit import math import abc from uuid import UUID @@ -321,11 +321,11 @@ def unit_to_dict(unit): @staticmethod def unit_from_dict(unit_dict): # this will *only* work if simtk.unit is installed - unit = units.Unit({}) + this_unit = unit.Unit({}) for unit_name, unit_multiplication in unit_dict.items(): - unit *= getattr(units, unit_name) ** unit_multiplication + this_unit *= getattr(unit, unit_name) ** unit_multiplication - return unit + return this_unit @staticmethod def callable_to_dict(c): From bf1e5f7e02e58d73e23b1f61088a6bad9682d40c Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Fri, 2 Mar 2018 16:10:23 +0100 Subject: [PATCH 128/464] Updates: minimal OPS import works; runs tests Still need massive cleanup for passing/skipped tests, though --- openpathsampling/engines/openmm/tools.py | 29 +++++++++++-------- openpathsampling/tests/__init__.py | 10 +++++-- openpathsampling/tests/test_attribute.py | 7 +++-- .../tests/test_collectivevariable.py | 5 ++-- openpathsampling/tests/test_features.py | 10 +++++-- openpathsampling/tests/test_helpers.py | 12 +++++++- openpathsampling/tests/test_mdtraj_support.py | 6 ++-- openpathsampling/tests/test_openmm_engine.py | 14 ++++++--- .../tests/test_openmm_snapshot.py | 12 ++++++-- .../tests/test_snapshot_modifier.py | 16 ++++++++-- openpathsampling/tests/test_storage.py | 7 ++--- setup.py | 8 ++--- 12 files changed, 93 insertions(+), 43 deletions(-) diff --git a/openpathsampling/engines/openmm/tools.py b/openpathsampling/engines/openmm/tools.py index 71f3a7cbd..50cc57003 100644 --- a/openpathsampling/engines/openmm/tools.py +++ b/openpathsampling/engines/openmm/tools.py @@ -3,8 +3,19 @@ from openpathsampling.integration_tools import ( md, error_if_no_mdtraj, unit, error_if_no_simtk_unit ) -from .snapshot import Snapshot -from .topology import Topology, MDTrajTopology +try: + import simtk.openmm + import simtk.openmm.app +except ImportError: + # this happens when we directly import tools (e.g., for + # trajectory_to/from_mdtraj) when we don't have OpenMM installed. In + # that case, we skip the imports in the else statement + # (engines/openmm/__init__.py prevents them from being made) + pass +else: + from .snapshot import Snapshot + from .topology import Topology, MDTrajTopology + from openpathsampling.engines import Trajectory, NoEngine, SnapshotDescriptor __author__ = 'Jan-Hendrik Prinz' @@ -176,10 +187,8 @@ def snapshot_from_testsystem(testsystem, simple_topology=False, topology = MDTrajTopology(md.Topology.from_openmm(testsystem.topology)) if periodic: - box_vectors = \ - np.array([ - v / u.nanometers for v in - testsystem.system.getDefaultPeriodicBoxVectors()]) * u_nm + sys_box_vectors = testsystem.system.getDefaultPeriodicBoxVectors() + box_vectors = np.array([v / u_nm for v in sys_box_vectors]) * u_nm else: box_vectors = None @@ -296,7 +305,7 @@ def empty_snapshot_from_openmm_topology(topology, simple_topology=False): snapshot = Snapshot.construct( coordinates=unit.Quantity(np.zeros((n_atoms, 3)), u_nm), box_vectors=unit.Quantity(topology.setUnitCellDimensions(), u_nm), - velocities=u.Quantity(np.zeros((n_atoms, 3)), u_nm / u_ps), + velocities=unit.Quantity(np.zeros((n_atoms, 3)), u_nm / u_ps), engine=TopologyEngine(topology) ) @@ -323,7 +332,7 @@ def to_openmm_topology(obj): if hasattr(obj.topology, 'mdtraj'): openmm_topology = obj.topology.mdtraj.to_openmm() box_size_dimension = np.linalg.norm( - obj.box_vectors.value_in_unit(u.nanometer), axis=1) + obj.box_vectors.value_in_unit(unit.nanometer), axis=1) openmm_topology.setUnitCellDimensions(box_size_dimension) return openmm_topology @@ -353,12 +362,8 @@ def trajectory_to_mdtraj(trajectory, md_topology=None): else: trajectory = Trajectory(trajectory) - # TODO: The following would work if we remove trajectory.to_mdtraj() # For now, let's keep all the code in one place, and better for # engines.openmm.tools to require engines.trajectory than vice versa - # output = trajectory.xyz - # traj = md.Trajectory(output, md_topology) - # traj.unitcell_vectors = trajectory.box_vectors return trajectory.to_mdtraj(md_topology) def ops_load_trajectory(filename, **kwargs): diff --git a/openpathsampling/tests/__init__.py b/openpathsampling/tests/__init__.py index d3e603156..33bd5158e 100644 --- a/openpathsampling/tests/__init__.py +++ b/openpathsampling/tests/__init__.py @@ -5,13 +5,19 @@ import openpathsampling.engines.openmm as peng -import mdtraj as md +try: + import mdtraj as md +except ImportError: + md = None from .test_helpers import data_filename def setup_package(): - # this should generate the trajectory.nc file which we'll use for + if not md: + return + # this should generate the ala_small_traj.nc file which we'll use for # everything else + # NOTE: tests using this must be skipped if there's no mdtraj! mdtrajectory = md.load(data_filename("ala_small_traj.pdb")) snapshot = peng.snapshot_from_pdb(data_filename("ala_small_traj.pdb")) diff --git a/openpathsampling/tests/test_attribute.py b/openpathsampling/tests/test_attribute.py index 0ac8d92b0..6c7b7405b 100644 --- a/openpathsampling/tests/test_attribute.py +++ b/openpathsampling/tests/test_attribute.py @@ -2,9 +2,10 @@ @author David W.H. Swenson """ -from .test_helpers import data_filename, assert_close_unit, make_1d_traj +from .test_helpers import data_filename, assert_close_unit, make_1d_traj, md + +from nose.plugins.skip import SkipTest -import mdtraj as md import openpathsampling.engines.openmm as peng from openpathsampling.netcdfplus import FunctionPseudoAttribute @@ -14,6 +15,8 @@ class TestFunctionPseudoAttribute(object): def setup(self): + if not md: + raise SkipTest("mdtraj not installed") self.mdtraj = md.load(data_filename("ala_small_traj.pdb")) self.traj_topology = peng.trajectory_from_mdtraj(self.mdtraj) self.traj_simple = peng.trajectory_from_mdtraj( diff --git a/openpathsampling/tests/test_collectivevariable.py b/openpathsampling/tests/test_collectivevariable.py index 08cf1eaf0..bad31a4dd 100644 --- a/openpathsampling/tests/test_collectivevariable.py +++ b/openpathsampling/tests/test_collectivevariable.py @@ -5,11 +5,10 @@ from builtins import zip from builtins import object -from .test_helpers import data_filename, assert_close_unit +from .test_helpers import data_filename, assert_close_unit, md from nose.plugins.skip import SkipTest -import mdtraj as md import numpy as np import openpathsampling.collectivevariable as op @@ -30,6 +29,8 @@ class TestFunctionCV(object): def setup(self): + if not md: + raise SkipTest("mdtraj not installed") self.mdtraj = md.load(data_filename("ala_small_traj.pdb")) self.traj_topology = peng.trajectory_from_mdtraj(self.mdtraj) self.traj_simple = peng.trajectory_from_mdtraj( diff --git a/openpathsampling/tests/test_features.py b/openpathsampling/tests/test_features.py index 3c6e84016..751aca04a 100644 --- a/openpathsampling/tests/test_features.py +++ b/openpathsampling/tests/test_features.py @@ -6,16 +6,20 @@ from nose.plugins.skip import Skip, SkipTest from .test_helpers import (true_func, assert_equal_array_array, - make_1d_traj, assert_items_equal) + make_1d_traj, assert_items_equal, u) import logging import numpy as np import numpy.testing as npt -import openmmtools as omt +try: + import openmmtools as omt +except ImportError: + omt = None + + import openpathsampling.engines.toy as toy_engine import openpathsampling.engines.openmm as omm_engine -import simtk.unit as u quiet_loggers = ["initialization", "ensemble", "netcdfplus.objects", "netcdfplus.netcdfplus", "pathmover", "netcdfplus.base"] diff --git a/openpathsampling/tests/test_helpers.py b/openpathsampling/tests/test_helpers.py index e21d7d2ff..79fd3acaf 100644 --- a/openpathsampling/tests/test_helpers.py +++ b/openpathsampling/tests/test_helpers.py @@ -10,7 +10,17 @@ import numpy as np import numpy.testing as npt -import simtk.unit as u + +try: + import simtk.unit as u +except ImportError: + u = None + +try: + import mdtraj as md +except ImportError: + md = None + from nose.tools import assert_equal, assert_in, assert_true #from nose.tools import assert_items_equal from pkg_resources import resource_filename diff --git a/openpathsampling/tests/test_mdtraj_support.py b/openpathsampling/tests/test_mdtraj_support.py index 17a499304..a87d50d0d 100644 --- a/openpathsampling/tests/test_mdtraj_support.py +++ b/openpathsampling/tests/test_mdtraj_support.py @@ -7,12 +7,10 @@ ) from nose.plugins.skip import SkipTest import numpy.testing as nptest -from .test_helpers import data_filename, assert_items_equal +from .test_helpers import data_filename, assert_items_equal, md, u import openpathsampling as paths -import mdtraj as md import numpy as np -from simtk import unit as u from openpathsampling.engines.openmm.tools import ( trajectory_from_mdtraj, trajectory_to_mdtraj, ops_load_trajectory @@ -28,6 +26,8 @@ class TestMDTrajSupport(object): def setup(self): + if not md: + raise SkipTest("mdtraj not installed") self.md_trajectory = md.load(data_filename("ala_small_traj.pdb")) self.ops_trajectory = trajectory_from_mdtraj(self.md_trajectory) self.md_topology = self.ops_trajectory.topology.mdtraj diff --git a/openpathsampling/tests/test_openmm_engine.py b/openpathsampling/tests/test_openmm_engine.py index 18021b959..e97a64679 100644 --- a/openpathsampling/tests/test_openmm_engine.py +++ b/openpathsampling/tests/test_openmm_engine.py @@ -8,10 +8,14 @@ from builtins import object from past.utils import old_div import numpy as np -import simtk.openmm as mm from nose.tools import (assert_equal) -from simtk import unit as u -from simtk.openmm import app +from nose.plugins.skip import SkipTest +try: + import simtk.openmm as mm + from simtk.openmm import app +except ImportError: + mm = None + app = None import openpathsampling.engines.openmm as peng import openpathsampling.engines as dyn @@ -24,7 +28,7 @@ true_func, data_filename, assert_equal_array_array, assert_not_equal_array_array, - raises_with_message_like) + raises_with_message_like, u, md) import logging logging.getLogger('openpathsampling.initialization').setLevel(logging.CRITICAL) @@ -34,6 +38,8 @@ def setup_module(): global topology, template, system, nan_causing_template + if not (u and mm and app and md): + raise SkipTest template = peng.snapshot_from_pdb(data_filename("ala_small_traj.pdb")) topology = peng.to_openmm_topology(template) diff --git a/openpathsampling/tests/test_openmm_snapshot.py b/openpathsampling/tests/test_openmm_snapshot.py index d763e8635..a8be5042e 100644 --- a/openpathsampling/tests/test_openmm_snapshot.py +++ b/openpathsampling/tests/test_openmm_snapshot.py @@ -5,10 +5,13 @@ import openpathsampling as paths from nose.tools import (assert_equal, assert_almost_equal, assert_not_equal, assert_is_not, assert_is) -from .test_helpers import data_filename, assert_close_unit +from nose.plugins.skip import SkipTest +from .test_helpers import data_filename, assert_close_unit, u -import openmmtools as omt -import simtk.unit as u +try: + import openmmtools as omt +except ImportError: + omt = None import numpy as np import logging @@ -20,6 +23,9 @@ class TestOpenMMSnapshot(object): def setup(self): + if not omt: + raise SkipTest("OpenMMTools not installed; required for OpenMM " + "tests.") self.test_system = omt.testsystems.AlanineDipeptideVacuum() self.template = omm_engine.snapshot_from_testsystem(self.test_system) self.engine = omm_engine.Engine( diff --git a/openpathsampling/tests/test_snapshot_modifier.py b/openpathsampling/tests/test_snapshot_modifier.py index 069cfa952..e7caecbbd 100644 --- a/openpathsampling/tests/test_snapshot_modifier.py +++ b/openpathsampling/tests/test_snapshot_modifier.py @@ -8,14 +8,18 @@ assert_almost_equal, assert_true) from nose.plugins.skip import SkipTest from numpy.testing import assert_array_almost_equal -from .test_helpers import make_1d_traj +from .test_helpers import make_1d_traj, u import openpathsampling as paths import openpathsampling.engines as peng import numpy as np -import openmmtools as omt -import simtk.unit as u + +try: + import openmmtools as omt +except ImportError: + omt = None + import openpathsampling.engines.openmm as omm_engine from openpathsampling.snapshot_modifier import * @@ -186,6 +190,8 @@ def test_subset_call(self): def test_with_openmm_snapshot(self): # note: this is only a smoke test; correctness depends on OpenMM's # tests of its constraint approaches. + if not omt: + raise SkipTest("Requires OpenMMTools (not installed)") test_system = omt.testsystems.AlanineDipeptideVacuum() template = omm_engine.snapshot_from_testsystem(test_system) engine = omm_engine.Engine( @@ -256,6 +262,10 @@ def setup(self): ) # create the OpenMM versions + if not omt: + raise SkipTest("Requires OpenMMTools (not installed)") + if not u: + raise SkipTest("Requires simtk.unit (not installed)") u_vel = old_div(u.nanometer, u.picosecond) self.openmm_modifier = GeneralizedDirectionModifier(1.2 * u_vel) ad_vacuum = omt.testsystems.AlanineDipeptideVacuum(constraints=None) diff --git a/openpathsampling/tests/test_storage.py b/openpathsampling/tests/test_storage.py index 534172480..6aad31b68 100644 --- a/openpathsampling/tests/test_storage.py +++ b/openpathsampling/tests/test_storage.py @@ -8,7 +8,6 @@ from builtins import object import os -import mdtraj as md from nose.tools import (assert_equal) import openpathsampling as paths @@ -18,9 +17,7 @@ from openpathsampling.netcdfplus import ObjectJSON from openpathsampling.storage import Storage -from .test_helpers import (data_filename, - compare_snapshot - ) +from .test_helpers import (data_filename, md, compare_snapshot) import numpy as np from nose.plugins.skip import SkipTest @@ -28,6 +25,8 @@ class TestStorage(object): def setup(self): + if not md: + raise SkipTest("mdtraj not installed") self.mdtraj = md.load(data_filename("ala_small_traj.pdb")) self.traj = peng.trajectory_from_mdtraj( self.mdtraj, simple_topology=True) diff --git a/setup.py b/setup.py index 87ea4b7d9..91988d1ed 100644 --- a/setup.py +++ b/setup.py @@ -215,14 +215,14 @@ def build_keyword_dictionary(prefs): 'scipy', 'pandas', 'future', - 'jupyter', + #'jupyter', 'netcdf4', - 'openmm', - 'openmmtools', + #'openmm', + #'openmmtools', # 'pymbar', # 'docopt', # 'pyyaml', - 'mdtraj', + #'mdtraj', 'svgwrite', 'networkx', 'matplotlib', From 0d5133fa2c000ff05fe6a31fa3ee65cc344ec815 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Fri, 16 Mar 2018 17:28:11 +0100 Subject: [PATCH 129/464] Updates as I start to refactor new storage --- openpathsampling/new/class_info.py | 98 +++++++++++++++++++++++++-- openpathsampling/new/ops_storage.py | 8 ++- openpathsampling/new/serialization.py | 1 - openpathsampling/new/storage.py | 11 +-- openpathsampling/new/tools.py | 14 ++++ 5 files changed, 118 insertions(+), 14 deletions(-) diff --git a/openpathsampling/new/class_info.py b/openpathsampling/new/class_info.py index 816f49b29..19873a233 100644 --- a/openpathsampling/new/class_info.py +++ b/openpathsampling/new/class_info.py @@ -3,6 +3,11 @@ from serialization import DefaultSerializer, DefaultDeserializer from serialization_helpers import SchemaFindUUIDs +try: + import ujson as json +except ImportError: + import json + class ClassInfo(object): """ Parameters @@ -50,7 +55,8 @@ def __repr__(self): + ", lookup_result=" + str(self.lookup_result) + ")") -class ClassInfoContainer(object): + +class SerializationSchema(object): """Connect table to serialization information. This is the primary location for information connecting application @@ -71,16 +77,16 @@ class might be used to represent data with different dimensions, and systems). In such cases, the ClassInfoContainer needs to be subclassed with specialized information. """ - def __init__(self, default_info, class_info_list=None): + def __init__(self, default_info, schema=None, class_info_list=None): class_info_list = tools.none_to_default(class_info_list, []) + self.schema = {} self.lookup_to_info = {} self.table_to_info = {} self.class_info_list = [] self.default_info = default_info self.missing_table = ClassInfo(table="__missing__", cls=None) self.add_class_info(default_info) - for info in class_info_list: - self.add_class_info(info) + self.register_info(class_info_list, schema) def add_class_info(self, info_node): # check that we're not in any existing @@ -91,6 +97,13 @@ def add_class_info(self, info_node): self.lookup_to_info.update({info_node.lookup_result: info_node}) self.table_to_info.update({info_node.table: info_node}) + def register_info(self, class_info_list, schema=None): + schema = tools.none_to_default(schema, {}) + self.schema.update(schema) + for info in class_info_list: + info.set_defaults(schema) + self.add_class_info(info) + @property def tables(self): tables = [info.table for info in self.class_info_list] @@ -145,10 +158,85 @@ def info_from_instance(self, item): else: return None + def serialize(self, obj, storage=None): + """ + Serialize all objects in ``obj`` to table-grouped JSON-ready dict. + + Parameters + ---------- + obj : object + the object to be serialized + storage : :class:`.Storage` + storage object with connection to backend and cache (if + relevant) + + Returns + ------- + dict : + {table: {uuid: {attr: value}}} + """ + logger.debug("Starting serialization") + cache = [] if not storage else storage.cache + if storage: + # check if this object has already been stored + pass + + logger.debug("Listing all included objects to serialize") + uuids = get_all_uuids(obj, cache) + + if storage: + # remove any existing uuids from the dict + pass + + get_table_name = lambda uuid, obj_: self[obj_].table + by_table = tools.dict_group_by(uuids, key_extract=get_table_name) + + # fix for missing tables + + logger.debug("Serializing objects from %d tables: %s", + len(by_table), str(list(by_table.keys()))) + serialized_by_table = {} + for (table, objects) in by_table.items(): + logger_debug("Serializing %d objects from table %s", + len(by_table[table]), table) + serialize = self[table].serializer + serialized_by_table[table] = [serialize(o) for o in objects] + + return serialized_by_table + + + def deserialize(self, serialized_by_table): + # 1. generate dependencies lists + # 2. get reload order + # 3. reconstruct UUIDs + dependencies = {} + to_load = [] + uuid_to_table = {} + for (table, objects) in serialized_by_table.items(): + schema_entries = self.schema[table] + for (uuid, item_dct) in objects.items(): + uuid_to_table[uuid] = table + to_load.append(tools.SimpleNamespace(**item_dct)) + item_json = json.dumps(item_dct) + dependencies[uuid] = set(encoded_uuid_re.findall(item_json)) + + # TODO: this is the reload order now + ordered_uuids = get_reload_order(to_load, dependencies) + # TODO: self.reconstruct_uuids(ordered_uuids, uuid_to_table) + # (this is just the current storage.deserialize_uuids) + + + + + + + + def __repr__(self): # pragma: no cover - return ("ClassInfoContainer(default_info=" + repr(self.default_info) + return ("SerializationSchema(default_info=" + repr(self.default_info) + ", class_info_list=" + repr(self.class_info_list) + ")") +ClassInfoContainer = SerializationSchema diff --git a/openpathsampling/new/ops_storage.py b/openpathsampling/new/ops_storage.py index 301e30aaa..cadfea4cc 100644 --- a/openpathsampling/new/ops_storage.py +++ b/openpathsampling/new/ops_storage.py @@ -91,6 +91,7 @@ def special_lookup_key(self, item): serializer=SimulationObjectSerializer(), deserializer=deserialize_sim, find_uuids=default_find_uuids), + schema=ops_schema, class_info_list=[ ClassInfo(table='samples', cls=paths.Sample), ClassInfo(table='sample_sets', cls=paths.SampleSet), @@ -166,9 +167,10 @@ def register_from_tables(self, table_names, classes): cls=table_to_class[table], lookup_result=lookups[table]) for table in lookups] - for info in class_info_list: - info.set_defaults(self.schema) - self.class_info.add_class_info(info) + self.class_info.register_info(class_info_list, self.schema) + # for info in class_info_list: + # info.set_defaults(self.schema) + # self.class_info.add_class_info(info) def register_from_instance(self, lookup, obj): diff --git a/openpathsampling/new/serialization.py b/openpathsampling/new/serialization.py index e48401934..914948772 100644 --- a/openpathsampling/new/serialization.py +++ b/openpathsampling/new/serialization.py @@ -69,7 +69,6 @@ def __repr__(self): return ("") - class Serialization(object): builtin_types = ['int', 'float', 'str'] uuid_types = ['uuid', 'list_uuid', 'lazy'] diff --git a/openpathsampling/new/storage.py b/openpathsampling/new/storage.py index 0f868d092..6e307709c 100644 --- a/openpathsampling/new/storage.py +++ b/openpathsampling/new/storage.py @@ -93,19 +93,20 @@ def close(self): def register_schema(self, schema, class_info_list, backend_metadata=None, read_mode=False): # check validity - for info in class_info_list: - info.set_defaults(schema) - self.class_info.add_class_info(info) + self.class_info.register_info(class_info_list, schema) + # for info in class_info_list: + # info.set_defaults(schema) + # self.class_info.add_class_info(info) table_to_class = {table: self.class_info[table].cls for table in schema if table not in ['uuid', 'tables']} + # here's where we add the class_info to the backend self.backend.register_schema(schema, table_to_class, backend_metadata) self.schema.update(schema) for table in self.schema: self._storage_tables[table] = StorageTable(self, table) - # here's where we add the class_info to the backend self.serialization.register_serialization(schema, self.class_info) @@ -122,6 +123,7 @@ def register_missing_tables_for_objects(self, uuid_obj_dict): lookup_examples |= {lookup} def save(self, obj): + # self.class_info.serialize(obj, storage=self) # check if obj is in DB (maybe this can be removed?) logger.debug("Starting save") exists = self.backend.load_uuids_table(uuids=[get_uuid(obj)], @@ -130,7 +132,6 @@ def save(self, obj): return # find all UUIDs we need to save with this object logger.debug("Listing all objects to save") - # TODO: use self.cache as the known_uuids uuids = get_all_uuids(obj, known_uuids=self.cache) logger.debug("Checking if objects already exist in database") # remove any UUIDs that have already been saved diff --git a/openpathsampling/new/tools.py b/openpathsampling/new/tools.py index 1d2cbdbd4..0f0cedd22 100644 --- a/openpathsampling/new/tools.py +++ b/openpathsampling/new/tools.py @@ -1,6 +1,20 @@ import collections from numpy import ndarray +class SimpleNamespace: + # types.SimpleNameSpace in 3.3+ + def __init__(self, **kwargs): + self.__dict__.update(kwargs) + + def __repr__(self): + keys = sorted(self.__dict__) + items = ("{}={!r}".format(k, self.__dict__[k]) for k in keys) + return "{}({})".format(type(self).__name__, ", ".join(items)) + + def __eq__(self, other): + return self.__dict__ == other.__dict__ + + import sys if sys.version_info > (3, ): basestring = str From f72826cdc685c42fb1beb75183313c57fb7b069a Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Wed, 28 Mar 2018 13:39:25 +0200 Subject: [PATCH 130/464] Start on reorg of lazy object creation --- openpathsampling/new/serialization.py | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/openpathsampling/new/serialization.py b/openpathsampling/new/serialization.py index 914948772..77a5844de 100644 --- a/openpathsampling/new/serialization.py +++ b/openpathsampling/new/serialization.py @@ -69,6 +69,31 @@ def __repr__(self): return ("") +class ProxyObjectFactory(object): + def __init__(self, storage, class_info): + self.storage = storage + self.class_info = class_info + self.lazy_classes = {} + + def make_lazy(self, cls, uuid): + if cls not in self.lazy_classes: + self.lazy_classes[cls] = make_lazy_class(cls) + return self.lazy_classes[cls](uuid=uuid, + class_=cls, + storage=self.storage) + + def make_all_lazies(self, lazies): + # lazies is dict of {table_name: list_of_lazy_uuid_rows} + all_lazies = {} + for (table, lazy_uuid_rows) in lazies.items(): + logger.debug("Making {} lazy proxies for objects in table '{}'"\ + .format(len(lazy_uuid_rows), table)) + cls = self.table_to_class[table] + for row in lazy_uuid_rows: + all_lazies[row.uuid] = self.make_lazy(cls, row.uuid) + return all_lazies + + class Serialization(object): builtin_types = ['int', 'float', 'str'] uuid_types = ['uuid', 'list_uuid', 'lazy'] From 85b7b4802744c0fa51c369143be98f361ad7c5c2 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Sat, 5 May 2018 19:01:17 +0200 Subject: [PATCH 131/464] Updates on storage progress Mostly comments to help when I get back to this --- openpathsampling/new/serialization_helpers.py | 2 +- openpathsampling/new/storage.py | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/openpathsampling/new/serialization_helpers.py b/openpathsampling/new/serialization_helpers.py index cdbd9bd05..8b4713fdd 100644 --- a/openpathsampling/new/serialization_helpers.py +++ b/openpathsampling/new/serialization_helpers.py @@ -119,7 +119,7 @@ def get_all_uuids(initial_object, known_uuids=None, class_info=None): else: find_uuids = default_find_uuids - new_uuids, new_objs = find_uuids(obj=obj, + new_uuids, new_objs = find_uuids(obj=obj, cache_list=[uuids, known_uuids]) uuids.update(new_uuids) diff --git a/openpathsampling/new/storage.py b/openpathsampling/new/storage.py index 6e307709c..e145f66cd 100644 --- a/openpathsampling/new/storage.py +++ b/openpathsampling/new/storage.py @@ -123,6 +123,9 @@ def register_missing_tables_for_objects(self, uuid_obj_dict): lookup_examples |= {lookup} def save(self, obj): + # TODO: convert the whole .save process to something based on the + # class_info.serialize method (enabling per-class approaches for + # finding UUIDs, which will be a massive serialization speed-up # self.class_info.serialize(obj, storage=self) # check if obj is in DB (maybe this can be removed?) logger.debug("Starting save") @@ -218,9 +221,11 @@ def load(self, input_uuids, force=False): lazy_uuid_rows = self.backend.load_uuids_table(lazy_uuids) lazies = tools.group_by_function(lazy_uuid_rows, self.backend.uuid_row_to_table_name) + # TODO: replace this with something not based on Serialization + # object new_uuids = self.serialization.make_all_lazies(lazies) - # get order are deserialize + # get order and deserialize uuid_to_table_row = {r.uuid: r for r in to_load} ordered_uuids = get_reload_order(to_load, dependencies) new_uuids = self.deserialize_uuids(ordered_uuids, uuid_to_table, From cd218640fced27e9a2ef05f5c9c8b58901ead820 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Fri, 11 May 2018 14:13:46 +0200 Subject: [PATCH 132/464] saving performance improvements also moved everything to experimental/ Next: need to create a class to do the is_iterable/is_mappable stuff, with a cache of class to result (since that won't change) --- .../{new => experimental}/backend.py | 0 .../{new => experimental}/class_info.py | 26 ++++---- .../{new => experimental}/my_types.py | 0 .../{new => experimental}/ops_storage.py | 57 +++++++++++++++-- .../{new => experimental}/serialization.py | 0 .../serialization_helpers.py | 61 ++++++++++++++++--- .../{new => experimental}/snapshots.py | 0 .../{new => experimental}/sql_backend.py | 0 .../{new => experimental}/storage.py | 7 ++- .../{new => experimental}/test_backend.py | 0 .../test_serialization_helpers.py | 0 .../{new => experimental}/test_sql_backend.py | 0 .../{new => experimental}/test_tools.py | 0 .../{new => experimental}/tools.py | 0 14 files changed, 123 insertions(+), 28 deletions(-) rename openpathsampling/{new => experimental}/backend.py (100%) rename openpathsampling/{new => experimental}/class_info.py (94%) rename openpathsampling/{new => experimental}/my_types.py (100%) rename openpathsampling/{new => experimental}/ops_storage.py (78%) rename openpathsampling/{new => experimental}/serialization.py (100%) rename openpathsampling/{new => experimental}/serialization_helpers.py (88%) rename openpathsampling/{new => experimental}/snapshots.py (100%) rename openpathsampling/{new => experimental}/sql_backend.py (100%) rename openpathsampling/{new => experimental}/storage.py (98%) rename openpathsampling/{new => experimental}/test_backend.py (100%) rename openpathsampling/{new => experimental}/test_serialization_helpers.py (100%) rename openpathsampling/{new => experimental}/test_sql_backend.py (100%) rename openpathsampling/{new => experimental}/test_tools.py (100%) rename openpathsampling/{new => experimental}/tools.py (100%) diff --git a/openpathsampling/new/backend.py b/openpathsampling/experimental/backend.py similarity index 100% rename from openpathsampling/new/backend.py rename to openpathsampling/experimental/backend.py diff --git a/openpathsampling/new/class_info.py b/openpathsampling/experimental/class_info.py similarity index 94% rename from openpathsampling/new/class_info.py rename to openpathsampling/experimental/class_info.py index 19873a233..2b49eb224 100644 --- a/openpathsampling/new/class_info.py +++ b/openpathsampling/experimental/class_info.py @@ -1,7 +1,7 @@ import tools from serialization import DefaultSerializer, DefaultDeserializer -from serialization_helpers import SchemaFindUUIDs +from serialization_helpers import SchemaFindUUIDs, has_uuid try: import ujson as json @@ -147,6 +147,8 @@ def __getitem__(self, item): raise e def info_from_instance(self, item): + if not has_uuid(item): + return None if self.is_special(item): self.get_special(item) else: @@ -158,6 +160,7 @@ def info_from_instance(self, item): else: return None + def serialize(self, obj, storage=None): """ Serialize all objects in ``obj`` to table-grouped JSON-ready dict. @@ -176,17 +179,18 @@ def serialize(self, obj, storage=None): {table: {uuid: {attr: value}}} """ logger.debug("Starting serialization") - cache = [] if not storage else storage.cache - if storage: - # check if this object has already been stored - pass + results = {} + cache = {} if not storage else storage.cache + if storage and storage.uuids_in_storage([get_uuid(obj)]): + return # return what? is None right? logger.debug("Listing all included objects to serialize") - uuids = get_all_uuids(obj, cache) + uuids = get_all_uuids(obj, cache) # TODO: replace this if storage: - # remove any existing uuids from the dict - pass + exists = storage.uuids_in_storage(list(uuids.keys())) + for existing in exists: + del uuids[existing.uuid] get_table_name = lambda uuid, obj_: self[obj_].table by_table = tools.dict_group_by(uuids, key_extract=get_table_name) @@ -228,12 +232,6 @@ def deserialize(self, serialized_by_table): - - - - - - def __repr__(self): # pragma: no cover return ("SerializationSchema(default_info=" + repr(self.default_info) + ", class_info_list=" + repr(self.class_info_list) + ")") diff --git a/openpathsampling/new/my_types.py b/openpathsampling/experimental/my_types.py similarity index 100% rename from openpathsampling/new/my_types.py rename to openpathsampling/experimental/my_types.py diff --git a/openpathsampling/new/ops_storage.py b/openpathsampling/experimental/ops_storage.py similarity index 78% rename from openpathsampling/new/ops_storage.py rename to openpathsampling/experimental/ops_storage.py index cadfea4cc..a7181e10e 100644 --- a/openpathsampling/new/ops_storage.py +++ b/openpathsampling/experimental/ops_storage.py @@ -68,23 +68,68 @@ def __call__(self, uuid, table_dct, cache_list): set_uuid(obj, uuid) return obj +class OPSSpecialLookup(object): + """Separate object to handle special lookups -class OPSClassInfoContainer(ClassInfoContainer): + This is separate because, in addition to the functionality it encodes, + it also acts as a cache to reduce the number of isinstance calls (and + hopfully speed up the identification of types) + """ special_superclasses = (paths.BaseSnapshot, paths.MoveChange, paths.Details) + snapshot_lookup_function = \ + lambda self, snap: (get_uuid(snap.engine), snap.__class__) + details_lookup_function = lambda self, details: paths.Details + movechange_lookup_function = lambda self, change: paths.MoveChange + + def __init__(self): + self.secondary_lookups = {} + self.special_classes = set() + self.non_special_classes = set() + def is_special(self, item): - return isinstance(item, self.special_superclasses) + if item.__class__ in self.special_classes: + return True + elif item.__class__ in self.non_special_classes: + return False + else: + is_special = isinstance(item, self.special_superclasses) + my_set = {True: self.special_classes, + False: self.non_special_classes}[is_special] + my_set.update([item.__class__]) + return is_special + + + def __call__(self, item): + cls = item.__class__ + if cls in self.secondary_lookups: + return self.secondary_lookups[cls](item) - def special_lookup_key(self, item): if isinstance(item, paths.BaseSnapshot): - return (get_uuid(item.engine), item.__class__) + self.secondary_lookups[cls] = self.snapshot_lookup_function elif isinstance(item, paths.MoveChange): - return paths.MoveChange + self.secondary_lookups[cls] = self.movechange_lookup_function elif isinstance(item, paths.Details): # TODO: this should be removed, since all Details classes are # equivalent -- unfortunately, JHP's LoaderProxy breaks in that # case - return paths.Details + self.secondary_lookups[cls] = self.details_lookup_function + + return self.secondary_lookups[cls](item) + +class OPSClassInfoContainer(ClassInfoContainer): + def __init__(self, default_info, schema=None, class_info_list=None): + super(OPSClassInfoContainer, self).__init__(default_info, + schema, + class_info_list) + self.special_lookup_object = OPSSpecialLookup() + + def is_special(self, item): + return self.special_lookup_object.is_special(item) + + def special_lookup_key(self, item): + return self.special_lookup_object(item) + ops_class_info = OPSClassInfoContainer( default_info=ClassInfo('simulation_objects', cls=StorableObject, diff --git a/openpathsampling/new/serialization.py b/openpathsampling/experimental/serialization.py similarity index 100% rename from openpathsampling/new/serialization.py rename to openpathsampling/experimental/serialization.py diff --git a/openpathsampling/new/serialization_helpers.py b/openpathsampling/experimental/serialization_helpers.py similarity index 88% rename from openpathsampling/new/serialization_helpers.py rename to openpathsampling/experimental/serialization_helpers.py index 8b4713fdd..051071064 100644 --- a/openpathsampling/new/serialization_helpers.py +++ b/openpathsampling/experimental/serialization_helpers.py @@ -60,6 +60,54 @@ def caches_contain(key, cache_list): return True return False +def filter_known_uuids(uuid_dict, cache_list): + """Filters out UUIDs in the cache_list, returning what isn't cached""" + return {uuid: value for (uuid, value) in uuid_dict.items() + if not caches_contain(uuid, cache_list)} + +class DefaultFindUUIDs(object): + def __init__(self): + self._mappable_classes = set() + self._non_mappable_classes = set() + self._iterable_classes = set() + self._non_iterable_classes = set() + + @staticmethod + def _get_with_cache(obj, key, true_set, false_set, check_method): + # TODO: this is probably best moved to utils; I think we may use it + # elsewhere as well + if key in false_set: + return False + elif key in true_set: + return True + else: + result = check_method(obj) + set_for_obj = {True: true_set, False: false_set}[result] + set_for_obj.add(key) + return result + + def is_mappable(self, obj): + return self._get_with_cache( + obj=obj, + key=obj.__class__, + true_set=self._mappable_classes, + false_set=self._non_mappable_classes, + check_method=is_mappable + ) + + def is_iterable(self, obj): + return self._get_with_cache( + obj=obj, + key=obj.__class__, + true_set=self._iterable_classes, + false_set=self._non_iterable_classes, + check_method=lambda obj: \ + is_iterable(obj) and not is_numpy_iterable(obj) + ) + + # TODO: FIXME: add default_find_uuids as __call__ here; this should + # really cut the time spent in is_iterable/is_mappable + def default_find_uuids(obj, cache_list): uuids = {} new_objects = [] @@ -75,9 +123,6 @@ def default_find_uuids(obj, cache_list): new_objects.extend(list(obj.to_dict().values())) # mappables and iterables - # TODO: There might be a way, using a ClassInfoContainer, to - # simplify this for data objects. (We spend a significant - # fraction of time in is_mappable/is_iterable.) if is_mappable(obj): new_objects.extend([o for o in obj.keys() if has_uuid(o)]) new_objects.extend(list(obj.values())) @@ -101,7 +146,7 @@ def get_all_uuids(initial_object, known_uuids=None, class_info=None): objects that can be excluded from the search tree, presumably because they have already been searched and any object beneath them in the search tree also also already known - class_info : + class_info : :class:`.SerializationSchema` Returns ------- @@ -114,8 +159,10 @@ def get_all_uuids(initial_object, known_uuids=None, class_info=None): while objects: new_objects = [] for obj in objects: - if class_info and class_info.info_from_instance(obj): - find_uuids = class_info.info_from_instance(obj).find_uuids + info = class_info.info_from_instance(obj) \ + if class_info else None + if info: + find_uuids = info.find_uuids else: find_uuids = default_find_uuids @@ -136,7 +183,7 @@ def __init__(self, schema_entries): if attr_type in ['uuid', 'lazy', 'list_uuid'] ] - def __call__(self, obj, known_uuids): + def __call__(self, obj, cache_list): uuids = {get_uuid(obj): obj} new_objects = [] diff --git a/openpathsampling/new/snapshots.py b/openpathsampling/experimental/snapshots.py similarity index 100% rename from openpathsampling/new/snapshots.py rename to openpathsampling/experimental/snapshots.py diff --git a/openpathsampling/new/sql_backend.py b/openpathsampling/experimental/sql_backend.py similarity index 100% rename from openpathsampling/new/sql_backend.py rename to openpathsampling/experimental/sql_backend.py diff --git a/openpathsampling/new/storage.py b/openpathsampling/experimental/storage.py similarity index 98% rename from openpathsampling/new/storage.py rename to openpathsampling/experimental/storage.py index e145f66cd..a9553ef92 100644 --- a/openpathsampling/new/storage.py +++ b/openpathsampling/experimental/storage.py @@ -122,6 +122,10 @@ def register_missing_tables_for_objects(self, uuid_obj_dict): self.register_from_instance(lookup, obj) lookup_examples |= {lookup} + def uuids_in_storage(self, uuid_list): + return self.backend.load_uuids_table(uuids=uuid_list, + ignore_missing=True) + def save(self, obj): # TODO: convert the whole .save process to something based on the # class_info.serialize method (enabling per-class approaches for @@ -135,7 +139,8 @@ def save(self, obj): return # find all UUIDs we need to save with this object logger.debug("Listing all objects to save") - uuids = get_all_uuids(obj, known_uuids=self.cache) + uuids = get_all_uuids(obj, known_uuids=self.cache, + class_info=self.class_info) logger.debug("Checking if objects already exist in database") # remove any UUIDs that have already been saved exists = self.backend.load_uuids_table(uuids=list(uuids.keys()), diff --git a/openpathsampling/new/test_backend.py b/openpathsampling/experimental/test_backend.py similarity index 100% rename from openpathsampling/new/test_backend.py rename to openpathsampling/experimental/test_backend.py diff --git a/openpathsampling/new/test_serialization_helpers.py b/openpathsampling/experimental/test_serialization_helpers.py similarity index 100% rename from openpathsampling/new/test_serialization_helpers.py rename to openpathsampling/experimental/test_serialization_helpers.py diff --git a/openpathsampling/new/test_sql_backend.py b/openpathsampling/experimental/test_sql_backend.py similarity index 100% rename from openpathsampling/new/test_sql_backend.py rename to openpathsampling/experimental/test_sql_backend.py diff --git a/openpathsampling/new/test_tools.py b/openpathsampling/experimental/test_tools.py similarity index 100% rename from openpathsampling/new/test_tools.py rename to openpathsampling/experimental/test_tools.py diff --git a/openpathsampling/new/tools.py b/openpathsampling/experimental/tools.py similarity index 100% rename from openpathsampling/new/tools.py rename to openpathsampling/experimental/tools.py From 67eb67ae81bd6f59ed072e5642766b9b094796b6 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 31 May 2018 12:18:08 +0200 Subject: [PATCH 133/464] experimental package, exptl.storage subpackage --- openpathsampling/experimental/README.md | 16 ++++++++++++++++ openpathsampling/experimental/__init__.py | 1 + .../experimental/storage/__init__.py | 0 .../experimental/{ => storage}/backend.py | 0 .../experimental/{ => storage}/class_info.py | 0 .../experimental/{ => storage}/my_types.py | 0 .../experimental/{ => storage}/ops_storage.py | 0 .../experimental/{ => storage}/serialization.py | 0 .../{ => storage}/serialization_helpers.py | 0 .../experimental/{ => storage}/snapshots.py | 0 .../experimental/{ => storage}/sql_backend.py | 0 .../experimental/{ => storage}/storage.py | 0 .../experimental/{ => storage}/test_backend.py | 0 .../{ => storage}/test_serialization_helpers.py | 0 .../{ => storage}/test_sql_backend.py | 0 .../experimental/{ => storage}/test_tools.py | 0 .../experimental/{ => storage}/tools.py | 0 setup.py | 5 ++++- 18 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 openpathsampling/experimental/README.md create mode 100644 openpathsampling/experimental/__init__.py create mode 100644 openpathsampling/experimental/storage/__init__.py rename openpathsampling/experimental/{ => storage}/backend.py (100%) rename openpathsampling/experimental/{ => storage}/class_info.py (100%) rename openpathsampling/experimental/{ => storage}/my_types.py (100%) rename openpathsampling/experimental/{ => storage}/ops_storage.py (100%) rename openpathsampling/experimental/{ => storage}/serialization.py (100%) rename openpathsampling/experimental/{ => storage}/serialization_helpers.py (100%) rename openpathsampling/experimental/{ => storage}/snapshots.py (100%) rename openpathsampling/experimental/{ => storage}/sql_backend.py (100%) rename openpathsampling/experimental/{ => storage}/storage.py (100%) rename openpathsampling/experimental/{ => storage}/test_backend.py (100%) rename openpathsampling/experimental/{ => storage}/test_serialization_helpers.py (100%) rename openpathsampling/experimental/{ => storage}/test_sql_backend.py (100%) rename openpathsampling/experimental/{ => storage}/test_tools.py (100%) rename openpathsampling/experimental/{ => storage}/tools.py (100%) diff --git a/openpathsampling/experimental/README.md b/openpathsampling/experimental/README.md new file mode 100644 index 000000000..abba021c5 --- /dev/null +++ b/openpathsampling/experimental/README.md @@ -0,0 +1,16 @@ +# Experimental features + +The API for things in `openpathsampling.experimental` should be considered +fluid. This subpackage exists in order to make cutting-edge features available +to advanced users without requiring that these features be mature enough +that the API has solidified. + +For most of OPS, we subscribe to [semantic versioning](http://semver.org). +The `experimental` subpackage provides an exception to that: the API here +can change at any time. + +Once we're confident in the API for features in the `experimental` +subpackage, we'll move them into the main package. If an `experimental` +feature requires replacing part of the main package (thus changing the API), +it will be held in the `experimental` subpackage until the next major +version release of OPS. diff --git a/openpathsampling/experimental/__init__.py b/openpathsampling/experimental/__init__.py new file mode 100644 index 000000000..f6b223c1e --- /dev/null +++ b/openpathsampling/experimental/__init__.py @@ -0,0 +1 @@ +from . import storage diff --git a/openpathsampling/experimental/storage/__init__.py b/openpathsampling/experimental/storage/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/openpathsampling/experimental/backend.py b/openpathsampling/experimental/storage/backend.py similarity index 100% rename from openpathsampling/experimental/backend.py rename to openpathsampling/experimental/storage/backend.py diff --git a/openpathsampling/experimental/class_info.py b/openpathsampling/experimental/storage/class_info.py similarity index 100% rename from openpathsampling/experimental/class_info.py rename to openpathsampling/experimental/storage/class_info.py diff --git a/openpathsampling/experimental/my_types.py b/openpathsampling/experimental/storage/my_types.py similarity index 100% rename from openpathsampling/experimental/my_types.py rename to openpathsampling/experimental/storage/my_types.py diff --git a/openpathsampling/experimental/ops_storage.py b/openpathsampling/experimental/storage/ops_storage.py similarity index 100% rename from openpathsampling/experimental/ops_storage.py rename to openpathsampling/experimental/storage/ops_storage.py diff --git a/openpathsampling/experimental/serialization.py b/openpathsampling/experimental/storage/serialization.py similarity index 100% rename from openpathsampling/experimental/serialization.py rename to openpathsampling/experimental/storage/serialization.py diff --git a/openpathsampling/experimental/serialization_helpers.py b/openpathsampling/experimental/storage/serialization_helpers.py similarity index 100% rename from openpathsampling/experimental/serialization_helpers.py rename to openpathsampling/experimental/storage/serialization_helpers.py diff --git a/openpathsampling/experimental/snapshots.py b/openpathsampling/experimental/storage/snapshots.py similarity index 100% rename from openpathsampling/experimental/snapshots.py rename to openpathsampling/experimental/storage/snapshots.py diff --git a/openpathsampling/experimental/sql_backend.py b/openpathsampling/experimental/storage/sql_backend.py similarity index 100% rename from openpathsampling/experimental/sql_backend.py rename to openpathsampling/experimental/storage/sql_backend.py diff --git a/openpathsampling/experimental/storage.py b/openpathsampling/experimental/storage/storage.py similarity index 100% rename from openpathsampling/experimental/storage.py rename to openpathsampling/experimental/storage/storage.py diff --git a/openpathsampling/experimental/test_backend.py b/openpathsampling/experimental/storage/test_backend.py similarity index 100% rename from openpathsampling/experimental/test_backend.py rename to openpathsampling/experimental/storage/test_backend.py diff --git a/openpathsampling/experimental/test_serialization_helpers.py b/openpathsampling/experimental/storage/test_serialization_helpers.py similarity index 100% rename from openpathsampling/experimental/test_serialization_helpers.py rename to openpathsampling/experimental/storage/test_serialization_helpers.py diff --git a/openpathsampling/experimental/test_sql_backend.py b/openpathsampling/experimental/storage/test_sql_backend.py similarity index 100% rename from openpathsampling/experimental/test_sql_backend.py rename to openpathsampling/experimental/storage/test_sql_backend.py diff --git a/openpathsampling/experimental/test_tools.py b/openpathsampling/experimental/storage/test_tools.py similarity index 100% rename from openpathsampling/experimental/test_tools.py rename to openpathsampling/experimental/storage/test_tools.py diff --git a/openpathsampling/experimental/tools.py b/openpathsampling/experimental/storage/tools.py similarity index 100% rename from openpathsampling/experimental/tools.py rename to openpathsampling/experimental/storage/tools.py diff --git a/setup.py b/setup.py index 87ea4b7d9..f9d7614b9 100644 --- a/setup.py +++ b/setup.py @@ -206,7 +206,10 @@ def build_keyword_dictionary(prefs): 'openpathsampling.engines.openmm.features', 'openpathsampling.engines.toy', 'openpathsampling.engines.toy.features', - 'openpathsampling.numerics'], + 'openpathsampling.numerics', + 'openpathsampling.experimental', + 'openpathsampling.experimental.storage', + ], 'platforms': ['Linux', 'Mac OS X', 'Windows'], 'released': False, 'install_requires': [ From c2bd88676176b294beacdca84b6d64c90fbb6b19 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 31 May 2018 16:20:53 +0200 Subject: [PATCH 134/464] SerializationScheme for (some) simulation objs --- .../experimental/storage/__init__.py | 11 +++ .../experimental/storage/class_info.py | 73 ++++++++++++++----- .../storage/serialization_helpers.py | 12 +-- .../experimental/storage/tools.py | 4 + 4 files changed, 74 insertions(+), 26 deletions(-) diff --git a/openpathsampling/experimental/storage/__init__.py b/openpathsampling/experimental/storage/__init__.py index e69de29bb..5fb819a16 100644 --- a/openpathsampling/experimental/storage/__init__.py +++ b/openpathsampling/experimental/storage/__init__.py @@ -0,0 +1,11 @@ +# TODO: improve the imports here +from . import backend +from . import class_info +from . import my_types +from . import ops_storage +from . import serialization +from . import serialization_helpers +from . import snapshots +from . import sql_backend +from . import storage +from . import tools diff --git a/openpathsampling/experimental/storage/class_info.py b/openpathsampling/experimental/storage/class_info.py index 2b49eb224..b7b365d72 100644 --- a/openpathsampling/experimental/storage/class_info.py +++ b/openpathsampling/experimental/storage/class_info.py @@ -1,12 +1,20 @@ -import tools +import logging -from serialization import DefaultSerializer, DefaultDeserializer -from serialization_helpers import SchemaFindUUIDs, has_uuid +from . import tools +from .serialization import DefaultSerializer, DefaultDeserializer +from .serialization_helpers import SchemaFindUUIDs, has_uuid +from .serialization_helpers import encoded_uuid_re, get_reload_order +from .serialization_helpers import get_all_uuids -try: - import ujson as json -except ImportError: - import json + +import json +# try: + # import ujson as json +# except ImportError: + # import json + + +logger = logging.getLogger(__name__) class ClassInfo(object): """ @@ -185,7 +193,7 @@ def serialize(self, obj, storage=None): return # return what? is None right? logger.debug("Listing all included objects to serialize") - uuids = get_all_uuids(obj, cache) # TODO: replace this + uuids = get_all_uuids(obj, cache) # TODO: replace w SchemaFindUUIDs if storage: exists = storage.uuids_in_storage(list(uuids.keys())) @@ -200,11 +208,12 @@ def serialize(self, obj, storage=None): logger.debug("Serializing objects from %d tables: %s", len(by_table), str(list(by_table.keys()))) serialized_by_table = {} - for (table, objects) in by_table.items(): - logger_debug("Serializing %d objects from table %s", + for (table, table_uuids) in by_table.items(): + logger.debug("Serializing %d objects from table %s", len(by_table[table]), table) serialize = self[table].serializer - serialized_by_table[table] = [serialize(o) for o in objects] + serialized_by_table[table] = [serialize(o) + for o in table_uuids.values()] return serialized_by_table @@ -214,22 +223,46 @@ def deserialize(self, serialized_by_table): # 2. get reload order # 3. reconstruct UUIDs dependencies = {} - to_load = [] + to_load = {} uuid_to_table = {} - for (table, objects) in serialized_by_table.items(): + for (table, object_list) in serialized_by_table.items(): schema_entries = self.schema[table] - for (uuid, item_dct) in objects.items(): + for item_dct in object_list: + uuid = item_dct['uuid'] uuid_to_table[uuid] = table - to_load.append(tools.SimpleNamespace(**item_dct)) + to_load[uuid] = tools.SimpleNamespace(**item_dct) item_json = json.dumps(item_dct) dependencies[uuid] = set(encoded_uuid_re.findall(item_json)) - # TODO: this is the reload order now - ordered_uuids = get_reload_order(to_load, dependencies) - # TODO: self.reconstruct_uuids(ordered_uuids, uuid_to_table) - # (this is just the current storage.deserialize_uuids) - + ordered_uuids = get_reload_order(list(to_load.values()), dependencies) + return self.reconstruct_uuids(ordered_uuids, uuid_to_table, to_load) + def reconstruct_uuids(self, ordered_uuids, uuid_to_table, to_load, + known_uuids=None, new_uuids=None): + """ + Parameters + ---------- + ordered_uuids + uuid_to_table + known_uuids : dict {uuid: object} + immutable list of known uuids + new_uuids : dict {uuid: object} + mutable list of uuids that have been reloaded, updated after + these uuids have been reloaded (also returned) + """ + # (this is just the current storage.deserialize_uuids) + known_uuids = tools.none_to_default(known_uuids, {}) + new_uuids = tools.none_to_default(new_uuids, {}) + logger.debug("Reconstructing from %d objects", len(ordered_uuids)) + for uuid in ordered_uuids: + if uuid not in known_uuids and uuid not in new_uuids: + table = uuid_to_table[uuid] + reconstruct = self[table].deserializer + obj = reconstruct(uuid, to_load[uuid], + [new_uuids, known_uuids]) + new_uuids[uuid] = obj + + return new_uuids def __repr__(self): # pragma: no cover diff --git a/openpathsampling/experimental/storage/serialization_helpers.py b/openpathsampling/experimental/storage/serialization_helpers.py index 051071064..a830a9e23 100644 --- a/openpathsampling/experimental/storage/serialization_helpers.py +++ b/openpathsampling/experimental/storage/serialization_helpers.py @@ -1,6 +1,6 @@ import importlib import re -import ujson +import json import networkx as nx import numpy as np import networkx.algorithms.dag as nx_dag @@ -199,7 +199,7 @@ def __call__(self, obj, cache_list): # TODO: I think this can be removed (only used by get_all_uuid_string) def find_dependent_uuids(json_dct): - dct = ujson.loads(json_dct) + dct = json.loads(json_dct) uuids = [decode_uuid(obj) for obj in flatten_all(dct) if is_uuid_string(obj)] return uuids @@ -271,14 +271,14 @@ def to_dict_with_uuids(obj): def to_bare_json(obj): replaced = replace_uuid(obj, uuid_encoding=encode_uuid) - return ujson.dumps(replaced) + return json.dumps(replaced) def to_json_obj(obj): dct = to_dict_with_uuids(obj) dct.update({'__module__': obj.__class__.__module__, '__class__': obj.__class__.__name__}) - return ujson.dumps(dct) + return json.dumps(dct) def import_class(mod, cls): @@ -366,7 +366,7 @@ def from_dict_with_uuids(obj, cache_list): def from_json_obj(uuid, table_row, cache_list): # NOTE: from_json only works with existing_uuids (DAG-ordering) - dct = ujson.loads(table_row['json']) + dct = json.loads(table_row['json']) cls = import_class(dct.pop('__module__'), dct.pop('__class__')) dct = from_dict_with_uuids(dct, cache_list) obj = cls.from_dict(dct) @@ -413,7 +413,7 @@ def _uuids_from_table_row(table_row, schema_entries): uuid.add(getattr(table_row, attr)) elif attr_type == 'list_uuid': # TODO: better to use encoded_uuid_re here? - uuid_list = ujson.loads(getattr(table_row, attr)) + uuid_list = json.loads(getattr(table_row, attr)) if uuid_list: # skip if None (or empty) uuid_list = {decode_uuid(u) for u in uuid_list} diff --git a/openpathsampling/experimental/storage/tools.py b/openpathsampling/experimental/storage/tools.py index 0f0cedd22..f8f953ca6 100644 --- a/openpathsampling/experimental/storage/tools.py +++ b/openpathsampling/experimental/storage/tools.py @@ -3,9 +3,13 @@ class SimpleNamespace: # types.SimpleNameSpace in 3.3+ + # this variants acts as either a dict or a namespace for getting def __init__(self, **kwargs): self.__dict__.update(kwargs) + def __getitem__(self, item): + return self.__dict__[item] + def __repr__(self): keys = sorted(self.__dict__) items = ("{}={!r}".format(k, self.__dict__[k]) for k in keys) From 3e9a9a853b0bb0c1282cfa291780648a12785c91 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 31 May 2018 17:12:14 +0200 Subject: [PATCH 135/464] SerializationSchema can serialize snapshots but not yet deserialize --- .../experimental/storage/class_info.py | 34 +++++++++++++++++-- .../experimental/storage/ops_storage.py | 11 ++++++ .../experimental/storage/storage.py | 1 + 3 files changed, 43 insertions(+), 3 deletions(-) diff --git a/openpathsampling/experimental/storage/class_info.py b/openpathsampling/experimental/storage/class_info.py index b7b365d72..44f5d4c10 100644 --- a/openpathsampling/experimental/storage/class_info.py +++ b/openpathsampling/experimental/storage/class_info.py @@ -129,7 +129,7 @@ def is_special(self, item): return False def special_lookup_key(self, item): - return NotImplementedError("No special types implemented") + raise NotImplementedError("No special types implemented") def get_special(self, item): lookup = self.special_lookup_key(item) @@ -168,6 +168,27 @@ def info_from_instance(self, item): else: return None + def add_missing_table_from_instance(self, lookup, obj): + raise NotImplementedError("No special types implemented") + + def _missing_table_update(self, by_table): + missing = by_table.pop('__missing__') + logger.info("Identifying tables for %d objects of unknown " + + "table type", len(missing)) + + lookup_examples = set([]) + for obj in missing.values(): + lookup = self.lookup_key(obj) + if lookup not in lookup_examples: + self.add_missing_table_from_instance(lookup, obj) + lookup_examples |= {lookup} + + get_table_name = lambda uuid, obj_: self[obj_].table + missing_by_table = tools.dict_group_by(missing, get_table_name) + logger.info("Identified %d new tables: %s", len(missing_by_table), + str(list(missing_by_table.keys()))) + by_table.update(missing_by_table) + return by_table def serialize(self, obj, storage=None): """ @@ -204,6 +225,11 @@ def serialize(self, obj, storage=None): by_table = tools.dict_group_by(uuids, key_extract=get_table_name) # fix for missing tables + if '__missing__' in by_table: + by_table = self._missing_table_update(by_table) + # NOTE: if using a storage, this will still need to register the + # tables with the backend -- that should be handled as part of + # the save process TODO logger.debug("Serializing objects from %d tables: %s", len(by_table), str(list(by_table.keys()))) @@ -218,10 +244,11 @@ def serialize(self, obj, storage=None): return serialized_by_table - def deserialize(self, serialized_by_table): + def deserialize(self, serialized_by_table, known_uuids=None): # 1. generate dependencies lists # 2. get reload order # 3. reconstruct UUIDs + known_uuids = tools.none_to_default(known_uuids, {}) dependencies = {} to_load = {} uuid_to_table = {} @@ -235,7 +262,8 @@ def deserialize(self, serialized_by_table): dependencies[uuid] = set(encoded_uuid_re.findall(item_json)) ordered_uuids = get_reload_order(list(to_load.values()), dependencies) - return self.reconstruct_uuids(ordered_uuids, uuid_to_table, to_load) + return self.reconstruct_uuids(ordered_uuids, uuid_to_table, to_load, + known_uuids) def reconstruct_uuids(self, ordered_uuids, uuid_to_table, to_load, known_uuids=None, new_uuids=None): diff --git a/openpathsampling/experimental/storage/ops_storage.py b/openpathsampling/experimental/storage/ops_storage.py index a7181e10e..3eabfc56c 100644 --- a/openpathsampling/experimental/storage/ops_storage.py +++ b/openpathsampling/experimental/storage/ops_storage.py @@ -122,6 +122,7 @@ def __init__(self, default_info, schema=None, class_info_list=None): super(OPSClassInfoContainer, self).__init__(default_info, schema, class_info_list) + self.n_snapshot_types = 0 self.special_lookup_object = OPSSpecialLookup() def is_special(self, item): @@ -130,6 +131,16 @@ def is_special(self, item): def special_lookup_key(self, item): return self.special_lookup_object(item) + def add_missing_table_from_instance(self, lookup, obj): + if isinstance(obj, paths.BaseSnapshot): + schema, class_info_list = snapshots.snapshot_registration_info( + obj, self.n_snapshot_types + ) + schema = snapshots.replace_schema_dimensions(schema, + obj.engine.descriptor) + self.register_info(class_info_list, schema) + self.n_snapshot_types += 1 + ops_class_info = OPSClassInfoContainer( default_info=ClassInfo('simulation_objects', cls=StorableObject, diff --git a/openpathsampling/experimental/storage/storage.py b/openpathsampling/experimental/storage/storage.py index a9553ef92..7a979d1cd 100644 --- a/openpathsampling/experimental/storage/storage.py +++ b/openpathsampling/experimental/storage/storage.py @@ -242,6 +242,7 @@ def load(self, input_uuids, force=False): def deserialize_uuids(self, ordered_uuids, uuid_to_table, uuid_to_table_row, new_uuids=None): + # TODO: remove this, replace with SerializationSchema logger.debug("Reconstructing from %d objects", len(ordered_uuids)) new_uuids = tools.none_to_default(new_uuids, {}) for uuid in ordered_uuids: From fc83ca0b85225cf7e9b765271b8459de372344ac Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 31 May 2018 18:22:07 +0200 Subject: [PATCH 136/464] snapshots reload with SerializationSchema NEXT: fix problem with CVs not correctly reloading --- .../experimental/storage/class_info.py | 14 ++++++++++--- .../experimental/storage/my_types.py | 1 + .../experimental/storage/serialization.py | 5 +++++ .../experimental/storage/tools.py | 21 ++++++++++++++++--- 4 files changed, 35 insertions(+), 6 deletions(-) diff --git a/openpathsampling/experimental/storage/class_info.py b/openpathsampling/experimental/storage/class_info.py index 44f5d4c10..abed37182 100644 --- a/openpathsampling/experimental/storage/class_info.py +++ b/openpathsampling/experimental/storage/class_info.py @@ -5,7 +5,7 @@ from .serialization_helpers import SchemaFindUUIDs, has_uuid from .serialization_helpers import encoded_uuid_re, get_reload_order from .serialization_helpers import get_all_uuids - +from .my_types import all_uuid_types import json # try: @@ -258,13 +258,21 @@ def deserialize(self, serialized_by_table, known_uuids=None): uuid = item_dct['uuid'] uuid_to_table[uuid] = table to_load[uuid] = tools.SimpleNamespace(**item_dct) - item_json = json.dumps(item_dct) - dependencies[uuid] = set(encoded_uuid_re.findall(item_json)) + if table == self.default_info.table: + item_json = json.dumps(item_dct) + dependencies[uuid] = set(encoded_uuid_re.findall(item_json)) + else: + dependencies[uuid] = set([ + item_dct[entry] + for (entry, entry_type) in schema_entries + if entry_type in all_uuid_types + ]) ordered_uuids = get_reload_order(list(to_load.values()), dependencies) return self.reconstruct_uuids(ordered_uuids, uuid_to_table, to_load, known_uuids) + def reconstruct_uuids(self, ordered_uuids, uuid_to_table, to_load, known_uuids=None, new_uuids=None): """ diff --git a/openpathsampling/experimental/storage/my_types.py b/openpathsampling/experimental/storage/my_types.py index e7054f2a7..ede1a9b24 100644 --- a/openpathsampling/experimental/storage/my_types.py +++ b/openpathsampling/experimental/storage/my_types.py @@ -27,5 +27,6 @@ def backend_registration_type(type_name): ndarray_types = ['ndarray'] all_types = uuid_types + list_uuid + builtin_types + ndarray_types +all_uuid_types = ['uuid', 'lazy', 'list_uuid'] diff --git a/openpathsampling/experimental/storage/serialization.py b/openpathsampling/experimental/storage/serialization.py index 77a5844de..c791f41f0 100644 --- a/openpathsampling/experimental/storage/serialization.py +++ b/openpathsampling/experimental/storage/serialization.py @@ -205,6 +205,11 @@ def make_dct(self, table_dct, cache_list): def __call__(self, uuid, table_dct, cache_list): dct = self.make_dct(table_dct, cache_list) + logger.debug(str(dct)) # DEBUG + logger.debug(str(dct.__dict__)) # DEBUG + if 'uuid' in dct: + del dct['uuid'] + logger.debug(str(dct)) # DEBUG obj = self.cls.from_dict(dct) serialization.set_uuid(obj, uuid) return obj diff --git a/openpathsampling/experimental/storage/tools.py b/openpathsampling/experimental/storage/tools.py index f8f953ca6..fcd275688 100644 --- a/openpathsampling/experimental/storage/tools.py +++ b/openpathsampling/experimental/storage/tools.py @@ -1,14 +1,29 @@ import collections from numpy import ndarray -class SimpleNamespace: +import logging +logger = logging.getLogger(__name__) + +class SimpleNamespace(collections.MutableMapping): # types.SimpleNameSpace in 3.3+ # this variants acts as either a dict or a namespace for getting def __init__(self, **kwargs): self.__dict__.update(kwargs) - def __getitem__(self, item): - return self.__dict__[item] + def __getitem__(self, key): + return self.__dict__[key] + + def __setitem__(self, key, value): + self.__dict__[key] = value + + def __delitem__(self, item): + del self.__dict__[item] + + def __len__(self): + return len(self.__dict__) + + def __iter__(self): + return self.__dict__.__iter__() def __repr__(self): keys = sorted(self.__dict__) From 29fd05646dc1f481579fb0e4956aa7be545374f7 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Fri, 1 Jun 2018 09:12:36 +0200 Subject: [PATCH 137/464] Monkey patch CallableCV.from_dict --- openpathsampling/experimental/storage/__init__.py | 1 + .../experimental/storage/monkey_patches.py | 11 +++++++++++ 2 files changed, 12 insertions(+) create mode 100644 openpathsampling/experimental/storage/monkey_patches.py diff --git a/openpathsampling/experimental/storage/__init__.py b/openpathsampling/experimental/storage/__init__.py index 5fb819a16..d4f03287e 100644 --- a/openpathsampling/experimental/storage/__init__.py +++ b/openpathsampling/experimental/storage/__init__.py @@ -9,3 +9,4 @@ from . import sql_backend from . import storage from . import tools +from . import monkey_patches diff --git a/openpathsampling/experimental/storage/monkey_patches.py b/openpathsampling/experimental/storage/monkey_patches.py new file mode 100644 index 000000000..74942909d --- /dev/null +++ b/openpathsampling/experimental/storage/monkey_patches.py @@ -0,0 +1,11 @@ +import openpathsampling as paths + +def callable_cv_from_dict(cls, dct): + kwargs = dct.pop('kwargs') + dct.update(kwargs) + obj = cls(**dct) + cv_callable = paths.netcdfplus.ObjectJSON.callable_from_dict(obj.cv_callable) + obj.cv_callable = cv_callable + return obj + + From ab00c7ed56a4c18187ad75bdd8d6463fd148bb56 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Fri, 1 Jun 2018 12:50:15 +0200 Subject: [PATCH 138/464] Fix deserialization of uuid_list (e.g, trajs) --- .../experimental/storage/class_info.py | 29 +++++++++++++++---- .../experimental/storage/my_types.py | 4 +-- .../experimental/storage/serialization.py | 7 ++--- 3 files changed, 27 insertions(+), 13 deletions(-) diff --git a/openpathsampling/experimental/storage/class_info.py b/openpathsampling/experimental/storage/class_info.py index abed37182..91011ed6b 100644 --- a/openpathsampling/experimental/storage/class_info.py +++ b/openpathsampling/experimental/storage/class_info.py @@ -5,7 +5,7 @@ from .serialization_helpers import SchemaFindUUIDs, has_uuid from .serialization_helpers import encoded_uuid_re, get_reload_order from .serialization_helpers import get_all_uuids -from .my_types import all_uuid_types +from .my_types import uuid_types, uuid_list_types import json # try: @@ -194,6 +194,12 @@ def serialize(self, obj, storage=None): """ Serialize all objects in ``obj`` to table-grouped JSON-ready dict. + Notes + ----- + + This can also take multiple objects, but they must be collected in a + hashable container (e.g., tuple, not a list). + Parameters ---------- obj : object @@ -207,6 +213,8 @@ def serialize(self, obj, storage=None): dict : {table: {uuid: {attr: value}}} """ + # TODO: correct the return type (no dict of uuid to description, + # just a list of dicts for each object, including uuid as attr logger.debug("Starting serialization") results = {} cache = {} if not storage else storage.cache @@ -254,6 +262,8 @@ def deserialize(self, serialized_by_table, known_uuids=None): uuid_to_table = {} for (table, object_list) in serialized_by_table.items(): schema_entries = self.schema[table] + logger.debug("Restoring %d object from table %s", + len(object_list), table) for item_dct in object_list: uuid = item_dct['uuid'] uuid_to_table[uuid] = table @@ -262,13 +272,20 @@ def deserialize(self, serialized_by_table, known_uuids=None): item_json = json.dumps(item_dct) dependencies[uuid] = set(encoded_uuid_re.findall(item_json)) else: - dependencies[uuid] = set([ - item_dct[entry] - for (entry, entry_type) in schema_entries - if entry_type in all_uuid_types - ]) + uuid_entries = [entry + for (entry, e_type) in schema_entries + if e_type in uuid_types] + deps = set([item_dct[entry] for entry in uuid_entries]) + uuid_list_entries = [entry + for (entry, e_type) in schema_entries + if e_type in uuid_list_types] + deps |= set(sum([encoded_uuid_re.findall(item_dct[entry]) + for entry in uuid_list_entries], [])) + + dependencies[uuid] = deps ordered_uuids = get_reload_order(list(to_load.values()), dependencies) + logger.debug("Restore order: %s", str(ordered_uuids)) return self.reconstruct_uuids(ordered_uuids, uuid_to_table, to_load, known_uuids) diff --git a/openpathsampling/experimental/storage/my_types.py b/openpathsampling/experimental/storage/my_types.py index ede1a9b24..dd5f6f019 100644 --- a/openpathsampling/experimental/storage/my_types.py +++ b/openpathsampling/experimental/storage/my_types.py @@ -22,11 +22,11 @@ def backend_registration_type(type_name): uuid_types = ['uuid', 'lazy'] -list_uuid = ['list_uuid'] +uuid_list_types = ['list_uuid'] builtin_types = ['str', 'int', 'float'] ndarray_types = ['ndarray'] -all_types = uuid_types + list_uuid + builtin_types + ndarray_types +all_types = uuid_types + uuid_list_types + builtin_types + ndarray_types all_uuid_types = ['uuid', 'lazy', 'list_uuid'] diff --git a/openpathsampling/experimental/storage/serialization.py b/openpathsampling/experimental/storage/serialization.py index c791f41f0..3ea15b89d 100644 --- a/openpathsampling/experimental/storage/serialization.py +++ b/openpathsampling/experimental/storage/serialization.py @@ -205,11 +205,8 @@ def make_dct(self, table_dct, cache_list): def __call__(self, uuid, table_dct, cache_list): dct = self.make_dct(table_dct, cache_list) - logger.debug(str(dct)) # DEBUG - logger.debug(str(dct.__dict__)) # DEBUG - if 'uuid' in dct: - del dct['uuid'] - logger.debug(str(dct)) # DEBUG + # if 'uuid' in dct: + # del dct['uuid'] obj = self.cls.from_dict(dct) serialization.set_uuid(obj, uuid) return obj From 0ab74e089a487cd7a13b42831eb1d1851706763b Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Wed, 13 Jun 2018 13:23:27 +0200 Subject: [PATCH 139/464] switch to uses lists in get_all_uuids already did after first step; saves problems with hashability --- .../experimental/storage/serialization_helpers.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/openpathsampling/experimental/storage/serialization_helpers.py b/openpathsampling/experimental/storage/serialization_helpers.py index a830a9e23..d10e3a336 100644 --- a/openpathsampling/experimental/storage/serialization_helpers.py +++ b/openpathsampling/experimental/storage/serialization_helpers.py @@ -154,11 +154,16 @@ def get_all_uuids(initial_object, known_uuids=None, class_info=None): objects found in the search """ known_uuids = tools.none_to_default(known_uuids, {}) - objects = {initial_object} + objects = [initial_object] uuids = {} while objects: new_objects = [] for obj in objects: + # TODO: find a way to ensure that objects doesn't go over + # duplicates here; see lprofile of default_find_uuids to see how + # often abort due to being in cache in there, and whether we + # should move the skip in here instead (how expensive is + # info_from_instance?) info = class_info.info_from_instance(obj) \ if class_info else None if info: From dda720cc7ede97c92516bba5ca2b3974202cf031 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Sat, 16 Jun 2018 13:56:39 +0200 Subject: [PATCH 140/464] Add dependencies for schema objs with JSON entries --- .../experimental/storage/class_info.py | 17 +++++++++++++++-- .../experimental/storage/my_types.py | 1 + .../experimental/storage/ops_storage.py | 2 +- 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/openpathsampling/experimental/storage/class_info.py b/openpathsampling/experimental/storage/class_info.py index 91011ed6b..8993881c1 100644 --- a/openpathsampling/experimental/storage/class_info.py +++ b/openpathsampling/experimental/storage/class_info.py @@ -5,7 +5,7 @@ from .serialization_helpers import SchemaFindUUIDs, has_uuid from .serialization_helpers import encoded_uuid_re, get_reload_order from .serialization_helpers import get_all_uuids -from .my_types import uuid_types, uuid_list_types +from .my_types import uuid_types, uuid_list_types, json_obj_types import json # try: @@ -262,7 +262,7 @@ def deserialize(self, serialized_by_table, known_uuids=None): uuid_to_table = {} for (table, object_list) in serialized_by_table.items(): schema_entries = self.schema[table] - logger.debug("Restoring %d object from table %s", + logger.debug("Restoring %d objects from table %s", len(object_list), table) for item_dct in object_list: uuid = item_dct['uuid'] @@ -272,6 +272,12 @@ def deserialize(self, serialized_by_table, known_uuids=None): item_json = json.dumps(item_dct) dependencies[uuid] = set(encoded_uuid_re.findall(item_json)) else: + # TODO: this can be cleaned up with a dict mapping types + # to method for finding dependencies + # find_deps is a defaultdict mapping to appropriate + # functions, default is fcn returning empty set + # for (entry, e_type) in schema_entries: + # deps |= find_deps[e_type](entry) uuid_entries = [entry for (entry, e_type) in schema_entries if e_type in uuid_types] @@ -282,6 +288,13 @@ def deserialize(self, serialized_by_table, known_uuids=None): deps |= set(sum([encoded_uuid_re.findall(item_dct[entry]) for entry in uuid_list_entries], [])) + json_entries = [entry + for (entry, e_type) in schema_entries + if e_type in json_obj_types] + for json_entry in json_entries: + json_val = item_dct[json_entry] + deps |= set(encoded_uuid_re.findall(json_val)) + dependencies[uuid] = deps ordered_uuids = get_reload_order(list(to_load.values()), dependencies) diff --git a/openpathsampling/experimental/storage/my_types.py b/openpathsampling/experimental/storage/my_types.py index dd5f6f019..be4266143 100644 --- a/openpathsampling/experimental/storage/my_types.py +++ b/openpathsampling/experimental/storage/my_types.py @@ -28,5 +28,6 @@ def backend_registration_type(type_name): all_types = uuid_types + uuid_list_types + builtin_types + ndarray_types all_uuid_types = ['uuid', 'lazy', 'list_uuid'] +json_obj_types = ['json', 'json_obj'] diff --git a/openpathsampling/experimental/storage/ops_storage.py b/openpathsampling/experimental/storage/ops_storage.py index 3eabfc56c..d826ba50b 100644 --- a/openpathsampling/experimental/storage/ops_storage.py +++ b/openpathsampling/experimental/storage/ops_storage.py @@ -37,7 +37,7 @@ ('input_samples', 'list_uuid')], 'steps': [('change', 'uuid'), ('active', 'uuid'), ('previous', 'lazy'), ('simulation', 'uuid'), ('mccycle', 'int')], - 'details': [('json', 'json')], + 'details': [('json', 'json_obj')], 'simulation_objects': [('json', 'json_obj'), ('class_idx', 'int')] } From 70f10989b9f9281a48382f6e74c43dd4e6fa45d4 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 21 Jun 2018 17:35:14 +0200 Subject: [PATCH 141/464] minor text update --- openpathsampling/experimental/storage/serialization_helpers.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openpathsampling/experimental/storage/serialization_helpers.py b/openpathsampling/experimental/storage/serialization_helpers.py index d10e3a336..c086baefb 100644 --- a/openpathsampling/experimental/storage/serialization_helpers.py +++ b/openpathsampling/experimental/storage/serialization_helpers.py @@ -384,7 +384,7 @@ def _uuids_from_table_row(table_row, schema_entries): This organizes the UUIDS that are included in the table row based on information from that row. It separated objects to be proxied ('lazy') - from objects to be directory loaded ('uuid', 'list_uuid', 'json_obj'). + from objects to be directly loaded ('uuid', 'list_uuid', 'json_obj'). It also create the dependency dictionary (the entry for this row) that will be used to create the reconstruction DAG. From eef5f52a67b05d725152bdce19e3935ce7a5ad6f Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Sat, 21 Jul 2018 19:02:04 +0200 Subject: [PATCH 142/464] Updates for first parallel RETIS --- openpathsampling/engines/toy/pes.py | 12 ++++++++++++ openpathsampling/experimental/storage/class_info.py | 10 ++++++++-- openpathsampling/experimental/storage/ops_storage.py | 2 +- 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/openpathsampling/engines/toy/pes.py b/openpathsampling/engines/toy/pes.py index 7b76140fc..2b30dd8f0 100644 --- a/openpathsampling/engines/toy/pes.py +++ b/openpathsampling/engines/toy/pes.py @@ -192,6 +192,12 @@ def __init__(self, A, alpha, x0): self.x0 = np.array(x0) self._local_dVdx = np.zeros(self.x0.size) + def to_dict(self): + dct = super(Gaussian, self).to_dict() + dct['alpha'] = dct['alpha'].tolist() + dct['x0'] = dct['x0'].tolist() + return dct + def V(self, sys): """Potential energy @@ -245,6 +251,12 @@ def __init__(self, sigma, x0): self.x0 = np.array(x0) self._local_dVdx = np.zeros(self.x0.size) + def to_dict(self): + dct = super(OuterWalls, self).to_dict() + dct['x0'] = dct['x0'].tolist() + dct['sigma'] = dct['sigma'].tolist() + return dct + def V(self, sys): """Potential energy diff --git a/openpathsampling/experimental/storage/class_info.py b/openpathsampling/experimental/storage/class_info.py index 8993881c1..252d9426a 100644 --- a/openpathsampling/experimental/storage/class_info.py +++ b/openpathsampling/experimental/storage/class_info.py @@ -246,8 +246,14 @@ def serialize(self, obj, storage=None): logger.debug("Serializing %d objects from table %s", len(by_table[table]), table) serialize = self[table].serializer - serialized_by_table[table] = [serialize(o) - for o in table_uuids.values()] + serialized_table = [] + for o in table_uuids.values(): + if table == 'simulation_objects': + logger.debug(str(o)) + serialized_table.append(serialize(o)) + serialized_by_table[table] = serialized_table + # serialized_by_table[table] = [serialize(o) + # for o in table_uuids.values()] return serialized_by_table diff --git a/openpathsampling/experimental/storage/ops_storage.py b/openpathsampling/experimental/storage/ops_storage.py index d826ba50b..663d5ebdb 100644 --- a/openpathsampling/experimental/storage/ops_storage.py +++ b/openpathsampling/experimental/storage/ops_storage.py @@ -35,7 +35,7 @@ 'move_changes': [('mover', 'uuid'), ('details', 'lazy'), ('cls', 'str'), ('subchanges', 'list_uuid'), ('samples', 'list_uuid'), ('input_samples', 'list_uuid')], - 'steps': [('change', 'uuid'), ('active', 'uuid'), ('previous', 'lazy'), + 'steps': [('change', 'uuid'), ('active', 'uuid'), #('previous', 'lazy'), ('simulation', 'uuid'), ('mccycle', 'int')], 'details': [('json', 'json_obj')], 'simulation_objects': [('json', 'json_obj'), ('class_idx', 'int')] From 2218af315a30ca2ec1417d47c695b6748b762e48 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Wed, 25 Jul 2018 00:45:23 +0200 Subject: [PATCH 143/464] Fix case where find_uuids is None --- openpathsampling/experimental/storage/serialization_helpers.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openpathsampling/experimental/storage/serialization_helpers.py b/openpathsampling/experimental/storage/serialization_helpers.py index c086baefb..ca08b2f52 100644 --- a/openpathsampling/experimental/storage/serialization_helpers.py +++ b/openpathsampling/experimental/storage/serialization_helpers.py @@ -166,7 +166,7 @@ def get_all_uuids(initial_object, known_uuids=None, class_info=None): # info_from_instance?) info = class_info.info_from_instance(obj) \ if class_info else None - if info: + if info and info.find_uuids is not None: find_uuids = info.find_uuids else: find_uuids = default_find_uuids From 1acc956fd45041fdd44b7077b763df243ca00d86 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Sun, 30 Sep 2018 11:41:35 +0200 Subject: [PATCH 144/464] comment out expt'l sections from index --- docs/topics/index.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/topics/index.rst b/docs/topics/index.rst index 61eb18d94..e39b34f65 100644 --- a/docs/topics/index.rst +++ b/docs/topics/index.rst @@ -20,3 +20,5 @@ providing this here the unorganized form. which_network transitions_and_networks tis_analysis +.. troubleshooting +.. error_messages From ba834b6ecb4e42cffa81682cb5fa8951dbe1e9d8 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Sun, 30 Dec 2018 17:51:44 -0500 Subject: [PATCH 145/464] Updates to get this run MSTIS working again --- .coveragerc | 1 + .../experimental/storage/monkey_patches.py | 21 ++++++ .../experimental/storage/storage.py | 74 ++++++++++++++++++- 3 files changed, 95 insertions(+), 1 deletion(-) diff --git a/.coveragerc b/.coveragerc index aae08ea57..f1749039d 100644 --- a/.coveragerc +++ b/.coveragerc @@ -5,6 +5,7 @@ omit = */openpathsampling/tests/* */mdtraj/* */setup.py + */openpathsampling/experimental/storage/* exclude_lines = pragma: no cover def __repr__ diff --git a/openpathsampling/experimental/storage/monkey_patches.py b/openpathsampling/experimental/storage/monkey_patches.py index 74942909d..8df2dd2cb 100644 --- a/openpathsampling/experimental/storage/monkey_patches.py +++ b/openpathsampling/experimental/storage/monkey_patches.py @@ -1,5 +1,15 @@ import openpathsampling as paths +import importlib +def import_class(full_classname_string): + splitter = full_classname_string.split('.') + module_name = ".".join(splitter[:1]) + class_name = splitter[-1] + module = importlib.import_module(module_name) + cls = getattr(module, class_name) + return cls + + def callable_cv_from_dict(cls, dct): kwargs = dct.pop('kwargs') dct.update(kwargs) @@ -9,3 +19,14 @@ def callable_cv_from_dict(cls, dct): return obj +def function_pseudo_attribute_to_dict(obj): + dct = super(paths.netcdfplus.FunctionPseudoAttribute, obj).to_dict() + cls = dct['key_class'] + dct['key_class'] = cls.__module__ + '.' + cls.__name__ + return dct + +def function_pseudo_attribute_from_dict(cls, dct): + key_class = import_class(dct['key_class']) + dct['key_clss'] = key_class + return cls.from_dict(dct) + diff --git a/openpathsampling/experimental/storage/storage.py b/openpathsampling/experimental/storage/storage.py index 7a979d1cd..73decd1e6 100644 --- a/openpathsampling/experimental/storage/storage.py +++ b/openpathsampling/experimental/storage/storage.py @@ -170,6 +170,8 @@ def save(self, obj): str(list(missing_by_table.keys()))) by_table.update(missing_by_table) + # TODO: add simulation objects to the cache + # this is the actual serialization logger.debug("Filling %d tables: %s", len(by_table), str(list(by_table.keys()))) @@ -257,7 +259,6 @@ def deserialize_uuids(self, ordered_uuids, uuid_to_table, new_uuids[uuid] = obj return new_uuids - def sync(self): pass @@ -272,6 +273,7 @@ def _cache_simulation_objects(self): return {} def _update_pseudo_tables(self, simulation_objects): + # TODO: replace the pseudo_tables code here with a class for uuid, obj in simulation_objects.items(): for (key, cls) in self.simulation_classes.items(): if isinstance(obj, cls): @@ -280,6 +282,26 @@ def _update_pseudo_tables(self, simulation_objects): self._pseudo_tables[key][obj.name] = obj continue + def summary(self, detailed=False): + """Return a string summary of this storage file. + + Parameters + ---------- + detailed : bool + whether to return the detailed description, where the simulation + objects are divided into their various pseudotables + """ + out_str = "File: " + self.backend.filename + "\n" + # TODO: add size to the first line + out_str += "Includes tables:\n" + storage_tables = dict(self._storage_tables) # make a copy + if detailed: + pass # TODO: pop off simulation_objects, use pseudotables + + for (name, table) in storage_tables.items(): + out_str += "* " + name + ": " + str(len(table)) + " items\n" + return out_str + def __getattr__(self, attr): # override getattr to create iterators over the tables (stores) if attr in self._storage_tables: @@ -370,3 +392,53 @@ def save(self, obj): # TODO: subclass for MCSteps with additional method .ordered, returning # things in the order of the mccycle number -- also, manage special # caching + +class PseudoTable(collections.MutableSequence): + # TODO: use this in the main code + """List of objects that can be retrieved by index or name. + """ + def __init__(self, sequence=None): + self._sequence = [] + self._uuid_to_obj = {} + self._name_to_uuid = {} + sequence = none_to_default(sequence, []) + for item in sequence: + self.extend(sequence) + + @staticmethod + def _get_uuid_and_name(obj): + uuid = get_uuid(item) + name = None if not obj.is_named else obj.name + return uuid, name + + def get_by_uuid(self, uuid): + return self._uuid_to_obj[uuid] + + def __getitem__(self, item): + try: + ret_val = self._sequence[item] + except TypeError: + uuid = self._name_to_uuid[item] + ret_val = self.get_by_uuid(uuid) + return ret_val + + def __setitem__(self, key, value): + del self[key] + self.insert(key, value) + + def __delitem__(self, key): + item = self[key] + uuid, name = self._get_uuid_and_name(item) + self.sequence.pop(item) + del self._uuid_to_obj[uuid] + del self._name_to_uuid[name] + + def __len__(self): + return len(self.sequence) + + def insert(self, where, item): + uuid, name = self._get_uuid_and_name(item) + self._sequence.insert(where, item) + self._uuid_to_obj[uuid] = obj + if name is not None: + self._name_to_uuid[name] = uuid From 7889b317f3a6a4ce67d3841144f2bfe4afa4df69 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Sun, 30 Dec 2018 19:01:38 -0500 Subject: [PATCH 146/464] class_lookup performance improvements --- .../experimental/storage/class_lookup.py | 27 +++++++++++++++++++ .../experimental/storage/ops_storage.py | 13 +++++++++ .../storage/serialization_helpers.py | 6 +++-- 3 files changed, 44 insertions(+), 2 deletions(-) create mode 100644 openpathsampling/experimental/storage/class_lookup.py diff --git a/openpathsampling/experimental/storage/class_lookup.py b/openpathsampling/experimental/storage/class_lookup.py new file mode 100644 index 000000000..d4cf59718 --- /dev/null +++ b/openpathsampling/experimental/storage/class_lookup.py @@ -0,0 +1,27 @@ +from . import tools + +class ClassIsSomething(object): + def __init__(self, check_method): + self.check_method = check_method + self._true_set = set() + self._false_set = set() + + def __call__(self, obj): + key = obj.__class__ + if key in self._false_set: + result = False + elif key in self._true_set: + result = True + else: + result = self.check_method(obj) + set_for_obj = {True: self._true_set, + False: self._false_set}[result] + set_for_obj.add(key) + return result + + +_is_iterable_method = lambda obj: \ + tools.is_iterable(obj) and not tools.is_numpy_iterable(obj) + +is_storage_iterable = ClassIsSomething(_is_iterable_method) +is_storage_mappable = ClassIsSomething(tools.is_mappable) diff --git a/openpathsampling/experimental/storage/ops_storage.py b/openpathsampling/experimental/storage/ops_storage.py index 663d5ebdb..21d3f7177 100644 --- a/openpathsampling/experimental/storage/ops_storage.py +++ b/openpathsampling/experimental/storage/ops_storage.py @@ -184,8 +184,21 @@ def __init__(self, backend, schema, class_info, fallbacks=None): # TODO: this will change to match the current notation super(OPSStorage, self).__init__(backend, schema, class_info, fallbacks) + + self._stashed = [] self.n_snapshot_types = 0 + def stash(self, objects): + objects = tools.listify(objects) + self._stashed.extend(objects) + + def sync(self): + super(OPSStorage, self).save(self._stashed) + self._stashed = [] + + # TODO: we'll need to move the save method to be the stash to match the + # netcdfplus API + @classmethod def from_backend(cls, backend, schema=None, class_info=None, simulation_classes=None, fallbacks=None): diff --git a/openpathsampling/experimental/storage/serialization_helpers.py b/openpathsampling/experimental/storage/serialization_helpers.py index ca08b2f52..ac70db5d8 100644 --- a/openpathsampling/experimental/storage/serialization_helpers.py +++ b/openpathsampling/experimental/storage/serialization_helpers.py @@ -8,6 +8,7 @@ from tools import flatten_all, nested_update, group_by_function from tools import is_iterable, is_mappable, is_numpy_iterable import tools +from class_lookup import is_storage_iterable, is_storage_mappable # UUID recognition and encoding ##################################### # Things in here might be modified for performance optimization. In @@ -123,10 +124,11 @@ def default_find_uuids(obj, cache_list): new_objects.extend(list(obj.to_dict().values())) # mappables and iterables - if is_mappable(obj): + if is_storage_mappable(obj): new_objects.extend([o for o in obj.keys() if has_uuid(o)]) new_objects.extend(list(obj.values())) - elif is_iterable(obj) and not is_numpy_iterable(obj): + # elif is_iterable(obj) and not is_numpy_iterable(obj): + elif is_storage_iterable(obj): new_objects.extend(list(obj)) return uuids, new_objects From 7a7198e67ecc81892ed0b9450d276532893b8789 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Tue, 1 Jan 2019 16:50:42 -0500 Subject: [PATCH 147/464] comment out things that aren't being used --- .../experimental/storage/class_info.py | 236 +++++++++--------- .../experimental/storage/class_lookup.py | 2 +- .../experimental/storage/serialization.py | 2 + .../storage/serialization_helpers.py | 22 +- .../storage/test_serialization_helpers.py | 4 + 5 files changed, 136 insertions(+), 130 deletions(-) diff --git a/openpathsampling/experimental/storage/class_info.py b/openpathsampling/experimental/storage/class_info.py index 252d9426a..9bc494746 100644 --- a/openpathsampling/experimental/storage/class_info.py +++ b/openpathsampling/experimental/storage/class_info.py @@ -1,6 +1,6 @@ import logging -from . import tools +import tools from .serialization import DefaultSerializer, DefaultDeserializer from .serialization_helpers import SchemaFindUUIDs, has_uuid from .serialization_helpers import encoded_uuid_re, get_reload_order @@ -190,123 +190,123 @@ def _missing_table_update(self, by_table): by_table.update(missing_by_table) return by_table - def serialize(self, obj, storage=None): - """ - Serialize all objects in ``obj`` to table-grouped JSON-ready dict. - - Notes - ----- - - This can also take multiple objects, but they must be collected in a - hashable container (e.g., tuple, not a list). - - Parameters - ---------- - obj : object - the object to be serialized - storage : :class:`.Storage` - storage object with connection to backend and cache (if - relevant) - - Returns - ------- - dict : - {table: {uuid: {attr: value}}} - """ - # TODO: correct the return type (no dict of uuid to description, - # just a list of dicts for each object, including uuid as attr - logger.debug("Starting serialization") - results = {} - cache = {} if not storage else storage.cache - if storage and storage.uuids_in_storage([get_uuid(obj)]): - return # return what? is None right? - - logger.debug("Listing all included objects to serialize") - uuids = get_all_uuids(obj, cache) # TODO: replace w SchemaFindUUIDs - - if storage: - exists = storage.uuids_in_storage(list(uuids.keys())) - for existing in exists: - del uuids[existing.uuid] - - get_table_name = lambda uuid, obj_: self[obj_].table - by_table = tools.dict_group_by(uuids, key_extract=get_table_name) - - # fix for missing tables - if '__missing__' in by_table: - by_table = self._missing_table_update(by_table) - # NOTE: if using a storage, this will still need to register the - # tables with the backend -- that should be handled as part of - # the save process TODO - - logger.debug("Serializing objects from %d tables: %s", - len(by_table), str(list(by_table.keys()))) - serialized_by_table = {} - for (table, table_uuids) in by_table.items(): - logger.debug("Serializing %d objects from table %s", - len(by_table[table]), table) - serialize = self[table].serializer - serialized_table = [] - for o in table_uuids.values(): - if table == 'simulation_objects': - logger.debug(str(o)) - serialized_table.append(serialize(o)) - serialized_by_table[table] = serialized_table - # serialized_by_table[table] = [serialize(o) - # for o in table_uuids.values()] - - return serialized_by_table - - - def deserialize(self, serialized_by_table, known_uuids=None): - # 1. generate dependencies lists - # 2. get reload order - # 3. reconstruct UUIDs - known_uuids = tools.none_to_default(known_uuids, {}) - dependencies = {} - to_load = {} - uuid_to_table = {} - for (table, object_list) in serialized_by_table.items(): - schema_entries = self.schema[table] - logger.debug("Restoring %d objects from table %s", - len(object_list), table) - for item_dct in object_list: - uuid = item_dct['uuid'] - uuid_to_table[uuid] = table - to_load[uuid] = tools.SimpleNamespace(**item_dct) - if table == self.default_info.table: - item_json = json.dumps(item_dct) - dependencies[uuid] = set(encoded_uuid_re.findall(item_json)) - else: - # TODO: this can be cleaned up with a dict mapping types - # to method for finding dependencies - # find_deps is a defaultdict mapping to appropriate - # functions, default is fcn returning empty set - # for (entry, e_type) in schema_entries: - # deps |= find_deps[e_type](entry) - uuid_entries = [entry - for (entry, e_type) in schema_entries - if e_type in uuid_types] - deps = set([item_dct[entry] for entry in uuid_entries]) - uuid_list_entries = [entry - for (entry, e_type) in schema_entries - if e_type in uuid_list_types] - deps |= set(sum([encoded_uuid_re.findall(item_dct[entry]) - for entry in uuid_list_entries], [])) - - json_entries = [entry - for (entry, e_type) in schema_entries - if e_type in json_obj_types] - for json_entry in json_entries: - json_val = item_dct[json_entry] - deps |= set(encoded_uuid_re.findall(json_val)) - - dependencies[uuid] = deps - - ordered_uuids = get_reload_order(list(to_load.values()), dependencies) - logger.debug("Restore order: %s", str(ordered_uuids)) - return self.reconstruct_uuids(ordered_uuids, uuid_to_table, to_load, - known_uuids) + # def serialize(self, obj, storage=None): + # """ + # Serialize all objects in ``obj`` to table-grouped JSON-ready dict. + + # Notes + # ----- + + # This can also take multiple objects, but they must be collected in a + # hashable container (e.g., tuple, not a list). + + # Parameters + # ---------- + # obj : object + # the object to be serialized + # storage : :class:`.Storage` + # storage object with connection to backend and cache (if + # relevant) + + # Returns + # ------- + # dict : + # {table: {uuid: {attr: value}}} + # """ + # # TODO: correct the return type (no dict of uuid to description, + # # just a list of dicts for each object, including uuid as attr + # logger.debug("Starting serialization") + # results = {} + # cache = {} if not storage else storage.cache + # if storage and storage.uuids_in_storage([get_uuid(obj)]): + # return # return what? is None right? + + # logger.debug("Listing all included objects to serialize") + # uuids = get_all_uuids(obj, cache) # TODO: replace w SchemaFindUUIDs + + # if storage: + # exists = storage.uuids_in_storage(list(uuids.keys())) + # for existing in exists: + # del uuids[existing.uuid] + + # get_table_name = lambda uuid, obj_: self[obj_].table + # by_table = tools.dict_group_by(uuids, key_extract=get_table_name) + + # # fix for missing tables + # if '__missing__' in by_table: + # by_table = self._missing_table_update(by_table) + # # NOTE: if using a storage, this will still need to register the + # # tables with the backend -- that should be handled as part of + # # the save process TODO + + # logger.debug("Serializing objects from %d tables: %s", + # len(by_table), str(list(by_table.keys()))) + # serialized_by_table = {} + # for (table, table_uuids) in by_table.items(): + # logger.debug("Serializing %d objects from table %s", + # len(by_table[table]), table) + # serialize = self[table].serializer + # serialized_table = [] + # for o in table_uuids.values(): + # if table == 'simulation_objects': + # logger.debug(str(o)) + # serialized_table.append(serialize(o)) + # serialized_by_table[table] = serialized_table + # # serialized_by_table[table] = [serialize(o) + # # for o in table_uuids.values()] + + # return serialized_by_table + + + # def deserialize(self, serialized_by_table, known_uuids=None): + # # 1. generate dependencies lists + # # 2. get reload order + # # 3. reconstruct UUIDs + # known_uuids = tools.none_to_default(known_uuids, {}) + # dependencies = {} + # to_load = {} + # uuid_to_table = {} + # for (table, object_list) in serialized_by_table.items(): + # schema_entries = self.schema[table] + # logger.debug("Restoring %d objects from table %s", + # len(object_list), table) + # for item_dct in object_list: + # uuid = item_dct['uuid'] + # uuid_to_table[uuid] = table + # to_load[uuid] = tools.SimpleNamespace(**item_dct) + # if table == self.default_info.table: + # item_json = json.dumps(item_dct) + # dependencies[uuid] = set(encoded_uuid_re.findall(item_json)) + # else: + # # TODO: this can be cleaned up with a dict mapping types + # # to method for finding dependencies + # # find_deps is a defaultdict mapping to appropriate + # # functions, default is fcn returning empty set + # # for (entry, e_type) in schema_entries: + # # deps |= find_deps[e_type](entry) + # uuid_entries = [entry + # for (entry, e_type) in schema_entries + # if e_type in uuid_types] + # deps = set([item_dct[entry] for entry in uuid_entries]) + # uuid_list_entries = [entry + # for (entry, e_type) in schema_entries + # if e_type in uuid_list_types] + # deps |= set(sum([encoded_uuid_re.findall(item_dct[entry]) + # for entry in uuid_list_entries], [])) + + # json_entries = [entry + # for (entry, e_type) in schema_entries + # if e_type in json_obj_types] + # for json_entry in json_entries: + # json_val = item_dct[json_entry] + # deps |= set(encoded_uuid_re.findall(json_val)) + + # dependencies[uuid] = deps + + # ordered_uuids = get_reload_order(list(to_load.values()), dependencies) + # logger.debug("Restore order: %s", str(ordered_uuids)) + # return self.reconstruct_uuids(ordered_uuids, uuid_to_table, to_load, + # known_uuids) def reconstruct_uuids(self, ordered_uuids, uuid_to_table, to_load, diff --git a/openpathsampling/experimental/storage/class_lookup.py b/openpathsampling/experimental/storage/class_lookup.py index d4cf59718..6a4f6556c 100644 --- a/openpathsampling/experimental/storage/class_lookup.py +++ b/openpathsampling/experimental/storage/class_lookup.py @@ -1,4 +1,4 @@ -from . import tools +import tools class ClassIsSomething(object): def __init__(self, check_method): diff --git a/openpathsampling/experimental/storage/serialization.py b/openpathsampling/experimental/storage/serialization.py index 3ea15b89d..04cc5b660 100644 --- a/openpathsampling/experimental/storage/serialization.py +++ b/openpathsampling/experimental/storage/serialization.py @@ -70,6 +70,8 @@ def __repr__(self): + " UUID " + str(self.__uuid__) + ">") class ProxyObjectFactory(object): + # TODO: I think this should replace some of the similar stuff in the + # Serialization object below def __init__(self, storage, class_info): self.storage = storage self.class_info = class_info diff --git a/openpathsampling/experimental/storage/serialization_helpers.py b/openpathsampling/experimental/storage/serialization_helpers.py index ac70db5d8..6aa198135 100644 --- a/openpathsampling/experimental/storage/serialization_helpers.py +++ b/openpathsampling/experimental/storage/serialization_helpers.py @@ -205,19 +205,19 @@ def __call__(self, obj, cache_list): # TODO: I think this can be removed (only used by get_all_uuid_string) -def find_dependent_uuids(json_dct): - dct = json.loads(json_dct) - uuids = [decode_uuid(obj) for obj in flatten_all(dct) - if is_uuid_string(obj)] - return uuids +# def find_dependent_uuids(json_dct): + # dct = json.loads(json_dct) + # uuids = [decode_uuid(obj) for obj in flatten_all(dct) + # if is_uuid_string(obj)] + # return uuids # TODO: I think this can be removed (not used?) -def get_all_uuid_strings(dct): - all_uuids = [] - for uuid in dct: - all_uuids.append(uuid) - all_uuids += find_dependent_uuids(dct[uuid]) - return all_uuids +# def get_all_uuid_strings(dct): + # all_uuids = [] + # for uuid in dct: + # all_uuids.append(uuid) + # all_uuids += find_dependent_uuids(dct[uuid]) + # return all_uuids # NOTE: this only need to find until the first UUID: iterables/mapping with diff --git a/openpathsampling/experimental/storage/test_serialization_helpers.py b/openpathsampling/experimental/storage/test_serialization_helpers.py index 0430d9fa7..cf856b564 100644 --- a/openpathsampling/experimental/storage/test_serialization_helpers.py +++ b/openpathsampling/experimental/storage/test_serialization_helpers.py @@ -77,6 +77,10 @@ def test_get_uuid(name, obj): def test_get_uuid_none(): assert get_uuid(None) is None +def test_get_uuid_error(): + with pytest.raises(AttributeError): + get_uuid(10) + @pytest.mark.parametrize('obj,included_objs', [ (all_objects['int'], []), (all_objects['str'], []), From 36f0115fa268803773c40701f377ddae76ccceb8 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Tue, 1 Jan 2019 19:29:08 -0500 Subject: [PATCH 148/464] performance improvements --- .../experimental/storage/class_info.py | 6 +++--- .../storage/serialization_helpers.py | 17 +++++++++++++++++ 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/openpathsampling/experimental/storage/class_info.py b/openpathsampling/experimental/storage/class_info.py index 9bc494746..e67349c61 100644 --- a/openpathsampling/experimental/storage/class_info.py +++ b/openpathsampling/experimental/storage/class_info.py @@ -60,8 +60,8 @@ def set_defaults(self, schema): def __repr__(self): return ("ClassInfo(table=" + self.table + ", cls=" + str(self.cls) - + ", lookup_result=" + str(self.lookup_result) + ")") - + + ", lookup_result=" + str(self.lookup_result) + + ", find_uuids=" + str(self.find_uuids) + ")") class SerializationSchema(object): @@ -158,7 +158,7 @@ def info_from_instance(self, item): if not has_uuid(item): return None if self.is_special(item): - self.get_special(item) + return self.get_special(item) else: lookup = self.lookup_key(item) if lookup in self.lookup_to_info: diff --git a/openpathsampling/experimental/storage/serialization_helpers.py b/openpathsampling/experimental/storage/serialization_helpers.py index 6aa198135..2f79c8b81 100644 --- a/openpathsampling/experimental/storage/serialization_helpers.py +++ b/openpathsampling/experimental/storage/serialization_helpers.py @@ -66,6 +66,21 @@ def filter_known_uuids(uuid_dict, cache_list): return {uuid: value for (uuid, value) in uuid_dict.items() if not caches_contain(uuid, cache_list)} +def unique_objects(object_list): + found_uuids = set([]) + return_objects = [] + for obj in object_list: + if has_uuid(obj): + uuid = get_uuid(obj) + if uuid not in found_uuids: + found_uuids.update({uuid}) + return_objects.append(obj) + else: + return_objects.append(obj) + + return return_objects + + class DefaultFindUUIDs(object): def __init__(self): self._mappable_classes = set() @@ -160,6 +175,8 @@ def get_all_uuids(initial_object, known_uuids=None, class_info=None): uuids = {} while objects: new_objects = [] + objects = unique_objects(objects) + # print objects for obj in objects: # TODO: find a way to ensure that objects doesn't go over # duplicates here; see lprofile of default_find_uuids to see how From b3c23a0c860402ff9fe9f3bce6c3d44adc064327 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 3 Jan 2019 18:19:09 -0500 Subject: [PATCH 149/464] more tests for serialization_helpers Add new MockBackend class; start to tests of MockBackend --- .../storage/serialization_helpers.py | 17 ++- .../experimental/storage/sql_backend.py | 11 ++ .../storage/test_serialization_helpers.py | 131 +++++++++++++++++- 3 files changed, 155 insertions(+), 4 deletions(-) diff --git a/openpathsampling/experimental/storage/serialization_helpers.py b/openpathsampling/experimental/storage/serialization_helpers.py index 2f79c8b81..5bf01c027 100644 --- a/openpathsampling/experimental/storage/serialization_helpers.py +++ b/openpathsampling/experimental/storage/serialization_helpers.py @@ -493,13 +493,28 @@ def get_all_uuids_loading(uuid_list, backend, schema, existing_uuids=None): def dependency_dag(dependent_uuids, dag=None): + """Create a DAG from the dependencies + + Parameters + ---------- + dependent_uuids: dict + dictionary mapping UUID keys to set of UUID values, where the + key-value pairs are edges of the dependency graph + dag: networkx.DiGraph + partially created DAG (optional) + + Returns + ------- + networkx.DiGraph + DAG to recreate the input objects + """ if dag is None: dag = nx.DiGraph() for from_node, to_nodes in dependent_uuids.items(): if to_nodes: dag.add_edges_from([(from_node, to_node) for to_node in to_nodes]) - if not nx_dag.is_directed_acyclic_graph(dag): + if not nx_dag.is_directed_acyclic_graph(dag): # pragma: no cover raise RuntimeError("Reconstruction DAG not acyclic?!?!") return dag diff --git a/openpathsampling/experimental/storage/sql_backend.py b/openpathsampling/experimental/storage/sql_backend.py index 40556ef41..3c0bc0d01 100644 --- a/openpathsampling/experimental/storage/sql_backend.py +++ b/openpathsampling/experimental/storage/sql_backend.py @@ -293,6 +293,17 @@ def load_uuids_table(self, uuids, ignore_missing=False): This can also be used to identify which UUIDs already exist in the database (with ignore_missing=True). + + Parameters + ---------- + uuids : list + list of UUIDs to look up + + Returns + ------- + list + table rows with UUID, table ID, and table row index for each + desired UUID """ uuid_table = self.metadata.tables['uuid'] logger.debug("Looking for {} UUIDs".format(len(uuids))) diff --git a/openpathsampling/experimental/storage/test_serialization_helpers.py b/openpathsampling/experimental/storage/test_serialization_helpers.py index cf856b564..8d8ac0859 100644 --- a/openpathsampling/experimental/storage/test_serialization_helpers.py +++ b/openpathsampling/experimental/storage/test_serialization_helpers.py @@ -14,6 +14,9 @@ def uuid_encode(name): class MockUUIDObject(object): attr_list = ['name', 'normal_attr', 'obj_attr', 'list_attr', 'dict_attr', 'lazy_attr'] + schema = [('dict_attr', 'uuid'), ('list_attr', 'list_uuid'), + ('obj_attr', 'uuid'), ('lazy_attr', 'lazy'), + ('normal_attr', 'str')] def __init__(self, name, normal_attr=None, obj_attr=None, list_attr=None, dict_attr=None, lazy_attr=None): self.name = name @@ -61,6 +64,80 @@ def create_test_objects(): all_objects = create_test_objects() +class MockBackend(object): + def _table_data_for_object(self, obj, table_name, **kwargs): + schema_entries = self.schema[table_name] + row_type = self.row_types[table_name] + uuid = get_uuid(obj) + table_idx = self.table_names.index(table_name) + idx = len(self.tables[table_idx]) + row_kwargs = {'uuid': uuid, 'idx': idx} + row_kwargs.update(kwargs) + row = row_type(**row_kwargs) + uuid_row = self.row_types['uuids'](uuid=uuid, table=table_idx, + idx=idx) + return uuid_row, row + + def __init__(self): + self.schema = { + 'objs': [('obj_attr', 'uuid')], + 'ints': [('normal_attr', 'int')], + 'sims': [('json', 'json_obj'), ('class_idx', 'int')] + } + self.row_types = { + 'uuids': namedtuple('UUIDsRow', ['uuid', 'table', 'idx']), + 'objs': namedtuple('ObjRow', ['uuid', 'idx', 'obj_attr']), + 'ints': namedtuple('IntRow', ['uuid', 'idx', 'normal_attr']), + 'sims': namedtuple('SimRow', + ['uuid', 'idx', 'json', 'class_idx']), + 'clss': namedtuple('ClsRow', ['idx', 'module', 'cls']) + } + self.obj_to_table = { + 'int': 'ints', + 'obj': 'objs', + 'dct': 'sims', + 'str': 'sims' + } + self.table_names = ['uuids', 'clss', 'sims', 'objs', 'ints'] + + self.uuid_table = {} + self.tables = [[] for table in self.table_names] + uuid_row, table_row = self._table_data_for_object( + obj=all_objects['int'], + table_name='ints', + normal_attr=5 + ) + self.uuid_table[uuid_row.uuid] = uuid_row + self.tables[uuid_row.table].append(table_row) + + def load_uuids_table(self, new_uuids): + return [self.uuid_table[uuid] for uuid in new_uuids] + + def load_table_data(self, uuid_rows): + return [self.tables[row.table][row.idx] for row in uuid_rows] + + def uuid_row_to_table_name(self, row): + return self.table_names[row.table] + + +class TestMockBackend(object): + def setup(self): + self.backend = MockBackend() + + @pytest.mark.parametrize(('obj_name', 'table_idx', 'idx'), + [('int', 4, 0)]) + def test_load_uuids_table(self, obj_name, table_idx, idx): + # TODO: add more examples to test + uuid = get_uuid(all_objects[obj_name]) + assert self.backend.load_uuids_table([uuid]) == \ + [(uuid, table_idx, idx)] + + def test_load_table_data(self): + pass + + def test_uuid_row_to_table_name(self): + pass + @pytest.mark.parametrize('obj', list(all_objects.values())) def test_has_uuid(obj): @@ -81,6 +158,18 @@ def test_get_uuid_error(): with pytest.raises(AttributeError): get_uuid(10) +def test_set_uuid(): + obj = MockUUIDObject(name="test", normal_attr=10) + fake_uuid = 100 + assert get_uuid(obj) != str(fake_uuid) + set_uuid(obj, fake_uuid) + assert get_uuid(obj) == str(fake_uuid) + +def test_encode_uuid(): + obj = MockUUIDObject(name="test", normal_attr=10) + set_uuid(obj, 100) + assert encode_uuid("UUID(100)") + @pytest.mark.parametrize('obj,included_objs', [ (all_objects['int'], []), (all_objects['str'], []), @@ -215,9 +304,7 @@ def test_uuids_from_table_row(): normal_attr="bar", uuid=str(toy_uuid_maker('row')), idx=1) - entries = [('dict_attr', 'uuid'), ('list_attr', 'list_uuid'), - ('obj_attr', 'uuid'), ('lazy_attr', 'lazy'), - ('normal_attr', 'str')] + entries = MockUUIDObject.schema uuids, lazy, deps = _uuids_from_table_row(row, entries) assert lazy == {str(toy_uuid_maker('nest'))} @@ -230,5 +317,43 @@ def test_uuids_from_table_row(): {str(toy_uuid_maker('int')), str(toy_uuid_maker('str')), str(toy_uuid_maker('obj')), str(toy_uuid_maker('nest'))} +def test_schema_find_uuids(): + test_objs = create_test_objects() + test_objs['lazy'] = test_objs['obj'] + schemas = { + 'int': [('normal_attr', 'int')], + 'str': [('normal_attr', 'str')], + 'lst': [('list_attr', 'list_uuid')], + 'obj': [('obj_attr', 'uuid')], + 'lazy': [('obj_attr', 'lazy')] + } + expected_newobjs = { + 'int': [], + 'str': [], + 'lst': [test_objs['int'], test_objs['str']], + 'obj': [test_objs['int']], + 'lazy': [test_objs['int']] + } + for (key, schema_entries) in schemas.items(): + obj = test_objs[key] + schema_find_uuids = SchemaFindUUIDs(schema_entries) + uuids, new_objs = schema_find_uuids(test_objs[key], cache_list=[]) + assert uuids == {get_uuid(obj): obj} + assert new_objs == expected_newobjs[key] + +def test_get_all_uuids_loading(): + pytest.skip() + +def test_get_all_uuids_loading_with_existing(): + pytest.skip() + +def test_dependency_dag(): + # check that we have the expected nodes, edges + pytest.skip() + +def test_dependency_dag_with_initial_dag(): + pytest.skip() + def test_get_reload_order(): + # check order, including no-dep orders pytest.skip() From 03e092eb34bf347e2069bcf4ad99a23e9297b320 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 31 Jan 2019 21:04:47 +0100 Subject: [PATCH 150/464] Steps toward Python 3 support in new storage --- .../experimental/storage/backend.py | 2 +- .../experimental/storage/class_info.py | 2 +- .../experimental/storage/class_lookup.py | 2 +- .../experimental/storage/ops_storage.py | 22 +++++++++---------- .../experimental/storage/serialization.py | 11 +++++----- .../storage/serialization_helpers.py | 15 ++++++++----- .../experimental/storage/snapshots.py | 4 ++-- .../experimental/storage/sql_backend.py | 17 +++++++------- .../experimental/storage/storage.py | 15 ++++++++----- .../experimental/storage/test_backend.py | 2 +- 10 files changed, 51 insertions(+), 41 deletions(-) diff --git a/openpathsampling/experimental/storage/backend.py b/openpathsampling/experimental/storage/backend.py index 5d1829013..636366b95 100644 --- a/openpathsampling/experimental/storage/backend.py +++ b/openpathsampling/experimental/storage/backend.py @@ -1,4 +1,4 @@ -from tools import group_by +from .tools import group_by def extract_backend_metadata(metadata, table, column): col_metadata = {} # default diff --git a/openpathsampling/experimental/storage/class_info.py b/openpathsampling/experimental/storage/class_info.py index e67349c61..573412cc1 100644 --- a/openpathsampling/experimental/storage/class_info.py +++ b/openpathsampling/experimental/storage/class_info.py @@ -1,6 +1,6 @@ import logging -import tools +from . import tools from .serialization import DefaultSerializer, DefaultDeserializer from .serialization_helpers import SchemaFindUUIDs, has_uuid from .serialization_helpers import encoded_uuid_re, get_reload_order diff --git a/openpathsampling/experimental/storage/class_lookup.py b/openpathsampling/experimental/storage/class_lookup.py index 6a4f6556c..d4cf59718 100644 --- a/openpathsampling/experimental/storage/class_lookup.py +++ b/openpathsampling/experimental/storage/class_lookup.py @@ -1,4 +1,4 @@ -import tools +from . import tools class ClassIsSomething(object): def __init__(self, check_method): diff --git a/openpathsampling/experimental/storage/ops_storage.py b/openpathsampling/experimental/storage/ops_storage.py index 21d3f7177..ab2a71c20 100644 --- a/openpathsampling/experimental/storage/ops_storage.py +++ b/openpathsampling/experimental/storage/ops_storage.py @@ -1,25 +1,25 @@ -import storage -import sql_backend +from . import storage +from . import sql_backend -from serialization_helpers import to_json_obj as serialize_sim -from serialization_helpers import from_json_obj as deserialize_sim -from serialization_helpers import import_class -from serialization_helpers import get_uuid, set_uuid -from serialization_helpers import default_find_uuids +from .serialization_helpers import to_json_obj as serialize_sim +from .serialization_helpers import from_json_obj as deserialize_sim +from .serialization_helpers import import_class +from .serialization_helpers import get_uuid, set_uuid +from .serialization_helpers import default_find_uuids import openpathsampling as paths from openpathsampling.netcdfplus import StorableObject -import tools +from . import tools -from serialization import ( +from .serialization import ( ToDictSerializer, DefaultSerializer, DefaultDeserializer, SimulationObjectSerializer ) -from class_info import ClassInfo, ClassInfoContainer +from .class_info import ClassInfo, ClassInfoContainer -import snapshots +from . import snapshots import logging logger = logging.getLogger(__name__) diff --git a/openpathsampling/experimental/storage/serialization.py b/openpathsampling/experimental/storage/serialization.py index 04cc5b660..d64e93200 100644 --- a/openpathsampling/experimental/storage/serialization.py +++ b/openpathsampling/experimental/storage/serialization.py @@ -1,9 +1,10 @@ import numpy as np -from my_types import parse_ndarray_type, ndarray_re -import serialization_helpers as serialization -from tools import is_mappable -import tools -import ujson as json +from .my_types import parse_ndarray_type, ndarray_re +from . import serialization_helpers as serialization +from .tools import is_mappable +from . import tools +# import ujson as json +import json import logging logger = logging.getLogger(__name__) diff --git a/openpathsampling/experimental/storage/serialization_helpers.py b/openpathsampling/experimental/storage/serialization_helpers.py index 5bf01c027..54eb48258 100644 --- a/openpathsampling/experimental/storage/serialization_helpers.py +++ b/openpathsampling/experimental/storage/serialization_helpers.py @@ -5,16 +5,19 @@ import numpy as np import networkx.algorithms.dag as nx_dag import collections -from tools import flatten_all, nested_update, group_by_function -from tools import is_iterable, is_mappable, is_numpy_iterable -import tools -from class_lookup import is_storage_iterable, is_storage_mappable +from .tools import flatten_all, nested_update, group_by_function +from .tools import is_iterable, is_mappable, is_numpy_iterable +from . import tools +from .class_lookup import is_storage_iterable, is_storage_mappable # UUID recognition and encoding ##################################### # Things in here might be modified for performance optimization. In # particular, it might be worth using a string representation of the UUID # whenever possible (dicts with string keys have a special fast-path) - +import sys +if sys.version_info > (3, ): + unicode = str + long = int def has_uuid(obj): return hasattr(obj, '__uuid__') @@ -144,7 +147,7 @@ def default_find_uuids(obj, cache_list): new_objects.extend(list(obj.values())) # elif is_iterable(obj) and not is_numpy_iterable(obj): elif is_storage_iterable(obj): - new_objects.extend(list(obj)) + new_objects.extend(obj) return uuids, new_objects # NOTE: this needs find everything, including if the iterable/mapping has a diff --git a/openpathsampling/experimental/storage/snapshots.py b/openpathsampling/experimental/storage/snapshots.py index a845eb96c..119d0d50e 100644 --- a/openpathsampling/experimental/storage/snapshots.py +++ b/openpathsampling/experimental/storage/snapshots.py @@ -1,6 +1,6 @@ -from class_info import ClassInfo +from .class_info import ClassInfo -from serialization_helpers import get_uuid +from .serialization_helpers import get_uuid def _nested_schema_entries(schema_entries, lazies): """Recursive algorithm to create all schema entries diff --git a/openpathsampling/experimental/storage/sql_backend.py b/openpathsampling/experimental/storage/sql_backend.py index 3c0bc0d01..5729cb4f8 100644 --- a/openpathsampling/experimental/storage/sql_backend.py +++ b/openpathsampling/experimental/storage/sql_backend.py @@ -1,14 +1,15 @@ import os import collections import sqlalchemy as sql -from storage import universal_schema -from tools import group_by, compare_sets -import tools -import ujson as json +from .storage import universal_schema +from .tools import group_by, compare_sets +from . import tools +# import ujson as json # ujson is no longer maintained +import json -from backend import extract_backend_metadata -from my_types import backend_registration_type -from serialization_helpers import import_class +from .backend import extract_backend_metadata +from .my_types import backend_registration_type +from .serialization_helpers import import_class import logging @@ -360,7 +361,7 @@ def database_schema(self): sel = schema_table.select() with self.engine.connect() as conn: schema_rows = list(conn.execute(schema_table.select())) - schema = {r.table: map(tuple, json.loads(r.schema)) + schema = {r.table: list(map(tuple, json.loads(r.schema))) for r in schema_rows} return schema diff --git a/openpathsampling/experimental/storage/storage.py b/openpathsampling/experimental/storage/storage.py index 73decd1e6..9299b164e 100644 --- a/openpathsampling/experimental/storage/storage.py +++ b/openpathsampling/experimental/storage/storage.py @@ -20,11 +20,16 @@ import collections import itertools -import tools -from serialization_helpers import get_uuid, get_all_uuids -from serialization_helpers import get_all_uuids_loading -from serialization_helpers import get_reload_order -from serialization import Serialization +from . import tools +from .serialization_helpers import get_uuid, get_all_uuids +from .serialization_helpers import get_all_uuids_loading +from .serialization_helpers import get_reload_order +from .serialization import Serialization + +try: + basestring +except NameError: + basestring = str logger = logging.getLogger(__name__) diff --git a/openpathsampling/experimental/storage/test_backend.py b/openpathsampling/experimental/storage/test_backend.py index 4f4e6ac91..2b23a10f8 100644 --- a/openpathsampling/experimental/storage/test_backend.py +++ b/openpathsampling/experimental/storage/test_backend.py @@ -1,4 +1,4 @@ -from backend import * +from .backend import * import pytest def test_extract_metadata(): From 85d11144c727a4ce7c5f1859cd85ff6567f5457f Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 31 Jan 2019 21:52:53 +0100 Subject: [PATCH 151/464] py3 fixes in tests --- .../experimental/storage/test_serialization_helpers.py | 4 ++-- openpathsampling/experimental/storage/test_sql_backend.py | 2 +- openpathsampling/experimental/storage/test_tools.py | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/openpathsampling/experimental/storage/test_serialization_helpers.py b/openpathsampling/experimental/storage/test_serialization_helpers.py index 8d8ac0859..99e01a27d 100644 --- a/openpathsampling/experimental/storage/test_serialization_helpers.py +++ b/openpathsampling/experimental/storage/test_serialization_helpers.py @@ -1,7 +1,7 @@ from collections import namedtuple import json -from serialization_helpers import * -from serialization_helpers import _uuids_from_table_row +from .serialization_helpers import * +from .serialization_helpers import _uuids_from_table_row import numpy as np import pytest diff --git a/openpathsampling/experimental/storage/test_sql_backend.py b/openpathsampling/experimental/storage/test_sql_backend.py index ddf35d850..756effd39 100644 --- a/openpathsampling/experimental/storage/test_sql_backend.py +++ b/openpathsampling/experimental/storage/test_sql_backend.py @@ -1,4 +1,4 @@ -from sql_backend import * +from .sql_backend import * import pytest diff --git a/openpathsampling/experimental/storage/test_tools.py b/openpathsampling/experimental/storage/test_tools.py index 242076272..4be130ddc 100644 --- a/openpathsampling/experimental/storage/test_tools.py +++ b/openpathsampling/experimental/storage/test_tools.py @@ -1,6 +1,6 @@ import pytest -from tools import * +from .tools import * def test_none_to_default(): assert none_to_default(option=None, default="foo") == "foo" From 5f39c7a591c0a1ae9cbe4b514edabff2d1e5e3fd Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Fri, 1 Feb 2019 13:26:16 +0100 Subject: [PATCH 152/464] fix collections.abc warnings; prepare for new json --- .../experimental/storage/ops_storage.py | 20 ++++++++++++++++--- .../experimental/storage/serialization.py | 5 ++++- .../experimental/storage/storage.py | 7 ++++--- 3 files changed, 25 insertions(+), 7 deletions(-) diff --git a/openpathsampling/experimental/storage/ops_storage.py b/openpathsampling/experimental/storage/ops_storage.py index ab2a71c20..0e18ce51b 100644 --- a/openpathsampling/experimental/storage/ops_storage.py +++ b/openpathsampling/experimental/storage/ops_storage.py @@ -1,7 +1,7 @@ from . import storage from . import sql_backend -from .serialization_helpers import to_json_obj as serialize_sim +from .serialization_helpers import to_json_obj as json_serializer from .serialization_helpers import from_json_obj as deserialize_sim from .serialization_helpers import import_class from .serialization_helpers import get_uuid, set_uuid @@ -12,6 +12,10 @@ from . import tools +# from .custom_json import ( + # default_serializer_deserializer, numpy_codec, bytes_codec +# ) + from .serialization import ( ToDictSerializer, DefaultSerializer, DefaultDeserializer, SimulationObjectSerializer @@ -23,6 +27,7 @@ import logging logger = logging.getLogger(__name__) +# this defines the schema for data objects ops_schema = { 'samples': [('trajectory', 'lazy'), ('ensemble', 'uuid'), ('replica', 'int')], @@ -41,8 +46,17 @@ 'simulation_objects': [('json', 'json_obj'), ('class_idx', 'int')] } +# this includes any sql-specific metadata ops_schema_sql_metadata = {} +# this defines the simulation object serializer for OPS +# json_serializer, json_deserializer = default_serializer_deserializer( + # [numpy_codec, bytes_codec] +# ) +ops_simobj_serializer = SimulationObjectSerializer( + json_encoder=json_serializer +) + class MoveChangeDeserializer(DefaultDeserializer): # in general, I think it would be better to reorg MoveChange to only be # one class, but this is aimed at fixing problems with reloading @@ -144,7 +158,7 @@ def add_missing_table_from_instance(self, lookup, obj): ops_class_info = OPSClassInfoContainer( default_info=ClassInfo('simulation_objects', cls=StorableObject, - serializer=SimulationObjectSerializer(), + serializer=ops_simobj_serializer, deserializer=deserialize_sim, find_uuids=default_find_uuids), schema=ops_schema, @@ -159,7 +173,7 @@ def add_missing_table_from_instance(self, lookup, obj): )), ClassInfo(table='steps', cls=paths.MCStep), ClassInfo(table='details', cls=paths.Details, - serializer=SimulationObjectSerializer(), + serializer=ops_simobj_serializer, deserializer=deserialize_sim), ] ) diff --git a/openpathsampling/experimental/storage/serialization.py b/openpathsampling/experimental/storage/serialization.py index d64e93200..2366a436a 100644 --- a/openpathsampling/experimental/storage/serialization.py +++ b/openpathsampling/experimental/storage/serialization.py @@ -163,9 +163,12 @@ def register_serialization(self, schema, class_info): class SimulationObjectSerializer(object): + def __init__(self, json_encoder): + self.json_encoder = json_encoder + def __call__(self, obj): return {'uuid': serialization.get_uuid(obj), - 'json': serialization.to_json_obj(obj)} + 'json': self.json_encoder(obj)} class DefaultDeserializer(object): default_handlers = { diff --git a/openpathsampling/experimental/storage/storage.py b/openpathsampling/experimental/storage/storage.py index 9299b164e..d7c3e6300 100644 --- a/openpathsampling/experimental/storage/storage.py +++ b/openpathsampling/experimental/storage/storage.py @@ -18,6 +18,7 @@ import logging import collections +from collections import abc import itertools from . import tools @@ -318,7 +319,7 @@ def __getattr__(self, attr): .format(self.__class__.__name__, attr)) -class MixedCache(collections.MutableMapping): +class MixedCache(abc.MutableMapping): """Combine a frozen cache and a mutable cache""" # TODO: benchmark with single dict instead; might be just as fast! def __init__(self, fixed_cache=None): @@ -358,7 +359,7 @@ def __iter__(self): return itertools.chain(self.fixed_cache, self.cache) -class StorageTable(collections.Sequence): +class StorageTable(abc.Sequence): # NOTE: currently you still need to be able to hold the whole table in # memory ... at least, with the SQL backend. def __init__(self, storage, table, cache=None): @@ -398,7 +399,7 @@ def save(self, obj): # things in the order of the mccycle number -- also, manage special # caching -class PseudoTable(collections.MutableSequence): +class PseudoTable(abc.MutableSequence): # TODO: use this in the main code """List of objects that can be retrieved by index or name. """ From 0e1e2cf60ad22d33f61d2735f121663002cda892 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Fri, 1 Feb 2019 14:27:33 +0100 Subject: [PATCH 153/464] Add custom JSON codecs (for numpy, etc) --- .../experimental/storage/custom_json.py | 117 ++++++++++++++++++ .../experimental/storage/test_custom_json.py | 92 ++++++++++++++ 2 files changed, 209 insertions(+) create mode 100644 openpathsampling/experimental/storage/custom_json.py create mode 100644 openpathsampling/experimental/storage/test_custom_json.py diff --git a/openpathsampling/experimental/storage/custom_json.py b/openpathsampling/experimental/storage/custom_json.py new file mode 100644 index 000000000..fe5010309 --- /dev/null +++ b/openpathsampling/experimental/storage/custom_json.py @@ -0,0 +1,117 @@ +import json +import functools +from collections import namedtuple +from .tools import none_to_default +from .serialization_helpers import has_uuid, replace_uuid, encode_uuid + +def default_serializer_deserializer(codecs): + encoder, decoder = custom_json_factory(codecs) + serializer = functools.partial(json.dumps, cls=encoder) + deserializer = functools.partial(json.loads, cls=decoder) + return serializer, deserializer + +def custom_json_factory(coding_methods): + """Create JSONEncoder/JSONDecoder for special types + """ + class CustomJSONEncoder(json.JSONEncoder): + def default(self, obj): + for coding_method in coding_methods: + result = coding_method.default(obj) + if result is not obj: + return result + return json.JSONEncoder.default(self, obj) + + class CustomJSONDecoder(json.JSONDecoder): + def __init__(self, *args, **kwargs): + super(CustomJSONDecoder, self).__init__( + object_hook=self.object_hook, *args, **kwargs + ) + + def object_hook(self, dct): + for coding_method in coding_methods: + result = coding_method.object_hook(dct) + if result is not dct: + return result + return dct + + return (CustomJSONEncoder, CustomJSONDecoder) + + +class JSONCodec(object): + """Custom JSON encoding and decoding for a specific class + + Parameters + ---------- + """ + def __init__(self, cls, to_dict, from_dict, is_my_obj=None, + is_my_dict=None): + self.cls = cls + self.to_dict = to_dict + self.from_dict = from_dict + self.is_my_obj = none_to_default(is_my_obj, self._is_my_obj) + self.is_my_dict = none_to_default(is_my_dict, self._is_my_dict) + + def _is_my_dict(self, dct): + is_custom = '__class__' in dct and '__module__' in dct + if is_custom: + return (dct['__class__'] == self.cls.__name__ + and dct['__module__'] == self.cls.__module__) + + def _is_my_obj(self, obj): + return isinstance(obj, self.cls) + + def default(self, obj): + if self.is_my_obj(obj): + dct = {} + if self.cls: + dct.update({'__class__': self.cls.__name__, + '__module__': self.cls.__module__}) + # we let the object override __class__ and __module__ if needed + dct.update(self.to_dict(obj)) + return dct + return obj + + def object_hook(self, dct): + if self.is_my_dict(dct): + obj = self.from_dict(dct) + return obj + return dct + +def bytes_to_dict(obj): + return {'bytes': obj.decode('latin-1')} + +def bytes_from_dict(dct): + return dct['bytes'].encode('latin-1') + +bytes_codec = JSONCodec(bytes, bytes_to_dict, bytes_from_dict) + + +import numpy as np +def numpy_to_dict(obj): + return {'shape': obj.shape, + 'dtype': str(obj.dtype), + 'string': obj.tostring()} + +def numpy_from_dict(dct): + arr = np.frombuffer(dct['string'], dtype=np.dtype(dct['dtype'])) + return arr.reshape(dct['shape']) + +numpy_codec = JSONCodec(np.ndarray, numpy_to_dict, numpy_from_dict) + + +def uuid_object_to_dict(obj): + dct = obj.to_dict() + dct = replace_uuid(dct, uuid_encoding=encode_uuid) + dct.update({'__class__': obj.__class__.__name__, + '__module__': obj.__class__.__module__}) + return dct + +# we ignore all dicts on reserialization because we need to use the custom +# restoration process for that; so is_my_dict returns False +uuid_object_codec = JSONCodec(cls=None, + to_dict=uuid_object_to_dict, + from_dict=lambda x: x, # never called + is_my_obj=has_uuid, + is_my_dict=lambda x: False) + +# TODO: simtk.unit.Quantity diff --git a/openpathsampling/experimental/storage/test_custom_json.py b/openpathsampling/experimental/storage/test_custom_json.py new file mode 100644 index 000000000..f44520243 --- /dev/null +++ b/openpathsampling/experimental/storage/test_custom_json.py @@ -0,0 +1,92 @@ +from .custom_json import * +import json +import pytest + +import numpy as np +from numpy import testing as npt +from simtk import unit + +from . import test_serialization_helpers + +class CustomJSONCodingTest(object): + def test_default(self): + for (obj, dct) in zip(self.objs, self.dcts): + assert self.codec.default(obj) == dct + + def test_object_hook(self): + for (obj, dct) in zip(self.objs, self.dcts): + assert self.codec.object_hook(dct) == obj + + def test_round_trip(self): + encoder, decoder = custom_json_factory([self.codec]) + for (obj, dct) in zip(self.objs, self.dcts): + json_str = json.dumps(obj, cls=encoder) + reconstructed = json.loads(json_str, cls=decoder) + assert reconstructed == obj + json_str_2 = json.dumps(obj, cls=encoder) + assert json_str == json_str_2 + +class TestNumpyCoding(CustomJSONCodingTest): + def setup(self): + self.codec = numpy_codec + self.objs = [np.array([[1.0, 0.0], [2.0, 3.2]]), + np.array([1, 0])] + shapes = [(2, 2), (2,)] + dtypes = [str(arr.dtype) for arr in self.objs] # may change by system? + string_reps = [arr.tobytes() for arr in self.objs] + self.dcts = [ + { + '__class__': 'ndarray', + '__module__': 'numpy', + 'shape': shape, + 'dtype': dtype, + 'string': string_rep + } + for shape, dtype, string_rep in zip(shapes, dtypes, string_reps) + ] + + def test_object_hook(self): + # to get custom equality testing for numpy + for (obj, dct) in zip(self.objs, self.dcts): + reconstructed = self.codec.object_hook(dct) + npt.assert_array_equal(reconstructed, obj) + + def test_round_trip(self): + encoder, decoder = custom_json_factory([self.codec, bytes_codec]) + for (obj, dct) in zip(self.objs, self.dcts): + json_str = json.dumps(obj, cls=encoder) + reconstructed = json.loads(json_str, cls=decoder) + npt.assert_array_equal(reconstructed, obj) + json_str_2 = json.dumps(obj, cls=encoder) + assert json_str == json_str_2 + +class TestUUIDCoding(object): + def setup(self): + self.codec = uuid_object_codec + all_objs = test_serialization_helpers.all_objects + self.objs = [all_objs['int'], all_objs['str']] + updates = [{'normal_attr': 5, 'name': 'int'}, + {'normal_attr': 'foo', 'name': 'str'}] + module = str(test_serialization_helpers) + self.dcts = [ + { + '__class__': 'MockUUIDObject', + '__module__': test_serialization_helpers.__name__, + 'normal_attr': None, + 'obj_attr': None, + 'list_attr': None, + 'dict_attr': None, + 'lazy_attr': None, + } + for _ in self.objs + ] + for dct, update in zip(self.dcts, updates): + dct.update(update) + + test_default = CustomJSONCodingTest.test_default + + def test_object_hook(self): + for (obj, dct) in zip(self.objs, self.dcts): + assert self.codec.object_hook(dct) == dct + + From f3bd2b6651876f07b20d51d0dd28a06338004d95 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Fri, 1 Feb 2019 14:52:28 +0100 Subject: [PATCH 154/464] Integrate custom JSON. All notebooks run now! --- .../experimental/storage/ops_storage.py | 17 +++++++++-------- .../storage/serialization_helpers.py | 7 +++++++ .../experimental/storage/storage.py | 4 ++-- 3 files changed, 18 insertions(+), 10 deletions(-) diff --git a/openpathsampling/experimental/storage/ops_storage.py b/openpathsampling/experimental/storage/ops_storage.py index 0e18ce51b..eee42ff01 100644 --- a/openpathsampling/experimental/storage/ops_storage.py +++ b/openpathsampling/experimental/storage/ops_storage.py @@ -12,9 +12,10 @@ from . import tools -# from .custom_json import ( - # default_serializer_deserializer, numpy_codec, bytes_codec -# ) +from .custom_json import ( + default_serializer_deserializer, numpy_codec, bytes_codec, + uuid_object_codec +) from .serialization import ( ToDictSerializer, DefaultSerializer, DefaultDeserializer, @@ -50,9 +51,9 @@ ops_schema_sql_metadata = {} # this defines the simulation object serializer for OPS -# json_serializer, json_deserializer = default_serializer_deserializer( - # [numpy_codec, bytes_codec] -# ) +json_serializer, json_deserializer = default_serializer_deserializer( + [numpy_codec, bytes_codec, uuid_object_codec] +) ops_simobj_serializer = SimulationObjectSerializer( json_encoder=json_serializer ) @@ -182,7 +183,7 @@ def add_missing_table_from_instance(self, lookup, obj): info.set_defaults(ops_schema) -# TODO: add more to these +# this will create the pseudo-tables used to find specific objects ops_simulation_classes = { 'volumes': paths.Volume, 'ensembles': paths.Ensemble, @@ -190,7 +191,7 @@ def add_missing_table_from_instance(self, lookup, obj): 'pathmovers': paths.PathMover, 'networks': paths.TransitionNetwork, 'cvs': paths.CollectiveVariable -} +} # TODO: add more to these class OPSStorage(storage.GeneralStorage): diff --git a/openpathsampling/experimental/storage/serialization_helpers.py b/openpathsampling/experimental/storage/serialization_helpers.py index 54eb48258..a466b249d 100644 --- a/openpathsampling/experimental/storage/serialization_helpers.py +++ b/openpathsampling/experimental/storage/serialization_helpers.py @@ -84,6 +84,8 @@ def unique_objects(object_list): return return_objects +# TODO: I think this has been made obsolete by the is_storage_iterable, etc +# classes... keep using function default_find_uuids class DefaultFindUUIDs(object): def __init__(self): self._mappable_classes = set() @@ -296,11 +298,16 @@ def to_dict_with_uuids(obj): return replace_uuid(dct, uuid_encoding=encode_uuid) +# this seems to not yet be obsolete, although I'm not sure why not -- it is +# used a few places, but I think those places will be removed +# (serialization.py) ... in principle, I think the custom json should be +# used for this def to_bare_json(obj): replaced = replace_uuid(obj, uuid_encoding=encode_uuid) return json.dumps(replaced) +# this should be made obsolete by custom_json stuff def to_json_obj(obj): dct = to_dict_with_uuids(obj) dct.update({'__module__': obj.__class__.__module__, diff --git a/openpathsampling/experimental/storage/storage.py b/openpathsampling/experimental/storage/storage.py index d7c3e6300..89444265f 100644 --- a/openpathsampling/experimental/storage/storage.py +++ b/openpathsampling/experimental/storage/storage.py @@ -381,9 +381,9 @@ def __getitem__(self, item): if item < 0: item += len(self) n_iter = 0 - row = backend_iterator.next() + row = next(backend_iterator) while row and n_iter < item: - row = backend_iterator.next() + row = next(backend_iterator) n_iter += 1 return self.storage.load([row.uuid])[0] From 44937ae59815d0969b0a5bfe7704fa435a601c30 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Fri, 1 Feb 2019 16:22:25 +0100 Subject: [PATCH 155/464] MAJOR performance improvements in get_all_uuids Now we just need to implement support for save_frequency, and this will actually be *very* fast. --- .../storage/serialization_helpers.py | 17 +++++++++++++---- .../experimental/storage/storage.py | 1 + 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/openpathsampling/experimental/storage/serialization_helpers.py b/openpathsampling/experimental/storage/serialization_helpers.py index a466b249d..035bca120 100644 --- a/openpathsampling/experimental/storage/serialization_helpers.py +++ b/openpathsampling/experimental/storage/serialization_helpers.py @@ -78,7 +78,8 @@ def unique_objects(object_list): if uuid not in found_uuids: found_uuids.update({uuid}) return_objects.append(obj) - else: + + elif is_storage_mappable(obj) or is_storage_iterable(obj): return_objects.append(obj) return return_objects @@ -129,6 +130,10 @@ def is_iterable(self, obj): # TODO: FIXME: add default_find_uuids as __call__ here; this should # really cut the time spent in is_iterable/is_mappable +def may_contain_uuids(obj): + return (has_uuid(obj) or is_storage_mappable(obj) + or is_storage_iterable(obj)) + def default_find_uuids(obj, cache_list): uuids = {} new_objects = [] @@ -141,12 +146,12 @@ def default_find_uuids(obj, cache_list): # print repr(obj) # print obj.to_dict().keys() uuids.update({obj_uuid: obj}) - new_objects.extend(list(obj.to_dict().values())) + new_objects.extend(obj.to_dict().values()) # mappables and iterables if is_storage_mappable(obj): - new_objects.extend([o for o in obj.keys() if has_uuid(o)]) - new_objects.extend(list(obj.values())) + new_objects.extend(o for o in obj.keys() if has_uuid(o)) + new_objects.extend(obj.values()) # elif is_iterable(obj) and not is_numpy_iterable(obj): elif is_storage_iterable(obj): new_objects.extend(obj) @@ -178,10 +183,13 @@ def get_all_uuids(initial_object, known_uuids=None, class_info=None): known_uuids = tools.none_to_default(known_uuids, {}) objects = [initial_object] uuids = {} + # found_objs = collections.Counter() while objects: new_objects = [] objects = unique_objects(objects) # print objects + # found_objs += collections.Counter(o.__class__.__name__) + # for o in objects) for obj in objects: # TODO: find a way to ensure that objects doesn't go over # duplicates here; see lprofile of default_find_uuids to see how @@ -202,6 +210,7 @@ def get_all_uuids(initial_object, known_uuids=None, class_info=None): new_objects.extend(new_objs) objects = new_objects + # print(found_objs) return uuids diff --git a/openpathsampling/experimental/storage/storage.py b/openpathsampling/experimental/storage/storage.py index 89444265f..8e25307d5 100644 --- a/openpathsampling/experimental/storage/storage.py +++ b/openpathsampling/experimental/storage/storage.py @@ -197,6 +197,7 @@ def save(self, obj): # special handling for simulation objects if table == 'simulation_objects': self._update_pseudo_tables(by_table[table]) + self._simulation_objects.update(by_table[table]) logger.debug("Storing complete") def load(self, input_uuids, force=False): From 9630030fb5a913056f058e514c67b166aa826dca Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Fri, 1 Feb 2019 18:51:41 +0100 Subject: [PATCH 156/464] Update to stash between save steps. This is FAST! --- .../experimental/storage/class_lookup.py | 12 ++++++++-- .../experimental/storage/ops_storage.py | 12 ++-------- .../experimental/storage/storage.py | 23 +++++++++++++++---- .../pathsimulators/path_sampling.py | 6 ++++- 4 files changed, 35 insertions(+), 18 deletions(-) diff --git a/openpathsampling/experimental/storage/class_lookup.py b/openpathsampling/experimental/storage/class_lookup.py index d4cf59718..800110a5c 100644 --- a/openpathsampling/experimental/storage/class_lookup.py +++ b/openpathsampling/experimental/storage/class_lookup.py @@ -1,6 +1,14 @@ from . import tools class ClassIsSomething(object): + """Method to test whether a class exhibits a given attribute. + + The idea here is that the class is expected to be immutable, so whether + or not it exhibits the desired attribute is something we can cache. For + example, a class will remain iterable, and looking up whether a given + object's class is in the set of classes known to be iterable is much + faster than using a function that checks whether it is iterable. + """ def __init__(self, check_method): self.check_method = check_method self._true_set = set() @@ -20,8 +28,8 @@ def __call__(self, obj): return result -_is_iterable_method = lambda obj: \ - tools.is_iterable(obj) and not tools.is_numpy_iterable(obj) +def _is_iterable_method(obj): + return tools.is_iterable(obj) and not tools.is_numpy_iterable(obj) is_storage_iterable = ClassIsSomething(_is_iterable_method) is_storage_mappable = ClassIsSomething(tools.is_mappable) diff --git a/openpathsampling/experimental/storage/ops_storage.py b/openpathsampling/experimental/storage/ops_storage.py index eee42ff01..4962e55ca 100644 --- a/openpathsampling/experimental/storage/ops_storage.py +++ b/openpathsampling/experimental/storage/ops_storage.py @@ -200,20 +200,12 @@ def __init__(self, backend, schema, class_info, fallbacks=None): super(OPSStorage, self).__init__(backend, schema, class_info, fallbacks) - self._stashed = [] self.n_snapshot_types = 0 - def stash(self, objects): - objects = tools.listify(objects) - self._stashed.extend(objects) - - def sync(self): - super(OPSStorage, self).save(self._stashed) + def sync_all(self): + self.save(self._stashed) self._stashed = [] - # TODO: we'll need to move the save method to be the stash to match the - # netcdfplus API - @classmethod def from_backend(cls, backend, schema=None, class_info=None, simulation_classes=None, fallbacks=None): diff --git a/openpathsampling/experimental/storage/storage.py b/openpathsampling/experimental/storage/storage.py index 8e25307d5..4e271511b 100644 --- a/openpathsampling/experimental/storage/storage.py +++ b/openpathsampling/experimental/storage/storage.py @@ -64,6 +64,7 @@ def __init__(self, backend, class_info, schema=None, if self.schema is None: self.schema = backend.schema self.initialize_with_mode(self.mode) + self._stashed = [] def initialize_with_mode(self, mode): if mode == 'r' or mode == 'a': @@ -73,6 +74,10 @@ def initialize_with_mode(self, mode): elif mode == 'w': self.register_schema(self.schema, class_info_list=[]) + def stash(self, objects): + objects = tools.listify(objects) + self._stashed.extend(objects) + def _load_missing_info_tables(self, table_to_class): missing_info_tables = [tbl for tbl in self.schema if tbl not in self.class_info.tables] @@ -132,21 +137,29 @@ def uuids_in_storage(self, uuid_list): return self.backend.load_uuids_table(uuids=uuid_list, ignore_missing=True) - def save(self, obj): + def save(self, obj_list): + if type(obj_list) is not list: + obj_list = [obj_list] # TODO: convert the whole .save process to something based on the # class_info.serialize method (enabling per-class approaches for # finding UUIDs, which will be a massive serialization speed-up # self.class_info.serialize(obj, storage=self) # check if obj is in DB (maybe this can be removed?) logger.debug("Starting save") - exists = self.backend.load_uuids_table(uuids=[get_uuid(obj)], + search_uuids = [get_uuid(obj) for obj in obj_list] + exists = self.backend.load_uuids_table(uuids=search_uuids, ignore_missing=True) - if exists: + + obj_list = [obj for obj in obj_list if obj not in exists] + + if not obj_list: return # find all UUIDs we need to save with this object logger.debug("Listing all objects to save") - uuids = get_all_uuids(obj, known_uuids=self.cache, - class_info=self.class_info) + uuids = {} + for obj in obj_list: + uuids.update(get_all_uuids(obj, known_uuids=self.cache, + class_info=self.class_info)) logger.debug("Checking if objects already exist in database") # remove any UUIDs that have already been saved exists = self.backend.load_uuids_table(uuids=list(uuids.keys()), diff --git a/openpathsampling/pathsimulators/path_sampling.py b/openpathsampling/pathsimulators/path_sampling.py index 1402a0919..271bc197f 100644 --- a/openpathsampling/pathsimulators/path_sampling.py +++ b/openpathsampling/pathsimulators/path_sampling.py @@ -109,7 +109,11 @@ def save_current_step(self): """ if self.storage is not None and self._current_step is not None: - self.storage.steps.save(self._current_step) + try: + # new storage does a stash here, not a save + self.storage.stash(self._current_step) + except AttributeError: + self.storage.steps.save(self._current_step) @classmethod def from_step(cls, storage, step, initialize=True): From 99734c6f0b70a67bf4d7766983e893e12276f475 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Fri, 8 Feb 2019 22:49:10 +0100 Subject: [PATCH 157/464] Additional test for custom_json --- .../experimental/storage/test_custom_json.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/openpathsampling/experimental/storage/test_custom_json.py b/openpathsampling/experimental/storage/test_custom_json.py index f44520243..a0d22db6d 100644 --- a/openpathsampling/experimental/storage/test_custom_json.py +++ b/openpathsampling/experimental/storage/test_custom_json.py @@ -26,6 +26,16 @@ def test_round_trip(self): json_str_2 = json.dumps(obj, cls=encoder) assert json_str == json_str_2 + def test_not_mine(self): + # test that the default behavior is obeyed + obj = {'test': 5} + json_str = '{"test": 5}' + encoder, decoder = custom_json_factory([self.codec]) + assert json.dumps(obj, cls=encoder) == json_str + assert json.loads(json_str, cls=decoder) == obj + + + class TestNumpyCoding(CustomJSONCodingTest): def setup(self): self.codec = numpy_codec @@ -60,6 +70,7 @@ def test_round_trip(self): json_str_2 = json.dumps(obj, cls=encoder) assert json_str == json_str_2 + class TestUUIDCoding(object): def setup(self): self.codec = uuid_object_codec @@ -85,6 +96,8 @@ def setup(self): test_default = CustomJSONCodingTest.test_default + test_not_mine = CustomJSONCodingTest.test_not_mine + def test_object_hook(self): for (obj, dct) in zip(self.objs, self.dcts): assert self.codec.object_hook(dct) == dct From 443352920abdd294bfc4a9419f538ee6f4a0d6db Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Sat, 9 Feb 2019 12:00:41 +0100 Subject: [PATCH 158/464] Move mocks into test_utils.py --- .../experimental/storage/class_info.py | 9 +- .../storage/serialization_helpers.py | 52 +------ .../experimental/storage/test_custom_json.py | 8 +- .../storage/test_serialization_helpers.py | 133 +--------------- .../experimental/storage/test_utils.py | 143 ++++++++++++++++++ 5 files changed, 157 insertions(+), 188 deletions(-) create mode 100644 openpathsampling/experimental/storage/test_utils.py diff --git a/openpathsampling/experimental/storage/class_info.py b/openpathsampling/experimental/storage/class_info.py index 573412cc1..c0e93f9ef 100644 --- a/openpathsampling/experimental/storage/class_info.py +++ b/openpathsampling/experimental/storage/class_info.py @@ -8,10 +8,6 @@ from .my_types import uuid_types, uuid_list_types, json_obj_types import json -# try: - # import ujson as json -# except ImportError: - # import json logger = logging.getLogger(__name__) @@ -31,6 +27,9 @@ class ClassInfo(object): deserializer) lookup_result : any the result when ClassInfoContainer looks up objects in this table + find_uuids : callable + a shortcut for finding objects with UUIDs contained within this + object """ def __init__(self, table, cls, serializer=None, deserializer=None, lookup_result=None, find_uuids=None): @@ -58,7 +57,7 @@ def set_defaults(self, schema): ) - def __repr__(self): + def __repr__(self): # pragma: no cover return ("ClassInfo(table=" + self.table + ", cls=" + str(self.cls) + ", lookup_result=" + str(self.lookup_result) + ", find_uuids=" + str(self.find_uuids) + ")") diff --git a/openpathsampling/experimental/storage/serialization_helpers.py b/openpathsampling/experimental/storage/serialization_helpers.py index 035bca120..29d2419b1 100644 --- a/openpathsampling/experimental/storage/serialization_helpers.py +++ b/openpathsampling/experimental/storage/serialization_helpers.py @@ -85,54 +85,10 @@ def unique_objects(object_list): return return_objects -# TODO: I think this has been made obsolete by the is_storage_iterable, etc -# classes... keep using function default_find_uuids -class DefaultFindUUIDs(object): - def __init__(self): - self._mappable_classes = set() - self._non_mappable_classes = set() - self._iterable_classes = set() - self._non_iterable_classes = set() - - @staticmethod - def _get_with_cache(obj, key, true_set, false_set, check_method): - # TODO: this is probably best moved to utils; I think we may use it - # elsewhere as well - if key in false_set: - return False - elif key in true_set: - return True - else: - result = check_method(obj) - set_for_obj = {True: true_set, False: false_set}[result] - set_for_obj.add(key) - return result - - def is_mappable(self, obj): - return self._get_with_cache( - obj=obj, - key=obj.__class__, - true_set=self._mappable_classes, - false_set=self._non_mappable_classes, - check_method=is_mappable - ) - - def is_iterable(self, obj): - return self._get_with_cache( - obj=obj, - key=obj.__class__, - true_set=self._iterable_classes, - false_set=self._non_iterable_classes, - check_method=lambda obj: \ - is_iterable(obj) and not is_numpy_iterable(obj) - ) - - # TODO: FIXME: add default_find_uuids as __call__ here; this should - # really cut the time spent in is_iterable/is_mappable - -def may_contain_uuids(obj): - return (has_uuid(obj) or is_storage_mappable(obj) - or is_storage_iterable(obj)) +# this does not appear to be used +# def may_contain_uuids(obj): + # return (has_uuid(obj) or is_storage_mappable(obj) + # or is_storage_iterable(obj)) def default_find_uuids(obj, cache_list): uuids = {} diff --git a/openpathsampling/experimental/storage/test_custom_json.py b/openpathsampling/experimental/storage/test_custom_json.py index a0d22db6d..62e454f31 100644 --- a/openpathsampling/experimental/storage/test_custom_json.py +++ b/openpathsampling/experimental/storage/test_custom_json.py @@ -6,7 +6,7 @@ from numpy import testing as npt from simtk import unit -from . import test_serialization_helpers +from . import test_utils class CustomJSONCodingTest(object): def test_default(self): @@ -74,15 +74,15 @@ def test_round_trip(self): class TestUUIDCoding(object): def setup(self): self.codec = uuid_object_codec - all_objs = test_serialization_helpers.all_objects + all_objs = test_utils.all_objects self.objs = [all_objs['int'], all_objs['str']] updates = [{'normal_attr': 5, 'name': 'int'}, {'normal_attr': 'foo', 'name': 'str'}] - module = str(test_serialization_helpers) + module = str(test_utils) self.dcts = [ { '__class__': 'MockUUIDObject', - '__module__': test_serialization_helpers.__name__, + '__module__': test_utils.__name__, 'normal_attr': None, 'obj_attr': None, 'list_attr': None, diff --git a/openpathsampling/experimental/storage/test_serialization_helpers.py b/openpathsampling/experimental/storage/test_serialization_helpers.py index 99e01a27d..7be58da8a 100644 --- a/openpathsampling/experimental/storage/test_serialization_helpers.py +++ b/openpathsampling/experimental/storage/test_serialization_helpers.py @@ -5,140 +5,11 @@ import numpy as np import pytest -def toy_uuid_maker(name): - return int(hash(name)) - -def uuid_encode(name): - return "UUID(" + str(toy_uuid_maker(name)) + ")" - -class MockUUIDObject(object): - attr_list = ['name', 'normal_attr', 'obj_attr', 'list_attr', - 'dict_attr', 'lazy_attr'] - schema = [('dict_attr', 'uuid'), ('list_attr', 'list_uuid'), - ('obj_attr', 'uuid'), ('lazy_attr', 'lazy'), - ('normal_attr', 'str')] - def __init__(self, name, normal_attr=None, obj_attr=None, - list_attr=None, dict_attr=None, lazy_attr=None): - self.name = name - self.__uuid__ = toy_uuid_maker(name) - self.dict_attr = dict_attr - self.list_attr = list_attr - self.obj_attr = obj_attr - self.normal_attr = normal_attr - self.lazy_attr = lazy_attr - - def to_dict(self): - return { - 'name': self.name, - 'obj_attr': self.obj_attr, - 'list_attr': self.list_attr, - 'dict_attr': self.dict_attr, - 'normal_attr': self.normal_attr, - 'lazy_attr': self.lazy_attr - } - - @classmethod - def from_dict(cls, dct): - # set UUID after - return cls(name=None, **dct) - -def create_test_objects(): - obj_int = MockUUIDObject(name='int', normal_attr=5) - obj_str = MockUUIDObject(name='str', normal_attr='foo') - obj_np = MockUUIDObject(name='np', normal_attr=np.array([1.0, 2.0])) - obj_obj = MockUUIDObject(name='obj', obj_attr=obj_int) - obj_lst = MockUUIDObject(name='lst', list_attr=[obj_int, obj_str]) - obj_dct = MockUUIDObject(name='dct', dict_attr={'foo': obj_str, - obj_int: obj_np}) - obj_nest = MockUUIDObject( - name='nest', - dict_attr={'bar': [obj_str, {obj_int: [obj_np, obj_obj]}]} - ) - obj_repeat = MockUUIDObject('rep', list_attr=[obj_int, [obj_int]]) - all_objects = { - obj.name : obj - for obj in [obj_int, obj_str, obj_np, obj_obj, obj_lst, obj_dct, - obj_nest, obj_repeat] - } - return all_objects +from .test_utils import (toy_uuid_maker, uuid_encode, MockUUIDObject, + MockBackend, create_test_objects) all_objects = create_test_objects() -class MockBackend(object): - def _table_data_for_object(self, obj, table_name, **kwargs): - schema_entries = self.schema[table_name] - row_type = self.row_types[table_name] - uuid = get_uuid(obj) - table_idx = self.table_names.index(table_name) - idx = len(self.tables[table_idx]) - row_kwargs = {'uuid': uuid, 'idx': idx} - row_kwargs.update(kwargs) - row = row_type(**row_kwargs) - uuid_row = self.row_types['uuids'](uuid=uuid, table=table_idx, - idx=idx) - return uuid_row, row - - def __init__(self): - self.schema = { - 'objs': [('obj_attr', 'uuid')], - 'ints': [('normal_attr', 'int')], - 'sims': [('json', 'json_obj'), ('class_idx', 'int')] - } - self.row_types = { - 'uuids': namedtuple('UUIDsRow', ['uuid', 'table', 'idx']), - 'objs': namedtuple('ObjRow', ['uuid', 'idx', 'obj_attr']), - 'ints': namedtuple('IntRow', ['uuid', 'idx', 'normal_attr']), - 'sims': namedtuple('SimRow', - ['uuid', 'idx', 'json', 'class_idx']), - 'clss': namedtuple('ClsRow', ['idx', 'module', 'cls']) - } - self.obj_to_table = { - 'int': 'ints', - 'obj': 'objs', - 'dct': 'sims', - 'str': 'sims' - } - self.table_names = ['uuids', 'clss', 'sims', 'objs', 'ints'] - - self.uuid_table = {} - self.tables = [[] for table in self.table_names] - uuid_row, table_row = self._table_data_for_object( - obj=all_objects['int'], - table_name='ints', - normal_attr=5 - ) - self.uuid_table[uuid_row.uuid] = uuid_row - self.tables[uuid_row.table].append(table_row) - - def load_uuids_table(self, new_uuids): - return [self.uuid_table[uuid] for uuid in new_uuids] - - def load_table_data(self, uuid_rows): - return [self.tables[row.table][row.idx] for row in uuid_rows] - - def uuid_row_to_table_name(self, row): - return self.table_names[row.table] - - -class TestMockBackend(object): - def setup(self): - self.backend = MockBackend() - - @pytest.mark.parametrize(('obj_name', 'table_idx', 'idx'), - [('int', 4, 0)]) - def test_load_uuids_table(self, obj_name, table_idx, idx): - # TODO: add more examples to test - uuid = get_uuid(all_objects[obj_name]) - assert self.backend.load_uuids_table([uuid]) == \ - [(uuid, table_idx, idx)] - - def test_load_table_data(self): - pass - - def test_uuid_row_to_table_name(self): - pass - - @pytest.mark.parametrize('obj', list(all_objects.values())) def test_has_uuid(obj): assert has_uuid(obj) diff --git a/openpathsampling/experimental/storage/test_utils.py b/openpathsampling/experimental/storage/test_utils.py new file mode 100644 index 000000000..b625929dd --- /dev/null +++ b/openpathsampling/experimental/storage/test_utils.py @@ -0,0 +1,143 @@ +"""Utilities for tests: mocks, etc. +""" +from collections import namedtuple +import pytest +import numpy as np + +from .serialization_helpers import get_uuid + + +def toy_uuid_maker(name): + return int(hash(name)) + +def uuid_encode(name): + return "UUID(" + str(toy_uuid_maker(name)) + ")" + +class MockUUIDObject(object): + attr_list = ['name', 'normal_attr', 'obj_attr', 'list_attr', + 'dict_attr', 'lazy_attr'] + schema = [('dict_attr', 'uuid'), ('list_attr', 'list_uuid'), + ('obj_attr', 'uuid'), ('lazy_attr', 'lazy'), + ('normal_attr', 'str')] + def __init__(self, name, normal_attr=None, obj_attr=None, + list_attr=None, dict_attr=None, lazy_attr=None): + self.name = name + self.__uuid__ = toy_uuid_maker(name) + self.dict_attr = dict_attr + self.list_attr = list_attr + self.obj_attr = obj_attr + self.normal_attr = normal_attr + self.lazy_attr = lazy_attr + + def to_dict(self): + return { + 'name': self.name, + 'obj_attr': self.obj_attr, + 'list_attr': self.list_attr, + 'dict_attr': self.dict_attr, + 'normal_attr': self.normal_attr, + 'lazy_attr': self.lazy_attr + } + + @classmethod + def from_dict(cls, dct): + # set UUID after + return cls(name=None, **dct) + + +class MockBackend(object): + def _table_data_for_object(self, obj, table_name, **kwargs): + schema_entries = self.schema[table_name] + row_type = self.row_types[table_name] + uuid = get_uuid(obj) + table_idx = self.table_names.index(table_name) + idx = len(self.tables[table_idx]) + row_kwargs = {'uuid': uuid, 'idx': idx} + row_kwargs.update(kwargs) + row = row_type(**row_kwargs) + uuid_row = self.row_types['uuids'](uuid=uuid, table=table_idx, + idx=idx) + return uuid_row, row + + def __init__(self): + self.schema = { + 'objs': [('obj_attr', 'uuid')], + 'ints': [('normal_attr', 'int')], + 'sims': [('json', 'json_obj'), ('class_idx', 'int')] + } + self.row_types = { + 'uuids': namedtuple('UUIDsRow', ['uuid', 'table', 'idx']), + 'objs': namedtuple('ObjRow', ['uuid', 'idx', 'obj_attr']), + 'ints': namedtuple('IntRow', ['uuid', 'idx', 'normal_attr']), + 'sims': namedtuple('SimRow', + ['uuid', 'idx', 'json', 'class_idx']), + 'clss': namedtuple('ClsRow', ['idx', 'module', 'cls']) + } + self.obj_to_table = { + 'int': 'ints', + 'obj': 'objs', + 'dct': 'sims', + 'str': 'sims' + } + self.table_names = ['uuids', 'clss', 'sims', 'objs', 'ints'] + + self.uuid_table = {} + self.tables = [[] for table in self.table_names] + uuid_row, table_row = self._table_data_for_object( + obj=all_objects['int'], + table_name='ints', + normal_attr=5 + ) + self.uuid_table[uuid_row.uuid] = uuid_row + self.tables[uuid_row.table].append(table_row) + + def load_uuids_table(self, new_uuids): + return [self.uuid_table[uuid] for uuid in new_uuids] + + def load_table_data(self, uuid_rows): + return [self.tables[row.table][row.idx] for row in uuid_rows] + + def uuid_row_to_table_name(self, row): + return self.table_names[row.table] + +def create_test_objects(): + obj_int = MockUUIDObject(name='int', normal_attr=5) + obj_str = MockUUIDObject(name='str', normal_attr='foo') + obj_np = MockUUIDObject(name='np', normal_attr=np.array([1.0, 2.0])) + obj_obj = MockUUIDObject(name='obj', obj_attr=obj_int) + obj_lst = MockUUIDObject(name='lst', list_attr=[obj_int, obj_str]) + obj_dct = MockUUIDObject(name='dct', dict_attr={'foo': obj_str, + obj_int: obj_np}) + obj_nest = MockUUIDObject( + name='nest', + dict_attr={'bar': [obj_str, {obj_int: [obj_np, obj_obj]}]} + ) + obj_repeat = MockUUIDObject('rep', list_attr=[obj_int, [obj_int]]) + all_objects = { + obj.name : obj + for obj in [obj_int, obj_str, obj_np, obj_obj, obj_lst, obj_dct, + obj_nest, obj_repeat] + } + return all_objects + + +all_objects = create_test_objects() + + +class TestMockBackend(object): + def setup(self): + self.backend = MockBackend() + + @pytest.mark.parametrize(('obj_name', 'table_idx', 'idx'), + [('int', 4, 0)]) + def test_load_uuids_table(self, obj_name, table_idx, idx): + # TODO: add more examples to test + uuid = get_uuid(all_objects[obj_name]) + assert self.backend.load_uuids_table([uuid]) == \ + [(uuid, table_idx, idx)] + + def test_load_table_data(self): + pass + + def test_uuid_row_to_table_name(self): + pass From 0f3736c1b11c3a558271062d72b551053c48c715 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Tue, 12 Feb 2019 11:41:13 +0100 Subject: [PATCH 159/464] Change "Default" Ser/Deser to "Schema" clearer name --- openpathsampling/experimental/storage/class_info.py | 6 +++--- openpathsampling/experimental/storage/ops_storage.py | 4 ++-- openpathsampling/experimental/storage/serialization.py | 8 +++++--- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/openpathsampling/experimental/storage/class_info.py b/openpathsampling/experimental/storage/class_info.py index c0e93f9ef..51cce9d3e 100644 --- a/openpathsampling/experimental/storage/class_info.py +++ b/openpathsampling/experimental/storage/class_info.py @@ -1,7 +1,7 @@ import logging from . import tools -from .serialization import DefaultSerializer, DefaultDeserializer +from .serialization import SchemaSerializer, SchemaDeserializer from .serialization_helpers import SchemaFindUUIDs, has_uuid from .serialization_helpers import encoded_uuid_re, get_reload_order from .serialization_helpers import get_all_uuids @@ -45,11 +45,11 @@ def __init__(self, table, cls, serializer=None, deserializer=None, def set_defaults(self, schema): self.serializer = tools.none_to_default( self.serializer, - DefaultSerializer(schema, self.table, self.cls) + SchemaSerializer(schema, self.table, self.cls) ) self.deserializer = tools.none_to_default( self.deserializer, - DefaultDeserializer(schema, self.table, self.cls) + SchemaDeserializer(schema, self.table, self.cls) ) self.find_uuids = tools.none_to_default( self.find_uuids, diff --git a/openpathsampling/experimental/storage/ops_storage.py b/openpathsampling/experimental/storage/ops_storage.py index 4962e55ca..5ab0625a9 100644 --- a/openpathsampling/experimental/storage/ops_storage.py +++ b/openpathsampling/experimental/storage/ops_storage.py @@ -18,7 +18,7 @@ ) from .serialization import ( - ToDictSerializer, DefaultSerializer, DefaultDeserializer, + ToDictSerializer, SchemaSerializer, SchemaDeserializer, SimulationObjectSerializer ) @@ -58,7 +58,7 @@ json_encoder=json_serializer ) -class MoveChangeDeserializer(DefaultDeserializer): +class MoveChangeDeserializer(SchemaDeserializer): # in general, I think it would be better to reorg MoveChange to only be # one class, but this is aimed at fixing problems with reloading # MoveChange objects diff --git a/openpathsampling/experimental/storage/serialization.py b/openpathsampling/experimental/storage/serialization.py index 2366a436a..a44fc4888 100644 --- a/openpathsampling/experimental/storage/serialization.py +++ b/openpathsampling/experimental/storage/serialization.py @@ -170,7 +170,7 @@ def __call__(self, obj): return {'uuid': serialization.get_uuid(obj), 'json': self.json_encoder(obj)} -class DefaultDeserializer(object): +class SchemaDeserializer(object): default_handlers = { 'lazy': serialization.search_caches, 'uuid': serialization.search_caches, @@ -184,6 +184,7 @@ def __init__(self, schema, table, cls): self.cls = cls self.attribute_handlers = self.init_attribute_handlers() + # TODO: move this external @staticmethod def make_numpy_handler(dtype, shape): return lambda data, _: np.fromstring(data, dtype=dtype).reshape(shape) @@ -218,7 +219,7 @@ def __call__(self, uuid, table_dct, cache_list): return obj -class ToDictSerializer(DefaultDeserializer): +class ToDictSerializer(SchemaDeserializer): default_handlers = { 'uuid': serialization.get_uuid, 'lazy': serialization.get_uuid, @@ -227,6 +228,7 @@ class ToDictSerializer(DefaultDeserializer): 'list_uuid': serialization.to_bare_json } + # TODO: move this external @staticmethod def make_numpy_handler(dtype, shape): return lambda arr: arr.astype(dtype=dtype, copy=False).tostring() @@ -240,7 +242,7 @@ def __call__(self, obj): dct.update({'uuid': serialization.get_uuid(obj)}) return dct -class DefaultSerializer(ToDictSerializer): +class SchemaSerializer(ToDictSerializer): def __call__(self, obj): dct = {attr: getattr(obj, attr) for (attr, type_name) in self.entries} From f5af6d9ca6a0cc6bc4b68a3e9b0179fd8503efbc Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Tue, 12 Feb 2019 14:51:55 +0100 Subject: [PATCH 160/464] Replace old Serialization obj with ProxyObjFactory --- .../experimental/storage/serialization.py | 135 +++++++++--------- .../experimental/storage/storage.py | 11 +- 2 files changed, 75 insertions(+), 71 deletions(-) diff --git a/openpathsampling/experimental/storage/serialization.py b/openpathsampling/experimental/storage/serialization.py index a44fc4888..adf164778 100644 --- a/openpathsampling/experimental/storage/serialization.py +++ b/openpathsampling/experimental/storage/serialization.py @@ -73,9 +73,9 @@ def __repr__(self): class ProxyObjectFactory(object): # TODO: I think this should replace some of the similar stuff in the # Serialization object below - def __init__(self, storage, class_info): + def __init__(self, storage, serialization_schema): self.storage = storage - self.class_info = class_info + self.serialization_schema = serialization_schema self.lazy_classes = {} def make_lazy(self, cls, uuid): @@ -91,75 +91,75 @@ def make_all_lazies(self, lazies): for (table, lazy_uuid_rows) in lazies.items(): logger.debug("Making {} lazy proxies for objects in table '{}'"\ .format(len(lazy_uuid_rows), table)) - cls = self.table_to_class[table] + cls = self.serialization_schema.table_to_info[table].cls for row in lazy_uuid_rows: all_lazies[row.uuid] = self.make_lazy(cls, row.uuid) return all_lazies -class Serialization(object): - builtin_types = ['int', 'float', 'str'] - uuid_types = ['uuid', 'list_uuid', 'lazy'] - # TODO: this whole object is deprecated; need better way to handle lazy - # proxies; serialization registration may move to the ClassInfoContainer - - def __init__(self, storage): - self.storage = storage - self.cache = self.storage.cache - self.attribute_serializers = { - 'uuid': serialization.get_uuid, - 'lazy': serialization.get_uuid, - 'json': serialization.to_bare_json, - 'list_uuid': serialization.to_bare_json - } - - self.attribute_deserializers = { - 'uuid': serialization.from_json_obj, - 'lazy': self.make_lazy, - 'json': None, - 'list_uuid': None - } - self.schema = {} - self.table_to_class = {} - self._ser_dict = {} - self._deser_dict = {} - self._lazy_classes = {} - - def make_lazy(self, cls, uuid): - if cls not in self._lazy_classes: - self._lazy_classes[cls] = make_lazy_class(cls) - return self._lazy_classes[cls](uuid=uuid, - class_=cls, - storage=self.storage) - - def make_all_lazies(self, lazies): - # lazies is dict of {table_name: list_of_lazy_uuid_rows} - all_lazies = {} - for (table, lazy_uuid_rows) in lazies.items(): - logger.debug("Making {} lazy proxies for objects in table '{}'"\ - .format(len(lazy_uuid_rows), table)) - cls = self.table_to_class[table] - for row in lazy_uuid_rows: - all_lazies[row.uuid] = self.make_lazy(cls, row.uuid) - return all_lazies - - - def register_serialization(self, schema, class_info): - for table in schema: - if class_info[table].serializer: - self._ser_dict[table] = class_info[table].serializer - else: - self._ser_dict[table] = \ - self.default_serializer_dict(schema[table]) - - if class_info[table].deserializer: - self._deser_dict[table] = class_info[table].deserializer - else: - self._deser_dict[table] = \ - self.default_deserializer_dict(schema[table]) - - self.table_to_class.update({table: class_info[table].cls}) - self.schema.update(schema) +# class Serialization(object): + # builtin_types = ['int', 'float', 'str'] + # uuid_types = ['uuid', 'list_uuid', 'lazy'] + # # TODO: this whole object is deprecated; need better way to handle lazy + # # proxies; serialization registration may move to the ClassInfoContainer + + # def __init__(self, storage): + # self.storage = storage + # self.cache = self.storage.cache + # self.attribute_serializers = { + # 'uuid': serialization.get_uuid, + # 'lazy': serialization.get_uuid, + # 'json': serialization.to_bare_json, + # 'list_uuid': serialization.to_bare_json + # } + + # self.attribute_deserializers = { + # 'uuid': serialization.from_json_obj, + # 'lazy': self.make_lazy, + # 'json': None, + # 'list_uuid': None + # } + # self.schema = {} + # self.table_to_class = {} + # self._ser_dict = {} + # self._deser_dict = {} + # self._lazy_classes = {} + + # def make_lazy(self, cls, uuid): + # if cls not in self._lazy_classes: + # self._lazy_classes[cls] = make_lazy_class(cls) + # return self._lazy_classes[cls](uuid=uuid, + # class_=cls, + # storage=self.storage) + + # def make_all_lazies(self, lazies): + # # lazies is dict of {table_name: list_of_lazy_uuid_rows} + # all_lazies = {} + # for (table, lazy_uuid_rows) in lazies.items(): + # logger.debug("Making {} lazy proxies for objects in table '{}'"\ + # .format(len(lazy_uuid_rows), table)) + # cls = self.table_to_class[table] + # for row in lazy_uuid_rows: + # all_lazies[row.uuid] = self.make_lazy(cls, row.uuid) + # return all_lazies + + + # def register_serialization(self, schema, class_info): + # for table in schema: + # if class_info[table].serializer: + # self._ser_dict[table] = class_info[table].serializer + # else: + # self._ser_dict[table] = \ + # self.default_serializer_dict(schema[table]) + + # if class_info[table].deserializer: + # self._deser_dict[table] = class_info[table].deserializer + # else: + # self._deser_dict[table] = \ + # self.default_deserializer_dict(schema[table]) + + # self.table_to_class.update({table: class_info[table].cls}) + # self.schema.update(schema) class SimulationObjectSerializer(object): @@ -228,7 +228,8 @@ class ToDictSerializer(SchemaDeserializer): 'list_uuid': serialization.to_bare_json } - # TODO: move this external + # TODO: move this external; that will allow us to remove this class + # (use it as input to SchemaSerializer or a class factory for that) @staticmethod def make_numpy_handler(dtype, shape): return lambda arr: arr.astype(dtype=dtype, copy=False).tostring() diff --git a/openpathsampling/experimental/storage/storage.py b/openpathsampling/experimental/storage/storage.py index 4e271511b..19e07526b 100644 --- a/openpathsampling/experimental/storage/storage.py +++ b/openpathsampling/experimental/storage/storage.py @@ -25,7 +25,8 @@ from .serialization_helpers import get_uuid, get_all_uuids from .serialization_helpers import get_all_uuids_loading from .serialization_helpers import get_reload_order -from .serialization import Serialization +# from .serialization import Serialization +from .serialization import ProxyObjectFactory try: basestring @@ -60,7 +61,8 @@ def __init__(self, backend, class_info, schema=None, self._storage_tables = {} # stores .steps, .snapshots self._simulation_objects = self._cache_simulation_objects() self.cache = MixedCache(self._simulation_objects) - self.serialization = Serialization(self) + # self.serialization = Serialization(self) + self.proxy_factory = ProxyObjectFactory(self, self.class_info) if self.schema is None: self.schema = backend.schema self.initialize_with_mode(self.mode) @@ -118,7 +120,7 @@ def register_schema(self, schema, class_info_list, self.schema.update(schema) for table in self.schema: self._storage_tables[table] = StorageTable(self, table) - self.serialization.register_serialization(schema, self.class_info) + # self.serialization.register_serialization(schema, self.class_info) def register_from_instance(self, lookup, obj): @@ -250,7 +252,8 @@ def load(self, input_uuids, force=False): self.backend.uuid_row_to_table_name) # TODO: replace this with something not based on Serialization # object - new_uuids = self.serialization.make_all_lazies(lazies) + # new_uuids = self.serialization.make_all_lazies(lazies) + new_uuids = self.proxy_factory.make_all_lazies(lazies) # get order and deserialize uuid_to_table_row = {r.uuid: r for r in to_load} From 4d7e5719df1b2cf7f7d4e37012ce32cc1f432285 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Tue, 19 Feb 2019 22:00:22 +0100 Subject: [PATCH 161/464] Simplify SerializationSchema.__get_item__ Now uses `info_from_instance`; reduce repeated code --- .../experimental/storage/class_info.py | 32 ++++++++++++------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/openpathsampling/experimental/storage/class_info.py b/openpathsampling/experimental/storage/class_info.py index 51cce9d3e..707a9d22a 100644 --- a/openpathsampling/experimental/storage/class_info.py +++ b/openpathsampling/experimental/storage/class_info.py @@ -138,20 +138,26 @@ def get_special(self, item): return self.missing_table def __getitem__(self, item): - # TODO: base this off of info_from_instance if tools.is_string(item): return self.table_to_info[item] - elif self.is_special(item): - return self.get_special(item) else: - lookup = self.lookup_key(item) - try: - return self.lookup_to_info[lookup] - except KeyError as e: - if isinstance(item, self.default_info.cls): - return self.default_info - else: - raise e + info = self.info_from_instance(item) + if info is None: + raise KeyError("'%s'" % repr(item)) + else: + return info + + # elif self.is_special(item): + # return self.get_special(item) + # else: + # lookup = self.lookup_key(item) + # try: + # return self.lookup_to_info[lookup] + # except KeyError as e: + # if isinstance(item, self.default_info.cls): + # return self.default_info + # else: + # raise e def info_from_instance(self, item): if not has_uuid(item): @@ -170,6 +176,7 @@ def info_from_instance(self, item): def add_missing_table_from_instance(self, lookup, obj): raise NotImplementedError("No special types implemented") + # TODO: this is currently done in storage; should it be here? def _missing_table_update(self, by_table): missing = by_table.pop('__missing__') logger.info("Identifying tables for %d objects of unknown " @@ -308,6 +315,9 @@ def _missing_table_update(self, by_table): # known_uuids) + # NOTE: this doesn't seem to be used yet.... should we move + # functionality here or keep in storage.deserialize_uuids? + # right now, leaning toward storage.... def reconstruct_uuids(self, ordered_uuids, uuid_to_table, to_load, known_uuids=None, new_uuids=None): """ From 3aa8fd193348e83fab81a244e4b6f3c04076cadf Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 14 Mar 2019 11:10:46 +0100 Subject: [PATCH 162/464] update gmx engine for Py3 --- openpathsampling/engines/gromacs/__init__.py | 4 +- openpathsampling/engines/gromacs/engine.py | 6 ++- .../engines/gromacs/features/__init__.py | 8 ++-- openpathsampling/tests/test_gromacs_engine.py | 45 ++++++++++++------- 4 files changed, 38 insertions(+), 25 deletions(-) diff --git a/openpathsampling/engines/gromacs/__init__.py b/openpathsampling/engines/gromacs/__init__.py index fba1e8f0b..372cf7ba9 100644 --- a/openpathsampling/engines/gromacs/__init__.py +++ b/openpathsampling/engines/gromacs/__init__.py @@ -1,2 +1,2 @@ -from engine import GromacsEngine as Engine -from engine import ExternalMDSnapshot +from .engine import GromacsEngine as Engine +from .engine import ExternalMDSnapshot diff --git a/openpathsampling/engines/gromacs/engine.py b/openpathsampling/engines/gromacs/engine.py index daf612c8a..03a83c203 100644 --- a/openpathsampling/engines/gromacs/engine.py +++ b/openpathsampling/engines/gromacs/engine.py @@ -16,7 +16,7 @@ from openpathsampling.engines import features from openpathsampling.engines.snapshot import BaseSnapshot, SnapshotDescriptor from openpathsampling.engines.openmm.topology import MDTrajTopology -import features as gmx_features +from . import features as gmx_features import os import psutil @@ -249,8 +249,10 @@ def read_frame_from_file(self, file_name, frame_num): file_number = int(basename.split('.')[0]) try: xyz, vel, box = self.read_frame_data(file_name, frame_num) - except IndexError: + except (IndexError, OSError): # this means that no such frame exists yet, so we return None + # IndexError in older version, OSError more recently (specific + # MDTraj error) return None except RuntimeError as e: # TODO: matches "TRR read error" diff --git a/openpathsampling/engines/gromacs/features/__init__.py b/openpathsampling/engines/gromacs/features/__init__.py index 2a001f2b3..e0a8e6db4 100644 --- a/openpathsampling/engines/gromacs/features/__init__.py +++ b/openpathsampling/engines/gromacs/features/__init__.py @@ -1,4 +1,4 @@ -import coordinates -import velocities -import box_vectors -import file_info +from . import coordinates +from . import velocities +from . import box_vectors +from . import file_info diff --git a/openpathsampling/tests/test_gromacs_engine.py b/openpathsampling/tests/test_gromacs_engine.py index 561fa95e2..45643d1c4 100644 --- a/openpathsampling/tests/test_gromacs_engine.py +++ b/openpathsampling/tests/test_gromacs_engine.py @@ -1,9 +1,9 @@ -from nose.tools import (assert_equal, assert_not_equal, assert_items_equal, - assert_almost_equal, raises, assert_true) +from nose.tools import (assert_equal, assert_not_equal, assert_almost_equal, + raises, assert_true) from nose.plugins.skip import Skip, SkipTest import numpy.testing as npt -from test_helpers import data_filename +from test_helpers import data_filename, assert_items_equal import openpathsampling as paths import mdtraj as md @@ -120,32 +120,43 @@ def test_write_frame_to_file_read_back(self): def test_set_filenames(self): test_engine = Engine(gro="conf.gro", mdp="md.mdp", top="topol.top", - options={}, prefix="proj") + base_dir=self.test_dir, options={}, + prefix="proj") test_engine.set_filenames(0) - assert_equal(test_engine.input_file, "initial_frame.trr") - assert_equal(test_engine.output_file, - os.path.join("proj_trr", "0000001.trr")) + assert test_engine.input_file == \ + os.path.join(self.test_dir, "initial_frame.trr") + assert test_engine.output_file == \ + os.path.join(self.test_dir, "proj_trr", "0000001.trr") assert_equal(test_engine.edr_file, - os.path.join("proj_edr", "0000001.edr")) + os.path.join(self.test_dir, "proj_edr", "0000001.edr")) assert_equal(test_engine.log_file, - os.path.join("proj_log", "0000001.log")) + os.path.join(self.test_dir, "proj_log", "0000001.log")) test_engine.set_filenames(99) - assert_equal(test_engine.input_file, "initial_frame.trr") + assert_equal(test_engine.input_file, + os.path.join(self.test_dir, "initial_frame.trr")) assert_equal(test_engine.output_file, - os.path.join("proj_trr", "0000100.trr")) + os.path.join(self.test_dir, "proj_trr", "0000100.trr")) assert_equal(test_engine.edr_file, - os.path.join("proj_edr", "0000100.edr")) + os.path.join(self.test_dir, "proj_edr", "0000100.edr")) assert_equal(test_engine.log_file, - os.path.join("proj_log", "0000100.log")) + os.path.join(self.test_dir, "proj_log", "0000100.log")) def test_engine_command(self): test_engine = Engine(gro="conf.gro", mdp="md.mdp", top="topol.top", - options={}, prefix="proj") + base_dir=self.test_dir, options={}, + prefix="proj") test_engine.set_filenames(0) - assert_equal(test_engine.engine_command(), "gmx mdrun -s topol.tpr " - + "-o proj_trr/0000001.trr -e proj_edr/0000001.edr " - + "-g proj_log/0000001.log ") + tpr = os.path.join("topol.tpr") + trr = os.path.join(self.test_dir, "proj_trr", "0000001.trr") + edr = os.path.join(self.test_dir, "proj_edr", "0000001.edr") + log = os.path.join(self.test_dir, "proj_log", "0000001.log") + beauty = test_engine.engine_command() + truth = "gmx mdrun -s {tpr} -o {trr} -e {edr} -g {log} ".format( + tpr=tpr, trr=trr, edr=edr, log=log + ) # space at the end before args (args is empty) + assert len(beauty) == len(truth) + assert beauty == truth def test_generate(self): if not has_gmx: From a4afeda899ddfbcaa1f265d17447f1efb418312a Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 14 Mar 2019 14:11:22 +0100 Subject: [PATCH 163/464] most of gmx snapshot tests (need storage) --- openpathsampling/tests/test_gromacs_engine.py | 61 +++++++++++++++++++ 1 file changed, 61 insertions(+) diff --git a/openpathsampling/tests/test_gromacs_engine.py b/openpathsampling/tests/test_gromacs_engine.py index 45643d1c4..9c0b32bc6 100644 --- a/openpathsampling/tests/test_gromacs_engine.py +++ b/openpathsampling/tests/test_gromacs_engine.py @@ -1,3 +1,4 @@ +import pytest from nose.tools import (assert_equal, assert_not_equal, assert_almost_equal, raises, assert_true) from nose.plugins.skip import Skip, SkipTest @@ -199,3 +200,63 @@ def test_open_file_caching(self): # read several frames from one file, then switch to another file # first read from 0000000, then 0000099 pass + +class TestGromacsExternalMDSnapshot(object): + def setup(self): + self.test_dir = data_filename("gromacs_engine") + self.engine = Engine(gro="conf.gro", + mdp="md.mdp", + top="topol.top", + options={}, + base_dir=self.test_dir, + prefix="proj") + self.snapshot = ExternalMDSnapshot( + file_name=os.path.join(self.test_dir, "project_trr", + "0000000.trr"), + file_position=2, + engine=self.engine + ) + self.snapshot_shape = (1651, 3) + + def test_storage(self): + pytest.skip() + + def _check_all_empty(self): + # before loading an attribute, all should be empty + assert self.snapshot._velocities is None + assert self.snapshot._xyz is None + assert self.snapshot._box_vectors is None + + def _check_none_empty(self): + # after loading an attribute, all should be present + assert self.snapshot._velocities is not None + assert self.snapshot._xyz is not None + assert self.snapshot._box_vectors is not None + + def test_velocities(self): + self._check_all_empty() + velocities = self.snapshot.velocities + assert velocities.shape == self.snapshot_shape + self._check_none_empty() + + def test_coordinates_xyz(self): + self._check_all_empty() + coordinates = self.snapshot.coordinates + assert coordinates.shape == self.snapshot_shape + assert all(coordinates.flatten() == self.snapshot.xyz.flatten()) + self._check_none_empty() + + def test_box_vectors(self): + self._check_all_empty() + box_vectors = self.snapshot.box_vectors + assert box_vectors.shape == (3, 3) + self._check_none_empty() + + def test_clear_cache(self): + self._check_all_empty() + coordinates = self.snapshot.coordinates + assert coordinates.shape == self.snapshot_shape + self._check_none_empty() + self.snapshot.clear_cache() + self._check_all_empty() + coordinates = self.snapshot.coordinates From 269d2f76c3c9d8a73ec0f33d05c0ce3f66b5cb5f Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 14 Mar 2019 14:36:09 +0100 Subject: [PATCH 164/464] gmx engine storage tests --- openpathsampling/engines/gromacs/engine.py | 14 +++++---- openpathsampling/tests/test_gromacs_engine.py | 30 ++++++++++++++++--- 2 files changed, 34 insertions(+), 10 deletions(-) diff --git a/openpathsampling/engines/gromacs/engine.py b/openpathsampling/engines/gromacs/engine.py index 03a83c203..0e39cbfc1 100644 --- a/openpathsampling/engines/gromacs/engine.py +++ b/openpathsampling/engines/gromacs/engine.py @@ -134,12 +134,14 @@ def __init__(self, gro): descriptor=descriptor, template=None) - def read_frame_data(self, file_name, file_position): - traj = md.load(file_name) - xyz = traj.xyz[0] - vel = np.zeros(shape=xyz.shape) - box = traj.unitcell_vectors[0] - return (xyz, vel, box) + read_frame_data = GromacsEngine.read_frame_data + + # def read_frame_data(self, file_name, file_position): + # traj = md.load(file_name) + # xyz = traj.xyz[0] + # vel = np.zeros(shape=xyz.shape) + # box = traj.unitcell_vectors[0] + # return (xyz, vel, box) template_engine = GroFileEngine(gro_file) snapshot = ExternalMDSnapshot(file_name=gro_file, diff --git a/openpathsampling/tests/test_gromacs_engine.py b/openpathsampling/tests/test_gromacs_engine.py index 9c0b32bc6..fd8f13fb4 100644 --- a/openpathsampling/tests/test_gromacs_engine.py +++ b/openpathsampling/tests/test_gromacs_engine.py @@ -1,4 +1,5 @@ import pytest +import numpy.testing as npt from nose.tools import (assert_equal, assert_not_equal, assert_almost_equal, raises, assert_true) from nose.plugins.skip import Skip, SkipTest @@ -199,7 +200,9 @@ def test_prepare(self): def test_open_file_caching(self): # read several frames from one file, then switch to another file # first read from 0000000, then 0000099 - pass + # TODO: what was I trying to test here? that I can switch between + # files? + pytest.skip() class TestGromacsExternalMDSnapshot(object): def setup(self): @@ -217,9 +220,29 @@ def setup(self): engine=self.engine ) self.snapshot_shape = (1651, 3) + self.storage_filename = "gmx_snap.nc" - def test_storage(self): - pytest.skip() + def teardown(self): + if os.path.isfile(self.storage_filename): + os.remove(self.storage_filename) + + @pytest.mark.parametrize('snap_num', [0, 1]) + def test_storage(self, snap_num): + if os.path.isfile(self.storage_filename): + os.remove(self.storage_filename) + + storage = paths.Storage(self.storage_filename, mode='w') + storage.save(self.snapshot) + + vel_mul = 1 - 2*snap_num # 0->1; 1->-1 + + assert len(storage.snapshots) == 2 # fwd and bkwc + snap = storage.snapshots[snap_num] + npt.assert_array_equal(snap.xyz, self.snapshot.xyz) + npt.assert_array_equal(snap.velocities, + vel_mul * self.snapshot.velocities) + npt.assert_array_equal(snap.box_vectors, + self.snapshot.box_vectors) def _check_all_empty(self): # before loading an attribute, all should be empty @@ -259,4 +282,3 @@ def test_clear_cache(self): self._check_none_empty() self.snapshot.clear_cache() self._check_all_empty() - coordinates = self.snapshot.coordinates From ceb97f1f922ad6cd69d0f051fd986f91ee342c42 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Fri, 15 Mar 2019 12:32:13 +0100 Subject: [PATCH 165/464] Add gmx example; works for me! --- examples/gromacs/AD_tps_1_trajectory.ipynb | 675 +++++++ examples/gromacs/AD_tps_2a_run_flex.ipynb | 934 ++++++++++ .../gromacs/AD_tps_3a_analysis_flex.ipynb | 556 ++++++ examples/gromacs/conf.gro | 1654 +++++++++++++++++ examples/gromacs/md.mdp | 34 + examples/gromacs/topol.top | 238 +++ openpathsampling/engines/dynamics_engine.py | 2 +- openpathsampling/engines/gromacs/engine.py | 40 +- openpathsampling/engines/openmm/topology.py | 2 +- 9 files changed, 4117 insertions(+), 18 deletions(-) create mode 100644 examples/gromacs/AD_tps_1_trajectory.ipynb create mode 100644 examples/gromacs/AD_tps_2a_run_flex.ipynb create mode 100644 examples/gromacs/AD_tps_3a_analysis_flex.ipynb create mode 100644 examples/gromacs/conf.gro create mode 100644 examples/gromacs/md.mdp create mode 100644 examples/gromacs/topol.top diff --git a/examples/gromacs/AD_tps_1_trajectory.ipynb b/examples/gromacs/AD_tps_1_trajectory.ipynb new file mode 100644 index 000000000..d8dc29b85 --- /dev/null +++ b/examples/gromacs/AD_tps_1_trajectory.ipynb @@ -0,0 +1,675 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This is exactly the same as the OpenMM-based alanine dipeptide example, but this one uses Gromacs!" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Imports" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "from __future__ import print_function\n", + "%matplotlib inline\n", + "import matplotlib.pyplot as plt\n", + "import openpathsampling as paths\n", + "\n", + "from openpathsampling.engines import gromacs as ops_gmx\n", + "\n", + "import mdtraj as md\n", + "import numpy as np" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "data": { + "text/markdown": [ + "```py\n", + "def copy(self):\n", + " this = cls.__new__(cls)\n", + " this.__uuid__ = this.get_uuid()\n", + " this._xyz = None\n", + " this._velocities = None\n", + " this._box_vectors = None\n", + " this._reversed = None\n", + " this.engine = self.engine\n", + " this.velocity_direction = self.velocity_direction\n", + " this.file_name = self.file_name\n", + " this.file_position = self.file_position\n", + " return this\n", + "\n", + "def copy_to(self, target):\n", + " target.__uuid__ = target.get_uuid()\n", + " target._xyz = None\n", + " target._velocities = None\n", + " target._box_vectors = None\n", + " target._reversed = None\n", + " target.engine = self.engine\n", + " target.velocity_direction = self.velocity_direction\n", + " target.file_name = self.file_name\n", + " target.file_position = self.file_position\n", + "\n", + "def create_reversed(self):\n", + " this = cls.__new__(cls)\n", + " this.__uuid__ = self.reverse_uuid()\n", + " this._reversed = self\n", + " this._xyz = None\n", + " this._velocities = None\n", + " this._box_vectors = None\n", + " this.engine = self.engine\n", + " this.file_name = self.file_name\n", + " this.file_position = self.file_position\n", + " this.velocity_direction = - self.velocity_direction\n", + " return this\n", + "\n", + "def create_empty(self):\n", + " this = cls.__new__(cls)\n", + " this.__uuid__ = this.get_uuid()\n", + " this._xyz = None\n", + " this._velocities = None\n", + " this._box_vectors = None\n", + " this._reversed = None\n", + " return this\n", + "\n", + "def __init__(...):\n", + " # user defined\n", + " pass\n", + "\n", + "def init_empty(self):\n", + " self.__uuid__ = self.get_uuid()\n", + " self._xyz = None\n", + " self._velocities = None\n", + " self._box_vectors = None\n", + " self._reversed = None\n", + "\n", + "@staticmethod\n", + "def init_copy(self, engine=None, velocity_direction=None, file_name=None, file_position=None):\n", + " self.__uuid__ = self.get_uuid()\n", + " self._xyz = None\n", + " self._velocities = None\n", + " self._box_vectors = None\n", + " self._reversed = None\n", + " self.engine = engine\n", + " self.velocity_direction = velocity_direction\n", + " self.file_name = file_name\n", + " self.file_position = file_position\n", + "\n", + "```" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from IPython.display import Markdown\n", + "\n", + "def code_to_md(snapshot_class):\n", + " md = '```py\\n'\n", + " for f, s in snapshot_class.__features__.debug.items():\n", + " if s is not None:\n", + " md += s\n", + " else:\n", + " md += 'def ' + f + '(...):\\n # user defined\\n pass' \n", + " md += '\\n\\n'\n", + " md += '```'\n", + "\n", + " return md\n", + "\n", + "Markdown(code_to_md(paths.engines.gromacs.ExternalMDSnapshot))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Setting up the engine" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we set things up for the Gromacs simulation. Note that all the details are in the `mdp` file, just as always with Gromacs. Currently, we need to define a few options that reproduce some of the `mdp` file; in the future, that information may be read from the `mdp`." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "%%bash\n", + "# remove files created by previous run of this notebook\n", + "rm -rf hi_T*\n", + "rm -rf equil_*\n", + "rm -rf \\#*\n", + "rm -rf initial_*.trr" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "# TODO: explain options and where files end up" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "options = {\n", + " 'gmx_executable': 'gmx -nobackup ',\n", + " 'snapshot_timestep': 0.02,\n", + " 'base_dir': \".\",\n", + " 'prefix': \"hi_T\"\n", + "} # TODO" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "hi_T_engine = ops_gmx.Engine(gro=\"conf.gro\",\n", + " mdp=\"hi_temp.mdp\",\n", + " top=\"topol.top\",\n", + " options=options,\n", + " base_dir=\".\",\n", + " prefix=\"hi_T\").named(\"500K\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The storage file will need a template snapshot." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "template = hi_T_engine.current_snapshot" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['_xyz', '_velocities', '_box_vectors']" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "\n", + "template.__features__.default_none" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "template.topology" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Defining states\n", + "\n", + "First we define the CVs using the `md.compute_dihedrals` function. Then we define our states using `PeriodicCVDefinedVolume` (since our CVs are periodic.)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "# define the CVs\n", + "psi = paths.MDTrajFunctionCV(\"psi\", md.compute_dihedrals, template.topology, indices=[[6,8,14,16]])\n", + "phi = paths.MDTrajFunctionCV(\"phi\", md.compute_dihedrals, template.topology, indices=[[4,6,8,14]])" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "# define the states\n", + "deg = 180.0/np.pi\n", + "C_7eq = (paths.PeriodicCVDefinedVolume(phi, lambda_min=-180/deg, lambda_max=0/deg, \n", + " period_min=-np.pi, period_max=np.pi) &\n", + " paths.PeriodicCVDefinedVolume(psi, lambda_min=100/deg, lambda_max=200/deg,\n", + " period_min=-np.pi, period_max=np.pi)\n", + " ).named(\"C_7eq\")\n", + "# similarly, without bothering with the labels:\n", + "alpha_R = (paths.PeriodicCVDefinedVolume(phi, -180/deg, 0/deg, -np.pi, np.pi) &\n", + " paths.PeriodicCVDefinedVolume(psi, -100/deg, 0/deg, -np.pi, np.pi)).named(\"alpha_R\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Getting a first trajectory\n", + "\n", + "The idea here is a little subtle, but it makes nice use of our generalized path ensemble idea.\n", + "\n", + "We want a path which contains at least one frame in each state. The question is, what ensemble can we use to create such a trajectory?\n", + "\n", + "The first obvious thought would be `goal_ensemble = PartInXEnsemble(stateA) & PartInXEnsemble(stateB)` (which can, of course, be further generalized to more states). However, while that *is* the ensemble we want to eventually satisfy, we can't use its `can_append` to create it, because its `can_append` always returns `True`: the trajectory will go on forever!\n", + "\n", + "But we can use a trick: since what we want is the first trajectory that satisfies `goal_ensemble`, we know that every shorter trajectory will not satisfy it. This means that the shorter trajectories must satisfy the *complement* of `goal_ensemble`, and the trajectory we want will be the first trajectory that does *not* satisfy the complement!\n", + "\n", + "So the trick we'll use is to build the trajectory by using the fact that the shorter trajectories are in the complement of `goal_ensemble`, which is given by `complement = AllOutXEnsemble(stateA) | AllOutXEnsemble(stateB)`. The `generate` function will stop when that is no longer true, giving us the trajectory we want. This can be directly generalized to more states.\n", + "\n", + "Note that here we're not even using the `can_append` function. That happens to be the same as the ensemble itself for this particular ensemble, but conceptually, we're actually using the test of whether a trajectory is in the ensemble at all." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "import logging.config\n", + "logging.config.fileConfig(\"../resources/logging.conf\", disable_existing_loggers=False)" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "init_traj_ensemble = paths.AllOutXEnsemble(C_7eq) | paths.AllOutXEnsemble(alpha_R)" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/dwhs/miniconda3/envs/dev/lib/python3.7/site-packages/mdtraj/utils/validation.py:116: TypeCastPerformanceWarning: Casting unitcell_vectors dtype=float64 to \n", + " TypeCastPerformanceWarning)\n" + ] + } + ], + "source": [ + "# generate trajectory that includes frame in both states\n", + "trajectory = hi_T_engine.generate(hi_T_engine.current_snapshot, [init_traj_ensemble])" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "# create a network so we can use its ensemble to obtain an initial trajectory\n", + "# use all-to-all because we don't care if initial traj is A->B or B->A: it can be reversed\n", + "tmp_network = paths.TPSNetwork.from_states_all_to_all([C_7eq, alpha_R])" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[Trajectory[47]]\n" + ] + } + ], + "source": [ + "# take the subtrajectory matching the ensemble (only one ensemble, only one subtraj)\n", + "subtrajectories = []\n", + "for ens in tmp_network.analysis_ensembles:\n", + " subtrajectories += ens.split(trajectory)\n", + "print(subtrajectories)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Plotting the trajectory" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plt.plot(phi(trajectory), psi(trajectory), 'k.-')\n", + "plt.plot(phi(subtrajectories[0]), psi(subtrajectories[0]), 'r')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Setting up another engine\n", + "\n", + "We'll create another engine that uses a 300K integrator, and equilibrate to a 300K path from the 500K path." + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [], + "source": [ + "engine = ops_gmx.Engine(gro=\"conf.gro\",\n", + " mdp=\"md.mdp\",\n", + " top=\"topol.top\",\n", + " options=options,\n", + " base_dir=\".\",\n", + " prefix=\"equil\").named(\"tps_equil\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Equilibrate TPS\n", + "\n", + "This is, again, a simple path sampling setup. We use the same `TPSNetwork` we'll use later, and only shooting moves. One the initial conditions are correctly set up, we run one step at a time until the initial trajectory is decorrelated.\n", + "\n", + "This setup of a path sampler always consists of defining a `network` and a `move_scheme`. See toy model notebooks for further discussion." + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [], + "source": [ + "network = paths.TPSNetwork(initial_states=C_7eq, final_states=alpha_R)\n", + "scheme = paths.OneWayShootingMoveScheme(network, \n", + " selector=paths.UniformSelector(),\n", + " engine=engine)" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "No missing ensembles.\n", + "No extra ensembles.\n" + ] + } + ], + "source": [ + "# make subtrajectories into initial conditions (trajectories become a sampleset)\n", + "initial_conditions = scheme.initial_conditions_from_trajectories(subtrajectories)" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [], + "source": [ + "# check that initial conditions are valid and complete (raise AssertionError otherwise)\n", + "scheme.assert_initial_conditions(initial_conditions)" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# TODO: for now, use an empty background -- we should change the main code to handle it correctly\n", + "(fig, ax) = plt.subplots()\n", + "plt.xlim(-np.pi, np.pi)\n", + "plt.ylim(-np.pi, np.pi);" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [], + "source": [ + "sampler = paths.PathSampling(storage=paths.Storage(\"alanine_dipeptide_tps_equil.nc\", \"w\", template),\n", + " move_scheme=scheme,\n", + " sample_set=initial_conditions)\n", + "sampler.live_visualizer = paths.StepVisualizer2D(network, phi, psi, [-np.pi, np.pi], [-np.pi, np.pi])\n", + "sampler.live_visualizer.background = fig" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 24, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# initially, these trajectories are correlated (actually, identical)\n", + "# once decorrelated, we have a (somewhat) reasonable 300K trajectory\n", + "initial_conditions[0].trajectory.is_correlated(sampler.sample_set[0].trajectory)" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "DONE! Completed 7 Monte Carlo cycles.\n" + ] + } + ], + "source": [ + "# this is a trick to take the first decorrelated trajectory\n", + "while (initial_conditions[0].trajectory.is_correlated(sampler.sample_set[0].trajectory)):\n", + " sampler.run(1)" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "DONE! Completed 17 Monte Carlo cycles.\n" + ] + } + ], + "source": [ + "# run an extra 10 to decorrelate a little futher\n", + "sampler.run(10)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "From here, you can either extend this to a longer trajectory for the fixed length TPS in the `alanine_dipeptide_fixed_tps_traj.ipynb` notebook, or go straight to flexible length TPS in the `alanine_dipeptide_tps_run.ipynb` notebook." + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [], + "source": [ + "sampler.storage.close()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.2" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/examples/gromacs/AD_tps_2a_run_flex.ipynb b/examples/gromacs/AD_tps_2a_run_flex.ipynb new file mode 100644 index 000000000..e60440dac --- /dev/null +++ b/examples/gromacs/AD_tps_2a_run_flex.ipynb @@ -0,0 +1,934 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This is file runs the main calculation for the flexible length TPS simulation. It requires the file `alanine_dipeptide_tps_equil.nc`, which is written in the notebook `alanine_dipeptide_tps_first_traj.ipynb`.\n", + "\n", + "In this file, you will learn:\n", + "* how to set up and run a flexible length TPS simulation\n", + "\n", + "NB: This is a long calculation. In practice, it would be best to export the Python from this notebook, remove the `live_visualizer`, and run non-interactively on a computing node." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "from __future__ import print_function\n", + "%matplotlib inline\n", + "import openpathsampling as paths" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "from openpathsampling.engines import gromacs as ops_gmx" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Load engine, trajectory, and states from file" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "old_storage = paths.Storage(\"alanine_dipeptide_tps_equil.nc\", mode='r')" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "options = {\n", + " 'gmx_executable': 'gmx -nobackup ',\n", + " 'snapshot_timestep': 0.02\n", + "}\n", + "engine = ops_gmx.Engine(gro=\"conf.gro\",\n", + " mdp=\"md.mdp\",\n", + " top=\"topol.top\",\n", + " options=options,\n", + " base_dir=\".\",\n", + " prefix=\"prod\").named(\"production\")\n", + "C_7eq = old_storage.volumes.find('C_7eq')\n", + "alpha_R = old_storage.volumes.find('alpha_R')\n", + "traj = old_storage.samplesets[len(old_storage.samplesets)-1][0].trajectory\n", + "phi = old_storage.cvs.find('phi')\n", + "psi = old_storage.cvs.find('psi')\n", + "template = old_storage.snapshots[0]" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# make sure we store the calculated versions of phi and psi\n", + "phi.enable_diskcache()\n", + "psi.enable_diskcache()" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "production\n" + ] + } + ], + "source": [ + "print(engine.name)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## TPS\n", + "\n", + "As always, the process for setting up a simulation is:\n", + "\n", + "1. Create a `network`\n", + "2. Create a `move_scheme`\n", + "3. Set up `initial_conditions`\n", + "4. Create the `PathSampling` object and run it.\n", + "\n", + "Since we already created all the input to these when we set up the first trajectory, we can use the versions we loaded above." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "network = paths.TPSNetwork(C_7eq, alpha_R)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "scheme = paths.OneWayShootingMoveScheme(network, selector=paths.UniformSelector(), engine=engine)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "No missing ensembles.\n", + "No extra ensembles.\n" + ] + } + ], + "source": [ + "initial_conditions = scheme.initial_conditions_from_trajectories(traj)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "storage = paths.Storage(\"alanine_dipeptide_tps.nc\", mode=\"w\")\n", + "storage.save(template) # required for diskcache\n", + "sampler = paths.PathSampling(storage=storage,\n", + " move_scheme=scheme,\n", + " sample_set=initial_conditions)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Note: 10000 steps will take a long time. If you just want to run a little bit, reduce this number." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "import logging\n", + "import sys\n", + "\n", + "root = logging.getLogger('openpathsampling.engines')\n", + "root.setLevel(logging.DEBUG)\n", + "\n", + "ch = logging.StreamHandler(sys.stdout)\n", + "ch.setLevel(logging.DEBUG)\n", + "#formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')\n", + "#ch.setFormatter(formatter)\n", + "root.addHandler(ch)" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Working on Monte Carlo cycle number 1000\n", + "Running for 43 minutes 51 seconds - 2.63 seconds per step\n", + "Estimated time remaining: 2 seconds\n", + "Starting trajectory\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:openpathsampling.engines.dynamics_engine:Starting trajectory\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "gmx -nobackup grompp -c ./conf.gro -f ./md.mdp -p ./topol.top -t ./initial_frame.trr \n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:openpathsampling.engines.gromacs.engine:gmx -nobackup grompp -c ./conf.gro -f ./md.mdp -p ./topol.top -t ./initial_frame.trr \n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "gmx -nobackup mdrun -s topol.tpr -o ./prod_trr/0001000.trr -e ./prod_edr/0001000.edr -g ./prod_log/0001000.log \n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:openpathsampling.engines.external_engine:gmx -nobackup mdrun -s topol.tpr -o ./prod_trr/0001000.trr -e ./prod_edr/0001000.edr -g ./prod_log/0001000.log \n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Started engine: psutil.Popen(pid=7490, name='gmx', started='03:46:29')\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:openpathsampling.engines.external_engine:Started engine: psutil.Popen(pid=7490, name='gmx', started='03:46:29')\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Looking for frame\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "DEBUG:openpathsampling.engines.external_engine:Looking for frame\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Sleeping for 66.06ms\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:openpathsampling.engines.external_engine:Sleeping for 66.06ms\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Sleeping for 66.06ms\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:openpathsampling.engines.external_engine:Sleeping for 66.06ms\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Sleeping for 66.06ms\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:openpathsampling.engines.external_engine:Sleeping for 66.06ms\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Sleeping for 66.06ms\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:openpathsampling.engines.external_engine:Sleeping for 66.06ms\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Sleeping for 66.06ms\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:openpathsampling.engines.external_engine:Sleeping for 66.06ms\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Sleeping for 66.06ms\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:openpathsampling.engines.external_engine:Sleeping for 66.06ms\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Sleeping for 66.06ms\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:openpathsampling.engines.external_engine:Sleeping for 66.06ms\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Sleeping for 66.06ms\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:openpathsampling.engines.external_engine:Sleeping for 66.06ms\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Found frame\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:openpathsampling.engines.external_engine:Found frame\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Through frame: 0\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:openpathsampling.engines.dynamics_engine:Through frame: 0\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Looking for frame\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "DEBUG:openpathsampling.engines.external_engine:Looking for frame\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Sleeping for 604.38ms\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:openpathsampling.engines.external_engine:Sleeping for 604.38ms\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Found frame\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:openpathsampling.engines.external_engine:Found frame\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Looking for frame\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "DEBUG:openpathsampling.engines.external_engine:Looking for frame\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Found frame\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:openpathsampling.engines.external_engine:Found frame\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Looking for frame\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "DEBUG:openpathsampling.engines.external_engine:Looking for frame\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Found frame\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:openpathsampling.engines.external_engine:Found frame\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Looking for frame\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "DEBUG:openpathsampling.engines.external_engine:Looking for frame\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Found frame\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:openpathsampling.engines.external_engine:Found frame\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Looking for frame\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "DEBUG:openpathsampling.engines.external_engine:Looking for frame\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Found frame\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:openpathsampling.engines.external_engine:Found frame\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Looking for frame\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "DEBUG:openpathsampling.engines.external_engine:Looking for frame\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Found frame\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:openpathsampling.engines.external_engine:Found frame\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Looking for frame\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "DEBUG:openpathsampling.engines.external_engine:Looking for frame\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Found frame\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:openpathsampling.engines.external_engine:Found frame\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Looking for frame\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "DEBUG:openpathsampling.engines.external_engine:Looking for frame\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Found frame\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:openpathsampling.engines.external_engine:Found frame\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Looking for frame\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "DEBUG:openpathsampling.engines.external_engine:Looking for frame\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Found frame\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:openpathsampling.engines.external_engine:Found frame\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Looking for frame\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "DEBUG:openpathsampling.engines.external_engine:Looking for frame\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Found frame\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:openpathsampling.engines.external_engine:Found frame\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Through frame: 10\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:openpathsampling.engines.dynamics_engine:Through frame: 10\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Looking for frame\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "DEBUG:openpathsampling.engines.external_engine:Looking for frame\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Found frame\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:openpathsampling.engines.external_engine:Found frame\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Looking for frame\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "DEBUG:openpathsampling.engines.external_engine:Looking for frame\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Found frame\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:openpathsampling.engines.external_engine:Found frame\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "total_time 1.3731\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:openpathsampling.engines.external_engine:total_time 1.3731\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "About to send signal Signals.SIGTERM to psutil.Popen(pid=7490, name='gmx', started='03:46:29')\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:openpathsampling.engines.external_engine:About to send signal Signals.SIGTERM to psutil.Popen(pid=7490, name='gmx', started='03:46:29')\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Signal has been sent\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "DEBUG:openpathsampling.engines.external_engine:Signal has been sent\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Zombie should be dead\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "DEBUG:openpathsampling.engines.external_engine:Zombie should be dead\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Finished trajectory, length: 13\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:openpathsampling.engines.dynamics_engine:Finished trajectory, length: 13\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "DONE! Completed 1000 Monte Carlo cycles.\n" + ] + } + ], + "source": [ + "#sampler.live_visualizer = paths.StepVisualization2D(network, phi, psi, [-3.14, 3.14], [-3.14, 3.14])\n", + "sampler.run(1000)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "With this done, you can go on to do the flexible-length parts of the analysis in `alanine_dipeptide_tps_analysis.ipynb`." + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "ename": "RuntimeError", + "evalue": "NetCDF: Not a valid ID", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mRuntimeError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mstorage\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mclose\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;32mnetCDF4/_netCDF4.pyx\u001b[0m in \u001b[0;36mnetCDF4._netCDF4.Dataset.close\u001b[0;34m()\u001b[0m\n", + "\u001b[0;32mnetCDF4/_netCDF4.pyx\u001b[0m in \u001b[0;36mnetCDF4._netCDF4.Dataset._close\u001b[0;34m()\u001b[0m\n", + "\u001b[0;32mnetCDF4/_netCDF4.pyx\u001b[0m in \u001b[0;36mnetCDF4._netCDF4._ensure_nc_success\u001b[0;34m()\u001b[0m\n", + "\u001b[0;31mRuntimeError\u001b[0m: NetCDF: Not a valid ID" + ] + } + ], + "source": [ + "storage.close()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.2" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/examples/gromacs/AD_tps_3a_analysis_flex.ipynb b/examples/gromacs/AD_tps_3a_analysis_flex.ipynb new file mode 100644 index 000000000..daf62d2a0 --- /dev/null +++ b/examples/gromacs/AD_tps_3a_analysis_flex.ipynb @@ -0,0 +1,556 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "%matplotlib inline\n", + "import openpathsampling as paths\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "import matplotlib\n", + "import os\n", + "import openpathsampling.visualize as ops_vis\n", + "from IPython.display import SVG\n", + "\n", + "matplotlib.rcParams.update({'font.size': 16,\n", + " 'xtick.labelsize': 12,\n", + " 'ytick.labelsize': 12})" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Analyzing the flexible path length simulation" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Load the file, and from the file pull our the engine (which tells us what the timestep was) and the move scheme (which gives us a starting point for much of the analysis)." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "filename = \"alanine_dipeptide_tps.nc\"" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "# note that this log will overwrite the log from the previous notebook\n", + "#import logging.config\n", + "#logging.config.fileConfig(\"logging.conf\", disable_existing_loggers=False)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Opening a large storage file can take some time. In addition, the `AnalysisStorage` object tries to pre-cache things, which makes opening it take longer, but can make analysis faster." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "CPU times: user 2.45 s, sys: 205 ms, total: 2.66 s\n", + "Wall time: 3.44 s\n" + ] + } + ], + "source": [ + "%%time\n", + "flexible = paths.Storage(filename, mode='r')" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "engine = flexible.engines[0]\n", + "flex_scheme = flexible.schemes[0]" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "File size: 110.33MB for 1001 steps, 46704 snapshots\n" + ] + } + ], + "source": [ + "print(\"File size: {0} for {1} steps, {2} snapshots\".format(\n", + " flexible.file_size_str,\n", + " len(flexible.steps),\n", + " len(flexible.snapshots),\n", + "))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "That tell us a little about the file we're dealing with. Note that the number of snapshots listed is twice the number of configurations. That's because every snapshot object stores a virtual version of its velocity-reversed copy. Both share the same configuration and velocity storage; one just flips the signs on the velocities.\n", + "\n", + "Now we'll start analyzing the contents of that file. We used a very simple move scheme (only shooting), so the main information that the `move_summary` gives us is the acceptance of the only kind of move in that scheme. See the MSTIS examples for more complicated move schemes, where you want to make sure that frequency at which the move runs is close to what was expected." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "shooting ran 100.000% (expected 100.00%) of the cycles with acceptance 793/1000 (79.30%)\n", + "CPU times: user 1min 34s, sys: 10.2 s, total: 1min 45s\n", + "Wall time: 1min 46s\n" + ] + } + ], + "source": [ + "%%time\n", + "flex_scheme.move_summary(flexible.steps)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Replica history tree and decorrelated trajectories\n", + "\n", + "The `PathTree` object gives us both the history tree (often called the \"move tree\") and the number of decorrelated trajectories. It takes the history of a given replica (in our case, replica 0, the only one) and builds a description of the move history.\n", + "\n", + "A `PathTree` is made for a certain set of Monte Carlo steps. First, we make a tree of only the first 20 steps in order to visualize it. (All 10000 steps would be unwieldy.) Note that only the accepted steps are shown by default (see examples for path tree visualization for customization details.)\n", + "\n", + "After the visualization, we make a second `PathTree` of all the steps, in order to count the number of decorrelated trajectories." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "image/svg+xml": [ + "+BBBBFBBBBBFBFBFFBBBcorstep0134567891011121314151617181920" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "tree = ops_vis.PathTree(\n", + " flexible.steps[0:21],\n", + " ops_vis.ReplicaEvolution(\n", + " replica=0\n", + " )\n", + ")\n", + "\n", + "with open(\"flexible_path_tree.svg\", mode='w') as f:\n", + " f.write(tree.svg())\n", + "\n", + "SVG(tree.svg())" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Decorrelated trajectories (first 20 steps): 4\n" + ] + } + ], + "source": [ + "print(\"Decorrelated trajectories (first 20 steps):\", len(tree.generator.decorrelated_trajectories))" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Total decorrelated trajectories: 158\n", + "CPU times: user 12.8 s, sys: 1.17 s, total: 14 s\n", + "Wall time: 14.1 s\n" + ] + } + ], + "source": [ + "%%time\n", + "full_tree = ops_vis.PathTree(\n", + " flexible.steps,\n", + " ops_vis.ReplicaEvolution(\n", + " replica=0\n", + " )\n", + ")\n", + "print(\"Total decorrelated trajectories:\", len(full_tree.generator.decorrelated_trajectories))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Path length distribution\n", + "\n", + "Flexible length TPS gives a distribution of path lengths. Here we calculate the length of every accepted trajectory, then histogram those lengths, and calculate the maximum and average path lengths.\n", + "\n", + "We also use `engine.snapshot_timestep` to convert the count of frames to time, including correct units." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "path_lengths = [len(step.active[0].trajectory) for step in flexible.steps]\n", + "plt.hist(path_lengths, bins=40, alpha=0.5);\n", + "plt.xlabel(\"Path length (frames)\")\n", + "plt.ylabel(\"Number of paths\")\n", + "#print(\"Maximum:\", max(path_lengths), \"(\"+str(max(path_lengths)*engine.snapshot_timestep)+\")\")\n", + "#print(\"Average:\", \"{0:.2f}\".format(np.mean(path_lengths)), \"(\"+(np.mean(path_lengths)*engine.snapshot_timestep).format(\"%.3f\")+\")\")\n", + "plt.tight_layout()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Path density histogram\n", + "\n", + "Next we will create a path density histogram. Calculating the histogram itself is quite easy: first we reload the collective variables we want to plot it in (we choose the phi and psi angles). Then we create the empty path density histogram, by telling it which CVs to use and how to make the histogram (bin sizes, etc). Finally, we build the histogram by giving it the list of active trajectories to histogram." + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "from openpathsampling.numerics import HistogramPlotter2D" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [], + "source": [ + "psi = flexible.cvs['psi']\n", + "phi = flexible.cvs['phi']\n", + "deg = 180.0 / np.pi" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [], + "source": [ + "path_density = paths.PathDensityHistogram(cvs=[phi, psi],\n", + " left_bin_edges=(-180/deg,-180/deg),\n", + " bin_widths=(2.0/deg,2.0/deg))" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "CPU times: user 25.5 s, sys: 219 ms, total: 25.7 s\n", + "Wall time: 26.3 s\n" + ] + } + ], + "source": [ + "%%time\n", + "\n", + "path_dens_counter = path_density.histogram([s.active[0].trajectory for s in flexible.steps])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we've built the path density histogram, and we want to visualize it. We have a convenient `plot_2d_histogram` function that works in this case, and takes the histogram, desired plot tick labels and limits, and additional `matplotlib` named arguments to `plt.pcolormesh`." + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXUAAAEACAYAAABMEua6AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAIABJREFUeJztvXucHGd15/399W1u0uhiyfINW74by/iCRZZgDATIYidhbXDIi1GwTSBK8MtCAiRLWLzxGkICC4QXAiRaTDDYOCFgMAEMuwsYbNhgjME2irExvuC7JEsaae59Oe8fT3V1Tat7urqnR+ppne/nU5/pqjr11KmarlOnz3Oe88jMcBzHcfqDzIFWwHEcx+kebtQdx3H6CDfqjuM4fYQbdcdxnD7CjbrjOE4f4UbdcRynj3Cj7jiO00d0bNQlXSvpCUl7JN0n6Q1N5E6T9E1JOyQ1TYqXdKKkaUnXdqqT4zjOwY46HXwkaQNwv5nNSDoFuBn4bTP7cZ3cycDzgR3Al81MTdr7X8AQ8LCZ/X5HSjmO4xzkdOypm9lWM5uprkbL8Q3k7jWzq4GtzdqS9GpgN/CtTvVxHMdxILeQgyV9HLiM4GH/BPh6B22MAlcBLwFeP4/cZmAzwMjIyNknn3xKBxo7jnOwcccdP95hZmsX0kZ29Biz0lQqWZva/k0zO28h51sICzLqZna5pP8M/DrwImBm/iMa8m7gajN7RGoYmameawuwBeDsszfa9394ewenchznYGMor4cX2oaVphg4+fdSyU7/9GNrFnq+hbDg7BczK5vZrcBRwBvbOVbSmcBLgb9dqB6O4ziLh0CZdMsBZkGeeoO29ompt+BFwHrgV5GXvgzISjrVzJ7dRd0cx3E6R0Ame6C1SEVHRl3SocCLga8CUwRv+2LgNQ1kBQwAhWh9ELCok3UL8E8J8bcTjHxbHr/jOM6iM094uJfo1FM3guH9e0II52HgT8zsRklHA/8OnGpmvwKOAR5MHDsVya83s0lgsrpD0jgwbWbbO9TLcRxnEVBPhFbS0JFRj4zuC5vs+xUhjFJdf4jw4yVNu1d2oo/jOM6i0+eeuuM4zsGD6G9P3XEc5+BC7qk7juP0Ff2c/eI4jnNw0ecdpY7jOAcVwsMvjuM4fcUS8dSXhpaO4zgHlO6VCZC0WtKXJE1IeljSPoM2I7krJRUljSeW41q175664zhOKwRku9ZR+jFgFlgHnAl8TdKdZtaoPPk/tzu/hHvqjuM4aZDSLfM2oRHgIuAKMxuPiiF+BXhtt9R0o+44jtOSroVfTgLKZnZfYtudwIYm8i+XtFPSVkmpamJ5+MVxHCcN6bNf1khKTviwJZoPAkIJlbE6+TFgeYN2Pk8oevgU8B+AL0rabWbXz3dyN+qO4zhpSJ/9ssPMNjbZNw6M1m0bBfbWC5rZvydWfyDp/wN+F5jXqHv4xXEcpxVp4+mtvfn7gJykExPbzmCeOZwTGCmKI7pRdxzHSUMmm26ZBzObAG4ArpI0Iukc4ALgs/Wyki6QtEqBXwPeDNzYUs2OLs5xHOegoqvT2V0ODAHbCKGUN5rZVknnRnNKVHk1cD8hNPMZ4H1mdk2rxj2m7jiOk4YulQkws53AhQ2238LcuSgu7qR9N+qO4zitWEL11NvWUtKApKuj4a17Jf1E0vlNZF8t6V5JY5K2SbpG0mgDmXuiIbO/lHRupxfjOI6zOHQ1/LKodKJBDniEMJ3dCuAK4POS1jeQ/T5wjpmtAI6Ljn1Pdaek3wTeB7yOkKf5AuCBDnRyHMdZXLrQUbo/aDv8EvXeXpnY9FVJDwJnAw/VyT5Sd3gZOCGx/t+Bq8zs36L1x9rVx3EcZ7+wRErvLvi3gqR1hKGvDfMsJT1f0hihB/ci4MPR9iywEVgr6X5Jj0r6O0lDC9XJcRynq6i/wy8xkvLAdcA1ZvbzRjJmdmsUfjkK+B/UvPl1QJ4wQupcQrWys4B3NTnXZkm3S7p9+47tC1HbcRynfboz+GjR6dioS8oQEuZngTe1kjezx4BvAP8UbZqK/n7UzJ4wsx3Ah4DfanL8FjPbaGYb165Z26najuM4HSEp1XKg6SilUUHzqwne9m+ZWbGN8x0PYGa7JD1KGPrqOI7Ts4TZ7A68wU5Dp576J4BnAi83s6lmQpI2STo6GuZ6DPBXwLcSIv8I/GdJh0paBfwJ8NUOdXIcx1kcJJRJtxxoOslTPwb4I0IM/MnENEtVAz4u6ehI/FTgB4TKZN8H7gX+MNHcu4EfEYrc3AP8hGD4Hcdxeoq+Db+Y2cPMXyksOcz1vwL/dZ62ioQ6CJe3q4fjOM7+pBcMdhq8TIDjOE4K3Kg7juP0CyJFJfPewI264zhOC0RvxMvT4EbdcRwnBZnMgR8tmgY36o7jOClwT91xHKdf8Ji64zhOf+GeuuM4Tp/gHaWO4zh9Ri+UAEiDG3XHcZxWyMMvjuM4fYUbdcdxnD7CjbrjOE6f4B2ljuM4/cbSsOlu1B3HcVoiLxPgOI7TV3j4xXEcp59YGjbdjbrjOE4aloqn3lGQSNKbJN0uaUbSp+eRu0xSOTGP6bikF0X7jq7bPi7JJL2ts0txHMdZHNLOT9oLhr9TT/1x4D3Ay4ChFrL/18yeX7/RzH5FYj5TSccC9wNf7FAnx3GcRaMXDHYaOvLUzewGM/sy8HQXdbkE+J6ZPdTFNh3HcbqCMkq1tGxHWi3pS5ImJD0s6TUt5AuSfi7p0TR67o8cnbMk7ZB0n6QrJDX7dXAJcE2zRiRtjkI+t2/fsX1xNHUcx2lCF8MvHwNmgXXAJuATkjbMI/9nwLa0ei62Uf8ecBpwKHARcDFBwTlIOpdwgV9o1pCZbTGzjWa2ce2atYukruM4TgPUHaMuaYRgC68ws3EzuxX4CvDaJvLHAr8P/HVaVRfVqJvZA2b2oJlVzOxu4CrgdxuIXgp80czGF1Mfx3GcThAgpVuANdWoQrRsTjR1ElA2s/sS2+4EmnnqHwXeCUyl1XV/pzQaddmekoaAVwGv2M+6OI7jpKStzJYdZraxyb5lwFjdtjFg+T5nlF4B5MzsS9WswTR0ZNSjuHgOyAJZSYNAycxKdXLnA3eY2VOSTgGuAP6lrrlXALuB73Sii+M4zv4g051JMsaB0bpto8De5IYoTPN+4LfaPUGn4Zd3EX4OvIMQ75kC3pXIPT86knsJcJekCeDrwA3Ae+vauhT4jJlZh7o4juMsLilDLymc+fuAnKQTE9vOALbWyZ0IrAdukfQkwXYeLulJSevnO0FHnrqZXQlc2WT3soTc24G3t2jrZZ3o4DiOs78Q3fHUzWxC0g3AVZLeAJwJXAA8r070Z8AzEuvPA/4OeDYwb/rf0ig75jiOc4DpkqcOcDlh0OY24HrgjWa2VdK5ksYBzKxkZk9WF2AnUInWy/M17rVfHMdxUtCtEaVmthO4sMH2W0hEOur23QwclaZ9N+qO4zitSO+FH3DcqDuO47RAyCfJcBzH6SfcU3ccx+kjlkqVRjfqjuM4rfCYuuM4Tv8Qar8sDavuRt1xHCcFS8Smu1F3HMdJQ5dqvyw6btQdx3FaIQ+/OI7j9A3VeupLATfqjuM4LWmrnvoBxY264zhOCpaITXej7jiO0xJ5R6njOE7f4HnqjuM4fcZSMeodlR2TtFrSlyRNSHpY0muayN0UTW9XXWYl3Z3Y/zxJt0naK+kuSc/v9EIcx3EWky5OkrGodOqpfwyYBdYRpmP6mqQ7zWzOPHtmdn5yXdLNwLejz6uBrwBvJMy/dzHwr5KOM7NdHerlOI6zKPStpx7Ncn0RcIWZjZvZrQTj/NoWx60HzgU+G216HvCUmf2LmZXN7FrC3HuvbFcnx3GcRaV7E08vOp146icBZTO7L7HtTuCFLY67BLjFzB6M1hUtSQSc1uhgSZuBzQDPOProdnV2HMfpmDBJRg9Y7BR0ElNfBozVbRsDlrc47hLg04n1HwBHSLpYUl7SpcDxwHCjg81si5ltNLONa9es7UBtx3GczslIqZYDTSdGfRwYrds2CuxtdkDUAXoY8IXqNjN7GrgAeCvwFHAe8H+ARzvQyXEcZ1Hp5/DLfUBO0olm9oto2xnA1nmOuRS4wczGkxvN7LvAcwAk5YBfAh/sQCfHcZxFQ0uooFfbnrqZTRCyVa6SNCLpHILH/dlG8pKGgFcxN/RS3XdWFHoZBT4APGpm32xXJ8dxnMUmo3TLgabT6bEvB4aAbcD1wBvNbKukcyWN18leSIi5f6dBO38O7AAeAQ4HXtGhPo7jOItKJqNUy4Gmozx1M9tJMNb1228hdKQmt11PMPyN2rm4k/M7juPsT0Kq3oE32GnwMgGO4zgp6AEnPBVu1B3HcVohr6fuOI7TVywRm+5G3XEcpxWCnhhYlAY36o7jOCnohcyWNHSa0ug4jnPQkHY0aRpnvo3S5X8i6QFJeyQ9Lulvo0Ga8+JG3XEcJwVdrP2SLF2+CfiEpA0N5P4VeLaZjRIKHZ4BvLmlnqmvyHEc5yBGKZd522ijdLmZ/dLMdidOXwFOaKWnG3XHcZwUKEprbLUAayTdnlg2J5ppVrq8kaeOpNdI2kMYeX8G8A+t9PSOUsdxnBaE7JfU4jvMbGOTfW2VLjezzwGfk3QioXz5U61O7p664zhOK5Su7kuKDJm2S5cDRBVxtwIfb3UCN+qO4zgpaCP8Mh9x6fLEtlaly6vkCBMJzYsbdcdxnBZUwy8LLb3bTulySW+QdGj0+VTgL4BvtdLVjbrjOE4KuuSpQ/rS5ecAd0uaAL4eLe9s1bh3lDqO46SgW+NJ05YuN7PXddK+G3XHcZwWSJBdImUC3Kg7juOkYKmU3u04pt5G/QJJep+kp6Pl/UrcHUlnSvqxpMno75md6uQ4jrNYdKv2y2KzkI7StPULNhPiR2cApwO/A/wRgKQCcCNwLbAKuAa4MdruOI7TE4h0dV96oTxvR0a9nfoFwKXAB83sUTN7DPggcFm070WEENCHzWzGzD5C6I94cSd6OY7jLApdrNK42HTqqbdTv2BDtK+R3AbgLjOzxP67GrUjaXO1lsL2Hds7VNtxHKczupjSuKh0atTbqV9QLzsGLIvi6qnbMbMtZrbRzDauXbO2Q7Udx3HaR0BWSrUcaDrNfmmnfkG97CgwbmYWJdq3XQfBcRxnf7NEMho79tTbqV+wNdrXSG4rcLrm/mY5vUk7juM4B4xulAnYL3p2clA79QuAzwBvlXSkpCOAtwGfjvbdDJSBN0sakPSmaPu3O9HLcRxnMQidoP0dU4f09Qv+gTAt093Az4CvRdsws1lCuuMlwG7gD4ALo+2O4zg9w1Lx1DseUdpG/QID/jxaGrXzE+DsTvVwHMfZH/SAE54KLxPgOI7TAgG5JWLV3ag7juOkYInYdDfqjuM4rVCPlABIgxt1x3GcFCwRm+5G3XEcJw29kNmSBjfqjuM4LRA+SYbjOE7/0CM56Glwo+44jpMCdW2W0sXFjbrjOE4LhHvqjuM4fYUbdcdxnD6iF4p1pcGNuuM4TgskyC6k/OF+xI264zhOCnxEqeM4Tp/gHaWO4zh9xhJx1N2oO47jtEZkPE/dcRynPxBLx1PvqD9X0p9KelLSmKRPSRpoIrdJ0nhimZRkks6O9q+UdI2kbdFy5QKuxXEcZ3EQ5DJKtRxo2jbqkl4GvAN4CbAeOA74741kzew6M1tWXQjzmj4A3BGJ/C0wHLXza8BrJb2uXZ0cx3EWk6qnnmZp2Za0WtKXJE1IeljSa5rI/Zmkn0naK+lBSX+WRtdOPPVLgavNbKuZ7QLeDVzWxrGfieYtBXg58H4zmzSzh4CrCZNPO47j9BSZaKKMVksKPgbMAuuATcAnJG1oICfgEmAVcB7wJkmvbqln6iuqsQG4M7F+J7BO0iHzHSTpGOAFwGfqd9V9Pq3J8Zsl3S7p9u07trevteM4zgLohqcuaQS4CLjCzMbN7FbgK8Br62XN7P1mdoeZlczsXuBG4JxWenZi1JcBY4n16uflLY67BLjFzB5MbPsG8A5JyyWdQPDShxsdbGZbzGyjmW1cu2ZtB2o7juN0hgjGMs0CrKk6oNGyOdHUSUDZzO5LbLuT4Cw3P3+oUXAusLWVri2zXyRtAv4hWr0FGAdGEyLVz3tbNHUJ8N66bW8GPgr8AngauB64uJVOjuM4+xW1NaJ0h5ltbLKv3ikmWm/lFF9JeGf8Y6uTt/TU6zo7zye8Kc5IiJwBPGVmTzdrQ9I5wBHAF+ra3mlmm8zsMDPbEOlzWyudHMdx9idhRGlXYur1TjHRelOnWNKbCE7xb5vZTKsTdBJ++QzwekmnSloFvAv4dItjLgW+aGZzFJd0vKRDJGUlnQ9sBt7TgU6O4ziLilIuLbgPyEk6MbHtDJqEVST9AVG2oZk9mkbPto26mX0DeD/wHeDhaPnLhBJbo5BNdX0Q+D3gmgbNnQ3cTXhL/TWwycxaxowcx3H2N93oKDWzCeAG4CpJI1EU4wLgs/ueT5sIIevfNLMH0urZ0YhSM/sQ8KEm+zbUrU8DK5vIfh74fCc6OI7j7D/UzXrqlwOfArYR+hLfaGZbJZ0L3BSN6YEQtTgE+FHi3Nea2R/P17iXCXAcx2lBNfulG5jZTuDCBttvIXSkVteP7aR9N+qO4zgp8HrqjuM4/YJ8OjvHcZy+oZvhl8XGjbrjOE4K3FN3HMfpI5aGSXej7jiO0xIBWffUHcdx+oclYtPdqDuO47RGaIkEYNyoO47jpMA9dcdxnD4hpDQuDavuRt1xHKcVKecf7QXcqDuO46TAywQ4juP0CWGSjAOtRTrcqDuO46TAs18cx3H6iCUSfXGj7jiOk4al4qm3XXhM0mmSvilphyRLIW+SJiSNR8snE/tuSmwflzQr6e52dXIcx1lMqjH1NMuBphNPvUiYgu7jwJdTHnOGmd1fv9HMzk+uS7oZ+HYHOjmO4yweUv9mv5jZvcC9kk7opiKS1gPnAq/rZrvdoFiqkM8tlWrKjuMsBkvDpO+/uu/fk/SkpBsi492IS4BbzOzBRjslbZZ0u6Tbt+/Yvlh6NsUsLI7jHHyE8ItSLQea/WHUXwisB04BHge+KqnRL4RLgE83a8TMtpjZRjPbuHbN2q4pVyxXKJYrDfdVzKhElryZXFKmWfuNSPuCaNW+4zj7B6VcDjQtjbqkTYmOzJvaPYGZfc/MZs1sN/AW4FjgmXXneD5wGPCFdttfCM0MLgSjWyobpbLtM+NJdXvS1lbMKJYqFEvN22x0jnaMexqqujmO02WWiFVvGVM3s+uA67p4TmPfS78UuMHMxrt4nlTks7X3WqVSM4alSs1oTxXLGGEll+jeNiz+uTVTrMSGN8/cF0Y5ajebOFaqGfSKWdOfbdXtaYz6TLGS6H3vgW+X4/QRvRBaSUPbHaUKbusAUIjWBwEzs5kGshsINu5uYAh4D/AYcE9CZgh4FfDKDvR3HMfZLywNk95ZSuMxQLIzcwp4mBA3JwrR3GJm7wXWAZ8AjgImgB8Av2NmxcTxFwJjwHc60CU11ZBELlv711QqUIlS7WfLFSqRc12uGLmsYtmZUpnx6TIAg/ls7DUXMpk43FI9Bmqhm+r5qk520tmWoBSdMFuX3FqVq3cMquet9xhmirVfBZ6l4ziLxBKx6p2kND7EPJeXzD03s28DJ7do73rg+nb1aBeLDOJsyeJwyK92TLJypADAnqki08VguFcOFzBqselCLsP4dAmAneOzsfEeGcjFMqHNYFBL5TLjM0F+qJBlZCALhJdDkqoxL1eMMlXLD5VEWGaoEI4VikNA4XqI26yOdBvIzzXo1XBSphdGRDjOEiaEy5fGc3RQlAlIxrfNYDbyrisGT+yaAqBkxkgh3A7DKOQyPL57EoCVQ/nYYI7PlGKDunuyGBvdkUIu9qwrFo6HYLAnZ4IxL1UsnrzWMJYNhPOVzchlaga5FOk7WzKmZue+CKrXUIvxZ2LdzGrx+0yPdNo4Tl/g9dR7DKuFJYqlSvzPyecEBKM8NjHNvbv2AnD6mhUMFrJxp+j4TIm1ywcAmJ4tx9797olZZqPQx3DBKEUGVdQMsxmUovOVK7Xtg9HLIJaJtkuKPevBQib2DsanSzXjjcVevlHr0C1XLL42984dp7sslSfq4DDqCfK5DLORAS2Vjft27gFgz2yJYhRKqVgw/lUjfcdTu1mxK9yq09euiL3nfC4Te8YVg2p0ZHy2FP8aWDGUjw3w+HQpDqAMF7JMRu1IxJ56JpEcJMTkbAjjlCrGSNTOdLGWu57LKI7NZ6R94vOO43QD7ZPa3KscdEbdcRynE5aITT9IjHrin5EcmJORWDkQQin37pjiyBXh89adY/zsiUkGo5DN05NFjlwRwi8nr6qwLNFhuWwwF59iJvLOJ6bL8RegWK4wNRvkx6dLjA7n43OXEtksc8IpVDt1K0wXq144TFTj64lM/5FCNu5YXSpfOsdZanSzi0rSauBq4D8CO4C/MLPPNZD7DeC/Ac8GdpnZ+jTtHxxGPUHFLI5TmxnT5WAoRwoZJqPsl12TZX5473b27JkGYPXqYY5etQ6AgUTKoOa0WxuYJBF3oO6dKsXhnhVD+Vh+73QpbiuTmTu4qBq6KZUtlslnM7HMdLHMaNTWVLEcvxAGMrU4veM4XaZ7TtPHgFlCyveZwNck3WlmW+vkJoBPEbID35m28YPGqFcN5cRMidlSMI6Ts+XYEE4WK9y7LYyfGsxn2bVrigd//ggAL37Zszh5zQgAe2dKsce8ZqQQe8ljk0UGo47MiekSe6dCLHzN8gLD1SyXilEqJTNxqiNNc4zPhtT9UrmW7z6Qq+XEV6zWCTqQz7I3SrHMSlRiW15mMO+G3XEWg26kNEoaAS4CTotG0N8q6SvAa4F3JGXN7DbgNkkvbeccB4VRz2czTER547lMhlmCUa6Y8fOdoTLBzx7by6PbwudsNsODWx+EiV0AnHrkCn7yeMiMOXntEGuGQihm73QmfnsLxZ2mhVwm7lQZSoRHshnF3nw2ozhvfcfemThbpWJGLhv+LcVyreRvqVLLmzerZb8MD9SydIpliwci1eesO46zMLoU3jwJKJvZfYltdxIKH3aFvjXqydGbpXKltq5aLveqkQLPWrscgOUDWbY8HjJhTj1mFT/K5shEIZcndk/HHvD28SLPOmIYgDPW5uIc9MF8Nm43n8twyLIQny9VjOEoFFM2Yzry8semynFopVQx8tE3ppDLzAnFxN8jq4VoCtlMlI4Z4vj56JfAQF5zRpc6jtMl2stTXyPp9sT6FjPbEn1eRhhBn2QMWL4wBWv0rVF3HMfpJm2EX3aY2cYm+8aB0bpto8DeTvWqp6+NeikxkrQ6wnNqthx7vAP5DOuWDQLw5MQ0Jxy1IpYZGBrg2JOOAGDn+AyTUQz71KNXkon+uSOFHGPTtTI2K4ZrHaGKwzK1XwYI9kSx9pGBbJxDk8sqrq6YleL8+JLBQNSkYXM6YqtkVOsvSG5PeuweinGchSG6Fn65D8hJOtHMfhFtOwOo7yTtmL426tW4diZTM3xmNQM/Pl2iEBm8XEasHQ0G/svfvp9MJsPxR68EYGxilocf2hW1JZ53THjRVswYjsIyT01Mx7VWJDEShURmimUq+bB9plSJXzTlSsLQGrEeK4bzjE2GF0XZjJlirUxALlvLhKmmPQ7ms14/3XH2A92w6WY2IekG4CpJbyBkv1wAPG+f80kZQjXcfFjVIFAxs9n5ztHXRr1KpUJccyWfE9ko42VsshhXWRzI1kZ4mhmv/J3TOTzKTf+3+5/mmPWrAFi9fCAewVkqG9umQtrjaCEfG91cVonUR4vj8eUKjAzW6r3Eoz8FE1FsfrZUiWUqxQok0i+r2TXj06V4BOp0sUghOm8hkW7p3rnjdJnupTReTkhV3AY8DbzRzLZKOhe4ycyWRXIvYG712ingu8CL5mu8r416spBX9bNQ/DNqZCDHXU/sBmDnzCw3/yikMO7atoup2WdQrITOztHhPLvGw8tRqpW+rea4A+QzGYar1RiLlTizJZ/NxAOIZkrluNN0cqbM9GxtYNHKkRBnqRhxtcisRHUOj1wmG5+3VDYqFtWQyWfiAVDlSqImjPlgJMfpJt2aJMPMdhJKjtdvv4XQkVpdv5kOXiV9Z9SriSP1U9VV67pkBY/vDpUZJ2fLPLY3eNoP7JyhGHnqJ5x6FA89uZfvfP8BAEaWD3PYYeFeT82UueOxCQDuzExy6rohAHLKxHc/6THnsopj5wO5bBzrHixkITLe5YrFhn/lcJ5qkTGoDWiaTPQFZDKKvfZiuVbJsfpSqd6HZnXZHcdpn6XyGPWdUXccx1kUlohV7yujnqwzDrW87qnZchyzrq4D5CQe2hVGkc6WKpxy8hoAnto+wd69M+z64bcB2DU0SuXXzwVg8Ngce6ZCR+ZLT1oVlwAYLeR5ajJ4/ScdsjyOr8+WKvEI1mwGspnq9lqsfaAuNz2eKQmjOgDVSNZK15x5T5PZL/GkGok5UD0U4zgLo68nyZB0KfBm4ERgD/A54J1mVmoguwa4ETiFEFO4B3i7mX0/IXMc8BHCiKoZ4FNm9uftX0owgtUp6ZITRsyWjN0TtdTDO7eH3P+TVy9jpBCM7CHDOc499hkA3PTzp7nxa3eTO+k5AAwtG2JF1Gm6ZnSQs58RxgmMFmopjFPlUtxhOVTIxiNYy2VjIDLe2Yzi0aXLB7Nx/LuQy8Sdr+XEhNcD+Ux8PSOJ+uuF4Uyc8TJTrJBNTNGXNPxz7k2TBBk39o6Tgj6fJGMY+BPgh8Ba4CvA24G/aSA7DvwB8AuCs3kB8K+SDjWzkqQC8L8JBW7+H6BMGEbbFnHsGFFMdF7u2Bs6N4vlCmOz4fPYTDHOCR/IZjl0WTDMhy8bpBhZ0Dvu2cbUk49w6DNPBeDkk9dy4VmHATA6kGNllDyez2RiQ75ysMDu6XCOp8dnOWp1iLWrUKuVPjFbimuuD+Yzc6azq3oBGRFXb9zHw65OgCHFHaXZjOJUSlNtRGkhl2lYWz3pwSfvXXK/4zj7slQejU7mKP1EYvUxSdcBv9FEdhq4F+KcyzKwClhNSOe5DHjczD6UOOyudnWqZovCQyrCAAAV3ElEQVSY1SZzHspn52SFVDNNds8UWT0UslqemJiKDfxsucznbn8CgAd+/ijH/4dnMxLNcHTaM1ayIso7z2czHDUaygRMz5YpVg2qGUesCIZ8pliJwz2ZDIwOBqOelVDUhzo5U2blcLSSNLR11R6T5Q2Sn6se/z5lBeKZj5ob6Gbbm3nzjuMsnUkyupHM/AJajIaSdBcwTfDqP2lm26JdzwUeknSTpB2Sbpb0rC7o5DiO01WkdMuBZkEdpZJeB2wE3jCfnJmdHo2GegVhhFSVowhe/n8CvgW8BbhR0in1o6YkbQY2Azzj6KPj7dPF2oQUuYzIZ6sdhYondt6xd4anp2fiY9ZGVRYfG59iOurEvO3RcXbtDTKlvbtZ/4xTGRsP69mMmIl+AUwUy2ybCB2ipYpx2EgYhZrN1jovi+UKmaiHYeVwIS6luyybq9VKr9iceURjJzkzN5xUnY9aqglNzJTjDuFSpVKrAinVUjpLxkC+vW9YL3whHacX6eYkGYtNS6MuaRPwD9HqLWZ2frT9QkIc/aVmtqNVO1Eo5npJ90j6qZndSRghdauZ3RS1+QHgXcAzCeUok8dvAbYAnH32Rism6pJXOxOLldqk0hWz2ICWzRjOhUvdNT3LA2Mhz3z7eJGdUS2Wm3/6OOVqbvvMBD+98zF+7ezQcbrxyGVxmGVitsjd20LtncOWFeIyvCODtayY6WIl/gI8PT7DxEwty6Wa8VLI1mLeyVrpUzOVOCRkKB4JO1OqVZpMhlsqFeJ2SpUKA7lah2oyQ8ZxnAWyRB6jlkbdzK4Drktuk3Qe8D+B3zazu9s8Zx44jmC07wLOafP40Eh1RiCIOworiZhwsVyJOx9ncxYbx+NXLGP7VPDAh/NZntwbDPTKlYPMxtPFGZVKhTVRLZh7d0xx6LIopp4RK0bC5xUD+XiQU7licUGvwwu1eizlhEc+VSzHX4zBXHbOyNEq5YpRtepWNjK5WobM1Gyt7yBZYqCcqDlTTbHMZ0U0qNWNuuN0gX5OaXwxwci/IpqZYz7Z50bnuI2Q0vhmwhROP4xErgXeFs3s8Z1o/w5C6mNq4gkmyjWPN5tRnNaXy4q1y4NHbWZMRtbukb1TscFbOzrIL34VSgac/ILn8uvPOpz7nwj11X/x+Bgve1aorT5dqnDautBWIZuJwyYZiZ1RKYGpQjYeVbp8MB/XYVHCABu1SS9y+dokHlOz5Tlfneq1jQ7lYk89mQJZLFksP5DPxC+2YtkoRGGfmWLFa8E4zgJZKuHJTmLqVwArgK8neoOTYZmbovX3AgOEHPTjgCJwN8G7fxzAzO6V9PvA3wOHAncA/6lVFbJmZDOKp4iDWpgiI8WTSkzNVHhkfBII3myVyZlSHH7Z9sQYPy5kGYrmAR0ZyrN3puYlD0Vx+0ImG78sdk3Mxi+IoXw2zk3PZWuzHWWk4K0TjHu5XAuPzCQGECWH9w9F7UzPVuLYfC4rJqNsnr1TtUqT+WwmjsFXbO71p5k8ww2/4zRB8Q/onqeTlMaG6YuJ/ecnPn+XUCt4PvkbgBva1cNxHGf/sjSsel+VCUh6udmMEqGYWtx673Qp9ooL2ZpnPzyQi+unP/bwDsbGZhiIsmeOOmSEx3ZPx+d5aCx4+isHcwxka97t6iivfXQoH3vMw4XcnGnodkfe+fh0KQ6VjAxk58w5OlII550u1sobTMyU5sbOE5591QvfVZ5l+VA4dvlgPg7RJBnIZ5p67RWzrlWic5x+oouTZCw6fWXUoRaDnilW5oQ6qi/Z6XKZI5eFQUK/2DURDyjI5zIcGg0eOunUIxhdVmBnZMgnpossq4ZiCllWRx2iy/M5VkdzkVYqRjky3rmsYiNdLFfi8MtwwngfvmoongBjYqZMNRK0Yigfv5hWDOfjAVTVdiHUga+W6p2YLsXbZ0sWz6yUy9TmMTVqI1Z9RiTH6YwlYtP7w6iXk2kvERkRT/IMxFPEVcxYPRgM8eqhGf79yeB1DxVyPBSlKm5Yv5r//YOHWB7Fyx/fOcmaFSET5pBDl8Ux9XXDg3PK3lZ/DYxNFVkRvQQkmC3Xhv1XjXouI3ZHRr2Qy7A6KleQzFRJfonKFYt/YeSymTjjZyCfia+/kFO1mi+7Jmfj2u0DuSzLh7I4jtM57qnvR5I1VJJUveg9U8XYIK4ZHojnFd09XatBtmtihse3jQPwxPYJdm3bxXHHHQ/AypFC3KmZy4rjVoXa6qVKJc5yGchlY883mY9uVvuVYFbztndPFuOKioP5LPkojDOnLgu1wlwm4gkzBnO1iTeyGVEt375nqhjfi8F8lsnZcH2Ts+X4+lcO52MdHMdJz1IpE9AXRr1KNiOSg5KqRn5qthJ/ni5W4hmLTl69jDVRKGXL937Fow8/DUClUuHo4w+LveGhQo4VUby8XDGeGg9hmWNWDceTbwwPZOMRn8l4fvI1Y0acLTNdLMcvhFxWc4x5PhGnr7ZTrlgcOpkuVea8yKr57rOlShyWGcxnGYkmzdg7XYpfCJ6z7jidsVSenL4y6o7jOItBr9R1SUNfGfVKco5OIBN5v0OFDPlKlP0yVct+2TUzG3vSxWKZgWjIfyabYeXKIfZGtWBWHb2Kw0aDB7zx8BUcHo00HR3Ks2uillIfZ9XUVU6shlAy2Vr4JdRWr8Xaq5+rYZt4eyKkVO34LM9aPHJ0YqYUT8ixfCgXj2rNSPHgpkNHB2pztC6RL6bj9Bp9O6K0F0kavkyD+PrIQI5te2rFuapFuLZPzzAYGcSzT1zLGccfEuQLWVYN5XhgR5jLtFQxVkWpgisHCnHq4shglplS2J5R6KiE6sjO+evYBuNeq/2SKAPfkGRBr8F8hl2Txfh6qh2i5UptlCrU0hNnirV6MpW6QmKO46RkiTw2fWHUqySNVdITLhYtzkYpliqMRx2kKwt5Dh0OBn7dKYOM5MPteGpympwynHhISHEsZDMcMRI+H75qMK47Mz5diuPWQ4Vs3C7UvPOKWUMDHya6iOrDlK1hJ0zYVEtLjGvEJEa3ZbK1SahLFZtz3mQuuxLHOo7TPkvl0ekro15PsVQrqrUnynjJZTMMR4OK1tkgywej/PPBwTh0s3wwzz079sQzEG08fGXcqZmV5nSIVjNYMlLcwZkcxFM/mKdqyGsedWgu3yojxea+tOJqj7la/Zmp2TIaINaz2mYmU+uI9cFFjtMJWjLPTl8b9eHIi56ahVXDIWRi1DzYNcsLsXEsVSq1gTtZcdbhK+N2DlsxyEypFh+pZrwIzckmGSq0zgWPvxiZ2nyqMLdOS5LaqubUhKlur75sIKRwxt5/xea8fKrhqHKi38FxnHQspRGlPqTQcRynj+gLT71Vx99ALsNQoZb9Up1IYjBfC11IGUajzlCz0NlZ9eiL5UocWilXjIFcd1/ZSW+7GfUTRjejlmkzV0f3zh1nYSwVT70vjHozklkx1eH8Ui0sk1FtsFI+m4nDJ9X0v2popliukMsmYthRs0YKK9uEjESmzZH7yS9VIes/shxnf+IpjQeY+jTHqkEcKmTnxK2z2X07NPPZDKWyxXnhGSmOf2eyCeNqB+6fnE/h3TuO0yV88NGBpz4kk2/Ts03WR2lWK2Wp/JMdx1kYS6mjtG+Nej3NYspLJU3JcZwDi4dfHMdx+oil4v+1HZiV9GpJ90oak7RN0jWSRueR3xLJVyRdNo/ctyWZJH/ROI7Tcyjl0rIdabWkL0makPSwpNc0kZOk90l6OlrerxT1fzvpbfs+cI6ZrSBMKJ0D3jOP/J3A5YRJpRsiaRP+q8FxnF6mW1YdPgbMAuuATcAnJG1oILcZuJAwz/PpwO8Af9Sq8baNupk9YmY7EpvKwAnzyH/MzL4FTDfaL2kF8JfAn7eri+M4zv5ARGnIKZZ525FGgIuAK8xs3MxuBb4CvLaB+KXAB83sUTN7DPggcFkrXTvyjiU9H/gaMApMAq/opJ2I9wKfAJ5scc7NhDcXwMxQXj9bwDm7xRpgR0up/tcBekOPXtABekOPXtABekOPkxfawB13/PibQ3mtSSk+KOn2xPoWM9sSfT4JKJvZfYn9dwIvbNDOhmhfUq6RRz+Hjox69HZZIelI4A+BhzppR9JG4BzgLcBRLc65BdgSHXe7mW3s5JzdpBf06AUdekWPXtChV/ToBR16RY86A9sRZnZeN3QBlgFjddvGgOUpZMeAZZJk1nx8ecvwi6RNksaj5abkvugnwTeAf2rVToN2M8DHgbeYWamVvOM4Th8wTohwJBkF9qaQHQXG5zPokMKom9l1ZrYsWs5vIJIDjm/VTgNGgY3AP0t6EvhRtP1RSed20J7jOE6vcx+Qk3RiYtsZwNYGslujfa3k5tB2+CXKVLkFeAQ4Gvgr4FvzyBcILw8BeUmDhJ7fMeCIhOgzgNuAs4HtLdTY0mL//qIX9OgFHaA39OgFHaA39OgFHaA39OgFHQAwswlJNwBXSXoDcCZwAfC8BuKfAd4q6euEQtpvAz7a6hxq4cnve4D0V4Re2VXALuDrwF+Y2dPR/puAW8zsvdH6zezbCfAbZnZzXbvrgQeBvIdjHMfpVyStBj4F/CbwNPAOM/tcFKG4ycyWRXIC3ge8ITr0k8B/aRV+aduoO47jOL2Ll/pzHMfpI9yoO47j9BE9Y9R7paaMpEsl/VjSHkmPRvUWGh4raY2k70d1GXZL+r+SzqmTOU7SVyXtlbRD0vtT6HCapG9G8i3jY9H1TSRSTz+Z2HdTYvu4pFlJd6e5F9Hxfyrpyej/8impOrX1PnKb6s4zGel1drR/ZfQ/3RYtV6Y8f1fqZEg6M/q/TkZ/z2zjHqTVYd57Lel5km6Lvgt3KQziS6vDmyTdLmlG0qfnkbtMUrlOjxdF+46u2z4e/Y/ellKHAUlXR/dgr6SfSGqUEZfqeY5k7onu6y/VRtabpGslPRE9p/cpdDo2kkv1LEk6UdK0pGvT6tCzmFlPLITslzXR52XAdcBH5pH/f4GXALcDlzWR2QR8j9BznEupxxuBc4ECcCTwY0JHRiPZQcJotWp2z4XAzuq5ojZ+CbwVGInkT0+hw8nA6wm94pZC3oATUl7fzcB/Syn7MuApwii2VdGxf5Py2Muia6/22/wj8C/AMLA+2ve6FO1cD/xz9J14PiFrakMDuT8C7iUMYjsS+HfgjxP/h4eBPwUGgDdH64WU15JKh/nuNbCaMLLyVUAW+H1CosGqlDq8Mvp+fQL4dIv7fmvKNo8llPlYn1J+BLgy+v9lCLVI9jY6nhbPM6GT8GHguVFbRwJHptEjOn4DMBB9PoUwIv3sTp8l4H8RsvquTatDry4HXIEmN3gZIZ3n6ylkb6WBUQdWEHJCn0sbRr1BO28F/jWFXAZ4eXSuQ6NtmwmZQJ3ehxPm+yIm5FIZ9ehhLAPHpjz/54D3JtZfAjyZ8tjvAH+ZWN8BPCex/s5W9yYyIrPASYltn6XBiwX4AbA5sf564N+iz/8ReIzoBRNt+xVwXorrSK3DfPc6MoBb62TuA17f5nfiPXTPqP8l8J1Ov59RG3cBF7WQ2ed5jv5fbV37PO2fDDwB/N48Mk2fJeDVwOcJL6wlb9R7JvwCoaaMpDHC2/8i4MMLaC5VTZkUvIAWCf+S7iIULPsK8Ekz2xbtei7wUPSzfIekmyU9a4H6NON7UZjkBoX00EZcQjCkD6Zss1HtiXWSDpnvIEnHEO7bZ+p31X0+rcX5m9XJaFT/Yr46GRuAuyx6giPuatLOQnRIUn+vG9XwS3MPOuGs6Pt2n6Qr1Dz0eAlwTacnkbSOcH8aPh/NnmdJWcLAw7WS7lcIc/6dpKE2z/9xSZPAzwlG/esdXMMocBUhB7wv6Cmjbma3WijpexTwP1h4TZmWifot2nkd4cv3gfnkzOx0wgjZ1xB+OVQ5iuAFfIQw0OprwI0KA7K6yQsJnuEpwOPAV5s8yJcAn26j3Ua1J6BxnYr689S/PL4BvEPSckknAH9ACMW0c/6qDm3VyWiznYXokKT+Xv8AOELSxZLyki4ljMRudQ/a5XuEF8WhBEN6MfBn9UJR/Hod8IVOTiIpTwipXGNmP28kM8/zvA7IA79LCHWeCZwFvKsdHczscsL/4VzgBmCm7QuBdwNXm9kjHRzbkxwwo64eqSnTTA9JFwJ/A5xvc0sNN8TMps3seoLhqg7tnSL8FL7JzGYJL4dDgGem0SEtZvY9M5s1s92E4mjHNjjH84HDmOchbqBHo9oT0LhORZJGHuCbCffjF8CNhDj1oy3a6VadjHbaWYgOQON7bWFw3gWEcN5TwHnA/6H1PWgLM3vAzB40s4qZ3U3wQn+3geilwBfNbLzdc0TP2GcJYak3pdCp/nmeiv5+1MyeiJ6vDwG/1a4uZla2UGDwKEJ/WGqizvKXAn/b7nl7mQNm1K1Haso00kPSecD/BF4ePRjtkCdMHgLhJ37L7JUU96JdjH1/6l8K3DDfQ9xAj0a1J56KDFRDFLJ/jqDu5WFmO81sk5kdZmYbCN+921pcR7fqZGwFTo+89iqnN2lnITpUaXivzey7ZvYcM1tNqJ99Mq3vwULZ57sQhTleRQehl+geXk3wti8ys2LKQ+Pn2cx2EV5m3Rz52Im9eBHhF+6vIlvxduAiSU0n9FkSHOigfnUhZKocTfgCHgN8l/BgNJMvELJJvk8o/ztILQvlsMTyHMKX50hSZDsALyYM3X1BCtnnErIhCsAQ8F8IHtwRVuvAmSR4A1lC9sUvW+kRXcMgcGqk+yBRT38D2Q2En69ZQqjgw4QskHxCZgjYDby4zf/JeYQ+iVMJ2S/fpnUH4RbgMw22H0/4lZIFzid0nKbJIPknglc/QgipNct++WPgnuj/fATB6NZnv7yFkP3yJtrLfkmlQ6t7TQgx5AmOx4eB77fxv8hF34O/JnjJgzTo/I/u7bro8ynAz0h0WEfbXxNdv9KeP3Hs3wP/BixbyPNM+AXxI0KYaBUh8+TdKXU4lBDWXBZ9n14GTAAXtPMsEUJfSVvxAYIzsrbd+9JLywFXIHHz/4rw9p6I/m4BDknsvwl4Z2L95uiflFxe1KDd9bSX0vgdoET42V1dbmqkByGWfSfBkO+MvrgvqGvvlcD9wJ5I5zSGrKpzcnmoiQ4vJhjxCWAb8GXgxLr2Ll7AQ1wNF+whpCUOJPZtBTYl1gcJBu0lDdr5PUK8fxL4KfCylOdfHV3TBCFj5TXR9nMJ4ZWqnID3R/+HndHnZLbLWYT01CnC1IpntXEPUunQ6l4TXgxj0fLPRFlSKXW4ssF34kqC4RwHjo7kPhD9vyaABwjGM1/X1jdJaUDrjjsmOu80c5+PTQ30aPU85wlh0t0Ex+EjwGBKPdYSnrXd0ffybuAPo331eqxvcN8eatLulfRB9ovXfnEcx+kjeir7xXEcx1kYbtQdx3H6CDfqjuM4fYQbdcdxnD7CjbrjOE4f4UbdcRynj3Cj7jiO00e4UXccx+kj/n/OsUt+FTiFLAAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "tick_labels = np.arange(-np.pi, np.pi+0.01, np.pi/4)\n", + "plotter = HistogramPlotter2D(path_density, \n", + " xticklabels=tick_labels,\n", + " yticklabels=tick_labels, \n", + " label_format=\"{:4.2f}\")\n", + "ax = plotter.plot(cmap=\"Blues\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.2" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/examples/gromacs/conf.gro b/examples/gromacs/conf.gro new file mode 100644 index 000000000..0e0c055cf --- /dev/null +++ b/examples/gromacs/conf.gro @@ -0,0 +1,1654 @@ +Gyas ROwers Mature At Cryogenic Speed + 1651 + 1ACE CH3 1 -0.304 0.059 0.098 + 1ACE HH31 2 -0.331 -0.036 0.085 + 1ACE HH32 3 -0.340 0.092 0.185 + 1ACE HH33 4 -0.342 0.115 0.023 + 1ACE C 5 -0.153 0.070 0.098 + 1ACE O 6 -0.099 0.180 0.113 + 2ALA N 7 -0.085 -0.043 0.089 + 2ALA H 8 -0.136 -0.129 0.084 + 2ALA CA 9 0.062 -0.050 0.084 + 2ALA HA 10 0.093 0.024 0.143 + 2ALA CB 11 0.104 -0.186 0.138 + 2ALA HB1 12 0.204 -0.193 0.136 + 2ALA HB2 13 0.072 -0.196 0.232 + 2ALA HB3 14 0.064 -0.259 0.081 + 2ALA C 15 0.124 -0.020 -0.055 + 2ALA O 16 0.246 -0.003 -0.065 + 3NME N 17 0.042 -0.012 -0.161 + 3NME H 18 -0.056 -0.022 -0.144 + 3NME CH3 19 0.086 0.010 -0.298 + 3NME HH31 20 0.007 0.012 -0.359 + 3NME HH32 21 0.135 0.097 -0.304 + 3NME HH33 22 0.147 -0.065 -0.326 + 1HOH OW 23 -0.910 0.037 0.009 + 1HOH HW1 24 -0.829 0.037 0.067 + 1HOH HW2 25 -0.992 0.037 0.067 + 2HOH OW 26 0.570 0.321 -1.018 + 2HOH HW1 27 0.652 0.321 -0.960 + 2HOH HW2 28 0.570 0.403 -1.075 + 3HOH OW 29 0.777 -1.219 0.814 + 3HOH HW1 30 0.859 -1.219 0.872 + 3HOH HW2 31 0.777 -1.301 0.756 + 4HOH OW 32 -0.698 0.509 0.776 + 4HOH HW1 33 -0.779 0.509 0.834 + 4HOH HW2 34 -0.698 0.591 0.718 + 5HOH OW 35 -0.788 -0.665 -0.496 + 5HOH HW1 36 -0.870 -0.665 -0.439 + 5HOH HW2 37 -0.788 -0.746 -0.554 + 6HOH OW 38 0.139 0.435 0.206 + 6HOH HW1 39 0.139 0.517 0.148 + 6HOH HW2 40 0.139 0.354 0.148 + 7HOH OW 41 -1.275 0.043 -0.529 + 7HOH HW1 42 -1.193 0.043 -0.471 + 7HOH HW2 43 -1.357 0.043 -0.471 + 8HOH OW 44 0.522 0.523 -0.421 + 8HOH HW1 45 0.604 0.523 -0.363 + 8HOH HW2 46 0.522 0.605 -0.479 + 9HOH OW 47 -0.449 -0.460 0.399 + 9HOH HW1 48 -0.368 -0.460 0.457 + 9HOH HW2 49 -0.449 -0.541 0.341 + 10HOH OW 50 -0.223 -0.195 -0.788 + 10HOH HW1 51 -0.305 -0.195 -0.730 + 10HOH HW2 52 -0.223 -0.113 -0.846 + 11HOH OW 53 0.403 0.194 0.441 + 11HOH HW1 54 0.321 0.194 0.498 + 11HOH HW2 55 0.403 0.112 0.383 + 12HOH OW 56 0.837 -0.413 -0.729 + 12HOH HW1 57 0.837 -0.331 -0.787 + 12HOH HW2 58 0.837 -0.494 -0.787 + 13HOH OW 59 -0.790 0.054 -0.474 + 13HOH HW1 60 -0.708 0.054 -0.416 + 13HOH HW2 61 -0.871 0.054 -0.416 + 14HOH OW 62 -0.060 1.182 0.054 + 14HOH HW1 63 0.022 1.182 0.112 + 14HOH HW2 64 -0.060 1.264 -0.004 + 15HOH OW 65 0.421 0.761 -1.280 + 15HOH HW1 66 0.503 0.761 -1.222 + 15HOH HW2 67 0.421 0.679 -1.338 + 16HOH OW 68 -0.277 0.275 -0.724 + 16HOH HW1 69 -0.359 0.275 -0.666 + 16HOH HW2 70 -0.277 0.357 -0.781 + 17HOH OW 71 -1.086 0.730 -0.976 + 17HOH HW1 72 -1.167 0.730 -0.919 + 17HOH HW2 73 -1.086 0.648 -1.034 + 18HOH OW 74 -0.009 0.132 -1.322 + 18HOH HW1 75 -0.009 0.214 -1.379 + 18HOH HW2 76 -0.009 0.050 -1.379 + 19HOH OW 77 0.335 0.860 -0.019 + 19HOH HW1 78 0.416 0.860 0.039 + 19HOH HW2 79 0.253 0.860 0.039 + 20HOH OW 80 -0.180 0.955 -0.511 + 20HOH HW1 81 -0.098 0.955 -0.453 + 20HOH HW2 82 -0.180 1.036 -0.568 + 21HOH OW 83 -1.201 -0.612 -0.854 + 21HOH HW1 84 -1.120 -0.612 -0.796 + 21HOH HW2 85 -1.201 -0.694 -0.912 + 22HOH OW 86 -0.947 -1.186 0.300 + 22HOH HW1 87 -1.029 -1.186 0.358 + 22HOH HW2 88 -0.947 -1.104 0.242 + 23HOH OW 89 -0.253 -1.117 0.475 + 23HOH HW1 90 -0.335 -1.117 0.533 + 23HOH HW2 91 -0.253 -1.198 0.418 + 24HOH OW 92 0.126 -1.273 -0.495 + 24HOH HW1 93 0.126 -1.191 -0.553 + 24HOH HW2 94 0.126 -1.355 -0.553 + 25HOH OW 95 -0.490 -0.720 -1.016 + 25HOH HW1 96 -0.408 -0.720 -0.958 + 25HOH HW2 97 -0.572 -0.720 -0.958 + 26HOH OW 98 1.083 -0.412 0.367 + 26HOH HW1 99 1.165 -0.412 0.425 + 26HOH HW2 100 1.083 -0.330 0.309 + 27HOH OW 101 -0.580 0.032 -0.662 + 27HOH HW1 102 -0.498 0.032 -0.604 + 27HOH HW2 103 -0.580 -0.049 -0.719 + 28HOH OW 104 -0.397 -1.087 -0.149 + 28HOH HW1 105 -0.479 -1.087 -0.092 + 28HOH HW2 106 -0.397 -1.005 -0.207 + 29HOH OW 107 -0.587 0.390 -0.114 + 29HOH HW1 108 -0.669 0.390 -0.056 + 29HOH HW2 109 -0.587 0.308 -0.171 + 30HOH OW 110 0.862 -0.966 -1.065 + 30HOH HW1 111 0.862 -0.885 -1.123 + 30HOH HW2 112 0.862 -1.048 -1.123 + 31HOH OW 113 0.761 0.674 0.126 + 31HOH HW1 114 0.843 0.674 0.184 + 31HOH HW2 115 0.680 0.674 0.184 + 32HOH OW 116 -0.886 -0.993 -0.143 + 32HOH HW1 117 -0.804 -0.993 -0.085 + 32HOH HW2 118 -0.886 -0.911 -0.201 + 33HOH OW 119 -0.200 0.730 -0.078 + 33HOH HW1 120 -0.118 0.730 -0.020 + 33HOH HW2 121 -0.200 0.648 -0.136 + 34HOH OW 122 0.142 -0.844 0.882 + 34HOH HW1 123 0.061 -0.844 0.940 + 34HOH HW2 124 0.142 -0.762 0.825 + 35HOH OW 125 0.099 0.605 -0.610 + 35HOH HW1 126 0.017 0.605 -0.552 + 35HOH HW2 127 0.099 0.523 -0.667 + 36HOH OW 128 -0.874 0.076 -0.774 + 36HOH HW1 129 -0.874 0.157 -0.831 + 36HOH HW2 130 -0.874 -0.006 -0.831 + 37HOH OW 131 -0.140 -0.862 0.502 + 37HOH HW1 132 -0.058 -0.862 0.559 + 37HOH HW2 133 -0.221 -0.862 0.559 + 38HOH OW 134 -1.063 1.024 -0.859 + 38HOH HW1 135 -0.981 1.024 -0.801 + 38HOH HW2 136 -1.063 1.106 -0.917 + 39HOH OW 137 -0.421 -0.738 -0.016 + 39HOH HW1 138 -0.339 -0.738 0.041 + 39HOH HW2 139 -0.421 -0.820 -0.074 + 40HOH OW 140 -0.711 0.548 0.079 + 40HOH HW1 141 -0.793 0.548 0.136 + 40HOH HW2 142 -0.711 0.630 0.021 + 41HOH OW 143 -0.096 -0.846 -0.087 + 41HOH HW1 144 -0.177 -0.846 -0.029 + 41HOH HW2 145 -0.096 -0.928 -0.145 + 42HOH OW 146 -0.212 -0.464 -0.435 + 42HOH HW1 147 -0.212 -0.382 -0.493 + 42HOH HW2 148 -0.212 -0.545 -0.493 + 43HOH OW 149 0.213 0.515 -0.919 + 43HOH HW1 150 0.294 0.515 -0.861 + 43HOH HW2 151 0.131 0.515 -0.861 + 44HOH OW 152 -0.705 -1.264 -0.933 + 44HOH HW1 153 -0.623 -1.264 -0.876 + 44HOH HW2 154 -0.705 -1.182 -0.991 + 45HOH OW 155 -0.412 -0.481 -0.713 + 45HOH HW1 156 -0.330 -0.481 -0.655 + 45HOH HW2 157 -0.412 -0.563 -0.770 + 46HOH OW 158 -0.257 0.473 0.225 + 46HOH HW1 159 -0.339 0.473 0.283 + 46HOH HW2 160 -0.257 0.554 0.167 + 47HOH OW 161 -0.443 -0.330 -0.366 + 47HOH HW1 162 -0.524 -0.330 -0.308 + 47HOH HW2 163 -0.443 -0.412 -0.424 + 48HOH OW 164 -0.475 0.978 -0.805 + 48HOH HW1 165 -0.475 1.059 -0.863 + 48HOH HW2 166 -0.475 0.896 -0.863 + 49HOH OW 167 -0.129 -1.052 -0.690 + 49HOH HW1 168 -0.047 -1.052 -0.632 + 49HOH HW2 169 -0.211 -1.052 -0.632 + 50HOH OW 170 -1.101 -0.300 0.220 + 50HOH HW1 171 -1.019 -0.300 0.278 + 50HOH HW2 172 -1.101 -0.219 0.163 + 51HOH OW 173 -0.948 -0.768 0.484 + 51HOH HW1 174 -0.866 -0.768 0.541 + 51HOH HW2 175 -0.948 -0.850 0.426 + 52HOH OW 176 -0.640 -0.796 -0.296 + 52HOH HW1 177 -0.722 -0.796 -0.238 + 52HOH HW2 178 -0.640 -0.715 -0.354 + 53HOH OW 179 -0.915 -0.904 -0.507 + 53HOH HW1 180 -0.997 -0.904 -0.449 + 53HOH HW2 181 -0.915 -0.985 -0.565 + 54HOH OW 182 0.464 -0.203 -0.243 + 54HOH HW1 183 0.464 -0.121 -0.300 + 54HOH HW2 184 0.464 -0.285 -0.300 + 55HOH OW 185 -0.083 -1.069 -1.093 + 55HOH HW1 186 -0.001 -1.069 -1.035 + 55HOH HW2 187 -0.165 -1.069 -1.035 + 56HOH OW 188 0.945 0.605 1.148 + 56HOH HW1 189 1.026 0.605 1.206 + 56HOH HW2 190 0.945 0.687 1.090 + 57HOH OW 191 -0.975 -0.343 0.513 + 57HOH HW1 192 -0.893 -0.343 0.571 + 57HOH HW2 193 -0.975 -0.425 0.456 + 58HOH OW 194 0.004 -0.371 -1.055 + 58HOH HW1 195 -0.078 -0.371 -0.997 + 58HOH HW2 196 0.004 -0.289 -1.113 + 59HOH OW 197 -0.292 -0.238 -1.280 + 59HOH HW1 198 -0.374 -0.238 -1.222 + 59HOH HW2 199 -0.292 -0.320 -1.338 + 60HOH OW 200 0.210 -0.679 -0.458 + 60HOH HW1 201 0.210 -0.597 -0.515 + 60HOH HW2 202 0.210 -0.760 -0.515 + 61HOH OW 203 0.241 0.683 -0.382 + 61HOH HW1 204 0.323 0.683 -0.324 + 61HOH HW2 205 0.159 0.683 -0.324 + 62HOH OW 206 0.524 0.626 0.003 + 62HOH HW1 207 0.606 0.626 0.061 + 62HOH HW2 208 0.524 0.708 -0.054 + 63HOH OW 209 0.855 -0.151 -0.492 + 63HOH HW1 210 0.936 -0.151 -0.434 + 63HOH HW2 211 0.855 -0.232 -0.550 + 64HOH OW 212 -1.202 -1.144 -0.144 + 64HOH HW1 213 -1.283 -1.144 -0.086 + 64HOH HW2 214 -1.202 -1.062 -0.201 + 65HOH OW 215 -0.366 0.000 0.641 + 65HOH HW1 216 -0.448 0.000 0.699 + 65HOH HW2 217 -0.366 -0.081 0.583 + 66HOH OW 218 -0.352 -0.493 -1.079 + 66HOH HW1 219 -0.352 -0.412 -1.137 + 66HOH HW2 220 -0.352 -0.575 -1.137 + 67HOH OW 221 -0.903 0.207 0.939 + 67HOH HW1 222 -0.822 0.207 0.996 + 67HOH HW2 223 -0.985 0.207 0.996 + 68HOH OW 224 -1.026 0.295 0.074 + 68HOH HW1 225 -0.944 0.295 0.132 + 68HOH HW2 226 -1.026 0.377 0.016 + 69HOH OW 227 -0.352 -1.169 -0.455 + 69HOH HW1 228 -0.271 -1.169 -0.397 + 69HOH HW2 229 -0.352 -1.251 -0.513 + 70HOH OW 230 -0.102 -0.413 -0.691 + 70HOH HW1 231 -0.184 -0.413 -0.633 + 70HOH HW2 232 -0.102 -0.332 -0.749 + 71HOH OW 233 0.705 0.084 -0.267 + 71HOH HW1 234 0.623 0.084 -0.209 + 71HOH HW2 235 0.705 0.002 -0.324 + 72HOH OW 236 -0.817 -0.121 0.457 + 72HOH HW1 237 -0.817 -0.039 0.399 + 72HOH HW2 238 -0.817 -0.202 0.399 + 73HOH OW 239 -0.933 -0.662 0.738 + 73HOH HW1 240 -0.851 -0.662 0.795 + 73HOH HW2 241 -1.014 -0.662 0.795 + 74HOH OW 242 0.334 -0.454 0.808 + 74HOH HW1 243 0.415 -0.454 0.866 + 74HOH HW2 244 0.334 -0.372 0.751 + 75HOH OW 245 0.366 -1.216 0.371 + 75HOH HW1 246 0.447 -1.216 0.429 + 75HOH HW2 247 0.366 -1.298 0.314 + 76HOH OW 248 -0.932 1.103 -0.050 + 76HOH HW1 249 -1.013 1.103 0.008 + 76HOH HW2 250 -0.932 1.184 -0.108 + 77HOH OW 251 -0.769 0.140 -0.206 + 77HOH HW1 252 -0.851 0.140 -0.149 + 77HOH HW2 253 -0.769 0.058 -0.264 + 78HOH OW 254 -0.514 -0.936 -0.514 + 78HOH HW1 255 -0.514 -0.854 -0.571 + 78HOH HW2 256 -0.514 -1.018 -0.571 + 79HOH OW 257 -0.959 -0.546 -0.730 + 79HOH HW1 258 -0.878 -0.546 -0.673 + 79HOH HW2 259 -1.041 -0.546 -0.673 + 80HOH OW 260 0.717 -0.519 0.407 + 80HOH HW1 261 0.799 -0.519 0.465 + 80HOH HW2 262 0.717 -0.438 0.349 + 81HOH OW 263 -0.600 0.209 -1.285 + 81HOH HW1 264 -0.518 0.209 -1.228 + 81HOH HW2 265 -0.600 0.127 -1.343 + 82HOH OW 266 -0.373 -1.064 -0.808 + 82HOH HW1 267 -0.454 -1.064 -0.750 + 82HOH HW2 268 -0.373 -0.982 -0.866 + 83HOH OW 269 1.158 -0.281 0.857 + 83HOH HW1 270 1.076 -0.281 0.915 + 83HOH HW2 271 1.158 -0.362 0.799 + 84HOH OW 272 -0.054 -0.732 0.728 + 84HOH HW1 273 -0.054 -0.650 0.671 + 84HOH HW2 274 -0.054 -0.813 0.671 + 85HOH OW 275 0.604 0.359 -0.676 + 85HOH HW1 276 0.686 0.359 -0.618 + 85HOH HW2 277 0.522 0.359 -0.618 + 86HOH OW 278 1.123 0.245 -0.413 + 86HOH HW1 279 1.205 0.245 -0.355 + 86HOH HW2 280 1.123 0.327 -0.470 + 87HOH OW 281 -0.778 -0.218 -0.132 + 87HOH HW1 282 -0.696 -0.218 -0.075 + 87HOH HW2 283 -0.778 -0.300 -0.190 + 88HOH OW 284 -1.103 -0.017 -0.183 + 88HOH HW1 285 -1.185 -0.017 -0.125 + 88HOH HW2 286 -1.103 0.065 -0.241 + 89HOH OW 287 -0.944 -0.253 -0.346 + 89HOH HW1 288 -1.026 -0.253 -0.289 + 89HOH HW2 289 -0.944 -0.335 -0.404 + 90HOH OW 290 -1.118 -1.082 -0.427 + 90HOH HW1 291 -1.118 -1.000 -0.485 + 90HOH HW2 292 -1.118 -1.163 -0.485 + 91HOH OW 293 -1.033 0.259 -0.199 + 91HOH HW1 294 -0.951 0.259 -0.141 + 91HOH HW2 295 -1.114 0.259 -0.141 + 92HOH OW 296 -0.389 0.241 -0.972 + 92HOH HW1 297 -0.307 0.241 -0.914 + 92HOH HW2 298 -0.389 0.322 -1.030 + 93HOH OW 299 -0.591 0.472 0.348 + 93HOH HW1 300 -0.509 0.472 0.405 + 93HOH HW2 301 -0.591 0.391 0.290 + 94HOH OW 302 -0.549 -1.206 0.052 + 94HOH HW1 303 -0.631 -1.206 0.110 + 94HOH HW2 304 -0.549 -1.124 -0.006 + 95HOH OW 305 -0.132 0.973 -0.986 + 95HOH HW1 306 -0.214 0.973 -0.928 + 95HOH HW2 307 -0.132 0.891 -1.044 + 96HOH OW 308 -1.147 0.852 0.438 + 96HOH HW1 309 -1.147 0.933 0.380 + 96HOH HW2 310 -1.147 0.770 0.380 + 97HOH OW 311 0.541 -0.487 -0.751 + 97HOH HW1 312 0.623 -0.487 -0.693 + 97HOH HW2 313 0.460 -0.487 -0.693 + 98HOH OW 314 -0.754 0.294 -0.886 + 98HOH HW1 315 -0.672 0.294 -0.829 + 98HOH HW2 316 -0.754 0.376 -0.944 + 99HOH OW 317 0.206 -0.198 -0.997 + 99HOH HW1 318 0.287 -0.198 -0.940 + 99HOH HW2 319 0.206 -0.280 -1.055 + 100HOH OW 320 -0.686 -0.324 0.330 + 100HOH HW1 321 -0.767 -0.324 0.388 + 100HOH HW2 322 -0.686 -0.243 0.272 + 101HOH OW 323 -0.463 0.655 0.793 + 101HOH HW1 324 -0.544 0.655 0.851 + 101HOH HW2 325 -0.463 0.573 0.735 + 102HOH OW 326 -0.479 0.722 -1.163 + 102HOH HW1 327 -0.479 0.804 -1.221 + 102HOH HW2 328 -0.479 0.640 -1.221 + 103HOH OW 329 0.004 -1.240 -0.840 + 103HOH HW1 330 0.086 -1.240 -0.782 + 103HOH HW2 331 -0.078 -1.240 -0.782 + 104HOH OW 332 -0.548 0.389 -0.387 + 104HOH HW1 333 -0.466 0.389 -0.329 + 104HOH HW2 334 -0.548 0.471 -0.445 + 105HOH OW 335 -0.151 -0.473 -1.269 + 105HOH HW1 336 -0.069 -0.473 -1.212 + 105HOH HW2 337 -0.151 -0.555 -1.327 + 106HOH OW 338 0.086 0.714 0.625 + 106HOH HW1 339 0.004 0.714 0.682 + 106HOH HW2 340 0.086 0.796 0.567 + 107HOH OW 341 -0.506 0.117 -0.318 + 107HOH HW1 342 -0.588 0.117 -0.260 + 107HOH HW2 343 -0.506 0.035 -0.376 + 108HOH OW 344 0.113 -0.817 -0.675 + 108HOH HW1 345 0.113 -0.735 -0.733 + 108HOH HW2 346 0.113 -0.898 -0.733 + 109HOH OW 347 0.605 -0.250 -0.468 + 109HOH HW1 348 0.687 -0.250 -0.410 + 109HOH HW2 349 0.523 -0.250 -0.410 + 110HOH OW 350 -0.967 -1.331 -0.420 + 110HOH HW1 351 -0.885 -1.331 -0.363 + 110HOH HW2 352 -0.967 -1.249 -0.478 + 111HOH OW 353 -1.036 0.181 -0.562 + 111HOH HW1 354 -0.954 0.181 -0.504 + 111HOH HW2 355 -1.036 0.099 -0.620 + 112HOH OW 356 -0.754 -0.113 0.724 + 112HOH HW1 357 -0.835 -0.113 0.782 + 112HOH HW2 358 -0.754 -0.032 0.666 + 113HOH OW 359 -1.150 -1.057 0.139 + 113HOH HW1 360 -1.232 -1.057 0.197 + 113HOH HW2 361 -1.150 -1.139 0.081 + 114HOH OW 362 0.703 -1.213 0.005 + 114HOH HW1 363 0.703 -1.131 -0.053 + 114HOH HW2 364 0.703 -1.295 -0.053 + 115HOH OW 365 -0.068 0.477 -0.910 + 115HOH HW1 366 0.013 0.477 -0.853 + 115HOH HW2 367 -0.150 0.477 -0.853 + 116HOH OW 368 -0.830 0.324 -1.203 + 116HOH HW1 369 -0.748 0.324 -1.146 + 116HOH HW2 370 -0.830 0.406 -1.261 + 117HOH OW 371 -0.761 -1.194 -0.281 + 117HOH HW1 372 -0.679 -1.194 -0.223 + 117HOH HW2 373 -0.761 -1.275 -0.339 + 118HOH OW 374 0.051 -0.461 -0.335 + 118HOH HW1 375 -0.031 -0.461 -0.277 + 118HOH HW2 376 0.051 -0.379 -0.393 + 119HOH OW 377 0.062 0.259 0.641 + 119HOH HW1 378 -0.019 0.259 0.698 + 119HOH HW2 379 0.062 0.178 0.583 + 120HOH OW 380 0.440 -0.869 -1.358 + 120HOH HW1 381 0.440 -0.787 -1.416 + 120HOH HW2 382 0.440 -0.950 -1.416 + 121HOH OW 383 -0.729 -0.163 -1.018 + 121HOH HW1 384 -0.647 -0.163 -0.961 + 121HOH HW2 385 -0.811 -0.163 -0.961 + 122HOH OW 386 0.710 -0.139 0.409 + 122HOH HW1 387 0.792 -0.139 0.466 + 122HOH HW2 388 0.710 -0.057 0.351 + 123HOH OW 389 -0.167 -0.151 -1.051 + 123HOH HW1 390 -0.085 -0.151 -0.994 + 123HOH HW2 391 -0.167 -0.233 -1.109 + 124HOH OW 392 -0.314 0.471 -0.052 + 124HOH HW1 393 -0.396 0.471 0.006 + 124HOH HW2 394 -0.314 0.552 -0.110 + 125HOH OW 395 0.348 0.729 0.226 + 125HOH HW1 396 0.266 0.729 0.283 + 125HOH HW2 397 0.348 0.647 0.168 + 126HOH OW 398 -0.710 -0.958 -0.714 + 126HOH HW1 399 -0.710 -0.876 -0.772 + 126HOH HW2 400 -0.710 -1.039 -0.772 + 127HOH OW 401 0.431 -0.268 1.067 + 127HOH HW1 402 0.512 -0.268 1.124 + 127HOH HW2 403 0.349 -0.268 1.124 + 128HOH OW 404 0.740 0.306 -1.229 + 128HOH HW1 405 0.822 0.306 -1.172 + 128HOH HW2 406 0.740 0.388 -1.287 + 129HOH OW 407 -0.699 -0.422 -0.388 + 129HOH HW1 408 -0.618 -0.422 -0.331 + 129HOH HW2 409 -0.699 -0.504 -0.446 + 130HOH OW 410 0.451 -0.299 -0.940 + 130HOH HW1 411 0.369 -0.299 -0.882 + 130HOH HW2 412 0.451 -0.218 -0.997 + 131HOH OW 413 -0.754 0.610 -0.313 + 131HOH HW1 414 -0.836 0.610 -0.256 + 131HOH HW2 415 -0.754 0.528 -0.371 + 132HOH OW 416 -0.306 -0.854 -0.265 + 132HOH HW1 417 -0.306 -0.773 -0.323 + 132HOH HW2 418 -0.306 -0.936 -0.323 + 133HOH OW 419 -0.526 0.963 -0.083 + 133HOH HW1 420 -0.445 0.963 -0.025 + 133HOH HW2 421 -0.608 0.963 -0.025 + 134HOH OW 422 -0.582 0.053 -0.942 + 134HOH HW1 423 -0.500 0.053 -0.884 + 134HOH HW2 424 -0.582 0.135 -1.000 + 135HOH OW 425 -0.489 0.669 -0.225 + 135HOH HW1 426 -0.407 0.669 -0.167 + 135HOH HW2 427 -0.489 0.588 -0.282 + 136HOH OW 428 0.448 -0.768 -0.734 + 136HOH HW1 429 0.367 -0.768 -0.677 + 136HOH HW2 430 0.448 -0.686 -0.792 + 137HOH OW 431 1.116 -0.556 -0.504 + 137HOH HW1 432 1.034 -0.556 -0.447 + 137HOH HW2 433 1.116 -0.637 -0.562 + 138HOH OW 434 -0.383 -0.143 -0.559 + 138HOH HW1 435 -0.383 -0.061 -0.617 + 138HOH HW2 436 -0.383 -0.224 -0.617 + 139HOH OW 437 0.429 -0.217 0.728 + 139HOH HW1 438 0.510 -0.217 0.786 + 139HOH HW2 439 0.347 -0.217 0.786 + 140HOH OW 440 0.304 -0.990 0.516 + 140HOH HW1 441 0.385 -0.990 0.574 + 140HOH HW2 442 0.304 -0.909 0.458 + 141HOH OW 443 -0.202 -0.538 0.960 + 141HOH HW1 444 -0.120 -0.538 1.018 + 141HOH HW2 445 -0.202 -0.620 0.903 + 142HOH OW 446 0.450 -0.489 0.353 + 142HOH HW1 447 0.369 -0.489 0.411 + 142HOH HW2 448 0.450 -0.408 0.295 + 143HOH OW 449 -0.617 -0.372 -1.174 + 143HOH HW1 450 -0.698 -0.372 -1.116 + 143HOH HW2 451 -0.617 -0.453 -1.232 + 144HOH OW 452 -0.010 -0.494 0.392 + 144HOH HW1 453 -0.010 -0.412 0.334 + 144HOH HW2 454 -0.010 -0.576 0.334 + 145HOH OW 455 -0.823 -0.379 0.786 + 145HOH HW1 456 -0.741 -0.379 0.844 + 145HOH HW2 457 -0.905 -0.379 0.844 + 146HOH OW 458 0.245 -0.007 0.787 + 146HOH HW1 459 0.326 -0.007 0.845 + 146HOH HW2 460 0.245 0.074 0.730 + 147HOH OW 461 -0.838 -0.747 -0.923 + 147HOH HW1 462 -0.756 -0.747 -0.865 + 147HOH HW2 463 -0.838 -0.829 -0.980 + 148HOH OW 464 0.811 0.708 0.787 + 148HOH HW1 465 0.729 0.708 0.845 + 148HOH HW2 466 0.811 0.789 0.729 + 149HOH OW 467 0.244 -0.067 1.063 + 149HOH HW1 468 0.162 -0.067 1.121 + 149HOH HW2 469 0.244 -0.149 1.005 + 150HOH OW 470 0.661 -0.085 0.796 + 150HOH HW1 471 0.661 -0.004 0.738 + 150HOH HW2 472 0.661 -0.167 0.738 + 151HOH OW 473 0.995 -0.202 -1.029 + 151HOH HW1 474 1.076 -0.202 -0.972 + 151HOH HW2 475 0.913 -0.202 -0.972 + 152HOH OW 476 -0.563 1.233 0.966 + 152HOH HW1 477 -0.482 1.233 1.024 + 152HOH HW2 478 -0.563 1.315 0.908 + 153HOH OW 479 0.505 0.123 0.699 + 153HOH HW1 480 0.587 0.123 0.757 + 153HOH HW2 481 0.505 0.041 0.641 + 154HOH OW 482 0.157 0.186 1.010 + 154HOH HW1 483 0.075 0.186 1.068 + 154HOH HW2 484 0.157 0.268 0.952 + 155HOH OW 485 0.682 0.396 0.372 + 155HOH HW1 486 0.600 0.396 0.430 + 155HOH HW2 487 0.682 0.315 0.314 + 156HOH OW 488 0.448 -0.463 0.074 + 156HOH HW1 489 0.448 -0.381 0.016 + 156HOH HW2 490 0.448 -0.544 0.016 + 157HOH OW 491 0.345 -0.904 -0.969 + 157HOH HW1 492 0.427 -0.904 -0.912 + 157HOH HW2 493 0.263 -0.904 -0.912 + 158HOH OW 494 -0.136 -0.014 1.006 + 158HOH HW1 495 -0.055 -0.014 1.064 + 158HOH HW2 496 -0.136 0.067 0.948 + 159HOH OW 497 -0.405 -0.860 0.315 + 159HOH HW1 498 -0.324 -0.860 0.373 + 159HOH HW2 499 -0.405 -0.941 0.258 + 160HOH OW 500 -0.328 -0.377 -0.117 + 160HOH HW1 501 -0.410 -0.377 -0.060 + 160HOH HW2 502 -0.328 -0.295 -0.175 + 161HOH OW 503 -0.181 -0.278 1.048 + 161HOH HW1 504 -0.263 -0.278 1.106 + 161HOH HW2 505 -0.181 -0.360 0.990 + 162HOH OW 506 -0.089 -0.683 1.167 + 162HOH HW1 507 -0.089 -0.601 1.109 + 162HOH HW2 508 -0.089 -0.764 1.109 + 163HOH OW 509 0.434 -0.761 0.457 + 163HOH HW1 510 0.516 -0.761 0.515 + 163HOH HW2 511 0.353 -0.761 0.515 + 164HOH OW 512 0.217 0.574 1.148 + 164HOH HW1 513 0.298 0.574 1.205 + 164HOH HW2 514 0.217 0.656 1.090 + 165HOH OW 515 -0.133 0.444 0.469 + 165HOH HW1 516 -0.051 0.444 0.527 + 165HOH HW2 517 -0.133 0.363 0.411 + 166HOH OW 518 0.805 -0.325 -0.010 + 166HOH HW1 519 0.724 -0.325 0.048 + 166HOH HW2 520 0.805 -0.243 -0.068 + 167HOH OW 521 -1.101 -0.076 1.173 + 167HOH HW1 522 -1.182 -0.076 1.231 + 167HOH HW2 523 -1.101 -0.158 1.115 + 168HOH OW 524 -0.754 1.001 -1.319 + 168HOH HW1 525 -0.754 1.083 -1.377 + 168HOH HW2 526 -0.754 0.919 -1.377 + 169HOH OW 527 -1.056 0.496 -1.202 + 169HOH HW1 528 -0.974 0.496 -1.144 + 169HOH HW2 529 -1.137 0.496 -1.144 + 170HOH OW 530 -0.782 -0.539 0.478 + 170HOH HW1 531 -0.701 -0.539 0.536 + 170HOH HW2 532 -0.782 -0.457 0.420 + 171HOH OW 533 -0.752 -0.732 0.940 + 171HOH HW1 534 -0.671 -0.732 0.998 + 171HOH HW2 535 -0.752 -0.814 0.882 + 172HOH OW 536 -0.990 -0.081 -1.055 + 172HOH HW1 537 -1.072 -0.081 -0.997 + 172HOH HW2 538 -0.990 0.001 -1.113 + 173HOH OW 539 0.640 -0.966 0.122 + 173HOH HW1 540 0.559 -0.966 0.179 + 173HOH HW2 541 0.640 -1.047 0.064 + 174HOH OW 542 -0.440 -0.313 0.985 + 174HOH HW1 543 -0.440 -0.232 0.927 + 174HOH HW2 544 -0.440 -0.395 0.927 + 175HOH OW 545 -1.069 -0.441 -0.110 + 175HOH HW1 546 -0.988 -0.441 -0.052 + 175HOH HW2 547 -1.151 -0.441 -0.052 + 176HOH OW 548 -0.312 -1.205 -1.038 + 176HOH HW1 549 -0.230 -1.205 -0.980 + 176HOH HW2 550 -0.312 -1.123 -1.096 + 177HOH OW 551 -0.688 -0.617 1.189 + 177HOH HW1 552 -0.606 -0.617 1.246 + 177HOH HW2 553 -0.688 -0.699 1.131 + 178HOH OW 554 0.080 -0.270 1.140 + 178HOH HW1 555 -0.001 -0.270 1.198 + 178HOH HW2 556 0.080 -0.188 1.082 + 179HOH OW 557 -0.851 -0.207 0.135 + 179HOH HW1 558 -0.933 -0.207 0.193 + 179HOH HW2 559 -0.851 -0.288 0.077 + 180HOH OW 560 0.263 0.413 0.511 + 180HOH HW1 561 0.263 0.494 0.453 + 180HOH HW2 562 0.263 0.331 0.453 + 181HOH OW 563 -0.220 -1.196 0.868 + 181HOH HW1 564 -0.138 -1.196 0.925 + 181HOH HW2 565 -0.301 -1.196 0.925 + 182HOH OW 566 -0.939 -1.148 0.892 + 182HOH HW1 567 -0.857 -1.148 0.949 + 182HOH HW2 568 -0.939 -1.067 0.834 + 183HOH OW 569 -0.539 0.310 -0.655 + 183HOH HW1 570 -0.457 0.310 -0.597 + 183HOH HW2 571 -0.539 0.229 -0.712 + 184HOH OW 572 -0.126 -0.107 0.528 + 184HOH HW1 573 -0.208 -0.107 0.585 + 184HOH HW2 574 -0.126 -0.026 0.470 + 185HOH OW 575 -0.287 -0.855 1.085 + 185HOH HW1 576 -0.369 -0.855 1.143 + 185HOH HW2 577 -0.287 -0.936 1.027 + 186HOH OW 578 -0.605 -0.505 0.891 + 186HOH HW1 579 -0.605 -0.423 0.833 + 186HOH HW2 580 -0.605 -0.587 0.833 + 187HOH OW 581 0.509 -1.026 0.841 + 187HOH HW1 582 0.591 -1.026 0.899 + 187HOH HW2 583 0.428 -1.026 0.899 + 188HOH OW 584 -0.053 0.106 -1.036 + 188HOH HW1 585 0.029 0.106 -0.979 + 188HOH HW2 586 -0.053 0.188 -1.094 + 189HOH OW 587 0.119 -1.189 1.052 + 189HOH HW1 588 0.201 -1.189 1.110 + 189HOH HW2 589 0.119 -1.271 0.994 + 190HOH OW 590 -0.434 -0.253 0.717 + 190HOH HW1 591 -0.516 -0.253 0.775 + 190HOH HW2 592 -0.434 -0.172 0.659 + 191HOH OW 593 -0.506 0.365 1.013 + 191HOH HW1 594 -0.588 0.365 1.071 + 191HOH HW2 595 -0.506 0.284 0.955 + 192HOH OW 596 -0.640 -0.568 -0.840 + 192HOH HW1 597 -0.640 -0.486 -0.898 + 192HOH HW2 598 -0.640 -0.650 -0.898 + 193HOH OW 599 0.725 -0.423 -1.170 + 193HOH HW1 600 0.807 -0.423 -1.113 + 193HOH HW2 601 0.643 -0.423 -1.113 + 194HOH OW 602 -0.865 0.506 -0.730 + 194HOH HW1 603 -0.783 0.506 -0.672 + 194HOH HW2 604 -0.865 0.587 -0.788 + 195HOH OW 605 -0.650 -0.876 0.190 + 195HOH HW1 606 -0.568 -0.876 0.247 + 195HOH HW2 607 -0.650 -0.957 0.132 + 196HOH OW 608 0.152 -0.543 1.145 + 196HOH HW1 609 0.071 -0.543 1.203 + 196HOH HW2 610 0.152 -0.461 1.087 + 197HOH OW 611 0.255 0.360 -0.693 + 197HOH HW1 612 0.173 0.360 -0.635 + 197HOH HW2 613 0.255 0.279 -0.750 + 198HOH OW 614 -1.151 -0.392 1.180 + 198HOH HW1 615 -1.151 -0.310 1.122 + 198HOH HW2 616 -1.151 -0.473 1.122 + 199HOH OW 617 0.199 -1.350 0.001 + 199HOH HW1 618 0.281 -1.350 0.059 + 199HOH HW2 619 0.117 -1.350 0.059 + 200HOH OW 620 1.067 0.606 0.769 + 200HOH HW1 621 1.149 0.606 0.827 + 200HOH HW2 622 1.067 0.687 0.712 + 201HOH OW 623 0.102 0.469 -0.271 + 201HOH HW1 624 0.183 0.469 -0.213 + 201HOH HW2 625 0.102 0.387 -0.328 + 202HOH OW 626 -0.882 -0.064 0.963 + 202HOH HW1 627 -0.964 -0.064 1.021 + 202HOH HW2 628 -0.882 0.017 0.905 + 203HOH OW 629 0.736 -1.118 1.065 + 203HOH HW1 630 0.654 -1.118 1.123 + 203HOH HW2 631 0.736 -1.200 1.007 + 204HOH OW 632 0.172 0.947 -0.317 + 204HOH HW1 633 0.172 1.028 -0.375 + 204HOH HW2 634 0.172 0.865 -0.375 + 205HOH OW 635 0.844 0.407 0.983 + 205HOH HW1 636 0.925 0.407 1.041 + 205HOH HW2 637 0.762 0.407 1.041 + 206HOH OW 638 -0.371 0.348 -1.317 + 206HOH HW1 639 -0.289 0.348 -1.259 + 206HOH HW2 640 -0.371 0.429 -1.375 + 207HOH OW 641 -0.637 -0.149 1.074 + 207HOH HW1 642 -0.556 -0.149 1.132 + 207HOH HW2 643 -0.637 -0.231 1.017 + 208HOH OW 644 -1.312 -0.478 0.706 + 208HOH HW1 645 -1.394 -0.478 0.764 + 208HOH HW2 646 -1.312 -0.396 0.648 + 209HOH OW 647 -0.223 -0.363 0.518 + 209HOH HW1 648 -0.305 -0.363 0.576 + 209HOH HW2 649 -0.223 -0.444 0.460 + 210HOH OW 650 0.066 0.730 -1.262 + 210HOH HW1 651 0.066 0.811 -1.320 + 210HOH HW2 652 0.066 0.648 -1.320 + 211HOH OW 653 -0.234 -0.353 0.149 + 211HOH HW1 654 -0.153 -0.353 0.207 + 211HOH HW2 655 -0.316 -0.353 0.207 + 212HOH OW 656 0.627 0.234 -0.048 + 212HOH HW1 657 0.709 0.234 0.010 + 212HOH HW2 658 0.627 0.316 -0.105 + 213HOH OW 659 0.359 0.340 0.910 + 213HOH HW1 660 0.441 0.340 0.968 + 213HOH HW2 661 0.359 0.259 0.852 + 214HOH OW 662 0.221 -1.000 -1.199 + 214HOH HW1 663 0.139 -1.000 -1.141 + 214HOH HW2 664 0.221 -0.918 -1.256 + 215HOH OW 665 -1.247 -1.063 1.031 + 215HOH HW1 666 -1.329 -1.063 1.089 + 215HOH HW2 667 -1.247 -1.145 0.973 + 216HOH OW 668 0.046 0.635 0.367 + 216HOH HW1 669 0.046 0.717 0.309 + 216HOH HW2 670 0.046 0.554 0.309 + 217HOH OW 671 -0.334 -0.616 0.211 + 217HOH HW1 672 -0.252 -0.616 0.269 + 217HOH HW2 673 -0.416 -0.616 0.269 + 218HOH OW 674 -0.546 -0.634 0.587 + 218HOH HW1 675 -0.465 -0.634 0.645 + 218HOH HW2 676 -0.546 -0.553 0.529 + 219HOH OW 677 -1.190 -0.717 -0.390 + 219HOH HW1 678 -1.108 -0.717 -0.332 + 219HOH HW2 679 -1.190 -0.799 -0.448 + 220HOH OW 680 -0.244 0.952 0.721 + 220HOH HW1 681 -0.326 0.952 0.779 + 220HOH HW2 682 -0.244 1.034 0.663 + 221HOH OW 683 -0.256 1.200 -0.613 + 221HOH HW1 684 -0.338 1.200 -0.555 + 221HOH HW2 685 -0.256 1.118 -0.671 + 222HOH OW 686 -1.088 0.523 -0.265 + 222HOH HW1 687 -1.088 0.605 -0.323 + 222HOH HW2 688 -1.088 0.441 -0.323 + 223HOH OW 689 0.066 0.199 -0.798 + 223HOH HW1 690 0.148 0.199 -0.740 + 223HOH HW2 691 -0.015 0.199 -0.740 + 224HOH OW 692 -1.126 -0.858 -0.165 + 224HOH HW1 693 -1.045 -0.858 -0.107 + 224HOH HW2 694 -1.126 -0.776 -0.223 + 225HOH OW 695 -0.144 0.700 0.769 + 225HOH HW1 696 -0.062 0.700 0.826 + 225HOH HW2 697 -0.144 0.619 0.711 + 226HOH OW 698 0.024 -0.682 -1.110 + 226HOH HW1 699 -0.057 -0.682 -1.052 + 226HOH HW2 700 0.024 -0.600 -1.167 + 227HOH OW 701 -0.306 0.646 -0.760 + 227HOH HW1 702 -0.388 0.646 -0.702 + 227HOH HW2 703 -0.306 0.564 -0.818 + 228HOH OW 704 -0.042 -0.862 -0.903 + 228HOH HW1 705 -0.042 -0.780 -0.961 + 228HOH HW2 706 -0.042 -0.943 -0.961 + 229HOH OW 707 -1.017 1.128 0.570 + 229HOH HW1 708 -0.936 1.128 0.628 + 229HOH HW2 709 -1.099 1.128 0.628 + 230HOH OW 710 -1.340 0.748 -0.893 + 230HOH HW1 711 -1.258 0.748 -0.835 + 230HOH HW2 712 -1.340 0.830 -0.951 + 231HOH OW 713 0.224 1.177 -0.855 + 231HOH HW1 714 0.306 1.177 -0.798 + 231HOH HW2 715 0.224 1.095 -0.913 + 232HOH OW 716 0.073 0.668 -0.080 + 232HOH HW1 717 -0.008 0.668 -0.022 + 232HOH HW2 718 0.073 0.749 -0.138 + 233HOH OW 719 0.431 0.780 0.783 + 233HOH HW1 720 0.350 0.780 0.840 + 233HOH HW2 721 0.431 0.698 0.725 + 234HOH OW 722 -0.066 1.145 0.821 + 234HOH HW1 723 -0.066 1.226 0.763 + 234HOH HW2 724 -0.066 1.063 0.763 + 235HOH OW 725 -0.893 0.872 0.302 + 235HOH HW1 726 -0.811 0.872 0.360 + 235HOH HW2 727 -0.975 0.872 0.360 + 236HOH OW 728 -0.783 0.771 -0.689 + 236HOH HW1 729 -0.701 0.771 -0.631 + 236HOH HW2 730 -0.783 0.852 -0.746 + 237HOH OW 731 -1.127 0.500 -0.813 + 237HOH HW1 732 -1.045 0.500 -0.755 + 237HOH HW2 733 -1.127 0.418 -0.871 + 238HOH OW 734 1.087 1.091 0.060 + 238HOH HW1 735 1.006 1.091 0.117 + 238HOH HW2 736 1.087 1.173 0.002 + 239HOH OW 737 -0.690 0.550 -1.113 + 239HOH HW1 738 -0.771 0.550 -1.055 + 239HOH HW2 739 -0.690 0.469 -1.171 + 240HOH OW 740 0.266 0.552 0.748 + 240HOH HW1 741 0.266 0.633 0.690 + 240HOH HW2 742 0.266 0.470 0.690 + 241HOH OW 743 -0.605 0.934 -1.040 + 241HOH HW1 744 -0.524 0.934 -0.982 + 241HOH HW2 745 -0.687 0.934 -0.982 + 242HOH OW 746 -0.396 0.952 0.342 + 242HOH HW1 747 -0.314 0.952 0.400 + 242HOH HW2 748 -0.396 1.034 0.284 + 243HOH OW 749 -0.432 -0.812 -0.748 + 243HOH HW1 750 -0.351 -0.812 -0.691 + 243HOH HW2 751 -0.432 -0.893 -0.806 + 244HOH OW 752 -0.920 0.666 -0.104 + 244HOH HW1 753 -1.002 0.666 -0.046 + 244HOH HW2 754 -0.920 0.748 -0.162 + 245HOH OW 755 -1.013 0.194 -1.029 + 245HOH HW1 756 -1.095 0.194 -0.971 + 245HOH HW2 757 -1.013 0.112 -1.087 + 246HOH OW 758 -0.933 0.437 -0.473 + 246HOH HW1 759 -0.933 0.518 -0.530 + 246HOH HW2 760 -0.933 0.355 -0.530 + 247HOH OW 761 -0.683 1.092 -0.625 + 247HOH HW1 762 -0.602 1.092 -0.567 + 247HOH HW2 763 -0.765 1.092 -0.567 + 248HOH OW 764 -1.279 0.496 -1.046 + 248HOH HW1 765 -1.198 0.496 -0.988 + 248HOH HW2 766 -1.279 0.578 -1.104 + 249HOH OW 767 -0.678 1.214 -0.104 + 249HOH HW1 768 -0.596 1.214 -0.046 + 249HOH HW2 769 -0.678 1.133 -0.161 + 250HOH OW 770 -0.370 1.178 -0.198 + 250HOH HW1 771 -0.451 1.178 -0.140 + 250HOH HW2 772 -0.370 1.260 -0.256 + 251HOH OW 773 -0.087 -1.131 -0.415 + 251HOH HW1 774 -0.169 -1.131 -0.357 + 251HOH HW2 775 -0.087 -1.213 -0.473 + 252HOH OW 776 -0.252 0.865 -1.224 + 252HOH HW1 777 -0.252 0.947 -1.282 + 252HOH HW2 778 -0.252 0.784 -1.282 + 253HOH OW 779 -1.267 0.097 -1.083 + 253HOH HW1 780 -1.185 0.097 -1.025 + 253HOH HW2 781 -1.349 0.097 -1.025 + 254HOH OW 782 0.212 1.076 -0.564 + 254HOH HW1 783 0.293 1.076 -0.506 + 254HOH HW2 784 0.212 1.157 -0.622 + 255HOH OW 785 -0.601 0.212 0.459 + 255HOH HW1 786 -0.519 0.212 0.517 + 255HOH HW2 787 -0.601 0.130 0.402 + 256HOH OW 788 -0.936 0.953 -0.289 + 256HOH HW1 789 -1.018 0.953 -0.231 + 256HOH HW2 790 -0.936 1.035 -0.347 + 257HOH OW 791 -0.205 0.959 -0.236 + 257HOH HW1 792 -0.286 0.959 -0.178 + 257HOH HW2 793 -0.205 0.878 -0.294 + 258HOH OW 794 -1.027 0.869 0.053 + 258HOH HW1 795 -1.027 0.951 -0.005 + 258HOH HW2 796 -1.027 0.788 -0.005 + 259HOH OW 797 0.653 -1.054 -1.230 + 259HOH HW1 798 0.735 -1.054 -1.172 + 259HOH HW2 799 0.572 -1.054 -1.172 + 260HOH OW 800 -1.260 -1.359 1.227 + 260HOH HW1 801 -1.178 -1.359 1.285 + 260HOH HW2 802 -1.260 -1.277 1.169 + 261HOH OW 803 -1.251 0.322 0.239 + 261HOH HW1 804 -1.169 0.322 0.297 + 261HOH HW2 805 -1.251 0.240 0.182 + 262HOH OW 806 -0.698 1.062 -0.362 + 262HOH HW1 807 -0.779 1.062 -0.304 + 262HOH HW2 808 -0.698 1.144 -0.420 + 263HOH OW 809 -0.319 -1.159 0.198 + 263HOH HW1 810 -0.401 -1.159 0.256 + 263HOH HW2 811 -0.319 -1.241 0.140 + 264HOH OW 812 -0.241 0.600 1.172 + 264HOH HW1 813 -0.241 0.682 1.115 + 264HOH HW2 814 -0.241 0.519 1.115 + 265HOH OW 815 -1.016 0.557 0.474 + 265HOH HW1 816 -0.934 0.557 0.531 + 265HOH HW2 817 -1.098 0.557 0.531 + 266HOH OW 818 -0.995 0.847 -0.539 + 266HOH HW1 819 -0.913 0.847 -0.481 + 266HOH HW2 820 -0.995 0.929 -0.596 + 267HOH OW 821 0.194 0.962 0.630 + 267HOH HW1 822 0.276 0.962 0.687 + 267HOH HW2 823 0.194 0.880 0.572 + 268HOH OW 824 -0.638 0.811 -0.453 + 268HOH HW1 825 -0.719 0.811 -0.395 + 268HOH HW2 826 -0.638 0.893 -0.511 + 269HOH OW 827 -0.275 0.475 -1.090 + 269HOH HW1 828 -0.357 0.475 -1.033 + 269HOH HW2 829 -0.275 0.394 -1.148 + 270HOH OW 830 0.044 -1.294 -1.188 + 270HOH HW1 831 0.044 -1.212 -1.246 + 270HOH HW2 832 0.044 -1.376 -1.246 + 271HOH OW 833 -1.084 -1.227 -0.966 + 271HOH HW1 834 -1.002 -1.227 -0.908 + 271HOH HW2 835 -1.166 -1.227 -0.908 + 272HOH OW 836 -0.412 0.824 -0.593 + 272HOH HW1 837 -0.330 0.824 -0.535 + 272HOH HW2 838 -0.412 0.906 -0.651 + 273HOH OW 839 -0.361 0.228 0.803 + 273HOH HW1 840 -0.279 0.228 0.861 + 273HOH HW2 841 -0.361 0.146 0.745 + 274HOH OW 842 -0.566 0.776 0.114 + 274HOH HW1 843 -0.648 0.776 0.172 + 274HOH HW2 844 -0.566 0.858 0.056 + 275HOH OW 845 1.165 1.219 -0.468 + 275HOH HW1 846 1.084 1.219 -0.411 + 275HOH HW2 847 1.165 1.137 -0.526 + 276HOH OW 848 1.119 0.741 0.533 + 276HOH HW1 849 1.119 0.822 0.475 + 276HOH HW2 850 1.119 0.659 0.475 + 277HOH OW 851 -0.520 0.606 1.139 + 277HOH HW1 852 -0.439 0.606 1.197 + 277HOH HW2 853 -0.602 0.606 1.197 + 278HOH OW 854 -0.051 -1.211 -0.129 + 278HOH HW1 855 0.030 -1.211 -0.072 + 278HOH HW2 856 -0.051 -1.129 -0.187 + 279HOH OW 857 0.020 0.955 -0.083 + 279HOH HW1 858 0.101 0.955 -0.026 + 279HOH HW2 859 0.020 0.873 -0.141 + 280HOH OW 860 -0.559 0.993 1.102 + 280HOH HW1 861 -0.641 0.993 1.160 + 280HOH HW2 862 -0.559 1.074 1.044 + 281HOH OW 863 -0.644 -1.136 0.590 + 281HOH HW1 864 -0.726 -1.136 0.648 + 281HOH HW2 865 -0.644 -1.218 0.532 + 282HOH OW 866 0.323 -0.094 -1.226 + 282HOH HW1 867 0.323 -0.012 -1.284 + 282HOH HW2 868 0.323 -0.176 -1.284 + 283HOH OW 869 -0.210 0.251 1.035 + 283HOH HW1 870 -0.128 0.251 1.093 + 283HOH HW2 871 -0.292 0.251 1.093 + 284HOH OW 872 0.067 -0.081 -0.774 + 284HOH HW1 873 0.148 -0.081 -0.717 + 284HOH HW2 874 0.067 0.000 -0.832 + 285HOH OW 875 -0.256 0.607 -0.359 + 285HOH HW1 876 -0.174 0.607 -0.301 + 285HOH HW2 877 -0.256 0.525 -0.416 + 286HOH OW 878 0.548 0.126 -0.817 + 286HOH HW1 879 0.466 0.126 -0.759 + 286HOH HW2 880 0.548 0.208 -0.875 + 287HOH OW 881 -0.158 0.494 -0.589 + 287HOH HW1 882 -0.239 0.494 -0.531 + 287HOH HW2 883 -0.158 0.412 -0.647 + 288HOH OW 884 1.128 0.592 -0.086 + 288HOH HW1 885 1.128 0.674 -0.144 + 288HOH HW2 886 1.128 0.511 -0.144 + 289HOH OW 887 -0.678 0.714 0.451 + 289HOH HW1 888 -0.596 0.714 0.508 + 289HOH HW2 889 -0.760 0.714 0.508 + 290HOH OW 890 1.107 0.191 -1.212 + 290HOH HW1 891 1.189 0.191 -1.154 + 290HOH HW2 892 1.107 0.273 -1.270 + 291HOH OW 893 -0.549 -0.952 -1.207 + 291HOH HW1 894 -0.467 -0.952 -1.150 + 291HOH HW2 895 -0.549 -1.033 -1.265 + 292HOH OW 896 -0.772 1.004 0.608 + 292HOH HW1 897 -0.854 1.004 0.666 + 292HOH HW2 898 -0.772 1.086 0.551 + 293HOH OW 899 0.880 0.120 -0.484 + 293HOH HW1 900 0.799 0.120 -0.427 + 293HOH HW2 901 0.880 0.039 -0.542 + 294HOH OW 902 -1.212 0.549 0.000 + 294HOH HW1 903 -1.212 0.630 -0.058 + 294HOH HW2 904 -1.212 0.467 -0.058 + 295HOH OW 905 -0.004 0.846 0.193 + 295HOH HW1 906 0.078 0.846 0.251 + 295HOH HW2 907 -0.086 0.846 0.251 + 296HOH OW 908 -0.068 0.793 -0.730 + 296HOH HW1 909 0.014 0.793 -0.672 + 296HOH HW2 910 -0.068 0.875 -0.788 + 297HOH OW 911 -1.012 -0.732 -1.183 + 297HOH HW1 912 -0.931 -0.732 -1.125 + 297HOH HW2 913 -1.012 -0.813 -1.240 + 298HOH OW 914 0.293 1.005 -1.326 + 298HOH HW1 915 0.211 1.005 -1.268 + 298HOH HW2 916 0.293 1.087 -1.384 + 299HOH OW 917 0.439 -0.098 -0.640 + 299HOH HW1 918 0.358 -0.098 -0.582 + 299HOH HW2 919 0.439 -0.180 -0.698 + 300HOH OW 920 -1.289 -0.999 -0.748 + 300HOH HW1 921 -1.289 -0.917 -0.806 + 300HOH HW2 922 -1.289 -1.081 -0.806 + 301HOH OW 923 -0.102 0.855 1.107 + 301HOH HW1 924 -0.020 0.855 1.164 + 301HOH HW2 925 -0.183 0.855 1.164 + 302HOH OW 926 0.279 0.989 0.889 + 302HOH HW1 927 0.360 0.989 0.947 + 302HOH HW2 928 0.279 1.071 0.831 + 303HOH OW 929 -0.659 0.241 0.726 + 303HOH HW1 930 -0.578 0.241 0.784 + 303HOH HW2 931 -0.659 0.159 0.669 + 304HOH OW 932 0.071 1.063 1.048 + 304HOH HW1 933 -0.010 1.063 1.106 + 304HOH HW2 934 0.071 1.144 0.990 + 305HOH OW 935 -0.006 0.360 0.890 + 305HOH HW1 936 -0.088 0.360 0.947 + 305HOH HW2 937 -0.006 0.278 0.832 + 306HOH OW 938 -0.014 0.606 1.000 + 306HOH HW1 939 -0.014 0.688 0.943 + 306HOH HW2 940 -0.014 0.525 0.943 + 307HOH OW 941 -0.813 0.729 -1.282 + 307HOH HW1 942 -0.732 0.729 -1.224 + 307HOH HW2 943 -0.895 0.729 -1.224 + 308HOH OW 944 0.081 1.200 0.560 + 308HOH HW1 945 0.163 1.200 0.617 + 308HOH HW2 946 0.081 1.281 0.502 + 309HOH OW 947 -0.517 -1.016 1.126 + 309HOH HW1 948 -0.435 -1.016 1.184 + 309HOH HW2 949 -0.517 -1.098 1.068 + 310HOH OW 950 1.071 0.337 0.840 + 310HOH HW1 951 0.989 0.337 0.898 + 310HOH HW2 952 1.071 0.418 0.782 + 311HOH OW 953 -0.286 0.752 0.185 + 311HOH HW1 954 -0.367 0.752 0.242 + 311HOH HW2 955 -0.286 0.671 0.127 + 312HOH OW 956 0.385 1.214 1.041 + 312HOH HW1 957 0.385 1.296 0.983 + 312HOH HW2 958 0.385 1.133 0.983 + 313HOH OW 959 0.255 1.151 0.269 + 313HOH HW1 960 0.337 1.151 0.327 + 313HOH HW2 961 0.174 1.151 0.327 + 314HOH OW 962 -1.358 1.243 0.928 + 314HOH HW1 963 -1.276 1.243 0.986 + 314HOH HW2 964 -1.358 1.325 0.871 + 315HOH OW 965 -0.507 1.179 -1.094 + 315HOH HW1 966 -0.425 1.179 -1.036 + 315HOH HW2 967 -0.507 1.098 -1.151 + 316HOH OW 968 -0.780 0.377 1.114 + 316HOH HW1 969 -0.862 0.377 1.171 + 316HOH HW2 970 -0.780 0.458 1.056 + 317HOH OW 971 -0.390 -0.981 0.838 + 317HOH HW1 972 -0.472 -0.981 0.896 + 317HOH HW2 973 -0.390 -1.063 0.780 + 318HOH OW 974 -0.851 0.859 -0.936 + 318HOH HW1 975 -0.851 0.941 -0.993 + 318HOH HW2 976 -0.851 0.777 -0.993 + 319HOH OW 977 -1.205 0.971 -1.143 + 319HOH HW1 978 -1.123 0.971 -1.085 + 319HOH HW2 979 -1.286 0.971 -1.085 + 320HOH OW 980 -1.208 0.754 0.865 + 320HOH HW1 981 -1.126 0.754 0.923 + 320HOH HW2 982 -1.208 0.836 0.807 + 321HOH OW 983 0.208 -1.103 0.807 + 321HOH HW1 984 0.290 -1.103 0.865 + 321HOH HW2 985 0.208 -1.185 0.749 + 322HOH OW 986 -0.470 0.835 0.585 + 322HOH HW1 987 -0.552 0.835 0.643 + 322HOH HW2 988 -0.470 0.917 0.528 + 323HOH OW 989 0.588 0.585 0.670 + 323HOH HW1 990 0.506 0.585 0.728 + 323HOH HW2 991 0.588 0.503 0.613 + 324HOH OW 992 -0.040 -1.181 0.657 + 324HOH HW1 993 -0.040 -1.100 0.599 + 324HOH HW2 994 -0.040 -1.263 0.599 + 325HOH OW 995 -0.350 0.874 0.963 + 325HOH HW1 996 -0.268 0.874 1.021 + 325HOH HW2 997 -0.431 0.874 1.021 + 326HOH OW 998 0.468 -0.522 -1.184 + 326HOH HW1 999 0.550 -0.522 -1.126 + 326HOH HW2 1000 0.468 -0.440 -1.241 + 327HOH OW 1001 0.094 0.760 -0.988 + 327HOH HW1 1002 0.176 0.760 -0.930 + 327HOH HW2 1003 0.094 0.678 -1.045 + 328HOH OW 1004 1.144 -1.095 1.212 + 328HOH HW1 1005 1.062 -1.095 1.270 + 328HOH HW2 1006 1.144 -1.014 1.154 + 329HOH OW 1007 -0.454 -1.202 -1.271 + 329HOH HW1 1008 -0.536 -1.202 -1.214 + 329HOH HW2 1009 -0.454 -1.283 -1.329 + 330HOH OW 1010 -0.760 -1.316 0.771 + 330HOH HW1 1011 -0.760 -1.234 0.713 + 330HOH HW2 1012 -0.760 -1.397 0.713 + 331HOH OW 1013 0.116 -0.555 -0.804 + 331HOH HW1 1014 0.198 -0.555 -0.747 + 331HOH HW2 1015 0.034 -0.555 -0.747 + 332HOH OW 1016 -0.155 -0.752 -0.566 + 332HOH HW1 1017 -0.073 -0.752 -0.508 + 332HOH HW2 1018 -0.155 -0.670 -0.623 + 333HOH OW 1019 1.139 0.172 -0.679 + 333HOH HW1 1020 1.221 0.172 -0.622 + 333HOH HW2 1021 1.139 0.091 -0.737 + 334HOH OW 1022 0.596 -0.604 -0.104 + 334HOH HW1 1023 0.514 -0.604 -0.046 + 334HOH HW2 1024 0.596 -0.522 -0.162 + 335HOH OW 1025 1.027 -0.509 0.071 + 335HOH HW1 1026 0.946 -0.509 0.128 + 335HOH HW2 1027 1.027 -0.590 0.013 + 336HOH OW 1028 1.032 -0.569 -0.245 + 336HOH HW1 1029 1.032 -0.487 -0.303 + 336HOH HW2 1030 1.032 -0.650 -0.303 + 337HOH OW 1031 1.044 -1.144 -0.321 + 337HOH HW1 1032 1.126 -1.144 -0.263 + 337HOH HW2 1033 0.963 -1.144 -0.263 + 338HOH OW 1034 -1.364 -0.681 0.367 + 338HOH HW1 1035 -1.282 -0.681 0.425 + 338HOH HW2 1036 -1.364 -0.599 0.309 + 339HOH OW 1037 0.598 -0.144 -1.204 + 339HOH HW1 1038 0.680 -0.144 -1.147 + 339HOH HW2 1039 0.598 -0.226 -1.262 + 340HOH OW 1040 0.514 -0.859 -0.133 + 340HOH HW1 1041 0.432 -0.859 -0.075 + 340HOH HW2 1042 0.514 -0.778 -0.190 + 341HOH OW 1043 0.257 -0.686 -1.257 + 341HOH HW1 1044 0.175 -0.686 -1.199 + 341HOH HW2 1045 0.257 -0.767 -1.314 + 342HOH OW 1046 1.197 -0.812 0.104 + 342HOH HW1 1047 1.197 -0.731 0.046 + 342HOH HW2 1048 1.197 -0.894 0.046 + 343HOH OW 1049 1.124 -0.620 -0.890 + 343HOH HW1 1050 1.205 -0.620 -0.833 + 343HOH HW2 1051 1.042 -0.620 -0.833 + 344HOH OW 1052 -1.306 0.916 -0.001 + 344HOH HW1 1053 -1.224 0.916 0.056 + 344HOH HW2 1054 -1.306 0.997 -0.059 + 345HOH OW 1055 0.087 -0.222 0.669 + 345HOH HW1 1056 0.168 -0.222 0.727 + 345HOH HW2 1057 0.087 -0.303 0.611 + 346HOH OW 1058 0.471 1.040 -0.495 + 346HOH HW1 1059 0.390 1.040 -0.437 + 346HOH HW2 1060 0.471 1.122 -0.553 + 347HOH OW 1061 0.321 -0.621 -0.970 + 347HOH HW1 1062 0.239 -0.621 -0.912 + 347HOH HW2 1063 0.321 -0.703 -1.028 + 348HOH OW 1064 -0.798 -0.984 0.412 + 348HOH HW1 1065 -0.798 -0.903 0.354 + 348HOH HW2 1066 -0.798 -1.066 0.354 + 349HOH OW 1067 1.170 -0.787 0.620 + 349HOH HW1 1068 1.252 -0.787 0.677 + 349HOH HW2 1069 1.089 -0.787 0.677 + 350HOH OW 1070 -0.311 -0.605 0.724 + 350HOH HW1 1071 -0.229 -0.605 0.782 + 350HOH HW2 1072 -0.311 -0.524 0.666 + 351HOH OW 1073 -0.810 -0.494 -0.053 + 351HOH HW1 1074 -0.728 -0.494 0.005 + 351HOH HW2 1075 -0.810 -0.576 -0.111 + 352HOH OW 1076 0.545 -0.210 0.014 + 352HOH HW1 1077 0.463 -0.210 0.072 + 352HOH HW2 1078 0.545 -0.129 -0.043 + 353HOH OW 1079 0.989 0.339 0.409 + 353HOH HW1 1080 0.907 0.339 0.467 + 353HOH HW2 1081 0.989 0.257 0.351 + 354HOH OW 1082 -1.173 1.201 -0.241 + 354HOH HW1 1083 -1.173 1.283 -0.298 + 354HOH HW2 1084 -1.173 1.120 -0.298 + 355HOH OW 1085 -1.285 -0.991 -1.163 + 355HOH HW1 1086 -1.203 -0.991 -1.105 + 355HOH HW2 1087 -1.366 -0.991 -1.105 + 356HOH OW 1088 1.170 0.980 -0.784 + 356HOH HW1 1089 1.252 0.980 -0.726 + 356HOH HW2 1090 1.170 1.062 -0.842 + 357HOH OW 1091 0.653 -0.129 -0.881 + 357HOH HW1 1092 0.734 -0.129 -0.824 + 357HOH HW2 1093 0.653 -0.211 -0.939 + 358HOH OW 1094 1.193 -0.216 0.206 + 358HOH HW1 1095 1.111 -0.216 0.264 + 358HOH HW2 1096 1.193 -0.134 0.148 + 359HOH OW 1097 -1.175 0.114 -0.803 + 359HOH HW1 1098 -1.257 0.114 -0.745 + 359HOH HW2 1099 -1.175 0.033 -0.860 + 360HOH OW 1100 0.814 0.570 -1.217 + 360HOH HW1 1101 0.814 0.652 -1.274 + 360HOH HW2 1102 0.814 0.489 -1.274 + 361HOH OW 1103 0.714 -1.250 -0.496 + 361HOH HW1 1104 0.796 -1.250 -0.438 + 361HOH HW2 1105 0.633 -1.250 -0.438 + 362HOH OW 1106 0.959 -0.816 -0.174 + 362HOH HW1 1107 1.041 -0.816 -0.116 + 362HOH HW2 1108 0.959 -0.735 -0.232 + 363HOH OW 1109 1.189 -1.222 0.624 + 363HOH HW1 1110 1.271 -1.222 0.682 + 363HOH HW2 1111 1.189 -1.304 0.566 + 364HOH OW 1112 0.899 1.031 0.259 + 364HOH HW1 1113 0.817 1.031 0.317 + 364HOH HW2 1114 0.899 1.112 0.201 + 365HOH OW 1115 -1.263 -0.238 -0.225 + 365HOH HW1 1116 -1.344 -0.238 -0.167 + 365HOH HW2 1117 -1.263 -0.319 -0.283 + 366HOH OW 1118 0.319 -0.348 -0.664 + 366HOH HW1 1119 0.319 -0.267 -0.722 + 366HOH HW2 1120 0.319 -0.430 -0.722 + 367HOH OW 1121 0.469 1.226 -0.745 + 367HOH HW1 1122 0.550 1.226 -0.687 + 367HOH HW2 1123 0.387 1.226 -0.687 + 368HOH OW 1124 -0.892 1.216 -0.757 + 368HOH HW1 1125 -0.811 1.216 -0.700 + 368HOH HW2 1126 -0.892 1.297 -0.815 + 369HOH OW 1127 0.953 0.990 -0.340 + 369HOH HW1 1128 1.035 0.990 -0.283 + 369HOH HW2 1129 0.953 0.908 -0.398 + 370HOH OW 1130 -1.321 -0.721 -0.634 + 370HOH HW1 1131 -1.402 -0.721 -0.576 + 370HOH HW2 1132 -1.321 -0.639 -0.692 + 371HOH OW 1133 -0.827 -1.177 0.057 + 371HOH HW1 1134 -0.908 -1.177 0.115 + 371HOH HW2 1135 -0.827 -1.259 -0.000 + 372HOH OW 1136 -0.105 -0.985 -1.352 + 372HOH HW1 1137 -0.105 -0.903 -1.409 + 372HOH HW2 1138 -0.105 -1.066 -1.409 + 373HOH OW 1139 1.077 -1.164 0.388 + 373HOH HW1 1140 1.159 -1.164 0.446 + 373HOH HW2 1141 0.995 -1.164 0.446 + 374HOH OW 1142 -0.495 -0.903 0.585 + 374HOH HW1 1143 -0.413 -0.903 0.643 + 374HOH HW2 1144 -0.495 -0.821 0.527 + 375HOH OW 1145 0.776 -1.143 -0.253 + 375HOH HW1 1146 0.858 -1.143 -0.195 + 375HOH HW2 1147 0.776 -1.225 -0.311 + 376HOH OW 1148 0.871 -0.712 0.284 + 376HOH HW1 1149 0.789 -0.712 0.342 + 376HOH HW2 1150 0.871 -0.630 0.226 + 377HOH OW 1151 -0.965 0.551 0.191 + 377HOH HW1 1152 -1.047 0.551 0.248 + 377HOH HW2 1153 -0.965 0.470 0.133 + 378HOH OW 1154 0.793 0.265 0.589 + 378HOH HW1 1155 0.793 0.347 0.532 + 378HOH HW2 1156 0.793 0.183 0.532 + 379HOH OW 1157 1.106 -0.060 0.441 + 379HOH HW1 1158 1.188 -0.060 0.499 + 379HOH HW2 1159 1.024 -0.060 0.499 + 380HOH OW 1160 -1.087 -0.934 0.810 + 380HOH HW1 1161 -1.005 -0.934 0.868 + 380HOH HW2 1162 -1.087 -0.852 0.752 + 381HOH OW 1163 -0.145 -0.581 -0.169 + 381HOH HW1 1164 -0.064 -0.581 -0.111 + 381HOH HW2 1165 -0.145 -0.662 -0.226 + 382HOH OW 1166 0.872 -0.130 -0.198 + 382HOH HW1 1167 0.790 -0.130 -0.140 + 382HOH HW2 1168 0.872 -0.049 -0.256 + 383HOH OW 1169 -1.080 -0.446 -0.495 + 383HOH HW1 1170 -1.162 -0.446 -0.437 + 383HOH HW2 1171 -1.080 -0.527 -0.552 + 384HOH OW 1172 -1.196 -0.482 0.457 + 384HOH HW1 1173 -1.196 -0.401 0.399 + 384HOH HW2 1174 -1.196 -0.564 0.399 + 385HOH OW 1175 -0.767 -0.996 -1.051 + 385HOH HW1 1176 -0.685 -0.996 -0.993 + 385HOH HW2 1177 -0.849 -0.996 -0.993 + 386HOH OW 1178 0.682 -1.011 -0.633 + 386HOH HW1 1179 0.764 -1.011 -0.575 + 386HOH HW2 1180 0.682 -0.930 -0.691 + 387HOH OW 1181 -0.795 -0.342 -0.818 + 387HOH HW1 1182 -0.714 -0.342 -0.760 + 387HOH HW2 1183 -0.795 -0.424 -0.875 + 388HOH OW 1184 0.238 0.275 -1.304 + 388HOH HW1 1185 0.156 0.275 -1.246 + 388HOH HW2 1186 0.238 0.356 -1.361 + 389HOH OW 1187 0.839 -0.571 -0.506 + 389HOH HW1 1188 0.758 -0.571 -0.448 + 389HOH HW2 1189 0.839 -0.653 -0.564 + 390HOH OW 1190 1.064 -0.261 -0.645 + 390HOH HW1 1191 1.064 -0.180 -0.703 + 390HOH HW2 1192 1.064 -0.343 -0.703 + 391HOH OW 1193 0.374 1.172 -0.197 + 391HOH HW1 1194 0.456 1.172 -0.139 + 391HOH HW2 1195 0.293 1.172 -0.139 + 392HOH OW 1196 1.068 -0.507 -1.277 + 392HOH HW1 1197 1.149 -0.507 -1.220 + 392HOH HW2 1198 1.068 -0.426 -1.335 + 393HOH OW 1199 0.712 -0.779 -0.779 + 393HOH HW1 1200 0.794 -0.779 -0.722 + 393HOH HW2 1201 0.712 -0.860 -0.837 + 394HOH OW 1202 -0.942 0.371 0.726 + 394HOH HW1 1203 -1.023 0.371 0.784 + 394HOH HW2 1204 -0.942 0.453 0.668 + 395HOH OW 1205 0.931 1.219 -0.599 + 395HOH HW1 1206 0.850 1.219 -0.541 + 395HOH HW2 1207 0.931 1.137 -0.657 + 396HOH OW 1208 0.129 -1.011 -0.155 + 396HOH HW1 1209 0.129 -0.930 -0.213 + 396HOH HW2 1210 0.129 -1.093 -0.213 + 397HOH OW 1211 -1.193 -0.664 0.041 + 397HOH HW1 1212 -1.112 -0.664 0.099 + 397HOH HW2 1213 -1.275 -0.664 0.099 + 398HOH OW 1214 -1.248 0.484 -0.563 + 398HOH HW1 1215 -1.167 0.484 -0.505 + 398HOH HW2 1216 -1.248 0.565 -0.621 + 399HOH OW 1217 -0.271 0.471 0.707 + 399HOH HW1 1218 -0.189 0.471 0.765 + 399HOH HW2 1219 -0.271 0.389 0.649 + 400HOH OW 1220 1.172 0.052 -0.226 + 400HOH HW1 1221 1.090 0.052 -0.168 + 400HOH HW2 1222 1.172 0.134 -0.283 + 401HOH OW 1223 1.075 -1.158 -0.754 + 401HOH HW1 1224 0.993 -1.158 -0.696 + 401HOH HW2 1225 1.075 -1.240 -0.812 + 402HOH OW 1226 0.596 0.179 0.227 + 402HOH HW1 1227 0.596 0.261 0.169 + 402HOH HW2 1228 0.596 0.098 0.169 + 403HOH OW 1229 -0.826 0.113 0.315 + 403HOH HW1 1230 -0.745 0.113 0.372 + 403HOH HW2 1231 -0.908 0.113 0.372 + 404HOH OW 1232 1.146 -0.988 -0.541 + 404HOH HW1 1233 1.228 -0.988 -0.483 + 404HOH HW2 1234 1.146 -0.906 -0.599 + 405HOH OW 1235 0.787 -0.746 0.028 + 405HOH HW1 1236 0.869 -0.746 0.086 + 405HOH HW2 1237 0.787 -0.828 -0.030 + 406HOH OW 1238 -0.898 -0.242 -1.260 + 406HOH HW1 1239 -0.980 -0.242 -1.202 + 406HOH HW2 1240 -0.898 -0.161 -1.318 + 407HOH OW 1241 0.436 0.339 -0.226 + 407HOH HW1 1242 0.354 0.339 -0.168 + 407HOH HW2 1243 0.436 0.257 -0.284 + 408HOH OW 1244 1.158 -0.177 -0.409 + 408HOH HW1 1245 1.158 -0.095 -0.467 + 408HOH HW2 1246 1.158 -0.258 -0.467 + 409HOH OW 1247 1.066 -0.454 1.046 + 409HOH HW1 1248 1.148 -0.454 1.103 + 409HOH HW2 1249 0.985 -0.454 1.103 + 410HOH OW 1250 0.356 0.461 -1.146 + 410HOH HW1 1251 0.438 0.461 -1.088 + 410HOH HW2 1252 0.356 0.542 -1.204 + 411HOH OW 1253 0.897 0.015 0.604 + 411HOH HW1 1254 0.979 0.015 0.662 + 411HOH HW2 1255 0.897 -0.066 0.546 + 412HOH OW 1256 0.953 -1.270 0.090 + 412HOH HW1 1257 0.871 -1.270 0.148 + 412HOH HW2 1258 0.953 -1.188 0.033 + 413HOH OW 1259 -0.514 0.524 -0.891 + 413HOH HW1 1260 -0.596 0.524 -0.834 + 413HOH HW2 1261 -0.514 0.442 -0.949 + 414HOH OW 1262 -1.260 -0.156 -0.998 + 414HOH HW1 1263 -1.260 -0.074 -1.055 + 414HOH HW2 1264 -1.260 -0.238 -1.055 + 415HOH OW 1265 0.251 -0.776 -0.208 + 415HOH HW1 1266 0.332 -0.776 -0.150 + 415HOH HW2 1267 0.169 -0.776 -0.150 + 416HOH OW 1268 1.174 -1.108 0.132 + 416HOH HW1 1269 1.256 -1.108 0.190 + 416HOH HW2 1270 1.174 -1.026 0.075 + 417HOH OW 1271 0.927 -0.466 -0.984 + 417HOH HW1 1272 1.008 -0.466 -0.927 + 417HOH HW2 1273 0.927 -0.547 -1.042 + 418HOH OW 1274 0.483 -1.154 -0.900 + 418HOH HW1 1275 0.402 -1.154 -0.842 + 418HOH HW2 1276 0.483 -1.072 -0.958 + 419HOH OW 1277 0.618 -0.507 -0.367 + 419HOH HW1 1278 0.536 -0.507 -0.310 + 419HOH HW2 1279 0.618 -0.588 -0.425 + 420HOH OW 1280 0.842 0.400 0.001 + 420HOH HW1 1281 0.842 0.482 -0.057 + 420HOH HW2 1282 0.842 0.318 -0.057 + 421HOH OW 1283 0.497 0.573 1.130 + 421HOH HW1 1284 0.579 0.573 1.188 + 421HOH HW2 1285 0.415 0.573 1.188 + 422HOH OW 1286 -1.267 -0.170 -0.728 + 422HOH HW1 1287 -1.185 -0.170 -0.670 + 422HOH HW2 1288 -1.267 -0.088 -0.786 + 423HOH OW 1289 0.486 -0.732 -0.465 + 423HOH HW1 1290 0.568 -0.732 -0.407 + 423HOH HW2 1291 0.486 -0.814 -0.523 + 424HOH OW 1292 0.373 -1.145 -0.216 + 424HOH HW1 1293 0.291 -1.145 -0.158 + 424HOH HW2 1294 0.373 -1.064 -0.274 + 425HOH OW 1295 0.922 -0.720 -1.152 + 425HOH HW1 1296 0.840 -0.720 -1.094 + 425HOH HW2 1297 0.922 -0.802 -1.210 + 426HOH OW 1298 -0.595 -1.226 -0.688 + 426HOH HW1 1299 -0.595 -1.144 -0.745 + 426HOH HW2 1300 -0.595 -1.307 -0.745 + 427HOH OW 1301 1.197 0.729 -1.217 + 427HOH HW1 1302 1.279 0.729 -1.160 + 427HOH HW2 1303 1.116 0.729 -1.160 + 428HOH OW 1304 0.712 -0.909 0.405 + 428HOH HW1 1305 0.794 -0.909 0.463 + 428HOH HW2 1306 0.712 -0.827 0.348 + 429HOH OW 1307 0.772 -0.027 1.052 + 429HOH HW1 1308 0.854 -0.027 1.110 + 429HOH HW2 1309 0.772 -0.109 0.994 + 430HOH OW 1310 0.812 -0.002 -1.122 + 430HOH HW1 1311 0.730 -0.002 -1.064 + 430HOH HW2 1312 0.812 0.079 -1.179 + 431HOH OW 1313 -1.042 -0.294 0.939 + 431HOH HW1 1314 -1.124 -0.294 0.997 + 431HOH HW2 1315 -1.042 -0.375 0.881 + 432HOH OW 1316 0.734 -0.839 1.075 + 432HOH HW1 1317 0.734 -0.757 1.018 + 432HOH HW2 1318 0.734 -0.920 1.018 + 433HOH OW 1319 -1.133 -0.620 0.934 + 433HOH HW1 1320 -1.051 -0.620 0.991 + 433HOH HW2 1321 -1.215 -0.620 0.991 + 434HOH OW 1322 0.906 1.088 -1.280 + 434HOH HW1 1323 0.988 1.088 -1.222 + 434HOH HW2 1324 0.906 1.170 -1.337 + 435HOH OW 1325 -1.021 0.517 1.087 + 435HOH HW1 1326 -0.939 0.517 1.145 + 435HOH HW2 1327 -1.021 0.435 1.030 + 436HOH OW 1328 0.594 0.558 -0.865 + 436HOH HW1 1329 0.513 0.558 -0.807 + 436HOH HW2 1330 0.594 0.640 -0.922 + 437HOH OW 1331 0.855 -0.615 0.971 + 437HOH HW1 1332 0.773 -0.615 1.029 + 437HOH HW2 1333 0.855 -0.697 0.913 + 438HOH OW 1334 -1.152 -0.867 -0.937 + 438HOH HW1 1335 -1.152 -0.785 -0.995 + 438HOH HW2 1336 -1.152 -0.949 -0.995 + 439HOH OW 1337 1.062 1.019 0.477 + 439HOH HW1 1338 1.144 1.019 0.535 + 439HOH HW2 1339 0.981 1.019 0.535 + 440HOH OW 1340 1.055 0.508 -1.123 + 440HOH HW1 1341 1.137 0.508 -1.065 + 440HOH HW2 1342 1.055 0.590 -1.181 + 441HOH OW 1343 1.159 0.187 0.563 + 441HOH HW1 1344 1.241 0.187 0.621 + 441HOH HW2 1345 1.159 0.105 0.506 + 442HOH OW 1346 0.411 -0.772 0.850 + 442HOH HW1 1347 0.330 -0.772 0.908 + 442HOH HW2 1348 0.411 -0.691 0.792 + 443HOH OW 1349 0.654 -0.704 0.717 + 443HOH HW1 1350 0.572 -0.704 0.775 + 443HOH HW2 1351 0.654 -0.786 0.659 + 444HOH OW 1352 0.411 -0.577 1.048 + 444HOH HW1 1353 0.411 -0.496 0.991 + 444HOH HW2 1354 0.411 -0.659 0.991 + 445HOH OW 1355 0.867 0.207 1.160 + 445HOH HW1 1356 0.949 0.207 1.218 + 445HOH HW2 1357 0.786 0.207 1.218 + 446HOH OW 1358 1.042 -0.890 -0.864 + 446HOH HW1 1359 1.124 -0.890 -0.806 + 446HOH HW2 1360 1.042 -0.808 -0.922 + 447HOH OW 1361 -1.141 0.259 1.079 + 447HOH HW1 1362 -1.059 0.259 1.137 + 447HOH HW2 1363 -1.141 0.177 1.022 + 448HOH OW 1364 0.649 -0.435 0.993 + 448HOH HW1 1365 0.567 -0.435 1.051 + 448HOH HW2 1366 0.649 -0.354 0.935 + 449HOH OW 1367 0.999 -0.057 0.055 + 449HOH HW1 1368 0.918 -0.057 0.113 + 449HOH HW2 1369 0.999 -0.138 -0.003 + 450HOH OW 1370 0.930 -0.647 0.706 + 450HOH HW1 1371 0.930 -0.565 0.648 + 450HOH HW2 1372 0.930 -0.728 0.648 + 451HOH OW 1373 -1.319 -0.595 1.127 + 451HOH HW1 1374 -1.237 -0.595 1.185 + 451HOH HW2 1375 -1.401 -0.595 1.185 + 452HOH OW 1376 0.731 -0.883 -0.311 + 452HOH HW1 1377 0.813 -0.883 -0.253 + 452HOH HW2 1378 0.731 -0.802 -0.368 + 453HOH OW 1379 -0.851 -0.175 -0.606 + 453HOH HW1 1380 -0.770 -0.175 -0.549 + 453HOH HW2 1381 -0.851 -0.257 -0.664 + 454HOH OW 1382 -0.757 -0.759 -0.051 + 454HOH HW1 1383 -0.838 -0.759 0.007 + 454HOH HW2 1384 -0.757 -0.677 -0.109 + 455HOH OW 1385 1.262 0.049 1.201 + 455HOH HW1 1386 1.180 0.049 1.258 + 455HOH HW2 1387 1.262 -0.033 1.143 + 456HOH OW 1388 -1.329 -0.391 0.007 + 456HOH HW1 1389 -1.329 -0.310 -0.050 + 456HOH HW2 1390 -1.329 -0.473 -0.050 + 457HOH OW 1391 0.841 0.053 0.259 + 457HOH HW1 1392 0.923 0.053 0.317 + 457HOH HW2 1393 0.760 0.053 0.317 + 458HOH OW 1394 -1.023 0.283 0.398 + 458HOH HW1 1395 -0.941 0.283 0.456 + 458HOH HW2 1396 -1.023 0.364 0.340 + 459HOH OW 1397 0.995 -0.976 0.737 + 459HOH HW1 1398 1.077 -0.976 0.794 + 459HOH HW2 1399 0.995 -1.058 0.679 + 460HOH OW 1400 0.026 -0.726 0.233 + 460HOH HW1 1401 -0.055 -0.726 0.291 + 460HOH HW2 1402 0.026 -0.644 0.175 + 461HOH OW 1403 -1.007 0.086 0.641 + 461HOH HW1 1404 -1.089 0.086 0.699 + 461HOH HW2 1405 -1.007 0.005 0.583 + 462HOH OW 1406 0.619 -0.429 0.642 + 462HOH HW1 1407 0.619 -0.347 0.585 + 462HOH HW2 1408 0.619 -0.510 0.585 + 463HOH OW 1409 0.343 -1.130 0.080 + 463HOH HW1 1410 0.425 -1.130 0.138 + 463HOH HW2 1411 0.261 -1.130 0.138 + 464HOH OW 1412 -0.781 -0.987 1.047 + 464HOH HW1 1413 -0.699 -0.987 1.104 + 464HOH HW2 1414 -0.781 -0.905 0.989 + 465HOH OW 1415 -1.303 0.089 0.927 + 465HOH HW1 1416 -1.221 0.089 0.985 + 465HOH HW2 1417 -1.303 0.008 0.869 + 466HOH OW 1418 -1.159 -0.097 0.778 + 466HOH HW1 1419 -1.241 -0.097 0.835 + 466HOH HW2 1420 -1.159 -0.015 0.720 + 467HOH OW 1421 -0.919 -0.513 -1.318 + 467HOH HW1 1422 -1.001 -0.513 -1.260 + 467HOH HW2 1423 -0.919 -0.595 -1.375 + 468HOH OW 1424 -0.987 -0.832 0.111 + 468HOH HW1 1425 -0.987 -0.751 0.053 + 468HOH HW2 1426 -0.987 -0.914 0.053 + 469HOH OW 1427 0.091 -0.497 0.678 + 469HOH HW1 1428 0.173 -0.497 0.735 + 469HOH HW2 1429 0.009 -0.497 0.735 + 470HOH OW 1430 0.626 0.357 0.817 + 470HOH HW1 1431 0.707 0.357 0.875 + 470HOH HW2 1432 0.626 0.439 0.760 + 471HOH OW 1433 -1.190 -0.902 0.383 + 471HOH HW1 1434 -1.108 -0.902 0.441 + 471HOH HW2 1435 -1.190 -0.984 0.325 + 472HOH OW 1436 -0.962 -1.035 -0.812 + 472HOH HW1 1437 -1.044 -1.035 -0.755 + 472HOH HW2 1438 -0.962 -0.954 -0.870 + 473HOH OW 1439 0.850 -0.281 0.813 + 473HOH HW1 1440 0.768 -0.281 0.871 + 473HOH HW2 1441 0.850 -0.363 0.756 + 474HOH OW 1442 0.515 1.177 -1.293 + 474HOH HW1 1443 0.515 1.259 -1.351 + 474HOH HW2 1444 0.515 1.095 -1.351 + 475HOH OW 1445 1.060 0.207 -0.011 + 475HOH HW1 1446 1.142 0.207 0.047 + 475HOH HW2 1447 0.979 0.207 0.047 + 476HOH OW 1448 0.864 0.192 -0.933 + 476HOH HW1 1449 0.946 0.192 -0.876 + 476HOH HW2 1450 0.864 0.274 -0.991 + 477HOH OW 1451 0.634 -1.303 0.358 + 477HOH HW1 1452 0.716 -1.303 0.415 + 477HOH HW2 1453 0.634 -1.385 0.300 + 478HOH OW 1454 0.597 0.983 -0.001 + 478HOH HW1 1455 0.515 0.983 0.057 + 478HOH HW2 1456 0.597 1.064 -0.059 + 479HOH OW 1457 0.269 -1.089 -0.662 + 479HOH HW1 1458 0.188 -1.089 -0.604 + 479HOH HW2 1459 0.269 -1.170 -0.720 + 480HOH OW 1460 0.445 -1.007 -0.465 + 480HOH HW1 1461 0.445 -0.925 -0.523 + 480HOH HW2 1462 0.445 -1.088 -0.523 + 481HOH OW 1463 0.676 1.041 -1.113 + 481HOH HW1 1464 0.758 1.041 -1.055 + 481HOH HW2 1465 0.595 1.041 -1.055 + 482HOH OW 1466 0.815 -1.349 0.561 + 482HOH HW1 1467 0.896 -1.349 0.619 + 482HOH HW2 1468 0.815 -1.268 0.503 + 483HOH OW 1469 0.757 -1.131 -0.875 + 483HOH HW1 1470 0.839 -1.131 -0.817 + 483HOH HW2 1471 0.757 -1.212 -0.933 + 484HOH OW 1472 0.844 -0.328 0.264 + 484HOH HW1 1473 0.762 -0.328 0.321 + 484HOH HW2 1474 0.844 -0.246 0.206 + 485HOH OW 1475 0.288 0.495 -0.021 + 485HOH HW1 1476 0.206 0.495 0.037 + 485HOH HW2 1477 0.288 0.414 -0.079 + 486HOH OW 1478 -1.212 1.217 0.050 + 486HOH HW1 1479 -1.212 1.299 -0.008 + 486HOH HW2 1480 -1.212 1.135 -0.008 + 487HOH OW 1481 -1.237 0.526 0.655 + 487HOH HW1 1482 -1.156 0.526 0.713 + 487HOH HW2 1483 -1.319 0.526 0.713 + 488HOH OW 1484 0.403 0.623 -0.660 + 488HOH HW1 1485 0.485 0.623 -0.603 + 488HOH HW2 1486 0.403 0.704 -0.718 + 489HOH OW 1487 0.634 1.021 -0.821 + 489HOH HW1 1488 0.716 1.021 -0.763 + 489HOH HW2 1489 0.634 0.939 -0.878 + 490HOH OW 1490 0.932 0.790 -0.044 + 490HOH HW1 1491 0.850 0.790 0.014 + 490HOH HW2 1492 0.932 0.872 -0.102 + 491HOH OW 1493 0.895 0.975 -0.722 + 491HOH HW1 1494 0.814 0.975 -0.664 + 491HOH HW2 1495 0.895 0.894 -0.780 + 492HOH OW 1496 -1.076 0.987 0.808 + 492HOH HW1 1497 -1.076 1.068 0.750 + 492HOH HW2 1498 -1.076 0.905 0.750 + 493HOH OW 1499 1.173 -0.997 -0.123 + 493HOH HW1 1500 1.255 -0.997 -0.065 + 493HOH HW2 1501 1.091 -0.997 -0.065 + 494HOH OW 1502 1.015 0.829 -1.025 + 494HOH HW1 1503 1.097 0.829 -0.967 + 494HOH HW2 1504 1.015 0.911 -1.083 + 495HOH OW 1505 1.123 0.269 -0.938 + 495HOH HW1 1506 1.205 0.269 -0.881 + 495HOH HW2 1507 1.123 0.187 -0.996 + 496HOH OW 1508 1.150 0.786 0.983 + 496HOH HW1 1509 1.068 0.786 1.040 + 496HOH HW2 1510 1.150 0.868 0.925 + 497HOH OW 1511 0.781 0.434 -0.458 + 497HOH HW1 1512 0.700 0.434 -0.401 + 497HOH HW2 1513 0.781 0.352 -0.516 + 498HOH OW 1514 0.786 0.784 -0.280 + 498HOH HW1 1515 0.786 0.866 -0.338 + 498HOH HW2 1516 0.786 0.702 -0.338 + 499HOH OW 1517 0.929 0.603 0.386 + 499HOH HW1 1518 1.010 0.603 0.444 + 499HOH HW2 1519 0.847 0.603 0.444 + 500HOH OW 1520 0.588 0.820 -0.607 + 500HOH HW1 1521 0.669 0.820 -0.549 + 500HOH HW2 1522 0.588 0.901 -0.665 + 501HOH OW 1523 1.001 0.456 -0.289 + 501HOH HW1 1524 1.083 0.456 -0.231 + 501HOH HW2 1525 1.001 0.374 -0.347 + 502HOH OW 1526 0.347 0.931 0.409 + 502HOH HW1 1527 0.265 0.931 0.467 + 502HOH HW2 1528 0.347 1.013 0.351 + 503HOH OW 1529 0.455 -0.232 0.449 + 503HOH HW1 1530 0.373 -0.232 0.507 + 503HOH HW2 1531 0.455 -0.313 0.391 + 504HOH OW 1532 -0.177 -0.920 0.168 + 504HOH HW1 1533 -0.177 -0.838 0.110 + 504HOH HW2 1534 -0.177 -1.002 0.110 + 505HOH OW 1535 -1.237 0.263 0.721 + 505HOH HW1 1536 -1.155 0.263 0.779 + 505HOH HW2 1537 -1.319 0.263 0.779 + 506HOH OW 1538 -0.667 1.029 0.355 + 506HOH HW1 1539 -0.585 1.029 0.413 + 506HOH HW2 1540 -0.667 1.110 0.298 + 507HOH OW 1541 -0.879 0.730 0.651 + 507HOH HW1 1542 -0.797 0.730 0.709 + 507HOH HW2 1543 -0.879 0.648 0.594 + 508HOH OW 1544 1.130 1.235 -0.165 + 508HOH HW1 1545 1.049 1.235 -0.107 + 508HOH HW2 1546 1.130 1.317 -0.222 + 509HOH OW 1547 0.206 1.003 -1.058 + 509HOH HW1 1548 0.124 1.003 -1.000 + 509HOH HW2 1549 0.206 0.921 -1.116 + 510HOH OW 1550 1.148 1.187 -1.190 + 510HOH HW1 1551 1.148 1.269 -1.247 + 510HOH HW2 1552 1.148 1.105 -1.247 + 511HOH OW 1553 0.243 -0.913 0.217 + 511HOH HW1 1554 0.325 -0.913 0.275 + 511HOH HW2 1555 0.161 -0.913 0.275 + 512HOH OW 1556 -1.328 1.232 -0.960 + 512HOH HW1 1557 -1.246 1.232 -0.902 + 512HOH HW2 1558 -1.328 1.314 -1.018 + 513HOH OW 1559 0.825 0.689 -0.544 + 513HOH HW1 1560 0.906 0.689 -0.486 + 513HOH HW2 1561 0.825 0.608 -0.601 + 514HOH OW 1562 0.655 1.188 -0.175 + 514HOH HW1 1563 0.574 1.188 -0.117 + 514HOH HW2 1564 0.655 1.270 -0.233 + 515HOH OW 1565 0.514 0.745 -0.247 + 515HOH HW1 1566 0.432 0.745 -0.190 + 515HOH HW2 1567 0.514 0.663 -0.305 + 516HOH OW 1568 -1.308 1.132 0.573 + 516HOH HW1 1569 -1.308 1.213 0.515 + 516HOH HW2 1570 -1.308 1.050 0.515 + 517HOH OW 1571 -1.297 -1.332 -0.698 + 517HOH HW1 1572 -1.216 -1.332 -0.640 + 517HOH HW2 1573 -1.379 -1.332 -0.640 + 518HOH OW 1574 0.410 -1.202 -1.162 + 518HOH HW1 1575 0.491 -1.202 -1.104 + 518HOH HW2 1576 0.410 -1.120 -1.220 + 519HOH OW 1577 0.752 0.782 -1.059 + 519HOH HW1 1578 0.834 0.782 -1.002 + 519HOH HW2 1579 0.752 0.700 -1.117 + 520HOH OW 1580 1.101 0.453 0.173 + 520HOH HW1 1581 1.020 0.453 0.230 + 520HOH HW2 1582 1.101 0.534 0.115 + 521HOH OW 1583 1.233 0.997 -0.329 + 521HOH HW1 1584 1.151 0.997 -0.271 + 521HOH HW2 1585 1.233 0.916 -0.387 + 522HOH OW 1586 -1.251 0.939 -0.574 + 522HOH HW1 1587 -1.251 1.021 -0.632 + 522HOH HW2 1588 -1.251 0.858 -0.632 + 523HOH OW 1589 0.431 0.731 -1.010 + 523HOH HW1 1590 0.512 0.731 -0.952 + 523HOH HW2 1591 0.349 0.731 -0.952 + 524HOH OW 1592 0.568 0.892 0.563 + 524HOH HW1 1593 0.650 0.892 0.621 + 524HOH HW2 1594 0.568 0.973 0.506 + 525HOH OW 1595 0.932 0.948 1.082 + 525HOH HW1 1596 1.014 0.948 1.139 + 525HOH HW2 1597 0.932 0.867 1.024 + 526HOH OW 1598 -1.077 1.226 0.958 + 526HOH HW1 1599 -1.158 1.226 1.016 + 526HOH HW2 1600 -1.077 1.308 0.900 + 527HOH OW 1601 0.711 0.720 1.047 + 527HOH HW1 1602 0.629 0.720 1.104 + 527HOH HW2 1603 0.711 0.638 0.989 + 528HOH OW 1604 -0.994 -1.078 -1.185 + 528HOH HW1 1605 -0.994 -0.996 -1.242 + 528HOH HW2 1606 -0.994 -1.159 -1.242 + 529HOH OW 1607 0.610 0.956 1.148 + 529HOH HW1 1608 0.692 0.956 1.206 + 529HOH HW2 1609 0.529 0.956 1.206 + 530HOH OW 1610 0.729 -0.974 0.674 + 530HOH HW1 1611 0.810 -0.974 0.731 + 530HOH HW2 1612 0.729 -0.893 0.616 + 531HOH OW 1613 0.973 1.132 0.853 + 531HOH HW1 1614 1.054 1.132 0.910 + 531HOH HW2 1615 0.973 1.050 0.795 + 532HOH OW 1616 0.772 0.976 0.730 + 532HOH HW1 1617 0.690 0.976 0.787 + 532HOH HW2 1618 0.772 1.058 0.672 + 533HOH OW 1619 1.016 -0.394 0.629 + 533HOH HW1 1620 0.934 -0.394 0.687 + 533HOH HW2 1621 1.016 -0.475 0.571 + 534HOH OW 1622 -1.078 0.739 -1.349 + 534HOH HW1 1623 -1.078 0.821 -1.406 + 534HOH HW2 1624 -1.078 0.658 -1.406 + 535HOH OW 1625 1.063 -1.164 0.941 + 535HOH HW1 1626 1.145 -1.164 0.998 + 535HOH HW2 1627 0.982 -1.164 0.998 + 536HOH OW 1628 0.997 0.706 -0.756 + 536HOH HW1 1629 1.079 0.706 -0.699 + 536HOH HW2 1630 0.997 0.788 -0.814 + 537HOH OW 1631 0.753 0.819 0.359 + 537HOH HW1 1632 0.835 0.819 0.417 + 537HOH HW2 1633 0.753 0.738 0.302 + 538HOH OW 1634 -0.853 0.672 0.930 + 538HOH HW1 1635 -0.935 0.672 0.988 + 538HOH HW2 1636 -0.853 0.754 0.872 + 539HOH OW 1637 0.893 -1.252 -1.367 + 539HOH HW1 1638 0.811 -1.252 -1.310 + 539HOH HW2 1639 0.893 -1.333 -1.425 + 540HOH OW 1640 -1.193 -1.064 0.606 + 540HOH HW1 1641 -1.193 -0.982 0.548 + 540HOH HW2 1642 -1.193 -1.146 0.548 + 541HOH OW 1643 0.641 1.119 0.930 + 541HOH HW1 1644 0.723 1.119 0.988 + 541HOH HW2 1645 0.559 1.119 0.988 + 542HOH OW 1646 -1.279 -0.738 -1.248 + 542HOH HW1 1647 -1.197 -0.738 -1.191 + 542HOH HW2 1648 -1.279 -0.656 -1.306 + 543HOH OW 1649 -0.930 1.197 1.188 + 543HOH HW1 1650 -0.848 1.197 1.245 + 543HOH HW2 1651 -0.930 1.115 1.130 + 2.60630 2.60630 2.60630 diff --git a/examples/gromacs/md.mdp b/examples/gromacs/md.mdp new file mode 100644 index 000000000..b7bcbaa0c --- /dev/null +++ b/examples/gromacs/md.mdp @@ -0,0 +1,34 @@ +title = test +cpp = /lib/cpp +include = -I../top +define = +integrator = md +dt = 0.002 +nsteps = 100000 +nstxout = 10 +nstvout = 10 +nstlog = 10 +nstenergy = 10 +nstxout-compressed = 10 +compressed-x-grps = Protein +energygrps = Protein SOL +nstlist = 10 +ns-type = grid +cutoff-scheme = Verlet +rlist = 1.1 +coulombtype = PME +rcoulomb = 1.1 +rvdw = 1.1 +tcoupl = Berendsen +tc-grps = Protein SOL +tau-t = 0.1 0.1 +ref-t = 300 300 +Pcoupl = Berendsen +tau-p = 1.0 +compressibility = 4.5e-5 +ref-p = 1.0 +gen-vel = no +gen-temp = 300 +gen-seed = 173529 +constraints = all-bonds + diff --git a/examples/gromacs/topol.top b/examples/gromacs/topol.top new file mode 100644 index 000000000..6dab9f5ba --- /dev/null +++ b/examples/gromacs/topol.top @@ -0,0 +1,238 @@ +; +; File 'topol.top' was generated +; By user: dwhs (501) +; On host: u036787.science.uva.nl +; At date: Tue May 16 13:56:51 2017 + +; +; This is a standalone topology file +; +; Created by: +; :-) GROMACS - gmx pdb2gmx, VERSION 5.1.4 (-: +; +; Executable: /opt/local/bin/gmx +; Data prefix: /opt/local +; Command line: +; gmx pdb2gmx -ignh -f AD_initial_frame.pdb +; Force field was read from the standard GROMACS share directory. +; + +; Include forcefield parameters +#include "amber96.ff/forcefield.itp" + +[ moleculetype ] +; Name nrexcl +Protein_chain_A 3 + +[ atoms ] +; nr type resnr residue atom cgnr charge mass typeB chargeB massB +; residue 1 ACE rtp ACE q 0.0 + 1 CT 1 ACE CH3 1 -0.3662 12.01 ; qtot -0.3662 + 2 HC 1 ACE HH31 2 0.1123 1.008 ; qtot -0.2539 + 3 HC 1 ACE HH32 3 0.1123 1.008 ; qtot -0.1416 + 4 HC 1 ACE HH33 4 0.1123 1.008 ; qtot -0.0293 + 5 C 1 ACE C 5 0.5972 12.01 ; qtot 0.5679 + 6 O 1 ACE O 6 -0.5679 16 ; qtot 0 +; residue 2 ALA rtp ALA q 0.0 + 7 N 2 ALA N 7 -0.4157 14.01 ; qtot -0.4157 + 8 H 2 ALA H 8 0.2719 1.008 ; qtot -0.1438 + 9 CT 2 ALA CA 9 0.0337 12.01 ; qtot -0.1101 + 10 H1 2 ALA HA 10 0.0823 1.008 ; qtot -0.0278 + 11 CT 2 ALA CB 11 -0.1825 12.01 ; qtot -0.2103 + 12 HC 2 ALA HB1 12 0.0603 1.008 ; qtot -0.15 + 13 HC 2 ALA HB2 13 0.0603 1.008 ; qtot -0.0897 + 14 HC 2 ALA HB3 14 0.0603 1.008 ; qtot -0.0294 + 15 C 2 ALA C 15 0.5973 12.01 ; qtot 0.5679 + 16 O 2 ALA O 16 -0.5679 16 ; qtot 0 +; residue 3 NME rtp NME q 0.0 + 17 N 3 NME N 17 -0.4157 14.01 ; qtot -0.4157 + 18 H 3 NME H 18 0.2719 1.008 ; qtot -0.1438 + 19 CT 3 NME CH3 19 -0.149 12.01 ; qtot -0.2928 + 20 H1 3 NME HH31 20 0.0976 1.008 ; qtot -0.1952 + 21 H1 3 NME HH32 21 0.0976 1.008 ; qtot -0.0976 + 22 H1 3 NME HH33 22 0.0976 1.008 ; qtot 0 + +[ bonds ] +; ai aj funct c0 c1 c2 c3 + 1 2 1 + 1 3 1 + 1 4 1 + 1 5 1 + 5 6 1 + 5 7 1 + 7 8 1 + 7 9 1 + 9 10 1 + 9 11 1 + 9 15 1 + 11 12 1 + 11 13 1 + 11 14 1 + 15 16 1 + 15 17 1 + 17 18 1 + 17 19 1 + 19 20 1 + 19 21 1 + 19 22 1 + +[ pairs ] +; ai aj funct c0 c1 c2 c3 + 1 8 1 + 1 9 1 + 2 6 1 + 2 7 1 + 3 6 1 + 3 7 1 + 4 6 1 + 4 7 1 + 5 10 1 + 5 11 1 + 5 15 1 + 6 8 1 + 6 9 1 + 7 12 1 + 7 13 1 + 7 14 1 + 7 16 1 + 7 17 1 + 8 10 1 + 8 11 1 + 8 15 1 + 9 18 1 + 9 19 1 + 10 12 1 + 10 13 1 + 10 14 1 + 10 16 1 + 10 17 1 + 11 16 1 + 11 17 1 + 12 15 1 + 13 15 1 + 14 15 1 + 15 20 1 + 15 21 1 + 15 22 1 + 16 18 1 + 16 19 1 + 18 20 1 + 18 21 1 + 18 22 1 + +[ angles ] +; ai aj ak funct c0 c1 c2 c3 + 2 1 3 1 + 2 1 4 1 + 2 1 5 1 + 3 1 4 1 + 3 1 5 1 + 4 1 5 1 + 1 5 6 1 + 1 5 7 1 + 6 5 7 1 + 5 7 8 1 + 5 7 9 1 + 8 7 9 1 + 7 9 10 1 + 7 9 11 1 + 7 9 15 1 + 10 9 11 1 + 10 9 15 1 + 11 9 15 1 + 9 11 12 1 + 9 11 13 1 + 9 11 14 1 + 12 11 13 1 + 12 11 14 1 + 13 11 14 1 + 9 15 16 1 + 9 15 17 1 + 16 15 17 1 + 15 17 18 1 + 15 17 19 1 + 18 17 19 1 + 17 19 20 1 + 17 19 21 1 + 17 19 22 1 + 20 19 21 1 + 20 19 22 1 + 21 19 22 1 + +[ dihedrals ] +; ai aj ak al funct c0 c1 c2 c3 c4 c5 + 2 1 5 6 9 + 2 1 5 7 9 + 3 1 5 6 9 + 3 1 5 7 9 + 4 1 5 6 9 + 4 1 5 7 9 + 1 5 7 8 9 + 1 5 7 9 9 + 6 5 7 8 9 + 6 5 7 9 9 + 5 7 9 10 9 + 5 7 9 11 9 + 5 7 9 15 9 + 8 7 9 10 9 + 8 7 9 11 9 + 8 7 9 15 9 + 7 9 11 12 9 + 7 9 11 13 9 + 7 9 11 14 9 + 10 9 11 12 9 + 10 9 11 13 9 + 10 9 11 14 9 + 15 9 11 12 9 + 15 9 11 13 9 + 15 9 11 14 9 + 7 9 15 16 9 + 7 9 15 17 9 + 10 9 15 16 9 + 10 9 15 17 9 + 11 9 15 16 9 + 11 9 15 17 9 + 9 15 17 18 9 + 9 15 17 19 9 + 16 15 17 18 9 + 16 15 17 19 9 + 15 17 19 20 9 + 15 17 19 21 9 + 15 17 19 22 9 + 18 17 19 20 9 + 18 17 19 21 9 + 18 17 19 22 9 + +[ dihedrals ] +; ai aj ak al funct c0 c1 c2 c3 + 1 7 5 6 4 + 5 9 7 8 4 + 9 17 15 16 4 + 15 19 17 18 4 + +; Include Position restraint file +#ifdef POSRES +#include "posre.itp" +#endif + +; Include water topology +#include "amber96.ff/tip3p.itp" + +#ifdef POSRES_WATER +; Position restraint for each water oxygen +[ position_restraints ] +; i funct fcx fcy fcz + 1 1 1000 1000 1000 +#endif + +; Include topology for ions +#include "amber96.ff/ions.itp" + +[ system ] +; Name +Protein + +[ molecules ] +; Compound #mols +Protein_chain_A 1 +SOL 543 diff --git a/openpathsampling/engines/dynamics_engine.py b/openpathsampling/engines/dynamics_engine.py index 1b1e6cc9e..4d35c7784 100644 --- a/openpathsampling/engines/dynamics_engine.py +++ b/openpathsampling/engines/dynamics_engine.py @@ -658,7 +658,7 @@ def generate_next_frame(self): def generate_n_frames(self, n_frames=1): """Generates n_frames, from but not including the current snapshot. - + This generates a fixed number of frames at once. If you desire the reversed trajectory, you can reverse the returned trajectory. diff --git a/openpathsampling/engines/gromacs/engine.py b/openpathsampling/engines/gromacs/engine.py index 0e39cbfc1..2efdf5e8c 100644 --- a/openpathsampling/engines/gromacs/engine.py +++ b/openpathsampling/engines/gromacs/engine.py @@ -134,14 +134,14 @@ def __init__(self, gro): descriptor=descriptor, template=None) - read_frame_data = GromacsEngine.read_frame_data + # read_frame_data = GromacsEngine.read_frame_data - # def read_frame_data(self, file_name, file_position): - # traj = md.load(file_name) - # xyz = traj.xyz[0] - # vel = np.zeros(shape=xyz.shape) - # box = traj.unitcell_vectors[0] - # return (xyz, vel, box) + def read_frame_data(self, file_name, file_position): + traj = md.load(file_name) + xyz = traj.xyz[0] + vel = np.zeros(shape=xyz.shape) + box = traj.unitcell_vectors[0] + return (xyz, vel, box) template_engine = GroFileEngine(gro_file) snapshot = ExternalMDSnapshot(file_name=gro_file, @@ -231,15 +231,23 @@ def read_frame_data(self, filename, frame_num): """ Returns pos, vel, box or raises error """ - if self._last_filename != filename: - try: - self._file.close() - except AttributeError: - pass # first time thru, self._file is None - self._file = TRRTrajectoryFile(filename) - self._file.seek(offset=frame_num) - data = self._file._read(n_frames=1, atom_indices=None, - get_velocities=True) + # if self._last_filename != filename: + # try: + # self._file.close() + # except AttributeError: + # pass # first time thru, self._file is None + # self._file = TRRTrajectoryFile(filename) + # f = self._file + # do we need to reopen the TRR each time to avoid problems with the + # fiel length changing? + trr = TRRTrajectoryFile(filename) + f = trr + logging.debug("Reading file %s frame %d", + filename, frame_num) + logging.debug("File length: %d", len(filename)) + f.seek(offset=frame_num) + data = f._read(n_frames=1, atom_indices=None, get_velocities=True) + trr.close() # needed ? return data[0][0], data[5][0], data[3][0] def read_frame_from_file(self, file_name, frame_num): diff --git a/openpathsampling/engines/openmm/topology.py b/openpathsampling/engines/openmm/topology.py index d459ae8d9..4600ea79d 100644 --- a/openpathsampling/engines/openmm/topology.py +++ b/openpathsampling/engines/openmm/topology.py @@ -53,7 +53,7 @@ def from_dict(cls, dct): try: md_topology = md.Topology.from_dataframe(atoms, bonds) return cls(md_topology) - except StandardError: + except Exception: # we try a fix and add multiples of 10000 to the resSeq logger.info('Normal reconstruction of topology failed. ' From 37f90522bfdfacf121ce9f2667d3a8fd7c08a212 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Fri, 15 Mar 2019 12:32:56 +0100 Subject: [PATCH 166/464] add hi_temp.mdp --- examples/gromacs/hi_temp.mdp | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 examples/gromacs/hi_temp.mdp diff --git a/examples/gromacs/hi_temp.mdp b/examples/gromacs/hi_temp.mdp new file mode 100644 index 000000000..a8d4faf7f --- /dev/null +++ b/examples/gromacs/hi_temp.mdp @@ -0,0 +1,34 @@ +title = test +cpp = /lib/cpp +include = -I../top +define = +integrator = md +dt = 0.002 +nsteps = 100000 +nstxout = 10 +nstvout = 10 +nstlog = 10 +nstenergy = 10 +nstxout-compressed = 10 +compressed-x-grps = Protein +energygrps = Protein SOL +nstlist = 10 +ns-type = grid +cutoff-scheme = Verlet +rlist = 1.1 +coulombtype = PME +rcoulomb = 1.1 +rvdw = 1.1 +tcoupl = Berendsen +tc-grps = Protein SOL +tau-t = 0.1 0.1 +ref-t = 500 500 +Pcoupl = Berendsen +tau-p = 1.0 +compressibility = 4.5e-5 +ref-p = 1.0 +gen-vel = no +gen-temp = 300 +gen-seed = 173529 +constraints = all-bonds + From c358f9ecbd6afa747c7a8c634ca2e4d75cefe103 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Sun, 17 Mar 2019 13:09:08 +0100 Subject: [PATCH 167/464] add directory for gromacs engine test data forgot to add this to git! --- .../tests/test_data/gromacs_engine/conf.gro | 1654 +++++++++++++++++ .../tests/test_data/gromacs_engine/md.mdp | 34 + .../gromacs_engine/project_trr/0000000.trr | Bin 0 -> 158976 bytes .../gromacs_engine/project_trr/0000099.trr | Bin 0 -> 2026563 bytes .../tests/test_data/gromacs_engine/topol.top | 238 +++ .../tests/test_data/gromacs_engine/traj.trr | Bin 0 -> 158976 bytes 6 files changed, 1926 insertions(+) create mode 100644 openpathsampling/tests/test_data/gromacs_engine/conf.gro create mode 100644 openpathsampling/tests/test_data/gromacs_engine/md.mdp create mode 100644 openpathsampling/tests/test_data/gromacs_engine/project_trr/0000000.trr create mode 100644 openpathsampling/tests/test_data/gromacs_engine/project_trr/0000099.trr create mode 100644 openpathsampling/tests/test_data/gromacs_engine/topol.top create mode 100644 openpathsampling/tests/test_data/gromacs_engine/traj.trr diff --git a/openpathsampling/tests/test_data/gromacs_engine/conf.gro b/openpathsampling/tests/test_data/gromacs_engine/conf.gro new file mode 100644 index 000000000..0e0c055cf --- /dev/null +++ b/openpathsampling/tests/test_data/gromacs_engine/conf.gro @@ -0,0 +1,1654 @@ +Gyas ROwers Mature At Cryogenic Speed + 1651 + 1ACE CH3 1 -0.304 0.059 0.098 + 1ACE HH31 2 -0.331 -0.036 0.085 + 1ACE HH32 3 -0.340 0.092 0.185 + 1ACE HH33 4 -0.342 0.115 0.023 + 1ACE C 5 -0.153 0.070 0.098 + 1ACE O 6 -0.099 0.180 0.113 + 2ALA N 7 -0.085 -0.043 0.089 + 2ALA H 8 -0.136 -0.129 0.084 + 2ALA CA 9 0.062 -0.050 0.084 + 2ALA HA 10 0.093 0.024 0.143 + 2ALA CB 11 0.104 -0.186 0.138 + 2ALA HB1 12 0.204 -0.193 0.136 + 2ALA HB2 13 0.072 -0.196 0.232 + 2ALA HB3 14 0.064 -0.259 0.081 + 2ALA C 15 0.124 -0.020 -0.055 + 2ALA O 16 0.246 -0.003 -0.065 + 3NME N 17 0.042 -0.012 -0.161 + 3NME H 18 -0.056 -0.022 -0.144 + 3NME CH3 19 0.086 0.010 -0.298 + 3NME HH31 20 0.007 0.012 -0.359 + 3NME HH32 21 0.135 0.097 -0.304 + 3NME HH33 22 0.147 -0.065 -0.326 + 1HOH OW 23 -0.910 0.037 0.009 + 1HOH HW1 24 -0.829 0.037 0.067 + 1HOH HW2 25 -0.992 0.037 0.067 + 2HOH OW 26 0.570 0.321 -1.018 + 2HOH HW1 27 0.652 0.321 -0.960 + 2HOH HW2 28 0.570 0.403 -1.075 + 3HOH OW 29 0.777 -1.219 0.814 + 3HOH HW1 30 0.859 -1.219 0.872 + 3HOH HW2 31 0.777 -1.301 0.756 + 4HOH OW 32 -0.698 0.509 0.776 + 4HOH HW1 33 -0.779 0.509 0.834 + 4HOH HW2 34 -0.698 0.591 0.718 + 5HOH OW 35 -0.788 -0.665 -0.496 + 5HOH HW1 36 -0.870 -0.665 -0.439 + 5HOH HW2 37 -0.788 -0.746 -0.554 + 6HOH OW 38 0.139 0.435 0.206 + 6HOH HW1 39 0.139 0.517 0.148 + 6HOH HW2 40 0.139 0.354 0.148 + 7HOH OW 41 -1.275 0.043 -0.529 + 7HOH HW1 42 -1.193 0.043 -0.471 + 7HOH HW2 43 -1.357 0.043 -0.471 + 8HOH OW 44 0.522 0.523 -0.421 + 8HOH HW1 45 0.604 0.523 -0.363 + 8HOH HW2 46 0.522 0.605 -0.479 + 9HOH OW 47 -0.449 -0.460 0.399 + 9HOH HW1 48 -0.368 -0.460 0.457 + 9HOH HW2 49 -0.449 -0.541 0.341 + 10HOH OW 50 -0.223 -0.195 -0.788 + 10HOH HW1 51 -0.305 -0.195 -0.730 + 10HOH HW2 52 -0.223 -0.113 -0.846 + 11HOH OW 53 0.403 0.194 0.441 + 11HOH HW1 54 0.321 0.194 0.498 + 11HOH HW2 55 0.403 0.112 0.383 + 12HOH OW 56 0.837 -0.413 -0.729 + 12HOH HW1 57 0.837 -0.331 -0.787 + 12HOH HW2 58 0.837 -0.494 -0.787 + 13HOH OW 59 -0.790 0.054 -0.474 + 13HOH HW1 60 -0.708 0.054 -0.416 + 13HOH HW2 61 -0.871 0.054 -0.416 + 14HOH OW 62 -0.060 1.182 0.054 + 14HOH HW1 63 0.022 1.182 0.112 + 14HOH HW2 64 -0.060 1.264 -0.004 + 15HOH OW 65 0.421 0.761 -1.280 + 15HOH HW1 66 0.503 0.761 -1.222 + 15HOH HW2 67 0.421 0.679 -1.338 + 16HOH OW 68 -0.277 0.275 -0.724 + 16HOH HW1 69 -0.359 0.275 -0.666 + 16HOH HW2 70 -0.277 0.357 -0.781 + 17HOH OW 71 -1.086 0.730 -0.976 + 17HOH HW1 72 -1.167 0.730 -0.919 + 17HOH HW2 73 -1.086 0.648 -1.034 + 18HOH OW 74 -0.009 0.132 -1.322 + 18HOH HW1 75 -0.009 0.214 -1.379 + 18HOH HW2 76 -0.009 0.050 -1.379 + 19HOH OW 77 0.335 0.860 -0.019 + 19HOH HW1 78 0.416 0.860 0.039 + 19HOH HW2 79 0.253 0.860 0.039 + 20HOH OW 80 -0.180 0.955 -0.511 + 20HOH HW1 81 -0.098 0.955 -0.453 + 20HOH HW2 82 -0.180 1.036 -0.568 + 21HOH OW 83 -1.201 -0.612 -0.854 + 21HOH HW1 84 -1.120 -0.612 -0.796 + 21HOH HW2 85 -1.201 -0.694 -0.912 + 22HOH OW 86 -0.947 -1.186 0.300 + 22HOH HW1 87 -1.029 -1.186 0.358 + 22HOH HW2 88 -0.947 -1.104 0.242 + 23HOH OW 89 -0.253 -1.117 0.475 + 23HOH HW1 90 -0.335 -1.117 0.533 + 23HOH HW2 91 -0.253 -1.198 0.418 + 24HOH OW 92 0.126 -1.273 -0.495 + 24HOH HW1 93 0.126 -1.191 -0.553 + 24HOH HW2 94 0.126 -1.355 -0.553 + 25HOH OW 95 -0.490 -0.720 -1.016 + 25HOH HW1 96 -0.408 -0.720 -0.958 + 25HOH HW2 97 -0.572 -0.720 -0.958 + 26HOH OW 98 1.083 -0.412 0.367 + 26HOH HW1 99 1.165 -0.412 0.425 + 26HOH HW2 100 1.083 -0.330 0.309 + 27HOH OW 101 -0.580 0.032 -0.662 + 27HOH HW1 102 -0.498 0.032 -0.604 + 27HOH HW2 103 -0.580 -0.049 -0.719 + 28HOH OW 104 -0.397 -1.087 -0.149 + 28HOH HW1 105 -0.479 -1.087 -0.092 + 28HOH HW2 106 -0.397 -1.005 -0.207 + 29HOH OW 107 -0.587 0.390 -0.114 + 29HOH HW1 108 -0.669 0.390 -0.056 + 29HOH HW2 109 -0.587 0.308 -0.171 + 30HOH OW 110 0.862 -0.966 -1.065 + 30HOH HW1 111 0.862 -0.885 -1.123 + 30HOH HW2 112 0.862 -1.048 -1.123 + 31HOH OW 113 0.761 0.674 0.126 + 31HOH HW1 114 0.843 0.674 0.184 + 31HOH HW2 115 0.680 0.674 0.184 + 32HOH OW 116 -0.886 -0.993 -0.143 + 32HOH HW1 117 -0.804 -0.993 -0.085 + 32HOH HW2 118 -0.886 -0.911 -0.201 + 33HOH OW 119 -0.200 0.730 -0.078 + 33HOH HW1 120 -0.118 0.730 -0.020 + 33HOH HW2 121 -0.200 0.648 -0.136 + 34HOH OW 122 0.142 -0.844 0.882 + 34HOH HW1 123 0.061 -0.844 0.940 + 34HOH HW2 124 0.142 -0.762 0.825 + 35HOH OW 125 0.099 0.605 -0.610 + 35HOH HW1 126 0.017 0.605 -0.552 + 35HOH HW2 127 0.099 0.523 -0.667 + 36HOH OW 128 -0.874 0.076 -0.774 + 36HOH HW1 129 -0.874 0.157 -0.831 + 36HOH HW2 130 -0.874 -0.006 -0.831 + 37HOH OW 131 -0.140 -0.862 0.502 + 37HOH HW1 132 -0.058 -0.862 0.559 + 37HOH HW2 133 -0.221 -0.862 0.559 + 38HOH OW 134 -1.063 1.024 -0.859 + 38HOH HW1 135 -0.981 1.024 -0.801 + 38HOH HW2 136 -1.063 1.106 -0.917 + 39HOH OW 137 -0.421 -0.738 -0.016 + 39HOH HW1 138 -0.339 -0.738 0.041 + 39HOH HW2 139 -0.421 -0.820 -0.074 + 40HOH OW 140 -0.711 0.548 0.079 + 40HOH HW1 141 -0.793 0.548 0.136 + 40HOH HW2 142 -0.711 0.630 0.021 + 41HOH OW 143 -0.096 -0.846 -0.087 + 41HOH HW1 144 -0.177 -0.846 -0.029 + 41HOH HW2 145 -0.096 -0.928 -0.145 + 42HOH OW 146 -0.212 -0.464 -0.435 + 42HOH HW1 147 -0.212 -0.382 -0.493 + 42HOH HW2 148 -0.212 -0.545 -0.493 + 43HOH OW 149 0.213 0.515 -0.919 + 43HOH HW1 150 0.294 0.515 -0.861 + 43HOH HW2 151 0.131 0.515 -0.861 + 44HOH OW 152 -0.705 -1.264 -0.933 + 44HOH HW1 153 -0.623 -1.264 -0.876 + 44HOH HW2 154 -0.705 -1.182 -0.991 + 45HOH OW 155 -0.412 -0.481 -0.713 + 45HOH HW1 156 -0.330 -0.481 -0.655 + 45HOH HW2 157 -0.412 -0.563 -0.770 + 46HOH OW 158 -0.257 0.473 0.225 + 46HOH HW1 159 -0.339 0.473 0.283 + 46HOH HW2 160 -0.257 0.554 0.167 + 47HOH OW 161 -0.443 -0.330 -0.366 + 47HOH HW1 162 -0.524 -0.330 -0.308 + 47HOH HW2 163 -0.443 -0.412 -0.424 + 48HOH OW 164 -0.475 0.978 -0.805 + 48HOH HW1 165 -0.475 1.059 -0.863 + 48HOH HW2 166 -0.475 0.896 -0.863 + 49HOH OW 167 -0.129 -1.052 -0.690 + 49HOH HW1 168 -0.047 -1.052 -0.632 + 49HOH HW2 169 -0.211 -1.052 -0.632 + 50HOH OW 170 -1.101 -0.300 0.220 + 50HOH HW1 171 -1.019 -0.300 0.278 + 50HOH HW2 172 -1.101 -0.219 0.163 + 51HOH OW 173 -0.948 -0.768 0.484 + 51HOH HW1 174 -0.866 -0.768 0.541 + 51HOH HW2 175 -0.948 -0.850 0.426 + 52HOH OW 176 -0.640 -0.796 -0.296 + 52HOH HW1 177 -0.722 -0.796 -0.238 + 52HOH HW2 178 -0.640 -0.715 -0.354 + 53HOH OW 179 -0.915 -0.904 -0.507 + 53HOH HW1 180 -0.997 -0.904 -0.449 + 53HOH HW2 181 -0.915 -0.985 -0.565 + 54HOH OW 182 0.464 -0.203 -0.243 + 54HOH HW1 183 0.464 -0.121 -0.300 + 54HOH HW2 184 0.464 -0.285 -0.300 + 55HOH OW 185 -0.083 -1.069 -1.093 + 55HOH HW1 186 -0.001 -1.069 -1.035 + 55HOH HW2 187 -0.165 -1.069 -1.035 + 56HOH OW 188 0.945 0.605 1.148 + 56HOH HW1 189 1.026 0.605 1.206 + 56HOH HW2 190 0.945 0.687 1.090 + 57HOH OW 191 -0.975 -0.343 0.513 + 57HOH HW1 192 -0.893 -0.343 0.571 + 57HOH HW2 193 -0.975 -0.425 0.456 + 58HOH OW 194 0.004 -0.371 -1.055 + 58HOH HW1 195 -0.078 -0.371 -0.997 + 58HOH HW2 196 0.004 -0.289 -1.113 + 59HOH OW 197 -0.292 -0.238 -1.280 + 59HOH HW1 198 -0.374 -0.238 -1.222 + 59HOH HW2 199 -0.292 -0.320 -1.338 + 60HOH OW 200 0.210 -0.679 -0.458 + 60HOH HW1 201 0.210 -0.597 -0.515 + 60HOH HW2 202 0.210 -0.760 -0.515 + 61HOH OW 203 0.241 0.683 -0.382 + 61HOH HW1 204 0.323 0.683 -0.324 + 61HOH HW2 205 0.159 0.683 -0.324 + 62HOH OW 206 0.524 0.626 0.003 + 62HOH HW1 207 0.606 0.626 0.061 + 62HOH HW2 208 0.524 0.708 -0.054 + 63HOH OW 209 0.855 -0.151 -0.492 + 63HOH HW1 210 0.936 -0.151 -0.434 + 63HOH HW2 211 0.855 -0.232 -0.550 + 64HOH OW 212 -1.202 -1.144 -0.144 + 64HOH HW1 213 -1.283 -1.144 -0.086 + 64HOH HW2 214 -1.202 -1.062 -0.201 + 65HOH OW 215 -0.366 0.000 0.641 + 65HOH HW1 216 -0.448 0.000 0.699 + 65HOH HW2 217 -0.366 -0.081 0.583 + 66HOH OW 218 -0.352 -0.493 -1.079 + 66HOH HW1 219 -0.352 -0.412 -1.137 + 66HOH HW2 220 -0.352 -0.575 -1.137 + 67HOH OW 221 -0.903 0.207 0.939 + 67HOH HW1 222 -0.822 0.207 0.996 + 67HOH HW2 223 -0.985 0.207 0.996 + 68HOH OW 224 -1.026 0.295 0.074 + 68HOH HW1 225 -0.944 0.295 0.132 + 68HOH HW2 226 -1.026 0.377 0.016 + 69HOH OW 227 -0.352 -1.169 -0.455 + 69HOH HW1 228 -0.271 -1.169 -0.397 + 69HOH HW2 229 -0.352 -1.251 -0.513 + 70HOH OW 230 -0.102 -0.413 -0.691 + 70HOH HW1 231 -0.184 -0.413 -0.633 + 70HOH HW2 232 -0.102 -0.332 -0.749 + 71HOH OW 233 0.705 0.084 -0.267 + 71HOH HW1 234 0.623 0.084 -0.209 + 71HOH HW2 235 0.705 0.002 -0.324 + 72HOH OW 236 -0.817 -0.121 0.457 + 72HOH HW1 237 -0.817 -0.039 0.399 + 72HOH HW2 238 -0.817 -0.202 0.399 + 73HOH OW 239 -0.933 -0.662 0.738 + 73HOH HW1 240 -0.851 -0.662 0.795 + 73HOH HW2 241 -1.014 -0.662 0.795 + 74HOH OW 242 0.334 -0.454 0.808 + 74HOH HW1 243 0.415 -0.454 0.866 + 74HOH HW2 244 0.334 -0.372 0.751 + 75HOH OW 245 0.366 -1.216 0.371 + 75HOH HW1 246 0.447 -1.216 0.429 + 75HOH HW2 247 0.366 -1.298 0.314 + 76HOH OW 248 -0.932 1.103 -0.050 + 76HOH HW1 249 -1.013 1.103 0.008 + 76HOH HW2 250 -0.932 1.184 -0.108 + 77HOH OW 251 -0.769 0.140 -0.206 + 77HOH HW1 252 -0.851 0.140 -0.149 + 77HOH HW2 253 -0.769 0.058 -0.264 + 78HOH OW 254 -0.514 -0.936 -0.514 + 78HOH HW1 255 -0.514 -0.854 -0.571 + 78HOH HW2 256 -0.514 -1.018 -0.571 + 79HOH OW 257 -0.959 -0.546 -0.730 + 79HOH HW1 258 -0.878 -0.546 -0.673 + 79HOH HW2 259 -1.041 -0.546 -0.673 + 80HOH OW 260 0.717 -0.519 0.407 + 80HOH HW1 261 0.799 -0.519 0.465 + 80HOH HW2 262 0.717 -0.438 0.349 + 81HOH OW 263 -0.600 0.209 -1.285 + 81HOH HW1 264 -0.518 0.209 -1.228 + 81HOH HW2 265 -0.600 0.127 -1.343 + 82HOH OW 266 -0.373 -1.064 -0.808 + 82HOH HW1 267 -0.454 -1.064 -0.750 + 82HOH HW2 268 -0.373 -0.982 -0.866 + 83HOH OW 269 1.158 -0.281 0.857 + 83HOH HW1 270 1.076 -0.281 0.915 + 83HOH HW2 271 1.158 -0.362 0.799 + 84HOH OW 272 -0.054 -0.732 0.728 + 84HOH HW1 273 -0.054 -0.650 0.671 + 84HOH HW2 274 -0.054 -0.813 0.671 + 85HOH OW 275 0.604 0.359 -0.676 + 85HOH HW1 276 0.686 0.359 -0.618 + 85HOH HW2 277 0.522 0.359 -0.618 + 86HOH OW 278 1.123 0.245 -0.413 + 86HOH HW1 279 1.205 0.245 -0.355 + 86HOH HW2 280 1.123 0.327 -0.470 + 87HOH OW 281 -0.778 -0.218 -0.132 + 87HOH HW1 282 -0.696 -0.218 -0.075 + 87HOH HW2 283 -0.778 -0.300 -0.190 + 88HOH OW 284 -1.103 -0.017 -0.183 + 88HOH HW1 285 -1.185 -0.017 -0.125 + 88HOH HW2 286 -1.103 0.065 -0.241 + 89HOH OW 287 -0.944 -0.253 -0.346 + 89HOH HW1 288 -1.026 -0.253 -0.289 + 89HOH HW2 289 -0.944 -0.335 -0.404 + 90HOH OW 290 -1.118 -1.082 -0.427 + 90HOH HW1 291 -1.118 -1.000 -0.485 + 90HOH HW2 292 -1.118 -1.163 -0.485 + 91HOH OW 293 -1.033 0.259 -0.199 + 91HOH HW1 294 -0.951 0.259 -0.141 + 91HOH HW2 295 -1.114 0.259 -0.141 + 92HOH OW 296 -0.389 0.241 -0.972 + 92HOH HW1 297 -0.307 0.241 -0.914 + 92HOH HW2 298 -0.389 0.322 -1.030 + 93HOH OW 299 -0.591 0.472 0.348 + 93HOH HW1 300 -0.509 0.472 0.405 + 93HOH HW2 301 -0.591 0.391 0.290 + 94HOH OW 302 -0.549 -1.206 0.052 + 94HOH HW1 303 -0.631 -1.206 0.110 + 94HOH HW2 304 -0.549 -1.124 -0.006 + 95HOH OW 305 -0.132 0.973 -0.986 + 95HOH HW1 306 -0.214 0.973 -0.928 + 95HOH HW2 307 -0.132 0.891 -1.044 + 96HOH OW 308 -1.147 0.852 0.438 + 96HOH HW1 309 -1.147 0.933 0.380 + 96HOH HW2 310 -1.147 0.770 0.380 + 97HOH OW 311 0.541 -0.487 -0.751 + 97HOH HW1 312 0.623 -0.487 -0.693 + 97HOH HW2 313 0.460 -0.487 -0.693 + 98HOH OW 314 -0.754 0.294 -0.886 + 98HOH HW1 315 -0.672 0.294 -0.829 + 98HOH HW2 316 -0.754 0.376 -0.944 + 99HOH OW 317 0.206 -0.198 -0.997 + 99HOH HW1 318 0.287 -0.198 -0.940 + 99HOH HW2 319 0.206 -0.280 -1.055 + 100HOH OW 320 -0.686 -0.324 0.330 + 100HOH HW1 321 -0.767 -0.324 0.388 + 100HOH HW2 322 -0.686 -0.243 0.272 + 101HOH OW 323 -0.463 0.655 0.793 + 101HOH HW1 324 -0.544 0.655 0.851 + 101HOH HW2 325 -0.463 0.573 0.735 + 102HOH OW 326 -0.479 0.722 -1.163 + 102HOH HW1 327 -0.479 0.804 -1.221 + 102HOH HW2 328 -0.479 0.640 -1.221 + 103HOH OW 329 0.004 -1.240 -0.840 + 103HOH HW1 330 0.086 -1.240 -0.782 + 103HOH HW2 331 -0.078 -1.240 -0.782 + 104HOH OW 332 -0.548 0.389 -0.387 + 104HOH HW1 333 -0.466 0.389 -0.329 + 104HOH HW2 334 -0.548 0.471 -0.445 + 105HOH OW 335 -0.151 -0.473 -1.269 + 105HOH HW1 336 -0.069 -0.473 -1.212 + 105HOH HW2 337 -0.151 -0.555 -1.327 + 106HOH OW 338 0.086 0.714 0.625 + 106HOH HW1 339 0.004 0.714 0.682 + 106HOH HW2 340 0.086 0.796 0.567 + 107HOH OW 341 -0.506 0.117 -0.318 + 107HOH HW1 342 -0.588 0.117 -0.260 + 107HOH HW2 343 -0.506 0.035 -0.376 + 108HOH OW 344 0.113 -0.817 -0.675 + 108HOH HW1 345 0.113 -0.735 -0.733 + 108HOH HW2 346 0.113 -0.898 -0.733 + 109HOH OW 347 0.605 -0.250 -0.468 + 109HOH HW1 348 0.687 -0.250 -0.410 + 109HOH HW2 349 0.523 -0.250 -0.410 + 110HOH OW 350 -0.967 -1.331 -0.420 + 110HOH HW1 351 -0.885 -1.331 -0.363 + 110HOH HW2 352 -0.967 -1.249 -0.478 + 111HOH OW 353 -1.036 0.181 -0.562 + 111HOH HW1 354 -0.954 0.181 -0.504 + 111HOH HW2 355 -1.036 0.099 -0.620 + 112HOH OW 356 -0.754 -0.113 0.724 + 112HOH HW1 357 -0.835 -0.113 0.782 + 112HOH HW2 358 -0.754 -0.032 0.666 + 113HOH OW 359 -1.150 -1.057 0.139 + 113HOH HW1 360 -1.232 -1.057 0.197 + 113HOH HW2 361 -1.150 -1.139 0.081 + 114HOH OW 362 0.703 -1.213 0.005 + 114HOH HW1 363 0.703 -1.131 -0.053 + 114HOH HW2 364 0.703 -1.295 -0.053 + 115HOH OW 365 -0.068 0.477 -0.910 + 115HOH HW1 366 0.013 0.477 -0.853 + 115HOH HW2 367 -0.150 0.477 -0.853 + 116HOH OW 368 -0.830 0.324 -1.203 + 116HOH HW1 369 -0.748 0.324 -1.146 + 116HOH HW2 370 -0.830 0.406 -1.261 + 117HOH OW 371 -0.761 -1.194 -0.281 + 117HOH HW1 372 -0.679 -1.194 -0.223 + 117HOH HW2 373 -0.761 -1.275 -0.339 + 118HOH OW 374 0.051 -0.461 -0.335 + 118HOH HW1 375 -0.031 -0.461 -0.277 + 118HOH HW2 376 0.051 -0.379 -0.393 + 119HOH OW 377 0.062 0.259 0.641 + 119HOH HW1 378 -0.019 0.259 0.698 + 119HOH HW2 379 0.062 0.178 0.583 + 120HOH OW 380 0.440 -0.869 -1.358 + 120HOH HW1 381 0.440 -0.787 -1.416 + 120HOH HW2 382 0.440 -0.950 -1.416 + 121HOH OW 383 -0.729 -0.163 -1.018 + 121HOH HW1 384 -0.647 -0.163 -0.961 + 121HOH HW2 385 -0.811 -0.163 -0.961 + 122HOH OW 386 0.710 -0.139 0.409 + 122HOH HW1 387 0.792 -0.139 0.466 + 122HOH HW2 388 0.710 -0.057 0.351 + 123HOH OW 389 -0.167 -0.151 -1.051 + 123HOH HW1 390 -0.085 -0.151 -0.994 + 123HOH HW2 391 -0.167 -0.233 -1.109 + 124HOH OW 392 -0.314 0.471 -0.052 + 124HOH HW1 393 -0.396 0.471 0.006 + 124HOH HW2 394 -0.314 0.552 -0.110 + 125HOH OW 395 0.348 0.729 0.226 + 125HOH HW1 396 0.266 0.729 0.283 + 125HOH HW2 397 0.348 0.647 0.168 + 126HOH OW 398 -0.710 -0.958 -0.714 + 126HOH HW1 399 -0.710 -0.876 -0.772 + 126HOH HW2 400 -0.710 -1.039 -0.772 + 127HOH OW 401 0.431 -0.268 1.067 + 127HOH HW1 402 0.512 -0.268 1.124 + 127HOH HW2 403 0.349 -0.268 1.124 + 128HOH OW 404 0.740 0.306 -1.229 + 128HOH HW1 405 0.822 0.306 -1.172 + 128HOH HW2 406 0.740 0.388 -1.287 + 129HOH OW 407 -0.699 -0.422 -0.388 + 129HOH HW1 408 -0.618 -0.422 -0.331 + 129HOH HW2 409 -0.699 -0.504 -0.446 + 130HOH OW 410 0.451 -0.299 -0.940 + 130HOH HW1 411 0.369 -0.299 -0.882 + 130HOH HW2 412 0.451 -0.218 -0.997 + 131HOH OW 413 -0.754 0.610 -0.313 + 131HOH HW1 414 -0.836 0.610 -0.256 + 131HOH HW2 415 -0.754 0.528 -0.371 + 132HOH OW 416 -0.306 -0.854 -0.265 + 132HOH HW1 417 -0.306 -0.773 -0.323 + 132HOH HW2 418 -0.306 -0.936 -0.323 + 133HOH OW 419 -0.526 0.963 -0.083 + 133HOH HW1 420 -0.445 0.963 -0.025 + 133HOH HW2 421 -0.608 0.963 -0.025 + 134HOH OW 422 -0.582 0.053 -0.942 + 134HOH HW1 423 -0.500 0.053 -0.884 + 134HOH HW2 424 -0.582 0.135 -1.000 + 135HOH OW 425 -0.489 0.669 -0.225 + 135HOH HW1 426 -0.407 0.669 -0.167 + 135HOH HW2 427 -0.489 0.588 -0.282 + 136HOH OW 428 0.448 -0.768 -0.734 + 136HOH HW1 429 0.367 -0.768 -0.677 + 136HOH HW2 430 0.448 -0.686 -0.792 + 137HOH OW 431 1.116 -0.556 -0.504 + 137HOH HW1 432 1.034 -0.556 -0.447 + 137HOH HW2 433 1.116 -0.637 -0.562 + 138HOH OW 434 -0.383 -0.143 -0.559 + 138HOH HW1 435 -0.383 -0.061 -0.617 + 138HOH HW2 436 -0.383 -0.224 -0.617 + 139HOH OW 437 0.429 -0.217 0.728 + 139HOH HW1 438 0.510 -0.217 0.786 + 139HOH HW2 439 0.347 -0.217 0.786 + 140HOH OW 440 0.304 -0.990 0.516 + 140HOH HW1 441 0.385 -0.990 0.574 + 140HOH HW2 442 0.304 -0.909 0.458 + 141HOH OW 443 -0.202 -0.538 0.960 + 141HOH HW1 444 -0.120 -0.538 1.018 + 141HOH HW2 445 -0.202 -0.620 0.903 + 142HOH OW 446 0.450 -0.489 0.353 + 142HOH HW1 447 0.369 -0.489 0.411 + 142HOH HW2 448 0.450 -0.408 0.295 + 143HOH OW 449 -0.617 -0.372 -1.174 + 143HOH HW1 450 -0.698 -0.372 -1.116 + 143HOH HW2 451 -0.617 -0.453 -1.232 + 144HOH OW 452 -0.010 -0.494 0.392 + 144HOH HW1 453 -0.010 -0.412 0.334 + 144HOH HW2 454 -0.010 -0.576 0.334 + 145HOH OW 455 -0.823 -0.379 0.786 + 145HOH HW1 456 -0.741 -0.379 0.844 + 145HOH HW2 457 -0.905 -0.379 0.844 + 146HOH OW 458 0.245 -0.007 0.787 + 146HOH HW1 459 0.326 -0.007 0.845 + 146HOH HW2 460 0.245 0.074 0.730 + 147HOH OW 461 -0.838 -0.747 -0.923 + 147HOH HW1 462 -0.756 -0.747 -0.865 + 147HOH HW2 463 -0.838 -0.829 -0.980 + 148HOH OW 464 0.811 0.708 0.787 + 148HOH HW1 465 0.729 0.708 0.845 + 148HOH HW2 466 0.811 0.789 0.729 + 149HOH OW 467 0.244 -0.067 1.063 + 149HOH HW1 468 0.162 -0.067 1.121 + 149HOH HW2 469 0.244 -0.149 1.005 + 150HOH OW 470 0.661 -0.085 0.796 + 150HOH HW1 471 0.661 -0.004 0.738 + 150HOH HW2 472 0.661 -0.167 0.738 + 151HOH OW 473 0.995 -0.202 -1.029 + 151HOH HW1 474 1.076 -0.202 -0.972 + 151HOH HW2 475 0.913 -0.202 -0.972 + 152HOH OW 476 -0.563 1.233 0.966 + 152HOH HW1 477 -0.482 1.233 1.024 + 152HOH HW2 478 -0.563 1.315 0.908 + 153HOH OW 479 0.505 0.123 0.699 + 153HOH HW1 480 0.587 0.123 0.757 + 153HOH HW2 481 0.505 0.041 0.641 + 154HOH OW 482 0.157 0.186 1.010 + 154HOH HW1 483 0.075 0.186 1.068 + 154HOH HW2 484 0.157 0.268 0.952 + 155HOH OW 485 0.682 0.396 0.372 + 155HOH HW1 486 0.600 0.396 0.430 + 155HOH HW2 487 0.682 0.315 0.314 + 156HOH OW 488 0.448 -0.463 0.074 + 156HOH HW1 489 0.448 -0.381 0.016 + 156HOH HW2 490 0.448 -0.544 0.016 + 157HOH OW 491 0.345 -0.904 -0.969 + 157HOH HW1 492 0.427 -0.904 -0.912 + 157HOH HW2 493 0.263 -0.904 -0.912 + 158HOH OW 494 -0.136 -0.014 1.006 + 158HOH HW1 495 -0.055 -0.014 1.064 + 158HOH HW2 496 -0.136 0.067 0.948 + 159HOH OW 497 -0.405 -0.860 0.315 + 159HOH HW1 498 -0.324 -0.860 0.373 + 159HOH HW2 499 -0.405 -0.941 0.258 + 160HOH OW 500 -0.328 -0.377 -0.117 + 160HOH HW1 501 -0.410 -0.377 -0.060 + 160HOH HW2 502 -0.328 -0.295 -0.175 + 161HOH OW 503 -0.181 -0.278 1.048 + 161HOH HW1 504 -0.263 -0.278 1.106 + 161HOH HW2 505 -0.181 -0.360 0.990 + 162HOH OW 506 -0.089 -0.683 1.167 + 162HOH HW1 507 -0.089 -0.601 1.109 + 162HOH HW2 508 -0.089 -0.764 1.109 + 163HOH OW 509 0.434 -0.761 0.457 + 163HOH HW1 510 0.516 -0.761 0.515 + 163HOH HW2 511 0.353 -0.761 0.515 + 164HOH OW 512 0.217 0.574 1.148 + 164HOH HW1 513 0.298 0.574 1.205 + 164HOH HW2 514 0.217 0.656 1.090 + 165HOH OW 515 -0.133 0.444 0.469 + 165HOH HW1 516 -0.051 0.444 0.527 + 165HOH HW2 517 -0.133 0.363 0.411 + 166HOH OW 518 0.805 -0.325 -0.010 + 166HOH HW1 519 0.724 -0.325 0.048 + 166HOH HW2 520 0.805 -0.243 -0.068 + 167HOH OW 521 -1.101 -0.076 1.173 + 167HOH HW1 522 -1.182 -0.076 1.231 + 167HOH HW2 523 -1.101 -0.158 1.115 + 168HOH OW 524 -0.754 1.001 -1.319 + 168HOH HW1 525 -0.754 1.083 -1.377 + 168HOH HW2 526 -0.754 0.919 -1.377 + 169HOH OW 527 -1.056 0.496 -1.202 + 169HOH HW1 528 -0.974 0.496 -1.144 + 169HOH HW2 529 -1.137 0.496 -1.144 + 170HOH OW 530 -0.782 -0.539 0.478 + 170HOH HW1 531 -0.701 -0.539 0.536 + 170HOH HW2 532 -0.782 -0.457 0.420 + 171HOH OW 533 -0.752 -0.732 0.940 + 171HOH HW1 534 -0.671 -0.732 0.998 + 171HOH HW2 535 -0.752 -0.814 0.882 + 172HOH OW 536 -0.990 -0.081 -1.055 + 172HOH HW1 537 -1.072 -0.081 -0.997 + 172HOH HW2 538 -0.990 0.001 -1.113 + 173HOH OW 539 0.640 -0.966 0.122 + 173HOH HW1 540 0.559 -0.966 0.179 + 173HOH HW2 541 0.640 -1.047 0.064 + 174HOH OW 542 -0.440 -0.313 0.985 + 174HOH HW1 543 -0.440 -0.232 0.927 + 174HOH HW2 544 -0.440 -0.395 0.927 + 175HOH OW 545 -1.069 -0.441 -0.110 + 175HOH HW1 546 -0.988 -0.441 -0.052 + 175HOH HW2 547 -1.151 -0.441 -0.052 + 176HOH OW 548 -0.312 -1.205 -1.038 + 176HOH HW1 549 -0.230 -1.205 -0.980 + 176HOH HW2 550 -0.312 -1.123 -1.096 + 177HOH OW 551 -0.688 -0.617 1.189 + 177HOH HW1 552 -0.606 -0.617 1.246 + 177HOH HW2 553 -0.688 -0.699 1.131 + 178HOH OW 554 0.080 -0.270 1.140 + 178HOH HW1 555 -0.001 -0.270 1.198 + 178HOH HW2 556 0.080 -0.188 1.082 + 179HOH OW 557 -0.851 -0.207 0.135 + 179HOH HW1 558 -0.933 -0.207 0.193 + 179HOH HW2 559 -0.851 -0.288 0.077 + 180HOH OW 560 0.263 0.413 0.511 + 180HOH HW1 561 0.263 0.494 0.453 + 180HOH HW2 562 0.263 0.331 0.453 + 181HOH OW 563 -0.220 -1.196 0.868 + 181HOH HW1 564 -0.138 -1.196 0.925 + 181HOH HW2 565 -0.301 -1.196 0.925 + 182HOH OW 566 -0.939 -1.148 0.892 + 182HOH HW1 567 -0.857 -1.148 0.949 + 182HOH HW2 568 -0.939 -1.067 0.834 + 183HOH OW 569 -0.539 0.310 -0.655 + 183HOH HW1 570 -0.457 0.310 -0.597 + 183HOH HW2 571 -0.539 0.229 -0.712 + 184HOH OW 572 -0.126 -0.107 0.528 + 184HOH HW1 573 -0.208 -0.107 0.585 + 184HOH HW2 574 -0.126 -0.026 0.470 + 185HOH OW 575 -0.287 -0.855 1.085 + 185HOH HW1 576 -0.369 -0.855 1.143 + 185HOH HW2 577 -0.287 -0.936 1.027 + 186HOH OW 578 -0.605 -0.505 0.891 + 186HOH HW1 579 -0.605 -0.423 0.833 + 186HOH HW2 580 -0.605 -0.587 0.833 + 187HOH OW 581 0.509 -1.026 0.841 + 187HOH HW1 582 0.591 -1.026 0.899 + 187HOH HW2 583 0.428 -1.026 0.899 + 188HOH OW 584 -0.053 0.106 -1.036 + 188HOH HW1 585 0.029 0.106 -0.979 + 188HOH HW2 586 -0.053 0.188 -1.094 + 189HOH OW 587 0.119 -1.189 1.052 + 189HOH HW1 588 0.201 -1.189 1.110 + 189HOH HW2 589 0.119 -1.271 0.994 + 190HOH OW 590 -0.434 -0.253 0.717 + 190HOH HW1 591 -0.516 -0.253 0.775 + 190HOH HW2 592 -0.434 -0.172 0.659 + 191HOH OW 593 -0.506 0.365 1.013 + 191HOH HW1 594 -0.588 0.365 1.071 + 191HOH HW2 595 -0.506 0.284 0.955 + 192HOH OW 596 -0.640 -0.568 -0.840 + 192HOH HW1 597 -0.640 -0.486 -0.898 + 192HOH HW2 598 -0.640 -0.650 -0.898 + 193HOH OW 599 0.725 -0.423 -1.170 + 193HOH HW1 600 0.807 -0.423 -1.113 + 193HOH HW2 601 0.643 -0.423 -1.113 + 194HOH OW 602 -0.865 0.506 -0.730 + 194HOH HW1 603 -0.783 0.506 -0.672 + 194HOH HW2 604 -0.865 0.587 -0.788 + 195HOH OW 605 -0.650 -0.876 0.190 + 195HOH HW1 606 -0.568 -0.876 0.247 + 195HOH HW2 607 -0.650 -0.957 0.132 + 196HOH OW 608 0.152 -0.543 1.145 + 196HOH HW1 609 0.071 -0.543 1.203 + 196HOH HW2 610 0.152 -0.461 1.087 + 197HOH OW 611 0.255 0.360 -0.693 + 197HOH HW1 612 0.173 0.360 -0.635 + 197HOH HW2 613 0.255 0.279 -0.750 + 198HOH OW 614 -1.151 -0.392 1.180 + 198HOH HW1 615 -1.151 -0.310 1.122 + 198HOH HW2 616 -1.151 -0.473 1.122 + 199HOH OW 617 0.199 -1.350 0.001 + 199HOH HW1 618 0.281 -1.350 0.059 + 199HOH HW2 619 0.117 -1.350 0.059 + 200HOH OW 620 1.067 0.606 0.769 + 200HOH HW1 621 1.149 0.606 0.827 + 200HOH HW2 622 1.067 0.687 0.712 + 201HOH OW 623 0.102 0.469 -0.271 + 201HOH HW1 624 0.183 0.469 -0.213 + 201HOH HW2 625 0.102 0.387 -0.328 + 202HOH OW 626 -0.882 -0.064 0.963 + 202HOH HW1 627 -0.964 -0.064 1.021 + 202HOH HW2 628 -0.882 0.017 0.905 + 203HOH OW 629 0.736 -1.118 1.065 + 203HOH HW1 630 0.654 -1.118 1.123 + 203HOH HW2 631 0.736 -1.200 1.007 + 204HOH OW 632 0.172 0.947 -0.317 + 204HOH HW1 633 0.172 1.028 -0.375 + 204HOH HW2 634 0.172 0.865 -0.375 + 205HOH OW 635 0.844 0.407 0.983 + 205HOH HW1 636 0.925 0.407 1.041 + 205HOH HW2 637 0.762 0.407 1.041 + 206HOH OW 638 -0.371 0.348 -1.317 + 206HOH HW1 639 -0.289 0.348 -1.259 + 206HOH HW2 640 -0.371 0.429 -1.375 + 207HOH OW 641 -0.637 -0.149 1.074 + 207HOH HW1 642 -0.556 -0.149 1.132 + 207HOH HW2 643 -0.637 -0.231 1.017 + 208HOH OW 644 -1.312 -0.478 0.706 + 208HOH HW1 645 -1.394 -0.478 0.764 + 208HOH HW2 646 -1.312 -0.396 0.648 + 209HOH OW 647 -0.223 -0.363 0.518 + 209HOH HW1 648 -0.305 -0.363 0.576 + 209HOH HW2 649 -0.223 -0.444 0.460 + 210HOH OW 650 0.066 0.730 -1.262 + 210HOH HW1 651 0.066 0.811 -1.320 + 210HOH HW2 652 0.066 0.648 -1.320 + 211HOH OW 653 -0.234 -0.353 0.149 + 211HOH HW1 654 -0.153 -0.353 0.207 + 211HOH HW2 655 -0.316 -0.353 0.207 + 212HOH OW 656 0.627 0.234 -0.048 + 212HOH HW1 657 0.709 0.234 0.010 + 212HOH HW2 658 0.627 0.316 -0.105 + 213HOH OW 659 0.359 0.340 0.910 + 213HOH HW1 660 0.441 0.340 0.968 + 213HOH HW2 661 0.359 0.259 0.852 + 214HOH OW 662 0.221 -1.000 -1.199 + 214HOH HW1 663 0.139 -1.000 -1.141 + 214HOH HW2 664 0.221 -0.918 -1.256 + 215HOH OW 665 -1.247 -1.063 1.031 + 215HOH HW1 666 -1.329 -1.063 1.089 + 215HOH HW2 667 -1.247 -1.145 0.973 + 216HOH OW 668 0.046 0.635 0.367 + 216HOH HW1 669 0.046 0.717 0.309 + 216HOH HW2 670 0.046 0.554 0.309 + 217HOH OW 671 -0.334 -0.616 0.211 + 217HOH HW1 672 -0.252 -0.616 0.269 + 217HOH HW2 673 -0.416 -0.616 0.269 + 218HOH OW 674 -0.546 -0.634 0.587 + 218HOH HW1 675 -0.465 -0.634 0.645 + 218HOH HW2 676 -0.546 -0.553 0.529 + 219HOH OW 677 -1.190 -0.717 -0.390 + 219HOH HW1 678 -1.108 -0.717 -0.332 + 219HOH HW2 679 -1.190 -0.799 -0.448 + 220HOH OW 680 -0.244 0.952 0.721 + 220HOH HW1 681 -0.326 0.952 0.779 + 220HOH HW2 682 -0.244 1.034 0.663 + 221HOH OW 683 -0.256 1.200 -0.613 + 221HOH HW1 684 -0.338 1.200 -0.555 + 221HOH HW2 685 -0.256 1.118 -0.671 + 222HOH OW 686 -1.088 0.523 -0.265 + 222HOH HW1 687 -1.088 0.605 -0.323 + 222HOH HW2 688 -1.088 0.441 -0.323 + 223HOH OW 689 0.066 0.199 -0.798 + 223HOH HW1 690 0.148 0.199 -0.740 + 223HOH HW2 691 -0.015 0.199 -0.740 + 224HOH OW 692 -1.126 -0.858 -0.165 + 224HOH HW1 693 -1.045 -0.858 -0.107 + 224HOH HW2 694 -1.126 -0.776 -0.223 + 225HOH OW 695 -0.144 0.700 0.769 + 225HOH HW1 696 -0.062 0.700 0.826 + 225HOH HW2 697 -0.144 0.619 0.711 + 226HOH OW 698 0.024 -0.682 -1.110 + 226HOH HW1 699 -0.057 -0.682 -1.052 + 226HOH HW2 700 0.024 -0.600 -1.167 + 227HOH OW 701 -0.306 0.646 -0.760 + 227HOH HW1 702 -0.388 0.646 -0.702 + 227HOH HW2 703 -0.306 0.564 -0.818 + 228HOH OW 704 -0.042 -0.862 -0.903 + 228HOH HW1 705 -0.042 -0.780 -0.961 + 228HOH HW2 706 -0.042 -0.943 -0.961 + 229HOH OW 707 -1.017 1.128 0.570 + 229HOH HW1 708 -0.936 1.128 0.628 + 229HOH HW2 709 -1.099 1.128 0.628 + 230HOH OW 710 -1.340 0.748 -0.893 + 230HOH HW1 711 -1.258 0.748 -0.835 + 230HOH HW2 712 -1.340 0.830 -0.951 + 231HOH OW 713 0.224 1.177 -0.855 + 231HOH HW1 714 0.306 1.177 -0.798 + 231HOH HW2 715 0.224 1.095 -0.913 + 232HOH OW 716 0.073 0.668 -0.080 + 232HOH HW1 717 -0.008 0.668 -0.022 + 232HOH HW2 718 0.073 0.749 -0.138 + 233HOH OW 719 0.431 0.780 0.783 + 233HOH HW1 720 0.350 0.780 0.840 + 233HOH HW2 721 0.431 0.698 0.725 + 234HOH OW 722 -0.066 1.145 0.821 + 234HOH HW1 723 -0.066 1.226 0.763 + 234HOH HW2 724 -0.066 1.063 0.763 + 235HOH OW 725 -0.893 0.872 0.302 + 235HOH HW1 726 -0.811 0.872 0.360 + 235HOH HW2 727 -0.975 0.872 0.360 + 236HOH OW 728 -0.783 0.771 -0.689 + 236HOH HW1 729 -0.701 0.771 -0.631 + 236HOH HW2 730 -0.783 0.852 -0.746 + 237HOH OW 731 -1.127 0.500 -0.813 + 237HOH HW1 732 -1.045 0.500 -0.755 + 237HOH HW2 733 -1.127 0.418 -0.871 + 238HOH OW 734 1.087 1.091 0.060 + 238HOH HW1 735 1.006 1.091 0.117 + 238HOH HW2 736 1.087 1.173 0.002 + 239HOH OW 737 -0.690 0.550 -1.113 + 239HOH HW1 738 -0.771 0.550 -1.055 + 239HOH HW2 739 -0.690 0.469 -1.171 + 240HOH OW 740 0.266 0.552 0.748 + 240HOH HW1 741 0.266 0.633 0.690 + 240HOH HW2 742 0.266 0.470 0.690 + 241HOH OW 743 -0.605 0.934 -1.040 + 241HOH HW1 744 -0.524 0.934 -0.982 + 241HOH HW2 745 -0.687 0.934 -0.982 + 242HOH OW 746 -0.396 0.952 0.342 + 242HOH HW1 747 -0.314 0.952 0.400 + 242HOH HW2 748 -0.396 1.034 0.284 + 243HOH OW 749 -0.432 -0.812 -0.748 + 243HOH HW1 750 -0.351 -0.812 -0.691 + 243HOH HW2 751 -0.432 -0.893 -0.806 + 244HOH OW 752 -0.920 0.666 -0.104 + 244HOH HW1 753 -1.002 0.666 -0.046 + 244HOH HW2 754 -0.920 0.748 -0.162 + 245HOH OW 755 -1.013 0.194 -1.029 + 245HOH HW1 756 -1.095 0.194 -0.971 + 245HOH HW2 757 -1.013 0.112 -1.087 + 246HOH OW 758 -0.933 0.437 -0.473 + 246HOH HW1 759 -0.933 0.518 -0.530 + 246HOH HW2 760 -0.933 0.355 -0.530 + 247HOH OW 761 -0.683 1.092 -0.625 + 247HOH HW1 762 -0.602 1.092 -0.567 + 247HOH HW2 763 -0.765 1.092 -0.567 + 248HOH OW 764 -1.279 0.496 -1.046 + 248HOH HW1 765 -1.198 0.496 -0.988 + 248HOH HW2 766 -1.279 0.578 -1.104 + 249HOH OW 767 -0.678 1.214 -0.104 + 249HOH HW1 768 -0.596 1.214 -0.046 + 249HOH HW2 769 -0.678 1.133 -0.161 + 250HOH OW 770 -0.370 1.178 -0.198 + 250HOH HW1 771 -0.451 1.178 -0.140 + 250HOH HW2 772 -0.370 1.260 -0.256 + 251HOH OW 773 -0.087 -1.131 -0.415 + 251HOH HW1 774 -0.169 -1.131 -0.357 + 251HOH HW2 775 -0.087 -1.213 -0.473 + 252HOH OW 776 -0.252 0.865 -1.224 + 252HOH HW1 777 -0.252 0.947 -1.282 + 252HOH HW2 778 -0.252 0.784 -1.282 + 253HOH OW 779 -1.267 0.097 -1.083 + 253HOH HW1 780 -1.185 0.097 -1.025 + 253HOH HW2 781 -1.349 0.097 -1.025 + 254HOH OW 782 0.212 1.076 -0.564 + 254HOH HW1 783 0.293 1.076 -0.506 + 254HOH HW2 784 0.212 1.157 -0.622 + 255HOH OW 785 -0.601 0.212 0.459 + 255HOH HW1 786 -0.519 0.212 0.517 + 255HOH HW2 787 -0.601 0.130 0.402 + 256HOH OW 788 -0.936 0.953 -0.289 + 256HOH HW1 789 -1.018 0.953 -0.231 + 256HOH HW2 790 -0.936 1.035 -0.347 + 257HOH OW 791 -0.205 0.959 -0.236 + 257HOH HW1 792 -0.286 0.959 -0.178 + 257HOH HW2 793 -0.205 0.878 -0.294 + 258HOH OW 794 -1.027 0.869 0.053 + 258HOH HW1 795 -1.027 0.951 -0.005 + 258HOH HW2 796 -1.027 0.788 -0.005 + 259HOH OW 797 0.653 -1.054 -1.230 + 259HOH HW1 798 0.735 -1.054 -1.172 + 259HOH HW2 799 0.572 -1.054 -1.172 + 260HOH OW 800 -1.260 -1.359 1.227 + 260HOH HW1 801 -1.178 -1.359 1.285 + 260HOH HW2 802 -1.260 -1.277 1.169 + 261HOH OW 803 -1.251 0.322 0.239 + 261HOH HW1 804 -1.169 0.322 0.297 + 261HOH HW2 805 -1.251 0.240 0.182 + 262HOH OW 806 -0.698 1.062 -0.362 + 262HOH HW1 807 -0.779 1.062 -0.304 + 262HOH HW2 808 -0.698 1.144 -0.420 + 263HOH OW 809 -0.319 -1.159 0.198 + 263HOH HW1 810 -0.401 -1.159 0.256 + 263HOH HW2 811 -0.319 -1.241 0.140 + 264HOH OW 812 -0.241 0.600 1.172 + 264HOH HW1 813 -0.241 0.682 1.115 + 264HOH HW2 814 -0.241 0.519 1.115 + 265HOH OW 815 -1.016 0.557 0.474 + 265HOH HW1 816 -0.934 0.557 0.531 + 265HOH HW2 817 -1.098 0.557 0.531 + 266HOH OW 818 -0.995 0.847 -0.539 + 266HOH HW1 819 -0.913 0.847 -0.481 + 266HOH HW2 820 -0.995 0.929 -0.596 + 267HOH OW 821 0.194 0.962 0.630 + 267HOH HW1 822 0.276 0.962 0.687 + 267HOH HW2 823 0.194 0.880 0.572 + 268HOH OW 824 -0.638 0.811 -0.453 + 268HOH HW1 825 -0.719 0.811 -0.395 + 268HOH HW2 826 -0.638 0.893 -0.511 + 269HOH OW 827 -0.275 0.475 -1.090 + 269HOH HW1 828 -0.357 0.475 -1.033 + 269HOH HW2 829 -0.275 0.394 -1.148 + 270HOH OW 830 0.044 -1.294 -1.188 + 270HOH HW1 831 0.044 -1.212 -1.246 + 270HOH HW2 832 0.044 -1.376 -1.246 + 271HOH OW 833 -1.084 -1.227 -0.966 + 271HOH HW1 834 -1.002 -1.227 -0.908 + 271HOH HW2 835 -1.166 -1.227 -0.908 + 272HOH OW 836 -0.412 0.824 -0.593 + 272HOH HW1 837 -0.330 0.824 -0.535 + 272HOH HW2 838 -0.412 0.906 -0.651 + 273HOH OW 839 -0.361 0.228 0.803 + 273HOH HW1 840 -0.279 0.228 0.861 + 273HOH HW2 841 -0.361 0.146 0.745 + 274HOH OW 842 -0.566 0.776 0.114 + 274HOH HW1 843 -0.648 0.776 0.172 + 274HOH HW2 844 -0.566 0.858 0.056 + 275HOH OW 845 1.165 1.219 -0.468 + 275HOH HW1 846 1.084 1.219 -0.411 + 275HOH HW2 847 1.165 1.137 -0.526 + 276HOH OW 848 1.119 0.741 0.533 + 276HOH HW1 849 1.119 0.822 0.475 + 276HOH HW2 850 1.119 0.659 0.475 + 277HOH OW 851 -0.520 0.606 1.139 + 277HOH HW1 852 -0.439 0.606 1.197 + 277HOH HW2 853 -0.602 0.606 1.197 + 278HOH OW 854 -0.051 -1.211 -0.129 + 278HOH HW1 855 0.030 -1.211 -0.072 + 278HOH HW2 856 -0.051 -1.129 -0.187 + 279HOH OW 857 0.020 0.955 -0.083 + 279HOH HW1 858 0.101 0.955 -0.026 + 279HOH HW2 859 0.020 0.873 -0.141 + 280HOH OW 860 -0.559 0.993 1.102 + 280HOH HW1 861 -0.641 0.993 1.160 + 280HOH HW2 862 -0.559 1.074 1.044 + 281HOH OW 863 -0.644 -1.136 0.590 + 281HOH HW1 864 -0.726 -1.136 0.648 + 281HOH HW2 865 -0.644 -1.218 0.532 + 282HOH OW 866 0.323 -0.094 -1.226 + 282HOH HW1 867 0.323 -0.012 -1.284 + 282HOH HW2 868 0.323 -0.176 -1.284 + 283HOH OW 869 -0.210 0.251 1.035 + 283HOH HW1 870 -0.128 0.251 1.093 + 283HOH HW2 871 -0.292 0.251 1.093 + 284HOH OW 872 0.067 -0.081 -0.774 + 284HOH HW1 873 0.148 -0.081 -0.717 + 284HOH HW2 874 0.067 0.000 -0.832 + 285HOH OW 875 -0.256 0.607 -0.359 + 285HOH HW1 876 -0.174 0.607 -0.301 + 285HOH HW2 877 -0.256 0.525 -0.416 + 286HOH OW 878 0.548 0.126 -0.817 + 286HOH HW1 879 0.466 0.126 -0.759 + 286HOH HW2 880 0.548 0.208 -0.875 + 287HOH OW 881 -0.158 0.494 -0.589 + 287HOH HW1 882 -0.239 0.494 -0.531 + 287HOH HW2 883 -0.158 0.412 -0.647 + 288HOH OW 884 1.128 0.592 -0.086 + 288HOH HW1 885 1.128 0.674 -0.144 + 288HOH HW2 886 1.128 0.511 -0.144 + 289HOH OW 887 -0.678 0.714 0.451 + 289HOH HW1 888 -0.596 0.714 0.508 + 289HOH HW2 889 -0.760 0.714 0.508 + 290HOH OW 890 1.107 0.191 -1.212 + 290HOH HW1 891 1.189 0.191 -1.154 + 290HOH HW2 892 1.107 0.273 -1.270 + 291HOH OW 893 -0.549 -0.952 -1.207 + 291HOH HW1 894 -0.467 -0.952 -1.150 + 291HOH HW2 895 -0.549 -1.033 -1.265 + 292HOH OW 896 -0.772 1.004 0.608 + 292HOH HW1 897 -0.854 1.004 0.666 + 292HOH HW2 898 -0.772 1.086 0.551 + 293HOH OW 899 0.880 0.120 -0.484 + 293HOH HW1 900 0.799 0.120 -0.427 + 293HOH HW2 901 0.880 0.039 -0.542 + 294HOH OW 902 -1.212 0.549 0.000 + 294HOH HW1 903 -1.212 0.630 -0.058 + 294HOH HW2 904 -1.212 0.467 -0.058 + 295HOH OW 905 -0.004 0.846 0.193 + 295HOH HW1 906 0.078 0.846 0.251 + 295HOH HW2 907 -0.086 0.846 0.251 + 296HOH OW 908 -0.068 0.793 -0.730 + 296HOH HW1 909 0.014 0.793 -0.672 + 296HOH HW2 910 -0.068 0.875 -0.788 + 297HOH OW 911 -1.012 -0.732 -1.183 + 297HOH HW1 912 -0.931 -0.732 -1.125 + 297HOH HW2 913 -1.012 -0.813 -1.240 + 298HOH OW 914 0.293 1.005 -1.326 + 298HOH HW1 915 0.211 1.005 -1.268 + 298HOH HW2 916 0.293 1.087 -1.384 + 299HOH OW 917 0.439 -0.098 -0.640 + 299HOH HW1 918 0.358 -0.098 -0.582 + 299HOH HW2 919 0.439 -0.180 -0.698 + 300HOH OW 920 -1.289 -0.999 -0.748 + 300HOH HW1 921 -1.289 -0.917 -0.806 + 300HOH HW2 922 -1.289 -1.081 -0.806 + 301HOH OW 923 -0.102 0.855 1.107 + 301HOH HW1 924 -0.020 0.855 1.164 + 301HOH HW2 925 -0.183 0.855 1.164 + 302HOH OW 926 0.279 0.989 0.889 + 302HOH HW1 927 0.360 0.989 0.947 + 302HOH HW2 928 0.279 1.071 0.831 + 303HOH OW 929 -0.659 0.241 0.726 + 303HOH HW1 930 -0.578 0.241 0.784 + 303HOH HW2 931 -0.659 0.159 0.669 + 304HOH OW 932 0.071 1.063 1.048 + 304HOH HW1 933 -0.010 1.063 1.106 + 304HOH HW2 934 0.071 1.144 0.990 + 305HOH OW 935 -0.006 0.360 0.890 + 305HOH HW1 936 -0.088 0.360 0.947 + 305HOH HW2 937 -0.006 0.278 0.832 + 306HOH OW 938 -0.014 0.606 1.000 + 306HOH HW1 939 -0.014 0.688 0.943 + 306HOH HW2 940 -0.014 0.525 0.943 + 307HOH OW 941 -0.813 0.729 -1.282 + 307HOH HW1 942 -0.732 0.729 -1.224 + 307HOH HW2 943 -0.895 0.729 -1.224 + 308HOH OW 944 0.081 1.200 0.560 + 308HOH HW1 945 0.163 1.200 0.617 + 308HOH HW2 946 0.081 1.281 0.502 + 309HOH OW 947 -0.517 -1.016 1.126 + 309HOH HW1 948 -0.435 -1.016 1.184 + 309HOH HW2 949 -0.517 -1.098 1.068 + 310HOH OW 950 1.071 0.337 0.840 + 310HOH HW1 951 0.989 0.337 0.898 + 310HOH HW2 952 1.071 0.418 0.782 + 311HOH OW 953 -0.286 0.752 0.185 + 311HOH HW1 954 -0.367 0.752 0.242 + 311HOH HW2 955 -0.286 0.671 0.127 + 312HOH OW 956 0.385 1.214 1.041 + 312HOH HW1 957 0.385 1.296 0.983 + 312HOH HW2 958 0.385 1.133 0.983 + 313HOH OW 959 0.255 1.151 0.269 + 313HOH HW1 960 0.337 1.151 0.327 + 313HOH HW2 961 0.174 1.151 0.327 + 314HOH OW 962 -1.358 1.243 0.928 + 314HOH HW1 963 -1.276 1.243 0.986 + 314HOH HW2 964 -1.358 1.325 0.871 + 315HOH OW 965 -0.507 1.179 -1.094 + 315HOH HW1 966 -0.425 1.179 -1.036 + 315HOH HW2 967 -0.507 1.098 -1.151 + 316HOH OW 968 -0.780 0.377 1.114 + 316HOH HW1 969 -0.862 0.377 1.171 + 316HOH HW2 970 -0.780 0.458 1.056 + 317HOH OW 971 -0.390 -0.981 0.838 + 317HOH HW1 972 -0.472 -0.981 0.896 + 317HOH HW2 973 -0.390 -1.063 0.780 + 318HOH OW 974 -0.851 0.859 -0.936 + 318HOH HW1 975 -0.851 0.941 -0.993 + 318HOH HW2 976 -0.851 0.777 -0.993 + 319HOH OW 977 -1.205 0.971 -1.143 + 319HOH HW1 978 -1.123 0.971 -1.085 + 319HOH HW2 979 -1.286 0.971 -1.085 + 320HOH OW 980 -1.208 0.754 0.865 + 320HOH HW1 981 -1.126 0.754 0.923 + 320HOH HW2 982 -1.208 0.836 0.807 + 321HOH OW 983 0.208 -1.103 0.807 + 321HOH HW1 984 0.290 -1.103 0.865 + 321HOH HW2 985 0.208 -1.185 0.749 + 322HOH OW 986 -0.470 0.835 0.585 + 322HOH HW1 987 -0.552 0.835 0.643 + 322HOH HW2 988 -0.470 0.917 0.528 + 323HOH OW 989 0.588 0.585 0.670 + 323HOH HW1 990 0.506 0.585 0.728 + 323HOH HW2 991 0.588 0.503 0.613 + 324HOH OW 992 -0.040 -1.181 0.657 + 324HOH HW1 993 -0.040 -1.100 0.599 + 324HOH HW2 994 -0.040 -1.263 0.599 + 325HOH OW 995 -0.350 0.874 0.963 + 325HOH HW1 996 -0.268 0.874 1.021 + 325HOH HW2 997 -0.431 0.874 1.021 + 326HOH OW 998 0.468 -0.522 -1.184 + 326HOH HW1 999 0.550 -0.522 -1.126 + 326HOH HW2 1000 0.468 -0.440 -1.241 + 327HOH OW 1001 0.094 0.760 -0.988 + 327HOH HW1 1002 0.176 0.760 -0.930 + 327HOH HW2 1003 0.094 0.678 -1.045 + 328HOH OW 1004 1.144 -1.095 1.212 + 328HOH HW1 1005 1.062 -1.095 1.270 + 328HOH HW2 1006 1.144 -1.014 1.154 + 329HOH OW 1007 -0.454 -1.202 -1.271 + 329HOH HW1 1008 -0.536 -1.202 -1.214 + 329HOH HW2 1009 -0.454 -1.283 -1.329 + 330HOH OW 1010 -0.760 -1.316 0.771 + 330HOH HW1 1011 -0.760 -1.234 0.713 + 330HOH HW2 1012 -0.760 -1.397 0.713 + 331HOH OW 1013 0.116 -0.555 -0.804 + 331HOH HW1 1014 0.198 -0.555 -0.747 + 331HOH HW2 1015 0.034 -0.555 -0.747 + 332HOH OW 1016 -0.155 -0.752 -0.566 + 332HOH HW1 1017 -0.073 -0.752 -0.508 + 332HOH HW2 1018 -0.155 -0.670 -0.623 + 333HOH OW 1019 1.139 0.172 -0.679 + 333HOH HW1 1020 1.221 0.172 -0.622 + 333HOH HW2 1021 1.139 0.091 -0.737 + 334HOH OW 1022 0.596 -0.604 -0.104 + 334HOH HW1 1023 0.514 -0.604 -0.046 + 334HOH HW2 1024 0.596 -0.522 -0.162 + 335HOH OW 1025 1.027 -0.509 0.071 + 335HOH HW1 1026 0.946 -0.509 0.128 + 335HOH HW2 1027 1.027 -0.590 0.013 + 336HOH OW 1028 1.032 -0.569 -0.245 + 336HOH HW1 1029 1.032 -0.487 -0.303 + 336HOH HW2 1030 1.032 -0.650 -0.303 + 337HOH OW 1031 1.044 -1.144 -0.321 + 337HOH HW1 1032 1.126 -1.144 -0.263 + 337HOH HW2 1033 0.963 -1.144 -0.263 + 338HOH OW 1034 -1.364 -0.681 0.367 + 338HOH HW1 1035 -1.282 -0.681 0.425 + 338HOH HW2 1036 -1.364 -0.599 0.309 + 339HOH OW 1037 0.598 -0.144 -1.204 + 339HOH HW1 1038 0.680 -0.144 -1.147 + 339HOH HW2 1039 0.598 -0.226 -1.262 + 340HOH OW 1040 0.514 -0.859 -0.133 + 340HOH HW1 1041 0.432 -0.859 -0.075 + 340HOH HW2 1042 0.514 -0.778 -0.190 + 341HOH OW 1043 0.257 -0.686 -1.257 + 341HOH HW1 1044 0.175 -0.686 -1.199 + 341HOH HW2 1045 0.257 -0.767 -1.314 + 342HOH OW 1046 1.197 -0.812 0.104 + 342HOH HW1 1047 1.197 -0.731 0.046 + 342HOH HW2 1048 1.197 -0.894 0.046 + 343HOH OW 1049 1.124 -0.620 -0.890 + 343HOH HW1 1050 1.205 -0.620 -0.833 + 343HOH HW2 1051 1.042 -0.620 -0.833 + 344HOH OW 1052 -1.306 0.916 -0.001 + 344HOH HW1 1053 -1.224 0.916 0.056 + 344HOH HW2 1054 -1.306 0.997 -0.059 + 345HOH OW 1055 0.087 -0.222 0.669 + 345HOH HW1 1056 0.168 -0.222 0.727 + 345HOH HW2 1057 0.087 -0.303 0.611 + 346HOH OW 1058 0.471 1.040 -0.495 + 346HOH HW1 1059 0.390 1.040 -0.437 + 346HOH HW2 1060 0.471 1.122 -0.553 + 347HOH OW 1061 0.321 -0.621 -0.970 + 347HOH HW1 1062 0.239 -0.621 -0.912 + 347HOH HW2 1063 0.321 -0.703 -1.028 + 348HOH OW 1064 -0.798 -0.984 0.412 + 348HOH HW1 1065 -0.798 -0.903 0.354 + 348HOH HW2 1066 -0.798 -1.066 0.354 + 349HOH OW 1067 1.170 -0.787 0.620 + 349HOH HW1 1068 1.252 -0.787 0.677 + 349HOH HW2 1069 1.089 -0.787 0.677 + 350HOH OW 1070 -0.311 -0.605 0.724 + 350HOH HW1 1071 -0.229 -0.605 0.782 + 350HOH HW2 1072 -0.311 -0.524 0.666 + 351HOH OW 1073 -0.810 -0.494 -0.053 + 351HOH HW1 1074 -0.728 -0.494 0.005 + 351HOH HW2 1075 -0.810 -0.576 -0.111 + 352HOH OW 1076 0.545 -0.210 0.014 + 352HOH HW1 1077 0.463 -0.210 0.072 + 352HOH HW2 1078 0.545 -0.129 -0.043 + 353HOH OW 1079 0.989 0.339 0.409 + 353HOH HW1 1080 0.907 0.339 0.467 + 353HOH HW2 1081 0.989 0.257 0.351 + 354HOH OW 1082 -1.173 1.201 -0.241 + 354HOH HW1 1083 -1.173 1.283 -0.298 + 354HOH HW2 1084 -1.173 1.120 -0.298 + 355HOH OW 1085 -1.285 -0.991 -1.163 + 355HOH HW1 1086 -1.203 -0.991 -1.105 + 355HOH HW2 1087 -1.366 -0.991 -1.105 + 356HOH OW 1088 1.170 0.980 -0.784 + 356HOH HW1 1089 1.252 0.980 -0.726 + 356HOH HW2 1090 1.170 1.062 -0.842 + 357HOH OW 1091 0.653 -0.129 -0.881 + 357HOH HW1 1092 0.734 -0.129 -0.824 + 357HOH HW2 1093 0.653 -0.211 -0.939 + 358HOH OW 1094 1.193 -0.216 0.206 + 358HOH HW1 1095 1.111 -0.216 0.264 + 358HOH HW2 1096 1.193 -0.134 0.148 + 359HOH OW 1097 -1.175 0.114 -0.803 + 359HOH HW1 1098 -1.257 0.114 -0.745 + 359HOH HW2 1099 -1.175 0.033 -0.860 + 360HOH OW 1100 0.814 0.570 -1.217 + 360HOH HW1 1101 0.814 0.652 -1.274 + 360HOH HW2 1102 0.814 0.489 -1.274 + 361HOH OW 1103 0.714 -1.250 -0.496 + 361HOH HW1 1104 0.796 -1.250 -0.438 + 361HOH HW2 1105 0.633 -1.250 -0.438 + 362HOH OW 1106 0.959 -0.816 -0.174 + 362HOH HW1 1107 1.041 -0.816 -0.116 + 362HOH HW2 1108 0.959 -0.735 -0.232 + 363HOH OW 1109 1.189 -1.222 0.624 + 363HOH HW1 1110 1.271 -1.222 0.682 + 363HOH HW2 1111 1.189 -1.304 0.566 + 364HOH OW 1112 0.899 1.031 0.259 + 364HOH HW1 1113 0.817 1.031 0.317 + 364HOH HW2 1114 0.899 1.112 0.201 + 365HOH OW 1115 -1.263 -0.238 -0.225 + 365HOH HW1 1116 -1.344 -0.238 -0.167 + 365HOH HW2 1117 -1.263 -0.319 -0.283 + 366HOH OW 1118 0.319 -0.348 -0.664 + 366HOH HW1 1119 0.319 -0.267 -0.722 + 366HOH HW2 1120 0.319 -0.430 -0.722 + 367HOH OW 1121 0.469 1.226 -0.745 + 367HOH HW1 1122 0.550 1.226 -0.687 + 367HOH HW2 1123 0.387 1.226 -0.687 + 368HOH OW 1124 -0.892 1.216 -0.757 + 368HOH HW1 1125 -0.811 1.216 -0.700 + 368HOH HW2 1126 -0.892 1.297 -0.815 + 369HOH OW 1127 0.953 0.990 -0.340 + 369HOH HW1 1128 1.035 0.990 -0.283 + 369HOH HW2 1129 0.953 0.908 -0.398 + 370HOH OW 1130 -1.321 -0.721 -0.634 + 370HOH HW1 1131 -1.402 -0.721 -0.576 + 370HOH HW2 1132 -1.321 -0.639 -0.692 + 371HOH OW 1133 -0.827 -1.177 0.057 + 371HOH HW1 1134 -0.908 -1.177 0.115 + 371HOH HW2 1135 -0.827 -1.259 -0.000 + 372HOH OW 1136 -0.105 -0.985 -1.352 + 372HOH HW1 1137 -0.105 -0.903 -1.409 + 372HOH HW2 1138 -0.105 -1.066 -1.409 + 373HOH OW 1139 1.077 -1.164 0.388 + 373HOH HW1 1140 1.159 -1.164 0.446 + 373HOH HW2 1141 0.995 -1.164 0.446 + 374HOH OW 1142 -0.495 -0.903 0.585 + 374HOH HW1 1143 -0.413 -0.903 0.643 + 374HOH HW2 1144 -0.495 -0.821 0.527 + 375HOH OW 1145 0.776 -1.143 -0.253 + 375HOH HW1 1146 0.858 -1.143 -0.195 + 375HOH HW2 1147 0.776 -1.225 -0.311 + 376HOH OW 1148 0.871 -0.712 0.284 + 376HOH HW1 1149 0.789 -0.712 0.342 + 376HOH HW2 1150 0.871 -0.630 0.226 + 377HOH OW 1151 -0.965 0.551 0.191 + 377HOH HW1 1152 -1.047 0.551 0.248 + 377HOH HW2 1153 -0.965 0.470 0.133 + 378HOH OW 1154 0.793 0.265 0.589 + 378HOH HW1 1155 0.793 0.347 0.532 + 378HOH HW2 1156 0.793 0.183 0.532 + 379HOH OW 1157 1.106 -0.060 0.441 + 379HOH HW1 1158 1.188 -0.060 0.499 + 379HOH HW2 1159 1.024 -0.060 0.499 + 380HOH OW 1160 -1.087 -0.934 0.810 + 380HOH HW1 1161 -1.005 -0.934 0.868 + 380HOH HW2 1162 -1.087 -0.852 0.752 + 381HOH OW 1163 -0.145 -0.581 -0.169 + 381HOH HW1 1164 -0.064 -0.581 -0.111 + 381HOH HW2 1165 -0.145 -0.662 -0.226 + 382HOH OW 1166 0.872 -0.130 -0.198 + 382HOH HW1 1167 0.790 -0.130 -0.140 + 382HOH HW2 1168 0.872 -0.049 -0.256 + 383HOH OW 1169 -1.080 -0.446 -0.495 + 383HOH HW1 1170 -1.162 -0.446 -0.437 + 383HOH HW2 1171 -1.080 -0.527 -0.552 + 384HOH OW 1172 -1.196 -0.482 0.457 + 384HOH HW1 1173 -1.196 -0.401 0.399 + 384HOH HW2 1174 -1.196 -0.564 0.399 + 385HOH OW 1175 -0.767 -0.996 -1.051 + 385HOH HW1 1176 -0.685 -0.996 -0.993 + 385HOH HW2 1177 -0.849 -0.996 -0.993 + 386HOH OW 1178 0.682 -1.011 -0.633 + 386HOH HW1 1179 0.764 -1.011 -0.575 + 386HOH HW2 1180 0.682 -0.930 -0.691 + 387HOH OW 1181 -0.795 -0.342 -0.818 + 387HOH HW1 1182 -0.714 -0.342 -0.760 + 387HOH HW2 1183 -0.795 -0.424 -0.875 + 388HOH OW 1184 0.238 0.275 -1.304 + 388HOH HW1 1185 0.156 0.275 -1.246 + 388HOH HW2 1186 0.238 0.356 -1.361 + 389HOH OW 1187 0.839 -0.571 -0.506 + 389HOH HW1 1188 0.758 -0.571 -0.448 + 389HOH HW2 1189 0.839 -0.653 -0.564 + 390HOH OW 1190 1.064 -0.261 -0.645 + 390HOH HW1 1191 1.064 -0.180 -0.703 + 390HOH HW2 1192 1.064 -0.343 -0.703 + 391HOH OW 1193 0.374 1.172 -0.197 + 391HOH HW1 1194 0.456 1.172 -0.139 + 391HOH HW2 1195 0.293 1.172 -0.139 + 392HOH OW 1196 1.068 -0.507 -1.277 + 392HOH HW1 1197 1.149 -0.507 -1.220 + 392HOH HW2 1198 1.068 -0.426 -1.335 + 393HOH OW 1199 0.712 -0.779 -0.779 + 393HOH HW1 1200 0.794 -0.779 -0.722 + 393HOH HW2 1201 0.712 -0.860 -0.837 + 394HOH OW 1202 -0.942 0.371 0.726 + 394HOH HW1 1203 -1.023 0.371 0.784 + 394HOH HW2 1204 -0.942 0.453 0.668 + 395HOH OW 1205 0.931 1.219 -0.599 + 395HOH HW1 1206 0.850 1.219 -0.541 + 395HOH HW2 1207 0.931 1.137 -0.657 + 396HOH OW 1208 0.129 -1.011 -0.155 + 396HOH HW1 1209 0.129 -0.930 -0.213 + 396HOH HW2 1210 0.129 -1.093 -0.213 + 397HOH OW 1211 -1.193 -0.664 0.041 + 397HOH HW1 1212 -1.112 -0.664 0.099 + 397HOH HW2 1213 -1.275 -0.664 0.099 + 398HOH OW 1214 -1.248 0.484 -0.563 + 398HOH HW1 1215 -1.167 0.484 -0.505 + 398HOH HW2 1216 -1.248 0.565 -0.621 + 399HOH OW 1217 -0.271 0.471 0.707 + 399HOH HW1 1218 -0.189 0.471 0.765 + 399HOH HW2 1219 -0.271 0.389 0.649 + 400HOH OW 1220 1.172 0.052 -0.226 + 400HOH HW1 1221 1.090 0.052 -0.168 + 400HOH HW2 1222 1.172 0.134 -0.283 + 401HOH OW 1223 1.075 -1.158 -0.754 + 401HOH HW1 1224 0.993 -1.158 -0.696 + 401HOH HW2 1225 1.075 -1.240 -0.812 + 402HOH OW 1226 0.596 0.179 0.227 + 402HOH HW1 1227 0.596 0.261 0.169 + 402HOH HW2 1228 0.596 0.098 0.169 + 403HOH OW 1229 -0.826 0.113 0.315 + 403HOH HW1 1230 -0.745 0.113 0.372 + 403HOH HW2 1231 -0.908 0.113 0.372 + 404HOH OW 1232 1.146 -0.988 -0.541 + 404HOH HW1 1233 1.228 -0.988 -0.483 + 404HOH HW2 1234 1.146 -0.906 -0.599 + 405HOH OW 1235 0.787 -0.746 0.028 + 405HOH HW1 1236 0.869 -0.746 0.086 + 405HOH HW2 1237 0.787 -0.828 -0.030 + 406HOH OW 1238 -0.898 -0.242 -1.260 + 406HOH HW1 1239 -0.980 -0.242 -1.202 + 406HOH HW2 1240 -0.898 -0.161 -1.318 + 407HOH OW 1241 0.436 0.339 -0.226 + 407HOH HW1 1242 0.354 0.339 -0.168 + 407HOH HW2 1243 0.436 0.257 -0.284 + 408HOH OW 1244 1.158 -0.177 -0.409 + 408HOH HW1 1245 1.158 -0.095 -0.467 + 408HOH HW2 1246 1.158 -0.258 -0.467 + 409HOH OW 1247 1.066 -0.454 1.046 + 409HOH HW1 1248 1.148 -0.454 1.103 + 409HOH HW2 1249 0.985 -0.454 1.103 + 410HOH OW 1250 0.356 0.461 -1.146 + 410HOH HW1 1251 0.438 0.461 -1.088 + 410HOH HW2 1252 0.356 0.542 -1.204 + 411HOH OW 1253 0.897 0.015 0.604 + 411HOH HW1 1254 0.979 0.015 0.662 + 411HOH HW2 1255 0.897 -0.066 0.546 + 412HOH OW 1256 0.953 -1.270 0.090 + 412HOH HW1 1257 0.871 -1.270 0.148 + 412HOH HW2 1258 0.953 -1.188 0.033 + 413HOH OW 1259 -0.514 0.524 -0.891 + 413HOH HW1 1260 -0.596 0.524 -0.834 + 413HOH HW2 1261 -0.514 0.442 -0.949 + 414HOH OW 1262 -1.260 -0.156 -0.998 + 414HOH HW1 1263 -1.260 -0.074 -1.055 + 414HOH HW2 1264 -1.260 -0.238 -1.055 + 415HOH OW 1265 0.251 -0.776 -0.208 + 415HOH HW1 1266 0.332 -0.776 -0.150 + 415HOH HW2 1267 0.169 -0.776 -0.150 + 416HOH OW 1268 1.174 -1.108 0.132 + 416HOH HW1 1269 1.256 -1.108 0.190 + 416HOH HW2 1270 1.174 -1.026 0.075 + 417HOH OW 1271 0.927 -0.466 -0.984 + 417HOH HW1 1272 1.008 -0.466 -0.927 + 417HOH HW2 1273 0.927 -0.547 -1.042 + 418HOH OW 1274 0.483 -1.154 -0.900 + 418HOH HW1 1275 0.402 -1.154 -0.842 + 418HOH HW2 1276 0.483 -1.072 -0.958 + 419HOH OW 1277 0.618 -0.507 -0.367 + 419HOH HW1 1278 0.536 -0.507 -0.310 + 419HOH HW2 1279 0.618 -0.588 -0.425 + 420HOH OW 1280 0.842 0.400 0.001 + 420HOH HW1 1281 0.842 0.482 -0.057 + 420HOH HW2 1282 0.842 0.318 -0.057 + 421HOH OW 1283 0.497 0.573 1.130 + 421HOH HW1 1284 0.579 0.573 1.188 + 421HOH HW2 1285 0.415 0.573 1.188 + 422HOH OW 1286 -1.267 -0.170 -0.728 + 422HOH HW1 1287 -1.185 -0.170 -0.670 + 422HOH HW2 1288 -1.267 -0.088 -0.786 + 423HOH OW 1289 0.486 -0.732 -0.465 + 423HOH HW1 1290 0.568 -0.732 -0.407 + 423HOH HW2 1291 0.486 -0.814 -0.523 + 424HOH OW 1292 0.373 -1.145 -0.216 + 424HOH HW1 1293 0.291 -1.145 -0.158 + 424HOH HW2 1294 0.373 -1.064 -0.274 + 425HOH OW 1295 0.922 -0.720 -1.152 + 425HOH HW1 1296 0.840 -0.720 -1.094 + 425HOH HW2 1297 0.922 -0.802 -1.210 + 426HOH OW 1298 -0.595 -1.226 -0.688 + 426HOH HW1 1299 -0.595 -1.144 -0.745 + 426HOH HW2 1300 -0.595 -1.307 -0.745 + 427HOH OW 1301 1.197 0.729 -1.217 + 427HOH HW1 1302 1.279 0.729 -1.160 + 427HOH HW2 1303 1.116 0.729 -1.160 + 428HOH OW 1304 0.712 -0.909 0.405 + 428HOH HW1 1305 0.794 -0.909 0.463 + 428HOH HW2 1306 0.712 -0.827 0.348 + 429HOH OW 1307 0.772 -0.027 1.052 + 429HOH HW1 1308 0.854 -0.027 1.110 + 429HOH HW2 1309 0.772 -0.109 0.994 + 430HOH OW 1310 0.812 -0.002 -1.122 + 430HOH HW1 1311 0.730 -0.002 -1.064 + 430HOH HW2 1312 0.812 0.079 -1.179 + 431HOH OW 1313 -1.042 -0.294 0.939 + 431HOH HW1 1314 -1.124 -0.294 0.997 + 431HOH HW2 1315 -1.042 -0.375 0.881 + 432HOH OW 1316 0.734 -0.839 1.075 + 432HOH HW1 1317 0.734 -0.757 1.018 + 432HOH HW2 1318 0.734 -0.920 1.018 + 433HOH OW 1319 -1.133 -0.620 0.934 + 433HOH HW1 1320 -1.051 -0.620 0.991 + 433HOH HW2 1321 -1.215 -0.620 0.991 + 434HOH OW 1322 0.906 1.088 -1.280 + 434HOH HW1 1323 0.988 1.088 -1.222 + 434HOH HW2 1324 0.906 1.170 -1.337 + 435HOH OW 1325 -1.021 0.517 1.087 + 435HOH HW1 1326 -0.939 0.517 1.145 + 435HOH HW2 1327 -1.021 0.435 1.030 + 436HOH OW 1328 0.594 0.558 -0.865 + 436HOH HW1 1329 0.513 0.558 -0.807 + 436HOH HW2 1330 0.594 0.640 -0.922 + 437HOH OW 1331 0.855 -0.615 0.971 + 437HOH HW1 1332 0.773 -0.615 1.029 + 437HOH HW2 1333 0.855 -0.697 0.913 + 438HOH OW 1334 -1.152 -0.867 -0.937 + 438HOH HW1 1335 -1.152 -0.785 -0.995 + 438HOH HW2 1336 -1.152 -0.949 -0.995 + 439HOH OW 1337 1.062 1.019 0.477 + 439HOH HW1 1338 1.144 1.019 0.535 + 439HOH HW2 1339 0.981 1.019 0.535 + 440HOH OW 1340 1.055 0.508 -1.123 + 440HOH HW1 1341 1.137 0.508 -1.065 + 440HOH HW2 1342 1.055 0.590 -1.181 + 441HOH OW 1343 1.159 0.187 0.563 + 441HOH HW1 1344 1.241 0.187 0.621 + 441HOH HW2 1345 1.159 0.105 0.506 + 442HOH OW 1346 0.411 -0.772 0.850 + 442HOH HW1 1347 0.330 -0.772 0.908 + 442HOH HW2 1348 0.411 -0.691 0.792 + 443HOH OW 1349 0.654 -0.704 0.717 + 443HOH HW1 1350 0.572 -0.704 0.775 + 443HOH HW2 1351 0.654 -0.786 0.659 + 444HOH OW 1352 0.411 -0.577 1.048 + 444HOH HW1 1353 0.411 -0.496 0.991 + 444HOH HW2 1354 0.411 -0.659 0.991 + 445HOH OW 1355 0.867 0.207 1.160 + 445HOH HW1 1356 0.949 0.207 1.218 + 445HOH HW2 1357 0.786 0.207 1.218 + 446HOH OW 1358 1.042 -0.890 -0.864 + 446HOH HW1 1359 1.124 -0.890 -0.806 + 446HOH HW2 1360 1.042 -0.808 -0.922 + 447HOH OW 1361 -1.141 0.259 1.079 + 447HOH HW1 1362 -1.059 0.259 1.137 + 447HOH HW2 1363 -1.141 0.177 1.022 + 448HOH OW 1364 0.649 -0.435 0.993 + 448HOH HW1 1365 0.567 -0.435 1.051 + 448HOH HW2 1366 0.649 -0.354 0.935 + 449HOH OW 1367 0.999 -0.057 0.055 + 449HOH HW1 1368 0.918 -0.057 0.113 + 449HOH HW2 1369 0.999 -0.138 -0.003 + 450HOH OW 1370 0.930 -0.647 0.706 + 450HOH HW1 1371 0.930 -0.565 0.648 + 450HOH HW2 1372 0.930 -0.728 0.648 + 451HOH OW 1373 -1.319 -0.595 1.127 + 451HOH HW1 1374 -1.237 -0.595 1.185 + 451HOH HW2 1375 -1.401 -0.595 1.185 + 452HOH OW 1376 0.731 -0.883 -0.311 + 452HOH HW1 1377 0.813 -0.883 -0.253 + 452HOH HW2 1378 0.731 -0.802 -0.368 + 453HOH OW 1379 -0.851 -0.175 -0.606 + 453HOH HW1 1380 -0.770 -0.175 -0.549 + 453HOH HW2 1381 -0.851 -0.257 -0.664 + 454HOH OW 1382 -0.757 -0.759 -0.051 + 454HOH HW1 1383 -0.838 -0.759 0.007 + 454HOH HW2 1384 -0.757 -0.677 -0.109 + 455HOH OW 1385 1.262 0.049 1.201 + 455HOH HW1 1386 1.180 0.049 1.258 + 455HOH HW2 1387 1.262 -0.033 1.143 + 456HOH OW 1388 -1.329 -0.391 0.007 + 456HOH HW1 1389 -1.329 -0.310 -0.050 + 456HOH HW2 1390 -1.329 -0.473 -0.050 + 457HOH OW 1391 0.841 0.053 0.259 + 457HOH HW1 1392 0.923 0.053 0.317 + 457HOH HW2 1393 0.760 0.053 0.317 + 458HOH OW 1394 -1.023 0.283 0.398 + 458HOH HW1 1395 -0.941 0.283 0.456 + 458HOH HW2 1396 -1.023 0.364 0.340 + 459HOH OW 1397 0.995 -0.976 0.737 + 459HOH HW1 1398 1.077 -0.976 0.794 + 459HOH HW2 1399 0.995 -1.058 0.679 + 460HOH OW 1400 0.026 -0.726 0.233 + 460HOH HW1 1401 -0.055 -0.726 0.291 + 460HOH HW2 1402 0.026 -0.644 0.175 + 461HOH OW 1403 -1.007 0.086 0.641 + 461HOH HW1 1404 -1.089 0.086 0.699 + 461HOH HW2 1405 -1.007 0.005 0.583 + 462HOH OW 1406 0.619 -0.429 0.642 + 462HOH HW1 1407 0.619 -0.347 0.585 + 462HOH HW2 1408 0.619 -0.510 0.585 + 463HOH OW 1409 0.343 -1.130 0.080 + 463HOH HW1 1410 0.425 -1.130 0.138 + 463HOH HW2 1411 0.261 -1.130 0.138 + 464HOH OW 1412 -0.781 -0.987 1.047 + 464HOH HW1 1413 -0.699 -0.987 1.104 + 464HOH HW2 1414 -0.781 -0.905 0.989 + 465HOH OW 1415 -1.303 0.089 0.927 + 465HOH HW1 1416 -1.221 0.089 0.985 + 465HOH HW2 1417 -1.303 0.008 0.869 + 466HOH OW 1418 -1.159 -0.097 0.778 + 466HOH HW1 1419 -1.241 -0.097 0.835 + 466HOH HW2 1420 -1.159 -0.015 0.720 + 467HOH OW 1421 -0.919 -0.513 -1.318 + 467HOH HW1 1422 -1.001 -0.513 -1.260 + 467HOH HW2 1423 -0.919 -0.595 -1.375 + 468HOH OW 1424 -0.987 -0.832 0.111 + 468HOH HW1 1425 -0.987 -0.751 0.053 + 468HOH HW2 1426 -0.987 -0.914 0.053 + 469HOH OW 1427 0.091 -0.497 0.678 + 469HOH HW1 1428 0.173 -0.497 0.735 + 469HOH HW2 1429 0.009 -0.497 0.735 + 470HOH OW 1430 0.626 0.357 0.817 + 470HOH HW1 1431 0.707 0.357 0.875 + 470HOH HW2 1432 0.626 0.439 0.760 + 471HOH OW 1433 -1.190 -0.902 0.383 + 471HOH HW1 1434 -1.108 -0.902 0.441 + 471HOH HW2 1435 -1.190 -0.984 0.325 + 472HOH OW 1436 -0.962 -1.035 -0.812 + 472HOH HW1 1437 -1.044 -1.035 -0.755 + 472HOH HW2 1438 -0.962 -0.954 -0.870 + 473HOH OW 1439 0.850 -0.281 0.813 + 473HOH HW1 1440 0.768 -0.281 0.871 + 473HOH HW2 1441 0.850 -0.363 0.756 + 474HOH OW 1442 0.515 1.177 -1.293 + 474HOH HW1 1443 0.515 1.259 -1.351 + 474HOH HW2 1444 0.515 1.095 -1.351 + 475HOH OW 1445 1.060 0.207 -0.011 + 475HOH HW1 1446 1.142 0.207 0.047 + 475HOH HW2 1447 0.979 0.207 0.047 + 476HOH OW 1448 0.864 0.192 -0.933 + 476HOH HW1 1449 0.946 0.192 -0.876 + 476HOH HW2 1450 0.864 0.274 -0.991 + 477HOH OW 1451 0.634 -1.303 0.358 + 477HOH HW1 1452 0.716 -1.303 0.415 + 477HOH HW2 1453 0.634 -1.385 0.300 + 478HOH OW 1454 0.597 0.983 -0.001 + 478HOH HW1 1455 0.515 0.983 0.057 + 478HOH HW2 1456 0.597 1.064 -0.059 + 479HOH OW 1457 0.269 -1.089 -0.662 + 479HOH HW1 1458 0.188 -1.089 -0.604 + 479HOH HW2 1459 0.269 -1.170 -0.720 + 480HOH OW 1460 0.445 -1.007 -0.465 + 480HOH HW1 1461 0.445 -0.925 -0.523 + 480HOH HW2 1462 0.445 -1.088 -0.523 + 481HOH OW 1463 0.676 1.041 -1.113 + 481HOH HW1 1464 0.758 1.041 -1.055 + 481HOH HW2 1465 0.595 1.041 -1.055 + 482HOH OW 1466 0.815 -1.349 0.561 + 482HOH HW1 1467 0.896 -1.349 0.619 + 482HOH HW2 1468 0.815 -1.268 0.503 + 483HOH OW 1469 0.757 -1.131 -0.875 + 483HOH HW1 1470 0.839 -1.131 -0.817 + 483HOH HW2 1471 0.757 -1.212 -0.933 + 484HOH OW 1472 0.844 -0.328 0.264 + 484HOH HW1 1473 0.762 -0.328 0.321 + 484HOH HW2 1474 0.844 -0.246 0.206 + 485HOH OW 1475 0.288 0.495 -0.021 + 485HOH HW1 1476 0.206 0.495 0.037 + 485HOH HW2 1477 0.288 0.414 -0.079 + 486HOH OW 1478 -1.212 1.217 0.050 + 486HOH HW1 1479 -1.212 1.299 -0.008 + 486HOH HW2 1480 -1.212 1.135 -0.008 + 487HOH OW 1481 -1.237 0.526 0.655 + 487HOH HW1 1482 -1.156 0.526 0.713 + 487HOH HW2 1483 -1.319 0.526 0.713 + 488HOH OW 1484 0.403 0.623 -0.660 + 488HOH HW1 1485 0.485 0.623 -0.603 + 488HOH HW2 1486 0.403 0.704 -0.718 + 489HOH OW 1487 0.634 1.021 -0.821 + 489HOH HW1 1488 0.716 1.021 -0.763 + 489HOH HW2 1489 0.634 0.939 -0.878 + 490HOH OW 1490 0.932 0.790 -0.044 + 490HOH HW1 1491 0.850 0.790 0.014 + 490HOH HW2 1492 0.932 0.872 -0.102 + 491HOH OW 1493 0.895 0.975 -0.722 + 491HOH HW1 1494 0.814 0.975 -0.664 + 491HOH HW2 1495 0.895 0.894 -0.780 + 492HOH OW 1496 -1.076 0.987 0.808 + 492HOH HW1 1497 -1.076 1.068 0.750 + 492HOH HW2 1498 -1.076 0.905 0.750 + 493HOH OW 1499 1.173 -0.997 -0.123 + 493HOH HW1 1500 1.255 -0.997 -0.065 + 493HOH HW2 1501 1.091 -0.997 -0.065 + 494HOH OW 1502 1.015 0.829 -1.025 + 494HOH HW1 1503 1.097 0.829 -0.967 + 494HOH HW2 1504 1.015 0.911 -1.083 + 495HOH OW 1505 1.123 0.269 -0.938 + 495HOH HW1 1506 1.205 0.269 -0.881 + 495HOH HW2 1507 1.123 0.187 -0.996 + 496HOH OW 1508 1.150 0.786 0.983 + 496HOH HW1 1509 1.068 0.786 1.040 + 496HOH HW2 1510 1.150 0.868 0.925 + 497HOH OW 1511 0.781 0.434 -0.458 + 497HOH HW1 1512 0.700 0.434 -0.401 + 497HOH HW2 1513 0.781 0.352 -0.516 + 498HOH OW 1514 0.786 0.784 -0.280 + 498HOH HW1 1515 0.786 0.866 -0.338 + 498HOH HW2 1516 0.786 0.702 -0.338 + 499HOH OW 1517 0.929 0.603 0.386 + 499HOH HW1 1518 1.010 0.603 0.444 + 499HOH HW2 1519 0.847 0.603 0.444 + 500HOH OW 1520 0.588 0.820 -0.607 + 500HOH HW1 1521 0.669 0.820 -0.549 + 500HOH HW2 1522 0.588 0.901 -0.665 + 501HOH OW 1523 1.001 0.456 -0.289 + 501HOH HW1 1524 1.083 0.456 -0.231 + 501HOH HW2 1525 1.001 0.374 -0.347 + 502HOH OW 1526 0.347 0.931 0.409 + 502HOH HW1 1527 0.265 0.931 0.467 + 502HOH HW2 1528 0.347 1.013 0.351 + 503HOH OW 1529 0.455 -0.232 0.449 + 503HOH HW1 1530 0.373 -0.232 0.507 + 503HOH HW2 1531 0.455 -0.313 0.391 + 504HOH OW 1532 -0.177 -0.920 0.168 + 504HOH HW1 1533 -0.177 -0.838 0.110 + 504HOH HW2 1534 -0.177 -1.002 0.110 + 505HOH OW 1535 -1.237 0.263 0.721 + 505HOH HW1 1536 -1.155 0.263 0.779 + 505HOH HW2 1537 -1.319 0.263 0.779 + 506HOH OW 1538 -0.667 1.029 0.355 + 506HOH HW1 1539 -0.585 1.029 0.413 + 506HOH HW2 1540 -0.667 1.110 0.298 + 507HOH OW 1541 -0.879 0.730 0.651 + 507HOH HW1 1542 -0.797 0.730 0.709 + 507HOH HW2 1543 -0.879 0.648 0.594 + 508HOH OW 1544 1.130 1.235 -0.165 + 508HOH HW1 1545 1.049 1.235 -0.107 + 508HOH HW2 1546 1.130 1.317 -0.222 + 509HOH OW 1547 0.206 1.003 -1.058 + 509HOH HW1 1548 0.124 1.003 -1.000 + 509HOH HW2 1549 0.206 0.921 -1.116 + 510HOH OW 1550 1.148 1.187 -1.190 + 510HOH HW1 1551 1.148 1.269 -1.247 + 510HOH HW2 1552 1.148 1.105 -1.247 + 511HOH OW 1553 0.243 -0.913 0.217 + 511HOH HW1 1554 0.325 -0.913 0.275 + 511HOH HW2 1555 0.161 -0.913 0.275 + 512HOH OW 1556 -1.328 1.232 -0.960 + 512HOH HW1 1557 -1.246 1.232 -0.902 + 512HOH HW2 1558 -1.328 1.314 -1.018 + 513HOH OW 1559 0.825 0.689 -0.544 + 513HOH HW1 1560 0.906 0.689 -0.486 + 513HOH HW2 1561 0.825 0.608 -0.601 + 514HOH OW 1562 0.655 1.188 -0.175 + 514HOH HW1 1563 0.574 1.188 -0.117 + 514HOH HW2 1564 0.655 1.270 -0.233 + 515HOH OW 1565 0.514 0.745 -0.247 + 515HOH HW1 1566 0.432 0.745 -0.190 + 515HOH HW2 1567 0.514 0.663 -0.305 + 516HOH OW 1568 -1.308 1.132 0.573 + 516HOH HW1 1569 -1.308 1.213 0.515 + 516HOH HW2 1570 -1.308 1.050 0.515 + 517HOH OW 1571 -1.297 -1.332 -0.698 + 517HOH HW1 1572 -1.216 -1.332 -0.640 + 517HOH HW2 1573 -1.379 -1.332 -0.640 + 518HOH OW 1574 0.410 -1.202 -1.162 + 518HOH HW1 1575 0.491 -1.202 -1.104 + 518HOH HW2 1576 0.410 -1.120 -1.220 + 519HOH OW 1577 0.752 0.782 -1.059 + 519HOH HW1 1578 0.834 0.782 -1.002 + 519HOH HW2 1579 0.752 0.700 -1.117 + 520HOH OW 1580 1.101 0.453 0.173 + 520HOH HW1 1581 1.020 0.453 0.230 + 520HOH HW2 1582 1.101 0.534 0.115 + 521HOH OW 1583 1.233 0.997 -0.329 + 521HOH HW1 1584 1.151 0.997 -0.271 + 521HOH HW2 1585 1.233 0.916 -0.387 + 522HOH OW 1586 -1.251 0.939 -0.574 + 522HOH HW1 1587 -1.251 1.021 -0.632 + 522HOH HW2 1588 -1.251 0.858 -0.632 + 523HOH OW 1589 0.431 0.731 -1.010 + 523HOH HW1 1590 0.512 0.731 -0.952 + 523HOH HW2 1591 0.349 0.731 -0.952 + 524HOH OW 1592 0.568 0.892 0.563 + 524HOH HW1 1593 0.650 0.892 0.621 + 524HOH HW2 1594 0.568 0.973 0.506 + 525HOH OW 1595 0.932 0.948 1.082 + 525HOH HW1 1596 1.014 0.948 1.139 + 525HOH HW2 1597 0.932 0.867 1.024 + 526HOH OW 1598 -1.077 1.226 0.958 + 526HOH HW1 1599 -1.158 1.226 1.016 + 526HOH HW2 1600 -1.077 1.308 0.900 + 527HOH OW 1601 0.711 0.720 1.047 + 527HOH HW1 1602 0.629 0.720 1.104 + 527HOH HW2 1603 0.711 0.638 0.989 + 528HOH OW 1604 -0.994 -1.078 -1.185 + 528HOH HW1 1605 -0.994 -0.996 -1.242 + 528HOH HW2 1606 -0.994 -1.159 -1.242 + 529HOH OW 1607 0.610 0.956 1.148 + 529HOH HW1 1608 0.692 0.956 1.206 + 529HOH HW2 1609 0.529 0.956 1.206 + 530HOH OW 1610 0.729 -0.974 0.674 + 530HOH HW1 1611 0.810 -0.974 0.731 + 530HOH HW2 1612 0.729 -0.893 0.616 + 531HOH OW 1613 0.973 1.132 0.853 + 531HOH HW1 1614 1.054 1.132 0.910 + 531HOH HW2 1615 0.973 1.050 0.795 + 532HOH OW 1616 0.772 0.976 0.730 + 532HOH HW1 1617 0.690 0.976 0.787 + 532HOH HW2 1618 0.772 1.058 0.672 + 533HOH OW 1619 1.016 -0.394 0.629 + 533HOH HW1 1620 0.934 -0.394 0.687 + 533HOH HW2 1621 1.016 -0.475 0.571 + 534HOH OW 1622 -1.078 0.739 -1.349 + 534HOH HW1 1623 -1.078 0.821 -1.406 + 534HOH HW2 1624 -1.078 0.658 -1.406 + 535HOH OW 1625 1.063 -1.164 0.941 + 535HOH HW1 1626 1.145 -1.164 0.998 + 535HOH HW2 1627 0.982 -1.164 0.998 + 536HOH OW 1628 0.997 0.706 -0.756 + 536HOH HW1 1629 1.079 0.706 -0.699 + 536HOH HW2 1630 0.997 0.788 -0.814 + 537HOH OW 1631 0.753 0.819 0.359 + 537HOH HW1 1632 0.835 0.819 0.417 + 537HOH HW2 1633 0.753 0.738 0.302 + 538HOH OW 1634 -0.853 0.672 0.930 + 538HOH HW1 1635 -0.935 0.672 0.988 + 538HOH HW2 1636 -0.853 0.754 0.872 + 539HOH OW 1637 0.893 -1.252 -1.367 + 539HOH HW1 1638 0.811 -1.252 -1.310 + 539HOH HW2 1639 0.893 -1.333 -1.425 + 540HOH OW 1640 -1.193 -1.064 0.606 + 540HOH HW1 1641 -1.193 -0.982 0.548 + 540HOH HW2 1642 -1.193 -1.146 0.548 + 541HOH OW 1643 0.641 1.119 0.930 + 541HOH HW1 1644 0.723 1.119 0.988 + 541HOH HW2 1645 0.559 1.119 0.988 + 542HOH OW 1646 -1.279 -0.738 -1.248 + 542HOH HW1 1647 -1.197 -0.738 -1.191 + 542HOH HW2 1648 -1.279 -0.656 -1.306 + 543HOH OW 1649 -0.930 1.197 1.188 + 543HOH HW1 1650 -0.848 1.197 1.245 + 543HOH HW2 1651 -0.930 1.115 1.130 + 2.60630 2.60630 2.60630 diff --git a/openpathsampling/tests/test_data/gromacs_engine/md.mdp b/openpathsampling/tests/test_data/gromacs_engine/md.mdp new file mode 100644 index 000000000..d56ed7329 --- /dev/null +++ b/openpathsampling/tests/test_data/gromacs_engine/md.mdp @@ -0,0 +1,34 @@ +title = test +cpp = /lib/cpp +include = -I../top +define = +integrator = md +dt = 0.002 +nsteps = 10000 +nstxout = 100 +nstvout = 100 +nstlog = 100 +nstenergy = 100 +nstxout-compressed = 100 +compressed-x-grps = Protein +energygrps = Protein SOL +nstlist = 10 +ns-type = grid +cutoff-scheme = Verlet +rlist = 1.1 +coulombtype = PME +rcoulomb = 1.1 +rvdw = 1.1 +tcoupl = Berendsen +tc-grps = Protein SOL +tau-t = 0.1 0.1 +ref-t = 300 300 +Pcoupl = Berendsen +tau-p = 1.0 +compressibility = 4.5e-5 +ref-p = 1.0 +gen-vel = no +gen-temp = 300 +gen-seed = 173529 +constraints = all-bonds + diff --git a/openpathsampling/tests/test_data/gromacs_engine/project_trr/0000000.trr b/openpathsampling/tests/test_data/gromacs_engine/project_trr/0000000.trr new file mode 100644 index 0000000000000000000000000000000000000000..4a36fa3d3d5683aef9aaf08b4d04398fe3c799e0 GIT binary patch literal 158976 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

E@avV@H=!ZanJQb#!wl^8|P4|*cFIx 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 z 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

J$G_*&X)~ndwr(uJayzK?Qb#NM(L6fn z9PVsCiOn{Tp#D)am3}!)jT&Rfp&z}Z8*J)vlwV&u^H>*KYwL?EZ-hX~2y<{)(~Zmb ztFre&Z-qVU-;m3LM$_m76IMBWG`F!g;lmV8@WenbIwpDm>68y83T|SKLPLkld)dLY z&KknVkp3vN{)S7R!}$F3NV4oElKj_yB)hjciM>E=QoYd=w9QN&sEX2C~I@s)0g?T-)FrYRbzbk~Z(e@3}4V6VC`Li?kNY{e6!spy> zxFgf>G3HTe5@F`tc-UL@nRP4OAli~{>TNYrbXZgJT2+o|X<|>C|SwE8$^f~tlMyI6U(7k2CW6ct2qJ9I)llN@GrgfDG7ZRj# z)f9IpMd76W^I%27U-t9u_sWX-zwqIOFKGGsFbO2S(rSZQLc}L~roC^ZP`b?-=QV4A zv*~Y*9yEwej%hFVM10i#^Es%`QJOAe$~E!4w-$>BY2rtlFXh zWTxcsiE;th^W-hpSwl#v!zN6gu12oB*TZSoOjz&jZFG5{AI(1D&%IqTc;pFFsy=5a z^%&Ab?w$)p$7}bXZ`~|Xl$(t~_gqQDSVQPrz5!E0ra-u2JiDi|3gV^iY=uz^T>GR7 zHuNKYn5>Pb4a97%mmbmoX994~n3a4N?;Tc#@U&-<)RlwIf~t$eUv%}ma}1x5=r=k@k~X@6`tHa$W>1G zQZ?oNP^A5j_wrgqE;|I{_`%g=(ePpH&BB@7CM%v@KJXaVzpcTYw{#_@b(}qzJ%g~n z-MF$Q1N8e%;KOEbqSO7VXvR$gwrjt;VEMfsKIDs?zTRQN8>^M<`HmqZ_DVOGsTfXG z)={eUJ_?sid&t8|gVAeB9E-S`O-3v}gX=sBNGlFaEyKmPHj($g&j{BpiF<~g5A2^o8NS@+ih&;MaEg*66o@XwsS7rd^Q&gS zk;~DLsrn4g%u~huutaJv_XYReOQl*W1uW&74H-RjGSSraV6u;1Q8NY#En9{8(= z{oU<`3XyBwu{uZ-X2?Td=PHNSm1dRu{fI(4ZW_nki8+F z!T!`NF2}zJol}iq{pApv@v9h?HB2QFoW#D@c`I~qSjiU{hI9EB>b&nff4r#I&Q+X# zVnl&0jx4alG0tmQ#C5T6dpQ6VZ|uQY7t-+hF9R@qW`^UI>7&?*Wh>@RVmly^E9$n< z@E(zYcqyOG-;+u2yqqDjGqfdtuV{(y;|8-nD{_8E`0&*aL?652S8n%u0*x%=?27vg zjQkKsUfui!`{&Mw9P&k4-_uPkt~@}WI8Qt+{!L1n%?=q2MEP;UnbEilaJygwX1<*U z;W;|Ix8y$S3NfMDE5}Oz;w#~2brSSbQ38_JE=0|9g9E{)RG907>$R@Izlq;q@bWTT za5Ro-y*LV5c@5;jj$$m_J4;A;5kqaF1TJ^y3OO~)3Fm)WAuv0*FlSODLiUQ6dxqZh}pRgau$n;RC6-Rh*6O; ztps4cyHL|A7*0*=1B0x3L(d~AX88JvsQp}$bRZf}m*2zu3ts0zx zPMANb3AbtHG1u@-5)*AbY9YG_=hbwRnR?06fT$GSYrHyI+&OkRJYEKpeuE0be;pH`50B1@#-)+`v2 z(8D?{;%MHVSM;s;8>>3A7PRXe$c2`rLh6dynAm?Ergv*%NcS4yj!qlg7=0VlCw&)A z=cmKA>Y;ey&t0g!e3WD!4+Xc!e{pVE6s${@!p%Xt!U|t1OnSj^U;P36I74JT+15eL zGFSMx#F3;0#9_u*b75Fd64_fL_U^jQQ;U#U;CiJJzS}LtiCI0^e*6MA?5j++JUvW$ zMRB&KB?inQy{Jz1F}(GB6AZIfhxRldEKiAJ#x-xjWPJi^o?it=L)K8|#n-r2_ZL35 z%pO{r-h-<1IFOs*A!)5jB0Waqsh9tG(5$VHcAPzlyjKf3Xe;_K@`jM>^b$+#w-qfH zwDSH=dhlX#AFRKx%)PgcfrDPXQS-GajQ?&zwDeMhOAl64nbAQ!zkeN8&Kb{Vo=b$Q zl8@Nb{GOc(S}w>ReMbtCW4P9dTKwuAPF-L82e07*zPQ^LZeRX`v)-(eWPkJ*zAcR5 z#!E-T?k~OY)4UPy) z>_Nr>>ZDx9OAehTP45ozjXOG+igN+#y9p%H?1sp!7guWp4Ar;g)k#k+LjkTQNab`>mH^@g=aJM*~8TsSq_ z6J-CCqCx+D_~hnS(v?L0{6(#9G2GWhp}J1KhmoLqG8 z#%CR8rE&ZF0zA+YG&Yxr_uXwYGHfHR)80+Hl!Gg5o+68Wnv&$5OEvx@FhWMpQ$w4m1jsIqD2`_dkw_T`;eHhvx*mRv4* zm9`c7A3qAR*O$Yvgj{ywZ73gQL&?^t4%YRv9^?B|kN{mj_G?83>dd*vf->}I+^#nE zsjZv$vc3(TqRTP7T!mYk2C>-YhoqzXD3huW#hIOBq5gLfHx_evq5c;jZqyGhBWof( zd8>>Jk?v>b&xkImdADiixVyx|Gn9`Wl_R~n&J}b09!O*pPNK=89(LSY8NS*_vFhIj zkY;+A)F?Qz2t|hb&$W^9Ue|@TU&tQa@xji;E8wtnBwpR=M6df4VRyF{d%ox>vwnJ- zT%Z1jNZKCKee#W1xI_Z+s|zqa!kz@W>f!XH1Cr>T_iRX{70$SMkcPP>!20rH)~&Fa zu3oIf7JJ%KeWM!~bz?7!__G5Y^VNBsOB76=W5h?8)kD_EIp|?}i_i*V95TR&-QG74 ziWjej8>?jKnv?zEVM!UZ`@H8G3ynZodm)?swt$@4nIv@f`mgeVZ7Z%ABF|0*{Gg@> zhvP@twS0C^DJX?$vnan~sG+=;hCQFf_tX=3^Q{qm4Q5lhP2sHCsh<59{*2X>lnE>L z_fW8VK{AbesGQpqjIy84op;Be`m@iC-b~WD=MEEizkP7~|$4GoeNC z6Rf?Qf%+@-E52`TXIBk1(Z)R%W@~IcX#Dy<#WbKQB%w)KjeJ6Oj!Ei!MX3+F4=U zAx#*4{1c8irGN%33?@g~lCPgX2!4D2l8nx;u9X)m z)7P?(;qsM7)}-*k8LJ_0hBvpqmdWS$zYJYPzJ!l+l4`W{!sr9HaenG!{1oQIwk=oz zNv}?m@;+O^IrNOk8k1$uo-AZ3)jjAiWiL5eDE2BBALUwNZ$@QAF4Z|V3YxxdLyHYZ zSS(q`(zV=0Uc(~N^Y$~|Q|g7AoU>`lwp_Tk?IEe3Ud{%0TjRpb*SOQw^SpnfFO9nY zj&&-$#o70wz>+sG(>n**e6Jq1dgpwRVRw%!&nbkhOA@%ORwWrwrb$g-E@B3X*(7ew zV;Dyc;M@&*Fu&ghX--2tm;0*4O;=Cj9wM1GPp(H&rZp9IC*Q&$?*^eTR^&WZ6_hr$(U?Dnps`=Aw5Ucr z^Pe&&FJ`wh|;F1*c@(=u56yOHGFs4hO1ccW>9 zIW@le(_$x+e3>h>g%soH8HzCSoe3m)1(GTD zk4fewdqRhY;1`QNr2JPXRksk?ba^=h+1C-%S{>;>J(0lB9sWfNR9Ja+fMM_^C#gyenl~q*+a5>Z%He}C%aSOJPh(%58q3dhOg^){VZ5)nG zE9Ha~|ED7B>ma<*-bwX3E%_E_SL{7+Gf#>pT_=LAUcro?aOrq4xsM z{;J0``y%#1s3OxZXY%pUN_6bmepKtyO~|Mz!Pi#(d9RYUpnm8dPVn4=1B7Hay3UV8 z5Cfe1-5<)bu7c5ywdl3^K4`~YB(UrtI(98Z|5xGE`is1{XUe7?2RgX_zEya<&{H^A zwFH$~T+wA?9;+K?j@j`o?9+Tt*rn)(J3v)@9^Js|7QA6w+!NS=hDO*k#EWm)_>h-P z3rG29xlj-y{?C0lKziO=fEzVO%`Q2S<+zcKDOJN4rysN61Mz&()@(TIHlBDi1)#aw zWE{0}AdfUT4r7Lk{L3_Va#HM@&+TV|>)Nf^&c+UQvF5&TPoY6DSZaVD*IZ%8uDM{% zvcAk=dZje_aVHwB@nc6GsS)R@^_UvSA$U_JruW<w{7I>p+ z0|n#&ga?b0R~C?iY}_CUuQ)=o@lyPUi#@)owP~xKF{jfj9;Ix5?s@b zSeVNtayCCrxHYX99W4=^j<~Yn=I=4tMhg;#dy?$?Hl*gPDqAaK1Em2meDD!_6z+_K z<1N{6VPqzhd>$n|j_tUTxe4q14$%!49-#HyDvUWShqoq`qyNbs2u_d^%l#A3v{ove z?`?oC`RC~JF?ZOn09UwEbsN9D7G3CP2Ua$ooP<+j?-47<7%ogbOg`lV<7d@E&{Iyt zhogT8d%aCCXwEv8ym%iw*C@echmwH#nf_6%CoQ9jd-gM%x*C&@pu^Q=e1` z*L=5QRaLe~snwYf))ihSMX( zn=m(g%Iqz3Ma7$LVsNu!flpGaC@pD-u%~vDpyktERy?nVzl#Mi>y$~jCiRO(dqj#x z?>|gQayg=BN81H!jWmSgmoI|D5myX|>LT+x!-9bss|%Lgj4!wn;>>*w*P?80y3n*B zLs(-R%3K!A#U+zG#F%rQTGAiU^wf=X{PwDXV=dF5X>v+a{;c+tEMF-0*#cc-j^Rdc#Uk7K*J zXMtw^8;N$&TRADw`Ql(Ew^xf@m~@cV#@!UTjv697(h(=fo)ZiwA4QSEia4yFR4Sb9 z-s*IJk(qF4$}4uNv4=hQEGC?KUsqUqR|0JPZrXcchG1lTXu$-xRMD!YG>rOQBy>sM z%`$9)@*|S7MWa7CP{`F^SXf@mr1nyQb83fEpoR~N6j}=BC#C0qpF58%8U+P%W#J;< z*a{{(JQb6R@=5!{TakTz7jxVjD*Wy_5iNET@%fJoZdA4xsEv;<7_{_n!Qd_HS$*Jl z(XpycY@ej3(}LD|k-ef4*PaqeJd;>kbc8T`+7KunU&Un0)y#l!jYm-Hr&Dj;aB|x+pV9IiL5@U%@M~d(MD33J%@~zW+S++Apf(Nn$WOb zCSP}5JHBN-5;fU96h;>0h*quX%KdOhOlY~<4bG04BERjw1wAeU?8 zQjR*_7hCooDTPZ!3dM7U-w$PphVQfy6*tC_1V0Z2SLfsN`VBZ81G+W*89RSt3&f9( z5FNiBFWl(aN+-GZ!VQ;6B9VDVfg|^H{o(phxZ$+}Gfe4W1GagQq)QG&={*3fa2JL-{B^$bhXGDPKq5F{Jl5;^7!6x~lfDcp2pi10+? z5s~Fpq3BKSN;(%mP;@WY6F$4&h;(la6Vll{k?af=;hj?xSVO%5MtOQedtwBeeflqa z6y!zOs}GC1muZU@L`942FAZi1OZrJk)3(5T=Os~6;BnF2{r$LG@l{lCX9Y&jZelI{ zuS7}#PYR@tM+)NoPtmk&Ugux1W81{dXk5Ix$TGBqd2G2a{1qk0yZS$`kAzR6gTwwS zpu0W7;s$F`{<24chm{6U(Vvum^$uqQCw0O2n>K{&_mfzM3E9nBD|&r4Ql$B&1e=7h z!t?ECg%9ulVZYw%iUMmVk=*S4`2o#xcztqWe#*c-B426$Je6#&dAod+pBcMEzBd|a zn8sp~$dVH#cW-AKtvW;jt#ZO9m&u|dGB(`rFNM@^pGESc_5ukt#e%>cmtcRZOmOb; zN$92-LiZ2YKestZ;%vf+ZHq*`88rpkISp`*N{4J^7_$=pOODo?+1Y?L(pu((>bS@F z@O-w@C;l0&Cp*#fxySkL`*2Z~&Jq$Ef1ZvPG6HoD#=5#IZ|gspb)!2a_~MYqFJg?E#}^CR@+g!4zu%x?})<=tp|SQT~%^T%2%`4V=Z(PHF|G$UT z|GoMDUT1iUiT&^SzlY2Y{$uk0-Z9ms1OE3)1LxTN@Ady4|9`)e&d7m+#{E`o!08Io zj2R@@F>x64U9y$5rTy9R;Ro5c_k0)m$O=KGe4pT0!B#STw^WcH+0V>Mn#i&b9zkmc&FWcPQZpvCnRnfhHL%QyLgs<<+N;#VQriP;Hq6MF>NCUJtnt9LSu^@@V4 zbdXHP37DFvHxulMBa>^R1?@{03iexmA(QMdc35?tQ|n%P&gW4Uq(Av82rDchJ9QD+ zWZz)pRriqHL0Pi8dX4P3&xYO1&txt?mMms;lU@8svQ#w8wLe!#wl7DKZl?uV+18Qm z;_alh_Nrjk;$Xo7&b`!O2L)>{O&|-g)ucP+1L|T-1qo4)oi1MrMqNMHNQVxm9PYdO z{#%V;g@TKqp}qrpkvrK9S0QS)&w|xcV|Mpl;Tgd&CT6Eo#7` zaVA*j&5$O)0?T?taIV;ln+-!S<605^oQ{I_g9mUPb{s#Z_rc=RN-XG;!*|a{$ld2^ z=DmM7ABcOcZz(64OXKiuhZ1_~VoBynEJ>`Ez>iyJN&dwxrqmqIV)@pfTjn6agfont zN{M8%-|uElA$crd{x25PI}fRS%LRAlaKGY_Gm+S-&y(Hy@0@q28NX_;d znjWR2^ZEg17qo#?B#iOdq+d`~A3^e4KcLHX8#^KwNs9Q7GcEYG-|0d&Y0n1Ev_6Xq z|NNQmqCsSSZy@44Ad>=HNbOV>Ob%{D?mm9}9*#e9=SH{D<6g+O5gN1pfcz8Ak zPaWQ2?3F9X{>pnpWhPAj&mr81^d`HW3TF023NibCHL`qq5BRddJxF; zZI*Dq^J}EMMuX|acj7`{FR6|VWTPtOaI;5)G~8~J%JmL>Q9O$mfu*F`_!}MZ+)G)+ zeMI!6@N2{d&Q17@5W99#{<4-81Y6n?BrUat21vS- z_{t2D9`#QU#p9fq>jM&-)K9jOBk;%K5UH)?-h0 za6w$>H;kC6Nm5GV1x;nf(DA6i@48%kJn1M{DcFaWBg@cs@w!uKX%^2hTkwA7B*Ett z8ML{NA&V@1G-jWJ!n~1Wz8k2?*MXu}7n$DPg_hg$?6YwkxCsM-$8ExgpXIoJOqTPL zBT;+k56ZTu!C&bEMAl6V5|D}ClASp_d9vp;*$I`<%1sw^k- zmEEYWJIWnr`Ao8T11Uw{A=MfDePuVPdW4Yt%MdaemO%2yPLt}I5H?fqCuHMZD@!lYEZy&}MmnSYQS`5)f< z9w+5SOCDoB;rERkQmPY>Y;g@ql&F#1^b4f))EqwwRY@zzi+#F0g6*rXCcWy{tZ{A` zyZnIjxPRY*?8s_%>TC(gXC5Qnxb39<44kXEn6zvcb5_wqQi=LYTAGoh^`x6rq>m!x zlPj9fx|7m}(Ks|*4h@GUlH9@JIGNCgmYQNR<6irf*)jP0a0*xJEyU9eFY&Fllq_c_ z<6Uhr{x*vsGBqOIAHMA9we`5aE`~H@hq43lrYH$sLI#ccY~|{2c-oVLKjW6M&r9Fp zP27AEyE~Wt+To2C^5@Vs^d@_!$C>7{bnqojigZ*xNTzTy+WQkpvzO=l=MvDJT1$p( z4;meJq0aCrDeIrWyD)jYb5S4-#hLgp^ndfpdXnGqfW6I6A^o0pWD+IKlB@m5z+H+= z0xMX1sUOcFu8`UCe6pGJ6=jnvQC>QmY?S#7Ghrp}OZ{~kc2x`yPKu*qQ#^bwzK7D4 zCph170^Z!~R>h_V(Rpiev@?+Pxo9Bvp*82JpCB!hPtcRSfzppEWZ?J{dVJpdO637* z8vTRrv74OHokE(f&+)Q4j;x)+N#~UVYIhD63|?D6>h7FX^iqt}FT0bTaSf8(Gf68T zjI^eQBc<;yY1C_zafSqLWi4j&HqPVx))12ITgGJEKH#sxPEtSsTlmhD$EiY+(6?e2 zrLr;h+GJAM`k39Hw;zMo4dv{=ku1#41`cy?l3eCn=!~8Ri?%IJJ9hNK%0~m{X8Q&C z8qcBZ_!~;|ztX^iE?DMXOGasiBZKt=ALHS@(n3aW9Nw3IAFO9@^uRwmWK5|Po zb5E(`oR9GUg^q8?R%$06KCVJ)nJ-!FGbZH?^KzPZxWfFb7inY?OU(uk-e)pt55E8K#X*Q=RFh|~YLtauml zi}_A3$I)}k(4iO3rd1o^WYz;z=*qL~asC3GrJT`|e3VuAZx(!4*^L)(JlLE6MshxT zAE}p}g)m|TDV6*nof-!eP2%TEjtgmq+(2e$Bgs7};*9c{r1ClzKmVO4i$r76IvR;dpMUQihh9FZBfkvNph9|Lq5CW)%rvd zlg`In)3+>r&|FfmZp8fWhgr6TA*nHS%&*wXqJPvf_D5Y8^cKU zRV-&c@5igRUrA}58{X>Ll7wA4{tPI=$6K8waq2sX$*SR<1b?08im$<`nBAL9@^ji) zd1p43dOs)mnojmhy$v2Et)#RyirsG2C7Bt^nMyzRu;G7Su0@?KaSg?2gie9@EG2QuB}3D2ZwICFd} zS*^6@vj{!J>$sEYjvd%Aqo1sTjM45j4X#~=WU5_*&Xe(&y}O32UR*$1jx8K~?Vx1* zm*o%qN8*d}q3+$rS`($vpYFpx>CItjpBnKuxdj&nonb+HSCR4_Lj3r1?6l@NQW$Xw zQSSLH&6sH{y$XYI!jQDJH!Tc>7@v=~R1@@vSyI=eKmkXTIj?=f5H` znK>v(d?hHglq1Ul7ZJ2&EuOEHCQCyRf(i(aY+}iDRRd1#bHmG`UC6Bt$I2a?B{b-Ys$=^TyhDZcQ2Wel;P(U5*RmE_Al;^+M-P(4~e3XN4H-t>ok;Myyhho|t{ z_$0no2eGR)gHWHmA750m*rqH?yt}mn-S6dD?#kt;PQS-@tIm+AkpoJTAn3#vGM(6i z`}OD9x{1F?|N416o<0>nA8B}s3-4YOSrIN$UkDNRtr zxaIc9NR-d1_~V4c56Ni0xi|NXwh$RoQD~t&vYw-kYu2k!`+5q=w6(MMr`ky6#y^tr z`2|Tu&VHp4r1T|=Rfl~g)ph(Ve40v%TU?Q3u$hdT{Yh@}P^4BBkfqK)lC|ONmMc+$ zSCexANjsRI{>iNK$}wSeDMlLZWdjFXfS`FfRQUd!Ld8visM(A(v^q%Y_A)_H&{$IM zapm!$oCYraKpJ7?OnEG4Pt*|l_j)qVe6A-~{ez$B)q?W|;NH=4=-ICX%{@2Bc)Bym z{z=B5br<*I7xxt;wqk`~ z#XrJ?O`asyzKZO82&;t6C^Y?q2g%#mP_KP_FO;+3&nGb57bM6*Jj+)i*_vGoz$9&7D%!M%fQrbV+)TNdKO;#c|O?-6@sX4fc0H2b%T|LYs3UJ8Cfwx9>M`zG^vJ?|ly0-|wP(-WV34XoR%Ge5)j1gq%Qo z(kk3W;-*7!`*0Cyzf(i6#zf=?A0-_xSwYlPAt^6CMH&*-dCNEIk;?Zv()^qw*vfZg z6{c&DQu%Fx^^<2za@2MhEj=g@7JCR9vU>5KYc~yit0u6wJ?A zvhh=&vNsA>Fsf-g+dpj|tADizx;{G0Z0&OV9OsLtJCe{N^v5rmK)m+ZgFl%{Bwo)w zcHE87{dFO0;;cYz`7VUjy@Ryu1k!mIgUFsK?DhNIq~CoHA^HKBJ;j&ZXGs#lfk4p-GDUrtDr+8l@x}`ljhMl zRw?zGw8vzi#Pl3%bU93#OA3&`dNJ!PO(*^6D=4eEg0?X_&~TqkT4Q-$@nsOywV#oJ zssz4$PlTfNUsC(YNPG1Se32VTT3I8=P%#nh0Uo4jokrRhThKQ-l(ga#NG@v^-=Eu0 z))T(*SQrhj%+-0~55-8?JO{fcdy~1;Ka!f1Cs<@+h^iGbBoqHhke)pirQ(t#XVfo9 zE0@$m+%|QuOhJsf8CA-@eE`gf2iwh8RBG%wt7O zUifYhfhG-A$PS!=ju2OT9P|g_*h}&OBT3#W8|PAfk!*DUNsau15S?u#z3VXVz3^PV zt(MG;w~*|N7ScC=O4dskkd)Iu(i+FFJxN8*5tLx}4(f2u`Djef)??>voXBACMvN7+ zWYv1EWV&Y@Cf+M&9^YK>G;}k>vPZK;_gYc9lGw}Pa*VG@qT=sID01HevkXI$nd^?7 z-w%;#)ew?Bejm$*W$;>>Gbo-1;>fB+tfA!_sfd-c^wuay$9*M*{534AV;O5L;Vkde zMeM{H8xo(oo0PqeA*EIc|5}cb(%@uV8<>gTr7uWhK_SwQO{IYq}yJ7f_W|iX~eAVQira9G@p(Nx2*BRkSd}v=<(UA((CR0_38}f+q|k8~Zqf zZVqH~hOZ^7xu0>?VkO(QcDYmT4l#sywqRiF9kR63!XyJr2%_!C=FE0DRc?myhoxkp zKOaLcPT;J^G%}04gUSd~98vp8CU5=lJV6J?56&hlg+VCZwSi>vvk|kNYbzdWkfd1} zu8vB;CVyX&dl-#~ZP&5)5cijE9>ui7=3|Nh~g+fE1^k9Jk*&fTe7=C;45k$f|D>E5G=KlpMzh+{_i3ufuA* z<~*C~0rKp`kX|&kIHM-w1iLcmHeRSd!uvx@$$aEm8X)C?ElPU4r(8jngWItsi?bD9 zggUi*iD94hW71fA3XL&tEV1S)ss7rA+NLG!*-brC=De0Bw@WP8ub8xZZj$^pj0E+WPyjBIa?!KaSphh##|# zu!d~zu{B%~y~{(Ordz<)-3x)zxcNx%ozBKi4~8t)!(9C8!~%1r+2^3|NLE`+*1h*x zc|aM&Vq(d>zn`Uay@m2Hcc){A#n|1I`yh3~6;4)uq$_)ZES9umW?3}pNQRM#|8)!t zxk&1v{$wfl55*B?WVdf6&b*1l6EQ=<{24wtYp@DJgZnhVybTxqZs4orVg%Yf$BpY& zJmwF?{-`Hnvpo*6vb!i; z{|R61IqM=|DSLn43%wmGBtE5{b>CTtuY0XX!D9mZ9kBv^&9l%pWH?sodZO!}Gd=~p z=l-Yl=s8=356V-py*m_DQGsL@CXE-?_ff4^NH)>@z8iiUk1IcOcK2IU?3f0=Y5MN10;l>#tShCo|BiL&p`&^w$Dj?)E<1DHXG-@mEvb>KYF!|5TYk5 zXxO`x40Nk-^JswJ>U2*s+?<2h(F#mL$j=;&d$>7fF5U<5cxqC`tkmW3aVq}~q0ZD_ zH=yS7W-{@aEr{L~z`R4H+1o&4_Sdk2U3?&9g)VuJsqbbJNuG%cCbBmtpYwCz1M=@} z#LgXi$VhE43Y+|}W}*aHtEAy!=PB&aD#eqpS;*g#gHa=mt9tNDCXWFN-k zD`&B4p$|!?9AJK(nfUcplN1z|v8YqAB(|}Q*S4zcSoAi0@%~9xzT?PRRKXg1#**!Z zo^g}i#Mslf-^kqBnJhP6WTLJ1q+J(_FGjBr*mjFFcwXOPu?#0tOG#t&P4wRX2ETE$ zNRFnFOx!dq`=Lbg#_%(S>N5w7JlV**4@iw`#X~9{H;cH+H$gq7qKCKuj4^}ER%V<7x|<0 z5F#JLjQZC@_-s1%Z)g=9T3djOD$WA?t4pe~X{4ia7URxM;TnN(QZsxF$Eq8ok~oTV z-Z*3KE8YV<_M7GA|AW5*KhyuVv%2B4anMabin*yQ{PG|88hs@R=RA^oa13>a50Ol_ zE6K>J;&quj{;l*NsoA{GVXJ|OiIt?m^TWKD*O)Q6mehRPQB3bJ>hn9&^&SV2ZyK5k zA47G?O?15t$EW{z55PGFpU0oU=l}FzHpvX#(PK$GnCBhhd)XwF`6LxF8C4f8m}+MV z`cEH3le7sFD_bw<)8ezN%pjaO@lmk!*H4l(Ux;&a-I>ZzS(2Ln1Hrq?*-`EtA6^|q z5?^|m_o#g=rrMn3wkNT1s&81>Pi6dlk&LWc2T5I~8i`+Wkas|Zbk@ltQF1QQ+WJYg z;wLTz+c3}UES%%@-oVkXSln9fL2O@717v2iu}8-sDp;MY?%5+`Uksl)PsHNt1o-)@ z!-#2O(}9_Y__7eXlV)R8z)r!j@y*=detA&++T)BIrOOBi zYs2_?E0K3*1P)KtVNzU^5$MDFrLC!K&f`n)UpI(UPhV%U8=vA(FP~QmrLeC1IxDG^ zz@ca9oGIPH8f;yDOd6-yd=%`7_GAJ?wRl6LG1mf>KJX!pyc{Bji& zetnJW$GB(y#cZ-Nb4Hj{9EqMzh9}?lLVlY5#PxFy@{dTZge} zUX`SuF_|>)Nigy7eD2LXmIb%XBXK$)};9IxY@_EZR6OGuu)2(>&#urJo%IwIh zzj(Ud9Qk9$AU*mxo*RuqX#YE8_XnW3mir3IEx`4=o_OLFkKi(0rodUGgB-rHbmvs2 zci}lSM-j^zs>fEHNWh5N1uWs&HPSw-$a})EY;dP8sZacc-%&}7w0ucpXA{ZF#4@d~ zi%4c;BS~!3h0Y9~Qx|lQ^lSwT%5^1$QG5m~z6|o4o4GgIEE0S4nlvUHLdsunlDySH z8v8o&(C8CMk6*y+_uXVLXdgm8xWe*PFBzYki=ZeKjJ_I9#+>^Z=C=V_GsH+&Z5OUB zvLx|}$7FD6E8?vl;8#jE=|&94h0D?;l`Vn0mf6tWdxG?IE0Miz8w~uvl8LexZkH~G zWN0(#esXmBQ4Y4~w<>xnOUYL54_oz=V>I!hYG z=g#8u)4^o6*blkxuh1q%q(8Qh%oCb1A;A~(&TJ#ge}gbNx&drjDw(+6z>w*uF-Ps1 zz|UtGN!%&rGuAR1nE4<7+_s=#Y`P%xSt9$OwK$6?Uclq zy3=IbwFLTn2G+S^J6S(^fG>gecyr-hzTP)NZ@n6x3ulupi$`NYI9`VRhjL{%T->u2 zRz|Z>Q(K73PAg&d=ogB997O#0S{NJ&LP~oLTxJEJCHn<3gT}+7cNtm_oI$$eDNOX= zig%XB*oLJu5NRYti|hyHH}47}RiyBC*mX9_N(xtIJxA**JEzlsmtxSAwPah;m9Oxr z8#S*=6TGnF<5=@0bGmiSZ%s2XvTCnk6J~x zvavWP{Dt{mj%3NWuYh_6){d7Xn^`juU-uFV7nkF``#mh;d0zOqGBhQ5W8_qd5p&G3!ezMN2C>Nr!y%#h z2hN5v%wzg-=xQlqjlu$`y7=y+=+u$JclPq>ELDhyMu(r-3Ti0|v;Tj+Rh)z81ZbD&Q z20Q4Lf~upLs7g_1kpk{%<*18i>vyq|C`~>Kn~66jBG#P!h~&-#Wj|}!%PMP9X;(tO zYcGz)zQMoYgx~rVh`jof#Ek!cM8*{W%>8r$kKObTb}Ib--E**$Y9nLGVI-lgH38=>>Nero^kNo@sCWWIFQkVcz6c6lkqzflx?uZd|lqt7kh%r znJritCeP$z@8Qw%VzAO#g5_azVYamr4;OSIx!slb=_*mgYpo2MX4tRLK(S62uGFU> zXPh;X4sAqS{bpqMx*?;l8ws6fP&oJ=l2=T{`6x@=F*wEIN)p&yt_#k5)4@VgRxyni z*KupYJm$Y*EIS$1hW_6{2oKvz>I1mOEwmfqANd?X+Z|mGByjo;pIHt|BfY8Lc#i#q zO?hKXy60t(o>|J2olld_xc8iqAi*>WMv^X{tD2kqLgX7E8LKzKY|kB>x8XTv;u6?R z^TY9h3vfR&3#QApSxeG92#W_{l&=bVr?~(*YmUIc?hM~+7Q-`{UMx{+;s4#E&qbjIUSh1WGX3Yd}Isatl{4!hXE4hY~sXj1Zc%$yzEmJ#(PbngO9>y;BNG< zb-;X&S)?}NKA&H{#dwv&q~Z9EB#n!)*4>5F1{aaOK@IfhwBqqhSu!yB4pW0byp&%? z##3KG&Z-xW9^4mLR?S1ALIm!*-4R?`XNlBFH|x6E{cu;5KHVSZh6!9!|n5 z?J;;3dlPrE&G4?H3n~6 zF&NKhq8iIwaC-R$I2rUo_g)xxZmI>ka=qK6C z>lehu@5M3VI;MG^dF#Yeu=_w74NP$4_uxDD$0El0D#`0k!AW}& z_nv)85@C(V4U~k|8x=a; zUEqv6_P1HI^kcHSFbEt(OXjj~+1gGe1ZR!sdZ(l8i2ivT%;8LK@w;s3vwWOG-kl#twp}xEEO;KD4f&Gor7bvH@dakT zKGUF2T%X}l44OKey9MXKx)Q&oQ-_S zR*l$%j3sa3U$C5oEz?KF)deJ-?1UHoN02>$dyM9-M)k%9JXCGPzsH_5;SbD=k;g` zmO1-51&zN#3K27qr{fHR$(NjT?RcKdcgqK+r#f|3_#;nmI24Uu(a?KSXrLef2R2P* z+rF+Qt2?{k_g;+c8ZM#%yid7${&lunRgU+OGbL3>8tlNbk541(%x3i0bhBcmATmG5{R)3svU;TnWOFx;=Yny# zZL~YLFp^2}%eb}kksc`x6RuEpX6p>l$5b>)^&~f4kLZ!_S-ux<0>ikzk z{-=(UV{!yy8)mR9s{@#KL4^jM_G9Pkc4PdzXHIvmq}ll`^6;8lFEE=w8!~o2IF_*> zx6!2@Qh6dA>02sLJ9Hk#%~x?Ey#lS-k1*^}4{msS;oBd1IB?&U)L&!q@zi_hCzj*J zUU9)X%^Qd|iDW;gO&4VAS>pUD7gip7Sa8pI86qkML9yW@DJN;8a^wp{ai1UM)#l^!5+gF-eGFr80pV^4p*no%*Wo2-FTXYWUfOx{>GA>`P_u7I{r8_Yby)R zwB>q)(+ETdxq4c?2A z5t8WYJj1#QrExmwI)3D@fim}v4&w~hzVTbwle)nOoA-s(jZIN0c>{|yqPbqI85Pgn z;5EyT)a#q^UTGKH{mfBY*^PDUCGbYngLlDqu|Uop&o{KARcaiTFQ15p-F3+Ai-O`uqL z(lJ;u!Hxy8i^$vd2F|~-*x7=e$R2bQ|1FheNAG_@$>lYe=-5w+4hful$#pdId7fu3 zhFwkuFubcq3NAz7Q@);U28>WG6}h6QAY?1F=61liq` zL&2b}Fiv{Tb>r`l&o#1k;Syu3-NcajaWgcgC6ms8jo7DVi``#R$v{+!eYcdbHba@$ zy%O-+V}wl|{~){PG)e1CN7{E6=uH?vvJ{4#!cWl9RU|QoGr09a*C{x`7E|{B!HePz zxfd?R!|`AgN)Oy4n-!-ppF4rP9A}Bs_tQ|ETf=vD_i^1#2@0=u<7V=9Tsk}m6=89> za;Aio`W7K|nhvfTqm>k z*XWb6A!(fsGGeCqeUkTP9D>NYE*<@&&XV}M(>OVZG1>pT(C7LRVK2Pd;$4^V{k1nj zFOO!{-6L78TC$j&0yBeBl2*M5FOn1*b_y=v zJc6LoEK>A*%>)uzkM;$=nqRgzeUd8e~Vx8C9ge=P-tLCI*&i%LgP8~8n5TN@kcoA(Sq(j z(d=sMTg0a=!uNzpEFmZy>i5r(#Whvj5gP{uuU%y6&F4wpeUJ^d;pc<~G7T!Be0>P& z#3qrY!E$J2e&o5PA=%mLKz;gQRR6OjlatykaKvYHRV+r@hSe-}&JOhSZo%zEv)KvP z6KF2u=cY~-BJv~gJ-@|C)X;#K7oX61HAFC(&jP}xOh>!6L|*72t{MN2NNVaxG#S6c zm1C#z@5KVtE;xX=iS8u#^cI?*bRhnTHn!M}BHI*Mq#W(wvDSj@9L;d~;2|s-ww-K$ zS_w|g-9<(-pJL?TiMemD6B&{eY-e@|VzPIW?)*MXbkBovG{0w`kKo$RP#6`-;jFwa zDOrqxOr{QwMlB>29U;pc#XTg9hoZ_*f@PLBlFaR1lznsL%t`*8`VGVDbu-aCuaNhf z_pz*;~}@`$GF~#*n=!UCLDDUVQyV4c}x)fo?`_Q9n2f?yjGELV(o6Z)Djy+3Og+};L{s!Z&=aBgd zu05#f$0a)f8IAbMc8;h)%#4R*e0T-ZEf|1=)0~?+hu1WQ-N?98CHQv563v>r5PItf zK7O2lj>8tX`P@<9-lKxH!x9*is|C#z72M>yV>>w+Xsn%w_(cgAmj4r0TX{ZQb_!Fp zs&U(M4=MXuVtB_JWG-S&0Br2QD{T#4EB$vC;;30w7H zJOnD!5t@|ChS~nb{H;Ub&$UV+G5UyK{DX|gogl;ET1bj0Aw89UyapPIOAoZjSib;KcEAM-%Fx^)pxZW+4Bn;njW=lSjR8EmtLN6qSMk95D zKK@w6z}BIj$J7$^n-rj4(HpVnzT@kq)%dt18&|bX;J1Vh>dzj**|1OC%gPNNzmFq0 zb}y-`7-8y#$q1S1MQXt#;Jwodr|i#=QnnP*e_ux54Bp!=(ZStq!|?U(camKF6hZ~A zbB@-)-$yBEE*XYwkJ)*W&EwF#k!yVN;>kwV74OxZkfm27@Oqp?=H-2Ow03S}d?|4!vb zQd}8`+MfH+QEVjD-S1G77YOq)38W|;f!0Q4SS^@}sYzzI-`UP}@~&9=UmW+@Pbbss zwivy1F>+s?B%{m+*i`6+9+&^viG3U3wQUE9Ik&LrYfIo+J00D8CWLrv)K~^U`Q-z) zch4WZ)l`JVenmD@#Rs)}b)nGlon6(C!7_O*=KsqwzX zA9oR+593h2X$9I-jIg_P9$9VsM&jSEk+JLoGItzK;uC(6#eZ*U;FLbDN98*3hRN8> z^+T4guaTa^UMv#1k%ge047_cy$<&1gv|b_IRb|}C%ZN1p^Cnr#>qv9eAmvCol3p5t z`{`w*xt%jPUsxm6Ta)Cj=(At979qRMf+S1j+3#llJ*OWgyB%5E-R$mYwX zBfg&4RL;BbTYnwbpV?x`kntq_ID%x?D`S3kGAT+9AqDRZm{QPA652W>FFh0|4Gxe_ z;ZJ;(p9MdyY|_5-4V^042=mD&BY#VDC{JX?H${keu%8UqPGP-;>k$!pkIz!%SZb;x zLhpx@Zn8a2*ZYuC{1Dt+`T#-CCXi}l1a5a3;-Y0c?{Q@FbMrE0hNt2C>?W?0_zcfc zP53^+2zA^qas2%a_+$1T>ZY6E^z6Gg#qSg+w*Jdm5+CEIw_)^Oj*`@asI2X#0t>+&`qV zX`A4-ejVO8`I3=f4RTI&;@>PW!Sh*%khAPCy2Y$8 zN+i3;9C4WzFwhSt`E^Z*KGhD1jUP$E{u=2=DMRv-8m0s#@%J&1y?+!#S4xtp{{={1 zNW+YxojCV;v*4)iIWo;(g!7AC1z-QSJIw3oI1fh}m^h70r=LgY&I!n@J&KP4DV(hzTG`Yd9@rLybNHR*2OgE#IOUq^4Ix5?9)Wxf|!<`@t_x+jEy;<#9j!zFA9ltCcYGPAJ;Bj^9?c1g-x($>ir4 zT-~)0%_40wih6|G&QDOgMvqLJ2O|2yEmqk)l7$x1H#mOib7tq9j51D|M?aZ-WZ z-K9-B&wk^y@kTN%KT8TdkN6HyEg9ulleF9=obmn3HIE~BzUYZF#{Wn~&IiFyWpUDq z_a=Wj<5bZkgihkR$FsL_Xrl=$)2n0cNoV+8)iCy`$e#5@OhYckux~pPSp|<%k1pk4 zTmC$<{c-?<@AkvbE6eGMix`GoOUHg=ZLUYU55xS;IGFeww=XmZT7Fn#-NYfdBY%il zCbYs|W*DyC&}E8(#U!t=5i0+=pyjR|$*vWL)oi{)^gwyt@0{T|0a$0S8q&WGkoB_l zaG9D1`D5u$Ip4(~Z_mAyE@`@*`rZ$WqJIvne|3aM~j+pesFf93~djHo8lQ|HkW z`V2Yi_-F4lUK0b(~}A2dWAaY%mmv>PE0{`I?%BX zaI2Qvb7vlf!xg8w-X$)xCi#HNK0JnduUfdXEE)XPMS_i?EcZE`3g@Smf)&w)zOQ@X z+{u+-@#P+T9zG9=$(!MJfH(Y}+6~bjtD$Cg5{w_J<9ffu;Py%__#-nFQqpe2krQ7a zY*ILsWL$yp`YRA)UkD{`Yry}pJ%pUu!p+yNaOcZ2m?m`-qF?Glvuq~lij6>$b|kb{ z4}hrXE{JI;1j8lsL2=$Y7%U40)ea*r|9%NxtjhqyQazZfb{Ia|3cwZtJ{DZG6!s$n z*!w3J3oCB}w~sNfLYvz~x^=*=F(sfWHt=}EAGn|80=za|cxkj5Iv#z4X3=`+O1lG3 z%$p!m*dC5NZAC-3oFKuo9uBBUg6N4F2>q7}5e4Pww_YlQM*E=O_A`N0c*3c)dmx)P z4%N9k!N1N7eS4S-cbwWG^+hvM-1`y)PR@hW#&o0?@C&BQ3dEAAyef6+GMJL3bZ^SxYd$7*o zLcT&;NDt>%PrigzIxM+;hy*+jG{7nW=dj?_`S3&J0gPpPSA(-=N{1~TgwAL)bju|XJ!8K>TSOH4)T@A=`pUr56>AVrNDWoZoeJU2cc51_8&(9R zKy=nxcrsZWwyYk9W07j`@X$_Jy2zW!$eaZ~{vc$wP=V3y$UB^1ldZ<9ZLy{@M>i z9=XtX{3(PlNr$gmf1zDtCBzB&!YAAeb=SHe=Bpc|8uc=#1K+?2OKvAx{)+i3{u#o! z?_TB~86+qw0Dj^7foQ+OnybrU!IC#n<@N&W7^#4X@(O4aIf^yWLRk8*0$wCJ;7NBa zAYUjD-j<4Ci9r`AK2`-Ez7}KQ==qS%v5&gA^L`-WK2z1`2u}ut;YnJx<-4a`9_r{A z^pv@vd8XRTR_jPCnkoo7xAro++_PVBl!0m5Z;{di11zd$2lEaXf$?=Ou4{N7*!`0O zTZ_A>$8;DrMezaMu|t{ax50YzFR1p`hdz!YRd=}`O1uW)jin)?BRse!JP$et$It`A z_t24L3Qg+O@cGd$Xo%p$T~iGh7Cp_~6?&oFYZ!j5S`VH!9aw3J2kb3VhBem(u%a@j zpP4NO50Qs>=A?h%VZxoU<9{G~l0RIWA_xXkOd+4!C+4hw2BPi>a4EnM&U2oUQzIMD ze_b!}oR2o(SL%m0f(_Qz)q>~>Z)7$uj&(LigPSX$O@3zZwonFkFONgfl`mnqC02r=s%Y`7ndq8;1xOVLkf+ z5ZdVsp$i`3IYUOEPLkkYd==+AwnJ;0yP@G(B7B{77x{KAg&W7z;oG4ogo9k6xj7jA z&Q(T_HT|K@`zn^wszk4*yFhc}Gc0%8290xG!KNF*SS%m_Eau8XWNaBU_??9LQ`#Xe zm-7eh{Rbx37r~kIjnHmn2z$4#fXmN6fMU&F@U7bg8QLx&r!*Z-v;@J`x94Hzv@~!i z2moH=E*PjlHNbKbw(uU{PqsDiEd0OoFC5RQfwYUdRIG zL{csAAG$&2yJgHpIe)miax&ydVdmq=0w`Op2BH>CV379 zQ`0~{<`e4dJq6k#VesRDI=Xh;36=<#a$1}T8u?WK^Loy~XVVnW@$iEq4p|J(9aa|rXcXDUyrv}*P z$?erbO(8hOo_ltUL)Jbc=n8p^H8ngSXLcd9d~L_t)rN2-!v}iT_;C4wl@MN11YU!` zpz~V}M90nHJQx}9Bq9hRj2yvtU<)+fmw^PA6m&UmJ@f>{K#b=RRJA+@?!Vmysh`JD zh}k@NvcV0K^L~Ks$zcfHupM%CT?Q-X6>y?V1d{rSV985&h||-7O?eAZ!~RQn67`4W zCug8uu1iadj2({k_+1py6aqk*z*P6g0+%tDph8H+o z=DcVh#6Ybv4h}m=V6mgzo~$z+eYyT0R{s4F!UGLZr};&!b|MV+TbZH3Rr+{F%63#; zWdWYF2o?A1qH{rC;qZpLsCH#3dfxjN4z#MHE0@a9W4%XMt^Oj2E?J4b{1U^eD^{a7 z{mrOg`AyD$V}Sl#wZccNd2oCgg%=GcLn;HUkW^kajAt44>Kg<)B*=<5}?^E z2h!XALJm&{D!1N%ypNWUfBqRUU@zKEk10Fx#`M(F^a5mg9t z6c$4A8Ud{C{|tIW~KAtse3+lRD3hvzhTJ`E3nAFn7=|4O?bK?OhI4}t!3vPhI zi<>wgEu;z=3I?!H@)Y>2Y=@LTD`AQJe7HZu1{O3#gAFej?(|2( z;;5ZqV&wrH8!KSi?xPTP@E@d_y1+WYM(|hTbnLACU>|1=VVoZ|y?+Pn`#2XII9)d^ z=mabjnF=-s6gkg$0;n`af_cqNh}7%@Mp_x-XMDxe1o}YVa|mL6zHp3`RxsTr3uj_Z z;F+mOVD5e$8p8TuOYTFs^!N}o2it*f>;}jTwgSHJci6Wo7q03TLHPQ|P?NVALS|is zsMQ~U9=!@NG6Ikg4^S~z6M`39f%r>0Fw1l^eALZoma(3K!;-5>Ra*ado1gv`HH;*cZ#HIG4a0oo!H+@)}K_?ZYR5 zIjqDXM><;I0ng?R6T2PNWbj-#SiHmJZqETC^27ukmU?cP+@FKgCJxbAQsN*Kb&2fv z*-X9_TQmResG&qcd0VR+i0tm${9+Y5*nCBe@shlcZjEd~naL`oKbqs;^$oF#y5aQ4 zj1fq`ZNP+Paev3iSL*Si3Q0d7A;BmAF^Q39`OlmJNwm^@vgF<^vUgWE-G0d!?G^8b z>FzIS(m{3pv&00VBK3syj$Ggv46Q#_HL?}});6Zgq$Jk{JKT$^_kG_Ls80|5o ztKPWq18xVQ>$|s-%a@DDr)C+XC{;urbj}5tU#hg?@Eb6RJpwELJ|(OFi{np3%!KUE zdNe9tnq@?vfXUNRdh3!OO|0o!DAM#7>FhtUWSxy0irveKL#x_{U|uFya>k zPHVv$v=!C|x3InuHgt)BB~#ch1*`HG^J~`yK*Y2{sl{?VY zT7|^ltd?v)(T_^flCk;f-RurqbNa5Jon6!Z7Bg0U{J+g|$f9K`f8yd}82aNu9XH(O zcB4%+xOpo1{<)Lfe%gSNHYHOzW*x}!W>9FW;`U>6AoEZuF%NkK3DO3T{3aMYZ04EI z)@M=INp<>6*%F)Gb>v=g7s}^6)!jWhc%7^gDYN)W-b)*!-nIgGdEy{FnPQ8BjNjAo zTyZi-wDu57pMM|aCI02{FFD$g zp_#wfYaUbBMaLduUmaUC|F9%N@h|9-SvKf|+gcEu7^gxg3EaK8PQBg|@@3_3GG)gF z)IBMP3LbYr6-m|1SGiI~)buE86*@+LyL>=qji#)CV-KvhLiBOY5ZYcI#E(9#57Im8 zS=k5XRJQ&Xv>G_FK3`W+S=kkqcMXEk+e%+BcE3f0o^{e6s%Kf5v#(%az=qn_`cjXx z$6=@3IS6%_AnW+&X!xh&Y<%u@X#R5u3m*_?(;SEJDjR!dba5Jw$!I|0_3Dsy%oi`Y zuSuURQi9&CdNlOaC%7NUagL-%z)V7(SY5hA?p*MOIKg3F&|-DG;5Nt6Gg*MOw+qoC z(q}o5H4kL8MUjzvB(-eLpzaIuSidTB>SGklE{cxD=DanqY12;BS}=%YQxF$GN~O3#COtF|GlKA79Qu9 ztyLvGLf3dvRi?dE_yv#n(mu-kFPcSmeed0q9c(DPxkv4}5v z9Vm$kpQ}*ql|?9KcNcSuT?MOo92e^DBIXZ$jBa^`;|+KZ6*IpJDvy(C@wZ}n zt|uA-?NyN95kr!*qTAAVPB02RypSGRDo>xvVpIlQRFgZiBI{pLQE?u)={cbz?+58J z!vym5k1|=cK?v<%r;5e5vvg=WAzL4`(vU3~;Pq!A5|YkA#tHuLdhj(G-=T+YDRpCU z*(_4zR6{u$4X>%s8pHYPzF-l!|-}#QjCq*v5mU<^T1ti#@;NborH7ST_!3 z8Q-)liVi`$5)VMlj_1_s-~>&nSx-Nn?WMyJeY~2l!L(ojr&UNflExPiFlH-Aqx<`* z$7dOKZ@ww}bhMZLKG(;85IRgQ2q+-XGol79k@$39F`oRop7JzbL-pJ)Ho~xkJgPqj zLayhTnuCo*=FcGPe$@x-yN!{<8Fkn_4xOsjsi!ivgk_~5c^B$y_M9?VL& z46jRr^ljBBzq1A!6U*Sv)~)EuXGg5i`GJbR;+V|0jcL(o3-nc|iB+(_4T%!EtZtVl zy&R$ke}=d7H$SFa_kIPr|DlbkUXcUem-*8BM}+yChV5tw*DFS~&qM44P=&Tgl(X$7 z6|UU?&u`1{qy$*jG$4nszFn99x8Xi{{PQ;d`qckWv)?x={nv)}Hy74BPfY~9#wgmvg<-bXk->)qXZk-%~3rry5mV`gyxq**xCz==fj{K7UOhwnNry6ac?DQQQ z(b7y7o;bJA>^BblFt0p%b(=Ig8JvlpRmu_v^Kx40^NJV_{AN!bzkowcAHm>a0jgcX z^5^$wqRl1y`RPXv!mxlAUi88QJ>|5jYt8{w-=0qnT&g8*8p@XORGR5C`o`kk3!wX1 z9#1`Mh~|0BQ<2nS3T8-Gb_y#*oNraY6*5Gg1FhbK`dZ8yq z)>LmtGD%-@5WB?u#V&@UtaY(87JVrNNl0#%LxRmNjtCNP3RIonj zMXzcIvC?I`*lBwm$cF42NU&)(IX!%r?zBoEU0GIGa`F;n^ynjhvFd)3zaR&dj?L#E zbRHfBPeUMoX2Q7mz#+bOkl;h+)^f^~Eavqk8+&V9S^cYa@06CBNe|ie;Q< zq2)bO5x$@FTYf-Ps2P4s6LwQ#58a^3A=zHqp(lpt(A%R6=-3Kpn8$OZw)L;D!j^aR z?FVOK_qzm57M@O`Knk`cY~!-Ikyy&4pPjto7-=rHXVY>V@UCy?sYRUz8IwH%^L~vm zBY`bMP_U2dwUwufE4H(me|{3{Tw_?fvxt1&wvXT9(nU*-575+6CmhOU4Rap6CkwBp z(MuK@(3-Qo994?Bva**u-!g z@3{Mn_S4z)tgAY^fBs}dV-nC^>suBXPTR2Urq@{4+ksvw>&FT^c<^P>HMZp5O(r7q zJw4#fW#@+CxbG*XPozI_84gFN5j%?G(<)G-d;vB0btCGf!sN!;B~)IM>oJs<1Q(>o z&ePt7bsibw1uftB*9TSM==edB@4T9-7UWo#92B69M{Ti|iX?2`U(WSV%35^J$zg2w za{O17AR2FBkM`%PGq9Xv|4O)%!pIw_roRw9R2Zd3QZ^{$@pg+;>0mIG3x;ari%_{< zj+ze?(fb!dKzjFba(ZMPijT~NnQJ+}?5t!s7oAPzia*dZ`8KSC_Ch4Rr<80=Z$@3C zcFf0ibUbUTiU-O_soj+Lkk^lyUf*>9qK#vcy ze7O(mL`Q!X+VS5f5|`+}&RgRRrQN>h>cMSPv+FYUJ5|OW*Nq`M<(E*w?cZoc*l$8q z=CUhBwt?K&spz8KI2^L!@}FgI3Dxrj^<9%mhNLHJee)t+Hc?KicI^Y*#V_#;{Qzui zeU3<$>3~g}8QOjK0$l(93@KXaX~q_vp2RNpRVGPm#)+J^0b15#Matu+qMVIIbU}9@ zlo$li#`4*KxjR76{awiNLkQ|Q-iAh&`I1+kySdEFEp*S(74mu%Xzc?|mmVJ>nj$JB z@6AFYtZm9BA6^NUHveL$_hqvV8H#XStCb2HBUE9sfH{2bH7ebZjMu&7SVx{b)-aCC zNyzoX+BKI+%ie>;raO}A?Dl7FE1$rERr;hsvI>&PaW=_2ka~DKvqH~(AtuF>oY8Qn z;+q56eKLFS^$`a8E|=nTVFCIkq62b+PSbe*R8o@j!>rCS*m98L-2N1n!AH(|&~rOJ zG0xQ^Jieg-#f8_1U7I0tQcWYej}`inF`ZxH1Rpez_NOv8cw?{!>*;m1ulM z=@vIDR)WitZx0PdCnWEX*9TM3E$KEYF|i1C2%De}#rtvAHCxuz@iqCl+?*Aez8|YU z&7$z;B(nQtNS3wP(o?>Fp=Mu?8V`fVWsBV zutFjp#6q@}*2gcRA;)J?F$YJcr$&`@hWUcS1tYq5+XkxByon9*`o}y=R41S6RhVU* zA7AcbEbKjg0886`grlFDxE}NvHvj8eI!9WU+k1r*&?-geKURaF7mteax@q2fB^>yG z#Ze^#NbC{EuX-VaP7j2Vf&+)Syz(!Uc`6bnugQjD-C}MJ;0j@jW2yO4D^$HSli%?c z6M+-o*)ydIH2F_D6*9%xSwWh;`?U+y;$4uHekPT-vLV0oYUzIo16V*=ofnoUfG&l5 z(El2*l23u3;I`sZ)LH0-{@n6sH#lgLcAwvLMPLz4JywR5V$<0%u^7Hd)_e3(#DQ-u zbCphU{tNxdF|6{U`%s#ej?332um?waNtJ&m4cKE%(r%W6$H$v^?NnFh+I@9=;iWR` zT`33JsXU@1^pYA!*D)W3vT;Cl3JCe?(hBbNW#njZx#1rAsPX`4M>-;*8R67kJsU;m zE?-#>%UMZ}z4HlK~Yw5-xI=Ipcc+N(*oDc4`Yih(R~Ia`R=Xn#1u0 zty{rDst+m0YEz#xYIwe#F0FpV!*&rI>zX$Kao_9MsA$5}98o2C6LHMZ_gs%`sS4|= zaFPlpu7@K|yI7}Vv*@akX((#3JN2nNNH_dBO_E+%qYiLy}^}&7WPkLtYR&2S*jY>vMp$eCCKrq&Y(iKX4bDIIE z4;h4>JMpyh?qya+)5G$Y$u?%z!^g1Ltp?7vsnTip3h5iCYI1&^KQ`7J0Dj{K6tUQx zxAoh{SZlSbtG^;@=8+E z#dU2eUO;JI{m_g>T>0evt(0%SoK`TyRBTr;f6X38Q1ckZ^Cq^yn#^5jxo8mDB=UtW z@{y;KGjyoMGfB8U)18i17Ew8~heT^*1UZ{xPj1~Er_sz^dS&iLm{qLA+FOrv9xGqs z{NEt?dg3-cqH@4u&Y5lO&Wa;Yb@?ql_0*LpnjC?3%I~1OXcGt>kmM<;{zI17l@@=M zXXl!IBhH19IKa~q(u?o03$vBb!Gg(XZS)}8?4khUZ7;FTkzLfG@HQ(nlk2DOj{?=K zhs<@cQ7ZJ}8X36ihTW?R=@g^cwCKny)_{DVzZ*?y1D8Y4$+`l}m<3tK`C_||=fJJN zRJsCldBMZhR4c`Snwo4w!p#T3?(rL#%$-p$=e4i`h6ich+t-{|<`^~|E2SrY-9zEa z7lBgXGQ_*M3LQvff#I~!uzt>i@@6KgyS9+szw9MnQYsH-R_ii9_L@S@25UNT?k{`n zpbgD0Y4Ahb>MKC&3HEc|8A06jt|*b@%eY1zNf2N#RXE zFTb)b=51(6#yNgT^b0r?;Dl^c(}-)p2tDIuz$T5v;0;VLduqNvdvM1f^K?Nfn&%Qs z(l#HV(w#ikAUl?0I-keOxZLj?(RYxzN}R4a{etK^&PPL!{i%lVB?znJ{GsD+^v9ty zdq=#5emyl$MiD|8XXkM97PS-&Ce*>yG}O$)29bYUY;Z-P0Bqcr~8b0#TInY@(T zVySpX01O&e;{>hutm2>NRAbUblIa{nj|mb~U$Bd6F5FM^h$8C~gi-6_QR?`F^E=(U zOe?O`(S>J>`Ij}Th~CdyR%mJ=+PW+h-TIu%&Cl1+@s-Z>Lt_y-uwf2~c~D9B+$m-* zb8`o2^kl_437w?kLZjTQ;F0VYN^ET>ZB3_z;Zf%{vdKM7(*{6 zccUnwLh_#LyPZFa(@^q~Xzutu@;cuQ&s1-qM7)Uolf08?Z10i`xupy7uWhPapCSr(unZ%Hlra@HL$CC}%=s}gk9I;q$JT3US2sNZi)5#yF(fM-rDF56Q zxX`LbRF?{{X=0D)Hl0w~@O>G?TGyP0Xomt;}t`At0rCa|vky%IiXuZ$_I1zV@ z)l><`CCLKBbH{xZUT z7UgiD!I!Ro^pN9k{bgMP{}8G_g&J6@L=9_v2sFWTb`L9?`iHSVxHbns5oq38UpLcX3@WmOvhyilrfa ziZq#v!YCvyW1S9NM)}JevBroLtA56u&Zyc!RzKnR%&Pu$bL<>^_Ma!a+i9Hjy0VSy z@-VXrp4zoGD*C~ z+;-H5XO%hNr?wxRKH$pk8Ehm2!$!pG;uz8Ovq2LFjuN|v@f@4+C0vf2%Uv3S4T~Nk$&2rJWjWQL-;e;g`tu<74(B)5oL8E0g-B0FwN+P;sdm zs@+mXb9FD!*n3v^@TTwV)*GA$QQ93DnVItaPWZCRFZr^{4I@~yX$*9APmsm=(~ytM2$6C<4-$%UwDXJzjmY(+$+-jcc$X+v zJQBrB6O}_*pN^65Z<{GAHHnpWZo@)}m3VUZ5GyY^4maH@Ksx3H4QZNW(f?5$v>x_A zsPkFYa2T+}-xLhb47rSzJ=w5Mf(llb^E2fOsqngfDkj!U=ja+!%)SM=A@16_%8zIm z?xbRaJJ2i1kMMV*0tPY|Fut>oUixwk3!konwo)f@@BK02o*4zkn`(eWbg?3@&ym{M;|z9l zg@A`i?6OmXwA$wbdEb&ji)R`OcVav5BCi6H+Ts56=m^fA zgy7-TCYY=n$%DxPq%E6;6uEBLzATX5Z{_-MhxCwD(FlkgYe0H0w)1Ufo056FBka`7 zi*WL}0e#Wn4T6rFsP=JZj2GMT!}ZnB$oL)Rt!N_%3j1J}h&imxn@p6kd^UUNkTXem z*+_gAsF7F0!ce2&P8vU2!7Bb5`le9>(mzLcY;YyDXmB~rt9p= zVeXl5|lildw=n&oPt;edJ zybEO_p6ssiEQp>f&a6LROUip%P+E8{E&aBIMu+%dN8MRK+c$#L++8>Sr3jGD1P2HZ zZJ`FP8BCU6HM`infRZo^Xx%47m!}BOyYHJ&i+&u)m+aujo#F0z_n%5Kaw3a>rqnrR%YZ>KS_I@1HJv#Q|)M2p{4p$nkSfAOY;{v@}stYbdC+&LAUd}PZv zDlaG9g{R01F0U5&`y^xDw2UrZcLuZzRdCjHIsRLlG|0>P%O;6>FkN?sf&b$y{a?0k z#YP2I$mKRGaw-*WOf#mzdS>)qxGUdwFQ5Ou=>pP@9;4pl38YpykGzwV!@k1{q40SM z*8RJSE-LXs&$^vapVNQnh|xKSt$%_XPEKbH<~U;UrChIAuqtzI>Ov%ZJ{#1c9>D(O z`ShZ?3Qb8IVTIlWU>WHud~1%0}i7cfMHaeZ{n7 z-!o91`2y8UV!=_>pX;z{px=k1z@cppJ2RHchG1o=4p>KOqW-}YtItShLn&VDdOD8F~KGUGl@q>ExVX&U>voCPTp}Cj9-gU{!a^tiJb>CWn8)UzlB`g zzZ02Uu_v}7^SIrA4aAAhrm?Z_sde{Cuqxe3Uuy3}QCg{_+uf3%{ctrSl2ibik1P2( z1DRATy$;)QJg@c-Y0&-a0Jl$?n6N&2jY8 zkM->Cp!4)b;c;{zVg<9C^YiHnsGys>Qcgz!tF zpMnU-o(~Y53!}Tk>G>1QtnQjt43or3d5Z{@tC|f;r469$p-z|N+Cj4WE69{ACp{Mh zpl9_cnG^S$N(&z5U)YdAPZ_wAv{|3X&cxNEv?GL8`3j)&X$Q&s>mQl-16BMO-|MXQ z*mtD(AqQI?E5|B=I#|}>Eo>0t`gPKufzh@mNu5-> z?>kC2CE%Dc%Aab<$HBVxcq*HNSJubV_TL)F`A0cxB)<{D!tF>@{V;hdtIc|dWa0R? z<8*L+Ev?#mig*o|WU&B9_24#R_Mlsql zThatUQg$(&Y&Zndv^JvBmQ(2OVN<5fV-z{MPGK4)IPKW+2ff)o7sm)JhiaQiAkyee zey;z>boNFP$5>r-raSc5T>5BAn9S!WL=Rg=~b1X&wHI{#DF_#ok*b7(S8=!bp@C_(;|==Q)T|S&ZX)C z)^J|Y1bCnK(CS0SV9uIe+`3$fvHz5fE*#cGEkdo7o*4N?5p00>; z{FL2j3c-optfZ$GYpclRvFbmd(ksJs%aQLalo?o5UXerP*S`~`rIqOP&jLCvDH~3O zac5dECLPAD^nT$9D&flQ&P(K|;=WO;*vaJ}r|2;nhJ%FGXkrPOJxJECoC+yoeZiH{-Z(q?v<{mdizI8$H!RQ*1)GDQ~;<)*+ z(UF!*ihypqI|x^Jz?$zyyoG0sXj0s$g~69#lAipNIBJi=xT-qb>kZ~#`|E}h){KK( z%0G6-MNL}QyOz-Ih0sygO0TwD#d>@RFXSLf8!IoWL^PhV<-03PFq z?ij>kS>IWS=xDqp(w$XX^&M+m?=)|`I-O2$=%rKKhiG_cFq!AqOHJ)kQG;;@H9*fT z?}@Q+cJ(>(?TQcMd*~6@x49g-EE1>Lb(AW_4^U$_X^6o=B>G>gC9fl!SrTvpJ6W2b z*uVsM+)+#9Oh?$D^a`}SSs4XeNTRNBRq}SElihn_2%XpEcIHl(*wiimSdV;5^6uvl zue~IJgr3}MabBi_W=04=*C#=Cw%Qn;C2|3KZZU_0vtr28H?A<%ARK0o`oZX#$56b; zh<$v+ms~x`%@`I(F!;3d13h@4yl)J(I!WN{z6o|^a66S9>Y(o1)`0=j!`vy+r5hA*%cbCOuW1sv~sZZ)erIg!>$od>BpS@gm*6m6AfK-K&dYxWSR|ME__JzIc3 zzo`$7y%<7k#HOGY;>|?Zhhs?{3>$I`nG2h(Ny?)=SX2BN?Ru4l{`;%|jJgqd8W|2A z*@FR^1iCF1q*++C);TbYi*i@6`mhhN{s8n=QR+IGW1(Ad^ zyEq-V9^I4Um{&XnY`I$$v>m08(mQJ=zE*%X7mV_W-#AGaaz~#gxwC$D$3b|nB0c-- z3e&h(0L^a*K(qaiu&VmkSfxc=E;D{5#zx8XWvT}?+{lojAVboaxe4*Nbb$LDLAvO? zIrW`!feP(;k1i+26A9z>%*7=~slb;|)@IcRl<5wl%Dl7m@!^@Qb;DeS_Bz*S;5w$IO#n>x=EX;&DtPKXD@LS;i^Ku`z$1>>5ZKr<%yE_4Vy-Q(K>Gmdk{B9}qq?WTA zjn1(t66v&rH=hoyoQEo3-=*`)&oRaq>uHbF$Opo{BkcA{?pX;4lz<2H% z<)6;>X0A)H?x}paCVJ)nt)p~mS z1CPyD8^M=nzeg@hzk=C`f3R-d7;AlO9aL4FqZ_RRu|iEZlpIrFRckgfqI()q)ZAqt zTW5+&>?^Ur2@lq)bRR2Dp0g%%mm_7Pg+Py=M9F0)pnQ)0?T>z7)$sBfy-n)ES#T4_MBcz-ehcqh0o1M+jo0X zv8x;Ic5@G1P_{61faV5|2BJ22m~B3h@eB(6Qq@_}(Ij zowlU&7I3|E&FiR+juljnpQKkTN?GTw$E0Vq3zyI4&WctalvjNboj&mbE&8I4=kIQ& zh7USWMvE2wu_XsfxCK!MvqJvBw9O>jS%p1aB|yE(Yf<~zB0BQVA5~uXz`xIFu)l7d zK~i@OsN;`&=#=bU+Guf^tou^H-*+G%Qrq{lnrRC`?6oSYT62X8Wct(E(YNq;WjVWK z={oScQAC>#a2G}KDLqLoIkzQGvo zt0&=mU(u$dM{qT261Njm<{LYXz|)a!RL!;=Da2KvummnP^U4z z4#KAtw!l@$W?F6mv2ds&CL9a8$6yh4Ty=o1cu)sR>}%^3-eX8wvWc8Kx*fg9szW(D z|1oYZ)=XKD8+@DOMq?X0xK2Jb$hYq!d8Z;tS$ibe9T`te%>Wg6R%5{#rLe0njg~22 z24lBXXkx)2RcYiZMW?)CC;i@tmHT8do-9EhHg)5Tf1j|zwS#0+^8>0XzlLYDRRC^( zSEQjW9wgm!AB1l{#20zW@^-MCly`GG$2YJ+qUKVp%dTWdIK$oZ9J}FR*cKvm*Nz`8 zX-ci$UWMR23z3NL57H(mO5_5Sn4?kZ&|Yr9ip9L7g%^&YzkcCNZhsiPz0Mk(7jj$} zl~`8pKG#*l*#O@D?4ltHPctPoo;>gB5fsx`!M~X~g#MMRXVY(2b6fxsA{Mt0GCJMq z-h^awuwW57G))0KmRVw%s6kd=r5x5Tm<7L%BtgHYC3(5_2zvh~n@Vm?rw+spin3Oa zOU}CB_vjJ0j;v?AJO)tx#1HgtVLY{Smqf(_bMdV0-_h66adfQ8m(qQA!OkU;O5_hC zmxhlh@;@uo;bzS)H1wuZcf4l3FH9x3O*_ycl@ipm#D!liRZSCKgu!f?cd#JHgSx)9 zg@%2nNyw{BtWe+!)UJ_lxpTN2xjCJN29Ei{^7ql*R_kcl5~vRV~F5i!`0!_S2jW^c#`vd)!Pr^ohq`{DIt;mO;D5hgpYXZ*lP>Zdd;H9V;)( zWA#?7U=^nrqxTgmp!g*cMeRNfjs6aBfz!9zeD+ve^9+U|`i)q;xPq3JZb4OJTdB_P zF;@HW2y#s*pg}X^=%%`McHfx*`tpzjd0QMwLIte;kF7V4%JKXD|C{G|j^?>U#zb9b zZy~eHW0D~+W2VfdP%5QTA#+M1A%rws=W5bG6H%t5qCqq#NxtX($7lWi`Q2;X?z^@8 z)5SSw?|q)n=Y!Oed*73sCP6G7VWIDPBp3L{n=hYNB^uy&cRAeto$U&my@ z*-43DcDa@82)rZMjNS}V)phVs;Sl|n)L#b2Z6k?O#|!@4(vnOMrUT!ywwcv)GFnpV+}AQQNk zWC_)i*3saQa6!v1jJ)x^K;D$6P{U%D6Lr`KDw-nbXn9uCW!Rzhs6?jYVlxX?!v}6C zC$kp+1?^$?v%@}l@Tn7A(fLz4lr6i)UD=q%Rb{z?=$`*LbJv;harFZ_lwZb=Ta`|A z`}-k3L_p1M$4viQG9>g&7!kKQNql853s%#E`IL8RbRqN2D8%*9?DrSxSaD5K`g{=; z+xkv8a@11TD0&O6&N_nf;~h}&AdQ{~e?p=)c2etbmMi_)7`D!tLxPvPfJEjVaCyC* zezbTGZHG6(`lBqv=gDy@rftS_>K>WV)*>i*dosGrj1tb&o6=aUV zQS#4pK~lDc{5%vZDC~BCJ?4k0Rr^t@=&4NI7Q|C6kvBAH!Z14dFbjIjN$@i)7iG#)JzBz@I{xn<+H z$9|h}g>;KBb$0_FbhVxj>^(|OU3|f7gtEJiIZ+8EVJp(0 z)sSU+Pna6Amb;syLZ!p(>6FVhpgT2B(3C6Ya`!O(*MdFxV8ks!X-&MKGQ$zvG9!sq zXs?sC{!5Zx)y8dnBSN(j*PxbhN_J?*0vZ2t%_IwAWwMHSZx!hI!%>LWQ;1cgxYKrrdSX>Q4d!0H1x-i)!Yb{}ER!o$ z(5%#>hjvflbL3{Sv-m6ZuQa5qt(wT0^__zJgQ>9om@aHRV+?&7|ER^-98f#5ga4~k zNKZ{FgQwg-Vd{Z(*-^UQPWBCE@cCIR-{tcwJ2#?}zn`ft?3ZE}Mcy)W^zvw&{O6%y zw{#G4W$dW)I2CeDFM=%g&J^^P6q1fnC3MG5EvU|k<6Z7NkF-%DcCWrU_lJ8415d8jRT z=QJdh3d-uE$dJ!|Ugglh7Tl ztx%O-CD^z}z)0;=>+iaf=i=q$_^wkB*LjurB>lu_n=IV+B}zCkn&n&k7$j5dyUCsX6S%|_fn-b% zCs*eWft&jpayH2VLN*TycK80{mu}er<6Kp!_S#zN@?jq|NF1fL8fAif`(nD>-iLZ_ zV_LMKXS@xsN@^ya1AnO-aB}}N+VaJTe(rV4y0^|7HC#RDKC?nn5Ez)f$HawSzU(Dk z79C5T9k!uefl(+rj_LYmWOE(;bBT-fP!@^3hbuxBf>P!^+D}yIllJ-aNE0uJELzR2 z9IW8;dw!En`2&L5@a*hs`#K=usXI)Ypdo0u`~}-d{q*LAvHZ#)S$@jfGoU@Xku)j0 z&`YHr^q5Z-SA4jFxeF|^?IwGZ)MtzN$%nk)^u)=6?ARJQ`p;WFWiSll>%$>XT?=%- z&E%b|^og;uH_c%@)<2^9kX*bI=ZrWbWKiwk8H0~nT{@mcr%?^;9 zDZ0E@4`WCb$HBZ|?D-oZG#8bSUsn-TWFx4=+Es5<}AIqIt#8P z?8U%pO>$xQOkUwiIL*x)Nsq`3&^eYhw0G4i;lhj-`nn)ju$eRgZW)SDt2c{bu2~1m zP%F+puxT{O2sL7TX@(F{z`WQVE=(hBL6>}UgXB_izAm*GjvdWFk#m#4``ZZqQi~Xs zI`R;lo1gI^m3^Qdt^}dl*XY^bnJBl*6e8zFWjow10tKJTp#1YTx4~c!Uw)IvDbnXK zAZ8K99&e-bZEE?Nb`9?Bn=HaJ|IURK!Qht`f#Vc|mAWWW zA#Kc^36kPO(I2PKGTeUSvY_-jnEIWSp-WTG6AX*xA3Ky#Gv;ZT7#fHo+5#;IpAOHw zK9FH91CY1q0&PDVOF6rjLA?tFdfuCY$m6S4|At#my&Ztl#ei)!d>Z}4inl`_zy$t;l_ls z{Jw7iaHCI*CYD_%igQy*obp88KTLoYZY5pf+XnG!E>zxmGp$W45hg`W$o|@{MV>aD zCzqbL(iO7na6VMg=ylJj=d>X5KH(w#PgudH$BM&v$ECEQ z;~IUqJD2~bJDQ#y{hNw5Mo_Dibn2Mj0kOAuZZ0RFQ`>svYL*ESX&0$nutc`Z0u`9* zHIA_c_5jy$2YQD@dG%63uvf~ZTerHTKhD3SKGz^682Fxg67A}Ndkj? z$zZ-Lg**}1tUtw3u+=>Pj)zZ?{cRt4TAB{|rUnoYkJ@Lysg?(Jd!a=qLCzxuiQ9+ClU6;xM>3w;hJK`(dA~?a{c^gz_Zz=? zo)2GkNF%#y%MH%Mw}FJLnZU@X@NDp{-ze3q^_{kE{=cA{Q70r#hs#@#`C{IT=_ftEiiwK6Ms0z8>LryQJbQh z+3UJk)?C8m%%v)pe9ewMyz0w;^nK}YoV7+lkY2fy4`)4*l|l|Y=${EnDu#4#=jQB2 zqh#EgcZln<42Cx~lQ^SX50;zWOqZ_RNVsWlsqV^1rWGAWuJp{u7g;94@G&Vk&wrt? zDAa_m*watsLp%6@O~bQqtoJ7_L;iHh$zZrL(h3fUJY&R^R0Q9Ita$zD^n&4W66n&5 z${Sqplwl%DU*3$WL5BoKzZ=|_Kh3aQDU3LYi__$|PDtyTOXK6daT(cibV|~5xNhM_ zRlmQaMJ5q+jJ;PzV`c{Jn^Hs-qUx#E4ORN$d>}pB`h!GmG2{E^9ORXEJRxoQ%P41& zLS1)o{LGO@$>7P0G(=%6c~E(cWCZSqMaL_+25_RrEAP_zGg*dWNjV9TF@~0TV$@4p zGdtA(7e~qthN?{t^E-uL+9M;MY@Wz_nf?IkR)sp;1 z8Kr7(f9db+_UcuJub2q-iIz0jF&9N#j{Ibbz2=Qn!hSra&J4F;TQuhPY}Wc zbzVfT8D7+YpdRc?WEx_4#m5&X`{#>rvwno~*OVxPT6VzjVtqKKJvr;v6Xfri8Ig12 zylCub%AnpPOo|6Y#bYwvb)-9t`-Zt_l0SzAv| z@6!@Ax7Y|%C1U9J^{OCWECO1Z2O0a4Ll5v}eBC6Nb?hchJurrpY`v0w*)^0do03SC zHuYp@Uht>)$7sMP(S0D&{gY(N$5a34 z_3!aGRhw{u8^ZX~@Av5HBNiSQ7kv_JZ;1xpY{Q2;buImWp0o z#s4XIh@yOhuq(5M9?I7dRBH4{ORPVM-ggS7ACaX?58Yur(H^>dUJXr7SEC=+|Kw&% z>(E;#`atWK6eU}(@P1DtX~R1oK_%>*aHUz3*x&v^k8WN@13V1)9VW57$=g9b<6;nh z)T<69b}gozdu#cN=i2DMJtJWL_HEhCe-laho<@G7mJ57inW1Y}j7PUQJYAt>2I8Z7 z$R#H`IGS>kPwN;6tDYqGAPad0ou{0FgRU`mJDB#EfwG|tbBM}SlO3O zmzTNoX%`h?&bp-}Akr9>2Slj8(l}l}UQ`&x{KV5|eG}GQW86ok!O>8u$WGrY$JhK$ zVGO{TIR9|9;N}-Wa9S+QeB43BcQx=U@8@KCWXGYw4ytn2wxmI9rj6w@Xc)Pt$VCT8a|$; zTffT@teQqmHswYxU_hWo?p$SAN#nT;oEokwG zNE$WFo(e%fP};MV)Il{RSsmHc(HC*V0co&mxQJK6rqi2m`?JH1gX!J&wR}Tk4^_Tc zkn#G1KeafTMhid8fpDWIDD~_i?=7jrzg|9!x0t8J{7rw!6&nLOIP4P~pXEV~ZD+zw zb#r=RLKtna*WtBhex@T@T(eFW`S3k@`)SjkHo?9|jO=Tsr_# zY^pF4BA2#M&EqF=qzKE2SR{^O^DdLnnx~`$yq%tknlOJ$Ef-g)AZ$9f1Lnq;3ijvy z1)HP+5)l%WsSqqs77{~$?5v;{Cb$TP@)(n$D2q4z9!J4<4R?w$;Z@g4^6REQp<%5~ z1p76FfW;yF?N}S0+c{dWv`?npBBE*3{KXtDEdM4g_C6Sr!xA-#o zdRVh>IH_9aEo@%W!q>C=?oU})Y4Z#ZrU%-K*VA_Jv@o6bR<0lqH_xK$PxV7}p&M;5 zuK@#!LICkeqwyY zw2frU?>O3WPZ5trJfaalmJ2%$jiYM6Z3WL!J8AVDPku1`3->kS5ZYQ_qnn>~fX+IK zl3NT&=Ce4kpZJSk@(lS!t|Bn1FrBPlvWO3688qI1UI7i4f%8eRR3@0Qa!XtIv;B$m z;Hv^g#;J$#WHLCOoXptJ7x}`(B}jg_@o6z)q`x?d%2@q@-6iko@wkO(kwygnMO8%7 z^=4K{u}2nt=0nEn+VNp=N~C+rE&fOAbn052MvIgDg&B9&qqEv`{@9p{PFZKG_!VyZ z1(kmrve!p<(AZQ{LBFMrPXC&~FCMX(JZ1XY;j^U3r?_79u-Byr!h;3n<>7E|a-Ohx zvMeP1sUg90UC7O+)5yW{9*p|8lD=Dd3l|TS!>#@i1T!rlXH61$QF0SB4jF<-%OiUE z`!B{5st}^KpQW{pJrM5gFW?vt^8WRD&e7jJYkZI%Z%Djg&7|vmg5C)l8~hk%codBXM0Se^L9a7;{s{8-Jx21+Wv9`kcq5v+ z-AnLv_(LU*JB#RhwFymloI*ZT`4H90L8_8jz)Rh^Mz3#C-~xO+ zAf3%7gTgy#e=83f&2z}ehu6u5JI!2?%Mmo)(SSBim*7hCQTlR$Gw6uckpt33V88z< zfAHi-uKBYfwKg5Vg^$jFj`Vn@o1ZFZbiWjgyh)}3>#L^+EaMMf@Dyw|O=6j^qiOCF z3;HC~N*FD1oOg>@K>Vs-afPyBRNi8W5Ob&-R7cpdT$7E|O09wp*qjt372om$=2iTG zJL;gjvjY@d9bnP8D4aZ>r+vWfvxOT@r1QrPT=Dvv(`7pkm}#m)r_UIRHu)aZZah0*PDYRgBB9K;_t$BD zjw!@6>_XeQ1U}!HiW;ncq&LRWFzDxFXAKa)5^dW1u!lZ=zX`4>iQ2h0kyKLTl8A_Ov51I>B6};$n73lB_a3jc zo3?ECWIzAk%k2NY{C}VGHj0S+@BP1*)L!<-g8zLZrqy!)`$U_)5B~T0f3N?)pHWMs zhRfU`M;zw(p@z(9&dxubga+H9`nWLSyx)M#ihPgiN8GqMVPV|E#+hjNP>yOjhfu!h*3`cuU4a#c{Z0mDuBBuZp%%+ z_kk!}isNps??6MLhUg?x;=IWT4JW)M8aFR-t8AGMVALaWT-BG8`tFaz0{gkVn8{qQ z)?u`2%|?soA;i(I3$0fBquH8~Xf?$Jt&Z5B@n{z``ENE_?NCJ1_L*p{)s2=;1E?eG zh9)(QXpwviHGV(h^iyIu)znzjQV}>&6<;(qNki>l%qy-louiW0PI<3FpCv59~i9MhLXSHpxZbD`u?<|#T_FX(cj==1itR*y;sbJJj0{;Y zR);(8(@i2SZ6S`GMP#AIEApSmZZf<34?Il!&gF;SLglyJko4pn*T1P16;s0D@f~qu z{m=^4^O#O@g$5YRK86Z+rh|^38K~(Ppo*t5NG-Vl%9|#j^v8Fo&@dj=79J)Q<5r{U zjWsN5_BqM=a1&)F9!B+3PUNACFKS8pG7j--Xec_5T0d;jxUCz$BqXBR_h~r1^e_Be zK0vCDd?AZYRgiDDR*}ZNkBCjqaFD?xWWd#j%<5Z53SXGQ%G=(kEZGH}!#~2j?@}oD zF${jSzK0o=yHHJOC48SZ89JNi5u5B1RPxV-*1ZRbaru3eO*sSIjS3_%+834n&Oqap z`Ea2`j?7)9g_e5qaIVFeY>fVhhT|{5wdM|TT1d?3Kw0Mkn6^Fy z^1?SUUhqj+<>Ur}?>czpHytJi?T7T%CupMt+Opi2H3i(r9nVOU=6uxN=ngsk^`!Mu6YAW_VceEP z(%Z(E%Vz>1C%%q6OSnw5Ke@rJ#f)9_F`8=**$-EC-)G!6PvUz26(m;uMYZfRs4Q%U z_8kl1^(=SPc>EVyzcfM3$NQ-2bq5A+)&nYLPh-xq}XIEoN-8F+~O3Hy5u%Q zv*KD#-j;lkXFMd!GPJtvgQA;R-QVTRt#~Mc;!oM!XJaN>y0EnoI386(C85ZdprH=) ztbFB<&nL9v`ck|C#qdJ*iI7L*bHRo*zv z)(sYyZi322E6D5SU{k(4yxU$61!d0wo%g~!mqUG@EMx32U1(a<%S~Bd3C+%5 z;79H)w3%rN9U;fy^ZEv^sA?7b{5A$nH%@{^dk*9e?_zAcC-5P-6ci`RqtRY(_>w%C z{IL58IpJ{-v^WatljNYF%?2Vb9DolUo8g7^B=E~)_vH@0D8FS6{OzD@o4=u6t&(TMujgfsFEa!s*)#B!6FNl+QLwG zmkLU60aU(smMjmM2jZo5@G&5PTwGHJvge}Vy>cuW-S`}Iwn)Gi<(=>^k1@B@??H{I z2Mmnc2}!0o@bTm`=xhA|&w|~cdi_UK7{+FP`swf|fiVge9z^L8>rf=62^B&tQLexS z+MnJ<4UgrdwQ3SMR#=4E0kc62ev$;kWvD*vJ4jxBNu0iTqHJV8>TLOdT4R$@(!2#V z$ad5kyogHIL{U>e5;ZM`p^|zIobuZN-_#^fjxhuRPR)l}nQtgJ?Gi*y3xn^ESl&vY z5xjPafuR^j#zcyMnzQerM??n=qdvfgIt3IDItBE;H|j+1Atx79Laxd`RD1V;#I!_1 z$;o3ld|N#U9(NbYqEEu#vR$P9y8!Puw!+`&Q1Vvt0=zg92VG)^NmJY+6fL|BKU>34 zGi4`AmzhIHlPzl6rNO_x7?$&Dq2cH)Ar|3>#~H^6j@MvMFC!S zUqXdhYsuTLU#R={KQsholB_)fwbLJ=fy;eTK6xdpA;QsQY95+@9tSVi%R;HaCbW!s z1|@P!8O!}XnxAlnoYk7}YKs#1J=g*=QblknpY@Q(Kg008EQlL58UorA$-wVaNIW+O zUMx>Ub!Su1S^pi1rbnXAEFCcGPlxKj1XRDcoOw7K&@%l4s&C)MxGiO9vEdWyoU?>a zQ;oT0y@+Zp=b^^H2375SQ2Tx^Bqf@oN>3cBR}pw%F$q=IentH$$g;wX$qM=##V)-? z>B+ssP_zpEL}sAOl0PJ@XCsP4GjFQ#C~~=^4Y)%Dl|C*e#pB0-{pA`|_`ZT1ou~jK zrfx(=iWG616k9ztRAsrlqKM)D|r)Ex~N{Ih1*whZZWw!T7-tswf$w{MzGe5A;AeHMYm^x(WFh ziK>1BsI+k+RH!CEi@GRT@g@@jl2^m0_nu_`9483+aS(pMO=8J!f$%MVp>&Hl$yFY~ ziTw70;tecQA?Y3WJLx#Q?RF-0Wm`E(6A@H9;syNeR+RrIhB_neK%Pl0Dr`Q6>JqAu zR(Ba?R<1$QJx+}2T?4=C?xJz=Thz$lVX&nd4HkYyh5b>`8*vXz6YaS3X;V>G)CES) zojs}5TLksA)-ZjA2WOb!hFYO@(6%=MO|~5Z1*t6P7xzHZp*)ak6NRroozU{oN08n; z3qFrqZ!!}7u&lHPR{Rc2&^ zTaW_DsX4)FlfQt0aipwAhHNAOY>%v3*9wvE zzi>e^OW~c|TnKv3X6h_Y{jEd?oMzfetNO7pwCosn@bV}$a&&<1@^f6Q>Sr`1(@=D~ z5z%q)Lc?u^C{@5TZJW2F^kz}Uu84s0ql{^WBp%$lRM9Nc8@}%(F!^Bs$ZTIvvY%L@s8Sh7d+Z{g5;CCwO(AKh zk0X5eG88{L9WI(ylSr2xsOV}7SH<^}q}V4YGgB7MY0V&y`u3s<(|7b597ltdKhZRP z0Df!CMl)u8Gh25Zx@^Ny|8E@XKk|WM`K_$K*pI{W7Xzj>|203r`u7-b{X48@=!;l3ibOcSa$zx)W1-HTEqMx^Xv&IFz7|uU5}w)!$By? zIg9cy9au(tC1lsNprqm!c)ss2IX3P)>S}RNxv!V37+;S%L8kCr`8$b>_CbShM^QsI zl>~&0hw|JIR548_TV{`8JYz%Dotr>HGh3jTvP`q@>qwK7AGz(Pj3Ni#k@qty`{uu$v-qar4KJ2jUc9Bj3vAH8swPlAtBFB;qX7LQ08I@ zzh&f6ecEVp(R~5*NHNayQ9JT9X$`a=e1a-r)3({RW&gDk~T#e@g(B&@9x?|A*3DWni^B8V&BV zJx+BpD6oB5M@9@~D_^jT-9fl9^dHK5vb=4>TW~Rc0OdE^K=FMxPr2rYQn{T_ZtFwL zS-$9C&OOEFmgMlp?7vzF2~>*Nh^mGuT&;NoDruXcg5Pnc zq4;F(TitCK781a{cKb|3p8o=yxjZ*)roYqe+l}ty22gZ=Qb3SxIJnA27fzn|k;h*U`G~N9L^53L^?VERu zc`|`?{M`f&&px8w$5;?^9uK32e?X(Ocp_YCM&qS3(4_M!WPDnO=1IwDEHxW)lUU#4 zqRd#$_u+nRCF)c$&uwWvS_#`x{c8%jQ|yM8#%EBs(~qRDHRg^#jU$4h049Ssh<&~b zDLg0zla@{+ZkAr;`!)^GyRx3BeC~$08NXpF-5w<_BkdrjdcbVAL`E1+jsh~)M_(_lM9Vu!5Mb%VSfv9=gYzL`J3v}qAnF#DL9yvUXxZuyN;_Ds8LSNTdNv@Fn}s^uHRwE? z1_rBFq2`As)RI03KdVYn!=V?4YllOdlqagHEl2Hv)6nO<40Z0aGvI_790)jz=IXMj zP(1}U`Hn-&Ugnd%mI}wczM%1t4@zt(;U*2mLDj6iDEgqEI~~WERZqsFR81Zc8y5~W zD`%jTt{zzEUqz!_ZImC^4P)2ML6fmFQQBcTD63VY$%#7B#LoEd*W;kY}Jq4xrRiOCP7&uue!*UFiQ0@?8%C?lE z(OPR(Z}hTrj`4dA+oI&QD%4sy8ueanVBVh*=xxh$=GW0wr)9*x0nwv?*!WBu&9(NTT<$E`I(UXO_JyI+tas$`?+GAhQ;SND&LsDwFR6Q(#p+01 za$YkQMb%iJ$hb)NUnHZHHme0}Em`icGz?j>{^;x-NWER{IM5@4O8YL7s|B+;=?nqY ztTIU6c~S1+B!5(_(<3LIn?dumC#d6i3*1-jgx0s>s5Sc%V}uk#?awCEGyV#zx8;!) zHcs3{f9B`1lqHL5O3`}O4_K@fLe5JjbE&hl!THuJXq32wqCRQxZo?I5k+eY3y6aHp z$Yzec^(bn?I7P0xuv)GeI1LdPAL$1hZJoi^eiBTrWO=lL2rN2Q3&g{L1f32<3&s;V z9rTq<2;k77W-~;2?;|IIq|kb64IF=I0M=`5&~)=&a1q-HWBQZODy|Kj{My0d>oqjI zGX}=yGEcHL;~+h6go>X|;CEsI8t&f!702g5ME6WI+RzTqrQ=ar#|y4?XT#Akh+@{3 zaA~(3>|wey`JhX1{GUMu$`+B7Wo{t#!kc_M zt3YZxyFhnJD0yZuoZPhCK`yv1MfsMyXrm)XLf?3!)Rfm~wO5Kf7w)3M$w9QNpG=P2 zl!A9;BUCk-5Kl8XX!JeBm=F!*#3DC%#cImW28w9>Z6;b}K7+05JenU1W^?6y@U#@r zbV(oD%(Vvp;63dA*$*1lz95PHYfyER4>aE_B9#z;3PmrWj`or0H_52Qa?RA7yU`-1 z0M&=s`rl!VCU=Q*ZnMufuxu3(MWeZ^nK2OYyWKq zl#wr<|ADqFtMMPXfXv$oWc@6*9;Q-A8hePCtvwB*lOo}2btySsY)F2{UVxNdM>Oy3 zA*FF1ApSH9O($fN>(3{G_)BRg55~MGD4Ih$cZ>%I_rIw9Z3}x&EQe*?F}G`<05L^tA=`X{lPL2poez$K_U;!Dn0NzH z(w9SjpD6er>w=qO1L5nfLvU>RbVy1+1LZ#wNqb#2JRN%t^6pO~KNZiw)A7>qDs~4b z)?bIr?)}jIL5?x6Qpx*)I`~zQfTBlQ$xrnl=$7|IxzFw7=dN)0#<=!VyG)f$e=CC!$ z=Yr1bjqq{NDzbgbJ1~?igr>?oveeEHM#(aE>Gvjbtmro?c4?w|=UWKev=&wK+EHU^ zK7@BMHuApxsQF(Ng#7D-5|)3XXcmd)Q`SR?zZ}Z!U4hnigOKy!9IA9Aqh-84Y_g}RpoNJ$Ij0(3T^zJW6&^fxlCkQ!|dAX1)zZ7;a%16^MB`6uixWF+ivm&S$vUU%H4S&YN+Y12C z`i{VXwK-7EZcB>pK7{oR=TUO^53)V}Cj5HufigeTiC^wV6nXUtrK=6d8RqNy$;>5Y zIZbH(b3S>O`US0Zr=!J?B1s?7kH+Dnk!dhVVe|pid^`X@-YY`T+F7V}&Jezqc0l+@ zH#TGTh2Co`;e`Dl%FKyGsh1nUy}uA;y&6#3U=AD*A4KtbigKMNV6{yth&mjAl81~} z5hYLBlT+YLpCqhWIS#Zp-h~$jGGGy2K#T6DWW`0M^L!PE)_8>&1Hj~7@$Sk-G(KA?zNa1@B$cvK%0 zN3~OOVE@S#mH+KSt?hBJ?CcMe$$Ce!%ERDze;&$4O(yTRABR0@fhZqwjYL~KXR|SO zPFvhYnOX{;`Lif?<}FGru7~PNlVG5DEz0d{hWhtm_G|&|?Rx41Wm) zD-&SiTQk(2s1CV?|H0RF%p3hR5IVIVK=Z^B(qUi@on}VR9=!sF>$*Ts#~c(JvmHL% zP9anO+k}!~*Wrz^0g;$A7R6lqph-1>7~ZbpI&V6ol!paGhbwbF%UJHs-_a0j_LzwF zO+bmRKM?dFkDNU4heVqBF~77i*%v*5r1Z^XERd&VfMQxdXtUo#lS#TJYg2W)Mtc7fscZc)t4wF~Odv_eIfBAVN}!uo4TQ20>~&5{dY4`XOnE#K*+%d{>V>K?<$ zvm(HkZiSH5$)LmX5;ICXA>hL!aQtcw!Z-jwDN}ABMg>k@V63`P2f05^25?YmDynE% za#vM0LV(B!)Y-n5@iYBMQS%}=!WY7>ooh*Jy$76}I|Q5DZ;&|F+XSrIifVH_NLSJ`t6SGFRczh|U{v1gPlIFnO#kW!1I~mQMMni;05sLXT&Y{FdIN>G_|8!QM zQTbZ16uuK>IELbBmwlu23!_LX^PP<0=bq$NRV@dY#- zT#53Xn@RgI12q1*8|5$v^z{yM`J$g-{-{n!tys;?+Ug3^u0MbzM{6>9(jJ%^kPfM# z-Z=cBDC!s`66fgmsAsSg)zwqUp?H=HIvY?+`4#ud#t^LZXOob(7tp-#6inLGPVOX4 zMYH}?usn2)tewK4Q3+!U&iF>|4kp7PmM43zcpSO9BpG~v-y<(|uaHU)HbZanCS=YA zC|mOZ9{f@#zD>-}Y&-^TCGIEt`s|^?K!o*gevp^ua|WnWUI*z*hCusx4;s8Y0k>l#L1PDFUY~Aps`r#2Yi6Hfxjc8!lG7opj?IUT ze;1u5C`plF`bSY@V+>^Png=c6256}24tXA%pe6JWn(eTLygNIf(`PFVKi7#SdzmjQ zQyf;Do`L2+V!&b7XP9|98THa8Ft3FiEY!Wktx?KF@g3=qKmQtcO2&irBd(Bpfi_a^;tUMUr_WHo3`&&V$ybwxut3hJ#aTuk; z_>?B&SS|kxTF%{qrxGJzlYJVr_MV3<^(dIp@&Y~&b`b9^18~;!Cw%+#o1Dv>2bUj3 zK%KTBF)la`mtJgx=G`$)ItD&qwR<00abM7KLl5Yq|5lTp21oZZUp&1WBn3fIle?_3pF$6NjYr**FRrvW~1r+b@13Aef z&@T=@qqZHIdY*==98X2MeA4rB}v5Yoza$=1P=na>GO_OU- zLO%_>85{QHn3X6IaunRUA3{;&BNPqR1HT5A{quASYRr8FfdkqmW|s3MH8$^Im@_FtQLX4jKdhpc&|U_8z{2e%QEiN#RixfSjX z>*I=7O96lX4AGdd9sCQ}ta?d3QLRpZu)@(OVo*$GO-+LXZ2|E6^kI}9cbyp8HIllW z4^V7DFqyKWiu4CovU`}-T=iEg5M`NzuV3eY|6Fm@kurc+E62k&X{IZB%h=rq6(E4W zjM{r%p`L9i9KG#?`gt$VIN&@4sQaT~>_N6SvU=))2AZTK!V64*73po<-u3MHx~sy< z@{2^XEEo!|nuBxyNN$_rLoit719^E`kbIZ1Sr>*wZu&8}_sRtfPMAV=Yc12A1i~}l zGmsqV4mUPd13x4UkDgA1-gR(4_yD>5DxS=$-p@1|lgU=mSH$Vy zAl!FxCJ8Fl!FgP`ye7iFM^yDU(Fz}AlB%Xxy9jc)BK@OzGI6{TYL|AcB8)drf;k|nT ztgo4ba(`u@JZmF3ho`Xl^?2eDHwjLz-3Qj&mB@(C1rR8b1|0LXo*w@KB1Pk2WREip zi4B8g0_%U8=fUqQrZD|+G-{+jMzQv#jJ3-8=7p@MFk(H}oB=2*_==jB_Q0?MbD^St zAsQMk0wb$#D7#z7X;00Ao7art=^i7dmiY&l;=LGK^)7eeu_B~AUIusng+rm{F1W2L z3GXttKzT_rq^`aKZ#12ts7nEE@6dp+Z~jA-vL~=~4V%9>j6(I-5-{Iu4fL<7M>Shh z*r7jwq93Q>u(U!lzvl}qmfVPX3p}{GqF7iIGZ8gs%aMg?XJAI`AI6dChgtuRqU&(T z@oU5FU6QnvrY1>+sOMbAE=01Deq?86&yXgmw6us+Lb8>p_c;%dkd+l>CNeULGQxMh zzu;ZZd(M4dQ@@j#{hLP>qxBGI=1gYbI92W(h=Cd1iFIQPGP3^S5a)f=PxU~O{s@4k^wFO>=*5G%+@KbpT*<0+AF*Rb9W~ck zOS~0ru*E2t_LRKI;DjkinR-Duf8#5)9a@YQ(-fjRc{H`u`i7R|N@9Lh@?4N4hfis> zv}f>ZnDt{+?={D?th&N!Nf^~`x1#13xbAIl3f28o0mEhMgiihO`22+X?KEqN&gc^S z;25Q9)CS_Mbsb;+@2PHZ<~oLLRMqziwad9c?jACx^3PY%URytsqf;cRp|Tvim!5+A z(Hd(1IvH_VU*R!o4Yj?MiZt&!Se@G~*u+r$d)~(J=zqKuE(m|`&xWh5KPg=#ql(=> zz-{PO^4F{wu@BahNtbrx)R2Wpnz^6Y_D{pPhlz+`Z%KN8Ym^@Fqe?ZOP`fSy=e+Bw znx8T1oF{z^bS8RO~>LZh3FpE z8v)1q3wIqE)hv8~;gLgyPM(>h(=ZFO`(=7Pu-Hy@wi%&(LM2R(IC#z6{ROA2v|%xE zEw$JDg>%vA(2a2w$~AJmG)K!}llu>{u}2B*MbBYdLM>V9y^=bH^v0Yin@Fs|18Q6P z8va`bP=(RmJWsXrJ?Uy5RlIbF_QE<$9X0_!KIYUcgk8sf~u@wj0y1ubPma7OL} zo^H8=)^q=GBK<4LU%VbW%rbD~)CrO>zYN=o4RETAki6G7k=CO(PW0G8ia#u+z4FWO zXXR${PN6?42aqUF$0Yl7l${qfL~>yz>{QFP@tUO5D!W2OcU?%#+z z$$|J&c#m3_9LAhIV~}L-Kpl*(V9B7Xh<7iQp!{Nb6MrnTt5=rRg=4@Og^8H`)Hqe%X!F!b~y2W`O zXFYbu$wTw!F{-nKYaii&Ot*1Vr-*mgTP#7rSQo0rb&ORTZy-Z!5Kjiyg*g#`>BJOX#qGi(i&Ox5VqxypqfVU z$ku4b#nXSOdTu`?bL`-{)jO&>OhkUrdsN=%+SJu+$?u;7kleiizrLJ->WKnmSX-lg z^B?YK=e^>E9Cyl6#qERhFrD*3I&=B#=vISehy19)+D1H5X~VSk3_M*^iA593(C}pu z9u6(Sv`Zd%v}FdGR~lhv+(A5zJqJ!Ce; z0Ls8d?O*%HZG+^~ed9Kf1h7AjH5oA}#`9uNpW*cBb*IcN%S5alU4<$=4!l=-Z zssos+6!UzLl!6xAPpH8`>j_j_ji0+t4{&%^C)Ezy#&b;xj#p2j znkx%&e(zqKJeG&ALz7Wp_yAKQo6zLvhCCBJOdpttulvv9n5!*DS@sp$8v0RXM-#le zaMP=*;04#SjzqK00ixA5gKA{I!KVjjsAc$b{0x6Ym2NMlJw9cky{ZRQIDD7dm>P1N z*O$r#+(E(!eUw^do`a$N z393A32Q{}bgsa;O?uE3cy__2mK1`sR_xB11=T{(h&>^bb_bRcN<%LKyWvZeQB&@N? zM&{{2s(t?-H8NE}hS?^n_30>@?2K5uqDWju(-`sMY2sXbN}n>~0Tgzj!rt99HAO zoJ|~m+Ces(wW77;D$aDxB*(lr;c+v$Qc?q=A1qY`a9l|A1K@xTGk zSadwnrH;#&BJFxPK5SY|ZT&7|&zvt*Y13xBp85raTB=n3buL~G8jO82|4{-o^rd8!f{jq5IzT<`Oi%9|zf+`heN(k6KDw~n0u9fB5)tv}gmOddLOPrTb9 zJn~;i;`?~vi1rblzdQxz{XgM=Uo%>GzP|RP-8ix-9BqI5q0h$!)F9IhomQ)X*CT0n zr!Q3QqbnSLyr+5r`uO*5C&oXlM0?~`s^u(FyN*lv5cPxWO9s$hv7_)koMW?({Hf#6 zMCfxZMb87>h{cvds0NOv#vc=e4zmHU9WPMxZF$1Qd4Y(%_MDtZ`AB3RIPdk-i)?Sr zCRe-FBEexAsp|KfWLjk5+`ALVn6FMv2l2gQk{YsiH&FvWN0fM|;y?|kxl=KY&KL|9 zd<$%agroW@C_@CUabE0%W*=Pl{ea5MzSy-R6N%Le@Zn+-cCSB+?GyIm+qk`mHhGPd z0oU-=#R0S}g<4G3z`Nv5xDE2B)~&vHwUU5?s?@4u0lw{zKu)$dHBFjGR+9i^zbvQ5 zH{*%&uFj`oP>v1==u1vAPxdhmJw-lA$>6`3>Gpb~rX-9n~5B4}-b4%D%g!LeBbvX*`_!~z4Voa=cZv4ZF$l=%g@}-4 zWSg!h3VNFJ-!zf-xTA+7@34UG`L-2OCDGGhfc#q3Hym>!5j;yd>77@cDswFk(*H#J(xO- z|A^0H({XC!BI>Z%3Qt$8!|7Hh!O>EKTEw~HN@qXpz4Mztb78o2{t=QVe&qVM{~)fq zgW`Z)rlfi+*K=*P;Gco}AvKGrZblHE zaBa8A%^y_NtO@n5#jv`ymE+X%`bqz|>lc@QRSS&#^ zzUh1?$;qn`K%4N}bTmo)p^X($jrcmNo{V@n8c(iSqsu@mvUCwc-Hku!^}d~qwK77( z-xtucC?|!x=3?f)BC=^&J-S>DN1)#V;_x&MibJii^lu}{*j56$6Fsq8b1}90(MdkX zzvQ!BBDGxigj|&Tk(BtDYmZYPKVb}RmMGzsas(EAyMl`+wb7V%2McCw;2w{acr$tx z!mn+oHd~ia`8OY_*~WHi!*@dE&qdU#`vB?~@Q%ub$x~C#b1pfvjM^+Or-tsim>kBr z!(Ch(^L-0e+f`79F>|TOiYAoknb2<1e^jNY8Ygm9sm|{@s@P@%(R@7ZI&3giZ#Uul z<#4K&+(6p%I#E(Sh$rKZ?J+AG~ZpF)=WAUw9Cp8*P(NvO0(jN>Y=>s!Sc$DXFZp|Ulc8hRup*GpLu9gHV zw4>574ACiH zs2)H2T3-A{{Mdoi#5WdA%3DbF%-Ps&H;?vcdrsQrBams8M9p&Elk4@pvBPsSHA#7Z z6j$!uF;>E{lMaZxr$f7*?9crVcd@6(f3(Z(3>+F(gRz1MzFk*Gox7c0^pnjF|V(ToTEifDH)O(8OPD#z&u zQImUGC|7pC-{C64yF%VM^sg0dU9yS(uqM7+biu!``b7W5B;=m7gJMn{RaIDy!!zfi zyFoTp`^0&{fn47mWkuya@!VYd4^XO}j}gbFP-B?}`LVtWoU3|M^Q^<0&kG+Ql#d7Kh4kbaSHuJP>oI-ls5Nu=jAA2^g(2E*CAU} z=_TS{a|ry$tD$YhBd_f@KVo|EeRRr#sl5;1vjf!d?w3EcJ0Rf$TTIP2a_uNf#>eLq zsD+y;ml(_>!vIUPk)F!PKnYoGNLpz^*fOw0pP?RV}JSx{3|eHs6alPbZ}G-M}$-erD`W zLj2YhRFmrtA}wZ-TLWg0H*)K7EpP~_vx_Cat!yEtm6DE|PsnYu6g8`}vF5)}jz6Wq zWl9+$FBf^aE6c%S<0ynBou$3F#>x1n8n$o`#|f?P!m}bxZ2q?lXVS9C=s6(>PvOeP zA1j3pgCeSa#~t08xK^uc5Y-fU7tAhed_3Nb>fGuFA;R@e9fbYn8R1+bQ@iUNV(xLBzTtM% zZ`_ToUP)AGwIXV|W|QVSN+{j698dH1L+xG+WE0x)O#2^sGMD3;4!3akOA~Y^agCr} z64iM#0ouwARQux%s{dUN-7-z6s`*{2Go&A;y8IRV_%`9ZBu-N)p< zeW3csTyVZlp=y{4wE`O?oI4AXk{TFJC`Urf9%#;TC0}OC5cPTkN_x8T-pzCP-mMhn z8KZCtZ+SlQGt|wI-8cRO!<@zP>EmU*% zJ5ulP2<2{5sEMaNX?70A$@QnG>6sLACfFZhMhwqx4grEcp#9qclwP@xA+Z@$epM;X zdLP61*4y}+Aj65cSSmm9HHxQpqsq=JsG@@kN>%r9Jz! zg`_z35C*m!qc(g$Ok6R9XZNh8R_EH0ydV*73Vh~zG7^z@J>fUD#mj877OwZ%0N>R_ z7%|WV4}9l?uDCBOd^-h|-OoWfJ)P>d9mJ}WeNpBS%6ko~5Hh$D*PJI)t+&0gk?Va& zv*CDqV*s+aPhrI0D!jN-iCz3NPw^dxuc;%DRyGrtp1sAdfOSaF*TQ)}ceI`gMEw2- zxY$>b%FS{|#;h3#n_PmZX|qurs)oqP4%j947$E}(&<{2-6JX_(k5}?p5DJrF(eMag z#HW}(+K0-`d4pv+$yjVxP2~qt1bOwq$l8P4*IbP`=VpPW{)hW>m2vY?f0SPxis#Kb zxSh!pc0C8-p3_@A@ZOE>YiINCfOjT@{6pe(MJ(T-1m(^<*mChYBA0a~e@fOPdhve9 z7x#cHn)kA^!^4<+|tDH!7$33)c48{`kJ>**RZ*)F&!6H2um=~?b_pVtOn)MjE z?fK}qor=kef5EI}0Gi({1Dz~E&a9EjGdCp18Irb%BG2z}$8IG>@}R~Wf100R7w2IX ztn(*AL4TxKJ;8YGIs&_?*zFvFP`^-ObUG9Js$U{5tt(#q3dghGf05es4UZcK;Z?dR zcGiUBgI5}wQkLRo?0&LiRTlOrrQufkQ&JW=7a5m>@o?;A5^-e=@G=#$ifg!?DZq2&wnv+anOvV-@>T!N6nkgQdW?>W1WJm4ZyTU)6d z-zO9H_eXSz6WShyBmUE848Q7%58dbUb4eM)>srXhl+xzt!XLtMvq0|qT5vORTr-e zDuJ#gb#A0cese0*4GfXa_8 zhz@VSm-QZ~9#_cu#clYil7RD$Ul4gF5UCNLg@U=3*fzcu3BBhKi}rVjdjAetvGauI z_k#I3U<=vFQ`EBUKfcr6#+lU})TU)A+>~zM%2+=8-`58+GSL{ucd|9P$p0OVM$Q3f zytu~k{O)ttMK#i7t9N|Nev9Ou+ZTFCOUrPnHpoTrrrmEk(JaW z`wqv6EMc0VioMN`d6R?>+>Cf$;@QL4*Rl}WMCteGMn0_C?RN-IthL?1Qmdr(NU{{h}6bloFi-=kr#r5JU(6aYI^ume4=5jgc z9{G$luN|rFR7*0#zZI32GSQarL*n&*g3Z;(k7$tYAh%Fn5Ks!_d= zT-jKK>y-`e)UNxwVTz&&+GlNzD$S_$L7o1sGg3BFEmMo{S@l;rT8 z%xWXX{7ggD^P%|Ayb&|30;q9N2jM}1m^fq@HCRw3eB}G=nqM2J@vz^-p{yr~l48g^ z-%Vb&p>kw3*JIquy&#-97) z?Th^-D}@7N(s{jF2^2UM?zH1F&b1vw7v32+;HonY&OQU(HgB#Q+eMz-ms`LoJHcNZO46c-UYH@2=5fzh(}82k$&L^Mz5WQsAH+f zy3holPgAfWdn0z=xdhjj(-Hf!KLT}olFIzPR9Q0@qwbF)=l&y9p88>Kn+eG>K0#F$ zT*0W;tC&VRso})Q=y(1Wf*Uu{?&%?zIzt%?CGO{G-HIu{GN3W#2>G|Y5=-q@pqo%g zzLhM&q+L4DF=>M#|9@Ng^utWy3RUF!a_05_!Fz51RX#Ta?lVRqq`5y;;d#wb-Byy% z^1M&IVh+MjE+b7E|53}$%dv*&kr&S8)M#8QId8ogb61U^$ABCB33AQ7c+@VIFa*=^y6yw=soyu1|m z@-2`Nu8Tbf=i}kW={Ojqj>Ormcziq@As-*1mrWH_A$zejGzeXSUr@!OHCVb}9xPAJ zqgw7e;NGnt_K$f&d;Y7&*x>^9zZpw=>J3LfnGdq6j!>J>dMGTB$ILPxYWmNeJQ%hV zvnN;4p5x1*l-(EJb2MlV_huY*{6&!?D8u3g=P zai5BDkLxIvPpZN*DW1+yX{hcD*kMBDkr3iX>5wSk|k#$NQ*YC~19s`Q?>uOQ+ntLMmzC-LXEB?&o zqhLq{mQ0LC|A0*x^ra^vhw`qHUl#Dw>WbKnRGw-6_Uh z3;vuQ;yjPs2HaiT2{CCi&VAw8A)nVEH2ysHeKmuAp&qs_e}ltHS9o90AFMI-#U3@@ zjj*UMZuJjDU+%Z3+Wx34?S{VUi_v%1aNJ4LhT-H?MB6DLJ*x(j<5IA`p&4nFu^4{- zGq%1eN9x3nSX9n?CA5YkI=vmvTYW(LGHkS}fkpl&cgIg+#7rFxaAl_cM*KV{0>d@R{h_ z&w+?B<$mDG0chN4iRqIPF*VAC+%$fV;2A-@>$#k~Kl%`%D=6k|t|zz3{@}CoF^niT zLb#-icRWvGaQ6=EcytY)(>LKi%NK|W+Ks6Z2XQQM6Y^JH#q8F(ILh&iy7<024GKp2ky7EprG^y4sI~OYc)A!B~C!@-YKHb`FK{QW`zj1`ifuA&#~m^?a0|# z%Z$%dvV*g$nCs$r{Mt5zW&D~g+p{)POz;^@0=sP^-A*}^i1iv`-w_Xl2RPi;KzCn-areO=G?47Ez-Q14Ol%tr$D)FWD8@BHp~PR9xf#mt7h?4a3^G258rK zG1+qw9EPTg2Uc$q_P5AkV^(FVng+2L{c{ zkh7&XQnzs&r7o3ao4#ji-f3d+(lpZYXuHg4Z54}Ps^ZQghs2Db#q~+h8p9)toQ&N}MG| z{Zb{+!`-FCheBLaF$??QC3u`xt)2-%MZYs@9Zrk~iA5h+`G zLQ7oKD?n7}HlB{L<^9|zZX$g}6)Bze`GI|MfUQ zc9*RscRHNdZCjDm_U=um4~ddYd3SPkXQ!asn?gx_ITT*(sCctvFOr8p5uXh^im9Q> z9nwB;l}1Hb67C9fK(uc3!nYDUGl;GVDw z9mcpN8k6dK@=k~<-V1$!u8nWU1|2n0?@dXJY6H14ahhyM`g0_y zsL&fmB_+f675UW~WPNiQ`6P3dCjWRT>8>bc3&tlRWx_Y{N}#DUdQTC$^m7)ny6KYF z6Aw$16}wTRkwGkRjTKHUp2fP1N~e8xZ9<=Kq%T3tug&7l{ll?ZE0eAqzgV(t{OURTxSZ7MWKZ-zbVVF%sV%0V z6$g9$5)WUG5Myk%iz)5eUNvsH;?XmQ#s9v?z`}V2xo)+Sg*$RRyW(_Kv-%Bn^W81! z`8!Hl#)%Nr)S)qXqF9kSPi%LwU}L@;U_!hlwIQR)`V(>_(V-jSAMnmd?`-n6X@n@m zc#Auu14Q48b@;w*23^(Hk7kA`3vI(wn7;RIVc70S=H=ARw)5HV!sd9~EY~OFL%rGg zw6+Uq(DsQsAm;LC#(eVrr)@$!=Kr!N)6-4PW$CR{whmyKu)r z66TH<(;PbyT42hvjMtLLTld+JhPR?-L$hewa|JTBbtQMp{dl9Cj@&89v`?44>}F<8 zdD>_fGAUsNxfzry+c|R!oGVLEbbA@<9Q%`zZVfyud$#y@#T~L}>umAI!}qd2Tc%3> z&Q+2n&x0DgXcii;b{BKaIz_dT6{4#O5$8mNNK@{0W#yL#q3&m+7^>UMTA!s!>&_I2 zJ6xZm*Sck*=7=_GIq;D*WbjzbUKlH$ett*lnX?E#M-CM;m*$Hx=Wd8+4t-;$FM5e} zs~W`onmD%7H;mOrS<@boD#UBZ6Y)tH%uEcY z%ec1Zx%(Y731wpQ8n=oCTzf^G&DgumwX9`TBQ5;&LcF{>Q&j0}#?>LiiRSl%Ojmsc zQDPeC=aT}5iX1vi!ABZ5rBw7RQkCX4Rgv|hr-+Y56LQ)2v^0E*DlY9z>V`CWI&ls7LEFUf8*&0B(`+TN9}PWwhPG=8wOg(hOfawDN$?-t~S z_GUrm0bEO!AXbihNW;I(mP{r$NlTu1%L+dDk#C#Ek^;d|{OGn!cHYoMnv-EmG{#@X zwl$Ji;in`MO_YSLS2Sh%4uw(={a`x&yDl?7Tu0Rh%p&LCG1~u|v!MO?6a1>5R~+j1 zQL=P)rkWetaPV}ZH0I@b_F&2vs?rcCoObL&irqcPVE;C8*Oqp~YsXS=FDgW(hm+e! z7Ro*(6*G7FCUWckEEcMh${ufuXN4bbNyoe{vcE0^F!A(xlGSw^pK-U!viq$S&&rL2 zUH&cZTX;jQgMUjS?AKyjcC}=}XQRGlgP30ZB-yuqgf=A%7oC%fnd{1NV#DMd=DKkd zU2Rsxx>S_PyflwM?ph>_D~?LGbPSu@d_!9J`VZ^ca~>>CyEEfR2a;WuDD#~(j`~wC z7Po+FO^b^qi|NlXU$+Lavd3c4U^O;fITL!JrfA^4wyMns*_&$$Og-EdJ8fOjq_a^p zRkUHptAEMvI+{z7KekB*yNzT&GreUG{L-o0n!O0t*)B^OwUfwQP9wX{UMExYgGqI< zqinEkFwy2difPm2*dg~+@$bA&@zMr~4K5wTD%1Y3h{Q0K|Me#G{9so-LGOHnN^rz`TNb%fU$N$S(63kdCPg_FIg-8+B{$KJhX(_Tnr(J zV^XA`uC{FWDG}WVxRMd-Va#dz8!^ysJ^7W^$wC4LOXiCPlAQX5Y@$!Lc*vp`k;~>? zYnU$@en=M*?5OzZK@D@td%%v?)JSU6`ry^v$>ib56lQ)!gDjkyg7KD%Wcjz3W6R}5 zSTaVFDXkeH6j@X9G{J?ud~GL|@jkYy`Z)6VEoI>&{)w{L#i+Ql57E{W$Zt89idjbAPU2MA0>nesRkMQD+L zfoh_VS0!wHGD#deDv(UJ4wkK78P2*CtfdAGgpL>*i;@jvF_kqD*Y8)v7F`|ka+Mma z-aVmarORoYb*!XtHAdRlK8}q$+KcTClriCU202mggYQGX;$`btw2r$$)6Rv8jb-|9 z?c)mPY7?(M7Nki$;o#I)0y&!75QqD#4SHaaW{9U zg?3PveZS#)Zw_@k;zGVxq=^USd=Rqxr4R@2R<>9nO-RLdG-PmT!=*8#$M$%FSuWzK zHE!tfQcvdbBtlXT^7|L!c%GW5u8UXs^~svXYVBtcyiJ#rux|bn%@j(!tr^ zz}pRIf7NDbv;RwswTltkP7EV|56oj3^-FoS`PlLZ+ZQO#-YkCIr2xyK-R!ZQ0kn7y zOa9z};`X&eX+Y~BHdEsRE^KjQ8!dKKObejwuSP486)s^Ty;HHT$9Wv=ZY}D*<5`!q zholvDTXI&K08j0;%)+cMiP4J?Gu*yPF|UtH)(gy~L7tz5BYt1lcHKp|a@<<%8L|Q{ zraW){?>=c{-)ic1J5XF~?j@PGH?kd@XCp9YuIQXnA{H7uk}|c~bnD<8cBj=GaXfeX zXWBWOYpNz0x3bCE_w8&|&Lfibt(r6$%w_Y+LZClqn7G2!QBt+)&6=KUCpj-%g`W|p ziRKqyX-Ft#D}Da5CDy)F@6=wz>-&iZ{l?0y&lwP*Ns*L&$z}dKbi{F$OQ`Lychunf zXKCQr4K!5#yq891F)_+MEna)c`$`W_NAm$MVt8^8%bBWJ(ad}7%1Tqj+I8p2-z#Ut zRRd;;olY}ZvxgeSpKTGNwf$LB{~c^(zQ1U&R4$T$!{~am`>#xG@EO@rTZx&`UmAo>GW?B}P$ol;e!mMxJ zBtP1O?tFWJW*kaq2EiH3aCbPXepW1=uI)#*_frs88@&@x9Qs6FNLj4VJ*(pOl4h#W z>c%eI&xic{?xf`7UC2G^Eln7|j5-AMVcBYL$lo=y$&;MpaOfY$riYv-a^8mjzt8C$ zH+{BYzaEMQuf_G?B`oTESMmMo_2}(bOA5&hk~PVX)T=Z}lb&A3v!Cb4@74fJB^zlU zg;cMjz3fHXTSkI*sMD&ea?5by8I^3XRsBEcUBUywFcX#yu;{Ko??3K4smnFVaUfsvE@^; z#HZiXNc!5Rh?k!w_1WUhq<~~;*q{qg4&K3LR;?3a$JLT;Z-0v!u<=?e$dOTVwpTpA z>L=XY6inh5If+g$3&@iPA>yp&U>H_MNuzi_eD_=N(7JM2P;)F6KXI;BW_^+O#}6mx z-@lVphVZV>Ud1fFK3n{4<11-wbLTo56&yQWE56@*nJHfoS=S|lk*;b(8b<}N7nhDn zI;RrZ8-^*w0>g@1WW3)GrkZpTzAbTh z*!3mpUuh#4+EQWR;}?=qi@l_~)lSN+enAceg~{H`S0RbFLs8{n#Ht?OV>-8%AUd&- z_qX&GD?00iU#yX-IZY=&2i3A;TyK!Tvr&6End4YaJQljSGrHgbNjAGG#{AtQE7)w$ zF7z7=zrSCwSGvlQ*S;6CUs5Sa*PraF*}z=S6^Z5@Pg$?9iBuu-qcmaTU9p{x^g7=h zPV(Hxp+~?==+!Mj*U3h*;}t3hS?4FqPWnjqUONN(uQIV9zl)g44)Y9Z6`^3@U#~fB z;jHtRG7o-VKpkcXEM|5QN|Z$L)7kz^ZjqAsX5j_a?OiszvUQT|z|}7-;r>}srk=-= zJgq%l?Q@DbTwcLm#U5csmj)2i`)$m~I7jyTb2yTJ2eYSj zhuE5Z-C4|f8}cVKhrC}BB91{Pn|EcdxJNlc8kCwV+{wsg$CuQS7a`;DC~6WLH7%E< zU-lIX$GsH;11OZ`Hp}+<=!^IE--Xk;TxcvYV)4m#q7*-rxpYZ|^)PtPD}eqvrT>{+oz9U0nHl}(zoRlI$CxO8yZKBje8Q`#tM^0;+Zp6k4a&bU`V&Z(4= zwwk$O;=5WF^IwSU*q#AWk3Gh8T5GN}-EcNl;yKU80cK=?*JklSLKqJAGlr!$WomgX zb$B7-<+1oVj_#gye&7y#Ro^QT5_YcjuFGNKp(Tmlyp!4>rxN-VbHgTm5HJP=K%{Me)|9ZyB zUi{Qx>&x}ff6rbqZv0s>Zp?m06`ruN%_?l!PZ!qnd#w0xXD~I|H&Z+jb|0qw9fgW6 z<7F2#I@nfcb6NZ37o3Mo!so=lY|6nj996Ox|EW)}2&mXDMuwkd`~L>fAv&#eV1Y8G zxNcyDYy#Uq@(pvXF5%tXErM6;IF_t)UFv>H4a3{Il7g@6C6#4Qkg($r?0fYk>tgN` z4>6Yo{I^Z&y0xBKo*52txQ^tS+aay^UP_92`Ed8Pkz~a?wen%Sb3%UKKYYkJE=J71 z3*B3L;CEP86xSRVZ+)51+!IdGl-VDdMb}PxxXPIhTzdyYxn|NcOCN^Yjj-*ezO43q zG3}EUCXQ}-MJB{5!no^FNlkYtiMHi_BFDvuz8gU<|KVJ@t&Zd|q#D&;jqFgMF*~+l zv7~3vD*QSUL-qu7-E`$zY1YAFGF3f981#r|wiP9?HuFt%U96L=a8V-fnR!hNcNtbx zhDp*k&v|0wisfF#PLkwoXe%n{=#rW0u27HhWb^mGz>lK_;)z>rlB>re@xhl{Le<0f z=xRD%mRoyW@KOsWReNuvGz1cC3Lv%@FqBy0^kE%xG!1jNVT+bKmq*6Le8+d+LFu_eX3pW4u z47S_RNEAx9vN(Ot!CQEuPA`tcg;lT$@tgQcHd0pgd@h^(=P-#<`5_it9hBDY%oDnf z0OB>w4W6F_}9T` z`dG2{c{_`IETih@2Ea?RfF(WbD`~2IVeJ{c$yh%Z@y3#D5-+S4LWYE}u%{2`;BobA z|0yE+&XuGb%U5_dD_5pJ(VLukI};u^U!kl|jMUTrmNZZ5Lr2eh!X7>HrcM`!3SUA- zlAtCv;mRg8vAi*a^tLjg58ijs>?2vM)J0vaTeDu4u(^SauUW!+*Vt3_!&7Om^=^oM z{Q_pC-)Ml3`ZXkV1 zL#dxju8XYA5c+nv&vH zd&&M&sJOp8jrq-~B6-I%sO6~TNQP_52(?1Pak_mq{j_+Y9cWcB0?hn`}%T&}HISOy>#o{DM zOFTT@O?;J`EoRIqU@vAL6VnIq8BgZQf^+o6j9dC_zzu)#!<#CxD(4uRNH#H@2;Qry zzZZG^?Wk6*YeoOkaMrKXSXSUx!Sol56Mr*rcE^0XWc$vYU3T_|%*Kq4PFpH$ji6*v zp(!*S*06~Kl101>VPwq|H2f%IIfGV0TAl@m^jt#Dyce%>ZA5^Et=E4_;i$i>kL8_U zOU-@6rnEG6uSdH$UD1Udyj0Bw{HMguEV#tVBNmYH9geJ~d^y#rUXN{^C1mBqp5n^a zm)T}74Hj8Cg30dJN_|3HSY(d5SUbcF;coJxo52)uyK;rF;K6BBo^)iphlawk?LI3z z=_ghViKRNFWulLj_ithcpheVChXIs*@vnyTVr9q!xla-tApdTAb z1}8#_wn|{j2YwdIinlWp-S;%^rM?D-%T_^5>4DSyILR!w3$U6vz@>$+a}WuRZGD=7;3L+0HNhf-$* zRcw7i-M#)}GhSU0g-eGe4K+2m4t5pZ@9iXRoa>sI)Pr^2ZD8j+YT55+CSt*x3F6MX z97}&Zh8!GkBj*2ZuBb|#Bsq3`7E5fSNanezm^|wZy&m>P8o6?m?9i=i;?OzeUVo?a zT+J>kVW(&)SI~%&Z_040yaXVdn$%e^4qZ!-=uS${TCvN@HxThjM2254 zs3q+oL!;xx|0?#$dY>OF?Ua*AMz6+7XQO*dg959lK}b6@uslpQ+uD#g-7W0S2(Gh^ z8qVvQ9~{&)Uot>YYb&a#|y_O*xS^YJL7jUAuCd`cqCPtvB#^=6VJ z>lbKDY##kGSb=AMyUOeP;Y`mZHiPq*t>|Y|0=eAtl|EdmqO`{DpCCf09viT&v`XHUO3oaT__6MaxS9lQfkh)szp$~!_3&W)l`p`7O ziztX-B^-mv&G#d8Fb-?s!jm7k#HX;+D0LorIZ*u=2heg-cg6k1+ok&>+etgyEg z?BK?ePVu+I;Hf$hDAR-klQ+r3H`esRPH8Nl{FJDO>9Lys=2Fj$TCfS+OG5Phna6LZ zz!&QSsIJ?Wkx}4yRqs+z_tM!+*ym0(r!f=d{yfNQr|9yIqx+wb>Eoi)7(7 zhsL1f;xeeyculYRAA%2xCsD-CM@aCFJTXRo&l>p5J^61qMC`v-Q~|o$>7R}Nb#j~qB(E)cc7#&Vy{Tnw!n!_mFJ?$9C-CPY3 z(Xt0o3&_hdlKkW~XPnqR~@t>GegmIADJ$a@|zVt)W!WEx8gn zy{Uj2?GXn)ycY`AeFyPZUUVjZ5xRb`9^GWdkh#SlVmL*B)w$$I{Y^JOdDMNBL=IqY z&#ic;b35uz-HhI!aR)<|{h(ag)J;mOP5$aCO`LY2IZwMX{)CNp=FY z)|I4&wc|+c&K}|ye+G*xl~VzWS>SVhBYE>%fS9~)L)7z3p<-|w`LwVUJ&<*x&yXT* zr+-=F`4)IVnhyzm*9#AKtcTZE>cK<30`yPUqU=&5xL43bEo$Ck_qtb%^4d@=r#%-% z3wV(i`(sIE=We{zlA{eq9mQoQmQ%s5cv?{2{$|YV{ znFFQqJ-4H)t?uCI%V(hMhue52O-e9r@Du6S=S3^;HPYiN&(fRK$y9cL%d7i|kbnN# zOv3yDlqvd=X2WW@ArntROG98@T{W5;BgLBvq81Y|+ zp5JZ)4bcRek~jcv@|-um!J7E2AB1g>S*jNyhHX>=sq(5}RyX?`O5)~hO82SKGQOTF?yNncvsB{M(x~`MeF!Q?55}CAxHi&J=JuG-t}`J*$KNi zKY1i?blyqqXst;D4kCI{%bJEHC1VBo2rMj}g9^Wv@_y_!tjaj!H z#I|8N*3VskDt)OO$GLUiT#AZjJ;efdjOnyrhmg9{a@zXBlBO&iVi!JbClPyWi8g;X zT5PF}{j-JWz6)_+PIlY0$7A>;d!6o`5@h>~r;qxh=YrwoMIg1XgnquZfjsCrNSALo z%g&PWBUG@4Jh;GRf?j&T?hm!daDvM&ua*U!g*`aqX(H~B=wMZwXLGKh7?^4}PI9zH zaq5|II45Mur0~blIn}20ZAAb%<7Uh2+ZDl^J{(8h49&&UB+ZG$+nG4@+X%k*XD>`_ zH)dtx6@c;OBNBaYklVKudafv!2K<^zJGgxEzQ3Eura%1bg3kg3q{PwdL;C3TJn>iGB2nfhTuyyDD$?6Tx|i>TkJoij{rqvxNw%F_31pdH z(gMU!iY50}x{=b4MLbq&fPP(jf?jBjXHCS4*n}TyoQF}Ils%b?j)(}s+?l~h*(MH7 zed?#1KUuR&|6D*XM)OEJm-Jk(xr%CidPb<|7y78%jh$+A3yW=fi@eU6V>M?fYPd6) z8Be@Ryjnh^^0!v>guyV~WGBFrDU5?a9})8Il_ibMIYjuq&yuZ*K0G1+Hgx@4KS*sc zqT%fY*eK{Gsxfqj^Hc7V8*)d<%nUKQZxLZVKZwK5jdf6->50#kh_aIFZ=q{zy(p?M zCPDY2Nz}}0p7UE-q(6TE4haO2hcZr7<4lt6uPA?B(S#Ry$4C>AMZZaQ(Gv)jr1ZA- z1dPsWC-n#Xm@Bi#(YK#Fz!&Xe2HqT_37WECxF&&~XunP3+&SN1sxahOEJo>;_DD{) z7pAw3uu=0?U`K^7&_nfU__K7FT5}3Ul2*XlQ#NGI`=`9uZ=G53yq`3DpEwKgzO>J6 z0Y0q4c@(FZl7prdB-}ffY4KQwUP-QJFuyZZ|6NRD_ot!UO%pcWLHvX&No4!FG%Z zHu9p)k50hZpl-5dB$oVqr%i?5t)L$7#qhRf6LRm^L;9G@xON;JU~YLt7TKt=5vigLn^j1lf7#Zk9+ z(&!^X#5ly1=$u{7Q&=7g#a~0|<)JyOhvfjCp_)jKucD9`e~S!kL$G88S8LgKnN9?V zu*aKS@QkqIWQ~9WD-mCh=bb%614PsQ1tgPQv9r*@?Eij z6{5-1DCHPbXsw1b`~DCcA!jhU@z+-U+6|Oa>6x3_e zf)&+VxVhp|R;+Q58GNrq-Jgb{_nH@ZPq^;JtUZw=bb}Yx{FlJ;6&_%Pg5Hu#^UtE2 z0xMyOp$Tc6JzRYPstBH*K!}EpNX;dLfc@@hC=$NGX(o46j1fX-MsqmzEsU41@@V(fplek5EiQg2hAa* zc2NjcE18i+(__iDB};fsi}P(?#_>_r$m6JbvIzn?hOXkC&nQNshx#q-fosJY$fwSj z9^Cq!CEE6^-GjyCiq$wfwMvHOFOLDu#}edWd>c~I*FuZ^WT|ESAs9=wgz#XF{CS@|iS}7#) zT{pE=I)o!XMdKq|0BDgQF#`ZsVurCs`&~L?gB=5l!#HW}~vWBDB+4*0&*NUQ= zt*?oqMiuQ-E+nrmN!w;v1k$z7p3$6yKcvwufwkT~P7ARuQg&u(UG*X=jkS@6;964R z5C+XH9Q*aC7Zyuk>7Ivw!NtTFUCK*9KBwNIngc>i)TRd1-~Aqb-pM2i?lI8W%AGCt zbDS&t7by5=71J?y4SCTTgt+J-1d7$$YO8ODZGNB8@9HA-FWZ`~dXi5H=PNV$aw*Jr zWg)B_^o@73CXPCW8_|DJQPfct;80xx^ZULdgbIejofTW*{Ov?`k3tL%IL)!z)^N^) zOVKFT!yRdNZe+f`Urz5mc@N5~Oqu-3URJ_J71?q%0@ad4 z**FTW%{s?(eiH{{9%opW@M(ZiD(l=)1?gvX*;$1mh#KgUkG)&KysQTcbL`&MwpKWF zG#p!8ZeX`=Fh^NNgevFj0N=DY@YlOdExAtVc~Xb6RcnaXdM+Ej(T@gH52FcXE>n>o z$Lpm>>Ac^^A>u8^f#CWIFFq>JgWS3AGzrdsK6(HpU5`LHLmn`DEE@do+#|{hYVg7f z3)qljCs-95EndI&DBWrHjko;SUEt%G7W^-Y&<92sOI3Byf<51{gSaYe)18L2ltfVd zN*kKDJ{nIeIty(+SJ;_~;xugaEZXb+o}QEnM9TFIC?s$JJ+x4pnI`Cu`n!&!l;dkr zzMC#m`TCUH>+@y|D)?x)b}^L}e1u+H)u)lJ5~S#`H#wt_!sQd9QH7)f6W$AKqE9b;d5Tg(-=a|>LQ`Mb7d_YI*NlL}MkvNChJU>2zCM5Hq z_gWB)O#I-vy!5BqpDd}OjyJmSay62Deujps1jD#(5VOH%4t^jk51rF)vr{FVu1%tPvUuiXzyuCt#Zw$cTfg7;vo-iwwy_MI~Q^pi59cFCCr*OSt5m2-1Bzr2= zX{$Jo>T-UiIhkVF#{H;UV?S${$M%(0~K440tSLh(deiFx#zc=bw9Qg3np!(j^4Jk zsVM{1eGEps_q5Qx8FuLU-V10!uM~~>n#j(&{|F0yGGRSFkHLG>7AiRTlk<7`^L|8m zQS*$g^wQ#Le0f&hMsr?L34oT}y8qRV9bRe5iQ&b|&Jj z5f=J<56C3vPZ_<<+NfNDVb+DcoG8jGv-txtSNYM})0LnZ(+HPiE`b`yJ<%~;1L2bo zXldS7BA+3{oHef{=RN1ZzogsbTIN|&QW;6b;Uw_ppP-E^RGIXg0FpJRgHGtbrw2>c zV27e~(vgx$U40*;z=%}d)KdfCow$=kn#M7npOP%FMfmPv>l*En-8E|i<2n3;~iaHp~?zvwjssM z$=F2T1Ly5JO4B#&;swP_rI+`3p^r}~7z-NH_>dY@<)6X|m^)Fv-3Fjx{1i+tih_E? zXS68n9F3dhf*KF@!&89;G%{q8bXF{7l|D*=wX7W)%h|+SjWDBKC6@H<4SqBOdy>az z=fJ#<`Mh

tSheI+1=cMs%clSV5y?Rw5=Bo|$}yI7S{iv@WoL7rIE6`zBA9o!G=idxfez1#~5oJd7$PDV;_Y1;zIl($AiUfV>e@uszHb}@+K=UODT7IF94jEi$PPO}U4(1UQ&1Ind zNw(?HNLDZNawg`A`z1srb4=cJhYoh zEVG`{XGWBj5wWNIs*|YXS~zW){eyRNUL(3^=gGV(8U;R(gA%E8aAIJbu2Yg>tp?w) z>uoaVnpsgu*W?j6eUV@n|2l$qzWD*2oWQit>?#TNLx& zK2xY|Z)ImXC1A(PcWhU^cR{9#TsJ`TCMy}Eh79d76z)95I_Y=OWQX6_E!T}a4v{7C z4Gtuz)e3$uXn-T36SVnp6n!Ki08x4_#JW0^8h;c;2MP*6!!;QCwY%ua5&)N}q3~oR zf+nZ!CSR@#@Y+vqBz!S9QKs=U=IXX~a5S?ZTCWADyS_hSRWV!=yG##oTs+OwSBb#7 zRj_sLS~@>_J8R~32mL!^&z_v4LeCVt0zb86tnSPq33FVb)jt*+KS+nwaZ9kRX9{)y zECS_yCB%7j4oq3y%saVyBmH$#iDb3b(PrLkkRy!E1Ai7tc2@FUTRbNsFJI7^%I{$6 z=tml}`Z6?b{ljV}U81Q^Z0QY$K;#vElTlyb2vhF9;Pq{3fV=OT!1C&8$hTh1b9~_s zQU245t}3{o{e?EbM0>#>TaHyb^M8&cQKGO+n^mq-r6cYuscu>mY96+s23MAn^N8av ziVR@!m;)#*n&V^5?xCjVqG5S(HCa+;f~*YxqZ_Td;Ahl2T9BOu$t4O<6LktR&1H1E zz*gq|le=WraUS5$EOl^x3Q4_-X}8oR8oJ>!%3%VFjt#{leqJswC0`Lr^`7B}aXG+M z1bLO8x3lIY4YWP!ELw8klFAntgIsPU4fXCM$#3%!nH^42yp8C^F(s^87fZA2Cb(Rw z1Jxk}Yi|`~fz?HS2RS~AwL5xgn@9J~)&*T}Z`*EO37x*%nu=^$#tLP4qB*L6$gL%V ztmyTRHX*mT_jVHt0&EyM-h7Ga>WF6|t?uxwxEyhJi#l!F<3#PQ-2e>-LXyPRQQ5&! z&TG>FTZ#^`iUPA?k|xpjuelDTqz?+%x)m8bR!8x@mrzk=C|Q}8ffD@M>7yOp zu)gd~9wo*j>LO>=Y|lscy-=gdoom>D%N=ICz zLxpeV((6As?x$lnO+H&lJ=H=9pIBy*zdLIyHQ`TVU;iQo6D#RCo(ajgltTsn6@g06 zT{vKzj;6ZIr{23Sd{!`d{rAaW&}Q!Z&xM++ z++<~p)A71-8P-?50Xu#?z?7fbO#aGbQFe7HjA(Si&E9Q{$p;p`KQ$$+RwcW6cOV=X zF`@oB|Di83GoeG!0+b)Fp^v0AAhlM6=-ggUhJU-F%$1Ww{qJ><<@Vm~{`Jz5o296B z$$5fw20--cQyjScE@(HjkX|`0Fe+ck6VY1FOKx?9QsLQXy;nKbFHNUX@@LR~V>`4^ zNs{+@y$}wpaUxH@1fr+K|~TvBdbSFTG-xNgs20?VT;jI4!gtzke^o)4$9|Wc=&MrSHP1 zTYG?JKH3YFF4jEf(H~@FKV}v7@X_^VUWCWiGgzQHn6I-6Esgj7uq9>sPKMUdgZq{$KcH&Cgazsde9=eM9K-B z=&z@@yXTXL4Ovt-^Ag0(%BEAlEv7*pF2r@MA8|d}1GQub+s%DNQeSR`;22S2<(h(L zMyep2b`RJSd!78+#IPZq7a;EyAN2P0VyALNs@uWwW=cdsX@Lh)S1?AiT^zyI#E%L6 z%!dX4hU0~;($v*U5z5p{xidaP6lD=n6tyvqlC%xvLWL@fDE?swWG-W`;S9)d2_W_R zoMD}AE${En)ig|SD_yrYfGJou8zYy!bPDOha_6PM-EcQg^Iajy%-+MQN|@94I&L)m zI`@(frBQFf2Uhi4FbOr6EOL_JoFIJ}c)!yYK!d*6muJJepDU#iZpN&$-w(3x)_W8p zd7US`TOB)WD5u%m7sAHnZ`dfoQdYMj39T^s!&@t!fwZGO@Iao>m$%~C!2Ry5SHx6Q zCsKruoLd4YuK|B+Bkqzxs>;$dszgMajGBqM3XNaZl<n6#fE??%{;p6n+XJ-g-o6WOmZ=*hm8?mj|Sz`Li2}`;N z(-mCLYT1)2UY%$UA!(UZZC(x1`>YMumsGPF8~BOrroAj*qg_!uakq7ru7+ssvs5kl z8=Yg%aVusYgEO7~@B#x$Z9gw0{$5|meV|AyYdfB0nSqT1Z-aXK8!Y!{lwGuXF&z5T zLMp+D`p=9e%|6nwper2F&B|br?F-X9?$C#U9;|5Q2Hv=r09DuAM3wbo;M|v7;`$?y z8YIYaoSidt>cB^K)-`1m6c&h@FPM|t3-}>z1?PA-FGiP+9H2MzLh1PqAsSHl6D2Rm zgtaa6=#1tFXpyjFr|62}mx-OQ(ISa%3J9Se77;M|J3<0BucJ1*&(n@&2{bJ90WI3} z9nu#GkN_uVTEySYB;h=ARX>yGapy8={~bYA9oDD3sv)8zDn#P9vFBna5!T5}~%&63F5u z`5;^zg#6WJa2=Hzx-9V+XufEnKYDr?hlNRGz2YsH%kPSFJ}jg*+hnLourcfJ)5ofB z%ECznO2|xRh^d`HK+xkbD>42b)&I;#@u(iF-sukS^DWqIKk9hPd;BT?S$Rfa`3_9p z^s;>95NN#XA@L##>~lM1NDc{vZP})%PAixOc#47sk%8(p4XotJRnXegLg&7ZrGMhM z{T7cLG7&ok`IH5dImyRqfvOOlTzHxqv^CI!mZEg%({!>gTM20lZAb6=U0JsYeabgj zL+{5X!l8IWcI(M6;QTKZg(erl4n-$o@!|}9Tj-6oW1eH3DWTZQ;X9QuenU6e`!T(R zdFZlbIm%pMh_>-vBeSiPSt;Fa5Yc)?#>`u2cKKqGd*%+6e_n)^dLKt0Uh{Zyf`7;! z=Py_{+Yka~tFgM_foR7*35Inr2B$~vtYAnfm7n8>SDg8Yt;BqI1(rVK*NqP-SK~3M z3pvAFzYk+?@#RygKks4Ppb6?x>0vedXHmc2Z$!boh{xIQ;70xp^j0?yW$ekN zIzr+2oT3Vye|;&Os+mI%H~wW$T=hhuz8o_~;0oAWy+AkrS52H(`Z7)0hsaA07x=We z3DxZofgIDdOq{thGx*~ZbNcIRJTIq_J}9(+{)cH0V?G_e<3#GBE=x5vm3b+jw^BE& zZ1}>MVV&M*GyB2QyiKg+_)d^=X|D{ zCR35*>k1+wP(w{NE0N@eqx8RZN*rfafpoWuVEx&9soCPkWb(vq(&WR9BdKK&YjhA? zL|J-byo62SKgGIb%w!UGW}%49nV>W64_%chL~psgVD(h&iQ0Kv7%p$Yfu9}OrFnDF z)%zRC>-P%8=SnAt=Gp@bkzj+L@kDv*HLkd$b%Zr$v(a`=ZfP$2vM*CBpJc<Lc{x-;Ydgg z87gw6i7bIj(p-MWuMtn}?1PX+h~_-zyzLri5E9tN+-%xMrQf~dwL7p(ZU(`d3LFWm z(@k1E?~t~@2FBaj1+D+j0p#B~f#}M!FlU=E<&Qneu_U^vu;&)6BYKIbsY`)L&oA4A zU>1_ExwBS|`yjnclNAuig7-r<^uiTSUWr%-T-{oMGKGflk)I9px9(5bWmtmd;| zi0cj~f6D}rbD9IyI(P@&zZndcu?Kjq7Z}=C!L0?%YFYh46SUvbmrMgobn0d&eW-5^ zq=BTs*6(atbnjrm~j%C+V)=*TA(^kq9Jel21pY$o+*UxO0}fqi`Yb<*{RwZ|-JZ?fyP`JAM&7e{0N2RT6 zbIjHxN&&DfHc9itjiHOJWq5zoj>IP z4(w{9Z4xo4dd^kUrm~HB)GNSB>}ZGA0cWVO+zq(SPGy?$G`e<56qymehm@6OPy_i^ z>~ZfqyJChddu^rFkdB>y8PAqcSZ(x~7sL$EgvuX?KQD@;TCU(6hh-ppIp0>HFPSdXm`4J9kCBKw zR`ir9mwU0W#4?Imtm6D$I^t-7^v?&A>(z~jU2n;%PQ=0OgRYE=Gz(vUM$i%&ADYq2 zF}0;Sn2c-ALnxpT@;~B1OJ87}f4CtbM>+R&13m$mVTuG>X+VZlDLLJl+%j^JGGD900r1vN|txOL!?V z{nk(UgDP2(kzdrIwZ-=L<4E%BkvS{eD*!P%Wo#6`Erex$!pXO0&>6YPjL?7CL4u?zF|dYnbQ3^UwE0vTp;wxCa!C@hAB==Kpmy4d6~~`!KuU+ z)xT5*$A~!2<=G6YZp>z?EKA`Cm(AF-wgE+texverjYtaV(#W+lvCOkPkaK)X9*Q3V z*5o+IM|YzW*7Cex)&$-Z8&S=*?)07fUK-P<4R=%oA+6g3h541zJ86rHKL2$90f!Sb zF=a0^^*+aRsMnxvWxDWaBP#e{$z}7Duc5m6d=TZXiN;0-u4Bgq6O~#K{ahWC=cHX8o zIOr<{&v$b^vVgZVf1fyc={kgLzicKQ&u!7{75Z$Pj51sjQl!083LqN$QID_|^4Zu7 zeX-3XdDw%7dnQmV$92d+LmSrENnq6qPx|PyBXP%aDEQPFV&N4_biP{A0-1&M%g%ai z;&mI#_y&RK+YL;a%5i$Ay$ZSd-{-B2=Qw-Yx~PS7KTS(Yq#v7uXmv{wQ`PYo*#-aM zot_xrS(SRxC4Wblpx{uHJAZ(uktW6%c<@27nH3e-r_XE3HSA&TwSIkxU=3C` zl2td`@TO^*WS4>_xqUvB&KsJb`c92ht22v$O+Sql9-xt&LrOX79(nb7T~Vs+9dd4_ z2R?WGJtM!Wjn&{A#aY{VU|_S4E{m+C{E>}}ka7tsKU6{A+K;hI(v|VD6Ix_tNdycZ z3&TpSc66qCCDF3BC1plG=(W2Y5fwgO97I=Oox%?lbMUt}{V|I%LsR8F9AZvA(m zat3Stu9l)%^GI)|85`1(O+_`I)2SgzWM_INar)uN?pBx&If^Xld0s=xya(Y4*CVx9P{kB(mu31y zs_AXZD&i`qf!;~nW*00whpIPN5v$MfXvc?Tbnl4>rrtP|mz(B;Qt!Fa&)exDCV;A8#GYeVs9``OQj!wC$M@q3((_r%fU@Di&*8wAeyk0M&!dfY_45E9pJ)XiAKw)2F12Lk`fbOL9@@5N-+|rS@Beqx{l6#w-{VSmKED6m|92BP z#{Jm%zh}sD_4ofhV#9Fx|2_WS?f>t0thCLTiBTFyiyw2Y8$UB!o{T+;Nm9k~W6sE6 z>nPf^-w#h+Y+@UBMxW_wk-}PILQHOL7c#xufOWpdAp50F$Vp)r)^Xp14Ghwl;WKtv z+h~IGqU9iAw|?6nGFPzvWgRB_KUF4Ua)8-l_YVme=`nXk?_up#Cy?sI34}#CUP+)d z(g;;&0;MlwtxP`@cvGBFTe1kNehOg9P6#l*om;T}CTBb|x(h9^ZR6a5^Rce8Bi0vQ zkM*Bj!`dTec!vE>Y#>pNb=n27zC#zDc_$c8>%WYrAGwcb{+qx`VUD)fjD>9D(mb$2 z>hWiPvpD|$j1sJr`vO{{?U;^J9=07K!_Xvs4%uJK!3Kw1pjG)35_@FK{5IwIbN*cZ zV`M)xSRDd=y9o3$Mg-a{nm}=e3<_Mf16obbgWF-w>C&(r)*F3?J)<#@zid0~bFhZ> zfd?S%cOk5FeF$T%$3a#7H8_Nqz#rMgFvCS0Hm*Gk!$z06v27GU_Z&=kZiR6z&b4Ow z3w}*n!O)v@EO;jYCb{#u(W^yR(rzW1ZIq6#9co6-ZOfR{Xe)HVpCF$LPtfZ7F=)fe zL}Yf_3UV^!mFcm`-4EzJJBjQr{f8xdr@^1Y^(a`{2Fr@OV(nHDxWRI)m9N{e?pPjNdv+0BH2sD( z)XqX;!V`3EpAqUjYY6re!H{z+7`?2N0ka2pA*0U){bv2Z#e;J@W%IC#MK=n2au|MY z564OgHfZrNZy5P@2`jC&L>Kvupz~TBRKHDzCAT(1@oN_-FByhSoOhe3JcW<``QRuU z1*BmkHarl7W>qCZdgfm|C$W%u+qoE$T$Qom@eAloXCvH~y@%qrZN&uO;Rigy0e^u49T-)I=eq^a`G`>MPbhd<9Oe48;9cQ`tiR51w<7^dRvDrF`}RPx_z5hXql9H&Ys0|DH}JNUV;1lG1YKVPp-wIW zPu-OPqtDafb@6(LlA~BEdp3GAWj9>fbrH*L?m<}vWe}BD~o46k>fanJ`e+lnvT^`x(iAKdABl35=U_E8RV+C;fzAwNU^R{ZzB|9TXrdE| zkD+~ffQ|1Q=En}Mfo8wb^| zoZtMJF4mgb0`qqAJFfA&w9$=j=;^AI0|&U9v01RaMS-hMb-=8q&# z$Afko=STcu#l+Vi0Mn>6ELgsVc{IxL~zkH zyV4Nr#Eig@Sq!R|8D!cxHumt0?`Y^#CnML-2j7#*QD3?-GX2_ub!Qxa=A!{vcl$}K zr?(Bd=Sy)OFV1l&?+Z=qE3u&gH-8dP#!@vNSg!UQma`DV;#!hezBmx8rk=*)f*iB` z_8@YyzX$@R3!!DnQWOIcz?VG@8ZVk7-C6fQAtwSF%)?=l^VvLlEe;JlEBJLV4;}@@ zLCa7Z=2N=}1zkSy?lR}3_F96aim$-<*;FikhVxtv&x5hSlUPDo7t2hOho5JHu>$`X z`d$%%&bK_o)7EF8iP$`p^6e^~Rw{t{S9Kz5cNr|6?#THk&vLH9SS(ch2rH)Vz>3!4 zSbA#*R+2Qr3QDqAT2mInOUt2i9_K(f9tJ^@y3m%%{SBeqyt+^jeq1WT+8+);{k;O1 z806ezC-mThZ3&EoEy9{y-tmKX4;HFR1e$}f@|ZUYd#MGb?LAnj`xVOh69W}0omk~h z3tIa;5~^hTVB%mpde5GPhIw~j@_P$)L;80L)Dvg*f3)ol>gfS z<##o)j<^q$`ozLJ&dqe@xHkyP?}hlKPr*mx2&nIggB$BEL4Y&I?z9_%lo{KhvicB~ zD>?_$KKes3+Kd%FUxB*fHK>dA#ER}OL8bC1o;CCjPkoRBA6k>J?j8@U9KIYHyK9&w z8(FOQRSiC58DiP9=kT->PvCy4BUUIrkEd=t4XF+FSnie&R(Gt0hjkrj^RIp^DD@u} ziAz9Ch$nZwzKw;O`_N6JxtzOgB^FXVfo_I2z(RQ~EOYn=digF87KmkI=?tzf{$(8I zmi@)@Z;e5DO9W^)M%%{z5CX$95}>D3#@tg$1(jc~L99&=8=n6Mn{~yo+Jz1*%yG*P z~1oxo{9n=kjA&>or)CO@$XnBC*5~Ei7KO z8_M?H!*XMXxD4n+sF{d_9wkZS_+Kpq$@oCq!rf^1?JBsC+6RNyN0AX)3m4Z}Lv?5e zdZDt`HX)$^UfL<3{C!DGfp9l`m~M;OHajx^{XUMT&e8?Ova?!F2Z*-!?IxEZu)B*CP(3OEmzqbHW9uz2$XY;aqR zZW`KQ>8nYw-BtpX$1cEjAms?$uYJtZ289F~B(>nE|;v-4Oo-Uw<}Mq$aw-B_fu7TT&Nv6!PF zd^Eev%@eBOAM+eKG^4PP(+e!HV-2(hEyV(Q7hrI~VOV8WjwR(SQS~DsaJ)L93X)1Tg-83=V&R_kw!=JqNME}i%Uub9 z7xuHDr>zys)aL@>`t8I1lpEs|foHlOI&^2i&Ex%8`v`%Z^av!FDqx+em*DL`1oxe} zaYB0%)@R0Iy;&X5IVT3zHQV9o`FEjj-yhh+ecz_1MMB5OF>qL51494)B6^Jv^M&}J zA6;Kj$JcEzE>?@WV*5~%_#hTUt01oP9J+c=A5SsnJTErSP-%q?mW(+DSFV_$tLv^{ z`P}6&{7wOD>gZtI5RCbbh+xfpMXYo40t`S9R`1}(*KtLt*u%NoN=vXhKOfM(omhAL zE7p258%i_p6?N?5!_&;SL(?TGtbB6=R$jn)>?=8E$81}y_UspYGTenVQ-ZN_Qydh@ zt%nzgA4>?SL(%hosJt-+%bdRm^yw*hmVX~hOx}Q(x>_hG#R;qMZ-aN{%aL!6Ggh&@ z2hTsmp$iNCV9jQ8JoPGr!W`P*&3rp7>&TCsHynZTNiVFj;RHG|>m?3tj>GdNJc}+K5Gxsv*B&0XAHyj`@uD zLE*{=%-hFhc*fRL2;)4p?<{X&ohO~Zb=;s)yq5Dg9E5O(El{KI6bc?p!mi&>QSGBf zD5XDPzls@p)^HmhH~j{mXEmr})hI|rbDvFZSs1flj(&SIVVSXGFgEcR{n1{BMb@Ok zzqq5&FKLdFH*SR1Wotzn0>&POdkV=?6(*SgW`enKV!43T zSZHhsQ|ovJ%RLIgQu$@JE^Fsv`KGx@RXPp6&Q8I68#f}k+DaG@jfF97J0_6Zi){VL ztwEhCK)Ng$YwqBjd_&Tpcf=U0n~h;n^=1$Z492R8mRNFG71Z1vgrxHGSYn_Z8jnT6 z%_A4Egz6utxKl)SvHb5x&=%A>&5a1U)pA0jbNIaOh7qk36tjA&RiFZ1p`w_n|r%T8A;_7 z5YIl2zR#Ek&4j?6ieM0QUJUhr#o$5YGZ2~O0PQi)xN|Xc_?t0_wdB7-vEC;55i*3; zg^oe#QVsZ*!p*b7y5QB_4lo8`to{B4>dU?hb_I%9BQzHMKZ>q9p6a&^+cL99$`&c@ zMb2~GmBvq{tsRw?ww9J;6&azT%pxPHltMV?(4v9RP!g4>kVHwv`@H}8oIm({eb4jU z_kG>hXwJC=(*9@3XR#4>u_1beQFS>aK8m`q}9?5t{*^DqVzV@|QT zt_|#S^LQA0k7J4*qw%{k4`m0Rpi?3rzZLsXE!%?LPePKa;B(xn^XTX~#_GECN%O8E zB7V2BXBoLXm*x-7A6~<_?2EKsPQ{7%MVR;aFU#4o2gT2?V48Y86Kfwu?rb?gZX?Sm z9fe2YT>L82Bo$3f(&qluEpn4dMeQ@`F1E+7qiv+Zd#U~br&vi6$2cr|aJSZzXYKtV z_26#gb$PO`txHHZ`3~;h<(l(38c@8qn>0DE=>TN(pz%{?fb-}y3LEvgbrxAz;&auD@bvHJ`OA;GWXv?$~oJxsr5Wrtyfl5o9BH9`Anig{Txq`0q2+-2d0qxe@Ucs?;V*h z8btEwBK>@KGAMjUit%q)){|RgV6Fm3*UijlVK@y8)y7Pd53J2f04t9<`Y?|yw zJn`asKWl3?)#oVgPU>RsX%EvdP2|s43$2Y8$@Ii_lIO2*-%=%>U+YcMGIrRfB2N}` z7LwewQE<&_W6c*iH!6M;%X{1c#r?KC3wRHEvR};JKR87ik1n&b>$6GH)Qyx&6L7WI zmE_(vkz&yWTpw_oB$GTy}+M7AZ_PfEREQVkJGYAYLOyp=G&lYdJ+Cq#^RZ)D_+U*JH>7JflhxFFIFUXUR*7X~#^3GC0ah3rzMHHZtw8)4Ogr0oF6su1@t=>NA9iG_(~OE? z67a3tLY7(+Q1L_qAqgwUBw#u2Iq>%#au*5XrQoH}LdAI=8+-m2oQe*x%7Dde^S|p@c=R@tA0%SdvYqhP6$^$;=wYlY z1}79UnUeWQHr}QRyZHN1Hs8w{M~-F*cZ;BD)XV;!-p@+B8=<*!I=fxFgr!`JViC^G zq|{eJL(Yw7u06^mADKc!-Z-(-A0GTV@)G*=;umOFRa4HtVWj7 zag$V|NFBwO##4imaB%1g^-IdTiCXh9*J_U)~OC+&#F?-XS2=k(g=v{Q4{Y*|`%WQ(6 zv_Xh8Wp!q8>K&AYPKZl2V0#sPSkot0q=}x9#mSZI(fba_+1T-C6|;ohMeN^t#r$w( z3HJHIK1dILfC;kAJO^MWne1Bwr$?cr8#;hYd;}Qk?nj!{<9W7P4oY%TB1T;)RsvXy%g@$AIzdl^v zI~5fjrmW=+&##fbj|T=b*^6013qf!C8~U=`2ksa_}| z!)F^%9U_ZLKLMG^tia=ne3YIxCBr>~@Oo`K^sh72UVg|9DRBJ*@8z2F^VxyaeC~;r zgjc>cEXiDwR1FkJ^Tl8U3>!^qb>*bp^c$xfpHV+=Y0{bf00F1A;^DP4QZAc8gRK|h zp8rTvd|FOJ3lwmF#uU;hzrbs31r1m}9_e#jQFV;ZBKLxjELVpoH3p&tcL>`{SJ}ulLXO8M`(N4GTKSDDInJoWWnVX^01V z=Ge=AZgylFY*pC>%w{c*KC)w%d)Ox#H}=G2FqxR{fcRVww%hI`134Xt`etG4pLt}u z!Uazve`3d{`6$0*jDi^raNAyvn)?qSEcL*yz)^S{-iwEVGOTj4Bw3!hw6bv$ey)$< z8Fj5}Mcz-6Trh~FLPA;8rwaT?KE%(+WwO{hm{o2IqQNuHkY#`F4>gz1kxP`whTfAs?JcEw~UrGS(xga}f2@R3o{Ekyul}d-&ZA#P1qx zdd%_DrCX@qoY7dgVJjqgEqMzyGE8Rv7r|F24U(Jn z0+Cr41-mDNlH}EUh&oy-Xx?*;WZygBxaV;ecMU$F>N*UvXu*TiR%V?4APaKh3Ouax)olM4;@3Az5_UVBLghR7|)- z=1OfiIQt-;FaB$V7UK41TJeK-EswN9dnjFeCUQlJm+ikt}ym7pLAC-XEyxXK}lEv)o()kK}LvP>@$12R{>_Pa#xkxVI`g5ZJn9X^-(Lu5#(>out-poOoMij~M zXBv0Eg^aSUkV@-1sD8^QN=8E(SWt$Xi`|#Mv5xc=s$Bd?nE?^^rp+CaW5ZtR`R`_=AZ0g`)sjMNNf zkU?A`!v2njzKTfsDoHVP&0017cs>CtVuHRyTOy zj~c&wZ!Txv4^7e4eBRzn;3?>7@nndDu+6HXWjlw7Hn|L=Q3A3D!qH#$%JG96VXFTtq z@%|4Mb~F?*A=db|eFZZf7QlTx$Kd03lSzRivtfQsk*qFGCCgM>3^M5!AWJL|b|_(B z_;cRJX0tDqD>2Vw3|9Wz%z7OSv8Zn-rvHjy5C8B$`{D#F&Adi~O`qf3A?_`@PlJqW z%y9O5KdciDrNP-@xRm^ba}2^zS6c~J?#C1IbP*bZl(Bt{9?MuV5RGbk;P}^(oqSeE z5|bxm#yti6^wdP(lI>Wn?TkNeQ%HvAXWQrTOym_q`7S95io6$UDfx;#?pbVf@ejWA zw&HP^In>UcM@#cWM6LaYkn=5UMzk`bTGZjYYaUaVsz5}v3j&*BSm?%BbVkat4tI`4 zY_>%Q&w-O(DTVT7arhj3n|(|4g=nBJ+q1VD+Sg*SV7WgVr+6CDTR4Ah<~|nX_Z`~1 z7Giy$i1&S=@XTt&ldqB_v#b?v4;690uT zf%(jbWKmg<_an|?jMY%Gj=hQM&@~ub??~nzd+>CFF$;mZxy7^%!cOKdfczE!Hs>Nc=nq-o~E5e!bu@?4~g(p zZY)WJtw-F?31snHi)0+v;6l}2GI2>GsbTtv_^-KeSH76k@($sm)@3qO%Hf=Hp1b1J zLWVJ$No(K-#F(9@0dt;^X~``Vr|{YoG?XkZm!nX`=lc~tG`PkXMXff}zuScdTFS#s zsy}YLyg`QV%6PBMGjtm^laVdYt8UUjUZD;yWd}0jQ)+lFW=JLpZ*fejn2aQO4f31?kBiA<8Y0G{fMr;@I6&ZWbq=1k0blRPG}Tkp!Ycx-RGG<2QOii^$gtq+l*_01u(t04nmG;$NvgNZk7m_n+cZ^ zC*n@z3*34-7MGj)a9gbhnWuQ}W|so4r;lP$DQ(Q5#RS*p*s{4}wy{Mo0=Rc}KD#o@ znT1ZNM{mzzL=2cl8dA&fclQ;9eRU<>rpf4PI)~s33rO{w9O*e8LZR{!=HSpudaFy2 zb7QyQ)i`|`IIflN?rt!9lQ_~zG{d0l{SjHXhICRIFk=4}#14H+2A)EghFnE($_WVh z%rj`)IQD)(4EN8kz&NoDYnDkxp7jc7ajz!X&96{i{T$9YN!0J@HPl#}VZ-V~QsDai z>a&+X&k{*-cnI4l4o0AXBCLlMF(Wz)|FJtTFACkwvec7jn$Ke9b7zo@$097V?qRF^)Jbl| z57_Ql&lJ9g;%sv|QpcrIKhaWz$YvpZzB|eOXNNOecH`>qH>7gmDPp}Q1GS5x)+>i| z|Gk0T^^fdF)mEgY?81L#7tmjK2;T?GVeFAxIJ;#EDfY{RCA1LXQ9*KoXpHY#jf;EI z$vP$r+0*us`ScNjjIGAVGVLRim{j{`le|%oD??V>6biJCo`T=o-DFW+F4)+Q=PK|z zWienC4Kp*vp>NUo%AOJ=A36-juBsr;pq2Y^jODYYH_n&Fl1$?a1P`pixnrdy`HIi$ zzCWQGa)4ysDI$AgC8R&@!LQcU$PMU)TCOHLHz`^$YK#hUrmC~cdmi%IJOI~y44Io3 z$ojV=3j1v(;}w1EXmK)vO4pKMffn=A{RuC{wVbcx&9*7~;nbBuf=k;2$#OR5v>a$) z>Z4o8G=BlU>ZvkC>stG!>)vQ};P;xdJ&cFFBMsBfWOk_!!$vfd#?^c>dUOFwUM|$1 z*JRzu7(t(^JK8UGVwgmypt2wYKPyvt7RG)yH<@Dw6L@C4t%#LBUPbaRbjkcb8TRrJ zNU~O$EYH7Y7qdjv&xCOL(*cb4IZ8vkCn2z_9&{pxtd{G3xmp5beg?{ zS9J%*jNOjkuKw5=qXM;C7qO&yyr6uU3@JqhVCtIHf;TVfNcGb=xa|+J|1Q@}s-_IN zQ;cD3*9~VLTGOzlU>vh(FfXZb#_pE*f(GBUY$tA(-tU(|&8=9w3Boz-|`w z@D=tLJb+(1_itk&9I7~hux}15+d>-q%DZuRUo(DZykUp#KgZ->e)!d~kzG~wgF}5f z+Gn}51vA?*r)G=b@X5u9S(S{lRbfoxnHnM!Wq7{bCbHh8!SxREi1lw3jNSBv-HKj{ z*>^WFRgb0YdfF4ra?+-ucFHWlqzn`D`U%#y=R)eMGfui>&`?Qd_NHhxf~-vJ4Rn>E zk$MDv%6E7+a5+Z3Uxn1L-S{4`6BFO9L~@S=8c*%TfSpT_+%HO?JKqQKduv$7$~A(Y zhNltx=pK8c=P8)TP&H!_9e^+>v~m7VyzjE&!%fHNJ7nOm_P($rTXN%RW)JQb06+#d0j`?3DbbY$*b zi}NOF@Q(aSN>Oe&e`)}V9IZ%kU@*dJ-0@)73zDCkjf<;nai7ifThXwFOcyEdU9H5R$&pCQa$1$X!v zC_LK(Ux^-+gxDc#)>E)E##nt{jN5M-Fj;|rFZZ8B4&K5^EfI5nyR(4i;mDJigXsw0uI+9d|oyDFdzcASNBdN9K!1rY_ENn;f`=8*YngC1l zE$pB2C8+W{$neEy_9m~4bvsYPpcf)21~4d&7=$q|7m$@nA;d#lpxL#LOs5?~(YXK& z@IG6pTt<99dlCw94y0=lg@acMu}gI*=}3>nUJAsr=;fpxDuoS)@^EC00J0Z$a~ItG z$hmq6dgmUHyu}ZQY&o~*=v$I#ipGtRZ^_Ef0<%X?Mb+|g0<%7EIG*{2#}3IHBaFei zzA>os{|}M+btqMeL6VFIV(WIIbfp-VH(4O)ST@St{vcg?7%BftMwY(|Qag=EWzRdL zOen&YvqDn&)PmeLFJuL_quo^o$<2;frur8jM{u0h{WVrBzKo7tJ-DXPAG4*;3fj#& zNak%dzBt~p@0+!ggCT z3+88!M2tck-%s`CT)1-((3q z3=bmBMn?pHmqzgibsDHX7*RLH=z3quL?a#{xal9-tNqx`cd|HRQ%4f@((J*2I4CWd zOlEJ-<4W@pm`E=p)4F)125*H@D92B$4R9?-0h*F}XxP(5riTu(-mii97;=p)UhIU@ z{5HH&=lTJqPPTbgIex5C#!YbwVh2em4wFsB9Yp1m82yN(P%pzu@C2yV*M2~ zDJ3J-<^=Znas7j)EN-f<$8McKvUW;;V_x# zw8FOTm;LbxZKQv4HB7E~V9<%j2#ar_{)_rxth^fMyW>e^U>W+KIgP-Y*`zdf5z7`& zCn>KMRDKxF9$y$nvg6fJ>hptzB>R(`{6;*NFGS;48$7>#i{*bii_gP;pkCjEReCJJ z=i2LdsW+U3ymd#${yq52eJ_pYuR!LCclh?h9m=ZbkS8%)54be*<(7+`e@6G#)sL@>0;qjI853G>9^BN7BACJrO zr%~YJ4{=#5GSfSd^*$H(Z+*wj@m{z$eJSn^&gQ-qk_gK^g4V6)aMo28p;I2>SM4(R zg+D-e>Rf!68jY!M_mhcU5k9w9VECy1WU`%SR!p4-)>c5K$1Knlvjqt@`7|)vh3y#S zhqzJNq&H_h8>&AH8M8U2b<~_43Al}$7ZsSqa~(A9E=A$ZZZ_!hW_;cD2w57j0#kMo zUyQb6j4PjCesGW7(z!6$bP4(fkC8dW5B4kcU_E&gQuFFDEB6vIg?zr2a>V3WRk+3Z z02-njSRLw$^r=~-VS5I?Q`PZ4o_l}u-B!T!w|KLg>tg&35ppXUpKeYh{Vf(aQ*Z@0 z%JyUIrJacUFdD+zB#i$v5y4I#$h>?7w9_1p3)UcL+zvMX!2!%_@WpY({en+Xm2lch zIC|zXJGOiwlE*}n(O=$o*M=g!K%NG~f1`oTvbfOU$3N#B=9emL_>)Z1>ZrjVn=m$L zn-LB8{*<4w?}B@o!%4#~k0cxyL07IH(m%$Kw8wAga=u}Tc|871>V*Da4cyk+MA8Oh z(Xe7T5=A0>f2oefa{{C%{lssh3eJD`#o41r@zbseYk1C5@Z+DPIrI|#Yx#ySn{d*2 z=8H}9?;tRL8ma8{Lf-u*{5^GxB;K_n@9;YGE%hb27q4-D-ZXUgol9FHzsfv8@iC``m8= z8fs@?NS_|bpX9q}$&)acsQ`K+g}Ye|Wb$+|X3;;C`03E#M=LPJmiPE)rjcoC7Pc&X zgda0zvk1eFSZN%JzmaV$CMyFwl;7b;tqq&HZ!F$=H$iJ~KHL0ZC8~d?a`~Vh8~kVw zUQRv&_19xrJlEQdtXW>LHAfms6D?ktI6nMGZZI1N13|_?;Db^#o-t3j+Q}FNfO)-Y(wRbt@yN; z*PNXNWL~35l9g6uXeCMJQJo~;&bf=)>SWe7og{`mCB213*y7B06D~7Jr|LEq|CA!r zO`JPFxflml1al5j1R2=OM0OqL3f~w(a!WmsQRPbgPigUaItq8zjv$Th_ne=>y#vgY zso(fZtn1fZs=>^(@m@x_PcOQMD^4KoYR|t@_n+X%k4pn z%?7-V-GG;y=VG{|1D*wJBiY@in5Gwm3f1o~A1w0wW~9tGz{(ZYu`_8YJj-5%gB#|-{1-wR%U@C-38TS+;=32CJdFf)AyekvH_y>l8|dKaMk@(46aDq@P% zLiAobjn{lP@z%?mRq!)BDf=>BzfoX!Z(M=-xj4L7a)bS>ZvstQgLShc5&K3Le?7b5 z9Mp`6a6R<8*kY0PP+Y3vXR>AtGru+s)uuyfz}p078*mA4AJlU$yN@7Rw-^-%JV~!_ zI`YeP@b}YOL0@nuvQBv6*Z!N#P#lNipzY{gu$#?m_z&@uq97mBN3x$1k+yLR~-gF!vN8QEw)ltYgHVW@X+9Ej9 z1($EF!dHED7#r!tLYn zjb}y9TWr8qf2%{wyk~4_a2DU;Wg{%@5T5vPuIPngj%jh8aCQaB+Ib-K;!ixBwikZ| zqcH!K2Ywuvv)?}~6lht}OZKveb7x8Sngh!jD#zx3=_YOU7wpyI66Tlng!_wnAtKd` z<8iiJQ}qaE%FmF|V$KZ<`H0A#%cNagN-`oxMBU@OaAj8nRfZr&)q&JMEJLvWB1GDW zNU6yVULPK^7i(nMr(qLNT4~F^*Ue!cE3QCvwU2e`3E2zlYpBe2!2UQXt{)1==#K^P z9V}7M^wb;EQd8h-$ayLrvtcAy2XARJTy2XHymG$?UvUF&B$+XX+iS7?Vg^#;M+p9L zpCHAzE1=y}g|D|FNLfD@HcjUE>N}eH-;9A$^;Ud$+=%NY{C?VGjH(MUNM1`c=$;>5 zylckIA1Y+FybU$QFIZsmOmvoU{i`sF&B|Ggj=@*R=)oeEkj-~q8vbPd)B(}5X?T#C z!;DVdKwOhO3S+jhIoD!v=G=J{57!a|cN)WM#Whk$KaTQVzKdAwNBwTQpr*(RzCGSovoaSbUfRKV#Meo+_Z!ql z{-*x!`lRL84cSp0B)^?M-`8F^^Li?Y)nw`4iLuv~nAMC6q(T!V$mc*pq_g81Bcs2^}MINM_DDD6M~m?)Q2+?Jh5DudTyuWJ`d&M{I=vVd3WJSx1d03X&5!rgVt)7tdpzyUrl|Z#dI^_8$~4KSGRtoM5WnYS!%R&F)7w zq1`hL>ovqI>S;Y%HZ8)YMFJ)+(ZJv6KUnKm4#Th0(Pf>D84o7&J=1A?|FINvTyMZK z*%Du~4#VzqJL?<$A4yJZz^Mss?ALN1lKplVQI8W@)%FAU*Y7jJ25-Uo-v^ofrB|wY{HX#M29CjNVS#oOigmup1x#&wq}efMzcZGUb{htDITCi@>Mb%+}wN&P$K z(vZkZT4 z{#Y?8hsCm4-Blvi1XtZq6gKeYJe{9Ey)G2awFOZX`8y;G;x(dI)LJC>|AP3}Q=qJ?g!m$UCnQC{XZcumsQ+5BRB^z;>BN>K4X0tIvk){@ zgN@tXM;40@V3o&Pwr+_Gz6`m6T}OCcQgJ$(jvVJ2xeTUu+6&)|ykT{J9MYdZXF?kf zOlJ?J3I^Kg6#kDN#bO{Eyx$!gaNY*P@Vpax9b{SA@mY9!=O-z~Bs1~d=eTeB zg!A&hvA)C3csewb6wfXO8<>EgoK?6RUkodmLkN?c4zZ6VY&kaU!*|e64!B{xg$+`B zlKM>eOi#s7{jv)6HzE@itnpdVZqPkeC97lV{9kpwK$=4 znjF6KJ8H$;J~CLY$810U!_pN^q%BNiT8!)G6QpU-;rpz=lo~raeiHk#(!+kxIX&h& zOozR4Stbx!UFDpzwUG3GDv+?fj@$c3A$jgrLCPU}6v=EvywwB2+13_Z)f$f2vR8sp zZ!X~4e@c+Bk>~z;?~&D84rLQ9OjdV7(wZd5T-Sruofy_&G89I&861PsV8Z3wVXAhO zB*x3Jib4La;?KSQ+!gn56$SWSTFC3_s5rGkW(-YEnJN6aUEC_UWA#4 zx#n!qKFr=T9{-(=vtOqr!7=FPnDgHcGCdA#Hr<4cWy94T^yfHjljjI zGbmGUC#ysMaCx~oss>LWqaI6~5ISH-821?dz;I&cEgaH)kJ_v}jypwQ{kCd6+mep3 zP1-Eu#TC4HaRcF;o3pRs6yDG$M4gag!U8u`^>`r4Miq0$OoYEh4C3OdF!yB!_QpLx zT#^R_Lz8f_^c$APTQXt7CX!K_i$!J*EdAtB{PP`#^>Xg)d@%POnAXZ`b}N=y{3Tsw z6Mnv~!1bab>G_JVxOWn^W@M3`_Gc{m84JZ1iy>{RjICR?Li%4GWYunCq2?VJE;5ID zrz%Xs8CHxhCh4#!=o_xZ^ch^|`h7cW&4RI_Whu$p-h*FLJ!@&ZLrJoES<*pJd3$G*B7im=E-=CW*5shV((lT7Uchsm(ZJ#Jp~iE|OsbMm7sW5vU1l_J&Lh-)mS*k`cagc4 zJwCr%&gQIg#qDP@%ys@^*f~5xPOKU`*VzV}h-_rIr7@RZLQFM&grB@;4Ky!dsm}e- zwYv@{mTYIQ2I-*1-3nnxgW0)qu0`3f2JGe<44clqUHR{w+Rihrwl$(QyPI>yMqo(F z7KDd!eo=NcnVEgy8M6vVxFtbWK{hzqy9^nbK4kp0hz$!E2){hSJ-$1f#<5(#nH%TKI035cm+!3$)o;t$RrF^g;BsMR+K|xnGT5DnFq!5vyg9IjKsu$`1ipaxfgvAz5Fe@#tLzL z(F|N{o<)*pL)ioAG+fV=M_$cA_EoD9x!0q(PWThM(0vBCXO-b*;Y=*va{@C~FGKlc zC(QTQ4yU0`xSRSD8$6C-NxyxlTG)-qnda=LPN?8Tlp2D^GgdaXLQvAj@e}Tg@yU#5 z#Uvj@+`Lrm?p#b7Z7G~n@(ZqA+?ygx5-~Ym@L92qbQjG`38 zJQ)w2Ngj~;poJBi_CsDB7&P%Ts67Dcdk0{()mHcp&qPRr8Qcd8vCDZRPWEKMO+yg@ zuAFnicPM2m%5aYNlAd4OQGIni&KV9v0LSwm*w4Ymgd!YvOU0O8eN23=fn!jm4OlRD(VJbWlF*H}0>?LFSPJRGu4w3Y{@Xi=K*C%~mMNQ^3vck1zij21fVbf{U<<8xnO$UV6@)_#g~1}I`wejCCoZMgoBe^wT*1^DG`lyKyg>TBH;Lf#)tDyHWOBzjlyiAaGZ6H6 z3r@e>#dFPq;C*xl!t7T;BX|?O>`p?ElPffmE76sqjX?D}NSYhq<5pL!R1bmk;c`}C z(jQJE4B)(V5$pD;g~yLgShm!U)n{MCH;(1ZOkaSbg8+Lrdfq zbH4ruT)e{ZPoKZIqqPVLCY~fCT!Gv*i|{7o84?RQuFz|Xs=}Q}e!zDl0cv=s(u_0N z{z#OpWmm%WL}UD<;mC85Zti%F!sa4U(3~V%GB!-~dR8(G?sZ4B@mAsO(y{ipF153O z=c&TJeO#wHFIco>;R+UDcS>;BHl8^vWC%-TPY6CLuEvh>H$~R-HBjsy$c*At1P|Z$ z7aqS?Dy(#GLE_cfqUMloENQ`GwnW@6v{KV#*V_~Fk3Db~Eh~5`JU)LO!W?D_bz&=o zIlMkRo}n%nvf-ETvc*ebjb5QJPjahp&z#eO+ec2?t;ruRj4b;j991SEd}KLM5Zf^a zsdt|-x7D$tLD_GFT?*d9%P+%4`mTD&<_)o=^k-3NuPW(& z7qZiw$K$W}TJTtRhB#vPGPu9B;QMoT(RA5nQC`0S2xhy%v6p*vkMCr&o~DW|OT$QN z#v)eeahQVC62tH>G(?UZNBrtIluh2`Et05H#LL4gdiG6kAXG7TZ=FP*7SI>+oq+WzS%Xx%R8b)=_h82^dBZN=bbk&)FDx%b##sBOUwq* z{M%k4(O;govdfB={Vu^+=ix$|Q`=d5)>Wb8yH}L9D2B}*yqq)(wvlV)A9ix*AYprP zyU_8lmtdCN<3i7WRw9L862i}0Cy9P<{Dr`{w=m|ujXuVaZ0&5DNoqm$a5Y^hyxp*# zd(RrO$8OcQv(y&)P7Sc0HH&54oXmWePZn9|yTSbt@MoQsC~f~B0)xxA?)<>Cedn2!@W~RJTGVyQ-$2F78Zg`7!A2UZ>w~uJk5OYzI zl)b2Nt3Ij>|Bvgo@tmdag`W;?5k{rEvPaV1qI0tu&D$td*t%>@ZY`Y}-GrpE{*kx%@p-@!3p--6q@3}A~XTPxOrMBqSvQwgRms=Q| zJQnT0+eKx=EAiNL1o!h9C5%^bVy||{h$rc|i%q8sMb$@2M4cV`L?tg$MQs6hpf{NZ zr9aOuEI+WkFt}x&pt0~e&UmSigXu>sRT?B35ELaGHNG0MnW4gH$AvR?^!V%X`u|%6-CelnM`_k*IH=;+B zZg-g(Z>$$ZBSc9 zOu2@cr_P9e9P<;$Egvo(qaR%OtLKEMK1EYJNXDVCA>Bu$R@I&xKx69m1nwV_AXGI2Qj$Nt}6A1|QCCU_WXM#X*->(Qxfl&hZKnPUbRk ziIz=*k;W56(!QBuEw39Wc^-*B6CFfvhwXy+*C4^)qg|}`II+P?SBmtXl_7Ms4>79K~a|edf8PN@9QNwk$d%iHEpCe&l-;eD+ z^HKP)D^_G4xj_{0ZxE?1s1bIaa~2)Xe<6IQ;)G4Rt3-BtcNSQ#okxRaTQQ-Yiujal zD-SoDNEdd?&`}Kqk;k!V1q&*=S!dll+*??My?*<%->*80zdnU4?ukD)Vh zq&(dM-LN)I9lRadmb`cGE-oUF(*hlj!YuV(6 zjj(*fT;9gT45Dxr-Jl)=>eqk4K)ZZW@xm7(n-=pX>mQQWTg86s(lxx(wu3NR$C758 zT*K|$&<9HSUN~<|AbCDG8dEZ5aT^tLOm`3BRLLOv;tP-KR%xKORV3YUpbp83|tLavmAtcuCM`U(Cg=^afQITXfhu4ATcD^YY)G(-bL6E3Qv~kiB2Y zxng6G75%^Gh1K8@ItiZ5u|t`T<9K@NZWvZHh2szWAZ@FM&_AZ$BzaLDTQMb$tHL*J5m_7C5Dt1)ZyToSkf4A8m`XZv9v?nvF9Lk ztV*W!1{VC}Ic4;ay&>urn!x#$99?q96?beBb6BgL`8ft_(avWX3rnrBeD_m=OzvzJ zX1Y{i;PWC#$yf=KSNFn+r5;uThsl!uv!mz}r{yprr<7<(U0}K&y66%6I|y^$kxRIX z*_=%!K05~y-xpUfxM!$kfnE&GlX?PI8?R#0>~c6ga}Zk2JccG?52N9n^Q2d(L_e{k z;**ldq|}^odD9MzTYre3@xz)0{IY_jThxflRc(4gt`M(g972729SBet-z2Wyv@))R z*RMK2qc>>d$!TxJyuKFsX4i{r2cLzTQ9T%;X^#Ph+JM6gaQ16uA#VI)R2upiL!+E| z@OsBbpWj8(A4*}duLV|rGeB4~ihR~vOyy)%@Xb~eczVZ^Uw4Fp{4FoGY;*${nx~W; z4(g%hlOkZj(Qzcy&47hn9EHJ~gYkE=ER#=6f$#R^RR4$+PB@_|C|lo$2puoDTO7p8 z$=cwpl{HLWYcQ>RUqo~tm{F;3Ow2e*HyFa`@tO zI(8d_@#gaEe5M2GsdR#%FDiKTj}1*5U(2sf$|G%kIWT?F?GlqMRpf8C8ibvWgq`0^ z&{?Mk<4>#>Zbx|1D;f_-@;D2+XzEXr8oz*A>?xxGqZW$Cc@o+W3+HF1J>W7Ih&{fJ zCemx_gt6y7a=D{3Vcx0&sygrp9TBc3oK8+ft@sS#?5GGd``*O|6jxFG?gy|_Kdt0M zawoGib--s!WQ8tEPN@Dchs$nl$7X#eCZDyA&l(E%Lp%^mbgxPbdM&*4vISn%3=+Yzi~>DY$4;)y@)#kqbdGj4e) z)c3j5II~4`_8)U>I@iFvYB%CQv$sO=L}jvNjmWPX-podh`vG6~_R)$9YS8*mia$E) z4tWzg2rQJ}pPe%88F zS`;t@lsh-Vhk;@A;|LEtI6IxTCe)L1|E)|${x|;F=E`g@3pg}|@k3O+`B`g{N>m5+ zh)obZdVc&Mi*9ELaJP4XYuN#GuTu~C{G%NXe2t{i(~O8|r5Sm=JA`h0?M&{yy$37v z-(kSy5=j3hGAwnK=&p7~J|EWgdtV;biD=A8vla2uek+$c9;-p!*;nFMjsGQyZ@nr}>5?+}0M0;z!Y28CJr?yg~?` z8AKPj%a-I1O~o0@&XKaB8mJ6bLy+=@39m(e&-GefiHiQd)HgI^Q4i@+`i{;ATBxGB zH@|AwXey}oF}-hju)1?F_wU<2n)zO!3aSA(=(~c*EBnMYjPbxP^HU;Z4Z%0Wo~pv!%ip9$mg3}B>P z4|VWe4fCJGQ9i1cxBR&u0>2tEca1Jww0j-Nk?7+0_GY5Q=t07gA8NEAmEratS2lJ^ zC7v3+AK%xH73X3`Oxj~P{blJVoLIP#a5G$RpRhAfA8Bd8K>7B+9^*oNiLV zTg)G|rK&+Y=@x448G@?%)xuUwW0bjN#-@&#!p}US3OAyMBDe5Ci9>V@4gP%>BeWfH zWB*gOA|o6^418c!Qw|#>caV*k*iECB+(GlZrb5q}12o&>5jj5mGn1DO!?ZJ3SoG6J z@G#y8hDYxvf5+Y6emz`=-9~TufK7==R@cJm0zVc$;~kr~@jggxFNJ~K^7L=_FFd=s zf(xBAh?uuJK=h7l9NKC?Tz87lkva%vTaM7^Kbic(!Y-J9YBCMIo{#IK^sq{)2VR%9 z(zTm^;cD+#;ykvHMoy{4n1iSBLjDID_$H4(InoA>r58d#-r?eLXH#j-ha46nv5QR- zSvH@hIdiScQ%T+5OqM&>1E;J#OrPDKgxB9(g3&VdO#a&=*zlitpDXvKrM)U_UaiPU zekX4Q3z5Q;c#J+N-s$viL9V_$Z)=u~3p=C9wSXI#)%JGB%%VzCE6_9hD`!x79$JLA^ zqC-=q9QlwpzxW+H#CztwQd+ukJS4^ov>~^b zc==sHiT-2s_+c$j=()_tiyT_zWxXWh!h1f1>5*HBsj!)pkp~VxM32f`m=O9OSeq5_ zBy}HM+TSWj-cLpCM<%50_fN8a;zYW0+EKbCE0aY&5qZeXW7&eQr-VU;#;8&_9p_}f z6`CYgVPc!O(<+?;WsANu8-6G5`<*A~metUJaDTMD^HO-;nShG9rT8Y`060Y?gMq0I z3)6Z7kInbc_8n_*(YV_*d6OS*7QLS#^7e=+1RU>_Aymk69}^RCP|g}yIO2hLr*KEj zNJ&hrn1of~eRzzRu-T7Xu-ok^8&>j$CSHC^zCS7@OT#`gwQ6~^e?!DKLlCsg@1rTD zuBf><}*6*R8pX-nZUZ2S3<4)vqjmWM4 z_nFQy6`iXqO}HD0_E;~snBI#xPIE6Ml4GL>^9SwhVSa`SoGtD~wqql&qnf|Z&9sW1@IK}_i{A7QA>ZN*+yyx*wR+{L}g+o{Cx5Rj4=T|)1~eUhyj z7F@f_Tzblwi(p)&dBSE~*>3-neT>vZXCOk27trcs{WlC~y$cKOwT$)9N zN1H?O!}lIqxl#(Idj1j_=SeJZGv2WvSGdrnR|4V2Lf`r+So3`w8}a)We2I_eKJ|EklE)j2|67caD;ufB!WS@9 zC6*TLo=SeKvx5-Q1wFaGAbr6SPERZYrR4{y@kBMMnq@~)ypP8)rt*9eYJU7jGS5yXc}F5}^t7#{R*t8FS`t&* z$mq9C6Ga!CJC1M65L8~q5V?YNbfDP5h>YeSAWnfvZ>hj%)dke;iUbTbY_S6Wa_Uzw zjP_^#!Ea~VnWfKHS|GQN9oCM$^cDD5I-4ZrxRtRamyBL>x?!rN{ z_t8;G6y`|T(zGK@G-B8(Av0+>MD2FKogY4+|D${oo#BW^y`ncX=r7e-y2a|I#V%4| zGeGF8lmc(_P9}Tf6doKxv5q=|=>!wHNKs_{8g-F2hsm(0NS+@spclU97h_f9Zgb`? zfl@CD#Cy|UdU4VrAwFB=x+SMT_#F+rp==;{I@R#Y&zaJki3&pb=;>g4cmaC#3}kL? zmm#oQ-0Ag=#2phR^A6%JVeRQ|@_ei@q2-gwXUPOQ>d+5}Sv(8vXS=|YAP@SxD3Kbz z)FS2w+(>IeKHkYi-LNE)vwE%E>BZbuD)|^hrtB8XmO_W@GS4UveSo0URcVB`>p7#Chf; zYJL4O49R;UdIa1-?O!z~#`wXdt_{x6leD_uRTzC~50MS@7Z$#=VOu}MF}V*8{NCzp zv|C^Z-&Ts$&So;Q6m1U0(!1Ptmf zDe^Lh-!JbW8&`|hS6yf8i@RZBrkGWp_(Qn)_Z64>@V4-%shr?xR_>%s{LAYgNHs$X&8@-M;pNj`JMF4-mmCu*Z?QK z{-u}qo*<#$Q)q1CU9!lg9-n_aDm3Mdrz20MqOL?EU6L*C&<9N-mpmj$X^lUXIx~-P z)5YFUzZO5^qKU}8nT6c_V79y}3I??50$I>coBTYv?nZCuYC10*)OLqaP4(o^XFHma zw2|s>Ri*)30zk(pjBc%B5HqSA(t;XkX54)&(I&)gf&>iGea+PvL~x;oiS(QEU4Gz? zuar{_f&1;FfIAw8Mcb@MZK5wX^3DM+w`~nL-#@_f)xD&6K@+pc?PL@G=wY%&Jch&# zAV=Rgl>Bn5hr*#TXlLY)arBeb;|&2|c14z2soRs`Vf(B!9_N#X6*4eKc>*51d<5ca z)_~Q1CBk(TkbArxYS&eu^2lc}IiHaV?=9#WBi`vW9&tCTONdiLD=oXRP|(>W{(YBz zMY9vi@z|V-DM$a%>WLw2+0E_DGixNK?0V1DU92Kau_2;6 zF9>EA{Ntrod@Vk2#KTQ42J6~wptvKK98p{bkzXt6$NE-&?Xv;QYWOiG>py~*4gCm9 z&*(z&RA=g>Lm_U?7BaL*5w5S^4j%S#B=Y`17JGa(lQ|g7t123Ugqz4w;D=$v-!0r7 zr2yW}@f)bW7z5O#9)d%>ah5_mS={iMmP$XQvAsVr*<>7zdU6E^KPH$nCkszZR>Gv! zcWJ}U9VAfuWAXIuSJ>d=223i$5bvJc$16{q%v&GN;1&8rJ#DoXJz^kcfLJ8?c2msR zy-0?Kso|m%`ZK+E+Mgxlt)=yV7Phb8dC{)1*b%RY~j1l-2PV@G{;bpeooV;cQii1 zqV^GNpj#oY9-zmzx{7Cuw37HflMhIvpJKS3gFV-&Rr%2ByiSvrM0&X?U za4}-a`R{&qi{Fcxo6Cz1T;3rrs&J@1ZHIQiujLmF5!<(n@Fe)vQzI;|i#=jgxhEAxX z>pgW*W++c~PWI*YSNRuPZ`!^z&`CAew-`|P56$QF(&Of?$uL2pNaTFaw z?$GZ)?7=wEuw;Q^0M+dGX8|k$hpaq8v;XOkGPgZ^!uyL@+P@5XGF`Z{+pW-NBTu@{ z4nXa(P4rn!q0rW0g{otJVAQ7@#N*5b`s*wYiQZSx#BLTn;r$$>%^!l5P8?1uX#nSA zPB7j4HdORGlox;O-5QLkE$s-kUeuFNv;op zy}X}Qi|iw&anS)A2E_>-OJ>4A-}5X?eJ~7>`2%`8S97PN`>CSE7k=pK{a9~jCNhD4 zvY;>KP03Os%7-&^T%|d+;o%<+=f5jJ^_OqJg2&@!c|5EL2|FUl_q{%pIQJ5r^#y2IGnrrI)d3PX1Ux596~A9i zSmKdwwB|`6@i4qZp4{lgZziYV$nOX9S&#Y>qS(n^FK)&+Rv&N7(2sub56Jp{!^#ZdLK zj2gFOk!w4oNpp_}`SdIS8(kG}K}j>y-x$wt>o~y2O*4bxT2IK0*Bt$(`I*-mrGmfW z&7j)9IVk2&k`ox_If@BzSk!7ak@!^Xtv)a9T$py|YTTDjc$$XP$8n|EiSvifb5 z^|7MQ`FgmzunguMaKn$gkUqFpDEw~rre)WrQ_WvtIN4)03>x$Sv%af9+pYa{S7{y7 zS))oe4_1Ykhqc__^@${^rUy*|-s8;U9kfW_k;GYa!?(5nEaw@7kg5jJi#oQ7yZ)n# zpEKhWc(3t*g5n}(Br6B=YNKJ;w?|x#!xm~J_CAP?1J=%-frEBdVDPsAuzU~DLz)^? zcz9Lt+;kT-BOlY+D_TOKWrElZc4e}G%h)ifIXL;x+mc(`0;p4L3+J|~hHc@BVCKY0 z+^NN@z`Nu$s8nd<{NR(cQPO~f?aUGWtJTMWjoGwrc_JU~c#hi5NMQCaY*|Rno)I6=ev$9TB9iiYiI;H0O{!S!&64c-}mL;Vi`Rh=R7rzPoy-PSbaZG5^1>I!^WN64sE@jeS*d}_!P8{sPdG}i(IL8p2uQZcg zFRaLwbIG*3aviEal@)3{4q(Ga19mqt0}d}YLhWJA{Qg_B>2<0@XASoxi$=^N57eTd z!*w&-6p!SmnKm#_*93T%TFBg-G;vUrD-4J~3&VP5K|sx1KD+!hNjHq2F1N;gw z^VTZVwiNU9W0lD2??ysiKhMily<*WRzu3TgUC_F3KmN8Ez;${*1u1t09N(e=5lW)Q z=!_5V7O#p@zZKx^f-2@D? zNp(lAGITOoT3KJOul6XPB2QND0(&qd%C>$f={_UjIqhMQV z@hhKZJj|feR>aU7b8X1+iMPRIsTcVeBZVQoRxl~@9N9Tcg{@lkfp>dW!)It{pdn|1 z79U12ewrF6oHjvY;UXEWqD?UGCsR1`7Sx;0@#?2e!@CQEp?JtLYCrr07)Z;(syXTC zv&RCC@QHBvnAl5wtxwJkOn`W;F=T!2aUArY0bc4j%san!qIWil?C9r)7=1gLRtM-X ziTpzll;cfCO8$c}f0JN{dKqsmc4#tEvv^xKQ4M3v&NL+VBJXo8g4-Ey4-&fW{7$t*?#OZv81C5z zbB(1)yjmXpa%VGYX-hNZZHQ%?hEXFK57JljrQ}blgz$3I4qP#96Dhh2_|2h~^!|1s zb+Wc_q+RsGN56z0LDpngW*Qlr2V{4~edg2gj-)M;WlQB2(6#dm(IM_N#-vQ90lN)h zr&(FagMcb1>d50&%%6kd`%cjj;6`uk(}mj3ALM-3JyPZFg}Lo-L8<;d3##+s=TtiI zvROx&snZi2e7KNoTcs+@cT(c6_#NO~0w1xlB~`rnq(2z@y_bcrGGu-V;?Gi%A`F^U zi{T{)xuPXaus$i5*Lye#=AYFjbvF($a@+;g-rOT;309WROL?rEa~d=4_TkNM$4TJB zUWl7{l)Rn2oy7mUD>?=1=p=1VW+6J|ACB%ul2Zd%bsuIq`+|LXoS3`7;*5iXor)t$Ja?)53fl`nio)@{%Njj7vrT>OtZdqD>?XB*??kJG`{& zcnmMo!jl7Z;eJ{ty7}Bk#Wc^7?{pE_QXK=M$7u-Q&tPHpB%R|MO!LH`(*U@5Ryjkvm{O@>#*)NC-80RzuFz z*)Xp~)@;$TRLHk$AsgKyNz3ei)Z(}baQAxGA4NUR{_t9qi0q`b(-v&W;uq=>Ei zR61eXESRC>#+wAjlW)&n&@zqbWEOh>ef9hKF{_t>MA2gyue?ck@mC$+bZ5~QTOuL< zSP3M%yJL1v6V1NwupJ^jw0KqjmF#usBib6ioBUo;&-Lt@2_o2)SL?0Dw7JE?y}LRP zH|z;N{9p_lp}7OivZr$4^-;v<_Yam-If-9Tti|tf90S){3~-F-P7i#oPd9ow(0i9_ z&{fd^$Bt{|7n5bo&UHFdwKT$5xew$)^k2cVtD386QABQgA%>qkg!@;Grx(V*fJvrn zVaUoAr1`BB&U93V*}ARZ`p5{z4hV)5zua-me9evleEo~qZ*r7^UdUOsk_4EfziM%XW+ zF=P7R+)1smtg?eu50LwZ+EF67tLKf@DKYiF zqJY!9G%YnAOW?j2uVB-_m(;<+n;y|0Mti2cE-5ihp@nLO7$%6l+NLcmMO(5%bVDl$MGz_Y6S-Se<2HZd=^@5J;7SsIc|5}0urz9QRVsCE&DNwOeN-ID-Fs9xn#<71Z3Q%JyTz0us$tvv&)ns^RYG_|D@I(p zPmC{0k>CJToY-LpCq)0yTDzCryU+IYDmBK8&~fD2vYntBQ;RmU#XkGCc{It}2mRUx zLX9v4FAskJA7dQJv`}5LdTWcw?wCN%Y}SQQYYxL6>2K6bW*-=AoQZAqC&`UMIT&WA zM0)LIU`FI1xRvgS3Y{J>QvP{4bqY?`?;a{x<&{*D8qalGFTP%N z-$csz9xW<+W0frSQ-W$GdFAlAnAs-oGW^e$oBcJlKS-flQ~^3T)Ptv$6N~aJ4s@gy)yqh@~i2bUrHXQKWzJ{PbAT zUTH&eWOsq1%p6`~st(rH`E_z5$f(2-^lIJn|P(f1e$v{w4c@9+3WcXsdLj_jXG0(^Gh`Q~%bo8k`t zeGGz+@uCJo&4<=66L&39?OfOl6FUEefJx`1V)TPeg~g)9Dl6 zUsLmRx0(sw2WY{AW6Sa8#pKJ!;7Df<@Ll$_dW{noh;Qm}N4iC1*(?9qPA+?UG6R*dkXXJSu8i*H zcTYdV&rmfZcfMT_=bo-~o=rO``u37s(hY;5RPb;hEvUlT;p}Arvm`9zb<6>ul%*cA~Ue-mDpjm@q5}nL;>OFEuPM(F> zS1@hMG4Jnyci$4%=tduMSsNwA1y|HONVQ z4|-zC6mFae0jCE>czMx$F@KN-TdXHTkm*LWw#gws`r7F(y%gH8(Vx?k0 zDHq|`bky9qUEE1(@+0@S&`)9ybH>-(w0TxH8p+kcx4&h?xh@IQRYURAh!ngs$gAY~ z1PQBZhb%C-TtSw$h4GOK|6pXk9pR-D@JC=IS2Wcgdd#G7EaT(8oF;GnW$`zcFIOV zm+o8AuX~Ojse4Hezq-g>^z=q00|oL)!G%n`@Rim_%tMpLD`@&X567=ehsguqL9ELO zb};!ZQ$JGyLB#{`+6FfveQhS^``>#yeupM+v1c>WTRj1kZvSILTCT$(PfG89%i~&J zcyjjl?GYqn;N_z{%zt^uvG5-q5Fn4$vKesU)E_ob zy8ztO>)B+>IxHwD1Vz2af>1FOJ=a}i@?{J*oJ+v)_VJ+7+(|lOPUG*U1E90U0%y-Q z5{`?^*(%T2K7%uzCCgo?0M-WW<>IpWXSkt9=YqlHzB z1j&i_1Xr~p5+9!|obC)K4++{+AhG~gFM^=}n#b;u9n1~20k)O^TXEK$l; z3VNh{N}jg3<0hADm}q?uKhateckwS5vN4iG_K02e(qQs@+*#pSULTFg*&_TsR8Km8 z{41Gr$(A0HdWa!6l6gtzyO3%vW|fx|@!}qm57{-BEovPi%rqN~YRsHgcKpC#w|ivp zAayo%>PbAEdy3iBM38|K+tKhz7f97hlkDW_5Gwrvi>8-@fuA|sR+w4+APrLBk9=Q|_GZ$$|qymt}~pB#>NNEo=%Uu^7h4_-V{ z=)x#9UV7La61mb!DBhz%&Kli-ACGm|l}%^y{iZyo`OThJZ*w1?eL8j#VcEi_$z7|p&o~{@aoZT^yGX87&kTxZhx6Ye@f4!cT*n85ctQ_y&hKCQ7>h_bfETzBb4qI0p1{xjYOoBf@bjN3bL z?|Y3azicmjS|i0~6gGi!MHo19Uxca6k05q{3$*#CpyOgGn2^6m`2NBXmUyLbQhBl@ zDE1(k+M7x>ZnSg8QB@>hwK=Aj4CnP9oI=f=;y%T=4y4tK=*J6lN!0RvWcO7=w0J6Z zoua(0}dS!PUj zuNCIa7wEs&{@ifCf4IyzmpYM59u_I^qto)J(F7T$xS^NG-VEht9cU%-0|*;DX%)Y9 zPp~l6tA$M|a%JYf`(ew*dBWMX+Av?tvLr7{ql?B`^22NTx!~IcyiDi?xZ!LFTF^}j z4BwJL6W0;zO-1HWoP5U9pdvtm+3t5dyO#1F$ zUS^RZo6%4&zGJO%fMFDExbhLK+?PW^-!O>2Y6a1YuaGkz#Mq|Na45~}1hY1q;*5A> zdcZUbuAbDuy9fUx>m9tA`c*|{@VJ#73LOFAq6c-Fdp`O$w(y$iN8r@fZW@#u2DLv$ zC;9s~kbI_}9GM?YXAaIKA?kJT{rV3W->?~~-`&7VTgsqxhZV}i_Th-UmBlIHx%7E+ zn(*1z5N@RD;kB|%Y%*VjSF%Tf<@N_;{QfG892-m}YohSsAq959>NPrgc)|&NZMZVi z9+cj2xTAM8?7Q^<=B}_K19H8Ymefvu?r1Y+e`-7LG~S92-s_A5T8pf9E$c(+tDE7T z@iKn&bp>p5NX3;MV{vMPJDpwEN<#d8;qZTZ!u1aPLxtnwJJ&|^Z(P?Puf}}EyQZ3)2wBFc4MFsHN(j11)Y8;xiM({h0(?{Y z8g6yUu>H%exmaS)G`fn&rj6qKIl>f!L_S2(OLcy@mprYsnnJE|?fmi&y+YjPT$0c? zh&#Q!fJ!@8@v@gU;FG-bc>IbwSgHaXy~$u-MGk%QZZ`3_aGTx_z9DYX{Ymi7p;pab zwCSPhTKd%BCQg#JL{4X!q2wD4xbkU+$UhgIO-JVvzvdda)};vd-hG5A;RYDA zSO&Ls^kL|TMu@q%iz)BgPiLJ_VgoL(WdpXx3YiyfQO~}^R>3PD^WvOK7_!utH>h7n zDo>w)MP71PYkq+wpM1oH235e4n<4b>N?ZD-?f^R)G8|sfy}az!uY9CZ1Ic`U21c?y zBuj2Svr)@t&cUBStI!dc(R$v|vI{33bKojUwZV1YcF>Z2!Cez)N8Gs}G?P=r#e*~W zxv@vNhCR0Q?cxkHYdKDqj<``j?_DHHQ@he=2HQ|Sfd)Nbod2Dx| zJ6p1{7$;ekljP_=+?9Te#Hw>(bLB3UyV$|B+Atw&77gr+!9%(+ zaA=VDo!{;PP4cE9N7s^^v9zY|{~HCjlc!NXB}WK+t0?4e(cq_A7P6U^t-M_ru#lLU zD6KJ;jFj3!FCMC3<8D>Z?n$@tT&^t+4vWHxE)vi-NQL<9*hvp=x=&tLeuk)si*V8J z34Lfd64GipoVDBv$L*S2^2&EQ^*Llrj!)NR+!8%J^Ld@fMysQ%|7&H6_4_fu%aEik zYeo5S7deH^%dq#YCzDFMj6W_d=5@cNz>=kH!qpoA^uwx`-0Lt2oP4Pb7fo7B{uC_4 zWxAJPe`zWf4{GE-j%6g`+&ocu{}jzc7SvL8S&%pMC5xUZ)8^^95HMAOp1fxOo)Ovf zVqgT>_&f$md}~qP*j%{LYEQqF9fma_miV}OUCGA>wJ__i9nF6InH^|o;H3uG3k^~l zm~4}ak`Kl6{F=z>D!GY!)xXe+6Ia;eDCD=zn+ab>w}`CFmrUDB2U=IJC3)NTad)mh zr4}M{F4iO$tp60yeosZ>xh0Y+pPzw4_e;|PuLHDyw1TBs8sm4rdP)74J>d11ZNiL~ zYrxp_6g?}G&Aps@mE<(p68ThDesVG4{V{;APJ*zjc{}b)Tg@Dzk9o z&l>Q$dc+(!SqTQZe=%#43p2A=!JFuczQ7;Td3Wot%yxe}O?bEx=l${FVr7nF zSDlrx@Ovl84KgiJkZEFO(ebEkT})VpsnB>pik`gLN1Mj`6aQFO+#Tx;WkyHv)VMu# z@1+Oa=g1)LPQ7_ax5LbYK%?qTz+oM0)kj zK05mAaFMOUP-$=zCKcVrZG0epX{v@!lTkcue#F;Kr#OD_UhdB!LmXnh64Lq2?9jGY z`s+{-4w+rR>pf5A=k*^%&qw7rxsxNYmA%-x#+H{{bBFf0c;M1vU-a#KOVnFhN|GcF z6R7|h7}{B6F~u#uya~ ze^XE3>TUhJkA@rhIV1<(-fg9_orY9pL?5ZS?noqOCgCAB(S;eQ#!mehK+CN3Y2v@T ze29A?o|g6_*_TeCR;HJr@1ciljvoZ)^Gf{6L)!3nM>#L68i+xzdgA`UgnCGc-rW_N zY{4}Z%D!vjGvNc{(ldCal~?GCpl+IHQ%h9W>K8pMmO$m7&**EJH2S^t70wQdC1sN7 z_%taOrU(_F?9z$KS5J`ZizeZv)=+-l`h{>RLv&aAnDgd`t1UN*v(u4uHPIGb9ozd= z$g?}T==C#@Hl){5Mcx+I?Y>9WdXAtKZw8U_jC!g!P=X7tHV2)AV3Iqh1CJ%=qr`qQ za^TjN62Ak!LPM<$KlfTW+cNDk{@y)_nOv&kZG(DX;g>l=)R7w6Y{b#4;k(GG=gl~d zyND^(aWHzqOnM{XD=&Q^fnI&7NkH`;y=y*`9}u00!P!$FYvphh`!-;h?~c13bm0WP zh^C1BfkqU9E2O;J9c2|Ghgf634-2Cn3=>OvgYI~HyiT48axCsXyw zh4~`8aATzCKJRN4I&N%4FN=A^tz#8L#?7%R%W=mzUmXk%-;KGu9l>|p6EgQ$FPDDO zjh4?=VB2S0W8>5b_dY0VZq363leI}w-AleG;D5H>JDkh^edB-G zWbc_h+e<0#=Xo`xB`w+-Dou@dJ1vzGG9nq3B1KcA$OY# z2W2asSdcwB<79UK7boyzNPUjmK~olz;3#yIUC2(%EXt`}slh%(oys|5XNID~0pQ-C zoJ-|Hvf;5o2nkK%nZZrD-qJU7`~7my^}nf+JH9X-tA^#~l*lg4?w;7l+@>|=Y+e64 zC-vJiQg6|r>7Fq;Y~E1r6SjxHUw4k{yS$t+ejRL5{sQ*PGA(z^#x1DdWrARFAD$f( zjB^(%augdQvoid;(=SIK$_Y=MmhHAK2*-uN?CpbGL>ZRkOj7pEp1FHf&a|Ry%s)mU z$0SCT4)3kSm?JmYsj>Cr+Dt@3{FU3;DJ=%6QJD zkD^@LWtB+$eIr|W|5tdLW@i`v8BGgahUTig*qxKi^O0^yz0AE(;E_9ZW42Hp#d2gS zIs5$fAD$be#ny>EhmPXaOuf&doNb+rP?-5ON9R>j=KFo)GGn`zp{XzTv~_?DcsMvJ-D~z`%K9&il?0Idz)f$o^hD>3a4cIeTjMhJKS+ z?4Ix0ca6Mrn&lWvDIAIkR|e%4?kr~G9(SAOGk7{hZAxDgEDfI3H8)e;@zv?f>s<(mEC`>Y!KNfNB79bJ@?6JLyYR`-f;44cQ~$0ZXfYJn%jhmPE24$f1^i<_pI0*1sgaNx z<;C{`ezKuoZm^uqZdg*;N-7pcXx}4-MLyH1-!O0d&}oNb*L6~p?L_Oie&{MIW#i4( zlhUWvXsj+}OAB&IzDxBmoDN4AmpK5A0S9(%Ns^ zugDa!L6;8T+V~T~{n^Wz_6$QJN zk%ZUWQ>UYXEb;)g$9OV>#bVnVPK~=U#KZ>faLK zfYJe6-n)SmITLx|rVzxROeKZOwxlNIg?67-RDAtFT7gs17&{Op#yqz^tOb7uilc1C z76dy=lcLseR>^03kx6l+TrrMidFdczjuxNQ?1$L)yCgl&gDedN60;=|-#DCX{yLIG z{d+EwCIJ#g-43hSSUaP}?<_1w1~C1)P6idu$Z*tGK~6zg>7fMUD(+q~hga ze%_zUCjG?|QTtK@&r4d!bm>3R36H|CSwG2aZvyEIdXD}hR*==yb~22*fRVZWoB{lj z$(Na;3&l&(ALldS!wqbA-3+MF|BmHq^E^1kfb()D=A`!&BqSMhQAK0F>OfzwH6P;&3dt)-!b(J2K~cQ18O?$(&X2XMhjBY4c}HL>!sQq~TqEHL~fs zPMZD2Ng;@90#j>9{e%rkUvVb&>$gb9^#?z{#*mWsOEx960b(bPqW1R>wks)*eF*%8 zSEm=SNj>(^sM5vDt>^HsZZdA3HN|V?bo?BdfV~d2{x?;v+j&5Jg%M-RyH#E=$gLA)Tl0 ztYw!!o2g|^a)o0_H>aDl9*-f(UU$+OYE3$(qew}L|2-eHNh9GYDXsem{{gY6*I7Uc zr)qIjsKL8rKhA;*N8pkaH2bV06Z3Yw6h+{lphNvz&!W6-8D|@QC8PdHc=2^D&+pPg zZZhY_k5ytpV{YMzwuM%t@u!Pq`!7c8Sk9)uco%=;%kblF5$VLA#&^#sycPKF zfXM}PdjfCP-6HvJ4}5#N0JSA!NUe7=E2y19dR&e(Uh2-uA{uLqv+~NQtA5u?InG9gu$fwOa^92si-QCB-MgL(7r#OtljuC zY)}MVz3WG28%#*Upc)mymuP_HXVQ}n!K)VjT-pTEUUL%(Q7NQ(pocVcoe+QH7pc0Y zk)Bc-k`J6<%a(|d#M<8^9XW_?Qa+16(_Bb0O`XLgoF%E3nIxTR#iG<=F=_U8QdvKr zW%Imb+mM%}6x+poPN-wdS^jLvu7QD=2u5q(IXoVb$#bUqV6aa?DEEE}HQTe0b3E;! zHA#f|8HuFtxrHRZ9L9!aoGJddk)&dyvFu9)X(hfUu?U`fzx)s$jJ-l8``@FmFB}CO zE6J=q99eBIaaV=Eo@O-goE&?y>bVM|xGGX>HX-xfL!fcQfRt_LlcmpijNzOCm3f&Y zANC!O;=M?|Z9nxJ@|N>k_%++ykCYzoMTwCUzUMt>6CTCm*v@_UGpAS)|ubPU7muZ1jYhMzEE#8J}Nla5?zcj~uU zo3vWuk@epmQm)%hTCxKeTu0WAq~6+8I3ou*OTm$V2tvu#B2RmBswu1)3u(mi~;jV zPK&dFV)R*n-6)bDorlGfi`fg$cbrdm2{SXJ+0&y(FpkwCG4IsQB4b(DV-~-s8KEKEnGH-1}a$Nz*#m;0l9#45qP(iX{A_rgfCM2D_M=Euk zHO<-84bL}|#;z~On!tD8ZB$4#><}KEKZ2S>hI36{$v7e%D}Fj6GHx(g`1WAaEn_75 zMw796DAt`mMdn-c@p;^QEGa$68K{j;j8P`H&7Q7QQLPR9ylY!KMB0<%U z$aMZDoES9+FPd+VDbH>9zaWP97d?2k)ODQPnTd)ismPF62#?Y$?Aa)9-^{kMT_fG_HL4HoKTO#v*RQDhr^{w29wcM_tSi0oh?$=-BcpjYkr!#l!bC^N z&}=$N!YlBr;TmboZewA!i_y8*l5|JCVpo@~MUU5G()63irsivr@Eu0}{5Mk6 zAA=D->oMDMBWYxHV&EKYc-FO&WR(|eGhQJxH;hE#17Yqk3J;>yNpA2)42%gu{=>aw z9mx65Bf8K~R3t2~72%q35Smo8$eeSGFt#JU!={{r~tF1}l(jk)YNQBt$p`5FI7qw+SHFp{E8zrj|!5n3UUa( zeU#MSG%!`$-T1oLmqZmqnXJxNG!BVIx0jgUdYkY$^)re4%;ug#eKM?(BbmbUFgv}L z3{rbZda41$t0s}&2XMtw_*K1PDJ?zO=NMs(bFaomRr{#rTv8P zQR6-I;_o0cqlK9?cEhB(7HJz7IfNR8k)?h-`^x*KPbKro>fkw+d-){Zu0HNC>6M7J zJspaM?MKo0ubFMSw;s3pT|_&@vhbxDxTi7&oehkcO|QdENe7bf-H03qZPMoFTyNDg z-1i?!+CS?^T*U%UEC!RhZ-TI6Ij>3TM5LO&Mz|4`ODgt%NdA?l@Fj6MDcnrue2SY6 zLwrhwkH42f%j%#I&%Mu{sgW>x#PyHwB4N#TUiUaJVPC%=!@JhqxcL1X>(d{L%6;Q- z#ppBZ`FRty7ddw?!5)7!Tgb@lBXU*S&?@5h(-cMIh{vFJh!&aE^r7(S0}P2gOGZ75 zS;M|zm^6X!)5gAHmE*l&XqLt~l9$hUw_je+)#T#RxJ<6 zTzNgRE>9p`BOmra*`2JLn@A)53%i%Ijm&SUkxq9i3u@craL!M}(w8W~Y+4f=p{&Ew znIdeTw6JaN#jJj65A^b`vQaz}x<_Lm%J%r9z5N=xtAF5$A<#QmgT%63QIvWS&0(?Z z-5g_5U-2DbV`ZUt6vOqhBUump#BAxz+@k^|P*IDC8C)ycxwUMM2K8^ZaT?X%*znp=SP4cUA zuwgin^)x$Dan!~U$v0%?^oAs-xjR(s&%lcWOOjc4Uf8bn7R3q&NHXT7koWs6YGitO zy=eo(JuPH%_&Ui?7K8aA8!|E&NRm_2F}#rTc=&Ab*8r}e@S5Z6>-X$M{0MZei^kW~ zSjY>b(b72-?|zyfDC+>pZt*6mUsG{9^9o5Eyhq|4UvMO4EXkhb8NaWBIT!sF8LtQ+ z8I5|6iSXet$$Psd^LX2b{$Wl~m?CD~Pn8#K7^vYIeg}L`G5C z82dnzjW_y&r+)n*dK$_OYXu?Cy#u1J@vt~h_l)5*uY_4l7$Z(xXv6z+bp3WLStC7m{aV)4*lEjX3 zw)U`Jxany^(&Gp6p2`U~<4==BhXJYiZbDMEqo7zTMk)^X*yTHtOkA{-RNmiVk;NhQ zA32vq-uwqUwcQqt1HY1P{Q|h};ny;!kTgEt#>O2H`1p4>^&k8OYvr@ql&8yuO~+qh z)?CI`aUZSqHYv=koyJb>a1q|}Oahljhf$}eL*facc*A#tzN{7SXLAgmfAPlK*CR-J zY!s?@ZN>^q5$JOh1{FTXR;Xa2-fO^UGG~1r$K;^382yH4We%K0me&U(XwG~Vxhd5C z;#U!l7hGjGoc40h$}XI--vpb;3uM~y5K}q3#Nm87S>_LglVc!^U7LA59EXv5D)6@q zDTq*_otlrzaU)RDRAP85ialgtk>oZr$0?`qD;^qzyblttLXJ*D#h zM&ZglPwZB4W?kZ*%>4N}IP-o{b=*s4Rv-g6Csp=tzav|Fei#;{-q*}yCj$3!Ud?Gzdl64orxi)P#GRD==91am z0Mb;HB$e4Qf?7{5nT2z$`~4DxI=>+EDb}RfF$>`uqsaJM8tK2`Tu`SGWXUz-4lf6s zml;WxU#!s8rG&(X9%TG53~gJ(5nXl@>ZzPluw^i--FO4yA2`cMb2WRpGys;@^zd(b zI_oHGV=i+!7i5_~t~yO&W|2#vG-4;`BTZ!cc{Y4|>H=K-a-1wCtYuF!+#xeFjcnek zva1WUAyW}UmhT3z?=3RWj{lG6ndp;l_i!>9G#ry1lu5I9Dw+LggUJ*X(srCiCa%X( zwAsOaVSor>n>iCUdY(|k^EOYfam7R9Rb;csoAYiO(BgHOvlRZ}rtv8B2uI=fko)o< zan{{TJ#3jegy(Yf;rXJQtT|T<_uh;}h29nR{8%L(c6*~}%YDwsuEzaDbF|v=JuwqT@;H*tFkq=GEzxW0j8ET`u`=W={@#c{)Ao^=d*mZJ@-$F$ zJ)P_KHK;u0LWce3;YC~<%Afv^7ylp1n(v_aryA)^J;eF*ebD9p|98?Z%tvMlw5-!m zKQDqs?~#UXy#gw&N3*zBHKh1%E~(cyan^u0DJFZ6T2(eemh7W`b2$V2)eIcT)aAYS zDN<;DLZ0-_J0WpY170NGB_qzpyqsE%(*9js zGg82XTZi$&;2~#1enHR0O9<>MAVbIIiGUp&;>jg1rQ$zYHc z9)@g%hpjr9uY8K91w*j9;0Man6_8oG9V_cC@p^$Oay+%Lb<|)KmMp`gAMx;<&__~^ zR?MwigsydiN#@`+w)jK@i9EwdY)}&mdKZKrZ|ccB`X`zH-p^TWG$vVMc$6QhpQ|FxKOvZZKb7Rn z^H|Q`88|#WkDtRyEUSGy*7I{lW{5fq`?CtilAK6lZVbupT!$LI>m=4e)0I~{1?h8kI@!t zi6+ZJ_UFY_d_VMv*Gr3FJW~Z7J<~`$QV%u96q)lBF_PS{883EjVrq(yNlYpWb=+^L z5}qo&Ut~wp5se7bULjl;`%I#H{s{MY$RwV%k<4&ooUqYk9LL211+H6;I>U~P{Kf7n z2qb&vBAdeRz2g_6NGz9gy)OEb>cIvi9qhri=3r85n}RzREs(izCMkaUhTFH_vMnpL z5Rp*pFwj1g9agEpg=|x@EMLGv=J_D-YBd{t33d| z=EblvPQ{ktPlebR4OZ8`jdX|ZV#9;yviHRkNT*_%Fh#tBWi{O;1GjjTn)#6Biwt-) zbG=gaGFguL58g9pab|X-gPpqw%WlTQe48<{x!3uG+c21VeZ?c|X6!2%2AgHRNLl#_ zM+>8cN*Dfm?cw#|=RZQIwIvR@JR#+G)edzbe9y&$Ygut8uxW86%j;Nx{VJ8%FmNlY zlbD6$jxVsnZYPVevV_m~r=-^Smt7rm9q|$Ud7g1GD;YWsmt)?O4hmV$+BvvX(?*i_ z47mnB9)bB>_u2D^te!o9&*^6*Hi|#@hbtn~G6nGtQ%SOW16;;x<7}WMNlKex$_G;< zb~=)@c_zkjA;4IphLo;XLFs-18Taau@|Pag+^s?8y)`87xe%I5HVJRahhk=2CX#o_ z2+uZez>?Xgab z2t_Yn!R8(J0p=T!mC+&ycUEx!&kV9wjK$DYJGS^(51G1LWA_h_WbvE%9!u5;cHzig z7W{1<{A|Cnic23^(H0{d{ou(2-EF8SAB3A*tyn;DDJqJ8BWdL<<~Yw36@j;rak&F& z?i*08tB6y>Um{1&3DxIwai%&2H*W7n*_Q@{{*GkYorf^Qo%p_SCbK?M4ub?QRxzc3 zSw_5t*|`FCtY0i?Esy8Ci6o{w(1%_PD=$)j?wC3z0nY$NBsv-%h zueC|OPlm*46(avagBv6o-*>6C@qDm~^yqadYHak|;Py z8b8~}z;Px*54%9K>jR%3UB=m;mth_9mW*;T5PsAR;&%f{`)DvO_3j}t?w8Z1v#;CXIG@4YAe5}EN5JLWd_GT=C6l2B7$F~vx#wpHVpeZSa(FTFCix3~ zGo4BH_!<<&DGRmU>q#u|7P6);AcIq(Fq^K27BM3-o~H(r&3uM)ZXp?#ltX>{P1Kb- zl37w1T0OtxwUriG1?)t3xDlRr&nJt;xA3_y5Y-rurws=Y;c*6*zkN}*{Tt5h>V?{z z=P2Klfb(5;u=~CPnKf0IZ8ZmtKh`6i*%Td0+U>@2cb>t#iyOHX+K(*wj510w4-1YPlc`<{ zLiv90n%ld`@<}1$o=wA=W9fL$*@P?34`w09)9|%H8{3CJVX<}tQ7>~5^Cp~SYonLp z-%vgN`W}z&WslH%`wNzS8H`>V#%BzxF@A+3{xCIU|Mh@e5a+P)gqX~!=V5$~bD8Uu z@l<*Zz_Cc0k%I}y!Sl`XPa`=)5* z&yGS{vkhw&YexC(VO)FP1F?`Z$i8};Z9jYg+B}QYZN&#>u;wuo$Hc~>QfsV1+5 zpJ+IHYjB9vhd#zZ-*N1$tR<=OoP}0;fS$N*q-DjkMC_W;8v1|~rB9$89q3lyfe#C~ z#`e&MEb8=8KWYeUKQ)l`?*vrEy~prjJIO++93?YiS%`BzuLZZD(0d>|lvs`0*bjKM zYCQ{aZ9=v2Zj{R0X9bOJB$LTm6fDjSHTQwuOq?+x>%Jcq14hBUVF`77V4dRU)CdItl@+WtMVmCZQ+U>q4}s=?#C z4pJrs@;TiPtZ}%Hq>0L8_+bECf6l>!gdK?gFwEu!@sBVy5E%yEq!s+W-pmm%qD&1?by)NO9p*Y@T4yq?y{4FwY~*-_Ujy6CHjQ! zwI#?ks)h5wBEfaaYUmkvAvb9iuEphHz>}pYunj}X*I}@PA97>m5&QQp?ww6TQpi+X zzW)fB%^#7nz8lwPPDg4t;nqhfME&ELOuy{d>5qJtX289yi>la4$8hGfH3fI(K4e#L zgPl^GhCY?yJdgA}sqH#UBFX&-TOCC@>n@XMfggNlUm(@|sic$o6q(OgabYr&v`YC| zd_!8u^O7aQl{@ip{c9#jTqCUxJLqSG@Ldf}()dpw!w=WuO!`RD-;)dD7yl42GY*;M zeEz8Wn$={dAnW}-jM7wNbsr+|Ky3$9+xkOtwGYZGhGX8eHzXUV#9s@;ur7QJ$$4(W zE8k{J>RLq7;ZbZY*X{g^d@)cI$3}2=`_XVuj9s;wod}+R(_h|W+yXvlxvq-E3%p6~ zw>7%%h_FPK&q~bCl7!bYOuyPrn$yRVe#lVhE*^=(j}J)qkO!m%8S?v%Vo!c;kAY&8dr0FaJ7aB56WWabHQTE)uh^c;M&HNHP#N zWfN@o!KI$_uAj_dCc9cOOU#vY=WSxD?UE37J|S`Oub5ny%gp`nk!V~7+`#Zt3N}$*! zflH!9Oxo+t+W8DE?w}c_Y6rr|iqC`d&0!nkjkAi}>#|7>xc3-A7c)uL-5DbmJK^H< z@%EugBBUi1k-3Yx5c}I0clDCV_{cSfipL_{dd&TN!%AsDDBltNW<(Z+^}G-3;>4aRgk7!R=T8^z zt%V_ODy*2Dd9*`t8lr@IJ8rW3`wr3o)eXozY0Bo; zDmu8Ei15Ij&)?o8vEw(R5TLx0j1K z1mX3YWnAz2gfFw_361Mk368uDZ%Um>hFSArx^EGwPQ6N|MJ6zK=1iK2?POFt7HV5( zlEPE|yAHa;#MXA8W0E2UPZ%TIesc3zNG+eqI2Aj@=^rAI zizisXG1j>0D~a9&U{H|)E9&HPr6YGS;`J`bkK;PRWotIi)E~)@_TW@qJDa@hKGM(K z!jT;^ENX%&?u=k0@gf?}dfjk8hl2~;W*R|8|dhZf+ zaeX2=D-B;3n4)X3BT~7av7$o;zrVcVc{HoB=FnOMc65@pRwUO3{BdmgFEa6ZhyUK_ z;dq@n^ULbRmeR*K)_jMBzPZQs(NY92YG5hsE>+ROl$XXKs(%MUzKS~pT@~T1Nt#H?|gGJ7<R<6EXv&sV=cl2kEDGN*S3Sd*<#^(?FaToYz=}3 zUKXTJ^1QNTuW)e85!5-p#E6eRxa{kSw!?iGJ9ae^*#^`PQH7~Z31S{4Iuu+p#QCS& zSVvEtkhH#rv+aXeY5FN4-qRT8^TeR&l1<81C-LI+c$^J5Kyo^}QE8cqsELnA#j^{A z;hS-G_J25SDZ`=%{lKhCT{yWQmSwgt$DH3bh;BZ}5|e_l+>p=7_+86KAWM+$#lAb3VMvKDob%y$n&mi0$*&3Uw5+69SZ zYXpzV!0*eQ5H+lYztnL)1768K7Y4(BW+k8Tj77QD1+2W>OUj?up?Z1`{+qm(G&dbU z_1goOdvFbEmwm@NzLWS-p8HQ;sbYzx30_)Xz&G2`*m&w2zDBenSH%{-$KsKBU^ng? z^E3WU1~Sw0kk5OQV_v~{qCE%63ULt5{(*Z_G#&)sg~jnoO@VQmcfo4 z1^dTuWR$`|@4{Xl0a~-=7dt9SncFKd~ zhx1&ZU^$o_+r+xLuTh!*f5!BTJs&z8Dp7tImKFz@Nw-*+eK#!U@V?!9D{>TqplV%A zrZbiCur>oyOBa*1T{u$ur9jbfGHL5dVIRLHn>IfujUD;eJ;uU<8VW=;Ef+37kk=f&$*tTvl65iv7EBXQ>+! zUKNl+%|%?9!_OHLM^f6h85wd7xGiOf)}mPMeGSFJRNcW`R|1mXMFD*TpEK&0M9W-=`XKd0&8B+p7P5{8lZcu!b` zPa;E~Fe< zhZBnhlKEUGcvX(OLf&DZ!)J+0%XKu)2cAHvnaE!bUplm>`9B4z(C?7DxKtgiJUepWqJ1bEW`Svz5Iry1#IzQAb5 zM*GzKHZp!)jA2jr3GQo;k&dqlOxA_MU|KFhKO7?EpwG~mtcBUKraZ;6z~p z*J`h`yLac4_~v3fe=(U=m3olG!P_W$rpWG_o+TMC;u*of*TY??Ue=FgCZFb>QB8a- z_hDsPO=v$`hDtYSmgwV!8y)A+Fl{4DS}r2xtUsDMUO{O}2(J8Fh4#`C41Cl=TH!a) zLrdToC`B4uj^f8l3k+N0MXGmxqHoFz%vxTCUq^Y(cO!rXY>GiwGiM9PPbSNG7x6D- z0m-GhlGXC9(5S4Y{ykF6?Cl(=7;r5nO-VRWR)WFfuTuZWUS=b+11ARCvedAlEYo=< zfWyw<6q2aXa$5KNhOga-e?1$M?qW zmh2^)C&$oo*#T)jyUD`e6SYBdxc*=ZS-reT#shvK|FZ)w)Z3GZ<4EM#NFc1jlCu*| zqEtQ{=Uz16_=ai7Tb9L&b7o`jxE4J5_=A-{jzK_P3?Bbk!7kkxNb=F1_~7FMoz>4s zHaHI-42>}OiYN7Jj6>D*2T=OH9q{JfzSul6^{|CA-#2)yy@Brqyu|qY0^BcrOU5lN z*s!D?ZWm4XDkd^ufx2;=P!0rPOn{XYcgD#V4 z`#|<%|4W36-y*}nMeKQLCZZ-k<7f3JD9+x3@<(;}B3*-ZOXQHBHUytTw6Q5*qnZ z1Sez3(oE_@^hkc> zBixo)K(Z43*w1En+`m1DB$w*2x_JgjGuc539~VJ#!#8~XI|tAGt57vL5pRx7KuPyG zytyrf#*81R;(1rKTX;`a>WGTH`Xud~0H`aXX!|*m@;{CdQAT+4HiX3EqEP>Uds&dP*9tefVIl!V-pOu;7#)Bn;4F&+nVFxRlAbs=k+9zOs+G z7&PE|#TB?!H;{DCC6awH7x=^X1cnSE*+#B8ZRWGIYePx?T{!|xKXZ23ZG3P3i^Gj; zNWE$j8u`3CV9;ICd$JdwuKBT7@5dtiT`2XR^@(+FI*hRUe5Yrp54&FU387xGq(5;G zLe?%M#e0X4Trm!(OSm4IejLesu6*WG8OaBH#g*I%nDk--*Y!K`@yr&kHHV`carpdb z5hiZ6#cxFeRGq(r_oME!mrbK#zf=pa-OsTi+ikEiXh(I|71pV`0#3`$!9&pqQ8W*| zcXwk(oJAz5O_{x)?KUkKGHeTOM1#iSFXhCkzBj|G(w1LaYcDU zFX^4Bz=NcV=(YdF)V$W<*0~e-(^JLF{yszQ^MUwNvx#kR_CidX0pvq!NV4WS66Ux; z**1h^lOH2i`5d(GZp6QUI5Lp@0x>)X);uCZt-I{sH&<9ME2RFeA*?#p4pWtPBib!e zC|K8@j6(z@$OQ_84ywE^TY|HzhTA(giTHUp1tG7>k@BPsUp9B*6z5Ca6Yk;lfFlU~ zZjURGN%)-Z4x>r&%v^IK^V_%u76$gr{i8E;>RpY&Z*~gTEr+lpe=ebZya{uX%Vej* z>d-bio9zg0Wt%MTpoud#hOM5$GGvA$aQ7h;SKsA6NlQd7GDY#eS0wgd7mi<0!xJfS z{PF$|b8=GgLu-&j|5=3k+JdKWrZyyu=k z2V5C619g9%leu>tV(;u=d5ZU0=%^n&yV-|bamr+yHhPl!Ei+cK?H^lPxrhvg?8oWe zAEfWxNz%0m2&x}Q#@eg9xF^^YaU-vjvOy98MlZ+N ze%vST_yyi+ZS38=YS!SYjiMM8_N&yLefpb%oWOzXXZ>PUDH@9BLCx56kMDe1t>=Eh zJ2;pUN#-hpF^%{7$C}@gMeB7~DvZW~02SP58!o)GnT#VI%}AD!Ws{D_VogW{Zf|ZA zY8ttpy)qCQaYktB>!nKyKWG>Ui`NNRdflAlv)H1NBe;k?H4Kh)jt< zq1I?-n6U&GuTMnIK^Hc)=r@9IuIDqbzd~QcHXOXicRG2kRni)R;$q+zk0^({F?awTU-VS5VPob4eI5Xt?m#&F?1zutSUR~fyvn? zlcz$_U^XO=eZZ+G?m@2o2ZLm11pCIpv`iLarrGctu$S)+x{)cLU3cH$Gi__0uhL%~ zKP{|qec=-_<~3@&S|j^s^$0!3>q$;OhJDpqh1T(EB-8x~TJE;!N;^yaX8dM#hA;47 zU?ks7;(I{1Byjso4r#ZnW3^m|$c*|yMiWGsFewAwDIU0Q(_`<_4~&IFr=6r?;1WDXtNB- zOpH8hOJ>I(Auw`0gj=a(Xb_8&-*RD?%e`E2$8g;G3|vxAI7n5jMX81xoT7IN4!y;A z8M+UyBgKSkUhdq>_yJjwM@V&G9kwdVau0DbDTsw*vque{s3?>2F3x$X%!RAjKYlMQ zK)CruOzYl;4;Q@=5LFFN%RgvN9EzX`&B(j99o=uIBDBf~_cO)Onz8|>ogN~4(mWC~ zy@}HY_ux=vF^(Dh#dTH-fAPog4_u9#-fh@=? zupt0ZTNm*?sM|347J*a4Br)o%Hk3w1bFW)E95y?_;^=66^IifWqYsi^)6scq7Z&wX z?k&wsu*k|~?IUJsotda9O36(WB@bqpW9(vEf^QK6=Ov}a7 zWdl)_`~ZbcN8!Ik5r=~#SzXUPgkS8&;Q?h3of-(Ac|GtMegP7$eAh^#Kcv#XA*;Or zCwVTNy4!C&&i2Rluu1IiuyM${sfrlAaMpii4r?7%gb3#oY&7>VDo*1w*x_=*e{(Of z#>;nD_Tmp{y^{uy{OjzDgcDlNSz+t-)9lHYi@b*Q!tz=(7=Oz`m+lTsO>~38$?@nk zEGk`U)9|vc(Z>U&UI!b6=^x6v8e#ul9A}z@J zmJ{b~oI&rZ3|OvFhX1@v_}jD$N(*@Y#B%V4_TyUb=P6`1 zdmc%8TA-NH?HYs0nERu}*300RZw-Q5Do{#qPbul z+B}Cjl!pi?2iq1QptM?7#RzgCVNfD(bL_>0(`y`r@RH7+K z>MNXV_NQ$KWJHP+@_j$dXbDrlO*Y&>AVxgsa zJ;{9}MILL!LD02MczWds*bB4aNLxK<7BoxS1g_E%`V=0#?}v5sE18!OMet*+3ei@{ zAWO$3z>gUW^ZA|>b9PxN^h(YrvT%ZrEeJBmhL5`=AV2;roEn(`--Y{*zbwp(x`n-v z>no=7*Hb~av=@T;NTxe)KSXBigVRcGWZ}iHaD2gl;6W62Ew%$NMb95Z{toOEjTfL3 zW)9_F*RT`*+y;w;wea5f9xJ6>0BNV^L-!dKstcG@< zJjSK<13Ycq17?O;PAM34&N?z3zaFq+m3Lv>v_W=? z>1I~U!2>k@4TpK=1LUdVA7E$y0-IfNwM)F80-1ex1IEIRJ{3tEQ##P*n=SvLFt zTmCE{&fiZ6K9y;(qjeEE9Q6^}AEbl#?s3Fv<8Szy7Yr&^P+fWTui2Y~uq355fwvT<$h(v-D%f?@MM1)gO|5VL*C3x%uACp2YT2 z1F0C?!07+@k3=ne1L6)mb175=x6g~i6`3+7bG3!AS33ns1xn1l;SA&`yo5`)l$hNY z=Roe4T=M67AQ%SKLr#AaDEYYnY%_%`MTsEBN5F&`!k*&&2^g=V0z>R_azoH7j&IZu zSgGmcTc15lUT6=!`>kQZmSu3z$`syZw}ag69M}`R5Z=giz~uV-o;L6l7cXMaqxPv2_B0DKxBtI_=P@&R%LrQ!wCM2 zE%{JiUI~%Zf?Q@F!}Hn*I2T$*P8TS{i~eO0<1mxlbq|BazBV{3_)1qw&VgV?_$D5% zgXL0QaOmp^NEZCeYZoO!)TGz2;nYJ?oaw?!ZkGn9?pBhiHA$EenZc?&9}@dPo|V3^ z85XZp1}E!jtoqT#U_2)YoMT@Ke$4x@>Xk11_fOEd2$@dy2Z}*XxaXxEC}82PnJn1j!p1FtG7 z$iglUL8sCPFQQ6`H&tbIM>j(E16yJ;IvtAk|3}vAvtTCu5^i2CCued@VS2&?xP8or z95qmZmEvZCN4o&R2L6$&8yOhvUm<9;I!VJ#3FzxS4)NL&Brm-I9$svK`C&J}@b7-O z_vs$2++6^3b1I?bUZ}vcIRX=$H$zOJGo=0#_&gPdAwo3{F8RJgZ_Jwfe zZj&(QRfPv%g-l|T?QpuU4j#Wvfy|7l!WlaPTGk8$j{q^4kUEc*KH?7^POCxIb22;J zs{{NNNeFt=&#Y{-z+*k_1StlSSY3q}Fxw^M+4{z?pf96n0Qr9^{-Vzq_Wqo1on+#Zd_clDZQw`h0hJabM7^;Oiiu18v*d+TL z9#yjto03ZU=HxT?9B)JTC`IyUD4992T@EftekPCo&lCA|CUC)g0KA`Bv7-|X2}~Vb za6arM_&wa42W z`7E^wmIyV^6GIvDD&GOv)Fn_W+&?29%mtWk4Nv1bK$QTjUYh~xrkg=-l@mBg=z@gg zHc+y<4D(|ifo4DtY)Se9fx`VBacC86Fw+9hU11RUOc6ZB1VV^p5+uxPgN8qCLLHq3 zM;ko^e#rpDS1$+uvAHj6F1DLz{gFmT+IbPmiyZ;=7XfdF@;S|6u zYuK+`4h?!Q;Lg*nknMK?9@^Ln=b0VkaM|$um=RR!YeF8>f$H8e@UqW>l#E;C&s;Y+ z^vDZR2Qxu0`I+!;H$kdLFU)v53mz07fXRES!Mw&8>bs_cg_%AWO_Ya9e^VHj^A-XU z6CgH>f}{2lIP_yCga)<3nrBbJU&0gOyZ^wRuh+r)nmL^Ok^zQ}XTap+T{seT8Ky-Z zhWQDW5Sex#=6O59>2><7>MmKBnK}jnV}jW+WA}l{)Ugo%dclzQJAv z6L8uv0WWG53ap7gMuRg zpv1g^!YjhQoIHo|vQeNp{5`~Udclt2l`uW`7Mz;s4ZA-xFm8+?oX^*T1A9v03g^O# zkNE?fK{KR%{se=n)xfPf3>P)dvy#?7;7;LQXnSq~sUbCRp|D4I->$&rr81B_yAs-8 zuZ5%yesJ}EIn_Gug_BNq12ejWNpRDH-y(ljqdg3tPRzl|CJXjNz8aog(?>UNtb;hW zcA73E%jTO#kjQKgI+XQ}s+-QHY2Ut)s*IIHEu)x>T)2c3y48ZV(*+z@JdZ>q|D~p1 ze$r73onTgmBfYkG0&O^J1e?EbRPBQ`8hqFei&x3PHtpy5;9Wi&`kxb&s1L)nTYpk< zjxs&l5=pq!C>oRLL#nma>CRzZw9i_V-YIBCOLbeC@n0&vbk>dgb!^uBi>3{D`=KL5 zToL2OB?;{0o=a5xc@ExkX$G&ZZ>-UqIVI#}k&SR>U7@YQkDS5g?dQOTc?v5DL zJ#7bx3lXANL)793JhIA-tYLqH`qGb}v1>N&_tv5wKm191$yX|0 z^9G`2R$%Cj14MG041J}S05{eyg1H6x+}3SCV-n49W>teIWdAhkF8YlQalc5BgC%`f zQH_4W|NGn(4#&7xGv817GB+LD(O^j(jtFpp*!n@VZhi#s=HFr3^g=}5-*iagifoLp zornQkGO4XS!x;|v!+FaJI%suL;KikrReejz7eh%RTB(T-dL9t_l1N-3_#KT()QOX6 zJ7=6L@iOm*&B7p^2t+h^^!!$oGx&pH#^XhZTIL76`)@g^YHCi zp*}O6L<2{&5NUB2H|7bRtacMxaNVp-EQ2MNgI+?Q+(D{y-Vl~ut%Gf^YUt#kcjTs| zIrn{5IxQ;tPFwaZ;pFGH)6?QVVN1z5Y9?91ADk|nQ~GDX?qwrae?63YQqcoZv9?0y zgc_;s5cWqW)nI*1EJ;eM0WU)*=F^^syyEl)?8wEV1dVtKj_6fHiM>yGwPR6Cui8S~ z+CGeg4k^>M(;`?#@;D^#7kpOrMI;?l*l}OJkkL+?>7SAgnrCy1wBCD+v$x#jjegI> z3U`5Z7WEo_bxbF1`u)PWbOqJ_hT_fAE%;kS*tz&A@ayKY`~~+pyzHM9pkeZ!khsg7 z#HK6I?3c)@U5kc4=X`MABn!G=rI4lkHkulAUm@$i&ZnQ$jOn)T1vqR*D=NgCA#F*w zXvjw$_P;dULts6-hAQBI{Tnk){>uWr$A;iyJ7yjrx>xo zgkN52fd}5P>>~9quyuS2Ka3G)9q#4O_^rD1t=f4Awf+R1cA4~pq!{O4T1JamUv|R0 zH^TmOfVj*vX2$gwaDn^N__fmeaqpyLQj(g66BIk~u;?}j%X=Dd?i%PxZzWZ)dvHm* zu#tR5Y?mS1OZMLjrnZWA#sEy`vbu?`#9d>8SKyjrD zm7kghlUmeC`to$v+G#yMuVp7ZJ#_(w^xp7eKjgqU!BcD%TY;CK&!Ww%vT&dOaen9h zU|<$0!0|wFXc$akHNz6g(*zBwT^tTl3U**rm_+mp^SGc;G1&U|GrWazh-arj)G9C0 z(1f2f#$`0?+&PN+ezAZk;di#bzeR$Bmhm>?&9rx&G@addl!m3g<_!$)(_{xzSfBM7 z_ilYauEx4S{hxkx8oWidjV6;)aV^$Ne=EQJfiiF1X9>UJJbAM*N5O8^8hYuRkwweF zJ{&gSiEL0ExmI6>JF6G)j#n;0sF)xcA2LRB*94l;y^)x3@>Is&U(n!!kIY zsDL(}af0{60=C4t($C(rL;;VYsnarXi|0DON#f%l5POXfNsCA(wqpV9QXas}yBehX zk_y->>|svNxo44R^8>A~UBtJcp7ix-Usj{C0iIU$g4M3M6vg`C=HXW zD?0_=wVdc4FT*PNjOGv4rqCPZrA*rqSCS+l;;p}GaQ?BkndIjYbizhQFcs6}O77Z# zay8}0WZoqSGe6;hh$lE>^$QwzZX=vLr^-%Fdy1LiYlOVRY(5~Xo1I&thG%q&X-#?* zy|nUyXsj1c^?v%$zU2|5N!FX)qIC=Q_E88OGa!0@=@%X91tvB74!E1#hF5787+`W& z@bDG#nx;AAS#=evTK15xf30AgE=GUdd;#l>wct}g3ZC@J76Gpd6C+%it=s3)?&ssk zHNR`z?C5rWhW!8&)0@Y<-_$~$ov0!|k0f$ol`^EG`w3$suz1PA5~673#cI%PFz0av zH~tLEs+2D!J5!c0hxdAtdv|WL11;>&DKi0w zpFx_|UR-pwne#dK6I4E=h-;fmK`f)cCGtOqBE*-u?5FU zd7tCu*0$p1PcKa^ zEn@NH^W-t4cgAK?+VzZ1ep3h1_OoGC<{Dmnb-L*BPM%IYl0uSX_n=?U3q0AX#)K^y zLzMUGa$b+!F-e;;;*Fa8bel{veWemc5Fpu)rdrevRS~hJEW6iWJO0r~1eH!H9PD}q zp}T(58HtG?r`dwz!aRsp;W_8xdaulh>RPixEZQnBDuG8Hn+?`4Z>BzRt_QvtKqX~J>~Ii_J^9*r@W!Ww}z zruwB|zJ$QLI^@nyImz+nI}C}_&lqy6pd4mZZ|9E<5lsFt4DIrrNP^&l)CtXlmH$np z&u+(}PQVN5qgjgne~-{#8mH)>q`K(Z4@;Ezv=yV>WawS%qg+sX3pulL0dvm20;|fO z(8SVvtkLz)u=)Bs6s?OT6Wv%c&~FLa0a~ohi(EJ-a~4Cl&B4c}e<5Y*aV*P_BVJh@ zIRD;VvP#7lWzUHCv6rKyi^>zo9BVh>avyvwU&9cr#w{%!FINcrGx`3+5XAped4@ z$gdMscth~(Zn=0A>;2c0>gm$dSG*Wj=Jkl?X64bkQ^#QA;T8O1-ADY$wPw7Nmn|If zwMVD3n;`gA9t>YNos29?p?XIdPQifRW_lFm!CbBE!&Z5mNX*^>$59}=@u(XHg$1FYqH{LI1_>f@4rA)lc|RBsS`-@ZWpR&r;hV`){~wi64+O%z`6)sn$1FYtP<;lg7jNZao3M_ z_v+AcVOJhiF7)-9`&h;J8#wX;i@oK=ycp`j${I7WCJ5+|l`APQ+srCtRba{5FML$O z6#Szqk0t6ByqV@tI^xZ4&Z^lQ~bVh;kbH7kW485Rk>uLlJUx&)ja<3>L2{7PEI z-jOw>1t4#@f)#^WTyUcS;*ZL+cCiPTw6bD4Z^0l{-d-W;-x4W?JpNSl8VJ+nXsmg~vD#%y2c>X3lNO@~qaVHvGTaHExG za^%s#J$9Cf8Fbm2uyQ|iuui9rkBm#CV5s17i%9(3>Ow(6{pvak$1U^6tqGH2mLA`DsYyZhEi=?$c(54!PB!B6*qkZkM9%U&yhuVdHgXB z5(sxs>bRh@Z$oNp2s~0=HqL~XSY5*}dMRkxM$KW4b*|>p@*?0=fi0v<+Tjgnf4n$v zHLJ?rXC*t{V@{zb;}uy9#sf3yAeIqDoh6Vr_zd1Z{07Ol)41c^&ZzTZH5Epgq$#!x zW#;AK=2Z(JZrKU?@4#&Wx_0E|JR3&sa3_X1L{bwOo;jx%fWNK{pkqV=yZFFWvZ!$h zPJgn2on(E3=y^DDCv*33N#%viija1gC;1I)mF8pS?*bZP63vybWl?qBWf)cPlqlDJ z!AzsyymjJQyz|PQ)~URMFJpY+pF2-0H#{LG18ZsMJ9Du4Q!g;*ePL|L8b}^~2u+vu zagT-{Cuhbr&CzXPSJ^{g#83*B;4QRiUFXQ%uCrvRKtu? zwKKhOdC@Xjam#|Ay}_0$NH(wwK4=L1i&?zX)H4{M-$U0=_MxTcFT#wDG`sAp9vy2h0Ww7?G$kU3-56dB*YovA^Me3hsp=FpZ;6A1=5aVSHk@o+ zQA_{bP$f6p%E+B=1^gl2hS^U_Nw3{2dhtd&ihXY`jmctR)W<3ey3v7j#WK8cSeswi z5=@)mFY0t&Awg25oc7u&IOZDHTpPG zD~xEaOM+zkE<9&qz?|}YkB5~LP`|LB-2B@|9iA~Xm-pu_wVHWnPLWr?(!tf=(O{dK zV{qWnL?(LQW;*zK=X|bC2_yBpSed-B;DGnJPw@=CZgSxj{t{X+N(VHu^{5?3(c4c7 zJ0+&ErWt4PyeG>`WNc+;c`4D*!+~^$vmDN9zk|Aa&hYERlX?9y{5e|QS(i`bRg6L9sVhzjxC!&L9iZRs z1H^d$gm&)|nCfziB!#<@e~py(zGQHfs^Bg3^kOY#?(?HwA7K~8oyH1Qh5Whn(xS$u ziH`bD7vnDKz|E$URHnj<|0nVgxSU?9zhQyd zA&?2Xha-|RxHp+RZ2Oo=R%v!}4C&^qK$qS$>q$EAEJT9nA8X zLQ~FL(yuYQ;6Q1v#o*PA;2JN+58F73Cx_p0vo5-zdSwKeC}0txG0WxxS!R19Z2K1=1g9RGP zzGbz(j$^gc)7aC~FOZp8qgW+*JGu^>Q7PL5r}-&jvds>g}@qAPjd@FV%Pv_ zxN?S&DXoxYri{Pd_fXuUL#&1dNL*nI{kB{Y6)Nq~FmW*}D}RI?`>%-`=G_MwN(o>r z_m7-*t|zs1k;K`g9dmOyeum0o{5f=nWB0YQs$V3@lbG?ue3TEDqTB~3M^1%z=9^hn z^ERk&%Y#pyN*39%UR3i4qLV=vYAhcMZZ_}Hu{>Ph83}pF$-3mk(i{A)rVbJ(r9h%j zIFWaG%AoUr<(`^P1ka%YNRQS9%PHxYWfcr7?h6^I@(MUI*@qr#vV=?D?~&vMqiOW; zzxYpbAEs#+kUdx1m>HYjlV(PbP10V)yFZb{2V(~Kaay@J34gM|>i5ajC+q3e%@HIZ zEDAc4?Xcg{7V_N$t;VE}@Z_2iFhY#aQ+g{_?QcQ zlnl(cBSuQ+X4Aw%1Frt%WgMA(npdsfkNdO3Fz9FsymZQBhYNMI&E_4TU9z5eq0$OL z8P|Bp8WH8Z?z8H?yM-+KCG1EoJ7lNTlMh1O&^pVN9h0C&u7ydl%!d2j$m?k4pC^*ZKiW!*HE#7nrZ};%DFT!2|vuc*)H15SKOuA!G<< zWf$RrqgA-l;4M*}(1Ot~>*3C$N#x7pkFafm6lPp4ATCE@neqC5qQIyBplgK*GZeH7 z3RTp2jfWL%zTS3Tt~Hg&KM>JO_6oUS)klJ|D`2gb4;m(K^ z1BAX}6flRx9j~}+Uvi>>yi#Ba6Lr#YAz$;A4IVD^fDY?wHpkIbw%U^3p#T{+|gRTbTjgzI)Kxv>7s9*@(_X z9^w`DD3PD@ILl?GGD52brQAH&gGv`zhuII2wR1t+ z`Ibz1ncx$b9Zw$I?%|DkCh|{WidYkd^4j_GL_J=EyKh!YmK7Z&nulCqg!WnJ_8B14 z0y03M$D2mj9Ke?)N?h{CLK@We5*50?u+mb>U|~?fdmF^D>rNbj`n!VvA<3VJ`&Y>Dd%HRN3*GEZi?feonT)lHe%3 zY2*ocJC@NTOF~~8KchM2wXFH*AXa65C{{?`B(H3d?6fFA$vxk3>?Ip|EBqnpQwfBf zajP&oDuMKpLqfjJ7G8GcClWUFgv;DH6S&_fF(k>CX=fje#H2RY;BaXh0t!x4YptU1d=M0W&|451Q2$i9d|N zXCH;tVimmDD_5}1wdP)Z%LC)Y$7FT9xyZ{|Ntk_58d6ZnGxwMBy5>jtWw{kF{EY^U z-|Y|UlP=Le!dbbx%?Ap*e!)C}5!pM(k6pjy1?{eyFPuyEi3tgdN-I6DYb=2gf^vbGQ3E(GQTP z(jCXp+~+TBR_^}dU)N_QI=v=%U z6YzdBZ#4fGQPj)E3bE;sU-28h@0|wsj*O+AT|Y>UT{baIT_x}@-2XrCCU?Ii(mEk) zV@S?{jNjlwT-J)yk%p=;YMCz>s{i6--c`ZqKOZpL!ylVn?y-!kCsXPyM=p8#k&1&A zm^pZvANE0>&ZxVEtL3j^>h@;3cauDsdTTUkpZlBKo8?DWqIEwt;*sM&;K~nm z@S1oK$8HoSdPi+hYQPsSzi7a__4BZLvNsuLkduR+Fy7!P4Cl9T z0iELH>2FhRm{1!#${hmklDep>Jc52aE64a>d&R2JW!NA$1s*j=;gIMiGiQMqX6*UL zm@;Gs+w7^o3f`FIdv|suqzAQWs8;o+u z>m&nqu9gg!C3qEP7V-2_moC-)Hj%VVTSKa5+vBs3jwtfvA?REIgjzg@n;M;r`O0Om zJfMZjzgY;m69nx_loc7i-U>&k`jFs#6Jg9^b!J3o5@)}ikQmoJ>?o@ZCD_IXsi=V24XvjPu50@FSA-e zD&#CpJSO-CA0{KSb2g+6cJq2c(^$PNT{!l&Cp~UC2@KL+k&t^jL{g^#xDlsmjXxpg z$~v@IF`aDoISD3%V{q(&r)1O6J6<{BH@eInBpts#khjBqa6)Jm(LV5qRNty0^-JC1 z@DUxnIPN74eJ~d9)L&;UCul=m#})2jYekvjcb@1TTTGrit>V=K@A9g(P4wQx2kb(% z<9Mf?BkJCV$q)JQ-1{>-xOyXhcG^i*G@o7wcHbR|g+v8A;zw^1Gnf*T(76 z*Lbt*v-#N6dYpC37)BRV&`%zkBuX}yUL88jD#rOku;XIZwb>I}g8$;iQPVI=zY7$D zEKuo*@a&b7@OrX5Ea7k9WxII(%o{0ov*0^)xUiIdHtH;08|;t&WCHlfQD<1iUQ6b- zb_%~*&{fOKYe(zGL)^>ZqiNTkZ#eRGCM-ST11rj0p{g>M?3&~c;}rzG!SFdaSGY4y z?0Z61_h*uOziYtG>NpL2A&s9Lg)HnBQBW3MOHcZXk#A7~H`(q2YQEQ@SB{QHWsAeG z=4Txn{B#n5m6Mq6iStpdZYgeASq(+Y6tK?ysK9F-PJeE7;PtJIE&1!J;2D9G*B1u-OQR^!2|Ozn7-|>2Ncj_tEpaYaooSL8Id? zv|z$Zu4-o+cm4Kt7(8K2vKqudI@XoDzD$XqaO)>5{AWR{*V|B^y9S{6W03T(+6P%J z%^)7;NXwTRV1H5%hK=)}e|y%D(VYP}RcSX~yCBJXEcl3ixtHm{d?i@ZsKK2N=gIW1 zhe%q8kiYBEfW}9TvNEy1G4q5vR_Zgny4GAO#MjV{Izjt-?;s;yo5_3_a08>mrg zip9IIR##dCy6j%~^~w>F627vJS2^&LAKPfL`RY~tjfQ`pER%b zH@{_aJFh5H$?vPrgx0I>0{0DI!Ps2#+?ov+>7wq*KXBWm z4jK|GPm)9<$f6~NU^-?MIpycbs5vYFlguk@_(BEDziY)e-Vi6vIv44Ry2Es6-A;IZ z@&fLkJDJtokVf)llu-HcJXR_por)@+fV?bAvb0350U|msM!pzl^CSKn$&P54L*-qRxb-U?nGMFtpxFQr z+vo^R9@;os*sYA8q|SYftE5c}!eON5HX<{ygocJvIJi~lYm%bTE$cAoWtnjYXXlX@ zOA4q{!w`uId=HjOLV5AhFEHIX7$?s6Aa@cEVbab7GWCZkx&3Y&2O|zpt@c~IQq*gH z@`lm;froBzF(`*usuRJS{&ps3^P4A~nVEcH|JmWAstSE!EzhX|iw&=12CSyo_*hE%)-&vBk{+x(zlcOJ6 z)X?leG&^p#Tv^03 zTsN#*-+*IEKhR5$SRApol|Bl(PRE>f$D-2t;MjJQ6#cnr(X__jqD?1bDB}WMzAcxNf<1`0!db#I-%5 z>%a7q_=a+t)x4a@2e-guVJ~j=dL?Lfc<|FJ58?l$Cl2TPpCuS?}cagY2_?$j=jYm#SAjpFFpInCz!MoLJGOlhgIB#oN)gz1iy zC;dLD^nI)gnwbA3YFX~|Z02&D*`3R-Hf&(U_P>OzT~fTk*pHYWGm+ITlA`$y5@f-m zA@Z?$KCk*1SkKlgFeZB<1b=+TT?pNXs(vZNN62!v?HKVAP3DPQ14J}f6>1E|1-Xc?Nms}}q}&f$%OnfqWx3>`ItCs}E$g)I9b*x;dw zzU8C&F~5a8@XrxY<;L)f#^@r=>Bl)^-_c^F=iD#R6Fz`DjFB^UvupOLan3*qiL;Zh0U?hEX=COM^XS5ka~xI#AoFLr{88nr6?a6#V4L=GP@$2d+t(Y!jHc&66^5?bIL4&aIW){@^N5TXva>YuIy~(tSMW zEAU^qZ?x=ykb@0#sNdWIW+>*JsMTK3*L6$srpEc~T`rTRzqw7`Yiglef(PC7E?`Q{b$XI1QPyk=h=aMox@~g4$jScAC5fhM%|KRazqGhu;q{MYoNfUtPfb_i+!1 zXI9x0;|fUgnI!JLr3!8>D#9y&pJ4I9skEhICS2*N2km`I7+_HYQ*j2!{!Ara z^XjPn&@5Ja@n3#nk&q|#%z#(2y8<(hMd4V7pwfC*F$gz2N9H~kG}`{Xa4f8dALIWT zv)+W0ycfkV(c6z_rTR#CrG-qFL#O= z;{3U0vTFS(5;HRbC#-9wZwlw&h}<`zx%CL@`woNE1^wjP!iQiOnP(B5y%ZNr`7PwN zAIIQ_Lccd^i;&mA!0OxmuwA2{xt!}qO`}cuG4&~=_(B0cslb{!7Az*@l(n#CpE^ZN z_J?r7u1O#>0AylpIvIJQggKlNjVIRa;aByPvuZY$&y4xLpDc>`TXSTC%7 ztQ#%RH(#6Iz2^pzoihaWH{ap>yebHNwGJnwr_Zlsr_iRFOY~U&1r`c~Ik@w7XlRQR zxE($G(*A7Dyv>Z7Y!%p8(+6?fk!l*CX->5-P9d_gI;Ho8=Xd_|U(EdnI8kpKCz8-- z-kyDejouM(wv!!hcYIX-{2n@@V94PF78 zxXsBan3cVjoY!4VQVsR#hhx#8Me^WmcL49Cauee{my-&~v5~gf z)@wWY3D;!k9tj7k?rKkF_UGd0f^N80eU^(WuYmTS)#$3E4nD z>RJDzhb*@I^Jm3pq_F|+TBJKClDNsVl4E+VWL;YlxDWb4;fYziVM!~iu< zIq4GPVbsL4kYMA;TMYhY(%h|Bx3PcNk<<#j?bK0OX^@=E%O@Ffs;soX9cwv$4eRI^ z!*A4l$Itv`!$Z>^G_zKqpJg^up|T+7i#+%#w<7qR5)3q1N8#|{S0J9Gb7j_NnA&kF zI73|pFE)6x64^#5J1Yh|A`d~h(`|GREv8BKDFl<=3LlpYFCF$BDi)6B_iT`$JAPG= zk`=YEBJu`a)bxhgnGy6PHwqhL_mSKmm4dFb7(S^4vod~B5FQ;%PWTpa@nKcW+p0Ev zXX1lPCB8$9_*O9Aznh<1@6Q{rb|WL?MdVJ}4pb3#gy&>}z{!7*TywRcrK<+PcV;l| zK6r-)X@4h6Bj<_2&IE${Zx2>=N;D)sC?d6wHly|faTMkT+=X4=Xx5JsMzg3L!cNR1 zz6&x?YxM{6u-p@EXUQ@z^dyl@V2FTbyk!M9DG_Tr@E~XFNM^%Q6&SFJ$NZ3!-N3Q`ljpH*nOJu_SQG z1=^S}ocBZ#hM07q=$1E(d+bK-R$oEf`HZXxEQD!~uF-?h>Zm#Bi&x85@VY<0vP`d? zz|Zy&xT){Z(&sBVu<;6QdhrPJ{ocTqyPx3cxk65C^lzG=6HOYc_rgL~br|z=61wlz zgvuZ3*wi9I_4J?kbb&oPag92gaLSs*?@b|hnyg6RwGOPWx4?0y=CQ$fiuf$o4rhiu zX9FKECjTm*k%F6AV3*R5OPlOSV%}(e`pj-rE%pF?F9V^sETI1hdWB>&JyBc8Z>)`P zK%e}h{IFFfaO=iYyy-Cv_6LU3ix%4;@Q*&3KR*X~yIY;M9`aN15EgOhz%G= zHhrJMoy9Do5LZV8VF~W2b7i6?G_XdS9ME~O;6D@JMWS9YB(pC_^jN(PX9+$>Qoo5us+TPXupFfhoAK0Ko$8LF&86>U zY8+FcK{C5=l%^dXzup3p`Yegi>!szRl;FzKKm4fvuXLTBE96vJ(b@N=lK2can0W9u z*&;kg8&_$ngd@(K zn@W<7T*nwOIk=JWgG`+=1PcPi@f`mZA9p2L+=cn1Cr^tjShtGb((#dKqv-ewtj zU2FPCycep6I&t;ElVBid%e32z*%6Ozz+>x2?&5?yq_so});Q+jk@;azx-x^6DVKo3 zsk?a-_7w5YE+k{x{v-F}%~^-4I}p)giuEcr&_2HoQd$Gq!#_+wymtjPSn4LINo8o> z;fZ90{}Q66c>z1hF0pQLZdeP_N`X4$0n}&}8SB-wWabAVE zsfKcYoX2xbf7ZirgK5yZ$`0>@IKge-(fr!lXFMz4jU_!7hhqc;^WA+b8VI26)t zn=Oe!VU)mU(*W11KD;JVO;yLXa&Ch1&rs(N_7p#%2{Ri>c(?}YKCgjHopGSMnk6mE zFYw1s*Wrv^LWcWteeU5dA2?8=%mghvPM?Smqq#dQ$@a!9c=I@b4G&c1N3cl>{ zr5T0MxpC;#b_*n=cah$xne>B2BIq63!B453L%hb+37prrqPQv1^jo4D{U2Lz9#!M_ z{{J`6n&(+_W|^ydKQCiuAyY^q^OX5z3`vNJB*{z>6%nCx-$(O+lA%IMG9@IWjNkqK z+(Z1hJz~=7WZ_5qS9Dz6U*5-m zg53Z8bh6mHi26MJp`-0k@ssCKY2srAsjkXW((}s@qjGEH&L2NZXB!T& z>lfXze$*dv*q(6N&g-H0?zUMx7Udy4PVkkG@(8)&!qdX|JcHQE2WWlwqcT2 z1<$9e;kjQYv2w1T^m3FM3wPOtfi^wFWo18ETcEf6z@Dyhy)AE;>d%uHdFdk=Hf<1x zoQe{i&%8tEzgF4PF}>l{e={D&d9$($4bth8guV-%L}}(b1c$0gUa2RfqirHt4zBSG z+{^nLcPl|u-6Xz!?u70YW@7QuX0du?3u;$JBd^CLaiU|E^v(X8T=Qa!+*OHR7hC6I zl6GqLd8;;D_WLEBD^5iAg_ClfA&E#IGEmYVVuiK7LE@0N{l#@d-pg;9+Tq-VyLe!e zf|cs36Ax}>sYM%P=eDjOyJS_g6^r<`V>DVXR*5r|qq9x=$)T{) zLY6=Oqcmhr1Z`g1#Jw*L?8fZ<@@|usOY42MNIOcqx%u|mJM<}CVUF55QdoTPQ6LR$1v0|q;|b0scTG^py1(QJuyc+M(p7@#S2 z-yS5Y%y%Q(S}nPGCE=GvYi{^ zC0E4~>Uei5OF7b4Tpki2rPq8D*IR^(yUiX*Gi^$xCuPdc+i4;_E* zpyAC!;KA?ACa%9UU+8EcJz@=1ArkXDe+Spe8Ce zUzhiL_d{Bn|4lOemx)D(?Qwl)1^aT)W_3lz2&_JB@6w3 zab941M{(9vMM<;plqeP!$alNGmUr_G5(6`w-P&ZpIneW{!S3N&YbZd_ke%{EJqAJIVji&ZeQu26di)Mlp`tH6sKSf`fIQR=W zP1VhQH?9ja4$u}a?@+*tp@RJAg#J=Q#tg}2+j&BHqxAG-Dn{#E#+C|y?*tw07-@?X z8ejF2CTL8+4Xb3)`cOHh6<(992a=Rd^nY(bzss(fD!i0So7h8kr*{da;{c&RQ<5+R76sOeD>Gtc zuJM^-_S|Qmta8+wGmPw|@ZW{aU$(-44<;4nyG0 zUS3~YNb2=w6LlFLj^1~g!~(Hd(raHNwpmw5JG)<(HcfO8Gc5u{|IYp72`ZyR=P!@o zW9>~HB+j$z+8KLp{1*QU<|p00NO5CyhDnZBDCE~93G1Bmz zB&#<2K^>=z6z)t`k>nZMyuVcw8TH&QwDpW;r=4W%QowEmZM}xH$DE)#;ZFV=N{&VtqfAm(#)T$qJ z#*dQh?NUgXWP%r&ozPu#I?thwCu1f2?6ES^017Mi)IaA>)P zTwPtCv&rfuP1QqE>YNwSpVdin`<)LYw-KIfnxBT){4avMMh1)9_Z^T9oZT-CY)qBT z+`J(+&*$#y+G&zy(Lza2bq4PEKa`I%Bci|Kr01i0$~|it`fo8{iUn!1%v*gWHH&mH zOg9qep3SETOZrRwB6v=;dq=s~+y+_Dzd=&U7H9F0eIhiE50F|pOKMwaPb|MURf?TW za=#~&y|qp?!)|c6)cx8{l=vUP&}W=xH~Z)cBJ-;Iz$egryf5Y!xqoms?LY!Z|3`dfjdTO7cm4>$?GRZmKXk9#BO*>H4Pby6CT?#1r+*vWR) z9u(hLWk|N=4NS#zw)jpZO}@h8ueAB@bW*?bMN;bYT+(S*5VJ;|XY*Gyil_3qm#Oy- z?o`-{@SEMF=#@cCe(<#1%)E##zO_HwA?mE`*Z2}rUp^7%?q-rxZIajdw+gK5iX5SB z{%|oZdkvG_A0>XT9?jhQR&a)&ncSzfSZ?BM0Ou2d^1c!0WZgTg$JER};-$dJvYnfF zkK(7Lh_V@swq071Ma==}`JXDu?RYX~RNG2j-5Y31W>1>)d?>MJ3bF$u?S+ZQ%q2Sy zOKDiWKXclbEG`b|jN_+2Nsr#Gl`C#MEni)H4ne^wIJ+*AJ(xXRX7_GW_Ljf^Npw6W z$qC)w;n4=quVuHj?viPGKLH{6dtK^zgDB1J4X zFWC(970q*&ct?1=W2eLVi}!lP$q!$*qp8Z{fYwlqaotokuQdh$Gx zhHv{0B?D9RzfmV&k{2W&^j|oOSMSNfw-iW2w2Rq?d)HuY-y(I&_?jKQMnQbleTy`9 z_D!itMfR;@IFwNkffu_fiK){fE18Khacq zN5w`syzN5$Q@!P}pF(iHT8Bwly~VA)-pjDON%+%EUp{NYDVPm-EtKgFmk-~+jD50c zWM=xq*!9W+K?-dmoujt0_&+_QsZT7W_)UJ2>V*SRT2~j*s61NQ_yF0uOB+dT|9<7nJ7Z&I_kKi6f@cGJ$a|A= zlu25$Yl%30be3e~c$oDnE@#on&8%V46L!+=FLl&(kZ(V;Ni4~pD_1kN791Kc%Olp! zm3qZAuwNH8urG=A{O6O&dRn0=SgwZm&CCigM?k@ zKeD3HN5#qhTLgz|!`Xa~{o>Yri?GAEPH5SxFKu$Rl#XjWVzcxDq%^(vGI?Dy&ySl( z!$)tCK1Rl|+*mhh3j4_p`znf&UjD?P0V~l!OO-=-N!gckxN#PQE(93X7WR7{`EZDrL-wKb>n5WNK;O6%ic-}L$c*N z7x7;Db=_sJI!~2b?;(usmevr7h)Q zLm}SbOm!&070j-t*>JiiqmW z`bW9Rs(+Gq)WcA=E%BMu_1<#v$|G&@l7&AeCpAg!-qmuuqFTA`=vic)6Dw(+vlLp# z?-sq6PAALH^V#!Xw(LN`3@NK}06Rx*O zEALsdh$N8|Dn^PwYj;V0nRn$w&Hcozuy2_0wT#`5uoZiZ`6zYCeJ8h$_JzTRT?pMU zl-ZUp7*Ob|AerPp#k@bS#LaKMF;(M6HdLyTPdvO3J%U%$j&tKAo6C8U?(X}t4VSZ^ z^EgGan73XsKJkjL`EEkhY&WUr3I!%y(_naYmc{yPV~Zl|_?)33J3Ol1Yj&gp4GQ7h z$J5IspZG^|yZll~_4El=WHUj$vGI?v>thxQ8@PLGh=e7XB~o|e1lmzBSn6%cYiOTT zB###>QGP6lX85^FTKAIUUKtggTxzNp`^2Bp}cec zaO&1EPO_SLPttPSBWm8M6UMAnVHxJ3Qm)EU?D*AHdbjN?dwe88`VqfJ9FP?)nHen- zCRO|r<1TcO27a(b#NQ8?Jn4b(r9wk`|JX$ur!j;jTnU%rR=CryLzyVlNFa~3e%SBv zO^Wp@kw04S3u*yZ*s2@r*!D9#C%>dZETpNhN?+(5x+_%L*!wJcTqe;(vAcNQ+?sXn z5GYC4N3r{x9*Oa-&G@_SDpa}uq&BTwY!bt~cY7@rJ~!zhW@lgAd-y_%9oS2XU#=k~ z&d$bw`;jd6+HH1YNvve$JdkssId8A@Jfcf`$Xb+6un(IyOQ)}1#jGE*L@!fcm`g*X zzoQmN%{valdSR_l9JF3;bn7_p=?fJDoYu3iUwB*>U*`Rn_g<+k3PbIA4@~*iO*#_G zJpv(X*|AR~+h^;Lovx}SUh2gAG1G%3+4FNWc2a}bFVRCxP1-DJ7a4mWjkXk7Ts6Yx z2a5kqIwekCo`~o-bENdNucW=d4PBn)vG(;^tX=(tr2SG?Zdn{8H{Cj#owv3{?pR-l zP45&G)Qc4q6gu#`j?b8>vsSNMHf!F(CBgjr|GPQ;-;@9Eam-u=h5z0EcT-!%zbyOT zGd9~N?SGHd>0IRh9{=z5|Mxwao~jkb$9`tZVm@*PqJMUe_~Yzc?{#E!VJ@@KZeVMl zogu@PMcF+gZZWsM{$!W(T8KX|f(=;tnjCW8Fl=dKLwd|0rw+yBZel6?K4eVx>8|7$ z^NJ}ZR0{gf|B+j%hHy@~LAa{>LRk4o6ux*25NhjM$o|cErgqPPjh~fIb|L?Si_U?p z!^}0*F<6VO?3yR^eVs^FQ1d?wRiCKn_Q$$<^I}-1H2n zqc3+Cu9{D-U9!ljA7}fxYmm!-iDce2pE|19kZYkXnb>dkzTR~=xtDAu<1Kt1sfoz$ zvnHADkfFArk!hdk=Kb0*0*|K)%xjIB_iT0U+cx;Y1}t45JlHW2F4z3o>F>Aj%*+hk zyST98>KwfEG=NQnCfgZXj#oL>nAyt`*A<*F-PH@r+IJ%(?j{z+x*;%g9nyJ|osZWH z{H%|H9l2xhUprD*zZXW_3o+^L6SVZ)1HCnS;r%ZRe=j!TXW3y=J~RQ}gU{k?X(9Ki z2jlPWQD`@_CCziYS^u0mw%b{W`A)MJWUY(YZq8m^m$Zv5x8VHb^BY*i-lMoWtWYRk zyPpiqH{pCzf2J8}NP6ZQacg-R>*dmw3_gZ)-`!i-6?dl&8O}U^&-wG4$C3WJ4N zg5JrEq**+TbVPMBvbSc%&k{&)XbG8KiDt=rf0J6yTQYKJXVO4zGK#xHRwinwpAkeI zu6dC~z8e~LC6GyH?j?S!j1Tiw*fYvyBf^{58^+_W4ZYd8oq^Cua%F!$y0Nae@>l^s z&(1v9m-I6GpxJ9KCO_uf@9z5eHr@;4^)*R<`2)PZy8}OZ{9}I8jYzjF2usjio*ai0LILw{K2G+NzT>zwlO3CUn5?_b!pZ3AtotHu_C8(_ z!kKTlT5G^=`Aopz>|?xFA_EGKFT?j}JkoxSAd5)`Y;&9yng@B1MdV7>{rO$)V4F)O z>x|j4;$$@D7@_?8A&m9718GSwl!XS6FRntl1@D~P>W}MN_j||Z^S^m+7cTPA z*cUI1*|-x=ka9tuU9n^f^E=FIx+Rq?zLP8F4BsJWYHVYZ9s9t)LqBgZB$#D%d5H09 zBZPyOE68Sce?)N3jgC=AvdWipzO)1B?;TFIkKZ6PXC1FJ$^eu&-vEagb5NXNFF)hSCt+RqKu0v1{3n^08z- z{sivKEnsg1e=>2*KP+ zV?&hxL&~Oqq*e8d4DS}9rK=~({#+#UF$>XRa0HJ7JClLg5&UVcM|r;tL_I!0x_TQ~ z)r4g3xo9Vy)AQLqmotb`*+U)7IzeSj7gC?PiJY=`kV1|ZDLwWi=T9d|EPAJ;bmLvAF-{J?SRM9&lYj$AJ0?mY{A__s}Y{BkGd%z zNc$XjNwje%Vlt8Hub%kxW)V5_SpvQB>xfw@hnx=jjCDxtbpStQ^9!wAKhc zu1rDmtpV)Q>50On?!LqoBB+s{A;;DLa{23pcYbB$*n1%FV|GAIfH}Fhd?Mo!{-op2 z`|`GOR=uquskJndiAFeIpAtyt^()fd#@$3Cc`weBm3WcX&cf|m+3SlpP}Mw@1r0Lc zbIL1Fqx>2F?&~3Stv;#;FTwBbjhvf563~S2iA~zlnrxx zPMQU}WZA!pOq)|lbps=_(~)GkCWv(77Lw^2e=-XUB;7(oem2s<+l#lT!~Fi(#T`n| z4;?4XkeS%KZ9G0+*+(6v6L_+uC;t6sMmBXT@o=IOTDLAD+fUO_@j{hU>dqr)=W??Qc__U( z4lS2l*sau9QogYrUyA4Rl=NxR%uvDCc)m8&?BzLS?tS2Mm*yo^_{is6o`%mMoiUzh zA2o+NBLYZg@=mO@lMKGsuv>>L$uirB>_@b+%K27gosmgavKcHP7-ToBmO6I4 zKu$L!alhwA+#7I>+^0pM%!rULOeDMXbd;5DM?pvcHiiy@%9%7Iq`6?nO(j?qyu}e! zUK2Q#&;GV-L()F(H+XTG^bfhgT+U}>uk0a{tUKuF9*KwkIb^uwC$z_WC%4TCoS|-v zr|LJzCEkn-)xU6$`c`s&cAd{)5S|WrM*7j*?-BF~Nw>R`@j=e}D^tXI(?rreeT2;8 zxx?COE(@;QMJleVNnQB}>$OjYzf?)8|CzJIUz15m-Ip}|LeTTKzkiilMmZDUF zenYgVgZmV=Redq<1G>#=-ydN0s0ene2YI(1xCZyW$*>8t5MFlFhPlZ+XpGhHGH+Oq z2_|F6>i8d0omq+njVH)Pxq;Lz`onL#3z>#)ASGSSNp8J^+xK(HL8k%t-aN&vXNKgI z*NSX=ZCrIqBd5#=(%butT!-qw?tB^Ps~eNU(KhJS`jFm$26Bqufj$=pl75LNX?NL) zf~F&+V`xFz|6bvK)I>50uOa<&Ur;btMB}3gY~WcXgwM)D{k-F>SKJ;%na#qN>Rh3| zWF*2Xe&F8U?@Wv?^Xhqj0`i-~*pr!0ge70@psL=A73pUR-7L0|$%);N+x{Xg^+K`= zm$(QeK6>DKfH|^^pwJ1Gu-dot!rC*}zAoXi4P% zvr;ud`)VgLpRpGvhMYhDAdIX!4u@8UPeMZL6EbPA#E1B8gfmXp7u<^EH$AI1A) zPWQ*#kHg9J)m@l#(C*7#(@6EiJPf}WfET{5q(z*IboCi36%Lb<5P=a-FSG0!k4a;$ z9;TO%V+ZY1Nz>Vl&rS?rMYSoU+kp^N^nn#G?~jZlS?s|GKh|105^0?sSn0j}?9!0I zIA7Vq?keoZgO6#5dh$-Vkh&0MZuQvld6sZvjw2pj?T(mjo2ir5SW@)dC0N_@zMVNA z@WV<)IFQnVI_~Apka~Tgw$Op>cXuMSVg9K2+K;sM=a8m4cPY0nB#jAONXy|4p4&Vl z%@Kikey|fMcX^B7D>Lz?Xe%ino<@ps+Nj%COG=7eIm?O9tlN&}=a~JR*?%0vCZ>?V zOa=C&Y8&Q76_EDtJM8fSGg5zRC8Qql#^wDB`TWcSWz-(beTo^ zeLtYU=M~-rpCscDe(q_$fR{`1NMG)O@&_GI=RF=L8h4O=-c-!)^B0LTx|2)Xb_6Wl zjAZM4vadXXHCoHb@k%ee+<6dz^Z$_TNiEcg-?7ZhksJ;@N8>G1_|_bQ;(l``bMVK% zXS(dOl*DSwLeZ8wfjzJ7%ub!=4#E>^IMn3GVio^VhjsID@cB$8o|-^fCsJ`Rshl12 zYbK*v{`hvOh-?&BlJnVg{5YOS4zC$G@oV_Q@LaO)phX=YZa`tI2{|6rBtv z_s2iT?%V;~F3TmSsy}2oV-;!&Pm|d;6*5nokLNM1WPFx;A4f;xQTrgW$_*m(^Xa%P zAA)?-m!!Ss2{Q6GAV)EW^d`9?|3E1ujd<#?Qv<~bek?lClPt1ic$8|&4u_2=GxiNd zsfz6C>Ikw`bRwhPeb}yHCAdG+oY%MN*^#kNkn=N^%xh+`n8Zn_7&?HI^rBhIVxXfBe(4m z7R_ADvXi>uT89f*4|`UteGLX*CsBuP_t1XAowfO_B<*X@@$Ka;*j&~m^~XW@d2>Y!O6e-%Hua+k4RZ;29ZhAHjyrW2ASyKfFV@ z=U&ERPpxze$gIHF)X8L`ejh#Uyb$!1dw#Mq(fi(RNPNce-z5jQZ7#v>9hRh_G5}6` zEyzDVncS7Ek?eW}A1*oxlX%}ws{J8+J|U7zFV1zc)kA~8-I!)ZyoYH4>CEPzU#~gP z>avsffM^qEE<#8BJZV>QuS-xJ_qA8z+_K4JdvQE<;C)+HB1dyaMg(c}cE*`0!vu}O zSoBxj2Itp1g{0B`+>`VSUEjSE?hjxX(W4g}-W!ni*c{=0pCU3CKa$k477O(i+?_d2 zm9!o(?@kSu`8C;@sdi1r+oDUP(70SE+SCzmyQ-sgY^g9_X#w87ODC0y|3SNc2iZ1_ zA@w8baP)jZ_63Vby~GqcI#AmEiA*+sKW5DoEUOr_|pFrJt9xg%dqUSq#OW@p{zRUXEa!rTBBy zU5G1Cz{GjU_&M?tIX8F3v_o%Dct8fpe-iV^cY@UMHEw7ZGK;g^lfj>E=DS zT-}MQ_l=lBO9|&#w&BLa64rOobJzyG#ML8m!AP5b&VTe`FS3GB|0Idrd;77R*dRRX z`sQ}iY6bS=8F$9nRN>R;Ha4g4ZCvg?5p7-9uzl~oAT8lFS}M*k9miX^y6YeJTFW7y zahA+C7vNU}e|~xlSti+%iehh+92!L?E``FzcJ6D84&{z6Md8PGRnp7i?}bX7_ccep z*9C7TqbQ#N?w3yr%>yG~_&r2ezt%%YNY;YGxeYweu~6{*X9umLmh9zdpRHw1GCEc-r~xh28@Kgr=09c?z5Zz_T=#M3pwPg;6?<`w;Y&2b{a-V zW538Tu^+kllpteL7+H7>XE*9g$gM7!jE4Vax2|m>*Kyipsnmt-HrBXpVz0n5D?{M2 z?LF)By8}xfd>8JwMzOv2E$l&M77W)}v+h$;(AG2#_qsdd^C1iTXwpSKcXhOn>`F=o zmrpIG()+R32Sdq1z5%zoYvEm=5m5ZLnv8BK;zjUO=sOE! zSW^+nu6!xBHSJGl2la< zg{bHscwrGis-NOvJvo6oo;ga|KN4Z{wih`Zn?=fzXVI0qj!3D6+1rN1xJT%*XTzcdBTzzt*2vn8ilqP1pdfcS*vhn0Dk1{Ez({F^C+? zHgdmB6jt53NDlRWq~84lcK)y<+l&NKwT!~T-+Amy)n3x;;>q9pcyuV*NBYfeta4Hy z`*nK+>5Y5CVrt_^@!K8h;5P}WuD7^*iRYShfAGGcC8XkUj|>}6BYla5(BoDi=`Rgu z=Usa;l^)Z%n{)s>aJj$t+?)o|IugTDrdFeAT3534Y(N0_$b9tLM`m%>SbfqE4ROoJ z_O%0Mf4|8_en=DC8wX-^`F%ET@k(;r*9QL#eHIlMD5nlv-2Ha)ChrZ| z%l5Vwl1tG*L=X7MGAf73K0L6;zDrx#E|ihWvb#u}_Y_^m{2_-ZQ;dvg#o)zd

{ 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ⅅ|NI0Ru?(iyJC679!0}7HtpL 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 SY(cAjYKL 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%0DiZ*O!E2V_){7WPyhBmw%$A*>hJyk zAN#(q*|Kkyv?=jC*HMx7MI@D^O{J3d-C7ip7m^Ag$(B^2%sEqpl2nv6NfIR?Nr}Ga z{m19_`{y^e+uUZxAIyxIbIx^LkH_QA=1ZBU$;|CJ-02g2L?rPA-6knQ3i`uJUJtJ) zn=XV1R8}vhX(2P|T_FnbQ*Xlh%PKHyRXW{dggM%sz$ZH*=%ky=XvUQwQeIsm5P2ev z5)OPuA5MHHf%Oll+OJPk>BdwNb9X;oaYR@!{nJMX)=GnOK}SjGfFGK*rWF}qvm=k$ zta}X4qg{%r*hy>v88eN{hh{CoDnSs)%}OJFmCs02&v8=NufwU#5zxSgqHraogNB@W zOLyK5;@-2`Oxb5PN^qG#UANYg`p#%5SshJH(!;Qb3*%1cT}3yxxsy6OX*;g8l0=>< zLkbpoVCt?+Y6oAy-6Jd$tWKJW{5pi9{FS%}!CxeF&=CS7*MU3Igx>*kuyRErwvBTp z`(J$Elz%3IP*VrXMm4~^q%88s-Wdxi1=9Fb2`pcGnVbmEp)&U7WQSxsgjp_zYOhvw zF?b>K7`;Z3f#oDrx*R18>!X>oZAe$!XMyS5Au6(^6B}$cpmSe+g@{KjwCH{a_3Sxn zU;5L>uJHs9Oba|waB?b^%H2*&t7T!!EFn;-aN^X{Hz2*q_sG;)q4a)Y9PW z^nuF`@=N!2r%P_%Im_ z`#?pLTR_Hjgj~*%XZ6`5lr0p3-a8TcLY!%h@3oP4cA``$xQs56i@*{U1PT+KY2E8U zu=f~6#ZTp_d-sQuw6oEK=-6_(0e)O`>?`CxnhV^-A#%#^E(r}qAwrcE@7nNo+#2}y|Ve18Eiee&!4iOks2;3BANH3;h<<3y?kDr7CAEBPN*bu z2)9AK%P&*$uy^G7fpoI%`!E{#x|)A%jh8@O_6z3CUP^C#m`q|1?k2dy9^_t&kdJG_ zsPL=B_W3dbH1z!njXe=a!8Ay}AJCkt3 zc=W(qlU7f74hFZGe~EeHJq+FXPj490L+#i2dVf=>r)vY24w#Ch9A{AN?SHt@N3m$? zgzsFFf+i_>BL@X@;voED2`K%&MT1(@>Gi>4%C}Vq;b|+;CE>4pzOO9|*MH$BVokWt zW~KgtXIT!LG(DvM6wxhfiFL#Va_z%wq+r-b%kvNNZ!KTWyhlAK`Gr21w)NNrG&LX} z#vaSDsi%kM?niYahe4wHE1B2njz0IEMveP2xe^--yVigPRH>o`iBTtMph6Da-FK9R z6{M0?U5x+w^$r(W&`XS_s3HC5_bKWzK$nHb=<4zWIPa)RCslc%bN_Y(J98x1BlObrejZx>oqXH4(cslZCNFaH~6gG6vCU%k0{A2D@(Pi)7 zgj|!SA>AzFVl0VVet5X#-AaLAn|URdlev&ek2%3qS$(*b@RrV!Z^SaouG1Zh&VY$w z7PoK<=I%Wz;eQgngpyWvLg*|TKIW$oho2K6l`qR3bW$Xm@4Qg{`>p&eC1-NgvWwQY zhoZY9nr!bdNB6oi=(~BXD1Y+@FnRnLov8I80@f>;Un~o+`##XnoK=+1W&_KbcQ96> zDEIzMI}Q1Hn?&T?rg-gw5`mRIIV2l~SN@wUm?4+PnN18JnO^&l-}(}AecT2?K+S6U z`0{6Tv+*PLi{1xHOWs0sv@uaQ=7$Qm&Y>Rvx+!&4#yk-h6e1BxEt$TcpmhV99c7Gu zZ4&05>b*dbD)q49`(nCXVkx9bog=)X(cGcK0{-*T2z0vW3z_({l8BRq{LUMipl)mo z4xX1_{ES>`e>fN=C`=*W9hY+-r|Ka2^gdKLqJc8akCUkb7_PHffw#Z|T`#dG4G9zY z=?U(ndSPD4m`DmFe6XTr8^Ta-&OACkwwGRCmrNxkj@$FThH&ji8sK=X3zTkZf`Fbx z`*6MwSby41(&b*F*L!Cp-^1fk@=IC9IZ=lS=e^Y7FvJr+!UryY+2#~pVr+Mh?IBPT{aeQZK7*A(>ibRJaHd=0N(KS)@oQsV@|!Q1l3b-0*tcm5ZBuW9iCLBKx{3z&%EE8Yt#IYJG#p61#s5)aL+VKg)2}Tp=^xXljrl`# zz)cvMf%V*`2*5%!g&T8UDA4)-mF~NHTp-fZ&lnu>;J5t?Y+GQDZs@HgNyQrIDa&S= zU}#KbcAny^?NNj|-{w=@m^3hVbVT{JohAB;n^9)57*%O@MAcsNbj?gnZpytEuxv$`?LGmk zd1op=oNLGvh-^ZT*(wIY5&kIJKbimLB=bH$k%fQ>>-Zm@=%dbg)<|;F6#k@{)+A7J z7MNPk0)q`{rq+8EkSg_Fza{M)DK`RNKUa+uQo&Om|D&1O9B>_(E|eH{E@Kx(g~8aQxl0QiqJzlzSFmV9MGj*$4PtMJUg}HEK7>V>fa@Q?dMEm z9GdfCpwrof{!2@z##h^6{DEMYde91XHCu7!-!-`+pOt(;i5K&=+Y{mB7zi2lhduhM zAo|R7fe3#VT(t~C`;%WG^Mfm494esko&8+p0YCWdJqRvs4?w2dhky2l7M<*Nie$;1 zqQ2P&!03(^`S!DvPMqS4_B1kH+z4_2`@fxNumMDqN0&NC{WNNn1Iu(l38f5w}%YN^uoYi-c^mlw#l`azm# z<4i6kuRxtKU7#pYED&X^p4(=(ASvN3>D%)erT^VaWtN_2wUaM;Z#EybTJOPTZ~uVC zl4)?}>JD<}+YR(Fasv8Xb&Ov=7|VZzSCK2q`DBZo51oLV$xnxLw6m=ZwhF&NOMA}n zHSC1!i$csvwaP>~C83NTwvw?j&bEWCJ8&1<69iK04#PR+!V+hpE^3amSg)65?wQrn z>bMhd^!gic>sd$q-gl9!hS#_z18vkC%BPNQ3u$0~HiYbthMF54@KLgyCf;cyr~h@? zk9of)#nWDpB|kb!UMl93#ydvPIXeqnKE{KCg%-Hku0amAVI=p?UY2w48fzyy;fOHC zLC)7f9^Iw_wHQ5e_L(wydTA=Z(aIYtI||5&C(n?W(_#KUlg%{DdOvLNJW8}Z7V@95 zzD>23Q;B*-0F_rQM|;=1BUy1zYV+YFUDUv4rGF8%Y`%?*yldgo)Or$j$&>1}W$+(n z?I+12RuJ?z9}Q@^qifGqVYhY?Ep;h@|3;qE22FnitbWtC>VQA2ZeGl4M1@25N!6n+ z$Z-9JQ?&-MrJoMjC(=#VH!P+>u1SR7w2eeQ+e}gowvkuMt>E#19z8jmd3GN=(3s7o z0;N_={G8NDD?;D4cu{LXE;?c&!lf^-C*j%l{BTz1 zhZa_mb1O0UuJ8h@RZcKA*MXe(bRy%m&ZD4p#aQm{f2e)EJj>l!%6aZzMUJ1%LRFIk z$dif|Snd3RpJe%+M#lwV-qtV(ykiB+$|j?xQ!C*=Rm?wKYDlWu^-&*|gmd#4XJVx( z;{iCOxV%mCg9Ytrt(E2tXbR;|rRW3x_>_2U&XH*9zY=2O4QKD)^{dph2|6=Iz`AQN{}TjLDmdLWd$EA*R7 zFIrCTy7bcHohxBQ;wt;--58RxBOu_Vz-I8Iv#JZp5XxYH(yez6YOP=+MUXmLz7s)l10(5PVN4^eVt~0kmpcQi* z>9M>))%>L-QmOMi8e zxp^ph{SXv-7znJVGSA!I^L)`izxc`P(oyZ3=hP@JhQE0VrnL!8wC&_GnsvE}8k$(6 z*8CR!26nbDU2~Z9E}RE;)_2K+BeszFD38k54v>veK2$l^6GiAhq7@d`$oIinXl05o zr+6)Zt1y@W?cJYIBZ@%e*LhAMEsGoXTb2f0_{#R|w`An|M;bJz6goEQkiWuOh@46$ zux&U0T%k2g{;~@8eBDWYykvW(To2TB`E!}uFObOlzUZaoT~Mog!HJdR3#9Ka2jMAp zgo6gUz`wR+;X7;Yq>n4=)C~mXBUyCPR9~pQZSRwhx$b2B9WSaeri^YbDxn|WoQ0l?sq}8wb}liM<%=$L zrVdeO$m_``?M=Pb5g)}xV7^@iqyyar!oG>fLZt_7_*6sd)_*78Qj1~n)sM*d;1q$| ze|r1}A${O7)=Xub?qIpsmT1EleY*kUK5}zxDN>vfgsfT`X!jC}l7Vgv#m8E?f|Wif zMtmVZekhIV_6#BglPQRQJ`hCvI-w-UhoQwWJ>9z(c7?3x%jspIEA3~gzRw{vL`<3P zB7(Zgd4RaB4cO*>h4=+0NwmplGSIdcxi#=$)|ZE1q}U6&QX|k>oJsSAPLUCZ>FCh9 z<%E}Um|Lc{9O9-&)AntMJ_yM}8Tpw*@oP0Be{H$B22hvrbb^)Il)ry+E+a0}&|~7QD5oj-&*0AiiIp z-{jtco^0$v2N}cojMgAI-Ny8T6K~qrp28%6Ob6pzEZbvY6}^1&4}bWxBDa>hI2{kjCT+KHmeztTYO{z5Vu4rr6!I1tktM%6!fc)6hsjsHo&v`kE( z=IM%dcJ}c*i*|x@fFi1z?g~L^X9ZH;+V<*h0r2@~Ed4eumPCBJgSMx~!qkELs`wi#ENNMkN43hNNVfkQ z2$NDmZmVt4)m`x@z6AnU%%e+^f>2n|ChFW5#qDZ+ z0MdhFY;ARh@*8?oB0dY07bhbryQMIV9|HS@uhN7THF`n+5wyI0hQ*ZJP=aw0x_IXq zQu!Q9OhWh|lpex0CgGCuIbP`J^*L}xB#urJ^pfzXCH(uxdeQw8-K2brC#q{K!xJv} zqS~}NTJq*DxNn$Eg|q9Z^wG=2v39XQviccKy0;oKpDUw{!438oYy!}~PXVBqmd?F6 zIF6i$3MwIp1MjBA+=0IhaLuk8($r-*C8?K4(qTQE{$j<=c>NiV-XWB&A1-B-xD zdk8kk@~G*OyJ&jwEiyInA)1;aC)ipXZg;qthrF52yzg8Gr|Or2EiHUekhcM<^s%Qp zYufCu8U}#Iz5&=3p+$Z%z3R%OS=3;!CKWrd0uAMqfKc@q%>I-Bi+-lVvugq*otVw3 z$L&Uvd70?Zmk@HVG=!YF_?4bvpK+HP9W>D16^rYJ(631zbXsvIcRRI*q|GnM=q4%2rVQI}8;RQ(_U0%zMolJ9YHJ!ciX zZ`r~4OO_=cjenx08QEUqG~xEN#ea!-~HPA=6h4&ynIt<1`&8JRZY8 zaC1AN<}cB?8TaY;rET%c=6j zJd$(18ce14vW&YScpB*rV@*u^MrENqf}^=BvXJZbFyeL31a&|++|Ip2-dLJ~MT0Ad z8c33`L47J_zl&HK>rl_SgCG%k7JX1`gTtZzBz8(9jXZLVHZ=#5`23~Fm*#_p5T88z z&cl*5LNJ|6g(c;k5L7-7t;w(#SSfd+WeYsfgYzsSDzoHa*<&a$z7aT#w!$~JOI+}44^HaIkX`x1X#V3U0Xln89onjU>0zUEl6~zUxsy_l zqN<*vUY6G}Df=WD`S}HmWk=}Z2q&_pwFp&A874Qr%99I*eEXrt^N`WjX7GCxPd|IM zLu>RGYJOoNtly-A)@I7vA2^wh3jFU=nWw+d(^gF`y-FXIKHmV7Z6uk_kY&>5F#l=u z53;jQmo)#Vf=_YFpmU%IH7e|-Et$7q#$6vS=BFnrsWztzzxeWt|LeiZX1VZe&nW-j zb}uO2^Gq=PiI_lLQJo**9g9BxRwpISR`i^RDqNVVD3CPup>Yu#X>>&tun;7a_$ij_ zxb_5XJ0yUd+wL$fC7%Ao=h1-fB@~%+ioAN`i!LAfYbW+1pWim#0=w_kr;#du_#3_2 zxIl{Wf3sN5_l*Z=SIY^MzH1M9@m&$(BikV8{&KqW=`C>CF^m;7_rL?UU@E&>g}D7b zOwJj!QDH4fkWpU@eJ6Us;KpGZd#(}M8_UpSou%a21uqcEy+Y3((y|-h$OCT`X*jg9 z4T&cV!)~FllCAF>_dXt9(^#4GG?gyM)W-UD;2wUnoJz7 zMO8;isjk&Uep9O^7WHTPI(!0aE#Jw1CA}97=caN4&bioD#fE-1jsf8zAK2FO7;k-_ zCD6E+kIKFFm3(g#N3rokbgNwksedt^4yS6<-OC?C#6?xK;h#RbJM2e{$xkw~={8KY znnVv&=%c@$id1T%5wfyPfpt!uFg3xPPMVRA=H!IKK%6vIk=`lLC_fJ48};Cfqzeux zKS=f+bSHQ049E#bIp#Ybf=t6+))6R9&Vyb)5WQJ!)a7N zE|K>QLS*7Ore(Xg6zKps)Y^G_CmeCu(G->8aVK_g-;NkBB0(5;r zANTHKKRr`4h>Ysz!hd#?(Bk9y^w)b4JY%yLY8@)$t|xkyBv!4Xg*OcaGcE~G<}7<^ zqk5SBuJ%U3Tda|g`a*Pl{{TVvCX%yBGvUU^I|AWZvp9(5k!#C*NUqppu41(l+VnM+ zoV9$8XYCfF=4;}SQOZ2J@`@f>r$2}%`7+i*=~mRO5{x#kyM)c$Bp@oLveU9 z8hM|9HD)|OywlSBhPiz#v)}?e{5+GwzeJim7Rwm(?EF674YYYS{Ih*)&{gp_T=9E1 zC=>oIn0Y_}s#;!>J&%m(?yL$pb6AOQvHJ%YMsDGrd|8D&e2*i;D0c+6OHrEZd~n(2 zMVBl{B(r9}BAeSc1JWC!4sJWJ;)@QNsW_AG8y7%F{vJVvJEF)J3n7&H-&B(H-wi5m zQUqI%Z2~(d7uqm)9cmHG7WU&3sSyFz<=#zCPqv!txaB=g{T%JLtyww)7^>VPb40^+{d8jc&{* z6YY7NH4GxRbMZtkun3m!I!Vhy{gLj@dXh7_66SppB?I$!5O4EyB*3*3%f67MyJXhU z`A??^6kXy3IsrCx75^)p{ZbND=f6be(^m^7uBe1Zms8*+?-&;Ua)2bI>(Fo8-AS-f zDdLP)aH%z`Vb$xW+>R1wut_igncxso|InE%zEQ+=XSSl^t*g-nTYow_^8}bThcVBn zA9;RS3V2kM`ZnGq@fMyWQe&8o%Ps+%myy(WffRMRyND(o96?%Na_Bi_TP}U7DxEz= z6rDNGLzh1Or7|a$fvD9yfz4jTG66YQzGCEI)Jp+r@=~Sa5@*rfYeIn+*v)Td^B z*3mS_G9FLjDUZjKV^`VvOWZf?_usu?>vrEQ?D79yjQ{V>|987&GmrPb>;Ep|`*=Jd zoB!Pdy`q)>yTz8XH~jDR|1ST3kFk242ex?KiH^k`!OGGuT--(;Ixc61)n+PVqt;Vs z{)uX=nc9lYO;phBvDaAdn-k}`E&_q!Zan^S9-7MPITPz2*hI1wn^iZW$(_HkQNSH+ z@FW*4YH{Gi{a0d(lpS1wQVVxRIE{PY@RRH6jz{Apq_I)H8TWI^QFO3>12$2=&V??% zjHWw3!zPUXw`pWM*Yhb7>na6spGVf)1x3eTOV7*L)ZrzUIXKyM=l8}$bm1LPo#TxOZ!-&i*5vJ22R zZxxpL=>bE-vti_CA(r2!!Pzb!K=j=dZb+0d<8SUm7emh=-u`8r?a~_bs&zSXo6yME z06erXKOZaZABOBEQN&_yvEqq%;NQ+c{_}ION^>}^5_t84Z3+RpYUR2O?1Gqd&B6%oM9}rr4$>o_b}fj5$PykY%<-FF+4iZo6rrqN1CuoJcm{` zn?ToXCoI3f4vELB!q1m4;N@9$z&q0+yXYNMB?N%mwqdw=S{3TM9)bM^JxDcKj}2{@ z2WxB*M0<+k@m;GB?@A3^Ry>IHCdeVLKc*0|Py}7t_X^gea(1R=C((u+#^CjG;Ux2) zqQZdX;2~kcr70<6wYksXjMQnYgp#qcM-~K4uEgpJB3OII3OH>sgq3f8f-2=GEcSjW zRK%&klZxYv5o!mIb1b0r`4238ItI#CzJpeWNATeJ3osb^3vWg~LrIt+OuM@s+E(X6 zxv&#xjtOD;@;yLrA=L3^JC-ktfx9aQ&@YygCT|=JL~jD~n^z<85P+NY!C2DLA1%}J zg97PDEb%N2S*m(Ka$OA;+j$$y>s^O$kp=M39f!hu@ z;oR4LEPE;ubgfJvM)4201Md{I;2eWoLO|{TZyr zss4;be%N6H`AQgQa>VktD&S@RHEiC4vGkq~@apJl&S?$fdN&$FOXgf`7P$c{pIM25 z`0w$!$&5qxI2Yx6Ps17-EZ2DT8nh>_5No_T3QNxx!s8~!7Fz0+v-zK|SdXDDvAxSo5JD#GQwc>S1?yIn@O!D`sFB z#+EM=mxYR<u~c{c%S4MTKZE(=K=?OOiL{3N zV0Pjt{0Wpo(r&v5fCa=&zW{-3fBS%B{CyY!dS+KA(k!9`>LY zi;i=D4#mR1r{huT+7H}=8zESHeKTrWuge9esA8iV?eH!;1sgU}Y%-VwU5W>=el%bM zrEK`X+r##!PgwS&Ggch*#3~1kv4Y1$EWck9YaVmJ3R4ZST;3Sd_{pNBN!jSmUkUhN zVt|4ioKdo4C3Fw}LuX6^P|d2%(DZ5({Ha|6SsRkzBl`^eEAW7<+_%sW8^JV#SK!)X zQRps=!wS-h~yc|3W8ffws~jEOK@M^nS2{W|uI=dYl38%|xI+x)_Tc|A9pKpRm?K#`ts1 zM$R4_R{MG!D<2o;zJ{;F+TM&k?J2+}7NhV=W(Snr+lcko&V^?mT0!8r7F*~g!>jN) z@Nj)PgdAImexh*@Q&j`ud-FkYO&`Rao&blFM$or)8F2Yt8I)ch^M zDt(opyG9uVn0@CLX~Kkx7Hl3KfF&5Owl>j|JIpw*5+#sv)!Z$3Q za}H~M%7XNV_E=UX5o?e82bpPiuy9}|*1lQ^*=;H4n%_yx>-WUk2KgwwbU%!KG{^c( zUmO?j1;3jYVs*L~T^0KY=CLuDC8(fhyT^lmy(?B6%|+p5qA=;FG?slb3>v+Rt9(BK zTYQa$@m8{68lK4Ilm&ofW;u*I>W9tuNx|Iq^H}%aM=Znp3k&)GVS{ZC7^f{9R{T7V zHOKm}jN4&&vSudSn|1{oYn_Lhm}tm*RgaB$C!l0eG33e_VxzrnSZ-<%HoG?!<~6|UkP$&Ut{$ts#rtyDilU%F~0a0teiFsd67S`^5oN4HAD@_ zf|>9&-V|B5vVLw+A+#G=alJMtAy{)9XYpeVO8Eg$%{!6>9X zgyp(SgraO|^wKhlOWoUt_1~^z{2nJP@_H>}MKD=M&@ z1C74)6|L-pdf;nuNireV`Um&q@1Vp^R=Jl@d=VCH8+x7~Zc3p#h&rNoA*1Qsf13dWa+Hc3x=V5~@ z@>ofH3cQ~(h(-Rc#3~<)pgE7jQri2l+OcBzcv%Ybwktx%b$2XcqXoa7#zI%dMi^CX zg|Ta1@JZ_pV-qJp&jNSwFk68oE@-0W;0El z{Gcj4|6BuAZ03*_hp?gZU+{L(f}~znW2`y_2ePLzRw?s){u+iI`!-^|&GVpN^eY_l z?qazV^6=xU4Fo)O$GX?H!;dxlU_C^f~=X0UlRb z2Csrsu$JI7HqJT@jncAM^U4yezp4wK#*Am{@IGviCIolFZJ^{^0~YzlvhNqqhk~8H znD_hx+(^j+qRi$fkPlBiMbH!BUaWoS6VyG7NBQ^53nffxfE(|LsQfMLR2vxU(o*AiFW7GqVjOapVXc!cl+=G2{7^5z@6dt^df{@mE=%wx^$o}&V4yJpd zJ`r`8$os_BuxprSc@1<8PP4xe0)MOIKtIP9E9<zc-7a&1E_&{^JZCP2SK_B8O^? zwnJ};9W*TKMRD>$&>=jDn;7no^%t&y#|$&G=idRWRkj<-KW*h6JE~&+O-69PMhm`I z9>Ge|a)>{11iqgP!)lNIp%$NE=vaLh%d-q6{?;_CvsFIcB4LPd=nHr;y&F38-0 zQTZqKT{8k8ZrOVHcXbao%u0hq3lGfG_QjG4Js|1Wj+LVxVrlkr*ougQ5v>VHWt3%?weyq28BbHF|gk*s(V~8HYQfsb2RAD7HJZ%EA7)zK}a|0U% z&w%AZ`wUIHvY=*l9VbYag||UZp(L+~3tzSlO!>z_Af1Vl zGULEl>nc>OS3>!zVyr&f3W7Ns(U}_y>~i>k-fszpG4|cF@UcbtumJORSaZDRmFWE^ zRs*KS!mp4yXllTI$oT9B{h@J4iu%LVpcc&Y|IU3)wt|~d53#WS7pT!M#7bAYVa)p$ zR7U_-CyeoKXb#O5jDH$ri_TAyV0^1jSTd#;&AnKNW$rm(iG^oSJa-N&8wFy~X+hXH z%EG>1YB5MX_+xjqi)ZiJ{vG7hw_`)0$=LLqJV>=HMX#smz#Co!q@7VmV=9_Z|0WYM zt&>sHh% z;|<_B-+|4?=VFW7M?pj-5;jkHf%QH9L;Yt2SZ}U5Hhszbocg&~Ya53Rr|pEh{!_7$ zauYTo7om8YJyv>ef(kSJ>?d?A!U|b3Lwl+H^d(y8$pK?981IEn zWs5OiYAYzE{z0kVE79ZgF`%m4fF^b=gyGy8c%kzEzFAJdLQ#x`w0Z=7gmEw=(g=@3 zSHPE9Jt$+N9+pl)aI3)vRb{7Q`Q=WK({>D<2x!9cGl$^ToIzN$V-w?(M8PWsYp}n1 z86_urL(>dz;3_)MwqX(2!#C;0SoxhX%g4L| zO8FPCa<>rV*%yG(t&LcD%6ll>^&T{95!T3>2RFPgK~K$f^vUfT9(S2#`}-xM>Wnt5 z?mG>B2<3o?#CWVT_ylV%{0f~DW3Z~PBi1&og4UGhSaW4M*81)W{Yo8J&7%~{EPMk2 zcmg&)_MLHD+Tf&Qf$ils9+nC`13SAyvB52W%uD{mIi(0g1OF!c`$f5-{77iKe+T|3 zJ7Dt_?Nx~bR37V*@;>#wO=0e_r1eryM{qQNEsT%GoZ`N z6Oawt@v;aBTtcS->9Z*Hm81nqm4P|35(a_A($Sr6E6h5Dh9$kBY z&62NRnOnW!_xe9TGZC}{yr-aQO6)kSqqEz?h*S^r6kn(D+-k)Atb%r*xt;~8_Q?0HEHWP&L3UIDk__?{%J34 z`fZG{8I!Q-Uyl1ZJ|Er{u7|e;1WkPu!x&#KP~CXTeyCl=2eZ2X)D&>vH*`?oC?uutMK@d zt=O=42VDBX&WLJqc-&QMh)rZng`dOlow0lpuRnU&-Nb|8!x0c~w}Aa##_;|92rd}T z1|^vbSZH|#db4*LJKtd}cBcou)@lI5w_CBu_zUR1&>Zenuq`Ot*TaqHv1p;)9Z)UL zh8zDfxV-wCAaXVwlI&}-X{RAd>kmgGg<{xfeLgz*%^JkDo?uJO#i+o$1C)+# zHP)|yClVU)+_wws&kY2AOe|Pj^@sQTi|E^U1<(p(0@&7Pfo~jjfX) zFdzbpSO13BDLru9atmYFc0(&?2fKdfp$Y%}!0OZEA$k2hbVTJR9@n=IQdESwADw|% zbK-vx7e%1XuN|BEVD9V2$54BEGd5Zt#ED%}hvpof{oYGFPB5H=E-hkywf}-p|9@{$ zoRvEIX*CLpwNmKDI5Wg&UZ3971Z?n|v4qBn!qSt!vHra%co1&}vt8MYXlXGNT{8x^ zy}9s47(tcOX7E(=hnfQ);I&O9ESW)|e!C&OX8L}=(D_){;TAGjSqx)RV~oLEgpOY% zm{%>0MXH6kPc6e()VdgtfA$RL-8-Rr$9Kw>NuHbo~j{P6lJVehDb_mB~ zi5P^%c4fjAx9O;=>pIj7+k$IAC3+PT3C-eXVMFdRG{kz6)mf^ru!O^Ay-Fy;c``h$ zDCYDI2~bw2J3O@-D9QXDfHq58LT#Tu7b@BdPZDJy`1A-PvQ+|^wwCd-Iyf&X%zDf3 zAj;?w^V4)-O}_*%{2R}h% zN84j%wQWE@y2B>zCG52uGT!83SmQVuYq&^3S-=Nqt>^(OITQG7&WE;3JHd!$S+-0$ z4Bcs^FmY!d^srf+*a{73)d@x`1;4R~m^{>xU=*y(YUeEn;p1;JGn z6?Y1O<2WpN@FT0m&A2Q4J}l;a6+#Cc(b;Yj6uPYv%YS=~b}q|6+4W1Y()C1i)WHF9 z4ms0j(mK0ZO*_~bsSmFmB(Uj) zC^-7}0=x|z!Da*Zz%{l2tV~4U@iuh`U-1ZL$~6MH-VY~Ke}J7fg6I2gz`0Q;bg)Mm z&ZgI3P5yj@oo~W_dE#ttIR)A7RE0oON37{M3LD>LqLlMfVc+r`*tvl5E{s^8ZP^xB z6d8x^{2K>;tbXoSHAMZF>LBI38w~#U4m~dHglnJ*J@z?h1UEo-#3ig$Xl(af-Vn}Q zD!__`(cIZX8W8<7kfC?;vB}rN5K-$2(JqRtpFIb5)G%%G8*La>e+(LEsw@diJc zz@CUSJYLrfONi#6+WNiNXcz0%3A6d&`ev-FvmJ}}rJ;XH@9fJaZ-v#5k3e2!Ik))q zM%ZRP6RtOza*>TKFz3xW$T7;t`tkZ$)i8m}UHAlrF7axIzfxEcMc^+NSl zW=KwR0*KapL9d66vC5P(ER|V_96p`K>d{ZIgs%$<6&%KLTUf3kxs5!3Hj9l%)HU05RQCgiLrgK=vFSSM#P+%F3RUCl^@eB|oqY(Z{}w^_G*hhH>kUt&8lZbp zKbEJ~Q2R?2eiVgZrQt}donio%>FIDNXCKy*x&jX7#^C3*7VAt;2Hp3C;Qev0ePLrU zmcDcp3hrLxG^1x?G2um!ry|Flt9HTip8b$5%VAB!1E_hkDdxd4te(6L<y!G_|zTL_|XMoa-Qzkxk0T-g}QX(U5jh zqL7w|3Pq{sK9AB;C`Cy|Lqhg0@}6%#`SslQxzG8ZYob=_4mGym_xo~V)XG;=lhIS~ zAwvWAW?$!?PgR^s)yC+;t9UZk8Yw{sU^~tT&+53(`7+n<9?OF;tQV_zCRg8dBisox zz;@ddDz$ka%Hk5?DR+j-9~nfhqCGAe*}HqtayE^c z?HCW0tP*PZWfHYGzmoRrYGUqnj{nR|L3G$gI2WF$CQ`Eyet#rpSw5!bat=6?HVb6=Yt-C(iycjE z#LmDLHNLBH(5Ot5!f}y%uKZr-8%b8Ke~X^KePMmR4n2p~(LRF%xvupndbz*s->vn~ zTv3c4nGU%1ej+sO`Mh;s2c?mhq4!}k+Kb*myv7sicDwMsL>)(+1tgu7Ceb-75PiWF zr?-`pkV!KT^sW@i5%#25?I6C}n?mVw03J-9kKa>5$+yd8XxO?E@0#UFucQT)*B6qa zyxmYsJB!0T6Unnu2^3ZyK#2T2lJVAvYbVNZbiEgqNod8sg-v)=TS#RGXk%qE=Z%6l z;P)^$?9Lj@&)kKacWyvp!dTJ~)kF3E+lxfE2=dx!E>*vH8^=$~B>x;a-@5i5desQN zRvPf`TLaohIUV2Z_+G#62>wibir0^%@s^Cm5G~FN=@{VM*9Z)A&=Do-N#QxY0;>~W zsC8g3u6>Ur#T)P9A*sRj9#0bUp@Vbm?YJ>JoIF!Y!_yyP+#h}mGJf*3&*EKpbg&p& zEw)tFBnTy2G$8M`oysX2^FG(T@KcVW@+am}`DbnjdU1g&{W7956E(2eyoM?-P(aEe zH(2>>MHSZ~UT{m}<^nP9T8_n)fC}gpT|kxmX)3p08p&ZtsAX>wRqD&N2{qx=JgN^> zpaD2(mq#ta6R3vw3FIpJQ{&ols;0deLV`6leSe>OjX7>Q;Q}?dJ%UYu(uZA4|bbpJ6`-IIx3zxH> zaYgnJa+Je}℘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

%gPHLE%c@qlz${`-$3a6pR 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

vo_kz!)hpfu(D+_RJL*Tga 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 qy2mqaTv!f!2bEbt)NXWD$g>-|+U)T! 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℞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 z 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 biNEJ&Vq||Qi$48>y$SBb{;y=Y;fntU^nMP% literal 0 HcmV?d00001 diff --git a/openpathsampling/tests/test_data/gromacs_engine/topol.top b/openpathsampling/tests/test_data/gromacs_engine/topol.top new file mode 100644 index 000000000..6dab9f5ba --- /dev/null +++ b/openpathsampling/tests/test_data/gromacs_engine/topol.top @@ -0,0 +1,238 @@ +; +; File 'topol.top' was generated +; By user: dwhs (501) +; On host: u036787.science.uva.nl +; At date: Tue May 16 13:56:51 2017 + +; +; This is a standalone topology file +; +; Created by: +; :-) GROMACS - gmx pdb2gmx, VERSION 5.1.4 (-: +; +; Executable: /opt/local/bin/gmx +; Data prefix: /opt/local +; Command line: +; gmx pdb2gmx -ignh -f AD_initial_frame.pdb +; Force field was read from the standard GROMACS share directory. +; + +; Include forcefield parameters +#include "amber96.ff/forcefield.itp" + +[ moleculetype ] +; Name nrexcl +Protein_chain_A 3 + +[ atoms ] +; nr type resnr residue atom cgnr charge mass typeB chargeB massB +; residue 1 ACE rtp ACE q 0.0 + 1 CT 1 ACE CH3 1 -0.3662 12.01 ; qtot -0.3662 + 2 HC 1 ACE HH31 2 0.1123 1.008 ; qtot -0.2539 + 3 HC 1 ACE HH32 3 0.1123 1.008 ; qtot -0.1416 + 4 HC 1 ACE HH33 4 0.1123 1.008 ; qtot -0.0293 + 5 C 1 ACE C 5 0.5972 12.01 ; qtot 0.5679 + 6 O 1 ACE O 6 -0.5679 16 ; qtot 0 +; residue 2 ALA rtp ALA q 0.0 + 7 N 2 ALA N 7 -0.4157 14.01 ; qtot -0.4157 + 8 H 2 ALA H 8 0.2719 1.008 ; qtot -0.1438 + 9 CT 2 ALA CA 9 0.0337 12.01 ; qtot -0.1101 + 10 H1 2 ALA HA 10 0.0823 1.008 ; qtot -0.0278 + 11 CT 2 ALA CB 11 -0.1825 12.01 ; qtot -0.2103 + 12 HC 2 ALA HB1 12 0.0603 1.008 ; qtot -0.15 + 13 HC 2 ALA HB2 13 0.0603 1.008 ; qtot -0.0897 + 14 HC 2 ALA HB3 14 0.0603 1.008 ; qtot -0.0294 + 15 C 2 ALA C 15 0.5973 12.01 ; qtot 0.5679 + 16 O 2 ALA O 16 -0.5679 16 ; qtot 0 +; residue 3 NME rtp NME q 0.0 + 17 N 3 NME N 17 -0.4157 14.01 ; qtot -0.4157 + 18 H 3 NME H 18 0.2719 1.008 ; qtot -0.1438 + 19 CT 3 NME CH3 19 -0.149 12.01 ; qtot -0.2928 + 20 H1 3 NME HH31 20 0.0976 1.008 ; qtot -0.1952 + 21 H1 3 NME HH32 21 0.0976 1.008 ; qtot -0.0976 + 22 H1 3 NME HH33 22 0.0976 1.008 ; qtot 0 + +[ bonds ] +; ai aj funct c0 c1 c2 c3 + 1 2 1 + 1 3 1 + 1 4 1 + 1 5 1 + 5 6 1 + 5 7 1 + 7 8 1 + 7 9 1 + 9 10 1 + 9 11 1 + 9 15 1 + 11 12 1 + 11 13 1 + 11 14 1 + 15 16 1 + 15 17 1 + 17 18 1 + 17 19 1 + 19 20 1 + 19 21 1 + 19 22 1 + +[ pairs ] +; ai aj funct c0 c1 c2 c3 + 1 8 1 + 1 9 1 + 2 6 1 + 2 7 1 + 3 6 1 + 3 7 1 + 4 6 1 + 4 7 1 + 5 10 1 + 5 11 1 + 5 15 1 + 6 8 1 + 6 9 1 + 7 12 1 + 7 13 1 + 7 14 1 + 7 16 1 + 7 17 1 + 8 10 1 + 8 11 1 + 8 15 1 + 9 18 1 + 9 19 1 + 10 12 1 + 10 13 1 + 10 14 1 + 10 16 1 + 10 17 1 + 11 16 1 + 11 17 1 + 12 15 1 + 13 15 1 + 14 15 1 + 15 20 1 + 15 21 1 + 15 22 1 + 16 18 1 + 16 19 1 + 18 20 1 + 18 21 1 + 18 22 1 + +[ angles ] +; ai aj ak funct c0 c1 c2 c3 + 2 1 3 1 + 2 1 4 1 + 2 1 5 1 + 3 1 4 1 + 3 1 5 1 + 4 1 5 1 + 1 5 6 1 + 1 5 7 1 + 6 5 7 1 + 5 7 8 1 + 5 7 9 1 + 8 7 9 1 + 7 9 10 1 + 7 9 11 1 + 7 9 15 1 + 10 9 11 1 + 10 9 15 1 + 11 9 15 1 + 9 11 12 1 + 9 11 13 1 + 9 11 14 1 + 12 11 13 1 + 12 11 14 1 + 13 11 14 1 + 9 15 16 1 + 9 15 17 1 + 16 15 17 1 + 15 17 18 1 + 15 17 19 1 + 18 17 19 1 + 17 19 20 1 + 17 19 21 1 + 17 19 22 1 + 20 19 21 1 + 20 19 22 1 + 21 19 22 1 + +[ dihedrals ] +; ai aj ak al funct c0 c1 c2 c3 c4 c5 + 2 1 5 6 9 + 2 1 5 7 9 + 3 1 5 6 9 + 3 1 5 7 9 + 4 1 5 6 9 + 4 1 5 7 9 + 1 5 7 8 9 + 1 5 7 9 9 + 6 5 7 8 9 + 6 5 7 9 9 + 5 7 9 10 9 + 5 7 9 11 9 + 5 7 9 15 9 + 8 7 9 10 9 + 8 7 9 11 9 + 8 7 9 15 9 + 7 9 11 12 9 + 7 9 11 13 9 + 7 9 11 14 9 + 10 9 11 12 9 + 10 9 11 13 9 + 10 9 11 14 9 + 15 9 11 12 9 + 15 9 11 13 9 + 15 9 11 14 9 + 7 9 15 16 9 + 7 9 15 17 9 + 10 9 15 16 9 + 10 9 15 17 9 + 11 9 15 16 9 + 11 9 15 17 9 + 9 15 17 18 9 + 9 15 17 19 9 + 16 15 17 18 9 + 16 15 17 19 9 + 15 17 19 20 9 + 15 17 19 21 9 + 15 17 19 22 9 + 18 17 19 20 9 + 18 17 19 21 9 + 18 17 19 22 9 + +[ dihedrals ] +; ai aj ak al funct c0 c1 c2 c3 + 1 7 5 6 4 + 5 9 7 8 4 + 9 17 15 16 4 + 15 19 17 18 4 + +; Include Position restraint file +#ifdef POSRES +#include "posre.itp" +#endif + +; Include water topology +#include "amber96.ff/tip3p.itp" + +#ifdef POSRES_WATER +; Position restraint for each water oxygen +[ position_restraints ] +; i funct fcx fcy fcz + 1 1 1000 1000 1000 +#endif + +; Include topology for ions +#include "amber96.ff/ions.itp" + +[ system ] +; Name +Protein + +[ molecules ] +; Compound #mols +Protein_chain_A 1 +SOL 543 diff --git a/openpathsampling/tests/test_data/gromacs_engine/traj.trr b/openpathsampling/tests/test_data/gromacs_engine/traj.trr new file mode 100644 index 0000000000000000000000000000000000000000..4a36fa3d3d5683aef9aaf08b4d04398fe3c799e0 GIT binary patch literal 158976 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

E@avV@H=!ZanJQb#!wl^8|P4|*cFIx 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 p^~q&|!T{RW@ Date: Sun, 17 Mar 2019 21:15:30 +0100 Subject: [PATCH 168/464] Add IOError for missing frames For some reason, I'm getting different errors for this in different environments. --- openpathsampling/engines/gromacs/engine.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openpathsampling/engines/gromacs/engine.py b/openpathsampling/engines/gromacs/engine.py index 2efdf5e8c..10324b7c1 100644 --- a/openpathsampling/engines/gromacs/engine.py +++ b/openpathsampling/engines/gromacs/engine.py @@ -259,7 +259,7 @@ def read_frame_from_file(self, file_name, frame_num): file_number = int(basename.split('.')[0]) try: xyz, vel, box = self.read_frame_data(file_name, frame_num) - except (IndexError, OSError): + except (IndexError, OSError, IOError): # this means that no such frame exists yet, so we return None # IndexError in older version, OSError more recently (specific # MDTraj error) From 6131195e5d98a6e37ccf0dd33f17d30a9ac3facb Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Sun, 17 Mar 2019 22:44:42 +0100 Subject: [PATCH 169/464] correct import for py3 --- openpathsampling/tests/test_gromacs_engine.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openpathsampling/tests/test_gromacs_engine.py b/openpathsampling/tests/test_gromacs_engine.py index fd8f13fb4..88e641e7e 100644 --- a/openpathsampling/tests/test_gromacs_engine.py +++ b/openpathsampling/tests/test_gromacs_engine.py @@ -5,7 +5,7 @@ from nose.plugins.skip import Skip, SkipTest import numpy.testing as npt -from test_helpers import data_filename, assert_items_equal +from .test_helpers import data_filename, assert_items_equal import openpathsampling as paths import mdtraj as md From a650524f88a6bcdd2b5cdd8d082b6b3ca44db06f Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Wed, 20 Mar 2019 16:17:26 +0100 Subject: [PATCH 170/464] Fix external engine tests for pytest --- ...ernal_engine.py => test_external_engine.py} | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) rename openpathsampling/tests/{testexternal_engine.py => test_external_engine.py} (95%) diff --git a/openpathsampling/tests/testexternal_engine.py b/openpathsampling/tests/test_external_engine.py similarity index 95% rename from openpathsampling/tests/testexternal_engine.py rename to openpathsampling/tests/test_external_engine.py index 679b67127..b824ffd45 100644 --- a/openpathsampling/tests/testexternal_engine.py +++ b/openpathsampling/tests/test_external_engine.py @@ -23,26 +23,26 @@ engine_dir = os.path.join(os.path.dirname(os.path.realpath(__file__)), "external_engine") -def setUp(): +def module_setup(): proc = psutil.Popen("make", cwd=engine_dir) proc.wait() -def teardown(): +def module_teardown(): # proc = psutil.Popen("make clean", cwd=engine_dir, shell=True) # proc.wait() for testfile in glob.glob("test*out") + glob.glob("test*inp"): os.remove(testfile) -class testExternalEngine(object): - def setUp(self): +class TestExternalEngine(object): + def setup(self): slow_options = { - 'n_frames_max' : 10000, + 'n_frames_max' : 10000, 'engine_sleep' : 100, 'name_prefix' : "test", 'engine_directory' : engine_dir } fast_options = { - 'n_frames_max' : 10000, + 'n_frames_max' : 10000, 'engine_sleep' : 0, 'name_prefix' : "test", 'engine_directory' : engine_dir @@ -65,7 +65,7 @@ def test_start_stop(self): eng.start(self.template) assert_equal(eng.proc.is_running(), True) # zombies also run - assert_not_equal(eng.proc.status(), psutil.STATUS_ZOMBIE) + assert_not_equal(eng.proc.status(), psutil.STATUS_ZOMBIE) # stop it; check that it isn't running eng.stop(None) @@ -113,14 +113,14 @@ def test_generate_next_frame(self): def test_slow_run(self): # generate traj in LengthEnsemble if frames only come every 100ms self.slow_engine.initialized = True - traj = self.slow_engine.generate(self.template, + traj = self.slow_engine.generate(self.template, [self.ensemble.can_append]) assert_equal(len(traj), 5) def test_fast_run(self): # generate traj in LengthEnsemble if frames come as fast as possible self.fast_engine.initialized = True - traj = self.fast_engine.generate(self.template, + traj = self.fast_engine.generate(self.template, [self.ensemble.can_append]) assert_equal(len(traj), 5) From 694a4623acac02ff46edbe7dec594c3192db85b3 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Wed, 20 Mar 2019 18:52:38 +0100 Subject: [PATCH 171/464] correct name for pytest module-level setup --- openpathsampling/tests/test_external_engine.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/openpathsampling/tests/test_external_engine.py b/openpathsampling/tests/test_external_engine.py index b824ffd45..e7eda984c 100644 --- a/openpathsampling/tests/test_external_engine.py +++ b/openpathsampling/tests/test_external_engine.py @@ -23,11 +23,11 @@ engine_dir = os.path.join(os.path.dirname(os.path.realpath(__file__)), "external_engine") -def module_setup(): +def setup_module(): proc = psutil.Popen("make", cwd=engine_dir) proc.wait() -def module_teardown(): +def teardown_module(): # proc = psutil.Popen("make clean", cwd=engine_dir, shell=True) # proc.wait() for testfile in glob.glob("test*out") + glob.glob("test*inp"): From 0ccbb283ac1367ccea7778ff931bfbec84517d2a Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Sun, 24 Mar 2019 22:31:20 +0100 Subject: [PATCH 172/464] Update (most of) indirect engine API docs --- docs/developers/engines_indirect_api.rst | 62 +++++++++++++++++++++++- 1 file changed, 61 insertions(+), 1 deletion(-) diff --git a/docs/developers/engines_indirect_api.rst b/docs/developers/engines_indirect_api.rst index 008991a87..1874c2af5 100644 --- a/docs/developers/engines_indirect_api.rst +++ b/docs/developers/engines_indirect_api.rst @@ -1,4 +1,64 @@ Indirect API for Engines ======================== -[COMING SOON: the indirect API for engines will be included in version 1.1] +The indirect API launches a trajectory as a separate, and monitors the +trajectory file it outputs until we hit the stopping criterion. Then we kill +the trajectory and clean up. The main things you need to implement for the +OPS indirect engine API are ways to handle reading and writing files for the +engine. + +Indirect Engine API Overview +---------------------------- + +If you intend to use indirect control, your engine class should inherit from +:class:`.ExternalEngine`, and you should consider overriding the following +methods: + +* ``read_frame_from_file(filename, frame_num)``: reads the frame from the + external engine's file format +* ``write_frame_to_file(filename, snapshot, mode="a")``: writes the frame to + the external engine's format (used to initiate trajectories) +* ``engine_command()``: returns a string of the command to be called by the + operating system +* ``set_filenames(number)``: sets the file names for step ``number`` +* ``cleanup()``: does any clean-up tasks needed after killing the subprocess + (e.g., removing temporary files) + +Additionally, you may wish to override the following options: + +* ``killsig`` (class variable): the signal sent to terminate the process + (default is ``signal.SIGTERM``). +* ``default_sleep_ms`` (set in ``options``): time the engines sleeps before + checking again whether a new frame has been written. Note that an + :class:`.ExternalEngine` will automatically optimize the sleep time until + you set the option ``auto_optimize_sleep`` to ``False``. + + +How the Indirect Engine API Runs +-------------------------------- + +This subsection gives an overview of what order the methods that make up the +direct engine API are called in the course of a trajectory. Keep in mind +that the indirect API internally implements the direct API (i.e., OPS +methods actually call the direct API). So frequently the indirect API +mirrors the direct API, but with a different method name and some default +behavior. + +* **Start of simulation:** Code that needs to be run before performing any + dynamics should be part of the standard ``__init__`` of your engine + subclass. +* **Start of dynamics:** Before launching the external engine, the code will + create an input file with the initial snapshot. Then it will run the + ``prepare`` method and start a subprocess based on the ``engine_command`` + method. +* **During dynamics:** The output trajectory file is monitored with by + occasionally reading the file with the ``read_frame_from_file`` method. +* **After dynamics:** After the stopping criterion has been reached, the + engine will send the ``killsig`` to the external process, and then follow + the instructions in ``cleanup`` to finish processing of the trajectory. + +Indirect Engine API Step-by-Step +-------------------------------- + +*Or: "So you want to make an indirect API engine?"* + From 6bee3d18446ff8035c5b587c377addd151e02c45 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Sat, 30 Mar 2019 23:54:04 +0100 Subject: [PATCH 173/464] fixes for needing SnapshotDescriptor in ExtEngine --- openpathsampling/tests/test_external_engine.py | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/openpathsampling/tests/test_external_engine.py b/openpathsampling/tests/test_external_engine.py index e7eda984c..db0807cb9 100644 --- a/openpathsampling/tests/test_external_engine.py +++ b/openpathsampling/tests/test_external_engine.py @@ -5,6 +5,7 @@ import openpathsampling as paths import openpathsampling.engines as peng +from openpathsampling.engines.toy import ToySnapshot import numpy as np @@ -17,6 +18,8 @@ import logging +from openpathsampling.engines.snapshot import SnapshotDescriptor + logging.getLogger('openpathsampling.ensemble').setLevel(logging.CRITICAL) logging.getLogger('openpathsampling.netcdfplus').setLevel(logging.CRITICAL) @@ -35,6 +38,11 @@ def teardown_module(): class TestExternalEngine(object): def setup(self): + self.descriptor = SnapshotDescriptor.construct( + snapshot_class=ToySnapshot, + snapshot_dimensions={'n_spatial': 1, + 'n_atoms': 1} + ) slow_options = { 'n_frames_max' : 10000, 'engine_sleep' : 100, @@ -49,8 +57,12 @@ def setup(self): } self.template = peng.toy.Snapshot(coordinates=np.array([[0.0]]), velocities=np.array([[1.0]])) - self.slow_engine = peng.ExternalEngine(slow_options, self.template) - self.fast_engine = peng.ExternalEngine(fast_options, self.template) + self.slow_engine = peng.ExternalEngine(slow_options, + self.descriptor, + self.template) + self.fast_engine = peng.ExternalEngine(fast_options, + self.descriptor, + self.template) self.ensemble = paths.LengthEnsemble(5) def test_start_stop(self): From 350235dacd841c23f06783545449ff36aa195541 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Sat, 6 Apr 2019 15:48:25 +0200 Subject: [PATCH 174/464] more improvements (& docs) on JSON extensions --- .../experimental/storage/custom_json.py | 20 ++++- .../experimental/storage/my_types.py | 4 +- .../experimental/storage/ops_storage.py | 73 +++++++++++-------- 3 files changed, 63 insertions(+), 34 deletions(-) diff --git a/openpathsampling/experimental/storage/custom_json.py b/openpathsampling/experimental/storage/custom_json.py index fe5010309..01924b335 100644 --- a/openpathsampling/experimental/storage/custom_json.py +++ b/openpathsampling/experimental/storage/custom_json.py @@ -42,6 +42,24 @@ class JSONCodec(object): Parameters ---------- + cls : class + Class for this codec. Assumes that all subclasses should be treated + the same way. Can be `None` if `is_my_obj` and `is_my_class` are + given. + to_dict : callable + method that converts the object to a dictionary + from_dict : callable + method that restores the object based on the dictionary made by + to_dict + is_my_obj : callable + (Optional) Method to determine whether the input object should be + treated by this encoder. Default behavior is to use + ``isinstance(cls)``, and to create a dict that also includes the + class name and the module of the object. + is_my_dict : callable + (Optional) Method to determine whether the input dictionary should + be treated by this decoder. Default behavior assumes usage of the + default ``is_my_obj``. """ def __init__(self, cls, to_dict, from_dict, is_my_obj=None, is_my_dict=None): @@ -114,4 +132,4 @@ def uuid_object_to_dict(obj): is_my_obj=has_uuid, is_my_dict=lambda x: False) -# TODO: simtk.unit.Quantity +# TODO: simtk.unit.Quantity (in the OPS storage, though) diff --git a/openpathsampling/experimental/storage/my_types.py b/openpathsampling/experimental/storage/my_types.py index be4266143..9fb149181 100644 --- a/openpathsampling/experimental/storage/my_types.py +++ b/openpathsampling/experimental/storage/my_types.py @@ -12,7 +12,8 @@ def parse_ndarray_type(type_name): return dtype, shape return None - +# TODO: this needs to be set up in a way to make it extensible (without +# editing core code) def backend_registration_type(type_name): backend_type = type_name ndarray_info = parse_ndarray_type(type_name) @@ -21,6 +22,7 @@ def backend_registration_type(type_name): return backend_type + uuid_types = ['uuid', 'lazy'] uuid_list_types = ['list_uuid'] builtin_types = ['str', 'int', 'float'] diff --git a/openpathsampling/experimental/storage/ops_storage.py b/openpathsampling/experimental/storage/ops_storage.py index 5ab0625a9..dac2e1d6f 100644 --- a/openpathsampling/experimental/storage/ops_storage.py +++ b/openpathsampling/experimental/storage/ops_storage.py @@ -51,12 +51,14 @@ ops_schema_sql_metadata = {} # this defines the simulation object serializer for OPS -json_serializer, json_deserializer = default_serializer_deserializer( - [numpy_codec, bytes_codec, uuid_object_codec] -) -ops_simobj_serializer = SimulationObjectSerializer( - json_encoder=json_serializer -) +CODECS = [numpy_codec, bytes_codec, uuid_object_codec] + +# json_serializer, json_deserializer = default_serializer_deserializer( + # [numpy_codec, bytes_codec, uuid_object_codec] +# ) +# ops_simobj_serializer = SimulationObjectSerializer( + # json_encoder=json_serializer +# ) class MoveChangeDeserializer(SchemaDeserializer): # in general, I think it would be better to reorg MoveChange to only be @@ -156,32 +158,39 @@ def add_missing_table_from_instance(self, lookup, obj): self.register_info(class_info_list, schema) self.n_snapshot_types += 1 - -ops_class_info = OPSClassInfoContainer( - default_info=ClassInfo('simulation_objects', cls=StorableObject, - serializer=ops_simobj_serializer, - deserializer=deserialize_sim, - find_uuids=default_find_uuids), - schema=ops_schema, - class_info_list=[ - ClassInfo(table='samples', cls=paths.Sample), - ClassInfo(table='sample_sets', cls=paths.SampleSet), - ClassInfo(table='trajectories', cls=paths.Trajectory), - ClassInfo(table='move_changes', cls=paths.MoveChange, - deserializer=MoveChangeDeserializer( - schema=ops_schema, - table='move_changes' - )), - ClassInfo(table='steps', cls=paths.MCStep), - ClassInfo(table='details', cls=paths.Details, - serializer=ops_simobj_serializer, - deserializer=deserialize_sim), - ] -) - -for info in ops_class_info.class_info_list: - info.set_defaults(ops_schema) - +def _build_ops_serializer(codecs=None): + if codecs is None: + codecs = CODECS + json_ser, json_deser = default_serializer_deserializer(codecs) + ops_simobj_serializer = SimulationObjectSerializer(json_encoder=json_ser) + ops_class_info = OPSClassInfoContainer( + default_info=ClassInfo('simulation_objects', cls=StorableObject, + serializer=ops_simobj_serializer, + deserializer=deserialize_sim, + find_uuids=default_find_uuids), + schema=ops_schema, + class_info_list=[ + ClassInfo(table='samples', cls=paths.Sample), + ClassInfo(table='sample_sets', cls=paths.SampleSet), + ClassInfo(table='trajectories', cls=paths.Trajectory), + ClassInfo(table='move_changes', cls=paths.MoveChange, + deserializer=MoveChangeDeserializer( + schema=ops_schema, + table='move_changes' + )), + ClassInfo(table='steps', cls=paths.MCStep), + ClassInfo(table='details', cls=paths.Details, + serializer=ops_simobj_serializer, + deserializer=deserialize_sim), + ] + ) + + for info in ops_class_info.class_info_list: + info.set_defaults(ops_schema) + + return ops_class_info + +ops_class_info = _build_ops_serializer(codecs=CODECS) # this will create the pseudo-tables used to find specific objects ops_simulation_classes = { From 84fd8381dffe0fbd7e79939c74a5e07b7057b310 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Tue, 9 Apr 2019 13:08:07 +0200 Subject: [PATCH 175/464] add .mdtraj_topology --- openpathsampling/engines/gromacs/engine.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/openpathsampling/engines/gromacs/engine.py b/openpathsampling/engines/gromacs/engine.py index 10324b7c1..78b44e292 100644 --- a/openpathsampling/engines/gromacs/engine.py +++ b/openpathsampling/engines/gromacs/engine.py @@ -227,6 +227,10 @@ def to_dict(self): 'prefix': self.prefix } + @property + def mdtraj_trajectory(self): + return self.topology.mdtraj + def read_frame_data(self, filename, frame_num): """ Returns pos, vel, box or raises error From 83c4ed6ea0e6d37abd8fcf51517faf90a2ea9ca9 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Wed, 10 Apr 2019 14:39:04 +0200 Subject: [PATCH 176/464] fix the fix --- openpathsampling/engines/gromacs/engine.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openpathsampling/engines/gromacs/engine.py b/openpathsampling/engines/gromacs/engine.py index 78b44e292..621b1b93a 100644 --- a/openpathsampling/engines/gromacs/engine.py +++ b/openpathsampling/engines/gromacs/engine.py @@ -228,7 +228,7 @@ def to_dict(self): } @property - def mdtraj_trajectory(self): + def mdtraj_topology(self): return self.topology.mdtraj def read_frame_data(self, filename, frame_num): From 511dc79fc1ef446fca3c04142757374377f14101 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Wed, 10 Apr 2019 17:18:33 +0200 Subject: [PATCH 177/464] Fix for several suggestions from hejung * define placeholder file names in __init__ * docstring mentions restrictions on mdp (may need more!) * make mdtraj_topology a settable property (custom topology) --- openpathsampling/engines/gromacs/engine.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/openpathsampling/engines/gromacs/engine.py b/openpathsampling/engines/gromacs/engine.py index 621b1b93a..a171f6d07 100644 --- a/openpathsampling/engines/gromacs/engine.py +++ b/openpathsampling/engines/gromacs/engine.py @@ -157,6 +157,11 @@ class GromacsEngine(ExternalEngine): This provides Gromacs support, using our indirect engine API (TODO link). + OPS runs Gromacs based on the mdp file that you provide. This mdp file + MUST output in the TRR format, and the velocity and position save + frequency in the TRR must be the same (that is, you need to have + ``nstxout`` = ``nstvout``, and they must not be 0). + Parameters ---------- gro : string @@ -212,6 +217,14 @@ def __init__(self, gro, mdp, top, options, base_dir="", prefix="gmx"): self.topology = template.topology descriptor = template.engine.descriptor # descriptor from gro file + # initial placeholders + self.input_file = "INITIAL.trr" + self.output_file = "OUTPUT_NAME.trr" + self.edr_file = "EDR_DIR/OUTPUT_NAME.edr" + self.log_file = "LOG_DIR/OUTPUT_NAME.log" + + self._mdtraj_topology = None + super(GromacsEngine, self).__init__(options, descriptor, template, first_frame_in_file=True) @@ -229,8 +242,14 @@ def to_dict(self): @property def mdtraj_topology(self): + if self._mdtraj_topology: + return self._mdtraj_topology return self.topology.mdtraj + @mdtraj_topology.setter + def mdtraj_topology(self, value): + self._mdtraj_topology = value + def read_frame_data(self, filename, frame_num): """ Returns pos, vel, box or raises error From be052e250b091e2ce8816e9894601a0ec0a29608 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Fri, 12 Apr 2019 14:40:57 +0200 Subject: [PATCH 178/464] update gro param docstring (recommend PDB) --- openpathsampling/engines/gromacs/engine.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/openpathsampling/engines/gromacs/engine.py b/openpathsampling/engines/gromacs/engine.py index a171f6d07..bad4e5743 100644 --- a/openpathsampling/engines/gromacs/engine.py +++ b/openpathsampling/engines/gromacs/engine.py @@ -165,7 +165,9 @@ class GromacsEngine(ExternalEngine): Parameters ---------- gro : string - .gro file + File for the grompp ``-c`` flag. This is often a .gro, but note that + you may get better support with other integrations (e.g., MDTraj) if + you use a PDB. mdp : string .mdp file top : string From 4f901f203db1d0a91aacbc27a3cd8bbb0d28a830 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Tue, 23 Apr 2019 02:10:51 +0200 Subject: [PATCH 179/464] Start to test_class_info; restructure mocks --- .../experimental/storage/test_class_info.py | 87 +++++++++++++++++++ .../experimental/storage/test_utils.py | 60 ++++++++----- 2 files changed, 123 insertions(+), 24 deletions(-) create mode 100644 openpathsampling/experimental/storage/test_class_info.py diff --git a/openpathsampling/experimental/storage/test_class_info.py b/openpathsampling/experimental/storage/test_class_info.py new file mode 100644 index 000000000..dbe25b897 --- /dev/null +++ b/openpathsampling/experimental/storage/test_class_info.py @@ -0,0 +1,87 @@ +from .class_info import * +import pytest + +from .test_utils import ( + all_objects, MockUUIDObject, MockSimulationObject, ExtraMockDataObject +) + +from .serialization_helpers import default_find_uuids + +class TestClassInfo(object): + def test_init_default_setup(self): + class_info = ClassInfo( + table="mock", + cls=MockUUIDObject + ) + schema = {'mock': MockUUIDObject.schema} + class_info.set_defaults(schema) + assert class_info.table == "mock" + assert class_info.cls == MockUUIDObject + assert isinstance(class_info.serializer, SchemaSerializer) + assert isinstance(class_info.deserializer, SchemaDeserializer) + assert isinstance(class_info.find_uuids, SchemaFindUUIDs) + assert class_info.lookup_result == MockUUIDObject + + +class TestSerializationSchema(object): + def setup(self): + self.data_obj = all_objects['int'] # doesn't really matter which + # technically, the next two should behave identically, except + # name/UUID; but as different types they can be serailized + # differently (data object serialization or simulation object + # serialization) + self.sim_obj = MockSimulationObject(name='sim_obj', + normal_attr='foo') + self.extra_obj = ExtraMockDataObject(name='data', str_attr='foo') + class_info_list = [ClassInfo(table='mock', cls=MockUUIDObject)] + schema = {'mock': MockUUIDObject.schema} + self.serialization_schema = SerializationSchema( + default_info=ClassInfo( + 'simulation_objects', cls=MockSimulationObject, + # TODO: serializer=ser, + # TODO: deserializer=deser, + find_uuids=default_find_uuids + ), + schema=schema, + class_info_list = class_info_list + ) + + + def test_init(self): + pytest.skip() + + def test_tables(self): + pytest.skip() + + def test_add_class_info(self): + pytest.skip() + + def test_register_info(self): + pytest.skip() + + def test_lookup_key(self): + pytest.skip() + + def test_info_from_instance(self): + pytest.skip() + + +class TestSerializationSchemaSpecial(object): + def test_special_lookup_key(self): + pytest.skip() + + def test_is_special(self): + pytest.skip() + + def test_get_special(self): + pytest.skip() + + def test_lookup_key_for_special(self): + pytest.skip() + + def test_info_from_instance_for_special(self): + pytest.skip() + + def test_add_missing_table_from_instance(self): + pytest.skip() + diff --git a/openpathsampling/experimental/storage/test_utils.py b/openpathsampling/experimental/storage/test_utils.py index b625929dd..f49bdcf5f 100644 --- a/openpathsampling/experimental/storage/test_utils.py +++ b/openpathsampling/experimental/storage/test_utils.py @@ -13,37 +13,49 @@ def toy_uuid_maker(name): def uuid_encode(name): return "UUID(" + str(toy_uuid_maker(name)) + ")" -class MockUUIDObject(object): - attr_list = ['name', 'normal_attr', 'obj_attr', 'list_attr', - 'dict_attr', 'lazy_attr'] - schema = [('dict_attr', 'uuid'), ('list_attr', 'list_uuid'), - ('obj_attr', 'uuid'), ('lazy_attr', 'lazy'), - ('normal_attr', 'str')] - def __init__(self, name, normal_attr=None, obj_attr=None, - list_attr=None, dict_attr=None, lazy_attr=None): - self.name = name - self.__uuid__ = toy_uuid_maker(name) - self.dict_attr = dict_attr - self.list_attr = list_attr - self.obj_attr = obj_attr - self.normal_attr = normal_attr - self.lazy_attr = lazy_attr + +class AbstractMockUUIDObject(object): + def __init__(self, *args, **kwargs): + keywords = dict(zip(self.attr_list, args)) + check = [attr in self.attr_list and attr not in keywords + for attr in kwargs] + if all(check): + keywords.update(kwargs) + else: + raise Exception("Something bad happened in setup") + + # all defaults are None + keywords.update({attr: None for attr in self.attr_list + if attr not in keywords}) + + self.__uuid__ = toy_uuid_maker(keywords['name']) + + for attr, value in keywords.items(): + setattr(self, attr, value) def to_dict(self): - return { - 'name': self.name, - 'obj_attr': self.obj_attr, - 'list_attr': self.list_attr, - 'dict_attr': self.dict_attr, - 'normal_attr': self.normal_attr, - 'lazy_attr': self.lazy_attr - } + return {attr: getattr(self, attr) for attr in self.attr_list} @classmethod def from_dict(cls, dct): # set UUID after return cls(name=None, **dct) +class MockUUIDObject(AbstractMockUUIDObject): + attr_list = ['name', 'normal_attr', 'obj_attr', 'list_attr', + 'dict_attr', 'lazy_attr'] + schema = [('dict_attr', 'uuid'), ('list_attr', 'list_uuid'), + ('obj_attr', 'uuid'), ('lazy_attr', 'lazy'), + ('normal_attr', 'str')] + +class MockSimulationObject(AbstractMockUUIDObject): + attr_list = ['name', 'normal_attr'] + # no schema; use this for simulation objects + +class ExtraMockDataObject(AbstractMockUUIDObject): + attr_list = ['name', 'str_attr'] + schema = [('str_attr', 'str')] + class MockBackend(object): def _table_data_for_object(self, obj, table_name, **kwargs): @@ -66,7 +78,7 @@ def __init__(self): 'sims': [('json', 'json_obj'), ('class_idx', 'int')] } self.row_types = { - 'uuids': namedtuple('UUIDsRow', ['uuid', 'table', 'idx']), + 'uuids': namedtuple('UUIDsRow', ['uuid', 'table', 'idx']), 'objs': namedtuple('ObjRow', ['uuid', 'idx', 'obj_attr']), 'ints': namedtuple('IntRow', ['uuid', 'idx', 'normal_attr']), 'sims': namedtuple('SimRow', From 112175addcb27222645a06569400f3dcb4ddb512 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Wed, 1 May 2019 18:59:29 +0200 Subject: [PATCH 180/464] update to use wrapper for custom json codecs This should allow later registration of new codecs --- .../experimental/storage/custom_json.py | 50 +++++++++++++++++-- .../experimental/storage/ops_storage.py | 25 +++------- 2 files changed, 53 insertions(+), 22 deletions(-) diff --git a/openpathsampling/experimental/storage/custom_json.py b/openpathsampling/experimental/storage/custom_json.py index 01924b335..2fa76b46d 100644 --- a/openpathsampling/experimental/storage/custom_json.py +++ b/openpathsampling/experimental/storage/custom_json.py @@ -3,12 +3,52 @@ from collections import namedtuple from .tools import none_to_default from .serialization_helpers import has_uuid, replace_uuid, encode_uuid +from .serialization import SimulationObjectSerializer + +class JSONSerializerDeserializer(object): + """ + Tools to serialize and deserialize objects as JSON. + + This wrapper object is necessary so that we can register new codecs + after the original initialization. + + Parameters + ---------- + codecs : list of :class:`.JSONCodec`s + codecs supported + """ + def __init__(self, codecs): + self._serializer = None + self._deserializer = None + self._sim_serializer = None + self.codecs = [] + for codec in codecs: + self.add_codec(codec) + + def add_codec(self, codec): + """Add a new codec to the supported codecs + + Parameters + ---------- + codec : :class:`.JSONCodec` + codec to add + """ + if codec is not None: + self.codecs.append(codec) + encoder, decoder = custom_json_factory(self.codecs) + self._serializer = functools.partial(json.dumps, cls=encoder) + self._deserializer = functools.partial(json.loads, cls=decoder) + self._sim_serializer = SimulationObjectSerializer(self._serializer) + + def serializer(self, obj): + return self.serializer(obj) + + def deserializer(self, string): + return self._deserializer(string) + + def simobj_serializer(self, obj): + return self._sim_serializer(obj) -def default_serializer_deserializer(codecs): - encoder, decoder = custom_json_factory(codecs) - serializer = functools.partial(json.dumps, cls=encoder) - deserializer = functools.partial(json.loads, cls=decoder) - return serializer, deserializer def custom_json_factory(coding_methods): """Create JSONEncoder/JSONDecoder for special types diff --git a/openpathsampling/experimental/storage/ops_storage.py b/openpathsampling/experimental/storage/ops_storage.py index dac2e1d6f..43ac2e56a 100644 --- a/openpathsampling/experimental/storage/ops_storage.py +++ b/openpathsampling/experimental/storage/ops_storage.py @@ -13,8 +13,8 @@ from . import tools from .custom_json import ( - default_serializer_deserializer, numpy_codec, bytes_codec, - uuid_object_codec + JSONSerializerDeserializer, + numpy_codec, bytes_codec, uuid_object_codec, ) from .serialization import ( @@ -53,13 +53,6 @@ # this defines the simulation object serializer for OPS CODECS = [numpy_codec, bytes_codec, uuid_object_codec] -# json_serializer, json_deserializer = default_serializer_deserializer( - # [numpy_codec, bytes_codec, uuid_object_codec] -# ) -# ops_simobj_serializer = SimulationObjectSerializer( - # json_encoder=json_serializer -# ) - class MoveChangeDeserializer(SchemaDeserializer): # in general, I think it would be better to reorg MoveChange to only be # one class, but this is aimed at fixing problems with reloading @@ -158,14 +151,12 @@ def add_missing_table_from_instance(self, lookup, obj): self.register_info(class_info_list, schema) self.n_snapshot_types += 1 -def _build_ops_serializer(codecs=None): - if codecs is None: - codecs = CODECS - json_ser, json_deser = default_serializer_deserializer(codecs) - ops_simobj_serializer = SimulationObjectSerializer(json_encoder=json_ser) +ops_codecs = JSONSerializerDeserializer(CODECS) + +def _build_ops_serializer(codecs): ops_class_info = OPSClassInfoContainer( default_info=ClassInfo('simulation_objects', cls=StorableObject, - serializer=ops_simobj_serializer, + serializer=codecs.simobj_serializer, deserializer=deserialize_sim, find_uuids=default_find_uuids), schema=ops_schema, @@ -180,7 +171,7 @@ def _build_ops_serializer(codecs=None): )), ClassInfo(table='steps', cls=paths.MCStep), ClassInfo(table='details', cls=paths.Details, - serializer=ops_simobj_serializer, + serializer=codecs.simobj_serializer, deserializer=deserialize_sim), ] ) @@ -190,7 +181,7 @@ def _build_ops_serializer(codecs=None): return ops_class_info -ops_class_info = _build_ops_serializer(codecs=CODECS) +ops_class_info = _build_ops_serializer(codecs=ops_codecs) # this will create the pseudo-tables used to find specific objects ops_simulation_classes = { From 405620f707c488b34fdc30d63c3da328a361e0f2 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 2 May 2019 17:05:44 +0200 Subject: [PATCH 181/464] test for add_codec in the custom JSON stuff --- .../experimental/storage/custom_json.py | 2 +- .../experimental/storage/test_custom_json.py | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/openpathsampling/experimental/storage/custom_json.py b/openpathsampling/experimental/storage/custom_json.py index 2fa76b46d..095bccc51 100644 --- a/openpathsampling/experimental/storage/custom_json.py +++ b/openpathsampling/experimental/storage/custom_json.py @@ -41,7 +41,7 @@ def add_codec(self, codec): self._sim_serializer = SimulationObjectSerializer(self._serializer) def serializer(self, obj): - return self.serializer(obj) + return self._serializer(obj) def deserializer(self, string): return self._deserializer(string) diff --git a/openpathsampling/experimental/storage/test_custom_json.py b/openpathsampling/experimental/storage/test_custom_json.py index 62e454f31..4ee683645 100644 --- a/openpathsampling/experimental/storage/test_custom_json.py +++ b/openpathsampling/experimental/storage/test_custom_json.py @@ -8,6 +8,21 @@ from . import test_utils +class TestJSONSerializerDeserializer(object): + def test_add_codec(self): + # without bytes codec, can't serialize numpy + serialization = JSONSerializerDeserializer([numpy_codec]) + obj = np.array([[1.0, 0.0], [2.0, 3.2]]) + with pytest.raises(TypeError): + serialization.serializer(obj) + # add the codec and it will work + serialization.add_codec(bytes_codec) + serialized = serialization.serializer(obj) + assert len(serialization.codecs) == 2 + reconstructed = serialization.deserializer(serialized) + npt.assert_equal(obj, reconstructed) + + class CustomJSONCodingTest(object): def test_default(self): for (obj, dct) in zip(self.objs, self.dcts): From 0da86079834651a614ac3a27f3a83f66ed18b420 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Fri, 3 May 2019 14:23:19 +0200 Subject: [PATCH 182/464] Tests for serialization_schema w/out specials --- .../experimental/storage/class_info.py | 6 +- .../experimental/storage/test_class_info.py | 105 ++++++++++++++---- 2 files changed, 91 insertions(+), 20 deletions(-) diff --git a/openpathsampling/experimental/storage/class_info.py b/openpathsampling/experimental/storage/class_info.py index 707a9d22a..e27e0e96b 100644 --- a/openpathsampling/experimental/storage/class_info.py +++ b/openpathsampling/experimental/storage/class_info.py @@ -81,7 +81,7 @@ class SerializationSchema(object): than one table, and therefore is not a unique key. For example, a single class might be used to represent data with different dimensions, and therefore require different tables (e.g, coordinates for different - systems). In such cases, the ClassInfoContainer needs to be subclassed + systems). In such cases, the SerializationSchema needs to be subclassed with specialized information. """ def __init__(self, default_info, schema=None, class_info_list=None): @@ -95,6 +95,8 @@ def __init__(self, default_info, schema=None, class_info_list=None): self.add_class_info(default_info) self.register_info(class_info_list, schema) + # TODO: I think that this can be made private; used by __init__ and + # within register_info def add_class_info(self, info_node): # check that we're not in any existing self.class_info_list.append(info_node) @@ -113,6 +115,7 @@ def register_info(self, class_info_list, schema=None): @property def tables(self): + """list of tables from the included class info objects""" tables = [info.table for info in self.class_info_list] tables.append(self.default_info.table) return tables @@ -351,4 +354,5 @@ def __repr__(self): # pragma: no cover + ", class_info_list=" + repr(self.class_info_list) + ")") +# TODO: remove this alias ClassInfoContainer = SerializationSchema diff --git a/openpathsampling/experimental/storage/test_class_info.py b/openpathsampling/experimental/storage/test_class_info.py index dbe25b897..0d1b87d96 100644 --- a/openpathsampling/experimental/storage/test_class_info.py +++ b/openpathsampling/experimental/storage/test_class_info.py @@ -33,37 +33,104 @@ def setup(self): self.sim_obj = MockSimulationObject(name='sim_obj', normal_attr='foo') self.extra_obj = ExtraMockDataObject(name='data', str_attr='foo') - class_info_list = [ClassInfo(table='mock', cls=MockUUIDObject)] + self.info_default = ClassInfo( + 'simulation_objects', cls=MockSimulationObject, + # TODO: serializer=ser, + # TODO: deserializer=deser, + find_uuids=default_find_uuids + ) + self.info_mock = ClassInfo(table='mock', cls=MockUUIDObject) schema = {'mock': MockUUIDObject.schema} self.serialization_schema = SerializationSchema( - default_info=ClassInfo( - 'simulation_objects', cls=MockSimulationObject, - # TODO: serializer=ser, - # TODO: deserializer=deser, - find_uuids=default_find_uuids - ), + default_info=self.info_default, schema=schema, - class_info_list = class_info_list + class_info_list=[self.info_mock] ) - def test_init(self): - pytest.skip() + serialization = self.serialization_schema - def test_tables(self): - pytest.skip() + schema = {'mock': MockUUIDObject.schema} + assert serialization.schema == schema - def test_add_class_info(self): - pytest.skip() + class_info_set = set([self.info_mock, self.info_default]) + assert set(serialization.class_info_list) == class_info_set + + table_to_info = {'mock': self.info_mock, + 'simulation_objects': self.info_default} + assert serialization.table_to_info == table_to_info + + lookup_to_info = {MockUUIDObject: self.info_mock, + MockSimulationObject: self.info_default} + assert serialization.lookup_to_info == lookup_to_info + + def test_tables(self): + expected = set(['simulation_objects', 'mock']) + assert set(self.serialization_schema.tables) == expected def test_register_info(self): - pytest.skip() + serialization = self.serialization_schema + new_class_info = ClassInfo(table='extra', cls=ExtraMockDataObject) + + assert new_class_info.serializer is None + assert new_class_info.deserializer is None + assert new_class_info.find_uuids is None + new_schema = {'extra': ExtraMockDataObject.schema} + serialization.register_info([new_class_info], schema=new_schema) + + # check that default behavior was set on the class_info + assert new_class_info.serializer is not None + assert new_class_info.deserializer is not None + assert new_class_info.find_uuids is not None + + # check that the serialization schema was correctly updated + schema = {'mock': MockUUIDObject.schema, + 'extra': ExtraMockDataObject.schema} + assert serialization.schema == schema + + class_info_set = set([self.info_mock, self.info_default, + new_class_info]) + assert set(serialization.class_info_list) == class_info_set + + table_to_info = {'mock': self.info_mock, + 'simulation_objects': self.info_default, + 'extra': new_class_info} + assert serialization.table_to_info == table_to_info + + lookup_to_info = {MockUUIDObject: self.info_mock, + MockSimulationObject: self.info_default, + ExtraMockDataObject: new_class_info} + assert serialization.lookup_to_info == lookup_to_info def test_lookup_key(self): - pytest.skip() - - def test_info_from_instance(self): - pytest.skip() + serialization = self.serialization_schema + assert serialization.lookup_key(self.data_obj) == MockUUIDObject + assert serialization.lookup_key(self.sim_obj) == MockSimulationObject + assert serialization.lookup_key(5) == int + + @pytest.mark.parametrize('instance', ['int', 'data', 'sim', 'unknown']) + def test_info_from_instance(self, instance): + serialization = self.serialization_schema + input_val, expected = { + 'int': (5, None), + 'data': (self.data_obj, self.info_mock), + 'sim': (self.sim_obj, self.info_default), + 'unknown': (self.extra_obj, None) + }[instance] + assert serialization.info_from_instance(input_val) == expected + + @pytest.mark.parametrize('in_type', ['string', 'data_obj', 'sim_obj']) + def test_get_item(self, in_type): + inp_val, expected = { + 'string': ('mock', self.info_mock), + 'data_obj': (self.data_obj, self.info_mock), + 'sim_obj': (self.sim_obj, self.info_default) + }[in_type] + assert self.serialization_schema[inp_val] == expected + + def test_get_item_key_error(self): + with pytest.raises(KeyError): + self.serialization_schema[self.extra_obj] class TestSerializationSchemaSpecial(object): From e3edeeab742559c46937932e27597b9a29a8fc17 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Fri, 3 May 2019 17:51:41 +0200 Subject: [PATCH 183/464] Tests for SerializationSchema with specials --- .../experimental/storage/ops_storage.py | 2 + .../experimental/storage/test_class_info.py | 99 ++++++++++++++----- 2 files changed, 76 insertions(+), 25 deletions(-) diff --git a/openpathsampling/experimental/storage/ops_storage.py b/openpathsampling/experimental/storage/ops_storage.py index 43ac2e56a..1f74b25e5 100644 --- a/openpathsampling/experimental/storage/ops_storage.py +++ b/openpathsampling/experimental/storage/ops_storage.py @@ -78,6 +78,8 @@ def __call__(self, uuid, table_dct, cache_list): set_uuid(obj, uuid) return obj +# can't the is_special here just wrap a class_lookup.ClassIsSomething? +# should save a few lines of code class OPSSpecialLookup(object): """Separate object to handle special lookups diff --git a/openpathsampling/experimental/storage/test_class_info.py b/openpathsampling/experimental/storage/test_class_info.py index 0d1b87d96..ed007c9ca 100644 --- a/openpathsampling/experimental/storage/test_class_info.py +++ b/openpathsampling/experimental/storage/test_class_info.py @@ -7,6 +7,22 @@ from .serialization_helpers import default_find_uuids +class MockSpecialSerializationSchema(SerializationSchema): + def is_special(self, item): + return isinstance(item, ExtraMockDataObject) + + def special_lookup_key(self, item): + return (item.__class__, "foo") + + def add_missing_table_from_instance(self, item): + schema = {'extra': item.schema} + cls = item.__class__ + self.register_info([ClassInfo(table="extra", + cls=cls, + lookup_result=(cls, "foo"))], + schema) + + class TestClassInfo(object): def test_init_default_setup(self): class_info = ClassInfo( @@ -22,8 +38,7 @@ def test_init_default_setup(self): assert isinstance(class_info.find_uuids, SchemaFindUUIDs) assert class_info.lookup_result == MockUUIDObject - -class TestSerializationSchema(object): +class SerializationSchemeTester(object): def setup(self): self.data_obj = all_objects['int'] # doesn't really matter which # technically, the next two should behave identically, except @@ -41,7 +56,7 @@ def setup(self): ) self.info_mock = ClassInfo(table='mock', cls=MockUUIDObject) schema = {'mock': MockUUIDObject.schema} - self.serialization_schema = SerializationSchema( + self.serialization_schema = self.SerializationSchemaClass( default_info=self.info_default, schema=schema, class_info_list=[self.info_mock] @@ -68,6 +83,19 @@ def test_tables(self): expected = set(['simulation_objects', 'mock']) assert set(self.serialization_schema.tables) == expected + @pytest.mark.parametrize('input_type', ['data_obj', 'sim_obj', 'int']) + def test_lookup_key(self, input_type): + inp_val, expected = { + 'data_obj': (self.data_obj, MockUUIDObject), + 'sim_obj': (self.sim_obj, MockSimulationObject), + 'int': (5, int) + }[input_type] + assert self.serialization_schema.lookup_key(inp_val) == expected + + +class TestSerializationSchema(SerializationSchemeTester): + SerializationSchemaClass = SerializationSchema + def test_register_info(self): serialization = self.serialization_schema new_class_info = ClassInfo(table='extra', cls=ExtraMockDataObject) @@ -102,12 +130,6 @@ def test_register_info(self): ExtraMockDataObject: new_class_info} assert serialization.lookup_to_info == lookup_to_info - def test_lookup_key(self): - serialization = self.serialization_schema - assert serialization.lookup_key(self.data_obj) == MockUUIDObject - assert serialization.lookup_key(self.sim_obj) == MockSimulationObject - assert serialization.lookup_key(5) == int - @pytest.mark.parametrize('instance', ['int', 'data', 'sim', 'unknown']) def test_info_from_instance(self, instance): serialization = self.serialization_schema @@ -133,22 +155,49 @@ def test_get_item_key_error(self): self.serialization_schema[self.extra_obj] -class TestSerializationSchemaSpecial(object): - def test_special_lookup_key(self): - pytest.skip() +class TestSerializationSchemaSpecial(SerializationSchemeTester): + SerializationSchemaClass = MockSpecialSerializationSchema - def test_is_special(self): - pytest.skip() - - def test_get_special(self): - pytest.skip() - - def test_lookup_key_for_special(self): - pytest.skip() - - def test_info_from_instance_for_special(self): - pytest.skip() + @pytest.mark.parametrize('input_type', ['data_obj', 'sim_obj', 'int', + 'special']) + def test_lookup_key(self, input_type): + inp_val, expected = { + 'data_obj': (self.data_obj, MockUUIDObject), + 'sim_obj': (self.sim_obj, MockSimulationObject), + 'int': (5, int), + 'special': (self.extra_obj, (ExtraMockDataObject, "foo")) + }[input_type] + assert self.serialization_schema.lookup_key(inp_val) == expected + + @pytest.mark.parametrize('input_type', ['data_obj', 'sim_obj', 'int', + 'special']) + def test_is_special(self, input_type): + inp_val, expected = {'data_obj': (self.data_obj, False), + 'sim_obj': (self.sim_obj, False), + 'int': (5, False), + 'special': (self.extra_obj, True)}[input_type] + assert self.serialization_schema.is_special(inp_val) == expected + + def test_get_special_missing(self): + serialization = self.serialization_schema + missing = serialization.missing_table + assert serialization.get_special(self.extra_obj) == missing - def test_add_missing_table_from_instance(self): - pytest.skip() + def test_get_special_exists(self): + serialization = self.serialization_schema + serialization.add_missing_table_from_instance(self.extra_obj) + expected = serialization['extra'] + assert serialization.get_special(self.extra_obj) == expected + @pytest.mark.parametrize('input_type', ['data_obj', 'sim_obj', 'int', + 'special']) + def test_info_from_instance(self, input_type): + serialization = self.serialization_schema + serialization.add_missing_table_from_instance(self.extra_obj) + input_val, expected = { + 'data_obj': (self.data_obj, self.info_mock), + 'sim_obj': (self.sim_obj, self.info_default), + 'int': (5, None), + 'special': (self.extra_obj, serialization['extra']) + }[input_type] + assert serialization.info_from_instance(input_val) == expected From c6a535db686eec6598da1b71427887d316581dcc Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Fri, 3 May 2019 22:54:14 +0200 Subject: [PATCH 184/464] use ClassLookup for OPSSpecialLookup --- .../experimental/storage/ops_storage.py | 22 ++++++------------- .../experimental/storage/storage.py | 8 +++---- 2 files changed, 11 insertions(+), 19 deletions(-) diff --git a/openpathsampling/experimental/storage/ops_storage.py b/openpathsampling/experimental/storage/ops_storage.py index 1f74b25e5..2a43ae8d8 100644 --- a/openpathsampling/experimental/storage/ops_storage.py +++ b/openpathsampling/experimental/storage/ops_storage.py @@ -7,6 +7,8 @@ from .serialization_helpers import get_uuid, set_uuid from .serialization_helpers import default_find_uuids +from .class_lookup import ClassIsSomething + import openpathsampling as paths from openpathsampling.netcdfplus import StorableObject @@ -96,21 +98,11 @@ class OPSSpecialLookup(object): def __init__(self): self.secondary_lookups = {} - self.special_classes = set() - self.non_special_classes = set() - - def is_special(self, item): - if item.__class__ in self.special_classes: - return True - elif item.__class__ in self.non_special_classes: - return False - else: - is_special = isinstance(item, self.special_superclasses) - my_set = {True: self.special_classes, - False: self.non_special_classes}[is_special] - my_set.update([item.__class__]) - return is_special - + # self.special_classes = set() + # self.non_special_classes = set() + is_special_func = lambda obj: \ + isinstance(obj, self.special_superclasses) + self.is_special = ClassIsSomething(is_special_func) def __call__(self, item): cls = item.__class__ diff --git a/openpathsampling/experimental/storage/storage.py b/openpathsampling/experimental/storage/storage.py index 19e07526b..06f03a69c 100644 --- a/openpathsampling/experimental/storage/storage.py +++ b/openpathsampling/experimental/storage/storage.py @@ -76,10 +76,6 @@ def initialize_with_mode(self, mode): elif mode == 'w': self.register_schema(self.schema, class_info_list=[]) - def stash(self, objects): - objects = tools.listify(objects) - self._stashed.extend(objects) - def _load_missing_info_tables(self, table_to_class): missing_info_tables = [tbl for tbl in self.schema if tbl not in self.class_info.tables] @@ -97,6 +93,10 @@ def _load_missing_info_tables(self, table_to_class): raise RuntimeError("Unable to register existing database " + "tables: " + str(missing_info_tables)) + def stash(self, objects): + objects = tools.listify(objects) + self._stashed.extend(objects) + def close(self): # TODO: should sync on close self.backend.close() From 31c4ccb56f61b2ac25b1392bac8bf17857c94f16 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Mon, 6 May 2019 11:46:02 +0200 Subject: [PATCH 185/464] Draft of Bresenham voxel interpolation --- openpathsampling/analysis/path_histogram.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/openpathsampling/analysis/path_histogram.py b/openpathsampling/analysis/path_histogram.py index 4ea3b9c49..c341d3455 100644 --- a/openpathsampling/analysis/path_histogram.py +++ b/openpathsampling/analysis/path_histogram.py @@ -183,6 +183,27 @@ def _subdivide_interpolation(self, start_pt, end_pt, start_bin, end_bin): def __call__(self, old_pt, new_pt): return self._interpolated_bins(old_pt, new_pt) + +class BresenhamInterpolation(VoxelInterpolator): + """Interpolation based on the Bresenham line-drawing algorithm. + + Basic idea from https://www.crisluengo.net/archives/400. + + Parameters + ---------- + histogram : :class:`.PathHistogram` + the histogram that this will interpolate for + """ + def __call__(self, old_pt, new_pt): + old_bin = self.map_to_bins(old_pt) + new_bin = self.map_to_bins(new_pt) + delta = np.asarray(new_bin) - np.asarray(old_bin) + n_steps = int(max(delta)) + step_size = delta / n_steps + bins = [np.rint(old_bin + (i+1) * delta) for i in range(n_steps)] + return bins + + # should path histogram be moved to the generic histogram.py? Seems to be # independent of the fact that this is actually OPS class PathHistogram(SparseHistogram): From b5b239bc44514f7683b3dce48aa674d3cdd07db6 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Wed, 8 May 2019 09:31:20 +0200 Subject: [PATCH 186/464] listify tests --- openpathsampling/experimental/storage/test_tools.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/openpathsampling/experimental/storage/test_tools.py b/openpathsampling/experimental/storage/test_tools.py index 4be130ddc..7c0df9a24 100644 --- a/openpathsampling/experimental/storage/test_tools.py +++ b/openpathsampling/experimental/storage/test_tools.py @@ -13,6 +13,17 @@ class TestGroupBy(object): def setup(self): pass +class TestListify(object): + # TODO: what should be the correct behavior with a dict? + @pytest.mark.parametrize("obj", [3, "foo"]) + def test_should_wrap(self, obj): + assert listify(obj) == [obj] + + @pytest.mark.parametrize("obj", [(1, 2), ['a'], {5}]) + def test_should_not_wrap(self, obj): + assert listify(obj) is obj + + class TestFlatten(object): def setup(self): self.result = ['a', 'b', 'c', 'd', 'e', 'f'] From aeeb0175c9652f1833eacecf56bca90f2695a161 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Fri, 10 May 2019 16:00:02 +0200 Subject: [PATCH 187/464] Tests for mock backend; clean comments in ser --- .../experimental/storage/serialization.py | 67 ------------------- .../experimental/storage/test_utils.py | 23 +++++-- 2 files changed, 18 insertions(+), 72 deletions(-) diff --git a/openpathsampling/experimental/storage/serialization.py b/openpathsampling/experimental/storage/serialization.py index adf164778..302b9ae3e 100644 --- a/openpathsampling/experimental/storage/serialization.py +++ b/openpathsampling/experimental/storage/serialization.py @@ -71,8 +71,6 @@ def __repr__(self): + " UUID " + str(self.__uuid__) + ">") class ProxyObjectFactory(object): - # TODO: I think this should replace some of the similar stuff in the - # Serialization object below def __init__(self, storage, serialization_schema): self.storage = storage self.serialization_schema = serialization_schema @@ -97,71 +95,6 @@ def make_all_lazies(self, lazies): return all_lazies -# class Serialization(object): - # builtin_types = ['int', 'float', 'str'] - # uuid_types = ['uuid', 'list_uuid', 'lazy'] - # # TODO: this whole object is deprecated; need better way to handle lazy - # # proxies; serialization registration may move to the ClassInfoContainer - - # def __init__(self, storage): - # self.storage = storage - # self.cache = self.storage.cache - # self.attribute_serializers = { - # 'uuid': serialization.get_uuid, - # 'lazy': serialization.get_uuid, - # 'json': serialization.to_bare_json, - # 'list_uuid': serialization.to_bare_json - # } - - # self.attribute_deserializers = { - # 'uuid': serialization.from_json_obj, - # 'lazy': self.make_lazy, - # 'json': None, - # 'list_uuid': None - # } - # self.schema = {} - # self.table_to_class = {} - # self._ser_dict = {} - # self._deser_dict = {} - # self._lazy_classes = {} - - # def make_lazy(self, cls, uuid): - # if cls not in self._lazy_classes: - # self._lazy_classes[cls] = make_lazy_class(cls) - # return self._lazy_classes[cls](uuid=uuid, - # class_=cls, - # storage=self.storage) - - # def make_all_lazies(self, lazies): - # # lazies is dict of {table_name: list_of_lazy_uuid_rows} - # all_lazies = {} - # for (table, lazy_uuid_rows) in lazies.items(): - # logger.debug("Making {} lazy proxies for objects in table '{}'"\ - # .format(len(lazy_uuid_rows), table)) - # cls = self.table_to_class[table] - # for row in lazy_uuid_rows: - # all_lazies[row.uuid] = self.make_lazy(cls, row.uuid) - # return all_lazies - - - # def register_serialization(self, schema, class_info): - # for table in schema: - # if class_info[table].serializer: - # self._ser_dict[table] = class_info[table].serializer - # else: - # self._ser_dict[table] = \ - # self.default_serializer_dict(schema[table]) - - # if class_info[table].deserializer: - # self._deser_dict[table] = class_info[table].deserializer - # else: - # self._deser_dict[table] = \ - # self.default_deserializer_dict(schema[table]) - - # self.table_to_class.update({table: class_info[table].cls}) - # self.schema.update(schema) - - class SimulationObjectSerializer(object): def __init__(self, json_encoder): self.json_encoder = json_encoder diff --git a/openpathsampling/experimental/storage/test_utils.py b/openpathsampling/experimental/storage/test_utils.py index f49bdcf5f..22993b5c3 100644 --- a/openpathsampling/experimental/storage/test_utils.py +++ b/openpathsampling/experimental/storage/test_utils.py @@ -95,6 +95,8 @@ def __init__(self): self.uuid_table = {} self.tables = [[] for table in self.table_names] + + # this is where we add objects to the table uuid_row, table_row = self._table_data_for_object( obj=all_objects['int'], table_name='ints', @@ -148,8 +150,19 @@ def test_load_uuids_table(self, obj_name, table_idx, idx): assert self.backend.load_uuids_table([uuid]) == \ [(uuid, table_idx, idx)] - def test_load_table_data(self): - pass - - def test_uuid_row_to_table_name(self): - pass + @pytest.mark.parametrize('table,uuid,table_idx,idx,content', [ + ('ints', 'int', 4, 0, [5]) + ]) + def test_load_table_data(self, table, uuid, table_idx, idx, content): + row_types = self.backend.row_types + uuid = str(toy_uuid_maker(uuid)) + uuid_row = row_types['uuids'](uuid=uuid, table=table_idx, idx=idx) + expected = row_types[table](uuid, idx, *content) + assert self.backend.load_table_data([uuid_row]) == [expected] + + @pytest.mark.parametrize('name,idx', [ + ('sims', 2), ('objs', 3), ('ints', 4) + ]) + def test_uuid_row_to_table_name(self, name, idx): + uuid_row = self.backend.row_types['uuids']('foo', idx, 0) + assert self.backend.uuid_row_to_table_name(uuid_row) == name From 8747c772ccdc32551cfa4d366061f4cec1deac65 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Tue, 14 May 2019 15:41:18 +0200 Subject: [PATCH 188/464] Start to tests for proxy objects --- .../experimental/storage/serialization.py | 13 ++-- .../storage/test_serialization.py | 66 +++++++++++++++++++ .../experimental/storage/test_utils.py | 8 +++ 3 files changed, 80 insertions(+), 7 deletions(-) create mode 100644 openpathsampling/experimental/storage/test_serialization.py diff --git a/openpathsampling/experimental/storage/serialization.py b/openpathsampling/experimental/storage/serialization.py index 302b9ae3e..3c49af884 100644 --- a/openpathsampling/experimental/storage/serialization.py +++ b/openpathsampling/experimental/storage/serialization.py @@ -1,14 +1,12 @@ import numpy as np -from .my_types import parse_ndarray_type, ndarray_re +from .my_types import parse_ndarray_type from . import serialization_helpers as serialization -from .tools import is_mappable -from . import tools -# import ujson as json import json import logging logger = logging.getLogger(__name__) + def load_list_uuid(json_str, cache_list): uuid_list = json.loads(json_str) if uuid_list is None: @@ -70,9 +68,10 @@ def __repr__(self): return ("") + class ProxyObjectFactory(object): def __init__(self, storage, serialization_schema): - self.storage = storage + self.storage = storage self.serialization_schema = serialization_schema self.lazy_classes = {} @@ -103,6 +102,7 @@ def __call__(self, obj): return {'uuid': serialization.get_uuid(obj), 'json': self.json_encoder(obj)} + class SchemaDeserializer(object): default_handlers = { 'lazy': serialization.search_caches, @@ -176,6 +176,7 @@ def __call__(self, obj): dct.update({'uuid': serialization.get_uuid(obj)}) return dct + class SchemaSerializer(ToDictSerializer): def __call__(self, obj): dct = {attr: getattr(obj, attr) @@ -187,5 +188,3 @@ def __call__(self, obj): dct.update(replace) dct.update({'uuid': serialization.get_uuid(obj)}) return dct - - diff --git a/openpathsampling/experimental/storage/test_serialization.py b/openpathsampling/experimental/storage/test_serialization.py new file mode 100644 index 000000000..a26495a71 --- /dev/null +++ b/openpathsampling/experimental/storage/test_serialization.py @@ -0,0 +1,66 @@ +from .serialization import * +import pytest + +from .serialization_helpers import get_uuid +from .test_utils import (LoadingStorageMock, all_objects, toy_uuid_maker, + MockUUIDObject) + +class TestGenericLazyLoader(object): + def setup(self): + original_and_class = { + 'normal': (all_objects['int'], MockUUIDObject) + # TODO: add iterable and mappable classes + } + self.originals = {k: v[0] for k, v in original_and_class.items()} + original_class = {k: v[1] for k, v in original_and_class.items()} + uuid_dict = {get_uuid(obj): obj for obj in self.originals.values()} + self.storage = LoadingStorageMock(uuid_dict) + self.proxies = { + proxy_type: GenericLazyLoader( + get_uuid(self.originals[proxy_type]), + original_class[proxy_type], + self.storage + ) + for proxy_type in self.originals.keys() + } + + @pytest.mark.parametrize('proxy_type', + ['normal'])#, 'iterable', 'mappable']) + def test_init(self, proxy_type): + proxy = self.proxies[proxy_type] + original = self.originals[proxy_type] + assert proxy._loaded_object is None + assert get_uuid(proxy) == get_uuid(original) + assert proxy.storage == self.storage + assert isinstance(original, proxy.class_) + assert proxy._loaded_object is None + + @pytest.mark.parametrize('proxy_type', + ['normal'])#, 'iterable', 'mappable']) + def test_load(self, proxy_type): + proxy = self.proxies[proxy_type] + original = self.originals[proxy_type] + assert proxy._loaded_object is None + proxy.load() + assert proxy._loaded_object == original + + # now we check that a second load() doesn't require storage + proxy.storage = LoadingStorageMock({}) + try: + proxy.load() + except RuntimeError: + raise AssertionError("Proxy required revisiting storage " + "after load") + + def test_load_error(self): + good_proxy = self.proxies['normal'] + storage = LoadingStorageMock({}) + bad_proxy = GenericLazyLoader(get_uuid(good_proxy), + good_proxy.class_, + storage) + assert bad_proxy._loaded_object is None + # TODO: current mock storage raises KeyError instead of returning + # None; check the behavior of the actual storage -- maybe this isn't + # possible and the relevant lines need to be removed? + # with pytest.raises(RuntimeError): + # bad_proxy.load() diff --git a/openpathsampling/experimental/storage/test_utils.py b/openpathsampling/experimental/storage/test_utils.py index 22993b5c3..b3dbeebc5 100644 --- a/openpathsampling/experimental/storage/test_utils.py +++ b/openpathsampling/experimental/storage/test_utils.py @@ -114,6 +114,14 @@ def load_table_data(self, uuid_rows): def uuid_row_to_table_name(self, row): return self.table_names[row.table] + +class LoadingStorageMock(object): + def __init__(self, uuid_dict): + self.uuid_dict = uuid_dict + + def load(self, uuid_list, force=False): + return [self.uuid_dict[uuid] for uuid in uuid_list] + def create_test_objects(): obj_int = MockUUIDObject(name='int', normal_attr=5) obj_str = MockUUIDObject(name='str', normal_attr='foo') From a035c3de614091f208e31c091ba4dc117fcb101a Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Tue, 14 May 2019 16:23:26 +0200 Subject: [PATCH 189/464] more test setup for proxies --- .../storage/test_serialization.py | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/openpathsampling/experimental/storage/test_serialization.py b/openpathsampling/experimental/storage/test_serialization.py index a26495a71..f65392f74 100644 --- a/openpathsampling/experimental/storage/test_serialization.py +++ b/openpathsampling/experimental/storage/test_serialization.py @@ -59,8 +59,34 @@ def test_load_error(self): good_proxy.class_, storage) assert bad_proxy._loaded_object is None + pytest.skip() # TODO: current mock storage raises KeyError instead of returning # None; check the behavior of the actual storage -- maybe this isn't # possible and the relevant lines need to be removed? # with pytest.raises(RuntimeError): # bad_proxy.load() + + def test_getattr(self): + proxy = self.proxies['normal'] + original = self.originals['normal'] + assert proxy._loaded_object is None + assert proxy.normal_attr == original.normal_attr + assert proxy._loaded_object == original + + def test_save_proxy(self): + # TODO: storing a lazy proxy to storage should actually store it as + # if it the original object (i.e., store to DB correctly ) -- note + # that only schema-based storage can invoke the lazy proxies, so we + # this shouldn't risk saving a simulation object + pytest.skip() + + +class TestProxyObjectFactory(object): + def setup(self): + pass + + def test_make_lazy(self): + pytest.skip() + + def test_make_all_lazies(self): + pytest.skip() From 534367edd85a2f468c9e976653eca4f912355067 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Wed, 15 May 2019 15:46:38 +0200 Subject: [PATCH 190/464] tests for proxy factory --- .../storage/test_serialization.py | 48 +++++++++++++++++-- .../experimental/storage/test_utils.py | 17 ++++--- 2 files changed, 53 insertions(+), 12 deletions(-) diff --git a/openpathsampling/experimental/storage/test_serialization.py b/openpathsampling/experimental/storage/test_serialization.py index f65392f74..976589dc9 100644 --- a/openpathsampling/experimental/storage/test_serialization.py +++ b/openpathsampling/experimental/storage/test_serialization.py @@ -1,9 +1,12 @@ from .serialization import * import pytest -from .serialization_helpers import get_uuid +from .serialization_helpers import get_uuid, default_find_uuids from .test_utils import (LoadingStorageMock, all_objects, toy_uuid_maker, - MockUUIDObject) + MockUUIDObject, MockSimulationObject, MockBackend) + +from . import class_info + class TestGenericLazyLoader(object): def setup(self): @@ -83,10 +86,45 @@ def test_save_proxy(self): class TestProxyObjectFactory(object): def setup(self): - pass + self.storage = LoadingStorageMock({get_uuid(obj): obj + for obj in all_objects.values()}) def test_make_lazy(self): - pytest.skip() + factory = ProxyObjectFactory(self.storage, None) + assert len(factory.lazy_classes) == 0 + original = all_objects['int'] + uuid = get_uuid(original) + proxy = factory.make_lazy(MockUUIDObject, uuid) + assert len(factory.lazy_classes) == 1 + assert list(factory.lazy_classes.keys()) == [MockUUIDObject] + assert isinstance(proxy, MockUUIDObject) + assert proxy._loaded_object is None + assert proxy.normal_attr == original.normal_attr def test_make_all_lazies(self): - pytest.skip() + backend = MockBackend() + obj = all_objects['obj'] + uuid = get_uuid(obj) + lazy_rows = backend.load_uuids_table([uuid]) + lazies = {'mock': lazy_rows} + + # this includes integration with serialization schema + schema = {'mock': [('obj_attr', 'lazy')]} + sim_info = class_info.ClassInfo('simulation_objects', + cls=MockSimulationObject, + find_uuids=default_find_uuids) + mock_info = class_info.ClassInfo(table='mock', cls=MockUUIDObject) + mock_info.set_defaults(schema) + serialization_schema = class_info.SerializationSchema( + default_info=sim_info, + schema=schema, + class_info_list=[mock_info] + ) + factory = ProxyObjectFactory(self.storage, serialization_schema) + lazy_objs = factory.make_all_lazies(lazies) + assert len(lazy_objs) == 1 + proxy = lazy_objs[uuid] + assert isinstance(proxy, MockUUIDObject) + assert proxy._loaded_object is None + assert proxy.obj_attr.normal_attr == 5 + assert proxy._loaded_object is not None diff --git a/openpathsampling/experimental/storage/test_utils.py b/openpathsampling/experimental/storage/test_utils.py index b3dbeebc5..ec0cf81ea 100644 --- a/openpathsampling/experimental/storage/test_utils.py +++ b/openpathsampling/experimental/storage/test_utils.py @@ -97,13 +97,16 @@ def __init__(self): self.tables = [[] for table in self.table_names] # this is where we add objects to the table - uuid_row, table_row = self._table_data_for_object( - obj=all_objects['int'], - table_name='ints', - normal_attr=5 - ) - self.uuid_table[uuid_row.uuid] = uuid_row - self.tables[uuid_row.table].append(table_row) + table_data = [ + {'obj': all_objects['int'], 'table_name': 'ints', + 'normal_attr': 5}, + {'obj': all_objects['obj'], 'table_name': 'objs', + 'obj_attr': get_uuid(all_objects['int'])} + ] + for datum in table_data: + uuid_row, table_row = self._table_data_for_object(**datum) + self.uuid_table[uuid_row.uuid] = uuid_row + self.tables[uuid_row.table].append(table_row) def load_uuids_table(self, new_uuids): return [self.uuid_table[uuid] for uuid in new_uuids] From 97fd51ac5c403316017a9262ecccb48ee42759e3 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 16 May 2019 16:35:52 +0200 Subject: [PATCH 191/464] Test for get_all_uuids_loading --- .coveragerc | 2 +- .../storage/serialization_helpers.py | 5 +- .../storage/test_serialization_helpers.py | 48 ++++++++++++++++++- .../experimental/storage/test_utils.py | 29 +++++++---- 4 files changed, 71 insertions(+), 13 deletions(-) diff --git a/.coveragerc b/.coveragerc index f1749039d..f333192e3 100644 --- a/.coveragerc +++ b/.coveragerc @@ -5,7 +5,7 @@ omit = */openpathsampling/tests/* */mdtraj/* */setup.py - */openpathsampling/experimental/storage/* + */openpathsampling/experimental/* exclude_lines = pragma: no cover def __repr__ diff --git a/openpathsampling/experimental/storage/serialization_helpers.py b/openpathsampling/experimental/storage/serialization_helpers.py index 29d2419b1..600e8fc00 100644 --- a/openpathsampling/experimental/storage/serialization_helpers.py +++ b/openpathsampling/experimental/storage/serialization_helpers.py @@ -47,7 +47,7 @@ def decode_uuid(uuid_str): # use the regular expression when looking through an entire JSON string; use # the is_uuid_string method for individual objects -encoded_uuid_re = re.compile("UUID\((?P[0-9]+)\)") +encoded_uuid_re = re.compile("UUID\((?P[\-]?[0-9]+)\)") def is_uuid_string(obj): @@ -419,7 +419,8 @@ def _uuids_from_table_row(table_row, schema_entries): uuid.update(uuid_list) elif attr_type == 'json_obj': json_dct = getattr(table_row, attr) - uuid.update(set(encoded_uuid_re.findall(json_dct))) + new_uuids = set(encoded_uuid_re.findall(json_dct)) + uuid.update(new_uuids) elif attr_type == 'lazy': lazy.add(getattr(table_row, attr)) # other cases aren't UUIDs and are ignored diff --git a/openpathsampling/experimental/storage/test_serialization_helpers.py b/openpathsampling/experimental/storage/test_serialization_helpers.py index 7be58da8a..96e37400c 100644 --- a/openpathsampling/experimental/storage/test_serialization_helpers.py +++ b/openpathsampling/experimental/storage/test_serialization_helpers.py @@ -10,6 +10,10 @@ all_objects = create_test_objects() +def get_obj_uuid(name): + return get_uuid(all_objects[name]) + + @pytest.mark.parametrize('obj', list(all_objects.values())) def test_has_uuid(obj): assert has_uuid(obj) @@ -213,7 +217,49 @@ def test_schema_find_uuids(): assert new_objs == expected_newobjs[key] def test_get_all_uuids_loading(): - pytest.skip() + backend = MockBackend() + schema = { + 'sims': [('json', 'json_obj'), ('class_idx', 'int')], + 'ints': [('normal_attr', 'int')], + 'objs': [('obj_attr', 'uuid')], + } + uuid_list = [get_obj_uuid('dct2'), get_obj_uuid('obj')] + all_table_rows, lazy, dependencies, uuid_to_table = \ + get_all_uuids_loading(uuid_list, backend, schema) + + expected_dependencies = { + get_obj_uuid('dct2'): {get_obj_uuid('str'), get_obj_uuid('int')}, + get_obj_uuid('obj'): {get_obj_uuid('int')}, + get_obj_uuid('str'): set([]), + get_obj_uuid('int'): set([]) + } + expected_uuid_to_table = { + get_obj_uuid('dct2'): 'sims', + get_obj_uuid('str'): 'sims', + get_obj_uuid('int'): 'ints', + get_obj_uuid('obj'): 'objs' + } + assert len(all_table_rows) == 4 + uuid_to_table_row = {row.uuid: row for row in all_table_rows} + # we force the same index as the one with the same UUID, since we can't + # know the index in advance + expected_table_rows = [] + for obj in ['dct2', 'str', 'int', 'obj']: + uuid = get_obj_uuid(obj) + row_type = backend.row_types[expected_uuid_to_table[uuid]] + # if this raises a KeyError, then the UUID we expected wasn't found + idx = uuid_to_table_row[uuid].idx + table_data = backend.table_data[obj] + row_dict = {k: v for k, v in table_data.items() + if k not in ['obj', 'table_name']} + row_dict.update({'idx': idx, 'uuid': uuid}) + row = row_type(**row_dict) + expected_table_rows.append(row) + + assert set(all_table_rows) == set(expected_table_rows) + assert lazy == set([]) + assert dependencies == expected_dependencies + assert uuid_to_table == expected_uuid_to_table def test_get_all_uuids_loading_with_existing(): pytest.skip() diff --git a/openpathsampling/experimental/storage/test_utils.py b/openpathsampling/experimental/storage/test_utils.py index ec0cf81ea..36663ba4b 100644 --- a/openpathsampling/experimental/storage/test_utils.py +++ b/openpathsampling/experimental/storage/test_utils.py @@ -3,8 +3,9 @@ from collections import namedtuple import pytest import numpy as np +import json -from .serialization_helpers import get_uuid +from .serialization_helpers import get_uuid, encode_uuid def toy_uuid_maker(name): @@ -97,13 +98,21 @@ def __init__(self): self.tables = [[] for table in self.table_names] # this is where we add objects to the table - table_data = [ - {'obj': all_objects['int'], 'table_name': 'ints', - 'normal_attr': 5}, - {'obj': all_objects['obj'], 'table_name': 'objs', - 'obj_attr': get_uuid(all_objects['int'])} - ] - for datum in table_data: + self.table_data = { + 'int': {'obj': all_objects['int'], 'table_name': 'ints', + 'normal_attr': 5}, + 'obj': {'obj': all_objects['obj'], 'table_name': 'objs', + 'obj_attr': get_uuid(all_objects['int'])}, + 'str': {'obj': all_objects['str'], 'table_name': 'sims', + 'json': json.dumps('foo'), 'class_idx': 1}, + 'dct2': {'obj': all_objects['dct2'], 'table_name': 'sims', + 'json': json.dumps({'dct_attr': { + 'foo': encode_uuid(toy_uuid_maker('str')), + encode_uuid(toy_uuid_maker('int')): 5 + }}), + 'class_idx': 0} + } + for datum in self.table_data.values(): uuid_row, table_row = self._table_data_for_object(**datum) self.uuid_table[uuid_row.uuid] = uuid_row self.tables[uuid_row.table].append(table_row) @@ -133,6 +142,8 @@ def create_test_objects(): obj_lst = MockUUIDObject(name='lst', list_attr=[obj_int, obj_str]) obj_dct = MockUUIDObject(name='dct', dict_attr={'foo': obj_str, obj_int: obj_np}) + obj_dct2 = MockUUIDObject(name='dct2', dict_attr={'foo': obj_str, + obj_int: 5}) obj_nest = MockUUIDObject( name='nest', dict_attr={'bar': [obj_str, {obj_int: [obj_np, obj_obj]}]} @@ -141,7 +152,7 @@ def create_test_objects(): all_objects = { obj.name : obj for obj in [obj_int, obj_str, obj_np, obj_obj, obj_lst, obj_dct, - obj_nest, obj_repeat] + obj_dct2, obj_nest, obj_repeat] } return all_objects From 4a99bb6ca48ad48d84fcc7efff30c26912c6056b Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 16 May 2019 23:57:54 +0200 Subject: [PATCH 192/464] start on tests for storage tables --- .../experimental/storage/storage.py | 7 +-- .../experimental/storage/test_storage.py | 46 +++++++++++++++++++ .../experimental/storage/test_utils.py | 14 +++++- 3 files changed, 63 insertions(+), 4 deletions(-) create mode 100644 openpathsampling/experimental/storage/test_storage.py diff --git a/openpathsampling/experimental/storage/storage.py b/openpathsampling/experimental/storage/storage.py index 06f03a69c..5b68147fc 100644 --- a/openpathsampling/experimental/storage/storage.py +++ b/openpathsampling/experimental/storage/storage.py @@ -27,6 +27,7 @@ from .serialization_helpers import get_reload_order # from .serialization import Serialization from .serialization import ProxyObjectFactory +from .tools import none_to_default try: basestring @@ -430,7 +431,7 @@ def __init__(self, sequence=None): @staticmethod def _get_uuid_and_name(obj): - uuid = get_uuid(item) + uuid = get_uuid(obj) name = None if not obj.is_named else obj.name return uuid, name @@ -457,11 +458,11 @@ def __delitem__(self, key): del self._name_to_uuid[name] def __len__(self): - return len(self.sequence) + return len(self._sequence) def insert(self, where, item): uuid, name = self._get_uuid_and_name(item) self._sequence.insert(where, item) - self._uuid_to_obj[uuid] = obj + self._uuid_to_obj[uuid] = item if name is not None: self._name_to_uuid[name] = uuid diff --git a/openpathsampling/experimental/storage/test_storage.py b/openpathsampling/experimental/storage/test_storage.py new file mode 100644 index 000000000..d596c734f --- /dev/null +++ b/openpathsampling/experimental/storage/test_storage.py @@ -0,0 +1,46 @@ +from .storage import * + +import pytest + +from .test_utils import all_objects, UnnamedUUID + +class TestStorageTable(object): + def setup(self): + pass + + def test_iter(self): + pytest.skip() + + def test_getitem(self): + pytest.skip() + + def test_len(self): + pytest.skip() + + def test_save(self): + pytest.skip() + + +class TestPseudoTable(object): + def setup(self): + self.unnamed = UnnamedUUID(normal_attr=10) + objs = [self.unnamed] + list(all_objects.values()) + self.pseudo_table = PseudoTable(objs) + + def test_get_by_uuid(self): + pytest.skip() + + def test_getitem(self): + pytest.skip() + + def test_setitem(self): + pytest.skip() + + def test_delitem(self): + pytest.skip() + + def test_len(self): + pytest.skip() + + def test_insert(self): + pytest.skip() diff --git a/openpathsampling/experimental/storage/test_utils.py b/openpathsampling/experimental/storage/test_utils.py index 36663ba4b..cfa48bf2b 100644 --- a/openpathsampling/experimental/storage/test_utils.py +++ b/openpathsampling/experimental/storage/test_utils.py @@ -4,6 +4,7 @@ import pytest import numpy as np import json +import random from .serialization_helpers import get_uuid, encode_uuid @@ -29,11 +30,17 @@ def __init__(self, *args, **kwargs): keywords.update({attr: None for attr in self.attr_list if attr not in keywords}) - self.__uuid__ = toy_uuid_maker(keywords['name']) + if 'name' in keywords: + self.__uuid__ = toy_uuid_maker(keywords['name']) + self.is_named = True + else: + self.__uuid__ = random.randint(0, 2**32) + self.is_named = False for attr, value in keywords.items(): setattr(self, attr, value) + def to_dict(self): return {attr: getattr(self, attr) for attr in self.attr_list} @@ -58,6 +65,11 @@ class ExtraMockDataObject(AbstractMockUUIDObject): schema = [('str_attr', 'str')] +class UnnamedUUID(AbstractMockUUIDObject): + attr_list = ['normal_attr'] + schema = [('normal_attr', 'int')] + + class MockBackend(object): def _table_data_for_object(self, obj, table_name, **kwargs): schema_entries = self.schema[table_name] From 5d6eb9671c413d64feab6bd6be3b75137fda9430 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Fri, 17 May 2019 14:06:35 +0200 Subject: [PATCH 193/464] basic tests for PseudoTable may still change this up; not inherit from MutableSequence (I'm not sure that delitem and setitem make sense here) --- .../experimental/storage/storage.py | 2 +- .../experimental/storage/test_storage.py | 32 +++++++++++++------ 2 files changed, 23 insertions(+), 11 deletions(-) diff --git a/openpathsampling/experimental/storage/storage.py b/openpathsampling/experimental/storage/storage.py index 5b68147fc..ca6389f8f 100644 --- a/openpathsampling/experimental/storage/storage.py +++ b/openpathsampling/experimental/storage/storage.py @@ -427,7 +427,7 @@ def __init__(self, sequence=None): self._name_to_uuid = {} sequence = none_to_default(sequence, []) for item in sequence: - self.extend(sequence) + self.append(item) @staticmethod def _get_uuid_and_name(obj): diff --git a/openpathsampling/experimental/storage/test_storage.py b/openpathsampling/experimental/storage/test_storage.py index d596c734f..334831ec7 100644 --- a/openpathsampling/experimental/storage/test_storage.py +++ b/openpathsampling/experimental/storage/test_storage.py @@ -2,6 +2,7 @@ import pytest +from .serialization_helpers import get_uuid from .test_utils import all_objects, UnnamedUUID class TestStorageTable(object): @@ -23,15 +24,26 @@ def test_save(self): class TestPseudoTable(object): def setup(self): - self.unnamed = UnnamedUUID(normal_attr=10) - objs = [self.unnamed] + list(all_objects.values()) - self.pseudo_table = PseudoTable(objs) - - def test_get_by_uuid(self): - pytest.skip() - - def test_getitem(self): - pytest.skip() + unnamed = UnnamedUUID(normal_attr=10) + self.objs = {None: unnamed} + self.objs.update(all_objects) + self.pseudo_table = PseudoTable(list(self.objs.values())) + + @pytest.mark.parametrize('name', ['int', None]) + def test_get_by_uuid(self, name): + obj = self.objs[name] + uuid = get_uuid(obj) + expected = self.objs[name] + assert self.pseudo_table.get_by_uuid(uuid) == expected + + @pytest.mark.parametrize('name', ['int', None]) + def test_getitem(self, name): + obj = self.objs[name] + uuid = get_uuid(obj) + idx = self.pseudo_table.index(obj) + assert self.pseudo_table[idx] == obj + if name is not None: + assert self.pseudo_table[name] == obj def test_setitem(self): pytest.skip() @@ -40,7 +52,7 @@ def test_delitem(self): pytest.skip() def test_len(self): - pytest.skip() + assert len(self.pseudo_table) == len(all_objects) + 1 def test_insert(self): pytest.skip() From d32e4d4a87cecf446ef65f4460a163febcce6c82 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 4 Jul 2019 16:08:40 +0200 Subject: [PATCH 194/464] finish tests for pseudotable --- .../experimental/storage/storage.py | 8 ++- .../experimental/storage/test_storage.py | 58 ++++++++++++++++--- 2 files changed, 57 insertions(+), 9 deletions(-) diff --git a/openpathsampling/experimental/storage/storage.py b/openpathsampling/experimental/storage/storage.py index ca6389f8f..1989f5655 100644 --- a/openpathsampling/experimental/storage/storage.py +++ b/openpathsampling/experimental/storage/storage.py @@ -447,13 +447,17 @@ def __getitem__(self, item): return ret_val def __setitem__(self, key, value): + # TODO: should this be allowed? or make it not really mutable, only + # appendable? del self[key] self.insert(key, value) def __delitem__(self, key): + # TODO: should this be allowed? or make it not really mutable, only + # appendable? item = self[key] uuid, name = self._get_uuid_and_name(item) - self.sequence.pop(item) + del self._sequence[self._sequence.index(item)] del self._uuid_to_obj[uuid] del self._name_to_uuid[name] @@ -461,6 +465,8 @@ def __len__(self): return len(self._sequence) def insert(self, where, item): + # TODO: should this be allowed? or make it not really mutable, only + # appendable? uuid, name = self._get_uuid_and_name(item) self._sequence.insert(where, item) self._uuid_to_obj[uuid] = item diff --git a/openpathsampling/experimental/storage/test_storage.py b/openpathsampling/experimental/storage/test_storage.py index 334831ec7..ddba5b5e9 100644 --- a/openpathsampling/experimental/storage/test_storage.py +++ b/openpathsampling/experimental/storage/test_storage.py @@ -3,7 +3,7 @@ import pytest from .serialization_helpers import get_uuid -from .test_utils import all_objects, UnnamedUUID +from .test_utils import all_objects, UnnamedUUID, MockUUIDObject class TestStorageTable(object): def setup(self): @@ -24,8 +24,7 @@ def test_save(self): class TestPseudoTable(object): def setup(self): - unnamed = UnnamedUUID(normal_attr=10) - self.objs = {None: unnamed} + self.objs = {None: UnnamedUUID(normal_attr=10)} self.objs.update(all_objects) self.pseudo_table = PseudoTable(list(self.objs.values())) @@ -45,14 +44,57 @@ def test_getitem(self, name): if name is not None: assert self.pseudo_table[name] == obj - def test_setitem(self): - pytest.skip() + @pytest.mark.parametrize('name', ['int2', None]) + def test_setitem(self, name): + value = {'int2': 20, None: 21}[name] + item = {'int2': MockUUIDObject(name="int2", normal_attr=value), + None: UnnamedUUID(normal_attr=value)}[name] + + len_table = len(self.pseudo_table) + + self.pseudo_table[len_table-1] = item + assert item in self.pseudo_table + assert self.pseudo_table[len_table-1] == item + if name != None: + assert self.pseudo_table[name] == item + + @pytest.mark.parametrize('name', ['int2', None]) + def test_append(self, name): + value = {'int2': 20, None: 21}[name] + item = {'int2': MockUUIDObject(name="int2", normal_attr=value), + None: UnnamedUUID(normal_attr=value)}[name] + + len_table = len(self.pseudo_table) + + self.pseudo_table.append(item) + assert item in self.pseudo_table + assert self.pseudo_table[len_table] == item + if name != None: + assert self.pseudo_table[name] == item def test_delitem(self): - pytest.skip() + assert len(self.pseudo_table) == len(all_objects) + 1 + assert self.objs['int'] in self.pseudo_table + int_idx = self.pseudo_table._sequence.index(self.objs['int']) + del self.pseudo_table[int_idx] + assert len(self.pseudo_table) == len(all_objects) + assert self.objs['int'] not in self.pseudo_table + with pytest.raises(KeyError): + self.pseudo_table['int'] def test_len(self): assert len(self.pseudo_table) == len(all_objects) + 1 - def test_insert(self): - pytest.skip() + @pytest.mark.parametrize('name', ['int2', None]) + def test_insert(self, name): + value = {'int2': 20, None: 21}[name] + item = {'int2': MockUUIDObject(name="int2", normal_attr=value), + None: UnnamedUUID(normal_attr=value)}[name] + + len_table = len(self.pseudo_table) + + self.pseudo_table.insert(len_table, item) + assert item in self.pseudo_table + assert self.pseudo_table[len_table] == item + if name != None: + assert self.pseudo_table[name] == item From 734ca70f6e8872e09caa6a2b201ce7e6448bc6a9 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Sun, 7 Jul 2019 11:08:39 +0200 Subject: [PATCH 195/464] test serialization of proxy --- .../experimental/storage/test_serialization.py | 9 +++++++++ openpathsampling/experimental/storage/test_utils.py | 6 +++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/openpathsampling/experimental/storage/test_serialization.py b/openpathsampling/experimental/storage/test_serialization.py index 976589dc9..fb839d612 100644 --- a/openpathsampling/experimental/storage/test_serialization.py +++ b/openpathsampling/experimental/storage/test_serialization.py @@ -76,6 +76,15 @@ def test_getattr(self): assert proxy.normal_attr == original.normal_attr assert proxy._loaded_object == original + def test_serialize_proxy(self): + proxy = self.proxies['normal'] + original = self.originals['normal'] + dct = proxy.to_dict() + obj = proxy.class_.from_dict(dct) + assert obj.__uuid__ == proxy.__uuid__ == original.__uuid__ + assert type(obj) == type(original) + assert obj.normal_attr == proxy.normal_attr == original.normal_attr + def test_save_proxy(self): # TODO: storing a lazy proxy to storage should actually store it as # if it the original object (i.e., store to DB correctly ) -- note diff --git a/openpathsampling/experimental/storage/test_utils.py b/openpathsampling/experimental/storage/test_utils.py index cfa48bf2b..d037f1a4f 100644 --- a/openpathsampling/experimental/storage/test_utils.py +++ b/openpathsampling/experimental/storage/test_utils.py @@ -47,7 +47,11 @@ def to_dict(self): @classmethod def from_dict(cls, dct): # set UUID after - return cls(name=None, **dct) + try: + name = dct.pop('name') + except KeyError: + name = None + return cls(name=name, **dct) class MockUUIDObject(AbstractMockUUIDObject): attr_list = ['name', 'normal_attr', 'obj_attr', 'list_attr', From 07839294c1725df0a77994d4afc7f18f79a7a7c2 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Sat, 10 Aug 2019 14:52:14 +0200 Subject: [PATCH 196/464] tool for serializing dict with tuple keys --- .../experimental/storage/__init__.py | 1 + .../storage/dict_serialization_helpers.py | 29 +++++++++++++++++++ .../experimental/storage/storage.py | 3 +- 3 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 openpathsampling/experimental/storage/dict_serialization_helpers.py diff --git a/openpathsampling/experimental/storage/__init__.py b/openpathsampling/experimental/storage/__init__.py index d4f03287e..9f43144ba 100644 --- a/openpathsampling/experimental/storage/__init__.py +++ b/openpathsampling/experimental/storage/__init__.py @@ -10,3 +10,4 @@ from . import storage from . import tools from . import monkey_patches +from . import dict_serialization_helpers diff --git a/openpathsampling/experimental/storage/dict_serialization_helpers.py b/openpathsampling/experimental/storage/dict_serialization_helpers.py new file mode 100644 index 000000000..c60fc12b3 --- /dev/null +++ b/openpathsampling/experimental/storage/dict_serialization_helpers.py @@ -0,0 +1,29 @@ +def tuple_keys_to_dict(to_dict, attr_name): + # decorator + def inner(self): + dct = to_dict(self) + dct[attr_name] = tuple_keys_dict_to_dict(attr_name, dct[attr_name]) + return dct + return inner + +def tuple_keys_from_dict(from_dict, attr_name): + def inner(cls, dct): + dct = dict(dct) # copy + dct[attr_name] = tuple_keys_dict_from_dict(attr_name, dct[attr_name]) + return from_dict(dct) + return inner + + +def tuple_keys_dict_to_dict(name, tuple_keys_dict): + keys = list(tuple_keys_dict.keys()) + values = list(tuple_keys_dict.values()) + dct = {name + "_tuple_keys": keys, + name + "_values": values} + return dct + + +def tuple_keys_dict_from_dict(name, dct): + keys = dct[name + "_tuple_keys"] + values = dct[name + "_values"] + return {tuple(k): v for k, v in zip(keys, values)} + diff --git a/openpathsampling/experimental/storage/storage.py b/openpathsampling/experimental/storage/storage.py index 1989f5655..624342d3d 100644 --- a/openpathsampling/experimental/storage/storage.py +++ b/openpathsampling/experimental/storage/storage.py @@ -152,8 +152,9 @@ def save(self, obj_list): search_uuids = [get_uuid(obj) for obj in obj_list] exists = self.backend.load_uuids_table(uuids=search_uuids, ignore_missing=True) + exists = [row.uuid for row in exists] - obj_list = [obj for obj in obj_list if obj not in exists] + obj_list = [obj for obj in obj_list if get_uuid(obj) not in exists] if not obj_list: return From c5ff104f9ba6a6d3e7bd40439bb130cdc851efa0 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Sun, 11 Aug 2019 09:44:48 +0200 Subject: [PATCH 197/464] monkey-patch helpers; better backend loading --- .../experimental/storage/monkey_patches.py | 22 +++++++++++++++ .../experimental/storage/sql_backend.py | 28 +++++++++++++++++++ .../experimental/storage/storage.py | 28 +++++++++++-------- 3 files changed, 67 insertions(+), 11 deletions(-) diff --git a/openpathsampling/experimental/storage/monkey_patches.py b/openpathsampling/experimental/storage/monkey_patches.py index 8df2dd2cb..b8dfd7839 100644 --- a/openpathsampling/experimental/storage/monkey_patches.py +++ b/openpathsampling/experimental/storage/monkey_patches.py @@ -30,3 +30,25 @@ def function_pseudo_attribute_from_dict(cls, dct): dct['key_clss'] = key_class return cls.from_dict(dct) + +def monkey_patch_saving(paths): + paths.netcdfplus.FunctionPseudoAttribute.to_dict = \ + monkey_patches.function_pseudo_attribute_to_dict + paths.TPSNetwork.to_dict = \ + tuple_keys_to_dict(paths.TPSNetwork.to_dict, 'transitions') + return paths + +def monkey_patch_loading(paths): + paths.CallableCV.from_dict = \ + classmethod(monkey_patches.callable_cv_from_dict) + paths.netcdfplus.FunctionPseudoAttribute.from_dict = \ + classmethod(monkey_patches.function_pseudo_attribute_from_dict) + paths.TPSNetwork.from_dict = \ + classmethod(tuple_keys_from_dict(paths.TPSNetwork.from_dict, + 'transitions')) + return paths + +def monkey_patch_all(paths): + paths = monkey_patch_saving(paths) + paths = monkey_patch_loading(paths) + return paths diff --git a/openpathsampling/experimental/storage/sql_backend.py b/openpathsampling/experimental/storage/sql_backend.py index 5729cb4f8..34e5aaeec 100644 --- a/openpathsampling/experimental/storage/sql_backend.py +++ b/openpathsampling/experimental/storage/sql_backend.py @@ -1,5 +1,6 @@ import os import collections +from collections import abc import sqlalchemy as sql from .storage import universal_schema from .tools import group_by, compare_sets @@ -414,3 +415,30 @@ def table_iterator(self, table_name): results = list(conn.execute(table.select())) for row in results: yield row + + def table_len(self, table_name): + table = self.metadata.tables[table_name] + count_query = sql.select([sql.func.count()]).select_from(table) + with self.engine.connect() as conn: + results = conn.execute(count_query) + count_list = [r for r in results] + + if self.debug: + assert len(count_list) == 1 + subcount = count_list[0] + assert len(subcount) == 1 + + count = count_list[0][0] + return count + + def table_get_item(self, table_name, item): + table = self.metadata.tables[table_name] + # SQL counts from 1; Python counts from 0 + item_sel = table.select().where(table.c.idx == item + 1) + with self.engine.connect() as conn: + results = list(conn.execute(item_sel)) + + if self.debug: + assert len(results) == 1 + + return results[0] diff --git a/openpathsampling/experimental/storage/storage.py b/openpathsampling/experimental/storage/storage.py index 624342d3d..3b30601e4 100644 --- a/openpathsampling/experimental/storage/storage.py +++ b/openpathsampling/experimental/storage/storage.py @@ -396,19 +396,22 @@ def __iter__(self): yield self.storage.load([row.uuid])[0] def __getitem__(self, item): - backend_iterator = self.storage.backend.table_iterator(self.table) - if item < 0: - item += len(self) - n_iter = 0 - row = next(backend_iterator) - while row and n_iter < item: - row = next(backend_iterator) - n_iter += 1 + # TODO + row = self.storage.backend.table_get_item(self.table, item) + # backend_iterator = self.storage.backend.table_iterator(self.table) + # if item < 0: + # item += len(self) + # n_iter = 0 + # row = next(backend_iterator) + # while row and n_iter < item: + # row = next(backend_iterator) + # n_iter += 1 return self.storage.load([row.uuid])[0] def __len__(self): - backend_iterator = self.storage.backend.table_iterator(self.table) - return len(list(backend_iterator)) + return self.storage.backend.table_len(self.table) + # backend_iterator = self.storage.backend.table_iterator(self.table) + # return len(list(backend_iterator)) def save(self, obj): # this is to match with the netcdfplus API @@ -463,7 +466,10 @@ def __delitem__(self, key): del self._name_to_uuid[name] def __len__(self): - return len(self._sequence) + return len(self._uuid_to_obj) + + def __iter__(self): + return self._uuid_to_obj.values() def insert(self, where, item): # TODO: should this be allowed? or make it not really mutable, only From d8553479be11782fc3a76e559d14543262915300 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Sun, 11 Aug 2019 10:34:53 +0200 Subject: [PATCH 198/464] storage uses PseudoTables (instead of dicts) --- .../experimental/storage/storage.py | 25 ++++++++----------- 1 file changed, 10 insertions(+), 15 deletions(-) diff --git a/openpathsampling/experimental/storage/storage.py b/openpathsampling/experimental/storage/storage.py index 3b30601e4..6f6cbc407 100644 --- a/openpathsampling/experimental/storage/storage.py +++ b/openpathsampling/experimental/storage/storage.py @@ -56,7 +56,9 @@ def __init__(self, backend, class_info, schema=None, self.simulation_classes = tools.none_to_default(simulation_classes, {}) - self._pseudo_tables = {table_name: dict() + # self._pseudo_tables = {table_name: dict() + # for table_name in self.simulation_classes} + self._pseudo_tables = {table_name: PseudoTable() for table_name in self.simulation_classes} self._storage_tables = {} # stores .steps, .snapshots @@ -302,9 +304,10 @@ def _update_pseudo_tables(self, simulation_objects): for uuid, obj in simulation_objects.items(): for (key, cls) in self.simulation_classes.items(): if isinstance(obj, cls): - self._pseudo_tables[key][uuid] = obj - if obj.is_named: - self._pseudo_tables[key][obj.name] = obj + self._pseudo_tables[key].append(obj) + # self._pseudo_tables[key][uuid] = obj + # if obj.is_named: + # self._pseudo_tables[key][obj.name] = obj continue def summary(self, detailed=False): @@ -396,22 +399,11 @@ def __iter__(self): yield self.storage.load([row.uuid])[0] def __getitem__(self, item): - # TODO row = self.storage.backend.table_get_item(self.table, item) - # backend_iterator = self.storage.backend.table_iterator(self.table) - # if item < 0: - # item += len(self) - # n_iter = 0 - # row = next(backend_iterator) - # while row and n_iter < item: - # row = next(backend_iterator) - # n_iter += 1 return self.storage.load([row.uuid])[0] def __len__(self): return self.storage.backend.table_len(self.table) - # backend_iterator = self.storage.backend.table_iterator(self.table) - # return len(list(backend_iterator)) def save(self, obj): # this is to match with the netcdfplus API @@ -442,6 +434,9 @@ def _get_uuid_and_name(obj): def get_by_uuid(self, uuid): return self._uuid_to_obj[uuid] + # NOTE: index can get confusing because you can have two equal volumes + # (same CV, same range) with one named and the other not named. + def __getitem__(self, item): try: ret_val = self._sequence[item] From 897ce8a4f5eb4f99ba6a5702739a61bb1554d044 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Sun, 11 Aug 2019 12:43:30 +0200 Subject: [PATCH 199/464] see everything in pseudotables; reload tables --- .../experimental/storage/storage.py | 36 +++++++++++++------ 1 file changed, 25 insertions(+), 11 deletions(-) diff --git a/openpathsampling/experimental/storage/storage.py b/openpathsampling/experimental/storage/storage.py index 6f6cbc407..7c00b56a7 100644 --- a/openpathsampling/experimental/storage/storage.py +++ b/openpathsampling/experimental/storage/storage.py @@ -60,6 +60,7 @@ def __init__(self, backend, class_info, schema=None, # for table_name in self.simulation_classes} self._pseudo_tables = {table_name: PseudoTable() for table_name in self.simulation_classes} + self._pseudo_tables['misc_simulation'] = PseudoTable() self._storage_tables = {} # stores .steps, .snapshots self._simulation_objects = self._cache_simulation_objects() @@ -73,6 +74,8 @@ def __init__(self, backend, class_info, schema=None, def initialize_with_mode(self, mode): if mode == 'r' or mode == 'a': + self.register_schema(self.schema, class_info_list=[], + read_mode=True) table_to_class = self.backend.table_to_class self._load_missing_info_tables(table_to_class) @@ -114,12 +117,14 @@ def register_schema(self, schema, class_info_list, # info.set_defaults(schema) # self.class_info.add_class_info(info) - table_to_class = {table: self.class_info[table].cls - for table in schema - if table not in ['uuid', 'tables']} - # here's where we add the class_info to the backend - self.backend.register_schema(schema, table_to_class, - backend_metadata) + if not read_mode: + # here's where we add the class_info to the backend + table_to_class = {table: self.class_info[table].cls + for table in schema + if table not in ['uuid', 'tables']} + self.backend.register_schema(schema, table_to_class, + backend_metadata) + self.schema.update(schema) for table in self.schema: self._storage_tables[table] = StorageTable(self, table) @@ -130,7 +135,7 @@ def register_from_instance(self, lookup, obj): raise NotImplementedError("No way to register from an instance") def register_missing_tables_for_objects(self, uuid_obj_dict): - # mistting items are handled by the special_lookup + # missing items are handled by the special_lookup lookup_examples = set([]) for obj in uuid_obj_dict.values(): lookup = self.class_info.lookup_key(obj) @@ -302,13 +307,16 @@ def _cache_simulation_objects(self): def _update_pseudo_tables(self, simulation_objects): # TODO: replace the pseudo_tables code here with a class for uuid, obj in simulation_objects.items(): + my_cls = None for (key, cls) in self.simulation_classes.items(): if isinstance(obj, cls): self._pseudo_tables[key].append(obj) + my_cls = cls # self._pseudo_tables[key][uuid] = obj # if obj.is_named: # self._pseudo_tables[key][obj.name] = obj - continue + if my_cls is None: + self._pseudo_tables['misc_simulation'].append(obj) def summary(self, detailed=False): """Return a string summary of this storage file. @@ -324,7 +332,8 @@ def summary(self, detailed=False): out_str += "Includes tables:\n" storage_tables = dict(self._storage_tables) # make a copy if detailed: - pass # TODO: pop off simulation_objects, use pseudotables + storage_tables.pop('simulation_objects') + storage_tables.update(self._pseudo_tables) for (name, table) in storage_tables.items(): out_str += "* " + name + ": " + str(len(table)) + " items\n" @@ -428,7 +437,12 @@ def __init__(self, sequence=None): @staticmethod def _get_uuid_and_name(obj): uuid = get_uuid(obj) - name = None if not obj.is_named else obj.name + try: + name = None if not obj.is_named else obj.name + except AttributeError: + # occurs if simulation object is not a StorableNamedObject + # (relevant for a few very old classes; should be fixed in 2.0) + name = None return uuid, name def get_by_uuid(self, uuid): @@ -464,7 +478,7 @@ def __len__(self): return len(self._uuid_to_obj) def __iter__(self): - return self._uuid_to_obj.values() + return iter(self._uuid_to_obj.values()) def insert(self, where, item): # TODO: should this be allowed? or make it not really mutable, only From 197fc1b5bb2007d9c0ae72488fabb9a3cb0e2e52 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Sun, 11 Aug 2019 14:51:41 +0200 Subject: [PATCH 200/464] More steps toward loading (need to fix proxies) --- .../experimental/storage/monkey_patches.py | 18 +++++++++++++----- .../experimental/storage/ops_storage.py | 3 ++- .../storage/serialization_helpers.py | 2 ++ .../experimental/storage/storage.py | 11 +++++++++++ 4 files changed, 28 insertions(+), 6 deletions(-) diff --git a/openpathsampling/experimental/storage/monkey_patches.py b/openpathsampling/experimental/storage/monkey_patches.py index b8dfd7839..b21bcbfd8 100644 --- a/openpathsampling/experimental/storage/monkey_patches.py +++ b/openpathsampling/experimental/storage/monkey_patches.py @@ -1,4 +1,7 @@ import openpathsampling as paths +from .dict_serialization_helpers import ( + tuple_keys_to_dict, tuple_keys_from_dict +) import importlib def import_class(full_classname_string): @@ -14,7 +17,13 @@ def callable_cv_from_dict(cls, dct): kwargs = dct.pop('kwargs') dct.update(kwargs) obj = cls(**dct) - cv_callable = paths.netcdfplus.ObjectJSON.callable_from_dict(obj.cv_callable) + cv_callable= obj.cv_callable + try: + cv_callable['_marshal'] = cv_callable['_marshal']['bytes'] + except: + pass + + cv_callable = paths.netcdfplus.ObjectJSON.callable_from_dict(cv_callable) obj.cv_callable = cv_callable return obj @@ -33,16 +42,15 @@ def function_pseudo_attribute_from_dict(cls, dct): def monkey_patch_saving(paths): paths.netcdfplus.FunctionPseudoAttribute.to_dict = \ - monkey_patches.function_pseudo_attribute_to_dict + function_pseudo_attribute_to_dict paths.TPSNetwork.to_dict = \ tuple_keys_to_dict(paths.TPSNetwork.to_dict, 'transitions') return paths def monkey_patch_loading(paths): - paths.CallableCV.from_dict = \ - classmethod(monkey_patches.callable_cv_from_dict) + paths.CallableCV.from_dict = classmethod(callable_cv_from_dict) paths.netcdfplus.FunctionPseudoAttribute.from_dict = \ - classmethod(monkey_patches.function_pseudo_attribute_from_dict) + classmethod(function_pseudo_attribute_from_dict) paths.TPSNetwork.from_dict = \ classmethod(tuple_keys_from_dict(paths.TPSNetwork.from_dict, 'transitions')) diff --git a/openpathsampling/experimental/storage/ops_storage.py b/openpathsampling/experimental/storage/ops_storage.py index 2a43ae8d8..d63a841d8 100644 --- a/openpathsampling/experimental/storage/ops_storage.py +++ b/openpathsampling/experimental/storage/ops_storage.py @@ -184,7 +184,8 @@ def _build_ops_serializer(codecs): 'pathsimulators': paths.PathSimulator, 'pathmovers': paths.PathMover, 'networks': paths.TransitionNetwork, - 'cvs': paths.CollectiveVariable + 'cvs': paths.CollectiveVariable, + 'engines': paths.engines.DynamicsEngine } # TODO: add more to these diff --git a/openpathsampling/experimental/storage/serialization_helpers.py b/openpathsampling/experimental/storage/serialization_helpers.py index 600e8fc00..f6abd2b7f 100644 --- a/openpathsampling/experimental/storage/serialization_helpers.py +++ b/openpathsampling/experimental/storage/serialization_helpers.py @@ -306,6 +306,8 @@ def search_caches(key, cache_list, raise_error=True): the object with the given UUID, or ``None`` if the object is not found and ``raise_error`` is ``False``. """ + if key is None: + return None # some objects allow UUID to be None if not isinstance(cache_list, list): cache_list = [cache_list] obj = None diff --git a/openpathsampling/experimental/storage/storage.py b/openpathsampling/experimental/storage/storage.py index 7c00b56a7..f4dc9146a 100644 --- a/openpathsampling/experimental/storage/storage.py +++ b/openpathsampling/experimental/storage/storage.py @@ -76,6 +76,11 @@ def initialize_with_mode(self, mode): if mode == 'r' or mode == 'a': self.register_schema(self.schema, class_info_list=[], read_mode=True) + self._update_pseudo_tables({get_uuid(obj): obj + for obj in self.simulation_objects}) + missing = {k: v for k, v in self.backend.schema.items() + if k not in self.schema} + self.schema.update(missing) table_to_class = self.backend.table_to_class self._load_missing_info_tables(table_to_class) @@ -364,6 +369,12 @@ def delete_items(self, list_of_items, error_if_missing=False): elif error_if_missing: raise KeyError() # TODO: message and check error type + def reproxy(self, schema): + # TODO: idea: turn loaded objects back into None for any proxy + # objects in cache. This frees those things up for garbage + # collection. + pass + def __getitem__(self, key): if key in self.fixed_cache: value = self.fixed_cache[key] From 88fd7247a07a9c79b2ceb91a4ec0a7e467376e34 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Mon, 12 Aug 2019 21:13:45 +0200 Subject: [PATCH 201/464] More fixes for loading/analysis Note that this required switching the OPS schema to not lazy-load trajectory objects. That is due to a problem with how CVs handle lazy-loaded objects in netcdfplus. --- .../experimental/storage/monkey_patches.py | 17 ++++++++++++++--- .../experimental/storage/ops_storage.py | 3 ++- .../experimental/storage/storage.py | 4 ++-- 3 files changed, 18 insertions(+), 6 deletions(-) diff --git a/openpathsampling/experimental/storage/monkey_patches.py b/openpathsampling/experimental/storage/monkey_patches.py index b21bcbfd8..43fa4f0a7 100644 --- a/openpathsampling/experimental/storage/monkey_patches.py +++ b/openpathsampling/experimental/storage/monkey_patches.py @@ -17,7 +17,7 @@ def callable_cv_from_dict(cls, dct): kwargs = dct.pop('kwargs') dct.update(kwargs) obj = cls(**dct) - cv_callable= obj.cv_callable + cv_callable = obj.cv_callable try: cv_callable['_marshal'] = cv_callable['_marshal']['bytes'] except: @@ -36,9 +36,16 @@ def function_pseudo_attribute_to_dict(obj): def function_pseudo_attribute_from_dict(cls, dct): key_class = import_class(dct['key_class']) - dct['key_clss'] = key_class + dct['key_class'] = key_class return cls.from_dict(dct) +def from_dict_attr_to_class(from_dict, attr_name): + def inner(cls, dct): + class_ = import_class(dct[attr_name]) + dct[attr_name] = class_ + return from_dict(dct) + return inner + def monkey_patch_saving(paths): paths.netcdfplus.FunctionPseudoAttribute.to_dict = \ @@ -50,7 +57,11 @@ def monkey_patch_saving(paths): def monkey_patch_loading(paths): paths.CallableCV.from_dict = classmethod(callable_cv_from_dict) paths.netcdfplus.FunctionPseudoAttribute.from_dict = \ - classmethod(function_pseudo_attribute_from_dict) + classmethod(from_dict_attr_to_class( + paths.netcdfplus.FunctionPseudoAttribute.from_dict, + attr_name='key_class' + )) + # classmethod(function_pseudo_attribute_from_dict) paths.TPSNetwork.from_dict = \ classmethod(tuple_keys_from_dict(paths.TPSNetwork.from_dict, 'transitions')) diff --git a/openpathsampling/experimental/storage/ops_storage.py b/openpathsampling/experimental/storage/ops_storage.py index d63a841d8..6a56d0d06 100644 --- a/openpathsampling/experimental/storage/ops_storage.py +++ b/openpathsampling/experimental/storage/ops_storage.py @@ -32,7 +32,8 @@ # this defines the schema for data objects ops_schema = { - 'samples': [('trajectory', 'lazy'), ('ensemble', 'uuid'), + 'samples': [('trajectory', 'uuid'), #'lazy'), # TODO: JHP's CVs fail + ('ensemble', 'uuid'), ('replica', 'int')], # in my opinion, the next 3 should be removed # ('parent', 'lazy'), ('bias', 'float'), diff --git a/openpathsampling/experimental/storage/storage.py b/openpathsampling/experimental/storage/storage.py index f4dc9146a..e01d65580 100644 --- a/openpathsampling/experimental/storage/storage.py +++ b/openpathsampling/experimental/storage/storage.py @@ -76,13 +76,13 @@ def initialize_with_mode(self, mode): if mode == 'r' or mode == 'a': self.register_schema(self.schema, class_info_list=[], read_mode=True) - self._update_pseudo_tables({get_uuid(obj): obj - for obj in self.simulation_objects}) missing = {k: v for k, v in self.backend.schema.items() if k not in self.schema} self.schema.update(missing) table_to_class = self.backend.table_to_class self._load_missing_info_tables(table_to_class) + self._update_pseudo_tables({get_uuid(obj): obj + for obj in self.simulation_objects}) elif mode == 'w': self.register_schema(self.schema, class_info_list=[]) From 383ccd502a4b441c5cb6b8b7b9d52e026194e273 Mon Sep 17 00:00:00 2001 From: sroet Date: Tue, 13 Aug 2019 16:43:14 +0200 Subject: [PATCH 202/464] do min_bin in bin_number not cv_value --- openpathsampling/numerics/histogram.py | 4 ++-- openpathsampling/tests/test_histogram.py | 8 ++++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/openpathsampling/numerics/histogram.py b/openpathsampling/numerics/histogram.py index 1caa32e5c..03dc28f75 100644 --- a/openpathsampling/numerics/histogram.py +++ b/openpathsampling/numerics/histogram.py @@ -304,7 +304,7 @@ def __call__(self, bin_edge="m"): vals = self.xvals(bin_edge) hist = self.histogram() bins = sorted(hist.keys()) - min_bin = min(bins[0][0], self.left_bin_edges[0]) + min_bin = min(bins[0][0], 0) max_bin = bins[-1][0] bin_range = range(int(min_bin), int(max_bin)+1) hist_list = [hist[(b,)] for b in bin_range] @@ -691,7 +691,7 @@ def plot(self, normed=None, xticklabels=None, yticklabels=None, ylim : 2-tuple of (float, float) vertical (y-value) range of (minimum, maximum) bounds for displaying the plot - kwargs : + kwargs : additional arguments to pass to plt.pcolormesh Returns diff --git a/openpathsampling/tests/test_histogram.py b/openpathsampling/tests/test_histogram.py index a070a76c0..a79a8752a 100644 --- a/openpathsampling/tests/test_histogram.py +++ b/openpathsampling/tests/test_histogram.py @@ -108,7 +108,7 @@ def test_xvals(self): assert_equal(histo.bin_widths, self.bin_widths) assert_items_equal(histo.xvals("l"), [1.0, 1.5, 2.0, 2.5, 3.0, 3.5]) assert_items_equal(histo.xvals("r"), [1.5, 2.0, 2.5, 3.0, 3.5, 4.0]) - assert_items_equal(histo.xvals("m"), + assert_items_equal(histo.xvals("m"), [1.25, 1.75, 2.25, 2.75, 3.25, 3.75]) @@ -130,7 +130,7 @@ def test_cumulative(self): hist = histo.histogram(self.data) cumulative = list(histo.cumulative(None).values()) assert_items_almost_equal(cumulative, [5.0, 5.0, 7.0, 8.0, 9.0, 10.0]) - assert_items_almost_equal(histo.cumulative(maximum=1.0), + assert_items_almost_equal(histo.cumulative(maximum=1.0), [0.5, 0.5, 0.7, 0.8, 0.9, 1.0]) def test_reverse_cumulative(self): @@ -143,6 +143,10 @@ def test_reverse_cumulative(self): assert_items_almost_equal(list(rev_cumulative.values()), [1.0, 0.5, 0.5, 0.3, 0.2, 0.1]) + def test_left_bin_error(self): + histo = Histogram(bin_width=0.5, bin_range=(-1.0, 3.5)) + histo.histogram([3.5]) + assert histo.reverse_cumulative() != 0 class TestSparseHistogram(object): def setup(self): From 11ebcf7f63bfe55924d0c8d9b9361027266b7575 Mon Sep 17 00:00:00 2001 From: sroet Date: Tue, 13 Aug 2019 17:28:28 +0200 Subject: [PATCH 203/464] Don't return zero, but warn on empty cumul histogram. --- openpathsampling/numerics/histogram.py | 10 +++++----- openpathsampling/tests/test_histogram.py | 16 ++++++++++++++-- 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/openpathsampling/numerics/histogram.py b/openpathsampling/numerics/histogram.py index 03dc28f75..73db90869 100644 --- a/openpathsampling/numerics/histogram.py +++ b/openpathsampling/numerics/histogram.py @@ -5,7 +5,7 @@ import math from .lookup_function import LookupFunction, VoxelLookupFunction import collections - +import warnings from functools import reduce class SparseHistogram(object): @@ -373,8 +373,8 @@ def cumulative(self, maximum=1.0, bin_edge="r"): cumul_hist = np.array(cumul_hist) if total == 0: - return 0 - if maximum is not None: + warnings.warn("No non-zero data in the histogram") + elif maximum is not None: cumul_hist *= maximum / total xvals = self.xvals(bin_edge) @@ -394,8 +394,8 @@ def reverse_cumulative(self, maximum=1.0, bin_edge="l"): cumul_hist = np.array(cumul_hist) if total == 0: - return 0 - if maximum is not None: + warnings.warn("No non-zero data in the histogram") + elif maximum is not None: cumul_hist *= maximum / total xvals = self.xvals(bin_edge) diff --git a/openpathsampling/tests/test_histogram.py b/openpathsampling/tests/test_histogram.py index a79a8752a..5dcd76616 100644 --- a/openpathsampling/tests/test_histogram.py +++ b/openpathsampling/tests/test_histogram.py @@ -6,7 +6,7 @@ assert_almost_equal) from nose.plugins.skip import SkipTest from .test_helpers import assert_items_almost_equal, assert_items_equal - +import pytest import logging logging.getLogger('openpathsampling.initialization').setLevel(logging.CRITICAL) logging.getLogger('openpathsampling.ensemble').setLevel(logging.CRITICAL) @@ -133,9 +133,15 @@ def test_cumulative(self): assert_items_almost_equal(histo.cumulative(maximum=1.0), [0.5, 0.5, 0.7, 0.8, 0.9, 1.0]) + def test_cumulative_all_zero_warn(self): + histo = Histogram(bin_width=0.5, bin_range=(1.0, 3.5)) + histo._histogram = collections.Counter({(0,): 0, (1,): 0}) + with pytest.warns(UserWarning, match=r"No non-zero"): + histo.cumulative() + def test_reverse_cumulative(self): histo = Histogram(n_bins=5) - hist = histo.histogram(self.data) + histo.histogram(self.data) rev_cumulative = histo.reverse_cumulative(maximum=None) assert_items_almost_equal(list(rev_cumulative.values()), [10, 5, 5, 3, 2, 1]) @@ -143,6 +149,12 @@ def test_reverse_cumulative(self): assert_items_almost_equal(list(rev_cumulative.values()), [1.0, 0.5, 0.5, 0.3, 0.2, 0.1]) + def test_reverse_cumulative_all_zero_warn(self): + histo = Histogram(bin_width=0.5, bin_range=(1.0, 3.5)) + histo._histogram = collections.Counter({(0,): 0, (1,): 0}) + with pytest.warns(UserWarning, match=r"No non-zero"): + histo.reverse_cumulative() + def test_left_bin_error(self): histo = Histogram(bin_width=0.5, bin_range=(-1.0, 3.5)) histo.histogram([3.5]) From fe87d99c7e44b976dee0e5d62354e04b6a373ef8 Mon Sep 17 00:00:00 2001 From: sroet Date: Tue, 13 Aug 2019 17:42:58 +0200 Subject: [PATCH 204/464] actually test the returned lookup function --- openpathsampling/tests/test_histogram.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/openpathsampling/tests/test_histogram.py b/openpathsampling/tests/test_histogram.py index 5dcd76616..856da8db3 100644 --- a/openpathsampling/tests/test_histogram.py +++ b/openpathsampling/tests/test_histogram.py @@ -137,7 +137,11 @@ def test_cumulative_all_zero_warn(self): histo = Histogram(bin_width=0.5, bin_range=(1.0, 3.5)) histo._histogram = collections.Counter({(0,): 0, (1,): 0}) with pytest.warns(UserWarning, match=r"No non-zero"): - histo.cumulative() + cumul = histo.cumulative() + + assert cumul(2.13) == 0 + for val in cumul.values(): + assert val == 0 def test_reverse_cumulative(self): histo = Histogram(n_bins=5) @@ -153,7 +157,10 @@ def test_reverse_cumulative_all_zero_warn(self): histo = Histogram(bin_width=0.5, bin_range=(1.0, 3.5)) histo._histogram = collections.Counter({(0,): 0, (1,): 0}) with pytest.warns(UserWarning, match=r"No non-zero"): - histo.reverse_cumulative() + rcumul = histo.reverse_cumulative() + assert rcumul(3.12) == 0 + for val in rcumul.values(): + assert val == 0 def test_left_bin_error(self): histo = Histogram(bin_width=0.5, bin_range=(-1.0, 3.5)) From 0724232d8f3582cd283366f230880904946fecbb Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Sun, 18 Aug 2019 17:46:25 +0200 Subject: [PATCH 205/464] protect caps in openpathsampling.bib --- docs/openpathsampling.bib | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/docs/openpathsampling.bib b/docs/openpathsampling.bib index 0db618de9..98df4f863 100644 --- a/docs/openpathsampling.bib +++ b/docs/openpathsampling.bib @@ -1,6 +1,7 @@ @article{ops1, author = {Swenson, David W. H. and Prinz, Jan-Hendrik and Noe, Frank and Chodera, John D. and Bolhuis, Peter G.}, -title = {OpenPathSampling: A Python Framework for Path Sampling Simulations. 1. Basics}, +title = {{OpenPathSampling}: {A} {Python} Framework for Path Sampling + Simulations. 1. {Basics}}, journal = {Journal of Chemical Theory and Computation}, volume = {15}, number = {2}, @@ -23,7 +24,8 @@ @article{ops1 @article{ops2, author = {Swenson, David W. H. and Prinz, Jan-Hendrik and Noe, Frank and Chodera, John D. and Bolhuis, Peter G.}, -title = {OpenPathSampling: A Python Framework for Path Sampling Simulations. 2. Building and Customizing Path Ensembles and Sample Schemes}, +title = {{OpenPathSampling}: {A} {P}ython Framework for Path Sampling + Simulations. 2. {B}uilding and Customizing Path Ensembles and Sample Schemes}, journal = {Journal of Chemical Theory and Computation}, volume = {15}, number = {2}, From 6488145a20c1553a6dddbfe9192d65edaabd2d9a Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Tue, 17 Sep 2019 14:19:32 +0200 Subject: [PATCH 206/464] Minor updates preparing for storable functions --- openpathsampling/experimental/storage/custom_json.py | 2 +- openpathsampling/experimental/storage/ops_storage.py | 6 ++++-- .../experimental/storage/serialization_helpers.py | 10 ++++++---- openpathsampling/experimental/storage/storage.py | 2 +- 4 files changed, 12 insertions(+), 8 deletions(-) diff --git a/openpathsampling/experimental/storage/custom_json.py b/openpathsampling/experimental/storage/custom_json.py index 095bccc51..4142e70e5 100644 --- a/openpathsampling/experimental/storage/custom_json.py +++ b/openpathsampling/experimental/storage/custom_json.py @@ -1,6 +1,6 @@ import json import functools -from collections import namedtuple +from collections import namedtuple, defaultdict from .tools import none_to_default from .serialization_helpers import has_uuid, replace_uuid, encode_uuid from .serialization import SimulationObjectSerializer diff --git a/openpathsampling/experimental/storage/ops_storage.py b/openpathsampling/experimental/storage/ops_storage.py index 6a56d0d06..ba7a3dacd 100644 --- a/openpathsampling/experimental/storage/ops_storage.py +++ b/openpathsampling/experimental/storage/ops_storage.py @@ -191,7 +191,8 @@ def _build_ops_serializer(codecs): class OPSStorage(storage.GeneralStorage): - def __init__(self, backend, schema, class_info, fallbacks=None): + def __init__(self, backend, schema, class_info, fallbacks=None, + safemode=False): # TODO: this will change to match the current notation super(OPSStorage, self).__init__(backend, schema, class_info, fallbacks) @@ -204,7 +205,8 @@ def sync_all(self): @classmethod def from_backend(cls, backend, schema=None, class_info=None, - simulation_classes=None, fallbacks=None): + simulation_classes=None, fallbacks=None, + safemode=False): obj = cls.__new__(cls) schema = tools.none_to_default(schema, ops_schema) class_info = tools.none_to_default(class_info, ops_class_info) diff --git a/openpathsampling/experimental/storage/serialization_helpers.py b/openpathsampling/experimental/storage/serialization_helpers.py index f6abd2b7f..dad410397 100644 --- a/openpathsampling/experimental/storage/serialization_helpers.py +++ b/openpathsampling/experimental/storage/serialization_helpers.py @@ -280,11 +280,13 @@ def to_json_obj(obj): return json.dumps(dct) -def import_class(mod, cls): +def do_import (module, thing): # TODO: this needs some error-checking - mod = importlib.import_module(mod) - cls = getattr(mod, cls) - return cls + mod = importlib.import_module(module) + result = getattr(mod, thing) + return result + +import_class = do_import # old name that was used def search_caches(key, cache_list, raise_error=True): """Find UUID if it is in the cache_list dicts diff --git a/openpathsampling/experimental/storage/storage.py b/openpathsampling/experimental/storage/storage.py index e01d65580..c7848ea0b 100644 --- a/openpathsampling/experimental/storage/storage.py +++ b/openpathsampling/experimental/storage/storage.py @@ -400,7 +400,6 @@ def __len__(self): def __iter__(self): return itertools.chain(self.fixed_cache, self.cache) - class StorageTable(abc.Sequence): # NOTE: currently you still need to be able to hold the whole table in # memory ... at least, with the SQL backend. @@ -435,6 +434,7 @@ def save(self, obj): class PseudoTable(abc.MutableSequence): # TODO: use this in the main code + # NOTE: This will require that the storage class append to it """List of objects that can be retrieved by index or name. """ def __init__(self, sequence=None): From 8cd2bb29ac65fbc524c11ab99c856b8d6f6fcfcc Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Tue, 17 Sep 2019 14:28:56 +0200 Subject: [PATCH 207/464] deprecate MSMBuilder --- openpathsampling/collectivevariable.py | 4 ++++ openpathsampling/deprecations.py | 10 +++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/openpathsampling/collectivevariable.py b/openpathsampling/collectivevariable.py index 99dab969d..8646e2a3f 100644 --- a/openpathsampling/collectivevariable.py +++ b/openpathsampling/collectivevariable.py @@ -4,6 +4,8 @@ from openpathsampling.netcdfplus import WeakKeyCache, \ ObjectJSON, create_to_dict, ObjectStore, PseudoAttribute +from deprecations import has_deprecations, deprecate, MSMBUILDER + import sys if sys.version_info > (3, ): get_code = lambda func: func.__code__ @@ -579,6 +581,8 @@ def to_dict(self): } +@has_deprecations +@deprecate(MSMBUILDER) class MSMBFeaturizerCV(CoordinateGeneratorCV): """ A CollectiveVariable that uses an MSMBuilder3 featurizer diff --git a/openpathsampling/deprecations.py b/openpathsampling/deprecations.py index 8a2d4db29..23754c095 100644 --- a/openpathsampling/deprecations.py +++ b/openpathsampling/deprecations.py @@ -146,7 +146,15 @@ def version_tuple_to_string(version_tuple): deprecated_in=(0, 9 ,3) ) -# has_deprecation and deprecate hacks to change docstrings inspired by: +MSMBUILDER = Deprecation( + problem=("MSMBuilder is no longer maintained. ", + + "MSMBFeaturizer is no longer officially supported."), + remedy="Create a CoordinateFunctionCV based on MSMBuilderFeaturizers.", + remove_version=(2, 0), + deprecated_in(1, 1, 0) +) + +# has_deprecations and deprecate hacks to change docstrings inspired by: # https://stackoverflow.com/a/47441572/4205735 def has_deprecations(cls): """Decorator to ensure that docstrings get updated for wrapped class""" From 50e863f216b2eb8cc2e8391c08b57b307dedaf7f Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Tue, 17 Sep 2019 14:29:43 +0200 Subject: [PATCH 208/464] remove MSMBuilder from requirements --- devtools/optional_packages.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/devtools/optional_packages.txt b/devtools/optional_packages.txt index 143d4fca8..e69de29bb 100644 --- a/devtools/optional_packages.txt +++ b/devtools/optional_packages.txt @@ -1 +0,0 @@ -msmbuilder From c6186a62410540fdbff49bedd119ebf0213e9a7d Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Tue, 17 Sep 2019 14:47:28 +0200 Subject: [PATCH 209/464] fix missing = --- openpathsampling/deprecations.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openpathsampling/deprecations.py b/openpathsampling/deprecations.py index 23754c095..89798252a 100644 --- a/openpathsampling/deprecations.py +++ b/openpathsampling/deprecations.py @@ -151,7 +151,7 @@ def version_tuple_to_string(version_tuple): + "MSMBFeaturizer is no longer officially supported."), remedy="Create a CoordinateFunctionCV based on MSMBuilderFeaturizers.", remove_version=(2, 0), - deprecated_in(1, 1, 0) + deprecated_in=(1, 1, 0) ) # has_deprecations and deprecate hacks to change docstrings inspired by: From 58db7055525ded323035c610dc271d1cdd25f718 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Tue, 17 Sep 2019 15:07:05 +0200 Subject: [PATCH 210/464] misc fixes how stupid can I be? --- openpathsampling/collectivevariable.py | 3 ++- openpathsampling/deprecations.py | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/openpathsampling/collectivevariable.py b/openpathsampling/collectivevariable.py index 8646e2a3f..dc1c01bb6 100644 --- a/openpathsampling/collectivevariable.py +++ b/openpathsampling/collectivevariable.py @@ -4,7 +4,8 @@ from openpathsampling.netcdfplus import WeakKeyCache, \ ObjectJSON, create_to_dict, ObjectStore, PseudoAttribute -from deprecations import has_deprecations, deprecate, MSMBUILDER +from openpathsampling.deprecations import (has_deprecations, deprecate, + MSMBUILDER) import sys if sys.version_info > (3, ): diff --git a/openpathsampling/deprecations.py b/openpathsampling/deprecations.py index 89798252a..edacc9fcd 100644 --- a/openpathsampling/deprecations.py +++ b/openpathsampling/deprecations.py @@ -147,7 +147,7 @@ def version_tuple_to_string(version_tuple): ) MSMBUILDER = Deprecation( - problem=("MSMBuilder is no longer maintained. ", + problem=("MSMBuilder is no longer maintained. " + "MSMBFeaturizer is no longer officially supported."), remedy="Create a CoordinateFunctionCV based on MSMBuilderFeaturizers.", remove_version=(2, 0), From 0a9e7ea829a047a966324389f3a516f2693a0827 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Wed, 18 Sep 2019 16:15:10 +0200 Subject: [PATCH 211/464] add storage.filter_existing_uuids --- .../experimental/storage/storage.py | 35 +++++++++---------- 1 file changed, 17 insertions(+), 18 deletions(-) diff --git a/openpathsampling/experimental/storage/storage.py b/openpathsampling/experimental/storage/storage.py index c7848ea0b..096e08104 100644 --- a/openpathsampling/experimental/storage/storage.py +++ b/openpathsampling/experimental/storage/storage.py @@ -148,9 +148,15 @@ def register_missing_tables_for_objects(self, uuid_obj_dict): self.register_from_instance(lookup, obj) lookup_examples |= {lookup} - def uuids_in_storage(self, uuid_list): - return self.backend.load_uuids_table(uuids=uuid_list, - ignore_missing=True) + def filter_existing_uuids(self, uuid_dict): + existing = self.backend.load_uuids_table( + uuids=list(uuid_dict.keys()), + ignore_missing=True + ) + for uuid_row in existing: + del uuid_dict[uuid_row.uuid] + + return uuid_dict def save(self, obj_list): if type(obj_list) is not list: @@ -161,31 +167,24 @@ def save(self, obj_list): # self.class_info.serialize(obj, storage=self) # check if obj is in DB (maybe this can be removed?) logger.debug("Starting save") - search_uuids = [get_uuid(obj) for obj in obj_list] - exists = self.backend.load_uuids_table(uuids=search_uuids, - ignore_missing=True) - exists = [row.uuid for row in exists] - - obj_list = [obj for obj in obj_list if get_uuid(obj) not in exists] + input_uuids = {get_uuid(obj): obj for obj in obj_list} + input_uuids = self.filter_existing_uuids(input_uuids) + if not input_uuids: + return # exist early if everything is already in storage - if not obj_list: - return # find all UUIDs we need to save with this object logger.debug("Listing all objects to save") uuids = {} - for obj in obj_list: + for uuid, obj in input_uuids.items(): uuids.update(get_all_uuids(obj, known_uuids=self.cache, class_info=self.class_info)) + logger.debug("Checking if objects already exist in database") - # remove any UUIDs that have already been saved - exists = self.backend.load_uuids_table(uuids=list(uuids.keys()), - ignore_missing=True) - for existing in exists: - del uuids[existing.uuid] + uuids = self.filter_existing_uuids(uuids) + # group by table, then save appropriately # by_table; convert a dict of {uuid: obj} to {table: {uuid: obj}} get_table_name = lambda uuid, obj_: self.class_info[obj_].table - by_table = tools.dict_group_by(uuids, key_extract=get_table_name) # check default table for things to register; register them From 902dcff4a2cf0189cc017380dd448f32e8a0ceb4 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 19 Sep 2019 15:59:56 +0200 Subject: [PATCH 212/464] Add callable codec and tests --- .../experimental/storage/callable_codec.py | 122 +++++++++++++++++ .../experimental/storage/storage.py | 1 - .../storage/test_callable_codec.py | 124 ++++++++++++++++++ 3 files changed, 246 insertions(+), 1 deletion(-) create mode 100644 openpathsampling/experimental/storage/callable_codec.py create mode 100644 openpathsampling/experimental/storage/test_callable_codec.py diff --git a/openpathsampling/experimental/storage/callable_codec.py b/openpathsampling/experimental/storage/callable_codec.py new file mode 100644 index 000000000..8baffe470 --- /dev/null +++ b/openpathsampling/experimental/storage/callable_codec.py @@ -0,0 +1,122 @@ +import types +import dis +import dill +from .serialization_helpers import has_uuid, do_import + +GLOBALS_ERROR_MESSAGE=""" +The function you tried to save uses information from global scope, which +can't be saved. This most frequently occurs when you use a package imported +outside the function. For more information, see: +http://openpathsampling.org/latest/topics/creating_collective_variables.html + +The following globals need to be defined in your function, or passed in as a +parameter to your function: +""" + +UNKNOWN_MODULES_ERROR_MESSAGE=""" +The function you tried to save imports from unregistered modules, and your +code requires only registered modules, in order to prevent users from +loading modules that won't be available in other environements. You can +either register the unknown modules with ???, or you can turn this off +entirely with ???. + +The following modules are not registered: +""" + +class CallableCodec(object): + def __init__(self, settings=None): + defaults = { + 'only_allow_required_modules': False, + 'required_modules': [], + 'safemode': False + } + if settings is None: + settings = defaults + else: + for key in defaults: + # use the original if it exists, otherwise use default + settings[key] = settings.get(key, defaults[key]) + + self.settings = settings + + @staticmethod + def _error_message(message, problem_names): + output = "" + if problem_names: + bulleted = "\n".join([" " + m for m in problem_names]) + output = message + bulleted + return output + + @property + def only_allow_required_modules(self): + return self.settings['only_allow_required_modules'] + + @only_allow_required_modules.setter + def only_allow_required_modules(self, value): + self.settings['only_allow_required_modules'] = value + + @property + def required_modules(self): + return self.settings['required_modules'] + + @required_modules.setter + def required_modules(self, value): + self.settings['required_modules'] = value + + @property + def safemode(self): + return self.settings['safemode'] + + @safemode.setter + def safemode(self, value): + self.settings['safemode'] = value + + def default(self, obj): + if not has_uuid(obj) and callable(obj): + errors = "" + dct = {} + # Case 1: this is a function from one of our requirements + root_mod = obj.__module__.split('.')[0] + if root_mod in self.required_modules: + return { + '__module__': obj.__module__, + '__callable_name__': obj.__name__ + } + + # Case 2: arbitrary function + all_globals = dill.detect.globalvars(obj) + errors += self._error_message(GLOBALS_ERROR_MESSAGE, + set(all_globals.keys())) + + if self.only_allow_required_modules: + imported = [instr.argval + for instr in dis.get_instructions(obj) + if "IMPORT" in instr.opname] + forbidden_imports = [mod for mod in imported + if mod not in self.required_modules] + errors += self._error_message(UNKNOWN_MODULES_ERROR_MESSAGE, + forbidden_imports) + + if errors: + raise RuntimeError("Cannot store function! \n\n", errors) + + return { + '__callable_name__': obj.__name__, + '_dilled': dill.dumps(obj) + } + return obj + + def object_hook(self, dct): + if '__callable_name__' in dct: + if self.safemode: + func = None + elif '__module__' in dct: + func = do_import(dct['__module__'], dct['__callable_name__']) + elif '_dilled' in dct: + func = dill.loads(dct['_dilled']) + else: # pragma: no cover + raise RuntimeError("Error reloading ", + dct['__callable_name__']) + return func + + return dct diff --git a/openpathsampling/experimental/storage/storage.py b/openpathsampling/experimental/storage/storage.py index 096e08104..83788518a 100644 --- a/openpathsampling/experimental/storage/storage.py +++ b/openpathsampling/experimental/storage/storage.py @@ -135,7 +135,6 @@ def register_schema(self, schema, class_info_list, self._storage_tables[table] = StorageTable(self, table) # self.serialization.register_serialization(schema, self.class_info) - def register_from_instance(self, lookup, obj): raise NotImplementedError("No way to register from an instance") diff --git a/openpathsampling/experimental/storage/test_callable_codec.py b/openpathsampling/experimental/storage/test_callable_codec.py new file mode 100644 index 000000000..e414cb36a --- /dev/null +++ b/openpathsampling/experimental/storage/test_callable_codec.py @@ -0,0 +1,124 @@ +import pytest +from .callable_codec import * +import dill + +import numpy as np + +_global_var = 0 + +def _known_module_func(self): + import foo + return foo.bar() + +def _globals_using_function(self): + return _global_var + +class TestCallableCodec(object): + def setup(self): + self.codec = CallableCodec() + self.functions = { + 'generic': lambda x: x.xyz[0][0], + 'known_module': np.sum, + 'known_submodule': np.linalg.matrix_power, + 'use_known_module': _known_module_func, + 'use_globals': _globals_using_function, + } + dilled = {key: dill.dumps(func) + for key, func in self.functions.items()} + self.dcts = { + 'generic': { + '__callable_name__': '', + '_dilled': dilled['generic'] + }, + 'known_module': { + '__module__': 'numpy', + '__callable_name__': 'sum' + }, + 'known_submodule': { + '__module__': 'numpy.linalg', + '__callable_name__': 'matrix_power' + }, + 'use_known_module': { + '__callable_name__': '_known_module_func', + '_dilled': dilled['use_known_module'] + } + # use_globals never gets serialized + } + + @pytest.mark.parametrize( + 'func,known_modules,allow_unknown', + [ + ('generic', [], True), + ('known_module', ['numpy'], True), + ('use_known_module', ['foo'], True), + ('use_known_module', [], False), + ], + ids=[ + 'generic', + 'known_module_func', + 'use_known_module-allowed', + 'use_unknown_module-allowed', + ] + ) + def test_default_allowed(self, func, known_modules, allow_unknown): + self.codec.required_modules = known_modules + self.codec.only_allow_required_modules = allow_unknown + results = self.codec.default(self.functions[func]) + # up to here was the smoke test; now we validate + assert results == self.dcts[func] + + def test_default_error_use_unknown(self): + self.codec.required_modules = [] + self.codec.only_allow_required_modules = True + with pytest.raises(RuntimeError): + results = self.codec.default(self.functions['use_known_module']) + + def test_default_error_unknown_module_function(self): + self.codec.required_modules = [] + self.codec.only_allow_required_modules = True + with pytest.raises(RuntimeError): + results = self.codec.default(self.functions['known_module']) + + def test_default_error_use_globals(self): + with pytest.raises(RuntimeError): + results = self.codec.default(self.functions['use_globals']) + + def test_default_not_mine(self): + obj = 'foo' + assert self.codec.default(obj) is obj + + # TODO: tests for object_hook + @pytest.mark.parametrize('safe', ['safemode', 'normal']) + @pytest.mark.parametrize('func', ['generic', 'known_module', + 'known_submodule', + 'use_known_module']) + def test_object_hook(self, func, safe): + safemode = {'safemode': True, 'normal': False}[safe] + self.codec.known_modules = ['numpy'] + self.codec.safemode = safemode + result = self.codec.object_hook(self.dcts[func]) + # up to here is smoke test; now we validate + expected = None if safemode else self.functions[func] + + if not safemode and func != 'generic': + # can't test the recreation of the lambda + assert result == expected + + def test_object_hook_not_mine(self): + dct = {'foo': 'bar'} + assert self.codec.object_hook(dct) is dct + + def test_settings_properties_setters(self): + defaults = {'only_allow_required_modules': False, + 'required_modules': [], + 'safemode': False} + assert self.codec.settings == defaults + custom = {'only_allow_required_modules': True, + 'required_modules': ['numpy'], + 'safemode': True} + codec = CallableCodec(custom) + assert codec.settings == custom + for key, value in custom.items(): + setattr(self.codec, key, value) + + assert self.codec.settings == custom From e622f8a8bfeb915e75c203c639dfafa6f27d8c59 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Fri, 20 Sep 2019 15:39:23 +0200 Subject: [PATCH 213/464] DOCS: Networks -> Networks and Transitions --- docs/data_objects.rst | 4 ++-- docs/ensemble.rst | 4 ++-- docs/examples/index.rst | 4 ++-- docs/network.rst | 33 ++++++++++++++++++++++++++------- 4 files changed, 32 insertions(+), 13 deletions(-) diff --git a/docs/data_objects.rst b/docs/data_objects.rst index 6a57dea3b..feb4117fd 100644 --- a/docs/data_objects.rst +++ b/docs/data_objects.rst @@ -1,7 +1,7 @@ .. _data-object-api: -Data Objects API -================ +Data Objects +============ This describes some of the objects used to describe data. Note that :class:`Trajectories <.Trajectory>` and :class:`Snapshots <.Snapshot>` are diff --git a/docs/ensemble.rst b/docs/ensemble.rst index 00b0d71de..3ad6330d3 100644 --- a/docs/ensemble.rst +++ b/docs/ensemble.rst @@ -2,8 +2,8 @@ .. currentmodule:: openpathsampling.ensemble -Ensembles API -============= +Ensembles +========= The concept of the path ensemble, the (appropriately weighted) set of trajectories satisfying particular conditions, is at the heart of path diff --git a/docs/examples/index.rst b/docs/examples/index.rst index 1f808a381..b1e2e7604 100644 --- a/docs/examples/index.rst +++ b/docs/examples/index.rst @@ -10,9 +10,9 @@ Each subsection of the pages linked below is a notebook. To open these notebooks in a "live" session and execute the documentation interactively, open them using ``jupyter notebook NOTEBOOK_NAME.ipynb``. -If you installed `openpathsampling` from source, you can find these in the +If you installed OpenPathSampling from source, you can find these in the ``examples`` directory within the root ``openpathsampling`` directory. You -cn also find them in our `GitHub repository +can also find them in our `GitHub repository `_. .. note:: It's a *lot* more fun to run these examples live than to just read diff --git a/docs/network.rst b/docs/network.rst index 638890b1e..5c47f9dfd 100644 --- a/docs/network.rst +++ b/docs/network.rst @@ -1,13 +1,13 @@ .. _network: -.. currentmodule:: openpathsampling.high_level.network -Networks -======== +Networks and Transitions +======================== Networks are an easy way to set up ensembles for path sampling calculations, and to retain a context for those ensembles when analyzing the results of a -simulation. +simulation. Networks are made up of multiple transitions, where each +transition represents a directed :math:`A\to B` reaction. Many path sampling methods (transition interface sampling as one example) require sampling multiple path ensembles, and then results from those path @@ -24,10 +24,10 @@ A longer discussion of networks, and the associated concept of transitions, can be found in the file `Transitions and Networks `_. +.. currentmodule:: openpathsampling.high_level.network - -Abstract class --------------- +Abstract network class +---------------------- .. autosummary:: :toctree: api/generated @@ -48,3 +48,22 @@ TIS networks MSTISNetwork MISTISNetwork + +----- + +Transitions +----------- + +.. currentmodule:: openpathsampling.high_level.transition + +In general, users don't need to directly create a :class:`.Transition` -- +the network acts as a factory that creates them. + +.. autosummary:: + :toctree: api/generated + + Transition + TPSTransition + FixedLengthTPSTransition + TISTransition + From 9dab00bd4597f33f1ecf036a5ec003c0583289ed Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Fri, 20 Sep 2019 17:34:02 +0200 Subject: [PATCH 214/464] Reorder API section for future better organization --- docs/api_sections.rst | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/api_sections.rst b/docs/api_sections.rst index 1d9bb4baa..47eafa283 100644 --- a/docs/api_sections.rst +++ b/docs/api_sections.rst @@ -10,17 +10,17 @@ OpenPathSampling API collectivevariable volume ensemble + pathmover + engines/index + storage + pathsimulator shooting snapshot_modifiers - pathmover movestrategy - pathsimulator - storage - treemixin network - engines/index netcdfplus/index numerics + treemixin tis_analysis .. snapshot_features From 48aac620a83555f06146af388396ef48c8499b65 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Sat, 21 Sep 2019 16:19:35 +0200 Subject: [PATCH 215/464] open files bug with debugging Leaving a version of this with all the debug info included. I'll remove the excess debugging, but it may be useful for future debugging issues. --- openpathsampling/engines/external_engine.py | 45 ++++++++++++-- openpathsampling/engines/gromacs/engine.py | 65 ++++++++++++++------- 2 files changed, 86 insertions(+), 24 deletions(-) diff --git a/openpathsampling/engines/external_engine.py b/openpathsampling/engines/external_engine.py index 40a336074..895814889 100644 --- a/openpathsampling/engines/external_engine.py +++ b/openpathsampling/engines/external_engine.py @@ -17,6 +17,35 @@ logger = logging.getLogger(__name__) +def close_file_descriptors(basename): + """Close file descriptors for the given filename. + + There may be instances when the file reading leaves a file open (like if + an error was encountered while reading the file). This closes any open + file descriptors. + """ + len_name = len(basename) + fds = [p for p in psutil.Process().open_files() + if p.path[-len_name:] == basename] + for fd in fds: + logger.debug("Closing " + fd.path) + open(fd.fd).close() + + +def _debug_open_files(where=None, ext=".trr"): + len_ext = len(ext) + if logger.isEnabledFor(logging.DEBUG): + logger.debug("REACHED " + where) + open_trrs = [p.path for p in psutil.Process().open_files() + if ext == p.path[-len_ext:]] + if len(open_trrs) > 0: + message = [] + for open_trr in open_trrs: + loc_msg = "Open file in {}: {}".format(str(where), open_trr) + message.append(loc_msg) + + raise Exception("\n".join(message)) + class ExternalEngine(DynamicsEngine): """ Generic object to handle arbitrary external engines. @@ -62,11 +91,14 @@ def current_snapshot(self, snap): def generate_next_frame(self): # should be completely general next_frame_found = False - logger.debug("Looking for frame") + _debug_open_files("looking") + logger.debug("Looking for frame %d", self.n_frames_since_start+1) while not next_frame_found: try: + _debug_open_files('before read_frame_from_file') next_frame = self.read_frame_from_file(self.output_file, self.frame_num) + _debug_open_files('after read_frame_from_file') except IOError: # maybe the file doesn't exist if self.proc.is_running(): @@ -81,11 +113,12 @@ def generate_next_frame(self): elif next_frame is None: if not self.proc.is_running(): raise RuntimeError("External engine died unexpectedly") - logger.info("Sleeping for {:.2f}ms".format(self.sleep_ms)) + logger.debug("Sleeping for {:.2f}ms".format(self.sleep_ms)) time.sleep(self.sleep_ms/1000.0) elif isinstance(next_frame, BaseSnapshot): # success self.n_frames_since_start += 1 - logger.info("Found frame") + logger.debug("Found frame %d", self.n_frames_since_start) + _debug_open_files("found") self.current_snapshot = next_frame next_frame_found = True self.frame_num += 1 @@ -104,10 +137,12 @@ def start(self, snapshot=None): self.frame_num = 0 self.n_frames_since_start = 0 self.set_filenames(self._traj_num) + _debug_open_files("before write_frame_to_file") self.write_frame_to_file(self.input_file, self.current_snapshot, "w") - + _debug_open_files("before prepare") self.prepare() + _debug_open_files("before cmd") cmd = shlex.split(self.engine_command()) self.start_time = time.time() try: @@ -125,6 +160,7 @@ def start(self, snapshot=None): def stop(self, trajectory): super(ExternalEngine, self).stop(trajectory) + _debug_open_files("stop") logger.info("total_time {:.4f}".format(time.time() - self.start_time)) proc = self.who_to_kill() logger.info("About to send signal %s to %s", str(self.killsig), @@ -134,6 +170,7 @@ def stop(self, trajectory): proc.wait() # wait for the zombie to die logger.debug("Zombie should be dead") self.cleanup() + _debug_open_files("cleaned up") # FROM HERE ARE THE FUNCTIONS TO OVERRIDE IN SUBCLASSES: def read_frame_from_file(self, filename, frame_num): diff --git a/openpathsampling/engines/gromacs/engine.py b/openpathsampling/engines/gromacs/engine.py index bad4e5743..d2dcd9a67 100644 --- a/openpathsampling/engines/gromacs/engine.py +++ b/openpathsampling/engines/gromacs/engine.py @@ -26,6 +26,10 @@ # TODO: all gmx_features should be moved to external_md; along with the # snapshot +from openpathsampling.engines.external_engine import ( + _debug_open_files, close_file_descriptors +) + @features.base.attach_features([ features.engine, gmx_features.coordinates, @@ -265,14 +269,19 @@ def read_frame_data(self, filename, frame_num): # f = self._file # do we need to reopen the TRR each time to avoid problems with the # fiel length changing? + _debug_open_files('read_frame_data (start)') trr = TRRTrajectoryFile(filename) f = trr - logging.debug("Reading file %s frame %d", - filename, frame_num) - logging.debug("File length: %d", len(filename)) - f.seek(offset=frame_num) - data = f._read(n_frames=1, atom_indices=None, get_velocities=True) - trr.close() # needed ? + # logger.debug("Reading file %s frame %d (of %d)", + # filename, frame_num, len(f)) + # logger.debug("File length: %d", len(f)) + try: + f.seek(offset=frame_num) + data = f._read(n_frames=1, atom_indices=None, get_velocities=True) + finally: + trr.close() + _debug_open_files('read_frame_data (finish)') + return data[0][0], data[5][0], data[3][0] def read_frame_from_file(self, file_name, frame_num): @@ -282,20 +291,31 @@ def read_frame_from_file(self, file_name, frame_num): # basename should be in the format [0-9]+\.trr (as set by the # trajectory_filename method) file_number = int(basename.split('.')[0]) + _debug_open_files('before reading') try: xyz, vel, box = self.read_frame_data(file_name, frame_num) - except (IndexError, OSError, IOError): + except (IndexError, OSError, IOError) as e: # this means that no such frame exists yet, so we return None # IndexError in older version, OSError more recently (specific # MDTraj error) + logger.debug("Expected error caught: " + str(e)) + close_file_descriptors(basename) + _debug_open_files('read_frame_data gave error') return None except RuntimeError as e: # TODO: matches "TRR read error" + logger.debug("Received partial frame for %s %d", file_name, + frame_num+1) + _debug_open_files('read_frame data partial') return 'partial' else: - return ExternalMDSnapshot(file_name=file_name, - file_position=frame_num, - engine=self) + _debug_open_files('creating snapshot') + logger.debug("Creating snapshot") + snapshot = ExternalMDSnapshot(file_name=file_name, + file_position=frame_num, + engine=self) + _debug_open_files('created snapshot') + return snapshot def write_frame_to_file(self, filename, snapshot, mode='w'): if os.path.isfile(filename): @@ -304,16 +324,20 @@ def write_frame_to_file(self, filename, snapshot, mode='w'): # you don't want them. raise RuntimeError("File " + str(filename) + " exists. " + "Preventing overwrite.") - trr = TRRTrajectoryFile(filename, mode) - # type control before passing things to Cython code - xyz = np.asarray([snapshot.xyz], dtype=np.float32) - time = np.asarray([0.0], dtype=np.float32) - step = np.asarray([0], dtype=np.int32) - box = np.asarray([snapshot.box_vectors], dtype=np.float32) - lambd = np.asarray([0.0], dtype=np.float32) - vel = np.asarray([snapshot.velocities], dtype=np.float32) - trr._write(xyz, time, step, box, lambd, vel) - trr.close() + try: + # type control before passing things to Cython code + xyz = np.asarray([snapshot.xyz], dtype=np.float32) + time = np.asarray([0.0], dtype=np.float32) + step = np.asarray([0], dtype=np.int32) + box = np.asarray([snapshot.box_vectors], dtype=np.float32) + lambd = np.asarray([0.0], dtype=np.float32) + vel = np.asarray([snapshot.velocities], dtype=np.float32) + trr = TRRTrajectoryFile(filename, mode) + trr._write(xyz, time, step, box, lambd, vel) + finally: + trr.close() + close_file_descriptors(filename) + _debug_open_files("end of write_frame_to_file") def trajectory_filename(self, number): trr_dir = self.prefix + "_trr/" @@ -339,6 +363,7 @@ def prepare(self): # pragma: no cover # coverage ignored b/c Travis won't have gmx. However, we do have a # test that covers this if gmx is present (otherwise it is skipped) cmd = self.grompp_command + _debug_open_files("prepare") logger.info(cmd) run_cmd = shlex.split(cmd) return_code = psutil.Popen(run_cmd, preexec_fn=os.setsid).wait() From 4b30a3d8eb31133c2c6c15394e8f17c1cfde5de6 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Sat, 21 Sep 2019 17:04:16 +0200 Subject: [PATCH 216/464] Remove open file debugging --- openpathsampling/engines/external_engine.py | 9 --------- openpathsampling/engines/gromacs/engine.py | 9 --------- 2 files changed, 18 deletions(-) diff --git a/openpathsampling/engines/external_engine.py b/openpathsampling/engines/external_engine.py index 895814889..8726171c6 100644 --- a/openpathsampling/engines/external_engine.py +++ b/openpathsampling/engines/external_engine.py @@ -91,14 +91,11 @@ def current_snapshot(self, snap): def generate_next_frame(self): # should be completely general next_frame_found = False - _debug_open_files("looking") logger.debug("Looking for frame %d", self.n_frames_since_start+1) while not next_frame_found: try: - _debug_open_files('before read_frame_from_file') next_frame = self.read_frame_from_file(self.output_file, self.frame_num) - _debug_open_files('after read_frame_from_file') except IOError: # maybe the file doesn't exist if self.proc.is_running(): @@ -118,7 +115,6 @@ def generate_next_frame(self): elif isinstance(next_frame, BaseSnapshot): # success self.n_frames_since_start += 1 logger.debug("Found frame %d", self.n_frames_since_start) - _debug_open_files("found") self.current_snapshot = next_frame next_frame_found = True self.frame_num += 1 @@ -137,12 +133,9 @@ def start(self, snapshot=None): self.frame_num = 0 self.n_frames_since_start = 0 self.set_filenames(self._traj_num) - _debug_open_files("before write_frame_to_file") self.write_frame_to_file(self.input_file, self.current_snapshot, "w") - _debug_open_files("before prepare") self.prepare() - _debug_open_files("before cmd") cmd = shlex.split(self.engine_command()) self.start_time = time.time() try: @@ -160,7 +153,6 @@ def start(self, snapshot=None): def stop(self, trajectory): super(ExternalEngine, self).stop(trajectory) - _debug_open_files("stop") logger.info("total_time {:.4f}".format(time.time() - self.start_time)) proc = self.who_to_kill() logger.info("About to send signal %s to %s", str(self.killsig), @@ -170,7 +162,6 @@ def stop(self, trajectory): proc.wait() # wait for the zombie to die logger.debug("Zombie should be dead") self.cleanup() - _debug_open_files("cleaned up") # FROM HERE ARE THE FUNCTIONS TO OVERRIDE IN SUBCLASSES: def read_frame_from_file(self, filename, frame_num): diff --git a/openpathsampling/engines/gromacs/engine.py b/openpathsampling/engines/gromacs/engine.py index d2dcd9a67..12f143b5a 100644 --- a/openpathsampling/engines/gromacs/engine.py +++ b/openpathsampling/engines/gromacs/engine.py @@ -269,7 +269,6 @@ def read_frame_data(self, filename, frame_num): # f = self._file # do we need to reopen the TRR each time to avoid problems with the # fiel length changing? - _debug_open_files('read_frame_data (start)') trr = TRRTrajectoryFile(filename) f = trr # logger.debug("Reading file %s frame %d (of %d)", @@ -280,7 +279,6 @@ def read_frame_data(self, filename, frame_num): data = f._read(n_frames=1, atom_indices=None, get_velocities=True) finally: trr.close() - _debug_open_files('read_frame_data (finish)') return data[0][0], data[5][0], data[3][0] @@ -291,7 +289,6 @@ def read_frame_from_file(self, file_name, frame_num): # basename should be in the format [0-9]+\.trr (as set by the # trajectory_filename method) file_number = int(basename.split('.')[0]) - _debug_open_files('before reading') try: xyz, vel, box = self.read_frame_data(file_name, frame_num) except (IndexError, OSError, IOError) as e: @@ -300,21 +297,17 @@ def read_frame_from_file(self, file_name, frame_num): # MDTraj error) logger.debug("Expected error caught: " + str(e)) close_file_descriptors(basename) - _debug_open_files('read_frame_data gave error') return None except RuntimeError as e: # TODO: matches "TRR read error" logger.debug("Received partial frame for %s %d", file_name, frame_num+1) - _debug_open_files('read_frame data partial') return 'partial' else: - _debug_open_files('creating snapshot') logger.debug("Creating snapshot") snapshot = ExternalMDSnapshot(file_name=file_name, file_position=frame_num, engine=self) - _debug_open_files('created snapshot') return snapshot def write_frame_to_file(self, filename, snapshot, mode='w'): @@ -337,7 +330,6 @@ def write_frame_to_file(self, filename, snapshot, mode='w'): finally: trr.close() close_file_descriptors(filename) - _debug_open_files("end of write_frame_to_file") def trajectory_filename(self, number): trr_dir = self.prefix + "_trr/" @@ -363,7 +355,6 @@ def prepare(self): # pragma: no cover # coverage ignored b/c Travis won't have gmx. However, we do have a # test that covers this if gmx is present (otherwise it is skipped) cmd = self.grompp_command - _debug_open_files("prepare") logger.info(cmd) run_cmd = shlex.split(cmd) return_code = psutil.Popen(run_cmd, preexec_fn=os.setsid).wait() From 5b4a34a28bfa3917188dd56cad241ab1d5117938 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Sun, 22 Sep 2019 15:09:16 +0200 Subject: [PATCH 217/464] possible fix for IndexError bug will do a long run overnight to see if it is really fixed --- examples/gromacs/AD_tps_2a_run_flex.ipynb | 803 +++----------------- openpathsampling/engines/external_engine.py | 5 + openpathsampling/engines/gromacs/engine.py | 29 +- 3 files changed, 137 insertions(+), 700 deletions(-) diff --git a/examples/gromacs/AD_tps_2a_run_flex.ipynb b/examples/gromacs/AD_tps_2a_run_flex.ipynb index e60440dac..fbc0ef060 100644 --- a/examples/gromacs/AD_tps_2a_run_flex.ipynb +++ b/examples/gromacs/AD_tps_2a_run_flex.ipynb @@ -58,18 +58,24 @@ " 'gmx_executable': 'gmx -nobackup ',\n", " 'snapshot_timestep': 0.02\n", "}\n", + "# we create a new engine because we want to save in new directories\n", + "# (prod instead of equil)\n", "engine = ops_gmx.Engine(gro=\"conf.gro\",\n", " mdp=\"md.mdp\",\n", " top=\"topol.top\",\n", " options=options,\n", " base_dir=\".\",\n", " prefix=\"prod\").named(\"production\")\n", - "C_7eq = old_storage.volumes.find('C_7eq')\n", - "alpha_R = old_storage.volumes.find('alpha_R')\n", - "traj = old_storage.samplesets[len(old_storage.samplesets)-1][0].trajectory\n", - "phi = old_storage.cvs.find('phi')\n", - "psi = old_storage.cvs.find('psi')\n", - "template = old_storage.snapshots[0]" + "\n", + "# for these, we just load the ones we used to create the \n", + "C_7eq = old_storage.volumes['C_7eq']\n", + "alpha_R = old_storage.volumes['alpha_R']\n", + "final_step = old_storage.steps[-1]\n", + "traj = final_step.active[0].trajectory\n", + "phi = old_storage.cvs['phi']\n", + "psi = old_storage.cvs['psi']\n", + "\n", + "template = traj[0] # any snapshot is fine" ] }, { @@ -80,7 +86,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 5, @@ -176,30 +182,37 @@ " sample_set=initial_conditions)" ] }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Note: 10000 steps will take a long time. If you just want to run a little bit, reduce this number." - ] - }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ + "# This sets up logging, to provide additional information about what is happening\n", + "\n", "import logging\n", "import sys\n", "\n", - "root = logging.getLogger('openpathsampling.engines')\n", - "root.setLevel(logging.DEBUG)\n", + "# use logging.INFO for basic info; logging.DEBUG for details\n", + "log_level = logging.INFO\n", "\n", + "root = logging.getLogger('openpathsampling.engines')\n", + "root.setLevel(logging.DEBUG) # let the handlers sort it out\n", "ch = logging.StreamHandler(sys.stdout)\n", - "ch.setLevel(logging.DEBUG)\n", - "#formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')\n", - "#ch.setFormatter(formatter)\n", - "root.addHandler(ch)" + "ch.setLevel(log_level)\n", + "root.addHandler(ch)\n", + "\n", + "# uncomment the following to write detailed debug info to a file\n", + "#fh = logging.FileHandler('debug_details.log')\n", + "#fh.setLevel(logging.DEBUG)\n", + "#root.addHandler(fh)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Note: 1000 steps will take a long time. If you just want to run a little bit, reduce this number." ] }, { @@ -213,654 +226,19 @@ "name": "stdout", "output_type": "stream", "text": [ - "Working on Monte Carlo cycle number 1000\n", - "Running for 43 minutes 51 seconds - 2.63 seconds per step\n", - "Estimated time remaining: 2 seconds\n", - "Starting trajectory\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:openpathsampling.engines.dynamics_engine:Starting trajectory\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "gmx -nobackup grompp -c ./conf.gro -f ./md.mdp -p ./topol.top -t ./initial_frame.trr \n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:openpathsampling.engines.gromacs.engine:gmx -nobackup grompp -c ./conf.gro -f ./md.mdp -p ./topol.top -t ./initial_frame.trr \n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "gmx -nobackup mdrun -s topol.tpr -o ./prod_trr/0001000.trr -e ./prod_edr/0001000.edr -g ./prod_log/0001000.log \n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:openpathsampling.engines.external_engine:gmx -nobackup mdrun -s topol.tpr -o ./prod_trr/0001000.trr -e ./prod_edr/0001000.edr -g ./prod_log/0001000.log \n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Started engine: psutil.Popen(pid=7490, name='gmx', started='03:46:29')\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:openpathsampling.engines.external_engine:Started engine: psutil.Popen(pid=7490, name='gmx', started='03:46:29')\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Looking for frame\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "DEBUG:openpathsampling.engines.external_engine:Looking for frame\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Sleeping for 66.06ms\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:openpathsampling.engines.external_engine:Sleeping for 66.06ms\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Sleeping for 66.06ms\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:openpathsampling.engines.external_engine:Sleeping for 66.06ms\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Sleeping for 66.06ms\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:openpathsampling.engines.external_engine:Sleeping for 66.06ms\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Sleeping for 66.06ms\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:openpathsampling.engines.external_engine:Sleeping for 66.06ms\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Sleeping for 66.06ms\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:openpathsampling.engines.external_engine:Sleeping for 66.06ms\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Sleeping for 66.06ms\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:openpathsampling.engines.external_engine:Sleeping for 66.06ms\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Sleeping for 66.06ms\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:openpathsampling.engines.external_engine:Sleeping for 66.06ms\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Sleeping for 66.06ms\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:openpathsampling.engines.external_engine:Sleeping for 66.06ms\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Found frame\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:openpathsampling.engines.external_engine:Found frame\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Through frame: 0\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:openpathsampling.engines.dynamics_engine:Through frame: 0\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Looking for frame\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "DEBUG:openpathsampling.engines.external_engine:Looking for frame\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Sleeping for 604.38ms\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:openpathsampling.engines.external_engine:Sleeping for 604.38ms\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Found frame\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:openpathsampling.engines.external_engine:Found frame\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Looking for frame\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "DEBUG:openpathsampling.engines.external_engine:Looking for frame\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Found frame\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:openpathsampling.engines.external_engine:Found frame\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Looking for frame\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "DEBUG:openpathsampling.engines.external_engine:Looking for frame\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Found frame\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:openpathsampling.engines.external_engine:Found frame\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Looking for frame\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "DEBUG:openpathsampling.engines.external_engine:Looking for frame\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Found frame\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:openpathsampling.engines.external_engine:Found frame\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Looking for frame\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "DEBUG:openpathsampling.engines.external_engine:Looking for frame\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Found frame\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:openpathsampling.engines.external_engine:Found frame\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Looking for frame\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "DEBUG:openpathsampling.engines.external_engine:Looking for frame\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Found frame\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:openpathsampling.engines.external_engine:Found frame\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Looking for frame\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "DEBUG:openpathsampling.engines.external_engine:Looking for frame\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Found frame\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:openpathsampling.engines.external_engine:Found frame\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Looking for frame\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "DEBUG:openpathsampling.engines.external_engine:Looking for frame\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Found frame\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:openpathsampling.engines.external_engine:Found frame\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Looking for frame\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "DEBUG:openpathsampling.engines.external_engine:Looking for frame\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Found frame\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:openpathsampling.engines.external_engine:Found frame\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Looking for frame\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "DEBUG:openpathsampling.engines.external_engine:Looking for frame\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Found frame\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:openpathsampling.engines.external_engine:Found frame\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Through frame: 10\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:openpathsampling.engines.dynamics_engine:Through frame: 10\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Looking for frame\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "DEBUG:openpathsampling.engines.external_engine:Looking for frame\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Found frame\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:openpathsampling.engines.external_engine:Found frame\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Looking for frame\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "DEBUG:openpathsampling.engines.external_engine:Looking for frame\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Found frame\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:openpathsampling.engines.external_engine:Found frame\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "total_time 1.3731\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:openpathsampling.engines.external_engine:total_time 1.3731\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "About to send signal Signals.SIGTERM to psutil.Popen(pid=7490, name='gmx', started='03:46:29')\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:openpathsampling.engines.external_engine:About to send signal Signals.SIGTERM to psutil.Popen(pid=7490, name='gmx', started='03:46:29')\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Signal has been sent\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "DEBUG:openpathsampling.engines.external_engine:Signal has been sent\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Zombie should be dead\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "DEBUG:openpathsampling.engines.external_engine:Zombie should be dead\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Finished trajectory, length: 13\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:openpathsampling.engines.dynamics_engine:Finished trajectory, length: 13\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "DONE! Completed 1000 Monte Carlo cycles.\n" + "Working on Monte Carlo cycle number 10\n", + "Running for 2 minutes 36 seconds - 17.39 seconds per step\n", + "Estimated time remaining: 17 seconds\n", + "Starting trajectory\n", + "gmx -nobackup grompp -c ./conf.gro -f ./md.mdp -p ./topol.top -t ./initial_frame.trr \n", + "gmx -nobackup mdrun -s topol.tpr -o ./prod_trr/0000010.trr -e ./prod_edr/0000010.edr -g ./prod_log/0000010.log \n", + "Started engine: psutil.Popen(pid=71684, name='gmx', started='15:07:35')\n", + "Through frame: 0\n", + "Through frame: 10\n", + "total_time 6.7042\n", + "About to send signal Signals.SIGTERM to psutil.Popen(pid=71684, name='gmx', started='15:07:35')\n", + "Finished trajectory, length: 21\n", + "DONE! Completed 10 Monte Carlo cycles.\n" ] } ], @@ -869,6 +247,27 @@ "sampler.run(1000)" ] }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "# IF YOU HAVE AN ERROR: uncomment and run\n", + "# engine.stop(None)\n", + "# (this will stop the Gromacs process)" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [], + "source": [ + "# IF YOU RE-RUN, DELETE EXISTING FILES AND RESTART THE NOTEBOOK\n", + "#!rm -rf prod_trr prod_log prod_edr" + ] + }, { "cell_type": "markdown", "metadata": { @@ -882,32 +281,10 @@ "cell_type": "code", "execution_count": 15, "metadata": {}, - "outputs": [ - { - "ename": "RuntimeError", - "evalue": "NetCDF: Not a valid ID", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mRuntimeError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mstorage\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mclose\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", - "\u001b[0;32mnetCDF4/_netCDF4.pyx\u001b[0m in \u001b[0;36mnetCDF4._netCDF4.Dataset.close\u001b[0;34m()\u001b[0m\n", - "\u001b[0;32mnetCDF4/_netCDF4.pyx\u001b[0m in \u001b[0;36mnetCDF4._netCDF4.Dataset._close\u001b[0;34m()\u001b[0m\n", - "\u001b[0;32mnetCDF4/_netCDF4.pyx\u001b[0m in \u001b[0;36mnetCDF4._netCDF4._ensure_nc_success\u001b[0;34m()\u001b[0m\n", - "\u001b[0;31mRuntimeError\u001b[0m: NetCDF: Not a valid ID" - ] - } - ], + "outputs": [], "source": [ "storage.close()" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] } ], "metadata": { @@ -926,7 +303,49 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.2" + "version": "3.7.3" + }, + "toc": { + "base_numbering": 1, + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": true, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": false + }, + "varInspector": { + "cols": { + "lenName": 16, + "lenType": 16, + "lenVar": 40 + }, + "kernels_config": { + "python": { + "delete_cmd_postfix": "", + "delete_cmd_prefix": "del ", + "library": "var_list.py", + "varRefreshCmd": "print(var_dic_list())" + }, + "r": { + "delete_cmd_postfix": ") ", + "delete_cmd_prefix": "rm(", + "library": "var_list.r", + "varRefreshCmd": "cat(var_dic_list()) " + } + }, + "types_to_exclude": [ + "module", + "function", + "builtin_function_or_method", + "instance", + "_Feature" + ], + "window_display": false } }, "nbformat": 4, diff --git a/openpathsampling/engines/external_engine.py b/openpathsampling/engines/external_engine.py index 8726171c6..784f9e5e8 100644 --- a/openpathsampling/engines/external_engine.py +++ b/openpathsampling/engines/external_engine.py @@ -46,6 +46,10 @@ def _debug_open_files(where=None, ext=".trr"): raise Exception("\n".join(message)) +def _debug_snapshot_loading(snapshot): + snapshot.load_details() + snapshot.clear_cache() + class ExternalEngine(DynamicsEngine): """ Generic object to handle arbitrary external engines. @@ -125,6 +129,7 @@ def generate_next_frame(self): elapsed = now - self.start_time time_per_step = elapsed / self.n_frames_since_start self.sleep_ms = time_per_step / n_poll_per_step * 1000.0 + return self.current_snapshot def start(self, snapshot=None): diff --git a/openpathsampling/engines/gromacs/engine.py b/openpathsampling/engines/gromacs/engine.py index 12f143b5a..4486b4991 100644 --- a/openpathsampling/engines/gromacs/engine.py +++ b/openpathsampling/engines/gromacs/engine.py @@ -21,6 +21,7 @@ import os import psutil import shlex +import time import numpy as np # TODO: all gmx_features should be moved to external_md; along with the @@ -72,11 +73,23 @@ def __init__(self, file_name=None, file_position=None, engine=None): def load_details(self): """Cache coords, velocities, box vectors from the external file""" - (xyz, vel, box) = self.engine.read_frame_data(self.file_name, - self.file_position) - self._xyz = xyz - self._velocities = vel - self._box_vectors = box + try: + (xyz, vel, box) = self.engine.read_frame_data( + self.file_name, + self.file_position + ) + except IndexError: + # Out of bounds on buffer access (axis 0) + logger.debug("Exception reading from %s[%d]", self.file_name, + self.file_position) + time.sleep(self.engine.sleep_ms/10000.0) # 1/10 the normal + self.load_details() + except RecursionError: + raise RuntimeError("Unrecoverable error in load_details") + else: + self._xyz = xyz + self._velocities = vel + self._box_vectors = box def set_details(self, xyz, velocities, box_vectors): """Set coords, velocities, and box vectors. @@ -271,8 +284,8 @@ def read_frame_data(self, filename, frame_num): # fiel length changing? trr = TRRTrajectoryFile(filename) f = trr - # logger.debug("Reading file %s frame %d (of %d)", - # filename, frame_num, len(f)) + logger.debug("Reading file %s frame %d (of %d)", + filename, frame_num, len(f)) # logger.debug("File length: %d", len(f)) try: f.seek(offset=frame_num) @@ -295,7 +308,7 @@ def read_frame_from_file(self, file_name, frame_num): # this means that no such frame exists yet, so we return None # IndexError in older version, OSError more recently (specific # MDTraj error) - logger.debug("Expected error caught: " + str(e)) + logger.debug("Expected exception caught: " + str(e)) close_file_descriptors(basename) return None except RuntimeError as e: From 6b5220bb268ba3f924fd2cffd6471ea239611bae Mon Sep 17 00:00:00 2001 From: sroet Date: Mon, 23 Sep 2019 11:57:57 +0200 Subject: [PATCH 218/464] fix DeprecationWarning about invalid escape characters --- openpathsampling/collectivevariable.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/openpathsampling/collectivevariable.py b/openpathsampling/collectivevariable.py index dc1c01bb6..d8bcdfd7b 100644 --- a/openpathsampling/collectivevariable.py +++ b/openpathsampling/collectivevariable.py @@ -164,7 +164,7 @@ def __init__( This function is abstract and need _eval to be implemented to work. Problem is that there are two types of callable functions: 1. direct functions: these can be called and give the wanted value - `c(snapshot, \**kwargs)` would be the typical call + `c(snapshot, **kwargs)` would be the typical call 2. a generating function: a function the creates the callable object `c(**kwargs)(snapshot)` is the typical call. This is usually used for classes. Create the instance and then use it. @@ -392,7 +392,7 @@ class GeneratorCV(CallableCV): """Turn a callable class or function generating a callable object into a CV The class instance will be called with snapshots. The instance itself - will be created using the given \**kwargs. + will be created using the given **kwargs. """ def __init__( @@ -418,7 +418,7 @@ def __init__( kwargs additional arguments which should be given to `c` (for example, the atoms which define a specific distance/angle). Finally an instance - `instance = cls(\**kwargs)` is create when the CV is created and + `instance = cls(**kwargs)` is create when the CV is created and using the CV will call `instance(snapshots)` Notes @@ -457,7 +457,7 @@ class CoordinateGeneratorCV(GeneratorCV): """Turn a callable class or function generating a callable object into a CV The class instance will be called with snapshots. The instance itself - will be created using the given \**kwargs. + will be created using the given **kwargs. """ def __init__( @@ -544,8 +544,8 @@ def __init__(self, scalarize_numpy_singletons : bool, default: True If `True` then arrays of length 1 will be treated as array with one dimension less. e.g. `[[1], [2], [3]]` will be turned into - `[1, 2, 3]`. This is often useful, when you use en external function - from mdtraj to get only a single value. + `[1, 2, 3]`. This is often useful, when you use en external + function from mdtraj to get only a single value. """ @@ -615,7 +615,7 @@ def __init__( kwargs a dictionary of named arguments which should be given to `c` (for example, the atoms which define a specific distance/angle). - Finally an instance `instance = cls(\**kwargs)` is create when the + Finally an instance `instance = cls(**kwargs)` is create when the CV is created and using the CV will call `instance(snapshots)` cv_wrap_numpy_array cv_scalarize_numpy_singletons @@ -700,7 +700,7 @@ def __init__( topology : :obj:`openpathsampling.engines.openmm.MDTopology` the mdtraj topology wrapper from OPS that is used to initialize the featurizer in `pyemma.coordinates.featurizer(topology)` - \*\*kwargs : dict + **kwargs : dict a dictionary of named arguments which should be given to the `featurizer` (for example, the atoms which define a specific distance/angle). From 77ffa2f8251cd113f4ddf7add7d902766ccfa6ee Mon Sep 17 00:00:00 2001 From: sroet Date: Mon, 23 Sep 2019 20:35:18 +0200 Subject: [PATCH 219/464] add backticks to description strings --- openpathsampling/collectivevariable.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/openpathsampling/collectivevariable.py b/openpathsampling/collectivevariable.py index d8bcdfd7b..b09adb591 100644 --- a/openpathsampling/collectivevariable.py +++ b/openpathsampling/collectivevariable.py @@ -392,7 +392,7 @@ class GeneratorCV(CallableCV): """Turn a callable class or function generating a callable object into a CV The class instance will be called with snapshots. The instance itself - will be created using the given **kwargs. + will be created using the given `**kwargs`. """ def __init__( @@ -418,7 +418,7 @@ def __init__( kwargs additional arguments which should be given to `c` (for example, the atoms which define a specific distance/angle). Finally an instance - `instance = cls(**kwargs)` is create when the CV is created and + `instance = cls(**kwargs)` is created when the CV is created and using the CV will call `instance(snapshots)` Notes @@ -457,7 +457,7 @@ class CoordinateGeneratorCV(GeneratorCV): """Turn a callable class or function generating a callable object into a CV The class instance will be called with snapshots. The instance itself - will be created using the given **kwargs. + will be created using the given `**kwargs`. """ def __init__( @@ -615,7 +615,7 @@ def __init__( kwargs a dictionary of named arguments which should be given to `c` (for example, the atoms which define a specific distance/angle). - Finally an instance `instance = cls(**kwargs)` is create when the + Finally an instance `instance = cls(**kwargs)` is created when the CV is created and using the CV will call `instance(snapshots)` cv_wrap_numpy_array cv_scalarize_numpy_singletons @@ -704,7 +704,7 @@ def __init__( a dictionary of named arguments which should be given to the `featurizer` (for example, the atoms which define a specific distance/angle). - Finally an instance ``instance = cls(**kwargs)`` is create when + Finally an instance ``instance = cls(**kwargs)`` is created when the CV is created and using the CV will call ``instance(snapshots)`` From 90f447ae3e146991209e5654c96e002dd5bc9c85 Mon Sep 17 00:00:00 2001 From: sroet Date: Tue, 24 Sep 2019 16:38:05 +0200 Subject: [PATCH 220/464] make unispace --- openpathsampling/collectivevariable.py | 114 ++++++++++++------------- 1 file changed, 56 insertions(+), 58 deletions(-) diff --git a/openpathsampling/collectivevariable.py b/openpathsampling/collectivevariable.py index b09adb591..5e0801ec3 100644 --- a/openpathsampling/collectivevariable.py +++ b/openpathsampling/collectivevariable.py @@ -28,10 +28,10 @@ class CollectiveVariable(PseudoAttribute): A descriptive name of the collectivevariable. It is used in the string representation. cv_time_reversible : bool - If `True` (default) the CV assumes that reversed snapshots have the + If ``True`` (default) the CV assumes that reversed snapshots have the same value. This is the default case when CVs do not depend on momenta reversal. This will speed up computation of CVs by about a factor of - two. In rare cases you might want to set this to `False` + two. In rare cases you might want to set this to ``False`` Attributes ---------- @@ -75,7 +75,8 @@ def __init__( class InVolumeCV(CollectiveVariable): - """ Turn a `Volume` into a collective variable + """Turn a :class:`openpathsampling.volume.Volume` into a collective + variable Attributes ---------- @@ -114,7 +115,7 @@ def _eval(self, items): class CallableCV(CollectiveVariable): - """Turn any callable object into a storable `CollectiveVariable`. + """Turn any callable object into a storable :class:`CollectiveVariable`. Attributes ---------- @@ -140,33 +141,33 @@ def __init__( cv_callable : callable (function or class with __call__) The callable to be used cv_time_reversible - cv_requires_lists : If `True` the internal function always a list of + cv_requires_lists : If ``True`` the internal function always a list of elements instead of single values. It also means that if you call the CV with a list of snapshots a list of snapshot objects will be - passed. If `False` a list of Snapshots like a trajectory will + passed. If ``False`` a list of Snapshots like a trajectory will be passed snapshot by snapshot. cv_wrap_numpy_array : bool, default: False - if `True` the returned array will be wrapped with a - `numpy.array()` which will convert a list of numpy arrays into a + if ``True`` the returned array will be wrapped with a + ``numpy.array()`` which will convert a list of numpy arrays into a single large numpy.array. This is useful for post-processing of larger data since numpy arrays are easier to manipulate. cv_scalarize_numpy_singletons : bool, default: True - If `True` then arrays of length 1 will be treated as array with one - dimension less. e.g. [[1], [2], [3]] will be turned into [1, 2, 3]. - This is often useful, when you use en external function to get only - a single value. - kwargs : **kwargs + If ``True`` then arrays of length 1 will be treated as array with + one dimension less. e.g. [[1], [2], [3]] will be turned into + [1, 2, 3]. This is often useful, when you use en external function + to get only a single value. + **kwargs : kwargs a dictionary with named arguments which should be used - with `c`. Either for class creation or for calling the function + with ``c``. Either for class creation or for calling the function Notes ----- This function is abstract and need _eval to be implemented to work. Problem is that there are two types of callable functions: 1. direct functions: these can be called and give the wanted value - `c(snapshot, **kwargs)` would be the typical call + ``c(snapshot, **kwargs)`` would be the typical call 2. a generating function: a function the creates the callable object - `c(**kwargs)(snapshot)` is the typical call. This is usually used + ``c(**kwargs)(snapshot)`` is the typical call. This is usually used for classes. Create the instance and then use it. This function is very powerful, but need some explanation if you want @@ -201,7 +202,8 @@ def __init__( >>> cv = FunctionCV('my_cv', func, indices=[[4, 6, 8, 10]]) The function will also check if non-standard modules are imported, - which are now `numpy`, `math`, `msmbuilder`, `pandas` and `mdtraj` + which are now ``numpy``, ``math``, ``msmbuilder``, ``pandas`` and + ``mdtraj`` """ super(CallableCV, self).__init__( @@ -281,7 +283,7 @@ def _eval(self, items): class FunctionCV(CallableCV): - """Turn any function into a `CollectiveVariable`. + """Turn any function into a :class:`CollectiveVariable`. Attributes ---------- @@ -308,15 +310,15 @@ def __init__( cv_requires_lists cv_wrap_numpy_array cv_scalarize_numpy_singletons - kwargs + **kwargs: a dictionary of named arguments which should be given to - `cv_callable` (for example, the atoms which define a specific - distance/angle). Finally `cv_callable(snapshots, **kwargs)` is + ``cv_callable`` (for example, the atoms which define a specific + distance/angle). Finally ``cv_callable(snapshots, **kwargs)`` is called See also -------- - `openpathsampling.CallableCV` + :class:`openpathsampling.collectivevariable.CallableCV` """ @@ -340,7 +342,7 @@ def _eval(self, items): class CoordinateFunctionCV(FunctionCV): - """Turn any function into a `CollectiveVariable`. + """Turn any function into a :class:`CollectiveVariable`. Attributes ---------- @@ -364,11 +366,11 @@ def __init__( cv_requires_lists cv_wrap_numpy_array cv_scalarize_numpy_singletons - kwargs + **kwargs See also -------- - `openpathsampling.CallableCV` + :class:`openpathsampling.collectivevariable.CallableCV` """ @@ -392,7 +394,7 @@ class GeneratorCV(CallableCV): """Turn a callable class or function generating a callable object into a CV The class instance will be called with snapshots. The instance itself - will be created using the given `**kwargs`. + will be created using the given ``**kwargs``. """ def __init__( @@ -410,16 +412,16 @@ def __init__( ---------- name generator : callable class - a class where instances have a `__call__` attribute + a class where instances have a ``__call__`` attribute cv_time_reversible cv_requires_lists cv_wrap_numpy_array cv_scalarize_numpy_singletons - kwargs - additional arguments which should be given to `c` (for example, the - atoms which define a specific distance/angle). Finally an instance - `instance = cls(**kwargs)` is created when the CV is created and - using the CV will call `instance(snapshots)` + **kwargs + additional arguments which should be given to ``c`` (for example, + the atoms which define a specific distance/angle). Finally an + instance ``instance = cls(**kwargs)`` is created when the CV is + created and using the CV will call ``instance(snapshots)`` Notes ----- @@ -457,7 +459,7 @@ class CoordinateGeneratorCV(GeneratorCV): """Turn a callable class or function generating a callable object into a CV The class instance will be called with snapshots. The instance itself - will be created using the given `**kwargs`. + will be created using the given ``**kwargs``. """ def __init__( @@ -477,7 +479,7 @@ def __init__( cv_requires_lists cv_wrap_numpy_array cv_scalarize_numpy_singletons - kwargs + **kwargs Notes ----- @@ -502,12 +504,13 @@ def to_dict(self): class MDTrajFunctionCV(CoordinateFunctionCV): - """Make `CollectiveVariable` from `f` that takes mdtraj.trajectory as input. + """Make ``CollectiveVariable`` from ``f`` that takes + :class:`mdtraj.Trajectory` as input. This is identical to FunctionCV except that the function is called with an :class:`mdtraj.Trajectory` object instead of the :class:`openpathsampling.Trajectory` one using - `f(traj.to_mdtraj(), **kwargs)` + ``f(traj.to_mdtraj(), **kwargs)`` Examples -------- @@ -537,14 +540,14 @@ def __init__(self, f topology : :obj:`openpathsampling.engines.openmm.MDTopology` the mdtraj topology wrapper from OPS that is used to initialize - the featurizer in `pyemma.coordinates.featurizer(topology)` + the featurizer in ``pyemma.coordinates.featurizer(topology)`` cv_requires_lists cv_wrap_numpy_array cv_scalarize_numpy_singletons scalarize_numpy_singletons : bool, default: True - If `True` then arrays of length 1 will be treated as array with one - dimension less. e.g. `[[1], [2], [3]]` will be turned into - `[1, 2, 3]`. This is often useful, when you use en external + If ``True`` then arrays of length 1 will be treated as array with + one dimension less. e.g. ``[[1], [2], [3]]`` will be turned into + ``[1, 2, 3]``. This is often useful, when you use en external function from mdtraj to get only a single value. """ @@ -585,13 +588,7 @@ def to_dict(self): @has_deprecations @deprecate(MSMBUILDER) class MSMBFeaturizerCV(CoordinateGeneratorCV): - """ - A CollectiveVariable that uses an MSMBuilder3 featurizer - - Attributes - ---------- - scalarize_numpy_singletons - """ + """A CollectiveVariable that uses an MSMBuilder3 featurizer""" def __init__( self, @@ -611,12 +608,13 @@ def __init__( the featurizer used as a callable class topology : :obj:`openpathsampling.engines.openmm.MDTopology` the mdtraj topology wrapper from OPS that is used to initialize - the featurizer in `pyemma.coordinates.featurizer(topology)` - kwargs - a dictionary of named arguments which should be given to `c` + the featurizer in ``pyemma.coordinates.featurizer(topology)`` + **kwargs : + a dictionary of named arguments which should be given to ``c`` (for example, the atoms which define a specific distance/angle). - Finally an instance `instance = cls(**kwargs)` is created when the - CV is created and using the CV will call `instance(snapshots)` + Finally an instance ``instance = cls(**kwargs)`` is created when + the CV is created and using the CV will call + ``instance(snapshots)`` cv_wrap_numpy_array cv_scalarize_numpy_singletons @@ -676,9 +674,9 @@ def to_dict(self): class PyEMMAFeaturizerCV(MSMBFeaturizerCV): """Make a CV from a function that takes mdtraj.trajectory as input. - This is identical to `CoordinateGeneratorCV` except that the function is - called with an mdraj.Trajetory object instead of the - openpathsampling.Trajectory one using ``fnc(traj.to_mdtraj(), + This is identical to :class:`CoordinateGeneratorCV` except that the + function is called with an :class:`mdraj.Trajetory` object instead of the + :class:`openpathsampling.Trajectory` one using ``fnc(traj.to_mdtraj(), **kwargs)`` """ @@ -695,14 +693,14 @@ def __init__( Parameters ---------- name - featurizer : `pyemma.coordinates.featurizer` + featurizer : :class:`pyemma.coordinates.featurizer` the pyemma featurizer used as a callable class topology : :obj:`openpathsampling.engines.openmm.MDTopology` the mdtraj topology wrapper from OPS that is used to initialize - the featurizer in `pyemma.coordinates.featurizer(topology)` + the featurizer in ``pyemma.coordinates.featurizer(topology)`` **kwargs : dict a dictionary of named arguments which should be given to the - `featurizer` (for example, the atoms which define a specific + ``featurizer`` (for example, the atoms which define a specific distance/angle). Finally an instance ``instance = cls(**kwargs)`` is created when the CV is created and using the CV will call From e3fbe3b13b442767a220334b4174dcaa295b397e Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Wed, 2 Oct 2019 13:31:28 +0200 Subject: [PATCH 221/464] narrow the try/finally for closing trr file --- openpathsampling/engines/gromacs/engine.py | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/openpathsampling/engines/gromacs/engine.py b/openpathsampling/engines/gromacs/engine.py index 4486b4991..f49e56e1f 100644 --- a/openpathsampling/engines/gromacs/engine.py +++ b/openpathsampling/engines/gromacs/engine.py @@ -330,14 +330,15 @@ def write_frame_to_file(self, filename, snapshot, mode='w'): # you don't want them. raise RuntimeError("File " + str(filename) + " exists. " + "Preventing overwrite.") + # type control before passing things to Cython code + xyz = np.asarray([snapshot.xyz], dtype=np.float32) + time = np.asarray([0.0], dtype=np.float32) + step = np.asarray([0], dtype=np.int32) + box = np.asarray([snapshot.box_vectors], dtype=np.float32) + lambd = np.asarray([0.0], dtype=np.float32) + vel = np.asarray([snapshot.velocities], dtype=np.float32) + try: - # type control before passing things to Cython code - xyz = np.asarray([snapshot.xyz], dtype=np.float32) - time = np.asarray([0.0], dtype=np.float32) - step = np.asarray([0], dtype=np.int32) - box = np.asarray([snapshot.box_vectors], dtype=np.float32) - lambd = np.asarray([0.0], dtype=np.float32) - vel = np.asarray([snapshot.velocities], dtype=np.float32) trr = TRRTrajectoryFile(filename, mode) trr._write(xyz, time, step, box, lambd, vel) finally: From e2dd1c28af7f144151e510efb1fa375a279e7e5e Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Mon, 14 Oct 2019 15:37:59 +0200 Subject: [PATCH 222/464] check for dead engine if partial frame returned --- openpathsampling/engines/external_engine.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/openpathsampling/engines/external_engine.py b/openpathsampling/engines/external_engine.py index 784f9e5e8..59aa0181c 100644 --- a/openpathsampling/engines/external_engine.py +++ b/openpathsampling/engines/external_engine.py @@ -110,6 +110,8 @@ def generate_next_frame(self): #print self.frame_num, next_frame # DEBUG LOGGER now = time.time() if next_frame == "partial": + if not self.proc.is_running(): + raise RuntimeError("External engine died unexpectedly") time.sleep(0.001) # wait a millisec and rerun elif next_frame is None: if not self.proc.is_running(): From 620ad9a63d500e0d3172379011f37b213e53faef Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Tue, 15 Oct 2019 19:10:36 +0200 Subject: [PATCH 223/464] New topics doc on setting up sample sets --- docs/topics/index.rst | 1 + docs/topics/setting_up_sample_sets.rst | 142 +++++++++++++++++++++++++ docs/topics/simulation_setup.rst | 2 + 3 files changed, 145 insertions(+) create mode 100644 docs/topics/setting_up_sample_sets.rst diff --git a/docs/topics/index.rst b/docs/topics/index.rst index 20bf02d59..ee81a55f4 100644 --- a/docs/topics/index.rst +++ b/docs/topics/index.rst @@ -13,6 +13,7 @@ providing this here the unorganized form. .. toctree:: absolute_beginners simulation_setup + setting_up_sample_sets ops_output data_objects creating_collective_variables diff --git a/docs/topics/setting_up_sample_sets.rst b/docs/topics/setting_up_sample_sets.rst new file mode 100644 index 000000000..f416bf3f9 --- /dev/null +++ b/docs/topics/setting_up_sample_sets.rst @@ -0,0 +1,142 @@ +.. _setting_up_sample_sets: + +Setting up sample sets +====================== + +*Or: How do I get the initial conditions?* + +Path sampling methods such as TIS involving simultaneously sampling multiple +path ensembles. This means that we need to not only know the trajectory, but +which ensemble it came from. Because of this, OPS uses data objects +:class:`.Sample` to associate a trajectory with an ensemble and +:class:`.SampleSet` to collect multiple :class:`.Sample` instances. + +For simulations such as :class:`.PathSampling`, you must provide a +:class:`.SampleSet` as initial conditions for the simulation. This document +deals with several ways to associate trajectories with ensembles, assuming +you've already generated a valid trajectory. See :ref:`get_init_traj` for +details on generating the trajectory. + +The following sections provide several options for how to get a +:class:`.SampleSet` once you've obtained the relevant trajectories and have +the ensemble objects (often contained in a :class:`.TransitionNetwork` that +you've created). We'll discuss the advantages and disadvantages of each +approach. + + +Loading from a file +------------------- + +This is the easiest, and will probably be the one you want to use whenever +possible. + +.. code:: python + + storage = paths.Storage("myfile.nc", mode='r') + # often you'll want to load the state of the last accepted MC step: + final_step = storage.steps[-1] + sample_set = final_step.active + + # alternatively, you might want a specific sample set you stored + sample_set = storage.sample_sets[42] # if you know you want 42 + +This returns exactly the sample set that previous existed, including the +connection to the previously-used ensembles. Although this is probably the +best approach for most use cases, there are important situations where you +would not us it: + +1. If you don't already have a file with OPS sample sets (chicken and egg, + right?) +2. If you don't want to associate the trajectories with the same ensembles as + before. This might be because you're changing the network that you're + sampling, e.g., using TPS trajectories as initial conditions for TIS, or + changing the TIS network you're using. + + +Using the move scheme +--------------------- + +The move scheme knows the list of all ensembles that it might require for +the first move, so you should use it to ensure that your sample set includes +representatives for every ensemble. It can also take trajectories and +associate them with ensembles. This is a good approach for creating initial +conditions the first time you set up a simulation. + +.. code:: python + + # scheme is a MoveScheme object + # trajectories is a trajectory or list of trajectories + sample_set = scheme.initial_conditions_from_trajectories(trajectories) + +This will also give some output on missing ensembles/extra ensembles. +Ensembles are considered "missing" if they might be required as input for +the move scheme, but they don't have a trajectory associated with them in +the sample set. Ensembles are considered "extra" if they have a +representative in the sample set, but can't be used by the move scheme (not +possible in this setup process). + +Aside: Sanity checks +-------------------- + +There are a few ways to make sure that your sample set is reasonable for +your simulation. OPS will automatically run these before running a path +sampling simulation, but you can check them yourself. Note that they +function based on ``assert`` statements, so this won't work if you disable +asserts with ``python -O``. + +.. code:: python + + # assert that each trajectory can be in the associated ensemble + sample_set.sanity_check() + + # assert that the sample set has the right ensembles represented to be + # initial conditions for the move scheme + scheme.assert_inital_conditions(sample_set) + + +Other approaches for sample sets +-------------------------------- + +The first two use cases, loading from a file and using the move scheme's +``initial_conditions_from_trajectories`` method, will probably meet nearly +all of your needs. However, there are a few other approaches. These are +legacy approaches that existed before the more general and simpler +approaches were fully stabilized, but they might still be useful. + +Mapping equivalent ensembles +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +All objects in OpenPathSampling have a unique universal identifier (UUID) +that gets set when they are created. However, it is possible to create two +objects (e.g., two ensembles) that are equivalent, but do not share the same +UUID. This would occur if you created the same ensemble in two different +networks (e.g., by creating a new network with fewer ensembles than the +original one). + +.. code:: python + + sample_set = paths.SampleSet.translate_ensembles(old_sample_set, new_ensembles) + +The main use case where this would make more sense than using the move +scheme would be if you wanted to ensure that the ensembles for each +trajectory was preserved, e.g., continuing a simulation with a modified +network. However, be aware that there's no guarantee that the analysis tools +will correctly handle data that combines results from both networks. + +Manually matching trajectories and ensembles +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Of course, you can always manually create samples, and put them into a +sample set: + +.. code:: python + + samp0 = paths.Sample(replica=0, trajectory=traj0, ensemble=ens0) + samp1 = paths.Sample(replica=1, trajectory=traj1, ensemble=ens1) + ... + sampN = paths.Sample(replica=N, trajectory=trajN, ensemble=ensN) + sample_set = paths.SampleSet([samp0, samp1, ..., sampN]) + +In all cases, we strongly recommend that you double check the correctness of +the sample set using the sanity checks listed above as soon as you've +created the sample sets. This can save later confusion. diff --git a/docs/topics/simulation_setup.rst b/docs/topics/simulation_setup.rst index 1345de147..4dda80457 100644 --- a/docs/topics/simulation_setup.rst +++ b/docs/topics/simulation_setup.rst @@ -118,6 +118,8 @@ and will be added to the core code in the future. ----- +.. _get_init_traj: + Getting an initial trajectory ============================= From 4d10736cdc9f0e35e953527a847c26aa7fb15076 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Wed, 16 Oct 2019 16:05:23 +0200 Subject: [PATCH 224/464] Add doc on how I use OPS (DWHS's workflow) also some misc improvements to the docs --- docs/examples/index.rst | 8 ++--- docs/index.rst | 2 ++ docs/install.rst | 9 ++++-- docs/topics/how_use.rst | 67 +++++++++++++++++++++++++++++++++++++++++ docs/topics/index.rst | 3 ++ 5 files changed, 82 insertions(+), 7 deletions(-) create mode 100644 docs/topics/how_use.rst diff --git a/docs/examples/index.rst b/docs/examples/index.rst index 1f808a381..bce119ce2 100644 --- a/docs/examples/index.rst +++ b/docs/examples/index.rst @@ -4,15 +4,15 @@ Examples ======== This page provides a series of examples, tutorials and recipes to help you -get started with ``openpathsampling``. +get started with OpenPathSampling. Each subsection of the pages linked below is a notebook. To open these notebooks in a "live" session and execute the documentation interactively, open them using ``jupyter notebook NOTEBOOK_NAME.ipynb``. -If you installed `openpathsampling` from source, you can find these in the -``examples`` directory within the root ``openpathsampling`` directory. You -cn also find them in our `GitHub repository +If you installed OPS from source, you can find these in the ``examples`` +directory within the root ``openpathsampling`` directory. You can also find +them in our `GitHub repository `_. .. note:: It's a *lot* more fun to run these examples live than to just read diff --git a/docs/index.rst b/docs/index.rst index e1a13b9ad..69ae7bfa3 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -24,6 +24,8 @@ the development process on GitHub_, and follow `@pathsampling .. _GitHub: http://github.com/openpathsampling/openpathsampling .. note:: Documentation is still in progress; if you have questions, please + `open an issue + `_ or contact the development team. To see the most recent updates to the code, see the `release notes diff --git a/docs/install.rst b/docs/install.rst index ebd64c1c6..4030d6217 100644 --- a/docs/install.rst +++ b/docs/install.rst @@ -26,6 +26,8 @@ command :: $ conda install -c conda-forge -c omnia openpathsampling +With that, you should be ready to use OPS! + .. _developer-install-conda: Developer Install with Conda @@ -58,9 +60,9 @@ If you don't want to use ``conda``, you will have to manually obtain the dependencies (advice on that coming soon). Then you can install from our GitHub repository. -Clone the source code repository from github:: +Clone the source code repository from GitHub:: - $ git clone git://github.com/openpathsampling/openpathsampling.git + $ git clone https://github.com/openpathsampling/openpathsampling.git Then, in the directory containing the source code, you can install it with :: @@ -81,7 +83,8 @@ requires the `nose `_ package. You can $ conda install pytest nose From the source directory ``openpathsampling/tests``, you can run the tests -by typing ``py.test`` on the command line. +by typing ``py.test`` on the command line. The test suite includes over 870 +individual tests, and runs in around 2-3 minutes. Beta testing experimental updates ================================= diff --git a/docs/topics/how_use.rst b/docs/topics/how_use.rst new file mode 100644 index 000000000..4181eb0e5 --- /dev/null +++ b/docs/topics/how_use.rst @@ -0,0 +1,67 @@ +.. _how_use: + +How I use OpenPathSampling +========================== + +*David W.H. Swenson* + +Usually these docs are written in the plural, and usually there isn't a +specific byline for it. That's because most things in the docs are just +facts, and are obviously agreed by all authors. However, this is about the +specific workflow that *I* like to use, and others may have different +opinions. That said, when I develop OPS, it is with my workflow in mind. So +this workflow is particularly well-supported. + +The essence of my workflow is based on the idea of splitting the simulation +intro three stages: (1) setup; (2) sampling; and (3) analysis. In my +workflow, setup and analysis are done in an interactive Python environment +(e.g., Jupyter notebooks), while sampling is done in a simple script. There +are a few ideas/guidelines that lead to my workflow: + +* OPS has a powerful storage system that helps you track provenance of data. + Whenever possible use it! Load objects from storage instead of creating + new ones. +* Setting up a path sampling simulation can require care and attention. Set + up simulations in an interactive environment (e.g., Jupyter notebook) and + use the tools that OPS provides to perform sanity checks along the way. +* Analysis is best done interactively, using a tool like a Jupyter notebook + that enables visualization of graphs and also stores the process in cells. + This removes the overhead of redoing previous parts of the analysis every + time a new idea to explore comes up. This also makes it easy to track the + development of ideas, since the notebook acts as a sort of log. + +The result is that my workflow tends to be something like this: + +1. **Setup:** I perform the setup (defining engines, CVs, states/interfaces, + networks, and move schemes) in a Jupyter notebook. Importantly, I provide + these objects with names (which, for most objects, means using the + ``.named()`` method at creation). I save all of these objects to a file, + often called ``setup.nc``. +2. **Sampling:** The sampling process may run for a long time, and often on + a remote machine. So I create a regular (non-interactive) Python script + to run this. Note that this script is very simple: it basically just + needs to create the path simulator, so frequently it just involves + loading things from the ``setup.nc`` and plugging them into the path + simulator class. In some cases (e.g., changing GPU device index) you may + need to modify the engine, or even create a new engine and therefore a + new move scheme. But it might be better to anticipate this and put + multiple objects (with different names) in the ``setup.nc``. +3. **Analysis:** I do the analysis in Jupyter notebooks, for the reasons + discussed above. + +One feature that I often see users overlooking is the ability of OPS to +re-use simulation objects. For example, if you want to do a committor +analysis after performing TPS, you can load the load the states from a file +instead of redefining them, and this *guarantees* that your state +definitions are identical. The OPS storage subsystem has tools that enable +us to ensure that objects are identical across multiple simulations, even +with results stored in many different files. I choose to do this with a +single common ``setup.py``, although you could also load the states from the +output file of the TPS simulation. + +**** + +Our examples tend to partially reflect this approach. In practice, I usually +put equilibration with the sampling, while it is often with the setup in the +examples. Also, the examples use a notebook for the sampling (to fit more +easily with the other stages, and to mix in text descriptions). diff --git a/docs/topics/index.rst b/docs/topics/index.rst index ee81a55f4..848240f9d 100644 --- a/docs/topics/index.rst +++ b/docs/topics/index.rst @@ -11,6 +11,8 @@ users to have access to as much documentation as possible, so we're providing this here the unorganized form. .. toctree:: + :maxdepth: 2 + absolute_beginners simulation_setup setting_up_sample_sets @@ -22,3 +24,4 @@ providing this here the unorganized form. which_network transitions_and_networks tis_analysis + how_use From 85e74e2aec3327c76c07f656cc6a001bd7efaad1 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Wed, 16 Oct 2019 17:32:15 +0200 Subject: [PATCH 225/464] minor cleanup in new docs text --- docs/topics/how_use.rst | 22 ++++++++++++---------- docs/topics/setting_up_sample_sets.rst | 2 +- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/docs/topics/how_use.rst b/docs/topics/how_use.rst index 4181eb0e5..f2874c030 100644 --- a/docs/topics/how_use.rst +++ b/docs/topics/how_use.rst @@ -5,12 +5,12 @@ How I use OpenPathSampling *David W.H. Swenson* -Usually these docs are written in the plural, and usually there isn't a -specific byline for it. That's because most things in the docs are just -facts, and are obviously agreed by all authors. However, this is about the -specific workflow that *I* like to use, and others may have different -opinions. That said, when I develop OPS, it is with my workflow in mind. So -this workflow is particularly well-supported. +Usually these docs don't have a byline, and they're usually written in the +plural "we." That's because most things in the docs are just facts, and are +obviously agreed by all authors. However, this is about the specific +workflow that *I* like to use, and others may have different opinions. That +said, when I develop OPS, it is with my workflow in mind. So this workflow +is particularly well-supported. The essence of my workflow is based on the idea of splitting the simulation intro three stages: (1) setup; (2) sampling; and (3) analysis. In my @@ -61,7 +61,9 @@ output file of the TPS simulation. **** -Our examples tend to partially reflect this approach. In practice, I usually -put equilibration with the sampling, while it is often with the setup in the -examples. Also, the examples use a notebook for the sampling (to fit more -easily with the other stages, and to mix in text descriptions). +Our examples tend to partially reflect this approach. In particular, the +alanine dipeptide TPS is an example where the actual sampling script is +quite short and simple. In practice, I usually put equilibration with the +sampling, while it is often with the setup in the examples. Also, the +examples use a notebook for the sampling (to fit more easily with the other +stages, and to mix in text descriptions). diff --git a/docs/topics/setting_up_sample_sets.rst b/docs/topics/setting_up_sample_sets.rst index f416bf3f9..7d4b44297 100644 --- a/docs/topics/setting_up_sample_sets.rst +++ b/docs/topics/setting_up_sample_sets.rst @@ -33,7 +33,7 @@ possible. .. code:: python storage = paths.Storage("myfile.nc", mode='r') - # often you'll want to load the state of the last accepted MC step: + # often you'll want to load the state of the last-saved MC step: final_step = storage.steps[-1] sample_set = final_step.active From 5f22607e344a5582beb881cbdd3ead2834736ce8 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Wed, 16 Oct 2019 17:43:18 +0200 Subject: [PATCH 226/464] Workaround for conda/setuptools weirdness --- devtools/ci/miniconda_install.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/devtools/ci/miniconda_install.sh b/devtools/ci/miniconda_install.sh index 89cc08704..cf518fee4 100644 --- a/devtools/ci/miniconda_install.sh +++ b/devtools/ci/miniconda_install.sh @@ -29,4 +29,8 @@ export PATH=$HOME/miniconda${pyV}/bin:$PATH conda config --add channels http://conda.anaconda.org/omnia conda config --add channels http://conda.anaconda.org/conda-forge +# next two lines are workaround for conda/conda#9337 +pip uninstall -y setuptools +conda install --yes setuptools + conda update --yes conda From 76436a9899dbb2979ca25c11909928051cb49a30 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Fri, 18 Oct 2019 18:01:21 +0200 Subject: [PATCH 227/464] tests appear to work in a minimal environment! --- .../engines/features/coordinates.py | 6 +- openpathsampling/engines/openmm/__init__.py | 15 +- openpathsampling/engines/openmm/tools.py | 2 +- openpathsampling/integration_tools.py | 12 + openpathsampling/netcdfplus/netcdfplus.py | 15 +- openpathsampling/tests/test_ensemble.py | 4 +- openpathsampling/tests/test_features.py | 5 +- openpathsampling/tests/test_helpers.py | 10 +- .../tests/test_openmm_snapshot.py | 4 + openpathsampling/tests/test_openmm_tools.py | 26 ++- openpathsampling/tests/test_shared.py | 8 +- openpathsampling/tests/test_snapshot.py | 4 + .../tests/test_snapshot_modifier.py | 206 +++++++++--------- openpathsampling/tests/test_volume.py | 4 + 14 files changed, 206 insertions(+), 115 deletions(-) diff --git a/openpathsampling/engines/features/coordinates.py b/openpathsampling/engines/features/coordinates.py index ecda0cb1b..6cb9cfc46 100644 --- a/openpathsampling/engines/features/coordinates.py +++ b/openpathsampling/engines/features/coordinates.py @@ -5,6 +5,8 @@ atomic coordinates """ +from openpathsampling.integration_tools import is_simtk_quantity + variables = ['coordinates'] numpy = ['coordinates'] @@ -29,10 +31,8 @@ def xyz(snapshot): atomic coordinates without dimensions. Be careful. """ - import simtk.unit as u - coord = snapshot.coordinates - if type(coord) is u.Quantity: + if is_simtk_quantity(coord): return coord._value else: return coord diff --git a/openpathsampling/engines/openmm/__init__.py b/openpathsampling/engines/openmm/__init__.py index 4c924cc58..21131fcb6 100644 --- a/openpathsampling/engines/openmm/__init__.py +++ b/openpathsampling/engines/openmm/__init__.py @@ -1,8 +1,20 @@ +def missing_openmm(*args, **kwargs): + raise RuntimeError("Install OpenMM to use this feature") + try: import simtk.openmm import simtk.openmm.app except ImportError: HAS_OPENMM = False + Engine = missing_openmm + empty_snapshot_from_openmm_topology = missing_openmm + snapshot_from_pdb = missing_openmm + snapshot_from_testsystem = missing_openmm + to_openmm_topology = missing_openmm + trajectory_from_mdtraj = missing_openmm + trajectory_to_mdtraj = missing_openmm + Snapshot = missing_openmm + MDSnapshot = missing_openmm else: from .engine import OpenMMEngine as Engine from .tools import ( @@ -17,4 +29,5 @@ from . import features from .snapshot import Snapshot, MDSnapshot - from openpathsampling.engines import NoEngine, SnapshotDescriptor + +from openpathsampling.engines import NoEngine, SnapshotDescriptor diff --git a/openpathsampling/engines/openmm/tools.py b/openpathsampling/engines/openmm/tools.py index 0b2ae9fcb..a9c7df62d 100644 --- a/openpathsampling/engines/openmm/tools.py +++ b/openpathsampling/engines/openmm/tools.py @@ -6,6 +6,7 @@ try: import simtk.openmm import simtk.openmm.app + from simtk.openmm.app.internal.unitcell import reducePeriodicBoxVectors except ImportError: # this happens when we directly import tools (e.g., for # trajectory_to/from_mdtraj) when we don't have OpenMM installed. In @@ -18,7 +19,6 @@ from openpathsampling.engines import Trajectory, NoEngine, SnapshotDescriptor -from simtk.openmm.app.internal.unitcell import reducePeriodicBoxVectors __author__ = 'Jan-Hendrik Prinz' diff --git a/openpathsampling/integration_tools.py b/openpathsampling/integration_tools.py index 748fe0057..86899d5ee 100644 --- a/openpathsampling/integration_tools.py +++ b/openpathsampling/integration_tools.py @@ -36,3 +36,15 @@ def error_if_no_simtk_unit(name): def error_if_no_mdtraj(name): return error_if_no(name, "mdtraj", HAS_MDTRAJ) + +# openmm ############################################################ +try: + from simtk import openmm +except ImportError: + openmm = None + HAS_OPENMM = False +else: + HAS_OPENMM = True + +def error_if_to_openmm(name): + return error_if_no(name, "openmm", HAS_OPENMM) diff --git a/openpathsampling/netcdfplus/netcdfplus.py b/openpathsampling/netcdfplus/netcdfplus.py index 26bbbf8cc..cb16d1057 100644 --- a/openpathsampling/netcdfplus/netcdfplus.py +++ b/openpathsampling/netcdfplus/netcdfplus.py @@ -21,6 +21,13 @@ logger = logging.getLogger(__name__) init_log = logging.getLogger('openpathsampling.initialization') +try: + from simtk import unit as u +except ImportError: + HAS_SIMTK_UNIT = False +else: + HAS_SIMTK_UNIT = True + # ============================================================================== # Extended NetCDF Storage for multiple forked trajectories @@ -30,7 +37,7 @@ class NetCDFPlus(netCDF4.Dataset): """ Extension of the python netCDF wrapper for easier storage of python objects """ - support_simtk_unit = True + support_simtk_unit = HAS_SIMTK_UNIT @property def _netcdfplus_version_(self): @@ -104,6 +111,11 @@ def __init__(self, variable, getter=None, setter=None, store=None): self.getter = getter self.setter = setter + try: + from simtk import unit as u + except ImportError: + self.support_simtk_unit = False + def __setitem__(self, key, value): self.variable[key] = self.setter(value) @@ -313,7 +325,6 @@ def __init__(self, filename, mode=None, fallback=None): variable = self.variables[variable_name] if self.support_simtk_unit: - import simtk.unit as u if hasattr(variable, 'unit_simtk'): unit_dict = self.simplifier.from_json( getattr(variable, 'unit_simtk')) diff --git a/openpathsampling/tests/test_ensemble.py b/openpathsampling/tests/test_ensemble.py index 738f022cd..f1bfd945b 100644 --- a/openpathsampling/tests/test_ensemble.py +++ b/openpathsampling/tests/test_ensemble.py @@ -489,8 +489,8 @@ def test_seqens_order_combo(self): lambda_min=-100.0, lambda_max=100.0) traj = paths.Trajectory([ - peng.MDSnapshot( - coordinates=np.array([[-0.5, 0.0]]), + paths.engines.toy.Snapshot( + coordinates=np.array([[-0.5, 0.0]]), velocities=np.array([[0.0,0.0]]) ) ]) diff --git a/openpathsampling/tests/test_features.py b/openpathsampling/tests/test_features.py index 751aca04a..aed30b507 100644 --- a/openpathsampling/tests/test_features.py +++ b/openpathsampling/tests/test_features.py @@ -17,6 +17,8 @@ except ImportError: omt = None +import openpathsampling as paths + import openpathsampling.engines.toy as toy_engine import openpathsampling.engines.openmm as omm_engine @@ -41,7 +43,8 @@ def test_copy_with_replacement_toy(self): assert(toy_copy.velocities[1] == 1.0) def test_copy_with_replacement_openmm(self): - + if not paths.integration_tools.HAS_OPENMM: + raise SkipTest # test an openmm snapshot sys = omt.testsystems.AlanineDipeptideVacuum() omm_snap = omm_engine.snapshot_from_testsystem(sys) diff --git a/openpathsampling/tests/test_helpers.py b/openpathsampling/tests/test_helpers.py index 22205ae37..6e2043878 100644 --- a/openpathsampling/tests/test_helpers.py +++ b/openpathsampling/tests/test_helpers.py @@ -16,6 +16,8 @@ except ImportError: u = None +from openpathsampling.integration_tools import is_simtk_quantity_type + try: import mdtraj as md except ImportError: @@ -105,13 +107,13 @@ def move(self, sample_set): class CalvinistDynamics(DynamicsEngine): def __init__(self, predestination): - topology = Topology(n_atoms=1, n_spatial=1) - engine = peng.tools.TopologyEngine(topology) + self.topology = Topology(n_atoms=1, n_spatial=1) + # engine = peng.tools.TopologyEngine(topology) super(CalvinistDynamics, self).__init__(options={'n_frames_max': 12}) self.predestination = make_1d_traj(coordinates=predestination, velocities=[1.0]*len(predestination), - engine=engine + engine=self ) self.frame_index = None @@ -207,7 +209,7 @@ def reorder_ensemble_signature(sig, match_with): return found_sigs[0] def assert_close_unit(v1, v2, *args, **kwargs): - if type(v1) is u.Quantity: + if is_simtk_quantity_type(v1): assert(v1.unit == v2.unit) npt.assert_allclose(v1._value, v2._value, *args, **kwargs) else: diff --git a/openpathsampling/tests/test_openmm_snapshot.py b/openpathsampling/tests/test_openmm_snapshot.py index a8be5042e..4237f0cab 100644 --- a/openpathsampling/tests/test_openmm_snapshot.py +++ b/openpathsampling/tests/test_openmm_snapshot.py @@ -12,6 +12,8 @@ import openmmtools as omt except ImportError: omt = None + +from openpathsampling.integration_tools import openmm import numpy as np import logging @@ -23,6 +25,8 @@ class TestOpenMMSnapshot(object): def setup(self): + if not openmm: + raise SkipTest("OpenMM not installed") if not omt: raise SkipTest("OpenMMTools not installed; required for OpenMM " "tests.") diff --git a/openpathsampling/tests/test_openmm_tools.py b/openpathsampling/tests/test_openmm_tools.py index 4b748a38b..a13c7f8e6 100644 --- a/openpathsampling/tests/test_openmm_tools.py +++ b/openpathsampling/tests/test_openmm_tools.py @@ -1,6 +1,8 @@ import string import sys +import pytest + import openpathsampling as paths if sys.version_info > (3,): @@ -18,14 +20,25 @@ from .test_helpers import data_filename from openpathsampling.engines.openmm import Snapshot +from openpathsampling.integration_tools import HAS_OPENMM, HAS_MDTRAJ -from simtk.unit import nanometer as nm -from simtk.unit import picosecond as ps +try: + from simtk.unit import nanometer as nm + from simtk.unit import picosecond as ps +except ImportError: + HAS_SIMTK_UNIT = False +else: + HAS_SIMTK_UNIT = True import numpy.testing as npt import numpy as np -from mdtraj.utils import box_vectors_to_lengths_and_angles +try: + from mdtraj.utils import box_vectors_to_lengths_and_angles +except ImportError: + HAS_MDTRAJ = False +else: + HAS_MDTRAJ = True class BoxVectorWarning(RuntimeWarning): pass @@ -56,12 +69,15 @@ def check_reduced_box_vectors(v): def mock_snapshot_with_box_vector(box): + if not HAS_OPENMM: + pytest.skip() return Snapshot.construct(coordinates=np.array([[]]) * nm, velocities=np.array([[]]) * nm/ps, box_vectors=box) def test_reduced_box_vectors(): + pytest.importorskip("mdtraj") box = np.array([[ 6.70596027, 0., 0. ], [ 0., 6.70596027, 0. ], [ 3.35299015, 3.35299015, 4.74183893]]) @@ -106,6 +122,8 @@ def test_reduce_trajectory_box_vectors(): def test_load_trr_with_velocities(): + if not HAS_MDTRAJ: + pytest.skip() box_vect_dir = "reduce_box_vects" gro = data_filename(box_vect_dir + "/dna.gro") trr = data_filename(box_vect_dir + "/dna.trr") @@ -116,6 +134,8 @@ def test_load_trr_with_velocities(): def test_load_trr_no_velocities(): + if not HAS_MDTRAJ: + pytest.skip() box_vect_dir = "reduce_box_vects" gro = data_filename(box_vect_dir + "/dna.gro") trr = data_filename(box_vect_dir + "/dna.trr") diff --git a/openpathsampling/tests/test_shared.py b/openpathsampling/tests/test_shared.py index e40edd9a2..8e9422110 100644 --- a/openpathsampling/tests/test_shared.py +++ b/openpathsampling/tests/test_shared.py @@ -1,8 +1,12 @@ +import pytest from numpy import testing as npt import openpathsampling as paths import os -import openmmtools +try: + import openmmtools +except ImportError: + openmmtools = None class TestStaticContainerStore(object): @@ -11,6 +15,8 @@ def teardown(self): os.remove("test.nc") def test_store_nonperiodic(self): + if not openmmtools: + pytest.skip("Requires OpenMMTools for testing") testsystem = openmmtools.testsystems.AlanineDipeptideVacuum() snap = paths.engines.openmm.snapshot_from_testsystem(testsystem, periodic=False) diff --git a/openpathsampling/tests/test_snapshot.py b/openpathsampling/tests/test_snapshot.py index bef1aeaa1..98fb1b2b8 100644 --- a/openpathsampling/tests/test_snapshot.py +++ b/openpathsampling/tests/test_snapshot.py @@ -2,6 +2,7 @@ @author David W.H. Swenson """ from __future__ import absolute_import +import pytest from builtins import object from nose.tools import (assert_equal, assert_not_equal, assert_is, raises, @@ -14,6 +15,7 @@ import openpathsampling.engines.features as features from openpathsampling.engines.snapshot import SnapshotFactory +import openpathsampling as paths def compate_attribute(snapshot_class, attr_name, attr_value, attr_reversal_fnc): a = snapshot_class(**{attr_name: attr_value}) @@ -47,6 +49,8 @@ def test_box_vectors(self): class TestSnapshotCopy(object): def test_copy_none(self): + if not paths.integration_tools.HAS_OPENMM: + pytest.skip() import openpathsampling.engines.openmm as paths_omm # let box_vectors and topology to default to None snap = paths_omm.MDSnapshot(coordinates=np.array([[0.0, 0.0, 0.0], diff --git a/openpathsampling/tests/test_snapshot_modifier.py b/openpathsampling/tests/test_snapshot_modifier.py index e7caecbbd..0f1c143b6 100644 --- a/openpathsampling/tests/test_snapshot_modifier.py +++ b/openpathsampling/tests/test_snapshot_modifier.py @@ -38,7 +38,11 @@ def setup(self): coordinates=np.array([0.0, 1.0, 2.0, 3.0]), velocities=np.array([0.5, 1.5, 2.5, 3.5]) ) - self.snapshot_3D = peng.openmm.MDSnapshot( + if paths.integration_tools.HAS_OPENMM: + Class3D = peng.openmm.MDSnapshot + else: + Class3D = peng.toy.ToySnapshot + self.snapshot_3D = Class3D( coordinates=np.array([[0.0, 0.1, 0.2], [1.0, 1.1, 1.2], [2.0, 2.1, 2.2], @@ -419,29 +423,32 @@ def setup(self): engine=self.toy_engine ) - u_vel = old_div(u.nanometer, u.picosecond) - self.openmm_modifier = VelocityDirectionModifier( - delta_v=1.2*u_vel, - remove_linear_momentum=False - ) - ad_vacuum = omt.testsystems.AlanineDipeptideVacuum(constraints=None) - self.test_snap = omm_engine.snapshot_from_testsystem(ad_vacuum) - self.openmm_engine = omm_engine.Engine( - topology=self.test_snap.topology, - system=ad_vacuum.system, - integrator=omt.integrators.VVVRIntegrator() - ) - - self.openmm_snap = self.test_snap.copy_with_replacement( - engine=self.openmm_engine, - velocities=np.ones(shape=self.test_snap.velocities.shape) * u_vel - ) + if paths.integration_tools.HAS_SIMTK_UNIT: + u_vel = old_div(u.nanometer, u.picosecond) + self.openmm_modifier = VelocityDirectionModifier( + delta_v=1.2*u_vel, + remove_linear_momentum=False + ) + if omt: # TODO: separate out tests + ad_vacuum = omt.testsystems.AlanineDipeptideVacuum(constraints=None) + self.test_snap = omm_engine.snapshot_from_testsystem(ad_vacuum) + self.openmm_engine = omm_engine.Engine( + topology=self.test_snap.topology, + system=ad_vacuum.system, + integrator=omt.integrators.VVVRIntegrator() + ) + + self.openmm_snap = self.test_snap.copy_with_replacement( + engine=self.openmm_engine, + velocities=np.ones(shape=self.test_snap.velocities.shape) * u_vel + ) def test_select_atoms_to_modify(self): assert_equal(self.toy_modifier._select_atoms_to_modify(2), [0, 1]) - n_atoms = len(self.openmm_snap.coordinates) - assert_equal(self.openmm_modifier._select_atoms_to_modify(n_atoms), - list(range(n_atoms))) + if omt: # TODO: separate out tests + n_atoms = len(self.openmm_snap.coordinates) + assert_equal(self.openmm_modifier._select_atoms_to_modify(n_atoms), + list(range(n_atoms))) def test_call(self): new_toy_snap = self.toy_modifier(self.toy_snapshot) @@ -456,23 +463,24 @@ def test_call(self): assert_almost_equal(sum([v**2 for v in new_v]), sum([v**2 for v in old_v])) - new_omm_snap = self.openmm_modifier(self.openmm_snap) - n_atoms = len(self.openmm_snap.coordinates) - assert_array_almost_equal(new_omm_snap.coordinates, - self.openmm_snap.coordinates) - new_vel = new_omm_snap.velocities - old_vel = self.openmm_snap.velocities - same_vel = [np.allclose(new_vel[i], old_vel[i]) - for i in range(len(new_vel))] - same_vel = [np.allclose(new_vel[i], old_vel[i]) - for i in range(len(new_vel))] - assert_equal(Counter(same_vel), Counter({False: n_atoms})) - u_vel_sq = (old_div(u.nanometers, u.picoseconds))**2 - for new_v, old_v in zip(new_vel, old_vel): - assert_almost_equal( - sum([(v**2).value_in_unit(u_vel_sq) for v in new_v]), - sum([(v**2).value_in_unit(u_vel_sq) for v in old_v]) - ) + if omt: # TODO: separate out tests + new_omm_snap = self.openmm_modifier(self.openmm_snap) + n_atoms = len(self.openmm_snap.coordinates) + assert_array_almost_equal(new_omm_snap.coordinates, + self.openmm_snap.coordinates) + new_vel = new_omm_snap.velocities + old_vel = self.openmm_snap.velocities + same_vel = [np.allclose(new_vel[i], old_vel[i]) + for i in range(len(new_vel))] + same_vel = [np.allclose(new_vel[i], old_vel[i]) + for i in range(len(new_vel))] + assert_equal(Counter(same_vel), Counter({False: n_atoms})) + u_vel_sq = (old_div(u.nanometers, u.picoseconds))**2 + for new_v, old_v in zip(new_vel, old_vel): + assert_almost_equal( + sum([(v**2).value_in_unit(u_vel_sq) for v in new_v]), + sum([(v**2).value_in_unit(u_vel_sq) for v in old_v]) + ) def test_call_with_linear_momentum_fix(self): toy_modifier = VelocityDirectionModifier( @@ -487,20 +495,21 @@ def test_call_with_linear_momentum_fix(self): double_ke = sum(sum(momenta * velocities)) assert_almost_equal(double_ke, 86.0) - u_vel = old_div(u.nanometer, u.picosecond) - u_mass = old_div(u.dalton, u.AVOGADRO_CONSTANT_NA) + if omt: # TODO: separate out tests + u_vel = old_div(u.nanometer, u.picosecond) + u_mass = old_div(u.dalton, u.AVOGADRO_CONSTANT_NA) - openmm_modifier = VelocityDirectionModifier( - delta_v=1.2*u_vel, - remove_linear_momentum=False - ) - new_openmm_snap = openmm_modifier(self.openmm_snap) - velocities = new_openmm_snap.velocities - momenta = velocities * new_openmm_snap.masses[:, np.newaxis] - zero_momentum = 0 * u_vel * u_mass - total_momenta = sum(momenta, zero_momentum) - assert_array_almost_equal(total_momenta, - np.array([0.0]*3) * u_vel * u_mass) + openmm_modifier = VelocityDirectionModifier( + delta_v=1.2*u_vel, + remove_linear_momentum=False + ) + new_openmm_snap = openmm_modifier(self.openmm_snap) + velocities = new_openmm_snap.velocities + momenta = velocities * new_openmm_snap.masses[:, np.newaxis] + zero_momentum = 0 * u_vel * u_mass + total_momenta = sum(momenta, zero_momentum) + assert_array_almost_equal(total_momenta, + np.array([0.0]*3) * u_vel * u_mass) class TestSingleAtomVelocityDirectionModifier(object): def setup(self): @@ -521,23 +530,24 @@ def setup(self): engine=self.toy_engine ) - u_vel = old_div(u.nanometer, u.picosecond) - self.openmm_modifier = SingleAtomVelocityDirectionModifier( - delta_v=1.2*u_vel, - remove_linear_momentum=False - ) - ad_vacuum = omt.testsystems.AlanineDipeptideVacuum(constraints=None) - self.test_snap = omm_engine.snapshot_from_testsystem(ad_vacuum) - self.openmm_engine = omm_engine.Engine( - topology=self.test_snap.topology, - system=ad_vacuum.system, - integrator=omt.integrators.VVVRIntegrator() - ) + if omt: # TODO: separate out tests/ + u_vel = old_div(u.nanometer, u.picosecond) + self.openmm_modifier = SingleAtomVelocityDirectionModifier( + delta_v=1.2*u_vel, + remove_linear_momentum=False + ) + ad_vacuum = omt.testsystems.AlanineDipeptideVacuum(constraints=None) + self.test_snap = omm_engine.snapshot_from_testsystem(ad_vacuum) + self.openmm_engine = omm_engine.Engine( + topology=self.test_snap.topology, + system=ad_vacuum.system, + integrator=omt.integrators.VVVRIntegrator() + ) - self.openmm_snap = self.test_snap.copy_with_replacement( - engine=self.openmm_engine, - velocities=np.ones(shape=self.test_snap.velocities.shape) * u_vel - ) + self.openmm_snap = self.test_snap.copy_with_replacement( + engine=self.openmm_engine, + velocities=np.ones(shape=self.test_snap.velocities.shape) * u_vel + ) def test_select_atoms_to_modify(self): selected = self.toy_modifier._select_atoms_to_modify(2) @@ -562,23 +572,24 @@ def test_call(self): assert_almost_equal(sum([v**2 for v in new_v]), sum([v**2 for v in old_v])) - new_omm_snap = self.openmm_modifier(self.openmm_snap) - n_atoms = len(self.openmm_snap.coordinates) - assert_array_almost_equal(new_omm_snap.coordinates, - self.openmm_snap.coordinates) - new_vel = new_omm_snap.velocities - old_vel = self.openmm_snap.velocities - same_vel = [np.allclose(new_vel[i], old_vel[i]) - for i in range(len(new_vel))] - same_vel = [np.allclose(new_vel[i], old_vel[i]) - for i in range(len(new_vel))] - assert_equal(Counter(same_vel), Counter({True: n_atoms-1, False: 1})) - u_vel_sq = (old_div(u.nanometers, u.picoseconds))**2 - for new_v, old_v in zip(new_vel, old_vel): - assert_almost_equal( - sum([(v**2).value_in_unit(u_vel_sq) for v in new_v]), - sum([(v**2).value_in_unit(u_vel_sq) for v in old_v]) - ) + if omt: # TODO: separate out tests + new_omm_snap = self.openmm_modifier(self.openmm_snap) + n_atoms = len(self.openmm_snap.coordinates) + assert_array_almost_equal(new_omm_snap.coordinates, + self.openmm_snap.coordinates) + new_vel = new_omm_snap.velocities + old_vel = self.openmm_snap.velocities + same_vel = [np.allclose(new_vel[i], old_vel[i]) + for i in range(len(new_vel))] + same_vel = [np.allclose(new_vel[i], old_vel[i]) + for i in range(len(new_vel))] + assert_equal(Counter(same_vel), Counter({True: n_atoms-1, False: 1})) + u_vel_sq = (old_div(u.nanometers, u.picoseconds))**2 + for new_v, old_v in zip(new_vel, old_vel): + assert_almost_equal( + sum([(v**2).value_in_unit(u_vel_sq) for v in new_v]), + sum([(v**2).value_in_unit(u_vel_sq) for v in old_v]) + ) def test_call_with_linear_momentum_fix(self): toy_modifier = SingleAtomVelocityDirectionModifier( @@ -593,17 +604,18 @@ def test_call_with_linear_momentum_fix(self): double_ke = sum(sum(momenta * velocities)) assert_almost_equal(double_ke, 86.0) - u_vel = old_div(u.nanometer, u.picosecond) - u_mass = old_div(u.dalton, u.AVOGADRO_CONSTANT_NA) + if omt: # TODO: separate out tests + u_vel = old_div(u.nanometer, u.picosecond) + u_mass = old_div(u.dalton, u.AVOGADRO_CONSTANT_NA) - openmm_modifier = SingleAtomVelocityDirectionModifier( - delta_v=1.2*u_vel, - remove_linear_momentum=False - ) - new_openmm_snap = openmm_modifier(self.openmm_snap) - velocities = new_openmm_snap.velocities - momenta = velocities * new_openmm_snap.masses[:, np.newaxis] - zero_momentum = 0 * u_vel * u_mass - total_momenta = sum(momenta, zero_momentum) - assert_array_almost_equal(total_momenta, - np.array([0.0]*3) * u_vel * u_mass) + openmm_modifier = SingleAtomVelocityDirectionModifier( + delta_v=1.2*u_vel, + remove_linear_momentum=False + ) + new_openmm_snap = openmm_modifier(self.openmm_snap) + velocities = new_openmm_snap.velocities + momenta = velocities * new_openmm_snap.masses[:, np.newaxis] + zero_momentum = 0 * u_vel * u_mass + total_momenta = sum(momenta, zero_momentum) + assert_array_almost_equal(total_momenta, + np.array([0.0]*3) * u_vel * u_mass) diff --git a/openpathsampling/tests/test_volume.py b/openpathsampling/tests/test_volume.py index dade810c4..cf346bbb3 100644 --- a/openpathsampling/tests/test_volume.py +++ b/openpathsampling/tests/test_volume.py @@ -13,6 +13,8 @@ import openpathsampling.volume as volume +import openpathsampling as paths + class Identity2(CallIdentity): def __str__(self): return "Id2" @@ -160,6 +162,8 @@ def test_str(self): assert_equal((~volA).__str__(), "(not {x|Id(x) in [-0.5, 0.5]})") def test_unit_support(self): + if not paths.integration_tools.HAS_SIMTK_UNIT: + raise SkipTest import simtk.unit as u vol = volume.CVDefinedVolume( From 559c0411c07b05d7e6bd872199029b37bd1dab77 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Sat, 2 Nov 2019 01:53:02 +0100 Subject: [PATCH 228/464] try to add minimal setup to travis matrix --- .travis.yml | 3 ++- devtools/minimal.txt | 8 ++++++++ openpathsampling/step_visualizer_2D.py | 4 +++- 3 files changed, 13 insertions(+), 2 deletions(-) create mode 100644 devtools/minimal.txt diff --git a/.travis.yml b/.travis.yml index 167f1cb55..eb2e813b1 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,7 +8,7 @@ before_install: install: - export OPS_ENV="openpathsampling-py${CONDA_PY}" - - source devtools/conda_install_reqs.sh + - if [ -z $MINIMAL ]; then; source devtools/conda_install_reqs.sh; else; pip install -r devtools/minimal.txt; fi - pip install --no-deps -e . before_script: @@ -36,6 +36,7 @@ env: - secure: "l9NJkZDD0ALhkErUvhRrreLsrcWErd+CXpWv8dxHGtkjemNx6CwVtyL+a30jz/QwMANSZbKll/cPK5yJQvuwDaWxja6UPLLKVNGtma+CmwKcIC/wwTwbMoxcS62fyLJ3kS0qR8oCQz2nCPKiYyRGADtPLWVMZckY1SJfNYcKuCM=" - secure: "kb37xmsSV3pEnESnINzwlW2Cju/UFzA/G+m+NsihAwO8RMPZwKCrZK/rptgkUDACXJxom5M690WEukQkHnOt+OTrWhu7WKZgYeVuWUs2++RohYv/m5npaOHMMn+uYmF328v4PvPmXxbD02zzg5Tgdn82x8oa6J8BKX8ohOQ6Xpg=" matrix: + - CONDA_PY=3.7 MINIMAL=true - CONDA_PY=2.7 - CONDA_PY=3.6 - CONDA_PY=3.7 diff --git a/devtools/minimal.txt b/devtools/minimal.txt new file mode 100644 index 000000000..88e06a18b --- /dev/null +++ b/devtools/minimal.txt @@ -0,0 +1,8 @@ +future +numpy +scipy +pandas +netcdf4 +networkx +svgwrite +ujson diff --git a/openpathsampling/step_visualizer_2D.py b/openpathsampling/step_visualizer_2D.py index e6f0489d0..43e241e66 100644 --- a/openpathsampling/step_visualizer_2D.py +++ b/openpathsampling/step_visualizer_2D.py @@ -2,6 +2,8 @@ import matplotlib.pyplot as plt import openpathsampling as paths +import logging +logger = logging.getLogger(__name__) class StepVisualizer2D(object): def __init__(self, network, cv_x, cv_y, xlim, ylim, output_directory=None): @@ -103,7 +105,7 @@ def draw_ipynb(self, mcstep): try: import IPython.display except ImportError: - pass + logger.info("Not in IPython") else: IPython.display.clear_output(wait=True) fig = self.draw(mcstep) From 8d341266cf5e0bb043e9f82799baabecd42cdb46 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Sat, 2 Nov 2019 02:02:13 +0100 Subject: [PATCH 229/464] correct for bash (too much time in gentle zsh) --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index eb2e813b1..48fcb1f93 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,7 +8,7 @@ before_install: install: - export OPS_ENV="openpathsampling-py${CONDA_PY}" - - if [ -z $MINIMAL ]; then; source devtools/conda_install_reqs.sh; else; pip install -r devtools/minimal.txt; fi + - if [ -z "$MINIMAL" ] ; then source devtools/conda_install_reqs.sh; else pip install -r devtools/minimal.txt; fi - pip install --no-deps -e . before_script: From 603cf5d261bc611c2cc9554496c540d52cd1b172 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Sat, 2 Nov 2019 02:31:36 +0100 Subject: [PATCH 230/464] require pyyaml for install --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index 48fcb1f93..2c0d5e97a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,6 +5,7 @@ before_install: - deactivate # virtual envs don't play nice with conda - export PYTHONUNBUFFERED=true # immediately flush stdout to terminal - source devtools/ci/miniconda_install.sh + - conda install pyyaml install: - export OPS_ENV="openpathsampling-py${CONDA_PY}" From ab0f52418b70cdec1dbe87ce062887d430ddb18c Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Sat, 2 Nov 2019 02:36:38 +0100 Subject: [PATCH 231/464] don't forget to say yes --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 2c0d5e97a..a7d18f5ea 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,7 +5,7 @@ before_install: - deactivate # virtual envs don't play nice with conda - export PYTHONUNBUFFERED=true # immediately flush stdout to terminal - source devtools/ci/miniconda_install.sh - - conda install pyyaml + - conda install -y pyyaml install: - export OPS_ENV="openpathsampling-py${CONDA_PY}" From 3f289bb376d207fadd5fbd1ff394080f73f7b2ef Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Sat, 2 Nov 2019 02:55:34 +0100 Subject: [PATCH 232/464] matplotlib still in minimum reqs --- devtools/minimal.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/devtools/minimal.txt b/devtools/minimal.txt index 88e06a18b..8a64a3325 100644 --- a/devtools/minimal.txt +++ b/devtools/minimal.txt @@ -4,5 +4,6 @@ scipy pandas netcdf4 networkx +matplotlib svgwrite ujson From fea5bf440d57e59105f95a4d6ea16dcac1df436a Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Sat, 2 Nov 2019 03:26:48 +0100 Subject: [PATCH 233/464] minimal version also needs testing tools --- .travis.yml | 2 +- devtools/minimal_testing.txt | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) create mode 100644 devtools/minimal_testing.txt diff --git a/.travis.yml b/.travis.yml index a7d18f5ea..6dd8a6388 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,7 +9,7 @@ before_install: install: - export OPS_ENV="openpathsampling-py${CONDA_PY}" - - if [ -z "$MINIMAL" ] ; then source devtools/conda_install_reqs.sh; else pip install -r devtools/minimal.txt; fi + - if [ -z "$MINIMAL" ] ; then source devtools/conda_install_reqs.sh; else pip install -r devtools/minimal.txt -r devtools/minimal_testing.txt; fi - pip install --no-deps -e . before_script: diff --git a/devtools/minimal_testing.txt b/devtools/minimal_testing.txt new file mode 100644 index 000000000..c3f4152f8 --- /dev/null +++ b/devtools/minimal_testing.txt @@ -0,0 +1,4 @@ +nose +pytest +pytest-cov +coveralls From fffb519ae6e98fff52c3a0e2dce63299fcace11a Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Sat, 2 Nov 2019 03:37:16 +0100 Subject: [PATCH 234/464] can't run notebook tests without notebooks --- .travis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 6dd8a6388..5fe99a33c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -21,10 +21,10 @@ before_script: script: - source devtools/ci/pytests.sh - - source devtools/ci/ipythontests.sh + - if [ -z "$MINIMAL" ] ; then source devtools/ci/ipythontests.sh; fi # Upload new docs - - bash -x devtools/ci/after_sucess.sh + - if [ -z "$MINIMAL" ] ; then $bash -x devtools/ci/after_sucess.sh; fi addons: apt: From 7da02e216f83dd1821b346861bef6d098227616e Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Sat, 2 Nov 2019 03:57:06 +0100 Subject: [PATCH 235/464] fix stupid typo --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 5fe99a33c..e0044a643 100644 --- a/.travis.yml +++ b/.travis.yml @@ -24,7 +24,7 @@ script: - if [ -z "$MINIMAL" ] ; then source devtools/ci/ipythontests.sh; fi # Upload new docs - - if [ -z "$MINIMAL" ] ; then $bash -x devtools/ci/after_sucess.sh; fi + - if [ -z "$MINIMAL" ] ; then bash -x devtools/ci/after_sucess.sh; fi addons: apt: From 9ff3fe37fb7301474f390b7dbb719481f56568c9 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Tue, 12 Nov 2019 23:24:03 +0100 Subject: [PATCH 236/464] Add analysis stuff to docs --- docs/analysis.rst | 34 +++++++++++++++++++++++++++ docs/api_sections.rst | 1 + openpathsampling/analysis/__init__.py | 5 +++- 3 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 docs/analysis.rst diff --git a/docs/analysis.rst b/docs/analysis.rst new file mode 100644 index 000000000..508b94b17 --- /dev/null +++ b/docs/analysis.rst @@ -0,0 +1,34 @@ +.. _analysis: + +.. currentmodule:: openpathsampling.analysis + +Analysis Tools +============== + +Path histograms +--------------- + +.. autosummary:: + :toctree: api/generated/ + + PathHistogram + PathDensityHistogram + + +Replica network analysis +------------------------ + +.. autosummary:: + :toctree: api/generated/ + + ReplicaNetwork + ReplicaNetworkGraph + +Other analysis tools +-------------------- + +.. autosummary:: + :toctree: api/generated/ + + ChannelAnalysis + ShootingPointAnalysis diff --git a/docs/api_sections.rst b/docs/api_sections.rst index 1d9bb4baa..0c958593f 100644 --- a/docs/api_sections.rst +++ b/docs/api_sections.rst @@ -21,6 +21,7 @@ OpenPathSampling API engines/index netcdfplus/index numerics + analysis tis_analysis .. snapshot_features diff --git a/openpathsampling/analysis/__init__.py b/openpathsampling/analysis/__init__.py index 21d0befe2..abf083c21 100644 --- a/openpathsampling/analysis/__init__.py +++ b/openpathsampling/analysis/__init__.py @@ -1,3 +1,6 @@ -from .path_histogram import PathHistogram +from .path_histogram import PathHistogram, PathDensityHistogram +from .channel_analysis import ChannelAnalysis +from .replica_network import ReplicaNetwork, ReplicaNetworkGraph +from .shooting_point_analysis import ShootingPointAnalysis from . import tis from . import tools From a78cde45c9f94aef1e19bc72efe95033841d29b5 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Tue, 12 Nov 2019 23:38:13 +0100 Subject: [PATCH 237/464] update install docs --- docs/install.rst | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/docs/install.rst b/docs/install.rst index ebd64c1c6..5b6e2853e 100644 --- a/docs/install.rst +++ b/docs/install.rst @@ -8,6 +8,15 @@ OpenPathSampling currently only works on Mac and Linux. It is tested against Python 2.7, 3.6, and 3.7, although there may be some corners of the code that aren't Python 3-compatible yet. +.. note:: As of OpenPathSampling 1.1, OpenMM will no longer be automatically + installed when you install OPS. However, the OpenMM engine will be + immediately available if you install OpenMM youself. See the + `OpenMM installation instructions + `_ + for a detailed guide, but ``conda install -c conda-forge -c omnia + openmm`` will work for most people. (COMING SOON: details on OPS + integrations with other tools.) + .. _install-with-conda: Standard Install with Conda @@ -55,8 +64,8 @@ Manual Installation =================== If you don't want to use ``conda``, you will have to manually obtain the -dependencies (advice on that coming soon). Then you can install from our -GitHub repository. +dependencies, which you can see listed under ``install_requires`` in +``setup.py``. Then you can install from our GitHub repository. Clone the source code repository from github:: From fa4ed5446f18318bc381d7d13988b37b02b50fa1 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Wed, 13 Nov 2019 14:35:07 +0100 Subject: [PATCH 238/464] Add information to MinusMove change.details --- openpathsampling/pathmover.py | 21 +++++++++++++++++++++ openpathsampling/tests/test_pathmover.py | 16 +++++++++++++--- 2 files changed, 34 insertions(+), 3 deletions(-) diff --git a/openpathsampling/pathmover.py b/openpathsampling/pathmover.py index f15ec2b20..edbdcc669 100644 --- a/openpathsampling/pathmover.py +++ b/openpathsampling/pathmover.py @@ -2474,6 +2474,23 @@ def __init__(self, minus_ensemble, innermost_ensembles, engine=None): super(MinusMover, self).__init__(mover) + def move(self, sample_set): + change = super(MinusMover, self).move(sample_set) + cond_seq_changes = change.subchanges[0].subchanges[0].subchanges + seg_swap = None + if len(cond_seq_changes) >= 2: + seg_swap = cond_seq_changes[1].subchanges[0].trials + + ext_traj = None + if len(cond_seq_changes) >= 3: + ext_traj = cond_seq_changes[2].subchanges[0].trials[0].trajectory + + details = Details(segment_swap_samples=seg_swap, + extension_trajectory=ext_traj) + if change.details is None: + change.details = details + + return change class SingleReplicaMinusMover(MinusMover): """ @@ -2540,6 +2557,10 @@ def __init__(self, minus_ensemble, innermost_ensembles, # we skip MinusMover's init and go to the grandparent super(MinusMover, self).__init__(mover) + def move(self, sample_set): + # skip the MinusMover's implementation + return super(MinusMover, self).move(sample_set) + class PathSimulatorMover(SubPathMover): """ diff --git a/openpathsampling/tests/test_pathmover.py b/openpathsampling/tests/test_pathmover.py index aaa6244f7..ac8ac13dc 100644 --- a/openpathsampling/tests/test_pathmover.py +++ b/openpathsampling/tests/test_pathmover.py @@ -1211,6 +1211,8 @@ def test_successful_move(self): seg_dir = {} for i in range(100): change = self.mover.move(gs) + assert change.details.segment_swap_samples is not None + assert change.details.extension_trajectory is not None samples = change.results sub_samples = change.subchange.subchange.results assert_equal(len(samples), 2) @@ -1261,9 +1263,11 @@ def test_repex_fails_other_ensemble(self): ensemble=self.innermost ) gs = SampleSet([samp_other_ensemble, self.minus_sample]) - + change = self.mover.move(gs) assert_equal(len(change.trials), 1) + assert change.details.segment_swap_samples is not None + assert change.details.extension_trajectory is None sub = change.subchange.subchange assert_equal(self.innermost(innermost_other_ensemble), False) @@ -1280,9 +1284,11 @@ def test_repex_fails_innermost_crosses_state(self): ensemble=self.innermost ) gs = SampleSet([samp_crosses_to_state, self.minus_sample]) - + change = self.mover.move(gs) assert_equal(len(change.trials), 1) # stop after failed repex + assert change.details.segment_swap_samples is not None + assert change.details.extension_trajectory is None sub = change.subchange.subchange assert_equal(self.innermost(innermost_crosses_to_state), True) @@ -1308,6 +1314,8 @@ def test_repex_fails_minus_crosses_to_state(self): assert_equal(self.minus(minus_crosses_to_state), True) change = self.mover.move(gs) + assert change.details.segment_swap_samples is not None + assert change.details.extension_trajectory is None sub = change.subchange.subchange assert_equal(len(sub.trials), 3) # stop after failed repex assert_equal(len(change.trials), 1) @@ -1325,7 +1333,7 @@ def test_extension_fails(self): trajectory=traj_bad_extension, ensemble=self.innermost ) - + assert_equal(self.innermost(traj_bad_extension), True) gs = SampleSet([self.minus_sample, samp_bad_extension]) @@ -1334,6 +1342,8 @@ def test_extension_fails(self): sub = change.subchange.subchange assert_equal(len(sub.trials), 4) + assert change.details.segment_swap_samples is not None + assert change.details.extension_trajectory is not None # after filtering there are only 2 trials assert_equal(len(change.trials), 2) From 585a845cc1d6d0a7c2cb4d422d7ce5c0713cf7f5 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 14 Nov 2019 20:57:58 +0100 Subject: [PATCH 239/464] Reorg tests to be easier for new interp methods --- openpathsampling/analysis/path_histogram.py | 2 +- openpathsampling/tests/test_path_histogram.py | 62 +++++++++++-------- 2 files changed, 38 insertions(+), 26 deletions(-) diff --git a/openpathsampling/analysis/path_histogram.py b/openpathsampling/analysis/path_histogram.py index c341d3455..5176106c4 100644 --- a/openpathsampling/analysis/path_histogram.py +++ b/openpathsampling/analysis/path_histogram.py @@ -201,7 +201,7 @@ def __call__(self, old_pt, new_pt): n_steps = int(max(delta)) step_size = delta / n_steps bins = [np.rint(old_bin + (i+1) * delta) for i in range(n_steps)] - return bins + return [tuple(b) for b in bins] # should path histogram be moved to the generic histogram.py? Seems to be diff --git a/openpathsampling/tests/test_path_histogram.py b/openpathsampling/tests/test_path_histogram.py index 34c206b03..7edaff4be 100644 --- a/openpathsampling/tests/test_path_histogram.py +++ b/openpathsampling/tests/test_path_histogram.py @@ -3,6 +3,8 @@ import os import numpy as np +import pytest + from nose.tools import (assert_equal, assert_not_equal, assert_almost_equal, raises) from nose.plugins.skip import Skip, SkipTest @@ -22,13 +24,16 @@ from openpathsampling.analysis.path_histogram import * from collections import Counter -class TestPathHistogram(object): +class PathHistogramTester(object): def setup(self): self.trajectory = [(0.1, 0.3), (2.1, 3.1), (1.7, 1.4), (1.6, 0.6), (0.1, 1.4), (2.2, 3.3)] self.diag = [(0.25, 0.25), (2.25, 2.25)] - def test_nointerp_nopertraj(self): + + +class TestPathHistogramNoInterpolate(PathHistogramTester): + def test_nopertraj(self): hist = PathHistogram(left_bin_edges=(0.0, 0.0), bin_widths=(0.5, 0.5), interpolate=False, per_traj=False) @@ -39,10 +44,22 @@ def test_nointerp_nopertraj(self): for val in [(1,0), (1,1), (1,6)]: assert_equal(hist._histogram[val], 0.0) - def test_interp_nopertraj(self): + def test_pertraj(self): hist = PathHistogram(left_bin_edges=(0.0, 0.0), bin_widths=(0.5, 0.5), - interpolate=True, per_traj=False) + interpolate=False, per_traj=True) + hist.add_trajectory(self.trajectory) + for val in [(0,0), (0,2), (3,1), (3,2), (4,6)]: + assert_equal(hist._histogram[val], 1.0) + for val in [(1,0), (1,1), (1,6)]: + assert_equal(hist._histogram[val], 0.0) + +class TestPathHistogramSubdivideInterpolate(PathHistogramTester): + Interpolator = SubdivideInterpolation + def test_nopertraj(self): + hist = PathHistogram(left_bin_edges=(0.0, 0.0), + bin_widths=(0.5, 0.5), + interpolate=self.Interpolator, per_traj=False) hist.add_trajectory(self.trajectory) for val in [(0,0), (0,2), (3,1), (3,2)]: assert_equal(hist._histogram[val], 1.0) @@ -53,10 +70,10 @@ def test_interp_nopertraj(self): assert_equal(hist._histogram[val], 2.0) assert_equal(hist._histogram[(3,5)], 3.0) - def test_interp_pertraj(self): - hist = PathHistogram(left_bin_edges=(0.0, 0.0), + def test_pertraj(self): + hist = PathHistogram(left_bin_edges=(0.0, 0.0), bin_widths=(0.5, 0.5), - interpolate=True, per_traj=True) + interpolate=self.Interpolator, per_traj=True) hist.add_trajectory(self.trajectory) for val in [(0,0), (0,2), (3,1), (3,2), (0,1), (0,3), (1,4), (2,1), (2,3), (2,5), (3,1), (3,2), (3,3), (3,6)]: @@ -66,21 +83,10 @@ def test_interp_pertraj(self): assert_equal(hist._histogram[(3,5)], 1.0) assert_equal(hist._histogram[(2,2)], 0.0) - - def test_nointerp_pertraj(self): - hist = PathHistogram(left_bin_edges=(0.0, 0.0), - bin_widths=(0.5, 0.5), - interpolate=False, per_traj=True) - hist.add_trajectory(self.trajectory) - for val in [(0,0), (0,2), (3,1), (3,2), (4,6)]: - assert_equal(hist._histogram[val], 1.0) - for val in [(1,0), (1,1), (1,6)]: - assert_equal(hist._histogram[val], 0.0) - - def test_diag_interp(self): - hist = PathHistogram(left_bin_edges=(0.0, 0.0), + def test_diag(self): + hist = PathHistogram(left_bin_edges=(0.0, 0.0), bin_widths=(0.5, 0.5), - interpolate=True, per_traj=True) + interpolate=self.Interpolator, per_traj=True) hist.add_trajectory(self.diag) for val in [(0,0), (1,1), (2,2), (3,3), (4,4)]: assert_equal(hist._histogram[val], 1.0) @@ -90,16 +96,22 @@ def test_diag_interp(self): def test_interp_same_cell(self): # check interpolation if successive frames in same cell traj = [(0.1, 0.3), (0.2, 0.2), (0.4, 0.6), (0.3, 0.1)] - hist = PathHistogram(left_bin_edges=(0.0, 0.0), + hist = PathHistogram(left_bin_edges=(0.0, 0.0), bin_widths=(0.5, 0.5), - interpolate=True, per_traj=False) + interpolate=self.Interpolator, per_traj=False) hist.add_trajectory(traj) assert_equal(len(list(hist._histogram.keys())), 2) assert_equal(hist._histogram[(0,0)], 3) assert_equal(hist._histogram[(0,1)], 1) +# SubdivideTester = TestPathHistogramSubdivideInterpolate # 80 columns +# class TestPathHistogramBesenhamInterpolate(SubdivideTester): + # Interpolator = BresenhamInterpolation + +class TestPathHistogram(PathHistogramTester): + # tests of fundamental things in PathHistogram, not interpolators def test_add_with_weight(self): - hist = PathHistogram(left_bin_edges=(0.0, 0.0), + hist = PathHistogram(left_bin_edges=(0.0, 0.0), bin_widths=(0.5, 0.5), interpolate=True, per_traj=True) hist.add_trajectory(self.trajectory) @@ -116,7 +128,7 @@ def test_add_with_weight(self): assert_equal(hist._histogram[val], 0.0) def test_add_data_to_histograms(self): - hist = PathHistogram(left_bin_edges=(0.0, 0.0), + hist = PathHistogram(left_bin_edges=(0.0, 0.0), bin_widths=(0.5, 0.5), interpolate=True, per_traj=True) counter = hist.add_data_to_histogram([self.trajectory, self.diag], From feb10163c9bed7120e9f19ef0c81ff69279a023c Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 14 Nov 2019 23:08:23 +0100 Subject: [PATCH 240/464] fix diag test (Bresenham) --- openpathsampling/analysis/path_histogram.py | 2 +- openpathsampling/tests/test_path_histogram.py | 21 +++++++++++++++---- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/openpathsampling/analysis/path_histogram.py b/openpathsampling/analysis/path_histogram.py index 5176106c4..d60131fec 100644 --- a/openpathsampling/analysis/path_histogram.py +++ b/openpathsampling/analysis/path_histogram.py @@ -200,7 +200,7 @@ def __call__(self, old_pt, new_pt): delta = np.asarray(new_bin) - np.asarray(old_bin) n_steps = int(max(delta)) step_size = delta / n_steps - bins = [np.rint(old_bin + (i+1) * delta) for i in range(n_steps)] + bins = [np.rint(old_bin + (i+1) * step_size) for i in range(n_steps)] return [tuple(b) for b in bins] diff --git a/openpathsampling/tests/test_path_histogram.py b/openpathsampling/tests/test_path_histogram.py index 7edaff4be..8e6fa9ee5 100644 --- a/openpathsampling/tests/test_path_histogram.py +++ b/openpathsampling/tests/test_path_histogram.py @@ -31,7 +31,6 @@ def setup(self): self.diag = [(0.25, 0.25), (2.25, 2.25)] - class TestPathHistogramNoInterpolate(PathHistogramTester): def test_nopertraj(self): hist = PathHistogram(left_bin_edges=(0.0, 0.0), @@ -104,9 +103,23 @@ def test_interp_same_cell(self): assert_equal(hist._histogram[(0,0)], 3) assert_equal(hist._histogram[(0,1)], 1) -# SubdivideTester = TestPathHistogramSubdivideInterpolate # 80 columns -# class TestPathHistogramBesenhamInterpolate(SubdivideTester): - # Interpolator = BresenhamInterpolation +SubdivideTester = TestPathHistogramSubdivideInterpolate # 80 columns +class TestPathHistogramBesenhamInterpolate(SubdivideTester): + Interpolator = BresenhamInterpolation + def test_diag(self): + super().test_diag() + + def test_interp_same_cell(self): + pytest.skip() + # super().test_interp_same_cell() + + def test_pertraj(self): + pytest.skip() + # super().test_pertraj() + + def test_nopertraj(self): + pytest.skip() + # super().test_nopertraj() class TestPathHistogram(PathHistogramTester): # tests of fundamental things in PathHistogram, not interpolators From 6f553e4467d21e036ed9dc205a3e42f8c820cb5e Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Fri, 15 Nov 2019 05:56:16 +0100 Subject: [PATCH 241/464] working tests for Bresenham-like interp --- openpathsampling/analysis/path_histogram.py | 30 +++++++++++-- openpathsampling/tests/test_path_histogram.py | 44 +++++++++++++++---- 2 files changed, 62 insertions(+), 12 deletions(-) diff --git a/openpathsampling/analysis/path_histogram.py b/openpathsampling/analysis/path_histogram.py index d60131fec..6812d2da1 100644 --- a/openpathsampling/analysis/path_histogram.py +++ b/openpathsampling/analysis/path_histogram.py @@ -194,15 +194,39 @@ class BresenhamInterpolation(VoxelInterpolator): histogram : :class:`.PathHistogram` the histogram that this will interpolate for """ + def _interpolated_bins(self, new_pt, old_pt, new_bin, old_bin, delta, + n_steps): + step_size = delta / n_steps if n_steps > 0 else 0 + # TODO: do I want rint or floor here? + bins = [np.rint(old_bin + (i+1) * step_size) + for i in range(n_steps)] + return bins + def __call__(self, old_pt, new_pt): old_bin = self.map_to_bins(old_pt) new_bin = self.map_to_bins(new_pt) delta = np.asarray(new_bin) - np.asarray(old_bin) - n_steps = int(max(delta)) - step_size = delta / n_steps - bins = [np.rint(old_bin + (i+1) * step_size) for i in range(n_steps)] + n_steps = int(max(np.abs(delta))) + if n_steps == 0: + n_steps = 1 + bins = self._interpolated_bins(new_pt, old_pt, new_bin, old_bin, + delta, n_steps) return [tuple(b) for b in bins] +class BresenhamLikeInterpolation(BresenhamInterpolation): + """Interpolation based on floating point analog to Bresenham algorithm. + + Parameters + ---------- + histogram : :class:`.PathHistogram` + the histogram that this will interpolate for + """ + def _interpolated_bins(self, new_pt, old_pt, new_bin, old_bin, delta, + n_steps): + step_size = (np.asarray(new_pt) - np.asarray(old_pt)) / n_steps + interp_points = [old_pt + (i+1) * step_size for i in range(n_steps)] + bins = [self.map_to_bins(pt) for pt in interp_points] + return bins # should path histogram be moved to the generic histogram.py? Seems to be # independent of the fact that this is actually OPS diff --git a/openpathsampling/tests/test_path_histogram.py b/openpathsampling/tests/test_path_histogram.py index 8e6fa9ee5..954a40ea8 100644 --- a/openpathsampling/tests/test_path_histogram.py +++ b/openpathsampling/tests/test_path_histogram.py @@ -2,6 +2,7 @@ from builtins import object import os import numpy as np +import collections import pytest @@ -99,27 +100,52 @@ def test_interp_same_cell(self): bin_widths=(0.5, 0.5), interpolate=self.Interpolator, per_traj=False) hist.add_trajectory(traj) + print(hist._histogram) assert_equal(len(list(hist._histogram.keys())), 2) assert_equal(hist._histogram[(0,0)], 3) assert_equal(hist._histogram[(0,1)], 1) SubdivideTester = TestPathHistogramSubdivideInterpolate # 80 columns -class TestPathHistogramBesenhamInterpolate(SubdivideTester): - Interpolator = BresenhamInterpolation +class TestPathHistogramBesenhamLikeInterpolate(SubdivideTester): + Interpolator = BresenhamLikeInterpolation + def setup(self): + super(TestPathHistogramBesenhamLikeInterpolate, self).setup() + self.expected_bins = [ + (0, 0), # initial + (0, 1), (1, 2), (2, 3), (2, 4), (3, 5), (4, 6), # 0->1 + (4, 5), (3, 4), (3, 3), (3, 2), # 1->2 + (3, 1), # 2->3 + (2, 1), (1, 2), (0, 2), # 3->4 + (1, 3), (2, 4), (3, 5), (4, 6) # 4->5 + ] + # NOTE: the (4, 5) in the 1->2 transition is exactly on bin edge; + # left bin edge is inclusive + def test_diag(self): - super().test_diag() + # including explicitly to show that we expect it to be the same + cls = TestPathHistogramBesenhamLikeInterpolate + super(cls, self).test_diag() def test_interp_same_cell(self): - pytest.skip() - # super().test_interp_same_cell() + # including explicitly to show that we expect it to be the same + cls = TestPathHistogramBesenhamLikeInterpolate + super(cls, self).test_interp_same_cell() def test_pertraj(self): - pytest.skip() - # super().test_pertraj() + counter = collections.Counter(set(self.expected_bins)) + hist = PathHistogram(left_bin_edges=(0.0, 0.0), + bin_widths=(0.5, 0.5), + interpolate=self.Interpolator, per_traj=True) + hist.add_trajectory(self.trajectory) + assert hist._histogram == counter def test_nopertraj(self): - pytest.skip() - # super().test_nopertraj() + counter = collections.Counter(self.expected_bins) + hist = PathHistogram(left_bin_edges=(0.0, 0.0), + bin_widths=(0.5, 0.5), + interpolate=self.Interpolator, per_traj=False) + hist.add_trajectory(self.trajectory) + assert hist._histogram == counter class TestPathHistogram(PathHistogramTester): # tests of fundamental things in PathHistogram, not interpolators From e576cce725831e2d6dc6e1e7c18ed9be732799e6 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Fri, 15 Nov 2019 06:56:49 +0100 Subject: [PATCH 242/464] reorg of interpolation tests (much nicer!) --- openpathsampling/tests/test_path_histogram.py | 124 +++++++----------- 1 file changed, 48 insertions(+), 76 deletions(-) diff --git a/openpathsampling/tests/test_path_histogram.py b/openpathsampling/tests/test_path_histogram.py index 954a40ea8..e17c5d9cb 100644 --- a/openpathsampling/tests/test_path_histogram.py +++ b/openpathsampling/tests/test_path_histogram.py @@ -31,85 +31,79 @@ def setup(self): (1.6, 0.6), (0.1, 1.4), (2.2, 3.3)] self.diag = [(0.25, 0.25), (2.25, 2.25)] - -class TestPathHistogramNoInterpolate(PathHistogramTester): - def test_nopertraj(self): - hist = PathHistogram(left_bin_edges=(0.0, 0.0), - bin_widths=(0.5, 0.5), - interpolate=False, per_traj=False) - hist.add_trajectory(self.trajectory) - for val in [(0,0), (0,2), (3,1), (3,2)]: - assert_equal(hist._histogram[val], 1.0) - assert_equal(hist._histogram[(4,6)], 2.0) - for val in [(1,0), (1,1), (1,6)]: - assert_equal(hist._histogram[val], 0.0) - - def test_pertraj(self): - hist = PathHistogram(left_bin_edges=(0.0, 0.0), - bin_widths=(0.5, 0.5), - interpolate=False, per_traj=True) - hist.add_trajectory(self.trajectory) - for val in [(0,0), (0,2), (3,1), (3,2), (4,6)]: - assert_equal(hist._histogram[val], 1.0) - for val in [(1,0), (1,1), (1,6)]: - assert_equal(hist._histogram[val], 0.0) - -class TestPathHistogramSubdivideInterpolate(PathHistogramTester): - Interpolator = SubdivideInterpolation def test_nopertraj(self): + counter = collections.Counter(self.expected_bins) hist = PathHistogram(left_bin_edges=(0.0, 0.0), bin_widths=(0.5, 0.5), interpolate=self.Interpolator, per_traj=False) hist.add_trajectory(self.trajectory) - for val in [(0,0), (0,2), (3,1), (3,2)]: - assert_equal(hist._histogram[val], 1.0) - for val in [(0,1), (0,3), (1,4), (2,1), (2,3), (2,5), (3,1), (3,2), - (3,3), (3,6)]: - assert_equal(hist._histogram[val], 1.0) - for val in [(1,1), (1,2), (1,3), (2,4), (3,4), (4,5), (4,6)]: - assert_equal(hist._histogram[val], 2.0) - assert_equal(hist._histogram[(3,5)], 3.0) + assert hist._histogram == counter def test_pertraj(self): + counter = collections.Counter(set(self.expected_bins)) hist = PathHistogram(left_bin_edges=(0.0, 0.0), bin_widths=(0.5, 0.5), interpolate=self.Interpolator, per_traj=True) hist.add_trajectory(self.trajectory) - for val in [(0,0), (0,2), (3,1), (3,2), (0,1), (0,3), (1,4), (2,1), - (2,3), (2,5), (3,1), (3,2), (3,3), (3,6)]: - assert_equal(hist._histogram[val], 1.0) - for val in [(1,1), (1,2), (1,3), (2,4), (3,4), (4,5), (4,6)]: - assert_equal(hist._histogram[val], 1.0) - assert_equal(hist._histogram[(3,5)], 1.0) - assert_equal(hist._histogram[(2,2)], 0.0) + assert hist._histogram == counter def test_diag(self): hist = PathHistogram(left_bin_edges=(0.0, 0.0), bin_widths=(0.5, 0.5), interpolate=self.Interpolator, per_traj=True) hist.add_trajectory(self.diag) - for val in [(0,0), (1,1), (2,2), (3,3), (4,4)]: - assert_equal(hist._histogram[val], 1.0) - for val in [(1,2), (1,6)]: - assert_equal(hist._histogram[val], 0.0) + expected = collections.Counter([(i, i) for i in range(5)]) + assert hist._histogram == expected - def test_interp_same_cell(self): + def test_same_cell(self): # check interpolation if successive frames in same cell traj = [(0.1, 0.3), (0.2, 0.2), (0.4, 0.6), (0.3, 0.1)] hist = PathHistogram(left_bin_edges=(0.0, 0.0), bin_widths=(0.5, 0.5), interpolate=self.Interpolator, per_traj=False) hist.add_trajectory(traj) - print(hist._histogram) assert_equal(len(list(hist._histogram.keys())), 2) assert_equal(hist._histogram[(0,0)], 3) assert_equal(hist._histogram[(0,1)], 1) -SubdivideTester = TestPathHistogramSubdivideInterpolate # 80 columns -class TestPathHistogramBesenhamLikeInterpolate(SubdivideTester): + +class TestPathHistogramNoInterpolate(PathHistogramTester): + Interpolator = NoInterpolation + def setup(self): + super(TestPathHistogramNoInterpolate, self).setup() + self.expected_bins = [(0, 0), (4, 6), (3, 2), + (3, 1), (0, 2), (4, 6)] + + def test_diag(self): + hist = PathHistogram(left_bin_edges=(0.0, 0.0), + bin_widths=(0.5, 0.5), + interpolate=self.Interpolator, per_traj=True) + hist.add_trajectory(self.diag) + assert hist._histogram == collections.Counter([(0, 0), (4, 4)]) + + +class TestPathHistogramSubdivideInterpolate(PathHistogramTester): + Interpolator = SubdivideInterpolation + def setup(self): + super(TestPathHistogramSubdivideInterpolate, self).setup() + self.expected_bins = [ + (0, 0), # initial + (0, 1), (1, 1), (1, 2), (1, 3), (2, 3), (2, 4), (3, 4), + (3, 5), (4, 5), (4, 6), # 0->1 + (4, 5), (3, 5), (3, 4), (3, 3), (3, 2), # 1->2 + (3, 1), # 2->3 + (2, 1), (1, 1), (1, 2), (0, 2), # 3->4 + (0, 3), (1, 3), (1, 4), (2, 4), (2, 5), (3, 5), + (3, 6), (4, 6) # 4->5 + ] + + +class TestPathHistogramBesenhamLikeInterpolate(PathHistogramTester): Interpolator = BresenhamLikeInterpolation def setup(self): super(TestPathHistogramBesenhamLikeInterpolate, self).setup() + # NOTE: the (4, 5) in the 1->2 transition is exactly on bin edge; + # left bin edge is inclusive self.expected_bins = [ (0, 0), # initial (0, 1), (1, 2), (2, 3), (2, 4), (3, 5), (4, 6), # 0->1 @@ -118,37 +112,15 @@ def setup(self): (2, 1), (1, 2), (0, 2), # 3->4 (1, 3), (2, 4), (3, 5), (4, 6) # 4->5 ] - # NOTE: the (4, 5) in the 1->2 transition is exactly on bin edge; - # left bin edge is inclusive - - def test_diag(self): - # including explicitly to show that we expect it to be the same - cls = TestPathHistogramBesenhamLikeInterpolate - super(cls, self).test_diag() - - def test_interp_same_cell(self): - # including explicitly to show that we expect it to be the same - cls = TestPathHistogramBesenhamLikeInterpolate - super(cls, self).test_interp_same_cell() - - def test_pertraj(self): - counter = collections.Counter(set(self.expected_bins)) - hist = PathHistogram(left_bin_edges=(0.0, 0.0), - bin_widths=(0.5, 0.5), - interpolate=self.Interpolator, per_traj=True) - hist.add_trajectory(self.trajectory) - assert hist._histogram == counter - def test_nopertraj(self): - counter = collections.Counter(self.expected_bins) - hist = PathHistogram(left_bin_edges=(0.0, 0.0), - bin_widths=(0.5, 0.5), - interpolate=self.Interpolator, per_traj=False) - hist.add_trajectory(self.trajectory) - assert hist._histogram == counter -class TestPathHistogram(PathHistogramTester): +class TestPathHistogram(object): # tests of fundamental things in PathHistogram, not interpolators + def setup(self): + self.trajectory = [(0.1, 0.3), (2.1, 3.1), (1.7, 1.4), + (1.6, 0.6), (0.1, 1.4), (2.2, 3.3)] + self.diag = [(0.25, 0.25), (2.25, 2.25)] + def test_add_with_weight(self): hist = PathHistogram(left_bin_edges=(0.0, 0.0), bin_widths=(0.5, 0.5), From 480b6d3ba91775f96e5ef236be2859898f19d979 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Fri, 15 Nov 2019 07:20:35 +0100 Subject: [PATCH 243/464] Tests for BresenhamInterpolation --- openpathsampling/tests/test_path_histogram.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/openpathsampling/tests/test_path_histogram.py b/openpathsampling/tests/test_path_histogram.py index e17c5d9cb..f80a566bb 100644 --- a/openpathsampling/tests/test_path_histogram.py +++ b/openpathsampling/tests/test_path_histogram.py @@ -114,6 +114,19 @@ def setup(self): ] +class TestPathHistogramBesenhamInterpolate(PathHistogramTester): + Interpolator = BresenhamInterpolation + def setup(self): + super(TestPathHistogramBesenhamInterpolate, self).setup() + self.expected_bins = [ + (0, 0), # initial + (1, 1), (1, 2), (2, 3), (3, 4), (3, 5), (4, 6), # 0->1 + (4, 5), (4, 4), (3, 3), (3, 2), # 1->2 + (3, 1), # 2->3 + (2, 1), (1, 2), (0, 2), # 3->4 + (1, 3), (2, 4), (3, 5), (4, 6) # 4->5 + ] + class TestPathHistogram(object): # tests of fundamental things in PathHistogram, not interpolators def setup(self): From 4a31f0cb998359fbccbe73e00f4473549256711e Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Fri, 15 Nov 2019 08:01:23 +0100 Subject: [PATCH 244/464] Update path density example notebook Also, make BresenhamLike the default --- examples/misc/tutorial_path_histogram.ipynb | 270 ++++++++++++++------ openpathsampling/analysis/path_histogram.py | 2 +- 2 files changed, 192 insertions(+), 80 deletions(-) diff --git a/examples/misc/tutorial_path_histogram.ipynb b/examples/misc/tutorial_path_histogram.ipynb index 2cec1997c..7c057bcf1 100644 --- a/examples/misc/tutorial_path_histogram.ipynb +++ b/examples/misc/tutorial_path_histogram.ipynb @@ -15,47 +15,72 @@ "metadata": {}, "outputs": [], "source": [ + "%matplotlib inline\n", + "import matplotlib.pyplot as plt\n", + "\n", "import openpathsampling as paths\n", "from openpathsampling.analysis import PathHistogram\n", + "from openpathsampling.analysis.path_histogram import (\n", + " BresenhamInterpolation, BresenhamLikeInterpolation, SubdivideInterpolation\n", + ")\n", "from openpathsampling.numerics import HistogramPlotter2D" ] }, { "cell_type": "code", "execution_count": 2, - "metadata": { - "collapsed": true - }, + "metadata": {}, "outputs": [], "source": [ - "%matplotlib inline\n", - "import matplotlib.pyplot as plt\n", - "import scipy\n", - "import pandas as pd\n", - "\n", - "def dataframe_from_counter(counter, ndim):\n", - " mtx = scipy.sparse.dok_matrix(ndim)\n", - " for k in counter.keys():\n", - " mtx[k[0],k[1]] = counter[k]\n", - " df = pd.DataFrame(mtx.todense())\n", - " return df" + "trajectory = [(0.1, 0.3), (2.1, 3.1), (1.7, 1.4), (1.6, 0.6), (0.1, 1.4), (2.2, 3.3)]\n", + "x, y = zip(*trajectory)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's our trajectory. The grid happens to correspond with the bins I'll use for the histograms." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAAD4CAYAAAD8Zh1EAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nO3dd3yV9d3/8dc3k5BJBknIZoURdghBRYMLB1Zx1YGt2tZf5107vKu9W73b++5Sa2vrur2p7S1BrYOCWhRUCGA1CVNCgAwIJ4tsssg64/v744QYQ8aBnJMz8nk+HnmQ5FzJ+eSb63xy8b3e1/dSWmuEEEK4Py9nFyCEEMI+pKELIYSHkIYuhBAeQhq6EEJ4CGnoQgjhIXyc9cSRkZE6KiqKwMBAZ5Xg8s6cOSPjMwIZo+HJ+IzM3cZo3759DVrrqMEec1pDT05O5sknnyQrK8tZJbi8nJwcGZ8RyBgNT8ZnZO42Rkopw1CPyZSLEEJ4CGnoQgjhIaShCyGEh5CGLoQQHkIauhBCeAinpVyEEGK82XSgiie2FlHd3MmUsAAeWpXKTYvi7Pb9paELIcQY2HSgikc2FtBpNANQ1dzJIxsLAOzW1GXKRQghxsATW4v6mvlZnUYzT2wtsttzyBG6EEI4kNaaAxXNVDV3Dvp49RCfvxDS0IUQwgHOdJvYfLCa7FwDR061ooDBbic0JSzAbs8pDV0IIeyopLaN7FwDG/dX0dZtYlZMML9ak4a3UvzinSNfmHYJ8PXmoVWpdntuaehCCDFKPSYLWwtrWJ9rIL+sCT9vL66fH8vazEQWJ05CKQXABF9vSbkIIYQrqjzdwav55fx9TyUN7d0khAfw8LWzuG1JPBFB/udsf9OiOLs28IGkoQshxHmwWDQ7S+rZkGtg+7E6AC6fNZm7M5O4bEYUXl7KabVJQxdCCBs0nenh9b0VvJJXTnlTB5FBfnw7azp3Lkskzo4nNkdDGroQQgxBa83+8tOs/9TAloIaeswWlqWE89CqVFbNjcHPx7Uu5ZGGLoQQA7R3m9h0oIrsXAPHatoI9vfhzowE7s5MYmZ0sLPLG5I0dCGE6FVUY40c/uNAFe3dJubEhvCbm+fxpQVTCPR3/Xbp+hUKIYQDGS2azQer2JBbTv7JJvx8vFg9P5a1mUksSgjrixye5egFtkZDGroQYlyqaOrglfxysj/poK3nIEkRE/npdbO4bUkCkwL9Bv2asVhgazSkoQshxg2zRbOzuI7s3HJ2FNWhgAVR3jy4egkrpkeOGDkcboEtaehCCDEGGtq7+yKHlac7iQr253srp3NHRiLFB/O4bGaUTd9nqIW07LnA1mhIQxdCeCStNXsNp8nONbCl4BRGs2b51AgeuXY2V8+NxtfbGjkstvH7VTd34u/jRZfJcs5j9lxgazSkoQshPEpbl7E3clhOUW0bwRN8uHtZEmszE5k++fwjh2aLZv2nJ3liaxEmy7nN3N4LbI2GNHQhhEc4eqqV7FwDmw5UcabHTFpcCL+7ZR43LJjCRL8La3VFNW08vPEQB8qbWTEjkvsuTub+v+0lyN+HM90m90u5KKUmALsA/97t39RaPzZgGwU8DVwHdAD3aq33279cIYT4XLfJzHsFNWTnGthrOI2/jxer50/hnuVJLIgPPSdyaKsuo5lntpfyws7jhAT48ocvL+CmhXF855X9BPn7sPvfVw6ZhHEmW/5sdQOXa63blVK+wMdKqfe01rn9trkWmNH7tgx4vvdfIYSwu/LGDjbkG3hjbyVNZ3pIiQzkZ9fP5tYl8YRNHF2jzT3RyE83FnCi4Qw3L4rjZ6vnEB7ox+GqFrYU1PD9K2a4ZDMHGxq61loD7b0f+va+Dbzxxo3Ay73b5iqlwpRSsVrrU3atVggxbpktmh3H6sjOM7CzuB4vpbhy9mTWZiZx8bSRI4cjaekw8pv3jvLangoSwgN4+f4MLu2Xfnnqg2JCA3z52oqU0f4oDqOsPXiEjZTyBvYB04FntdY/GfD4u8BvtdYf9378EfATrfXeAds9ADwAEB0dvWTdunUEBQXZ5QfxRO3t7TI+I5AxGp4njE9Lt2ZXpZGcChONXZowf8Vl8T5cluBD+ITRL47V1tbO0TMTyD7SQ1uPZlWyL2um++Lv8/kfiNLTZv47r4vbZvpy/VTnHp2vXLlyn9Y6fbDHbDpToLU2AwuVUmHAP5RSaVrrw/02GexP4zl/KbTWLwIvAqSnp+ugoCCysrJsKWFcysnJkfEZgYzR8Nx1fLTW5Jc1sT7XwNbCGoxmzcXTI1i7LIkr53weORyt6uZOvv2XnRys7yYtLoTf3jyftLjQc7Z78X9ziQyy8Iu1Ky/4BOtYOK/KtNbNSqkc4Bqgf0OvBBL6fRwPVI+6OiHEuNLWZeQfvascFte2EzLBh3syk7k7M5FpUfb7n4bZosnONfD4+8cwmsz8x3Wzue/iZHwG+UPxSWkDnxxv5NHVc1y6mYNtKZcowNjbzAOAK4HfDdjsbeC7SqnXsJ4MbZH5cyGErQqrW8jOLWfzwSo6eszMjw/l8Vvmc8OCKQT4edv1uQZGEb8Ue4bbLp066LZaa57cVkRs6ATuWpZo1zocwZY/N7HA//XOo3sBr2ut31VKfRNAa/0CsAVrZLEUa2zxPgfVK4TwEF1GM1sKTpGda2B/eTP+Pl7cuHAKazOTmB8f5pDnOxtFDJ7g0xdF3Llz55Bfs6Oojv3lzfx6zTwm+Nr3D4sj2JJyOQQsGuTzL/R7XwPfsW9pQghPZGg8w4a8ct7YW8HpDiNTIwP5+eo53Lo4ntCJvg55zqGiiMOxWDS/31ZMYvhEbkuPd0hd9ubaE0JCCI9gMlvYfqyO7LxydhXX4+2luHpONPdkJrF8WsQFXwA0kpZOI7997yiv5g8eRRzO+4U1FFa38tTtC+x2EtbRpKELIRymrq2Lv+dX8Gp+OdUtXUSH+PPglTO4Y2kiMaETHPa8Wmu2FNTwn+8U0tjezQOXTuXBK2fYfFLTbNE89UEx0ycHceNC17is3xbS0IUQdqW1JvdEE9l5BrYersFk0ayYEcmjN8zlytmTB02S2FN1cyePbj7Mh0frmDslhL/eu3TQKOJwNh+sorSunefuXoz3KC9YGkvS0IUQdtHaZWTjvkqy88oprWsnNMCXey9K5u7MJFIiAx3+/P2jiGat+el1s7j/4pTz/gNiNFv444clzJ0SwjVzYxxUrWNIQxdCjMrhqhaycw1sPlhNp9HMgoQwnrjVGjkcq2TIwCjir26aR2LExAv6Xm/sraS8qYOX7k0f9XICY00auhDivHUZzbx7yBo5PFjRzARfL25cEMfazCTmxZ/f9MZo63h2hzWKGOTvw1O3L2DNorhRrbL45+0lLE4MY2XqZDtX63jS0IUQNjvZcIYNeQbe2FdJc4eRaVGBPHbDHG5eHE9ogGMih0PJO9HII/8o4ES97VHEkbySV86pli5+f9sChyVvHEkauhBiWCazhQ+P1rEhz8DukgZ8vBSr5sZwd2Yiy6c6LnI4lNFEEYfT0WPiuZxSLpoWwUXTI+1Q6diThi6EGFRtaxev9UYOa1q7iA2dwA+vmskdSxOYHOK4yOFQtNa8d7iGx96+sCjiSP72yUka2nv4n3tc43ZyF0IauhCij9aaT483kp1nYFthbV/k8Jc3zuXyWY6PHA7lVEsnP99UyIdHay84ijic1i4j/7PzBJfPmsySpEl2+75jTRq6EIKWDiNv7q9kQ56BE/VnCJvoy/2XpHBXRiLJYxA5HMrZKOLZGzRfaBRxJOt2l9HSaeSHV8206/cda9LQhRjHCipbWJ97krc/q6bLaGFRYhi/v20B18+PdfpiVPaMIg6nrUfz0r/KuG5ejF2P+p1BGroQ40xnj5l3DlWzIdfAZ5UtBPh6s2ZRHHcvS3KJhmbvKOJItpQZOdNj4gdXuvfROUhDF2LcOFHf3rfKYWuXiRmTg/jFl+ayZnEcIRPGNnI4lP5RxDWL4vjZ9bOJCPJ32PPVtXbxkcHImoVxzIgOdtjzjBVp6EJ4MLNF8/7hU6zPNfCv0kZ8vBTXpMWwNjOJZSnhLpO17h9FjJ8UwP/dn8FldogijuTZHaWYNXz/yhkOf66xIA1dCA9U09LFq/nl/N/HnTR37ycuLIAfXz2T25cmMDl47COHQ3F0FHE4lac7eCW/nBVxPiRFOO/Erz1JQxfCQ1gsmk+ON5Kda+CDo7VYtCYtwpsnv7yIlbMmu9yqgQOjiC99demYLhvw549KUShumOYa0032IA1dCDfX3NHDm/sq2ZBXTlnDGcID/fj6ihTuzkjiREE+WXOinV3iF1gsmuw8A4+/b40iPnLtLL52if2jiMMpazjDm/sr+cryJCIC6sfseR1NGroQbuqzimbW5xp457Nquk0WliRN4t+umM61aZ9HDk84ucaBimvbePitQ+x3cBRxJH/8sBg/by++nTWdwn3S0IUQTtDZY+btz6rIzi2noKqFiX7e3LIknrXLkpgzJcTZ5Q2py2jmuR2lPD9GUcThFNW08fZn1XzzsmlEBTsuQeMM0tCFcAOlde1syDPw5r5K2rpMzIwO4r9unMtNi+IIdpHI4VDGOoo4kqc+KCLIz4f/d+lUp9XgKNLQhXBRRrOFD47Usv5TA5+eaMTXW3FtWixrM5NYmjzJZSKHQ3FWFHE4BZUtbC2s5QdXziRs4uiW2nVF0tCFcDGnWjp5Na+c1/ZUUNfWTVxYAA+tSuX29AS3mCIYGEX8xooUfnDVzDGJIo7kyW1FTJroy/2XJDu7FIdw/ggLIbBYNB+XNpCda+DDo7VoIGtmFL/JTCIr1fUih0NxdhRxOHtONrGzuJ5Hrp3l8tNUF2rEhq6USgBeBmIAC/Ci1vrpAdtkAZuBst5PbdRa/9K+pQrheU6fORs5NHCysYPwQD/+32XTuCsjkYTwsU9/XChXiCIOR2vNk1uLiAr25yvLk51djsPYcoRuAn6ktd6vlAoG9imlPtBaHxmw3W6t9Wr7lyiEZ9Fac6CimexcA+8eOkWPycLS5En84KqZXJMWg7+Pc1c5PF/9o4iXTI/k12ucE0Uczr9KG8kra+IXX5pLgJ97je/5GLGha61PAad6329TSh0F4oCBDV0IMYyOHhObD1aTnWugsLqVQD9vbk+PZ21mErNiXDdyOJSBUcTf37aAmxc7J4o4HK01T2wrIi4sgDsyEpxdjkMprbXtGyuVDOwC0rTWrf0+nwW8BVQC1cCPtdaFg3z9A8ADANHR0UvWrVtHUFDQKMr3bO3t7TI+I3CHMaput7C93Mi/qk10miA+SHF5oi/Lp/gQ4OPY5ueo8SlqMvPXwm5qzmiWT/Hmzln+hPi5ViM/60Cdiaf3d3Nfmh+XxZ87d+4O+1B/K1eu3Ke1Th/sMZtPiiqlgrA27Qf7N/Ne+4EkrXW7Uuo6YBNwzvJlWusXgRcB0tPTdVBQEFlZWbaWMO7k5OTI+IzAVceox2Rh25Ea1n9qIK+sCT9vL66bN4W1mUksSRq7yKG9x8caRTzGq/nl1ijil+c5PYo4HItF89s/7SY5wpuf3nkZvoPM6bvqPnQhbGroSilfrM18g9Z648DH+zd4rfUWpdRzSqlIrXWD/UoVwvVVNX8eOWxo7yYhPICfXDOL29PjnXoxzWhprXm/N4rY4GJRxOFsOXyKYzVtPH3HwkGbuaexJeWigL8AR7XWTw2xTQxQq7XWSqkMwAtotGulQrgoi0Wzq6Se7Nxyth+zRg4vT53M2uVJXDYjCi83iRwOZWAU8S8uFEUcjsls4akPipkZHcTq+VOcXc6YsOXP68XAPUCBUupg7+d+CiQCaK1fAG4FvqWUMgGdwB36fCbnhXBDTWd6eGNvBRvyyilv6iAyyI9vZU3jzoxE4ie5VsrjQrh6FHEkmw5Wc6L+DC+sXeI2Of7RsiXl8jEw7GhorZ8BnrFXUUK4Kq01+8utkcN/Flgjhxkp4fx4VSrXzI3Bz8c9mt1IBkYRf7Umza1uAtFjsvDHD4uZFxfKqrmutXywI7n2BJgQLuJMt4lNB62rHB491UqQvw93LE3g7mVJpMa4/70oz+o2mXl2u+tHEUfy+t4KKk938t83pbld7aMhDV2IYRTXtpGda2Dj/irau03Mjg3h12vmcePCKQT6e9bLJ7+siYc3HuJE/RluWjiFn6+e45YncruMZv68vYT0pEkuncBxBM/aI4Wwgx6ThfcLa8j+1ED+ySb8fLxYPS+WuzOTWJwY5nFHfOdEEV1gVcTRyM41UNvazdN3LPK439VIpKEL0avydAev5JXz+t4KGtp7SAyfyCPXzuK29ATCAz1vqVV3jSIO50y3iedzjnPJ9Egyp0Y4u5wx576/OSHswGzR7CquJzvXwPaiOhRw+axo7lmexIrpkW4fORxKTUsXP998mA+OuFcUcSR/++QkjWd6+NHVM51dilNIQxfjUmN7N6/vreSVfAMVTZ1EBvnz3ZXTuSMjkbiwAGeX5zAWi2ZDnoHfuWkUcTgtnUb+Z+dxrpw9mUWJk5xdjlNIQxfjhtaafYbTrM818F5BDT1mC5lTw/nJNbO4eo7nRA6H4u5RxJGs232C1i4TP7wq1dmlOI00dOHx2rtN/ONAFRtyDRyraSPY34e7liVy97JEZkR7TuRwKP2jiIFuHEUcTmN7Ny99XMb182Nd+mbZjiYNXXisYzWtZOca+Mf+Ks70mJk7JYTf3GyNHLrzib/zUdRk5pdP73b7KOJIXth5nE6jmR9cOT7nzs8aH3u1GDe6TWbeP1xDdq6BPSdP4+fjxQ3zp7A2M5GFCZ4XORzK51HELo+IIg6ntrWLlz81sGZRPNMnu88yuI4gDV14hIqmDjbklfPG3goaz/SQHDGR/7huNrcuiWeSB0YOhzIwirgq2Yc/3H+pR/+P5JntpZgtmgevPGfF7nHHc3/LwuOZLZqDdSb+76/55BTXo4ArZ1sjhxdP89zI4VD6RxHnxIaw7qvpNJUe9OhmXtHUwWt7yvny0gS3ugero3jub1p4rIb2bv6+p4JX8sqpau4mKriV710+gzszEogN9dzI4VD6RxGNZgsP90YRfb29yCl1dnWO9aePSlBK8b3L5egcpKELN6G1Zs9Ja+Tw/cOnMJo1F02L4KZkCw/edvm4uHnBYEpq23h4YwH7DKc9Moo4nOP17by1v5L7Lk4hJnSCs8txCdLQhUtr6zLyjwNVZOcaKK5tJ3iCD2szk7h7WRLTJweRk5MzLpt5t8nMszuO83xOqcdGEUfyxw9LmODrzbeypjm7FJchDV24pCPVrWTnGdh0oIqOHjPz4kL53S3zuGHB+IkcDiW/rIlHNh7iuIdHEYdz9FQr73xWzXdWTiNynP3swxnfrwzhUrqMZt47fIr1nxrYX96Mv48XX1pgvbHygoQwZ5fndP1XRYwLC+Bv9y0lK3Wys8tyiqc+KCZ4gg8PrJCj8/6koQunK2/sYEO+gdf3VHC6w0hKZCA/u94aOQybOH4ih8N5//ApHt1sjSJ+/ZIUfni1e6+KOBoHK5r54EgtP7pqJqETfZ1djksZn3uEcDqzRbP9WB3ZuQZ2ldTjpRRXzY5mbWYSF02LGHeRw6HUtHTx6ObDbOsXRZwfP77/t/L7bUWEB/px3yUpzi7F5UhDF2Oqrq2L1/dU8Gp+BVXNnUSH+PP9K2Zwx9JESSr0M1wUcTzLO9HI7pIG/uO62QR52B2j7EFGRDic1pq8sibW5xrYergGk0VzyfRIfr56NlfMjh73TWqg/lHEi6dH8Os188ZNFHE4Wmt+v62YycH+3LM8ydnluCRp6MJhWruMbNxXyYa8ckrq2gkN8OWrFyVz97JEpkaN7zU3BjMwivjkbQu4ZZxFEYezq6SB/JNN/NeNc5ng6+3sclySNHRhd4erWtiQZ2DTgWo6jWYWxIfy+K3zuWH+FAL85IU4mD0nm3j4rc+jiD9bPUfieP1Yj86LiAsL4MtLE51djsuShi7sosto5p+HTpGdZ+BAeTMTfL24cUEcazOTPOLWZo7S2mWNIr6SJ1HE4Ww7UsuhyhYev3W+x9+IZDRGbOhKqQTgZSAGsAAvaq2fHrCNAp4GrgM6gHu11vvtX65wNScbzrAhz8Ab+ypp7jAyNSqQR1fP4ZbF8RIpG4FEEW1jsWie2lbM1MhAbl4U5+xyXJote48J+JHWer9SKhjYp5T6QGt9pN821wIzet+WAc/3/is8kMlsYfuxOtbnGthd0oCPl+LqudGsXZbE8mkRMuc7Aokinp93DlVTVNvGn+5c5BH3PnWkERu61voUcKr3/Tal1FEgDujf0G8EXtZaayBXKRWmlIrt/VrhIepau3htTwWv5pdzqqWLmJAJ/ODKmdyRkUB0iEQOR2KxaDbkl/P4e8fokSiiTUxmC3/8sIRZMcGsnhfr7HJcnrL2YBs3VioZ2AWkaa1b+33+XeC3WuuPez/+CPiJ1nrvgK9/AHgAIDo6esm6desICpK0w1Da29udPj5aa441WdheYWR/rRmzhrQIb1Ym+rAwyhtvJ18A5ApjZIuqdgt/O9xNSbOFORFe3DvXn8kTHd/I3WV8hrKr0shLh3v4t0X+LI52zHSUu43RypUr92mt0wd7zOYRUkoFAW8BD/Zv5mcfHuRLzvlLobV+EXgRID09XQcFBZGVlWVrCeNOTk6O08anpdPIW/sq2ZBn4Hh9F2ETfbn/kkTuWpZESqTrZKKdOUa26DaZeW7HcZ779GwUcd6YRhFdfXyG020y8x9P7mRBfCg/uP1ih42ZO4/RQDY1dKWUL9ZmvkFrvXGQTSqBhH4fxwPVoy9PjLWCyhaycw1s/qyKLqOFhQlh/P62BVw/P1ayv+epfxTxxt5VESWKaLu/77FeTfybm+fJeRkb2ZJyUcBfgKNa66eG2Oxt4LtKqdewngxtkflz99FlNPPOZ9Vk55XzWUUzAb7e3LTQGjlMi5PI4fkaGEX8631LWSlRxPPS2WPmz9tLyUgJZ8WMSGeX4zZsOUK/GLgHKFBKHez93E+BRACt9QvAFqyRxVKsscX77F+qsLeyhjNsyLVGDls6jUyfHMR/3jCHNYvjCQ2QyOGFGBhF/MFVMwmUNUfO2/rck9S3dfPsXYvl6Pw82JJy+ZjB58j7b6OB79irKOE4JrOFD49aVzn8uNQaOVyVFsPaZUlkTg2XF88Fkiii/bR3m3g+5ziXzowiIyXc2eW4FTl0GCdqW7t4Nb+c1/IrqGntYkroBH501Uy+nJHA5GCJHF4oiSLa30sfl3G6w8iPrprp7FLcjjR0D6a15pPjjWTnGth2pBazRXPZzCj+66Y0VqZGyUUao1RS28YjGwvYK6si2k1zRw//u+sEV8+JlrtUXQBp6B6opcPIm/sr2ZBr4ETDGSZN9OXrl6Rw17JEaTh20BdFlFUR7e7FXSdo7zHxw6vl6PxCSEP3IJ9VNJOda+CdQ9V0GS0sTgzjqdsXcN08iRzay56TTTyysYDSunaJItpZQ3s3f/3XSW6YP4VZMSHOLsctSUN3c509ZyOHBg5VtjDRz5s1i+JZm5nI3CkSObSX1i4jv3vvGBskiugwz+04TrfJzINXznB2KW5LGrqbOl7fzobcct7cV0Frl4kZk4P45Y1zuWlRHCETJHJoT+8fruGxtw9T39bN1y5J4YcSRbS7Uy2dZOcZuGVxvNz8ZBRkr3QjRrOFD47Ukp1r4JPjjfh6K65Ji2XtskQyUiRyaG/9o4izY0N48Z50OVHnIH/eXorWmn+7Qo7OR0Mauhs41dLJq/kVvJZfTl1bN3FhATy0KpXb0xOICpb5W3sbGEX8yTWz+PoKiSI6SnljB6/vqeDOjEQSwic6uxy3Jg3dRVksmsMNZl5dv5cPj9Zh0dbI4W8yk8hKnez0VQ49lUQRx94fPyrG20vx3cunO7sUtycN3cU0d/Tw5r5KsnMNnGzsIjzQwjdWTOXuZXL04kgDo4hP3DqfW5fEyzSWg5XWtbHpQBVfuyRF1tS3A2noLkBrzWeVLaz/1MC7h6rpNllIT5rE1XFmfnT7Svx9JHLoSP2jiF9aMIVHb5Ao4lj5wwclBPh6883Lpjm7FI8gDd2JOnpMvH3QGjk8XNVKoJ83ty6JZ21mErNjQ8jJyZFm7kASRXSuwuoW/llwiu9dPp0I+QNqF9LQnaC0ro3s3HLe2l9JW5eJ1Ohg/uumNNYsiiNI4nBjQqKIzvfUtmJCJvjw9RVTnV2Kx5A9eIz0mCxsO1JDdq6B3BNN+Hl7ce28GNZmJpGeNEnmasdIbas1iri1UKKIzrS//DQfHavjoVWpslSzHUlDd7Dq5k7rKod7Kqhv6yZ+UgD/fo01cijztGPHYtG8kl/O7ySK6BJ+v62IiEA/7r0o2dmleBRp6A5gsWh2lzaQnWvgo6O1aGBl6mTuyUzi0plREjkcY/2jiBdNs0YRk13ovqjjzSfHG/hXaSM/u362THPZmYymHZ0+08Mb+yrYkFeOobGDiEA/vnnZNLlgwkkkiuh6tNb8flsxMSETWJuZ5OxyPI409FHSWnOgopnsTw28W3CKHpOFjORwfnjVTK5Ji5GUipPsPdnEwxJFdDk5xfXsM5zmv29KkxVAHUAa+gU6021i88FqsnMNHDnVSpC/D19OT2BtZhKpMcHOLm/ckiii67IenReREB7A7ekJzi7HI0lDP08ltW1k5xrYuL+Ktm4Ts2KC+dWaNG5cKJFDZ+sfRbz/4hR+dLVEEV3J1sIaDle18uRtC/DzkZPRjiB7uw16TBa2FtawPtdAfpk1cnj9/FjWZiayOFEih87WP4o4KyZYooguyGyxzp1PiwpkzaI4Z5fjsaShD6PydAev5pfz9z2VNLR3kxAewMPXzuK2JfFyZZsLsFg028uNfG/HTokiurh3PqumpK6dZ+5aJCkvB5KGPoDFotlZUs+GXAPbj9UBcPmsyazNTOLSGVF4yc7oEkrrrFHEPSd7JIro4oxmC3/4sJjZsSFclxbr7HI8mjT0Xk1nenh9bwWv5JVT3tRBZJAf386azp3LEokLC3B2eaJXt8nM8znHeW7HcQL8vPlamh8/u3uZTHu5sLf2VWJo7GDdV9LlgOVYJW8AABcBSURBVMjBRmzoSqmXgNVAndY6bZDHs4DNQFnvpzZqrX9pzyIdRWvN/vLTrP/UwJaCGnrMFpalhPPQqlRWzY2REzcuZrAo4uG9n0ozd2HdJjN/+qiEhQlhXDFb0kaOZssR+t+AZ4CXh9lmt9Z6tV0qGgPt3SY2HagiO9fAsZo2gv19uDMjgbszk5gZLZFDV3NOFPHepaycJc3BHbyaV051SxeP37pA/vCOgREbutZ6l1Iq2fGlOF5RjTVy+I8DVbR3m5gTG8Jvbp7HlxZMkXibi5Ioovvq6DHxzI7jZE4N5+LpEc4uZ1xQWuuRN7I29HeHmXJ5C6gEqoEfa60Lh/g+DwAPAERHRy9Zt24dQUGOvcO30aLZV2Nme4WR4tMWfLxgWYwPKxN9mBbq5dJHDe3t7Q4fH1d1ustC9tEe9tWaSQj24r40P6aGnntl4XgeI1s4c3y2nOjh9WIj/7FsAjMmue5Voe62D61cuXKf1jp9sMfscaizH0jSWrcrpa4DNgGD3rpba/0i8CJAenq6DgoKIisryw4lnKuiqYNX8st5fU8FjWd6SIqYyE+vS+S2JQlMCvRzyHPaW05OjsPGx1X1rYq44xg9Zs2/X5PKN1ZMHTKKOB7H6Hw4a3xau4w8uGsHWalRfGNNxpg///nwpH1o1A1da93a7/0tSqnnlFKRWuuG0X7v82W2aHYW15GdW86OojoUcMXsaNZmJrFieqScYXdxn0cRZVVEd/fSx2U0dxj50VWpzi5lXBl1Q1dKxQC1WmutlMoAvIDGUVc2iE0HqnhiaxHVzZ1MCQvgoVWp3LQojob27r7IYeXpTqKC/fneyunckZHIFIkcuryBUURZFdE99X99AsyPC2FefKiTqxpfbIktvgpkAZFKqUrgMcAXQGv9AnAr8C2llAnoBO7QtkzMn6dNB6p4ZGMBnUYzAFXNnfz7W4d4+ZOTFFS3YDRrlk+N4JFrZ3P13Gi5WtBNyKqInmHg6xOgqLadTQequEku9R8ztqRc7hzh8Wewxhod6omtRV/YWcC6xsqBima+elEyazMTmT5ZIofuorXLyOPvHyM7V6KInmCw12e3ycITW4ukoY8ht8l/nf1v3EAaWJQYRpC/3JfQXWwtrOHRzRJF9CRDvT6H+rxwDLd5FU0JC6BqkJ1DAd9/7SAAieETyUgJJyMlnGUp4SSGT5R5WBciqyJ6rqFen3IOa2y5TUN/aFXqOXN0Ab7e/OqmNGbGBJNX1kR+WSMfHa3lzX2VAESH+JOREtHX4KdHBUnSxQkG3qB5pCiicD8PrUrl4Y2H6DJa+j4X4OvNQ6sk5TKW3Kahn52HGyzlApAWF8rXLknBYtEcr2/vbfBN5JU18s5n1QBMmujL0mTrEXzm1Ahmx4bIUp4OVlrXziMbD0kU0cPdtCiOgspm/vKvkyg45/UpxobbNHSw7jQj7SBeXooZ0cHMiA5mbWYSWmvKmzr6Gnx+WRPbjtQCEOTvQ3rypL4j+HlxYbIgl50MjCI+fut8bpMookfrNluY6OfNwUevlteRk7hVQ78QSimSIgJJigjsu4/hqZbOvuaeX9bE40VFAEzw9WJRwucNflHiJAL8XPeSZVfVP4p4w4IpPLp6DlHBEkX0dLtLGlg+NUKauRN5fEMfTGxoADcujOPGhdaj/cb2bvacPG1t8Ccb+fP2Ep7W4OutmBcXSkZKBMumhrMkaRIhEyRNMxSJIo5fhsYzGBo7uP/iFGeXMq6Ny4Y+UESQP9ekxXBNWgxgbUz7DKfJO2E90bpu9wle2HkcLwVzpoSQkWw90bo0eZLciq6XRBHHt10l1pU+VsyIdHIl45u84gYRMsGXlamTWZlqPbrs7DFzoPx03zz8hjwDL/3Lej+PGZOD+kUlI4gJneDM0sdcbWsXj20u5P3CGokijmO7i+uJnxRAipzwdipp6DYI8PPmoumRXDTdevTRbTJzuKqlr8FvPljNhrxy4ItZ+MyUCBLCAzzyRKDFonl1Tzm/fe8YPSaJIo5nRrOFT443csOCKR65r7sTaegXwN/HmyVJ4SxJCufbWWAyWzhW00buiUbyy5q+kIWPCZnwhYudpk8OcvudfmAU8Vdr5smR2Th2sKKZ9m4Tl8p0i9NJQ7cDH28v0uJCSYsL5esrpmKxaEr7ZeFzTzTydm8WPjzQj6XJk6wnWlPC3SoL32Oy8HzOcZ7dUSpRRNFnd3E9Xoq+/8EK55GG7gBeXoqZ0cHMjA7mniGy8FsLrVn4YH8flrhBFn6foYmH3yqgRKKIYoCdJQ0sTAgjNEASYM4mDX0MjJSFzytrIqdfFn5xorXB+7eYWdZjdmoWvq3LyOPvF5GdZ2BKqEQRxRc1d/RwqLKZ718x6E3KxBiThu4kA7PwDe3d7D3Z1HcU//RHJWgNT+3fyvz4sL55+LHMwm8trOGxzYXUtnVx70XJ/PjqVIkiii/4uLQBrWHFjChnlyKQhu4yIoP8uSYtlmvSYgFo6TTyt3d30hkUT35ZI/+76wTP55ybhc9ICSfczvdIHRhFfOGeJSyUKKIYxO7iBoIn+LBA7kzkEqShu6jQAF8WRPmQlTULgI4eEwfLm4fNwi+bGkFGcvgFZ+EliijOh9aa3SX1XDI9Eh/ZR1yCNHQ3MdHP55wsfEHl4Fn4pIiJZCR/frGTLVn40rp2frqxgPyTTSyfGsGvb5Yoohje8fp2qlu6+O7lMt3iKqShuyl/H2/Sk8NJTw7nOyutWfijp9rIK7Nm4T84WssbNmThJYooLtSuYrnc39VIQ/cQPt5ezIsPZV687Vl4Hy8v/llwCkCiiOK87S6pZ2pkIAnhE51diuglDd1DDZeF/+hobV8O/qz2LiNv7qskIyWceXGhLpmFF66j22Qm90QTt6fHO7sU0Y809HHibBa+qKaNzypaUAqumRvDihlRHK5uIb+siR1Fx4AvZuEzUsJZlCDrwosv2nfyNJ1GM5fOlPlzVyINfZyoa+3isbcLee/w0FHEobLwvt7qC1n49KRJBMu68OPazpJ6fL0VmVMjnF2K6EcauoezWDSv7angN+8dpdtk4aFVqTxw6eBRxMGy8PsNp8ntPdHaPws/d0poX4Nfmmz/LLxwbbuLG1icOEkuNHMxI/42lFIvAauBOq112iCPK+Bp4DqgA7hXa73f3oWK8zfaKGJogC8rZ03uu9S/o8fEgb4sfCPZuQb+8rE1Cz8z+uy68NZFx6JDxte68ONJfVs3R0618tCqVGeXIgaw5c/r34BngJeHePxaYEbv2zLg+d5/hZM4Koo40c+Hi6dHcvEQWfhNB6rJzj03C585NYL4SZ65Lvx49HFpPQCXyuX+LmfEhq613qWUSh5mkxuBl7XWGshVSoUppWK11qfsVKM4D2O5KuL5ZOFjQ7+YhZ8W5f7rwo9Xu4sbCA/0Y+6UEGeXIgZQ1j48wkbWhv7uEFMu7wK/1Vp/3PvxR8BPtNZ7B9n2AeABgOjo6CXr1q0jKChoVD+AJ2tvb7d5fDpNmjeKe9hRbmLSBMVX5vixcLJz5zctWlPdrik6baaoyUzxaQvN3db9LdgXZoZ7kzrJm9RwLxKCvfC6gAZ/PmM0Htl7fCxa8+COTuZEePHNBZ4xreZu+9DKlSv3aa3TB3vMHq/4wV6Fg/6V0Fq/CLwIkJ6eroOCgsjKyrJDCZ4pJyfHpvHZVljDLzYXUttm4qsXJfPjVakEueDJKq01hsaOviWD8082su9YJ2BdFz6998Yf55OFt3WMxit7j8+R6lZat+7mlovnktW7FLS786R9yB6v+kqg/282Hqi2w/cVI7AliuhKlFIkRwaSHBnI7Uutu0x1cyd7+kUlz2bhA3y9WZwU1req5KLEMCb4Shbe2XaX9M6fS/7cJdmjob8NfFcp9RrWk6EtMn/uWOcTRXR1U8IGXxc+94S1wf/xo+K+LPyCAevCSxZ+7O0qqSc1OlhSTC7Kltjiq0AWEKmUqgQeA3wBtNYvAFuwRhZLscYW73NUscLzV0UcLAu/z/D5EfyLu07wXL8s/BSfbrqjaiQLPwY6e8zsKTvNV5YnObsUMQRbUi53jvC4Br5jt4rEoHpMFl7YeZxntvdGEW+Zz23pnr8qYmiAL5fPiubyWdHAuVn47SdNbF2/D/g8C7+sdx5ejiLtK7eskR6zRaZbXJjrnTkT5+gfRVw9P5bHbpg7bldFHJiF/2D7DiZNXUBe74nWf+yv6svCJ0dM/MLFTpKFH53dxQ34+3iRkRLu7FLEEKShu7BOk+bnmw6TnWcgNmQCL92b3nekKqx8vdQ5Wfgjp1r7kjTbjtTy+l7JwtvD7pJ6MlLC5eS0C5OG7qK2Fdbw092dNPcY+Opy140iuhofby/mx4cxPz6sb134krp28ssayStr4pPjjWw+aA1hRQT6sbT3ataMlHBmx4bg7SUNfjDVzZ2U1LVzu4dEFT2VdAgX0z+KGB+keOlrF7EocZKzy3JbXl6K1JhgUmOCuWd58hey8GcXHXu/sAaA4Ak+X2jw8+JC3TI55Agfl/TenWim3J3IlUlDdxGDRRFTdYU0czsbLAtf1dzJnrMXO5U1sv1YHSBZ+P52ldQzOdif1OhgZ5cihiEN3QUMFUXMyal0dmnjQlxYAHGL4rhp0edZ+M8b/NBZ+PTk8HExDWa2aD4ubeCKWdFyzsHFef7e6MLGaxTR1UUG+XPtvFiunTdyFj4tLrRvVcmlyeFM8sAs/OGqFpo7jFwq0y0uTxq6k+wznOaRjYcorpUooqsbLAu/39Dcd6L15VwD63rXhU+NDv5CkmayB2ThdxVbL/e/ZLo0dFcnDX2MtXUZeWJrEetzJYrorib6+XDJjEgumfH5uvCHKlv6opIb91eyPtcAeEYWfndJA2lxIUQEyQGHq5OGPoa2Fdbw6OZCatu6JIroQfx9vFmabJ1yGSkLP6UvC2890TotKtClG3xbl5H95ad54NKpzi5F2EC6yRgYuCri82sXS3rFgw2Xhc8ta+JfxxvZ1C8Lf3aKJiMlnFkxrpWF//R4IyaLZoXcncgtSEN3IE9aFVFcuMGy8CcbO/rm4PPLmnjvsGtm4XeXNDDRz5slSXIA4g6koTvI8fp2HtlYQH5ZE5lTw/n1mnlMjXKfu6IIx1FKkRIZSEpkIF9emggMn4VfkjSpr8EvTBjbLPyuknqWT42w6WYjwvmkodtZ/yjiBF8vfnfLPG5PT3DpeVLhfAOz8PVt1nXhzy469ocPrVl4P28vFiSE9s3DL0ma5LDzMIbGMxgaO7jvomSHfH9hf9LQ7WhgFPHRG+YwOdj9Y2ti7EUFD8jCdxjZa2jqO9H6ws4TPLvDsVn43b2X+8tyue5DGrodSBRROFroRF+umB3NFbOt+9WZbuu68MNl4ZdNDcfUZbng59xVXE9cWIBH3UDF00lDH6UPjtTy802HJYooxlSg/9BZ+NwTjbzVLwv/9OGcviP4DBuz8EazhU+PN7J6QaxMF7oR6TwXqK61i/98p5AtBRJFFM73xSz8dExmC4XVrbzy4R4avYJ4v7CGv++tAEbOwm86UMV///MIbd0mth6uYVlKRN/cvnBt0tDPk8Wi+fveCn69RaKIwnX5eHuxICGM0ym+ZGWlY7Foiuva+ubgh8rCn+kx8ez2UjqN1qmapg4jj2wsAJCm7gakoZ8HiSIKd+XlpZgVE8KsmBC+MkIWfqBOo5knthZJQ3cD0tBtIFFE4WmGysJf/Nvtg25f3dw5luWJCyQNfQT9o4jXz4/lMYkiCg8VFxZAXFgAVYM07ylhAU6oSJwvmfgdQluXkUc3H+bWFz6hrcvEX76azrN3LZZmLjzaQ6tSCRhwJWqArzcPrUp1UkXifMgR+iAkiijGq7Pz5E9sLaK6uZMpYQE8tCpV5s/dhE1dSil1DfA04A2s01r/dsDjWcBmoKz3Uxu11r+0Y51jQqKIQlibujRw9zRiQ1dKeQPPAlcBlcAepdTbWusjAzbdrbVe7YAaHU6iiEIIT2DLEXoGUKq1PgGglHoNuBEY2NDdkkQRhRCewpaGHgdU9Pu4Elg2yHbLlVKfAdXAj7XWhQM3UEo9ADwAEB0dTXt7Ozk5OeddtD2YLJotZUbePm7EzwvuS/Pj0rguygv3Uu6Uis7lzPFxFzJGw5PxGZknjZEtDX2wsLUe8PF+IElr3a6Uug7YBMw454u0fhF4ESA9PV0HBQWRlZV1fhXbwedRRKNLRxFzcnKcMj7uRMZoeDI+I/OkMbKloVcCCf0+jsd6FN5Ha93a7/0tSqnnlFKRWusG+5RpH+3dJp54/xgv5xqICZnAX76a3rd6nRBCuDtbGvoeYIZSKgWoAu4A7uq/gVIqBqjVWmulVAbWfHujvYsdjQ+P1PLzzYepaZUoohDCM43Y0bTWJqXUd4GtWGOLL2mtC5VS3+x9/AXgVuBbSikT0AncobUeOC3jFHVtXfzi7SP8s+AUqdHBPHv3YhZLFFEI4YFsOkTVWm8Btgz43Av93n8GeMa+pY3O2Sjib7Ycpas3iviNFVPl3ohCCI/lkXMOEkUUQoxHHtXQe0wW/mfncf68o5QJPrIqohBifPGYhr6//DSPvFVAUW2bS0cRhRDCUdy+oQ+MIq77SjpXzpEoohBi/HGrhr7pQNUXVoG7Ni2GfxackiiiEELgRg1904EqHtlYQKfRDFjvrrLu4zJiQvx561sXSRRRCDHuuU2G74mtRX3NvD8vpaSZCyEEbtTQh7qn4amWrjGuRAghXJPbNPSh7mko9zoUQggrt2nocq9DIYQYntucFJV7HQohxPDcpqGD3OtQCCGG4zZTLkIIIYYnDV0IITyENHQhhPAQ0tCFEMJDSEMXQggPoZx1pzilVD1wBnCpG0m7mEhkfEYiYzQ8GZ+RudsYJWmtowZ7wGkNHUAptVdrne60AlycjM/IZIyGJ+MzMk8aI5lyEUIIDyENXQghPISzG/qLTn5+VyfjMzIZo+HJ+IzMY8bIqXPoQggh7MfZR+hCCCHsRBq6EEJ4iDFp6Eqpa5RSRUqpUqXUw4M8rpRSf+p9/JBSavFY1OUqbBifLKVUi1LqYO/bo86o01mUUi8ppeqUUoeHeHy87z8jjc+43n8AlFIJSqkdSqmjSqlCpdT3B9nG/fcjrbVD3wBv4DgwFfADPgPmDNjmOuA9QAGZQJ6j63KVNxvHJwt419m1OnGMLgUWA4eHeHzc7j82js+43n96xyAWWNz7fjBQ7Il9aCyO0DOAUq31Ca11D/AacOOAbW4EXtZWuUCYUip2DGpzBbaMz7imtd4FNA2zyXjef2wZn3FPa31Ka72/9/024Cgw8OYKbr8fjUVDjwMq+n1cybkDacs2nsrWn325UuozpdR7Sqm5Y1Oa2xjP+4+tZP/ppZRKBhYBeQMecvv9aCzuWKQG+dzArKQt23gqW372/VjXb2hXSl0HbAJmOLwy9zGe9x9byP7TSykVBLwFPKi1bh348CBf4lb70VgcoVcCCf0+jgeqL2AbTzXiz661btVat/e+vwXwVUpFjl2JLm887z8jkv3HSinli7WZb9BabxxkE7ffj8aioe8BZiilUpRSfsAdwNsDtnkb+ErvWeZMoEVrfWoManMFI46PUipGKaV638/A+ntrHPNKXdd43n9GJPuPNcEC/AU4qrV+aojN3H4/cviUi9bapJT6LrAVa6LjJa11oVLqm72PvwBswXqGuRToAO5zdF2uwsbxuRX4llLKBHQCd+je0/LjgVLqVaxJjUilVCXwGOALsv+ATeMzrvefXhcD9wAFSqmDvZ/7KZAInrMfyaX/QgjhIeRKUSGE8BDS0IUQwkNIQxdCCA8hDV0IITyENHQhhPAQ0tCFEMJDSEMXQggP8f8Bsh5Rzh4LY0gAAAAASUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], "source": [ - "trajectory = [(0.1, 0.3), (2.1, 3.1), (1.7, 1.4), (1.6, 0.6), (0.1, 1.4), (2.2, 3.3)]\n", - "x, y = zip(*trajectory)" + "plt.grid(True)\n", + "plt.plot(x, y, 'o-')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "Here's our trajectory. The grid happens to correspond with the bins I'll use for the histograms." + "The first type of histogram is what you'd get from just histogramming the frames." ] }, { @@ -66,7 +91,7 @@ { "data": { "text/plain": [ - "[]" + "" ] }, "execution_count": 4, @@ -75,25 +100,33 @@ }, { "data": { - "image/png": "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\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAWMAAAD8CAYAAACihcXDAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAATqUlEQVR4nO3db6hdV53G8ee51+tY/EPEG2gmTaPDhA5G0KaXtEGYCeJAGwJ50xniCwt9E1oqKNgXTl9UfDkw9EVNbbhgqQVRBLWEcoP4Qsd2INXbSxIbo8MdYWho0KRi0tBYJ/KbF3vfcjy95+x17t377LXv/n7KJmefs846a3e3TxZr77W2I0IAgHbNtN0AAABhDABZIIwBIAOEMQBkgDAGgAwQxgCQgcowtv0+2z+3fdb2edtfW6fMQdtXbZ8pt8ebaS4AtCsxE237Sdurts/Z3ldV73sSfvttSZ+JiOu25yS9ZPtURJweKvdiRBxOOxwA6KyUTLxP0p5yu1vS0+WfI1X2jKNwvdydKzdmigDopcRMPCLpubLsaUnbbO8YV29Kz1i2ZyW9IunvJT0VES+vU+yA7bOSXpf0aEScX6eeY5KOSdL73//+u+644x9Sfh5Az62svHIlIrZvpo7ZD+2OuHkjqWzcuHxe0p8G3lqMiMW1nYRM3CnptYH9i+V7l0b9ZlIYR8RfJH3K9jZJP7T9iYh4daDIiqTdZbf9kKTnVXTPh+tZlLQoSXfdtRD/9fJyys8DSHTwP/6z7SY0Y+Xg/262irh5Q39zx78mlf3Tmaf+FBELI+uqzkSv97VxvznR3RQR8UdJP5V079D719a67RGxJGnO9vwkdQNAsyx5Jm1LNCoTVfSEdw3s36Zi1GCklLsptpfpL9u3SPqspF8PlbnVtsvX+8t636iqGwCmxpJmZtO2cdUkZKKkk5IeKO+quEfS1YgYOUQhpQ1T7JD0rXKMZEbS9yLiBdsPSVJEnJB0v6SHbd+UdEPS0WA5OAC58XqjBxNLycQlSYckrUp6S9KDVZVWhnFEnJN05zrvnxh4fVzS8bTjAIA2eKIhiFESMzEkPTJJvUkX8ABgS6inZ9wIwhhAP1i19IybQhgD6AnTMwaALFTcKdEmwhhAT9RzAa8phDGAfrAYpgCALNAzBoC2MUwBAO2zpFku4AFA+xgzBoC2MUwBAHmgZwwAGaBnDAAtM9OhASAPTIcGgLZxAQ8A8sAwBQC0jPWMASAHDFMAQB64gAcAGWDMGABa5ryHKSpbZvt9tn9u+6zt87a/tk4Z237S9qrtc7b3NdNcANiEtYkfVVsLUnrGb0v6TERctz0n6SXbpyLi9ECZ+yTtKbe7JT1d/gkA2XCXhykiIiRdL3fnyi2Gih2R9FxZ9rTtbbZ3RMSlWlsLABtUPHUp3zBOGkCxPWv7jKTfS/pxRLw8VGSnpNcG9i+W7w3Xc8z2su3ly1cub7TNADA5W55J29qQdAEvIv4i6VO2t0n6oe1PRMSrA0XWa/1w71kRsShpUZLuumvhXZ8D2JyfPvpPbTehEbf8Wz31dL5nvCYi/ijpp5LuHfrooqRdA/u3SXp9Uy0DgJrZTtoq6thl+ye2L5Q3NXxxnTIHbV+1fabcHq9qW2XP2PZ2Sf8XEX+0fYukz0r696FiJyV9wfZ3VVy4u8p4MYDc1NQzvinpyxGxYvuDkl6x/eOI+NVQuRcj4nBqpSnDFDskfcv2rIqe9Pci4gXbD0lSRJyQtCTpkKRVSW9JejC1AQAwFdb6A6oTKjual8rXb9q+oOIa2XAYTyTlbopzku5c5/0TA69D0iObaQgANMmqHoKYuE77oyrycfimBkk6YPusiiHbRyPi/Li6mIEHoDdmZpIvk83bXh7YXyxvQHiH7Q9I+r6kL0XEtaHvr0jaXc7POCTpeRXzMEYijAH0xgQ94ysRsTCmnjkVQfztiPjB8OeD4RwRS7a/YXs+Iq6MqjPfidoAUCdPsI2rpkj0b0q6EBFPjChza1lOtveryNo3xtVLzxhAb9Q0ZvxpSZ+X9MtyMpwkPSbpdumd62n3S3rY9k1JNyQdLa+tjUQYA+iFui7gRcRLqug/R8RxSccnqZcwBtAbbU11TkEYA+gH5z0dmjAG0BuEMQBkgDAGgJY1MQOvToQxgP7IN4sJYwA94YmmQ08dYQygNximAIAc5JvFhDGA/qBnDAAtS3mkUpsIYwC9QRgDQAZYmwIAMkDPGADaxkJBANA+S8o4iwljAH2R990UlXMDbe+y/RPbF2yft/3FdcoctH3V9plye7yZ5gLAxs3MOGlrQ0rP+KakL0fEiu0PSnrF9o8j4ldD5V6MiMP1NxEAauCOD1NExCVJl8rXb9q+IGmnpOEwBoBsWWqt15tioiWMbH9U0p2SXl7n4wO2z9o+ZXvviO8fs71se/nylcsTNxYANsNO29qQHMa2PyDp+5K+FBHXhj5ekbQ7Ij4p6euSnl+vjohYjIiFiFjYPr99o20GgA1ZmxJdtbUhKYxtz6kI4m9HxA+GP4+IaxFxvXy9JGnO9nytLQWAzUjsFbfVM64cM3bx18Q3JV2IiCdGlLlV0u8iImzvVxHyb9TaUgDYBMudX1z+05I+L+mXts+U7z0m6XZJiogTku6X9LDtm5JuSDoaEdFAewFgw7p+N8VLqliSOSKOSzpeV6MAoAk5T/pgBh6Afuj6fcYAsBUUa1Pkm8b5jmYDQM3quJsicYkI237S9qrtc7b3VbWNnjGA3qhpBl7KEhH3SdpTbndLerr8c3Tb6mgZAGTP9Uz6iIhLEbFSvn5T0toSEYOOSHouCqclbbO9Y1y99IwB9MKE6xnP214e2F+MiMV31Tl6iYidkl4b2L9Yvndp1A8SxgB6YqKpzlciYmFsbeOXiFjvh8bOvSCMAfRGXTdTVC0RoaInvGtg/zZJr4+rkzFjAP3gehaXT1kiQtJJSQ+Ud1XcI+lquRzxSPSMAfRCjfcZpywRsSTpkKRVSW9JerCqUsIYQG/UEcaJS0SEpEcmqZcwBtAbGU/AI4wB9EfO06EJYwD9wEJBANC+YnH5fNOYMAbQGzMZd40JYwC9kXEWE8YA+sHmAh4AZCHjIWPCGEB/cAEPAFpmFXdU5IowBtAbGXeMq1dta+p5TwAwVYlP+WjrIl9Kz7iR5z0BwLRlfDNFdc+4qec9AcA0WcWkj5StDRONGdf5vCcAmLac76ZIftJHHc97sn3M9rLt5ctXLk/WUgDYBDt9a0NSGNf1vKeIWIyIhYhY2D6/fSPtBYANy3mYIuVuikae9wQA0+bErQ0pY8aNPO8JAKat02tTNPW8JwCYpuJuirZbMRoz8AD0g1lcHgCy0OlhCgDYChimAIBM0DMGgAzkG8WEMYCesKXZjMcpCGMAvZHzMEXy2hQA0HV1rU1h+xnbv7f96ojPD9q+avtMuT1eVSc9YwC9YNW67sSzko5Lem5MmRcj4nBqhYQxgH6ocUW2iPhZuaRwbRimANAbEzx2aX5tud9yO7aBnztg+6ztU7b3VhWmZwygFyxpNr1rfCUiFjbxcyuSdkfEdduHJD2v4rF0I9EzBtAbM07bNisirkXE9fL1kqQ52/PjvkPPGEBvTOs2Y9u3SvpdRITt/So6vm+M+w5hDKAXitvW6klj29+RdFDF2PJFSV+VNCe9s8b7/ZIetn1T0g1JR8ulhkcijAH0Rl0944j4XMXnx1Xc+paMMAbQGxlPwCOMAfSDJb0n4zQmjAH0RsZZTBgD6Ae71unQtSOMAfRGxllMGAPoj4yXM66egdfEUnEAMG1Wsbh8ytaGlJ7xs6p5qTgAmLqapjo3pTKMm1gqDgDa4IyfglfXQkETLRUHANNmTW+hoI2o4wJe8lJx5ZqgxyRpfsdOvXD+Ug0/n4/De3e03QQk2mr/7a3hv8Hxch6m2HTPeJKl4iJiMSIWImLhQx/+yGZ/GgAmMsHi8lO36Z7xRpaKA4Bps6XZjFdwrwzjJpaKA4A2dHoGXhNLxQHAtK1dwMsVM/AA9EbGHWPCGEBfWDMZ32dMGAPoBYueMQC0z9J7Mh40JowB9AI9YwDIRKdvbQOArSLjLCaMAfSDVd/KaE0gjAH0gxmmAIDWFTPwCGMAaF2+UUwYA+iRjDvGWY9nA0CN0tYyTlnPOOFBzbb9pO1V2+ds76uqkzAG0Atrd1OkbAmelXTvmM/vU/HEoz0qnm70dFWFhDGA3pixk7YqEfEzSX8YU+SIpOeicFrSNttjn4nFmDGAfrAmeaTSvO3lgf3FiFic4Nd2SnptYP9i+d7Ihy8SxgB6YcJJH1ciYmGTPzds7BOQCGMAvTHFh41elLRrYP82Sa+P+wJjxgB6w4lbDU5KeqC8q+IeSVcjYuQQhUTPGEBPWNJsTT3jhAc1L0k6JGlV0luSHqyqkzAG0Bt1jVIkPKg5JD0ySZ2EMYCesJzxhGjCGEBvdHo6dBPT/gBg2opb25y0tSHlbopnVfO0PwCYOhc945StDZVh3MS0PwBoQ13ToZtQx5hx8rQ/28dU9J616/bbdXgvmQ1gOorF5dtuxWh1TPpInvYXEYsRsRARC9vnt9fw0wCQzon/tKGOnvHE0/4AoA2dvpsiwcTT/gCgDZ3uGTcx7Q8Api33MePKMG5i2h8ATF2Ld0qkYAYegN7IN4oJYwA9UQxT5BvHhDGA3sg3igljAH2ScRoTxgB6g2EKAMhAvlFMGAPok4zTmDAG0AvFw0bzTWPCGEA/tLhWcQrCGEBvZJzFhDGAvrCccdeYMAbQGxlnMWEMoB8shikAIA8ZpzFhDKA3uLUNADKQ85hxHY9dAoD8lfcZp2yVVdn32v6N7VXbX1nn84O2r9o+U26PV9VJzxhAb9QxTGF7VtJTkv5ZxQOZf2H7ZET8aqjoixFxOLVeesYAesGqrWe8X9JqRPw2Iv4s6buSjmy2fYQxgN5w4lZhp6TXBvYvlu8NO2D7rO1TtvdWVcowBYD+SB+lmLe9PLC/GBGLY2qJof0VSbsj4rrtQ5Kel7Rn3A8SxgB6Y4LF5a9ExMKIzy5K2jWwf5uk1wcLRMS1gddLtr9hez4iroxsW0qrmrhyCADTVtMwxS8k7bH9MdvvlXRU0sm/+h37VpcLYdjeryJr3xhXaWXPuKkrhwAwdTXcZxwRN21/QdKPJM1KeiYiztt+qPz8hKT7JT1s+6akG5KORsTwUMZfSRmmeOfKoSTZXrtyOBzGAJCtOheXj4glSUtD750YeH1c0vFJ6kwJ4/WuHN69TrkDts+qGDt5NCLODxewfUzSMUma37FTL5y/NElbs3d47462m4BEnKseynxx+ZQx40muHH5S0tdVXDl895ciFiNiISIWPvThj0zWUgDYpJrGjBuREsZJVw4j4nr5eknSnO352loJAJtWLC6fsrUhJYwbuXIIANNW19oUTagcM27qyiEATNOWWFy+iSuHADB1GacxM/AA9AaLywNABnK+tY0wBtAPlmYIYwDIQb5pTBgD6IW1xeVzRRgD6I2Ms5gwBtAf9IwBIANtTXVOQRgD6I18o5gwBtATba47kYIwBtAbzMADgBzkm8WEMYD+yDiLCWMAfWHNZDxoTBgD6IXcZ+ClPOkDANAwesYAeiPnnjFhDKA3uLUNANrGpA8AaF/uF/AIYwC9wTAFAGQg555x0q1ttu+1/Rvbq7a/ss7ntv1k+fk52/vqbyoAbI4Tt8p6GsjEyjC2PSvpKUn3Sfq4pM/Z/vhQsfsk7Sm3Y5KeTjgeAJiuGtK4qUxM6Rnvl7QaEb+NiD9L+q6kI0Nljkh6LgqnJW2zvSOhbgCYCkuasZO2Co1kYsqY8U5Jrw3sX5R0d0KZnZIuDRayfUzF3xKS9Pa/fOpvX034/a6Zl3Sl7UbUbCsek7Q1j2srHpMk3bHZClZWXvnRLXOeTyz+PtvLA/uLEbFYvq4tEwelhPF6f03EBsqoPJhFSbK9HBELCb/fKVvxuLbiMUlb87i24jFJxXFtto6IuLeOtqjGTByUMkxxUdKugf3bJL2+gTIAsBU0kokpYfwLSXtsf8z2eyUdlXRyqMxJSQ+UVxDvkXQ1IkZ2xwGgwxrJxMphioi4afsLkn4kaVbSMxFx3vZD5ecnJC1JOiRpVdJbkh5MOKDF6iKdtBWPaysek7Q1j2srHpOU0XE1lYmOGDuMAQCYAtYzBoAMEMYAkIHGw3grTqVOOKaDtq/aPlNuj7fRzknYfsb2722ve+93F8+TlHRcXTxXu2z/xPYF2+dtf3GdMp07X4nH1bnzlSwiGttUDG7/j6S/k/ReSWclfXyozCFJp1Tcl3ePpJebbNOUjumgpBfabuuEx/WPkvZJenXE5506TxMcVxfP1Q5J+8rXH5T0313//2qC4+rc+Urdmu4Zb8Wp1CnH1DkR8TNJfxhTpGvnSVLScXVORFyKiJXy9ZuSLqiY3TWoc+cr8bi2rKbDeNSUwEnL5CS1vQdsn7V9yvbe6TStUV07T5Po7Lmy/VFJd0p6eeijTp+vMccldfh8jdP0esaNTBtsWUp7VyTtjojrtg9Jel7F6k1d1rXzlKqz58r2ByR9X9KXIuLa8MfrfKUT56viuDp7vqo03TPeilOpK9sbEdci4nr5eknSnJ28QEmuunaeknT1XNmeUxFY346IH6xTpJPnq+q4unq+UjQdxltxKnXlMdm+1S7W4bO9X8W/5zem3tJ6de08JeniuSrb+01JFyLiiRHFOne+Uo6ri+crVaPDFNHcVOrWJB7T/ZIetn1T0g1JR6O8FJwr299RcaV63vZFSV+VNCd18zytSTiuzp0rSZ+W9HlJv7R9pnzvMUm3S50+XynH1cXzlYTp0ACQAWbgAUAGCGMAyABhDAAZIIwBIAOEMQBkgDAGgAwQxgCQgf8Hy4+BqhaDmnMAAAAASUVORK5CYII=\n", "text/plain": [ - "" + "
" ] }, - "metadata": {}, + "metadata": { + "needs_background": "light" + }, "output_type": "display_data" } ], "source": [ - "plt.grid(True)\n", - "plt.plot(x, y, 'o-')" + "hist = PathHistogram(left_bin_edges=(0.0,0.0), bin_widths=(0.5,0.5),\n", + " interpolate=False, per_traj=False)\n", + "\n", + "hist.add_trajectory(trajectory)\n", + "HistogramPlotter2D(hist).plot(normed=False, xlim=(0,2.5), ylim=(0, 3.5),\n", + " cmap=\"Blues\", vmin=0, vmax=3)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "The first type of histogram is what you'd get from just histogramming the frames." + "The next type of histogram uses that fact that we know this is a trajectory, so we do linear interpolation between the frames. This gives us a count of every time the trajectory enters a given bin. We can use this kind of histogram for free energy plots based on the reweighted path ensemble.\n", + "\n", + "We have several possible interpolation algorithms, so let's show one image for each of them. `SubdivideInterpolation` is the most exact, but it is also quite slow. The default interpolation is `BresenhamLikeInterpolation`; this will be used if you just give `interpolate=True`." ] }, { @@ -104,7 +137,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 5, @@ -113,20 +146,24 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ - "" + "
" ] }, - "metadata": {}, + "metadata": { + "needs_background": "light" + }, "output_type": "display_data" } ], "source": [ - "hist = PathHistogram(left_bin_edges=(0.0,0.0), bin_widths=(0.5,0.5), interpolate=False, per_traj=False)\n", + "hist = PathHistogram(left_bin_edges=(0.0,0.0), bin_widths=(0.5,0.5),\n", + " interpolate=SubdivideInterpolation, per_traj=False)\n", "\n", "hist.add_trajectory(trajectory)\n", - "HistogramPlotter2D(hist).plot(normed=False, xlim=(0,2.5), ylim=(0, 3.5), cmap=\"Blues\", vmin=0, vmax=3)" + "HistogramPlotter2D(hist).plot(normed=False, xlim=(0,2.5), ylim=(0, 3.5),\n", + " cmap=\"Blues\", vmin=0, vmax=3)" ] }, { @@ -137,27 +174,33 @@ { "data": { "text/plain": [ - "Counter({(0.0, 0.0): 1.0,\n", - " (0.0, 2.0): 1.0,\n", - " (3.0, 1.0): 1.0,\n", - " (3.0, 2.0): 1.0,\n", - " (4.0, 6.0): 2.0})" + "" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" } ], "source": [ - "hist._histogram" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The next type of histogram uses that fact that we know this is a trajectory, so we do linear interpolation between the frames. This gives us a count of every time the trajectory enters a given bin. We can use this kind of histogram for free energy plots based on the reweighted path ensemble." + "hist = PathHistogram(left_bin_edges=(0.0,0.0), bin_widths=(0.5,0.5),\n", + " interpolate=BresenhamLikeInterpolation, per_traj=False)\n", + "\n", + "hist.add_trajectory(trajectory)\n", + "HistogramPlotter2D(hist).plot(normed=False, xlim=(0,2.5), ylim=(0, 3.5),\n", + " cmap=\"Blues\", vmin=0, vmax=3)" ] }, { @@ -168,7 +211,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 7, @@ -177,20 +220,24 @@ }, { "data": { - "image/png": "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\nAyEnfgpWBAmHAAAAAElFTkSuQmCC\n", + "image/png": "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\n", "text/plain": [ - "" + "
" ] }, - "metadata": {}, + "metadata": { + "needs_background": "light" + }, "output_type": "display_data" } ], "source": [ - "hist = PathHistogram(left_bin_edges=(0.0,0.0), bin_widths=(0.5,0.5), interpolate=True, per_traj=False)\n", + "hist = PathHistogram(left_bin_edges=(0.0,0.0), bin_widths=(0.5,0.5),\n", + " interpolate=BresenhamInterpolation, per_traj=False)\n", "\n", "hist.add_trajectory(trajectory)\n", - "HistogramPlotter2D(hist).plot(normed=False, xlim=(0,2.5), ylim=(0, 3.5), cmap=\"Blues\", vmin=0, vmax=3)" + "HistogramPlotter2D(hist).plot(normed=False, xlim=(0,2.5), ylim=(0, 3.5),\n", + " cmap=\"Blues\", vmin=0, vmax=3)" ] }, { @@ -208,7 +255,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 8, @@ -217,20 +264,24 @@ }, { "data": { - "image/png": "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\nAAAAAElFTkSuQmCC\n", + "image/png": "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\n", "text/plain": [ - "" + "
" ] }, - "metadata": {}, + "metadata": { + "needs_background": "light" + }, "output_type": "display_data" } ], "source": [ - "hist = PathHistogram(left_bin_edges=(0.0,0.0), bin_widths=(0.5,0.5), interpolate=True, per_traj=True)\n", + "hist = PathHistogram(left_bin_edges=(0.0,0.0), bin_widths=(0.5,0.5),\n", + " interpolate=SubdivideInterpolation, per_traj=True)\n", "\n", "hist.add_trajectory(trajectory)\n", - "HistogramPlotter2D(hist).plot(normed=False, xlim=(0,2.5), ylim=(0, 3.5), cmap=\"Blues\", vmin=0, vmax=3)" + "HistogramPlotter2D(hist).plot(normed=False, xlim=(0,2.5), ylim=(0, 3.5),\n", + " cmap=\"Blues\", vmin=0, vmax=3)" ] }, { @@ -248,7 +299,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 9, @@ -257,20 +308,24 @@ }, { "data": { - "image/png": "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\nRK5CYII=\n", + "image/png": "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\n", "text/plain": [ - "" + "
" ] }, - "metadata": {}, + "metadata": { + "needs_background": "light" + }, "output_type": "display_data" } ], "source": [ - "hist = PathHistogram(left_bin_edges=(0.0,0.0), bin_widths=(0.5,0.5), interpolate=False, per_traj=True)\n", + "hist = PathHistogram(left_bin_edges=(0.0,0.0), bin_widths=(0.5,0.5),\n", + " interpolate=False, per_traj=True)\n", "\n", "hist.add_trajectory(trajectory)\n", - "HistogramPlotter2D(hist).plot(normed=False, xlim=(0,2.5), ylim=(0, 3.5), cmap=\"Blues\", vmin=0, vmax=3)" + "HistogramPlotter2D(hist).plot(normed=False, xlim=(0,2.5), ylim=(0, 3.5),\n", + " cmap=\"Blues\", vmin=0, vmax=3)" ] }, { @@ -290,7 +345,7 @@ { "data": { "text/plain": [ - "[]" + "[]" ] }, "execution_count": 10, @@ -299,12 +354,14 @@ }, { "data": { - "image/png": "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\nWhkAAAAASUVORK5CYII=\n", + "image/png": "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\n", "text/plain": [ - "" + "
" ] }, - "metadata": {}, + "metadata": { + "needs_background": "light" + }, "output_type": "display_data" } ], @@ -312,6 +369,11 @@ "diag = [(0.25, 0.25), (2.25, 2.25)]\n", "diag_x, diag_y = zip(*diag)\n", "plt.grid(True)\n", + "ticks = [0.0, 0.5, 1.0, 1.5, 2.0, 2.5, 3.0, 3.5]\n", + "plt.xticks(ticks)\n", + "plt.yticks(ticks)\n", + "plt.xlim(0, 2.5)\n", + "plt.ylim(0, 3.5)\n", "plt.plot(diag_x, diag_y, 'o-')" ] }, @@ -323,7 +385,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 11, @@ -332,20 +394,24 @@ }, { "data": { - "image/png": "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\ngg==\n", + "image/png": "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\n", "text/plain": [ - "" + "
" ] }, - "metadata": {}, + "metadata": { + "needs_background": "light" + }, "output_type": "display_data" } ], "source": [ - "hist = PathHistogram(left_bin_edges=(0.0,0.0), bin_widths=(0.5,0.5), interpolate=True, per_traj=True)\n", + "hist = PathHistogram(left_bin_edges=(0.0,0.0), bin_widths=(0.5,0.5),\n", + " interpolate=SubdivideInterpolation, per_traj=True)\n", "\n", "hist.add_trajectory(diag)\n", - "HistogramPlotter2D(hist).plot(normed=False, xlim=(0,2.5), ylim=(0, 3.5), cmap=\"Blues\", vmin=0, vmax=3)" + "HistogramPlotter2D(hist).plot(normed=False, xlim=(0,2.5), ylim=(0, 3.5),\n", + " cmap=\"Blues\", vmin=0, vmax=3)" ] }, { @@ -365,7 +431,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 12, @@ -374,20 +440,24 @@ }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAV4AAAEACAYAAAD7rx6dAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAGMNJREFUeJzt3X/UXFV97/H35wlE6Y3YYlqQhB+9glBSNakQImgSKusC\nLkq6UBB0KaC1LqrFLuutLaWCLFzXcmnrL5CLFxRpbaS4FoYfsdrSJPIrBkhKmoCEUis/klATUoxQ\nDfDtH3PyME5m5uwnZ+Y8ZzafF+sszjyzZ88+a7I+z3727LO3IgIzM6vP2GQ3wMzspcbBa2ZWMwev\nmVnNHLxmZjVz8JqZ1czBa2ZWs9LglfQySSslrZa0VtKFXcqcJelJSfcVx/uG01wzs/ok5t9USYsl\nbZB0l6QDy+rdo6xARPxU0nER8YykKcAdkpZGxPc6ii6OiPPSL8nMrNkS8+/9wNaIOFTSO4FLgTP6\n1Zs01BARzxSnL6MV1t3uulBKXWZmoyQh/xYB1xbnNwBvLaszKXgljUlaDWwCvhMRq7oUO1XSGknX\nS5qZUq+ZWdMl5N8M4FGAiHge2CZpn351pvZ4X4iIOcBM4GhJR3QUWQIcHBGzgX/kxfQ3MxtpCfnX\n+de+6D4qMK50jLejAU9LWgacCKxv+/lTbcW+BPx5t9dL8sIQZpYsIioNYWrq3sGOH6cW3xwR+/Vp\nS9f8o9XbPQB4ohgH3rsjE3dRGrySpgM7IuI/Je0FHA98uqPMfhGxqXi4qKNRP+fZHfll7yUXX8QF\nn7hospsxUDle083rNnL9Fy/j9HM/NtlNGagcrwngtNn7V69kx495+ZzfTyr6X6s/v2/nz1LyD7gJ\nOAtYCZwG3Fb2Xik93lcD10oaozU08fWIuFXSJ4FVEXEzcJ6kU4AdwFbg7IR6zcyGT5U6zSn5dzVw\nnaQNwBZKZjRA2nSytcBvdPn5hW3n5wPnp16JmVlttPv3iSXm30+B0ydS74TGeK27+QsWTnYTBi7H\nawKYdeQxk92EgcvxmgZqbMpkt2AXDt4ByDGkcrwmgFlH5RdSOV7TQFUbahgKB6+Z5a3CUMOwOHjN\nLG/u8ZqZ1cw9XjOzmrnHa2ZWM/d4zcxq5ulkZmY1c4/XzKxmYx7jNTOrl3u8ZmY186wGM7Oaucdr\nZlazBvZ4m/erwMxskMampB1dSJop6TZJ64vt3XfZSV3Sx4rt3+8ryjwn6Rf7Nck9XjPLW7WhhueA\nj0bEGknTgHslfTsiHtxZICIuAy4DkHQy8AcRsa1fpQ5eM8tbhaGGYkuzTcX5dkkP0NpV+MEeLzkT\n+Nuyeh28Zpa3AX25JulgYDatvdW6Pb8XrY0wP1RWl4PXzPLWo8f7/JYNvLDl4cQqNA24AfhIRGzv\nUey3gNvLhhnAwWtmuevR450y/TCmTD9s/PHzD3+r+8ulPWiF7nUR8c0+73QGCcMM4OA1s9xVH2q4\nBlgfEZ/t+RbSK4EFwLtTKnTwmlneKqxOJulYWmG6VtJqIGjtqH4QEBFxVVH0t4G/j4hnU+p18JpZ\n3qrNargDKE3uiLgWuDa13tI+uKSXSVpZTBBeK+nCLmWmSlosaYOkuyQdmNoAM7Oh0ljaUaPSd4uI\nnwLHRcQcWlMpTpI0t6PY+4GtEXEo8Bng0oG31Mxsd0hpR42SYj4inilOX0ZreCI6iizixW72DcBb\nB9I6M7OKJCUddUoKXkljxcDyJuA7EbGqo8gM4FGAiHge2CZpn4G21MxsNzQxeJO+XIuIF4A5kvYG\nbpR0RESsbyvS2Wqxa68YgEsuvmj8fP6ChcxfsHAi7TWzTK1bdSfr7rlz4PWqgTtQKKJrPvZ+gfQJ\nYHtE/GXbz5YCF0XESklTgI0R8StdXhvP7pjY+9nkuHndxslugr3EnTZ7fyKiUmpKimmnfyWp7Pbr\nz678fqlSZjVMLyYH77wX+Xh2XSDiJuCs4vw04LZBNtLMbHeN6lDDq4FrJY3RCuqvR8Stkj4JrIqI\nm4GrgeskbQC20Lp1zsxs0tUdqilKgzci1gK/0eXnF7ad/xQ4fbBNMzMbgOblru9cM7O8jWSP18xs\nlDl4zcxqNjbWvK0lHbxmlrfmdXi9y7CZ5a3KdLKUXYbbyh5V7DB8almb3OM1s6xVHOMt3WW4eI8x\n4NNA920sOrjHa2ZZq9LjjYhNEbGmON8O7NxluNPv01og7MmUNjl4zSxvSjzKqumxy7Ck/WntQHFl\nWk0eajCzzPXqzf5s4zp+tnFdah39dhn+DPDxiIjivUrD18FrZlnrNZ3s5TNex8tnvG788TOrb+ha\nLmGX4SOBxWql7nRam0XsiIglvdrk4DWzrA3gBoq+uwxHxP9se68vAzf1C11w8JpZ7irk7gR2Gd4p\nad1bB6+ZZa1Kjzd1l+G28u9LKefgNbOsea0GM7OaOXjNzOrWvNx18JpZ3rw6mZlZzTzUYGZWMwev\nmVndmpe7Dl4zy5t7vGZmNXPwmpnVrIG5W74eb8rWF5IWSNom6b7iuGA4zTUzm5ixMSUddUrp8SZt\nfQGsiIhTBt9EM7PdN5JDDRGxCdhUnG+XtHPri87gbd7VmdlLXgNzd2Jb//Ta+qIwT9JqSbdIOmIA\nbTMzq6zKUEPiUOthku6U9F+SPprSpuQv10q2vrgXOCginpF0EnAj8Npu9Vxy8UXj5/MXLGT+goWp\nTTCzjK1bdSfr7rlz4PVW7PGmDLVuobXZ5W+nVpoUvGVbX7QHcUQslXSFpH0iYmtn2Qs+cVFq20bC\nzes2TnYT7CXusqUPTXYTBmQ6HNz+NdFfDqTWiuvxlg61RsSPgB9JOjm13tQeb9+tLyTtGxGbi/O5\ngLqFrplZ3QY1Y6FkqHVCSoM3ceuLd0g6F9gBPAu8s2rDzMwGYRCzGkqGWicsZVZD6dYXEXE5cHnV\nxpiZDVqv3N3+gzVs/8E/J7y+dJfhCfOda2aWtV493lf86hxe8atzxh9vXn5dryr6DrV2vl1Kmxy8\nZpa1KiMNKUOtkvYF7gFeAbwg6SPAEf2GJBy8Zpa1Ye8yXEwsOGAi9Tp4zSxrTbxzzcFrZlmrewGc\nFA5eM8vaSC6SY2Y2yhqYuw5eM8ube7xmZjVrYO46eM0sb+7xmpnVrIG56+A1s7yNjU1ov4daOHjN\nLGvu8ZqZ1cxjvGZmNWtg7jp4zSxvTezxNm/U2cxsgKS0o/trdbWkzZLu7/H83pKWSFpT7EJ8dkqb\nHLxmlrUxKeno4cvACX2q/xCwLiJmA8cBf1HsWNGXhxrMLGtVVieLiNslHdSvCK0F0Cn+vyUiniur\n18FrZlkb8qqQXwCWSHoCmEbiRr8eajCzrElKOnbTCcDqiNgfmANcXuxI3Jd7vGaWtV6ZuuX797Ll\nofuqVn8O8H8AIuJfJf0bcDitPdh6cvCaWdbUY+Pf6YcdyfTDjhx//PAt/793Fb13D/534HjgjmLT\ny9cCj5S1qXSoQdJMSbdJWl9MlzivR7nPSdpQTKuYXVavmVkdxpR2dCPpa8CdwGsl/VDSOZI+KOl3\niyKXAMcU082+A/xRRGwta1NKj/c54KMRsaYYu7hX0rcj4sG2xp0EvCYiDpV0NHAlMC+hbjOzoaq4\ny/C7Sp7fSP/pZl2VBm9EbAI2FefbJT0AzAAebCu2CPhqUWalpFdK2rfY9tjMbNJMaeBmlxOa1SDp\nYGA2sLLjqRnAo22PHy9+ZmY2qarcuTYsyV+uFcMMNwAfiYjtnU93eUl0q+eSiy8aP5+/YCHzFyxM\nbYKZZezpR1bz9CNrBl5vE9dqSAre4ha4G4DrIuKbXYo8BhzQ9ngm8ES3uma//YPj508DN6/bmNpW\ns0rec/anJrsJQ/HUqi9MdhMGZMHPPdprz2sHUmsDczd5qOEaYH1EfLbH80uA9wJImgds8/iumTVB\nxbUahqK0xyvpWODdwFpJq2kNIZwPHARERFwVEbdKepukh4Gf0JpUbGY26RrY4U2a1XAHMCWh3IcH\n0iIzswFq4qwG37lmZlkb2S/XzMxGVQNz18FrZnlzj9fMrGYNHOJ18JpZ3tzjNTOrWfNi18FrZplr\n4nQyb/1jZlmrsvVPwvbuCyRtk3RfcVyQ0ib3eM0saxWHeL8MfJ5i2dseVkTEKROp1MFrZlmrsg5D\nwvbusBvDyB5qMLOs1bAe7zxJqyXdIumIlBe4x2tmWes1fvv4v3yPx//le1Wrvxc4KCKeKbZAu5HW\nhpd9OXjNLGu9/qw/4NfncsCvzx1/fM/1V0y47vZNISJiqaQrJO1TtuGlg9fMsjaA6WQ9t3dv31tS\n0lxAg9pl2MxsZFXJ3WJ794XAqyT9ELgQmEqxFjnwDknnAjuAZ4F3ptTr4DWzrA15e/fLgcsnWq+D\n18yy1sAb1xy8Zpa3Bq6R4+A1s7zVvZFlCgevmWWtiXeJOXjNLGtNXJ3MwWtmWWvgSIOD18zy1sAO\nb/nwx7DWozQzq8OYlHTUKaXHO5T1KM3M6jCSQw3DWo/SzKwOIznUkGjC61GamdVBif/VaRBfrk1o\nPcrrv3jZ+PmsI49h1lHHDKAJZjbqVixfxorlywZe7x4NnMiriCgv1BpquCkiXp9Q9t+AN3ZbGk1S\n/N2aJ3aroVavy5Y+NNlNGLiPnVS6PvVIOnnWqye7CUOx154iIip1RSXFpf/0r0ll/+i411R+v1Sp\nvwv6rkfZdp68HqWZWR3GlHZ0kzCr612S/lnSGkm3S3pdSptKhxqGtR6lmVkdhrzL8CPA/Ij4T0kn\nAl8C5pVVmjKrYSjrUZqZ1WGYuwxHxN1tD+8GZqTU6zvXzCxrNU4n+x1gaUpBB6+ZZW1KDXdQSDoO\nOAd4c0p5B6+ZZa1X7j50391sWH139ycnVL9eD1wFnBgRT6W8xsFrZlnrNdRw+BvncfgbX/we7NZr\nPturin6zug4EvgG8JyLS5q3h4DWzzFX5ci1hVtefAfsAV6i1q+aOiJhbVq+D18yyVmWIN2FW1weA\nD0y0XgevmWXNe66ZmdWsgbnr4DWzvNUxnWyiHLxmlrXmxa6D18wy5zFeM7OaNS92HbxmlrkGdngd\nvGaWNzUweR28Zpa1Bu784+A1s7z5yzUzs5p5qMHMrGYeajAzq1kTe7xN/GVgZjYwSjx6vl46UdKD\nkh6S9PEuzx8o6R+K3YZvk7R/WZscvGaWNSnt6P5ajQFfAE4AZgFnSjq8o9hlwFci4g3AxcCny9rk\n4DWzrI2hpKOHucCGiPj3iNgBLAYWdZQ5ArgNICKWdXm+S5vMzDI2JiUdPcwAHm17/Bi7buG+Bng7\ngKRTgWmSfqlvm8oaLelqSZsl3d+nzOckbZC0RtLssjrNzOpSZaiB7sO/0fH4fwMLJd0LvAV4HHiu\nX5tSZjV8Gfg88NWurZJOAl4TEYdKOhq4EpjXrayZWd16DSPc/707uH/VHWUvfww4sO3xTOCJ9gIR\nsZEXe7z/A3h7RPy4X6WlwRsRt0s6qE+RRRShHBErJb1S0r4RsbmsbjOzYevVm33D0cfyhqOPHX/8\nN1+8rFuxVcAhRQZuBM4Azvz5+vUqYGtEBPAnwDVlbRrEGG/nGMjj7DoGYmY2KaoMNUTE88CHgW8D\n64DFEfGApE9KOrkothD4vqQHgV8BPlXWpkHcQJEyBjLu+rbfKrOOPIZZRx0zgCaY2ahbsXwZK5Yv\nG3i9qrgib0R8Czis42cXtp1/A/jGhNrU6h2XFGp1s2+KiNd3ee5K4J8i4uvF4weBBd2GGiTF3615\novPHI+09Z5f+chtJ133lTye7CZbo5FmvnuwmDMVee4qIqJSakuIfHviPpLLH/9ovV36/VKlDDf1u\n7lgCvBdA0jxgm8d3zawpKk4nG4rSoQZJX6M1hvEqST8ELgSmAhERV0XErZLeJulh4CfAOcNssJnZ\nRFQdahiGlFkN70oo8+HBNMfMbLDGmpe7Xp3MzPI2kj1eM7NR1sBVIR28Zpa3Buaug9fM8jalgV1e\nB6+Z5a15uevgNbO8+cs1M7OaNXCkwcFrZnlrYO46eM0scw1MXgevmWWtiWO83nPNzLI2prSjl7Lt\n3Ysyp0taJ2mtpL8ua5N7vGaWtwod3rbt3d9Ka8ufVZK+GREPtpU5BPg48KaIeFrS9LJ63eM1s6wp\n8b8eUrZ3/wBweUQ8DRARPyprk4PXzLJWcZfhlO3dXwscJul2SXdKOqGsTR5qMLOs9crUVXd9l3vu\n/u7uvLxz2549gEOA+bR2JP6upFk7e8DdOHjNLG89kveoY97CUce8Zfzx//vMp7sVK93evShzV0S8\nAPxA0veBQ4F7ezXJQw1mlrWKY7zj27tLmkpre/clHWVuBH4ToPhi7VDgkX5tco/XzLJWZQeKiHhe\n0s7t3ceAq3du7w6sioibI+LvJf0vSeuA54CPRcRT/ep18JpZ3ireP1G2vXvx+A+BP0yt08FrZllr\n4p1rDl4zy5pXJzMzq1kDc9fBa2aZa2DyJk0nK1skQtJZkp6UdF9xvG/wTTUzm7iK08mGorTHm7JI\nRGFxRJw3hDaame22KtPJhiWlx5uySAQ0skNvZi95SjxqlBK8KYtEAJwqaY2k6yXNHEjrzMwqGsmh\nBtIWiVgCfC0idkj6IHAtraGJXZxxwoud5bFpM5jyim4ZPjqeWvWFyW6CWRZWLF/GiuXLBl5vE6eT\nKaIzQzsKSPOAiyLixOLxHwMREX/eo/wYsDUifrHLc/Hy2R+q3uoGcfCaDcdee4qIqBSbkuLhzc8k\nlT1k31+o/H6pUoYaSheJkLRf28NFwPrBNdHMrIIGjvGWDjWkLBIBnCfpFGAHsBU4e4htNjNLNrK3\nDJctEhER5wPnD7ZpZmbVjep0MjOz0VVxqCHhBrIPSrpf0mpJKyQdXtYkB6+ZZa3KdLK2G8hOAGYB\nZ3YJ1r+JiNdHxBzg/wJ/VdYmB6+ZZa3iZpelN5BFxPa2h9OAF8ra5EVyzCxrFYd4u91ANneX95B+\nD/gosCfFNkD9OHjNLGu9erN33b6cu25fUfryLj/b5eaHiLgCuELSGcCfUTKzy8FrZpnrnrxvevNC\n3vTmheOP/+rST3UrlrLLcLuvA1eWtchjvGaWtTGlHT2k3EB2SNvDk4GHytrkHq+ZZa3KWg2JN5B9\nWNLxwM+Ap4Czyup18JpZ1qreuZZwA9kfTLROB6+Z5a2Bd645eM0saw3MXQevmeWtievxOnjNLGtq\nYPI6eM0sa82LXQevmWWugR1eB6+Z5W1kF0I3MxtVTezx+pZhM7OaucdrZllrYo/XwWtmWRtrYPI6\neM0sa82LXQevmeWugcmb9OVawi6bUyUtlrRB0l2SDuxWj5lZ3apsdgnDyb/S4E3cZfP9wNaIOBT4\nDHBpWb05WbF82WQ3YeByvCbI87pyvKZBqrLZ5bDyL6XHW7rLZvH42uL8BuCtCfVmI8d/+DleE+R5\nXTle0yAp8ehhKPmXErzddtmc0atMRDwPbJO0T0LdZmbDVS15h5J/KV+upeyy2VlGXcqYmdWu4nSy\n4eRfRPQ9gHnAt9oe/zHw8Y4yS4Gji/MpwJM96gofPnz4SD3K8ikhv34wgffbNMz8az9Serzju2wC\nG2ntsnlmR5mbaG3wthI4DbitW0UR0cCJHWaWq4g4uGIVA8u/dqXBm7jL5tXAdZI2AFuKxpmZjbRh\n5Z+K7rGZmdVkKKuT5XjDRcI1nSXpSUn3Fcf7JqOdEyXpakmbJd3fp8znis9qjaTZdbZvd5Rdk6QF\nkra1fVYX1N3GiZI0U9JtktZLWivpvB7lRu2zKr2uUfy8SlUdvO4yGD0GPAwcBOwJrAEO7yhzLnBF\ncf5OYPGg2zEJ13QW8LnJbutuXNubgdnA/T2ePwm4pTg/Grh7sts8gGtaACyZ7HZO8Jr2A2YX59OA\n73f5NziKn1XKdY3c51V2DKPHm+MNFynXBI28K7y/iLgdeKpPkUXAV4uyK4FXStq3jrbtroRrghH7\nrCJiU0SsKc63Aw+w63zSUfysUq4LRuzzKjOM4M3xhouUawI4tfgT73pJM+tp2tB1XvvjdL/2UTNP\n0mpJt0g6YrIbMxGSDqbVo1/Z8dRIf1Z9rgtG+PPqZhjBm+MNFynXtAQ4OCJmA//Iiz36UZdy7aPm\nXuCgiJhD6z78Gye5PckkTaP1V+JHih7izz3d5SUj8VmVXNfIfl69DCN4HwPavyybCTzRUeZR4AAA\nSVOAvSOi7E/DyVR6TRHxVDEMAfAl4I01tW3YHqP4rArdPs+REhHbI+KZ4nwpsGfD/+ICQNIetMLp\nuoj4ZpciI/lZlV3XqH5e/QwjeMcnHEuaSmtO25KOMjsnHEPihONJVnpNkvZre7gIWF9j+6rqd7f6\nEuC9AJLmAdsiYnNdDaug5zW1j3tKmktrWuXWuhpWwTXA+oj4bI/nR/Wz6ntdI/x59TTwhdAjwxsu\nEq/pPEmnADuArcDZk9bgCZD0NWAh8CpJPwQuBKbSul3zqoi4VdLbJD0M/AQ4Z/Jam6bsmoB3SDqX\n1mf1LK2ZNY0m6Vjg3cBaSatpDSGcT2umzSh/VqXXxQh+XmV8A4WZWc28vbuZWc0cvGZmNXPwmpnV\nzMFrZlYzB6+ZWc0cvGZmNXPwmpnVzMFrZlaz/wYrr3oEsqmtLwAAAABJRU5ErkJggg==\n", + "image/png": "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\n", "text/plain": [ - "" + "
" ] }, - "metadata": {}, + "metadata": { + "needs_background": "light" + }, "output_type": "display_data" } ], "source": [ - "hist = PathHistogram(left_bin_edges=(0.0,0.0), bin_widths=(0.5,0.5), interpolate=True, per_traj=True)\n", + "hist = PathHistogram(left_bin_edges=(0.0,0.0), bin_widths=(0.5,0.5),\n", + " interpolate=SubdivideInterpolation, per_traj=True)\n", "hist.add_trajectory(diag, weight=2) # each trajectory can be assigned a weight (useful for RPE)\n", "hist.add_trajectory(trajectory)\n", - "HistogramPlotter2D(hist).plot(normed=False, xlim=(0,2.5), ylim=(0, 3.5), cmap=\"Blues\", vmin=0, vmax=3)" + "HistogramPlotter2D(hist).plot(normed=False, xlim=(0,2.5), ylim=(0, 3.5),\n", + " cmap=\"Blues\", vmin=0, vmax=3)" ] }, { @@ -414,7 +484,49 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.1" + "version": "3.7.3" + }, + "toc": { + "base_numbering": 1, + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": true, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": false + }, + "varInspector": { + "cols": { + "lenName": 16, + "lenType": 16, + "lenVar": 40 + }, + "kernels_config": { + "python": { + "delete_cmd_postfix": "", + "delete_cmd_prefix": "del ", + "library": "var_list.py", + "varRefreshCmd": "print(var_dic_list())" + }, + "r": { + "delete_cmd_postfix": ") ", + "delete_cmd_prefix": "rm(", + "library": "var_list.r", + "varRefreshCmd": "cat(var_dic_list()) " + } + }, + "types_to_exclude": [ + "module", + "function", + "builtin_function_or_method", + "instance", + "_Feature" + ], + "window_display": false } }, "nbformat": 4, diff --git a/openpathsampling/analysis/path_histogram.py b/openpathsampling/analysis/path_histogram.py index 6812d2da1..0c4ea55ae 100644 --- a/openpathsampling/analysis/path_histogram.py +++ b/openpathsampling/analysis/path_histogram.py @@ -256,7 +256,7 @@ def __init__(self, left_bin_edges, bin_widths, interpolate=True, super(PathHistogram, self).__init__(left_bin_edges=left_bin_edges, bin_widths=bin_widths) if interpolate is True: - interpolate = SubdivideInterpolation + interpolate = BresenhamLikeInterpolation elif interpolate is False: interpolate = NoInterpolation From ca9b376e111beea0a5a4d326be6893be16ead3fa Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Fri, 15 Nov 2019 08:12:47 +0100 Subject: [PATCH 245/464] SubdivideInterpolation, not True, for old tests --- openpathsampling/tests/test_path_histogram.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/openpathsampling/tests/test_path_histogram.py b/openpathsampling/tests/test_path_histogram.py index f80a566bb..a1ad94984 100644 --- a/openpathsampling/tests/test_path_histogram.py +++ b/openpathsampling/tests/test_path_histogram.py @@ -137,7 +137,8 @@ def setup(self): def test_add_with_weight(self): hist = PathHistogram(left_bin_edges=(0.0, 0.0), bin_widths=(0.5, 0.5), - interpolate=True, per_traj=True) + interpolate=SubdivideInterpolation, + per_traj=True) hist.add_trajectory(self.trajectory) hist.add_trajectory(self.diag, weight=2) for val in [(0,1), (0,2), (0,3), (1,2), (1,3), (1,4), (2,1), (2,3), @@ -154,7 +155,8 @@ def test_add_with_weight(self): def test_add_data_to_histograms(self): hist = PathHistogram(left_bin_edges=(0.0, 0.0), bin_widths=(0.5, 0.5), - interpolate=True, per_traj=True) + interpolate=SubdivideInterpolation, + per_traj=True) counter = hist.add_data_to_histogram([self.trajectory, self.diag], weights=[1.0, 2.0]) for val in [(0,1), (0,2), (0,3), (1,2), (1,3), (1,4), (2,1), (2,3), @@ -171,7 +173,8 @@ def test_add_data_to_histograms(self): def test_add_data_to_histograms_no_weight(self): hist = PathHistogram(left_bin_edges=(0.0, 0.0), bin_widths=(0.5, 0.5), - interpolate=True, per_traj=True) + interpolate=SubdivideInterpolation, + per_traj=True) counter = hist.add_data_to_histogram([self.trajectory, self.diag]) for val in [(0,1), (0,2), (0,3), (1,2), (1,3), (1,4), (2,1), (2,3), (2,4), (2,5), (3,1), (3,2), (3,4), (3,5), (3,6), (4,5), From a027ef662984c65f926e98c79bda020b40d775e6 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Fri, 15 Nov 2019 13:15:53 +0100 Subject: [PATCH 246/464] fix minimal install --- .../engines/openmm/features/__init__.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/openpathsampling/engines/openmm/features/__init__.py b/openpathsampling/engines/openmm/features/__init__.py index b2f073b6d..6a39ccdda 100644 --- a/openpathsampling/engines/openmm/features/__init__.py +++ b/openpathsampling/engines/openmm/features/__init__.py @@ -1,4 +1,10 @@ -from openpathsampling.engines.features import * -from openpathsampling.engines.features.shared import StaticContainer, KineticContainer -from . import masses -from . import instantaneous_temperature +try: + import simtk.openmm + import simtk.openmm.app +except ImportError: + pass +else: + from openpathsampling.engines.features import * + from openpathsampling.engines.features.shared import StaticContainer, KineticContainer + from . import masses + from . import instantaneous_temperature From 0b324ecd9d3007745e466a37b7cee01ab85bdd58 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Sun, 17 Nov 2019 13:35:39 +0100 Subject: [PATCH 247/464] Add psutil to minimal install reqs Needed for Gromacs engine, and may be used elsewhere anyway --- devtools/minimal.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/devtools/minimal.txt b/devtools/minimal.txt index 8a64a3325..c058cdc41 100644 --- a/devtools/minimal.txt +++ b/devtools/minimal.txt @@ -7,3 +7,4 @@ networkx matplotlib svgwrite ujson +psutil From d436c6f6515dc73286d37d6cd1ac1155a0682172 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Sun, 17 Nov 2019 16:14:35 +0100 Subject: [PATCH 248/464] Add ensure_file to the tools (with tests) --- openpathsampling/tests/test_gromacs_engine.py | 1 - openpathsampling/tests/test_tools.py | 52 +++++++++++++++++ openpathsampling/tools.py | 58 ++++++++++++++++++- 3 files changed, 107 insertions(+), 4 deletions(-) diff --git a/openpathsampling/tests/test_gromacs_engine.py b/openpathsampling/tests/test_gromacs_engine.py index 88e641e7e..65d5bb0c8 100644 --- a/openpathsampling/tests/test_gromacs_engine.py +++ b/openpathsampling/tests/test_gromacs_engine.py @@ -17,7 +17,6 @@ import shutil - logging.getLogger('openpathsampling.initialization').setLevel(logging.CRITICAL) logging.getLogger('openpathsampling.ensemble').setLevel(logging.CRITICAL) logging.getLogger('openpathsampling.storage').setLevel(logging.CRITICAL) diff --git a/openpathsampling/tests/test_tools.py b/openpathsampling/tests/test_tools.py index 89faee9d8..3e547005d 100644 --- a/openpathsampling/tests/test_tools.py +++ b/openpathsampling/tests/test_tools.py @@ -1,6 +1,12 @@ +import pytest from nose.tools import assert_equal from openpathsampling.tools import * +import tempfile +import hashlib +import os +from .test_helpers import data_filename + import logging logging.getLogger('openpathsampling.initialization').setLevel(logging.CRITICAL) logging.getLogger('openpathsampling.ensemble').setLevel(logging.CRITICAL) @@ -45,3 +51,49 @@ def test_progress_string(): "Running for 2 hours 36 minutes 18 seconds - " + "9378.40 seconds per step\n" + "Estimated time remaining: 1 day 2.05 hours\n") + + +def test_ensure_file_dne(): + # when the file doesn't exist and you provide contents, ensure_file + # shoudl create the missing file + tmp_dir = tempfile.TemporaryDirectory() + filename = os.path.join(tmp_dir.name, "foo.data") + assert not os.path.exists(filename) + old_contents = "foo bar baz qux" + old_hash = hashlib.sha1(old_contents.encode('utf-8')).digest() + contents, hashed = ensure_file(filename, old_contents, old_hash) + assert os.path.exists(filename) + assert contents == old_contents + assert hashed == old_hash + + +def test_ensure_file_exists(): + # this is the case where everything works: file exists; hash is correct + filename = data_filename("ala_small_traj.pdb") + assert os.path.exists(filename) + with open(filename, mode='r') as f: + old_contents = f.read() + old_hash = hashlib.sha1(old_contents.encode('utf-8')).digest() + + contents, hashed = ensure_file(filename, old_contents, old_hash) + assert contents == old_contents + assert hashed == old_hash + + +def test_ensure_file_hash_mismatch(): + # this is the case where the file exists, but the hash is wrong + filename = data_filename("ala_small_traj.pdb") + assert os.path.exists(filename) + with open(filename, mode='r') as f: + old_contents = f.read() + + old_hash = "foo" + + with pytest.raises(RuntimeError): + ensure_file(filename, old_contents, old_hash) + + +def test_ensure_file_no_file_no_contents(): + # if the file doesn't exist and the content doesn't exist, raise error + with pytest.raises(RuntimeError): + ensure_file("foo_bad_file.badfile", None, None) diff --git a/openpathsampling/tools.py b/openpathsampling/tools.py index ad66bdbf7..5e0eec172 100644 --- a/openpathsampling/tools.py +++ b/openpathsampling/tools.py @@ -1,7 +1,6 @@ import sys - -__author__ = 'Jan-Hendrik Prinz' - +import os +import hashlib try: import IPython @@ -220,3 +219,56 @@ def progress_string(n_steps_completed, n_steps_total, time_elapsed): ) ) return output_str + + +def ensure_file(filename, old_contents=None, old_hash=None): + """Ensure that the existing file matches the old contents. + + If the file exists and we don't know the old contents/hash, trust the + file (probably first initialization). + If the file does not exist, this write the file. If the file exists, + check that its contents (based on hash digest). If these match the + original contents, we're fine. If not, raise an error. + + Parameters + ---------- + filename : str + filename + old_contents : Union[str, None] + expected file contents; if not given, assume we trust whatever + content is in the file + old_hash : Union[str, None] + expected hash; if not given, we generate a hash from the old + contents + + Returns + ------- + contents : str + file contents + hashed : str + hash of the file contents + """ + hash_function = lambda text: hashlib.sha1(text.encode('utf-8')).digest() + + if old_hash is None and old_contents is not None: + old_hash = hash_function(old_contents) + + if not os.path.exists(filename): + # write the file if it doesn't exist + if old_contents is not None: + with open(filename, 'w') as f: + f.write(old_contents) + else: + raise RuntimeError("No contents to write missing file " + + str(filename)) + + with open(filename, mode='r') as f: + contents = f.read() + + hashed = hash_function(contents) + + if old_hash and hashed != old_hash: + raise RuntimeError("Existing file " + str(filename) + " does not" + + " match stored file.") + + return contents, hashed From 696a5d0086cd768708b8e051974dd6abc8f03a46 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Sun, 17 Nov 2019 16:28:02 +0100 Subject: [PATCH 249/464] Cleanup for min install missing MDTraj --- openpathsampling/engines/gromacs/__init__.py | 14 ++++++++++++-- openpathsampling/tests/test_gromacs_engine.py | 16 +++++++++++++++- 2 files changed, 27 insertions(+), 3 deletions(-) diff --git a/openpathsampling/engines/gromacs/__init__.py b/openpathsampling/engines/gromacs/__init__.py index 372cf7ba9..2ec1d851c 100644 --- a/openpathsampling/engines/gromacs/__init__.py +++ b/openpathsampling/engines/gromacs/__init__.py @@ -1,2 +1,12 @@ -from .engine import GromacsEngine as Engine -from .engine import ExternalMDSnapshot +def requires_mdtraj(*args, **kwargs): # pragma: no cover + raise RuntimeError("This requires MDTraj, which is not installed") + +try: + import mdtraj +except ImportError: + Engine = requires_mdtraj + ExternalMDSnapshot = requires_mdtraj +else: + from .engine import GromacsEngine as Engine + from .engine import ExternalMDSnapshot + diff --git a/openpathsampling/tests/test_gromacs_engine.py b/openpathsampling/tests/test_gromacs_engine.py index 65d5bb0c8..bd252c8cf 100644 --- a/openpathsampling/tests/test_gromacs_engine.py +++ b/openpathsampling/tests/test_gromacs_engine.py @@ -8,7 +8,13 @@ from .test_helpers import data_filename, assert_items_equal import openpathsampling as paths -import mdtraj as md +try: + import mdtraj as md +except ImportError: + HAS_MDTRAJ = False +else: + HAS_MDTRAJ = True + from openpathsampling.engines.gromacs import * @@ -42,6 +48,8 @@ class TestGromacsEngine(object): # project_trr/0000000.trr : working file, 4 frames # project_trr/0000099.trr : 49 working frames, final frame partial def setup(self): + if not HAS_MDTRAJ: + pytest.skip("MDTraj not installed.") self.test_dir = data_filename("gromacs_engine") self.engine = Engine(gro="conf.gro", mdp="md.mdp", @@ -163,6 +171,9 @@ def test_generate(self): if not has_gmx: raise SkipTest("Gromacs 5 (gmx) not found. Skipping test.") + if not HAS_MDTRAJ: + pytest.skip("MDTraj not found. Skipping test.") + traj_0 = self.engine.trajectory_filename(0) snap = self.engine.read_frame_from_file(traj_0, 0) self.engine.set_filenames(0) @@ -205,6 +216,9 @@ def test_open_file_caching(self): class TestGromacsExternalMDSnapshot(object): def setup(self): + if not HAS_MDTRAJ: + pytest.skip("MDTraj not installed.") + self.test_dir = data_filename("gromacs_engine") self.engine = Engine(gro="conf.gro", mdp="md.mdp", From 167799d9a90e417f2cec96a1a73da233392082b5 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Sun, 17 Nov 2019 17:41:08 +0100 Subject: [PATCH 250/464] fix for stupid py2 issue --- openpathsampling/tests/test_tools.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/openpathsampling/tests/test_tools.py b/openpathsampling/tests/test_tools.py index 3e547005d..8932b474e 100644 --- a/openpathsampling/tests/test_tools.py +++ b/openpathsampling/tests/test_tools.py @@ -55,8 +55,12 @@ def test_progress_string(): def test_ensure_file_dne(): # when the file doesn't exist and you provide contents, ensure_file - # shoudl create the missing file - tmp_dir = tempfile.TemporaryDirectory() + # should create the missing file + try: + tmp_dir = tempfile.TemporaryDirectory() + except AttributeError: + # Py2: we'll just skip this test (and not worry when Py2 goes away) + pytest.skip("Test approach only valid in Python 3") filename = os.path.join(tmp_dir.name, "foo.data") assert not os.path.exists(filename) old_contents = "foo bar baz qux" From f4c313140c139c293abbd25666f30b6a2c5cc534 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Sun, 17 Nov 2019 17:57:00 +0100 Subject: [PATCH 251/464] Fix coveralls parallel build issues --- .travis.yml | 3 +++ devtools/ci/pytests.sh | 2 +- devtools/testing_requirements.txt | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index e0044a643..5e2800ab4 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,6 +1,9 @@ language: python filter_secrets: false # https://github.com/travis-ci/travis-ci/issues/8934 +notifications: + webhooks: https://coveralls.io/webhook + before_install: - deactivate # virtual envs don't play nice with conda - export PYTHONUNBUFFERED=true # immediately flush stdout to terminal diff --git a/devtools/ci/pytests.sh b/devtools/ci/pytests.sh index 6234621c7..4d92e62e7 100755 --- a/devtools/ci/pytests.sh +++ b/devtools/ci/pytests.sh @@ -6,7 +6,7 @@ echo Run pytest tests ... testfail=0 pytest -vv -s --cov --cov-report xml:cov.xml || testfail=1 #nosetests -v -s --with-coverage || testfail=1 -coveralls +COVERALLS_PARALLEL=true coveralls echo travis_fold:end:pytests if [ $testfail -eq 1 ] diff --git a/devtools/testing_requirements.txt b/devtools/testing_requirements.txt index 8434128b2..81084d154 100644 --- a/devtools/testing_requirements.txt +++ b/devtools/testing_requirements.txt @@ -1,5 +1,5 @@ nose pytest pytest-cov -coveralls +python-coveralls ipynbtest From 0e3ffd57fc91e4ab6ba4f4ed2f62b4d06afd439a Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Mon, 18 Nov 2019 09:49:00 +0100 Subject: [PATCH 252/464] Store gmx engine files in the engine to_dict Also check for validity before each trajectory. --- openpathsampling/engines/gromacs/engine.py | 27 ++++++++++++++++--- openpathsampling/tests/test_gromacs_engine.py | 7 +++++ 2 files changed, 31 insertions(+), 3 deletions(-) diff --git a/openpathsampling/engines/gromacs/engine.py b/openpathsampling/engines/gromacs/engine.py index f49e56e1f..f0fe56b2e 100644 --- a/openpathsampling/engines/gromacs/engine.py +++ b/openpathsampling/engines/gromacs/engine.py @@ -17,6 +17,7 @@ from openpathsampling.engines.snapshot import BaseSnapshot, SnapshotDescriptor from openpathsampling.engines.openmm.topology import MDTrajTopology from . import features as gmx_features +from openpathsampling.tools import ensure_file import os import psutil @@ -222,6 +223,10 @@ def __init__(self, gro, mdp, top, options, base_dir="", prefix="gmx"): self.top = os.path.join(base_dir, top) self.prefix = os.path.join(base_dir, prefix) + self.gro_contents, self._gro_hash = ensure_file(self.gro) + self.mdp_contents, self._mdp_hash = ensure_file(self.mdp) + self.top_contents, self._top_hash = ensure_file(self.top) + dirs = [self.prefix + s for s in ['_trr', '_log', '_edr']] for d in dirs: try: @@ -248,17 +253,26 @@ def __init__(self, gro, mdp, top, options, base_dir="", prefix="gmx"): first_frame_in_file=True) def to_dict(self): - # TODO: eventually, read files in and store the text return { - 'base_dir': self.base_dir, 'gro': self.gro, 'mdp': self.mdp, 'top': self.top, 'options': self.options, 'base_dir': self.base_dir, - 'prefix': self.prefix + 'prefix': self.prefix, + 'gro_contents': self.gro_contents, + 'mdp_contents': self.mdp_contents, + 'top_contents': self.top_contents, } + @classmethod + def from_dict(cls, dct): + dct = dict(dct) # make a copy + for ftype in ['gro', 'top', 'mdp']: + contents = dct.pop(ftype + "_contents") + _ = ensure_file(filename=dct[ftype], old_contents=contents) + return super(GromacsEngine, cls).from_dict(dct) + @property def mdtraj_topology(self): if self._mdtraj_topology: @@ -368,6 +382,13 @@ def grompp_command(self): def prepare(self): # pragma: no cover # coverage ignored b/c Travis won't have gmx. However, we do have a # test that covers this if gmx is present (otherwise it is skipped) + + # ensure that the files haven't changed before we run trajectory + _ = ensure_file(self.gro, self.gro_contents, self._gro_hash) + _ = ensure_file(self.mdp, self.mdp_contents, self._mdp_hash) + _ = ensure_file(self.top, self.top_contents, self._top_hash) + + # grompp and mdrun cmd = self.grompp_command logger.info(cmd) run_cmd = shlex.split(cmd) diff --git a/openpathsampling/tests/test_gromacs_engine.py b/openpathsampling/tests/test_gromacs_engine.py index bd252c8cf..193481d12 100644 --- a/openpathsampling/tests/test_gromacs_engine.py +++ b/openpathsampling/tests/test_gromacs_engine.py @@ -214,6 +214,13 @@ def test_open_file_caching(self): # files? pytest.skip() + def test_serialization_cycle(self): + serialized = self.engine.to_dict() + deserialized = Engine.from_dict(serialized) + reserialized = deserialized.to_dict() + assert serialized == reserialized + + class TestGromacsExternalMDSnapshot(object): def setup(self): if not HAS_MDTRAJ: From 8331ca4bfd505360b534b0489c07882e48167afb Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 21 Nov 2019 15:53:44 +0100 Subject: [PATCH 253/464] Start rewriting Traj.__getattr__ --- .../engines/openmm/features/__init__.py | 1 + .../openmm/features/traj_quantities.py | 32 ++++++ openpathsampling/engines/openmm/snapshot.py | 3 +- openpathsampling/engines/trajectory.py | 99 ++++++++----------- .../tests/test_openmm_snapshot.py | 1 + 5 files changed, 77 insertions(+), 59 deletions(-) create mode 100644 openpathsampling/engines/openmm/features/traj_quantities.py diff --git a/openpathsampling/engines/openmm/features/__init__.py b/openpathsampling/engines/openmm/features/__init__.py index 6a39ccdda..8dbf9afbd 100644 --- a/openpathsampling/engines/openmm/features/__init__.py +++ b/openpathsampling/engines/openmm/features/__init__.py @@ -8,3 +8,4 @@ from openpathsampling.engines.features.shared import StaticContainer, KineticContainer from . import masses from . import instantaneous_temperature + from . import traj_quantities diff --git a/openpathsampling/engines/openmm/features/traj_quantities.py b/openpathsampling/engines/openmm/features/traj_quantities.py new file mode 100644 index 000000000..f0010ed81 --- /dev/null +++ b/openpathsampling/engines/openmm/features/traj_quantities.py @@ -0,0 +1,32 @@ +import numpy as np +from simtk import unit + +functions = ['trajectory_coordinates', 'trajectory_box_vectors', + 'trajectory_velocities'] + +def _trajectory_units(traj, feature, unit_): + def strip_unit(obj): + try: + obj = obj.value_in_unit(unit_) + except AttributeError: + pass # not a simtk.unit.Quantity + return obj + + vals = [getattr(snap, feature) for snap in traj] + print(feature, vals) + result = [strip_unit(val) for val in vals] + non_none = any([x is not None for x in result]) + if non_none: + result = result * unit_ + print(result) + return result + +def trajectory_coordinates(traj): + _trajectory_units(traj, 'coordinates', unit.nanometer) + +def trajectory_box_vectors(traj): + _trajectory_units(traj, 'box_vectors', unit.nanometer) + +def trajectory_velocities(traj): + _trajectory_units(traj, 'velocities', unit.nanometer / unit.picosecond) + diff --git a/openpathsampling/engines/openmm/snapshot.py b/openpathsampling/engines/openmm/snapshot.py index 61daa78f5..6d81d5aff 100644 --- a/openpathsampling/engines/openmm/snapshot.py +++ b/openpathsampling/engines/openmm/snapshot.py @@ -39,7 +39,8 @@ class MDSnapshot(BaseSnapshot): features.kinetics, features.masses, features.instantaneous_temperature, - features.engine + features.engine, + features.traj_quantities, ]) class Snapshot(BaseSnapshot): """ diff --git a/openpathsampling/engines/trajectory.py b/openpathsampling/engines/trajectory.py index 4e2b89d42..1a107e203 100644 --- a/openpathsampling/engines/trajectory.py +++ b/openpathsampling/engines/trajectory.py @@ -105,9 +105,9 @@ def reversed(self): def n_snapshots(self): """ Return the number of frames in the trajectory. - + Returns - ------- + ------- length (int) - the number of frames in the trajectory Notes @@ -127,64 +127,46 @@ def __getattr__(self, item): Fallback to access Snapshot properties """ - if len(self) > 0: - snapshot_class = self[0].__class__ - if hasattr(snapshot_class, item) or \ - hasattr(snapshot_class, '__features__') \ - and item in snapshot_class.__features__.variables: - first = getattr(self[0], item) - #if type(first) is u.Quantity: - if is_simtk_quantity_type(first): - inner = first._value - if type(inner) is np.ndarray: - dtype = inner.dtype - - out = np.empty(tuple([len(self)] + - list(inner.shape)), dtype=dtype) - - for idx, s in enumerate(list.__iter__(self)): - np.copyto(out[idx], getattr(s, item)._value) - - return out * first.unit - else: - out = [None] * len(self) - - for idx, s in enumerate(list.__iter__(self)): - out[idx] = getattr(s, item) - - return out - elif type(first) is np.ndarray: - dtype = first.dtype - - out = np.empty(tuple([len(self)] + - list(first.shape)), dtype=dtype) - - for idx, s in enumerate(list.__iter__(self)): - np.copyto(out[idx], getattr(s, item)) - - return out - else: - out = [None] * len(self) - - for idx, s in enumerate(list.__iter__(self)): - out[idx] = getattr(s, item) - - return out + if len(self) == 0: + return [] - else: - std_msg = "'{0}' object has no attribute '{1}'" - snap_msg = "Cannot delegate to snapshots. " - snap_msg += "'{2}' has no attribute '{1}'" - spacer = "\n " - msg = (std_msg + spacer + snap_msg).format( - str(self.__class__.__name__), - item, - snapshot_class.__name__ - ) - raise AttributeError(msg) + snapshot_class = self[0].__class__ + def is_snapshot_attr(cls, item): + return hasattr(cls, item) or (hasattr(cls, '__features__') and + item in cls.__features__.variables) + + if is_snapshot_attr(snapshot_class, item): + print("looking for " + item) + # if there's a trajectory_item in features, that should be a + # function to return a trajectory + traj_item = "trajectory_" + item + if traj_item in snapshot_class.__features__.functions: + print("found " + traj_item) + traj_func = getattr(snapshot_class, traj_item) + return traj_func(self) + + # get the results + out = [getattr(snap, item) for snap in self] + + # if the first result is a numpy object, return the whole as a + # numpy array + if isinstance(out[0], np.ndarray): + out = np.array(out) + + return out + + # behavior when it can't be delegated to snapshot + std_msg = "'{0}' object has no attribute '{1}'" + snap_msg = "Cannot delegate to snapshots. " + snap_msg += "'{2}' has no attribute '{1}'" + spacer = "\n " + msg = (std_msg + spacer + snap_msg).format( + str(self.__class__.__name__), + item, + snapshot_class.__name__ + ) + raise AttributeError(msg) - else: - return [] # ========================================================================== # LIST INHERITANCE FUNCTIONS @@ -565,6 +547,7 @@ def to_mdtraj(self, topology=None): traj = md.Trajectory(output, topology) box_vectors = self.box_vectors + print(box_vectors) # box_vectors is a list with an entry for each frame of the traj # if they're all None, we return None, not [None, None, ..., None] if not np.any(box_vectors): diff --git a/openpathsampling/tests/test_openmm_snapshot.py b/openpathsampling/tests/test_openmm_snapshot.py index 4237f0cab..c8ac5f416 100644 --- a/openpathsampling/tests/test_openmm_snapshot.py +++ b/openpathsampling/tests/test_openmm_snapshot.py @@ -87,6 +87,7 @@ def test_mdtraj_trajectory(self): assert_is(traj_1.unitcell_vectors, None) snap_2 = self.engine.current_snapshot + print(snap_2.box_vectors) traj_2 = snap_2.md assert_equal(len(traj_2), 1) assert_is_not(traj_2.xyz, None) From fab756f8acf89631269bb831661186286476ccac Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 21 Nov 2019 16:11:44 +0100 Subject: [PATCH 254/464] now the tests pass --- .../engines/openmm/features/traj_quantities.py | 11 +++++------ openpathsampling/engines/trajectory.py | 2 -- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/openpathsampling/engines/openmm/features/traj_quantities.py b/openpathsampling/engines/openmm/features/traj_quantities.py index f0010ed81..a80e7f9b6 100644 --- a/openpathsampling/engines/openmm/features/traj_quantities.py +++ b/openpathsampling/engines/openmm/features/traj_quantities.py @@ -13,20 +13,19 @@ def strip_unit(obj): return obj vals = [getattr(snap, feature) for snap in traj] - print(feature, vals) - result = [strip_unit(val) for val in vals] + result = np.asarray([strip_unit(val) for val in vals]) non_none = any([x is not None for x in result]) if non_none: result = result * unit_ - print(result) return result def trajectory_coordinates(traj): - _trajectory_units(traj, 'coordinates', unit.nanometer) + return _trajectory_units(traj, 'coordinates', unit.nanometer) def trajectory_box_vectors(traj): - _trajectory_units(traj, 'box_vectors', unit.nanometer) + return _trajectory_units(traj, 'box_vectors', unit.nanometer) def trajectory_velocities(traj): - _trajectory_units(traj, 'velocities', unit.nanometer / unit.picosecond) + return _trajectory_units(traj, 'velocities', + unit.nanometer / unit.picosecond) diff --git a/openpathsampling/engines/trajectory.py b/openpathsampling/engines/trajectory.py index 1a107e203..5b9d8a370 100644 --- a/openpathsampling/engines/trajectory.py +++ b/openpathsampling/engines/trajectory.py @@ -136,12 +136,10 @@ def is_snapshot_attr(cls, item): item in cls.__features__.variables) if is_snapshot_attr(snapshot_class, item): - print("looking for " + item) # if there's a trajectory_item in features, that should be a # function to return a trajectory traj_item = "trajectory_" + item if traj_item in snapshot_class.__features__.functions: - print("found " + traj_item) traj_func = getattr(snapshot_class, traj_item) return traj_func(self) From 7715a4b34786d1df4bdd8e85335a2243bbc063c5 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 21 Nov 2019 16:34:12 +0100 Subject: [PATCH 255/464] make traj_quantities staticmethods --- openpathsampling/engines/openmm/features/traj_quantities.py | 3 +++ openpathsampling/tests/test_openmm_snapshot.py | 1 - 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/openpathsampling/engines/openmm/features/traj_quantities.py b/openpathsampling/engines/openmm/features/traj_quantities.py index a80e7f9b6..1d3aaf773 100644 --- a/openpathsampling/engines/openmm/features/traj_quantities.py +++ b/openpathsampling/engines/openmm/features/traj_quantities.py @@ -19,12 +19,15 @@ def strip_unit(obj): result = result * unit_ return result +@staticmethod def trajectory_coordinates(traj): return _trajectory_units(traj, 'coordinates', unit.nanometer) +@staticmethod def trajectory_box_vectors(traj): return _trajectory_units(traj, 'box_vectors', unit.nanometer) +@staticmethod def trajectory_velocities(traj): return _trajectory_units(traj, 'velocities', unit.nanometer / unit.picosecond) diff --git a/openpathsampling/tests/test_openmm_snapshot.py b/openpathsampling/tests/test_openmm_snapshot.py index c8ac5f416..4237f0cab 100644 --- a/openpathsampling/tests/test_openmm_snapshot.py +++ b/openpathsampling/tests/test_openmm_snapshot.py @@ -87,7 +87,6 @@ def test_mdtraj_trajectory(self): assert_is(traj_1.unitcell_vectors, None) snap_2 = self.engine.current_snapshot - print(snap_2.box_vectors) traj_2 = snap_2.md assert_equal(len(traj_2), 1) assert_is_not(traj_2.xyz, None) From 480f018ff553f46e811f3368c730b9b690f242b5 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 21 Nov 2019 17:04:35 +0100 Subject: [PATCH 256/464] who knew that staticmethods weren't callable? --- openpathsampling/engines/features/base.py | 5 ++++- openpathsampling/engines/trajectory.py | 1 - 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/openpathsampling/engines/features/base.py b/openpathsampling/engines/features/base.py index 2a81fb0c5..bb905ff09 100644 --- a/openpathsampling/engines/features/base.py +++ b/openpathsampling/engines/features/base.py @@ -284,11 +284,14 @@ def _decorator(cls): if type(content) is str: content = [content] + def func_or_static(fnc): + return callable(fnc) or (hasattr(fnc, "__func__") + and callable(fnc.__func__)) if name == 'functions': for c in content: if hasattr(feature, c): fnc = getattr(feature, c) - if callable(fnc): + if func_or_static(fnc): if hasattr(cls, c): raise RuntimeWarning( 'Collision: Function "%s" from feature %s already exists.' % (c, feature)) diff --git a/openpathsampling/engines/trajectory.py b/openpathsampling/engines/trajectory.py index 5b9d8a370..add1e0563 100644 --- a/openpathsampling/engines/trajectory.py +++ b/openpathsampling/engines/trajectory.py @@ -545,7 +545,6 @@ def to_mdtraj(self, topology=None): traj = md.Trajectory(output, topology) box_vectors = self.box_vectors - print(box_vectors) # box_vectors is a list with an entry for each frame of the traj # if they're all None, we return None, not [None, None, ..., None] if not np.any(box_vectors): From 2a1f7342cd13b29887bc1514465ebb9aa9222395 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Fri, 22 Nov 2019 17:37:03 +0100 Subject: [PATCH 257/464] add a few reprs for toy engine PES --- openpathsampling/engines/toy/pes.py | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/openpathsampling/engines/toy/pes.py b/openpathsampling/engines/toy/pes.py index f84163a9a..969b1c2fd 100644 --- a/openpathsampling/engines/toy/pes.py +++ b/openpathsampling/engines/toy/pes.py @@ -23,7 +23,7 @@ def __sub__(self, other): def kinetic_energy(self, sys): """Default kinetic energy implementation. - + Parameters ---------- sys : :class:`.ToyEngine` @@ -124,7 +124,7 @@ def __init__(self, pes1, pes2): class HarmonicOscillator(PES): """Simple harmonic oscillator. Independent in each degree of freedom. - + V(x) = \sum_i A_i * mass_i * omega_i**2 * (x_i - x0_i)**2 Parameters @@ -139,6 +139,10 @@ def __init__(self, A, omega, x0): self.omega = np.array(omega) self.x0 = np.array(x0) + def __repr__(self): # pragma: no cover + repr_str = "HarmonicOscillator({obj.A}, {obj.omega}, {obj.x0})" + return repr_str.format(obj=self) + def to_dict(self): dct = super(HarmonicOscillator, self).to_dict() dct['A'] = dct['A'].tolist() @@ -199,6 +203,9 @@ def __init__(self, A, alpha, x0): self.x0 = np.array(x0) self._local_dVdx = np.zeros(self.x0.size) + def __repr__(self): # pragma: no cover + return "Gaussian({o.A}, {o.alpha}, {o.x0})".format(o=self) + def V(self, sys): """Potential energy @@ -252,6 +259,9 @@ def __init__(self, sigma, x0): self.x0 = np.array(x0) self._local_dVdx = np.zeros(self.x0.size) + def __repr__(self): # pragma: no cover + return "OuterWalls({o.sigma}, {o.x0})".format(o=self) + def V(self, sys): """Potential energy @@ -306,6 +316,9 @@ def __init__(self, m, c): self._local_dVdx = self.m self.dim = len(self.m) + def __repr__(self): # pragma: no cover + return "LinearSlope({o.m}, {o.c])".format(o=self) + def V(self, sys): """Potential energy From 9dfcc6dd17b68321d1b1311a9d0537588e581e31 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Sun, 24 Nov 2019 09:02:57 +0100 Subject: [PATCH 258/464] fix typo --- openpathsampling/engines/toy/pes.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openpathsampling/engines/toy/pes.py b/openpathsampling/engines/toy/pes.py index 969b1c2fd..21de29c50 100644 --- a/openpathsampling/engines/toy/pes.py +++ b/openpathsampling/engines/toy/pes.py @@ -317,7 +317,7 @@ def __init__(self, m, c): self.dim = len(self.m) def __repr__(self): # pragma: no cover - return "LinearSlope({o.m}, {o.c])".format(o=self) + return "LinearSlope({o.m}, {o.c})".format(o=self) def V(self, sys): """Potential energy From e7802c5e841da3e3f3939b1bceea0dab4433ec73 Mon Sep 17 00:00:00 2001 From: sroet Date: Mon, 25 Nov 2019 15:11:13 +0100 Subject: [PATCH 259/464] fix docstring and pylint issues --- openpathsampling/engines/toy/pes.py | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/openpathsampling/engines/toy/pes.py b/openpathsampling/engines/toy/pes.py index 21de29c50..063c7d65a 100644 --- a/openpathsampling/engines/toy/pes.py +++ b/openpathsampling/engines/toy/pes.py @@ -31,7 +31,8 @@ def kinetic_energy(self, sys): """ v = sys.velocities m = sys.mass - return 0.5*np.dot(m, np.multiply(v,v)) + return 0.5*np.dot(m, np.multiply(v, v)) + class PES_Combination(PES): """Mathematical combination of two potential energy surfaces. @@ -86,6 +87,7 @@ def dVdx(self, sys): """ return self._dfdx_fcn(self.pes1.dVdx(sys), self.pes2.dVdx(sys)) + class PES_Sub(PES_Combination): """Difference of two potential energy surfaces; pes1 - pes2 @@ -104,6 +106,7 @@ def __init__(self, pes1, pes2): lambda a, b: a - b ) + class PES_Add(PES_Combination): """Sum of two potential energy surfaces; pes1 + pes 2 @@ -122,10 +125,11 @@ def __init__(self, pes1, pes2): lambda a, b: a + b ) + class HarmonicOscillator(PES): - """Simple harmonic oscillator. Independent in each degree of freedom. + r"""Simple harmonic oscillator. Independent in each degree of freedom. - V(x) = \sum_i A_i * mass_i * omega_i**2 * (x_i - x0_i)**2 + :math:`V(x) = \sum_i A_i * mass_i * omega_i^2 * (x_i - x0_i)^2` Parameters ---------- @@ -184,8 +188,9 @@ def dVdx(self, sys): k = self.omega*self.omega*sys.mass return self.A*k*dx + class Gaussian(PES): - """Gaussian given by A*exp(-\sum_i alpha[i]*(x[i]-x0[i])^2) + r"""Gaussian given by: :math:`A*exp(-\sum_i alpha[i]*(x[i]-x0[i])^2)` Parameters ---------- @@ -241,10 +246,11 @@ def dVdx(self, sys): self._local_dVdx[i] = -2*self.alpha[i]*dx[i]*exp_part return self._local_dVdx + class OuterWalls(PES): - """Creates an x**6 barrier around the system. + r"""Creates an x**6 barrier around the system. - V(x) = \sum_i sigma_i * (x_i - x0_i)**6 + :math:`V(x) = \sum_i sigma_i * (x_i - x0_i)^6` Parameters ---------- @@ -299,8 +305,9 @@ def dVdx(self, sys): self._local_dVdx[i] = 6.0*self.sigma[i]*dx[i]**5 return self._local_dVdx + class LinearSlope(PES): - """Linear potential energy surface. V(x) = \sum_i m_i * x_i + c + r"""Linear potential energy surface. :math:`V(x) = \sum_i m_i * x_i + c` Parameters ---------- From d0251d64e2f0b462ac4cad6ec4cabf842ab9348d Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Fri, 29 Nov 2019 13:54:07 +0100 Subject: [PATCH 260/464] Move ExternalMDSnapshot stuff outside of Gromacs this is all generic to external snapshots --- openpathsampling/engines/__init__.py | 2 + .../engines/external_snapshots/README.md | 7 ++ .../engines/external_snapshots/__init__.py | 2 + .../features/__init__.py | 0 .../features/box_vectors.py | 0 .../features/coordinates.py | 0 .../features/file_info.py | 2 +- .../features/velocities.py | 0 .../engines/external_snapshots/snapshot.py | 107 +++++++++++++++++ openpathsampling/engines/gromacs/engine.py | 109 +----------------- 10 files changed, 121 insertions(+), 108 deletions(-) create mode 100644 openpathsampling/engines/external_snapshots/README.md create mode 100644 openpathsampling/engines/external_snapshots/__init__.py rename openpathsampling/engines/{gromacs => external_snapshots}/features/__init__.py (100%) rename openpathsampling/engines/{gromacs => external_snapshots}/features/box_vectors.py (100%) rename openpathsampling/engines/{gromacs => external_snapshots}/features/coordinates.py (100%) rename openpathsampling/engines/{gromacs => external_snapshots}/features/file_info.py (83%) rename openpathsampling/engines/{gromacs => external_snapshots}/features/velocities.py (100%) create mode 100644 openpathsampling/engines/external_snapshots/snapshot.py diff --git a/openpathsampling/engines/__init__.py b/openpathsampling/engines/__init__.py index 2e0c68c64..b13d69417 100644 --- a/openpathsampling/engines/__init__.py +++ b/openpathsampling/engines/__init__.py @@ -11,4 +11,6 @@ from .external_engine import ExternalEngine +from . import external_storage + from . import gromacs diff --git a/openpathsampling/engines/external_snapshots/README.md b/openpathsampling/engines/external_snapshots/README.md new file mode 100644 index 000000000..c21b2dfc4 --- /dev/null +++ b/openpathsampling/engines/external_snapshots/README.md @@ -0,0 +1,7 @@ +# external_storage + +This contains generic features and snapshot base classes for external snapshot +storage (i.e., storing the snapshot information in a separate trajectory file, +with only a reference to the file/frame number stored in the main OPS storage.) +This is the preferred snapshot mechanism for external (indirect control) +engines. diff --git a/openpathsampling/engines/external_snapshots/__init__.py b/openpathsampling/engines/external_snapshots/__init__.py new file mode 100644 index 000000000..d4d4d7a0e --- /dev/null +++ b/openpathsampling/engines/external_snapshots/__init__.py @@ -0,0 +1,2 @@ +from . import features +from .snapshot import ExternalMDSnapshot diff --git a/openpathsampling/engines/gromacs/features/__init__.py b/openpathsampling/engines/external_snapshots/features/__init__.py similarity index 100% rename from openpathsampling/engines/gromacs/features/__init__.py rename to openpathsampling/engines/external_snapshots/features/__init__.py diff --git a/openpathsampling/engines/gromacs/features/box_vectors.py b/openpathsampling/engines/external_snapshots/features/box_vectors.py similarity index 100% rename from openpathsampling/engines/gromacs/features/box_vectors.py rename to openpathsampling/engines/external_snapshots/features/box_vectors.py diff --git a/openpathsampling/engines/gromacs/features/coordinates.py b/openpathsampling/engines/external_snapshots/features/coordinates.py similarity index 100% rename from openpathsampling/engines/gromacs/features/coordinates.py rename to openpathsampling/engines/external_snapshots/features/coordinates.py diff --git a/openpathsampling/engines/gromacs/features/file_info.py b/openpathsampling/engines/external_snapshots/features/file_info.py similarity index 83% rename from openpathsampling/engines/gromacs/features/file_info.py rename to openpathsampling/engines/external_snapshots/features/file_info.py index f80566d1f..d2a446892 100644 --- a/openpathsampling/engines/gromacs/features/file_info.py +++ b/openpathsampling/engines/external_snapshots/features/file_info.py @@ -11,7 +11,7 @@ def netcdfplus_init(store): store.create_variable( 'file_name', 'str', - description="the file number that this snapshot is stored in" + description="the file name that this snapshot is stored in" ) store.create_variable( 'file_position', diff --git a/openpathsampling/engines/gromacs/features/velocities.py b/openpathsampling/engines/external_snapshots/features/velocities.py similarity index 100% rename from openpathsampling/engines/gromacs/features/velocities.py rename to openpathsampling/engines/external_snapshots/features/velocities.py diff --git a/openpathsampling/engines/external_snapshots/snapshot.py b/openpathsampling/engines/external_snapshots/snapshot.py new file mode 100644 index 000000000..1569e0299 --- /dev/null +++ b/openpathsampling/engines/external_snapshots/snapshot.py @@ -0,0 +1,107 @@ +from openpathsampling.engines import features +from openpathsampling.engines.snapshot import BaseSnapshot +from . import features as ext_features + +@features.base.attach_features([ + features.engine, + ext_features.coordinates, + ext_features.velocities, + ext_features.box_vectors, + ext_features.file_info +]) +class ExternalMDSnapshot(BaseSnapshot): + """ + Snapshot for external MD engines + + Internally, this only stores the file_name and the file_position. All + specific details (positions, velocities, box vectors) are loaded from + file when requested. + + Parameters + ---------- + file_name : str + the name of the external file where the positions/velocities/etc. + reside + file_position : int + position within the file; the engine should be able to load data for + this specific snapshot based on this number + engine : :class:`.DynamicsEngine` + the engine associated with this snapshot + """ + def __init__(self, file_name=None, file_position=None, engine=None): + # these are done in place of calling super + self._reversed = None + self.__uuid__ = self.get_uuid() + # these are the requried attributes + self.file_name = file_name + self.file_position = file_position + self.engine = engine + self.velocity_direction = 1 # by default; reversed flips it + # these are containers for temporary data + self._xyz = None + self._velocities = None + self._box_vectors = None + + def load_details(self): + """Cache coords, velocities, box vectors from the external file""" + try: + (xyz, vel, box) = self.engine.read_frame_data( + self.file_name, + self.file_position + ) + except IndexError: + # Out of bounds on buffer access (axis 0) + logger.debug("Exception reading from %s[%d]", self.file_name, + self.file_position) + time.sleep(self.engine.sleep_ms/10000.0) # 1/10 the normal + self.load_details() + except RecursionError: + raise RuntimeError("Unrecoverable error in load_details") + else: + self._xyz = xyz + self._velocities = vel + self._box_vectors = box + + def set_details(self, xyz, velocities, box_vectors): + """Set coords, velocities, and box vectors. + + This is mainly used if OPS must modify/create a snapshot. + + Parameters + ---------- + xyz : np.array + unitless coordinates + velocities : np.array + velocities + box_vectors : np.array + unit cell for the periodic box + """ + try: + self.load_details() + except: + pass + else: + raise RuntimeError("Can't set details if frame already exists.") + finally: + self._xyz = xyz + self._velocities = velocities + self._box_vectors = box_vectors + + def clear_cache(self): + """Remove internal details from snapshot. + + These details should always be accessible later using + :method:`.load_details`. Removing them allows them memory to be + freed. + """ + self._xyz = None + self._velocities = None + self._box_vectors = None + + def __repr__(self): + num_str = "file_name=" + str(self.file_name) + pos_str = "file_position=" + str(self.file_position) + eng_str = "engine=" + repr(self.engine) + args = ", ".join([num_str, pos_str, eng_str]) + return "{cls_str}(".format(cls_str=self.cls) + args + ")" + diff --git a/openpathsampling/engines/gromacs/engine.py b/openpathsampling/engines/gromacs/engine.py index f0fe56b2e..9d22bfcf4 100644 --- a/openpathsampling/engines/gromacs/engine.py +++ b/openpathsampling/engines/gromacs/engine.py @@ -16,7 +16,8 @@ from openpathsampling.engines import features from openpathsampling.engines.snapshot import BaseSnapshot, SnapshotDescriptor from openpathsampling.engines.openmm.topology import MDTrajTopology -from . import features as gmx_features +from openpathsampling.engines.external_storage import ExternalMDSnapshot +# fro . import features as gmx_features from openpathsampling.tools import ensure_file import os @@ -25,116 +26,10 @@ import time import numpy as np -# TODO: all gmx_features should be moved to external_md; along with the -# snapshot - from openpathsampling.engines.external_engine import ( _debug_open_files, close_file_descriptors ) -@features.base.attach_features([ - features.engine, - gmx_features.coordinates, - gmx_features.velocities, - gmx_features.box_vectors, - gmx_features.file_info -]) -class ExternalMDSnapshot(BaseSnapshot): - """ - Snapshot for external MD engines - - Internally, this only stores the file_name and the file_position. All - specific details (positions, velocities, box vectors) are loaded from - file when requested. - - Parameters - ---------- - file_name : str - the name of the external file where the positions/velocities/etc. - reside - file_position : int - position within the file; the engine should be able to load data for - this specific snapshot based on this number - engine : :class:`.DynamicsEngine` - the engine associated with this snapshot - """ - def __init__(self, file_name=None, file_position=None, engine=None): - # these are done in place of calling super - self._reversed = None - self.__uuid__ = self.get_uuid() - # these are the requried attributes - self.file_name = file_name - self.file_position = file_position - self.engine = engine - self.velocity_direction = 1 # by default; reversed flips it - # these are containers for temporary data - self._xyz = None - self._velocities = None - self._box_vectors = None - - def load_details(self): - """Cache coords, velocities, box vectors from the external file""" - try: - (xyz, vel, box) = self.engine.read_frame_data( - self.file_name, - self.file_position - ) - except IndexError: - # Out of bounds on buffer access (axis 0) - logger.debug("Exception reading from %s[%d]", self.file_name, - self.file_position) - time.sleep(self.engine.sleep_ms/10000.0) # 1/10 the normal - self.load_details() - except RecursionError: - raise RuntimeError("Unrecoverable error in load_details") - else: - self._xyz = xyz - self._velocities = vel - self._box_vectors = box - - def set_details(self, xyz, velocities, box_vectors): - """Set coords, velocities, and box vectors. - - This is mainly used if OPS must modify/create a snapshot. - - Parameters - ---------- - xyz : np.array - unitless coordinates - velocities : np.array - velocities - box_vectors : np.array - unit cell for the periodic box - """ - try: - self.load_details() - except: - pass - else: - raise RuntimeError("Can't set details if frame already exists.") - finally: - self._xyz = xyz - self._velocities = velocities - self._box_vectors = box_vectors - - def clear_cache(self): - """Remove internal details from snapshot. - - These details should always be accessible later using - :method:`.load_details`. Removing them allows them memory to be - freed. - """ - self._xyz = None - self._velocities = None - self._box_vectors = None - - def __repr__(self): - num_str = "file_name=" + str(self.file_name) - pos_str = "file_position=" + str(self.file_position) - eng_str = "engine=" + repr(self.engine) - args = ", ".join([num_str, pos_str, eng_str]) - return "{cls_str}(".format(cls_str=self.cls) + args + ")" - def snapshot_from_gro(gro_file): class GroFileEngine(ExternalEngine): From 8c0ad4f37425d3ad69b4c2cd8362a0d14f69f0c3 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Fri, 29 Nov 2019 14:19:11 +0100 Subject: [PATCH 261/464] Make ExternalEngine abstract. The concrete test version is now in the tests --- openpathsampling/engines/__init__.py | 2 +- openpathsampling/engines/external_engine.py | 52 +++------------- openpathsampling/engines/gromacs/engine.py | 2 +- .../tests/test_external_engine.py | 62 +++++++++++++++++-- 4 files changed, 67 insertions(+), 51 deletions(-) diff --git a/openpathsampling/engines/__init__.py b/openpathsampling/engines/__init__.py index b13d69417..380c4515e 100644 --- a/openpathsampling/engines/__init__.py +++ b/openpathsampling/engines/__init__.py @@ -11,6 +11,6 @@ from .external_engine import ExternalEngine -from . import external_storage +from . import external_snapshots from . import gromacs diff --git a/openpathsampling/engines/external_engine.py b/openpathsampling/engines/external_engine.py index 59aa0181c..8aa858ef2 100644 --- a/openpathsampling/engines/external_engine.py +++ b/openpathsampling/engines/external_engine.py @@ -13,8 +13,6 @@ import linecache -import sys # DEBUG - logger = logging.getLogger(__name__) def close_file_descriptors(basename): @@ -52,10 +50,7 @@ def _debug_snapshot_loading(snapshot): class ExternalEngine(DynamicsEngine): """ - Generic object to handle arbitrary external engines. - - Typically, this will be subclassed for any given engine. As written, it - will work with the trivial `engine.c` developed for testing purposes. + Generic object to handle arbitrary external engines. Subclass to use. """ _default_options = { @@ -177,38 +172,11 @@ def read_frame_from_file(self, filename, frame_num): If no frame is available, returns None. If the frame appears to be partially written, returns string "partial". """ - # under most circumstances, start with linecache.checkcache and - # setting the value of the first line - linecache.checkcache(filename) - first_line = frame_num + 1 - - # create a snapshot out of lines starting with first_line... if - # nothing exists, linecache returns '', so we return None. - # Otherwise, try to make a snapshot and return "partial" if we fail - line = linecache.getline(filename, first_line) - if line is '': - snap = None - else: - try: - splitted = line.split() - if len(splitted) == 2: - coords = float(splitted[0]) - vels = float(splitted[1]) - else: - raise ValueError() # force the raise we then ignore - snap = ToySnapshot(coordinates=np.array([[coords]]), - velocities=np.array([[vels]])) - except ValueError: - snap = "partial" - return snap + raise NotImplementedError() def write_frame_to_file(self, filename, snapshot, mode="a"): """Writes given snapshot to file.""" - f = open(filename, mode) - snapshot_text = "{pos} {vel}\n".format(pos=snapshot.xyz[0][0], - vel=snapshot.velocities[0][0]) - f.write(snapshot_text) - f.close() + raise NotImplementedError() def who_to_kill(self): """Returns psutil.Process object to send kill signal to. @@ -233,14 +201,12 @@ def cleanup(self): def set_filenames(self, number): """Sets names for files associated with trajectory `number`""" - self.input_file = self.name_prefix + str(number) + ".inp" - self.output_file = self.name_prefix + str(number) + ".out" + # pass instead of not implemented because maybe you don't need it + # for some engine? usually you do, though + pass def engine_command(self): """Generates a string for the command to run the engine.""" - if self.engine_directory != "": - engine_path = os.path.join(self.engine_directory, "engine") - else: # pragma: no cover - engine_path = "engine" - return (engine_path + " " + str(self.engine_sleep) - + " " + str(self.output_file) + " " + str(self.input_file)) + raise NotImplementedError() + + diff --git a/openpathsampling/engines/gromacs/engine.py b/openpathsampling/engines/gromacs/engine.py index 9d22bfcf4..fd2f163fa 100644 --- a/openpathsampling/engines/gromacs/engine.py +++ b/openpathsampling/engines/gromacs/engine.py @@ -16,7 +16,7 @@ from openpathsampling.engines import features from openpathsampling.engines.snapshot import BaseSnapshot, SnapshotDescriptor from openpathsampling.engines.openmm.topology import MDTrajTopology -from openpathsampling.engines.external_storage import ExternalMDSnapshot +from openpathsampling.engines.external_snapshots import ExternalMDSnapshot # fro . import features as gmx_features from openpathsampling.tools import ensure_file diff --git a/openpathsampling/tests/test_external_engine.py b/openpathsampling/tests/test_external_engine.py index db0807cb9..d91e4203b 100644 --- a/openpathsampling/tests/test_external_engine.py +++ b/openpathsampling/tests/test_external_engine.py @@ -15,6 +15,7 @@ import time import os import glob +import linecache import logging @@ -26,6 +27,55 @@ engine_dir = os.path.join(os.path.dirname(os.path.realpath(__file__)), "external_engine") + +class ExampleExternalEngine(peng.ExternalEngine): + """Trivial external engine for engine.c in the tests. + """ + def read_frame_from_file(self, filename, frame_num): + # under most circumstances, start with linecache.checkcache and + # setting the value of the first line + linecache.checkcache(filename) + first_line = frame_num + 1 + + # create a snapshot out of lines starting with first_line... if + # nothing exists, linecache returns '', so we return None. + # Otherwise, try to make a snapshot and return "partial" if we fail + line = linecache.getline(filename, first_line) + if line is '': + snap = None + else: + try: + splitted = line.split() + if len(splitted) == 2: + coords = float(splitted[0]) + vels = float(splitted[1]) + else: + raise ValueError() # force the raise we then ignore + snap = ToySnapshot(coordinates=np.array([[coords]]), + velocities=np.array([[vels]])) + except ValueError: + snap = "partial" + return snap + + def write_frame_to_file(self, filename, snapshot, mode='a'): + f = open(filename, mode) + snapshot_text = "{pos} {vel}\n".format(pos=snapshot.xyz[0][0], + vel=snapshot.velocities[0][0]) + f.write(snapshot_text) + f.close() + + def set_filenames(self, number): + self.input_file = self.name_prefix + str(number) + ".inp" + self.output_file = self.name_prefix + str(number) + ".out" + + def engine_command(self): + if self.engine_directory != "": + engine_path = os.path.join(self.engine_directory, "engine") + else: # pragma: no cover + engine_path = "engine" + return (engine_path + " " + str(self.engine_sleep) + + " " + str(self.output_file) + " " + str(self.input_file)) + def setup_module(): proc = psutil.Popen("make", cwd=engine_dir) proc.wait() @@ -57,12 +107,12 @@ def setup(self): } self.template = peng.toy.Snapshot(coordinates=np.array([[0.0]]), velocities=np.array([[1.0]])) - self.slow_engine = peng.ExternalEngine(slow_options, - self.descriptor, - self.template) - self.fast_engine = peng.ExternalEngine(fast_options, - self.descriptor, - self.template) + self.slow_engine = ExampleExternalEngine(slow_options, + self.descriptor, + self.template) + self.fast_engine = ExampleExternalEngine(fast_options, + self.descriptor, + self.template) self.ensemble = paths.LengthEnsemble(5) def test_start_stop(self): From 8fd55e32816094ba7ee4c87b6afe0bbc374eb43c Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Sat, 7 Dec 2019 16:42:31 +0100 Subject: [PATCH 262/464] Add progress meter adapter classes --- openpathsampling/progress.py | 95 +++++++++++++++++++++++++ openpathsampling/tests/test_progress.py | 62 ++++++++++++++++ 2 files changed, 157 insertions(+) create mode 100644 openpathsampling/progress.py create mode 100644 openpathsampling/tests/test_progress.py diff --git a/openpathsampling/progress.py b/openpathsampling/progress.py new file mode 100644 index 000000000..3a0b83f18 --- /dev/null +++ b/openpathsampling/progress.py @@ -0,0 +1,95 @@ +""" +Wrappers for progress bars. Mainly intended to use tqdm if it is available +on the user's system, but in principle, other progress bars could be used as +well. +""" + +try: + from tqdm.auto import tqdm +except ImportError: # pragma: no cover + HAS_TQDM = False +else: # pragma: no cover + HAS_TQDM = True + + +def silent_progress(iterable, *args, **kwargs): + """No progress output: ignores all options, and just gives the iterator + + Parameters + ---------- + iterable : iterable + thing to iterate over + """ + return iter(iterable) + + +def DefaultProgress(**kwargs): # pragma: no cover + """Factory for getting the default progress behavior. + + Currently, uses tqdm if it is available; silent progress otherwise. In + the future, we may add global configuration (e.g., rcparams) to allow + users to customize this behavior. + """ + # TODO: eventually, add some sort of rcparams support for this + if HAS_TQDM: + return TqdmPartial(**kwargs) + else: + return silent_progress + + +class TqdmPartial(object): + """Progress bar wrapper for tqdm-based progress meters. + + Note that additional tqdm parameters can be set *after* initialization. + + Parameters + ---------- + desc : str + label for the progress bar + leave : bool + whether to leave to progress bar visible after completion (default + True) + """ + def __init__(self, desc=None, leave=True, file=None): + self.kwargs = {'desc': desc, + 'leave': leave, + 'file': file} + + def __getattr__(self, attr): + if attr != 'kwargs': + return self.kwargs[attr] + else: + return super(TqdmPartial, self).__getattr__(attr) + + def __setattr__(self, attr, value): + if attr != 'kwargs': + self.kwargs[attr] = value + else: # pragma: no cover + super(TqdmPartial, self).__setattr__(attr, value) + + def __call__(self, iterable, **kwargs): + tqdm_kwargs = self.kwargs + tqdm_kwargs = {k: v for k, v in self.kwargs.items()} + tqdm_kwargs.update(kwargs) + return tqdm(iterable, **tqdm_kwargs) + + +class SimpleProgress(object): + """Mix-in for classes that need a progress meter. + + Note that this will use the names ``progress`` and ``_progress``. + """ + @property + def progress(self): + if not hasattr(self, '_progress'): + self._progress = DefaultProgress() + return self._progress + + @progress.setter + def progress(self, value): + if value == 'tqdm': + value = TqdmPartial() + elif value in ['silent', None]: + value = silent_progress + # else we assume it's already an AnalysisProgress + self._progress = value diff --git a/openpathsampling/tests/test_progress.py b/openpathsampling/tests/test_progress.py new file mode 100644 index 000000000..47160f275 --- /dev/null +++ b/openpathsampling/tests/test_progress.py @@ -0,0 +1,62 @@ +import pytest + +from openpathsampling.progress import * + +def test_silent_progress(capsys): + out, err = capsys.readouterr() + x = [1, 2, 3] + prog = silent_progress(x, desc='foo', leave=True) + y = [xx**2 for xx in x] + out, err = capsys.readouterr() + assert out == "" + assert err == "" + + +class TestTqdmPartial(object): + def setup(self): + _ = pytest.importorskip('tqdm') + self.tqdm_partial = TqdmPartial(desc="foo") + + def test_get_attr(self): + assert self.tqdm_partial.desc == "foo" + assert self.tqdm_partial.leave is True + assert self.tqdm_partial.file is None + + def test_get_kwargs(self): + assert self.tqdm_partial.kwargs == {'desc': 'foo', 'leave': True, + 'file': None} + + def test_set_attr(self): + self.tqdm_partial.file = "bar" + assert self.tqdm_partial.kwargs['file'] == "bar" + + def test_call(self, capsys): + out, err = capsys.readouterr() + xx = [x for x in self.tqdm_partial([1, 2, 3])] + out, err = capsys.readouterr() + assert out == "" + assert err != "" + +class TestSimpleProgress(object): + def setup(self): + self.progress = SimpleProgress() + + def test_progress_getter(self): + assert not hasattr(self.progress, '_progress') + prog = self.progress.progress + assert prog is not None + assert hasattr(self.progress, '_progress') + + def test_progress_setter(self): + prog = self.progress.progress + assert prog is not None + self.progress.progress = 'silent' + assert self.progress.progress is silent_progress + self.progress.progress = 'tqdm' + assert isinstance(self.progress.progress, TqdmPartial) + self.progress.progress = None + assert self.progress.progress is silent_progress + my_tqdm = TqdmPartial() + self.progress.progress = my_tqdm + assert self.progress.progress is my_tqdm + pass From fa72e2237ea22ba612c589dc7e522cea927a7451 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Tue, 10 Dec 2019 05:26:29 +0100 Subject: [PATCH 263/464] Use Autorelease for version/release management --- .travis.yml | 9 + autorelease_check.py | 30 ++ devtools/conda-recipe/meta.yaml | 2 +- openpathsampling/.gitignore | 2 +- openpathsampling/netcdfplus/__init__.py | 2 + openpathsampling/netcdfplus/netcdfplus.py | 7 +- openpathsampling/netcdfplus/version.py | 6 +- openpathsampling/version.py | 141 ++++++++ setup.cfg | 43 +++ setup.py | 371 ++++++++-------------- 10 files changed, 361 insertions(+), 252 deletions(-) create mode 100644 autorelease_check.py create mode 100644 openpathsampling/version.py create mode 100644 setup.cfg diff --git a/.travis.yml b/.travis.yml index 5e2800ab4..bdf3a6317 100644 --- a/.travis.yml +++ b/.travis.yml @@ -23,6 +23,7 @@ before_script: - conda list script: + - python autorelease_check.py --branch ${TRAVIS_BRANCH} --event ${TRAVIS_EVENT_TYPE} - source devtools/ci/pytests.sh - if [ -z "$MINIMAL" ] ; then source devtools/ci/ipythontests.sh; fi @@ -36,6 +37,11 @@ addons: env: global: + - TWINE_USERNAME="dwhswenson" + # TWINE_PASSWORD + - secure: "zs/3PN46wXFzTDli8LE9jJmNov27xAy7REaTK4s3DV9Ocmf5grqIUbUfFfa7XyOvamr6C7TSHib1SqQvEbHv416AcOD9FWZm9iNj0MO2dBimyXrvR50TFKG/dcp0Qzlp54hYFM4bEzWJZUVN120xynIKgfy74YBOA8DQ6B7FlyY=" + # AUTORELEASE_TOKEN + - secure: "r9u8xvXo3avaloOogrqIVF/oFDeMLSYvZbBYv3y3nBN17p3I9C2FhUbu/VpiRBA0kX6U2BsAHh5DF8ymRD254/f3s8L1BapanLfmoRjp9cXAJ95RZhZ8Cxw9W36VEGcIa+JG1G31oqabEBW4ozQmXsGPSYI3+wfFmhchJPpaDRE=" - secure: "NJvoSrLNd2ZR3HluJjEqI36gD5lsucwIvgnYjNmM4cwnnA77aLV9FRYTwlLRZn3XY9FL8KOzL5l0amNzMD7sQrf7bWwWv7iCUBddH549q9RSgiuOugtodYJ6VaXi76hk1rOgcJpDoCj9wTCIlMtWibPUzr1QHmdihfdM2iA2kkE=" - secure: "l9NJkZDD0ALhkErUvhRrreLsrcWErd+CXpWv8dxHGtkjemNx6CwVtyL+a30jz/QwMANSZbKll/cPK5yJQvuwDaWxja6UPLLKVNGtma+CmwKcIC/wwTwbMoxcS62fyLJ3kS0qR8oCQz2nCPKiYyRGADtPLWVMZckY1SJfNYcKuCM=" - secure: "kb37xmsSV3pEnESnINzwlW2Cju/UFzA/G+m+NsihAwO8RMPZwKCrZK/rptgkUDACXJxom5M690WEukQkHnOt+OTrWhu7WKZgYeVuWUs2++RohYv/m5npaOHMMn+uYmF328v4PvPmXxbD02zzg5Tgdn82x8oa6J8BKX8ohOQ6Xpg=" @@ -44,3 +50,6 @@ env: - CONDA_PY=2.7 - CONDA_PY=3.6 - CONDA_PY=3.7 + +import: + - dwhswenson/autorelease:autorelease-travis.yml@v0.1.0 diff --git a/autorelease_check.py b/autorelease_check.py new file mode 100644 index 000000000..004f9af7d --- /dev/null +++ b/autorelease_check.py @@ -0,0 +1,30 @@ +#/usr/bin/env python +from __future__ import print_function +import setup +import openpathsampling +from autorelease import DefaultCheckRunner, conda_recipe_version +from autorelease.version import get_setup_version +from packaging.version import Version + +repo_path = '.' +SETUP_VERSION = get_setup_version(None, directory='.') +versions = { + 'package': openpathsampling.version.version, + 'netcdfplus': openpathsampling.netcdfplus.version.version, + 'setup.py': SETUP_VERSION, + 'conda-recipe': conda_recipe_version('devtools/conda-recipe/meta.yaml'), +} + +RELEASE_BRANCHES = ['stable'] +RELEASE_TAG = "v" + Version(SETUP_VERSION).base_version + +if __name__ == "__main__": + checker = DefaultCheckRunner( + versions=versions, + setup=setup, + repo_path='.' + ) + checker.release_branches = RELEASE_BRANCHES + [RELEASE_TAG] + + tests = checker.select_tests_from_sysargs() + n_fails = checker.run_as_test(tests) diff --git a/devtools/conda-recipe/meta.yaml b/devtools/conda-recipe/meta.yaml index add6bbc07..1df16c520 100644 --- a/devtools/conda-recipe/meta.yaml +++ b/devtools/conda-recipe/meta.yaml @@ -1,6 +1,6 @@ package: name: openpathsampling-dev - version: "1.0.0" + version: "1.1.0.dev0" source: path: ../../ diff --git a/openpathsampling/.gitignore b/openpathsampling/.gitignore index dd2ca9877..c767a9f0b 100644 --- a/openpathsampling/.gitignore +++ b/openpathsampling/.gitignore @@ -1,7 +1,7 @@ # ignore python bytecode files *pyc -/version.py +_installed_version.py # ignore tag files tags diff --git a/openpathsampling/netcdfplus/__init__.py b/openpathsampling/netcdfplus/__init__.py index 44bcac4f5..55329a494 100644 --- a/openpathsampling/netcdfplus/__init__.py +++ b/openpathsampling/netcdfplus/__init__.py @@ -16,3 +16,5 @@ from .util import with_timing_logging from .attribute import PseudoAttribute, CallablePseudoAttribute, FunctionPseudoAttribute, \ GeneratorPseudoAttribute + +from . import version diff --git a/openpathsampling/netcdfplus/netcdfplus.py b/openpathsampling/netcdfplus/netcdfplus.py index cb16d1057..1396452ba 100644 --- a/openpathsampling/netcdfplus/netcdfplus.py +++ b/openpathsampling/netcdfplus/netcdfplus.py @@ -384,8 +384,11 @@ def file_size_str(self): @staticmethod def _cmp_version(v1, v2): - q1 = v1.split('-')[0].split('.') - q2 = v2.split('-')[0].split('.') + # we only look at x.y.z parts + q1 = v1.split('.')[:3] + q2 = v2.split('.')[:3] + # q1 = v1.split('-')[0].split('.') + # q2 = v2.split('-')[0].split('.') for v1, v2 in zip(q1, q2): if int(v1) > int(v2): return +1 diff --git a/openpathsampling/netcdfplus/version.py b/openpathsampling/netcdfplus/version.py index 6a7a42390..c4ed6d654 100644 --- a/openpathsampling/netcdfplus/version.py +++ b/openpathsampling/netcdfplus/version.py @@ -1,5 +1,5 @@ -short_version = '1.0.0' -version = '1.0.0' -full_version = '1.0.0' +short_version = '1.1.0.dev0' +version = '1.1.0.dev0' +full_version = '1.1.0.dev0' git_revision = 'alpha' release = False diff --git a/openpathsampling/version.py b/openpathsampling/version.py new file mode 100644 index 000000000..37d99b4c9 --- /dev/null +++ b/openpathsampling/version.py @@ -0,0 +1,141 @@ +# This file vendored from Autorelease +import os +import subprocess + +try: + from configparser import ConfigParser, NoSectionError, NoOptionError +except ImportError: + # py2 + from ConfigParser import ConfigParser, NoSectionError, NoOptionError + +try: + from ._installed_version import _installed_version + from ._installed_version import _installed_git_hash + from ._installed_version import _version_setup_depth +except ImportError: + _installed_version = "Unknown" + _installed_git_hash = "Unknown" + _version_setup_depth = -1 + + +def get_git_version(): + """ + Return the git hash as a string. + + Apparently someone got this from numpy's setup.py. It has since been + modified a few times. + """ + # Return the git revision as a string + # copied from numpy setup.py + def _minimal_ext_cmd(cmd): + # construct minimal environment + env = {} + for k in ['SYSTEMROOT', 'PATH']: + v = os.environ.get(k) + if v is not None: + env[k] = v + # LANGUAGE is used on win32 + env['LANGUAGE'] = 'C' + env['LANG'] = 'C' + env['LC_ALL'] = 'C' + with open(os.devnull, 'w') as err_out: + out = subprocess.Popen(cmd, + stdout=subprocess.PIPE, + stderr=err_out, # maybe debug later? + env=env).communicate()[0] + return out + + try: + git_dir = os.path.dirname(os.path.realpath(__file__)) + out = _minimal_ext_cmd(['git', '-C', git_dir, 'rev-parse', 'HEAD']) + GIT_REVISION = out.strip().decode('ascii') + except OSError: + GIT_REVISION = 'Unknown' + + return GIT_REVISION + +def _seek_parent_dirs_for_file(filename): + rel_directory = None + my_dir = os.path.dirname(os.path.abspath(__file__)) + rel_directory_arr = [] + while not rel_directory: + expected_dir = os.path.join(*rel_directory_arr) \ + if rel_directory_arr else '.' + expected = os.path.join(expected_dir, filename) + if os.path.isfile(os.path.normpath(expected)): + rel_directory = expected_dir + else: + rel_directory_arr.append('..') + + if len(rel_directory_arr) > len(my_dir.split(os.sep)): + rel_directory_arr = [] + break + + return rel_directory + + +def _find_rel_path_for_file(depth, filename): + rel_directory = None + if depth == 0: + rel_directory = '.' + elif depth >= 1: + rel_directory = os.sep.join(['..'] * depth) + else: + rel_directory = _seek_parent_dirs_for_file(filename) + + if rel_directory: + return os.path.normpath(os.path.join(rel_directory, filename)) + else: + return None + + +def get_setup_cfg(directory, filename="setup.cfg"): + """Load the setup.cfg as a dict-of-dict. + + Parameters + ---------- + directory : str + directory for setup.cfg, relative to cwd; default '.' + filename : str + filename for setup.cfg; default 'setup.cfg' + """ + if isinstance(directory, int): + rel_path = _find_rel_path_for_file(directory, filename) + start_dir = os.path.abspath(os.path.dirname(__file__)) + setup_cfg = os.path.normpath(os.path.join(start_dir, rel_path)) + else: + setup_cfg = os.path.join(directory, filename) + + conf = None + if os.path.exists(setup_cfg): + conf = ConfigParser() + conf.read(setup_cfg) + + return conf + + +def get_setup_version(default_version, directory, filename="setup.cfg"): + version = default_version + conf = get_setup_cfg(directory, filename) + try: + version = conf.get('metadata', 'version') + except (NoSectionError, NoOptionError): + pass # version (or metadata) not defined in setup.cfg + except AttributeError: + pass # no setup.cfg found (conf is None) + return version + + +short_version = get_setup_version(_installed_version, + directory=_version_setup_depth) +_git_version = get_git_version() +_is_repo = (_git_version != '' and _git_version != "Unknown") + +if _is_repo: + git_hash = _git_version + full_version = short_version + "+g" + _git_version[:7] + version = full_version +else: + git_hash = "Unknown" + full_version = short_version + "+g" + _installed_git_hash[:7] + '.install' + version = short_version diff --git a/setup.cfg b/setup.cfg new file mode 100644 index 000000000..f5df02af9 --- /dev/null +++ b/setup.cfg @@ -0,0 +1,43 @@ +[metadata] +name = openpathsampling +version = 1.1.0.dev0 +description = A Python package for path sampling simulations +long_description = file: README.md +long_description_content_type = text/markdown +author = David W.H. Swenson, Jan-Hendrik Prinz, John D. Chodera, and Peter G. Bolhuis +author_email = dwhs@hyperblazer.net +license = MIT +url = https://github.com/openpathsampling/openpathsampling +classifiers = + Development Status :: 5 - Production/Stable + Intended Audience :: Science/Research + Intended Audience :: Developers + License :: OSI Approved :: MIT License + Programming Language :: Python + Programming Language :: Python :: 2.7 + Programming Language :: Python :: 3.6 + Programming Language :: Python :: 3.7 + Topic :: Scientific/Engineering :: Bio-Informatics + Topic :: Scientific/Engineering :: Chemistry + Topic :: Scientific/Engineering :: Physics + Operating System :: POSIX + Operating System :: Unix + Operating System :: MacOS + +[options] +include_package_data = True +install_requires = + future + psutil + numpy + scipy + pandas + netcdf4 + svgwrite + networkx + matplotlib + ujson +packages = find: + +[bdist_wheel] +universal = 1 diff --git a/setup.py b/setup.py index 5305b244f..2a7d0df42 100644 --- a/setup.py +++ b/setup.py @@ -1,248 +1,129 @@ -"""OpenPathSampling: A python package to do path sampling simulations +# This file is vendored from Autorelease +import os +import ast +import sys -OpenPathSampling (http://github.com/choderalab/openpathsampling) is a -python library to do transition interface sampling. -""" +import fnmatch # Py 2 -from __future__ import print_function -from builtins import str from setuptools import setup -import sys -import os -import subprocess - -# experimental yaml support to read the settings -# import yaml - -sys.path.insert(0, '.') - - -def trunc_lines(s): - parts = s.split('\n') - while len(parts[0]) == 0: - parts = parts[1:] - - while len(parts[-1]) == 0: - parts = parts[:-1] - - parts = [part for part in parts if len(part) > 0] - - return ''.join(parts) - - -# +----------------------------------------------------------------------------- -# | GET GIT VERSION -# +----------------------------------------------------------------------------- - -def get_git_version(): - # Return the git revision as a string - # copied from numpy setup.py - def _minimal_ext_cmd(cmd): - # construct minimal environment - env = {} - for k in ['SYSTEMROOT', 'PATH']: - v = os.environ.get(k) - if v is not None: - env[k] = v - - # LANGUAGE is used on win32 - env['LANGUAGE'] = 'C' - env['LANG'] = 'C' - env['LC_ALL'] = 'C' - output = subprocess.Popen( - cmd, stdout=subprocess.PIPE, env=env).communicate()[0] - return output - - try: - out = _minimal_ext_cmd(['git', 'rev-parse', 'HEAD']) - git_revision = out.strip().decode('ascii') - except OSError: - git_revision = 'Unknown' - - return git_revision - - -# +----------------------------------------------------------------------------- -# | WRITE version.py FILE -# +----------------------------------------------------------------------------- - -def write_version_py( - prefs, - filename='openpathsampling/version.py', -): - cnt = """ -# This file is automatically generated by setup.py -short_version = '%(version)s' -version = '%(version)s' -full_version = '%(full_version)s' -git_revision = '%(git_revision)s' -release = %(isrelease)s - -if not release: - version = full_version -""" - - # Adding the git rev number needs to be done inside write_version_py(), - # otherwise the import of numpy.version messes up the build under Python 3. - if os.path.exists('.git'): - git_version = get_git_version() - else: - git_version = 'Unknown' - - full_version = prefs['version'] - if not preferences['released']: - full_version += '.dev-' + git_version[:7] - - print('writing version file at %s' % filename) - - a = open(filename, 'w') - try: - a.write(cnt % { - 'version': prefs['version'], - 'short_version': prefs['version'], - 'full_version': full_version, - 'git_revision': git_version, - 'isrelease': str(prefs['released']) - }) - finally: - a.close() - - -# +----------------------------------------------------------------------------- -# | CONSTRUCT PARAMETERS FOR setuptools -# +----------------------------------------------------------------------------- - -def build_keyword_dictionary(prefs): - keywords = {} - - for key in [ - 'name', 'version', 'license', 'url', 'download_url', 'packages', - 'package_dir', 'platforms', 'description', 'install_requires', - 'long_description', 'package_data', 'include_package_data' - ]: - if key in prefs: - keywords[key] = prefs[key] - - keywords['author'] = \ - ', '.join(prefs['authors'][:-1]) + ' and ' + \ - prefs['authors'][-1] - - keywords['author_email'] = \ - ', '.join(prefs['emails']) - - keywords["package_dir"] = \ - {package: '/'.join(package.split('.')) for package in prefs['packages']} - - keywords['long_description'] = \ - trunc_lines(keywords['long_description']) - - output = "" - first_tab = 40 - second_tab = 60 - for key in sorted(keywords.keys()): - value = keywords[key] - output += key.rjust(first_tab) + str(value).rjust(second_tab) + "" - - # pprint.pprint(keywords) - # print("%s" % output) - - return keywords - - -# load settings from setup.py, easier to maintain, but not fully supported yet -# with open('setup.yaml') as f: -# yaml_string = ''.join(f.readlines()) -# preferences = yaml.load(yaml_string) - -preferences = { - 'authors': [ - 'David W.H. Swenson', - 'Jan-Hendrik Prinz', - 'John D. Chodera', - 'Peter Bolhuis' - ], - 'classifiers': - ''' -Development Status :: 3 - Alpha -Intended Audience :: Science/Research -Intended Audience :: Developers -License :: OSI Approved :: MIT License -Programming Language :: C -Programming Language :: Python -Programming Language :: Python :: 2.7 -Programming Language :: Python :: 3.6 -Programming Language :: Python :: 3.7 -Topic :: Scientific/Engineering :: Bio-Informatics -Topic :: Scientific/Engineering :: Chemistry -Operating System :: Microsoft :: Windows -Operating System :: POSIX -Operating System :: Unix -Operating System :: MacOS -''', - 'description': 'OpenPathSampling: A python package to do path sampling simulations', - 'download_url': 'http://github.com/openpathsampling/openpathsampling', - 'emails': [ - 'dwhs@hyperblazer.net', - 'jan.prinz@choderalab.org,', - 'choderaj@mskcc.org', - 'p.g.bolhuis@uva.nl'], - 'license': 'MIT', - 'license_file': 'LICENSE', - 'long_description': 'OpenPathSampling (http://github.com/choderalab/openpathsampling) is a \n' - 'python library to do transition interface sampling.', - 'name': 'openpathsampling', - 'include_package_data': True, - 'packages': [ - 'openpathsampling', - 'openpathsampling.storage', - 'openpathsampling.storage.stores', - 'openpathsampling.tests', - 'openpathsampling.pathmovers', - 'openpathsampling.ensembles', - 'openpathsampling.collectivevariables', - 'openpathsampling.analysis', - 'openpathsampling.netcdfplus', - 'openpathsampling.high_level', - 'openpathsampling.pathsimulators', - 'openpathsampling.strategies', - 'openpathsampling.engines', - 'openpathsampling.engines.features', - 'openpathsampling.engines.openmm', - 'openpathsampling.engines.openmm.features', - 'openpathsampling.engines.toy', - 'openpathsampling.engines.toy.features', - 'openpathsampling.numerics'], - 'platforms': ['Linux', 'Mac OS X', 'Windows'], - 'released': False, - 'install_requires': [ - #'python', - 'numpy', - 'scipy', - 'pandas', - 'future', - #'jupyter', - 'netcdf4', - #'openmm', - #'openmmtools', - # 'pymbar', - # 'docopt', - # 'pyyaml', - #'mdtraj', - 'svgwrite', - 'networkx', - 'matplotlib', - 'ujson'], - 'url': 'http://www.openpathsampling.org', - 'version': '1.0.0'} - -setup_keywords = build_keyword_dictionary(preferences) - - -def main(): - write_version_py(preferences) - setup(**setup_keywords) - pass - - -if __name__ == '__main__': - main() + +def _glob_glob_recursive(directory, pattern): + # python 2 glob.glob doesn't have a recursive keyword + # this implements for the specific case that we want an exact match + # See also https://stackoverflow.com/a/2186565 + matches = [] + for root, dirname, filenames in os.walk(directory): + matches.extend([os.path.join(root, filename) + for filename in fnmatch.filter(filenames, pattern)]) + return matches + + +class VersionPyFinder(object): + _VERSION_PY_FUNCTIONS = ['get_git_version', 'get_setup_cfg'] + def __init__(self, filename='version.py', max_depth=2): + self.filename_base = filename + self.max_depth = max_depth + self.depth = None + self.filename = os.getenv("AUTORELEASE_VERSION_PY", + self._first_eligible()) + self.functions = self._get_functions(self.filename) + + def _find_files(self): + # all_files = glob.glob("**/" + self.filename_base, recursive=True) + all_files = _glob_glob_recursive('.', self.filename_base) + meets_depth = [fname for fname in all_files + if len(fname.split(os.sep)) <= self.max_depth + 1] + return meets_depth + + def _is_eligible(self, filename): + with open(filename, mode='r') as f: + contents = f.read() + + tree = ast.parse(contents) + # we requrie that our functions be defined at module level -- we + # know that's how we wrote them, at least! + all_functions = [node.name for node in tree.body + if isinstance(node, ast.FunctionDef)] + return all(func in all_functions + for func in self._VERSION_PY_FUNCTIONS) + + def _first_eligible(self): + all_files = self._find_files() + for fname in all_files: + if self._is_eligible(fname): + return fname + return None + + @property + def version_setup_depth(self): + def get_depth(fname): + return len(os.path.abspath(fname).split(os.sep)) + + # we assume thta setup.py is in the same dir as setup.cfg + diff = get_depth(self.filename) - get_depth(__file__) + return diff + + def _get_functions(self, filename): + with open(self.filename, mode='r') as f: + contents = f.read() + + tree = ast.parse(contents) + + class MakeImportError(ast.NodeTransformer): + """converts a from x import y into an import error""" + def __init__(self, import_name): + self.import_name = import_name + + def visit_ImportFrom(self, node): + if node.module == self.import_name: + replacement = ast.Raise(exc=ast.Call( + func=ast.Name(id='ImportError', ctx=ast.Load()), + args=[], + keywords=[], + ), cause=None) + return ast.copy_location(replacement, node) + else: + return node + + import_remover = MakeImportError("_installed_version") + tree = import_remover.visit(tree) + ast.fix_missing_locations(tree) + + locs = dict(globals()) + exec(compile(tree, filename="version.py", mode='exec'), locs) + return {f: locs[f] for f in self._VERSION_PY_FUNCTIONS} + + +def write_installed_version_py(filename="_installed_version.py", + src_dir=None): + version_finder = VersionPyFinder() + directory = os.path.dirname(version_finder.filename) + depth = version_finder.version_setup_depth + get_git_version = version_finder.functions['get_git_version'] + get_setup_cfg = version_finder.functions['get_setup_cfg'] + + installed_version = os.path.join(directory, "_installed_version.py") + content = "_installed_version = '{vers}'\n" + content += "_installed_git_hash = '{git}'\n" + content += "_version_setup_depth = {depth}\n" + + # question: if I use the __file__ attribute in something I compile from + # here, what is the file? + my_dir = os.path.abspath(os.path.dirname(__file__)) + conf = get_setup_cfg(directory=my_dir, filename='setup.cfg') + # conf = get_setup_cfg(directory=my_dir, filename='new_setup.cfg') + version = conf.get('metadata', 'version') + git_rev = get_git_version() + + if src_dir is None: + src_dir = conf.get('metadata', 'name') + + with open (os.path.join(src_dir, filename), 'w') as f: + f.write(content.format(vers=version, git=git_rev, depth=depth)) + +if __name__ == "__main__": + # TODO: only write version.py under special circumstances + write_installed_version_py() + # write_version_py(os.path.join('autorelease', 'version.py')) + setup() + From 9822a161bced69a018eba9f8cc4c194ce44123f1 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Tue, 10 Dec 2019 05:46:25 +0100 Subject: [PATCH 264/464] Add pip-install of autorelease to .travis.yml --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index bdf3a6317..1da347668 100644 --- a/.travis.yml +++ b/.travis.yml @@ -13,6 +13,7 @@ before_install: install: - export OPS_ENV="openpathsampling-py${CONDA_PY}" - if [ -z "$MINIMAL" ] ; then source devtools/conda_install_reqs.sh; else pip install -r devtools/minimal.txt -r devtools/minimal_testing.txt; fi + - pip install autorelease - pip install --no-deps -e . before_script: From b9110034f2dce3b5628bd4475f4ac619c55064af Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Tue, 10 Dec 2019 07:30:26 +0100 Subject: [PATCH 265/464] fix problem with ImportError ast in Py27 don't know why autorelease never caught that before, but the fix is actually much more readable than the original! changes have also be made upstream in autorelease --- setup.cfg | 3 +++ setup.py | 8 +++----- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/setup.cfg b/setup.cfg index f5df02af9..d1e40d8ed 100644 --- a/setup.cfg +++ b/setup.cfg @@ -37,6 +37,9 @@ install_requires = networkx matplotlib ujson + mdtraj + # mdtraj is not technically required, but we co-package it because it is + # required for many integrations with other packages packages = find: [bdist_wheel] diff --git a/setup.py b/setup.py index 2a7d0df42..cf559c88a 100644 --- a/setup.py +++ b/setup.py @@ -76,11 +76,7 @@ def __init__(self, import_name): def visit_ImportFrom(self, node): if node.module == self.import_name: - replacement = ast.Raise(exc=ast.Call( - func=ast.Name(id='ImportError', ctx=ast.Load()), - args=[], - keywords=[], - ), cause=None) + replacement = ast.parse("raise ImportError()").body[0] return ast.copy_location(replacement, node) else: return node @@ -115,6 +111,8 @@ def write_installed_version_py(filename="_installed_version.py", version = conf.get('metadata', 'version') git_rev = get_git_version() + # TODO: shouldn't vwe just use the directory found by the + # VersionPyFinder? if src_dir is None: src_dir = conf.get('metadata', 'name') From 437aa18a69b793bcf39f7604c17581edc2da8f1a Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Tue, 10 Dec 2019 12:58:43 +0100 Subject: [PATCH 266/464] Add PathSampling.run_until_decorrelated --- .../pathsimulators/path_sampling.py | 36 +++++++++++++++++++ openpathsampling/tests/test_pathsimulator.py | 32 +++++++++++++++++ 2 files changed, 68 insertions(+) diff --git a/openpathsampling/pathsimulators/path_sampling.py b/openpathsampling/pathsimulators/path_sampling.py index 1402a0919..6138d20b0 100644 --- a/openpathsampling/pathsimulators/path_sampling.py +++ b/openpathsampling/pathsimulators/path_sampling.py @@ -1,5 +1,6 @@ import time import logging +import os import openpathsampling as paths from .path_simulator import PathSimulator, MCStep @@ -186,6 +187,41 @@ def run_until(self, n_steps): n_steps_to_run = n_steps - self.step self.run(n_steps_to_run) + def run_until_decorrelated(self): + """Run until all trajectories are decorrelated. + + This runs until all the replicas in ``self.sample_set`` have + decorrelated from their initial conditions. "Decorrelated" here is + meant in the sense commonly used in one-way shooting: this runs + until no configurations from the original trajectories remain. + """ + originals = {s.replica: s.trajectory for s in self.sample_set} + current = self.sample_set + + # cache the output stream; force the primary `run` method to not + # output anything + original_output_stream = self.output_stream + self.output_stream = open(os.devnull, 'w') + + def n_correlated(sample_set, originals): + return sum([originals[r].is_correlated(sample_set[r]) + for r in originals]) + + original_output_stream.write("Decorrelating trajectories....\n") + to_decorrelate = n_correlated(self.sample_set, originals) + # walrus in py38! + while to_decorrelate: + out_str = "Step {}: {} of {} trajectories still correlated\n" + paths.tools.refresh_output( + out_str.format(self.step + 1, to_decorrelate, len(originals)), + refresh=False, + output_stream=original_output_stream + ) + self.run(1) + to_decorrelate = n_correlated(self.sample_set, originals) + + self.output_stream = original_output_stream + def run(self, n_steps): mcstep = None diff --git a/openpathsampling/tests/test_pathsimulator.py b/openpathsampling/tests/test_pathsimulator.py index e5358f89c..d0ed20e60 100644 --- a/openpathsampling/tests/test_pathsimulator.py +++ b/openpathsampling/tests/test_pathsimulator.py @@ -648,3 +648,35 @@ def test_sim_with_storage(self): assert_equal(len(traj), 201) read_store.close() os.remove(tmpfile) + + +class TestPathSampling(object): + def setup(self): + paths.InterfaceSet._reset() + self.cv = paths.FunctionCV("x", lambda x: x.xyz[0][0]) + self.state_A = paths.CVDefinedVolume(self.cv, float("-inf"), 0.0) + self.state_B = paths.CVDefinedVolume(self.cv, 1.0, float("inf")) + pes = paths.engines.toy.LinearSlope([0, 0, 0], 0) + integ = paths.engines.toy.LangevinBAOABIntegrator(0.01, 0.1, 2.5) + topology = paths.engines.toy.Topology(n_spatial=3, masses=[1.0], + pes=pes) + self.engine = paths.engines.toy.Engine(options={'integ': integ}, + topology=topology) + network = paths.TPSNetwork(self.state_A, self.state_B) + init_traj = make_1d_traj([-0.1, 0.2, 0.5, 0.8, 1.1]) + scheme = paths.OneWayShootingMoveScheme( + network=network, + selector=paths.UniformSelector(), + engine=self.engine + ) + init_cond = scheme.initial_conditions_from_trajectories(init_traj) + self.sim = PathSampling(storage=None, move_scheme=scheme, + sample_set=init_cond) + + def test_run_until_decorrelated(self): + def all_snaps(sample_set): + return set(sum([s.trajectory for s in sample_set], [])) + initial_snaps = all_snaps(self.sim.sample_set) + self.sim.run_until_decorrelated() + final_snaps = all_snaps(self.sim.sample_set) + assert initial_snaps & final_snaps == set([]) From dfedd65c22cbb42b580f42c650a12b6f24d11f88 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Wed, 11 Dec 2019 18:49:11 +0100 Subject: [PATCH 267/464] Release 1.1.0 --- devtools/conda-recipe/meta.yaml | 2 +- openpathsampling/netcdfplus/version.py | 6 +++--- setup.cfg | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/devtools/conda-recipe/meta.yaml b/devtools/conda-recipe/meta.yaml index 1df16c520..9944d9257 100644 --- a/devtools/conda-recipe/meta.yaml +++ b/devtools/conda-recipe/meta.yaml @@ -1,6 +1,6 @@ package: name: openpathsampling-dev - version: "1.1.0.dev0" + version: "1.1.0" source: path: ../../ diff --git a/openpathsampling/netcdfplus/version.py b/openpathsampling/netcdfplus/version.py index c4ed6d654..b54b0b8a7 100644 --- a/openpathsampling/netcdfplus/version.py +++ b/openpathsampling/netcdfplus/version.py @@ -1,5 +1,5 @@ -short_version = '1.1.0.dev0' -version = '1.1.0.dev0' -full_version = '1.1.0.dev0' +short_version = '1.1.0' +version = '1.1.0' +full_version = '1.1.0' git_revision = 'alpha' release = False diff --git a/setup.cfg b/setup.cfg index d1e40d8ed..bb0551bec 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,6 +1,6 @@ [metadata] name = openpathsampling -version = 1.1.0.dev0 +version = 1.1.0 description = A Python package for path sampling simulations long_description = file: README.md long_description_content_type = text/markdown From 41e69cc888682f49a029d5651906bc0dda10170a Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Wed, 11 Dec 2019 19:23:16 +0100 Subject: [PATCH 268/464] more fixes to JHP's non-PEP440 version parser --- openpathsampling/netcdfplus/netcdfplus.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/openpathsampling/netcdfplus/netcdfplus.py b/openpathsampling/netcdfplus/netcdfplus.py index 1396452ba..e95771281 100644 --- a/openpathsampling/netcdfplus/netcdfplus.py +++ b/openpathsampling/netcdfplus/netcdfplus.py @@ -385,8 +385,12 @@ def file_size_str(self): @staticmethod def _cmp_version(v1, v2): # we only look at x.y.z parts - q1 = v1.split('.')[:3] - q2 = v2.split('.')[:3] + def version_parts(v): + return v.split('-')[0].split('+')[0].split('.')[:3] + q1 = version_parts(v1) + q2 = version_parts(v2) + # q1 = v1.split('.')[:3] + # q2 = v2.split('.')[:3] # q1 = v1.split('-')[0].split('.') # q2 = v2.split('-')[0].split('.') for v1, v2 in zip(q1, q2): From e6dc0b5b765525b5f1ecccc575a01ee643125ce9 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Wed, 11 Dec 2019 19:30:43 +0100 Subject: [PATCH 269/464] had forgotten the travis version maybe that will fix the missing stage? --- .travis.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.travis.yml b/.travis.yml index 1da347668..5a96dabb5 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,3 +1,5 @@ +version: ~> 1.0 + language: python filter_secrets: false # https://github.com/travis-ci/travis-ci/issues/8934 From 2f7fae898f2310c7df57be8202420433b63998b8 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Wed, 11 Dec 2019 19:57:12 +0100 Subject: [PATCH 270/464] Workaround: move before_script into install Autorelease doesn't override before_script; will need to do that! --- .travis.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 5a96dabb5..41795cad8 100644 --- a/.travis.yml +++ b/.travis.yml @@ -17,8 +17,7 @@ install: - if [ -z "$MINIMAL" ] ; then source devtools/conda_install_reqs.sh; else pip install -r devtools/minimal.txt -r devtools/minimal_testing.txt; fi - pip install autorelease - pip install --no-deps -e . - -before_script: + #before_script: # TODO: return this to before_script; fix autorelease - python --version - python -c "import openpathsampling" - source devtools/ci/git_hash.sh From 08b939fa9cafe1c6bd79c9769f770d38e39952d7 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 12 Dec 2019 12:34:47 +0100 Subject: [PATCH 271/464] use autorelease/ops_fixes branch to fix/debug --- .travis.yml | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/.travis.yml b/.travis.yml index 41795cad8..f98ea8502 100644 --- a/.travis.yml +++ b/.travis.yml @@ -17,7 +17,8 @@ install: - if [ -z "$MINIMAL" ] ; then source devtools/conda_install_reqs.sh; else pip install -r devtools/minimal.txt -r devtools/minimal_testing.txt; fi - pip install autorelease - pip install --no-deps -e . - #before_script: # TODO: return this to before_script; fix autorelease + +before_script: - python --version - python -c "import openpathsampling" - source devtools/ci/git_hash.sh @@ -40,10 +41,10 @@ addons: env: global: - TWINE_USERNAME="dwhswenson" - # TWINE_PASSWORD - - secure: "zs/3PN46wXFzTDli8LE9jJmNov27xAy7REaTK4s3DV9Ocmf5grqIUbUfFfa7XyOvamr6C7TSHib1SqQvEbHv416AcOD9FWZm9iNj0MO2dBimyXrvR50TFKG/dcp0Qzlp54hYFM4bEzWJZUVN120xynIKgfy74YBOA8DQ6B7FlyY=" - # AUTORELEASE_TOKEN - - secure: "r9u8xvXo3avaloOogrqIVF/oFDeMLSYvZbBYv3y3nBN17p3I9C2FhUbu/VpiRBA0kX6U2BsAHh5DF8ymRD254/f3s8L1BapanLfmoRjp9cXAJ95RZhZ8Cxw9W36VEGcIa+JG1G31oqabEBW4ozQmXsGPSYI3+wfFmhchJPpaDRE=" + # TWINE_PASSWORD (set via web) + #- secure: "zs/3PN46wXFzTDli8LE9jJmNov27xAy7REaTK4s3DV9Ocmf5grqIUbUfFfa7XyOvamr6C7TSHib1SqQvEbHv416AcOD9FWZm9iNj0MO2dBimyXrvR50TFKG/dcp0Qzlp54hYFM4bEzWJZUVN120xynIKgfy74YBOA8DQ6B7FlyY=" + # AUTORELEASE_TOKEN (set via web) + #- secure: "r9u8xvXo3avaloOogrqIVF/oFDeMLSYvZbBYv3y3nBN17p3I9C2FhUbu/VpiRBA0kX6U2BsAHh5DF8ymRD254/f3s8L1BapanLfmoRjp9cXAJ95RZhZ8Cxw9W36VEGcIa+JG1G31oqabEBW4ozQmXsGPSYI3+wfFmhchJPpaDRE=" - secure: "NJvoSrLNd2ZR3HluJjEqI36gD5lsucwIvgnYjNmM4cwnnA77aLV9FRYTwlLRZn3XY9FL8KOzL5l0amNzMD7sQrf7bWwWv7iCUBddH549q9RSgiuOugtodYJ6VaXi76hk1rOgcJpDoCj9wTCIlMtWibPUzr1QHmdihfdM2iA2kkE=" - secure: "l9NJkZDD0ALhkErUvhRrreLsrcWErd+CXpWv8dxHGtkjemNx6CwVtyL+a30jz/QwMANSZbKll/cPK5yJQvuwDaWxja6UPLLKVNGtma+CmwKcIC/wwTwbMoxcS62fyLJ3kS0qR8oCQz2nCPKiYyRGADtPLWVMZckY1SJfNYcKuCM=" - secure: "kb37xmsSV3pEnESnINzwlW2Cju/UFzA/G+m+NsihAwO8RMPZwKCrZK/rptgkUDACXJxom5M690WEukQkHnOt+OTrWhu7WKZgYeVuWUs2++RohYv/m5npaOHMMn+uYmF328v4PvPmXxbD02zzg5Tgdn82x8oa6J8BKX8ohOQ6Xpg=" @@ -54,4 +55,4 @@ env: - CONDA_PY=3.7 import: - - dwhswenson/autorelease:autorelease-travis.yml@v0.1.0 + - dwhswenson/autorelease:autorelease-travis.yml@ops_fixes From 87832b443f216eb455d855c7b002572b114a9d88 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 12 Dec 2019 13:15:58 +0100 Subject: [PATCH 272/464] minor travis update; mainly to push new build restarting build doesn't rebuild the configs --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index f98ea8502..69a635206 100644 --- a/.travis.yml +++ b/.travis.yml @@ -10,7 +10,7 @@ before_install: - deactivate # virtual envs don't play nice with conda - export PYTHONUNBUFFERED=true # immediately flush stdout to terminal - source devtools/ci/miniconda_install.sh - - conda install -y pyyaml + #- conda install -y pyyaml # I don't think this is needed now... install: - export OPS_ENV="openpathsampling-py${CONDA_PY}" From dfac97161d1abc15c7998f52ed5eddbad7264917 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 12 Dec 2019 14:38:07 +0100 Subject: [PATCH 273/464] use scripts in autorelease/ops_fixes branch --- .travis.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 69a635206..e3ce74c98 100644 --- a/.travis.yml +++ b/.travis.yml @@ -15,7 +15,9 @@ before_install: install: - export OPS_ENV="openpathsampling-py${CONDA_PY}" - if [ -z "$MINIMAL" ] ; then source devtools/conda_install_reqs.sh; else pip install -r devtools/minimal.txt -r devtools/minimal_testing.txt; fi - - pip install autorelease + # for the first OPS install, we will run the ops_fixes autorelease branch + - pip install git+https://github.com/dwhswenson/autorelease.git@ops_fixes + #- pip install autorelease - pip install --no-deps -e . before_script: From 51e28e25b972417f8fcde3afe2267a64258f9ee7 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 12 Dec 2019 16:02:13 +0100 Subject: [PATCH 274/464] travis only builds on specific branches Travis will always build PRs. This way we only build here on branches where we don't directly add commits (plus special deployment testing branches) --- .travis.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.travis.yml b/.travis.yml index e3ce74c98..bf56283b9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,6 +3,14 @@ version: ~> 1.0 language: python filter_secrets: false # https://github.com/travis-ci/travis-ci/issues/8934 +branches: + only: + - master + - stable + - docs_deploy # used for experimenting with docs builds + - /^v\d+(\.\d+)+/ + + notifications: webhooks: https://coveralls.io/webhook From 0bc3ce5ac245912131cc0bb631e7d6411aa6f7b5 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 12 Dec 2019 18:01:32 +0100 Subject: [PATCH 275/464] Fix tests failing when MDTraj present; OpenMM not --- openpathsampling/engines/openmm/topology.py | 1 - openpathsampling/tests/test_attribute.py | 2 ++ openpathsampling/tests/test_collectivevariable.py | 2 ++ openpathsampling/tests/test_mdtraj_support.py | 3 +++ openpathsampling/tests/test_openmm_tools.py | 6 ++++-- openpathsampling/tests/test_storage.py | 3 +++ 6 files changed, 14 insertions(+), 3 deletions(-) diff --git a/openpathsampling/engines/openmm/topology.py b/openpathsampling/engines/openmm/topology.py index 4600ea79d..cc8cf6814 100644 --- a/openpathsampling/engines/openmm/topology.py +++ b/openpathsampling/engines/openmm/topology.py @@ -1,7 +1,6 @@ import mdtraj as md import numpy as np import pandas as pd -from simtk.openmm import XmlSerializer from openpathsampling.engines import Topology diff --git a/openpathsampling/tests/test_attribute.py b/openpathsampling/tests/test_attribute.py index 6c7b7405b..e03d5e96b 100644 --- a/openpathsampling/tests/test_attribute.py +++ b/openpathsampling/tests/test_attribute.py @@ -3,6 +3,7 @@ """ from .test_helpers import data_filename, assert_close_unit, make_1d_traj, md +import pytest from nose.plugins.skip import SkipTest @@ -18,6 +19,7 @@ def setup(self): if not md: raise SkipTest("mdtraj not installed") self.mdtraj = md.load(data_filename("ala_small_traj.pdb")) + pytest.importorskip("simtk.unit") self.traj_topology = peng.trajectory_from_mdtraj(self.mdtraj) self.traj_simple = peng.trajectory_from_mdtraj( self.mdtraj, diff --git a/openpathsampling/tests/test_collectivevariable.py b/openpathsampling/tests/test_collectivevariable.py index bad31a4dd..7f47b9e68 100644 --- a/openpathsampling/tests/test_collectivevariable.py +++ b/openpathsampling/tests/test_collectivevariable.py @@ -7,6 +7,7 @@ from builtins import object from .test_helpers import data_filename, assert_close_unit, md +import pytest from nose.plugins.skip import SkipTest import numpy as np @@ -32,6 +33,7 @@ def setup(self): if not md: raise SkipTest("mdtraj not installed") self.mdtraj = md.load(data_filename("ala_small_traj.pdb")) + _ = pytest.importorskip('simtk.unit') self.traj_topology = peng.trajectory_from_mdtraj(self.mdtraj) self.traj_simple = peng.trajectory_from_mdtraj( self.mdtraj, diff --git a/openpathsampling/tests/test_mdtraj_support.py b/openpathsampling/tests/test_mdtraj_support.py index a87d50d0d..d2ca421ac 100644 --- a/openpathsampling/tests/test_mdtraj_support.py +++ b/openpathsampling/tests/test_mdtraj_support.py @@ -2,6 +2,8 @@ from builtins import object import logging +import pytest + from nose.tools import ( assert_equal, assert_not_equal, raises ) @@ -29,6 +31,7 @@ def setup(self): if not md: raise SkipTest("mdtraj not installed") self.md_trajectory = md.load(data_filename("ala_small_traj.pdb")) + _ = pytest.importorskip("simtk.unit") self.ops_trajectory = trajectory_from_mdtraj(self.md_trajectory) self.md_topology = self.ops_trajectory.topology.mdtraj diff --git a/openpathsampling/tests/test_openmm_tools.py b/openpathsampling/tests/test_openmm_tools.py index a13c7f8e6..a2064134e 100644 --- a/openpathsampling/tests/test_openmm_tools.py +++ b/openpathsampling/tests/test_openmm_tools.py @@ -89,6 +89,8 @@ def test_reduced_box_vectors(): else: raise AssertionError("Box already reduced") + if not HAS_OPENMM: + pytest.skip() snap = mock_snapshot_with_box_vector(box * nm) reduced_box = reduced_box_vectors(snap).value_in_unit(nm) check_reduced_box_vectors(reduced_box) @@ -122,7 +124,7 @@ def test_reduce_trajectory_box_vectors(): def test_load_trr_with_velocities(): - if not HAS_MDTRAJ: + if not (HAS_MDTRAJ and HAS_OPENMM): pytest.skip() box_vect_dir = "reduce_box_vects" gro = data_filename(box_vect_dir + "/dna.gro") @@ -134,7 +136,7 @@ def test_load_trr_with_velocities(): def test_load_trr_no_velocities(): - if not HAS_MDTRAJ: + if not (HAS_MDTRAJ and HAS_OPENMM): pytest.skip() box_vect_dir = "reduce_box_vects" gro = data_filename(box_vect_dir + "/dna.gro") diff --git a/openpathsampling/tests/test_storage.py b/openpathsampling/tests/test_storage.py index e42765990..992c5f039 100644 --- a/openpathsampling/tests/test_storage.py +++ b/openpathsampling/tests/test_storage.py @@ -8,6 +8,8 @@ from builtins import object import os +import pytest + from nose.tools import (assert_equal) import openpathsampling as paths @@ -28,6 +30,7 @@ def setup(self): if not md: raise SkipTest("mdtraj not installed") self.mdtraj = md.load(data_filename("ala_small_traj.pdb")) + _ = pytest.importorskip('simtk.unit') self.traj = peng.trajectory_from_mdtraj( self.mdtraj, simple_topology=True) From 7a9d5016000ccfb36e5ef7085a723b2f45e59094 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Fri, 13 Dec 2019 15:34:37 +0100 Subject: [PATCH 276/464] Bump to 1.1.1.dev0 Also, add LICENSE to the MANIFEST.in --- MANIFEST.in | 3 ++- devtools/conda-recipe/meta.yaml | 4 ++-- openpathsampling/netcdfplus/version.py | 6 +++--- setup.cfg | 2 +- 4 files changed, 8 insertions(+), 7 deletions(-) diff --git a/MANIFEST.in b/MANIFEST.in index 2a52c271b..f91b503be 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,3 +1,4 @@ # include visualization .css files +LICENSE graft openpathsampling -include openpathsampling/resources/*.css \ No newline at end of file +include openpathsampling/resources/*.css diff --git a/devtools/conda-recipe/meta.yaml b/devtools/conda-recipe/meta.yaml index 9944d9257..37abdbe20 100644 --- a/devtools/conda-recipe/meta.yaml +++ b/devtools/conda-recipe/meta.yaml @@ -1,6 +1,6 @@ package: - name: openpathsampling-dev - version: "1.1.0" + name: openpathsampling + version: "1.1.1.dev0" source: path: ../../ diff --git a/openpathsampling/netcdfplus/version.py b/openpathsampling/netcdfplus/version.py index b54b0b8a7..59d8006c0 100644 --- a/openpathsampling/netcdfplus/version.py +++ b/openpathsampling/netcdfplus/version.py @@ -1,5 +1,5 @@ -short_version = '1.1.0' -version = '1.1.0' -full_version = '1.1.0' +short_version = '1.1.1.dev0' +version = '1.1.1.dev0' +full_version = '1.1.1.dev0' git_revision = 'alpha' release = False diff --git a/setup.cfg b/setup.cfg index bb0551bec..b6e154a18 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,6 +1,6 @@ [metadata] name = openpathsampling -version = 1.1.0 +version = 1.1.1.dev0 description = A Python package for path sampling simulations long_description = file: README.md long_description_content_type = text/markdown From 491ca756f4ebfaf46ef3c30da0e9d0036ff833cc Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Fri, 13 Dec 2019 15:47:12 +0100 Subject: [PATCH 277/464] omit version.py (vendored) from coverage --- .coveragerc | 1 + 1 file changed, 1 insertion(+) diff --git a/.coveragerc b/.coveragerc index aae08ea57..d1079fa79 100644 --- a/.coveragerc +++ b/.coveragerc @@ -5,6 +5,7 @@ omit = */openpathsampling/tests/* */mdtraj/* */setup.py + openpathsampling/version.py exclude_lines = pragma: no cover def __repr__ From 91b4443e656dc4af11e7e740737b7d8a6afb9401 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Sun, 15 Dec 2019 12:53:44 +0100 Subject: [PATCH 278/464] Add interface_set to API docs --- docs/api_sections.rst | 1 + docs/interface_set.rst | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+) create mode 100644 docs/interface_set.rst diff --git a/docs/api_sections.rst b/docs/api_sections.rst index 1d9bb4baa..1aa196b5c 100644 --- a/docs/api_sections.rst +++ b/docs/api_sections.rst @@ -17,6 +17,7 @@ OpenPathSampling API pathsimulator storage treemixin + interface_set network engines/index netcdfplus/index diff --git a/docs/interface_set.rst b/docs/interface_set.rst new file mode 100644 index 000000000..28cbe4435 --- /dev/null +++ b/docs/interface_set.rst @@ -0,0 +1,32 @@ +.. _interface_set: + +.. currentmodule:: openpathsampling.high_level.interface_set + +Interface Sets +============== + +In transition interface sampling and related methods, we need to define a +set of interfaces for each sampling transition. In OPS, this is essentially +just a list of volumes. However, it can be useful for that list to carry +some addition information (such as the associated collective variable), so +the :class:`.InterfaceSet` is a way to package that information. + +For TIS, you will usually use the :class:`.VolumeInterfaceSet` or +:class:`.PeriodicVolumeInterfaceSet`. + +Abstract classes +---------------- +.. autosummary:: + :toctree: api/generated + + InterfaceSet + GenericVolumeInterfaceSet + +Interface Sets for TIS +---------------------- +.. autosummary:: + :toctree: api/generated + + VolumeInterfaceSet + PeriodicVolumeInterfaceSet + From e36d9a283c505daf65357dff5cac507b9fbe7d2f Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 19 Dec 2019 23:26:06 +0100 Subject: [PATCH 279/464] start refactor of randomize velocities --- openpathsampling/snapshot_modifier.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/openpathsampling/snapshot_modifier.py b/openpathsampling/snapshot_modifier.py index 25b8f3ab3..814a4a396 100644 --- a/openpathsampling/snapshot_modifier.py +++ b/openpathsampling/snapshot_modifier.py @@ -130,7 +130,17 @@ def __init__(self, beta, engine=None, subset_mask=None): self.beta = beta self.engine = engine + def _default_random_velocities(self, snapshot, beta): + pass + def __call__(self, snapshot): + # if self.engine: + # try: + # make_snapshot = self.engine.randomize_velocities + # except AttributeError: + # make_snapshot = self._default(make_snapshot) + # new_snap = self.make_snapshot(snapshot) + # raises AttributeError is snapshot doesn't support velocities velocities = copy.copy(snapshot.velocities) # copy.copy for units vel_subset = self.extract_subset(velocities) From 2f67760a2d3d8cd76be7c7a33e54a38667a25f05 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Fri, 20 Dec 2019 01:16:19 +0100 Subject: [PATCH 280/464] Bump to version 1.2.0.dev0 --- devtools/conda-recipe/meta.yaml | 2 +- openpathsampling/netcdfplus/version.py | 6 +++--- setup.cfg | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/devtools/conda-recipe/meta.yaml b/devtools/conda-recipe/meta.yaml index 37abdbe20..186158265 100644 --- a/devtools/conda-recipe/meta.yaml +++ b/devtools/conda-recipe/meta.yaml @@ -1,6 +1,6 @@ package: name: openpathsampling - version: "1.1.1.dev0" + version: "1.2.0.dev0" source: path: ../../ diff --git a/openpathsampling/netcdfplus/version.py b/openpathsampling/netcdfplus/version.py index 59d8006c0..08657c7e5 100644 --- a/openpathsampling/netcdfplus/version.py +++ b/openpathsampling/netcdfplus/version.py @@ -1,5 +1,5 @@ -short_version = '1.1.1.dev0' -version = '1.1.1.dev0' -full_version = '1.1.1.dev0' +short_version = '1.2.0.dev0' +version = '1.2.0.dev0' +full_version = '1.2.0.dev0' git_revision = 'alpha' release = False diff --git a/setup.cfg b/setup.cfg index b6e154a18..8c6f6cab0 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,6 +1,6 @@ [metadata] name = openpathsampling -version = 1.1.1.dev0 +version = 1.2.0.dev0 description = A Python package for path sampling simulations long_description = file: README.md long_description_content_type = text/markdown From 51bb8d533c7a334fc63e7eb71c84e13b68a85d06 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Fri, 20 Dec 2019 14:13:37 +0100 Subject: [PATCH 281/464] Refactor RandomVelocities so engine can do it --- openpathsampling/snapshot_modifier.py | 39 +++++++++++++++++++-------- 1 file changed, 28 insertions(+), 11 deletions(-) diff --git a/openpathsampling/snapshot_modifier.py b/openpathsampling/snapshot_modifier.py index 814a4a396..60e65829f 100644 --- a/openpathsampling/snapshot_modifier.py +++ b/openpathsampling/snapshot_modifier.py @@ -2,6 +2,7 @@ import logging import copy import abc +import functools import numpy as np @@ -125,22 +126,14 @@ class RandomVelocities(SnapshotModifier): select along the first axis of the input array. For example, in a typical shape=(n_atoms, 3) array, this will pick the atoms. """ - def __init__(self, beta, engine=None, subset_mask=None): + def __init__(self, beta=None, engine=None, subset_mask=None): super(RandomVelocities, self).__init__(subset_mask) self.beta = beta self.engine = engine def _default_random_velocities(self, snapshot, beta): - pass - - def __call__(self, snapshot): - # if self.engine: - # try: - # make_snapshot = self.engine.randomize_velocities - # except AttributeError: - # make_snapshot = self._default(make_snapshot) - # new_snap = self.make_snapshot(snapshot) - + if beta is None: + raise RuntimeError("Engine can't use RandomVelocities") # raises AttributeError is snapshot doesn't support velocities velocities = copy.copy(snapshot.velocities) # copy.copy for units vel_subset = self.extract_subset(velocities) @@ -177,6 +170,30 @@ def __call__(self, snapshot): return new_snap + def __call__(self, snapshot): + # default value; we'll override if needed + try: + beta = self.beta if self.beta is not None else self.engine.beta + except AttributeError: + beta = None + + make_snapshot = functools.partial( + self._default_random_velocities, + beta=beta + ) + if self.engine: + try: + make_snapshot = functools.partial( + self.engine.randomize_velocities, + beta=beta + ) + except AttributeError: + pass # use default + + new_snap = make_snapshot(snapshot) + return new_snap + + class GeneralizedDirectionModifier(SnapshotModifier): """ Snapshot modifier which changes velocity direction with constant energy. From 4b9bc91285cae5a135bc104bfe2b59410b223cdb Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Sun, 22 Dec 2019 17:59:00 +0100 Subject: [PATCH 282/464] switch autorelease to v0.1.2, not ops_fixes branch --- .travis.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index bf56283b9..3e6901f74 100644 --- a/.travis.yml +++ b/.travis.yml @@ -24,8 +24,8 @@ install: - export OPS_ENV="openpathsampling-py${CONDA_PY}" - if [ -z "$MINIMAL" ] ; then source devtools/conda_install_reqs.sh; else pip install -r devtools/minimal.txt -r devtools/minimal_testing.txt; fi # for the first OPS install, we will run the ops_fixes autorelease branch - - pip install git+https://github.com/dwhswenson/autorelease.git@ops_fixes - #- pip install autorelease + #- pip install git+https://github.com/dwhswenson/autorelease.git@v0.1.2 + - pip install autorelease - pip install --no-deps -e . before_script: @@ -65,4 +65,4 @@ env: - CONDA_PY=3.7 import: - - dwhswenson/autorelease:autorelease-travis.yml@ops_fixes + - dwhswenson/autorelease:autorelease-travis.yml@v0.1.2 From 8e3a6ccb8c09f9dd521dfaaa575823e99b4b9455 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Mon, 20 Jan 2020 14:12:24 +0100 Subject: [PATCH 283/464] start work on handling subsets --- openpathsampling/snapshot_modifier.py | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/openpathsampling/snapshot_modifier.py b/openpathsampling/snapshot_modifier.py index 60e65829f..3b1d555ce 100644 --- a/openpathsampling/snapshot_modifier.py +++ b/openpathsampling/snapshot_modifier.py @@ -42,24 +42,31 @@ def __init__(self, subset_mask=None): super(SnapshotModifier, self).__init__() self.subset_mask = subset_mask - def extract_subset(self, full_array): + def extract_subset(self, full_array, subset=None): """Extracts elements from full_array according to self.subset_mask Parameters ---------- full_array : list-like the input array + subset : list of int or None + the subset to use; see ``SnapshotModifier.subset_mask``. Default + (None) uses the value of ``self.subset_mask``. Returns ------- list the elements of full_array which are selected by - self.subset_mask, or full_array if self.subset_mask is None + self.subset_mask, or full_array if subset and self.subset_mask + are None """ - if self.subset_mask is None: + if subset is None: + subset = self.subset_mast + + if subset is None: return full_array else: - return [full_array[i] for i in self.subset_mask] + return [full_array[i] for i in subset] def apply_to_subset(self, full_array, modified): """Replaces elements of full_array according to self.subset_mask @@ -131,9 +138,10 @@ def __init__(self, beta=None, engine=None, subset_mask=None): self.beta = beta self.engine = engine - def _default_random_velocities(self, snapshot, beta): + def _default_random_velocities(self, snapshot, beta, subset=None): if beta is None: raise RuntimeError("Engine can't use RandomVelocities") + # raises AttributeError is snapshot doesn't support velocities velocities = copy.copy(snapshot.velocities) # copy.copy for units vel_subset = self.extract_subset(velocities) From cad107f2e63a54268b1e53edac21c36fade3cbbb Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Mon, 20 Jan 2020 16:33:58 +0100 Subject: [PATCH 284/464] Fix problem with doc deployment --- devtools/ci/after_sucess.sh | 4 ++-- devtools/ci/push-docs-to-s3.py | 9 +++++---- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/devtools/ci/after_sucess.sh b/devtools/ci/after_sucess.sh index c398e23c2..87a90b739 100755 --- a/devtools/ci/after_sucess.sh +++ b/devtools/ci/after_sucess.sh @@ -65,8 +65,8 @@ if [[ "$TRAVIS_BRANCH" == "master" ]]; then elif [[ "$TRAVIS_BRANCH" == "docs_deploy" ]]; then # change the behavior for the docs testing branch (docs_deploy branch in # the openpathsampling/openpathsampling GitHub repo) in this block - echo "No docs deploy on branch $TRAVIS_BRANCH" - #python devtools/ci/push-docs-to-s3.py --clobber + #echo "No docs deploy on branch $TRAVIS_BRANCH" + python devtools/ci/push-docs-to-s3.py #--clobber else echo "No docs deploy on branch $TRAVIS_BRANCH" fi diff --git a/devtools/ci/push-docs-to-s3.py b/devtools/ci/push-docs-to-s3.py index 3130e0c28..d4fb2269c 100755 --- a/devtools/ci/push-docs-to-s3.py +++ b/devtools/ci/push-docs-to-s3.py @@ -16,10 +16,11 @@ CLOBBER = opts.clobber BUCKET_NAME = 'openpathsampling.org' -if not openpathsampling.version.release: - PREFIX = 'latest' -else: - PREFIX = openpathsampling.version.short_version +PREFIX = 'latest' +# if not openpathsampling.version.release: + # PREFIX = 'latest' +# else: + # PREFIX = openpathsampling.version.short_version def is_s3cmd_installed(): dists = pkg_resources.working_set From f20346253f101ea32456117266e73fa5ce2e53ba Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Mon, 20 Jan 2020 16:51:47 +0100 Subject: [PATCH 285/464] use full release version for |version| --- docs/conf.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/conf.py b/docs/conf.py index 64d113064..557ae0cba 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -95,7 +95,7 @@ # General information about the project. project = u'OpenPathSampling' -copyright = u'2014-2019, David W.H. Swenson, Jan-Hendrik Prinz, John Chodera, Peter Bolhuis' +copyright = u'2014-2020, David W.H. Swenson, Jan-Hendrik Prinz, John Chodera, Peter Bolhuis' # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the @@ -104,7 +104,8 @@ # The full version, including alpha/beta/rc tags. release = pkg_resources.get_distribution('openpathsampling').version # The short X.Y version. -version = packaging.version.Version(release).base_version +# version = packaging.version.Version(release).base_version +version = release # prefer to have the .dev0 label on 'latest' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. From abd65f6eeb8ca05c4f0abc331282bd15d9000583 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Mon, 20 Jan 2020 17:56:36 +0100 Subject: [PATCH 286/464] fix COVERALLS_PARALLEL regression --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index 3e6901f74..4b05404c6 100644 --- a/.travis.yml +++ b/.travis.yml @@ -50,6 +50,7 @@ addons: env: global: + - COVERALLS_PARALLEL=true - TWINE_USERNAME="dwhswenson" # TWINE_PASSWORD (set via web) #- secure: "zs/3PN46wXFzTDli8LE9jJmNov27xAy7REaTK4s3DV9Ocmf5grqIUbUfFfa7XyOvamr6C7TSHib1SqQvEbHv416AcOD9FWZm9iNj0MO2dBimyXrvR50TFKG/dcp0Qzlp54hYFM4bEzWJZUVN120xynIKgfy74YBOA8DQ6B7FlyY=" From a8729447975a41bd2fccc8966ed94031a8c7f8c7 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Mon, 20 Jan 2020 19:00:30 +0100 Subject: [PATCH 287/464] pin to old coverage --- pinned | 1 + 1 file changed, 1 insertion(+) diff --git a/pinned b/pinned index e69de29bb..53bf2d75f 100644 --- a/pinned +++ b/pinned @@ -0,0 +1 @@ +coverage<5.0 From 3a5a235c39d566afad883c4215c64c8ab3eeaf40 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Mon, 20 Jan 2020 19:12:43 +0100 Subject: [PATCH 288/464] switch back to plain coveralls which supports coverage 5.0, it seems --- devtools/testing_requirements.txt | 2 +- pinned | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/devtools/testing_requirements.txt b/devtools/testing_requirements.txt index 81084d154..8434128b2 100644 --- a/devtools/testing_requirements.txt +++ b/devtools/testing_requirements.txt @@ -1,5 +1,5 @@ nose pytest pytest-cov -python-coveralls +coveralls ipynbtest diff --git a/pinned b/pinned index 53bf2d75f..e69de29bb 100644 --- a/pinned +++ b/pinned @@ -1 +0,0 @@ -coverage<5.0 From d87e5159b0ce0740a3816b8ff5cf23dc0ad93695 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Mon, 20 Jan 2020 19:30:50 +0100 Subject: [PATCH 289/464] pin pytest=5.3.3 ?? for some reason 5.3.4 isn't working --- pinned | 1 + 1 file changed, 1 insertion(+) diff --git a/pinned b/pinned index e69de29bb..abd246287 100644 --- a/pinned +++ b/pinned @@ -0,0 +1 @@ +pytest==5.3.3 From cb0c8f34e0d1a7904962b7f2a2a7e4b771eeea5b Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Mon, 20 Jan 2020 19:40:12 +0100 Subject: [PATCH 290/464] pin pytest where pip will find it! --- devtools/testing_requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/devtools/testing_requirements.txt b/devtools/testing_requirements.txt index 8434128b2..641879815 100644 --- a/devtools/testing_requirements.txt +++ b/devtools/testing_requirements.txt @@ -1,5 +1,5 @@ nose -pytest +pytest==5.3.3 pytest-cov coveralls ipynbtest From 3a12a0f6106652d0951bab2745a18396278e5ef8 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Mon, 20 Jan 2020 19:55:32 +0100 Subject: [PATCH 291/464] and another place where the pin needs to be --- devtools/minimal_testing.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/devtools/minimal_testing.txt b/devtools/minimal_testing.txt index c3f4152f8..44bbce47e 100644 --- a/devtools/minimal_testing.txt +++ b/devtools/minimal_testing.txt @@ -1,4 +1,4 @@ nose -pytest +pytest==5.3.3 pytest-cov coveralls From 12d6a05beddd15848448bc2c8bf96290b8575876 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Tue, 21 Jan 2020 12:01:33 +0100 Subject: [PATCH 292/464] pin pytest!=5.3.4 --- devtools/minimal_testing.txt | 2 +- devtools/testing_requirements.txt | 2 +- pinned | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/devtools/minimal_testing.txt b/devtools/minimal_testing.txt index 44bbce47e..d5fc7124d 100644 --- a/devtools/minimal_testing.txt +++ b/devtools/minimal_testing.txt @@ -1,4 +1,4 @@ nose -pytest==5.3.3 +pytest!=5.3.4 pytest-cov coveralls diff --git a/devtools/testing_requirements.txt b/devtools/testing_requirements.txt index 641879815..78c5ad51d 100644 --- a/devtools/testing_requirements.txt +++ b/devtools/testing_requirements.txt @@ -1,5 +1,5 @@ nose -pytest==5.3.3 +pytest!=5.3.4 pytest-cov coveralls ipynbtest diff --git a/pinned b/pinned index abd246287..8e2d10198 100644 --- a/pinned +++ b/pinned @@ -1 +1 @@ -pytest==5.3.3 +pytest!=5.3.4 From 11f6c2c75680fe0fb49c791e791466b7206a0aae Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Wed, 22 Jan 2020 07:37:02 +0100 Subject: [PATCH 293/464] Add tests for most of snapshots.py --- .../experimental/storage/snapshots.py | 1 + .../experimental/storage/test_snapshots.py | 59 +++++++++++++++++++ 2 files changed, 60 insertions(+) create mode 100644 openpathsampling/experimental/storage/test_snapshots.py diff --git a/openpathsampling/experimental/storage/snapshots.py b/openpathsampling/experimental/storage/snapshots.py index 119d0d50e..88f4fd304 100644 --- a/openpathsampling/experimental/storage/snapshots.py +++ b/openpathsampling/experimental/storage/snapshots.py @@ -1,3 +1,4 @@ +# NOTE: this is part of the OPS-specific stuff from .class_info import ClassInfo from .serialization_helpers import get_uuid diff --git a/openpathsampling/experimental/storage/test_snapshots.py b/openpathsampling/experimental/storage/test_snapshots.py new file mode 100644 index 000000000..1b520129b --- /dev/null +++ b/openpathsampling/experimental/storage/test_snapshots.py @@ -0,0 +1,59 @@ +import pytest + +import openpathsampling as paths + +from openpathsampling.tests.test_helpers import make_1d_traj +from .serialization_helpers import get_uuid + +from .snapshots import * + +SCHEMA = { + 'statics': [('coordinates', 'ndarray.float32({n_atoms},{n_spatial})'), + ('box_vectors', 'ndarray.float32({n_spatial},{n_spatial})'), + ('engine', 'uuid')], + 'snapshot': [('statics', 'lazy')] +} + +TOY_SCHEMA = { + 'snapshot': [ + ('velocities', 'ndarray.float32({n_atoms},{n_spatial})'), + ('coordinates', 'ndarray.float32({n_atoms},{n_spatial})'), + ('engine', 'uuid') + ] +} + +def test_schema_from_entries(): + class Statics(object): + schema_entries = [('statics', SCHEMA['statics'])] + + assert schema_from_entries([Statics], lazies=['statics']) == SCHEMA + +def test_schema_for_snapshot(): + snapshot = make_1d_traj([0.0])[0] + assert schema_for_snapshot(snapshot) == TOY_SCHEMA + +def test_replace_schema_dimensions(): + descriptor = frozenset([('n_atoms', 1000), ('n_spatial', 3), + ('class', 'FooSnapshot')]) + expected = { + 'statics': [('coordinates', 'ndarray.float32(1000,3)'), + ('box_vectors', 'ndarray.float32(3,3)'), + ('engine', 'uuid')], + 'snapshot': [('statics', 'lazy')] + } + assert replace_schema_dimensions(SCHEMA, descriptor) == expected + +def test_snapshot_registration_from_db(): + pytest.skip() + +def test_snapshot_registration_info(): + snapshot = make_1d_traj([0.0])[0] + schema, class_info_list = snapshot_registration_info(snapshot, 3) + expected_schema = {'snapshot3': TOY_SCHEMA['snapshot']} + assert schema == expected_schema + assert len(class_info_list) == 1 + info = class_info_list[0] + assert info.table == 'snapshot3' + assert info.lookup_result == (get_uuid(snapshot.engine), + snapshot.__class__) + assert info.cls == snapshot.__class__ From 92cab3eb2ac5defd07a4864e1c433615ce431b36 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Wed, 22 Jan 2020 08:34:15 +0100 Subject: [PATCH 294/464] Add tests for dict serialization helpers --- .../storage/dict_serialization_helpers.py | 30 ++++++++-------- .../test_dict_serialization_helpers.py | 36 +++++++++++++++++++ 2 files changed, 50 insertions(+), 16 deletions(-) create mode 100644 openpathsampling/experimental/storage/test_dict_serialization_helpers.py diff --git a/openpathsampling/experimental/storage/dict_serialization_helpers.py b/openpathsampling/experimental/storage/dict_serialization_helpers.py index c60fc12b3..d3cab597f 100644 --- a/openpathsampling/experimental/storage/dict_serialization_helpers.py +++ b/openpathsampling/experimental/storage/dict_serialization_helpers.py @@ -1,5 +1,12 @@ def tuple_keys_to_dict(to_dict, attr_name): - # decorator + """to-dict for attributes that are dicts with tuples as keys""" + def tuple_keys_dict_to_dict(name, tuple_keys_dict): + keys = list(tuple_keys_dict.keys()) + values = list(tuple_keys_dict.values()) + dct = {name + "_tuple_keys": keys, + name + "_values": values} + return dct + def inner(self): dct = to_dict(self) dct[attr_name] = tuple_keys_dict_to_dict(attr_name, dct[attr_name]) @@ -7,23 +14,14 @@ def inner(self): return inner def tuple_keys_from_dict(from_dict, attr_name): + """from-dict for attributes that are dicts with tuples as keys""" + def tuple_keys_dict_from_dict(name, dct): + keys = dct[name + "_tuple_keys"] + values = dct[name + "_values"] + return {tuple(k): v for k, v in zip(keys, values)} + def inner(cls, dct): dct = dict(dct) # copy dct[attr_name] = tuple_keys_dict_from_dict(attr_name, dct[attr_name]) return from_dict(dct) return inner - - -def tuple_keys_dict_to_dict(name, tuple_keys_dict): - keys = list(tuple_keys_dict.keys()) - values = list(tuple_keys_dict.values()) - dct = {name + "_tuple_keys": keys, - name + "_values": values} - return dct - - -def tuple_keys_dict_from_dict(name, dct): - keys = dct[name + "_tuple_keys"] - values = dct[name + "_values"] - return {tuple(k): v for k, v in zip(keys, values)} - diff --git a/openpathsampling/experimental/storage/test_dict_serialization_helpers.py b/openpathsampling/experimental/storage/test_dict_serialization_helpers.py new file mode 100644 index 000000000..5c4a14d22 --- /dev/null +++ b/openpathsampling/experimental/storage/test_dict_serialization_helpers.py @@ -0,0 +1,36 @@ +import pytest + +from .dict_serialization_helpers import * + +class TestTupleKeysSerializers(object): + class ExampleObj(object): + def __init__(self, foo, bar): + self.foo = foo + self.bar = bar + + def __eq__(self, other): + return self.foo == other.foo and self.bar == other.bar + + def to_dict(self): + return {'foo': self.foo, 'bar': self.bar} + + @classmethod + def from_dict(cls, dct): + return cls(**dct) + + def setup(self): + self.foo = {('a', 'b'): [1, 2], ('c', 'd'): [3, 4]} + self.bar = 3 + self.obj = self.ExampleObj(self.foo, self.bar) + self.dct = {'foo': {'foo_tuple_keys': [('a', 'b'), ('c', 'd')], + 'foo_values': [[1, 2], [3, 4]]}, + 'bar': 3} + + def test_tuple_keys_to_dict(self): + decorated = tuple_keys_to_dict(self.ExampleObj.to_dict, 'foo') + assert decorated(self.obj) == self.dct + + def test_tuple_keys_from_dict(self): + decorated = tuple_keys_from_dict(self.ExampleObj.from_dict, 'foo') + # requires explicit cls because we're not binding to the class! + assert decorated(self.ExampleObj, self.dct) == self.obj From f94f84e66b97afcb342c9fdaf34e1b1539e43c21 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Wed, 22 Jan 2020 12:06:03 +0100 Subject: [PATCH 295/464] Tests for a few more functions in sql_backend --- .../experimental/storage/sql_backend.py | 5 ++++ .../experimental/storage/test_sql_backend.py | 24 ++++++++++++++++++- 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/openpathsampling/experimental/storage/sql_backend.py b/openpathsampling/experimental/storage/sql_backend.py index 34e5aaeec..7bb062891 100644 --- a/openpathsampling/experimental/storage/sql_backend.py +++ b/openpathsampling/experimental/storage/sql_backend.py @@ -138,6 +138,8 @@ def from_engine(cls, engine, mode='r'): The default constructor doesn't allow all the options to the engine that SQLAlchemy can provide. Use this if you want more customization of the database engine. + + More info: https://docs.sqlalchemy.org/en/latest/core/engines.html """ obj = cls.__new__(cls) self._metadata = sql.MetaData() @@ -159,6 +161,9 @@ def metadata(self): @staticmethod def filename_from_dialect(filename, dialect): + # TODO: I think this might be removed in the future; instead, custom + # setups can use the from_engine constructor + # take dialects like "sqlite", etc and return proper file connection # URI; would be essentially no-op for regular file opening as with # .nc diff --git a/openpathsampling/experimental/storage/test_sql_backend.py b/openpathsampling/experimental/storage/test_sql_backend.py index 756effd39..6578799cf 100644 --- a/openpathsampling/experimental/storage/test_sql_backend.py +++ b/openpathsampling/experimental/storage/test_sql_backend.py @@ -204,7 +204,7 @@ def test_uuid_row_to_table_name(self, table): samps = self._add_sample_data() snaps = self._add_snapshot_data() input_dict = {'samples': samps, 'snapshot0': snaps}[table] - uuid_rows = sum([self.database.load_uuids_table([s['uuid']]) + uuid_rows = sum([self.database.load_uuids_table([s['uuid']]) for s in input_dict], []) for row in uuid_rows: assert self.database.uuid_row_to_table_name(row) == table @@ -225,3 +225,25 @@ def test_table_iterator(self, table): dct = [d for d in input_dicts if d['uuid'] == row.uuid][0] for attr in dct: assert getattr(row, attr) == dct[attr] + + def test_table_len(self): + schema = {'samples': [('replica', 'int'), + ('ensemble', 'uuid'), + ('trajectory', 'uuid')]} + self.database.register_schema(schema, self.table_to_class) + assert self.database.table_len('samples') == 0 + sample_dict = self._sample_data_dict() + self.database.add_to_table('samples', sample_dict) + assert self.database.table_len('samples') == 3 + + + def test_table_getitem(self): + sample_dict = self._add_sample_data() + for num, samp_dct in enumerate(sample_dict): + row = self.database.table_get_item('samples', num) + assert row[0] == num + 1 + # not testing row[1], which should be the UUID + expected = tuple(samp_dct[k] + for k in ['replica', 'ensemble', 'trajectory']) + assert row[2:] == expected + From 1f73ce2a3339e12fcfd8afdc7a34dd5e78ae0d58 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Wed, 22 Jan 2020 12:59:00 +0100 Subject: [PATCH 296/464] minor updates to CV docs --- docs/collectivevariable.rst | 32 ++++--------------- docs/topics/creating_collective_variables.rst | 18 +++++------ 2 files changed, 16 insertions(+), 34 deletions(-) diff --git a/docs/collectivevariable.rst b/docs/collectivevariable.rst index 157c9fc5d..76d5c79f3 100644 --- a/docs/collectivevariable.rst +++ b/docs/collectivevariable.rst @@ -6,11 +6,11 @@ CollectiveVariable Functions ============================ :class:`openpathsampling.CollectiveVariable` - >>> import openpathsampling as paths - >>> mover = paths.CollectiveVariable() +For an introduction on collective variables, read the user guide topic on +:ref:`creating-cvs`. -basic orderparamters --------------------- +Basic CVs +--------- .. autosummary:: :toctree: api/generated/ @@ -19,31 +19,13 @@ basic orderparamters CoordinateFunctionCV GeneratorCV CoordinateGeneratorCV - -simple collectivevariables --------------------------- -.. autosummary:: - :toctree: api/generated/ - InVolumeCV -mdtraj orderparamters ---------------------- -.. autosummary:: - :toctree: api/generated/ - - MDTrajFunctionCV - -msmbuilder3 collectivevariables +Integrating with other packages ------------------------------- .. autosummary:: :toctree: api/generated/ - MSMBFeaturizerCV - -PyEMMA collectivevariables --------------------------- -.. autosummary:: - :toctree: api/generated/ - + MDTrajFunctionCV PyEMMAFeaturizerCV + MSMBFeaturizerCV diff --git a/docs/topics/creating_collective_variables.rst b/docs/topics/creating_collective_variables.rst index be65b91e2..a6e147a48 100644 --- a/docs/topics/creating_collective_variables.rst +++ b/docs/topics/creating_collective_variables.rst @@ -24,13 +24,13 @@ Integrations with other packages There's no need to reinvent the wheel: many other packages already implement the kinds of functions that you're likely to use as CVs. And the process of -communicated with one of those packages to get the CV out (e.g., converting +communicating with one of those packages to get the CV out (e.g., converting to their trajectory format) tends to be standard within that package. As a result, we've created special wrappers that make it very easy to communicate with those packages. There are special CV wrappers for: * `MDTraj `_: :class:`.MDTrajFunctionCV` -* `PyEMMA `_: :class:`.PyEMMAFeatureizerCV` +* `PyEMMA `_: :class:`.PyEMMAFeaturizerCV` * `MSMBuilder `_: :class:`.MSMBFeaturizerCV` * `PLUMED `_: `OPS PLUMED Wrapper `_ @@ -87,8 +87,8 @@ return a single numeric value. For a case like this, it may be better to wrap in the function using a :class:`.CoordinateFunctionCV`, since the it only depends on the -coordinates. This can offer some improvements when using methods that -involve path reversal (changing the direction of time). +coordinates. This can offer some small perfomance/storage improvements when +using methods that involve path reversal (changing the direction of time). To test that your CV gives the result you expect, create a snapshot called ``snap`` and try: @@ -156,13 +156,13 @@ input. In the example below, I'll first create CVs to get the :math:`x` and center=[-0.5, -0.5]) In addition to being convenient, this can approach can also be useful if -you're finding that your CV calculations are expensive. If a part of your CV -is recalculated, you can make it into its own CV. Once it has been -calculated once, it will be cached (and disk-cached, if requested), meaning -that it can be re-used without regenerating it. +your CV calculations are expensive. If a part of your CV is recalculated, +you can make it into its own CV. Once it has been calculated once, it will +be cached (and disk-cached, if requested), meaning that it can be re-used +without regenerating it. Another way this can improve performance is that sometimes, it's easier to -calculate multiple CVs at once, rather than calculating the individually. +calculate multiple CVs at once, rather than calculating them individually. For example, the overhead for converting to another trajectory format (such as MDTraj) may become large. Here's a way to avoid that: From 0ca255f373df0d376ff12c84cb6692ec6375e393 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 23 Jan 2020 18:25:00 +0100 Subject: [PATCH 297/464] Add videos to docs --- docs/index.rst | 5 +++-- docs/videos.rst | 60 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 63 insertions(+), 2 deletions(-) create mode 100644 docs/videos.rst diff --git a/docs/index.rst b/docs/index.rst index 69ae7bfa3..b51e5a147 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -10,8 +10,8 @@ flux calculations. In addition, it is a powerful library to build new path sampling methods. OPS is independent of the underlying molecular dynamics engine, and -currently has support for OpenMM, as well as an internal engine suitable for -2D toy models. +currently has support for OpenMM and Gromacs, as well as an internal engine +suitable for 2D toy models. To learn more about what OPS can do, look at our :ref:`examples `. If you want to jump right in, take a look at how easy it is to @@ -62,6 +62,7 @@ For Users install examples/index topics/index + videos faq diff --git a/docs/videos.rst b/docs/videos.rst new file mode 100644 index 000000000..21b60065e --- /dev/null +++ b/docs/videos.rst @@ -0,0 +1,60 @@ +.. _videos: + +Videos +====== + +From time to time, the videos shown here will be replaced as we create new +videos that are better for the topic or more recent. All our videos are +available in our `YouTube channel +`_. + +.. contents:: :local: + +Our thanks to the `E-CAM Horizon 2020 Project `_, +which provided both the workshops where several of these presentations were +made, as well as the technical expertise in filming the videos. + +Introduction to Path Sampling +----------------------------- + +.. raw:: html + +
+ +
+ +*E-CAM ESDW: Topics in Classical MD; Lyon, France (2019)* + +This video mostly focuses on general concepts related to path sampling and +trajectory based rare events. That workshop included a "hackathon" software +development period, and the video includes suggestions for several such +projects (many of which have since been added to OPS). + +* `More about that workshop `_ +* `Other presentations from that workshop + `_ + +.. Using OpenPathSampling +.. ---------------------- + +.. #TODO this video needs to be edited together; will add that soon + +Developing for OpenPathSampling +------------------------------- + +.. raw:: html + +
+ +
+ +*E-CAM ESDW; Leiden, The Netherlands (2017)* + +This video comes from a "hackathon"-style workshop, and discusses various +parts of OPS that would be of interest to new contributors to the code. + +* `More about that workshop + `_ +* `Other presentations from that workshop + `_ + From 31161a1f581650919676d8d2f659a7abc99c3604 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Fri, 24 Jan 2020 13:04:22 +0100 Subject: [PATCH 298/464] misc minor updates to docs --- docs/data_objects.rst | 3 +++ docs/install.rst | 14 +++++++------- docs/movestrategy.rst | 4 ++-- docs/pathmover.rst | 9 ++------- docs/pathsimulator.rst | 4 ++-- docs/shooting.rst | 4 ++-- docs/tis_analysis.rst | 4 ++-- docs/topics/data_objects.rst | 4 +++- docs/videos.rst | 2 +- 9 files changed, 24 insertions(+), 24 deletions(-) diff --git a/docs/data_objects.rst b/docs/data_objects.rst index feb4117fd..887b20aa3 100644 --- a/docs/data_objects.rst +++ b/docs/data_objects.rst @@ -7,6 +7,9 @@ This describes some of the objects used to describe data. Note that :class:`Trajectories <.Trajectory>` and :class:`Snapshots <.Snapshot>` are described in the :ref:`Engines ` section. +A less-technical overview is provided in the :ref:`data-objects` section of +the user guide; we recommend that you read that first. + .. currentmodule:: openpathsampling .. autosummary:: diff --git a/docs/install.rst b/docs/install.rst index ecb3e0d8e..0e7104ad6 100644 --- a/docs/install.rst +++ b/docs/install.rst @@ -28,12 +28,11 @@ scientific Python, and which handles binary dependencies seamlessly. If you don't want the full ``conda`` installation, the ``miniconda`` package provides much of the convenience of ``conda`` with a smaller footprint. -OpenPathSampling is part of the ``omnia`` channel in ``conda``, although -some requirements are best found in the ``conda-forge`` channel. To install -the most recent release of OpenPathSampling with conda, use the following -command :: +OpenPathSampling is part of the ``conda-forge`` channel in ``conda``. To +install the most recent release of OpenPathSampling with conda, use the +following command :: - $ conda install -c conda-forge -c omnia openpathsampling + $ conda install -c conda-forge openpathsampling With that, you should be ready to use OPS! @@ -81,9 +80,10 @@ Or, for a developer install :: $ python setup.py develop +.. _run-tests: + Testing Your Installation ========================= -.. _run-tests: Running the tests is a great way to verify that everything is working. The test suite uses `pytest `_ and, for legacy reasons, also @@ -92,7 +92,7 @@ requires the `nose `_ package. You can $ conda install pytest nose From the source directory ``openpathsampling/tests``, you can run the tests -by typing ``py.test`` on the command line. The test suite includes over 870 +by typing ``py.test`` on the command line. The test suite includes over 900 individual tests, and runs in around 2-3 minutes. Beta testing experimental updates diff --git a/docs/movestrategy.rst b/docs/movestrategy.rst index cd174a35b..1d043e18c 100644 --- a/docs/movestrategy.rst +++ b/docs/movestrategy.rst @@ -2,8 +2,8 @@ .. currentmodule:: openpathsampling.high_level.move_strategy -MoveStrategy API -================ +MoveStrategy +============ TODO: explain the ideas here diff --git a/docs/pathmover.rst b/docs/pathmover.rst index 07cd0d4a1..9ef65ccf1 100644 --- a/docs/pathmover.rst +++ b/docs/pathmover.rst @@ -2,13 +2,8 @@ .. currentmodule:: openpathsampling.pathmover -PathMover API -============= - -:class:`openpathsampling.PathMover` - - >>> import openpathsampling as paths - >>> mover = paths.PathMover() +PathMovers +========== Abstract class -------------- diff --git a/docs/pathsimulator.rst b/docs/pathsimulator.rst index b3fab8d48..1da771012 100644 --- a/docs/pathsimulator.rst +++ b/docs/pathsimulator.rst @@ -2,8 +2,8 @@ .. currentmodule:: openpathsampling -PathSimulator API -======================= +PathSimulators +============== Abstract Base Class ------------------- diff --git a/docs/shooting.rst b/docs/shooting.rst index 103a05a94..cff0a4dc3 100644 --- a/docs/shooting.rst +++ b/docs/shooting.rst @@ -2,8 +2,8 @@ .. currentmodule:: openpathsampling.shooting -ShootingPointSelector API -========================= +ShootingPointSelectors +====================== .. autosummary:: :toctree: api/generated/ diff --git a/docs/tis_analysis.rst b/docs/tis_analysis.rst index 8bf5313fc..ee3c2f9ca 100644 --- a/docs/tis_analysis.rst +++ b/docs/tis_analysis.rst @@ -3,8 +3,8 @@ .. currentmodule:: openpathsampling.analysis.tis -TIS Analysis API -================ +TIS Analysis Tools +================== Abstract classes ---------------- diff --git a/docs/topics/data_objects.rst b/docs/topics/data_objects.rst index 13d0d608e..b37b2b489 100644 --- a/docs/topics/data_objects.rst +++ b/docs/topics/data_objects.rst @@ -64,7 +64,9 @@ Objects describing what is sampled sampled, and an integer replica ID. The :class:`.Sample` is needed because methods such as TIS, and especially RETIS, sample multiple ensembles simultaneously. Correct analysis requires knowing the ensemble from which - the :class:`.Trajectory` was sampled. + the :class:`.Trajectory` was sampled. The replica ID ensures that we can + track changes to a given trajectory over time (even if it changes which + ensemble it is associated with, e.g., due to replica exchange). * Since methods like TIS have several active :class:`Samples <.Sample>` during a path simulation step, OPS collects them into one :class:`.SampleSet`. The :class:`.SampleSet` contains a list of diff --git a/docs/videos.rst b/docs/videos.rst index 21b60065e..7dd0ec57e 100644 --- a/docs/videos.rst +++ b/docs/videos.rst @@ -56,5 +56,5 @@ parts of OPS that would be of interest to new contributors to the code. * `More about that workshop `_ * `Other presentations from that workshop - `_ + `_ From 4c6880c69d86730a5dc3acf73280ae17d2b74361 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Sat, 25 Jan 2020 22:54:26 +0100 Subject: [PATCH 299/464] improvements (in progress) to toy model MSTIS --- docs/install.rst | 2 +- .../toy_model_mstis/toy_mstis_1_setup.ipynb | 211 +++++----- .../toy_model_mstis/toy_mstis_2_run.ipynb | 366 +++++++++++------- .../toy_mstis_3_analysis.ipynb | 64 ++- 4 files changed, 392 insertions(+), 251 deletions(-) diff --git a/docs/install.rst b/docs/install.rst index 0e7104ad6..fc395b7d1 100644 --- a/docs/install.rst +++ b/docs/install.rst @@ -10,7 +10,7 @@ that aren't Python 3-compatible yet. .. note:: As of OpenPathSampling 1.1, OpenMM will no longer be automatically installed when you install OPS. However, the OpenMM engine will be - immediately available if you install OpenMM youself. See the + immediately available if you install OpenMM yourself. See the `OpenMM installation instructions `_ for a detailed guide, but ``conda install -c conda-forge -c omnia diff --git a/examples/toy_model_mstis/toy_mstis_1_setup.ipynb b/examples/toy_model_mstis/toy_mstis_1_setup.ipynb index 4e9e462a9..fd1782955 100644 --- a/examples/toy_model_mstis/toy_mstis_1_setup.ipynb +++ b/examples/toy_model_mstis/toy_mstis_1_setup.ipynb @@ -13,32 +13,24 @@ "* Using collective variables to define states and interfaces\n", "* Storing things manually\n", "\n", - "## Getting an initial path\n", + "Path sampling methods require that the user supply an input path for each path ensemble. This means that you must somehow generate a first input path. The first rare path can come from any number of sources. The main idea is that any trajectory that is *nearly* physical is good enough. This is discussed more in the [OPS documentation on initial trajectories](http://openpathsampling.org/latest/topics/simulation_setup.html#getting-an-initial-trajectory).\n", "\n", - "Path sampling methods require that the user supply an input path for each path ensemble. This means that you must somehow generate a first input path. In general, getting the first input paths for TIS boils down to solving two problems:\n", + "In this example, we use a bootstrapping/ratcheting approach, which does create paths satisfying the true dynamics of the system. This approach is nice because it is quick and convenient, although it is best for smaller systems with less complicated transitions. It works by running normal MD to generate a path that satisfies the innermost interface, and then performing shooting moves in that interface's path ensemble until we have a path that crosses the next interface. Then we switch to the path ensemble for the next interface, and shoot until the path crossing the interface after that. The process continues until we have paths for all interfaces.\n", "\n", - "1. Getting a trajectory that samples the rare event.\n", - "2. Filling all the path ensembles with acceptable trajectories.\n", - "\n", - "Since transition paths satisfy all the path ensembles between two states, a common approach is to use the same initial path for all path ensembles (reversing it where necessary). This way, once you've solved problem 1, problem 2 is trivial.\n", - "\n", - "The first rare path can come from any number of sources. The obvious approach might be to find a transition path from a committor analysis, because this would give you a path that satisfies the true dynamics. However, the initial path doesn't *need* to satisfy the true dynamics of the system (later we can equilibrate the path ensemble anyway). This means that other approaches, such as high-temperature trajectories, can be used for the first path. One of the most widely-used methods to get an initial trajectory is to generate a transition trajectory using metadynamics. However, the downside of using paths that don't satisfy the true dynamics is that it might be harder to get them to equilibrate to the correct path ensemble. It seems that this has been more of a problem with paths from high temperature runs than with paths from metadynamics: in the first metadynamics transition, the barrier region is often quite similar to the native dynamics.\n", - "\n", - "In this example, we use a bootstrapping approach, which does create paths satisfying the true dynamics of the system. This bootstrapping is nice because it is quick and convenient, although it works best on smaller systems with less complicated transitions. It works by running normal MD to generate a path that satisfies the innermost interface, and then performing shooting moves in that interface's path ensemble until we have a path that crosses the next interface. Then we switch to the path ensemble for the next interface, and shoot until the path crossing the interface after that. The process continues until we have paths for all interfaces." + "In this example, we perform multiple state (MS) TIS. Therefore we do one bootstrapping calculation per initial state." ] }, { "cell_type": "code", "execution_count": 1, - "metadata": { - "collapsed": true - }, + "metadata": {}, "outputs": [], "source": [ "# Basic imports\n", - "%matplotlib inline\n", + "from __future__ import print_function\n", "import openpathsampling as paths\n", "import numpy as np\n", + "%matplotlib inline\n", "\n", "# used for visualization of the 2D toy system\n", "# we use the %run magic because this isn't in a package\n", @@ -49,17 +41,15 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Basic system setup\n", + "## Basic system setup\n", "\n", - "First we set up our system: for the toy dynamics, this involves defining a potential energy surface (PES), setting up an integrator, and giving the simulation an initial configuration. In real MD systems, the PES is handled by the combination of a topology file and a force field definition, and the initial configuration would come from a file instead of being described by hand." + "First we set up our system: for the toy dynamics, this involves defining a potential energy surface (PES), setting up an integrator, and giving the simulation an initial configuration. In real MD systems, the PES is handled by the combination of a topology (generated from, e.g., a PDB file) and a force field definition, and the initial configuration would come from a file instead of being described by hand." ] }, { "cell_type": "code", "execution_count": 2, - "metadata": { - "collapsed": true - }, + "metadata": {}, "outputs": [], "source": [ "# convenience for the toy dynamics\n", @@ -72,30 +62,28 @@ "source": [ "### Set up the toy system\n", "\n", - "First we need to describe the system we'll be simulating. With biomolecular systems, this is often done with an initial PDB structure and a choice of force field. For the toy model, we need to give a snapshot as a template, as well as a potential energy surface. The template snapshot also includes a pointer to the topology information (which is relatively simple for the toy systems.)" + "For the toy model, we need to give a snapshot as a template, as well as a potential energy surface. The template snapshot also includes a pointer to the topology information (which is relatively simple for the toy systems.)" ] }, { "cell_type": "code", "execution_count": 3, - "metadata": { - "collapsed": true - }, + "metadata": {}, "outputs": [], "source": [ "# Toy_PES supports adding/subtracting various PESs. \n", "# The OuterWalls PES type gives an x^6+y^6 boundary to the system.\n", "pes = (\n", - " toys.OuterWalls([1.0, 1.0], [0.0, 0.0]) +\n", - " toys.Gaussian(-0.7, [12.0, 12.0], [0.0, 0.4]) +\n", - " toys.Gaussian(-0.7, [12.0, 12.0], [-0.5, -0.5]) +\n", - " toys.Gaussian(-0.7, [12.0, 12.0], [0.5, -0.5])\n", + " toys.OuterWalls([1.0, 1.0], [0.0, 0.0])\n", + " + toys.Gaussian(-0.7, [12.0, 12.0], [0.0, 0.4])\n", + " + toys.Gaussian(-0.7, [12.0, 12.0], [-0.5, -0.5])\n", + " + toys.Gaussian(-0.7, [12.0, 12.0], [0.5, -0.5])\n", ")\n", "\n", "topology=toys.Topology(\n", - " n_spatial = 2,\n", - " masses =[1.0, 1.0],\n", - " pes = pes\n", + " n_spatial=2,\n", + " masses=[1.0, 1.0],\n", + " pes=pes\n", ")" ] }, @@ -105,38 +93,33 @@ "source": [ "### Set up the engine\n", "\n", - "The engine needs the template snapshot we set up above, as well as an integrator and a few other options." + "The engine needs the template snapshot we set up above, as well as an integrator and a few other options. We name the engine; this makes it easier to reload it in the future." ] }, { "cell_type": "code", "execution_count": 4, - "metadata": { - "collapsed": true - }, + "metadata": {}, "outputs": [], "source": [ "integ = toys.LangevinBAOABIntegrator(dt=0.02, temperature=0.1, gamma=2.5)\n", "\n", "options={\n", - " 'integ' : integ,\n", - " 'n_frames_max' : 5000,\n", - " 'n_steps_per_frame' : 1\n", + " 'integ': integ,\n", + " 'n_frames_max': 5000,\n", + " 'n_steps_per_frame': 1\n", "}\n", "\n", "toy_eng = toys.Engine(\n", " options=options,\n", " topology=topology\n", - ")\n", - "toy_eng.initialized = True" + ").named('toy_engine')" ] }, { "cell_type": "code", "execution_count": 5, - "metadata": { - "collapsed": true - }, + "metadata": {}, "outputs": [], "source": [ "template = toys.Snapshot(\n", @@ -149,9 +132,7 @@ { "cell_type": "code", "execution_count": 6, - "metadata": { - "collapsed": true - }, + "metadata": {}, "outputs": [], "source": [ "toy_eng.current_snapshot = template" @@ -167,9 +148,7 @@ { "cell_type": "code", "execution_count": 7, - "metadata": { - "collapsed": true - }, + "metadata": {}, "outputs": [], "source": [ "paths.PathMover.engine = toy_eng" @@ -189,12 +168,14 @@ "outputs": [ { "data": { - "image/png": "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\nAfKnN7LAA2m7AAAAAElFTkSuQmCC\n", + "image/png": "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\n", "text/plain": [ - "" + "
" ] }, - "metadata": {}, + "metadata": { + "needs_background": "light" + }, "output_type": "display_data" } ], @@ -219,14 +200,13 @@ { "cell_type": "code", "execution_count": 9, - "metadata": { - "collapsed": true - }, + "metadata": {}, "outputs": [], "source": [ "def circle(snapshot, center):\n", " import math\n", - " return math.sqrt((snapshot.xyz[0][0]-center[0])**2 + (snapshot.xyz[0][1]-center[1])**2)\n", + " return math.sqrt((snapshot.xyz[0][0]-center[0])**2\n", + " + (snapshot.xyz[0][1]-center[1])**2)\n", " \n", "opA = paths.CoordinateFunctionCV(name=\"opA\", f=circle, center=[-0.5, -0.5])\n", "opB = paths.CoordinateFunctionCV(name=\"opB\", f=circle, center=[0.5, -0.5])\n", @@ -243,9 +223,7 @@ { "cell_type": "code", "execution_count": 10, - "metadata": { - "collapsed": true - }, + "metadata": {}, "outputs": [], "source": [ "stateA = paths.CVDefinedVolume(opA, 0.0, 0.2)\n", @@ -269,9 +247,7 @@ { "cell_type": "code", "execution_count": 11, - "metadata": { - "collapsed": true - }, + "metadata": {}, "outputs": [], "source": [ "ms_outers = paths.MSOuterTISInterface.from_lambdas(\n", @@ -290,7 +266,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Bootstrap to fill all interfaces\n", + "## Bootstrap to fill all interfaces\n", "\n", "Now we actually run the bootstrapping calculation. The `full_bootstrap` function requires an initial snapshot in the state, and then it will generate trajectories satisfying TIS ensemble for the given interfaces. To fill all the ensembles in the MSTIS network, we need to do this once for each initial state." ] @@ -304,7 +280,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "DONE! Completed Bootstrapping cycle step 44 in ensemble 4/4.\n" + "DONE! Completed Bootstrapping cycle step 49 in ensemble 4/4.\n" ] } ], @@ -332,7 +308,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "DONE! Completed Bootstrapping cycle step 129 in ensemble 3/3.\n" + "DONE! Completed Bootstrapping cycle step 56 in ensemble 3/3.\n" ] } ], @@ -360,7 +336,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "DONE! Completed Bootstrapping cycle step 79 in ensemble 3/3.\n" + "DONE! Completed Bootstrapping cycle step 29 in ensemble 3/3.\n" ] } ], @@ -392,12 +368,14 @@ "outputs": [ { "data": { - "image/png": "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\nT4pGmVMAAAAASUVORK5CYII=\n", + "image/png": "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ofDwcJo4cSLFxMRwqctpaWn06NEjSklJofz8fMH3USqV0ocPHygxMZH++usvOnXqlIq1ctWqVdSmTRuqWrUqt4svX7489/63335Lw4YNo7i4OLp06ZJZLIX5+fl09+5dIlJ872wWWXBwMC1btszs9zo/P58OHz5MAwYM4EiLh4cHTZw4keLj4/8Tv43U1FTatm0b9enThxOnc3R0pIiICPr1119NjhcxFlKplKZOnUoAqHPnzkaTp9evX5Orqys1adKEF4n86aefCADt379fZ59FixbptHqw+l1btmxRaU9PTycrKyuKjo5Wae/Rowf5+flxrxmGIW9vb+rfv7/BazUnSomKGcCSEuX4hnbt2lG9evVU+q1bt05rtg+bTqwtm+fRo0cEgBYvXqzz/HFxcQSA/vzzT4PXmpiYSI6OjtS+fXujJyrWetO2bduPooeSkZFBcXFxnEtELBZTu3btaP369SUmG8cQpFIpHT58mLp3784tlEFBQbRkyRKtwk2mQC6X05kzZ2jo0KFccceAgADu/pu6YGVlZdHvv/9Os2fP5gpxsmmPEomEgoKCaMCAAbRw4UJu51iSFkmZTEaJiYl07do1rm348OHk5ubGEUcrKyvq2bMn9/67d+9M+gys4NiCBQuofv36HMmeN2+eSZ9FF/Ly8mj//v2cWCTrjlqyZMl/5jdTWFhIJ0+epJEjR3JFCMuVK0fjxo0zq0ibEKxbt45EIhGFhoYarWy7e/duAkAxMTEG+8pkMqpevTrVr19f5/OXnJxMVlZWNH36dI33GIYhHx8frZorISEh1LhxY5W2H374gQBQYmIi1xYeHk7+/v4Gr9WcKCUqZkC3bt2oRo0a3GupVEoODg4qehBEioycSpUqaTxg7AKizYQYFRVFYrFYZ0CeTCYjf39/Cg4O5jVxhoWFkYODg8qDJwRsZeiuXbtaXFk1ISGBK1EAgBo0aEArVqyg5ORki16HKXj69CnNmjWLE8/y8vKiadOmFWs1atYN4uzsTIMHD6bff//d5LiFoqIiioqKombNmnE6GmKxmObPn09Eiufyr7/++mg7XnOAYRh6/fo1HT58mKKjozlLqFwup3LlypGPjw8NGTKEdu7cabI42+PHj2nevHl09uxZIlLUi+nfvz/9+eefZid16enptG7dOgoJCSEAZG1tTWFhYfTbb7+VyCBcbSgs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\n", "text/plain": [ - "" + "
" ] }, - "metadata": {}, + "metadata": { + "needs_background": "light" + }, "output_type": "display_data" } ], @@ -415,9 +393,7 @@ { "cell_type": "code", "execution_count": 16, - "metadata": { - "collapsed": true - }, + "metadata": {}, "outputs": [], "source": [ "total_sample_set = paths.SampleSet.relabel_replicas_per_ensemble(\n", @@ -429,7 +405,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Storing stuff\n", + "## Storing stuff\n", "\n", "Up to this point, we haven't stored anything in files. In other notebooks, a lot of the storage is done automatically. Here we'll show you how to store a few things manually. Instead of storing the entire bootstrapping history, we'll only store the final trajectories we get out.\n", "\n", @@ -439,9 +415,7 @@ { "cell_type": "code", "execution_count": 17, - "metadata": { - "collapsed": true - }, + "metadata": {}, "outputs": [], "source": [ "storage = paths.Storage(\"mstis_bootstrap.nc\", \"w\")" @@ -453,9 +427,7 @@ "source": [ "The storage will recursively store data, so storing `total_sample_set` leads to automatic storage of all the `Sample` objects in that sampleset, which in turn leads to storage of all the ensemble, trajectories, and snapshots.\n", "\n", - "Since the path movers used in bootstrapping and the engine are not required for the sampleset, they would not be stored. We explicitly store the engine for later use, but we won't need the path movers, so we don't try to store them.\n", - "\n", - "The `sync_all()` function ensures that all the data that has been created is also saved to the file." + "Since the path movers used in bootstrapping and the engine are not required for the sampleset, they would not be stored. We explicitly store the engine for later use, but we won't need the path movers, so we don't try to store them." ] }, { @@ -468,7 +440,7 @@ "text/plain": [ "(store.engines[DynamicsEngine] : 1 object(s),\n", " 10,\n", - " 140176698516055736935479165878337011734L)" + " 312146789929318672826458068150699163670)" ] }, "execution_count": 18, @@ -485,7 +457,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Now we check to make sure that we actually have stored the objects that we claimed to store. There should be 0 pathmovers, 1 engine, 12 samples (4 samples from each of 3 transitions), and 1 sampleset. There will be some larger number of snapshots. There will also be a larger number of ensembles, because each ensemble is defined in terms of subensembles, each of which gets saved." + "Now we can check to make sure that we actually have stored the objects that we claimed to store. There should be 0 pathmovers, 1 engine, 12 samples (4 samples from each of 3 transitions), and 1 sampleset. There will be some larger number of snapshots. There will also be a larger number of ensembles, because each ensemble is defined in terms of subensembles, each of which gets saved." ] }, { @@ -497,13 +469,13 @@ "name": "stdout", "output_type": "stream", "text": [ - "('PathMovers:', 0)\n", - "('Engines:', 1)\n", - "('Samples:', 10)\n", - "('SampleSets:', 1)\n", - "('Snapshots:', 1130)\n", - "('Ensembles:', 120)\n", - "('CollectiveVariables:', 6)\n" + "PathMovers: 0\n", + "Engines: 1\n", + "Samples: 10\n", + "SampleSets: 1\n", + "Snapshots: 732\n", + "Ensembles: 120\n", + "CollectiveVariables: 6\n" ] } ], @@ -527,41 +499,72 @@ { "cell_type": "code", "execution_count": 20, - "metadata": { - "collapsed": true - }, + "metadata": {}, "outputs": [], "source": [ "storage.close()" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [] } ], "metadata": { "kernelspec": { - "display_name": "Python 2", + "display_name": "Python 3", "language": "python", - "name": "python2" + "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", - "version": 2 + "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", - "pygments_lexer": "ipython2", - "version": "2.7.13" + "pygments_lexer": "ipython3", + "version": "3.7.3" + }, + "toc": { + "base_numbering": 1, + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": true, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": false + }, + "varInspector": { + "cols": { + "lenName": 16, + "lenType": 16, + "lenVar": 40 + }, + "kernels_config": { + "python": { + "delete_cmd_postfix": "", + "delete_cmd_prefix": "del ", + "library": "var_list.py", + "varRefreshCmd": "print(var_dic_list())" + }, + "r": { + "delete_cmd_postfix": ") ", + "delete_cmd_prefix": "rm(", + "library": "var_list.r", + "varRefreshCmd": "cat(var_dic_list()) " + } + }, + "types_to_exclude": [ + "module", + "function", + "builtin_function_or_method", + "instance", + "_Feature" + ], + "window_display": false } }, "nbformat": 4, diff --git a/examples/toy_model_mstis/toy_mstis_2_run.ipynb b/examples/toy_model_mstis/toy_mstis_2_run.ipynb index 1c53dc338..9b0ae0007 100644 --- a/examples/toy_model_mstis/toy_mstis_2_run.ipynb +++ b/examples/toy_model_mstis/toy_mstis_2_run.ipynb @@ -10,8 +10,8 @@ "\n", "Tasks covered in this notebook:\n", "* Loading OPS objects from storage\n", - "* Ways of assigning initial trajectories to initial samples\n", - "* Setting up a path sampling simulation with various move schemes\n", + "* Creating initial conditions for a path sampling simulation\n", + "* Setting up and running path sampling simulations\n", "* Visualizing trajectories while the path sampling is running" ] }, @@ -31,7 +31,9 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Loading things from storage\n", + "## Setting up the simulation\n", + "\n", + "### Loading from storage\n", "\n", "First we'll reload some of the stuff we stored before. Of course, this starts with opening the file." ] @@ -42,7 +44,7 @@ "metadata": {}, "outputs": [], "source": [ - "old_store = paths.AnalysisStorage(\"mstis_bootstrap.nc\")" + "old_store = paths.Storage(\"mstis_bootstrap.nc\", mode='r')" ] }, { @@ -63,9 +65,9 @@ "text": [ "PathMovers: 0\n", "Samples: 10\n", - "Ensembles: 100\n", + "Ensembles: 120\n", "SampleSets: 1\n", - "Snapshots: 1146\n", + "Snapshots: 732\n", "Networks: 0\n" ] } @@ -83,7 +85,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Loading from storage is very easy. Each store is a list. We take the 0th snapshot as a template (it doesn't actually matter which one) for the next storage we'll create. There's only one engine stored, so we take the only one." + "Loading from storage is very easy. Each store is a list. We take the 0th snapshot as a template (it doesn't actually matter which one) for the next storage we'll create." ] }, { @@ -96,19 +98,19 @@ ] }, { - "cell_type": "code", - "execution_count": 5, + "cell_type": "markdown", "metadata": {}, - "outputs": [], "source": [ - "engine = old_store.engines[0]" + "Named objects can be found in storage by using their name as a dictionary key. This allows us to load our old engine, collective variables, and states." ] }, { - "cell_type": "markdown", + "cell_type": "code", + "execution_count": 5, "metadata": {}, + "outputs": [], "source": [ - "Named objects can be found in storage by using their name as a dictionary key. This allows us to load our old collective variables and states." + "engine = old_store.engines['toy_engine']" ] }, { @@ -133,13 +135,20 @@ "stateC = old_store.volumes['C']" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Creating new interface set, network, and move scheme" + ] + }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ - "# we could also load the interfaces, but it takes less code to build new ones:\n", + "# we could also load the interfaces, but it is just as easy:\n", "interfacesA = paths.VolumeInterfaceSet(opA, 0.0,[0.2, 0.3, 0.4])\n", "interfacesB = paths.VolumeInterfaceSet(opB, 0.0,[0.2, 0.3, 0.4])\n", "interfacesC = paths.VolumeInterfaceSet(opC, 0.0,[0.2, 0.3, 0.4])" @@ -167,16 +176,14 @@ " (stateB, interfacesB),\n", " (stateC, interfacesC)],\n", " ms_outers=ms_outers\n", - ")" + ").named('mstis')" ] }, { "cell_type": "markdown", - "metadata": { - "collapsed": true - }, + "metadata": {}, "source": [ - "Now we need to set up real trajectories that we can use for each of these. We can start by loading the stored sampleset." + "Finally, we'll create the move scheme. For this, we'll use the default TIS move scheme:" ] }, { @@ -185,51 +192,42 @@ "metadata": {}, "outputs": [], "source": [ - "# load the sampleset we have saved before\n", - "old_sampleset = old_store.samplesets[0]" + "scheme = paths.DefaultScheme(mstis, engine=engine).named(\"scheme\")" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "collapsed": true + }, "source": [ - "#### About `Sample`s\n", - "\n", - "The OPS object called `Sample` is used to associate a trajectory with a replica ID and an ensemble. The trajectory needs to be associated with an ensemble so we know how to get correct statistics from the many ensembles that we might be sampling simultaneously. The trajectory needs to be associated with a replica ID so that replica exchange approaches can be analyzed.\n", - "\n" + "Now we need to set up real trajectories that we can use for each of these. We can start by loading the stored sampleset." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "Since the ensembles in our MSTIS network are not the exact ensemble objects that we saved our samples with (they were rebuilt), we still need a way to identify which of the new ensembles to associate them with.\n", + "## Preparing initial conditions\n", "\n", - "There are two main ways to do this. The first is to take one trajectory, and associate it with as many ensembles as possible. If your first path comes from a TPS simulation, that is the approach you'll want to take.\n", - "\n", - "The second approach is better suited to our conditions here: we already have a good trajectory for each ensemble. So we just want to remap our old ensembles to new ones." + "The OPS object called `Sample` is used to associate a trajectory with a replica ID and an ensemble. The trajectory needs to be associated with an ensemble so we know how to get correct statistics from the many ensembles that we might be sampling simultaneously. The trajectory needs to be associated with a replica ID so that replica exchange approaches can be analyzed." ] }, { - "cell_type": "markdown", + "cell_type": "code", + "execution_count": 11, "metadata": {}, + "outputs": [], "source": [ - "### Loading one trajectory into lots of ensembles" + "# load the sampleset we have saved before; there is only one in the file\n", + "old_sampleset = old_store.samplesets[0]" ] }, { - "cell_type": "code", - "execution_count": 11, + "cell_type": "markdown", "metadata": {}, - "outputs": [], "source": [ - "# this makes a dictionary mapping the outermost ensemble of each sampling transition \n", - "# to a trajectory from the old_sampleset that satisfies that ensemble\n", - "trajs = {}\n", - "for ens in [t.ensembles[-1] for t in mstis.sampling_transitions]:\n", - " trajs[ens] = [s.trajectory for s in old_sampleset if ens(s.trajectory)][0]\n", - " \n", - "assert(len(trajs)==3) # otherwise, we have a problem" + "Because we've created a new network (and therefore new ensembles), we need to associate the previous trajectories with the new ensembles. " ] }, { @@ -238,25 +236,39 @@ "metadata": {}, "outputs": [], "source": [ - "initial_samples = {}\n", - "for t in mstis.sampling_transitions:\n", - " initial_samples[t] = paths.SampleSet.map_trajectory_to_ensembles(trajs[t.ensembles[-1]], t.ensembles)" + "# TODO: show that the ensembles are equivalent, but not the same" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Missing ensembles:\n", + "* [Out A minus]\n", + "* [Out B minus]\n", + "* [Out C minus]\n", + "No extra ensembles.\n" + ] + } + ], "source": [ - "single_trajectory_sset = paths.SampleSet.relabel_replicas_per_ensemble(initial_samples.values())" + "init_conds = scheme.initial_conditions_from_trajectories(old_sampleset)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "The `sanity_check` function ensures that all trajectories in the sampleset are actually in the ensemble they claim to be associated with. At this point, we should have 9 samples." + "Note that we are missing trajectories that satisfy the minus ensemble. In real simulations, you'll usually have trajectories in each state (used for creating state definitions), and you can feed those trajectories to the `initial_conditions_from_trajectories` method.\n", + "\n", + "However, in this case, we'll need to run dynamics to create such a trajectory. The code below will do that. To learn more about our version of the minus ensemble, see either the brief description in Section 3.2 of [the first OPS paper](https://doi.org/10.1021/acs.jctc.8b00626), or read the detailed description in [the paper where it was developed](https://doi.org/10.1063/1.4890037).\n", + "\n", + "In general, you will not need code like this; it is primarily to ensure that the tests of this notebook also run correctly." ] }, { @@ -265,59 +277,145 @@ "metadata": {}, "outputs": [], "source": [ - "single_trajectory_sset.sanity_check()\n", - "assert(len(single_trajectory_sset)==9)" + "# We need an A -> A path. We'll use shooting moves to ensure that we get one.\n", + "\n", + "def shoot_until_A_to_A(initial_ensemble, desired_ensemble, sample, engine):\n", + " # we only shoot forward because we know the final frame is the problem\n", + " mover = paths.ForwardShootMover(ensemble=initial_ensemble,\n", + " selector=paths.UniformSelector(),\n", + " engine=engine)\n", + " while not desired_ensemble(sample):\n", + " print(\"Shooting from:\", sample.trajectory)\n", + " change = mover.move_core([sample])\n", + " if desired_ensemble(change.trials[0]):\n", + " sample = change.trials[0]\n", + " \n", + " return sample\n", + " \n", + "minus_samples = []\n", + "for minus_ensemble in mstis.special_ensembles['minus']:\n", + " # the TIS ensemble allows A->B; desired_ensemble doesn't \n", + " initial_state = minus_ensemble.state_vol\n", + " tis_ensemble = mstis.from_state[initial_state].ensembles[0]\n", + " desired_ensemble = paths.TISEnsemble(initial_state, initial_state,\n", + " tis_ensemble.interface)\n", + " initial_sample = init_conds[tis_ensemble]\n", + " sample_A_to_A = shoot_until_A_to_A(tis_ensemble, desired_ensemble,\n", + " initial_sample, engine)\n", + "\n", + " sample = minus_ensemble.extend_sample_from_trajectories(\n", + " sample_A_to_A,\n", + " engine=engine,\n", + " replica=-len(minus_samples) - 1\n", + " )\n", + " minus_samples.append(sample)" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "No missing ensembles.\n", + "No extra ensembles.\n" + ] + } + ], + "source": [ + "init_conds = scheme.initial_conditions_from_trajectories(minus_samples,\n", + " sample_set=init_conds)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "### Remapping old ensembles to new ensembles\n", + "## Equilibration\n", + "\n", + "In molecular dynamics, you need to equilibrate if you don't start with an equilibrated snapshot (e.g., if you start with you system at an energy minimum, your should equilibrate before you start taking statistics). Similarly, if you start with a set of paths which are far from the path ensemble equilibrium, you need to equilibrate. This could either be because your trajectories are not from the real dynamics (generated with metadynamics, high temperature, etc.) or because your trajectories are not representative of the path ensemble (e.g., if you put transition trajectories into all interfaces).\n", "\n", - "If your old and new ensembles have the same string representations, then OPS has a function to help you automatically map them. As long as you create the ensembles in the same way, they'll have the same string representation. Note that if you *don't* have the same string representation, you would have to assign trajectories to ensembles by hand (which isn't that hard, but is a bit tedious)." + "As with MD, running equilibration can be the same process as running the total simulation. However, in path sampling, it doesn't have to be exactly the same: we can equilibrate without replica exchange moves or path reversal moves, for example." ] }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 13, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "No missing ensembles.\n", + "No extra ensembles.\n" + ] + } + ], "source": [ - "sset = paths.SampleSet.translate_ensembles(old_sampleset, mstis.sampling_ensembles)" + "sset = equil_scheme.initial_conditions_from_trajectories(old_sampleset)" ] }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 23, "metadata": {}, "outputs": [], "source": [ - "sset.sanity_check()\n", - "assert(len(sset)==9)" + "equil_scheme.assert_initial_conditions(sset)" ] }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 39, "metadata": {}, "outputs": [], "source": [ - "# tests only: this cell sets something for the online testing\n", - "# the next cell unsets it when running the notebook live\n", - "bootstrap_sset = sset\n", - "sset = single_trajectory_sset" + "equilibration = paths.PathSampling(\n", + " storage=None,\n", + " sample_set=init_conds,\n", + " move_scheme=scheme\n", + ")" ] }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 26, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Working on Monte Carlo cycle number 5\n", + "Running for 1 second - 0.27 seconds per step\n", + "Estimated time remaining: 0 seconds\n", + "DONE! Completed 5 Monte Carlo cycles.\n" + ] + } + ], "source": [ "#! skip\n", - "# tests don't run this, but users should!\n", - "sset = bootstrap_sset" + "equilibration.run_until_decorrelated()" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [], + "source": [ + "sset = equilibration.sample_set" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Production" ] }, { @@ -407,9 +505,7 @@ " )\n", " while not transition.stateA(sset[innermost_ensemble].trajectory[-1]):\n", " pseudosim.run(1)\n", - " sset = pseudosim.sample_set\n", - "\n", - " " + " sset = pseudosim.sample_set" ] }, { @@ -445,70 +541,6 @@ "assert(len(sset)==13)" ] }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Equilibration\n", - "\n", - "In molecular dynamics, you need to equilibrate if you don't start with an equilibrium frame (e.g., if you start with solvent molecules on a grid, your system should equilibrate before you start taking statistics). Similarly, if you start with a set of paths which are far from the path ensemble equilibrium, you need to equilibrate. This could either be because your trajectories are not from the real dynamics (generated with metadynamics, high temperature, etc.) or because your trajectories are not representative of the path ensemble (e.g., if you put transition trajectories into all interfaces).\n", - "\n", - "As with MD, running equilibration can be the same process as running the total simulation. However, in path sampling, it doesn't have to be: we can equilibrate without replica exchange moves or path reversal moves, for example. In the example below, we create a `MoveScheme` that only includes shooting movers." - ] - }, - { - "cell_type": "code", - "execution_count": 24, - "metadata": {}, - "outputs": [], - "source": [ - "equil_scheme = paths.OneWayShootingMoveScheme(mstis, engine=engine)" - ] - }, - { - "cell_type": "code", - "execution_count": 25, - "metadata": {}, - "outputs": [], - "source": [ - "equilibration = paths.PathSampling(\n", - " storage=None,\n", - " sample_set=sset,\n", - " move_scheme=equil_scheme\n", - ")" - ] - }, - { - "cell_type": "code", - "execution_count": 26, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Working on Monte Carlo cycle number 5\n", - "Running for 1 second - 0.27 seconds per step\n", - "Estimated time remaining: 0 seconds\n", - "DONE! Completed 5 Monte Carlo cycles.\n" - ] - } - ], - "source": [ - "#! skip\n", - "# tests need the unequilibrated samples to ensure passing\n", - "equilibration.run(5)" - ] - }, - { - "cell_type": "code", - "execution_count": 27, - "metadata": {}, - "outputs": [], - "source": [ - "sset = equilibration.sample_set" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -718,12 +750,30 @@ "source": [ "storage.close()" ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Appendix: Alternate equilibration scheme\n", + "\n", + "The equilibration above uses the same move scheme as the simulation. As remarked, this is not required: you can equilibrate using a different move scheme that samples the same ensembles. For example, the minus move is run much less frequently in the default TIS scheme, which means that it is a long time before the minus ensemble decorrelates. Additionally, moves like path reversal and replica exchange don't do anything to help the initial decorrelation.\n", + "\n", + "Here's an example of how to create a custom move scheme that " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { "anaconda-cloud": {}, "kernelspec": { - "display_name": "Python 2", + "display_name": "Python 3", "language": "python", "name": "python3" }, @@ -736,8 +786,50 @@ "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", - "pygments_lexer": "ipython2", - "version": "2.7.14" + "pygments_lexer": "ipython3", + "version": "3.7.3" + }, + "toc": { + "base_numbering": 1, + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": true, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": true + }, + "varInspector": { + "cols": { + "lenName": 16, + "lenType": 16, + "lenVar": 40 + }, + "kernels_config": { + "python": { + "delete_cmd_postfix": "", + "delete_cmd_prefix": "del ", + "library": "var_list.py", + "varRefreshCmd": "print(var_dic_list())" + }, + "r": { + "delete_cmd_postfix": ") ", + "delete_cmd_prefix": "rm(", + "library": "var_list.r", + "varRefreshCmd": "cat(var_dic_list()) " + } + }, + "types_to_exclude": [ + "module", + "function", + "builtin_function_or_method", + "instance", + "_Feature" + ], + "window_display": false } }, "nbformat": 4, diff --git a/examples/toy_model_mstis/toy_mstis_3_analysis.ipynb b/examples/toy_model_mstis/toy_mstis_3_analysis.ipynb index 9b22c71bf..cc99a4da2 100644 --- a/examples/toy_model_mstis/toy_mstis_3_analysis.ipynb +++ b/examples/toy_model_mstis/toy_mstis_3_analysis.ipynb @@ -15,7 +15,9 @@ ], "source": [ "from __future__ import print_function\n", - "# if our large test file is available, use it. Otherwise, use file generated from toy_mstis_2_run.ipynb\n", + "\n", + "# If our large test file is available, use it. Otherwise, use file generated \n", + "# from toy_mstis_2_run.ipynb. This is so the notebook can be used in testing.\n", "import os\n", "test_file = \"../toy_mstis_1k_OPS1.nc\"\n", "filename = test_file if os.path.isfile(test_file) else \"mstis.nc\"\n", @@ -91,6 +93,8 @@ }, "outputs": [], "source": [ + "# the following works with the old file we use in testing; the better way is:\n", + "# mstis = storage.networks['mstis'] # when objects are named, use the name\n", "mstis = storage.networks.first" ] }, @@ -1724,13 +1728,6 @@ "visualizer.draw_samples(list(tree.samples))" ] }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Histogramming data (TODO)" - ] - }, { "cell_type": "code", "execution_count": 44, @@ -1757,6 +1754,13 @@ " time.sleep(0.1)" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Histogramming data (TODO)" + ] + }, { "cell_type": "code", "execution_count": null, @@ -1782,7 +1786,49 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.2" + "version": "3.7.3" + }, + "toc": { + "base_numbering": 1, + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": true, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": false + }, + "varInspector": { + "cols": { + "lenName": 16, + "lenType": 16, + "lenVar": 40 + }, + "kernels_config": { + "python": { + "delete_cmd_postfix": "", + "delete_cmd_prefix": "del ", + "library": "var_list.py", + "varRefreshCmd": "print(var_dic_list())" + }, + "r": { + "delete_cmd_postfix": ") ", + "delete_cmd_prefix": "rm(", + "library": "var_list.r", + "varRefreshCmd": "cat(var_dic_list()) " + } + }, + "types_to_exclude": [ + "module", + "function", + "builtin_function_or_method", + "instance", + "_Feature" + ], + "window_display": false } }, "nbformat": 4, From 32d513f727b124db2914e7241171bf655ee8d169 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Sun, 26 Jan 2020 18:21:10 +0100 Subject: [PATCH 300/464] Update toy MSTIS setup/run examples Still need to complete the analysis cleanup. --- docs/examples/mstis.rst | 13 + docs/topics/index.rst | 4 +- docs/topics/simulation_setup.rst | 6 +- .../toy_model_mstis/toy_mstis_1_setup.ipynb | 2 +- .../toy_model_mstis/toy_mstis_2_run.ipynb | 442 ++++++++---------- .../toy_mstis_3_analysis.ipynb | 62 +-- 6 files changed, 239 insertions(+), 290 deletions(-) diff --git a/docs/examples/mstis.rst b/docs/examples/mstis.rst index b396862ee..b38767a5a 100644 --- a/docs/examples/mstis.rst +++ b/docs/examples/mstis.rst @@ -16,16 +16,29 @@ For more advanced techniques based on the same system, see the subsequent notebooks in the `directory containing these examples `_. +* :ref:`Obtaining the first trajectories for a toy model + ` +* :ref:`Running an MSTIS simulation ` +* :ref:`Analyzing the MSTIS simulations ` + +.. _toy-mstis-first-traj: + ----- + .. notebook:: examples/toy_model_mstis/toy_mstis_1_setup.ipynb :skip_exceptions: +.. _toy-mstis-running: + ----- + .. notebook:: examples/toy_model_mstis/toy_mstis_2_run.ipynb :skip_exceptions: +.. _toy-mstis-analysis: + ----- .. notebook:: examples/toy_model_mstis/toy_mstis_3_analysis.ipynb diff --git a/docs/topics/index.rst b/docs/topics/index.rst index 7aab0d8c2..deeffd0c0 100644 --- a/docs/topics/index.rst +++ b/docs/topics/index.rst @@ -1,7 +1,7 @@ .. _topics: -Topics -====== +User Guide Topics +================= So far, the OPS documentation is partial, and not fully organized. However, we've been writing up detailed descriptions on various topics as the need diff --git a/docs/topics/simulation_setup.rst b/docs/topics/simulation_setup.rst index 4dda80457..2bd561acc 100644 --- a/docs/topics/simulation_setup.rst +++ b/docs/topics/simulation_setup.rst @@ -1,8 +1,8 @@ .. _simulation_setup: -######################## -Setting up path sampling -######################## +########################### +Preparing for path sampling +########################### *Or: What OpenPathSampling does not do for you* diff --git a/examples/toy_model_mstis/toy_mstis_1_setup.ipynb b/examples/toy_model_mstis/toy_mstis_1_setup.ipynb index fd1782955..43b8b6ef2 100644 --- a/examples/toy_model_mstis/toy_mstis_1_setup.ipynb +++ b/examples/toy_model_mstis/toy_mstis_1_setup.ipynb @@ -8,7 +8,7 @@ "\n", "Tasks covered in this notebook:\n", "\n", - "* Setting up a system using the `ToyDynamics` package\n", + "* Setting up a system using the OPS toy engine\n", "* Using a user-defined function to create a collective variable\n", "* Using collective variables to define states and interfaces\n", "* Storing things manually\n", diff --git a/examples/toy_model_mstis/toy_mstis_2_run.ipynb b/examples/toy_model_mstis/toy_mstis_2_run.ipynb index 9b0ae0007..2b58d3d6a 100644 --- a/examples/toy_model_mstis/toy_mstis_2_run.ipynb +++ b/examples/toy_model_mstis/toy_mstis_2_run.ipynb @@ -67,7 +67,7 @@ "Samples: 10\n", "Ensembles: 120\n", "SampleSets: 1\n", - "Snapshots: 732\n", + "Snapshots: 1176\n", "Networks: 0\n" ] } @@ -195,54 +195,21 @@ "scheme = paths.DefaultScheme(mstis, engine=engine).named(\"scheme\")" ] }, - { - "cell_type": "markdown", - "metadata": { - "collapsed": true - }, - "source": [ - "Now we need to set up real trajectories that we can use for each of these. We can start by loading the stored sampleset." - ] - }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Preparing initial conditions\n", "\n", - "The OPS object called `Sample` is used to associate a trajectory with a replica ID and an ensemble. The trajectory needs to be associated with an ensemble so we know how to get correct statistics from the many ensembles that we might be sampling simultaneously. The trajectory needs to be associated with a replica ID so that replica exchange approaches can be analyzed." + "The OPS object called `Sample` is used to associate a trajectory with a replica ID and an ensemble. The trajectory needs to be associated with an ensemble so we know how to get correct statistics from the many ensembles that we might be sampling simultaneously. The trajectory needs to be associated with a replica ID so that replica exchange approaches can be analyzed.\n", + "\n", + "Because we've created a new network (and therefore new ensembles), we need to associate the previous trajectories with the new ensembles. The main tool to map trajectories to ensembles is the `initial_conditions_from_trajectories` method of a move scheme." ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, - "outputs": [], - "source": [ - "# load the sampleset we have saved before; there is only one in the file\n", - "old_sampleset = old_store.samplesets[0]" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Because we've created a new network (and therefore new ensembles), we need to associate the previous trajectories with the new ensembles. " - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [], - "source": [ - "# TODO: show that the ensembles are equivalent, but not the same" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, "outputs": [ { "name": "stdout", @@ -257,27 +224,27 @@ } ], "source": [ - "init_conds = scheme.initial_conditions_from_trajectories(old_sampleset)" + "# load the sampleset we have saved before; there is only one in the file\n", + "old_sampleset = old_store.samplesets[0]\n", + "from_old_sset = scheme.initial_conditions_from_trajectories(old_sampleset)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "Note that we are missing trajectories that satisfy the minus ensemble. In real simulations, you'll usually have trajectories in each state (used for creating state definitions), and you can feed those trajectories to the `initial_conditions_from_trajectories` method.\n", - "\n", - "However, in this case, we'll need to run dynamics to create such a trajectory. The code below will do that. To learn more about our version of the minus ensemble, see either the brief description in Section 3.2 of [the first OPS paper](https://doi.org/10.1021/acs.jctc.8b00626), or read the detailed description in [the paper where it was developed](https://doi.org/10.1063/1.4890037).\n", + "We are missing trajectories that satisfy the minus ensembles. In real simulations, you usually will have run trajectories in each state (you'll use those to create state/interface definitions). You can (and should) feed those trajectories to the `initial_conditions_from_trajectories`, instead of the complicated code below. That function is smart enough to select a section of the trajectory that satisfies the minus ensemble.\n", "\n", - "In general, you will not need code like this; it is primarily to ensure that the tests of this notebook also run correctly." + "However, in this case, we'll need to run dynamics to create such a trajectory. And because this notebook is also used in our tests, the code is a little more complicated to prevent test failures in unusual circumstances (like having a spontaneous transition in the innermost ensemble)." ] }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 12, "metadata": {}, "outputs": [], "source": [ - "# We need an A -> A path. We'll use shooting moves to ensure that we get one.\n", + "# CODE IN THIS CELL IS NEEDED FOR TEST SUITE, NOT NORMAL USE\n", "\n", "def shoot_until_A_to_A(initial_ensemble, desired_ensemble, sample, engine):\n", " # we only shoot forward because we know the final frame is the problem\n", @@ -285,7 +252,6 @@ " selector=paths.UniformSelector(),\n", " engine=engine)\n", " while not desired_ensemble(sample):\n", - " print(\"Shooting from:\", sample.trajectory)\n", " change = mover.move_core([sample])\n", " if desired_ensemble(change.trials[0]):\n", " sample = change.trials[0]\n", @@ -294,15 +260,17 @@ " \n", "minus_samples = []\n", "for minus_ensemble in mstis.special_ensembles['minus']:\n", - " # the TIS ensemble allows A->B; desired_ensemble doesn't \n", + " # tis_ensemble allows A->B; desired_ensemble only allows A->A \n", " initial_state = minus_ensemble.state_vol\n", " tis_ensemble = mstis.from_state[initial_state].ensembles[0]\n", " desired_ensemble = paths.TISEnsemble(initial_state, initial_state,\n", " tis_ensemble.interface)\n", - " initial_sample = init_conds[tis_ensemble]\n", + " initial_sample = from_old_sset[tis_ensemble]\n", + " # ensure we're A->A, not A->B\n", " sample_A_to_A = shoot_until_A_to_A(tis_ensemble, desired_ensemble,\n", " initial_sample, engine)\n", "\n", + " # with an A->A segment, just use this to extend into the minus ensemble\n", " sample = minus_ensemble.extend_sample_from_trajectories(\n", " sample_A_to_A,\n", " engine=engine,\n", @@ -311,34 +279,13 @@ " minus_samples.append(sample)" ] }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "No missing ensembles.\n", - "No extra ensembles.\n" - ] - } - ], - "source": [ - "init_conds = scheme.initial_conditions_from_trajectories(minus_samples,\n", - " sample_set=init_conds)" - ] - }, { "cell_type": "markdown", "metadata": {}, "source": [ - "## Equilibration\n", - "\n", - "In molecular dynamics, you need to equilibrate if you don't start with an equilibrated snapshot (e.g., if you start with you system at an energy minimum, your should equilibrate before you start taking statistics). Similarly, if you start with a set of paths which are far from the path ensemble equilibrium, you need to equilibrate. This could either be because your trajectories are not from the real dynamics (generated with metadynamics, high temperature, etc.) or because your trajectories are not representative of the path ensemble (e.g., if you put transition trajectories into all interfaces).\n", + "Now that we have the necessary trajectories, we create a new sample set using `initial_conditions_from_trajectories`. By adding the `sample_set` keyword, we retain any assignments that existing in the given sample set.\n", "\n", - "As with MD, running equilibration can be the same process as running the total simulation. However, in path sampling, it doesn't have to be exactly the same: we can equilibrate without replica exchange moves or path reversal moves, for example." + "Note that `initial_conditions_from_trajectories` is very flexible about its input. It allow you to provide a sample set, a list of samples, a list of trajectories, or a single trajectory. Above we used a sample set; here we'll use a list of samples." ] }, { @@ -356,223 +303,138 @@ } ], "source": [ - "sset = equil_scheme.initial_conditions_from_trajectories(old_sampleset)" - ] - }, - { - "cell_type": "code", - "execution_count": 23, - "metadata": {}, - "outputs": [], - "source": [ - "equil_scheme.assert_initial_conditions(sset)" - ] - }, - { - "cell_type": "code", - "execution_count": 39, - "metadata": {}, - "outputs": [], - "source": [ - "equilibration = paths.PathSampling(\n", - " storage=None,\n", - " sample_set=init_conds,\n", - " move_scheme=scheme\n", + "init_conds = scheme.initial_conditions_from_trajectories(\n", + " minus_samples,\n", + " sample_set=from_old_sset\n", ")" ] }, - { - "cell_type": "code", - "execution_count": 26, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Working on Monte Carlo cycle number 5\n", - "Running for 1 second - 0.27 seconds per step\n", - "Estimated time remaining: 0 seconds\n", - "DONE! Completed 5 Monte Carlo cycles.\n" - ] - } - ], - "source": [ - "#! skip\n", - "equilibration.run_until_decorrelated()" - ] - }, - { - "cell_type": "code", - "execution_count": 27, - "metadata": {}, - "outputs": [], - "source": [ - "sset = equilibration.sample_set" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Production" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Setting up special ensembles\n", - "\n", - "Whichever way we initially set up the `SampleSet`, at this point it only contains samples for the main sampling trajectories of each transition. Now we need to put trajectories into various auxiliary ensembles." - ] - }, { "cell_type": "markdown", "metadata": {}, "source": [ - "#### Multiple state outer ensemble\n", - "\n", - "The multiple state outer ensemble is, in fact, sampled during the bootstrapping. However, it is actually sampled once for every state that shares it. It is very easy to find a trajectory that satisfies the ensemble and to load add that sample to our sampleset." + "Now we have a sample set with a trajectory for all the ensembles required to start the simulation. We can (and should) double-check that everything is okay with a few simple checks:" ] }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 14, "metadata": {}, "outputs": [], "source": [ - "for outer_ens in mstis.special_ensembles['ms_outer']:\n", - " # doesn't matter which we take, so we take the first\n", - " traj = next(s.trajectory for s in old_sampleset if outer_ens(s.trajectory)==True)\n", - " samp = paths.Sample(\n", - " replica=None,\n", - " ensemble=outer_ens,\n", - " trajectory=traj\n", - " )\n", - " # now we apply it and correct for the replica ID\n", - " sset.append_as_new_replica(samp)" + "# verify that every trajectory satisfies its ensemble\n", + "init_conds.sanity_check()" ] }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 15, "metadata": {}, "outputs": [], "source": [ - "sset.sanity_check()\n", - "assert(len(sset)==10)" + "# verify that this initial conditions are valid for this move scheme\n", + "scheme.assert_initial_conditions(init_conds)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "#### Minus interface ensemble\n", + "## Equilibration\n", "\n", - "The minus interface ensembles do not yet have a trajectory. We will generate them by starting with same-state trajectories (A-to-A, B-to-B, C-to-C) in each interface, and extending into the minus ensemble.\n", + "In molecular dynamics, you need to equilibrate if you don't start with an equilibrated snapshot (e.g., if you start with you system at an energy minimum, your should equilibrate before you start taking statistics). Similarly, if you start with a set of paths which are far from the path ensemble equilibrium, you need to equilibrate. This could either be because your trajectories are not from the real dynamics (generated with metadynamics, high temperature, etc.) or because your trajectories are not representative of the path ensemble (e.g., if you put transition trajectories into all interfaces).\n", "\n", - "* check whether the traj is A-to-A\n", - "* extend" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "First we need to make sure that the trajectory in the innermost ensemble of each state also ends in that state. This is necessary so that when we extend the trajectory, it can extends into the minus ensemble.\n", + "As with MD, running equilibration can be the same process as running the total simulation. However, in path sampling, it doesn't have to be exactly the same: we can equilibrate without replica exchange moves or path reversal moves, for example. See the appendix at the end of this notebook for an example of that.\n", "\n", - "If the trajectory isn't right, we run a shooting move on it until it is." + "For a real simulation, we would probably want to store the equilibration phase. Here, we don't bother to save it, so we use `storage=None`." ] }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 16, "metadata": {}, "outputs": [], "source": [ - "for transition in mstis.sampling_transitions:\n", - " innermost_ensemble = transition.ensembles[0]\n", - " shooter = None\n", - " if not transition.stateA(sset[innermost_ensemble].trajectory[-1]):\n", - " shooter = paths.OneWayShootingMover(ensemble=innermost_ensemble,\n", - " selector=paths.UniformSelector(),\n", - " engine=engine)\n", - " pseudoscheme = paths.LockedMoveScheme(root_mover=shooter)\n", - " pseudosim = paths.PathSampling(storage=None, \n", - " move_scheme=pseudoscheme, \n", - " sample_set=sset,\n", - " )\n", - " while not transition.stateA(sset[innermost_ensemble].trajectory[-1]):\n", - " pseudosim.run(1)\n", - " sset = pseudosim.sample_set" + "equilibration = paths.PathSampling(\n", + " storage=None,\n", + " sample_set=init_conds,\n", + " move_scheme=scheme\n", + ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "Now that all the innermost ensembles are safe to use for extending into a minus interface, we extend them into a minus interface:" + "When using one-way shooting, as we are, part of the trajectory is reused after each shooting move. Therefore, an absolute minimum requirement for equilibration is that all frames from each initial trajectory have been replaced by other frames. We refer to such trajectories as \"decorrelated,\" and OPS has a convenience for running a move scheme until all trajectories are decorrelated.\n", + "\n", + "For a real simulation, it would be much better to equilibrate beyond the point where all paths are decorrelated." ] }, { "cell_type": "code", - "execution_count": 22, - "metadata": {}, - "outputs": [], + "execution_count": 17, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Step 750: All trajectories decorrelated!\n" + ] + } + ], "source": [ - "minus_samples = []\n", - "for transition in mstis.sampling_transitions:\n", - " minus_samples.append(transition.minus_ensemble.extend_sample_from_trajectories(\n", - " sset[transition.ensembles[0]].trajectory,\n", - " replica=-len(minus_samples)-1,\n", - " engine=engine\n", - " ))\n", - "sset = sset.apply_samples(minus_samples)" + "#! skip\n", + "# don't run this during testing\n", + "equilibration.run_until_decorrelated()" ] }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 18, "metadata": {}, "outputs": [], "source": [ - "sset.sanity_check()\n", - "assert(len(sset)==13)" + "# get the final sample set; normally we'd save to a file and reload\n", + "equilibrated = equilibration.sample_set" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "## Running RETIS\n", + "## Production\n", "\n", - "Now we run the full calculation. Up to here, we haven't been storing any of our results. This time, we'll start a storage object, and we'll save the network we've created. Then we'll run a new `PathSampling` calculation object." + "Now we run the full calculation. Up to here, we haven't been storing any of our results. This time, we'll create a storage file, and we'll save a template snapshot. Then we'll create a new `PathSampling` simulation object. Note that we're using the same move scheme here as we did in the equilibration stage." ] }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 19, "metadata": {}, "outputs": [], "source": [ - "# logging creates ops_output.log file with details of what the calculation is doing\n", + "# logging creates ops_output.log file with details of what is going on \n", "#import logging.config\n", - "#logging.config.fileConfig(\"../resources/logging.conf\", disable_existing_loggers=False)" + "#logging.config.fileConfig(\"../resources/logging.conf\", \n", + "# disable_existing_loggers=False)" ] }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 20, "metadata": {}, "outputs": [], "source": [ - "storage = paths.storage.Storage(\"mstis.nc\", \"w\")" + "storage = paths.Storage(\"mstis.nc\", \"w\")" ] }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 21, "metadata": {}, "outputs": [ { @@ -580,10 +442,10 @@ "text/plain": [ "(store.snapshots[BaseSnapshot] : 2 object(s),\n", " 2,\n", - " 187105971573306519336015195686574257893L)" + " 45194949964858475055439011596080367049)" ] }, - "execution_count": 30, + "execution_count": 21, "metadata": {}, "output_type": "execute_result" } @@ -594,27 +456,14 @@ }, { "cell_type": "code", - "execution_count": null, - "metadata": { - "scrolled": true - }, - "outputs": [], - "source": [ - "[cv.with_diskcache() for cv in old_store.cvs]" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, + "execution_count": 22, + "metadata": {}, "outputs": [], "source": [ "mstis_calc = paths.PathSampling(\n", " storage=storage,\n", - " sample_set=sset,\n", - " move_scheme=paths.DefaultScheme(mstis, engine=engine)\n", + " sample_set=equilibrated,\n", + " move_scheme=scheme\n", ")\n", "mstis_calc.save_frequency = 50" ] @@ -628,17 +477,19 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": 23, "metadata": {}, "outputs": [ { "data": { - "image/png": "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\nnpkqscxTAAAAAElFTkSuQmCC\n", + "image/png": "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\n", "text/plain": [ - "" + "
" ] }, - "metadata": {}, + "metadata": { + "needs_background": "light" + }, "output_type": "display_data" } ], @@ -649,31 +500,33 @@ "%run ../resources/toy_plot_helpers.py\n", "xval = paths.FunctionCV(\"xval\", lambda snap : snap.xyz[0][0])\n", "yval = paths.FunctionCV(\"yval\", lambda snap : snap.xyz[0][1])\n", - "mstis_calc.live_visualizer = paths.StepVisualizer2D(mstis, xval, yval, [-1.0, 1.0], [-1.0, 1.0])\n", + "mstis_calc.live_visualizer = paths.StepVisualizer2D(mstis, xval, yval,\n", + " [-1.0, 1.0], [-1.0, 1.0])\n", "background = ToyPlot()\n", "background.contour_range = np.arange(-1.5, 1.0, 0.1)\n", "background.add_pes(engine.pes)\n", "mstis_calc.live_visualizer.background = background.plot()\n", - "mstis_calc.status_update_frequency = 1 # increasing this number speeds things up, but isn't as pretty" + "# increase update frequency to speed things up, but it isn't as pretty\n", + "mstis_calc.status_update_frequency = 1" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "Now everything is ready: let's run the simulation!" + "Now everything is ready: let's run the simulation! We'll start by running it for 100 MC steps." ] }, { "cell_type": "code", - "execution_count": 35, + "execution_count": 24, "metadata": {}, "outputs": [ { "data": { - "image/png": "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\njjx//pymTZty48aNXLW8UQdpbCiIFk7dunXj0KFDlC5dmsDAQFq3bk2TJk2U96C6fm85QRRFzp07\nR5cuXShbtixTp07l/v37uLq6Ur58eT755BNZsr+2feO0jTypWq9OntO0/N9Inop8wnheyZO65ZAz\nOcpv8qSqzUxekNvE9Y8ByTvo0aNHeHp6FvDVKBK9dYlFixZRr1495s2bx8KFC2Xt+/333zNr1ixZ\nFhNmZmZKC4GEhAQePHhAtWrVctzPwMAAPz8/6taty19//ZWnKKW+vj7t2rWjXbt2pKSkKF8w58+f\nZ8WKFcqIrJGREWXLlqV8+fLY2tpSokQJTExMMDY25quvvsLOzo4jR46wceNGoqOjefz4MY8fPyY9\nPZ3o6GhsbGxo0KABVlZWtGzZkkaNGuXpuUlPTycyMpKyZcvyzTff0KpVK5o3b671/gcPHmTJkiX4\n+/trTp7v1w8WLYLgYIWUBxgDd62sqBQSokwmunnzJlu2bGH79u1ZIrOGhobUr1+fFi1a8PnnnxMU\nFETXrk346iuBgQPh4kVo1w6mT1e4gcsMurFt2zbi4+MZPny4yvXJybHAfkJCtlGr1hlEUcTKyoqZ\nM2cyYcKEPEW8VEGKXEpjxcfGp59+SlhYGMuWLWPZsmVcuHCBGjVqMG7cOGW1oraRJ1EUOXToEHPn\nzlW29zEwMKBTp058+eWXtG/fnnr16smeWGgrieW03X+yXc74V5Kn3Mh2ucl5yknWk5AX8qRLolOY\nI09SRZqu8ox0gcTERE6ePKk0oMsLPDw8+PLLL1myZAlffvklVapU0XpficAkJiaydOlSJk+eLCtv\nbfz48ezdu5fDhw9r3b9t8ODBShfx4OBgvv32W3x9fXNVlQdZ77nFixczb948bt68yY0bN7h37x6P\nHj3iyZMnBAcHExMTQ3JyMsnJyQwYMAA7OztevXpFWFgYdnZ2NGzYECcnJ1xcXJTH7dWrV66uKzsC\nAgIYN24cCQkJXL9+HTMzM1nEaefOnfTv35+6devmHO0ShKylavr6JM2ahX7v3py5fZvLmzezZ88e\nrl+/rtykcuXKdOvWjRYtWtCwYUNlldeBAwcYPnw4b9++ZfLkyZw7p+Bl06crEsmvX4ft2xX5Utqi\nZcuWzJ49WzmZSU1NJSgoiLNnz/Lbb79x7tyfQBpxcYrvd/jw4cyaNSvfGo+Hh4djb29foNXC5ubm\n+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\nTkSuQmCC\n", + "image/png": "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\n", "text/plain": [ - "" + "
" ] }, "metadata": {}, @@ -688,63 +541,70 @@ } ], "source": [ - "mstis_calc.run_until(100)" + "mstis_calc.run(100)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In RETIS, there are several different move types (shooting, replica exchange, etc.), and each move type can have a different probability of being selected. Moreover, different move types may have different numbers of specific moves (ensembles affected) within them.\n", + "\n", + "This means that if you wanted to run enough steps that, on average, each shooting mover ran 1000 times, you would need to figure out how many trials (of any type) that corresponds to. OPS has tools to make that easy. First, we select a mover (we'll take the first shooting mover as a representative of all shooting movers), and then we use `scheme.n_steps_for_trial` to get the expected number of steps to get that many trials of that mover. Of course, this is only a expected value; the exact number of trials in the simulation will vary." ] }, { "cell_type": "code", - "execution_count": 36, + "execution_count": 25, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "2010\n" + "20100\n" ] } ], "source": [ - "n_steps = int(mstis_calc.move_scheme.n_steps_for_trials(mstis_calc.move_scheme.movers['shooting'][0], 1000))\n", + "representative_mover = scheme.movers['shooting'][0]\n", + "n_steps = int(scheme.n_steps_for_trials(representative_mover, 1000))\n", "print(n_steps)" ] }, { - "cell_type": "code", - "execution_count": 37, + "cell_type": "markdown", "metadata": {}, - "outputs": [], "source": [ - "mstis_calc.live_visualizer = None" + "Finally, let's run for a lot longer to get enough statistics. Note that this time, we'll run the simulation using `run_until`, which picks up from where we left off, and finishes when a total of `n_steps` trials have been performed." ] }, { "cell_type": "code", - "execution_count": 38, + "execution_count": 26, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Working on Monte Carlo cycle number 2010\n", - "Running for 9 minutes 0 seconds - 0.28 seconds per step\n", + "Working on Monte Carlo cycle number 20100\n", + "Running for 1 hour 39 minutes 22 seconds - 0.30 seconds per step\n", "Estimated time remaining: 0 seconds\n", - "DONE! Completed 2010 Monte Carlo cycles.\n", - " \n", - "*** Profile stats marshalled to file u'run.pstats'. \n" + "DONE! Completed 20100 Monte Carlo cycles.\n" ] } ], "source": [ "#! skip\n", "# don't run all those steps in testing!\n", + "mstis_calc.live_visualizer = None # turn off the live visualization\n", "mstis_calc.run_until(n_steps)" ] }, { "cell_type": "code", - "execution_count": 39, + "execution_count": 27, "metadata": {}, "outputs": [], "source": [ @@ -759,15 +619,91 @@ "\n", "The equilibration above uses the same move scheme as the simulation. As remarked, this is not required: you can equilibrate using a different move scheme that samples the same ensembles. For example, the minus move is run much less frequently in the default TIS scheme, which means that it is a long time before the minus ensemble decorrelates. Additionally, moves like path reversal and replica exchange don't do anything to help the initial decorrelation.\n", "\n", - "Here's an example of how to create a custom move scheme that " + "Here's an example of how to create a custom move scheme that uses a shooting move for all ensembles. Note that we don't usually use a shooting move on the minus ensemble (the minus move does the dynamics), but nonetheless, shooting is possible." ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 28, "metadata": {}, "outputs": [], - "source": [] + "source": [ + "from openpathsampling import strategies" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We want to create a move scheme that consists of a shooting mover for each ensemble that is used in the move scheme called `scheme`, which we created above. The easiest way to get that is the scheme's `find_used_ensembles` method. However, we could get equivalent information from the network object `mstis`, by looking at its `sampling_ensembles` (normal TIS), `ms_outers` (multiple state outer), and `minus_ensembles`." + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [], + "source": [ + "all_ensembles = scheme.find_used_ensembles()" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": {}, + "outputs": [], + "source": [ + "shooting_strat = strategies.OneWayShootingStrategy(\n", + " selector=paths.UniformSelector(),\n", + " ensembles=all_ensembles,\n", + " engine=engine\n", + ")\n", + "\n", + "# all custom strategies need a global-level \"OrganizeBy\" strategy\n", + "# this is the standard one to use\n", + "global_strat = strategies.OrganizeByMoveGroupStrategy()" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": {}, + "outputs": [], + "source": [ + "equil_scheme = paths.MoveScheme(mstis)\n", + "equil_scheme.append([shooting_strat, global_strat])" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": {}, + "outputs": [], + "source": [ + "custom_equil = paths.PathSampling(\n", + " storage=None,\n", + " move_scheme=equil_scheme,\n", + " sample_set=init_conds\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Step 254: All trajectories decorrelated!\n" + ] + } + ], + "source": [ + "#! skip\n", + "custom_equil.run_until_decorrelated()" + ] } ], "metadata": { diff --git a/examples/toy_model_mstis/toy_mstis_3_analysis.ipynb b/examples/toy_model_mstis/toy_mstis_3_analysis.ipynb index cc99a4da2..be477ea49 100644 --- a/examples/toy_model_mstis/toy_mstis_3_analysis.ipynb +++ b/examples/toy_model_mstis/toy_mstis_3_analysis.ipynb @@ -1,8 +1,37 @@ { "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Analyzing the MSTIS simulation\n", + "\n", + "Included in this notebook:\n", + "\n", + "* Opening files for analysis\n", + "* Rates, fluxes, total crossing probabilities, and condition transition probabilities\n", + "* Per-ensemble properties such as path length distributions and interface crossing probabilities\n", + "* Move scheme analysis\n", + "* Replica exchange analysis\n", + "* Replica move history tree visualization\n", + "* Replaying the simulation\n", + "* MORE TO COME! Like free energy projections, path density plots, and more\n", + "\n", + "NOTE: This notebook uses our old analysis approach. See the \"new analysis\" appendix notebook for details on how to customize analysis." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "from __future__ import print_function" + ] + }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 2, "metadata": {}, "outputs": [ { @@ -14,8 +43,6 @@ } ], "source": [ - "from __future__ import print_function\n", - "\n", "# If our large test file is available, use it. Otherwise, use file generated \n", "# from toy_mstis_2_run.ipynb. This is so the notebook can be used in testing.\n", "import os\n", @@ -24,26 +51,6 @@ "print(\"Using file `\"+ filename + \"` for analysis\")" ] }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Analyzing the MSTIS simulation\n", - "\n", - "Included in this notebook:\n", - "\n", - "* Opening files for analysis\n", - "* Rates, fluxes, total crossing probabilities, and condition transition probabilities\n", - "* Per-ensemble properties such as path length distributions and interface crossing probabilities\n", - "* Move scheme analysis\n", - "* Replica exchange analysis\n", - "* Replica move history tree visualization\n", - "* Replaying the simulation\n", - "* MORE TO COME! Like free energy projections, path density plots, and more\n", - "\n", - "NOTE: This notebook uses our old analysis approach. See the \"new analysis\" appendix notebook for details on how to customize analysis." - ] - }, { "cell_type": "code", "execution_count": 2, @@ -56,13 +63,6 @@ "import numpy as np" ] }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The optimum way to use storage depends on whether you're doing production or analysis. For analysis, you should open the file as an `AnalysisStorage` object. This makes the analysis much faster." - ] - }, { "cell_type": "code", "execution_count": 3, @@ -79,7 +79,7 @@ ], "source": [ "%%time\n", - "storage = paths.AnalysisStorage(filename)" + "storage = paths.Storage(filename, mode='r')" ] }, { From b5fdc86072c75c123005836bf847e09c5e57f4ee Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Sun, 26 Jan 2020 20:51:55 +0100 Subject: [PATCH 301/464] time reversibility in run_until_decorrelated --- .../pathsimulators/path_sampling.py | 11 ++++++-- openpathsampling/tests/test_pathsimulator.py | 25 ++++++++++++++----- 2 files changed, 28 insertions(+), 8 deletions(-) diff --git a/openpathsampling/pathsimulators/path_sampling.py b/openpathsampling/pathsimulators/path_sampling.py index 6138d20b0..38d3ae5f7 100644 --- a/openpathsampling/pathsimulators/path_sampling.py +++ b/openpathsampling/pathsimulators/path_sampling.py @@ -187,7 +187,7 @@ def run_until(self, n_steps): n_steps_to_run = n_steps - self.step self.run(n_steps_to_run) - def run_until_decorrelated(self): + def run_until_decorrelated(self, time_reversal=True): """Run until all trajectories are decorrelated. This runs until all the replicas in ``self.sample_set`` have @@ -204,7 +204,8 @@ def run_until_decorrelated(self): self.output_stream = open(os.devnull, 'w') def n_correlated(sample_set, originals): - return sum([originals[r].is_correlated(sample_set[r]) + return sum([originals[r].is_correlated(sample_set[r], + time_reversal) for r in originals]) original_output_stream.write("Decorrelating trajectories....\n") @@ -220,6 +221,12 @@ def n_correlated(sample_set, originals): self.run(1) to_decorrelate = n_correlated(self.sample_set, originals) + paths.tools.refresh_output( + "Step {}: All trajectories decorrelated!\n".format(self.step+1), + refresh=False, + output_stream=original_output_stream + ) + self.output_stream = original_output_stream def run(self, n_steps): diff --git a/openpathsampling/tests/test_pathsimulator.py b/openpathsampling/tests/test_pathsimulator.py index d0ed20e60..755db0de2 100644 --- a/openpathsampling/tests/test_pathsimulator.py +++ b/openpathsampling/tests/test_pathsimulator.py @@ -662,13 +662,22 @@ def setup(self): pes=pes) self.engine = paths.engines.toy.Engine(options={'integ': integ}, topology=topology) - network = paths.TPSNetwork(self.state_A, self.state_B) + + interfaces = paths.VolumeInterfaceSet(self.cv, float("-inf"), + [0.0, 0.1, 0.2]) + network = paths.MISTISNetwork([ + (self.state_A, interfaces, self.state_B) + ]) init_traj = make_1d_traj([-0.1, 0.2, 0.5, 0.8, 1.1]) - scheme = paths.OneWayShootingMoveScheme( - network=network, - selector=paths.UniformSelector(), - engine=self.engine - ) + scheme = paths.MoveScheme(network) + scheme.append([ + paths.strategies.OneWayShootingStrategy( + selector=paths.UniformSelector(), + engine=self.engine + ), + paths.strategies.PathReversalStrategy(), + paths.strategies.OrganizeByMoveGroupStrategy() + ]) init_cond = scheme.initial_conditions_from_trajectories(init_traj) self.sim = PathSampling(storage=None, move_scheme=scheme, sample_set=init_cond) @@ -680,3 +689,7 @@ def all_snaps(sample_set): self.sim.run_until_decorrelated() final_snaps = all_snaps(self.sim.sample_set) assert initial_snaps & final_snaps == set([]) + # test time reversal + init_xyz = set(s.xyz.tostring() for s in initial_snaps) + final_xyz = set(s.xyz.tostring() for s in final_snaps) + assert init_xyz & final_xyz == set([]) From 28d06d287c58ad938df38498349675a4cf38e89d Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Tue, 28 Jan 2020 23:12:45 +0100 Subject: [PATCH 302/464] Update toy MSTIS analysis example --- .../toy_mstis_3_analysis.ipynb | 624 +++++++++--------- 1 file changed, 319 insertions(+), 305 deletions(-) diff --git a/examples/toy_model_mstis/toy_mstis_3_analysis.ipynb b/examples/toy_model_mstis/toy_mstis_3_analysis.ipynb index be477ea49..339739e04 100644 --- a/examples/toy_model_mstis/toy_mstis_3_analysis.ipynb +++ b/examples/toy_model_mstis/toy_mstis_3_analysis.ipynb @@ -22,7 +22,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ @@ -38,7 +38,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Using file `../toy_mstis_1k_OPS1.nc` for analysis\n" + "Using file `mstis.nc` for analysis\n" ] } ], @@ -53,7 +53,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ @@ -65,15 +65,15 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "CPU times: user 13.7 s, sys: 1.44 s, total: 15.1 s\n", - "Wall time: 16.4 s\n" + "CPU times: user 3.37 s, sys: 634 ms, total: 4.01 s\n", + "Wall time: 4.04 s\n" ] } ], @@ -84,7 +84,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 5, "metadata": { "run_control": { "marked": false @@ -118,7 +118,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 6, "metadata": {}, "outputs": [], "source": [ @@ -128,25 +128,25 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 7, "metadata": { "scrolled": false }, "outputs": [ { - "name": "stdout", + "name": "stderr", "output_type": "stream", "text": [ - "CPU times: user 2.16 s, sys: 143 ms, total: 2.3 s\n", - "Wall time: 2.43 s\n" + "/Users/dwhs/Dropbox/pysrc/openpathsampling/openpathsampling/high_level/network.py:710: FutureWarning: set_value is deprecated and will be removed in a future release. Please use .at[] or .iat[] accessors instead\n", + " rate)\n" ] }, { - "name": "stderr", + "name": "stdout", "output_type": "stream", "text": [ - "/Users/dwhs/Dropbox/pysrc/openpathsampling/openpathsampling/high_level/network.py:619: FutureWarning: set_value is deprecated and will be removed in a future release. Please use .at[] or .iat[] accessors instead\n", - " rate)\n" + "CPU times: user 7h 16min 42s, sys: 38min 29s, total: 7h 55min 12s\n", + "Wall time: 17h 5min 6s\n" ] }, { @@ -179,19 +179,19 @@ " \n", " A\n", " NaN\n", - " 0\n", - " 0\n", + " 0.00216107\n", + " 0.00187706\n", " \n", " \n", " B\n", - " 0.00272874\n", + " 0.00117093\n", " NaN\n", - " 0.000662076\n", + " 0.00119613\n", " \n", " \n", " C\n", - " 0.00463085\n", - " 0.021192\n", + " 0.001321\n", + " 0.00186286\n", " NaN\n", " \n", " \n", @@ -199,20 +199,20 @@ "" ], "text/plain": [ - " A B C\n", - "A NaN 0 0\n", - "B 0.00272874 NaN 0.000662076\n", - "C 0.00463085 0.021192 NaN" + " A B C\n", + "A NaN 0.00216107 0.00187706\n", + "B 0.00117093 NaN 0.00119613\n", + "C 0.001321 0.00186286 NaN" ] }, - "execution_count": 6, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "%%time\n", - "mstis.rate_matrix(storage.steps[:], force=True)" + "mstis.rate_matrix(storage.steps)" ] }, { @@ -223,7 +223,7 @@ "source": [ "The self-rates (the rate of returning the to initial state) are undefined, and return not-a-number.\n", "\n", - "The rate is calcuated according to the formula:\n", + "The rate is calculated according to the formula:\n", "\n", "$$k_{AB} = \\phi_{A,0} P(B|\\lambda_m) \\prod_{i=0}^{m-1} P(\\lambda_{i+1} | \\lambda_i)$$\n", "\n", @@ -239,7 +239,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 8, "metadata": {}, "outputs": [], "source": [ @@ -250,22 +250,22 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "[]" + "[]" ] }, - "execution_count": 8, + "execution_count": 9, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -299,7 +299,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 10, "metadata": { "scrolled": true }, @@ -310,13 +310,13 @@ "(0.0, 1.0)" ] }, - "execution_count": 9, + "execution_count": 10, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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lStXJiLPRQrES1p4RHzm+efhoYdg40aoUyfHE8ePQ9mycPvt8OKLntUXLk6ePMmYMWN47LHHiIuL46233qJp06YXfI+1lk2bNp0K9oULF/Ldd98BULZsWRITE2nTpg3NmjXjt99+Y9euXezevZtdu3ad8fXevXs5efLkGduOiooiNjb2VPBXqVKFiy66iJiYGGJiYihRokSBv46Li9M8QD6koBef2b0bqleHxx+HkSPPerJTJ/j+ezfPsfjEkiVL6NOnD7t37+aZZ55h6NChp86sMzMzWbt27amz9YULF7I/q3UWGxtLmzZtTn1cffXV+T4jP3HiBHv37j3vL4Jdu3axf/9+jh07xtGjRzl69GihfraIiAhat25Njx496N69O/Hx8YXajjgKevGpDh3ceiObN7uLtKf87W9upZL9+6FiRc/qCzcHDx7kjjvuIC0tja5du5KYmMjChQvJyMg4Y/WrnMH+xz/+EXPGfxz/sdaSmZnJ0aNHOXbs2KlfANlfn/199i+HNWvWkJaWxrp16wBo0KDBqdCvX79+wOoPFwp68ampU+HOO2H5ctezP2XxYneX7IwZcNNNntUXjqy1TJw4kWHDhnHs2DGuuuqqU6GemJhIXFyc1yUW2jfffMM777xDWloaixcvxlpLjRo1ToV+ixYtiIyM9LrMoKegF586eNCtPnXffa5nf8qxY26qyzvugBde8Ky+cLZ3716MMVSuXNnrUvxi7969zJo1i7S0ND755BOOHTtG5cqVSU5Opnv37nTo0IESJUp4XWZQUtCLz/XoAUuXujH1Z5xsqU8vPnL48GFmz55NWloa6enp/Pzzz1xyySV06dKFHj160KVLF8qUKeN1mUHDk/noJbylpLg8P2cus3btYN06+OEHL8qSMFKmTBl69+5Namoq+/fvJz09nZSUFBYsWEDfvn2pWLEi06ZN87rMkKegl/O64Qa45JJcpkTQvDfiByVKlKBz585MmTKFXbt2kZGRQb169XjiiSfIzMz0uryQpqCX8ypZ0l1vffttOGN0XUKCe1LTIYifREZG0qpVK/785z+zbds2Zs+e7XVJIU1BLxeUkgKHDrnpi0+JidH89BIQ3bt3p2rVqkwoxgvT+4KCXi6oQweoVOk87Zu1a+HHH70oS4qJ6Oho7rnnHj766CPN518ECnq5oKgo6N3bLTGYdd+Ooz69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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -343,7 +343,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 11, "metadata": {}, "outputs": [], "source": [ @@ -352,7 +352,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 12, "metadata": {}, "outputs": [], "source": [ @@ -366,7 +366,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 13, "metadata": {}, "outputs": [], "source": [ @@ -378,19 +378,19 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.2 1.000000\n", - "0.3 0.327398\n", - "0.4 0.034324\n", + "0.3 0.196129\n", + "0.4 0.046583\n", "Name: Out A, dtype: float64" ] }, - "execution_count": 13, + "execution_count": 14, "metadata": {}, "output_type": "execute_result" } @@ -401,16 +401,16 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "0.03432399872756332" + "0.04658301849747119" ] }, - "execution_count": 14, + "execution_count": 15, "metadata": {}, "output_type": "execute_result" } @@ -421,16 +421,16 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "0.03432399872756332" + "0.04658301849747119" ] }, - "execution_count": 15, + "execution_count": 16, "metadata": {}, "output_type": "execute_result" } @@ -441,7 +441,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 17, "metadata": {}, "outputs": [], "source": [ @@ -459,21 +459,21 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "{(,\n", - " ): 0.27223230490018147,\n", - " (,\n", - " ): 0.20161290322580644,\n", - " (,\n", - " ): 0.4020100502512563}" + "{(,\n", + " ): 0.2012342366514623,\n", + " (,\n", + " ): 0.20868484148832256,\n", + " (,\n", + " ): 0.2328636255075233}" ] }, - "execution_count": 17, + "execution_count": 18, "metadata": {}, "output_type": "execute_result" } @@ -488,20 +488,20 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "State Interface \n", - "A 0.0\n", " A\n", " NaN\n", - " 0\n", - " 0\n", + " 0.230536\n", + " 0.200239\n", " \n", " \n", " B\n", - " 0.440559\n", + " 0.214964\n", " NaN\n", - " 0.106893\n", + " 0.219591\n", " \n", " \n", " C\n", - " 0.0589411\n", - " 0.26973\n", + " 0.113278\n", + " 0.159743\n", " NaN\n", " \n", " \n", @@ -572,13 +572,13 @@ "" ], "text/plain": [ - " A B C\n", - "A NaN 0 0\n", - "B 0.440559 NaN 0.106893\n", - "C 0.0589411 0.26973 NaN" + " A B C\n", + "A NaN 0.230536 0.200239\n", + "B 0.214964 NaN 0.219591\n", + "C 0.113278 0.159743 NaN" ] }, - "execution_count": 19, + "execution_count": 20, "metadata": {}, "output_type": "execute_result" } @@ -595,7 +595,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 21, "metadata": {}, "outputs": [ { @@ -627,39 +627,39 @@ " \n", " \n", " (A, B)\n", - " 0.000000\n", - " 0.000000\n", - " 0.000000\n", + " 0.009900\n", + " 0.039749\n", + " 0.230536\n", " \n", " \n", " (A, C)\n", - " 0.000000\n", - " 0.000000\n", - " 0.000000\n", + " 0.001691\n", + " 0.059599\n", + " 0.200239\n", " \n", " \n", " (B, A)\n", - " 0.000000\n", - " 0.000000\n", - " 0.440559\n", + " 0.008955\n", + " 0.013034\n", + " 0.214964\n", " \n", " \n", " (B, C)\n", - " 0.000000\n", - " 0.000000\n", - " 0.106893\n", + " 0.013432\n", + " 0.044973\n", + " 0.219591\n", " \n", " \n", " (C, A)\n", - " 0.000000\n", - " 0.000000\n", - " 0.058941\n", + " 0.005224\n", + " 0.019750\n", + " 0.113278\n", " \n", " \n", " (C, B)\n", - " 0.025974\n", - " 0.022977\n", - " 0.269730\n", + " 0.004079\n", + " 0.046316\n", + " 0.159743\n", " \n", " \n", "\n", @@ -667,15 +667,15 @@ ], "text/plain": [ " 0 1 2\n", - "(A, B) 0.000000 0.000000 0.000000\n", - "(A, C) 0.000000 0.000000 0.000000\n", - "(B, A) 0.000000 0.000000 0.440559\n", - "(B, C) 0.000000 0.000000 0.106893\n", - "(C, A) 0.000000 0.000000 0.058941\n", - "(C, B) 0.025974 0.022977 0.269730" + "(A, B) 0.009900 0.039749 0.230536\n", + "(A, C) 0.001691 0.059599 0.200239\n", + "(B, A) 0.008955 0.013034 0.214964\n", + "(B, C) 0.013432 0.044973 0.219591\n", + "(C, A) 0.005224 0.019750 0.113278\n", + "(C, B) 0.004079 0.046316 0.159743" ] }, - "execution_count": 20, + "execution_count": 21, "metadata": {}, "output_type": "execute_result" } @@ -705,7 +705,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 22, "metadata": {}, "outputs": [], "source": [ @@ -725,7 +725,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 23, "metadata": {}, "outputs": [], "source": [ @@ -735,12 +735,12 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 24, "metadata": {}, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -760,7 +760,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 25, "metadata": {}, "outputs": [], "source": [ @@ -769,7 +769,7 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 26, "metadata": { "scrolled": true }, @@ -780,13 +780,13 @@ "(0.0, 1.0)" ] }, - "execution_count": 25, + "execution_count": 26, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -808,7 +808,7 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 27, "metadata": {}, "outputs": [ { @@ -817,13 +817,13 @@ "(0.0, 1.0)" ] }, - "execution_count": 26, + "execution_count": 27, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -852,12 +852,12 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 28, "metadata": {}, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -877,12 +877,12 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 29, "metadata": {}, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -926,7 +926,7 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 30, "metadata": { "scrolled": true }, @@ -937,18 +937,18 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 31, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "repex ran 21.600% (expected 22.39%) of the cycles with acceptance 44/216 (20.37%)\n", - "shooting ran 44.800% (expected 44.78%) of the cycles with acceptance 343/448 (76.56%)\n", - "pathreversal ran 27.000% (expected 24.88%) of the cycles with acceptance 250/270 (92.59%)\n", - "minus ran 2.400% (expected 2.99%) of the cycles with acceptance 23/24 (95.83%)\n", - "ms_outer_shooting ran 4.200% (expected 4.98%) of the cycles with acceptance 33/42 (78.57%)\n" + "repex ran 22.284% (expected 22.39%) of the cycles with acceptance 943/4479 (21.05%)\n", + "shooting ran 44.502% (expected 44.78%) of the cycles with acceptance 6624/8945 (74.05%)\n", + "pathreversal ran 25.687% (expected 24.88%) of the cycles with acceptance 4488/5163 (86.93%)\n", + "minus ran 2.900% (expected 2.99%) of the cycles with acceptance 563/583 (96.57%)\n", + "ms_outer_shooting ran 4.627% (expected 4.98%) of the cycles with acceptance 643/930 (69.14%)\n" ] } ], @@ -958,22 +958,22 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 32, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "OneWayShootingMover Out A 0 ran 4.300% (expected 4.98%) of the cycles with acceptance 29/43 (67.44%)\n", - "OneWayShootingMover Out A 1 ran 4.400% (expected 4.98%) of the cycles with acceptance 38/44 (86.36%)\n", - "OneWayShootingMover Out A 2 ran 5.100% (expected 4.98%) of the cycles with acceptance 36/51 (70.59%)\n", - "OneWayShootingMover Out B 0 ran 6.100% (expected 4.98%) of the cycles with acceptance 51/61 (83.61%)\n", - "OneWayShootingMover Out B 1 ran 6.000% (expected 4.98%) of the cycles with acceptance 44/60 (73.33%)\n", - "OneWayShootingMover Out B 2 ran 5.100% (expected 4.98%) of the cycles with acceptance 34/51 (66.67%)\n", - "OneWayShootingMover Out C 0 ran 4.300% (expected 4.98%) of the cycles with acceptance 38/43 (88.37%)\n", - "OneWayShootingMover Out C 1 ran 5.600% (expected 4.98%) of the cycles with acceptance 45/56 (80.36%)\n", - "OneWayShootingMover Out C 2 ran 3.900% (expected 4.98%) of the cycles with acceptance 28/39 (71.79%)\n" + "OneWayShootingMover Out A 0 ran 5.030% (expected 4.98%) of the cycles with acceptance 854/1011 (84.47%)\n", + "OneWayShootingMover Out A 1 ran 5.000% (expected 4.98%) of the cycles with acceptance 753/1005 (74.93%)\n", + "OneWayShootingMover Out A 2 ran 5.080% (expected 4.98%) of the cycles with acceptance 655/1021 (64.15%)\n", + "OneWayShootingMover Out B 0 ran 4.990% (expected 4.98%) of the cycles with acceptance 814/1003 (81.16%)\n", + "OneWayShootingMover Out B 1 ran 5.010% (expected 4.98%) of the cycles with acceptance 745/1007 (73.98%)\n", + "OneWayShootingMover Out B 2 ran 4.891% (expected 4.98%) of the cycles with acceptance 643/983 (65.41%)\n", + "OneWayShootingMover Out C 0 ran 4.607% (expected 4.98%) of the cycles with acceptance 783/926 (84.56%)\n", + "OneWayShootingMover Out C 1 ran 4.826% (expected 4.98%) of the cycles with acceptance 709/970 (73.09%)\n", + "OneWayShootingMover Out C 2 ran 5.070% (expected 4.98%) of the cycles with acceptance 668/1019 (65.55%)\n" ] } ], @@ -983,16 +983,16 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": 33, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Minus ran 0.600% (expected 1.00%) of the cycles with acceptance 6/6 (100.00%)\n", - "Minus ran 0.900% (expected 1.00%) of the cycles with acceptance 9/9 (100.00%)\n", - "Minus ran 0.900% (expected 1.00%) of the cycles with acceptance 8/9 (88.89%)\n" + "Minus ran 0.930% (expected 1.00%) of the cycles with acceptance 180/187 (96.26%)\n", + "Minus ran 0.965% (expected 1.00%) of the cycles with acceptance 188/194 (96.91%)\n", + "Minus ran 1.005% (expected 1.00%) of the cycles with acceptance 195/202 (96.53%)\n" ] } ], @@ -1002,22 +1002,22 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 34, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "ReplicaExchange ran 2.200% (expected 2.49%) of the cycles with acceptance 7/22 (31.82%)\n", - "ReplicaExchange ran 2.400% (expected 2.49%) of the cycles with acceptance 0/24 (0.00%)\n", - "ReplicaExchange ran 2.300% (expected 2.49%) of the cycles with acceptance 2/23 (8.70%)\n", - "ReplicaExchange ran 1.900% (expected 2.49%) of the cycles with acceptance 2/19 (10.53%)\n", - "ReplicaExchange ran 2.100% (expected 2.49%) of the cycles with acceptance 14/21 (66.67%)\n", - "ReplicaExchange ran 3.000% (expected 2.49%) of the cycles with acceptance 7/30 (23.33%)\n", - "ReplicaExchange ran 2.600% (expected 2.49%) of the cycles with acceptance 0/26 (0.00%)\n", - "ReplicaExchange ran 3.100% (expected 2.49%) of the cycles with acceptance 6/31 (19.35%)\n", - "ReplicaExchange ran 2.000% (expected 2.49%) of the cycles with acceptance 6/20 (30.00%)\n" + "ReplicaExchange ran 2.393% (expected 2.49%) of the cycles with acceptance 107/481 (22.25%)\n", + "ReplicaExchange ran 2.517% (expected 2.49%) of the cycles with acceptance 137/506 (27.08%)\n", + "ReplicaExchange ran 2.468% (expected 2.49%) of the cycles with acceptance 83/496 (16.73%)\n", + "ReplicaExchange ran 2.318% (expected 2.49%) of the cycles with acceptance 63/466 (13.52%)\n", + "ReplicaExchange ran 2.463% (expected 2.49%) of the cycles with acceptance 114/495 (23.03%)\n", + "ReplicaExchange ran 2.502% (expected 2.49%) of the cycles with acceptance 138/503 (27.44%)\n", + "ReplicaExchange ran 2.373% (expected 2.49%) of the cycles with acceptance 97/477 (20.34%)\n", + "ReplicaExchange ran 2.711% (expected 2.49%) of the cycles with acceptance 98/545 (17.98%)\n", + "ReplicaExchange ran 2.537% (expected 2.49%) of the cycles with acceptance 106/510 (20.78%)\n" ] } ], @@ -1027,23 +1027,23 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": 35, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "PathReversal ran 2.800% (expected 2.49%) of the cycles with acceptance 28/28 (100.00%)\n", - "PathReversal ran 2.300% (expected 2.49%) of the cycles with acceptance 23/23 (100.00%)\n", - "PathReversal ran 2.600% (expected 2.49%) of the cycles with acceptance 26/26 (100.00%)\n", - "PathReversal ran 3.100% (expected 2.49%) of the cycles with acceptance 31/31 (100.00%)\n", - "PathReversal ran 2.100% (expected 2.49%) of the cycles with acceptance 21/21 (100.00%)\n", - "PathReversal ran 2.800% (expected 2.49%) of the cycles with acceptance 19/28 (67.86%)\n", - "PathReversal ran 2.500% (expected 2.49%) of the cycles with acceptance 24/25 (96.00%)\n", - "PathReversal ran 2.900% (expected 2.49%) of the cycles with acceptance 28/29 (96.55%)\n", - "PathReversal ran 2.700% (expected 2.49%) of the cycles with acceptance 18/27 (66.67%)\n", - "PathReversal ran 3.200% (expected 2.49%) of the cycles with acceptance 32/32 (100.00%)\n" + "PathReversal ran 2.597% (expected 2.49%) of the cycles with acceptance 516/522 (98.85%)\n", + "PathReversal ran 2.597% (expected 2.49%) of the cycles with acceptance 468/522 (89.66%)\n", + "PathReversal ran 2.582% (expected 2.49%) of the cycles with acceptance 314/519 (60.50%)\n", + "PathReversal ran 2.706% (expected 2.49%) of the cycles with acceptance 527/544 (96.88%)\n", + "PathReversal ran 2.677% (expected 2.49%) of the cycles with acceptance 504/538 (93.68%)\n", + "PathReversal ran 2.408% (expected 2.49%) of the cycles with acceptance 288/484 (59.50%)\n", + "PathReversal ran 2.537% (expected 2.49%) of the cycles with acceptance 505/510 (99.02%)\n", + "PathReversal ran 2.592% (expected 2.49%) of the cycles with acceptance 492/521 (94.43%)\n", + "PathReversal ran 2.463% (expected 2.49%) of the cycles with acceptance 366/495 (73.94%)\n", + "PathReversal ran 2.527% (expected 2.49%) of the cycles with acceptance 508/508 (100.00%)\n" ] } ], @@ -1062,7 +1062,7 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": 36, "metadata": {}, "outputs": [], "source": [ @@ -1078,7 +1078,7 @@ }, { "cell_type": "code", - "execution_count": 36, + "execution_count": 37, "metadata": {}, "outputs": [ { @@ -1102,267 +1102,282 @@ " \n", " \n", " \n", - " 11\n", - " 6\n", - " 7\n", - " 8\n", - " 12\n", - " 5\n", - " 4\n", - " 3\n", - " 10\n", - " 9\n", - " 0\n", - " 1\n", - " 2\n", + " Out C minus\n", + " Out B minus\n", + " Out C 0\n", + " Out B 0\n", + " Out C 1\n", + " Out B 1\n", + " Out C 2\n", + " Out B 2\n", + " [UnionEnsemble]\n", + " Out A 2\n", + " Out A 1\n", + " Out A 0\n", + " Out A minus\n", " \n", " \n", " \n", " \n", - " 11\n", + " Out C minus\n", + " 0.000000\n", + " 0.000000\n", + " 0.038522\n", + " 0.000000\n", + " 0.000000\n", " 0.000000\n", - " 0.033333\n", " 0.000000\n", " 0.000000\n", - " 0.000\n", " 0.000000\n", " 0.000000\n", " 0.000000\n", - " 0.0000\n", - " 0.000\n", " 0.000000\n", " 0.000000\n", - " 0.0\n", " \n", " \n", - " 6\n", - " 0.033333\n", + " Out B minus\n", + " 0.000000\n", + " 0.000000\n", + " 0.000000\n", + " 0.037139\n", + " 0.000000\n", + " 0.000000\n", " 0.000000\n", - " 0.058333\n", " 0.000000\n", - " 0.000\n", " 0.000000\n", " 0.000000\n", " 0.000000\n", - " 0.0000\n", - " 0.000\n", " 0.000000\n", " 0.000000\n", - " 0.0\n", " \n", " \n", - " 7\n", + " Out C 0\n", + " 0.038522\n", + " 0.000000\n", + " 0.000000\n", + " 0.000000\n", + " 0.022521\n", + " 0.000000\n", " 0.000000\n", - " 0.058333\n", " 0.000000\n", - " 0.029167\n", - " 0.000\n", " 0.000000\n", " 0.000000\n", " 0.000000\n", - " 0.0000\n", - " 0.000\n", " 0.000000\n", " 0.000000\n", - " 0.0\n", " \n", " \n", - " 8\n", + " Out B 0\n", + " 0.000000\n", + " 0.037139\n", " 0.000000\n", " 0.000000\n", - " 0.029167\n", " 0.000000\n", - " 0.025\n", + " 0.016397\n", + " 0.000000\n", + " 0.000000\n", " 0.000000\n", " 0.000000\n", " 0.000000\n", - " 0.0000\n", - " 0.000\n", " 0.000000\n", " 0.000000\n", - " 0.0\n", " \n", " \n", - " 12\n", + " Out C 1\n", + " 0.000000\n", + " 0.000000\n", + " 0.022521\n", + " 0.000000\n", " 0.000000\n", " 0.000000\n", + " 0.027262\n", + " 0.000000\n", " 0.000000\n", - " 0.025000\n", - " 0.000\n", - " 0.025000\n", " 0.000000\n", " 0.000000\n", - " 0.0000\n", - " 0.000\n", " 0.000000\n", " 0.000000\n", - " 0.0\n", " \n", " \n", - " 5\n", + " Out B 1\n", + " 0.000000\n", + " 0.000000\n", " 0.000000\n", + " 0.016397\n", " 0.000000\n", " 0.000000\n", " 0.000000\n", - " 0.025\n", + " 0.012446\n", + " 0.000000\n", " 0.000000\n", - " 0.008333\n", " 0.000000\n", - " 0.0000\n", - " 0.000\n", " 0.000000\n", " 0.000000\n", - " 0.0\n", " \n", " \n", - " 4\n", + " Out C 2\n", + " 0.000000\n", " 0.000000\n", " 0.000000\n", " 0.000000\n", + " 0.027262\n", + " 0.000000\n", + " 0.000000\n", + " 0.000000\n", + " 0.020940\n", " 0.000000\n", - " 0.000\n", - " 0.008333\n", " 0.000000\n", - " 0.008333\n", - " 0.0000\n", - " 0.000\n", " 0.000000\n", " 0.000000\n", - " 0.0\n", " \n", " \n", - " 3\n", + " Out B 2\n", + " 0.000000\n", + " 0.000000\n", + " 0.000000\n", " 0.000000\n", " 0.000000\n", + " 0.012446\n", " 0.000000\n", " 0.000000\n", - " 0.000\n", + " 0.019360\n", " 0.000000\n", - " 0.008333\n", " 0.000000\n", - " 0.0375\n", - " 0.000\n", " 0.000000\n", " 0.000000\n", - " 0.0\n", " \n", " \n", - " 10\n", + " [UnionEnsemble]\n", " 0.000000\n", " 0.000000\n", " 0.000000\n", " 0.000000\n", - " 0.000\n", " 0.000000\n", " 0.000000\n", - " 0.037500\n", - " 0.0000\n", - " 0.000\n", + " 0.020940\n", + " 0.019360\n", + " 0.000000\n", + " 0.019162\n", + " 0.000000\n", " 0.000000\n", " 0.000000\n", - " 0.0\n", " \n", " \n", - " 9\n", + " Out A 2\n", + " 0.000000\n", + " 0.000000\n", + " 0.000000\n", " 0.000000\n", " 0.000000\n", " 0.000000\n", " 0.000000\n", - " 0.000\n", " 0.000000\n", + " 0.019162\n", " 0.000000\n", + " 0.027064\n", " 0.000000\n", - " 0.0000\n", - " 0.000\n", - " 0.025000\n", " 0.000000\n", - " 0.0\n", " \n", " \n", - " 0\n", + " Out A 1\n", + " 0.000000\n", + " 0.000000\n", " 0.000000\n", " 0.000000\n", " 0.000000\n", " 0.000000\n", - " 0.000\n", " 0.000000\n", " 0.000000\n", " 0.000000\n", - " 0.0000\n", - " 0.025\n", + " 0.027064\n", + " 0.000000\n", + " 0.021138\n", " 0.000000\n", - " 0.029167\n", - " 0.0\n", " \n", " \n", - " 1\n", + " Out A 0\n", + " 0.000000\n", " 0.000000\n", " 0.000000\n", " 0.000000\n", " 0.000000\n", - " 0.000\n", " 0.000000\n", " 0.000000\n", " 0.000000\n", - " 0.0000\n", - " 0.000\n", - " 0.029167\n", " 0.000000\n", - " 0.0\n", + " 0.000000\n", + " 0.021138\n", + " 0.000000\n", + " 0.035559\n", " \n", " \n", - " 2\n", + " Out A minus\n", + " 0.000000\n", + " 0.000000\n", " 0.000000\n", " 0.000000\n", " 0.000000\n", " 0.000000\n", - " 0.000\n", " 0.000000\n", " 0.000000\n", " 0.000000\n", - " 0.0000\n", - " 0.000\n", " 0.000000\n", " 0.000000\n", - " 0.0\n", + " 0.035559\n", + " 0.000000\n", " \n", " \n", "\n", "" ], "text/plain": [ - " 11 6 7 8 12 5 4 \\\n", - "11 0.000000 0.033333 0.000000 0.000000 0.000 0.000000 0.000000 \n", - "6 0.033333 0.000000 0.058333 0.000000 0.000 0.000000 0.000000 \n", - "7 0.000000 0.058333 0.000000 0.029167 0.000 0.000000 0.000000 \n", - "8 0.000000 0.000000 0.029167 0.000000 0.025 0.000000 0.000000 \n", - "12 0.000000 0.000000 0.000000 0.025000 0.000 0.025000 0.000000 \n", - "5 0.000000 0.000000 0.000000 0.000000 0.025 0.000000 0.008333 \n", - "4 0.000000 0.000000 0.000000 0.000000 0.000 0.008333 0.000000 \n", - "3 0.000000 0.000000 0.000000 0.000000 0.000 0.000000 0.008333 \n", - "10 0.000000 0.000000 0.000000 0.000000 0.000 0.000000 0.000000 \n", - "9 0.000000 0.000000 0.000000 0.000000 0.000 0.000000 0.000000 \n", - "0 0.000000 0.000000 0.000000 0.000000 0.000 0.000000 0.000000 \n", - "1 0.000000 0.000000 0.000000 0.000000 0.000 0.000000 0.000000 \n", - "2 0.000000 0.000000 0.000000 0.000000 0.000 0.000000 0.000000 \n", + " Out C minus Out B minus Out C 0 Out B 0 Out C 1 \\\n", + "Out C minus 0.000000 0.000000 0.038522 0.000000 0.000000 \n", + "Out B minus 0.000000 0.000000 0.000000 0.037139 0.000000 \n", + "Out C 0 0.038522 0.000000 0.000000 0.000000 0.022521 \n", + "Out B 0 0.000000 0.037139 0.000000 0.000000 0.000000 \n", + "Out C 1 0.000000 0.000000 0.022521 0.000000 0.000000 \n", + "Out B 1 0.000000 0.000000 0.000000 0.016397 0.000000 \n", + "Out C 2 0.000000 0.000000 0.000000 0.000000 0.027262 \n", + "Out B 2 0.000000 0.000000 0.000000 0.000000 0.000000 \n", + "[UnionEnsemble] 0.000000 0.000000 0.000000 0.000000 0.000000 \n", + "Out A 2 0.000000 0.000000 0.000000 0.000000 0.000000 \n", + "Out A 1 0.000000 0.000000 0.000000 0.000000 0.000000 \n", + "Out A 0 0.000000 0.000000 0.000000 0.000000 0.000000 \n", + "Out A minus 0.000000 0.000000 0.000000 0.000000 0.000000 \n", + "\n", + " Out B 1 Out C 2 Out B 2 [UnionEnsemble] Out A 2 \\\n", + "Out C minus 0.000000 0.000000 0.000000 0.000000 0.000000 \n", + "Out B minus 0.000000 0.000000 0.000000 0.000000 0.000000 \n", + "Out C 0 0.000000 0.000000 0.000000 0.000000 0.000000 \n", + "Out B 0 0.016397 0.000000 0.000000 0.000000 0.000000 \n", + "Out C 1 0.000000 0.027262 0.000000 0.000000 0.000000 \n", + "Out B 1 0.000000 0.000000 0.012446 0.000000 0.000000 \n", + "Out C 2 0.000000 0.000000 0.000000 0.020940 0.000000 \n", + "Out B 2 0.012446 0.000000 0.000000 0.019360 0.000000 \n", + "[UnionEnsemble] 0.000000 0.020940 0.019360 0.000000 0.019162 \n", + "Out A 2 0.000000 0.000000 0.000000 0.019162 0.000000 \n", + "Out A 1 0.000000 0.000000 0.000000 0.000000 0.027064 \n", + "Out A 0 0.000000 0.000000 0.000000 0.000000 0.000000 \n", + "Out A minus 0.000000 0.000000 0.000000 0.000000 0.000000 \n", "\n", - " 3 10 9 0 1 2 \n", - "11 0.000000 0.0000 0.000 0.000000 0.000000 0.0 \n", - "6 0.000000 0.0000 0.000 0.000000 0.000000 0.0 \n", - "7 0.000000 0.0000 0.000 0.000000 0.000000 0.0 \n", - "8 0.000000 0.0000 0.000 0.000000 0.000000 0.0 \n", - "12 0.000000 0.0000 0.000 0.000000 0.000000 0.0 \n", - "5 0.000000 0.0000 0.000 0.000000 0.000000 0.0 \n", - "4 0.008333 0.0000 0.000 0.000000 0.000000 0.0 \n", - "3 0.000000 0.0375 0.000 0.000000 0.000000 0.0 \n", - "10 0.037500 0.0000 0.000 0.000000 0.000000 0.0 \n", - "9 0.000000 0.0000 0.000 0.025000 0.000000 0.0 \n", - "0 0.000000 0.0000 0.025 0.000000 0.029167 0.0 \n", - "1 0.000000 0.0000 0.000 0.029167 0.000000 0.0 \n", - "2 0.000000 0.0000 0.000 0.000000 0.000000 0.0 " + " Out A 1 Out A 0 Out A minus \n", + "Out C minus 0.000000 0.000000 0.000000 \n", + "Out B minus 0.000000 0.000000 0.000000 \n", + "Out C 0 0.000000 0.000000 0.000000 \n", + "Out B 0 0.000000 0.000000 0.000000 \n", + "Out C 1 0.000000 0.000000 0.000000 \n", + "Out B 1 0.000000 0.000000 0.000000 \n", + "Out C 2 0.000000 0.000000 0.000000 \n", + "Out B 2 0.000000 0.000000 0.000000 \n", + "[UnionEnsemble] 0.000000 0.000000 0.000000 \n", + "Out A 2 0.027064 0.000000 0.000000 \n", + "Out A 1 0.000000 0.021138 0.000000 \n", + "Out A 0 0.021138 0.000000 0.035559 \n", + "Out A minus 0.000000 0.035559 0.000000 " ] }, - "execution_count": 36, + "execution_count": 37, "metadata": {}, "output_type": "execute_result" } @@ -1384,27 +1399,26 @@ }, { "cell_type": "code", - "execution_count": 37, + "execution_count": 38, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "/Users/dwhs/miniconda3/envs/dev/lib/python3.7/site-packages/networkx/drawing/nx_pylab.py:611: MatplotlibDeprecationWarning: isinstance(..., numbers.Number)\n", - " if cb.is_numlike(alpha):\n" + "/Users/dwhs/miniconda3/envs/dev/lib/python3.7/site-packages/networkx/drawing/nx_pylab.py:579: MatplotlibDeprecationWarning: \n", + "The iterable function was deprecated in Matplotlib 3.1 and will be removed in 3.3. Use np.iterable instead.\n", + " if not cb.iterable(width):\n" ] }, { "data": { - "image/png": "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\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAV0AAADnCAYAAAC9roUQAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nO3deXSU1cE/8O+sTCYQzQgaCIQ0YQ1BoMSqxNYuAVGrUpceqUdle7H2bQUDbqCNsVpQhKbWpdiG5LRyWKz9VRSLGF9rxYIYC5YETAkhBJOomARCSCaz3d8flwSSzExmeZ55JjPfzzlzIs/M3LkTk2/u3FUnhAAREUWGXusKEBHFE4YuEVEEMXSJiCKIoUtEFEEMXSKiCDL6u3Po0KEiPT09QlUhIooNn3zyyddCiGHe7vMbuunp6SgvL1enVkREMUqn0x3zdR+7F4iIIoihS0QUQX67F+KeywXU1gJ2O2CxAOnpgJHfMiIKHROkt6YmYMMGoKQEOHIEMJkAgwFwuwGHAxgzBpg/H1i4ELDZtK4tEQ0w7F7o4nAAK1cCI0cCBQXAoUPy2pkzQGur/Op0yusFBUBqqny8w6F1zYloAGHoAkBdHZCdDRQVya6Ejg7/j+/okI8rKpLPq6uLTD2JaMBj6NbVATk5QE0N0N4e3HPb2+XzcnIYvEQUEM1C1+UCqquBigr51eXSoBIOB5CXBzQ3yz7bULjd8vl5ebL7gYjIj4iGblMTsGYNkJUFJCYCU6cCubnyq9Uqr69ZIzMsIgoLgfr60AO3i9styyksVKZeRBSzdP42Mc/JyRFKrEhzOGQerVsH6HT+u0wTEgAhgPx8OV5lNof98t41NUGMHAmd3a5cmRaLDF/OaiCKazqd7hMhRI63+1SfMlZXJz9519fLsaf+dAVyURHw6qtAWRmQlhbaa3d0dOD48eOoq6vrcTt27Bhmffopfm63IzG0or3T6YDiYuCBB5QslYhiiKot3a4xqlC7TA0G2WgsL+8bvB6PBydOnOgO0d7BWldXhxMnTvgsuwLApOCr1L+sLKCyUo2SiWiA0KSlq9QYVVOTB5dddhr/8z9FqK+v7Q7U48ePo7OzM6RyDQDGhFalfonDh6FzuQbeyjWuviOKCNV+q5Qao/J49PjqKwOeekoPoFSJqiEdgAPAIEVK6+mM04lrR43CkGnTMHnyZEyePBmXXnopJkyYALNqHdQh4uo7oohTpXuhqUku7FJyjAroAJAKoCXskiYB+BDABWGX1NcpALkAencwGI1GjB8/vjuIu26jR4+GTqdToSZ+ROXIJlHsiHj3woYN8ndZWR4ACwCsDbskO9SbK2c4W35vLpcLlZWVqKysxObNm7uvDxkyBNnZ2bj00kt7hHFycrI6FdRyZJOI1GnpZmXJLQqUVwkgO+xSDADOQJ3uhU4AiQDC7FVBampqjxDu6qIYNCiMWqs5sklE3fy1dBUPXZdLLnxQZx8YpSJNvdkLyvxZ8M5gMPjsotDr+2m7Oxxyn4iamvA62g0GICNDztAwmUIvhyiGRbR7obZW/i6qE7pOyGGwI2GXVArgcUDRebp2vR7/LykJOHlSwVLPcbvdOHjwIA4ePIgtW7Z0Xx88eDCys7O7W8RdYWw7f/BLjdV3Tz4ZXllEcUjxlm5FhVza29oabtW88TVMFbxkAPUAEsIu6TxnV6SdMhhQUVGBAwcO9LidVCmMfRkxYgQmT56My8eMwWMvvwyjkntDcPUdkU8RbelaLOE3pnzzNUzl20UXXYS0tDSkpaVh9OjR3f+dlpYG18aNEMXF0AW7u5g3Vitw//2AzYYLAOTm5iI3N7f7biEE6uvr8Z///KdHEB86dAhOlTbKaWhoQENDAya//TY6ofD/bK6+IwrJgO7TNZvNGDVqVI8gPf82atQoJCb66UCIgn5Op9OJ//73vz2C+D//+Q+OHfN5mGjQuPqOKLIiOpAGqDd74ZJLvsbzz/+jO1Qvvvji/geQ+hOlI/qtra1euyhaWoKbp6zmTA2YzfJEDa5cI+oh4vN058+X8+j7O4AhGAkJwPLlQ3HrrbcqVyggg7K8/Nzc1WC6GqxWeWyPCnNXk5KSMGPGDMyYMaP7mhACDQ0NXrsoHD4+WqRDvdV3MJnkyOkYtRZVE8UeVVq6zc0yiwbUronBrNKyWgGPB1i2TP510XjqlNPpxOHDh/u0io8eParq6jskJQEffii7aIioW8S7FwB5ZmNRUfAn4HjTNUYVkRlKzc1ygKi0VB5pcf5+BE7nuf0IFiyI+pH706dPo3rHDmTfeSdMIW4O5FdiIrB/P1u6RL1oErpRMEYVvljYeUvFkU2XXo+Wzz/HsOHDFS+baCDzF7qqHddjNsuuTptNBmcousaoyso0+gRvNMpWXHa2/DrQAheQdc7MVKXoKo8HGePGobCwEKdPn1blNYhijapnpHWNUWVkyC6CYFit8nlc5q+A+fPlSKSCzgDYAKCtrQ2PP/44MjMz8dxzz4W8xzFRvFD9YMq0NLlKbelS+Qm9v999q1U+7v77ZZcCA1cBCxfK7RkVpAdQct6/T5w4gSVLlmDChAl45ZVX4FZvhQzRgBaR04DNZuCpp84t2c/KktcSE+UAeGKi/HdW1rktAp58UvNJAbHDZpP74Qb7ccOHMwCehfedjWtra3HnnXdi2rRp2L59O/yNGRDFo4icBuxNLIxRDSgKjWy6ANRArnBzBfD4q666CqtXr+6xJJoo1mkykNafWBijGlAUGNn06PU4ZTAgD4EFLgDs2rULV111FW688UZUVFSE9LpEsUSz0CUNhDmyqc/MRFJVFR5dvx4jRowI6ulvvPEGLr30Utx9992K7itBNNAwdONNmCObpsxMLF68GIcPH8bq1atx4YUXBvzSQgj86U9/wrhx47B06VKcOHEizDdDNPBo1qdLUUCB1XctLS14+umn8dvf/hb2INd9Dx48GMuXL0d+fj6GDBmiwBsiig6arEijASbMkc36+no88cQTKC4uDnq62LBhw/Doo4/innvuCe8MOKIoEZUDaRRlwhzZTE1Nxfr163Hw4EHcdtttQT239xxfj8cT+JNdLtlKr6iQX12BDvERaYOhS4oaN24ctm7dio8//hh5eXlBPTfgOb5NTcCaNXJid2IiMHWqPCNq6lTZB52VJe9vblbgHREpTAjh8zZ9+nRBFI533nlHTJ8+XQAI+vbtb39bfPjhh+cK6+wUYsUKISwWIRIShJDr7LzfEhLk41askM8jiiAA5cJHrrKlS6rKy8vD3r17sXXrVowdOzao537wwQfIzc3FTTfdhKp33pFdH0VFst+5vx3yOzrk44qK5PPq6sJ4F0TKYeiS6vR6PW677TZUVlZi/fr1GB7kVpD7tm1D8qxZcFdXB79Bc3u7XIWXk8PgpajA0KWIMZlMWLx4MaqrqwOe42sCUAbABsAQ6j4Obrfs383Lk1PhiDTE0KWIs1qteOihh1BTU4OHHnoIFovF52MLAKRCgcP83O5zOy4RaYihS5pJTk7G6tWrUV1djcWLF8PQa08IG4B8AIlKvWB7O7B2LWc1kKYYuqS5rjm+lZWVPeb4LgAQxIzdwOh0chUekUYYuhQ1xo8fj61bt2Lv3r34wQ9+gHlQsJXbpaNDLnsm0gg3VKSoc9lll6Fsxw54EhLUWWHWtXKN+4mSBtjSpehUWwu9WvswmExynwkiDTB0KTrZ7aEfI90fg0GWT6QBhi5FJ4slrGOF/HK7ZflEGmDoUnRKT1dvIYPTKcsn0gBDl6KT0QhkZqpTNg/lIw0xdCl6zZ/f/3FCwUpIkOUSaYShS9Fr4UK5UaOShJDHDxFphKFL0ctmA/Lzgz+52IdOoxFi2TKf570RRQJDl6JbQQGQmhr29DEXgGMuF37DAzBJYwxdim5mM1BWJlunIQavC0AzgDwAyx5+GJs2bVKyhkRBYehS9EtLA8rLgYyMoLsa2gDUAMgBcPzstbvvvhvvvfeewpUkCgxDlwaGtDR54u/SpXJhQ3+zGqxWeMxmvGAyYRLOBS4AOJ1OzJkzBwcOHFCzxkReMXRp4DCbgaeeOrcZeVaWvJaYCCQlya9ms7xeWAh9YyMuff11CC/dEq2trbj22mtx/PhxLy9EpB6d8DMlJycnR5SXl0ewOkRBcrnk5jV2u2wBp6f3WfiwYcMGLFy40OvTJ02ahF27dgV0dBBRoHQ63SdCiBxv97GlSwOb0ShXmGVn+1xptmDBAjz++ONen15ZWYkf/ehH6OzsVLmiRBJDl+LCL3/5SyxatMjrff/4xz8wb948eDyKn1NB1AdDl+KCTqfDSy+9hOuuu87r/Zs3b8ZDDz0U4VpRPGLoUtwwGo3YsmULcnK8drXh2WefxXPPPRfhWlG8YehSXBk8eDC2b9+OjIwMr/cvXboUr732WoRrRfGEoUtx5+KLL8aOHTswdOjQPvcJIXDHHXfggw8+0KBmFA8YuhSXxo4dizfffBMJXhZZdHZ24qabbsKhQ4c0qBnFOoYuxa3LL78cW7ZsgV7f99egpaUFs2fPRkNDgwY1o1jG0KW4dsMNN+DFF1/0el9dXR2uu+46tLa2RrhWFMsYuhT37rnnHqxcudLrfZ9++iluueUWOByOCNeKYhVDlwjAr371K9x9991e7ysrK8OiRYvgb8k8UaAYukSQiyf+8Ic/YNasWV7v//Of/+yzNUwUDIYu0Vkmkwl/+ctfMG3aNK/3r1q1Ci+99FKEa0WxhqFLdJ4hQ4Zg+/btGD16tNf7f/7zn+P111+PcK0oljB0iXoZPnw4duzYAZuXAyw9Hg9uv/127N69W4OaUSxg6BJ5MWHCBGzbtg0Wi6XPfXa7HTfccAP++9//9rnP5XGhurkaFV9VoLq5Gi6PKxLVpQGk7+ajRAQAyM3NxcaNG3Hrrbf2mbnQ1NSE2bNn41//+hdMSSZs2LcBJftLcKTlCEx6Ewx6A9weNxxuB8bYxmD+1PlY+M2FsCXw+Pd4x5MjiPrxu9/9Dvfdd1/fOwxAyu0pODnhJHQ6HTpcHT7LSDAmQEAg/4p8FHy3AGaDWcUak9Z4cgRRGH7xi1/ggQce6HnxAgA/A74Y/QXsbrvfwAWADlcH7C47ij4qQvaL2ag7VadehSmqMXSJArB69WrMnTtX/uMCAIsBXAggyAZru7MdNS01yHk5h8Ebpxi6RAHQ6/UoKSnB1d+/GrgLgAVA30OGA+IWbjR3NCPvT3lwup1KVpMGAIYuUYAGDRqE6cumQ3eBLuTA7eIWbtSfrkfh+4XKVI4GDIYuUYCa2pvw4r4XIYzK7MHQ7mzH2t1r0dzRrEh5NDAwdIkCtGHfBuigU7RMHXQo3lesaJkU3Ri6RAEq2V/S7yyFYHW4OlC6v1TRMim6MXSJAuDyuHCk5YgqZXPlWnxh6BIFoPZkLUx6kyplm/Qm1J6sVaVsij4MXaIA2F12GPRhTlnwwaA3wO6yq1I2RR+GLlEALEYL3B63KmU7XU5YjH031qHYxNAlCkD6helwetRZyNDR2YG7brwLL7/8Mk6dOqXKa1D0YOgSBeD9996HrkXZ6WLdmoHdH+7GPffcg5SUFPzkJz/Bzp074Xar07ImbTF0ifyorq7GnDlzkJeXh849nYDShwI7AOw790+73Y5NmzbhmmuuwejRo7FixQpUVVUp/KKkJYYukRetra148MEHMWnSpHPH8+wDFF4bIcvb7/2u+vp6rFq1ChMmTMCVV16J9evX4+TJkwpXgCKNoUt0HrfbjeLiYowdOxZr1qyBw3Fe07YDwG4o1to1wQRblU2W2489e/bgpz/9KVJSUjB37ly8/fbb7H4YoBi6RGd98MEHuOyyy7Bo0SJ89dVX3h/0PmBxWaDXhferY9AZkG5LR+OmRuzeLftzL7jggn6f19nZic2bN2P27NlIS0vDI488gs8++yysulBkMXQp7tXW1uLHP/4xvvOd72Dfvn0+H5eeno5XN7+Kzx75DBclXASDLrR5uwadAbYEG8ruKoPZaMYVV1yB3//+92hsbOzuz9Xp+u/HaGhowOrVqzFx4sTuMlpaWkKqE0UOj+uhuNXW1obVq1fj2WefRWdnp8/HJSYmYsWKFcjPz+8+qLLuVB3y/pSH+tP1aHe2B/yaVpMVqUNSUXZXGdIuSPP5uM8//xyvvPIKSktLgxpIGzRoEObMmYN58+Zh5syZMBjUWdBB/vk7roehS3HH4/Fg48aNePjhh9HQ0OD3sXfddRdWrVqFESNG9LnP4Xag8B+FWLdnHXTwf0aa1WSFR3iw7MplKLi6ACZDYEuKhRD46KOPUFpais2bNwc1j3f48OG48847MW/ePEycODHg51H4GLpEZ+3ZswdLlizB3r17/T7uyiuvRFFREb71rW/1W2ZzRzOK9xWjdH8pqpure5wG7PQ4u08DXjBtQVinAXd0dGDbtm0oLS3Fzp074fF4An7ut771LcybNw+33347kpOTQ64DBYahS3Hv888/x8MPP4yNGzf6fdzIkSPx9NNPY+7cuQH1q/bm8rhQe7IWdpcdFqMF6Remw6g3hlptn+rr67u7H4IZSDObzZgzZw7uvvtuzJo1C0ajQnVzuYDaWsBuBywWID0dUKrsAchf6EII4fM2ffp0QTSQnTlzRhQWFgqr1SoA+LwlJCSIgoIC0dbWpnWVg+LxeMSePXvEvffeKy688EK/77H3LSUlRTzwwAOisrIytBf/+mshnnlGiIkThTCbhUhMFCIpSX41meT1Z54RoqlJ2Tc9AAAoFz5ylaFLMcnj8YhNmzaJUaNG9Rs+c+fOFceOHdO6ymHr6OgQW7ZsEddee63Q6/VBBfBll10mXnjhBdEUSEB2dgqxYoUQFosQCQkyRnzdEhLk41askM+LEwxdiisff/yxyM3N7Tdopk+fLnbt2qV1dVVRX18vnn76aTFx4sSgwtdsNotbb71VvPnmm8LpdPYt+NgxIcaOFcJq9R+2vW9Wq3xeDPxxCwRDl+JCY2OjmD9/vtDpdP1+rC4pKRFut1vrKqvO4/GIvXv3ip/97GchdT8sX75cHDhwQBZ27JgQw4YJYTAEF7hdN4NBPj8OgpehS9HN6RTi8GEhDhyQX721sPzo6OgQq1atEoMHD/YbIoMGDRKPPPKIaG1tVemNRLeOjg6xdetWcd111wXd/XDFN78pWoYNE55QA/f84B07VgiHQ+tvh6oYuhR9FBiE8Xg84rXXXhPf+MY3+g2NW265RdTU1ETwDUa3hoYG8cwzz4isrKyAQvdJQLSFE7a9uxpWrtT6W6Aqhi5FD4UGYfbv3y+++93v9hsWU6ZMEe+9954273UA8Hg84uOPPxb/+7//K5KTk71+D22AaFcqcLtuFktMz2pg6FJ0UGAQ5quvvhKLFy/u9+PxsGHDxPr164XL5dL6XQ8YdrtdvPrqq+L6668XBoOh+3u5XMlW7vl/UJ95Ruu3rBp/ocvFERQZdXVATg7Q3AyEsCWhMBjQYbHgMp0OB9vafD7OZDLhvvvuw2OPPRbQrl3kXWNjIzZu3IjS0lJsqazEJDVeJCsLqKxUo2TNcUUaacvhALKzgZqakAK3iwtADYBJZ/+7txtuuAFr167F2LFjQ34N6kk4nRCJidA7VTgfzmwGzpyJyZVr/kKXWzuS+goLgfr6sAIXAIwARgD4Za/rWVlZ2LlzJ7Zt28bAVZju2DHozWZ1CjeZ5NLhOMPQJXU1NQHr1gHtgW9/6M9gAMsBJAOw2Wx4/vnn8emnn2LmzJmKlE+92O2AWttDGgyy/DgTe+16ii4bNgAhbBzjjwfAhtxcfGfbNthsoe/aRQGwWML+hOKT2y3LjzNRFbrcqCgGlZQAHQEcAhaERABzWloABq760tMBNfpzAVluero6ZUcxzbsXmpqANWvkQGZiIjB1KpCbK79arfL6mjVy0JsGGJcLOHJEnbKrq2X5pC6jEcjMVKfsMWPislWlWeg6HMDKlcDIkUBBAXDokLx25gzQ2iq/Op3yekEBkJoqH+9Q6CRWioDaWjlYooY4HYTRxPz5QEKCsmUmJMhy45AmoVtXJ2cQFRXJroT+Pn12dMjHFRXJ59XVRaaeFJ6TX3yBTrVao3E6CKOJhQvlkgYFCSGABQsULXOgiHjods2Rr6kJfkC7vV0+LyeHwRutPB4P3n33XcydOxczvv99OPwc+BiWOB2E0YTNBuTny/4+BZwBsGXkSLSpNRUtykV0cYRCc+RhMAAZGXIxi1qfXik49fX1KC0tRXFxMY4ePQoAMED+gg1S4wVjeGJ9VFJhgcuU6dOxfft2XHLJJUrVMmpEzeIIhebIw+2W5RQWKlMvCo3L5cK2bdtw4403Ii0tDY8++mh34AKAG0C1Wi8ep4MwmjGbgbIy2eoNcd6uMBjQajQiDzJ8P/nkE1x55ZVBHTEfCyIWugrPkUd7O7B2LWc1aOHIkSNYuXIl0tLScNNNN+GNN97weTJtKWRrV1FxPAijqbQ0oLxcfswMtqvBaoUuIwOWAwcw9YYbui8fPXoUM2bMwK5duxSubPSKWOiqMEceOh1QXKxsmeSd3W7Hpk2b8IMf/ABjxozBr3/9azQ2Nvb7vGKo8EMWx4MwmktLAyoqgKVLZZ96f7MarFb5uPvvByorYZ0wAX/9619x7733dj+kubkZeXl5ePXVV1WufJTwtf2YUHhrx4kTld0ZruuWlaVYFcmLAwcOiCVLlgibzdbv3rW+btwAO0Y1NcntGbOy+m5EbzbL62vWeN031+PxiNWrV/f4OdHpdGLdunUavBHlQev9dJ1O+f9AjdA1m4M+3SX2hHncTW+nT58Wf/jDH8Tll18ectCe/4t0/cyZojUlhUe9xLIQfwY3btwoTCZTj5+ZJUuWDPh9kDUP3cOH5R8/NUI3MVGWH3cUOO7mfB6PR+zZs0csWrSo37PGArmNGjVKFBQUiNraWvkCPNSQfHjvvffEBRdc0OPn5+abbxbt7e1aVy1kmofugQMyD9QI3aQkWX7cUOi4my5NTU3it7/9rcjOzg47aI1Go7j55pvFW2+95b2lwuO7yYeKigoxatSoHj9PM2bMECdOnNC6aiHRPHTZ0lWIQqHldrvFu+++K+bOnSsGDRoUdtiOHTtWPP3006KxsbH/9xDMHw2rVT5u5Up2KcSB+vp6MWXKlD4/W0eOHNG6akHTPHTV7NM1Gt3x0aerwMdz10UXiecffFBkZmaGHbQWi0Xceeed4v333xcejyf49xPGIAzFrlOnTomZM2f2+Fm7+OKLxd69e7WuWlA0D10h1Ju9AFSIhx56SDhjOXk7O2VLNcyBKCcgqgBhDCNsp0yZIp5//nnR3Nys3PtTeCCQBjaHwyHmzZvX4+fOarWKN954Q+uqBSwqQveZZ/r/NBn8rU0A+QKAuOqqq8Tx48cVq29UWbEi+C4FH7fTgHgiyKAdMmSI+OlPfyrKy8tDa9USBcnj8YiCgoIeP4d6vV689NJLWlctIFERuk1NsntO2dBtF0By9/+UoUOHir///e/eKzBQW1Nff634N64dEMkBhG1ubq4oKSkRbW1tWn8XKE798Y9/7HEcPADx8MMPC7fbrXXV/IqK0BVC0Qbb2VbuE17DYsWKFbK7QeFpVZpQ4SNCGyCW+Qjaiy66SOTn54uDBw9q/c6JhBBC/P3vf+8zjfGOO+4QnT5m5ESDqAldhbomBeAUQJUAjF6DwwSIP40aJTyDBikyrUpTKnWGV/T6ns2cOVNs3bpV2O12rd8xUR///ve/RUpKSo+f2e9973uipaVF66p5FTWhK0T4g/AycL8UQM85fV23UZCDRUEvO42iuaBut1scP35cvP/uu8IV/l8orzc7INJGjBCPPfaYqKmp0fotE/WrtrZWTJw4scfv+6RJk0RdXZ3WVevDX+hGdD/dLnV1QF6e3J4xuF3H2gA0AMgDcLzPvaMAlAOwIcQTNw0GuXVdebnc2ENFZ86cQU1NTZ/bkSNHcPToUTgcDmQC2AdgiAqv77JYoNu/H4bx41UonUgdLS0tmDNnDv75z392XxsxYgTeeustTJkyRcOa9eRvP11NNiTt2qiosFBu96jT+T+yx2oFPB6BnJxy7No1C0Df00lNAMoQRuACcqPe5mb5FyHMHdI9Hg8aGxv7BGrXf3/55Zf9lmGBPG5cDUazWb1TXolUkpycjJ07d2LevHnYvHkzAKChoQHf/va38dprr2HmzJka1zAAvprAQqXuhd6CnSO/c+dOMWzYsD7dClrsZHXmzBlRUVEhtm3bJn7zm9+IX/ziF+L6668XEydOFBaLxWv3RzC3TEC0qtC1IIA4W8pHscbtdosHH3ywx++L0WgUJSUlWldNCBGF3Qu+uFzygFe7XW7BmZ7u/XCAhoYGzJ07t/sjhg3A5wAUPa/UYoH4/HN84XD0aKGe32L94osvlHzFPnjcDZF/L7zwAu67774em+gXFhbiscceg07pDbyD4K97QfOWbqicTqdYuXKlACCWK9nKPXtr1+nEw0bvsyMieatQq6XLjYgpRvztb38TCQkJPX5vFi5cKByB7Neh0vx9DJSWbijefvttpF9/PcaHe/CaF5UAshUv1buEhARkZGQgMzMTGRkZ3bec997DxS++CF1/59QH92LAE08Ay5crVyaRhj766CP88Ic/xNdff919bfbs2di6dSuGDOk1FN3UJI+yKSkBjhyRYzcGgxzTcTjk+Xvz58uj5222kOrjr6U74EMXLheE1QqdCoNCnQASIQ9YVMKIESN6BOr5IXvJJZd4/zjU3Aykpso+F6VYLHLqSIg/UETRqLq6Gtdeey2qq88dhzpt2jRs374dw4cPl4Ea6Oh9QoL8TJifDxQUyO64IMR26FZXA1Onyv5JhbUBmArgSICPt1gsXgM1IyMD6enpsAZ7mF+XlSuBoiJlTvW0WuV5VU8+GX5ZRFHmxIkTuPHGG7Fnz57ua6NHj8Y7xcUYe++9wc9TtVplo6esLKhppLEduhUVQG4u0NqqeNGnAORCdjN0SUlJ8doNkJGRgZSUFOj1Kpz16XAA2dlATU1459cbDPIk1zCnwxFFs/b2dvzkJz/B66+/DkDO3/9Ep8NFOh30Pk6t9iuE+chyRWcAAAhUSURBVPtRN09XURZLeEHkr2ijEcsefBAXXX45MjMzkZ6ejsTERFVeyy+zWf6lzcmR3Q2hvN+uH5yyMgYuxTSr1YrXXnsNS5cuxfrnn0cZgGQhoPfTwPRLwfn7QCy0dF0uIDFRtgaVFm3TqkJdyhfiRySigUwIgY/y8jD5//4PijSVguia89fSVeGzcIQZjUBmpjpljxkTPYELnFvKt3SpbOEn9DMz2WqVj7v/fvkXmoFLcUTX3Iwr/vUvZQIXkA2dtWtlqzcMAz90ATm9o78AClZCgiw32pjNwFNPydZuYSGQlSWvJSYCSUnyq9ksrxcWysc9+SS7FCj+bNggZykoSacDiovDK2LAdy8AnFYV6FI+oniSlQUcOqROuZWVfh8S290LgAzG/Hz5cVoJViuwbNnACFxABuyYMXKGQ7R1iRBpweWSCx/UUF0tyw9RbIQuICcwp6bKUfpwGAyynIICZepFRJFXW6tel5rJJMsPUeyEbte0Kpst9ODltCqi2GC3h98A88VgCKsrM3ZCF5Cj8+XlcgFAsF0NVqt8XgQ2MCcilak4fx9utyw/RLEVugCnVRGRHExWa5N+p1OWH6LYC12A06qI4l0Uz9+P7WFumw144AF547Qqovgyf74cEFd6W9Qw5+/HxjxdIqLeNJy/H/vzdImIeovS+fsMXSKKXVE4f5+hS0SxKwrn7zN0iSi2nTd/3xPsxlgqzN9n6BJR7Ds7f3/f1VejA0C/h3upOH+fc6aIKD6YzfjVoEH4J4AFAOYDGKfTwWS1njsN2Ok8dxrwggWqbHrF0CWiuOBwOPDuu++iDcDas7dnV63Csltuiej8fYYuEcWF3bt3o62trce1a66/XrZsI4h9ukQUF3bs2NHj36mpqZg0aVLE68HQJaK40Dt0r7nmGuiUPs4nAAxdIop5jY2N2L9/f49rs2fP1qQuDF0iink7d+7s8W+9Xo+8vDxN6sLQJaKY17tr4YorrkBycrImdWHoElFMc7vdfVq6WnUtAAxdIopx5eXlaG5u7nGNoUtEpJK33367x7+HDh2K6dOna1Qbhi4Rxbje/bkzZ86EXq9d9DF0iShmNTc346OPPupxTcuuBYChS0QxrKysDB6Pp8e1WbNmaVQbiXsvEFFsOe8Q2n9v3QoDAPfZu6ZNm4aUlBQNK8fQJaJY0NQEbNgAlJQAR44AJhOEwYDHTp/GEwAOAygFkHT11drWEwxdIhrIHA6gsBBYtw7Q6c4dt+5wQAcg8ezDJgF4HIDlxRflBuUFBfIoHw2wT5eIBqa6OiA7GygqkvvhdgWuD4kADA6HfHx2tny+Bhi6RDTw1NUBOTlATQ3Q3h7cc9vb5fNycjQJXoYuEQ0sDgeQlwc0N8sjdkLhdsvn5+XJI3oiiKFLREFxuYDqaqCiQn51uSJcgcJCoL4+9MDt4nbLcgoLlalXgBi6RNSvpiZgzRogKwtITASmTgVyc+VXq1VeX7NGNh5Vr8i6dcF3KfjS3g6sXRuBip/D0CUinxwOYOVKYORIOeB/6JC8duYM0Noqvzqd8npBAZCaKh/vcKhTH1FcDI/Spz3odEBxsbJl+ns5IYTPO3NyckR5eXnEKkNE0aOuTnZ51tcH17C0WmX4lpUBaWmhvXZnZyeqq6tRVVWFqqoqfPbZZ6iqqkLpxx9jQq8VZorIygIqKxUrTqfTfSKEyPF2H+fpElEfXZMDQhmrOn9yQHm57+AVQuDLL7/sE6xVVVU4evRon+W7BgDfCO3t9K+rc1rl49cBhi4R9aL05IBPPrHj2LG+rdaqqiqcOnUq4DLTATgADAqtSv6ZTHLpcASOY2foElEPSk4OqK5uR1LSOgCPhV0vCwAVOhYkg0EusIgADqQRUTelJwcIYQWwDED455HZoWJgud2AxaJW6T0wdImo24YNcjBfWR4AC8IupRaAarslOJ1AerpapffA0CWibiUl/W5hEIJEAPPDLsUNoDrsUnwYMyYig2gAQ5eIznK55K6I6hgDOf8gPKUAzoRdSi8JCcD88P8oBIqhS0QA5OC9yaRW6U7I+QfhKYYKoSUEsCD87o9AMXSJCIAcvDeE3xj1wQ05/yB0gwYNwsjJk/HW+PFwKNUVYLUCy5YBNpsy5QWAU8aICIAcvA93mphvBsj5B/0bPnw4JkyYgPHjx3d/HT9+PNLS0mAwGORE4uxsuQIjnAobDHLpXEFB6GWEgKFLRADk4L16uxyaIOcfSBaLBWPHju0RqhMmTMC4ceOQlJTkvyizWa4xDnXJHCAD12aT5ajXp+IVQ5eIAMjB+8xMuXmN0pKTm1BQsLY7XNPS0qDXh9G7mZYm1xhrtTlEGNinS0Td5s+Xg/lKSkgAVqwYgSVLlmD27NlIT08PL3C7pKXJTX2XLpV9I/1V3GqVj7v/frm5jQaBC3CXMSI6T3OzbAQquSLWYpGNUVXHqpqb5faMpaVy8xqTSXYhuN2yz2TMGPkXZcGCiAyacZcxIgqIzQbk58uzG5VYCmy1yoal6jlnswEPPCBvLpec/2a3y8RPT4/YwodAsKVLRD0oOTkgI0N+ko/wWJXm/LV02adLRD10TQ6w2UKft6vh5ICox9Aloj66JgdkZMgugmBYrfJ5/jYwj2cMXSLyaoBODoh6DF0i8slsBp566txJ5VlZ8lpiIpCUJL+azfJ61+bnTz7JLgV/OJBGREGJ8skBUYFTxohIMUZjRI4Si1nsXiAiiiCGLhFRBDF0iYgiiKFLRBRBDF0ioghi6BIRRRBDl4gogvwujtDpdCcAHItcdYiIYsJoIcQwb3f4DV0iIlIWuxeIiCKIoUtEFEEMXSKiCGLoEhFFEEOXiCiC/j9V8+vT6xI8fgAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, - "metadata": { - "needs_background": "light" - }, + "metadata": {}, "output_type": "display_data" } ], @@ -1440,7 +1454,7 @@ }, { "cell_type": "code", - "execution_count": 38, + "execution_count": 39, "metadata": {}, "outputs": [], "source": [ @@ -1450,7 +1464,7 @@ }, { "cell_type": "code", - "execution_count": 39, + "execution_count": 40, "metadata": { "scrolled": true }, @@ -1458,7 +1472,7 @@ { "data": { "image/svg+xml": [ - "+RFBRBRRRFBBFRRFRFFRFRBBBRFRRRFcorstep03276131141147154198226243250265273295307331345354361380391414417458460470474479483492496" + "]]>+RFBBFBFBBFBFFRRRBRFBFFFFFFBBFcorstep0121634437274112125131146160168194204215235288289296311344349356413430456459489496" ], "text/plain": [ "" ] }, - "execution_count": 39, + "execution_count": 40, "metadata": {}, "output_type": "execute_result" } @@ -1636,14 +1650,14 @@ }, { "cell_type": "code", - "execution_count": 40, + "execution_count": 41, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "We have 2 decorrelated trajectories.\n" + "We have 6 decorrelated trajectories.\n" ] } ], @@ -1661,7 +1675,7 @@ }, { "cell_type": "code", - "execution_count": 41, + "execution_count": 42, "metadata": {}, "outputs": [ { @@ -1684,12 +1698,12 @@ }, { "cell_type": "code", - "execution_count": 42, + "execution_count": 43, "metadata": {}, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -1709,17 +1723,17 @@ }, { "cell_type": "code", - "execution_count": 43, + "execution_count": 44, "metadata": {}, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] }, - "execution_count": 43, + "execution_count": 44, "metadata": {}, "output_type": "execute_result" } @@ -1730,12 +1744,12 @@ }, { "cell_type": "code", - "execution_count": 44, + "execution_count": 45, "metadata": {}, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] From c633dd7e9a495c367158a99328591d9de461c458 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Wed, 29 Jan 2020 18:32:29 +0100 Subject: [PATCH 303/464] start adding progress indicators to TIS analysis --- openpathsampling/analysis/tis/core.py | 14 ++++-- openpathsampling/analysis/tis/flux.py | 6 ++- .../analysis/tis/standard_analysis.py | 46 ++++++++++++++++++- openpathsampling/tests/test_tis_analysis.py | 2 + 4 files changed, 61 insertions(+), 7 deletions(-) diff --git a/openpathsampling/analysis/tis/core.py b/openpathsampling/analysis/tis/core.py index 48763df63..4a74d12ab 100644 --- a/openpathsampling/analysis/tis/core.py +++ b/openpathsampling/analysis/tis/core.py @@ -1,9 +1,11 @@ import collections import openpathsampling as paths from openpathsampling.netcdfplus import StorableNamedObject +from openpathsampling.progress import SimpleProgress import pandas as pd import numpy as np + def steps_to_weighted_trajectories(steps, ensembles): """Bare function to convert to the weighted trajs dictionary. @@ -126,7 +128,7 @@ def __str__(self): # pragma: no cover def __repr__(self): return self.to_pandas().__repr__() -class MultiEnsembleSamplingAnalyzer(StorableNamedObject): +class MultiEnsembleSamplingAnalyzer(SimpleProgress, StorableNamedObject): """ Abstract class for statistics from MC steps sampling multiple ensembles. @@ -167,6 +169,7 @@ def calculate(self, steps, ensembles=None): raise RuntimeError("If self.ensembles is not set, then " + "ensembles must be given as argument to " + "calculate") + steps = self.progress(steps, desc="Weighted trajectories") weighted_trajs = steps_to_weighted_trajectories(steps, ensembles) return self.from_weighted_trajectories(weighted_trajs) @@ -205,6 +208,7 @@ class EnsembleHistogrammer(MultiEnsembleSamplingAnalyzer): is a float; for 'bin_range' is a tuple with `(left_edge, right_edge)` (only left edge is used) """ + _label = "Ensembles" def __init__(self, ensembles, f, hist_parameters): super(EnsembleHistogrammer, self).__init__(ensembles) self.f = f @@ -227,10 +231,12 @@ def from_weighted_trajectories(self, input_dict): dict of {:class:`.Ensemble`: :class:`.numerics.Histogram`} calculated histogram for each ensemble """ - for ens in self.hists: - trajs = list(input_dict[ens].keys()) + hists = self.progress(self.hists, desc=self._label) + for ens in hists: + trajs = input_dict[ens].keys() weights = list(input_dict[ens].values()) - data = [self.f(traj) for traj in trajs] + data = [self.f(traj) + for traj in self.progress(trajs, leave=False)] self.hists[ens].histogram(data, weights) return self.hists diff --git a/openpathsampling/analysis/tis/flux.py b/openpathsampling/analysis/tis/flux.py index d42104d17..e2479bd9a 100644 --- a/openpathsampling/analysis/tis/flux.py +++ b/openpathsampling/analysis/tis/flux.py @@ -184,7 +184,8 @@ def trajectory_transition_flux_dict(self, minus_steps): # do the analysis results = {} - for flux_pair in self.flux_pairs: + flux_pairs = self.progress(self.flux_pairs, desc="Flux") + for flux_pair in flux_pairs: (state, innermost) = flux_pair mover = flux_pair_to_minus_mover[flux_pair] calculator = transition_flux_calculators[flux_pair] @@ -193,8 +194,9 @@ def trajectory_transition_flux_dict(self, minus_steps): # (but neither would our old version) trajectories = [s.active[minus_ens].trajectory for s in mover_to_steps[mover]] + mover_trajs = self.progress(trajectories, leave=False) results[flux_pair] = calculator.analyze_flux( - trajectories=trajectories, + trajectories=mover_trajs, state=state, interface=innermost ) diff --git a/openpathsampling/analysis/tis/standard_analysis.py b/openpathsampling/analysis/tis/standard_analysis.py index d4439115b..4707d5dfb 100644 --- a/openpathsampling/analysis/tis/standard_analysis.py +++ b/openpathsampling/analysis/tis/standard_analysis.py @@ -1,4 +1,6 @@ import collections +import functools + import openpathsampling as paths from openpathsampling.netcdfplus import StorableNamedObject from openpathsampling.numerics import LookupFunction @@ -218,9 +220,50 @@ def __init__(self, network, steps=None, flux_method=None, scheme=None, transition_probability_methods=trans_prob_methods ) + self._progresser = paths.progress.SimpleProgress() + if steps is not None: self.calculate(steps) + def _set_progress(self, progress, leave): + self._progresser.progress = progress # set if string + progress = self._progresser.progress # get function + prog_leave = functools.partial(progress, leave=True) + prog_no_leave = functools.partial(progress, leave=False) + if leave == 'all': + self.flux_method.progress = prog_leave + self.ctp_method.progress = prog_leave + max_lambda_prog = prog_leave + elif leave == 'default': + self.flux_method.progress = prog_leave + self.ctp_method.progress = prog_leave + max_lambda_prog = prog_no_leave + elif leave == 'none': + self.flux_method.progress = prog_no_leave + self.ctp_method.progress = prog_no_leave + max_lambda_prog = prog_no_leave + + max_lambda_methods = [tcp.max_lambda_calc + for tcp in self.tcp_methods.values()] + for max_lambda_m in max_lambda_methods: + max_lambda_m.progress = max_lambda_prog + + @property + def progress(self): + if not hasattr(self._progresser, '_progress'): + self.progress = 'default' + return self._progresser.progress + + @progress.setter + def progress(self, value): + if value in ['all', 'default', 'none']: + progress = 'tqdm' + leave = value + else: + progress = value + leave = 'default' + self._set_progress(progress, leave) + def from_weighted_trajectories(self, input_dict): """Calculate results from weighted trajectories dictionary. @@ -240,7 +283,8 @@ def from_weighted_trajectories(self, input_dict): max_lambda_calcs = [tcp_m.max_lambda_calc for tcp_m in self.tcp_methods.values()] max_lambda_hists = {} - for calc in max_lambda_calcs: + label = "Crossing probability" + for calc in self.progress(max_lambda_calcs, desc=label): calc_results = calc.from_weighted_trajectories(input_dict) # TODO: change this to a 2D mapping, CV and ensemble max_lambda_hists.update(calc_results) diff --git a/openpathsampling/tests/test_tis_analysis.py b/openpathsampling/tests/test_tis_analysis.py index 6cd3e234a..a930dd16f 100644 --- a/openpathsampling/tests/test_tis_analysis.py +++ b/openpathsampling/tests/test_tis_analysis.py @@ -24,6 +24,8 @@ logging.getLogger('openpathsampling.storage').setLevel(logging.CRITICAL) logging.getLogger('openpathsampling.netcdfplus').setLevel(logging.CRITICAL) +paths.progress.HAS_TQDM = False # turn off progress bars + def make_tis_traj_fixed_steps(n_steps, step_size=0.1, reverse=False): if reverse: sign = -1 From 25255253146c1cac37446865e6a9548bd2bfef22 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 30 Jan 2020 10:40:15 +0100 Subject: [PATCH 304/464] Add example notebook with progress bars --- .../toy_mstis_A3_new_analysis.ipynb | 5824 ++++++++++++++++- 1 file changed, 5555 insertions(+), 269 deletions(-) diff --git a/examples/toy_model_mstis/toy_mstis_A3_new_analysis.ipynb b/examples/toy_model_mstis/toy_mstis_A3_new_analysis.ipynb index 5dbcc1360..33dd0b19b 100644 --- a/examples/toy_model_mstis/toy_mstis_A3_new_analysis.ipynb +++ b/examples/toy_model_mstis/toy_mstis_A3_new_analysis.ipynb @@ -1,5 +1,16 @@ { "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# TIS Analysis Framework Examples\n", + "\n", + "This notebook provides an overview of the TIS analysis framework in OpenPathSampling. We start with the `StandardTISAnalysis` object, which will probably meet the needs of most users. Then we go into details of how to set up custom objects for analysis, and how to assemble them into a generic `TISAnalysis` object.\n", + "\n", + "For an overview of TIS and this analysis framework, see http://openpathsampling.org/latest/topics/tis_analysis.html" + ] + }, { "cell_type": "code", "execution_count": 1, @@ -9,7 +20,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Using file `mstis.nc` for analysis\n" + "Using file mstis.nc for analysis\n" ] } ], @@ -18,7 +29,8 @@ "from __future__ import print_function\n", "import os\n", "test_file = \"../toy_mstis_1k_OPS1.nc\"\n", - "filename = test_file if os.path.isfile(test_file) else \"mstis.nc\"\n", + "filename = \"mstis.nc\" # this requires newer functionality that in the standard tests\n", + "#filename = test_file if os.path.isfile(test_file) else \"mstis.nc\"\n", "print('Using file ' + filename + ' for analysis')" ] }, @@ -35,28 +47,17 @@ "import pandas as pd" ] }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# TIS Analysis Framework Examples\n", - "\n", - "This notebook provides an overview of the TIS analysis framework in OpenPathSampling. We start with the `StandardTISAnalysis` object, which will probably meet the needs of most users. Then we go into details of how to set up custom objects for analysis, and how to assemble them into a generic `TISAnalysis` object.\n", - "\n", - "For an overview of TIS and this analysis framework, see http://openpathsampling.org/latest/topics/tis_analysis.html" - ] - }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "CPU times: user 10.5 s, sys: 656 ms, total: 11.2 s\n", - "Wall time: 12.3 s\n" + "CPU times: user 2min 22s, sys: 13.2 s, total: 2min 35s\n", + "Wall time: 2min 44s\n" ] } ], @@ -91,7 +92,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Simplified Combined Analysis\n", + "## Simplified Combined Analysis\n", "\n", "The `StandardTISAnalysis` object makes it very easy to perform the main TIS rate analysis. Furthermore, it caches all the intemediate results, so they can also be analyzed." ] @@ -122,45 +123,301 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "#tis_analysis.progress = 'silent'" + ] + }, + { + "cell_type": "code", + "execution_count": 9, "metadata": { "scrolled": true }, "outputs": [ { - "name": "stderr", + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "aaa9ea566d794656b3d62361ec91ac36", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "HBox(children=(FloatProgress(value=0.0, description='Flux', max=3.0, style=ProgressStyle(description_width='in…" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "HBox(children=(FloatProgress(value=0.0, max=180.0), HTML(value='')))" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "HBox(children=(FloatProgress(value=0.0, max=188.0), HTML(value='')))" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "HBox(children=(FloatProgress(value=0.0, max=195.0), HTML(value='')))" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", "output_type": "stream", "text": [ - "/Users/dwhs/Dropbox/msm-tis/openpathsampling/numerics/wham.py:336: RuntimeWarning: invalid value encountered in divide\n", - " addends_k = np.divide(numerator_byQ, sum_over_Z_byQ)\n", - "/Users/dwhs/Dropbox/msm-tis/openpathsampling/numerics/wham.py:409: RuntimeWarning: invalid value encountered in double_scalars\n", - " output[val] = sum_k_Hk_Q[val] / sum_w_over_Z\n" + "\n" ] }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "a2c6463ae21947fdaf03c23841930667", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "HBox(children=(FloatProgress(value=0.0, description='Crossing probability', max=3.0, style=ProgressStyle(descr…" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "HBox(children=(FloatProgress(value=0.0, description='Ensembles', max=3.0, style=ProgressStyle(description_widt…" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "HBox(children=(FloatProgress(value=0.0, max=1379.0), HTML(value='')))" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "HBox(children=(FloatProgress(value=0.0, max=1204.0), HTML(value='')))" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "HBox(children=(FloatProgress(value=0.0, max=972.0), HTML(value='')))" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "HBox(children=(FloatProgress(value=0.0, description='Ensembles', max=3.0, style=ProgressStyle(description_widt…" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "HBox(children=(FloatProgress(value=0.0, max=1301.0), HTML(value='')))" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "HBox(children=(FloatProgress(value=0.0, max=1136.0), HTML(value='')))" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "HBox(children=(FloatProgress(value=0.0, max=914.0), HTML(value='')))" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "HBox(children=(FloatProgress(value=0.0, description='Ensembles', max=3.0, style=ProgressStyle(description_widt…" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "HBox(children=(FloatProgress(value=0.0, max=1283.0), HTML(value='')))" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "HBox(children=(FloatProgress(value=0.0, max=1165.0), HTML(value='')))" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "HBox(children=(FloatProgress(value=0.0, max=1030.0), HTML(value='')))" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, { "name": "stdout", "output_type": "stream", "text": [ - "CPU times: user 31.8 s, sys: 613 ms, total: 32.4 s\n", - "Wall time: 33.5 s\n" + "\n", + "CPU times: user 1h 7min 2s, sys: 5min 38s, total: 1h 12min 40s\n", + "Wall time: 1h 15min 1s\n" ] - }, + } + ], + "source": [ + "%%time\n", + "rate_matrix = tis_analysis.rate_matrix(steps=storage.steps).to_pandas(order=all_states)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ { "data": { "text/html": [ "
\n", - "\n", "\n", " \n", @@ -175,19 +432,19 @@ " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", + " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", " \n", @@ -195,27 +452,17 @@ "" ], "text/plain": [ - " A B C\n", - "A NaN 0.00236325 0.00162943\n", - "B 0.00107851 NaN 0.000849896\n", - "C 0.00166719 0.00249607 NaN" + " A B C\n", + "A NaN 0.00214965 0.00186714\n", + "B 0.00117906 NaN 0.00120443\n", + "C 0.00133534 0.00188307 NaN" ] }, - "execution_count": 8, + "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], - "source": [ - "%%time\n", - "rate_matrix = tis_analysis.rate_matrix(steps=storage.steps).to_pandas(order=all_states)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], "source": [ "rate_matrix" ] @@ -229,9 +476,26 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 11, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\\begin{tabular}{llll}\n", + "\\toprule\n", + "{} & A & B & C \\\\\n", + "\\midrule\n", + "A & NaN & 2.15e-03 & 1.87e-03 \\\\\n", + "B & 1.18e-03 & NaN & 1.20e-03 \\\\\n", + "C & 1.34e-03 & 1.88e-03 & NaN \\\\\n", + "\\bottomrule\n", + "\\end{tabular}\n", + "\n" + ] + } + ], "source": [ "print(rate_matrix.to_latex(float_format=\"{:.2e}\".format))" ] @@ -247,7 +511,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## Looking at the parts of the calculation\n", + "### Looking at the parts of the calculation\n", "\n", "Once you run the rate calculation (or if you run `tis_analysis.calculate(steps)`, you have already cached a large number of subcalculations. All of those are available in the `results` dictionary, although the analysis object has a number of conveniences to access some of them.\n", "\n", @@ -256,9 +520,20 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 12, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "dict_keys(['flux', 'max_lambda', 'total_crossing_probability', 'conditional_transition_probability', 'transition_probability', 'rate'])" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "tis_analysis.results.keys()" ] @@ -274,21 +549,21 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "{(,\n", - " ): 0.32667420530217367,\n", - " (,\n", - " ): 0.22904983808545926,\n", - " (,\n", - " ): 0.21310004486316733}" + "{(,\n", + " ): 0.20017125763152918,\n", + " (,\n", + " ): 0.21013334525579258,\n", + " (,\n", + " ): 0.2353906881858017}" ] }, - "execution_count": 10, + "execution_count": 13, "metadata": {}, "output_type": "execute_result" } @@ -299,59 +574,137 @@ }, { "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "s = paths.analysis.tis.flux_matrix_pd(tis_analysis.flux_matrix)\n", - "pd.DataFrame(s)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Next we look at the total crossing probability (i.e., the crossing probability, joined by WHAM) for each sampled transition. We could also look at this per physical transition, but of course $A\\to B$ and $A\\to C$ are identical in MSTIS -- only the initial state matters." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "# if you don't like the \"Flux\" label in a separate line, fix it by hand\n", - "print(s.to_latex(float_format='{:.4f}'.format))" - ] - }, - { - "cell_type": "markdown", + "execution_count": 14, "metadata": {}, "outputs": [ { "data": { - "image/png": "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\nEEoppez6f508tIgJLgjyAAAAAElFTkSuQmCC\n", + "text/html": [ + "
\n", + "\n", + "
ANaN0.002363250.001629430.002149650.00186714
B0.001078510.00117906NaN0.0008498960.00120443
C0.001667190.002496070.001335340.00188307NaN
\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Flux
StateInterface
A0.0<opA<0.20.200171
B0.0<opB<0.20.210133
C0.0<opC<0.20.235391
\n", + "
" + ], "text/plain": [ - "" + " Flux\n", + "State Interface \n", + "A 0.0" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], "source": [ "for transition in network.sampling_transitions:\n", " label = transition.name\n", @@ -372,17 +725,19 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 17, "metadata": {}, "outputs": [ { "data": { - "image/png": "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\nhrDmRDCtW7dm0qRJF/SneySty1RsFPWZTI4kiGeB+sALwCYgXkQWiMjLItLbpdEplQcRoUN8RX7f\nepg+/QawdetW5s6da3VYubPoegjlfkG+QZxPO09GEa3i60ipjQ+NMUOMMW2MMaWBWGxrQhwDPHvK\niCoWOtWrQHqGIfyKVlx55ZXcd999nj0WYcE4hLJGkF8QBsP59KK5eFC+y30bY5KNMQuMMa8YY27P\naRul3Kle5ZJULhXMok1HmDlzJqdOnWLAgAGePf88UNeHKA4C7asJFtWB6kKV+xaRq7Xct7KaiNAx\nvgKLtxykckwNXn/9db777jvGjRtndWiXFxCu4xDFQKBvICJSZMchClruezta7lt5kI71KpKabvjx\nnwMMGjSITp06MXz4cDZs2GB1aDnLvEhOxyG8mogQ6BtYZKu6FrTc95Va7lt5kiurlKJ8iUAW/L0X\nEWHKlCmEh4fTt29fzp3zwH9ON45DHDt2jPHjx+e5XVJS0iXXMVxuu/j4eGeEVmBXXXWVpefPLiws\nLNfHg3yDLuhi6t+/P3PmzLlku1WrVjF06FCACwooTpgwIesix2nTprFnzx5nhZ6nQpX7VspT+PgI\nHeMr8svmg5w+l0b58uWZPHkya9as4ZlnnrE6vJy5aRzC2QmiMNLS0pxynN9//90px3GEMaZQU6cD\n/QJJy0gjLSP3556YmMg777xzyf333Xcf/fr1Azw4QdjXfugjIk+JyDOZN1cGp1R+XF+3AufSMli8\n5RAAXbp04d577+XVV1/l559/tja4nLhpHOKJJ55g69atJCQkMHz4cIwxDB8+nPj4eOrVq8enn36a\ntd3ixYtJSEjgzTffJCkpiVatWtGwYUMaNmzo0Jvy2LFjqVevHg0aNMi6YLFt27Y89dRTtGnThrff\nfpsdO3bQvn176tevT/v27bNKtc+ePZv4+HgaNGhA69atAVsl2iZNmpCQkED9+vWz1iDP/NT+888/\n07ZtW2655RZq165N3759syYnLFiwgNq1a9OyZUuGDh1K586dL4l32rRpdO3alQ4dOhAXF8dzzz0H\n2JJlnTp1uP/++2nYsCG7du1i1qxZ1KtXj/j4eB5//MLqucOGDaNhw4a0b9+egwcPAjBx4kQaN25M\nu6bteKj/Qxw5cSRr+0WLFtGqVStq1arFN998k/Vccopx1KhRvPbaa8yZM4dVq1bRt29fEhISmD9/\n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\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYQAAAEYCAYAAABcGYHrAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nOzdd3iN5xvA8e99soPYsWJERGwxqr9YtUdRq1qjVbsUrdaq0qFKqdLSrYpStFStVrWo1aJq197EjE0kkeSc5/fHe2iMyEmcleT5XNe5znrf97kjce7zbFFKoWmapmkmVwegaZqmuQedEDRN0zRAJwRN0zTNSicETdM0DdAJQdM0TbPSCUHTNE0DdELQXExE3hCRqa6OIyUiMkNE3kvjue+IyHcPeX+PiNS591gRKSIi0SLi8ZBzo0WkeFri0rR76YSQyYlIRxHZYv1gOSsiv4pITWeVr5Qao5Tq4Yhri4gSkZvWn+20iEx82Ierqyilyiql1jzg9ZNKqaxKKTOAiKwRkR73HJNVKXXU0TGKSLCIWETkc0eXlaTM4yISa/39XRGRX0SksLPKz4x0QsjEROQ14GNgDJAPKAJ8DrRM5nhP50VnNxWVUlmB+kBHoOe9B6TTn8vZOgNXgPYi4pOaE0Uk3yOU28L6+ysAnAc+eYRraSnQCSGTEpHswLtAX6XUT0qpm0qpBKXUUqXUYOsx74jIjyLynYhcB7qIiI+IfCwiZ6y3j29/QIhIHhH5WUSuishlEVkvIibre0Ot39JviMgBEamfpIzbTSTFrN/qXxCRkyJyUUSGJ4nZT0S+tX5b3CciQ0TklC0/r1JqP7AeKGe91nFrTLuAmyLiKSKlrd/Cr1qbcZ665zJ5RGSF9WdYKyJFk8Q2SUQiReS6iGwVkVr3nOsrIj9Yz90mIhWTnHtcRBo84Hd0+9/DU0RGA7WAT63fmD+1HqNEpIT1sY+IfGj9tzsvIl+KiF9KvxsbdQZGAAlAi1ScB/COiOwVkcEikj+V5wKglIoDfgTKpOV8zTY6IWReEYAvsDCF41pi/EfMAcwGhgP/A8KBikA1jA8KgIHAKSAvRo3jDUCJSBjQD3hMKZUNaAwcf0iZNYEwjG/1b4lIaevrbwPFgOJAQ+A5m35SQETKYHygbk/ycgegmfVnE2Ap8DsQCPQHZltjv60TMArIA+zA+Pe47R+Mf5NcwBxgvoj4Jnm/JTA/yfuLRMTL1viVUsMxElo/azNRvwccNg4oaY2jBFAIeMv63gN/N7aUbU1uQcD3wDyM5JAafYGXgQrAARFZKiJtUvPzi4g/8CywKZVla6mhlNK3THjD+HA7l8Ix7wDr7nntCPBkkueNgePWx+8Ci4ES95xTAogCGgBeDyjjO+vjYhgfUkFJ3t8MtLc+Pgo0TvJeD+DUQ+JXwHWMpo4jwHuAyfrecaBbkmNrAeduv299bS7wjvXxDOD7JO9lBcxA4WTKvoLRXHX7Z9yU5D0TcBaolSSWBg/59/C0Pl8D9HjAz1gCI6HdBEKSvBcBHHvY78bGv5WpwKIk10wAAtP4d5cN6Aass/5NjHrIsceBaOAqkAicAcq7+v9ORr7pGkLmdQmjCSSl9vPIe54XBE4keX7C+hrAeOAw8LuIHBWR1wGUUoeBARgfdlEi8r2IFCR555I8jsH48L1ddtJ47o3tQSorpXIqpUKUUiOUUpZkzi8IRN7z/gmMb9n3Ha+UigYuW89DRAZam7GuichVIDtGTeJB51owvq0/7N8gtfIC/sBWa7PQVWC59XVI5neTEmuTUzustSGl1EbgJEZ/zIOO/9LapBUtIm/c+75S6gawC6OG5YVRE3yYVkqpHIAPRi1zbVqbnbSU6YSQeW0E4oBWKRx3b7PCGaBokudFrK+hlLqhlBqolCqO0c782u2+AqXUHKVUTeu5CqN5I7XOYjRd3PaoI06S/mxngML3tKsXAU4/qDwRyYrR/HPG2qQyFHgGyGn9ALuG8a39QeearD/HmUeI914XgVigrFIqh/WWXRkdsg/93aSgNRAAfC4i50TkHEaSfGCzkVKqtzKatLIqpcbcfl1EgkTkdRHZi9H0dBEIV0o9Y0MMKKXMSqmfMGplThsFl9nohJBJKaWuYbQvfyYirUTEX0S8RKSpiHzwkFPnAiNEJK+I5LFe43ancHMRKSEigtFUYwbMIhImIvXE6HyOw/jgMqch7HnAMBHJKSKFML4x2svfGE0uQ6z/DnUwPji/T3LMkyJSU0S8MfoS/lZKRWI0gyQCFwBPEXkL40M0qSrWdnNPjNrSLVLfHn4eo//kPtZax9fARyISCCAihUSksfXxA3831vdmiMiMZMp8AZgGlMfomwgHagDhIlLelqBF5B1gD0ZtoA8QqpR6Vyl14qEn3n0NEZGWQE5gn63naamjE0ImppSaCLyG0Sl8AaNZox+w6CGnvQdswaj2/wtss74GEAqsxGj33Qh8rozx9T7AWIxvhecwOm3va06wwbsYTS3HrOX8iPHB+siUUvHAU0BTa5yfA52VMTrptjkYHduXgSoY/TAAvwG/AgcxmpniuL85azFGp+gV4HmgjVIqIZVhTgKeFmOU1eQHvD8Uo1lokxijwlbyX5NMcr8bMGovf917MWvSrQ98rJQ6l+S2FaM56gUb414EFFRKdVVKrVVKpWYTlqUiEo2RxEYDLyil9qTifC0VJHW/G01zHyLSB6PD+QlXx5JeWWs7O4EKaUhQWgajawhauiEiBUSkhoiYrMNBB5LysFntIZRS8Uqp0joZaAB6hqaWnngDXwHBGEMRv8do2tE0zQ50k5GmaZoG6CYjTdM0zSpdNxnlyZNHFStWzNVhaJqmpStbt269qJTKe+/r6TohFCtWjC1btrg6DE3TtHRFRB44B0Q3GWmapmmATgiapmmalU4ImqZpGqATgqZpmmalE4KmaZoGuFlCEJEmYmyveNjW9do1TdM0+3CbhCAiHsBnGKtNlgE6WLc91DRN05zAneYhVAMOK6WOAojI9xj70O61d0HTfx7Fwah/7H1Zh1NKsffv03h7mKjTqIRjCvHOCgUqQKr2X7eNiNCwaENK5ixp92trmvbo3CkhFOLuNeRPAY/fe5CI9AJ6ARQpUiRNBW0/u5o1XlFpOtfVjm08QeyJWPaHx2DycVAF7+Lf3L3Zl30oFDP3zOSjuh9RvWB1u19f07RH404J4UGfQPetvKeUmgJMAahatWqaVuab3POPtJzmFqYFLKd726aU3tWK+Z+NSfmE1FAKvm0B5/bAy9vAL6ddLx8VE0Xvlb3pu6ovY2qOoWlwU7teX9O0R+M2fQgYNYKke+SmZc/ZDK9bmybkL/0Yi2Z+yaWrN+x7cRFoPAZir8C6D+17bSDQP5AZTWZQIU8Fhqwbwux9s+1ehqZpaedOCeEfIFREgq27OLUHlrg4Jrf0zttvkxh9hb5vPWzr4zQqUAEqPQd/fwWXjtj98gHeAXzV8CvqFa7H2M1jmbxtMnoJdk1zD26TEJRSiRj7+f6GsYn2PL136oO9+GwzAsOq8NP0z7lyPdr+BdR7Ezx94Pc37X9twNfTlwl1JtA2tC1f//s1IzeOJNGS6JCyNE2zndskBACl1DKlVEmlVIhSarSr43Fnb735JgnRl+n/tv2bdsiWD2q9Bgd+gaNr7H99wNPkydsRb9OzfE8WHFrAwDUDiUuMc0hZmqbZJl3vmFa1alWVmZe/zluyEtfORRJ1+gQ5smWx78UT4uDTx8A3AF5cByYP+14/idn7ZjNu8zgqBVbik/qfEOAd4LCyNE0DEdmqlKp67+tuVUPQUmfEiDdJuHGJV0ZOtP/FvXyh4Ug4vxu2z7L/9ZPoVLoT42qPY9fFXXRZ3oWomPQ5JFjT0jtdQ0jHLBYLgSUrcePiWS6cPk5AFn/7FqAUTGsCl49A/21GbcGBNpzZwIDVA8jlm4svG3xJsezFHFqepmVWuoaQAZlMJoa9MZz4axcYMOpj+xcgAk3GwM0LsH6C/a9/j+oFqzO98XRiEmLo/Gtn9lzUYwo0zZl0QkjnXu3yNDmLlWH2V5OIjnFAp2yhKlCxA2z6HC4fs//171E2T1lmNp2Jn6cf3X7rxoKDC7Aoi8PL1TRNJ4R0z2QyMeSNEcRfjeK10ZMcU0j9t8DkCSvfdsz171EsezFmPTmL0rlL887Gd+iyvAuHrxx2StmalpnpPoQMwGKxkDu4LLHR17h8+hj+vj72L2TNOFgzBrosg2I17H/9B1BKsejwIiZsncDN+Jt0LdeVXhV64evp65TyNS2j0n0IGZjJZGLQ629w6/JZBo751DGFVO8PAYXgt2FgcU4TjojQOrQ1S1ot4cniT/L1v1/TenFr/jr9l1PK17TMRtcQMgiLxULOoqWJj43myulj+Pp427+QXfPgp57Q8nOo1Mn+10/B5rObGbVpFMevH6dpcFOGPDaEPH55nB6HpqV3uoaQwZlMJl4dMoy4S2cYPPZzxxRS7mkoVBVWvQu3HLBkRgqqFajGgqcW8FLFl1h5YiVPLXyKeQfm6U5nTbMTXUPIQCwWCzkKh5EYH8fVM8fw9nLA6uaRm+GbhlB7MNQbYf/r2+jYtWO8t+k9Np/bTMW8FXkr4i298Y6m2UjXEDIBk8nEK4NfJ/biKYZ+8IVjCilczagpbPgErkamfLyDBGcPZmqjqYyuOZoT10/w7NJnGb1pNOtOreParWsui0vT0jNdQ8hgEhPN5CwSisVs5sqpI46pJVyNhE+rQqnm8PQ39r9+asOJu8rErRNZemQpicpYNTUkewjhgeGEB4ZTKbASRbIVQcT+u8BpWnqUXA1BJ4QMaNiHUxg7+EUGjf2c8UP7OKaQP96DdeOh+wqj1uAGYhNj2X1xN9ujtrM9ajs7L+zkRryxiVAu31yE5zWSQ3hgOGVyl8HbwwEd75qWDuiEkIkkJprJEVQCgKunDuPp6YCVSm9FwydVIKAg9FgFJvdrfbQoC0euHmF71HZ2RO1ge9R2TkWfAsDb5E2p3KUonas0pXOVplTuUoTmCNVJQssUdELIZAaN+4IJr7/E6x9+xfsDezmmkJ3fw8IXoflHULWbY8qws4uxF+8khz2X9rD/8n5uJtwEwFM8CckRQqlcpSid20gUYbnCyOJl56XFNc3FdELIZOITEslZqDgmTy+unDzomFqCUvBtCzi3C/pthax57V+Gg1mUhVM3TrHv8j72XdrH/sv72Xd5H5fjLgMgCEUCihCWM4ycvjnx9/THz9Pvv5uX393Pk9w8xAOTmPA0eWISEx7igYfJw7gXD92nobmMTgiZ0ID3JjPpzVcY8dFURg3o7phCLhyAL2pA+aeh9ZeOKcPJlFJExUTdSQ77Lu3j0NVDXI+/TmxCLPGWeLuUI8idBGESk3HDhIjceS4Yj++8Zn3fx8MHX09ffD18jaTk4Yevpy9+nn53Xvf38sfXw5c8/nloUKQBniYHDDDQ0iWdEDKhuFvx5CpcAg9PLy6fPIiXI2oJACtHwp8TocsvUKymY8pwI4mWROIS44hNjL3rFpMYc+dxXGIcFmXBrMyYLWbMynzf89uPb7+uUCilsCgLFmVB8d9j4M5ji7Jwy3yLOHPcXXHcfhxnNu6TTtjrUKoDbzz+hqv+yTQ3k1xC0F8ZMjBfH2/6DBjMxOEv88ZHUxk/+EXHFFR7MPz7I/wyEF5cD54Zu2PW0+RJVu+sZPXO6upQkqWUIsGSQGxiLF/t+opZe2dRNKAonUo7f8kRLf1wi6EhItJORPaIiEVE7staWtqNHdyHLIFF+HziOG4lJDqmEG9/ePIDuLAfNn3mmDK0VBERvD28ye6TnYFVBlK3cF0++OcD1p1a5+rQNDfmFgkB2A20AfRfq515eXkyYMgwYs4dY/AHUxxXUFhTCGsGaz+AqycdV46Wah4mD8bWGktYzjAGrx3MgcsHXB2S5qbcIiEopfYppfRfqYO880oPsuUvxtTJH3Azzj4dog/UdJxx/+tQx5WhpYm/lz+f1PuErF5Z6fdHPy7GXnR1SJobcouEkBoi0ktEtojIlgsXLrg6nHTB09OTwcOGExt1glfHOmiNI4AcheGJoXBgGexf5rhytDTJlyUfn9b/lGu3rtF/VX9iE2NdHZLmZpw2ykhEVgL5H/DWcKXUYusxa4BBSimbhg7pUUa2s1gs5CocSlx8AudPHCK7vwN2VQMwJ8CXtSA+Gvr+Dd56Upe7WX1yNa+sfoUGRRvw4RMfYpJ0971Qe0QuX+1UKdVAKVXuAbfFzoohMzOZTAwf8Sa3Lkby8nsO7Pj18ILmE+FapLHWkeZ26hapy8CqA1lxYgWTt012dTiaG9FfDTKRgS92JmdQCb6fMpGL12McV1DR6hDeyVgiO2q/48rR0qxzmc60K9mOb3Z/w8JDC10djuYm3CIhiEhrETkFRAC/iMhvro4pIzKZTLzz9lvEXzpN31GfOLawhu+Cd1ZjbkI6nvyYUYkIwx4fRkSBCN7d+C6bz252dUiaG9AzlTMZi8VCYHAprt+4yfEjByiY04GTq7bOgKWvQKsvIbyD48rR0ux6/HU6L+vMhdgLzH5yNsWyF3N1SJoTuLwPQXMPJpOJ994dScKVM7w00sHtx5U6Q1A1+H0ExFx2bFlamgR4B/Bp/U/xNHnSd1VfrsZddXVImgvphJAJvdi5PYHFwlg281NOXLzhuIJMJqODOfYKrHrXceVojyQoWxCT6k7i3M1zvLL6FeLNDpyrork1nRAyIRFh7Oh3Sbhylj5vf+TYwvKXh8d7G81Hp3TznrsKDwxnVI1RbIvaxqhNo1wdjuYiOiFkUl06tKNASBlWzPmcA2euOLawusMgWwH4eQCYHbSekvbIniz+JL0q9GLR4UX8efpPV4ejuYBOCJmUiPDBmFEkXj3PS+987NjCfLJBk/fh3L+wYZJjy9IeSe8KvSkWUIwxf4/hlvmWq8PRnEwnhEysU7vWBIWWY+28r9hx3MFr25RpCWVbG30J//7o2LK0NPPy8GL4/4YTeSOSaf9Oc3U4mpPphJCJiQgTx47GfO08/UY6uC9BxBh+WrQGLOwNR9c6tjwtzf5X4H80LdaUqf9OJfJ6pKvD0ZxIJ4RM7unWLShWuiKbfvqavw+fd2xhXr7Qfg7kCYXvO8HZXY4tT0uzQY8NwsvDi9GbR5Oe5yppqaMTQiYnInw0bjTm6xfoP3Ki4wv0ywGdfgTfAJj9NFw54fgytVQL9A+kb3hf/jr9F6tOrnJ1OJqT6ISg0bL5kxQvW4lti6ezZs9pxxeYvRA89xMk3oLv2sDNS44vU0u1DqU6UDJnScb9M46YBAeufaW5DZ0QNESESR+MxnzjAq+MmuicJoLAUtDhe7h2CuY8A/E3HV+mliqeJk/e/N+bnLt5ji93fenqcDQn0AlBA6BZ0yaUrFCFPb98y2+7nLQFZtEIaPsNnNkGP3bTcxTcUHhgOK1LtGbWnlkcuXrE1eFoDqYTggYYtYRPPhyLOfoSA98e57yOxNLN4ckP4eByY+Ka7sB0OwOqDMDfy5/3Nr2nO5gzOJ0QtDsaNWxApRp12bd8Jos3OXEfg8e6Q+0hsH0WrB7jvHI1m+TyzcWAKgPYcn4Lvxz7xdXhaA6kE4J2l2mfT0LFx/LasDed+22w7htQ6XlY9wH8843zytVs0ja0LeXzlOfDfz7kevx1V4ejOYhOCNpdwiuUp0GrDhxbv4hZyzc5r2ARaP4xlGwCywbBvqXOK1tLkUlMDP/fcK7cusJn2x24BavmUjohaPeZ9skHmDy9Gfr6686tJXh4wtPToVAV+LE7nNjovLK1FJXNXZZnSj7D9we+Z++lva4OR3MAnRC0+xQuVJCnu77EuV3rmPTdEucW7u0PHX6AHIVh7rPGukcWi3Nj0JLVv3J/cvjkYPSm0ViU/r1kNDohaA80Zfw7eAfkYeSIYZjNZucWniW3MXEtexFY0B2+rgtH1zg3Bu2BArwDGFR1ELsu7uKnQz+5OhzNznRC0B4oe7asdB8wjKsn9/H2R1OcH0DOovDiWmj9FcRcgpktYVYbvf6RG2hevDlV8lXh420fcyXOwXtpaE4l7jCuWETGAy2AeOAI0FUpleLmrlWrVlVbtuhduBzlVkIiuYuWxhJ3g0unj+Hn5+eaQBLi4J+vYd2HEHcNKjwDdYcbSUNzicNXDtNuaTueKvEUI6uPdHU4WiqJyFalVNV7X3eXGsIKoJxSqgJwEBjm4ng0wMfLk1dHvEvslfMMePN91wXi5QvV+8MrO6HGK7B3MXxaFZa/ATGXXRdXJlYiZwmeL/M8Px36iR1RO1wdjmYnblFDSEpEWgNPK6U6pXSsriE4XoLZQr5yNbhx/F9OnzhKYGCgq0OCa6dhzRjYMQe8s0LNAfB4H6NDWnOamIQYWi5uSaIlkWmNpxGcPdjVIWk2cvcaQlLdgF+Te1NEeonIFhHZcuHCBSeGlTl5eZgYMfI9Em/F8uJrblJxy14IWn4GfTYYG+6sehc+qQxbpulF8pzI38ufLxt8iUVZ6PZbN45eO+rqkLRH5LQagoisBPI/4K3hSqnF1mOGA1WBNsqGwHQNwTkSzBaK1GzN+c2/sHfPbkqVKuXqkO52YgOseAtO/QM+AUYfQ5UukL+8qyPLFI5cPUL337ojInzT+BuKZy/u6pC0FCRXQ3CbJiMReQHoDdRXStm0+LpOCM4z5bdt9H6qJhG1nuCvlclW4FxHKTi5EbbOgD2LwHzLmOBWpQuUbQM+WV0dYYamk0L64tYJQUSaABOBJ5RSNrcD6YTgPAlmC6HNenHit29YvXo1derUcXVIyYu5DLt+gC3T4eIB8M72X62hQAVXR5dhHb16lG6/dQNgWuNpFM+hk4K7cveEcBjwAW5vnbVJKdU7pfN0QnCuWesP0rVZTUKKFGDfru2YTO7YBZWEUnByk7XWsNCoNRSsbCSGcm11rcEBdFJIH9w6IaSVTgjOlWC2UK7TcA7+MJZZs2bx3HPPuTok28Vchl3zYOt0uLDfqDUUfwJyl4A8ocZ97lBjlrT2SI5eO0q35UZS+KbxN4TkCHFxRNq9dELQ7OL7v0/wQsv65DDFcfzIIddNVksrpSByM2ybaXRCXz4KloT/3vfLaSSG3CUgjzVJ5AmFnMHGfAjNJkevHaX7b91RSumk4IZ0QtDsIsFsofJLH7N7ykDGjBnDsGFuMhQ1rcyJcPUEXDps3C4e+u8++tzdx5o8QTzA5GHciwlMpiSv3X5sMo71zgJeWYz7+25Zwcv/v8ceXsYS4Iht9yIPiMXjv/KTxuSbHQIKOv2f9nZSsCgL0xpP00nBjeiEoNnNvH8i6dKxHXJ2D8eOHnGPyWqOcOuGNTkcNmoSiXGgzGAxGzWNO4/NoCzWx9Z7SwIkxEJ8tDE3Ij7Gem99br7l3J+lwUhjAp+TJU0K3zT6hhI5Szg9Bu1+OiFodpNgtvC/oTPZ/lEPXuzVky+++MLVIaU/5kRIuPlfsjDfsu4nrR5yz3/PleXuhHQ7Gd1JTEne27vYuNUebKwBJeLUH/XYtWN0/607ZmXWScFN6ISg2dW8fyLp0bsPN3cuZ9fOnZQtW9bVIWnJsZhh6SvGntWP94Em77s0KfQN70vDog3J6ZvTqTFo/0lPS1do6UDryoUo07w7Ht5+DBjwqnN3VtNSx+QBLSYbyeDvL2BJfyNJOFFw9mC+afwNuf1yM2rTKOrNq0e/Vf1YdnQZMQk2zUPVnMDT1QFo6ZOXh4nBTz1Gz786snLlFH7++WdatGjh6rC05JhMRs3AJyusG280VbWZYnRmO0lw9mAWtFjAgSsHWHZ0GcuOLWPtqbX4efpRr0g9ngx+koiCEXiZnBeTdjfdZKSlmdmiePLjNawf14WCAd7s3bMHb29vV4elpeTPj2Hl21CyCbT71mXDaS3KwtbzW1l2bBm/H/+d6/HXyemTk0bFGtGseDMq5q2ISXQjhiPoPgTNIdYdvEC7EV8QNf9txo8fz6BBg1wdkmaLf6bCLwMhuDa0n+vyWdsJ5gT+PP0ny44tY03kGuLMcRTMUpAWIS14oewLZPPO5tL4MhqdEDSHef6bv1k87mXk/H4OHTqUcYehZjQ7v4dFfaBQVeg0H/xyuDoiAG4m3OSPk3/wy7Ff2HB6Azl9czKg8gBalmipawx2YrdOZRHJIiIe9glLywiGNilFQJ1uRN+MYcSIEa4OR7NVxfZGk9GZ7fBtc7h50dURAZDFKwstQlrwZYMvmdt8LoWzFeatDW/R6ZdO7Lqg99R2pBQTgoiYRKSjiPwiIlHAfuCsiOwRkfEiEur4MDV3Vq5Qdp6p/zgBVZozdepUduzQWyqmG2Wego7fG5PvpjeF62dcHdFdyuYuy6ymsxhTcwznY87TaVknhv85nIux7pG8MhpbagirgRCMfY7zK6UKK6UCgVrAJmCsiKSjVc40R3itUUly1eqIb9YcDBgwQA9DTU9KNIDnFsD1szCtCVw+5uqI7iIitAhpwdLWS+lWrhvLji2j+cLmzNg9gwRzQsoX0GxmS0JooJQapZTapZSy3H5RKXVZKbVAKdUW+MFxIWrpQVBOf3rUK4df9Q6sXbuWBQsWuDokLTWK1YAXFsOt6zCrtdPnKdgii1cWXq3yKotaLqJqvqpM2DqBNkvasP7UeleHlmGkmBCUUnel4Af1Idx7jJY5vVS3BEGPNydHUAkGDx5MXFycq0PSUqNQFWj+EVw5Bkf+cHU0ySoaUJRP63/KZ/U/Q6F4adVL9FvVj5PXT7o6tHRP9yFodpPdz4v+DcLwrtmV48ePM3HiRFeHpKVWWDPwz20sc+HmagfVZuFTC3mtymv8c+4fWi1uxQ/7dWPFo9B9CJpdPR9RlNDw/5GvfC3GjBnDmTPu1UmppcDTGyq0h/3L3GbU0cN4eXjRtVxXfm79MxXzVuTjbR8Tmxjr6rDSLd2HoNmVj6cHgxuH4RHRmVvxCbzxxhuuDklLrUrPGct375rn6khsltc/Ly+Fv0R0QjQrTqxwdTjpVlr6EN4VkdEi0u52c5HuQ9CSalGhIJXLlSIwojXffvstmzdvdnVIWmrkK2PsPb39O+vS2+lD1XxVKZKtCD8d+snVoaRbqYTkHp4AACAASURBVJ6YppR6C5gM3ADaisjXjxqEiIwSkV0iskNEfhcR52/vpNmNySQMe7IUHpXbEpAzjx6Gmh5Vfh6i9sCZba6OxGYiQuvQ1mw9v5Xj1467Opx0KU3zwJVS55VSy5VSY5VSPe0Qx3ilVAWlVDjwM/CWHa6puVD1kDzUr1CUbLWeZ+PGjcydO9fVIWmpUa4tePoatYR0pGVISzzEg4WHF7o6lHQpVQlBRAqLSBMRGSQi34qIXRYSUkpdT/I0C9a9obT07fWmpfEqXZeCIWUYOnQoN2/edHVImq18s0OZlvDvj8aObulEXv+81AqqxeLDi0mw6Jbs1LJl2OmLIrJBRK4CB4EeQFZgCdDRXoFY+yUigU7oGkKGEJY/G+2qFsEU0YVTp04xfvx4V4ekpUal542JavuWujqSVGkb2pZLcZf0hLU0sKWGMAx4FaiC0ZzjC0yzjjA6aGtBIrJSRHY/4NYSQCk1XClVGJgN9HvIdXqJyBYR2XLhwgVbi9dc5NWGJclSrByhEY0YN24cJ0/qyUPpRtEakLNYupiTkFTNQjXJ65dXdy6ngS0JoblS6m+l1BGlVDvgU2CpiLwqYvtatEqpBkqpcg+4Lb7n0DlA24dcZ4pSqqpSqmrevHltLV5zkQLZ/eheM5iY8PYoBe3atePy5cuuDkuzhclkDEE9vh4uH3V1NDbzNHnSskRL1p9ez/mb510dTrpiy7DT3fc8Xw5UA3IBf9kjiHtmOz+FMRtayyBefCKEwAJBVOv+Ljt27KBu3bqcP6//o6YLFTsCAjvmuDqSVGldojUWZWHJkSWuDiVdSesoo1tKqTeBF+wUx1hr89EuoBHwip2uq7mBAF8vXq5XgpPZyvDe599x+PBhateuTWRkpKtD01KSvRCUqG8kBDdc8C45RQKK8Fj+x1h4eCGW/+bTaimwpVO5SHI3IC7J84C0BqGUamttPqqglGqhlDqd1mtp7qnj40UpmtufP6Lzs3z5b5w7d45atWpx+PBhV4empaTS83D9NBxZ7epIUqV1idZE3ohkyzm9q6KtbKkhfAvMsN4nd5sBtHJIhFqG4O1p4rWGJdl39jpXAorzxx9/EB0dTe3atdmzZ4+rw9MeJqwp+OVKd53LDYs2JJtXNn46rDuXbWVLH0JdpVQ9631yt3pKqZnOCFhLv1pUKEip/NmY+PsBKoRXYu3atQA88cQTbN261cXRacny9DG229z/C9y85OpobObr6cuTxZ9kxfEVXLt1zdXhpAuPMjFthr0mpmmZg8kkDGwUxvFLMSzYeoqyZcuyfv16smbNSr169fjzzz9dHaKWnNsL3v2bfha8A2NOQrwlnmXHlrk6lHQhNRPTrnH3xLSl2HFimpY5NCgdSHjhHExadYi4BDMhISGsX7+e/Pnz06hRI1as0CtVuqV8ZaFgJdg2K10teFc6d2lK5yqt5yTYKDUT0yrzCBPTNA2MBciGNA7j7LU4Zv9tTFIrXLgw69atIzQ0lObNm7N48b1TUzS3UOn2gnfbXR1JqrQJbcP+y/vZe2mvq0Nxe06bmKZpt1UvkYcaJXLz+erDRN9KBCBfvnysXr2a8PBw2rZty5w56Wvce6aQThe8e7L4k/h4+Ohagg3cYmKalvkMahTGpZvxTP/z2J3XcuXKxcqVK6lVqxbPPfccU6ZMcWGE2n38ckDpp4wF7xLSz65kAd4BNCzakGVHl+nd1FJgSx+C3PvavRPTHnSMpj1MpSI5aVgmH1PWHeVqTPyd17Nly8ayZcto0qQJL774Il27diUqKsqFkWp3qfw83LqW7ha8axPahhsJN1h5YqWrQ3FrNu2pLCL9rRPR7hARbyBIRL7FfjOWtUxkYKOSRMcn8uXau9fJ8fPzY9GiRbz++uvMnj2bsLAwvvzyS8zm9DNTNsMqWhNyFE13cxL0bmq2sSUhNAHMwFwROSMie0XkKHAI6AB8pJSa4cAYtQyqVP4AWlYsyIwNx4i6HnfXe97e3rz//vvs3LmTSpUq0adPHyIiIvR8BVczmYzO5WPr4PKxlI93E7d3U9tyfgsnrp9wdThuy5Y+hDil1OdKqRpAUaA+UFkpVVQp1VMptcPhUWoZ1oAGJUk0Kz5d/eAlLEqXLs2qVauYPXs2J0+e5LHHHqNfv35cvXrVyZFqd4R3ID0uePdUyFPGbmqH9G5qyUnVKCGlVIJS6qxS6iqAiPiIyGOOCU3LDIrlycIzjxVm7uaTRF5+8M5cIkLHjh05cOAA/fr144svviAsLIxZs2bpvZpdIXsQhNRLdwveBfoHUqtQLRYfWUyiJdHV4bilVA8btQ43nS4iC4FdGE1KmpZmL9cLRUT4eOWhhx6XPXt2Jk+ezJYtWwgODqZz587UqVNHr4XkCpWfh+un4Gj6WvCuTWgbLsZe1LupJSMt8wgeB1YqpVoDfyilRtk5Ji2TyZ/dlxciirJw+ykOnb+R4vGVKlViw4YNTJkyhd27dxMeHs6QIUOIjo52QrQaAGFPgl/OdDcnoVZQLfL45dGdy8lIdUJQSrUHbojILCCf/UPSMqM+dUrg7+3JhN9tm/xuMpno2bMnBw4c4IUXXmD8+PEULVqUZ555hq+++orDhw/r5iRH8vSBCs8aC97FpJ8d8DxNnrQMMXZTi4rRw5nvldYNcpZgrGm0TUS+tm9IWmaUK4s3PWoFs3zPOXZG2t5hnCdPHqZOncpff/1F8+bN2bBhA7179yY0NJTg4GC6d+/OnDlzOHfunAOjz6QqPQfm+HQ3BLV1aGvMyqx3U3sASelblIi8AEzASB4/A32VUjeSvF9YKeWSra+qVq2qtmzRC65mFDfiEqj9wWrKFcrOrO6Pp+kaSikOHjzIqlWrWLVqFatXr+bKlSsAlC1blvr161O/fn2eeOIJsmfPbs/wM6eZreDYWmg2Aap2c3U0Nuu6vCvnY87zS+tfyIzzakVkq1Kq6n2v25AQDgPtgNNAfyCHUqq/Q6JMJZ0QMp6v1x1l9LJ9zO35PyJCcj/y9cxmMzt27LiTINavX09sbCwmk4ny5csTHh5OxYoV79xy5370MjOV+Jswvysc+g1qD4a6wyEdfMAuPbKUN/58g2mNp/FY/sw3UPJREsI2pVTlJM//Vkql7eubnemEkPHEJZh5YvxqgnL682PvCLt/e7t16xYbN25k1apVbNmyhR07dtzVnBQUFHRXkggPDyckJASTSa/jmCxzIvzyKmybCeHPQYuPwcPL1VE9VGxiLPXn16dGwRqMf2K8q8NxuuQSgqcN5xYQkV7APmA/4N6/aS1d8/Xy4OX6oQxfuJvVB6KoV8q+4xZ8fHyoU6cOderUufNaVFQUO3fuZMeOHXfuf/311ztLZWTJkoVy5cqRJ08e/Pz88PPzw9/f/6H3fn5+eHl53bl5enre9fzem6enJyaTCZPJhIg89LGIuFczh4cntJgMAYVgzfsQfR7azQCfrK6OLFl+nn60LtGaOfvmcCHmAnn987o6JLdgSw2hF1ABKG+9ZQVWAjuBXUqpuXYLRmQQMB7Iq5S6mNLxuoaQMSWYLdSfsJYsPp4s7VcDTw/nfzuPi4tj7969d5LE7t27uXbtGjExMcTGxt5174o1lry8vO4knpRu+fPn5/XXXydHjhyOD2zrt/Dzq1CgAnScD1nd94P25PWTNFvYjJcqvkSf8D6uDsep0txk9IALBfFfgiinlHreTgEWBqYCpYAqOiFkbot3nOaV73eQzdeTGiF5qF0yL7VL5iEop7+rQ7tPQkLCfUkiNjaWhISEB94SExMf+JpSCovFgsViSfbx7dutW7eIjY1N9hYXF3fn8enTp6lVqxbLly/Hx8fH8f8gB5bD/C6QLT88twByhzi+zDTqs7IP+y/v5/e2v+Pl5s1c9vQofQiiUjjIlmNsCPBHYBSwGKiqE0LmppRi5b4oVu49z7pDFzh7zVj8rnjeLDxRMi+1S+blf8G58fP2cHGk7m/27Nk899xzdOjQge+++845/SGntsCcZ4zHHedDUBXHl5kG606to++qvoyvPZ4mwZln0YVHSQhrgAXAYqXUySSvewM1MZa+Xv0oK56KyFNAfaXUKyJynIckBGsTVi+AIkWKVDlxQq9cmNEppTgcFc3agxdYd+gifx+9xK1EC96eJqoVy0XtkkYNIixfNvdqW3cjY8eOZdiwYQwdOpSxY8c6p9BLR+C7NhAdZfQplGzsnHJTwaIsNPupGYH+gXzb9FtXh+M0j5IQfIFuQCcgGLgK+GHMS/gd+MyWFU9FZCWQ/wFvDQfeABoppa6llBCS0jWEzCkuwczfxy6z7uAF1h28wKEoY8mK/AG+1AnLS91SgdQokYesPraMmcgclFL07duXL774gk8//ZS+ffs6p+DoKJjdDs79a4w+qtzZOeWmwrd7vuXDLR/yY4sfCcsV5upwnMIufQgi4gXkAWJvr3hqh8DKA6uA20tdBgFngGpKqYdOL9UJQQM4czWW9YcusObABdYfukj0rUS8PIRqwbmoGxZI3VKBFM+TJdPXHsxmM23atGHp0qUsWLCA1q1bO6fgW9EwrzMcWQV1hsETQ91qrsK1W9eoP78+LUJa8HbE264Oxyns1qnsaLqGoD2K+EQLW09cYc2BKP7YH3Wn9lAklz91w/JSp1QgEcVz4+uVOfseYmJiqFevHjt37uSPP/4gIiLCOQWbE2DJy7BzjrHrWpP3jZFIbuLtDW/z67FfWdluJQHeAa4Ox+EeOSGIiA/QFihGkvkLSql37RTj7XKOoxOCZieRl2NYc/ACa/ZH8deRi8QlWPD1MlE9JA8dqxWhQZnMtz7jhQsXqF69OleuXGHDhg2ULFnSOQUrBVunw6pREHsFqrwA9d6ELHmcU/5D7Lu0j2d+foYhjw3h+TJ2GTjp1uyREJYD14CtGFtqAqCUmmCvIFNLJwQtNW73PazeH8WKvec5fTWWDtWK8Gbz0vh7Z67+hiNHjhAREUHWrFnZuHEj+fI5MTHGXoG1H8DmKeCVBZ4YAtV6gae382J4gOeXPc/luMssbb0Uk2Tsmen2SAi7lVLl7B7ZI9AJQUur+EQLE1YcYMq6owTnycLk9pUoVyhzLXa3efNm6tSpQ5kyZVizZg1Zszp5ZvGFg/DbMDi8EnKXgMbvQ8lGzo0hiWVHlzF0/VC+aPAFNQvVdFkczpBcQkhNGtxg7QDWtHTP29PEsKal+a7740THJdLm8w1MXX8Ui8W9+tQcqVq1avzwww9s376dZ599lsREJ28rmbekMXGt43zj+Zx28N3TRqJwgYZFG5LbNzff7//eJeW7g9QkhJoY+x8cEJFdIvKviOxyVGCa5gw1SuRh+YDaPBGWl/d+2ccL0zcTdSPO1WE5TYsWLfj8889ZtmwZL730kms2FSrZCPpshMZjIPJv+CIClg+DWLsMZLSZl4cXT5d8mnWn1nHqximnlu0uUpMQmgAlgIZAc6CZ9V7T0rVcWbyZ8nwV3mtVjs3HLtP04/X8sf+8q8NymhdffJHhw4fz9ddf895777kmCE9viOgL/bcZG+9s+gI+qQzbZzs1jHYl22ESE/MOzHNque7ClolpN4AHHSSAUkq5bIyW7kPQ7O3Q+Rv0n7ud/edu0KV6MV5vWipTDFFVStGlSxdmzpzJ9OnT6dKli2sDOrsTlg2ByE3w4nqnDlF9bc1rbD63mZVPr8TX09dp5TpTmvsQlFLZlFIBD7hlc2Uy0DRHCM2XjUV9a9CtRjAzNhyn1Wd/ceDcjZRPTOdEhK+//pr69evTu3dvjhw54tqAClSEjj+Ad1bY+KlTi+5QqgPXbl3j12O/OrVcd+B2E9NSQ9cQNEdafSCKwfN3ciMukTeeLE2dMPddyvlh/Lw8CAyw7ZvumTNnCAsLo27duixZ4gZ7Di8fZgxPfWUXZC/klCKVUrRZ0gYvkxc/NP8hQ85wTzczlVNDJwTN0S7cuMWg+TtZe/CCq0N5JIv61iC8sG37IYwfP54hQ4bw888/06xZMwdHloIrJ2ByOET0g0ajnFbsvAPzGLVpFLOaziI8MNxp5TqLTgialkYWi2LtwQtciYl3dSipphSMWLSbVpUK8X4b20aNx8fHU7FiRRISEti9eze+vi5uR5/f1Zir8Ooe8HVOK3VMQgz159fnicJPMLaWk1aHdaJH2UJT0zI1k0moWyrQ1WGk2V+HL/LzrjO83aKMTR3k3t7eTJ48mUaNGjFhwgSGDx/uhCgfono/2PMTbJ9ljERyAn8vf1qWaMkPB35gUNVB5PFz/fIazpCx52drmkbbKkHciEtkxV7bh9I2bNiQtm3bMnr0aE6ePJnyCY5UqAoUrWEMRTU7b/Lcs2HPkmhJ5KdDPzmtTFfTCUHTMriI4rkpmN2XBdtSN9lq4sSJAAwcONARYaVORD+4Fgl7FzmtyODswUQUiGDegXkkWpw8i9tFdELQtAzOZBJaVy7EuoMXiLpu+yzsIkWKMHz4cH788UdWrlzpwAhtULKJsd7Rhk+MjhEn6VCqA+djzrMmco3TynQlnRA0LRNoUzkIi4KF20+n6ryBAwcSEhJC//79iY93Yae6yWT0H5zdASf+clqxtYNqUzBLQebun+u0Ml1JJwRNywRC8malcpEcLNh2KlXrFfn6+jJp0iT279/P5MmTHRihDSp2AP/csMF5E9U8TB48E/YMm89t5vCVw04r11V0QtC0TKJtlSAOno9m9+nrqTqvWbNmtGjRgpEjR3LmzBkHRWcDLz94rCcc/NWpK6K2CW2Dt8mb7w9k/FVQdULQtEyieYWCeHuaUt25DPDRRx+RkJDA4MGDHRBZKjzWAzx9YdNnTisyp29OmgQ3YcmRJRy7dsxp5bqCTgialklk9/OiYZl8LN5xmvhES6rODQkJYciQIcyZM4d169Y5KEIbZM0LFdvDjrkQ7bzZ493LdcfHw4dnf36WhYcWumaZcCfQCUHTMpGnKwdxJSaB1QeiUn3u66+/TtGiRenXr5/zN9NJKqIfmG/BP1OdVmTxHMX5scWPlM9Tnrc2vMXQdUO5EZ/xFj3McEtXJCQkcOrUKeLiMs8mJ5p78PX1JSgoCC8vL1eHkqxEs4WIsX9QqXAOpnS+b+WCFC1cuJA2bdowadIkXn75ZQdEaKM57eHUZmM5Cy8/pxVrtpiZtnsan+34jPxZ8jOu9jgq5q3otPLtxa3XMhKRd4CewO064BtKqWUpnfeghHDs2DGyZctG7ty5M+QqhZp7Ukpx6dIlbty4QXBwsKvDeajRv+xlxobj/P1GA3JlSd3G9kopmjRpwqZNmzh48CD58uVzUJQpOP4XzHgSmn8EVbs5vfgdUTsYum4o52PO069SP7qV64ZJ0k+Diz32VHa0j5RS4dZbiskgOXFxcToZaE4nIuTOnTtd1EzbVgkiwaxYsiN1cxLA+DknT55MbGwsw4YNc0B0NipaHQpWgo2fgSV1/SH2EB4Yzvyn5tOgaAMmbZtErxW9iIpJfTOcu3GnhGA3OhlorpBe/u5K5Q+gbMEAFmxLfUIACAsL47XXXmP69Ols3LjRztHZSASq94dLh+HgcpeEEOAdwPja4xlZfSS7Luzi6SXGfszpmTslhH4isktEpolIzuQOEpFeIrJFRLZcuJC+16jXNFdpWzmIf09f4+D5tHWMjhgxgkKFCtGvXz/MZrOdo7NR6ZaQvYixnIWLiAhtQtvwfbPvCfQPpO+qvozbPI54c/pbKh2cmBBEZKWI7H7ArSXwBRAChANngQnJXUcpNUUpVVUpVTVvXvfcwerUqVO0bNmS0NBQQkJCeOWVV2ya9j9mzJiHvr99+3ZEhN9++y3ZY7Zu3Ur58uUpUaIEL7/8coYdHqc9mpbhBfE0CQu2pn5OAkDWrFmZMGEC27Zt49NPnbvF5R0envC/PnByA5za6poYrIrnKM7sZrPpVLoT3+37jk7LOqXLOQtOSwhKqQZKqXIPuC1WSp1XSpmVUhbga6Cas+KyN6UUbdq0oVWrVhw6dIiDBw8SHR1t05ryKSWEuXPnUrNmTebOTX5dlT59+jBlyhQOHTrEoUOHWL7cNdVpzb3lzupD3VKBLNx+mkRz2trgn3nmGZo3b86rr77KzJkz7RyhjSo/Dz7ZYaPragm3+Xj48Hq11/mk3iecu3mO7r91JzYx1tVhpYpbbJAjIgWUUmetT1sDu+1x3ZFL97D3TOqm6aekTMEA3m5RNtn3//jjD3x9fenatSsAHh4efPTRRwQHBzNy5EjmzZvHli1b7nyrat68OYMGDWL58uXExsYSHh5O2bJlmT179l3XVUrx448/smLFCmrVqkVcXNx9O1mdPXuW69evExERAUDnzp1ZtGgRTZs2tec/gZZBtK0cxIq951l/+CJ1w1K/AZCIMG/ePJ566im6dOmCUooXXnjBAZE+hE82qNrFaDa6cgJyFnVu+Q9Qp3AdJtWdxAvLX+D7/d/TtVxXV4dkM3fpQ/hARP4VkV1AXeBVVweUVnv27KFKlSp3vRYQEECRIkU4fDj5xbHGjh2Ln58fO3bsuC8ZAPz1118EBwcTEhJCnTp1WLbs/oFYp0+fJigo6M7zoKAgTp9OW8ehlvHVKxVITn+vNDcbAfj5+bFkyRIaNGhA165dmTFjhv0CtFW1F0FMxgY6bqJyvsrUKFSDb3Z/Q3R8tKvDsZlb1BCUUs874roP+ybvKEqpB442Se51W82dO5f27dsD0L59e2bNmkWbNm3uK+Ne6WXki+Z83p4mnqpYkLn/RHItNoHsfmmbUOfn58fixYtp1aoV3bp1Qyl1p4bsFNkLQbmnYdtMqDMU/JIdk+JU/cP70/6X9szaN4s+Ffu4OhybuEsNIcMoW7Ys906Wu379OpGRkYSEhODp6YklybhpW8atm81mFixYwLvvvkuxYsXo378/v/76Kzdu3D1CJCgoiFOn/vu2d+rUKQoWLPiIP5GWkbWtEkR8ooVfdp1N+eCH8PPzY9GiRTRs2JDu3bszffp0O0Voo+r9IOEmrHwHIv+BOPs2FadF2TxlqV+kPjP3zOTarWuuDscmOiHYWf369YmJibnTyWY2mxk4cCBdunTB39+fYsWKsWPHDiwWC5GRkWzevPnOuV5eXiQkJNx3zZUrV1KxYkUiIyM5fvw4J06coG3btixadPd2ggUKFCBbtmxs2rQJpRQzZ86kZcuWjv2BtXStfKHshAZmTdMKqPe6nRQaNWpE9+7dmTZtmh0itFH+8lCmFWydAd80gLGFYWJZ+K4t/D4Cts+G01vhlnObb/qG9+Vmwk2m73ZygkwjnRDsTERYuHAh8+fPJzQ0lJIlS+Lr63tnBFGNGjUIDg6mfPnyDBo0iMqVK985t1evXlSoUIFOnTrddc25c+fSunXru15r27Ytc+bMua/8L774gh49elCiRAlCQkJ0h7L2UCJC2ypBbD1xhWMXbz7y9ZImhR49ejg3KTw9Hfpvg/ZzoN6bUDQCbpyHv6fA4pfg63rwfiH4uDzMfgZWvG10RDtQaM5QmgY3Zc7+OVyMvejQsuzBLdYySqsHrWW0b98+Spcu7aKItMwuPf79nb8eR8T7q+hbtwQDG4XZ5ZpxcXG0atWK33//nalTp9Ktm/PXG7rDnAhXjsOFfRC1/7/7iwfBLwd0mm8sg+EgJ66foOWilnQo1YGh1YY6rJzUSA9rGWma5gL5AnypGZqXn7adxmKxzxdEX19fFi1aROPGjenevTvffPONXa6bJh6ekKcElG4BTwyGp6fBSxugzwbw9IPpzeDQSocVXzSgKC1LtOSHAz9w7uY5h5VjDzohaJpG28qFOH01lk3HLtntmr6+vixcuJAmTZrQo0cPpk513v4FNslbEnqsgNzFYc4zRj+Dg7xY4UUUiq92feWwMuxBJwRN02hcNj/ZfDxZsNW+81ZuJ4WmTZvSs2dP90sK2fJDl2UQXNvoZ1g7HhzQjF4wa0HalWzHokOLiLweaffr24tOCJqm4evlQfOKBfh191lu3rLvbmi+vr789NNPd5JC06ZNmTVr1n3Dpl3GNwA6zoMK7WH1e/DzAKPfwc56lu+Jp8mTL3a6zwS6e+mEoGkaYCxlERNvZvlu+7dz304KI0aMYN++fXTu3Jl8+fLRvn17lixZYtPijw7l6Q2tv4SarxlDV3/oBPGPPuoqqbz+eelQqgM/H/2ZI1eP2PXa9qJHGWmaHaXnvz+lFHU/XIMCHiuWy3HlWCycObiTfX/+ysGNK4i9cQXfLAGUjGhIqZpNCSpVGTEZ31Wz+3nR/rHChObL5rB47vPPVFg2GApWho4/QJY8drv01birNPmpCdULVmdinYl2u25qufUWmmnlrgnh1KlT9O3bl71792KxWGjevDnjx4/H2/vh2xWOGTOGN954I9n3t2/fTuXKlVm+fDmNGzd+4DHDhw9n5syZXLlyhejo9LOGSkbhDn9/j2LeP5FMWnXIaeVZzIlcO7SVCztXcXnvX1ji4/DOnpc8FeuSt2J9bmYzdnerE5aXnrWKUz3ESbsh7vsZFnSHgILw3ALIVdxul/5sx2d8ufNL5jWfR+ncrvlb0QnBSZRSPP744/Tp04euXbtiNpvp1asXuXLlYvz48Q89N2vWrA/9EB8yZAgbN24kJCQk2UXENm3aRNGiRQkNDdUJwQVc/feXnt28eZMlS5YwZ84cli9fTmJiImXLladWp1f5JzGIi9HxlCkQQI9awTSvUBBvTwe3eJ/8G+Y+C+IBneZBoSopn2ODG/E3aLKgCeGB4XxW/zO7XDO1MmdC+PV1OPevfQvNXx6ajk327VWrVjFy5EjWrftvK73r168THBxMZGTkQ5e/Hj9+POXLl092+euQkJA7y18fPXr0vuWvk0opuWiOoROCfVy6dIn58+czYcIEDh8+TPMWT9Gw22CWHjVzKCqafAE+dKkeTMdqRcjun7ZF+Wxy8RB81wZuXoR2vkJ+TwAAFntJREFU30LJRna57NR/pzJp2yRmNZ1FeGC4Xa6ZGnpimpO4cvlrTcsocufOTe/evdm9ezdjx45l9R+rGNK+AY9d/I3PnylDicCsjFu+n4ixq3hnyR4iL8c4JpA8odB9JeQuAXPbGwvn2UHHUh3J5ZuLT7e7aLe5ZLjF8tcO85Bv8o7iyuWvNS2j8fHxYejQoTz//PMMHTqU999/n0IzZzJ+/HiG9W/KtL+OM/vvE8zceJzGZfNTt1QgJhv/n3mYoH7pfAT4plDDyJYPui4zOpvt1Gzk7+VPz/I9GffPOP4++zePF3jcLtd9VBk7IbhA2bJlWbBgwV2vJV3+eufOnWle/nrJkiWMHj0apRSXLl3ixo0bZMvmxNEXmuYiBQsWZNasWfTu3ZuXX36Zjh07UrNmTSZPnsyQxvX4duNxZm86wa+pHDLbs1Yww5uVSflAn2xQ0777drULa8eMPTP4ZPsnVMtfzT32LlFKpdtblSpV1L327t1732vOZLFYVJUqVdS3336rlFIqMTFR9ejRQ7322mtKKaXWr1+vIiIilNlsVidPnlTZsmVTq1evVkoplSNHDhUfH3/fNZcvX67+3969R1VV5n8cf39BCIQyFVOU8hZqSQlIWl5Cx8zbTKKZjZoGNkutMa0czSZXXtIG6eaUqxx1zNIGHUvJLuToz9JRSWXioKTmhSgYHUMdHG+JwPP7AzxLuR70nLMP8H2tddaCc56z92fr2Xz3s8/ez/Pggw9e9dyYMWPMBx98UGGOgIAAJ22Rqg6rP391QUFBgVmyZIkJCgoyImLGjx9vcnNzzYX8AvPTyXMOPx5fttPcM3ejKSgssmxb/v79303Y8jCzJXuLW9cLpJpy/qbqdwhOZvXw19OmTSMkJITz588TEhLCrFmznL+RSlnI29ub3/3udxw8eJBJkyaxdOlSQkNDWfqXdwm+yZdbG9V36DE86lZ+PnORlCPOG7+pumJujyEkMIS3096myBRV/QZXK69K1JSHJ/YQVN2mnz/3y8jIMH369DGA6dmzpykqcuyI/0J+gQl76Uvz3GqbixNWbv3h9SZseZhJ/iHZbetEewhKqdqoY8eObNy4kY8//phx48Y5fC7ez8ebgXcF82XGMS7kF7o4ZcUGth5Iu4btmL9rPqd+OWVZDvCgy05F5GkR+V5EvhORBKvzKKVqDhFh6NChPPbYY9V6X0xEC87lF/KPfdbNU+Dt5c0rPV7h9MXTzNoxC2PhvWEeURBEpDcwGLjbGNMReM3iSEqpOqBr60YEN/AjKc25w35XV/tG7ZkcOZmvsr9i7aG1luXwiIIAPAnEG2MuAhhjfrY4j1KqDvDyEgaHt2DroROcOHvR0iyj7xxN12Zdmb97Pj/+z7VzPVfEUwpCO6CniOwUkS0ick9FDUVknIikikhqbm6uGyMqpWqjIREtKCwyfJZ+1NIcXuLF3B5zqedVjxf++QKXii65P4O7ViQim0Qko5zHYIpvkGsI3AtMBf4uFXwzZIxZbIyJMsZENWnSxF3xlVK1VPtmN3JH8E2ss1lbEACaBTTjpfteYu+JvSzZs8Tt63dbQTDGPGCMCSvn8QmQA6wtuSJqF1AEOG8QcjfLyclh8ODBhIaG0rZtWyZPnuzQBCCX71WoSFpaGiLChg0byn39/PnzDBo0iA4dOtCxY0emT59+TfmVqmuGRDQnPTuPzFzrB4Ts36o/v2nzG/6y5y/Yfra5dd2ecsooCfgVgIi0A3yBE5YmukbGGIYOHUpMTAyHDh3i4MGDnD17lhdffLHK91ZVEBITE+nRoweJiYkVtvnDH/7AgQMHSEtLY/v27SQnJ1d7G5SqawaHt0AEkjyglwDwx65/JDggmBf++QLnLjl35rbKeMpYRsuAZSKSAeQDjxsnXHs1f9d8Dpw6cN3hrtShUQee7/J8ha9v3rwZPz8/4uLigOK7Kt98801at27N7NmzKx3++sKFC4SHh1c4/PVHH31kH/76l19+KTP8df369enduzcAvr6+REZGkpOT48zNV6pWanqTH93bBpGU9m+efSDU8nGFAn0DmddjHmM3jGX+rvnM6T7HLev1iB6CMSbfGPNYySmkSGPMZqszXStPGf46Ly+PTz/9lD59+lzbhihVx8REtOCnU+f59qc8q6MA0LlpZ54Ie4J1h9ex6cdNblmnp/QQXKKyI3lXMR4w/HVBQQEjRoxg0qRJtGnjvKn/lKrN+nVsyowkL5LS/k3nlg2tjgPAk52eZPvR7cxKmcXdTe7mlvq3uHR9HtFDqE06duxI6Vncrhz+ul69etc8/PWcOXNo1aoVTz/9NMnJyZw5c6bc9uPGjSM0NJRnnnnm+jZGqTrkRj8f+t7ZjE/3HCW/wAMGmgN8vH2I7xnPxYKLzNg2w+UD4GlBcLI+ffpw/vx5PvjgA6D4j/mUKVOIjY2lfv36tGrVCpvNRlFREdnZ2ezatcv+Xh8fHy5dKnvt8aZNm+jUqRPZ2dlkZWXx448/8vDDD5OUlFSm7YwZMzh9+jQLFixw3UYqVUsNiWhO3vlLbDnoOfc4tW7Qmqn3TCXlWAqJByq+oMQZtCA4mZXDX+fk5DBv3jz27dtHZGQk4eHhLF261EVbqlTt0zO0CY0CfC0fyqK0R9o9QnRING+kvsHh/1b8XeT1EisHUrpeUVFRpvTpGZ3kXFlJP38138xPMkjcnU3qjAeqnl7TjU5eOMnQ9UMJ8g8icVAivt6+17wsEfmXMSaq9PPaQ1BKqSvERLQgv6CIL/daNwJqeRr7N2ZOtzkc/O9B3k572yXr0IKglFJXCL/1ZloHBbDOw04bAUTfGs3wdsN5/7v32Xlsp9OXX6svO1VKqeoSEWLCW7Dg/w5yNO8CzW/2tzrSVaZETaGIIlo3aO30ZWsPQSmlSomJaI4xsN7iEVDLU9+nPjPvm+mSexK0ICilVCktGwcQedvNHne1katpQVBKqXIMiWjBgf+cYf+x/1kdxW20IDhZXl4e77zzTpXtsrKyytxHUFG7sLAwZ0S7Zt26dbN0/VcKDAysVvvY2Fg++uijMs+npqYyadIkAJYvX87EiRMBWLRokf2mwuXLl3P0qOedMlDuMeju5tTzkjrVS9CC4GTOLgjXo6CgwCnL2bFjh1OW4whjzFVDe7hKVFQUb731VpnnJ0yYwJgxYwAtCHVdowBferVvQpLt3xQW1dz7taqjVl9l9Mwzz2CzOXeCifDw8EqHhZg+fTpHjhwhPDycvn37kpCQwLRp00hOTkZEmDFjBo8++ijTp09n//79hIeH8/jjjzNkyBBGjx7NuXPFY58vXLiwyiPzhIQEVqxYgZeXFwMGDCA+Pp5evXrRrVs3tm/fzkMPPcSwYcMYO3Ysubm5NGnShPfee4/bbruNNWvWMHv2bLy9vWnQoAFbt27lu+++Iy4ujvz8fIqKivj4448JDQ0lMDCQs2fP8vXXXzNr1iyCgoLIyMigc+fOrFy5EhHhiy++4LnnniMoKIjIyEgyMzP57LPPrsq7fPly1q1bx8WLF/nhhx8YOXIkM2fOJCsriwEDBtC7d29SUlJISkpix44dvPLKKxhjGDRoEPPnz7cvZ8qUKXz11Vc0bNiQVatW0aRJE5YsWcLixYvJz8/n9ttvZ8WKFdSvXx8oHvrjz3/+M8ePH+eNN97g17/+NV9//TWvvfZamYyzZs0iMDCQVq1akZqayqhRo/D392fevHksXbqUdevWAbBx40beffdd1q61bkJ05XoxES3YtP9nvsk8Sffba+ycXQ7THoKTxcfH07ZtW2w2G6+++ipr167FZrORnp7Opk2bmDp1KseOHSM+Pp6ePXtis9l49tlnueWWW9i4cSPffvstq1evtp/OqEhycjJJSUns3LmT9PR0pk2bZn8tLy+PLVu2MGXKFCZOnMiYMWPYs2cPo0aNsi93zpw5bNiwgfT0dNavXw8Uny6ZPHkyNpuN1NRUQkJCyqw3LS2NBQsWsG/fPjIzM9m+fTu//PIL48ePJzk5mW3btlHZXNe7du3iww8/xGazsWbNGvtAgN9//z1jxowhLS0NHx8fnn/+eTZv3ozNZmP37t32cZvOnTtHZGQk3377LdHR0cyePRuAoUOHsnv3btLT07njjjv461//al9nVlYWW7Zs4fPPP2fChAkODSg4bNgwoqKi7FkHDhzI/v377dv23nvv2ee8ULXXA3c0JfCGeh55T4Ir1OoegicM8LZt2zZGjBiBt7c3TZs2JTo6mt27d3PTTTdd1e7SpUtMnDgRm82Gt7c3Bw8erHS5mzZtIi4uzn4U3KhRI/trjz76qP3nlJQU+1Hs6NGj7YWje/fuxMbGMnz4cPsw2vfddx/z5s0jJyeHoUOHEhoaWma9Xbp0sReK8PBwsrKyCAwMpE2bNrRuXXxd9IgRI1i8eHG5ufv27Uvjxo2B4j/i27ZtIyYmhpYtW3LvvfcCsHv3bnr16sXlObNHjRrF1q1biYmJwcvLy759jz32mD17RkYGM2bMIC8vj7Nnz9KvXz/7OocPH46XlxehoaG0adOGAweqP2mSiDB69GhWrlxJXFwcKSkp9u8aVO3l5+PNgLBmJGf8h5cHh+Hv6211JJfSHoKLOTpW1JtvvknTpk1JT08nNTW1yjmYK5tfISAgoML3XX7PokWLmDt3LtnZ2YSHh3Py5ElGjhzJ+vXr8ff3p1+/fmzeXHaeohtuuMH+s7e3NwUFBQ5v45XrL/37lZmvZXmxsbEsXLiQvXv3MnPmzKt6ARWts7ri4uJYuXIliYmJPPLII9SrV6uPp1SJIREtOHuxgE37j1sdxeW0IDjZjTfeeNU8Bffffz+rV6+msLCQ3Nxctm7dSpcuXcq0O336NMHBwXh5ebFixQoKCwsrXc+DDz7IsmXLOH/+PACnTp0qt123bt1YtWoVAB9++CE9evQA4MiRI3Tt2pU5c+YQFBREdnY2mZmZtGnThkmTJvHQQw+xZ88eh7a5Q4cOZGZmkpWVBcDq1asrbLtx40ZOnTrFhQsXSEpKonv37mXadO3alS1btnDixAkKCwtJTEwkOjoagKKiIvtVQ3/729/s23PmzBmCg4O5dOlSmRnn1qxZQ1FREUeOHCEzM5P27ds7tF2l/4+aN29O8+bNmTt3LrGxsQ4tQ9V8Xds0ptlNfnXiaiM9xHGyxo0b0717d8LCwhgwYAAJCQmkpKTQqVMnRISEhASaNWtG48aNqVevHp06dSI2NpannnqKhx9+mDVr1tC7d+9Kj/IB+vfvj81mIyoqCl9fXwYOHGgfYvtKb731FmPHjuXVV1+1f6kMMHXqVA4dOoQxhj59+tCpUyfi4+NZuXIlPj4+NGvWjJdeesmhbfb39+edd96hf//+BAUF0aVLlwrb9ujRg9GjR3P48GFGjhxJVFSUvZBcFhwczJ/+9Cd69+6NMYaBAwcyePBgoLgncXma0gYNGtiLz8svv0zXrl1p2bIld91111V/yNu3b090dDTHjx9n0aJFZeairkhsbCwTJkzA39+flJQU/P39GTVqFLm5udx5550OLUPVfN5ewuCI5izZmknfN7a4bD2Dw5sz8VdlT9O6kw5/rZzi7NmzBAYGYozh97//PaGhoTz77LNXtVm+fDmpqaksXLjQopTXb+LEiURERPDEE0+U+7p+/mqno3kXSPjyAPmFrrskOrpdEx695zaXLf9KFQ1/7RE9BBFZDVzux98M5Bljwi2MpKppyZIlvP/+++Tn5xMREcH48eOtjuR0nTt3JiAggNdff93qKMrNmt/sz4LfRlgdw+U8rocgIq8Dp40xc6pqqz0E5Wn086dqAo/uIVwmxZd/DAd+dT3LqewKHKVcxdMOrpSqLk+7yqgncNwYc6iiBiIyTkRSRSS1vBug/Pz8OHnypO6cyq2MMZw8edLhL6yV8kRu6yGIyCagWTkvvWiM+aTk5xFAYmXLMcYsBhZD8Smj0q+HhISQk5NT6d2ySrmCn59fuXd3K1VTuK0gGGMeqOx1EakHDAU6X896fHx87HfMKqWUcpwnnTJ6ADhgjMmxOohSStVFnlQQfksVp4uUUkq5jsdcZWSMibU6g1JK1WUedx9CdYhILvDjNb49CDjhxDjupNmtUVOz19TcoNldpaUxpknpJ2t0QbgeIpJa3o0ZNYFmt0ZNzV5Tc4NmdzdP+g5BKaWUhbQgKKWUAup2QSh/Sq+aQbNbo6Zmr6m5QbO7VZ39DkEppdTV6nIPQSml1BW0ICillALqQEEQkf4i8r2IHBaR6eW8LiLyVsnre0Qk0oqc5XEg+6iSzHtEZIeIdLIiZ2lV5b6i3T0iUigiw9yZrzKOZBeRXiJiE5HvRMR1cypWkwOflwYi8qmIpJdkj7MiZ2kiskxEfhaRjApe9+R9tKrsHrmPVsgYU2sfgDdwBGgD+ALpwJ2l2gwEkgEB7gV2Wp27Gtm7AQ1Lfh7gCdkdyX1Fu83AF8Awq3NX49/8ZmAfcFvJ77dYnbsa2f8IzC/5uQlwCvD1gOz3A5FARgWve+Q+6mB2j9tHK3vU9h5CF+CwMSbTGJMPrAIGl2ozGPjAFPsGuFlEgt0dtBxVZjfG7DDG/Lfk128ATxh72ZF/c4CngY+Bn90ZrgqOZB8JrDXG/ARgjPGU/I5kN8CNJRNRBVJcEArcG7MsY8zWkiwV8dR9tMrsHrqPVqi2F4QWQPYVv+eUPFfdNlaobq4nKD6KslqVuUWkBTAEWOTGXI5w5N+8HdBQRL4WkX+JyBi3paucI9kXAncAR4G9wGRjjOtmjXceT91Hq8tT9tEKeczgdi5S3jyapa+zdaSNFRzOJSK9Kf6w9XBpIsc4knsB8LwxptDDpjp1JHs9iufs6AP4Ayki8o0x5qCrw1XBkez9ABvFU9S2BTaKyD+NMf9zdbjr5Kn7qMM8bB+tUG0vCDnArVf8HkLx0VF121jBoVwicjewFBhgjDnppmyVcSR3FLCqpBgEAQNFpMAYk+SeiBVy9PNywhhzDjgnIluBToDVBcGR7HFAvCk+oX1YRH4AOgC73BPxmnnqPuoQD9xHK1TbTxntBkJFpLWI+FI858L6Um3WA2NKrmS4FzhtjDnm7qDlqDK7iNwGrAVGe8AR6mVV5jbGtDbGtDLGtAI+Ap7ygGIAjn1ePgF6ikg9EakPdAX2uzlneRzJ/hPFPRtEpCnQHsh0a8pr46n7aJU8dB+tUK3uIRhjCkRkIrCB4qswlhljvhORCSWvL6L4KpeBwGHgPMVHUZZzMPtLQGPgnZKj7QJj8eiKDub2SI5kN8bsF5EvgT1AEbDUGFPuJYfu5OC/+8vAchHZS/FpmOeNMZYPzywiiUAvIEhEcoCZgA949j4KDmX3uH20Mjp0hVJKKaD2nzJSSinlIC0ISimlAC0ISimlSmhBUEopBWhBUEopVUILglJKKUALglJKqRJaEJRyMhG5S0R+FJEnrc6iVHVoQVDKyYwxeykeOsJTRkJVyiFaEJRyjZ+BjlaHUKo6tCAo5RrxwA0i0tLqIEo5SguCUk4mIv2BAOBztJegahAtCEo5kYj4AQnAUxTPShZmbSKlHKcFQSnnmkHx/L9ZaEFQNYwWBKWcRETaA30pniIUtCCoGkbnQ1BKKQVoD0EppVQJLQhKKaUALQhKKaVKaEFQSikFaEFQSilVQguCUkopQAuCUkqpEv8PwoXLRKhp9nAAAAAASUVORK5CYII=\n", "text/plain": [ - "" + "
" ] }, - "metadata": {}, + "metadata": { + "needs_background": "light" + }, "output_type": "display_data" } ], @@ -410,25 +765,25 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", - "\n", "\n", " \n", @@ -442,21 +797,21 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", "
Out A 20.6563900.2033810.1402290.5692250.2305360.200239
Out B 20.1994030.6434610.1571360.2149640.5654450.219591
Out C 20.0880160.1317750.7802090.1132780.1597430.726979
\n", @@ -464,12 +819,12 @@ ], "text/plain": [ " A B C\n", - "Out A 2 0.656390 0.203381 0.140229\n", - "Out B 2 0.199403 0.643461 0.157136\n", - "Out C 2 0.088016 0.131775 0.780209" + "Out A 2 0.569225 0.230536 0.200239\n", + "Out B 2 0.214964 0.565445 0.219591\n", + "Out C 2 0.113278 0.159743 0.726979" ] }, - "execution_count": 13, + "execution_count": 18, "metadata": {}, "output_type": "execute_result" } @@ -482,7 +837,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Individual components of the analysis\n", + "## Individual components of the analysis\n", "\n", "The combined analysis is the easiest way to perform analysis, but if you need to customize things (or if you want to compare different calculation methods) you might want to create objects for components of the analysis individually. Note that unlike the `StandardTISAnalysis` object, these do not cache their intermediate results." ] @@ -491,12 +846,12 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## Flux from the minus move" + "### Flux from the minus move" ] }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 19, "metadata": {}, "outputs": [], "source": [ @@ -505,7 +860,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 20, "metadata": {}, "outputs": [], "source": [ @@ -521,15 +876,72 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 21, "metadata": {}, "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "b0c86c847bf0482f8ccdf5c4c42983f2", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "HBox(children=(FloatProgress(value=0.0, description='Flux', max=3.0, style=ProgressStyle(description_width='in…" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "HBox(children=(FloatProgress(value=0.0, max=180.0), HTML(value='')))" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "HBox(children=(FloatProgress(value=0.0, max=188.0), HTML(value='')))" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "HBox(children=(FloatProgress(value=0.0, max=195.0), HTML(value='')))" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, { "name": "stdout", "output_type": "stream", "text": [ - "CPU times: user 30.2 s, sys: 443 ms, total: 30.6 s\n", - "Wall time: 31.9 s\n" + "\n", + "CPU times: user 1min 53s, sys: 562 ms, total: 1min 53s\n", + "Wall time: 1min 54s\n" ] } ], @@ -540,21 +952,21 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 22, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "{(,\n", - " ): 0.32667420530217367,\n", - " (,\n", - " ): 0.22904983808545926,\n", - " (,\n", - " ): 0.21310004486316733}" + "{(,\n", + " ): 0.20017125763152918,\n", + " (,\n", + " ): 0.21013334525579258,\n", + " (,\n", + " ): 0.2353906881858017}" ] }, - "execution_count": 17, + "execution_count": 22, "metadata": {}, "output_type": "execute_result" } @@ -572,11 +984,74 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 23, "metadata": { "scrolled": true }, - "outputs": [], + "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", + "
Flux
StateInterface
A0.0<opA<0.20.200171
B0.0<opB<0.20.210133
C0.0<opC<0.20.235391
\n", + "
" + ], + "text/plain": [ + " Flux\n", + "State Interface \n", + "A 0.0,\n", - " ): {'in': ,\n", - " 'out': },\n", - " (,\n", - " ): {'in': ,\n", - " 'out': },\n", - " (,\n", - " ): {'in': ,\n", - " 'out': }}" + "{(,\n", + " ): {'in': ,\n", + " 'out': },\n", + " (,\n", + " ): {'in': ,\n", + " 'out': },\n", + " (,\n", + " ): {'in': ,\n", + " 'out': }}" ] }, - "execution_count": 19, + "execution_count": 25, "metadata": {}, "output_type": "execute_result" } @@ -639,14 +1171,14 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## Flux from existing dictionary\n", + "### Flux from existing dictionary\n", "\n", "The `DictFlux` class (which is required for MISTIS, and often provides better statistics than the minus move flux in other cases) takes a pre-calculated flux dictionary for initialization, and always returns that dictionary. The dictionary is in the same format as the `fluxes` returned by the `MinusMoveFlux.calculate` method; here, we'll just use the results we calculated above:" ] }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 26, "metadata": {}, "outputs": [], "source": [ @@ -655,7 +1187,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 27, "metadata": {}, "outputs": [], "source": [ @@ -664,21 +1196,21 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 28, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "{(,\n", - " ): 0.32667420530217367,\n", - " (,\n", - " ): 0.22904983808545926,\n", - " (,\n", - " ): 0.21310004486316733}" + "{(,\n", + " ): 0.20017125763152918,\n", + " (,\n", + " ): 0.21013334525579258,\n", + " (,\n", + " ): 0.2353906881858017}" ] }, - "execution_count": 22, + "execution_count": 28, "metadata": {}, "output_type": "execute_result" } @@ -696,21 +1228,21 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 29, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "{(,\n", - " ): 0.32667420530217367,\n", - " (,\n", - " ): 0.22904983808545926,\n", - " (,\n", - " ): 0.21310004486316733}" + "{(,\n", + " ): 0.20017125763152918,\n", + " (,\n", + " ): 0.21013334525579258,\n", + " (,\n", + " ): 0.2353906881858017}" ] }, - "execution_count": 23, + "execution_count": 29, "metadata": {}, "output_type": "execute_result" } @@ -730,14 +1262,14 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## Total crossing probability function\n", + "### Total crossing probability function\n", "\n", "To calculate the total crossing probability, we must first calculate the individual ensemble crossing probabilities. This is done by creating a histogram of the maximum values of the order parameter. The class to do that is `FullHistogramMaxLambdas`. Then we'll create the `TotalCrossingProbability`." ] }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 30, "metadata": {}, "outputs": [], "source": [ @@ -746,7 +1278,7 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 31, "metadata": {}, "outputs": [ { @@ -756,7 +1288,7 @@ "TISTransition: Out A\n", "A -> A or all states except A\n", "Interface: 0.0" + "HBox(children=(FloatProgress(value=0.0, description='Weighted trajectories', max=20101.0, style=ProgressStyle(…" ] }, - "execution_count": 31, "metadata": {}, - "output_type": "execute_result" + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "21af9aa08128450e9e22f63470c86373", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "HBox(children=(FloatProgress(value=0.0, description='Ensembles', max=3.0, style=ProgressStyle(description_widt…" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "HBox(children=(FloatProgress(value=0.0, max=1379.0), HTML(value='')))" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "HBox(children=(FloatProgress(value=0.0, max=1204.0), HTML(value='')))" + ] + }, + "metadata": {}, + "output_type": "display_data" }, { "data": { - "image/png": "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\nv9WZJz9dwIT5a6KOIyJSIyqIJPvZ0T1pWZjHzS9MYYdWWItIBlNBJFlBXg43HdeHKYvKeWxcWdRx\nRESqTQWRAsf3b8Nh3Ztz99gZLF+/Jeo4IiLVooJIATPjlyf1ZVvFTq57ZpIO5iciGSktCsLMTjez\nqWa208xKos6TDN1aFPC/x+7L2zNW8PCH86KOIyJSZWlREMAU4FTg3aiDJNN5h3TiiN4t+c2Y6Uxf\nWh51HBGRKkmLgnD3L9y9zh3tzsy46/v9KcrP5fInJrBl+46oI4mIJCwtCqIqzOwyMys1s9IVK1ZE\nHadSzQvy+N3p/Zm5bAO/eeWLqOOIiCSs1grCzN4wsylxfk6qyuO4+wPuXuLuJS1atEhV3KT6Tq+W\nXHhoZ0Z/VMab05dFHUdEJCE5tTUidz+qtsaVjq4f1puPZq/i2qcnMeZnQ2hZmB91JBGRvcq4RUyZ\nKj83m7+cPZANWyu49ulJOiy4iKS9tCgIMzvFzBYChwAvm9nYqDOlQo9Whdx03L68M1ObvopI+kuL\ngnD35929vbvnuXsrdz8m6kypMvzgThy1b0vuHDOdL5Zo01cRSV9pURD1iZnx29P6U9xIm76KSHpT\nQURgn4I8fn/6/ny5fAO/1qavIpKmVBAR+XbPFlx8WBce+aiM/36hTV9FJP2oICJ03bBe7NumiGuf\nmaSjvopI2lFBRCgvJ5s/nzWAjVsruEabvopImlFBRKxHq0JuOr4P785cwT+06auIpBEVRBoYflBH\njtq3Fb8dM51pi7Xpq4ikBxVEGgg2fd2P4ka5XPGkNn0VkfSggkgT+xTk8Yczgk1ff/WyNn0Vkeip\nINLIkB4tuHRIFx79uIw3pmnTVxGJlgoizVxzTC/6tCniumcnsbxcm76KSHRUEGkmLyebP589kE3b\nKrj66Yna9FVEIqOCSEPdWxZw8/F9eO/LlTz0wdyo44hIPaWCSFM/GNyRo/u04q5XZzB18bqo44hI\nPaSCSFO7jvraJDzq6+Zt2vRVRGqXCiKNNWvcgD+cMYDZKzZyx8vToo4jIvWMCiLNHdajOZd9uyuP\njZvPa1OXRh1HROoRFUQGuGZoL/q2LeL6ZyexTJu+ikgtUUFkgAY5WfzprIFs3r6Dq5/Spq8iUjtU\nEBmie8sCbjm+L+/PWsmD72vTVxFJPRVEBjl7cAeO6duKu8ZOZ8oibfoqIqmlgsggZsadp/anWeMG\n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\n", + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, "text/plain": [ - "" + "HBox(children=(FloatProgress(value=0.0, max=972.0), HTML(value='')))" ] }, "metadata": {}, "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], + "source": [ + "tcp = total_crossing.calculate(storage.steps)" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" } ], "source": [ @@ -872,14 +1481,14 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## Conditional transition probability\n", + "### Conditional transition probability\n", "\n", "The last part of the standard calculation is the conditional transition probability. We'll make a version of this that works for all ensembles:" ] }, { "cell_type": "code", - "execution_count": 32, + "execution_count": 38, "metadata": {}, "outputs": [], "source": [ @@ -888,7 +1497,7 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 39, "metadata": {}, "outputs": [], "source": [ @@ -897,7 +1506,7 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": 40, "metadata": {}, "outputs": [], "source": [ @@ -909,33 +1518,55 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": 41, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "82edd1875a934403b8a15ba5dfa3e96d", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "HBox(children=(FloatProgress(value=0.0, description='Weighted trajectories', max=20101.0, style=ProgressStyle(…" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], "source": [ "ctp = cond_transition.calculate(storage.steps)" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 42, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "{: {: 0.6563898557931377,\n", - " : 0.2033814022874192,\n", - " : 0.14022874191944307},\n", - " : {: 0.19940328194927898,\n", - " : 0.643460964694182,\n", - " : 0.15713575335653904},\n", - " : {: 0.08801591248135256,\n", - " : 0.13177523620089507,\n", - " : 0.7802088513177524}}" + "{: {: 0.5692254116710611,\n", + " : 0.2305357942390926,\n", + " : 0.20023879408984627},\n", + " : {: 0.5654445052484951,\n", + " : 0.21959106512113824,\n", + " : 0.21496442963036666},\n", + " : {: 0.15974329635341525,\n", + " : 0.7269787572757574,\n", + " : 0.11327794637082732}}" ] }, - "execution_count": 36, + "execution_count": 42, "metadata": {}, "output_type": "execute_result" } @@ -964,7 +1595,7 @@ }, { "cell_type": "code", - "execution_count": 37, + "execution_count": 43, "metadata": {}, "outputs": [], "source": [ @@ -980,7 +1611,7 @@ }, { "cell_type": "code", - "execution_count": 38, + "execution_count": 44, "metadata": {}, "outputs": [], "source": [ @@ -1004,7 +1635,7 @@ }, { "cell_type": "code", - "execution_count": 39, + "execution_count": 45, "metadata": {}, "outputs": [], "source": [ @@ -1027,7 +1658,7 @@ }, { "cell_type": "code", - "execution_count": 40, + "execution_count": 46, "metadata": {}, "outputs": [], "source": [ @@ -1040,60 +1671,4715 @@ }, { "cell_type": "code", - "execution_count": 41, + "execution_count": 47, "metadata": {}, "outputs": [ { "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "fd75cffada4b49b39f2cd1b61d0cc628", + "version_major": 2, + "version_minor": 0 + }, "text/plain": [ - " A B C\n", - "A NaN 0.00236325 0.00162943\n", - "B 0.00107851 NaN 0.000849896\n", - "C 0.00166719 0.00249607 NaN" + "HBox(children=(FloatProgress(value=0.0, description='Ensembles', max=3.0, style=ProgressStyle(description_widt…" ] }, - "execution_count": 41, "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "analysis.rate_matrix(storage.steps)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "This is the same rate matrix as we obtained with the `StandardTISAnalysis`. It is a little faster because we used the precalculated `DictFlux` object in this instead of the `MinusMoveFlux`, otherwise this would be slower." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "celltoolbar": "Raw Cell Format", - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython2", - "version": "2.7.14" + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "HBox(children=(FloatProgress(value=0.0, max=1379.0), HTML(value='')))" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "HBox(children=(FloatProgress(value=0.0, max=1204.0), HTML(value='')))" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "HBox(children=(FloatProgress(value=0.0, max=972.0), HTML(value='')))" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "8780525393564dd494d8748866c8d34c", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "HBox(children=(FloatProgress(value=0.0, description='Ensembles', max=3.0, style=ProgressStyle(description_widt…" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "HBox(children=(FloatProgress(value=0.0, max=1379.0), HTML(value='')))" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "HBox(children=(FloatProgress(value=0.0, max=1204.0), HTML(value='')))" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "HBox(children=(FloatProgress(value=0.0, max=972.0), HTML(value='')))" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "cff26c48974744b0aa572a1ab422e296", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "HBox(children=(FloatProgress(value=0.0, description='Ensembles', max=3.0, style=ProgressStyle(description_widt…" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "HBox(children=(FloatProgress(value=0.0, max=1301.0), HTML(value='')))" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "HBox(children=(FloatProgress(value=0.0, max=1136.0), HTML(value='')))" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "HBox(children=(FloatProgress(value=0.0, max=914.0), HTML(value='')))" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "9535426cee4c44f2a2f819fdecaafc10", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "HBox(children=(FloatProgress(value=0.0, description='Ensembles', max=3.0, style=ProgressStyle(description_widt…" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "HBox(children=(FloatProgress(value=0.0, max=1301.0), HTML(value='')))" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "HBox(children=(FloatProgress(value=0.0, max=1136.0), HTML(value='')))" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "HBox(children=(FloatProgress(value=0.0, max=914.0), HTML(value='')))" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "1a6de47ea7424904b070d0f87f8ffee0", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "HBox(children=(FloatProgress(value=0.0, description='Ensembles', max=3.0, style=ProgressStyle(description_widt…" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "HBox(children=(FloatProgress(value=0.0, max=1283.0), HTML(value='')))" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "HBox(children=(FloatProgress(value=0.0, max=1165.0), HTML(value='')))" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "HBox(children=(FloatProgress(value=0.0, max=1030.0), HTML(value='')))" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "134492ebdc5941f89abdab18fb8ea87f", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "HBox(children=(FloatProgress(value=0.0, description='Ensembles', max=3.0, style=ProgressStyle(description_widt…" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "HBox(children=(FloatProgress(value=0.0, max=1283.0), HTML(value='')))" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "HBox(children=(FloatProgress(value=0.0, max=1165.0), HTML(value='')))" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "HBox(children=(FloatProgress(value=0.0, max=1030.0), HTML(value='')))" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + }, + { + "data": { + "text/plain": [ + " A B C\n", + "A NaN 0.00214965 0.00186714\n", + "B 0.00117906 NaN 0.00120443\n", + "C 0.00133534 0.00188307 NaN" + ] + }, + "execution_count": 47, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "analysis.rate_matrix(storage.steps)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This is the same rate matrix as we obtained with the `StandardTISAnalysis`. It is a little faster because we used the precalculated `DictFlux` object in this instead of the `MinusMoveFlux`, otherwise this would be slower." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "celltoolbar": "Raw Cell Format", + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.3" + }, + "toc": { + "base_numbering": 1, + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": true, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": true + }, + "varInspector": { + "cols": { + "lenName": 16, + "lenType": 16, + "lenVar": 40 + }, + "kernels_config": { + "python": { + "delete_cmd_postfix": "", + "delete_cmd_prefix": "del ", + "library": "var_list.py", + "varRefreshCmd": "print(var_dic_list())" + }, + "r": { + "delete_cmd_postfix": ") ", + "delete_cmd_prefix": "rm(", + "library": "var_list.r", + "varRefreshCmd": "cat(var_dic_list()) " + } + }, + "types_to_exclude": [ + "module", + "function", + "builtin_function_or_method", + "instance", + "_Feature" + ], + "window_display": false + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": { + "0158ccc1dd89457997852e8c975f0d6b": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "description_width": "" + } + }, + "01ca1c98f1da47ce827775bd252ae6d2": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "description_width": "" + } + }, + "01dad2f805384ddd9e9abaac15d895fe": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "description": "100%", + "layout": "IPY_MODEL_b88b42cab75c44a09530672d0ca805f3", + "max": 1283, + "style": "IPY_MODEL_a58698e6100b41ee8667ab3f99e570b0", + "value": 1283 + } + }, + "01eeba549a164f03a220fb00683a3814": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "02185264eb2a43be8fb243ed5e3bf156": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "029f6d9c8bfc473c834f8fa6a8043cb8": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "description_width": "initial" + } + }, + "03402267b8bf4fd4b97fedfbd11df3af": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "bar_style": "success", + "description": "Ensembles: 100%", + "layout": "IPY_MODEL_0b455ca2a5554313ab8084f71bf17a96", + "max": 3, + "style": "IPY_MODEL_c783b34407d247f7ad2011db8edc70c0", + "value": 3 + } + }, + "03adab07b7c741a5a37a9d9278ecf41f": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "description_width": "" + } + }, + "03bca64795064329954a10e239402097": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "layout": "IPY_MODEL_7189e92ca2384718a118ad477cf31108", + "style": "IPY_MODEL_0500c9b2f33945e7b271c563417acaef", + "value": " 20101/20101 [00:00<00:00, 29447.92it/s]" + } + }, + "0500c9b2f33945e7b271c563417acaef": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "description_width": "" + } + }, + "0558806a505048389265e2d1460f523e": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "layout": "IPY_MODEL_ad31f8eebf58407d858dae7f6e386ff0", + "style": "IPY_MODEL_1fc0569bc88b459ca60dba20204ea864", + "value": " 1301/1301 [00:00<00:00, 23841.37it/s]" + } + }, + "056320166a8143078a74800bb128700f": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "0592a44474a54deebc890e9065a499e7": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "0749598655304979b73ce1bcb6105c9c": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "description_width": "initial" + } + }, + "074f412c408e4787bc115b5691d61aba": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "layout": "IPY_MODEL_35676827e15d45708077a5f9d67170ec", + "style": "IPY_MODEL_191da4f54230476a9b280cc7631d6a8d", + "value": " 1283/1283 [00:00<00:00, 18588.74it/s]" + } + }, + "077f9dbd68fa4d28975deafbb11cf63c": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "description_width": "" + } + }, + "093f314a063e45c79478ade12ca8a7a8": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "096643768c564699bab5804d584f2f6a": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "layout": "IPY_MODEL_1ead5d929a7c400998738bec1b3a5b12", + "style": "IPY_MODEL_3b150b008dd9480181140bd93cef7abe", + "value": " 3/3 [02:20<00:00, 46.80s/it]" + } + }, + "09d439249b2648f2a00acab02da66ea9": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "description": "100%", + "layout": "IPY_MODEL_b630667798b54923bec8ad2aba0f0d48", + "max": 1379, + "style": "IPY_MODEL_2fccace642bc4fbfb758585a1d9987fe", + "value": 1379 + } + }, + "0a0a0f9c0d9e46a38d3ad7b917445e92": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "description_width": "" + } + }, + "0a78f7ebe33d4208b85cdf11f7ed41c6": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "0ae4e5c48911419ba92d65c7117f37c3": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "description_width": "initial" + } + }, + "0af9422324f948dc8af0462d04e80195": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "0b455ca2a5554313ab8084f71bf17a96": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "0b6e1f7f288443f79a8ffaf6fa1eea36": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "layout": "IPY_MODEL_4e11cd5670ba4c76bb53175198d35d40", + "style": "IPY_MODEL_b937f10be40d418abf3ed930b82007e5", + "value": " 1136/1136 [00:00<00:00, 26902.20it/s]" + } + }, + "0d21701581d542f09b4f055867df5d1b": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "description": "100%", + "layout": "IPY_MODEL_6c9095368cc944af932e018f19ed319c", + "max": 180, + "style": "IPY_MODEL_da77e0fb1a79421294aa3b872aeca82a", + "value": 180 + } + }, + "0d3a9b521e174d11a478126b55ba1471": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "0da6d7573c0f4f9a8f0d997520f34c9c": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "layout": "IPY_MODEL_02185264eb2a43be8fb243ed5e3bf156", + "style": "IPY_MODEL_ae8bf72134c44ac4815b640146bedaf6", + "value": " 1204/1204 [00:00<00:00, 21631.70it/s]" + } + }, + "0f82ccba4efa4bc7a64d7be15bea6c7e": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "description_width": "" + } + }, + "10fe30a557134a218ab589ca957779d7": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "description_width": "" + } + }, + "115b4ff509804bcf9163b0829df07c0c": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "11afb7e2e0524723a3c019bb8ec69c57": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "layout": "IPY_MODEL_71d5169184424a98a928dc736350f1d1", + "style": "IPY_MODEL_200be8661ec040fba19a214e8d28f8a9", + "value": " 1030/1030 [00:00<00:00, 19493.87it/s]" + } + }, + "11d4509bc3304df9a0b947728f9a31a1": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "bar_style": "success", + "description": "Flux: 100%", + "layout": "IPY_MODEL_161cd241357a452fb5bde77915b01dc5", + "max": 3, + "style": "IPY_MODEL_f34024f03a02441eba2cd37a6f13723a", + "value": 3 + } + }, + "131bd32e98c549dd813b21098f3bdcec": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "134492ebdc5941f89abdab18fb8ea87f": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HBoxModel", + "state": { + "children": [ + "IPY_MODEL_45e767fb73b74d76b7cd8c14f3c8c986", + "IPY_MODEL_ddef0ed8c6954157b380468c180acd55" + ], + "layout": "IPY_MODEL_2d5579ad379e4688aee76af6ef99de6f" + } + }, + "1352e87dae664a6693ca0925e3eaf0c2": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "140b26a2236e491198d05fa4a700b59a": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "146c734a929248c3bed49c29761c8ec7": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "14b9f2de4cd04038aaf28fbe9b9ea513": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "14f71338a83a41499a30494dd7f806c2": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "153f5f25358a4d1da9fca0b23f4042da": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "description_width": "" + } + }, + "161cd241357a452fb5bde77915b01dc5": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "166b4c111a024ffc85afd459dca945a1": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HBoxModel", + "state": { + "children": [ + "IPY_MODEL_53a99f9772ab4bd3bde5ca20a8ffdb51", + "IPY_MODEL_4f82b33d32294bc494f262dc3e94c61a" + ], + "layout": "IPY_MODEL_0af9422324f948dc8af0462d04e80195" + } + }, + "17a664eb73ae4a11a827e230ad2a7194": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "description": "100%", + "layout": "IPY_MODEL_d5004227231d4f288a0e0e93ffb8b60b", + "max": 1379, + "style": "IPY_MODEL_1fc24f29867341bbbb85073566b32520", + "value": 1379 + } + }, + "17bcf61312ba4bbba6e97981b5ceaefb": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HBoxModel", + "state": { + "children": [ + "IPY_MODEL_b5d08571344d4167a3e9ea2ac14c3fe6", + "IPY_MODEL_af06af26b9cb46a0bdec68a6c36fd225" + ], + "layout": "IPY_MODEL_905f28e056474f7c89f2138175727cd1" + } + }, + "18454256a15648e79abecef67fcaf5eb": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "18b493a51f6c4096b305d75a986ff132": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "layout": "IPY_MODEL_8c2e51577cac4f02949d3cb4d2596b8b", + "style": "IPY_MODEL_153f5f25358a4d1da9fca0b23f4042da", + "value": " 1301/1301 [02:29<00:00, 4.52it/s]" + } + }, + "18b58c1a98d14ab5b93fbee8e1228b17": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "191da4f54230476a9b280cc7631d6a8d": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "description_width": "" + } + }, + "1924e92591a840eabeccb44f1b1597c8": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "199e45ebfd7c4b45b8317887392f3acb": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "1a03d03722f24eb2a08ed39b62587899": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "1a3730c1081d47fc9d9a843a53aafc6b": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "1a46f39c1d4147f1b39f4d548feb5716": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "1a5890153e114b22bf92d25a879092af": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "1a6de47ea7424904b070d0f87f8ffee0": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HBoxModel", + "state": { + "children": [ + "IPY_MODEL_1b1ede3e38904667bf0518c247eb4e57", + "IPY_MODEL_4a7f06677eaf426b8355bab591c014f4" + ], + "layout": "IPY_MODEL_574845ba218b4d74b412f48015e9e991" + } + }, + "1a817fad98694799b654afea178177df": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "1b1ede3e38904667bf0518c247eb4e57": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "bar_style": "success", + "description": "Ensembles: 100%", + "layout": "IPY_MODEL_825cd512f87841b5a8fc7e0fc4aed44a", + "max": 3, + "style": "IPY_MODEL_71a9bd5f2e54415d9079ff88a0068ed4", + "value": 3 + } + }, + "1b6d462643274ba8b82444fb864eac17": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "description_width": "" + } + }, + "1cfdc718c5f84a35a44ade4cb40dda88": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "1d2f9a460a8f45d9bf2d90475330ccff": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "1d4dc77333d045b79eaddbe63e8419df": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "1d70b26d7bc54ad6aaaa4090af37a882": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "1df499a4b113456f9b588532bca18c6e": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "description_width": "initial" + } + }, + "1ead5d929a7c400998738bec1b3a5b12": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "1eef8acd503f4e4491eb72860d26e05d": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "description_width": "initial" + } + }, + "1f78856a9f1847adbb5614a20750a498": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "1fc0569bc88b459ca60dba20204ea864": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "description_width": "" + } + }, + "1fc24f29867341bbbb85073566b32520": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "description_width": "initial" + } + }, + "1fcbbcbb3e9b40d597e96be38f3b5931": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "1ff93d794fc74015851e416d85d9aded": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "layout": "IPY_MODEL_ab4c391d1d8a4b6ebe04ba3de405be5a", + "style": "IPY_MODEL_fdb9ec3dde4a4201a131764469ab74d6", + "value": " 188/188 [00:38<00:00, 6.52it/s]" + } + }, + "200be8661ec040fba19a214e8d28f8a9": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "description_width": "" + } + }, + "2032a01ee7bb4961a0bdc6320fe402ca": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "description_width": "" + } + }, + "2055088cde124ff0845414e5882f4cf9": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "description_width": "" + } + }, + "2058062195c84eb09de1d1e28f3be69c": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "description": "100%", + "layout": "IPY_MODEL_1cfdc718c5f84a35a44ade4cb40dda88", + "max": 30, + "style": "IPY_MODEL_daa16ee02c8f4fe3979f7c7d8801cd32", + "value": 30 + } + }, + "2073c6b347c74486ac936d3ccbe76c7a": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "209cfc12dd0c4c58ac93638579cc1e9e": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "21af9aa08128450e9e22f63470c86373": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HBoxModel", + "state": { + "children": [ + "IPY_MODEL_03402267b8bf4fd4b97fedfbd11df3af", + "IPY_MODEL_5875afeb2644411d954ac591e25a4c93" + ], + "layout": "IPY_MODEL_894104be928d493b9944eb34508350b0" + } + }, + "225956aa3d524f5092c45835da8ce092": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "layout": "IPY_MODEL_e22add99a31b4cfba8324c8ff70ff5c2", + "style": "IPY_MODEL_4f7fdb5f495f439ba57ceaa549a0bb07", + "value": " 195/195 [11:17<00:00, 4.28s/it]" + } + }, + "22b71ec951be44e8b1eeb8c640d94df7": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "230701cb9e4c421792c4cad14b5c6100": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "description": "Ensembles: 100%", + "layout": "IPY_MODEL_706ec4bf400c4b19bad9c53c188eb341", + "max": 3, + "style": "IPY_MODEL_4da3145ee09d4ac3b4d8accf7a8e2c74", + "value": 3 + } + }, + "232614f22b934d2a9cda1ae9134c0d5a": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "description": "100%", + "layout": "IPY_MODEL_209cfc12dd0c4c58ac93638579cc1e9e", + "max": 188, + "style": "IPY_MODEL_a8aa3a0d3b1a46e9a52dad623d7b959d", + "value": 188 + } + }, + "2436e30266444eba883e0752021d3663": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "24ca4241747f413f963618b3959feaf6": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "25122a5d846e4fcaa07b05d39b509c5e": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "description_width": "initial" + } + }, + "253e496b5f254370944d271102941934": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "layout": "IPY_MODEL_22b71ec951be44e8b1eeb8c640d94df7", + "style": "IPY_MODEL_2c505af6a2664994abc90c6022c1cfcc", + "value": " 1301/1301 [00:00<00:00, 23483.19it/s]" + } + }, + "257e3d1bbdf44cf784611f0a357bb952": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "description_width": "" + } + }, + "262311c9d8d349dca70ae7c01ebe227d": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "268edbb71ad54ac0bd22e8ffcffbc1b0": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "description": "100%", + "layout": "IPY_MODEL_d33f4f1ecf09446f9c7c0df1f4eddb84", + "max": 1030, + "style": "IPY_MODEL_ca4bf7c48b924debba3790a1baa1af3f", + "value": 1030 + } + }, + "2785d8cc60654a9286db4fc18743349e": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "description": "100%", + "layout": "IPY_MODEL_78da1c463d3643ff89b5b11a38fe1bd9", + "max": 972, + "style": "IPY_MODEL_9f7e7c637010447b88fafb3b174be537", + "value": 972 + } + }, + "278ee023b1e1424298465afc2d5d5d3f": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "layout": "IPY_MODEL_e63dbf0ceb654b2091c60a40bd0a06f9", + "style": "IPY_MODEL_61b028995efb4d93b4f50d2bac4fa5b2", + "value": " 3/3 [13:36<00:00, 246.46s/it]" + } + }, + "27d4bb8c51a64ae79396387523a48979": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "layout": "IPY_MODEL_e05ea3b6484c463ba25633050b95ed85", + "style": "IPY_MODEL_67de9d81d85a447c8892a448f83698a4", + "value": " 3/3 [09:09<00:00, 183.33s/it]" + } + }, + "28cfb422aff643fa9ef36d81c00a73f9": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "description_width": "initial" + } + }, + "29f2492ed4124354aea119b024160d15": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "description_width": "" + } + }, + "2ba4e583915f449b8ca3f401dd2d0eaa": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "2c11de7c065d4a309080e58b1488166d": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "2c505af6a2664994abc90c6022c1cfcc": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "description_width": "" + } + }, + "2d5579ad379e4688aee76af6ef99de6f": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "2dcf0274665e43848aa12341ff8b7e1e": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "2f0d56bfd2bb4535bfdaac52b3718915": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "2f1a0d445c4e4af5b743c14811f19b7a": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "description": "100%", + "layout": "IPY_MODEL_f1151cb6655e48de978a4433987d1708", + "max": 195, + "style": "IPY_MODEL_28cfb422aff643fa9ef36d81c00a73f9", + "value": 195 + } + }, + "2f856acbda5647258097ce574ae1f407": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "2fc5115da9334813811bddd52af24be9": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "description_width": "" + } + }, + "2fccace642bc4fbfb758585a1d9987fe": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "description_width": "initial" + } + }, + "30c7fcb90394461d817c569bf7825274": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "30ced080967f4b7da9ad85fe60bfa554": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "description_width": "initial" + } + }, + "30cfde8053a2476296865db6eaaec7f1": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "description_width": "initial" + } + }, + "313c19a9ab024233a4d8edd7d64c07f4": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "description_width": "" + } + }, + "3165862140fb469fa5f3749720547f41": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "description_width": "" + } + }, + "31aca1ecb397448ba6bf16325b5be18c": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "description": "100%", + "layout": "IPY_MODEL_435ed407c53a4c478b6a6653742d7002", + "max": 1301, + "style": "IPY_MODEL_cf0cd7d27157482aac0d8344394c7e28", + "value": 1301 + } + }, + "321e721175194760923f23379381d0af": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "description": "100%", + "layout": "IPY_MODEL_3fa59c2cfdf34ed5b3fbc5ecbb9dd1f4", + "max": 1283, + "style": "IPY_MODEL_6211e328b8a3451d906c86e0cb468bfc", + "value": 1283 + } + }, + "32370e9923a04028afa377ce41b2a2fe": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "description": "100%", + "layout": "IPY_MODEL_742bd528c782402cae363627041fcf63", + "max": 972, + "style": "IPY_MODEL_bf30a0d1adc143f184050c6b3abb77a9", + "value": 972 + } + }, + "32ae5071e54444fbb6ebd867998d82d4": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "34995317a60547b8a210160be4f61180": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "description_width": "" + } + }, + "35676827e15d45708077a5f9d67170ec": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "366b61bbe10743c8a9f9741c3e5a16cf": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "371984db1f6d415086fc134386d7a86a": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "description": "100%", + "layout": "IPY_MODEL_24ca4241747f413f963618b3959feaf6", + "max": 22, + "style": "IPY_MODEL_b6789a0da5dd4fb8940b3b1c4f567fe7", + "value": 22 + } + }, + "37cde46453b74a69953c08202da2b6af": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "description_width": "initial" + } + }, + "38fa699f72664cc7bd9da878c73960d1": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "3949794f82ea422e9b26145057acffea": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "description_width": "initial" + } + }, + "39578599cd28453c80da66410b0a0276": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "3999b92d333d4557a05d99a6299470d7": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "description_width": "initial" + } + }, + "39e8a4fa1caa409a9ad76da3482b396b": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "3a5bfa8d4a6e48c1b522e41eab7a4d22": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "description": "100%", + "layout": "IPY_MODEL_0d3a9b521e174d11a478126b55ba1471", + "max": 1136, + "style": "IPY_MODEL_ae94d12f60d1419cb67ed06fd6bd13cd", + "value": 1136 + } + }, + "3aeba62c29c84287aabcc4e94bb72482": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "3b084823d6f84af496eb6bdefaeb8586": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "3b150b008dd9480181140bd93cef7abe": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "description_width": "" + } + }, + "3b339aecc8b74284966a8d48b66a5133": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "layout": "IPY_MODEL_4935cb85cbcb48a8a1d47689d665aeb2", + "style": "IPY_MODEL_0158ccc1dd89457997852e8c975f0d6b", + "value": " 1379/1379 [02:56<00:00, 3.89it/s]" + } + }, + "3b3a586a44924559805603e787e91851": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "bar_style": "success", + "description": "Flux: 100%", + "layout": "IPY_MODEL_1a5890153e114b22bf92d25a879092af", + "max": 3, + "style": "IPY_MODEL_e33ae38720b049d3a1435c126ca9e5e2", + "value": 3 + } + }, + "3b86c7ab78074fbfa5b374946cdf7e22": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "3bd80c0c17bf4582b899c01702e78a57": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "description": "100%", + "layout": "IPY_MODEL_5a783de87a364b4cb1d05048652d232b", + "max": 914, + "style": "IPY_MODEL_685d0097e18c47679a5483b6129b921c", + "value": 914 + } + }, + "3c6e5ac73e4e46c1a82a45e81f7bb023": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "layout": "IPY_MODEL_0a78f7ebe33d4208b85cdf11f7ed41c6", + "style": "IPY_MODEL_077f9dbd68fa4d28975deafbb11cf63c", + "value": " 1165/1165 [00:00<00:00, 14924.62it/s]" + } + }, + "3cc1b71d48f5451ca174349a3677e0e6": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "3cffc2d444634bbf92cb21b42ca792a1": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "description_width": "initial" + } + }, + "3e3ec5e2b5c547c2908f14e73b4d6578": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "3f1edb38fd23482aaba5a2e86937a38a": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "description": "100%", + "layout": "IPY_MODEL_1a46f39c1d4147f1b39f4d548feb5716", + "max": 914, + "style": "IPY_MODEL_0749598655304979b73ce1bcb6105c9c", + "value": 914 + } + }, + "3fa59c2cfdf34ed5b3fbc5ecbb9dd1f4": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "3fa99dcaf3a5482a9990eec89812926a": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "description": "Ensembles: 100%", + "layout": "IPY_MODEL_85753e4cd9684b50b3e2a1f82891fa6b", + "max": 3, + "style": "IPY_MODEL_37cde46453b74a69953c08202da2b6af", + "value": 3 + } + }, + "3fda701c18df4cd58fb2db1098c6a188": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "408821a177cf455187fc47fc00740196": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "40e55512a24e42f1888e80392622cb2b": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "41b84621b78143a5a0265aed00478946": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "41e5c4f03a7b48259c49fba1230b4c5c": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "421ba3a1a8cb441fa666825fcc15ade7": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "426ee3175ad54b51aae51ba54039b8b5": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "layout": "IPY_MODEL_39578599cd28453c80da66410b0a0276", + "style": "IPY_MODEL_a066b4c6ea0e42a4a55b5e21d141c8c1", + "value": " 180/180 [11:31<00:00, 2.47s/it]" + } + }, + "42fd717c926c48afb72a20b45f7504a2": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "description": "Ensembles: 100%", + "layout": "IPY_MODEL_9dd4d4c640424801b974920c21b7ae9c", + "max": 3, + "style": "IPY_MODEL_88e8de35c0bd40bcae43cd4f8ba9ee04", + "value": 3 + } + }, + "435ed407c53a4c478b6a6653742d7002": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "43dc459a19674d3d9292cd6732e3274b": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "43fbad9121aa416eabd37edd62e8b1a2": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "449cde14a9f446158de7fef4c78edc60": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "44c1d1f6917f423f8a81a89db00c50ce": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "44c7f6bd64e94a499139b4ac616d7c8b": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "description_width": "initial" + } + }, + "456b14c9a438455f8898dab4b66133f0": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "45e767fb73b74d76b7cd8c14f3c8c986": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "bar_style": "success", + "description": "Ensembles: 100%", + "layout": "IPY_MODEL_547a2abd8bf64dc482ab195d755e29b8", + "max": 3, + "style": "IPY_MODEL_69bd7a9f153b4abb8cf1196b6b03017f", + "value": 3 + } + }, + "46970e556dc3499fa352a9128cc7b388": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "description_width": "initial" + } + }, + "472c661e7e34478db34dbd7a1f943de5": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "layout": "IPY_MODEL_fa0c6770805d4aebad29ebd154e26ec8", + "style": "IPY_MODEL_5fe6377846bf49f0b2a96290fd9d48d1", + "value": " 1165/1165 [05:18<00:00, 2.44it/s]" + } + }, + "476cb7cebfba45fcb8cf5dad0b3d2a0f": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "layout": "IPY_MODEL_f4124f1970064102b3bdb65aa58141f0", + "style": "IPY_MODEL_d2b7d833cc13445199d29f03183289cd", + "value": " 3/3 [00:03<00:00, 1.15s/it]" + } + }, + "4935cb85cbcb48a8a1d47689d665aeb2": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "4a7f06677eaf426b8355bab591c014f4": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "layout": "IPY_MODEL_4e40203b0f564980a4844b5f63271b8f", + "style": "IPY_MODEL_2fc5115da9334813811bddd52af24be9", + "value": " 3/3 [00:02<00:00, 1.47it/s]" + } + }, + "4ad4d7a166004c9eaa57b7e6fdd1659f": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "description_width": "" + } + }, + "4b87fc8179854f0ea2081479feafc48d": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "4cf9e89c86ff4415af41f7ad063c794c": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "4da3145ee09d4ac3b4d8accf7a8e2c74": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "description_width": "initial" + } + }, + "4e11cd5670ba4c76bb53175198d35d40": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "4e40203b0f564980a4844b5f63271b8f": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "4e833f1431514c119cc780a6a688ce1c": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "layout": "IPY_MODEL_b344ed3cb71648dd833dc1e2dc42ca63", + "style": "IPY_MODEL_c22430bee2994b2daece821d8d3c4265", + "value": " 1204/1204 [00:00<00:00, 22189.06it/s]" + } + }, + "4f72babe5deb486e83b3ee7e0616156a": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "4f7fdb5f495f439ba57ceaa549a0bb07": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "description_width": "" + } + }, + "4f82b33d32294bc494f262dc3e94c61a": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "layout": "IPY_MODEL_9bb007bc9ab642e397e5211113e3d58d", + "style": "IPY_MODEL_0f82ccba4efa4bc7a64d7be15bea6c7e", + "value": " 20101/20101 [00:00<00:00, 20468.25it/s]" + } + }, + "5005cbd2aea54851974a1197a3cf88f2": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "50aa6d83b3f14a388d605bea5b23de11": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "513e6a5ed23f47cb89bc2465955f3d13": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "51824b903726410f93e89a8529932732": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "description_width": "initial" + } + }, + "537e630d2c8641eabb2a07b62d669741": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "description_width": "initial" + } + }, + "53a99f9772ab4bd3bde5ca20a8ffdb51": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "bar_style": "success", + "description": "Weighted trajectories: 100%", + "layout": "IPY_MODEL_fddc9a3c7de94d0f9ce582cf3dd14ea3", + "max": 20101, + "style": "IPY_MODEL_5d63d70ecd6345afb2c14bc8cd43bf5c", + "value": 20101 + } + }, + "547a2abd8bf64dc482ab195d755e29b8": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "54f64d93fdad48f58ff8c7ed3c57883a": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "description_width": "initial" + } + }, + "55a6a3d48367486abe84820583401b3d": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "layout": "IPY_MODEL_f909dc9ccb1f48c2b38b4c861bcdb06f", + "style": "IPY_MODEL_34995317a60547b8a210160be4f61180", + "value": " 972/972 [06:00<00:00, 3.66it/s]" + } + }, + "55fd6c9f4d994b5592804af408afb9fa": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "bar_style": "success", + "description": "Crossing probability: 100%", + "layout": "IPY_MODEL_41e5c4f03a7b48259c49fba1230b4c5c", + "max": 3, + "style": "IPY_MODEL_773aa0655b79463cba579260daa84ade", + "value": 3 + } + }, + "574845ba218b4d74b412f48015e9e991": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "576bfc8bd1784c5bb59483b47654e6f4": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "description": "100%", + "layout": "IPY_MODEL_6c9d9455a0ff4ffdb64f256bcf5dda11", + "max": 1204, + "style": "IPY_MODEL_a0e2fa1786ec4d36ac1534bbcee2cf29", + "value": 1204 + } + }, + "578cce3f319947c0a1eca4e541dd4b6c": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "layout": "IPY_MODEL_9fb6554002df4c839177975a26031ee4", + "style": "IPY_MODEL_b9a553c9b0ba4af38029ee0fba4b1c09", + "value": " 3/3 [45:16<00:00, 905.41s/it]" + } + }, + "5875afeb2644411d954ac591e25a4c93": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "layout": "IPY_MODEL_9bbe3520ed134b3f843b5ff868c99c01", + "style": "IPY_MODEL_8ec577968aa84dc8aa989b8b68c73c3f", + "value": " 3/3 [00:00<00:00, 9.55it/s]" + } + }, + "593e121e768e466096d0c66ea48864b2": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "layout": "IPY_MODEL_b7c23cfb20314918a6515b9b3f3bc230", + "style": "IPY_MODEL_313c19a9ab024233a4d8edd7d64c07f4", + "value": " 180/180 [00:38<00:00, 7.21it/s]" + } + }, + "5a0d0714a30444aabb6996ef45832309": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "5a783de87a364b4cb1d05048652d232b": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "5b97fec7ffd94cae97f9c9ac92c649f7": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "description_width": "initial" + } + }, + "5b9f5a5d7bd34e29bddf1ecec0d94d64": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "description_width": "initial" + } + }, + "5bf549fece73448aa45f62e6bb84f034": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "description": "100%", + "layout": "IPY_MODEL_fa2dfdb609a4439282d4498d8e6f0203", + "max": 180, + "style": "IPY_MODEL_0ae4e5c48911419ba92d65c7117f37c3", + "value": 180 + } + }, + "5bff3e92f2484a74914835676d44b636": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "5cafbd98d840474a8346a283eb14d5e8": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "5d63d70ecd6345afb2c14bc8cd43bf5c": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "description_width": "initial" + } + }, + "5de56e2b34764e0eb14ef49579c7042b": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "5ea41dd0e75944eca32601eb26014f95": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "5f5c13e6a3c242fba79ff013816ac631": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "5fe6377846bf49f0b2a96290fd9d48d1": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "description_width": "" + } + }, + "600e5c9526694bfa827946fadcc4607c": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "608a6efcb14d4aba80e81bdc2fea457c": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "6135599ba03246b5b96d8d0d51ece73b": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "description_width": "initial" + } + }, + "61b028995efb4d93b4f50d2bac4fa5b2": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "description_width": "" + } + }, + "61b0f56e8c90404c9c6f7071d558beb2": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "6211e328b8a3451d906c86e0cb468bfc": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "description_width": "initial" + } + }, + "621db00dc8674029be25c7508e03ab5a": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "625313c60a4e4b9fa3d0f5eb9fcca7db": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "description": "100%", + "layout": "IPY_MODEL_1f78856a9f1847adbb5614a20750a498", + "max": 1030, + "style": "IPY_MODEL_46970e556dc3499fa352a9128cc7b388", + "value": 1030 + } + }, + "62e3573176f349a18461b6565b759b26": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "description_width": "" + } + }, + "640749a49033401aabd7495d6efe9689": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "645cee3649364574a14bdc36a3409b09": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "description_width": "initial" + } + }, + "64e2597a8cb44abca56351ffef84be41": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "bar_style": "success", + "description": "Ensembles: 100%", + "layout": "IPY_MODEL_4f72babe5deb486e83b3ee7e0616156a", + "max": 3, + "style": "IPY_MODEL_f37fe7cf3e88479cbde85b95dcd87ff9", + "value": 3 + } + }, + "6562f680e0504ba597723445396a87c7": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "66218d966fbf49508eb188f0384b68e7": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "662f5e87b48043a2ae2f3c56cd4648b6": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "6662199d5c074e86bc28ae836de2af7f": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "description_width": "" + } + }, + "668a9ed8b73c42869b1a431ba57b694b": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "6798ee73a4ea40729e79a01ea164545a": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "67de9d81d85a447c8892a448f83698a4": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "description_width": "" + } + }, + "685d0097e18c47679a5483b6129b921c": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "description_width": "initial" + } + }, + "69bd7a9f153b4abb8cf1196b6b03017f": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "description_width": "initial" + } + }, + "69e8c647f53946ff8d6c8b4e261c5435": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "description": "100%", + "layout": "IPY_MODEL_f1f76c8f1d6143f5ab0d925e74be51da", + "max": 1204, + "style": "IPY_MODEL_8e01c26616be4e08bd45e03e56ae9ae0", + "value": 1204 + } + }, + "6b49a926946a4bf889e307a7dbb44727": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "6c9095368cc944af932e018f19ed319c": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "6c9d9455a0ff4ffdb64f256bcf5dda11": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "6e706842ad9d41f4976fbd96a382cd5e": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "6e7781252ff8475aad8d4c4a27eb76e4": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "description_width": "" + } + }, + "6ecc1c5fe45641ea9a7f6d77b155c134": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "description": "100%", + "layout": "IPY_MODEL_89e8f568bd174dd3ac73d226c8c6cbb3", + "max": 1283, + "style": "IPY_MODEL_029f6d9c8bfc473c834f8fa6a8043cb8", + "value": 1283 + } + }, + "6f0ae26fbcbc4e42a6f1f7ce6e533555": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "701c7ef0232047649bdd9c832629053f": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "705bbb4fdcb54445afb56d074a91491d": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "description": "100%", + "layout": "IPY_MODEL_621db00dc8674029be25c7508e03ab5a", + "max": 1165, + "style": "IPY_MODEL_79138d3d651945c48839521df174175c", + "value": 1165 + } + }, + "706ec4bf400c4b19bad9c53c188eb341": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "70b5daf3d5e64f1f8ca1e84bbd4f825d": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "bar_style": "success", + "description": "Flux: 100%", + "layout": "IPY_MODEL_e97e38fbe95a414cb0e7d55e0854b014", + "max": 3, + "style": "IPY_MODEL_75e7a73969bd4e959eca0bc8aa80e9f3", + "value": 3 + } + }, + "7136e58a0e7d4389b90eeafe786db4b2": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "7189e92ca2384718a118ad477cf31108": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "71a9bd5f2e54415d9079ff88a0068ed4": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "description_width": "initial" + } + }, + "71d5169184424a98a928dc736350f1d1": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "739c6eb1ffbc407e9a37c6044992e063": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "73c1322aeb014ed4959909dcddee80e6": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "layout": "IPY_MODEL_e89dfb6aa3834d82b116d1720acc14cc", + "style": "IPY_MODEL_03adab07b7c741a5a37a9d9278ecf41f", + "value": " 914/914 [00:00<00:00, 23611.40it/s]" + } + }, + "742bd528c782402cae363627041fcf63": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "74a7f08b49074609b7391909b516db52": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "layout": "IPY_MODEL_92efed6a17844752aee90077452c18dd", + "style": "IPY_MODEL_e1b8bfe5f0ba4a97b20985a1db96be16", + "value": " 107/107 [00:30<00:00, 3.64it/s]" + } + }, + "75e7a73969bd4e959eca0bc8aa80e9f3": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "description_width": "initial" + } + }, + "7630463d714147828816ce8f4ea8897f": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "description_width": "" + } + }, + "7647f15722e34097a7dcced78c891ee7": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "description": "100%", + "layout": "IPY_MODEL_449cde14a9f446158de7fef4c78edc60", + "max": 188, + "style": "IPY_MODEL_3949794f82ea422e9b26145057acffea", + "value": 188 + } + }, + "765de27372a44495a7707ce9bdb1b6f1": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "layout": "IPY_MODEL_a3a61786f32e45dd92d253d79e3df30b", + "style": "IPY_MODEL_d8259e381afd477ab722bfd40b05e18e", + "value": " 3/3 [01:44<00:00, 30.90s/it]" + } + }, + "773aa0655b79463cba579260daa84ade": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "description_width": "initial" + } + }, + "77624955e7fb4542878106a5ff4b8005": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "layout": "IPY_MODEL_32ae5071e54444fbb6ebd867998d82d4", + "style": "IPY_MODEL_84b26154937b4f3d8c5bf2b9f7130bd2", + "value": " 972/972 [00:00<00:00, 13626.79it/s]" + } + }, + "77f0f19837de470299456147bab3683e": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "description": "100%", + "layout": "IPY_MODEL_262311c9d8d349dca70ae7c01ebe227d", + "max": 972, + "style": "IPY_MODEL_7a7033883c3c43d19bf89d27227ffcd1", + "value": 972 + } + }, + "78da1c463d3643ff89b5b11a38fe1bd9": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "79138d3d651945c48839521df174175c": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "description_width": "initial" + } + }, + "7921c8b185864ace9f18a44cb8b25f06": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "798f0635c8e942a28dccfacab168f1f8": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "layout": "IPY_MODEL_5de56e2b34764e0eb14ef49579c7042b", + "style": "IPY_MODEL_f20709cb6c2b426092c83b29bd1a866a", + "value": " 95/95 [01:00<00:00, 1.65it/s]" + } + }, + "7a7033883c3c43d19bf89d27227ffcd1": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "description_width": "initial" + } + }, + "7a739ebe61dc4cefb40c1a40e73fc85a": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HBoxModel", + "state": { + "children": [ + "IPY_MODEL_d3c37fb9aac84596a59cff7d7542a3c9", + "IPY_MODEL_096643768c564699bab5804d584f2f6a" + ], + "layout": "IPY_MODEL_408821a177cf455187fc47fc00740196" + } + }, + "7c74833e061f4beda2619c14d184ccee": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "description_width": "initial" + } + }, + "7e22376e0e3c47a58696750155487677": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "description_width": "initial" + } + }, + "7e37817657a24659b7ca721d22051846": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "layout": "IPY_MODEL_ba43266b72b046c0b21203f56f0b51ca", + "style": "IPY_MODEL_0a0a0f9c0d9e46a38d3ad7b917445e92", + "value": " 188/188 [11:46<00:00, 2.60s/it]" + } + }, + "7e43cc048f344be287e372529f0f160a": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "description": "100%", + "layout": "IPY_MODEL_38fa699f72664cc7bd9da878c73960d1", + "max": 180, + "style": "IPY_MODEL_c61252989dda44f2b6ed3b1fc1ddbdfd", + "value": 180 + } + }, + "7f6c9cf4ed774edb9ac59747aac28469": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "80ec63762fe14d1cb98f99994e009af2": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "8117ec85bb2b432183f8db66e9771113": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "bar_style": "success", + "description": "Ensembles: 100%", + "layout": "IPY_MODEL_43dc459a19674d3d9292cd6732e3274b", + "max": 3, + "style": "IPY_MODEL_85e55bc8bc5340dc85e185f7c6a27fe1", + "value": 3 + } + }, + "818db63fc18d446ebb0355f779e666ae": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "8252e71b4d9b4cd7aec4d203eaa914db": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "layout": "IPY_MODEL_85a2d4fc32eb4f09a9eb4fbee5e87b50", + "style": "IPY_MODEL_ded9141952194c25a5ee1059d04125cc", + "value": " 104/104 [00:23<00:00, 3.04it/s]" + } + }, + "825cd512f87841b5a8fc7e0fc4aed44a": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "82cf63fc8a5142ac9d02fdabe60458b9": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "82edd1875a934403b8a15ba5dfa3e96d": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HBoxModel", + "state": { + "children": [ + "IPY_MODEL_aec5e2f4d0194404a4051bf3c4278ed7", + "IPY_MODEL_03bca64795064329954a10e239402097" + ], + "layout": "IPY_MODEL_44c1d1f6917f423f8a81a89db00c50ce" + } + }, + "83df0e98cbc54a9bbacd0650b60ee210": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "layout": "IPY_MODEL_f8cb00359fca43c58d74351d42f90e17", + "style": "IPY_MODEL_3165862140fb469fa5f3749720547f41", + "value": " 83/83 [00:40<00:00, 1.17it/s]" + } + }, + "83fc39f16f0e4459bee299a79cf469c5": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "84b26154937b4f3d8c5bf2b9f7130bd2": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "description_width": "" + } + }, + "84c21496d992478ca10e1177b8383b69": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "layout": "IPY_MODEL_41b84621b78143a5a0265aed00478946", + "style": "IPY_MODEL_8ceb672ce9d947d284a68a9346eb6a66", + "value": " 1030/1030 [05:38<00:00, 2.57it/s]" + } + }, + "84f8c5f47f8a4b218ec2bcac92e12ac0": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "description": "100%", + "layout": "IPY_MODEL_83fc39f16f0e4459bee299a79cf469c5", + "max": 83, + "style": "IPY_MODEL_d45b55a0e0584467b3180580e205d326", + "value": 83 + } + }, + "85753e4cd9684b50b3e2a1f82891fa6b": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "85a2d4fc32eb4f09a9eb4fbee5e87b50": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "85e55bc8bc5340dc85e185f7c6a27fe1": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "description_width": "initial" + } + }, + "874254c585fa4b46af9ea199acdce117": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "8780525393564dd494d8748866c8d34c": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HBoxModel", + "state": { + "children": [ + "IPY_MODEL_aec2f071b2fd43d5b48d0362d61cfd2a", + "IPY_MODEL_e7ce968bf0244b5f91f068acf0ae8233" + ], + "layout": "IPY_MODEL_b3859baf475744b0885bdf76c451d4c9" + } + }, + "87e7201affd44ddea45e6238d2c2797a": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "layout": "IPY_MODEL_ca2f97df366c44cc99d44bc318ca9c25", + "style": "IPY_MODEL_257e3d1bbdf44cf784611f0a357bb952", + "value": " 914/914 [06:13<00:00, 1.61it/s]" + } + }, + "87f0ae1a75554d8d81e33230b3d067a2": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "layout": "IPY_MODEL_c3dda86f36b240b792ce2b3a2847b3c0", + "style": "IPY_MODEL_92c0112aa7e343f4a293c077fbf0e6d4", + "value": " 3/3 [14:11<00:00, 260.76s/it]" + } + }, + "88e8de35c0bd40bcae43cd4f8ba9ee04": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "description_width": "initial" + } + }, + "894104be928d493b9944eb34508350b0": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "89e8f568bd174dd3ac73d226c8c6cbb3": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "89effacaf8e645e28b86889224584ff8": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "bar_style": "success", + "description": "Ensembles: 100%", + "layout": "IPY_MODEL_9ea6ea923ae44a118b0f4d0e83fadd8e", + "max": 3, + "style": "IPY_MODEL_9ccd695257a84b768873f832c54df0cd", + "value": 3 + } + }, + "8a26c32422ab41dfa53462334080b44b": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "description": "100%", + "layout": "IPY_MODEL_9783312765084e108886b84aeaacfc4e", + "max": 195, + "style": "IPY_MODEL_f5861e4679554dffb7810b6187178cec", + "value": 195 + } + }, + "8b2ab0a780af474fa792983195189966": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "8ba24263be4844f3871f36fa98da17ca": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "description_width": "" + } + }, + "8bd9f8a730c4432ea47679bf6def37c0": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "description_width": "" + } + }, + "8c2e51577cac4f02949d3cb4d2596b8b": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "8ceb672ce9d947d284a68a9346eb6a66": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "description_width": "" + } + }, + "8d41188bea9743028b318df1fb54d8b2": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "description_width": "" + } + }, + "8e01c26616be4e08bd45e03e56ae9ae0": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "description_width": "initial" + } + }, + "8ec577968aa84dc8aa989b8b68c73c3f": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "description_width": "" + } + }, + "8ec976149caf41e2a80b6155d1ec7204": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "description": "100%", + "layout": "IPY_MODEL_b4f7461c07e54f9ebab0f2130cbc97b1", + "max": 188, + "style": "IPY_MODEL_ee2e0be8f34f45f2bed09c13eecf63f5", + "value": 188 + } + }, + "905f28e056474f7c89f2138175727cd1": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "90ffebad75534329a674988f4bb43c03": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "description_width": "" + } + }, + "91a6630bb71f4fa19d0772d285626a86": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "description": "100%", + "layout": "IPY_MODEL_8b2ab0a780af474fa792983195189966", + "max": 1136, + "style": "IPY_MODEL_6135599ba03246b5b96d8d0d51ece73b", + "value": 1136 + } + }, + "920c94e78cb14f42a5b87dc1d3edd929": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "description_width": "" + } + }, + "928ae6c80e454a00af7142e4ea9763b6": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "description_width": "" + } + }, + "92b51e30d0b248a69f620e98f8551f06": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "description": "100%", + "layout": "IPY_MODEL_456b14c9a438455f8898dab4b66133f0", + "max": 1379, + "style": "IPY_MODEL_b048799947664ff6abfdc736e8910b19", + "value": 1379 + } + }, + "92c0112aa7e343f4a293c077fbf0e6d4": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "description_width": "" + } + }, + "92efed6a17844752aee90077452c18dd": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "939da5c53aec4beb898710703d1fc960": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "layout": "IPY_MODEL_4b87fc8179854f0ea2081479feafc48d", + "style": "IPY_MODEL_b2ee7fbfb1e94635bded6ac8e1fdd4cf", + "value": " 3/3 [40:20<00:00, 806.82s/it]" + } + }, + "94ebaf62017646f5b25c365fa0ee2adb": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "description_width": "" + } + }, + "9535426cee4c44f2a2f819fdecaafc10": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HBoxModel", + "state": { + "children": [ + "IPY_MODEL_89effacaf8e645e28b86889224584ff8", + "IPY_MODEL_e29e2df5549d45d0a316d78b8a7589e2" + ], + "layout": "IPY_MODEL_f8f478806d094e26ba6e907c8d4ee92a" + } + }, + "9550642804d64dee8c3826cc974fe746": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "description": "100%", + "layout": "IPY_MODEL_5f5c13e6a3c242fba79ff013816ac631", + "max": 972, + "style": "IPY_MODEL_5b97fec7ffd94cae97f9c9ac92c649f7", + "value": 972 + } + }, + "965034bcecfe44ccbb520a1dac0c02a8": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "description": "100%", + "layout": "IPY_MODEL_b1f80a0d390b40bda12e533c26f0761f", + "max": 86, + "style": "IPY_MODEL_d6341f7ee4284f5f9ab3f593cd4c131c", + "value": 86 + } + }, + "9703b9f455154307b9e8ea34542e1b47": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "layout": "IPY_MODEL_82cf63fc8a5142ac9d02fdabe60458b9", + "style": "IPY_MODEL_9c3297cf19a84fe1a91c799a39b5a563", + "value": " 15/15 [01:04<00:00, 3.07s/it]" + } + }, + "972b60d896a14e4e9e716e427e29836e": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "description_width": "" + } + }, + "9783312765084e108886b84aeaacfc4e": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "984db60325664d74ae12a4e76ff545f7": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "98aba922826f4df6b9469dcde4bce888": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "9a5242264b984cdda78f5ba26d2236e9": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "9a71188563f34a31bf663d3cdd366490": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "description_width": "initial" + } + }, + "9a9b2f5d299a467aa39dafbb141a2e8e": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "9b54eb402f304d9eaf34fc6a3e7acb30": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "layout": "IPY_MODEL_984db60325664d74ae12a4e76ff545f7", + "style": "IPY_MODEL_b78637d9ae394e5fb8c29b255d55352f", + "value": " 1165/1165 [00:00<00:00, 20980.79it/s]" + } + }, + "9bb007bc9ab642e397e5211113e3d58d": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "9bbe3520ed134b3f843b5ff868c99c01": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "9c3297cf19a84fe1a91c799a39b5a563": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "description_width": "" + } + }, + "9ccd695257a84b768873f832c54df0cd": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "description_width": "initial" + } + }, + "9dba7bdb49dd4ba297bf7c2ba3a0f2e2": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "description_width": "" + } + }, + "9dd4d4c640424801b974920c21b7ae9c": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "9e6942bd04d04fc8854616bfda4d6c95": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "layout": "IPY_MODEL_c434260711284936917d0246597c381c", + "style": "IPY_MODEL_a82b83b899db49afb6bf023ccf85dd64", + "value": " 1030/1030 [00:00<00:00, 17384.84it/s]" + } + }, + "9ea6ea923ae44a118b0f4d0e83fadd8e": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "9f73e5beb4964b86a7391de19086f03d": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "description": "100%", + "layout": "IPY_MODEL_eba10eee5d0c479f87d4929d96341062", + "max": 1301, + "style": "IPY_MODEL_51824b903726410f93e89a8529932732", + "value": 1301 + } + }, + "9f7e7c637010447b88fafb3b174be537": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "description_width": "initial" + } + }, + "9fb6554002df4c839177975a26031ee4": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "9fbd003e7e784b099b8e5698f3cac745": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "layout": "IPY_MODEL_30c7fcb90394461d817c569bf7825274", + "style": "IPY_MODEL_4ad4d7a166004c9eaa57b7e6fdd1659f", + "value": " 1136/1136 [00:00<00:00, 21655.01it/s]" + } + }, + "9fccf64735a24cefb4e83c54a4e1b7f4": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "a0526cf29ff248ba8ba76c18892192f3": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "description_width": "" + } + }, + "a0571c3f7efd4c99bce0f3c6e0143b7c": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "layout": "IPY_MODEL_e82cfd136efb42e8a174a8cafb4bacbd", + "style": "IPY_MODEL_29f2492ed4124354aea119b024160d15", + "value": " 125/125 [00:13<00:00, 6.21it/s]" + } + }, + "a066b4c6ea0e42a4a55b5e21d141c8c1": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "description_width": "" + } + }, + "a07e18b3e9e044dbb6342f0451110d32": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "description_width": "initial" + } + }, + "a0e2fa1786ec4d36ac1534bbcee2cf29": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "description_width": "initial" + } + }, + "a26c821a5e634891abec636d59aed5f5": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "layout": "IPY_MODEL_d731f309d69343629ad43607a9f0848a", + "style": "IPY_MODEL_a0526cf29ff248ba8ba76c18892192f3", + "value": " 1204/1204 [05:13<00:00, 2.81it/s]" + } + }, + "a2b28c13db324339bf3398dce4a805e1": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "a2c6463ae21947fdaf03c23841930667": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HBoxModel", + "state": { + "children": [ + "IPY_MODEL_55fd6c9f4d994b5592804af408afb9fa", + "IPY_MODEL_939da5c53aec4beb898710703d1fc960" + ], + "layout": "IPY_MODEL_146c734a929248c3bed49c29761c8ec7" + } + }, + "a2c6d7573d184daf9669a8fc9922114f": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "a3a61786f32e45dd92d253d79e3df30b": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "a482668e5852458e8f302783b4fc6b36": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "description": "100%", + "layout": "IPY_MODEL_2073c6b347c74486ac936d3ccbe76c7a", + "max": 15, + "style": "IPY_MODEL_acca913582534374bdd2953bb62eb83c", + "value": 15 + } + }, + "a4be980a5cef4255b4ed589862137897": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "description": "100%", + "layout": "IPY_MODEL_ffef219d7bfd454ab4435765c8319612", + "max": 1301, + "style": "IPY_MODEL_d057868ed0be489786d3d02433c30b63", + "value": 1301 + } + }, + "a576d89590594d299dd18abfa4eea308": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "a58698e6100b41ee8667ab3f99e570b0": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "description_width": "initial" + } + }, + "a77c7c5dfb464af5902243ed6872e7e8": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "a82b83b899db49afb6bf023ccf85dd64": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "description_width": "" + } + }, + "a8aa3a0d3b1a46e9a52dad623d7b959d": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "description_width": "initial" + } + }, + "aa560c72e9f7402b9b92e186e8ee7c7e": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "layout": "IPY_MODEL_662f5e87b48043a2ae2f3c56cd4648b6", + "style": "IPY_MODEL_2032a01ee7bb4961a0bdc6320fe402ca", + "value": " 195/195 [00:36<00:00, 5.17it/s]" + } + }, + "aaa9ea566d794656b3d62361ec91ac36": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HBoxModel", + "state": { + "children": [ + "IPY_MODEL_70b5daf3d5e64f1f8ca1e84bbd4f825d", + "IPY_MODEL_578cce3f319947c0a1eca4e541dd4b6c" + ], + "layout": "IPY_MODEL_bbf4a31005d94766acdf9940440c5a2d" + } + }, + "ab4c391d1d8a4b6ebe04ba3de405be5a": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "abdc4d43fee04865b34ad17a75e9ee83": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "description_width": "" + } + }, + "ac4e5cd75af5444085b97ff2b2790189": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "description": "100%", + "layout": "IPY_MODEL_fec54a15f0134c79b1a487fba37eb159", + "max": 1204, + "style": "IPY_MODEL_dffdcbf03a674bb782416c58e78d85cf", + "value": 1204 + } + }, + "acca913582534374bdd2953bb62eb83c": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "description_width": "initial" + } + }, + "acf6edc7713e4dae98f42fbe241d4271": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "description": "100%", + "layout": "IPY_MODEL_2436e30266444eba883e0752021d3663", + "max": 125, + "style": "IPY_MODEL_bd0908557101453fbdeb02f32b0b0346", + "value": 125 + } + }, + "ad31f8eebf58407d858dae7f6e386ff0": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "ad98274a9cfb490dbf4b31e9839ab5d8": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "description_width": "initial" + } + }, + "ae8bf72134c44ac4815b640146bedaf6": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "description_width": "" + } + }, + "ae94d12f60d1419cb67ed06fd6bd13cd": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "description_width": "initial" + } + }, + "ae9c624b88594f77a9bf9cff90ffb9d8": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "description": "100%", + "layout": "IPY_MODEL_2ba4e583915f449b8ca3f401dd2d0eaa", + "max": 127, + "style": "IPY_MODEL_7e22376e0e3c47a58696750155487677", + "value": 127 + } + }, + "aec2f071b2fd43d5b48d0362d61cfd2a": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "bar_style": "success", + "description": "Ensembles: 100%", + "layout": "IPY_MODEL_056320166a8143078a74800bb128700f", + "max": 3, + "style": "IPY_MODEL_537e630d2c8641eabb2a07b62d669741", + "value": 3 + } + }, + "aec5e2f4d0194404a4051bf3c4278ed7": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "bar_style": "success", + "description": "Weighted trajectories: 100%", + "layout": "IPY_MODEL_c860802279394b5dbc99b4fb678a5936", + "max": 20101, + "style": "IPY_MODEL_30ced080967f4b7da9ad85fe60bfa554", + "value": 20101 + } + }, + "af06af26b9cb46a0bdec68a6c36fd225": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "layout": "IPY_MODEL_18b58c1a98d14ab5b93fbee8e1228b17", + "style": "IPY_MODEL_8d41188bea9743028b318df1fb54d8b2", + "value": " 3/3 [04:54<00:00, 98.19s/it]" + } + }, + "b048799947664ff6abfdc736e8910b19": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "description_width": "initial" + } + }, + "b0c86c847bf0482f8ccdf5c4c42983f2": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HBoxModel", + "state": { + "children": [ + "IPY_MODEL_11d4509bc3304df9a0b947728f9a31a1", + "IPY_MODEL_ebf488c9f6854deaa24df1e9e9d58019" + ], + "layout": "IPY_MODEL_6e706842ad9d41f4976fbd96a382cd5e" + } + }, + "b1602e6accd642e89f04a0cbd18c717f": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "description": "Ensembles: 100%", + "layout": "IPY_MODEL_ba8425e2c6c042a7b2ed79e4d40470f6", + "max": 3, + "style": "IPY_MODEL_9a71188563f34a31bf663d3cdd366490", + "value": 3 + } + }, + "b1cb9d5374c1493784ca2fee443596b0": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "layout": "IPY_MODEL_874254c585fa4b46af9ea199acdce117", + "style": "IPY_MODEL_90ffebad75534329a674988f4bb43c03", + "value": " 1283/1283 [00:00<00:00, 17267.10it/s]" + } + }, + "b1f80a0d390b40bda12e533c26f0761f": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "b2ee7fbfb1e94635bded6ac8e1fdd4cf": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "description_width": "" + } + }, + "b344ed3cb71648dd833dc1e2dc42ca63": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "b3859baf475744b0885bdf76c451d4c9": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "b4111e65ca664d42aa305bea6cd9fa53": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "description": "100%", + "layout": "IPY_MODEL_5ea41dd0e75944eca32601eb26014f95", + "max": 1030, + "style": "IPY_MODEL_f11d78d4a86f42309280391f5a8cb109", + "value": 1030 + } + }, + "b45805e82ab14d82bd51c45b5931d585": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "layout": "IPY_MODEL_a2c6d7573d184daf9669a8fc9922114f", + "style": "IPY_MODEL_9dba7bdb49dd4ba297bf7c2ba3a0f2e2", + "value": " 114/114 [00:25<00:00, 2.60it/s]" + } + }, + "b45ebba2bdf74e48a5c3a56fef8ae31f": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "description": "Ensembles: 100%", + "layout": "IPY_MODEL_f337349026884871ad56dd4a2fca76fb", + "max": 3, + "style": "IPY_MODEL_30cfde8053a2476296865db6eaaec7f1", + "value": 3 + } + }, + "b4f38a57a8544482974895c252232c04": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "b4f7461c07e54f9ebab0f2130cbc97b1": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "b56d02e55a814c299c32dc7ced938b5b": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "layout": "IPY_MODEL_f9c7e19063b34f979d1c767b292685e9", + "style": "IPY_MODEL_8ba24263be4844f3871f36fa98da17ca", + "value": " 128/128 [00:12<00:00, 26.60it/s]" + } + }, + "b5942d426cbc4ecaaa82699df476c29c": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "b5d08571344d4167a3e9ea2ac14c3fe6": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "bar_style": "success", + "description": "Crossing probability: 100%", + "layout": "IPY_MODEL_ecd183c9ce244ec5b3d36817416b65b9", + "max": 3, + "style": "IPY_MODEL_b6e7d39744be48c6a2a54e452fa5b460", + "value": 3 + } + }, + "b630667798b54923bec8ad2aba0f0d48": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "b6789a0da5dd4fb8940b3b1c4f567fe7": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "description_width": "initial" + } + }, + "b6e7d39744be48c6a2a54e452fa5b460": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "description_width": "initial" + } + }, + "b78637d9ae394e5fb8c29b255d55352f": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "description_width": "" + } + }, + "b7c23cfb20314918a6515b9b3f3bc230": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "b81736ffd2b645069b6f811404f08001": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "b88b42cab75c44a09530672d0ca805f3": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "b92ef101df1c42f1b660069ec9495c28": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "description_width": "" + } + }, + "b937f10be40d418abf3ed930b82007e5": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "description_width": "" + } + }, + "b9a553c9b0ba4af38029ee0fba4b1c09": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "description_width": "" + } + }, + "ba43266b72b046c0b21203f56f0b51ca": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "ba8425e2c6c042a7b2ed79e4d40470f6": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "bba5dd9012224246bbbbe77d9012d01e": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "description_width": "" + } + }, + "bbf4a31005d94766acdf9940440c5a2d": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "bd0908557101453fbdeb02f32b0b0346": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "description_width": "initial" + } + }, + "bdb2e3e2f4b0428dbf905e02233e1b80": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "bdd7bb7d3a6645ee868feda024ebfe8c": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "description_width": "" + } + }, + "be4cd47a81254189aa7321b77d52297d": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "description_width": "" + } + }, + "bebd5b880b7749399a4bc1fc11e40a8b": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "description": "100%", + "layout": "IPY_MODEL_140b26a2236e491198d05fa4a700b59a", + "max": 1136, + "style": "IPY_MODEL_1df499a4b113456f9b588532bca18c6e", + "value": 1136 + } + }, + "bf30a0d1adc143f184050c6b3abb77a9": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "description_width": "initial" + } + }, + "c0d66b7ae0514143a1125e5e7029f2f9": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "layout": "IPY_MODEL_6f0ae26fbcbc4e42a6f1f7ce6e533555", + "style": "IPY_MODEL_928ae6c80e454a00af7142e4ea9763b6", + "value": " 1136/1136 [03:50<00:00, 4.34it/s]" + } + }, + "c18bc7998f9f459d99a4fc678a70648a": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "description_width": "" + } + }, + "c22430bee2994b2daece821d8d3c4265": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "description_width": "" + } + }, + "c263292468834e558aa8135e98fdcf5d": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "layout": "IPY_MODEL_513e6a5ed23f47cb89bc2465955f3d13", + "style": "IPY_MODEL_fea0a1ac1d0f41f9b28b6bd3070dc18a", + "value": " 3/3 [01:16<00:00, 23.14s/it]" + } + }, + "c34f293d37fc4ae290df6bc6fb32e116": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "description_width": "initial" + } + }, + "c3dda86f36b240b792ce2b3a2847b3c0": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "c41cbd509acd4cafb6f85a7cdc6c9250": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "c434260711284936917d0246597c381c": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "c47072d94b044541a55196ff5bee941e": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "c60c3989410846879569f40b992554eb": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "c61252989dda44f2b6ed3b1fc1ddbdfd": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "description_width": "initial" + } + }, + "c6376e9a6cd841d6a4f6ef3c25b46aa1": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "layout": "IPY_MODEL_701c7ef0232047649bdd9c832629053f", + "style": "IPY_MODEL_10fe30a557134a218ab589ca957779d7", + "value": " 188/188 [00:48<00:00, 5.98it/s]" + } + }, + "c775c2fc6d8c468698a819b79c599582": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "c783b34407d247f7ad2011db8edc70c0": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "description_width": "initial" + } + }, + "c836892029df4912b3e59d46f68d577f": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "description": "100%", + "layout": "IPY_MODEL_a576d89590594d299dd18abfa4eea308", + "max": 104, + "style": "IPY_MODEL_c99df1a0d6b844dab84331b69863ee10", + "value": 104 + } + }, + "c860802279394b5dbc99b4fb678a5936": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "c8b807a6cef045cea7d7f3609e541fe3": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "layout": "IPY_MODEL_5a0d0714a30444aabb6996ef45832309", + "style": "IPY_MODEL_6e7781252ff8475aad8d4c4a27eb76e4", + "value": " 127/127 [00:12<00:00, 9.75it/s]" + } + }, + "c8da01b2ada1401cb4a37207cca9e4b4": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "layout": "IPY_MODEL_3aeba62c29c84287aabcc4e94bb72482", + "style": "IPY_MODEL_01ca1c98f1da47ce827775bd252ae6d2", + "value": " 180/180 [00:46<00:00, 6.70it/s]" + } + }, + "c95add0a743145e4948bad7f1a660705": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "description_width": "" + } + }, + "c999c32dfcce4b86867712b0f33d02ad": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "layout": "IPY_MODEL_80ec63762fe14d1cb98f99994e009af2", + "style": "IPY_MODEL_efeb7042cd3947a88b1f306d7f321586", + "value": " 972/972 [00:00<00:00, 24270.80it/s]" + } + }, + "c99df1a0d6b844dab84331b69863ee10": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "description_width": "initial" + } + }, + "ca2f97df366c44cc99d44bc318ca9c25": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "ca4bf7c48b924debba3790a1baa1af3f": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "description_width": "initial" + } + }, + "cc937b32edc845ce8d12df42f464d9e8": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "layout": "IPY_MODEL_9fccf64735a24cefb4e83c54a4e1b7f4", + "style": "IPY_MODEL_920c94e78cb14f42a5b87dc1d3edd929", + "value": " 195/195 [00:46<00:00, 4.64it/s]" + } + }, + "cd84a09f5caf415ab99a9f43b929565e": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "layout": "IPY_MODEL_3fda701c18df4cd58fb2db1098c6a188", + "style": "IPY_MODEL_b92ef101df1c42f1b660069ec9495c28", + "value": " 3/3 [01:19<00:00, 24.21s/it]" + } + }, + "ce5c4e2a7878461f89a19212c482e0e0": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "layout": "IPY_MODEL_115b4ff509804bcf9163b0829df07c0c", + "style": "IPY_MODEL_7630463d714147828816ce8f4ea8897f", + "value": " 1379/1379 [00:00<00:00, 18248.94it/s]" + } + }, + "cf0cd7d27157482aac0d8344394c7e28": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "description_width": "initial" + } + }, + "cf3746b662f547289215db2fd37aaa65": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "layout": "IPY_MODEL_39e8a4fa1caa409a9ad76da3482b396b", + "style": "IPY_MODEL_be4cd47a81254189aa7321b77d52297d", + "value": " 1204/1204 [00:00<00:00, 17860.35it/s]" + } + }, + "cfc3f74b3740455c9ffa87c863c7e366": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "cff26c48974744b0aa572a1ab422e296": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HBoxModel", + "state": { + "children": [ + "IPY_MODEL_64e2597a8cb44abca56351ffef84be41", + "IPY_MODEL_476cb7cebfba45fcb8cf5dad0b3d2a0f" + ], + "layout": "IPY_MODEL_a2b28c13db324339bf3398dce4a805e1" + } + }, + "d057868ed0be489786d3d02433c30b63": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "description_width": "initial" + } + }, + "d0c719ccc6db465db346772a482bdd67": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "d23558c2760243719dfcbd5f1525ad67": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "d2804fdcb0954d17b93ca3ff732c154e": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "description_width": "" + } + }, + "d2b7d833cc13445199d29f03183289cd": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "description_width": "" + } + }, + "d33f4f1ecf09446f9c7c0df1f4eddb84": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "d373dbd7c6274afbbe1dd7119ee0e82c": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "description": "100%", + "layout": "IPY_MODEL_5005cbd2aea54851974a1197a3cf88f2", + "max": 1204, + "style": "IPY_MODEL_645cee3649364574a14bdc36a3409b09", + "value": 1204 + } + }, + "d3c37fb9aac84596a59cff7d7542a3c9": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "bar_style": "success", + "description": "Flux: 100%", + "layout": "IPY_MODEL_dee079d6e7c3424c8e29469ec34e285a", + "max": 3, + "style": "IPY_MODEL_7c74833e061f4beda2619c14d184ccee", + "value": 3 + } + }, + "d3c440a8820145cb9451bc8e17dfb7b3": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "d3c5f4af37014d25a750f2fd0399ef5f": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "description": "100%", + "layout": "IPY_MODEL_3b084823d6f84af496eb6bdefaeb8586", + "max": 114, + "style": "IPY_MODEL_c34f293d37fc4ae290df6bc6fb32e116", + "value": 114 + } + }, + "d45b55a0e0584467b3180580e205d326": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "description_width": "initial" + } + }, + "d4f34d30fb734d059956b9de47e7940a": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "d4fbe52239754b91a01440145c53756a": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "d5004227231d4f288a0e0e93ffb8b60b": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "d6341f7ee4284f5f9ab3f593cd4c131c": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "description_width": "initial" + } + }, + "d731f309d69343629ad43607a9f0848a": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "d8259e381afd477ab722bfd40b05e18e": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "description_width": "" + } + }, + "d85ef9c0fbc54fe9baeb82f52e4116dc": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "layout": "IPY_MODEL_818db63fc18d446ebb0355f779e666ae", + "style": "IPY_MODEL_c95add0a743145e4948bad7f1a660705", + "value": " 22/22 [01:27<00:00, 3.85s/it]" + } + }, + "d951186f1d8d48d4ae1deea2856c6782": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "da77e0fb1a79421294aa3b872aeca82a": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "description_width": "initial" + } + }, + "daa16ee02c8f4fe3979f7c7d8801cd32": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "description_width": "initial" + } + }, + "db8ee0bf1125493c9ac7429bb10ff9f7": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "dc72cddb6fdb4bb595a37438405d7f8e": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "dca274b3aa9b468c993bafe378dc9a5a": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "ddef0ed8c6954157b380468c180acd55": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "layout": "IPY_MODEL_1d2f9a460a8f45d9bf2d90475330ccff", + "style": "IPY_MODEL_bdd7bb7d3a6645ee868feda024ebfe8c", + "value": " 3/3 [00:01<00:00, 2.22it/s]" + } + }, + "de1dd6ad3f34480e8c21e6aedd75835f": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "description": "100%", + "layout": "IPY_MODEL_600e5c9526694bfa827946fadcc4607c", + "max": 107, + "style": "IPY_MODEL_3cffc2d444634bbf92cb21b42ca792a1", + "value": 107 + } + }, + "de8f3eae23994bbab9ce45d90b6205ac": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "layout": "IPY_MODEL_2f0d56bfd2bb4535bfdaac52b3718915", + "style": "IPY_MODEL_8bd9f8a730c4432ea47679bf6def37c0", + "value": " 914/914 [00:00<00:00, 24188.24it/s]" + } + }, + "ded9141952194c25a5ee1059d04125cc": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "description_width": "" + } + }, + "dee079d6e7c3424c8e29469ec34e285a": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "dffdcbf03a674bb782416c58e78d85cf": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "description_width": "initial" + } + }, + "e05ea3b6484c463ba25633050b95ed85": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "e09cbd1967d74ffabf2dba3dab46d0a0": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "description": "100%", + "layout": "IPY_MODEL_421ba3a1a8cb441fa666825fcc15ade7", + "max": 128, + "style": "IPY_MODEL_ad98274a9cfb490dbf4b31e9839ab5d8", + "value": 128 + } + }, + "e0b67ca2fad942dbabb26552f7caff4b": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "e0f79497d03047538d150504a200329f": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "description": "100%", + "layout": "IPY_MODEL_2c11de7c065d4a309080e58b1488166d", + "max": 914, + "style": "IPY_MODEL_5b9f5a5d7bd34e29bddf1ecec0d94d64", + "value": 914 + } + }, + "e1b8bfe5f0ba4a97b20985a1db96be16": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "description_width": "" + } + }, + "e1fe36163e734edcb3d7e91d8be6f488": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "layout": "IPY_MODEL_6562f680e0504ba597723445396a87c7", + "style": "IPY_MODEL_94ebaf62017646f5b25c365fa0ee2adb", + "value": " 1379/1379 [00:00<00:00, 28499.50it/s]" + } + }, + "e22add99a31b4cfba8324c8ff70ff5c2": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "e235b47a56774b51be25bb1e102d61b1": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "description": "100%", + "layout": "IPY_MODEL_1a3730c1081d47fc9d9a843a53aafc6b", + "max": 1165, + "style": "IPY_MODEL_3999b92d333d4557a05d99a6299470d7", + "value": 1165 + } + }, + "e29e2df5549d45d0a316d78b8a7589e2": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "layout": "IPY_MODEL_9a9b2f5d299a467aa39dafbb141a2e8e", + "style": "IPY_MODEL_1b6d462643274ba8b82444fb864eac17", + "value": " 3/3 [00:00<00:00, 9.29it/s]" + } + }, + "e33ae38720b049d3a1435c126ca9e5e2": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "description_width": "initial" + } + }, + "e34a38bb45f544d8b58227aa8efcaaee": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "e35bd7755c8f4b608aa817a2f5e0c4aa": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "layout": "IPY_MODEL_f150b4d9ce814150a20634ba8a6e590e", + "style": "IPY_MODEL_abdc4d43fee04865b34ad17a75e9ee83", + "value": " 30/30 [01:43<00:00, 3.48s/it]" + } + }, + "e3d6b95c5cef46b58b9e3a4e339ffe4b": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "layout": "IPY_MODEL_61b0f56e8c90404c9c6f7071d558beb2", + "style": "IPY_MODEL_e7df4a720ed3410585f41370597aa387", + "value": " 3/3 [12:32<00:00, 233.55s/it]" + } + }, + "e63dbf0ceb654b2091c60a40bd0a06f9": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "e7ce968bf0244b5f91f068acf0ae8233": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "layout": "IPY_MODEL_b4f38a57a8544482974895c252232c04", + "style": "IPY_MODEL_bba5dd9012224246bbbbe77d9012d01e", + "value": " 3/3 [00:04<00:00, 1.35s/it]" + } + }, + "e7df4a720ed3410585f41370597aa387": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "description_width": "" + } + }, + "e7fee2a1615a45348ce8b51e933f4e88": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "e82cfd136efb42e8a174a8cafb4bacbd": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "e82f47fca90f4e8aa3baa3749e0d7c61": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "e89dfb6aa3834d82b116d1720acc14cc": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "e8de5132ecfb49889a7cf7a1cd0fd44a": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "description": "Ensembles: 100%", + "layout": "IPY_MODEL_199e45ebfd7c4b45b8317887392f3acb", + "max": 3, + "style": "IPY_MODEL_1eef8acd503f4e4491eb72860d26e05d", + "value": 3 + } + }, + "e97e38fbe95a414cb0e7d55e0854b014": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "ea0e1a1a41cf4572a6226b7e2969f3c4": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "ea37df8820184dcf928213ebc45723f2": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "description": "100%", + "layout": "IPY_MODEL_1d4dc77333d045b79eaddbe63e8419df", + "max": 1165, + "style": "IPY_MODEL_a07e18b3e9e044dbb6342f0451110d32", + "value": 1165 + } + }, + "eaa5d7a81c39446997114641329b0158": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "layout": "IPY_MODEL_db8ee0bf1125493c9ac7429bb10ff9f7", + "style": "IPY_MODEL_2055088cde124ff0845414e5882f4cf9", + "value": " 3/3 [00:00<00:00, 6.71it/s]" + } + }, + "eba10eee5d0c479f87d4929d96341062": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "ebbe79eeb68d48dc9542b11340baf7a1": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "ebf488c9f6854deaa24df1e9e9d58019": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "layout": "IPY_MODEL_0592a44474a54deebc890e9065a499e7", + "style": "IPY_MODEL_c18bc7998f9f459d99a4fc678a70648a", + "value": " 3/3 [01:53<00:00, 37.97s/it]" + } + }, + "ec131c971f6c40238c0855d7173ad56c": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "layout": "IPY_MODEL_e82f47fca90f4e8aa3baa3749e0d7c61", + "style": "IPY_MODEL_d2804fdcb0954d17b93ca3ff732c154e", + "value": " 972/972 [00:00<00:00, 11589.90it/s]" + } + }, + "ec4c92823aab4a8fb99d2a75ef604456": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HBoxModel", + "state": { + "children": [ + "IPY_MODEL_3b3a586a44924559805603e787e91851", + "IPY_MODEL_27d4bb8c51a64ae79396387523a48979" + ], + "layout": "IPY_MODEL_c60c3989410846879569f40b992554eb" + } + }, + "ec9ef0fb2e694dd4a56854e146205bfa": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "ecd183c9ce244ec5b3d36817416b65b9": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "ee2e0be8f34f45f2bed09c13eecf63f5": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "description_width": "initial" + } + }, + "eeaab70ba1e34388af224e605457ac1b": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "description": "100%", + "layout": "IPY_MODEL_dca274b3aa9b468c993bafe378dc9a5a", + "max": 95, + "style": "IPY_MODEL_44c7f6bd64e94a499139b4ac616d7c8b", + "value": 95 + } + }, + "efeb7042cd3947a88b1f306d7f321586": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "description_width": "" + } + }, + "f071ac054de946d2b7a7c9ea64c91e81": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "f1151cb6655e48de978a4433987d1708": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "f11d78d4a86f42309280391f5a8cb109": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "description_width": "initial" + } + }, + "f150b4d9ce814150a20634ba8a6e590e": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "f1f76c8f1d6143f5ab0d925e74be51da": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "f20709cb6c2b426092c83b29bd1a866a": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "description_width": "" + } + }, + "f337349026884871ad56dd4a2fca76fb": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "f34024f03a02441eba2cd37a6f13723a": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "description_width": "initial" + } + }, + "f37fe7cf3e88479cbde85b95dcd87ff9": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "description_width": "initial" + } + }, + "f4124f1970064102b3bdb65aa58141f0": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "f45c13cddad14e438271d193ac637f17": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "f5861e4679554dffb7810b6187178cec": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "description_width": "initial" + } + }, + "f68464cd881141ec8c487ac29987ddc5": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "description": "100%", + "layout": "IPY_MODEL_f6d78e750ae2451e843acb1c8786927b", + "max": 1379, + "style": "IPY_MODEL_54f64d93fdad48f58ff8c7ed3c57883a", + "value": 1379 + } + }, + "f6d78e750ae2451e843acb1c8786927b": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "f84cfb65aac04b29b414d23dee675c04": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "description": "100%", + "layout": "IPY_MODEL_1352e87dae664a6693ca0925e3eaf0c2", + "max": 195, + "style": "IPY_MODEL_25122a5d846e4fcaa07b05d39b509c5e", + "value": 195 + } + }, + "f8cb00359fca43c58d74351d42f90e17": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "f8f478806d094e26ba6e907c8d4ee92a": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "f909dc9ccb1f48c2b38b4c861bcdb06f": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "f9989c50238148b4a1491247cb1dce9f": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "f9bdc7ce128c4fb59336884f1a820498": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "f9c7e19063b34f979d1c767b292685e9": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "fa0c6770805d4aebad29ebd154e26ec8": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "fa2dfdb609a4439282d4498d8e6f0203": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "fb7082066e5043b8808b813cd9d28a3b": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "layout": "IPY_MODEL_b5942d426cbc4ecaaa82699df476c29c", + "style": "IPY_MODEL_972b60d896a14e4e9e716e427e29836e", + "value": " 1379/1379 [00:00<00:00, 25433.88it/s]" + } + }, + "fbfc99fe61154f22ad459bbe1cc811c5": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "fd75cffada4b49b39f2cd1b61d0cc628": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HBoxModel", + "state": { + "children": [ + "IPY_MODEL_8117ec85bb2b432183f8db66e9771113", + "IPY_MODEL_eaa5d7a81c39446997114641329b0158" + ], + "layout": "IPY_MODEL_1a817fad98694799b654afea178177df" + } + }, + "fdb9ec3dde4a4201a131764469ab74d6": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "description_width": "" + } + }, + "fddc9a3c7de94d0f9ce582cf3dd14ea3": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "fea0a1ac1d0f41f9b28b6bd3070dc18a": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "description_width": "" + } + }, + "fec54a15f0134c79b1a487fba37eb159": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "ff6f7e82134b47d186994dd64c9315ad": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "layout": "IPY_MODEL_093f314a063e45c79478ade12ca8a7a8", + "style": "IPY_MODEL_6662199d5c074e86bc28ae836de2af7f", + "value": " 86/86 [00:40<00:00, 1.55it/s]" + } + }, + "ffb5dd5191264b02b9f5e952c7da84be": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "layout": "IPY_MODEL_3cc1b71d48f5451ca174349a3677e0e6", + "style": "IPY_MODEL_62e3573176f349a18461b6565b759b26", + "value": " 1283/1283 [02:39<00:00, 19.53it/s]" + } + }, + "ffef219d7bfd454ab4435765c8319612": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + } + }, + "version_major": 2, + "version_minor": 0 + } } }, "nbformat": 4, From 2d776544d18b5426383c8cabf438deac6be7e1ef Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 30 Jan 2020 10:54:47 +0100 Subject: [PATCH 305/464] Fix pandas set_value -> at --- openpathsampling/high_level/network.py | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/openpathsampling/high_level/network.py b/openpathsampling/high_level/network.py index d6c7e6130..78f51d8e4 100644 --- a/openpathsampling/high_level/network.py +++ b/openpathsampling/high_level/network.py @@ -705,9 +705,12 @@ def rate_matrix(self, steps, force=False): for trans in self.transitions.values(): rate = trans.rate(steps) - self._rate_matrix.set_value(trans.stateA.name, - trans.stateB.name, - rate) + # self._rate_matrix.set_value(trans.stateA.name, + # trans.stateB.name, + # rate) + name_A = trans.stateA.name + name_B = trans.stateB.name + self._rate_matrix.at[name_A, name_B] = rate #print trans.stateA.name, trans.stateB.name, #print rate @@ -972,8 +975,11 @@ def rate_matrix(self, steps, force=False): # probability automatically rate = trans.rate(steps) - self._rate_matrix.set_value(trans.stateA.name, - trans.stateB.name, - rate) + # self._rate_matrix.set_value(trans.stateA.name, + # trans.stateB.name, + # rate) + name_A = trans.stateA.name + name_B = trans.stateB.name + self._rate_matrix.at[name_A, name_B] = rate return self._rate_matrix From 56ce604e1d7e4ef4d8463e62f73641c2ed1c35ca Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 30 Jan 2020 14:31:03 +0100 Subject: [PATCH 306/464] finish using subset; tests for new random vel --- openpathsampling/snapshot_modifier.py | 26 +++++++++++-------- .../tests/test_snapshot_modifier.py | 7 +++++ 2 files changed, 22 insertions(+), 11 deletions(-) diff --git a/openpathsampling/snapshot_modifier.py b/openpathsampling/snapshot_modifier.py index 3b1d555ce..91928cd1f 100644 --- a/openpathsampling/snapshot_modifier.py +++ b/openpathsampling/snapshot_modifier.py @@ -61,15 +61,15 @@ def extract_subset(self, full_array, subset=None): are None """ if subset is None: - subset = self.subset_mast + subset = self.subset_mask if subset is None: return full_array else: return [full_array[i] for i in subset] - def apply_to_subset(self, full_array, modified): - """Replaces elements of full_array according to self.subset_mask + def apply_to_subset(self, full_array, modified, subset_mask=None): + """Replaces elements of full_array according to the subset mask This returns the full_array, but the modification is done in-place. @@ -87,8 +87,10 @@ def apply_to_subset(self, full_array, modified): modified version of the input array, where the elements specified by self.subset_mask have been replaced """ - subset_mask = self.subset_mask - if self.subset_mask is None: + if subset_mask is None: + subset_mask = self.subset_mask + + if subset_mask is None: subset_mask = range(len(full_array)) for (i, val) in zip(subset_mask, modified): full_array[i] = val @@ -138,17 +140,17 @@ def __init__(self, beta=None, engine=None, subset_mask=None): self.beta = beta self.engine = engine - def _default_random_velocities(self, snapshot, beta, subset=None): + def _default_random_velocities(self, snapshot, beta, subset): if beta is None: raise RuntimeError("Engine can't use RandomVelocities") # raises AttributeError is snapshot doesn't support velocities velocities = copy.copy(snapshot.velocities) # copy.copy for units - vel_subset = self.extract_subset(velocities) + vel_subset = self.extract_subset(velocities, subset) # raises AttributeError if snapshot doesn't support masses feature all_masses = snapshot.masses - masses = self.extract_subset(all_masses) + masses = self.extract_subset(all_masses, subset) n_spatial = len(vel_subset[0]) n_atoms = len(vel_subset) @@ -160,7 +162,7 @@ def _default_random_velocities(self, snapshot, beta, subset=None): sigma = np.sqrt(radicand) vel_subset[atom_i] = sigma * np.random.normal(size=n_spatial) - self.apply_to_subset(velocities, vel_subset) + self.apply_to_subset(velocities, vel_subset, subset) new_snap = snapshot.copy_with_replacement(velocities=velocities) # applying constraints, if they exist @@ -187,13 +189,15 @@ def __call__(self, snapshot): make_snapshot = functools.partial( self._default_random_velocities, - beta=beta + beta=beta, + subset=self.subset_mask ) if self.engine: try: make_snapshot = functools.partial( self.engine.randomize_velocities, - beta=beta + beta=beta, + subset=self.subset_mask ) except AttributeError: pass # use default diff --git a/openpathsampling/tests/test_snapshot_modifier.py b/openpathsampling/tests/test_snapshot_modifier.py index 0f1c143b6..c5f6e62b8 100644 --- a/openpathsampling/tests/test_snapshot_modifier.py +++ b/openpathsampling/tests/test_snapshot_modifier.py @@ -4,6 +4,7 @@ from builtins import range from past.utils import old_div from builtins import object +import pytest from nose.tools import (assert_equal, assert_not_equal, raises, assert_almost_equal, assert_true) from nose.plugins.skip import SkipTest @@ -191,6 +192,12 @@ def test_subset_call(self): for val in new_2x3D.velocities[0]: assert_not_equal(val, 0.0) + def test_no_beta_bad_engine(self): + engine = self.snap_2x3D.engine + randomizer = RandomVelocities(engine=engine) + with pytest.raises(RuntimeError): + randomizer(self.snap_2x3D) + def test_with_openmm_snapshot(self): # note: this is only a smoke test; correctness depends on OpenMM's # tests of its constraint approaches. From 13a93fd28a6613599b7ec0f787986fb62d08ae7c Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 30 Jan 2020 18:25:35 +0100 Subject: [PATCH 307/464] docstring answers to review from @sroet --- openpathsampling/snapshot_modifier.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/openpathsampling/snapshot_modifier.py b/openpathsampling/snapshot_modifier.py index 91928cd1f..61b2c15f3 100644 --- a/openpathsampling/snapshot_modifier.py +++ b/openpathsampling/snapshot_modifier.py @@ -45,6 +45,11 @@ def __init__(self, subset_mask=None): def extract_subset(self, full_array, subset=None): """Extracts elements from full_array according to self.subset_mask + Note that, if ``subset`` and ``self.subset`` are None, this returns + ``full_array``. If you intend to modify the object returned by this + functions, you should ensure that your input ``full_array`` is a + copy of any orginal immutable data. + Parameters ---------- full_array : list-like @@ -55,7 +60,7 @@ def extract_subset(self, full_array, subset=None): Returns ------- - list + list-like the elements of full_array which are selected by self.subset_mask, or full_array if subset and self.subset_mask are None @@ -80,6 +85,9 @@ def apply_to_subset(self, full_array, modified, subset_mask=None): modified : list-like array containing len(self.subset_mask) elements which will replace those in `full_array` + subset_mask : list of int or None + the subset to use; see ``SnapshotModifier.subset_mask``. Default + (None) uses the value of ``self.subset_mask``. Returns ------- From 36ca37d0b7462da577b894c7cb7d73e47990f308 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Fri, 31 Jan 2020 19:43:46 +0100 Subject: [PATCH 308/464] Release 1.2 --- devtools/conda-recipe/meta.yaml | 2 +- openpathsampling/netcdfplus/version.py | 6 +++--- setup.cfg | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/devtools/conda-recipe/meta.yaml b/devtools/conda-recipe/meta.yaml index 186158265..37735203f 100644 --- a/devtools/conda-recipe/meta.yaml +++ b/devtools/conda-recipe/meta.yaml @@ -1,6 +1,6 @@ package: name: openpathsampling - version: "1.2.0.dev0" + version: "1.2.0" source: path: ../../ diff --git a/openpathsampling/netcdfplus/version.py b/openpathsampling/netcdfplus/version.py index 08657c7e5..86a121655 100644 --- a/openpathsampling/netcdfplus/version.py +++ b/openpathsampling/netcdfplus/version.py @@ -1,5 +1,5 @@ -short_version = '1.2.0.dev0' -version = '1.2.0.dev0' -full_version = '1.2.0.dev0' +short_version = '1.2.0' +version = '1.2.0' +full_version = '1.2.0' git_revision = 'alpha' release = False diff --git a/setup.cfg b/setup.cfg index 8c6f6cab0..0d3c61657 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,6 +1,6 @@ [metadata] name = openpathsampling -version = 1.2.0.dev0 +version = 1.2.0 description = A Python package for path sampling simulations long_description = file: README.md long_description_content_type = text/markdown From 7c7de4505b203789cf2bd238f2258f26a8e7e24e Mon Sep 17 00:00:00 2001 From: sroet Date: Sat, 1 Feb 2020 11:55:38 +0100 Subject: [PATCH 309/464] Fix pandas Deprepaction and Future Warnings --- openpathsampling/numerics/wham.py | 71 +++++++-------- .../tests/test_resampling_statistics.py | 18 ++-- openpathsampling/tests/test_tis_analysis.py | 86 ++++++++----------- 3 files changed, 77 insertions(+), 98 deletions(-) diff --git a/openpathsampling/numerics/wham.py b/openpathsampling/numerics/wham.py index e4e14ed4a..fc3c8a4e7 100755 --- a/openpathsampling/numerics/wham.py +++ b/openpathsampling/numerics/wham.py @@ -7,10 +7,11 @@ # from several files. import pandas as pd import numpy as np - +import sys import logging logger = logging.getLogger(__name__) + class WHAM(object): """ Weighted Histogram Analysis Method @@ -59,13 +60,13 @@ def __init__(self, tol=1e-10, max_iter=1000000, cutoff=0.05, @property def float_format(self): """Float output format. Example: 10.8 (default)""" - return lambda x : "{:" + self._float_format + "f}".format(x) + return lambda x: "{:" + self._float_format + "f}".format(x) @float_format.setter def float_format(self, value): self._float_format = value - def load_files(self,fnames): # pragma: no cover + def load_files(self, fnames): # pragma: no cover """Load a file or files into the internal structures. Requires either pandas or something else with pandas-like read_table @@ -87,23 +88,22 @@ def load_files(self,fnames): # pragma: no cover try: for fname in fnames: frames.append(pd.read_table(fname, index_col=0, sep=" ", - usecols=[0,1], header=None)) + usecols=[0, 1], header=None)) except TypeError: frames.append(pd.read_table(fnames, index_col=0, sep=" ", - usecols=[0,1], header=None)) + usecols=[0, 1], header=None)) fnames = [fnames] df = pd.concat(frames, axis=1) - df.columns=fnames + df.columns = fnames return df - def prep_reverse_cumulative(self, df, cutoff=None, tol=None): """ Created cleaned dataframe for further analysis. This version assumes that the input is the result of a reversed cumulative histogram. That means that it cleans leading input where - the initial + the initial Parameters ---------- @@ -131,7 +131,7 @@ def prep_reverse_cumulative(self, df, cutoff=None, tol=None): hist_max = df.max(axis=0) raw_cutoff = cutoff*hist_max cleaned_df = df.apply( - lambda s : [x if x > raw_cutoff[s.name] else 0.0 for x in s] + lambda s: [x if x > raw_cutoff[s.name] else 0.0 for x in s] ) if self.interfaces is not None: @@ -140,10 +140,10 @@ def prep_reverse_cumulative(self, df, cutoff=None, tol=None): if type(self.interfaces) is not pd.Series: self.interfaces = pd.Series(data=self.interfaces, index=df.columns) - greater_almost_equal = lambda a, b : (a >= b or - abs(a - b) < 10e-10) + greater_almost_equal = lambda a, b: (a >= b or + abs(a - b) < 10e-10) cleaned_df = cleaned_df.apply( - lambda s : [ + lambda s: [ ( s.iloc[i] if greater_almost_equal(s.index[i], @@ -155,18 +155,18 @@ def prep_reverse_cumulative(self, df, cutoff=None, tol=None): ) else: # clear duplicates of leading values - test_f = lambda val1, val2, val_max : ( + test_f = lambda val1, val2, val_max: ( abs(val1 - val2) > tol or abs(val1 - val_max) > tol ) cleaned_df = cleaned_df.apply( - lambda s : [ - s.iloc[i] if test_f(s.iloc[i], s.iloc[i+1], s.max()) else 0.0 + lambda s: [ + s.iloc[i] if test_f(s.iloc[i], s.iloc[i+1], s.max()) + else 0.0 for i in range(len(s)-1) ] + [s.iloc[-1]] ) return cleaned_df - def unweighting_tis(self, cleaned_df): """ Calculates the "unweighting" values for each histogram. @@ -189,13 +189,12 @@ def unweighting_tis(self, cleaned_df): unweighting values for the input dataframe """ unweighting = cleaned_df.copy().applymap( - lambda x : 1.0 if x > 0.0 else 0.0 + lambda x: 1.0 if x > 0.0 else 0.0 ) return unweighting - def sum_k_Hk_Q(self, cleaned_df): - """Sum over histograms for each histogram bin. Length is n_bins + r"""Sum over histograms for each histogram bin. Length is n_bins Called ``sum_hist`` in other codes, or :math:`\sum_k H_k(Q)` in F&S. This is the sum over histograms of values for a given histogram bin. @@ -212,7 +211,6 @@ def sum_k_Hk_Q(self, cleaned_df): """ return cleaned_df.sum(axis=1) - def n_entries(self, cleaned_df): """List of counts of entries per histogram. Length is n_hists @@ -231,7 +229,6 @@ def n_entries(self, cleaned_df): """ return cleaned_df.sum(axis=0) - def weighted_counts_tis(self, unweighting, n_entries): """ Product of unweighting and n_entries. @@ -249,14 +246,13 @@ def weighted_counts_tis(self, unweighting, n_entries): pandas.DataFrame weighted counts matrix, size n_hists by n_dims """ - weighted_counts = unweighting.apply(lambda s : [x * n_entries[s.name] - for x in s]) + weighted_counts = unweighting.apply(lambda s: [x * n_entries[s.name] + for x in s]) return weighted_counts - - def generate_lnZ(self, lnZ, unweighting, weighted_counts, - sum_k_Hk_Q, tol=None): - """ + def generate_lnZ(self, lnZ, unweighting, weighted_counts, sum_k_Hk_Q, + tol=None): + r""" Perform the WHAM iteration to estimate ln(Z_i) for each histogram. Parameters @@ -286,12 +282,11 @@ def generate_lnZ(self, lnZ, unweighting, weighted_counts, diff = self.tol + 1 # always start above the tolerance iteration = 0 hists = weighted_counts.columns - bins = weighted_counts.index # TODO: probably faster if we make wc this a sparse matrix wc = weighted_counts.values unw = unweighting.values lnZ_old = pd.Series(data=lnZ, index=hists) - Z_new = pd.Series(index=hists) + Z_new = pd.Series(index=hists, dtype='float64') sum_k_Hk_byQ = sum_k_Hk_Q.values while diff > tol and iteration < self.max_iter: Z_old = np.exp(lnZ_old) @@ -325,7 +320,7 @@ def generate_lnZ(self, lnZ, unweighting, weighted_counts, # multiplication, which numpy can do very quickly. ############################################################# - w_i = unw[:,i] + w_i = unw[:, i] # numerator: w_{i,Q} * sum_k_Hk_byQ numerator_byQ = np.multiply(w_i, sum_k_Hk_byQ) @@ -351,7 +346,6 @@ def generate_lnZ(self, lnZ, unweighting, weighted_counts, self.convergence = (iteration, diff) return lnZ_old - def get_diff(self, lnZ_old, lnZ_new, iteration): """Calculate the difference for this iteration. @@ -372,7 +366,7 @@ def get_diff(self, lnZ_old, lnZ_new, iteration): difference between old and new to use for convergence testing """ # get error - diff=0 + diff = 0 diff = sum(abs(lnZ_old - lnZ_new)) # check status (mainly for debugging) if (iteration % self.sample_every == 0): # pragma: no cover @@ -382,7 +376,6 @@ def get_diff(self, lnZ_old, lnZ_new, iteration): logger.debug("lnZnew = " + str(lnZ_new)) return diff - def output_histogram(self, lnZ, sum_k_Hk_Q, weighted_counts): """Recombine the data into a joined histogram @@ -404,7 +397,8 @@ def output_histogram(self, lnZ, sum_k_Hk_Q, weighted_counts): """ Z = np.exp(lnZ) Z0_over_Zi = Z.iloc[0] / Z - output = pd.Series(index=sum_k_Hk_Q.index, name="WHAM") + output = pd.Series(index=sum_k_Hk_Q.index, name="WHAM", + dtype='float64') for val in sum_k_Hk_Q.index: sum_w_over_Z = sum([ weighted_counts.loc[val, hist_i] * Z0_over_Zi[hist_i] @@ -438,7 +432,7 @@ def guess_lnZ_crossing_probability(self, cleaned_df): pandas.Series initial guess for values of ln(Z_i) for each histogram """ - df = cleaned_df.apply(lambda s : s/s.max()) + df = cleaned_df.apply(lambda s: s/s.max()) # pandas magic, see http://stackoverflow.com/questions/18327624 first_nonzero = df.apply(lambda s: s[s == 1.0].index[0]) df = df.loc[first_nonzero] @@ -464,7 +458,7 @@ def check_cleaned_overlaps(self, cleaned_df): RuntimeError if the input doesn't have enough of an overlap """ - for col_idx in range(1,len(cleaned_df.columns)): + for col_idx in range(1, len(cleaned_df.columns)): col = cleaned_df.columns[col_idx] prev_col = cleaned_df.columns[col_idx - 1] @@ -503,7 +497,7 @@ def wham_bam_histogram(self, input_df): n_entries = self.n_entries(cleaned) unweighting = self.unweighting_tis(cleaned) weighted_counts = self.weighted_counts_tis(unweighting, - n_entries) + n_entries) try: lnZ = self.generate_lnZ(guess, unweighting, weighted_counts, sum_k_Hk_Q) @@ -540,7 +534,6 @@ def parsing(parseargs): # pragma: no cover return opts, args -import sys, os if __name__ == "__main__": # pragma: no cover opts, args = parsing(sys.argv[1:]) wham = WHAM(tol=opts.tol, max_iter=opts.max_iter, cutoff=opts.cutoff) @@ -558,5 +551,5 @@ def parsing(parseargs): # pragma: no cover wham_hist = wham.wham_bam_histogram(df) print(wham_hist.to_string( header=False, - float_format=lambda x : "{:10.8f}".format(x) + float_format=lambda x: "{:10.8f}".format(x) )) diff --git a/openpathsampling/tests/test_resampling_statistics.py b/openpathsampling/tests/test_resampling_statistics.py index a103725aa..2ef37d927 100644 --- a/openpathsampling/tests/test_resampling_statistics.py +++ b/openpathsampling/tests/test_resampling_statistics.py @@ -1,15 +1,8 @@ import pandas as pd -from pandas.util.testing import assert_frame_equal -from nose.tools import (assert_equal, assert_not_equal, - assert_almost_equal, raises) -from nose.plugins.skip import Skip, SkipTest -from .test_helpers import ( - true_func, assert_equal_array_array, make_1d_traj, data_filename, - assert_items_equal -) - +from pandas.testing import assert_frame_equal +from nose.tools import assert_equal +from .test_helpers import assert_items_equal import openpathsampling as paths -from openpathsampling.high_level.interface_set import GenericVolumeInterfaceSet import logging logging.getLogger('openpathsampling.initialization').setLevel(logging.CRITICAL) @@ -17,6 +10,7 @@ logging.getLogger('openpathsampling.storage').setLevel(logging.CRITICAL) logging.getLogger('openpathsampling.netcdfplus').setLevel(logging.CRITICAL) + class TestResamplingStatistics(object): # NOTE: we test the mean_df and std_df functions within this def setup(self): @@ -90,6 +84,7 @@ def test_percentile(self): check_dtype=False ) + class TestBlockResampling(object): def setup(self): self.samples = list(range(100)) @@ -129,7 +124,8 @@ def test_n_blocks_initialization(self): assert_items_equal(resampler_2.unassigned, list(range(96, 100))) def test_n_per_block_initialization(self): - resampler = paths.numerics.BlockResampling(self.samples, n_per_block=10) + resampler = paths.numerics.BlockResampling(self.samples, + n_per_block=10) assert_equal(resampler.n_total_samples, 100) assert_equal(resampler.n_blocks, 10) assert_equal(resampler.n_per_block, 10) diff --git a/openpathsampling/tests/test_tis_analysis.py b/openpathsampling/tests/test_tis_analysis.py index 6cd3e234a..2b7c8a2f6 100644 --- a/openpathsampling/tests/test_tis_analysis.py +++ b/openpathsampling/tests/test_tis_analysis.py @@ -1,22 +1,16 @@ import itertools import random -from nose.tools import (assert_equal, assert_not_equal, assert_almost_equal, - raises) -from nose.plugins.skip import Skip, SkipTest -from .test_helpers import ( - true_func, assert_equal_array_array, make_1d_traj, data_filename, - MoverWithSignature, RandomMDEngine, assert_frame_equal, - assert_items_equal -) +from nose.tools import assert_equal, assert_almost_equal, raises +from .test_helpers import (make_1d_traj, MoverWithSignature, RandomMDEngine, + assert_frame_equal, assert_items_equal) from openpathsampling.analysis.tis import * -from openpathsampling.analysis.tis.core import \ - steps_to_weighted_trajectories +from openpathsampling.analysis.tis.core import steps_to_weighted_trajectories from openpathsampling.analysis.tis.flux import default_flux_sort import openpathsampling as paths import pandas as pd -import pandas.util.testing as pdt +import pandas.testing as pdt import logging logging.getLogger('openpathsampling.initialization').setLevel(logging.CRITICAL) @@ -24,6 +18,7 @@ logging.getLogger('openpathsampling.storage').setLevel(logging.CRITICAL) logging.getLogger('openpathsampling.netcdfplus').setLevel(logging.CRITICAL) + def make_tis_traj_fixed_steps(n_steps, step_size=0.1, reverse=False): if reverse: sign = -1 @@ -36,6 +31,7 @@ def make_tis_traj_fixed_steps(n_steps, step_size=0.1, reverse=False): falling = list(reversed(rising))[1:] return make_1d_traj(rising + falling) + class TestMultiEnsembleSamplingAnalyzer(object): # this only has to check the error generation; everything else gets # covered by tests of subclasses @@ -72,7 +68,6 @@ def _make_fake_sampling_sets(self, network): ) all_ensembles = ensembles_AB + ensembles_BA - replicas = range(len(all_ensembles)) # This encodes how the SampleSets are at each time step. This is the # trajectory number (from trajs_AB/trajs_BA) for each ensemble @@ -89,7 +84,6 @@ def _make_fake_sampling_sets(self, network): for descr in descriptions: set_trajectories = ([self.trajs_AB[d] for d in descr[:3]] + [self.trajs_BA[d] for d in descr[3:]]) - zipped = zip(set_trajectories, all_ensembles, replicas) sample_set = paths.SampleSet([ paths.Sample(trajectory=traj, ensemble=ens, @@ -233,7 +227,6 @@ def setup(self): names=["State", "Interface"]) self.expected_series = pd.Series(values, name="Flux", index=index) - def test_default_flux_sort(self): shuffled = self.all_pairs[:] random.shuffle(shuffled) @@ -251,20 +244,20 @@ def test_flux_matrix_pd_None(self): @raises(KeyError) def test_flux_matrix_pd_unknown_str(self): - series = flux_matrix_pd(self.fluxes, sort_method="foo") + flux_matrix_pd(self.fluxes, sort_method="foo") class TestDictFlux(TISAnalysisTester): def setup(self): super(TestDictFlux, self).setup() self.innermost_interface_A = \ - self.sampling_ensembles_for_transition(self.mistis, - self.state_A, - self.state_B)[0] + self.sampling_ensembles_for_transition(self.mistis, + self.state_A, + self.state_B)[0] self.innermost_interface_B = \ - self.sampling_ensembles_for_transition(self.mistis, - self.state_B, - self.state_A)[0] + self.sampling_ensembles_for_transition(self.mistis, + self.state_B, + self.state_A)[0] self.flux_dict = {(self.state_A, self.innermost_interface_A): 1.0, (self.state_B, self.innermost_interface_B): 1.0} @@ -379,7 +372,7 @@ def _make_fake_minus_steps(self, scheme, descriptions): def test_get_minus_steps(self): all_mistis_steps = self.mistis_steps + self.mistis_minus_steps mistis_minus_steps = \ - self.mistis_minus_flux._get_minus_steps(all_mistis_steps) + self.mistis_minus_flux._get_minus_steps(all_mistis_steps) assert_equal(len(mistis_minus_steps), len(self.mistis_minus_steps)) assert_items_equal(mistis_minus_steps, self.mistis_minus_steps) # this could be repeated for MSTIS, but why? @@ -390,12 +383,12 @@ def test_calculate(self): expected_flux = 1.0 / (avg_t_in + avg_t_out) mistis_flux = \ - self.mistis_minus_flux.calculate(self.mistis_minus_steps) + self.mistis_minus_flux.calculate(self.mistis_minus_steps) for flux in mistis_flux.values(): # all values are the same assert_almost_equal(flux, expected_flux) mstis_flux = \ - self.mstis_minus_flux.calculate(self.mstis_minus_steps) + self.mstis_minus_flux.calculate(self.mstis_minus_steps) for flux in mstis_flux.values(): # all values are the same assert_almost_equal(flux, expected_flux) @@ -416,7 +409,7 @@ def test_bad_network(self): ]) scheme = paths.DefaultScheme(bad_mistis) scheme.build_move_decision_tree() - minus_flux = MinusMoveFlux(scheme) + MinusMoveFlux(scheme) class TestPathLengthHistogrammer(TISAnalysisTester): @@ -512,11 +505,10 @@ def test_calculate_no_max_lambda(self): interfaces=mistis_AB.interfaces.volumes, orderparameter=mistis_AB.orderparameter ) - mistis_AB_histogrammer = FullHistogramMaxLambdas( - transition=modified_transition, - hist_parameters={'bin_width': 0.1, 'bin_range': (-0.1, 1.1)} - ) - + FullHistogramMaxLambdas(transition=modified_transition, + hist_parameters={'bin_width': 0.1, + 'bin_range': (-0.1, 1.1) + }) class TestConditionalTransitionProbability(TISAnalysisTester): @@ -605,7 +597,7 @@ def test_calculate(self): mstis_BA_tcp = TotalCrossingProbability(mstis_BA_max_lambda) tcp_BA = mstis_BA_tcp.calculate(self.mstis_steps) for (x, result) in results.items(): - assert_almost_equal(tcp_AB(x), result) + assert_almost_equal(tcp_BA(x), result) class TestStandardTransitionProbability(TISAnalysisTester): @@ -743,6 +735,7 @@ def test_to_pandas(self): assert_frame_equal(pd_mistis, pd_mstis) assert_frame_equal(pd_mistis, pd_result) + class TestTISAnalysis(TISAnalysisTester): def _make_tis_analysis(self, network): # NOTE: this might be useful as a description of the overall nested @@ -784,7 +777,7 @@ def setup(self): def test_bad_access_cached_results(self): no_results = self._make_tis_analysis(self.mistis) - rate = self.mistis_analysis._access_cached_result('rate') + _ = self.mistis_analysis._access_cached_result('rate') # use a try/except here instead of @raises so that we also test that # the calculated version (previous line) works as expected try: @@ -813,7 +806,7 @@ def test_flux(self): def test_flux_through_state(self): flux_dict = {(t.stateA, t.interfaces[0]): 0.1 - for t in self.mistis.sampling_transitions} + for t in self.mistis.sampling_transitions} flux_dict.update({(self.state_A, self.state_A): 0.5}) tis = TISAnalysis( network=self.mistis, @@ -862,7 +855,6 @@ def test_transition_probability_matrix(self): assert_almost_equal(mistis_tp[trans_pair], 0.125) assert_almost_equal(mstis_tp[trans_pair], 0.125) - def test_transition_probability(self): pairs = [(self.state_A, self.state_B), (self.state_B, self.state_A)] for (vol_1, vol_2) in pairs: @@ -989,21 +981,21 @@ def test_total_crossing_probability(self): @raises(TypeError) def test_bad_no_flux(self): network = self.mistis - tis_analysis = StandardTISAnalysis( - network=network, - max_lambda_calcs={t: {'bin_width': 0.1, - 'bin_range': (-0.1, 1.1)} - for t in network.sampling_transitions}, - ) + StandardTISAnalysis(network=network, + max_lambda_calcs={ + t: {'bin_width': 0.1, + 'bin_range': (-0.1, 1.1)} + for t in network.sampling_transitions} + ) @raises(RuntimeError) def test_bad_max_lambda_calcs(self): network = self.mistis - tis_analysis = StandardTISAnalysis( - network=network, - flux_method=DictFlux({(t.stateA, t.interfaces[0]): 0.1 - for t in network.sampling_transitions}), - ) + StandardTISAnalysis(network=network, + flux_method=DictFlux( + {(t.stateA, t.interfaces[0]): 0.1 + for t in network.sampling_transitions}) + ) def test_init_ensemble_histogrammer_max_lambda(self): network = self.mistis @@ -1057,7 +1049,7 @@ def test_with_minus_move_flux(self): samp = paths.Sample(trajectory=traj, ensemble=minus_ens, replica=replica[state]) - sample_set = paths.SampleSet([samp]) + _ = paths.SampleSet([samp]) change = paths.AcceptedSampleMoveChange( samples=[samp], mover=minus_mover, @@ -1101,5 +1093,3 @@ def test_with_minus_move_flux(self): # think this is a problem in the fake data, not the simulation. for flux in analysis.flux_matrix.values(): assert_almost_equal(flux, expected_flux) - - From ebc47990268980d78a9e0aaa13fc080b604886a9 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Mon, 3 Feb 2020 23:05:24 +0100 Subject: [PATCH 310/464] Bump master version to 1.3.0.dev0 --- devtools/conda-recipe/meta.yaml | 2 +- openpathsampling/netcdfplus/version.py | 6 +++--- setup.cfg | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/devtools/conda-recipe/meta.yaml b/devtools/conda-recipe/meta.yaml index 37735203f..fadcd8135 100644 --- a/devtools/conda-recipe/meta.yaml +++ b/devtools/conda-recipe/meta.yaml @@ -1,6 +1,6 @@ package: name: openpathsampling - version: "1.2.0" + version: "1.3.0.dev0" source: path: ../../ diff --git a/openpathsampling/netcdfplus/version.py b/openpathsampling/netcdfplus/version.py index 86a121655..7acb45721 100644 --- a/openpathsampling/netcdfplus/version.py +++ b/openpathsampling/netcdfplus/version.py @@ -1,5 +1,5 @@ -short_version = '1.2.0' -version = '1.2.0' -full_version = '1.2.0' +short_version = '1.3.0.dev0' +version = short_version +full_version = short_version git_revision = 'alpha' release = False diff --git a/setup.cfg b/setup.cfg index 0d3c61657..2aa53d196 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,6 +1,6 @@ [metadata] name = openpathsampling -version = 1.2.0 +version = 1.3.0.dev0 description = A Python package for path sampling simulations long_description = file: README.md long_description_content_type = text/markdown From 9f8a876ddbdf79b790a0e85d1b9c927279be7050 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Mon, 3 Feb 2020 23:44:42 +0100 Subject: [PATCH 311/464] delete unused files --- .project | 17 ------ .pydevproject | 8 --- devtools/ci/create_conda_meta.py | 68 --------------------- devtools/conda-recipe/README.md | 21 ------- devtools/conda-recipe/build.sh | 11 ---- devtools/conda-recipe/requirements.txt | 14 ----- setup.yaml | 84 -------------------------- 7 files changed, 223 deletions(-) delete mode 100644 .project delete mode 100644 .pydevproject delete mode 100644 devtools/ci/create_conda_meta.py delete mode 100644 devtools/conda-recipe/README.md delete mode 100755 devtools/conda-recipe/build.sh delete mode 100644 devtools/conda-recipe/requirements.txt delete mode 100644 setup.yaml diff --git a/.project b/.project deleted file mode 100644 index 94d7fdd4b..000000000 --- a/.project +++ /dev/null @@ -1,17 +0,0 @@ - - - pytis - - - - - - org.python.pydev.PyDevBuilder - - - - - - org.python.pydev.pythonNature - - diff --git a/.pydevproject b/.pydevproject deleted file mode 100644 index 9325a121a..000000000 --- a/.pydevproject +++ /dev/null @@ -1,8 +0,0 @@ - - -python 2.7 -Anaconda Python - -/${PROJECT_DIR_NAME}/src - - diff --git a/devtools/ci/create_conda_meta.py b/devtools/ci/create_conda_meta.py deleted file mode 100644 index b959b378d..000000000 --- a/devtools/ci/create_conda_meta.py +++ /dev/null @@ -1,68 +0,0 @@ -import yaml - -meta = """\ -package: - name: {name}{dev} - version: "{version}" - -source: -# git_url: ../../.git - path: ../../ - -build: - preserve_egg_dir: True - number: 0 - -requirements: - build: - - python - - setuptools - - pyyaml - - run: -{requires} - -test: - requires: - - nose - - nose-timer - - python-coveralls - - msmbuilder - - pyemma - - ipynbtest - - imports: - - openpathsampling - -about: - home: {home} - license: {license} - summary: {description} -""" - - -def main(): - # load settings from setup.py, easier to maintain - with open('../../setup.yaml') as f: - yaml_string = '\n'.join(f.readlines()) - - prefs = yaml.load(yaml_string) - - print 'writing meta.yaml file in devtools/conda-recipe' - - tag = ' - ' - - with open('../conda-recipe/meta.yaml', mode='w') as f: - f.write(meta.format( - name=prefs['name'], - version=prefs['version'], - dev='-dev', - requires=tag + ('\n' + tag).join(prefs['requires']), - home=prefs['download_url'], - license=prefs['license'], - description="'" + prefs['description'] + "'" - )) - - -if __name__ == '__main__': - main() diff --git a/devtools/conda-recipe/README.md b/devtools/conda-recipe/README.md deleted file mode 100644 index 936a04eb2..000000000 --- a/devtools/conda-recipe/README.md +++ /dev/null @@ -1,21 +0,0 @@ -This is a recipe for building the current development package into a conda -binary. - -The installation on travis-ci is done by building the conda package, installing -it, running the tests, and then if successful pushing the package to anaconda -(and the docs to AWS S3). The anaconda auth token is an encrypted environment -variable generated using: - -```bash -anaconda auth -n [token_name] -o omnia --max-age 22896000 -c --scopes api -``` -and then saved in the environment variable `ANACONDA_TOKEN`. You can limit the rights of the token by using `api:write`. The rights of an anaconda token can also be changed in your anaconda profile at [www.anaconda.org](). - -You can set up travis to store an encrypted token via - -```bash -gem install travis -travis encrypt ANACONDA_TOKEN=xx -``` - -where xx is the token output by binstar. The final command should print a line (containing 'secure') for inclusion in your .travis.yml file. diff --git a/devtools/conda-recipe/build.sh b/devtools/conda-recipe/build.sh deleted file mode 100755 index 8f0ef369a..000000000 --- a/devtools/conda-recipe/build.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -# this step is done automatically by conda build -# cp -r $RECIPE_DIR/../.. $SRC_DIR -$PYTHON setup.py install --single-version-externally-managed --record=/tmp/record.txt - -# Add more build steps here, if they are necessary. - -# See -# http://docs.continuum.io/conda/build.html -# for a list of environment variables that are set during the build process. diff --git a/devtools/conda-recipe/requirements.txt b/devtools/conda-recipe/requirements.txt deleted file mode 100644 index 0efa94d6e..000000000 --- a/devtools/conda-recipe/requirements.txt +++ /dev/null @@ -1,14 +0,0 @@ -python -scipy -pandas -future -jupyter -netcdf4 -openmm -openmmtools -mdtraj -svgwrite -networkx -matplotlib -ujson -pyemma diff --git a/setup.yaml b/setup.yaml deleted file mode 100644 index 39dbc680a..000000000 --- a/setup.yaml +++ /dev/null @@ -1,84 +0,0 @@ -name: openpathsampling -version: 0.9.2 - -authors: - - David W.H. Swenson - - Jan-Hendrik Prinz - - John D. Chodera - - Peter Bolhuis - -emails: - - dwhs@hyperblazer.net - - jan.prinz@choderalab.org, - - choderaj@mskcc.org - - p.g.bolhuis@uva.nl - -description: 'OpenPathSampling: A python package to do path sampling simulations' - -long_description: | - OpenPathSampling (http://github.com/choderalab/openpathsampling) is a - python library to do transition interface sampling. - -classifiers: | - Development Status :: 3 - Alpha - Intended Audience :: Science/Research - Intended Audience :: Developers - License :: OSI Approved :: GNU Lesser General - Public License v2.1 or later (LGPLv2.1+) - Programming Language :: C - Programming Language :: Python - Programming Language :: Python :: 2 - Topic :: Scientific/Engineering :: Bio-Informatics - Topic :: Scientific/Engineering :: Chemistry - Operating System :: Microsoft :: Windows - Operating System :: POSIX - Operating System :: Unix - Operating System :: MacOS - -download_url: http://github.com/openpathsampling/openpathsampling -url: http://www.openpathsampling.org - -package_data: - openpathsampling: - - openpathsampling/css/*.css - -packages: - - openpathsampling - - openpathsampling.storage - - openpathsampling.storage.stores - - openpathsampling.tests - - openpathsampling.analysis - - openpathsampling.high_level - - openpathsampling.numerics - - openpathsampling.netcdfplus - - openpathsampling.engines - - openpathsampling.engines.features - - openpathsampling.engines.openmm - - openpathsampling.engines.openmm.features - - openpathsampling.engines.toy - - openpathsampling.engines.toy.features - -platforms: - - Linux - - Mac OS X - - Windows - -released: false - -requires: - - python - - numpy - - scipy - - pandas - - jupyter - - netcdf4 - - openmm - - openmmtools - - mdtraj - - svgwrite - - networkx - - matplotlib - - ujson - -license: LGPL 2.1 or later -license_file: LICENSE From f38d356adfdaf8eeaf310cd6ea5fff668e9ecc9d Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 6 Feb 2020 12:44:52 +0100 Subject: [PATCH 312/464] Fix missing newline in the VisitAllStatesEnsemble --- openpathsampling/ensembles/visit_all_states.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openpathsampling/ensembles/visit_all_states.py b/openpathsampling/ensembles/visit_all_states.py index 03ee95b4b..5cd293006 100644 --- a/openpathsampling/ensembles/visit_all_states.py +++ b/openpathsampling/ensembles/visit_all_states.py @@ -29,7 +29,7 @@ def default_state_progress_report(n_steps, found_states, all_states, if timestep is not None: report_str += " [{}]".format(str(n_steps * timestep)) report_str += (". Found states [{found_states}]. " - "Looking for [{missing_states}].") + "Looking for [{missing_states}].\n") found_states_str = ",".join([s.name for s in found_states]) # list comprehension instead of sets (to preseve order) missing_states = [s for s in all_states if s not in found_states] From 1a42628833c991f63dad9a26c94637e3338e8df1 Mon Sep 17 00:00:00 2001 From: sroet Date: Fri, 7 Feb 2020 11:38:28 +0100 Subject: [PATCH 313/464] undo some style --- openpathsampling/numerics/wham.py | 4 +-- openpathsampling/tests/test_tis_analysis.py | 28 ++++++++++----------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/openpathsampling/numerics/wham.py b/openpathsampling/numerics/wham.py index fc3c8a4e7..cb439f7f9 100755 --- a/openpathsampling/numerics/wham.py +++ b/openpathsampling/numerics/wham.py @@ -160,8 +160,8 @@ def prep_reverse_cumulative(self, df, cutoff=None, tol=None): ) cleaned_df = cleaned_df.apply( lambda s: [ - s.iloc[i] if test_f(s.iloc[i], s.iloc[i+1], s.max()) - else 0.0 + s.iloc[i] + if test_f(s.iloc[i], s.iloc[i+1], s.max()) else 0.0 for i in range(len(s)-1) ] + [s.iloc[-1]] ) diff --git a/openpathsampling/tests/test_tis_analysis.py b/openpathsampling/tests/test_tis_analysis.py index 2b7c8a2f6..d75e1580f 100644 --- a/openpathsampling/tests/test_tis_analysis.py +++ b/openpathsampling/tests/test_tis_analysis.py @@ -505,10 +505,10 @@ def test_calculate_no_max_lambda(self): interfaces=mistis_AB.interfaces.volumes, orderparameter=mistis_AB.orderparameter ) - FullHistogramMaxLambdas(transition=modified_transition, - hist_parameters={'bin_width': 0.1, - 'bin_range': (-0.1, 1.1) - }) + FullHistogramMaxLambdas( + transition=modified_transition, + hist_parameters={'bin_width': 0.1, 'bin_range': (-0.1, 1.1)} + ) class TestConditionalTransitionProbability(TISAnalysisTester): @@ -981,21 +981,21 @@ def test_total_crossing_probability(self): @raises(TypeError) def test_bad_no_flux(self): network = self.mistis - StandardTISAnalysis(network=network, - max_lambda_calcs={ - t: {'bin_width': 0.1, - 'bin_range': (-0.1, 1.1)} - for t in network.sampling_transitions} - ) + StandardTISAnalysis( + network=network, + max_lambda_calcs={t: {'bin_width': 0.1, + 'bin_range': (-0.1, 1.1)} + for t in network.sampling_transitions} + ) @raises(RuntimeError) def test_bad_max_lambda_calcs(self): network = self.mistis - StandardTISAnalysis(network=network, - flux_method=DictFlux( - {(t.stateA, t.interfaces[0]): 0.1 + StandardTISAnalysis( + network=network, + flux_method=DictFlux({(t.stateA, t.interfaces[0]): 0.1 for t in network.sampling_transitions}) - ) + ) def test_init_ensemble_histogrammer_max_lambda(self): network = self.mistis From 1b25cdcaf5bf0ba1fd4ae787fd53ea92fc9dd8a7 Mon Sep 17 00:00:00 2001 From: sroet Date: Fri, 7 Feb 2020 11:46:08 +0100 Subject: [PATCH 314/464] propper spacing --- openpathsampling/tests/test_tis_analysis.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openpathsampling/tests/test_tis_analysis.py b/openpathsampling/tests/test_tis_analysis.py index d75e1580f..e9356eda5 100644 --- a/openpathsampling/tests/test_tis_analysis.py +++ b/openpathsampling/tests/test_tis_analysis.py @@ -994,7 +994,7 @@ def test_bad_max_lambda_calcs(self): StandardTISAnalysis( network=network, flux_method=DictFlux({(t.stateA, t.interfaces[0]): 0.1 - for t in network.sampling_transitions}) + for t in network.sampling_transitions}) ) def test_init_ensemble_histogrammer_max_lambda(self): From 27dd3cbea7b5fcffed55cf4d6f3ffb86b3a10404 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Fri, 7 Feb 2020 18:04:47 +0100 Subject: [PATCH 315/464] tests should expect the newline --- openpathsampling/tests/test_visit_all_states.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/openpathsampling/tests/test_visit_all_states.py b/openpathsampling/tests/test_visit_all_states.py index f9999c88b..678d35e2c 100644 --- a/openpathsampling/tests/test_visit_all_states.py +++ b/openpathsampling/tests/test_visit_all_states.py @@ -21,9 +21,9 @@ def test_default_state_progress_report(): f = default_state_progress_report # keep on one line assert f(n_steps, found_vol, all_vol) == \ - "Ran 100 frames. Found states [A,B]. Looking for [C,D]." + "Ran 100 frames. Found states [A,B]. Looking for [C,D].\n" assert f(n_steps, found_vol, all_vol, tstep) == \ - "Ran 100 frames [50.0]. Found states [A,B]. Looking for [C,D]." + "Ran 100 frames [50.0]. Found states [A,B]. Looking for [C,D].\n" def extract_info_from_default_report(report): pattern = (r"Ran ([0-9]*) frames. Found states \[(.*)\]\. " @@ -42,9 +42,9 @@ def extract_info_from_default_report(report): def test_extract_info_from_default_report(): reports = { - 0: "Ran 0 frames. Found states []. Looking for [A,B,C,D].", - 3: "Ran 3 frames. Found states [A,B]. Looking for [C,D].", - 7: "Ran 7 frames. Found states [A,B,C,D]. Looking for []." + 0: "Ran 0 frames. Found states []. Looking for [A,B,C,D].\n", + 3: "Ran 3 frames. Found states [A,B]. Looking for [C,D].\n", + 7: "Ran 7 frames. Found states [A,B,C,D]. Looking for [].\n" } results = { 0: [0, {}, {'A', 'B', 'C', 'D'}], From 82460c5a6a696dbcc38a0ebf86bfe90095ff0e6f Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Fri, 7 Feb 2020 18:26:52 +0100 Subject: [PATCH 316/464] This should have fixed the horrible merge --- openpathsampling/tests/test_tis_analysis.py | 177 ++++++++++---------- 1 file changed, 88 insertions(+), 89 deletions(-) diff --git a/openpathsampling/tests/test_tis_analysis.py b/openpathsampling/tests/test_tis_analysis.py index 7a1b5e76b..aea18fd4e 100644 --- a/openpathsampling/tests/test_tis_analysis.py +++ b/openpathsampling/tests/test_tis_analysis.py @@ -20,6 +20,7 @@ paths.progress.HAS_TQDM = False # turn off progress bars + def make_tis_traj_fixed_steps(n_steps, step_size=0.1, reverse=False): if reverse: sign = -1 @@ -854,6 +855,93 @@ def test_transition_probability_matrix(self): mstis_tp = self.mstis_analysis.transition_probability_matrix for trans_pair in pairs: assert_almost_equal(mistis_tp[trans_pair], 0.125) + assert_almost_equal(mstis_tp[trans_pair], 0.125) + + def test_transition_probability(self): + pairs = [(self.state_A, self.state_B), (self.state_B, self.state_A)] + for (vol_1, vol_2) in pairs: + assert_almost_equal( + self.mistis_analysis.transition_probability(vol_1, vol_2), + 0.125 + ) + assert_almost_equal( + self.mstis_analysis.transition_probability(vol_1, vol_2), + 0.125 + ) + + def test_rate_matrix(self): + pairs = [(self.state_A, self.state_B), (self.state_B, self.state_A)] + mistis_rate = self.mistis_analysis.rate_matrix() + mstis_rate = self.mstis_analysis.rate_matrix() + for (vol_1, vol_2) in pairs: + assert_almost_equal(mistis_rate[(vol_1, vol_2)], 0.0125) + assert_almost_equal(mstis_rate[(vol_1, vol_2)], 0.0125) + + def test_rate_matrix_calculation(self): + mistis_analysis = self._make_tis_analysis(self.mistis) + mistis_rate = mistis_analysis.rate_matrix(steps=self.mistis_steps) + pairs = [(self.state_A, self.state_B), (self.state_B, self.state_A)] + for (vol_1, vol_2) in pairs: + assert_almost_equal(mistis_rate[(vol_1, vol_2)], 0.0125) + + def test_rate(self): + pairs = [(self.state_A, self.state_B), (self.state_B, self.state_A)] + for (vol_1, vol_2) in pairs: + assert_almost_equal(self.mistis_analysis.rate(vol_1, vol_2), + 0.0125) + assert_almost_equal(self.mstis_analysis.rate(vol_1, vol_2), + 0.0125) + + +class TestStandardTISAnalysis(TestTISAnalysis): + # inherit from TestTISAnalysis to retest all the same results + def _make_tis_analysis(self, network, steps=None): + tis_analysis = StandardTISAnalysis( + network=network, + flux_method=DictFlux({(t.stateA, t.interfaces[0]): 0.1 + for t in network.sampling_transitions}), + max_lambda_calcs={t: {'bin_width': 0.1, + 'bin_range': (-0.1, 1.1)} + for t in network.sampling_transitions}, + steps=steps + ) + return tis_analysis + + def test_init_with_steps(self): + mistis_analysis = self._make_tis_analysis(self.mistis, + self.mistis_steps) + pairs = [(self.state_A, self.state_B), (self.state_B, self.state_A)] + for (vol_1, vol_2) in pairs: + assert_almost_equal( + mistis_analysis.rate_matrix()[(vol_1, vol_2)], + 0.0125 + ) + + def test_crossing_probability(self): + results = { + 0: {0.0: 1.0, 0.1: 0.5, 0.2: 0.25}, + 1: {0.0: 1.0, 0.1: 1.0, 0.2: 0.5, 0.3: 0.25, 1.0: 0.25}, + 2: {0.0: 1.0, 0.1: 1.0, 0.2: 1.0, 0.3: 0.5, 1.0: 0.5} + } + + def check_cp(transition, analysis, results): + # a little nested function to that does the actual check + for (i, ens) in enumerate(transition.ensembles): + cp_ens = analysis.crossing_probability(ens) + for x in results[i]: + assert_almost_equal(results[i][x], cp_ens(x)) + + for (network, analysis) in [(self.mistis, self.mistis_analysis), + (self.mstis, self.mstis_analysis)]: + for transition in network.transitions.values(): + check_cp(transition, analysis, results) + + def test_conditional_transition_probability(self): + expected_data = [[0.5, 0.5], [0.5, 0.5]] + states = ['A', 'B'] + mistis_interfaces = ['A->B 2', 'B->A 2'] + mstis_interfaces = ['Out A 2', 'Out B 2'] + expected_mistis = pd.DataFrame(data=expected_data, index=mistis_interfaces, columns=states) @@ -932,95 +1020,6 @@ def test_init_ensemble_histogrammer_max_lambda(self): for (vol_1, vol_2) in pairs: assert_almost_equal(rate[(vol_1, vol_2)], 0.0125) - def test_with_minus_move_flux(self): - network = self.mstis - scheme = paths.DefaultScheme(network, engine=RandomMDEngine()) - scheme.build_move_decision_tree() - - # create the minus move steps - # `center` is the edge of the state/innermost interface - center = {self.state_A: 0.0, self.state_B: 1.0} - replica = {self.state_A: -1, self.state_B: -2} - minus_ensemble_to_mover = {m.minus_ensemble: m - for m in scheme.movers['minus']} - state_to_minus_ensemble = {ens.state_vol: ens - for ens in network.minus_ensembles} - minus_changes = [] - # `delta` is the change on either side for in vs. out - for (state, delta) in [(self.state_A, 0.1), (self.state_B, -0.1)]: - minus_ens = state_to_minus_ensemble[state] - minus_mover = minus_ensemble_to_mover[minus_ens] - a_in = center[state] - delta - a_out = center[state] + delta - # note that these trajs are equivalent to minus move - # descriptions in TestMinusMoveFlux - seq_1 = [a_in] + [a_out]*2 + [a_in]*5 + [a_out]*5 + [a_in] - seq_2 = [a_in] + [a_out]*3 + [a_in]*3 + [a_out]*3 + [a_in] - - for seq in [seq_1, seq_2]: - traj = make_1d_traj(seq) - assert_equal(minus_ens(traj), True) - samp = paths.Sample(trajectory=traj, - ensemble=minus_ens, - replica=replica[state]) - _ = paths.SampleSet([samp]) - change = paths.AcceptedSampleMoveChange( - samples=[samp], - mover=minus_mover, - details=paths.Details() - ) - minus_changes.append(change) - - active = self.mstis_steps[0].active - steps = [] - cycle = -1 - for m_change in minus_changes: - cycle += 1 - active = active.apply_samples(m_change.samples) - step = paths.MCStep(mccycle=cycle, - active=active, - change=m_change) - steps.append(step) - for old_step in self.mstis_steps[1:]: - cycle += 1 - active = active.apply_samples(old_step.change.samples) - step = paths.MCStep(mccycle=cycle, - active=active, - change=old_step.change) - steps.append(step) - - analysis = StandardTISAnalysis( - network=self.mstis, - scheme=scheme, - max_lambda_calcs={t: {'bin_width': 0.1, - 'bin_range': (-0.1, 1.1)} - for t in network.sampling_transitions}, - steps=steps - ) - - # now we actually verify correctness - avg_t_in = (5.0 + 3.0) / 2 - avg_t_out = (2.0 + 5.0 + 3.0 + 3.0) / 4 - expected_flux = 1.0 / (avg_t_in + avg_t_out) - - # NOTE: Apparently this approach screws up the TCP calculation. I - # think this is a problem in the fake data, not the simulation. - for flux in analysis.flux_matrix.values(): -ions - } - tis_analysis = StandardTISAna - tis_analysis = StandardTISAnalysis( - network=network, - flux_method=DictFlux({(t.stateA, t.interfaces[0]): 0.1 - for t in network.sampling_transitions}), - max_lambda_calcs=max_lambda_calcs, - steps=self.mistis_steps - ) - rate = tis_analysis.rate_matrix() - pairs = [(self.state_A, self.state_B), (self.state_B, self.state_A)] - for (vol_1, vol_2) in pairs: - assert_almost_equal(rate[(vol_1, vol_2)], 0.0125) - def test_with_minus_move_flux(self): network = self.mstis scheme = paths.DefaultScheme(network, engine=RandomMDEngine()) From c82918bc6bb3fc2b75fa6e87be4a296d4e1eabd3 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Sat, 8 Feb 2020 13:57:38 +0100 Subject: [PATCH 317/464] if ask for tqdm but don't have it, don't get it --- openpathsampling/progress.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openpathsampling/progress.py b/openpathsampling/progress.py index 3a0b83f18..9ff9001f1 100644 --- a/openpathsampling/progress.py +++ b/openpathsampling/progress.py @@ -88,7 +88,7 @@ def progress(self): @progress.setter def progress(self, value): if value == 'tqdm': - value = TqdmPartial() + value = TqdmPartial() if HAS_TQDM else silent_progress elif value in ['silent', None]: value = silent_progress # else we assume it's already an AnalysisProgress From 909f77f3076abe4874b728c29972026e6a19870a Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Sat, 8 Feb 2020 14:29:50 +0100 Subject: [PATCH 318/464] tests for progress setters --- openpathsampling/tests/test_tis_analysis.py | 35 +++++++++++++++++++-- 1 file changed, 33 insertions(+), 2 deletions(-) diff --git a/openpathsampling/tests/test_tis_analysis.py b/openpathsampling/tests/test_tis_analysis.py index aea18fd4e..e96f36bec 100644 --- a/openpathsampling/tests/test_tis_analysis.py +++ b/openpathsampling/tests/test_tis_analysis.py @@ -1,5 +1,6 @@ import itertools import random +import pytest from nose.tools import assert_equal, assert_almost_equal, raises from .test_helpers import (make_1d_traj, MoverWithSignature, RandomMDEngine, assert_frame_equal, assert_items_equal) @@ -18,8 +19,6 @@ logging.getLogger('openpathsampling.storage').setLevel(logging.CRITICAL) logging.getLogger('openpathsampling.netcdfplus').setLevel(logging.CRITICAL) -paths.progress.HAS_TQDM = False # turn off progress bars - def make_tis_traj_fixed_steps(n_steps, step_size=0.1, reverse=False): if reverse: @@ -103,6 +102,8 @@ def sampling_ensembles_for_transition(self, network, state_A, state_B): def setup(self): # set up the trajectories, ensembles, etc. for this test + self.HAS_TQDM = paths.progress.HAS_TQDM + paths.progress.HAS_TQDM = False # turn of progress bars paths.InterfaceSet._reset() cv_A = paths.FunctionCV('Id', lambda s: s.xyz[0][0]) cv_B = paths.FunctionCV('1-Id', lambda s: 1.0-s.xyz[0][0]) @@ -160,6 +161,10 @@ def setup(self): ) + def teardown(self): + paths.progress.HAS_TQDM = self.HAS_TQDM + + class TestWeightedTrajectories(TISAnalysisTester): def _check_network_results(self, network, weighted_trajs): # works for both MISTIS and MSTIS, since they use equivalent data @@ -1095,3 +1100,29 @@ def test_with_minus_move_flux(self): # think this is a problem in the fake data, not the simulation. for flux in analysis.flux_matrix.values(): assert_almost_equal(flux, expected_flux) + + @pytest.mark.parametrize('progress', ['all', 'default', 'none', + 'tqdm', 'silent']) + def test_progress_setter(self, progress): + analysis = self.mstis_analysis + analysis.progress = progress + expected_flux, expected_ctp, expected_max_lambda = { + 'all': (True, True, True), + 'default': (True, True, False), + 'none': (False, False, False), + 'tqdm': (True, True, False), + 'silent': (True, True, False), + }[progress] + flux_method = analysis.flux_method + assert flux_method.progress.keywords['leave'] is expected_flux + ctp_method = analysis.ctp_method + assert ctp_method.progress.keywords['leave'] is expected_ctp + max_lambda_methods = [tcp.max_lambda_calc + for tcp in analysis.tcp_methods.values()] + for max_lambda in max_lambda_methods: + prog = max_lambda.progress + assert prog.keywords['leave'] is expected_max_lambda + + + + From fc1795f073253c1af8eaa491f3ad2ea1995ab67d Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Sat, 15 Feb 2020 20:46:10 +0100 Subject: [PATCH 319/464] add GMX stuff to docs --- docs/engines/gromacs.rst | 15 +++++++++++++++ docs/examples/miscellaneous/gromacs.rst | 21 +++++++++++++++++++++ 2 files changed, 36 insertions(+) create mode 100644 docs/engines/gromacs.rst create mode 100644 docs/examples/miscellaneous/gromacs.rst diff --git a/docs/engines/gromacs.rst b/docs/engines/gromacs.rst new file mode 100644 index 000000000..c8cdc1991 --- /dev/null +++ b/docs/engines/gromacs.rst @@ -0,0 +1,15 @@ +.. _gromacs: + +.. module:: openpathsampling.engines.gromacs + +Gromacs OPS Engine +================== + + +.. autosummary:: + :toctree: ../api/generated/ + + Engine + ExternalMDSnapshot + engine.GromacsEngine + diff --git a/docs/examples/miscellaneous/gromacs.rst b/docs/examples/miscellaneous/gromacs.rst new file mode 100644 index 000000000..2e6c10703 --- /dev/null +++ b/docs/examples/miscellaneous/gromacs.rst @@ -0,0 +1,21 @@ +.. gromacs_ad_example: + +Using Gromacs for the Alanine Dipeptide example +=============================================== + +This is the same as the introductory example using flexible length TPS, +except that it uses Gromacs as the MD engine instead of OpenMM. + +----- + +.. notebook:: examples/gromacs/AD_tps_1_trajectory.ipynb + :skip_exceptions: + +----- + +.. notebook:: examples/gromacs/AD_tps_2a_run_flex.ipynb + :skip_exceptions: + +----- +.. notebook:: examples/gromacs/AD_tps_3a_analysis_flex.ipynb + :skip_exceptions: From b16205a0733491de806d8140729212320c3b64c7 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Tue, 18 Feb 2020 14:39:40 +0100 Subject: [PATCH 320/464] Use SimpleProgress in path hist; move summary --- openpathsampling/analysis/path_histogram.py | 8 +++++--- openpathsampling/high_level/move_scheme.py | 5 +++-- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/openpathsampling/analysis/path_histogram.py b/openpathsampling/analysis/path_histogram.py index 0c4ea55ae..404812fb3 100644 --- a/openpathsampling/analysis/path_histogram.py +++ b/openpathsampling/analysis/path_histogram.py @@ -1,5 +1,6 @@ import openpathsampling as paths from openpathsampling.numerics import SparseHistogram +from openpathsampling.progress import SimpleProgress from collections import Counter import numpy as np @@ -230,7 +231,7 @@ def _interpolated_bins(self, new_pt, old_pt, new_bin, old_bin, delta, # should path histogram be moved to the generic histogram.py? Seems to be # independent of the fact that this is actually OPS -class PathHistogram(SparseHistogram): +class PathHistogram(SimpleProgress, SparseHistogram): """ N-dim sparse histogram for trajectories. @@ -312,7 +313,8 @@ def add_data_to_histogram(self, trajectories, weights=None): """ if weights is None: weights = [1.0] * len(trajectories) - for (traj, w) in zip(trajectories, weights): + for (traj, w) in self.progress(list(zip(trajectories, weights))): + # list so that progress can know the length self.add_trajectory(traj, w) return self._histogram.copy() @@ -384,7 +386,7 @@ def add_data_to_histogram(self, trajectories, weights=None): weights = [1.0] * len(trajectories) # TODO: add something so that we don't recalc the same traj twice - for (traj, w) in zip(trajectories, weights): + for (traj, w) in self.progress(list(zip(trajectories, weights))): cv_traj = [cv(traj) for cv in self.cvs] self.add_trajectory(list(zip(*cv_traj)), w) diff --git a/openpathsampling/high_level/move_scheme.py b/openpathsampling/high_level/move_scheme.py index 1e55a7e9d..0a5a5f663 100644 --- a/openpathsampling/high_level/move_scheme.py +++ b/openpathsampling/high_level/move_scheme.py @@ -4,6 +4,7 @@ import openpathsampling as paths from openpathsampling.tools import refresh_output +from openpathsampling.progress import SimpleProgress from . import move_strategy from .move_strategy import levels as strategy_levels @@ -21,7 +22,7 @@ 'move_name n_accepted n_trials expected_frequency' ) -class MoveAcceptanceAnalysis(object): +class MoveAcceptanceAnalysis(SimpleProgress): """Class to manage analysis of move acceptance. One of the powerful things about OPS is the :class:`.MoveChange` object, @@ -69,7 +70,7 @@ def add_steps(self, steps): self : :class:`.MoveAcceptanceAnalysis` returns self for possible chaining """ - for step in steps: + for step in self.progress(steps): self._calculate_step_acceptance(step) self._n_steps += len(steps) return self From fe10660908e433101502f36159fd5e99e30164c9 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Tue, 18 Feb 2020 14:53:34 +0100 Subject: [PATCH 321/464] block progress indicator output in tests --- openpathsampling/tests/test_movescheme.py | 5 +++++ openpathsampling/tests/test_path_histogram.py | 15 +++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/openpathsampling/tests/test_movescheme.py b/openpathsampling/tests/test_movescheme.py index 5e9f29194..b72fe0a46 100644 --- a/openpathsampling/tests/test_movescheme.py +++ b/openpathsampling/tests/test_movescheme.py @@ -93,6 +93,8 @@ def _make_null_mover_step(mccycle, path_sim_mover, null_mover): class TestMoveAcceptanceAnalysis(object): def setup(self): + self.HAS_TQDM = paths.progress.HAS_TQDM + paths.progress.HAS_TQDM = False paths.InterfaceSet._reset() cvA = paths.FunctionCV(name="xA", f=lambda s : s.xyz[0][0]) cvB = paths.FunctionCV(name="xB", f=lambda s : -s.xyz[0][0]) @@ -144,6 +146,9 @@ def setup(self): 'normal': acceptance, 'with_null': acceptance_null} + def teardown(self): + paths.progress.HAS_TQDM = self.HAS_TQDM + @pytest.mark.parametrize('step_num', [0, 1, 2, 3, 4]) def test_calculate_step_acceptance(self, step_num): accepted = [1] if step_num in [0, 1, 2] else [0] diff --git a/openpathsampling/tests/test_path_histogram.py b/openpathsampling/tests/test_path_histogram.py index a1ad94984..044aa87ba 100644 --- a/openpathsampling/tests/test_path_histogram.py +++ b/openpathsampling/tests/test_path_histogram.py @@ -27,10 +27,15 @@ class PathHistogramTester(object): def setup(self): + self.HAS_TQDM = paths.progress.HAS_TQDM + paths.progress.HAS_TQDM = False self.trajectory = [(0.1, 0.3), (2.1, 3.1), (1.7, 1.4), (1.6, 0.6), (0.1, 1.4), (2.2, 3.3)] self.diag = [(0.25, 0.25), (2.25, 2.25)] + def teardown(self): + paths.progress.HAS_TQDM = self.HAS_TQDM + def test_nopertraj(self): counter = collections.Counter(self.expected_bins) hist = PathHistogram(left_bin_edges=(0.0, 0.0), @@ -130,10 +135,15 @@ def setup(self): class TestPathHistogram(object): # tests of fundamental things in PathHistogram, not interpolators def setup(self): + self.HAS_TQDM = paths.progress.HAS_TQDM + paths.progress.HAS_TQDM = False self.trajectory = [(0.1, 0.3), (2.1, 3.1), (1.7, 1.4), (1.6, 0.6), (0.1, 1.4), (2.2, 3.3)] self.diag = [(0.25, 0.25), (2.25, 2.25)] + def teardown(self): + paths.progress.HAS_TQDM = self.HAS_TQDM + def test_add_with_weight(self): hist = PathHistogram(left_bin_edges=(0.0, 0.0), bin_widths=(0.5, 0.5), @@ -190,6 +200,8 @@ def test_add_data_to_histograms_no_weight(self): class TestPathDensityHistogram(object): def setup(self): + self.HAS_TQDM = paths.progress.HAS_TQDM + paths.progress.HAS_TQDM = False id_cv = paths.FunctionCV("Id", lambda snap : snap.xyz[0][0]) sin_cv = paths.FunctionCV("sin", @@ -206,6 +218,9 @@ def setup(self): self.traj2 = make_1d_traj([0.6, 0.7]) # [(2, 1, 0), (2, 1, 1)] + def teardown(self): + paths.progress.HAS_TQDM = self.HAS_TQDM + def test_histogram_no_weights(self): hist = PathDensityHistogram(self.cvs, self.left_bin_edges, self.bin_widths) From 8d3768c874ecf24965f60ff48477a1f1a2c1e67e Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Wed, 19 Feb 2020 14:40:02 +0100 Subject: [PATCH 322/464] fix sphinx issues --- docs/videos.rst | 8 ++--- openpathsampling/analysis/channel_analysis.py | 32 ++++++++----------- openpathsampling/engines/dynamics_engine.py | 1 + .../engines/external_snapshots/snapshot.py | 2 +- openpathsampling/engines/gromacs/engine.py | 9 +++--- openpathsampling/engines/snapshot.py | 14 ++++---- openpathsampling/volume.py | 21 ++++++------ 7 files changed, 41 insertions(+), 46 deletions(-) diff --git a/docs/videos.rst b/docs/videos.rst index 7dd0ec57e..892af8daa 100644 --- a/docs/videos.rst +++ b/docs/videos.rst @@ -30,9 +30,9 @@ trajectory based rare events. That workshop included a "hackathon" software development period, and the video includes suggestions for several such projects (many of which have since been added to OPS). -* `More about that workshop `_ +* `More about that workshop `__ * `Other presentations from that workshop - `_ + `__ .. Using OpenPathSampling .. ---------------------- @@ -54,7 +54,7 @@ This video comes from a "hackathon"-style workshop, and discusses various parts of OPS that would be of interest to new contributors to the code. * `More about that workshop - `_ + `__ * `Other presentations from that workshop - `_ + `__ diff --git a/openpathsampling/analysis/channel_analysis.py b/openpathsampling/analysis/channel_analysis.py index d9136a3dd..10880745d 100644 --- a/openpathsampling/analysis/channel_analysis.py +++ b/openpathsampling/analysis/channel_analysis.py @@ -21,12 +21,6 @@ class ChannelAnalysis(StorableNamedObject): replica: int replica ID to analyze from the steps, default is 0. - Attributes - ---------- - treat_multiples - switching_matrix - residence_times - total_time """ def __init__(self, steps, channels, replica=0): super(ChannelAnalysis, self).__init__() @@ -138,16 +132,18 @@ def _analyze(self, steps): @property def treat_multiples(self): """ - string : - method for handling paths that match multiple channels. Allowed - values are - * 'newest': use the most recent channel entered - * 'oldest': use the least recent channel entered - * 'multiple': treat multiple channels as a new type of channel, - e.g., 'a' and 'b' because 'a,b' - * 'all': treat each channel individually, despite overlaps. For - switching, this is the same as ???. For status, this is the - same as 'multiple' + string : method for handling paths that match multiple channels + + Allowed values are: + + * 'newest': use the most recent channel entered + * 'oldest': use the least recent channel entered + * 'multiple': treat multiple channels as a new type of channel, e.g., + 'a' and 'b' becomes 'a,b' + * 'all': treat each channel individually, despite overlaps. For + switching, this is the same as ???. For status, this is the + same as 'multiple' + """ return self._treat_multiples @@ -430,7 +426,7 @@ def switching_matrix(self): @property def residence_times(self): """ - dict {string: list of int} : + Dict[string, List[int]] : number of steps spent in each channel for each "stay" in that channel; allows calculations of distribution properties. Depends on ``treat_multiples``, see details there. @@ -446,7 +442,7 @@ def residence_times(self): @property def total_time(self): """ - dict {string: int} : + Dict[string, int] : total number of steps spent in each channel for each "stay" in that channel. Depends on ``treat_multiples``, see details there. """ diff --git a/openpathsampling/engines/dynamics_engine.py b/openpathsampling/engines/dynamics_engine.py index eb2fbd537..e70bea7a8 100644 --- a/openpathsampling/engines/dynamics_engine.py +++ b/openpathsampling/engines/dynamics_engine.py @@ -93,6 +93,7 @@ class DynamicsEngine(StorableNamedObject): on_retry : str or callable the behaviour when a try is started. Since you have already generated some trajectory you might not restart completely. Possibilities are + 1. `full` will restart completely and use the initial frames (default) 2. `50%` will cut the existing in half but keeping at least the initial 3. `remove_interval` will remove as many frames as the `interval` diff --git a/openpathsampling/engines/external_snapshots/snapshot.py b/openpathsampling/engines/external_snapshots/snapshot.py index 1569e0299..34e3a1827 100644 --- a/openpathsampling/engines/external_snapshots/snapshot.py +++ b/openpathsampling/engines/external_snapshots/snapshot.py @@ -91,7 +91,7 @@ def clear_cache(self): """Remove internal details from snapshot. These details should always be accessible later using - :method:`.load_details`. Removing them allows them memory to be + :meth:`.load_details`. Removing them allows them memory to be freed. """ self._xyz = None diff --git a/openpathsampling/engines/gromacs/engine.py b/openpathsampling/engines/gromacs/engine.py index fd2f163fa..8d00c3e68 100644 --- a/openpathsampling/engines/gromacs/engine.py +++ b/openpathsampling/engines/gromacs/engine.py @@ -90,10 +90,11 @@ class GromacsEngine(ExternalEngine): options : dict Dictionary of option name to value. Gromacs-specific option names are - * ``gmx_prefix``: Prefix to gromacs commands, which are run as - ``{gmx_prefix}command``. Default is 'gmx ' (note the space). - This allows you to use either Gromacs 4 or Gromacs 5, as well - as specifying the path to your version of Gromacs. + + * ``gmx_executable``: Prefix to gromacs commands, which are run + as ``{gmx_prefix}command``. Default is 'gmx ' (note the + space). This allows you to use either Gromacs 4 or Gromacs 5, + as well as specifying the path to your version of Gromacs. * ``grompp_args``: Additional arguments to ``grompp``. The defaults take ``-c {self.gro} -f {self.mdp} -p {self.top} -t {self.input_file}``, where the input filename is set by diff --git a/openpathsampling/engines/snapshot.py b/openpathsampling/engines/snapshot.py index 8919cfc81..fd8f63f9b 100644 --- a/openpathsampling/engines/snapshot.py +++ b/openpathsampling/engines/snapshot.py @@ -17,19 +17,17 @@ class BaseSnapshot(StorableObject): """ Simulation snapshot. Contains references to a configuration and momentum + + Parameters + ---------- + topology : openpathsamping.Topology, default: None + The corresponding topology used with this Snapshot. Can also be None + and means no topology is specified. """ __metaclass__ = abc.ABCMeta def __init__(self, topology=None): - """ - Attributes - ---------- - topology : openpathsamping.Topology, default: None - The corresponding topology used with this Snapshot. Can also be None - and means no topology is specified. - """ - super(BaseSnapshot, self).__init__() self._reversed = None diff --git a/openpathsampling/volume.py b/openpathsampling/volume.py index 4931bd5d3..837f08e4d 100644 --- a/openpathsampling/volume.py +++ b/openpathsampling/volume.py @@ -265,20 +265,19 @@ class CVDefinedVolume(Volume): """ Volume defined by a range of a collective variable `collectivevariable`. - Contains all snapshots `snap` for which `lamba_min < + Contains all snapshots `snap` for which `lamba_min <= collectivevariable(snap)` and `lambda_max > collectivevariable(snap)`. + + Parameters + ---------- + collectivevariable : :class:`.CollectiveVariable` + the CV to base the volume on + lambda_min : float + minimum value of the CV + lambda_max : float + maximum value of the CV """ def __init__(self, collectivevariable, lambda_min=0.0, lambda_max=1.0): - ''' - Attributes - ---------- - collectivevariable : CollectiveVariable - the collectivevariable object - lambda_min : float - the minimal allowed collectivevariable - lambda_max: float - the maximal allowed collectivevariable - ''' super(CVDefinedVolume, self).__init__() self.collectivevariable = collectivevariable try: From 4fd5d3563cc5881047d5cff95a72a3175bab7315 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Fri, 21 Feb 2020 14:40:41 +0100 Subject: [PATCH 323/464] Storage.__init__ docs to class level --- openpathsampling/storage/storage.py | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/openpathsampling/storage/storage.py b/openpathsampling/storage/storage.py index 2234afd0c..0076c6029 100644 --- a/openpathsampling/storage/storage.py +++ b/openpathsampling/storage/storage.py @@ -25,8 +25,22 @@ class Storage(NetCDFPlus): """ + Create a netCDF+ storage for OPS Objects + A netCDF4 wrapper to store trajectories based on snapshots of an OpenMM simulation. This allows effective storage of shooting trajectories + + + Parameters + ---------- + filename : string + filename of the netcdf file to be used or created + mode : string, default: None + the mode of file creation, one of `'w'` (write), `'a'` (append) or + None, which will append any existing files. + template : :class:`openpathsampling.Snapshot` + a Snapshot instance that contains a reference to a Topology, the + number of atoms and used units """ @property @@ -42,20 +56,6 @@ def __init__( mode=None, template=None, fallback=None): - """ - Create a netCDF+ storage for OPS Objects - - Parameters - ---------- - filename : string - filename of the netcdf file to be used or created - mode : string, default: None - the mode of file creation, one of `'w'` (write), `'a'` (append) or - None, which will append any existing files. - template : :class:`openpathsampling.Snapshot` - a Snapshot instance that contains a reference to a Topology, the - number of atoms and used units - """ self._template = template super(Storage, self).__init__( From f141e9a37d005f92cb3af6ec9f7ef9d910f0dc61 Mon Sep 17 00:00:00 2001 From: hejung Date: Thu, 14 Jun 2018 10:31:43 +0200 Subject: [PATCH 324/464] fixed caching_mode='unlimited' --- openpathsampling/storage/storage.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openpathsampling/storage/storage.py b/openpathsampling/storage/storage.py index 2234afd0c..4f9f12d8f 100644 --- a/openpathsampling/storage/storage.py +++ b/openpathsampling/storage/storage.py @@ -178,7 +178,7 @@ def set_caching_mode(self, mode='default'): 'off': self.no_cache_sizes, 'lowmemory': self.lowmemory_cache_sizes, 'memtest': self.memtest_cache_sizes, - 'unlimited': self.unlimited_cache_sizes() + 'unlimited': self.unlimited_cache_sizes } if mode in available_cache_sizes: From 3caac796250b2def16bbff9f121a1c81ac429bf7 Mon Sep 17 00:00:00 2001 From: Hendrik Jung Date: Thu, 12 Apr 2018 18:17:34 +0200 Subject: [PATCH 325/464] fixed SPA behaviour --- .../analysis/shooting_point_analysis.py | 16 ++++++++-------- .../tests/test_shooting_point_analysis.py | 6 +++--- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/openpathsampling/analysis/shooting_point_analysis.py b/openpathsampling/analysis/shooting_point_analysis.py index 25b83eef4..03ee19f05 100644 --- a/openpathsampling/analysis/shooting_point_analysis.py +++ b/openpathsampling/analysis/shooting_point_analysis.py @@ -40,7 +40,7 @@ def __delitem__(self, key): del self.hash_representatives[hashed] def __iter__(self): - return iter(self.store) + return iter(self.hash_representatives.values()) def __len__(self): return len(self.store) @@ -58,8 +58,8 @@ def rehash(self, new_hash): velocities, the resulting mapping would be invalid. It is up to the user to avoid such invalid remappings. """ - return TransformedDict(new_hash, - {self.hash_representatives[k]: self.store[k] + return TransformedDict(new_hash, + {self.hash_representatives[k]: self.store[k] for k in self.store}) @@ -71,7 +71,7 @@ class SnapshotByCoordinateDict(TransformedDict): """ def __init__(self, *args, **kwargs): hash_fcn = lambda x : x.coordinates.tostring() - super(SnapshotByCoordinateDict, self).__init__(hash_fcn, + super(SnapshotByCoordinateDict, self).__init__(hash_fcn, *args, **kwargs) @@ -227,9 +227,9 @@ def committor(self, state, label_function=None): label_function = lambda s : s results = {} for k in self: - out_key = label_function(self.hash_representatives[k]) - counter_k = self.store[k] - committor = float(counter_k[state]) / sum(counter_k.values()) + out_key = label_function(k) + counter_k = self[k] + committor = float(counter_k[state]) / sum([counter_k[s] for s in self.states]) results[out_key] = committor return results @@ -240,7 +240,7 @@ def _get_key_dim(key): except TypeError: ndim = 1 if ndim > 2 or ndim < 1: - raise RuntimeError("Histogram key dimension {0} > 2 or {0} < 1 " + raise RuntimeError("Histogram key dimension {0} > 2 or {0} < 1 " + "(key: {1})".format(ndim, key)) return ndim diff --git a/openpathsampling/tests/test_shooting_point_analysis.py b/openpathsampling/tests/test_shooting_point_analysis.py index 3e3556df0..8af748558 100644 --- a/openpathsampling/tests/test_shooting_point_analysis.py +++ b/openpathsampling/tests/test_shooting_point_analysis.py @@ -50,9 +50,9 @@ def test_set_get(self): def test_update(self): self.test_dict.update({(5,6): "d"}) - assert_equal(self.test_dict.store, + assert_equal(self.test_dict.store, {0 : "a", 1 : "b", 2 : "c", 5 : "d"}) - assert_equal(self.test_dict.hash_representatives, + assert_equal(self.test_dict.hash_representatives, {0: (0,1), 1: (1,2), 2: (2,3), 5: (5,6)}) def test_del(self): @@ -61,7 +61,7 @@ def test_del(self): def test_iter(self): iterated = [k for k in self.test_dict] - for (truth, beauty) in zip(list(self.transformed.keys()), iterated): + for (truth, beauty) in zip(list(self.untransformed.keys()), iterated): assert_equal(truth, beauty) def test_len(self): From 41b1e91c4552f9ef4128dfc77caf64faf1609b57 Mon Sep 17 00:00:00 2001 From: hejung Date: Sun, 23 Feb 2020 18:34:13 +0100 Subject: [PATCH 326/464] storage.filename is now an absolute path and a read-only property --- openpathsampling/netcdfplus/netcdfplus.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/openpathsampling/netcdfplus/netcdfplus.py b/openpathsampling/netcdfplus/netcdfplus.py index e95771281..a818c199f 100644 --- a/openpathsampling/netcdfplus/netcdfplus.py +++ b/openpathsampling/netcdfplus/netcdfplus.py @@ -246,7 +246,7 @@ def __init__(self, filename, mode=None, fallback=None): "Open existing netCDF file '%s' for reading - " "reading from existing file", filename) - self.filename = filename + self._filename = os.path.abspath(filename) self.fallback = fallback # this can be set to false to re-store objects present in the fallback @@ -368,6 +368,10 @@ def __init__(self, filename, mode=None, fallback=None): def _create_simplifier(self): self.simplifier = UUIDObjectJSON(self) + @property + def filename(self): + return self._filename + @property def file_size(self): return os.path.getsize(self.filename) From 7ab3960f9ed606929d406d5ae14631b227be5f5d Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Sun, 23 Feb 2020 19:09:10 +0100 Subject: [PATCH 327/464] Fix up GromacsEngine docs --- openpathsampling/engines/gromacs/engine.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/openpathsampling/engines/gromacs/engine.py b/openpathsampling/engines/gromacs/engine.py index 8d00c3e68..2fff39ed6 100644 --- a/openpathsampling/engines/gromacs/engine.py +++ b/openpathsampling/engines/gromacs/engine.py @@ -85,8 +85,6 @@ class GromacsEngine(ExternalEngine): .mdp file top : string .top file - base_dir : string - root directory where all files will be found (defaults to pwd) options : dict Dictionary of option name to value. Gromacs-specific option names are @@ -104,6 +102,10 @@ class GromacsEngine(ExternalEngine): -e self.edr_file -g self.log_file``, where the ``topol.top`` is generated by :meth:`.prepare`, and the other filenames are set by :meth:`.set_filenames`. Default is the empty string. + base_dir : string + root directory where all files will be found (defaults to pwd) + prefix : string + prefix within ``base_dir`` for output folders (defaults to gmx) """ _default_options = dict(ExternalEngine._default_options, **{ From 4815eb91bde7a82a3c9a21abf049e807d1826571 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Wed, 4 Mar 2020 18:34:43 +0100 Subject: [PATCH 328/464] DirectSimulation should use engine.start/.stop --- openpathsampling/pathsimulators/direct_md.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/openpathsampling/pathsimulators/direct_md.py b/openpathsampling/pathsimulators/direct_md.py index bf71a91ab..ce5d1167a 100644 --- a/openpathsampling/pathsimulators/direct_md.py +++ b/openpathsampling/pathsimulators/direct_md.py @@ -84,6 +84,7 @@ def run(self, n_steps): was_in_interface = {p: None for p in self.flux_pairs} local_traj = paths.Trajectory([self.initial_snapshot]) self.engine.current_snapshot = self.initial_snapshot + self.engine.start() for step in xrange(n_steps): frame = self.engine.generate_next_frame() @@ -131,6 +132,8 @@ def run(self, n_steps): if self.storage is not None: local_traj += [frame] + self.engine.stop() + if self.storage is not None: self.storage.save(local_traj) From b1bc7cc969ae3061eff4c890367bb2016ed3e1f5 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Wed, 4 Mar 2020 18:37:29 +0100 Subject: [PATCH 329/464] Add n_frames_since_start=None to ext engine init --- openpathsampling/engines/external_engine.py | 1 + 1 file changed, 1 insertion(+) diff --git a/openpathsampling/engines/external_engine.py b/openpathsampling/engines/external_engine.py index 8aa858ef2..5f1eac02d 100644 --- a/openpathsampling/engines/external_engine.py +++ b/openpathsampling/engines/external_engine.py @@ -78,6 +78,7 @@ def __init__(self, options, descriptor, template, self.first_frame_in_file = first_frame_in_file self._traj_num = -1 self._current_snapshot = template + self.n_frames_since_start = None @property def current_snapshot(self): From da768f56467d25a6d4e53047da48c448b140a9f1 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Wed, 4 Mar 2020 18:40:30 +0100 Subject: [PATCH 330/464] stop should be given a trajectory --- openpathsampling/pathsimulators/direct_md.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openpathsampling/pathsimulators/direct_md.py b/openpathsampling/pathsimulators/direct_md.py index ce5d1167a..04443b1e8 100644 --- a/openpathsampling/pathsimulators/direct_md.py +++ b/openpathsampling/pathsimulators/direct_md.py @@ -132,7 +132,7 @@ def run(self, n_steps): if self.storage is not None: local_traj += [frame] - self.engine.stop() + self.engine.stop(local_traj) if self.storage is not None: self.storage.save(local_traj) From 976df3e13770d082af7e889c7a9f36cecd6c5874 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Mon, 9 Mar 2020 15:11:20 +0100 Subject: [PATCH 331/464] Progress indicator for shooting point analysis --- openpathsampling/analysis/shooting_point_analysis.py | 6 ++++-- openpathsampling/tests/test_shooting_point_analysis.py | 3 +++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/openpathsampling/analysis/shooting_point_analysis.py b/openpathsampling/analysis/shooting_point_analysis.py index 03ee19f05..a1185e6f9 100644 --- a/openpathsampling/analysis/shooting_point_analysis.py +++ b/openpathsampling/analysis/shooting_point_analysis.py @@ -4,6 +4,8 @@ import numpy as np import matplotlib.pyplot as plt +from openpathsampling.progress import SimpleProgress + try: from collections import abc except ImportError: @@ -75,7 +77,7 @@ def __init__(self, *args, **kwargs): *args, **kwargs) -class ShootingPointAnalysis(SnapshotByCoordinateDict): +class ShootingPointAnalysis(SimpleProgress, SnapshotByCoordinateDict): """ Container and methods for shooting point analysis. @@ -105,7 +107,7 @@ def analyze(self, steps): steps : iterable of :class:`.MCStep` or None MC steps to analyze """ - for step in steps: + for step in self.progress(steps[:]): total = self.analyze_single_step(step) def analyze_single_step(self, step): diff --git a/openpathsampling/tests/test_shooting_point_analysis.py b/openpathsampling/tests/test_shooting_point_analysis.py index 8af748558..9ed0a86d0 100644 --- a/openpathsampling/tests/test_shooting_point_analysis.py +++ b/openpathsampling/tests/test_shooting_point_analysis.py @@ -101,6 +101,8 @@ def test_get_set(self): class TestShootingPointAnalysis(object): def setup(self): + self.HAS_TQDM = paths.progress.HAS_TQDM + paths.progress.HAS_TQDM = False # taken from the TestCommittorSimulation import openpathsampling.engines.toy as toys pes = toys.LinearSlope(m=[0.0], c=[0.0]) # flat line @@ -149,6 +151,7 @@ def setup(self): def teardown(self): import os + paths.progress.HAS_TQDM = self.HAS_TQDM self.storage.close() if os.path.isfile(self.filename): os.remove(self.filename) From 3dfa58ee932787aa8717591f9a8acace5c202a7f Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Mon, 9 Mar 2020 15:48:38 +0100 Subject: [PATCH 332/464] minor cleanup --- .travis.yml | 10 +++++----- openpathsampling/analysis/shooting_point_analysis.py | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.travis.yml b/.travis.yml index 4b05404c6..d3dfcd4db 100644 --- a/.travis.yml +++ b/.travis.yml @@ -49,6 +49,11 @@ addons: - pandoc env: + matrix: + - CONDA_PY=3.7 MINIMAL=true + - CONDA_PY=2.7 + - CONDA_PY=3.6 + - CONDA_PY=3.7 global: - COVERALLS_PARALLEL=true - TWINE_USERNAME="dwhswenson" @@ -59,11 +64,6 @@ env: - secure: "NJvoSrLNd2ZR3HluJjEqI36gD5lsucwIvgnYjNmM4cwnnA77aLV9FRYTwlLRZn3XY9FL8KOzL5l0amNzMD7sQrf7bWwWv7iCUBddH549q9RSgiuOugtodYJ6VaXi76hk1rOgcJpDoCj9wTCIlMtWibPUzr1QHmdihfdM2iA2kkE=" - secure: "l9NJkZDD0ALhkErUvhRrreLsrcWErd+CXpWv8dxHGtkjemNx6CwVtyL+a30jz/QwMANSZbKll/cPK5yJQvuwDaWxja6UPLLKVNGtma+CmwKcIC/wwTwbMoxcS62fyLJ3kS0qR8oCQz2nCPKiYyRGADtPLWVMZckY1SJfNYcKuCM=" - secure: "kb37xmsSV3pEnESnINzwlW2Cju/UFzA/G+m+NsihAwO8RMPZwKCrZK/rptgkUDACXJxom5M690WEukQkHnOt+OTrWhu7WKZgYeVuWUs2++RohYv/m5npaOHMMn+uYmF328v4PvPmXxbD02zzg5Tgdn82x8oa6J8BKX8ohOQ6Xpg=" - matrix: - - CONDA_PY=3.7 MINIMAL=true - - CONDA_PY=2.7 - - CONDA_PY=3.6 - - CONDA_PY=3.7 import: - dwhswenson/autorelease:autorelease-travis.yml@v0.1.2 diff --git a/openpathsampling/analysis/shooting_point_analysis.py b/openpathsampling/analysis/shooting_point_analysis.py index a1185e6f9..d29444e56 100644 --- a/openpathsampling/analysis/shooting_point_analysis.py +++ b/openpathsampling/analysis/shooting_point_analysis.py @@ -107,7 +107,7 @@ def analyze(self, steps): steps : iterable of :class:`.MCStep` or None MC steps to analyze """ - for step in self.progress(steps[:]): + for step in self.progress(steps): total = self.analyze_single_step(step) def analyze_single_step(self, step): From 7a57d14161d1a2577f637d5f6bfbaa1e50960567 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Mon, 9 Mar 2020 23:52:31 +0100 Subject: [PATCH 333/464] Fix missing names in ExternalMDSnapshot --- openpathsampling/engines/external_snapshots/snapshot.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/openpathsampling/engines/external_snapshots/snapshot.py b/openpathsampling/engines/external_snapshots/snapshot.py index 34e3a1827..0c11e1206 100644 --- a/openpathsampling/engines/external_snapshots/snapshot.py +++ b/openpathsampling/engines/external_snapshots/snapshot.py @@ -1,7 +1,12 @@ +import time + from openpathsampling.engines import features from openpathsampling.engines.snapshot import BaseSnapshot from . import features as ext_features +import logging +logger = logging.getLogger(__name__) + @features.base.attach_features([ features.engine, ext_features.coordinates, From 0336f3e54d42dea317519176a92535c4bac6aef6 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Tue, 10 Mar 2020 12:50:58 +0100 Subject: [PATCH 334/464] Start improvements to Gromacs Engine --- examples/gromacs/AD_tps_1_trajectory.ipynb | 267 ++++++++------------- openpathsampling/engines/gromacs/engine.py | 14 +- 2 files changed, 106 insertions(+), 175 deletions(-) diff --git a/examples/gromacs/AD_tps_1_trajectory.ipynb b/examples/gromacs/AD_tps_1_trajectory.ipynb index d8dc29b85..389c462c7 100644 --- a/examples/gromacs/AD_tps_1_trajectory.ipynb +++ b/examples/gromacs/AD_tps_1_trajectory.ipynb @@ -31,115 +31,6 @@ "import numpy as np" ] }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": { - "scrolled": false - }, - "outputs": [ - { - "data": { - "text/markdown": [ - "```py\n", - "def copy(self):\n", - " this = cls.__new__(cls)\n", - " this.__uuid__ = this.get_uuid()\n", - " this._xyz = None\n", - " this._velocities = None\n", - " this._box_vectors = None\n", - " this._reversed = None\n", - " this.engine = self.engine\n", - " this.velocity_direction = self.velocity_direction\n", - " this.file_name = self.file_name\n", - " this.file_position = self.file_position\n", - " return this\n", - "\n", - "def copy_to(self, target):\n", - " target.__uuid__ = target.get_uuid()\n", - " target._xyz = None\n", - " target._velocities = None\n", - " target._box_vectors = None\n", - " target._reversed = None\n", - " target.engine = self.engine\n", - " target.velocity_direction = self.velocity_direction\n", - " target.file_name = self.file_name\n", - " target.file_position = self.file_position\n", - "\n", - "def create_reversed(self):\n", - " this = cls.__new__(cls)\n", - " this.__uuid__ = self.reverse_uuid()\n", - " this._reversed = self\n", - " this._xyz = None\n", - " this._velocities = None\n", - " this._box_vectors = None\n", - " this.engine = self.engine\n", - " this.file_name = self.file_name\n", - " this.file_position = self.file_position\n", - " this.velocity_direction = - self.velocity_direction\n", - " return this\n", - "\n", - "def create_empty(self):\n", - " this = cls.__new__(cls)\n", - " this.__uuid__ = this.get_uuid()\n", - " this._xyz = None\n", - " this._velocities = None\n", - " this._box_vectors = None\n", - " this._reversed = None\n", - " return this\n", - "\n", - "def __init__(...):\n", - " # user defined\n", - " pass\n", - "\n", - "def init_empty(self):\n", - " self.__uuid__ = self.get_uuid()\n", - " self._xyz = None\n", - " self._velocities = None\n", - " self._box_vectors = None\n", - " self._reversed = None\n", - "\n", - "@staticmethod\n", - "def init_copy(self, engine=None, velocity_direction=None, file_name=None, file_position=None):\n", - " self.__uuid__ = self.get_uuid()\n", - " self._xyz = None\n", - " self._velocities = None\n", - " self._box_vectors = None\n", - " self._reversed = None\n", - " self.engine = engine\n", - " self.velocity_direction = velocity_direction\n", - " self.file_name = file_name\n", - " self.file_position = file_position\n", - "\n", - "```" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 2, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "from IPython.display import Markdown\n", - "\n", - "def code_to_md(snapshot_class):\n", - " md = '```py\\n'\n", - " for f, s in snapshot_class.__features__.debug.items():\n", - " if s is not None:\n", - " md += s\n", - " else:\n", - " md += 'def ' + f + '(...):\\n # user defined\\n pass' \n", - " md += '\\n\\n'\n", - " md += '```'\n", - "\n", - " return md\n", - "\n", - "Markdown(code_to_md(paths.engines.gromacs.ExternalMDSnapshot))" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -156,7 +47,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -170,7 +61,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ @@ -179,21 +70,19 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "options = {\n", - " 'gmx_executable': 'gmx -nobackup ',\n", - " 'snapshot_timestep': 0.02,\n", - " 'base_dir': \".\",\n", - " 'prefix': \"hi_T\"\n", + " 'gmx_executable': 'gmx -nobackup ', # run gmx how you like it!\n", + " 'snapshot_timestep': 0.02, # \n", "} # TODO" ] }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 5, "metadata": {}, "outputs": [], "source": [ @@ -214,7 +103,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 6, "metadata": {}, "outputs": [], "source": [ @@ -223,37 +112,16 @@ }, { "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "['_xyz', '_velocities', '_box_vectors']" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "\n", - "template.__features__.default_none" - ] - }, - { - "cell_type": "code", - "execution_count": 9, + "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "" + "" ] }, - "execution_count": 9, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" } @@ -273,7 +141,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 8, "metadata": {}, "outputs": [], "source": [ @@ -284,7 +152,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 9, "metadata": {}, "outputs": [], "source": [ @@ -321,17 +189,17 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 10, "metadata": {}, "outputs": [], "source": [ - "import logging.config\n", - "logging.config.fileConfig(\"../resources/logging.conf\", disable_existing_loggers=False)" + "#import logging.config\n", + "#logging.config.fileConfig(\"../resources/logging.conf\", disable_existing_loggers=False)" ] }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 11, "metadata": {}, "outputs": [], "source": [ @@ -340,7 +208,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 12, "metadata": {}, "outputs": [ { @@ -359,7 +227,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 13, "metadata": {}, "outputs": [], "source": [ @@ -370,14 +238,14 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 14, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "[Trajectory[47]]\n" + "[Trajectory[42]]\n" ] } ], @@ -398,22 +266,22 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "[]" + "[]" ] }, - "execution_count": 17, + "execution_count": 15, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAX8AAAD8CAYAAACfF6SlAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAIABJREFUeJzs3Xd4XMW5+PHvbF/1bjWr2XLvXa5rG2Njgg2EEiAJkHAJCSGVcIGQQGLAIZdUuPmFErihBEIL2LiC7JWL1rYsF1nutmz1avWyfX5/SBZyb5JWZT7Pc56VdmfPeXctv3POnClCSomiKIrSv2h8HYCiKIrS/VTyVxRF6YdU8lcURemHVPJXFEXph1TyVxRF6YdU8lcURemHVPJXFEXph1TyVxRF6YdU8lcURemHdL4O4EIiIiJkUlKSr8NQFEXpVbKzs6uklJGXKtdjk39SUhI7d+70dRiKoii9ihAi/3LKqWYfRVGUfkglf0VRlH5IJX9FUZR+SCV/RVGUfkglf0VRlH5IJX9FUZR+SCV/RemjbDYby5cvx2az+ToUpQfqsf38FUW5ejabjTdnzSLW4+FzjYayGTMIi41FYzKh8fNDYzaj9fNr33T+/u2bISgIfUAAhsBADIGBGIOC0Pv5ITRdf65os9mwWq1YLBbS0tK6/Hj9mUr+itIHWa1W7vF4mAPg9cLmzde0Py/gaNucQuDUaHC1bW6NBrdWi1unw63T4dXp8Oj1eNs2aTAgDQYwGMBkAqMRYTK1bxqzGY3ZTGlNDa+98w5Wj4dlRiPp6emqAuhCKvkrSh9ksViYbzbjcjgINBj46N13GT1kCI66OlyNjbgaG3E3NeFuasLT3Nz62NSEt6WlfZN2O9JuB4cD2h6F09m6uVxoXC60Lhcatxudy4XW48GvpQWdx4Pe6yXY5SJcyiuK+1bgZ8BfnU6sVqtK/l1IJX9F6YPS0tJIT0+/piaUs5tgpNdLQ0kJp/bvp/7oUZpPnMBRWIgsK0NTWYmxthb/hgb83G4i3G7M59mnB6gWgmqjkUY/P1qCg3GHhUF0NKd0Ot5YvZp0jweDwYDFYrnWr0G5CJX8FaWPSktLu+oz58ytW/nbnDnc5vGgAQo1GiK8XoKAoLPKnp3Q86OiOB4eDgMGoIuPx5yYSGBqKqHDhhE2ZAiRBgMXmnUs1mZjpmrz7xZCXuFlWXeZNGmSVBO7KUr32/vSS8if/5xxLhcngKOAMzSUgEGDLpjQtQaDr8NW2gghsqWUky5VTp35K/1GZ/ck6Ws9U/JWr6byu99lalkZJRoN39VqeVtKdEYj6atW9YnPqHxFJX+lX7DZbNw+dy5DnU6sOh0Pfe97nF4vQnq9XxXscCV8secLCgp44803KXa7WWYy9eqeKZW5uRy8806mHzhABGBdsIAp//oXDxw9yuA+VLkpZ1LNPkqvlrFmDZnvv0/aHXdgufHGC5b7/S23cN+nnxLVBTGEaDTc9eCDJCQk9KpE2VRRQdZddzFxwwZMQObo0Yx47z0iR470dWjKNbjcZh+V/JVey2azsWvGDB5u+xuuEoIKs5m60FAcMTGI5GT8Royg6YsvsGRmcgz4iRA4dDoefvhhklNSvtqZEF/92HEwU9vzZz93dPt2bnrjDdYDtxoMGIAbXS62Gwz8a+PGHl0BeJxOMh98kMFvv02M18u2mBgGvPkmyQsX+jo0pROoNn+lz7NarbwqBJOkZCoQIiWFBgMDKiuJLS7GdNbJQwrwrE5HXUgIcssWaouL8RsxgtDx44meOpWA6OjLPvap119HC+TefTffCQpiyN//zk8Bt8PBpuuvZ8dPfsKEX/4SncnUmR/5mkivl53PPkvI888zy+FgX0AAlS+8wLQf/MDXoSk+oM78lV7LZrMxf/58pMPBcin5iZQc8PMjYNUqIkaN4nBqKuNra2kBts+di6asDL+KCsIaGoh1Ojk7LV/oyuF05bDvxAmsVisTIiOZ81//xc6UFGYeP84nDzzArf/4B/8HVArBt4EBUlKm0XBo6lSSly0jcf78bv9+Ojr03ns0P/wwE2pqyNfpKHnkEaa9+GK3TNmgdC/V7KP0Cx173GhWrGDoCy8Q0uFv2rpwIYZf/YqMTZvOaI/3ut1UHThAxY4d1Ofk4DxyBG1eHiGlpSQ0NhJ8Gce2Tp6MdvhwZr31Fie1Wv715JPMveEGJo0dy65lyxBvvMHEigq0wJ7gYJruuosJzz2HOSysa76M8yjZvp28u+9mel4etUKw7+abSXvrLQwBAd0Wg9K9VPJX+qUdv/41U5YtA6BEq+X4unU8fsMN/NTlIgCI8PfHDBjcboweD0avF5PXix+gv8Zjn+/KQRgMaLdsIbWwkCivlzpgz6hRRD3+OMPvuecaj3hhdQUF7L7zTqZu24YAtk2ZwvgPPiA4MbHLjqn0DCr5K/1O1m9/y9Cnn8YlBMUBAYxpaGCPXs9bLhcv8FVy3xsUREtAAG6jEa/RiDSZkGYz+PmB2YwmIKB90wUG4mlqIuVPfyJCSrRAHZD1r3+h+8MfsGRnkx0WRsOUKWgKCjBXVBBWX0+s03ne6Q3OiTkiAsPTTzPottuu6J7DhTgbG7Hddx8jP/mECCnZkpxM0ttvEz9jxjXvW+kdLjf5I6W85g14A6gAci/wuoXW/zN72rZfX2qfEydOlMqlZWZmyueff15mZmb6OhSfsn7969IN8qDZLEt27JBSSml77DFZA7Ia5KMgP2rtrS9LNRq56b77pNvhuOR+S7Ky5BGjUdpBrhw2TEqQ/5k0Sea+8YZ0gsyMj5dej+ec93k9Hlmxb5/c9/rrcuuPfiQ3LlokM0aMkDsiImS5RiNlWyxnbwfMZpkZFyc3TpworbfdJrf/6lfyyCefyIbS0ovG6fV4ZOajj8oTer2UILNDQ+WBd965ui9T6dWAnfJy8vblFLrkTmA2MOESyf/zK9mnSv4XV7Fvn/zYYpGbQe4E+aYQ8pPZs+WuP/xBVh875uvwuo2rpUVaR4+WEuS26OhzkmT+xo0yx2SSEuTnQ4bI3X/6k8wJCJAS5GGTSWY9++wF931i/XpZqNXKOpC7/vAHuTcwUJZpNLJs9255UqeThVqtrD158qriPl05ZHzjG7JKiAtWBh23KiHkfj+/cyqHjHvukYfaPuNBrVZ+/N3vnrdCUvqHbk3+rccjSSX/rlVXWCg3P/CAzAoPl+62hLAb5DqQZWclihKNRu6IjJQb09Lk1kcekcdWrpSulhZff4ROVZufL3dEREgJcuOkSRc8k7fX1UnrmDFSgtzn7y8LN2+WmT/7mTyp00kJMis8XB7+8MMz3nPgnXdkhRCyQgh54O235fannpISZMZdd8ktiYnSDXLv3/7WaZ+lqbJSbnnoIbkrJERKkG6Quf7+cmNamtzy0ENnXDkcMxhk8wUqiE0ghxiN/f5KsD/ricn/FLAXWAOMvEC5B4GdwM6EhIQu/YJ6C3tdndz2+OMyMz6+/T98vk4nN86YIVf+7nfSbDZLrVYrzWazXP/223Ln88/LjYsXyy1JSfKwySSdHRJDM8j9fn5yU2qqtN56q9z95z/Lmrw8X3/Eq1KQkSGPGI3SCXLTt799We/JfPRRWQuyRgi57cknWyuFm2+W1UJID8hNqamyJCtL7v7Tn2QdyEKtVuatXSvdDoc8ajTKPL1ebrr33tbKZt68LvtsJ7/8Um5MS5Olbc1D5RqN3Dh1qsxbu1ZKKWXVoUPtVzsS5BGjUf4zKUn+DWQtyF0gn33yyS6LT+nZelryDwIC2n5eDBy91P7685m/2+GQu158UW4aMkTWtv0HrxBCWseMkftee+2MS/pLtfnb6+rkofffl5v/67/kxokTZXZoqKw8q5mhSKuV26Oi5MYZM+TWn/xEHl+9+rLaw30l55VXZIUQskYIuevFF6/ovSfT0+UBs7k1gU+cKB0NDbImL09unDRJ2jt8J4VarSzJypJSSrnp/vtbyy9YIBtA7g4O7pbvx9XSIrc/9ZTcFh0tXec5y88YPlyW790rpWz9OzCbzfLGtopsQ1SUavrppy43+Xdabx8hRFJb086oyyh7Epgkpay6UJn+1ttHer0cfOcdKv7yF4bt2UO010s9kDNoEObvfpexP/1pp40WlV4vFTk5FH7+OY1bt6I/eJCosjKSHY72Id/NwAl/f07FxyNHjyZkzhySbrrJ510Ftz78MBP/9jfKdTo8K1aQcsMNV7wPR30922bOZM6+feT6+xOybh3xM2ZgnT0bS9tyhy7AdtddTPjjH6mPj6feYEACA+x2HNu3EzN58hn79DidtFRXY6+pwV5djaOmBmddHa62zd3QgKehAU9jI97GRmRTE7S0QHMzoqUFjcOBxuFA53CgdbnQu1zo3W6MbV1S4z2ecz7HpuHDiXj8cYZ/85sIjaZ9zMOwlSu5xWbDev31WNatu5qvWenFur2r58WSvxAiGiiXUkohxBTgIyBRXuTg/SX5561ZQ8ELL5CYmUmyy4UD2B0Tg/zGNxj31FPdOiDIXlvLyTVrqEpPx7NrF4EnT5JYW3vGUnxFWi3FkZG0DB6MccoUYhYtImHuXDS6rp0pJHPrVo5+85vce/Ike4KDScjKIiw19aLvkV4vzsZGWk6douXUKZx1da1JubYWV309TX/7GzOPHz/nfTmBgYxpaLjgfo+YTBjdbgxeL2YpMUl5zmjhy2UHWoTALgQOrRaHVouzbS1cl8GAR6/HYzRS3thIfkUFKwCE4NGQEObV1OAHHDaZKLvxRsa88AKhgwYhvV4yU1JIy89n51NPtY97UPqHbk3+Qoj3aG3XjwDKgadp61Ytpfy7EOKHwPcBN9AC/ExKmXmxffbl5F+6cyeHly0j6ssvGdHcjBfYExpK05IljH76aUKSk30dYjvp9VK2axdFq1bRZLNhOHiQAWVlJDmdaNvKNNF6lVA9cCBy7FhCZ88mackSguLjOyWGTevXM7vDpGPpMTGY9Xq0Tic6p7P9LNng8WD0eDB5vZikxA+4mskLTv+RBp7ntZ3h4bgNBjwGA16jEe/pMQJt4wSEvz8af3+0gYFoAwPRBQaiDw7GEBKCITgYY2goxpAQzOHhmMPCLrvSPD2VhdPpxGAwkJ6ezojYWPY+/jgRK1YworkZO5CdmIj54YcZeu+9FCQlEdfSQuXKlQz62teu4ptQeiM1yKuHqT1xgn3PPEPAihWMra1FAxzw86NiwQKG/frXRE+Y4OsQr0hLdTUnV6+mKj0d7+7dBOXnk1RXR2iHv6cCnY6SyEjsqamYpk4lZtEiBs6efUVXCZW5uRRMnMhEp7PTYncC1RoNdQYDp4Byu53hwL+BqNGjGTtnDtqgIAL+8hdGNjWd8d70mBi233QTc++7r9tn7rzY4jGH//1vyp57jrG5uYRISYFOx8nUVNIOHqRYryfk8OEedVKhdB2V/HuA5qoq9jz3HNr332d8WRkG4IReT/6MGSQ+/nifm0JXer2UZmVRvGYNTZmZGA4dIrq8nMQOVwkNwMmAAGoSEmDsWELb7iUExsaes7+j//kP5ttvJ8zj4X6djlVeLyF6Pa/9+c+kxsbirKnBWVODq7YWV10dnro6vA0NyMZGaGqC5mY0zc1o7HZ0djs6pxOD09k6tYPbjcnjwez14s+VTe3QBAw3Gvl3D5y6uaW6ml2/+hXm995jQk1N+/PbgoLY8POfM3fBgh4Xs9K5VPL3Ebfdzp4XX8T+5puMzcsjECjVaDg8fjwDfvITht19d7+bSbG5qoqTq1ZxasMGvHv2EJyfT3Jd3RmTp+XrdJRGRmIfOhTztGkU5eWx4IMPaBaC6v/7P+pSU7tsyUSbzcbGdeuYOmoUwwcOxH7qFI7bbmN4SwsA2WFhtNx6K7nbt5O3bx/NwGsaDc88+yxPPPFEp8bSmQqsVvKeeoqhNhsxXi8WIdjRy1cdUy6tW6d36IqtN3X19Ho8MueVV6R19GhZ0daNskYImTF0qNz1hz/06G6TvuL1eGThli1y+1NPyY3z58vMuDiZp9dLT4eujLtADvLBgKXjq1a1D6Kzxca2d5k83Z3y9LiK3jKQ6rnf/EZOEEIKkFqtVj7//PO+DknpQnR3P//O3np68s/MzJTLv/lN+dno0bKgbaRoM8itAwfKbU88Ie11db4OsVdqLC+XL9x6q7xdCOnvo2Rli4lpH/9w9lQZvXEupd5aaSlX53KTv2r2uQo2m43/N2sWb53V9/qo0UhtUBBOPz88/v54g4IgOBhNWBi6iAj0ERGYoqMxR0cTEB9PUEIC5rCwftcMdCnn69nSXc0U+159ldHf+x4eIPellxj7wx92y3G72sVuFit9i1rGsQtZrVasUvIUEAYMCg8nymTC2NyMf1MTkbW1BLjdBEt5yRuJLqBOCJq0WpoMBuxGI06zGZe/P57AQAgORoSGog0LQx8ZiTEqCnNMDP5xcQTExREYF4fWYOj6D92N0tLSSE9P7/ZkJb1evL/4BQCbLRYsfSTxQ+t3qpK+0pE6878Kl3tmKr1eWqqrqS8ooKmkhOaSEhwVFTgrKnBXVeGtqYHaWjQNDWgbGzE0N2O02/FzOvF3uQj0ermc9ZbqgQatlia9nhaDAYfJhMvPD3dgIPL01Ud4OLrwcIxRUe1XH4EDBxIYH48pJKTTv6Pe6JPvfpdb33iDbH9/xlZV9aj1dxXlcqnePl2suy6jXc3NNBQX01BYSHNpKfayMhzl5biqqvBUV0NtLaKuDm1DA7rmZowtLZgcDvxdLgI8HoKlbO9meSF2oF6jab/6cBiNOP38cAUE4A0IgJAQREhIa9NVx6uP2FgCBw4kIDq6y0f4djWbzYZ++nRSgGlGI//sgd04FeVyqGafLtZdl9F6Pz/CUlMvOZXBhUivl4ayMhqLi2ksKqKlrfJwVlTgrq5GVldDXR2a+np0TU0Ympsx2e2ENDYSUFJCkNd7yRWpPECtEDRotTTrdLQYjTjMZlx+fnhOX320NV3pIiIos9s5GBHB3Ouv7zEJ1mq1YgQeB/LcbqxWa4+JTVG6gkr+fZzQaAiMjW0dRHXWZGSXy1FfT31hYXvTVUtpKc7KStxnX300NaFvasK/sZEhZWX4XWSfm4D5L7zQY/qcWywW5pvN7U15FovF1yEpSpdSyV+5JGNQEJEjRxI5cmT7c163m9KsLMo3b6Zh505oaMBYX09UbS3xbvcZTU0VGg2lAQHUR0dzBFh19CirpMTjdPaYM2xf3WRWFF9RyV+5qOqjRynesIG6rCzcBw5gLCgg/NQpBtrtxAFxbeUagCKzmeLYWE4kJaEfOZLQqVOJmzuXqIQEotrK6Ww2Hpk/H08PPMNWPWKU/kQl/37o7JvVzVVVFG7YQPW2bTj27UOXl0dwRQVxTU2EScnpSaVdQJFeT0VYGCUjR6IZNoygSZOInj2bAePGMfwyxiuoM2xF6RlUb59+xG23s+bFF/n8mWcY6/EwBBim0RDv9Z5RrlSjoSwoiIbYWLypqfiPG0fkjBnEzZiB3u9iLfmKovia6u3Tz3ndbk5+8QWlK1bgttkIO36cwY2N3ATcBNQBh4A9wcEcmzABw+jRhE+bRtycOcRERxPj2/AVReliKvn3AdLrpTgzk8L//AfHli0EHzlCSm0tKUAKrUsyHgsMZMf48VQlJ/PM559zyO1GbzSSvmqVanpRlH5IJf9eqCInh5MffkhzRgb+hw6RXFVFvJTE07pQyTE/P/aOGIGYMoUBX/saKTfeyJgOo1Vjr3GAmponRlF6P9Xm38PVHD9O3ocf0rBhA6bcXBIqKohtm1DOA+QZjZQlJOCdMIHIG25g0C23YAwK6rJ4bDYbN86bx3UOB5uMRv6zYYOqABSlB1Ft/r1QY1kZxz/8kJovv8SwZw9xJSUkut1MbHv9hF7Pifh4jowbR9j115Ny662kRkdzdWN/r87GNWt4z25nIVBvt7Pm618n/v33GTh7djdGoSjKtVJn/j7iqK/n2McfU7VmDZrdu4kuLCTF4WgfHFWs1VI4YAD2UaMImj+flNtv9/karM7GRnYkJDCzpoangBFCcLuUaIAdcXEE/PrXjH7wQZ/GqCj9nZrYrQdx2+3kff455Z9/jtyxg8iTJxnU0sLpiZgrheBkRARNI0bgb7GQdNttRI4a5dOYz+a228kaPJi04mI+ue46Ds+bh8ViIUmn4/AjjzBuxw5CpCTX35/DN97I4ZEj1XqxiuIDKvn7SHsXy5UrcdtshB4/zuCGhvZ5buqA46Gh1A8ZgnHWLBJuvZXYqVN79IIuHqcT27BhzDxxAuvSpVg+/RSAuoICiq1WarOycO7YwaQdO9qnoP4QuNds7jFz9yhKf6Ha/LuB9Hopttko/OQTHFu2EHT0KINqas7pYpk1fjy6tDRilywhcf58JvSi6Y8bSkooGDKEmU1NNADa/fvJCQoiprGRSCnPWIS9WKslR69nn93Ox4CzB83doyjKmXpPFuoBKnNzOfHBB61dLA8eJOkKu1j2BOfrptlSXU1RRgantm3Dvm8f2uPHCSwvJ7qhgWivl9PTuQUCqXl5lAUGcig1lf0pKZjGjCF82jTi58whLiyMApuNn3ZY6KYnzd2jKMpXOiX5CyHeAL4GVEgpz2msFkII4C/AYlpPiO+TUu7qjGN3lc0bN7L9hRcYXFNDdGFhexfLSL7qYnlo8GAOdOhiOaILu1heK1dzM+tfeYV/PPYYyW43OUKgDQggrrmZGI+HVGjvNVQpBKUBAUS3TftQpNXS9O67xM2ZQ3R0NNEXOY6au0dReodOafMXQswGGoG3LpD8FwOP0Jr8pwJ/kVJOvdg+fdnmb7PZ+GzmTH7XlvzytVqK4uNxdehiGRB9sRToG9Lr5dThw5Rs3Ejdjh14DhzAXFhIZHU1A53OM9YTrgZOGgw0x8XhTkrCMHIkIZMnE2exEJyQgHX2bCybN5MxejSz9+zp0fckFEX5Sre2+UspNwkhki5SZCmtFYMEtgkhQoQQMVLK0s44fmezWq28AUwA7gDqNBoifv97ht5xh48ja2WvraVw40aqMjNx7N2L7vhxgisqiG9qIkJKItrKOYACo5GKiAgKEhI4FRHBX9et46DHQ6PRSHp6OjPPc2ZuXbgQy+bNbB4yhFm7dqnEryh9UHe1+ccBhR1+L2p7rkcmf4vFwjKjkbudTj4SgpfcbsLuvBPryy+T9vnnXTqC9jTp9VK2axdlGRk07NyJPHQIv6IiBrQtltKxmeb0LJz7hg9HDhmC3/jxDJg9m7jp00k1GM4YBHb21A42m42Na9Yw94YbSEtLI+OWW7CsX8/WxESm79vX69fm7UxqWgulL+m0rp5tZ/6fX6DZZxWwXEq5pe33dOAxKWX2WeUeBB4ESEhImJifn98psV2Njv/Rh0VFsf/665mZl8cxoxH7//4vo7773U45TmNZGYXp6dRs24Zz3z70J08SVlFBfEsLgR3KNQGFZjPVERE4k5PRjxpFWFoa8fPmtS7ReBU2p6dTft113EbrYiwdj7dp5Ei8sbFo4+IwJSUROGQIocOHEz5sGLpuvIktvV4c9fU0FBeTtWEDOTt2MHLoUAYnJeGx2/E6nWduDgdepxPpciFdLrwOR/vP0u0Gl4vq8nKqKyoIDw4mJCAAXC5wu8HtRng8aOvrCTh1irCmJmLd7jPOkEYKwQmTSXVhVXqsbu/nf4nk/wpglVK+1/b7YcBysWafntjPP+s3vyFu2TIGeDxsnjSJKWvW4BcRcU65s88QPU4nJdu2Ub5pE027diGOHCGgpISYujpiOsyl7wWKdTrKg4Npio+HYcMInDiRGIuF6IkTO7X5xdXcjDU6mgUNDbwM3A3ti7bk63QEezyEnOdvwwucEoJqo5EGf3/sISG4IyIQMTHoExLwS0khaMgQwkeMQO/vT1Pb4vEt5eU4KitxVlXhOnUKT00NsrYW6uvRNDa2rv/b0oLB4cDscGB2u/H3eAiUsn0wXE8wFcjWalm2bBlPPPGEr8NRlHP0tOR/I/BDvrrh+1cp5ZSL7a8nJn+A+qIi9lx/PbMPHuSkXk/dH/7A2EceaX/dZrPx3Jw5THe5GAqM0utJdLnoeK5cBxT6+1M7YADulBSMY8YQPn06A+fOxRwWdvYhO52ruZmdQ4aQVlzMTzQayr1e3gGygoIYl5+P1+2moaiI2iNHqN6+HUdOTvvqXvFNTYR28sDAWiGo1elo0emwG404TSZcfn54/P2RAQEQFMShkhIyc3NpkRKPEMycO5fZc+eiMRhaN6MRjcGAtsOj1mSi7tAhatevx5iTQ1xZGQlu9xnHtgPlOh21fn40BQfjiohAxsSgT0zEb/BggocPJ3LsWHLz85nfoQurOvNXeqpuveErhHgPsAARQogi4Glo7Vwipfw7sJrWxH+M1q6e93fGcX0hKD6e2QcOsPuPfyTsv/+bsT/6ERmvvsqEdesIjI3FarXyT5eL8NNvcLna3+sBDvv5UTVwIN4BA9DEx+OXkkLg0KEEJSd3yypZHRP/J7Nns3PrVqyAFhhVX48uNBQd4AcMuMh+moFGjYYmrRa7TodGSgweDyaPB5OUmKXkchuHQqTE43bj0miQQuA2mXCHhUF0NPqBAzEnJxPv9ZL+zDOUO50YjEZ+8eyzTDor+Trq6zny/vuc+vBDjNnZJJWWktx2ZdUMHAkOZm98PG8dPsxhr5cqg4GPvvyS6TNmkHiJGNNiY1UXVqVPUdM7XIOmigp2LlrErN27KdFq2fHAA3whBB//4x8keTzEaTR8c948wh0ONOXlmKqrCWxoIMzhINLr5exGHA9QqdFQbTLREBiIIzQUb3Q0moEDMaekEJCaSvjo0RypqWFzZuYVJyG33c6OIUOYXliIdelSbFOn8vYvf8mvpcQO+EdHEzloEAQFoQkJQRsaiiEyEkNEBKaoKPyio/GPiSEgJgZDQMAlj3c+jvp6Kvfto/bQIZqOHaN4504ajx5lABDa0kJAYyOhdjuRXu95z0ycQIVGQ53ZjMbrJdpuP++VSJEQHBkwAO3MmUQtXcrgW29tr1zVjVulL1Nz+3QBV3MzNceOUXf8OI0nTmAvKsJZUoJfejqTq6oA+D3wa6MCa9QGAAAgAElEQVSR+++/n29/+9sXTC5uu53K3Fxq9u+n4cgRHCdO4C0qQltejqmmhsDGRsLtdiLP8+/jBk7R2v6uEeKcSkR0eDz9s/asqRjqLlD+7Pdd7PFyXvNVJ9FPgbvV3EJKP9Sv5/a5nDM76fXSWFZG7bFj1B8/TnNBAY6iItylpVBVhba6GkNDA36NjQQ4HIS63YRISRQQdZ791QCVtDafuN1uEhISLpp0dCYTMZMmETPp4v9GzsZGqvbvpzo3l6Zjx9i9ahWn9u0jgtYEGxERQUREBIi2dNv2KDv8LrxeZu/f377PjLFj219rbGqisbGRgMBA/AMCvtpPh32d9/EaX0vaupWkDk1iZyvRavEC8W0L15xPsVZLfmwszuHDwWAAjYajR45w8NAhbKi5hRTlYvpc8rfZbDxksTDU5aJYCMrHjyfU5UJXV4epoQH/lhaCHQ5CvV4CObN742lOoFqjoUUIWoQgPyyMggEDkOHhiAED0MfEYB44kIDkZIIHDSJ08GAO7d17xg3BzprTxhAQQOzUqcRObR0Q7V2y5Mwbj599dtHkdnpGTmgbvLV2LXM6JbKrU7hpExW33EKSy8Ues5nveDyUu918X0p+LiXmtnKxZyX9SiHYf8MNDFu2jOgJE4DWgSJxZ+3faLPxYzW3kKJcUp9r9lm+fDk/fvJJruTWaQ3gArxCIIVACwR7vRjbXnfQ2gWzOjiY5qgovImJGIYNI2TcOKKnTyd00CCERtNtbcmXexyP04lt+HBm5uVhve46LF980WUxXYzNZmPjF18wfP16rt+6FX9gV2go9SkpBB08yPDm5vakX6TVUhwZiVerRXi96B0OBtXUtHc7LddoyIuJwTllClG33krqbbedM+5Atekr/Vm/bfO32Wz8l8VCkstFiEbDLfPnE67XQ309oqEBTWMj+uZm9HY7moYGTG3dMGuBFpMJER6OKzCQwqYm9hUW0gTEA+OCghjodjOgpYXws76zeqDUZKI2JAR7TAwkJ2MeMYLQCROInTED/6jzNRR1La/bzdbhw5l17BjWefOwpKd3ewzQ+u/xiMXC351Ozv5rdABHAgI4NXQoxjlzSLrrrvM2g3ndbo6vXEnphx+itdlILCxsbw5qBA6HhdEwZgxBixcz5Fvf6pHzLilKd+m3yR8u/8zPZrNdsO/2xV5rKCmhNDOTml27sB88CHl5mMvKCK2rI9bhwP+s41QKQbmfH/Xh4Tjj4tAMHkzA6NFETJ5MzJQpnd7F0+t2s3XECGYdPYrVYsGycWOn7v9KLF++nLQnn8RC6/weB4KCMM6dS8TXvkbqHXdc9VQZJdu3c/Ldd3FZrUQfPUqq3Y6G1pvhR/z8qBw6FMP8+Qz61reIGjOm8z6QovRw/Tr5X4mLVRRX03wgvV6qDh6kfNs26vfuxXnoEJqCAgIqKghvaCDW7T5jdk0PUKrVUhkYSGNkJJ6BA9EPGULQuHFETZ1K1JgxVzSy1+t2s2XUKGYfPox11iwsmzZd9nu7gs1m4/a5c9G6XFS2TSbXFU0xdQUFHH3rLRrXriUkN5ehdXXtTUkn9XoKExNhxgzi7ryT5IUL1WR1Sp+lkn8P5bbbKcvOpiori4a9e/EcO4a+qIjAU6eIampqn0P/tBagxGBovd8wYAAyMRHTiBGEjB9PzPTpBCd+NTxp6+bNlH/969xaWYl1xgzmbNrUI5KcL9rgnY2NHHn/fao+/RRzdjaDy8vbm+uqhOBYdDT2iROJuPlmhtx551WPW1CUnkYl/16qpbqa0m3bOJWVRfP+/ci8PEylpQTX1BBjt58z306tEJSaTFT4+9NUVcVi4AUhmLV5M9NnzPDNh+iBpNfLibVrKf73vxFbtzIwP5/EtqkemoHDISHUjRpFwKJFDLn3XoLi430bsKJcJZX8+6jaEycozcykds8eHAcPIvLz8SsvJ7i6mgEeDy8Bz2g0LHv2WTXx2CWU79lD3ttv49ywgcgjRxja3IyW1qa4o2Yz5YMHo587l+RvfeuS4zEUpadQyb+fudgNauXyNJSUcPSdd6hfvZqgnByG1NRwujGoUKcjf+BAvGlpxN5xByk33qjWOlB6JJX8+yHVv71zuZqbOfrRR1T+5z8YsrIYVFpKVNs9mRohOBoZSfOECYQtWcLQe+5h1/796vtXfE4lf0XpZNLrpWDjRgrfew+5eTOxJ08yyOkEWqeGzgKygVytliW/+hULf/rTbln1TVE6UslfUbpB1cGDHH/7bfLeeouk4mLGQvvochdw0mikIiYG14gRBM6cScJNNxE56pwlLxSl06jkryjd6PQ9F7fDwTCdjqdvvpnwoiL8jh0j/tSpM+YqqtBoKAgNpTElBf2kSUQtWEDSwoXdsp6D0vep5K8o3exi91yqjx4lf+VK6jdvRpObS0RxMSktLWfMH5VnNlMVF4d31CiCZs0iaelSQgcN6vbPofRuKvkrSg/nam7m5Lp1VHzxBa6dOwnIyyOhpqb9pjK0Tm1dFB5O8+DBGCZNInrhQhKvuw6twaBu8CvnpZK/ovRSlbm5FKxcScOWLegPHCCqtJRkh6N9/vVm4JjJxA6HgzXAGpNJde1V2vXrxVwUpTeLHDWKyFGjkF4vFTk5FK1Zw5aNG4nZvJmhdjt+wBi7nTHAHOAztWiNchVU8leUHqChpISTn39OzZYtyL17CSooIKGujgFSMqCtTLlGQ3ZYGA3JyZyKieHFdevY5/GoRWuUq6KSv6J0I1dzM/lffEFFejrO7GzMx48Te+oUA91uRreVaQBOBgSwf+hQ5IgRBM2YQcKNNzJg6ND2igAgVrX5K9dAtfkrSiez2Wxs3LCBCZGRhJeU0LRtG/pDh4gsLyfJbsfQVs5N2ziAqCicQ4dinjKF2IULiZs+XU0doVw11eavKD5gs9k4NmMGP5CSkA7PF2u1lISFkTl2LPoJE4icN4/E669ncFAQg30WrdKfqeSvKJ3IarUSKGX7KN8q4MA3vsHUV14hTk31oPQgvl/pQ1H6EIvFwmNmM4kaDU9oNDRqtcx+/30aQ0KwTprEiXXrfB2iogCdlPyFEIuEEIeFEMeEEI+f5/X7hBCVQog9bdsDnXFcRelp0tLSSE9P50fPPsuSLVtIsNvZ9cILHImNZUZ2NsmLFrE7NJTMH/8YZ2Ojr8NV+rFrvuErhNACR4AFQBGtkxveJaU80KHMfcAkKeUPL3e/6oav0tdU5ORw4NFHGbRxIwPdbiqFYP/kySQ//zyJ8+f7Ojylj7jcG76dceY/BTgmpcyTUjqB94GlnbBfRelTosaMwbJ+PXEtLex89lmOR0czc8cOEq+7juzwcGw//zmu5mZfh6n0E52R/OOAwg6/F7U9d7avCyFyhBAfCSEGnm9HQogHhRA7hRA7KysrOyE0Rel5NDodk375S6aVlFCVnY11/nwG1NWR9sc/UhMYiHX6dAo3bfJ1mEof1xnJX5znubPbklYCSVLKMcCXwD/PtyMp5atSyklSykmRkZGdEJqi9GzREyZg+fJLYpqbyXrmGU5ERTHLZiNuzhx2RkSw7b//W10NKF2iM5J/EdDxTD4eKOlYQEp5SkrpaPv1NWBiJxxXUfoMrcHA5KefZmppKRU7drDJYiG2tpZpv/89pwIDsc6aRdHWrb4OU+lDOiP5ZwGpQohkIYQB+AawomMBIURMh1+XAAc74biK0ifFTJ6MZeNGohob2fHUUxRERDB7yxZiZ84kKyqK7U8+idtu93WYSi93zclfSukGfgisozWpfyCl3C+E+K0QYklbsR8JIfYLIfYCPwLuu9bjKkpfpzOZmLJsGVPKyynNzGTTrFkMPHWKqcuXU+nvj3XOHEq2b/d1mEovpeb2UZRexG23k/2b36B5/XUmVlUhgeyoKPje95j41FNoDYZL7kPp27qzq6eiKN1EZzIxdflyJldWUpyRwebp00mqqmLKsmWU+flhnTePUnXSpFwGlfwVpZcaOHs2lq1bCW1owPboo5QFB2PZuJHIyZPZHhND1m9/i8fp9HWYSg+lkr+i9HJ6Pz/S/ud/mHjqFPnp6WyZOpWU8nImP/00pX5+WBcsoHzPHl+HqfQwKvkrSh+SOG8elm3bCK6vJ/MnP6EiKAjLl18SNn482+LiyF6+HK/b7eswlR5AJX9F6YMMAQFM/9OfmFBdzYm1a9k6aRKppaVMfPJJCs1mrIsWUZmb6+swFR9SyV9R+rjkhQuxZGURUFtL5g9/SI2/P5Z16wgePRrbwIHs+p//UVcD/ZBK/orSTxiDgpj+0kuMq60lb9UqMidMYGhxMRMee4wCPz+sN95I1UE1/rK/UMlfUfqhlMWLsWRn41ddzdaHHqLObMayejWBI0aQmZjInj//Gen1+jpMpQup5K8o/ZgpJIQZ/+//MbaujmOffsq2sWMZUVjIuJ/+lBNmM9alS6k+etTXYSpdQCV/RVEAGLx0KXP27MFQUcGWBx6gyWDAsmIFfkOGsDU5mb0vv6yuBvoQlfwVRTmDX0QEM197jdENDRz56CO2jx7NqJMnGfvII+SZzWTceiu1J074OkzlGqnkryjKBQ35+teZk5ODrryczffdR4tez5z//AdjSgpbBg1i3yuvqKuBXkolf0VRLsk/KopZb77JqMZGDr//PlkjRjAmL4/RDz3EMT8/Mm6/nbr8fGw2G8uXL8dms/k03p4SR0+mZvVUFOWqNJaVseuxx4j4+GNGNDfTDHwgBJukRKfVsvC664gMDwevF+nxgNfb+rPXCx5P69b23Hm3jq9Liej4mpQIj+er5zs8OlpaOFFWxq+FoNZoJD09nbS0NF9/Xd3mcmf11HVHMIqi9D0B0dHMfusteOstDr7zDod+9jNuq6xsXazD44F1665qv96zNgDTFbzfTesi4v5SUuF0YrVa+1Xyv1wq+SuKcs2Gf/Ob1A4aRNK8eQQ7nWj1el763/9l7PjxaHQ6hFaLRqdDazC0/3x6ExoNdSdPUpmdTX1uLs7Dh9Hk5+NXXk54fT0xLtc5xyvVaKj096chPBxXfDzawYMJGD2ayClTOOFysfDGG3E6nRgMBiwWS/d/Ib2ASv6KonSKtLQ0Vm7YgNVqxWKxnHG23VBSQmlmJjW7dmE/eBBOnsRUVkZobS0xdjsDgAEd9nVKCMrNZsqiosiPjUUzaBB+I0cSNnEisWlpxISEEHNOBK3igfT09PPGoXxFtfkrinLN7LW1lNhsVGdn07x/P97jxzGWlhJcXc2AlhbCz8ozDUCpyURNcDD26GhITsY0fDihEyYQPW0aQfHxvvkgfYBq81cUpdO47XbKdu6kcscOGvftw3PsGPqiIgJPnSKyqYkYr5cUIKWtvAMo0es5FRTE/sREvImJGIYNI2TcOAZMm0ZYaipDNKqzoS+p5K8oCl63m4qcHCqzsqjfuxfXkSNoCwoIqKwkorGRGLebeFqbVAA8QKlWS1VAAMdSUjg8cCC6IUMIGjOGyClTGDBuHMk6Hck+/EzKxankryj9xMZPP2XHu+8yWKcjvL4eTX4+5tM3VZ1OooHoDuUrNBrK/fwoiIvjeFwc2sGD8R81iojJk4mZMoV4Pz9U40zvpZK/ovRRjWVlHHr9dRpXrCAiJ4c5DgdzO7xeIwRlJhMVEREUxMQgUlLab6rGTJtGVEQEUT6LXulqKvkrSh/hqK/n4JtvUvvJJ4Tt3s3whgYmAU5gt9HIMmAPUKDR8PWf/5wnf/97Qn0bsuJDKvkrSi/ltts59O67VH3wAYE7dzKiuppxtLbHH/L3Z+u0aQQuXcrwBx7Ae/QoL8yf3973fe4tt/g6fMXHOiX5CyEWAX8BtMDrUsrfnfW6EXgLmAicAu6UUp7sjGMrSn/hdbs59umnlL77LiabjWHl5Yxqe+2IycSOceMwLV7MsAcfZGRi4hnvTYuIUH3flTNccz9/IYQWOAIsAIqALOAuKeWBDmV+AIyRUj4khPgGcIuU8s6L7Vf181f6O+n1kp+eTsH//R/6TZtILS4mou3/60m9noJBg9AtWkTqAw8QOXKkj6NVeoru7Oc/BTgmpcxrO/D7wFLgQIcyS4Fn2n7+CHhZCCFkTx1hpig+UrJ9O3mvvw4bNpCSn0+Sx0MSrdMZHEpOhnnzSP7Od0hKSyPJx7EqvVtnJP84oLDD70XA1AuVkVK6hRB1QDhQ1QnHV5Req3L/fo6+/jrudetIOHaMJJeLWKBKCI7GxXFs1iwG3nsvSQsWEKMGRSmdqDOSvzjPc2ef0V9OGYQQDwIPAiQkJFx7ZIrSA9hstva29hFxcRx65RXsq1cTc+gQQ+x2IoF64FBUFPnTpxNzzz0Mvvlm0nSqP4bSdTrjr6sIGNjh93ig5AJlioQQOiAYqD57R1LKV4FXobXNvxNiUxSf2rZ5M8/On88slwsNEEDrZXELcCAsDOvs2UTccQfD7rmHKaYrmbhYUa5NZyT/LCBVCJEMFAPfAO4+q8wK4F7ABtwGbFDt/Up/sGXDBv7jciGA7cC7iYmM+elPGX7//UwMCvJ1eEo/ds2NiFJKN/BDYB1wEPhASrlfCPFbIcSStmL/AMKFEMeAnwGPX+txFaU3mHH99ViAUOB6s5nU995j3I9/jFElfsXH1JTOitLF5syZw4EDB1ixYoXqX690ucvt6qm6DyhKF5s9ezY1NTVMmDDB16EoSjuV/BWli40cORKPx8ORI0d8HYqitFPJX1G62IgRIwDYv3+/jyNRlK+o5K8oXWzo0KFoNBoOHDhw6cKK0k1U8ld6DZvNxvLly7HZbL4O5YoYjUYGDx6szvyVHkUNIVR6hVdffZUf/OAHeDwedDodDzzwACNGjMDPzw9/f//zPnb8Wa/Xn7G/jqNuu6MHzsiRI9WZv9KjqOSv9Hg2m6098QO43W7+/ve/X9E+9Hp9e2UghKCkpAQhBEajkfT09C6vAIKDgzl8+DAZGRnMmTOnS4+lKJdDJX+lx7Nare2J/7TJkydz/fXXM3nyZAYPHozdbqe5uZmmpiaam5vP+Pns57KysiguLkZKidPpxGq1dlnyd7lcvPbaa7z11ltIKVm0aBEbNmxQ/f0Vn1PJX+nxLBYLZrMZh8OBEIJp06ZRVlbGc889B7SeVc+ePRuLxcKcOXMYN24cWq32gvuz2WzM77CqlcVi6dR4S0pKWLt2LWvWrGH9+vXU19e3v+Zyubq0slGUy6WSv9LjpaWlnXcVqqKiIjIyMrBarVitVlauXAm0VgazZs1izpw5WCwWxo0bh67DDJkX2t/VcrvdbN++ndWrV7N69Wr27NkDQFxcHHfccQeDBg3it7/9bZdVNopyNdT0DkqfUVxc3F4ZZGRktA+qCgoKOqMyGD9+/BmVwZXKyMjgww8/JDQ0lKNHj7Ju3Tpqa2vRarXMmDGDG264gcWLFzN69GiEaJ3NvLtvMCv91+VO76CSv9JnlZSUkJGR0V4hHD58GIDAwEBmzpyJxWLBYrEwYcIEdDrdOQlaSklJSQk5OTns3r2bf/zjH+Tl5Z1znKSkJJ5//nluuOEGQkJCuvtjKsoZVPJXlLOUlpayadOm9maiQ4cOARAQEMDIkSPZtWsXbrcbrVbL6NGj2b179yX3qdVq8Xg8hIaGsnjxYpYsWcKiRYsIUrN2Kj6ikr+iXEJZWVl7ZfDRRx9RWVl5wbJLlizh7rvvJiQkhFtuuaW9/f7zzz+nrq6OFStW8Pnnn1NVVYVer2fu3LksWbKEm266Sa1Kp3QrlfwV5TJUV1ezfv16/vnPf7J27dr250eOHMkdd9zB4sWLmTBhApoO6+deqP3e4/Fgs9lYsWIFK1asaG9mGj9+PEuWLGHJkiWMHz++/T6AonQFlfwV5Ty8Xi979uxh9erVrFmzhm3btuH1egkPD2fixImEhIRw3333ccMNN1zzsQ4fPtxeEWRmZuL1eomPj2+vCCwWC0ajsRM+laJ8RSV/pV/reHY+fPhwvvjiC1avXs3atWspKysDWgeKne6ZM2nSpIuODbhWlZWVrFq1ihUrVrBu3Tqam5sJDAxk0aJFLFmyhMWLFxMWFtZlx1f6D5X8lX7r9CAuu93e3sTi9XoJDQ1l4cKFLF68mIULFxIVFeWT+Ox2O+np6axYsYKVK1dSWlqKVqtl5syZLF26lCVLljBo0CCfxKb0fir5K/3W8uXL+eUvf8npv22LxcJzzz3HlClTrql/f1fwer1kZ2fz2WefsWLFCvbt2we0rgFwuiKYMmXKGfccFOViVPJX+i2bzca8efOw2+3o9XoyMjJ6zcCqEydOtN8nyMjIwOPxMGDAAL72ta+xdOlS5s+fj5+fn6/DVHowlfyVfs1ms3H77bcTGBjIwYMHfR3OVampqWHt2rV89tlnrFmzhvr6esxmMwsWLGDJkiVER0eTk5OjRg0rZ1DJX+n3XnzxRX7xi19w/PhxUlJSfB3ONXE6nWzatIkVK1bw2WefUVBQcMbr8fHxREZGEhAQcE2bv7//JW98q6kqejaV/JV+Lz8/n6SkJF544QUee+wxX4fTaaSU/PjHP+bll19GSokQgtGjR5OYmEhjY+M5W0NDA263+7L3bzabz6kQTv/c0tJCeno6Xq+329ZCUK6MSv6KAkydOhWPx0Nf+1s6e1rqSyVhp9N53orhSreioiJqamqA1qktli1bxhNPPNFdH1u5DJeb/HtW1wdF6WR33HEHjz76KMePH+9T3SevdFpqg8FAWFjYNY8lsNlszJ49G7fbraan7uWuqf+YECJMCPGFEOJo22PoBcp5hBB72rYV13JMRbkSt912GwAffvihjyPpfGlpaTzxxBPd2uySlpbGa6+9BsD3v/991eTTi11Ts48Q4vdAtZTyd0KIx4FQKeV/n6dco5Qy4Er2rZp9lM4ybdo0XC4X2dnZvg6lzxg/fjxarbbPNaf1BZfb7HOtI0eWAv9s+/mfwM3XuD9F6XR33HEHu3bt4tixY74Opc/4zne+Q3Z2Nj/+8Y+x2Wy+Dke5Ctea/AdIKUsB2h4vNF7eJITYKYTYJoS4YAUhhHiwrdzOi02vqyhX4nTTz8MPP6wSVSdJTU0F4K9//Stz587lyy+/9HFEypW65A1fIcSXQPR5XvrlFRwnQUpZIoRIATYIIfZJKY+fXUhK+SrwKrQ2+1zB/hXlgoqLi9FoNKxfv56MjAw2btyo2qqv0e7duxFCIKXE4XCwYMECEhMTGTVq1BnbsGHDMJlMvg5XOY9LJn8p5XUXek0IUS6EiJFSlgohYoCKC+yjpO0xTwhhBcYD5yR/RekKVqu1/WeHw8GLL77Ixx9/7LuA+gCLxYLJZMLpdKLVarn//vupr68nNzeX9evX43K5ANBoNKSmpp5TKQwePLjHzbPU31zrt78CuBf4XdvjZ2cXaOsB1CyldAghIoAZwO+v8biKctlOz5vvdDqRUvLJJ5/w/e9/n7/85S8YDAZfh9crXayrqcvl4ujRo+Tm5rZvOTk5fPLJJ+2T7RkMBoYPH35OpZCQkKAmsesm19rbJxz4AEgACoDbpZTVQohJwENSygeEENOBVwAvrfcY/iyl/Mel9q16+yid6fSUBLNmzWLVqlX87ne/Y/r06Xz00UfExMT4Orx+obm5mUOHDp1RKeTm5lJYWNhe5vR6ymdXCgMGDFAroF0mNcJXUS7iww8/5P777ycoKIiPPvqI6dOn+zqkfquuro79+/efUSHs27ePqqqq9jLh4eGMHj36jAph5MiRhISE+DDynkklf0W5hNzcXG6++WYKCgp46aWXePDBB9XZZQ9SUVFxzlVCbm4uDQ0N7WXi4+PPuUoYPnx4v572WiV/RbkMNTU13HPPPaxZs4YHHniAl19+Wa2r24NJKSksLGTfvn1nVAgHDx7E4XAAIIRg0KBB51QKQ4YMQa/X+/gTdD2V/JUepbunAd64cSNr1qzhlltuueTxPB4PTz/9NM899xxTp07l448/Ji4urstjVDqP2+3m+PHj51wlHD16FI/HA4Ber2fo0KHnVArJycl96iazSv5Kj2Gz2ZgzZw4ulwshBAkJCYSFhWE2m/Hz87usx8stazAY2LZtW/vkY0IIHnzwQX7xi19ccmK3Tz75hHvvvRd/f3+efvppamtr1Zz1vZzdbufw4cPnVAonT55sL+Pn58eIESPOqRRiY2N7ZTOgSv5Kj7F8+XKeeuopvF4vQPvgoAs5/R/uav42hRDodLr2fubnk5aWxpAhQ85beZw4cYK//vWv7fsymUxqzvo+qKGhgQMHDpxTKZSVlbWXCQkJaa8ITt9sHjlyJOHh4T16QRuV/JUe4+y551evXk1gYCB79+4lJyeHnJwc9u7dS3V1dft7EhISGDp0KKmpqe1bbGwsTqeTlpYWmpubL/h4/P+3d+fBUdZ5HsffXzunMJEMQgLhCMuiSJwAC7LGCBOuAiOGI2HEBRwmtYMjoK7l1joUbNVYhcU67kytWzi1WniPHEWC3YwEOUKiBYkzUQ4FEphBjglHABGUw5zf/aM7bUI6Fzm6Q39fVV3p40n3p9N5vr/n+fXz/H5Hj7Jhwwbv7n5z/+O33Xabt2G6kY1ZH1wuXLjg88ijy5cve5fp2bOnd06DQJzQxsbzNwGjsROCRo0a5V1GVTl9+nSDBmHnzp3eIh4ZGcm9995LYmIiw4cPJzExkcTERKKjG44k/tRTT9V7ve3bt/Pcc8/x5ZdfAj8UfBFh3LhxzJw5k9TUVG6//XZ2797N448/TmVlpY1ZH2TuvPNOkpOTiYmJISYmhtjYWGJiYti5c6e34H/99dfe5SsqKsjPzw+o4t9StuVvAtr3339PcXGxt1HYv38/+/fvr7cC9u/fv0GDMGTIkAbDB1RXV/PWW2+xfPlyysrKGDlyJCNGjKCgoIDDhw/jcDiYNGkSjz76KHFxcXz++ecBuVsfzNqzu6Wmpobjx49z4MCBelv7JSUlVChmc/wAABCuSURBVFRUAA2PHEpISKCqqoqFCxe2eBa1zmbdPuaWpaqcPXu2wV5CSUmJd67aiIgIEhISGjQKPXv25LvvvuOll17id7/7HQDPPvssqamp5OTksG7dOo4dO0ZoaChTp07l0UcfJS0tjR/96Ef+fMsG2L17NxMmTKCqqoqQkBBeeOEFfvKTnxAWFkZ4eDhhYWE+L/v37yc/P5/Y2Fhqamq8Rf7QoUNcu3bN+/wDBgzwFvi6A9P5OmfA+vw7kBV/01rl5eWUlJQ02EuoOzx4XFyct0Ho0aMH69evZ+/evfTu3ZsVK1YwdOhQ1q1bx8WLF9m1axelpaVERETw8MMPM2fOHG/XkOl8y5cv58UXX2zz88TGxjYo8sOGDSMqKqodUvqfFX9jPMrKyhrsJRQXF/s8IkhEEBHCw8PZvn07qsr69evZsGEDZWVldOvWjbS0NObMmcOUKVPYs2dPp28BBvJWZ0cqLCxkwoQJ3pO5amtXSEgI48aNIy0tjUGDBlFRUeG9uFwuXC4Xqsptt93G0qVLWbFihT/fRoez4m9MEyoqKjh8+HC9vYSCggKuXLkCNDzKp7q6mo8//pj169eTnZ3N119/Tbdu3fj++++pqanB4XAwZ84c+vbt6y1Kquq93Hj7ZpcpKysjJyeHmpqaoDwMtW7D16dPHzZu3Eh2djYFBQUAJCQkkJGRQUZGBgkJCXz66af1jjQLhr+XFX9jWql2y7L2KJ/GCkVlZSW5ubksW7aMPXv2eO93OByEhIR49x5qz1eoe9vXfS1Zpva+K1eueMe2scNQf3Dq1ClvQ/DJJ5+gqtx1111kZGQwZMgQTp8+zfjx42/5wg9W/I25Ka3pUrnx/IXO2Kqse7Z0REQEO3fuDIqC1hpnz57F6XSSnZ1NXl4e1dXVDBo0yLtHcN9993XJM3dbyoq/MZ3AH/3vL774IsuXL+e9995j3rx5nfKaXdWFCxdwuVxkZ2ezY8cOKisr6d+/P+np6WRkZJCUlHRLjesDVvyNuWVt3bqVqVOnsnv3bpuHoBW++eYb/vSnP5GVlcW2bdsoLy+nT58+zJo1i4yMDMaOHYvD4fB3zDZrafG/tZo8Y4JA7SGJ3377rZ+TdC3R0dE8/vjjbNq0iXPnzrFmzRoeeOAB3nzzTcaPH0+fPn144okn6s1BfCuz4m9MF2PFv+2ioqJ47LHHyMrK4vz582zYsIGJEyeyZs0apkyZQkxMDJmZmWzevNl7aOmtxoq/MV2MFf/21a1bNzIyMli7di3nzp3D6XQybdo0srOzmTZtGr1792b+/Pm4XC6uX7/u77jtxoq/MV2MFf+OExkZyfTp03n33Xc5d+4cmzdvJj09nZycHGbMmEGvXr2YM2cOGzZs4OrVq/6O2yZW/I3pYrp37w5Y8e9o4eHhpKam8uabb3L27Fm2bdvG3Llz2blzJz/72c/o1asX6enprFmzpkt+Flb8jeliHA4H3bt375IFp6sKDQ1l8uTJvPbaa5w5c4a8vDwyMzMpLCxk7ty59OrVi7S0NN555x3v0M+Bzoq/MV1QREQE+fn53mENbgWFhYWsXLmSwsJCf0dpksPhICUlhVWrVlFaWsquXbtYtGgR+/btY8GCBfTu3ZuHHnqI1atXc+HCBX/HbZQd529MF1NYWEhycrJ37J8BAwYwdOhQ4uPjiY+PZ+DAgd7rsbGxXeIkpsLCQsaOHUt1dTUiwujRo4mPjyc6Opro6Gh69OhR7+eN9904d4M/qCpFRUVkZWWRnZ3NV1995W0o0tPTmTlzJrGxsR2eo1NO8hKR2cBvgHuAMarqs1qLyFTgFcABrFbV/2ruua34G+Nb3TmRRYSEhAQiIyM5fvx4veGrAcLCwhgwYECDRmHgwIGcP3+evXv3kpKSwrhx47zjEnU0X2dFr1y5kmXLljWYcrNbt25UVlZ6J1dpTPfu3VvUUPh6PDIyst3ft6qyb98+srKyyMrK4siRI4gIDz74IBkZGcyaNYt+/fq162vW6qzifw9QA7wG/Luv4i8iDuAIMBkoBYqAx1T1UFPPbcXfGN+aGlPo6tWrnDx5kuPHj3P8+HFOnDhR73rdCcpvJCLeiVFqJ0fxdb2px5q7fuLECVasWEFVVVW9+W/rvieHw8HgwYMpLi6me/fuzJ8/n8zMTPr27cs333zDpUuX6v1s7r7agfAaExYW1mTj0FTjcccddzS7Z6WqHDx40NsQHDx4EHBPb5qenk56ejrx8fGt+ydoQqcO7yAi+TRe/JOA36jqFM/tpQCqurKp57Tib0zjbnZMoevXr3Py5Eleeukl3n77bVQVEWHixIncf//9lJeXU1FRQXl5eYPrTT124/XaGdWak5SUxIoVKxg7diyfffZZvfdUVFTEq6++yrp16ygvLyclJYUlS5Ywffr0VnXzVFVVcfny5UYbh+Yaj9o5pH0REe64445WNR5lZWXk5uaSm5vLoUPubeDRo0d7G4ILFy60abyoQCr+GcBUVf1Xz+35wD+r6pKmntOKvzEdp6NHJK2urvY2CHUbhr/85S9kZmZ6h08ICQmhoqKCHj16MG3aNGbMmMGUKVO8h7OCe3C2N954gz/84Q+cPHmSuLg4fvWrX/HLX/6SmJiYdsvsi6py9erVVjcYtdfrThPZUnUnFLqZz6Xdir+I7AB8fUuxTFVdnmXyabz4zwam3FD8x6jqUz6WXQgsBBgwYMCoEydONJffGHOT/DUjWN3XTUxMZNu2bTidTj788EMuXrxIeHg4kydPZvr06TzyyCPeAl9dXc3mzZtZtWoV27dvJzQ0lNmzZ7N48WKSkpICcpjm8vJy715HSxqMkpISTp8+Ddz8fA0tLf4NZg66mQuQD4xu5LEkYGud20uBpc0956hRo9QYEzwqKys1Ly9Pn3nmGR04cKACKiKanJysL7/8sh45csS7bElJiT799NMaFRWlgI4cOVJXr16tV69e9eM7aLuCggKNjIxUh8OhkZGRWlBQ0OrnAD7TFtTtzuj2CcH9he9E4BTuL3z/RVUPNvWc1u1jTPBSVb744gucTidOp5N9+/YBMGzYMGbMmMH06dMZPXo0165d4/3332fVqlUcOHCA6OhoMjMzefLJJxk8eLCf38XNaeseWads+QMzcR/BUw6U4dnCB/oCOXWWS8XdABzF3V3U7HPblr8xptaxY8f0lVde0fHjx6vD4VBA+/btq08++aRu3bpVy8vL9eOPP9bZs2erw+FQEdHU1FTNycnR6upqf8fvVHTmln9HsC1/Y4wvFy9eZPPmzTidTj766COuXbtGVFQUqampzJgxg+HDh7N27Vpef/11zp49y+DBg1m0aBG/+MUviI6O9nf8DmczeRljbnnXr19nx44duFwuNm3axPnz5wkNDWXChAmkpqZSXV3Nxo0b2bVrF5GRkcydO5fFixczYsQIf0fvMFb8jTFBpbq6msLCQlwuFx988AFHjx4FYMyYMQwaNIhTp06xZ88erl27RnJyMosXLyY9PZ2wsDA/J29fVvyNMUFLVTl06BBOpxOXy0VRUREAvXr14vLly97hImJiYli4cCFPPPEEcXFx/ozcbqz4G2OMR2lpKZs2bcLpdJKXl9fgDGSHw8HMmTNZsmQJ48aNC8hzBlrKir8xxvhw6dIltmzZgtPpZMuWLQ3G/klISGDJkiXMmzev3pnGXYUVf2OMaUZ5eTl5eXne7qG6A99FRUWxYMECFi1axN133+3HlK1jxd8YY1qhpqaGoqIi74llJSUl3scmT57MpEmTqKysZMKECZ06HEZrWfE3xpg2KCkpweVy4XK56s0uFhkZ2e4D4bWnlhb/wJ/ixxhj/GDo0KE8//zzFBQUsHTpUu+XwBUVFeTn5/s3XDuw4m+MMc145JFHiIiIwOFwEBYWRkpKir8jtZn/J740xpgAl5SURG5url+GwO4oVvyNMaYFkpKSbomiX8u6fYwxJghZ8TfGmCBkxd8YY4KQFX9jjAlCVvyNMSYIWfE3xpggFLDDO4jIeeCEHyPcCVzw4+s3x/LdvEDOBpavrQI5X2dkG6iqvZpbKGCLv7+JyGctGR/DXyzfzQvkbGD52iqQ8wVSNuv2McaYIGTF3xhjgpAV/8a97u8AzbB8Ny+Qs4Hla6tAzhcw2azP3xhjgpBt+RtjTBCy4u8hIi+LSImIfCEiH4hIj0aWmyoih0XkbyLy607MN1tEDopIjYg0erSAiDzrWe6AiKwVkYgAy9dDRLI8f+tiEenwYRJbms2zrENE9orIhx2dqzX5RKS/iOR5/mYHReSZQMrnWc5f68aPRWS7iPzV8zO6keV+63kfxSLyv1I7O0tgZBsgIts82Q6JSHxHZ7Pi/4PtwL2qmggcAZbeuICIOIBXgYeAYcBjIjKsk/IdAGYBnzS2gIjEAU8Do1X1XsABzOmceM3n83gF+EhVhwLDgeKODkbLswE8Q+dkqqsl+aqA51T1HuB+YHGA/e/5c934NZCrqkOAXM/tG/M9ACQDicC9wH3ATwMhm8e7wMuez3cMcK6jg1nx91DVbapa5bn5KdDPx2JjgL+p6leqWgGsA6Z3Ur5iVT3cgkVDgEgRCQFuB053bDK3luQTkShgHPCG53cqVPVSIGTz5OsHPAys7uhMdbUkn6qeUdU9nuvf4W6g4gIlH35cNzyv847n+jvADB/LKBABhAHhQChQFgjZPI1kiKpuB1DVK6p6raODWfH3LRPY4uP+OODvdW6X0kkrYEuo6ingv4GTwBngsqpu82+qev4BOA+85elaWS0i3fwdqo7/Af4DqPF3kKZ4ugRGAn/2b5J6/LluxKjqGXA3kkDvGxdQ1UIgD/d6cQbYqqqdsYfXbDbgLuCSiGz0rBcve/akOlRQzeQlIjuAWB8PLVNVl2eZZbh3sd/39RQ+7mu3w6Vakq+Z34/GvaUxCLgEbBCRear6x0DIh/v/7Z+Ap1T1zyLyCu7d4P/0dzYRmQacU9XPRSSlrXnaO1+d5+kOZAP/pqrfBlA+v60bLfz9fwTu4Yc9+u0iMk5VW9IV2KHZcK8XY3E36CeB9cACPHvIHSWoir+qTmrqcRH5OTANmKi+j4EtBfrXud2PduxWaS5fC0wCjqnqeQAR2Qg8ALRL8W+HfKVAqarWbrFm0XgfaKu0Q7ZkIE1EUnF3D0SJyB9VdV7b07VLPkQkFHfhf19VN7Y91Q/a6bP1y7ohImUi0kdVz4hIH3z3l88EPlXVK57f2YL7u5M2F/92yFYK7FXVrzy/4/Rk69Dib90+HiIyFXgeSGuiv60IGCIig0QkDPeXqZs6K2MLnATuF5HbPUcyTKTzv7xslKqeBf4uInd77poIHPJjJC9VXaqq/VQ1HvfnurO9Cn978HyebwDFqvp7f+fxwZ/rxibg557rPwd87amcBH4qIiGeRvSndM660ZJsRUC0iNQOxjaBzlgvVNUu7o38v+Hus9znufyf5/6+QE6d5VJxHw10FPcucWflm4l7C6Ec9xdVWxvJ9wJQgvsIjfeA8ADLNwL4DPgCcALRgZKtzvIpwIeB9NkCD+LuRvmizv9oaqDk89z217rRE/eRNH/1/Pyx5/7RwGrPdQfwGu6Cfwj4faBk89ye7PlsvwTeBsI6Opud4WuMMUHIun2MMSYIWfE3xpggZMXfGGOCkBV/Y4wJQlb8jTEmCFnxN8aYIGTF3xhjgpAVf2OMCUL/Dxcx6mFpRmnnAAAAAElFTkSuQmCC\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -440,7 +308,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 16, "metadata": {}, "outputs": [], "source": [ @@ -465,7 +333,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 17, "metadata": {}, "outputs": [], "source": [ @@ -477,7 +345,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 18, "metadata": { "scrolled": true }, @@ -498,7 +366,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 19, "metadata": {}, "outputs": [], "source": [ @@ -508,12 +376,12 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 20, "metadata": {}, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -533,7 +401,18 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 21, + "metadata": {}, + "outputs": [], + "source": [ + "# debug logging to test that the engine is working\n", + "import logging.config\n", + "logging.config.fileConfig(\"./engine_debug.conf\", disable_existing_loggers=False)" + ] + }, + { + "cell_type": "code", + "execution_count": 22, "metadata": {}, "outputs": [], "source": [ @@ -546,7 +425,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 23, "metadata": {}, "outputs": [ { @@ -555,7 +434,7 @@ "True" ] }, - "execution_count": 24, + "execution_count": 23, "metadata": {}, "output_type": "execute_result" } @@ -568,12 +447,12 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 24, "metadata": {}, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -585,7 +464,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "DONE! Completed 7 Monte Carlo cycles.\n" + "DONE! Completed 4 Monte Carlo cycles.\n" ] } ], @@ -597,14 +476,14 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 25, "metadata": { "scrolled": true }, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -616,7 +495,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "DONE! Completed 17 Monte Carlo cycles.\n" + "DONE! Completed 14 Monte Carlo cycles.\n" ] } ], @@ -636,7 +515,7 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 26, "metadata": {}, "outputs": [], "source": [ @@ -667,7 +546,49 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.2" + "version": "3.7.3" + }, + "toc": { + "base_numbering": 1, + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": true, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": true + }, + "varInspector": { + "cols": { + "lenName": 16, + "lenType": 16, + "lenVar": 40 + }, + "kernels_config": { + "python": { + "delete_cmd_postfix": "", + "delete_cmd_prefix": "del ", + "library": "var_list.py", + "varRefreshCmd": "print(var_dic_list())" + }, + "r": { + "delete_cmd_postfix": ") ", + "delete_cmd_prefix": "rm(", + "library": "var_list.r", + "varRefreshCmd": "cat(var_dic_list()) " + } + }, + "types_to_exclude": [ + "module", + "function", + "builtin_function_or_method", + "instance", + "_Feature" + ], + "window_display": false } }, "nbformat": 4, diff --git a/openpathsampling/engines/gromacs/engine.py b/openpathsampling/engines/gromacs/engine.py index 8d00c3e68..ea0902a15 100644 --- a/openpathsampling/engines/gromacs/engine.py +++ b/openpathsampling/engines/gromacs/engine.py @@ -85,8 +85,6 @@ class GromacsEngine(ExternalEngine): .mdp file top : string .top file - base_dir : string - root directory where all files will be found (defaults to pwd) options : dict Dictionary of option name to value. Gromacs-specific option names are @@ -104,6 +102,11 @@ class GromacsEngine(ExternalEngine): -e self.edr_file -g self.log_file``, where the ``topol.top`` is generated by :meth:`.prepare`, and the other filenames are set by :meth:`.set_filenames`. Default is the empty string. + + base_dir : string + root directory where all files will be found (defaults to pwd) + prefix : string + prefix within ``base_dir`` for output folders (defaults to gmx) """ _default_options = dict(ExternalEngine._default_options, **{ @@ -112,6 +115,13 @@ class GromacsEngine(ExternalEngine): 'mdrun_args': "" } ) + GROMPP_CMD = ("{gmx_executable}grompp -c {e.gro} " + + "-f {e.mdp} -p {e.top} -t {e.input_file} " + + "{grompp_args}") + MDRUN_CMD = ("{gmx_executable}mdrun -s topol.tpr " + + "-o {e.output_file} -e {e.edr_file} -g {e.log_file} " + + "{mdrun_args}") + # use these as CMD.format(e=engine, **engine.options) def __init__(self, gro, mdp, top, options, base_dir="", prefix="gmx"): self.base_dir = base_dir self.gro = os.path.join(base_dir, gro) From 69782cb60386fd29daf57bd59b7a5d2304bfecac Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Fri, 13 Mar 2020 12:26:59 +0100 Subject: [PATCH 335/464] sql backend for storable functions --- .../experimental/storage/callable_codec.py | 17 +++++ .../storage/serialization_helpers.py | 18 +++++ .../experimental/storage/sql_backend.py | 65 +++++++++++++++++++ 3 files changed, 100 insertions(+) diff --git a/openpathsampling/experimental/storage/callable_codec.py b/openpathsampling/experimental/storage/callable_codec.py index 8baffe470..7a5eb9c08 100644 --- a/openpathsampling/experimental/storage/callable_codec.py +++ b/openpathsampling/experimental/storage/callable_codec.py @@ -24,6 +24,23 @@ """ class CallableCodec(object): + """JSON codec for callables. + + Parameters + ---------- + settings : Dict + Dictionary with settings for how the codec should behave. Entries + are: + + * ``'safemode'`` (bool): If True, this codec will not deserialize + functions. Use this when working with untrusted data. + * ``'required_modules'`` (List[str]): names of modules that can be + expected to be present in the user's environment. + * ``'only_allow_required_modules'`` (bool): If True, forbid + serialization of any callable that requires importing a module + that isn't in the ``'required_modules'`` list. + + """ def __init__(self, settings=None): defaults = { 'only_allow_required_modules': False, diff --git a/openpathsampling/experimental/storage/serialization_helpers.py b/openpathsampling/experimental/storage/serialization_helpers.py index dad410397..a2e7b4df6 100644 --- a/openpathsampling/experimental/storage/serialization_helpers.py +++ b/openpathsampling/experimental/storage/serialization_helpers.py @@ -91,6 +91,24 @@ def unique_objects(object_list): # or is_storage_iterable(obj)) def default_find_uuids(obj, cache_list): + """Default method for finding new UUIDs in an object. Recursive. + + Parameters + ---------- + obj : Any + the object to query for UUIDs + cache_list : List[Mapping] + caches that may contain existing UUIDs + + Returns + ------- + uuids : Dict[UUID, Any] + mapping of UUID to object for any UUID-containing objects found + new_objects : List[Any] + Non-UUID container objects (iterables, mappings) that may contain + futher UUIDs. Includes the dict from ``obj.to_dict()`` if ``obj`` + has a UUID. + """ uuids = {} new_objects = [] obj_uuid = get_uuid(obj) if has_uuid(obj) else None diff --git a/openpathsampling/experimental/storage/sql_backend.py b/openpathsampling/experimental/storage/sql_backend.py index 34e5aaeec..6b84571aa 100644 --- a/openpathsampling/experimental/storage/sql_backend.py +++ b/openpathsampling/experimental/storage/sql_backend.py @@ -247,6 +247,71 @@ def register_schema(self, schema, table_to_class, self.metadata.create_all(self.engine) self.schema.update(schema) + def register_storable_function(self, table_name, result_type): + """ + Parameters + ---------- + table_name : Str + the name for this table; typically the UUID of the storable + function + result_type : Str + string name of the result type; must match one of the keys of + ``sql_type`` + """ + columns = [sql.Column('uuid', sql.String), + sql.Column('value', sql_type[result_type])] + try: + table = sql.Table(table_name, self.metadata, *columns) + except sql.exc.InvalidRequestError: + raise TypeError("Schema registration problem. Your schema " + "may already have tables of the same names.") + + self.metadata.create_all(self.engine) + # TODO : do we need to do anything else for this? + + def add_storable_function_results(self, table_name, result_dict): + """ + Parameters + ---------- + table_name : Str + name of table for this storable function (typically the UUID) + result_dict : Mapping[Str, Any] + mapping from UUID to result + """ + results = [{'uuid': uuid, 'value': value} + for uuid, value in result_dict.items()] + table = self.metadata.tables[table_name] + with self.engine.connect() as conn: + conn.execute(table.insert(), results) + + def load_storable_function_results(self, table_name, uuids): + """ + Parameters + ---------- + table_name : Str + name of table for this storable function (typically the UUID) + uuids : List[Str] + list of UUIDs to load the results for + + Returns + ------- + Dict[Str, Any] : + mapping of UUID to associated value + """ + table = self.metadata.tables[table_name] + results = [] + for uuid_block in tools.block(uuids, self.max_query_size): + # logger + uuid_sel = table.select().where(table.c.uuid.in_(uuid_block)) + with self.engine.connect() as conn: + res = list(conn.execute(uuid_sel)) + results += res + + logger.debug("Found {} UUIDs".format(len(results))) + result_dict = {uuid: value for uuid, value in results} + return result_dict + + def add_to_table(self, table_name, objects): """Add a list of objects of a given class From a535c34de98051428b03cc27889bb9439428b2e2 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Fri, 13 Mar 2020 13:06:22 +0100 Subject: [PATCH 336/464] Unformatted gmx cmds are class vars; improve tests --- openpathsampling/engines/gromacs/engine.py | 19 +++++-------------- openpathsampling/tests/test_gromacs_engine.py | 3 ++- 2 files changed, 7 insertions(+), 15 deletions(-) diff --git a/openpathsampling/engines/gromacs/engine.py b/openpathsampling/engines/gromacs/engine.py index ea0902a15..e335407e9 100644 --- a/openpathsampling/engines/gromacs/engine.py +++ b/openpathsampling/engines/gromacs/engine.py @@ -115,10 +115,10 @@ class GromacsEngine(ExternalEngine): 'mdrun_args': "" } ) - GROMPP_CMD = ("{gmx_executable}grompp -c {e.gro} " + GROMPP_CMD = ("{e.options[gmx_executable]}grompp -c {e.gro} " + "-f {e.mdp} -p {e.top} -t {e.input_file} " - + "{grompp_args}") - MDRUN_CMD = ("{gmx_executable}mdrun -s topol.tpr " + + "{e.options[grompp_args]}") + MDRUN_CMD = ("{e.options[gmx_executable]}mdrun -s topol.tpr " + "-o {e.output_file} -e {e.edr_file} -g {e.log_file} " + "{mdrun_args}") # use these as CMD.format(e=engine, **engine.options) @@ -278,11 +278,7 @@ def set_filenames(self, number): @property def grompp_command(self): - cmd = "{gmx}grompp -c {gro} -f {mdp} -p {top} -t {inp} {xtra}".format( - gmx=self.options['gmx_executable'], gro=self.gro, mdp=self.mdp, - top=self.top, inp=self.input_file, - xtra=self.options['grompp_args'] - ) + cmd = self.GROMPP_CMD.format(e=self) return cmd def prepare(self): # pragma: no cover @@ -309,10 +305,5 @@ def engine_command(self): # gmx mdrun -s topol.tpr -o trr/0000001.trr -g 0000001.log args = self.options['mdrun_args'].format(prev_traj=self._traj_num-1, next_traj=self._traj_num) - cmd = "{gmx}mdrun -s topol.tpr -o {out} -e {edr} -g {log} {args}" - cmd = cmd.format(gmx=self.options['gmx_executable'], - out=self.output_file, - edr=self.edr_file, - log=self.log_file, - args=args) + cmd = self.MDRUN_CMD.format(e=self, mdrun_args=args) return cmd diff --git a/openpathsampling/tests/test_gromacs_engine.py b/openpathsampling/tests/test_gromacs_engine.py index 193481d12..ff69b90dc 100644 --- a/openpathsampling/tests/test_gromacs_engine.py +++ b/openpathsampling/tests/test_gromacs_engine.py @@ -59,7 +59,8 @@ def setup(self): prefix="project") def teardown(self): - files = ['topol.tpr', 'mdout.mdp', 'initial_frame.trr', + files = ['topol.tpr', 'mdout.mdp', 'initial_frame.trr', 'state.cpt', + 'state_prev.cpt', 'traj_comp.xtc', self.engine.trajectory_filename(1)] for f in files: if os.path.isfile(f): From 1c15e90c3455839577e2f5c1f6dc1f334e75ff33 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Fri, 13 Mar 2020 13:44:09 +0100 Subject: [PATCH 337/464] Add engine_debug.conf --- openpathsampling/resources/engine_debug.conf | 28 ++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 openpathsampling/resources/engine_debug.conf diff --git a/openpathsampling/resources/engine_debug.conf b/openpathsampling/resources/engine_debug.conf new file mode 100644 index 000000000..07e78dd75 --- /dev/null +++ b/openpathsampling/resources/engine_debug.conf @@ -0,0 +1,28 @@ +# configuration file for debugging engine problems +[loggers] +keys=root,engines + +[handlers] +keys=outfile + +[formatters] +keys=default + +[formatter_default] +format=%(asctime)s %(levelname)-8s %(name)-15s %(message)s +datefmt=%Y-%m-%d %H:%M:%S + +[handler_outfile] +class=FileHandler +formatter=default +args=('engine_debug.log', 'w') + +[logger_root] +level=INFO +handlers=outfile + +[logger_engines] +qualname=openpathsampling.engines +level=DEBUG +handlers=outfile +propagate=0 From 37a175d389daf14ddacff336497258eb9878c15c Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Fri, 13 Mar 2020 17:36:55 +0100 Subject: [PATCH 338/464] update gmx example notebooks --- examples/gromacs/AD_tps_1_trajectory.ipynb | 178 +++++++++--------- examples/gromacs/AD_tps_2a_run_flex.ipynb | 125 +++--------- .../gromacs/AD_tps_3a_analysis_flex.ipynb | 55 ++++-- examples/gromacs/md.mdp | 2 +- openpathsampling/engines/gromacs/engine.py | 7 +- 5 files changed, 167 insertions(+), 200 deletions(-) diff --git a/examples/gromacs/AD_tps_1_trajectory.ipynb b/examples/gromacs/AD_tps_1_trajectory.ipynb index 389c462c7..509e0a469 100644 --- a/examples/gromacs/AD_tps_1_trajectory.ipynb +++ b/examples/gromacs/AD_tps_1_trajectory.ipynb @@ -65,24 +65,38 @@ "metadata": {}, "outputs": [], "source": [ - "# TODO: explain options and where files end up" + "options = {\n", + " 'gmx_executable': 'gmx -nobackup ', # run gmx how you like it!\n", + " 'snapshot_timestep': 0.02,\n", + " 'n_frames_max': 10000,\n", + "}" ] }, { - "cell_type": "code", - "execution_count": 4, + "cell_type": "markdown", "metadata": {}, - "outputs": [], "source": [ - "options = {\n", - " 'gmx_executable': 'gmx -nobackup ', # run gmx how you like it!\n", - " 'snapshot_timestep': 0.02, # \n", - "} # TODO" + "We set several entries in the options dictionary. Like all OPS engines, the options dictionary for Gromacs includes some important ones that you are likely to set:\n", + "\n", + "* `'snapshot_timestep'`: Time between output frames in the TRR. Defaults to 1 (setting unit of time to \"frames\"), but you probably want to set this to `dt * nstxout`. Setting this is optional, but can assist in several analysis routines.\n", + "* `'n_frames_max'`: Maximum number of frames. This must be less than the corresponding `nsteps` entry in your Gromacs `mdp` file, otherwise Gromacs might end the trajectory before OPS tells it to, and this will leave OPS hanging. Don't forget that the `mdp`'s `nsteps` is in units of the inner timestep, whereas OPS's `n_frames_max` is in unit of saved frames. So `n_frames_max` should be less than `nsteps / nstxout`. (Usually, you set the max number of frames in OPS first, and make sure your `nsteps` corresponds.)\n", + "\n", + "There are also several options specific to Gromacs:\n", + "\n", + "* `'gmx_executable'`: This is the Gromacs command exactly as you need to call it. This allows you to, for example, use Gromacs in some specific path, or to use `gmx_mpi` instead of `gmx`. Note that, for modern Gromacs, this command should end in a space -- the subcommands `grompp` and `mdrun` do not automatically include a space.\n", + "* `'grompp_args'`: A string with additional arguments for `grompp`.\n", + "* `'mdrun_args'`: A string with additional arguments for `mdrun`.\n", + "\n", + "Finally, there are a few restrictions on your `mdp` file that you should be careful about:\n", + "\n", + "* `nsteps`: See discussion of `'n_frames_max'` above.\n", + "* `nstxout`, `nstvout`, `nstenergy`: All of these should be equal to each other.\n", + "* `integrator`: Path sampling should always use a reversible integrator; leapfrog-style integrators may be unstable." ] }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -94,6 +108,39 @@ " prefix=\"hi_T\").named(\"500K\")" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "There are several arguments for the engine as well. In addition to the `options` dictionary above, you'll need the `gro` argument (used for `grompp`'s `-c`; can be a `gro`, `pdb`, etc.), the `mdp`, and the `top`. There are two other arguments as well: `base_dir` sets the working directory for where to find the input files and place the output files, and `prefix` sets a prefix for the subdirectories where the output files goes (`trr`, `edr`, and `log`)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Internally, the OPS Gromacs engine will fork off a Gromacs process, just as you would on the command line. You can see the exact commands that it will use (now with a few placeholder arguments for input/output filenames, but once the engine is running, this will show the exact command being used):" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "gmx -nobackup grompp -c ./conf.gro -f ./hi_temp.mdp -p ./topol.top -t INITIAL.trr \n", + "gmx -nobackup mdrun -s topol.tpr -o ./hi_T_trr/OUTPUT_NAME.trr -e ./hi_T_edr/OUTPUT_NAME.edr -g ./hi_T_log/OUTPUT_NAME.log \n" + ] + } + ], + "source": [ + "print(hi_T_engine.grompp_command)\n", + "print(hi_T_engine.engine_command())" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -118,7 +165,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 7, @@ -174,60 +221,32 @@ "source": [ "## Getting a first trajectory\n", "\n", - "The idea here is a little subtle, but it makes nice use of our generalized path ensemble idea.\n", - "\n", - "We want a path which contains at least one frame in each state. The question is, what ensemble can we use to create such a trajectory?\n", - "\n", - "The first obvious thought would be `goal_ensemble = PartInXEnsemble(stateA) & PartInXEnsemble(stateB)` (which can, of course, be further generalized to more states). However, while that *is* the ensemble we want to eventually satisfy, we can't use its `can_append` to create it, because its `can_append` always returns `True`: the trajectory will go on forever!\n", + "Here we'll use the `VisitAllStatesEnsemble` to create a trajectory that has visited all states, using the high temperature engine. This approach is reasonable for 2-state TPS and multiple state TIS simulations. `VisitAllStatesEnsemble` is more than is needed for multiple state TPS, and isn't guaranteed to provide all the needed initial conditions for multiple interface set TIS.\n", "\n", - "But we can use a trick: since what we want is the first trajectory that satisfies `goal_ensemble`, we know that every shorter trajectory will not satisfy it. This means that the shorter trajectories must satisfy the *complement* of `goal_ensemble`, and the trajectory we want will be the first trajectory that does *not* satisfy the complement!\n", - "\n", - "So the trick we'll use is to build the trajectory by using the fact that the shorter trajectories are in the complement of `goal_ensemble`, which is given by `complement = AllOutXEnsemble(stateA) | AllOutXEnsemble(stateB)`. The `generate` function will stop when that is no longer true, giving us the trajectory we want. This can be directly generalized to more states.\n", - "\n", - "Note that here we're not even using the `can_append` function. That happens to be the same as the ensemble itself for this particular ensemble, but conceptually, we're actually using the test of whether a trajectory is in the ensemble at all." + "The underlying theory of the `VisitAllStatesEnsemble` is described in the OpenMM alanine dipeptide TPS example." ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, - "outputs": [], - "source": [ - "#import logging.config\n", - "#logging.config.fileConfig(\"../resources/logging.conf\", disable_existing_loggers=False)" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [], - "source": [ - "init_traj_ensemble = paths.AllOutXEnsemble(C_7eq) | paths.AllOutXEnsemble(alpha_R)" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, "outputs": [ { - "name": "stderr", + "name": "stdout", "output_type": "stream", "text": [ - "/Users/dwhs/miniconda3/envs/dev/lib/python3.7/site-packages/mdtraj/utils/validation.py:116: TypeCastPerformanceWarning: Casting unitcell_vectors dtype=float64 to \n", - " TypeCastPerformanceWarning)\n" + "Ran 99 frames [1.98]. Found states [alpha_R,C_7eq]. Looking for [].\n" ] } ], "source": [ - "# generate trajectory that includes frame in both states\n", - "trajectory = hi_T_engine.generate(hi_T_engine.current_snapshot, [init_traj_ensemble])" + "visit_all = paths.VisitAllStatesEnsemble(states=[C_7eq, alpha_R], timestep=0.02)\n", + "trajectory = hi_T_engine.generate(hi_T_engine.current_snapshot, [visit_all.can_append])" ] }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 11, "metadata": {}, "outputs": [], "source": [ @@ -238,19 +257,19 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "[Trajectory[42]]\n" + "[Trajectory[8]]\n" ] } ], "source": [ - "# take the subtrajectory matching the ensemble (only one ensemble, only one subtraj)\n", + "# take the subtrajectory matching the ensemble (for TPS only one ensemble, so only one subtraj)\n", "subtrajectories = []\n", "for ens in tmp_network.analysis_ensembles:\n", " subtrajectories += ens.split(trajectory)\n", @@ -266,22 +285,22 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "[]" + "[]" ] }, - "execution_count": 15, + "execution_count": 13, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -308,7 +327,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 14, "metadata": {}, "outputs": [], "source": [ @@ -333,11 +352,11 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 15, "metadata": {}, "outputs": [], "source": [ - "network = paths.TPSNetwork(initial_states=C_7eq, final_states=alpha_R)\n", + "network = paths.TPSNetwork(initial_states=C_7eq, final_states=alpha_R).named(\"tps_network\")\n", "scheme = paths.OneWayShootingMoveScheme(network, \n", " selector=paths.UniformSelector(),\n", " engine=engine)" @@ -345,7 +364,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 16, "metadata": { "scrolled": true }, @@ -366,7 +385,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 17, "metadata": {}, "outputs": [], "source": [ @@ -376,7 +395,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 18, "metadata": {}, "outputs": [ { @@ -393,7 +412,7 @@ } ], "source": [ - "# TODO: for now, use an empty background -- we should change the main code to handle it correctly\n", + "# use an empty background\n", "(fig, ax) = plt.subplots()\n", "plt.xlim(-np.pi, np.pi)\n", "plt.ylim(-np.pi, np.pi);" @@ -401,18 +420,7 @@ }, { "cell_type": "code", - "execution_count": 21, - "metadata": {}, - "outputs": [], - "source": [ - "# debug logging to test that the engine is working\n", - "import logging.config\n", - "logging.config.fileConfig(\"./engine_debug.conf\", disable_existing_loggers=False)" - ] - }, - { - "cell_type": "code", - "execution_count": 22, + "execution_count": 19, "metadata": {}, "outputs": [], "source": [ @@ -425,7 +433,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 20, "metadata": {}, "outputs": [ { @@ -434,7 +442,7 @@ "True" ] }, - "execution_count": 23, + "execution_count": 20, "metadata": {}, "output_type": "execute_result" } @@ -447,12 +455,12 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 21, "metadata": {}, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -464,26 +472,25 @@ "name": "stdout", "output_type": "stream", "text": [ - "DONE! Completed 4 Monte Carlo cycles.\n" + "Step 4: All trajectories decorrelated!\n" ] } ], "source": [ "# this is a trick to take the first decorrelated trajectory\n", - "while (initial_conditions[0].trajectory.is_correlated(sampler.sample_set[0].trajectory)):\n", - " sampler.run(1)" + "sampler.run_until_decorrelated()" ] }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 22, "metadata": { "scrolled": true }, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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lSuLG/ddeCF3dQXwLgTEoLKle+6RDj1U2rJFuuGG3BUBqBkCYpAdfnhxV1dJuvHG4lYcANBCQAy6lSulk08uHkF63XW5qwFQIwTEIHvrLekLX5CeeUZavFj6xjdyVwSgRngm9aB6883iCXMPPigND0sPP1xsTQBACwExiPbskT796eIxo42GtHGj9PGP564KQM0QEINmclI655zisaMjI9Kjj0qnnZa7KgA1REAMkoji0aKbN0sHH1yExMkn564KQE1xkHqQ7Nr19qmshx5a3I8JAA6AgBgkRxxRHJR+3/ukl1+WzjpLOvts6YUXclcGoIZ4YNAg2rNHuuoqae3aYvqQQ4oHCS3i7wWgznr9wCCOQQya114rrne4++63P1uxgnAA8C50hUFz663S979fXCR39tnS+Lj0ox/lrgpADbEFMWiOPrr4ef75BAOAWbEFMWhOOaX4+eyzeesAUHsExKA56aTi54svSnv35q0FQK0REINm6dLiNNd9+6Rt23JXA6DGCIhBNH319JYteesAUGsExCA644zi5+bNeesAUGsExCD66EeLn088kbcOALVWKiBs32j7WdtbbP/E9tFVFYZ5NH0m0/btxQ38APS9ufTrUrfasH1IRLzRev+PkpZHxOXtfo9bbWQWURysnpgozmZ6//tzVwSgA2VutTGXfl1qC2J6sJamJP4cXQhsafny4j0HqoGBMJd+XfpKats3Sfp7Sa9LWjHLfKOSRiWp0WiUHRZlffObxe2+p3c3AVgIhmyPz5gei4ixTn+503795/nb7WKyvVHSkYmv1kTE/TPmu0bSQRFxXbtB2cUEAN1rt4up6n5d2e2+bf+FpIci4sPt5iUgAKB7Vd3uu9N+XfYspuNnTJ4n6fkyywMAzI+59OuyxyD+xfYJkvZJelFS2zOYAABZdN2vszxRzvY+SX86wNdDkqZ6WE6v9ON6sU4LRz+u1yCu00hE9OwC5ywBMRvb4xFxau46qtaP68U6LRz9uF6s0/zjVhsAgCQCAgCQVMeA6PiijwWmH9eLdVo4+nG9WKd5VrtjEACAeqjjFgQAoAYICABAUi0Dol+fM2H7VtvPt9btPtuH5a6pLNufs73V9j7btTk9by5sr7K93fYO29/KXU8VbN9h+xXbz+WupQq2l9n+me1trf93V+SuqQq2D7L9pO1nWut1fe6apJoeg5jrcybqzvbZkv4rIqZs3yJJEXF15rJKsX2iiisz/13SP0XEeJtfqSXbiyX9StJZknZKekrSRRHxy6yFlWT7ryTtlnR3J/dJqzvbR0k6KiKetr1U0i8kXdAH/06W1IyI3baHJT0u6YqI2JSzrlpuQfTrcyYi4icRMX2V5CZJx+aspwoRsS0itueuowKnSdoRES9ExF5JP5B0fuaaSouIxyS9mruOqkTEbyPi6db7P0raJumYvFWVF4Xdrcnh1it736tlQEjFfcttvyTpYknX5q5nHlwq6ZHcReDPjpH00ozpneqDxtPPbH9A0kckbc5bSTVsL7a9RdIrkjZERPb1yhYQtjfafi7xOl+SImJNRCyTtE7S13LV2a1269WaZ42K+62sy1dp5zpZpz7gxGfZ/4JDmu2DJa2XdOV+exwWrIh4KyJOUbFn4TTb2XcJln6i3FxFxMoOZ/0PSQ9Javsgojpot162L5H0KUmfiDoeAEro4t9qIdspadmM6WMl/SZTLZhFax/9eknrIuKHueupWkS8ZvtRSaskZT25oJa7mPr1ORO2V0m6WtJ5ETGZux68w1OSjrd9nO2GpM9LeiBzTdhP62Du7ZK2RcR3ctdTFdtHTJ/VaHtE0krVoO/V9Sym9ZLecd/yiHg5b1Xl2d4haYmk37c+2rTQz86yfaGkf5N0hKTXJG2JiHPyVjU3tj8p6V8lLZZ0R0TclLmk0mzfI+lvJB0u6f8kXRcRt2ctqgTbZ0j6H0n/q6I/SNI/R8TD+aoqz/ZJku5S8X9vkaR7I+KGvFXVNCAAAPnVchcTACA/AgIAkERAAACSCAgAQBIBAQBIIiAAAEkEBAAg6f8B35QJ/xpjy0EAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] @@ -495,7 +502,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "DONE! Completed 14 Monte Carlo cycles.\n" + "DONE! Completed 13 Monte Carlo cycles.\n" ] } ], @@ -515,19 +522,12 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 23, "metadata": {}, "outputs": [], "source": [ "sampler.storage.close()" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] } ], "metadata": { diff --git a/examples/gromacs/AD_tps_2a_run_flex.ipynb b/examples/gromacs/AD_tps_2a_run_flex.ipynb index fbc0ef060..a970f64c6 100644 --- a/examples/gromacs/AD_tps_2a_run_flex.ipynb +++ b/examples/gromacs/AD_tps_2a_run_flex.ipynb @@ -36,7 +36,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## Load engine, trajectory, and states from file" + "## Load engine, trajectory, and network from file" ] }, { @@ -56,7 +56,8 @@ "source": [ "options = {\n", " 'gmx_executable': 'gmx -nobackup ',\n", - " 'snapshot_timestep': 0.02\n", + " 'snapshot_timestep': 0.02,\n", + " 'n_frames_max': 10000,\n", "}\n", "# we create a new engine because we want to save in new directories\n", "# (prod instead of equil)\n", @@ -67,56 +68,19 @@ " base_dir=\".\",\n", " prefix=\"prod\").named(\"production\")\n", "\n", - "# for these, we just load the ones we used to create the \n", - "C_7eq = old_storage.volumes['C_7eq']\n", - "alpha_R = old_storage.volumes['alpha_R']\n", + "# make sure we store the calculated versions of phi and psi (enable_diskcache)\n", + "phi = old_storage.cvs['phi'].enable_diskcache()\n", + "psi = old_storage.cvs['psi'].enable_diskcache()\n", + "\n", + "# load the same network as used for \n", + "network = old_storage.networks['tps_network']\n", "final_step = old_storage.steps[-1]\n", "traj = final_step.active[0].trajectory\n", - "phi = old_storage.cvs['phi']\n", - "psi = old_storage.cvs['psi']\n", + "\n", "\n", "template = traj[0] # any snapshot is fine" ] }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# make sure we store the calculated versions of phi and psi\n", - "phi.enable_diskcache()\n", - "psi.enable_diskcache()" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "production\n" - ] - } - ], - "source": [ - "print(engine.name)" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -130,30 +94,23 @@ "3. Set up `initial_conditions`\n", "4. Create the `PathSampling` object and run it.\n", "\n", - "Since we already created all the input to these when we set up the first trajectory, we can use the versions we loaded above." + "We'll use the same network as before, but because our engine has changed (so that we output to a different directory) we need to create a new move scheme." ] }, { "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [], - "source": [ - "network = paths.TPSNetwork(C_7eq, alpha_R)" - ] - }, - { - "cell_type": "code", - "execution_count": 8, + "execution_count": 5, "metadata": {}, "outputs": [], "source": [ - "scheme = paths.OneWayShootingMoveScheme(network, selector=paths.UniformSelector(), engine=engine)" + "scheme = paths.OneWayShootingMoveScheme(network,\n", + " selector=paths.UniformSelector(),\n", + " engine=engine).named(\"prod_scheme\")" ] }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 6, "metadata": {}, "outputs": [ { @@ -171,7 +128,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 7, "metadata": {}, "outputs": [], "source": [ @@ -184,28 +141,16 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 8, "metadata": {}, "outputs": [], "source": [ - "# This sets up logging, to provide additional information about what is happening\n", - "\n", - "import logging\n", - "import sys\n", - "\n", - "# use logging.INFO for basic info; logging.DEBUG for details\n", - "log_level = logging.INFO\n", - "\n", - "root = logging.getLogger('openpathsampling.engines')\n", - "root.setLevel(logging.DEBUG) # let the handlers sort it out\n", - "ch = logging.StreamHandler(sys.stdout)\n", - "ch.setLevel(log_level)\n", - "root.addHandler(ch)\n", - "\n", - "# uncomment the following to write detailed debug info to a file\n", - "#fh = logging.FileHandler('debug_details.log')\n", - "#fh.setLevel(logging.DEBUG)\n", - "#root.addHandler(fh)" + "# This sets up debug-level for the engine logging, to provide additional information\n", + "# about what is happening\n", + "#import logging.config\n", + "# set the path to your conf file\n", + "#conf_file_loc = \"../../openpathsampling/resources/engine_debug.conf\"\n", + "#logging.config.fileConfig(conf_file_loc, disable_existing_loggers=True)" ] }, { @@ -217,7 +162,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 9, "metadata": { "scrolled": false }, @@ -227,29 +172,19 @@ "output_type": "stream", "text": [ "Working on Monte Carlo cycle number 10\n", - "Running for 2 minutes 36 seconds - 17.39 seconds per step\n", - "Estimated time remaining: 17 seconds\n", - "Starting trajectory\n", - "gmx -nobackup grompp -c ./conf.gro -f ./md.mdp -p ./topol.top -t ./initial_frame.trr \n", - "gmx -nobackup mdrun -s topol.tpr -o ./prod_trr/0000010.trr -e ./prod_edr/0000010.edr -g ./prod_log/0000010.log \n", - "Started engine: psutil.Popen(pid=71684, name='gmx', started='15:07:35')\n", - "Through frame: 0\n", - "Through frame: 10\n", - "total_time 6.7042\n", - "About to send signal Signals.SIGTERM to psutil.Popen(pid=71684, name='gmx', started='15:07:35')\n", - "Finished trajectory, length: 21\n", + "Running for 44 seconds - 4.91 seconds per step\n", + "Estimated time remaining: 4 seconds\n", "DONE! Completed 10 Monte Carlo cycles.\n" ] } ], "source": [ - "#sampler.live_visualizer = paths.StepVisualization2D(network, phi, psi, [-3.14, 3.14], [-3.14, 3.14])\n", "sampler.run(1000)" ] }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 10, "metadata": {}, "outputs": [], "source": [ @@ -260,7 +195,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 11, "metadata": {}, "outputs": [], "source": [ @@ -279,7 +214,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 12, "metadata": {}, "outputs": [], "source": [ diff --git a/examples/gromacs/AD_tps_3a_analysis_flex.ipynb b/examples/gromacs/AD_tps_3a_analysis_flex.ipynb index daf62d2a0..f950f974a 100644 --- a/examples/gromacs/AD_tps_3a_analysis_flex.ipynb +++ b/examples/gromacs/AD_tps_3a_analysis_flex.ipynb @@ -43,17 +43,6 @@ "filename = \"alanine_dipeptide_tps.nc\"" ] }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [], - "source": [ - "# note that this log will overwrite the log from the previous notebook\n", - "#import logging.config\n", - "#logging.config.fileConfig(\"logging.conf\", disable_existing_loggers=False)" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -548,7 +537,49 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.2" + "version": "3.7.3" + }, + "toc": { + "base_numbering": 1, + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": true, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": true + }, + "varInspector": { + "cols": { + "lenName": 16, + "lenType": 16, + "lenVar": 40 + }, + "kernels_config": { + "python": { + "delete_cmd_postfix": "", + "delete_cmd_prefix": "del ", + "library": "var_list.py", + "varRefreshCmd": "print(var_dic_list())" + }, + "r": { + "delete_cmd_postfix": ") ", + "delete_cmd_prefix": "rm(", + "library": "var_list.r", + "varRefreshCmd": "cat(var_dic_list()) " + } + }, + "types_to_exclude": [ + "module", + "function", + "builtin_function_or_method", + "instance", + "_Feature" + ], + "window_display": false } }, "nbformat": 4, diff --git a/examples/gromacs/md.mdp b/examples/gromacs/md.mdp index b7bcbaa0c..21a7bda8b 100644 --- a/examples/gromacs/md.mdp +++ b/examples/gromacs/md.mdp @@ -2,7 +2,7 @@ title = test cpp = /lib/cpp include = -I../top define = -integrator = md +integrator = md-vv dt = 0.002 nsteps = 100000 nstxout = 10 diff --git a/openpathsampling/engines/gromacs/engine.py b/openpathsampling/engines/gromacs/engine.py index e335407e9..c9c23f784 100644 --- a/openpathsampling/engines/gromacs/engine.py +++ b/openpathsampling/engines/gromacs/engine.py @@ -133,6 +133,7 @@ def __init__(self, gro, mdp, top, options, base_dir="", prefix="gmx"): self.mdp_contents, self._mdp_hash = ensure_file(self.mdp) self.top_contents, self._top_hash = ensure_file(self.top) + # TODO: move to a later stage, before first traj dirs = [self.prefix + s for s in ['_trr', '_log', '_edr']] for d in dirs: try: @@ -149,9 +150,9 @@ def __init__(self, gro, mdp, top, options, base_dir="", prefix="gmx"): # initial placeholders self.input_file = "INITIAL.trr" - self.output_file = "OUTPUT_NAME.trr" - self.edr_file = "EDR_DIR/OUTPUT_NAME.edr" - self.log_file = "LOG_DIR/OUTPUT_NAME.log" + self.output_file = self.prefix + "_trr/OUTPUT_NAME.trr" + self.edr_file = self.prefix + "_edr/OUTPUT_NAME.edr" + self.log_file = self.prefix + "_log/OUTPUT_NAME.log" self._mdtraj_topology = None From 799898b0cf26729e56a100509a243456f39c610b Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 19 Mar 2020 14:22:30 +0100 Subject: [PATCH 339/464] Add tests for external snapshots --- .../tests/test_external_snapshots.py | 134 ++++++++++++++++++ 1 file changed, 134 insertions(+) create mode 100644 openpathsampling/tests/test_external_snapshots.py diff --git a/openpathsampling/tests/test_external_snapshots.py b/openpathsampling/tests/test_external_snapshots.py new file mode 100644 index 000000000..49a2b86c7 --- /dev/null +++ b/openpathsampling/tests/test_external_snapshots.py @@ -0,0 +1,134 @@ +import pytest + +import openpathsampling as paths +import numpy as np + +from openpathsampling.engines.external_snapshots.snapshot import ( + ExternalMDSnapshot +) + +class MockEngine(object): + def __init__(self, sequences, sleep_ms=0): + self.sequences = sequences + self.sleep_ms = sleep_ms + + def read_frame_data(self, filename, position): + return self.sequences[filename][position] + + +class ErrorMockEngine(MockEngine): + """Mock engine used to create the IndexError in load_details""" + def __init__(self, sequences, sleep_ms=0): + super(ErrorMockEngine, self).__init__(sequences, sleep_ms) + self._sequences = self.sequences + self.sequences = {k: [] for k in self.sequences} + self.accessed = False + + def read_frame_data(self, filename, position): + if self.accessed: + self.sequences = self._sequences + + self.accessed = True + return super(ErrorMockEngine, self).read_frame_data(filename, + position) + + +class TestExternalMDSnapshot(object): + def setup(self): + self.box = np.array([[1.0, 0.0], [0.0, 1.0]]) + self.vel = np.array([[1.0, 0.0]]) + + + self.engine = MockEngine( + sequences={ + 'foo': [(np.array([[0.0, 0.0]]), self.vel, self.box), + (np.array([[0.1, 0.0]]), self.vel, self.box), + (np.array([[0.2, 0.0]]), self.vel, self.box)] + }, + sleep_ms=0.0 + ) + self.snapshots = [ + ExternalMDSnapshot(file_name='foo', + file_position=i, + engine=self.engine) + for i in range(3) + ] + + def test_init(self): + for (i, snap) in enumerate(self.snapshots): + assert snap._reversed is None + assert snap.file_name == "foo" + assert snap.file_position == i + assert snap.engine == self.engine + assert snap.velocity_direction == 1 + + def test_load_details(self): + for (i, snap) in enumerate(self.snapshots): + snap.load_details() + expected_xyz = np.array([[0.1 * i, 0.0]]) + expected_vel = np.array([[1.0, 0.0]]) + np.testing.assert_array_equal(snap._xyz, expected_xyz) + np.testing.assert_array_equal(snap._velocities, expected_vel) + np.testing.assert_array_equal(snap._box_vectors, self.box) + + def test_load_details_indexerror(self): + engine = ErrorMockEngine(self.engine.sequences) + engine.accessed + snap = ExternalMDSnapshot(file_name='foo', + file_position=0, + engine=engine) + snap.load_details() + np.testing.assert_array_equal(snap._xyz, np.array([[0.0, 0.0]])) + np.testing.assert_array_equal(snap._velocities, self.vel) + np.testing.assert_array_equal(snap._box_vectors, self.box) + + def test_load_details_recursionerror(self): + bad_snap = ExternalMDSnapshot(file_name='foo', + file_position=3, + engine=self.engine) + with pytest.raises(RuntimeError): + bad_snap.load_details() + + def test_set_details(self): + xyz = np.array([[1.0, 1.0]]) + vel = np.array([[2.0, 2.0]]) + snap = ExternalMDSnapshot(file_name='bar', file_position=0) + snap.set_details(xyz=xyz, velocities=vel, box_vectors=self.box) + np.testing.assert_array_equal(snap._xyz, xyz) + np.testing.assert_array_equal(snap._velocities, vel) + np.testing.assert_array_equal(snap._box_vectors, self.box) + + def test_set_details_exists(self): + snap = self.snapshots[0] + with pytest.raises(RuntimeError): + snap.set_details(xyz=np.array([[1.0, 1.0]]), + velocities=self.vel, + box_vectors=self.box) + + def test_clear_cache(self): + snap = self.snapshots[0] + snap.load_details() + assert snap._xyz is not None + assert snap._velocities is not None + assert snap._box_vectors is not None + snap.clear_cache() + assert snap._xyz is None + assert snap._velocities is None + assert snap._box_vectors is None + + def test_reversed(self): + traj = paths.Trajectory(self.snapshots) + traj_rev = traj.reversed + for idx in range(len(traj)): + snap = traj[idx] + snap_rev = traj_rev[-idx-1] + np.testing.assert_array_equal(snap.xyz, snap_rev.xyz) + np.testing.assert_array_equal(snap.box_vectors, + snap_rev.box_vectors) + assert snap.velocity_direction == 1 + assert snap_rev.velocity_direction == -1 + np.testing.assert_array_equal(snap.velocities, + -snap_rev.velocities) + + assert snap._reversed == snap_rev + assert snap_rev._reversed == snap From 05d72dedaca79c8d9c9221fe1db63485b49d732e Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Fri, 20 Mar 2020 10:21:43 +0100 Subject: [PATCH 340/464] remove debugging line --- openpathsampling/tests/test_external_snapshots.py | 1 - 1 file changed, 1 deletion(-) diff --git a/openpathsampling/tests/test_external_snapshots.py b/openpathsampling/tests/test_external_snapshots.py index 49a2b86c7..ff075a670 100644 --- a/openpathsampling/tests/test_external_snapshots.py +++ b/openpathsampling/tests/test_external_snapshots.py @@ -73,7 +73,6 @@ def test_load_details(self): def test_load_details_indexerror(self): engine = ErrorMockEngine(self.engine.sequences) - engine.accessed snap = ExternalMDSnapshot(file_name='foo', file_position=0, engine=engine) From 9e5caceffa93fe8fab721e90de19a37d7258fa39 Mon Sep 17 00:00:00 2001 From: Alberto Date: Tue, 17 Mar 2020 20:32:46 +0100 Subject: [PATCH 341/464] tests, skips, resources, examples, no large files tests, skips, resources, examples, no large files removed extra .nc file, changed to pytest, fixed sourcing Use same ref frame for MDTraj & PLUMED RMSD added direct plumed test switch direct plumed to RMSD (from dist) you've gotta be kidding... remove test_direct (looks like it did its job!) --- devtools/conda-recipe/meta.yaml | 1 + examples/misc/plumed_wrapper/AD_C7eq.png | Bin 0 -> 226797 bytes examples/misc/plumed_wrapper/AD_aR.png | Bin 0 -> 182120 bytes examples/misc/plumed_wrapper/in_path.pdb | 100 + .../plumed_wrapper_examples.ipynb | 577 ++++++ .../collectivevariables/__init__.py | 3 + .../collectivevariables/plumed_wrapper.py | 329 ++++ .../plumed_wrapper/AD_initial_frame.pdb | 1670 +++++++++++++++++ .../plumed_wrapper/AD_plumed_rmsd.pdb | 40 + openpathsampling/tests/test_plumed_wrapper.py | 216 +++ 10 files changed, 2936 insertions(+) create mode 100755 examples/misc/plumed_wrapper/AD_C7eq.png create mode 100755 examples/misc/plumed_wrapper/AD_aR.png create mode 100755 examples/misc/plumed_wrapper/in_path.pdb create mode 100755 examples/misc/plumed_wrapper/plumed_wrapper_examples.ipynb create mode 100755 openpathsampling/collectivevariables/plumed_wrapper.py create mode 100755 openpathsampling/tests/test_data/plumed_wrapper/AD_initial_frame.pdb create mode 100755 openpathsampling/tests/test_data/plumed_wrapper/AD_plumed_rmsd.pdb create mode 100755 openpathsampling/tests/test_plumed_wrapper.py diff --git a/devtools/conda-recipe/meta.yaml b/devtools/conda-recipe/meta.yaml index fadcd8135..791010cc1 100644 --- a/devtools/conda-recipe/meta.yaml +++ b/devtools/conda-recipe/meta.yaml @@ -32,6 +32,7 @@ requirements: - ujson - psutil - pyemma + - py-plumed test: imports: diff --git a/examples/misc/plumed_wrapper/AD_C7eq.png b/examples/misc/plumed_wrapper/AD_C7eq.png new file mode 100755 index 0000000000000000000000000000000000000000..9faf2f46caf866082b58694dfff4abde713f74ce GIT binary patch literal 226797 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⋙7%oS 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 IYSuyj2Q-iB+5i9m literal 0 HcmV?d00001 diff --git a/examples/misc/plumed_wrapper/AD_aR.png b/examples/misc/plumed_wrapper/AD_aR.png new file mode 100755 index 0000000000000000000000000000000000000000..503775e46fcb7d7495acd0679811fd647ee5d577 GIT binary patch literal 182120 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]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 EUwuBSIRF3v literal 0 HcmV?d00001 diff --git a/examples/misc/plumed_wrapper/in_path.pdb b/examples/misc/plumed_wrapper/in_path.pdb new file mode 100755 index 000000000..461687a29 --- /dev/null +++ b/examples/misc/plumed_wrapper/in_path.pdb @@ -0,0 +1,100 @@ +REMARK ARG=phi,psi phi=-2.498 psi=1.773 +END +REMARK ARG=phi,psi phi=-2.480 psi=1.732 +END +REMARK ARG=phi,psi phi=-2.461 psi=1.691 +END +REMARK ARG=phi,psi phi=-2.443 psi=1.650 +END +REMARK ARG=phi,psi phi=-2.424 psi=1.609 +END +REMARK ARG=phi,psi phi=-2.406 psi=1.568 +END +REMARK ARG=phi,psi phi=-2.388 psi=1.527 +END +REMARK ARG=phi,psi phi=-2.369 psi=1.486 +END +REMARK ARG=phi,psi phi=-2.351 psi=1.445 +END +REMARK ARG=phi,psi phi=-2.332 psi=1.404 +END +REMARK ARG=phi,psi phi=-2.314 psi=1.363 +END +REMARK ARG=phi,psi phi=-2.296 psi=1.322 +END +REMARK ARG=phi,psi phi=-2.277 psi=1.281 +END +REMARK ARG=phi,psi phi=-2.259 psi=1.240 +END +REMARK ARG=phi,psi phi=-2.240 psi=1.199 +END +REMARK ARG=phi,psi phi=-2.222 psi=1.158 +END +REMARK ARG=phi,psi phi=-2.203 psi=1.117 +END +REMARK ARG=phi,psi phi=-2.185 psi=1.076 +END +REMARK ARG=phi,psi phi=-2.167 psi=1.035 +END +REMARK ARG=phi,psi phi=-2.148 psi=0.994 +END +REMARK ARG=phi,psi phi=-2.130 psi=0.953 +END +REMARK ARG=phi,psi phi=-2.111 psi=0.912 +END +REMARK ARG=phi,psi phi=-2.093 psi=0.871 +END +REMARK ARG=phi,psi phi=-2.075 psi=0.830 +END +REMARK ARG=phi,psi phi=-2.056 psi=0.789 +END +REMARK ARG=phi,psi phi=-2.038 psi=0.749 +END +REMARK ARG=phi,psi phi=-2.019 psi=0.708 +END +REMARK ARG=phi,psi phi=-2.001 psi=0.667 +END +REMARK ARG=phi,psi phi=-1.983 psi=0.626 +END +REMARK ARG=phi,psi phi=-1.964 psi=0.585 +END +REMARK ARG=phi,psi phi=-1.946 psi=0.544 +END +REMARK ARG=phi,psi phi=-1.927 psi=0.503 +END +REMARK ARG=phi,psi phi=-1.909 psi=0.462 +END +REMARK ARG=phi,psi phi=-1.891 psi=0.421 +END +REMARK ARG=phi,psi phi=-1.872 psi=0.380 +END +REMARK ARG=phi,psi phi=-1.854 psi=0.339 +END +REMARK ARG=phi,psi phi=-1.835 psi=0.298 +END +REMARK ARG=phi,psi phi=-1.817 psi=0.257 +END +REMARK ARG=phi,psi phi=-1.798 psi=0.216 +END +REMARK ARG=phi,psi phi=-1.780 psi=0.175 +END +REMARK ARG=phi,psi phi=-1.762 psi=0.134 +END +REMARK ARG=phi,psi phi=-1.743 psi=0.093 +END +REMARK ARG=phi,psi phi=-1.725 psi=0.052 +END +REMARK ARG=phi,psi phi=-1.706 psi=0.011 +END +REMARK ARG=phi,psi phi=-1.688 psi=-0.030 +END +REMARK ARG=phi,psi phi=-1.670 psi=-0.071 +END +REMARK ARG=phi,psi phi=-1.651 psi=-0.112 +END +REMARK ARG=phi,psi phi=-1.633 psi=-0.153 +END +REMARK ARG=phi,psi phi=-1.614 psi=-0.194 +END +REMARK ARG=phi,psi phi=-1.596 psi=-0.235 +END diff --git a/examples/misc/plumed_wrapper/plumed_wrapper_examples.ipynb b/examples/misc/plumed_wrapper/plumed_wrapper_examples.ipynb new file mode 100755 index 000000000..1c4fa3aae --- /dev/null +++ b/examples/misc/plumed_wrapper/plumed_wrapper_examples.ipynb @@ -0,0 +1,577 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# PLUMED wrapper in OpenPathSampling\n", + "#### Author: Alberto Pérez de Alba Ortíz\n", + "\n", + "This ipython notebook exemplifies how to calculate PLUMED CVs in OPS. \n", + "\n", + "For further PLUMED details see: http://plumed.github.io/doc-master/user-doc/html/index.html\n", + "\n", + "Special thanks to Gareth A. Tribello for facilitating the use of the PLUMED cython wrapper.\n", + "\n", + "* G.A. Tribello, M. Bonomi, D. Branduardi, C. Camilloni, G. Bussi, PLUMED2: New feathers for an old bird, Comp. Phys. Comm. 185, 604 (2014); https://doi.org/10.1016/j.cpc.2013.09.018" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 1. Import OPS and PLUMED modules \n", + "\n", + "Import additional tools and do a clean-up." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import openpathsampling as paths\n", + "import openpathsampling.engines.openmm as peng_omm\n", + "import mdtraj as md\n", + "from openpathsampling import MDTrajFunctionCV\n", + "\n", + "from openpathsampling.collectivevariables.plumed_wrapper import PLUMEDCV, PLUMEDInterface\n", + "\n", + "import numpy as np\n", + "np.set_printoptions(precision=3, suppress=True, threshold=5)\n", + "\n", + "import matplotlib.pyplot as plt\n", + "import matplotlib.image as img\n", + "import matplotlib as mpl\n", + "mpl.rcParams['figure.dpi']= 300\n", + "mpl.axes.titlepad = 20 \n", + "\n", + "import os\n", + "\n", + "root = os.listdir(\".\")\n", + "for item in root:\n", + " if item.endswith(\".log\"):\n", + " os.remove(item)\n", + " if item.endswith(\".nc\"):\n", + " os.remove(item)\n", + " if item.endswith(\"out_path.pdb\"):\n", + " os.remove(item) " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 2. Load a topology and a trajectory\n", + "Trajectory of alanine dipeptide (AMBER96) in water (TIP3P) from C7$_{eq}$ to $\\alpha_R$" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "resources = \"../../../openpathsampling/tests/test_data/\"\n", + "topology = peng_omm.tools.topology_from_pdb(resources + \"plumed_wrapper/AD_initial_frame.pdb\")\n", + "trajectory = peng_omm.trajectory_from_mdtraj(md.load(resources + \"ala_small_traj.pdb\"))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 3. Create a PLUMED interface\n", + "\n", + "Upon initialization, a `PLUMEDInterface` requires an MDTraj topology and accepts additional PLUMED settings (`pathtoplumed`, `timestep, kbt, molinfo, logfile`).\n", + "\n", + "The function `PLUMEDInterface.set(name, definition)` allows to run non-outputting commands (i.e., not CVs) in the PLUMED interface. In this syntax, `name` corresponds to a PLUMED label (mainly for virtual/group atoms) and `definition` contains the PLUMED keywords as they would be written in a PLUMED input file. Please note that some commands do not need a `name`, and that some others must be set before any other command (e.g., `UNITS`)\n", + "\n", + "The function `PLUMEDInterface.get()` allows to consult the commands that have been run on a `PLUMEDInterface`." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/alberto/Software/openpathsampling/openpathsampling/collectivevariables/plumed_wrapper.py:259: UserWarning: Using currently sourced PLUMED from: /Users/alberto/opt/anaconda3/envs/reqs/lib/libplumedKernel.dylib\n", + " plumed.sys.prefix + \"/lib/libplumedKernel.dylib\")\n" + ] + }, + { + "data": { + "text/plain": [ + "(('', 'UNITS LENGTH=nm'), ('zero', 'FIXEDATOM AT=0,0,0'))" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "plmd = PLUMEDInterface(topology, logfile=\"example_plumed.log\")\n", + "plmd.set(\"\", \"UNITS LENGTH=nm\")\n", + "plmd.set(\"zero\", \"FIXEDATOM AT=0,0,0\")\n", + "plmd.get()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 4. Calculate a few basic CVs\n", + "\n", + "The syntax is `cv = PLUMEDCV(name, PLUMEDInterface, definition)`, where `name` is the PLUMED label of the CV, and `definition` contains the PLUMED keywords as they would be written in a PLUMED input file." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "dist =\t [0.134 0.134 0.134 ... 0.133 0.134 0.133]\n", + "angl =\t [2.155 2.153 2.174 ... 2.148 2.133 2.18 ]\n", + "phi =\t [-1.429 -1.44 -1.426 ... -1.237 -1.227 -1.226]\n", + "psi =\t [-0.181 -0.21 -0.163 ... -0.228 -0.319 -0.331]\n" + ] + } + ], + "source": [ + "dist = PLUMEDCV(\"dist\", plmd, \"DISTANCE ATOMS=5,7\")\n", + "angl = PLUMEDCV(\"angl\", plmd, \"ANGLE ATOMS=5,7,9\")\n", + "phi = PLUMEDCV(\"phi\", plmd, \"TORSION ATOMS=5,7,9,15\")\n", + "psi = PLUMEDCV(\"psi\", plmd, \"TORSION ATOMS=7,9,15,17\")\n", + "\n", + "print(\"dist =\\t\", dist(trajectory))\n", + "print(\"angl =\\t\", angl(trajectory))\n", + "print(\"phi =\\t\", phi(trajectory))\n", + "print(\"psi =\\t\", psi(trajectory))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 5. Calculate a CV based on virtual/group atoms\n", + "\n", + "Group atoms, same as other non-outputting commands, are declared via the `PLUMEDInterface.set(name, definition)` function. \n", + "\n", + "The CV must be declared using the same `PLUMEDInterface` that contains the previously defined groups." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Are both torsions equal?\t True\n" + ] + } + ], + "source": [ + "plmd.set(\"group\", \"GROUP ATOMS=5,7,9,15\")\n", + "phi_group = PLUMEDCV(\"phi_group\", plmd, \"TORSION ATOMS=group\")\n", + "\n", + "print(\"Are both torsions equal?\\t\", (phi_group(trajectory) == phi(trajectory)).all())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 6. Calculate a function of previously defined CVs\n", + "\n", + "The function of CVs must be declared using the same `PLUMEDInterface` that contains the previously defined CVs." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "phi + psi =\t [-1.61 -1.65 -1.589 ... -1.465 -1.546 -1.557]\n" + ] + } + ], + "source": [ + "comb = PLUMEDCV(\"comb\", plmd, \"COMBINE ARG=phi,psi PERIODIC=-pi,pi\")\n", + "\n", + "print('phi + psi =\\t', comb(trajectory))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 7. Calculate an RMSD\n", + "Please note that RMSD and similar CVs require a reference PDB file in Angstroms with OCCUPANCY and BETA columns.\n", + "For more details, see: http://plumed.github.io/doc-master/user-doc/html/_r_m_s_d.html" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "rmsd =\t [0. 0.003 0.006 ... 0.03 0.036 0.042]\n" + ] + } + ], + "source": [ + "rmsd=PLUMEDCV(\"rmsd\", plmd, \"RMSD REFERENCE=\" + resources + \"plumed_wrapper/AD_plumed_rmsd.pdb TYPE=OPTIMAL\")\n", + "\n", + "print('rmsd =\\t', rmsd(trajectory))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 8. Calculate a CV with components\n", + "\n", + "This requires adding the keyword `components=[\"c1\",\"c2\",\"c3\",...]` to the `PLUMEDCV` declaration." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "distance components =\n", + " [[ 0.068 -0.114 -0.012]\n", + " [ 0.068 -0.115 -0.014]\n", + " [ 0.069 -0.114 -0.012]\n", + " ...\n", + " [ 0.057 -0.12 -0.009]\n", + " [ 0.054 -0.123 -0.01 ]\n", + " [ 0.052 -0.121 -0.015]]\n", + "Are the components consistent with the distance? True\n" + ] + } + ], + "source": [ + "comp = PLUMEDCV(\"comp\", plmd, \"DISTANCE ATOMS=5,7 COMPONENTS\", components=[\"x\",\"y\",\"z\"])\n", + "print('distance components =\\n', comp(trajectory))\n", + "print('Are the components consistent with the distance?',\\\n", + "((comp(trajectory)[:, 0]**2 + comp(trajectory)[:, 1]**2 + comp(trajectory)[:, 2]**2)**0.5\\\n", + " == dist(trajectory)).all())\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 9. Save and load a PLUMED interface with some commands\n", + "\n", + "Please note this only saves the commands run by `PLUMEDInterface.set(name, definition)`. To save CVs, see the next example." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saved commands:\t (('', 'UNITS LENGTH=nm'), ('zero', 'FIXEDATOM AT=0,0,0'), ('group', 'GROUP ATOMS=5,7,9,15'))\n", + "Are the saved and loaded PLUMED interfaces consistent?\t True\n" + ] + } + ], + "source": [ + "store = paths.Storage('plmd.nc', 'w')\n", + "store.save(trajectory[:2])\n", + "store.tags['a']=plmd\n", + "store.sync()\n", + "store.close()\n", + "\n", + "store2 = paths.Storage('plmd.nc', 'r')\n", + "plmd2 = store2.tags['a']\n", + "store2.close()\n", + "\n", + "print('Saved commands:\\t', plmd.get())\n", + "print('Are the saved and loaded PLUMED interfaces consistent?\\t', plmd.get() == plmd2.get())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 10. Save and load a PLUMED CV\n", + "\n", + "This saves a particular CV, and the corresponding `PLUMEDInterface` with the commands run by `PLUMEDInterface.set(name, definition)`." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Are the saved and loaded PLUMED CVs consistent?\t True\n" + ] + } + ], + "source": [ + "CVstore = paths.Storage('phi_group.nc', 'w')\n", + "CVstore.save(trajectory[:2])\n", + "CVstore.save(phi_group)\n", + "CVstore.sync()\n", + "CVstore.close()\n", + "\n", + "CVstore2 = paths.Storage('phi_group.nc', 'r')\n", + "phi_group2 = CVstore2.cvs[phi_group.name]\n", + "CVstore2.close()\n", + "\n", + "print('Are the saved and loaded PLUMED CVs consistent?\\t', (phi_group(trajectory) == phi_group2(trajectory)).all())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 11. Optimize an adaptive path-CV\n", + "\n", + "Path-CVs allow to project configurations in a high-dimensional CV-space onto a 1D progress parameter along a curve between two stable states. The curve can be optimized on-the-fly based either on the free energy gradient or the average CV density. This enables to perform enhanced sampling simulations on complex systems, without limitations on the number of CVs. For example, we can run metadynamics on the progress parameter, i.e, path-metadynamics (PMD). Additionally, we can optimize an adaptive path-CV a posteriori using trajectories from a TPS ensemble. Here, we show a minimal example of the procedure for a single trajectory.\n", + "\n", + "For more details on the adaptive path-CV and PMD see: \n", + "\n", + "* G. Díaz Leines, and B. Ensing., Phys. Rev. Lett. 109, 020601 (2012); https://doi.org/10.1103/PhysRevLett.109.020601\n", + "* A. Pérez de Alba Ortíz, A. Tiwari, R. C. Puthenkalathil, and B. Ensing, J. Chem. Phys. 149, 072320 (2018); https://doi.org/10.1063/1.5027392\n", + " \n", + "For more details on PLUMED keywords and options, see: http://plumed.github.io/doc-master/user-doc/html/_a_d_a_p_t_i_v_e__p_a_t_h.html" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 11.1 Calculate the components of an adaptive path-CV\n", + "\n", + "Note: the `ADAPTIVE_PATH` requires an initial guess path (`REFERENCE`). The file `in_path.pdb` provides this based on a linear interpolation between the first and last points of the trajectory.\n", + "\n", + "The `ADAPTIVE_PATH` is optimized at every timestep based on the average CV density and returns two components:\n", + "* `gspath`: the progress along the path for the current configuration in CV-space obtained after projecting it onto the path.\n", + "* `gzpath`: the distance from the path to the current configuration in CV-space.\n", + "\n", + "Notice that the value of `gzpath` is zero at the beginning and at the end of the trajectory, while the value of `gspath` evolves form zero to one. This is because the first and last configurations of the trajectory were taken as initial and final path nodes.\n", + "\n", + "This requires to load a C7$_{eq}$ to $\\alpha_R$ trajectory from storage. The path definition expects a transition with an incremental $\\phi$ value, i.e., with no periodic crossing from $-\\pi$ to $\\pi$. Such a trajectory is generated in: \n", + "\n", + "https://github.com/openpathsampling/openpathsampling/blob/master/examples/alanine_dipeptide_tps/AD_tps_1_trajectory.ipynb" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "gspath, gzpath =\n", + " [[0. 0. ]\n", + " [0.051 0.288]\n", + " [0.125 0.229]\n", + " ...\n", + " [0.887 0.061]\n", + " [0.889 0.185]\n", + " [1. 0. ]]\n" + ] + } + ], + "source": [ + "storage = paths.Storage(\"./AD_trajectory.nc\", \"r\")\n", + "full_trajectory = storage.trajectories[0]\n", + "\n", + "pcv = PLUMEDCV(\"pcv\",\n", + " plmd,\n", + " \"ADAPTIVE_PATH \" \n", + " \"TYPE=EUCLIDEAN REFERENCE=in_path.pdb FIXED=1,50 UPDATE=1 WSTRIDE=1 HALFLIFE=100 WFILE=out_path.pdb\",\n", + " components=[\"gspath\",\"gzpath\"])\n", + "\n", + "print('gspath, gzpath =\\n', pcv(full_trajectory))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 11.2 Analyze the optimization of an adaptive path-CV\n", + "\n", + "The `ADAPTIVE_PATH` is optimized by following the average CV density. We read the path output files and plot the path optimization steps." + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "ncv = 2\n", + "nnode = 50\n", + "\n", + "path = []\n", + "with open(\"in_path.pdb\",\"r\") as f:\n", + " lines=f.readlines()\n", + " for line in lines:\n", + " if 'phi=' in line:\n", + " words = line.split()\n", + " for word in words:\n", + " if 'phi=' in word:\n", + " node_phi = word.split('=')[1]\n", + " if 'psi=' in word:\n", + " node_psi = word.split('=')[1]\n", + " path.append((node_phi,node_psi))\n", + " \n", + "with open(\"out_path.pdb\",\"r\") as f:\n", + " lines=f.readlines()\n", + " for line in lines:\n", + " if 'phi=' in line:\n", + " words = line.split()\n", + " for word in words:\n", + " if 'phi=' in word:\n", + " node_phi = word.split('=')[1]\n", + " if 'psi=' in word:\n", + " node_psi = word.split('=')[1]\n", + " path.append((node_phi,node_psi))\n", + "\n", + "path = np.asarray(path,dtype=np.float64)\n", + "path = np.reshape(path,(int(len(path)/nnode),nnode,ncv)) " + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAADdcAAArhCAYAAAA0ujJMAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAuIwAALiMBeKU/dgAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjAsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8GearUAAAgAElEQVR4nOzd8XHbRtoH4HdvrgAlXwUndyDfVRC5Azup4KwOrLkKMlIHdipIrA6kVJBYHVhXwTnqYL8/sIwVW9wFRYAEiOeZ8TgxKGFJAosl5/3hTTnnAAAAAAAAAAAAAAAAAIAl+du+BwAAAAAAAAAAAAAAAAAAuyZcBwAAAAAAAAAAAAAAAMDiCNcBAAAAAAAAAAAAAAAAsDjCdQAAAAAAAAAAAAAAAAAsjnAdAAAAAAAAAAAAAAAAAIsjXAcAAAAAAAAAAAAAAADA4gjXAQAAAAAAAAAAAAAAALA4wnUAAAAAAAAAAAAAAAAALI5wHQAAAAAAAAAAAAAAAACLI1wHAAAAAAAAAAAAAAAAwOII1wEAAAAAAAAAAAAAAACwOMJ1AAAAAAAAAAAAAAAAACyOcB0AAAAAAAAAAAAAAAAAiyNcBwAAAAAAAAAAAAAAAMDiCNcBAAAAAAAAAAAAAAAAsDjCdQAAAAAAAAAAAAAAAAAsjnAdAAAAAAAAAAAAAAAAAIsjXAcAAAAAAAAAAAAAAADA4gjXAQAAAAAAAAAAAAAAALA4wnUAAAAAAAAAAAAAAAAALI5wHQAAAAAAAAAAAAAAAACLI1wHAAAAAAAAAAAAAAAAwOII1wEAAAAAAAAAAAAAAACwOMJ1AAAAAAAAAAAAAAAAACyOcB0AAAAAAAAAAAAAAAAAiyNcBwAAAAAAAAAAAAAAAMDiCNcBAAAAAAAAAAAAAAAAsDjCdQAAAAAAAAAAAAAAAAAszt/3PQAAAAAAAAAAAJiSlNJRRHwbEau/P0XEfc75bq8DAwAAAAAGlXLO+x4DAAAAAAtWitUuRtzFfUT8LyLuyn/fKYQDYGgppeP4XHh9VP75vvytEBsAdiSldBIRZxFx/OBPRHdd/lT+vouI38rfNznn+0d+FQtTjp0fIuIkIv4Zn9d0j7mLiNvojqOrKa3zfM9S9+B9Xq3fj+PzGv7hPPEpuuf4Ibp5YjbPEQAAAIDNCNcBAAAAsFcljPBxx7u9j4ibiPg5dlxImVI6jYjrxsO+mUNxZ3nvzmqPyTmf72g4f/GgWG6dH7d9jUvB4h8b/Mhtzvn5NvscU89j86HznPPlHva7L096vjuc4x4Wgf4eCkBHVc7/04h4EV3h9ckGP756j7Yq1E0pXUTEm8bDnuecbzf93btW5uwPlYdc7ut6AsB8lGvj66gHoh7zIud8M8KQmIGyrvtPPO3YeeguIi5yzu8GGdgWlvY9Sx8ppZfRfUdwGk9/n1fr+PdTeJ8BAAAAGM7f9z0AAAAAANiDo4h4Wf5ESukmuuDM5AMIE3McjWBHSmnrENsT/TPqY3sbnztK7cpJSuloakWGD7za9wDYylF8LhL9M+iVUrqLiKuIeCtot71SlHsWXVHuU62CeQ9/731E/BJdoW7f4v630Q7XnUUjBD0RrTG+3ckoAJilcn3+KbYLRrEwJVT3U5TvBQZwHBFvU0pvY5k3Bpjk9yxlfriIzx0st7Fax5+W9/lddJ+zfJcEAAAAMHN/2/cAAAAAAGACTiPiQ0rpunTPgbG83vcAKqY8Np5uFYL9WOa4bUJhi5VSepNS+iMi3sd2wbp1jqI7B69TSn+U/VUDAiUs2Srk/X6oAY6sNs47wVAA1ikBl/chWMcGUkpvoutCPlSw7ktvyppuyZ+x9vo9S0rpJKX0Ibr5YYhg3WNeh++SAAAAAA6CcB0AAAAAfLYq/rrY90A4WD/sewCPKXfz5/CdRhfeuk4pjVVgelBSSi9LqO4idle0f1T2998ej211dDua+vldAp+111bXOgAelVJ6H24QwQZSSscppY/RrbXGdhRdJ7vr1k0TDtzOv2cpocYP8aCj98hWz/H9wt9rAAAAgNkSrgMAAACAr71RAMdITiYaappk6I/RnEbXye7NvgcyVaXwetXpYl/Xgt97POaXHo8523YgI2uN791ORgHArJSOdZMOkDMtJXD1McbrYrbOaUT8Vwfp3XzPUuaGfd2c4WWM0+UaAAAAgJH9fd8DAAAAAICWnHN6ys+VENNRRHwb3R3Lf4j+dy5fFcA9zznfPWX/sMZZRJzvexArpbhRYfJ+bRMe+ja6ee6fsXkI7CKl9CIiXuWc77cYw0Epnd5+iv2F6lZuWw/IOd+nlK6ifg6fppSOJvwe18Z+M+FxA7An5Vrd6lh3FRHXEXFX/nyKv66bnkf3mW+KN75gYKVr2iY3lriL7hj6rfz3XVl3HUd3zBxHdwx9H/3WjEfRdZB+lXO+2mjwIznE71lKsG7TbparOeI+/jpPrJ7fpppreAAAAACmR7gOAAAAgIP1RbHWTURcRvxZjHkR7ULKo4j4kFL6h+J+BvQyJhSui64gdOqm0HnrZqxfnHMe5PmVoORpdAWufQOTgsQPPKHwOqIroL2Jrvj6NiI+ra4Z5T05jq44d1WE3beQ/7ee+/852u/39zHBDnClg0zNvrqOADBR5dr6U+UhVxHx7zWf31b/9mf4pQSFPg03QqYmpfQ++q+NryLibc750bV/WS8/XDOfle8XzqJfx7L3KaXznPNlz/FMzlS/ZyldufsG695FxHWfoGNK6SS69/Zf0eM48pkKAAAAYJ6E6wAAAABYnFJAddWz+OsoIn6NLhABQzhOKZ3knKdyR/tX+x5AD78IuLaV1+iq/FkFl86jf4HrdxM6LnfuCZ0uLqMrvl5bQFvek69e0xIM+D7q70+vwtyc81VK6T7qXVPOYoLhumjMP1Pp7ALApPwn1l/zLnPOG93EQhDmsJX1XZ9g3U1EnD3leHjw/cJJRLyP9tr7IqV0n3Oe4trsyfb5PcuDfba8i4jzTT5bls9Ht2U/R9HNQetuxrHYz1IAAAAAc/e3fQ8AAAAAAPalFH89j3ZHqpNyt3vYRK2wbgqd2B52OnvMaJ3a2I2c87uc87Po1ylxFbA7GXlYk1Tm+L7Busucc8o5nz+1ID/nfP/g/XkRj5xvGwYdf2lsPymdeSajMf9ETDMMCMD+rQ21bBqs47CVjsR91ndnOecX2wYtc863ZW3XZw3ztgTCDs6evmepdbOM6LpWvsg5n21z05ayhj+PiG/i8c9YwroAAAAAMyVcBwAAAMCileKoF9EugHuZUqqFAOBLn2J9cd33uxxIRa3Y9Hpno2BUOefLiHgW/Yo9f51aCGtspfC6T3HzbUQ8G7pwP+d8U65Dz+NzKHfTwty3PR4ziVDvA61i9z7PCYAFSSmtC9ZF9LuZAAtRgmu14yWiW289G7qDXM75LLqbJ7S8P9QbW+zye5aylq91cL6PiOc558FuHlOe3+oz1sMbYvw21D4AAAAA2C3hOgAAAACIPwvgWsVWCv3Z1NWafz+aSFjzhzX/fhNdESIHIud8VzpprDsmV44i4rp0FTt4KaXX0S68joi4yjk/37ajSU3pdvI8Il5F+3366mejHcjr25lvV2phv/sNO/cBsAzrAkv3QwZnmLdyo4hWR7RVJ7NR1nbleOwVsBtj/1Mx9vcs5TNLay3/3Yjv811Zv1+Wf7J+BQAAAJgp4ToAAAAA+OxV1ANFx41uCfClWve3VzsbxSNK0em6Tgm61h2onPOraHeQOI6In3YwnL0qnUL6FPNeltdtJ3LOV0/sjtd6LlMJ9a7mn1qHxEE7yABwMNZdxwTreKj1WWbVyWy0myZE9A7YHaeUDjpgF+N+z/KfxvbzXdywoazdX0XE72PvCwAAAIBxCNcBAAAAQJFzvo+Ifzce1iregj81Omjsu4tUrWvURl2zmJfSQaL1Hr8sXd0OWZ9C5ssnBt32oU8grXbe71JrHDrFAvAXjYD4p50NhElLKV1EPcAfsYNg3Ur5PNi6ScPLqdwAYQwjf8/ysrLtLud8Wdk+qHKDDN3fAQAAAGZKuA4AAAAAHsg5X0VErdDuqHQ7gr7WhphSSrViwLGt2/f9ropN2Z/Sia3VxeFtSuloF+PZtZTS22gXXj+1g9xelGLeVueefc45D9WCm7fmIAAeUbtuC7Sw6ozb6oB2tut1RvmOoXUThIPuXjfG9yw9OiG7WQMAAAAAvQnXAQAAAMDXLhrbf9jJKDgUP1e27eVYKoWL6woRf9nlWNir73o85qfRR7Fj5fhvdeW7KwHEuWkWZu851LvqPFQLbSqEBuAxBxn4Z1CtNcRNzrlPp98xnEc9BHpUuu4dsqG/Z2mtaXVjBwAAAKA34ToAAAAA+NpcOv8wA+Uu/eu83FNnsLPKtoPumsBnpdNZ7ViI6I7R012MZ4f6BAZfjD6KEfQsGG+952NrhRYFfAF4zLN9D4DpKjdPaK1Z97YGKuvufzce9uZQu0YXQ3/PUpsTdGMHAAAAYCPCdQAAAADwhVKEVSvEWtfxC9apFRJ+v7NRtPd5n3NuFT1yQEoY67bxsIPpolG6tp00HvZu5sW4rS4dp3su3K51DbwqxecA8KVv9z0AJq21Xj3f9/qu3HSltU77zy7Gsg8jfM9SmxPmvJYHAAAAYA+E6wAAAADgcdWwSUpJwI5NvK1sa3VxGlTpQrYuWKNj1DK1umiclG4gh6BVeH0fEee7GMiIavPNyj5CvatwY02fsQMA/KlP17qc8+WOhtPyY2P7m52MYn+G/J7FdzIAAAAADEa4DgAAAAAe96mxfZ9df5iZ0qVgnV13kTqrbHu/s1EwGTnn22h30Zh997oS7GoV4Z7PvXNa6T7Zeg61eWBMtf3qnAkAPEWr29u7nYyih7LubgXMal1+525X37P4vgYAAACAjQjXAQAAAMDjWsEEd0lnU7XQyC67SK3rHCXYsmytLhqnB9Cxs1V4fZdznkzx9ZZaz+Nk1+9nCRHXusronAkAbKSsL1qdcad2k4hWp9593QRhF4b8nqUW1Jv75xYAAAAAdky4DgAAAACeZtadjdiLWle4nRRQls5d6wi2LFjponHXeNhsC31LkOyk8bBWofOc9HkurUL0obVCxIf0+gMAu9FaX9zknFtr3J0qN3OofZ9wklJqrVsP1Sbfs1Qfm1Kq3dQBAAAAAP5CuA4AAAAAHte60/mkCvSYhVp4bVddpGrhqFr4j2VodfV4vZNRjKNPMPBQutZFKSK/bTxs12HJ2v7uSsATAGATrxrbpxreb607f9jJKHZvyO9ZfmtsP9/gdwEAAACwcMJ1AAAAAPC4atHX1O5+z/TlnO8j4qbykFG7SKWUjiJi7d37c861sbEApYtGzdGMu2i0zq+bco4ekp8b24939X726Bw41cJ3AGDaWt3JpvoZ57qxfdcdhndlyO9ZrhrbT2f82QUAAACAHROuAwAAAIAvlBBSrQjr0AIY7E6tO9zYXaS+r2w7mI5dbK1ZpLqTUQyoBLtaXTIOMdzV57zeVVeUVoG4OQgA2EhKqbW+uJvwzRN+b2w/Lt9LHIyhv2cpQbzWz+jODgAAAEAvwnUAAAAA8LW53v2e6fulsm3sLlK18J6iQ1Z+a2zfVRhrSM3OHznnVqhwdnp0y4yIeL2LsUR9/jnEroEAwPheNLZP9nN7Wfu0urTN7qYWDWN8z9K6QcNxSqnVJRAAAAAA4u/7HgAAAAAATFCrg9jPOxkFByfnfJ9Suon1hYU/RMTt0PstnbvWBffuc86TLTxl51rHwpgB0LG0Cq8HP+cm5G3UC5mPUkqnY84BJTRc6xx4iF0DF2ddd51Ng5MPrlfHEfF/EfFzznmrc/TBMfiv8ru/LZuOout48ym6gMOH6MKerbDD1srrte68uO8zhvK8TqN7XsfRPZ/V77yN7jld55wH7ww59/E/RUrpNCJeRTfG4+iOo6PoxnkfXReq6zHD2lM+z5asHBsv4vOxsTqeV8fGXfnzdsz5ZaHHxz8b2z/sZBRPdxP1Gx28iHZX6TkZ43uWHyPiTeMxpyml65xz6zMBAAAAAAsmXAcAAAAADzwo9F3rEDscsVPvY/0x9joizkfYZ61zV62bHguTc75NKVUfk1I6mXCR9WNahdcHGy7NOV+13s/owiJjvgbVQuo5XVNTShdRL+B+PtS5kVL6I7pwxtj7eR31gOOzVhik9rqklC5zztXr2oPQ0vfx9XP+GE8IwJbfeRY9Olc+8rOrEMzlpj+7gf/E+mPpLiKePbahPK/zaHf/OSl/Xpb358eBn8/cx99LCRmdRbc+W3c+rgKBJxHxusy5V9GNebBr5RTPszGUOWnddaMW1H5dnmPL7znnVsCnqfF6rjw8NiIi3qzml4h4N2TX1qUcH49o3fRh6mu866iH61pr2NkY63uWcvOad9HuxnyaUvoYEWduLAMAAADAY/627wEAAAAAwMT81Ng+ie4ZzFotzHZUCg+HVisifj/C/pi3VgH1bAp9SzBiXdH7ym+7GMseta5brWLkbX1f2TabYF1x3djeJ9jRVK4DteP2hyH2U9S6uNyN3GXpZSl0X4ULWudq6/cdpZQuUkq5/M6Ng3XFcURcpJT+SCk99XcMpjyvNw9eq02Ps6Pons/HdZ2txjTX8aeU3kQXKnoTmx+bLyPiQ0rp/T5e84eGPs924Fl8Dld++ac29qPKzz38UwvoNaWUjlNK1/H01/M4Ii4i4o9yjO3VDI+PP/X5zLSLTqRbao1vjh2j1xnze5bz6LpEthxHxHVK6XoK13cAAAAApkW4DgAAAACKcsf/VgHbGF3FWJDSpaJ2t/ytu2k8VMJF6wqJ7925n0e0jonnOxnFMPoUJR/6OVDrShYRXXH9GDsunXBqhfrNsU1Jj/lyqNBbK3w0SIivqL33o5wbJZzyIbpw91ZBl/L7jsoa7o+odxbc1FFEvE8p7e04LV28/ogujLPta3UcEf8dKcT/qDmOP6V0UsJGFwP8upex49d8ZejzjD8/K36M4ebgVWh0yDm9lwM5PlrjHqwz4Iia4b99B3SHMPb3LOXz9Xcb/MhpdNf3P1JKb0vIdPavMwAAAADbEa4DAAAAgPgzWNAqyD4vhVuwrVq3uFqXp6eohfVqXfRYro+N7XMqwm4WXh/6vJ5zvo128fagod6ev3eu4d5at72TgYqzWyG9QfbTI9AxeGfTErb6GMN24/k1hg3Vfel1CaHszIPuWEMH+44i4tcSvB/NXMdfzokPMex17ii6Lna7DjUOfZ4tVgnwfohx5plVJ62ddbE7oOOjdZ5+2skottBzDTqndfdXdvU9S1nvbhrQO4quY+P76LpJfiwdcHceeAUAAABg/4TrAAAAAFi8UszYKiC/yzlf7mI8LEIt1HY0cEHf68q2wYMTI/kjpZT38OePfT/xPWkVI8+pyPdZY/vkC68HUguERUScjtSxo9YV7d0I+9uFnxvbt5q/y/vQJ/AwRBD7RW3j0OHH0gFujC5wuziPT0pYbBeOY9juWF86inGv/7McfwmAjPkefxg71Bgx6nm2SGVO/hDjB9EudtEl88COj9Yar9kVbibmtO7+i11/z1J+T2vNW3McXRDwunwWvE4pvdbVDgAAAGAZhOsAAAAAWKzSVeN9RFz0ePirscfDcpQ789dCC4N0kSohvXXFgHPtGsX4Wp0j5lTk2+xct5NR7F+fQvpBu2aWzjg1cy3ub82bra5zLX0DSdVgXE+18OM2xelfKYGO1jHxVK3z+D66MOdZRDyPiG8i4puccyr//TwiLnv8ntNddpda4ya6zjyvojsGzqIb+6bX85NdBHkeMcnxl2Bdn8De6lh6Fd1x8zy653EeEbc9fn7UgObI59nilDDkf6PfuucmPs8xz+Lz3PIiumO8T9DrdflsOooDPD4OZY13SOvuiNjv9yw551cx3A0cTqNbr/5Rgna1dRMAAAAAM/f3fQ8AAAAAAHat3Hn8IvoXF77IOfcpmIVNvI31IYqhCvdqxYq17nks21K6uUUs5LnmnO9SSrdR77xzFsN2k6vNP7c551l2lMk53zdey227dT0WzruLr4vrt7pOlNBIrWC/1aFvk329iX5rrtvoAirX0T3nTyWM3vLYsXQX3XX2qnasld9/GxG3KaUfI+KnqL+2Fyml6u8cybuIOK+9HmV9+5/ouu708TqldLGj5zLZ8ZdzoU+g6bzSXekmIi7LTQ3exvpz67iM+fwJQ63awXm2E+W1efT1KWGddefnTc55iNDxQ9ex/iYVK5cR8eOa13D1+fEmIs5TSifRzTG1a/HLlNKboTumH8rxsaG5rPE+Rf04+79dDWRbU/meJed8llL6GP3CfX2dRheyj4i4HGMeBwAAAGC/dK4DAAAA4OCllI5SSicppYuU0oeI+CP6F3yd6e7FGHLO1a5AA90Zv9aJarTOGMzeXIuoH/NtY/ssA15P1OrydFJCJlsrxdW1kNlcu9at1IJnRyVA8VSPzf2PXi9KkOepWj871NrnNNrF7ZfRdZJ7nnM+zznf5JzvNgh0/O/Bf99Ht3Z7lnO+3CR4lXO+79nxZshi/Zab6F6bs9brUcZ/Hl23rL7Pe+znMofxt9ZDdxHxrE/YqRy7z6J+/rwpc+SQdnGeLUrp8la7Jq6Oi2po9KGc823O+Xm0O1RfbDm/f+lQj4/WGm/KY39oLuP8ypS/Zylz9osYZ63/JqX0h052AAAAAIdF5zoAAAAAJq8Uam3qKLqCu22KV1+1AlCwpatY34HjLNYEKvooRbnrjv97oVEqmp0+UkpHEy+4XmldA+bwHIbyS7RDbS+jK7DfVquweu6dM6+iHlT4IT53LOptTSjvLiI+rvmRF/H0EFyrs+BQ50YtaNjsZtbTqnC+1lmst9Lx5jTWB2teppSOd9Dx7V3OuRXC+UrpAvSsrJ9bQc+XKaWTkTo0T378pZtXbR+3EfHdpsdozvlFY/wX0Q5YbWIX59lilMBM7Tq2VZe8nPO7lNLvEfFrrF+nvE8p/WOg9+1Qj4/WGm/oEOu+jPY8Dv17lvJ591lK6XV08+6Qr+VRdOfpVQnmAwAAADBzOtcBAAAAMAcnT/hzHE8vnlp1IhCsY2y17kenW3Y2qRX5zT3YAmyoFM63rmtDhT1qv+dmpkX8fyqhqlqw6qmdTH545N/uIuL3gfcTUe9cV7s2DeWsTzeznm6jZ2exDZw3to/dreZJwbQvfBf9Qp5DhrxWJj/+ssaqhWTv4wnBuge+i/UB7lpn4SENeZ4tyU+VbXfbBOtWSiC0tlZvHZ9DmPvx0Rp3q7PdVOwzBLiI71lyzu9yzt9Ed1OCoff9MqX0YYSOpAAAAADsmHAdAAAAAPzVu4h4voNuJBA9Cgu3Kb6u/Wyre9XUPIuIb3b9pxRhLtFcipH7aBVer+tMdaha5/7xmu5pvaWUjqP+us5t/lmnNn8fP7HI+rHA1l2lK9dxeb03Uroy1Yxd9P485/xuqF+Wc74bet1Wrs+1+WPrcE1j/1sH3kpgpk83ncGDXjMZf6vD5qttQkflZ39cs/mox3m4rUHPs6Uo3Qxr8/dg537pqlUL8r5+yhzf0xKOj7mEnVrr7rmGH7+09+9Zcs43OedXOecU3fXlXdRvltDXSUQI2AEAAADMnHAdAAAAAHSuoruL+pzv3s881Qpbn9qN5TTWF5TWghpT9SnnfL/rP/t+0nvULAyd0evzqbF9UUWwpZC/9d491j1tE7V56/6AusJeN7ZvFPgpBdmPhSg+lL/XvW+1DnTr1MIhgwfVvvBqRtegm8q2p7zuO1fey9Za4qisGyZn5PH/p7LtqsyX26qt8cYMaM7pPJua2nFxPkKQ9zLq4Z5WF82nOJTjo7XGm8vNIg59LTrJ71lyzldlTKubuJzFdjcXOI6IXwcZHAAAAAB7IVwHAAAAwJLdRcRldMVer3SrY0/eV7adPPEO+LVC9EMJtjCeuRQj99Eq4j2k59rXL43trW5OLbWfb+17NnoEFft03HpoXRjv9y/+3nY/tX1FjHuNuJxZuLIaoByxo9SgSneq1hr3KcfRTowx/pTS66gHWv69ye9bpwRJ1gXsxgo0zu08m4xG17r7EoQbw0Vl29Dd65Z0fEw+tNbzc97/Rh/I8Gb1PUu5scq7B13tXkQ3/k3HfVLmEQAAAABmSLgOAAAAgCW4j64w6ia6ovHz6Aq9nuWcB+9AAJvoEdB4StDlZWXb2yf8PpalVeg7pzlT57qvteaAJ3exanTN7LPvuRmys9mj4aAH3YXWBb022k9K6STq71GrI99T3eecx+jANKbWXDen+aMW3omYfie+ocdfC+NdDdxdad05dfzEGyjUzPE8m5LazSlqXQi3UgKktWOutq7fxKEdH605eg43UOgzximvuw/ye5ac800Z/7OIeBZd0K6vi7LWAgAAAGBmhOsAAAAAmIPnOee0xZ9vSoHXi3I38su5FnpxsGrdnGqFvl9JKdUKcG8d+/TQKvSd0zH0obF9Fp2nhlTCWmN1sar93N2DoNih+Lm2ccOQ4mOPffh6rQ3yDbCfP5XA9xjmGOhohXNnM3/0CO9M+rmMMP7aeTB0CHjIEG7LHM+zSSjd4WrHUXW+H0Dts8APA+3j0I6Pj43tcwhA9xnjmOtu37M05JzvSij1m+jf3ffXEYcEAAAAwEiE6wAAAAAA9q9WyH1cCn77qhXgjl0YzGF43tg+p6LZ5lgX2l2iFR55SsfM1s8dWte6iHpoJqJnSLESjvvz9zeCiZuEIWvXiL5F4xsr4ahDM4euSA9Vj9cZzIWDjL8VRh06YFq64K27Fg0aajzQ82xXasfF/Q7C4bWuoYOcmwd4fBzCGu+fPR4zp3X3wco53+ecX0W/G98cpZSeupYGAAAAYE+E6wAAAAAA9qxHJ6lNutfVOtcdWlEt42gV+ra6wU3J7z0e06ew+dA054JGF8ynPH604Na+lNBMLXDRtyvVunDcl2GLdaGfXvtJKR1FPaQxVgD74N77maqFdyKmPxcONf4XtY0ppTz0n1gfovu/nmPuw3m2nVpIeayOnr33sek1+RGHeHz0CZ1NfV6rzkcRf641mIgSUu3z2fzQOkUCAAAAHDzhOgAAAACAaUblDKsAACAASURBVKgVvfYqqG0U3t4ozqSnVpePPoG1SSjHfOu4bxY2H5ryurTCApuEeluPv805H2rnlVog7bgE2lrWheO+PNfWhYv6djhthfDGCpDomjoNrfe3z7G6T0ONf9BucVsacizOs+3UQlijX796rFf+teUuDu746NlNsNWNed9aa+6xOybyBCVgd9l42HGrUyoAAAAA0yJcBwAAAAAwDW8r2/oGJ36obHu/4XhYoD5FoD2LmaekFchoFTYfqtqcExFx2jMYtuqIVjt2Wvuas1Y3oO9rG8vc/tj8fvtIILp2LPcp4K5dIx7b31B20fWJhh4B1yG7qA1uwPEfarjOebad2vXu447G8Kmybdtj5VCPj9aadLLhprJ2ar2vh/q+zV7O+TzawdtNb1QBAAAAwB4J1wEAAAAATEApGq8V6PXpXld7zC+bjYiFagXN5ljku67b10rf7mIHJefcCoVFNIJhfR9XOnwcpB5zd6szYt+uda1g66vGfmr7ihixq9HUuqamlE5SSi9TSm9SSm9TStcppQ8ppY/lzx8ppRwRH/Y91h2bUujsKfqO/yDn+6mdZ3PSYw1QC70NqXYt2eq4PeDjo9VNecrzWq1b4spvo4+CbbTCc5MNdwIAAADwNeE6AAAAAOCpdlVouiS17k61jkORUqoF664OuKiWYbWCQK2g2hT1CZa+Hn0U09QK2PUJbEXUi4v7hPjmrvYcW4XV6865defauoBrdT8ppZOohzPGep/2eu1JKR2llE5TShclQLcKzb2PiIvozv3T6ILFqy6CBxm+KkYL7+zIEOP/doiBDGSo19wabzutANauXt/afrYJiR3y8dFcl/bpyrwnrTV3xDxvarEYOeebaFyXenafBwAAAGAC/r7vAQAAAAAAB+3b2E9BZ7VYuXQamqKr6Ir9H3OSUjqujL0WvhutIxGHoxR/tgqQZxeUyjnfp5Ruo96V7ywiLnc0pCl5G/WOl6cppaNaOLccN7XXthYaPhQ/R8SbNduOUkonla5z6865dQX179f9zBP3ExFxN+J1cS9B/BKmOIt+XV+XpBYsm0MAZ4jx19aIlxHxv/7D2dpQr7kbXmxnSoHLdbYZ48EeHznnq5RS62FnMc2QWuv6dOvmKLNwFevXgBHdGnmq3z0AAAAA8IBwHQAAAADwVH2K/fbVBeXZnva7lZzzXSME9DLWB4DWFmjmnGcXiGIvat3HIroi37kWh/4c9QDYcSOYdJByzjcppfuoz9XfR8S7yvZacfh96epx0HLOt43X8TQivjq2Kt3kbioF9bXX84fH9vNg2zoHc41IKb2OLqQ+hy5s+1B7XeYQwBli/LVz9e2Mr3OMZ1fzydzPz325iXqAfHIh63L9b3U0c3OUefitsV3nOgAAAICZ+Nu+BwAAAAAAzFPP4uN9FZPVujtMvWi61uXp0XBE6dCzTi0UAw+9bmyfcweyPudBK1x4qFqvTet1qW1f0vzTCr09Zt3cfb3uF5Vr77rrWO1aUAuXrt3fXKSUTlJKH6KbpwTrnmbuHZL6jr8WUnLsLFPrs8GuOtvVPjfN/fwc0/vWA0rwekr6rDkPJvh+4Fo35vi/nYwCAAAAgK0J1wEAAAAA22gVeu6qGPVLteLoqRen/lLZdpJSeuy5var8TLPgFErRcTVUkHOebVCqdAFrFSm/XnN+HbpWaHLdvBMppeOohwHmHMjcVK3DzLpg24s1/946VtcF+R7dTyOAPfvugmX++hD1AOGXbqN7nc+jCzm8iIjn0XW+fRYR38T692eWyvla83EnA3miAcdfWwfqMLRMra5wu1obzPnmIHvTc306tRsotMJ+c+4WvSg93qclfrYAAAAAmCXhOgAAAABgG783tj/fySi+9s/KtkkXKpYQUC3o8H3Pf4s4gNAEO3Pe2D7bYN0DP/Z4zE+jj2JiSlFwq+vGuiLwl5WfuVtYYXh1rl0TcHvs3+57vG5rQ9Nr9lMLYM/6GlGCdX1CnHcRcRkRz3POKef8POf8Kud8mXN+l3O+yTnf5pzvyp/7aAdu5qYWsoyY/vMdavy180u4boHK+V7zr50MpB7Cmfr5uW+tdepJj4DuTvTsotdnzco8TP3GPgAAAAAUwnUAAAAAwDauG9tbhdCDK4WTteLUWnehqah1m/tLSCKldBLrn+8hBKIYWUrpTbQDBa3w3eTlnG+jHSR6Wc6ppWmFk37Y8N/7/M6D0iMY/ZcuaJVucrXupat91fbzWJCudi2ewzXxUSmll9E+zm4j4kXO+VnO+bzMA0tVC1lGTD9oOdT4f6tsq81pHLZa6HL0zzONDqMRE+8sOQEXAz1mF1pr6vucc6uDLRPRo+u1cxcAAABgJoTrAAAAAIBttAr/jnsUnA2tVZw69eLxyDnXQnFfPr9aIfhsQxPsRgmjtoqNL3t0dZmLPiHBxXWvi3ag66uOL+X/a0HEJYZ7a4HzL1+rF48+qh6ufmjdtewv14jyPtXCs5O/Jla05q5XpUPdnJ/jkGrro/sZzPNDjb92PCwxXE2ndlwc7eDzzLprwoqwVUXp+Np6jfZ+A4WeN7TQtW5eWu/nkro4AwAAAMyacB0AAAAA8GSlkLFVMLbr7nW14tTbGRSPr6wtEC3delbWvb53C+/QQz+tIM99HFCRbzknWsXXJyml17sYz1T06LoW8fVc8/LRR3VuZjTXDql2bH35+j06d28QBFsX5Psy1F4LEsz2fSrnaK2g/YXOP5+VQEfNpAOIQ46/XAfWHvdfrLFYjtZ66PuR998KjwrotPW5gULfAPvgyrW5FQq/zzlf7mI8DKb1XYdzFwAAAGAmhOsAAAAAgG21itfPdjKK+LNosVYUPadObrWx/hDx5/NdF5x4O/iIOCglrNDq4PHvuYZvKv4dlWBF8TaltOtg8L615oxXX/x/Lci8yPmnFTj/omPOY+feJgGn2rX3YQik9j7VOu1N3ZfH40NXutV95T+N7VM/FoYef+34aO2LA9RjzugT3HqScm2orcda3WWJ3t3rjvd4A4U+nZFHO84YTa2LvGAsAAAAwIwI1wEAAAAA22qFKE5TSrXuMkNqFUTPpotNo+PO6Rd/P2Y2z5XdK515Wt0zbg6x81MJC/67x0Pf73Du2rvyXtdCh706rz34XUvVnLu/CNk91LujTinWXvd+Pf9yn2vM+X2qnZtzCtKPrgSpj2qPyTm/29FwNjbS+Gtr15MFhqvp1ObE4xGPi9bnl711W5uhPuu7i12v78q6u9UV83bKc/EUpZReftGtd9f7F4wFAAAAOCDCdQAAAADAVnp2CRj9LvylsO5N5SHvZnjn+HWv61EpCl3Xkeh2hs+VHSkFvq1C7fuod4aatRL+as1bRxFxvc+i3T2oFgGXYycaAYOlF4bXgl3/Kn//c832TbutrXu/ViG+o1gfQrub+XWiFoyYfbfNoUI8pfC/FaQe/Jyd+vhLl7La8d/aJ4fpx8b2wY+LcozXQle3OnH2V26g0OqavtP1XXmP+wQk+wQD+asfIuK/lZsWjK01JwjGAgAAAMyIcB0AAAAAMIRWeO71DoreWsVtowf8RlDtrBIR3z/h51iwlNLr6Ffo+V0pUD5YOedXUQ9XRHQBnl93HbBLKR2llN6W92uXWnPHKtBbC14uev7JOd/G+nDX6jr4WDD6KWG36zX/vgqerQvxRcy7a11EPUA3VEei2us3tq3XLGXe+rXHQ8cIks1h/LUxnpSOeSxImb9rQbYxjovWmmyOn1/2qnR/awUSj6Pf/LKVcjOUPvu5LMcfmzmJLiz5YXUDiF0p+6sFye8FYwEAAADmRbgOAAAAANhaCQS0OoeMduf2UtxWC6G8m2NQqBTkrRv3f6IrJnxMtfsUy5RSeh/9gk9nCyrwXdf98aGT6Ip2hwrsVJX57L/RzWnPdrHPlfK+1wJeq0DvumLi+wUdOzXriqlXx9BjYfONw26lA+OjSuewWqi91mFvDmrHaZ/zuo99du883SZcW+arD7F+nbByM1IHw8mPv5w/1e51Q3Xg+1JK6XVK6cMYv5uttcJsF0PdMCSl9DbqYWBd657uVbS7mJ6UtfEoSkD4OvrNY0KUT/Pw/HmfUnq/ixtilGuUYCwAAADAgRGuAwAAAACGch6NTjJjFDD2KG67j3kXt60Lyq0r7L2ZY5CQ8aSUXqaUPkZEn44O56XjxyKUUMbzHg89joiPY3aSSykdp5Suo5vPVoXBO+2YV9QCmEcl/LcuDLCYY6dhbXCtXLMee/2eGnZbF2Y8iYh/rdl2CCHIWijq5bbhlxKqGiVYtYEnda8sY/8Q/Tr4jRkgnMP4zxrbr4cM2D2Y51uhKvakzI2tsPOHbY+LEqxrnR//3mYfS1Y+C33X46EvU0rXQweyyjWozzx2H/sNcs/Wmuv8y4j4Y+T1+uq9rblb0ucpAAAAgEMhXAcAAAAADKJnEePLIQN2PYvbXs08bNan09g2j+dApZROS2ec99GviP8853w58rAmpxTS9+109TaltHVR/UPlfbqOiI/xdZhnH+GLVqjgp8o280/UO8rFmsDWFmG3daG8Z7H++DmETki/Nbb/+tRukyVAev2Unx3B2xLCaUopHZU1Vp9OSRFdl9Kx10eTHn/pCta6AcP1tkGNEqq7iL/O8/sIT9NDzvlV1AO8Ed1x8WbT312O8+toB+uW1EV4FOX16xNcO42I/w7YkfB19A8IP5/559R9+mdl29uU0h9POUdryvqgT1fVOd/YBwAAAGCx/r7vAQAAAAAAX/lPSul/O97nbSkw3krO+TaldBb1gMXLlNJ1zrlvmOVRJdzSKn4/H+J57VN5Te+iZ8imEeqYq19TSvseQ0TE7znnVpebvSrnxYvoirY3Kdx/daDHTi8555uU0ovoF6g5ia6o/ja6YNO7TQujSwH3aXRdk2rn9reb/N4h5JzvynNbV2S+7ri6LZ0A6dzE40G6xwr9tzn31l3jjmP9e/jULnlTchURF5XtR9F1l/p337mthPEuol+Xz116XcIal9HNUb/nnO9Lp6Xj6AIGr2KzTns3O+yqM+nx55wvy/xf2//blNJ5dIGn3uvKck0+X/e7U0pHgjWT9SK6MGTNRfnc0zwuyvH+Ourz1sqVrlfDyDlf9fhsGvH5mnGZc35SMKq8xz9F/2vIc+umrTxrbD+K7hy9iK6z8vunfi9Q1u0/xfp11UPvlvyZCgAAAGDOhOsAAAAAYHoGvcN6T+9ioE42Oed3KaXnUe/IcJpS+iO68NtGxaMbFL9fHVAXrqvod1wcaiHfIJ0kpqpvV581vo2uePQ4ntbl7D4ivtMd5c+A3bPo15EiojsuT6Ir3L2LiNvoOt38L7rXNcrv+b/y97dRDzw9Zl+djd6Grpnbuo7HAzWP/duTw24lgH0fXx8rtaDQrEPnEX+GQNcFGFeOIuJ9OT+vontP7iLiU3yeO7+N7pxshaum4E35E1sGzvt2cxralMf/Ktqdpo6jC1bXjqfjiPhXdMdSn7n+2/h8vWBCyhzTJ3S/Oi7uo5tbf4vuuLgv245is/nltnTOYyDls2lEv3XKmxIG/jG6z5LN8FsJXp1FuxvhQ8+tvbe2yXr6dXRB74juGvJ7dHP+7xFx92XIuXzfcBzdufsy+n/Gup36jVgAAAAAWE+4DgAAAAAYXM75rBSv1YoMj+JzJ5C30ShgTCm9jIgfol83gKsDK0x9G/3CdcIt87RJMe6QriLi37rmfFaK6f8REe9js6DNU8ONk1QK0TedT34ZZTDz1eqs9tC2Ybdfov88cnNA5/x5dMXxLcfxINg1E88j4tcYPmB7F12geuxjYFbjL530VmNuBTaGPJ6Oo3tOTNCGXW2PovuMsk3ny5ttO3vzuLKu+RTd+q7lKLrr90Xp5LsKYn2KLjS5Cma/iG6+2GT9dx861g3lIp62/l7dHONPA3VIv4+I74b4RQAAAADsx9/2PQAAAAAA4DCVu7af93joqhPdx5TSx5TSh5TS+5TS25TSdfn/HF0xZJ+C1csDC9ZFKcBsFWHe55xn342InbiLiBc551cHFLIZTM75vhS377vzxHnO+dke979JJ8wrx9Jf9Zy3I7ouJ9u+dn2CH0957KSVrj9jdmzd2zFdnts/ouuwM5Tb6EIdoz+vOY6/zP3PY3edHa+iC+0wYWVt/SzGnw/eCdaNK+d8FV3wd5Ng20l04fW30X0WvS5/v43NOppFdHPLPwTrhpFzvinr5Hf7Hkt016d/WAsDAAAAzJtwHQAAAAAwmpzzZXR39e/rOLoixpfRFTKeRruDyEOvcs59An1z1OoipWsULXcRcZZzfiaI2ZZzfhcR38Tui3avIuKbMn/u0yad63TNfFyf4NfPA+xnk/N5zDDazpUw/RhBhXc5529G+L29PQh7ncX2wZ7znPNOgnUrcx1/CTiNuZa8iy4kKOA+EyUM9Y8YZ/68j25ttu9A/yLknG9LIGvX18LznPML5/zwyrmzy2D0l652fX0FAAAAYBzCdQAAAADAqEqI55sYt4jxJiKelY4Eh+pdRFxW/lzsb2hM2H10596LEqqbQneH2SjhkLPoutaMPb9cxYQCF2Xu7jMOXTPX6xOc2/q1K8dLnw5hdwfaMed5DNch7Sq69cRkgi4551XQ7zI2D6mtns/ewrpzHH/Z39Br14cB9yE7+rEDZT3wKrqbhgz1/r2LrtuVtdmOPXgvx74mrj6j7vuGCQethCZfxO5DduflWAIAAADgAPx93wMAAAAAAA5fKfx/lVI6iS4EdjrQr76Nrqjt4IMd5TU81K58bG8VWLiLiN8j4mNE3CjgH0YJJL1KKR1F11Xzh9isq+Y6d9F1fXs3hUDdI95FxJvGY3TNXCPnfJtSuo+IozUPuR/wHP052sfkQQbQy7nzPKX0Nrrzc1M3EfE+In6Z6HkYERGlM+95WUv9EN1a6ii6rr8rd+XP5J7P3Mb/xdr1LCK+j/Xncs27iHjrenwYymeO5ymll9EdF5t+prmLbi5+e6Bh59ko7+Wz8l5exF/nom3dRMTFEj6jTkmZZ1+klI6jOz9fx9Pm7ZbLiPhxStdYAAAAALaXcs77HgMAAAAAsDAPCqtfxuaFjPfRhTneK1gE9qUE7U4j4l/RhZqOI+Lb+GsR76ro9lP5+zYifouuuP5WYT0M60EA9kV05+Rjwa276BlATinVgjO/P7WwPqV0EZXgas45PeX37srcx/9U5Xh4Fd1cvzq+jqKb6z+Vv+8i4jq648scvwAlnPVwzlmtBe7i8zFxFxE/C1lOVzm/V4HJpwSyBCcn6ItA9zY3xvD+AgAAABw44ToAAAAAYK9KwdsqoLLqYLIqhv+yKPVaoA4AmLO5h9PmPn6Ami8+n57E4zdPWHWL/hDCtLNRutqdxNc3x4j4a1h69T2EsDQAAADAQvx93wMAAAAAAJatdHDQxQEAAIC98vn0cJWQ3KoLHQAAAAD86W/7HgAAAAAAAAAAAAAAAAAA7JpwHQAAAAAAAAAAAAAAAACLI1wHAAAAAAAAAAAAAAAAwOII1wEAAAAAAAAAAAAAAACwOMJ1AAAAAAAAAAAAAAAAACyOcB0AAAAAAAAAAAAAAAAAiyNcBwAAAAAAAAAAAAAAAMDiCNcBAAAAAAAAAAAAAAAAsDjCdQAAAAAAAAAAAAAAAAAsjnAdAAAAAAAAAAAAAAAAAIsjXAcAAAAAAAAAAAAAAADA4gjXAQAAAAAAAAAAAAAAALA4wnUAAAAAAAAAAAAAAAAALI5wHQAAAAAAAAAAAAAAAACLI1wHAAAAAAAAAAAAAAAAwOII1wEAAAAAAAAAAAAAAACwOCnnvO8xAAAAAAAAAAAAAAAAAMBO6VwHAAAAAAAAAAAAAAAAwOII1wEAAAAAAAAAAAAAAACwOMJ1AAAAAAAAAAAAAAAAACyOcB0AAAAAAAAAAAAAAAAAiyNcBwAAAAAAAAAAAAAAAMDiCNcBAAAAAAAAAAAAAAAAsDjCdQAAAAAAAAAAAAAAAAAsjnAdAAAAAAAAAAAAAAAAAIsjXAcAAAAAAAAAAAAAAADA4gjXAQAAAAAAAAAAAAAAALA4wnUAAAAAAAAAAAAAAAAALI5wHQAAAAAAAAAAAAAAAACLI1wHAAAAAAAAAAAAAAAAwOII1wEAAAAAAAAAAAAAAACwOMJ1AAAAAAAAAAAAAAAAACyOcB0AAAAAAAAAAAAAAAAAiyNcBwAAAAAAAAAAAAAAAMDiCNcBAAAAAAAAAAAAAAAAsDjCdQAAAAAAAAAAAAAAAAAsjnAdAAAAAAAAAAAAAAAAAIsjXAcAAAAAAAAAAAAAAADA4gjXAQAAAAAAAAAAAAAAALA4wnUAAAAAAAAAAAAAAAAALI5wHQAAAAAAAAAAAAAAAACLI1wHAAAAAAAAAAAAAAAAwOII1wEAAAAAAAAAAAAAAACwOMJ1AAAAAAAAAAAAAAAAACyOcB0AAAAAAAAAAAAAAAAAiyNcBwAAAAAAAAAAAAAAAMDiCNcBAAAAAAAAAAAAAAAAsDjCdQAAAAAAAAAAAAAAAAAsjnAdAAAAAAAAAAAAAAAAAIsjXAcAAAAAAAAAAAAAAADA4gjXAQAAAAAAAAAAAAAAALA4wnUAAAAAAAAAAAAAAAAALI5wHQAAAAAAAAAAAAAAAACLI1wHAAAAAAAAAAAAAAAAwOII1wEAAAAAAAAAAAAAAACwOMJ1AAAAAAAAAAAAAAAAACyOcB0AAAAAAAAAAAAAAAAAiyNcBwAAAAAAAAAAAAAAAMDiCNcBAAAAAAAAAAAAAAAAsDjCdQAAAAAAAAAAAAAAAAAsjnAdAAAAAAAAAAAAAAAAAIsjXAcAAAAAAAAAAAAAAADA4gjXAQAAAAAAAAAAAAAAALA4wnUAAAAAAAAAAAAAAAAALI5wHQAAAAAAAAAAAAAAAACLI1wHAAAAAAAAAAAAAAAAwOII1wEAAAAAAAAAAAAAAACwOMJ1AAAAAAAAAAAAAAAAACyOcB0AAAAAAAAAAAAAAAAAiyNcBwAAAAAAAAAAAAAAAMDiCNcBAAAAAAAAAAAAAAAAsDjCdQAAAAAAAAAAAAAAAAAsjnAdAAAAAAAAAAAAAAAAAIsjXAcAAAAAAAAAAAAAAADA4gjXAQAAAAAAAAAAAAAAALA4wnUAAAAAAAAAAAAAAAAALI5wHQAAAAAAAAAAAAAAAACLI1wHAAAAAAAAAAAAAAAAwOII1wEAAAAAAAAAAAAAAACwOMJ1AAAAAAAAAAAAAAAAACyOcB0AAAAAAAAAAAAAAAAAiyNcBwAAAAAAAAAAAAAAAMDiCNcBAAAAAADA/7N33+GSVGXix78vOYiARDEwqIiKBDFiICgKiIo5gMjFNe/6WxOGDYqurjnsmtMyorgKKkFZMSCjCKgYEBEJhkExoCIgGWHe3x+nZpkduqs6VHXfe/v7eZ56GG5Vn/N2d3WFU+c9R5IkSZIkSZIkSdLMMblOkiRJkiRJkiRJkiRJkiRJkiRJkjRzTK6TJEmSJEmSJEmSJEmSJEmSJEmSJM0ck+skSZIkSZIkSZIkSZIkSZIkSZIkSTPH5DpJkiRJkiRJkiRJkiRJkiRJkiRJ0swxuU6SJEmSJEmSJEmSJEmSJEmSJEmSNHNMrpMkSZIkSZIkSZIkSZIkSZIkSZIkzRyT6yRJkiRJkiRJkiRJkiRJkiRJkiRJM8fkOkmSJEmSJEmSJEmSJEmSJEmSJEnSzDG5TpIkSZIkSZIkSZIkSZIkSZIkSZI0c0yukyRJkiRJkiRJkiRJkiRJkiRJkiTNHJPrJEmSJEmSJEmSJEmSJEmSJEmSJEkzx+Q6SZIkSZIkSZIkSZIkSZIkSZIkSdLMMblOkiRJkiRJkiRJkiRJkiRJkiRJkjRzTK6TJEmSJEmSJEmSJEmSJEmSJEmSJM0ck+skSZIkSZIkSZIkSZIkSZIkSZIkSTPH5DpJkiRJkiRJkiRJkiRJkiRJkiRJ0swxuU6SJEmSJEmSJEmSJEmSJEmSJEmSNHNMrpMkSZIkSZIkSZIkSZIkSZIkSZIkzRyT6yRJkiRJkiRJkiRJkiRJkiRJkiRJM8fkOkmSJEmSJEmSJEmSJEmSJEmSJEnSzDG5TpIkSZIkSZIkSZIkSZIkSZIkSZI0c0yukyRJkiRJkiRJkiRJkiRJkiRJkiTNHJPrJEmSJEmSJEmSJEmSJEmSJEmSJEkzx+Q6SZIkSZIkSZIkSZIkSZIkSZIkSdLMMblOkiRJkiRJkiRJkiRJkiRJkiRJkjRzTK6TJEmSJEmSJEmSJEmSJEmSJEmSJM0ck+skSZIkSZIkSZIkSZIkSZIkSZIkSTPH5DpJkiRJkiRJkiRJkiRJkiRJkiRJ0swxuU6SJEmSJEmSJEmSJEmSJEmSJEmSNHNMrpMkSZIkSZIkSZIkSZIkSZIkSZIkzRyT6yRJkiRJkiRJkiRJkiRJkiRJkiRJM8fkOkmSJEmSJEmSJEmSJEmSJEmSJEnSzDG5TpIkSZIkSZIkSZIkSZIkSZIkSZI0c0yukyRJkiRJkiRJkiRJkiRJkiRJkiTNHJPrJEmSJEmSJEmSJEmSJEmSJEmSJEkzx+Q6SZIkSZIkSZIkSZIkSZIkSZIkSdLMMblOkiRJkiRJkiRJkiRJkiRJkiRJkjRzTK6TJEmSJEmSJEmSJEmSJEmSJEmSJM0ck+skSZIkSZIkSZIkSZIkSZIkSZIkSTPH5DpJkiRJkiRJkiRJkiRJkiRJkiRJ0swxuU6SJEmSJEmSJEmSJEmSJEmSJEmSNHNMrpMkSZIkSZIkSZIkSZIkSZIkSZIkzRyT6yRJkiRJkiRJkiRJkiRJkiRJkiRJM8fkOkmSJEmSJEmSJEmSJEmSJEmSJEnSzDG5TpIkSZIkSZIkSZIkSZIkSZIkSZI0c0yukyRJkiRJkiRJkiRJkiRJkiRJkiTNHJPrJEmSJEmSJEmSJEmSJEmSJEmSJEkzeN0JUgAAIABJREFUx+Q6SZIkSZIkSZIkSZIkSZIkSZIkSdLMMblOkiRJkiRJkiRJkiRJkiRJkiRJkjRzTK6TJEmSJEmSJEmSJEmSJEmSJEmSJM0ck+skSZIkSZIkSZIkSZIkSZIkSZIkSTPH5DpJkiRJkiRJkiRJkiRJkiRJkiRJ0swxuU6SJEmSJEmSJEmSJEmSJEmSJEmSNHNMrpMkSZIkSZIkSZIkSZIkSZIkSZIkzRyT6yRJkiRJkiRJkiRJkiRJkiRJkiRJM8fkOkmSJEmSNDURsVdEZM2y17RjnHURsazm+1k27fi0cLlvab6IiPtExMsj4lMRcVZEXBIR10TETXXnqGnHLTXxODu7ImKu4Rp7ybRjlEbV5T2k96dSuyJiScNvam7aMY4iIpbXvKel045P/UXE+hHxqz7f3X9NOz5J0uyJiDUj4md9zk3HTzu+LngtJUmLW0R8ts8x/oKIWGva8UkaT0Qc3Oc3fnNE7Dbt+MblQUqSJEmSJEmSNFMiYgPgBcCLgLtOORxJkiRJUvdeAyzp8ffrgNdONhRJmr8iYmNgO+COwG2A9YDrgauAPwLnZ+ZV04tw8cjMmyPiNcBxPVYfGBH7ZuZXJh2XJEmjiIiHA0/ts/o1mXnTJOOR1IlPAy8H7rPa39cA3hcRD8nMBTtIrcl10hRFxJ2BZw+w6acy8+ddx6N2RcTjgKYs7Ksz8x2TiKeXiLg9cEBLxd0M3EBpUPsL8Afg15l5bUvlS9KtRMRzWioqueUYdiVwKXBJZv6lpfJbERF7AA9v2GwF8ObM/NsEQpIkSZIWnGrWmaXAttONRJIkSZI0CRFxV+CVfVb/R2ZeMsl4VrUQ+hVIWtwiYiNK36HHALsDdxngNb8Bvg58GfhiZl7faZAtioi7AI8AdgZ2oCQSbkxJJFwbuKZaLgd+BfwSuBA4Czg7M29sM57MPD4izgAe3GP1f0bETm3XKUlS2yJibeB9fVafmZlfmGQ8s6zqX3j3FopK4CZKf8prKYMs/J7Sp3JFC+WPLCJuC9wb2BG4c7XcCdiGck23AbAhsCalT+g13BL/BcC5wOnAuZNMBIuI7YE9WyruZsp3cz3wZ27ps39DS+X3lJkZEa8Geg0AsTtwKOU5/IJkcp00XS+gjI7WZBPgJR3H0ldELGf8zkYrE69WLtcAf6KcrP4I/JZywvoZcOFCT8iKiDWA91NGcWra9uuZeXb3UfW0A/DRDsvPiPgVcDbwTeArmXnBsIW0fEExdZn5sX7rImIJpXGuznaZubymjDWBi4E71JRxfGY+oaGeiau+6wsbNntBZn64oZyllIu0+ebHmbnr6n+MiHUoF7gb9XjN5cCWjtzSV5fHMCLiUuAnwGnAKcAZUx5Z4y2Um5Am5wDHj1NRi4mL88E3M/OifisjYhn155nXZ+YRbQfVZIBj2Scyc24y0UiSJC0OEfFM4EhsG5ckSZKkWfKfwLo9/n4Z5dnLVCyUfgXVIDWnDvmyB2XmdzsIp1ZEbAb8DlhniJcdlplLx6hzjtLW0LYbKf1rrqT0r/kNpV/NOZQOyr/ooM6eRtwHJuU+o/w2Wu5TcBPlu7qOW/pC/RI4H/gh8J3MvLqluloTEXcDXgbMAesP+fI7AYdVy2UR8VHgnZn551aDbElEbEsZAP9g4K4Nm29cLdtQOmyv6oaI+CGlM/FJwA9a6j/wSuDbPf5+d8p3NLVzlSRJA3oJcM8+6w6ve6H9g2+ltn/wAJ5Nt31nr4uInwHfpdwjfCUz/9pVZRGxAfBA4CHVf3diuJyGDaplC8q13T6rrPtTRBxHmQTptHYirvUQuu3venNE/JxyD7IMODkzf912JZn51Yj4Ov/3s1zpLRFxXGZe2Xa9k2AHAmlKqkbSZw24+cERcfgCn4FmTW45Qa3Ur7EiqxPvaZSGg1Mz87cdx9e2RzJAA3jlMOAfO4xlmoIyotVdgCcCRMSPgI8AS4cYuarrC4pJ63vx3IbMvDkijqI+efeAiNh8HjZszjWsvw74zATimKjMvDEiTgae0mP1psDDmL8PKxa7raplH+D1wG+q39d7M/PSSQYSETswWGIdlHPLWMl1LK7j7mFA3+Q6SZIkzYaI2BMT6yRJkiRpplQzwz26z+o3TbnD12LuVzBH6Ww5aQcxXGLdfLZOtWxE2U/us+rKaqDj44CPZ+Z5kw9Pq1irWjYENqd0LF+1g/hNEfFt4Fjg05l5xeRDvEVE3AY4Avh/lJnaxrUZ8Grg+RHxz8CHpjxg7f+qEgjfBDwZWKOFItelPLPfnfIZXhoRdxs3eTIzT4+IE4HH9Vj9LxHxyQXYd06SNCMiYhvgtX1Wn5iZpzcUYf/ghWV9yuzruwEvBK6PiC9RZoXvNVjASCLiwcB7KPdBXT3b3QJ4HvC8agCF12XmlzqqaxLWpEy6swPwDEo+xunAB4HPZubNLdb1KuAHPf6+FaWf7dQmlRpHGzcMkkbzKOpnlVrV5vS+eV6sArgX8Hzgk5REhjMi4iXVRdhCcNgQ2x5czVo1K+5DOVEvj4jDIiKmHdAi1TQy3tqUEbnmjSrp+JCGzb6wUEc0GMCJNesOnFgUanIn4J8px7C3VCOjTMow55ZHR8RWnUUiadGIiCURkTXL3LRjlNSNiFha89tfPu34pLZFxLqYWCdJkqQZ0tDmc8S045MmISLWBN7aZ/WfgA9NMJxeFnO/gqdX9+KTNjeFOqdlO8qMVj+NiK9ExH2nHZD6WgvYizJT5SUR8Z5qlsWJi4hdKTNZvJx2EutWtSnwAeC4iLhty2UPJSLWjYi3A+cBT6W7frJb0V574xv7/H1DSiKfJI0kIpbX3BsunXZ8WhReD9ymz7o3TDIQTcV6lIEMTouIUyNi9Zl/R3UX4P5M7tnubsAXq3urQQfBme8CeChwNHBhNfhQKzLzh8D/9Fn9oojYrq26JsnkOml6nj3k9sM0qi42QRnx593AxRFxdETcp+E1UxMRmwKPH+IlmzFbyZMrbQX8F/DViNhi2sEsNpl5EWXmxzpzEwhlGI+gJC7VaUoaXMhOAm7qs24WjxHz3XqU0TfOjYjduq6sevg76Iy3UG4qm5JVJUmSpFnyHEqnszoJfAd4H2W07RcCz61ZJEmSJEnz27OAe/RZ957MvG6SwaxqBvoVbMKEBxCNiJ0oHSJn0aOAs6qkrfWnHYxqbUiZhfKiiHjmJCuOiP2B04HtO67qQODMiNiy43p6qjp0nwW8gvYTCDuTmWcBp/RZPRcRXX9vkiQNrTo/zfVZ/bXM7DWzlRavvYCzI+LwaQcyhkcB50TEI6YdSMvuApxQ5WBs2FKZb+7z97VZoINDmFwnTUFE3I7hGz33i4jbdxHPArMWcBDww4j4YkTcddoB9XAQMOwIbLOcPLkP8P15+l0udE2JaLtGxM4TiWQwcw3rLwa+MYE4piIzL6d/QuR21cMgzT/bAadHxGM7rmc/YNjrgFk+t0iSJEmre0HD+lOAu2fm7pn54sx8a2Z+KDM/1m+ZRNCSJEmSpNFUs7y9rs/qqyizK03TLPQrmFvk9c03QUna+mZEbDXtYNRoU+CTEfH+iOi8D2dEPAY4Adig67oq9wJOmfQMfRGxN3AGsFD7V/TroLwWZVYgSZLmm9fTf2axt0wyEM0bawFvi4ijJnGd25FNgS9HxJOnHUgHDqL0d9183IIy89v07/P8zIi457h1TNpC3WGlhW6URtI1cQaa1T0G+GlEvD4iJjXt6yBGadDed8aTJ+8MLIuIO0w7kEXmGOCahm3mxQOYiLgt8ISGzT6RmTmJeKbohJp1C2kkylmzHvC5iHhkh3WM8lu9V0Q8oPVIJEmSpAWmGjXz3jWbfA/YLzN/PqGQJEmSJEndex6wbZ91H8zMKyYZTA+z0K/gUZOKt+ozcvAk6loA7k9JarrdtAPRQF4EdDqIU0TcF/gMg83idgNwEuUYel/gjpQ+blsCOwNPAY4CLhugrHsDn51Up+qIeDxwMnDbAV9yA6Uz8MeBfwVeQhmg61WUJLePUBL1rm492D4y8xTKrHu9PN1BmSVJ80l1Xnp6n9Xfy8xFO5GCBnIIHV/nVq6kXD99CngnZca0l1Gu6w4H/g34EHAmzf2pV7U2cHRE7NVirPPFLpR7xo1aKKtfEu0alM9+QZlPySjSLHn2iK87DHhbm4G05EhKY0KTNSgJCOtRRkLaulruDNyz+vuw1gVeC+wdEU/NzD+MUEZrqlnA7jvCS9cEngW8td2IxpeZMch2EbEmcDtgM2B7YA/K9LiDzox2R0pyyh6Z+bdRYtX/lZlXR8Sx1I/Qd1BEHJ6ZN00orH6eDqxfsz6BpS3WdwbNM/t1oamB+UTg3X3WHQi8qd1wZsLembmsaaOICGATynHsTsBDKdOU781gA1KsA3wmInbLzItHjrZ3bJsDo86Mdxilo7AkSZI0y/ZqWP/aeXBfLEmSJElqSUSsB/xzn9U3Ae+ZYDi3shj7FfSxJvBM4O0TqOvRwHydre0y4NVDvmYdSoLQRsB2lH4XOzB4X78dgU9HxP4THMD2uROqZ3W/7qjcYfoUrE951rwJZca0+1f/HtRhEXFeZr5juBCbVR1mjwE2HGDzTwOHZ+bveqz7U7X8hNK3Z33gNZQOy3X9vR5BmdHmX4eJe1gRsQclgXCdhk1vAr4AfAL4RmZeP0DZAdwN2JfSb2NPBktUHNU7gM/2CgV4A80DV0uSNClvoJyfepnEPYBG84nMnBtkw4jYgNKfcgvKPewewAHV3wZxWET8KDPfO0qgPdwIfJ8yQMJpwFmZeemgL64Gfdibcl/9VJrzFtah3FftnJl/Hi3koVycmUsG2TAi1qb0178d5f5vD2A/ynXrIHam3O+MNTtfZp4UEedRZq5e3RMjYtfMPHucOibJ5DppwiJiF+A+I778HhGxe2ae2WZMLfhWZi4dp4AqMWt74CGUhpVHAsNMOfow4EcRsW9mnjNOLGMaZxaww1g4jeC3kpk3c0tj2vnAF4HDI2If4HWURJUmDwJeympJpNX+tbTFcAGIiGWURq9+Xp+ZR7Rd74QdSX1y3ZaUi926GdMmYa5h/bLM/FWL9V2UmZMYFWMomfnLiDiX3jMq3C8ibp+Zv590XLOgeqh0ebX8AlgGvDEi7kF52HXoAMXcDvgg5eFdmw6m+SFAP0+PiJcO8lBgdYMmVw8jIuaofwg18A2ipMWjSoJu/Zij9mTmXtOOQYuT+5YmaJeadVcDX5tUIJI0CV21p0qLnfenUrsyczn+pjQ9h1AG+u3lxHnwvG2x9Su4Eti4z7pDmUzH2rmadXXxTcLVbTybjohNKB0fn0dJ3mqyL2Xw74+PW/cg5uPz9zGN3KegSsZ6EPAPlJneBknEelNEfCkzzx+lzhpvA+7SsM31wNMy88RBC83M64DXRsTRlLa1O9Vs/uqIOCYzfzJo+cOIiLsDx1MGaK9zPPDKzLxomPKrvgQXVcv7ImJj4CDK99urE/G4jgP+SOnPs7oDI2L7Yd/DfGJ/AElaHKrz74F9Vl/KEP1R7R88f2XmtcC1wCXAj4CPRcSGlHuSf2Kwfv5vjYgTx5iw4PeU/ugnMODgCP1k5grgFMqsba8H3gfs3/Cy2wNvpMyEN29Uk9j8oVrOA46tkgefQOmzP8iMx0+qJjY6ZsxwPkLvQYwCeDmljWZBmMiU25L+j6ZZ605pWD9OI+u8lZk3Z+b5mfnxzDwI2AZ4PPClIYrZGvh6RHTRcNGoygJ/Zs0mV1M/e9AOEfHgdqOavsz8OuUC9Y2U2cea/GtEbNZtVLMjM78F/Lxhs7kJhNJXdaO1e8Nm05hlblr6NVgH8LhJBiKozk1zwJOAvw7wkv0jYt+Ww6g79ydwas36TYAnthuOJEmStODUdSD6SfUgRZIkSZK0CFRJLS+p2eQjk4qll0Xar+Bs4MI+63aMiEESwUZW9S84oM/qK4GvdFn/pGTmFVWy1wOB5wBXDfCyN0TEqIN4akRZnJmZB1Nm+PjpAC9bB3hXm3FExI40zyh4LfCYYRLrVpWZF1AGRP9lzWZrAR8Ypfwm1f79GWDTms2uBw7NzCe0kZSWmVdm5gczc0dgH+C6cctcrfy/0T/BoOkcJ0nSpLyU/gPqHFmdz7QIZeY1mfluykRD3xngJesDbxmhqrMo/YrvkJnPz8z/GSexbnWZ+cvMfDSrTQbTx3Mi4s5t1d2VzFyRmZ8HHsDgg6y8o2qnGMdRlGvuXp4WEduMWf7EmFwnTVB1Q39wzSbXUrJzr63Z5mkRsX6rgc1Dmfm3zDwhMx8L7AacPOBLtwC+ERF37C66vh5LfRb+F4APN5SxWJMnV2TmvwL/OMDmtwH+vuOQZs3ShvUHRMQwM0W2ba5h/VXA5ycQx3xRN2qLyXVTkplfoDSMD3KD9qq26o2I3aifZeM0SvJynUV5bpEkSZKGsFXNuj9MLApJkiRJ0iTsR/+ZhJYDX51cKD0t1n4Fn6hZN9dx3QdTEpN6OYaWE1+mrUrc+jhlhoWrGzbfhv4zimgCqtna7gd8a4DN94+IQWaYGNS/Ams2bPOKzGwaCL5WNQvJ04CbajZ7aEQ8epx6+ngTpWN3P1cBj8rMozqom8w8JTNv6KDoj9J/APNDI6IumVCSpE5Vg1s8q8/qpJzHtMhl5iWUiVfOHGDzp0TEdkOWf0FmfqeaRbgzmfkq4EMNm60J/F2XcbQpM6/PzOcw2OAddwKeMWZ9lwOf67N6bcqMzwuCyXXSZD0WqJuR67jM/D1levd+bkuZPWdmZOaPMnN/SoPrlQO8ZCvgMxGxVqeB3VpTA/YngWOpb7h9akRs0F5I80tmvpf6RvWV5joOZdZ8AqgbhX9t6hN/O1NNQ9w05e9nq+mlZ8VZlKmse3lERNxmksHoFpl5FvDCATbdOyKWtFTtIOeWU4Hf1Gzz8IUwcookSZLUobr7qKZOaJIkSZKkheVlNes+1nXHvAEs1n4FR9H/mfTTO549ba5m3dIO652qzDydwWawmqk+RvNRNcPGE6mf3W2lQ9uoMyJuX9VZ5xSaOxIPJDO/D7y5YbPXtFHXShGxM2XWnH5uAp6cmae1We8kZObPKf0AetkQeP4Ew5EkaXUvAPrdj5ySmYNc82gRyMwbKfcbTYOZrkn/hMz54JXA7xq2WYgTY7yScs3fpI0BfD5Ss+7587ANoyeT66TJenbD+qNW+28/83EUss5l5icoU7z+aoDNHwK8vtuIbhERW1NGwOvnEuAbmXkVcHzNdrOQPHk49bMzAmwXEXUjS2kI1QgRX2vYbG4CofTySKBppskjJxHIfFE90Ptin9XrAvtOMBytJjOXUhIgmzxh3LoiYl3goJpNrgeOrfaZT9VstwYtPYSRJEmSFqi6Dnx1g9FIkiRJkhaQiNgB2Kdmk7rnKZ1bzP0KqmfS/Trt3Y6OOiJWyTX9+hZcmJlndFHvPHIkcE7DNntNIA41yMzLgH8aYNOxnzNXnkYZaLnOa1pOOH4L9YOmPzQiHtBife+hfma+12XmtGcrHUfdOetFERETi0SSpEo1mcILajb55KRi0fxQTSr0bwNs2jTww9RU9+Dvadhsl4jYeBLxtCUzb6YMyNJ0zf+wiNh8zLpOAy7us/p21PeDnTdMrpMmpBoRqC4h4nfA16t/f536DOg2Z8RZUDLzZ8CDGSzB7hURcbeOQ1rpWUDdTHlHZ+bKzloznTyZmX8CPjzApnt0HcuMaUpQ27V68DBpcw3rL5iBBx69nFCzbiGOgLHYvHGAbdo4hh1IubHo54TMXPlwouncMmfjuiRJkmaY18KSJEmSNBvqRsL/fmb26+g1KYu9X8HSmnVzHdVZ9zl8oqM6541qfzmmYbOtImLTScSjRscCFzRsc5eqj9m4DmxY/4PMHGRQ2YFl5rU0/+7amplvP2Dvmk1+CLy1jbqm6ATK7Hu93In69y9JUlceQf/JFP4GnDjBWDR/fBz4fcM2O0XEJpMIZkR1A9xAed68wyQCaVNmnkvze1uTMqnRuL5Qs24+z1z4v0yukybnWdSPlvO/jaTVf4+u2TaY3ixTU5eZfwD2By5v2HQd4B3dRwQ0N1yv2vD9NeovIvaKiO3GD2leqzuBrnT/zqOYLcfT/JuZ6AOYahSHxzdsNlOz1q3iFOCaPusOiIi684m6dzLNM3C2cQwb+NySmedTP6PeXYA9W4hJUksiYquI2DMiHh8Rh0TEMyPiwIi4b0RsOO34JEmSJEnS/BQRd4yIh0fEEyPi0Ig4KCIeGxE7RcS6045v1kXE7SLiIRHxuIg4uGr3eXxEPHChjW4tLTTVIIMH12zy+UnFUmOx9ys4jv6zVu0bEVu1WVlErEX/0e9X0JyguFh8vXkT7tR5FGpU9Qf74gCb3neceiJibWD3hs266ovRVO7TqvjGdXjD+ldVM3UsWJn5F+DUmk0WRAdlSdKic0jNum9k5hUTi0TzRmbeAPxPw2YB3G8C4YwkMy8CLmvYbJtJxNKBSfXZ/1zNuofOwzaMW6kbDUlSu4ZpJF35/3UNAYdGxOszs2mqzkUpMy+IiH+gPgkR4MCI2C0zf9hVLBGxO3CPmk1+kJnnrfyfzLw5Ij4NvLxfkZTkyde1FuT88z1KYsoGNdvcdUKxzITMvKHa7/6+ZrODIuLwzOw38lXbng6sV7P+ZmZ0mvDq+/oKvafC3owySsS3JhuVVsrMGyPiTMpIPP1sExHrZeb1o9QREXcAHlWzyaXAV1b721HU3+QcBiwbJR5pUiJiDWA34GGUB4d3Ae4MbARsSBmd8RpKY8avgAuBM4BvZeZvpxHzoKrObU+gzED6SGDzms0zIn4EnAQszcxfTiBE9VA94N2D8p3dmzIK1abAbSmjrl0O/JZyfXsacOKox/7V6t0CeCzluL4rcAdgY8rv4Frgj8BFwJnASZn5g3HrVDsiYlvKd3aPark75frtttWyPnA9cB3lfH4JZaTiHwGnZebPpxD2zIuIO1J+6w8Gtge2o3xvG1LaT68BrgJ+DfwC+AHlN/+jVUaTn7ci4jbAfpTBFu5Nud9eeUy5AfgrcDFwPuW8etJ8P6/2EhHPqVl9m5p12ze89lYy82PDbF8nIu5NufZ5AOW72ZZyvNgQSMr+dwXl2ufnwHco1z6/aCuGLkXEEmBfyrXdDsASyrXdbSj3/VdQ9r/PZ+bbpxLkEKrOuveulpXH+rsCm1De122BtSnH+WuA31GO9edSRkxflpl/nnzkkxcRW1Ou7Vd+TjsAW3LL57TyGHQd8GfK53QR5Zx4Rmb+ZAphj6S61n9EtexEOZes3CduBK6mnEMupFy/nVw9pJ1J1e/o/sCjgV2Ae1LOuxtzy3Hv95Rz7veAbwBnzqdnIVUn7t0obXT34db3rkm5bv8L5fh9PnA6cGo1eOBMqY4H+1OuRe7FLee6NSnXWFdQfv8/pXzfp7RxX7WYRMRGwFMp94l7Uz6/fm6u2i5XtinMm31usf52qsHwHk0ZTHBfyj183fY/o3Q2Oiozz+k+wtlWnaf3oHw3u1Du0zelPKO8lnIc+g3lGPQ94EsL6X4oIu5B+U09gPKb2o5b3t/alPPqynu+lfcT38zMn00l4O7tSTnP9DPV5LpZ6FeQmddFxDHAc3usXgt4JvDOFqs8gHKf0cspmXlJi3XNZ4O8z7q2EU3WqcArGrYZt9PpzkDToAunj1lHP+dQzq8b9Vm/GfBQ6pPGakXErsDDazb5XmYOknS6EHyO8oyqlydFxIuqGQPVgojYjHJueQil/W9bSnvFymc7VwDLKdeOp1Pa0ps64WsRsp24W1W/kZ0ov8X7Ue51Vv4eN6RMLLTy2clybml3PTUzl08+4uFUbWX7Ag+k3KPehfLeVl6vXUm5T12Wmf3uBaaiGii6V3/GlebDgCaanmXA3zVsc1cGGxxkWi6lXK/2s1AHS182wDZt9Nk/k3LO65WEGJTk3De0UE93MtPFxaXjhdI5K2uWH/V53Q8bXvfwCcW/vCGOuSl+tic2xJbAkR3H8JGG+v+xx2t2bnjNciAm8Pnt1fT5dVj39xvq/u0E3v+yhhiOmMI+vWSAfXrJiGXfd4CyD5zgez2zIZaTxih7aUPZSyf93Y7wHg6tif+d045vviwD7NN7dVTvOwaoe/sxyv+nhrLf3eM1m1E67fV7zTXARlP+vuYa3tfyKcU1784HVVwL/lg2xHvdHng35Qa76bfVa1lBeYDxAmC9DuNc0hDHXI/XrE0ZNOP3I763mymj/d59AvtU28vyAePaq6GcvcZ4zyOVTWnoeRsleW6Y9/wX4O3AxiPGuydlhtS/DVnv2cDjO9z3l9XUvazl8ia9DLSf1ryXLSmdgj4O/LKFeC6kdIjaZoLHri6WWx0PJ7FvDfm5rA+8iOb7krrlEkqHsLt2HOtInxPlweNRlIf+w7yvFZSHGo/o8n118DlNbB9vIdZtgH+jdG4dNY6zKR2xRjrntPS5HtHnNRtQOlKePcT7OX7a+1DNZ7AD8A+Uh8J/HnP/uZmSxPpcYMMJxD7S8WPEum4LPBl4P3BeC7+1X1Puve82gc9paU0cy2tetx3wXkqnwWHf33eBJ9FRGzDN999LJl12tY+8ktIxZNjP62JKp/INut4fGt77gyjPA0Y9FtxMSR47GFhzmu9lQp/Xw4ATqvc9zOd0DfBB+lxjMQ/vIbsqm9Kp6k0Mf2+6crmRMnNIa/cXi/m30xDDET22D+A5jHdNdypwvxZiP2KMGEZaBoxrSUM5cx1+n1sCbxlxv/sWJZm153ma+mfnSyfwm9oWeCMlMXnU7/Bcynm50/uJSS+U9pl+7/kn8yC+xdyvYNkq29b1jzmn5biOq6nroFW2W9rl8YgpP/8C1hngd/+AjveB7Ho/7OBza9ovlnZU7/YDfF9vHbOOgxvKv5pur6u+0VD/W8Ys/z8ayj9s2vtXi5/llpT22n7v9ZnTjnE1t6XVAAAgAElEQVSE97S8q9/dqGVTEnhOoAz02vT7XHX5G+VcNPY1/RS+h0Mb3tt2LdVz+ACf49Et1RXAn2rqedeY5c/7dmKar0m6WJa0GP+OlH4jl4wRz3eBF9Jtv5HlNfUv7fOatSkTEXx7iPdydlfvYYz3fkhNvCuALaYd42rxLmv4jI+YQkxLuv5dMb3r3HsP8N7eNO39ouE9nNEQ/xPGLH+uofzlHb63pnPX6S3V876aOi6a9nfctKyBpEl4dsP61Weta/r7Sk2z4c2ClckHdZ5ejSzTuojYAHhazSY3AZ9e/Y9ZRqL8cc3rtqV+lKXFoGnknrqRVzWCLDOaNI2COjeBUIiIHSgP1OscOYlY5rEvURpTenncJANRT4OMPjbOcWyuYf2trhGyjIhWN736BpQRrqV5IyLuGBFHAz8DXgLcftSiKA/sPwj8KiJeXI1mNlURsQtldqO3AVuPWMwalJHPz42If5kP72sxi4g1I+IVlI5xh1NGFxzGppREh/Mj4sAh6l1SzVq7jDJK3VpD1rsLcFxEnBARdbMiqgURsUlEPDsivkpJCv4k5b5/3NGEoXSsOAJYHhH/6ffZvup3/lLKg6/303xfUucOwMuACyLiqIjoNQLbxFX76Eco7Q6H0DxK9a2KoMy+9PWIOC4itmo7xlkVEZtGxPsoybj/wngjAO5CSei+OCJeFxF1M8NPTEQ8hZIo/BFKjAtSdW5+dUScTZk1572U0VjHbWNcA9id8vlcHBH/WM2UuyBFxAYR8bSIOI4ys+6xlMTle7ZQ/J0oyVQXRsSnqtlh54WIWC8i/p2yr/8Do80A8QDK6PPLIuJubcY3H0XEIZRj31uBO45QxJ0pyZbnRUS/Efs7ExEPi4hllKT85zL6sWANyqxjn6JcPzy+nQjnl4i4fUR8jpKc8jgY+nn0BpTBc86PiH+vZp2aORGxNyX55Z8Y/t50pbUp7YwXDjtTbxsW82+nmp13GfBRxrum2wv4XkS8d1b39bZF8VJK4tmrGG2/exhlgNdvRcT2bcY3juoa9ShKu9U/A+NcQ+xIOS9fXF33Lthr0pWqdtO652enTCqWXmapX0FmnkG5Vu5lp4i4bxv1RMQWlNmFermSkuwwKwa5J7mi8yg0qEGeM4870+CdG9ZfmJn9+iK04acN60e+r6uO93XPvG+k3G8vCpn5R+r7+TxhUrEsRhGxTdWu9W3KdcSaQxaxFuU57vci4iPVrOMLxTca1rd1ffGIAbbZu6W6dgHqnqs1vedbsZ14MiJip4g4AfgJpd9I7YzwDR4AfIDSb+Q51SyDU1W18ZwD/DclmXchqzvvnJOZf5pYJJqPuu5POQn9ZkZfaSHPOjqpPvt1MxPeLSJ2aqmeTtgpT+pY1Uhad1Pfs5G08ulqfT9PjIj5fqLpVGaeC3yhYbP1gIE7tg7pSdSfUE6uuWCc9eTJphP1+hOJYvY0JawdMKEOvE3792WUB5czq0qUOqPP6rtFxL0mGY9uZZCbwZGOYxHxMErH+n7Ozcwf9Vk36+cWLSAR8TzKjBYHMfyDijpbA/8JfCci7tFiuUOJiP0os+m11SiwNmWGmy9HxLgPVdVDRGwCfI2SqDDutejWwBci4mUD1PsUysw+jxqzTigP/s6YT53PF5uI2A64lDIS+iNp9/i1qrWBFwM/jYj9O6pj5kTEjsBZwLtobhgfxpqUJLbzIqJpgKVORcRulIePz6UkyY3r8cBZEbFzC2XNtKoT+M+Av2f4hMc6G1OScs+JiN1bLHcoEbFu1dH3GMZ78D11EXEw8CvgzXSbILgZ8B7gzPnUaXtQEbEOJaHuM5RjRVcJAUEZcf/ciDi0ozoGD6ZcC3wfeA3DD4jQyx6UDlhtdSKaV6oEzGMp7RVtDIC3LXByRLy8hbIaVUnRR1KSxPZsufi7UgbI+Nxies4TEY+g3N88qYXi1qL81r4TEaMOxrMgRcQc8FXKPt+GDYGPRsQnIqKNY1etxf7bqZJCvks5hrdSJCVZ+4yIGHVwJgHV862TKfd8bewfDwV+HBFPbKGskUXEGhHxKkqiwiG0cw2y0saU694fTLMttSX3p74z9bIJxdHPrPUr+ETNurau6w+mtKH1ckxmXtdSPQvBFgNss5A7gS42Vw2wzbj32E37xOVjlt+kqfydxxgoak/qB7T8ZmYO8hkvJMtq1u0zywk544iIR1Gur9oYvCMobfKnR8SdWiivc5n5G8qAFP0MkhRXq9o3HzrAprdvqQ9UXcw3Ad8cpjDbibtXDWL2duCHlOfcbSbCbU0ZEGfZtNqVqnu5t1ISOxf6/dbK3/Q+NZssm1Aomr866085CRGxJs2Dwv9yErF0ZFJ99r9F/aRJj26pnk6YXCd178lA3agkX83MS3utqEaf+UrNazegTBU86z46wDaP7ajupobquobuo+k/KxWU5MmNhw9pwWhqKKtLLNXojgb+VrN+bcqDiM5UF6GHNGx2dGbe2GUcC8QJNeucvW66BmnsH/U4Ns655UvAX2rWPyQi7j58SFJ7ImKdiPgY8GHqr5PHdX/guxEx8ZvyiNiHkiS+YQfFP4oyk9Coo9arh4jYkpIM2Wan5jWAd0bEi2rqfRHwWUpHprZsD3w1Im7XYpm6xbrAOhOsb0vgpIj4hwnWuShFmU3yTOA+HVazMfDxiPjgJDotr646553GaDMC1bkT5dyzQ8vlzoRq5ozXUwaH6nIWwO0pD4knnuBZJf6fQvO9/kIx6RGm70tJrlpoI9auQTfXu/3cBlhadUaYioi4HyWZYseWi96Ucr4fpLPRghERm1Eeoj655aLXAN4xyEAW44gyE/n3KbN+delJlGPAXTqup3MR8TTgy7Q7iAHArpQOZktaLndeiojDKIPkdXE9+SzKQDCd3dMs9t9ONbLyqbS/nwPsBpy2UDrjzjcRcQfKeaeNwYtWtT5wbET8XcvlDqQ6n34ZeAulb0BXdqK0pe7XYR1dqxucKCn7xzTNWr+Co4AVfdY9o6VEkLmadUtbKH8heUDD+t9kZt3zQ03WIL/Xa8aso+mc0fVMhk3lr8XoiSpNs94NPTPVAnBqzbrbMljyklZRXdudxOizhPezE3BKRHTZDtymut9LGzPXPYjB2w/HTuajPubvj5B4aztxh6p2ntOBV9BNG8hKe1AGE7lfh3XcStU/8hjglZOst2MPof53sWxCcWj+6rI/5STsQf119K8y87eTCqYDE+mzX917/rhmE5PrpBnX1KHlkw3rF+IoZJP2NaDphPXIiGh19ORqlOK9aja5Avhiv5VVUuVXa16/Pos7ebJppOJZGkluYqoRD/vul5W5jsN4JLBNwzZNM+zNirrkuq5m5NRgBhltfejjWNUp9Sk1m6ygPETtqUpK/WxDNV47aGqqB+bHAJPqjHJb4ISIaGPE/IFUIzwfS/8Rc9vwQODzjkTZjojYkPIAratZYf8jIm41mn1EPB94P+2OwLfS3Wm+l9TCEcB7I+IF0w5koYqIZwCfZ3IPQl8A/Hf14GwiImJPynvsqrPlFsDxEdFlZ87F6n3Aa+nmeL+6dSgJnv84gbqA/72++xzloapGtwklOX63aQeyALwyIt486Uqr0bNPZrAZIUaxPuUaf1HMWFS1b/wPpVNQV95RDWzSumomwdOBSSXt7EBJkF6wCXbVDK2fprt74W2BLy2mWf56qe4dP9RxNY8FPtZFwYv9t1MNzPMlur2vuBvw5cW+r7etSkA7FbhnR1WsAXy4mt1kYqqEwTNpP2Gwn5VtqQdMqL621SUGnjPNxKJZ7FeQmZdQBmHpZXPGHBw5Inalf2LOhZl5xjjlL0BNv9uzJhKFBjXIc+Zxk9+arsu77o8zSPmjtoHs1bD+uyOWO599i/4Jy1CfYK7VRMTTgY/QXTLP9sBnImIh9M3ud64G2Coi7j1m+cMk6I2VXFcNeFg3u/hCSbydiXbiat/6LqOfC4Z1e+BrE06w+zBlYKDFpO6eaz4MaKLp66Q/5QQ9o2H9yROJojuT7LNfNzjEg+fhAEH/a+IjKEuzpHqYU3fR/lfg+IZiTqQ0mvQbKeVBEXGPzDx/hBAXhcxcERFfoT6RcUPK6KZtNqLMUd8x6tjMvL6hjKOob+Q4jHKhvRg1TZ/7p4lEMZuOBJ5Ys37XiNg5M8/pqP65hvVnZ+bZHdW9oGTmzyPiZ/R+IPzAiNiq3+yn6lzTMQxGO449hTIafz+nZObvGso4CnhhzfpnRcS/ZGbdKKdSV5YyXHLwT4DvAL8ArqQ8DNycclzci8E6tq5FSXB4TGbWdUBow5qUwTP6XbtfDPw3pfH+Z8CfKSMOb0x50PIwyqwO9x+grocD7wH+fryQRelU2K8hPYEfUTofXAr8kZK4siVl9qs9aH5IvRalA9bOmfk3gIh4GCXZop8rKfvJ8qreqyj7+x2BfSmzSDU5ICKemZmfGmBbtWsFcBFwDuX7u5JyX381Zf/ZhHIs27Va1h+w3PdGxE8z87TWI17EImJ/yvXRoIluf6aMrHhe9e+/UToY3o2S3LzzgOU8Gfg43Q9eQkTclTIwR7/R5m4GvkfZJ/9YLetQjmXbA/tQ3mOTewD/DrxkzJBnRkS8Ceg7g2kPPwe+TTmGXEFpd7odpeP4Hgx2/Ad4T0T8NTMnMXDNGynnpn7+Qulkfz7we+Bayr66GSWxfQ+6S1bq0vXAT6vlL5Rj/ZWUB0+3pVzfbUO5xrgngx2DNgBOjIhdM/PPXQQ9BUm5nvkx8DtuOSf+lbIfbELZx3emXFsNmkjw6oj4cWZ+pu2Ae6lmBP4y9Q8ef0y5Zlx5nIVynF1C6RC/+QBVbUlJqnn8qLHOE0FJsqqbPePXlM4Wf6B8XtdSjgW3p8wmvf2A9SyNiB0yc9xZHW4ptCQHncTg12jXU547nAtcRjkmrKDMVroV5T5vkNlf7wScHBH3z8wrh417mqoOX0cz+KCuK7//84HLKd/lppRrjb2AO/R53Y6U66v3jxHufLYR5b31m1XuPMqgWt8ELqB8dlA+ux0on93TGCy56JCI+Elmvn2cgFc1I7+dDwN37rPuT5Q2n69R3tMfgRsp3+vKe4knMFjn0h0px9HHjBnvTKgGeziewc4dUM4536Kcu39P2RdvA2xHaZO7H72PZ2sCx0RE2zPY9hQR21B+73cd8CUrKPd836fsj5dRrk23qJbdKOfmpuvSdYDPRcRDMvOHI4Q+FRGxKfVtqtNOtJpjNvsVLKX/DFOHUmZ4H9VczbqZGnQsIu5Jc8ftz08iFg3sHgNs84cx67ihYX3XnVkHKX+Qa73/IyLWp/kZ2o8GKGcNyoAQd6PEuj7lmuBq4BLKrCTz5r4sMy+PiPOAfolO+7K4ZkbqTETsTjlP9Lt/vZFb2jL/SLmuWvlc8F6UNotB7nn2Av4f5VnufHYqpf2u33XKwyn3N6MaJmFuz4hYIzPrEknrPICGvjYjltvEduIhVfdUpzJYeymU53Q/pBzfL6uWGym/yy0pMyTuQvMAh5tQBrO5b2b+eoTQBxYRL6R+wOmrKAOpnAf8hjJj7bqUNp57Ag9m8OdBk1Q38Mv5zpQsuutP2bmIuA/1OQgJvHdC4bSuGhS46Xlsm9/N6cBL+6xbi3KNcVyL9bXG5DqpW3OM2UiamddHxLHAc2s2Owx41fDhLSpfp3mWwN1oKbkuIoLS4FtnkEbb4ymdSfp1HHlgRNwzM382THzzXTW6Z9NDrosnEcuMOpnSGFs3EvYc8LK2K46ITWhOqnDWuv/rBHp3iAg6HGVYjZpmZbiR8mB+WE2zyjWeWzLzOxFxIWXWol62oTR4fHnI2KSxRMTLgIMG2PQGSmey92fmL2vKC8rDolcDezaUuTbw6aqhtMtrjH+gJMqs7lLK9fqn+iS2/rlazgTeViVe/Wefslb1oog4KTP/Z8D4/ovSYX9VmwFvqXnNkYze+eSqEV83SQfRe1TnyykJJP+dmX1nya5GU3o55aFl3UzZ96DsH++uroWPpXebzFeBtwKnrUzE61PvQykNd037yJsi4tjMbHqQPmlvByaR9BeU2aLu2HE9KyiJwMdROuidm5nXDvLCqhFzb+A5lI6W/TrSQtlnPh4Ru2TmMKOG/ZnebQqHUR7O9HIZ5fg6qtPHeG1rqkGPPs1gbaCnAm8Dvlr38LYq88WUhKm67wvg0Ij4QWZ22dC+DqWTda8OKxdREp++VPdAq+qM+njK8We7hvr+PiI+kJkXjhhvZzKzbxtcRCynzHjTyycyc67teCLiicA/DbDpCuATwHuaBrmJiAcDhzNY4s0Hq07z3x9g21HtTknO7OV/KJ1HTmn4Ta1B6WRxn/bDa9V1lM7yx1PaFy8YdMCSapbcJ1Iepjddt96B8rk9c/RQp+5syud0CmWGkL8O8qLq+v6BlHPi06jvDAPw/oj4Rmb+sWG7NiyldzLF74A3A5/PzL5tAKvs5++gOUn7wIjYOzPrRvWc715G75lIrqNcwx6VmT+tK6CaKfBNNB/v7kC5Fn/dCHH2qnd7Ssfjpo5yKyidwd8PnJGZNzaUu4Syb7+EMhBgP9tTBmx53GART191jPsMg82eeyLwlsw8s6HMhwGvoXcCwZMZv6PxfPUGenec+gXwssw8sc/r/lAt3wReHxGPA95N8+xxb4yIr7Ux0N2M/HYOpPc9+FWUY9AH+tx7X05Jvj4LeF9E7Az8B80zrhwQES/KzA8MGN+JlI7gq/tozWu+WL1uoTsCeOgA2y2n3B99uu6eukpqexGlA9Dqx7aNgQ+OFOUQImI9yvXUIIl13wXeBXylKQmgSkB7MvCv1HfUXA84rurMe3nNdvPJ/alP8u5qQNFGM96v4DhK5/JebRb7R8QWmTl0572qHePgPqtXMEPJddXx4sPUt339BZPr5pu9B9imMUGsQdMAJP0GiWzLIOWPMvvwjtTv73/OzJ6z/lUzrD+dcl23N/XXl0TELyjPx04EvtzmoC4jOof+yXU7RsSG8yDG+W5Tyv1rr0Ezf0B5LvjVzLy6XwFVguczKW0WTR3UXxcRR83nZJPM/HNEnEP/2WAfQXlmPbSI2IDS1jeoTYD7Mvpsq3WJfNfT3mAL872d+HR6PxN8C/0HDjuD8frqDZwAGBGbU2aEHySx7muU++dTm567RsTWlM/qNZTB3PrZnHKv86C6Z/FjugvlvquX04F3AicN0CbyIOZRG2F1/Ktr257aPZfmlab+lDAP+4VXx5BPU58A/YV5dr89rN1obrtt87tpOiY8kHmaXEdmuri4dLBQGm8vpmQr91v2GLCshzaU8ztgzQ7fy/KG+ufmwed954YYE/hYi/Xt01DXL4Yo62MNZb2tw89tr6bPraN6nzLA9/WeCew3yxpiOGIK+/KSAT6bJS3U89aGOi4F1urg/b2wod4bgM1aqGdpQz1LJ/3djvFedq95H1+cdnzTXgb4vezVQZ1bDlDv2SOUe7eGMq8CNhiwrH9pKOuYKX1fcw1xLZ9SXPPufFDFtZiOZTtSkk6bfjvfA+46QvnPoowm2VT+N4EY430sGaCO1ZdvA1uNUNc6lIfiTeX/Bli/w/c0N4H9Y6+GGPbqsOxey8cZ8nqE0pB8WUO5F3PL7Iarr/stcMCQda5Zxdr0fg5p4TtaVlP+sq73kTHifvMAn89/DVnmPVZ57TnA84AtW4r37pTjVFPMr26pvqU1dSyf0HfU2b5FSa789gCf51+Bg0cof3vKA/em8m8A7tHh59RruY6S0DvUPR2lA+VnByj/w5PYP1re15bXvJ+lHdS3FaUjddNneRFw3xHK348ycnJT+RcC6475XobZ95JybbLPtL/zMd/zC6r3soKSJPh4BrwXG6DsfRv2x5XLg1qqr+74sWzMstdbpaxfUhKqtm0p7ttTki+aPqcPtVTf0iH385spHfmH2i8o12/vGqD8r7TwnuYa6ljSYdm9lmOBO45Q11Npvpf8Sxu/UcpgGT8d4L18lRHuW6s6tqZ0vmqq41lt7NuTWCid7Jrez1+Ax45Q9pMpHfJ7/Qbr6ttrjPez1xTL7rUcB2w0Ql23pQza1lT+WYzRTrLYfjsjfD/nAduPUM/KgWCayr8K2LrD93TEOGUPWP+Shhjmxiz//sBNA3yW7wXWG7LsO1MGwupVXt1xaGkLn9sg7T2/APYesfz1KAm9KxrqGKrNZJoLZWCTuvfy4CnGNiv9Cpb1ed1Hal7z0hFjeUJNmV/r85qlHR+P5hrKX97Bd7IxZVDdpuPF/5vQPpBd7X8d7tdN+8XSDupck3IMr6v3b4zx3Keq5xUNdZzf8Wf7XwPsm+eOUG7Tb+07PV6zEeVZwRUDxNRv+SslGWKbKe6vr2qI8WHTim2E97K8q99dQ9m9lsuAZzDkfRHlGDzI85zXTPvzHuC91LVVXcGIfVIpAz4P+1sb+fkXt8zC12v5xohlLqZ24s5+d0PEEJSEuab3/ANg1xHr2JjB+li8tsPPs9dyOfCMSXzOHX5/D254j/807Rj7xL2sIe4jphDTkgH2mSVj1rG0ofylHb23kwZ4byP9vjv8PnYCLmiI+U+M0O+rT31zDXUt7+h9Hj7Ad/OSFutbg/p+fKdM+7vvt9SN3CRpPI+g92i2Ky0HThukoMz8NqVxpZ/bUzrVzKwsUzXXjsZH75mfRtU0s9AnhyjrEw3rD6lmM1hMXjjANq3MMqi+jmxYvyXw6A7qnWtYf2JmXtZBvQvZdynJjr08ohrtSZP1ggG2GeUY1nRu+XwOOAsOtyRu9PO4iKgbrUlqTTUy74foPQrgqk6kPPipu+7tKTOPAvagdNirswfN56I2fRt4VGb2O473lZk3ZubzKZ1/6tyR8pBU7TgiM/9u2OuRLDMN7Ud56N3PnSkPX1cfYfDnwEMy86Qh67yZktj1xYZNnzdMuYtFRDyP5pnXljHYeX1VSZmJZ7/M3DkzP5ItzZiTZSawvSizTNR5udeAA3kOzaPj/ZFy7jl62MIz86Kq/KbZgNehnAcn5S+UxKb3ZeZNw7wwM6+nzOh5fMOmz6xGWFV/76J5hO7vAvfPzB8MW3hmngw8gNK+WGd7Bps9ry3nAA/IzK9PsM4u3EB58LhTZj46M48f4l6sVmZ+hTLKeFO78GvbqG8CvkeZZW77zHxXtjRLdGb+PjOfSJkxps5hEdH1DLWrux54cmYeMex+kZk3Z+bLaL7Gf1Q1U+pi8VbgqZnZa0alWpl5DKWTW51NKfvhuF4P3Ktm/QrKYEb7jXLfCpCZf6CMUN50vffOiNholDomqZphsKmt/w+UhIam+5ZbyczPUQafXH0E9Fl5vn0s5Xgz9KzwWWYNfRLNo//ej/FnS53V3875lGTLi4Z9YRZvAF7esOltKDNiqL/3UD+qOJTknRdX9zsDq54970nvdpfOjkMRsR/w7IbNjgXukyPOdJuZ12fmayn3f71mXFzpsIjYfZQ6puB+NesSOHdSgfQw6/0KltasO3TEMudGrG9RiIj1I+IwSgfQfRs2Px14X/dRaQgH0zxj29eyZpbVAf2mYf32EdFvJsw21B2XV9pmhHLrrjthtX4VEfFYynXbq+k9i+agNqIMKnRhRLwmIupmz+tK0+wf959IFIvLxZTnc/+dVS/wQWWZMfjRwHcaNn3+qMFN0Ddq1m3MYL/nXvrNJLeC/seoutnn+qpm1Kq7bj1llHKxnbhtz6cMPFHnvZR2pLNHqSAzr6z6WLyCsq/1888Rse0odYzgN8DumfnfE6qvK03Hgp9MJArNWxGxHSWxus61TPf+/H9FxHYR8S7gh5RBkPu5ATholH5f80XVTtBrVtPVtdZnPzNXUAZk6+e+VX/CeWdWHj5I09DU6P2pIW/MmhpVm+qbBXUHYigdj8cWERtTRkOrM0wj+LeBX9Ws35pukpymIiIeDOzdsNkKRr+x1QAy83zKiJt15tqsMyLuSen8V6cp6W/mVBeaX+qzen2ab0rUoqpzxj8OsOlXhyx3DcrMW3UGPrdUHRq/WbPJupSHN9IkPJbSGa7OacBTMrOuM0etzPwh5ZqpqYw3RMQ6o9YzhEuAJ7bQwP4SyghudV4WEbcZsx7BGzPz9aO+ODPPAj7QsNnq55A/UBJ7lo9Y582U2anqOog9OCK2HqX8hSoi9gfe37DZecATMvPGYcrOzAsyc5/qoVfrqk6WL6OMqtjP5pSOsuojItajdPKtcx3w6Mz88aj1VJ0zn0BzQ/OeETGJ+/prKR18Tx+1gFUSdy+v2WwD4IBR61jsImIXmhNBLqB0ML9i1Hqqc8c+NA8u8IqI2GLUeoZwCbBvZv5+AnV1KjOPzMzDMrOprXHU8q+m/IbqEiv3m+DD/ZFUnbIfmJnHVMeOLup4D/UJouvQ3Fm5TSuAx2VmU7JKk8OpH0wPyoxdi8G/Zearh+2ktqrM/DzQlAj/lFHLB4iIHWgetOTFmfmmqq1uZJm5orre+3jNZpsDLx6nngl5I1DXqfQ6YP+qLXokmfkT4DE03+svNmcDh45zfK0GWngmzZ2b/mXUjgwz/Nu5Cjhw3IFWMvNdlFld6hw6368JpiUiHkcZOb/Om6vriZFUbQZPYUIDgkbE2jS3LX0WeFqVRDuWzPwMZWCaOiO3lU1YXULBxW18XqOwXwFk5hmUWdV72SUidh2mvOr+dv8+q/9KmQF7UYiItSNi04i4c0TsGREvjohPUZKH/gvYqqGIH1PuX8Y6B6s9EbEl5Rq6SVMi7SDOa1i/Bs19N0ZSPa/acYBNNxkhIfhODev/tEocb6DM5jxKEl8/GwL/DnwjItosdxBN7dgm1w3nUkoCzzj3q9dQ+mvWDby5bUR08ltr0Tcps0H38/ARy+33uh9SBt3t5SERse4IdT2E0gemn7oEwr5sJ25PNfj3Wxo2e3tm/r9x+oyslJnvBP4/e+cdLklR9eH3sOSck0QRlJxzjopIFMlhF1FEBRQRIyYU+cxgzm7heKUAACAASURBVEiOIllEMixBoiBZWCTnHJZl9/f9UX1hWaarume6erpn6n2e+zywVbeq7kx3hVPnd843PVWmBb7Waz8FeBl3b9L1XNMgQutMSASeGHy+gt9WDC6TaKngsL1iZjOa2Xxm9gEz28HMvmNmIwmPPo9/zK8D20kK+Ww1nZ1xAVl9PAf8q+J+ffvX2fCLGvtGEtclEhEws9lxaaB9HFuy2VAGmq3NbO6SbQ4aochLC2TihV7ZFSdoyWNsmeibmWNByGhep5NINLJ3o4gh8IpeLyUThQgJ2bYys7kq7G90oPwxIIqTcgf2NjPV/NP1BS7O6JvHNj20myjPn4BQxrdXCGcwmZIt8IvAHwLKRqEN7TUGYm2piW/2Yc4Q3UdtbRpfD5S/BOxSVuDSCUnXEc7OshD1ZK87WNJT4Wp+sovvT+F3JJyd9E73yvVU4yz0Hco5fe6bReDvmiySui8r1lSEIxgPDJlDzqn4jaCP40RVXYtaauBg4H+e8j3rGkhL2QdYIFDnUHWRMWxKsku+j+H2gD5C62EVfC5zQO+JbP0KOfoMzbzSBV8DfA7qE3F7n57noMz+FIo0OCPh7F9V8Ole17RhIstC9HHc89AJIwVEGeFI/Bd6da6JR1ZxiZqtHYcGqg3CPHsl1TnkHwL4zowb9xhE5Tv4Mx/9QFJI7FCWA/A7nRzYp2wIhTCz9wHbBqp9pdtI45OTnfV9DlGDhoBPVZCthCzgTyi74FI4AWM3DOu7c7hc5vEqOJjJnMA7MAo4sKK+Bo2QsPMmKjiHZev2LvgDG1XFvsDinvIrccLbrkXrUyLpeOD3niqbm9kKVfUXgywoou9+xSdGi03yK3D4/ANGl2xrD2CanLJTq1g/I7FoF3dEb+AC6jwIXAYcjTsnFsnSegawqaRQQJ5K6cNdWpPtu+/AzGbC3fmHxGH3A3+roMs7cMEufGxeQT+d2IRiPqmGy0RehpDN90WAzDfjMPw2ul5YHxibnYtqQdKj+O+flqtrLAOAcHuqR3tuSLoT/x0dNNzGk9kpb/BUKZ1NLvMPXCWn+GLyA+6HMtDl4RvjS1QvFqiMIbITfwl/BtFTsjpVcgR+P8S9a/C3/mo2TwwCvuyxbxL23U4MMOYCIIWC9wCcHqHv0wPnqldw/iF34s5Jh+FE2aF94q3AapL+XvWY68TMFgOOKlD1rAjCx5A9ppH71ySuSyTisCswvaf8Wkn3lmlQ0v2AL/L4NAzGRroXQpGxpwHmraCfkEG6rHCyyO98xOqJMh4Nc9GpTgOKGJd+EXk4CccpuMwGeUxLRfOKuYhjewSqHRsr0vkA8E/yv6uPVCQcTngwxxEUixz/5y4yVYXWlhO6iCx5Ov53fGVzWTUSiWiY2aqEI1h9u4rLi8k4mnBEzpBjWa9cKem0qhrLzgI/DVT7eFX9DSGTgNFVGIoyZ4V/Fqx+gqTzeu0z4+RAeSiS+0BgZgsD5wG+TI6vAB+Ry/LaWLK9xGGeKhuYmc85a9j5VKD8VuDXVXUm6SHcJZ2PtSPvvS6U5HOILMtx+KPVhrLSDiVmNh/hrAS/rkJoMIKkvxLOcruvuSwYsThV0jkR2x9IssyZPpvgh+oaS5PJHIh9zvNLmtl7axjK7VQr7jkbeNpTvmaThVUFeAPYsypbXybe9QUymh5YtZu2M2dIX+a7e4ggks8cvw/2VJmP7gVPdbA//nvmuwhnky7DzwhnfBwUTsgEhZWQZTUOnRlL2xSG+N35L8UcUgoh6QX8Zz+AvVq+JlSOmS2Pc2r38bmqsjXJZY3+cRVt5ZHd8/icSScAH68ii0MHDsU5HeexT4Q+q2SxQPkjdQwih+RX4DgWZ4PtxG4lz6ujPWXHlGhnULkW+KikHSU90+/BJBxZQLgbgbUKVP9CRRl7JuL3MQMY02OQkjzK3MGFgtpOSUhc94aZfRU4qGS73bAocLmZ+QTeVeO7T219Zqsa+Z2kKgN/h7JRt8GWnid2A5dNzucH24mNyLcZXIwTjeftDUqL+fBn17ui7ixJZRl0O7GZzQp8xlPlWWD/KoOIwFtBjA8g/1mblrAvYy9cS7W2sX6zmKfs8ZQteXgxs9Vx98ohsdpTOH/lpvMoLmjpGrEyl9aFuczZfwOKCIlj+OyH7DGLReizZ5IjdiIRh5CBuRsjaZHfa2IUsjopkumsSBSvXMxsWcCXrn08XWwAsoh0Yz1VWi2eNLNlcNlANitQ/T/AmXFHlACQ9CIuGoOP0RV1twWwYKBOKJPe0JI5DOQ5S85Dd5GbEgXJomqdiUtfHuJ1Sl6ym9mchCN9l947ZBGuQpENh33vkIhPKIvEPTgxXGVkxvFQRO+VIkdc/lqENo8AXvaUr2hmH4jQ7zBwfsUR44ruZat0yroev2FqpQr7aiRmNhtwPv4950i2qJ6zldXE33DOc52YDhdRLTEFmbPK8oFqB0YI7PFjXGRpHzGz0h5ZZWNZ9jqfWHjJJPDsyK74M2c+S9h5uhsOID+yLbhz45YR+h0hlOkwkY8vIMNa6T17iytxkUXz8DnQVMWPq3TEydryRWmdiWJByprKSRGCGZwUKO9WxL4v/ov/QyTl7cl6QtLF+KOn7xyj314xMyM8ti9W/M6MB75YVXsNZhJxMh5/DZedIY8PZWeqMgzru/NtSb5Mmt3wB/xnibkpdr82TOwaKD9D0pUV9/l9woFee2EL/E7xPy8bvLcoWVbt33qq7BSj3wpZLFDeF3Fd8it4G0kPk++0Pw/w4SLtmNkqQJ5d/95MUD6MXIET564kae0sCE+iz2SBW9c1s5Nx+5b3F/i1YyVVkbVuhHMD5fNQ8b7JzJakXJausoKd0J51beBwT/mbuPnoINwcvUg2hrmAZYGtcVnIiq4dCwLndCE86paHPWWzZH4HCT+TgB9W2WAWSO0uT5U2BDy+xFM2PeWDeOYJ5MYDV0l6Dri55O92JDvL+gIu+f62JjHIduLdcLbOPL6VPROVk52hfHujmPaDIwZFcJZlC/etMf0MaJLoI2a2H+7+ZtYC1X8s6fXIQ+qW13C+GXsA75X0swj2v1oxs/WAmyi2D/l7JB8a394VGhocIonrEomKMbPlgNU8Vd6ge/X1qTin/TxWNLOVu2x7EHitQJ1eDxohEcI52QVENwyUeDIzFq5mZicA/waWLvBrAj47KAeLlhAStK2cRQDtldDzO1bS3RX0M8ic7SkLCbMSXWBmi5jZ94FxFP+Mj8yi2JZhN5yDfB439CD6CK0tu0fOYJFIhDK3/C6Go1XmZBV6b0Jj65ZxEZx3RgSzZwWqNTmrQZOpOgLTTQXqjJWUd2lUmiySn6+9Ihf3rSVby84AlgtUPVBSyKGgMWTBMHzOUsN8/vcRmt9vl3RF1Z1mDt+/C1Tbrup+M26RdFmEdq/1lBkDPrd0Sej5O7EHu1Eu2Xk6lL0u1t7nRkm3RWp7GLgEZy/uxDSE17ahINvr+CKKx14TnyAs7OoG3zwL0ObgGaHM291Q+eeVicR8QWHurCEzpy/z7GZZJqOmsRbwHk/5Q7iM0lVzFv5MDYPAlTGybEu6H//ZYjpg86LtDfG78yp+p7yuyAJ/hNaZZPN5Jx8NlFeWqXwESa/QfQDdIviCsUwCfhSxb/CfZxeo6K4wFiFnrH45eia/gndyjKdsdME2fPX+UnQgA8jauIw2m5jZXP0ezICxpJntW/Dns2b2dTP7sZldCDwHXIVz2i+SgfYq4BMVj/9UnJjMxw+qEmRle8TfEM5aMjllM+eFfL42IN8f9lxgaUmbSTpa0r8kPSRpvKRnJd0h6VxJ++PWlgNx32OIlXABMuugldk/GsbZmVC9anw2i/mygM5NZix+n9Syga3y6l+TBReHfNHb6pmQpygbAqM85W0R1w2yndh31nkBf6CPKvCddVaP9H4+DlwQod1+0dQzV6IPmNmMZra7md2K2/v5fB5HuIc4dwZV8QTwIPA0+dkuG4+ZjTKzjczsXFwQFp8Nf4TxxMv63Mq9a5HDWyKRKEfIUHmepGe7aVjSC2Z2Nv7ocPvgolUPI0VU7V2L68xsasKpoI/rtn2c6PIo8jcbK5jZqnVnWTCzfQtWHQXMgYtSsSSwPi66UxmOjOQQmMjnMuABYHFPnTHAwd12YGZzANsEqqWsdWHOxW3eOxmDtwEOrXc4rWErMysS6d1wke7mBBYC1sP/XnTiCuB7JX8HwnuHXtaWf+Ki6S6QUz437vkJZbFMJEpjZkvhIj7mMRE4IeIQjsN/mbUZ8O0I/Z4coc0RTsQfdXgj4jvaDBqv4M/M1A1344JG+C6QQ0LJbriDfGe72cxs1kysNYj8jnAkyx9J+lUdg6kYn2Ntmy/SYhJyCo7pDHk8bu3Jc+BY3MyWiHB5Hysi+b8D5QsDt0Tqu3WY2UyEs4rHfP6OxTnT5VEq4m8JhtmBsWckjTezx8nfNy+HPzPPMNHPNfG8TERdNUXm2TZyv6Rbq25U0oNm9gL5mQq6+bxWwZ/5uNtAiWW4zFM2N7AMcHsN4yhDaE05ORPFVoqkSWZ2CvD5qttuEDGEvCOciD/79Ub4M2pOzrC+O2dnAqsYnIjLMJjHRpH6bR1mthCwlKfK48Clkbo/EZcdqlLMbBT+vfwVkmJmzUPSvWb2KPnv9oZAU4Nq+GzQEDfjYEeG1a8gwJk45+lOe7mtzGxuSU/n/XIWXCsva+Uk4p63m840wMbZz+Fm9jvgh7HnjSFhHcpna+qG04HRVWfHkPSYmZ2FX5Q+P06UXkXmngMoL8ApK67rJkPcRGBfSccU/YUs+MHPs/PH3wkH9TnIzI6XVCT4Yi+Ego0sQrEAkMNMP23plQddqwpJr5vZWPLf4U0pmGXdzObHncc6cfEU/90pQ/3UOKFs0aA9PhvF00DlNqoYDKqd2MzmwZ/N+cwaskNdDUzA7ZmmZBTOP6zq4KwnSgoJ3NtE485ciZ5ZsoRf+Aw4f8q5cZlCV6Pz+5THa8DODc8EtxhOYHYQ8LCZ/QwXLP6lPoxl5hLfzdS472Yu3Nq7DsWyCE7OgZLuKfk7RSmyd20cSVyXSFRIZtALGUl7Neodi19ct5uZHRLpsr/pFFl8yxpmJmcrYD5P+VP0EHFC0vNmdg6wo6faGKBuI7gv+meVnELBg3iiOiTJzI7BLy7Y3cwO7eHQtyv+CBWv4qKmJTxIetLMrqGzA8T7zez9KftfRw6pqZ87gI+VfU/MbAWcM0oeE+jBqUbSxCyDqO9zGEMS1yXisH6g/FJJj0fsf0TgkMeaZjZtBAPOmRW3Nzn/AF4GZs4pr+OSd9C4PrskrQxJr5rZY/gdDa+pss+M+wLl8wADJ64zs28Qjm59Ou0NROCbJxeraxBtwcymA1YPVDsxVv+SHjGzS/Ff5q4PVC2uu7ri9ka4K1A+b6R+28pa+C+T7pUU8/L7b/j3CQub2WJdZNoOUXkmyCHE5zSxWI3jaDr9XBPTPFuOWJ8XuEAWeQ453XxePiEDFBcadU0mZngc59TaiZVpnrhuw0B57KAzgyyui2lT+CvwS095GZvCsL470b4fSXeY2d3kZ4dexsxmk/RCrDG0iNAcdJqkKFHGJf3bzP4DLFtx02sBvmwJ0d+pjCuAXXLKYmcK7oU84f0IL9cyincyrH4FuUh6zcxOpXNmrmlwQeWO8jSxNc6ZsxOXSHqoxyEOCjPh9kpjzOyTkk7r94ASXp4DvgX8PEZwiozDgR3wBwPcycyeAT7T7TjMbDTwky5+1ZdtqhNlHLnBZe7bWVJXgqrMR2Nj3JztC6o1Fe5OMrRP7pVQoIfQmphINh4fl5Avrlu9RBBPn8h28ixyV+J8PTv5cm5KNeK6yyLOrzEYRDvxFuQHpIR67AevmtmNuHNXJ1amenHdoN2bNPHMleiNuoJITAB2l9SmYK0L4YKaH2pmn5B0ds39z0V9Pvs/kuTL7tkrrdy7JnFdIlEtW+E/DD1D8Y1/HhfiUpDmGWPnxGWgGUYjWZH0sr2IDkOZhU6WNKGH9sGJJ31G8N3M7AsDKJ78A/CpWJddiSB/Ab5J/mF2XuDDQLcbxdGB8jP6kEVlLPVny6viIv9s8qMLbwv8oII+EuW5DthG0pNd/O4+gfK/S3qqi3Yn51j84roPmdkCKYKll3Pofg7shTG0Wyy1YqD8qpidS3rIzMaRb2ieBliaaqPVTSQcmbBrJL1pZreRf4E3h5ktKCkU/SfxNtdGatcXwWoicEPNfUJDDVO9YGZ7Ec5AORbYs1+XZ2Y2I7AoTtw4Fy6y27QUt8kt7SnLy0w7zCyL/7MdJ+mRyGO4Ev9lbmh9LMtE3H40BiHH3YGbV3ok9N3GFJuMOCregD+ryYrAuAq7HQ/8p8L2WomZjWRAnweYA2ejnA6/08Dk+BypB2auzwTQI2vi3MCMvL0m+pz8RvCJp/OEFVUxNkaj2XubFzUZ2jvPRvm8MnxrUzef15qesteAO7tosxseJP85Xr6mMZRhJU/ZK8TNbHsz7ruZIWIf/eKRLu2LhZD0eBYIJm9tWdrMpip4TzOs707sLCA3kS+uM9x5J+Yc2xZ8cxBEtjni9vVVi+t87xTUJ5DyZQpu4no0wkyB8tdqGcU7SX4FnTmGzuI6gL3xi+tGB9ptOs8AX+7i96bF7XNnwwVzWxW3VoQESbMDp5rZr4DP1mgbzft+Y9Gk57sMj+N8NH4g6dmYHUm61cz+QthnY39gbjP7TJm7aTObFpfV9dsUO9tPSdnvcCLl/F2/262wbgRJL5jZjjh/jzk8VT9oZstLipnpNbSmhdbEYecJSfdHansQbOkXA9/NKRuFC3JxToF28sR1LwHXj/xPJni6js4Be313LG9hZvPh35tf4imrnGQn7kiTzjp54ro22g/qpolnrkTzeQnYTVLV4tUp+TUu03AnpsKtwbPjtBUr4uxKRWzL8wJnmdnvgf2rDtrdZwR8R9K3onYiTTKzPCE9NHTvmsR1iUS1hBzkezaSZg61JwGf81Qbw3CK66YvUKerjZyZzYsTT/roNSshuGhHT+EOWZ2YAyegGZQsX88DB0uqW+SUmAxJD5rZJcBmnmqj6UJYYmbLEM4c0Y/v/15Jf+hDv71yFvB/OWXbkMR1dTMRd9H3lW4yX2WXDbsHqvW8tki6zcxuId/pYBSwJ+n58XFTP+YMM1uPdovrlguU31zDGG7GH8VteaoV190t6fUK2+vErfijYy4LJHFdcWJFNPZFZ3tGUgwDcygiXJFgJK3BzDbBBenwcS9OAB/7vQTAzKbCXcxsirssWgnn9NKNU0ER5orUbptpytrjo+pLumclhaK+dUtItDtQ80oFNOX528hTvjzuXFkVt/WQ5b6VmNkMOPvJBri5flnchVwsWjvXm9lKuMjEa+Gi/y5CcUeSskxrZrNICs1b3fK/SO2Cm2vznqG2zrOxP688uvm8fFl47qoxGNwznrKFahpDIbK7krysMQC3x/zcJE00s9sJ25zbSJX2CV8feQ550wNL4M5RIYbx3XmZ6jNQT8mtwK6e8iSuc4SEbdECX2XEeFdDWeHuiNBnJ1qzHk3BjIHyWh09k19BPpLGmtk9wFIdilfOE6VkjvNb5jT7InEzv1bFy1XdM2XBvLbFCdk2wm97/HRW/ukq+g7R0vv3urkE2KWC4KplOBh3Pl8wUO9jwOZm9j3geEm5GeTNbCbgIzghzvtyqr1J2De1rO3+jQJtjnAT8L2S7XdE0qNmdgBwfKDqp4DPVNFnDklc1xv9sldAO2w8N+D+jllyyjehmLguTxh3RQdb8sV0Ftctb2ZzS3o60JcvS95I+1FIduLC+M46z/rWmoqp86zz9ABmVW7UmSvRCq4H9pJ0d+yOJJWa681samA1YF9gF8L7p08As5nZ7gNyJ/oIsJ+kXhNFFeU1krgukRhOAga9EY6rqLtj8YvrthjSjBWhTRx0v5HbE/+ceaeknrNPTCaePNBTbQwNMoJ3yWvAH4HDY0ZiTZTiz/jFdVuZ2VySfIfNToQiMz4AXFayzaFF0t2eS6e1zWyemg3xw4qAc4HDJPVykb41fmek5ylmnCzCsfgj+o4hiesS1bNooDxmJPsRbga295SHxliW2M47EHbgabKjSxN5LlK7PqFLP/qEfINV6zCzZYG/kp/lBeBp4MNd7F+7Gc8SuEvzvfBns6+aQczW0StNWXt8VL32xJpTICzaHZh5pSKG8fmL6ZDSKMxsfdxcvz31zr+tmuvNbAHcReM+VP+8hZiBsCNTN4yX9GqEdkd4mXzHm7bOs/1am0p9XpkzqO/8JDPbt0ybPeCzD72npjEUZYlAeV0CsUEU19VlU/iQp3whAuK6IX53bq8h60+y+RTDNw+9RjGBaC/EmOc+4Cl7BdjJLFbcnnfgCwYzn5mNamik9qZlUUh+BX7+Qr7YZQxOBDQle5D/mZ4Web/eOLK/9yTgpCwA2Z/wn7/2N7NHJeVlI0rUyybAPVlmyT/V0aGk58xsJ5zIJCTwmR34IfADM7sel1HocZy9fTZgPlz2xI3xB0B/Ezgcl9HORzfiuiK+YQDfqNIBWtIJZvYV/EL/7c0sZrbI0JpW9LMZVpIt3UO2t7gcJ5ztRDCbnJktTn7g207ih4uBb3VqCjdfhvYxPnHdw5LuCfx+aZKduDS+s85LNdoPFvOUVW0/GMR7k6aduRLN5T7g+8Cfa8yeXYpsf3gtcK2ZHYw7n34Gf9CSnXD2mVACpibzPPALXPbsWIEqO/Ea+Rl8ZzAza9qzksR1iUR1hIykd0u6roqOJN2cRebMi4g9CufUd2QV/bWI+QrUebHLtkMCoaqEk+AEED4j+BZm9h5Jj1TYZx1MwkUkOBk4oUB0mUS9nAm8QP5GZiTD1tFFGzSzUbjLDh/HNG1z1ALOAr7Y4d+nwhm5UibIeNyLywx7bEWRVUJry6mSxlfQD8CJOPFc3l7lA2a2lqRrK+ovkYD8SOgAEyTVYVQMOdOEonSWpY7gFo8Fyn2fe+LdxLpI8+1v+tEnxMueViuZ0/755O9bwV3IbyPpvshjmRc4ApfleVTMvnJoQ6TTugnN61GfCQBJD5nZePK/n6rn6Wcrbu8tJCngwDkQ80qF9P35o/69zwsVt9c4zGxl4Mc4p7F+0Iq53sxmBr4JfBa/c11MYn1WMR2vwL+Ha+s8G21totrPa+FA+SrA70u2GYNZ+z2AKQjtZSp3XOtTH/2gLTaFYX132vL9DAO+z+G/NYi/YsxBvvdqJprxTk0FzEwzzwAhm0zdgsDkV+DnWJzgplNW693N7NAOYpi9Pe0dU9XA2oikS8xsBeCf+IMPfMPMzukxaGiiOmYH/mhmawCfqUO4LOlqM9sLOIFi/qKGy8S0ZpddHgQ8WKBe2fPjK7jPL8Q4XIbPqvk1zik5jwVwWZpuitA3ONGiD19AwkT/7BXQHhvPJeSL65Yzs3kDQfR9ArxO4rrrcO91J+HOpoTFdb7+Lg38bimSnbg8ZjY9/qA4i9KMs07V9oMmnpl6pWlnrkSzeBHnv3ECcL6kSX0eT2EkvQgcYGanAaeTnxkeYIyZnS/p9HpGVwkTgCtwPvsnSwoFA4iBb/9quPmlURkBOxkrEolEd9RpJAVndPQRGs8gErpUegMondEpM2j5Ig9NAo4v224ekm4E/uOpMhV+A3K/EDAed0B4ALgGtyh/A5edaS5Ja0s6Kgnrmoek13AR7nyMLtnsh4D5fd3iohMmynG2p2zb2kYxmLyBi3L/MC4K31k4ofruwCKSlpL0tSqEdZkwwBclGsJrfWEkPQH8I1CtzdFVEg0ji2Lui55Wl0Ex1I/PMNIN3QZyqLKPuWoYwyBRlYi56X0OBNncci6wiKeagD0kXRN5LB/Bnds+Tn+EdZDsep3wXdJBM9afmcysygjCaU5pDk14/gZx79MXzPE1nINHvxwmoH9rTGHMbC1ctqVD6J+wDuJ9VmmeLU9bPrOqBcexaFpk8lCQwyasd22lLTaFYX132vL9DDRmNgMwi6dK6+YgM5samLfKNiPStDVphFCWhNr2qMmvIIykh+nsXA/uXdhy8n8ws1XJz6p4n6SrKhxeK8kcQrfGL2SaBvhjPSMaKP4iyXw/uPdsNpxQekPgAOA8nCNriP2AP1tN6UklnQp8jPLZ4sryJUm/Ijz/TgCeKdl2UXHUcZEcu48jLCBYK0K/I4TW4lci9j0ItMVe0U/y1mh4O5ucj7zyp4DbpvxHSROAK3N+x5spz8wWAxb3VPH9LYVJduKeSPaDwaExZ65EX5gIvIrLZHwHbn79DW7fuyYwp6RdJZ3bJmHd5Ei6AticcLDF35qZLwh03Qi3t38OF+T1Ktx+9cvAFsDskjaT9Ic+CevAP8e+UWWm6apITjiJRAWY2ZrAMp4qonpx3Qn4D+xLmdm6FffZdHwOlgCPdpkhKyRUvEzSQ1206yP0vIyuuL9cQsbCyX6mkjS9pNklvVfSOtmm6fBs4/R8XWNOdE0o49nKZpZ3edGJ0YHySyQViVaWeCdjyRcKb55dLifeZuMS89h0kmaVtLCk1SRtJ+krkk6MMM/vhd/49V9JV1fcZ0ist3N6fhIVEnqW6jIohpxd2mgoDfWRDJeJgSTLinwKLguCj0MknRF5LPvjRPghIU2ifoZ1/Uk0A9/3OlFSHc4tg7j3qZ1szTkW+C4p4rcXM9sWFwXa58iSSDQVnzijSTQtMnkoSMBLNYxhINcf2mNTGNZ3py3fz6DT9zlI0htU65g9E+3JZNK0NWmE0FmrzjP4UPsVlOAYT9nowP9PTgrimpEF2Tw0UG1VM/MKFRLlkeNFSQ9LukLSLyR9BHgPLsNZyFl0T+D70QeaIelvOCfonoPJduBVYHdJP8j+f85A/Se68OEqKsar+p4deEvMenugWugOoxdCa9qrEftODAe34U9cEBLX5YnPLvW875fk/PsSZubzBQ2taXntFibZiXsm2Q8G/T7eUAAAIABJREFUhyaduRLVEAwiMdnP1JJmkjSPpGUzsdb+2b73+jqyMNdBluV7x0C1OYFPRh7KgyV99meQNKekJSWtL2kvSf8n6SJJTdgb+uaHJozvXSRxXSJRDaFML5dL+l+VHUp6lHCEjaHJXpdFcvIJHAFKG6qz9NS7BKpVllloMo7HRa7LY0kzWy9Cv4khRtL1+KMbQsF5xczmxEXI8xES8yU6kEX4OC+neEZgsxqHk+ieujPeghMB+JxtZwU+GqHfxHAScvZpirihaqekJjgRNtXJJZHolV8AW4XqSPpJzEGY2S7AL0k2taYyrOtPohn4vtc69ghQ/7PXygiUBfgFsEe/B9F0zGwDnPA9zWmJttIWp4+mCS6asN8aRCclaI9NYVjfnbZ8P4NOE+agqvtpyzsFzVuTRgg5Y9XyGSe/glKcSf759SNmNheAmU0L7JZTbxJxPs82cxrhu/7P1jGQBEh6StIBwPr4hSoAXzKzHWoYFgCS/g2sBHyT6jKdXQysIunEyf4tFJyum0DMTxeoI1yGqViE2l4iYt8pc10iKpkA7lJPlVxBm5ktC8yfU+zzcfWV+QR0PqHffRUFNEh24t5o01mnSgbx3qQRZ65EIjaSLgFODVQ7MBNfJ4rhs+U1cu86db8HkEi0nSzDy86Bak+Z2b4Rug9F5NnJzA5siPo4NosDMwfqhAyJndgBmD1QZ45I3+9DwKKe8jG4NK6JRJX8GfiRp3x3Mzu0QDre3fBf9L4A/LXs4BJvcRb5kRq3Ac6pbyiJspjZOsD7A9WmjrS2/Bd/tLwxuIvYRCLRHXVErAv1MYjG2sSQY2aHAp8KVDsbOCjyOJYA/kBxZ7IngGuBW4D7cWe8J4DncY6ZbwBv+qK5mdm3cE4OiUQikaiBTEQdWnMm5x7gelzU8vuBR3Fz/UvAy8AEYIIvEruZXQZs2OWQ+0IWVOkkijv5Pwdcg1sT/wv8D/c5PYu7PHuN8Jo4mhSoKVEtKeJ4d4SCTEyoYQx19NEP2mJTGNZ3py3fz6DThDmo6n6G9Z2qkqZkUUh+BQWR9JqZnQp8okPxtMCuOGf2bcjPfHVp1QGu244kmdkZwLKealuZ2QySXqtrXMOOpGvNbBPcOzibp+ofzOwaSY/VNK7Xge+Y2c+B/YC9gQ900dQ/gZ9IuqBD2QKB3+3Gh6vIe/+YpOe7aLsodwTKF47YdxLXJergEmCnnLL3mtliksZ1KPOJ3XwCultwNsJOa/6m5NsDu+2vEMlOXAnprDM4NOXMlUjUwdfJXwcBFsL5Xv6rnuG0FzObDr8tr5F71ySuSyR6Zwf8BhCAj2U/dTMLLk3pMETsKhJt7cYu2i2SpeunXbRbBSPiyUYuMInWcjxwJPl7hHmBD+Ocl32MDpSfnIz2PfEPnONZp8Pp1mY2VZbhLtFMiqwtX48+is5s7DGGJhJleD1QPmstowjv00PjLEsdf1eoj6r/pkSir5jZTrj9qY8bgF1r2P8cBcwUqPMq8EfgGEk3VdBnU6PCN5VhXX8SzeB18ueIWWoaQ3r2esDMZsLN9SEeAX4OnFSRM2cb5/rvAAsG6rwJnIBbF6+uYJ1u4+eUaDbj+z2AlhL63OpY8+ra09VNW2wKw/rutOX7GXSaMAdBtc/DsL5TVRISooQyJ1VF8isoxzF0FteBu2f+Bf775mMqHc3gcBnwDU/5NMAawOW1jCYBgKTbzWw34Fzyz7ZzAL/FiUprQ9JzOPv7kWa2DE7UsQawJLAITjQ8AzARJxB5CCccuRo4V9IjnubfF+i+G3HdAwXqxBTWgQsg5CNPFFwFoTWtFnFmYuC5JFC+Kc7e1+nfO/GgpP/mNSZpUiYq65TBs6OALpuv8rLkQfhv8JLsxJWRzjqDQ1POXIlEdCTda2Z3AMt4qm1IEtcVoZV711Bkr0QiEWaffg8gQBEj7iCwWYE6pcR1ZrYI/ign/WZmnHgykagMSU8A5wWqjfYVmtlywKqBNlKk8R7IMpLmRVqaD1izxuEkSmBmMxLOeNtPDBeZMJHolZCAuinihqqF3k1wImySg0Qi0RNmti7wF/yXSeOAj8TO2G5mqwJbBardBCwj6cCKhHUQnscS72RY159EM/B9r6OyC/nYpGevNz6FCyrk43hgSUn/V2GWhFbN9Wa2APlOsCPcD6wmabSkKysSwLfqc0q0gtD+8QRJ1oCfxer4MErQhGAGgyqua4tNYVjfnbZ8P4NO3+cgM5uKcOCdMoTeqUca8D6N/Iyr8O+ukgcD5e+JPYDkV1AeSWNxGV46saqZbQZ8MKf8ReCvUQbWforYJNeJPorEu5B0PnB0oNrWZrZ1HePphKQ7JP1a0hhJ60laRNKskqaRNL2keSStImkvSb+VX1gHYXHdLV0M8/4CdWKL60Ltzxix79CaFloTE4kgku7FCWnzeNeeJ9sj52VcK5JFLq/OAma2dId/zxPyAQi4tECfPpKduBpCZ52rG3DGMUmDJmqMQd/PXIlEzYT8p1evZRTtp5V71ySuSyR6wMwWAzbu8zBCbGhm7+33IGJiZqOALQLVngduK9n0aJo/TzZd3JloJyHh21ZmNpenfHTg9++UdF25ISU6cJanrNaIdolS7Eh90XO7ZbSZJeNRoifkIuD6nLebIm54sub+qiD02VX9NyUSfcHMlsTtd6b3VHsO2FIuQERsPh4ovxZYV1LVBsA5Km5v0HkqUN6E9ecVRRaDJvpGE56/uvc+g0Zorj9K0p6SqhYptm2u3xOY1lP+ALC6pFsr7rdtn1Oi+TwTKPftQ4eZZwPlSVzXPW2xKQzru9OW72fQeQmY4CmvY36YhWozSryCP6PDoL5TVTIuUL5QDWMYTfIr6Ia/eMqOB6bOKTst2VY6I+kFXBZxH4vUMZZER75K2IH0J2bmO3O3AjObDb+47nWgG5+R2wvUiR1cKtR+3txVBb41bSJ+QVQiUQZf5rdOAQVWxWW67EQv4jroLKTzBTW4TVLIVh8i2YmrYVjtB4PIo8AbnvI6zlyJRJ2EsiWHBNgJR2huGFfHIMrSdONOItF09qb56ZiNsNCl7WyJy9Tk40JJISPiW2SigtG9DKom1jezJfo9iMTAcR7+S9ppgd06FZjZ1MDugfZT1rpqOAcXcakT29Y5kEQp2pBRdjGaHzwg0Q586dunNbM6DGyhqJhVp5hfsuL2OrFUoLzqvymRqB0zmwe4APAFdHgD2F7SXfWMyhu84FVgT0mhCPrdMGeENgeZ0BwY/fycrW/TeaqkeXpw6fvzR/17n4EhE3V3ioI8wu3AlyJ137a53mdzEG5NDIlvuqFtn1Oi+YSiiqcL8s6E1pIFaxjDAjX00Q/aYlMY1nenLd/PQCNJgC/ATuvmoOxv8jnCz5HdvSXy6WsWheRX0BPHAnlZrn3+H8dUP5SBInQeS2erPpGJQj8fqPY+YL8ahhObVfH7010ryScu70iWHSokmokdFCHUfkxxn29Ne7SMX1wiEcAndpvfzJad4t98YjefUA8ASXcDedkw3yGuy7LkbdRLfz6SnbhSHscvyBpU+8HAUeDcmjLXJQaNUHBnnx9L4m1S5rpEYphokZEUYO/sYDGofKJAnXNKtrkRsHj5odROm57DREvIDG7HBaqNzvn3DwHze35vYoG2EwXIMrTkRXNb2sxCTpWJmskyyW7Y73EUpA0iwETzGRcoX7mGMYT6qPqgvmLF7XXTx39rGEMiEQ0zmwE4G78IRcAYSZfXNKbF8Rv+zpR0X6TuBzoTfQTGBcoHce1JNIdxgfL0/DWb9QLlR3Xj9BXCzOYFZq663ViY2XTAap4qYyVdHan7tCYmquYxXLaEPBaraRxtI5QJYYUaxlDH2bsftMWmMKzvzpJmNmPkPpLNpxi+eWj+LGBPTGK8q/d7yqYiZZkK8Sgu8FEeC0fufyOSX0FXSHqYYtlsJuc+SVfFGM8AEQoQPmhZcVqFpDOB0Ln5qzXsO2KzeaD8oh7avjFQnpc9qypC79DLMTrNngmf8CbWHUViOAkJ1KbMJpcnrrtD0uM99rnRFH6vq+B/z8vuLaYk2YkrIhNkjfNUWdDMpqlpOIne8a0zM5tZ7PU3kaiTFwPlM9QyivYTCrrfyP3rIIttEonYbEx7LogWwR8hpLWY2UrA1oFqL1NeXNcmUcGgiycT/SGUXW4VM1u+w7+H3p0LShhOEmHO9pSl7HXNYzTNz3g7wg5mNmu/B5FoPbcHypvgYH5bxf3Nnxm+Y+Jz4BFwR+T+E4loZOea44G1AlW/LunEGoY0wjKB8tNidGpmc+CPjpl4N8O49iSaQ3r+2o1vrp8I/DVSv+tEajcW7wOm9ZTHWhMNWDtG24nhRdIk4FZPlYXNbNAihlfBfwGfE1kTBGJtZfmYdz1Z28t5qjwlKZQFZJjfndDnVwWhZ/s/kftvCyHbV+w5Ikb7N/ehz4GhwLy0lJmNijiE5FfQG8eUrH9sjEEMCtnZKbQOT6xjLAkvXw+Uzw98po6BROQjgfJTemg7JLCNLbQP3QPmZd/qldA9RUh0mEgURtIjwN2eKm/5oZrZtOQL0soI3fLEdbPjBHUjTCnsm5yJwBUl+uxEshNXi++sM4r45+xEddwUKA+tU4lEm5gpUP5KLaNoP1Nmup2cSYTtYX2haUaTRKJN7BMoP1OS1fUD/DQwnjYZdctwBGGhwnGSQkryt8jEBB8NVNu2xu92GsB3obkw/oNjIlEaSf8B/hWoNnry/zGzuQgbSf/Uw7AS7+YsT9k2tY0iESS7rNw7UO2gmvcOvgPKjMDOlX0AiWHF59AAsG7Mzs1sQfwRg98A7ozQdbS/K4u8vaSnyn2SkhEn0WZ+BOwQqPN7SUfUMZjJWDRQHkvUug7tEeY3hTuACZ7yxbP1ISahdSC0PibaS7/3PtMBqwaqpecvH99c/4SkZyP1G/W5iEC/1sRlSNkVEnG4LlDetnc0OpImAnd5qrwnZtAZM5sfWCBW+31mJuIKaFbG2fzyuKVEW8P67sS0+UwDrO6p8ipwT6z+W0a/g1qsEq5SmtA7FcqekYAbPGUz4IJEVE7yK6iEM4EXCtYV8JeIYxkEZsc5qvuIklUrURxJlwGXBqp90cxCTr2NxMxWwC+WuEFSLxl5LwyUz2ZmS/XQfojVAuUPRuo3lCU85N+TSJTFl71uo8mCF6xF/lmzjLjOV3fTnP+ekhvK+IjmkOzE1ZLOOoOD78wF0ClJQyLRVhYOlD9Xyyjaj2//erekl2obSQmSuC6R6ILMSBpy+Du+jrFMxgmB8u3NbLZaRlITZrY3sGWBqr8o2fTO+C8YnwEuKNlm10h6k3DUppDYM5HohpAQbnczm3qy/98Nf/Typ4Fzex5V4i0k3UF+euR1M8Fjohlsisskm8dE4OSaxjJCaO+Q1pZEr4Siwm1qZvNF7H+PQPm1kt6I0O8uEdocYWf85/jLu2gzFKV2mi7aTCRKY2YHAJ8PVPs78OkahjMlswTKY2VmDgWu6BXf+9/Kd1/SeOD6QLVdY/VvZgsQdlLrZq5OtIPrcOL9PJYys5D4rRe2BXzZp/8naVzE/tuOb66PNc8DbBWx7RgM6pqYGF7+GSjftpZRtI+xgfLtIvYduptrOzFtCqF9cJl96rC+OzG/nw/izzQ0NrsvLMskT1krz32E56DtY3VsZrMDG0do+nLA9/0O6jtVJSFBQUiQ0C3Jr6BHJL0GnFqw+qWS/hdzPAOAT6g9wkPRR5EowuGB8nlob/a6/QLlf+yx/ZvwC4nBiX1isWagPFZwq9BaFhI9JBJl8YnrZuPtQG95dyITgcuKdibpIeDenOJN4a0seT4RWhkxXx6Daifu153gsNoPBpF+nbkSiX4QCoDWS6CIoSCzoflEio3duyZxXSLRHbvgIpzl8TxwXk1jAUDSjfijhc5ARAeyujGzpYGjClQ9OROflCGU5e80Sb5I+DEICSC2yxajRKJKTgZe95TPxzsFrqMD7R3fh3dnGDg7599H0T4nvUEmtLZcJOnJWkbyNifhd65Yy8w+UNdgEoOHpPuAcZ4qo4i7P90zUB4y5HbL1mY2c6S2dwuU+y458ggJDH3nnkSiEsxsG+BngWq3ADt16UzYK74AEhAWqZYmO9+F5rFe8b3/bX73LwqUx/xcd8MfHfx+SQ9E7D/RR7LssSFH35jPX7/2PoOCb66vfJ4HMLMtgKVjtB2RfqyJo2ivQ2Gi+VwE+LJ/72RmIVHpMBLKshHzrB86F7edXcys8uzVZjYVTgDio4xNYVjfnTXMbIlIbcew+cBgnvtuBHzZKNY2s8Ui9b0j4f1QabLsFz6B6xJmFkPUN0j0K4tC8iuohmMqrjfMbFSgTl7g1kSNSLoUuCpQ7ZC2Za8zswXxz41P02MGSkmTgNMD1bbopY88zGx5wpm0Q1mausUnWnhG0v2R+k0ML5fissbmMSKq2ySn/EZJRbPTjpB37lnPzKYD1sYf2KDbc9PkDKqduC9nQ0m34RehbBzxnJ2okEwA+4SnSspclxgIMtvs5oFqd9YxlpbT2qzLSVyXSHRHKJrX6Vm09LoJGUpDxt1WkBljLsBFQfHxGvClkm1/AHcQ81F3VkIkXYv/oDE9AySeTDQDSc8Dfw1UGw1vGRFXCdT9cwXDSrybPHEdpAg/jSC7pAxFy+3H2vIoYWeogdg7JPrKmYHyT2TOspViZhsAywWqhcbWLTMAe1XdqJmtgH+f+jrdBfh4KVDuy4CTSPSMma2GE3z7bFQPA1tJCj2vsXgtUD5vhD73BWI7Tvg+z5ljOPXWRGh+X9HMQuf+0pjZNMAnA9VirT2J5hD6jnc3s8rX1uzy+UOBaun58+Ob62PM8wAHRmo3Jv1YE7fHH90ykegaSa8DZ3iqzEI739XY/AO/U9YGZrZI1Z2a2XuBdaput2EswjsD2lXFVsBCnvJHgGuLNjbk704oE0tpzGx+wrZ83+ftw3fua6XNR9JEwpnAdo/UfcxgGaF7/q9G7HsQuAvwBTCsPIt48iuoDkljgXsC1V6i+7lwKMjuWnYsUDUUGChRH98JlM8DfLaOgVTIt/GLNH6VZazslZBAb0czm7uCfqZk/0D5a8CVVXeaBctYyVPliqr7TCQkPYM/E+OmmQA4L5tjN0K3vMxzM+D2XXlCPoDxwNVd9Dklg2on7ufZ0HfWmQr4cuT+E9XhW29WjOH7k0j0gY2ARQN10t4rTMiX3Bdkqq8kcV0iUZIsY1ooxXvI+B2LEwPla5jZMrWMJBLZ+McSXrwAvivpfyW7CIkIxtE/Y+NQiCcTjSMkiPuImc1F+Pm7SdK/KxpT4p1cBTyTU7ZFFr0p0V92xV1W5vEK8LeaxjIlobVlz2T8SPTIcYHyZag4C0X2zB4dqHaTpNur7HcKvmVmoUAQZQll9Tpfki9qd0ckvQq86qny3rJtJhJFySLJn4s/yuSLwIczUXi/eCpQvnqVnZnZwsDXqmwzB9/fNQ0tFTJk547Q2ePozCGhSg4ClgrU6Skqc6IVnAT4MmzODXwrQr9HAVN7yp8E/h6h30HCNycuYmaVOk6Y2da0M9t83WviLMAPq2wzkejAzwPlXzazIvcRQ0MWed63rkwFHB6h6yOAtgaAKMMPzcy3rpciCwIRmktPkeTLSNCJYX13DjSzxStu8wj85+KbJIVEJ3n41u4223xOCZR/wczmrLJDM/sgsEGVbU7BSbhsPnlsZmY7ROy/1WRzmG9tWi/CXUfyK6iW7XDZAfJ+Ns5s2Yl8dgeWDNR5irDdLFETki4iHODgEDObuY7x9IqZbYYLGpfHk8CPq+hL0nWA755vOsKB0EqRBdTdI1Dtwkhz1YrAHJ7yUOCBRKJb8sRu4ILfbIa7Tyr7u3n4suVtwtvZ8joxNgsE0yuDaifu59nwN4Avm/M+ZlapXTkRDd96Myuwcl0DSSQi8q1A+VPATTWMo+1s7Cl7pMm+5Elcl0iUJ2RofJg+KWqzFO/XBKo10VBaCDMbTXFh3UXAkSXbH0U44uCJXVwwVkXICL66mS1by0gSw8QlgE+kOi0uO08oCuifKhtR4h1kUVrzMhXNjN+4lKiH0Np7lqRXahnJuzkDl+0qjwUIZ8BIJHKRdDPhi8FvV2yE/jTuksnHryrsrxPzAN+oqjEz2x6/4QHglz108ZCnrNXBORLNxczmwBng5/NUmwB8VNJt9YwqF1+0bwhnqC1Mli3uGGD2qtr04Hv3od3vf2ieXw2/o0cpzGxBwvP+VQ14lhORkfQUcHqg2gFV2m8KXr7/TpJP9Jfwz/WGc/SsBDObB/hDVe3VTG1rYsbRwGIVt5lIvANJNwD/9FSZGTgpBbB6FyF7755ZlupKMLP1gJ2raq/hLEM4I0YZPgu831M+Cfh12UaH+N2ZDvhRVY2Z2arA6EC1WDafpXtot9+cDzzhKZ8DlzmnEjLB60+raq8TmSNwKLjW7yOIOweJkKNnKGp6YZJfQfVIulPSPz0/N/Z7jE3GzN4DfL9A1ZMkTYo9nkQpQuvV3LQge10WSC+UrfOwboJEevi/QPlXzWyJCvs7Cpeh2cfvK+xvcjYKlCdxXSIWvuxzMwBfzynrKoucpKfJF4FvA6zh+fVuMuV1YlDtxL6z4SJZFsIoSHoMf/DJqXD2g0oDpCSiEAriGPJpSSQajZl9mnBgpRMzf91EDlmQ4/U9VRodEDaJ6xKJEmSG8yYbSSFsrNizyoiXdWBmq5jZhbgMWkUygPwP2KMLo+CWOBGBj9DnG40sKuW/AtVaK55MNJPsPTomUO07gE8UMZ5wZs1Eb5ztKdu2tlEk3kV2ORmKsNTPteVF4JxAtbS2JHrle4Hy2YETq9ijZg5Jocu0h4Bje+2rAAeZ2Ra9NpJlsPptoNrNknq5MLjLU7Z6ZthPJCrDzKYFzgQ+EKi6nySfs2Zd3Az4DKQ7mdlyFfX1HVz0zTrwvfvQzoxKIxwDPBKo82MzW77XjrLn+RTCjhWh9TAxOBxBfnRdcBnmTq4i6niWDeaPgWqvEHbSTYRtbl8zM19G8kJkAoOT8NtRGoukh4HHPVXWNrMPV9GXmX2csNggkaiKL+AERnmsDZxmZr7MUpViZhs23KnoHOA+T7kBv61o7pyJLsRfLedIM1uh10bMbGXC+9CzJPm+Sx/D+u7skK1TPWFms+HuTnwZGR8nLJLx4Tv3zZ/Z0lqHpPGERYefMrN1Kuryq9QjRvwJfqfXOYGLMgFDLZjZ+6qYj2riH/jnpI0q7Cv5FSQaQxbE7DxgwUDVicQPPJgoiaS/A9cHqn2hydnrsnusv+MPpHc11QtITsIvgpkJOKai+8ftcUGnfdxFPJGbT6xwe2avSSRicAX+jGN5QXXGSnqtyz7zMt6tSH6WPKhOXDeodmLf2XAU8YNuHwa87ClfArjAzOaKPI63MLOVUvCScmRCyVs8VTaqaSiJAcfM5jezNWvucyvC96npTFWMlWhx1uUkrkskyrElMH+gTi8XHFVwKuCLRD0fUImDQ0zMbBoz29bMzgVuBIo6Jj8CbCLpyS66DRmQb5Z0ZxftVkno+dqjbeLJRCs4Br9jYMiQe5ak56obTqIDF+JEjJ3YOsuAkugP+wTKn8JlW+0nobVlazObu5aRJAYSSefiDO8+NgVOMDOfQdxL5uRxPi5Kno+vS/JdAlTFKJwD2drdNmBm8+OcQkLiti9120fGdZ6yqYAv99h+IvEW2b7kz8CGgarfkfTnGoYUJMsw64uwOQo3hxUJBtMRc3yX/CifMbgdJ7rJY68s6nXryBwtDwtUmxn4u5l17SCZXX6eBqwXqHpJ5iiTGAKyDIXHBaotB5xnZiFRZi6Z49JFhPcJP5D0TLf9DBFXAT6Hj0WA3/Ryvs6+77/R/gzz/wiU/zZ7PrvGzD4F/K6XNhKJMkj6Ny4LgY+tgevMLBQgomvMbJSZbW9mVwKX4UQUjSQLynZ4oNoqwJ+z7D5dkd13HI9bO4eJGXFOZUt120D2rIbsJG8CX+u2jyF/d36dOVl3ReYgfy4Q+o6/kZ1vusVn8wEnGmsrvwCe9ZRPDZzRa8YaM9sJ+FYvbRQlc0AOZSdaArgpy2AdDTNbw8xOwDnh+jKENAZJzwLXeqpsVGF3ya8g0QjMbHPgNpzgIMSxku6OPKREd4T21T1nrzOzD2dCzErJnJ7H4s+U/ALdBUj3kmUMOThQbT3g9F6yKZvZlhQLJv3lGMH4C2T+OK/qPhOJESS9TFhs1ok8gVwRuhHJvURYqFyUQbUTh86Gh/Zivwkh6XHC9oc1gJt78a8ogpltmvkk34w7XyXKcb6nbL2Yz1FiqJgfuNbMzjOzUFKDnsjsip/Hzcshn7VjsmA2CT8becreoP++sl6SuC6RKEfIQf727CKpb2TpsS8MVGtcFLJsgVrKzPYxsxOBx3CLVZlI+Q8CG0vyRSbK639u3AWfj34LJwFOxp8xYT7anV0g0UAkPQBc3kMTjXCKHmQyg1aegWkBwpnTEhHIREJ7BKqdIskniq+DC/A7IUwL7F7TWBKDy6dwB2QfOwGXZhlYSmFmu+IM3aHIbpdKipm1bspLs1mBi82s9P47MxpfTziz1zmSejU8hDKDfc7Mjoxx8ZoYSg4DdgvUOVbSN+sYTAlC0cZXAP7RTfT4TMB2Lp0vlXznv57I9iC+ff7IHLZBrDFE5hjgykCdBYGxZvbRso2b2Xtx4vFtAlXHA/uXbT/Reg7Bv8cG2AB3MVQ6g6KZbYbbJywZqHo3cGTZ9oeRTEh9ZqDa3sAfu8m+Y2Zr4RxROkUAjjbXRyK0Ji6EWz9KZzgxs9nN7M+4DFVT3l+17XNKtI+vALcG6iwH3GBmX+4lsMKUmNnSWaCFB4C/EhbuN4XjcMERfewCnJJlnyuFmc2Km5u362JsbWRKm8LIXrX0nU8muhlLOGDorysQfwzLuzPl9zMNLqjSlzOH58JkQsOxhMd7C+EsxSEuwZ8uxzM9AAAgAElEQVTJawcz+5OZhTJwNY4sqOO3A9XmBy7vNkOfmX0Sdz9cWwBDSWcDvwlUmwM4y8x+l51NK8HM5jWzA8zsBpzz7W64gEJt4iRP2Ubd7OWnJPkVJPqNmc1kZrub2WW44CdFgmM9jrNVJBpIFqTypkC1Q6y37HUHAg+b2W+6Oa9PSXZ+/z9cULqFPFUFfELSuF777Ni4WzfPDlTbFhe4YrEybZvZVGa2P853LZSl6gJJZ5VpvwTrArN7yn1rXyJRBd2I3XoR112BP7FEJ66syu9mgO3ENwDPe8rXwJ0xYorNfk44W9HCwBWZb0LIplEYM1vUzL5iZnfhfCPSPrh7fOvOrPgF4YlEWT4MXG9mF2Xagkp9lsxsXdz8+BNckCYfj9N74PNhwTfHni/pxdpG0gUpClEiURAzm4fwpirkWFAXx+Mf61ZmNo+kpyrqb4OCUc0MmA5ndJgJZ7BdAFgUWJqwMcLHhcBuWUS6btgDv+p8Eg0wSEh6wsz+CXzQU20MEMtokxhe/kR3ER0foZmRBpY0s3371PftknyRM7vlLFyG1U5sQ3VRmhLF2Yqw0KfvewdJb5jZacB+nmpjCEehTiRykXSnmX2R8HO0LnCnmf0c+KWk/+VVzKLBbYbLqrZJgWE8jTN0x+S3wCd5pyPwDMCfzGw08D3gIl/kSjNbDvgCsBfhgDhPZ/31hKR/mdn9QJ4zzlQ4I9HnzewqXLarR3AZr3zR01+SdEqv40sMHKH39QWc2KSuvVrR5/R44Lv41/Y1gFvN7EfAb0MZ1TOHyk/iBMidskk8DZyBf43ulVPwZ7d/P84R8QFc9Pd7cN/RK/gdNC+XdG9lo+wCSTKzvXAO377MFbPjohf/A/g/nBDbN08vhosU/RmK2TE+nyLYDR+SnjKzfXCX8D5H3GVwWSf+CPxM0l2+drOL90OAIoLQ14FdJYUCHCTe5qeEBeBjgPXN7AjgJEmv51XM9qsbAAcAO9D5Wbgi+/fWXDhLusjMbgN8wtAlgX+Z2dG4ff04X5tmtgjusz0I5yw+JeNxzhfJGTQRDUnjzWw7nODFJzKZCfg+8FUz+wNO0POvMpmlzGxeYC1gY5w9z5flobFk+61P4AQYvvuVjwIrmNnnJQWzKmTz57Y4p4bFO1S5BVipiyE3nV/h9piTMxdwrpn9DZeN9hpfA1mgni/hPr8Q91BBpvoheneOBXbE/R0jjML9TbtkIr+/+Rw6zWxxnGP7p3EBzXy8DuzZa4aX7F7xctxnlscYXObya4F/A/8DXs7G4Gv7D72MrSJ+hdu/remp8x7g6kwA8MMsWKGXTLD2Q9webkoewX1/oQzSvfA53N35hp46BnwC2MfMzgT+Alwlyecw+84GnPB5ddxedEvc59j2AN0n4daPTuvSjLi/84we+0h+BYlumLlLe+c0wGw4R+X3AKviAvKVEb6OB3bqwZemMH28fx8v6bg+9V0Vh+MXc8yFsy98v4c+ZsTZmvczs/tworGzgRslvRr65WyfvjLu/mpv/IKvEb4k6bTuh1yITwKr4YJT5LEx7v7xx8AffHYKc1nuNge+g/t7QzxFOFh/L/jsgP+WFAp0kUj0ysXA10vUfwknVOgKSS+Z2fXAOiV+rRsBoI+BsxNLmpCdG3xBgbfC+RXfiLO93I87G4bWiJOLnLMyO9LuuKDJy3iqTo2zbXzOXDbtk4BrMuFjIcxsdtz5ZkPcGWAQ7Uh9QdLtZnYz+WvkR4HL6htRYkjYLPv5TXbOPQsX5OGOMrazbD5eEtge2BNYtuCvvomz0z1TatRDSBaQyGfPihkQvxKSuC6RKE7ISCoaYCTNOBu3sc2LWjSSSeenFfU3hv5lw3sFZ9D4UY8XTKHxXyrp0R7ar5IT8BvBtzKzeUOOnIlESc4AfoEz3JfhWElNjCy+DuUMMVVyFM4xuWrOwUV272SE2ZZyxq5ENYTWlv9Kuq6WkYQ5Ab/j/opmtrKkm+saUGLwkHS0ma2GM1D4mAE4FPiimd2CEwf/F2eInxp3gbgMTvQdErCOMAHYRdJDXQy9DNfhjMsHdyjbIPt5IosoewfwDC4C3Ww4A856FHcMmwTsLenxHsc8ws+AowN1psUJo4qIGcFllk7iukRZZsM5x9VFoedU0mtm9lUg5Dw4K+6Melh2sXAtLjP78zinlzlx7/vawPsCbX0SWDE0th45BZfVKpSlYHE6OzbnMQboq7gOQNI4M9sNlxkwZAfdIvt53Myu4O15egLue10CdxG3IsWzFvxJ0q+7GXui/Ug6K3OyPixQdWredmy6C+eYfi9OyGo4odEHcPuIRUoMYb+0fy+HpBvM7HjCGcjfhwtCdFTmhH4TThD9Ei6w2Hw4Z+j18Dtdv4BzRjumt5H3hc8Tzn48LU4Md3AmxrsGeIi3IyTPjgvusCbuAtM3t34FeK6XAScSRcj2DlvinLJ84nyAWXDvwueB8Znj1124zKXP4t7xUTgx/ly47EmL4858PqfPViHpZjP7Oi5IgY8lcSKx23F70MtxGVaf453r3Ua4bHd5Wdz/h1tbz+l58M3jdNyzsX2Hsu2A7czsQd7+7Ebm0zlwz9WGFN8rvIoT4QedqIswJO/OONx61Ml2siJwGvC8mV2KC0r0FPAG7u9dAicKLOPM93lJt/cy4Mn4KX5xHbjPfN3spyh9F9dJetPM9sDtx2bxVJ0O+AZwkJmdAvwdJyR8DCc6mQlYDCc02xYXhCZPuPJpwja0nshEq9vi3qlVAtVH4YSfOwKTsnn2Ztx5duS9Eu6dmg33Ti2Mm2cXp/1iuncg6RkzO598kfGO9C6uS34FiW6YC/h9H/odj1vzr6ypv378jeD2D20X152Fywbsswd/wcx+IemlCvp7H+7Mfggw0czuxgkpHsXt0Uf2mjPhhJ1L4YLLzVWijx9K+mEFY/WSiYk/BlyKP4DB9MDXgK+Z2a042/3juH3bjDh7zhI4x+2iWQJfB7ar8K7uHWQO4J3E/iO0/blPtINrgNfoHCSyE5dXkEXuEsr5dPWSKe9dDLCd+GfAaMJ3XKtmP0X5J85XOYik58zsQzgx4WKB6tPhxMv7AG+a2U3AbbgzznO8bVOaHmcbmR+X5OP9OPtIbRnIh5BjyRfX7WBmB/oCmSYSPTANTjA7koDiFTO7BxdE7DHgCd4OEj4t7o5/VtwcsRywAsX3eSMI2FdS6E4s4diOfJvas0Aw+F6/SeK6RKI4ISPplb7MGnUi6dUs0oTPcXkM1Ynr+oFwF1VfkPRwLw2Z2aq4RdPHCb30UTFn4i4+81KLT4073P2kthElBp5sXjkFFwWzDH+OMZ7Eu5H0qJndgLv8nZLlzGxxSQ/UPa5hxczmw58FBpq1tlyFExcs6qkzBncpn0j0wj44Q0UnR7EpGYmAWSQqpI83gZ0lVWpU9/BlnNPLRjnl8wE7V9DP5ySdX0E7I/wW59hfNDJTIjF0SPpj5ty2dYHq0+CcDdbosruvSzrTzKKK6zKHvUNo1r6kUiRdmEXCPJFiUb3nB3aqoOtTqSC7aKLdSPpGFiH1gIK/8gHyxQRlOFBS4yP/NZSDKC5knAUXyXzzLvp5A9g+EyN08ev9RdLFZvYLXCbPEFPhnAO7XdN+L+mnWSboRCI6km41s/VwwouiQqXpcJHFW5OFskok/cDMVgB2L1B9ueynG97A3X2UydTSNsbg9gJL55QvissU0guTgN0l3dRjO+9gGN4dST/PMgnnZTCYHWfzKmL38vETSb/psY23kHSOmV1Ed3uWxiPpPjPbGSe6Dc0Ps+HOad2e1X4j6ewsO29UJL1gZhvj7oWLBrqaCnfnHbr3HnSOJV9ct5WZTVcma+bkJL+CRMt4Cpex7rJ+DyQRJsvm812cH1QeI9nrjqi4+1G4oJa+LEJl+bKkUACOypA01sx2wn1+vsD5I/RipxhhJCvk2B7b8bEGThTfiYk0a81JDCjZPdLVOOFpEaq4ky+TLe8ZnDi5agbOTizp31km+bK+f1WP4yEzWxe4gOJnl6np7d41US0n4rK9d9KgLIgLMhtzfUwkRpiJavzK8ngDF/T85EjtDyK+rMunSHqjtpF0yUBFoUokYpFl2Fg+UO34OsZSgtB4ls/+rrbxBk6ss5yknXsV1mWEhJOv03sEu8rI0mifFajWr0yCicGmrFDuKkl9z1YxZJztKcu7SEzEYU/CgSwas3fIIgadGKi2m5n5ov0lEkGyKHU7U19k6xeAbSSdWVN/SJqAMxbEMOKPcIikn1fZYGbA2AF34Z5IJPIZiYgfkx9K+l7kPt5C0olEjrrfbySdinNwrSKqcxF+jXNYbmIW70T9HAR8GxcoKjbjgX2q3icME5KeBT5C3CxpI5kDLo3YRx0cjHOAiMnJwP6R+0gk3oWkO3FZFS/q91haxD7Ejzq7X41ZV/qCpBeArXAZ+mIwAdhN0t9iND4k784+hLO39sLRuAwyVbMHcF+EdhuBpAuAj+OczGNxEcWDZlSCpBdx0dh/Sj3niUHhXFy0+k7MAnyoh7aTX0GiLZwFrJCEda3jDOA/gToHm5kvW2u/eQ7YsU5h3QiSzsLdcxXKntQjzwEfkhQ7o/aOnrILJD0Wuf9EYoRLStStQlw3ki2vCJfFyJA1wHbiz+Eyd/aVLNPzeiSRcCvJMl+f66nysbrGkkhE5L/ABklYVxwzmwPY1FPlj3WNpReSuC6RKEbIoPgGcHodAynBxeQbjUdoi6F0Ei4V9GeBhSXtI+mOKho2s+nIjzA5wjnZ5UWTCB0sljOzTtmrEomukXQNcFeJX0lZ6+rHd0G2TW2jSEB4jf1XA8WnobVlLpJIM1EBkiZI+gQuQnRMkcO/gDUz55payYztG1DuoqEIL+PEGj+uuF0AJN0DrAVcF6P9RGIQyM6Gm+APatAtE4D9JR0aoW0vkg7COXAWvaxsHZmjw1rEFUe+AIyR9OlMUJ5IIMe3cALPkK2uF+4BNpSUzuI9Iuk2YF3K2UCK8iSwiaS/Rmi7VrKgEtsDv4vRPPBdnAAkCZUTfUHS48AHgQOJ60jViUnAP4Bna+63a7KALdsTJ5jUm8BoScdEaLtxSHoAWAf4d8VNPwl8WNIpFbf7Dgb93cmyXW0FnFRx0xNwwZQOiuQY+iQucnztdrK6kPQXXFCvVyM0fxawbT/OeZLekHQwsAVwd9394+ai2/rQb9dka9KvPFX27abd5FeQaAlXAJtJ2i5bkxMtItsDfDdQbSR7XRP5B7CipL6JjCWdi8tqVIlPWQ5XAyvFFq+a2TT4s1b/LGb/icQUFBXMPQnc3mtn2bnr6oLVqxDz5Y1j4OzEkl7FCR+OrbPfnLG8JGkPYFfg0T4MYSwwrg/9Dgo/9ZTtkZ2fEok2Mh6XmXElScl3qhx7kZ9F+ipJN9Y5mG5J4rpEIoCZTY/bwPk4X1LdF0ReMqeDkGJ614ZuYoQ7aP0aZ6BeUNKGkn6ZXf5UyXbAHIE6TYyQcSHwdKBOW8STiXZR1EnvFeDUmANJvJvMsPNATvH6WXSIRGTMbE1gmUC1xq0tkv5DONNWWlsSlSHp97h35USqjSr9OM6Bay1J/XA4Ad4S4GwBHEo1YpVLgVWzDFPRkHQ/ztlqF+AqUlTsROJdZNkktgO+gotIXgVXA6tI+k1F7ZUmE+5+ADiK8HmzlWSBetbAZVuq0r4wETgOWGZYnL4T5cmiZy8N/BJ3MVMVL+Ay462YLnmqI8u8szrhDN+Fm8TZVJaRNLaiNvuOpPGS9sOdFatyIv4PLhroYTHEBYlEGTKB9M+B9wE/Ap6P3OWdwJeBRSR9MAvc0hqyYDp7Ap+mOnHLOGDzTDQzNEh6BJcB7odUYzM5A+cQEjPj2lsM+ruTiZ12w61/VdwP3wysFyuY0giSnpb0YVzWrr/jhKsDRebMvwYVOPRmTAAOBz4qqa/BaLL3dzlcMNr7I3f3JM5hf2VJbT1n/Ip8m82WZrZQF20mv4JEU7kft96unPnVRBMZJGrhVMIiji90kb3ukS7HU4SbcVncPijpoYj9FCKz6awMfIlqg3w+gpsv15cUK9P05GwHzJtTdmt61xM1cyPODh3ikgrteUWf8aqD3b6DQbQTS3pV0t44n4DTqe6us9vxnAwsCRyG8/WIyYM4IfuSktaVNLAZ3mMj6Qrc3NCJuXHZZBOJbrkXZ/84jzhBlDrxIs4W8n5Jh8plgk+U4xOesp/UNooembrfA0gkWsD8wNGBOufVMZAu+CXhC6v5cZvG2EzCOQ6N/LwCPIWL2P0k8DAu2t5dwN01XlCMxzkg5SEaGMVR0ptm9mlgWU+1Ihd64/D//YnElBwHHAGMCtQ7PW0w+8bZwEEd/n1qXETdGNGj+0loDhtXxyCmYAbC44oqjumBL+Iib+XxpplNJWlSXQNKDDaSHgZ2N7Nv8f/s3X1wHPl95/fPr7tnBsCQ4BC7IHdX+8AFd627W0lWQMpK5NiSSmRSOVfOzoWwKvIfeXCWqDvLOTu+I7Iup2QnVvYAJ5eKrpw7Yusq5zz4sgumLPt8SmRCZUt3qpOlJVarXVKnXWH2mQ8gQAxIghjMTPcvf/R0s2cwAwLEPODh/WJ1YaYffv3FYDgY9PSnv9LfUhjoevg+h/vXkv5A0h9Ya7t6ADhSveDF7xlj/i9Jv67wqsi5TQ7zF5L+p+rVNjui+qHHi5JeNMY8JOmzCj80+LCkxyUNSuqXlBEX7cEeVf1/8veNMf9U0m9IGpW02RMafIVX8/2KpK83+cDxspp/MNFy1ZMCfs0Y8xsKT+b9aUkfk3RU4fGDBxS+1/EkmU7V1UrV1+b/2RjzjyX9ZwqvoPZv3+dwlxVe2Oj3q+FkbF9X1PxYeMeCC9WLc33RGPNlhe99fknS0H0O9wOFf6O/UA39osWqxzV+yRgzIek3JZ3S5t/7LCvsbPO/WGubneT9I0n71lm27Vlr/6kx5o8Uftj5awo/PN/UEAqD5l+R9EdNusLMa/3fia0MrQI1qkGdv1f92/U/kTSi8O+kZldh3ahFhX/zTUuatmE38R3PWvuPjDH/XNKXFV5A8X4+jy4o/Izr7+/V48zVYxtnjDEvKDxm90uS+jYxRCDpTyX9nrX2X7WhxHva7f93qr///ljSr1SnhzY5xMsKL27yh5083mqt/bqkr1cvxvdZhWG0vyLpiMITuA8oPOZzr8+BtiVr7UVjzL+lMOj7nDb/c5HC9yZ/Kum3rLWt7iJ536rvkX7fGPOPJP11hf+vfk7hz2wrVhUeW52uTi/bHd492Fo7b4z5P9T4xC5X0i9r85+R7/XzCtA9JYUnvRcUnl/znsLzal5XePX/roeZ0DrW2sAY87ta/zP9AYUXmfzyJsb9ZWPMlxT+3vjrCo/7PrCFUpckfVXhcamNdpfqGBt2MZ2ovpf+LySdlvQT9zFUIOlfSvonkv5va225dVXe0+l1lq3XLQhoOWutb4z5pqS/cY9VWxl020i47oNOXGx3tx4nttZ+R9KIMSYr6dMKPyv7a5KeVPi34UGFfxu2PWdgw456v1t9jP+mwq7k/542dxykkWWFnX2/ofBvnR9wQbeW+gdqfoGR0wqf8+iOr2r9cya/36E67ou1dlnhseHfrzZI+rSkzyg8f+G4Nn9eRjMLCn93/T+S/rS633b7vtY/ttDui5S1hTHmp9X8uENe0h93sJwtMfyeAAAA2D2MMZ9V8wNWU9baX+xkPQCwGcYYR9IxST9T/XpUYZhrv8Iwh6/wqkQLCv/4fkPhiR/frAb12l3fETXvECpJ//l6HYuMMSlJPyvphKSPKgyrDSj8/qzCK2h+oLBbx7cVdsheb38AtgljTK+kTyk8MfFTkg4rPDlhQOEH8LcVnqj0Y4Unv3xb4UmgO/Lg6G5jjHlMdz84/LDCDw4fUPihnavwd88tSe9KmlUY7viXkma46AC2yhjzMYXvfT6hsLvLEwpD7H0K3x/cUfj68bbC9z5/KelbXFG184wxDyr88O6zCq+A/qDC14oDCk+0va3wImJvSLqksPPwv6qe0LVnVN/z/pTCx+nflfQh3f2daBQ+TksKX09/pPA5/WfW2mtdKRi4T8aYfoUf5v+Uwg+Nn5D0mMK/76L3ELcVvoe4pfBD8bzC94L/RmGnrR/u9vcSxpgPKezu8HMKf9etF9ZZUhiY+hNJL+22UJ0x5jMKfzc081lr7V+ss32vwuMJn1X4nHta4Ylu+xR2ILul8GKalyR9U9L/a6290oraW2k7/98xxqx34sTvWGt/e51tHYXf178v6ScVhtUeVPh9OQq/pysK6/+Owp/PxdZUjmaMMWlJ/3F1OqH1Q2gVSa9K+ueSXrTW3qtr0LZQfe91TOFr7McV/j37mML3Xr0KT4aN/qa9pfBK7FEwJ5pe63ZnvnYwxvxVhcdZG10c6D1JR3b772EAWI8x5mmF71/+msLP44YUhin2VSdHYSgh+uzqR7r7XvN7Oy2IbYz5CYVBjWGF79Wizx+zCj9/jC4S/7bC3x9/KenPrbVzXah1SOFnCY1+h12V9MReO94EbCccJ+6M6nGQTyg8fvAxhReEeUzh49yn8MI90e+pm9XpbdUeP7jY4WD0nmKM8RSeP9OsM/hPWGvf7GBJ2AOqx+D+qsLjb08mpkcUvofNVr+6utsMaFHh6/Jlha/NP1R40atLBG5bo3pR6v+0yeK/Y629V5OrbYNwHQAAwC5S/cN1TuGJFfVuSXqQAzYAcH+2Gq4DAAAAAGCvqp4UFXVE71d4gkMUnnqjExfN6aathuvQflsJ12H7M8YYhSdjRsHUPtVeSOUNPjvZfYwx5xSGKxv5m9baP+pkPQAAbIQx5n+U9BtNFv+GtfYfdLIeAACaMcZ8UdI/bLL4K9bav9PJegB0njFmUOFF33obLL4q6Wi1Q+mO0PZ2rQAAAOgca23FGPM1Sb/UYPF+hVdO+npnqwIAAAAAAACwl1W7In2/OgFAR1WvRP6W1r9wFnaf/1bSf6Sw+1K9MUmE6wAA24ox5qCk0SaLP5D0v3awHAAA7mVS0t+V9ESDZf+lMea/s9YudLgmAJ31a2ocrJOkL++kYJ3U+AASAAAAdrY/WWfZz3esCgAAAAAAAAAAAKALrLU/lPR/Nln8SWPMZztZDwAAG/BFSfuaLPvvrbXFThYDAMB6qh3gf6fJ4j5J/1UHywHQYcaY/ZL+dpPF7ygM4O4ohOsAAAB2n/9PUqnJsv+wk4UAAAAAAAAAAAAAXfLbkspNlj3XwToAAFiXMWa9EMKspH/SwXIAANio/13Sj5os+6IxplloHMDO97ck5Zos+51qAHdHIVwHAACwy1hrb0r6iyaLHzXGHOtgOQAAAAAAAAAAAEDHWWvfUvMrpZ80xgx3sh4AANbxrKQHmyz7krW20sliAADYCGutL+m3miwekHS6g+UA6BBjTEbSrzdZ/G8UBm93HMJ1AAAAu9Mfr7Psb3SsCgAAAAAAAAAAAKB7viTpRpNlv9vJQgAAaMQYk5X03zRZ/K8l/WEHywEAYFOsteckfbPJ4jG61wG70hclPdRk2a9Vg7c7DuE6AACA3elP1ln28x2rAgAAAAAAAAAAAOgSa+2CpN9ssvg/MMZ8tpP1AADQwN9V45OTA0m/Yq21Ha4HAIDN+qKkRl1WD0k60+FaALSRMSan5sdZ/sha+/VO1tNKhOsAAAB2IWvt+9Za02T6eLfrAwAAAAAAAAAAADrkBUkXmiybMMaYThYDAEDEGHNIYbiukX9srX2lk/UAAHA/rLWvS/qHTRb/18aYZh2uAOw8vylpoMH8FUm/3uFaWopwHQAAAAAAAAAAAAAAAIBdyVobSPoVSY06/xyX9PnOVgQAQOxLkvY1mD8v6bc6XAsAAFvx25KuNpifrS4DsMMZYx6T9KtNFv8P1tp3OllPq3ndLgAAAAAAAAAAAAAAAAAA2sVa+5fGmF+W9ESDxT2drgcAAGOMK+mypN9psPjb1trFDpcEAMB9s9beNMZ8QdKnGywuG2M8a22l03UBaKknJY03mO9L+r0O19JyhOvQdsaYUwqv8nVCUk5SQdINSdOSzlprZ9q03ylJp+5j05PW2ulW1wMAAAAAAAAAAAAAAIDusNb+b92uAQCAiLXWl/TlbtcBAECrWGv/XNKfd7sOAO1hrf2WpG91u452cbpdAHYvY8yQMeaCpCjklqsuykkaknRa0gVjzHljTK7JMAAAAAAAAAAAAAAAAAAAAAAAAADQcnSuQ1tUw3IXdDdQV5D0cvXrkKThxOonJL1ljDlmrc23qaQZSRsdu101AACwLRhjfk7Sw92uY4PeqF7tAgAAAAAAAAAAAAAAAAAAAABainAd2mVKd4N1Y9baieTCavhuXGH3OlXXPS/paJvqed5ae65NYwMAsNP8PUmf7nYRG/QH2sVtpAEAAAAAAAAAAAAAAAAAAAB0j9PtArD7GGNOKexGJ0mj9cE6SbLWFqy1o5LGErOHjDHjnagRAAAAAAAAAAAAAAAAAAAAAAAAwN5GuA7t8Fz164y1dnK9FavBu5nErDNtqwoAAAAAAAAAAAAAAAAAAAAAAAAAqrxuF4DdxRgzJGm4endsvXUTxiSdT4xxwlo73eraAAAAAGArrLVvSzLdrgMAAAAAAOws1tq/EMcUtjVrLT8fAAAAAAAAANij6FyHlrLW5iVNSypsNCDXYL2TLS8MAAAAAAAAAAAAAAAAAAAAAAAAABII16EdRiQ9v8lt8onbuRbWAgAAAAAAAAAAAAAAAAAAAAAAAABreN0uALuPtbYgaWKTmw0kbhdaWE4NY0xO0nFJw9X95DfaYQ8AgN3CWvuZbtcAAAAAAAAAAAAAAAAAAAAAAN1GuA7bRbJb3ffaMP6AMWZc0pn6BcaYgqRnrbXn2rBfAAAAAAAAAAAAAAAAAAAAAAAAANsQ4Tp0nTHmRN2smTbs5uw6y3KSpowxk9ba0Vbt0NkoNW0AACAASURBVBhzSNLgJjfbp7Cz3k1JS5Lek1RqVU0AAAAAAAAAAAAAAAAAAAAAAADAOtKSHkvc/6a1dqlbxbQb4TpsB+OJ2+estfk27mtS0llr7YwxZkjSmKTT1WWnjTEFa+1Yi/b1tyV9qUVjAQAAAAAAAAAAAAAAAAAAAAAAAJ3285L+pNtFtIvT7QKwt1W71g0nZrUq2NbIiLV21Fo7I0nW2ny1U91EYp0zxpjhxpsDAAAAAAAAAAAAAAAAAAAAAAAA2C0I16Frqp3jphKzTraxa92EtfZcowXVTnWFxKzxRusBAAAAAAAAAAAAAAAAAAAAAAAA2D2MtbbbNWCPMsbMShqq3h211k62ePyhaHxr7fQ91h2XdCYx66C1ttBs/Q3u/5CkwU1u9lckxSHAr371q3rqqae2UgYAAAAAAAAAAAAAAAAAAAAAAACwIT/+8Y/1C7/wC8lZw9baV7pVT7t53S4Ae5Mx5oLaGKyTpGoXvI12wvte3f0TSoTc7nP/c5LmNrONMabm/lNPPaVnnnlmK2UAAAAAAAAAAAAAAAAAAAAAAAAA96vU7QLayel2Adh7qsG64erdkXYE6+5DfQjvE12pAgAAAAAAAAAAAAAAAAAAAAAAAEBH0LkOHWOMyUn6hsJgXUHS56y1M92tKlYfrst1pQoAAAAAAAAAAAAAAAAAAAAAAAAAHUHnOnSEMWZIUtSxLi/p2DYK1knSQN39QleqAAAAAAAAAAAAAAAAAAAAAAAAANARdK5D2yWCdTndDdZtt/DaUN392a5UAQAAAAAAAAAAAAAAAAAAAAAAAKAj6FyHtqoL1s1oewbrJOlk3f3prlQBAAAAAAAAAAAAAAAAAAAAAAAAoCPoXIe2qQ/WWWuPdXDf45Jy1trRDW5yKnF7xlqbb0NZAAAAAAAAAAAAAAAAAAAAAAAAALYJwnVoi7pg3bS1tr4zXLv3faZ6u2CtHbvH+mckDSVmrbs+AAAAAAAAAAAAAAAAAAAAAAAAgJ2PcB1ari5Yd85aO9LCsU8n7r5srZ1psNoNSXmFgbkzxphhSWP16xpjcpKeUzWIVzVprZ1uVb0AAAAAAAAAAAAAAAAAAAAAAAAAtifCdWiH8wqDdZJ0whizuMntX7LWjjZZdjZxe0zSmnCdtbZgjDmmMOA3JOmEpAvGmHx1/Sh4d6pu03Pr7BcAAAAAAAAAAAAAAAAAAAAAAADALkK4Du0wkLida7rWxra/L9bagqSjxphx3e1MN1SdGhmz1k5sdb8AAAAAAAAAAAAAAAAAAAAAAAAAdgan2wUA7WStHZN0UHe73BWqiwrV+2OSDhKsAwAAAAAAAAAAAAAAAAAAAAAAAPYWOteh5ay1B9s4trmPbQqSJqoTAAAAAAAAAAAAAAAAAAAAAAAAANC5DgAAAAAAAAAAAAAAAAAAAAAAAACw9xCuAwAAAAAAAAAAAAAAAAAAAAAAAADsOYTrAAAAAAAAAAAAAAAAAAAAAAAAAAB7DuE6AAAAAAAAAAAAAAAAAAAAAAAAAMCeQ7gOAAAAAAAAAAAAAAAAAAAAAAAAALDneN0uAAAAAAAAANgKa23NfWNMw2XJ+QAAAAAAAAAAAAAAAABA5zoAAAAAAADsKvVhOwAAAAAAAAAAAAAAAABohM51AAAAAAAA2NE20pGOrnUAAAAAAAAAAAAAAAAA6hGuAwAAAAAAQNdF3eaMMTWd55L31wvI1Xeri9YlVAcAAAAAAAAAAAAAAACgGcJ1AAAAAAAA6Ir6QFwrx2gW1osQugMAAAAAAAAAAAAAAABAuA4AAAAAAAAdVx94s9bGgbf6TnWNlm10/GZd7zbSDQ8AAAAAAAAAAAAAAADA7ka4DgAAAAAAADtCMljXLJx3r7BcMqgHAAAAAAAAAAAAAAAAYG9zul0AAAAAAAAAYK2t6Ta3XpCu0Xa+7ysIgoYd6TZyGwAAAAAAAAAAAAAAAMDeQ+c6AAAAAAAAtF19WM5aK8dxFASBjDFynPAaUKVSSa7rxuv6vi9jjIIg0Pz8vJaWlpRKpZRKpWStVSaTUS6XUyqVkiSVy2W5rivHcdYE7RoF9qL1ov0DAAAAAAAAAAAAAAAA2DsI1wEAAAAAAKCjjDFxYC4IgjjgZoyJQ3OVSkUffPCBFhYWdOvWLS0tLWlpaUnlcll9fX1yXVd37tyRMUZ9fX3q7+/Xhz70IT344IPKZDLKZrNyXbemG160b9/3a5bRwQ4AAAAAAAAAELHWKgiCmgu2AQAAAMD9ii46zfkp2xfhOgAAAAAAALRVMuBW30XO87y4O12lUtHq6qquXr2qd999V5cvX5bv+7p165YqlYr279+vnp4eLS8vS5J6e3tlrdWNGzd09epVLS4uqq+vT5VKRU888YSeeuopeZ4nx3GUTqfjelzXVblcViqVisN9AAAAAAAAAIC9x1qrlZUV3b59W8vLyyqXy/J9v9tlAQAAANiFXNeV67rq6+tTNpuNLxyN7iNcBwAAAAAAgLZJBuuSV/mt715XKpU0Pz+vN998U++//75u3rwpY4yy2awGBgaUzWZlrZXneerp6ZG1VqurqzLGaHBwUI7jqFAoaHFxUcViUaVSSVevXlVfX5+OHDmiwcFBZTKZeL+pVEqS4q55SVwpDAAAAAAAAAB2t3K5rPn5ed26dYswHQAAAICO8H1fvu+rVCqpUChICi8sncvldODAAc5X6SLCdQAAAAAAAGiL+o51xpg1QbbV1VW99dZbevfdd3Xt2jUtLCyor69PuVxO2Ww2DtKlUil5nifP8+Lxent74zErlYoOHDigBx54QCsrK1pZWdG1a9dULBa1sLCgZ555RkePHo3Xj+qI6qqvmwOWAAAAAAAAALD7WGtVKBQ0NzenIAi6XQ4AAACAPS46x2VxcVEPPfSQent7u13SnkS4DgAAAAAAAG1XH1iz1mp5eVk/+tGP9PLLL+v69evKZrM6ePCgstms0um0PM9TJpOR67oyxsThOmOMHMeJxwuCQOl0Wr7vKwgC9fT0KJPJaP/+/bp165ZKpZJeffVVLS4u6uMf/7hc15XruvJ9X47jSKJbHQAAAAAAAADsdtZaXblyRUtLS90uBQAAAABqFItFvf3223rkkUd04MCBbpez5xCuAwAAAAAAwJYlO8E1mh/dDoJAxhjdvHlTly5d0quvvqpCoaBcLqf+/n719PQonU7HUyaTkTFGqVRKruvKcZw4WFffBS+6ynBPT49KpZIqlYo8z1OxWFShUNDFixclST/5kz8px3HkeV68XVQ3XesAAAAAAAAAYPex1uratWtNg3WZTEb79u1TX1+fPM+LL/oGAAAAAFtlrZXv+/J9X6urq7p9+7bu3Lmz5rwXSbp8+bIkEbDrMMJ1AAAAAAAAaLlmYTvHcbSysqJLly7pu9/9ru7cuaNcLqd9+/bFHetSqVTcsc5xHKVSqfhkBsdx5LpuzZjJDnbR1ygk53leHMhLp9N64403dPPmTX3qU59SNptdE6ZLhvaiZZxAAQAAAAAAAAA729LSkhYXF9fMP3DggB588EGl0+kuVAUAAABgr0ilUpKkbDargYEBBUGg5eVlzc3NqVQq1ax7+fJlpdNp9fb2dqPUPYlwHQAAAAAAALZsvQBaMqx2584dvfbaa/rOd76j5eVl9ff3K5vNKpPJxN3qXNeNO9Ulb0chuShgl9xndJWvKBCXTqfleZ7K5bKsterp6VGlUlEQBHrnnXdUKpX0Mz/zM+rt7Y072CVrvdf3BAAAAAAAAADYGYIg0PXr19fMf/TRR7V///4uVAQAAABgr3McR/v371c2m9Xc3Nyai4FcvXpVR44c4dyVDiFcBwAAAAAAgJZoFEyrn3fr1i29/vrrunz5sh555BEdOHAgDrhFHemibnFRuC66HQXrok52yW0qlYrK5bIqlYp834870Blj5Pu+9u/fr5WVFWWzWTmOo3feeUfZbFbHjx9XKpVq2GkvGqO+ux0AAAAAAAAAYOdYWFhQpVKpmffII48QrAMAAADQdY7j6PDhw5JUE7ArFotaWlpSLpfrVml7CuE6AAAAAAAAtEV9YO3OnTt66623dO3aNeVyOfX29sbrRYG5qFNdNEWhOs/z4mBdJpNRT09P3OVOknzf1+rqqlZXV1UsFlUqlWStjQN6lUpFfX19KpfLkqQDBw7ozTff1JEjR5ROp5VKpdbUTqgOAAAAAAAAAHa+mzdv1tzPZrM6cOBAl6oBAAAAgFrGGB06dEjLy8sqlUrx/EKhQLiuQ5xuFwAAAAAAAIDdJwrWRV8rlYo++OADXbhwQbdv39aBAwfi8FzUnc4YE3ekc5zwsFXUrS4K1vX09Kivr099fX3q7e1VT0+Penp64pMhcrmc9u/fr0wmE4+dyWQkSZlMRp7nyRgTd8t74403tLKyEofogiDowqMFAAAAAAAAAGiHcrlcc3KqJA0ODnapGgAAAABozHEcHTp0qGbeysqKfN/vUkV7C+E6AAAAAAAAbFl9l7qIMUbWWt2+fVs//OEP9f777yuTychxnDj4lkqlaraLtok6xxljasJ1PT09SqVScQAv4rquent7tW/fPvX29tZ0vevp6YnHzmazSqfTymQyunbtmq5fvx6H6nzfr9kvAAAAAAAAAGDnWl5errnvum58vBgAAAAAtpNsNrvmXJX6v2nQHoTrAAAAAAAA0HJR2E4KA2vz8/N688035ft+fDDQcZx4Pdd15Xle3G0umlKplDzPk6Q4YBcF66IAXrS/KCCXTqfXBPB8348DfdbaeH/lclmXLl3S/Px8XEeydgAAAAAAAADAznXnzp2a+319fVxYDQAAAMC25DiO+vr6auYRrusMwnUAAAAAAABomUbBtNXVVV25ckWFQkHpdFqe58nzvDj45jhOTVguCsolw3OS4kCe4zhrTn6IxrLWxiG8aB9RqC65nud5SqfTkqTr169rbm5OlUplTS0AAAAAAAAAgJ2rPlyXzWa7VAkAAAAA3Fv93yz1f9OgPQjXAQAAAAAAYMvqw27GmDictry8rDfeeEN37txRJpOpCchF60XrRvOi5VFYLho/GcBLstbG60Qd7KL70dcoZBeNGwXsSqWSrl69qpWVlZpOeAAAAAAAAACAnc33/Zr7mUymS5UAAAAAwL319PTU3K//mwbtQbgOAAAAAAAAW1bfYS76aq1VqVTSwsKCisWiXNeNu8cFQdAwlJcM2EVjR2NVKhVVKpWa/URhu2RYz/f9OGQnqSasl9w26lI3NzenQqHQcCyCdgAAAAAAAACw81hra44TS4qPOwMAAADAduS6bs193/c5b6UD+EsRAAAAAAAALVXfRe727du6detW3C0umi9pTYgtmoIgWDNVKhWVSiWVy+X4ylzJ7aN9l8tlra6urrl6V31wzhgj13XleZ6WlpZ05coVlUqleNzkugAAAAAAAACAnaU+WCetPVEVAAAAALaTRhcEafS3DVqLcB0AAAAAAAC2LBlCS4bYyuWyrl+/rtXV1ZpgXTIMl9wmCtYlb/u+L9/349DcysqKisWiyuVyTUgvCAKtrq5qeXk5Xl6pVOIwXnK/0T6NMUqlUvJ9Xx988IEKhcKaDneE6wAAAAAAAABg52nU3YHjvQAAAAC2s0bhOjrXtZ/X7QIAAAAAAACw8zU6kBd1kSsUCiqVSjLGqFKpKAiCms52pVJJjuPUnNQQheuidaJ5UfCtUqkolUoplUrJdd04iBeF7+oDdckxovm+78taK9d15TiO5ufndfXqVR06dEjWWjmOI9/319QGAAAAAAAAAAAAAAAAYHcgXAcAAAAAAICWSgbRjDHyPK8mTBddZSvZHS5aFgSBKpWKpPBqXMkgnrVWpVJJvu/HHemi4Ft9l7toikJ1vu/H+0iG7owxcl1XxhgtLy/r8uXLOnr0qLLZLF3rAAAAAAAAAAAAAAAAgF2OcB0AAAAAAADawlqrVCqlXC6nVCql27dvq1wuq1KpqFgsxsE713VrAnGRKNxmjFEqlZJ0NyQXBeqi/dTvNwrpVSqVmnGToTvHceJgXX9/vyRpeXlZt2/fVjabrQn2RfsEAAAAAAAAAAAAAAAAsHsQrgMAAAAAAMCWJcNuydupVEoDAwPyPE+rq6tyXVflclme59V0mqtUKnIcp6arXdSVLppc14272ZVKpXhf0TxrbTxFXfCiznXRvqKwXTTfGBPX4Hme5ufn9d577+nQoUPx/gEAAAAAAAAAAAAAAADsToTrAAAAAAAA0BZRMK2np0f9/f2am5tTqVSS67qy1sad5aLucVEnOUnyPE++78fBOikMyEXrRvOi7aS7Heui29H9KDxXLpdVLpdlrY23d11X6XQ63pe1Vjdu3NDCwoIGBwfjkGC0DwAAAAAAAAAAAAAAAAC7B+E6AAAAAAAAtER9l7coxNbb26vBwUG99957KhaLcfc6Y4xSqVTcIS7qXBdtV985LgrM1Yfrotv14booVBcEQRzkS44dre+6rjKZjHzf1+rqqq5evar5+XkNDg5KIlgHAAAAAAAAAAAAAAAA7FaE6wAAAAAAANBWPT09Onz4sDKZjEqlkvr6+lQqleQ4jiqVSk2wrlFoTgrDcq7rKgiCputFXeaS3eqCIIjvS4o74wVBUBPAs9YqlUopnU6rWCxqfn5ed+7cUW9vbzxuUn2QEAAAAAAAAAAAAAAAAMDOQ7gOAAAAAAAAW7ZeAC2TyWhwcFCu66pYLKpcLst1XXmep1KpJGOMPM+Lu9klA3NRmC7ZZS7ZSa4+hBdtkwzNRVM0ThS0cxxHruvG3eyigF2pVNLbb7+thx9+WE8//fS63y8hOwAAAAAAAAAAgM0rFAq6ceOG8vm88vm8CoWCJCmXy2lgYEC5XE7Hjx9XLpfrcqUAAADY7QjXAQAAAAAAoOWS3eQ8z9PDDz+sRx99VEtLS1peXpYxRq7rxl/L5XIccksG61zXrelYl+xcF62fFAXpotuRZCAvWWPUya5SqchxHGUyGQVBoKWlJb333nt65JFH1NfXR4gOAAAAAAAAAABgiwqFgiYnJ/Xiiy9qZmZmw9sNDw/rxIkT+vznP6/h4eE2VggAAIC9aO1ZRQAAAAAAAMAWRSG3qEvc4cOH9clPflIDAwNx97pyuaxSqaTV1VWtrq6qVCrVTMl55XJZlUpFlUol3i45lctlra6uqlgsqlQqKQiCOBAXBfaimqLud1E4Lwr5Rd3touXz8/NaWFho+j0SuAMAAAAAAAAAALi3mZkZHTt2TAcPHtTY2NimgnXR9hMTEzVj5PP5DW07MTEhY4ymp6fvp3QAQAscPXo0/tw+mg4ePNjtsgAgRrgOAAAAAAAAW5bsOJfkOI4cx1E6ndbDDz+sBx54QEEQqFwu686dO6pUKnEoLhmmi25HobooUFcsFuMpudz3/TXBuSAI4kBdEARxPdG8ZHc913WVTqfj5el0WisrK7px44ZWV1fjsaJxkuMmO+QBAAAAAAAAAAAgVCgUNDo6qmPHjm06ULfemBMTExsOy83OzkqSRkZGNDk52bI6AAAAsHt43S4AAAAAAAAAu0cyYBcF2KIgWn9/vz784Q/rypUrWllZkeM4WllZiTvGRdv4vi/XdeW6rsrlshzHUSqVqukqF91Obht9bcRxnDXhv6guSQqCQEEQyHVdpVIpVSoVraysaHl5WcaYmrGTYTq61wEAAAAAAAAAAKx17tw5PfvssyoUCvdcd2hoSENDQ7px44YKhcKGutIdP358Q3VEY0VBv0gul5MkDQwM1Ny/X6Ojozp9+vSWxgAAAEB3EK4DAAAAAABA2xljtH//fj3xxBPq7e3V9evXlUqlVC6X4/Basiuc53kyxsSht6i7XHJZFHJLdpGr76BXH/Zbr75o8jxPqVRKKysrunbtmgqFgh588MGaOpvtAwAAAAAAAAAAYK+bnJysCbLVGx4e1nPPPacTJ040DbXl83lNT09ramqqYZe64eHhDdXy8ssvN5wfhf42Ev7biKhDHgAAAHae5pfzBgAAAAAAAFogCq25rqvBwUE99thjSqVScUjN932trq6qVCqpVCqpXC7HU6VSke/7NeMkA3RRsC4ZtIs0mx+Nlbztuq48z4u74mUyGfX29mp+fl75fF4rKytrvp9mYwMAAAAAAAAAAOxVY2NjTYN1J06c0IULF3ThwgWdOnVq3W5xQ0NDOn36tM6fP6/Z2VmdOXOmZtlGtSo8t55cLqfnnnuu7fsBAABAe9C5DgAAAAAAAG3RKID24IMP6tixY3r33Xd17do1pVIpSZLv+3Hnumj9qGtd1LGuvkNdcj+O46zZ13rrRAG5qCteEATx8mh/vb29KhQKev/99/Xkk08qm83KWlvzfQEAAAAAAAAAACA0NjamiYmJhsvOnDmj8fHx+xp3aGhI4+Pjeu655zQyMrJuKC9pZmbmvva3WS+88MKGawKAvahRt9HNBKUBoN0I1wEAAAAAAKDtomBcOp3Wo48+qscee0xXr15VqVRSJpORMUaVSkXlclmu68pxnDhc53leHIDzfb+me10y7Jb82qyGSLRO/TZRF7tKpSLHcZRKpXTr1i0tLCxoYGBAruvWdM4DAAAAAAAAAACAND093TRYd/78eZ04cWLL+8jlcjp//vyGu9Hl8/kt7/NeTp06pVOnTrV9PwCwk01NTXW7BABYF+E6AAAAAAAAtF0yDJfNZvXUU0/prbfeUqFQkOd5cl03Ds/5vh/fj+ZFXeXqu8xFkp3t6sNySfUBu+Ry13XjdTzPUxAESqVSKhaLmpub04c+9CHt378/Hv9eYT4AAAAAAAAAAIC9oFAoaGRkpOGyqamplgTrkjbaJS4K1504cULj4+PK5XIaGBjYcpe5fD6vo0ePKpfL6YUXXtjSWHtZoVDQ888/XzNvdHSUblbYEXj+ol14bgHdQbgOAAAAAAAAWxaF1pJBs2hefaCtt7dXTzzxhAYHBzU/P69KpaJUKhUH1nzfVxAENQG7IAjirnL1AbvkdC/1obv6kFw0eZ4n3/fleeHhs7m5Oc3Pz6uvr0+e5zUN7wEAAAAAAAAAAOw1IyMjDbvJnTlzpqtd3b73ve9Jks6ePdvSUEIUJJyamtpyUG8vy+fza7odfuITnyBAgh2B5y/ahecW0B1OtwsAAAAAAADA7lUfrJPCDnGDg4N69NFHlUqlFARBHJjzfV+VSiWel+xWlwzQ1YfpGnWoS263XgjOGCPHcWruS5LjOEqlUkqn01peXtbc3JxWV1clKQ4ANto3AAAAAAAAAADAXjE9Pa3p6ek184eHhzU+Pt6Fiu7K5/MaGhpqaSBhYmJCMzMzOn36dMs78gEAAKA7CNcBAAAAAABgy6KOb43mN9Lf36+PfvSjevzxx2sCc8lgXdSxLhmUq5/qQ3Yb7WRXv9w1jlzjyJGRkZEjI9dx5DquMqm0/HJFiws3tFpclWPC+UZGsgonAAAAAAAAAACAPWhsbKzh/BdeeKHDlaw1MzPT0gDczMyMxsbGNDQ0pLNnz7ZsXAAAAHQX4ToAAAAAAAC0XaOQ3aOPPqojR47IWqtyuRx3kLPWyvf9uDtco5Bd/e1o3UahumTwr9FyxzjxOsYYOdU6XMeV6zhyHEeVSkXz8/O6euWKiisr4bjhgLKk6wAAAAAAAAAAwB40PT2tmZmZNfNPnTql4eHhLlR0V6FQkCQdO3asZWOOjIxIkqamplo2JgAAALqPcB0AAAAAAADaIgq0RV+DIJDv+3Kc8JBUb2+vhoaG9NBDDykIApVKpXjd+rBco250jcJ2yXXqQ3WN6jPGSObucqcapnNdN76dyWR04MABVSoVzc3NqVgsStZKxoSTXdsxb70JAAAAAAAAAABgNxgfH9/U/E56+eWXJUnHjx9vyXhjY2PK5/M6c+ZM14ODAAAAaC3CdQAAAAAAAGibZMe6ZNjNdV2l02kdOXJEhw8fVrFYVLFYlO/78frJQFqzAN16gbv6rnfJGpLBv/quenEHu2q4LlIqlXT9+nUtLS2pVCqpUi7LBoGsDZrW18huCdhtJlBI0BAAAAAAAAAAgN2lUChoenp6zfzh4WENDQ11oaJaAwMDLQvCTU9Pa2JiQkNDQ9siOAgAAIDW8rpdAAAAAAAAAHa3+oBdMlS1f/9+DQ4OqqenJ+5W5/u+XNetCcc5jrMmbNdofrPQlrW2YZDOWitVl9XXGnWw831fnuepp6dHxWJRi4uLOnz4sNLpdLi/e3zPe5lNPLYAAAAAAAAAAGD3aBSsk6TR0dEOV9LY8PBwyzrMjYyMSJKmpqZaMh4AYHfJ5/OSwmB3LpfrcjUA7gfhOgAAAAAAALRdMvCWDLJls1l99KMf1Xvvv6/87Kwqvi/jGPm+L8dxZBxHXhDIDwK51UBd1FXOVscNg3ZWkpUxUjUvp7u7NNUaJGOkOA1njKK7Jl5Q7YhnJGuM5Bi5KVfWWGWCjJYKS7py5bIef/xx9fT0ygZWcqqhwXBIWdlwjyax3zWPh9bOrFPdegOPbnvCa41+ZptVH6ZsNE4r9gMAAAAAAAAAADrrxRdfbDj/F3/xFztcSXuNjo6qUChofHy8ZWE9dEehUNBLL72kqakp5fP5OAyTy+U0NDSk48ePa3R0lJ8zump6elqFQiG+n8vldOLEiXtuk8/nVSgUdPr06Q2Fu/L5vKanp3X+/HnNzMzoxo0b8X6HhoY0NDSkkydP6tSpUy3rRhr9n0va6tjT09M6e/asZmZmasYfGhrSqVOndPLkyXs+fpuVz+d17tw5vfjii5qZmWm4ztDQkIaHh/X5z39ep06daun+W61Tr42tem5PTExoYWGhZr3R0dEtP5fy+bzOnj1bM+8Tn/jEtv/5oXVMoyt5A+gOY8wzkl6P7r/++ut65plnulgRAAAAAACtEXWUizrNRYIg0Orqqv7s/J/pz86flyRls1kZY5RKpZRKQCkPsQAAIABJREFUpZTJZJRKpZROp+V5njzPUyqVkud5cdAu7WXiTnPGGLmuG0/JjnXRbUdGCnNxYR3VUF5grQJrVVGgil+RH5QU2Ip8v6JyaVWFhUX19WT173zyp/XkkSflOSlZE+boKrYix3XkqxKOH+/HKPon3Y3w3StHVrv2epx7LN+c5M9nvc5z0Xr3CsQluwk26hBoG3QO3OjYAAAAAAAAANBMpVLRm2++WTPv6aeflufRkwBohYMHD9acJC+FYYLZ2dkuVdR609PTOnnypIaHh3XhwoVul7OjHTt2rGkIZbPOnDmj8fHxDa9fKBT07LPP6ty5cxtaP5fL6YUXXiBQgVgnn79Hjx6tCYk1e/2Znp7W+Pj4mi6is7Oz64aMJicn4zDaRp0+fVrj4+Nb7shW/9lvLpfT4uLifY117tw5Pfvss2t+DzVy4sQJnT17tiXhq9HR0aadW5vJ5XJ67rnndObMmTXL9tJrY6ue2yMjI2tqPn369Jpg3GaNjo5qcnKyZt7U1FRXfhdsl79jLl68qI985CPJWR+x1l7saBEd1NozbwAAAAAAAIAm6gNVkuQ4jjKZjI4ceVIPHX5IRlJpdVWyVjYIFPi+bBBUp3CeX/HjyQZBNXuW7H52d5KsrA10N6S2drKykrk7GWPlyMoxYX1GRsYauXKV7cuquFJUfvbHun37luTeHcd1HBkrOXJqSqr5iKC6wNTU0D3J4FsjzTrN1W8TzYvm168ThSAbbdPoeQEAAAAAAAAA2JmslW7elObnw68c9t2doi4y9VrdHaibCoWCRkZGJIUn12NnmpiY0MGDBzccHpHu/uxPnjy5oeDOdhZ1J5ucnNTExITOnTvXsiAPuiOfz+vYsWM6efLkpkJek5OTOnjwoEZHRzf9HJicnNSTTz65LZ47hUJBJ0+e1MjIyIb/f05PT+vo0aOamJi47/1OTk7q6NGjmw7WSWHNY2NjOnjw4H1t3w7b8bVxo8/t5557bs28l156acv7bzQGIeu9hUuwAAAAAAAAoO3qQ1rJDmWO4+ixRx/VIw8/rMsffCDP9WRkqmE6K7/iy3Xcatgu7DgXOI6s48gaIzlWQeDLVLvPWevIWqMgkKLwmuM06ICWmBXEn+5byUhGgRxjq5s7MsaTZJX2enTHrmju+pwWF29of/8+OcaTtZJxjIIgkGOM/CCIw2S2uiurZJDMJna/Xnc202T55oJ5m+kyt5lljYJxyU6B63W+S4btgvCHten66GwHAAAAAAAAAN332mvSP/tn0ne/K83MSMkmNAcPSsPD0k/9lPSFL0i1zS+wUyU7zyQdO3asw5W0z9jYmAqFgsbHx7fc7Qjd0agL0WZMT0/rySef1IULF3bUc2BmZkZnz57VSy+9FAdgoo5jyftRNzLsHFE3zfsxOjq6pX0XCgUdO3ZMFy5c0PDw8JbG2koNn/vc5+475Dc2NiZJDTvI3Wu7rQTzIoVCQTMzM10Pom/H18bNPLeHh4c1NDRU816kUCjo3Llz9x2GO3fu3JrA4OnTp+9rLOxcdK4DAAAAAABARyS7mSXDV0EQaP/+/Tpy5Iiy2Ww8L7nc9335vq8gCGq6pEXjNVuWnJKhL0ly4vtGMo7kGBnHVDvXSa6RPMeV56TkOWk5SskxnnoyvVotF/X+lXdUXL0t4wSyxpe1gawNqnE4IyNH1pdk60NhUSe9rTyOUZDQ1M1v3FVuvdvJn0X99slwXPT4RZO1Vnfu3NHS0pLm5ub0/vvv6+2331Y+n9dbb72ld955R1euXFGhUFCxWJTv+/E40c81+pklx9xo0A4AAAAAAAAA0F3/4l9IP/uz0sc+Jj3/vPSNb9QG66Tw/je+ES7/6EfD9b/2te7Ui9Zp1rHm+PHjHa6kPWZmZjQ5OalcLrfpEAYaGxgYUC6Xq5maqV+vfnrggQfuub+RkZGG4ZFcLqfx8XFduHBBi4uLstZqdnZWU1NTDUMZUaBoO3Tsupeo69OxY8c0OTmpoaEhTU1NaXFxsWY6e/aspLudq7ZLJ63trNPP30YmJyfvO1gnaU0IKpfL6dSpUzp79qxmZ2drPiu+cOFC0+DlZjrGtVqz/4snTpzQ+fPn1/yfbhRiGxsb29T/5/WCdadPn9b58+drHr/Z2dn48Wu0//pgIq+N9/fcjoKSSc8///x91xC9LiZtNZCKncesdzVqAJ1ljHlG0uvR/ddff13PPPNMFysCAAAAAKB1GoXrovmSdPnyZX3ta1/Tq6++qnQ6rXQ6rVQqJc/z5HmeMpmMUqmUXNetmZ9KpWSMie87jiPXdeW6btwdLbof7deRkeM4chR2rfOjgJl8yQay1pcCI2sd+RUrvyKVyyWVKyVVglXdKMxp3/4effZzn9HhwUflyJGsI2utXNeVtWFYLBkUu/s914fHNnf9q0bd29brKlf/uEfrb6SbXdRZMAq9FYtFFYtFraysqFgsqlAoqFQqqVgsanV1VZVKpebx7unpUV9fn3p7e9XT06N9+/Zp//796unpudvZr0HIr76u+mX18wEAAAAAAACgXqVS0Ztvvlkz7+mnn5bneV2qaPdYWJB+9VfDbnX36wtfkL7yFek+MwbosomJiYYnts/Ozu6oDl/NRIGBs2fP0rmmjc6dO6eRkZGaec2CHJvR7Pk5Pj5+z7DkzMyMnn322TWBkaGhIc3Ozm6prnZKBoByuVzTYFGkUCjoySefjENSm3ncp6enu955azto1/P36NGjNR25hoeHNT4+3jR8dPr0aZ08eVLDw8NxUKuR6HVtaGhIY2NjG3ptiwKb9WG6M2fO3FfXw/rPdnO5nBbrU/lNNOq2tpHneqOf00b/PzfaVgrDfFNTU+sG4SL5fF7j4+Nx7YuLi/fcbre+NrbyuV0oFHTw4ME129zP+5BGY3X7NX+7/B1z8eJFfaS27fRHrLUXO1pEB9G5DgAAAAAAAB3TLAxlrdXhw4f19NNPK5VKqVwuq1KpqFKpqFwuxx3Oom5n9felMBAXTWGALZpsYll1Pd1dx8rKl6lG3iRZKxNYGWvlWCMncGTkyHVTcl1PqZQnxzNavL2gdy/ntVK6E45i/DAwZq2MjBRYGTnVLnaSbFRP8htfZ7qHqHvdvder7UTX6H6j8J3v+6pUKlpeXtbc3JxmZ2d16dIl/eAHP9Arr7yimZkZvf/++1pcXFQQBMpmsxoYGNDAwID6+/vV29srx3FUKpW0sLCgH//4x3rttdf0xhtv6Pr161pZWVGlUqn5mUY1NKuzvnseAAAAAAAAAKCzfvCDsFPdVoJ1kvSHfxiO89prrakLnbWwsNBw/sDAQIcrab3p6ek4PECwbueZmZlpGB45f/78hroQDg8P68KFC2vCOvl8vmHIptui7lFRsG5oaKhh/fWiUFJkZGRkQx2otto9DZuXz+cbPuZnzpyJOxGeOnVKQ0ND64a2hoaGND4+rtnZ2Q2/tkXdD+tNTEx0tHvd9PR0w25rG3munzp1ShcuXKiZl8/n79mxsVAo6Nlnn10zP+pWt5FgnRQ+hmfPno1r3eh2rbYdXxu38tzO5XINn8eNOtDdy0svvbRmHl3r9ibCdQAAAAAAAGi79brWRUE5z/N06NAhDQ4Oxh3oUqmUJNUE6qIpup8cvz4sVt1LYr1A9d3PwtCWU52i4JYjR0auHDnGlWNcyXHCEJ0jZfZlZL1Ab1/O63bxpqzxZY2VMWFdslbWSsaoGqyLMnPhv3CGjQrY5GNo1sxvdD/5OKx9TO52pUt2hatUKlpZWdHNmze1uLiot956Sz/84Q/1yiuv6Pvf/77y+byWl5fV19enQ4cOxUG6vr4+ZTIZpdPpuFtdf3+/+vv71dPTEwfvent7dePGDb3++uu6dOmS5ubmFARBtdtfGOiTtKauRj9nAAAAAAAAAEBn/eAH0mc+I12+3JrxLl+WPv1pAnY7UbNQRbdCA60UhQ+22iEI3dEoDHP27NlNd1o7f/78mu5H586du2cgp5OirmJRKG54eHhTXZtOnDih4eHh+H6jx67e1NRUzTZov/rX21wupwsXLmh8fHxTr7lTU1MbClHVq3+eRDr5f6FR0GlqamrDz/WoQ1rSvTrvjY2NrXnsh4eH7yu8FW17/vz5+9q2Fbbja+NWn9uNnheNQpj30uhnSrh+byJcBwAAAAAAgI5o1HHMGBMHqay1evzxx/X0009rdXVVd+7cke/7cbAu6mAXBIF834/HqQ/eRfOibZPBrJr9VUN3jnFkg2pjOevIGE/GOLJyFEhyUq68tCfjSNYNZNJWbo9RSUVdXbyswu0bWikvy5cvycpxHUlWxppEqE6y1S55ta3p1g+JNQ6SVb9HBar4YYe/RtuVy+WGYTVJ8eMXrbO6uqqrV6/q4sWL+u53v6tvf/vb+ta3vqVXXnlFly9flud5euihh/Twww+rv78/DtL19vbGtzOZjHp6euLbybBdb29vHLjL5XLq7+/XzZs3dfHiRV26dEm3bt2S4zhy/n/27u+5jTPP7/37eZ5ugKB+GKI8nhmPsrbBzJzZ2DO7C2qmTtVWZi9MViXZW9KumcqtyavkLmT5D0ipyMukKgmp22w2lnDOycnZPbU5hJPdpDa1NbZwZjf2jmdnBE12/HskEpJIEED38zy5aHQLvyiR4m/7+1K1ATT6x4NGoyFL/Oijdfaa07Gn50k6biGEEEIIIYQQQgghhBDH7949+If/EDY3D3e7m5vwD/5Bsn1xduz2Q+/H2WR0FGq1WhZUev311094NGK/elsHU9PT008dkhjV2DWq+ekkpI119XodGG6i26vecEqtVqNSqTx2+Wq1Kp+NE1QsFrlz586xBxxHvedvvfXWsey7Wq1m53lqdnZ23wHoxcXFvu+uarW663dWo9EYGdJ6ms/YaXAWro1Pc26Xy+Wh5RuNxhOvY73q9frIY/NF+McCxP5JuE4IIYQQQgghhBBCHLlRobrBBjuA8fFxrly5wvnz57NAXRq86w3WDd/3OJe0xT1qNxvdaOddN7CWFscButtUp7xGdTvrlNJ4BRZL5No4HWPGFJFu06GJCyO2ogf87Se/pO3aWDo4XFJX5303rUdSNKcA1RuqU49uVX8T3aDegGDawue9x2hNGIQEQZAdj15p+18aokuXabfbtNtt7t69y8cff8wHH3zAj3/8Y9555x1+8Ytf8ODBA4wxXLhwga985StcuHCBXC6HMYYwDCkUCpw/f57z588ThiFjY2OMjY0RhiHGGIIgIAgCjDEYY8jn89njNJCXy+W4ePEi58+fZ2tri1/96lc8fPgwe58hCQSm50pq1DwhhBBCCCGEEEIIIYQQR++f/JPDa6wb9PHH8E//6dFsWxyNycnJkfMHAxBnTW84YL9tPuLkjQp3PKmd6nHK5fLQedAbwDxJr776al8w6Pr163tu8eo1+PquXbu267JpYGUw1LS2ttb3j6zud7p06RKTk5PMzc2xtrZ25q8jR+ntt98+kdDPqOvhcb1Poz7DT/u5HgyT7da2NipYNzs7+1SfsdPgLFwbn/bcHtVet592wVHLjtqm+HKQcJ0QQgghhBBCCCGEOHFa6yz89dJLL/Hyyy+Tz+eJoqiveS4NXg0G5tIEWxKoU3ifJtp09jibUHiXLqNRKBT+UeBPAUrhNWA8TkdEagef68BYTFs3aesmfszSpsnPf/kzGlv3iJ0l7rbXOQ+PAnSpJEjnUdBttev74zk1MJGMQxuDB5y3WGfxOFAe79MmvEfhxN4gYtpe1263iaKIhw8f8stf/pK//Mu/5NatW9RqNX7yk59Qr9d5+PAhQRBw7ty5vml8fJzx8XHOnTuXBery+TyQtMilgbswDLMAXRqu6w3ZhWFILpcjCALCMCSfz1MoFDh37hxKKe7evcuvfvUrHjx40NfWlzbVpa9pMJQphBBCCCGEEEIIIYQQ4uj98R/DH/7h0e7j3/27ZD/ibJiYmBg5f2Nj45hHcnhqtVoWtCiXy9Jac8Y0Go2hYMeoVqP9Omhw4ygsLCz0vdb5+fl9t3ilSqVS37leq9V2DU1du3aNcrk8FDC6evUqi4uL2Th2++zMzs4yPz/fN83OznL16lUgCe8tLCwwOTnJzMzMrsGnL6v5+fljb6xLjXpPjytcN3geTE9PP3XIbWZmpu/x+vr6yOW+SIGrs3BtPMi5PT8/P3R+jmo73M1gkLJYLD719VScfcFJD0AIIYQQQgghhBBCCO991rL23HPP8Zu/+Zv89V//Nc1mMwtbpYGx3ta63vV3mwafh26uzfusNa4beUtK5+gG6zx4LF7FKGOxukPbb9HiAZHZgbEY5TyfNz7nw88+4vIzz+GNxXkLhKCT2F4SqvM4wOPRWXJOJ+NJH3bL6ZRSWWguGYPv5vK6MUDvcSTHQnmFViYLnUVRRKfTIYoi4jhmZ2eHzc1Nms0mDx8+ZGtrKwu8KaUYGxsjl8uRz+ezeUoptNZorQmCoC+4lz4XhmEW5DPG9DXK9W6ndz3vPXEcE8cxYRhm712hUKDT6bC5uUkURTz//PNcvnw5C1waY4CkwS/dT++YhBBCCCGEEEIIIYQQQhytA5Sb7MvKCvz+7x/PvsTB7Bae6W3SOmt6G7ukte7sGRXEOoz3cdQ2TjL0ValUhsIgo1qp9qNUKvWFb2q12lB4qV6vU6vVRoZnRgV1pqam+ra5uLj4xKaser3O6uoqKysrVKtVqtUqs7OzXL9+XcKuHKxp7KBGBaqP43o/6rN2kJDb4Od5VACr0WgMzS8Wi2f2e+EsXBsPem6/9tprQ9fF1dXVJ263Wq0OncevvfbagcYizjZprhNCCCGEEEIIIYQQp0JvgO7KlSu88MILWcAqfc5a2xeuS++nU+82Bu+PDNh17ykcWqXptmTyxuOMxQcxKh8TmS227QZtHhCbJj7sYMY9LrD86tNfsdXewqXb727DuWQ/ydS7x2xm35jS45CE6tyjyTsGfymdhMustVk47Ze//CUffPAB77//Pn/1V39FrVbjF7/4Bffu3cN7T6FQoFAocOHCBS5cuMDExATnz58nDMMsTJfP58nn84RhOLKJLg3j5XI5crlctlzaUNcb3kvX752fNt0ppcjlcoyPj1MoFNBas7Gxwaeffkocx1lTHSCNdUIIIYQQQgghhBBCCHFC/sf/gP/2345nX//1v8J77x3PvsTB7NYatFsL0GnXaDSoVCrZ48F2I3H6vfXWW0PzDuN9LBaLI4NmJxUkHQzSHaTFKzW4/qjP8fLyMsVikfn5+T1tM22jS01OTu5pHMvLy9y6dSubV6lUmJqaOtPB3cMwPT39pQwYjjoX5+bmsr87fpqp16hw3aiA2OD5fJac9mvjYZzbowLGg2G7Ub5IDYXicEhznRBCCCGEEEIIIYQ4cVoprHVorVBac3niMn93cpK/+dnPaDV3CM4b0Bqcxw9MeI/3qjtBmmzrvb/r5BXg0ViU0qB0tynO45XHa4dVER2a7Nj7tP1DrGnhaOOxKOUICyGf/voTPrv7KZcKlwlUHtN9Xb67p75gnfcor7N9p+15Wegva7JLHqctdanYxrRaO7TbLVrbHbYfNGm322xtbbG5uYm1llwuh9Y6C7+l99MWuHw+TxRFBEGQ/SVC2la3W/Pc4F86KKUIguCxy6SBPaVU1kIXxzHW2qzxzntPEAScP38eay1bW1s0Gg2eeeYZcrnco3Oku2y6PyGEEEIIIYQQQgghhDgN4hg+/PCkR3F0/s2/Od79/et/Df/snx3vPo/TlSsQfAF+crdUKlEsFod+iP4kG70O4saNG32PDxpWEsdvVEhmVNvW0yiVSkPbf/fdd4+9yWptbW1oHAdtrYPh47SxsdH3uNFosLa2NjKIchTK5TKrq6tZyKVer/Pqq6/2he6+bObm5k56CCdi1Of6qLc/at5gM+NZctqvjYdxbpdKJaanp/t+D9JoNKhWq48dS2+oPt3OWX6vxcF9AX6LLoQQQgghhBBCCCHOOuc8Wim88yidNJq9+MKLXJ64zOeff45zDg3JrXP4vqkbhvMe5zxKDU6g9e4BO4UHXPexezQo7UE5rGuzEz9kJ9rC6g4qsCg8RinwHhNo7m/c5+NPP6b09b9LLhxH+yRWp3WyqbS9Dp/E7HS2E9XN1nm6hXU9QTqPx2O9JY5j2u0W280mjfsNNhubbG8/pNOMiFuOMAyzNrneZri0LS4NpimlsufGx8f7QnCD4bg0bEd3TOnjdF66HjAUyOsN1QEEQYDWmjiOabVa2Vh6GwadcxQKBdrtNnfu3OFb3/oWuVwO55L3pDegJ4QQQgghhBBCCCGEEKfFhx/CSy+d9Ci+OP7Vv0qmL6o7d+DFF096FIdjenp66AfT09aas9awNBga+rKG62q1Gq+++uqBt7O5uXkIo9mfUW1Jh/U+jjqfe/d3XMdtMEhXLBaPJOA3eCyXlpb21Vp3GObn5/sapGq1GktLSywvLx/bGE6To74mVatVarUa77zzTnYdT0OWJ9kaeBL7vn379tC8y5cvH/s4DstJXhv34rDGsrCwMBTwX11d3fUaOarZ7jDCyuJsk3CdEEIIIYQQQgghhDh5RhNZi9JgtEIBX7vyPOWrU1TXq2w1d3jmmYvENglZaWNQOofzmijWaBOhvEN5i/IG4w0Qor1DEaCsRyuNUga8xqLxXuMNKKUxymCJiWljgxYu1yEy22y7B2zH92npbeJ8B6ct1jusTSYdhJhcTDhu+eVHH/Dyt/83crkAZc5h1Bg20hgD2iu0DrNWPHxMTJwE0giwWGIinHI4LDt+h532Fq2oxf3t+2x329w++/QzOu0O58fPURgrkD93kbGxIoaQfJCnEIRoZTFGoYzGOgVKo0KNNp5AJyE5vEETorTLgnS9jXS7he16A3Qw3HYHSdAuCIIsXJc20/U23XnviaIoC9ml20638/DhQ+7evcszzzyTjcl7nwXrnHNDYxFCCCGEEEIIIYQQQgghxPF5/fXXh8J1kIQ0ZmdnT2BET6der1Or1bLHX9ZgHSSNZScZpDmIo2y4GtXy1Lu/4zhutVptaB+HFawbDMj0NtfV63XW1tZOJNQ22ER1UuM4DY7iupS2EfZe/06bwRbFowqUPm6f6X7PqpO8Nu7FYZ3bs7OzQ426lUpl18D/zZs3h+a99tprhzIWcXZJuE4IIYQQQgghhBBCnCilFA6P1gqlNJ6kyWx8rECpVOKZ4jNsbt7HWkeQ1yitabVaKKUZHx8njiO0AaM03iZtc15r8A68xnuXNNs5h1eA8mjtwQBa4bwjdi2CvEHnPbGOabktmtF9tm2DSLXwYYT3MdZbrLc470EpAhOgtAdtaba3+OTXH/Pc+a+jDDgsygDopJXOOby3SaBNp+11jo5qgvdEKmJr5z6fb37OZxuf0thusL2zxSeff4wxhsLYGGEuZLyQI8wrTM4zZgLGKaBsgHFJoC1QAYFWyfHKBSgToDT4wGGUQ6FQPkARoI0bCs+l78ng/d42u97GunRK10/Ddr0Nd70Ndvl8HudcFrBLlw+CAO891lqiKOL+/ftsbW1x8eLFLFw3uD0hhBBCCCGEEEIIIYQQQpyM3QIO165dO1PhusGmmy9zuO6LZmNj41BCMaPCNsdtsF0RkoDrUUtb6xYXF498X4MGP4uNRoNarUa5XD72sZy0USGmp7WyssK1a9fORJB28HVPTEyMDEUd5T6/iE7TtfEwj/f8/DwrKyt9827cuDGydXPwuz8N54kvNwnXCSGEEEIIIYQQQogTpwCtkjCW94AHbQxXrlzhhd94gVbzA9o7TbQCnQNtFNZ1cD7E6BDtNTgNRoMPAI3yiiQD53DKAREKjULhtcJpA9rjsMThDi6nsapDM35I0zZosUWkWsS6gyfGa5+srUwSyIuTwJ4JNEHOELdjfvaLD3jh+RK58QKxtYyZAmkkzGEBiyPGEdGMmrTbbaxucW9zk19vfM4nn3/Mrxuf0bFtgoLBhJrLXx/vNrx58nmN1g5rt+noNm0VMmYuUCicxzidNPR5QxgEBCEoE4A2oC0oDTgANKbbFBfs2ko3GKobDNL1huh6A3dPEgQBYRjS6XSGAnxa6+z5ra0t7t27x4ULF7Ll0qa7dB0hhBBCCCGEEEIIIYQQQpyMYrFIuVweaj2q1WrU6/UzE1IbDGqclXGLfqVSaagx6bDCQ6O2c9znyY0bN4bmHXWItVKpUKlUjjzMtJvJycmheach6HhW1et1ZmZmntgsViqVmJ6eZnJykmKxmIWf5ubmjmOYfQbDTkfZwrbbPuHwriUn4Yt+bez15ptvDoXrVldXh8J1o1p3FxYWjnRs4myQcJ0QQgghhBBCCCGEOHGabjNZUgiHNgac5/z4Ob71zW/ysw8+wHfDae1om3PnzqOUJYp2MGMKTQG8BqdwymFtEsLyKrk1CrzqBsgMeKNQATjlsTqmndumYzu04y1abptYtyCM8WGMJ8bhUAqU74b/tEYrh0MR5Axq3NCMO/ztR3f48JM7PPPSRRQhCoXtBtrwlsh1eLB9l7v37nJ38y7NZpNffvYzOlFEkNeEYyHhRc+5QgGVU1gbEeYdQWhoxxFWN9FBSKADAuOIO01a/j65nCFUCh2HKKfQOsAog/cer3w3vaihewy0MsmkVV+IbnBKw3O9wbrelrrBgFvaMDeqZW4wGNe7bu/yKecc9+/fx1qLc25fAT4hhBBCCCGEEEIIIYQQQhy95eVlZmZmRs4f1bR1Gg2214wK9HxZTE9Pj/w7m7NgVCCmXq8fSsvZqEBP7/6O47gNhliOOsDSaDR44403mJ6ePrEmynv37g3N+zK0ih2FWq3G1NTUyOdKpRILCwtMT0/v+nk5qXDZqPe70WgcacPY5cuXh+bdvn37yPZ31E7y2njcisUi09PTfd/rowL/b7311sj1hJCfRhFCCCGEEEIIIYQQJ6/bVqeUQqFgvbA8AAAgAElEQVS6jz0Kz+RLL3DhwjjgUCYpYNvpbBO5FlZFdFwTa2Oss0QuJnIxsbPEPsJiiYmIiIhVm1jvEJltOvoBHXWfHTbYcr/m1/GHbNqPeaju0QoeEOd3iMIdIt3CBzEqtHgdJ61z3uG9RytNGITELsYrS5hXRHT48POPeNC5T8vv0Ojc417zc/7nr39B7fY7/Fntbf7Tf/8T/vSdKu/d+QmfPvwV6oIjP6E591yO8QlNcMGjxx3hOUd4wePHOphzjvACmPMePx4T59u0giZRvonLb9MxDWxum+CcIxw3+EDhlUYbhTGewGgCYwhNjlyQJwzyBEE4FJoLgoBcLsfY2BiFQoHx8XEKhQJjY2OMjY2Rz+cJgmDXcN0ovWE9SIJ0zrnsuTQ019tel4bodnZ2JFgnhBBCCCGEEEIIIYQQQpxSu4Ux1tbWhhrtTqOzMEaxN1evXh2a98477xx4u41GY2SAZNT+jsqo/R9GMOZx3njjDRqNxom11sHw607bMsX+vfrqq0PzSqUS6+vr3L59m8XFxVN5bEcFAgcD0YdtVMjqqPd5lL7I18ZRlpaWhuYNNtUNPh5sthNfXtJcJ4QQQgghhBBCCCFOnPeObqwO1204U0qBgonLl/md8m/zn//0P3P/foPLz03gXEzkHYHWaO2IaQMWhUYrjdMGFwS4wOINuCAmNh5MjFMR1nXwcRKWi2izbR6igiS4h7E4HYO2eO3w+EfBP6NRGJwHHODBa5fMzyly5wP+9pM6hfECY7lxtre3uXvvLq32Dh3XRgceAo8pQhAaTN6Rz+XQBsJAg4bAKXToUTlFqAxocNomzXm6W5+HxwQBJvZErYe0A0cuNMTkCfQYCk1AiMailAUFWgegQlRPkM0YjdaPAm29LXW9gTatdfYvbvY20xljBt5H37f8qCltohucn66XBuycc+zs7NDpdMjn80PLCSGEEEIIIYQQQgghxGlw5QrcuXPSozg6//gfw5//+fHt73d/F/7tvz2+/R23K1dOegSHb7f2ujfeeINbt26dwIj27t133x2ad5StO/V6ndXVVarVatYElTbmvP76608dbqlUKrz11ltZQ0+xWOTq1assLCwMtY5VKhWWlpbOdBPTKDMzM6ytrfXNq1QqLC8vH2i7o0I1pVLpWNuZRgVYRn3mDkutVqNWq7G+vn6iLVSD4deDvpdfVktLS0PNc+Vy+dRfnwFee+01FhYW+ua99dZbR9qmOOo6XK/Xj7wx76h8ka+No0xPT1Mqlfqum2+99RaLi4vA6HEPnmPiy0vCdUIIIYQQQgghhBDi5CkFKDyQdqH57nwdBlz9/vd4/6fv89c/e59z0Tg6VEmDXdyEIIdSBkeA1wanNVobYgyQhLhwHrTDuxjnO1jVAmVBW5yxuDBKdmyS5ZLJ43Hgk1Gp7hhRyb69SqbcWEjcsXhrGTsXsrl5j/d+/hPOj1+k3WkT5AN83qOMQ+cU4ZghyGmU8jgXQ+hQxmC1R2kwOsAEHq88Ho8OFLGzmFyIUgqbJP3wyqPDGMs2HW9pKUOg8uTMOZRWGEIMGoNOgnkk4TptQnSg0BqCIBhqj0uDa72tdL3BusHnehvpBgN4zrksSOecy4J1gwG7UesAtFottra2OH/+/NB+hRBCCCGEEEIIIYQQ4jQIAnjxxZMexdH5wQ+ON1z3e7/3xT6eX0TT09NMT08P/cB6rVZjZWUl+4H202hUuGRiYuLQ99NoNHjjjTeoVCoUi0WWl5ezdp93332XpaUlVlZWmJ2d5fr163sOJ1QqlaxhrFgsMj8/z8zMDBMTE9l2V1dXuXnzZrbNa9euHfrrOw1GtU3V63VqtdqBGrlWV1eH5h1lsGeUwWAUJCGWo7S4uDjymB6XNCiamp2dlXappzQqTPT222+fwEj2r1gsDgWlKpXKkQfdRn2nra2tnervs918ka+Nu1lYWOhrsKvVatk5M9jGWS6Xj/x6Ks4O+SeehRBCCCGEEEIIIcSJS1vqwIPuhrXohrkUXH72WV6YfJHzxfPc37pPK9qhZXdodrbY7myzZTdpugZbrsFD2+BBfJcH9i4P7Cb343tsxne5H9/jod9kmwc0zRYts0Un1yTOtfHK4lWMJ8bjsn0nuTqFUhqPwvvufBRohdYqC+OpEFSoUDmHDSJUwTI+EZIvai58Jc+5r+TIFTVq3OHzMapgUeMOXTCoMYXOg86BzitUqNGBxuQCdGgwuYAgNMm80BDmQ4J8gBnz6ILF59p02KJDE0KLySt0XhHmDGEuJJ/PM1YYozB+jkKhQKFQYKxQIJ/Pk8vlCMOQIAgwxjxqDezqbZdLn0un3kCctZY4jomiiHa7TbvdptVqDU3tdpsoivpCd+l+esN46RgePnxIHMdD+xZCCCGEEEIIIYQQQghx9H74wy/2/sTh6A1v9VpaWhpqzDlNRjXXHbZarcZLL71EpVJhdnaWO3fuMD8/T7lcplwuMz8/z+bmJuVymUqlwtTU1Mgw1aCFhQXm5uZoNBpMT09z584dlpeXmZ6ezrZ7+/ZtSqUSr776ajaWwTaw02ZjY+Op1isWiyODHQcJE9br9VPRcjQq+HEUIdDe/Z10S9wbb7yR3V9cXBwKxJxWT3v+HqXBz3y5XD7xdrH96A1JpY46JHwS+3wSuTbu3agg7o0bN4DhsOlpGbM4HSRcJ4QQQgghhBBCCCFOAQ/Kg05K7JRWKJ0E7pTWeKV46ZuTXLj0DM1OE6c9bdsiVjFt26HpGjT9fbbd/SRg5zbZcptsc5+mekjbbNE2Tdpmh06wQxy0icIOHdMm1h3Ao9JfPh2ORhOgfEDyx2garzTopLkOA94krXIOhzZgVQeT13TcDg/b9ykUc5hxhR73MGbR447gHKgxiyp4gnEIxrqhupzC5DUmVJhAE+Q0JtAorfsa5gJjMFoTGI02oEOHyYPKWXwQ4YIIlffkCppcISQ/NsbYWIHCWIGxsTz5XJiF6bR51Fg3KJ2XhtnSRjtIgnDW2ixQ1+l0sikN1u3s7LCzs5MF6jqdDlEUEUVR1lzX22LX+zhtswOy5dP9AlkATwghhBBCCCGEEEIIIcTR+s534O///ePZ1w9+AK+8cjz7EoerWCzu2oS0sLAw8ofwD6LRaIwMP+zXqKDZYYZO6vV6FpYrl8u7hhCBLDxUr9eZm5t77Hbn5uay0GK5XGZ9fX3X7a6urjIxMcHCwsLIpqHTZi/Bwt2MCoRVKpWnPv9GvQ+zs7PH3nI0an9HGY46yeBVo9FgZmaGWq1GqVTi1q1bJx7024+DnL+n2XEEkXczPz8/dE6urKwcSlB4t/drenp66HN3WN87vS18+yHXxr0bFShcX18Hho+/NGKKXhKuE0IIIYQQQgghhBCnQDfRBvjuryRllwS8HI7feOFFnvvqcyit6MRtYu/wWDquTcc36fhtOqpJpJvEeofI7BDpJpFpYYOI2HSITJvYRFhtcdpidYzFgVPgFcobFAbtDcrrbsBOo7qT92C9xymPMqADhXVJ250JFCZQFM7naNsdWvEWwZjC5D067zB5j8krVN5D6CBwqNAT5CDMJbcm9OgQdADKKHSgCAJDGBiCQBOGJpkCTWg0QaAxOd0N5hlU3hObFioXE+QhNxaSL+QJc2PoMIc23dAiACo95KPfkYHwWhp+S8N0aTPdYIAunaIoyprs0vtpIK93SreZ3ock0BfHMXEcMz4+jjGmr81OgnVCCCGEEEIIIYQQQghxfA7hZ8lP1X7E0SiXy7uGYGZmZg4llABJ68xLL73EysrKgbazW1DhMBvBZmZmsvvXr19/7LKlUin7If9qtbpr6GFlZYVKpZI93kuj1/LyMmtra6euRXBUiOudd9556u2VSqWRDU1zc3P7DrQsLCyMDO+cRNCrWCyODPoclsuXLx/atp5Go9GgWq2ytLTESy+9RLFYZH19ndu3b1Mul090bI9z2OfvURk8d2q12r7Pn5MOOI7a/6uvvvrUQbVarcbk5ORjw2Wj9jl4/d2PRqPB3NzcnprS5Np4cG+++Wbf41HNraOOifhyk3CdEEIIIYQQQgghhDhxSZzOdaeeXx5AYQh45vxFvnf1ezz33FfZ2n6ICQxohfcOi8US41SMUxFeO6yK8TrG6Q5OdYjp4LzFKQvaZdt33idhre6+lH8UpgMFPffTFjdU+pSncK5AbmwMFWisi2hHLXJ5zdh4jk7cJiwYwpxBhR6T85icQoegAlChQhuLyiZQyoP2KA1KQxBqgtCQCwNygSFvHk05YwiCgCAI0aHBa0fH7WBp43RyHNAatEb5bjOfgqyeb9R74X3WIJeG43pb6VqtVhamS297p95gXW8bXRqeS7efToOPUzs7OzjneOaZZ7LmvlRvi54QQgghhBBCCCGEEEKIo/X7vw8//OHR7uNHP4J/9I+Odh/i6C0uLrK4uDjyuZWVFaampp46DFGtVpmZmWFmZuZQgkUbGxsH3sbjrK2tZa+1VCrtKSTUG8YbFVQYbE5aXFzcU1NQuVxmenp6L8M+VqOCjJVK5bHvb61We2yz3/Xr14eCKY1Gg6mpqT03XfU2A/ZaXl4+sWamwRDI036OBtVqNa5du3Yo23qchYUFLl26NDQppbh06RIzMzOsrKxQKpV4/fXXT+X5Ougozt+jMOqc3c8YjqJ9dL/m5+eHzon9fq7TdZaWlrLvosd9jmZnZ3cNpO03qLyyssJLL71EpVLZ03ePXBsPrlwu942pXq8Pncd7CTqKLxf5KRQhhBBCCCGEEEIIcTp4j3cenM+K7JRPU2wK7+Hlv/cdrlz5O3Q6Md75rMHMe4XzHut899Zm06MQl8M7h7cOLCgH2mu0B68cDov3lkehM4X2GryityhNaUCD1w6nXF8YbXx8nMJ4njAf0HjY4Fcf/i1hzhCMBQSBwnTb5sJcErgLQo3WYAwYowgCRZDTBDlDmA8JczmCICAMAkITPpp0SKiSKVB5jMphdAgaLC0itolpYUma+dIoXZohVGSH9VFgkCRY1/t6egN1zWZzqKUubZdLp8FGut5g3eA0at30Nt12oVCgUCiglMqCd+l73hu2E0IIIYQQQgghhBBCCHG0/uW/hOefP5ptP/88/It/cTTbFsdveXmZ1dXVkc+lbUEzMzN7av+p1WpZKG9mZmboB+MPEjA6zOavUXpDcHttx+kNj4wKswyGoPYTDOgN7p0WuwUORwVEarUaCwsLTE1NPTZkUiwWefvtt4fmpyGSubm5kUGSRqPB2toaly5dGnluzs7O7hocPQ6D7/Vbb7114G2ura0xNTV1pK14qeXlZe7cuTM03bp1i5s3b2afkTQgdJAg7nE5ivP3KIxqDa1Wq0xNTT02NFepVJiamjo1jZc3b97cNRy2tLT02PMlPf6XLl3qaz29d+/eE/c5KjS2sLAw8jupV7Vazfa5tLSUved7Oa/l2ng4Bs/93t+blEqlMxHiFccrOOkBCCGEEEIIIYQQQgiheu4or8CrbIb2GustgQ4wepzfuPJ3+OnfFGnv7JBXeYxReKdxVqOtApMEsJRNQmJaK/Ae7UApME6hHWh08i9PKfDGodB45fHdVjfldc/AkgXTPJdSJIE9HB5DLpdjJ96hHUfobmCt02kT5g1xHBEGQdK2pgDl0EpjjMF7n7TaoVFao5VBa43SATptzVNJj55RGtXt0MN3bzF4FEqFaBV0g3+WyLeIfQurzuG720GRpOu6r8F7uoFD39cg573PwnG9IbneZVK9Ybzeeb330/V6l+99zjmXtdxZa7OmvFwux7PPPosxBmstSqm+bQshhBBCCCGEEEIIIYQ4Ppcvw5/8Cfze78Hm5uFt99KlZLuXLx/eNsXJm5+fZ2JiYtcWnWq1moUSisUipVKJiYkJNjY2aDQa2e2THGdAZT9qtVrf2CYnJ/e0XrFYpFgs9oUweoMdvSGXUqm0r6agvTTnnYTp6emhgEq1WuXSpUtcvXp113apd999d9dgRLlcZn19fWSgsFKpUKlU+s67JzVYTU9Pc/PmzX2+ssNVKpVYXFzMgkFpiGYwbLQX9Xo9C9Ksrq4yPz/P5ORkdgx2OxZra2ssLS2x+RRfAum5PahcLlMul5mdnaVarTI3N0ej0aBWqzE1NcWtW7dOXSNWr6M4f49ijKVSaWgctVqNmZmZ7FpSKpXY2NigXq/vqw3uuBSLRW7dusXU1NTQtX9lZYWVlZWsrSxtfhvVVtZrL98h6T4Hj1/6PTbqO+xx15O9fm/JtfHg5ufn+4LJva9FWuvEKNJcJ4QQQgghhBBCCCFOBw/KexSKrK+u214XaEOAwaB5+dsvc+VrV3CRI1Ca0BiUC/DOgNV4q1E2Cehpr9EotPVonwTqlDfgDMppjNNor3HdFrp08nTvk9wHj1KPJnBo5TB4bJyEx8byY4TaYLRhbGyMc+fO4XFEUQdtIJ/Pk8vlyAch+SBkLMxRyOXJhXnCMI8Jc+gghzIhSgdgQrQJ0DrE6BxG5dEqhyKHUSFG5dCEaB9gCNGYJFxnPG27Q8vtYL3N2uq8V0mbn42IbEyr06a102JnZ4dms8n29nbfbbPZzBrqOp0OURQRRVFf69yoJrrB+70NdqNa7nrDe2m4rtVqoZTi8uXLWbOe1vJHmUIIIYQQQgghhBBCCHGSvvMd+LM/O7wGu+efT7b3ne8czvbE6TI7O8vm5uYTW9vSIE21WqVWq1Gv158YPiiXy9y6detAgbGNjY2nXvdJBgMR+wkHpaEQ6A9hDB6X/b723u2eJrsFMBuNBtVqdddgx/r6+mO3Oz09za1bt3YNn/Wed48Lj8zPzz9xX8dleXm5730f1Uj2OPV6nYWFhSzsefv2bebn54HhoMmoY7K0tHSkgbDBoE6j0TiVjYu9jur8PWzLy8u7PpcG0NbW1qhUKiODdael4atUKnHnzp1dr6m1Wo1KpcLa2hpra2uPDdbNzs4+9rik0lDfbtfcUd9hj9vWXsNocm08HOk1bq/zxZeb/ESKEEIIIYQQQgghhDg4n06eLM3V80TaWObT57MV6LlN76bL8mhbHqIoInYx33j+G0xMTOCimCiKcM4nq1lwzuMc+O6EA5wGFMobtFdor0jK6VSyTHpf9TfoJWk/smBXGvICj8InjzXk8iFxFIHyKKNx3mGdY6yQByCOY4w25MIcuTAkMIbABARBQBiGBCZPEISEOp/M1zmMCpKwHAGGAEUAGDRB0lDXfawwgCaJ+6W/LB3bZCfaIvYdLBbrLFHsiOKITjui1d6h3WplwbnBAN2oEF1vc11vq91ggK53fu+6vSG83lBe77w4jrNwnbWW8fHx7NgDWGv7mu+EEEIIIYQQQgghhBBCHK/vfAf+6q/gRz862HZ+9KNkOxKs+2JLgwQHDcIdxfZ2C5sdRkvW7du3+x7PzMxkf8/0pKk3zNAbfhgMOZzmNq/9mJ+f39drKZVKrK6u7ikUUy6XuXPnzlOFKEqlEuvr66yuru573aP09ttvZ+d+2iT3JNVqlZmZGSYnJ6lWq9lnqPe4Ly4u9j2uVCp920hDbtevXz+Ml7Gr6enpvkBuvV7va2w8bY7y/D1Ms7OzLC4u7nu9UqnEzZs3T1WIqlgscvv27ac+hml7282bN/fc/JgG7A7yvi0uLu4pcJ6Sa+PhGNVQNz09/VStn+KLT8J1QgghhBBCCCGEEOJwDGbm+p5wA1OyoMIlQTUUOAVK4xX4NJSnAe3BKwIdEhASkON3//cf8LWvXqHTiok7PomXeYd3FnwSwPJO46zCWY1zAbEzxE4TO4V1YL3DdnvptA1RUYC3Bu2DZMKMfJnKq24DnkZhiF0blXNYFWGNx4cB5HJEzqODEO+hkCsQKk1eh+R0nrFgLGuey5EjT548OcbIk/c58j6ZH/qQwAcEBGgC8AH4EMiBz2MJiJSnpdrs6G12zBbb5j474X0euE+47z6iyec86Gyy3dqmvQOthx67bXE7bVqtFu12e9cmud4wXW9AbjBYN7ju40J2zjniOKbT6WTLpcG+NFzX6XR47rnnOH/+PMYk74P3Pgs6SrBOCCGEEEIIIYQQQgghTs7ly/AHfwB/9Efwgx/sb90f/AD++I+T9S9fPprxidMnbZq7ffv2UIhnL2ZnZ1lfX99XMGEvYxr84fpSqXQoP3A/2Ip3+/btvn+Icq9T73EaDNdd/gJ9gJ4UliwWi9k50Nu2thfFYpHV1dVsvSe9v9PT09nyp6Wtq1ca8kmDUisrK1y6dImlpaWseSwN3U1NTaGUYmZmho2NDW7evMnt27d3/Qytr69nx+fatWusra2xsrLC5OQk7777Lm+//faxBFIG2+qOO4i2X0d5/h6m5eVlVldXn/gelkol5ufns2v2YV1zD9vi4uKev1OKxWL2mm7duvXUn+00ILe8vLyn77Fyuczq6ire+6c6j+XaeHDlcnnovRoVuBMCQMkPoghxeiilXgbeSx+/9957vPzyyyc4IiGEEEIIIYQQYo+yUF33z5qUetT+RreFrjubnsXSdZzvLp4+rxR4cNahdNI8Z12MMp7YR7TiJv/v+v/D+n/5/8iN5THnLUopTA7CvELlwYQGQoUONTpQKKNRAZhAoY3HaI8JQAcK3w1wKaMwgaG7y0djzgYOKmtO686wCu88OI21SRuetdBqNUFbnv/GV/mN37iCMg6Ux/oYrQ1oDT7pn1Oqu/9u1BDAd/eZhPh6Dk6SPkQBFkusOnilUIDCg/XojibojHE59w2eMV/D7FzAtAsYF+KtRxERuw5Oqb4muMFWuDRgl0of985LA3iD80ZNvYG9VKvVykJ3URRx7949CoUC3//+9/n617+O1hrnHFrrvu0/ahIUQgghhBBCCCGEEEKIYXEc8/Of/7xv3je/+U2CIDihEX1xvfce/OEfwo9/DLduwebmo+cuXYKpKfj+9+GHP4RXXjm5cYrTpdFoUK/XsymV/oB/qVTKpqNSq9WYm5ujXq9TLpe5efPmoexvbm6ur/nrMJr2KpUKc3Nz2ePl5eV9NVHVajWmpqaA5NgOtuudBrVajXfffZdGo0GxWDyyc6BWq1Gv19nY2KDRaGShyqtXr56pNqNGo8GNGze4efNm3+eo9/XMzMzsq6Wp0Whw7do1KpUK9XqdYrHIa6+9xvLy8r6OzcLCQl/j3Orq6p6DP4PnOsBZyDsc1/l7GKrVKvV6PRvrxMQEpVLpUBpGH2fw73aLxSKbvb9pOIDe75Pe1zUqXHVYdtvnYR9LuTY+vUajwaVLl/rmnYXryWn5/5j333+fV/p/8/6K9/79Yx3EMZL/SxRCCCGEEEIIIYQQh6MvHdc7UzEyA9UbUvM+TbHhvEMpj9Kqu4hLGsuMIrIdTGDweC4/+xVy+QLWxhinQQPO413SguedR/nuvO4+VFJwl+TTVLJ978DrblirOyDfDbQp1V0P/+gP+7uBNNUdr9YQuyREqEnG4WIHCowJ0SrA6BB00trnAK0CUBrSDCIKxaPkYRI9S/7rVTe52H0NniRE573H47HKZkE/3Z2cclgimu2HBPoc+TjAxApjXXJM6OB8DJhHOccR4bo4jrPXPRii6w3gpWG5waBe7zq9LXjp8YuiiCiKUErRbDZpt9s45/ja177Gs88+m+1b9R3z4b94EUIIIYQQQgghhBBCCHFyXnkF/vk/T+57D1tb0G5DPg/nzzP67wjEl16xWKRcLh95mONxyuXykYTMBgMPg012T2Mw2HDv3r0Db/O0Oa7z4aTPu8OStnEdZhNasVhkeXn5RNviRoV4arXaqX/PztJ5dZaax/bqJIKMx7VPuTY+vRs3bvQ9PqnmSHE2SLhOCCGEEEIIIYQQQhw731Nd50mCbi5JwKFUEivzLibJqmkcjk7UYWv7IZuNe3x892N+/vOfUxgf5/7DByhvwDmcVdgYjPY45dFa45UFo1E62bAy3bAY4H23KS4NbnmSnSufLfMoXEZ/uMsDKLRSaFyynW7AUKlke0EQYIIQpXW3ia67njIodN+x8Nkjj8uqAF3PEq5neZetY73H+W7ozXu0U2irMQ52om1yuknIORRBN2CogThp0Ytt97UNh+IArLXZ6+0Nx2Xv48C8wYBeb1PdqHBdHMfEcQzA1tYWcRzz4osv8q1vfYswDInjmDAMUUrhnOsL2UnATgghhBBCCCGEEEIIIU4fpeDChWQS4svqe9/7Xt/jRqNx4G1evXq173GtVjvwNoU4jSYmJobmpe2SQgixH6urq32PFxYWTmgk4iyQcJ0QQgghhBBCCCGEOLgn5JzSwNXgOt73r6uUAg3WRaQRuIetLT7/9efcvXuXjz/+iF/c+TlWO9pRmzCXw1oHXqNQ6G47HdbhYyAA5RRYksBcN2CHpltfp5PHxneHlITfvEua8x6NTQ3cpq12oNBoZfA6Cep5r9BGY4zBGEM+n0dpjfMxSiuUNt1Xlsbp7KPjhMd72xOnS9ru0kBd1ljnHXiP8xC59FkHzqOcwliNiT0q2mFMNykEEfgYZz2GAO9jtFFYm7T67Raue1yQLp1nrR0K1KXiOB5qsEtvrbUopWi1Wuzs7LC1tcW3v/1tXn75ZYrFIlrrvm2NOqckYCeEEEIIIYQQQgghhBBCiNNmdna27/H6+vrQvCep1+t9jUhp018aqnv33XcPPlAhTqFRzXXvvPPOvj9DQogvt3q93hdEL5VKEtIVjyXhOiGEEEIIIYQQQghxCNKmNQCd1sJ1Hz9qikupbrDO966tFNbHOBvjVEy73eKjTz6kfvs2P/3pT5NQFp6ddgsVasJ8gGs5TKgh9hAqlNLdvSmUd90AnQLrQTnQBgxJg53WSXOdJ2l7U6pbWOdRvqdlLht0741KS+qSgF3aStedqbXCGI1SnrHCGEYZItfGdFvtnEr66fAkt122exyTQJrFq24jnXJ458HZRy11eJyF2IHSKhlqt7lOOdDeE98qbusAACAASURBVNuItmvTUR2cDdAulwTxXIyyHmdNX5BuMFzXOz+9TXbz6DYN0KWPe1vsdgvXOedot9tAEsDb2Njgu9/9Lq+88goXLlxAa501/z06Z1TfrRBCCCGEEEIIIYQQQgghxGk1Pz/P2toaANVqdd/rT05OcuvWrb4gwJtvvsnc3ByQtOHVarU9BwXq9fq+xyDEaSHn7xfTqJZCIQ6LtNaJ/dInPQAhhBBCCCGEEEII8WWg+iafhtd6nnIqptne4uPPPuLd///H3PwP/57/4/++wU/er9F2LZqdLTquxdh4jnMXx4h9xKVnn+Erz10miiLi2CahOQc4hYvBxeAtSTtdN3SGVSiv8M7jncK7R610CrJAnfLJHNWd3xvpytZQqj+Mpny6syQQ5x25MEDhcS7GdgfjfYx1bRwdvHc474h9hPcxzsU438F5i7UW6yKsjYlth8hGRFHPZG1yLL3COYhjRxQ7IuuIvSN2ljiOieOIOI6xNgbAWkscJ9t3zvXd9k7JunG2v/R+ettut+l0OtntqKndbvdN6XznHFtbW3zyySd897vf5Xd+53e4ePFiFqhLQ3q9obreYy0hOyGEEEIIIYQQQgghhBBCnFbLy8vZ/Xq9vq+A3draWtZU12t2dravze7atWt73uZgyECI06r3HE/1tk8NWlpaOsrhiEMyKiA56r0W4rCkAffU/Pz8CY1EnBUSrhNCCCGEEEIIIYQQQwYbzEbd75/S9ZJQlPPd9jIeFdh1Y3UolUweh8MTO8eD5n3++m/e54/+03/k3/+ff8Cf/vnbfL75KQS2O8WMjRvCgsabiFZ7GxMqnI8I84Z2HGX7915jI49SGtdxBDpM2usAsoAW4DWg8U7hYo+zHpeVyKmkXq/7KpLGte4xUAp0Mnk8Xmm8MqhA4bXPbiPb4dyFAvnxkJgO7XgH6zooHJHdJnYtrG8T+w7Wd/AkQbrIdujEbTpxOwnURRGdTkQcO2x3jN4rnFMor1FOE3c8tuNxMVjnsdZhY4/3irgbmgOw1rHTahF3LHHksgBdGpjrfZxO1tr+QF83VNdut4njR2G9TqeT3bZarWzdOI5pNptsbW3RbrdptVo8ePCAzc1NNjY2mJqa4rd+67fI5XJ952BveE4p1TcJIYQQQgghhBBCCCGEEEKcZsVisS/QttcAUKPRYGlpievXr498/ubNm9n9SqXy2NBR73JP054nxEkpFot9j3drrqtWq6ysrBzHkMQBjboGSbhOHJW1tTUajUb2eHZ2dui6IsQgCdcJIYQQQgghhBBCiF31toYBjxrahvQ3imUBKP/oeboBtU4nphNF7LR2+PCjD/mLv/gL/sN//L/4L3+2zocf/0/aUTMJnOkYndeo0BOOafSYQoceFTi8tngV4VSE0pavff2rKKUIw7DbwuYJVA6tQtrbUdJe152UAx/TTQJ6wCetaO5RULC3zc0DWmuCwGCMATzOWZyzeEAZhTagtEYbjQ5Bh5DLa/JjOVrtJjvtbc4VxvFYmtED0I7YtXBESYAubtPptOh0WkRxuxuoS1re4thiY5+E4SKPtRBHChcrbMdj2xYbeVyk8LGGWONjjbVpyK4bnrMWax0uhth64thlr7O3oa63dS4N0qXhu7SJLg3OpWG5dP1ms0mr1WJnZ4etrS22t7fZ2toiiiK892xtbXHv3j22trYIw5CrV6/y27/921y4cIFcLocxJlu297zrPR8lYCeEEEIIIYQQQgghhBBCiLNgfn6excVFIGnempube+zyjUaDV199lenpaWZnZ0cuUy6X+wJ2c3NzfQGCQfV6nTfeeGPX7QlxFAbDcLdv397X+qMapkaFs2q12lDDozhetVptqCFsUBoaHvSka6IQT6u3PRbgzTffPKGRiLMkOOkBCCGEEEIIIYQQQojTZy/hpd5lvIc4jgiCAFBJlq67jPce78A5S2xjmjtNPv7kI376Nx/w6WefoRTsxFvsdLZQIRTOF/DaEvsO4PDeE2Px3Vo5pZIwGwqUVuRyIWO5kI8//RC0w5gAtKLTjtE5RRCGKG9RPunOy8buNQqNSuruku2i0EolL0E9Gn9kI3TygtA6CdIpwOOSSXkcMdZGSSueglwhx9h4Hh1q4jimbTvEtoMlxniN955Op4WPk/uxSwNlOtmAU1nrX1IBqPDu0WPvFcpq8BoNOLpNeh6c9RA7nIUoimnHbQwdTGxw1uKsQ3lPTIx1SYgweR/7GwujKMI5h9bJv9GVhujSZdOmuvRcsNailMI5lzXbpeG9TqeDc46LFy/ywgsv8O1vf5uvfe1rBEFAu93GGEMQBIRhiHNOAnRCCCGEEEIIIYQQQgghhDjzlpeXmZycZGFhgUqlwtTUFNevXx8KBFUqFZaWliiVSn3huVFmZ2dZX19nbm6Oer3O1NQU6+vrQy1QlUqFubk5VldXmZiYoFKpHPrrE6LRaGTBt42NDdbX14eCcCsrKzQaDaamppiYmAB4bOBzeXmZSqXSF9JbXV1lenq6b7nV1dU9t0KKo1GtVllaWuLmzZssLCz0va+NRoMbN26wvLw8FAIuFotD76cQe1WtVrl69erINrqFhYW+a0e5XJYQrtgTCdcJIYQQQgghhBBCCIBd28J6n3vcvCAMu6Evj7MWrQ3OO9qtNtvbTRqNBh99/CGfff4pD5sPebD1kCjukM/nCfMGH+ZwykKgkmCbTyJj3nu01klgjN7AXkw3j4a1ljAXENuYXD6PUuk4NN6CNwbtPVjwOnlOpSGybkhMKYNz4LxHBwqlFd47lAJjNEqThNeSpBse3222cwQmwAQKj8Jrj1EKtCb2MVEcYbSh2dxGaQ9G0WnuYAKFtTZpmvOPSv7SgFxyjBU4j0qGmd36ZAhop1BOY73HkRbxJY18JrbYOCaOYmIdY5XFRREqdrjYoZUi9p1uC5/L3k/vfRa2s9b2BebSVrk0WAdJAA+Sdr+02S6OY5xzBEGAMYaLFy/y7LPP8o1vfIOvfvWrXLx4kTAMs/cyn89nTYHGpA2BQgghhBBCCCGEEEIIIYQQZ9/8/DyvvfYaS0tLrK2tMTU1RalUysJw1WqVYrHI8vLyyMauUaanp7lz5w5LS0vcuHGDyclJpqenKZVKbGxsUK1WKZVK3Lp1i3K5LME6cWRu3LjBwsLCE5cbbDdLz83d3Lp1i7m5uSyoV6lUWFtbY35+nkajwRtvvAGMbrkTx2d9fR1IrmO9ocpisfjYVs3BZjEh9mN5eZlqtUq5XObq1atMTk4CjAz3Xr9+/SSGKM4gNeoHo4QQJ0Mp9TLwXvr4vffe4+WXXz7BEQkhhBBCCCGE+DLZz58T+W7TW988urVqXhFFETvNHR7cv89HH33Cxx9/xP37DWIb045aeOUxocEESQBvO36AVR10qHDK0XFtvPIoDbG1GGPw1qJQBMbgfBLe8jrZp/EBO602d3+9mTTQqYBCYQwdKlAOM+YxOY8JgRBUoNChQRuNMh4dOsIw6AboHDpUmNB0m+ns/2Lv3p/lOu96z7+/z7PW6u5931vasizJTo5DSKBIqFyYS3GoOafGA2R+maEmhKn5A8x/kH+B8l9AJUwBZyrMqXOGKWBSB5jB3ELCIRMTyEAcHEdKbGNbtmRblrSl7l7reb7zw7PW6t5bcuI4xtfPK6Vs7b6u7r16V8Wudz5YtDGus2BUVcQMUsoQIpuzWYn7uo7sCXNou4y7EULF7u4eMUS6tITopLTA6YhVwNtqeFNLF5czeVyoK4tx5sZQ4Pn41YgpYimS3OnIpCGQdCd2kaad0LRb7IRDZr6PLWpoI945MQRSaMeAbvj5D5FbzvlYWHfyNsMq3WKxYLFYlPc9hDGWOzw85Ny5c+zt7bG1tcXGxgYbGxs0TXPs/BkiPYAY47iUp+U6ERERERERERER+VF0XccTTzxx7LIPfvCDVJU2CUTkrfXII49w6dIlrl27xt7eHp/85Cd/5FWd9cd84IEH+PjHP35syW5YsQN44IEHuHjx4o/0fCLrhnP5td4WeM23f+SRR/jc5z7H17/+9WNrVJ/+9Kf5jd/4jdf8OPIv4/X8O90HH3xwjPJEXo9f/uVffk3R+EMPPcTnPve5N+GI3lhvl/8d881vfpOf+qmfWr/op9z9m2/qQbyJ9L8SRUREREREREQEOB7Xrf9D8PVFu2G17OT12TPZE9dfuc7NG0e8/PLLXHn+BV5++RpHR0csFgtCMKq6YlZNcSvZmlsipRYLjhlkz7g5oQokzyQvoRVmYAGMcr9yQBgleMt01E0kVEZOQ6TleCp3i9nwvFp/My/3NYA+aEspExw8OGQgJTAnRCMEg1AW7KbTCZubG8QYWbYtCadpaqx/PeTyPgU3FvOO5XJBu8zs7O2Wl+EQqwmLZb8Y1+bj72d/f3z1/gZ3PDMGeJ7L9ZbKn7Jc5+T+BZqDdSVyDMuWNiyJaY4tE3Q1dE5nRmfLMaQbDOHccLmZsVwu6boO4FhMN5wTTdOwv7/P4eEhu7u77OzssL+/f8dC3fr5M0R7Q0in/xMwERERERERERERERF5L3jwwQffEY8p8lr9MIHbDxvDPfjgg8fO7x8m5JN/eQ8//DC/9mu/9n1X6tYprJM3wno8/moefPDBd2RYJ28dxXUiIiIiIiIiIvK65ZxZLBbMF3NeuPI8ly5d4uUXr5G6xGI+p+s6qqpiOp0QQqBLLe5OrCLQ0XYZcIwSriXLJE+AlbW6PoILGLm0dTiQ+0ArxFACNZxQRfYP9nn5pev94loghEgAcnIsg3vGMuUR11oud++PNZZVur7nCzGwsTllc3vWL9k5ZpmqqohVRdVUtLkje6Ztl2RKkDcGZMFo6gnXr99g0SZOnT6Fp8Ri0VI3NcvlHMsZMEpfZ5gbuT/WnDvMSzyHU+K6bJAdc4fkWHIcIztkUlkQzJncRfLSCe2SJUsszQlLJ7rhyckp07IYl+qGwK3rOtq2LNqFEEgpcfPmTVJKTCYTuq4jxsj+/j7b29vs7u5y9uxZ9vb2mM1mTCYTqqoag8H1cG64bIjs1g3XDet165eJiIiIiIiIiIiIiIiIiCise3v57Gc/y2c/+1k+//nP8/DDDx9bF1y3t7fHww8/zEMPPfQmH6G8G506der7Xv9OXayTt5biOhERERERERGR95C7BU3ra2KLxYLJZHLH/XLOx6Knruu4efMmV69e5fnnn+fFF1/kxtENloslKZewLVY1m9NNgkHqWvBEXdUkajKZTCKFBa0dkS1BBAtO9IxbwnGiOeDggWGzzr1MtjlGyl2Zo/Mp2aGJFdNJzfL2gmCBaEbbLbCqIlKVGC9kWm+xtMANosGkroh1hNgx25mwsbNJrPuZueAQE9T9gh2BTKaz27iVJbmcE24ZqwxPZX0OjNoqlsvETj3j6JVbpHqDvYMdjuZOXibIkYYpbduSU8IC4+ORnYDBGNsBXh7XHVJ2rDNi6t+TbIRskCssGdZVxFRDV5MjtLnDFxnrOsiBYIHOEmbQti3L5RKzsnZ369YtUkpUVTWu1O3v73P+/HlOnTrF7u4uu7u71HVNXddMp9OyMHjiXLtbWPf9rAd5IiIiIiIiIiIiIiIiIiLy9vfQQw/x0EMPce3aNR599FEuXbo0rgw+8MADWteUN9RnP/tZHnroIR599FGuXbs2Rp17e3t85jOfUYQrr4viOhERERERERERAUpA1zQNAPP5nKZpCCFgVlbkUkrEGDk6OuKf/umf+Pa3v03XdTRNw9HREW4QYqSqY4nhPABGSpnsmRisxHHZIBihChCcnDrcMpiVZbnSj2Flqg0nlP/uwzMzwyyO10HGvKZtW2YbM3Z2dnj6qadZLpYQnKauyJ5ZLOa0ZKyBuBmJTcRDJjaBvVO7TKYNbol6EgkVZFosGBYgm4F3BGIJvyyTLeHuBAv9Sl0ooeLQhTmQYVI3dPMl06rh5SsvYp7I0ahmNd0iEa0jd6kP5Mo6nyXDs5NzJnsf7LkDJWDL7mQHazPeGWYBMngH3mWsi0Q3uhZyysTQkonQRixBaoEEC79F2y65fft2WQIMgfl8jpmxu7vLxsYGBwcH3Hfffdx7773MZrPxnKiqH+4fLQ6xHfzgeE5xnYiIiIiIiIiIiIiIiIjIO8ve3p5COnlT6FyTN5riOhERERERERERASD0cVhKiel0Ss55DKK6ruP555/nG9/4BleuXKGuS8zWdR0pJbquY3Nziy61hGDEWJO7EnZBJlaRECClXNbgomHRCDkQCFgMuBnJO/CMYWQ3sjtOH95R/gwLdvTfuRtOApxl2xIwupRIXlbamumUUBkeSyjXTBs2dzeY7Uyxysne4Z5LNBYAd7q0BHNiCGM8V7K38uwMC3pA9kz2RL/PhjkYBgFCDAQiy5THMPF733ua+95/H3RAMm4v5lRVhVkgp1Tes9zHZaks1OH9QF/2fmkQMkZIBq2TuxbPhrlhKeDLzGK5oMJpqMgVdCnR3u7w5YLFoqVbdCRrcZzFYgHA9vY2999/P+973/t4//vfz/7+/nhuxFjCwuG8cPc71upOWg/q1r//YdbsRERERERERERERERE5I3z0ksvvdWHICIiIvK2orhOREREREREROQ95PuFTcPl69e7Oy+++CLf+c53uHjxIvP5nLqux7Bqe3ubuq6Zz+dAwIbwKq8eI8ayMpe8hQBGIHti2S5Y+AIPGXdICdy8rMWZgTvmgRhCCeucPuwyGPI6L8fbtksmkwnL5ZKcMwcH+xwd3eLmzRskd7Y3N4i1EWcQp5GqiQQzMIixIoSO1C0hQjQjVIbFtYiu/5NzhuBrb6gDw3u6ej+tf2yMMUYLATanM1555RUWtxZ0yYmxIpPwzkuklxI5gbnjGchWXm+/Xpcz/fvgZHdCNqpk5BTIXSZ3jiUn0lBZQ1o4864l2RFpbrS3O0KKdJ3jXSaHjvvfV2K6g4MDDg4O2NvbGxcMh3Nh+Puwbrf+/av5QdeLiIiIiIiIiIiIiIjIm+PSpUvj369du/YWHomIiIjI24/iOhERERERERGR96C7hXVmNq7UVVVF13U8/fTTfPvb3+by5cuEEJhMJoQQysqbGcvlksViUZbNQk0MGbc8rqthATfHPWPmhBDLKp0BqWzREcH75x6DNMrynPeRWS63LEmdldDNKKtx7k49rTCMqoqYB2ZbM27cuIFVxmzWAEaoIqEyCEbqOtJiSSRQNYGqqctCnidSLlGfeVlpw8ACBAC3oacb3rmyikcsx5nLZZ7L+pxnJ/SxoFkghIrNzW2ee/YKe3t7bO3sYMlYdC2py0QrS36enK7LeDKCx7JYl218Ds+hBHbJSW0ux5UNPJA7o110pOWSyiZ4l7nVLunmmTpMuOf0vZw5PMve9g4f/MkfY3Nzk8lk0q/n2bGg7uQyXS4vcDxXfphz7Ie9XkRERERERERERERERF6/z3/+8wD87d/+7fj3wSc+8Ql+5Vd+hb29PT75yU/y8Y9//K04RBEREZG3BcV1IiIiIiIiIiLvMa+2WGdWYrK6rum6jkuXLvHYY4/xyiuvMJlMiDFSVRUpJVJKTCYTcs60bcuw3hZChYWyLueWMQJYJnUdGLhn3KBEaX3AZpkEZAK4455wy2CORfBykBhlsa4cbCDgmMUS4AHzdk4dIstuQc4dKZdjbNsOqyPWAR3E2jCDGAMxRkIwuq4t8V9djjElsFCKujKU56sltj4ANOsDwv6QnMxQ3ZmF1e2CUU8abt+aU1lFbTU35reYHy3Z2QzcvHkLiASLuAfalMltxrIRqGg7xzKQwL2P+Dovy3ceiAS6NtMuW9pFi7dADgSP3F7cZmdzjwceeIDz95xjb2efvd19drZ32ZxuYo2N58BwXqyfH+trhkNU+f3OJREREREREREREREREXl7+NVf/dVXve7rX/86X//61wF4+OGHFdeJiIjIe5riOhERERERERERASClRAiBnDMXL17kscce48aNG2xsbIxR1XK5HEOstm3H6MoskBN4dsxKCJeH0AxgWG8LAQfMMmYQPJDKBl1ZpCMDmRADzWRajsed7GW5DXK5GeCkEuKRuXWz7eMvYzJpCARiHVkul4QWGpvgOLkfvjN3UnboyrHVVYngYgy4Ma7NOasVNzfHg2OhxHmDYT2vhGj9oluwEt1FJ7VdWb4LAc+BYJFZs0XIFWnhdHOjCmWZb9l1kIBkmMf+PTVSa5AcMrhD1zrtMpHbFu8yeKkAo1Vsb+xwav+QU3unObV3yP7uPmfvuZe97V2ixfJacnkdOONrTCkBjKuE69HlekSXcx7Ph/WVu7tRfCciIiIiIiIiIiIiIvLW+EH/HkdERERECsV1IiIiIiIiIvKuc/JfFL1Rgc96bPROdXKl7uRKmZnx7LPP8sQTTzCfz5lMJmNctQrpyn2GGC+EgLtT1zUpdX0kZ/2ym4NDXVVMplNCVZGA1pfMPRC8pSKRQoYQcDIpdbhlYhVKAJYgWMAzMKzXuZMzJZbD2NjcwLOTu66EZrnEf4vFgs3tGV3XEaqK1fhdBreypOdGSpmAkTNYKMfv/X/wXJbo+nU+9xPnwLhkZ/R9Xb90l/E+MOw800wm3LqxoIo1TTS8dW5eu0UTG9Ii03WJ1GYCkeCRrs3QGYFIt8ikNpNTInVOTiVgjNZQh8j21g6Hp+/h3L0XuOfwXna395g0M7Zn28RQleN17+PHIQ50MOu/GDHGY+fKyXNjCOqG2+lfyIqIiIiIiIiIiIiIiIiIiIjIO53iOhERERERERGR96icMzHGY8tk169f54knnuDatWs0TUNd1+Scx9sOYVXOeXyc4fKm3iDlDkhgAXfDswMJM6eqwUIgmxEIeM54bjAaltaSA8QQCQ4pd2TvyqCdQfK+YAPwjHsiU1br3J2qmUKGbMZi3vbPW1bY2mXHpI5luS6BZSd4ic2yJ4IHhk4seybAGNFBWXYrER5YNjDrY7shMHNy+QaI/WpfHxb2K3YWIadEVUeWi44qVLz84ivUVcf+1inmN5dYiHgK5M4hJ7plwlJguVhAMsgBPFDHmoPdPc6eOcvp06fZ3d5hd3uXvd0DNje2aKoJgQgEAgGjX9HDMOt/bgY2RJB9HHnSelx3t6D0nRyZioiIiIiIiIiIiIiIiIiIiIiA4joRERERERERkdfsnR4TnQyohiWydZcuXeL5558fw7r1pbq6ru8I7Ia1uxACwQKRCiz28VnAk/fpWUdKbVm2ixFiAC/reW7g5qScSDmX5TvL43Zc9jI358NyXC6x3rCml1KHeUsMVf99AvdxSS6nYUGvrOiRwYenoSzf9fXZ+OX4GwflIBn7vuP6JTjz8thk6F8TlkmW+zE9J1aREJ2cO8iB5e0WjxWLGwkjYx7plh156aTkhFQixd2tXU6fOuTw9D2cPTzL6dOH7G7vMp1NqauaYIHQh33mJf4zwtrxlxeWcczKa/bhuEVERERERERERERERERERERE3qMU14mIiIiIiIjIu847PYJ7M7iv4rTh+xdeeIGnnnoKd2d/fx8oAd3wfg6h3XC/9VjPzEipxHD0S29DxObkVQyXAQdz62O8SPbQx3ipHNdYuA2LcUbOQwjmZHfM81r452UFz5ycEzFGPDld17FctmxszMqqnUPMjvehnPehHT4cc5/zrRq8EuBZoORo5bXb+JphqO3MHILRd3V9bAduGchYMJxEsAoLgRhrJpMZ86MlLz33CjHWLOYLunZJJGIeOH1wDx/6sQ9x4fx97G3tsjnbZtJMqeuGpmoIsQR05WdZjsXcyiodoT8A1tPB4SLWjvyu54WIiIiIiIiIiIiIiIiIiIiIyHuB4joRERERERERkfegkyt2i8WCixcvcnR0xPb2NtPplJQSOWeAEqy5k3M+tlg3PNYQ4RlG8lTitZzL4lufc5kFQiiLaTl7ietCTUqxrK0FK+EbhpPJmX61boi+Yv9YjmfHbRX4OWWxrm1b8Ig71LEmMCelREqJmEJ/+xLRjYt0mf55h0O1obcrYZqXYwkW8dxfmDMW6B9ntXrnQ5nXl3sOeHBiqGjnLW1ugUAIgWgBknHzpSOaZsa9Z85y5sxZdrf3uPfMvdx773k2p5vMJjMiJaQzi4Q+9hun9IKVCDH7+HMxWwWKQH+sq0DwpCGYHK5TYCeDk78r/iXPjZPPdTc6N0VEREREREREREREREREROSNpLhOREREREREROQ9aj1SOTo64urVqzRNw/b29hjVDbcZvl9frFuP68av/VJbzoAbRsSwMTyLFugcsjuEQLQKMFLK9M9YYjbP5Tb9ZcPjr57TyMn7dCyO17dtCzkRQ83uzi6endxlUpfIOeIeyjJdhpAcD47n4fhKVOfuZCD2kd16y2OlUmNtCw6AUF7uahXOhvcnkT0TLJdlOyuHG0IAN5rJlAv3388nPvkJ3v++97M526QJUyqryoMkpw5NeQ/HP07OPj5Pef5QDmLgZc1v/DmNi3ureG74WSqok1fzWmI3ERERERERERERERERERERkXcyxXUiIiIiIiIi8q73Zgci74RIaf0Yc85cu3aNlBKTyYSqqui6rl9AK39SSuP9Qgjj348Fb5YB65fVHHK/tkZZsfMMHgyyY+4l8wqGUUKzcQDOy8raUIuVkMzw3Ed5HsB8XJRzN1JO5JxKwBcCZsZ0OmU6nXHjxnXcK3LKeAJPBsnIVcYIYytXYjMb1+dWK3R9mDa8ZUZfzx2/iCGoMwjBKO+G46kra36xrMzFGMeQ8PSpA/7Nh/4NP/6BH6eiInnGiEQC0SJURtd1hFARzPolQMrfe87qvWN4ZAOL67cYN+z691jRlLw+P+q58074/SgiIiIiIiIiIiIiIiIiIiLvHYrrRERERERERORd6QcFIHe7/mT0cXKh7W73O3ndEJytX3/y+7fKyWOBcsxd13Hjxo3xupzzGNXlnAkhEEI4tnSWUeMD1QAAIABJREFUcx7X7IbHTv39SvjmeHaMNIZq5g557T21QCBQWUUgUnI0Z2jahlk2z5kQItmdnEqyZkDOJbhzh9R2dF0Gh7ppSG2m6zq6ruuPcwj4vI/0IOThiShLb8743Mbaz2kM71Y3cA9l/s7K6/Jx+a7cLntZ4HP3EtO15Tms5HaklGlzYmt7k/vO30cgkDwTqKgs4v1RuDtVVcOw/teHcuNxUa6yMGRz/Xydr34247zdiSVAFDm9J935m+81xHL+Kt/c8TuzXG9DeXryoY27nIdrN1t/OL/zIhEREREREREREREREREREZE3muI6EREREREREXlXWg/dxmW1tb+v324IyO4Wvt3tPq/nNm9XwxJdzpmmacbALsY4rtellI6FeXcL9Dw7wcsKnBP6gMb7/5TQJmO4d7hngkFITshTYq7pguHpJsk7gmWSJ5yEh0wkkLsOzxAcLBueKxoqyFaiuu4mpITRwAIsQww1uXPMrQy6JYdUET0SAUsQciTmAN4ScsDcMAfLYbVeB0QCwYc0znFKWFfW6mL/Gh1iwg28X9Era35QCiIbz5N6EqkmmZdvvsCV6/9MPXsfDbt4jmABy072BaGK4Km8p2H1vkLAgr16eGThLj/rH+FEkXeNtPZ3o6wrQj/SeOK6YGA+LFGWy91O3IhyWpZz2yGXhUa8v9rpa9a1JzCOVXPDp8SHqzyPNxuvgLue1yIiIiIiIiIiIiIiIiIiIiI/CsV1IiIiIiIiIvKusx67rYd166tr68tsMcbxNsN91u9/t7W6IcobHjPG+LYP7O62xJdz5tatW1y5coXFYsFsNhuvW38PfvBr8xNfh+c8/nV1a8f75bsS+EVI/RhcCARzutSvzlmJ94YxttUqXsbdyDlhwUrc55DXFvjKilwm5UzO5eedskFyQjBShpjBUy6hXLYS7+G4W1mbs9UiXSmQhvW61es1uzNOWr2P5XYhlHm53IdIdR1JOXH79u1x0S6MQajf+WCvYWBM5LUYPs3hxGX5Lrddt1qUHDI41qLb/vdEXN14WFYkrmbsbP0AhuMYHmM4lrVz3fsQb1zDExEREREREREREREREREREXkDKa4TERERERERkXedu8Vw65HdsNQ2rLYtl0tSSndEeUNQFUKgqiqqqvyjlPX73s2rhWhvp/hueI+G9+Lo6Iiu64gxHgsRU0qEEL7vat2rPfbx7/3Y5Tk77nnMbcwD5hFyomQ4VhawoMQ8eQiBrO/bnM4T5tav3K0e2/pZrOHnlFMJ+dxDec5spY9zcE/kDAyvuY/c6MO5Y3HmcLmPWdHwCst/24lVr7UjcvdhBgwnYxaIMbC4dZsbN14hAJm83iCV5/bhFQ3R3d0eX+S1M9aiOgfrv3PKKfp977j2SbPx42nj9esffVsfWrRh3W7tjuNDrkLS1TWr361DxufD7+bX8iJFREREREREREREREREREREXiPFdSIiIiIiIiLyrjMEYznnMYBbX63LOdN1HfP5nJs3b3L16lWuXr1K27ZMp9Pxfu5O13XUdc3e3h6nTp1id3eXzc3Nu0Z46yt4w3O+3Q3H/mrLfoOc87H73PE45Yq73GaI8vKxyK6sz/WpjoF5IHhF8ExOiexeAjSryJ7A+7TO1o874Xm1VGfBIBnZM+aBnMtjOEPM531QN3wF+phu9Uq9X7/L4IblsnBX6qDjr9nMjgVFZv35cOKGFvpizvoqzwxCWco7un3E9ZuvkEhEWy3iHYvo+umuYQFP5EcR+kJ0iFAHw+l190B0dav1qO7Y7wJffY6GBckS7Fl/2/G3wfBI4xrkGNmtfxL7WNVZHdPdc2YRERERERERERERERERERGR109xnYiIiIiIiIi8a6yvqw1/X4/f3J2XX36Zy5cv89RTT/Hcc89x48YNbty4wXK5JMY4LrdVVYWZ0XUdOWfqumY2m3Hu3Dk+8IEPcHBwwOnTp8fQzsaA5M7A7GSo9nYyBHXT6ZTlcjmu14UQjq3z3W2N7uSa3XgbO36b4/He8ADlht7XZMEjjU0xM9pUlgQJjgXDc8YwhryvBJKJnEsc1OWOKjgQcc/k5ESLgDGbbdB1HV1qyX2Ilz0TcsBx3A3PPi7X4WvnS6YEcetbWcNr7WM7G4K58TWVy8rPPJeODiNGI5der/y9K6+t7VpuHN1gvrzFZrMJrNb81t5KJXXyhrHhbFo/qYaLbLUi58c24qyfj/M7fsfZeF2JaKEPSsd5yPKMZpTPG8O65Oq5jk3eYXgZqxx7uxOfQhEREREREREREREREREREZE3jOI6EREREREREXlXOBnUrUd1XdfRti2PP/44f/iHf8jR0REpJdq2pa5rNjY2aJqGqqqYTqdACbjcnRgjOWfatuXq1au8/PLLPP744zRNw4c//GE++tGPcu7cOaqquiNEWz+et4uT0SHAdDplf3+fGzdusFgsaJoGgJTSeLuTkeLJxxu/sr4Ot1r0W91uuKeNIY4D5ECk6guacl1KkHPCc/++UhbtymOO9wQgJ4gRPDs5OzGCWWA2mdF1Ha/ceImcMjkZORkpA15W7rIHYl4PjoZpruM/u/F1u5fmrn8966t3ZmvLX2NkmLFQFr+cjMVIxgm1UTWRW7ePuHHrJlvNGRKZgPXB0snzRqmd/OiGs+euv5XWYraTtx8Ct2HZ0lNZXwzWL+Blh9yV23mElMpzhFA+KCGUU/pEqFsyu7UVPXMykI9FrT9oUU9ERERERERERERERERERETk9VFcJyIiIiIiIiLvKkMINoRz8/mcP/3TP+UrX/kKi8WCo6Mjdnd3mc1mnD59mqZpiDGOX4f7r6/NDYFY13XM53Nu3brFzZs3+eu//msuXbrEz//8z/PBD36QEMLbMqg76eQKXVVVbG1tEUIgpTSu1t0trlt/jGNh3RDTMQR2d4Z4Oee1+5fgbliSczfcDSNShwaCs0hlPS4Cma7EO576eKcEaGZlCSt7Vy6zCLkjG3SLFouRdtHhuV/N8vIwYZjE6o8354zlgGXHMuX2GTzAevTTvxLwMDZCfmxrzvvjyuN6XeoSZlW/3JWBQPaOEI1mUrFsF9y6fQvf7SNEB9afV+RfwN3X4Aw/ccX6rws3iCH0d87lw0T/oUrlM2pmLG69wq3rN5hMp8x2dkos6g5NVWI7s9VzDL8rh0YPxpXKOwNTERERERERERERERERERERkTeW4joREREREREReccZArB1w5oSlNirqso/9viTP/kTfv/3f58bN25w3333cf78eWKMzGYzptMpMUaqqmIymRBjxMyIMY6Pu76+llJiNpuxtbXFfD7n+vXrXL9+nd/93d/l8PCQn/u5n+NDH/oQVVUdW88borL1Y36r4rv15805j0GguzOZTLhx4wbL5XJ8DcN72bYtcGeYt1qsK/Ha0NCUP/lYZLce45U/9HFdH6f1wVoMBsFJbUfucr/4lqhDQ0dH17X9fYdFvEAVa/BAt2yxHJk007IWFwKRAB4IbgQ3zI3UJaIbZqG8D9gYBxqsxZWrn38w65e3hhdfbty/7HGxj/H+3h+D4V0u61wxQHLqSc18MceikzzR5ZZER20NVQxlsY9EFSr60u4OQ/Qo8sPIgNGfO+PHeVXUmTnLNlHVFRmItopHc0rk1BJiTV4uwI0Xn3uWJ771La5efp4rzz1Hu1ywvD3n5vUbNHXNdDJlOp1y4fx59s/ey8E9Z7hw/33MDg6wQJmcbKr+96RBiCyXSybNBMNZLlomk5qcjfWBu9fi5O8rfV5ERERERERERERERERERETkJMV1IiIiIiIiIvKOc7eFuCFcWy6XTCYT2rbl13/91/nyl7/MuXPnuPfee2mahs3NTXZ3d4kxUtc1MUZCCNR1TdM0hBDGGG491kspkXMeF+ym0xKM3L59mxdeeIHHHnuMy5cv80u/9Et8+MMfZjKZjAtww+MMMdtbbYiyhmOp65pTp07xne98Z3z9169fZ2dnB3dnuVwSYySlNN5/PTosF/YLV37nct3xxbry/RjbGZgFUuoo35bgJ1hFFSZ0lkntAs9GZ5lsTm01sZqQUmaZ2vLzmSdyStSxIsSaay+9wvbGNt2y4+j6HGIgdU7XZSprSDmRu0RORlUHyhodfSG3+jpEgKtqcIhzjs97DTcpS3pD0NPHShiY49EIAbKV1x8qp2kqWGSWy9sl3itvSfk5lLm91WONT2l3PL/Ia+X9GRr672CIQ72sxmWnriPgRCB1HWZODIHgGTfj6NrL/OPXHuXSt5/gye88wfcufoe0XBC6TFosmFQ102bCpG5ol0uWyyXf3dyk2dpma3+PHI2zFy7w3/+P/wMHF87hy0iYTqCucE9MqkhOHSEEppMaKAuWOuNFRERERERERERERERERETkjaa4TkRERERERETe0YZQzN2Zz+dMp1OuX7/Ob/7mb/KXf/mXHBwcsLGxwalTp2iahul0CpQIqqqqcb1uuCyEwHQ6vWNtbXiuruuYz+fj/QHOnj3L7u4uV65c4Ytf/CI5Z37yJ3+SpmmOLdgNsd1bZT3yWz8ugNOnT1NVZT3q6OiI6XQ6RnVDHHfn8tz6e7RawVqP64aQbt16cOcZsoMRiGZ0Xceia3EysY7Mqg0qq5gv55g5nXekriMlAyIVoTx16PDkBA+YVzQ2ZXG7petaDnYPmKfbLPNt2nlLsxGopxVmZY2wSoZXpQwcYjrPmewldlst0vXvlzvuhg1FoQU4tgI2yICXtTszQjByKM9jwQhVoJ7WXP7n5/jny8/wY//qozgRz5Em1CV+9Ls97vGfp8hr5e4YhtuQ2FkJ68zIOOsf1S51MIR2KbG4fp1useTvvvwV/vIv/oIXnnmWxdFNlkdHnNrZYWd3j2msCZ6JbkTAsxO3tqhjReo6bnvm1vOXuX50iyvf/R4vPfsM7//wj/PJf/2zHD7wAE3TkMyoJjOqfsEu1s3Ykw4rka+VPiMiIiIiIiIiIiIiIiIiIiLygyiuExEREREREZF3nGEBzsxIKY2R2Gw244UXXuALX/gCX/rSlzh79iwXLlwAGIO5GCMbGxtUVUVd11RVRVVVxBjHFbshyFiPz4b1uiHAyzkzn88B2Nra4vbt2+Scefnll/m93/s9Yoz8xE/8BJPJ5I7ltsGbHX6cXPuDVWg3nU55//vfz2OPPUZVVbg7bdseixdfLa7rLwTsjtW6u0WKwzEMIVvOGR+CP4zKynoVGbJnPBnWBWIVMSKe+3U4M3JOJbbrOqrYMJ8vmd+6wf7+ae49c5bTZ0+Tcsvf/sOjLI/mBIyuTUytJuWyTpdypnKw4RD7mM7cVkt1/SLf+ladua2G7Fj1dW6+FsQ5FsATuOc+tBvm6SBEWLYLrl9/heBQUUGA7E4c1unWh/A0WCev0/pnMPjdTiLDzAmhrDS2iyWbsym+XJJuL7j24kv8p9/9P/n7L3+FF69cYVpFzuwf0EymNAbTnKnSgiZGJrGi6n8fVFUkhsC8zcyqyF69ydntLZYp8+x3LvLMpe/ynW9+i4984hN88uf+NXvnz4MtoZnQ1JHl/Db1bAahDwP9ztpUEZ2IiIiIiIiIiIiIiIiIiIi8XorrREREREREROQd4W5R2vplKSWuXr3KF77wBf7iL/6Cs2fPcvbsWQAODg7GFbnJZEJd1zRNQ13X4wJdVVVlKQyOhXZQ4q+cM13XUVUVKSUWi8W4enf79m2qqmJnZ4cQAs888wyPPPIIOzs7XLhwYVzGOxm3vVWh3fpzDZGbmfHBD36QZ555hlu3bnHz5k329vbGY4wx0nXdq8ZyDqzPXr1aYHf8j611YwbZ+8cB3Mht6sNEo4mT8vBu1GYkT7TLFk9OFWtyzuxs77Bzzw7nzp7n8PQ9nLnnDKcOT3HpqYv87d8/Sjtv2dxooP95prajmtb9Yfuxbs2HqG2I7ryfzWIIDK2P7bzM75VqDrPh/c2r9xdwcv88hgUjW7kskZlMGo5u3+TG7ZtMZptEqwlm/UJeWb4bwr/x/VJLJD+E9TDW+nOrvwbWIuISlmZiCGxOJ3jXcv3Ki1z61rf4oy/+X/zj332Dg6ri/oNTbEwmWOrYiJEaZxIDkxAI7tT9Z8PMoOsIljjYmNK2XR+kGkszpgenWLjz4j8/y1eeu8yTjz/Of/OLv8j7PvrTTHYD1tTUdV3i2xj6T+ndX58COxEREREREREREREREREREXk9FNeJiIiIiIiIyDvKEIEMa3AhBNydl156id/+7d/mb/7mbzh79iyHh4dMJhNijEynU0IINE3DbDYjxjgGdkNcV9c1Mcbx+yE6yzkTY8Tdx8W6qir/SGU+nzOZTMbj2tjYIITAcrnku9/9Ll/60pf41Kc+xeHhIW3b0jTNsdcwWA/c3izDcw2vCWBzc5OPfOQjfPWrXyXnzHK5JKVEXdev4RGd3MdxZb0uj1EirOKX4T1NqURzQ7eGZzzlMZ4xDHPDPFBZpEstOXXkXFbfzI2YI5ub2xzs7bN3sMv9F+5nY2OT82fPUdd1eW3uTGJDHRuW8wXNItA0gZwyVg+LhJnKVzFbdid4wL2P/tZf5RDcDa/UKeWbZ4zwKu/16j0qcd3qcjPY2NxgPr/N1RevsHvhFJG6xIWeMQ+KhuQN5SkTWI0y5lyiUbdytocQSKnFcuZ7jz/B//MHf8A3/+7veO6ppzjc3WO/rpnESJ0z06qixqkdpsGga2lCpA5OwAihLH16dkiJiZXLc07UGJtVw63UMdnc4bY7T/7Dt/jj67f4L6++zE/+1/8V2/feg1UVyTPB7dia6Lq7Xa7PjYiIiIiIiIiIiIiIiIiIiLwWiutERERERERE5B3j+63XPf744/zVX/0VGxsbnDp1irquqaqKra0tAJqmoWkaYozj15N/6roe7zeEdjnnPsBKLJdLuq4bF+ym0+kYkE2n0/FYNjc32d3d5bHHHuP8+fP87M/+LJPJhJzzHatxb6bh9Zx879a/v3DhAlevXuWxxx5juVyOoWEIYQwZ7/YH6OO6PrDr47r12wyhXfk67MT1z50Zbz9wN3JyUu5IOZXxOHfqpmb/4IAzZ85weM8ZTu0fsLO7zdbGFsECYORcYj8z2Jhtsru9S6Ci6xLT2LBctsRoeM6EysZjNPd+vWs4Ph8X506OZnkZ/WJ1S46leGY2Ltf19xhvBxkziNEI0WiXS24dHZX7sPp5hOEcOXaqrB5F5KSTn+s7Lh++judZCV2H2DOnDk+Zx/7hH/id3/hf+dY3/p6tqubs6dNsTyZsJsccJmZMgtEQaAwqdyZNQ+ifIxjEPq4jGilnYg5EM9yMlJx2uWRvMqPylgmBuH+al6+8yJ//8R9zc7Hkv3jw37J9zxkIRgbCXcI6ERERERERERERERERERERkR+F4joREREREREReUc4GYx0XUeMEYAnn3ySL37xi4QQxrBuiOmaphljuWGdLoRAjJGqqo5dN51Omc1mbGxsjNcNzzWfzzk6OuLWrVsAY6Q2hHbDMtvNmzeZTCacO3eO733ve/zZn/0ZGxsb/MzP/Ax1XY+377qOuq5XUdebENr9oOdJKRFj5MMf/jA3b97k6aefJqWEmY3v1/DaU0olmoG1iK6s1uWcKIFbPrb4N/wMV0He8XU7zMeVt+E9zznRNBNmsw329vY4c+aQw8ND9g8O2N7aYjKdlhCyPHMfwvWvMztuzubmFucvXODRb3yNiW2QEwRinxZFyA4JPBqeDIslDso5Qw6EwGpRz/uFrAwWrV/YW2vfzMCcbJApf8rFhpmDZTJgsb8yQAqQLJHCkuRz3BogEGggG/TP75ZXrw3rZ/TsRHgn7379fKKv4tThUvrzbgw4MayPOiGRUybECgdSH8DGWBFwPHeYRUgtX//LL/N//G//jovf/BZntjbZ39ymAaYps2ElkJuY0WSjcqeOAQuOG+QQSjhqRsCI7lRuRCLRygF6MHKE274AX7AZMpt1Q1i21NPAlZeu8p+/+Pvkm9d58H/+FeKpXVpLxC5ACKTQv053ajPIGSyA5WPvVHmPgj4jIiIiIiIiIiIiIiIiIiIi8qoU14mIiIiIiIjIO46ZjaFY27Y89thj/OM//iM7Ozvs7e1RVRWTyYS6rjGzcY1uiOqGFbbhT1VVzGYztra22NzcZNoHW+vx2Hqkd/PmTQDatiXnPMZ1XdfRNA2z2Yzr169zcHDAk08+yZ//+Z/zgQ98gFOnThFjxN3HMHDdmxXZDc9xcsEuxji+1o985CPknHnyySeJMdK2LU3TUNf1uGA3RHZDQOd9SlZeB8fW6oZIb/0YyvM6IZRIMaVESomu68b39Z6z9/C+972PM2fOsLW1xdbWFtPpdDyGcR3OE0YY1+TwsgyXcZq6YWd7l8V8zmTZMEk1VajIuSOnjEUrEZvb2C0Z/Vdb/Wz6UTtwL6tf/e37dxGzPsEzW3VPw59AX9p5SZ0M3JxMJjY1i+WCF6+9gOEk74hUBKr1cT+w/uBw8DvPHxFg+ACM24Y2/Jc7gQzmpJwhBIJFlu2CaTMheIZlx6Nf+hJf+NzneeY7Fzl/6jS7sxkxZSYhMo01VU7UZkwI1ATqAMEghAihfBNi2cULblRuNG7UZdMOqwIZp/VEU1d0JOqQcVo2YlnFC1sbvHTrNo/+6Z/x3/7iL+Kzhrg5HYPU7JlkAc+ZJsby0WD4SHoJdY99eERERERERERERERERERERETuTnGdiIiIiIiIiLwtnVyqW8VYJdQaVtSee+45Hn30UUII7O/vA4wR3PB1iOqGP+vfV1U1rtZtbm6ysbFBCGEt2irh2GQyGe+7WmrzcXmt6zrMbAzyZrMZOWe2t7d54YUXeOSRR/j0pz893sasLLuFEMbFuH9pdwv3VityjAt1KSW2t7f56Z/+aSaTCRcvXqRt2zFmHG43vNb192IwvEfDezgs/a0v9Q1B4vp7GELg8PCQ+++/n/Pnz7O/vz8uCQ4/k5PHXx6b8c943ZgXwcbGBrt7e2UBzjNdl6kb8Ozlz/oS3PojuONumJfbZPeykjeUdg6YDe3Sq7zx3h9bierMwEP/DAbZE/PFgmeffRY3B3dS6sAD0cJdHnC4TOHQe9GxaG7NcA4Gg3KWnmgzCSX89EDqOkJ0goVVnObwf//eH/Afv/AFrj3zLPedOcssRiqMCNQxEs2pQqAKgRCMaEbsV+qiDTt5YNmoQqQOgRojEohuEKuyMJcT0TuyBfBISh2pzOkxmzSQYGIt7sYX/8N/5N/+L59h575z5dVY//t5/RMewvf5AIqIiIiIiIiIiIiIiIiIiIi8OsV1IiIiIiIiIvK2468SSQxh1fqi3HPPPce3v/1tNjY2mM1m4/XrgdzdlurWr6/rmqZpaJpmjMuAMXgbYrBhEW86nbJYLGjbdnzMITabTCYsFguWyyV1XXP+/HkuXrzIV7/6VT71qU+NAeBw/MNxvB0MS3R1XZNzZnd3l4997GNMp1MuXrzI5cuXOXPmDBsbG8dev5mRUrojoIM7f2ZDnLhcLlksFuNS3sHBAQcHBxweHnJ4eMj+/j6TyWT8GQ0B3vCYw+Ot4ss7zxnDCJT77+3vcebMGa7evII7pDZRUzEGdNnxZOQMZLAy8LVarBtW7fDV1/5ZcO8bu1WcZ1bSn3LsadX9DAGglffCQqCeVMQq0HnH7eURG/U2MQQChifvV7m8j/jW5/DkvcxttbBI/9X6RrScIUN+1p9DXs6ZtuuYNBMg080XVLECT/ze7/x7/sNv/za3Xr7GA+fOsWmRmBMTM5qmxrpEMKep6xLYEQhAwKgoC3Xm1p+vRnQrQV6IVDFShQqqBguRlFrolkDCUos5WM5sTmfc6lpoM6e3t3nh2nX+v//3azRnDvjv/qdfopptQRWI/YfI+7XIcZ2P1Xvh47vAqxeJIiIiIiIiIiIiIiIiIiIi8p6nuE5ERERERERE3rbW1+rW/77umWee4fLly5w/f54YI03TjEHW+krcesC2HrQNYVxd12NM92qx2xDY1XV97HHXn2s+nzObzXB3jo6OaNuW06dPs1gs+KM/+iM+85nPUNf1ePuu66iq6tga35tteL055/FYhvdiOp3ysY99jMPDQ55++mmeeuopnnzySXZ3d9nZ2WG5XI4h4WAI6Ib1uiHaG9bpuq6jaRoODw85ffo0p0+f5vz58+zt7d2x4JdSwt2/77JfOf588sI+egtEc6b1lKpquH3rFpPdbQzoli1URt00eOrwCsgO2UoM56sAst8F6x+8X7obQrt+uW64bix4gkPKq8vH5bq+irISK4U6kHzBYnmbZ194ls1ze1QdzOqa5Kt/gGfHyiBVQu9V653YENKN9aavzpLxTPQ+9OxX3+oq0i1bqjpShYi78/v/7gt84bd+i/bGDT70r95HWHak+W1O7e5SeWYSAsTAJFZEy0S8rNgBlUN0iFCCOy8LeSFUVLGmqmvqyYRmMsWbCRaM1LYwn+PdHFrDshPajkggEYlNxbVbtznc3WVx/Tp/9p/+kJ/66Ee576MfBc90KWOxIVhYrUjiax8LW/8kioiIiIiIiIiIiIiIiIiIiLwqxXUiIiIiIiIi8rbz/eK2IdqKMXLt2jWeeOIJFovFuHI23O7kn/XL1yO99QBv/ftXM9x2fR1vuF+Mkclkws2bNzEztra2xiW8y5cv87WvfY39/X1+4Rd+Ybx8WIl7q9br7hYdxhjHtb7BhQsX2N/f55577uG73/0uly9f5sqVK+Py3xDSDWt26+t1XdeNkdzW1hb7+/ucOXOGe+65h/39fWaz2bGf0/B+DMdy8rJXeSVjSTPERt5Hb+ZGsMDmdAYpk9tE9FB27cxIORFYuy+surm1Zyjfe9/x+Np02HD9nTmPmUEs8RCh3xEzSEDuV/NiDVUTySTabokFaPpYMVYnjwAgHG/9RIB+pG4YqOutwjofilELVCFAyizbli/+zr/nf//1ne09AAAgAElEQVTN36Jy59w9Z2mSk9uWw71dqpSxtmW2tQmeqUJZmItACEYgEC1QWaAxIzJ8rgIhVIS6JkwnVJubTLa2sNmMEKv/n717f5btrO87//4+z7PW6u7dvfc+FwkQF1lHlvDYji9HdibJlCvMDJhKxkXZGPBUahInNcFKpWpS81P8J7js3zNTQGwnTuwMIAdDxhfMLcEwvsQIYxAxChwbBBLWkXT2tS9rPc/znR/WpXv32UdgYqNzxPelWuru1avX9VnrVB346IM2kdXpCav5Mcv5KRojpNxmBFMkZ7gwnfHc4RFFjAgNn//Mp3nFd34nUhZojkgIBPG4LlinQ6OktLemcvNNbIwxxhhjjDHGGGOMMcYYY4wxxhizxcJ1xhhjjDHGGGOMueN478k588UvfpEnnniC3d3doR3Ne38mhLUZ8uptfk4pDeGvPiDWL7MdxFPVc5cDzoTSptMpp6en1HU9tOLddddd/Nmf/Rkf/OAHue+++3jggQduaoz7Zts+LyIytNCJyJlWPVVlMplw5coVLl++zPXr13n22Wc5PDwcAnVHR0csFoszQcM+9BhCYG9vj3vuuYe77rqLyWQyBOc2g3z9+83PwJnA4+Y571/1eZJmIsJkPGV3b58QSmLMhCSQQbKQm4wWXfmXSp9Rgtxl6Lox1L6na8Tr9gXFCyC+a6MTNNMG+0S6oFPbqKW5z8P1+6+oy6ziEgnQ1EvmixOUjNKGSB3+3HCQZYa+lQlbqc42UbdR4KayMdK6ijtF2yBaakAcJ4dHvPvnf5HffO/7qE9OuHLfffgYqQAfAiUgmpmMCoKmbjw6SgTvHF6EIEJACLh2njrEOVwI+NEIPx7hJmPC7pSwt0s1m7XtojGxPBpxfANyjrBakVKGlCicw3vHalUzLUoa57ixbPjS5/8r17/6JHff+234sH52DPeCa58DKto1+sn6/NjNYowxxhhjjDHGGGOMMcYYY4wxxphbsHCdMcYYY4wxxhhj7jiqinOO5XLJyclJG9bo2uTWQah1+G172gzH5ZxpmmZov/PenwlybTal9cs2TXNTyM45RwiBnDMxxjNNeuPxGO89Fy9e5ODggA9/+MO8/OUvZ29vj5TS8LvNJrwXgqpSliUxxuF4+uMLIRBjxHvP7u4uu7u7XLlyhcViwenpKcvlkvl8zsnJybD8ZDJhMpkQQmA0GrGzs4Nzbjhvm0G6/v3mue+X66/rdgNhv89DSLA/dX2iSLtQWxcMHI/HrOqaIjlQT9NEQi5wQVBtt5W1DSCpts1XqjIE7NBuP/uGMLTLLSkiuQ3YDTG/brydidN1OR9pJ2jHjbpIqByiwnx5imoi07aEkfuzcebgjOmSntCPDe3b29x6lOScEN/eUyp04zvz9Fe/yq/+0r/lN9/za1zemfLKV70KWdXsTib4WFNVJSFnyiLgc4KcGRcBUaXE4cQRcDjOPrPEO3zo2urGE9x0gpuO8Xszwv4uo9kuVVnhYsShNPWSej4nh7bNjhQJzlFnhRgJUjAdVUxyweOf+TTf+6UnuPuee/DlmKSpO0bF4dY3lXYhu+7+NMYYY4wxxhhjjDHGGGOMMcYYY4x5PhauM8YYY4wxxhhjzG1tO2wmIuSchza0EAJN0wzzN8Nz24G6fuoDXv37GCPL5ZKiKHDOMRqNbmpSyzlT1zWLxYLVajWE6/r96EN13nvKsqSu6yGgVpYlTdOwv79P0zQ89thj/Mmf/AlXr16lKIrhuDYDZC/UuQWGfern9eG2vmlu02g0YjweD8s+X0tgv/5+PWdCORuBud6tQo5fF90Io4kQnOeuy3cRm0TTRKoUKMS37XRJu+avzcBev83zt9s2hLVVYbkPWG4u0DXWqbZjBOmaw7yQVZDYxu6cOJIkMgnnlPnilKwJJHfZwM3arVvvj/nWcasRoEAmIwjStbilnJGsFN6jOYODp659kV96x8/z+7/zMWZlyV5VUapSeU8RI4UTxt5TOYcnE7yn9A5PGzgtpR3rAngB34eCnUdCgasqwmRCmE7xuzsUu1OqC3uMdncpRyO8CJCRwuODJ3hP4/tgavtM1tQ+S7MqkpSxL7h+cIOvfvVJNCYERbPiXVifkS5U27f2nQ2k2n1jjDHGGGOMMcYYY4wxxhhjjDHGmPNZuM4YY4wxxhhjjDF3hPNCWn24Lee23qsoCpqmoaqqcwN22412KaVhncvlEuccKaVhHSG0f3WSUhqCdX24bjNs1q/He3+m6S2lNAT7qqpCVZnNZsQY+c//+T+zv7/PfffdRwjh3GDa7aYP/21fi+2Q3Pby5/nmhQgFweGcY293nwt7+zSsujAk+AiucENznWZpW+mG9rquDexMOEfJCq4L7ShbDXo9J4i2wTqENpGUIWsmo+33QQiVoxwVHB8d88yzT5O7f5C2lctvnat1I5cFhr4ViW6Hx7pPfRCWtoFRyRQhUK9W4ARNkc8+9lne+6/+FZ/6w08wdnDXdEqRMrujESElSpTKOUoBj+KB4IQgnsIJgrbzu/pF7xzeecR7XAhIVSGjEbIzwe9NKfdmlLu7VLMpxWQCQKpr4nLJarGkqVfknLp7pwtGd/drVoUEZMULjIqSp5/6KsvjE8a7Y5z49Wnog7Fnptv7eWqMMcYYY4wxxhhjjDHGGGOMMcaY24OF64wxxhhjjDHGGHNH2Qxs9a1x0Ibj6rqmKIozDXY5Z1JKZ6bN34vIEKhbLBY0TcNyuWQ0Gg3rijHSNA1N0xBjRFVxfVsT6+Bf34TnvSelNITtcs4URYGqsrOzQ9M0fP7znyelxE/8xE9w6dKlM21xt6vNJjlgCDX2x7/ZbHdesK5f7laNeX/5+ghauy/7exe4cPESX73xFXJUXBY0ZTS3QR7tmug0t8G6zWyOats8h+oQqWuX0XU/1plwXRs+wgmaFRUQ0S4D1K9c2gCdZsQpGeXo9JiTxSmj8RREEXdzsK5fwzex5NDcJoZ7aLuMrSs1lG6m5owT0BQJoogqn/nEJ/lXP//zfPGPPsnF3V1mZcUYYXdcEWLDyDsKhMo7gji8QFAhiFCIo8AhogQSTgRcG4KTEHBFwFUVbjzGTXYodmdU+3uM93cpdqaE0QgRT1quiKen1EdHLA4OWZ3OiXWN5oRou99ZpA2fSnuPZVUER/Ceg2efY7lYMM6KOFDNXeukAxR1Q4Edt3lW2RhjjDHGGGOMMcYYY4wxxhhjjDG3CQvXGWOMMcYYY4wx5o7TB9dEhNVqRV3XQ3AuxnhuoG47XNe3PG0G7Oq6JsZIXdesVqu2BaoLXfUBsP43fXBvaIvqAnf98t57iqIYlu1DgEVRcOHCBXLOfPrTn+bVr341P/zDP0zTNEMA7zzfvKa3850XlNsM223v93nLf1OOQYfYWrsf3WdV2BnvsDud8eU/j+TscXTtWLkLzQ3BOYZkjtA39ckQtmub42R4FdH1xvtfibZteGSQjNKF9/rx4pTkMpqVDDSaKKuCWEeeffY6l1/5UlRz2861sd11MO9s0NG8+J25x0TO6WXrx6yiKeKCQ1QR5/n9D3+Ed/6bX+bxxz7LlUsXCVmpcmZaBEaqVM5TIhROhmCdE6FwjgB4EZyCqOB8GJ6/4gO+LHBViZ+MKaZTit0Zo909JvsXqKZTQjlCFeIqko9PaA6PmB8esDg8JM5PiMslua5JMSLdM6W9cwTtbmBBcBJYzRfEpoGs7Xdo2w55Sxm7V4wxxhhjjDHGGGOMMcYYY4wxxhjzfCxcZ4wxxhhjjDHGmDtO3wjXN87FGAGIMQ4Bu37qW+Q2J+fc8LrZPtfPc87RNM0QvPPeE0I4s3z/G2BYpm9y6/XLppSGoN1oNKKua0ajEaPRiI985CNcuXKFBx54gKZphhDerbzQIbvz2uc2g3O3aqc7z1/FsSgMYRuhjxs5JCtVVbIzmZFjIqeM4pHcNsuh64CdqA4ZNtXN4F2/3Hpj/XyRDHg2A3awPh+qSkLbmI8Abr13oQjUEvE+kEV57uAG8kohaqY8c2Q3Helf4pkzt7PNcSRdsG4razcEe3OOeO+QmBBxfPy3P8Av//wv8MS1P+Xld93NWGuCEy6OJ/iUKHNmOhqTVksKX+ABRxuya6euwa7rxXNOhuekCwWhLPHjMX46pdzdpdrfpZrtUk53KMoRqBBXDfV8QTo8oT46pj48IZ6cEpdLUl2T64bcBZ+zKilnsrruOHVobOyf8WRwHnCOdV1dX+DX3lvD3SG5+8ZCdsYYY4wxxhhjjDHGGGOMMcYYY4y5mf0/CowxxhhjjDHGGHNH6QNZMUam0+nQArdcLlmtVqgqTdMMobvN97eamqahruszU/+bnHMXWMnD1Add+oBJH77rA3h9CG/z+6IoKMuSsiwREfb393npS1/K0dER73vf+1gsFnjvX8hT+xeyGfb5evRBxc3pr8LNa11vrypLZtMpgrTXNuU+U4dmQTNdsG4dputDParahvD690Ob3DrUpFvBuvWxtuGn4RdC28slgri2nSsUoc0IKTRNMyx3lg7b6vfRvPjoLa5tPy+rknU9OtswWjsPGFrltGn4T7/+G/zi//V/89S1a7zy8l1MEC5MxowUSlUqEQoEFyO7owkBCNK31zkCDi8ejydIoPQlKh5cwBUl5aiiGo8Z7+wwmU3Z2d9l58I+470Z5XgETshNQ3O6YHl0wuLwkOXhMc3pnLxYkesGrRs0JiQnOPOczeSkwzNXtA39SXvQ7dSemPbcpC7ke+Ze2ww8nw0/G2OMMcYYY4wxxhhjjDHGGGOMMcaAheuMMcYYY4wxxhhzG9oMl/TvNwNZMUZCCLziFa/g7rvvpq5r5vM5MUbquj4TmtsM0fXNdZvzz1tmM0S3boPKw3eqOoTmvPfrFqdu3vZrH74ryxLvPTs7O8QYmc1mXLp0iWeeeYaPfOQjONf/Vc06VbV53O1LV6l25nytpxfaX2Vw7mvS9ZshetTtijghhILJzg7OOWJKxJjWTWD9td667kN7Xb/mzff9NDTcddu66RwIIg7v3bAOVcV1jYd1vcIHDyJtK5h3xJyGoNA6tHfztb/5s7ntKWcu5frjZkCT829sBc1Kzusx0T+f+gZGQcnLJf/xgx/iX//8L/LMU0/xkouXmZQFu+MRNInd8QTfNdIVTqh8QDRTuoBH2rHZBVM9DnGOIOsQcVEWVGVFWY0YjydMdqZMpjNGOzuEskSCJ2mmXtXMT+ecHh1xenDI/PCYxdEJy9MTmuWSuKqJdUNqmjPB5ZagCFkFVXAi7EynTMZjKArwRbdYF6gLfWOlIBv3vpL7SjtjjDHGGGOMMcYYY4wxxhhjjDHGmJuEF3oHjDHGGGOMMcYYY74em2G7vhluf3+f++67D2BonOvb64qiGEJTfWitDzw559YtUF1oLoSA936YLyLknIf3qjo0y/Xr2WywSymd+W3/2gfs+sDeZDLh9PSU0Wg0fL5+/Tqf+tSnuPfee/mO7/jONmDl1ttvZfoWttYLkxTZDs69YEG67e2rtA1WfZBmvQSK4qUgSOKll15CfVpTVY7SB5rYUKonZfBZyAkkgVeBJKinGz8OweEQ0IxkQdThcGhWFAHf708f0MuIdOO22xdBAMX79vrWqwWuGuM0kOWEOitfeuoa3/cd309VVWQcIqH7neviRm0USyTRHuyd03hozre+03UYM6LSjmv6bJiQNQOKczK0IYooXgTJ7bisVzUf+/Xf4lf+5Ts4ffoZXjGbMcMxQ9DVikkQCpRKPFVwFOLwCIU6vIDTjFNwknCihKINeta0z9WirAhFwO1McNNd8myPvHcR9i/gd2f4qkBTJC2W5JMj5PCAcHhAeXBEPj7CzU9JqyWpa45MOdOIBymoc8IXI2JcscwQR455hMWy4WSxZLZ3gbB/kXbo9+HDhBb9s9vjUPq/9tb+HFmyzhhjjDHGGGOMMcYYY4wxxhhjjDG3YOE6Y4wxxhhjjDHG3HZuFdjqG5r6ENxyueShhx7ie77ne/jMZz5D0zSsViu896SUiDFSFAUppWG9qkpVVcQYAUgp4b0fgnD9ds5rzzvbqtTqA3f9cv22Nn/b72+/zaqqEBHm8znT6ZTFYsGXv/xlfud3focHH3w1bRvVugFtMwi4ub31+foLn+IXrTbmtg43qnahJDLOOS5evMT+/gUOVs+QU6KctOPDb7SIba4LlWHc5Ux3snM7XtS1AUi/Du/0TXi3JAyNdP2YyyKkpmEyGXN445SnnnqSEDxJEgWybi6zkroXrTZy2b8/GwW76bKLkFRJTd02YzqHpoQgLI4O+Mhv/CaP/MqvMD885OL+HrPRiJG0y0zKiiA13jm8a8OhfXRTAOcE7wPeteO8DzKLKN4HylDhqhHFeIdqtku5t0+5u0e1u0uY7uBDQHOiWS5pTo5oDg9oDg9pjo+p56ewXJKahiZGYlJSFxjMqqSUyQhNXRNTImWoJRGz4srAyeKU2WxGCAGGlk8grEPPfYh188S90AFgY4wxxhhjjDHGGGOMMcYYY4wxxtzeLFxnjDHGGGOMMcaY2852A9ymfl7OmdFoxJUrV/i+7/s+Hn/8cQ4ODgghICKEEKiqCu89IYQh9NZLKZ0J6nnvN4Ikcmb5zSa6nPOZIF4/f7P17rxj6V+bpiGEQNM0lGWJqrK3t8dqteJzn/scjz76SX7wB38A1XymYQ84s03z/M4bO6qZ8WTC3S+5m8X1E+o64Woog0dVyCqIAllpC8La1jvtC7JUh5yb0F1T7RrGuDlYN7wX2I7tbfJByBHqWFONRtQ3ap56+im+/WX7ZFLblndT91YfhzIvBusrLNszh3ClqrZNbCKknPA+4IAcI945Dq5f56Pv/23+wyO/yumNQy5NdrgwHiOrmvF4DFkJAoULFM4RxFE4hwNcF+Z10gbscDKMaydtgK8qSqpqRDMZ4adT3O4Uvzul2JtRTCe4wkGOaF2Tj09oDo9YHhxQHx9Rz09ZLef41QptEjEpTc5kGKbYBZhj1zy6rBtizqw0cTBfMLm4z8tf+QqK8Qi865oqu/PTh5C3bgm7S4wxxhhjjDHGGGOMMcYYY4wxxhjztVi4zhhjjDHGGGOMMbet80J2m0E3VSWEwNWrV/nd3/1drl27xnK5xDk3BNf60NxmUK1voevnA10zWR7a5Ta3mXMe5m020/VhvO1967e1GbjLOaOqjMdj6rpmtVoxGo2IMTIajXjZy17G448/zgc+8AHuueceXvWqVwxBPvP122yQ6+f0oRvnPEUITMZTvHg0Z3ISIKBZh/CcqNwUptuM6LT5prZfrL8+7fa69yhnAnSbl9ApiJKzovRjKSLi8YUnewiV56mnn+K+lz6ISMYilS8u/fi4KUy3EaRdDzsZqiml+6wori0/pGkavCrPPv00v/6r7+FD/++vUx8dcWlnym5R4JrIhZ0dXE5UoxKnQiGOIEIhQhDBA17aSRwgiojDOY93nhAKyqJgVI0YTSbI/oxyNqPa26XY3SXMdvBVCVGJywX10THx8Jh0dEg6OqaZn1LXc+rVEt80EBMxZ6JmYncmskLqGiJjdqzSghqhdplFalhow95dl3nVfd8GRWAz5dq2VZ5zl8jNkVRjjDHGGGOMMcYYY4wxxhhjjDHGmG0WrjPGGGOMMcYYY8xtpw/ObeoDcf185xw5t+1uDz74IN///d/Pk08+yeHhISIyhOv6AFzfaNcH6lJKxBiHed77IczWB+36/die+rBdvx/9/vXr2gzxee+BNlyXUhqWqarqTHud955Lly5x48YNPvaxj/F3/s7rmc1mw+/PhriGvI3ZtHVS2lPVXjNxHoeyM5owm06JTcQnh5dAihmvArkbZ+3K6JI7bRRK14Gn9rMOHwQZgnjtOGhDSprWP1D6nJRDJbffZ4dzShMjQRzVuGTxzAlOHMtmziotKIpqI3QlG683tySaO0nfsraOf21fUe0Xk34ISNtcp224zuXMqAg8+cUv8Ru/+u/5yG+9n3wy5/J0ykQ8E+fYKQtktWJUlgTAQ/e6DtYFINC21nkRRMB7wfsC7wNFWVIUFdVkQrUzJe1eoNqbUe7NCNMRUhY02pAWS+LRMc1zh6SDI+LxMXF+QlwtiGlFjDU5JiS1LXUNkAQSSm47ImlSQpxrA3dAAxwtFxwu5/z33/fXeNnLX96dkEybMHSItmFAUPJWe6QxxhhjjDHGGGOMMcYYY4wxxhhjzNdi4TpjjDHGGGOMMcbcETaDdX2DnPeelBL7+/u88Y1vpGkafuM3foPDw0O890wmkzNhtrIsSSkNwbo+GLcZuus/9+G6/n1vM7ixufzmvM0A4GZzXd+i1/+maRqqqiLnTF3X3HXXXfz5nz/Npz71R7zsZS/hh37oh4Z1p5TONOVthg8tTLImbV3VEHIbTlNWVDOhKNnfu4CoEJtEShmNgs/attf1kzpyVkQFsoAo5Iw6BxsNdwBo20KmWVHRIS4l0oUs2x3rEnbd9ZI2XCVeEA+SlaZZEUaeVGeOT49pcgNd6Gi4wuuCPLYjd+bO0l7KvB4g2rfatZ8VUAFpU5vDN64fS6o8ce1Pee8738XvfOADuLrmrtkus6IgxESZM0USRmWJR6lcGzAOZDyOABS0wbpC2vU6EdQ5gg+4EHBliR+NCaMJ5XTGaLaLXrhENduhmo6hEGJOxPmc5vCIdHBMOjgkHR7TnJ7QLJfEuCJpJOeIy0LOkBSyExJt0C53zY8SCubLFVoETlZL4qRi3jRoFfiB/+FvMdvbA3HoVmNkG4pdh5rtmWiMMcYYY4wxxhhjjDHmTnXhwgUODg7OzNv+j5IaY4wxxpi/XO6F3gFjjDHGGGOMMcaYr0cfdNtsloN16O5Vr3oVb3jDGxiPx5yenrJarWiahrquaZqGGOMQqusDdimloVEuxjhMm9+fN+Wcz4T9+v3rG/A2Q3T9d957iqLAez8cx2g0oigKRITJZEJRFOzt7bJYzPm93/s9vvKVrwBQ1zXOeXLuk1XbDW1q/6MadAEk3QjXrM9TSgkvjhgjy+UKzSDqyAnArZsJM93Uf1732N0yxtZX222T9ss2ZLfuvcsktOvrypoJwZFyJNPgCwFJLJbHZIk0udkK0cmZT+YOJNxcPanDv7qP0k3t7KwZzakNidYNNJFr/+VP+OW3v4OP/fZvU6bE5Z0pu2VBlZURMCsKxt7jcqb0DtFE4dp2us3GugIoEEppQ3alD4RQ4MqSMBrhd3YIuzOKC/uUFy8y3t2jGk8JvoSkxJMFq4Mj6sMj6qNDVkeH1KfHxMWC1KzIKZJjJMdEzkrKSsyZpG3Irk6ZVco0wDImljHRqKIhcP3wkMPVkr/5mr/NK1/9IFkhpwTSnpuUMnYvGGOMMcYYY4wxxhhjjDHGtK5du8b9999/0/T2t7/9hd61byo7D7cHuw53tkceeYTXve513H///cP/x+XChQs89NBDPPzwwzz66KMv9C4a85fKmuuMMcYYY4wxxhhz2/laQTHvPTlnYozDexHhypUrvPa1r+U973kPBwcHTCYTVqsVqkpVVRwfHzObzVDVM810zrkhONe34vUtcZvNdSIyhLD6UJ6qDq13/ff9siG0f/USYxzmAcPy/b6Px2OWyyXOOXZ3dzk9PeWJJ57gox/9KD/6oz/KdDod9rM/PyklQghnjsOs9Y1W0vXIJQXEMS4m3PPSewiuoFktmDDCqZCTklLG4YfGu2EYdk11OWdE/fBfq1LVLg+VEScgfiPo2F2PvvhOugxeN5a894gqsYmkmCiqEXkZwQtJa64/9zSni1P2dy+fc3RDdRkWLLozZcB1bXSyEZjsb2NVJaeMeEAEp33AuP3+C595jHf/0r/lE7/7u0zLkguTKSOFUEfG3jMpSyrnkJzwTgkOvHN4AU8brivF4bRrrxOHZG3bPb2H4HHjinI6pZztUe3tUu7tI5MpVTXGOSE3kbSYE0+OaA4OWd24QTo6RhcLcrMipZoYG2KOxJxBlawQU0aDJ6pSax+0EzRn6tjgxhXHqxU3mhXPnZzwqgfv50d+9McI0xlZ/Nmm0OBvvgs2wq59uaQ9H40xxhhjjDHGGGOMMcYY863g4OCAa9eu3TT/C1/4wguwNy8cOw+3B7sOd6af+7mf42d+5mdualGF9po++uijPProo7z97W/n6tWrvOMd7+Dq1asvwJ4a85fLmuuMMcYYY4wxxhhz27pVaCzGSAhhaIHrg21VVfETP/ET3HvvvaxWK27cuEFd14gIp6en1HV9pqFuu62uf+2b8fqGus2muv7z5vebgbrNAN15bXbee0IIhBAoimJ4LcuS0WiEc469vT2qquKP//iP+eM//uMhtNdvr2/Cu/kcfWu31+l5+Znu+oQQWM6XFEXB/fffz/HxCTFmUE/sGrXI2oXqpG22y0D3uV0XqObueufhvW6d93Yd3dwuECUiIIrKVtBHwHlHf+1UEkkaThcnHBw+R5SIkm86Jm7aqrmz3Hz12q7FdmyogvcCOeMQnIDERJov+NNPfZp//4v/mk///u+zX1XsOI+vG3a858JozMR7ShG8KoUTyuAIIjja1rrSOQrn8OLwyBD2dS7gfEE5mlCOJ1Q7U6q9XUYX9qj29wj7u4TdCWXwuJjJJ3Pqg2PijUPiwRH5+IQ0n1Mv5qyWC5ZNTZMTqWuDzLkNFWbvaaKyXNXEnKizsmgaFimRgueZk2MWAsdNQ9iZ8D++/vXc/ap70SaebW/c+rNBkG/1R6AxxhhjjDHGGGOMMcYYY4wxxnxDrl27xkMPPcRP//RPnxusO8+jjz7KQw89ZG2E5kXBwnXGGGOMMcYYY4y57dwqVNfP60N1fbCtb52bz+e88pWv5Cd/8ie56667WC6XHB8fE2NktVoBMJ/PaZqGpmmGYN325/NCdv02+vmbYbvtfdxsptuc+lDddsiufz8ajQjBMZvt8JKXvITVasWnPmGGX+kAACAASURBVPUpvvSlJ7qwje8a1Nbnon1tw16WLGltjp+clZQUASaTCSlnnAs8+MCryVlZns4JroAMOYEmhZTRpGgXCjrTYkcbpltf/3yr3TizP11yqssFafdecM4TCkdKEZzivOALT6Th8OQG0l9XzedeYovY3Vn6tkOBLnh59jmn3TIx1d2zREjNEmIkp8hnP/lH/MK/+Bd84qMfZaywX1XsVxWXpxPGDnysKUUpyHgSpRdGviA4hxfBO8E78ELbZucF5z2+CPiywI9GuFFFsbNDNZtR7e5S7e5SzqZIVZDFIU0kLU5ZHR5SP3uD5tkD0sER8XhOXC5pmppVrKlTpM6ZpJBVyBnmTWSREtEJUpQkHBHQomAeI88uVzCZ8uTBIQfLFT/02h/mNa//u0g1QUJJVlnfjwqigqgMN+hwi5133o0xxhhjjDHGGGOMMcYYY4wxxtzk4OCAhx56iEcfffQb+v3DDz9sATtzx7NwnTHGGGOMMcYYY+4Im2EyERlCb/1n7z1FUaCqvP71r+fNb34zIQSOj4/PBOpuFaTrX7e/Oy9o93zTdovduhXKDW12530XQqAsyyF8t7u7y6VLl/jiF7/Ixz/+cY6OjgG6cF0aQoXd2bnledsMAb6oAyYbp2B9nOtzrblt/ivEszMa8e33309RlKSorJYrcv+bzaa6jfWtp36ZbuFh4pzAXfedA5XNc69tG51kxHVjBXBBUKf4skA8nMyPuwa8dYDv1lfa3O7W41KRNkW3ntfWG4IoOKEoS1QzqWlwQLNY8omP/g7/5l/+Sz7/2GNcGI+4uDNhpDALARcbKuconVA6ofKO0jmCCl6EQhyFOAKChzZk1wd/ywJfjXCTCcXODuXeLuXeHpOLF5ju7zPZm1FNJogviClSHx+wOjhkeeMGq4MD6sMjmuMTmsUp9XLZPjdVSSgJoVGIqm0wzgcaB6erFYvY0KiySpmTumaOEovAl4+e48sHz/Ga/+Xv8r/+4/8dP5m058YVG2fzTFp1PWfj+XpeQNsYY4wxxhhjjDHGGGOMMcYYY8xZDz300LltdW9605v4wAc+wI0bN1BVvvCFL/C2t72NK1eu3LTsww8/zCOPPPLN2F1j/kpYuM4YY4wxxhhjjDF3jD4soapDoK4Pp6gqRVEM79/4xjdy3333MZ/Pmc/nLBYL5vM5OeczbXV9mK5vp+u//1oBus3pvHBdv4/b03ab3Xaz3c7Ozpn3TdPw2c8+xrVr14gxt01Trv0rnc3ttds8e77OC9O9mMN222EaAcStz5c4oW4izhUc3jjCq+DFUxVjdKMRS3UdmNsMz93K8BtpA3PrJsE8LNCvU/oQVRcKku5v58QLLjiyJkQy6pTj+QmrvATymYDder++dmueuT1sPhe68rquxU63Xtv5WRNIpgiexfExf/jxj/Fr73wXf/pf/oRJ8OyNx4wQJkUBKVJ5T0Apg6fwnsI5Cu8IgNdEcFA6IQgEIHThXl8EpCiR8YgwneJmM8LujNHFfcb7+1SzXarRBO89OUaW8zmnB89xeuMZ5gc3WB4fsZqf0qyWpLohxUgTIyknYheqi5qIuQ3XrXKmESEFR6OZZWxYxoZ5anCTEU8d3eDZxYI3/sN/wN/7J2/F7+2jviAlQHz3HN0+u4LI8/81twXtjDHGGGOMMcYYY4wxxhhjjDHmZg8//DDXrl07M29/f59PfOITvPvd7+a1r30t+/v7AFy5coWf+qmf4gtf+AL//J//85vW9da3vvXckJ4xd4LwQu+AMcYYY4wxxhhjzF+EiJwJrqWU8N4TY2wDIF3gbDqd8oY3vIGvfOUrpJQ4OTlhPB4zn8/PtMX17733QwjLOUdKaQhk9MtshunOa0fabq3bbKjbDLT12+nXXRTFsJ4QQvfZs7Ozw+XLl7l+/Tp/8Ad/wD33vIy77767W1aH9a73YTsIdjZ4d14o5ebg2IsjhNJei7YRDoEYE04cZVHCEnb39ogxQ4QYGzSvg03atdd15WJnAlHQvgqC0s6U/pxp20kn0i8riGz80IGo0Bbjrc9730AoCOIE8eC8o2lW1E0N1TkhyXPemTuDdvfpcKepdvO6q9ndlk2M1KenPPp7v8d7fuXf8aXPPc7+ZMqFqsTHmp1xiUfw4hiVJYVmgghewIsjoDiBgMPntq3O4fBOcdI+88QX+FHbWud2JoS9Xar9GaPdXUazGa6sUCDVDauTOcvjY9zRIcuTE1YnRzTzBXm1JMUazV04OSUykETaVxVyd2ArTczrBuc92XnmyzkUBfVqxRNPPkldeN74D/433vD3/h5hVIEIMSuhCIDgupN2/lNq41m8cV9YsM4YY4wxxhhjjDHGGGOMMd8qrl69+qL7D6x+I+w83B7sOtz+rl27xtvf/vab5n/oQx/i6tWrz/vbn/3Zn+Xg4ODM7w8ODnjrW9/Ku9/97r/0fTXmr5qF64wxxhhjjDHGGHPH2Wyw6wNmIaz/mqMP273mNa/h2Wef5b3vfS/Xr19nd3eXlBJlWZ4J1DnnhnAeMATv+u2klHDODWG+W4U1+uDfZuCtD9f1cs5tqEVkeN9/n1JCVRmPx5yeLgghsLe3x2q14nOf+xyf+MSjvOY1r6GqSkTa/cy5b0rrnf/+/F1uY2IbR/B8p/22thlsXAcZMw4BHKEIpJxQlFE1YjQaUxQFMdUAZM1kzagKOYMoqHahyLwZumsDcl2S7vx96V6HyGMX0OuDfn34bnOsaPePc22bXUap65q6XkG1Xq8Mwaw+kHXnXrMXs83xuD0PhdyFgofxmjNZFbxrw6A5Mp+f8uH3/xbv/7X38eyXnmCnGrFTFBQiTKoKBziUIvi2pVGE0LXVuW4KzlF4j2RFolIUDu/aZ2QoS6QsCTtjyr0ZYbbD+MI+o90Z1XRKUY2IORNXNfV8xenREfPDQ/zhDVbzBav5KWm1IjcNOTZoTiTNXfMeZMlkdSSFlJWcIzFAo4lcp6Hbcb5ccv3wBtX+Pj/65jfxw298I1IGsg/t/RJcO+K1Pab+Pjpz/23dBhaoM8YYY4wxxhhjjDHGGPNX7eDggJ/5mZ85M+/hhx/mypUrL9AemTuNjSFzO7Hx+K3pp3/6p2+a9+53v/trBut6b3vb23jXu951pq3ukUce4dq1azZ2zB3HwnXGGGOMMcYYY4y54/SBlFt9B214ZG9vjze84Q08/vjjPPHEExwfHzOZTKjregjXee8JIdA0zRCESykTYwIcIm2AbbOtbmgaE8E5QVUAQbtwlqo7sz/bYcCe935owuv3oyhGOCesVg0pN4Bnf3/KfHHEH33qD7j33pfxwAMP4L1DpEAkg0oX0BI0b5+QzQ/bzXZy3kJ3pEwbvFHtzkd3DXL/b81tqE0hSODy7t1IdjSxBhQSiLr2d1nbn6TcrkABFVBBs5CzQnaIB2m3CnTBu+5cCm4INA5hS93o03KAUxyOLIqKkAXwQBASDc8cXudkcUSeKSoZ0Qy0+4G4Lm23Hk/mm6e/zdbtc+ffRboegSDa9dUJ2WVEHArkrLiutVDJxJx49uhpPvwf389vfvDXeG7xJDuvEMKoZJ4PSCeZIu/gQolTh6OgQCkUQnYUPuCz4CTjXBvgEzLBQXDCyDlcUSKjEXkygdkUt3eBan+f0d4+vgpIGJFUiKua1ckpq8NjmhuHpKMj9PAIXTXIqkbqCDEO4cBE21QXUbIKMWfqJqFZ0axk8WQVGpRFTKxE+OIzz3LXfa/iR978Fv7Wa/8nip0p2Qk4T+pDikAWkKwM9XX0TZHr5shhYV3fd5tNp8PvtsK4/XtgeNb3y23/dvv3N13zc/5s2n72fz22t7H5eXMfz1vmvHk552EfNgPg38i+GWOMMcYYY4wxxhhjjGnbfn7u537uzLwf/MEftDCB+brZGDK3ExuP33oODg545JFHzsy7cuUKb3rTm/5C63nHO97Bm9/85jPzfvZnf5a3ve1t/837aMw3k4XrjDHGGGOMMcYYc0faDhb0AYLtFrjLly/z4z/+43z+85/n6aefJoTAcrlktVoRQqAsS+q6RkTw3nfBu0CMCRGH9+5Mc93m1DfHifTNcH0QYx186H/XL7sZbuhb8/qgQwiB2EDW2LXTZVailFXg8uV9Dg4O+PCH3w9Evuu7vhtIXaIro+raxrUubCVDvVO7X/1rv59ng3V3frgOaTvdZAg5ue6NksnDUYpC6SruuvgSgpTklGiaGld0gbosSJdBVAXN7blFZWiu67+Tbh50YRXt90GGkF1/7kW0K7vLXRCyDV2JA3EOF4CkZMm4IEhQDo+f4/DkgPySiGrZriOtq+9EPC+Ka3cHep7StHOWbQdl376GgLZJUGKKiDpUPN4LdWp49uhpfvND7+P9H3kfx/kZLn3nlKJKeJ8IwTE6KknPKKfLOeSCSoXUKGUqCM5T+AInILTNjU4EXwQKUbz3lEXAjcbobAed7eH29ij2L1Lt7RNGE5wTyNDUK5bHxywPDqgPjogHR+jJHD1dok2EpmlftR3bGSGpkhSiQJMjMdOFBttn8rLO5BBYpoZnF3Ouz0956bffz5v/4U/yvX/jbxLGFfhA1oyobpzBLjEn68ZH59zGfba+ENuhuuE63CKQvT3/vN9+vb/fDmH3AepbbefrtRmQOy9st73u7QbV5zsuY4wxxhhjjDHGGGOMMcYYY8y3nne96103zTuvye5redOb3sT+/v6Z9rq3v/3tFq4zdxz7T9IaY4wxxhhjjDHmRaMPFKgqIYQh0Pa93/u9/NiP/RiqyvHxMU3TDGGE+XzOcrkkxkiMkZyVGCNN05x5TSkNU99k1066MeWN1zzsCzAE7Lz3Q6hue+rb64IvqaoJIVSURUURRkzGe4yqKZ//r3/GY5/5L8Smbddrw3oZ1dS22IkypMPObap7kYTpnpfcdIh925P3HnHC5cuXmc2miDiaOraNgxlyjG3L1mYgZriOWwGW/nVj3A3faR6WELl5f9bLddsQacNz0gYyQwggcHRyTNSmDeOts0bbu2K+yYSMbF6Ec69vBlUEweFw2kXBkuKzkJtI4QqC90AkphVPPfME7/n1d/EfPvAeFjLnwsv3GV0s2bl7h+nLdtl75SUufsdL2Pueuym/fcbyLuVotuRksuS0WrIKSzJLnNYUmiiBAkfhPb4a4Udj0rhCd8a46YTR/i47l/aZ7E0pRyVOwGkirxYsDw85fe5ZTp57jtPDQxbHx6wWpzQxUjc1q6ZpA3RkIkrUTMy5fU2ZqEpCWeXM8WrJaU4sRDmoFxzVS547OebeB+7nH/3Tf8LVv/U3qKY7SPDoRoDZS9sN6QDPOrTWh5RzzsPrZvMcrMNrt2pl224khZuDcrfSN472Ie7N+edt91YNd7cK7PW/2dyvzYa584J/2611/TJ902rbyrpuXT0vgGeMMcYYY4wxxhhjjDHGGGOM+dZwXvjtp37qp76hdb3lLW+5ad6jjz76Da3LmBeKheuMMcYYY4wxxhjzoqKqQwhuaDcS4XWvex1Xr14F4PDwkJQS8/mc1WqFiNA0DYvFgpzzEKjrQ3X9+82Q3c0Bu+15+abAw2aIbvP95tTvr3cF3heEUFEUI8bjKdPpRSbjff7sT5/k8c9dw1G2oTBtw1zi2oa0dcjuvDP0Yg/Y9dVy609t85V2LVLt/LIoufvulxBCIHd1YpoVzd0vstKWza2DcX0QbjMPc35jVGKot2MddGknaMOQ2gbwzvy+C0ZKdy0dzBcnLJoFGUX7y9anjXjxXsXbXXsp9OaAnQCyDlYC63FA22oIELRtmJOc0FSTtObJZ57gXe/9ZX7ro79O4+dM76ooLwXSJJJ2EnlHSZPMaj8h94+4/NdfzqW/fg/ld8yIr3CsLtYsdxasilNyWBFCpvCK8+CCx1UVfmeCv3CBcHGP6tJFqkt7jPZ2GU0nFKXHu0w9P2Z5dIPVwTOsDm8QTw5Jp8ek5SlptWifgzkTNRFRGjINmTonGs00qkSgyZlVysxTYoFykiNNWfDMYs6XbzzHfd/9nfyjf/pP+Y7v/35cWbBqVuTzgl5Zh9ZJoA2eDqd2I8Da2Q6g9c/sfvntVtHtdrc+VLcZjuvDdNth6X4d/TLe+3aXu9Be0zT/TeG1m0O7OhzT9nFv6v8MAob2vD50vhka3D5+Y4wxxhhjjDHGGGOMMcYYY8yL38HBwU3ht9e+9rXf8Pre/OY33zTvne985ze8PmNeCOFrL2KMMcYYY4wxxhhzezkvULGpDz00TTME2C5dusTf//t/n6985Ss8/fTTnJycICJcuHCB5XJJSonRaMRiMaeqKpwD7x0pSfeahkDFZoCun6fqUD3bMtRPm61Kzq1f22BcPwEIVTVisVjgXN++Byll6rphPMpcvHQ3Tz35VT75yc/y4APfTSgAUcQlNCfE9XEyQYbo1a1eX8Rk/aJIG2ST/jw7RGB//wKFd5CVnNr5fShOUyIn8NrP7ynb50+zDCG8zSGp0DaXSdcU1Qeu+uWkjf053wb7+jEXpQ1Leu9Zrdqx6Yo2eDcE7Lojs+apF9o6zKno8y8GOAWhHXM4SJrQEHn2xp/z797zS3zsE/+JWKy48PIZuUroOFFOPTLKZB9JZSBNPEf+mNqtuHjXLpceuMT8i89y8NiXSdcXIAUhTRipx7kKXAG+wI3HFJMp7sKUMNuhvLhPsTujGI8Q79GY0XrF6uAG8eSU1dEN4skJaT4nLZak1YrUNKSYSZpJZJIqTVaSZqJC0kydMgkhilCTOU0NMTiiCk8dPsf1xSkP/rXv4if/2f/BvQ88gBtVqHcUCMo6GOe6+0y78S1AyhnnHKenp+zs7OC9J6U0BMj695u2G+Q2m9z6wNzmb9rn+dk/YzbXu90QBxBjHEJ//Z8VAEVRPO/o+Xru3fPu8e1j3P5+OxjYH3d/nowxxhhjjDHGGGOMMcYYY4wx37r+8A//8KZ5r3vd677h9f3AD/zATfM++MEPfsPrM+aFYOE6Y4wxxhhjjDHGvGhsBww2gw3OOa5evcrrX/963vGOd1AUBZPJhPl8TtM0zGYzgKFpyHtPCJGUHDHGrfYxGUJ1fWihn9e3Ap0Xdtj8nfddKIcMyBDMc0XVteS1+1/XibIMNE1NUVTsTCou7Ds++YePM64+yI/8yP9MOZIu3Jdxrm3NUm07tURcF7J7vsa6zbDFnRrU0rOHsRGCky6MlnPGiUcRQiiYjMagjhgbQvKkmJCyC0mqkLPicttipyptIEoF0S64eKbFrgvP9Y15qkO4UVFUMurWuyUi5DYf1wZ8spBRnHdt01jh0MIzrxfEFMkIWTNkWQdn7tRL9SIgW7dMH6zT7n4WZBgbgjszNkUgkduArYPrh9f51+/8BT70//02firsvnSCm2aKHaWYOlyVkSJTTQpElLpYUEwKaq88k5+jCRP2H9zh7t1XsPj8MyyfXHJ8vEJiAEpKNyEUI8J0xni2R7M3IcymlLM9/KhCxJObSDOfk05OWZ0cEg+PWR0dEE9PSauaZrUi1g2kTIoZFUhAI5lI+z4DKUFMkIOj0cwyZVYiLFLi4OSEpxYLHvye7+Ef/5//jHsffDV4R0aom0jM7XMyOEfOSnAO0a1gm7SfJ5PJxvns7u0uVN2HyfqwnXOOuq7JOVMUxZmAdP9czjmfec5vBun6PxP6dfX332bgut/GZmvecrmkKIozwbb+u/71awXFe9vNe5t/7my3292qjW9zuz0L5xpjjDHGGGOMMcYYY4wxxhjzrWe7tQ7g6tWr3/D69vf3uXLlCteuXXvebRhzO7NwnTHGGGOMMcYYY+4454UBtgMLdV1TliXA0NYjIrzlLW/h4x//OI899tgQfCiKgqZpWK1WqOrQeue932icc2cCcpvhun6726GGzX1TTW3Qrass60MgirQlVl5QMqmJgCJOKYo2dFKUnrKuKHzFUUx4gU8++mk+8+kvMZte5of+9vcxnnjwitJ0W+3DZRkdOqBupQ9m3Lkhi1vFBgFUwYmSSUBAcyKIZzqd4pynrpdtGDHTBuhyH84B7cN1ma5hcN1IKPQthV1IRdv2ukwXWOla69hYbnOHpctcZWlb6XJOJFXEB1yAmsRzN57ldHFC2mnw0jYZDsfk7tzrdedzW5/Ter5AihmR7vnRDgVQEGkbFKODlc554slr/NL/8wt88rE/QGbK+HJgdndF4xZQZEIZKCpHUTqKAEVZIKWSfCYXDZTCQhbkVLP/bWO+7f7/jsW1G6yuHXPy5wldZmbOMysnlNNdJrOL5Iu7VDtjiskIdQIx0yyX1EdHNIfHrA4OiUcnxOMTUr0kNg2xrkkptc9H7W6TbqxHIKKkDP8/e+8eJMdV2Pt/zqN7ZvYtyVjGijFeGUJiY7BMICEPApZJiG8MIVpMbookXGKZvFOVKpk8qlLJdX5EoqgiN6lwZedeqJgQQLoQ4mu4RuskEEzAspaHZccGS/gtW5a0753p7vP4/dGPnZ2dlVZvrXQ+rtbM9PScc/r06dPr2f7s1yLwSmGsZzZNmfUOV68z3Zxhyhhe+/o38Cubb+Hlr/xBrHMgPF/80i6+vXcvQmlWD60ikrkUHSmdn7fGVGJaM0tJ05Q3vOENXHvttXmPS0mSJNRqNSCXVZVSOOdoNpuMjY1x//33I6Wkp6eHgYEBTFFmmXyXJAlzc3OkaUqtVuPnfu7nuPLKKxkdHeVb3/oWWutKzhsYGCCOY9I0BUBrjTFmgdyntWZycpKLL76YX/zFXySKokre66S8Zh1Ntpubm+PBBx9k//79C647WutqPiqlwbm5Oaanp0mSBKUUcRzz0z/907zmNa+phLx22S4QCAQCgUAgEAgEAoFAIBAIBAKBQCAQCFxY7N69e9G64eHhkyqzU64D2L9//0mXGwicKYJcFwgEAoFAIBAIBAKBQOC8JI5jhBCVRAF5Kl1fXx+/+Zu/yQc+8AGmp6dpNBoYY5iZmSGKokqisNYuECbK5KEy8ah9KaWIznSgdhGrU//qlPSc8wjh0BEgNFmWgdC0WgpnJUr2IOUAjVjx/DNHGD8kmJ2d5POf+wpXXX0Vl8QxQgmEKpOb5mUuIfLEtaMzn/S2EhHkEpPw7f3sq6cej5QKXH6cnPcMDq4iUhGzqSuSxsp+EkXiXyFMuVKgE5VI532+Humr1MHFLO5TL3yRdJaLRcg8JSsX8hyV6Cg8aZpwqHWIqZlJzOqMWNYRZfqdJ3AWmT+3WHwsinFSCpr5hoB3RbIdTJhxXnjxOf7xc5/gP77zVeoDiot+YBVxn8PrhLgOqi6JYpDKEtdqaC2REkSRbCgigVeGRBp8XTMjJc/bCdZevYZ4VT/Tj0/TOiiJbUyf7iXq6Uf39UNvLyqOcjsuc6Rzs2SzMyQT06QTE6Tj09i5WWwrwRuDdw7rHGmRnBgB1nuM96RAJiC1HmNzkTezjplWio00VigOTk4wkTa5asO13Pze9/KyK18JQiCjmNRkfO0/vs49//ceVBxz4NkDvPD8CwBoKQGH9PNnUuryefgnfuIn+MhHPsKrX/1qjDGVZFZK0e2S9J49e/jkJz+JlJLJyUkOHTpEq9WqPmOMoa+vj3Xr1qG1ZmBggGuuuYYrr7ySBx98kM9+9rNYa4miiEOHDnHgwAGstdU1obzOAJWoXV5zXv3qV/PWt76VgYGBYtzMy3Nlcl639DjvFw6qZ599lr/927/ls5/97AIJr9tn+vr6WL9+PVrrShofHh7mNa95Dc65ar3Wej4Fs6POsj3LTdYLBAKBQCAQCAQCgUAgEAgEAhceExMTi9YNDQ0tWrd//35GR0fZtWsXY2NjHDlyhImJCYaHhxkeHua2225j48aNp6RNS9UFVPXdcMMNbNq06by40X90dJQdO3ZUf5yt7NehoSE2btzIrbfeuqL2c2Jigs985jPs2LGD/fv3V4JGmYb0ute9jltvvfWkkpXa6+rkbI/fc4XR0dEF/VOOp0527tzJpz/9acbGxqpjVY6/m2++ednnWTmOR0dHq/4tj/nGjRu5+eabT8kxX4lcaHPa8XIm54zlnhejo6Ns3769as+5PC93S5U7FXJdJ0GuC6wkRLdfxAcCgbODEOIqYG/5eu/evVx11VVnsUWBQCAQCAQCgUAgcP5QfgfivWd2dpZPfepTfOITn8B7z9q1a4njmL6+PhqNBj09PdRqNWq1GnEcU6vVqNfrRFFEFEXEcVyJeFprlFKVqFA+V0pVr0tBT2uNEL4SKowxVRqUtZYsy3DeFG2cQ6sI5yRzMw4tVzEzIfneo4e5b9cDPPP0QaxtctkVQ/z2743wsze+Bl3zIDO8cygl8d4VAp/Ee1EkacmFMpCAPHXLA4qVKthVDpM34CUg8lQ46XHegTMoIRFEebKhS3jsqUfY/vH/wYFDT3PR5WuI6hG6IagPRIi6RcYOVRdENYGKBSqWSA1CC1QkEVGePicUaK1AFdKkdsWxn0+Yci4Xk7wHZxwmc3jrcvmqpfEOWq0Unwl8qrCzipkXWmQTgrf9+E28/qo30iP70L4GPj9OojM8LXDKWfK7UwcI0aZxtomcuVkHCNLUIoQnihRgsS7F4/jmM9/hzo//T5587nFqAxLZMPSviYj6JFHdI2ueWk+EikBp0LEkivOkNRkLVE1AJHCRgwikltSUplf2MCQG6Wv1Ig8p7NOO+HDMS8RaLmlcwkBtCOoxSipckqK8YPLgQeYmJrDT0yRTE5iZWUSaYLIEk2WkztCyljTfaWKTi3UJjsR7MimwSJLMkWQGLxRWaiaTFofmZpnBce1PvpF3/tdf4rLhK0HHeBxeCLwUTE5PMTE5Ra1W58tf/jJ/+f99kO8+9hgmy/DeUotrZNYgPGTW0Gg0SNOU17/+9Xz0ox/lqquuqhLoSrGuXXqemppiYmIC7z1f+9rX+MhHPsLDDz+MMflc29/fz9ve9jZ+8zd/k5e//OUI2SD0mgAAIABJREFUIVi9ejX1ep2pqSmmpqYA6O3t5f777+f222/n4YcfptVqVcOhrCuO4yoxzhjDVVddxde+9jX6+voWiGpCiCptrxQBu403IQRTU1PcfffdfOQjH+Gb3/zmfOppFxmuXq9z00038cd//Mf09vYSxzHWWtasWVNdl9rF7zIF71i/IwhyXSAQCAQCgUAgEAgEAoGVijGG733vewvWveIVr0DrkEkQCJws69evX5ROMz4+XglKo6OjbN26ldHR0WOWtWHDBnbs2HHCN9/fcccdbN++vasosBSbN29m69atXYWqblx33XXHVf7R2LJlC1u3bl3y/VWrVi2Sv9q/x73jjjvYunXrov7vxubNm9m+ffuJN/YMMDExwS233MLOnTuXtf3Q0BB33nknmzZtOuE6z8b4PZNjqFtd7ft3NDrH3/DwMPv27ate79y5k9tuu21Z42/Tpk3ceeedXesdGxvjlltuWVafHK2co3Ei/TA6OsoNN9xwXPUsl6GhIcbHx4+53fk2p53MeOzG2ZgzlnNe3HLLLV3F3U7OlXm5c5+WOz6Pxm233ca2bdsWrNu+fTubN28+qXIvRM6V/495+OGHufrqq9tXXe29f/iMNuIMEv4vMRAIBAKBQCAQCAQCgcAFR6PRYNOmTTz33HN86UtfYmJigjVr1jA3N4dSqqsYV0oJUkqMMUsm+5SJROV7nevzl/lnpMwlKWstUoJSHpzBWkG91oczMa2mp7/xEiaOOL7/vRf5xv1P8vwz0FN7Oc7PcfDAC+zcMcrFLx3iNddeTr0nQkiPcxaPQBbRWrnQUdbdKUqszD++tEgIWUIAEYCQuXBXptBFusZg/xADff08c9BhjSPK8+9w1oGxoEEVKWTtaXHztRR9WYgqpWpVNqtzbPiiAEGRLEjlYCGUQCmBNR6HwwmQkUBpwcTUOM1kjnqjtyjDFzUF4eV0cXJ/kEzgnMB7i5ACocAIg/CG6XSCRx/7T/7u89t54pnvE/dJeodioj5F1OshNuiGQscKXcslTqkFsiYhUqAERBIfKYT2CJULnypWCK1wSjFrLaLuGFw7yGDvAPGRGtFkDWM1NtYoPN4ZkrkZZg/nMp2dniWZmsI2W9hWgk1TbJZivCXD4xBYBM6D8J7MeVLvMFKQWTASMiFoOk/mDIk3HJmbJVGSH3/zW/iZd76ddVcM56Zg0UfegxSCwYEBenv6iLTm5pF3MdQ/wNYP/iUPPPANjPW00oRavU6WpSilSNMU7z27d+/mT//0T/nc5z5XpcCVj2XKqBCCwcFBBgcHkVKydu1a+vv7+au/+it2795No9Hg7W9/O7/xG7/BNddcU/0ywlqLc46BgQEGBwex1iKE4L/8l//C3Nwc73//+0mSBGBBXVmWVSK1tZbx8XHuvvtu3vGOd9BoNKq0U6BKzjvWmHv88cf55Cc/yTe/+c2264ioxLj25NT169fzR3/0R1x55ZVVCivQNaGu8xoWCAQCgUAgEAgEAoFAIBA4Mbz3WBe+YwkcH0qK8/aPWu3fv5+RkZHjkjbGxsa47rrruO+++44rYeiOO+7gtttuW5bM0O2zn/nMZ467zrPJ8QolkO/ngw8+yJ49e05jy06cbdu2cdtttx3XZyYmJhgZGWHjxo3s2LHjhAWdbpzJ8Xs6OZFzYjmMjIwc1/jbuXMnY2Nj7NmzZ8FxuvXWW7njjjtOupxjcbr64XRxvs5pp/I4nGtzxkqel0/H+bF+/fozUk8gcLoIcl0gEAgEAoFAIBAIBAKBCwohBEop+vr6eNe73sV3vvMdnnjiCfr7+5FSkiRJlUhXJv1YazHGVM9L4a4UG0phopQ72lOTyufl+6VQl8sRAik9IAGDUgJjUyLVwKaKul5Nvb/G449Ns2f3PvZ+61mee3qWevwDCDSCGSwJ3/7mPj71j/ew5qJ3s/7K1QiZ/0JWSQHCFdKXXyD7XUh4wDtHJDVeCJx1SAm1uMbatZfw1AtPkWWGyBiEkSgrUci8/3wuy/lKsiv0Nu8RfmEi4rx8V6ZKzcsrQgi8yNe7slUScLn0mG8DSHDYPEdQS1wkmJyZoJU0oeHxeIR3eWRekOtOO0udL759tQDRfiwESAHGgNSCxLVQHmbTCb7xza+y87Of4fsTjzKwqo/eVTV0j6fWr5B1i2oo4oYuhDmJ0ApigagpfARWgYtARqCURClBpCWRKhI0ZYwUEV7FEMfIWg+NxgA9Q3WYVkw1m8RzFtdMyWanmDp0kFrqYS4hm57BJS2syTDGkFmLA5wA6wUOifV5Wp0THoOgZR0ZgpaxJM7j4ohmK+PF6SlEo8FP3XA9b/3FX2Dtyy7DS4kXElHOSN5hi3kxKkQzIeBn3vpWZqam2LNnN0nmUErRSpN8zoQqFc57z0MPPcQ//dM/cdNNNy0Q3EoZulwH+TnW09PDxo0bmZyc5IknnmDdunW8+93v5pprrqkS4UpxzTm3KG3Oe8/q1auJoqh6L8sy4jgmyzKiKCJJEqSUxHHMgQMHuP3227n++uup1WqLhLayvlKCK9eVbXnxxRf5yle+wnPPPce1117L1NQUTzzxBMaY6jpkrV2wfwMDA5VMVz4uSNBs25/O1LpuKXYX4jUjEAgEAoFAIBAIBAKBQOB4sM5zeDY9280IrDDW9MZodf5991aKISfCxMQE1113Hfv27Vt2gt2tt956QnV11rlnz55zTkbppGzrctLCOhkbG+PWW289J5KS2jlewaqT0dFRrrjiCvbs2XPCqYftnOnxu9I40aSz/fv3c8stt7Bjxw4AbrjhhmUlAnYrZ2RkhF27dh33Z88VVq9efdT3L6Q57UQ41+YMgOuvv/6EzouzPS93E96ONT5PlMOHD5+WcgOB04E89iaBQCAQCAQCgUAgEAgEAucP3nuMMWitWbduHW95y1toNBocOnSIJEkwJiNJmrRaTZIkIcty0cQYQ5ZlpGlarXPOYW25eIxxlVxXihnzSy5pOedxRXpaLtlJhFBIqVAqJlZrUKwhFuuwyRoef8Rw92e/zVf/ZT/PP+No1NYh/BDe9KJEP4pBslaDB/7jMf7tX8aYmkxyG8YLvJMIIXG+lETaotfK5QJAUEgjVWKgBAFKaQYHBtFKYTKL8BIlFZCn1znj8M4XS3k8Bd5RpdV1pS25rr3fRXu/y3xDLxzOuzytDp9LW1KA9AgFQnhaSZM0S4rMOocXhTDo51PyzkcWnj/dlzPRhm5tQvi2c8jlS3FARCFeKiXwGBCOhBm+8K+f51Of/wTfP/Bd1ry0j4E1daJeT2NAImsGVXPomkDHAlWTyFghYoGIBMRAzeNrHhc7fOyRkUBHmrqu0ZANGvRSp5dY9BCrBkLXSJUnqXvsKkW6GqZ7mxxqvcjzE88w2xony2ZIZiZoTo5jW3PYNCHLUow1WMB6MNZjbTlvSRJvSYUgQ5B5yIAUaDnPVJpyYHoS39Pg+rffxI3vGuHiy16GVxqkxFOmanpkIcBVCY6AMwYBXHTRGhC0SWwCHcWVEAYQxzFPPfUUf/Inf8LHP/7xSjIrhbJ2ybldQIvjmP7+frTW1Go1enp6FiSMlse4XSorJbZ2Sa23t5d3vOMdXHrppRhjqNVqi2Q+7z1PP/00d911F0mSVOKermTC+Xrbl5Lvf//73HvvvWRZxi//8i/zkz/5k1VSnnOOLMsQQhBFUdWudumuXaAr61tKljtWW87G+RcIBAKBQCAQCAQCgUAgEAgEVhadYtKmTZvYvn07u3btYteuXWzfvp2NGzcetYwbbrhh2fV1yhFDQ0NVnfv27VvwfeaePXvYunVr13JGRkaOmayzevVqhoaGFixL0bld57JmzZpl72PJ9ddfv0Cs27JlC3v27GF8fJx9+/axZ88etmzZsmS77rjjjnMqPWhkZKSrJDM0NMTWrVurffPes2/fPnbs2MGmTZsWbV/KRCcit3Ryusfv2R5DJ8MNN9ywoI83b968aPxt3bp1SWGpTJ4bGRlZINa1lzM+Pn7MckZHR0/JsT5bHEukupDmtOPlXJwzOs+LlTQvn4iofaKcS9eeQOBYhOS6QCAQCAQCgUAgEAgEAhccSuUCVb1e56abbuKxxx7jwQcfZG5urkiTKwWIqEqvU0pVaXVSyirFTgiJtQ4p80QgKeeljvYEJJA45yuJxHtwFvLMK4lAI4UnkpcQRzVmWprdXz/A/7tnD88/20RwMY24gfcarSOsNVhriPQQ9fhijhx8jn/ZtYfXXvsDXPe6HwIvcMLjba5k5e3x5CLQ+ZF61pkCtfSGIJFF6ptASvAIlJD09vSAB2vsvPTowRcSpPQyP1YeZCHX5TmAALl4p+Sx+rKzfa4QikQlajnr8D4fT0iBkEU4nczlulbaysW6cr/PgNeyHHnmZFKtzqacc6y62xPLFqQTFo9CimI85ee0cG7+mAgFeIT0pC5lzszwT//v03zhvs/TMlP0vqRGPKDRPQLdUMiaI+5TiJonqiu88OhYI7UADSIGEXnQDrRHRBIVebQS1ISkLmPqoo6ihvYNItlDLPqIRA8qquG1pGUN3jsyLO7ZGY7MvkBtIiFqZkRzGaqV4Y3DZIbM5WJdPlt4nPfkgWcCJCTkknDmPBZBMzOkUpEAB8bH0f39vG3TJjb+/E30rV6F0ApbzkFSgvQgRDEX5v3oIe9Tmz/Ozs6CpxCYLSKKMZkhVoo0TSvBTAjBo48+yp/92Z8xNzfHb/3WbyGlrKQzpVTX9LlSlC7TRduPdTcBzTlXXTeyLAPg0ksv5QMf+ACbN2/mwIEDVZpeKfeVIl+z2eRv/uZv+LVf+zVqtRre+wVyXbvw3T7GyvVJkvDDP/zDXHvttTz88MOVyGetrcoo91cIUYmEZXtLOvep/Rxol+U6hbpun21/PyTbBQKBQCAQCAQCgUAgEAgEAoFONm7cyI4dO7oKBZs3b64SqLrJDfv372fbtm1s2bLlmPWU5Q8PD3PbbbexefPmJbfdsGEDGzZsYNOmTVx33XULbvbfv38/H/zgB5cUVYCuaVk7d+5kZGRkwbqlhI6TpeyroaGhRalLZT9s2LCBrVu3MjIyws6dOxeVcccddyyrX08327Zt69q+rVu3dm3f8PAww8PDbNq0ibGxMW655ZYFY2diYoKRkRH27dt3Stp3usbv2R5DJ8r+/fsrEedY42/Lli1Ljr+RkZEF5dx3332L0tXK83TLli1LppRt3779tKZ9bdy48aR+hzk6OtpVstyyZcsx5cwLaU47Hs7FOeN4zouVMC+fKk5X+l0gcKYIyXWBQCAQCAQCgUAgEAgELjjSNAVy+WDdunX87u/+LuvXr+fw4cO0Wi3SNC0S6vKlTKuz1nZZXPU8T0iaT64r1+evbSU95DKCLIKuPFKqQuSL6Il6+f7jhn/+Pw/zfz83xjPfz6jpdShWo+UAUdTAGFt8qa/A1/C2j0hezLNPT/H1r+/lyOEEhECpXKKTIk9qW8lBQ0dLTBJCzEdfHbWQ4sHlz6VU9PcPEcd54pTJMkya4ey8bNOt7qoNZXnzT/L3ys8UyWZ5SOFCQUtUcmMp8+RSkZTFcwFSC4QUTE1PMTM3g/VFElXHTi0n4e1ElhM5Lqe6/LPNUu30PpchHQbvLX5Bep3LkwfxGJew47Of4p/+7/9hYuZF6gOKNS8dIB6MMDrD16A+1MBGHqfyRdcUSkmUlmgtUVqgtEdqh9KOKLLUIktNe2KliKUiIqLm6zTooSH6iKjjvcQKQaosM7LJpJplqjaDHtTIHjg8/SKTM4dJ0lm8y7A2xdoM5y3WmzxR0XtsIaB553DW0/Ke1DsSZ5lJEjIPzSzjwOFD1AcH2fTLv8xbf/5G+lYPIiKFg9w6liJPXSwebR6wSSnY0Sa69ff2VvPpjTf+PGvWrMFbW4nNxhiklBhjUEpx4MAB/uIv/oIPfvCDHD58GK31ovQ2oEoUVUotkNlKcbpdpmxPfCvfB9Ba45xjcnKStWvX8qu/+quVfF3Wp7Umy7Jq2/HxcT7xiU/w4osvLhDrrLWVWNfePoAjR47wL//yL8zOznLTTTdx0UUXcfjw4UoOLPuibF95rencl24Jed3Gd+e5WYqH7al/3c7hlXIuBwKBQCAQCAQCgUAgEAgEAoEzw5YtW9i1a9dRU5CGh4fZs2fPksLGBz/4wWXVNTw8zNatW9m3b99RJZTOz+zYsWPR+m3btq2IdJ1OgaMbO3bs6LrNpz/96dPVrGUzNja2KCEOctFnOYLJhg0b2LNnzyJJqRTeTpYzOX5XIvfdd9+yxl+nNAcLk7KW2qad7du3d93mM5/5zDJbe+Yppa1OSsHqWFyIc9qxONfnDFj583LJ0ea9k+HIkSOnpdxA4HQQ5LpAIBAIBAKBQCAQCJx1litcdNtmpYka5yJH69eVi+9Y5hFCEMdxkVIn8d4zNDTEz/7sz9LX18fc3BytVotWq0WS5Euz2aTZbJIkCcaYjiVrE+gc3s/LdaUo0f46TVOMMViTSxWQpyvFcUwcxTzwjef4+499jp2fHuXQwZTVQ5dj0zqSXpyVmMyitUZI0CpCEBPrfhrxag4+P8m9X9zFd77zENZ4rBWoNikkt7/au8UXMlCXLjvu5eQKyMcc8wttY7M6hm3HcvHGbfZgmdC3cAjkEl4uPQkhiLSmVqsVxc0nVuXHKSNNs1z2OUpqUynZLWhne/pU11HYti8+F3vKJU/3Ig8JkwohBFMzU8w15/K2lMl6vuy3jrZ09Omx+35pliXIdV3aq+gcc6eWEx1xx6IcC+0i0oKEruq9fDyVEqUnlyq9c7x4+EU+8cm7+D+f20FUk/QN9fGSS1YTNzReeXoGeukZqJH6FF3T1HtrRLWYuBajI0kUKaJIEmuJjiRaQxRDHAtqkSCOJDUtiaQmEhGxrFGTDWLqxNRQxHigZQ0JhlQb0shSH6gzdPEgUV3hMKRpk7m5WVqtOYT0VVqdcTZPdLQOZxxZIZ8KrZiem8MKEEqRWcuBFw4S1er8wsgIG2/6eXoueglOCqz3+LZkRwc4kS/lOV9ijEHHEQDj4+NI4MorX8FHP/pRLrvsMigEMmMM/f39VZpcmWD3wgsv8NGPfpTHH38cY0wll5XCGcxLdOX1rT21rpyv26XabpKaLSS/qakp4jjmfe97H+vWrSNJkqqcVqtFrVYjTVO01kxPT/Pnf/7nPPjgg4U0aKtU1Pl00/m0Oeccjz76KLt27WJycpI4jomiqHq/TE4t21W2qV0i7DZul7q2LzfVrvO9oxF+PgsEAoFAIBAIBAKBQCAQCAQuPDZt2rQsgaRkKcFmYmKia2JVt8+fSOLPxo0bu9Y7Ojp63GWdSbZs2XJMgaPk1ltvXbSuXW46W9xyyy2L1m3fvv2YiV6d7Nq1a1Ff7Ny586SO4ZkevyuNzZs3H1OIK+k2/ko2bdq07OP9h3/4h4vWncvC2MjIyKL2lSl9y+FCm9OWw7k8Z8DKnZdPl/DWTdA7l8/ZQKCTINcFAoFAIBAIBAKBQCAQOA9ZWqcpb/bv6empbvpfvXoNP/Mzb+NHf/SNTE/NMTOdkaUKk0UkLYkgRoqYLDMYk2JNE2NmMGYa52aBOfBN8C2sSbEmwzuDK5LrBBq8Aq8wmUOgsUYj/UsYaLycXrmOpx6+mJ3/K+av/vQw39t9NQPqbUT21aSza8D2I3wPSvShGQTTg7R9CNtAugbS9yH9AL3Ry3nye5qP3/mv7P7G43gHzns8EnyULwu+Dir7RRXtO9l+tx3LcehOS1pPpljsgu2889WSGzp5cpj3hZmGzMU1J1BOIbwGp0GAExaPoaZqrFs1zKC6hGzGI4zCZRZnM6JYENUkHod3Am8jfFZDmjrK1FAmIrKKupcIHB6L8BaJy0PqnEdYEDZvg3QSjSBCoBBEgMKivCm2FzgjcF4hkDgsTiaomkNGloOHXyA1GRZASKQUeF/2Szc8QpyMXpan6wlKGbFYytc4BG4ZRS8jUXA5+Dz8T+QeW5H8d/xlVyOljAcUFIVaEAYvDE44vMhlSedzfa4SLIVHSJBIcAJrNI6YTMQYFZNqwRSTjPsDfHTHVv7p3z+GXDuBuGiGoSsimr2zJH1NZH+G6svQDUO916HjFB0lxHGKilqIWgJxArFFaFBCUpc99Mh+GvQTiX4iBlB+NdJdhOal1LmMmr+E2A+hqSGFw4lpWvJZjqj/5MXaQxzp38veKx7ghWufxvxYk8f7v8dzvQc5EB0hG4yYNHN4lyFcilSGppsj0Y5UexIHzcwxNZcR9Q9xJMk4kGU8OnEE/9KLedfv/jYbb34XqrcHLwRC6nxIOAveIQDVtmgEinxGEuSJcEIIMpOh6zVqvT0cOnSQKFK86cffiBa5NNZoNGi1WlV6W5naVgpvX/3qVyvhrpTRStolsnYBDRam13XKZuVnrbWV0JckCVmWEccxv/ALv4BSip6enkrGS9MU7/2CVLqhoSGyLEMpxdzcHJCLckIIjDHVNWlycpLdu3fzxBNPcMUVV/Cyl72skv/aRb92ea2U7cp9ad/fXOReuN/tgmGZBOi9J0mSapv2/q3OobZkv/Z1QaYLBAKBQCAQCAQCgUAgEAgEAt1EmGPRLXEJcnnidHLzzTcvWncuJQh1o1ubl6JbqtrZFhxGR0cZGxtbsG7jxo3LTujqpNvY6ZZwtVxW0vg9GxxNmOvkXe961ykpZ6l0wLM9lruxbdu2rqLWjh07TlsiWDsrcU47Fuf6nAErf14+1Zxv+xO48AhyXSAQCAQCgUAgEAgEVhxL3fQeOH7ab4LvvFH/fO7TThFACEFPTw9vfvObufLKK2m1mrRaTdK0RZI0qxQ77z0ms1jrcRacFTgL1oA1AmPAO4FAYoxFKfDe0GzNImQhT1iNSWN66i9BiyEOHzTc/+WEv9v+Df7+Y3dTr/XS29tHHNWp13sQQhJFNfKvcRRCSEDmjyLXVAQKKTRx1IdJY8YefJRvjX2XmekMZ2SucwlZCELzktBC2kWjjqXdnOr2fmk8leUAx/21U1k383WKBeWWm/lFn/Nl0wWFUCaq99odrPKToq1ptVpMb28PJsuwJluQXmeNrVLoyja5YvFYXJFSmAe0dYolbeJJkSJXqjztAo+QEissXjoQuaTnpUNIj8dhvUFHiqTVpNmcK0p1i1K2Frhmbfu7pPsmjr6Ijm2EEMW69uMtKj+t2Mtqj5daFv+3/JS5al3hWM6LfouXpUoqtEtktVrML4VOKNueiULjm29Ivm5B0iEeYzMS16LlmkzOjPM3//Ov2P3NbyCUZWioj1pfhIwFUkMUK2p1RRQLlBKoKMrT6uIIFWuEkkitQEmEFggt0FoRRQqtNZGOiUQdLRpEqk6kGmjZQEqNkBKEx5NhaJGVi03ITIvEJLRcRktk9K5dzSWveDkTvonriZnJEpySZEKQOs90M8ErTSvNaGYGqyDD4ZVkfHqaucwwOTND39AQ//U97+H6t/0sshbjy7lGdJHVRNm3C9eXr621VULb7OwskMtnH/rQh3jnO9+J1ppWq4VzjiiK8jnZGGq1GlJKZmdn+e///b+zbds2pqen8yMm50/4Y4lfnUmFVfuKRyklaZqilGJwcJAjR44QRRHbtm3jpptuYmZmBiEEjUajSqUrxTTnHLt37yZNU5Ikoaenp1pfpvAZY3DO8cADD3DnnXeyatUq3vve9/L6179+wTV6Odfq9vVRlCcClhJi+/6VAl2r1WLv3r3cfffdfP3rX+eLX/wi9957L6Ojozz66KNkWbZIzDvazwlHExUDgUAgEAgEAoFAIBAIBAKBQKBkeHi4a1LT2NjYab1Jv1vq0bmQ7LYUw8PDy04NK7fvxtkUH7pJLMeTFNfJhg0bFh3HsbGxRTLO6eRsjd8zzfGOv6Ghoa5C2dDQ0HEnjnUby+fauTo2NtZ1fG/ZsuW49/dEWWlz2nI41+eM82FeDgQCCwlyXSAQCAQCgUAgEAgEzjoLRJPjvAk73LjdneNJjzm/U2ZKlWbxGGlPAQKo1+u87nWv46ff/CYaPTEzsxNMTY3jnMXajGazSauVkGUWkzmyzGMyT5YKslTlSXepwjuJc+CsI01SnLcI4UnTBO8ilOxHcRHjBxV7xyb533/7EH/9of/H4480GWj8EFrX0aqBFBFSxOAlQqjc8fIC70WRfaaRQiNlhJR5sp7wPQz0XI5wq/ni3Q+w+z/+E28k3glclfDmQTiqNDhRKF9HSzmrhKo8HW5+6Uyqkye85MloLl9wiKrMohnlsZSyeCryJY99w5eyoBB5aF0XYaxU4xweKxwo6Ovt5aUvvYTBwQEAjDVYawvhxWKtwTmL9xaHwZLhyLAYnLA44Qs5S+J93kZfVOgL8cqX7WpXvwT4POcOpEdqAdrhhAHhkNqDzBP2hPQ4YUlMQupSjHcIKREyT9ZrlxwX9MMS4lxed/mfW7BUEpwoM946TifRMR6Ex8v2+tvKKtLfFrRtgbRJ9wZ2tf06lnJg+M4lH5ti0dJFwmtLwRMohFcIL4tFIHwxe5TNdaI4TQRJkgKgtSTJEqQSOJHx1HP7+IedH+ffH/hXZrMJVl/Sz8BLemn0aOKGoN6r6B2I0HWBjIHIIyOBjCUyjkArvFaIWKNihYokOhZEsSSOFDWtiWWdGv3U6CcW/cSqn1g1UDICIfDCYESC8bNkfhbjmxifYpwls4amTZg0TZp9kr4fvJTsJQ0O64QjNGkpQVNAS2rmkMxaT+LBasmcz0iUY7LVYjpLmWg1aawa5D2//j423ngjSImXEifbx1j+3OFwVZrl0pTX81JeTJKEF154gTRN+Yd/+Ad++7d/m8HBwSqlrUy7S5Kk+kyz2eSv//qv2bZtG+Pj45UQ1plUd7w/O5R1RlGELVJJvfdkWX59iOO4EteSJKnS6MpEvCRJ+PM//3O+/OUvU6vVqs+2y3Jaa8bHx9m7dy+zs7MUG67KAAAgAElEQVSsX7+e9evXV9erzvYfz7W+FPhKmU8IQZqmpGnK/fffz91338373vc+3vOe9/BTP/VTvPOd7+Smm25iZGSEX/3VX+ULX/gC3/72t2m1WpUIeX7//BAIBAKBQCAQCAQCgUAgEAgEzhRLJYZ1S4E6VXQTf85lEWWpBK+j0W0fjxw5ciqac9xMTEwsElg2bNhwXGJKN7qloJ3p1LizMX7PNCcy/lavXr1o3dES7ZbiXBrH3ZiYmOD6669ftH7Dhg0nJYIdLyttTjsWK2HOWMnzcrfzM0h+gQDos92AQCAQCAQCgUAgEAgEjkW4efv4ON7+KoWEC62f2xOJ8j6Avr4efvInf4LHHnuYr399N41GnWZrFqWhIRtkmUQrkftdQiKFBhxCWKTIxSQhDVKroj8FUVxDUEOLAWp6FS4bYu9Dh9jz9e/znbEDTB6JidUlRGKQWtyPM5pS+bE2l368s0VdFnzb30ryGtAIEeWik+sBb5G+yfMHJnno20/xqh++gksv60eqUm4qxbj5hDchWFjuknhy3cgt8X57dNrxjqdSpuuMmyuf55KkL0S7yrcra/R0JKctsT9FclaZfialYmBggCiOSdMWIlNEXuZCVZEs573DubxE7z3O57aVFOCEAzR4nytb3pdZZ/NemBSF3AfOleIROJG32EoDTuCFR+hiX6RHawF1QWvaMteaJsmalVuY1wMgi+S+Mj+uveerlhTrjn1Myj7sDDYsz5H8ePi27Rc+LiyLar+7IgTL1Zu6bte1YFEIduU4LR+7jcn2Uttkv7bNquDCwukr+7Fer+GBzFmQlqZt8r0nH+Vzd3+KB751P/GAYGCwn97VMdQypDaoGqiaQtccvubRkUdpmYuVkcQrCZEHBUQCoQQqksRaE0WaSGmUVETUiX0/seghoo+IXiR5uqXF4HyTjGkSP03KHJlPMCRk3mC9w9gEvCSzU6waGmTo6ss4OPc0rpUhfIbK8iRMdJ3EZDgEiTFMJ3OoKGZWeCaaTdasu5R3/cqv8PqffhPUYrzSef/IRfmS8z5klyPZfv0xxhDHMZCnxCmliKKIRqOBc47bb7+der3O3/3d33Hw4EGstdTrdYwxCCGI45i5uTmOHDnCnXfeybp163j/+9+Pc25Bgl173cuV9KWUZFkGgNYaYwxKFWmCUcQrX/lKBgcHq188SSnRWlfSnDGGLMv42te+xrXXXssll1xSpe9Za6vEzL1793LXXXexatUqfumXfolrrrlmUaLeUml8S+1Hu4QnpaxeG2O45557+MAHPsDBgwerdZdffjlXXnkl3/ve93jqqad46KGHeO9738sVV1zBH/zBH/D2t7+dvr6+BWV21hX+8EEgEAgEAoFAIBAIBAKBCwUlBWt647PdjMAKQ8nw/Vk7ZZpVp4y0e/fuE5IXlsNKEwvWr19/tptwUnQTzU5Fole3Ms601HY2xu+Z5lSNv5U+jrsxMjKyaO4YGhrivvvuO6PtWGlz2rFYCXPG+TieT5ZuomA3oTAQOFcJcl0gEAgEAoFAIBAIBFYcx5LALuQbujv75lh9Vb7ffiN8exrOyu3Lo4tiZZJQu3BR7u/LXnYZb7n+LTzzzLO88MILxfYQRQpjBEkGQoFSAqkUQiiU1FhlkELhvGR2tkVvTz9S9mDSOj21NTSnYp59scWT+55ibPfTfPfhcVw2RKwvQvl+tKyTJR4lNd6DFBpjLUrXsDZBygjrCnWq8oA8+AiBAeFRUuId1GJDmqbc/c9fo28g5p3v+nFesrYXhCFPrHNFETIXzXCF/NI95S/Ht72/VP+ehKDpS+GPtja0S3Xz8lj+Vv7M4RHeF3sy3/b5od9piVUFAB4hJPV6A60VaeKQQud9Yh3OAMYhtES3CX++SEnzeKx3SK8QSLwvNC5f6X+0P/PeF2KdwAuZy44yl8G8y1PfpJA44XHeIKVCxRovM1LTIjNJ5YgJIRBe4AqZr30vy/M6P5fL3W6XKduPcRdRshxixT/zaWLtx+VYiC5Pi9i89qpE1UDahc/yY9V81LUGweK2dI7T8rHLmF20G8V54YvUv6JfRbvric9TDC1IpXA+QyjPdx7Zw85//ke++8RedJ9l6KV9RL0gGhkidugeSdQDMgIRO2TNobRHRQKhJSIS+EggYolQHrRAalFIdRGx1GihUV5Ro4e6HyTyDbRoIKkhkFgshgTDDKmfJvVTZDQxPiNxGYk1WOewNgWpmfGWDMmaK1bTP54wPXsQnyY0oh5oObwVpFbgsMyZDF+PODw7y8HE8gNXXM4v/bf/xmvf8AaIY3wc5XmWvkiURMwnAwrB0kJucSiK4xxFEQBK5YJymbIG+bwdRREf+MAHeOaZZ/jEJz5RJdVprXHOMTc3RxzHWGtpNpvcf//9vOUtb2H9+vUnfU1zzhHHMUopjDFVu6y1KKX4/d//fR544AF27dpVpcKVSXFRFFVy3V133cWrXvUq3vOe9yyQ08ryjDFMTU2xdu1ahoaG0FpXfQQL5bX2dcdqe9mW8nMTExN86lOf4i/+4i94/vnnsdYipeTqq6/m937v93jTm97E3//933P77bdjjGF2dpaHH36Yv/zLvyTLMm688UYuuuiiRXJ+u7C/cn+GCAQCgUAgEAgEAoFAIBBYPkIItArfgwQCJ8sNN9ywSHDoTC26kBkeHj7bTTgpPv3pTy9ad8MNN5x0uUNDQwwPDy9I6Nq/fz8TExNnVOg438fvqRp/K30cd7Jt27auYtaOHTuCUHSSrIQ5YyWP5zA+A4HuLOdPkgcCgUAgEAgEAoFAIHDGKW8eb1+6vdf+uv39AAvEhG7LQgHHVzf2n+/91y4kdCYWKaWo1Wr8yOt+hDe/+S045zEmI8sSZmdnaLXmyLIWphCdMtMqlpTMpBiXYjONloPYrJ+IS5idGOChsQnu/9dn+F8f/Sqf+/Q3+c9vzSLMZfTV1hOJi3AmxhqHyCPLEOTSnpQKWTyKwvARQhaLyrdDg4+KRYOvoWU/Wgxy4JkpvviF+/nW2H5acxbvZbXgJfhCWvNHk+rak+5oe1xI4ZvhvTjK49GWol2UbVPFIuaj3nxREQ6Bz+UdL8AJRNs+5Y/l9vnny2PtnMc7Bx6UUMRRzEDfAJHSWGOwxuGMxzuBRKPQCFeU6QTegfPt+wve5Vbd/FjyOG/zc0l4rLdYb/HYwrzz83KgACVkcaxzRbCwlPLz1DmEhMmpCcYnjuC8w3mHMTZPu4KFDXJ+QV9V82NbX5SHU1R9Kxc+UvZf8drJ4jPt23f29/xjPi4lwsu241Ju0z6MXC5VeosoxtnCR19Il+V2CxdXDIcFjwgcsssji5dyd0Se6ugLBbF87vDz7wmHw+C8wQmHw5K6Folv8sB37ueuz/xv9u77JvGAZ9VLe4gHBVGfRzQcuheiHoGokafXxYIoEsjIoyJQMYjIQ+QRkUDHMl+iiEjHxKpGLBrURC91MUBDDNIjB6iLXiJqKAQeS0aTxE/TYpaEOVJapL5F4lqktklqWiSmRZplGGPJpGHSzjAbJ/Revgq/WjMTtZh2c7RsRuYczgsyJ2hax6HpWQ7OTDN89dX8ym/8Bq/9sR+FWg0faawvz8pCHl3Q0X5hxy9BmchWJrkBCwToMp1Oa82NN97I8PBwdd0qpbFSYivlui996Ut86EMf4rHHHsNau+T1rfPniG6UclqapgvEsVLW7uvr4+1vfzuXX3453vtqX6IowlpLFEVIKZmbm6PZbFaCXtl2gKeffpp/+7d/QwjB1Vdfzdq1axdcqzsFu3J9+3502ychBMaYat0zzzzDHXfcwe23385zzz2HUgqlFK9//ev5kz/5E9797nezbt063vjGN3LNNddUsiPAk08+ycc+9jEeeeSRal3nzxbn+88RgUAgEAgEAoFAIBAIBAKBQODUs2HDhkXr2uWHC51uqVQriW7H8lTtUzfB5cEHHzwlZS+X8338nqpjdT4JPWNjY9x2222L1m/ZsuWUJKxd6KyEOWOlz8uddEudOxWcb/0UOL8JyXWBQCAQCAQCgUAgEFiRdLtxu1MWC4kpR6dM2+mU60pR4HylvPG/234aY1BKsWrVGn7sx97I3r0Ps3fvXmZn5/Jks0yiUkkUaYw2KGuQwiKlQUoLwtGIh8D005yJeHbfJN999Hn+8+HnGD/k8NkAkboY6XpQ6iKc6SHLMnQkkMrjfAr0IqXGOV/IHHmbjAWBLKSs8u8lebzXgC4kJBDCgo+J9RC1+CIe/+5BvvTFB7n88rWsf+XFSBWBKOQHUZaZC26LD/vR0qaONkY6E86WM55K2S8X/USRHLYgpQ8Q2Pz9og8kMlei/PxnvBcLaszTxvL3pJDFnvnKcZNCYI3BWYcSCrzEphaXeVSk8AZc5pGF7ye9KMQxEN5VbSzUuGKMFbUU9SGKoMHCMMolueK8M7nQJrwEJ1F4hKrhJFgpqNUUs1NzTExNVm1XokhzE+C9q/a3c2qUhZSZp875ynOiaIsQzPc1Zf9RCJdU/ZzvXbldmYjXloZXbdeRIDh/6Fiwsjoy89l+84+i43X5EV/Ifx6EhAX70l5ih8PXXmWX1yLXwap/8/1zeARCShDgvMc6gxcWiQTtaCYz/Ps3/o3P3/tZnj3yfepDkp6LNHEfiHoGDYGsge5RyFghNOi6QmuNiiwoiYzyNDtfpNepCJTOBbJYxsSqTkSNyNep+R5i2aDuB6nRQAiFBwwGQ0rqp0ncNImfxjCH8U2MT8lcRmozMpNhnQMDxmZYI7DOMplN0lCKnh8Y4MiRg7hmSs1Dj4xIEkPiHVNJxsG5Wa55w49w8+bfYP2rXoVXEi8V3gus9wgli16czwwUgrbxcGzhylqLEKKSudqTRdtltTe96U18+MMf5g//8A955JFHiKKIVquF975KsVNKMTExwY4dO5iamuIP/uAP+JEf+ZGTkr9KAbCd8rWUkpGRER588EHuuuuuSmaD+dS7LMtotVp861vfYv/+/Vx55ZXV/gE89thjfOxjH+Oyyy7j5ptv5pWvfOWCurql0x5rXXuSXHndGxsb48Mf/jDj4+OVkKi15v3vfz833ngjtVoN7z3XXXcdv/7rv87v/M7vVPufJAn79+/nK1/5Cq94xSt46Utfuii9rrPuQCAQCAQCgUAgEAgEAoFAIBA4Ft1uvj+ZG/1HR0cZGxtj9+7dVSpRWd7ExMQJl3u2WOlSUrc+P1WpT9365kwf41M9fs81TtX4O18km4mJCa6//vpF6zds2MDWrVtPS53n25x2LFbCnLGS5+VufXkqxlG3MlZyPwUuPIJcFwgEAoFAIBAIBAKB0077DddL3YBdvlemnnTevA4sSHfpfOysp9y+/Yb8MvXFWrukQNatbSvtxvD2G+ullFhrK9GgXaArty37RSlVrStZafu+HDrT6sp1MC8WSqm47LLLecc7foFWK2X//sdRShPHNVJlUdKgpEAiEV5Ri3uIoyGUjJk4VOfggSmefXqcJ/Yf4rmnZrCmh3q8BiUGsEmDSPchvMJaVwltzlk8ucTjvVt4rlSJTqJQf3LBCaGLhC+VLwKE13gfg2tQjy5mLkn5yr8+xFVXv4pLLllN34DGeVC6kJCcR6j5vnAO5rtHLBAz8n4qhar5Ppzf3uPcwvO3cPhwHmT5sY7TzHsQIhcHrcvLUUVdHoeQAoHLn5dGGQLhBc56pCxkKA/INkmwnCfIhTR8PicI6UsNDqGgf6CPnp4GhycdaZoRuwaR1uA8wisiqZEIpBNEqFznMxYnPDqKQDqcsTgFqphvtFJoLTHW4nBEUYR3Hu9LOafQ0bxAosBJBLrYf/DSk5FhnSfLMqwXzKSzzGQzDEQ6d99KQVKIQiB0RaphkW5VyHQiN5zy/hE+72vmt6HIPsuPty1EvLIL245l22Ph7BXjQlKKe6UYWQaW4QtdTRTrXfuhkVUrBB1jK284zpbzuAJcHvUnc4HPFXJguR/zEpcryi7VvYWvq3oqcVPginEqinOslDCNya8XSBAyb6/1hoQZ7v3yPXzhvn/m+SPP0FitqA3FiIZF9ipE7NENSdyIEDWQkUTXNDpSSCmRWiKVQmiJ0AK0R2hBpCVaayIdEYsaEQ1ieqiJPuqij8jViOhFSY3P8/OwtMiYI/GzJH6GxM9ifIJxGdbnUl2apnlSmrE4U8dlFuEkSbOJdoCs0bi4AasjJg9OsioaYjZp0TKOF2ZmmLQpG37qp/i197+fl7z85SB11YVeiGqcCCGQfl6um5defftEsSTl/NyeTNv52jnHqlWreOtb34pSittvv51vfOMblSyepmkljAHMzc1x7733cumll3LddddVZZUSXplot5zrXfvPHqUIWH5WKcXQ0BBve9vbuO+++3jyySfROv/6PYoi0jQljmO893z+85/nh37oh3jFK15RlfXkk09y7733YozhmmuuYf369URR1PWa1f6zTbf+a0+4g/znIa01WZYxPj7OPffcw6FDhwCI45g0TdFaMzAwQE9PT/W5np4eBgcHq/qklDjnePHFF7nnnnt47Wtfy4033rjguLUfr/PxZ4hAIBAIBAKBQCAQCAQCgUAgcHo4FdLEHXfcwfbt2xkbGzsFLQqcSk5nils3YetMp8adKuknsDK45ZZbukpEO3bsOKX1XMhz2vk+Z5yrTExMnJQMt2/fvkXr1q9ffzJNCgTOKEGuCwQCgUAgEAgEAoHAOYH3vrrBvbwZvZTj2qUwIQRZllU3lZdCWLs4134TeLcbu9tvOi+ls/MVay0wLxE88sgjpGnKq171Kvr6+hZIBaWQcL7eDL+c/SplxCRJGBoa4HWvex3PP3+QfY9/n9mZFvWaQYoG9biBy+pY0SCuX0RrNmLi0CxTky/w3BMv8tzTs0xNZGD7kP5i4niQWPdhUoVzEilACourJKYyWawQiCo1pRA+KsdOgldV+pn3Ik97m8+JQgqNJ8bj0HKIWCdMjj/Dv45+ix/8wct57YZLqfeUQhZIBeAKGUK19VO7tNEunsyLddaA0rkH5V0hwhVSnHOuOE9BSJGLdcwnq5WeXlmLK4RCpQTGWNLMo5Qg9/QcqWkhhCdSGoHA+jzBDqmKnViYXea9I7Omkl6EF3jhsMIWulUu6qkIVl80RKOvzmxzhj7RwHiLTy1aKXACLSOkACUEsYrQkcQKA1i0UCAMjgwsyEjlSXiZwTmQWhJpnafcSYlJLUJHeGvxTuAzj6aG8x4lFLVIgcznMlSCrgv0IJhmk8y1mMumaMR1IEIIjyv6UVLILQh8kWonSmkR8MLlEl+hoVnhCrFP47zBuQxQaKVQQhZ96GmaJvWohkdgTMb/z967B9tx1Pe+n193z8xaa++tvfWwLD/kx8YkdnAMyL6XcH0TcrCUnBwfErix4psczskJFewkUHAvSXAcKsWBKsqRK0klRdVNLIf8EZJwsWQedYkJ2D4QY4iDbQGyAYPNNsaSH5IsbWm/1jy6+/7RM7PX3lp62JKNLPeHWl5rzZrp6enp6ZkS/dlfhyfVBkThvEfEU1kHeLQ2CBoXtL4mtgznbKijaESpWiJ1iPdth5AQo7goYjUSXN39HR4lCtHN2E34jK37mm43CYl8oWzfJjo210zoZ/XVhcfXiYPSdu9FJTPsq7IVSjxKhH5VYF3Bti/8v3zp3i+yd/ppuisTRtakpCs0PskxPcF0E0xmUFm4nL0C0YLoWtQzGqVVvSz0E200iTYk2mAkJZMOme+SMkrGClIZJaGDRuEIfa7ytVTHHJVfwMoCjhLnHZVzlKWjLC228kGk9VAWIb1OqpJENPP9BcqipPQdkrWj+N1z7Nl1gBE/waH5gnklvPGqX+S//9/vYWzFKGhT97P6hIksnr9GrPMstuJiwOExWS6FDZPmm/uZ9543v/nNFEXBNddcg3MO5xydTqeVxRqZPs9zvvWtb7Fjxw5++qd/ul2mtW6lvGPVqanPsD8YMLjO1Vdfzd69e3nXu95FVVVkWYa1tn0vy5LZ2Vm+9KUv8Za3vIXzzjuP+fl57r77bj72sY/xmte8ht/+7d/mvPPOa591BvexfH9Hqvug5Nbc25Ik4Qtf+AKf+MQngCDWLSwsLGnbPM9RSrXPRmVZtm0JtNLik08+yf3338/rX/96zj333Lb9BwXE47nvDhMEI5FIJBKJRCKRSCQSiUQikcgrjxNJ+br55pu56aabTsv0ptOZ/fv3n5REo1MhIe5UqEPkpWHr1q1s3779sOXbtm07aZJlHNOGczqNGacCk5OTh0mFJ9rGwyTF0yWxMvLKIMp1kUgkEolEIpFIJBJ5URlML1k+KX0QqZO5lieeNPKX1rpNiWnWHRTumm0GRblhst5y4W55Qt7pMKm7OYbB9mnSeT796U/z1a9+lXe/+91s3LiRbrfbTtRvEnVe6YkzWiu63Q7OeXq9EX7qkotZv/48du96mn7fkRpNrhPEpfTnDTPTOQeem2bXj/awb980Up5DsZAhvsNobyWJnqAqDEUO4nXdRy2OHHBBUnIaCEJoMKIqmn+2kUaUQiPSpNQ158kRksI0iEYUKONxtRAkKiNLxkEWeGjnFJ+/4z7Wn38Va9MVYC1J6ms5yaKVpiwrtE5QqulDdWoXnqqyGJOwaMmExLhBB68JOfM4UL59d4R0No/HSzDqBtPRggyl6qIFbTTNlWxtCWLRJghFFQUWi4hGkWAp8VZAV6iQBYfFhrI0tYgXtgSHdY5EKRye0hYoLfisJO0prBSUvo9x4JwC61hYcBRVjskUJtXMzFaIgc5YSqfXoapKdGYZGR3BpJqyyrHK4bWA9SijUV7jrCPrZLiyj3IasZ5OmtHVPcqDQtkvKBdybAG2dFQLRUgZK4TZg308Kc/N7uWJPT+gv3IeXwTJbWJsRZsOqLXGeY+rx0oIY2VVWZy3dLIuRhk8nso5lFcgghaD1gqFoyRnwZc47zGSoBNNznzogyYImQUlEGQ58KFLIlTYWvt0ta4WpE+vatmOJq/P48ShMEuS8RqpTQhpaLYq0Sapz6vHNvl04lsdTmiSukJPgkYq9It9q+mzvk6vawXPRiodEEfrZL3Qjg5jNEqBo8S6kiKf4+677+KL//rP7Jt9hrFVHXrjCSqzkHp0B0xPoTKNJEGoRAsq8UgiSCJoJegkCfKoCUKpSXSbWKdVhqFDxgiZjJHIGKmMktILIiYlFfNYn4ekOjdDziwFORUl1lkqG6S6orBUZZDp8IL3UFmDch76DnJHWVZYK1TOIoknTxV6osdzexfYOzfHm37pan77/3oP2cQ4LkkQV59NWRQ6m+ZfItYtCbkcTArkBdOkr3nvWzHsggsu4JxzzuGpp55CRJifn2/XT5KkXf/ee+/lQx/6EH/2Z39GkiT0er26Hyym0J2IbF9VFcYY+v0+RVGgtW4l/kayy/OcXq9Hnud8+ctf5qMf/Sh//ud/TpIkdDod8jwnyzKMMfW1Wx1T/htkmKjmvW/rtmvXLu677z4WFhaWrJskyZJkW601ZRmu8/Hx8fa3RsADeOaZZ7jtttt49atfzdvf/vZ2f8Pq80KeJ17pzyKRSCQSiUQikUgkEolEIpHIK41hEsmxRJWpqSk2bdp0zMShyclJNm7cyKte9SomJibaif6bN29+4RWOPC+GSRwnSxx6IX3nZHMq1CHy4rNjxw6uv/76w5Zfd911XHPNNSdcfhzTFjndx4xTgWFtvGPHjhNqi2Hi4iuxbSMvX6JcF4lEIpFIJBKJRCKRF43BidtHmvA9+Hszub0R3kSkTUtxzpHnORAmdxdF0a7TTFxP05TR0VGSJGnLMsa0k8oHJ9Avl+pOF5bLiYOpNU8++SRPP/009913H+vXr+c1r3kNF154IbAoHlprn9dE/tMPXwdphdQ0EeHiiy/hl3/5rfzN//O3zBzMyQzMzRxifu4g87Oeg9MVRV+jpUuarkT8KCPdMYzu4V1K3q9wNiTKGd0IpE3CIggmyGZOhzQoXYI3tUi3mACESJC0nAvpW421IgmCQ5TD4ahsLZFZj7cO0ZpOtooDhw7yP+++j9dcdiFXv+VSRscNzhfgHVqFfSdJWouYIdFRKY2t099CWpSvxVZPWViyzFA7F0FA8qpOqRK8az0lYPGz1kHwqUOQQhvU6XzeCZUNv3nvsR5Ea0xiqOwciMVLwXw+S1EWJCZBKY3WCYdmD9Dr9qiqir3P7SUv+3S6PZJUh3XTlGeeepof/uhxqqKiN9pFi2CdIy8XUCOOtetXMds/xPyhQyFNLAmpYihP1jEoLfSLPk4sYxOjjI73sDg6Pc2Z686gM9LFUdId69LppjhX1cKhkOc54jWGlMx0SPHMHJpjdmYGO5tw6MAMz+2Z5tD0LMVCgThPahK0TigLR6rHeHrPXr758Deo5ipcUXHOunVceMGFQJPoGWQe70ApwVoXUt+sRZRidGSM3kgQ7FAKozVlEUQ65xy+spSVI0tSVq1Zw9o1q1m15gz68/OUztMxKaKEsggClxZFkqZMrFhJJ+lQ+YqqqhAliKiQZug9ogRnXdhGGbIkI1UpigRQdc5d8z9C4pwTUmXw3uGkwvqQXGdI6+TBsKVG48VTers4bolH1f/sqUThcHgqtAThz+OxzqIkpPy1Qh/g6u9aaZQK+y59hRfL7MJBPv/FO/jnf/7/mE73MLY6YcXqHmYE6FaYHmBAJSER0SQKnRhUAipRmFQwBpT2aBP6k9aCSYUkMSQ6wUiG9h0S6ZESxLpMRkjooiUBH0S/UkKSYe7myf0CBTklOZWv6BcVVeWoSourHFSCqxyucnjnwQplYVFW6M/1yUyPvG9xFZQLlgUF0wf34/qaX/71X+O/v/cPkCTBJQkWSJYMmZ622ZGlYt0STvye0tzTGhHMOUe32+XSSy/lc5/7HG9/+9vZuXMnIkKv16MoCqqqarfx3nPXXXfx3ve+lze96aZhG48AACAASURBVE1t+t3JSrBtUt9GRka44IILGB8f57nnnmtT6+bm5uh2u8zPz5OmKXmes3fvXp555hkWFhZ4+OGHSdOUdevWMTEx0f4xgJNxP27S/v76r/+aW2+9ta1TGOcVZVmSJAnf/e53Of/889m9ezdr164lz3O+9rWv4b0ny7K23Zsym2epJrGueb5qpP3B92NxpONcntQXiUQikUgkEolEIpFIJBKJRE5PHnjggcOWHS3tZseOHVx++eVDf5ucnOT6669n48aNbNiwYeg6MRHqpWVYEtLU1NQRz8/zYZiIdDLSrZ4Pz7f/Rl6eDJPXNmzYwC233HLCZccxbSmn+5hxKrBhwwbuuuuuJcvuv//+ExJFd+zYMXQ/kcjLhSjXRSKRSCQSiUQikUjkRaGZSD04oXpwcvTyidaDCXMNZVlSliXWWvbt28e3v/1t9u3bx+zsLPPz8xhj2gnxRVFgjOGss87iggsuYP369YyNjSEiJEnSlt2s38hkJzLh+1SnOT7vPf1+n0984hN88pOfZG5uju9973s8/vjjrF+/vpURG8FgcEL8K486d8tbtARxoNPt8HM/dyW7d+3hY7d+nB889hSjI2so8wzFKIpxXNUh60yATbFWEO1xZYG3oJUiMz0gwTsG0gE9qDqTq+6G3glOORSCFwVeAYoQJKcJ+oqrRSCHYAEd1kXhvcK5kPyWmATnLQ4LDlKzkn3P7uLL//PrXPa6dbyqeyZKCUZn5P2KNElxUqfgAc6C0oJSKc56rAsinC3BI2Sppj9fhGORICc5hKr0pKlQWc/8vEUr0CocoyeIdc5BWTry3FIWQQTEKzoZ5Dk8/vhTPPXs0+hUMTqeobMSneU4PU/lZ9g/s4e5+WlEh/Q+pRSVKuh0OszNzfHkrl3s278XZTRJYkIyX6LRIuRlgXhCopyEMUG04FTJxLoeoy4l6SRUvgrpZwqstyAOvKc7moV4LhPGKEToz3umfrCLsuwzsqLHOeefTTfPUImwYnwUZy2j3XGUaIxKmDs0y9zMPE/veoZDh2aZ31+gRaNJGR8dQ481aZtVuC6TjGLBQi8hIcWOKaRKmGc/39t9CC+aqqpQIjgP3oVUQWcdKAmSG3VqnHi88zgX3o1phE1BI5TO4aoKL5DqBFEG8Z7KO3xVC58ieOfw1rH6jDWsXrmGFSvG2oSs9mryzTgEVWXBe7IkY2RkhF6vi5YMvKr3D94370GuS1LN2jPWse6stXTSHmVZYCsXpDRl8GWoh9KaXrdHz3RrQS+k4llsuMzqdDXvHHgwOsEohbdlva6qry3VJt0JKmxPSGTs2wU+d/dn+fydn2OumqV3dkY6pqBTIR0hGdGojkOMJu0aTJaEVLpEBYE0EbTxqMQhCrxJQCskoU6tS0hUgvEdNF0yxkhlBZkaIyEj5ApaPCWFn6fPPBV9ct+n8iVOHJV3FGVFWZZUtUznKgcWpFJQOlylcLak6FfoCoSMIjfMPLdAz6WkqkffzvDs7AK/8LO/xG+9511UvgJn0ICrPKJbm65xaZek0rWJdQOj6uD347mzLL//NOJWk+zWJNo2sterX/1qPvWpT/Frv/ZrfPOb32xlfGttm15nbUjivOeee7j33nupqor169e3v70QwW7wGaIpH+Dqq6/mQx/6EO95z3tasT9NU4qiQClFURSICP/yL//Ca1/7Wi699FL+8i//kg0bNvCBD3yACy+8sP3DAMPa42j1GNaWzR8WaO71zTbz8/NkWQaEa/XGG2/kAx/4QPv7oGxfFEV7/2okujzP2z92cKR6Hu/zxNH+CMORniUjkUgkEolEIpFIJBKJRCKRyOnDnXfeediyo6XdXHXVVUPXv+WWW9i4ceNJrVvkxLniiisOky5OVOKAIBQNE2WuuOKKEyr3+fJ8+2/k5cfmzZuH9rVt27adlPLjmLaU033MOBXYtGkTN99885Jlw+S44yWKdZHTgSjXRSKRSCQSiUQikUjkRWcwSa35PriseVVV1U7Wnp+f58CBAzzyyCN873vfY2pqiueee47R0dElolyTuNJMFv/Wt74FwNq1azn77LPp9XpceeWVnHPOOWRZRpZlS1LrmuS7QQYnbr/cJnEvn+gf0tEUTz31FI8//jj9fh8R4etf/zp/93d/x3nnncdP/MRPoLVuE3wa0fHlduwvnOUT+kFLI15awLB61Sre+MYruOdf/51/+9o3mJvLSU0HUBidkpoRXAmIxugUAOcsSjm09nhyvBXwpjZLJIhb0KZ1SdDswvVBOA/SfPcqCCyiEPEocXhULatZ8ArvFEoZkAyhTvESBV7jnSEza/C+z1e+/A3Wn7eKa//Lf2DduhXMVwVV6XiuX6IUKBVqU5bQG1EcnJ5nfr6AOilPgCQBj+Jfv/QN8rxARJMkCaI65HlOp9NhdnaWZ555Nmzj6/aUIBF559m/fz+7du1mevoQWZqSJhlVaSlLi/dCJR5LQW9csebsUXoTjmRkgWSkT+EP4tQ8Oq3wyoE4vLiQ1obD4khWeZRyoIugTimLThK6XqOUICpIV0YpnHegDCY1KJ3gPCjrSRId5JL6LDWynRdwYnHhTIHXgIPOKCYR9j6zn4qC8VVjjHRG6BclE+M9ZmfnyOcP8cxTzzI/06fs9zFiWDGahTQ5nyFOUAghzM9SugoHmG6CJkU5BZXGCIirqCpL4SsSpRDROOsG0qKEqrKILKZLeReS5EDwTiG+kW0EpTSJKKxtpKWCophHaYUSBc6HBDob2lopzXP5M0zv2YPZp5fIO2H8CPtvxhWpE+HascUpvJPFe4Kvrwcv7djVpHfhQnJds4+qrFCSUOQ5aZaxbt061qxZgxbBVdTpZh5bVXW6oabIS2xV0RsZYXx8BSbVENxQnK0lu1ANqtLiCYLp+MoV7HrqR9z1pS8yb2eYOHOcziqFdDw68eiOoFIH2qFThUkVoiX0MwGlwSuL0r6W7BRojdKaJBFMYkiUwUiHxHcwfoxMrSBRoxg66KC1YX1O5XL6foZcz1L5gtLnFL6kcpbCWorShnNgHa6yuNJBGdrElQpfeqo8Bwt57vGloZwpUFWHckHIp/vs2TvD2Mq1/G9v3gi9HokzeJXiPWSmTtNs/9MMnMPS6tphY9C9OyEGxbpGPmtE8nPOOYe//du/5a1vfSu7du1CRNrnhKY/iUj7zNA8dzTrvJB73vI/GtDI6kopLrvsMs466yyeeuqptr5NnRrBv6oqvv3tb7OwsECv1+Oiiy5i3bp1S9Y7GffiQXEwTdMgBrNUYLPWcs455zA+Pk6e520dIaTUee9J05SqqrB19Oj69etZvXp1u95yGa4p/3j+kEHD4LNiJBKJRCKRSCQSiUQikUgkEnnlsDw9B8LE/2HccMMNh6U0bdiwgQcffPBFqVvkxNm0aRNbt25dsmz79u1s2bLlhMod1m8mJydf8hSq59N/Iy8/tm7dyvbt2w9bvm3btpMiUcYx7XBO9zHjVGCYUDgshfN4Gda2r0RpMfLyJsp1kUgkEolEIpFIJBI5KSwX6AaXHWn9wfSTZlmTULdz50727dvHvn37KMsSrTVr166l1+uRpmlbTpZlrczRiHYzMzMsLCzw6KOPMj8/z86dO3n961/PxRdfzKtf/WpWr17dTspvJtwfrZ4vN8lsedtOT0+zbds2PvOZz7RpOdZaHnvsMb73ve9x1lln0e12W7ngaO1x+uLbVyuByKIV4gUuvvhifuWXr+axR5/gmacPkZoxlBIqW2BUhccEycvpWoYTEEdl++A9iiDbBLEumCiekCDWSGsewPtaMGquqaaOoS5CLc3VCVtgcVQguj333lUhXcwLiEapFI2n2ymZ6y/wlX/diXWW89av5eDBGQ4eKMgXHNqAtUFyRYQVK0Z56KGH2b1rN1onaJ2AV4gSEtNlz7N7ybJukLisRUyXsijpdDvYytLv90nTDO8EpTXeUR9v6GNVqajsGDOEf6RKVIoog0MQoyC1zM0sMPv4NNl4nzPWJ5y1qsPYGJTK4dU8TpWYVGFtEKNSY0iTBJWE69sRJFNRHqU0IkHwqWxVi4K6TgjUgEcZg3OORIJUJyLtuQvnwgWhTiV4DQ6P8hneedAg2lP4BcRDPlfy/UceZXzlOL6Ep3Y/zcJcH1s6fCV0szGUV0jiEafBJyivg8TmHU48idI4PF4E5yq8F5KORpwFW6E8pDoIg76R2Jr0Qe8wztSJbPWYXCcN1l2tFqL0Yt/zkKBBDHiP82G8NSymWjrnQAQlCm8Jsk1l8YR+7r1CfMh/S1Ghbeo+7L2vx2yL8o1SGhINGRBzvPchha9ev7IW8QqF4LTD4dCZho6l7+bYfegQe/tP4J3FVkHE8y5IcyKCKIWrgnhmTEqSJFS2ToH04CpXJ9YJ1nlEVOir4nG+5NDcNAV9xtb1yEYVdByma0h7iqwrSOIgsaQd08qbWitMotDG4xNQukIbjzYgqSHRGm0ErQ1KNApD4rsk9Eikh6GDkIRxwldY36d0c+R+hlzmcd5R+IqishRVRWErKlvLdZXDlRW+9PhK8IVQ5Q5benRpKXJLXkE172BeIwuG4rk+e6b2cfaZ5/Gr//la3nTVVWGUEUFqOZLFy7cZlY7MgFTXjLDqWNscg0FRy9TXaiPJpWnK+vXr+bmf+zk+9alPsbCw0KbEAa2s1sh0jfQJixLYidzvB2U45xyve93r+NM//VN+8zd/M4wptXjXiHMAc3NzfO5zn0Mpxete9zre//73s3LlysP+AMGJ0FyzSqlwLVXV0KRapRR/8Ad/wFve8hYOHjzYPh81suBgMl/zHJEkCeeee+5R9328HEmqe7k9g0UikUgkEolEIpFIJBKJRCKR58/27dsPE0uAI6Y1DZvAf/fdd5/0ekVOHsPO5dTUFDt27DihZKNbbrnlsGUnmmz1fHm+/Tfy8mJqaorrr7/+sOXXXXfdSetrcUw7nNN5zDhVmJiYYMOGDUsS56anp7nrrrte0Pj1yU9+8rBlmzdvPqE6RiIvNVGui0QikUgkEolEIpHIi8py6W755Oxm2dzcHI888gg7d+7kkUceYXp6mizLGBkZad8bqS7LsjZprSmrqqp2nytXrqQsS/r9PvPz88zPz3Pvvffyta99jQ0bNvDa176W888/n3PPPbctoyxLkiQZKv39uDjeCeZHmrwuIhRFwfe//33+/d//nQMHDmCMaSf379y5k49//ONcdNFFXHzxxYeJhs9XNDiWTLk8EbBp6+X7PNbxLl93MHlnKa2uNnT/i+UMrt9sJTgHSoHHIQp6IwmXvf4S/tc3XM5dX/waVVWgEwve4lyBMSnO5gh9lHQQFTQS7y0iFqjwvkDEEf5JphH5QkJdSMlbFE29tyBSC3TNkUhYJnXKl1eIGMRnQZjyKpQgGpEkSHdUiJR46SCM0E3P4Okn9/Dp275GmiqUGIpcoSXD49prqyxLxsZWMD8/T1F0UUpjK0uWZYgoqrJCZA2uSOpkNEESg6ssfasQhEQU2hsq68AptDLoZl0U3a5BG4OIQmyFwuN1nV4mCofH6gUs85Szh9j/VE5vJOG88VVMrOyS62dYUBaSCk2QyKSWvpwv8c6idBD7RAmVrfASkhkTVJ2GNiikCYhFCSitcA60UrUwFvSgIE4pnPegHIlSKAfeCeiQbKd8gmiDaIW1Jf25PmI1ZVHWx91B6vbwjtA/6gQ3hcc7j/IhYU6UwXlH5RxGBWkNX4UeYT3iwZi6zzgb9DBxocM4G9aXsJ40l0Tbf+pugwdHvf/munDtdxEF3mFrccjUx2+rHJUoDGDaLevUPetDG+HxbThos1Md+i0eXJ3d6JsrQmrBtBExCdeL93W64+JFa3HhXNjQX/F5qF8tneIYSMNz9ZWksLagcn3ED6SY1uWLKHQtgYrztYzpSFJIJCEdUZgRkI4n7QpJD5wuUcaTdDW6Y0IfSBRigNQjBsT40A8NiNKYFIyAkYTUZWR0yRijwziJjKF8hojGS0VJTsUcJbOUMkdf5snp47FUrqC0OVVVYKsCb2upriKcU6uwpceVnqr0lHmFqgxuwWH7An2Dm9HMPdVnfk+fc9f+JG//9d/if/9f3hTOnyRYH8a5Vg7mGPfGIUO3DLwfbexeTF1cXGcwva25ZzSyWPO5keV7vR7ve9/7qKqKO+64g9nZ2XZMG9zH4H3++Yh1g+sNprQ1r0aac84xOjrKFVdcwWWXXcbDDz+Mc65NlDXGtH84YP/+/WRZxqpVq1i/fn1b32F1GibbHUtga46zaadBya5JoGvqdMkll7Bu3TouuOAC8jxvkwKXlzd43MN+G6zX8vZafn6Htfvy89XUf3lZyxPzjlSXSCQSiUQikUgkEolEIpFIJPLSMDU19YKkhxtuuOGwZRs2bDhiktCgCHCsdV9q9u/f/+OuwinJxMQE11xzzWHpXzfddBPbtm17QWVOTU0NlZKGiVDHW95L0X+PRexDpxbDEgg3bNgwVNJ6ocQx7XBeDmPG6cC11157WP/btm3b85brpqenDytnYmIiSsaRlx1RrotEIpFIJBKJRCKRyElhUJZqJjQvn4DdpMtkWYZSqp0MvWfPHu6++27uu+8+Dh06xIoVK1izZg0jIyN0u12SJEFrTZIkGGPayetN+c0E+2ayeFVV7ST7sbExqqpi7969LCws8N3vfpevfvWrXHLJJfzqr/4ql1xySTu5vBH0mnKbyfs/bo426X9wcvvyejvnmJmZacXCwQn2TRrU3r172zQ759zQ/R0plXDY8kGaeixft/ncTJQ/1gT9IzF4nIPbNPUPvy+tc7O86UMDe2zWAgTxgsfX4lFI5BKtuHByPZv/z7cyM1Nw31cfoqz6JLqD8wXO90EZ8HMgFk8CdAipYBahAEIimYhHvG7FubBnW8tPBi8O5yqUApTUCVAhsa5tGx8kLO8U3ps6fU1QYvFetTKS8x7nc0QrRFISPQ5OU+Z9FvoerVMS3UGpIJcKQeBKFSzMeDpph5GxWk7xIBJSn8jqZL+BU+WkIlWLwkSoqyJJqJPOdEjT8wpQIRKwrFPVJMhqXgoEi7gO2huUK9G2Qmno7znA09UBVo92WDmRoLJZbGeOvl5AjMY5i/YapUAjQa7CgQavFMoLXgmi65avgoxmRGFpJA5BaVU7aA4vDl+3u69T67yE49EqlK98SfDTQl80IkEYFMGYFIXCWUeWdiBVeOvROqEsK5TR1BVFcHgG0rSa3unBeKG1xVppNKhOQQwDLSF9zzkX+jmHiy3LBVZLLZ05WaZNyYB4Gq4LVQuJ3tuwv1RQtcjXpC36Ov3Ohx47IIcOCHRLfq/LD9F5dTJjiIsUb/GuWTdck0rU4nsFYFEeOs310bSOD3Lf8kRIPBiCbKjwWO/C70rAO7x3gMZZj7ggaooYTN5loT9P0gXJLLpjkaxAdRRiPCZT6I7GiUV1EjDgjEeSkkoJyoA2KSbJ0MqQacFgyHyHLuP0/ARdGSdjDEUaxFIsJX0KZsg5SM4hStWnoKD0JdaWVFUfW+W4qkQqh1iQEmwpuEphS8GWgIWq8uR5iSm7+L5GHXJIP2PvD6fpH/BctP6n+e3/+rtcfNFP4XyKVkFw9SpIkaKOnVR3pEWDPx1JBTuelLPmnrz83tyM751Oh9e85jX88R//MatXr+Yf//EfmZmZabdprg2lFFVVnZBIv/xZp0muGzyW8847jw9+8INs3ry5/a1Zb1B4m5iY4NJLL0Vr3f4RguOt15EE82GCXnPvV0q1yXVlWba/LSwskKbpkvvkkZ4JBoXCQVl+mIA42E6Dn490rM39Y/D5YHm5i/f5H/9zWiQSiUQikUgkEolEIpFIJBIJ3H///c87AeiGG25gamrqsOU33njjyarWUB544IEXpdxhCWaRwJYtWw4TZbZv3/6CU5KGJSJdc801TE5OvqD6nSr9N/ahU4fNmzcPPb8vVO56MTkdx7RTfcw4HbjuuusOE4S3bt3Kli1bnpfgOUwyvu666064fpHIS02U6yKRSCQSiUQikUgkclIYJkcNk76MMe0E86qq2LVrVyvW5XnO6tWrWbNmTZtOl6YpWZaRpmmbuKK1XpK+0tCkwjTyWFEU5HmOc440TZmbm2NhYYH5+Xm+/e1vc/DgQX7lV36FK664gizL2jo1E85PFY5Vl+WTzZvJ7Xme893vfpcvf/nL7N+//7CJ8I10+J3vfIfJyUlGRkbaie7L04MGyz9SvZZPvh+27qBY17w37T04Wf54jnuY4LdU7hzeRsMm8dcl0ghFvt2+Tt7CowRGxzq84Q2X8fTuvTz6/Sd49qlZtOriraCUqUWeEo+p074siANvQxJdnYwVEuqCrCXY+t1BIxYNHGPbHiqIUyKqThxbVJOWqyuLh1QLbqJAFCGHTJPobhCpVAJoUtMB0eAV3jlMkgzIkaDQVK7CaIN1HmcFrZL2vDkf6hUEPVm0Z3yQ6xYlwjp5ra6HyMBvYhGp47ZQ4DVSp9GBQTnIzDjzM4fY9cMZVqzTjI+vwXXmsH4BkloO84KRoIIJJrSnEqwXVC3FKSUIDqVNK4DpQSmkaUAxtWQp9SI10NyttkWidC1/LfajQbQyeA9VleA9OHEordCuSc5alFjA432zP1myPOx7UayjFtkWZdD6aLwPIqH3A/1kUZYbvG7q3KdFkc4fLtGE3dbH65ty6vFB2kIP22Y5rSRTry+15LZUuJP23SEor7BYlFeh3bzCSy2BJiFdzuJRHlCCeHB4xAdVcTCsz9X79YDy1Cl1thUmvSckCXqP6SQIIa1RBEzWJekqEIdJDEnPoAyYRNAp6ESCoKcgSxK8WESDVroVNjOTkqRdUpWinSKVjIwROjJKprokkqLQdVs4nJSUvk9Bn8LnFL6i8hWVL6lcQVUUVEWFrRzegq8EZ4WqctgKXCXY0lHmNiTXFZYqd+hSMbPvEL6vqWYK9uzey5uv/I+8/a2/xUXnX4x3gia0JV7C2fAEKfZFujcOPiccKensWIltTeJmkiRccsklvPe976XX6/Hxj3+cvXv3Yq1txbbmXjd4zzkWTd2a547m86DkXRRFne4p7bPHG97wBjZu3MiXvvQlrLVL0uuaPwZw0UUX8Y53vIPR0dFFOXYgcW9QNDuacH+sFLjmftvsY1CCd85xzz33cMUVV7Bu3bolf8ig+b1JCByU35rnrub5bvm5HJTgyrJkenoa7z3dbrf9owadTqdtt8HjGNy+aY/mGa8RJJvzGIlEIpFIJBKJRCKRSCQSiUR+/GzdupUbb7zxuCfkb9++nZtvvvmw5U1i0ZGYnJxcIrzs2LGD6enp5yUCbNmy5bjXPRLD9nf//fefcLmnK5OTk0OTqDZv3syDDz74vASX66+//rCUJDix8/pS9d/l6y4n9qFTg61btx7WVyGIdSdbxopj2nBO9THjdOBICYHvfOc7j1sinZqaYuvWrYctfyUnAkZevsQ/6xqJRCKRSCQSiUQikZeEwcnV/X4f5xw//OEP+fu//3vuuOMOtNacffbZrF27lk6nQ6/XY+XKlYyPj9Pr9eh2u4yMjNDr9dpJ2FmW0ev1lizrdDqMjIy0r16vx+joKEmSMDIywvj4OOvXr+fMM89k9+7dbN++nXvuuaed4G6Maet7pDSYl7LNliaALWVwknnzvdnOe8/u3bu5/fbb+cpXvtJKiYNyWZIk/OhHP+Jv/uZveOKJJ5Yc8/FOVF9ev0HhrZnwfrQEm0ZKaJJzBrc7GoMT6pdLfYvi3uL6R0rlO/JxOZCQIhYEpFpswDEy2uFn3vh63vTzb8CkFXkxjUktnhykwEuJp8D7ok60y/GUQR5THi8WT4XHEjQgz2IimWs/e4KQF16+TtQafF8UHJQISum6TRbFO2kT1IJoJpKipIOzBvFdcBmZGUOrEYyMYtQI+B7epQg9lOoh0kXoYtRo/d7D6FGUdMCnOGvAZyjpoBlDywhaRlCMIH4E8T2gi/geQg+hi/guig6KTihfuoikiCQIGUIHJRmJdEjqumlGkWqUxK3muWeEJ3+Qk8+NkuhRet0eaaZJO5q0qzAZJJmQdIQkU+g0CFBppkg6Cp2ASRVJ15B0FCYTkjSsa1JBJyyuk2p0Asp4dCLoRDCJIkmblyAaRAnaCCbRJIkmTQ1pakiSBFEh9QsVxEelBWOEJFEkiUYbQWuF0kG2G3zXWmEShUl0eJnFlzbhN5UEuUsZ2jrqRDCpCvJX/bsZWJ7UvyXN8dSfm+MaXMckgkqCSGZSQlvV7aVSCa/mc6bQAy+VClK/VKpQaX0+MoXONDpd9krCu0oUJjWodPFdp7otQyUSzlW6+B7qQvvZZOE4TKbQmYTzXPcB01GY+hybTBZ/74aXzjwqsUhSoTNPZ8SQdjUqgbSrSVJD2klIM1MnTHq0USTGoJUnSwyJNiRKk2hDN+nSSXqkKkNh6Lpxun6CLuN0ZIyEETQpIHgpqejTd4dYcAfp21lyl1P6itJbSltSFn2qssCWFa4CV2qsNdjKYEtFVUJVOKrCYwuwhaeadxSzFbPP9unJOPuenOaJ7+/mrf/p/+C6/3od689eXyc5mjbBklreHPzfC2VYSunScXfpeK61PiwJbRjNvUAp1d7Dq6ri/PPP5x3veAebNm1q7w2DAv2gGHak++yR6rn886BM16ToNnVauXIlH/nIRxgZGWnr24h1xhhWrVrFz//8z3PeeectuX82Il7Tdsv3OSjbLa/X8jYVEbTW7Nu3D+cc3W6Xoija1LjmWeK2227jjjvuWCLJNfVpZLtGThwsfzANtmlTpRQLCwvs3r2bhx56iK985SvceeedfO5zn+NTn/oUt99+O5/5zGf47Gc/yxe/+EX+7d/+je985zs8+eST7N+/f8lzQbPPpk2bfQwKiMs5Vn+LRCKRSCQSiUQikUgkEolEIief6elprrrqquNa9+abbx6aipn+TgAAIABJREFUIgRw6623HnXbYULFkcoaxvXXX89dd9113OsfiVWrVh22bPv27UdNetqxY8fzquvpxq233nqYwDM9Pc3ll18+VHwZxubNm4eKHFu2bDkh6eml6r+DxD50ajI1NTVUDLruuuued7rh8RDHtCNzKo8ZpwvDBMMmIfB4iImAkdOJmFwXiUQikUgkEolEIpGTwtFEtGbSdjPpPU1TfvCDH/BP//RP3H///Zx99tmsXLmSsbExut0uaZrS6XQwJogpaZqSJAlJkiyZwN1M9h6cBG6tpSzLNqGm0+mwb98+RkdH8d5z6NChJRP2p6en+Yd/+Ae897zpTW+i0+m0E82fTzLMj4vBug4m6gBkWUZRFMzMzLTraq0py7IVAebm5vjRj37EQw89xIUXXkin01nSpkcS5xoGU3SGpQoVRUGapoel0Qx+9t6TJElbVnNuhqUhNjT9oDnPQJtYtLjOojzR9L1mUv7y9Lq6xrWY1uzbL5nMv7iO54ILz+Q///Kb+fa3v8vOb0xRlh208iEOy6d4qdOx0IiYkFxHhQ95UECQ9yCk2YW4rDq5jsYK1ICr5TqpU+jA+6UiSJMu55vkuzqhrBXsUPV+DfgEyPDOAh7nBGc7QWiTFKMNaItzliRJsVWFEhUC+JRgy9CWIZXP450LYV3KIAjWLp5nJSHJSwjJeUKTtkZbr8UkuwYF3oD3KGfwGLDgEExiUJIiWpMvFDz9+NOceVHG+T9xNgfsLM7MYBSAQ3xoCdX2sTorUA8mHIa+Jt6D86Bcqw15H9LuZCBFsA69q5PtqM9FvYVTCBqkTg30Td5hSGTTOsFXDm3qdDQb0vOclhAqKAJehcw2J3XaoQrloYKIueRyqNPxfNMnXX3O67b1TRLdYpKdrws4fPSq+5tvEu58m0LXNl5T0rI6hN4a0ucWI+IG3/3Sour2WDzbgngVkuq84HAhha+OmfNSLxeHOGmT6xbf7eK5psk8FKz39Xep3z0KwfmB6jUJdos9r01lE8CWJcppOmlI4/KUZD1N6gWlQSdBvMy6GqUSJPGYxOAEtDE4V6G1IlEJidFonZKoDOUTBMOIX0VKSio9jPQwhOUeS0FOzhx9f5AFO0spfayUlL6ksBVlkWPLPq702Aq8VbhK4UoXpLpSqGqhzuYO23f4QrALgp0XsrzLD3+wi2oB3vYfN/POa3+HFd1VlIUjwQwkJzYnrlbqmnP3Am6BRxOghrE8xXQwae5I6w9+Tur0zXXr1nH55Zdz++230+/323tNcy8E2vvDseo2+EcCBu9Xg+l1Tapus30j3I2NjSEiVFXV1s0YgzGGX/iFX+D3f//3aRJl0zRt76vHc8xHa8OGRmL/2Z/9WW6//XYOHDhAlmWtANekyO3bt6+9Zw/eX5syBiW7mZkZnnjiCUZHRznvvPOWyG7T09M8/vjjfOMb3+Chhx7imWeeYX5+HmNM+3yXpumSJD3vPVmWsWrVKiYnJ/mpn/opzj//fFatWtXWqRECm+e45viXP4OeSs9pkUgkEolEIpFIJBKJRCKRyCuNHTt2sHLlSm699dahEsqOHTt45zvfeUQp4pprrjmmvHLDDTccNun/rrvu4vLLL2fLli1s3Lhx6Hbbt2/npptuOm4h41hs2LBh6PLNmzdz5513Llm2Y8cObrnlllbweL6pVKcLExMT3H333Vx++eVLljeyzDXXXMONN954WNtOT09z2223ccMNNwwVfa655hre//73n3D9Xor+O0jsQ6cmmzZtOmzZxMQEN9xww5KEuRfCMOEojmlH5lQfM04HJicnef/7339YEuemTZu48847j9j/GiF5ef+bmJh4XpJxJHIqEeW6SCQSiUQikUgkEomcNJYniDXvg6kmCwsLPPvss3z605/m4Ycf5uyzz2bVqlWsWLGiTZrLsow0TVFKtYl0Tfla6yUT4ZtJ7svrMJjEcs4553Do0CHyPCdJEowxWGvJsoyqqnjuuee45ZZbWLNmDRs2bFgiAy6XvIZJhC/lJO5hk+gHRbFmMn6e5zzxxBNMTU2xYsUKer0eBw4caCeme+9J05SyLHnqqaf4q7/6Ky6++GIuu+yytswjyXTNfprvR1unkQTm5ubYvXs3zz77LCLSCgh5nqO1Zt26dbzqVa9aksa3XJYY3E9RFCRJglKqPaYHH3yw3b9ShjzPAceVV165JK1oWDsuXR5eQc5S4ZMXpDVLHNooXvu6i/ml//QmnvjhLqaf28eK0QREUdl5tPIo0YgyCAn4Cu8VLihYtZxSK0GiazHO4SXoSuHnRWXIe0uQ5obJFoKvE6VCXZvfa7HJ14IfFmc1DkOajFGVZahvYVBphugM5zRKPIhDqwxb5ShlcM6CE5QAXuGtHxAtwnViSw+6FjJbqSvUr/3eHle93KtW1PHoYEdJEkQvr1Fo8KDweJuSZSPkuUepNcwfWODAs5qf0F2M3Y02s0CQ/RopLvQbRaOHiPZtuwiCqCBheeeXmGNBpBuQyoJVt3ja6hpL7aEpvbg+bQ8C8Q58SLRzKMQIVB40QapT9Xa1uSZIcNyW2EthJ8uvfMG127AscbLpxjJgRB1NblpMIxtIwRr475IxsCmyttT0MqluSU394v6XHxUQBLomVbK+5vC17KdqmdHXkqQL78138YTEuCXLgzSn2/XDd1U3iiyrR+1JLrZDI7h6MEpQHpR4xIWDE6Wx4VLEJAbvLWVpSVJQXiirHJSm2+3inCbrpHS6jRQe0iON6pJIRmpHyCQjkS7iDaCxWCrfp2COQuYomKWUWUrJqbyjsBVFWWLLAqoSZyWIdaXgKkVVQFU6itziKkEqweWefNbi5sGVAguGpx7by/z+irde/Tau//XfoZOOYEhIUg2uvlqbPtdcK4f1y+PneJLFBlNTy7Js77/OOZIkoaoqsiwbWtbyhLXBz91ul2uvvZaZmRn+4i/+gunp6SVCXLPfRuRbLl4PS80bvJc06zf3tX6/T6fTAWjlbAj/J9JFF13EzMxMm0jXJNglSUK32wWC6NeI4oPy+pES6gaT3Ia16+B63ns2b97MY489xoc//GHyPG+T64qiAELi34MPPsi1115LkiStIF9V1ZJy8jznC1/4Alu2bOHtb3877373u/Hec+DAAR544AG+8IUv8Mgjj1AURZswvGbNGrIso9vttm3YnNPB+uZ5zkMPPcR3vvMdOp0OP/MzP8MZZ5zBT/7kTzIxMbHknDT39mEJvpFIJBKJRCKRSCQSiUQikUjkx8f09DSbN29mcnKSDRs2sGrVKvbv389dd9111ASkDRs2HNeE/I0bNzI5OXmY5LJjxw42bdrE5ORk+9q/fz9TU1MnTT4ZVpdhUszKlSu54oormJqaGirjPPDAA0cUFk53NmzYwJ133jlUYNq+fTvbt29nYmKCyclJVq1adcQ2bNi4cSPbtm07afV7sfvvcmIfOrW4/vrrh7b39PQ0r3rVq064/AMHDhwmocUx7eic6mPG6cCWLVvYvn37Ye22adMmrrnmGq699tp2PJyamloiVi5nWNpgJPJyIcp1kUgkEolEIpFIJBI5KRwpMaRJJGkmaFtruf322/nyl7/MmWeeyfj4OOPj44yNjbWpY434NZh4ZoxBa93KdYOT4puJ1c0k62Y/ZVlSVRVlWbaJKM3k96IoMMZwxhln0O12efTRR/nYxz7GypUrueCCC1q5bLnUNWyi/Y8L5xx5npNl2bIUM8+uXbv4+Mc/zje/+U2uv/56jDF89KMfpaqqVi7M85xOp0NRFDz++OPs2bOH2dnZJUJjIx0Mptg555akwQ3STJIfnCy/a9cuHnvsMf7wD/+Qhx9+uBUlmrbsdrtcffXVvO9972NycpKJiYkl7b78M9CKgXmec/DgQW677Tb+5E/+hKqq6vqF853nC3zkIx/hbW97G+eee+6SZL7B8pYieFwtlJg2ac57j6cWDJRifKLDmzdeyQ9+8CO+cMe9lPksaZaCr4AST47ztVznNIpgUzkMgg3fsYBFsPUew/4buQ+aoDepBaumXZtzAogPgXm1kAbJQFqYrU2rsFwkQ6FQeJSYel8aJSneJXirgSBruEqhMHgraFVfa6qWGMSi68Q172ophiCZNfX3g0KYF0QUooIguCg3LSbwOTF4FY5B0GgMBg0iKPGUniAM2S6JWU3ZL3n68b386PtzrLnobEpzAE8JUqJNc42EbDJRJvwjmPhaFgooAXB1iwjeu/b4m/6spLa8lohijU22qA0OHpMTUN4j6JDyhw2phuIQDeIEpYP01aQRLtPZ6nPoBvaxvI/SHkto14Gf/WJpIYmRJX1r8V214mbdxZaUs3jtDUjMfmk8nZLFcj0ShMKQwbekHktT68K2ohVLVaaBXeDr89e0QL1fD40O6MOlia8lvGBKNm3j2/MWxiNZ0oa1J1qn5vkg9amQFIiDRGtcBd66OonOUZQ5ZVWLXyVUtkTyEq1BjMNjEWVwpWflypVBDrV1QqNoEt0hkS4JGR0zRqqScI0hWDyWklIW6LtDLLhpcpmjUguUrqSwlrywlIVHKod2AlbhK8FXnqqwlKXDVh6sUOUV5VyF64PkBik0C/v7HNw3i53p8d9+7bf4jbf9FzLdQVy47nEe0eE68E1719KolxMT7BbP7XBJbPD7YLpcM14P3pOGbTNIc59rylq9ejW/+7u/S6fT4cMf/jBzc3OHJbItl7OW17nZV3OPbbZvpP8mVa3T6TA/P98+bzTbr1ixgm3btrFx40YeffRROp0OZVnS6/U466yz2ueYwdS9pm7L01ebPx7QrNPsf3mC7OAxKaXaZ6pLL72UsbEx+v1+Ky/2+/32WWLr1q10u13+6I/+iBUrVgC0smOe53jv+frXv85HP/pRyrLknHPOod/v89hjj/HZz36We++9l6IoGBkZ4YwzzqDT6dDr9eh0Oq1I2OyrSaEbrH9ZliwsLJDnOc457rnnHtI0ZWpqiiuvvJK1a9e2ybyDwuXg88qRhM5IJBKJRCKRSCQSiUQikUgk8uKybdu2JSlKxxIcBpmcnOTuu+8+7gn5W7ZsYfPmzUN/O579DhNIXgibN28eWs709PRRyz9aGtArgY0bN/Lggw9y1VVXDRXWpqenj0seuu6667jllltOSp1eyv47SOxDpw5TU1NHFIZebOKYdnROxTHjdOPBBx/k8ssvP6yvNQLj8XDLLbc8r/TOSORUY9j8lUgkEolEIpFIJBKJRF4QwyanN5OnmwSUb3zjG3zzm98kTVNWrVrF6OhoO2k8yzJGR0fp9XrtpPomxS5NU3q9Ht1ulyRJSJKETqdDt9vFGIMxhizL2gntzfbNuhMTE6281+l0GBsbaye8d7td1q1bx9TUFHfeeWeb0NIIes0xHW3y/UtNM1m+2+0uSe9zzrGwsMCePXt44oknOPPMM7n44osZGxsDwjEVRdEKAY3kduDAAX7nd36Hxx57bEl5g0lygzST+ocl+zWT//v9Pp///Od585vfzG/8xm+wc+dOALrdLmvWrKHX6+G9Z2Zmhs985jP84i/+Iu9617vYuXNn2+7L9zH4vrCwwAc/+EEuv/xy/sf/+B/Mz88jIqxevZozzjgDay3ee2666Sbe+MY38nu/93vMzs4yPz9/WFv6Vhhq0qwU3kubcBbkGFWLVkFuU8pxySWT/LffvJafvOQC5vv7mVt4DlElIlUt1/Wxdh7vc5AyJG1JBXVSXZD2XEiuE0cQiGxYXus2dbwX3ls8Fc5XA7LHoqAWhFMNBKFPMO0LEvAGLR2M6lCVAj4Bn5EmowgdwKBVFyUZRnfxziBk4A1KMvAp3unwnQytuggZ3gU5L8t6iE9CCpdP6jqEl1IpSiW1OLcoG4X6hvZVKkGrDko6CB28C8IfmJD+hmDzkk4ySqpWkri17N+leXTnc0xkkySmg9YJWgta16lmqm4nJSgTkuKUAWUErVUQ3bQgWlC1Qxe2b14KpRVKC0oz8FmhjUIbXY83QSwM+/Ao5euyw3etBWXqfWhBFCF1TgZESSWLaXYqpOo1AqXUMrGItOUqJShVfxcJ69Qv1a4fBDOlmt+b94F9tN/r9mlfMrDe4u+hvRbftdHh+LRCq7qN6u1V24bhXZvBdpXQTvUL5dqX1O/K+IFXfe4S0M1nBVK/h/at21kT9mnCd50odBK+Ny8xAqbe3ggqCedTG4VJNEpptDFktZBblAV5Ufz/7L131B1Xfe/92Xvm1KfoUe+WLeErGxeMA3ljMAnFYEwJzgvXEAJcIIkgwEpbhIS2ctcCHBwgtFDDWryU0NcCEjBF2LRgyrXFNbFiy7ZkIUuWbZWnnzIze+/3jz17nzlHj2wDogR+H9ZwnjNnzuwyewpif86XwhbkRU6W5eAUaVIHFNaAtdDv58zMzPHjH9/J/r37+fHeH3PXnfcwP71I0Xdom5K4GtYajHIUWHIy+q5D186zmM+yaGbpmjlyFilUj8L1yfMeJsuwufFl5WALh82hyBxFZrGZw/UdWSej6GZQKFSWYhahdzxn/p6MfE5zxe8/m2de/hxayQTOJqS67kXiYFgCToXjUaY6hlTE+3HrlkpNW+o6PiphB7rdLp1Ohx//+McURUFRFOzfv588z+n1evddOERZLJQTro2Tk5M897nP5WUve1kU1sK9rbrdfdW93+8zNzfH4cOHybKMfr/PoUOH6Pf78b4K0G63h+oT9j01NcWDH/zgoYS7xz/+8bzyla8cKiuIc9X76eAaH+5TaqhuS8l11X2G+6Mxhqc85Sm8+tWvJs/z+JwTpPder0e/3+fd7343r33ta5mbmxtKk1VK8e1vf5u//Mu/jPfg8847jze96U38+Z//OVdffTVaa9atW8eGDRtYuXIlq1atYsWKFSxfvpxly5bRarWo1+u0Wq34HBfS7cbGxpiammLdunVs2rSJDRs2sHr1aiYmJti1axcf+MAH+OpXvxplwPAsMtpeQRAEQRAEQRAEQRAEQRB+OWzdupUbbriBV7ziFT/R93bs2MHevXt/IjHpGc94xk9cDvg6fvrTn2bnzp0/8XeXYseOHWzduvUnKv9973sfV1111Skp/78zF154IXfccQc7duz4ib+7detWdu7ceUolmV/k+B39voyhXw3uK5nw541c0+6fX7Vrxq8bU1NT7N2796eWJHfu3PlTHRtB+FVC5DpBEARBEARBEAThlLBUwtvoZ3fddRfXXnstCwsLbNiwgfHxcWq1WpTighAXZLogzYX3tVqNer1Os9lkbGyMycnJmHo3MTHB2NhYlPHCPoNcF9JRqmkpofxms8n4+Djr16/nmmuu4atf/WrcPqTThMnuo8l1v6wUu9CnYSI+DCbZ33vvvXzoQx/ixhtv5KlPfSpPfOITAWJqW/iO1hpjDOCTb+bm5lhcXMQ5F8W0MLE/JHmFCf/1ej2WGeoTRD1jDPPz81x99dX8zd/8Dfv37+f48eOkacr27du56qqr+OIXv8iOHTuYmJggTVPyPGdmZoZ/+7d/43//7//N9773PfI8PyGhJ5R59OhRXv/61/PBD36QI0eO0O/30Vqzfft2vvnNb/KDH/yAdevWoZSKQt2//uu/8uIXv5jjx48PSQqhP0KbfeBV2W7l2z3IDtMoNAovKaAMZ529ld962HlMLW9TFAsUpkNhuxS2i9IFaENSczhnMKaPcwUOg8VgKKJE55OivGDnKMrtioFgh8VaL4R4wc76bKmKUKGURlH3Up2qoVUdrfx7XIo1GmsTEt1E0YjSXJDxnE3B1TFFUq5P0KqGHyYapVK08sKbs7pM5KuDSzFFSM5L0OV2ifZLEOq0SuKi0N7UcRrwiXbOanA1NA1f73I7rTSJdtRqGmUdFDUm6+vpL4zTOT7BzOFGKeXVSesN0GBcQVqvU2s2INFeCtJeaFMKCDJaUkpnCaT1BJ0qLxRpRVJLSkEO/69oZYBdWFDOb5uEzx0+oNCV+/QLKqRx2VLg0/H8UspBoojdUS5o5deXn/m/y3I0uLJcp8CG7cOSaFSa4G03NXjVym/PYAnlWRhsm2if6la2Z3RxysUlQZEoTVKeGUPvHWgcqYI0Vt/FdToBEueXIEPqJd6PLuE7peSnaxoVhLlQz7KvVDKyLmGwbaJwWqFqCSpNsM6n66VJitYJaeLH4OJCl8XFHv1ehvId45MiUVgLSiVoEhJXp6YbYKHoF5jM0evkHDsyzb7bf8yem29n//4DHD12nG7RwdgMQ0ZBhlE5fbdI185jdA+T9Mldl7zo0u93yLM+GFuOfzC5Iu9Z8l6ByQwUDpcZssUuZBbTMdiOoTvTZ/5Ij+m7FkmyFs+74kU88xl/RCsdwzpFQuoHkG+IF31LoS5Kv2Fsn4L7XTVZrHo/DQmzeZ5HsSuk3r7kJS/hi1/84tC9qCiKeB0PQjwQP6/KcuHvsbExtm/fzvr16+/33l2V2ILs3e/3+chHPsJrX/taut0uvV6Pl7zkJXzlK18ZkvrC/agqDyZJQqvV4o1vfCPbt28nSRJWrlzJwx/+cJIkGZLogvxevb/2+33uvfdejh07RlEUKKWG0uzCvXdmZoa77rorbhNS9hqNRrzfN5tNzj33XDZu3EiSJBhjouyeJAntdpuFhQU++MEP8spXvpLbbruNW2+9ld27d/OFL3yBV7/61YyNjfGa17yGLVu28IEPfIAvfelL9Pt9Vq1axYYNG+KPJ4QfTAiJuEGmC5+NjY0xNjYWxbrwd6vVis95q1atYmpqik2bNqGU4nvf+x7f/va3mZubGzpW1WeWk6UjCoIgCIIgCIIgCIIgCILwi+Gqq65i79697Nix4z6Fo0suueRnkh2uuuoq3ve+992v1LR161Z27NjBDTfcwN69e095qs4NN9zAhRdeeNLPp6ameMYznsHOnTtjvwieqakp3ve+9z2g8QJ+zITtf14pWb+o8VtFxpAAck17IPwqXjN+3QjXtQcqWQbBWPpX+HVAyS+5CsKvDkqpc4CbwvubbrqJc84555dYI0EQBEEQBEF44FSFrerEeWNMlLi+8pWv8LGPfYyiKFi7di2rV6+m3W4zPj4eZbhqUl0Q46qSXZig3Wq1aDQawGDydFEULC4u0ul06Pf75HlOURQxnaXb7ZLnOVmW0e124+vc3Bz9fp+ZmRluueUWLr30Ul7wghewbNmyIWlwWGL65U7YrvZvmqZRDiuKgmuvvZY3vOENdDodXv7yl/OsZz2LO++8k9e97nV89KMfjcJa9bvOOZYtW8Y73/lOnvKUpzA+Ph4nqAdprl6vx3LDPkI/WGtJkiT249e+9jVe9apXceedd0ZBcc2aNfzVX/0VL3rRi2i32+zfv58rr7ySD3/4wwBxn1prnvnMZ/K3f/u3nHXWWT41Ksvifu644w7e9ra38bGPfYyFhQWstYyNjfFbv/VbXHXVVeU/9Gqe9KQncd1132FxcYGxsTF6vR5JknD55Zfz8Y9/PI7Z0AdeyrCxfd4iqvR5qVQ5DAoHeFHNGsV//uftvOF1b+WG639ETa9FuRat5hQmr+Nsm4QxEu0T4hSNUoCre8HN+dcgrilvVhHT3aihdQLU4nqt01L+S3yaWJALrMMah7Vl+p0zWDIsGUrnWJeBMoCJxy9NmyQ69bKQrQEJSnnRRkEI9CuPkX+N5WHBaS+TobHKgiplxPAaOjEkqVV61C/lVtp5qczV0dRJrCLB+qQ/VWCTAusMNV2nMApXSzma72bi7D084omnsfpx/4duPo3V05D0sDgfS0ajTCLMQdkyzE6ViX4+MU3hUM6f3w4HTqFUGWU3NAiC+TZ8PQA3aKm3M72OGeRMp9AkHD8+gyZBl5Imzo8k44bl0VCmr4/fp1KqTE0cSWZa4p/2XGXl6L/9nfhvgYPyygO15E5j6lhoY0mq0so+h5PIQlt83cv3leuppRS4lthv+P4gU3KJdlY2r/ZVtc8G61wYbqjyDDaqbLvyUq2XAxNcAamuo23CkXuPMD+/gFKaerOO0oq0lvoURg1JatGJT9tTgFMpXhYdaJi+HsrLqzYBl7Bh5QZWr1rLsvFJ0mYNlVh6doGumcOlXXIW6OUL5CYjzwxFBtg6NteYfoHLDS53mBxMBqbv0+vybobJLKbr6M4aioWEYwcWWdlaz/986nN59O8+nonaJMpptNPemUMPznXlfGpdZRTE9E6SOEJ+EpZKHg0iV5Zl3H777Rw6dIhWq8XXvvY13vve93L06FGA+Pywdu1a3vKWt7Bx40a63S4PetCD2LJly5CQFsbBUuVW5fOPf/zjvOtd7+LOO+/k4osv5nWvex0XXXTRkKSllMJay6233srhw4ep1+tcc801/Mu//At33313vHc451i7di3/8A//wLZt25ifn2fbtm1s3bo1SuFpmlIUBWmaMjc3x4te9CK+8IUv8LSnPY2rrrqKjRs3RkEwSRKstfF5pNvt0mg0OHLkCJ/85Ce5+uqr6ff78b4d+ifIeFprLrroIv76r/+aNWvW0Ol0cM5xzjnnMDU1RbPZxDnH7Ows1157La95zWvYs2dP7Os0TeNzm3OOVqvF5s2bY936/T6nnXYaL33pS5mamuIDH/gAN954I6tXr2bFihVMTk7GVLqJiYn4QwnVH00IP5SQpmkUCUflwtFkw5BcWBQFMzMzTE9Ps337di655BJWr16NUio+JwTp8FfleU0QBEEQBEEQBEEQhF8uRVFw2223Da0788wz478hCILw07Nt2zb27ds3tO5kQsauXbvYt28f+/btY2pqiq1bt/Kwhz3sp076Woqvfe1r7Nu3j5mZGaamplixYgVbt269T0HkVLNr1y6uv/76WIetW7fGRXjghPFy/PhxZmZm2Lp1K1NTU6d0zPyqjd9qWTKGBJBr2k/CL+Ka8ZvKZz7zGXbu3Mn1118fx2MYhw9/+MMfkOAo/HT8qvzvmN27d3OhFyrdAAAgAElEQVTuuedWV53rnNv9C63ELxD5X4mCIAiCIAiCIAjCKWEgJDEkXQUhanp6mu9973ssLCywbt06JicnYzJckiQniHRhfZiInaYpjUYjJp20Wq2hfzQIE8zDd0NdQn2qdakKY0VR0G63McZQq9VYt24dP/jBD9i6dStPe9rT4ner0uAov4yJ20tNGk+ShAMHDvCJT3yCgwcPcvnll/O4xz0OrTWbNm3i4osv5lvf+hYHDhwYmtAemJ2d5U1vehPbtm3joQ996NAxCDJekiQxESfIBSENJyQJXXfddbz2ta/l4MGDwKDvtm/fzu/8zu8wPj6OMYapqSlOP/30KOaF/rXWcujQIWZnZ6NwV6/XYx3e//738/GPf5z5+fk4OX/r1q287W1v49xzz43H6I1vfCMvfOHzuemmm+j1erHO119/PT/4wQ9iYlAYu85ZnLMDse7kvT9QwpwDBWed9SCe9Yd/wOG7D3Jg3wzNOuRFinNNamkdZzKM7ZEoXZG2NLgEq5SXrVSpaKmkIq9oUBbn/GvQgnxdlZdgSinMC0waXaaYOWdwLnynTJ3DesnHATFrLAh1ChcS5VClUEN8jcJXZZ2X6DReIEr8a5TXFPELQVgb6saq1KVQGJQDRxJLcbFdKqZmKaVIdYpxNcYbqzCdQ8zd22BjMonD0jULoAuSxGFsKCLIbl6a8cfO79tqL6MpHwPoezh4WBW70J9rKrZjuC2DF9+3g5QvVabyEZrgGMheS42uoZ27iuB4YhpoXOsqtakIjA/senWijBQEuyUvbVXjMrhpZcPckuFmyg+RuHGox7DUN+i7Cm6kn0cJx7askz83gjpXjss4VnWlfWWaWayz9sfbKbRKUUlK1smYOz7N3OwCiU7RiQajUDqhyAxJUp6z1iuCqjzAQUCrpSnOWaz10pTTPrOvMA5jCu686w4O3X3Ap6ZuWMeqVSuwtYLC9cEWZHlOr5/jcLhCYzKLKwyusJjMQa5xBdjcYXqGomcp+oaiA+QJxYKlN10wfXiOLav+B09/0h/y6N9+PEnSQLvyHKuM6VHJcujsDH7s0Bj46Qn3kiBxffazn+Vzn/scK1asYHZ2Nv6fcuG6Fu7Db3/721m+fDmHDh3iz/7sz9ixY0d83gj395MRxv369et53vOeR7vd5j3veQ95ntPv908Q8cLfX/jCF/jc5z7HxMQE09PTbNq0idNOOw0Y3NuMMbz73e9mamqKQ4cO8ZKXvIQdO3bEe2fYl7WWdrvNy1/+cjqdDg996EPZsGHDULpeSGzdv38/73jHOzhw4AATExNRLjvvvPPi/kK7kiQhz/PYxl6vx7ve9S4ajQYzMzNkWcZrXvManvzkJ8e+X758OZdffjlKKd7+9rfT7Xb5z//8z5jSF9q3sLDAzTffTKvV4pxzzuH888/n+c9/Plpr3vrWt3LzzTezYcMGJicnY+JcSKgLQl11Cc9z4ZkPiPfxUVGy+iMC9Xo99s/Y2BgA+/bt4/Of/zyXXnopmzdvptlsYoypyPIDUVIQBEEQBEEQBEEQBEEQhF8uF1544c9dCPlVSMz5RbTzN4FftX78RdbnV63twi8PuaY9cP671PO/I894xjNOeTKiIPwqI3KdIAiCIAiCIAiCcEqpyhxBAOl0Olx//fXcdNNN1Ot1Go1GTC6p1+txUvVSS5C7Go1GTLlrt9txMna1zCRJGB8fj5Psq5OsQ0oOECd2B7kuTNweGxsjz3Nuu+02du3axW//9m+zdu3aoXLCRP5f1mTt0VQorTVFUcS2zc/Ps3fvXlatWsVjHvMY1q5dG9t+ySWXsGvXLj7ykY8MyQQBrTW7d+/mq1/9Kps3b2blypVxfZjUHoS7ah8Eya4oCu6++26+8Y1vsH///linPM/ZsGEDz3nOc3jwgx9cpqX57RcWFoYSasKYCWOi+plzjh/96Ed84xvfYH5+Hq01/X6fRqPBunXr2LZtW5TxnIMLLngIq1atiu0Pk+0PHz7MlVdeyec///nYj74vKsd1VPKJYV5BnnEYY0sxR1Gvw2MfdxH7f3wb//rhrzBzfBEKqKcapTMUKSbvkSY1L1q5sFNdKkHJIPvM1SvlFqX44lP1Qh3DWAzHpyoTaK3Baaw1KA3aKZzSOGwpwEUnsEzGS1Eu8XXRVbGv8ldFkBuOswttcOXr0Igi9FiMDBuM3lgJVTF2lArKmYVEl+VpnNagE7BBl1KoQtGojTHfaTJzt6W76Gi22xQ0yF0PpUBrf7yc9elkuuxlnzAWaqeIK1U4Ni6+DdJYqLcqZcJwvJQbbvVS1wal/NFzzif9xfFOMhgKVM7vIKk90MvMCYmAS9VloEsFATCM30EbR5PjGByTKMVVBEIUlkHqHqrytwM3ItA55WL/xrVqpM1D7bqfDogWZDgaYV8Wn/w4kOkG40vF4ZgApkysQymc0yibkqo6x2dmuffwMeq1JrV6SoL2YpsrqNVqfszHcDpVjrFS9FMKf3qqUnS1WFf4dLw0RSeKwmQUtuDY8Q5zC8e499gUq9Yup72siVaaIoO8V+7DaVzusLkDAxSqTKyz2Mxi+g7bB9vVmEXIO47O8YLpu7tsXX82z7vij7lg+8Nopm2c89eA8moR1UO/2CHpc1ikHerKn4jqdT1cj6vX9ac85Smcd955OOcYHx+n2WzG+0yQt5VSzM/PY61ldnaW8847Lwp6J0soq5Y7GDKOlStXcsUVVwDwwx/+MKbghs/DvUcpxWWXXcZZZ52FMSbWrVarxeS4cC9bXFyk3++TZRlnn312rJdSKqbSBYn/vPPO48orr6TVasVygkQYBLMtW7awY8cOZmdn448OtNttGo1G3Db0T6PRiD8YEH5oYHp6OpbtnOMhD3nICffVJEl48pOfzJYtW+h0OrzlLW/hzjvvZHx8nG63G0W4brfL9u3bedGLXsTExAQHDx7kE5/4BHv37mXt2rWsWrWKVqtFq9UaerYLS0gkDkJd9ccUwnNeeM6oHsdQz9DXtVotptWuW7eOubk57rnnHr785S/zxCc+kS1btpwwFqo/ICAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIJ0PkOkEQBEEQBEEQBOGUUBWtglQVJopba9mzZw9ZljE2NhZTR4JkFSZWB3Frqb9rtdrQ5O1AdcI+eMGu1WrFNJqiKGLSWrVe1dS8RqNBt9ul3W4zPz/P+vXruemmm7j22mt59rOfPTQZPdT7ZCl2vwhGBcYw0b7b7XLLLbeQZRmXXXYZj3rUo4Ym7m/atIlHPvKRfOMb32Dv3r1DiX7GmNjGD37wg1x88cU88pGPjO3UWkehIAh91YnwoX+vvfZaPv3pT8d61uv1KBScddZZTE1NxTo1m01OO+001q5dy5EjR+I+m80mGzduZGpqKpblnKPb7fL+97+fffv2xXEFDMmFeZ5H8TLLsqFExSzLaDQaZFnG9ddfzzXXXMPFF19Mo9HAWltKgqMT8YfloGCVOKdL+apMjdOwfPkYV1zxNG695TBfuvobXmwwNUyhSYL8o5rl7sqEOJXiNRefFoey4GqgbEVKq9bj5MaVl7X8tl4so3TYFBZVSkUD4U2pMqWLmi/fqfsREUJC2KAfYr0rco6XmtRJtq+2SQ2tVWiUc1jlBpKWUmXLNdYp328uielx2iqKRcX03V2m751n7aYxVFLDWod2XoTz8qL1qXU+ty9+f+gMLtPx3CCXMIpkUS4EHGbwleiKnaTfQkKd0z4lzfooPVc5jgqFdXbkiyFdcHR9ddejItzJpLpBXaqGVDWd676In+tRUa/cT9kJA90wyIsuljPo63IdpVNXFTWXqPIDcrgq5cd6KUrBrixZQWlm+uOv/ecOQ6oTn3bnNElSR5mUznyfhfkutlDoNMEWoJwlbSRYY1FpOTCcA1vuvxT9nPYJeBaLKv1QwvhRBdZ6kbFe89ddnKPf73HXwTs5Pn0PK9euZPmq5ag0RdtGuY1CG4UrDHlmKPoWk/skPZc7ip4lX3SYDhSLCfNHuswfydi+5QKe94wXcs6ZD6HmamgSlFOYUmpVoz2svCgbD42rmHTuAR2Nkx+myj0zXjfLcXr++edz/vnnA8QE2qoYH+7ZIemues2vjvWqZFwtt0qow/Lly7niiit43OMex5o1a07YX5DUzjnnHM4+++xYl/A6WkZIhAvSW1XGrybrBqntwQ9+cJTGqvfS8H7VqlU89rGPHZIDT/YMUpX4guxeFfWqacLV/gvC2gUXXIBzjquuuorp6WlqtRp5nlOr1eJ9ecWKFaxatYovf/nLfPzjH2fv3r2sWLGCFStWUK/XabVajI+PR6Gu2WwOSXXVtLqwVJ/Dgmg3Ol5C3Xu9HlprJicnYxLt8uXL0Vpz5MgRvv71r/PoRz+azZs3D6UaS3KdIAiCIAiCIAiCIAiCIAiCIAiCIAiC8EAQuU4QBEEQBEEQBEE4JVQnhQNRVtJa0+122bNnDwDtdjvKckCc/F19DUv1fZqm1Ov1oUnTodxq+WGfzWaTVqtFv98fmiAeJraHyechdabdbrOwsECr1SJNUw4fPszu3bu544472LZtWyyjKhH+shLsqm0NiThaa+666y4++tGPcvz48Zg8FyaWh2Nx2WWX8V//9V+8973vjalxRVGQpmlM+tu/fz/f/OY3Oeuss1i3bt1Qckw4xmFifhAGFhcX6XQ6XHPNNdx7771Rtgv9HlLqggCQpinNZpOnPvWpdDodPvnJT0Yx4MILL+RP//RP2bJly9CYuvHGG9m1axdzc3MxrQeIwkKoC4SEIF9G+Kxer8dxOT09zate9So+85nPsHnz5pHjGP52gB1JBfMymVKgwlgPgoN2bNq8hosuupD/+8ObOHLvLIXp0G6Og7VgC4qiR6JBkeKUBvKyPI1TCkjRypXii6+LitKQQylbCjDD43Go/sqiYgJV+T288OMIto9GK43WNbSqQZTvlpC5VFmHSnLZsCxX6TflUJjyO3rk89Cnrtyu3D7sNwqLDqdMKaZpUGDLZD+lfEKYVopUKaxzpNTJO5bZ411Wrx1HJyo6VtYaEm3LPrQEWS0Idz67zNcrpBc6R1k25fulJbYytw4VzbGTCG2AcgPRbPBaJv7dh6gbjn6MzquMxVE5zr+GdEMqryPdXxkX1VqP1mDw3vitXLj2QDXpzikVM8+G5Dr8qPJBjaWIpvw4cq6iMN6H23f/19cgYQ4qHL8ykpo3aKwqAwodWOPP41I8THRC1i249+4jLMwukqgUWzhqOsEZCwZqtZSin5E0SjVNOe/tqTD+B3Kav6bmKO1QSXnN0AYMqDxFO0U9SUmUptfPmZueZ3Z2ltahNmecuY2kVscWGf1u30fsWXDGG3ymcPQ7PWzPovIUlyX05gpmj3RYOFbw0LP/H/7o8uezbcv/oJG0SF2Cyw0qSWOm5FJ97MMpw3lho1QXj5Ufuj8VowlylH0U7vdAvBcF2a0qR4XtwvPD6H34gdyPq2l2QQ6r3tuqQnr1OSSUX00MDXUYfR+eW6r33yB9h/sfEO+jo9+rpuKFPhiV7KoiYbX+oyJftW7hXhhSAat9Yoxh+/btdLtdWq1W/CyIjZ1Oh507d/KBD3yA/fv3s27dOlatWhV/MCEk+jUaDVqtFo1GIybuVZPqqmJd+HGF8LxQ/eGE0WfJ8DyhlIrpfVmWsWzZMoqi4J577uFLX/oSz372s4ckfkEQBEEQBEEQBEEQBEEQBEEQBEEQBEF4IIhcJwiCIAiCIAiCIJwSlkpySdOULMu44447uP3221FKMTY2xuLiIu12m3q9fsIE9qUmylclu2pZ1Ynmo98Lct3i4iJZlg0l5YSklFqtFoWyMDG92WyilGLNmjXs3r2ba665hjPOOAMYnqBeTYX5RVIVA4A4+b7f73PrrbeyZ88eli1bxsaNG4cm7Yd6j4+Pn5AIV6vV4qT78Pfb3/52tmzZwrOe9aw4Ib7T6dBut4dSg4Ic0Gw2ecMb3sDnPve5OBE+iHuhn8I6rTVZllGv19mwYQM7duzgj/7oj+L3ms0m7XY7JuVZazl06BCvf/3ruemmm+L+wnHN85yFhQX279/P2NgY8/PztFpjOOc4cuQIxhiWLVtGp9OJxzHLMg4cOBD7J4gMKkaRQZDAhgUdL2RVU8+8m1Mmkrmc33/a47nnnuP860c+y/SxLs1GQZH3SEio11qAwWFQUfZyg1dnK8KIF9CcMyilfWKaLcdxWW4YE4PXcmwoB85AmdgWUsWqKVRKJT7JSgWBI5xLI+dYRaa5P4lFqSCvJQzS9yh34IaXoX0EHUkDppTJfL8Yp0sBLUGRkJs+qYMkKdOi6jWsySgKC06jXIJWpUBl/fldFRRxDuf0oIxkIIqF84TKMLjvhLiwm5MYYmV6mheuBnKdtb5tPhWvTH87oS9VPCaDPjpRrhvuw2pfBllwWMxRo2VFcW/4mPo9uMGbJcqJf6nQd5VPRrw5Vz23wmduZNejLbqfVL2h+p6wo0HbB9uUYqwKrXPluavQSmFyw/z8AsePHaMz32f5xHKU0xRZQaOVYvICVCl8Wut90nBuxHOL2CitNUprlHY4VQqvzpYDB1KdAAprDInWtJtNOlmf6eOzZDffzpbTt9BstdDOYmyBKwr6/Yy87ygyhSkstnAUnYz+TMH8sZy5oxm/89DHcMXlz2XbhrNo6jGUdV6iTS0YW4m1LFVAF0RBBpWvnPg+xe6+RcgHfpyGx+SoRBcEeBiW56qfL3UdGn0uqLLU88noeQFe9BtNegOG0mtHk/GWkujAi+/hflotsyq9VZ9hQpvDPsP6pdo12u6q9B9+jGA0xS9IfaPpeqHeofxmsxm37fV6NBoNFhYW2LNnD1dddRUHDx5k06ZNrFy5kmazSbPZjLJ8SKurSnUhyS48cwXJLixBrgvbjYqN4TkipPOGhLuqoDg1NUWv16PX63HXXXcxPj4+JCaKZCcIgiAIgiAIgiAIgiAIgiAIgiAIgiDcHyLXCYIgCIIgCIIgCKeEpQS3wA9/+EMAJicn0VrTaDSWnDReTUerTnwPk7+DJFZNbqsS0lfAT05vtVqMj4+T5znOOer1OkVRkOc5SZLEBJdms0m322V8fJwsyyiKguXLlzMzM8OPfvQjjh8/zqpVq4bKqk78PlUTt0/WplE5pNpXQVi79dZbee1rX4tSipe//OVccsklcaL/aMrdaaedxqZNm5iZmcFaGwW4kHhjjGF+fp5ut0uv14sT19vt9pA8EPo6HKO77747Tn6vSgjh82p6YL1ej9tMTEwwMTEx1A+jaUFFUTA9PU2/3499H44nwHe/+10e+chHRtGv3++jlKLX6wEwOzs7JGlaa+n1eicIks6piuyjGCSbMZSOFd9TSjUqCBY1xscTnvOcp7Nv7218+UvfoNu/h/HWOrB1imIBrQyKHKc7aBokahwY8yIVNQwLJKrm07KUQbkazlk0NZQG6yxQQ2lFkvh0OOss1ofaoRNXumsapxpY63A2x5qCRINWVPwZjTMuCnuDxLbQxqqwFUKsFG6pjsCB1XFrL/mFTaoSoS/L91cQ28Aq6xPerEK7xHs9GrQqcEqjLGg0uDJBSvt92X5K0zRpM07N1OkXBp2CsTkGi7E52tbRtMvm+P63uosjwZoEXIK2qvSiQuKeqgh2lf6IqXsDqRKnB9uXEpkCX2+0PzAuZWJ8Jd1ORp71qNVq5FlBrZaiXO53X72U2EEC2qC/Sxmn0v/aqbJHdTwMrnK8qofbH9/K8Q5HQy1x7KtHtnK9dqGSypbuqSnbWC1bDfZbqVP1PyH5r3J1G8iKQ6LgiWJUpTmhF8r1A5nIAS5KUkEwtoO9KYelILE1kqJFYtp0pzNmDvRwMwnjehzdV5CCqmmKwqHTBGctOinbZDXGACpFJ6EvC6DAYUs5VpXurO/z1HmZKGtlYMDkpWTrNBhomDFcXmfhkOGom2ftxjqJcmT9LqZwmExh+gnFosL269CtkR8z9I4W9I5k/O4FF/Pc//cFbF53GlppkjJ5zmLQ+AS9E6Ln1MhrOB7RflQjn/1sVK/vo/fPUal+qfVL3Xsf6H34vr5zX/Lw6PeWkt6q9a2m7I629YHU+76eL062rlrOaJnV+iz1AwZL7SckvxZFwde//nXuueceli1bxtTUFGNjY7RarSjUBTmuXq/TbDap1+tRpqtKdeHHDcK9uCrbheS78H0gPrP1ej2SJCHLsrg+PLtprZmamuLo0aN885vfZOXKlaxZswYYvnZV+/X++l8QBEEQBEEQBEEQBEEQBEEQBEEQBEH4zULkOkEQBEEQBEEQBOGUcF8TlMNE6TBJutVqxfQUY8wJk58DISEuCGB5nmOMGZrAXv3e6ET0JEmo1+s0Go0ojYWEtjCBPNSjXq/HullraTabUbD72te+xtOf/vQhoW40befnxclSs4KkFvrwrrvu4sCBA6xevZpGo0G322VmZmZIcgtS4WMe8xj27dvH4cOHufvuu5mYmDhBNLPW0ul0YgJOvV6Px6FWqxGSCcO28/PzrFmzJgp34+PjdDqdIeExSHfVfVSTicK+qv1cFfhC+k0gfNdaS6PRiGk7i4uLcR+NRiPKnGE/QfQ7/fTT6fV6Q+lB5Ual5HRikld11ZJhXijqDVi/fpInXPoYvvOd/8PCfJ/FziyJVrTqDZwtCNKew2FdgSJHuQZauTLtyuHQYIOx5HBl0ln5LYwpsMYCmiRNqNXqKK0wLo/tVEFYwqGVwqfC2cq49YKaQw9MrJhWVj23qq8nERMqQ9VLUqUapoJ2Vkk8i/uzlf0ELcvGariKlOUT50zpgRmcdSit0CrBGEfW75f7VFjjSs9PRT9rkAJXpqpZcGUSoXPgrIvHxG+wlAATpLCQwlZJvXNBuCNUHIUtj7Ej0RqtEmxhsFZRusKYYhDf5lAM0hJVfC1HL8QxEN6XR3Bg/xEaHPdSPUTVZLlIuc+Ry1jYppryRXmcfLdacI7QzaVZWDmPXOz3uE81IiyqQUur44KwuxOrxVBVXXV/gwMd5c6w5xNuL0He1tTSGtqlFD3L0SPTHD1yDGcMSb2OKayXCBOFT0X0+/RpkKFfQFkLtppiFhoQxpSKp1MQS62zKDRaK9AalfrRYgpHmqSkqeLovUfRiWFyeQuTO/Lc0O9ZTC/B5TV6831sxzB/PGPxaMYjHvq7/K8rns+m9af5VMpS+tSq1OmUf69CTZa4dQ37dT+/e9vJxLb7W/dAPnsg2/409+2TSXGnqp4/zXd/2jqF8zr8aIHWmoWFBcbHx6NonyQJMzMzfOQjH+Gd73wnU1NTnH766VGiC8l0VcEuyHJVqS4IddWlmlgcpLqxsTHGx8dpNpsx0Q6g2+3S7XZZXFxkYWGBoijiM0i9XmdychKlFNPT08zOznL06FFWr14d2wWDZ7WfJA1TEARBEARBEARBEARBEARBEARBEARB+M1B5DpBEARBEARBEATh50KYsL1UCt1oWkp1m9H0umqyWq/Xi5OuTzZhelSua7Va9Pt98jwnz/OhCd0h9c1aOyTVZVlGrVZjcnKSQ4cO8d3vfpeHPexhbN26dSgNbjRZ52dldDJ8tU0xNWpkYniv1+Pmm2/mFa94BbOzsywuLvLSl740tjscizRNybKMNE1Zvnw53W6XhYUF6vU6i4uLOOeo1WoxCU4pxate9SpWrFjBc57zHGq1WkycA2IfhT6YmJhgbm4uSnj9fj+mAwYJL0kS8jwfStBZqo1AFCGrE+yLooh1yLIsioNFUfCQhzyEf/7nf6bdbpNl2ZKJPFWJMwiWGzduHJILQn9VJb6flH7f4qzm8sufwC233MZ73v1hWu0JlDMUpotCkag6XouyWGdQriBROajUa3fOJ9TpUuYipOg5RZLW498ohUo0tXrNpwi1GtTqCdY4TGEpsoKsn5EXYAxYY0rdx+JcSDYaCGxKWVQlrc65QeqX70MVv+NFKggpWMMSlyv3G9K74ieVnvIyVBQrXZk6ycBL8o6aLUUkLx8lGCilSp16Ya3Ic2ZnFsgzi9WQldugNdaVaXfGYbDo0mWzpU8YJbRR6cINn29LyirRAgztCUJXua6UrywWrbyAZ4oCnMbmDpzGWBuNptEiBuWPSLYV8dGH6amR7VTFKxyWl70Up7xn5YLMd0IRpVs4uO44byf6fnDE4xqy4AZC5fC1eKhsNTICbBgnJ8Oe8Fl1+1FJs/qtcG0abDOomyvPPeUUxlpM39BdzJmZnqO70KVZb+BsKfBah7a+rrZctK0Ie66831l/roTzx7+qE8aWK88nTeh65eMkrUVrRZKArWmSQjE7O8/dhzI0q2k0atguuK7C9TS2qzDzjvmj83SPF/zu7zyO5/3BH7NhzSY0iqSUARW6omeeZKAJv1GM3m/D361WC/D32iRJmJ6e5lOf+hQf/vCHmZiYYN26dTF9eNmyZfEZq91unzShLkmSoXS66vqqhNdqtZiYmGBsbOyE56qxsTHq9fqQoB+uL8YY+v1+fLaZm5tj9+7drFixgvXr1w+17+f9YwiCIAiCIAiCIAiCIAiCIAiCIAiCIAjCf19ErhMEQRAEQRAEQRBOKUFMCuJap9Ph4MGD9Pt9Go1GTETJ85xmszmUnjK6GGOiWKe1pt/v0+/3Y2oKDCewjBLSztrtNr1ej36/HyeNB8FLKRWFr1DvsP9ms0m73ebee+/lu9/9Lhs3bhxKQaumrJ1KRoWepcS66rrbb7+d22+/nfXr18cEN6UU7XY71i30NxAnojebzZhmF8oJ7QmS3fe//32e9KQnsXr16iichWNSFRvzPI+T3sGLdCGhLsuyKDOGBEMgHtelkgvD+An9rJSK5QdJMnymtWbt2rWcccYZLFu27D77tSp6Vsuoynw/jTBZHQPNpk89y3O47EmP57rrfsD//eHttOqaVqMJtsCRlWlxpWBWJpw5lwMtql/aC5YAACAASURBVOljoNEqRZFC+ap1mf6TJOg0od6o02o2qDcSdOI9H2eDzFqRnZTC2dDfBqU0DlOKdqPJaAPpa4BPyvM10ygsAwErGUq7GwhnXjIadNGJwlhMp4t/lWKSU/6dAuUszhmCcOWFO1+PPIdev4+zGkWKKzQkBpf49locznixDmdB+TS5kC2nsANhzYVzrnq+LV3v6gaKiqhWJpXZMsEuSRJs7jB5gcksSiUU1qC0Aqti2YM+CmKaGnlfFlcZosq5SrcP+jp4Wzg7yNurVr1M6lN6uD2hDr57RuS6E5rtvCBHEOcqol4p53nxLUhdpRgYu8mNdOdoGUuUGdappT4evkaaUtgcCKI2lqtQKJfgrIYCZo/PMzszB06jQpJjGUVorQPjQIMx/rxQiUJpL6+F/nKuIlpWxoyrJoqVa7XSpVRX9mMZlqgThSoUzhVMTi5jYX6aew8dZc3qNShTw3YM+TzkCwWd4zm94zmX/u6T+J9P/kPWLF9LSoJ2ySBlLwwEFWIVWeK8Fn7dGf0xg3Dvrq4Pf4fEun//93/nHe94B0VRsHnzZpYtW0a73WZsbIwkSWIybEiQC8l1VckuPFtVn7HC+pBY12q1GBsbo9lsDqXyhmtO2HZ8fDw+PwIxXa/VapFlGa1Wi+PHj7N37162bdvG6tWrh2T+0A+SXicIgiAIgiAIgiAIgiAIgiAIgiAIgiCMInKdIAiCIAiCIAiCcEqpCksAzWaTlStXAkRZLohMIZUuSZKhxLog12mthyS7LMvodrtxMvfJxLZqGlqYeB2S3EJKWSCUE5LbjDFROsuyjJUrV3Lw4MGYXnfmmWdGyetUptadrA1VRtua5zk/+tGPuPLKK1m5ciV///d/z3nnncfCwkLs4+p3g9iotWZ8fJzvf//7fOhDH+KWW26JAlzoi5AI9/nPf54LLriAF7zgBbG91e1COWGyfKj7aHJclmUcOHCA+fl5JiYm4vGuTqQPxzN89kCS/MLfnU6HNE1jfULS3miiYXgNCTghzW80Te/+hMn7FiB9opdOLOeffyb/6wXPpNP5MHfsPUa/36CeplhXA2XQZaKZTxEzeJFO45xCkZTiTuIXlwD+M+cUVmnSNCGt10jrKSr1qpstwBSOPC/I8yyec9aakXHlpTNVymZeJDIV8cb6hLKK8DWQp3xCl0+7o+IS2bJPvDI4cJ0GEl5V7AmpeQpV1sbE7fw6FffjnEUrgKIUEUPyH2CC5KTApeBSXOFwTnuZEIO2bljKc2WtSoHNaBOj1UINhuQtVWbqudgLsSnKutg3MdXPd3GUm7KsoNvpkWeOtOaweZnM6Eq5rnxVQYQrj9GoCeWFtsExHBb//N9qqHJqcOyqsl4w4oYviXETV1Zelcl3sc0VgXIwnAZioXXVfqiMgyjDVUQzNSrtDQTG+zoHl5ZjBiJpKMLZsF2ZpKrK8anxUqNJSXSDPE84ds80c8fnadVa4DTOeInR6vL4WoUzzq8zgHFolBc2K/JiSONLtF/vQkeFaxBDVfTrS+lQqTIFUisvSmcFytbIO47eTE7iUsxigpmD7pEMeimX/d7v8weXPZ31KzdRcw0Sl6KchnA+DHWjWHWCZ/TeWL2HZVnGNddcw5vf/GaMMWzYsIHly5fHFLogyLXb7fg8VhXsgmRXFemCYF9dGo0GzWYzJtbVarVYvyD9V58Vwo8CNBqNmI4bniHGxsYwxtButzl69CgHDx7kQQ96EOPj4z9TEq0gCIIgCIIgCIIgCIIgCIIgCIIgCILwm4HIdYIgCIIgCIIgCMIpoypJBUEpTMAOsla/36fZbEYxqyiKKEWF90GKG02yy/OcXq9Hr9eLyShVwa0qY1QnjNdqtSjXVdPwwjb1ej1KVvV6PX6nXq8zNjbG5OQkR44c4T/+4z/YsGEDk5OTUdz6eQp2of6hPUslrszMzLB7927OOeccHvrQh/KQhzwktqt6HEb3VRQFZ555JlmW8c53vpO77747TmQP8hzAsWPH2LlzJ094whM4/fTT435hWEwMxz7s31obj2uapszOzvKhD32IjRs38nu/93uxLaPLfaXKhD4I4yPP85iUOD09ze23386555570r6sjo9Q1zDpP/TPA0khHK3fCcmCZWIXWJJU8fgnPIpjR2d5+1v/Pxbn5kiTSTQ+zUuppBRqfNqY0grlyvUkMUXLOe3fUwp2oSCl0Rq09glkXlYanIvWhfQfXx9nLc5ZXJDdrMMpWwpdgDIVY0qhlGWge4WPgo01muTmys9G5cfwaRDxqmNyEKhl1SCVbtCReiAshkQ2l5dincbisMaRNLyI2+9nWJ17OaoU67xk5LDWeNmt2vbQLnwynirFxSHBLv53KdBVEyTLjlGADu6a85qgDt91YK3B5oZepw+mbGXZ1cqBUQ4d5DpXilZOYUvpUUXVblhEC87a6Kh1oeDYvhOPmQpW5ElwFVluaMwr50VG5cp0xNGyBn8Pp8tV+m1oX0vVwZWKoD/OJ461Sgibqyb/DT63sexQK0dpwvnwQqvQJiEzjmP3zHD0nhmKnkUlCbZw2DK50enSlLPDQXvOOl+udaBLkU8rVBRshwXc4eaV9w+X+G01aDTWlimNSqGVwllLs9bEdHP684aG0vSmC2YPdxhTU1z66Et44mOfxIZVm0mpo6z2iXVKDQuWgvAACM9fd9xxB5/97Gc5fPgwF1xwAWNjY9Tr9aGEuVarFdPpgkwXRLqlEutG11UT69rtdhTrTpasF6juMzwLJElCr9eLP6bQaDTis+LY2Fjc76lOGRYEQRAEQRAEQRAEQRAEQRAEQRAEQRB+ffj5zgAUBEEQBEEQBEEQfmMZTUEJYpu1lizLyLJBolZVrAvrRj8Lgl3YV1EUJ013G00pU0rFieH1ej2mnYxOAk+ShHq9jtY6CnlpmjI5OUmaplx33XXs3r17KBHt50Woe1VYC+WG/uj3++zZs4darcamTZtoNBrAcLJcOAajfzvnWL58OWeccQZjY2MnJMcFtNZ861vf4pOf/GTcxhgTP69KVJs2bWJqaiqKkVVRLssy9uzZw8zMzFAbqxPpw/5Cyt5SyYRBGjPGxMn8zjn27NnDP/3TP9Hv92NqXShjdB9BLqz2832KMD8hYV+6DI5aNjXOxY+6iAc96AzSVGOdBafQOiHRNZRKUaRonZLoBGscWIUKQp3TpbWV+O1UWJKBCKm8DGSdwxmHKXwf2XjuOL+4gVznMFhyrMtwLgdVAGawlLKbV8EsKP8dny5nh179UsTtB98ryvV+n86VrxRQrg/bOAxWVfdnvQVVJtQ5l3udzhU4V6C0BQosOSqBJFUURYYpDMoqn+DXd9jCUWQGW1hMYTCFxRYGU/h+srnD5Q6b+TQ5mztcgU++K/zftiB+ZnMGSwYu901xhcNmFpNZbGYwYcltmUCmcIUDoyj6hRe4ys98Ge6EJdTD5BaTl+vzyvvc+qVYYim3Mbk5YbG5pcgLbG7LMnx/+XqE71faXKYhhr9Dn7iyD8MyVH9jB6/GYo2rbDf8agrr2xRfia9+HyGRcZDMaAuHM8pLiuViq5/n/lxwxguYzgzaY8q+1aZO3rHce/AoC9MdtKtjc+WPq1Fxv864OBSdJSbUxcVYnCmFTRuSFr1Y6l3bYSkTQKuQKle5NivlBb3Ef5YmKY1aA4wmX7QsHs84dmiOidoKnvS4p/GUS57GptVb0EUCRoNLSlN0sO/4H+XFPSd+0W8kJ3tuqYrxxhgOHDjAW9/6Vm688Ua2bdvG+Ph4FODa7XZMpms2m9RqNRqNRlyqkl2Q4Krvw7rw/bGxMSYmJqjX67Eu1R8SqNY31DEk4FVl+7AuJNfW6/WYPlz9AYBfxLObIAiCIAiCIAiCIAiCIAiCIAiCIAiC8N8TSa4TBEEQBEEQBEEQThnVSdFBUDLGcO6555KmKVmW0ev1aDQaUZRrNBpDcl2Qt6y1J8hk1lqKoqDb7dJsNmPq2FKCVLVOzjkajQbOuZhmEvYfJl6HSd/V1LogcNVqNSYmJpiZmWHXrl2ceeaZrFy5cijxLJR1KqhOANdax7pWZcE8z7nxxht517vexbp16/iLv/gLzjjjDJIkGWp7IMhuYV2YnL5s2TJWrlzJHXfcQZ7nsU1hInye50xPT3P11VdzxRVXsHXrVpIkiX0Xkumcc1xxxRXs27ePD37wg7HMagJhURQcOHCAubk5Jicn4/gIda0m7Y2Kd81mk82bN7Nr1y76/X4sP/TP4uIiN998c9xn2J8xJta3WueiKLjlllvYtm0b7XZ7SGK8v+O41OfDY96Wx6F8X1i2bdvAIx7xCG69+fM4q6g1GmjqOJfQqLXI+gqla+BqaJ2WUp1PbsNplEorZSuU0uhEk2iN0rr8+STnxTmrsbY8p4zFGFuOIW8GOQzOFaCMl26sxWlFqlJsmSQHIS/Nx7H5pDhAe2nHB4KpkWQyQJc5d6GLqml+Q0lpgwy2kAqHChpQWO8Tx5QCpzRYi7EGazOfUKYhM12oFTjtaDZTwGDygtwV6DTBOi91OWuxypRZd5SZaC5YUhCSwmKVfeJdGUQ3LF+W/RLPe1RMhnOlRBXbEJP7FFjjRTbj09ic8zIhVkHqk+pcmRMYk+sYXFtC7yjnynzAQVtONmSdCvUsE9EcPqnQaZzyMqZWg2RCrZQXvADrTEwZdAxS+rBgsXF/lsG5E7DODsZGJdUuRhVWjn1sb9zcDeXVKbx0pvEpeqpsly534GKaXGir9al1sU6uMlT98bBY74/SwPQyZo8tknUtY/UU54MPIfXnlbJEgc4moKwD41A6iEk+MTK8DymQznqzLiTRxb6ptD10iRfr/LFBKdCOtJZi+xalNI1ak2y2oHt8jjXLN/LER/0+j3vEpSyfXA7Gp1sqtD9+cUwzOG4QezTkIIpj95vHaHrbaNrw7bffznve8x6+9a1vMT4+ztq1a2m32zSbTZrNJo1GI/5dleeCVLeUWBfuxWG7JEloNBpR2gvbjNat+lw3+vxTfS4MsnxIsQvbTU9PMz8/f5/3dEmyEwRBEARBEARBEARBEISfjb179/6yqyAIPzUyfgVBEARBGEWS6wRBEARBEARBEIRTwqjYFt7XajXOPPNMTjvtNLIsi5OiQ/pcURRkWUae5+R5vmRiXZChgqCVZRndbpcsy4bkrMBSsl1IqgvpKmmaxsnYQJwMXp0EXqvV4oTy8fFxarUaP/7xjzlw4MCSbT6VVCeSJ0lClmVxkrgxhm63y3XXXcfevXtpNpucddZZMbkuTJivvlb3F/pSKcVFF13En/zJn7B58+a4nXMu9nOaeqlr9+7dvPGNb4zHJM/z2G+hPqeffjqbNm2iXq8PlRuSAo8cOcKHP/xhvvOd78R6hsnwoa6hXseOHWP37t1MT09TFAUrV67kZS97GWeffXY8ViG9MLS72+2yf//+2NaQThdkvJCiCPDRj36UF77whdx1111R6gx9+7MeVy8oBjHMi3BHjixy8ODd1NImWqU461PorFFAiqJGUShwdRRpaffo8jVBuQRF4qU6rcvUO41OEpJExzKddTEky7nwvhS+nC3r5VPpnCqADKf6OPo41cPhU+wcPh2umjznKilzPnUuH3nv16Fy/5nLceQ4lWHJsK6PdX2M62NdeN/D2F75d+a3dznWFVjnU/UsfaAHKse6PkpZwJDULI4eVnewaoG0ZiiKLkWeYXMvT7lcQUxgK9PScihCIluGT6zrO0zmKHpQ9Pyr6TuKPhTlZybzaXUmx/8d3/skOZv5BDznmw85uMyVCXN+f5QJeBif/uZyn2ZXZJYiMxS5T24LqXEupsX5fVOm6lHYmBxni1DGYFtbJr65PJSD/27ufL1iAl8oq2xLFtYrXFw/+NsVvv029EHuYsJfTNHLrV+XDZL2bGb9Ev6O27qYAGgrfRr2H/rcVvs/rCsGx8PlKvalKxTkfnEhqS5zFH2LyXxKnyoSMClFF+aPd1iY7mF7oE2CsgmYcl+WMvXOxfQ9a8Ha4SSs4LOdsM5V1jFyz/CXCB8yp7xcqhSgHQ6LwaBSjVL+PpokKVPLlvOEx17G4373CSyfWEGqGmjlrwsqeKxJUgqpA7HO/12RHIXfSJa6x4V73w033MCb3/xmrr32WiYmJli7di2NRoNWq8Xk5CStVis+P4Xno/uS6sL78HdIl2s0GrTb7ZgkHIT+0cTh0XXhOaHf78ckZBj8cEA19bbf73P06FEWFxdP+Y8fCIIgCIIgCIIgCIIgCIIgCIIgCIIgCL+eSHKdIAiCIAiCIAiCcMqpJoWkaUqr1eL8889nz549HDlyJEpuQagLwldIOauKdWHidFgftu33+/R6vZiEcrJ0kqpYliQJrVaLPM8xxpDnOWmaxknaaZrGMtM0JU1T6vU6ExMT9Ho9ms0mR48eZd++fWzfvp1WqxUnc4eyQvt/1v6r1j+0E7xAliQJO3fu5E1vehPNZpMHP/jBUTDL85xarbZkCkxVeCyKgjzPaTabXHDBBUxOTsZUtyCsJUlCr9cjTVM6nQ7f/e53OXLkCKtXr471AZ8U12q16Ha7LF++PCbEVRNlrLXUajUOHDjADTfcwKWXXhqT7YChBMEsy/jMZz7DN7/5TV784hfzqEc9iizLuOCCCzjvvPO47bbbWFxcjO0NwsCtt97KH//xH/Oe97yHCy64YEjsq9blU5/6FH/3d38XJ/iHdgYR4GdF65Bg51O5tFLsun43//GtH7Awr5gYa+GsJklrWOdFuzRpUeQJikZpxJSpdWj/dzm+ldIopWOyYJJ4yU4pL+QEgcdZC2Yg+tiYhlgm15EDBqdynCswzuKMJlENKllyqBD5pSrryuQrjy2Tx+JoiFJRHH6VJDetKJPMQrpdEP8G/efKtjuUl44oRU2d4gwobVDaeUlPdeibY9Rq0G4nGNPBFD1IHC7zghnap5W5IC8BOI3D+hSyynkbQ+tgkNrnaz4S0qdwzuff+fQ0V8kFK1PSnJezwKJRXoLLLC5XqMT5xLpypwbQ5SoAWyaz2djrtuyyyrWB8rg4f+wpE+j8upB55+JehvFJadofMZ+aV7535XEJx7G8vOEUWDf6qrz/GfZZpuRV+zMk3o1KXb7qZWpeTNXzSXG28h7nHVNd6SdX+quDS5wdEoascpUyyn4tP9baX7O1S8k6juP3ztOdz3FFgis0KknAKmwBJA6VeHHOOl82IZGurKe24LSvrLUWrXRMyvPjpDwSrojJk6FuKOXHSGiH9h2ltC9Da59qmLmcJE3ZtG4TWx+0jVa7BSRlIKID61A68UPZ2fLn1GzZFxDGbzVUUvjNJNxzwzNCeA77x3/8R3bu3Mk555zDmjVrqNVqjI+P02g0UEoNiXX3JdeFJSTLVuW6sM+JiQmazeaQWDeUDjryAwnh8263y9zcHJ1OJ6bNhh9kCNuGv8Oz2WgibhUR7wRBEARBEARBEARBEARBEARBEARBEISAJNcJgiAIgiAIgiAIp4Tq5OjqROUgUD32sY9lamqK48ePR7Gt3++TZdkJaXWjyXXVJazLsoxer0e/34+TrJdKrButY6vVYmxsLEp5S00Gr04SD4Jdq9ViYmICYww//OEPOXz4cPzOKC6KTD97nwKxrlmW0Wq1+P/Ze7NY2467Xvf7V41mdqvZrZvtOHYcJ3bsGMcBEhFxOUCASATuDTdICPKQkCdAiCcQiIeQgCIklAMBJECHiIQgENIBLhAhkC5JuEpIgkMSJ3FsY9xv97tZe625ZjPGqPrfh6oac66193ZzMJxjTn1bQ3PNMUdTo6pGzSG7vvlbLpd9qtsNN9zAL/7iL3LkyJFeIvPeXzRpfT3dZT1RrigKXv/61/OBD3yAm266CQjy3XK57AU2CBLbAw88wE//9E8fuObUvumY73nPe/iVX/mVPqFQVfskG4Bz587xh3/4h3zsYx87cJwk9u3s7PDxj3+cT3ziE7ztbW/jtttuo+s6yrKkrmt+9md/lttuu62f2J/2q6oKEeHOO+/kx3/8x7nrrrv6SfXpOqy1fOQjH+G9730vV199NX/6p3/KFVdcgaoyGAz6lL5/K6u2NyiwXChf/9p97O0uKOyQwtQYU+PVImJRbxApEUqEAtUCNL5iQEw0YlKbJkEoioNmpVylVMGu9TjnQ9qWT4l1iqpbLXQobZ8g1/k5SBMWGqALiXZ0wBKkC8l2LNeWDpUmrm/w2uJ82yfTKS1ISrRbohLfm/gqDoxDxfXHQGLUmraoNggLlAVCE9PrQlreop3izD6O84y2GiabNd4t6dolrm1p5g3twuOXfpV+thS6VkIS3TKmo7W6SkZbgluCXwpuKbil4per9d3aq0/JaktwC6VbeNzC0y087cKHdfE87dKHcy4kpqjF8zThXDjwDnDgYtpb13hc43HL8BrS9dbS3mLSXCqjLkGbQ69LcI2gjRxIqPNt2MY1EhPiQrqbX/s7JcR1KcGv0UssPl7P2tIorg3bp/PE5jyw+CYl4sXyxWb3XVwf37uY8Lf6PCTo+Q7aWI62Vbputfi1xDrfCXSCOBP2a5R2ofgFdDPH9PwcbQxGS7plqAOcoE5RR0yq8zG9TmNC3cFUOryizoftNaTbpbHgQHrdZb4b0pogACkYMAXYGjwdxipYZbbYZzrfQ0UwYqLkaDBFGRLrjDmQWOeTUbdyHmOS5Usy1GVeZqxLaCLSp9P+1V/9FV/+8pe56qqr2Nzc7J9/koC+sbFxQKRL38frScDrz0yHn62KomAwGDAej5lMJgyHwz49GC6+P9bvk/Tcslgs2NvbY29vj8ViceAZsSxL5vM5y+Wy335/f79PrU3nyGQymUwmk8lkMplMJpPJZDKZTCaTyWQymUzmcuTkukwmk8lkMplMJpPJvCSsy3XrMpcxhuFwyGtf+1quu+46nnrqKXZ3d1FVjh49StM0WGtp27Z/TZLbeiJdkoYgJJUYY/r0upQ+tn7+NGk7vSYBryxLBoMBdV2zWCx6ES1JYuk4afK4qrJcLplMJjRNgzGGRx55hLvuuouTJ08yGo0OpJ0dTox7saxPAE/HSsl6xhhmsxkf/ehH+fCHP4y1lscee4zf/u3f5gMf+ECfNuO97+W2VJdpIrq1tp9g75yjKApUlZMnT/b10zTNRQluVVXRNA3f+MY32N3dZTKZHJALl8sldV0zHA5573vfC8D73ve+vo3SeVL9feADH2CxWPDud78bYwy7u7v85V/+Jb/zO7/D/fffz5vf/GZuueUWtre36bquv/7Xve51vPKVr+Suu+5iOp32iX3pmq213HXXXbzjHe/gL/7iL7j55pspioK9vT0++tGP8nM/93NsbGzwR3/0R3zTN31Tf33rQuK/vQ0dIhZrBTzcd99jfOYzd1LYCcP6KPgCawq6pqMsRni1+A6KYoDrLJYCsASZziJYgl23kkiNCMakDDkJCXkKzinOaZRRNaarGVCHqOLVh2gwcUAbFmlROrwqmJI+Tk1DdppiYoyYQcWvRKCUcKcpVS19oGmDkMwV1yk+JNpxcXqWEtL1wqltEA8BwaG6QMXjtEa9obAFXh1iWxxT6smco1dOsOJomgVt14B1qJewWFATRKRQh4YUqRYCvuIYsRavJrhQ2zFdTmIqXEi209U1ph2cjUbTKkHNiqBIygxDnQbRzYFK6BsSm9WXof1SgpuPaXKe1BdTwtt6cp2yqk1/aMxbT4ISHNo7VqttUn/VPiXOq6KHrk01yJkqGutAY3rhKg1KiIFuIvi1sqTq6lv8cMOLv0SSWh8d2F9hKGCsn3jlRiQk9sUyH7xlY9lTKlxM/dOYCikCrVcWex37Fxa4RrEYPOAKxbUeFY8UgnoT+lEU5bwPbSM+JePpSlgL0ZFr6Y0pWfBiUiphkuGkr6uYFmiFrmkwhaeeDJguGp7deZpHnn6EW27coy5GWAqMhB7mvQPCd67i8WJi+iL9OJGluv/9WH+mSM83aSnLkk9/+tP80i/9EsYYrrvuOuq6ZmNjg/F4zGg06p/F6rruf2zgUol1SaI//D4lwo5GIzY2NvrntfXyXerHGdbHkOVyyXQ6ZW9vj+VySdd1eO/71/TcmJ5vUipxut4k2h9Ox8uJdZlMJpPJZDKZTCaTyWQymUwmk8lkMplMJpNJZLkuk8lkMplMJpPJZDIvGeuTotdlt67rKIqCt73tbXzjG9/gzJkzjMdjuq6j6zoWiwV1Xffbpdckh61LYmmCdJpAndLrkuh1OJ1tXZpKpBSV+XzeS2dpv3SMNFE7TQxP6Wjj8ZgLFy5w5513cvPNN/Pa1762P+6l5L7/UdKx2ralqirOnz/PdDrlj//4j/nlX/5lZrNZX7d/8id/wunTp/nVX/3VXrDb2tqiruu+HOm6uq5DRGjblgsXLqCq3H///bz//e/nwQcf7CepJ5Fwvf7KsuT+++/nh3/4h/mt3/otjh07xpEjR/De95Jb13Vsb2/zUz/1UwB9WY0x/YR3VeXJJ5/kgx/8IB//+Md7ifKJJ57g3Llz3HrrrfzMz/wMd9xxx4GknVSWX/iFX2A2m/H3f//3TKfTfiJ/27Z9Ut6jjz7Ku971Lk6cOEHTNIxGIz796U/zrd/6rfze7/0et95664E0v9S3UkrevwVjQr8TLO1S+ecvfpX77nkI8UdwRjC2wJgCh8WaMiSWIQglXm2U2QxCAWv3VFjAWIOxgpggFCXtKwmGQQA6mKyl0fYRIYpIihLS65AWCGl2XhdBBxMJiXkA2kUxDXSVkcdBUyqJfya2V1SHUoTWIatnXTcSiVZSFPeUst8fbVGW4TMFr2EcmHcLigEslucZjRrG247ZfA/nlzjtEB+FMW9wnYIJZ/RRdpIoQTmVkC+oEq4xGFGrccRrX+/Kqh6TWJYMMLOeCrZ+jZJUMEE76JYOdQZrwyUKoa/4OAZdJL3JpVOXohsYaAQmxQAAIABJREFU6o+UkXhwG4nGo+/rWw8dIW5ngjgp5uC5VFb3R98eB/ZdvSY5L7zKSnTTg23d/xWrLvXHA9eW5MV4QCGU7XAdBCfSH9z30LHgoKwYREmLMSFBcH93xmLe4jqwYhFbgDc4p+AU7xWcgPPgQLwgXjHeBMnO2PAa7ymDrKXarQogHGzX3onUXh+Mwqb2fc3jcLjouzqkUDrpuO+Be7jllW/g2PVXhPbVdK9Ifzwxpq8bif9IYqGubu3Mf27WhbL0/Qv00v6XvvQlPvShDzGfz7nxxhsZDAZsb28zHA778Wg8Hvc/SmCt7cW6JK+lZ7P1Z6b1Z6e072g0YjQa9c8AqRzrzyiJ9XGwaRr29/fZ29tjPp/TdV3/XZ2S62azWZ/uO5/PMcZw7bXX9j8akMlkMplMJpPJZDKZTCaTyWQymUwmk8lkMpnM85Hlukwmk8lkMplMJpPJvCQcTlxb/7vrOgaDAd/xHd/BF77wBT75yU8ekOJU9UDySEofCelbvk+qs9b265Jc1zQNi8WiT5pLHJbb1t8XRcFwOGSxWPTJJ2myubW2F9DSOauqous6RqMRANPplNOnT3P33Xdz3XXX9RPWXwqSzLI+4bxtW973vvfx+c9/ntOnT7O9vc329nZfbmst9957L+95z3uo65qTJ0/yEz/xE3z3d393PwE+iWlJWvzbv/1bPvKRj3D+/Hl2d3eZzWYcPXr0gJiYXtPfKd3vnnvu4cd+7McYDAb8wR/8Aa961atomoaqqvq2N8bwkz/5kwyHQ37t136N2WzGuXPn+nZWVZ566inOnDlDWZZsb2/zxje+ke///u/n277t27juuuv6BL2yLA+U6eabb+aDH/wgP//zP89dd93Vi4eprKn97r33Xu6//37quubYsWO85S1v4cMf/jC33norbdtSlmWfuJfqJyX/rSfrvFg0yi7OGZ54cocvfP5ORArqekRZ1AgW7zRKhQbvoLQl3itGLOp78waJFkwv1xnBGNaSHU2UyIJw2rWK6yTeIxrT62KbhjwrFAfqUHGodkGy0xbVDucsRuJxZWVvaUx3U0npV0GEW0lUMdHOJzFvTS4iyUcS160lxPXbKdAFzUhjKhqg0oI0KEE+M7Zi3sxR42hdg5cldtAw2lTm+3uI6VDa0J5SoiJ0nUMseHGpgfpzig/pdSmJDe8RY0K7xLFm/R4I/VtXZY9FF5fS4lbXHAh9wYhFO6VZerSDwh5MPmvj9QXBba3yerkyrurXx1Q3k5LJLoX0ZVzJdZeQz4wHFcSs2kJVUZPGI39o3ySErdLQjMhq7SUKk/rSAcnvcjGGfb0lAy/03VV0IH0SnUtt2pfr4PUZCSmFXiHmFCI4HIpfOOb7DeIFKwWigjpFO4daxRce5wRxHvWC80AH2GBTWhtkO6NRIk39Kop1PoqZpr+NDomTJmqxKgfLndIhFepBSTsLwmgxsDT7ypnzz/Ds2Wdor2kpyjLcqwhibejH0bUz8Xr79Lrnqu7Mf2pSSh2Ee3E+n/PJT36SD33oQzz44INcf/31HD9+vP8RgcFg0CfUrUtyZVleJNet/52eR9K69EMGk8mkF+vWU+pSeQ6n1qVxd12sm81mNE3TP/ulH2dI3/fz+ZzpdNon3R5OFb7UDx4cPm8mk8lkMplMJpPJZDKZTCaTyWQymUwmk8lk/vcly3WZTCaTyWQymUwmk3lJWRexUlraYDAAYDgc8l/+y3/hy1/+MmfOnGE4HGKMYTAY9NJVSq5zzvVSXRLf1mU7AOdcn1SSJnwfTqm71KRpEaGua4bDIfP5vD/3+sTw9cSvVI6qqmjblq2tLZ5++mn+8R//keuvv5477rjjgIDTiyQvYOL25SaZr2Ot5Xu+53s4deoUp06dAqCqql4yTOfc2dlhuVyytbXFDTfc0MuGKZktYYzhxhtv5B3veAdnz55la2uLjY2NfgJ+SgY8LCSmBEFV5bHHHqPrOra2tg5IdWnyfBIS3/3ud3PVVVdx+vRpfv/3f58LFy4wGAz6NjTG8MY3vpEf+IEf4KabbuLWW2/tj7Hel9I1pjS9G2+8kQ9+8IPcc889fOYzn+ETn/gEzrm+Hq21/QT8H/qhH+JNb3oTr3/967n11lv7cqbzpzpKfdYYc1HOmqxbPasWSx+vXhU8HmMK8PDAvz7CV796H9YMMVIjlIgWeG+xtsK5IP4g4DoPJqaQ9eaaASyqFkyBGAtGEBs+NgaQkLCmXvHO47pwLO8c3rcoHUKHigNaoMNpA3RolO1UGpxf0PkgJBlbRDknGWSpBg715V728uHafRBUVyLRek0K4GOql4/iV9xSFFUXfSsXrzkId2iDagfisVaZL5YMJzVzf45iMGM0bplMGp6ZzzE2ZH51ncPIEiOeznvEgI8Cm48VnmQj1GEw8fzBeDMmCJBBSpQoaSXBLt5HMZVOk72lq+sVAa+KegcIVSG0jadbuJCIhmKljOKa4FOUWChQL/EJB9Od/PqYYtL7KMHGE6/GEB/3i+skpgmmWu+drpV4t5LpCHJdVDLD5tpLYd7H8UEV8QZvVudPiWy+NyjD+9U9nc4pqOihtDntP+tT3NQfSC1Nf4soXvxqt3Uk9dZVgqIxIQXPe8W5huW0wzWW0lRYafHO0bUNDRaMoSwFdYI60C6KjEZCkp0Jwqn3irhwHSksTrxgRELKXQyANL0d6UF87PU2phvGxD31K/tNFFMYtFNMUeA7gykKqlHJ7u4u9z98H7ddeztXHb+a0tR4JxhMOG+su/V/SbRMt6ysOlvmZcPhsfTQWo3SprAa59aa2DmHV6UsSv7pzjt5//vfz9mzZ7n++uvZ3NxEVdne3qaua4wx1HXFcDCkqivquj4g2K3Lc+ty3bqIVxQFdV0zGo2YTCZUVXXRMxKs0vUOP/8451gsFkynU+bzOU3THBDquq47INml56H0gwspLS+TyWQymUwmk8lkMplMJpPJZDKZTCaTyWQymRdClusymUwmk8lkMplMJvOSk+SmNFF6Xbx6zWtew80338wXv/hFptMp1to+eS4JXEmsS5O1k1CVEkrSROy0bjabUVVhAnhVVZcsU5Iy0n5lWTKZTNjf36dt236Cd0pfSe+dc5RlyWg0Ym9vD2MMk8mExWLBuXPnuPvuu3nlK1/J0aNH16QPOZB49WJZJWSt5K+3v/3tvP3tb7+onte3vdQx1suwPnn9lltu4ZZbbrnk+S9X5vXzrQt7lxMErbXUdc0P/uAPslgsePWrX82ZM2eo67qX36y13Hzzzdx88829PJfaeT09LrXd+vubbrqJ17zmNXzLt3wLd9xxRy8FrMuBy+WS7/zO7+TUqVMHyp7KWRTFgb5xmRYhJZDFs3NYTJEoXqESxR5hMXd89a4HOPv0kkKOUNox6muEEUY2UF/jqDC2pPMeYwWnjlKChCamAi1QKlQrMBXGWkwhYMHYII1BSK4TZ8Al0UtROlQalCVIR5DpFqgs8bpERFEVnHqkmOHcOVrdpLAVYku8WNTHazI2WDlqoqQTrjMlkSU/SmQJrNotyR4QRDCJolUSyELKXbS8NKpAYvBikJTo5Rswjs5P8XaKnViW5Q5zd5rJ1nmOn3S0zWmaZRvSwKQAbEgnkw4QOudi2U2U+ySmAqakL0Uc4TpF8QLOhSRBHHg1GG9AyxjNpqiAI4ifRmrw4HyLGLBWgizlHcYITjyL/WUUy4TloqOuKlwXJTNbBAENj4gST4o1BGEuVptXCYKXUbwqnXMYG/qLMQZjQ4dw3uPVYY0NYqH3a3LVSsBRVUwUGY2EY3vvQpc3cfyWMobp+ZhsVeK7DmsNzimixSrHTkLZgsEVhS71h7SgKFnGej6QdCe+l/8kyYuqFLYI5QKwls656OwZLnXbpn7l0/goUBRxbPfKctkw222o2gmlFrimDV3QVngVvDNoZ8EZaBVMlFnFYI3FYqBwKxVQwphk4tUZNVFO9RjAFIA4MB2Iwwh0vgh9UDxiPM5HCU8U9T7eDwaRAhWLFBVaKq1d8Mgz9/HYM/dx7NgmBRZLjVEJ90wSNPFhiRapIuEeuMT4lXk5cCnBe+1T1eBnxuHXx3taJYwH1hbgPV/7+t381//6Gzz++ONcf/31bGxsUNc1W1tbDIdDRITRaMR4NMRay3AQvq+TSHdYpkvf20m2S0td10wmk16sO/zDB+vlPvyDBN575vM5u7u77O7u9j+ukJ4Pk0SXhLumaVgul/2PLSyXS44dO8bm5uZFIl9i/bkok8lkMplMJpPJZDKZTCaTyWQymUwmk8lkMpks12UymUwmk8lkMplM5iXhuSYor0+cPnr0KLfffjtf/epXOXv2LIPBgOVy2SfPlWXZJ5Eksc4Yg3MhEStJaynFzntP27bM53NGo9FF6XXPNYE6CXbpfGVZ9klwh5PsvPd9Wpz3ntFoxO7uLv/8z//MTTfdxPHjx/vzeO8vOv+Lqb/1+loXFNdFuctJdYcT9C61zTrP9fnhsh/e9oUcO6XBjUYj3vrWt16UCpjS5oC+7g8f+7CkmOrYWkvTNFx99dW8613v6tuwbdu+LQ+3R5IlL1d+EeESa7lYaDj8fnVNiME54V/vf4I7/+krzGZLNicFIiUhkS2k0QULwiJiMRQIBYIFtSSBL4lsQRqLr8ZgzHpfIKZxebyP5ThwFTFtTdI1R5GKIGh57xB1iCjLZp+ikCBkuYZkFWlMRTJiozcVBUChF6CCYKSo+riEc0tMvxOzSn2DKFGp6WvS0wWxSCq61lFYi4jSdTOq0iLa0voGW9fstztINef4yQ3G4zm7exdoy5CcZ0zo+0nAMlESDFXp8V7iNQTRSKOMaDSkqIkRnG/7FD1J0pILJpiIBTzOu1CX1gSpRQ0qHlUXrsY1eN9ijOCdYm1IvlwuHYVU+HYR2lvCfkniFEIqm6jixAOxnFHM89FHDO0sqA3CmFMHOIjXoBCS3ZJQGodFH9P0jI0yMEGmW4mO7mDfwsX+FlMknaPrHCIdqoI1wSfV2BfQ1flZO++6lCtRIPMXeV6h70pMYNMotTpcLw52vlsLi+wucS+ukv1AohBY0XYdzgUZcrFYoh1456McJLjWgxWi19bfUyYFzsU0Pk3uYKqg+D5cXxgrfOwzXoK86RWM2nAcDN7EbL4o1AklXoOkKygFfjVuGU9RCt43FLWnHC555uyj3PvgN7j+la9msDHBGoEujvt2lUtnMITWFkRTAqcj/yfhlyPP/ywRHOgwxofbJSVghn567tw5/vBjH+MLn/8811//So4fP85wOGQwGFAUBcNhEOqqqsLaINMFMc4eSKtLcl36Oz0vGWP6/cfjMZPJpE8ovuxVxe/o9ZTi/f19Lly4wHQ6pW1bnHMHUuratj2wpATi2WzGYrFgMplw6tSpi6T5w880WazLZDKZTCaTyWQymUwmk8lkMplMJpPJZDKZTCLPpMhkMplMJpPJZDKZzL8LlxKxRITJZMJb3vIW/uEf/oE777yzl+LW0+vSpO2UjJJSS9KS0snW16XEkqqqDqTXrctmh8uVUuiWy2Wfftd1XS/ypYniEFLYBoMBqkrbtn0iy5kzZ/jiF7/IqVOnuOaaaw4kzr2Yidvr5XoxEtthgW5dXEvleDHHfTFpLuuJM5cipdClNkxphs65PjHusPyW5MmUVni586alqqo+oS5dayqTMaYXN7uuo6qqi/rBJet2fTL+6mp4vuSgfjcp6Vrh3nse5P5/eZhBvUFphxhqVNckOkLCWhDsSkQLoAxpXERhKwp1RgRjBWsF28t1wUzy3uOd4rogAznn0SjZ9TbbmmQVBC5QfBStHKotisNrixeL147Ou5B2BDgf2yom1vVyXTxSL1VJksCifaSrxDrRcE6R1T6SJCURnDbYwuLpUONxIqjvUFnQYcI67XB+SqvnOXbMsLFlWbYzuuUebljQtS1iBSuGZdshCtYkAcqTctPQYISZYAeiPoiGQUhzQTgUE+QtFfCCxpS5YCl6HA6vMb2sKxGxiIQ6DZJdhxQhHbEqakajMefPX2AxX3Jkc0wzb2nbRZD8TJCqFI+ohxhQ572PIpdgTRHFvtAH1+8DawzeO5x3GGMoqxJjLd4FAdB7j0cxRkBigqeAcx4xNop1UcSRVSKlqoIRXGxP78BY1wtmxgidNgimT8jzqtgiCohRcF0JskHuSnLgKkQtpReGPyVFIUZRL40jEstcFEG09jGlLRxv7V406TghgbBznq5ztG3TvxZU1MZSlzV1UTNvQrKg+rCPdA7tBOnAWoK36MB5h3gNIXQ2JIN5q0FsNbFPqwGKqJCCVYPXIibHudAvreAJaZBogdEgw4VCOCTkIob7xDq8bZDKYwcLFhdaHnvyIc6cf5bjm1dTpvsNwgVolFpFsF5Wn9FxKX0483LgMt876dWkHx1wWBtSE328UQtreeKJp/jN3/xN/vzP/5xTp05x/PhxjDEMh8NesBsOh33qXFlV4TmsKHrR7nBy3bpol36IoK7rkHw3HjMYDA6kAR8o96G0uvT3crlkOp2yv79P0zR471kul71Ud/g1CMvLfr+mabj11lu56qqr+mfFS9bb2o8QZDKZTCaTyWQymUwmk8lkMplMJpPJZDKZTCaT5bpMJpPJZDKZTCaTyfyHkFLgRISrrrqK7/3e7+XBBx9kd3eXwWDQJ9a1bXsgHcU5d1GKXZKvkrhRFAVd1zGfz6nrup/sfSmR6vCE7rIsGQ6H1HXdy1lJqCvLsp+APZ/P+wnkVVUxGAzY2tpid3eXr3zlK9x+++1cc801zymFvZi6Ojzp+3CS2/q6yyWzPF+y3L8lxeWFbJvEtlSWoiiiLKS9HJn6BKxEwEtdV3qf6iW1P9An56RUvKIoaJqmFy1Vte9fRVH0feyF8/ypddGoiVKL4dlndrnzn+7imad3GFZX4H2BYrF2gLoqyHQU/avBIkm2U4Niokgl8XqJi8HYgwmGOA1ynSOkbkXhVDWpPSnHzofkNvUIHq8OtEPE4bRFWWKNR9TgOgvqEepwHO+wUYgkptIFAUpQWcl1ikWj8JQ+QzWcU+lTzEjC21rGntqO1jtcB1UxoFOHGI/zM4wYOu1wOJxrsPWM4XjMspnSTi+AaVgsXB/KVQh0nYBTGjpc6xBrEB/FMqcsm5DMVxRBbHJdE+RPOspB1UtdIfVOMAjeh34rBoqyQA2hPxkQPJ1b4nGUdcF4Y8Tm9oSNjQnOeaqiYrKxyWw6Z76/ZH9vH2sMTbPA2grT57TF1EmR0BdUsMaiXdCirBQsFw2u7ShsifdKp12QME2JAns7iygyrnVTY7AiOA3r0zjnY1Kd03BvWrvaqR9HhXjP+ZhQaPBOKasoPTq3Wq9K59souCXrbV2gCUKiNUFw1JRuSLrvQ7KdVw8aytB1Dmc8JqYomtLSth1qU+LeulynFwmyC13GdgfXeowUiBq88xgs1pSgDb7ziBW8E7w34BTrgpsa5DpFXDxnUyIlqDjoHBiPWI9RBUy4543FqsVEYTbJnYLgnGJMgaXAeY93DiPh+o1qFKNCXSGCN4JUhmJU4kbw5LnHePCJ+3nl1a+mKkdBkjxQEQZxoQaSFkoaBzL/6XCuwxjBWlDvEBMEXUR45JGH+G//7aP8+Z//dyaTEadOXcVgMKCqKo4cOYL3vhfrkiAXEusM1hZUVX1Rat26XJeWuq4Zj8dsbGw8Z2Ldpb7bk0S3u7vbS3Lpxw7S0nUdTdMcEOqapsE5x2w249y5c7Rty7XXXstoNOqfF57vWSiTyWQymUwmk8lkMplMJpPJZDKZTCaTyWQymSzXZTKZTCaTyWQymUzmP4yUOldVFW95y1v47Gc/y6c+9SmGwyGj0ahPIVmfuJ2EuvQ+CXVJrkrpaCnxZLFYUNf1JdNS1lPZ1uW1uq4ZDoeoai/yJfErpaM1TXMgncVa25f7woULnD59mul0yng8PnDe55PQXqjQdjhR7nLX8lzHeyEpLYc/f660mec7VkqVC8KOPSBOpoS6ruv69k2y3OUm5K+fP/WB9XOl/VMbpbIniSgJdWVZPvexL3/2y6yOsqA6VIOcdv99j/C1u+5jufAMqworA6wZ0LWGQkpI6XVqCEKdxCWkWCEm/N2n8YWUsHXJTgiSWL944qvD+y4mtWkU3HxMU1NUQwSX0qHagGlRXaIsMYWGNC1vEMBrkBq8ehQbJCb8msAjfVIWonSH+kWfVhZFPzEShTqNCXhhO/UKxqE4iqpEtWF/tkddW1q3TwcUlWXe7GMqz/ZWCfYCe3t7+Nke3i9oXZCanGtxbYtYS1WUgOI6R1nVLOczjLFUtsSpwQDOKJ33eCfUdY3XhqYNAl3qv513MQ0wSIvVqGZjY4vxxggE3NIFAQpFxVMOLPWoZjQeMBjWoZ9jKauSyWTIuWfP45pB6JMqlGaIeo8GMxGHQ3281zxB+lJDu+xwS8fW4Ainrj/F9taRIN5FaRUR9vb2eOjhBzm/c/6ApOw6BwgmJsd1cbyr6hqMwbsu9GFjaNsW9Z6ySsmIDrFEb00oq4rFosHajqbdD2OmKoJiywIjgsSxG5GYkBjbW4myWLxnkngX+5AxIb0tjcHOSpQ5QSXm+y0cXadIkcaDePscGO/B+yDbdm0b0/QMtGEskJRQp4aqrClsQ9d5jAn7aQh17NPs1Md7zMfvMjXBU/NJHvVYPGrS/SaImjhqGMTHQvo4kpgB2knMfzQMRChMCXhabZB4n4LHRcnOoaj1mArOPfMs9z98L69/7RsZHd0IArsmo8pEVzElNa7qhOcZtzMvH/qUUML3Q9M08UcBlOViST0YsFjM+d3f/V3+4i8+wXg85pprrqEoCiaTSf/cU9d1/9yU0unSDw4URUkVU+wulSyckuzSPuPxmNFodJHAfinJLYn2IqHse3t77O7uMp/P+x9bWC6XeO8vkuzatqVpmv65b3d3l8Viwetf/3pe97rX9WJ9ek5MZchkMplMJpPJZDKZTCaTyWQymUwmk8lkMplM5lJkuS6TyWQymUwmk8lkMi8Jh2WrS02kNsb0KWLHjx/nrW99K/fccw+z2YzZbNZP4E4TtlPSmHOun1xdxPSs9fSzruuAkCCVjpMEuFSWw6yvq6qKyWRC0zS96JWkr3Qd6+d1zvUy18mTJ3n88cf51Kc+xZVXXslb3vKWXuxLy/PV2/NxqWS65xLqUjnTZ5cS8A7Lf4dT/i617XOV53LlTmVJ9ZoEy9Q2adK7c67f7lLHvlw9pcSblIy4fv2p/VKS4GHZ7nLlD3W1Sn8KKw+fGC5KgIpyXNfAFz7/FR544HG2Nk4yGmzTLEpaJ5S2Bm+BNYEOCUl1mt4XCIJIgZFVXzIGTBHKb9bazXuP68LiXUitC0aQoiSRLiXZObw6CqOID3Kd6gJlhpFlTAFTbGFRrzhdogJiwWnwdoJEqBC1oFRX3nu8LmN640qaCNWtOO9ikJnvKzTJd855uuUMNR5jKvAWYzytc3jfsFgs8HMoB4bN8QDcjJ1zF6hHyqzZp2kWaFswGI6iyGa44qorOHXV1YyGQ6wYOu/pmobJZJMTx49TVTXqla4NUuapq6/h5JUneOT0w3zqM3/PuQtnGQxrvHcYI5RViVgJcqKFsi4RgaZrsYUyHNTUwwFFbZFS8OLptGG6WAQhxRZ0zQwUNo8NqIbH2N+bMqprZDmkcy4kDxrBeeK4ZjAY3NJR2ZrOdMy6Bbffcgf/59t/kCNbR1EHEuu6LEta1/HsmWdZLheUVUnbdRhrMNZyYXeXxx57jGeffRZVT13XzNtlnwxqbRBez507x4XdCxTWUpYV88UcQSmrEmss+/v7fO3rX+Ps02eZbI2wtqBrG9R5tNSYigi2sKv7L942QVp2NG1DURiKsgj3qfqQ6mZCkp3zUJWWRdeCBnlI5NB3gVkbw5KoeWgMc0WQTltaxAQh1Ukb7i1tsGIpzQArSzq/xHfgTRiTcGCchOQ6H15D3xa8tEQFNYw53gQh0ocLNVpGw0+QTsCEtizEYI3FyDFa12ExWFuBU7QN922poR68dLiiZd7McdIgtIBiSnCF5/TTj/LIkw9wYvMExgJUWEJ9ro9Z/SgX7LrnMogzLyu0F+zapqUsKkSFxXJBPRgyn8359V//Df7wY3/E5sY2J4+fwFrLZDJhNBpRVRXWWjY3N7HW9pJd/wxVFNjCYssCa+xFgl1aUgLwZDJhMAjS8PM9d60/x7Vty3Q6ZW9vj8VicUCg897TNA3e+16oS+l1Sa579tlnOXv2LMePH+ebv/mbGY/HtG174DnwUmXIZDKZTCaTyWQymUwmk8lkMplMJpPJZDKZTCaR5bpMJpPJZDKZTCaTybxkXC7NLAlAaZJz+vtNb3oTn/vc5/jEJz7BxsYGg8GAuq4py7IX6pJIsS7arSfXJakqiVxNE0Sc0WjUr18nyV3r5S2KgvF4zN7eXp+qloS9lHqS1qdUl8Fg0Et2w+GQM2fO8PDDD/OGN7yBra2tFyTNvRgOX8fziWcvdgL5pSS6l4r11Jh12Q2SaKMH2uSwZHcp1ttx/VrThPq0Lr2/FJdP6VOCtNDHbIXt+081Jnil/cKnxlhU4alnO+6951HmM8dkUDLb7xhUWxQyomsEIwWqgopBxBAEPomynWCkiucL60UEsYoYxUg4r8TAOK+Kc+C89vdLqEPfp16l60kJciE6y4Pp8CyAOcoCMUuWzQKvBQUlrnN0XYtIFE5dQ1UVMRkvHCO0qV8lKEmLqIkiRAMoxkiQ+vo2C9JfuI5Qx9571LTgPYuF45orT3HbbbfSuQVlZei6lvHmJidOHOHEVRs0fpdZ+ywYx7xpuP66G7jltbczGo2YTfeZL+YcO3qMY8eO4l0oS1VVLJdLJsMxk9EE5x2dc5Q2CGNgWXRzjBTctfE12tYjBRRlkM4UT1Ea1CgeF0IGjaeQAjEtUirYDqc+JvFsAfhgAAAgAElEQVQpanwQE2lwbkFZVAzqCtd5RoVlvnBcmJ2nah3OadAVbRHERqcYU2KM0DqHa5ZIB771HDtynFdd+2qMhj4X0utCgpqxhqNbJw6Ip15Shpnyxm+KIqsNfd7FcVBxWAlj9O40pECNRyNUoXNd7HtBggN46qmn8M6DhGRABAaDAbu7O9xz772cO3euT5A01oQ6AYw1tG3DzoXz7E338OpiWTXKdaGPOOd56KGHmO6e7fuOREnTOcdoVNK45sC9fHF6nSAS0ki7NgrTRnDOURaK61qKokTE4BuPa8O9Y63gW0WsBNnOgTiFzkIZ0+vcAiMGcWCjsKbGYFLKngZh1poaa0eUMqY0I0oZUEiJa48yUBMkz6Wwc3aXvb0pVVEx2ZhQVgLW4cwCdVMqmdPIPlZmuKLDDDvOXdjh0Scf5uZX3UJtB1gJSZgXj+QanTqTxbqXLUmkS/1rtR6gqmpc5zAGBoMxy0XD46ef5s/+7K9AC17zmtcgImxubjIcDqnrGlVle3u7F3NTim/6ri6LArEGE78DLrekxLok113qu/WwyL/+2Ww2Y3d3l+l02n+PJbkOgmjsnLsorS79MMPZs2cpy5J3vvOd3HHHHX35k4SbyWQymUwmk8lkMplMJpPJZDKZTCaTyWQymczzkf/vciaTyWQymUwmk8lkXhIuJ3MlWSp9nmSPqqrY2Njgu77ru7jrrruYz+dB5hiPaZqmT69LJLGu67oDct16st16sslyuaQsy17A6uWMtRS3deGvqiq2trZo27aX5ubzOcaYvhzp/GVZ0rZtP6l8MpkwnU75whe+wA033MCb3/xmjDHPK4g9X929UJ5LvPu3bPM/su0L2e65kmReaBkulz5XVdWB7Q6/f+FljfFTlyL6dkkoUwURg3OKCHz5S1/nycfPMBpsATWj4SZdI6i1qzQ6olSnJkh1xHSsuH499S+lnqX+KxpkH1XFO49zHt8pvlPUa0hWI5RFfEirE+NQHIU1uNbRNDMwS2zhcSzBzNifn6EeGJZty7z1Mc1McKp0LqTW7e0vqQcVxirLZkldVcybeSinMXTtnPF4zPWvuo6TJ0/gXIfzDsRTFgUnTh5nUNeICJ3rQOH4iWO84hWn2D4yxnlH03g2JptccfIkw2FN2y3x3jEYDanrgnLosUWHMzM67zAywJqCcb11oC0FokyYmk1hEkUooDA1tQG8ggpeBNfBctkyny9pli2VKfCqKZ8M7xzqHR6PWqWwlmpYUZYFYqATB4T6Nwa8ibKoFWwZxMS5n1MWJRZhsFEwb/bwpqOoKwRL03k8YG0JKn2KpvqQTBjSpYZ4DzamoYkaREIb9f0TjzWCxN6W6qA0a4KVCAX+omTGo5PjMDmUzJh2ia/HN04AYDF4XBTtwhbffMu30nQtbddFKdT04mdRFDjv2Z9OmTcL1IARE5IV49gs8XrPnTvHs2fOgMJgUNN2DYUtUOCZp5/mG/d9jaqugly4llaZ7p3zOzvsXNgJY3VV07Yhvc7aAudanG84e/Ycjzz8KM28xRqLqIRkOg/Gge+UrvU4FDWKOBNk0WJBXZYYKTDGUpUD1HukU0ajAaIWoxW1bjL0J9DFBvs7wjPnPct95ZlnzjPbn9O1gtWKZgHz/QZ0QT2YUw8tG9sF421htD1g4+iQwWQbw5zGzenYY2+6wzNnzrE732VrcAQv0Kn2st8qgTN0ChUh/efg7Ni9vAg/UuDi91SUUcX0/V41fGsZIyyXHacff5Kf/bmfZzqdcdPNt6AijCdjxuNx/72YfoSgqqo+xS6Jduspwul9SoJLSZfrQt54PKau65hcmsTrlbR/qXRc7z3T6ZSdnR0Wi0X/QwzpOS79uEHXdSyXSwCm0ynOOZqmYTabhZTNCxe49tprue666/rvTOAFP4NlMplMJpPJZDKZTCaTyWQymUwmk8lkMplMJpPlukwmk8lkMplMJpPJ/LuzLi2lpDKA4XDITTfdxJvf/Gb++q//mrqu+8neo9GIpmkOJMklyWQ9Sc45dyDprCiKXq6rqoo6ijyXYz0pLUgrNU3T9OdI4p4RCSJLXKy1YbJ5UbC5scne3h6PPvII37j7bm655RaOHj16kbCSeXkRuk1vKq3Wm7A+yELE9DkAw/50wRc+/yUefugJvBswGo5BS7wrcAqFqTBaEhQvi6R/KihBnNOUVidgxGILwdiQnraSh4hL+jtFGsUUQgBVFI9qh/oOrw3OLzFWcV2DSIstPW07Z9ns0PkLXHH0GNdc82rquqTrQuJX27bUg4pXvepV7O/vU5aWzrWoV15x7SmuvPIko9EQVVguZgyGA6644gq2t7dR9XjncL7DWsPx48coyyjKug4jhtGopq4LxPjguflYJ6JRYhSMIdY1iGlRGjrK2Do1IgVoSA3zArZPRwrySZDjPAazalMIciM+pBQaCQlmLsheQfKSkMymDhUNe4uCAVsYxApYwUtI6BNj+s9XbRGuAwnb4jxOXRDoyoLhxoR216PaYEwVzoUJ5bUW13mK0uK94vBBWOy6kHJIEM103YMzEpMVg2Cy3jdAMTHDrt9Fta+3g68WE7zDXi40GuqD+Coqsd5NuMR0IgulVaiD7AOKX5NqADYGWzhCqp2JklBqo9DHPdefCq8i4fgdXX8O7zrO7XwnVVWFek9iXmxhVWXnwgX25zNMFIaccyCCERNroOPM2bPMF0vOnT/PX//NX/Olr/wzDgcIrgDjQXwaAwzqgPg94J2jLEqMWua7TZA8h5uwN0C7gs2Na9D9CQ/fv89jDz7L/HxFOxuy2HfQjFguS1xnMFphdIA6CwhzA1I4zpRziuGSYjjHjmZMjggnrtjgxDXbbA6P4cuneezhZ3nssSc5vnklthhRiUE11YOS0itXKZmZlyvrPxYgcYxKX07eK9YalsuWB/71QX7jNz7Ml7/8Fa648gqOHD0KtNSDAVVV9SnBdV1TFEUvyq0vRVGslijTpaTgJNoNBgPG4/EBse5wgrEeuu/TOu898/mc6XTKbDajaRratu2XJOM2TdOn2KXnscViwd7eHtPplHPnznHDDTfwoz/6o2xsbPTPmEnuy2QymUwmk8lkMplMJpPJZDKZTCaTyWQymUzmhZDlukwmk8lkMplMJpPJ/IfRdR1FURxIjztx4gS33347f/d3f8fu7i5bW1tUVcX+/j7GmD4hrizLXq5LYt26XJcSTkRC0tNisaCqqj5pJU1KX59sfTjVpKoqxuMxi8WiL6vrXEi2soovQnIUXvGdw1cO13a4yrG9ucVyvuChBx/iwX99gI1vmmCLohduMv9JkCSsrIQBEYmiE/zrvzzE3V+/n9l+R1XUqJa4TrCmxlAiWgAmiHWaZBeTDgwEyY4k11mDsRazlhYE0vf5rnM453De4X1MVVMHdICHPknNkWQipQNxeF3gu30Wyx1uvPka/q93/hjXvOIoV191NWVVslw2GIGuC3LdqVOnmO3PKSsbz92ytb3JZFIjAq5jTYJLKUUpQSsqbcEeRCmxRoJw1W/vMeLBWPAxOUwEY0E1CK5xZ8BQSE3Q3SyiRS9x2HDiuK1GlYyYGCjRREv3pKzqPx1bkyhHEMkkiHkiihdi8plgCoMtbNwuJBCKmLBPFPgExQqo92jqK8bEphaq0ZhyOGbOkgs7e+CVsh7gO0Oz7FBPSGVzHmOAwuBaj5iUChXr21wskSTpcl1uCeUL120giodBXDPRATz8KvFa7IHIxlCPqQ9LPGYv8rEaX9WH+jAEWTGVqTAFotr3e9GgFBqRVe2pYqXEqUe9p7A1Ajj11Lbm6LZQ2gKQ2EapHoIAeGRyHCcuHi2Ijn1NqSI4brg2JAXu7u0xn845/ehpnjrzBGJBWsU1IDbci6IG14UkQm2F0li0ERxQlxMGZhO7mGC6DS48qzzy5Jwzj02ZnRuw3D2Cm4+hG1GaAUU7YmJKjFQYqRCtgizpwXmPlxZv5vjpLo1cwJkdZtWC3RE8feWUEzcYtjavZHZuwdNPTGluMPixxfctCkJIjQw1onHsybwcWZdG+3tLXUxQDWPCfLHgsUcf40O//iE+97nP84pXvoKt7U3EwHi8wWRj0gt1Sa5Lst0BmW5NqittQWELxK5+VCDtPxqNGI/HjEYjiuLS/5vhUqm5zjmWyyXT6ZTpdNrLdCm1ruu6Pp1uXbbb3d2l6zqapmFnZ4ednR2uvvpq3vnOd3L77bcD9D/GsJ58nMlkMplMJpPJZDKZTCaTyWQymUwmk8lkMpnM85Hlukwmk8lkMplMJpPJ/LuyLtKltJK0HoLQduutt/J93/d9/M3f/A07OzsURUFVVbRt20/kTpKdtbaX7ESkn2Se5DpjzAG5rqoqhsNhX571VJXDZTPGMBqNmM/nfVKeLSx+7dipDEn2q6qKrusYDAaMRiMefvhh7rzzTq699lpOXnHF8yanrMso6/WS+Z9IapJVKFB8iSZTnwQVs7pielzXwWf/8Ys8/NCTlMWYutqMqXWW0tbgqpiwZgEbEuqwoAahCH8HNQwwiAmpXmIMxgoidk2qAOc0yHVdh49Sndcg2GkU6xQHxkdlz+O0Q31DWULjWxbLXTALbnvDG/ih//u72T4y7q83SFEea4PI5b1nY3MTk6Q4UiqZx6tiS8F7g5iV2yaWqDTFV11VrFdF1dOnyKGoT3Vro9m1ntS0loxGECeMSBD4NOhTiIAPxzykUgWxTEOhVNfWEw+sPoSuFaYXAsPuPlxnTKQzRjCFYK0JEp5EIRKzEuj6NUmkM4jXlRRHkGKMtRTWYquWalCwmHchoc45qqrGO0Vc6HfqQ32lcUhVVwF8a7W4zvp4cmBs0dVrSAlc7X/4FUzcXg99suqrBz5OEYMHhrZUoav36mOZUp+I0qRITHBUxawl0SESkgdVsVH1K02FjecXlV6kTOfw3lHaKvY1jYJm+h7QIAh6gxFhc7zFLTfdyvGjx3n4kYfYqEehD3nFdR5x8VXBGE9RWbqZYsuKstyi4ih1d4LpWcvD9+3y7GnHYmdIM92m1iPUchSrk5CW6AxlM8HaEmss3oN3gFqsLSjFoEZxrgHdAnuMzk/pZnu00zlPX3iGM8+e48SJmu1jhkfu3WHnpobtQYUaE9MG433XJxdKCi883MCZ/8XpnxOUkBqJ4NXHMUrxcex64MF/4cMf/jCf/fxng/i2UVMNCwbDkuF4yHA4oCwrqiKkzpVVFQS6tbS6Mi5FUVIWJTbKdaa0B5LthsMh4/GY4XB4WbHu8PMN0CfPJbFusVj0qXSHJbu0TKfTXsrb399nOp3yxBNPcP311/MjP/Ij3HbbbQfOtZ5el8lkMplMJpPJZDKZTCaTyWQymUwmk8lkMpnMCyHLdZlMJpPJZDKZTCaT+XdjXV6DMOE5rQN6Qe7UqVN8+7d/O5/73OeYzWYsl0uWy+VqsndZ0rYtVVX1qSTWhvQs51w/6XpduDPGsFgsKMuSqqpWMgqrCd/rUl2S/sqyZDwes1wu+wnfPu6bxLqiKPoyJBFwNBoxGo3Y29vj7rvv5rbbbmNra4t6UPNiLIY8Ifx/BVapZ30al6R+49eSyYKY5OOqnZ05X/vqfTz99A6D4goKMwBfg1SoWgwFEOS6INbFFDuJUp3YkGiHBIHLrvpy6NuxdFEU8i6mN0axTtWj+KjUeFZpdTGxTjtEHCIepcX5BYvlLte8cpv/4zvexGBUYWxI/FI8mN5TA9FwXPEogjHh/g1yXEiWU5WYjpYct7DzQcFN167D99uGBDViYl9cjOD9KsEPfExSs7FdiKl3KZ3LRhHLxPZZS+lKJ73o3kpWmfYCpbVxf1kl8AW5TsDENkllDFWDCqika4iBd5p8PMEYi8fF8kIQ0hSnDjwMhgNcp3TtLIxHKEYMqAvJdaJ4CXLdaDRhMp7EFLokra364+qSVyLZ5egF0edgpbetbxfvjd6L1BgGKAf2SPWYypG8u/67Ya2cHCiLHii/jYl7qe+HvqexL5g+oTBdfz+OaugvobZDpltqafEe9UFURMB75fixk7z6VTfy9W98Hdd6TGXwTsEp6sF3QegUBZYFVTlk4I9QLY+y2Bvz+OkFTz/s2H22wjTHsc02I7dByQRLDd70dVowAhfSHUP4YZBL1bV4sSF/Tg3eVeAEMQUlI0rpkG5Ac77kqZ1dzj4+ZaN4gttvPsPVx15BPbFrYqP29Sq6UlMzLx9Sn1cf+3iKB1WNY0iHAGfPn+f/+as/49P/3//LeDLh+BXbTLYHDAYF40lNXdWUdUVd1kGQq0Oyb2HsgbQ6a2xcCqwpKExYJzE1uCzL/scERqPRZRPi1p+zEt77PrFub2+vTwnuuq4X6UIqakinWy6X/Y8leO+Zz+fs7+/z6KOPsrm5yVvf+lZuu+22Xv5O8nk/PuRnqUwmk8lkMplMJpPJZDKZTCaTyWQymUwmk8m8QMz/7AJkMplMJpPJZDKZTOY/D2kS+OU+S9JMkuDS9mVZ8rrXvY63ve1tzOdz9vb2aNu2F9zatu0nX3ddF4Qi5/qEE+99n4qXFucczf/P3rs2W3KdBZrP+66VmftyzqlSlVSSdbdsWbKFbdlge2gRQ0CD+4PBBNFBwEe+8WsmprsnJno+NB3TM830dEMD42a6wTM0EDQIX/BF8gUhWZKte6nu5+xbZq71zoeVuc8+VSUsg2x5rPepyNrXszNP5srcO6ry2U/bslqtaNv2xIneNzvherxPVZlOp9uTxndPOt+dxnrLWMeLMbK/v8/BwQEvv/wyX/rSl7hy9WrRtMaT499gcn6I2QqZwCDoFJEsH29DIBs89dSzvPDCq5ArqmpKzoG+E4I2iFWIRCwPIp3FUrBCYZTsiqFFEYs4IYrujlszyMnI2cgplaJZyuTcb4W1YeHLH8tky+Q8VO0s0fcbzDqQnvsfuJsPfuh+mkkgpWIKjtJVCDpU8hIhhGFZymQmpFQkNtVY7j+e9SCfyVBwGyQz0bK82dBBICJTLkURLUWyRJH4REuZzkbvakisnYyiGSJ562aNvpmoHE/j+htFo+2TRk/FUI7Fv+1TGS+LCBZECKqoKDpsMzFBtIiHgqGMl0XzU8uoJcRymcgEhaBQXJBEjJEzZ89w5swZUhqqdqIEBOsTihJFiSFw9swZbj17lqClHHcsqJ0UCHePL8fb4sY/uytNrp+4boVsB9fOMVSKiHlsFGZMDBsut1tLrEiC2LA9jyt/4z7FIIbK9ufK7fJYub/UEkt5TjiW1aSMsGH7lkvVAEPRbhxvQtl+4z6nBCSXx8+evpUPf+gj3H3XPbRdR9f1pQzZ5SLXpYzYUN3b7BHbW5HFbVx8vuIbn7vKU1844sqLM+L6DqrNWRo7YMIcTRFaRVMg2oRgMwgVCaHtEpu+p7NMUiEHpRdYp54kQkLpkoDVqM4wawjpFmb5Pqr2Xawvzvjq577Nn372i1x6/cqJgp8gQxlTSzHTjo9pzg8/N3xOECGnTEr9sCkzKspiueAzf/B7/O7v/zaTec3Z2w6Yn5owO6iJE5jtly8NqJuaelKm8csBJpMJTdMUsW64L4ZIFSJxKGvqINaNz9/b22M+nxNjvOHz1G4ZePwd4KRYt1gstp/v+r7ffp4b63Vt29K2Lev1muVyuRXrLl26xJUrVzg6OuKnf/qneeyxx7ZCXd/323mO18cvTXAcx3Ecx3Ecx3Ecx3Ecx3Ecx3Ecx3Gc74bLdY7jOI7jOI7jOM73ld0Trd9IahMRTp06xUc+8hHuuOMOFosFR0dHJ2omuydcd123PRF7lO1uJtd1Xcd6vWaz2QzCyo1Swfhzu8s2llnqut6eWH6zaSzZjSeeT6dTTp8+TdM0PPnkkzz5xBOslqvv38p13hZyTjulrOIbdR186a+f5OWXXiOEiio2pUIngRBqci6FqrG2VR6Tobw1YLpTNiu1NFXdFuzGKlxOkFImbwXTtJ0s70p/RVYqgt0oBtpQiutJfct0WnP/u+9hMq1QzUMhrizrWCEryzGIXBIGaWGUd0pFrghMw8+mDFbKa2PdDQavJ9uxnJdt8K7KmizzHOS9UQ4a3a+t5MVxLW3rxxlGh40z4VjLOpbCdjbgdbG23aOC2nEBSWBbqCMfl+F0mGRnHRXZq4hzmBHEhq0MJXqXCYMQhhlmqSy3JVIu5aaqqpjNZuQ+EVTJXb+t5KmWNZBTZjKZMJ1Mb5Rzd9fNdWyfu+usvRnH6mZhux1JETgh0u1eFtFuXC7bCpJFsMvk8fGTS3rd9VH03BUFAUnb544y2XaMmGzH7/Fx/Xh5x+eqKBoilgwskJMxmUx58D3v47bbztG1XdnPrdQpLWW6TXkvWq/WzOIZuqOGZ752nq9+7gVefyER2tto8lmqdEC0Bk2C5p5Aj0qGJFgKkCo2XSJLgKhkFXqMJJAweowsQm9lvWmMZKBLCRNBbYq2B1T5DAfNnSyvGN944lu88uJlUpt3VuPwe2fhpqvb+aHlBrHOhu0o5XhcBFHYdBs+859+n9/+7X/Pcrlg/2DG3v6UUBl9WjOZVpj0xFg+rzSThulsStM02y8JUNXtFwVUVUVVV9RVmcbnNE2zrfTu7+8zmUy2Ytv1dbqR3c99XdexXC45OjpitVptxbrxc90o2Y3l4vH2+CUJV69e5cKFC1y4cIFf/MVf5Jd+6ZeYzWbbecUYtyXj6wU/x3Ecx3Ecx3Ecx3Ecx3Ecx3Ecx3Ecx/luxLd7ARzHcRzHcRzHcZwfHcYa3c3uB276GJRaXNM03HPPPTz66KN89rOf5ejoiFOnTtG2LXVdb0W6cWrbdvuzKaXtSdWjWKeqdF2HqrJZrYka2NufAYblNBgaCuRBODgW7ATYm9T0s4Z+vcCqoZwUMsQAWBFiLJAkglZEnbLqW0JVcdut53jlpZf43J8/zvsffj+z+d1glNrR6H8YiEKWNCgkhm6/A2eomI0L4/xAMYQ0/JOJyFgio4hvFlAByEAPYvSbwKuvHPLFz3+dC+c3TMJ95H6OaIPGmrbLCBWZiEhDkDhqV0NNSlGEQIeq0cqUECNSVUgMiCqiCiKkBDlD6vNQrUtAj0hCNWHWYqxBMpkeox1UnQ5CT7YNfT5EworF4jXuvqPh5//JTzCbTBCD4S+uN6+OJYVyf3EqBB3dwF3hLVz3XU67P7utoRl2Qnw4lvCQcIMLN7zwjS8JlH/eCieX401QnK1x7yvb03KHmhFMiVYRiaWqJmmoqQ21KGNsoKEGbRg25TD/rAIq2CDAKILJKBaCkYvgZaVCtVc3rA+vEaqa284dcHi4ZrPaQJhgOZCSAhUSJqzX0HV5EDvzcX3uxO92fPu4evXm182bW4HjxXf/7q6TS3hzyfr4+o333UgcpMvrLUEd7meQSI9f84a3HymvIwEQIxT7k9tvO8P9d9/Nl5+Y0HctWgmqRloas9keTT+nkgn9S+/l5eeOOP/KBN3Mqe0sVTpNkDm0FVCBBUwGmdbKGLCcgW5Y7kFaNUVNkDzeZqfWl0Hzzn6gZEnkIIjsY5tI7DNPP3GZP/2jZ3jg3nu44659svSEUCTClDKicTh2QTnK+ZvLD5Q3kFkHv3jn9ijylvefIkRrqXh2PSJGVug0s7Y1v/V7/5Z/83/+Jq9d/jb1nUo6k7hycJVmFmjmFatJRTNruFSfY2+yz9nZWW6pzxDDATHvU0uksQkT3SNoQwgVKCRJEA2ZdliMzJops/mU+f6MulFEOmw7jnSMTCIaBik1b2uVfWcsl0sODw9Zr9cnvgAh50zf9wBb0c7M2Gw2XL16lRgjr7/+OpvNhrZt+eQnP8mnP/1pDg4OtkVVOP78aWZb6c9xHMdxHMdxHMdxHMdxHMdxHMdxHMdx3iz+P82O4ziO4ziO4zjOW8qbLYXsCnejHHfvvffycz/3c9x1110cHR1x6dIl2rbdlkzG0slYpxtPpB5P1N4tvewW7Dabjrbt6ftMkXjCIIQIQXdLWUPtCNCqZjKZMpnO0FihIRC0ImgAUWIINDHShEClgToG5rMZ8/mMqooI8Px3nudvn3mK5XJBtlxkumzkzhAtgtSu8GGyk91y3j62Q8EGeWesXQ3jJI85tYBlJWfh8ce/yDPPfJsYZgStsQwkoQS8htE1SHTbQpspmKAWwQJCBOJWplNVJAgiWiQ2MfKJsV2u226oiiIzIBksFTHMBuuBBJLQYGy6Jdk2fOCR9/He99zCZKInjLVtnOxmq2coA22jcDshs+PHZGc9nnxsNJ+uf+729ok/u/G5nXtPvLYM0prcOK832rScVLzKFik1yipWqIZS2UOIIVKFSBirlaFIhaoyVOV0HC7b9XNczivToOWxzYfZKIYVOc0EmmmDirB/sAdkRIU+dYxGVCnPCVVVl+PQKLVw4zq7+fa6cZuwXbffxb27yc9t1/M/6M/J5RO5+Yyuf/zm42Dn99kKeiev72JWZNW+L/VHwwgauPXMrXz84x/nvnvvpWt7+i6RE4hF+k6wviavK575mxd57cVrWFfTxH3UanIvpF6wYbuUGZUdtMhyALnIlUPFsAwLK+NnZypDZXyNcZLB4FRAMVOEiunkFOsVfPmvv8n5164UKTgoferJZEKMW4HJebv4LrlIG/fx4faucDccw6UScgDU6PuW3/m93+Ff/Mt/zt8++02qWWDv9ITpqYZ6T4lzIcwMpgmZJpit6aprHPE6R1ykD0fIrCfsG2EfWlnTSQvRqJqKqqkJWo6L03rCdDplPptS1/VwTBtF7OMdTES3v6ZJ2Q+syyyXSxaLBavValsTHivE4+e6o6MjUkoAHB4e0nUdIQSuXr0KwNNPP81jjz3GL/zCL3Du3LlhlkMN9rt8sYPjOI7jOI7jOI7jOI7jOI7jOI7jOI7jfDe8XOc4juM4juM4juP8wLm+qiQixOHk/3vuuYdHHnmE1157jfV6zXq9JsZIVVVbCa/v++3zu+AByWMAACAASURBVK5DBsFlrNeFELZiXUqJ5WqDhoq6mTIPFaI7J1wPNayTclKROKrZjGmXWLUtbWeEIMQsVH1CNRBiQHqFoGhQLAqpDuztz7n19rO88J0X+JM/+6+8570PcM8995NT+V2TJJRAiIpJ3p6ifpKb3+v8YBD6QX4SSl1qEJwQkAhaUoQiSkrw5Nee5tXXrpGtQbVCiagFVEKpm2kROjWXKmGpFFao1QgVEDFqSKGUshCCQhAIylbCsWT0faZPmdwbORXBxjJYFooOaGVcSb+t1hkdkOi7NUkWdGnJ2VsPeP/734vGpox5EtsC3Butlx9ZWWGrepX9NCtBK8QUS6VsJ1rGQ96qckXIKvWmPIhmmUG1Q4fbiAx+nA3rWBCsPC4C2eiHAtOm29A0U6bzCZbXbNY9Yi1VaGiHNFQIAZXI2M5z4Hs9VtogN4YAxlgTNLJlYlXzngfex7nb7uTrT32DWAdijOS+JtOwyYHzlw+5fKEht/sEAr0YkYoYKywJ2QyVsh8Waaqk84rYXeZZUod5R5Yry7SV7LZqnWC5jLPiUypkJQ1CoEZISZDU8OwzL/LlL3+be+4/x9nbauKJf/l1a/vtZ3cbXD9mbfsus0sRx4qcKWJ0/YZeEq9efo0/+4s/5uLlVzl16x57Z+bMTinNXkWcGXECYSporYRGCbMFhJakiWVIqKzpZUmKLfN4huneGdCGzlpQaKqKJjZMmsjeZI+9vX1m0ylVDIO0na8rxCmmlLGaS1U4m7FcJa4dHrFYLE58ScL4+Wz8YoSci4TX9/32CxU2mw2vvvoq58+f59FHH+XTn/40d9xxxwmhzit1juM4juM4juM4juM4juM4juM4juM4zluB/++z4ziO4ziO4ziO8wPjjWpSY72uqiruu+8+fv7nf57bb7+d5XJJ27aklE4UTnavj7Ld7uX1U9t2bDalgDfGe8wgZ0CkFFaGINDQ9yqnt8dIPWmomwkxVsQYiBqoVKlDpJZITWQikVoDURXBqCeBg7MHVPOKp771FF/7mydZrq/R5TVokWO28oSNKs5ucyrfsI6cHySGkreRsYIM6oNgOsgOKF0vfPXJZ/jGN55ltczEag+VOWITsBqhQalQq1AL5TWLKTFIWDDWxwwBZSuLqiohCiIZzDDLpKFal5OQspAz5FTG8lhthONSnUhPGdEJo6NuAhoSy9Vl7njXaT78kYc4OGjQACmXatD1JbGT1bAfXQyhXXVcPH+Rw8MjqlgRZBRJigCV2dVwS20ySxkrakpgkCdN0GH8iIGIHRf6sKGodly+s0rpxaBSMnD69AFGoq4CQYfXKQcsUm+kZNuK2Y2tuncqb2Y9HKfhMpCHv6FIcDmBZeW22+7g7rvuZVJPISnkitRGJM1ZH1ZcerUj9w2Tep9JnEGO5K681xT5W0HK6xp5EDEzJh1GKvfb8cRYmMyG5Z16GceVOmyoXlq5LRIJISJEyBWT5oDDax1fe+IZDq8dUd5VSm3TDFSqsgZuUvhyvv+U3XUUn/NQGLVybNg5rhRJ97iEOd5XhkAmNoFVt+Rf/9t/xWf/5P9BJ8L+2SnNHMIEtDG0MqQ2dKJFspsI0rTopEXmK7rpVQ7r17gUv82r+jSv8AxXpi/TnbpC3j+ir4+wqqNuKubTOQezPeazCVU1/ldCQKSiyNihFOrGEqcKqJANNpuOxWLJ4uj4s1zf99sp50zf9ywWi+3nwPFz3Gq14tq1a1y5coXNZsOv/uqv8q53vYuu67brZSzdbdfbO+S9ynEcx3Ecx3Ecx3Ecx3Ecx3Ecx3Ecx3nrcbnOcRzHcRzHcRzH+aFAVcm5SGUPPPAAn/jEJ4gxcvHiRQ4PD0+UTEa57nqJbrdWt3u77zv6vmW9XrPZrLfzzJZLd8qMbEWxGE9zT0MhKNYV0+mEuqmIQami0MRIpZFogSiRKlRUsWY2n9HMGnIwUjTO3nkbWTv++okv8MrFVwiVkC2xtW6Gk+dP1KeEQfjDw3VvE0O/bEenO8akbLaUIRksVx1f+MJX+c4Lr6JhhlmD2RSYATMs15jV5BwGSWewOAflxjSTtSWHnhzLZaUV1SBxRgENBtKTciKnVGY8SECWlWxFnklm2zEMhmgGSSBDvc46+rwk5xUaWh58+B4efv85JrMAGEED72QnQUxJvXH50lUWh0uCRFQiUcv+rRqGSZGgSAzlUgeJyUZZdphsuK+8epnJIOmVcplupdpOUpHrYiBLxhRSnyBl1ErdThGaWBNEUSlSS37He7iDePY9HywHAVUS6PA+AASNVLHmzMFZfvzRn+D+ex5AUsC6QMgz1leFy690tEcTgs3IbWC9SqSOobAaMUtsNivMuqEc2WOSSknSEnkQ7aQk7Rg6dqgx3B4Xb7C9s0BWICAWEQulrDgIu2QhhglBZ6yP4FtPvcy1KwvyUBDDBMsQAoCLR28vtjNlji3KQbIbs4WjX2layqcIiJEk8drl1/it//C/8Z8/+xl00vKu+25hfktNtSfEGcSpEaZGnCnVLBCmAZmATAxrOrp6ST87Ip++yuaWCxztv8Cl6VO8xBO8rt9kOXsFOb2gPpWp58psOmE+m5cKomUs5UEQH76kYDtkjUwCyYgk2m7D0eKIo8WC9XpN27Ynvghh94sSzIzVakXXdRwdHdG2LYvFghdffBER4Td+4zd45JFHAAghICLknIkn04wn8HHuOI7jOI7jOI7jOI7jOI7jOI7jOI7jfC+88f9AO47jOI7jOI7jOM5bzFjM2T3pebyuqpiVutO5c+f4yZ/8SZ544gmef/75rVC3e0J2VVXbk7RVdSvT7U4pJVQVYkefNmxaZb0JTKZxOEHbBiWjnCVuY/VkXDYUYkUzmdGsW7q2o+87CGAJLAqSA0hAgkBKqGWiZEJM1EFIy5bnX3mW51/6FufO3UYTJtQqlOILWyfk5vUpww27t4tRqxvlnXLTzEY/CjPhtfMXeeKrX+f8q5epw+1UMsNyBVSIVAh1uU6FUSFSg8VynUA2ARFEFFOBoIPAFVEdq3WplPJyLqW6DDlbmZLtFOsGWcOGLpeNQk8R60w6+rRmsbrMXfec5R899lFO3TInZ0Nl/J15Zwp2BmaKSiRIHKTZhmw9lgQJICEMspwNUx4qSVAOCuNYsSLIajmemIz78VivK9eLRlNqZDkYkjP9pqMJU4IJp0/fwvpqh3WgWWliJOSag/kB89kMlWMXy/nekO02KPuLDIKeaNnXY6h56MGHuO/u+3j22WcJAkEbjq72HF6CYPtYHxCUKtQEi6Uq2W4Qi1R1jaWxgapgCbEwzM8wEsECWBlLNo4bG5dHyHY8vmx7LCo2k4SAWaLvUnnvISA6oa5O8dy3XuXxv/xb7rr3Vs7eOkPU6FKmrkorMw/vs84PnnF3lRO3yuW4L4+lwVHCNik7ek/PC+e/w+9+5nf4d//xt7hw7VVuObdHNYPQ9NTzQDMXqrmgDcQpxAaoBGlAKtBKSsUuJvqqI8U1Oa4wnYC1XGBJxxGh6Tg9m9FUB2Xc1AAtZoIRwKpyjDvxESUP8qjRdR2LxYqjo0WR5vqOlPob5LrNZkPbtrTt+OUHG5bLJYvFgvPnz7O3t8cnP/lJPvWpT20/6+1+thOR7efGXXx8O47jOI7jOI7jOI7jOI7jOI7jOI7jON8rXq5zHMdxHMdxHMdxfuDYdUbIeIL0WK6r65oHH3yQj370ozRNw2Kx2J6EPUp2Y/FkvD2esL0r1h1Pa/q0Yr05ZLU+pO83cKJMZogZaoZaRs0QywiZoELTzJhMZ8SmQiohV0aqEzYF2xf6eceqWXAULrOZXGHVXKKdXGZdX8CmK1668BxffPJxriwvkrWntw4jgezIhrIjcZW1xPHJ984PnlKKuv6fTso5+wkRI/WZ5579Dk8/9Rzro54oMypmgBbNTQaJ0gKWI1iN0GDUMEh3UJEtYiiiEdEKFd2KAyIyFNEMS4alTB4mS7mUhCwBCejLpQAYOffk1GK5xeiADtGOtjvk/vvv4MceuZ/JpCYMX730zha1xqKXoloRtSZIpA4NldboUAsrFTE5roltxayASCj78c5kw74tw23RgOgg5GpEJIIENECoBNUwLI1y5uAsk3qG9YpaRSUN9MJ8usdsOitSif/L3vfEuE+NmGWyFRlSpZQGcy6C01133M2DDzzIfDKHpCwON6R1INqMaHOi1ICQU6JPPZYTIRgaIeUWI2GWhv1zUPmM4b2uSHK2I4NbKu+Blq1Mwz5uyY7HnAmWtaRVMygBsQAWEWsIsseVSxs+//gTXLl0WMqGJgSV7TL4+8rbh43Vym1tcbdkRznGj9sZwUTIGInMxasX+Q+/9+/5zf/9X/H61Vc4ODtlfioy2Rcme0o9E+IE4lSoJkKcKGGiaANaQaiFWAlaKTRgdcKaDpuuyPMl3fwi/f4F1tNXucxzXMrPs55com+WrLmKsUE0oXo8lmV8r7Hxd0h03YrF8pDDo6ssF4e0mxXpOqkupbSV6rquY7VasdlsODw8pG1bnn/+eVJK/Mqv/Aqf+tSnaNsWMyOlsi+Nnxnh5OfJ6/dvx3Ecx3Ecx3Ecx3Ecx3Ecx3Ecx3Ecx3mz+Ck4juM4juM4juM4zved47LWyfuup9TkyonRZ86c4SMf+Qh33XUXm03LYrFks2nZbNoTYt0o0I0nbJepJ+dEzqnIEznTdR25z3Rty3J5RO77coL2IC8IAR1rZbl4b2qCosQqUk0b4kxhlsjzNWl/xWp+lcPJ61xtXuNyfJHL1QtcjS9yVL3EUfUy6+Y88aBnxVW+8MRf8LW//TJtvyLTkylShw2xotF3sLGmRC71MedtYCwLjgLEyLChhnzc1StHPPnlv+HapQ3z+laizZF+UiQdGCpnAhYQU8QCkgNqFYEKGUppYkJQRSiXsQpDta4U7UCPK3XJSCmTcl+kHcmIJoweowcpY97GQTyoGULCaOm6IyZT4b0P3sMtZ6ZokCL0mJXK4ztITDhxDBrKfTbIcoIiOVDHCdN6Tq0TolVojkgKqIVBwKuL4KSKaKmMqSqoDOFDG+KHGYJgOkiXWgTMDJgGcp9IbU8VayqpkT5AH5mEPabVKZowR3INORSpcjhGYGMdzbme8X3nZu8/o4SjqqjoVmYqj4EiHOwf8JGPfJR333c/qUssry3ZLFskR6xTLCUsF0kbEjm3ZOuAnpw7GLbwKNONx/pxjG0lumxFmM2pyLO5VFgxymPDZFm2U0oZyxkVLRXVJJAjkmssNfztN1/kG197gdWiBStjsh/GjYjdNIj6Ruvq/0/8cP8OsiPXDVq/yfH7/5BEtXEsyni3cfXwCp/9r3/If/zMb3Px6nlmBzWzg4pmrlQzqGdQNaVUFyuITSDUSqigqoVQC1XdEqoODT0ajBBLYTE2FVIbFlt03qEHS9rmIhfTt3nx6G95ZfMs1zhPn1uyJLJkTHL5nDKMIxskzpQSq9WKo8NDVosFfduSU7+t1l0v1431uq7rWC6XLJdLzp8/j5nxMz/zM/zUT/1U2UdVqapqW6nbletU/b83HMdxHMdxHMdxHMdxHMdxHMdxHMdxnH848e1eAMdxHMdxHMdxHOedw8li0PEJ8OP18XFVJcbIfffdx7vf/W5eeullFosldd1QVTVt2wGlcHeyUFemnJWcBTMd5DorJ3SHTLvpWRyumFZzZvvNIDoYYkVQMLEiREmxILJlUjCqmTCNylG1Znl0nmubKxzmIw7TNRZ6lXVzlTYcstElra3I2oJuiP2U6Srw7Zee4Y/+7D/x8IMPc/stdxOkQhjWgQ2yB8eajHFT/8H5gXG9WFcoSkQgJ+GF517hr/7yq1y+uCHqaSxV2CDLKYqYYpTrQStIkZwFLKOxSDZRhGxGJBI0UokiAWIUQomYYRlyFlIyui5hGSynIvJIV6p0UqQexEoxi1K0MzIhGJlE36/oukPe/eCdfPwTH+bULXOy9YgYooFh5L8zGXY8ERBRhFC2Yx7FOUiiJOnIlpBsaILidQgiLcjg1ImU9Z9texxJgOixVCODzCdAUIUcoReiVmhfITlSyZRT0wPCesXmsCNKQGMm9UZOY0EqY1LGpPP3QYfy4DDypWwVw1CD973nvdx373088ZVv0K4N+gmaRg0vI/TDzw6lwkGOAsNMt/OAY4m6HBcoN7YHfMMsl+1oRbJWyvPG94giMxkyzg6Gml0pKooYQSdEm/PyS6/yl//t63zsEw8ym9eEAKoyLsD3fa06fzfHx1o7FjutaJo5lyKlSCnWZet56rm/4Xc/83/x7Zee58wd++yfmTI7FdFZopkFqmkp1sVmEOkaRWrQaOgg2cW4IcQKjYKGCjSiooTi+lI3AamMxIo0bWj7Iy52L9NtMin2TOwA7XuqAEEDYtAPjq8iWIbNquPo6orl4Ypu3dF3mdQlur6nT/22Vrcr2B0dHbFer+m6josXL/L888/z2GOP8elPfxoRIYSAqm4F8PGz4ijVeanOcRzHcRzHcRzHcRzHcRzHcRzHcRzHeStwuc5xHMdxHMdxHMf5vvNGJz+P9ZHdE6VH4S6EwJ133snHPvYxvvKVr3LhwkXm8znr9ZrJpKZp6m0lRUSIMe5U7ErpZLwdpSFnoU9C6Iy2NZarjqrJVFUYal02LJMVYQVIJLIkNnLIJhyyqF7kWvUcl8LzXNZLLOKCBQs2uiI1a/p+Qxdaek3YID/YasP0jDJfV3zzuSf50jc/z8987DRNPQHCIHY4P0zYG0h14zURoWuNp59+me98+wKbNdTzGoAQBbGqFM2kxlIEU1I2RDJRlRCqIuBkiCEiUqp0VQhUoYHYQyj1MxPIpmABLJFtLFn15NxitINg14OOtcNStEspgSSy9STbkNKSxeoy7373+/jAj93JbF6RrEV122x8R1udtvO7yyBFkiEkJYSGGCpMe5L2ZEplTAEJQi75MNTKMSzAsA2Hw4sWnaZU8QYhCkEzgKK5QamQFMgbpcoTDia3kLPSiZDYYNlIqSOGihBCKRK6WPIPQIrMJmNhcveRwh3n7uDBBx5kPv1zFleXBCuyU7CEWU8WtkfwMnyG4qVIKUuaboOXZEPMyv1kzCpKvaw8QWyQ+q7bAUfZz6DUzczK66fSpRRVBCOnUrWrwoTFIvC5v/g6z376Zzh1+oDZ3o66/Qb7+I/CWPph/x3kusstxlCxKzU4CZDIJDqefPIr/LN/8T/yha88zu33nmJ6UCNVQptEPTWqiVE1Qmx0mAKhDlAbWglaQaiMUGWqmJEKNAgSdCg3BmKASVOX9ZcNKiBCCsaKDRfTNQ7sGk2cMaEiSkSBQBzkYGOz7jm6tmZxuKFdG6lXUm/0PfRdT9sfV4cXiwVmxmazIedM27a8/vrrXL58mYcffphf/uVf5uDgABGh7/sTVePtuhwKdo7jOI7jOI7jOI7jOI7jOI7jOI7jOI7zVuByneM4juM4juM4jvO2M54gPYp1OWdUlel0yoc+9CEeeeQR/vRP/4zlcknTNHTdbHtS9unTp0kp0XVdkYREUC2Vnu2J2TpBUCwL2YSuTyxXK+pJjcYpkJHRgZBMT0uyRCLRseZafolLy5e4sHqOK92LHFUX2MQj1u2SLrdFXmpb+k1LNkOGF0vrRJ6kUjqa91x67TV+///+HT72/k/QnJ4xlYobzw3f7dc5bw9jYkqPb+48ZEl48cVX+au/+iKXrlwhThqk7kl5wcLWVGTU1pAjQkMIc4waZQrVAW0nQE0IDb0IEipUFFVBRdAmYWxIElGUbEbbJVIqVkxKfRF0JCNiIHmoWxlGj0mLWY8oZMv03QbCGmTNdGbc98Dt7O1PQYwYAoaR81hd+8Gv7R8axs097MNBK8JQsMMMsqEhIgGyJjJ9qW4mSH1bxomChjJ0VEAlIGpDzWyYjZVjEWh5bSD0FbU2BKmREKjCnInu0WPUoSNXyrrbYKkbaptCzoaqoeKC7s14c+LNVistDKKbDQbapJnywUce5T0PvI/zL3+FnDPBSjVSaIfnjq8QMDoMBXSQ64ZEpe2IdSbD48M+W6y5nRreuDwnW5InpF+DnIoHJUGRkMszJKBMUfb4znMX+fJfP8MHHz2HyIScxyX18fJ2ItddH99eZChf9tlo+4Rpz988/TX+59/85zz+pT+jOcjIpIMK9s9MqfeEag9Ck4hTHap1SqgDoVaoDK2MUINGiHWAoIQoaGCYlCoGQgyohiLLhYYgFeSAVgEJkSyZi8vX2QsHZIGKnlpmKDOSKe2mY3G0YLFYs1knUi+kVGqrqS9CeNd1rNfrbal4tVqxXC45Ojri2rVrXLhwgQ984AP82q/9GrfffjshBPq+J8Z4Q93YcRzHcRzHcRzHcRzHcRzHcRzHcRzHcd5qXK5zHMdxHMdxHMdx3hZ2q3VmRs4Z4ETBTkS48847+dmf/Vm+8Y1v8vLLLw/1ug0hRKqqYr1eo6rEGIlR6XuIsVTrVEuZpW07QoiIJER6VAPrbs2iC8QMVYxkehI92XryUIxZyZKj7jKvtF/nqL3AQl9hPXmdTi6TWWN1h3UduS8aXso9uRfElNhHYiPUwVjJilO3zbh64ZCXL7zAX331L/gnj30aqlIaE0KRtsqawbB3tuT0Q0CmjEcxOS5HjRJMgBde/jZf+dqXuHT0GrP5rSz1VYiBZIZ154lhBjliORLjnBBn5L5BmVPXB1S6T60HdP2CSg/Ym96CqNBrptYVaIVppu8jqc/0yeg6o9105DzIdDKKQAUzwySR2WDWIpqBjIZMlpZVe4UHH76Hj3/8Q8z39xAZR9sg1b2Dx5wJIEVQMjNUhCABJQ5VM0OyEfLQnlOwbeXS6C1jOQECljHJ0GcIUraTUH5OAkIgSCwCH6XIVMuUQKSWhlDXSI5ICqhlZnXDUb9AA1R1JKdE3w+Slsk7erv9/RjkWaN04mQUu8t2Ig+epASywUMPfYD3vPchHv/zJ8g5E7XsN1jZv4xcBNecEHrIAUwRqvI8RvE1I6bIMIMyy+Oa3Ki+5WEpd4t4DJrd8fuCIhbKpk+GWYZYSnw5RyTP6duezz/+df7pP32Uvf2mjEV0Z35vLHH/XRLTKMG/nXyvktVbucx/b8HLtn8Nr7O7TDvvMWKEEPj6U0/yz/7l/8Cf/LfPotPM6dvnVKeM2X5Nsx9oZYEGJTYRqYzQKFUTiBMl1gFrDK1BaiNEgWqKBkVCgAAEQyNoJcRYxDqVmoo5gSlKQ9CaqBGj55qcZ7G6wrK5yi3VbQi3YGzIvbBebjg6XLNet3R9OT6Nlbq+71l3G/q+334RQkqJ5XJJ13Usl0ueffZZHn74YX7913+dW2+9lel0CkCMcfvZcLdU59U6x3Ecx3Ecx3Ecx3Ecx3Ecx3Ecx3Ec563G5TrHcRzHcRzHcRznbWNXsAsh3PQ5MUbe97738aEPfYiLFy+y2WxYLBaICE1Tk1LanrQ9CnUpJXLO26kILpByT5cMyRlLLbHLxGTUUWlZs7EVra3p2dDamnW7ZtkdclkvkZoFObSY9uSUIKdycrwZljMSIVZAl0hdRoJSTwNHV69ADToxzt19lgvPXeIP/ugz/MQHf5Lq1JRJ2IdBroNReBhFDz95/O2hlKtk0F3Gag6DSLVpMy+/+jIXr71KmHfMziWqaUc16dk7NUNFOHVqRqgmHB6uaNdLct/R9YHcHbG88gqXLiYm4SyW58yqW5F4O5N4wJlTt7PZHKHVHNEJfZ8xIjFUJIGcNoNcl8k5YSSQfljmIgppKPtCyj1Gj0Zj0y5YrS/zngc/yPsePsfenoIkutShGtB36FA7lm7Kts7b/a/Ux0RKuU6s3CMZ6EthMERB4nBsCRFRAy3SYx7ERpMiypapvGaQQNCKKDWCoCi1zrGU0SSIRiwZqc0oMJtOqaKy2KwgC/t7e+zv76M6/LOeC3ZvEuPYsTruzY21uq1VR5FqEUVQzp69g3vveYC9vQOuXU5kMkEy2XoURSQO4ygNEp1tpTmzDJaLUEcCEcSGKqbtLAOUx1GQUd4b3wl26nXbtwUp2z8LyRJYjw6zzUmIYZ+23fC5x5/ka09e49Y7b6GKun1cw4++wP1WCXVvXTFtNOjzDYFas3LkSQDB+NYLT/Nv/t2/5g//+A8Jdc+7br+FODfCzJAmk6uW2V7NZB6pp4pECLWgtaJRkAo0CBINjYJWBrHCgmKhfN7Sqkh4VVXeX4QazQ0xzKhlzlSnTGioSOR+ic2M1TqzXF9i0V/m3ORd7MsZ2s5YrlraHrpk9DnT9z1t19J2LTkXoS7nvJXqUkpsNhuuXbvGa6+9xpkzZ/i1X/s17rrrru12SykRQsDMbvh86GKd4ziO4ziO4ziO4ziO4ziO4ziO4ziO81bjcp3jOI7jOI7jOI7ztjIKdteze4L1XXfdyc/93D/mq1/9Ki+99BJ1XXNwcMBms6GqIn3fD1Mp1fV9T4xxW67LsSOKYJLJVuSI3oRl28NmTRUjvaxYpwWrdMRGNmTtsDqT6w4kknOgQ2hNsBhRm6K5J2ggao/IhhQyVAnpMjluoILpXFjljlArzbyimUa+/cJzfPuF57nj9L1DzWiQ6nbLNn7u+NuKbstUADJUhkrZ7IWXnuPzX/lLVvkKd9x/wG13zzl124zJvjE9iExP15y9taJualYr6DsjpUBKFbXOWRzCC89eoc5w9fwR/dLolle4crFHwm3sVe8nZcEymE0wg74roqiGiq5ri7QzCEFigqFb0dO0I1tHzi1opu83tO2Su++6nUc//DAH+3sApbjFICoI5ARBb7Iy3iEUEcoIQVGVIuYaqAy1OlPEhGCgWZAsqJWCUrR6KIsJqiBqiBqmNtynlKqdoBZRjShaCmemRIuIGX3qsc7QYlgVzVOM/b0Zi6Nr9H3mzJkznD59BoZ5X69oOX8Xeef6IJjZuG+P+1RARMkZUAga+eCPfZgH3/swX/jcCOW7gQAAIABJREFU1zAxsg3itmTQhIzbcnefGvdRM8zSUMHsB2kv8ua22vVbd5T2YCuAIph1WC4dRSRQV3t0acHlC6/xZ3/6OB/88bPcftceCoTwxrP+UZCWdj9PvBVi3Fu5To731mG8bZ3OUhUMQVi1a772tSf4z3/0XyBk7rz3VqqpEaaZahaIUyFMIDZCLxuEyGQyIVSBUIHWYSvYSUhFpAxCDgGJgkRFq0BVVcSqQWMNNKhMiTah1j2mzKmpmWBE6+loWcoaGmXZdRxefp1Nc5Vze3ejm4Z1Z+S+IiWhz0aXM7319Lah61uyJdbr9Xbquo7VasXLL7/M0dERv/7rv85DDz0EQAiBtm2p65qcMyGE7TawrbT6VgmPjuM4juM4juM4juM4juM4juM4juM4jlNwuc5xHMdxHMdxHMf5oWA8aXo8YVpVt8WSlBIPvu9BPvGJj/PHf/zHHB5eo6krhAOauqaONakvxbisGYtG7ovYYmK0ugLpCCJQKV0ldMHYSM+qV/rDFZu8YJUWJGkJTaRuKoJUJMmIRtCA5Qg5IlKjmghBiMGwmEl9WfYYA6GBLhcxMNaKVsBEiY0yOz3j6tGKP/ijP+DB+x/h9lMThFRCdZQ6i6gei09vy9Z453Gj4ClAKZaV7NhQFko9z7/wDE996wlOnau45723MT1TofMVs1NKPd9gzQUOw+uoVFSnGvYPDqiqKSI9k6piPj3LQ1f32Ktu5/wLa9aHDWk54YXnLrFeXENePeLqpQvkdoLaAX03YbU26CcEC1gu0o5oHupTGSMXuSYnSC3kDpEe0Z51uyDlFQ+9/0E++uOPMNubkXNC1IihYrC4CMF2fvd3Btt6ZrmBqhJCpOyQQzdMj8twKoKKFmEOQRKIKUoYNCdBB8lKTGAsc1KMpvKSAcmliqdQpKxcXjOIkkmoGkog9T1d7ogxUtc1Ka2JVUQEcjY0DIvqosmbZDcZNl6Xk9MN69J45AMf4KGHH+Kv//rrYMP+xlCOJGHEQZyybb3OyINgV4p0Yj2Zsu2UjAyd0rIkN1MkZWdpd4Sx8Xou81MRTASzIoAGifSbhFpNU+/zxc8/wfPPfYLTZyZMphHR8fVsmKtsV0fxu3ePheWxNxpeb3bYnTy8jtU8GW9d9+S8O+tSZhzukGGpb16lu3FhbrZfyE2Pb3b8+7/B6970p950HW+ooGLHXyggO+t9EOvXmzWf+/Jf8X/89m+x2Fzh9K1TwgSaeaTaB50lYiNUk0CooZ5NCRNFA4RKCHUgVqVgJ1WGGAixlHRFSz1zlOtCHQgxolRorqh0TsOcJu9TyQQVSPQIPb1sOOQKgpCqnlRBt1my6o6Y92fRNIc0xVJF6suxySzRp5Z1tyJtEuv1ZlsYvnz5MpcvXyaEwGOPPcaHP/xhzGz7uS/G8l8WY4l4V7BzHMdxHMdxHMdxHMdxHMdxHMdxHMdxnO8HLtc5juM4juM4juM4bzsicuLE6d2a3VgHuu3cLfz3P/2P+MY3n+BbTz/N6VNzUjelW3WkkOglldIQAdFQfCgzAkJqFmw0o3VC5h2b+ohluEobFmTZ0IUFVneEIEzjjJmeBjlDw2nUKioiwhyjJVsPgHFEDB2p2ZBpCcmwpGQJZBVy6LFoSNfTTCKbbKRph9xiVF3k//3yH/Hf/c1j/PzHPslePI30StDJ4BUIOSkSFPXzyX+gmI0FwXIyv+WMaB5qhx2vXn6JJ577IofxJap3rVjsH5EPIpPTkaOpUU0D9V5PbpTY1KSmoquFUCvaDBJEECan5yyomd1/hn0OiOxzd55y/tXLtM8u+M63LnDxhcjhSxNWr5xivTrNTO6kWxxQV3vk3kjWk1mSWCOqpKBISjSW6aUnyZLEZZKep+MVzt35fm57V0PdGKqCUJFtFIqKDnRz8eRHk61YJzLEy2yr72RLxEohZLL2Q33OMAUTKRUyU6JEVJSKUO7rixAiWVERRLU0qVSPj3GjQLxTnesHYUhE0BAws+HYFwlR0dAjGhENZCtSpcZ3zrZ6a5DrBJ1BhhMFAljY1gIhozJKrMLtt57ivQ/czS2nZlx4/ZDppFQeLZcaqoqAhOF2N9TkKO8XViFkjDg4mxUmoPSM5bliPoXRzRv6eWWZlV0VbhA+JSF0mJX5iGUgkK3CkhBEEJmw3NR859nLvPrSCvmokrIQFEQSxyLgsG4Gu+xY5pNh7uXxk9wo4P3d7D4/DZcBOE5ljt1AoSybkBEUMwGLx3P5O+uaNwrCN9vkJ5Drl++GB0/OYaeeVl7/uKpWCqfs3C6P5ZyLKDa+Yg6EoIwBQsNYrhd86YnP87/8r/8Tf/z4f+HMu2bsv2tCtZfQmSCzRJj1xEmFNopMAlQKFehEoMrQ9EgDGhNZMzFGQlUXYTj2xEqpGiVWgRiEgFBbTW37TNMtVGmPie5ThwqRRGLNmhVtWHHEFda6IE/XyEToV/Dy4YRpvp3T8R4OmjsI3RSyQA/dpqfbtOS2p+t62rZlsViwWCw4Ojqi6zoeffRRPvWpT3H33XcThuPeuE7H9TeKdrvr2nEcx3Ecx3Ecx3Ecx3Ecx3Ecx3Ecx3HealyucxzHcRzHcRzHcX6oEREwQTTywAPv4d33P8Dzzz7HYrFi1uzRVS2btiXEipBbJA01KTImHdl6+voaUhkWNvT9kkV3iWW4RrYNGjIaUpENNNCJ0NEQWaFMCFIKUkGUoJFITaIiWCi3NdKHhGomxEGwSUYOijYVKSv9/8femz1Lct0Het/vd87JrKq79kU3Go0GQGwkNoLEQgIiRYtDiiIlz4Q9ExOcN9tPlh7m2aEH/wGK0Iv94vCDX+xxTIxsecbjCXlMLeaIHHGFSFAECZJYmoQAEkvv3Xepyjzn/PxwMuvW7W7SlAiKTeF8iOqqW0tWZtbJU42O/O7XzfHB0U4E1iDNeg585o8/80c8eNcDvPvUjNbNgIyoIw1FohvXjCo/K9dKEauIDHWhpaNRikbZEskib7z5Oi+89F2yRaazlhAc3kupyKmhTofbIJpBYqkFiQERUcMFR8pXUD9DQgsGKXb4sM6JU4H1W9a4++F1fvjSVdKVLV78+iV++Pwu519+izTfYd29i5wbnJUWklMBi+SUETpiTpQHjT52pNhx+o7beOLJR9k5trUUQGxFpKnOQilN7u7ucvnyZUIISyFm5FoJeJXM4PwMwlyJoAkmRVHKUh43OXzekZ1+TQFrVeAZS07OOVR1eRkfW13HyttHtnEeFlThqaee4qGHvsgXz/9lqWlpxixhOFQOZXCxRGmPlmIdg6wnY6FsmFNEGOp2ulK5G4W2od62NMlWxscoxI41xGUzT8AURBESKhO8m3HxwkU++6df5Mmn7uL2d60PQ02GTp8OAT8blmtDQXV1PI7bcNRS+5lFpxv4bGWRDqHsi9GFK6G7Ff33Bm99WJE7uq7X1uUO1/sGK3DDgumhbrj63ZFzXgphh8sUROz6xQyv1fKho04Z43XZjC4e8PVvfpn/7n/4fZ799lc4eXqd9VsmNDOHmyh+4gkTwbfQtB4/8fhGca3ighC84gOoK99FqqBBcMPfb9QL4iEEpfGB4BwqHqXBSUvQCV4aPA1OFLT0UKNlIoku9yQ9wKwj54gUy5icF+wdnIfOo3jatIXaBJJj0fV0i57YJw72Dtjd26PrOs6ePcuFCxf41Kc+xSc+8QlOnTpV57BKpVKpVCqVSqVSqVQqlUqlUqlUKpVKpVKp/MKpcl2lUqlUKpVKpVKpVG56VD0G7Owc55Of/BRnXv4+r/zgB8zaNZpmQjuN9NbhsiCWUUkgHb0YXjwH7Zv0eU53sEuMe+R2QQ4dEhLiMk0A9Qwpor6UV9QjLtAAjhYoYl2jE1IO9OZQPM4FvMtEn8kpo0nAGc5BzmBe8UHJyRCX8I2ysdUQtxNfeuZz/NrTv8Y9J+9FxeHMwDIiOpy0L9Wt+zlyVIo4RJBBhLEivZQMIrHveOv867z+5muYRtrpjKZVnAfVjHpQb6ijyA0K6mxFvBsreHN8CDQTR5KLiMxpp5uYHZAy9BuZ3MCp909ogRP3Kz/8Tuavn4u88NVX2X/jgIP5hK32OCE5cj+ncQ4lk+gxMXKOZBfp4wHJFjzwwIM88t73sLY+BUnXeSVWZU7MbFlW8t4PtTrl2qrm6uXwgUPnyYbHltewvF6V7/Ig3o3K0KoENJabxjHaNA3ee1JKpJRK1a7y9rJ0rq43owx4+OEHee8jD/GVr34di5Gc43AYZXJOqKXh2PIcFuYGPcyKwCquyHNFsMyICYci3co4G7p1196/vG2rXTvBKPU9s0gp2PUILTBj0tzCn/zxF/lH//ij3Hr7fQTVQ6lu2Wq8tkR3dB6wYXDLsvJ2/XN+POPzbRDKhkLe6hAWlpVWG7bpsCxoGGkoDAJiq+rccj2OTuXl/mvFOsOwI6//m89447Hp3OFnlHNGREgpLueM1flhlGAFQ6TIijFmfFAOFns8+82v8j/+T/89X/7Lz7Fx3LN5fILfMJp1Icw8zazFTxb4ScZPFNeCawXfHL3gcvmFAV6R8bvICc4JvgmE4Ane47RBCQSb0shauTDFuwYVpezxSE/P3BZ0tiCxX6TzDLHvyV0mZ8Ho2O0jxMyGnSZwDIuBvjNSl+kOeuYHc2KMvPXWW1y6dIkPfOADfPzjH+e22277/5U0f9z3dKVSqVQqlUqlUqlUKpVKpVKpVCqVSqVSqVQqbydVrqtUKpVKpVKpVCqVyk3LtVJL20554okP8tCDn+elF1/m6t4e7XRKMw1IyFjbg7Tg5iwwJCdCdpztXsSkQ0KH+Ig0PdJkcAmRTErQeI9IIImR8pxe9umZ4vB4poAjSEO2ll4mOFqUHqeZEIyYErHvMMmoE9QLMfagSmg8KfbM1hvmOSFdZvv4hN1zu/zRH/9bHrj7QR594EmCNhxmrxhqSPWk8l8Eo9iECtkSmcj5C2/xV88/y4XL5/AzcA24xhBviC+ihHPgtMiR6hRVdyjaqaA6CA/ecD4j0mEZohkQCG3LgbyKTh0y9Vw5eI327m3uuWWbnbvXufO9x3nxmY5v/se/5vLF15j2W3hrCbqFpIDlTJJIJmL0xHyAuJ5HHn0Pt58+gTgOC1pHZB5DzN6xw22UYWKMAEcKcauP3+gCy75Z2bla6mFFBhoku+U1h9eMjuNQDBuknXGZo9w3jkXnHCEEVJWUEt77IwJe5e1FZdz35fNa35jx8CMPcmx7i3NvXcIkolKEqWwRckQlIGJDRTKzFOswso33ZTIRRy5CJjLId4OhORyfmVG8G2WzwzraeCmHsRYZzxyCDoJdRmjwsk4X99k72/HVLz3HUx96F6FpSz3vyPLgUAhcnR/G9y/XRVYr61mEu2EJPyE8dtRvk2W9z8SGB5c9uiPSrwwxvTysigyis7tRXG75YlkuE7vxSmXJK3twNGJhrABejyyvRolu9Vg9ery64Wc7Ur5cPmeQaXMy1AlG5srVi/xv//pf8dnPf5atWz2bxxvajYRbBzdN5btgYriZ4iaKtlLEulZxjZaCXVMKduJAfcYHQbyBAx+M0AihcTh1CB61hoY1GllnIlu0rNMwATyZRLKejgMW+YCFHdDnOVnmZXxFoz9YELseUqm09uzTdz0xC7MkSNog9Q5bRLqDjvl8waUrl3jjjTe45ZZb+K3f+i1uv/326yTEcb+u7rNKpVKpVCqVSqVSqVQqlUqlUnkncuzYMS5dunTkvmt/oVylUqlUKpVK5e2lynWVSqVSqVQqlUqlUrkpWT3JGoSUykn/a2szfuM3PskPfvAKL774InsHezRTRw49KQaMlg4jp45sHUGUC/1r+BbaRnBtQnwEIpINtZKQcrnBEDI9kY7EgsScZC2C4sQDDVlaGqZEnZOsx8hkNbyPOB8hpXIqvgkpQUqCbwM+xlLM8T3ZJ6T17Ny2xre+9yxf/toXePQ9jzNPcxqdFKUhZryv/9v+8+AnnbS/lOqylcqUDLUjMq+f/SHfffHbROZszFpcMCSA8xnnwXkZSkGKiBbxRsoyRIp4JSKEoDgVcja8V9Qrqe9RAec9HQckAy8NfdOz6M8hkw3i8TVO7dzD1u3b7Ny5wYvPnOO1517h4NImyJ0EfwuWE70dYCwgl+t33X2K9z12P1vbMxhLfCsyi4ymVw0lojpWI68XZ669fZ1kJ4fKTtmZ430rfa1x7K2OwWuKdTe6HWOkaRpOnDjBzs7OddJO5efDUq7TUlZ73/se5eGHHuTzZ7+AWURcQMwwyxgJI2OWSblHRUtlTcrjS9mOPIhpafh5kDLHOltJHVK0MjeMj2vG1jXpyVLZHO8brtWhMsH6FmPCM1/5Nq/+9a/yyPatg092KHReu6xxOeV2Gn5OpcRnpZJ35DXXxPduNCzLYsdyG4jkYZ0zWKnamQzHF2PB7nCZmVEnlBst+Oi22yizHXni8r/D+c/KHMhPsANX9qyILKW5nDPOOVJKOOeIMa6ULm15jJa3KUtIOePUowpd37F7sMu//IP/lT/69/+WzWMtx040tFsZnWakjfi1QDMTXGvohKVY5xpFg+KCIkHQUIR+deU+58CcoUHwweGDI/gGNY9YwDOlkQ2mbNGygWeCZ4Jh9Lagp0h1C9tjwZwoc8zmxOiICyF2kRR7LHXkvMBcA5ro54Gub5lkJfcNeR7pD+ZcOH+BsxfOsrOzw2/+5m9y++2345wban/pSAXw2jmtznGVSqVSqVQqlUqlUqlUKpVKpVKp/M04c+YMv/Ebv3Hd/b/7u7/Lb//2b/8C1ugXQ90PNwf1c6hUKr9M1LP0KpVKpVKpVCqVSqVy81NstfEGjz3+GO9/9FG+9dw3OTi4yqT3kCKWlPniMup7dBqhiWg2ol9gUk7gdzkRMNzYrEmCZocaWE6YJXLqSRqJvqeXHstWTlrH42gITGh1jZgjmUzCcK7HNx6ykTEkgQ+O1JdVFy+k2BMmhtsK9KbYHGZbgW88/zXOvHGGe29/EERxOEB/TEWn8nYzig+rxRzxilkun68kLl69yLdf/BavvvHXaAvNRsBNQIOVglAwRA3nhmiZG90qQUbJDle6RRmaMMUsQw6Ia1GnYJ79RcS3if1ugWs96iHZnEWa00/Oc3DwFrK9yQMfO83JewMvvMvx4jNnOfvSZYLdxfpkG7Ue6Nndu0Syfe67/wHuvOMEbaPXFKZkkGBsKYS80xnlmGuLSiM/tmA3HK0qsrwsFcaV28INZBEpNa9lBe8Gv3l0rNhtbm5y7NixZdFuVeCp/G34SaJtMcZUS6lNBO67/26e/MBjfPmrX2ZxkMg5IrlH8EAi5x7LDlHBJAGxiFtjoU2GMlwGy3nl/cfbo6Wm3Ph4PCzW2fJ1pYBnJEx6jB7RnpgXqIdJO6NfTPjWcy/zzFe+yX33f4zJuh5266479kcB7cbzgUmG7JarIyuvO9x3q+N8lPSGNTY9PCYkU6TCPOwUYPj+QwyyDnOUHFYef8I0ZeMfdqNvz3Fldbm8IwreNZtcYnY2Lg4ox3fOeVmwizEiIuzu7vLWW2/x2muv0fc9u7u7vPnmm1y6dImcM5PJhJ2dHe677z66ruPkqdvwwfPZz/0Z/+oP/iV9mrOzvc36ZoNMO2g62o2Amzq0ybRroK0Vsa5VtFGkAYIgniKCO0G9ok5ADecU70vt0gWHlwaRQLBZEevkGC3reGZ4AoKQ6El0dDans10Wsk9npVqXLdL3ka4Tcir7IOaOmOYYPVmEHM8RF+us9w2aZsRFYu/SZQ4ODlhbW+MTn/gEH/3oR9na2hrGiS3FuirRVSqVSqVSqVQqlUqlUqlUKpVKpfL2cOnSJc6cOXPd/S+//PIvYG1+cdT9cHNQP4ebnzNnzlxXS307eOKJJ972ZVYqP2+qXFepVCqVSqVSqVQqlZses4xq0VdSyjRtw4MPPcDtp2/jrQtvMe0aGjLznJjv7wILWg9hqqiDPu3TuIATwwvLWg1JyCS6nFF1NNqU4phTUCPS42xOyh2iDhNQFC8N3iYEFuU5mlDn8d6TfSL1HUZCHbRtyzz3aFBCdogJi64nSsJPW47fvsM3vvN1/uhP/h3//L+6H8RIlhnVh1/ECef2Y0pa7wTGYplh9HmQPtQ4f/Ec333hu1zdu8zkmNJMHK41xEdcE1BniJRxqppRBVFDFVAD1UHcMiyBdxNSiiAOM6GPmWkTcA76fIVZ23LQHxBTpu87YupZ2IJmbQp6mctX3mR66iQf/K27uPX0Js/8vxf40QuvcWXvIm0KBGeYHrC1OeHpD72f03fcVtaDjJkeEV9Yaiuy6rC+oxjH/CitrY77n0ZgG0XKGz52w+dfe+/RYt1YUBzXJYRASqUg5pwj53xkPd9px+nbw/X7bHXuM0BUEJSuTzhVNjY89957B7Npw2K+oE9zJButD6gaqe8xUxrfklNExQ1ZtwSSijBGRopmC1ZkO8EximPjITiKYjf+ZDMQyzLJmJQaK1rEWlwPuWfR97QTYX3tGFcunePLX/g6//Af/SdM1iaHIto4doWhqLe6P2As15VxOcp9YyGOlfTl8gVFIFzm7Mafy1xjpkVYF0DKnDguvyzJWK3nDZbbSg3PsOUeWr0+XI2yLTfYbSYrtTq5drWPIofbJsNTx1pd13Xs7+/zpS99iQsXLnDmzBlef/119vb2ltLdpUuX2NvbA2AymbC1tcX29jZr6+uEJrBYHPC9l76DWeaOO+6kXQPnIDQNOk04b6jPuKZIb95DaBXfDqW6RhBv4KX8C38DOMGcICpoaAhtQ2g9IoKjwTEhyDoNmzSs4WUNZ0Wsi0Q6DujYp7ddFuzRsceCBZbnWO7oIvTJkaMRYyT2kYQRc6SLe0iekPuLpMWESYqkPnHuwhuEyYR/+s/+GU899RSz2ey6Wl2lUqlUKpVKpVKpVCqVSqVSqVQqlUqlUvnF8OlPf5qvf/3rb/tyb/RLhSuVm50q11UqlUqlUqlUKpVK5abGzMiWhtKNFHlJ4MMf+TBf+6tn+Nf/5g+5cNnoJ1McieZYRkLPAT0JIXhHypByJnWZ3jJipRTlcXgNmBmpy8w1MQkJpCflA7LziAaizRHzOFECDaURlAh09PRE63B4gg9YSKQ+YsmKVKHggyfHnhxAkyHeaGaelJR2U+hkzl9+86u89Nr3uP/Oh1iTzWHbbyxWvJPlt78LzAxMUXUkIou04MUfvMiz3/o62gqzrRnmM+LBN75IdL6UCn1QCAl8RIPig4EvVTtRhzihnbSk3OO9BwTLGR+UaIsir6iQyINEZUXEGfyRxcEedIr3E/bmPXv9Psfvfxe/MrmNb2y/wV9/40fYpS125/vEtMsDd9/Fux88yea2RzQPkstqoCmvNJzeuRW08TgaBbbVotIosY31uFF+G18nIkNncpijOPqzsFLBs+sLdmY2OEpluaM4N0p9ZrZcr77vWSwWR477a2XAytvE8D0hajSNA4O+hyeefJzHH38ff/H5r7O317G1ucnioCMmpQlbxEUi5Q7VliKC9UPXMJCJiNkwBjJIkTmRhNggdo4jZJTRjjRMBxlWUhHppNTqVBNownRBZoHZghDAukQfI76BWbPOt77xEi9/9012jt+1FMfUHcpl4zASKcW+FAEc3pevs75nWeeMscwnwStjnO/IclbEvfEYMMvLsS8qQ7BPydFQV+ZCUSWlWI41VZxkYoo45+ljR3JFRiw+oGLk4b3LxFaOGx1CgEa2IjOKK0elmpZdKGU7LJdjDgTnlBhj+XuGc5gZfYrIOBekxBuvvcZnPvMZXnnlFZ577jmuXLlCSmkp0IUQmE6n3HPPPUwmE3QpVgv7+3PmB3OuXrlCso4Ttx5nc2fGfneV/bSLpETrGtoWwsywdo62CTcx8D1IRB34AOKNMHHgM+IzGhwoJEv4pkW9wzdtKSeKImlGkBkTt1WKdTIj0CAomUiyBb0dsLArdLJHlj2S7RNtTkwL6CNdZ6S+lAstKyk5Fj3E3kgmWO452L/AfM8x3V2wuNDxxtkf8mv/4BPcc889tG0LFEG4CnaVSqVSqVQqlUqlUqlUKpVKpVKpVCqVSqVSuZmocl2lUqlUKpVKpVKpVG56xhPxxQ5FlLW1Kb/y9NM8+9zXePm1F0iX95g2HrInznfZ2GxYxAWYx6KSvSNmww3CRE6Qk2JZyAJ9BskJJeE14ugRXeCY0zMHAkKDoigBR4uXKcE6elug0qHSo05xXiEaORlJMuIE8YokQxRcUHKrEKHXOXfefzvf/8EL/Jv/+w/5b377v2Xh5kyZFflghb+r3+z0913UuXY/3mh7x7sSwqWrF3nhpe9x7uJZ/EZGgiEBNID6ImioG+QNkeJ1uCLloKlUhLQ87rygbhRODk2r8n6pqDNloJMpFcOcwLKg2ZMtk5MRUyLaPjlnYgbZOMYd7zVInh9+5TyLg12aiXDi5Dpbm2uoClgeJD1lpY1Vrk2Pbvg7jNVK3MhYqRrFmJ90YVSiZKlGoSuPqejSlB1Fo1F0LFWsUT6yI+8/inV937O2tsZsNluuY855KfxV3g7smmtBRMmZQcYSvIc777qdj/6Dj/CFLz+DHCQODq5CnuDcBLMe0UCxxjJGohzgVkpuVn42elSmZUiIICZLgVzQUlg7sl4GpOV4QhO4SLYeY0FMc3JakGWOSUdMC5xTnJvQzw+IqafLmZdeeIP/43//U3r7dYxMyqUul1PEMFSUbEa3WHDnnafZ3JwSo5V9IGW8OW/EeIA6X15nxmxtyvb2jLZVSp3ucGyLQBr2oQ9uqOQVZTBG8K7Mb5ki7pllRCFnI8UDXBCSRRZxn9a3JEsgkWgJMQYBzy33TWc9TrS4fa6owzruRQNQRIWYIhg40fL9LJByj3pAhT51iDi88/Qp8vzzz/OVL36JZ599li984QtMJhNuu+02Tp48ydbWFm3bEkJAVQn7g3PDAAAgAElEQVQh0DQNzrmV/SDsHDtOtkTOESOSrOegP2B3sctBt8vV7ioH3S6Lqx2+dTStx9ET1DA3R4LSNg2JiElC1DDJuOCLZKeKV0do3PD+AVWHorS2SdAJgSmBFkcoY22oIPZ2QJf3lsW6Xg5ILEhpXuqp+z2WPCkl8iJhWbHsyV0g9Ua/EOK8x7oFNr9Kvxu5cn6X977vEX7zU5/i9OnTqCoppSNzXZWDK5VKpVKpVCqVSqVSqVQqlUqlUqlUKpVKpXIzUOW6SqVSqVQqlUqlUqnc9GQMMUORoexT/KDHHn+cp59+iu98/zk0ejjokAOPnyS6xRyTBT425NTioxUpIINmwZuUE/6TYQqaDXKPZCU7wzsBVTQLc65gNkFhOCndEWhJdERaPA2eBpMe5yLeJwiUCk8AJ+Cj0EdQL0jjcEnJUVjbmbFvsJ+v8pVn/4Jvnfkr3nvf4wQNeGt+7Enn9WT0t49rZbtSSwTE6FPHj370Q77x3Ncwl5htTWhmHm0yGgTxGbwWqdI5RBymvpScVMgiyx6cDiJUcaEyNmgfMj7Byv39YGFlS8ScSDlhCSQrmh2xz0hUSBmjo0tn6WWftVumnLpnwv6rmSsHF9jcOs4Hf+UR7rjzttK/EpbSzqE+lIc2VgVYimrj8XUozx3l2vtLK+uwWLd6e3x83OmluMWyYlfqaIfvp6rknJfXI957zIyu64rkdE1Zr/KzI2Ir9bXyGReJsXxGOcFk0nDPvXdybGuDuLhEv+gIrsWsp48LHAoSMRxFpFMgAX35nAwQvyyuqRW5EstgOhyPY6+uFNWQQUQq1ibGnGz75NyRbE60OZk5yBzoQY29vqPNpfpqOdO6NRLH+NN//xW++sw3l5KTqGCWsGxLmdPMOHnbCdbX18mWh7E7FN7EaKdGN4/MuwOa0HD6jtu58847WJutkXMCrAi9UmS5lCIhBI6fOMHx47cAhohHnSelTLKM98a8u0qYGlf3z3LrqS1uP30Lfd5DnZFyxHJmkTsa35ayXC5VO+88s9mMaVhDXNlRZQpfbf4VebBxLU4VG0THIvmV2yrlM9PscOIhZ3b39nj+W8/zL/7nf8EXv/hFtjY3eeCBBwgh0LYtOzs7AMtiXZHrimjnvV8e0ypavh9ImEWKTJ2Z5TXW4xYHcc507zKX5xfZz5dJuwu0bZjO1ggYLszJbh+LmWbqkYlhPpIkoS4jrsiJbdvSeE8IDQ6Ho0HF08omDS0NM7y0OASsJxHprAh1nezS2z49c5J1pNSRYk/sOlJ0WILUQ06CRUi9krpAt9eT5oJET+wTV8+dI5113HHsXXzs4x/j7nvuXgp1bigC1mpdpVKpVCqVSqVSqVQqlUqlUqlUKpVKpVKpVG4mqlxXqVQqlUqlUqlUKpWbHkHIg2SgIthwkv/29jZPf+hDfP6Zz/HCa99me3NK30VsHnGdoN7I0Yh9JjkjxXLyec5DSWcsEhlkM1IqMpV5EErtpUdY2B6C4czhpJys7ggEm+BZEJjQy4IkHc56nPfkZBBTqZQhJC+IFzR5XFAsGtknwprHrs657V238Porr/GH/9cfcP8/fw9r07VS0XHt27ovf5pq2993rt3m1YKO2SCQYKiHGBe88P3v8PIPXqSdOWYbE/AJ8YYEBw5QQ10Rs0QFxCFLqUaLPeMU9UWIEtVSslqqVzLIIImcrZTrSKRspBTJuSvrZALmcGLkPFSrxEgIXdplET1+7Ti33rXG2fMLTt21yfseu5djO2sICRUhU6p1BkNNaxR53tmMAsw4FooEqTeU7H6ccLdM1l17gUGkvPbpZS4r4qMsJbnxerw9rkuMkbZtj5Tq3onH798V137eOZXvIO+Fhx56D0888T4+8/98lpgM7xI5dYg50IYiTsWhDJaGy/ClI8MXj+Xl+CjlyIyJIZYxG2uIRa4sx2sR27BMsn162yNbKaAhEVXDRADFB49owJIr4q86chYm7UnOv3WZc+evEGPEyEM50Qb5q8iEToVXz7xCHIp2bjg2zEp9tbcDgjSIGiknkn2LcY1t+GJVkVLrw8hkvHNsb29z6y3HaNtAMiFmK+apj0T26biCNnvM0znedd9xHn7vPcz7q2R6VCHFSBJbFuH6vidnY21txq23nGD72DHadkJOmZSKvDiKrGZG27ScOnmKzc1NUkqklIbjSVD1WBbEFDWPs0BcZL7/8iv8+Z99jjMvneHkrbeys7PDZDLh2LFjeO9xzjGdTodyXYNzivcN3nu890fmEpFSyFO1QeTMxBjpYmQtRdammxyLO1ztLnD26g+58vpF+n1l59Z11iYT3GQC3sAlunQAQfGNw+hxKoTgaUJDo+XvKM4aAlOcBVpZJ0hDIBQBlESkp8v79Oyx4Cod+0QWRJsTY1eKdV2HxQzWELue1AtEyB10B5m0EGQRSLtGf2XO/KywuCy858738p9//NM89fiHmUxnQ8FPlgLnKNf92Pm0UqlUKpVKpVKpVCqVSqVSqVQqlcrfiieeeOK6cwLeidT9cHNQP4dfTupnVnmnUuW6SqVSqVQqlUqlUqnc9IiUooyWztOgJJXm1gMPPMjHP/brvPC/PM98v0OmirWZpvOIF6xXcpfJLmPeMAc5Did0q0EUnIKpYdlIMaEuYRox6cmi9LqHE6GhIdPiaXF4vDaDYNfiCSQcSTzOebLPqHNkTWAJUcN5RUzwycg54RaZFCPNuuCs4eKbiWe+8QWeff6rfOzJTxJ0MlSTVuo7K/+I9Tc9If1G/wA23vdOPrl9VWgCUB1EN0tc3b3A97//Ild2L3Bsex3THhxocIjPiBfElZKi6FAlUy0yndPlY+qKvOXcKOAJMpStZJTwhiqjY0HOQEoQe3LuwKzclx0mQpZEYk5MiWhGMiWaAwlo23HsVuXxJ9/NXXffhvMyFNKu/fyL4FGiWEXwe8dbdhzW6w6FmBtfxsdVtXiPYmTJqChZDCjHriBHd+1yV9uKdHco0/24dTIzNjY22NzcXBbtVkW7ytvPOP+KFMFbpMhjp+84xa986Gn+7M/+AxxERItA510p0KXc4dRRZLpURLqlXDcIdPQUO9eD5CK6mQ3PG6S8kpssIqyU4plZIsscZLEcQaoOdUXCy+bISUt5zUFKcSl8xw4mYYYRSb6U60o0b/yeyUQyXktdrFWW25zSWKRztJJK4c+M4IYCI5lspXrndJTgE6KCSFmP3UvC/MJ+UfBESJLo8pwcDkjNFZK/xOatPbffM+OKvc5fvvADIgtEyniPfQZXFL6UM5aNbGV+0/EYwsjJDo8RK8dOypkmNNx64la2trcxM/q+H+ZiRcWTO/C0aPIcXF6wd2nB2R+dx9Nw6tbbma3PmK3NmEwmTCaTZaluNpsRQsC5Uqsbq3WjfDeOIec9o1g51gKDz7QZUk5M4oJp3zJpG5woF64Grp67wKtnL7J+Dm5/zyZbt26ARdQCJh2ZBThPCEoTGoK0BJ0guSXoGsEmBJky0TWceJwIkEjWE5kT2WVhe3Ts0lOqdX3s6OOCbt6RujyMnUzuhdQbeWHkRRHs8tzI+5D3jPmFnv3zmXtPPsw//OR/xlPv/xDr020wKSXD4Zga585a3axUKpVKpVKpVCqVSqVSqVQqv+xcunSJ3/u93zty3+/8zu9w7733/oLWqPLLRh1DlZuJOh4rlco7nSrXVSqVSqVSqVQqlUrll4ChbGJDAWoowJgltja3+dCvfJgvfe0v+Np3vkTyyvHtDbq9jkaFHMA8JJfIDrKAqWIMy1LIImg5O7/ICppAIuBAHFEXRPP0TAg2I4jhcDgJBFqCtHgaIgGlx/uAZaP3EfWl/KNO8EFJKKnP+ADNFPa7Oc3M0ffG8VNbXHzlCp//wp/z+INPsjnZIdjRgtYqP81vi/ppT1z/WaS9vw8cPdFfQIwuzvnBa2d48aXvMltvaaee0CqhBQ0g3kqNzgvqZCnRZVdkSnSoMjlDXJFSRDIijnEXj4IdCGIOJyBZiDFBlyFmSIJlyFnISYi9YMmRsidmo0+ZLhldzKT+CgfxCqdOH+ODTz/KrSePIwqkMeG0klNbbjzcIKz2jqRtW6bT6XXS6WpJbrV0uGRw3EwEVMrP420bH5flZyDj/QDZrlv2tcsfK0/T6ZSNjY2lbFfl2L894+69dtcdlRxleK4N83CRg9rW88gjD3Hy1hNcvvwKi8UcZw5cxnJE8JjlQQor9TYb63XD/UYsywawUkyzQawTseGwLBVLo4h1EDFJiMYyV5gWuUwVRllXDO8mdItI8Ir4hOWM9zNICllI2qNDrW4syylaBGEzsPKYDlU7y4ZzUFxOJVksUp7lIuap4Nyg2Fke9qlheSj1CWU+RKDPBAmYM5L2BLnK3F/ATw/YOnWMex5dY+tkIrnzLPI+qA4lP0dOgriyfimXDmemvEU2g2wYOgjD46dXxOWYEhjscp7LF86SGY4rg9QbTkIR62LgjVfOc/WtXUKecNux05w8dorZZI3p+hrT2ZTJZHJkrmjbFuccTTNZynXOOZxzeO+Xx6fzbmW9QHLZt6Wm29NEz2zSMo0tbQisT9Y5f/kcb5z9Ea+//BoXLl5g+7ZNTr/nJCfuPgHNgrlewjUZ54XGByQ7gsyw3DDxGzgmtKwRdIKjiHWRSLI5cSggduzRD9W6Pi+KXNf1xD5hvUES4jxBVqw34iIVsW4B6SDR7yXiVWPv3AG62ODpxz7Mk48+zVq7Wf7StXKQjULwKD/WuatSqVQqlUqlUqlUKpVKpVKp/DJz5swZfv/3f//IfR/84AeriFL5qaljqHIzUcdjpVJ5p1PlukqlUqlUKpVKpVKp/BJQhCCzPFS+IMVUpCFR3n3fe/jAkx/kmy9+jb5bcLA3p3UQeqU/iFjrMa/lZHAFc6UyZSIQWUaCStHOQDOmgxihiagdPYE+d0TphzqVIOJw4vE0OAKKR9Vh4pYn1pvXolWEjODJqTT3RJXQCs000Kfy+Mb2lPm5zLeff45vPf9NPvKBj0H6u9/b7xRh51o5cZSVjISQODjY41vPP8f3XvwOs1tmtNOA94YPggugrsh0ziuqRa4TV4qIMgp1XlAP6gzRjLoiyxQRZnj/4oogVipnLkPqB7EugmSFDDlBSo5sjpQSfXJFrouJLhp9UvpuAZI5fdd7OHX6BCEolu3Q6zpCqTxJzdUBRbRZW1tjY2OjlK5SWkptcP3xsFqwQwSTUugyGZ47FAqXP5dXFSmJ4pvYkRvXL3uUumKMy3X03t9wfSpvJ4cVy1XMShHNOeW9jzzCB5/6AK+/fo793YRXSClhudw2y4McN1zGuUXCcNyVcuTy3YrTO37blc8/p1I4sx6TCJLK95Ik0FJlY5DyzECkwalDLNCECVgE6xEplTQnE3IuUp4ATkZJMxdp3QQd3jvnTBZQKSXPsgnDHDXIg2UnDTsnFZHOyTi32iDjWanyDRupBLwF+rhAvEP8nNA0bN52jAef2GHj9C4HvEozjWWGUiPF8kqnDTl1wxu6UvSEQaZTiipYZLrh4CoH5PDZjXs7m5HG9TcgK5IDrU65/OYue/PLqFdObN/C8a3jrLUTNqbrhNmU0ATatmUymSAirK2tYWbMZrNluW4s1o3H67Jy6QWzsqY6is7JyCmRsqdtPDFH6AznlOBbvE4Jsoa/rLx56Qxnz73Gm+fPsflqy6l3b3PngydoG8gu4dSRo+BkSsqOhjWgoWGKw5dioPVYTsTcEW1Oz0GpoGpHl+csYkeMg1gXIefyd6PUZ3JMpF6wBKmLdPs9/V6k38tcOrtHt+v41K/+Gr/2oY+xOTtWxkkSZBAvV0t1yyLkSsmuUqlUKpVKpVKpVCqVSqVSqVQqlUqlUqlUKpVfFFWuq1QqlUqlUqlUKpXKTcmq4DXKBiYsT5hXLQ0WMZiFdZ58+IP8x9v/A9955a9YXIxMmgamjqyg+7k8VxymQvIKXspZ4zHhnUDUIsMg9CRUe9SXk8KNjmiwEId3AYcnkPAEgrVMbR0sQU5kSWSN5CaRtEMtIQjSOPokZCAEj+VIjj06iXjL7O8fQNsQdhLnz/+Qz37pT/jwBz9M9kqgIZsS8KSc8a4oBFDkjaJplALP6DkMOkERMpb6lIw7d3iWsjR9hiWuxLVIdviS8dl/E2S50J/0Qf+EF/8s59pfs0155SE1I5MGFWN8pJz8L+owyyzygjM/fJlnv/0MnZ/TTDOsK7YmpLZIc+YVCQ5zQnKGBsNCwmlChSK5qKLqUd+gLiB4HIqkUS4ozagsuYifAplMZz2dRVDBomHJIUlKmcl6Yu7Jqcd60F5xc3D7xuWzHZN0C489/Dh333kSpUOswbKCG4QtyUNFyxC0CKvv4Hrd6lwzmUw4duzYUpgRkaVgN8og114AtBzlyHKPyiDPwKFNd/ie400dDric8/K9UkrL9xvvjzHinGNjY4O2bZci6FiBqvztWWkFIkdmikMJqNwuBboy/SZuuWWTj370I/zJZz7L7pWrZO0RetDibAefMMski8WzNEOszDmCQ1z5nLMJkh1YX8bRWH1Dy7EquUhtUkqqpXrYQrRhxAGDyCeAqCxlXcMh1oAMz5VhrOambJuN49eQPNTVAMs2fDsYlsvjZWUP941gZbnj+pphy705rJmME0t5Xumm9SQEbEZMV1k0r7Fx+gp3Pm009/yA+WyPLl9C7AAl45zH40hkkh0gSQ8/HmPlOBtntPGHctzJ8vvOyJaIGnEqkBJkCNISUkObN9k7mzl35grNwSZb0+Oc2r6LNszQtsWmDU3b0LYtbdvSNIe3VXVZqzss15XqrPcO78Mw95Y5RaXIZGLl2E8JNAuWHS5nRB2LxYKQG6bTKdN+gl80TLuTXJif4/LL5/nhmQvsf38fd7HjwSfvpD1W9nFvCddv0DZreLZw0gAtbYZIomefuexy4C8yt8t0XCUyp0sdfR9Ji0jqlNQ7UhJiTsQ+o4uAxYzNF6QuEuc9cS9juw2LN3u4uMkH7n2KTz39Tzm9dR/BJqi4QTJm5Vji6NxZ57BKpVKpVCqVSqVSqVQqlUqlUqlUKpVKpVKp3ARUua5SqVQqlUqlUqlUKjc9cnhu9tJRWVZOTGg08O773sMjDz3Kcy88y2K/p5srdjWypi30NghKkHsjpYxEimyUBZIDV2JAKEgWUs6k1JOSohrBFGVBZ3O8LhDzqDkcihNPsIbAhEBDwtGJ4lTBK6lPpJQxcwQfEIOUe3IWLCYkCNONFpNAvJp4661dnvvuN3ju+8/y2D2/Sm9zgsyIKaK45Z7IloposdwxckSQMhkNsxWzx66pbzG+ZHU542N55RmrlTM7cv/PZsH9/LnWGRv0zFKNGsQLQxDRQVnMLNKc19/6ES99/0XaqWe63mKSySqIc0ORzqFelxLmWLJTLRLLstQkiqgrosFQUjoUD23MLpGlyCnRMtEyyRJkJSfIycp1hpwTOZcSVU6Z3CtEWVbuNte2ue+e+9ne3CTliOBR58nZELXDPNYSWQqV72TMjBACp0+f5sSJE7z55pvLet1qRW6ce8aKGRyVRo4utPxRJOGVY2x87nCX956U0hHJrus6UkrLOl7btuzs7NRy3dvFyu4bxbTlQ3KjJ43HiQ5jQXjk4Ye59cQJzp29AmrE1DFpW1LMQCnMGWmoYR7Ox2ZFFi9Lz6VUZ4PsfKhGL2tyoo6l3myAuZXllT+WP2eGec1KphUr6z4W5ZYH++G2Hc7rK1ttgGVWh9lh5XKc4FJ5pWWwcR3kcF2zYKORJ4N6JwYqCB4UphvKXe/e4fZ7e7q1V0ltTysOywE3yHNGKcCKgdq1437cLzrs3pUaZ7alhI+VPZ21yILtbIJFoFNmzRqy7zn7ox+xf2XBhj/B1toOTlom7Yxm2tJMJoSmoWkaQiiFuqZpljLd6vVYrityXflZRPBNOBxOZpBtedvMsJSJMZbXqaf1DZ3vUFOcm+B0Rj/P5Gg4E66+fp5vfP47vP6j13j/r76bu959mtl0gtMJMTpUPWuss6AfpMYFnS3obI+F7LNgTs+cTF9qdV1P7qUU66KQI8RoxD7jk5Bjee/9q3Py3Ij7sH9hzsEl48lHPsKn/9P/kkfufT9TtwbZDTXFccjdeL6q81ilUqlUKpVKpVKpVCqVSqVSqVQqlUqlUqlUbgaqXFepVCqVSqVSqVQqlV8qbnwetnDbiVN88tc/xWf/4jO8cfUV3CyxGSakBVibSCGTmoyokHpDnSBeIEFKGRI4p0VwyBmGE8pVEtpGFCUTSbYg2YJMW6QBcThrCDqlpaO3BdEWNLYApsRgpEUia5HoUCvOhQdv4JIjW8a1Qu6F9e01DrYTr752hn/3x/8nD/7XjxG0Yaz/qI7/K1/qaEYeymO5yAUCxa4oYpyZH7SJwzrXssi0sk9Hz4uxEMgg15ksl1WeMNTexA33l4qeHHoZKx/LT1Gk+bmdVz+u89E3ObL1NugoZkPtyUi51Kn62HH2/JtcvnoRvyWYGr5R2tbhg+Cc4pygCqqU2w5EbRDtZClFqXN40SMSgYlcv+kG2YzcJ3LMWJIi0BkM7go5Z3IP1gNZSdGIndF3MN+LqDWcOHGS7a1tVDxOAiTBUhnzJaL2Dk3U/RQ459je3mYymdD3PdPpFGAp2Y2Mn61z7kjZbpWxfDc+tvr4kbGwUqFLKdH3/fJx7z1d1yEi7OzssLOz8/PZ8Hck18hkR24J188foxypSyn3oYce4MMf+RAvn3mV2EUwR0qltgZFvlQz0Dy8YybnOHTdGkS0SGbmSs3OAiIe0CKGFZN8eP88jBWWwnQRl2TFkj6Uta7fvuE1qwL1oeF3ZLccyoZ5mNvHop4sL8vmnZXin431Oiv3L2da0+G7smxKJtOlHnMdUa+wdSxz6l0bzHYu0ZGRACIeBZyN25zxOi7v+uOs3G/XbIoNpb3hO5dh3nUtYmDJCKGhcVNC33D23BXeev0tnEzZWN9kc2ML74ow1zSBEDxNCMPPzVKs+3GXcW4Yb49zwCjojuW68fjPOZM0kXIuJbymQVSJOdNMJkz6xEbbcGrnBOGysdsLB85x9sIP+Npnv8fZH73Jp/7Jx7n7/ruRiWdzso6Ip7c9gjh62Wdhczr26VnQWUckkiyTzegWkX6RSb2WX0LQCSkZuc+kRSbO90iLROwMl1psYcwvLji4YDz56K/y6d/8L3j47scIMgV0iBaWvyPYyoipVCqVSqVSqVQqlUqlUqlUKpVKpVKpVCqVSuVm5Kc4y61SqVQqlUqlUqlUKpVfHD+xajKcxJ8zCI4nHvsAn/zEb2HRkw7AWUNcFBEpdUbsEqnLWEcp2UVIfV7etlQupFK5I2ZizMTckzSTpKfPC3qbk+kwSQiCk4BnSqtrTGSNNk9p0oQpM7w0+KYhTFtc4zCJJFmAS0gjqBec95hAsoSfKLfcto1fV77wzJ/ztW98FSdKbwvEyVAIgpyKPCamy/hZKc2lkuCTCIMcZwZmsnL7cPcdKhhWSm5S2m2H4pwAQ3Ft5efyVGX5EhheU66Xy5ZrL3b95cf897MNnGEL5QZ3Lzd+sEyGKhkMBSaF18++xuf+4rPsL3ZZ35yyuTVjMg2ghqqVSp1mVEsNTjQV0UWLqIcKpoKOgt1YPBNWriGPYiNFnBvrZTZ8VmKCmg7OpGAJUrYiPUTIfSkMxQVcvTwnR+Xeu+/n5Inb+P/Ye/MgO448v+/zy8yqeu/1gW4cBHgNwebMDofHeBec0dqh3ZFWA0i7O9bauwJISY7wH1KQcNj+Q/7DpOkI/2lPgHbICssRMjDSynKEw8EBJYf2kGOXPbtaTexIO0P0zK7IubgE7wMgjgb6elWVmT//UVWvXx8gAJ4gmR9G8b1XryorKyszq9msT38Nlhga2WWUcLipHZLu0DAuuPV6PXbv3k1RFCMZZjylqhNlYP2aARvEmXGu9Hlctunq0Ak5XSJelmWjvrlv3z4mJyc3JOYl3iuNTCsjmWx8nusmLcY8tXFBEgYTGb/0V/4Sg4k+lR+SZU3ioDFulCwZQsD72FyzkRjWSXUOwWHJEDJMu259yUCzZttuUdt8h4N2v26BZnsjOUYKbLsYyTDkGDJEMoy2C2Pvx9ZZciw5RrNG+FMH0UG0rVzo0GjRrp4xB82bbSmQ7r265rykWF+yHmQOKTz5VMneO/tM7xPIVuhNgBgPVsEJOMFkYDLFZGBzJctpF8VlSpY3iy0CNo+4IuLy8ffNqy0CplDyvqU3yDBWcNbRy/usrVS88eoZ/BpM93YwyAdkJmcwmMBaS+4szpot6XTjS9aKd1f7nOc5vV6Pfr/PYDCg3+9TFAV5nlMUBb1+b/S5S8nr9XrMzOxg18wOJvsDHBlSOwo/wd7BZ5jb81kuvVrxe9/8N7z07FtMmBlscEwxINZDHDWrLLPGZdZ0mTVdJVARNFCHQF2HVqxr7inqm/Q6rYDSEMrAcG2I95FqJTC8HFg5F1h8fcgEu/iFnzvE3Xf+LM5MEDzUdd3OUULwHk3zVSKRSCQSiUQikUgkEolEIpFIJBKJRCKRSCRucFJyXSKRSCQSiUQikUgkbkhkTHh6x+3aVC8BnOT86qG/zh98e57Xzr1AcaFkenYCO1Cig1Aq1oJGGaV5haBYL4hEagNOpPEfgqJqIEIdGllCEAwOrytUkmE1w0iG0wJDhqNHTp9aB0St8BFKU+ByAQ0MfUXoEuwwaB3ACK7Icblge5ZqGJDCMrtvijOvneG3fvdfcv9/8LNMZDOoQtCIEdMk2MUIbQJam93TNsi6MNe2UiPVjel0MpaqhehYssyYLafNOW++DNv7jl2qXSenvNPf89lY4HbhSe+L9iXrL9urZW1zSZPOpxqx1rC8tsS//+EPePWtV9mxa5poPHUcUlhLVhhcLjgnWGcwVrCWRrazijVNqJ8YRlLdaOmEv9F5CxrbxKc2cVBjIEYYT9Hu4uYAACAASURBVKhSFTQKMUL0tJKdtOlCoN4Sy0AshdmpXdx/78+ye3ZfI+RIK+aZtt+PRQxuSRL6FJt248Lb1NQUX/jCFzhz5gyvvPIKExMT5Hm+QWqz1o6S6zo5bpRGtWm50nHGv3POUZblSLDx3gPgvcd7z65du/jMZz4zEv42l5e4fmSDNbcuvY3QsdexZlYxzVwqivfKF+65m1tvvYVz53866hNlWeKkaOZiXU97g3aCwOK0t55WR0EjxuUIrcDWTuSqcTR3S7uMMtq0sXTXh3UnJneje5t76Phpbzu3r997hTDeYM0ucby9OhG7C89TBNMu3Zpmp05grFSpTUTcCvn0CrO3O9zUMqtykWiHWAcRwapipAl7RQxiAqqNd7fxmjXzZRSalMBmRdMK7Ty6flWVmpoYDb1eQY8B5cWat145y9nXLuLiJP1imtz2MGLI29S6PC/IiwyXrUtyV5Lsuj7Qibjjr90+3T0B1gVd7z11XY/k3bquUYGsyMEIopE8c0xPTLJndi+CZWm4iHiDcRnSyznz8mv8wW/9O/btvJ3bPnsz3tZkDoZxmSVzAU/Jmq40CbxS4bVsjltWhADBA76R62gTUmMF1BbnclYXh2iZEZeF1TMlA7+Lg7/4a/zs5/8jCqYRzbCZJdR1018lYjODXEuKbSKRSCQSiUQikUgkEolEIpFIJBKJRCKRSCQSHyFJrkskEolEIpFIJBKJxA3LRnFkiy5GJytY28hRzvS4+/P38Wu/+uv8o3/yv7G6WDMzWVANlzE2YDJHyJtkFp8ptlasEYJtU9tsxFgDUTERQoiICRAC0XqiNUQp8azhtcBLD0cPQw4YRHOc9skZEHUNosdlOQFFTQSj2EywRlAipVeKIifWphG1BgVh6BkOh/RnLPkl5bt/9l2++/0/4Rcf+CuItVib4UPAGUvU2LTRuLyhpouxG2unRvba1JR0UkSXKtMU04gaXdNrK+o1Etr668YL1f3r3eWhffB60EY7ZsPxojYpc8T25JTFyxf48ekfsbh8gXxayAYFWT8jxIrCZFhnENel1CliOlmKxgSRJilOjEGswYxEK0aSo2xQe7R1VHQkWoSgaITolegD6oUYIuojBEGCwZc1oYxQQrUWKUyfz3/2HvbfdheCJSoUxkFsJFFjuiCuNu1Q4lbB7lNMJ/QaY9izZw933nknb731VptEZsiybJQ0t3kZF4G3E+rGZbrthLgYI865kVQTQsA5x9LSEsYY9u/fz+zs7JZjjSSoJNm9B9bvJRtWdcim99qKbhIxRrh530380i/9JV584U2Wl1eZ6A0ItSDWgWSI5k2SHAVCjqHXfA55kwgnDqMZaAFYBIeIIWpXkdC+RkZy9EhkZtOErNskiV7pnLdZOypr6/eiXbafNHNIl/o3kobH5//1NEYhosRRXw3USCZIv2LmFsOu2x3FTEXtPGojiFlP7UTbRNaGoILR9VmrS0dFBTs6Bx3Na6Zrw/Y+ZkSwRhFvcGQM7CRr5TJnX79EvaJM9ybo2wkK16fICgQhyxzOWazdOu7HJdvu/XZLl0A3Sqfr9ciyrLlKMVJVFcOyZLi2RlXXRI3ENk2zS6+MviLv50zoFCtDj128jNU+Eg3Uhglr2NlX3nrxLX7rn/8ef/vv/AaTewrII2vVCsPiMp6aWtYIVPhYUfmKuvL4SsdS65RYRUIdCSWEKuKHgdWVIfWK4i96qrcVWenx8/d9hV/+hV/j1tn9xGCaa2cNxrlGFEcxNIJ4mqMSiUQikUgkEolEIpFIJBKJTx6Li4tb1s3MzGxZd/r0aebn53n66adZWFjgwoULLC4uMjc3x9zcHI899hgHDx58X+p0pWMBo+MdOnSIw4cPMzc3974c86Nkfn6ekydP8swzz3D69OlRu87MzHDw4EGOHj36sTrPxcVFvvnNb3Ly5ElOnz7N6dOngaZfzc3N8aUvfYmjR49y4MCB9+VYm/mo+++Nwvz8/Ib26frTZp566imefPJJFhYWRteq638PPfTQNY+zrh/Pz8+P2re75gcPHuShhx56X675x5FP25x2vXyYc8a1jov5+XmOHz8+qs/HfV5OJD5tyLWkACQSiQ8HEbkXeLb7/Oyzz3Lvvfd+hDVKJBKJRCKRSCRuLGInF2iby9OYQsQ2/QsXKeMqL7z6Y/7b//7v8ZOXnuOmm/dg964yOd2jv6MgnzC4STA9yPqK61myvsNlYAohyw22iFgnmEKxmUN6fXp5TpHlZKagoE+h0/RlJ33ZTSHTGBwx1tSsUOtlynCBYX2Jy8VlhrpKVZbUZYWvanwZqIa+fZjdEEpYvVQjlSOswOpiSVgJXF68zMUfTXLgi1/m7/1Xj3H77v1kmmPUkY1EkFZkGBMsRCIQ1hPsOrkHgC4RLW4Q6LrEo5EEJIKqA231vNadkC6gjjGn7gpcy6P0uuHdRqPlvYlfcaz8dfFPujYJNEJlBLUAHhVlWA3541Pf5n/5p/8Db5x9jZ237mBqd0G2A0w/0NthcX1D1hdcT3CFwRVgc8gKg3WCFGCcwWUO1woVWZZhusQrTHs9hBCbZChVpfaeqqqoyhJf1ahXtGrS6WLlqEqlWg3N5xLKyzX1ZSUsOc69vExPZvjPfv3v8iu/+BsM8gmMGjLJMDreVxr5r5EJRx83yjqfIgdCW4Fl8zrvPW+99Rb/9t/+W1588UWstfT7/VEKVSeKjAs23ftxicQYs61YN75NVwdjTDOXqY6SrC5dusTc3Bw///M/z/T0NM65DXV+J2EvcTW61LVOBusmxLFNZPMKiLFtfwkYcVSl4dt/dIr/+r98jD9/8Q0msj1YBljpY7TAMcDZKdA+on2M9hAcLkxjtBHw0GYRzRHJEAxRO5kuNON1tLTJdNIJbFvruH4iumXNlcS65nQ3591ttQxl1F7rSajNjaG5Jzd9UUZ16+ou0txzLrtLlL3z2JmXuPcXDZ//ix6z+xXK7CylLCM2b/Rj9a1YF9pymvucUbuhbltk703jWWhEPUVQicQskoUcU/bJ6yle+fdn+dNvP49ZGbB36nZ2DfYx1Z9henIHxaBHf7KgNygoehlF3qPf69Pr9cjznDzPR4l0RVGMJLtOpOsS63q9Hr1ej+npaYqiGG3bjds6eMqyZHV1laWlJVZWVijLkrquqaqKsiwpy1VWV1ZYWalYXhry5ptnOXfuPGW9jGY1FauUssSF8ixltsQXvnwH//HfOIibqahlyDn3IpEarxXeDxnWJVVZE6pIrNok1GEk1IpWTdJvKKEqleFqzepyBWuOxZdWcMsT/MJ9h/gbf+1v8zP7v4hojkbBOEskEqPHCFhp/1iBsYhJ6XWJRCKRSCQSiUQikUgkPhq89zz//PMb1n3uc5/Dufcpk+DiS1Ctvj9lJT6d5AOY3f9R1+Jdcdddd41Eho6LFy+OBKX5+XmOHTvG/Pz8Vcs6cOAAJ0+efNfCwYkTJzh+/DgLCwvXvM8jjzzCsWPHthWqtuOBBx64rvLfiUcffZRjx45d8fvZ2dkt8tf4/886ceIEx44d29L+2/HII49w/Pjxd1/ZD4HFxUUefvhhnnrqqWvafmZmhm984xscPnz4XR/zo+i/H2Yf2u5Y4+f3Tmzuf3Nzc7zwwgujz0899RSPPfbYNfW/w4cP841vfGPb4y4sLPDwww9fU5u8UznvxLtph/n5eQ4dOnRdx7lWZmZmuHjx4lW3+6TNae+lP27HRzFnXMu4ePjhh7cVdzdzo83L212f5Bd99Hzg/x1zjTz33HPcd99946vuU9XnPtRKfIik5LpEIpFIJBKJRCKRSNzwbPjFzTYOiTGWRhozFKbHnbd/lt/4tQf5h//of2V1saI/q4RaqNY8Js+Iw4izIJk0CXVeEdsktkVVCBE1gguKmAg+UFPjjGBFqFUaOYI+TtYw2sPSJJVZzUEKfMwwZFgcmeSIBeuEyoMxAs4QQiSIYKyhlwtRwRUQ+kIVIhPTGcNZxzPPfoc/+cG32XtwD1EqMnqoClYsgkHVIOI2yGiN+BZRDXT61MjB0PX0oSb5bn2fNrytFewUJY4EgBhjk8iGaTwK1VGaUSfmjZt4o3LGr2UnR3ZS0Gh9J2R0Opy8j5KXjs5RkVEbNG5mU29FCQSW1i7xZ88u8Nb5N3F9S9a32EIQp2SFwzhpF9sk1lkDpu0/RhDb1lva/mAtRgxoIy8iXUJa2xa0clX7GmNEY5u0FGO7GDSENsBKqUuPVtJIcz5Qr3r8MLJj5wy333wH/WICi8O0wpB2QYbbtGdSsrbSJU3t3buX++67j5WVFd58800A+v0+wEia6d53iXKq64Jql3IXY9wwDraMiTadKoQw+i6EwKVLl7j55pu5//77mZ6eHvWPxPuFbFrY4JI1c1Wbatqta2VuEYNGRQWsgTv3f5aJ/jQFl5GY4+wAI30cA4wMMEwgDIAe0sp1RgtELahDyBFyIENwIAbRAMSxtNZ1OW5cYNuczDl+fuNdrUl0u7Z2GVfsNgt567lwY0l1ul6H9fQ7YT1lrytVEauYzFNMeXbdMkl/R8mKWSOagDUGTNfHQ5N6pxFRA2SARVTX59NuTgU2nWzThm3VVRWDQUUIoQaEXtZj+dyQN185S70amDI9cjPASY5tBcdu/hYjWGu2TafrhLpuvI+n2HXzRFEU9Pt9JicnR9+tN7fgrMP0m/K899R1TYyRGON6+dZi8gxXK3kP+oMJimKJqraYqDhxuHwKLzVn15b50XM/ZXpfwX948GeRPFDHEiRQ12vN3a4qqYc1BEcIQvTNTbGqSrRU1FtCLQxXauqhEldyls6uUF2CL93z8/z6rzzI3fvvw8YcjQaMEDWihDa91aARjNiRCJpIJBKJRCKRSCQSiUQi8YmkWoVy6aOuRSJxQ3H69GmOHDlyXdLGwsICDzzwAN/61reuK2HoxIkTPPbYY9ckM2y37ze/+c3rPuZHyfUKJdCc5zPPPMOpU6c+wJq9e5544gkee+yx69pncXGRI0eOcPDgQU6ePPmuBZ3t+DD77wfJuxkT18KRI0euq/899dRTLCwscOrUqQ3X6ejRo5w4ceI9l3M1Pqh2+KD4pM5p7+d1uNHmjE/ivDzOeDrgM888syE58cCBA6OUykTik0L6P9uJRCKRSCQSiUQikfjYMZb5NHqwXlSIQTE4Mgr+2ld/lb27bmN4uWbl0hrlMFAOA9UwgFo0ClUZ8HXEh4j3kRCaxKjgY/MaIAaIXvG1J0RPVI+nxFNSy5BKV6l12KbzCCIW1GLIKbIJstjDhR49JunbKfp2islsB9PFDJPFDvp2koGbZKqYYqKYILcZRV4wGPQp+jkTsxbpVfzu/D/n9/7oX/Kjl37Aj17+Pi+d/TEXyzMMuUwtqwQZUktJTUmQkiAVXiowgSh1s+DbB9+VQKTTExCDYogqhGiaB+UxrdjgUfWIhDYRr00Sih6hkT/QgHThRaoQRyZbI5FFbYSxdt12i4wS1N5rYt3WvjISRbr6bRBoIAZPRKljyfnFt/nBs9/nwuWLDKZ79CYKaMVIl1vESCvOSSPWtbKcCKgBjIABMWOihTHt4TstRdq2byVEGmEnhkDwnhgCRCWGiAZFNRJjIISAtuuJ4MtAuVIzXC6Z7u/gvs9/kdv2fgaDpfmVj1lPHuzaYRROJxjWJbDNjtGnka4tOpk3yzLuuusuvvSlL7Fnzx5WV1dZW1sbpcx1Ily3fSfWdd918k1XZpdKtznZrhNzyrLEGMPa2hpvv/02MUbuv/9+9u7dOyovpda9f2g3P6mMve+mCKVLilMiIfpWVG6uXwiRGC2ocOH8CvO//294+8wSud1BL5vF6gSOaZxMY3UKwgD8AAkTSJyAMIHVHEOzWOnhpIeVApEcQ4aRRibTDXPi1r8QOC5zbl7GB7aIGS1bxcLtJoDxGdmMLYLQiN1NeTL22s22Mpab1/277bsmYnPP1KxhMKvYQUCdB9OMqybxLGJNxBjF2nYsicXgQGIjNHfzrAWxYNpFjCKW5nsBYwXrXCtAgzNZ81OC7RMrWLlUYkLORD5FYQqsuEZ2s2PjuJNlt7QvG953Y77DGINzjjzPmZiY2JJ8qV2Ha8vJ85zp6WkmJydxzm0S+BzOubYMQ6+XkecOaxSjkUIsLhoKMqbyKaiEH5z697zw09P4OhJ9QENsEnTLCj+skCAQhVBFNAp1HQi1EoNSr9VUqzV+JeJXhPKCsHZO+dxt93Lkr/9NPnfH5zHRtLK8tsmEASOKadz8JNYlEolEIpFIJBKJRCKRSCQSn0JOnDjBXXfd9a7SkBYXF3nggQeuKQ2r4+jRo+9J2uiO+X6lN32QdHW9HoGjY2FhgaNHj34AtXpvHD169LolmXHm5+e58847r6vPvBMfdv/9uPFu+9/p06d5+OGHR58PHTp0XWLdeDlHjhy57v1uJHbu3PmO33+a5rR3w402ZwB89atf/UTNy+M88cQTzM7OcvToUebn5zf0zdOnT/PUU09x5MgRZmdn31UbJBI3Iim5LpFIJBKJRCKRSCQSHxtGaTnSPba/nkKGgBEBFazJ2bfrVv6Tr/0G//T//Mecv3SR6R2guVCuetzAYnJDJCBqiQGCB1PHdWkqKhobsQ4TUbH42mONwVkhUFHHIVbWyKQkaIFqRmYMmfTATiFeyL3HygSisDpc4fyZs1x4+yLlWo2oEGpBa/DDJp3HqMNoj8waei4jzirKJC+99iP+2cn/gztvncNgMQq33nw7O6Zn2bNrHzumdiNYjBomJyeYnppgemKKHdM7scZgcY0qohErGSqCIlh1mFbgMLIuEYSoqNZYa6EVg8zovTZpbHRGmTapasK60KGgptlPWJeWNqYnfYBSkI7JKONBSnHje2MFrwoSKas1Tv3p93j1zZfYsWuSrO/ARnARrIBVrDMY10gajcwhiIXOZ9Muxc4KxqyHKTUC2+a0PkVFG3EuBkLwxODROCb8RIUgEA3Be+pSMWqIQSlXS0zMqNc8BQX3fPZ+9s7uw6jB0F7LNrZOu3EzMu2EjdZdouuf43JMURR8/vOfp9fr8Z3vfIeXXnqJGCP9fp+iKDZIdONLI+eGDambWZZhrd1WsqvrZqydO3eOc+fOMTU1xZe//GVuu+22DSJfx7jQk3gvbCP+jELstJGIR21tiFGae4URNBouLUb+2W/+v/yz3/wXXLrg6Wd7sDqNkQFWBxj6CBNIzCH2EfoIPVDbprEZkByhAM0QmsnEGIHoCRpbiS2y3pW0TQW9QsWvgffad0ay35XqsMUB1NGrmAqbV0zvsvSmArVZAxux1qFCK213RbXJm8YgoTHmgjST+MjZag8ZtV3fpYPGCCjGOIwRYox4D46cwvXJGaDVKquXavAZjgKDxRqLsQbrDLZLKrVmgyy73bjfTrYTEay15Hk+mi+2tMxYcqlB6OUF/aLHsrWNoNa2thNLbjOCi3hXU2SGXibkBrwPzZTulb4r8DLAU7B07hx/+r0/Y9++3didFo2KicLaakldepztMVzzBC+Eikayq5VYRqqVQCwzxBesnl/l0muRm3bczq//8kPcdfvdZNJD1CLa/GEBbZXKNvQ23VYSiUQikUgkEolEIpFIJBKJTymbpYfDhw9z6NAh5ubmgOZh/JMnTzI/P3/FMg4dOsQLL7xwTcebm5vbIEnMzMxw8OBBDh06xMGDB0fHhUZkmJ+f31bMOHLkyFUTsXbu3Lnl+ytJMFdLRdq1a9c7fr8dX/3qVzec66OPPspDDz3E3NwcFy5cYHFxkSeffJITJ05sW68TJ05w7Nix9zWx6b1wpQS0mZkZHn/88dH1m5mZ4fTp0ywsLPDkk09u2aeTid6PtK4Puv9+1H3ovXDo0KENwtYjjzzC0aNHN/S/+fl5jh8/vq241CXPff3rX9/QfuPlQNPG71TO/Pw8CwsLN1wy27Vy/Pjxd/z+0zSnXS834pyxeVx83OflcQ4dOvSOc904XTLg4cOHOXny5Adcs0Tig0XGH/JJJBIfLSJyL/Bs9/nZZ5/l3nvv/QhrlEgkEolEIpFI3Bg04S5dtFmXnkYjUKmBKM3D3Fbw0SM24qNncfkcf+fhv8t3X/kDbr3jJopJw/RNEzDwDHZkuAnoTWbYHphcyPuC6wmuAJcLzinWWTTLyHKLy5W8cBR5gaNHxhQDu4uB7KZgmoJJLAbBE2PJWrnEm+fPcubcOc6+dYa33nyLs2ffZmlpmegDRgWDI1aR4JXcFK0UZtkxvYNBb4J+JtSl8uarZ+gXU1TDGo0Rawwry0uIWGZndzMxMYuoxWKZmphkot9n0Jtk1+xedu3czc17b2YwmMD7yORgismJaaanZ5iamKEwPUyjFYzcM4PDat1KdBBibCQCTCMChEZiiFGw1gC2eZg+tok8RkFCq1QYhDYNqpOKlJGwckXe5dP52qbTNW7G2FP+ChrH05mUsi5xhSUw5PXzr/D3/+H/zO/9699h770TFIOc3g5Hf4cjmzLYnuIGQta3uJ5plgJMDiaP2EKalKXc4DJLkeXkWYaTrDkd0wl2lqhxJNeFuibUnqqqKNeGxOAgKL6qCaWH0uArS7kSGa4EYiWElcDq+Yr6onDx1SG37/w8/83R/477f+bLZPQbwaM955Fb2LX7qH2vJMh8etj8e7HY9vNxQgjUdc3LL7/MqVOneO211/DeMxgM6PV6GGMoiqJNl7Kj/cdTrDqZbiSYtm3fCXirq6ssLy8zMTHB7bffzv79+9m/fz95nlPXNc5t/ftYKbnufWa8K4i2SXWNOIQIdQXWGDQKGuHMmyX/0//4D/jt33ma1UVDxk56dje+zHFuEkMfq41Qp6GT63rNopYcpZHrMgwFgkPVIta27mug8iuAR8QTtQIJYxXdfN0/xH7QSdWy6ffK2qXWdSmdinQyvARElKXBy8Rdr/Izv1hxz19WZPcb1MVZVGqUgBAQPDo6VwF1oAUSHZqttuMotuO3MQ0jrcwGxKijlD1VaaQyYxoZzGf0zTR5Nc2P/t3LfO/3n6UfdrJn4hamerPMTM0yOTXNYKJPb6Kg1y/oDQp6vR5F1qMomvd5no9S6fI8x1pLlmVbln6/z8zMDDMzM6NxPD4PjKdligjee5aWlrhw4QLLy8usra1RVRVVVVKVJWurJaurayxdvsTZM29y7u0zVMNVsJFgAsF5VnSRy/I2i5zBzdT80q/8Ant+LgOpWV65SFWtUoeIRsPqSsRIQTUMxDqyemkJ4x3VpUB92VAvZ1x8a5XJ8hZ+5dCv8jd+9UFm812YmKEecpc36bSmE7m7vmAx2DbVkE/1fSaRSCQSiUQikUgkEonER4v3nueff37Dus997nPb/s71XXHmh1AuvT9lJT6dFFOw956PuhbvirvuuuuK6T8HDx7k5MmTVxQGugSqK6UrHTt2jEcfffSqdegSmubm5njsscd45JFHrrrP6dOneeCBB7aIDo8++ijHjh276v7jdKk945w8eZLDhw9fVzmbmZ2dfUfJ5dSpUxskm81cSUK51nb9oHniiSe2FYKupX4LCws8/PDDW/rO3NzcNUuZcGP0X/jg+tB253fx4sVrkng+qP43Lo7NzMxcVW46evTotgl3jzzyyFUltY730g7vlvn5eQ4dOrRl/bXMMZ/UOe29XocbYc74JM/L72fa4cGDB3n66affl7I+7Xzg/x1zjTz33HPcd99946vuU9XnPtRKfIik5LpEIpFIJBKJRCKRSNzwNM+dNw/qb/PtSC7xXqGVWazJmJ6e4W8e+Vu8+E/+jEvnltnb34WNGfXQUxfgCqFc82RiyMUiTsAKQRohwIg0CUJqmnC2EPE+kLmAmgAEQqgo/SqZGyAWYq04yTj31lme+d53+eFPfsr5CxdZWV5lOKyJUbE2Q9TiywpDIIaIRsiMUpY15VA521ul1x8wOxUwYpma3EGv6DO4aTdlvYpaz0RlwSi1X+WiXyNUsUnaW1Z8VVGteTTk9Iseszt20h8MqKtAvxjQLwbkeY+bb7qVvbv3sWt2F3t376PfHxB9pCgKdk3tJM8KZqZncCajxGMxZJITbcTgENMm2BHwGrDWtOlLiic0Apk2UgpKK+s1UkaXd9M9dd8IBmPC0KbLPS4RjcsI44JU93ljRlwc60NNKhw0yUdZnlMzpNaay6uXefmNl1ETiFKR9QuKvsU4xbiIzQ3GKiIBMU0ynTGCmIgYGonEgFiapCNrMGJQFNsmMAGNUNdFLraSRQiBGH0jjNTSiCnBEGsItRJ8JEaQaIi1NiKEb/pvP5/iZ+//Mvtv+yxOckRN47xI087joktrqG4zisbaeZtR9kmn60PjMlxHJ8/dddddTE9P873vfY+f/OQnnD17lqmpKSYnJ6mqCufcSKix1m7om865UWpdVVUYY4gxsrKywsrKCqqKtZaf+7mf4/7779+QcPdh/3L0k8L4HLHd+jbPsRWaZWwMdMIWNBlthhgNzkL0cPbtIX/4B9/mt//Ft/mjP/wT6rJHJtPksovhmmN6sA/1GRpcm1xXoJoDveaz5oDDEAHXSEiSN2IdFrSVkYxgJKfRcFubGWnEu2v9Y2l6hdG8WYobYdrJ4J3Kl/WlTYtbT8UcjwnduldziICaiqwfMIUn2DXUeLQrQxvpulH0xusawHTxo9q8SiPWiUBGJ3zreg3HE+TEULg+mZugWlJe/vNXefmFV7E4cptjZD21DolEPFEd3Z1qswi+3TXYfC/q5oBuLDffNnMymxLuRvtq0+ucsc3PIJ0mqEBYTx8VY3CZwzlLKYLBkolFAxgyrBT080mWl8/yw4Ufc/+tdzA926ccejQ095i6VCRaNBqih7XLa2htEJ8R1yAsO86cvkyhkxz52kP8yi9/jX42ifeR3BqyLGtGkY3r5w2jMbVNvGIikUgkEolEIpFIJBKJRCKR+BRwLULH3Nwcp06duqJs8PWv5snryQAAIABJREFUf/2aZIO5uTkeeuih6xIT5ubmOHny5Bb55YknnuDxxx+/IROExrmawAGNDLOdzPLkk09+5BLHwsLCtpLM008/zcGDB6+6/4EDBzh16tSWVKVOeHuvqUkfZv/9OPKtb33rmvrfdrLOeH88efLkVVPDjh8/zjPPPLOlnG9+85vXLNd92HQJXps5cODANYlun8Y57Wrc6HMGfPzn5asxng544MCBUVLl17/+9S3js5NLk2CX+LiSns5JJBKJRCKRSCQSicQNj4x5deuPzWvnPtAl1xiadDDFgnhQw4O/8SD/6jvf5Ok//H323LST5cU1shnAQ6jAOSHWQnSCBgM1YJRoQI1pFlVCBBMjISg+OJwoKrFJN5Imq4cQefX0Gzz3g+f46Y9+zBuvvcGllWXECEUxQY8+ISoSBWcdJoMQqvZR+4CzjsEgo+4pdRVZvrDG0plVpqYcy72Kz999N7tv2snislLqCtoHyQ1WhT6WGIRQxjYdrsBEQ6gM5VrJcnWWyytK8IopHaH0BK/88fdLqrWKfTft447b9lMNa8phyW233EK1puyevYm9t+zjM7fezs0330xmc5zN2TWzq3nkXw29/oAi64E2D/dbLHX0qDHkuCZgUCESqUNoxSGwxmJpL+J63A0iZou4sFmiG2fz+kauk7bYsN53NNL2EkIIOGvxMaACZVnyzPe/x8XL55mYHjCYdFinKL6pPwYRxeUOmwvGKsY2Mh2iYBQsGCuteNeklo2rBevdWNskxkau8zESYySG5tppNMTYvgZDjKA1qIcYoSxrQi0EL9TDwI7eFPff80WmJ2axuHWRbkxQHKlDom3qlKy7domR5LJZyBpPmDLGsHfvXr7yla9w8803c/r0aV566SXefPNNer0evV5vJNfleT7qs51Il2UZ3nuGwyFVVVHXNQD9fp9bb72Vu+++m3vvvXeDkJd4f+natpkjWmlNDaqmuaPI+v3G16GRZ6UZP6EWlpeUf3zi/+H4id/k0tuGyd5uRHv03C4sO8iKCfxahjUTGHUIBUIOmoHmGHGIyZsENVUEu/49pplnaOQ6Yy3GQFl5fGyEK+3qvn7za0/snc56m0HeJcFuWf8O+2wpU9dfR2KdtCpYm1RKbDfrBGdFTCTvGyamLa5XE5wndil12i409/HYltGk30UEP0rHE2mOE8eqGmMj1xksgiBqyFyGFYcGZW215OLFNVbO15x59TKXzy8j0YEYNHbtGpuEXInNPb4VxDc235UbvJszQgijsR9jJISAzZr5WcZ/qBnbB9rES2nuUTE00lqTRCqtsEfTSY2AMUQjhKjtPUqIarBZD1GHiQ4jjjdefZNdbwwYTN6Jk4KhrwlBiR5iMNRrgbW1Cl+BiwWriyX+smHp7Bp22ONrf/XXOfK1v4UqFNJHnCMi1KrYVuyTkcTN6OrLSIxMN5pEIpFIJBKJRCKRSCQSiUTi08Lhw4evKynpShLO4uIiJ06cuGpq07uVIjpBYDsp4L0mNH2QPProo1cVODqOHj26RUi5UlLbh8nDDz+8Zd3x48evSZIZ5+mnn94iqjz11FPMz89fd1kdH3b//bjxyCOPXFWI6zh69ChHjx7d9rvDhw9f8zV6/PHHt8hqV0oPuxE4cuTIlvp1KX3XwqdtTrsWbuQ5Az4Z8/I7sZ1wPDMzw+HDhzl8+DCPPfYYTzzxxIbv5+fnP5FzYOLTQXpKJ5FIJBKJRCKRSCQSHyM6vaD7qE1CSisRjVJg2of9HTnB1Hzp577MH3/njzn71nl2m1myQY7Wgi8jYgzWKrhIqBqBxtkm1QzbCHTBAQLORmIUfPBEq6hGYgwYUd547XV++v0/5tlnfsLrL76JeKFwBTsndhCJoBaRjGilEaeCoqGm5zKMBS813gfKukbEUmQFdmJAEQourywT1mrOnVlkbThk/+duwWcF3g64PLyIxIiKYtXgfCNtQISg5AH6WiD0UG0ef9cA9bAiBnAyQ6gDw9Uhr178IbGOBB849/xpvHeYl4Rz3zqPwTK3f44dU7NYm3Hz3pshCNXQs3vXHubu+hw37dxNr99n0J+kKAp29m9FFHyMzEztILc5kdhcRQNeIxGLaSWJkcTUXcXOBxsT68alpysJURsYSQudsNF0F5dbyrLGFgZP5Nzyef74T77D62++xh2fvRmbrSI2Yp2h1ytwhYDxxOixuDaxDsREMLFNIjKoYSTWNXLd1gS+LnUpqqKhkS689wTv2/oaYgyEoDT2nhJDI0ZqDUQhs47VcoXFxRVuuW0H+2+9C0e+nkvXtYV0596NiyQ5jLO5DwHEGLHWjtZ3gly3zczMDAcOHOCee+7hpZde4k//9E+5dOkSVVVx+fJlqqoiz3OyLBulV4kIKysrxBjZtWsX09PT1HXNTTfdxH333cfdd989ku269LxOzhlPwNqO8bGQuDojwY5OsFsfI82800hWzmWANHKrwo9+/Cr/4O//Y373d/6A5aWKwtwCcYKenSbUPTQWZHYSawskFghZs2ibJkneLgbBtWKdIJLR5K41Nx4xBuuEvBDE5ESt8GWJjvqAIptS1LbKS9t93rTuHdPvrrc/bS5fxuoYRmIdKFGUwSBncoch6y2zSk2tJU7c+nylgqppEk4FhAhSt0fImurTiGdGO3lb21BUhzGuSQ2NBl8pw2rI6soaly4sce6VS5iqQFd7FK5HAJzNcM6hIgSU2OYFrjeVolFa929d0BxfxrcdF+u895RlyXA4xGYOayxiBNlmLhaFuq4pyxLvG5taVKFLvhNBRYg06afegEeoAYmCwaA2xxhFtEBMTuYGrNYXOfvmBW7et4+scHiv1HVAo2W4UhGDBXVojFQrFWtLNStnPZffqvnaVx7k7/6t/wIXHMZYvA8Y51AFI67JEVTFSafKa/NjGd01l/a6pjkqkUgkEolEIpFIJBKJRCKR+DTw+OOPX/c+XZrPZo4fP/6BPpj/0EMPbRFRnnzyyRtaRHnooYeuedtOehjno5aS5ufnt7T5wYMH3/V17uS2cR577DFOnTr1rsr7OPXfj4IryXLb8eCDD15x++sp50rjcXFx8YZLZHviiSc2JKN1nDx58kOp68dxTrsaN/qcAR//efmdOHbs2FVT9Y4dO8bp06e3pHgePXqUBx988IYbp4nE1UhyXSKRSCQSiUQikUgkPoaMp+YAsU3pMs0D7rFNUFEiDscvH/oaz3zvGf7ou9+CCMOVEsmVXu6IGaiP+EoRB8Yq4gQJ4H1ApRGgjDEQpBGofJMYExQuXrzET19+ne9/+ye8/KM36MsEuS0QMWQ2B4bE0KT2iBgkOkwUjAjO9QnqiXXzEH1hClyu1HXzID9RKOwkU0VGQDn9k5e5PAy8feFN7n5gjsFsRmEG5BIJomiQNv0MIEBU1CsxREQFjTTSQlSyfgaxEe1ECiZChh/WTb3EMhyWVJVgxLDr9mnK0rO8dpGVS5cRhdOv/xiiEINQD0vKMjDRH7B//51MT89QlzX3fuYvsLS0RFV77vjMHdx5x352zMwyOTFFkRdM9CewxmEwGDEUWY5zGdbaVjwxrbLRJcDJWDJO87kRBlu7QgxNgGBErB3JEd1rE3LY9pEIeZFRxZKgnjfeeIWXXzmNsdCfKqjiIoNiirznmvQigSxzuEIwrkmnkzbVSmH0vhHupE28alKotBXstEueGkuuawTNiMZGKIkxoiqEupHpYgANjfBV10rwQITLl1YYrtTsmJjlni/cy+7de9Zb6IqBVtsINokRnVTXSTGdVNfRre/EmcFgwD333MNtt93GysoKb7/9Ni+++CJnzpzBez8S4rqyZmZmmJycZN++fdxxxx3Mzs7S7/fp9XoAZFm2ISlvXPBL8tyV2JSMNfZRRqt0fIsx2qS1Lv0UaaWg9S1VIfjA8z95nf/9H/4m/+p3/oDLlyp2zu7FlLvxVUavNw12Aq17mOhQn2Eka0U6h6hDcdAmfYJtp6E2ZVUtxliiZAgGYxu5rigcxgXKOmdYN9vHrlLj57phXOtoWT+PcSV945w4XsK27XkF1tt0s6C3rlTRaFdjqxtJNMYKl0Ov7xAXieqJIaCZa0LjugC7dh8VaT+E9aC8bpyM/dOJqAYDGAwWH5TlxcucP3+RpaUV/JrHxpzCDSjVYE2GEAgh4kMgxvVFNbSys4wdM24Y05uXbv2onVQJwVOWQ1ZWHHmvgAysWERMt9Foex8CK6urrK6uEmMjD4YQ8CE0V1Wan2/ieK8WQdtEVsQg1hBj2f5YZDHiIBounr/MxQtLzO7KCEHRCKGG4VpJL99BubxGtVyxdmmJ8rxneFn43P4v8LW/+mvkUpBJjqqhcJZAJ/k19XdiUGlUcFRGvWC9H2yWQROJRCKRSCQSiUQikUgkEolEYp25uTkeffTRLck3CwsLH6hAs11S0Y2cIDQ3N3fNqWHd9tvxUUpJm6US4LqS4jZz4MABDh48uEFoWlhYYGFh4bra6r3wUfXfD5vr7X8zMzPMzMxsm+J2vSlhc3NzW8bm6dOnP7RrfC0sLCxs278fffTR95SKdj183Oa0a+FGnzM+CfPylTh8+PBVxbqOb3zjG8zPz28Z71//+tff0/VKJD4KklyXSCQSiUQikUgkEokbHtngBHUPadv2y+bt+APtBkHEkalFVfns3nv52l/+T/n+D55h5fxl+tKjN9GjXAXrwOeeLDNIMMQ6ErOM4CJGItiI9UImPWzMyeyAfjWN0wHnX1/ih6ee54ff/3PCKkxmU6habGbBQqUVITaSjTUWUdOIZNFh1GDUYCMQaB2E5pyKaIihSYWxVUBinzoETNann9WcfWmVavg6P3P/fvbt348papaGF/GuhCLg8figuEyIWoJXbBSsWjRIk4hmIzVQhYjXuhHDNOJ9wMeAUehrTgg1PpRkUcnVorER+PLQiG0xBGJtiFEgVrwefsRLFzwxRH6y8GdNWo9x1M8F6rLmpj372LdnH5krmJ7ewUR/irqq6eV97vjMHdyy91amJqfo5T0GRZ9e0ceow0lGf2KCvutjxeFMRlBwZIhpEneI0iTrRI93ruk32vQYpwbEIrHpSMFHTAYYZWX1Er//R7/NG28/z023T1ByAZnwaL/G54opBFM4vFPEGIwz4ATjDGLAWCFzBmOEzDh61uCMYFRGUo2KaSQ9AkEDxiqqHh9KYlVjogHNCRVQg4mGEAyxDgQf0KAQlFgKcbUgq/osXlzi5qk7+Av3foWp3kyr3gSQ9V/3SCuajK3Y1pv5tKtb4zIbrKfHbU6L22799PQ009PT7Nmzhy9+8YuEEHjjjTdYW1ujKArqusZay86dO9mxYwcigvd+lG7YlTeewNgJdd3SrU9sZvz6bNc+nWwWaeSurr1bH5eMqBExiuJbHcii2ohwlxaX+c63f8L//X/9f/zhHy4wXN7Drv4e/JLB6q3kWlCvWpzmCBmEAkuB1QGGHCgQCqCT7TJEBSMO1UDEoPSw0gOTI87g+pAPFDuI9PogkwWrr9cM11abpFQMjU4lNL/ade2w9kAJVDQ3Fdr5J2sEX2jaQQLo+K+E1xM91wmMp4eOIyIgkc5p3tj+64uiiDS2nBJAImIFtYtkxSXQHMpVrLEUdgIbHVEVwRMJqDTJskKfSACGiASi8Y3wbg1OLKKC1GBqgyPDSUG1FhiuBi5fXuPC2VUuXaqBPoVxZCUUZoCoYykKSkXAomIJbU+BRkaPQSHS3OuitomidTM3x+a+17yaRvRWiLG5N3qvqAaMKYgxsLa2AheFiYkJBoMB1tj1vw8wlnC3MlxltRoyrEtqDU06nSi1eurgCdGjIWAiGC+4AJkqUQIhekKIxDxgAsRhwPUdfZmgvgi61IdJi5YWxVCtBfwwp1qx+EWDG07SX8pYe3uJm9xNPPTL/zlfuPNenOYEzZr5SgVLIxratj9Im0i7PgwFRlJ8IpFIJBKJRCKRSCQSiUQikUhcnccff3yLnARNatEHlbq0nchwI4so76YdtpObLly48JFIHIuLi1sSqA4cOPCeBamjR49uSQs7fvw4x48ff0/lXg8fRf/9sHk357Fz584t/e/BBx+87nK2668XLly47nI+KBYXF/nqV7+6Zf2BAwc+VLHo4zanXY2Pw5zxcZ+X34lvfOMb17ztzMwMjzzyyJZ58IknnkhyXeJjR5LrEolEIpFIJBKJRCLxiaATUja/B7CS85Wv/BJ/8bt/id//o9/GTuZUlWLWavJejpQQcsF68AaoFdpEO4uS5RYVcHlORo/hUs0LLz7Pc6de4MwrixhvMMYh4kbZasEHVCOZaR5IN+oQtUg0iDokNlKAwyGmMQQFAwLBt2lsGLwv6eV9MhupY0XPRZaGcOmtJV6QV/BlycxNA6b3zkBWsxaX8VQEtWAikT4mE/BNip11BidNApeRJnEmxEiIEYPDSoGGiK88zhUQFB9jaxxom1bXpN6IsW2qWqAJ+dFGQAixScwbCiITCIKvA77yqFacXXyVUEf8KxErlhCU4CPxX0cyV7D3ppuYmZqhyHrs2bOX4COo4Wc++zNMT+1gsjfN9NQOculR9HrktkC90O8N2DE7jctzvNSN3KZKLg6vsZEbTUaMisktKpFa11heu8iLL/05tS8pejPkucUWA6xxWONwzmCtwVnBWrAWjNGRLGJslx4EYszIBm2kg3HhpJWoJELbVtomIjUJSeuSVQiBGBpBJkaofWiFyxz1kZXlNWIduWXfzdx2622jtKemLyXebzZLdpu/M8ZgbSPzWmu59dZbR2LcZpEOwDm3odx3Kj/x3pDRv83YGkXENGMtBkSFqG1CqQi+Vv78+Rf4nX/5r/kXJ7/FT3/8Bhk7mSxmUV9QuD429BHNESyWDIkZYnKs5hiyVmDrEjhd+9rODyLtukbqdJlBnMXmlmLC0BtAb6D0J5T+xAwXLvZYW1tCRDECaGi1wjA6QwhIm2smoqPzbCJL23OXLk2uW9e9tgltbYKfiKJq2CovapsW2sqKo++b+1WztxnbVps6SgSaBFeXWYpejnGGKIoSiRoh1mjUVhJu6h2DEqmbcowiok35UciNI9aKBqWwBVYcBGFx8TKXLiyxeHGZ4WpNqMFisS4nE4vLQdSgRKq6atLoiO2cG4khNoJaaO9nUdvEykiM0r4268aXEBotzxjTvm/a0XtPVdVN+a2QXpUVztkmpVUMIQSquqIclqwN16jKEu+bRL8YItom4sU26TTEgPce7+sm9a+9n5jM/P/svVusJdd5mPn9a62q2pdz6RubFClSUlOULWlsJU05cMZ2NLFEAxPYgwnAhmYGeRkMIj5kniP4OQ8GOcAAAwRIRE0c22M7sdiOZ+LYnlhUbMdxJg7JjjQeKbZst6gLr93sPtd9qVrr/+dhVe1zuvtQItktit1aH7C5965du3btqtqrDsj6+KHQv8f6v4XA1FjsL9jf2+cUx/P5V5WujQRpWM4WhBTY25px6fnXePexB/jvf+Z/5G/+2MfxVkGUbyv3FvG3UCgUCoVCoVAoFAqFQqFQKNwsQ83qeuHhmWee+a7JSSdOnLhh2vXCwzuJBx988Hu9CjfF9fsWji5tvVmOWsZRn/Xd5Htx/L7d3Krj73Y/jo/i3LlzRxb6vvCFL7yt63G7jWnfidthzLhTjufHH3/8mmPlzJkzb1r2++QnP3mkZHz+/Pk7ZhwsfH9Q5LpCoVAoFAqFQqFQKNwxXH+B9yCsqDlOn7qPv/3fnOPfP/tHzPYX+KsLjo836BYJXzvahWFiVM5BAm01y1QhINEhrka6im5mfO2rL/L/PvdVrr48x8WKOjT4qsK5AJp1CjAQwaUs1TnziAacVjirCL6hsoAXD+b6wFK+MN68gGUhy697YtchlSOlSBsX1M2YVme0l/f54kt/yuSE5+Gf+CFO3DelrkfUdSCyJJJI5EqbD4K3XoYwxRQqURK5VCfOIwRSNDQFqrphECu8KqRBAssX6mO5nYSBmM/C3SCHqYEaJMXhSaoIFY6Grot0bUIskNosW2RZz0MSYkxstS+wc/lVUmd85etk8aVT/u0f/2tUhbXxGve+692QhJMnTjEZrbG9tcupkyd56P0PIebY3DzJxsY6FYH16SR/vwibGydYW9sguEBHZBH3+dJXnuVr3/hzwsgzGgfq2oP4LBv6iuCE4KAK4L3hXMJ5h0haSVMiWdYR5/vjcJBZsl5nZr0wmTermvbihGVxQrNEZ2ZYGmSN/LpGJXWGRrBoLGctqVVOHT/Fw3/lo9x3z30EqXDkelLxHN5eBpnXObeSIwfRTlWpqgrIdaphPhFZPX89MaUIK2+BIzfZ4Vzjdfcy7Cvy7w5hPlvwxQt/xpP/+Ff4vaf/mPl+wNsmtT+OpA2cjXE6RnSEWIXgc5XOKtCAUWEEHPVBra4XzwxWch04nPNZeK4drjGqkdCsCc1EGE2EtQ1PUwf29k+xv3eF5XyB0R9HePK/2tVec0sYESTLYsM5BGIeqwHsoM0Gh0W7QzLe4crdDdtsGMWG125kmOPgnwfSXzaAc07U0Fxak44kXb8avZAsfakTBXG58oYDVbw1pK7DuwZJinWGRc/VrR12r87YvrJLt4ykznASaKoGIaCaRTcx8GL4qiJUDiP2PnQW0VJSUhxkOu1rdfmWC3X0hbrrb4bIMI4P8xgxKiKRGHPRzlRZLpYrIXcQcLsuC3hd1+XHMa4ka01KTImYIklzzbRtW5bLJW3XrcYdJ4ITwZKCsJLrnDiW8yX727u08w3i0lh2Hd0iIW3D/tYMv6i4+uIOd63fx9859z/xkz/yt/A6JjAiqiLhWsGuFDULhUKhUCgUCoVCoVAoFAqFwq3mkUceuUFwuL5a9P3MmTNnvtercFP82q/92g3THnnkkZte7rFjxzhz5sw1ha6LFy+ytbX1tpag7vTj91Ydf7f7cXw9TzzxxJFi1lNPPfWOK5HdbtwOY8adcjzfCmnx9YqCn//854tcV7itKHJdoVAoFAqFQqFQKBTueJx4kjnOfuRH+On/+m/zS5/7pzTjhuVeRA1CZYTKozV0bUID1FWu75h6PDXWVsx2I8//6Tf56v/3ArtXFlQ6Ivh6VSiKUbM34DxOHSLgU41YwFmF7wWzSmoCDV4qnLlcCBoEK8BwCB7IVTiHwyfBJU+QChFjoQ3RxjhqFle2+dIffpX3/fC7eP9H7sdXiU4WtHTMrcNXvdqhESxl1aQX4TyORvI6JBV8ENQCIh5L3UrQMM0BJOsNEcHnaBL0r2epznpJEMkzateBWhYOTZCkVCpZmEseS7l4JCZ9DShgKWHJoUmIXczrYIHYxr5yt8c3rvwpluCbV0MWzpYd3nl+71lP23ac2Lib0ydPYSjHNjbZmKyzu73HxsYJHnzf+4lJOXnqJM2k4vf/w+8ya7c4fmpCNXK4INTVmKapaKqAcxEh4hwED94ZIor3Du9zic6FgK8DzgvO5RpRtmkMk0Fa6Tc89IUkQ/sinajl5ynXiVYFuy6inSIqaGfEeUKSZ769z92n1/mhH/xhgtV9N8r3+6vwdjGIJYermUe9PjweboNUN9wO8+2Eu8LNMghBZKlVtC+HGcEFtrdn/M5v/zt++Zd+gy8+91WWsxGjcJJKjuN0HccUkQl0HicTnNU4CTiqXKKTgFiFY4STCqEGCZh6bFWzdFmCCiOcE6qmopoE/DhLdc2aUI8d46mnHjtGteOuu0/wwrfqvl7ncB6GQVks9GKYAgmR1cCMYX2ZbRi4e7nO3NEe4vC+YbiSG8VEAUzs8KR+eEv5vHLNkrO8l0t3CcOIGkmWUKS/V4yYxzDxpC7lAqfkM2EWtgcBEJyGfC6MDfPZnJ0ru8z3W3a2dmhnMRdKJVC5LK5b6tfbstSopqgl6vGEtY0p268uUUuoRjR1WbLs63X5litx3kdSEmKU/rnvK3VZvDssm10v3B6ePsw73A4vY5CqYy/WDbLdUKkb5LqYEl2MLNuWNnakfFLOQm/K/6MAkf68nXKRsTLHzpVdrr56Fdc44lLz30CLObaEl7/+KrNXO/7e//x3+Bsf/SkaNgjS4CTgq6FGWCgUCoVCoVAoFAqFQqFQuIF68r1eg8LtTjmGVhx1Yf5h+eH7naOqVLcTR+3LW/WdrhdlAJ599tlbIoy8Ue704/dW7as7STi7cOECn/70p2+Y/vf//t9/W4+9O5XbYcy43cflW83Zs2dvkIrf7pJooXCzFLmuUCgUCoVCoVAoFAp3PI5ccjkxPcVP/9TP8MfP/geef/kvGa81+QL0cUU3i0gwRlWFM+iWHXih9hXiRmj0PP9n3+LPvvQNti91rDVrVGGMJjno/pjDicPhETMkZbnO0xDciNo1OJpcr9OAaJahHC6Xh8xQLAsB5EKcDx4lIWaggrPcIHIWkLBBLRNmOmW5v8fzf3KJ/b059//Aae5+4DijCWC7IEpMLWqGOENQxAxnDjGHaC7qeATDk8jFLdT11TXXF+u0FwX6GltSzPqaUV9cG54DGAlqpULw4jA1NEkWMNQwpS/3CSmmHDUST4qKJUNwYFVfdwOsJiXDEv36galDk9F0HsGhlpBlYt5d5htXLrOcz6kv1WhMdG2irif86z/6l8SoPHD//Uw31njl1RcYH6+w0LEz32LkRsy2OvxM2EgTTtw9pWkqcC1YRAAnhhMQMQxFxBOCIC5XgoRBRsgJI+slk8GZMrOVvJG3Hf33MVRTflsyYrRevvNoF2n3O+Y7RqDhA+/9QR564AMECYi6VSWvcOv5TrKbcw5VXckyw+PDIp1zuR6melD9OizhANdId4WbI9fD9LptaXmM6stiWXYVnDhefXmH3/j1L/CLv/Dr/Pmfvohnk0l1HG/riE5xNsXrFCdjxHlIE0QrEN/X6QKYB2qEBqjyzTwH9TzfF8sCPuRyWj0NVFNHM4V6Cs3UUY8dk4mjqvL7No+i7PtlAAAgAElEQVRP2Di+wc7OFTR1ff1Qs3QmOtiCQFpFM/MGUEB6pzeLwPnLR66XpVZlTYZxRK6ZZyWSkse9GzY2fZFv9dJQcB3WMYt+aimfM03QpJjPkqBqrtqJCKlNiDN81WDqaZctwcNovIaPNbPZkp1XLrOzvcfezoxuGXEWaPwUHc4duF72FhD636ThKk9sE16UyXREqAXaSIotyTdoSqQukrpE6hKxizgfCSHX5wYZLsZ4gyB7WKRT1VXB8vppw+8dWAl4uZKXb4Ncl6W6fEv9fdfft23Lsm2JMa0+I6ZEJOXDzoykCfN5uwbn8CZ0y8ioqXASEJS97T12Xl2gc/jYj/4kP3b2v2Iix6hsiqlHvFv9Tg6+Y963ZawqFAqFQqFQKBQKhUKhUACOv/d7vQaFwh3DUZLClStX3vLynn76aS5cuMAzzzyzqhINy9va2nrLy/1ecbtLSUdt81tVfTpq27zd+/hWH7/vNG7V8XenyEhbW1t8/OMfv2H62bNnefzxx78rn3mnjWnfidthzLjdx+VbzZkzZ26Q6+4kybjw/UGR6wqFQqFQKBQKhUKhcMdwfT1qJbZgjELFUjvOPHCGH/9rP8YLv/E83e6C9fV14rwjjBwWlXaxJHhP5R0uOax1BL/Gt55/mS/9h68R92Gj2sCWjoiiCOIFE3AiiDlIgksBp46gI4LkW2UjHLlkJ+ZBPWbgpRdrxHAGIGhfHEIiXepoqprae9KixZnDu4YUlZCm1BZQq1lsb/PVZ1/mlReu8EMPf4B7HzrF5FgDPrGkQz0QjE6zyBao0U7Q6PAu4JwQtSNZh3eCU+kFFTvYtib94/4CewM1ywKDul6uI8sWUtF1KctmIqQY8XgEQVPvY6iBgTfpK3ZKcOGghJf6+g/Q9t9d8CTNnynkz01p2P+eiQXcwqNqrBP6mo8Su0SKkfpEw3IZ2ZWrvPTi1wlBWLtrhGpHu5yzfWkLGTeE2nNlW3ltu+FdD5zkrvuOMR6PICSUti/4Zcml/9JZOpG+PGj0Mt219aiVSJEU7X2YvI6sSkNDPcmSoR1oC7QOomBt4sT6SX74Q3+F2jUInuADaJEc3i6uF0q0F08PT79elHu9ut23W27h5jgsOUKW7bJc5/qxzVEFxwvffJWf/+xv8s9/9bd55cU9gpwmyCYubVC5DcRGaAxgDUiNmcOvxnOHlwqsJivKNY4qS8lUgM++mROcC4TKE0JNqCvqxlNPoV4TmnXJct0EqsYRKsE5slzrG06cuIvXLl1ib2eLrGFbH6r0WR7rxxmxXtxajdVk762vmwmsyqKHTLhDD12W4XDDALZ6+WB5B+8zs0MFOwE5qJwdSMW9ZEfqJWAhJaPrlGSKCSSLiAkueup6DJZY7Lc451gbbZK6JVdf3mZ5dZvlsuPq5ctgjqaa4M0j5khd3rdOXC6G9us7CKwihvYVvagdLgRG40DbdiRa1CIxdcRYEXuxrus6XHDE5FZyXddlwXG4pZRWwtxwvHnvrzkWrxdvr2fYtkOx7nDBbpDquq6lXbYsFgsWiwXtcklMESeszsvms6CXLJcCRYRoyt5uy/Hjm9x///3sLreZL5d9SRGIyo/96E/w2KN/j/XRCSrGaOcx8/2yybVEDo9RZawqFAqFQqFQKBQKhUKhUCgUCreWWyFNPPnkk3zmM5+54eL+wvee76ZgcZSw9XYLHbdK+incHvzdv/t3j5SxnnrqqVv6Od/PY9qdPmbcibyePLu1tVVExMJtQ5HrCoVCoVAoFAqFQqFwR7C66J8DqWV1sXrs8F5o3Ii7Nk7z43/tx3n66d/hlddepGqMU5N1dJmIPuFDgGjo0vB1Ra0TLr20y1/8ydexuRFiRZAaJz6XdzwkUcwUJ/kCf6InMKKioq42cDR4ApI8oiFXjswj4gDLgpgZqKK9/OAEzAtqRtM0WIp0XaKqPRI9yzbhQ0NlAdWappkychOq0DC7fIX/+Pkvc+ald/GRj72PE+86xpzAdnuZaAnnDSTLZ45AqGrMhJQ6JCjBGUjCSQMKagp2nTSkoJLvQVb3+fX+lhzjpqaLLabQNCMsGUmVilzrQWUlAJiCxl5UG6JHCJoSpjAZ15hBUqMmyw+WIuBy2c8EESMlw40SzhyJXIfzBpV4rMtCTZMaYmecPLaBA2LqMBzr0hBjojUwUZZpzv7ePs8/P+Pq3mvc/953cdc9x3txQrOE6BPO9dU6x6FqXd+AEnAcVJvAELWVkJUlQ+kfC6ihMaHRIIGqEFvFOoe1xisvvMLDP/ABfuiDH0EVGqnQBGB4f1BEKtwa3khN7vDrh+UZVb2mSjfMe/1y34h4V3jzHOyXQ7f+VOGcsLvX8m9//4/5lV/8Df7g97/E/o5nWr+LWk5AGuN0jKUxzhoqqXHSYARMBWdNX6zzYBWOGujHd2qsL4GKy3Kxdw5fBeqmwdcV40mgGQn1GjRrQjU16qmjHjl8kFzoTBBbZb6v1NWEuppgtp0Ll9IdHEMIaoopiIQbv/NwJ4eqc3aNWpc9OgPoS3ikYbbVzKu6nR2W54YFDcduLvX1vwAOPiWfJwWHUKFJSZ3DxIF3WSyORpCKbpZQi1RhxHS0gSZ45aUdXvjWN0m7gc2NDayrqOuaIA1tt6AKFc57SLkUmkuoB78nVc2VUVPqUEFUzEVCLezFfRppQBTVdE01LsUsZQ/TcnnQrwp0gzR31O94ENOHMcF7vzomh/es1u3QvDHG1X3XdfnWtrRty2K5ZLFYsFwuadslMXbUVZU/24b9qySL4A0XhNRFfKP4WvC1QGdsHFtHqKjTiKlscvzEJuYVHzwOT2cQ3HDMXP+7OtjfZewqFAqFQqFQKBQKhUKhUCgUCreKm6l8PfHEE/zcz/3cHVlvupO5cuXKLREu3gmFuHfCOhTeHp588knOnz9/w/SnnnrqlkmWZUw7mjtpzLgTeb19c6v2W6HwdlDkukKhUCgUCoVCoVAo3PYcFusOTxumewmoJkSE2o354Q/+VX7oBz/Cy3/4AvPdOe3+CIcyrgPdQhEvjKoxLCtms5bnv/IaL1y8yjRMGNdjdJ5ImvB1LgaJ0+wQqOKsJtiIysaM3ARnYzCPaV+BwTPIB4M8lq9RV8wZWOpVhDxddbhY3vpCnmEBggukpOAdQWq6tgNqxm6TIIG22+PyV3f5on6FMx98gPd8+B7GGw1X21eYM8c8iDlc5XIpLRrO5xKSiOECWAJTweNWfkQW5yKo4XDgDC9ZCAM5uMAfAe/ADO98nheBQN4GfZkuTwftZTMJWRTJnkdfA7Nhe0kuTyXAlKpygOsrVFlMU42IglNwZjgRgrpeWsiimikEFWo8YgIqVCqQAhoTgYraoO1ammoN8cZ+u8vly9u0sWO+bHn3A/cwmTZEXWLJCM4zCg2J2Ef9HH4V8Uu92JEQMSwm2raj61L+fBNSZ6RO0QipjWCCxzNfthAbtIP9nSVpFtgYHePDD32Ye0/fR7CqF2zcDQJE4dbwRqSR64W5Ydog1l2/nCKi3BoOxn5ZHf/D2G9mxBip6wYzWCwWVFUuPYoY+3uR3/2tL/IP/sH/wl/8+ctMwmmOT++BuIakKZZGYCMqv4ZIjUZBLSCEXPq0pq/UuQPJjgrpa3WCA8m5L+c8VRPwdUU1qmnGDeNJoplWTNaFeqL4sVGNBFfl97QtxKWxmBndvmKxYjraZMdvk3Qvl+BkUN+yECfBIyj5HJO3Sx6Qcq3U0D5BdyAAX8Nq0iFJ11ZK3SGRahDDD8p4B6Zefy6QQ+c2SyiKiYE62llCW4ekgLZCUiV2kboa492IlIyN6TEWiwXf+NpLTEYTXnnhMt1MGFdjukXCS0XqhDYpTT1BVWnblAVjk77uN3wnAzGcExBP23XUVlHVFWubY7Yv7bBMc5ZxjncVLnq8VjQGbZvLdX7Z4vsKq/eeEAIppZUsd1iug1yg895jZiupDlhNO/xeVSWldI1c17ZtLpyq0rYtXdexXC5Zzud0bcvuzg6z2QzvHKoRBGK2rFnGJYu0QF2HdEuSdWyerBltBFxjBPXMdmZM1hoqa5hd3eLfP/vvePeJM/z037ifSmaIn2bpsf87ZDifHXzPa//uOizZXf83WRnvCoVCoVAoFAqFQqFQKBQKhcIb4SiJ5DuJKhcvXuSRRx75jsWhM2fO8IlPfIIHH3yQY8eOreo6586de+srXHhTnDlz5ob9dKvEobdy7Nxq3gnrUPjuc+HCBR577LEbpn/qU5/i0UcfvenllzHtgDt9zCgUCu9MilxXKBQKhUKhUCgUCoU7isOSywrnVhIXppw+cQ8/9fG/xb/5oy8QJLC7O2caArHzhNpT2RhdeCSMufTSFb518RLSBUQqYqsEcbjK51JQUsRAxOPUgTqC1QRGuNggrsIsC2BZvnArgcFMc7UNQ5zhyBfSq61aQTip+u8g4DQLCpZQU9S7LMg5R20VASOZoyGQpGZ/5yoX//gbvPQXl3nt5TO8/+H7mZw+SajntMxQpyRTRCIuQFUFMCGaEWOLc0OgqJeFXF4rs5DlOCFX1sQQdWgvwpn0zkcvtR2IGrlwZxim9AvP4p7rxTewXP8TzVvGsoQ3rIMO4py4XvTr63fDupDX7fCl/GZZs1DNsiCWq1CiDk2a5TjNop6TCrEse0xlRJdalnHJWrOOyoS2XfDNr73EYrHkvvfcw/HT6zSjGrMuF/Iqn7/XsMqiBzUoDspEWRoEjf33tiz9maYsC0YldQmhJnUQl+CsZm9nwanNu/mBBz/EmDFeeqnn0H4q3DrerBRy/fzfqXZXuFmuK2peIzBCXdeYKW0bGY/HuXwZjVdefoWf/ydP8dl/9NtcubLHscn9ON1A2zG1W8MxwWhw0iBWg9U487nmaRVigVypC1nW6x9nuS5geEwc4vP4HGpPNaqomkA1CtRTT7NmjCeO0ZpQjR2hNvCQotK1juXcaOfGfHdJN29pFxHtPEHGqM0xy6VMJPVynfViXdULcQ5I5MF2EPGG8+KBPHejmj68cEgMPfRAyOeigzLd4fdIPy2n8vInJlYFO2dYgu3X9tH2GMQGSxU+NDjvqKzCxZpuEXlte4fFYsFLL76C9iXU4+t3sb+9wFWeEBwpGl0Xc63U5ZJcPn3a6phYrX8fiBUTnDicy43RtWNjTpzeZPdyS2dLIi3LzuPbirptMFN8JdR1tZLdhqrdIMYNMmcIYTWP93712lCuG4S76yt3g1wHrB4PpbyUEm3bsmyXdF1H27bsz2bM5nNSijgRUn+eNK84cSRtMVEIxjzOkAZkbKyfmiKN4WJEakVjhwbYuGuKdI7f+L9/nXvvOsOPfvgnGYURe4slk9EkS4lv6vxSxrZCoVAoFAqFQqFQKBQKhUKh8OZ59tlnb5g2CCNHceHCBR5++OEjXztz5gyPPfYYn/jEJzh79uyR85Qi1NvLUdWiixcvvu7+eTMcJSK93ZWkN3v8Fm5PjpLXzp49y2c+85mbXnYZ067lTh8z7kRe7xgsY2HhdqLIdYVCoVAoFAqFQqFQuGM4SmwxM4iGOaFrlXrsUA38zb/5U3zyq/8D/+SX/hH3TE6wRsN8v8M5j3eJSqZ0W/DiX15hf2vJuJ4QqEipIwQPWF+LMcDjcbgU8FbjZYSXCaIV4HLBiEHwG4QFA5eyYCeaBTuR/PKhGJCXCWoxF9eIJDRLfS5LAqpdLsOJwzTk5RmoOIJ4Klexv73Ll//wBa5cnnH2Yx/k1IP3MJOrzNMO4lp8nZfTxiWqSgiBEKpc3LumRqSrR3jJXSA9VN8zWT32CPTrkt/Up416F8NMetGhX54Zzg7mMwNTt5rBLJsRYkPZLr9fVREFFcGZkMjLiWkBgJphKhgGTnCaxQ/txQrvHM4cKGgyNGUZzquuljV2I5x3qCnLZUPbLdndmfHN518gpru4932nmUxHqHQ597faYpZtjl5sMVNUc03LeplQNQt2uXwoWOz3awddByQhtkZcGNp5lvsd7/nQGT740IdQA1HDUq41SS9DFq2h8P2C9MLUUZhBShHvD6QrU+Ub3/gWP//zv8Sv/ervsH15nUl1msAmsatx2uDqMd6NgQq0yj8qdUCDkwliFVjA0Vwj19lKnnYYDu89vg64GkITaCaBeuRpxp7xxDHdqGkaoZpAVWd5OSq0C2MxU9oZtPvGbDfRLRLdMmGppvZTYtzFmPfnn4TRYWKIeEB7MW6o0ykOvWZDmXMH48R1G9D6c5TIobFMhGv0KpGVGJ53AocGH3dQulPLtTpnWTTGcOpo9xPL3cS09SQ8KSmjUc3+3pLWKna39nnhhW/RNBUiNVU+G7K/0+bzqfmVyGd28BUGUW34JnKoqDfI2ppS3jLSkjolVA3j9YZXX75K7KCqJoivWLQLZO6YMKbqPMvFrBeiE2L5zI4aVBVeHGl43t/MK+Z19VhEEO9WxbrDMuhhuS6ltBL4BpmubVvmiwWLxZzZ/ozdnR0W81l+n0qWsl3+vvN2QadLqA1xStSO/d05H3jXKTbvWmepe6hbMl53dEsjRmV8YsJif4En8Lv//jd5z3vOcM+a0Iw2aHVG40d9kfHaQt3BIXR42oEMf/18hUKhUCgUCoVCoVAoFAqFQqHw7fj85z9/w7RvVxL6+Mc/fuT8n/nMZ/jEJz5xS9etcPN89KMf5cKFC9dMe+aZZ2669rW1tXWkKPPRj370ppb7Znmzx2/h9uPcuXNHHmtPPfXULVl+GdOu5U4fM+5EXq+4WMTFwu1EkesKhUKhUCgUCoVCofCOx17PnjjEt72AuxK6RSQ0gWSGc4HReMLHPvYxfv5X/zGXLl+l2nDU4liTMe0iwdjz6itXefkbrzHyE5w6VEGcJ5pCytKXcwGJHqEiMKJmTGUjvFagARtUsGH1+pJZ/kbaewnal21cf+uLbv13N81ymYjHe6GqIYRAFWqq0BAky3UC9NYWqh0xRfaXc3aXW2y3l7n851tciH/Jey/dzf0fPMXJk1MWbLOIe7jQiwmWW0MiBwKb9dOG3WD9d3EYJoKzLK6JQa/aAYI7FDWyoWbUz4NZlsMsKxocjiqRxTNTOZAPLIt5jn77WJ4m6hCzLC4OgoVB5eosQqwqef3ncvDYjLwf++3r1QE+759kxKQE53HOo2qkBCGMmcqIpB0pdrz26hVCI9zj72K8WWOWMBzihm2mQAJSL9clUoq5mKer3ZXXVUHVIELqDIuObqlo59DOmO+2rE2Oc/YjP8ID976Pigqcz+W7nE/MwmJxGQp3CEeJPIenHwwacuQ5YCiJOee4enWLrz//dX75l/85v/LL/4zZbkXjTxPcBLRiFDaQNEWXAecqHA2aPEIu1wk1Yg2sCnU1rhfqjGGsd7mU6lyu1DUBPxZC4xiteZpxYDSpGI+FZg3qAD7ksSy1RuxYSXX7O0pcwHLfaBdKt4ikKDhGeR36sdkkonSHynQKeHrjmdyOy+eaPEa7fih2eV5xuS5n/XP64qgMpne/nGue522/eiZ2cGLIqjirhKnLrxu9RK6QFsor37rM6G5jdHxKlEhatrz8rcssd19jFMYERnhX4VRJ0fAu4MzhakfslHa5BHHUVY33jpgSXdsSQlgdF2bDWh4g4pBe4lY68IHRRs1ks2H/6oL9bgfvayRFmM8JIdDFJTaPSL9tDhdyh9vhWt3w2Dl3Ta3OhXx/bWHxoFxnluXr4flyuTyQ6+Yz9vf32d3eYW9vl5Ri3rcaUVLevyIs2n0639LZghRnSGWEceC9D72HjdNrvHZ1G9ckXExIVNSD6ILpXTV7RL559S/5nT/8P/lvP/bfcWykTN0mZhG75j8j2JF/lx3+XeZz0bUSYaFQKBQKhUKhUCgUCoVCoVAofDuefvrpG6Y98sgjR8776U9/+oZCztmzZ3nuuee+K+tWuHkeeeQRnnzyyWumnT9/nscff/ymlnvUcXPmzJm3XeZ4M8dv4fbjySef5Pz58zdMf+qpp26JRFnGtBu508eMO5GjCp63ojRYKLydFLmuUCgUCoVCoVAoFAp3BNdf6D08z5KAEppc2lnGDqmUFy99k8///r9mcmxMCsb+ch+aivk8UNc121e2ufTyNtZCVQW6rgVVfHB0qnjnciUoebAKsYbKTajdGt5GmPosK+QsW79Wvbiwemx9eemwQOJy1U17Rc26LGrUNVXlqZpA3VQ0TU0IAeccQXIdLwt2WTyLMZLUOK7Gspsx63a4On+FKy+/zJevfI0rL1zlAw/fz/q9U+pKsNChtk8VIJFyqa3rhYzrtvWBWjHgejEjt42ybADOy0rvGIQ6I5fZhmpdFjEGL+SQcKDDuwa5blhQlv5UcznooH53IOxhvcrXL+9gWw6Zqyx6YJL/zUhfPhI9EAjBEcyhvTQhagR8/9lZXjECi3bGpVdeoxnX+HCSalQhrq9E9ULJ8HlmKVeJUpYvrC9imYJGW8l12kZizPWp2CqaPF2b2N6e8eH7P8BDZ34A1KEmeHE4L9hgzsjhPVQofP9w+BxwePxv25YXXniJP/iDP+Rf/l+/xaVXX+N973sQ7abMLp1ktq8s9jq8N5owJukYJ1PQCjGPkwbnGrAaqDAqHBVCQ/6t5UqckWWqUDX4INSjQDX2hDE0E0ez7hhNHKOx0IygGoHrx/+uM9pFpFvAfN9Y7gvznURaCu1MWS4iy0UHKILHE4iQq6Z0mHRgikjErJeE8xboR9hBeXN9y05YZd36AlyW5/I5SpxgWZ9eLWcl2Znrm3iDQLzKxvVzD+W7vtIq9NU6RVFSTHiriIsFuoTZ9pK57jGbbTPfbiGOiFHwNFgHZoojC8aYEWOLc4E6NLnw1rZ0ZngvBCdYiv06H67zcbBOwjDggxiJlmrUcPre47wUt5jt7xPcmEnlEBXa5ZKFh7quCL7msMh5WKxLKVHX9eq56yXLlNLqsdeDfxV/WLIbhLyUUj53p3yuaNt2JdjNZjP2dnbZ3tpmtjfLsqJTTCM4w8hiXqstrSxJ1jLr9ulY8MGPvJdjd2+SXIu6JcFnKS80julmTZwLilItlbSc8wfP/g4n1k/yM//loyij/hx7+G+sAxv+KHEuHxNFrCsUCoVCoVAoFAqFQqFQKBQKb5zz58/fIJYAr1trOkqO+MIXvnDL16tw6zhqX168eJELFy7clHzxmc985oZpN1u2erO82eO3cHtx8eJFHnvssRumf+pTn7plx1oZ027kTh4z7kS2traOHAc/+clPfg/WplB46xS5rlAoFAqFQqFQKBQKdzyJJZ0mghsjIfH8S3/BL/3zf8Jv/va/4NS7Ntm4e43d5Ta+7lAXGY/X2L60xdZrV/NF5clwluW8ZIqa4cRnaSt5Khq8jfA0eCpEHVhWGUT1ICAkekiky2Jd0gSAc1mQU7JsBYHgA3VlNKOG0XhEXdW9WDciBI8IhJClOud8LzN4zIQULVfSNNJ1EzbSOpvdJicXJ3lt/yW2n7/Ml/a+xns/8i7e/aFThHFCzZNsjojm8ppo9iJWJT3t1z1/pWRZpgMOmXaS5UCz1Xuzy9DLGTbocbIS5gbJboWB87182E8aRDobQkh9je7Ap8mX/jvN8znJwl/o1wf695r1BTkdrDxWVT5zWS0xQDyqCTHwuLyvzfrjQTA1nK+o6imdRi69fIWYjHvf/S7CuC9BrdZLD1XrupVIYcmt6lMpGamv2cVO0c7QLouB3TLRzjtSZ3zwAx/iBx/6QYKrcOowzfXAQXUoGkPhTmcQmg5N4bDoMwg9+XeV+MpXvsLnPneeP/iDP8S7itOn7+H48ZNMR6fZvbTON7/2Gi98fZd2lmVXZyNEJ4iNAI+XCkeNiUcIqDmcE0Q90pfrEEdwnhAqmlFDVXvCSKinjmoiNFPHeMPTTByhNkI1FMuMrkssZzHf9o35LrQzx2If0tLololuGUmd4hyIE7yverku5bFGEiaxH+s8QoJeozNAJJdDbRCh5aD4dzBopNW9ybXjutmBJp0nSw7TcShPCr2o10viw7Ili18miqFZ+4uwvz1n61LLnr9EyxWWy31G9QTnJ2gH4n0WnpU8FpPLrhiYGqkXsJ3L38dMMTXEycGq2iBo53MOKli/PklyOlR1SUCYbo7ZPJl4bTljttzHU+Mqz7JdgkWwCU4WaC9hq9rq8fDcDFLK1bqhXKdq+fwugk9pVRbN59W+oKd5/VNKdF0kxo6ui3Rdy3LZMl/M2dvZYXt7m72dXdq2w3lwzsDl87VZYtku6KxFfSIRSdbhR4EP//AHOXH3BJMWX+XfS1WBd54OYbFoqdYq2qUyUqGbtTz3J/8P/8WZH+aD9/5VAvXqt3f4N1fEuUKhUCgUCoVCoVAoFAqFQqFwPRcvXnxL0sOnP/3pG6adPXv2dUtCFy5ceMPzvt1cuXLle70K70iOHTvGo48+ekP96+d+7ud46qmn3tIyL168eKSUdJQI9UaX93Ycv9+Jcgy9sziqQHj27NkjJa23ShnTbuR2GDPuBM6dO8fjjz9+0wXGz33uc0dOL5Jx4XajyHWFQqFQKBQKhUKhULijuF6uEBEScwRHZwtefOUl/o9f/af8xm99jvGxmpN3HyOse8YnTuLryHjUMA4jrry8zWw2x6lHNeKCkLL1hgkktVw1soBYhZcaNKAJXF+kWQlmHIoE9csQD0PZJZOLdapg6miaMZPxlPF0me/HY0JoqEJF04zxPl/o7r3ki/i9J4t1DjNPMlCNmC1IsaFrl6zrmONxjY21NV5bbHB59gpf/89X2FnMOPGeCafft04KMItLsJQFQCSLJHJIUuuFCu+G0t4gpx3sgzxdD573QozIQdHI9QW7oVg36Bt5PutLS4PdcfD5GAQvvdDQT+gNEWd5fbJa4vt6nesFCENUMYO69ln4sPxcTfJnSP6sLL44zLJwkmU+w+FAhRRTLgX6mlZblm3HlctbVKHm1H0bhNFBwW+oFA7lOtwTeSAAACAASURBVBjEDEXMr8SMFFMfvHNoirRtB3iW8yXLZWI6mvDg+97PqJ4cchn7feMMxfpWUxEeCncG30neEcljQP4d5/F+EJlUlWeffZZf/MVf4otf/BLT6Tp3nbqbtekm0+kG0/Ea9xy/nxPH7mI6usLX/3yP+Y4QaBAb4ZiABMQ80tfpEIfIUL90eYxxAeezWFfXFfWooW4c9dRTT4V6Cs1UGK8L1QjwKRfTulyknO0vmO+2tPNEt++Y70K372gXQmoVU8USBAlARBW8z1KfRgUSIglIWC8kX1ucyxLZSqzD0RvcDJW5YVseyNLXlmDzfAfTtB/T3WrQHwp4gohD+jXQYVmSn4kYXjxtq1x65TKTy4psJqI3vKuxCKoCCtGUSugrn0ZdBdplB+Kz2Cf9+V6HSmH/nfr1cEOdNK9gPgfQj5NOSBZX55hEhw8jNo9vsNgTZlcji+UCbwFvDrFEcA7M98dbP2YnXT0OIZGSEkK6Rq4bnjsnuHioznqoWjcIo0O5rus62ral6zqWyyV7e3tsb22xs73Nsu1AXP+5Ceu/R5SIOiWliA+OK7NduibyQw+9lx/44AfYCi/RxURVB1LskMqRRFBzNJOa1EaqiSMYjO49xqtfe4Ev/N7vMvrxDT5w/4ff0mmlyHeFQqFQKBQKhUKhUCgUCoXC9x/PPPPMmy4AffrTn+bixYs3TP/Zn/3ZW7VaR/Lss89+V5Z7VLmnkHn88cdvEGXOnz/P008//ZYEjHPnzt0w7dFHH33Lksg75fgtx9A7h3Pnzh25f9+q3PXd5E4c097pY8btztNPP8358+e5ePEizz333E0t6/Uk45upDBYK3wuKXFcoFAqFQqFQKBQKhXcshysp+Vr+Qxdqy1DlyXW1pAk3FNbMshSR+nKOryEk/uwbX+Sf/fqv8Ju/9y+Y3Os5dnoE4wUWYLzeEJpAU3umTYN4R5zDyI+JInh1WeRSxbmsLzgTvHmCBYJvcIRcbUNR6XrZw2Vxa+jnDDLU6vs5vPOYGjF1+BCYro1YWxsxGtWMRhNGoxGj8Ygq1IQQqKqa0F+4Ly7XZ5x3rAQCE5Iqph6zCk0dXd2QOiXFTSq/QRM22UwnubT3Ii//8Wtc+tMO++hxHvjQgzTjV5gtXoXRgjbGXkaoiWpUoabrFngcDpfLQn26x5zkTpIoarmWlL9v/vaDgCd9Mc6wla+x6iitJLwDcW9gUDZMLUsuBt5y2WgoMQnZfPB9aSlf26+rQtwg4g1SHb2O5kVWgoOZImZ4DipZrq8MmWYZw2uWF5MZDpiMKpImLr36EjJecuruE4go3nkSSowJTYIlgZTw1ksVscMlyUW9lIhdwjQgZrgI7HfoTsvi0oyPPPTXef8DH8AxwqhRF3CWfwoexZkyCECFwp3EMA4clD+HGmUuQnqfi50ijpQSIsK/+lf/iqee+hwvvvgS0+kad911is3NDcbjMeNRwPsl1XiP955c59jpu5ke83z5P+0wu7JDJRuoQhCfy2mAlwqsQiyAeYwaJOCCI9SB0DiqEVRrLVUDzYYwmnpGk0AzqvANOAfaOWI0upnQLhyLWU27F1juC90edLNEWiRSN8dSzNKYRQZlzkwQ56hcRcSRUNAlKjNcpSiKmQdzuL6sZxZz9Q4jxg6xLATmEpz147Xk4ucgQ2P5nGu2MsRX272vkBrXn5MP5OlBph7Kna6XyVu7yqK7QthLtFdq1qpjmCSoWoxEolsJ2bFLefzFo5ZyXM9ls251LDjfHyQOVcW7/vNFVnJdHyjN268vBoJfadlmijIjjEYcv7sGlix2rkCcI34D1TFpkWjVMTIBV+USnylmS1JKhEqIKRCCx/lcF3RVQ9AacR7vKxpAUzpUDsxCoJqhKZ8nuhjpYkfbtSyWM/b39tjZ22F3b5f95QI0EELAKYhEXJPoZJ9F2qOTjmVoURJzmXPfezf56E98kGpjSapnaIh432Bzo00tiSxm+9qRVKjXGxZxQZosGN9X8W//7LeZnAycfs86I7ufyo1BHV49QfzqfxpAL3dngXM45/dHivTnJcp5qVAoFAqFQqFQKBQKhUKhUPh+4Mknn+Rnf/Zn33Bx6fz58zzxxBM3TB+KRa/HmTNnrhFeLly4wNbW1psqPT3++ONveN7X46jPe+aZZ256uXcqZ86cObJEde7cOZ577rk3Jbg89thjN9S+4Ob269t1/F4/7/WUY+idwZNPPnnDsQpZrLvVMlYZ047mnT5m3O4Mxb4LFy5w7ty5tyyNPvHEE0dKmJ/97Gdvav0Khe8F5b9qFwqFQqFQKBQKhULhNsJW/8zX1WfhKWrsr+vPdZxeQQAHKeXO2pf/4sv8b//of+W3/s2/IEyVY6enSJNopo4wgtAI5hOhcbgAoQ6kJLlSppC0F9c0X7AvKkgCiYKoQ8wh6kBBe+FDLZI0HXquqA3rl9GkaM6v0TQ1G+trHDu2zubmlGPHpqyvbzCdrjEZT5lMJkwmE0ajhtF4xGQ6YTpdYzyZ0DQjRqMR4/GIyaRhOmn6+wnT6ZS16ZTxZI3xaI3JaJPN8Unu3ngX923ez/0b78OuNjz7+T/lq8+8wFiPsS7HiK0SXIWIJ6rifMgyWciyQJ8OQvpakRPBub5O50GcDLtote8YikMuS3bi8i2/Tw89zwWqoUIlIkg/TVx+PHhkzue6nvfu4Hl/E0depjdc6NfLgwsOFwQX+sf9/D44fBCcBx9kdRvmlWDgDVcJofGE2uGrPH8IjuAdW1evsr+/DzjarsMRSNFYzJdZtkyKRUOiop2i0dCY71M0BEdcJuK8Zbm7xCfBR89f+dBf5f33PYQjIPhe5JSV3Fj0hcKdhurB+AgHZdJh2uEy1nK5APL/lfEXfuEX+If/8B/y1a/+OdPplPvvfzd33XUXGxvrjMcNo3HN5vE1qknCjxY88P5N/vrHPsTZH32Q9ZOO5PaQ0CE+EZoKcYGknuCnIA11tZblqRAIdaAaBZppYLQRGK8HxpuOteM1k43AeC1QNXkMS1HoFsJizzHbhdmOsNhR5ruJxa4y30ss9xPdosNixCxitgQikPrinOGcpwo1zgWEPPY5l0g2J9o+5uaYW6CyQJmTWNDpDGWGCwt8nUCWJJuhMgeZozYn6oykM0wWGAuMOSbLfCNPUxYkW5Dob7Yg2ZJkbX+fpykLlCVqC5IuiGlG1+2RbI5JolsqV1+esdhWfBpB59FILvVZOhCph/NwzJJ0SprH0GRoMlKXy36oA3VokoOb9mVDHWqhWWLTZGgCTflvhJiULrZ0acFoIpy4a8pkMxBlwX67yzLOiBJZxiX7ixk7uzvs7u0xXyxYLFuWyyXz2YL5fM5iMWcxnzFfzFguZsxnM2azBfP5kt39fWazGYv5guUizz+fz1nM58xnM+azObP9fWazOfPZnO3tHS5dvsTVq1fY298npoR4j5oQY6SNkflyn9lyFw0dC90n+o4re1cJU+UnfvJHeM9D9zKPVzCX8rkrBHxd40KFD54QPN5DM6rxlaOeVlQTB5NEdcz46it/wp+8+BwLmdEyA2d9KVfQjiwt6sHfZiqSxUaRVeWxUCgUCoVCoVAoFAqFQqFQKHz/sLW1xcc//vE3NO8TTzxxZEUIvvMF+UcJFa+3rKN47LHHePrpp9/w/K/HiRMnbph2/vz5b1t6GiSG71c++9nP3iDwbG1t8fDDDx8pvhzFuXPnePLJJ2+Y/vjjj9+U9PR2Hb+HKcfQO5OLFy+uxKPDfOpTn3rTdcM3QhnTXp938phxO/P0009fI3SeP3+ehx9++E2XCp9++ukjq3WPPvpoqdYVbkvKNVeFQqFQKBQKhUKhULgNEHRVZTNWCbT+LkiFw5OSgkku3JAw6fC18druy/zTX/7f+f0/+gLV2HH87k02Tq1x7OQGLgj1uCY0HglCqD0EoR55XDCSJkgGqc8XqUASrL8w3yzLZX0wLZfOVAf7r7+gH3I9KBdzUsrTcokvTw+hZm1tg2PHTrC2tsFkssZ0usZ0mqW68Xi8uh+Px4xGI5qmWU0bnmfBLs87GjdUTaAZ1VnGm4z6+zHHNjYZ1xOOTU9wfHqSB+5+H1O/yX/6oy/zn//jXzJOx6hkHbTCS0A0i4sxLfGul1pWQSPpZTjyvRe8sJLjgAPhUWwl3K2kub5u59zB/UrKOzTPQBbucgUKJ8hKpqMX42Ql0YmX1Y3rnrvK4SqHhIPXhntfZfnOV65/7HC+FxHCwWvV/8/euwdZct33fZ/fOacf996ZndnZXSxIPEgOAIoUSVFakJYlW5JNLfQoPUpSFpZKiSInjoFKVeykHBVhVSqplEpVKvCP/JGKZIMuJbL1JAFVKbKetUs9IoqkRGBtWaIskuKCD5DAAvuY5723u885v/xxuu/cWSwIgATAJXk+rOZ09+3H6e5zf2ew1Z/5Vg5XWsSCdYZ6XNF2HVtXd+g6T4xK59NP1SSIaOg1OLV9n5DUlyIQYbbfEj3EzuKbgNERayvH2Lx9k6KoMQiipNS6Q+6CLNKjMpmvBBZJn0tC3aG6MqSCisW5kg984AP8xE/8BD/90z9NCIE3vOENnDx5krW1NcbjEWXpGI1qRqMKY5R6JIwnBuMaXn3bEe75rrfxre94I0eONQS5RGSftp1jzYjSrRNDBVqi0eJKRzkuqFYq6iMl9WrBaLVgvFYxOTqmXqko6hJxBhXQoPhGmc0C02nD/nZkf6dhb3fGbG/KbH+fZrZP183o4oyoLVF7QY2GSEukBWnpfEPbBYw4oipNO6frGmL0OCcpTS3OCXFG1AZjIiKeqA1KoI0zOuZEaVEbUOsJtP2yx2tDoCNKR5S0PtDgmRNowHSAJ9IRTUBNQI0nSiDiUVpU2/STFpV2IeOBYm1JDI79nQ4/N5RmgnpD8JHgW6LviL7Fe08IELziuxTgF30g+kAIB1PaLqXcHazvDk0xejR6iIqGIXUu9gJnIESftpFINSpZ21hjvFoxD/tc3bvMfrNDF6Y07S770y12d7fZ3d1hf3+f/f0Z8/2WZr9LP6cds/05s70Z0/0ps+k+s/1d9qd77M+mTOfTJOnt77C9u83Wzg5buzvp584eW1s7XL5yhWeeeYYrV66ytzulayISbX/9DSoecYFWW7xVdpsZWlp2232oPG9529fwhq+/E+oGGQcEgxWDtZaiKCjLkqKw2H7sDJKepy2FelIiLrBx0zoXL32O3//D3+GTn/k4QRtm3R5KIKpi7CDYm2V/fvEHEFLyoWS/LpPJZDKZTCaTyWQymUwmk/kq4/z58xw9evS6iU/D53ffffd1X8aH9EL+88kr19v33Llz3H333Z9XMBnkgetJFl8IzyUOXE80OX/+PPfffz93333388oqX8msr6/zvve971nrB1nm3nvvva4ws7W1xbvf/e7n7Ftnzpzhne985xfdvlei/y6T+9CNyT333POsdevr6zzwwANcuHDhi5quR65pz82NXjO+XDl9+vSzatX58+d53ete95z171re/e53X/e7srm5+QWn4GUyX2rcl7oBmUwmk8lkMplMJpPJvCD6l7O1l9ak/3/p53yIOFcypPq0tLTdHGMM/8f/9SC//u9/jVffdRMnX7NBK1Om8x0MnnqlwFYOXKR0lkCHLWuquqCeWObbDQaHiYBqOpsxBy+N9zFsqkmkE+VAcBJdyGcHyOI6VBURoSxLxuMxq6urrKysUJYlVVVRVUmYs9b2L8IXOOew1mKtxRiDc4f/0/5AOlFstCk5L3qcM1gLxijWGjSalHIUWjZWStx8ipww/O1TM/7yTz7Ga266mSNvuIkr+89gCFiJNG2T0pdCSLJdNP0TGCwvEE1JgYdJ0pySrpfh9lyzzXA/hmeMgOmFMdVli0yWfi71hz4hLyXpDdso6W8Lxf556UHvkeVnkeTNpOoYRA9fxaJNC4lAF2k9w/MYtivLirbtuHzpKutHjxBRjHGoCr4LoIIOcmXQFEgVDBoEgkE9hNZQ2RHToDxx4XO87U1/nzfe+WYIijUpJfBAME3XqMLi+5DJfLly8F0D7z3OuWcJtoNIleqf0DQN733ve/m5n/s5Qgi86U1vYmNjg7IsWV1dXXxH19bWFrW0rmtUIsZ6nAu4asZktM63vOP1WGP50z/6KM3uPnRj5rOWkXMYU2OMUBQOM1bK2lKOLdVYqEZQTQyjFYurwTjACCFGYgiEBpp5ZLYXmU875ruRtmmZz+f4uSe2NonYqggBpenlNE+qqqFfbhBRnC0wUhCkQKMQDEQ6Zs08ycdiiTGJvKUrQQO+S/sGtYt7GnxfHyWlhGo0/dg1/E22NL4hung2Rhwq2gvWfYopcpA2N2ynQuytYSWCpOQ9omBMSegamn1oZ4JX0CLVxahxMYxqlF5ihyiGoB4rpHQ0VZSIwSz+hNwwViyG4aU6n5Z72fuaGi8KnQaCn2NioKhq1jZWUFX2t2fsNVfxXUtla6pyjDEwbSLet3RFRVUUhFDhuj791Bha63v53OFciVj6cU4hKj60aC/gd12gbTu6zjOdTtnd22E6mxJj14fEWiSmxDo1EcETdM5c9zGFpzUN+9M9mChvfvvr+c4f+AeYSUsn05RM2I+NVgxqkyROjISgQMCYSD0qaMKcoi5YPVoTrKWdFvzlR/8D9fQR/vk//ReMi5qoPvUBtRB6MV1NPyJrEsAP7izXjvaZTCaTyWQymUwmk8lkMplM5iufra0t7r33XjY3Nzl16hQbGxtcuXKFc+fOfV4B49SpUy8o9ev06dNsbm4+S1Q5f/4899xzD5ubm4vpypUrXLhw4QUnHL1YTp8+/Sz55dy5cxw9epS3ve1tzynUPProo5w+ffpladONzqlTpzh79ux1pYxHHnmERx55hPX1dTY3N9nY2Pi8UhKkZ/BSihwvd/+9ltyHbizuv//+697vra0t7rjjji/6+FevXn1WEluuaZ+fG71mfLny8MMPPysBcKh/6+vr3HffffzwD/8wm5ubiz67tbXFe9/7Xh566KHr9sH19XXOnj37il1DJvNSk+W6TCaTyWQymUwmk8l82SEsXC5AiBGscSgwbaa4KmXdeTPnU098kv/4Nx9m/eYJ1YowDduMj44wTlnZGGEKJUqEAqRIyWVqI6O1EeVKyXS7QdSg4UD4ikr/8rjF4pBoF5KTqqBGF+/tGyuHZJFBHhumsiyp65rV1dWUNtcnz9V1TV3XC5luEOuGaZDrgEPzcCDuORxRAyFYgg8pWU4UK0LwcMSsYcTgVfDtNp0qr12/iycuT/mbP/0ktx85yfjoUebtNraIOGkJeGKQJDOoptf1RVMKEDFJhiIH1z+0q0+nW2b5vhx6viK9MqewlJK3kN/kYP9rX9lX1V4MWX6hP+XmSZ+ep70chyxsjKUUvv4jDgsZy6k8aTml4w2CXbpOpW09hXEYY9je2sE5x8axdWazGV3rEbHEoMQ++TAEQ+ggdpHYCaEVjBYIkZ2r++xvtRit+bZvPs2rTtxOzSTJg0N/O7hrZIEh85XGIA+HEHpJ6aDmAcQY8d7zq7/6qzz00EOEEHjVq17FyZMnsdYyHo+pqmohLQ/HcM4RY2A0qSiKMiVtuhnGbnHi1RXv+K47KYrA+//gAjuXHNaNCLFFta/DFbix9DIdlBMoR0I9NpQjcIUgJn3Hu05p54FuFpnvK9Mdz3wa8HtK1ySZKrQd0XsISVYWCah2QNcLdQElHkqx67o5QadE8cTYEWgQ2yLSAIotHNEI3iudn6VyJx4xgjEHMnAISfYypkAFYtBe3jV97U1CtA4FGCX2qZuD4CuYRXqZEhkcc419HGdfe8UCxhJ9JBrDfB+eeWoPU1ZUaxXSp/MFG1IH0FRXJcReGIyohaiKmpTeqUCIMY0VRlJNFoDYi3VpeaFVq08S4NCmRTqqIfgOqxEnBqXBVSUbN68xXq3Z39tjdnUH380I2hGipzA1LQWNq6jKirpte5HdYp0sxFBjDM6WeJuS8kSSiB9C6Puw0jYdbdMwm7fs7e0zb6aAYqxJyawaaUOTklYl0MWGedgjFC0hzpmZfcJI+fpvvJPv/9F7kMk+ZhyY+SlqOwxlSjwVAWtT26LiY0CCUlUOg2U2belUsHWFn0dWT9Ts7+7z1M7jfORTj/E1t30DIwIr9mi6tf3jNYtxm4VcmdNUM5lMJpPJZDKZTCaTyWQyma8+Hn74YX7mZ35m8cL98wkOy2xubvK+973vWdLJc/Hggw9eN03phZ73egLJF8K999573eNsbW193uOfPXv2q1qMOn36NI899hjf/u3ffl1hbWtr6wXJQ/fddx8PPfTQS9KmV7L/LpP70I3DhQsXXrIUuBdLrmmfnxuxZnwl8Nhjj3HPPfc869lubW3xrne9i3e9610v+Fibm5ucPXuWzc3Nl7qZmcwrhnn+TTKZrwxE5IyInBWRqyKiIvIJEXlYRPJvl5lMJpPJZDKZzA3Ooay6ZwlagjFC10WCQlXVQGS7u8xffOxR/uef/GdcvPoEN922wdqJCWsbI0wZMDWoBLy2SKkUlUFsoB47AoHxakVRufRuP31ij6bzaRQ0CBIMqCFGFrKUDtsoiynGuEhaUlVijKgqxhjqumZlZYXJZEJZljjnKIpiMT8sL0/L2ww/U9JdtVheTrpzzuEKR1kVVKOKalRT1TVVNWZUTTCx4Oj4GMcmJ1kvT3DrkTu4dGHKRz78SXR/hAsjTLAUxkKMoKG/98vXOgiDMdmH9OtiXMhrB8/sINlo+T4tu3ZD4t+QOnQgQBx0AGOkT/QZPl/aZ3DNehNT+im96z+kGg1SifSpfiy2G46bziGL42PSMcWCKSzGGYxdBBhincEVBRqTcBdCpOs88/mcoqiQmFKZNEAMEQ1JxNRASqwLka5RQgvNXNHgOHnsNu587RuQYJPEEgVZJDjqoe/Es3XDTObLk0FsjTFijOm/T2FJSPI8/vjj/OIv/iK/8Av/Fmsdr33ta7nppptwzrG6ukpd10wmk4WUt7Kywng8pixLVlZXqKoagVQ7S0GKGbbe4cQtyj3f+2a+43vfwolbFFPvUK40VCsdozVDvWKoVqBegdEqTI5IWr9qKGowFkKAtlVm08h0LzLdVWY7ynxXaPcs3X7EzwOhCUSvqPdobFBtiTSopCkJdh2RlihpXmkREyhKg6sUUwSM8wSdMm+32JtfZGf/IrPmEl28yry7zHR+iXl7hXl3ld3pU8zaS0T2EDdFzZSg20TdRew+Pm4TdAsftgm6TdCdpWmPyB4quyhTlH2i7hJ0B2UPZIrYGWJnYKdgZmBnYKaImYPOMbRY0jg63QnMdhUJNaExRC/oHGJroDNoa4gdxE6IraANhBa0UUIX0Q6iV0KrhEaJXoldEtYWUxcJXSR0SSYMHmIHoRO8F0I/aRSCQhcDbehoQ0OgxdXCkY0V1jbG2LEwi3tsz66wPb3CznyL/WaLvdk2V/aucnV3m6u7V7m6s8327g57+3ts72+zs7vF9vb2Ytra2WZra4tLly5z8eLFfnqapy9eZHt7m67zxBgI0RNjJGqH1xmt7jP1O8zjHq2ZMmef7XaHUCmnvuUOTv/g32F03KP1HrvhakoD7P8UgMVisFgxWCv97xSWsnQgAa8N5cghLhBMix1HgmtZPTlmymV++w9/nb++cB6kpWVGiIEQe21RD6TvA4l9GJPyuJTJZDKZTCaTyWQymUwmk8l8tbC5ucljjz3GO9/5zhe133333ccnPvGJFyUmnTlz5kWfB1IbH3744ZcsWee+++57USLB5uYmDz30EA8++OBLcv4vZ06dOsXjjz/Offfd96L3HSSOl1KSeSX777X75z50Y/D5kglfbnJNe35utJrxlcLZs2e/oL63zJkzZ3jssceyWJf5sicn12VedkTkDPDDwGlgHdgCrgDngIdU9eXJpj04/yZwFri2Ym/20xkReURVr6/8ZzKZTCaTyWQymS85iwwUSak+SJ9cFw+ELOssbfRE07LbXOFvHv8L/vXP/59cnj7FaN0xXivQoqUlcuTIhOgCgYbJSo04EKOIFVxhEZKwZ52kfJvgkd6gEgzENKlIenFcWCThiKSfEZLUFePiOowxC7GuKApGoxGrq6tMJhNGo9F1pbhl4W5IrBuS7Ib0pmuT66AX+mLARINzFu8DISjWCFYMrSiKp6pGCBXT/ZbaRTbGJ1C/Txh7Pvrxj3D82DNsvnmDNsxpm4BzBh/7LLg4PI8UX6MSDz+vfkEZ5Lr0En4fRPccyMExDtl2epCepEMC4NLHQn/spaTAZelseVUv4Q0JR4t1y8081AEPzL/DIltETVIHFilILqVCKUpVVXjv2dq6ukjLamObpLqoxKiwJGKGENEuImqZ7uxCLPBdy623vJZjazdR2RFGTX8bD6S6hXyaE4IyX2GklK/0vR7EuqIoeOaZZ/jIRz7Cr/zKr/HBD36Q2267jfX1dTY21hERRqMRo9GIoiio65rxeNzXTqEsUz21xuJMiStLrC0oiwprBa9bVJVw822v4p7vexNlvcIf/f4Frl58krKEcmSoyzHlmqWeGMYrQjkSbC0Yp0QVfAftDNqZMtsLtFPFT6Hdh3bP0c4joW2J3hM1INqb2QxJbx6l6aU6TySiJqC06TNpUTtHzYyoM8Q2eL+Ll21uunkFMSOm0ynee5wpMGKIQUlpdGCD0jZ7TJstRFIOa4gRAax1gx+NYPsncTC+CALGLgRoVU1NFsGI6WtqyrKLeiAqpxppCFH64yvOOkInbD0zxRYWWxtMVaEI0Qgirh/ne2HLCJGDGm+MpLQ6VeKzinxkMfrKkAjYJ6FykLKmQFiUzqGoegxCkNgH7ynOWuq1ClMaZrOO2HlCbAixo2vnuHaKiKGwDqNpnC7LEiuCimLE4km/A4imvuzblq7zeB/puiSNagQxKQkwAETFawfWg/W0vqHTORFP6S53CgAAIABJREFUQ0NnWuoNy1u/6Xa+5Tu/jpWbAnvhCexIMSaiCB5L0T/D4VKtLYgSKURSYmEb8fM5o5WSVgKdgrWGziu1FGgHH/vMX+A+UHLyxC28evVOxqbEYhbPYxi9lT7FV0z6XS0PTZlMJpPJZDKZTCaTyWQymcxXHQ8++CD3338/Dz74IO9973ufU1g5ffo0DzzwwBecdvTggw9yxx138MADD3xeKWZzc5PTp09z//33c+rUqS/oXJ+PIU3puVKT1tfXF+fPSWOHWV9f56GHHuKBBx543v4Cqc/ce++9X5Bc80J5pfrvMrkPZSDXtBfCjVgzvhIY6t4DDzzAI4888oL3O3XqFA8++GCuS5mvGET12jfGMpmXhl5qexh4vpH7HHCvqr7kyr+InAIeW1q11Z/vQt+u5Wp+XlXvfqnb8GIQkTcBfzUs/9Vf/RVvetObvoQtymQymUwmk8lkvrQskouA9Lq+gsZF6pj6FBemIkSJdHi2Zs/w53/xx/z8L/0sn3zyo6ytTRjf5KjGBdQeGUXGR0Z47ajGhrIuMIVBNWAqw7isKLTk0qf2+csPPMGTn9ilnBagBiMWawokWiRYCqmp7YRSapwWGLGIsYiY5CKY9EK+9oKIc24h100mE44cOcLa2tpCsKuqitFoRF3XC9FukOvKslyIddbahXwnIot1MIgDLEQUBaIGuq6l60Kf4tPRNQ1tO0eDMp955rOOedOws3+V3dlFdvcv8+GdD3L01TV/957XU67vsx0+h50obQRVC+pwxiASgI5I6JPiHOkGDG/VL/0Uk5Lh6F2Sa166TwJl2mPxTxaDNyaaBDjVQwl2y/tqL23o87zMP+x/bRMO/p3ksKyYBMF0XiNJGon9/TVi+nWx39/irMPHjrZrsIWhqkpUFe89oVVio/gG4hxCa/CzwGyvpZsHwvaE/e2GS5/ZQXdK/qd/8i/5odP/iBGrGHUQUn/CDMJK/z1I2kt27DI3HNf+++Pi+/cc/y65vH6YDyFgreWTn/wkv/RLv8TDDz/M+voGKysrHD16lI2NDSAeSqerqoq6rhdiclUVi1rqXIFzNWVRA6k+F6WhLBwiBmdWmNSvZufyiP/w589w9rc/ypWnDGurtzMq1ylXSupJQTkyuDKJtSEKXSs0M6GZRZppYLbb0k0DfqZJrttP8l30+6AtyhzwpGoUk5otLUGnKC2BDpWISgDpUBqC3SG4LSJ7eL1MG5+mHE9569138r3f9w5UPE9fvMju7h4iFmtsSksVgxHD1Z0rfO5zn+PS5WeICoUpkD4ZsG082zvbdG2HGMGIJUYwIogYfAjsz6YpUXApInSQ1tq2ZTabLerlQqzr01pRIWoS7MQZgjQE2WVlA9aOO9yolwgNiJgkQatiDFijGFeBJoHLWpvq4JCaKoISEXMgceug0fXjjpUUP6pLQnKMcZF0OgiDQl/bky/Yi4ojNKSaa8WhHrp5R9eCDH5kECyOGKG0Dmsdne+wplhIi9EHYkipdMRBFkxCnXUWBKIElID2f0nAmxmhaPDSEUyHd5H6aMHx21a5/Y3HOPUtd3HTa0aEcodiHGi0QbGUboLH4HCoghEPBGJUokZCjHjfMW/n7O/vY42l2+/wjUHbkjh3tPsBvdSx/cycslvnB0//ON/4hnewWt5EFSfY6Fgoi6ZPrEUQ49KolN3vTCaTyWQymUwmk8lkMl9CvPd8/OMfP7TurrvuwrmcSZDJfLHccccdXLhw4dC6xx577Lqix/nz57lw4QIXLlxgfX2dzc1N3va2t33BSV/X49y5c1y4cIGtra3+D/JtsLm5+bKIJ8/F+fPnefTRRxdt2NzcXEyZF87QX65cucLW1habm5usr6+/pH3mRuu/y+fKfSgDuaa9GF6JmvHVxNbWFufOnePs2bOcO3ducV+BxfO/5557OHPmzA3XF76SuFH+O+YjH/kIb37zm5dXvVlVP/KKNuIVJP9XYuZlQUTWSVLbMCptAY/2Pzc5LNydBh4XkbtV9fBvq188Dy/Nn1PVe65p5yngfX07T4nIQ6p6/0vchkwmk8lkMplMJvMFMggYRiEML7/3CTYioDJkxFm8eqZ+l3P/3+/z7977r3ni8t9y5HjJeKOgGiu4lnIkyEiI4qlGDrERY6EoTEpYcSBGKIxF1TNZqTm6EdidNumcQ0qdklLbjEHSO+QEjYBBNCKmb3tMbYwxLlLrQgg456jrmrquqapqIX4URXEoue7alLph3jmHMWYxP+xnjMGYlCLTdR1d1xF8pPNt//K+IATAoDiQgq7pUmKQDxgPVVXRxglNM+fY6BZ2nr7I4x95gtefOkFVjmnnU8SSxIj+7iexjF406+9RTAF/C7VOhrlrX7I/lHOHLGJu0nrVQazrpQc5CJKTxREOMojk4FDLM0tne7bMcz29JxIX/U8GS0OklzrSrLGmF/369mnazmKIIWBtL+o4oW3nVFWF9v0D2/dhIlEDUSNImtrYMu/mhOC5+aZX8fXf8BaCeqIEDOkeLMuFORgo8+XMIMsu0q+W5rUXsrz3iAh//ud/znve8x7+7M/+jNFoxK233sp4PF5IyaNRtZCTl+vpQQKoXaqvjqJwWGMwJn3uLCAR6yKuaLHVHrffWXPipldR1Z4/+P3Haac7jOoJo/GYeuSwheCjQgDfwHwfmqky2/c0045mv8PPlTALtNNINxdULaod0ifVRTr6iDTAE3VOpCFIAxKIGlDpCDpLiXZmBy+X6MIuTXeJoyfgu7/nO/jh//K7+fpvuINIpJm3dN4jvfgWYxLLrDW0vmVra4f5fNrf85SsGbxnd2/Gpz/9BLu7e2nMcSVd12GMwVrHbDbjqYsXadomyd3Gopok7xgjV69c4amnnmI+ny+erRjB+47t7S22r24TPBhbENWgJoJpCWZK8PtIG7CuxBqbBhJRrBNQz7yZs3NlP8l0ohihT7IDYyNFURA0LMZC+hrbXyS2b+8guRtr0V4EL4oCMUKIATFgjRA0LJL3QJjFFiBds5WUKugihbMUpqCZdXRzT+dbUEPTKMErPiS9zYrt71OAGLHOplouYEyS6FptUpqhUdT0Ap5AK3PmzBCnFCtw/OYjvPltr+X1b72dIycr3GrHLF4F3afrAmIFYyqCRgwF9Cok2NTP5GA8dq7AxZDSVrsWW6ZnGlTREDEjMEeUFQp2Lu7wx4/+PnW5wt13fSvOupSGGM3ieEN64dJQnslkMplMJpPJZDKZTCaTyWS+yjl16tTLLoTcCKk5r8R1fjVwo93HV7I9N9q1Z7505Jr2wvlyaeeXC+vr65w5c4YzZ858qZuSybziZLku83LxMAdi3QOq+q7lD3v57kFgyFldB84Cd7xUDRCRd5JEPriOWAegqudF5G7gE/2q+3rB7vpZtplMJpPJZDKZTOZLQ/9ye3q/PSXYhRAQY1CNBOnotOFPH/tD/u9f/lc8vftp1k9MmGxY3BiKsWBKQeqIGzmkAJziCkEsiAFjBIxijFIUBmPTy+5l5Zh321SuIDKkkwl9Thwx9iKWCuAxWIyAxiQUhBCAJNil5ssiUWk5nW4QPoapKIpDUt1yWt3w+ZDKNEh61tpDcl0zb5nPGmbzaUr1WWTLJEERTek1LgaKYPHR4SkoQ01ZTzgaT7C/u8XFx7e55fajjG5eoY0eSGk3Iinxx0joZTch9slEqoraJJupyOJF/uF5Hmb5s2e/ja/oogMMcl0S0/rjDsFEIuhwODOc6HB6XkpQ4nB7llpx0McGi3Kh+S3aN5x/Ibj1ot/i/AgxBpxLz63zLVVdIRasEwIR64BCIFhEU+pRDKnvNIWwujZmenlOtJ4oHSodXhosBowc3EMdkqNyMlDmxmVZmLt2feyTPYfatczy8oc+9CF+4Rd+gb/+679mZWWFkydP4lzBaFQzHtdUVc1olGrhUF+ttdfU10FWdjhnKMqURGnE4qzFOYNzSlkZytJRVA2j1Y7V1YLv+v7bqOqaPzr7SYzuMJ6s0dtbaAfTGbQNzPaVdhqYzTraact8vyU2Ad8EQhuJMSWnQZuSyWhTUtuSaBdpiNIQZU6kJdAiJhBlSmQG9grz8CRB9zl+c8UPnbmHH/2x7+H1b7yZsjQgyspKiSIY08t1YbjnAMpNJ4/iXBpcg48IgjEQIrz977wF34U+AU7wPqb7ZIUQIvP5PK0z6YAa0xiqqjRNw3w2W6SngmCdpWs7Ll58hosXL9I1HmNLQjSEGClqR9AZz1x9kq3dS4v7rxqwFsrK0TT7XLlyhU9+6kmC9yiKMUnsjjGyu7/Nzs52GpOsOaj6zoAq8/mctmmwyU7ur80gxtB1HbOtGbP5HB89xpheEotYm1JCrTUEBGdc+n0BTUJ0jDgxlGVF8IIp+s+DgLME7bDWErpI17XQpd8tjAghyGIs0ZDS+NQoEY8SUQKelDgro0i5IawfX+E1dx3lLW+/g+O3reHtHLMSaWVK9HOs7bAWnEnJtqLaS/WyGL/SXwDo/yCAEdDU/hgjgtKqxwRBVTAxCYfFitBFpWqEJy9/kg/+xR9xcuMWXneipFSlkAIn/W9GBmKISBSkX5fJZDKZTCaTyWQymUwmk8lkMplMJpPJZDKZzI1MlusyLzkicoaURgdwv6q++9ptVHULuF9EPkGS7AA2ReRBVX3gJWrKTy7NP2canapeEJEHltpx/+fbPpPJZDKZTCaTybyyDHKFWUgY6QV0MclI6rQlSuBjj/8VP/+LP8uTVx7n2K2rFBPF1oqtFAqPqwtiEbCFw1RJpKtGVZKsjCLWYBx9WoymxBqrrK1P2D6yz3zaoAhWUlKeAjHqQXqeCiqCakypbmrQmF7KH8SrGOMhce5aoW6Q45aFumunYf+6rhmPxxw5cmRxLGPM4r7FGKmqjsLNk/SAosxQVULwGAFjLNamlCbrDLYwuGiwRYkrRqy6NdbKDXYuf5rLn93jtqPr+CAwTi/Lq0kyWSSltokYJEr/3FhKeeuls0GQY1kEk6WfS3F0LKezmUVf0P5YhyWcZblMETF9Aw4n4B2W9qRPpBui8fTg1MMqBiHoIFFLekFvSGRatCsdsZfyUhJUjKmfFkXBeDzCxzYlUGlMgUwFSDTJDwxKpRCsUE8cwSjHbl5jfmmPP3r/Wc5893FcWdCJwUkFKKrCs+9CJnNjItexP5dT64aEz2URz1rLk08+yfvf/35++7d/mwsXLrC+vs6JEydYXV2lLEvG4zF1XS8S6p6dVlccSgNd1FsnOKdYmwQ71yfZFaWhqgzjScXKZEJZgpHAmrF84987yqVnrvLJT+wR4z5GhWZuMBj2tiLd3NA1MN3ztE1LN+voZi2xDXjvk7mWqgSKR/HAHPBon14X8ai0iGlBGsQ0WNMQZUZkDx/3mDdPMI9PsHnHbfzYj/8QP/CD/5DbX7uBKyESgJSQaUgin+ogk8FQKezCy+3HMBEwBkGo6oJ6VJDE8CEpNMl3CkxWKqIqdkiHi0moSg+1P6YeSJUa0/LXvPEOovd4H1FMEsyiJhnOKNN5Q9PNMVZxVlACiMcag0bPvJsznSUpvB8VFvX4mavP8JnPfAbVVHNVIzEGbFmgqly5fJnLly9DjJRVBb2U55yjbVs++9nPcvHpp4ka8L08bqwwne6zN91jd28XrMNZQxcaNHiKwhA10M7mxNBnwylMxiv4TulaT4gzyqqirh3T2R6qmtLeiH3CXZIYgwaCeowVxEGQQBcjrhaOH5tw4nXHOP7aNW557TE2bq6o1gKduwplYBqSjCcSkkTp+xRbEdSE/vuXxHdMkjgH2T59BiKpXdE6rFVwKTVSMIQIXdvgJo6iVeZ7My48+Z/5ywuPcfTIcY5XBYolIhAVI2aRyDcE2GUymUwmk8lkMplMJpPJZDKZTCaTyWQymUwmcyOT5brMy8EgtZ2/nli3jKq+S0R+GBjyWN8JfNFynYic5iA577yqXnieXd7NgVx3H1muy2QymUwmk8lkbggWAlUvahmBqENMmKGjQYzniacf55Hf+hU+/qm/5OhNYyZHLFSe0ZEyJdDViqkUdUAZoTCIKLiY5A5nME5whcEgWCcYp4iLjI+MufnWm/jbj38KiR5nAgaLasSrp7D9MSRpZjGmZDuxBrEGDWDELCQSY8whAWSQ5owxi0lEFtteu2ytXch1k8mE8Xi82GYZYwx1VWGtAwNeA0EDUSPBG6IYrFiiRKwErJUkmRjBWItzJSvlCit2lUvbyqXP7LL55tvRdhsvc7wDMbEXyyKGlFw05AWpgpoDKW3xU/QgNe7QS/d6eHkpqfCwdKfXfVk/yoGwl05zjbS3oBfinueNfzUsriNtvYirS/3ymn1VQYb+GpO42HVzXGE4sn6EorJIhBADGpQYlGjBFimOT4MiCtYYxqsFu37K+okJl2fbnPuT36GUkjPf86NMrMFgActgLizfmqVLvP51XZMMdj3hKZN5uVnuh8vpdaqK9x5rLSLCBz7wAc6dO8fv/d7vUdc1N998MxsbGxhjmEwmi3o6CHR1XR9aHqS666WAWgfWeQprscYu0kCTWOb6NLwSawzed9gSXv0axzu+87X84fs+xt985Gm0m9PNanwzZroLsS2Z7bXM9uf4do5vPb7riD70crAHAkaT4KR0qMzTT/VEPJFIZIaPe2DmGOtp4zZBd/Fs08Yd1o51fOPXvYUf+ZHv47u++x+wtj7uj2FSDGYvGUsvCKvG/ruexj7v42JcAXDuIF3MmEEeNn39G6THoR4KYsAexGceyNJ6UIRkqSanwE3B4ojGUNWySJ1T1b6KCXVdA2tEDVirGNF0P2JI46EIUS1d8DgniBqCehDhjvh67n5zR9TAIE8PY0jUQNO2xDCk0qWxPg7jskLTNrS+65NdhytT9ud7fOaJz3D58hW8RsqiABMQlLJ0zOf7PP30M+zs7FLYOsmCYqirMVs7W/zZBz7Io+cf5fix46wdX8EYoSoLQuiYNVOUiHMGtQFTGIxTOhpabSlry4lXHeO1m7dy5NVHkElkcsRAPWca9rGElIHYthR1iVGbUnO96WXKiCOkZ2pcPxpGEIgY0p1Pv59YMeBKwKMhEMUnEc8JthSq9TH7O3PMOLJ6smb7iS3e/+g5arvKt771HtZKh6hggBACzhZ9HxrG7DzWZDKZTCaTyWQymUwmk8lkMplMJpPJZDKZTObGJct1mZcUEdnkQJR7oZLcA8DZpWOcVtVzX2RT7l2af95jqeqWiJynb7uInFLV819kGzKZTCaTyWQymcwXwSBfqGqfBLaUbmSFNjSIiWzNr/KL7/kFfvP3fp3V4yX1KkjpqVcKVAJFVWJqg1RgK4MpFHGKtQZsEprECoGA6YUzWwjWgg8edZ71Y6tUn3VMdwONbylwONGFSJBexu8TdJbbHAERjBxcz0LsWBLqrifYXU+yG7ZxzlHXNaPRaLHNctrTQlwRcIWlHo2SONDN8T7tr0GRYFCjqAkEa3GDeGIczpYU0TEpVqhkxJWn95hueVw1JkRPbDuwKSVJ+ucTRYjEdGpJyX7DfPo5iJEcrJfDks2yCCdiuDbNDukT5PrEpYFISh1cnIfDn1+7/RBaN2z3LMdMdXEfh8+u7ZPXtiutT5PElFzoioLJeEyUJNXZoiMGRWJM4qUVsAZ1QgwekdQ/1zcm7F6acezkKs88vs17f+OXOXHsZt7xTd+DmBJHgfSCnbmmKS+G5QS+TOZLxWHRy7G7u8uHPvQhfuqnfoq9vT2OHz/O2toaR48exVrL6uoqdV0nGa6qFil1y/ODVHe9dNC0LH16Xap3VVkxHo8YT2rquqQsiySARZ+Ea9K4cNcbS8TeRdttcf7Dn6HZXSXONpjtl4RZpJl3tDNP17RJtg4p/W0YIxCPx2MJvVzX9D89Gn0S8EyDSIu6hrnfQu0e0ewybT/HeE358X/yI/w3/933c/TohPGkSKlx4vraZ5NA1We7Hf5+J0FuWcg+lMC5JD0eFiAP9h/qZRKrk5411G5FF3V/ECSvbYN1Q7sUtEupdQhgMUhqnxqE2KtfYI1L1xOS6Ffa/hhIktdJiWzGOaxNSX1ILxT2l7FayWKU1hgxkvaNmiRx06f2HYweByP75q134YNHjMGKSemCBGw/kDTBE3zEmCJJ6xpwpmDe7fGfvvnv87/91P/K337s46mPleMk/IvFTEa4QijrAnERsYopIdoOOxLWjq2wcdMaq0cmmJWILxpmsaEIkcAUF8DiEGOICkRFQx+X20XE+PQHBsQBHl2Mg4Y0atqD56MpyVYoiKUnhEjwYAyIjcw7Dw4mR2taAyvHS3aevsyH/9MHeM3Nd/D6WyeMsFhTYKS/1zH043geYzKZTCaTyWQymUwmk8lkMplMJpPJZDKZTCZzY5PlusxLiqpeEJFzwNteqCCnqueueZHvHl6AEPc8vG1p/sMvcJ9HORADTwNZrstkMplMJpPJZF4hDiQmuf76tABRsdbhY4sxwsWti/zSI/8P5/7odxmvOtaPj7EjpTpicSOLR6lXRsTCg4u4yoADUwhFlVJcjDHYwhJRbJFy1yKBaNKL7iqRorS86tUneOLTzzDf6zAmJQ8lka5PgdHYv5Yv0Ke1pBf4LdpflzEpEc7aAhGLiMVat5g3xi2mg3WHZbvl9Lqqqp4lRAz3MaUkpcw1Uxhs6RaGRLrPvbiHxYjFicNisOJwUlCaQCOWcTlipTzCk1cu8fH//ClOvH4VnVjUCsF3RAIm5db1skQvXxhBe8lNFwIgHIhsaTnJJtovH06YG5YPi3GCmP4YB3FJ6Vn0Aov0qXSLpJz+fIPIJ6S2DdstH/2g88XFvsu3d0g1MkvS39CUQf4srKXzEWcL1lbX++cNPnqqsoIodLHDRk3PGQvBo9GAgWIEYR4ZrxaoWNaOj7gym/Er7/l33HT0Vr7ha78JiLjhWhdX0OsgKXYvk7khWa5X3vtFfQshALC7u8tv/dZv8XM/93MA3HLLLRw/fhxjDGtra1RVlZI565qqKqiqIQXUPSutzjm3JNMN9dVgbZLrXGkpixFlMWFUj5lMxtSjkqJw0ItepDmQgA8dYgs27yr5ttM3sbe3z4f++HOEKXTNGs00QDCgJLEuKhp7+QtBCYuaF2lQPEoDeAKBKAGMR2npwh7GNUgxZ9ZeodPLvO7OY/z3/8OP8QP/xTs4eszgHMSQUvGsGVI+FdEhiW4Q2YY7PsjPacUg/Zm+ZFxPtDXmoJ4sJHdN4tuBK30whls7yHpD4pxNCWYx9psJUVOqWjq2748SEU33/aC0h/4spq+xhuBT0hsHLjPG9HLecNmSrj2GuGj/MCZba8FYtE+ZNab/5/E4iIOGECJGDNL3y8qOqF26v0nAiyhhsVw7C5Uh9Kdu2paqTKLf3/u738z/8i9/kn/8j/9rLl3Z4+jRlmhqjIGyMlAWRAfYSKBDo+fIxoSTtx6jWrF0zNjxc2wbMSbgDPhOcU5QDLNpRzmqIBoikn43CYJKRIJBQi+eKwdPrJcwhSW5uu8+KQ2yQCN404uvFKixTOMMQgSnlCuO2VbHp596nI9e+Bted/L1lFLRaKB2o15cfO5+lclkMplMJpPJZDKZTCaTyWQymUwmk8lkMpnMjUSW6zIvB/cC973IfS4Am/38+kvQhlNL8xde4D6fWJp/+0vQhkwmk8lkMplMJnMN15PAPt/nwzpBFul1ACF6rmxf4hd/9d/yu3/wW3Sx4eTNR/G2wY0MrjSIVSbjESEGXJlkMFsaMApWsM6mpDCjqEnagy0csWuZNg1N2wARMSAWbn71q7h6Zcpsb484/E8jIfZCRACQXt5IL7JHTSpF744tJJIhQcm5JBIM92I5vWn5Hi3Lh8NkrT30+bWC4kKeQLHGLiQTWfrfsN8icY30zr0Rg2AorIOo1PWEo8Vxui5AEGazOZ1pwCUZJkpExSVvQxUxAWNTeg8iqHDo2g6kuT7dRpIsdyCKpXs5JA9JL14sVotg7OG0voPdellAljKIFmJfEvYU7fsVy9bJgaYmmqwTEa51AmRQK5blPEnyRoyRECOlNUTfMRqNWR2v04YpxlkEoSgKQojELqI2YrCICuosMSQ9rqwMjfdEp9haqFdqbnr1mCc+9hS/e/Z3eMNdb2XsagTFLUXoJbFu8c0BWVpcusJDIVS9UDFIg1mCyLzULNema9M1nXN47xc17emnn+Y3f/M3ec973kPXddxyyy2sr69z5MgRnHOsrKwgIqysrKCqlGWxSKtLtbVY1NYk3NmFkLws1znncIWlLIRRPWFUrzIej6lHFc7B8OVRpRekA+BxDnzXYcuCu75G+I7veh0f/JOP8tRTc2oM2qywtzPDqmAN9FFh6Zr7GqbEJGXjibSgHYgniieqJ0VaelwlzP0+s3AF3JTXbJ7kn/+P/xU/9I++jdEEjE1jjHWCasSHDmtsynqTdO4hmfIgqfNwjTVm+dkMohqH5pefV7/bYgy53nMe5pNUt3ROkUW9SWUzLcTY9W2sUs3HolHBJKkOTBpDNe3j+iQ01f6QS8uDX5juc0qjS96xICYl4B3cE8tCxu4vTAWIEWvMYmxw/Vi7eJaazililp1vNKaxwQjURclsOqceV0DgrV/3Fr72a9/In134j6iAV4/ElB5LG5nHgLGRlbUxq8fWqY8UzP2UdqbYGlQMqgETAlI4rDF4H6Bz2KpIY4fRlBgX0xgWY8T7JE6KKKY0/T3r7ye2T/7rr8vYPolWsDiKMnWCECOY9EcExuOa+f4cU0C9UmCPT9hrLR/88/dz08qr+Kav/1bGZoIAIQYEd5AemIeWTCaTyWQymUwmk8lkMplMJpPJZDKZTCaTydzAZLku85KjqlvAu17kbhtL81svYXNQ1ReaQLd83pdC8MtkMplMJpPJZDIvkiH5a0hoW8hfpJfCg3TAnJ32Ir/8//4bHjn3KwTXsfaqCWG1o5y+qepLAAAgAElEQVSA1h1x1FHUjlgk2SKUAWMNRgqsMQgRCUpRCpEOdYHKFnTNnErHhH2D3zeIEbowxdYrgHLrG26mNZ9h59IeoWtAPFahlAJLiVMLkZTW4/oX2gENHWIEawRrOoQGpEW1A6r+5XMDapbkkwDYQ/dl+MxauxBVPq8MpYolCRgSIkYFIxaRkF6+N0onHZ0EvIlEAbEGawzBt0TxiBUEw3zeMduJhPkqLhZ4dWgREROTsCYBCRVgURN71zBJM6YX3vTAYUiYXuzrpYshTU4kpdPBIMBpL1D0u4ugXpP4yLXyYZ9SZOSwWLZI50kJgBp9et9/+f7JQQZTsElISVlAaa1IL4RoEivEWHwXiAScE3xUXFHQTGeUZcXJYycpbE2MKRGxMAa1gaKGqAFPR+giUSwxWIJasNCJYpwDo7S2hdii1rN+V8tjj/97/s2vR37ke+/j5MqdKBNsMDhNiVV2kEn6tL/BpxmSsxZiy3Chy9JDlh8yLxPLtWqo68Oyc47ZbMalS5f4+Z//eX7jN36DtbU17rzzTsbjMaPRiLquGY/HC4kOYDwe94l0Bc6Vi9S6QaoTkeum11lrKctyMU0mEyaTdOwDCe1ASgNSumRfj61LnxVHlFtfr/zD7zrKb/7a33DliX3KeCvGlH0tLEj6cIPQIExRWkQ9QgQ3J/gW4wJd2EetJ9g9TNUxay/h41Wi3Qa3xde+5Rb+23/6A3zv972dlVUF8dDnpMW+sFrbi3WD+CZDSRuSQQ9y5g5YkotlqUwuzaflZQn5+oXi+bzc5YS0NGeAEmvLZ29rF4PEtc1cnP/gfNcsy+HtWN5Orl0v1+wDB/F3172K5140ilElhIC1lsm4xnuPczUb49t58H//Wf7FT/8zLlz4W7oWVo6MoPOYwuFEqMYl1cgRNdK0Dc4YCiN9CiyocYBDxaJqEKdEBYkWWwg2GowDEwVbKFAgokQxeBWEeUrONQXgMJT97x4plVFJ6bsqFmMtDov3HUiHsxZjlSa0adw/YgjtDC9TYvA8+bnP8r6/6Fg7bvi6298OYRWroyzWZTKZTCaTyWQymUwmk8lkMplMJpPJZDKZTObLhizXZW4UlmW2D38xBxKRL1SMu7I0v/GcW2UymUwmk8lkMpkvmOsmjf3/7L1r1CxXeZj5vO/eVdWX73p0bkLIXAQGYi7hsuxxbMfEGI+TOHEygcSDE2d8C3HiiefitTLzZzLJzFqzMj/8Y37MLM8sjwfGYBPjjDErJh6JBXHQYMdGxhIQA5aEBEhHR0fn9n19qaq99zs/dlWfPp8kA0ZCxN7PWk1XV1d3V1dXV7UO+/megW1xbJTJVJUQAsEC6hwmgauLS7zjPT/He//Vewi25tTpAyY7nmoi+AloY/hGcZXia8E5ITrNcp3qUDxTnFPE58yNWUKdInh88nSxp+97LOVyXQgdTj07O1Oed9tZ4vpRumuJGHuCtSRmOE30wfDica7KZbsUssi0LTchQ/VGBoFhHNWfnna7jFWnUTiMMRJCIKV00/yn2p4iQgiBvu+JMd4k6Y33q+qmXJRSLvJBLjZhUFU13bpnueyRJLRtIKqRUkQ0YgoOg+QY8nWIQJKY1QjdljMGKU7ImaFBrsu+jGGSSzpZrktsVAiRIcY0ChKGqeYqnuVC33YdLw2RQhNBLd92CDYIj0ny/UmyvpHna9bRRDBJCJKFQxvWQ8BSXu2Ikfouz3dCCJFEYr1aMXEzDg4PqesGEaXyNcEC3tUEa/HioW6wmGhTjyTwtWAIYZ1wLm8W5xXXCCkILjq0d1xftfyb3/wQcz3L3/2bP4laTTSl8hWkrPJkwfDJ37Nt3dDG9zPcenLOrlD46tk+DqV04xgnIpvj0ZUrV7jzzjv59V//dT772c9y+vRpnve85zGdTmmahul0ynQ63chw3nvqumYymWwKdaNQty3QjcW6UazbXq5pGmazGbPZjKZpaJrmKY+jJ9/DeLvve47bFmTKm9/8LTz4qZa7H3+M9dXLNNVpRCostYMc3mGErW9VxIiEuMJ5oQ3HiO8JdoxretpwFZNjEsccnKp4xStfy4/82PfzfX/1z6E+HxeNLyFWF75mbNcYx3P1eG4ef880TcOrX/Ma/vv/7p/xX/5XP8WDn7uf6ewMliKJwKyqiSGyXiYq0VznU0WcgnM4Z8Rg+Vyq+eQ1OvlEQAVxBjGf+CSCSsqF1eHcqi6hmtBNBjAL/Nm/3BIfLZ8HhfF7Y5ACJmuqSohUdK0RY0KdY29/Bz3uefiLD/Hxe+/h9sOXcH5vD6JsTG67qRBYKBQKhUKhUCgUCoVCoVAoFAqFQqFQKBQKhcLXH0WuKzzniMh3n5j15Zbmno5nQoz7qst1InIWOPMVPuyOr/Z1C4VCoVAoFAqFr3e+lBAwSnXbgp1JIsqKVbjGv/7w+/nAh36NdTrm1Pk9/MxwU8NPDK0N34CrQWsQl+dRCeoU5wXnNQ8gH4QvQVDvh4oZqPeopixzjeIZiRhbBMfpMwdIhMe/cJnjiyvaTmhkgqA4rTCBPsQ8mNx5DMv+mOai0EawG6thtpnAiJuq0/b22B68H2Ok73vatqWqKqbT6abkdFICATbLd11HjPGmCt7269iwHmaWpUIRSODE0beRpppQa+L6lQVpFunoweVynamRACyC2VCzy+P1swyXq2qb4pAOMpfallyXRUeGx6Fb1ToYKkzjMvk6DZ8TNihhYkO9KMsHadiqRv6801AuSuTXSJZfJ9mwvKUs64mRiHn6xgbafHpJctXQUn68CkSLIIkYAs3OhP39A6qqBlEcnmhGJTUh9TjxuCqvd0oQLOWKHxBTwIuQMFINKkpMAgFkR5muhctHKx784mf4/IX7ecG5b6Txc/rYoZZw6hFxm20kjJv4hFi3Ld/JWLYqYl3h2eFklTSEQAiBz3zmM/zqr/4qv/mbv8liseC2225jd3eXpmnY2dnZyHVN02ykuvHSNM2ThLrt26NUt12tGx83inWTyWRLLr5xnB3ZFnYhH0/btmW5XHLl+gKVXXb2d3nzX3wNq+t/wH2/8wTLK1fQ1KHihuNPBAL5yBMwWhI9kRVmiZ4jGp9wesy6f4JerqJuxStecSs/8qNv4Y3f9Vqed/tuPg9Gw7mYj5cnzqVjma5ITM8eT3WOHeePF1Xd/IYREfq+R1Vp6obXvvJ1vO41r+exC49x/fKC2cEE33jWy0A0odEK8ZbPrTlUBy6fvxgu4oDoUAeShJQMNSHFdNO50iQNEnuu/0qfz1UqNgh2gwg/1k4BGQVzS6g6qkqHnyiRZJEYJBd6zSEJkgmpg9lejVspn/rMJ3j+qW/k2193hnld41AcWvbJQqFQKBQKhUKhUCgUCoVCoVAoFAqFQqFQKHzdU+S6wtcD/3xr+r1m9sBX+Xx/XDHu6tb0MyHo/QPgnzwDz1MoFAqFQqFQKPyJ5WQlaLsMtCmQpUSgo7VjfvcTv8X77/yXXD5+jL2zM5p9h5sp1VTQxnA1uFrxtSIVqDN8BbFyqDjEay68iA3iVH5975WU8oBycQyVu6E6gxFjS1PXtO0acXDm/AGVOC7ESxxfXLPor2EOJm5OSpCSUlV1Fkos5XpaFCwpZjoU4rhxv0VSypc4XNxmuURKiRjjRgDp+57VarWp5Iw1pnGbjdcxRtbrNYvFgvV6TQiBGOOmGLUt2eXLKMHk7ZJiljkwISUhtEZoE8EivaZh0H+W6dJG2MrCHWKDBzfIKbIlJYzlOtmM6B9kx3GZQcBj6/bmkutsJpYLd5KlNLbuz+W8refe8lDG61Gcy8W6oWhngmneL4LF7P8NAqYML2JCztcJqAoWIzEa0QJIZDKt2dvbwzmXl0dJZigeh8PR5f1ehco3NHXEUksMCXxEm4gTTxQggjgHIRIbw0VhsufZPz/n4Yt/yL/89XfzV970Fl52+yuppMH5CjUZXU2Gd8gNw268Q7c2xlgTG9XBQuGZZzxWbR9/PvWpT/Ge97yH3/qt38LMuPXWWzlz5gzee3Z2dlDVm6p123LcWKHbFudOinTjsdF7j4hQ1zWz2Yz5fL55zlGsgydLdduyVEppIzUvFguWyyV9H+nay6S248UvPctfe+uf5bFH7uLBo0uEuKbSGdgg4ZIQIkZHYkWkw9yKpBHVFb0sCekJuvQ4brrkz3/na/m7P/rXeONfeAPNlCzuJsO5LETlddQnyV7lG/zcMv5BgLHUKCJUVZXP4SkyqWf85E/8Iyrn+eCH/1/WR0tUJ7jGSF7p1jHLcE7zHwdwoApOhejAehgMOZKAqeCjkuJYbk1IEmIyNGX5jgSD/p7Ldc4GwX08a2epOv9vPjfIUIh1YnifiMkhliN5REMSuErRCKlJuLnD79UcP3KN3/293+HcwQv5ppe+Dq1qEjL28YAn/+7bvF6hUCgUCoVCoVAoFAqFQqFQKBQKhUKhUCgUCs8hRa4rPKcM1brXbc36x8/A035dlOsKhUKhUCgUCoXCV8a2GDYW1sYiW28dv//p3+P/+sX/k88+/AfMT0+ZHNb4HUUa0KniJ+AawTfga0ErRVRRryQvqAjqdXjOPMBcneZB54P85TQXVvoQCDHm4egqkHKVzFdK368QZ+ydmqKc4VG7xPWLK5ZJcN7lxU1w5hAcRi7WGVlQSxFSNFI0YkyDVJcFO7OU6zApkFKVB8ir3CTXiQghBNbr9WaQ+mQy2VScRsbC0iiCnJTrtiWXGCMhhBsiX4pDJS8RI5AUCxB7I3ZGHyNRwTSv3yjG2SBvicTsb6U8dF9Ubsh0Mi6/ic4Notoow9lGxhtDajJIdDfuk01hTiVLASYpr4uk4UEpP16zPMe4DiN6Y4B/GtYtDeuCGGko1ZmAIqgotiWgpZTy+3BGkkBIPd7DqYMDdvZ26C2CRVSyuOnUIxiVNPQpQRKcJJq6IVliTQsWcGroWBFsAAVrBA2CmFAlmIvn6qPH/Pbv/xsEYfev7nDb4e04phg1an7rOzWU/wYhxxiLRWzqdjdEvELhmeFkFXMUjUSExWLBxz/+cX7lV36F++67j9lsxsHBAfv7+zRNs5HgxlrdZDLZSHLj/SdrddsSnapuCnbjfXVdM5lM2NnZYT6fb5bd5mSlbmSsfy4Wi42o3Pc9XerpukTfrsFX3PoN+7zmDad57MInOHpiSeIAtMbIEpzRAS2JFclapF6xWl9nMo10XOF4/UV0csz3fu+38Q//87/Nn33DN1LVMHQsqVyulIkoJ0XqwnPH9mcxipijYBdjvFGWTUZdN7zy5a/mJ37sH/LQQw/x27/7/9E0NeqU1IOtUy7S+SzTRZ9wDpJTokIazqGooAKoopqyjD1WcZUs8w+nq1yWzRKdC4no828J3S7qigBuuHBDvBYQNxR/8fkXTYRkBiGiXqimSuqEOFN0f8aly49z3yc/wflbXsStZ6fEZHmdhu11UmId55V9uVAoFAqFQqFQKBQKhUKhUCgUCoVCoVAoFArPJUWuKzxniMiLgV/emvXmZ6BaB3D5j/m4baHu6tMuVSgUCoVCoVAoFJ4RTsoX4/U4PQ5O77qOj33yY7zr1/5v7vv0vUwOJkwOKpgkrDGqqcdNFT9xuCohPiLe5cHgLl/UD+PRfa7AYIr6XIUxFCNLYk4clnIZrgshC1aq+Mqzbld4X6EKXVhR+YadUxOex1kmzXUuffE619rL7DWn8PWUkHokRZxUuQ6TICUjRiOEUVwbJLfUkZIjDVLdKLzFGHF6o14XQthsG7ghfUynU5qm2WyzsW7Xdd1Nl1GuG59vu4q3Ld6N032MJEssl2ucVngVjq6tcDPoUsBcQjWX6rL0FvMHqhFRcMNAfdEbA+dN7aYSXSLfHsf4w41qjkAW87BBjsuSnWAkydKenizZ5Q8YBq3RBJyMr3ujhpfNBIAb0k+W93LNLsVc9REgSRq0hXFfye8rEhBnBHrUG3t7++zv76MeQuxQFMgVRMVhFql0kiVK+iw7aKKqahKJJBFihD6iSVA3lLNqqKInimXh0ozJoeOoXfI79/5bDnYO+Ft/5W/jp36oBPlc44P8Dgyy2mDIIO5txDpubPci2BWeCbaP5+P1eLl06RIf/ehH+aVf+iUeeughzp8/z8HBwU1C3Xg8q+t6I8aNpbptsW5bsBunR8HJe795zGQyYTabMZvNmE6nN0nII9ulum3G+udqtWKxWLBarej7HoC2PSIGQKZcP76ASx1v+NbbuH79Gv/uIw9y/fFLYLsYHkgk1sCaJGtEetp4iWqeuLK8QC+X2dlN/MAP/if80A9/P3/mlbeBZLnJLAtaZuQGmAzf5UGVZbPK8hRf4fKd/lqwLYZt1wS3y4jee5IZTuAbnv9CvuuNb+ITn7yXbhWomimpM1Qh9ZA6Iw1yXZDxXCY4FZJCcsP5UxPRjcL6UJ3L1lw+9ymkmM9jiubfH33+HeF8Qp3PtTobSqubtzGeR7O0XlUetCJZwidDnaAkzBIa8h8WqCcTZH+flPZ48HMPcf9tD7I/vYX5pLkh0hcKhUKhUCgUCoVCoVAoFAqFP1Hcf//9z/UqFAp/bMr+WygUCoVC4SRFris8l9zJDaHt7WZ21zP0vM+EGPfHFfS2+V+5WR78crgDeN8z8NqFQqFQKBQKhcJ/sIziGEAIgY997GO8873v4L7P/x7z/Rn1PtQ74HcMnSquFrQWXOPwlWIO1AniHeJzIk2d5KqZG1SDLYkKy6WzcWC6pVxZglx1SSkRYsjyxSBx5cpZIImxczihqc8i6njs4Se4trrE3O/jZYqXChvKZSJCDKM0N8h1IQtzMURiiiQLpBSI0RF1KMs52ZSfxm2SRQu7qT63Xq/zOg+i2CjejVLeeNmu1o3Pe1K4i2Eo2lmk63tiSiyOV/RNYH8+pYsdAQNNiEREDdWIkTewuYiIUQ0VOdEsro1VnSwC5PljUwcdbbob72Ej0wnDc4y3BbOUhbstSQ6ng3yXP2M1MBXiRpwb1wM2GTsZxcBcArJB3sMPNZ281sPzJhLgnOK8khBi6GnDip39KadOnaKqKtZdFjETPZjgcUDKBTvncK7JNT0zkgW8qzBJBCKpTcgYD4q5tmdR0TQIgiFSiTAJgtcZTzx0nbs/9mG+6eWv5Fte/e3UeKJEDEUHPVBGwcY2yuFGucmKXZYAb8wpFL46TorSKSU+8YlP8Iu/+IvcfffdqCq333470+mU6XTKwUH+56GdnZ2bSnNjkc45R13X1HW9qdXVdY2q3lSqG6fHZafT6Ubc29nZQUSGUuiXLmXFGFmtVhwfH7NcLmnblrZtCSEM4vcSEU/XBcwCq/WKw/Pn+J6//EouPPoFfv/y44glxKZkM26JyRLRNRDo9SKr9QpXt3zDN5zlr/+NN/ITP/n97B3uYGI4Z1leEiElSCl/l83ysSOfz+QmacnsxqHtBuU7/Uxxcp85KWOKyEbejDHivd+cq8fztlfH4d4BP/i3fpDF8XXe+e6fZ3W0wsesRauCSEJUEa+oCtEJdDn/pmIkzecqp+T9QG2Q3JXUy6bqmoaqrCKIc5hBDBEwRD0pgbqaTdnUhjIiAEqyoXLnHFiN+IDGkMVOlxCnqNQgM5zfYzo/hddbuPTwit/73Xu49fB5vPTFL8ZutkCftC1Lta5QKBQKhUKhUCgUCoVCoVAoFAqFQqFQKBQKzzVFris8J4jIx4AXDzffbmb/+zP49M+EGPdVC3pmdhG4+JU8pgwmKRQKhUKhUCj8SWW75PJUjMLDKNb1fU+MkU9/+tO85z3v4TMPfprmoGayq7h5jzYBaQypE1YJ2njEG/hE5QVXZZEOB847ojIMWAdIN9YLG+oyWVpIIaHOkSxXYLJwpwgOJFfnxvfSxx5SpA+RejLj1heewanj8c9fYd0eMauEYIHQgyMXlBKJPmRhrW07JpMGS4kYAjEEgnN4FzFNRI2EkPAu3lSkMzO6rsM5txFJxoH7wE3LnhTrtot4o2CyPa/v+7ycJVarFdEii9WCEHu8r4l9YHnUIbVhIiSDmBJNLZhTwjAQ31xC1EiDLOc0S2+W/bobFwUdxDtV3ZLtcvGHQZQTFbxX+pRy2SfF/Hm6LNmJCM4LyYYij3OIQB/z55lFgrwPxBQQ57K8MOyPqmCScu1tcPxMI049MRlOZZAOQL0nxEQIkUBPtDX1tOb06dN5HUMPdcK8kABLuT7lqTcCp6JEc1hUoMY5RZwSBnEmdj1qhg7PoTWo5e3rpo7eAtWu0rU9u2cnHD1xmX/5gV8mGbz+z3wbc1cPe7iSQt6eXtyWwGhZFM0pLIRBphizReU/TQtfAaM85Jx70rSIsFwuueuuu3jHO97BhQsXmM/nHBwcsLu7y87OzkaAG6t1VVVtBLlxeqzQjYW6cXo8Bo6S3XbhbjKZcHBwQNM0eJ//CXT7PDOu+1MJdyEElsvlplbXtu1GSB6PldF6Ugq0LTgRkhmXLi+45eAFfOMrT/Gpf38/caWsFsdUrqGaBFbtNZqm5+j4Mm31RcRHfuBtf53/4r/+Qc6ca9jdb/K5JjGITaMwpzgnGzcY5EliV+G5Z/szGb8DwEasw3IlN5lx7vR53v6jf5+Ljz/Gu97zS5y9bRcvntgFxAuiATBq1xAl5XOTViSnxB5UDXFCCjk8N56TRSVHZAdn2qmCkM8FluVqI2CSAI+IQ2WcD7r5HsjwWyJrceJqvCiWEn3fUYnD6Q5Od3F+n7o5zUzP4GwO+2sufO4RfvPDH2Z/Nuf8bWfzOqQ0nJ9zlbiu6812K/8mWigUCoVCoVAoFAqFQqFQKBQKhUKhUCgUCoXnkiLXFb7mDGLd64abbzWz9z7Lr3dgZl+OLPfirelnQtArFAqFQqFQKBQKJ3gqGWCcZ2b0fb+RIx544AHe8Y53cO+99zI7P8PtVlTzBFNDJhFtDJ2AqwT1EfFZvMKBOUOcgdNc+xLBNNddskqU62m5kjYW63Lfy6kjhsB61WFJN7UXI0sOuf6VB6Ebue4WY6KSKQfndtnd3ePqY0dcuXCdSmumTYOkRB87wirQNA1me6QEbdtT1Y669vShR52jdx0iDsSh6un7GzLgWMTJQqDeJMhtD0wfJbxRnNu+vS3bdV1H13Wb233f5TJT3+fB731HiIHj4wV96qlnnu44cHV5hcmswXvHfDbn6FL+T656OiVawNdKiO1mfeu6AowYA8571CtGLs+pprxRJSIb6cU2BSDnXC7zETCMqsoD8wNjUUfw3hGC0Q9FqaaphtKfkMbSnQwfHqDOhn2B4Xa+TkMlj0FyS5K3L5Vl8U+EGAJ96nGVgotIJZw7f46d3Tl9DFiXUM/Qk8oXMUcUwUk1OIWKice5BjMlr6nhpMJpRLwRSLiUhUTzgprhEoDi64b11Q4/B2eO9XHLv3/wXpoPTTl75nm86NycRht8zhxlcTQZBNvUHG9QinWFPz7jsWX8rgObWpeqslgs+PCHP8y73/1uHnvsMabTKadPn2Z/f5+maZhMJjRNs5kepbnxPDCKceNlPCaMl/G1Twp5s9mM2WzGdDrdyDzbAs+43tui3TjddR2LxYLFYsF6vaZt281xcluuM0c+h2ji6tWLOGrENVy9/nle9JIDvvU7XsJvf+QB1p2jjz5/9/0RR+vHiRzTzK/zYz/+w/yjn/phbjnt6HobxFcwwiC8jp3J8Tg2flNHQzlTxKTnhqcr2Y3728l5Th0WI9551ITdnR1e/9rX86vv/3+4fnXJZGcCKMvrK3arCWqe9aJnYhVa+SzVOUDSsO9BVEPV0OH8JppgLJQKRBKW3CBUR5zCKJynodQrmoZ9LwKDkM4NG15xWdB2Dl8JVVVhrUfCLq67hbl7HrPJGQhTxFXMG8+pw8AXP/8Qn/rEJ9nZn7G7v7sRWcfvaqFQKBQKhUKhUCgUCoVCoVAoFAqFQqFQKBQKXy8Uua7wNUNEDoAPksW6q8CbzOyeZ/p1zOzqicEtbwDu+jIeesfW9FddrisUCoVCoVAoFAo32BYatueNggPcqLwsl0vW6zV333039913H7u7u+yeqom7RzBtSU0HDdAYWoNvjMpHvHd4B1oZWpHLdT7Xv3K5LpfR8nhxAR1FC7tRlBnWs133rFYrGtvB0lBuGcW64S2YQRrKX+aMPnZoVTHdn6GyR+haFleXrPojap3hfA1mtKFjuVpSeY/3jr739H2fBTHp83riUfUk19PZzQKLc+4meUVENpdttsW78fYNia7fXI/VuhjjRrhbrVZ0Xc/R0REpJmJIXLx0iXlwdGmFNo4qKV3qufboEfN5QzNpaK8aSYTOtfn9JKOqPN16GKKvFUFykQlNubqTEiJQVR4k5YH33uGdso4BI+TbVZYD1quQa3SSC0BmkTURVynO59LcYtEiXodaUBjEn5QLUFWu6MlorihAGuqFufoz7KGoKMkSsQ+5BuQG4U4SfewRH7n17Gl293ZIRFLos5oQgWA4GfcrzTU+AaMhCQgOP5TywEhmOIWmUlKjqPa0qcfZUO8TIZrP73fZIjVMdisiwv7ZKbFf8NkvfpIHH/0st5+/A4jAhMZNkDQIRG54b5YjdTeJOiWCVfhjclJYg3y8WSwWfPCDH+Sd73wnX/jCFzh79ixnzpxhMplQ1zU7Ozs0TbOp1tV1TV3Xm2PcKNuNt7flunE6y7TNRsob63fz+Xwj1m2v17iu2+s8Hj9jjBux7vj4mNVqRQiBGGOWjkMuY47HSgKE2A2CdmC1bhHpWK+u46Z7vPzV53jgcw9wtHqCfgWqFdeOv4j5Jzh9esLf/+n/jJ/6qR/NkpQzqqGgmSXvQc4yyMeucb0ZapPjjc2ngJ34Dhff7rlhex87KdulGDe/OwBm0x3++ve/hceeuMQ7fuHnuPL4dXYPp/hJw/p6jwKTHUfsDGkT3inJZdlb1FAP1gvJGYmEoCTJv2WiCoQbwdIk/VDoVXLijlzI1UAS8J5B7BM6iQgAACAASURBVIdRqsulOwDDoVgAlyZMtSKkGsIBO/4F7LrbqeyA6KCzNbOJ4E4ZjyyW3Hvfxzj3/DO87BUvp65ruq5DVYkxboqShUKhUCgUCoVCoVAoFAqFQqFQKBQKhUKhUCg815T/B7vwNUFEXgzcSa7DPQC82cweeBZf8h5u1PFex5cn171ha/rZXLdCoVAoFAqFQuFPBU9Vqfuj7o+bQefw0Y9+lA984AM45zh9+jT1LBEmRqig9y1WOagSWiVcJTgveA9Oc5VMvWAugst1FnUOETAxdKwAIUN/jmzKCSiOGBKr9Zq+D0zrXIfbFIQ2JRrBUhY2DMEsIQRC6GnbNY2bcsv5Q5DE8nJPn1aoU0QqQmhZrlY0dcN02tB3ga4KONdlAcs7nEZC6AaR5IY8N8py42Wsu42S3cntO67vKIOMl/H2eD2WmWJMG8FkuVyRUmJ5vGRxbYFGR7voMadYEK5ePyalRFNVHC17rsQlqhVVU5FcRwjdRniJMaKqTGdNLtcQ0cphlqXIRKIjC4bqHAmhl4SoUlUea2HNULYTzdU5EdQLiCOlSNQsqIgYqhXRAqoJs4T3iujwMfuhXjc4A+IYBvnn7o/TXPxBZCjaCT0RJKFeEA9JAlE6DnZ32dvfo+s7sA5Xg6RE6g004d0Ej5DUIwSiKUgAHDJkh5w5jArHsA+KkKpcG4xVHPatXLDzHqgE54f+osFy3VPt1uydnXL0xILf/Hd3cjg/w595yatQyfUhnxoEN+z7+T0l0jA17NyjYFeEnMKX4OSxexTUssyaj1FXr17lgx/8IO9617u4dOkSt912Wxald3fZ2dmhqirm8/lGmhvFurqub5qnqpuS3XaxbpTrxsLduPzOzg7z+XzzPE8ldG/LT6N8HGNkvV5zfHzMcrmkbduNhBxj3BxzRxE5pUTX97lkGTrUKSH2rFcr+h5Sv2S6c8gL7tjhoYcfIHaJJ64vqHzH7S/a5cff/jZ+5Ce+H/VZRIwWUbFcmLShUnrDfh3Wd5CCxYYz2Jf6spYv89eaP6ogKJJ/c/R9T6WelMBpxWy2ww+97e9w5cpl3vnun2d53LPXzLAQ6dcJ5wTFEyvyHwzQsVBnJC+oM1IvJJG8jzjBBsHbJEvhpoCFXLBL+RdQihAjSJ9QDahqPi+qDDKnIihiHsxw5tE4QYMgq4ZJ3Gfqb2XXv5CqvYUUK0xyQdhXuTB85twZLjx6gY/c/W+Z7cx5wQteQF3XhBA2tcuU0ubY8ZVsz0KhUCgUCoVCoVAoFAqFQqFQKBQKhUKhUCgUnkmKXFd41hnEuo8BB2Rp7fVm9myX4X6XG3LdHX/Uglu8bmv6zmd2dQqFQqFQKBQKhT9dPJV8AdwkiY1sD6peLBZ86EMf4hd+4Re4evUq58+fZ29vD532pInR+oT6luQDVJIFO5cLZlnuyBU0wTAxTBKmChsp4YaOMEp2iBAt605OldViTdd2OM31OOvTIOYBJlgC0iAimQxCWkJxiCrmEl1oUe/ZO72LJ7K81tH2xziZoCghZJlt3bZ4r/hK8WqoCc5XOOmHYe2OVOlm26WUbioxqSohjIPilZNsCyEhhE3NbqzW9X1P13W0bTtcOrquIwyC3dG1I46uHvE3/tpbeNXrX8UnP/MxqsbTdT0Pfe7zTOqaylX81r+7m8Vxx7SpuXTlCq5RvJ9ivbLse5zL2/r641dR56kqAQVfeUR6xCm+cgiBZAnnlbquQIxl7HDe4yqHiGGkLCo6wYblVZWqEpIYliLqBPUQLIIYyeVK3vChZYnNSxYGvBBCItV5v/ROiJZABVVQJ5gYSCRpJErEXGDv1IxTp08RUiTFgKsSllKW+4KBKmIBdYqRMCLBAiCoCSbj5yUIiko9yJogVY3HiDFiqSMNdUWLeV/Z2ZuzPl6TUqTeEYIF6h2l7uGeT/023RH8wPf/bV51x2tAqywdJiNFy4KiDsVFDEhgStZ18voUCiMn5bSnmx9jxDlHSomjoyPuuece3vnOd/LII49w/vx55vM5Ozs7GzmuaZrhe1vdVJ6r63oz7b1HVW+S6cbLtmw31uomkwmz2Wwj5Z2s1Z1c91FKHmudy+WSxWJB27abY+Yo2I3H0vE2QOiMGBNHxwucKl3f0fY963UgRUfoFswPI/tnIo9ffZhbbz/P+VtP89P/zY/yl7/v2wi0iCSgw6vPop8lVN0gASowitM3apsbKZyTx/ySn/x6ZHv/E+eoVen6Hl95QuypfcOpU2f5njd/L+/7tV/j+vIK/SxSTRtC29MSceJJPpHcIOmJgBPEJSQ75wQBE83CuBoqkMSIDryAaQJ1DF41FoUYAImoJpzT4fdZzH98wAAUMUGS4tsJjUzRUFGlXXarW9lxt+GWh1iYEhOE1OPqCWuLpBSYzo3Z7j4Pfu4h7r33Xm655Rb29vby6w+i6/ibZuRk7a8IdoVCoVAoFAqFQqFQKBQKhUKhUCgUCoVCoVD4WlDkusKzygmx7h7gTV8DsQ7gl4G/N0z/TeDtf9TCIrIt1mFmX07prlAoFAqFQqFQKHyF/FE1u6OjI+6++27e//73c+XKFU6fPs3h4WEWJZxDaodvFKkCvTdwa8xFRBNeBe8V5xKqCVxENNdaRJQowsZlQtBB8hM3DCA3hoHkwnKxousCTh1mg45lMZdcDCwplsbakGEm+TWSkWKPl4pIouvXqCjN1NOve3ozLCX6mKW62i+zQOIE5wQv4NTTdz0qPWK5ThZNN1LcWHEa5bpRVjxZrhvv3y7djcUls1zOWa/XxBhvkuwWi1xsatctR0dHXHrsCV7+spfzA299Gy9+yQv5zu/4VlytrFc9V69cYz6ZE/qet/6Vt+YCXog8+NADXLn+OOIgJXj4oYdQ7wh9z2f+8LNcu75Cfc+6XdIuW6rKE2KkTT3O52pc264QWVM3HiNLOzoM/NdKMYuog7quES8ki7QuS3aigATUR0KM1HVNR4+oDiJdoKpcjkKJ4bzS9z2+yZ+pdxAt4ur8Os4LpoZJT5QO84n9W3Y4e+4sVeWJqQczUt9jFmmqXCQKISEWEHKJcFgx1BSRAOY2n5fLaiYiHjDMRcw8VnsgEoi5cjQ8xAK4SiBANRGIWYybUxHX8NkHP8lvfOj9HMx3ueP8y1FzeJ2gLr/vXL4a9g8MJQ0lPUfJ1xW+EraPRePx5DOf+Qw///M/zxe+8AXOnTvHqVOnmM/n7O3tMZlMcM4xmUyYTCZUVXWTUDfeHoW6p5LrRglvvD2fz9nd3d3U6k4eC2+Sm7amx/U9Pj5msViwXq/pum6oeMbN/WOpblu4M8ti3eJ4RQoQ6Tk+PiKmRNt2LBYtq2XieNGi9THfcMcOP/3TP8yrX/MqXvu6FyFi+OGfZd1QMYspUflqqIYN5bCNED7KweP0k7+jRUL6+sYGIV+AqqpJKeJdhZGY1nO+6eWv5sd/7B/wL37l3Vy49Hlm1FQTh3mhXxu+MqgS0SVEBXGgPovmG8lOIDnNNTvNQp1EJSmIT1gKWKpJgEQ2Al7ShPM96kDNALdZVxAkeep+TsWMPXeGU/vPZx7PwfU5IXpiEswZfR1pe6FKnmRTQvIcnvb0MfKpT32KW2+9lVe96lXM5/ONpApPve8Wsa5QKBQKhUKhUCgUCoVCoVAoFAqFQqFQKBQKX0uKXFd41jgp1pnZ679Wr21md20NwDgQke/+EsLcf7s1/d5nb80KhUKhUCgUCoU/3YwiBtxcrLt27Rp33XUX73vf+7h+/Tpnz57dyBJN06A1uDrSTB34jqXrSJJAAiYJdYJXxWmW7VAlaS7XiXMgw+Btk816gGxJaEqMCVM21SJMSNFQcZh1WXhIuVw3CnajfBcHic0M+hjQmMt5Xdsy0XmWxJIRVpFVt0JSRVNNmXQdiwV4FWo/1ucUi2BNg5hCko1c55zbSB/OuU2t7qRcB2wes12rGyWREMJGIGnbdiOUtO2atu04Xhxz4cIF5tM5f/E//kvc8cI7qLzjYPeQZJH9pubs/nlIgiDc8Q13QDL6GOm/tWfRXcMs0XWR1XqN8471es3FJy7SrlsWq2MeeeQLXD++Rt3UXLl6mSeuXM71nRC48NhFLl++St+vOLp+BesNIqz7DvWCWSJaoO9XGI6qSVRVrviJU+Y7M4KtCaFnd3+PEHtUhaZpaPs1s9mMvl8jIvjG07Yt9cRIKeJcJFqkmjpiCjgnRDpwkXru2N/d5cyZ0zR1TYg9khIxBEQi6hIhZlmGmMt5KhHvI7mNmJ8bFJVcJsyfW953nCimjihZogSHkS1FiyBV7hmGGHGVg2SIRSwqRPAB9k7NuXY98sk/uJeP3f5Szu3fyun5DEt5n2aoAWWtLg0tPxkqWYkn17AKhSfLLycLpCklRIRHH32U3/iN3+Cee+7h3Llz7O/vM5vNmE6nGzl4LNWNIl3TNDfJcqNAd1KuGy/btbv5fM58Pt+U8E6u19OJduMxcFus2y56jsfJ8XgbQrjp/hgjq8V6uN9o2y7Lef2a5XLF8dGaxx47Ikbljd/1zfyF7/oOvud7/jzJcgnTABUPNjYjDe8aUhrXWYZz1naP7sb8fO556vdZ+Pphe38UGQS74VpEh2NxPi6fPXMrf+cH/y7RAv/L//YzHF9fs+enxA56SVhrWJ09bVMBL0gPeINeQHPCToIDZ7mJKiA+7zPOB0wEiwHwmCRS0uE8YsO+LLic/83FOoFcV/VMbJeDyVnO1i9kX5+HrnfoEKJC9JGYOtSMZEKyihAF5z2Tac0tt3Q8+sjnufvuu9nZ2eFlL3sZ3g+1Rp66ijnOK5JdoVAoFAqFQqFQKBQKhUKhUCgUCoVCoVAoFL4WFLmu8KxwQqy7y8ze/Bysxj8G/vkw/bPAHU+10FCte8vWrP/pWV6vQqFQKBQKhULhTyzbFaOT81SVGOOmtNb3Pd57jo6O+PCHP8y73vUuFosFZ8+e5eDgYFM4apqGxjdUSRF6Gqlo8LR2hcAxwa2QqiNUkegSKKgT1FWAYiZ41w9ro0OhKxExjB7DEOdwMiH2RlwZrJUq1DRSI1FI+KFWJ1iSLEAkQZKglgttEkBNSCGLbGLQW0fslaqeQAjEdWDZtqQQ6cKalG5B/C34tSOKcaqq6ZdrpigxCYhHEhspbpRMYow3FZqerly3LdiNksh46bpuI4qsVitWqxXr9Zrlcsnly5e4eu0yf/Mtb+E73viduRqHojSIJQSHIqBZrmOQtbL4MmEymSIoySBZ2sgiL31RBISYAuv1mrZbA9B2LW3XZmkuBpaLJct2yfXjIx548AHW6zVmkccuPkayRAg9x4sj7n/gIdq2Q6TnwoVHmE33iMFoVzFn3ky4em3JerVGvVDXLdECq2kipi7XspoIAsH3OHUEiagX2nUW4ZL0mA/s3jLlcP+QU7fs0dQV7bqlUkEkYpaoxIE6AmCWcD6XEaMaIURwCSdZDLSxHEciS3e5aocJiieRiABS42sBUyItkT5XiiThBJAsPQiWa370uGTMb624dvESd/3OB6imE974+u/l9O55nClOHGKCM8kihkAyI38yjGtSKABPLW09nVjXti333HMP73vf+9jZ2WFvb4/pdHpTna6qKiaTCU3T3CTSVVW1ke/GSt12rW587LjsKOzt7OxsjoUnzz/j9HblE9iUOxeLBYvFgr7vN+LcKNFtFz9PinVt27Jer+m7fHxdLJas1yu6Ptc/F8sljz5ygdWq49u//Tv4gR/4T/nGb3wxfd9R1x5LEZF8LjIhf+91aISNm9uGVt1Tfhm3K3aF/6DQQYkckrlOshCXsuLM6YNTfOef+07+9Qf+Ff/+s5+gX0WqqiEGiKuAeUXUsjznwHkjKqjl/qgNgnYyQSeACEkTySJOHASFyiHOg6+xlB/nfCSmSAg9KpFapvhUI/0cn/aZcQsvjK/ilJ7lUG/F2w59clTa01YtbVgTU4+l/DvIm1LXnpiysB3qmlOnTnHx4kU+8pGPcP78eU6dOrX5AwEisvlNCGzmjxTBrlAoFAqFQqFQKBQKhUKhUCgUCoVCoVAoFArPNkWuKzzjnBDr3mtmb30Gn/vvbd38XTO75+mWNbP/WUTeDrwYeLGI3Am81cyubj3f64APbj3svX/UcxYKhUKhUCgUCoUvzdMNgO66LDPFGDcVttVqxUc/+lF+7ud+jtVqxenTp9nd3WUymTCZTDZSRq0NNRUSA9VEaSrhSJSlRZxGko/0bo25gFQOUU8iojhUHEp7w1KQXPwxiRgB0zxoO/Y9Lhhep3hrCLEfii6K4m6U6sywJFgySGAxDyaX5EghEfuIxSycJLJolwgs1yuWy5bTp8/y0he+jKOrC774+UeompoQA4f+kCeuXuNg75Dlak3vIobga6Gua0IITCYTuq6jaRq6rsM5B+SB6NslQGAj1QFPK4mMxbr1ej1MtzzxxCUuXrzAa17zKt705jdxeMvhIEOGPPB9qACOQg2bytKNwfBOmlzmgSyB5TUCHBg4raimE3an2/tMlg02YqBAsMA3v25BihEMlqsFJgZm9CGwPD6iTz2XLj7OfZ+8j1sOT7FYLvjcAw8SWDKbz3j8iSe4//77WS2P8VXFcr3g+vUjJrMD2usrVqnFe0cbWkIQdvdq6qZiGY+ppw6tjf2zO9xycIr5bIIZdG2XJcNOUMnrnSpBs6lG1DxPBWJMdF2P1B51SrKA4kgGJg5NgopDBskub80eyU1EnArU4C0SrSeFhCRQUQzJRbsELgk+gaSIs4pIxRce+Ry/9sFf5ZbD5/Htr70FMYcmRQxUbnxmJimLGZRuXeErZzzWjOLM9evXef7zn898Pt9Iddv1uZOi3Dg9SnTbxTpgs9xYvdvZ2WE+n2/mPd055+R8M6PrOpbLJYvFguVyuanQnZTrRgl5PFZu3z8eN0OA5SI/x/Hxgq5b89jFSzz88MMcHh7yPd/zJt72trdxeHhISpGqcqxXKyaTCaM7JAhPufpy09WXfG+Fr38MNl6kaq7gYjb8rkhZ0naeV7z0FfzYD/8Y/8c7fpb7H/o0icR0p0FF6NYJ9bnWm7wR2gSSzx5JIamQxl3DCaqG9ULCUM01VERJJoO8OdZxIbQtFiKaKqa+ok47+PaQXXc7Z2cv5AXuVczdHrXsIlbTK7i6xboFMUSiVTgCjkgyqEzzbxCL2GxGSllMvXDhAh//+Mf5tm/7NiaTyWb7jH8kYPt3y7Z8VygUCoVCoVAoFAqFQqFQKBQKhUKhUCgUCoXCs0mR6wrPBneSxTqA7xaRK1/h4/+Fmb39ae772a3pfwx8KRHurWTRD+C7gSsi8l7gAeB1w7yRB4Af/wrXtVAoFAqFQqFQKAyMYtd21Wh7nnOOlHLdzMyIMbJarbjnnnt44oknuP322zk4OGBnZwfnHHVdM51ON8KFeoco1H5ONQHosdTRJSEONbqgLaJZajKLAHh1WHQgDhn+M9iSggqI5QqMVVh0CBXr9oj1ukU0r2eymKt1ZkQzUjJSkuE6V+tSNFLMol0KgEHfRlJIg2hnHF09Zt7s8U//yT/lDa/5j7jyxBX+h3/2P/Lxj/8+p0+f2ZT6Ll26yMHBKbQW1usllXn6vmc6nXJ8fEzTNPR9T13XmxrTdrluu+A01pfG7T2KI2O1LoRA27Ysl0vW6zWXL1/mscceY29vjx/6oR/i1a9+Nc45RGQjR34l+8KT6kpbs2XQRrb/d5xrYiCGw7E/30ckzzt1cIqQery64f0mutgjL4Nv+eZvQQwQoWvb/HQKi3aVRUSE68fX+PRnP83DDz+EKXzucw9gmtjZmfGH9/8hn/3Dz/L4xYvMd6fIHNQc58+eYXZY450nxch63TGtPYQIQXAOnALJsnBpQC8YkutzMUKyXIRrIl5rEpKFTXO5nDgUFZ24/F5xIBVIDyjiobFESpGUOqRS4iDW4Q1JAtGwSU2fjK6NTPYck4Xj0cc/xyfvv4dXvuSbOJyfRaVB0aGWNwoMDhUhlRhW4StERKiqiqOjI+68804+9KEPMZ/Pmc1mNE2zkec2onRdb+S57dtPVasbL+NydV2zs7PD7u4udV1vjm1fjngz1jq3xbq2bZ9SPN4ufG5LdW3bbsS6tm2JARaLLNVduXqV69evce3aNXZ3d3nrW9/K933fX+Lw8HBz/O37nqZptmp6X4MPqPB1w41znT1pvjDI2cB8Z86f/47v5MGHH+Chdz5IaDtsUhO6RPKC81k6E2+IZr89KKiD5Aa5W8genTNMQdTo+4RDcBIRNUQSIpGYDDrDecHLHF03xDjByz5n6hdwdv4STlfPZ7fap5JJlsMFKu+hMWLfEWONWU+yQIwJM8FSLrj6BBMaQphweHjI5cuXueeeezh37hyveMUrNr8NR5n2ZBXzZMWuUCgUCoVCoVAoFAqFQqFQKBQKhUKhUCgUCoVngyLXFZ4NTm1NHzztUl/e478qzOweEbmDGyU9gLc8xaJ3mdmbn6nXLRQKhUKhUCgU/rSxPRj6qRjlOmAjLxwfH/MzP/MzfOQjH+HcuXMcHBwwm81wzjGbzbJQNwgYznt85fFVhZOEJUGrs6ga1wK0XaKuBOc8wVYkApXzOIwU14hUYD4LRZZFJpLmTFdMkBxeJjituXb5OlevXuVwehZRIawiMkh1MeXKzP/P3r0HS3KWd57/Pu/7ZmZVnXO6T99bLaklcOuCERgkcTNIlsASWDbSGAmDEWNjA/aM10vEDjE7sbMT+6c3HA5jRyzjwd6IwbHYGnxbG4MvaIwZhMHGCCNAi5BAYGQkUF/P6XOpqsz3fZ/9Iyuz65xuXQBhDDyfiIpT16ysrLyp9f7q14bWaAN1s9upzu00sxCbhEYhNw6fA48+coJmEvnZ21/DC65+Aft27+fA3oP82q/9Gv/xP/4nPv7xj1MUBePxmIXhiBDWmPoJw+GQIoa+8a+qKlJKFEXRDzqfD9htb65LKfUBu+3huhgjm5ubxBiZTCYcP36cU6dOsW/fPt785jfzwhe+sG/Iq6qq//6ebIOMqj5m69JZ6wdnWgH79UkUT9t8o6I4cXjn27AkmXo6pSxKSgQ87FqoyJrx4smLGU2Kc57MmVBDk2qOXPwMcEpuvzimeYKipNTw0ENf5m2/9jY+eNcHuPi8fbgAop4cIdWRphGKSphsTglDQYIgXsBBrBNOwXmH9w7EA0JyGSW2QYag4DLOKyoB0YCooASQALMWKydtwx9SkamBgIaCIlTkBEnaZh9NAgWQM1L6tpFOITWJaVOzsNvh1fOJez/C0nCJl//gj3Fo+UKStkkMRyBFJQQQJ9ZaZ75hq6ur3H333Rw/fpwjR46wuLjY76O68Fx36e7rwnPdfqxr4OzuL4qCqqoIIbCwsMDi4iLD4bDf13X7vnOZD3Y3TdOHiDc2NphOp3073fzf7a11XYiuu6+73V8m7f0nT53ixInjfPWrX+XNb34z119/PQcOHGAwKPv9r0jbQOq9f8LjpfnupLNmVgDRdt3sonZOBNU2BBpcwfkHLuCG62/ko3/3ET7+D39PWSQK59FGiWPwTtvjkyjiBD8L1XmviM/gBE2CS0BqT01qILhM9uA14TW3DbPZoQmCLBDqBfy0IsRd7Biez/7B09mtFzCol1HvkOARFTwOFxxeS9JgQIw1OTWkHGfnHeB9JvhEDpkUYWFhgZQSi4uLfO1rX+MDH/gACwsLXHjhhf02PR+ye7zt2xhjjDHGGGOMMcYYY4wxxhhjjHmqWbjOfNdT1S8Cu0Tk54CfB55OG7T7Im3z3f+pqk/UgGeMMcYYY4w5h/kwVDcIej44MN+i1rWthRBYX1/njjvu4LOf/Sy7d+9mz549fbBuOBwSQmAwGJwJZpQBH9pWI6eKywWVq/AhoOo4HaFuPOoz4hL4jIjiUNQlYADaBt/AIeJoR5yD5gQE4lRnIS+P4NuARZPw4sjZkWfhrzYs0TbV5Uw7jaiIulkIS0lTJbiS2NScPLZKvVlz3TXX8aafeRPn7T8fT4DguODQhfzSL/0S73jHO3jve99DXU+pDh7i1KmT7FjcgWqiSCVFURBCIKW2ja9rreta5eab6+a/my7YkXPu25eapumb66bTKSkljh8/zvHjx1leXubNb34z11xzDVVVkXOmKApUtQ+FdEGRJ2qTOdf8PN7j22971w6wz+R+kH333rFJVMWgnQ/xc2/Shs4ke5yENlSnEGPCe0flRxTDEZBJmphOJ+wY7QaUTGbn5Xv5t29+CydPrPClY5/h4Pn7aKYZHSvRZbwmKhzVUkDrCMGDF1xbPYRLQijBuQKYVQoR0ZxJuSHGhEqDCxlPiaA4hKwBkQJPxuFQHI52OjElIhmRgqJIJM3kum7DGUFxpSAqpAwuO5xmykUh44jegQoP/+OD/Mmd72bv3r0sXrXIyC8hWrVNSeIA6RZde9OYJ6nbt6+srHDs2DF27NjBcDgkpcTy8jIhBESkD9UBfYhuPhg831QXQqAsyz5YNxwOWVpaYnFxsd8PdNPZbr7Bs9v3TSYT1tfX2djYYDweE2NEVR8zWLe94bO7dKG68XjMeDxmOq05dWqFEydOICK89a1v5Ud+5EcYDNoQXYyx//xt0DCQsxJj86RbQM13l9mhgu7gpCqgbbgcHM47VNpu08svfyY/81NvpJ5O+cKD9xNKjwsBBaJTfOHwXtq2Og+4jISMevDShs6jCLP8NxraHxXQlNpzFlECgeBKXC5xkwHkJZbCAQ6MDrPPH6Za34NuDnDlgDSSNgjoHW4WDHSFMKhKUjMgp9Q2/CZBcw3aoDD7PBXT6bT/gYCFhQUeeeQRPvnJT3Lo0KH+BwPmw3Wd+aCsMcYYY4wxxhhjjDHGGGOMMcYY861i4TrzlFPVXd/CaX/DIylU9beA33oKZ8cYY4wxxhizzXzIbrsupPXoo4/y27/92/zVX/0VCwsL7Nmzh6WlJYqi807a7gAAIABJREFUYDgc4r3vQ3hdyIJZ+MKJJ4inFIdowonHlwVOHadrh5LxI4e4QE5jVCIheGIWyIqKoGjbXDcb0K7Z4aWgicq0iaQ6Is6TNaM5z1rvQLULCgo6a7DTnNEIOSokT6wz2ji8OqabidWTG8RNuOWVr+J//Xf/ngvPvxiHJzYJ59pw3IUXXshb3/pWlpYW+L3f+z2OHj3ahxJHzZBBHjKZTBiNRtR1zWAwYDKZUFVVH3qbD9fNhxy7xrru0oVG5kMix48f5+TJk3zf930fb3jDG3jZy17GwsICIkJKCedc/xfoG2Ye77uerQ1bbsmZRMFjmv8Mmpkt/1l7jQpOHKhSFlX/FgJ96ND57p85Zq15uW0EKgs/WyaCQxFxeHEUgwLINJrw4hn4Ac94+jP4kZfdxG/8P/dy8tFVhrtKdlaLaHJoykw2ayQoBYIvlBzatrnsZsvDObJXsrQtQu2Ds+8iJzS1DXgaFO/acFvUBsltUNILOPWIOEQVdSWa22XpfUFZQULJmpCQaFOfbahOATQjOVGMQFAkO3YdHLHy8Ene91d/xO6du7nykhfgXUEittuEPNE3Y8y5dcGxz33uc6yurvYhmapqt9GurW2+pa4L021vrJu/dMeDwWDA4uIio9EIoA/Yzu97zhW+SSnRNA2TyYTNzU02Nze3tNB1+8Oc85ZwXRdA3n57Op0ymUyo65rxeMzp06dZW9vg2LFjjEYjfvqnf4obbriR4bDqw38htPuj7jM1TQO0x8IYI0WxNURkvru1LXVzPz7AmR8fgFlzW2qb6ESEpdEOfugl13H00a/xG//l7aycWmGHX0KAHIQ4UZxrd97OtbWl0WXEOSCDb9e97B3qHHUdKVXxLuDF4bLH1SVOhgx0kSIvs3twPvvK89mpByk2dqBxAL5AFgpyENTNknqiKAlUKIJjMBi0PzqgjhjbHx5QhayJoA409D+woKrs3r0bgC984Qs88MADXH755ZRl2W87KaV+O3/icw1jjDHGGGOMMcYYY4wxxhhjjDHmm2fhOmOMMcYYY4wxT8pjtYd093eDorff370mpcSpU6f40z/9U+68804GgwG7d+9mcXGREAJVVfVtRV17UdfuU4ZZo5ELBF/icEjKlMnjiwIJ4NXhsyPGVZJ4Ions2wHsmWk74FxKNGdyFlTTrLWuDdo5PBvrm2yuTdEMLniSQFKFLOSspAQ5aRuuS4pmSEnJSdAGcgMSHSRhY2WDYVjk+69+Fm/66TdxycWXMfADcoLg2+a5HBUXhN3Lu3jd616HiPDud7+bxdECjz76KMvLy4yamrIsmU6njEYjxuMxg8GA6XTaB1a2h0265d+FSOYDJE3TsLm5yfr6Omtra6yvr3PJJZdw++23c+2117KwsNBPowvUzQ9y724/XpvMme9+e8DOneM5W56BSDsoX5xueX47qa73R9vbs/lw3rdBhe5+FSDPXq9tCFJnwcCuzm52P5IpRMiaKZzn4L4D3PLKW/jyo/fzoY9+iDSNrJ3cYCiBIMqgDOQkNLUiPiOujfKJa9uC1EFyipAQJ3gyWRQSpAhZFZWaCocr2vdXbch4REAIeAJCRmT2zzZ+9rnI4JRMRc4T8uxzqfQfCZwHEXKaIkHxA2W02xGnBZ/70qf5wEfez97dB7ho35E2pCoORLF4nflGqCrT6ZSvfOUrPPzwwxw4cIDRaNQ3tnUB4PmGuu2huvkGu+56F6zesWMHg8Fgy3vOB4i375sAYox9u9zGxgbT6bQPzG0PG3etnvPNntub6uq63nL99OnTHDt2jLW1dUajBV73up/kxhtvpKrKfr7O5UxbXbbmuu9RbTvuXFhs1gAHgrg2/J0VEI9T2LvrAC9+wbV89MN/xwc/8gGmGzVOyjZcN1XwiewADzjB+0yuEwiIF5JTmIW9M5Czw2lFKCrKXBLykEW/m0W/l52D81h2BxjWu6AZEHNJ6Qq09NSThuQ8XhscgaJs51tEcd5RVSU5Cym1TbHtsSmT1ZOJ5Ch9G66qMhqNmE6nnDhxgve+970MBgOOHDnShgFn55LdMnqillxjjDHGGGOMMcYYY4wxxhhjjDHmqWDhOmOMMcYYY4wxTwlV3TIIenv46sSJE9xxxx382Z/9GYPBgPPPP5/hcEhVVYxGI4qi6FuOuoCdc44QAt47Su/woQ1RtW8Q8OqR6Fj04IIjqGdtGpgkkBKS20CbBvVTVDwiEUVICqoZSIj6voFuulGjUQlSoFnIKePVodqG6zQD2gbsJENOoFGQ5NAoaC2kOjPdiEj0PP8FL+B/+cV/z3OueA5lqBBmIbCkiG8bn0TbZXbR4Yt4y1vewnU/dB3v+p13cdf/+DDjzTE7du7ol9Hm5iYLCwtMJhPKsuxDKN0y7lqdgD5Up6pbGus2NjZYX18n58xFF13EC17wAq655hqe+cxnUlUVKSVCCH0AIKXUh2Pmp/94A97bsAtsD9dtf87jrk9zWc229E77/FdOs1ANSsoZ7xwqs+9HQJyAZEizQfretS9VReTMPHnv6MJ6AtRNQygChy88zC/8/FuISfmz//4nLIcFyonHV0KzmVFNlCNBRGnze4IXT6It9fEuo6Jk50AyIoo6IftZBLDJeMkUPuNcG/DMTHFklIQQ2lY+cXjxQAWz8GAWJQQlFIGcEiknyA4XgAwptYG9sgx4VZIILkO5Q1jcW/HpB/6BQ3dfhH9+xYW7nk7wFRkQzTgRuq/NmoIMnL0fP1dwrK5rHnnkEU6fPs3+/fsREZqm2RKy62wPAp8rZLc9YNeFbbrndfOxfTpdoHgymbCxscHGxgaTyaTf/3VBuvkWz+56F66r65q6rvvrXchuc3OT8XjMysoKJ0+eJKXEVVddzW233cYVV3w/zvl+2XjvyTn3LZ/bt6WcM95ba933gu3by5b1v8s0z2XR86xGVHOGrJSh4NKnXcZrb3stp9dX+PQD99DUCVd6pGEWsBNC4Ugeos/9tpRFyM7hnSfjGIYRrg64WOJkRMECC7LM8vAAu4r9LOhe/PqQnEuCDPChRAnEJlFT41yBd4EiJIL3uND+eAEi+OCpKiHGTDPbrrImsjZkIskrXtsmS4CqqtixYwcxRv7xH/+RBx98kEOHDjEajfptZ761zo5HxhhjjDHGGGOMMcYYY4wxxhhjvtUsXGeMMcYYY4wx5kk51+Dm+fu8932gaz4E0bWmvf/97+eP//iPGY1GHDhwYEtTXddS1wXsuushhDZg5wQvbauL+Fl4ygmoQ2JJ6RxlKKl8hW8Cq7UwxeOkIOYxhBrVTMpTVF3bNCYAGc1CUzeUboFmGklNRrIjpQQREIEMOc5awjKkmHHqSXUmN4okRzNJpBom6zXjtcRLr30pv/gLv8hzrngug2KAqEOz4Nr0F5K7ZRYJIZBJFEXB8573PM6/4Hxe9Pwf5G8/+lE+fe9nWF1dZTKZkFJi586dqCqDwYCqqvrB52VZEmPsg3BdKCTG2AdMuualPXv2cPXVV/PDP/zDXHXVVezcuXNLGGQ+RBdC2PIdfzMeq9Fpbo06c+1xymqcn1vvwpknit+2joZumjo3+XM35iFts5SqUviS8w9cxI+94mbu//zn+NJXH0AKhVCi7dpDco4ieNQLSYUkihNIAvim/QDOodI2I6oI3glO2+8+kqmlgcLhRXGiRI0ojqDVbP2cNXzhceJxGnBkRDNVWeKAqU5pcsLh2pBfdLjSE8mQM6mJuIFjcc8QJ8rpR1Z5751/iCNw07U72DXaixcHGcQX1l9nnhRV7YO7Dz30EPfff/+WUHTXzLY9nNcFfufDejnn/jL/3Pnjyfy05s3vt5qmYX19nfX19X5/2YXktjd4du1180113T6yaRrqumY8HhNjZHV1lc3NTTY3N3nkkUc4dOgQN998Mz/wAz/A/v37Z0GgNtgqIv0ygHOFkNWCdaYlbWS6PZdRVM+E7pw4/CyAv7Swg+uvfSnHTh3lK//3w3z12CPs8CMGPpBFUVGCV4JzNFlxqhSunBW9BpACjR5XDwl+QBWWWCp2saPaw6Lfw0LeiR8vQD1Cc4krBiiePGtFjdLgk+AaTzONTH2NSKaiwPvQBsiBMPthhNg35tak7HBZKIoCJ7kPwHY/orCwsMChQ4e47777GI1GXHXVVYxGo7POQ57o3MHCd8YYY4wxxhhjjDHGGGOMMcYYY75ZFq4zxhhjjDHGGPOU2B6O6AZG55z5xCc+wXve8x5CCH07yXA4ZDgcUpbllkBdF6rrLt57goCXtiHFOZAg4BzOeYQCyZk8CQwL2BuEQOBUE9hMpyjCkLpYmzXP6SxaJSi5vR0jhRZoUqabU+I04rRAI5AdShumyzEjTtCUIbUNLRoh15CmkTwV0lSJk8xLXvhifu6NP8eVz76KYTEEHMKsfUXbYF9bWtO2NuXcTlsQYmw4fMGF3H777Tz/ec/jcw/cz4c//GGOHz/Ol7/8ZU6cOEFZlqysrPShkhACo9GoD4WklHDObWmcW1xc5PDhw1x66aVceeWVPPOZz+TgwYNUVbWlKSal1LdJPRVUmQXFnszgd5279gSD6aGb8LbXd/e5uenNf5ZusP72Kc5V5eEYVYu88Oof5Kdu/xn+r998G6dOHMUFQQgEJySB6BQn7feWvOD87JsOGZy26wvtfepc22SnDglKbECkAaAsina97gJIEtt1o11rcAheA5k2nKBO26BpCZra9ThL26boCwe5DdqRIFeztscMxYIw3OX52he/xr33383Vz7mK5dESUR2lr2atfnKmHdKYJ6CqnDp1itXV1T6I2+1HusfnPVELVRfayzn3gbhzhdHmp9GF4sbjMevr62xubtI0TR/kOVdz3XywLqXUB4+7MPJ4PGY6nTKZTDh9+jQbGxusrKzw7Gc/m5tvvpkrr7yybw/NOffHqhhjvy99fLaNfU/qNocuR6c6u7M9Rkmbs+uPm6rtHnnnzl1cc821fOIzn+B9f/5e6s0G5wWfwYkQndKoUg48+ID6AMlB49FU4quKBbeHYbmDHX4PS7KHYdpBlReQWKJSkKsAKmQnOIEsmZwiSYWI4Fygbhp8DS4oPjic9317nfNCVQVSroixJuWSpCUpR/AK2obquhB7d+6Tc+bUqVN9q/FVV12FqvbnL8YYY4wxxhhjjDHGGGOMMcYYY8w/BwvXGWOMMcYYY4z5pnUBii4EMR8wuPvuu3n729/O6dOnOe+889i9ezeq2gfrtgfqvPf9oOquAc+L4Jwg3oEHcdqGlxA8HrJDtB2/LcCOoIjzuDxkvLlGUZxEAY+SNBOlJqYGTQmJDs1KnEQ2Tq+TJglPhUYQlba9JSmpSSCgiTZ0FzO5hlwLkj3NtGbl6AbPe+4L+Ddv+rc8/8oXUPpyFqYTzhmmEPqWuaIM7WcWR4wJTXDpZZdzyWWX8uxnP5u1tTU++9nP8rGPfYwQAisrK9x33339APXTp0/TNA3D4ZCFhQWWl5c5dOhQfzl8+DB79uxh//797N27F+99H2TpdEGWLhzTPefxPP7gd3d2/u1JEkDlsd97PkZ37ldvDweeeXb7kbZPe9aOhSIoHsfiaCfXX/vDfOnLD/I7f/DbbK7UFEUgeUdwjuSUKIpzQpqtlyKgjeKcIk7x4lBxqHPgfRujcB5NSk5KSpnkM+Ii3gmKEnONFw+z9bvtrgsoGchkjYCjcB4tizY0RERVcBGIgs9CLhw+zz5ThDBSFpYLDl64ky8/cj9/9cH3Mbi+5OL9l+B8ATnNmo6e3Hdkvvtt375F5Kw2OudcH9IFqOuawWBACKHfxzzWpTN/X9cw17XHOef64N72/VHOmc3NTdbX1xmPx31ArgvNde16XVtdd3/3nC6Q3DV9TiYTmqZhMpmwubnJysoKR48eZTqd8qIXvYhXvepVXHbZZVuChPPzPx8ePPe+8TGOBea70vz2cua77wJ1Zyi5bbQVQVMXsBO8c6hmNGcOHzrMa297DSunTvHRv/8IcawUoSKPMxmPakAoQApyDhTDipBKBn7IYrnErnyIYVpkMNmJj4uojEi+wlcBCk+KCUTJGkmAy5BShCQkcWiKNLEtZg2NEIo2XBeC638woA/YpYqsNTnX5JQgR3LW/vyu236qqmI4HJJS4tixY9x333084xnPYDQa9aH/+fZKY4wxxhhjjDHGGGOMMcYYY4wx5lvFwnXGGGOMMcYYY75pXaCgGwTdBbT++q//mj/4gz/g4Ycf5vzzz2d5eRkR6dtLiqLoA3bzbXVdqK6blhNpm918+1elr31B0bbZSwpUhVQnhrKTUFYUaYm1eoW0uUqiQSQjEhE3hTwmq8cppBqazYbx2pTcKEVw5CzkrJAUTRlRJUaF7MgRNDlSVDTCZH3C+sqYg/sPcduP38bzr3o+VVHhxCPiODOo/uxQxXQypagKsrbBNu98Owi9aAesT6c1F198MTFGjhw5wotf/GKgDbCcPHkSgAcffJB/+qd/wnvP4cOHOXz4MEtLS4xGo/4yGAy2fFfd9e33zbcPdmGRb3Sd+GZ0HWpf3yu6v130Ts5+uL89P+2uJqh9z5wzKUd8KNm36yC33fwajp14lP/+P/6c9eNjnA4pfEUUQBQXlCypbY9zjhQU784ECxUQDxLbzkRxGdFMEo+4BCiJQIHDeUeiBm2Dqm0znmsDdtoG7AKBRCahBB8oy1nrnkZyoZAEFYdTnb1S8FEpYhu+W1wu2KwbPnjXX1Clktff8rMsLI1A22Dd9vCUMY+lC+J2DZrz4beuva5rp9reSue9P+v+7rEuXLe2toaIsLCwsKXJqgvgra2tMZ1O2dzc3NI+102raZo+WNeF67ppd0G7jY2N/nVdwG5jY4MTJ05w7NgxyrLkmmuu4VWvehVHjhwhhNB/tu6YBfRtW51vZv9pvhe0xypFzjTZAc5Dzu324J30x5FRNeTq51zNq//VT/DVrz7KfQ/ch6egGgYgkJIDSrwMKRgwLBaowoCqGVBNFgmyiDQjtBiAL9EQoJidUzlFJZK9R3MCERSHxtS2rsZIdjUiSuOV6VRmx0wHA0fwjq5v1gfHYFiRchdyVXKetu3B28K1IQSqqiKlxP79+3nooYf44Ac/yHXXXcfS0tKWVl1jjDHGGGOMMcYYY4wxxhhjjDHmW8nCdcYYY4wxxhhjnhIxRrz31HVNURT85V/+JXfccQfHjh3j0KFD7Nq1i+FwyGAwoCxLqqoihEBRFDjn+oDdfLOJ975tLHECs+Y6ca4NHEkbG3LQXhcF9RRSIUlgWrDkSkbFMsmdZnOywUZcQ10DRYk6T0ybaGqgEcbrm8RpRlUgzWpYMuSUyY0ieJxmcoJYJ7QR4lRpxomN02P27TnIm376jdz8ozezvLgT6IJ1c40r2wtsgHIwC9aJ7x/03hEbJYS22aUbWN4F5bogytOf/nQAnvWsZ1HXNSJCURRbXtMFPLrQXNcAMx/86AIuXaCxu/7t9fiD6fXstNy2Vz/BYPyuQGj7DW3b54pQzgrwMhdd+DRe+YpbeOD++/jSVz5PHFY0VQbnwCu+BuczGsAVijSKOsXJmflILiMOHEpC8QWoV1JyZMn4qIivKHBEapSAatuK6MXPInIBTwYpQBNKRl0meI8GJceE+oyr2rCEA7y07YMpZoosSJMIuSDUnri6zt0f/yjff+Ez+aEX3cTAl21b4Ny6s2WRWcDBzHTrQgiBiy++mF27dnHvvfeyd+/e/jldqG0+NNddn790QbsuqOec6wNwXfA3pURVVf3xogvUra+v90G5LizXhfO6AF53vXtO11LXPX88HpNSoq5rNjc3OX36NEePHmVlZYUDBw7w6le/mhe/+MXs2LGDENqG0S5QB/QBoG//PtN8JxK0/cEAzbT9uu2hRWUWWNPcP3OhXOK6F7+UT/7DZ3jkn47SbNZUrsC5gsKXhKbC1yMKN6KYLFLJiIIBTgckH2i84JOgZRuOEw8aG7ID1VlTrc+oZLImMq49ZinkCEjGNZl2VVecOLwPeBdwTlEF54SyLEhpQNPU5AQ5nQnPAmcFap1zNE3D6uoqH/rQhwC45ZZb+ubJLrR6rmOQHZeMMcYYY4wxxhhjjDHGGGOMMcY8FSxcZ4wxxhhjjDHmKdGFDYqi4EMf+hDveMc7GI/H7N69m507d/aNdF34qwvQFUXRX+8CdfMhO5E2WKdewLlZkM61sTqRWXhJSZqABFmQJiCaKcQx8AscXDzCSnMSHR9lLZ0m+UT2HnEB5zwpRSYbTTvwOwtZFVVHipGcMhrboFSOmabOpKYN2NXjyHS9YXnnbl5960/wqltuZd/ufYDgFMi5zda5rr2OPscls+uOuVYWAbRtXQvhTPCta/oD+iDKfEhuMBhQVdWWwFyMsf9OUkqISB+c6ward8GV7n5gS5hlvinq67Y9+/ZkXiDzLzp309/8o1ttD7bMNdnp1mn1UbptExEykAFpv/8UUScMywWee8XV/Pgrb+Vd734nJ08+inhl6Eq8gBtIGywI4HxCPOAE58G53IZDk+AaBVLbwpgFSaCp/c7EOZqUwSmBBhQcnkzCobNFIzjxQEBdABKapQ8exBTJMSGk9vm53T6cShuIUCEsFIzHU4YLI84/tJdP3XUfv/mf384lBy7n4vMvhYXRWYtye1DTmI6IsGvXLi688MJ+H1LXNdPplOFw2IfdtofsugBc117XNcE55/rrXQAnpcRkMqGqKqqq6sN14/GYpmmo65q6rvuQcDftpmn6gF3XWjedTvvHxuNxH+BbW1vrW/COHz/OyZMnueGGG3jta1/Lvn37GAwGfeivC9j1zWOa+mWRc56FquGJAsLmu8+5Wj+7Ftgt4fr+sfmMt4BqH7YXac8FVBXNCefbc6i9u/bzulffzomjp7jrI3fhk6NeT4x8ifcDnCshF8TkyKnAM0RyxXShDeqFnGlSwk2nJI1tw6k6yMXsFCqDy+CVRhKQQQuyguRZA6t34By+iYSmxgVP4Yr22EZ7DlGWJaPhApocOUdSjrPtQ7a0WUJ7vjIcDgH42te+xhe/+EUmk0m/3T3e8rXjkjHGGGOMMcYYY4wxxhhjjDHGmKeCheuMMcYYY4wxxjyuc7VXbb+vu51z5mMf+xi/+qu/ytraGgcOHGB5eZmlpaU+RNeF6+ab6ba31s0H7ADUgTgBcTBrrGsfaBvMxCkCpG4AuwpBS5RMbjJpzVHmRXYNHZVbZD16TteJcb2J0hDEMZ02EEGzEjUiGvrB36pKExvqOtFMM15KckyMN6fs2rGH23/idn7qtW/ggoMXktOsicbNAl0yN5a+y2NsGweetR1wLupBICXF+3bUfbcMOt1A824w+XwQrvsOuuXXPd4vx9n31AX1zoRBpP9eu+luf99/dnnu+jnHzQuPP55e2RKw2zYhOcdzdFZXKAjiPEgA8USdsLS0xGtu+0mKyvOb73w766dXocgE73CT9vvKoW2ScwHw4LzHSUYFnBeiywhKVXhUhZQUiV1AVMheyCiDYoCSyKR2/ZvNY1sW5FDnCBRAQqUNcDrnSTmjMbeBPAWXpX1VhlA4HB6JsLBnmfpY5tjpFbzAF7/wBX79V9/Gf3jrf+LAke9rt6+59Wt+6anqlq9jSzDksb4q812ra8vcuXMnu3fvZjqd9gG3pmm2NMjNB+3mg3XdZb65rrs+mUz659d1zcbGRr/fijFueb/uPbtQHdDPQxfCmw/XzQf0xuNxH6wDuO2227jllls4ePAgcGa/2+07oWus6/av59oqbGsw53COcwCZOyJ1fzUrIm2rW7vzFVAh5cwzLnsGP/ma23nooYe5995PccH5h5AkTDcjBZDFkRWSE3IhNE0m+im59HiJeImEoOSoaFC08WRxOBU0ts2riYT30EhCtG1OnQ/qt+cWDl87nHc4B8EXtIFTIQTPoBoQ60STKrKm/hwkhLAlUNttj7t27eLw4cMcO3aMP/qjP+IVr3gFe/bs6c/DLERnjDHGGGOMMcYYY4wxxhhjjDHmW8XCdcYYY4wxxhhjvi7zQTrnXB9Ac86xtrbGu9/9bh5++GGe9rSnsXv3bnLOfUNdWZZ968/2hrru/m7QdjeIurvtcMw6UehHp8+aznQ2X6KzBrbZX1VBszA6dZhKG5ZCTQ4TNvN5rE1OsFofZb0+TdIpzVdPoxsTfAQhoDngGNLUDb5JxElDQYWPSq4deSVzYHSIf/2aN/C617yeg/sPtYEn78maSd28b1+A2+8QwXf/eT5rrvF+9jnnCte2Dyyfvz7fQjcflNv+vHO9dj6k91jP/4b09XBf74vOvnrOZz7hbG6blp7rBduTj9DXts1K7FwQAhWKI1QjrnrmD3HF0z7Bxz7xEXJRId5TS2agDhVB8W3gLguaQRGUTBIF55GspNrjk8eXDp8ECsUnwZFxPtJIQ+EhugmaI0mnlH6I4MkqICUZT1RPlpLMhEyDq0pKl5lurKOacQiRDHiGOGQlsUt3MjxRsP6Z0+RPTdg32c8GmS99+C7ePv4P/G+/8p9Z2r0XPEwj+GE16/KblTD24bpZkFUcKmeykPYPTd97iqLgoosuYu/evaysrDCdThkMBn0obj5Y1zW/deGa7r75/c/2fVAXpoN2nzrfwNmF7Jqm2RLe65ry6rruQ3p1XRNj7BvrYoxsbGywurrKdDrlxIkThBB4+ctfzi233MK+ffvOmpf5/bBz/qz9kIjvduMWBPoe9VjHXD0rdHkmkDz/iJ81H4oTwM/abB1JMyLabztXPfe5XPeSa/jS57/AiaOn2LFjB0tLS4wnkZTHFLsGrI1PIwWUZclgPEByQ9JNGhLOV2QNNLGgdIEiC8EJKU0pXCYQaFKm9CUpO1xsg68qmdREIkJ0nsZFHA1eCvygO6bOAuEBqlEgatm216XUB+Xm2+tCCCwuLrK+vs7evXsZj8d86lOfYt++fdxwww2ICDFGiqKHNM4bAAAgAElEQVToX9eFc+eb7YwxxhhjjDHGGGOMMcYYY4wxxphvlI15MsYYY4wxxhjzuLqB4t2A6O6+LljXBR2OHj3Ku971Lj75yU9y5MgRhsMhS0tLOOf6UF0Xsuv+dqG6+Ra77m93OVfYop2H2TzBOUNc3eBtVYWcQZU4TdSThuQcngFDtwt8wdp0jXpNmJ4G7wuCL6nrRGwiuclIVgRPqpVUZ1aPbTAqd/H61/1rXv+617N/z3mgwrSOFGEupCbQD6R/jJyFbAl48ZipsccLvz1eWO6xnvd4r33KfF2T2x6oeYrf/DGnd2b97qiCZvAeUs6knAjBkxWeefkzef3tr+f4yqN89sFPs6taZFB5JpOGQVXgC0+qU5s7C45UAy6BE8QDAXLtkDKT4ywMmTM5O4gJ0bZtC4SC0AZINRG1mQUb2pip4hA8QsbjEUmoCuI9VANyblBVSu/R6ChywchXDCcFJ794jPHDa4QGiLltOprWPHDvZ3nowc/zjNEIPxgyqCqiKqmJlGXRfibpknRz4U1p2xqfYEGb70Kqiveeiy66iJ07d/Loo4/2+90u8NYF7Jqm2dJOOh+mnp9ed+la7Lrw9nzgunu838fPvT6l1Ifn6rru56NrrptMJkwmE5qmYXNzk83NTY4ePUpRFNx000382I/9GPv37z/nZ+083nFp/q/53vJ4x9Ctj2073p3z7llI/hzHdO89CwsLvPKVr+Tee+/lrrvu6hsYB4MB4/G4D6yNx2Occ32wNcbYn2t122DXSAdnftCgW99jjP17QvvDCt222W3XIrLlHK+b366ZuKqqfj/QbbPddDpVVdE0DZPJhL1797K6uspnPvMZnvWsZ7Fv374+WNfNS/d5jDHGGGOMMcYYY4wxxhhjjDHGmKeC/R9oY4wxxhhjjDFPSkoJ7/1ZzXUpJU6ePMkdd9zBnXfeyc6dO1laWmLv3r00TcPy8jIiwnA4pCiK/jIfqJsP1XV/tzcZPZng13wwY/4imvEKTaPkJIivCAhFKiCNqKclZb2XMioSQZyikzFEhahMm0yq8yxcB8s7d/Pj/+pWbrv1NezbexBP27qXgawZcHiRM21pFrT4F2l7u18fIJ3lGXJSfHA4J+QcQZXgAs999tW8+rbX8od/mvnSVz9Pw4QFXyJBAQXnKHEkD8kDDkSU5HMbh5utD46MIDggkxFxqELTRLpWvRBAnZDV4Qk4PEqb0nMS2jY7IKsiZJJkKJRB9tSxAXEM/JAylhSrjvEXVqi/uMZgVajckOgdQ++ZLu5gfdJwx399J2/8N7/A0y5/RtvM5TxlKFCFlJXgZdYbOV+rCE6+gaJC8x1pPngDbXPd5ZdfzqWXXso999zDdDplc3OzD1Z3+/v5ptJztW3C1n1413Cacz5ns10XtOkCfPNBvu7Shei6cN36+nrfXnf8+HHW1tYYj8ccOXKEm266iRe+8IUsLy/3oZ8uUGTMt8P8tuaco2maLedel112GT/7sz/L8ePHue+++/rtYzgc9ut5CKEPts7/YEHX+NZtZ939XXAO6Le/LnzXBVu7EGvTNP00p9NpP50u9NZdr6qqb5zrwnVdwK4zmUwYDAZ9mHb//v2cOnWK97///dx4442cd955/fLoGpGNMcYYY4wxxhhjjDHGGGOMMcaYp4r9X2hjjDHGGGOMMY9pPkDRBeu60EM3+PorX/kKd955J+973/vw3rNv3z4WFxcBWFhYwHu/JVQ3H7SYD9Z105wf/H2u8MX2kF03P/OhjLMGb6eIZpAkhFQQk0cb0KgIBZMTa1T1TnaKI+YpsZ6QGyXlSEwJUltlVtcTpuuRZzzrcn70FTdz0flPQ7Jrw0bO43038NtiRt/RhDaolhPktj1OFYpQkjSxvLSLH3nZTaRc81/v+C2+uvIQ5SjgS08jivMJj+CcEn1GnCOJIqIIgTy7rk7I0oYLHMzeR0lJQSLqACd436BOQB2ob0N5UuAIbSAPJZLbuj1tpyYSqUJJUXuG0wF6PLP6mROsfvo4Sysl5RhC44jqoW44OFjiVNrgno/+Hf9lfZN/97//H5x3+WXEeko5GtEkpfBCVkHQM6WMOrs+i9tZkPR708LCAs9//vO58847mUwmLC4u0jQNTdNQ1/VZ+/zu+NGZD8yFEPoA0XxLVve8+SBeF9bpwnXde86/dxcyapqGjY0NNjc3GY/HnDx5krIsuemmm7j++us5fPgwZVme1ZS3fR6N+XboWiK79bBrcnvJS17C/fffz8MPP8z6+jplWZJSYmNjg5wzRVFsWae3N9TNn8/Nb3PzQbvu+vxzu3Ov+enNn8OFEPrHu3ntttPu/Ky73QXluu1PRNi7dy8xRh544AGGwyE/+qM/ysLCQh/wm29Otm3TGGOMMcYYY4wxxhhjjDHGGGPMN8vCdcYYY4wxxhhjzqkL1s0H6ubb62KMPPLII/zu7/4uf/u3f8twOOTAgQMsLCwwGo36xqLBYLClrWj7xTm3JXRxrlDd9iDG/HzNX58PW3QDxFUVYiTFTM7ahuGikmvBpYBmYXy8Jp8WfK7weFwWNEHWiKSaZhqZboypJ5nLL/l+3vTGN/H9l16Bp8CHgOZZi1I3r6J9r5eN+f4OpIqSCUWYtWY5EEdOs8428exZ3seLrn4xd330Lo5+4muMT00RFJcqYoAiKMkrzinet8GziOIdZGkb7pwobVStzc3lpAhKyoJGRaXBieIkIw5QQbMDCYh6vHMIASgRMkLG48E7hIhvIgvTkvzVKcf+4WuM711l96mKpXoBmQVAGwXvYAqIFKyVyr1//3He///+Ea//hf+JcnkXkqFwQpxV7jkRVARQ6Nr/wFb272GDwYDnPve5XHPNNfz5n/85IQT27NnDZDI5a38/H6gGtjRidceX7cGZ7QHr7UHqLrgTY6Sua6bTKXVds7m5CcB4PGZjY4OmaTh58iSrq6tccMEF3HDDDVx77bUsLy/379e9x/xfY77dtrc6dhfvPTfddBMPPvggv//7v8/6+jrOuT7QtrGxcVbYbb6t7lw/cNCZPy8DtpyTzbfdOeeIMW4J085Pq5ufqqpIKfXnaPMtlqPRqG/ag7aRcseOHcQYuffee7nkkkt4znOe089Ldz46H7bdzrZfY4wxxhhjjDHGGGOMMcYYY4wxT5aF64wxxhhjjDHGPGki0ocejh49yjvf+U7+5m/+hhACBw4cYPfu3f1g6dFo1A9+LsuSsiz79qLtQYvtA7W3t9h17w1bB5hvD9fNh+rmw3WiShMTKKSs1JMxouAVptMJaTxB64imhGpCsyAxIFnQaSKOI3EMV1z+A/zMG97Iy667kUFRITi0LR7DO4cqszBWFwRpG89sgPe/TI/VTKXoLCeWmVXB9YVsThyIJwMXnncRr7751YzHp7n3gXto1hKVh1hlmjBbDwAfZlMVJRcQyQSEJLPgnssQHbg2rFYnCApOMpk26OeLtt1OFEQ8s7ULh0fUIVriFHLKSAPDqTDYiGzef5zjH/8K8Qtj9q6OWIqLMBZIgohDtAEcPme88+wdBOJkwnv+23/jwIGDvOL1P4WoQBlQzeCELG0gUADXL8Lc3fOt+rrMt8H2sFmnC7h1z3HOcfDgQW688UY+9alPsbq6ymQy2bK/nw/3dEG2+Wl0DVbdX+/9lv3pYx0Dun19F65rmqZvxOoCdnVds76+zsrKCqdOneLIkSPceuutXHXVVSwuLrbh6G3OdezZ/pgxT5Un2ta6beBc6+GhQ4d4wxvewPHjx/ngBz8I0IdbRYTpdHpWW3CMsb/uvQfob3fvMR+Q635gAei35fltr2maPrTXnd/N/zhCdy44f57WnaPVdd3vI6A9jyrLkh07djCdThmPx9x1113s27ePCy64oA8Ldj/0UBTFt+Q7McYYY4wxxhhjjDHGGGOMMcYY873DwnXGGGOMMcYYY4CzB3bPD+LeHm44efIkv/7rv87dd9/NYDDgggsuYDgcoqqEEPq2uqIoGA6HfUPJfNBie4tRN6D78VqKHmuetzfWbb8tGWJuwz8xTpjUYwrvUDIbaydZPXWMHGsK55jWmZQUyZ7YJNZWp0zrzBWXPZufe/PPc91117MwWEBUQV1f1iXIrLGu/auaZp/BwkbfCc5a3+la6gRU8c6RM32YUsQxqha59kXX47zw67/xK3z+y5+jCkNykXG+DSEkBSmEgOJQQpHwOgsYedeGFSJkSQTngEzTOJynbcvTPJsvhwvtXEVASLg8IFMSssdnj08DQvRU00B8ZJWjn/wKk88eZfhoZvf6iGpSERqHDyW1ZlJWKhcgNRQ+4CQx1MzuwYDjG2P+8F2/Q7m0zEtvuxWXMs47skDWtnmv31aBNoR49jZqvvt1++qFhQWuvvpqXv7yl/Oe97yH06dP96Hp+QAPnNlnzwfkuvB1F7CbD+jMh3S2h/LmW+uapulb6+q6Zm1tjZQSJ0+e5OjRo4zHY6644gpuu+02rrzySgaDQf8Ztu8DzvU5z3UcMuafw/aQHdDf9t5z6aWX8qpXvYp7772XEydOsLKywtLSEjFGxuMxRVE85g8adLptbj5sN98q2b1nNz/dOVbTNP1989OY/4EE5xxlWfaBuC5c1+0HAIqi2HLOl1Ji586d5Jw5fvw4f/EXf8Ett9zCgQMH+vPK+cbJ7cHDbvkYY4wxxhhjjDHGGGOMMcYYY4wxT8TCdcYYY4wxxhhjttjeFDQfgOhaRR544AHuueceQgicf/75LCwsADAYDNixYwfQDmweDod9qG77wO7uOdvb6eZvd8GJ7eaDGfO354N186ELTY6EEmNDbBqiTtEIMdWMp+tMppvU9biNP2VFM2yOI5vjCdPNxNXPez5v+Z9/kauuupKqGoC2z2kDUILMxnOLtAGjtvlM5+6zwd3fKfqB+CqoZtq4pCACzgk5AxlEApozo3KRFz/vJXzu+v+P4+8+yvrxCcPSEypQMsNQECeZlCPDsqKZJjICTpBGUJcR73CZNtTpBI2QMySgCEIWpUmR7BUJmSgJtKGUjCTB54JFWcRnRzl2yFdrHv6HE+gDU/acXGRxUyhqQRJklEzCd0E4cRAKpkRC6Rh6wQ1H1HVk7cRx3vGrv0IUePlPvAaXFeeFaUqE0LbnJRSPkLISnH+MpWq+28w3xznnaJqGoig4cOAAt99+O9PplD/5kz/hxIkTFEXBdDrdsp+f3693zVdFUVAURR+66Y4TXUvWfLjOOdfv87t2LoDxeMx0OmU6nTKZTBiPx5w6dYpHHnmE0WjErbfeys0338zevXv7tqvuONLNk4VxzL9Uj9Vq14XfXvrSl/KFL3yBt73tbWxsbLC4uNgH38bjcb/tdNsStIG6uq63BFmhDcN12ybQb+Pz79ltg91zp9MpzjlCCDRNg3OOqqq2TLdrr0sp0TTNloBd12RXFEV/ezQaISI0TcM999zDhRdeyCte8Yot7Xrb90fGGGOMMcYYY4wxxhhjjDHGGGPM18vCdcYYY4wxxhhjgDOBh/lgG5wZuNw9/rGPfYxf/uVfZjAYsLy8TFmWeO9ZWlrqB10XRfH/s3evUXJV993nv3vvc05dulvdLSGuBkwjMDYGEwky8MSDMZaY5wm+YD9STIgvmBi1L3EcJ17I8TxrZbJWVrykvJu1HnskJpcn9so8Rnpix8mEydC5eDnJYAzCToyxjdXGXCV06VJfqupc9t7zonofTlW3QMhI6PL/ZJW76nT1qVPV55zeQft3fiRJQhRFaK3LYF0I2lVDdtXJ4tVQ38s1BA0G8AYnaIdbURQUtre+wlqsd1gHuc3pdrscPjyHVZ5umpHUG2TWMjffBjStQ3NMTFzKb/7Gp1m3di21JMYWHt0rMwO/2ByjFS+2dvnF1jMkU3eKeTFYB171QnVA+RVU73evQOHRyqCVYkVjnHf9x9t48smfMfUPD7DQ6uIVjJ89Qt4uyF1BfTQma+d4rwGN1g6lPEobrO6t22NRKiapxygPPrdk1uGtw2LRSqO0A2PRCiKXk2jNUJGQzGviNCE5CN0fHWb4+YSkvYqh3FG3FnRBYTIyZcltQaQ0WhmUB6d0b1siReQc3sPZK0aoFY5/++mT/Pu3H+SWX/5PqEYNb+rUIoMF8qIXnvBKEWmDU9LTeLo5mqBZCMYFZ599NmvXruUv//IvSdOU+fl5ut0uK1asIM9zvPd9AZtardZ3vq7+jQhhu2rwLfw9CkEcrTVZltHtdrHW0m63y9ftdDr8+Mc/5qqrruLjH/84ExMTDA8PA5ShoFfy3iV4J46Xl9q3qt+rNscNNrU1m002btzI9PQ0X//615mdnWV0dLQMugFlY124YEIYw4Xjr9oqXBRFOU4LzwnH3nJNj+GCBlmWlctCi3H1eXEcU6vVyga7algvcM6VIbtut8vQ0BDnnnsuDz/8MJdddhkTExN0u13q9XrfuHFwDCvHrBBCCCGEEEIIIYQQQgghhBBCiKMh4TohhBBCCCGEEKUQNlhuMrK1loceeojt27ezsLDA2NgYq1evRilFvV6n2WxirS1b6uI4LidxV0N1xphy8nY1TFdtNoGlE8eDalvdYHtKNVxXXdbN7eJ7cLjCkluHt4o088wv5LTbBVE8hEfT7nSIooQ900/ypje9if/t93+fG67/xcXWMk8UvRi0KhN2hHBdr7XuxY0Fmdd9ClKgvKbaOdjb7TzhN+5d77vaaByGSy96A7+26UO051P+5fF/YmEuI65l1Ec0jXqdopMT1xJ87inwaN0LASjtQPcCe1p7tHVkswu9tp8kRhmNVRaHJ1KmF6rDEKGpuYikC7W2ot6ChWdaLPyszYoXFGe3x6jjMaQo3aUwHQpjUTgiPMZ6rAKNwimFUganPUPOkFnAWUw35Q0XXsh3//Vf+fpXvsxtk3ejigyiCKU82oBRpnfMIcG6M1E4v4dQTZIkDA0NcdNNN/HZz36WL37xixw+fJixsTGyLAOg1WoxNjaGMYZut1uG85IkKf92hLa6wVBQtbEuTVOMMRRFQZqmZeAnTdOysW5mZoabb76ZT3ziE4yPj9NoNJaEb4Q4lRwpLBaCphdeeCEf+tCHeOihh3juuefKix+EYynLsvJYyrKsPNbCrRquCwE74Ihjw+o2KaXK4zFcrCFcXCE0H4dl9Xp92dbhcD+KonIsV6vVyga8J598kq985St85jOfYXR0FKA89iVYJ4QQQgghhBBCCCGEEEIIIYQQ4lhJuE4IIYQQQgghzmCD4YIjTZ723vPkk09y//33s2/fPlavXs2qVavI85yVK1eWjSYhZBcmeYdAnVKqb7J2NVgXghPh63INJNVtHQzUVUN21eVla11R4J3HW0dW5BRpTpa5xeCGo5taikKRZo407WCtJysyRkaGee97b+Nt//MvgYeicESRxlmHcxYTJqQvBuqUAu9DyE5Bpe1MnGJ85asKDz14j/eLoc8yOKlxFgprWXfNL1J80NH60xm+96PdzB3s4l1MXIvAeorY4qyj1ohwMfjC4zS4yOHxRGi88sRJhHEaaz3We3BgAKc9cWGIlGdFMkyzXWN41hAfLJifnqV4PmWk02SsM0RDGaLIkZsFMgM2smibob0Db0GDcg6URit6LXyAKSwNrSms46yREQ52Uxbm5vnzL32ROI55550fQgEmNhhlyIqcKIrxi2HTvnDpMZAwxKknNFnFcVw2z42Pj/POd76TTqfDvffey759+xgdHWV8fBytNYcPHy5bpwab60L4p3oriqL8exH+NoTQT57nZFmGtZY8zzl8+DAvvPACSimuv/56fvd3f7cMDIUQTlEU1Gq1I74fIU411XHQlVdeycc+9jH+4A/+gNnZWeI4ptFolMdIFEV9IbrqOgbHaeFrtcUuXIihOoYMr10NuoVjszreq7bXee/J8xxrexdACM15YSwXRRHee1asWMELL7zA0NAQF1xwAc888wzf+MY3uOOOO8pxYLh4w+C4dnAsKYQQQgghhBBCCCGEEEIIIYQQQixHwnVCCCGEEEIIcYZarrUnTIC21vaFGEJr3YMPPsjIyAgjIyNlKMJ7T6PRwDlXtg+FxpIkSfrCc9VJ3NWJ1tXGkerXMFk7GAzTDbbVhZaToij6wnU48M7i8oI8z8nzHO+h3eky327jPGRFjlJw+PBh2p15PvCBD/CBO34V7zw60hhtQPXCVToyKA3e9yaEq74wnQnvcPGDVpKvOxX5sK8udtWpxf1w8ZjQWqG0xnuH0Qala3g81669nmsevJbvPvo9UBo1krDQ6lJboWirjGFTw2qPMx6vwKOw2qGtxwFWe8CC8xgXoWNNpAxRoYk7isRpVkUrWDET05g1FD+b5cBP9pLMGM4yKxnXIzR8jQiDMgXUekFTrSwxFo/HuQyvHCiPwhMBsdJ4p4gN5IVlNKnR6mYMRRFjSULrwH6+9hdf4ca338joxReinMHXEpR3aFTvU6pW/YnT2mBYJbSUhjYspRSrV6/mgx/8IOeddx5/8id/wp49eyiKgqGhIYaGhnDOkec5aZpSr9dJkqRsOQ23sO4QngHKIE6e5yil6Ha7OOcAeP755zl06BDGGG688UY++clPltsV1uO9J0kS8jwnjuNlgzcSxhGnmupYqtlsctttt/Fv//ZvfOMb3ygDdWG/DmO00FQXxzF5ngMvHsuDF0AIF1EI7ZGDrcFhrFj9uTzP6Xa7eO/L16l+vxr6C9sVjuWwfoCFhQXOOecc9u7dy9jYGAcPHuQnP/kJjz76KGvXrgVYEhIUQgghhBBCCCGEEEIIIYQQQgghXgkJ1wkhhBBCCCGEACgnTQ/y3vPTn/6U73znO6RpykUXXUSz2Swb6prNJsYYarVa2WiilCKO4yWtdYMNdssF68Kk6MFww3LNdYOTuwfDdeUts+RFQZHmuKLA5gWFK+h02nQ7C8zNzYKHdnselOWOO27n1z/yYc5aNb7YVhZayhTG9L76xSSR0r1gnUctttdRNp5JPONUpcrfn1cKhcPjest0CFNSabAzGKUonCUxdf6Xm3+ZJ5/8Gd9+9J9ZONShqSJsDEk9xqa9/Vgbh9IasC/uQxowHqcckYnQSoF1eK8wNmYoqrHC1RmZSeg+OcOBH84Q7YPxbJQxRlkRG+p1jTERWgGRJmomxDRw2N6+bME5TeEznM/R3mG8JnEa7RWF77UFzXXa1LXBoVCNOsXKlbReOMD/vnUbv/H5LYxfcgnkBXEU9z4Lh+zwp7EjnZfD98K52zlHkiTl84eHh1m/fj0XXnghf/d3f8e3vvUt9u7dS5qmZFlWhrSLoiBJkjJUF0J20B+uCwEeoAwDzc7O0u12mZ+fp9PpsG7dOm666Sauv/56zjrrrL7gT1gf0Bc2EuJUNNjuG45BrTXDw8N84hOfYM+ePTz00EOcc845ZVtdlmV0u92+cF0Yl4X2uNBUt1xzXbVhePD1q9s22FRXfayUIoqi8vgHXmwbrjTXATSbzbJtsigKzj//fJ566ikefPBB1qxZw8jISHmcV19fjm8hhBBCCCGEEEIIIYQQQgghhBBHS8J1QgghhBBCCCGAF1s/qhOUlVK0222++c1v8vjjj3PRRRcxOjpKHMdlu0mSJGVjXZgsHSZshxBDNVAXlr/cxOfBMF3YtsFQXQjU9YXpFlvrrLW9lrrMUuQ5eZqS24I8S0mzjG5njm53HnzGwsICWZ5z662/zCc+PsnrL7oYZy06igibGeaN+8X/U0qBr7yPEKwL92Ve96nL90oHF+/2wpN4lKIXtvO9QJxSutdA5xVa9fb3q9/4C3z8o7+B/2PHP/zL/RAn6CSGBQvaEHuN0h6URSmDNhqje2V5LvcUWLz3FE4TmYgkjql5Q71riOYsL/zwGeZ/cIB4n+c8zmJURYyaiKG6RjtL1rAkkUZFAIbIxbiijrIebaHwgLc4X6CsJ3IKfG+7OqogzQuG6nWM9VjnyJ3lrNER5g8e4J//6R8ZP3c17/vIRzjvoovxyuCdQxuNdAWdWUK4pnoej6KobBINhoaGWLduHRdddBFr1qzhb//2b3nsscc4dOgQjUaDJEmo1Wrlrfr3Jfy9qDZihXN7t9slyzKKomBhYYGVK1fynve8h1tuuYU1a9b0/b0IzVlFUSwJ4QQvFSAU4mQXjketNdZajDGsWbOGzZs3Mz09zeHDh/vGX0VRlM2RURQtaRle7uIHL3c/PK7eD7c0TctwX9gG6J0z6vU63nvyPC+P0erYLwRpm81mef/cc89l//79PPjgg9xyyy1LLs7wUhdrEEIIIYQQQgghhBBCCCGEEEIIIQZJuE4IIYQQQgghBEDZOldtIfLeMzMzw549e8iyrGwUajabxHFcBiGqTUNxHJehiOoE7TCZerlJ2+H1lxO2oxqoC/dDyKIargvNJ2HieJ7neOfIbU5WZHTTlLzIaLfbtNtt5ufnmZufZWR4hPe97z9z1113cfHFr8c7j45MZft6t17IqtJcNpiiU0sXiVNQ369ULS448v6qlMY5C3icd1z1xqv44O0fYv/B5/nBnu+SxBqspxElZDYHE+FrGldYsswyFCfo1BMbg4sgLiIiq1kZr2BVMYzb32XuJ/uYe66D2WcZn6+xIm8yzhA1pUEXuDwDF+O0wasEIgWxRhFjnMV7i3c5+BrOO6xTOAoUCu0czjtQGq00mYOaMRTeYZXB2YJzR8cwaZf7/8fXyTo5n7rnc0SrV+OtpVAetMYsHiHVz8lDrzUPD+rF/OmLR1JloTilDAZYwt8PYwzOOaAX1vHec9ZZZ3HrrbdyxRVX8O1vf5vvfe97PPPMM+zbt4/5+XlqtVoZgkuShCRJgF74ptvtorUmiiKKoqDb7eKcY8WKFVxzzTVcfvnlXH755VxzzTUMDw+X2xO+Vv+2hRBRtWVLiFPFcoGxamtweByOx5tvvpmPfexjfOlLX6LVapXtb7VarQypJknSF45lhzAAACAASURBVK4LP19tmhsM3YX71TFZCMGG54dlYTyWZVlfi3HY1jiOsdaW21QN14XWydC4lyQJ1lpGRkY4cOAATz75JAsLCwwPD5fnmsEWPSGEEEIIIYQQQgghhBBCCCGEEOLlSLhOCCGEEEIIIc5QYQJ0mIAcJkWHic9h+VNPPcXMzAyjo6PU6/Uy4BDHcRmsC4+rAboQrjtSmG5wO5ZTnSS9XLhusLkuhOqqk7mLoqDT6eC9p5126HQ6AHS6XWZn55iZaZGmKXd95KPcddddnHfeeRRF0ds2wiT1yvYu2fb+b6rBJ4lTj+r7Qi8GZpY8zTMQKkLhnKdmYpSGa3/hOt73zo08v/0pDu8/wDhNisTCsGdBp4vh1AhTeEymSHD4yOCtpVZrMOrrjM01qLeg9XiL4seHGV5IWOVW0MxiEhuRGEMca1TsKej29slI4YxC6xhvFCoxGBfhC4MrYvCeCCicwvkM7S0oi1MWnAal8crjvKemFYX3WK/wWrGAJnWKf73/Ad614VYue9uN6EiDBqsqn8pirqGXr/Kgq59ZCD1o6IviiZPVS52nB0M+1YBdOFdDL2wzMjLC1VdfzcTEBO94xzvYu3cv3/3ud3nsscc4cOAAe/fuZW5ujm63WzbNxXFctlqtWrWK888/n1WrVvGmN72Jyy67jIsvvpjzzz+/DOZU2/QG2/XC36jBxr2Xe49CnKwG9+cQUA3HXZIkbNy4kR/96Efs3LmTdrtNvV4nTVPa7TZjY2PluKg6dgstd2EcVxRF35iuGo4Lx3v1cbgAQlgWgnXV1wjfC4HawXFd9VyilKLRaJDnOXEcU6/XaTabzM/P88Mf/pC1a9ceMTwrx7YQQgghhBBCCCGEEOJUMz4+TqvV6lsmFxUTQgghhDi+JFwnhBBCCCGEEALonxAdJmdba/nud7/LE088wTnnnEO9Xi+DdEmSlI111fuDE7MHwwxHM8k5/ONANVQ3GK4LTXXLtdZV7+d5TpqmKKX6Go8WFhbYt28f3ns+9alPsXnzZkZHR+l2u9RqtfIzEeLlDE7i1653HEVOc+s7bmX28AG+8tU/ZWF2Fp1As9HApxlFG8BBTaPQJElCdrhgNB5hNBvCH2jz05/8DP1CyvB8xPBCRNKB2ChiZ4gxKOtxPse7xca4IiLPuqhIEWuPIcYYDXGCaXi0hYJem1xsHd45CudAg1YKnEI5jcIRebAo6lrhvUEpzcpGA+81M3NzfPUrX+aO4SEm1r0FrZrkvnc8Ou8xOkIr3StyVKpsrlOL6dNwZCkJ152Wquf70CZVDf80m00uvvhiXv/61/PmN7+ZmZkZ9u3bx+zsbHnOfvrpp3nqqadoNBpcc801NBoNhoaGWLlyJfV6nfPPP59ms1mGiJRSRFHvP3WGvxPVcHd47bBciFNRdVxSvfhAOM6qvPdEUcTq1auZnJzk3//933n88cc5//zzARgZGaHdbpetd2HsVm0fDsuKoii/hvFU2J7BY32wxa564YZwgYbBduMkScoQbZ7nS47rPM+p1+tlUC+OY8bGxjh06BDPPPMM1113XV/bXXhPMo4TQgghhBBCCCGEEEIIcaaZnp5mw4YNS5Zv2bKFzZs3vwZb9NqQz+HkIL+H09O2bdtYu3Yt69evP+6vtWvXLrZv38709DTT09MAjI2NMTExwbXXXsvk5CRr16497tshzgwSrhNCCCGEEEIIAVCGDULbkFKKZ599lscffxxrLbVajSRJ+sJzobWu2lhXvVUnXR/ptpyXa6urNtVVg3WDobo8z8myrJyo3el06HZ77V779u1jfn6eX/3VX2Xz5s2sXr26nMxtrQUogxpCHI0ywJN5dBTRiIcwo5r/fNsmulmHP/nz/4PDB9rE9TrKGrxRxCrB5B4KQ9KoMdRosHpmiANPP8vs0weozTnGsxojWcSobTCi6kQpeGfJvUdrD7EH53A5+AxsClZrtF5sFNIJOopQCfgmgMI6R1RYvC2gsBTaopwC0wvWGRTeQ80tHqcelIfCQ24Uutnk3x56iE6R8cn/8nnOe/MbSKIIZQzag1Ia73zv50KTkAPlfd9n1fvGCf5FieNusBk1hG6steXfj3C+HRkZYWhoiAsvvBCgbMjKsoy5uTmstaxevboMfIefrzZhhdeqtuRprcuATfh+NbgtoRtxOhkMjlYvlqC15vLLL+eee+7h93//93nmmWc466yzGBoawntPURRkWVaO58LPV2/VsOpgg111vBfuh3BduB+Oa2MMcRyjtS4bjwOtdV8DZTieqy2YIWznnKPRaGCt5ZlnnmHfvn2cc8455Rix+j6EEEIIIYQQQgghhBBCiDNJq9UqAyhVe/bseQ225rUjn8PJQX4Pp5dWq8WmTZuYmprinnvuOa7hum3btvGFL3xhSZNr2I7du3eze/duduzYwdq1a7n33nslZCd+bnKZZiGEEEIIIYQQAGXwodo68sILLzA3N0e9Xu9rMAHKppE4jvsmVVfb66qTmpebhD34+oO3MDF8uWDdkVrrqqG6NE1J05Rut4u1lna7Tbfb5dChQ+zZs4exsTEmJycZHR3tm5QegoPwYtBOiCOptvMopdBJglKaovBolXDuqgv5pevfxkhjFfms4/DeNknWJO40cAchbiWstithr2fm+wd46h/2MP/oYYaejVg5M8zK2SHGOyMMdWow60hcDe0jPB5HQeFy8iIlz9oUaYciTSk6HYpOF9vNcLnFOwUmwtTqmHqdqFYnSRLqSa1snlTGgAFlFEYrEg11rah7RcN5Gs4z5GEsSlhZazAaJez+53/hm//v/wNZCjbHO4dW1c9FoTzge814vSWA96jFwJ44vQw2a4VzdWjDAspl4bxbbZJLkoQkSWg2m5x11llccMEF5XNqtVpvX138+1NtuAL6/kZVg3XVbZOwjThVVQOiwXIhuCAcK+F4uemmm7jtttvK4NuhQ4f6xk5h3JRlWTm2GryQQXX8tdy4LM/zvhbhwTFalmV0Oh06nQ5ZlvUFXo0xZUNlrVYjjmOiKCJJEmq1WvleQrtwCOrNzMzw3HPPlcd8CM+G848QQgghhBBCCCGEEEIIIYQQ4uczNTXFJZdcwtTU1HF9nenpadatW8eWLVuWDdYtZ/fu3axbt44dO3Yc120Tpz+5BL8QQgghhBBCCIC+4EMIwNVqNVasWMH+/fuXndAdgnTV+9VgXTVIF563nMFGoSMF66qPl5u0HSZ1VyeJ53mOUornn3+eJEmw1vLYY4/xlre8hS1btjAxMdG3HUVRlKGNwVYVIaoGw6PlMaIUeW4xSQLKkbqcq960lg/f8RH+21f+hHR+gdnn24yfNUJzqEm96zl86BCHn9uLso7zD43QNAnjqs6IM9RzTeQNsYpReIrME8cGbTTWW9IixylQcYRxES7LsEoRGY3TGhfFaGNQkQENyiVERY6yDuUXG7+8xWUeDXgc2gFOoZRGKQcKvHeoKIKiQBnFrLesHhnir/77V7n4jWu44eaboT6Mt47CWqI4Rmlwzi+eBzx4hccvrm8xdbf4mUnk6fRRbboKrXUh8FI9bqpNc4OhvGpgKISEwrqtteXfmurzq6+/XLBOiNNB9fio7vvVlsbBxkbnHM1mkzvvvJNHHnmEv/mbv+GKK67AOVeG3sIxFVrlQpNdCK1Wx1zVQOxgwDyE98K4LTweHBsaY0iSpFxX+Fqr1crxnPe+vNhBeF/V80G9Xi+3wzlXbnNouZTjXgghhBBCCCGEEEIIIYQQQohjt2vXLrZv337cQ3XQa6Rbt27dUYfqBk1OTgKwefPmV3OzxBlEwnVCCCGEEEIIIQAoiqIvBOeco9VqMTc3h9a6nNwM9DUNKaXKEFqY1Dz4vMHQAyxtYBkM1w0G66pNddUwnXOubKsLobrlGliiKOLAgQM8+eSTvOENb+DjH/84b3/727HWkqZpOUE7SRKAvua66nsXorrfDjYFKaXwgKlF5M71QmO6Rr1m+MiHJtFe8X/+8Xbmn5/n7No4nf0LzC3MUcssSeEYimoMZXUSE6G8xjuFdhFKGXIcHkhqmrzI8daSRJpGbPAKUhw6z9Da4JXCKYNXBmtSvDZoZVBoVBQT1Rpo61HWgi3IXYzGoq3H49EelPIoPCyGoxwKpxwRjsg6zhtfQZx2+e6ePfzZf/2vNIcavPF/eitJvYnG44oCZSKcs5jY9GJ0fvFc4B0Qgna9YJ1XSMDuNBL+jjjnyr8L4Zxe/ftR/Tp4LEVRRFEUZZimKIoyxF19/pECNIPrlaCNOJVV/94MBuwGnxcMBuHGx8f5nd/5HZ599lmeeuqpsgUOKMdwxhjSNO37ucH1Vl+3GpoL7XFhvBbWEVrtgPI1wlguhPeqodx6vd7Xhhe2xxhDlmV9F25ot9scPHhQjnMhhBBCCCGEEEIIIYQQQgghjlGr1eLQoUO0Wi0efvhhHnnkEe67775jDrodiyMF6zZu3Mjk5CTXXnstY2NjTE9PMzU1xdatW5menu577uTkJCtXrmTjxo0narPFaURmBwohhBBCCCGEAHqTqkNwLTSVzM/PMzs729dqV53EHVpJwoTnapCuOsl5sJGoqhqiCxOrB9vrjhSuq95fblkI2s3NzTEzM0O73eayyy7jox/9KO973/uA3sTzZrPZ164SwiDVxhQhjpYDrFcorfEKnIeIhEhbPvKBj/KTHzzBX3/9azz9+DMkeMbiGrqAGjGJidAoIgzKKwoLqfZoLFYbIqNIsRijMVrjNKTWUShPYgwxQF7gyXDKYLUBHaFNhNYKE8dEkcHUE5yz+CLHuoLIJ1hliVIL1mEB5SFEK5xRxEDmHZHy1GNDhmdFnPDmS17PMz/9KV/auo0PflZzw3/4JUytAUrjvMP5XljPOYfRCnqRuh5VdtdJsO40FP4mhCBQNZhdDQkBZegunIOD6jk4hO2Wa0INfzfCubtKwjbiTDDY4Aj9rcThQgI33HADk5OTfO5zn2N+fp5arUaz2SwvWjA4ngvrqYbownPCuKx6fFfb6wbHf9VQYFhHrVYrj/MwFqzX6zjnSNO07xxSba4M78taS6vV6jt3DAZ4hRBCCCGEEEIIIYQQQgghhBDLOxn+TW1ycnJJUG5sbIy///u/Z+3atX3LJyYm2Lx5M5s3b2bLli1s27at7/t3330369evZ2xs7Lhvtzi9yAxBIYQQQgghhBClMFE5z3O01mWgLUyIDo+LosB7XzYKwYshumoTUTVot1y7SjVAF9YPlJO1q8111ZBd9RYCdKGBLoTq0jSl0+mQ5zmzs7P87Gc/47LLLuOee+7hbW97W1+DUtiu8P5lUrZ4KcuFF6ASKAW0Bkuvnc2oCIUj0gkqUtzz27/LE9/7IY8+/AivO2sVxkU0ooR64WmaBs7l5LnHq17LnDYOPBgcNRURa4P3DrxCeYVTClDkXuELS6I8he+9rtcR1mTYbkQSx3jt8KYX/DNxTNyo4/FkWDSOuMhQJgRcLeBR2oN1OG9RCpLE4K0jywtirxlPaizkEU/9+w/413/8R9Zds5ZGFIPWKG2II4PzfjFs6KASvPWL2+7oBfnkiDv9DAZsqsurXwdbT4+kGrZbrhV18L4Qp5MjHUvV8FlQDZsqpajVauR5jlKKd73rXezevZsvf/nLnHvuuTQaDTqdDt1utwzNJUlSjvOqX6shuuotNCBXt3O5CyiEMWYIyWqtSZJk2eM+NNeFNr0wNgzrCo/r9TppmtJsNsvXrX4uQgghhBBCCCGEEEIIIcSZYu3atUvmZZyJ5HM4Ocjv4eQ3GGh7rbZhx44dS5YvF6wbtHXrVlqtVt/Pt1ot7r77bnbu3Pmqb6s4vUm4TgghhBBCCCHOYNX/iFVtFAmTnsfGxlixYgV79+4ly7KyEaTaJBceV38elg9ULNdgNxi6qwbqwmuEQF+e52U7XWioy7Ks/F6e52RZRrvdpt1u45zj4MGD7Nu3j8svv5zPfvazvPWtb13SbHKkbZKJ2eJYaDzaezQKv9jSptBoBcooLrjg9Xz4wx+lSC1PPfEESQ1qUURiYjpdi4lzPOBxaBQocCh6nXYWvMd4UF6jPWjdC6k53wuv9W4WVxTYvECZDGU0No5eDLRpjYpjtLNobzGuQDtPnHuU7+3vhQenit5roDFAbDR5mmIUjCQJsYX5PGdUJTA8wg8f2c3/N/UAv3TzO6iNjYHSeDzWe7TRoF48njy9lj8WPyEhhBDH5kjjlOoYK3yNoojR0VE+8YlP8PTTT/Poo48yPz9PvV6n2WySpinGGLrdLkBfCC6M7ZYL2FXb7kLDXFBtugtBvBD0C9+r1+tEUYT3nizLWFhYIE3TcuwXfhYox4KDbXbhggnyj7RCCCGEEEIIIYQQQogTodVq8YUvfKFv2eTkJBMTE6/RFolTjexD4mQi+6NYzsaNG5menmb37t3H7TW2bNmyZNnOnTtfNlgXbN++nfvuu49Wq1Uu27VrF9PT07L/ildEwnVCCCGEEEIIIQD6Wk+01uR5zvDwMEmSlG0hIeg2GHwLtxBWq064PtJrDd4fbKsL6w8huuWCdqGxLs/zMkyXpilpmtLtdpmdnWX//v2sWrWKLVu2cP3115dNLmF9odVFiFeN8yg8GspwHYBCoTDg4dZ3v5fxlav4w9/7Pfb+9GfUV9ShyBiJayTe4rzCaQPegtc4FM57jPdoZwCF8eDQi0VwCrTCK/A6hE/zXvudAq0UykS9xjoFLokxRqNqCUZ5IueIvMdbj0Lhfe9Yw1us94vr0OAtxig0Gu81HotVivGkTi1K+NHTz/DVP/5TsJ6b3/c+lC8giYm0wvoQM3wxXCeEEOLEUEqV4bUoirj88sv5zGc+w2/91m/RarWIogjnHFmWlSG1amguhNcG7w9+DfeLogBeHOdVvz8YrjPGEMcx3nvSNGVubo75+XnSNF0y1qyOF4Gywbj6WoMNekIIIYQQQgghhBBCCHE8TE9Ps23btr5l1113nUzkF0dN9iFxMpH98cw2NjbGypUrmZiYYO3atWzYsIH169cDsGnTpuMWrmu1Wuzatatv2cTEBBs3bnxF67n33nvZtGlT37KtW7eyffv2n3sbxZlDwnVCCCGEEEIIIfqCdaHVTSnF6tWraTabdLtdiqJY0h4XmuLCxOjQSlKdQD0YXKs2qIRbdcJ0eFz9XjVcZ60ly7IljXVFUdDtdsnznDRNWVhYYP/+/czPz/PpT3+aX/zFX8QYU763cMuyjDiOy+VC/NwWd/kXd6derO7FhZ7h0VHevn4D9//t/ex64iccXFigNjJKW3mSwhMDNTzKezQWpXuBtsIrDA6FwiqF9h7jFUYrcOAVWDwohy8KIqWJtAKlcEZjNRR4tFYQxxAZNDWM80QesL2WOs9iyNVZcB6vesG93HvqUYxTnqzriJynjsYqB0qzKqpx4Mmfcf/OXVx+5ZW87k1v7H0gnl5zH+EcUAnaKfB+sbtODkEhhHhVVNt3w9isGj5zznHDDTdw5513sm3bNg4cOECj0SiDa1prsixbNkwXgnGhwU5rjbW27znhQgZA3zgvvH5oIQ7rKooC7z15ntPtdul2u2VrcnX8l+d5OTZM0xSA4eHhMjgIS5uJhRBCCCGEEEIIIYQQQgghhBBLTUxMvKYXJL/vvvuWLFuuye7lbNy4kbGxsb72uh07dki4Trwi8q/MQgghhBBCCCH6WubCxOcoijj33HO5+OKLqdfrZZBuMFy3XOgu3MK6giMF6gbDdNXGurDO8BohVBcmWXe7XdrtNtZa0jSl1WoxPz/P3r17yfOcj3/847zrXe8ijmOiKCrbVMJE8SiK+sJ21Vv4bIR4RZQqbwqDUhqU7n1FgTagDCap8YlPfYr3bfwVOq5gprNAiqdTQO4UhTXYAlyh8IXGO4V1vYBboTy58hR4rALnPYRjiN5j6xxFYbF5gc9zfDfDtTsUnQ552iWzOVaBjw1RkpDUmyT1OnGtTpwkxHFCbGISExEriPDEGCKvMM5TM5pmlFCPIuraMBRHrNCa0Tjh6R8/wZe/+EVmnn0WlecoXO9Y8h7vHd71tlfRix7Kf6ASQohX3+AYJgThAIwxKKX4tV/7NW644YbywgSdTgfvPVmWsbCwgHOubwxYvahBdRxYHbNVx4HVcV31QglhbBfGcbOzs7RaLWZnZ8uLOlRfa3BMmGUZnU6HoaEhzj//fKKo/zqCYVwphBBCCCGEEEIIIYQQQgghhDg5LRd+27x58zGt61d+5VeWLDtejXvi9CRzl4QQQgghhBDiDLHcJOPqpOvwvRBAg97E60svvZSRkRHm5ubodDrlZOc0TctJ0mHyc2iUqwbgqoG6IwXrBideDwbqwvKw7urk7jRNKYqCubk5ZmdnKYqC559/Hmstt99+O7/+67/OqlWrynYTpRRRFJXBv2rL3pECdkK8Irp3c0pRaPCq187mUFgPWZ4vNsEp1lxxBZ/57O9wxRVXcnDmMGle0LWKtNDkVmELjSsUWIVzCus9mXOkQIojw5JTYLFYX/SCqk4thuss1vXCCC7PcVmGTTOKNCVL096xZC0OhYkToqSGiWuYJMJEMbGJqJmYRBliNJGDho5IvMI4MN5jFGjrcIVFOc+KJOHskRES73n0wQf5u7/6KyiKXjWdt3jvwDuU96heChDlJPwghBDHS2iSC/dDa11opBsbG+Pzn/88b3zjG3n++efLxrswvlpYWCBd/JtRvcjCchdYGAzADYbtqsvCGK7T6dDpdOh2u3Q6Hebn55eMOcP6w1gxtNtlWcb4+DgXXHBBXyufEEIIIYQQQgghhBBCCCGEEOLk1mq1loTf1q9ff8zr27Rp05JlX/3qV495feLMI+E6IYQQQgghhDjDDIbsqkGysDyE5rTWXH311axZs4Z2u02n0+lrjAuTpLMsWxKMqzaWLBeqqz723i9pOqk+DhOrq4/DRO88z2m32+XE6+eeew5jDHfccQef/OQnaTQaKKUYGhpifn6+731Lo4k4XjzgAJTCqV7AztM7/kK7jlIKbz0XveEN/N7v/R7nv+4CDh46RJp7urknyxx5brG5w+aWolhsosNTOEeO67XYOYf1veOIxX3aebCL7XXeOXxh8UWBLwpskZPnGVlRUNgCByjVa3GMkpgoqRHFEXESk8QxiUmItCFCobwnMobYaAyKWGtqtRqNxec2TIzKLWNDQ/jCct//9d/5i//258zNzIAH712vrU4tfkregQflQeIQQghxfITxTlEUS8aAAGvWrOHTn/404+PjHDhwgNnZ2b4gWxhzVcdeyzUWH2ksGO6H8WB1vUVRlKG6EKirrqPanBfCdiFYBzA+Ps7KlSv72pK993KRBCGEEEIIIYQQQgghhBBCCCFOYg8//PCSZRs2bDjm9V177bVLlk1NTR3z+sSZR8J1QgghhBBCCCFKIXBmjEFrjfee17/+9VxxxRUURVEG7MIE5/A4TJBertmkOjk6tKeE1pTBdpPqpOvBnw0Tq9M0pdvtlhO7O50OSikWFhbKYN3tt9/Opz71KUZHR4njuFxHs9ks1y8NJ+L4UaA0RikMYBZDaUp5tFYowBUWLChlUE5z9S+9lbs/93l+2u0yQ06nrpmNHHOJYi72LMSejrakypN6S8Fi26PzFE6RW0XqFR2lWdCKroIMKJyjcDm5y7AuxdkMuil6oUM010bPd6CTUXiHSyKKoTp5o4YfGsI0hvG1BJ0kJKZOXdcZ8jE1C7HSqESTmoJUpWjjiZQl6mScpSLOKSwX2YLGC8/xT3/xZ8w8uQflcrQyeJ3gdYw3EV4brPLkqqDA4vA4fC+IuPhpVlsv+/hlbkIIIZYIYx1jDEDZZBdCaCMjI9xyyy289a1vZXZ2FoA0TftaiYuiKENtgxc5qF4EIYzvqhdFCBdTGGyzq7bdVZ8Tvh/GlmGMmGUZ7XaboijYv38/SZIwNjZWji/zPC/fs1xAQQghhBBCCCGEEEIIIYQQQoiT12BrHcDatWuPeX1jY2NMTEy87GsIcSTRa70BQgghhBBCCCFOjKMNkS33vGuuuYaLL76Y559/niiKiOOYOI4xxpQTqIEljXTOOaIoQimFMaavIS9Meh5sr6tOtA6TtcOk7tB0Yq0tA3adTofDhw9z6NAhAD784Q9z5513liG+MHE8vLdqm4kE68RxU5nTr1TvoWLxf5xHGwPW9p6gNabR4Pr/cAMf/vCHeej+v+aFA/s5e8UoMYrMWRIiHI44ScBZckBrg8Zh0Tjl8R4cfrEBTpUbYq3rhfvwxGg04LWCyOBzg48ijFYYpXrHa5L0gnuFh7yGKxzGxTigyDOUV2iliZXHoXBao5zFeA0NTSfLqMcJQzRoUtCenePv//b/5razz2b0vAtBK5Q2WOtAgcfjlcdos7jlyx+XcrwKIcSxWe78ORhartfrfO5zn2Pfvn1861vf4vLLLy/HW8YYoiiiXq+XjcUAeZ6XF2MIrxPGWlprrLV9r11tMg4Bv2qbXhgLAuWFFQDa7XbZnJymKQsLCxRFQRzHXHHFFeXzQzNsGOtVx4BCCCGEEEIIIYQQr6bv7P0O7bz9Wm+GOI004ybXnXvda70ZQgghhBAnzHe+850lywbDca/UxMQE09PTfcump6d/7vWKM4OE64QQQgghhBBCvCTvPVdeeSU33ngjf/Znf0aSJFhrmZ+fLydRh3AcLJ3AHSZYh+a6wYBdmGQdvoa2kuVaTbrdbl+LSbvdLpvsiqLgPe95D3fccQdxHBNFUdmAEoJ91cnW0lwnTpTByf15keO9J4pjlPd0223qjSYTl1/G5//L/8ofpQv89df+knqa0EwS2llKEhm0LYgKhenlETD0AnEFlpzecWUceKvAQITHql5rnrUOhQeVEylAG8hyvMlQOsJojdIanSSoKMImCcp6XJ7hbIH2FoNH2QKNR3uPUYoY8Dg0nhyP8Z6RRp3WvZQnvgAAIABJREFUwjz1JGFMD5OnXf7h/r/D1Ed496/+GuPnXYC3YLQmt0XvvUQGj1+M/tEXr5NjVAghXl3VcZD3nqIoiKKI8847j8nJSV544QWeeuopXve61xFFEVmWobXGGFPeoigqw3XhFkURRVGU474wDgvCOC9cACE0zoUx4uCYsNqK1+12cc7R6XSYm5sjjmNuuOEGLrzwwvK9VIN+QgghhBBCCCGEEMdTO28zl8+91pshxGuq1WotWTY2NrZk2fT0NFNTUzzwwAPs3r2bQ4cO0Wq1mJiYYGJigi1btrB+/fpXZZuO9FpA+XobNmxg48aNp8Uk+6mpKXbu3MnDDz/M9PR0+bmOjY2xfv16JicnT6n32Wq1uO+++9i5cyfT09NlOCI0EV177bVMTk7+XK1G1dca9FrvvyeLqampvs8n7E+Ddu3axVe/+lV2795d/q7C/vf+97//qI+zsB9PTU2Vn2/4na9fv573v//9r8rv/FR0pp3TXqkTec442uNiamqK7du3l9tzqp+Xj7flWuVejXDdIAnXiaOl5B+bhTh5KKWuBL4fHn//+9/nyiuvfA23SAghhBBCnImcc8CLgZbQLvKjH/2IL33pSzz00EOsWLGCs88+m+HhYUZGRmg0GsRxTJIk1Gq1MtwWvoYJ2WHydVBtuQvNdFmWked52VwXHocQnbWWdrvN/Pw8nU6HhYUFfvjDH3LLLbfwh3/4h4yPj5dNedZajDF9E63D5O1wXxrsxKvl5f4bS3lMWYtCUdiCKIrBe4o0I6oluCznBw8/yJbf+SzTj/2Ac1eMMl6vExcFo40aNaWIjaZmNHWtqStNTRnqypAog6GXm0u0IVIQK0WkFQZPpDWRidBRhKklmFoNU6uTNJrUhprE9TqqVkejUDhclpPNz1O0u+SdNrabkqVpL+hQFOTeUeDJvCW3jtx7MqtQccTMwhxFbOgoOJh2eW5unqGzz+NDn/pNbrz1XUS1Gk4p0KCiF8MQeplj8YjH53IftxzKQgjxsqrtwUA5NvPe0+l0+KM/+iN27NjByMgI4+PjRFGEMYaRkRHq9TrNZpNGo0GtVqNerxPHMbVajVqtRpIkJEnS13IcRVE5HgxjwiAE4sL4zFpbfg1txWEc2G63abVaHDx4kImJCe666y7Gxsb6LuQw2GBXHXcKIYQQQgghhBDizFMUBU888UTfsssuu6z87wfH6ptPf1PCdeJVNRKP8LYL3/Zab8Yrcumlly5phpmZmSkDSlNTU2zdupWpqamXXdfatWvZuXPnMU9837FjB9u3b192kv6RbN68ma1bty4bqFrOunXrXtH6X8o999zD1q1bj/j98fHxJeGv6r9D7tixg61bty75/JezefNmtm/ffuwbewK0Wi3uvvtudu3adVTPHxsb495772Xjxo3H/Jqvxf57Iveh5V6r+v5eyuD+NzExwZ49e8rHu3btYsuWLUe1/23cuJF777132dfdvXs3d99991F9Ji+1npdyLJ/D1NQUGzZseEWvc7TGxsaYmZl52eedbue0n2d/XM5rcc44muPi7rvvXja4O+hUOC8P2rRp05LP++V+70dj8HM92mPkpWzZsoVt27b1Ldu+fTubN2/+udZ7oh2v/z/mlXrsscd485vfXF30Zu/9Yyd0I04g+ZdlIYQQQgghhBAAy7a5VScrX3rppbz3ve9leHi4nNwcwm0LCwt0Oh06nQ7dbre8X72F1rksy+h2u+Xj0EgS2ulCW12WZeWt2lzSbrfLxrpWq8XevXt5y1vewrvf/W6GhobKidzW2rJVL7yn8L4kVCdeC+UxphRegYkivO/tn6aWgPd4rbjyF36BzZ/8DcbPPZdWmjJf5Ngopus9HevIPeReUXjInO/dvCfDkSuPQ2G977s5x+LN4ooCm+XYNMOmKUW3i+12sZ0OLs/BOYyJiWo1TLOOHqqjmjWoxZikF5iNtCZGEXlF7BQJippS1CONyzKatYR6FJGgGDIR5wyNkO4/yD997a/4ycOPoKxFhxZJ1wtVKPobLautSssGF9UyNyGEEEcUzqfV8VBVCKbdfvvt3HbbbXQ6HVqtVl/A7UjjuDBmCw3DaZr2jf+q7cNhPYPPD+sNtzCGbLfbZWPdvn37WLFiBTfddBNjY2PleC+ohulknCeEEEIIIYQQQgghxIk3PT3NunXr2LBhw1EFk6AXsjmWoMeOHTsYHx9ncnLymH72kksuedXCJSdCq9Vi06ZNTE5OHlWwCXrvc926dcd5y47dtm3bGB8fP+qQDLz4OWzYsOGogiyvxIncf4+nV/tzCTZt2sSmTZuOev/btWsX69atW7I9k5OTr+gzO9J6Xs7x+hyOl9P1nPZq/h5OtnNGWPemTZuOet0n+3n5RDoex+ill156Ql5HnJ4kXCeEEEIIIYQQoo/Weslk5BBEu/baa/nABz4AwKFDhzh48CALCwvMzc2VE5/DROrBW/j+kZ5XDdBVQ3ahwS5Mss7zvJzsffDgQa6++mp+8zd/k/Xr19NsNss2vNBep5Qq39ORbkKcaGWQVWvQCvAU3mGiCFWr8R/f9S5u/9CH8FHM3kMzdKylYz2p92TOkTlHGkJ13pF5R+odOR4LvZvzFIvhusI7rHM45/He4azF5jkuz3BZthiu62K7Ga7otQahDSpJ0PUaplHvfU0SojgmiWISbUhQxChipUiURntLPdYYDbHWJErR8IqVSZ0xE7Hn0e9x/85dPLtnGmyBVpQBO79MFd3LtQEKIYR4eUcMKbM0gKaUYs2aNdx5551cddVVtFotFhYWllz4oBqWqy4/0q0aolvuVl1fdXw4Pz9PmqYcPHiQVqtFlmWsW7eOq666CqAc64ULQoRWvGqIUAghhBBCCCGEEEIIcWLs2LGDSy+99JjCHa1Wi3Xr1h11aAd6AZ2fZ8J8eM2TMYwyKGzrKwmUBLt372ZycvI4bNXPZ3Jyki1bthzzz09NTXHJJZe8on3mpZzo/fdUc6z73/T0NHfffXf5eMOGDezYseOY1rNp06ZX/HMnk5UrV77k98+kc9qxONnOGQDveMc7Tqvz8om03L7+csfIsTp48OBxWa84/Ui4TgghhBBCCCFEnxBOg94Ea2ttOWE5SRJuvfVW3vnOd6K15uDBgxw4cIBOp8P8/Dzz8/Nlk124haa5hYWF8vshYBdCd4PPrYbtsiyj0+mQpinWWhYWFpidnaXVanH11Vdz11138da3vpVGo0FRFOW2honWy02sllCdOJ5eLhBWDXaWLUJao5Xqta9FCabR5PY7P8J/es+7cVHMbDcjdZ4c0wvVWUfuPLmDwnsKFm/e90J1zlMA1vduDrDeYZ3HWo8tLC4vcFmOy9Oywc51M4osx+ZFL+wWGXS9RtRsYBoNdC0mSmokSUIcx0TGEKEwQOQh1gqNJ9KAzUm0omkMDedZmdQZ0Zrvf/tBHvja/2D/s8/0CufkWBRCiNdU9cIE4Zx89dVX89u//dtcd911HDx4sAzIVVvrwhhtsKl4MHhXba8bfF4YB4YxYPUWGpIPHz7M4cOHee6551i3bh033ngjURQBLzbVhTHfYDufEEIIIYQQQgghhBDixBkMPWzcuJHt27fzwAMP8MADD7B9+3bWr1//kuvYsGHDUb/exMRE3+OxsbHyNffs2VP+90LvPY888ghbt25ddj1H0zi0cuVKxsbG+m5HMvi8wduqVauO+j0G73jHO/oCIffccw+PPPIIMzMz7Nmzh0ceeYR77rnniNu1Y8eOk6q5Z9OmTcsGrMbGxti6dWv53rz37Nmzh507d7Jx48Ylz381w0THe/99rfehn8eGDRv6PuPNmzcv2f+2bt265JgMdu3axe7du9m0aVNfI2B1PTMzMy+7nqmpqVM6OLZ9+/aX/P6ZdE57pU7Gc8bgcXGqn5dPtBMZRj6TP2fxykSv9QYIIYQQQgghhDj5VCckh/uhAW5kZIS77rqLOI752te+xgsvvABAo9FgeHiYPM+JoohGo4G1luHhYZIkKSdsh0YR51x531pbTojOsgzvfTkR2zlHnue0221mZ2dpt9scOnSIN73pTXz0ox9l3bp1JElSrk9rXU6qlonV4rVwNPudUgoG24KMweEBj44izjr7HD72qU/z48d/xPe/8zDW5pw1sgKlDDGG/P9n7+6j5DgLO99/n6equmdGI2kkYWRk/NY2towdEkaWMRgHG0nAZTHcYMlkAwQ2wRJ7wbyc5MoYkpyTPUkUaZPl7GbDrsSe5cCyZy+RWDZA2GskLTcsBBtLQzB27GA0Jn5FtjXTmtfurnqe5/7RXa2emR5pRhpJM6PfxzTTXd1dVV399KO2Vb/5BbDBE5uISurwUSCKDVnwBGsBgyFgQ70cz2NwIWBCwDQCtDazuFpKhqkvK1QxkcHFlhCBiQw2iQkhIe4oQFqEYPGNtjnvffNiCMSRxTlHbAyJtRgMxkZEPkBi8KbIs0PH+f6BA1yx9hpuu+QVmCSm/vufDIGp4YjJn+Vm658+3yIip2VyCNwYM6H113tPHMfccsstLF26lD//8z/ngQceYOnSpSRJQqVSAerf3/JwW/7LGEIIzQbiOI7JsqwZhMu/pyVJgve++TNN02YDnXOO4eFhkiRhdHS0GcB78cUXueGGG7jzzjtZsWLFhFBd/hpar+vPCBERERERERERkfNn48aN7N27t22gYOvWrc0Gqnbhhv7+fnbt2sX27dtPuZ18/aVSiXvvvZetW7dO+9je3l56e3vZvHkz69atm3CifX9/Pzt27Jg2qAKwf//+Kcv27ds3pUlrukDHmcqPVU9PD4cPH54QwsmPQ29vLzt37mTLli1tm5T27Nkzo+N6tu3atavt/u3cubPt/pVKJUqlEps3b6avr4+77757wtgpl8ts2bKFI0eOzMn+na3xe77H0Onq7+9vhmBONf62b98+7fjbsmXLhPUcPHiQ3t7eCY/JP6fbt29n27ZtbcNUu3fvPmVI7Uxs3LjxlL9M92QOHDjQNmS5ffv2U4YzL6Q5bTbm45wxm8/FQpiXF5Oz1X4nFwY114mIiIiIiMgEk8Ms+fX8BOpCoUBPTw+/9Vu/xe///u/T2dnJ448/zjPPPMOxY8cYHx8nyzKGh4cBGBsbo1wuN5vt8va6vLlkdHSU4eHhZhvd8ePHm+sZGRlpLhsYGODJJ5/kiSee4LbbbuO+++7j9a9/Pd3d3c2mupO11LUL6YjMpXZjbbrxNvnzFQwETvymORtH2EKBS666mvd+8INc9errGMsynDEMV6oMVatUnacWAhWX4a3BW0vVOVI8WfCNNjtIQyANNG57HAFPwIdGMC5zuDTFpxlZtYobr5JWq7hG0NVisHFEXCyQdHWSdHZgiwVMISGKY+I4JrIWayCyhthYogAxhjgEEgwFA0WgK7Ks7Oxg9NiLfOdb3+ThHz6Ar1QxjVDh5OOShydEROTMtf651C5gl8vn3iRJ6O3t5TOf+QxvfOMbOXbsGIODgwwPDzM2NkatVmN4eJiRkRGyLKNSqVAul6lWq83veJMbi1t/vvTSSxw/fpwsy5q/PGFkZIQ0TSmXy7z00kscO3aMo0ePsnbtWrZt20ZPT08zrJc3Lbfuv77riYiIiIiIiIiInF/bt29n//79J21BKpVKHD58eNrAxo4dO2a0rVKpxM6dOzly5MhJQyiTn7N3794py3ft2rUgmm0mBzja2bt3b9vHfOUrXzlbuzVjfX19UxrioB70mUnApLe3l8OHD08JKeWBtzN1LsfvQnTw4MEZjb/JoTmY2FI13WNa7d69u+1j/uqv/mqGe3vu5aGtyfKA1alciHPaqcz3OQMW/rw8n5xs7j0TAwMDZ2W9svjoDCUREREREREBpj8ZOV9mrSXLsmabybJly3jTm97E7//+7/P+97+f1atX8+yzz/Lkk0/y4osv8otf/IJjx45RLpebwbnWE7KPHz/ePKk6byUZHh5unoQ9ODhIpVLh+PHjHDlyhOPHj7N+/Xo+8YlP8C//5b/k6quvntBSAjSDSflFZF4L4cSlwRhDZGwj9JYSW8Pbt2zmo5/4OD2rV/Pk888RCjGpCWQWqs7hjCElMJ7WcMaSuUDmA1moXxwBh69f9+AC+BBw3uOcwzlHlmakaYqrVsmqFbLxcVy1QkgzDBDbhEKxk0JHB1FHEVOIMYUYW0ywSUwUJVgb14N11hIZQ4whwRBbiK2haA2dsaWnq4PuyPDwDx/k23/9dX7x1D9hsmzCcYAT4Y7WJjsREZm9dt/xJt9unWdbm0OjKOL666/nD//wD3nXu95FtVolTVOA5ve0crnMwMAAw8PDOOeavyChUqk0v+PlQbvh4WGGh4fJsvqfO1mWMTQ0xODgIENDQ82A3dGjR3n++ed5+umnueGGG/j4xz/OypUr6ezsbLbjKYAtIiIiIiIiIiIyv2zevHlGAZLcdAGbcrnctrGq3fNPp/Fn48aNbbd74MCBWa/rXNq+ffspAxy5bdu2TVnWGm46X+6+++4py3bv3n3KRq/J9u/fP+VY7Nu374zew3M9fhearVu3njIQl2s3/nKbN2+e8ft93333TVk2nwNjW7ZsmbJ/eUvfTFxoc9pMzOc5AxbHvHy+nK3AW7uA3nyeN2R+0d8+i4iIiIiIyIyEEEiSpHnitXOOKIq47bbb+MxnPsPWrVu55ppreP755/mHf/gHhoaGeOGFFxgcHKRWqzVPrj5+/DiDg4OMjIw0W02OHz/Oiy++yMDAQPMxzz//PI888giPPPII3nte97rX8fGPf5yPfvSjXHHFFcRxTJIkExpY2oXrFMqRcy20XKZ9TAgTH9S4HkIgTVOssQRjMLGlo6uTN91xB299xzsY857j4+OM1GrUfKDmA6PVGmkAZyxVl1ILnjTk7XXUW+tCo8Eub7ULHh88LtQDdlmWkWUZpDWyWg1XqZKNV/GVCqGWYXw9aBEVCidCdYWEqFgg6igQFxKiKAIgMZYCEUUTUbQRBRNRsBGxNUTeYdIaywsJHd7zo+9/j7///vepjgwTfL1Jr/Wz2/ozNzkkMpPjLSIiJ7S2vMHEMF2rEALee6rVKqVSid/7vd/jve99L+Pj4zzyyCO8+OKLAERRRLVaZWhoiJGRkeb3vKGhIYaGhpq/WCG/5K101WqV0dFRjh49SpqmxHFMuVzmyJEjDA0NsXr1at73vvfx4Q9/mJUrV2KtpVqtYq1ttteJiIiIiIiIiIjI/NEuCHMq7RqXoB6eOJve8573TFk23xuE2u3zdNq1qp3vcMGBAwfo6+ubsGzjxo0zbuiarN3YaddwNVMLafyeDycLzE121113zcl6pmsHPN9juZ1du3a1DWrt3bv3rLVxtVqIc9qpzPc5Axb+vLwY6ZjKmdDfQIuIiIiIiMi0Wk+yNsbgnGu2hOQnNXvvsdZy++23UyqV2L9/Pw888ACDg4M899xzZFlGV1cXS5YsoaurqxmIs9ZirW22lqRpSq1WY2xsjKGhIbq6urjssstYs2YNb3jDG7jttttYvXo1URRNaLLKt996Unh+kvjk1yByPjTHYGv6a7rAZwBL/fFRFBGMAZ/R0VFgy/vfy8/6f8b39h9gzYoVjKQpS2xEZA2VLKUYx+ADiTWYADaADQZrDBkGA/gArr5XgKn/0yjPMz4QZxkRBm8hswYT1T9bUbEDay1RkuB9IPaegMVF9RBgHopLU0cIgZj659EEwAQ8GdbU963LAMZwUVcnzw4M8KMfPMD1N97IZa9eVt9vayEEfAh4Tny+64ctTLjePKyGxisUEZGZyL9LnarRzhhDR0cHIQTWrFnD3XffzSte8Qr+7u/+jscee4yf//znJEnCqlWrWLJkCbVajUKh0Fx3HMdEUUShUGg24eXNc11dXYyMjABQrVZ58sknCSFw+eWXc9ttt7F+/Xpe85rXkKYpIYTmd8ec974Z7BYREREREREREZGFqVQqsX37dnbt2jVheV9fH+Vy+ayFUtq1Hs3nBqFSqTTj1rD88e2czWN6Ku1CLLNpipust7eXjRs3Tgg09fX10dfXN6tjdSbO1/g912Y7/np6eujp6Wnb4jbbxrFSqTTls9nf33/O3uOZ6Ovrazu+t2/fPuvXe7oW2pw2E/N9zlgM87KITKRwnYiIiIiIiJySaYRnoiiqt1tRD9e1tkwVi0WuvfZaLrvsMv75P//n9PX18eCDD9Lf30+5XGZ8fJzjx48zMjLSfE5+snR3dzerVq0ijmNe+cpXsmLFCm644QbWr19PqVRi5cqVFAqFCdvL9ys/qXpymE6hOpkP8tE6ZTQa0zZgZ4zB5m08FpzLsJHFFhMuv+4aPrD1bp556ime+ek/EvesoNjRQRoMJsvABApx/XOSGbAeTAATImxkiIwhI2Dy7RqwIZDhsQGM97haig0QrAFjyazFGoOJEmzBEgCTxNhQJCIQ8OAyTBZjvSd2ESYETDD1cB8Gj8NGljgETGSwWFyW0R1FLI0TfvrjH/P4D3/ImssuJ1ne0zwOBF8/hm3CH63HVkRETs/kX6Iwk8flAbt3v/vd/M3f/A3f/OY3OXr0KIODgwwNDdHR0UGhUGB8fJwkSZotc3ngzlrb/OUIAwMDDA8P45yjp6eHl7/85axdu5bbbruNX/3VXyVJEtI0JUkSnKtHw5MkAeoNymqvExERERERERERWRzuu+++KeEkqLcWTddcdabaBRnmcxDldI5Du3DTwMDAeQlxlMvlKQ1Uvb29ZxyQ2rZt25S2sN27d5/T5rjzMX7PtdN5HStXrpwy/k7WaDedduN1YGBg1us5W8rlMhs2bJiyvLe394yCYLO10Oa0U1kIc8ZCn5fPt5UrV05ZptY5Od/0t88iIiIiIiIyI9ZavPfEcdwMuOXNc3nAzXtPZ2cnHR0d3H777WzYsIGXXnqJI0eO8MILL/Dss8/y3HPPkaYphUKBLMsIIbBixQrWrl1LV1cXPT09XHnllaxYsYIQQnPdYVIQKW+ua20wybWeBJ4/T2E7mXcmjMnQ8rMRIjWGYCD1gdhGmChm/Rtv4Tc/9Fv85a6dDA2NEHmHTxJsHOOJqGUpBWMxLpARsBZcMLgAjvpnxfqANfXNe1MPwnk8znqytIqhEX6wET6qUbMW4hpYg7URxkTEhUI9WudSbC0mimNsCBgXcCYjDRmZq7+GxAQcvr4P3mNDIAmeAoYlccyzx47x8KHDXH/LG1mzdBm2JSB70s+tPtIiImds8verXGtLaAhhSphtxYoVvPvd72b9+vUcOXKEhx56iEcffZSxsTFGRkYYHBykVqsRRRFxHGOMIUkSvPc451izZg0hBJYtW0Zvby9XXHEFV1xxBTfffDNJklCtVnHONZ8TRRFpmk7bZioiIiIiIiIiIiILV95mNTnw8NBDD521cNJCO6n/qquuOt+7cEYmv7fQvmlrttqto922zqbzMX7Ptbkafwt9HLezZcuWtg19Bw8ePKf7sdDmtFNZCHPGYhzPi0G78O2FGF6U06NwnYiIiIiIiJyW/ITmJEmaJ17nnHPNUNzLXvYyLrroogltdc65ZnNJ63qstRPCcvn9+WNaT6DOnw/1E8CnOzlcZGEx+f/wjVCdxxCCJ45i4s5O/o877uDZJ3/Of/vCF3hpZJTOl72McR8g9QRjSOIIby0+1NdjoNEiV2cx9TY6DFkATMCG+ufWeYc1kEYGbw3GeLCGrBqDNSTGQhwTRRGFuANb9FADPHgbY50hDQZcgOBxIRAZKARTL6ILYI0lsxGph64oZmlHJ88//TT/dORnvOzSS+no7AQbNcKHhlB/WvO1BEI9VxcmHLVJV+R0TG4Gnel9IrKwnSqkZoxp/nKF/HtaFEUsXbqU6667jrVr13Lrrbfy85//nGeffZYXXniB559/nqGhIQCOHTvGyMgIq1atYsmSJc224+7ubpIkobe3l9WrV+O9b66/UCg09ylflgft8uZihetEREREREREREQWj02bNk0JOExuLbqQlUql870LZ+QrX/nKlGWbNm064/X29PRQKpUmNHT19/dTLpfPaZhisY/fuRp/C30cT7Zr1662way9e/cqzHOGFsKcsdjG87mmz4jMRwrXiYiIiIiIyIzlJze3NobkWpflwbrWQFz+s1gsTlhnvo7JP1vXm1+mu691/ZOvi5xr046+kw3LcGLcmvoNosbtKEAIhkAgBEv38pX8s8138dOfHuHvH3iQl0YrrOzsIjiDtxYbDB1EFAOYYCGEeludDYDFBAPGgmkEVEMgNmDwOFJsgOANPjNENmDTmFCrEowlNNZvTYKxMbbQBZ0WjyEzFUKWYVxG5CICkPqMiAA+gAfroWYCUYDYQ6dN6LAZz/3TU/Q/9hi/9Lr1dHV2QGjE6QxkwWAMRM1jWE/pWewpDqqIiJzKKVtCp3nc5O+Ay5Yt45d/+Zd5zWteQ5ZlZFlWD207x9GjRxkdHWXlypX09PRQLBabQbn8FyvkgbnJ654sf0y+XREREREREREREVkcent7pyxrDT9c6Nq1Ui0k7d7LuXpNk4MyAIcOHZqTlquZWuzjd67eq8UUpunr6+Pee++dsnz79u3ndOwtVgthzljo8/J81K51bi7ovZKZUrhORERERERE5kRri1x+e3LjXLvHTH5su5Y6kcVuwufmxNIJPwKANRQ6O7h67bVs/ehH+KK1PPC//j+s86xY0k0SRVQzBwRsFGG9BxohOd+ySl9vsMPUG4AsAbwhWEMWAiZz+JASjMVGNWw1Ingw1mJthAlxfV2RJeooEBtPRoBqBZsk2GAILsVkHpwnWIOJLNaA8R6DITJQjCIKkaU6NMxLL77A+OgYPT31Bj4iizFgm1NBaDbYKVR3dpyquUpELjzTffbz72yT2+PyNuI4PvFXD93d3c0QXet3wSzLmsG6XGuwTs10IiIiIiIiIiIiF452J76fyUn2Bw4coK/L26w9AAAgAElEQVSvj4ceeqjZSpSvr1wun/Z6z5eFHkpqd8znqvWp3bE51+/xXI/f+Wauxt9iCbiUy2U2bNgwZXlvby87d+48K9tcbHPaqSyEOWOhz8vnW7v3cy7Gcrt16L2SmVK4TkRERERERM5Ya6tcu4a5kz3Pew+caMVrDdzphGpZjNo1MLbXEjYwjTK3RtKsUCjw2pvWM358iCce/0fKvzhK0aUkhbgejMMSRwYTwAZLGnxjbQEI9euh/n8Wg2tsJ6XeTBc5DziopVhjG2E5TxYZrDVYCyZJIIoJSYyhQIQnVMfBQDCGrBbAZxAMlnqgwvh6mC8xlpR6K18xiilGMcdefJHhcplXXPJKMIYQPC4DbEQWAkkEhvqBaMw2itiJiJxneWBuuoZhqLfNhRBwzjXDdCGE5nc/mM2fjSIiIiIiIiIi519X0nW+d0EWGY2puQlN7Nmzh927d9PX1zcHeyRz6Wy2uLULbJ3r1ri5Cv3IwnD33Xe3DfDs3bt3TrdzIc9pi33OkOmVy+UzCsMdOXJkyrKrrrrqTHZJLiAK14mIiIiIiMhpm3widX4idLvlk0+8nrys3UnU7dpQTvUYkYUuNGNwAYPBGyCY+q0QwFpMYijEEa95/evY8r7f4Iuf/08MDI8QxTHGWsBTwRECWMASYULAEMAETPBYY4gIZJyIqZkAMQZjI2yA4DJCrR7uA0OILDUAa0iiCBNDiA2YhDgyxGmF1FrSAMZnkEHwra8NCKGxTxAyRxQMxShhZHiE4ePHcZkjKiRg6gEMYyFpDRrChHAg+vxPMV1Ipd18Pfk5JwvITPf42e7PTJ8nIvPT5O9u032Xy3+JQh6i897jvSeKorZNxzPZroiIiIiIiIjIfLD+4vXnexdEFp0zafnatWsXO3bsWJTtTYvZwMDAnLQJzYeGuPmwD3Ju7Nmzh3379k1Zvnfv3jkLWWpOa28xzRlSVyqVpgQbz/R9bheUXCytmXL2KVwnIiIiIiIic6LdCdWTf0538vTkAJ0Cc3LBagbpGg2O5Lfrt0KjuY7IEIJlxapVvOXOd/PEz37G1/Z+lSSKKCzpAmOJna8H9ELARmBthKGedDMBrDdYYzAm4KKAwZJ5AzZgAnjABo/PHN5mRNYSMkuoQhpHRIUEG0dgI6y1RFGBQkcHoeZwjSaj1gtAZC04RwiGyFgsgeA9BE8hjikUitgoAtOI+/n6XJBmnjgxjQOSa8bsUIXdCe2CbK3LpmuYyu9rF5o7WRvpTJpKTxbqE5GFabpfsDD5O1werDPGEMf1v45obS2eyVyjeUNERERERERERGTxaxciOVVQpb+/n02bNp2ycahUKrFx40auuuoqenp6mifZb9my5fR3WGalXYBiroJDpzN25tp82Ac5+/r6+ti2bduU5Vu3bmXz5s1nvH7NaScs9jlD6tq9z319fWf0frQLT+r9lZlSuE5ERERERETOyHQnPE/XYjf5OScL200XAJnJ9kXmq5O1gNWvQ2tazJj6Ld94ngsBlzmSqB5gu/zyy/mtj3yE40PD/PC7f0t5dJjlS7qxtv7E2AdqNmBDPTRnTCAyAYcnw2ANGG/AeiwWPFgc1tRb81yALK0R8MQ2YE3A1GLS8TFiG2ELRWJrwQeC8ziXkaU1vHONLJyBUA/RGRpBCxcw1hA1ghUh1OOEmcvwWUZkY4hsM5SRRJbgw4nD0vgZjHJ1pzI5WJf/zMdh3irVbl7OsowoiiYsm26ds6F5W2RxOFlQt90vXXDOAScCd+3WJyIiIiIiIiIiIhemQ4cOTVl2sqaZvr4+1q1b1/a+UqnEtm3b2LhxI729vW0fo0aoc6tdC1F/f/+0789stAsizUW71WzMdvzKwtQuvNbb28vu3bvPeN2a0yZa7HOG1PX29nLgwIEJyx566KEzCqv29fW13Y7ITLT/W2wRERERERGRWZoczMgvkx8z3ePaXdo992SPEVkM6uO6fqn/U79lQ4AQ8AS8DxhrsYUiRDFrr7+e3/ro/8UlV17B4OgoY1lKisFbS2YCaQik3pPicYR6QC80gnMefGiEpILFe3AeMh9wvh6+ynxGLa2R1mq4tEaWVknHK/ixMaJaSpQ6qKS4ShU3XiWrVPFpCt5jORHAcN7X04IEMufJGqE6WhqPgjXQaK/z/kSLWv5xz49HM2DX6PmbfcRrcWhtm5scejtZCC6/3zlHlmWkaUq1WqVSqVCr1fDeN9ulJm+jtaEq55xrPr9arVKr1ZpBmhACaZqSZVnbfRWRhatd8DYP7E7+vhZFEVEUNZe1++UL+q4nIiIiIiIiIiJyYdq/f/+UZSdrmtmwYUPbx+/fv58jR46wfft2nUw/j9x4441Tlj300ENnvN5yudw2KNNue2fTbMevLDxbtmxpO9b27t07J+vXnDbRYp8zpG7Tpk1TlrULx82UgnVyptRcJyIiIiIiInPmVC12c7lOkcVkwjgP9axZCCd+K1Kg0WgXAtZAXEzIsgwCxMbifcYll7ySW970Jo49+ywj1RpRFJMGx/JCQlyIMMFjvCWygSiADR5jIIosHkMWGsEGDAHwgCeQNbZvcZiQ4muGgo1IbEKoVskyQ/AGl6XUxo7jainWg8nqTXY++HoYEIv3jlqW1UN/3pN5qGYZNZeRZhnB19v16gfFYmybAFZe5ads1rSaYUbnmkGWdk1SWZYxNjbGt7/9bYaGhhgZGSFNU4rFIu985ztZs2ZNcz3WWqIoolarUSwWm9vx3lOtVnn88cf57ne/S5qmFAoFurq6eNWrXsVNN91EuVzmhz/8ISEEbr75Zi6++GLN7SKLSGvj8GxM12AnIiIiIiIiIiIiF57JzTXQ/qR7gHvvvXdKS1Nvby+HDx8+K/smZ27Tpk3s2bNnwrJ9+/axc+fOM1pvu3FTKpXOeQvVbMavLDx79uxh3759U5bv3bt3TkKUmtOmWuxzhtS1CzW2awKdqXbvr4KTMhsK14mIiIiIiIiIzCONYjeaEYXGdZvfaerNdVEU4bIME1lsscArLr2Uu37jvWRj49z/rW8xXBkn6eyg6j1RLcVEEZExxCEQh4CxYDFEHoyFKARs8GCjEwE3fD3Y5w3WAN4TG0+WZdTGK4TUk5kqPgv4zJG6cXzq8VlWb51rNM8FIAseTyBYSxoCxDHee1wGIY4odHUSFwvUN5Q3pNEmSBcatxXOgqmtoTCxPSq/nQfsvPcYY7DWMjg4yL/5N/+Gv/zLv6RSqfCGN7wBgJ/85CccOnSIt7zlLVxzzTWsX7++/l45R7FYxHtPmqYYY3jwwQd59NFH+drXvsYjjzzC2rVr+cUvfsGRI0e47rrr+NCHPsSLL77If/kv/4Xly5fzR3/0R7z97W+fsF8iIiIiIiIiIiIiInLh2rdv35RgCcDGjRvbPr7dyfMHDx6c8/2SudPuvezv76evr++MWoV27949ZdnmzZtPe32nY7bjVxaW/v5+tm3bNmX51q1b52ysaU6bajHPGXJCT08Pvb29ExrnyuUyBw4cOK059Ctf+cqUZVu2bDmjfZQLi341rIiIiIiIiIjIPJE31AWm5skIBhPAu4B3rh5MsrbeMuccwRiuvu46Nr/3vVz/2tdSCYHRWo3RNKXqPTUfqAVPzXuqPpAGSIOvX7wjC+C8P3EJniwEMuoX56Fay6imNWqVKtXxcSojo1SGR0lHR6iNjTE+VqFSqZDWUpxzuBDwgAv1S4bBGUMGVL2j6hxpgOPjY3T3LGflyy8iKiRgAiF4nA/NFr22B0uAekgtv7QyxmCMwTXGC9QDd9Zajhw5wmc/+1k+97nPUa1WueOOO9i5cydf/vKX+chHPsL+/fv52Mc+xu/8zu/wgx/8gBAC1trmeowx/M3f/A2/+7u/yyc/+UkeeOABNmzYwBe+8AX+4A/+gN7eXh577DE+9alP8dnPfpannnoK5xxpmjZDfpP3V0REREREREREREREFq7+/v7Tet699947ZVlvb++0TUKtJ+Gf6rHn2sDAwPnehXmpp6enbYBlx44dp73O/v7+tqGkdkGoma7vdMx2/J6KxtD80q6BsLe3t21I63RpTptqIcwZMjfe8573TFm2d+/eWa+nXC5P+Sz19PQo6CyzonCdiIiIiIiIiMi8Eertbs143YmLMQHT+JkkMT5vIyNAHBElCd5aLr/mVbzjzju57IoSg6OjVJynFqAaQstPTy0EUqAWPCmQNkJ0WfC4PFBHqAfjfD0c533AuXprWaVaYbwyyvj4COOVMarVcaouo+Yzas7VA3sE0hDIoP4zBJwxzZBfRmAsrdG1bDmXXXk5S5Z2E4JvBAdNs9XMmBNBsfw4kV9X89kUrQG4XN5cB/DYY4/xJ3/yJ/yH//AfGBsbY/ny5fzxH/8x69ev55JLLuFTn/oUt9xyC+VymQceeIDPfe5zzXU553DOsXfvXn7v936PH//4xxhjuPbaa/m1X/s1LrnkEt71rnfx4Q9/mGKxSLVaZWxsDIBCoUCSJHjvp+yfiIiIiIiIiIiIiIgsbA899NCsn3Pvvfe2DTXdd999c7FL0zp06NBZWW+7BjOp27lz55Rl+/btaxt2mYl2bUSbN2+mVCqd1vrmy/jVGJo/tmzZ0vb9PZ3gz9m2GOe0+T5nyNzYunXrlGV79uyZ9dhrF3Rut26Rk1G4TkRERERERERkHgmmUcpmGpfW6/ZEICmKIoy1eOpBNIwhWMuSnhX86oYN3HHnu7n40suo+sBYljGaZlSco+YD1eCbAbsajbAdgdTUQ3UpngzfaJwLhAC+sVMhgPOONEuppDXGswqVrEIlq5LSaMKjse7mdU9m6gG+8SwlRJZacIxWK1RdxqVXXM41166lq3vJiQNhTL21zjfa/CaVnBkUzppO63Hx3mOtbYYTjTHcf//9fP3rX2d0dBSot9ktXbq02Uy3ZMkSuru7gXpQ7+/+7u/46le/2nz+yMgIf/EXf8FPf/pTvPd0dHRw66238pa3vKXZjNfR0UEcx80gXf6zdV9ERERERERERERERGTxmO3J8Pv27WPXrl1Tlk/XWJSbHITo6+ub9Un47UIbs9WuWep0AloXilKp1PZ9nS7AdDLbtm2b0lAEZ/a+nqvxO/mxk2kMzQ979uxh3759U5bv3bt3zsNYmtPam+9zhsyN6ebMu+++e8br6O/vZ8+ePVOWq5VQZkvhOhERERERERGRecPgMQRj8MYQMHltGxiDMfXgkvOuHjwjgLF4DC6E+k8My1au4td+/T38xgc+QM9FL2N4fJyad9SCp+LqIbuqd9T8iZ9Z8NRCRkpGhquvzweCrzfWBQcu87jMkzlH5h0ZGZlx1ExGzWRUQ0Y1OKrBUcNTC64R4qtvpxo83hjGaynVzFF1jrFalTWXvpLLr7ySQrEDjMF7j/O+8foa5XTN0rowJWgnJ7S21nnvMcY0Q3MAP/rRj7j//vvJsqwZdIvjmM7OTmq1Gtba5vPz9T3zzDP82Z/9GWNjY4yNjfGf//N/5oknnqg3DDaCckuWLKGjo6PZkJdlWUvzYH0bzrnmfoiIiIiIiIiIiIiIyOJSLpfZsGHDjB67a9euti1CAJ///OdP+tx2wZbp1tXOtm3bTrv5qNXKlSunLNu3b99JQzF9fX2z2tfF5vOf//yUAE+5XGbdunVtgy/tbNmypW2IYufOnWcUejpX47eVxtD81N/f3zaUs3Xr1hkHJ2dDc9r05vOcIXPnTFsK1Uooc0XhOhERERERERGReSM0//H5tby2LdSvhxCwNiLQaLgDfAgEY+qtd8bggRUvu4i3/rN/xqt/6ZcYHhtjZLxCzWWkvn7JvCP1nswFUudIncMFTxY8Do8PHhc83ge893jvyTJHmmakWUbmHKl31FxG1WWMZ1WqWUbNuXp7XQi4AJlvtNl5RyVNGatWyELARBGpc0RJwjXXv5qLL1nTaOczYM2JEJY58ToVy5qqNazWGqxrve29b4wby5e//GUefPBBRkZGyLKMEAKDg4N8+tOf5lOf+hSf/vSn+ehHPzrhP1RnWcbx48eJoojR0VH+9E//lOPHjzcDfCfGpcU51wzc5eG+fB35dbXXiYiIiIiIiIiIiIgsTn19faxYsaJt41N+/7p167j33nvb3r958+ZThlfaPffAgQOsW7fupCfi79u3j3Xr1rUNWZyO3t7etsvbneTf19fHtm3bWLdu3SnDKotZT08PBw8enLI8D8ts2bKlbWCmXC6zZ8+eacfW5s2b2b59+xnv37kYv600huanTZs2TVnW09PDvffeS39//xld2tGcNr35PmfI3CiVSm3fj02bNp30MzBd0LKnp2dWQWeRXHy+d0BERERERERERE4oTF5gJt+sV7lFITTvjBptYR4PBLABB7zs8sv4lTfdzgMPP8LRZ58jc55lhZhuGxEaLXlEMSE4vIM4JAQMIViCjUiNw5kIawPWQxxHBOchGAwGG+p7G0LAGU8lgDUGGvsRfL3BzPmAs5aaMVSShFHg6OgoL1RrrO19LVfd8MtEncvAJvWGPgs2BKxt1tW1hO2ixhKYUGG3gINak9vcWkNneTvcTOSP894DE0NslUqFOI5ZtWoVURRNCMMVi0V++MMf0tPTw/j4OCEESqUSb3jDG3DO8fTTT3PzzTdTKBSoVqvNAB3QvJ6/BmstWZYRRdGEUJ+CdCIiIiIiIiIiIiIiF4ZyucyWLVsolUr09vaycuVKBgYGOHDgwEkDGL29vTM6GX7jxo2USqUpQZW+vj42bdpEqVRqXgYGBujv759xw9Fsbdy4ccqJ/wcOHGDFihXceOON0wZqDh06xMaNG8/KPs13vb297N+/v22Aad++fezbt4+enh5KpRIrV648aSgJ6u/B3r1752z/zvb4nUxjaH7Ztm1b2+NdLpe56qqrznj9g4ODU5rYNKed3HyfMxaDTZs2cejQoWnvbzf37dq166TBzrvuuovdu3fPeB927tzJvn37prx3mzZtYvPmzbznPe9pzsn9/f3s3r172u23azwUmQmF60RERERERERE5gkzNUk3UR7CmhTGagabjCFzjhAChSTBk/H2O96B8Z4vfv4/8dKzz9IRJWQmkBmoZRnWOzq6unBZSuZ9PVxnwXiDxRNMIMFiQgB3IkRlAuAzgmnsqIEojnFpSprWIASMtTgPNeeoOaj6wKjLGI9jRmtVQmxZd9NNXHXNtWAtYJov7VRhrMktbQslujV5v2fy2JNpDba1u52H84rFIsYYXnjhBarVajPwVigUMMZw4MABCoUC1lqKxSLWWgCq1SpJkmCtpVqtMjAwQHd3N8ePH6ezs5NKpVIfb4V60DIP9nnviaKo7f6KiIiIiIiIiIiIiMjis3fvXnbs2NEMfZwq4NCqVCpx8ODBGZ8Mv3PnzrZtSjPdbrsAyenYsmVL2/WUy+WTrn///v0XdDBq48aNHD58mA0bNrQNbZTL5RmFh7Zu3Tqr8MbJnMvx20pjaP7o7++fsxa42dKcdnLzcc5YTAYGBk6rffBkzxkYGJj1+g4fPsy6deumjPc8RDkTu3fvnlWDqEgre753QERERERERERETl8epAoh4EPA2Ig4TggeTBSz4qKLeNsd7+Cm17+OapYyWqtQcSnjWUrc2cFYrcrg6AhVH0iDJ2tcasFR9Rk1l1Hzjpr31LzHBXAeUudJXUbqHFljeWWsQpZ5jInxGMZrKWNplcwYUmsYD44ssgyMjFAJnpvf9Kvc8ubbWLpqJVg7JUw2OTSWB7NO1vQ234QQ2obkpgvOzfa1TD5G+c/8epZleO8xxpCmKUuXLiVJEqDeMler1Vi2bBljY2MsXbqUJUuWNO/PQ3lRFOGcI0kSisUiIyMjxHE8Yd21Wq3ZUgf1cF0etJvuGIiIiIiIiIiIiIiIyOJRKpU4fPgw27dvn9Xztm7dypEjR2YVTNq8efOstwP1fdy7dy/79++f9XPb2bp1K6VSaVbb3717Nzt37pyT7S9kvb29PPnkk2zdunXWzy2VSuzfv39OQzLncvxOfr7G0PxwOuGiuaI57dTm25whc6+np4cjR46cdlBz//79pzU+RHIK14mIiIiIiIiILBB5aGq6AJbBENmILHNUazUCgWAMK17+cu64805es24dx0fHOD4+hjOGo4ODmEKREMWk1lDFMx4cFZ9RCY5q8FRNoOpdI2znqIb6pYanGuqBu6p3VLOMzHsqtRqVWo2aD41QnWXEO8q1GqPeMeQyhlzGZddcw9v+z3dx9S+/hlBIoM3rms+huZmY3CCXt8i1hgSnC521e267S25y8DD/GUVRPXjpPXEcMzY2RpZlxHGMc44oihgaGuJ73/se4+PjzefmITmANE3x3mOtJU1TarUaWZaRZRlJkhBCIIqi5nPy9cZxPP1YXeDvrYiIiIiIiIiIiIiItLdz506OHDnC1q1bTxo42rhx4xmFHXbu3Mnu3btPGWoqlUps3bqVw4cPc+TIkTlvtDl8+DC9vb3T3t/T08PmzZvZv39/87hIXU9PD7t3757ReIH6mMkff7Zass7V+G2lMSSgOW0m5uOcIXMvn1tnGvTMQ856j+VMGf3WaJH5wxhzPfBIfvuRRx7h+uuvP497JCIiIiIiIvPZ5CBV/jMPLjnnMIANARMC/+9f/zV7/t2/4+kjT9Dh4aKlS+myMSbL6CgWWG4jTAgkNiKODDGBJIpIjAHvSazFNP5TUmtIzIcAAQKWLHNgDc5CzWWMe0+FwHgIDGUpL4yMcPn1r+Y3PvQhbn7zm+lcsQKPwXAibHWq4NV0jXbzyeT3BKa+rvw+26a1L78/D7rlwbzpGGPabrP1Pu89//W//ld27NjBz372M0IIxHFMrVbjla98Jffffz9XX301URQ1m+4A+vv7eeyxx3jHO97BsWPH+MAHPsD3vvc9KpUKUP9LjE9+8pN85jOfwXtPlmX89//+37nnnns4fvw4xhicc/zKr/wKf/zHf8zb3va2efmeiYiIiIiIiIiIyOKSZRlPPPHEhGWvetWriOP4PO2RyOJx1VVX0d/fP2HZdIGMvr4++vv76e/vp6enh1KpxI033njaTV/tHDhwgP7+fsrlMj09PaxcuZJSqXTSgMhc6+vr49ChQ819KJVKzYvMXD5eBgYGKJfLlEolenp65nTMzLfx27otjSEBzWmzcS7mDDl/9u3bx/79+zl06FDzM5F/FtavXz+jkOVCNF/+PebRRx/lhhtuaF10Qwjh0XO6E+eQ/i1RRERERERERGSBmtL0hiEEDyHgQ8BYizWNZQRu3fBmKpVx9n7pS/zjj3/MwNgY1bhAd0cHzgcin2JDoBBDwVgsgTh4kijCekdG1IzB2WAIBgjgCRhv8NZQ856AwQVDxdWb7yohMFAZ44WRYS675lp+/YMf5JYNG4mWdOGNxYVAZMBOCthN90uhFmowqzUgN7mZrt2y1ra7yfe3yo/V5Ha8yQ131lruvPNOHn/8cf79v//3jI2NNcN7v/jFL/if//N/8i/+xb9g+fLlhBBIkoS///u/50/+5E8oFAq85S1vYfXq1Xz2s5/ljjvu4KmnngKgWq3y8MMP8/jjj3PVVVfx/PPP8/DDDzM2NtY2/LhQ3z8REREREREREREREZm93t7esx4ImQ9tNefidV4I5ttxPJf7M99eu5w/mtNmbqHsp5yezZs3z3k7o8h0FK4TEREREREREVngJoSvAmAMxtR/egM0QnddK5Zz+1s3sXxpN1/6/H/ixw8dIvOBmvcs6+5mOKsRY3EGXPAE74h8oBDXw2+xd0TG1gNT3uM5sT1r6s8bcxk+GJw1jAdHJXMMpymj3nHdjev49Q98kJtuu52kuxsfRbgANNbJNOGxdq91PpncGDjdcu893vvmMmttc3lriK51PTNp8ZuuuTAPtmVZRhRFACRJwpvf/Ga+853v0NfXh/e+2Sz3r//1vyZNU6688krK5TJjY2McPnyYVatW8YlPfIIkSTDGcNlll/H2t7+dL33pS4yOjlKpVDh48CBRFLFx40Yeeugh/vqv/5osy+bl+yUiIiIiIiIiIiIiIiIiIiIiklO4TkRERERERERkkTAGjLWNvJshUM++BQNgwUB3Tw+33P5mli1bzlf/2//D/7r/2zx7bIBKCKzuKlLznlpaozOJ8VlGwUTYJKFWSzHBY6mHw+IoqoeyvIMANjKMpik+smRAzXuGKhWOjYyQdHXx+ttv59d/8ze55jWvobhsGZ568Ms29pNT5+qAie1vrctg/gTv8jBba+jROddclr+GfL+990RRhHOuGbhr1/iWB+HyMJy1FmvthMBeCAHvffO+1rY77z1JknDLLbfwu7/7u3zjG9/gpz/9KT/+8Y+pVqscPXqUP//zP2fJkiV0d3fz8pe/nI0bN/K+972PSy+9tBnk6+zsbIbtvvCFLzA8PMzo6Cjf+MY3ePjhh7n22mu5+uqrGRoaIk3TKaHBfP9a922+vHciIiIiIiIiIiIiIiIiIiIicmFRuE5EREREREREZJExxkAjq2QI+EY7XLVWJbERhaVL+KUb13HJlSXWXn8DB++/n0M/fIix44OsWrECC4ymMUs7l1CppYyPjpNYS2TABvAhYBpBL+/qrWs29oyYCE9geGyU4fFxCt2dXP7q61h38+t5x7t/jauuW4vt6AAbQSOoZQgYYzFMDVi13g4zaLU7X/KwXGvgDSaG7KIoIk1T4jhuPjaOY5xzPP3003zta1+jo6ODrq4usixrhs9CCERRRLVa5bbbbuNVr3pVcz1wIqjmnKO/v58nn3yStWvXcvHFFxPHMdba5mNbW+ze+ta3ctNNN/Hss8+ya9cuQgh0dHRQqVSo1Wrcdddd3HjjjaxcuZKLL764GdoDiKKIK6+8knvuuYfOzk4eeeSR5nZuvPFG7rzzTh544AE++clPUi6XsdZObFfkROOeQnUiIiIiIiIiIiIiIiIiIsf/3VoAACAASURBVCIicj4pXCciIiIiIiIismg1Gt2oh5mSJCGr1TA2odDZxcWXdHHX+97Pmza8mX1f2cf3v/0t+p/4GS7N6OroYLhWIzaWnu6luCimWhknMSea8QqFBBtbKrUq1WqNY2mV0dFRil2dXPnq63jVdWt52x3v5Ib16+nqXoItxAQsgUDAQCNoZQ3NMOCpTA5ptWt4O9em237r8vHxcTo7O5u3v/e97/GjH/2IK664gq9//et885vfxDlXf48aAbg8OJc3261du5b3v//9FAoFvPdce+213HTTTXjvGRgY4Etf+hLf//73+fSnP82ll14KnAj45fKgXRRFdHd3s3r1av7jf/yP9RZBaxkdHaWjo4OlS5fS2dlJCGFCmK+1He/yyy9n+/btjI6ONgN+PT09zX0fGxsDTgTpvPfNgN7k4zPf2gdFRERERERERERERERERERE5MKgcJ2IiIiIiIiIyGJiIA/V1fNKgTy7FkIgiiOcc5g4xgAdPcu4fFk39/zfv8NbNt7ON7/+DZ74x5/y9D/9E7XKOC8ODvLz54/SWexg+dIlZI12tshaqtUqQ8NDRHFMz8qV0L2EV7/6em5+w+t5/a1v5JVXXsHLXrEGayzBGAIG5xuBOtsIxYXmjnKqbrrJwbr8+vkKZE1u08sb6/L9aQ21dXV14b3n29/+NpVKhT/8wz/kqaeeolqtUqvVCCE02+x6e3spFAqMjIzQ1dVFtVqls7OTsbEx7rvvPiqVCt57Xv/61/Pbv/3bXHTRRfzv//2/+fKXv8zq1aubrXd5i54xBu89tVqNOI6J4xjvPc45CoUCq1atIooiarUaq1atIk1TkiQhhNB8zuRjbK0lyzKWL1/O8uXLJ7wP1WqVrq4uuru7GRwcnPK8yaE6hexERERERERERERERERERERE5HxRuE5EREREREREZFE5EfgyeXNdI7CUuUAUxdjEUqvVsKYekjNJTCEp8Eu3vpEbbryRkZERHn/0UZ57+mkOP3SIh//+xwwNDlKpVEjiGO8zXAh0rerh0lWv5uJXvIKXr17N6269lU1vfRsmiTFRDNZCMGDA2HpjXRSZibtaT/01dnjhBKryEFgeDvPeN1v0vPf1IGMUUa1WieMYay1f/epX+djHPka5XG4G16IoIooiQgi89rWv5eqrr+ZP//RPueSSS8iyrNkY573n+eef54tf/CJ/9Vd/xYsvvsjf/u3f8t3vfre5PYBLLrmEKIom7EfegNfR0dFcVxRFzTBgFEWMjo7S1dUFQJIk1Go1CoUCSZJMCOvlz7fWEsdxMxSYt9XlQcE0TalWq83WutZgZGsoUSE6ERERERERERERERERERERETmfFK4TEREREREREVksmjml0LxhoBlay0NXIQQKhQIAzjlcWiMpFDBRhOlewtLODtbffjtgeOedW6hVx3nkJ//As889TbFYJMsyjDGseeUarr7qVXT3LMM7T1RICCaqb89GLftlGgV1prmLITQa9UxjL0/caKs1pJW/hvqqz384yzXa/PJQWZIkzf1yzvGTn/yEJ554go997GMMDg7ivQfqITbnHMVikd/8zd9kx44dWGvp6upqvkf5sY7jmDVr1vDpT3+aD3/4w/yP//E/2LFjB88888yUUJ+1thmAy6+3BuDyx7fq6uqasCwfH5Pb+PJlrWG7PBxojKFYLFKpVJrrGBoaau5Ha5Pe5NY/Be5ERERERERERERERERERERE5HxQuE5EREREREREZNFpBOsmhZQia2jNNHkPNoowUUwI4BsZtwyIjcEaAx1Fiks6WfeGN3BjbAg+4L3DxhFYAwF8cNiOpJ7pCxC8r7flGYPz9ba6xs16l15o3c0AJgB2Rq+sNWDXuqzd650r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7dq1Sy+99JJ+/OMfK51Oy3EcBYPBbBitrq5OqVRK69evVzqdznaOy+2CN1vALve+XLld6/xCeY7jyHEcmaapl19+Wa+//roMw5BpmtnxuaRSKTU3N2vDhg3Z5xoIBKbVBQAAAAAAAAAAAAAAAFQrwnUAAAAAAADAInnhMsdxdPXVV+uXf/mX9bOf/UxjY2MKBAKamppSQ0NDNuRmGIaOHz+ucDispqambMCukHP4HecF6k6ePKk33nhD69evVygUys5r23Y2QHf//ffrO9/5jqamprJd6OZz/vx53XzzzfrLv/zLbEc813VlWXysCAAAAAAAAAAAAAAAgOrHVTAAAAAAAADAHHI7y/mNe13gJOmee+7R0aNHNTw8LMdxZFmWpqamsmE0wzDU29urK664Qtdff312Di94N7MTnWma2S50hmFku83ldrg7d+6cHnzwQY2MjOiee+7R9ddfP61jnTf3888/r//8z//U+fPns7WYpql0Op392TunbdvZx7/1rW/N1hAMBuU4TvY4AAAAAAAAAAAAAAAAoJpxBQwAAAAAAACygSssnG3b2VDce97zHt18881as2aN0um0LMvKhtAcx1EgENBPf/pTPfLII0qlUjIMQ+l0WqZpyjCMaUE+L7Dnx3VdOY6j06dP6+DBg/r7v/97HT16VBMTE9n7PV5wrqGhIXtfIBDIBvACgUB2Pq8GwzBUV1en5uZmvf/975dlWdPCfYV0vQMAAAAAAAAAAAAAAAAqHZ3rAAAAAAAAVriTJ09qz549amtr0w033EBwaobZXg8viBYIBGQYhlKplCzL0mc/+1mNj4+rt7dXU1NTkpTtBmfbtlatWqX77rtPzc3N+oM/+AM1NDQolUqprq5OkpRMJrOd7qQ3g3Ret7ipqSnV19drbGxMe/fu1d/+7d/q1Vdf1a233qr169dnw3petzkvDOeNr1q1Su94xzuUTqez9du2rbq6Ormuq7e85S16/vnnNT4+ro997GP68pe/LNu2pz0PL5xH9zoAAAAAAAAAAAAAAABUM8J1AAAAAAAAK9ipU6f0wAMP6Pz583r88cdl27ZuvPFGAnYL4HV/88Jx69at0+///u9r/fr1+tKXvqQLFy5kA2mmaWpiYkIXLlzQ3/3d3+n1119Xb2+vGhoaZNu2LMtSMBjMzu11v/PeD9d1FQwGderUKd1///36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/CZ88IOLPuRJr7u78PITNVw345xzZgO9ngeTk5BO+0HN1taV+W8LEREREREREZGV4K677prXolQu4DBXT08P9913X8U3w+/cuZNt27YVXFfJcQsFSGqxbdu2guOMjo6WHL9UE8/JYMuWLezbt493v/vdBQNro6OjFYWHtm/fzg033FCXOTXz/J1L59Dy0dvbWzSs02i6ppW2HK8ZUn/79u1j8+bNC873mRBlJW644YaqGkRF5jKX8uCe5x0BXpz5cM5bA9hccCcRERERERE5qS1F205RY4dgYrDgqoNTfRxKDpcdP/xMHEy/kmU8tRbXK/13cMJ2BMu0Sm4znew79r5hO2AU/vE/YASLrTqm2nCd0YS7lROJBJ7nld9QFu3LX4b162vf3zJydEeOcFbnc7x2zROct34f565+klPbXiLiTBXdb2AAfv3X4f3vhxdfLLrZshYLlf+bVh4wkcqW3U6knjwPGvTHLIvat88/7oK5uC654WGSTzzJxJ49xL91K/Gbb2biBz8gdeAAuaFBBeuWgdzQ0KL2z2b9NtRLLikfrDv/fHj8cQXr6qWrq/DyEz1cN5dhQDTqBw2jUQXrREREREREREQaqaenh3379nHNNddUtd/27ds5ePBgVcGkrVu3Vn0c8Od41113sXv37qr3LWT79u309PRUdfwbbriBnTt31uX4K9mmTZt4/vnn2b59e9X79vT0sHv37rqGZJp5/h6/v86h5aFUM2Gj6ZpW3nK7Zkj9tbe3c/DgwZqDmrt3767p/BCZsaThuqMeww/TMectwCrDMDYuwXxERERERERkGVs2bTsTgzB2uOCqgVScpydeKju2k8jhjKQAyOaDTKRWldw+ZIVxrNKBHdfNMZ2auQnewAg4RbcNB0Jlw3ABbAKNLr6v8ibnbDbLxETpRkCpj64uuOce6OiofB/HzLCmZZBXr3qa8zfs56zOg3RHRmhxpnHMHK2BKc5c1c+bzniSV3X/nFhwrOhYd98Nr341fPazkMvV4RNqItsyaQmWf+6kcy6pbL4JMxLxTUxAItHcYyYSfnOUm0qRefFFpn7yKGPf+x4j3/gGo7t2MfXfD5N+9lncifHmTkwqkhsu/8cCinnpJXj72+H668tv+8d/DP/933DG4kvy5KiTtblORERERERERESW1s6dOzl48CDbt28vGTjasmXLosIOO3fu5IYbbigbaurp6WH79u3s27ePgwcP1r3RZt++fWzatKno+vb2drZu3cru3buPfV3E197ezg033FDR+QL+OTOzfaNaspp1/s6lc0hA17RKLMdrhtTfzLW10qDnTMhZ32NZLGOp/9K7YRjXAP8vs411c99u9TzvO0s4vbIMw/g+8B5mm/cMwPM8r3SNgEgBhmG8Bnhy5uMnn3yS17zmNUs4IxERERGR5cXz/LBPM0MBHR1+y8q8DNrUCIw8V3D7sewUP4o/Ra5c044dJvbw85iTSQCGJ84glY0V3dwxA0SccNn5Tk33cWT0ZwCYgSDYxcM9p3aewln5c8uO+QPnSUaMybLb1dxaZ1W/35VXXsnpp59e2/Gkak88ARdfDH19hdeH7CSd4QRd4TitgeKNdACruuFzn4f2dvjiF2HPHpjMtHB4Yj3xZAfF0pZveAPceCOcd94iP5km8jyPkakMebf0798MA7pbgpim6nSk8Z54Al772uYcq81MsM4ZYI09wM2fH8RMjpN1TXKuSd71z3fb9LBNF8t0sU0Py3TRU2H56fiN38CKFf93SiH//u/wW79V/t9tHR3wL//it5VKff3lX8Lf/M3C5W99Kzz0UPPnIyIiIiIiItJsuVyOZ599dt6ys846C7vE/52ISGXOPPNMent75y0rFsjYv38/vb299Pb20t7eTk9PD+edd17NTV+F7Nmzh97eXkZHR2lvb6ezs5Oenp6SAZF6279/P3v37j02h56enmMPqdzM+RKPxxkdHaWnp4f29va6njPL7fydeyydQwK6plWjGdcMWTq7du1i9+7d7N2799hzYua5cP7551cUslyJlsvPMU899RTnnHPO3EXneJ73VFMn0UTL4afEvSXWnQcs63CdiIiIiIiINM9Stu1Eo0cXpMYgfrDgtql8hr2jz5QP1jkRQi8ljwXrkployWCdZdhE7PLBOoCppJ9+MkyrZLAuGLYJWSGooDAr6oUqCtc1UyKRULiuic49Fw4cgI9/HG67zV/W4kz6gbpInLCdqmiciy6CP/ojaDt6un/6U/De98JnPjNF68CzJHMh+ibWMTzVjYc5b9/HH4df/mW4+mr467+e85xcxgzDIBqyGZ3OltzO82AinaMtXLxpUqRW4+Pw4IOwe7cfZn366cYcxybLanuINc4ga+1+NkSO0NrqEmhxcFocnjzogFmk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cG30okkRsBsUqi4itriGonNrCFVEczJHXx888kgQtHv6afBGb3o4JseBq68Ognaf+AQUp2VXrYXubhgYgGgUSksz70gpIiIiIiIiIiIiIiKnn9MtXDc1Vyxlsrswbf/1DO95I23/qizWIiIiIiIiIiIiIiIio3BDDudcGrS7ciurcIqLMQZi4VhwgeMGXejIPIxzNIPne2AtPj79yaAjW/LgQWwyQV9nnJ1bDmfxSfIrVpoGC+kAACAASURBVFrGFbf/B+rOWjT2hQa63SPsjL5DY+w19od3khglOOdgaPCnc33iPC5MzifG5AmZTYS19rhtLIf8Izw18DoDNpGnCk8s2dZP14t7OfTDLbTe9w69mw7i9yWzOkcsBp/9LDz+OOzZA//0T/ChD41/HN8Pwnm33gq1tfCFL8BvfhOcNwbKymDatOCngnUiIiIiIiIiIiIiIiLHKFwnubA8bX97hvd8kLZ/URZrERERERERERERERGRMVTOLKb+7EoMEK6tA+MQckKEnUhwgROCVM+1TDM5QZc7e7TrXdwfIOl74PskWloA2N3USldbf3YfJo9CkQiXfeZWzrjg4oyuT5o4LeFdNBa9xvZIE11O+4jXuTic7dfy8fj5fMibS5RQNssuqBMF7g75R3hyYMOkCtgNiu/t5sivdnHw+5to/8X79G9rwyb9rM5RWwt/8RewcSNs2QJ/9VdQVzf+cbq64Cc/gY98BBYsgG9/G7Zty2qpIiIiIiIiIiIiIiIipwyF6ySnrLUbM7y0I22/Mhe1ABhjKo0xVxljvmGM+aIxRl3yREREREREREREROS0d+byGUSLQ5hIhNC0aQDEQjEMTtDmynGB8XW8shawftA6C+hL9gV5u+5uvM5OrIV3XtmP9cfuaDaZOY7Lhz52A0uvvDbzmwwcCR3md0VbeLvodQ6G9uCZ47uhhXA5x6vn4/HzWebNJoybxconj+FBu8N+J08MbKDfxgtc2cisb+l/v4P2hz/g4P/exJGndjCwuzPr3+OlS+Huu6G5+VhHulhs/OPs3g133gmLFsEll8D3vw+trVktVUREREREREREREREZEozw98IKXIyjDGVwNFXrVprM1pmN8bcBDyQOtxorb0gC7U8ANyUOvwScAbwjREu7QD+g7X2wZOdc9j8M4Dp47ztDODhwYPGxkYWL16czbJEREREREREREREREZ0eE8XW369B2st8Z07sQP9JLwEvclesICfAOtjSQXnMuAYAANuBAxE3SKKQlFwQ0QbGjCuyxnLZzBvSU3uHixPmpu2sP6XD2B9b9z3OtahypvB9OQsYn7piNcMkOAddz/vuS0kyW7HtMnGGEONU87HohdRZCKFLicjblmE2LnVFC2eRnjaBFJwGejqgp//HO65B55/PvN/h8OFw3DddXD77bBqFUSj2a1TRERERERERERERESmtqamJpYsWZJ+aom1tqlQ9eSawnWSVcaYBuCDweMJhuu2W2vPyEIt6eG6TPzIWvulk503bf7vAP/pZMZQuE5ERERERERERERE8qnxt3s5uLMTv7+f+M6dgKUn0UvSTwRJHi/oJmZtkLfLhGMA44IbAgyl4VJcx8EtryBcX4/jGlZ8vIHi8qkRohrLod07efln95Lo753YABaK/XKmJ+up8qYHnQOH6SPO2+4+fucexDuFQ3bGGKqdMlZFV0yZgN2g8IxiYufWUHRONW5ZbmrfvRvuuw/WrIF33534ONXVcMstQdBuxYrxdacUEREREREREREREZFT0+kWrjt+RU7k5FRO8L6OtP3qbBQyih8BF6RCf2ekjgd90RhzVw7nFhERERERERERERGZ1M6+aCahqItTVESoJvjv+lgohsEEqRsnBIwvgGMtYD2wPmDpS3XC8zqP4PV043uWd1/dz6nwQsjpc+fzB3/0RYorqiY2gIFet5Nd0XdpjL3GvvB24qZ/yCUxIlzgzef6+Hmc6c8I/janIGstbX4Xjw9soM/GC13OuCQO9tL5m2YO/vNm2n62jd6th/EHxt/RcCxz58I3vwlvvw0bNsBXvgI1E2gA2dYGP/gBXHIJLFoEd94Ju3ZltVQREREREREREREREZFJTeE6ybZsBOMmGtA7kZuttV+y1m4EsNZuT3Wquzvtmm8YY5bnaH4RERERERERERERkUktEgtx9kUzAXCnTcOEIzjGUBSKBRcYF1JhrkwDdkcjc14yCNVZj4FUB7zk/has79NxoJd973eMOsZUUj5tBld+4U+pqpt9UuMkTYID4WaaitbzQXQrnW7bkN+XEGVFsoHr4+cx3592SkbsrLW0+1080b+ePjtQ6HImZGBXJ0ee3MHB779FxyMf0P+7DqyXvSCpMXDRRfC//hfs2wcPPwyf/jREJtAw7733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pemFunq93vm7qKqq69/j1PEXul4/p1ACAAAAAIufch0AAAAAAAAAi8LFF1+c733ve3n22WeTyXaJp5TkABbsZhR/SjqT8w477LBs2LAhxx577AG7N/Tb7MJcKSXNZrPzd9FsNlOr1TrvZ5ftptamjk2ZnJxMrVZLrVbrvJ9+L4U7AAAAAGC+1F78IwAAAAAAAAAw+EZHR7Nu3brWTrvkduAqOOX50+pqrbLQBRdckPe85z2KdSx6U5PqZk+km5paN3196u+llDKjZDc16W52SW9v9+t2724ZAAAAAAD2hcl1AAAAAAAAACwaJ5xwQk488cTceeedrWZd9fzpWi9dSaf7M21a3Zo1a7J+/foceeSR83gvGAzTC3FTr9NLc9Onyk1NqavVamk2m3nmmWfy5JNPZseOHanVaqnX651z6/V6JicnU1VVRkZGsnr16ixbtiyTk5Op1+up1+tJkvHx8QwNDc2494tlBQAAAAB4Mcp1AAAAAAAAACwql156ae6///7s2LEjmdxT+HnpBbupyVvt3VpJSjI0NJQLL7wwZ511Vmq12ku8BwymF5oQN/X3NTk5mUajkeeeey7PPfdcHn300TzwwAN54oknsmvXruzYsSONRqNTkqvVahkaGsru3bszMTGR0dHRLF++PKtXr87RRx+dY445JsuXL08pJY1GI7t3706j0XjByXaKdQAAAADA/lCuAwAAAAAAAGBRWbZsWS655JL89V//dasA15yPqXVl6v9mTKt75StfmfXr1+fQQw+dh3vA4JpdriuldIpszWYzVVWlVqvl4Ycfzl133ZX77rsvjzzySLZu3ZpSSsbGxjIyMpKRkZFMTEykVqullJLx8fFUVZWJiYns3LkzjzzySHbu3Jkjjzwya9euzZo1a3LMMcdk1apVzyuvTi/6KdUBAAAAAHOhXAcAAAAAAADAonPKKafk9ttvz/33398qw1VznV5XMqOz055WNzY2lksuuSSnnHKKUg8Hhdn/fz61X1VVms1mdu/enVtvvTW33HJL7r///s4kutWrV2dsbCyjo6MZGhrqTKFrNBqdSXNTk+x27NiRer2e3bt357nnnsutt96a++67L0cccUROOOGEHH/88VmyZEnPf3YAAAAAYPFSrgMAAAAAAABg0SmlZP369fnsZz+b3bt3J5P7P71uRplo2rS6E088MZdeemmW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zg3rdEcX5/LinXPu0ALh+PJ4ka5tW2azGTFGptMpk8kE59ywoBdCYLlccnBwwGKxGBbs8u8kB5bQr9vl9x7/Ft6JzruIiIiIiIiIiIiMKa4TERERERERERERERERERGRO+ZogHU0ZhrHbjFGZrMZFy5c4NVXX+X69evMZrPhOZcvX2Y2m1GWJdvb2+zu7g6rdidPnmR3d5fd3V1OnjzJ5ubmoQW0232efP12n+fo0t6/pQjrnQLCsbz6liO2o9+3LEtCCHzzm9/ki1/8IvP5nK2tLaqqoixLrLXDumCMka7rhuU5Ywzee8qyHGK6/LjxX14WbNuWlBJN07BYLIaAL8d13nuWyyXL5XKI50IIh9YK8+Pyd8n3HV0zFBEREREREREREXk3iutERERERERERERERERERETkjkopYa3Fe4+1dlg2y/Fb27ZcuXKF8+fPc+HCBd544w0uXrxISon19XXquqaua4qi4MSJE0O8tb+/T4yR5XLJ66+/Ptx/3333cerUKdbX11lfX2d3d3eIwfLnAYbY73YBVr7tdlHde4nX3um5P43GQdo4THv22Wf56le/yvnz59ne3qau6yHGA4bzN47YQgg0TcN0Oh1W53Jcl895Pu75cg7luq6j6zrath3eJ6WE935Yq8t/3vvhPXNslz970zR476nr+j2fKxERERERERERERFQXCciIiIiIiIiIiIiIiIiIiJ3UA628sJcDs5yWHX16lW+//3vc+7cOd566y1SStR1zc7ODlVVDVHd+vo61lrquibGSNu2Q7DVNA3L5ZKUEjdv3uTpp5+mKArW1tbY3t7mzJkzHD9+nBMnTrC1tfW2qMs597bPnUOtf4t+XNSXv1eO0/JxHIdz586d4w//8A85d+4cOzs7TCaTIYjLsWQ+bjl4izHivadtW+q6PnR7vtx13fAZxyHfeAUvf678WfJr5ABv/Fo55hvf1jTNEOjl9/txx+LfSggpIiIiIiIiIiIiP1mK60REREREREREREREREREROSOsdYSQgCgKArm8zmTyYT5fM6LL77IuXPn+MEPfsDBwQFbW1scO3aMyWQyLNZVVYVzbgi/8vUcxrVty3Q6BWC5XLJcLofA6+bNm+zt7fHyyy+zubnJBz7wAU6cOMHu7i6nT59mY2NjCMWOGgdo4yjwdt5rmPXTsniXF+Gcc8N3y39d17G/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4r1nuVwCfXCVg6gcNmX59nH0Ng7sckT1bnFdjPHQ88YBWH7ueKXu6PMzYwwGA6agLB1FMlgT8F0DJlHXhlhF2njAnOu05U1CPSe5joQHAy456MCGiK0twSdigrKq8T7i2466KkkhErtEqgPV1FJvWaI3dMtIu2zplg0Hszk3rl7kjZsvExaGjXqXxz74UXbWj/PBex/m/jMPcOHCBf7X3/9f+P4zT1OWhsl0irEeUyaMi8P5GY7tKKpzzg3H7nbB4W1+AflIvWuUZ60B7BDNDX+rkC7ESIxpFdql1dphhzGGruvY3t7mVz73Oe66665+bc8b6qqEI6ElQAhhOO/5u3Zdx3Q65dixY1y6dInXX3+dlBI/93M/x5kzZ1hbWyOEMDw+Xy7L8h1/+yIiIiIiIiIiIvL+orhORERERERERERERERERERE/lVuF1Str6/z4IMP8vzzz3NwcMB0OqXrOqy1lGU5XM4R1Hh1LMd140Bq/JfDu/Hi3btFdvn1c9xlrR3W1WKMb1u6y9/JGAPGEg0UpiBFjzWWsiyweExlOKBlGffxboEpPaYKuNKQgiGEiMFQGEcREjFETGFIydJ5cIXDFkW/6hYTtowQAslHom+hi5RVotq0xFDQLUpiC37REAvD5euv89Tzc/Al319/iofPfoiXXniF7z33JLY0FNOSsk640mJthBSxxlIUDrCHI8OYbnss3+kcj6/mdnEcK/YrdHF1Xm+d4xjjarmuD+rC6npKt+4PIZAi3Ni7wXRtyq/8yq9w77330rYtKSXqugZjAXPo95OX7PL3yJHcdDodXvvYsWMAXLhwgYODAx5//HEefPBBptPpsF6XfzshhEMreCIiIiIiIiIiIvL+pbhORERERERERERERERERERE/kWOBljj27e3t/nkJz/Jj370I2azGWtra9R1jXOOruvetlyXXyeHczmSyqHU+PHe+7et371THJdvHy/U5dDKWksiEVPCpoQxt55nrMViMSbhosdEi4n9e3bJwwTiRstec4m94k2W1TVCvSDaDmMDLhis75+DBawBk7CrzxdduhWldQFjDckZUjRQWEwAVxmIAIbkI8WkxVLQLjyTrmC6W2OXHj+DF/75Wb7y//7fxGXCTDwba2tgEsG2RGMx1uHweOcxhaGgwODARCym/3wJrM0xmQFjMNDXc9FgMSQTSCZh6OO2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JElCoVBg77335kMf+hBHHnkkrutSqVSIosiG7MzN7Fc+TBdF0bAQXuttZ+12+eySYvj7opSL63p4no/ruY3wg4vnu/Wvjfvjxo8jzVJ+d/8DbN6yFafRdJem1INhOLYrr6U4r5Hmaw5fvmU0ONppuqmmG7Y5Ln+zLXI0GuSUaZHL0E3/1Sl7MLJGvC4FlTaCbI2bo9EqI1P14B1OvU1Oq4yhRF29m65+axxOG8LL71hr+E01BfKUfV43FjNNk/lgngkKJvUbCZDVx61MB1861OanXk/rXP4DIsQby4TG8q2jJiiepinHHXccl112GWeffTYdHR3DQlv58HkURSxdupTf//73dn35wDcMb6PbHb7v21C1CbKb+fbkk0/mgx/8IPvss8+wllnP8+y+LViwgKefftrOMVprXnzxRW666SbWrVvHueeey5lnntk075v9M/PiWOXb/szvH1mWEYYht956K48++mhTGN+E5mq1WtPvDiZklySJHYsJ/MVxzB//+Eeef/75prD9azm+QgghhBBCCCGE+Msh4ToxJqr+zxT+TcvDV+jWfz6rhdb6QeCx3EMdwAV7eHhCCCGEEEIIIYQQQgghhBBCiDHKN9w4jmObXrIs41vf+hYbNmzglFNOYcaMGbiu23SbOHEiF110EaeeeipBENgL233fx/M8G0irVCo89NBDrFy50l7wb55rDRKYi+thqMHOhBIefPBBVqxYYYNzZuymWQdourB/77335rzzzuOiiy5qauHxfZ+LL76Yv/7rvyZNUxvAcxyHnp4eHnvsMV5++WUbFDAX9TuOY5tzXNe1F/2XSiUGBwfthfu+79tQW19fH7fffjv33Xcf1WrVvm4s74s5znPmzOGcc85h3333JYoiwjAkDENqtRphGDaF6PKtffkAYGuIrjVI1xSqs4MAlMZkEOqBBPPVwWnclFL17x0H13XwPAfPc/F9l6Dg09bexrjx43nuuaX8ccET9O6oggbP86lfpqBy22s6CCM8+NZRKBzdfGsN0jWF6WyorjF+m54zD428X8qUxDkK1Rq/a7wnWeOmG813mZPZFjxI6+9bo4HOAZTWOFrXM3gMhSXze9cyuHrzHabFMrM3m7HDIdMOmTavrW+zOVjXCNs1hekacb96Vd9reifeLp8J8edPa00URfa8aeYvc64HOPTQQznxxBPp7Oy0rzHn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CtKl1tgYIydPnmQymXDkyJG5dS6G/EREREREREREPkwUrhMRERERERERERERERERkbclnbifmuGKoqDf73PnnXdy8cUXM51Oee211wDathxoAguj0ag9iT+16qSwwGIrTwrApeBcv98/rXkuhRXSPiwtLbGyssLq6iorKyvt/qUw3mLLXVpnuj0YDNrA3urqKmtra7z88ss88MADbeAiNetlWdaGAN9t3WNzJtNySuaytl0wpoSZc2TDAZdedRUf/+Sn2HfwELUxTGpPGQJT79kpK6bB42MkREOI4CPUs0tPCt0xC97tXvdEokk5us7+LeyqIYXpmpydnQ3XCdlZIDOWYZ6xVBQMrGX/ygrTrU3+8W//lp3RFrGcQvSnb8bMbikcIiLvUGpJTd/3WZYRY+SFF17gJz/5CVtbWxw9epQ8z5lMJsQY23nDOdfOM4sBusXQXPqu7IbqFsPT3ed1nWku6M4T6f4QAtPplLquqaqKV155hTzPue666+j3+2c8BouteSIiIiIiIiIi/5kpXCciIiIiIiIiIiIiIiIiIm9L92T/1Dg3HA655ppruOeeexgOh2173WQywRhDWZaMx2OyLKMsS+q6bkN03ba6siyJMZJlGb1er239WWz2SS1Azjn6/T4rKytsbGywb98+Dhw4wMGDBzl06BAHDx5kY2OD4XDYhubS89LtFIBIoYgUuHPOsbGxQYyRp556au71Oufez7dgT/2i14TWOscrzkJwxMgFxy7gzs/cxUWXXsKrJ09yarTNNHgCUAwHVDFSh0gVPHUM1NFT+7pppAOqEKhj02bXNNmBMRZrZqceWEO0nTBGCmfMAhpN25yZC26k292QnTMRGzyFgRzoW8vAWu779j/xs5/8hKos2xxduoinZeoUsBORty+F0qy1cwG2H//4xzzzzDOEENrv2OFwyHA4bG+nptR0Pc013ca61MaanrPYcJfmuTdrrUsh77qu25Hu6y733lNVFZubm5w6dYper8fVV1/NTTfdNPdaFagTERERERERkQ8zhetERERERERERERERERERORtSUE4oA0BeO9ZXV3lzjvv5PbbbyeEwK9//WtijEwmE8qyxFo7Fwqoquq0QECMca7Fpxs0SGGDdL3X67G6utoG6vbt28fa2hrLy8tt6CG1z62trVEUxWnBhbS91GiXQnNp/YPBAO89J06c4Ic//GH7Wuu6bl//2SOSQmXGGKIBZmG3YAzROM49/3w+efvtHL3gAkxeUHpPGSKjaclOWVHTtNXVRLwxeGOpaZrrIrOmusista5pqwsp5BbjrDguzu1RN6oxH9uIGGIbrEtNdhZwGPpZjvGepdxRxIjfGfHET37KeGtE9HE3UWcgmIU4ndrrROQd8t5jjGE6nRJCYDwec++99/Lcc89x4MABhsMh/X5/rhk1tdWleSTGuOf8lcJr6XFnmuf2Crl1m11Ts173vm5Yva5rptMpZVlijMF7z9bWFvv27ePuu+9WiE5EREREREREpONs+lt+ERERERERERERERERERH5AEiBgG7ILi0/duwYn//85xkMBm0T3Wg0wlpLWZZsb28znU7bYF1d11RVdVqwLm2jGzjohuu6rXVLS0v0+33yPJ9r/rHW0uv1WFlZYXV1leXl5ba5LrUEddedRro/z3N6vR69Xo+nn36a733ve4QQ6Pf7bTCh+/rfTXNtb2cYmAgmLCbYZpVxBgyce94Rfvt37+bKa6/hxVdeZlxXeGcYh0DMc2qgioGagJ+F1uoIdYj4NgpnCCESYyDGQIiBsBBmi7PQG4Y9GpGaEGC7W53HWAw2GqIPrAwHFNZQGMNynrPe7/P4I4/w7z/7GdVkMgvXtZvBzBr2drchIvL2pABbjLENW99333383d/9Hevr66ysrLTzQnc+6TbTpXa67u0zjTcK13W/N7vBuhSiS9dTaP1MrXU7Ozvs7OwwnU7Zt28fF1100VnZvioiIiIiIiIi8n5RuE5ERA+hzh8AACAASURBVERERERERERERERERN621E6WTv7Psqxt6rn++uv56le/ymQyYTQaEWNkc3OTyWQyF0oLIbTNdcBcIGGv8Fs3OOecoyiKtkEoNQWlkEHat3Q5GAxYXl5mMBi0wT2gbRtK0j6k7Rtj6Pf7DAYDhsMh0+mUuq7b57xX4bq3znSumVn4zDRLTRNBO3jgEHf9zme46OKLmdY1mzs71DFQEfBEKgJVBB+hxlDHSG0iwcya64gEIqENoUCIprm+V6gtpejSPpimUK8Zs0AdpmmvMwZjwGIItSc3luWiz9pgSB7hyZ/8hJ8/9RST0QgTmpBenLXlNTdnAUMRkXcgzTHT6ZQsy3jttdf4i7/4C8qyJMuyNlDXbTvthuucc22T3Zna6bIsmwuB77X9xWa5buiv21DXHd2wXbcldjQasbm5ydraGldddRVVVQFnW/OqiIiIiIiIiMj7R39LIiIiIiIiIiIiIiIiIiIib0sK0XUb7KAJBcQYWV5e5stf/jKHDx/m1KlTjEajtpluMpkwnU5PCwTAbrCtG0ToBuTSZbqvKAp6vV77nO7+da+nBqLBYHBau91e611sDur1ejjnGI1GlGXZBhJCCKdt+/1k2j/pdmfM9tEHz/LqCrd84hPcedddjMuScV0z8TVljFQx4EOkDpGaZniaZroQd0N1IUKI4GkCd+0xj/MhkNkiIpHYabKb2+Nua52BzFr6vR6+qjExUE8n9JxlqddjvLXFs08/zXhzs9mBtNkIMTRNesQAKGAnIm9fCq/1ej2897z44ovcf//9lGXJ4cOH51pNi6Jo56Fum11RFHOhu27ILs0f3TlnsalucX7qhuoWG+wWR5pXUytsGjFGLrnkEm655Raste08frbMXyIiIiIiIiIi7yeF60RERERERERERERERERE5G3pnpCfQnZJun7OOedwzz33MBgM2N7epqqqtrmuLEvKsmyDdekk/8V179Xesxg8SIG+bqAOdgMS3ed315cCDd1gXwo/pHV1W+xGoxGPPfYY4/G4bclL21nc9lkjdgJ3prm0LiPr9Vjff4DbPn0H5553FOsck6qkjIEyeDxQA3UM+OBnobpZa12I+BiakB1NqK3dXDSzIB3dAr09jk/an+ZhNoKJs+vG7t5nLf08hxBwGAZZxupgifHWiGpnh5je39isyDqDsU2QT2dDiMg7kb73q6ritdde4+tf/zqbm5usr6+37af9fp9er0e/358L2KXrqd0uBfG6TXbdAF0Kci+OvVrruvPl4ug2wVZV1c6x0+mU0WjEaDTi4MGDXHPNNayurrZhv7N6/hIREREREREReQ/pr5NFREREREREREREREREROQdW2yJ6/rKV77CsWPHGI1GjMfj9mT/FBSo63quPaf7/BQw6Lb1JN3HL7b9dEN63YYgoG31Sfctrncv3XWOx+P2OSGEuXDeB8IsiBZqT7/f59obbuCzn/89JlXJznRCWVdz4TkfPHVoWutijIQYaO6JTYhuroVuJjbLA7PGuk4IsdkFgzHzx7XdPQzWGKxpWpWsMWQuY9DrU7iMUNZkxlKNJ5SjMaGqSQk/E3f3JcbdRjsRkbcj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JUmiVqul2dlZOef0wx/+UG9+85v1pS99SXfccYc6nY6MMVXQ5pxTkiTy3mvLli36wQ9+oB/96Ef68pe/rMsvv1wTExMaGhrSxz/+cb33ve9VmqZKkkRpmqooCuV5rs9//vO6/vrrtX37dmVZpjvuuEN/+Id/qDe+8Y36oz/6I/X19SnPc6VpqjRN9eUvf1m/+MUv9I53vENjY2OS5qI+a63KslQIQRdddJG+9a1v6e6779Ydd9yhH//4x7r33nv1/ve/vwr7xsfH9YY3vEEveMEL9Ld/+7d67LHHVJalvPdVrGeMqYI7AAAAAAAAADgQLNcBAAAAAAAAAAAAAAAcInsL6+rXhxDkvdfatWt144036sorr9QPfvADGWPUbrdljNF9992nK6+8UiMjI/rABz6gc889V8YYZVkma62azaa2b9+uT3/607ruuuvUaDSUpqmMMVq5cqU++MEP6kUvepEkaXx8XO973/u0ZcuWKmArikLbtm3T/fffr7vuukvvfe979a1vfUv9/f066aSTJM2tznnvlaapms2m8jzXtddeK2OMPv3pT2vbtm0qikLeezUaDfX392toaEhpmmrlypUqy1LOOb3lLW9Ro9HQNddco0ajUb3G97///Vq1apV++7d/W8PDw1VUF2O9JElUlqXSNP3lftMAAAAAAAAAPGsQ1wEAAAAAAAAAAAAAABym6st21lqlaap//ud/1vj4uD784Q/ry1/+skIIarfbyrJMO3fu1Fve8hYNDAxUa3UxWnPOqd1ua+nSpdUy3Mc+9jFt3LhRJ554otrttlqtln7v935PzWZTH/zgB7V161bNzMyoKAp95Stf0c033yzvvbZv366xsTG98pWv1Nvf/nZJkvde1tpqVS7Ge8PDw5KkTqejJEmqVT1jTBXkSZJzTt1uV41GQ29+85vlvddb3/pWJUlSXffzn/9c27Zt0+DgoJxzVVTnvVeWZWo2m4fmGwUAAAAAAADgGYm4DgAAAAAAAAAAAAAA4DAQV+Kk3kW7oiiU57larZb6+vo0NDSktWvX6i//8i/1ile8Qscff7xuvfVW/cmf/IlmZ2eVJEl1n3jMsizVbDb1spe9TNdcc42yLJMxRs95znOqGK6vr68K7F7zmtfo/PPP1/3336/rrrtO3//+96vnYq3Vxo0bdcUVV+id73ynrLU9EWCM3qS5NbsQ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\n", + "text/plain": [ + "

" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = plt.subplots(figsize=(14, 10))\n", + "\n", + "ax.set_xlim(-3.5, 0.0)\n", + "ax.set_ylim(-1.0, 2.5)\n", + "\n", + "plt.rc('text', usetex=True)\n", + "plt.rc('font', family='sans-serif')\n", + "\n", + "fig.suptitle('PLUMED CV wrapper for OPS', fontsize=24)\n", + "ax.set_title('ADAPTIVE\\_PATH optimization for alanine dipeptide (AMBER96) in water (TIP3P)', fontsize=20)\n", + "ax.set_xlabel('phi: TORSION ATOMS=5,7,9,15', fontsize=18)\n", + "ax.set_ylabel('psi: TORSION ATOMS=7,9,15,17', fontsize=18)\n", + "\n", + "ax.plot(phi(full_trajectory), psi(full_trajectory), 'o-', color='b', label=r'C$7_{\\rm eq}$-to-$\\alpha_{\\rm R}$ trajectory')\n", + "\n", + "for optstep in list(range(0,len(path),5)) + [len(path)-1]:\n", + " ax.plot(path[optstep,:,0],path[optstep,:,1], '-', label='path optimization ' + str(optstep),\n", + " linewidth=(0.2 * optstep + 2.0), alpha=( (0.9/len(path))* optstep + 0.1))\n", + "\n", + "ax.legend(fontsize=16)\n", + "\n", + "xcoord = -2.4\n", + "ycoord = 2.1\n", + "halflen = 0.4\n", + "c7 = img.imread('AD_C7eq.png')\n", + "ax.imshow(c7, aspect='auto', extent=(xcoord-halflen, xcoord+halflen, ycoord-halflen, ycoord+halflen), zorder=-1)\n", + "\n", + "xcoord = -1.4\n", + "ycoord = -0.6\n", + "halflen = 0.4\n", + "ar = img.imread('AD_aR.png')\n", + "ax.imshow(ar, aspect='auto', extent=(xcoord-halflen, xcoord+halflen, ycoord-halflen, ycoord+halflen), zorder=-1)\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Alanine dipeptide pictorial representations taken from:\n", + "\n", + "* J. Rubio-Martinez, M. Santos Tomas, J.J. Perez, J. Mol. Graph. Model. 78, 118, (2017); https://doi.org/10.1016/j.jmgm.2017.10.005" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "By recursively using the optimized path as new initial guess, one can improve the optimization after some iterations. By iterating over the trajectories of a TPS ensemble, an average transition path can be localized." + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.6" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/openpathsampling/collectivevariables/__init__.py b/openpathsampling/collectivevariables/__init__.py index e69de29bb..c5b8862e8 100644 --- a/openpathsampling/collectivevariables/__init__.py +++ b/openpathsampling/collectivevariables/__init__.py @@ -0,0 +1,3 @@ +from .plumed_wrapper import ( + PLUMEDCV, PLUMEDInterface + ) diff --git a/openpathsampling/collectivevariables/plumed_wrapper.py b/openpathsampling/collectivevariables/plumed_wrapper.py new file mode 100755 index 000000000..7c48af877 --- /dev/null +++ b/openpathsampling/collectivevariables/plumed_wrapper.py @@ -0,0 +1,329 @@ +import openpathsampling as paths +from openpathsampling.netcdfplus import StorableNamedObject +import openpathsampling.engines as peng +try: + import plumed +except ImportError: + pass +import numpy as np +import warnings +import copy +import os +import sys + + +class PLUMEDCV(paths.CoordinateFunctionCV): + + """Make `CollectiveVariable` computed by PLUMED according to the command + `name`: `definition`, where `name` is a PLUMED label and `definition` + contains all PLUMED keywords. + Takes an `openpathsampling.engines.trajectory.Trajectory` as input. + + References + ---------- + + .. [1] G.A. Tribello, M. Bonomi, D. Branduardi, C. Camilloni, G. Bussi, + PLUMED2: New feathers for an old bird, Comp. Phys. Comm. 185, 604 (2014); + https://doi.org/10.1016/j.cpc.2013.09.018 + + Examples + -------- + >>> # To create a `CollectiveVariable` which calculates the dihedral psi + >>> # formed by the atoms [7,9,15,17] in Ala dipeptide: + >>> from openpathsampling import PLUMEDCV, PLUMEDInterface + >>> plmd = PLUMEDInterface(top) + >>> # top is an `openpathsampling.engines.openmm.topology.MDTrajTopology` + >>> psi_plumed = PLUMEDCV("psi",plmd,"TORSION ATOMS=7,9,15,17") + >>> print psi_plumed(traj) # returns psi values for the trajectory + """ + + def __init__(self, + name, + plmd, + definition, + components=None, + cv_requires_lists=True, + cv_wrap_numpy_array=True, + cv_scalarize_numpy_singletons=True, + **kwargs + ): + + """ + Parameters + ---------- + name : string + A descriptive name of the PLUMED collective variable, + equivalent to a `label` in a PLUMED input file. + plmd : :obj:`openpathsampling.collectivevariable.PLUMEDInterface` + An interface to the Cython PLUMED wrapper. If the PLUMED collective + variable is a function of previously defined ones, or if it is defined + based on group/virtual atoms, the `plmd` interface must be the same + one that was used for the preceding instantiantions. + definition : string + The PLUMED keywords that define the collective variable + (see http://www.plumed.org/documentation). + components : list of string + The components (either default of customized) of the PLUMED + collective variable (see http://www.plumed.org/documentation). + cv_requires_lists + cv_wrap_numpy_array + cv_scalarize_numpy_singletons + kwargs + """ + + super(PLUMEDCV, self).__init__( + name, + f=PLUMEDCV.compute_cv, + cv_requires_lists=cv_requires_lists, + cv_wrap_numpy_array=cv_wrap_numpy_array, + cv_scalarize_numpy_singletons=cv_scalarize_numpy_singletons, + **kwargs + ) + + self.plmd = plmd + self.definition = definition + if components is None: + components = [] + self.components = components + self.topology = plmd.topology + self.var = self.create_plumed_var(name, definition) + + def create_plumed_var(self, name, definition): + """Create a PLUMED collective variable. + + Parameters + ---------- + name : string + A descriptive name of the PLUMED collective variable, + equivalent to a `label` in a PLUMED input file. + definition : string + The PLUMED keywords that define the collective variable + (see http://www.plumed.org/documentation). + + Returns + ------- + data : array + Array to store the computed PLUMED collective variable. + """ + self.plmd.cmd("readInputLine", name + ": " + definition) + if (len(self.components)): + cdata = [] + for c in self.components: + shape = np.zeros(1, dtype=np.int_) + self.plmd.cmd("getDataRank " + name + "." + c, shape) + data = np.zeros((1)) + self.plmd.cmd("setMemoryForData " + name + "." + c, data) + cdata.append(data) + return cdata + else: + shape = np.zeros(1, dtype=np.int_) + self.plmd.cmd("getDataRank " + name, shape) + data = np.zeros((1)) + self.plmd.cmd("setMemoryForData " + name, data) + return data + + def compute_cv(self, trajectory): + """Compute a PLUMED collective variable. + + Parameters + ---------- + trajectory : :obj:`openpathsampling.engines.trajectory.Trajectory` + The trajectory along which the collective variable is to be + computed. + + Returns + ------- + cv : array + Computed values of the PLUMED collective variable along the + `openpathsampling.engines.trajectory.Trajectory` + """ + cv = [] + try: + masses = np.array([a.element.mass for a in + trajectory.topology.mdtraj.atoms], + dtype=np.float64) + except AttributeError: # pragma: no cover + masses = np.ones(self.topology.n_atoms, dtype=np.float64) + warnings.warn("No masses found in topology. All masses set to one") + charges = np.zeros(self.topology.n_atoms, + dtype=np.float64) # non-essential + # warnings.warn("All charges set to zero") + forces = np.zeros((self.topology.n_atoms, 3)) + virial = np.zeros((3, 3), dtype=np.float64) + bias = np.zeros((1), dtype=np.float64) # non-essential + for step, snapshot in enumerate(trajectory): + self.plmd.cmd("setStep", step) + mdtrajtraj = peng.openmm.trajectory_to_mdtraj(snapshot) + box = np.array(mdtrajtraj.unitcell_vectors, dtype=np.float64) + positions = snapshot.xyz.astype(np.float64) + self.plmd.cmd("setBox", box) + self.plmd.cmd("setPositions", positions) + self.plmd.cmd("setMasses", masses) + self.plmd.cmd("setForces", forces) + self.plmd.cmd("setVirial", virial) + self.plmd.cmd("setCharges", charges) # non-essential + self.plmd.cmd("getBias", bias) # non-essential + self.plmd.cmd("calc") + cv.append(copy.deepcopy(self.var)) + cv = np.array(cv) + return cv + + def _eval(self, trajectory): + trajectory = peng.Trajectory(trajectory) + return self.cv_callable(self, trajectory) + + def to_dict(self): + return { + 'name': self.name, + 'plmd': self.plmd, + 'definition': self.definition, + 'components': self.components, + 'kwargs': self.kwargs, + 'cv_requires_lists': self.cv_requires_lists, + 'cv_wrap_numpy_array': self.cv_wrap_numpy_array, + 'cv_scalarize_numpy_singletons': self.cv_scalarize_numpy_singletons + } + + +class PLUMEDInterface(StorableNamedObject): + + """Interfaces the Cython PLUMED wrapper located at `/path/to/plumed2/python` + and allows to set and get non-`PLUMEDCV` commands (i.e., non-outputting). + This includes groups of atoms, centers of mass, include files, etc. + Requires PLUMED development version (see https://github.com/plumed/plumed2) + and sourcing `/path/to/plumed2/sourceme.sh` + + References + ---------- + + .. [1] G.A. Tribello, M. Bonomi, D. Branduardi, C. Camilloni, G. Bussi, + PLUMED2: New feathers for an old bird, Comp. Phys. Comm. 185, 604 (2014); + https://doi.org/10.1016/j.cpc.2013.09.018 + + Examples + -------- + >>> # To group the atoms [7,9,15,17] corresponding to the dihedral psi + >>> # in Ala dipeptide: + >>> from openpathsampling import PLUMEDCV, PLUMEDInterface + >>> plmd = PLUMEDInterface(top) + >>> # top is an `openpathsampling.engines.openmm.topology.MDTrajTopology` + >>> plmd.set("group","GROUP ATOMS=7,9,15,17") + >>> psi_plumed = PLUMEDCV("psi",plmd,"TORSION ATOMS=group") + >>> print psi_plumed(traj) # returns psi values for the trajectory + >>> pld.get() # returns (('group', 'GROUP ATOMS=7,9,15,17')) + """ + + def __init__(self, + topology, + pathtoplumed="", + timestep=1., + kbt=1., + molinfo="", + logfile="plumed.log"): + """ + Parameters + ---------- + topology : :obj:`openpathsampling.engines.openmm.MDTopology` + pathtoplumed : string + path to the PLUMED installation + timestep : double + Time step size of the simulation in PLUMED default units (ps). + kbt : double + :math:`$k_BT$` in PLUMED default units (kJ/mol). + molinfo : string + A PDB file containing information about the molecule. (see + https://plumed.github.io/doc-v2.4/user-doc/html/_m_o_l_i_n_f_o.html). + logfile : string + Name of the PLUMED log file. + """ + + self.interface = plumed.Plumed() # 8 is default size of real + self.pathtoplumed = pathtoplumed + self.topology = topology + self.timestep = timestep + self.kbt = kbt + self.molinfo = molinfo + self.logfile = logfile + self._commandlist = [] + self._init_plumed() + + def cmd(self, *args, **kwargs): + self.interface.cmd(*args, **kwargs) + + def _init_plumed(self): + if self.pathtoplumed != "": # pragma: no cover + #os.system("source " + self.pathtoplumed + "/sourceme.sh") + sys.path.append(self.pathtoplumed + "/python") + warnings.warn("Sourced PLUMED from: " + self.pathtoplumed) + else: + warnings.warn("Using currently sourced PLUMED from: " + + plumed.sys.prefix + "/lib/libplumedKernel.dylib") + #os.environ["PLUMED_KERNEL"][:-30]) not set in conda-forge plumed + self.cmd("setMDEngine", "python") + self.cmd("setTimestep", self.timestep) + self.cmd("setKbT", self.kbt) + self.cmd("setNatoms", self.topology.n_atoms) + self.cmd("setLogFile", self.logfile) + self.cmd("init") + if (self.molinfo != ""): + self.cmd("readInputLine", "MOLINFO STRUCTURE=" + self.molinfo) + + def set(self, name, definition): + """Set a non-outputting command in the `PLUMEDInterface`. + + Parameters + ---------- + name : string + Equivalent to a `label` in a PLUMED input file. Not required for + all commands (can be left empty). + definition: string + The PLUMED keywords that define the command + (see http://www.plumed.org/documentation). + """ + + if (name != ""): + self.cmd("readInputLine", name + ": " + definition) + else: + self.cmd("readInputLine", definition) + self._commandlist.append((name, definition)) + + def get(self): + """Get commands set in the `PLUMEDInterface`. + + Returns + ------- + list of tuples + list of tuples (`label` and `definition`) ran in the + `PLUMEDInterface` using the `set` function. + """ + return tuple(self._commandlist) + + def to_dict(self): + return { + 'pathtoplumed': self.pathtoplumed, + 'topology': self.topology, + 'timestep': self.timestep, + 'kbt': self.kbt, + 'molinfo': self.molinfo, + 'logfile': self.logfile, + '_commandlist': self._commandlist + } + + @classmethod + def from_dict(cls, dct): + pathtoplumed = dct['pathtoplumed'] + topology = dct['topology'] + timestep = dct['timestep'] + kbt = dct['kbt'] + molinfo = dct['molinfo'] + logfile = dct['logfile'] + obj = cls(pathtoplumed=pathtoplumed, + topology=topology, + timestep=timestep, + kbt=kbt, + molinfo=molinfo, + logfile=logfile) + _commandlist = dct['_commandlist'] + for name, definition in _commandlist: + obj.set(name, definition) + return obj diff --git a/openpathsampling/tests/test_data/plumed_wrapper/AD_initial_frame.pdb b/openpathsampling/tests/test_data/plumed_wrapper/AD_initial_frame.pdb new file mode 100755 index 000000000..970539964 --- /dev/null +++ b/openpathsampling/tests/test_data/plumed_wrapper/AD_initial_frame.pdb @@ -0,0 +1,1670 @@ +REMARK 1 CREATED WITH OPENMM 6.0, 2014-08-09 +CRYST1 26.063 26.063 26.063 90.00 90.00 90.00 P 1 1 +ATOM 1 H1 ACE A 1 -3.473 1.591 1.050 1.00 0.00 H +ATOM 2 CH3 ACE A 1 -3.044 0.593 0.977 1.00 0.00 C +ATOM 3 H2 ACE A 1 -3.359 0.129 0.050 1.00 0.00 H +ATOM 4 H3 ACE A 1 -3.370 -0.018 1.819 1.00 0.00 H +ATOM 5 C ACE A 1 -1.534 0.699 0.979 1.00 0.00 C +ATOM 6 O ACE A 1 -0.994 1.797 1.127 1.00 0.00 O +ATOM 7 N ALA A 2 -0.850 -0.435 0.885 1.00 0.00 N +ATOM 8 H ALA A 2 -1.374 -1.298 0.809 1.00 0.00 H +ATOM 9 CA ALA A 2 0.616 -0.501 0.838 1.00 0.00 C +ATOM 10 HA ALA A 2 0.999 0.256 1.519 1.00 0.00 H +ATOM 11 CB ALA A 2 1.041 -1.864 1.378 1.00 0.00 C +ATOM 12 HB1 ALA A 2 2.125 -1.912 1.440 1.00 0.00 H +ATOM 13 HB2 ALA A 2 0.696 -2.654 0.718 1.00 0.00 H +ATOM 14 HB3 ALA A 2 0.634 -2.022 2.372 1.00 0.00 H +ATOM 15 C ALA A 2 1.237 -0.202 -0.548 1.00 0.00 C +ATOM 16 O ALA A 2 2.456 -0.030 -0.648 1.00 0.00 O +ATOM 17 N NME A 3 0.424 -0.122 -1.605 1.00 0.00 N +ATOM 18 H NME A 3 -0.564 -0.250 -1.440 1.00 0.00 H +ATOM 19 C NME A 3 0.864 0.096 -2.981 1.00 0.00 C +ATOM 20 H1 NME A 3 1.448 1.015 -3.037 1.00 0.00 H +ATOM 21 H2 NME A 3 1.488 -0.739 -3.305 1.00 0.00 H +ATOM 22 H3 NME A 3 0.004 0.178 -3.644 1.00 0.00 H +TER 23 NME A 3 +ATOM 24 O HOH B 1 -9.105 0.374 0.088 1.00 0.00 O +ATOM 25 H1 HOH B 1 -9.373 1.131 0.608 1.00 0.00 H +ATOM 26 H2 HOH B 1 -8.899 -0.301 0.734 1.00 0.00 H +ATOM 27 O HOH B 2 5.700 3.211 -10.175 1.00 0.00 O +ATOM 28 H1 HOH B 2 5.449 2.490 -9.598 1.00 0.00 H +ATOM 29 H2 HOH B 2 4.872 3.529 -10.535 1.00 0.00 H +ATOM 30 O HOH B 3 7.774 -12.191 8.138 1.00 0.00 O +ATOM 31 H1 HOH B 3 7.905 -12.884 7.491 1.00 0.00 H +ATOM 32 H2 HOH B 3 7.587 -11.410 7.618 1.00 0.00 H +ATOM 33 O HOH B 4 -6.977 5.092 7.762 1.00 0.00 O +ATOM 34 H1 HOH B 4 -7.516 5.638 8.334 1.00 0.00 H +ATOM 35 H2 HOH B 4 -6.132 5.541 7.727 1.00 0.00 H +ATOM 36 O HOH B 5 -7.884 -6.647 -4.964 1.00 0.00 O +ATOM 37 H1 HOH B 5 -8.386 -7.460 -4.911 1.00 0.00 H +ATOM 38 H2 HOH B 5 -7.955 -6.380 -5.880 1.00 0.00 H +ATOM 39 O HOH B 6 1.386 4.354 2.062 1.00 0.00 O +ATOM 40 H1 HOH B 6 0.828 3.626 1.791 1.00 0.00 H +ATOM 41 H2 HOH B 6 1.951 4.518 1.307 1.00 0.00 H +ATOM 42 O HOH B 7 -12.749 0.429 -5.288 1.00 0.00 O +ATOM 43 H1 HOH B 7 -13.339 0.903 -5.874 1.00 0.00 H +ATOM 44 H2 HOH B 7 -12.833 -0.488 -5.552 1.00 0.00 H +ATOM 45 O HOH B 8 5.221 5.229 -4.208 1.00 0.00 O +ATOM 46 H1 HOH B 8 4.746 4.630 -3.631 1.00 0.00 H +ATOM 47 H2 HOH B 8 4.568 5.514 -4.848 1.00 0.00 H +ATOM 48 O HOH B 9 -4.495 -4.597 3.990 1.00 0.00 O +ATOM 49 H1 HOH B 9 -4.864 -5.197 4.639 1.00 0.00 H +ATOM 50 H2 HOH B 9 -4.150 -5.168 3.304 1.00 0.00 H +ATOM 51 O HOH B 10 -2.230 -1.948 -7.880 1.00 0.00 O +ATOM 52 H1 HOH B 10 -2.825 -1.679 -7.180 1.00 0.00 H +ATOM 53 H2 HOH B 10 -1.775 -2.713 -7.527 1.00 0.00 H +ATOM 54 O HOH B 11 4.029 1.940 4.406 1.00 0.00 O +ATOM 55 H1 HOH B 11 4.502 1.505 5.117 1.00 0.00 H +ATOM 56 H2 HOH B 11 4.523 1.716 3.617 1.00 0.00 H +ATOM 57 O HOH B 12 8.366 -4.128 -7.290 1.00 0.00 O +ATOM 58 H1 HOH B 12 8.530 -4.320 -8.213 1.00 0.00 H +ATOM 59 H2 HOH B 12 9.084 -3.549 -7.034 1.00 0.00 H +ATOM 60 O HOH B 13 -7.896 0.537 -4.740 1.00 0.00 O +ATOM 61 H1 HOH B 13 -7.709 0.707 -3.817 1.00 0.00 H +ATOM 62 H2 HOH B 13 -8.655 1.087 -4.937 1.00 0.00 H +ATOM 63 O HOH B 14 -0.600 11.822 0.539 1.00 0.00 O +ATOM 64 H1 HOH B 14 0.296 12.159 0.553 1.00 0.00 H +ATOM 65 H2 HOH B 14 -0.519 10.940 0.176 1.00 0.00 H +ATOM 66 O HOH B 15 4.210 7.609 -12.801 1.00 0.00 O +ATOM 67 H1 HOH B 15 3.763 8.394 -13.120 1.00 0.00 H +ATOM 68 H2 HOH B 15 4.475 7.145 -13.595 1.00 0.00 H +ATOM 69 O HOH B 16 -2.770 2.754 -7.236 1.00 0.00 O +ATOM 70 H1 HOH B 16 -2.243 3.312 -6.663 1.00 0.00 H +ATOM 71 H2 HOH B 16 -3.672 2.902 -6.951 1.00 0.00 H +ATOM 72 O HOH B 17 -10.855 7.298 -9.764 1.00 0.00 O +ATOM 73 H1 HOH B 17 -9.951 7.613 -9.754 1.00 0.00 H +ATOM 74 H2 HOH B 17 -10.807 6.419 -9.389 1.00 0.00 H +ATOM 75 O HOH B 18 -0.085 1.320 -13.216 1.00 0.00 O +ATOM 76 H1 HOH B 18 -0.162 0.390 -13.430 1.00 0.00 H +ATOM 77 H2 HOH B 18 -0.492 1.771 -13.956 1.00 0.00 H +ATOM 78 O HOH B 19 3.346 8.600 -0.190 1.00 0.00 O +ATOM 79 H1 HOH B 19 3.622 9.514 -0.121 1.00 0.00 H +ATOM 80 H2 HOH B 19 4.160 8.112 -0.309 1.00 0.00 H +ATOM 81 O HOH B 20 -1.796 9.548 -5.107 1.00 0.00 O +ATOM 82 H1 HOH B 20 -2.001 10.407 -5.475 1.00 0.00 H +ATOM 83 H2 HOH B 20 -1.285 9.110 -5.787 1.00 0.00 H +ATOM 84 O HOH B 21 -12.013 -6.121 -8.542 1.00 0.00 O +ATOM 85 H1 HOH B 21 -11.781 -6.904 -9.040 1.00 0.00 H +ATOM 86 H2 HOH B 21 -11.176 -5.780 -8.227 1.00 0.00 H +ATOM 87 O HOH B 22 -9.472 -11.858 2.998 1.00 0.00 O +ATOM 88 H1 HOH B 22 -10.348 -11.605 2.704 1.00 0.00 H +ATOM 89 H2 HOH B 22 -8.970 -11.966 2.190 1.00 0.00 H +ATOM 90 O HOH B 23 -2.533 -11.165 4.753 1.00 0.00 O +ATOM 91 H1 HOH B 23 -2.356 -10.224 4.731 1.00 0.00 H +ATOM 92 H2 HOH B 23 -1.891 -11.515 5.371 1.00 0.00 H +ATOM 93 O HOH B 24 1.258 -12.729 -4.948 1.00 0.00 O +ATOM 94 H1 HOH B 24 1.781 -12.195 -5.546 1.00 0.00 H +ATOM 95 H2 HOH B 24 1.521 -13.629 -5.138 1.00 0.00 H +ATOM 96 O HOH B 25 -4.899 -7.199 -10.158 1.00 0.00 O +ATOM 97 H1 HOH B 25 -4.331 -6.513 -10.510 1.00 0.00 H +ATOM 98 H2 HOH B 25 -5.595 -6.724 -9.703 1.00 0.00 H +ATOM 99 O HOH B 26 10.834 -4.119 3.670 1.00 0.00 O +ATOM 100 H1 HOH B 26 11.064 -5.048 3.643 1.00 0.00 H +ATOM 101 H2 HOH B 26 10.589 -3.959 4.582 1.00 0.00 H +ATOM 102 O HOH B 27 -5.797 0.322 -6.617 1.00 0.00 O +ATOM 103 H1 HOH B 27 -6.442 0.331 -5.910 1.00 0.00 H +ATOM 104 H2 HOH B 27 -5.144 -0.320 -6.338 1.00 0.00 H +ATOM 105 O HOH B 28 -3.971 -10.869 -1.495 1.00 0.00 O +ATOM 106 H1 HOH B 28 -3.899 -10.059 -2.001 1.00 0.00 H +ATOM 107 H2 HOH B 28 -3.392 -10.735 -0.745 1.00 0.00 H +ATOM 108 O HOH B 29 -5.869 3.899 -1.137 1.00 0.00 O +ATOM 109 H1 HOH B 29 -6.293 4.490 -0.515 1.00 0.00 H +ATOM 110 H2 HOH B 29 -6.168 3.026 -0.880 1.00 0.00 H +ATOM 111 O HOH B 30 8.616 -9.664 -10.649 1.00 0.00 O +ATOM 112 H1 HOH B 30 7.948 -10.010 -11.241 1.00 0.00 H +ATOM 113 H2 HOH B 30 8.844 -8.810 -11.017 1.00 0.00 H +ATOM 114 O HOH B 31 7.614 6.744 1.264 1.00 0.00 O +ATOM 115 H1 HOH B 31 7.500 7.277 2.051 1.00 0.00 H +ATOM 116 H2 HOH B 31 8.226 7.243 0.723 1.00 0.00 H +ATOM 117 O HOH B 32 -8.859 -9.928 -1.430 1.00 0.00 O +ATOM 118 H1 HOH B 32 -9.741 -9.580 -1.558 1.00 0.00 H +ATOM 119 H2 HOH B 32 -8.324 -9.158 -1.235 1.00 0.00 H +ATOM 120 O HOH B 33 -2.000 7.298 -0.779 1.00 0.00 O +ATOM 121 H1 HOH B 33 -2.072 8.104 -1.290 1.00 0.00 H +ATOM 122 H2 HOH B 33 -1.061 7.117 -0.747 1.00 0.00 H +ATOM 123 O HOH B 34 1.422 -8.438 8.824 1.00 0.00 O +ATOM 124 H1 HOH B 34 2.299 -8.057 8.771 1.00 0.00 H +ATOM 125 H2 HOH B 34 1.556 -9.372 8.666 1.00 0.00 H +ATOM 126 O HOH B 35 0.988 6.050 -6.096 1.00 0.00 O +ATOM 127 H1 HOH B 35 0.233 5.509 -5.863 1.00 0.00 H +ATOM 128 H2 HOH B 35 0.609 6.821 -6.519 1.00 0.00 H +ATOM 129 O HOH B 36 -8.739 0.757 -7.735 1.00 0.00 O +ATOM 130 H1 HOH B 36 -8.502 -0.151 -7.548 1.00 0.00 H +ATOM 131 H2 HOH B 36 -9.330 1.002 -7.022 1.00 0.00 H +ATOM 132 O HOH B 37 -1.397 -8.623 5.015 1.00 0.00 O +ATOM 133 H1 HOH B 37 -0.731 -8.244 4.442 1.00 0.00 H +ATOM 134 H2 HOH B 37 -1.198 -8.269 5.882 1.00 0.00 H +ATOM 135 O HOH B 38 -10.626 10.241 -8.589 1.00 0.00 O +ATOM 136 H1 HOH B 38 -11.026 9.782 -7.851 1.00 0.00 H +ATOM 137 H2 HOH B 38 -10.008 9.610 -8.958 1.00 0.00 H +ATOM 138 O HOH B 39 -4.210 -7.384 -0.163 1.00 0.00 O +ATOM 139 H1 HOH B 39 -5.071 -7.745 0.050 1.00 0.00 H +ATOM 140 H2 HOH B 39 -4.094 -7.574 -1.094 1.00 0.00 H +ATOM 141 O HOH B 40 -7.114 5.482 0.787 1.00 0.00 O +ATOM 142 H1 HOH B 40 -7.897 5.548 1.334 1.00 0.00 H +ATOM 143 H2 HOH B 40 -6.633 6.292 0.958 1.00 0.00 H +ATOM 144 O HOH B 41 -0.958 -8.460 -0.872 1.00 0.00 O +ATOM 145 H1 HOH B 41 -0.150 -8.950 -1.026 1.00 0.00 H +ATOM 146 H2 HOH B 41 -1.255 -8.750 -0.009 1.00 0.00 H +ATOM 147 O HOH B 42 -2.120 -4.638 -4.350 1.00 0.00 O +ATOM 148 H1 HOH B 42 -2.089 -5.280 -3.642 1.00 0.00 H +ATOM 149 H2 HOH B 42 -2.882 -4.094 -4.148 1.00 0.00 H +ATOM 150 O HOH B 43 2.128 5.152 -9.191 1.00 0.00 O +ATOM 151 H1 HOH B 43 2.579 4.799 -9.957 1.00 0.00 H +ATOM 152 H2 HOH B 43 2.378 4.567 -8.475 1.00 0.00 H +ATOM 153 O HOH B 44 -7.046 -12.636 -9.335 1.00 0.00 O +ATOM 154 H1 HOH B 44 -6.636 -12.522 -8.477 1.00 0.00 H +ATOM 155 H2 HOH B 44 -7.239 -11.746 -9.628 1.00 0.00 H +ATOM 156 O HOH B 45 -4.115 -4.810 -7.127 1.00 0.00 O +ATOM 157 H1 HOH B 45 -3.806 -5.210 -6.314 1.00 0.00 H +ATOM 158 H2 HOH B 45 -3.523 -4.073 -7.273 1.00 0.00 H +ATOM 159 O HOH B 46 -2.573 4.727 2.252 1.00 0.00 O +ATOM 160 H1 HOH B 46 -2.219 4.431 1.413 1.00 0.00 H +ATOM 161 H2 HOH B 46 -3.520 4.621 2.163 1.00 0.00 H +ATOM 162 O HOH B 47 -4.428 -3.300 -3.660 1.00 0.00 O +ATOM 163 H1 HOH B 47 -4.203 -3.380 -2.733 1.00 0.00 H +ATOM 164 H2 HOH B 47 -5.328 -3.620 -3.717 1.00 0.00 H +ATOM 165 O HOH B 48 -4.745 9.778 -8.052 1.00 0.00 O +ATOM 166 H1 HOH B 48 -4.615 9.194 -7.305 1.00 0.00 H +ATOM 167 H2 HOH B 48 -3.860 10.039 -8.309 1.00 0.00 H +ATOM 168 O HOH B 49 -1.291 -10.521 -6.902 1.00 0.00 O +ATOM 169 H1 HOH B 49 -1.086 -10.567 -5.968 1.00 0.00 H +ATOM 170 H2 HOH B 49 -0.772 -11.222 -7.297 1.00 0.00 H +ATOM 171 O HOH B 50 -11.008 -3.004 2.204 1.00 0.00 O +ATOM 172 H1 HOH B 50 -11.881 -2.613 2.193 1.00 0.00 H +ATOM 173 H2 HOH B 50 -11.027 -3.614 2.942 1.00 0.00 H +ATOM 174 O HOH B 51 -9.480 -7.679 4.835 1.00 0.00 O +ATOM 175 H1 HOH B 51 -8.893 -8.393 4.585 1.00 0.00 H +ATOM 176 H2 HOH B 51 -10.328 -7.926 4.467 1.00 0.00 H +ATOM 177 O HOH B 52 -6.401 -7.962 -2.960 1.00 0.00 O +ATOM 178 H1 HOH B 52 -6.887 -7.389 -3.552 1.00 0.00 H +ATOM 179 H2 HOH B 52 -5.826 -8.469 -3.533 1.00 0.00 H +ATOM 180 O HOH B 53 -9.154 -9.036 -5.069 1.00 0.00 O +ATOM 181 H1 HOH B 53 -9.836 -9.562 -4.650 1.00 0.00 H +ATOM 182 H2 HOH B 53 -8.890 -9.550 -5.832 1.00 0.00 H +ATOM 183 O HOH B 54 4.644 -2.031 -2.427 1.00 0.00 O +ATOM 184 H1 HOH B 54 5.153 -2.234 -3.212 1.00 0.00 H +ATOM 185 H2 HOH B 54 3.799 -2.458 -2.572 1.00 0.00 H +ATOM 186 O HOH B 55 -0.830 -10.692 -10.926 1.00 0.00 O +ATOM 187 H1 HOH B 55 -0.922 -10.361 -11.819 1.00 0.00 H +ATOM 188 H2 HOH B 55 -0.489 -9.949 -10.428 1.00 0.00 H +ATOM 189 O HOH B 56 9.447 6.055 11.482 1.00 0.00 O +ATOM 190 H1 HOH B 56 9.086 5.903 12.355 1.00 0.00 H +ATOM 191 H2 HOH B 56 10.307 6.444 11.642 1.00 0.00 H +ATOM 192 O HOH B 57 -9.748 -3.432 5.134 1.00 0.00 O +ATOM 193 H1 HOH B 57 -9.020 -4.054 5.148 1.00 0.00 H +ATOM 194 H2 HOH B 57 -9.331 -2.578 5.021 1.00 0.00 H +ATOM 195 O HOH B 58 0.037 -3.709 -10.549 1.00 0.00 O +ATOM 196 H1 HOH B 58 0.249 -4.469 -10.008 1.00 0.00 H +ATOM 197 H2 HOH B 58 0.792 -3.129 -10.454 1.00 0.00 H +ATOM 198 O HOH B 59 -2.919 -2.385 -12.798 1.00 0.00 O +ATOM 199 H1 HOH B 59 -2.870 -1.756 -13.518 1.00 0.00 H +ATOM 200 H2 HOH B 59 -2.628 -1.894 -12.030 1.00 0.00 H +ATOM 201 O HOH B 60 2.097 -6.788 -4.577 1.00 0.00 O +ATOM 202 H1 HOH B 60 2.019 -7.071 -3.666 1.00 0.00 H +ATOM 203 H2 HOH B 60 3.037 -6.803 -4.754 1.00 0.00 H +ATOM 204 O HOH B 61 2.411 6.825 -3.821 1.00 0.00 O +ATOM 205 H1 HOH B 61 2.061 6.667 -4.698 1.00 0.00 H +ATOM 206 H2 HOH B 61 2.083 6.095 -3.296 1.00 0.00 H +ATOM 207 O HOH B 62 5.244 6.260 0.033 1.00 0.00 O +ATOM 208 H1 HOH B 62 6.073 6.382 0.496 1.00 0.00 H +ATOM 209 H2 HOH B 62 5.404 6.612 -0.842 1.00 0.00 H +ATOM 210 O HOH B 63 8.546 -1.508 -4.919 1.00 0.00 O +ATOM 211 H1 HOH B 63 8.661 -0.561 -5.003 1.00 0.00 H +ATOM 212 H2 HOH B 63 9.230 -1.882 -5.475 1.00 0.00 H +ATOM 213 O HOH B 64 -12.017 -11.437 -1.437 1.00 0.00 O +ATOM 214 H1 HOH B 64 -11.914 -12.340 -1.739 1.00 0.00 H +ATOM 215 H2 HOH B 64 -11.536 -10.914 -2.078 1.00 0.00 H +ATOM 216 O HOH B 65 -3.661 0.004 6.411 1.00 0.00 O +ATOM 217 H1 HOH B 65 -3.980 -0.852 6.699 1.00 0.00 H +ATOM 218 H2 HOH B 65 -2.789 -0.172 6.057 1.00 0.00 H +ATOM 219 O HOH B 66 -3.515 -4.934 -10.794 1.00 0.00 O +ATOM 220 H1 HOH B 66 -2.914 -4.860 -11.536 1.00 0.00 H +ATOM 221 H2 HOH B 66 -3.100 -4.426 -10.097 1.00 0.00 H +ATOM 222 O HOH B 67 -9.033 2.074 9.387 1.00 0.00 O +ATOM 223 H1 HOH B 67 -9.288 2.601 8.631 1.00 0.00 H +ATOM 224 H2 HOH B 67 -8.532 2.674 9.940 1.00 0.00 H +ATOM 225 O HOH B 68 -10.259 2.952 0.738 1.00 0.00 O +ATOM 226 H1 HOH B 68 -9.844 3.757 1.048 1.00 0.00 H +ATOM 227 H2 HOH B 68 -11.097 2.922 1.199 1.00 0.00 H +ATOM 228 O HOH B 69 -3.522 -11.690 -4.549 1.00 0.00 O +ATOM 229 H1 HOH B 69 -2.582 -11.506 -4.533 1.00 0.00 H +ATOM 230 H2 HOH B 69 -3.784 -11.677 -3.629 1.00 0.00 H +ATOM 231 O HOH B 70 -1.025 -4.132 -6.909 1.00 0.00 O +ATOM 232 H1 HOH B 70 -0.297 -4.663 -7.231 1.00 0.00 H +ATOM 233 H2 HOH B 70 -1.255 -4.525 -6.067 1.00 0.00 H +ATOM 234 O HOH B 71 7.046 0.841 -2.667 1.00 0.00 O +ATOM 235 H1 HOH B 71 6.816 1.395 -1.921 1.00 0.00 H +ATOM 236 H2 HOH B 71 6.230 0.394 -2.894 1.00 0.00 H +ATOM 237 O HOH B 72 -8.174 -1.208 4.568 1.00 0.00 O +ATOM 238 H1 HOH B 72 -7.627 -1.821 4.078 1.00 0.00 H +ATOM 239 H2 HOH B 72 -8.278 -0.458 3.982 1.00 0.00 H +ATOM 240 O HOH B 73 -9.326 -6.621 7.376 1.00 0.00 O +ATOM 241 H1 HOH B 73 -9.384 -6.938 6.475 1.00 0.00 H +ATOM 242 H2 HOH B 73 -8.983 -5.731 7.295 1.00 0.00 H +ATOM 243 O HOH B 74 3.337 -4.538 8.085 1.00 0.00 O +ATOM 244 H1 HOH B 74 2.525 -4.873 7.705 1.00 0.00 H +ATOM 245 H2 HOH B 74 3.562 -5.170 8.767 1.00 0.00 H +ATOM 246 O HOH B 75 3.655 -12.164 3.714 1.00 0.00 O +ATOM 247 H1 HOH B 75 3.537 -11.266 4.024 1.00 0.00 H +ATOM 248 H2 HOH B 75 3.247 -12.706 4.390 1.00 0.00 H +ATOM 249 O HOH B 76 -9.318 11.026 -0.501 1.00 0.00 O +ATOM 250 H1 HOH B 76 -8.454 11.432 -0.566 1.00 0.00 H +ATOM 251 H2 HOH B 76 -9.891 11.727 -0.192 1.00 0.00 H +ATOM 252 O HOH B 77 -7.690 1.395 -2.065 1.00 0.00 O +ATOM 253 H1 HOH B 77 -8.364 2.047 -2.255 1.00 0.00 H +ATOM 254 H2 HOH B 77 -8.028 0.911 -1.312 1.00 0.00 H +ATOM 255 O HOH B 78 -5.138 -9.361 -5.136 1.00 0.00 O +ATOM 256 H1 HOH B 78 -4.758 -8.780 -5.795 1.00 0.00 H +ATOM 257 H2 HOH B 78 -4.491 -10.059 -5.031 1.00 0.00 H +ATOM 258 O HOH B 79 -9.594 -5.461 -7.303 1.00 0.00 O +ATOM 259 H1 HOH B 79 -9.964 -5.137 -6.481 1.00 0.00 H +ATOM 260 H2 HOH B 79 -9.047 -4.743 -7.620 1.00 0.00 H +ATOM 261 O HOH B 80 7.175 -5.194 4.068 1.00 0.00 O +ATOM 262 H1 HOH B 80 6.963 -4.875 4.945 1.00 0.00 H +ATOM 263 H2 HOH B 80 7.591 -4.448 3.636 1.00 0.00 H +ATOM 264 O HOH B 81 -5.998 2.091 -12.854 1.00 0.00 O +ATOM 265 H1 HOH B 81 -5.710 1.359 -12.309 1.00 0.00 H +ATOM 266 H2 HOH B 81 -5.215 2.629 -12.967 1.00 0.00 H +ATOM 267 O HOH B 82 -3.728 -10.639 -8.082 1.00 0.00 O +ATOM 268 H1 HOH B 82 -2.877 -10.672 -7.645 1.00 0.00 H +ATOM 269 H2 HOH B 82 -3.630 -11.212 -8.842 1.00 0.00 H +ATOM 270 O HOH B 83 11.578 -2.808 8.568 1.00 0.00 O +ATOM 271 H1 HOH B 83 11.315 -3.334 9.323 1.00 0.00 H +ATOM 272 H2 HOH B 83 10.857 -2.190 8.445 1.00 0.00 H +ATOM 273 O HOH B 84 -0.537 -7.317 7.283 1.00 0.00 O +ATOM 274 H1 HOH B 84 -0.115 -6.460 7.228 1.00 0.00 H +ATOM 275 H2 HOH B 84 0.003 -7.811 7.900 1.00 0.00 H +ATOM 276 O HOH B 85 6.041 3.585 -6.759 1.00 0.00 O +ATOM 277 H1 HOH B 85 6.182 4.290 -7.391 1.00 0.00 H +ATOM 278 H2 HOH B 85 5.275 3.862 -6.256 1.00 0.00 H +ATOM 279 O HOH B 86 11.232 2.454 -4.126 1.00 0.00 O +ATOM 280 H1 HOH B 86 11.557 1.736 -3.584 1.00 0.00 H +ATOM 281 H2 HOH B 86 11.483 2.214 -5.018 1.00 0.00 H +ATOM 282 O HOH B 87 -7.779 -2.179 -1.323 1.00 0.00 O +ATOM 283 H1 HOH B 87 -8.081 -2.075 -0.420 1.00 0.00 H +ATOM 284 H2 HOH B 87 -7.000 -1.626 -1.380 1.00 0.00 H +ATOM 285 O HOH B 88 -11.032 -0.167 -1.832 1.00 0.00 O +ATOM 286 H1 HOH B 88 -10.383 -0.151 -1.128 1.00 0.00 H +ATOM 287 H2 HOH B 88 -10.995 0.711 -2.212 1.00 0.00 H +ATOM 288 O HOH B 89 -9.444 -2.529 -3.463 1.00 0.00 O +ATOM 289 H1 HOH B 89 -10.189 -1.966 -3.251 1.00 0.00 H +ATOM 290 H2 HOH B 89 -8.867 -2.460 -2.701 1.00 0.00 H +ATOM 291 O HOH B 90 -11.180 -10.815 -4.274 1.00 0.00 O +ATOM 292 H1 HOH B 90 -11.796 -10.651 -4.988 1.00 0.00 H +ATOM 293 H2 HOH B 90 -10.979 -11.748 -4.340 1.00 0.00 H +ATOM 294 O HOH B 91 -10.326 2.590 -1.989 1.00 0.00 O +ATOM 295 H1 HOH B 91 -10.304 2.669 -1.035 1.00 0.00 H +ATOM 296 H2 HOH B 91 -10.637 3.443 -2.293 1.00 0.00 H +ATOM 297 O HOH B 92 -3.891 2.406 -9.722 1.00 0.00 O +ATOM 298 H1 HOH B 92 -3.384 2.407 -8.910 1.00 0.00 H +ATOM 299 H2 HOH B 92 -3.541 3.142 -10.224 1.00 0.00 H +ATOM 300 O HOH B 93 -5.907 4.722 3.477 1.00 0.00 O +ATOM 301 H1 HOH B 93 -5.892 3.847 3.865 1.00 0.00 H +ATOM 302 H2 HOH B 93 -6.196 4.578 2.575 1.00 0.00 H +ATOM 303 O HOH B 94 -5.489 -12.061 0.518 1.00 0.00 O +ATOM 304 H1 HOH B 94 -5.133 -11.553 -0.211 1.00 0.00 H +ATOM 305 H2 HOH B 94 -4.819 -12.007 1.199 1.00 0.00 H +ATOM 306 O HOH B 95 -1.323 9.725 -9.862 1.00 0.00 O +ATOM 307 H1 HOH B 95 -1.709 9.272 -10.612 1.00 0.00 H +ATOM 308 H2 HOH B 95 -0.380 9.597 -9.963 1.00 0.00 H +ATOM 309 O HOH B 96 -11.466 8.517 4.380 1.00 0.00 O +ATOM 310 H1 HOH B 96 -10.653 8.591 3.880 1.00 0.00 H +ATOM 311 H2 HOH B 96 -11.719 9.422 4.564 1.00 0.00 H +ATOM 312 O HOH B 97 5.415 -4.868 -7.505 1.00 0.00 O +ATOM 313 H1 HOH B 97 6.363 -4.788 -7.396 1.00 0.00 H +ATOM 314 H2 HOH B 97 5.264 -5.807 -7.614 1.00 0.00 H +ATOM 315 O HOH B 98 -7.538 2.940 -8.864 1.00 0.00 O +ATOM 316 H1 HOH B 98 -6.786 2.554 -9.313 1.00 0.00 H +ATOM 317 H2 HOH B 98 -7.951 2.204 -8.413 1.00 0.00 H +ATOM 318 O HOH B 99 2.057 -1.984 -9.973 1.00 0.00 O +ATOM 319 H1 HOH B 99 2.901 -2.361 -9.724 1.00 0.00 H +ATOM 320 H2 HOH B 99 1.797 -1.457 -9.218 1.00 0.00 H +ATOM 321 O HOH B 100 -6.858 -3.245 3.298 1.00 0.00 O +ATOM 322 H1 HOH B 100 -5.924 -3.447 3.366 1.00 0.00 H +ATOM 323 H2 HOH B 100 -7.296 -4.008 3.674 1.00 0.00 H +ATOM 324 O HOH B 101 -4.626 6.545 7.929 1.00 0.00 O +ATOM 325 H1 HOH B 101 -3.958 5.885 7.743 1.00 0.00 H +ATOM 326 H2 HOH B 101 -4.303 7.002 8.705 1.00 0.00 H +ATOM 327 O HOH B 102 -4.790 7.220 -11.633 1.00 0.00 O +ATOM 328 H1 HOH B 102 -5.338 6.455 -11.459 1.00 0.00 H +ATOM 329 H2 HOH B 102 -5.252 7.946 -11.213 1.00 0.00 H +ATOM 330 O HOH B 103 0.040 -12.400 -8.398 1.00 0.00 O +ATOM 331 H1 HOH B 103 0.940 -12.077 -8.435 1.00 0.00 H +ATOM 332 H2 HOH B 103 -0.250 -12.408 -9.310 1.00 0.00 H +ATOM 333 O HOH B 104 -5.476 3.890 -3.868 1.00 0.00 O +ATOM 334 H1 HOH B 104 -5.354 4.806 -4.118 1.00 0.00 H +ATOM 335 H2 HOH B 104 -5.654 3.920 -2.928 1.00 0.00 H +ATOM 336 O HOH B 105 -1.507 -4.731 -12.694 1.00 0.00 O +ATOM 337 H1 HOH B 105 -2.013 -3.990 -13.028 1.00 0.00 H +ATOM 338 H2 HOH B 105 -0.806 -4.330 -12.180 1.00 0.00 H +ATOM 339 O HOH B 106 0.858 7.139 6.246 1.00 0.00 O +ATOM 340 H1 HOH B 106 -0.023 7.108 6.620 1.00 0.00 H +ATOM 341 H2 HOH B 106 0.742 6.868 5.335 1.00 0.00 H +ATOM 342 O HOH B 107 -5.060 1.166 -3.180 1.00 0.00 O +ATOM 343 H1 HOH B 107 -5.901 1.177 -2.723 1.00 0.00 H +ATOM 344 H2 HOH B 107 -4.953 2.059 -3.507 1.00 0.00 H +ATOM 345 O HOH B 108 1.132 -8.167 -6.752 1.00 0.00 O +ATOM 346 H1 HOH B 108 1.575 -9.015 -6.734 1.00 0.00 H +ATOM 347 H2 HOH B 108 1.472 -7.702 -5.988 1.00 0.00 H +ATOM 348 O HOH B 109 6.051 -2.502 -4.680 1.00 0.00 O +ATOM 349 H1 HOH B 109 6.961 -2.216 -4.764 1.00 0.00 H +ATOM 350 H2 HOH B 109 5.588 -2.037 -5.377 1.00 0.00 H +ATOM 351 O HOH B 110 -9.670 -13.307 -4.203 1.00 0.00 O +ATOM 352 H1 HOH B 110 -8.949 -12.861 -3.759 1.00 0.00 H +ATOM 353 H2 HOH B 110 -9.302 -13.582 -5.043 1.00 0.00 H +ATOM 354 O HOH B 111 -10.355 1.809 -5.621 1.00 0.00 O +ATOM 355 H1 HOH B 111 -10.768 2.008 -6.461 1.00 0.00 H +ATOM 356 H2 HOH B 111 -11.026 1.334 -5.130 1.00 0.00 H +ATOM 357 O HOH B 112 -7.538 -1.135 7.241 1.00 0.00 O +ATOM 358 H1 HOH B 112 -7.882 -1.053 6.352 1.00 0.00 H +ATOM 359 H2 HOH B 112 -6.727 -0.627 7.233 1.00 0.00 H +ATOM 360 O HOH B 113 -11.501 -10.569 1.392 1.00 0.00 O +ATOM 361 H1 HOH B 113 -11.500 -11.103 0.597 1.00 0.00 H +ATOM 362 H2 HOH B 113 -10.868 -9.873 1.214 1.00 0.00 H +ATOM 363 O HOH B 114 7.032 -12.130 0.049 1.00 0.00 O +ATOM 364 H1 HOH B 114 7.886 -12.353 0.418 1.00 0.00 H +ATOM 365 H2 HOH B 114 6.744 -11.369 0.554 1.00 0.00 H +ATOM 366 O HOH B 115 -0.682 4.775 -9.103 1.00 0.00 O +ATOM 367 H1 HOH B 115 -0.870 4.426 -8.232 1.00 0.00 H +ATOM 368 H2 HOH B 115 0.271 4.861 -9.127 1.00 0.00 H +ATOM 369 O HOH B 116 -8.297 3.242 -12.033 1.00 0.00 O +ATOM 370 H1 HOH B 116 -7.452 2.834 -12.221 1.00 0.00 H +ATOM 371 H2 HOH B 116 -8.940 2.658 -12.436 1.00 0.00 H +ATOM 372 O HOH B 117 -7.609 -11.935 -2.811 1.00 0.00 O +ATOM 373 H1 HOH B 117 -6.997 -11.404 -3.320 1.00 0.00 H +ATOM 374 H2 HOH B 117 -8.134 -11.298 -2.327 1.00 0.00 H +ATOM 375 O HOH B 118 0.510 -4.606 -3.349 1.00 0.00 O +ATOM 376 H1 HOH B 118 -0.290 -4.451 -3.852 1.00 0.00 H +ATOM 377 H2 HOH B 118 1.040 -5.172 -3.911 1.00 0.00 H +ATOM 378 O HOH B 119 0.623 2.592 6.405 1.00 0.00 O +ATOM 379 H1 HOH B 119 -0.091 2.600 5.768 1.00 0.00 H +ATOM 380 H2 HOH B 119 1.332 3.072 5.977 1.00 0.00 H +ATOM 381 O HOH B 120 4.395 -8.686 -13.581 1.00 0.00 O +ATOM 382 H1 HOH B 120 3.822 -7.977 -13.288 1.00 0.00 H +ATOM 383 H2 HOH B 120 5.013 -8.809 -12.860 1.00 0.00 H +ATOM 384 O HOH B 121 -7.289 -1.629 -10.184 1.00 0.00 O +ATOM 385 H1 HOH B 121 -8.165 -1.255 -10.277 1.00 0.00 H +ATOM 386 H2 HOH B 121 -6.730 -0.880 -9.977 1.00 0.00 H +ATOM 387 O HOH B 122 7.099 -1.391 4.086 1.00 0.00 O +ATOM 388 H1 HOH B 122 7.545 -2.116 3.648 1.00 0.00 H +ATOM 389 H2 HOH B 122 7.449 -0.605 3.666 1.00 0.00 H +ATOM 390 O HOH B 123 -1.665 -1.510 -10.513 1.00 0.00 O +ATOM 391 H1 HOH B 123 -2.030 -1.569 -9.630 1.00 0.00 H +ATOM 392 H2 HOH B 123 -1.052 -2.242 -10.570 1.00 0.00 H +ATOM 393 O HOH B 124 -3.140 4.707 -0.518 1.00 0.00 O +ATOM 394 H1 HOH B 124 -3.962 4.542 -0.980 1.00 0.00 H +ATOM 395 H2 HOH B 124 -2.903 5.602 -0.761 1.00 0.00 H +ATOM 396 O HOH B 125 3.479 7.285 2.256 1.00 0.00 O +ATOM 397 H1 HOH B 125 4.067 6.604 1.929 1.00 0.00 H +ATOM 398 H2 HOH B 125 3.197 7.755 1.471 1.00 0.00 H +ATOM 399 O HOH B 126 -7.095 -9.578 -7.142 1.00 0.00 O +ATOM 400 H1 HOH B 126 -6.631 -9.399 -6.325 1.00 0.00 H +ATOM 401 H2 HOH B 126 -6.686 -8.996 -7.783 1.00 0.00 H +ATOM 402 O HOH B 127 4.308 -2.682 10.666 1.00 0.00 O +ATOM 403 H1 HOH B 127 3.791 -3.467 10.487 1.00 0.00 H +ATOM 404 H2 HOH B 127 5.213 -2.947 10.501 1.00 0.00 H +ATOM 405 O HOH B 128 7.404 3.065 -12.294 1.00 0.00 O +ATOM 406 H1 HOH B 128 7.681 3.981 -12.318 1.00 0.00 H +ATOM 407 H2 HOH B 128 6.788 3.019 -11.563 1.00 0.00 H +ATOM 408 O HOH B 129 -6.994 -4.223 -3.884 1.00 0.00 O +ATOM 409 H1 HOH B 129 -7.810 -3.783 -3.646 1.00 0.00 H +ATOM 410 H2 HOH B 129 -7.268 -5.085 -4.196 1.00 0.00 H +ATOM 411 O HOH B 130 4.507 -2.994 -9.397 1.00 0.00 O +ATOM 412 H1 HOH B 130 5.234 -2.378 -9.303 1.00 0.00 H +ATOM 413 H2 HOH B 130 4.748 -3.736 -8.844 1.00 0.00 H +ATOM 414 O HOH B 131 -7.545 6.098 -3.133 1.00 0.00 O +ATOM 415 H1 HOH B 131 -8.160 6.348 -2.444 1.00 0.00 H +ATOM 416 H2 HOH B 131 -8.013 5.440 -3.647 1.00 0.00 H +ATOM 417 O HOH B 132 -3.059 -8.543 -2.653 1.00 0.00 O +ATOM 418 H1 HOH B 132 -2.783 -8.120 -3.467 1.00 0.00 H +ATOM 419 H2 HOH B 132 -2.297 -8.475 -2.077 1.00 0.00 H +ATOM 420 O HOH B 133 -5.264 9.634 -0.831 1.00 0.00 O +ATOM 421 H1 HOH B 133 -4.459 10.100 -1.056 1.00 0.00 H +ATOM 422 H2 HOH B 133 -5.958 10.281 -0.950 1.00 0.00 H +ATOM 423 O HOH B 134 -5.820 0.534 -9.418 1.00 0.00 O +ATOM 424 H1 HOH B 134 -5.066 1.100 -9.586 1.00 0.00 H +ATOM 425 H2 HOH B 134 -5.825 0.417 -8.468 1.00 0.00 H +ATOM 426 O HOH B 135 -4.891 6.692 -2.246 1.00 0.00 O +ATOM 427 H1 HOH B 135 -5.796 6.425 -2.405 1.00 0.00 H +ATOM 428 H2 HOH B 135 -4.965 7.517 -1.766 1.00 0.00 H +ATOM 429 O HOH B 136 4.483 -7.677 -7.345 1.00 0.00 O +ATOM 430 H1 HOH B 136 5.380 -7.818 -7.648 1.00 0.00 H +ATOM 431 H2 HOH B 136 3.935 -8.032 -8.045 1.00 0.00 H +ATOM 432 O HOH B 137 11.161 -5.558 -5.043 1.00 0.00 O +ATOM 433 H1 HOH B 137 11.721 -6.232 -5.429 1.00 0.00 H +ATOM 434 H2 HOH B 137 11.219 -4.820 -5.649 1.00 0.00 H +ATOM 435 O HOH B 138 -3.829 -1.426 -5.594 1.00 0.00 O +ATOM 436 H1 HOH B 138 -3.561 -0.729 -4.996 1.00 0.00 H +ATOM 437 H2 HOH B 138 -4.106 -2.141 -5.021 1.00 0.00 H +ATOM 438 O HOH B 139 4.287 -2.171 7.279 1.00 0.00 O +ATOM 439 H1 HOH B 139 3.894 -2.975 7.619 1.00 0.00 H +ATOM 440 H2 HOH B 139 3.648 -1.488 7.482 1.00 0.00 H +ATOM 441 O HOH B 140 3.038 -9.905 5.160 1.00 0.00 O +ATOM 442 H1 HOH B 140 3.491 -9.063 5.105 1.00 0.00 H +ATOM 443 H2 HOH B 140 2.712 -9.944 6.059 1.00 0.00 H +ATOM 444 O HOH B 141 -2.019 -5.381 9.603 1.00 0.00 O +ATOM 445 H1 HOH B 141 -1.492 -5.927 10.187 1.00 0.00 H +ATOM 446 H2 HOH B 141 -1.852 -4.486 9.897 1.00 0.00 H +ATOM 447 O HOH B 142 4.503 -4.895 3.528 1.00 0.00 O +ATOM 448 H1 HOH B 142 4.364 -4.012 3.871 1.00 0.00 H +ATOM 449 H2 HOH B 142 5.438 -5.057 3.656 1.00 0.00 H +ATOM 450 O HOH B 143 -6.166 -3.717 -11.742 1.00 0.00 O +ATOM 451 H1 HOH B 143 -5.316 -4.101 -11.524 1.00 0.00 H +ATOM 452 H2 HOH B 143 -6.308 -3.052 -11.068 1.00 0.00 H +ATOM 453 O HOH B 144 -0.096 -4.940 3.916 1.00 0.00 O +ATOM 454 H1 HOH B 144 -0.889 -4.633 4.356 1.00 0.00 H +ATOM 455 H2 HOH B 144 0.473 -4.171 3.883 1.00 0.00 H +ATOM 456 O HOH B 145 -8.231 -3.788 7.865 1.00 0.00 O +ATOM 457 H1 HOH B 145 -9.058 -3.619 8.317 1.00 0.00 H +ATOM 458 H2 HOH B 145 -7.938 -2.926 7.570 1.00 0.00 H +ATOM 459 O HOH B 146 2.446 -0.074 7.873 1.00 0.00 O +ATOM 460 H1 HOH B 146 1.923 0.709 7.704 1.00 0.00 H +ATOM 461 H2 HOH B 146 2.409 -0.187 8.823 1.00 0.00 H +ATOM 462 O HOH B 147 -8.378 -7.472 -9.227 1.00 0.00 O +ATOM 463 H1 HOH B 147 -7.633 -6.889 -9.080 1.00 0.00 H +ATOM 464 H2 HOH B 147 -9.062 -7.138 -8.647 1.00 0.00 H +ATOM 465 O HOH B 148 8.108 7.078 7.868 1.00 0.00 O +ATOM 466 H1 HOH B 148 8.067 8.005 7.635 1.00 0.00 H +ATOM 467 H2 HOH B 148 7.406 6.672 7.359 1.00 0.00 H +ATOM 468 O HOH B 149 2.439 -0.669 10.630 1.00 0.00 O +ATOM 469 H1 HOH B 149 3.263 -1.152 10.689 1.00 0.00 H +ATOM 470 H2 HOH B 149 1.769 -1.308 10.874 1.00 0.00 H +ATOM 471 O HOH B 150 6.608 -0.853 7.962 1.00 0.00 O +ATOM 472 H1 HOH B 150 5.880 -1.459 7.822 1.00 0.00 H +ATOM 473 H2 HOH B 150 6.318 -0.034 7.560 1.00 0.00 H +ATOM 474 O HOH B 151 9.946 -2.022 -10.293 1.00 0.00 O +ATOM 475 H1 HOH B 151 9.095 -1.585 -10.282 1.00 0.00 H +ATOM 476 H2 HOH B 151 10.508 -1.440 -10.806 1.00 0.00 H +ATOM 477 O HOH B 152 -5.634 12.330 9.659 1.00 0.00 O +ATOM 478 H1 HOH B 152 -4.889 12.786 9.269 1.00 0.00 H +ATOM 479 H2 HOH B 152 -6.370 12.536 9.083 1.00 0.00 H +ATOM 480 O HOH B 153 5.049 1.231 6.992 1.00 0.00 O +ATOM 481 H1 HOH B 153 5.266 2.040 7.455 1.00 0.00 H +ATOM 482 H2 HOH B 153 4.189 0.984 7.332 1.00 0.00 H +ATOM 483 O HOH B 154 1.570 1.859 10.099 1.00 0.00 O +ATOM 484 H1 HOH B 154 2.366 2.346 9.886 1.00 0.00 H +ATOM 485 H2 HOH B 154 1.884 1.030 10.458 1.00 0.00 H +ATOM 486 O HOH B 155 6.817 3.965 3.720 1.00 0.00 O +ATOM 487 H1 HOH B 155 7.361 4.750 3.661 1.00 0.00 H +ATOM 488 H2 HOH B 155 7.097 3.538 4.529 1.00 0.00 H +ATOM 489 O HOH B 156 4.483 -4.628 0.738 1.00 0.00 O +ATOM 490 H1 HOH B 156 4.744 -3.711 0.659 1.00 0.00 H +ATOM 491 H2 HOH B 156 4.366 -4.764 1.678 1.00 0.00 H +ATOM 492 O HOH B 157 3.449 -9.038 -9.693 1.00 0.00 O +ATOM 493 H1 HOH B 157 3.938 -9.836 -9.492 1.00 0.00 H +ATOM 494 H2 HOH B 157 2.873 -9.286 -10.416 1.00 0.00 H +ATOM 495 O HOH B 158 -1.364 -0.142 10.058 1.00 0.00 O +ATOM 496 H1 HOH B 158 -0.884 -0.040 9.236 1.00 0.00 H +ATOM 497 H2 HOH B 158 -1.736 0.723 10.228 1.00 0.00 H +ATOM 498 O HOH B 159 -4.055 -8.598 3.153 1.00 0.00 O +ATOM 499 H1 HOH B 159 -4.889 -8.730 2.701 1.00 0.00 H +ATOM 500 H2 HOH B 159 -4.246 -8.798 4.069 1.00 0.00 H +ATOM 501 O HOH B 160 -3.284 -3.771 -1.173 1.00 0.00 O +ATOM 502 H1 HOH B 160 -2.730 -4.534 -1.338 1.00 0.00 H +ATOM 503 H2 HOH B 160 -3.106 -3.537 -0.262 1.00 0.00 H +ATOM 504 O HOH B 161 -1.812 -2.780 10.480 1.00 0.00 O +ATOM 505 H1 HOH B 161 -1.682 -1.853 10.280 1.00 0.00 H +ATOM 506 H2 HOH B 161 -2.744 -2.930 10.323 1.00 0.00 H +ATOM 507 O HOH B 162 -0.888 -6.826 11.671 1.00 0.00 O +ATOM 508 H1 HOH B 162 -1.215 -6.199 12.316 1.00 0.00 H +ATOM 509 H2 HOH B 162 -1.636 -7.396 11.490 1.00 0.00 H +ATOM 510 O HOH B 163 4.344 -7.605 4.569 1.00 0.00 O +ATOM 511 H1 HOH B 163 5.290 -7.752 4.586 1.00 0.00 H +ATOM 512 H2 HOH B 163 4.246 -6.706 4.255 1.00 0.00 H +ATOM 513 O HOH B 164 2.168 5.739 11.475 1.00 0.00 O +ATOM 514 H1 HOH B 164 2.105 4.840 11.798 1.00 0.00 H +ATOM 515 H2 HOH B 164 3.090 5.846 11.243 1.00 0.00 H +ATOM 516 O HOH B 165 -1.327 4.445 4.691 1.00 0.00 O +ATOM 517 H1 HOH B 165 -1.836 4.394 3.882 1.00 0.00 H +ATOM 518 H2 HOH B 165 -0.636 5.080 4.500 1.00 0.00 H +ATOM 519 O HOH B 166 8.052 -3.250 -0.102 1.00 0.00 O +ATOM 520 H1 HOH B 166 7.129 -3.036 0.036 1.00 0.00 H +ATOM 521 H2 HOH B 166 8.338 -2.647 -0.789 1.00 0.00 H +ATOM 522 O HOH B 167 -11.008 -0.765 11.729 1.00 0.00 O +ATOM 523 H1 HOH B 167 -10.295 -0.638 11.103 1.00 0.00 H +ATOM 524 H2 HOH B 167 -10.736 -1.520 12.251 1.00 0.00 H +ATOM 525 O HOH B 168 -7.542 10.009 -13.188 1.00 0.00 O +ATOM 526 H1 HOH B 168 -7.036 10.131 -12.384 1.00 0.00 H +ATOM 527 H2 HOH B 168 -6.883 9.968 -13.882 1.00 0.00 H +ATOM 528 O HOH B 169 -10.556 4.961 -12.019 1.00 0.00 O +ATOM 529 H1 HOH B 169 -10.508 5.807 -12.464 1.00 0.00 H +ATOM 530 H2 HOH B 169 -9.678 4.591 -12.113 1.00 0.00 H +ATOM 531 O HOH B 170 -7.823 -5.387 4.781 1.00 0.00 O +ATOM 532 H1 HOH B 170 -7.034 -5.722 5.207 1.00 0.00 H +ATOM 533 H2 HOH B 170 -8.359 -6.164 4.623 1.00 0.00 H +ATOM 534 O HOH B 171 -7.522 -7.319 9.398 1.00 0.00 O +ATOM 535 H1 HOH B 171 -7.677 -8.225 9.666 1.00 0.00 H +ATOM 536 H2 HOH B 171 -8.184 -7.151 8.727 1.00 0.00 H +ATOM 537 O HOH B 172 -9.902 -0.810 -10.552 1.00 0.00 O +ATOM 538 H1 HOH B 172 -10.748 -1.139 -10.248 1.00 0.00 H +ATOM 539 H2 HOH B 172 -9.970 0.141 -10.467 1.00 0.00 H +ATOM 540 O HOH B 173 6.403 -9.657 1.216 1.00 0.00 O +ATOM 541 H1 HOH B 173 6.995 -8.947 0.967 1.00 0.00 H +ATOM 542 H2 HOH B 173 5.588 -9.464 0.752 1.00 0.00 H +ATOM 543 O HOH B 174 -4.405 -3.133 9.846 1.00 0.00 O +ATOM 544 H1 HOH B 174 -5.083 -2.560 10.205 1.00 0.00 H +ATOM 545 H2 HOH B 174 -4.870 -3.936 9.610 1.00 0.00 H +ATOM 546 O HOH B 175 -10.693 -4.414 -1.098 1.00 0.00 O +ATOM 547 H1 HOH B 175 -11.384 -4.019 -0.566 1.00 0.00 H +ATOM 548 H2 HOH B 175 -11.139 -5.092 -1.606 1.00 0.00 H +ATOM 549 O HOH B 176 -3.116 -12.047 -10.382 1.00 0.00 O +ATOM 550 H1 HOH B 176 -3.554 -11.991 -11.231 1.00 0.00 H +ATOM 551 H2 HOH B 176 -2.292 -11.576 -10.504 1.00 0.00 H +ATOM 552 O HOH B 177 -6.877 -6.169 11.886 1.00 0.00 O +ATOM 553 H1 HOH B 177 -7.018 -6.524 11.009 1.00 0.00 H +ATOM 554 H2 HOH B 177 -6.103 -5.612 11.799 1.00 0.00 H +ATOM 555 O HOH B 178 0.805 -2.701 11.402 1.00 0.00 O +ATOM 556 H1 HOH B 178 -0.106 -2.764 11.117 1.00 0.00 H +ATOM 557 H2 HOH B 178 1.115 -3.607 11.418 1.00 0.00 H +ATOM 558 O HOH B 179 -8.513 -2.067 1.348 1.00 0.00 O +ATOM 559 H1 HOH B 179 -9.361 -2.429 1.602 1.00 0.00 H +ATOM 560 H2 HOH B 179 -7.886 -2.488 1.937 1.00 0.00 H +ATOM 561 O HOH B 180 2.633 4.128 5.108 1.00 0.00 O +ATOM 562 H1 HOH B 180 2.424 4.583 4.292 1.00 0.00 H +ATOM 563 H2 HOH B 180 3.160 3.377 4.835 1.00 0.00 H +ATOM 564 O HOH B 181 -2.195 -11.959 8.676 1.00 0.00 O +ATOM 565 H1 HOH B 181 -1.750 -12.660 9.152 1.00 0.00 H +ATOM 566 H2 HOH B 181 -1.659 -11.822 7.895 1.00 0.00 H +ATOM 567 O HOH B 182 -9.389 -11.484 8.917 1.00 0.00 O +ATOM 568 H1 HOH B 182 -8.797 -11.007 9.498 1.00 0.00 H +ATOM 569 H2 HOH B 182 -9.976 -10.812 8.569 1.00 0.00 H +ATOM 570 O HOH B 183 -5.387 3.103 -6.547 1.00 0.00 O +ATOM 571 H1 HOH B 183 -5.651 2.187 -6.629 1.00 0.00 H +ATOM 572 H2 HOH B 183 -5.550 3.319 -5.629 1.00 0.00 H +ATOM 573 O HOH B 184 -1.259 -1.074 5.276 1.00 0.00 O +ATOM 574 H1 HOH B 184 -1.636 -1.951 5.202 1.00 0.00 H +ATOM 575 H2 HOH B 184 -1.067 -0.818 4.374 1.00 0.00 H +ATOM 576 O HOH B 185 -2.874 -8.548 10.849 1.00 0.00 O +ATOM 577 H1 HOH B 185 -3.770 -8.850 10.999 1.00 0.00 H +ATOM 578 H2 HOH B 185 -2.780 -8.540 9.896 1.00 0.00 H +ATOM 579 O HOH B 186 -6.048 -5.049 8.906 1.00 0.00 O +ATOM 580 H1 HOH B 186 -6.329 -5.960 8.989 1.00 0.00 H +ATOM 581 H2 HOH B 186 -6.799 -4.600 8.519 1.00 0.00 H +ATOM 582 O HOH B 187 5.094 -10.262 8.413 1.00 0.00 O +ATOM 583 H1 HOH B 187 5.551 -10.581 9.191 1.00 0.00 H +ATOM 584 H2 HOH B 187 5.784 -10.142 7.761 1.00 0.00 H +ATOM 585 O HOH B 188 -0.531 1.064 -10.363 1.00 0.00 O +ATOM 586 H1 HOH B 188 -0.376 1.320 -11.272 1.00 0.00 H +ATOM 587 H2 HOH B 188 -1.018 0.242 -10.425 1.00 0.00 H +ATOM 588 O HOH B 189 1.194 -11.890 10.521 1.00 0.00 O +ATOM 589 H1 HOH B 189 1.807 -12.450 10.996 1.00 0.00 H +ATOM 590 H2 HOH B 189 0.570 -11.599 11.186 1.00 0.00 H +ATOM 591 O HOH B 190 -4.343 -2.532 7.171 1.00 0.00 O +ATOM 592 H1 HOH B 190 -5.001 -3.169 6.893 1.00 0.00 H +ATOM 593 H2 HOH B 190 -4.218 -2.707 8.104 1.00 0.00 H +ATOM 594 O HOH B 191 -5.059 3.654 10.129 1.00 0.00 O +ATOM 595 H1 HOH B 191 -4.638 3.249 10.887 1.00 0.00 H +ATOM 596 H2 HOH B 191 -5.111 4.583 10.351 1.00 0.00 H +ATOM 597 O HOH B 192 -6.400 -5.679 -8.402 1.00 0.00 O +ATOM 598 H1 HOH B 192 -6.939 -4.888 -8.377 1.00 0.00 H +ATOM 599 H2 HOH B 192 -5.609 -5.445 -7.915 1.00 0.00 H +ATOM 600 O HOH B 193 7.249 -4.226 -11.704 1.00 0.00 O +ATOM 601 H1 HOH B 193 7.824 -4.418 -10.963 1.00 0.00 H +ATOM 602 H2 HOH B 193 7.842 -4.127 -12.448 1.00 0.00 H +ATOM 603 O HOH B 194 -8.651 5.056 -7.301 1.00 0.00 O +ATOM 604 H1 HOH B 194 -8.202 5.902 -7.298 1.00 0.00 H +ATOM 605 H2 HOH B 194 -8.095 4.492 -7.839 1.00 0.00 H +ATOM 606 O HOH B 195 -6.500 -8.757 1.897 1.00 0.00 O +ATOM 607 H1 HOH B 195 -7.034 -8.372 1.203 1.00 0.00 H +ATOM 608 H2 HOH B 195 -7.134 -9.059 2.548 1.00 0.00 H +ATOM 609 O HOH B 196 1.524 -5.430 11.451 1.00 0.00 O +ATOM 610 H1 HOH B 196 0.721 -5.902 11.230 1.00 0.00 H +ATOM 611 H2 HOH B 196 1.865 -5.885 12.221 1.00 0.00 H +ATOM 612 O HOH B 197 2.550 3.602 -6.927 1.00 0.00 O +ATOM 613 H1 HOH B 197 1.923 2.957 -7.253 1.00 0.00 H +ATOM 614 H2 HOH B 197 2.062 4.104 -6.274 1.00 0.00 H +ATOM 615 O HOH B 198 -11.506 -3.917 11.797 1.00 0.00 O +ATOM 616 H1 HOH B 198 -10.729 -4.287 12.215 1.00 0.00 H +ATOM 617 H2 HOH B 198 -11.177 -3.515 10.993 1.00 0.00 H +ATOM 618 O HOH B 199 1.990 -13.500 0.010 1.00 0.00 O +ATOM 619 H1 HOH B 199 2.536 -13.876 -0.680 1.00 0.00 H +ATOM 620 H2 HOH B 199 2.432 -12.686 0.249 1.00 0.00 H +ATOM 621 O HOH B 200 10.669 6.057 7.694 1.00 0.00 O +ATOM 622 H1 HOH B 200 10.680 5.125 7.911 1.00 0.00 H +ATOM 623 H2 HOH B 200 9.754 6.317 7.800 1.00 0.00 H +ATOM 624 O HOH B 201 1.017 4.689 -2.706 1.00 0.00 O +ATOM 625 H1 HOH B 201 0.775 5.288 -1.999 1.00 0.00 H +ATOM 626 H2 HOH B 201 0.262 4.107 -2.795 1.00 0.00 H +ATOM 627 O HOH B 202 -8.823 -0.645 9.629 1.00 0.00 O +ATOM 628 H1 HOH B 202 -8.964 0.301 9.594 1.00 0.00 H +ATOM 629 H2 HOH B 202 -8.445 -0.863 8.777 1.00 0.00 H +ATOM 630 O HOH B 203 7.357 -11.183 10.649 1.00 0.00 O +ATOM 631 H1 HOH B 203 7.496 -11.586 9.792 1.00 0.00 H +ATOM 632 H2 HOH B 203 7.924 -11.677 11.242 1.00 0.00 H +ATOM 633 O HOH B 204 1.722 9.467 -3.170 1.00 0.00 O +ATOM 634 H1 HOH B 204 1.601 9.910 -4.010 1.00 0.00 H +ATOM 635 H2 HOH B 204 1.940 8.565 -3.403 1.00 0.00 H +ATOM 636 O HOH B 205 8.436 4.068 9.833 1.00 0.00 O +ATOM 637 H1 HOH B 205 8.509 3.351 10.463 1.00 0.00 H +ATOM 638 H2 HOH B 205 8.764 4.835 10.303 1.00 0.00 H +ATOM 639 O HOH B 206 -3.710 3.477 -13.171 1.00 0.00 O +ATOM 640 H1 HOH B 206 -2.962 3.500 -13.767 1.00 0.00 H +ATOM 641 H2 HOH B 206 -3.411 3.947 -12.392 1.00 0.00 H +ATOM 642 O HOH B 207 -6.373 -1.492 10.743 1.00 0.00 O +ATOM 643 H1 HOH B 207 -7.238 -1.247 10.414 1.00 0.00 H +ATOM 644 H2 HOH B 207 -6.379 -1.220 11.661 1.00 0.00 H +ATOM 645 O HOH B 208 -13.120 -4.776 7.061 1.00 0.00 O +ATOM 646 H1 HOH B 208 -13.314 -5.585 7.535 1.00 0.00 H +ATOM 647 H2 HOH B 208 -13.266 -4.081 7.703 1.00 0.00 H +ATOM 648 O HOH B 209 -2.234 -3.625 5.178 1.00 0.00 O +ATOM 649 H1 HOH B 209 -3.022 -3.866 4.691 1.00 0.00 H +ATOM 650 H2 HOH B 209 -2.465 -3.769 6.095 1.00 0.00 H +ATOM 651 O HOH B 210 0.660 7.297 -12.618 1.00 0.00 O +ATOM 652 H1 HOH B 210 0.451 8.164 -12.967 1.00 0.00 H +ATOM 653 H2 HOH B 210 1.267 6.922 -13.255 1.00 0.00 H +ATOM 654 O HOH B 211 -2.344 -3.528 1.493 1.00 0.00 O +ATOM 655 H1 HOH B 211 -1.503 -3.930 1.710 1.00 0.00 H +ATOM 656 H2 HOH B 211 -2.996 -4.165 1.783 1.00 0.00 H +ATOM 657 O HOH B 212 6.269 2.343 -0.477 1.00 0.00 O +ATOM 658 H1 HOH B 212 7.024 2.889 -0.257 1.00 0.00 H +ATOM 659 H2 HOH B 212 5.933 2.047 0.369 1.00 0.00 H +ATOM 660 O HOH B 213 3.590 3.402 9.099 1.00 0.00 O +ATOM 661 H1 HOH B 213 3.204 4.155 8.653 1.00 0.00 H +ATOM 662 H2 HOH B 213 4.529 3.477 8.929 1.00 0.00 H +ATOM 663 O HOH B 214 2.206 -9.996 -11.985 1.00 0.00 O +ATOM 664 H1 HOH B 214 2.754 -10.777 -12.059 1.00 0.00 H +ATOM 665 H2 HOH B 214 2.417 -9.479 -12.763 1.00 0.00 H +ATOM 666 O HOH B 215 -12.471 -10.630 10.311 1.00 0.00 O +ATOM 667 H1 HOH B 215 -13.026 -11.100 9.689 1.00 0.00 H +ATOM 668 H2 HOH B 215 -11.949 -10.039 9.768 1.00 0.00 H +ATOM 669 O HOH B 216 0.464 6.354 3.668 1.00 0.00 O +ATOM 670 H1 HOH B 216 0.374 7.139 3.126 1.00 0.00 H +ATOM 671 H2 HOH B 216 0.830 5.696 3.077 1.00 0.00 H +ATOM 672 O HOH B 217 -3.339 -6.164 2.111 1.00 0.00 O +ATOM 673 H1 HOH B 217 -3.424 -6.961 2.635 1.00 0.00 H +ATOM 674 H2 HOH B 217 -3.549 -6.441 1.218 1.00 0.00 H +ATOM 675 O HOH B 218 -5.463 -6.344 5.872 1.00 0.00 O +ATOM 676 H1 HOH B 218 -5.415 -7.295 5.775 1.00 0.00 H +ATOM 677 H2 HOH B 218 -4.766 -6.130 6.492 1.00 0.00 H +ATOM 678 O HOH B 219 -11.901 -7.174 -3.898 1.00 0.00 O +ATOM 679 H1 HOH B 219 -12.472 -7.357 -4.644 1.00 0.00 H +ATOM 680 H2 HOH B 219 -11.153 -6.711 -4.276 1.00 0.00 H +ATOM 681 O HOH B 220 -2.440 9.520 7.208 1.00 0.00 O +ATOM 682 H1 HOH B 220 -1.991 8.675 7.247 1.00 0.00 H +ATOM 683 H2 HOH B 220 -3.153 9.384 6.584 1.00 0.00 H +ATOM 684 O HOH B 221 -2.559 12.001 -6.130 1.00 0.00 O +ATOM 685 H1 HOH B 221 -2.893 12.739 -5.619 1.00 0.00 H +ATOM 686 H2 HOH B 221 -2.221 12.398 -6.932 1.00 0.00 H +ATOM 687 O HOH B 222 -10.881 5.231 -2.650 1.00 0.00 O +ATOM 688 H1 HOH B 222 -10.362 5.871 -2.162 1.00 0.00 H +ATOM 689 H2 HOH B 222 -10.362 5.050 -3.434 1.00 0.00 H +ATOM 690 O HOH B 223 0.662 1.994 -7.982 1.00 0.00 O +ATOM 691 H1 HOH B 223 0.801 1.062 -7.813 1.00 0.00 H +ATOM 692 H2 HOH B 223 0.100 2.016 -8.757 1.00 0.00 H +ATOM 693 O HOH B 224 -11.262 -8.578 -1.648 1.00 0.00 O +ATOM 694 H1 HOH B 224 -11.543 -8.191 -2.477 1.00 0.00 H +ATOM 695 H2 HOH B 224 -11.480 -7.918 -0.990 1.00 0.00 H +ATOM 696 O HOH B 225 -1.436 7.004 7.686 1.00 0.00 O +ATOM 697 H1 HOH B 225 -1.896 6.205 7.427 1.00 0.00 H +ATOM 698 H2 HOH B 225 -1.021 6.782 8.520 1.00 0.00 H +ATOM 699 O HOH B 226 0.245 -6.816 -11.095 1.00 0.00 O +ATOM 700 H1 HOH B 226 -0.575 -6.433 -11.405 1.00 0.00 H +ATOM 701 H2 HOH B 226 -0.019 -7.415 -10.397 1.00 0.00 H +ATOM 702 O HOH B 227 -3.059 6.457 -7.602 1.00 0.00 O +ATOM 703 H1 HOH B 227 -3.752 6.040 -8.114 1.00 0.00 H +ATOM 704 H2 HOH B 227 -3.519 7.070 -7.030 1.00 0.00 H +ATOM 705 O HOH B 228 -0.418 -8.618 -9.033 1.00 0.00 O +ATOM 706 H1 HOH B 228 0.254 -8.404 -8.385 1.00 0.00 H +ATOM 707 H2 HOH B 228 -1.081 -9.101 -8.540 1.00 0.00 H +ATOM 708 O HOH B 229 -10.174 11.285 5.699 1.00 0.00 O +ATOM 709 H1 HOH B 229 -9.343 10.814 5.771 1.00 0.00 H +ATOM 710 H2 HOH B 229 -9.998 11.988 5.074 1.00 0.00 H +ATOM 711 O HOH B 230 -13.398 7.485 -8.929 1.00 0.00 O +ATOM 712 H1 HOH B 230 -12.477 7.580 -9.174 1.00 0.00 H +ATOM 713 H2 HOH B 230 -13.676 6.672 -9.350 1.00 0.00 H +ATOM 714 O HOH B 231 2.242 11.768 -8.553 1.00 0.00 O +ATOM 715 H1 HOH B 231 2.248 11.194 -9.319 1.00 0.00 H +ATOM 716 H2 HOH B 231 1.321 11.996 -8.431 1.00 0.00 H +ATOM 717 O HOH B 232 0.735 6.677 -0.802 1.00 0.00 O +ATOM 718 H1 HOH B 232 1.028 7.586 -0.741 1.00 0.00 H +ATOM 719 H2 HOH B 232 1.435 6.170 -0.391 1.00 0.00 H +ATOM 720 O HOH B 233 4.315 7.800 7.826 1.00 0.00 O +ATOM 721 H1 HOH B 233 3.973 8.539 8.328 1.00 0.00 H +ATOM 722 H2 HOH B 233 3.653 7.116 7.923 1.00 0.00 H +ATOM 723 O HOH B 234 -0.658 11.447 8.212 1.00 0.00 O +ATOM 724 H1 HOH B 234 -1.315 10.840 7.870 1.00 0.00 H +ATOM 725 H2 HOH B 234 -0.245 11.817 7.432 1.00 0.00 H +ATOM 726 O HOH B 235 -8.931 8.720 3.020 1.00 0.00 O +ATOM 727 H1 HOH B 235 -8.334 9.467 3.052 1.00 0.00 H +ATOM 728 H2 HOH B 235 -8.400 7.975 3.301 1.00 0.00 H +ATOM 729 O HOH B 236 -7.831 7.705 -6.886 1.00 0.00 O +ATOM 730 H1 HOH B 236 -7.134 7.907 -6.262 1.00 0.00 H +ATOM 731 H2 HOH B 236 -8.639 7.940 -6.428 1.00 0.00 H +ATOM 732 O HOH B 237 -11.270 4.997 -8.131 1.00 0.00 O +ATOM 733 H1 HOH B 237 -11.779 4.954 -7.322 1.00 0.00 H +ATOM 734 H2 HOH B 237 -10.358 4.964 -7.843 1.00 0.00 H +ATOM 735 O HOH B 238 10.874 10.912 0.595 1.00 0.00 O +ATOM 736 H1 HOH B 238 11.466 10.162 0.546 1.00 0.00 H +ATOM 737 H2 HOH B 238 10.981 11.357 -0.246 1.00 0.00 H +ATOM 738 O HOH B 239 -6.898 5.503 -11.130 1.00 0.00 O +ATOM 739 H1 HOH B 239 -7.361 6.140 -11.675 1.00 0.00 H +ATOM 740 H2 HOH B 239 -7.372 4.683 -11.266 1.00 0.00 H +ATOM 741 O HOH B 240 2.664 5.517 7.480 1.00 0.00 O +ATOM 742 H1 HOH B 240 2.787 4.963 6.710 1.00 0.00 H +ATOM 743 H2 HOH B 240 1.964 6.122 7.231 1.00 0.00 H +ATOM 744 O HOH B 241 -6.054 9.345 -10.401 1.00 0.00 O +ATOM 745 H1 HOH B 241 -5.736 10.191 -10.716 1.00 0.00 H +ATOM 746 H2 HOH B 241 -5.719 9.280 -9.507 1.00 0.00 H +ATOM 747 O HOH B 242 -3.959 9.523 3.420 1.00 0.00 O +ATOM 748 H1 HOH B 242 -3.981 9.159 4.305 1.00 0.00 H +ATOM 749 H2 HOH B 242 -3.442 8.896 2.915 1.00 0.00 H +ATOM 750 O HOH B 243 -4.322 -8.118 -7.485 1.00 0.00 O +ATOM 751 H1 HOH B 243 -4.442 -7.623 -8.296 1.00 0.00 H +ATOM 752 H2 HOH B 243 -4.146 -9.013 -7.774 1.00 0.00 H +ATOM 753 O HOH B 244 -9.199 6.660 -1.040 1.00 0.00 O +ATOM 754 H1 HOH B 244 -9.632 7.400 -0.614 1.00 0.00 H +ATOM 755 H2 HOH B 244 -8.629 6.294 -0.364 1.00 0.00 H +ATOM 756 O HOH B 245 -10.129 1.937 -10.289 1.00 0.00 O +ATOM 757 H1 HOH B 245 -9.462 2.591 -10.499 1.00 0.00 H +ATOM 758 H2 HOH B 245 -10.164 1.929 -9.332 1.00 0.00 H +ATOM 759 O HOH B 246 -9.326 4.366 -4.727 1.00 0.00 O +ATOM 760 H1 HOH B 246 -9.089 4.716 -5.585 1.00 0.00 H +ATOM 761 H2 HOH B 246 -9.661 3.488 -4.910 1.00 0.00 H +ATOM 762 O HOH B 247 -6.835 10.919 -6.251 1.00 0.00 O +ATOM 763 H1 HOH B 247 -6.202 10.709 -6.937 1.00 0.00 H +ATOM 764 H2 HOH B 247 -7.530 11.396 -6.705 1.00 0.00 H +ATOM 765 O HOH B 248 -12.792 4.961 -10.461 1.00 0.00 O +ATOM 766 H1 HOH B 248 -12.393 4.810 -9.604 1.00 0.00 H +ATOM 767 H2 HOH B 248 -12.065 4.888 -11.080 1.00 0.00 H +ATOM 768 O HOH B 249 -6.780 12.142 -1.036 1.00 0.00 O +ATOM 769 H1 HOH B 249 -7.149 12.857 -1.554 1.00 0.00 H +ATOM 770 H2 HOH B 249 -6.319 12.578 -0.319 1.00 0.00 H +ATOM 771 O HOH B 250 -3.696 11.781 -1.981 1.00 0.00 O +ATOM 772 H1 HOH B 250 -3.575 12.585 -1.476 1.00 0.00 H +ATOM 773 H2 HOH B 250 -4.482 11.942 -2.504 1.00 0.00 H +ATOM 774 O HOH B 251 -0.870 -11.314 -4.152 1.00 0.00 O +ATOM 775 H1 HOH B 251 -0.127 -11.857 -4.418 1.00 0.00 H +ATOM 776 H2 HOH B 251 -0.804 -11.268 -3.198 1.00 0.00 H +ATOM 777 O HOH B 252 -2.515 8.652 -12.241 1.00 0.00 O +ATOM 778 H1 HOH B 252 -3.173 8.002 -11.995 1.00 0.00 H +ATOM 779 H2 HOH B 252 -3.022 9.383 -12.597 1.00 0.00 H +ATOM 780 O HOH B 253 -12.671 0.974 -10.831 1.00 0.00 O +ATOM 781 H1 HOH B 253 -13.329 1.428 -11.358 1.00 0.00 H +ATOM 782 H2 HOH B 253 -11.888 1.520 -10.905 1.00 0.00 H +ATOM 783 O HOH B 254 2.117 10.755 -5.639 1.00 0.00 O +ATOM 784 H1 HOH B 254 2.120 10.593 -6.583 1.00 0.00 H +ATOM 785 H2 HOH B 254 3.027 10.625 -5.371 1.00 0.00 H +ATOM 786 O HOH B 255 -6.006 2.115 4.594 1.00 0.00 O +ATOM 787 H1 HOH B 255 -6.271 2.260 5.502 1.00 0.00 H +ATOM 788 H2 HOH B 255 -5.259 1.520 4.654 1.00 0.00 H +ATOM 789 O HOH B 256 -9.360 9.534 -2.892 1.00 0.00 O +ATOM 790 H1 HOH B 256 -9.520 9.935 -2.038 1.00 0.00 H +ATOM 791 H2 HOH B 256 -8.499 9.859 -3.153 1.00 0.00 H +ATOM 792 O HOH B 257 -2.048 9.593 -2.361 1.00 0.00 O +ATOM 793 H1 HOH B 257 -1.915 9.525 -3.307 1.00 0.00 H +ATOM 794 H2 HOH B 257 -2.565 10.391 -2.248 1.00 0.00 H +ATOM 795 O HOH B 258 -10.272 8.692 0.530 1.00 0.00 O +ATOM 796 H1 HOH B 258 -9.968 9.525 0.168 1.00 0.00 H +ATOM 797 H2 HOH B 258 -9.903 8.666 1.413 1.00 0.00 H +ATOM 798 O HOH B 259 6.533 -10.543 -12.299 1.00 0.00 O +ATOM 799 H1 HOH B 259 6.922 -10.891 -13.101 1.00 0.00 H +ATOM 800 H2 HOH B 259 5.710 -11.022 -12.204 1.00 0.00 H +ATOM 801 O HOH B 260 -12.601 -13.591 12.268 1.00 0.00 O +ATOM 802 H1 HOH B 260 -12.099 -13.438 11.467 1.00 0.00 H +ATOM 803 H2 HOH B 260 -12.573 -12.755 12.733 1.00 0.00 H +ATOM 804 O HOH B 261 -12.511 3.218 2.393 1.00 0.00 O +ATOM 805 H1 HOH B 261 -13.188 2.880 2.979 1.00 0.00 H +ATOM 806 H2 HOH B 261 -12.934 3.942 1.930 1.00 0.00 H +ATOM 807 O HOH B 262 -6.976 10.622 -3.620 1.00 0.00 O +ATOM 808 H1 HOH B 262 -7.014 11.495 -3.230 1.00 0.00 H +ATOM 809 H2 HOH B 262 -6.895 10.783 -4.560 1.00 0.00 H +ATOM 810 O HOH B 263 -3.193 -11.593 1.980 1.00 0.00 O +ATOM 811 H1 HOH B 263 -3.108 -11.738 2.923 1.00 0.00 H +ATOM 812 H2 HOH B 263 -2.578 -10.884 1.791 1.00 0.00 H +ATOM 813 O HOH B 264 -2.409 6.005 11.724 1.00 0.00 O +ATOM 814 H1 HOH B 264 -1.663 5.865 11.142 1.00 0.00 H +ATOM 815 H2 HOH B 264 -2.039 5.950 12.605 1.00 0.00 H +ATOM 816 O HOH B 265 -10.159 5.574 4.736 1.00 0.00 O +ATOM 817 H1 HOH B 265 -11.050 5.662 5.075 1.00 0.00 H +ATOM 818 H2 HOH B 265 -9.650 6.220 5.227 1.00 0.00 H +ATOM 819 O HOH B 266 -9.947 8.473 -5.385 1.00 0.00 O +ATOM 820 H1 HOH B 266 -9.756 8.771 -4.496 1.00 0.00 H +ATOM 821 H2 HOH B 266 -10.858 8.728 -5.534 1.00 0.00 H +ATOM 822 O HOH B 267 1.941 9.619 6.297 1.00 0.00 O +ATOM 823 H1 HOH B 267 2.549 9.532 5.563 1.00 0.00 H +ATOM 824 H2 HOH B 267 1.501 8.770 6.345 1.00 0.00 H +ATOM 825 O HOH B 268 -6.377 8.109 -4.528 1.00 0.00 O +ATOM 826 H1 HOH B 268 -6.594 8.933 -4.093 1.00 0.00 H +ATOM 827 H2 HOH B 268 -6.828 7.439 -4.014 1.00 0.00 H +ATOM 828 O HOH B 269 -2.750 4.755 -10.903 1.00 0.00 O +ATOM 829 H1 HOH B 269 -3.320 5.422 -10.521 1.00 0.00 H +ATOM 830 H2 HOH B 269 -1.969 4.760 -10.349 1.00 0.00 H +ATOM 831 O HOH B 270 0.442 -12.940 -11.881 1.00 0.00 O +ATOM 832 H1 HOH B 270 -0.323 -13.398 -12.229 1.00 0.00 H +ATOM 833 H2 HOH B 270 0.112 -12.076 -11.632 1.00 0.00 H +ATOM 834 O HOH B 271 -10.841 -12.270 -9.662 1.00 0.00 O +ATOM 835 H1 HOH B 271 -10.291 -13.020 -9.438 1.00 0.00 H +ATOM 836 H2 HOH B 271 -10.535 -11.568 -9.088 1.00 0.00 H +ATOM 837 O HOH B 272 -4.121 8.240 -5.929 1.00 0.00 O +ATOM 838 H1 HOH B 272 -4.875 8.164 -5.343 1.00 0.00 H +ATOM 839 H2 HOH B 272 -3.426 8.602 -5.380 1.00 0.00 H +ATOM 840 O HOH B 273 -3.610 2.279 8.029 1.00 0.00 O +ATOM 841 H1 HOH B 273 -4.484 2.514 8.340 1.00 0.00 H +ATOM 842 H2 HOH B 273 -3.751 1.513 7.472 1.00 0.00 H +ATOM 843 O HOH B 274 -5.663 7.761 1.138 1.00 0.00 O +ATOM 844 H1 HOH B 274 -4.799 7.727 1.549 1.00 0.00 H +ATOM 845 H2 HOH B 274 -5.592 8.462 0.489 1.00 0.00 H +ATOM 846 O HOH B 275 11.653 12.187 -4.684 1.00 0.00 O +ATOM 847 H1 HOH B 275 10.811 12.077 -5.127 1.00 0.00 H +ATOM 848 H2 HOH B 275 12.270 12.385 -5.388 1.00 0.00 H +ATOM 849 O HOH B 276 11.192 7.407 5.326 1.00 0.00 O +ATOM 850 H1 HOH B 276 12.145 7.472 5.252 1.00 0.00 H +ATOM 851 H2 HOH B 276 11.044 7.035 6.195 1.00 0.00 H +ATOM 852 O HOH B 277 -5.203 6.058 11.393 1.00 0.00 O +ATOM 853 H1 HOH B 277 -5.568 6.511 12.153 1.00 0.00 H +ATOM 854 H2 HOH B 277 -4.255 6.098 11.521 1.00 0.00 H +ATOM 855 O HOH B 278 -0.512 -12.105 -1.293 1.00 0.00 O +ATOM 856 H1 HOH B 278 0.124 -12.817 -1.357 1.00 0.00 H +ATOM 857 H2 HOH B 278 -1.070 -12.347 -0.555 1.00 0.00 H +ATOM 858 O HOH B 279 0.196 9.548 -0.833 1.00 0.00 O +ATOM 859 H1 HOH B 279 -0.598 9.581 -1.365 1.00 0.00 H +ATOM 860 H2 HOH B 279 0.912 9.607 -1.465 1.00 0.00 H +ATOM 861 O HOH B 280 -5.594 9.928 11.018 1.00 0.00 O +ATOM 862 H1 HOH B 280 -4.937 9.410 10.553 1.00 0.00 H +ATOM 863 H2 HOH B 280 -5.599 10.771 10.565 1.00 0.00 H +ATOM 864 O HOH B 281 -6.440 -11.362 5.899 1.00 0.00 O +ATOM 865 H1 HOH B 281 -5.693 -11.874 5.590 1.00 0.00 H +ATOM 866 H2 HOH B 281 -6.870 -11.928 6.540 1.00 0.00 H +ATOM 867 O HOH B 282 3.230 -0.940 -12.260 1.00 0.00 O +ATOM 868 H1 HOH B 282 2.639 -1.172 -12.976 1.00 0.00 H +ATOM 869 H2 HOH B 282 2.779 -1.239 -11.470 1.00 0.00 H +ATOM 870 O HOH B 283 -2.099 2.513 10.350 1.00 0.00 O +ATOM 871 H1 HOH B 283 -1.387 2.986 9.919 1.00 0.00 H +ATOM 872 H2 HOH B 283 -2.783 2.451 9.684 1.00 0.00 H +ATOM 873 O HOH B 284 0.668 -0.812 -7.744 1.00 0.00 O +ATOM 874 H1 HOH B 284 0.627 -1.469 -7.050 1.00 0.00 H +ATOM 875 H2 HOH B 284 -0.216 -0.795 -8.111 1.00 0.00 H +ATOM 876 O HOH B 285 -2.560 6.068 -3.587 1.00 0.00 O +ATOM 877 H1 HOH B 285 -3.426 6.225 -3.210 1.00 0.00 H +ATOM 878 H2 HOH B 285 -1.956 6.514 -2.994 1.00 0.00 H +ATOM 879 O HOH B 286 5.479 1.263 -8.172 1.00 0.00 O +ATOM 880 H1 HOH B 286 5.754 1.980 -7.600 1.00 0.00 H +ATOM 881 H2 HOH B 286 5.026 0.652 -7.590 1.00 0.00 H +ATOM 882 O HOH B 287 -1.577 4.937 -5.890 1.00 0.00 O +ATOM 883 H1 HOH B 287 -1.916 5.229 -5.044 1.00 0.00 H +ATOM 884 H2 HOH B 287 -2.078 5.437 -6.535 1.00 0.00 H +ATOM 885 O HOH B 288 11.284 5.922 -0.865 1.00 0.00 O +ATOM 886 H1 HOH B 288 11.046 5.329 -0.152 1.00 0.00 H +ATOM 887 H2 HOH B 288 10.916 5.514 -1.649 1.00 0.00 H +ATOM 888 O HOH B 289 -6.779 7.140 4.506 1.00 0.00 O +ATOM 889 H1 HOH B 289 -6.444 6.307 4.172 1.00 0.00 H +ATOM 890 H2 HOH B 289 -7.376 6.893 5.212 1.00 0.00 H +ATOM 891 O HOH B 290 11.071 1.914 -12.119 1.00 0.00 O +ATOM 892 H1 HOH B 290 11.137 1.291 -12.843 1.00 0.00 H +ATOM 893 H2 HOH B 290 10.342 2.485 -12.360 1.00 0.00 H +ATOM 894 O HOH B 291 -5.486 -9.518 -12.074 1.00 0.00 O +ATOM 895 H1 HOH B 291 -5.086 -8.747 -11.672 1.00 0.00 H +ATOM 896 H2 HOH B 291 -6.273 -9.679 -11.554 1.00 0.00 H +ATOM 897 O HOH B 292 -7.719 10.044 6.083 1.00 0.00 O +ATOM 898 H1 HOH B 292 -7.372 10.065 5.191 1.00 0.00 H +ATOM 899 H2 HOH B 292 -6.954 9.878 6.634 1.00 0.00 H +ATOM 900 O HOH B 293 8.802 1.203 -4.843 1.00 0.00 O +ATOM 901 H1 HOH B 293 8.169 1.233 -4.126 1.00 0.00 H +ATOM 902 H2 HOH B 293 9.512 1.780 -4.560 1.00 0.00 H +ATOM 903 O HOH B 294 -12.119 5.487 0.000 1.00 0.00 O +ATOM 904 H1 HOH B 294 -12.984 5.843 -0.206 1.00 0.00 H +ATOM 905 H2 HOH B 294 -11.723 5.310 -0.853 1.00 0.00 H +ATOM 906 O HOH B 295 -0.041 8.465 1.935 1.00 0.00 O +ATOM 907 H1 HOH B 295 -0.990 8.578 1.996 1.00 0.00 H +ATOM 908 H2 HOH B 295 0.198 8.881 1.107 1.00 0.00 H +ATOM 909 O HOH B 296 -0.681 7.929 -7.301 1.00 0.00 O +ATOM 910 H1 HOH B 296 -0.349 8.162 -8.168 1.00 0.00 H +ATOM 911 H2 HOH B 296 -1.478 7.428 -7.475 1.00 0.00 H +ATOM 912 O HOH B 297 -10.122 -7.316 -11.825 1.00 0.00 O +ATOM 913 H1 HOH B 297 -9.752 -6.576 -12.307 1.00 0.00 H +ATOM 914 H2 HOH B 297 -9.578 -7.386 -11.040 1.00 0.00 H +ATOM 915 O HOH B 298 2.931 10.055 -13.261 1.00 0.00 O +ATOM 916 H1 HOH B 298 3.665 10.663 -13.169 1.00 0.00 H +ATOM 917 H2 HOH B 298 2.389 10.437 -13.952 1.00 0.00 H +ATOM 918 O HOH B 299 4.394 -0.980 -6.400 1.00 0.00 O +ATOM 919 H1 HOH B 299 4.017 -1.815 -6.679 1.00 0.00 H +ATOM 920 H2 HOH B 299 3.687 -0.546 -5.923 1.00 0.00 H +ATOM 921 O HOH B 300 -12.895 -9.990 -7.481 1.00 0.00 O +ATOM 922 H1 HOH B 300 -13.338 -10.708 -7.933 1.00 0.00 H +ATOM 923 H2 HOH B 300 -13.368 -9.899 -6.654 1.00 0.00 H +ATOM 924 O HOH B 301 -1.016 8.546 11.067 1.00 0.00 O +ATOM 925 H1 HOH B 301 -1.486 8.250 11.846 1.00 0.00 H +ATOM 926 H2 HOH B 301 -0.713 7.741 10.648 1.00 0.00 H +ATOM 927 O HOH B 302 2.787 9.890 8.888 1.00 0.00 O +ATOM 928 H1 HOH B 302 2.461 9.939 7.990 1.00 0.00 H +ATOM 929 H2 HOH B 302 2.014 10.037 9.433 1.00 0.00 H +ATOM 930 O HOH B 303 -6.594 2.405 7.264 1.00 0.00 O +ATOM 931 H1 HOH B 303 -7.333 2.030 7.744 1.00 0.00 H +ATOM 932 H2 HOH B 303 -6.624 3.339 7.470 1.00 0.00 H +ATOM 933 O HOH B 304 0.712 10.626 10.478 1.00 0.00 O +ATOM 934 H1 HOH B 304 0.077 9.970 10.763 1.00 0.00 H +ATOM 935 H2 HOH B 304 0.265 11.105 9.780 1.00 0.00 H +ATOM 936 O HOH B 305 -0.061 3.596 8.896 1.00 0.00 O +ATOM 937 H1 HOH B 305 0.534 3.010 9.364 1.00 0.00 H +ATOM 938 H2 HOH B 305 0.059 3.372 7.973 1.00 0.00 H +ATOM 939 O HOH B 306 -0.143 6.064 10.005 1.00 0.00 O +ATOM 940 H1 HOH B 306 -0.155 5.224 9.546 1.00 0.00 H +ATOM 941 H2 HOH B 306 0.714 6.092 10.431 1.00 0.00 H +ATOM 942 O HOH B 307 -8.132 7.289 -12.822 1.00 0.00 O +ATOM 943 H1 HOH B 307 -9.070 7.291 -13.008 1.00 0.00 H +ATOM 944 H2 HOH B 307 -7.858 8.197 -12.958 1.00 0.00 H +ATOM 945 O HOH B 308 0.809 11.998 5.597 1.00 0.00 O +ATOM 946 H1 HOH B 308 0.797 11.888 4.646 1.00 0.00 H +ATOM 947 H2 HOH B 308 1.222 11.200 5.926 1.00 0.00 H +ATOM 948 O HOH B 309 -5.168 -10.162 11.261 1.00 0.00 O +ATOM 949 H1 HOH B 309 -4.794 -11.027 11.428 1.00 0.00 H +ATOM 950 H2 HOH B 309 -5.313 -9.791 12.131 1.00 0.00 H +ATOM 951 O HOH B 310 10.711 3.366 8.400 1.00 0.00 O +ATOM 952 H1 HOH B 310 11.248 2.776 8.929 1.00 0.00 H +ATOM 953 H2 HOH B 310 9.894 3.451 8.890 1.00 0.00 H +ATOM 954 O HOH B 311 -2.858 7.523 1.846 1.00 0.00 O +ATOM 955 H1 HOH B 311 -2.646 6.659 2.198 1.00 0.00 H +ATOM 956 H2 HOH B 311 -2.636 7.466 0.917 1.00 0.00 H +ATOM 957 O HOH B 312 3.846 12.142 10.412 1.00 0.00 O +ATOM 958 H1 HOH B 312 4.610 12.058 9.842 1.00 0.00 H +ATOM 959 H2 HOH B 312 3.203 11.538 10.041 1.00 0.00 H +ATOM 960 O HOH B 313 2.554 11.506 2.695 1.00 0.00 O +ATOM 961 H1 HOH B 313 2.134 11.565 1.837 1.00 0.00 H +ATOM 962 H2 HOH B 313 3.012 12.340 2.797 1.00 0.00 H +ATOM 963 O HOH B 314 -13.576 12.435 9.283 1.00 0.00 O +ATOM 964 H1 HOH B 314 -13.834 11.661 9.785 1.00 0.00 H +ATOM 965 H2 HOH B 314 -12.622 12.379 9.230 1.00 0.00 H +ATOM 966 O HOH B 315 -5.065 11.792 -10.937 1.00 0.00 O +ATOM 967 H1 HOH B 315 -4.169 12.115 -10.835 1.00 0.00 H +ATOM 968 H2 HOH B 315 -5.580 12.315 -10.323 1.00 0.00 H +ATOM 969 O HOH B 316 -7.800 3.766 11.136 1.00 0.00 O +ATOM 970 H1 HOH B 316 -7.320 3.179 11.720 1.00 0.00 H +ATOM 971 H2 HOH B 316 -7.142 4.390 10.830 1.00 0.00 H +ATOM 972 O HOH B 317 -3.901 -9.813 8.379 1.00 0.00 O +ATOM 973 H1 HOH B 317 -4.524 -9.997 9.083 1.00 0.00 H +ATOM 974 H2 HOH B 317 -3.263 -10.525 8.431 1.00 0.00 H +ATOM 975 O HOH B 318 -8.509 8.591 -9.355 1.00 0.00 O +ATOM 976 H1 HOH B 318 -7.715 8.791 -9.851 1.00 0.00 H +ATOM 977 H2 HOH B 318 -8.191 8.269 -8.512 1.00 0.00 H +ATOM 978 O HOH B 319 -12.047 9.707 -11.425 1.00 0.00 O +ATOM 979 H1 HOH B 319 -11.124 9.609 -11.658 1.00 0.00 H +ATOM 980 H2 HOH B 319 -12.034 10.051 -10.532 1.00 0.00 H +ATOM 981 O HOH B 320 -12.078 7.539 8.648 1.00 0.00 O +ATOM 982 H1 HOH B 320 -11.834 6.907 7.972 1.00 0.00 H +ATOM 983 H2 HOH B 320 -11.578 8.326 8.433 1.00 0.00 H +ATOM 984 O HOH B 321 2.080 -11.029 8.069 1.00 0.00 O +ATOM 985 H1 HOH B 321 1.731 -11.415 8.872 1.00 0.00 H +ATOM 986 H2 HOH B 321 3.030 -11.104 8.159 1.00 0.00 H +ATOM 987 O HOH B 322 -4.704 8.349 5.854 1.00 0.00 O +ATOM 988 H1 HOH B 322 -5.397 7.993 5.299 1.00 0.00 H +ATOM 989 H2 HOH B 322 -4.651 7.742 6.592 1.00 0.00 H +ATOM 990 O HOH B 323 5.881 5.849 6.703 1.00 0.00 O +ATOM 991 H1 HOH B 323 5.526 5.738 5.821 1.00 0.00 H +ATOM 992 H2 HOH B 323 5.324 6.517 7.103 1.00 0.00 H +ATOM 993 O HOH B 324 -0.395 -11.814 6.572 1.00 0.00 O +ATOM 994 H1 HOH B 324 0.345 -11.331 6.939 1.00 0.00 H +ATOM 995 H2 HOH B 324 0.002 -12.567 6.135 1.00 0.00 H +ATOM 996 O HOH B 325 -3.495 8.743 9.631 1.00 0.00 O +ATOM 997 H1 HOH B 325 -3.222 9.153 8.811 1.00 0.00 H +ATOM 998 H2 HOH B 325 -2.698 8.708 10.160 1.00 0.00 H +ATOM 999 O HOH B 326 4.685 -5.218 -11.837 1.00 0.00 O +ATOM 1000 H1 HOH B 326 5.608 -5.035 -11.664 1.00 0.00 H +ATOM 1001 H2 HOH B 326 4.424 -4.552 -12.474 1.00 0.00 H +ATOM 1002 O HOH B 327 0.944 7.601 -9.877 1.00 0.00 O +ATOM 1003 H1 HOH B 327 0.705 7.364 -10.774 1.00 0.00 H +ATOM 1004 H2 HOH B 327 1.305 6.796 -9.505 1.00 0.00 H +ATOM 1005 O HOH B 328 11.436 -10.955 12.121 1.00 0.00 O +ATOM 1006 H1 HOH B 328 10.928 -11.054 11.315 1.00 0.00 H +ATOM 1007 H2 HOH B 328 12.305 -10.684 11.824 1.00 0.00 H +ATOM 1008 O HOH B 329 -4.543 -12.016 -12.714 1.00 0.00 O +ATOM 1009 H1 HOH B 329 -5.198 -12.701 -12.581 1.00 0.00 H +ATOM 1010 H2 HOH B 329 -4.973 -11.213 -12.417 1.00 0.00 H +ATOM 1011 O HOH B 330 -7.603 -13.155 7.710 1.00 0.00 O +ATOM 1012 H1 HOH B 330 -8.261 -12.600 8.129 1.00 0.00 H +ATOM 1013 H2 HOH B 330 -8.088 -13.928 7.423 1.00 0.00 H +ATOM 1014 O HOH B 331 1.160 -5.551 -8.043 1.00 0.00 O +ATOM 1015 H1 HOH B 331 1.855 -5.654 -8.693 1.00 0.00 H +ATOM 1016 H2 HOH B 331 1.101 -6.406 -7.617 1.00 0.00 H +ATOM 1017 O HOH B 332 -1.547 -7.516 -5.656 1.00 0.00 O +ATOM 1018 H1 HOH B 332 -0.692 -7.798 -5.980 1.00 0.00 H +ATOM 1019 H2 HOH B 332 -2.142 -7.661 -6.392 1.00 0.00 H +ATOM 1020 O HOH B 333 11.393 1.723 -6.793 1.00 0.00 O +ATOM 1021 H1 HOH B 333 10.467 1.497 -6.882 1.00 0.00 H +ATOM 1022 H2 HOH B 333 11.614 2.157 -7.617 1.00 0.00 H +ATOM 1023 O HOH B 334 5.961 -6.038 -1.038 1.00 0.00 O +ATOM 1024 H1 HOH B 334 5.953 -5.576 -1.876 1.00 0.00 H +ATOM 1025 H2 HOH B 334 5.383 -5.522 -0.474 1.00 0.00 H +ATOM 1026 O HOH B 335 10.272 -5.086 0.705 1.00 0.00 O +ATOM 1027 H1 HOH B 335 9.500 -4.702 0.288 1.00 0.00 H +ATOM 1028 H2 HOH B 335 9.956 -5.904 1.088 1.00 0.00 H +ATOM 1029 O HOH B 336 10.320 -5.687 -2.450 1.00 0.00 O +ATOM 1030 H1 HOH B 336 9.763 -4.909 -2.422 1.00 0.00 H +ATOM 1031 H2 HOH B 336 10.753 -5.642 -3.303 1.00 0.00 H +ATOM 1032 O HOH B 337 10.444 -11.436 -3.206 1.00 0.00 O +ATOM 1033 H1 HOH B 337 9.509 -11.482 -3.006 1.00 0.00 H +ATOM 1034 H2 HOH B 337 10.602 -12.180 -3.787 1.00 0.00 H +ATOM 1035 O HOH B 338 -13.636 -6.807 3.668 1.00 0.00 O +ATOM 1036 H1 HOH B 338 -13.004 -6.104 3.818 1.00 0.00 H +ATOM 1037 H2 HOH B 338 -13.801 -6.784 2.725 1.00 0.00 H +ATOM 1038 O HOH B 339 5.980 -1.442 -12.045 1.00 0.00 O +ATOM 1039 H1 HOH B 339 5.048 -1.248 -12.147 1.00 0.00 H +ATOM 1040 H2 HOH B 339 6.004 -2.353 -11.750 1.00 0.00 H +ATOM 1041 O HOH B 340 5.138 -8.592 -1.327 1.00 0.00 O +ATOM 1042 H1 HOH B 340 5.764 -8.841 -2.007 1.00 0.00 H +ATOM 1043 H2 HOH B 340 5.355 -7.683 -1.122 1.00 0.00 H +ATOM 1044 O HOH B 341 2.570 -6.858 -12.566 1.00 0.00 O +ATOM 1045 H1 HOH B 341 1.812 -6.894 -11.982 1.00 0.00 H +ATOM 1046 H2 HOH B 341 3.197 -6.296 -12.111 1.00 0.00 H +ATOM 1047 O HOH B 342 11.966 -8.122 1.037 1.00 0.00 O +ATOM 1048 H1 HOH B 342 11.904 -8.537 0.176 1.00 0.00 H +ATOM 1049 H2 HOH B 342 11.570 -8.754 1.637 1.00 0.00 H +ATOM 1050 O HOH B 343 11.236 -6.202 -8.903 1.00 0.00 O +ATOM 1051 H1 HOH B 343 11.057 -7.139 -8.830 1.00 0.00 H +ATOM 1052 H2 HOH B 343 12.191 -6.139 -8.890 1.00 0.00 H +ATOM 1053 O HOH B 344 -13.059 9.157 -0.013 1.00 0.00 O +ATOM 1054 H1 HOH B 344 -13.103 8.801 -0.901 1.00 0.00 H +ATOM 1055 H2 HOH B 344 -12.180 8.933 0.292 1.00 0.00 H +ATOM 1056 O HOH B 345 0.866 -2.216 6.688 1.00 0.00 O +ATOM 1057 H1 HOH B 345 0.149 -1.727 6.285 1.00 0.00 H +ATOM 1058 H2 HOH B 345 1.447 -1.543 7.041 1.00 0.00 H +ATOM 1059 O HOH B 346 4.714 10.402 -4.949 1.00 0.00 O +ATOM 1060 H1 HOH B 346 5.126 11.056 -5.514 1.00 0.00 H +ATOM 1061 H2 HOH B 346 5.119 9.573 -5.207 1.00 0.00 H +ATOM 1062 O HOH B 347 3.211 -6.214 -9.698 1.00 0.00 O +ATOM 1063 H1 HOH B 347 3.837 -5.789 -10.285 1.00 0.00 H +ATOM 1064 H2 HOH B 347 3.362 -7.151 -9.823 1.00 0.00 H +ATOM 1065 O HOH B 348 -7.983 -9.842 4.117 1.00 0.00 O +ATOM 1066 H1 HOH B 348 -7.435 -10.289 4.762 1.00 0.00 H +ATOM 1067 H2 HOH B 348 -8.542 -10.531 3.758 1.00 0.00 H +ATOM 1068 O HOH B 349 11.702 -7.869 6.197 1.00 0.00 O +ATOM 1069 H1 HOH B 349 12.570 -8.243 6.348 1.00 0.00 H +ATOM 1070 H2 HOH B 349 11.745 -7.512 5.310 1.00 0.00 H +ATOM 1071 O HOH B 350 -3.110 -6.053 7.238 1.00 0.00 O +ATOM 1072 H1 HOH B 350 -2.396 -6.662 7.048 1.00 0.00 H +ATOM 1073 H2 HOH B 350 -2.926 -5.737 8.123 1.00 0.00 H +ATOM 1074 O HOH B 351 -8.101 -4.944 -0.529 1.00 0.00 O +ATOM 1075 H1 HOH B 351 -9.030 -4.754 -0.659 1.00 0.00 H +ATOM 1076 H2 HOH B 351 -7.652 -4.148 -0.812 1.00 0.00 H +ATOM 1077 O HOH B 352 5.448 -2.104 0.144 1.00 0.00 O +ATOM 1078 H1 HOH B 352 5.160 -2.038 -0.766 1.00 0.00 H +ATOM 1079 H2 HOH B 352 5.087 -1.326 0.568 1.00 0.00 H +ATOM 1080 O HOH B 353 9.890 3.390 4.091 1.00 0.00 O +ATOM 1081 H1 HOH B 353 9.716 4.330 4.057 1.00 0.00 H +ATOM 1082 H2 HOH B 353 9.200 3.038 4.653 1.00 0.00 H +ATOM 1083 O HOH B 354 -11.726 12.014 -2.406 1.00 0.00 O +ATOM 1084 H1 HOH B 354 -10.993 12.067 -3.019 1.00 0.00 H +ATOM 1085 H2 HOH B 354 -12.133 11.168 -2.591 1.00 0.00 H +ATOM 1086 O HOH B 355 -12.848 -9.907 -11.631 1.00 0.00 O +ATOM 1087 H1 HOH B 355 -12.941 -9.018 -11.972 1.00 0.00 H +ATOM 1088 H2 HOH B 355 -13.634 -10.363 -11.931 1.00 0.00 H +ATOM 1089 O HOH B 356 11.699 9.804 -7.840 1.00 0.00 O +ATOM 1090 H1 HOH B 356 12.043 8.983 -8.192 1.00 0.00 H +ATOM 1091 H2 HOH B 356 12.148 10.486 -8.339 1.00 0.00 H +ATOM 1092 O HOH B 357 6.527 -1.289 -8.813 1.00 0.00 O +ATOM 1093 H1 HOH B 357 6.953 -1.338 -7.957 1.00 0.00 H +ATOM 1094 H2 HOH B 357 6.256 -0.374 -8.893 1.00 0.00 H +ATOM 1095 O HOH B 358 11.929 -2.159 2.061 1.00 0.00 O +ATOM 1096 H1 HOH B 358 11.491 -2.820 2.598 1.00 0.00 H +ATOM 1097 H2 HOH B 358 11.214 -1.681 1.640 1.00 0.00 H +ATOM 1098 O HOH B 359 -11.753 1.143 -8.026 1.00 0.00 O +ATOM 1099 H1 HOH B 359 -12.277 1.304 -8.811 1.00 0.00 H +ATOM 1100 H2 HOH B 359 -12.058 0.294 -7.704 1.00 0.00 H +ATOM 1101 O HOH B 360 8.142 5.702 -12.165 1.00 0.00 O +ATOM 1102 H1 HOH B 360 8.958 5.477 -11.719 1.00 0.00 H +ATOM 1103 H2 HOH B 360 7.782 6.428 -11.655 1.00 0.00 H +ATOM 1104 O HOH B 361 7.143 -12.505 -4.962 1.00 0.00 O +ATOM 1105 H1 HOH B 361 7.321 -12.171 -4.083 1.00 0.00 H +ATOM 1106 H2 HOH B 361 6.207 -12.709 -4.957 1.00 0.00 H +ATOM 1107 O HOH B 362 9.589 -8.162 -1.742 1.00 0.00 O +ATOM 1108 H1 HOH B 362 9.920 -7.294 -1.971 1.00 0.00 H +ATOM 1109 H2 HOH B 362 10.375 -8.686 -1.586 1.00 0.00 H +ATOM 1110 O HOH B 363 11.892 -12.222 6.238 1.00 0.00 O +ATOM 1111 H1 HOH B 363 11.486 -12.046 5.389 1.00 0.00 H +ATOM 1112 H2 HOH B 363 11.234 -11.954 6.879 1.00 0.00 H +ATOM 1113 O HOH B 364 8.991 10.305 2.588 1.00 0.00 O +ATOM 1114 H1 HOH B 364 9.589 10.360 3.334 1.00 0.00 H +ATOM 1115 H2 HOH B 364 9.545 10.468 1.824 1.00 0.00 H +ATOM 1116 O HOH B 365 -12.628 -2.378 -2.251 1.00 0.00 O +ATOM 1117 H1 HOH B 365 -12.846 -2.815 -1.428 1.00 0.00 H +ATOM 1118 H2 HOH B 365 -12.047 -1.661 -1.996 1.00 0.00 H +ATOM 1119 O HOH B 366 3.187 -3.482 -6.638 1.00 0.00 O +ATOM 1120 H1 HOH B 366 2.469 -4.033 -6.950 1.00 0.00 H +ATOM 1121 H2 HOH B 366 3.979 -3.979 -6.845 1.00 0.00 H +ATOM 1122 O HOH B 367 4.688 12.256 -7.448 1.00 0.00 O +ATOM 1123 H1 HOH B 367 5.272 11.579 -7.788 1.00 0.00 H +ATOM 1124 H2 HOH B 367 3.826 12.028 -7.797 1.00 0.00 H +ATOM 1125 O HOH B 368 -8.923 12.156 -7.574 1.00 0.00 O +ATOM 1126 H1 HOH B 368 -8.403 12.539 -8.281 1.00 0.00 H +ATOM 1127 H2 HOH B 368 -9.471 11.502 -8.007 1.00 0.00 H +ATOM 1128 O HOH B 369 9.535 9.896 -3.405 1.00 0.00 O +ATOM 1129 H1 HOH B 369 9.182 10.119 -4.266 1.00 0.00 H +ATOM 1130 H2 HOH B 369 8.948 9.215 -3.075 1.00 0.00 H +ATOM 1131 O HOH B 370 -13.207 -7.211 -6.339 1.00 0.00 O +ATOM 1132 H1 HOH B 370 -13.580 -8.010 -6.710 1.00 0.00 H +ATOM 1133 H2 HOH B 370 -12.759 -6.792 -7.074 1.00 0.00 H +ATOM 1134 O HOH B 371 -8.267 -11.769 0.574 1.00 0.00 O +ATOM 1135 H1 HOH B 371 -7.311 -11.746 0.627 1.00 0.00 H +ATOM 1136 H2 HOH B 371 -8.487 -11.111 -0.086 1.00 0.00 H +ATOM 1137 O HOH B 372 -1.051 -9.848 -13.517 1.00 0.00 O +ATOM 1138 H1 HOH B 372 -1.792 -9.633 -14.084 1.00 0.00 H +ATOM 1139 H2 HOH B 372 -0.396 -9.178 -13.714 1.00 0.00 H +ATOM 1140 O HOH B 373 10.770 -11.640 3.881 1.00 0.00 O +ATOM 1141 H1 HOH B 373 11.095 -11.433 3.005 1.00 0.00 H +ATOM 1142 H2 HOH B 373 9.857 -11.894 3.744 1.00 0.00 H +ATOM 1143 O HOH B 374 -4.951 -9.027 5.850 1.00 0.00 O +ATOM 1144 H1 HOH B 374 -4.405 -9.130 6.630 1.00 0.00 H +ATOM 1145 H2 HOH B 374 -5.537 -9.784 5.865 1.00 0.00 H +ATOM 1146 O HOH B 375 7.759 -11.435 -2.530 1.00 0.00 O +ATOM 1147 H1 HOH B 375 7.482 -11.591 -1.627 1.00 0.00 H +ATOM 1148 H2 HOH B 375 7.526 -10.521 -2.698 1.00 0.00 H +ATOM 1149 O HOH B 376 8.707 -7.120 2.838 1.00 0.00 O +ATOM 1150 H1 HOH B 376 8.164 -6.455 3.260 1.00 0.00 H +ATOM 1151 H2 HOH B 376 8.339 -7.208 1.959 1.00 0.00 H +ATOM 1152 O HOH B 377 -9.655 5.514 1.907 1.00 0.00 O +ATOM 1153 H1 HOH B 377 -10.447 5.840 1.480 1.00 0.00 H +ATOM 1154 H2 HOH B 377 -9.834 5.602 2.843 1.00 0.00 H +ATOM 1155 O HOH B 378 7.926 2.651 5.893 1.00 0.00 O +ATOM 1156 H1 HOH B 378 7.408 2.823 6.680 1.00 0.00 H +ATOM 1157 H2 HOH B 378 8.241 1.754 6.004 1.00 0.00 H +ATOM 1158 O HOH B 379 11.060 -0.598 4.412 1.00 0.00 O +ATOM 1159 H1 HOH B 379 11.637 -1.046 3.794 1.00 0.00 H +ATOM 1160 H2 HOH B 379 11.583 0.133 4.742 1.00 0.00 H +ATOM 1161 O HOH B 380 -10.866 -9.337 8.102 1.00 0.00 O +ATOM 1162 H1 HOH B 380 -11.238 -9.800 7.352 1.00 0.00 H +ATOM 1163 H2 HOH B 380 -10.363 -8.619 7.716 1.00 0.00 H +ATOM 1164 O HOH B 381 -1.452 -5.805 -1.686 1.00 0.00 O +ATOM 1165 H1 HOH B 381 -0.594 -5.496 -1.978 1.00 0.00 H +ATOM 1166 H2 HOH B 381 -1.285 -6.677 -1.330 1.00 0.00 H +ATOM 1167 O HOH B 382 8.717 -1.302 -1.980 1.00 0.00 O +ATOM 1168 H1 HOH B 382 8.162 -0.532 -2.107 1.00 0.00 H +ATOM 1169 H2 HOH B 382 8.910 -1.607 -2.867 1.00 0.00 H +ATOM 1170 O HOH B 383 -10.800 -4.457 -4.947 1.00 0.00 O +ATOM 1171 H1 HOH B 383 -10.282 -3.901 -4.365 1.00 0.00 H +ATOM 1172 H2 HOH B 383 -11.687 -4.418 -4.590 1.00 0.00 H +ATOM 1173 O HOH B 384 -11.962 -4.825 4.566 1.00 0.00 O +ATOM 1174 H1 HOH B 384 -11.141 -4.376 4.764 1.00 0.00 H +ATOM 1175 H2 HOH B 384 -12.439 -4.831 5.396 1.00 0.00 H +ATOM 1176 O HOH B 385 -7.669 -9.955 -10.508 1.00 0.00 O +ATOM 1177 H1 HOH B 385 -7.939 -9.137 -10.091 1.00 0.00 H +ATOM 1178 H2 HOH B 385 -8.434 -10.233 -11.011 1.00 0.00 H +ATOM 1179 O HOH B 386 6.823 -10.112 -6.328 1.00 0.00 O +ATOM 1180 H1 HOH B 386 7.135 -10.925 -5.931 1.00 0.00 H +ATOM 1181 H2 HOH B 386 5.985 -9.941 -5.897 1.00 0.00 H +ATOM 1182 O HOH B 387 -7.952 -3.422 -8.176 1.00 0.00 O +ATOM 1183 H1 HOH B 387 -8.054 -2.805 -7.451 1.00 0.00 H +ATOM 1184 H2 HOH B 387 -7.730 -2.874 -8.928 1.00 0.00 H +ATOM 1185 O HOH B 388 2.379 2.745 -13.037 1.00 0.00 O +ATOM 1186 H1 HOH B 388 1.507 2.352 -12.992 1.00 0.00 H +ATOM 1187 H2 HOH B 388 2.970 2.002 -13.162 1.00 0.00 H +ATOM 1188 O HOH B 389 8.394 -5.713 -5.059 1.00 0.00 O +ATOM 1189 H1 HOH B 389 9.339 -5.836 -4.975 1.00 0.00 H +ATOM 1190 H2 HOH B 389 8.289 -5.200 -5.861 1.00 0.00 H +ATOM 1191 O HOH B 390 10.638 -2.614 -6.452 1.00 0.00 O +ATOM 1192 H1 HOH B 390 11.023 -2.364 -5.612 1.00 0.00 H +ATOM 1193 H2 HOH B 390 11.250 -2.275 -7.106 1.00 0.00 H +ATOM 1194 O HOH B 391 3.743 11.719 -1.966 1.00 0.00 O +ATOM 1195 H1 HOH B 391 3.426 11.047 -2.568 1.00 0.00 H +ATOM 1196 H2 HOH B 391 4.694 11.605 -1.957 1.00 0.00 H +ATOM 1197 O HOH B 392 10.676 -5.072 -12.774 1.00 0.00 O +ATOM 1198 H1 HOH B 392 10.739 -4.648 -13.630 1.00 0.00 H +ATOM 1199 H2 HOH B 392 11.497 -5.556 -12.685 1.00 0.00 H +ATOM 1200 O HOH B 393 7.122 -7.786 -7.793 1.00 0.00 O +ATOM 1201 H1 HOH B 393 7.224 -8.551 -7.227 1.00 0.00 H +ATOM 1202 H2 HOH B 393 8.003 -7.617 -8.128 1.00 0.00 H +ATOM 1203 O HOH B 394 -9.416 3.709 7.262 1.00 0.00 O +ATOM 1204 H1 HOH B 394 -10.122 4.240 6.893 1.00 0.00 H +ATOM 1205 H2 HOH B 394 -8.633 4.253 7.169 1.00 0.00 H +ATOM 1206 O HOH B 395 9.314 12.188 -5.992 1.00 0.00 O +ATOM 1207 H1 HOH B 395 8.508 12.653 -5.768 1.00 0.00 H +ATOM 1208 H2 HOH B 395 9.020 11.433 -6.502 1.00 0.00 H +ATOM 1209 O HOH B 396 1.287 -10.112 -1.550 1.00 0.00 O +ATOM 1210 H1 HOH B 396 2.083 -10.556 -1.841 1.00 0.00 H +ATOM 1211 H2 HOH B 396 0.651 -10.817 -1.426 1.00 0.00 H +ATOM 1212 O HOH B 397 -11.933 -6.644 0.410 1.00 0.00 O +ATOM 1213 H1 HOH B 397 -12.746 -7.088 0.653 1.00 0.00 H +ATOM 1214 H2 HOH B 397 -12.151 -5.712 0.442 1.00 0.00 H +ATOM 1215 O HOH B 398 -12.484 4.838 -5.630 1.00 0.00 O +ATOM 1216 H1 HOH B 398 -12.048 5.236 -4.876 1.00 0.00 H +ATOM 1217 H2 HOH B 398 -13.265 4.423 -5.264 1.00 0.00 H +ATOM 1218 O HOH B 399 -2.707 4.708 7.070 1.00 0.00 O +ATOM 1219 H1 HOH B 399 -2.297 4.540 6.221 1.00 0.00 H +ATOM 1220 H2 HOH B 399 -2.959 3.842 7.390 1.00 0.00 H +ATOM 1221 O HOH B 400 11.720 0.522 -2.257 1.00 0.00 O +ATOM 1222 H1 HOH B 400 11.332 1.007 -1.528 1.00 0.00 H +ATOM 1223 H2 HOH B 400 12.566 0.224 -1.924 1.00 0.00 H +ATOM 1224 O HOH B 401 10.748 -11.585 -7.541 1.00 0.00 O +ATOM 1225 H1 HOH B 401 9.961 -12.022 -7.869 1.00 0.00 H +ATOM 1226 H2 HOH B 401 11.334 -12.301 -7.296 1.00 0.00 H +ATOM 1227 O HOH B 402 5.961 1.793 2.271 1.00 0.00 O +ATOM 1228 H1 HOH B 402 6.758 1.273 2.379 1.00 0.00 H +ATOM 1229 H2 HOH B 402 6.156 2.624 2.703 1.00 0.00 H +ATOM 1230 O HOH B 403 -8.262 1.134 3.145 1.00 0.00 O +ATOM 1231 H1 HOH B 403 -7.479 1.540 3.517 1.00 0.00 H +ATOM 1232 H2 HOH B 403 -8.967 1.753 3.335 1.00 0.00 H +ATOM 1233 O HOH B 404 11.460 -9.878 -5.408 1.00 0.00 O +ATOM 1234 H1 HOH B 404 10.883 -10.378 -5.986 1.00 0.00 H +ATOM 1235 H2 HOH B 404 11.159 -10.093 -4.525 1.00 0.00 H +ATOM 1236 O HOH B 405 7.872 -7.459 0.278 1.00 0.00 O +ATOM 1237 H1 HOH B 405 7.234 -6.894 -0.158 1.00 0.00 H +ATOM 1238 H2 HOH B 405 8.467 -7.733 -0.420 1.00 0.00 H +ATOM 1239 O HOH B 406 -8.981 -2.423 -12.598 1.00 0.00 O +ATOM 1240 H1 HOH B 406 -9.399 -1.888 -11.923 1.00 0.00 H +ATOM 1241 H2 HOH B 406 -8.093 -2.568 -12.274 1.00 0.00 H +ATOM 1242 O HOH B 407 4.361 3.390 -2.258 1.00 0.00 O +ATOM 1243 H1 HOH B 407 3.809 2.609 -2.301 1.00 0.00 H +ATOM 1244 H2 HOH B 407 5.056 3.159 -1.642 1.00 0.00 H +ATOM 1245 O HOH B 408 11.584 -1.766 -4.091 1.00 0.00 O +ATOM 1246 H1 HOH B 408 11.402 -0.911 -3.700 1.00 0.00 H +ATOM 1247 H2 HOH B 408 12.246 -2.155 -3.520 1.00 0.00 H +ATOM 1248 O HOH B 409 10.663 -4.543 10.457 1.00 0.00 O +ATOM 1249 H1 HOH B 409 9.889 -5.062 10.238 1.00 0.00 H +ATOM 1250 H2 HOH B 409 11.342 -5.192 10.643 1.00 0.00 H +ATOM 1251 O HOH B 410 3.560 4.606 -11.462 1.00 0.00 O +ATOM 1252 H1 HOH B 410 3.118 3.969 -12.023 1.00 0.00 H +ATOM 1253 H2 HOH B 410 3.839 5.300 -12.060 1.00 0.00 H +ATOM 1254 O HOH B 411 8.975 0.154 6.040 1.00 0.00 O +ATOM 1255 H1 HOH B 411 9.660 -0.242 5.501 1.00 0.00 H +ATOM 1256 H2 HOH B 411 8.330 -0.542 6.159 1.00 0.00 H +ATOM 1257 O HOH B 412 9.528 -12.697 0.903 1.00 0.00 O +ATOM 1258 H1 HOH B 412 9.904 -13.577 0.859 1.00 0.00 H +ATOM 1259 H2 HOH B 412 10.278 -12.124 1.061 1.00 0.00 H +ATOM 1260 O HOH B 413 -5.140 5.237 -8.915 1.00 0.00 O +ATOM 1261 H1 HOH B 413 -5.365 4.466 -8.394 1.00 0.00 H +ATOM 1262 H2 HOH B 413 -5.822 5.280 -9.586 1.00 0.00 H +ATOM 1263 O HOH B 414 -12.601 -1.560 -9.977 1.00 0.00 O +ATOM 1264 H1 HOH B 414 -12.738 -0.687 -10.345 1.00 0.00 H +ATOM 1265 H2 HOH B 414 -13.085 -2.145 -10.560 1.00 0.00 H +ATOM 1266 O HOH B 415 2.506 -7.757 -2.079 1.00 0.00 O +ATOM 1267 H1 HOH B 415 3.392 -7.945 -1.771 1.00 0.00 H +ATOM 1268 H2 HOH B 415 1.998 -8.532 -1.837 1.00 0.00 H +ATOM 1269 O HOH B 416 11.742 -11.078 1.324 1.00 0.00 O +ATOM 1270 H1 HOH B 416 12.678 -11.175 1.498 1.00 0.00 H +ATOM 1271 H2 HOH B 416 11.697 -10.778 0.416 1.00 0.00 H +ATOM 1272 O HOH B 417 9.267 -4.658 -9.843 1.00 0.00 O +ATOM 1273 H1 HOH B 417 9.645 -3.813 -10.087 1.00 0.00 H +ATOM 1274 H2 HOH B 417 10.010 -5.171 -9.526 1.00 0.00 H +ATOM 1275 O HOH B 418 4.834 -11.541 -9.001 1.00 0.00 O +ATOM 1276 H1 HOH B 418 4.758 -12.316 -8.445 1.00 0.00 H +ATOM 1277 H2 HOH B 418 5.776 -11.376 -9.055 1.00 0.00 H +ATOM 1278 O HOH B 419 6.178 -5.066 -3.674 1.00 0.00 O +ATOM 1279 H1 HOH B 419 6.023 -4.176 -3.990 1.00 0.00 H +ATOM 1280 H2 HOH B 419 7.012 -5.318 -4.070 1.00 0.00 H +ATOM 1281 O HOH B 420 8.419 4.000 0.008 1.00 0.00 O +ATOM 1282 H1 HOH B 420 8.326 4.614 0.736 1.00 0.00 H +ATOM 1283 H2 HOH B 420 8.411 4.552 -0.774 1.00 0.00 H +ATOM 1284 O HOH B 421 4.969 5.731 11.302 1.00 0.00 O +ATOM 1285 H1 HOH B 421 5.340 4.856 11.416 1.00 0.00 H +ATOM 1286 H2 HOH B 421 5.692 6.255 10.955 1.00 0.00 H +ATOM 1287 O HOH B 422 -12.667 -1.696 -7.281 1.00 0.00 O +ATOM 1288 H1 HOH B 422 -12.679 -1.694 -8.238 1.00 0.00 H +ATOM 1289 H2 HOH B 422 -12.088 -2.422 -7.050 1.00 0.00 H +ATOM 1290 O HOH B 423 4.865 -7.323 -4.649 1.00 0.00 O +ATOM 1291 H1 HOH B 423 4.861 -7.253 -5.604 1.00 0.00 H +ATOM 1292 H2 HOH B 423 5.276 -6.511 -4.352 1.00 0.00 H +ATOM 1293 O HOH B 424 3.731 -11.452 -2.160 1.00 0.00 O +ATOM 1294 H1 HOH B 424 3.974 -11.239 -1.259 1.00 0.00 H +ATOM 1295 H2 HOH B 424 3.737 -12.408 -2.190 1.00 0.00 H +ATOM 1296 O HOH B 425 9.216 -7.202 -11.521 1.00 0.00 O +ATOM 1297 H1 HOH B 425 9.291 -6.409 -10.989 1.00 0.00 H +ATOM 1298 H2 HOH B 425 9.563 -6.950 -12.376 1.00 0.00 H +ATOM 1299 O HOH B 426 -5.946 -12.257 -6.877 1.00 0.00 O +ATOM 1300 H1 HOH B 426 -5.169 -12.373 -6.331 1.00 0.00 H +ATOM 1301 H2 HOH B 426 -6.056 -11.308 -6.940 1.00 0.00 H +ATOM 1302 O HOH B 427 11.972 7.288 -12.175 1.00 0.00 O +ATOM 1303 H1 HOH B 427 12.202 8.117 -12.594 1.00 0.00 H +ATOM 1304 H2 HOH B 427 12.804 6.948 -11.844 1.00 0.00 H +ATOM 1305 O HOH B 428 7.123 -9.090 4.055 1.00 0.00 O +ATOM 1306 H1 HOH B 428 6.800 -9.498 3.251 1.00 0.00 H +ATOM 1307 H2 HOH B 428 7.818 -8.500 3.763 1.00 0.00 H +ATOM 1308 O HOH B 429 7.722 -0.275 10.518 1.00 0.00 O +ATOM 1309 H1 HOH B 429 7.740 -1.149 10.908 1.00 0.00 H +ATOM 1310 H2 HOH B 429 7.361 -0.411 9.642 1.00 0.00 H +ATOM 1311 O HOH B 430 8.115 -0.024 -11.215 1.00 0.00 O +ATOM 1312 H1 HOH B 430 8.174 0.543 -11.984 1.00 0.00 H +ATOM 1313 H2 HOH B 430 7.339 -0.562 -11.372 1.00 0.00 H +ATOM 1314 O HOH B 431 -10.421 -2.938 9.389 1.00 0.00 O +ATOM 1315 H1 HOH B 431 -11.037 -2.452 8.841 1.00 0.00 H +ATOM 1316 H2 HOH B 431 -9.795 -2.279 9.689 1.00 0.00 H +ATOM 1317 O HOH B 432 7.342 -8.387 10.753 1.00 0.00 O +ATOM 1318 H1 HOH B 432 6.551 -8.304 11.287 1.00 0.00 H +ATOM 1319 H2 HOH B 432 7.487 -9.331 10.684 1.00 0.00 H +ATOM 1320 O HOH B 433 -11.329 -6.200 9.336 1.00 0.00 O +ATOM 1321 H1 HOH B 433 -10.875 -5.367 9.467 1.00 0.00 H +ATOM 1322 H2 HOH B 433 -10.772 -6.683 8.726 1.00 0.00 H +ATOM 1323 O HOH B 434 9.059 10.882 -12.796 1.00 0.00 O +ATOM 1324 H1 HOH B 434 8.353 10.584 -12.223 1.00 0.00 H +ATOM 1325 H2 HOH B 434 9.012 10.302 -13.556 1.00 0.00 H +ATOM 1326 O HOH B 435 -10.210 5.170 10.875 1.00 0.00 O +ATOM 1327 H1 HOH B 435 -10.901 4.508 10.877 1.00 0.00 H +ATOM 1328 H2 HOH B 435 -9.415 4.688 11.104 1.00 0.00 H +ATOM 1329 O HOH B 436 5.943 5.579 -8.647 1.00 0.00 O +ATOM 1330 H1 HOH B 436 6.048 4.905 -9.318 1.00 0.00 H +ATOM 1331 H2 HOH B 436 5.825 6.391 -9.139 1.00 0.00 H +ATOM 1332 O HOH B 437 8.548 -6.150 9.708 1.00 0.00 O +ATOM 1333 H1 HOH B 437 8.775 -6.384 8.808 1.00 0.00 H +ATOM 1334 H2 HOH B 437 8.192 -6.956 10.083 1.00 0.00 H +ATOM 1335 O HOH B 438 -11.524 -8.671 -9.372 1.00 0.00 O +ATOM 1336 H1 HOH B 438 -11.878 -8.990 -10.202 1.00 0.00 H +ATOM 1337 H2 HOH B 438 -12.013 -9.149 -8.702 1.00 0.00 H +ATOM 1338 O HOH B 439 10.623 10.189 4.770 1.00 0.00 O +ATOM 1339 H1 HOH B 439 10.709 9.257 4.972 1.00 0.00 H +ATOM 1340 H2 HOH B 439 11.460 10.571 5.038 1.00 0.00 H +ATOM 1341 O HOH B 440 10.551 5.085 -11.228 1.00 0.00 O +ATOM 1342 H1 HOH B 440 11.097 5.753 -11.643 1.00 0.00 H +ATOM 1343 H2 HOH B 440 11.159 4.581 -10.687 1.00 0.00 H +ATOM 1344 O HOH B 441 11.594 1.868 5.635 1.00 0.00 O +ATOM 1345 H1 HOH B 441 11.008 1.715 6.376 1.00 0.00 H +ATOM 1346 H2 HOH B 441 11.110 2.466 5.065 1.00 0.00 H +ATOM 1347 O HOH B 442 4.114 -7.724 8.500 1.00 0.00 O +ATOM 1348 H1 HOH B 442 4.374 -8.645 8.534 1.00 0.00 H +ATOM 1349 H2 HOH B 442 4.779 -7.308 7.951 1.00 0.00 H +ATOM 1350 O HOH B 443 6.538 -7.041 7.169 1.00 0.00 O +ATOM 1351 H1 HOH B 443 6.673 -7.983 7.072 1.00 0.00 H +ATOM 1352 H2 HOH B 443 7.412 -6.662 7.074 1.00 0.00 H +ATOM 1353 O HOH B 444 4.112 -5.772 10.483 1.00 0.00 O +ATOM 1354 H1 HOH B 444 4.174 -6.648 10.103 1.00 0.00 H +ATOM 1355 H2 HOH B 444 3.234 -5.736 10.861 1.00 0.00 H +ATOM 1356 O HOH B 445 8.672 2.068 11.601 1.00 0.00 O +ATOM 1357 H1 HOH B 445 8.108 2.291 12.341 1.00 0.00 H +ATOM 1358 H2 HOH B 445 8.330 1.232 11.282 1.00 0.00 H +ATOM 1359 O HOH B 446 10.421 -8.898 -8.638 1.00 0.00 O +ATOM 1360 H1 HOH B 446 9.901 -9.104 -9.415 1.00 0.00 H +ATOM 1361 H2 HOH B 446 10.644 -9.751 -8.265 1.00 0.00 H +ATOM 1362 O HOH B 447 -11.407 2.586 10.795 1.00 0.00 O +ATOM 1363 H1 HOH B 447 -12.056 2.088 10.299 1.00 0.00 H +ATOM 1364 H2 HOH B 447 -10.564 2.304 10.440 1.00 0.00 H +ATOM 1365 O HOH B 448 6.486 -4.353 9.931 1.00 0.00 O +ATOM 1366 H1 HOH B 448 7.223 -4.963 9.936 1.00 0.00 H +ATOM 1367 H2 HOH B 448 5.723 -4.897 10.125 1.00 0.00 H +ATOM 1368 O HOH B 449 9.992 -0.566 0.548 1.00 0.00 O +ATOM 1369 H1 HOH B 449 9.628 -0.942 -0.254 1.00 0.00 H +ATOM 1370 H2 HOH B 449 10.260 0.319 0.297 1.00 0.00 H +ATOM 1371 O HOH B 450 9.305 -6.466 7.059 1.00 0.00 O +ATOM 1372 H1 HOH B 450 9.544 -5.606 6.712 1.00 0.00 H +ATOM 1373 H2 HOH B 450 10.009 -7.046 6.769 1.00 0.00 H +ATOM 1374 O HOH B 451 -13.189 -5.950 11.268 1.00 0.00 O +ATOM 1375 H1 HOH B 451 -12.651 -6.294 10.554 1.00 0.00 H +ATOM 1376 H2 HOH B 451 -12.726 -5.165 11.561 1.00 0.00 H +ATOM 1377 O HOH B 452 7.309 -8.833 -3.106 1.00 0.00 O +ATOM 1378 H1 HOH B 452 8.121 -8.518 -2.707 1.00 0.00 H +ATOM 1379 H2 HOH B 452 7.161 -8.245 -3.846 1.00 0.00 H +ATOM 1380 O HOH B 453 -8.512 -1.753 -6.064 1.00 0.00 O +ATOM 1381 H1 HOH B 453 -8.873 -2.284 -5.354 1.00 0.00 H +ATOM 1382 H2 HOH B 453 -8.169 -0.972 -5.629 1.00 0.00 H +ATOM 1383 O HOH B 454 -7.565 -7.591 -0.509 1.00 0.00 O +ATOM 1384 H1 HOH B 454 -7.089 -7.677 -1.335 1.00 0.00 H +ATOM 1385 H2 HOH B 454 -7.724 -6.651 -0.420 1.00 0.00 H +ATOM 1386 O HOH B 455 12.616 0.489 12.006 1.00 0.00 O +ATOM 1387 H1 HOH B 455 13.344 -0.132 11.988 1.00 0.00 H +ATOM 1388 H2 HOH B 455 13.025 1.334 12.191 1.00 0.00 H +ATOM 1389 O HOH B 456 -13.295 -3.915 0.073 1.00 0.00 O +ATOM 1390 H1 HOH B 456 -13.452 -3.276 0.768 1.00 0.00 H +ATOM 1391 H2 HOH B 456 -14.099 -4.432 0.036 1.00 0.00 H +ATOM 1392 O HOH B 457 8.413 0.534 2.594 1.00 0.00 O +ATOM 1393 H1 HOH B 457 8.861 0.032 1.913 1.00 0.00 H +ATOM 1394 H2 HOH B 457 9.119 0.918 3.114 1.00 0.00 H +ATOM 1395 O HOH B 458 -10.225 2.826 3.980 1.00 0.00 O +ATOM 1396 H1 HOH B 458 -10.089 3.709 4.324 1.00 0.00 H +ATOM 1397 H2 HOH B 458 -11.019 2.895 3.450 1.00 0.00 H +ATOM 1398 O HOH B 459 9.954 -9.765 7.366 1.00 0.00 O +ATOM 1399 H1 HOH B 459 10.614 -9.163 7.020 1.00 0.00 H +ATOM 1400 H2 HOH B 459 10.340 -10.105 8.174 1.00 0.00 H +ATOM 1401 O HOH B 460 0.262 -7.261 2.330 1.00 0.00 O +ATOM 1402 H1 HOH B 460 0.452 -6.859 1.483 1.00 0.00 H +ATOM 1403 H2 HOH B 460 0.134 -6.522 2.924 1.00 0.00 H +ATOM 1404 O HOH B 461 -10.072 0.865 6.408 1.00 0.00 O +ATOM 1405 H1 HOH B 461 -10.222 1.760 6.713 1.00 0.00 H +ATOM 1406 H2 HOH B 461 -9.855 0.961 5.480 1.00 0.00 H +ATOM 1407 O HOH B 462 6.192 -4.288 6.423 1.00 0.00 O +ATOM 1408 H1 HOH B 462 5.542 -3.649 6.712 1.00 0.00 H +ATOM 1409 H2 HOH B 462 5.958 -5.094 6.884 1.00 0.00 H +ATOM 1410 O HOH B 463 3.430 -11.300 0.799 1.00 0.00 O +ATOM 1411 H1 HOH B 463 3.811 -11.580 1.632 1.00 0.00 H +ATOM 1412 H2 HOH B 463 2.973 -10.485 1.007 1.00 0.00 H +ATOM 1413 O HOH B 464 -7.807 -9.868 10.467 1.00 0.00 O +ATOM 1414 H1 HOH B 464 -6.879 -10.019 10.645 1.00 0.00 H +ATOM 1415 H2 HOH B 464 -8.191 -9.693 11.326 1.00 0.00 H +ATOM 1416 O HOH B 465 -13.025 0.892 9.270 1.00 0.00 O +ATOM 1417 H1 HOH B 465 -13.426 0.545 10.067 1.00 0.00 H +ATOM 1418 H2 HOH B 465 -12.582 0.139 8.878 1.00 0.00 H +ATOM 1419 O HOH B 466 -11.591 -0.966 7.776 1.00 0.00 O +ATOM 1420 H1 HOH B 466 -10.979 -0.369 7.346 1.00 0.00 H +ATOM 1421 H2 HOH B 466 -12.100 -1.345 7.059 1.00 0.00 H +ATOM 1422 O HOH B 467 -9.191 -5.130 -13.177 1.00 0.00 O +ATOM 1423 H1 HOH B 467 -8.983 -4.234 -12.914 1.00 0.00 H +ATOM 1424 H2 HOH B 467 -8.357 -5.492 -13.476 1.00 0.00 H +ATOM 1425 O HOH B 468 -9.868 -8.322 1.111 1.00 0.00 O +ATOM 1426 H1 HOH B 468 -9.122 -8.048 0.579 1.00 0.00 H +ATOM 1427 H2 HOH B 468 -10.528 -7.644 0.968 1.00 0.00 H +ATOM 1428 O HOH B 469 0.909 -4.973 6.776 1.00 0.00 O +ATOM 1429 H1 HOH B 469 0.852 -4.019 6.836 1.00 0.00 H +ATOM 1430 H2 HOH B 469 0.830 -5.160 5.840 1.00 0.00 H +ATOM 1431 O HOH B 470 6.255 3.569 8.173 1.00 0.00 O +ATOM 1432 H1 HOH B 470 6.988 3.724 8.770 1.00 0.00 H +ATOM 1433 H2 HOH B 470 6.165 4.388 7.687 1.00 0.00 H +ATOM 1434 O HOH B 471 -11.896 -9.023 3.830 1.00 0.00 O +ATOM 1435 H1 HOH B 471 -11.791 -9.470 2.990 1.00 0.00 H +ATOM 1436 H2 HOH B 471 -12.555 -8.349 3.663 1.00 0.00 H +ATOM 1437 O HOH B 472 -9.623 -10.352 -8.123 1.00 0.00 O +ATOM 1438 H1 HOH B 472 -8.733 -10.080 -7.897 1.00 0.00 H +ATOM 1439 H2 HOH B 472 -10.030 -9.566 -8.485 1.00 0.00 H +ATOM 1440 O HOH B 473 8.497 -2.814 8.134 1.00 0.00 O +ATOM 1441 H1 HOH B 473 7.914 -2.064 8.013 1.00 0.00 H +ATOM 1442 H2 HOH B 473 7.956 -3.469 8.575 1.00 0.00 H +ATOM 1443 O HOH B 474 5.153 11.770 -12.932 1.00 0.00 O +ATOM 1444 H1 HOH B 474 4.984 12.711 -12.896 1.00 0.00 H +ATOM 1445 H2 HOH B 474 5.346 11.595 -13.853 1.00 0.00 H +ATOM 1446 O HOH B 475 10.603 2.071 -0.110 1.00 0.00 O +ATOM 1447 H1 HOH B 475 9.790 2.571 -0.187 1.00 0.00 H +ATOM 1448 H2 HOH B 475 11.213 2.671 0.320 1.00 0.00 H +ATOM 1449 O HOH B 476 8.645 1.922 -9.333 1.00 0.00 O +ATOM 1450 H1 HOH B 476 7.872 2.472 -9.465 1.00 0.00 H +ATOM 1451 H2 HOH B 476 8.495 1.160 -9.892 1.00 0.00 H +ATOM 1452 O HOH B 477 6.340 -13.034 3.576 1.00 0.00 O +ATOM 1453 H1 HOH B 477 6.435 -13.275 2.655 1.00 0.00 H +ATOM 1454 H2 HOH B 477 5.452 -12.683 3.643 1.00 0.00 H +ATOM 1455 O HOH B 478 5.969 9.828 -0.012 1.00 0.00 O +ATOM 1456 H1 HOH B 478 6.223 10.445 -0.698 1.00 0.00 H +ATOM 1457 H2 HOH B 478 6.708 9.827 0.596 1.00 0.00 H +ATOM 1458 O HOH B 479 2.692 -10.886 -6.621 1.00 0.00 O +ATOM 1459 H1 HOH B 479 3.293 -11.185 -7.303 1.00 0.00 H +ATOM 1460 H2 HOH B 479 3.263 -10.572 -5.919 1.00 0.00 H +ATOM 1461 O HOH B 480 4.455 -10.066 -4.655 1.00 0.00 O +ATOM 1462 H1 HOH B 480 4.524 -9.124 -4.498 1.00 0.00 H +ATOM 1463 H2 HOH B 480 4.222 -10.435 -3.803 1.00 0.00 H +ATOM 1464 O HOH B 481 6.763 10.405 -11.126 1.00 0.00 O +ATOM 1465 H1 HOH B 481 6.159 10.940 -11.641 1.00 0.00 H +ATOM 1466 H2 HOH B 481 6.492 10.542 -10.218 1.00 0.00 H +ATOM 1467 O HOH B 482 8.148 -13.493 5.609 1.00 0.00 O +ATOM 1468 H1 HOH B 482 8.664 -14.213 5.248 1.00 0.00 H +ATOM 1469 H2 HOH B 482 7.502 -13.297 4.931 1.00 0.00 H +ATOM 1470 O HOH B 483 7.570 -11.307 -8.748 1.00 0.00 O +ATOM 1471 H1 HOH B 483 7.455 -10.732 -7.991 1.00 0.00 H +ATOM 1472 H2 HOH B 483 8.012 -10.762 -9.398 1.00 0.00 H +ATOM 1473 O HOH B 484 8.436 -3.277 2.636 1.00 0.00 O +ATOM 1474 H1 HOH B 484 8.384 -3.268 1.680 1.00 0.00 H +ATOM 1475 H2 HOH B 484 9.327 -3.573 2.825 1.00 0.00 H +ATOM 1476 O HOH B 485 2.881 4.952 -0.212 1.00 0.00 O +ATOM 1477 H1 HOH B 485 3.018 4.443 -1.011 1.00 0.00 H +ATOM 1478 H2 HOH B 485 3.725 5.372 -0.047 1.00 0.00 H +ATOM 1479 O HOH B 486 -12.123 12.171 0.496 1.00 0.00 O +ATOM 1480 H1 HOH B 486 -12.863 11.681 0.855 1.00 0.00 H +ATOM 1481 H2 HOH B 486 -12.232 12.108 -0.453 1.00 0.00 H +ATOM 1482 O HOH B 487 -12.374 5.256 6.554 1.00 0.00 O +ATOM 1483 H1 HOH B 487 -13.249 5.518 6.841 1.00 0.00 H +ATOM 1484 H2 HOH B 487 -12.310 4.331 6.793 1.00 0.00 H +ATOM 1485 O HOH B 488 4.032 6.225 -6.604 1.00 0.00 O +ATOM 1486 H1 HOH B 488 3.096 6.140 -6.786 1.00 0.00 H +ATOM 1487 H2 HOH B 488 4.458 6.018 -7.435 1.00 0.00 H +ATOM 1488 O HOH B 489 6.343 10.208 -8.205 1.00 0.00 O +ATOM 1489 H1 HOH B 489 5.972 9.400 -7.851 1.00 0.00 H +ATOM 1490 H2 HOH B 489 7.270 10.171 -7.970 1.00 0.00 H +ATOM 1491 O HOH B 490 9.320 7.902 -0.442 1.00 0.00 O +ATOM 1492 H1 HOH B 490 8.881 7.956 -1.290 1.00 0.00 H +ATOM 1493 H2 HOH B 490 10.164 7.491 -0.634 1.00 0.00 H +ATOM 1494 O HOH B 491 8.952 9.753 -7.221 1.00 0.00 O +ATOM 1495 H1 HOH B 491 8.831 8.815 -7.076 1.00 0.00 H +ATOM 1496 H2 HOH B 491 9.872 9.840 -7.470 1.00 0.00 H +ATOM 1497 O HOH B 492 -10.762 9.868 8.080 1.00 0.00 O +ATOM 1498 H1 HOH B 492 -10.672 10.260 7.211 1.00 0.00 H +ATOM 1499 H2 HOH B 492 -10.793 10.615 8.677 1.00 0.00 H +ATOM 1500 O HOH B 493 11.729 -9.969 -1.230 1.00 0.00 O +ATOM 1501 H1 HOH B 493 11.265 -10.431 -1.928 1.00 0.00 H +ATOM 1502 H2 HOH B 493 12.635 -10.267 -1.307 1.00 0.00 H +ATOM 1503 O HOH B 494 10.152 8.292 -10.249 1.00 0.00 O +ATOM 1504 H1 HOH B 494 10.643 9.068 -9.977 1.00 0.00 H +ATOM 1505 H2 HOH B 494 10.689 7.895 -10.934 1.00 0.00 H +ATOM 1506 O HOH B 495 11.233 2.685 -9.383 1.00 0.00 O +ATOM 1507 H1 HOH B 495 11.416 2.445 -10.291 1.00 0.00 H +ATOM 1508 H2 HOH B 495 10.294 2.537 -9.279 1.00 0.00 H +ATOM 1509 O HOH B 496 11.495 7.865 9.825 1.00 0.00 O +ATOM 1510 H1 HOH B 496 12.413 7.880 9.556 1.00 0.00 H +ATOM 1511 H2 HOH B 496 11.071 7.280 9.196 1.00 0.00 H +ATOM 1512 O HOH B 497 7.813 4.339 -4.583 1.00 0.00 O +ATOM 1513 H1 HOH B 497 6.926 4.619 -4.360 1.00 0.00 H +ATOM 1514 H2 HOH B 497 7.695 3.710 -5.295 1.00 0.00 H +ATOM 1515 O HOH B 498 7.858 7.839 -2.804 1.00 0.00 O +ATOM 1516 H1 HOH B 498 6.920 7.787 -2.618 1.00 0.00 H +ATOM 1517 H2 HOH B 498 7.952 7.446 -3.672 1.00 0.00 H +ATOM 1518 O HOH B 499 9.286 6.026 3.864 1.00 0.00 O +ATOM 1519 H1 HOH B 499 8.624 6.694 3.680 1.00 0.00 H +ATOM 1520 H2 HOH B 499 9.966 6.491 4.351 1.00 0.00 H +ATOM 1521 O HOH B 500 5.877 8.197 -6.070 1.00 0.00 O +ATOM 1522 H1 HOH B 500 5.226 7.511 -6.216 1.00 0.00 H +ATOM 1523 H2 HOH B 500 6.680 7.724 -5.853 1.00 0.00 H +ATOM 1524 O HOH B 501 10.013 4.560 -2.890 1.00 0.00 O +ATOM 1525 H1 HOH B 501 10.541 3.855 -3.265 1.00 0.00 H +ATOM 1526 H2 HOH B 501 9.228 4.590 -3.438 1.00 0.00 H +ATOM 1527 O HOH B 502 3.469 9.314 4.088 1.00 0.00 O +ATOM 1528 H1 HOH B 502 3.434 8.550 3.511 1.00 0.00 H +ATOM 1529 H2 HOH B 502 3.159 10.039 3.545 1.00 0.00 H +ATOM 1530 O HOH B 503 4.551 -2.318 4.491 1.00 0.00 O +ATOM 1531 H1 HOH B 503 4.393 -2.167 5.423 1.00 0.00 H +ATOM 1532 H2 HOH B 503 5.410 -1.928 4.327 1.00 0.00 H +ATOM 1533 O HOH B 504 -1.771 -9.200 1.680 1.00 0.00 O +ATOM 1534 H1 HOH B 504 -2.553 -8.992 2.191 1.00 0.00 H +ATOM 1535 H2 HOH B 504 -1.076 -8.678 2.081 1.00 0.00 H +ATOM 1536 O HOH B 505 -12.369 2.634 7.215 1.00 0.00 O +ATOM 1537 H1 HOH B 505 -12.520 2.089 7.987 1.00 0.00 H +ATOM 1538 H2 HOH B 505 -13.010 2.326 6.575 1.00 0.00 H +ATOM 1539 O HOH B 506 -6.670 10.288 3.553 1.00 0.00 O +ATOM 1540 H1 HOH B 506 -6.190 11.094 3.360 1.00 0.00 H +ATOM 1541 H2 HOH B 506 -6.050 9.586 3.355 1.00 0.00 H +ATOM 1542 O HOH B 507 -8.791 7.300 6.513 1.00 0.00 O +ATOM 1543 H1 HOH B 507 -8.746 8.251 6.415 1.00 0.00 H +ATOM 1544 H2 HOH B 507 -8.791 7.155 7.459 1.00 0.00 H +ATOM 1545 O HOH B 508 11.302 12.351 -1.646 1.00 0.00 O +ATOM 1546 H1 HOH B 508 11.572 11.946 -2.470 1.00 0.00 H +ATOM 1547 H2 HOH B 508 11.149 13.270 -1.868 1.00 0.00 H +ATOM 1548 O HOH B 509 2.057 10.030 -10.579 1.00 0.00 O +ATOM 1549 H1 HOH B 509 2.350 9.970 -11.488 1.00 0.00 H +ATOM 1550 H2 HOH B 509 1.881 9.124 -10.324 1.00 0.00 H +ATOM 1551 O HOH B 510 11.478 11.869 -11.897 1.00 0.00 O +ATOM 1552 H1 HOH B 510 10.667 11.503 -12.250 1.00 0.00 H +ATOM 1553 H2 HOH B 510 12.083 11.871 -12.639 1.00 0.00 H +ATOM 1554 O HOH B 511 2.430 -9.126 2.169 1.00 0.00 O +ATOM 1555 H1 HOH B 511 2.824 -9.035 3.037 1.00 0.00 H +ATOM 1556 H2 HOH B 511 1.672 -8.543 2.187 1.00 0.00 H +ATOM 1557 O HOH B 512 -13.281 12.323 -9.598 1.00 0.00 O +ATOM 1558 H1 HOH B 512 -13.781 12.177 -10.401 1.00 0.00 H +ATOM 1559 H2 HOH B 512 -12.555 12.887 -9.866 1.00 0.00 H +ATOM 1560 O HOH B 513 8.245 6.894 -5.436 1.00 0.00 O +ATOM 1561 H1 HOH B 513 8.180 5.974 -5.180 1.00 0.00 H +ATOM 1562 H2 HOH B 513 8.881 6.899 -6.152 1.00 0.00 H +ATOM 1563 O HOH B 514 6.553 11.884 -1.752 1.00 0.00 O +ATOM 1564 H1 HOH B 514 7.346 11.940 -2.284 1.00 0.00 H +ATOM 1565 H2 HOH B 514 6.643 12.590 -1.112 1.00 0.00 H +ATOM 1566 O HOH B 515 5.141 7.449 -2.473 1.00 0.00 O +ATOM 1567 H1 HOH B 515 5.040 6.751 -3.120 1.00 0.00 H +ATOM 1568 H2 HOH B 515 4.358 7.989 -2.577 1.00 0.00 H +ATOM 1569 O HOH B 516 -13.077 11.316 5.726 1.00 0.00 O +ATOM 1570 H1 HOH B 516 -12.128 11.395 5.818 1.00 0.00 H +ATOM 1571 H2 HOH B 516 -13.414 12.179 5.968 1.00 0.00 H +ATOM 1572 O HOH B 517 -12.974 -13.317 -6.978 1.00 0.00 O +ATOM 1573 H1 HOH B 517 -13.122 -13.491 -7.907 1.00 0.00 H +ATOM 1574 H2 HOH B 517 -12.032 -13.436 -6.859 1.00 0.00 H +ATOM 1575 O HOH B 518 4.096 -12.020 -11.620 1.00 0.00 O +ATOM 1576 H1 HOH B 518 4.362 -11.871 -10.713 1.00 0.00 H +ATOM 1577 H2 HOH B 518 3.479 -12.750 -11.572 1.00 0.00 H +ATOM 1578 O HOH B 519 7.524 7.817 -10.594 1.00 0.00 O +ATOM 1579 H1 HOH B 519 8.440 8.011 -10.395 1.00 0.00 H +ATOM 1580 H2 HOH B 519 7.130 8.673 -10.767 1.00 0.00 H +ATOM 1581 O HOH B 520 11.013 4.526 1.727 1.00 0.00 O +ATOM 1582 H1 HOH B 520 10.539 3.977 2.351 1.00 0.00 H +ATOM 1583 H2 HOH B 520 10.867 5.421 2.034 1.00 0.00 H +ATOM 1584 O HOH B 521 12.330 9.972 -3.289 1.00 0.00 O +ATOM 1585 H1 HOH B 521 11.466 9.651 -3.032 1.00 0.00 H +ATOM 1586 H2 HOH B 521 12.151 10.747 -3.820 1.00 0.00 H +ATOM 1587 O HOH B 522 -12.508 9.393 -5.738 1.00 0.00 O +ATOM 1588 H1 HOH B 522 -13.278 9.538 -6.287 1.00 0.00 H +ATOM 1589 H2 HOH B 522 -12.839 9.438 -4.841 1.00 0.00 H +ATOM 1590 O HOH B 523 4.307 7.313 -10.096 1.00 0.00 O +ATOM 1591 H1 HOH B 523 3.632 6.635 -10.094 1.00 0.00 H +ATOM 1592 H2 HOH B 523 4.399 7.557 -11.017 1.00 0.00 H +ATOM 1593 O HOH B 524 5.679 8.916 5.634 1.00 0.00 O +ATOM 1594 H1 HOH B 524 5.239 8.604 6.424 1.00 0.00 H +ATOM 1595 H2 HOH B 524 4.967 9.150 5.038 1.00 0.00 H +ATOM 1596 O HOH B 525 9.321 9.485 10.816 1.00 0.00 O +ATOM 1597 H1 HOH B 525 10.052 8.925 10.557 1.00 0.00 H +ATOM 1598 H2 HOH B 525 9.231 10.110 10.097 1.00 0.00 H +ATOM 1599 O HOH B 526 -10.766 12.263 9.582 1.00 0.00 O +ATOM 1600 H1 HOH B 526 -10.225 12.025 10.335 1.00 0.00 H +ATOM 1601 H2 HOH B 526 -10.415 13.104 9.290 1.00 0.00 H +ATOM 1602 O HOH B 527 7.111 7.196 10.467 1.00 0.00 O +ATOM 1603 H1 HOH B 527 7.929 7.054 10.943 1.00 0.00 H +ATOM 1604 H2 HOH B 527 7.366 7.186 9.544 1.00 0.00 H +ATOM 1605 O HOH B 528 -9.936 -10.777 -11.846 1.00 0.00 O +ATOM 1606 H1 HOH B 528 -10.613 -10.172 -12.149 1.00 0.00 H +ATOM 1607 H2 HOH B 528 -10.374 -11.317 -11.189 1.00 0.00 H +ATOM 1608 O HOH B 529 6.102 9.565 11.482 1.00 0.00 O +ATOM 1609 H1 HOH B 529 6.447 8.767 11.082 1.00 0.00 H +ATOM 1610 H2 HOH B 529 6.069 9.368 12.419 1.00 0.00 H +ATOM 1611 O HOH B 530 7.286 -9.744 6.737 1.00 0.00 O +ATOM 1612 H1 HOH B 530 7.200 -9.632 5.790 1.00 0.00 H +ATOM 1613 H2 HOH B 530 8.228 -9.692 6.901 1.00 0.00 H +ATOM 1614 O HOH B 531 9.727 11.317 8.525 1.00 0.00 O +ATOM 1615 H1 HOH B 531 9.204 10.861 7.865 1.00 0.00 H +ATOM 1616 H2 HOH B 531 10.522 11.580 8.061 1.00 0.00 H +ATOM 1617 O HOH B 532 7.717 9.762 7.297 1.00 0.00 O +ATOM 1618 H1 HOH B 532 7.119 9.646 6.559 1.00 0.00 H +ATOM 1619 H2 HOH B 532 7.217 10.273 7.934 1.00 0.00 H +ATOM 1620 O HOH B 533 10.159 -3.937 6.291 1.00 0.00 O +ATOM 1621 H1 HOH B 533 10.979 -3.761 6.752 1.00 0.00 H +ATOM 1622 H2 HOH B 533 9.487 -3.512 6.824 1.00 0.00 H +ATOM 1623 O HOH B 534 -10.777 7.393 -13.486 1.00 0.00 O +ATOM 1624 H1 HOH B 534 -11.358 8.139 -13.632 1.00 0.00 H +ATOM 1625 H2 HOH B 534 -10.886 6.848 -14.266 1.00 0.00 H +ATOM 1626 O HOH B 535 10.633 -11.644 9.407 1.00 0.00 O +ATOM 1627 H1 HOH B 535 9.773 -12.020 9.216 1.00 0.00 H +ATOM 1628 H2 HOH B 535 11.231 -12.391 9.388 1.00 0.00 H +ATOM 1629 O HOH B 536 9.969 7.063 -7.564 1.00 0.00 O +ATOM 1630 H1 HOH B 536 10.889 6.819 -7.468 1.00 0.00 H +ATOM 1631 H2 HOH B 536 9.870 7.263 -8.494 1.00 0.00 H +ATOM 1632 O HOH B 537 7.534 8.193 3.593 1.00 0.00 O +ATOM 1633 H1 HOH B 537 6.935 8.471 4.285 1.00 0.00 H +ATOM 1634 H2 HOH B 537 7.965 9.000 3.310 1.00 0.00 H +ATOM 1635 O HOH B 538 -8.531 6.719 9.301 1.00 0.00 O +ATOM 1636 H1 HOH B 538 -8.112 7.271 9.962 1.00 0.00 H +ATOM 1637 H2 HOH B 538 -9.247 6.288 9.768 1.00 0.00 H +ATOM 1638 O HOH B 539 8.930 -12.517 -13.673 1.00 0.00 O +ATOM 1639 H1 HOH B 539 8.978 -13.397 -13.298 1.00 0.00 H +ATOM 1640 H2 HOH B 539 9.763 -12.109 -13.435 1.00 0.00 H +ATOM 1641 O HOH B 540 -11.928 -10.640 6.062 1.00 0.00 O +ATOM 1642 H1 HOH B 540 -11.920 -10.251 5.188 1.00 0.00 H +ATOM 1643 H2 HOH B 540 -12.661 -11.256 6.044 1.00 0.00 H +ATOM 1644 O HOH B 541 6.411 11.187 9.302 1.00 0.00 O +ATOM 1645 H1 HOH B 541 7.075 11.826 9.560 1.00 0.00 H +ATOM 1646 H2 HOH B 541 6.317 10.617 10.066 1.00 0.00 H +ATOM 1647 O HOH B 542 -12.790 -7.375 -12.485 1.00 0.00 O +ATOM 1648 H1 HOH B 542 -12.887 -6.972 -13.348 1.00 0.00 H +ATOM 1649 H2 HOH B 542 -11.863 -7.265 -12.271 1.00 0.00 H +ATOM 1650 O HOH B 543 -9.297 11.968 11.875 1.00 0.00 O +ATOM 1651 H1 HOH B 543 -9.376 12.569 12.616 1.00 0.00 H +ATOM 1652 H2 HOH B 543 -8.727 11.268 12.193 1.00 0.00 H +TER 1653 HOH B 543 +CONECT 1 2 +CONECT 2 5 1 3 4 +CONECT 3 2 +CONECT 4 2 +CONECT 5 2 6 7 +CONECT 6 5 +CONECT 7 5 +CONECT 15 17 +CONECT 17 15 19 18 +CONECT 18 17 +CONECT 19 20 21 22 17 +CONECT 20 19 +CONECT 21 19 +CONECT 22 19 +END diff --git a/openpathsampling/tests/test_data/plumed_wrapper/AD_plumed_rmsd.pdb b/openpathsampling/tests/test_data/plumed_wrapper/AD_plumed_rmsd.pdb new file mode 100755 index 000000000..299abe9e7 --- /dev/null +++ b/openpathsampling/tests/test_data/plumed_wrapper/AD_plumed_rmsd.pdb @@ -0,0 +1,40 @@ +REMARK 1 CREATED WITH OPENMM 6.0 2014-08-09 +CRYST1 26.063 26.063 26.063 90.00 90.00 90.00 P 1 1 +ATOM 1 H1 ACE A 1 -3.479 1.589 1.044 1.00 1.00 H +ATOM 2 CH3 ACE A 1 -3.046 0.591 0.972 1.00 1.00 C +ATOM 3 H2 ACE A 1 -3.382 0.141 0.038 1.00 1.00 H +ATOM 4 H3 ACE A 1 -3.370 -0.010 1.822 1.00 1.00 H +ATOM 5 C ACE A 1 -1.538 0.710 0.993 1.00 1.00 C +ATOM 6 O ACE A 1 -0.995 1.794 1.125 1.00 1.00 O +ATOM 7 N ALA A 2 -0.853 -0.432 0.873 1.00 1.00 N +ATOM 8 H ALA A 2 -1.392 -1.285 0.822 1.00 1.00 H +ATOM 9 CA ALA A 2 0.608 -0.497 0.841 1.00 1.00 C +ATOM 10 HA ALA A 2 1.016 0.250 1.522 1.00 1.00 H +ATOM 11 CB ALA A 2 1.040 -1.874 1.378 1.00 1.00 C +ATOM 12 HB1 ALA A 2 2.127 -1.907 1.439 1.00 1.00 H +ATOM 13 HB2 ALA A 2 0.690 -2.660 0.707 1.00 1.00 H +ATOM 14 HB3 ALA A 2 0.621 -2.021 2.373 1.00 1.00 H +ATOM 15 C ALA A 2 1.241 -0.198 -0.540 1.00 1.00 C +ATOM 16 O ALA A 2 2.453 -0.034 -0.650 1.00 1.00 O +ATOM 17 N NME A 3 0.426 -0.122 -1.605 1.00 1.00 N +ATOM 18 H NME A 3 -0.555 -0.264 -1.411 1.00 1.00 H +ATOM 19 C NME A 3 0.865 0.094 -2.982 1.00 1.00 C +ATOM 20 H1 NME A 3 1.440 1.018 -3.043 1.00 1.00 H +ATOM 21 H2 NME A 3 1.492 -0.740 -3.296 1.00 1.00 H +ATOM 22 H3 NME A 3 -0.005 0.172 -3.634 1.00 1.00 H +TER 23 NME A 3 +CONECT 1 2 +CONECT 2 5 1 3 4 +CONECT 3 2 +CONECT 4 2 +CONECT 5 2 6 7 +CONECT 6 5 +CONECT 7 5 +CONECT 15 17 +CONECT 17 15 19 18 +CONECT 18 17 +CONECT 19 20 21 22 17 +CONECT 20 19 +CONECT 21 19 +CONECT 22 19 +END diff --git a/openpathsampling/tests/test_plumed_wrapper.py b/openpathsampling/tests/test_plumed_wrapper.py new file mode 100755 index 000000000..94703283a --- /dev/null +++ b/openpathsampling/tests/test_plumed_wrapper.py @@ -0,0 +1,216 @@ +""" +@author Alberto Perez de Alba Ortiz +""" +import openpathsampling as paths + +try: + import mdtraj as md +except ImportError: + HAS_MDTRAJ = False +else: + HAS_MDTRAJ = True + +try: + import openpathsampling.engines.openmm as peng_omm +except ImportError: + HAS_OPENMM = False +else: + HAS_OPENMM = True + +try: + import plumed +except ImportError: + HAS_PLUMED = False +else: + HAS_PLUMED = True + from openpathsampling.collectivevariables.plumed_wrapper\ + import PLUMEDCV, PLUMEDInterface + +import pytest +from .test_helpers import data_filename + +import numpy as np +import os +import copy + + +class TestPLUMED(object): + def setup(self): + if not HAS_PLUMED: + pytest.skip("PLUMED module not installed.") + if not HAS_OPENMM: + pytest.skip("OpenMM module not installed.") + if not HAS_MDTRAJ: + pytest.skip("MDTraj module not installed.") + self.topology = peng_omm.tools.topology_from_pdb(data_filename( + "plumed_wrapper/" + + "AD_initial_frame" + + ".pdb")) + + self.trajectory = peng_omm.trajectory_from_mdtraj(md.load( + data_filename( + "ala_small_traj" + + ".pdb"))) + + if os.path.isfile("test.nc"): + os.remove("test.nc") + + def teardown(self): + if os.path.isfile("test.nc"): + os.remove("test.nc") + root = os.listdir(".") + for item in root: + if item.endswith("plumed.log"): + os.remove(item) + + +class TestPLUMEDCV(TestPLUMED): + + def test_storage(self): + plmd = PLUMEDInterface(self.topology) + dist = PLUMEDCV("dist", plmd, "DISTANCE ATOMS=7,9") + store = paths.Storage("test.nc", "w") + store.save(self.trajectory[:2]) + store.save(dist) + store.sync() + store.close() + + store2 = paths.Storage('test.nc', 'r') + dist2 = store2.cvs[dist.name] + store2.close() + + np.testing.assert_almost_equal(dist(self.trajectory), + dist2(self.trajectory), decimal=6) + + def test_storage_components(self): + plmd = PLUMEDInterface(self.topology) + dist = PLUMEDCV("dist", plmd, "DISTANCE ATOMS=7,9 COMPONENTS", + components=["x", "y", "z"]) + store = paths.Storage("test.nc", "w") + store.save(self.trajectory[:2]) + store.save(dist) + store.sync() + store.close() + + store2 = paths.Storage('test.nc', 'r') + dist2 = store2.cvs[dist.name] + store2.close() + + np.testing.assert_almost_equal(dist(self.trajectory), + dist2(self.trajectory), decimal=6) + + def test_distance_vs_mdtraj(self): + plmd = PLUMEDInterface(self.topology) + dist_md = paths.MDTrajFunctionCV("dist_md", md.compute_distances, + self.topology, atom_pairs=[[6, 8]]) + dist_pl = PLUMEDCV("dist_pl", plmd, "DISTANCE ATOMS=7,9") + + np.testing.assert_almost_equal(dist_md(self.trajectory), + dist_pl(self.trajectory), decimal=3) + + def test_angle_vs_mdtraj(self): + plmd = PLUMEDInterface(self.topology) + ang_md = paths.MDTrajFunctionCV("ang_md", md.compute_angles, + self.topology, + angle_indices=[[4, 6, 8]]) + ang_pl = PLUMEDCV("ang_pl", plmd, "ANGLE ATOMS=5,7,9") + + np.testing.assert_almost_equal(ang_md(self.trajectory), + ang_pl(self.trajectory), decimal=3) + + def test_torsion_vs_mdtraj(self): + plmd = PLUMEDInterface(self.topology) + tor_md = paths.MDTrajFunctionCV("tor_md", md.compute_dihedrals, + self.topology, + indices=[[6, 8, 14, 16]]) + tor_pl = PLUMEDCV("tor_pl", plmd, "TORSION ATOMS=7,9,15,17") + + np.testing.assert_almost_equal(tor_md(self.trajectory), + tor_pl(self.trajectory), decimal=3) + + def test_rmsd_vs_mdtraj(self): + plmd = PLUMEDInterface(self.topology) + rmsd_ref_file = data_filename(os.path.join("plumed_wrapper", + "AD_plumed_rmsd.pdb")) + md_ref = md.load(rmsd_ref_file) + rmsd_md = paths.MDTrajFunctionCV("rmsd_md", md.rmsd, self.topology, + reference=md_ref, frame=0, + atom_indices=range(22)) + rmsd_pl = PLUMEDCV("rmsd_pl", plmd, "RMSD REFERENCE=" + + rmsd_ref_file + " TYPE=OPTIMAL") + + np.testing.assert_almost_equal(rmsd_md(self.trajectory), + rmsd_pl(self.trajectory), decimal=3) + + def test_components(self): + plmd = PLUMEDInterface(self.topology) + dist_pl = PLUMEDCV("dist", plmd, "DISTANCE ATOMS=7,9") + comp_pl = PLUMEDCV("comp", plmd, "DISTANCE ATOMS=7,9 COMPONENTS", + components=["x", "y", "z"]) + comp_dist_pl = (comp_pl(self.trajectory)[:, 0]**2 + + comp_pl(self.trajectory)[:, 1]**2 + + comp_pl(self.trajectory)[:, 2]**2)**0.5 + np.testing.assert_almost_equal(dist_pl(self.trajectory), + comp_dist_pl, decimal=6) + + def test_combine(self): + plmd = PLUMEDInterface(self.topology) + phi_pl = PLUMEDCV("phi", plmd, "TORSION ATOMS=5,7,9,15") + psi_pl = PLUMEDCV("psi", plmd, "TORSION ATOMS=7,9,15,17") + sum_pl = phi_pl(self.trajectory) + psi_pl(self.trajectory) + comb_pl = PLUMEDCV("sum", plmd, "COMBINE ARG=phi,psi PERIODIC=NO") + np.testing.assert_almost_equal(sum_pl, + comb_pl(self.trajectory), decimal=6) + + def test_group(self): + plmd = PLUMEDInterface(self.topology) + tor_pl = PLUMEDCV("tor", plmd, "TORSION ATOMS=7,9,15,17") + plmd.set("group", "GROUP ATOMS=7,9,15,17") + tor_group_pl = PLUMEDCV("tor_group", plmd, "TORSION ATOMS=group") + + np.testing.assert_almost_equal(tor_pl(self.trajectory), + tor_group_pl(self.trajectory), + decimal=6) + + def test_molinfo(self): + plmd = PLUMEDInterface(self.topology, + molinfo=data_filename("plumed_wrapper/" + + "AD_initial_frame.pdb")) + tor_md = paths.MDTrajFunctionCV("tor_md", md.compute_dihedrals, + self.topology, + indices=[[6, 8, 14, 16]]) + tor_pl = PLUMEDCV("tor_pl", plmd, "TORSION ATOMS=@psi-2") + + np.testing.assert_almost_equal(tor_md(self.trajectory), + tor_pl(self.trajectory), decimal=3) + + ''' + def test_no_masses(self): + plmd = PLUMEDInterface(self.topology) + plmd.set("center","CENTER ATOMS=7,9,15,17") + plmd.set("com","CENTER ATOMS=7,9,15,17 MASS") + dist_pl = PLUMEDCV("dist",plmd,"DISTANCE ATOMS=center,com") + + np.testing.assert_array_equal(dist_pl(self.trajectory), + np.zeros(self.trajectory)) + ''' + + +class TestPLUMEDInterface(TestPLUMED): + + def test_storage(self): + plmd = PLUMEDInterface(self.topology) + plmd.set("", "UNITS LENGTH=nm") + plmd.set("", "MOLINFO STRUCTURE=" + + data_filename("plumed_wrapper/AD_initial_frame.pdb")) + store = paths.Storage("test.nc", "w") + store.save(self.trajectory[:2]) + store.tags['a'] = plmd + store.sync() + store.close() + + store2 = paths.Storage('test.nc', 'r') + plmd2 = store2.tags['a'] + store2.close() + + np.testing.assert_array_equal(plmd.get(), plmd2.get()) From 239da8afbc8a86983a49808e408c19c83686c3c0 Mon Sep 17 00:00:00 2001 From: Alberto Date: Thu, 26 Mar 2020 17:37:04 +0100 Subject: [PATCH 342/464] getting box from snapshot --- openpathsampling/collectivevariables/plumed_wrapper.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/openpathsampling/collectivevariables/plumed_wrapper.py b/openpathsampling/collectivevariables/plumed_wrapper.py index 7c48af877..a5f9e4a70 100755 --- a/openpathsampling/collectivevariables/plumed_wrapper.py +++ b/openpathsampling/collectivevariables/plumed_wrapper.py @@ -153,8 +153,9 @@ def compute_cv(self, trajectory): bias = np.zeros((1), dtype=np.float64) # non-essential for step, snapshot in enumerate(trajectory): self.plmd.cmd("setStep", step) - mdtrajtraj = peng.openmm.trajectory_to_mdtraj(snapshot) - box = np.array(mdtrajtraj.unitcell_vectors, dtype=np.float64) + if snapshot.box_vectors != None: + box = np.array(snapshot.box_vectors, dtype=np.float64) + self.plmd.cmd("setBox", box) positions = snapshot.xyz.astype(np.float64) self.plmd.cmd("setBox", box) self.plmd.cmd("setPositions", positions) From d1a640d2a91f2e8469094041f80e5fae7b5b417e Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Wed, 8 Apr 2020 17:01:01 +0200 Subject: [PATCH 343/464] Fix miniconda install --- devtools/ci/miniconda_install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/devtools/ci/miniconda_install.sh b/devtools/ci/miniconda_install.sh index cf518fee4..66274a904 100644 --- a/devtools/ci/miniconda_install.sh +++ b/devtools/ci/miniconda_install.sh @@ -13,7 +13,7 @@ conda_version="latest" #conda_version="4.4.10" # can pin a miniconda version like this, if needed MINICONDA=Miniconda${pyV}-${conda_version}-Linux-x86_64.sh -MINICONDA_MD5=$(curl -s https://repo.continuum.io/miniconda/ | grep -A3 $MINICONDA | sed -n '4p' | sed -n 's/ *\(.*\)<\/td> */\1/p') +MINICONDA_MD5=$(curl -sL https://repo.continuum.io/miniconda/ | grep -A3 $MINICONDA | sed -n '4p' | sed -n 's/ *\(.*\)<\/td> */\1/p') wget https://repo.continuum.io/miniconda/$MINICONDA if [[ $MINICONDA_MD5 != $(md5sum $MINICONDA | cut -d ' ' -f 1) ]]; then echo "Miniconda MD5 mismatch" From 38cdcdd4b3a231c413d83ccde6c3583c9c5c19e2 Mon Sep 17 00:00:00 2001 From: oliverdutton <44170519+oliverdutton@users.noreply.github.com> Date: Thu, 30 Apr 2020 15:01:44 +0100 Subject: [PATCH 344/464] External engine communicating exit Problem: I was using GROMACS and OPS couldn't tell when GROMACS had exited due to errors. Reason: External engine get's checked if it's still running using subprocess.Popen.process.is_running() call. This doesn't actually communicate with the process to ask if it's still running, it returns the value corresponding to last time it was checked. In this case, when the process was set up, so case of not running never gets called. Solution: Altered to use subprocess.Popen.process.poll() - return None is process still running, and the return code if it isn't. I've also altered the stop signal to copy with the process already having exited of it's own accord --- openpathsampling/engines/external_engine.py | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/openpathsampling/engines/external_engine.py b/openpathsampling/engines/external_engine.py index 5f1eac02d..4471bc639 100644 --- a/openpathsampling/engines/external_engine.py +++ b/openpathsampling/engines/external_engine.py @@ -106,11 +106,11 @@ def generate_next_frame(self): #print self.frame_num, next_frame # DEBUG LOGGER now = time.time() if next_frame == "partial": - if not self.proc.is_running(): + if self.proc.poll() is not None: raise RuntimeError("External engine died unexpectedly") time.sleep(0.001) # wait a millisec and rerun elif next_frame is None: - if not self.proc.is_running(): + if self.proc.poll() is not None: raise RuntimeError("External engine died unexpectedly") logger.debug("Sleeping for {:.2f}ms".format(self.sleep_ms)) time.sleep(self.sleep_ms/1000.0) @@ -160,10 +160,13 @@ def stop(self, trajectory): proc = self.who_to_kill() logger.info("About to send signal %s to %s", str(self.killsig), str(proc)) - proc.send_signal(self.killsig) - logger.debug("Signal has been sent") - proc.wait() # wait for the zombie to die - logger.debug("Zombie should be dead") + try: + proc.send_signal(self.killsig) + logger.debug("Signal has been sent") + proc.wait() # wait for the zombie to die + logger.debug("Zombie should be dead") + except psutil.NoSuchProcess: + logger.debug("Tried to kill process, but it was already dead") self.cleanup() # FROM HERE ARE THE FUNCTIONS TO OVERRIDE IN SUBCLASSES: From b1110c38383f43a0e5bacce09190bde642546e84 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Tue, 19 May 2020 10:16:29 +0200 Subject: [PATCH 345/464] Basic storable funcs Start to safemode; not sure that it works yet. Still need to get the storable function results to store correctly --- .../experimental/storage/callable_codec.py | 2 +- .../experimental/storage/class_info.py | 31 +- .../experimental/storage/custom_json.py | 10 +- .../experimental/storage/ops_storage.py | 48 ++- .../experimental/storage/sql_backend.py | 14 +- .../storage/storable_functions.py | 306 ++++++++++++++++++ .../experimental/storage/storage.py | 16 +- .../storage/test_storable_function.py | 203 ++++++++++++ 8 files changed, 606 insertions(+), 24 deletions(-) create mode 100644 openpathsampling/experimental/storage/storable_functions.py create mode 100644 openpathsampling/experimental/storage/test_storable_function.py diff --git a/openpathsampling/experimental/storage/callable_codec.py b/openpathsampling/experimental/storage/callable_codec.py index 7a5eb9c08..9b17cd6a4 100644 --- a/openpathsampling/experimental/storage/callable_codec.py +++ b/openpathsampling/experimental/storage/callable_codec.py @@ -115,7 +115,7 @@ def default(self, obj): forbidden_imports) if errors: - raise RuntimeError("Cannot store function! \n\n", errors) + raise RuntimeError("Cannot store function! \n\n" + errors) return { '__callable_name__': obj.__name__, diff --git a/openpathsampling/experimental/storage/class_info.py b/openpathsampling/experimental/storage/class_info.py index e27e0e96b..cb99223bd 100644 --- a/openpathsampling/experimental/storage/class_info.py +++ b/openpathsampling/experimental/storage/class_info.py @@ -32,11 +32,14 @@ class ClassInfo(object): object """ def __init__(self, table, cls, serializer=None, deserializer=None, - lookup_result=None, find_uuids=None): + lookup_result=None, find_uuids=None, + safe_deserializer=None): self.table = table self.cls = cls self.serializer = serializer - self.deserializer = deserializer + self.deserializer = None + self.unsafe_deserializer = deserializer + self.safe_deserializer = safe_deserializer if lookup_result is None: lookup_result = cls self.lookup_result = lookup_result @@ -47,15 +50,23 @@ def set_defaults(self, schema): self.serializer, SchemaSerializer(schema, self.table, self.cls) ) - self.deserializer = tools.none_to_default( - self.deserializer, + self.unsafe_deserializer = tools.none_to_default( + self.unsafe_deserializer, SchemaDeserializer(schema, self.table, self.cls) ) + self.safe_deserializer = tools.none_to_default( + self.safe_deserializer, + self.unsafe_deserializer + ) self.find_uuids = tools.none_to_default( self.find_uuids, SchemaFindUUIDs(schema[self.table]) ) + self.set_safemode(True) + def set_safemode(self, mode): + self.deserializer = {True: self.safe_deserializer, + False: self.unsafe_deserializer}[mode] def __repr__(self): # pragma: no cover return ("ClassInfo(table=" + self.table + ", cls=" + str(self.cls) @@ -104,7 +115,13 @@ def add_class_info(self, info_node): # of the expected return to identify the function to call -- won't # be completely general, but may simplify some) self.lookup_to_info.update({info_node.lookup_result: info_node}) - self.table_to_info.update({info_node.table: info_node}) + immutable_tables = [self.default_info.table, + self.missing_table.table] + reserved = info_node.table in [self.default_info.table, + self.missing_table.table] + exists = info_node.table in self.table_to_info + if not (reserved and exists): + self.table_to_info.update({info_node.table: info_node}) def register_info(self, class_info_list, schema=None): schema = tools.none_to_default(schema, {}) @@ -113,6 +130,10 @@ def register_info(self, class_info_list, schema=None): info.set_defaults(schema) self.add_class_info(info) + def set_safemode(self, mode): + for class_info in self.class_info_list: + class_info.set_safemode(mode) + @property def tables(self): """list of tables from the included class info objects""" diff --git a/openpathsampling/experimental/storage/custom_json.py b/openpathsampling/experimental/storage/custom_json.py index 4142e70e5..72d8c864b 100644 --- a/openpathsampling/experimental/storage/custom_json.py +++ b/openpathsampling/experimental/storage/custom_json.py @@ -17,10 +17,11 @@ class JSONSerializerDeserializer(object): codecs : list of :class:`.JSONCodec`s codecs supported """ - def __init__(self, codecs): + def __init__(self, codecs, named_codecs=None): self._serializer = None self._deserializer = None self._sim_serializer = None + self.named_codecs = none_to_default(named_codecs, {}) self.codecs = [] for codec in codecs: self.add_codec(codec) @@ -33,6 +34,9 @@ def add_codec(self, codec): codec : :class:`.JSONCodec` codec to add """ + if codec in self.codecs: + return + if codec is not None: self.codecs.append(codec) encoder, decoder = custom_json_factory(self.codecs) @@ -40,6 +44,10 @@ def add_codec(self, codec): self._deserializer = functools.partial(json.loads, cls=decoder) self._sim_serializer = SimulationObjectSerializer(self._serializer) + def replace_named_codec(self, codec_name, codec): + self.named_codecs[codec_name] = codec + self.add_codec(None) + def serializer(self, obj): return self._serializer(obj) diff --git a/openpathsampling/experimental/storage/ops_storage.py b/openpathsampling/experimental/storage/ops_storage.py index ba7a3dacd..6caf29043 100644 --- a/openpathsampling/experimental/storage/ops_storage.py +++ b/openpathsampling/experimental/storage/ops_storage.py @@ -9,6 +9,10 @@ from .class_lookup import ClassIsSomething +from .storable_functions import ( + StorableFunction, storable_function_find_uuids +) + import openpathsampling as paths from openpathsampling.netcdfplus import StorableObject @@ -19,6 +23,8 @@ numpy_codec, bytes_codec, uuid_object_codec, ) +from .callable_codec import CallableCodec + from .serialization import ( ToDictSerializer, SchemaSerializer, SchemaDeserializer, SimulationObjectSerializer @@ -56,6 +62,9 @@ # this defines the simulation object serializer for OPS CODECS = [numpy_codec, bytes_codec, uuid_object_codec] +UNSAFE_CODECS = CODECS + [CallableCodec()] +SAFE_CODECS = CODECS + [CallableCodec({'safemode': True})] + class MoveChangeDeserializer(SchemaDeserializer): # in general, I think it would be better to reorg MoveChange to only be # one class, but this is aimed at fixing problems with reloading @@ -81,8 +90,6 @@ def __call__(self, uuid, table_dct, cache_list): set_uuid(obj, uuid) return obj -# can't the is_special here just wrap a class_lookup.ClassIsSomething? -# should save a few lines of code class OPSSpecialLookup(object): """Separate object to handle special lookups @@ -146,37 +153,50 @@ def add_missing_table_from_instance(self, lookup, obj): self.register_info(class_info_list, schema) self.n_snapshot_types += 1 -ops_codecs = JSONSerializerDeserializer(CODECS) +unsafe_ops_codecs = JSONSerializerDeserializer(UNSAFE_CODECS) +safe_ops_codecs = JSONSerializerDeserializer(SAFE_CODECS) -def _build_ops_serializer(codecs): +def _build_ops_serializer(schema, safe_codecs, unsafe_codecs): + # TODO: why is this using deserialize_sim instead of the codec + # deserializer? ops_class_info = OPSClassInfoContainer( - default_info=ClassInfo('simulation_objects', cls=StorableObject, - serializer=codecs.simobj_serializer, - deserializer=deserialize_sim, - find_uuids=default_find_uuids), - schema=ops_schema, + default_info=ClassInfo( + table='simulation_objects', + cls=StorableObject, + serializer=unsafe_codecs.simobj_serializer, + deserializer=deserialize_sim, + safe_deserializer=safe_codecs.simobj_serializer, + find_uuids=default_find_uuids + ), + schema=schema, class_info_list=[ ClassInfo(table='samples', cls=paths.Sample), ClassInfo(table='sample_sets', cls=paths.SampleSet), ClassInfo(table='trajectories', cls=paths.Trajectory), ClassInfo(table='move_changes', cls=paths.MoveChange, deserializer=MoveChangeDeserializer( - schema=ops_schema, + schema=schema, table='move_changes' )), ClassInfo(table='steps', cls=paths.MCStep), ClassInfo(table='details', cls=paths.Details, - serializer=codecs.simobj_serializer, + serializer=safe_codecs.simobj_serializer, + deserializer=deserialize_sim), + ClassInfo(table='simulation_objects', + cls=StorableFunction, + find_uuids=storable_function_find_uuids, + serializer=unsafe_codecs.simobj_serializer, deserializer=deserialize_sim), ] ) for info in ops_class_info.class_info_list: - info.set_defaults(ops_schema) + info.set_defaults(schema) return ops_class_info -ops_class_info = _build_ops_serializer(codecs=ops_codecs) +ops_class_info = _build_ops_serializer(ops_schema, safe_ops_codecs, + unsafe_ops_codecs) # this will create the pseudo-tables used to find specific objects ops_simulation_classes = { @@ -195,7 +215,7 @@ def __init__(self, backend, schema, class_info, fallbacks=None, safemode=False): # TODO: this will change to match the current notation super(OPSStorage, self).__init__(backend, schema, class_info, - fallbacks) + fallbacks, safemode) self.n_snapshot_types = 0 diff --git a/openpathsampling/experimental/storage/sql_backend.py b/openpathsampling/experimental/storage/sql_backend.py index 3c6538874..268848485 100644 --- a/openpathsampling/experimental/storage/sql_backend.py +++ b/openpathsampling/experimental/storage/sql_backend.py @@ -252,6 +252,16 @@ def register_schema(self, schema, table_to_class, self.metadata.create_all(self.engine) self.schema.update(schema) + def has_table(self, table_name): + """Returns whether this table is known to the database. + + Parameters + ---------- + table_name : str + the name of the table to search for + """ + return table_name in self.metadata.tables + def register_storable_function(self, table_name, result_type): """ Parameters @@ -263,7 +273,9 @@ def register_storable_function(self, table_name, result_type): string name of the result type; must match one of the keys of ``sql_type`` """ - columns = [sql.Column('uuid', sql.String), + logger.info("Registering storable function: UUID: %s (%s)" % + (table_name, result_type)) + columns = [sql.Column('uuid', sql.String, primary_key=True), sql.Column('value', sql_type[result_type])] try: table = sql.Table(table_name, self.metadata, *columns) diff --git a/openpathsampling/experimental/storage/storable_functions.py b/openpathsampling/experimental/storage/storable_functions.py new file mode 100644 index 000000000..5e9152dab --- /dev/null +++ b/openpathsampling/experimental/storage/storable_functions.py @@ -0,0 +1,306 @@ +from collections import abc +import warnings +import inspect +import types +from .tools import none_to_default +from .callable_codec import CallableCodec +from .serialization_helpers import get_uuid, has_uuid, default_find_uuids +from .class_info import ClassInfo +from .serialization_helpers import from_json_obj as deserialize_sim +from openpathsampling.netcdfplus import StorableNamedObject + +class StorableFunctionResults(StorableNamedObject): + """Cache of results from a function. + + The function will be associated with a cache like this, and this is the + first place it will look for results (in order to avoid recalculating). + """ + _sanity_checks = True + def __init__(self, parent_uuid): + super(StorableFunctionResults, self).__init__() + self.parent_uuid = parent_uuid + # TODO: someday, result_dict may need to be a cache that gets + # emptied (thinking about memory concerns) + self.result_dict = {} + self.local_uuids = set([]) + + def get_results_as_dict(self, uuid_items): + """ + Parameters + ---------- + items : Dict[str, obj] + mapping of UUID to input item with that UUID + + Returns + ------- + results : Dict[str, obj] + mapping UUID to output for the input with that UUID + missing : Set[str] + set of UUIDs that could not be found (must be calculated) + """ + uuids = set(uuid_items.keys()) + local_uuids = uuids & self.local_uuids + missing_uuids = uuids - local_uuids + + results = {uuid: self.result_dict[uuid] for uuid in local_uuids} + missing = {uuid: uuid_items[uuid] for uuid in missing_uuids} + return results, missing + + def caching_sanity_check(self, uuid_results): + for uuid, res in uuid_results.items(): + if uuid in self.local_uuids and self.result_dict[uuid] != res: + # this only happens if we somehow get two different results + # for the same input, which should not be possible + # TODO: check which type of error this should be + raise RuntimeError("Inconsistent results for storable" + + "function.") + + def update(self, mapping): + self.cache_results(mapping.result_dict) + + def cache_results(self, uuid_results): + if self._sanity_checks: + self.caching_sanity_check(uuid_results) + self.result_dict.update(uuid_results) + new_uuids = set(uuid_results.keys()) + self.local_uuids.update(new_uuids) + + def clear(self): + self.result_dict.clear() + self.local_uuids = set([]) + + def __len__(self): + return len(self.result_dict) + + def to_dict(self): + return { + 'parent_uuid': self.parent_uuid, + 'result_dict': self.result_dict, + } + + @classmethod + def from_dict(cls, dct): + obj = cls(dct['parent_uuid']) + obj.result_dict = dct['result_dict'] + + +class StorableFunction(StorableNamedObject): + """Function wrapper, providing result caching and storage to disk. + + Parameters + ---------- + func : Callable + input_type + output_type + store_store : Union[bool, None] + Whether to store the source for this function. Default behavior + (None) stores source for anything created in ``__main__`` that is + not a lambda expression. + """ + def __init__(self, func, output_type=None, + store_source=None): + super(StorableFunction, self).__init__() + self.func = func + self.source = None + if store_source is None: + is_lambda = (isinstance(func, types.FunctionType) + and func.__name__ == "") + store_source = func.__module__ == "__main__" and not is_lambda + + if store_source: + try: + self.source = inspect.getsource(func) + except IOError: + warnings.warn("Unable to get source for " + str(func)) + + # self.input_type = input_type + self.output_type = output_type + self.local_cache = None # set correctly by self.mode setter + self._disk_cache = True + self._handler = None + self.mode = 'analysis' + + def set_handler(self, storage, override=False): + if not override and self._handler is not None: + raise RuntimeError("Handler for this StorableFunction has " + + "already been set:" + str(self._handler)) + self._handler = storage + + @property + def disk_cache(self): + return self._disk_cache + + @disk_cache.setter + def disk_cache(self, value): + self._disk_cache = value + + @property + def mode(self): + return self._mode + + @mode.setter + def mode(self, value): + allowed_values = ['no-caching', 'analysis', 'production'] + if value not in allowed_values: + raise ValueError("Unknown mode: '%s'. Allowed options: %s" % + (value, allowed_values)) + + if value == 'no-caching': + self.local_cache = None + else: + self.local_cache = StorableFunctionResults(get_uuid(self)) + + self._mode = value + + + def to_dict(self): + return { + 'func': self.func, # made into JSON by CallableCodec + 'source': self.source, + # 'input_type': self.input_type, + 'output_type': self.output_type, + } + + @classmethod + def from_dict(cls, dct): + obj = cls(func=dct['func'], + input_type=dct['input_type'], + output_type=dct['output_type']) + if obj.source is None: + obj.source = dct['source'] # may still be none + + return obj + + def is_singular(self, item): + """Determine whether the input needs to be wrapped in a list. + + For performance (especially on analysis), all internal calculations + are done assuming that the CV is called with a list of values. This + method determines when the input was a list or a single item. + + Parameters + ---------- + item : obj + the input + + Returns + ------- + bool : + True if the item should be wrapped in a list + """ + # the assumption here is that if you have a UUID, you're the type of + # item we want. Need to override for snapshots-based CVs, where a + # Trajectory has a UUID but is considered a list of Snapshots (maybe + # we'll need to use isinstance(item, Snapshot) instead?) + return has_uuid(item) + + def _eval(self, uuid_items): + if self.func is None and uuid_items: + raise RuntimeError("No function attached to %s. Can not " + + "evaluate for %s." % (self, uuid_items)) + + results = {uuid: self.func(item) + for uuid, item in uuid_items.items()} + return results, {} + + def _get_cached(self, uuid_items): + return self.local_cache.get_results_as_dict(uuid_items) + + def _get_storage(self, uuid_items): + if not self._handler: + return {}, uuid_items + + return self._handler.get_function_results(get_uuid(self), uuid_items) + + def __call__(self, items): + # important: implementation is that we always try to take an + # iterable of items ... this makes, e.g., applying a CV to a + # trajectory (especially in analysis) MUCH faster + singular = False + if self.is_singular(items): + items = [items] + singular = True + + uuid_items = {get_uuid(item): item for item in items} + # TODO: add preprocessing here? if needed? + + cache_mode_order = { # tuples of (function, add_to_cache) + 'analysis': [(self._get_cached, False), + (self._get_storage, True), + (self._eval, True)], + 'production': [(self._get_cached, False), + (self._eval, True)], + 'no-caching': [(self._eval, False)] + }[self.mode] + + missing = uuid_items + result_dict = {} + for stage, do_caching in cache_mode_order: + stage_results, missing = stage(missing) + result_dict.update(stage_results) + if do_caching: + self.local_cache.cache_results(stage_results) + + if not missing: + break + + return_list = [result_dict[get_uuid(item)] for item in items] + # result = self.postprocess(return_list) # TODO if needed? + result = return_list + + if singular: + result = result[0] + + return result + + +def storable_function_find_uuids(obj, cache_list): + uuids, new_objects = default_find_uuids(obj, cache_list) + func_results = obj.local_cache + uuids.update({get_uuid(func_results): func_results}) + return uuids, new_objects + + +class StorageFunctionHandler(object): + def __init__(self, storage, functions=None, other_codecs=None, + codec_settings=None): + self.storage = storage + self.codecs = none_to_default(codecs, []) + functions = none_to_default(functions, []) + codec_settings = none_to_default(codec_settings, {}) + self.callable_codec = None + self.codec_settings = codec_settings # sets callable_codec + self.canonical_functions = {} + for func in functions: + self.register_function(func) + + @property + def codec_settings(self): + return self._codec_settings + + @codec_settings.setter + def codec_settings(self, settings): + if self._codec_settings != settings: + self._codec_settings = settings + self.callable_codec = CallableCodec(code_settings) + + def _make_classinfo(self, func): + pass + + def register_function(self, func): + func_uuid = get_uuid(func) + if func_uuid not in self.canonical_functions: + self.canonical_functions[func_uuid] = func + func.set_handler(self) + + @property + def functions(self): + return list(self.canonical_functions.values()) + + def update_cache(self, function_results): + func = self.canonical_functions[function_results.parent_uuid] + func.local_cache.update(function_results) + + def get_function_results(self, func_uuid, uuid_items): + pass + diff --git a/openpathsampling/experimental/storage/storage.py b/openpathsampling/experimental/storage/storage.py index 83788518a..db8fe2887 100644 --- a/openpathsampling/experimental/storage/storage.py +++ b/openpathsampling/experimental/storage/storage.py @@ -45,12 +45,14 @@ class GeneralStorage(object): def __init__(self, backend, class_info, schema=None, - simulation_classes=None, fallbacks=None): + simulation_classes=None, fallbacks=None, safemode=False): self.backend = backend self.schema = schema self.class_info = class_info self.mode = self.backend.mode - # TODO: implement fallbacks + self._safemode = None + self.safemode = safemode + # TODO: implement fallback self.fallbacks = tools.none_to_default(fallbacks, []) self.simulation_classes = tools.none_to_default(simulation_classes, @@ -72,6 +74,16 @@ def __init__(self, backend, class_info, schema=None, self.initialize_with_mode(self.mode) self._stashed = [] + @property + def safemode(self): + return self._safemode + + @safemode.setter + def safemode(self, value): + if value is self._safemode: + return + self.class_info.set_safemode(value) + def initialize_with_mode(self, mode): if mode == 'r' or mode == 'a': self.register_schema(self.schema, class_info_list=[], diff --git a/openpathsampling/experimental/storage/test_storable_function.py b/openpathsampling/experimental/storage/test_storable_function.py new file mode 100644 index 000000000..7b426a641 --- /dev/null +++ b/openpathsampling/experimental/storage/test_storable_function.py @@ -0,0 +1,203 @@ +import pytest +try: + from unittest import mock +except ImportError: + import mock + +from .storable_functions import * +_MODULE = "openpathsampling.experimental.storage.storable_functions" + +class TestStorableFunctionResults(object): + def setup(self): + self.mapping = {'UUID1': "foo", + 'UUID2': "bar"} + self.sfr = StorableFunctionResults("funcUUID") + self.sfr.result_dict = self.mapping + self.sfr.local_uuids = set(self.mapping.keys()) + + def test_get_results_as_dict_cached(self): + result, missing = self.sfr.get_results_as_dict({'UUID1': "object"}) + assert result == {'UUID1': "foo"} + assert missing == {} + + def test_get_results_as_dict_missing(self): + result, missing = self.sfr.get_results_as_dict({"UUID3": "object"}) + assert result == {} + assert missing == {"UUID3": "object"} + + def test_get_results_as_dict_storage(self): + pytest.skip() + pass + + def test_update(self): + new_sfr = StorableFunctionResults("funcUUID") + new_sfr.result_dict = {'UUID3': "baz"} + new_sfr.local_uuids = set(['UUID3']) + self.sfr.update(new_sfr) + assert len(self.sfr) == 3 + assert "UUID3" in self.sfr.local_uuids + assert self.sfr.result_dict["UUID3"] == "baz" + + # TODO: test_cache_results_nonpure_function + # if you try to cache results that don't match the original, you get an + # error + + def test_cache_results(self): + self.sfr.cache_results({"UUID3": "baz"}) + assert len(self.sfr) == 3 + assert "UUID3" in self.sfr.local_uuids + assert self.sfr.result_dict["UUID3"] == "baz" + + def test_clear(self): + assert len(self.sfr) != 0 + self.sfr.clear() + assert len(self.sfr) == 0 + assert self.sfr.result_dict == {} + assert self.sfr.local_uuids == set([]) + + def test_len(self): + assert len(self.sfr) == 2 + + def test_to_dict_from_dict_cycle(self): + pass + + +@mock.patch(_MODULE + '.get_uuid', lambda x: x) +@mock.patch(_MODULE + '.has_uuid', lambda x: isinstance(x, str)) +class TestStorableFunction(object): + def setup(self): + def get_expected(uuid): + expected = {'uuid': 'eval', 'uuid1': 'other'} + return expected[uuid] + + self.func = StorableFunction(get_expected) + + def test_gets_source(self): + pytest.skip() + pass + + def test_no_source_warning(self): + pytest.skip() + pass + + def test_disk_cache_property(self): + pytest.skip() + pass + + @pytest.mark.parametrize('mode', ['no-caching', 'analysis', + 'production']) + def test_mode(self, mode): + self.func.mode = mode + assert self.func.mode == mode + if mode == 'no-caching': + assert self.func.local_cache is None + else: + assert self.func.local_cache is not None + + def test_bad_mode(self): + with pytest.raises(ValueError): + self.func.mode = 'foo' + + @staticmethod + def _set_cache(func, mode, found_in, expected): + if found_in == 'cache': + func.local_cache.cache_results(expected) + elif mode == 'no-caching': + pass + else: + func.local_cache.clear() + pass + + @staticmethod + def _set_storage(func, mode, found_in, expected): + if found_in == 'storage': + def get_storage(cv_uuid, uuids): + missing = {uuid: uuids[uuid] for uuid in uuids + if uuid not in expected.keys()} + found = {uuid: uuids[uuid] for uuid in uuids + if uuid in expected.keys()} + return {uuid: expected[uuid] for uuid in found}, missing + else: + def get_storage(cv_uuid, uuids): + return {}, dict(uuids) + + storage = mock.MagicMock(get_function_results=get_storage) + func._handler = storage + + @pytest.mark.parametrize('mode, found_in', [ + ('analysis', 'storage'), ('analysis', 'cache'), + ('analysis', 'eval'), ('production', 'cache'), + ('production', 'eval'), ('no-caching', 'eval') + ]) + def test_call(self, mode, found_in): + # mode = 'analysis' + # found_in = 'cache' + # setup, depending on the parametrized parameters + expected = {'uuid': 'eval'} + get_expected = lambda x: expected[x] + func = StorableFunction(get_expected) + + func.mode = mode + self._set_cache(func, mode, found_in, expected={'uuid': 'cache'}) + self._set_storage(func, mode, found_in, expected={'uuid': 'storage'}) + + # validation of correct behavior + # NOTE: some of this testing is based on internal behavior, which + # perhaps shouldn't be in the public-facing API + if found_in != 'cache' and mode != 'no-caching': + assert 'uuid' not in func.local_cache.result_dict + + assert func('uuid') == found_in + if mode != 'no-caching': + assert func.local_cache.result_dict['uuid'] == found_in + + @pytest.mark.parametrize("found_in_1, found_in_2", [ + ('storage', 'storage'), ('cache', 'cache'), ('eval', 'eval'), + ('cache', 'eval') + ]) + def test_call_multiple(self, found_in_1, found_in_2): + # only test this in analysis + expected_dict = {'uuid': found_in_1, 'other': found_in_2} + expected = { + level: {uuid: expected + for uuid, expected in expected_dict.items() + if expected == level} + for level in ['eval', 'cache', 'storage'] + } + get_expected = lambda x: expected['eval'][x] + func = StorableFunction(get_expected) + self._set_cache(func, 'analysis', 'cache', + expected=expected['cache']) + self._set_storage(func, 'analysis', 'storage', + expected=expected['storage']) + + assert func(['uuid', 'other']) == [found_in_1, found_in_2] + + def test_to_dict_from_dict_cycle(self): + pytest.skip() + pass + + @pytest.mark.parametrize('found_in', ['cache', 'storage', 'eval']) + def test_analysis_mode_integration(self, found_in): + pytest.skip() + pass + + +class TestStorageFunctionHandler(object): + def setup(self): + pass + + def test_register(self): + pytest.skip() + pass + + def test_update(self): + pytest.skip() + pass + + def test_update_mock_parallel(self): + pytest.skip() + # a test to show how this should work if multiple results with same + # CV come in + pass + From 855f0fba950f840af00061143c695705f11ea3ea Mon Sep 17 00:00:00 2001 From: oliverdutton <44170519+oliverdutton@users.noreply.github.com> Date: Sun, 24 May 2020 18:04:02 +0100 Subject: [PATCH 346/464] In code keep_half string used as option, but says 50% in docs, they're not aligned. int added when choosing frame as half the len of trajectory current snapshot only set if trajectory has length (not death on creation) --- openpathsampling/engines/dynamics_engine.py | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/openpathsampling/engines/dynamics_engine.py b/openpathsampling/engines/dynamics_engine.py index e70bea7a8..748f5e44f 100644 --- a/openpathsampling/engines/dynamics_engine.py +++ b/openpathsampling/engines/dynamics_engine.py @@ -95,7 +95,7 @@ class DynamicsEngine(StorableNamedObject): some trajectory you might not restart completely. Possibilities are 1. `full` will restart completely and use the initial frames (default) - 2. `50%` will cut the existing in half but keeping at least the initial + 2. `keep_half` will cut the existing in half but keeping at least the initial 3. `remove_interval` will remove as many frames as the `interval` 4. a callable will be used as a function to generate the new from the old trajectories, e.g. `lambda t: t[:10]` would restart with the @@ -509,15 +509,17 @@ def iter_generate(self, initial, running=None, direction=+1, int(len(trajectory) * 0.9), max( len(initial), - len(trajectory) / 2))] + int(len(trajectory) / 2)))] elif hasattr(self.on_retry, '__call__'): trajectory = self.on_retry(trajectory) - - if direction > 0: - self.current_snapshot = trajectory[-1] - elif direction < 0: - # backward simulation needs reversed snapshots - self.current_snapshot = trajectory[0].reversed + + """ Case of run dying before first output""" + if len(trajectory) >= 1: + if direction > 0: + self.current_snapshot = trajectory[-1] + elif direction < 0: + # backward simulation needs reversed snapshots + self.current_snapshot = trajectory[0].reversed logger.info("Starting trajectory") self.start() From 2914fac642048fcefc521888307442096cf5dade Mon Sep 17 00:00:00 2001 From: oliverdutton <44170519+oliverdutton@users.noreply.github.com> Date: Sun, 24 May 2020 18:06:55 +0100 Subject: [PATCH 347/464] Added snapshot_timestep to options dict (proper integration of reading from mdp may follow) --- openpathsampling/engines/gromacs/engine.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/openpathsampling/engines/gromacs/engine.py b/openpathsampling/engines/gromacs/engine.py index c9c23f784..d33e5ebb4 100644 --- a/openpathsampling/engines/gromacs/engine.py +++ b/openpathsampling/engines/gromacs/engine.py @@ -102,6 +102,10 @@ class GromacsEngine(ExternalEngine): -e self.edr_file -g self.log_file``, where the ``topol.top`` is generated by :meth:`.prepare`, and the other filenames are set by :meth:`.set_filenames`. Default is the empty string. + * ``snapshot_timestep``: time between frames analysed by ops. + You keep track of the unit, I'd advise ps so the output + rates will be in ps. Example. 2 fs timestep in the mdp with + nstxout of 30 would give snapshot_timestep of 60 fs = 0.06 ps base_dir : string root directory where all files will be found (defaults to pwd) @@ -112,7 +116,8 @@ class GromacsEngine(ExternalEngine): **{ 'gmx_executable': "gmx ", 'grompp_args': "", - 'mdrun_args': "" + 'mdrun_args': "", + 'snapshot_timestep':1.0 } ) GROMPP_CMD = ("{e.options[gmx_executable]}grompp -c {e.gro} " @@ -255,9 +260,9 @@ def write_frame_to_file(self, filename, snapshot, mode='w'): xyz = np.asarray([snapshot.xyz], dtype=np.float32) time = np.asarray([0.0], dtype=np.float32) step = np.asarray([0], dtype=np.int32) - box = np.asarray([snapshot.box_vectors], dtype=np.float32) + box = np.asarray([np.asarray(snapshot.box_vectors)], dtype=np.float32) lambd = np.asarray([0.0], dtype=np.float32) - vel = np.asarray([snapshot.velocities], dtype=np.float32) + vel = np.asarray([np.asarray(snapshot.velocities)], dtype=np.float32) try: trr = TRRTrajectoryFile(filename, mode) From c2d47f055712bc339356ffe9701e4de74375f116 Mon Sep 17 00:00:00 2001 From: oliverdutton <44170519+oliverdutton@users.noreply.github.com> Date: Sun, 24 May 2020 18:08:13 +0100 Subject: [PATCH 348/464] Added Bolhuis example to PES presets for my own uses, probs shouldn't be put on master --- openpathsampling/engines/toy/__init__.py | 2 +- openpathsampling/engines/toy/pes.py | 51 ++++++++++++++++++++++++ 2 files changed, 52 insertions(+), 1 deletion(-) diff --git a/openpathsampling/engines/toy/__init__.py b/openpathsampling/engines/toy/__init__.py index ed3f6602f..5ad019635 100644 --- a/openpathsampling/engines/toy/__init__.py +++ b/openpathsampling/engines/toy/__init__.py @@ -1,6 +1,6 @@ from .integrators import (LangevinBAOABIntegrator, LeapfrogVerletIntegrator) from .pes import Gaussian, HarmonicOscillator, LinearSlope, OuterWalls, \ - PES_Add, PES_Combination, PES_Sub, PES + PES_Add, PES_Combination, PES_Sub, PES, BolhuisExample from .engine import ToyEngine as Engine from .engine import ToyEngine diff --git a/openpathsampling/engines/toy/pes.py b/openpathsampling/engines/toy/pes.py index 063c7d65a..5ad7efddd 100644 --- a/openpathsampling/engines/toy/pes.py +++ b/openpathsampling/engines/toy/pes.py @@ -356,3 +356,54 @@ def dVdx(self, sys): """ # this is independent of the position return self._local_dVdx + +class BolhuisExample(PES): + r"""Creates an x**4 - 2 x**2 1 dimensional PES + + Parameters + ---------- + None + """ + def __init__(self): + super(BolhuisExample, self).__init__() + self._local_dVdx = np.zeros(1) + + def __repr__(self): # pragma: no cover + return "The x**4 - 2 x**2 example in Bolhuis papers potential" + + def V(self, sys): + """Potential energy + + Parameters + ---------- + sys : :class:`.ToyEngine` + engine contains its state, including velocities and masses + + Returns + ------- + float + the potential energy + """ + dx = sys.positions + myV = 0.0 + for i in range(len(dx)): + myV += dx[i]**4 - 2 * dx[i]**2 + return myV + + def dVdx(self, sys): + """Derivative of potential energy (-force) + + Parameters + ---------- + sys : :class:`.ToyEngine` + engine contains its state, including velocities and masses + + Returns + ------- + np.array + the derivatives of the potential at this point + """ + dx = sys.positions + for i in range(len(dx)): + self._local_dVdx[i] =4*dx[i]**3 - 4*dx[i] + return self._local_dVdx From 781e448d668d56e4787a323a0094a3ed36ad4cc0 Mon Sep 17 00:00:00 2001 From: sroet Date: Wed, 3 Jun 2020 15:35:08 +0200 Subject: [PATCH 349/464] make tqdm optional for tests --- openpathsampling/tests/test_progress.py | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/openpathsampling/tests/test_progress.py b/openpathsampling/tests/test_progress.py index 47160f275..a47f428df 100644 --- a/openpathsampling/tests/test_progress.py +++ b/openpathsampling/tests/test_progress.py @@ -2,11 +2,12 @@ from openpathsampling.progress import * + def test_silent_progress(capsys): out, err = capsys.readouterr() x = [1, 2, 3] - prog = silent_progress(x, desc='foo', leave=True) - y = [xx**2 for xx in x] + silent_progress(x, desc='foo', leave=True) + _ = [xx**2 for xx in x] out, err = capsys.readouterr() assert out == "" assert err == "" @@ -32,11 +33,12 @@ def test_set_attr(self): def test_call(self, capsys): out, err = capsys.readouterr() - xx = [x for x in self.tqdm_partial([1, 2, 3])] + _ = [x for x in self.tqdm_partial([1, 2, 3])] out, err = capsys.readouterr() assert out == "" assert err != "" + class TestSimpleProgress(object): def setup(self): self.progress = SimpleProgress() @@ -52,11 +54,12 @@ def test_progress_setter(self): assert prog is not None self.progress.progress = 'silent' assert self.progress.progress is silent_progress - self.progress.progress = 'tqdm' - assert isinstance(self.progress.progress, TqdmPartial) + if HAS_TQDM: # starimport from paths.progress + self.progress.progress = 'tqdm' + assert isinstance(self.progress.progress, TqdmPartial) + my_tqdm = TqdmPartial() + self.progress.progress = my_tqdm + assert self.progress.progress is my_tqdm + self.progress.progress = None assert self.progress.progress is silent_progress - my_tqdm = TqdmPartial() - self.progress.progress = my_tqdm - assert self.progress.progress is my_tqdm - pass From d5b3be9578bc9a095878d739a739e782121317da Mon Sep 17 00:00:00 2001 From: sroet Date: Thu, 4 Jun 2020 11:24:08 +0200 Subject: [PATCH 350/464] set reject_bytes=False for ujson >= 3 --- openpathsampling/netcdfplus/dictify.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/openpathsampling/netcdfplus/dictify.py b/openpathsampling/netcdfplus/dictify.py index 6a5c2f65e..241a5c64f 100644 --- a/openpathsampling/netcdfplus/dictify.py +++ b/openpathsampling/netcdfplus/dictify.py @@ -48,6 +48,10 @@ opcode_arg_width = 2 opcode_no_arg_width = 0 +if int(ujson.__version__.split(".")[0]) <= 2: + ujson_kwargs = dict() +else: + ujson_kwargs = {"reject_bytes": False} class ObjectJSON(object): """ @@ -565,7 +569,7 @@ def to_json_object(self, obj): else: simplified = self.simplify(obj) try: - json_str = ujson.dumps(simplified) + json_str = ujson.dumps(simplified, **ujson_kwargs) except TypeError as e: err = ( 'Cannot convert object of type `%s` to json. ' From f0ced8582e8fa0a644a6635c0486a3371a8a5ae4 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Tue, 9 Jun 2020 09:33:23 +0200 Subject: [PATCH 351/464] Steps toward "gather" for StorableFunctionResults --- .../experimental/storage/class_info.py | 21 ++++++--- .../experimental/storage/ops_storage.py | 15 ++++-- .../experimental/storage/serialization.py | 5 +- .../storage/storable_functions.py | 47 ++++++++++++++----- .../experimental/storage/storage.py | 12 +++++ .../experimental/storage/test_class_info.py | 1 + .../storage/test_storable_function.py | 6 ++- 7 files changed, 83 insertions(+), 24 deletions(-) diff --git a/openpathsampling/experimental/storage/class_info.py b/openpathsampling/experimental/storage/class_info.py index cb99223bd..efbf20e9d 100644 --- a/openpathsampling/experimental/storage/class_info.py +++ b/openpathsampling/experimental/storage/class_info.py @@ -46,21 +46,22 @@ def __init__(self, table, cls, serializer=None, deserializer=None, self.find_uuids = find_uuids def set_defaults(self, schema): + table = self.table if self.table in schema else None self.serializer = tools.none_to_default( self.serializer, - SchemaSerializer(schema, self.table, self.cls) + SchemaSerializer(schema, table, self.cls) ) self.unsafe_deserializer = tools.none_to_default( self.unsafe_deserializer, - SchemaDeserializer(schema, self.table, self.cls) + SchemaDeserializer(schema, table, self.cls) ) self.safe_deserializer = tools.none_to_default( self.safe_deserializer, self.unsafe_deserializer ) + default_entries = schema.get(self.table, []) self.find_uuids = tools.none_to_default( - self.find_uuids, - SchemaFindUUIDs(schema[self.table]) + self.find_uuids, SchemaFindUUIDs(default_entries) ) self.set_safemode(True) @@ -95,15 +96,19 @@ class might be used to represent data with different dimensions, and systems). In such cases, the SerializationSchema needs to be subclassed with specialized information. """ - def __init__(self, default_info, schema=None, class_info_list=None): + def __init__(self, default_info, sfr_info=None, schema=None, + class_info_list=None): class_info_list = tools.none_to_default(class_info_list, []) self.schema = {} self.lookup_to_info = {} self.table_to_info = {} self.class_info_list = [] self.default_info = default_info + self.sfr_info = sfr_info self.missing_table = ClassInfo(table="__missing__", cls=None) self.add_class_info(default_info) + if sfr_info is not None: + self.add_class_info(sfr_info) self.register_info(class_info_list, schema) # TODO: I think that this can be made private; used by __init__ and @@ -117,8 +122,10 @@ def add_class_info(self, info_node): self.lookup_to_info.update({info_node.lookup_result: info_node}) immutable_tables = [self.default_info.table, self.missing_table.table] - reserved = info_node.table in [self.default_info.table, - self.missing_table.table] + sfr_table_as_list = ( + [self.sfr_info.table] if self.sfr_info is not None else [] + ) + reserved = info_node.table in immutable_tables + sfr_table_as_list exists = info_node.table in self.table_to_info if not (reserved and exists): self.table_to_info.update({info_node.table: info_node}) diff --git a/openpathsampling/experimental/storage/ops_storage.py b/openpathsampling/experimental/storage/ops_storage.py index 6caf29043..5d4a6ff90 100644 --- a/openpathsampling/experimental/storage/ops_storage.py +++ b/openpathsampling/experimental/storage/ops_storage.py @@ -10,7 +10,7 @@ from .class_lookup import ClassIsSomething from .storable_functions import ( - StorableFunction, storable_function_find_uuids + StorableFunction, StorableFunctionResults, storable_function_find_uuids ) import openpathsampling as paths @@ -130,8 +130,10 @@ def __call__(self, item): return self.secondary_lookups[cls](item) class OPSClassInfoContainer(ClassInfoContainer): - def __init__(self, default_info, schema=None, class_info_list=None): + def __init__(self, default_info, sfr_info=None, schema=None, + class_info_list=None): super(OPSClassInfoContainer, self).__init__(default_info, + sfr_info, schema, class_info_list) self.n_snapshot_types = 0 @@ -158,7 +160,7 @@ def add_missing_table_from_instance(self, lookup, obj): def _build_ops_serializer(schema, safe_codecs, unsafe_codecs): # TODO: why is this using deserialize_sim instead of the codec - # deserializer? + # deserializer? probably need to change that for safemode ops_class_info = OPSClassInfoContainer( default_info=ClassInfo( table='simulation_objects', @@ -168,6 +170,13 @@ def _build_ops_serializer(schema, safe_codecs, unsafe_codecs): safe_deserializer=safe_codecs.simobj_serializer, find_uuids=default_find_uuids ), + sfr_info= ClassInfo( + table="function_results", + cls=StorableFunctionResults, + serializer=StorableFunctionResults.to_dict, + deserializer=lambda x: x, # deserializer not used + find_uuids=default_find_uuids + ), schema=schema, class_info_list=[ ClassInfo(table='samples', cls=paths.Sample), diff --git a/openpathsampling/experimental/storage/serialization.py b/openpathsampling/experimental/storage/serialization.py index 3c49af884..634a85e80 100644 --- a/openpathsampling/experimental/storage/serialization.py +++ b/openpathsampling/experimental/storage/serialization.py @@ -113,7 +113,10 @@ class SchemaDeserializer(object): def __init__(self, schema, table, cls): self.schema = schema self.table = table - self.entries = schema[table] + if table is not None: + self.entries = schema[table] + else: + self.entries = [] self.cls = cls self.attribute_handlers = self.init_attribute_handlers() diff --git a/openpathsampling/experimental/storage/storable_functions.py b/openpathsampling/experimental/storage/storable_functions.py index 5e9152dab..e3049ed9a 100644 --- a/openpathsampling/experimental/storage/storable_functions.py +++ b/openpathsampling/experimental/storage/storable_functions.py @@ -9,6 +9,9 @@ from .serialization_helpers import from_json_obj as deserialize_sim from openpathsampling.netcdfplus import StorableNamedObject +import logging +logger = logging.getLogger(__name__) + class StorableFunctionResults(StorableNamedObject): """Cache of results from a function. @@ -16,8 +19,9 @@ class StorableFunctionResults(StorableNamedObject): first place it will look for results (in order to avoid recalculating). """ _sanity_checks = True - def __init__(self, parent_uuid): + def __init__(self, parent, parent_uuid): super(StorableFunctionResults, self).__init__() + self.parent = parent self.parent_uuid = parent_uuid # TODO: someday, result_dict may need to be a cache that gets # emptied (thinking about memory concerns) @@ -90,15 +94,13 @@ class StorableFunction(StorableNamedObject): Parameters ---------- func : Callable - input_type - output_type + result_type store_store : Union[bool, None] Whether to store the source for this function. Default behavior (None) stores source for anything created in ``__main__`` that is not a lambda expression. """ - def __init__(self, func, output_type=None, - store_source=None): + def __init__(self, func, result_type=None, store_source=None): super(StorableFunction, self).__init__() self.func = func self.source = None @@ -114,7 +116,7 @@ def __init__(self, func, output_type=None, warnings.warn("Unable to get source for " + str(func)) # self.input_type = input_type - self.output_type = output_type + self.result_type = result_type self.local_cache = None # set correctly by self.mode setter self._disk_cache = True self._handler = None @@ -148,7 +150,7 @@ def mode(self, value): if value == 'no-caching': self.local_cache = None else: - self.local_cache = StorableFunctionResults(get_uuid(self)) + self.local_cache = StorableFunctionResults(self, get_uuid(self)) self._mode = value @@ -158,14 +160,14 @@ def to_dict(self): 'func': self.func, # made into JSON by CallableCodec 'source': self.source, # 'input_type': self.input_type, - 'output_type': self.output_type, + 'result_type': self.result_type, } @classmethod def from_dict(cls, dct): obj = cls(func=dct['func'], input_type=dct['input_type'], - output_type=dct['output_type']) + result_type=dct['result_type']) if obj.source is None: obj.source = dct['source'] # may still be none @@ -261,14 +263,27 @@ def storable_function_find_uuids(obj, cache_list): return uuids, new_objects +class SFRClassInfo(ClassInfo): + def __init__(self, table='function_results', + cls=StorableFunctionResults, + serializer=StorableFunctionResults.to_dict, + deserializer=None, find_uuids=default_find_uuids): + deserializer = none_to_default(deserializer, lambda x: x) + super(self, SFRClassInfo).__init__(table=table, cls=cls, + serializer=serializer, + deserializer=deserlializer, + find_uuids=find_uuids) + + class StorageFunctionHandler(object): def __init__(self, storage, functions=None, other_codecs=None, codec_settings=None): self.storage = storage - self.codecs = none_to_default(codecs, []) + self.codecs = none_to_default(other_codecs, []) functions = none_to_default(functions, []) codec_settings = none_to_default(codec_settings, {}) self.callable_codec = None + self._codec_settings = None self.codec_settings = codec_settings # sets callable_codec self.canonical_functions = {} for func in functions: @@ -282,7 +297,7 @@ def codec_settings(self): def codec_settings(self, settings): if self._codec_settings != settings: self._codec_settings = settings - self.callable_codec = CallableCodec(code_settings) + self.callable_codec = CallableCodec(settings) def _make_classinfo(self, func): pass @@ -290,7 +305,12 @@ def _make_classinfo(self, func): def register_function(self, func): func_uuid = get_uuid(func) if func_uuid not in self.canonical_functions: + logger.debug("Registering new function: %s" % func_uuid) self.canonical_functions[func_uuid] = func + self.storage.backend.register_storable_function( + table_name=func_uuid, + result_type=func.result_type + ) func.set_handler(self) @property @@ -298,8 +318,13 @@ def functions(self): return list(self.canonical_functions.values()) def update_cache(self, function_results): + self.register_function(function_results.parent) func = self.canonical_functions[function_results.parent_uuid] func.local_cache.update(function_results) + self.storage.backend.add_storable_function_results( + table_name=function_results.parent_uuid, + result_dict=function_results.result_dict + ) def get_function_results(self, func_uuid, uuid_items): pass diff --git a/openpathsampling/experimental/storage/storage.py b/openpathsampling/experimental/storage/storage.py index db8fe2887..159e84a1c 100644 --- a/openpathsampling/experimental/storage/storage.py +++ b/openpathsampling/experimental/storage/storage.py @@ -27,6 +27,7 @@ from .serialization_helpers import get_reload_order # from .serialization import Serialization from .serialization import ProxyObjectFactory +from .storable_functions import StorageFunctionHandler from .tools import none_to_default try: @@ -52,6 +53,7 @@ def __init__(self, backend, class_info, schema=None, self.mode = self.backend.mode self._safemode = None self.safemode = safemode + self._sf_handler = StorageFunctionHandler(storage=self) # TODO: implement fallback self.fallbacks = tools.none_to_default(fallbacks, []) @@ -215,6 +217,16 @@ def save(self, obj_list): str(list(missing_by_table.keys()))) by_table.update(missing_by_table) + has_sfr = (self.class_info.sfr_info is not None + and self.class_info.sfr_info.table in by_table) + if has_sfr: + func_results = by_table.pop(self.class_info.sfr_info.table) + logger.info("Saving results from %d storable functions", + len(func_results)) + for result in func_results.values(): + self._sf_handler.update_cache(result) + # TODO: store to backend + # TODO: add simulation objects to the cache # this is the actual serialization diff --git a/openpathsampling/experimental/storage/test_class_info.py b/openpathsampling/experimental/storage/test_class_info.py index ed007c9ca..321af618d 100644 --- a/openpathsampling/experimental/storage/test_class_info.py +++ b/openpathsampling/experimental/storage/test_class_info.py @@ -35,6 +35,7 @@ def test_init_default_setup(self): assert class_info.cls == MockUUIDObject assert isinstance(class_info.serializer, SchemaSerializer) assert isinstance(class_info.deserializer, SchemaDeserializer) + assert isinstance(class_info.safe_deserializer, SchemaDeserializer) assert isinstance(class_info.find_uuids, SchemaFindUUIDs) assert class_info.lookup_result == MockUUIDObject diff --git a/openpathsampling/experimental/storage/test_storable_function.py b/openpathsampling/experimental/storage/test_storable_function.py index 7b426a641..dce078f71 100644 --- a/openpathsampling/experimental/storage/test_storable_function.py +++ b/openpathsampling/experimental/storage/test_storable_function.py @@ -9,9 +9,11 @@ class TestStorableFunctionResults(object): def setup(self): + self.cv = StorableFunction(lambda x: x) + self.cv.__uuid__ = "funcUUID" self.mapping = {'UUID1': "foo", 'UUID2': "bar"} - self.sfr = StorableFunctionResults("funcUUID") + self.sfr = StorableFunctionResults(self.cv, "funcUUID") self.sfr.result_dict = self.mapping self.sfr.local_uuids = set(self.mapping.keys()) @@ -30,7 +32,7 @@ def test_get_results_as_dict_storage(self): pass def test_update(self): - new_sfr = StorableFunctionResults("funcUUID") + new_sfr = StorableFunctionResults(self.cv, "funcUUID") new_sfr.result_dict = {'UUID3': "baz"} new_sfr.local_uuids = set(['UUID3']) self.sfr.update(new_sfr) From baec27f49fcbf4d3ee6f3f5831bf108b9aca2d9b Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Tue, 9 Jun 2020 13:41:06 +0200 Subject: [PATCH 352/464] can reload storable funcs from storage --- .../experimental/storage/custom_json.py | 37 ++++++++++++++++--- .../experimental/storage/ops_storage.py | 9 ++--- .../experimental/storage/serialization.py | 8 ---- .../storage/serialization_helpers.py | 1 + .../storage/storable_functions.py | 2 +- .../storage/test_storable_function.py | 3 ++ 6 files changed, 40 insertions(+), 20 deletions(-) diff --git a/openpathsampling/experimental/storage/custom_json.py b/openpathsampling/experimental/storage/custom_json.py index 72d8c864b..fd4297e2e 100644 --- a/openpathsampling/experimental/storage/custom_json.py +++ b/openpathsampling/experimental/storage/custom_json.py @@ -2,8 +2,29 @@ import functools from collections import namedtuple, defaultdict from .tools import none_to_default -from .serialization_helpers import has_uuid, replace_uuid, encode_uuid -from .serialization import SimulationObjectSerializer +from .serialization_helpers import ( + has_uuid, replace_uuid, encode_uuid, get_uuid, set_uuid +) +from .serialization_helpers import do_import, from_dict_with_uuids + +class SimulationObjectSerialization(object): + def __init__(self, json_encoder, json_decoder): + self.json_encoder = json_encoder + self.json_decoder = json_decoder + + def serializer(self, obj): + return {'uuid': get_uuid(obj), + 'json': self.json_encoder(obj)} + + def deserialize(self, uuid, table_row, cache_list): + # TODO: is uuid input necessary here? + dct = self.json_decoder(table_row['json']) + cls = do_import(dct.pop('__module__'), dct.pop('__class__')) + dct = from_dict_with_uuids(dct, cache_list) + obj = cls.from_dict(dct) + set_uuid(obj, uuid) + return obj + class JSONSerializerDeserializer(object): """ @@ -20,7 +41,7 @@ class JSONSerializerDeserializer(object): def __init__(self, codecs, named_codecs=None): self._serializer = None self._deserializer = None - self._sim_serializer = None + self._sim_serialization = None self.named_codecs = none_to_default(named_codecs, {}) self.codecs = [] for codec in codecs: @@ -42,7 +63,9 @@ def add_codec(self, codec): encoder, decoder = custom_json_factory(self.codecs) self._serializer = functools.partial(json.dumps, cls=encoder) self._deserializer = functools.partial(json.loads, cls=decoder) - self._sim_serializer = SimulationObjectSerializer(self._serializer) + self._sim_serialization = SimulationObjectSerialization( + self._serializer, self._deserializer + ) def replace_named_codec(self, codec_name, codec): self.named_codecs[codec_name] = codec @@ -55,7 +78,11 @@ def deserializer(self, string): return self._deserializer(string) def simobj_serializer(self, obj): - return self._sim_serializer(obj) + return self._sim_serialization.serializer(obj) + + def simobj_deserializer(self, uuid, table_row, cache_list): + return self._sim_serialization.deserialize(uuid, table_row, + cache_list) def custom_json_factory(coding_methods): diff --git a/openpathsampling/experimental/storage/ops_storage.py b/openpathsampling/experimental/storage/ops_storage.py index 5d4a6ff90..5c6c4ad44 100644 --- a/openpathsampling/experimental/storage/ops_storage.py +++ b/openpathsampling/experimental/storage/ops_storage.py @@ -25,10 +25,7 @@ from .callable_codec import CallableCodec -from .serialization import ( - ToDictSerializer, SchemaSerializer, SchemaDeserializer, - SimulationObjectSerializer -) +from .serialization import SchemaDeserializer from .class_info import ClassInfo, ClassInfoContainer @@ -166,11 +163,11 @@ def _build_ops_serializer(schema, safe_codecs, unsafe_codecs): table='simulation_objects', cls=StorableObject, serializer=unsafe_codecs.simobj_serializer, - deserializer=deserialize_sim, + deserializer=unsafe_codecs.simobj_deserializer, safe_deserializer=safe_codecs.simobj_serializer, find_uuids=default_find_uuids ), - sfr_info= ClassInfo( + sfr_info=ClassInfo( table="function_results", cls=StorableFunctionResults, serializer=StorableFunctionResults.to_dict, diff --git a/openpathsampling/experimental/storage/serialization.py b/openpathsampling/experimental/storage/serialization.py index 634a85e80..da4ac03fd 100644 --- a/openpathsampling/experimental/storage/serialization.py +++ b/openpathsampling/experimental/storage/serialization.py @@ -94,14 +94,6 @@ def make_all_lazies(self, lazies): return all_lazies -class SimulationObjectSerializer(object): - def __init__(self, json_encoder): - self.json_encoder = json_encoder - - def __call__(self, obj): - return {'uuid': serialization.get_uuid(obj), - 'json': self.json_encoder(obj)} - class SchemaDeserializer(object): default_handlers = { diff --git a/openpathsampling/experimental/storage/serialization_helpers.py b/openpathsampling/experimental/storage/serialization_helpers.py index a2e7b4df6..b37e182b0 100644 --- a/openpathsampling/experimental/storage/serialization_helpers.py +++ b/openpathsampling/experimental/storage/serialization_helpers.py @@ -386,6 +386,7 @@ def from_dict_with_uuids(obj, cache_list): def from_json_obj(uuid, table_row, cache_list): + # TODO: OBSOLETE?! I think this has been replaced # NOTE: from_json only works with existing_uuids (DAG-ordering) dct = json.loads(table_row['json']) cls = import_class(dct.pop('__module__'), dct.pop('__class__')) diff --git a/openpathsampling/experimental/storage/storable_functions.py b/openpathsampling/experimental/storage/storable_functions.py index e3049ed9a..4bce3488b 100644 --- a/openpathsampling/experimental/storage/storable_functions.py +++ b/openpathsampling/experimental/storage/storable_functions.py @@ -166,7 +166,7 @@ def to_dict(self): @classmethod def from_dict(cls, dct): obj = cls(func=dct['func'], - input_type=dct['input_type'], + # input_type=dct['input_type'], result_type=dct['result_type']) if obj.source is None: obj.source = dct['source'] # may still be none diff --git a/openpathsampling/experimental/storage/test_storable_function.py b/openpathsampling/experimental/storage/test_storable_function.py index dce078f71..df6421b4d 100644 --- a/openpathsampling/experimental/storage/test_storable_function.py +++ b/openpathsampling/experimental/storage/test_storable_function.py @@ -179,6 +179,9 @@ def test_to_dict_from_dict_cycle(self): pytest.skip() pass + def test_full_serialization_cycle(self): + pass + @pytest.mark.parametrize('found_in', ['cache', 'storage', 'eval']) def test_analysis_mode_integration(self, found_in): pytest.skip() From 9f58b72df59b3cc5b796feeff0bfe2cfa3667069 Mon Sep 17 00:00:00 2001 From: sroet Date: Tue, 9 Jun 2020 18:43:54 +0200 Subject: [PATCH 353/464] use uuid instead of 'is' for selecting ensembles --- openpathsampling/high_level/transition.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/openpathsampling/high_level/transition.py b/openpathsampling/high_level/transition.py index ce208076b..8b07a63b0 100644 --- a/openpathsampling/high_level/transition.py +++ b/openpathsampling/high_level/transition.py @@ -285,7 +285,8 @@ def _ensemble_statistics(self, ensemble, samples, weights=None, force=False): self.histograms[hist] = {} self.histograms[hist][ensemble] = Histogram(**(hist_info.hist_args)) - in_ens_samples = (s for s in samples if s.ensemble is ensemble) + in_ens_samples = (s for s in samples if s.ensemble.__uuid__ == + ensemble.__uuid__) hist_data = {} buflen = -1 sample_buf = [] From ecd144cd71c8732389a1fef9046c8610eff9a29f Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Wed, 10 Jun 2020 13:10:29 +0200 Subject: [PATCH 354/464] Add preload cache; support for parallel CV gather --- .../experimental/storage/ops_storage.py | 7 +-- .../storage/serialization_helpers.py | 2 +- .../experimental/storage/sql_backend.py | 7 ++- .../storage/storable_functions.py | 44 +++++++++++++++---- .../experimental/storage/storage.py | 24 ++++++++-- 5 files changed, 67 insertions(+), 17 deletions(-) diff --git a/openpathsampling/experimental/storage/ops_storage.py b/openpathsampling/experimental/storage/ops_storage.py index 5c6c4ad44..29e45c477 100644 --- a/openpathsampling/experimental/storage/ops_storage.py +++ b/openpathsampling/experimental/storage/ops_storage.py @@ -50,6 +50,7 @@ 'steps': [('change', 'uuid'), ('active', 'uuid'), #('previous', 'lazy'), ('simulation', 'uuid'), ('mccycle', 'int')], 'details': [('json', 'json_obj')], + 'storable_functions': [('json', 'json_obj'), ('class_idx', 'int')], 'simulation_objects': [('json', 'json_obj'), ('class_idx', 'int')] } @@ -187,12 +188,12 @@ def _build_ops_serializer(schema, safe_codecs, unsafe_codecs): ClassInfo(table='steps', cls=paths.MCStep), ClassInfo(table='details', cls=paths.Details, serializer=safe_codecs.simobj_serializer, - deserializer=deserialize_sim), - ClassInfo(table='simulation_objects', + deserializer=safe_codecs.simobj_deserializer), + ClassInfo(table='storable_functions', cls=StorableFunction, find_uuids=storable_function_find_uuids, serializer=unsafe_codecs.simobj_serializer, - deserializer=deserialize_sim), + deserializer=unsafe_codecs.simobj_deserializer), ] ) diff --git a/openpathsampling/experimental/storage/serialization_helpers.py b/openpathsampling/experimental/storage/serialization_helpers.py index b37e182b0..f1051d8f0 100644 --- a/openpathsampling/experimental/storage/serialization_helpers.py +++ b/openpathsampling/experimental/storage/serialization_helpers.py @@ -386,7 +386,7 @@ def from_dict_with_uuids(obj, cache_list): def from_json_obj(uuid, table_row, cache_list): - # TODO: OBSOLETE?! I think this has been replaced + # TODO: OBSOLETE?! I think this has been replaced by custom_json # NOTE: from_json only works with existing_uuids (DAG-ordering) dct = json.loads(table_row['json']) cls = import_class(dct.pop('__module__'), dct.pop('__class__')) diff --git a/openpathsampling/experimental/storage/sql_backend.py b/openpathsampling/experimental/storage/sql_backend.py index 268848485..bf3b51d03 100644 --- a/openpathsampling/experimental/storage/sql_backend.py +++ b/openpathsampling/experimental/storage/sql_backend.py @@ -328,6 +328,9 @@ def load_storable_function_results(self, table_name, uuids): result_dict = {uuid: value for uuid, value in results} return result_dict + def load_storable_function_table(self, table_name): + return {row['uuid']: row['value'] + for row in self.table_iterator(table_name)} def add_to_table(self, table_name, objects): """Add a list of objects of a given class @@ -490,8 +493,10 @@ def uuid_row_to_table_name(self, uuid_row): return self.number_to_table[uuid_row.table] def table_iterator(self, table_name): - """Iterate over all rows in the table + """Iterate over l rows in the table """ + # TODO: this can probably be done in a more low-level way that + # doesn't require memory caching everything table = self.metadata.tables[table_name] with self.engine.connect() as conn: results = list(conn.execute(table.select())) diff --git a/openpathsampling/experimental/storage/storable_functions.py b/openpathsampling/experimental/storage/storable_functions.py index 4bce3488b..40482cff4 100644 --- a/openpathsampling/experimental/storage/storable_functions.py +++ b/openpathsampling/experimental/storage/storable_functions.py @@ -22,12 +22,18 @@ class StorableFunctionResults(StorableNamedObject): def __init__(self, parent, parent_uuid): super(StorableFunctionResults, self).__init__() self.parent = parent - self.parent_uuid = parent_uuid + self._parent_uuid = parent_uuid # TODO: someday, result_dict may need to be a cache that gets # emptied (thinking about memory concerns) self.result_dict = {} self.local_uuids = set([]) + @property + def parent_uuid(self): + if self.parent is not None: + self._parent_uuid = get_uuid(self.parent) + return self._parent_uuid + def get_results_as_dict(self, uuid_items): """ Parameters @@ -128,6 +134,10 @@ def set_handler(self, storage, override=False): + "already been set:" + str(self._handler)) self._handler = storage + @property + def has_handler(self): + return self._handler is not None + @property def disk_cache(self): return self._disk_cache @@ -154,7 +164,6 @@ def mode(self, value): self._mode = value - def to_dict(self): return { 'func': self.func, # made into JSON by CallableCodec @@ -173,6 +182,15 @@ def from_dict(cls, dct): return obj + def preload_cache(self, storage=None): + # TODO: add support for this to take a storage as argument + if storage is None: + storage = self._handler.storage + + uuid = get_uuid(self) + cache_values = storage.backend.load_storable_function_table(uuid) + self.local_cache.cache_results(cache_values) + def is_singular(self, item): """Determine whether the input needs to be wrapped in a list. @@ -238,6 +256,7 @@ def __call__(self, items): missing = uuid_items result_dict = {} for stage, do_caching in cache_mode_order: + logger.debug(stage, missing) stage_results, missing = stage(missing) result_dict.update(stage_results) if do_caching: @@ -302,16 +321,19 @@ def codec_settings(self, settings): def _make_classinfo(self, func): pass - def register_function(self, func): + def register_function(self, func, add_table=True): func_uuid = get_uuid(func) if func_uuid not in self.canonical_functions: logger.debug("Registering new function: %s" % func_uuid) self.canonical_functions[func_uuid] = func - self.storage.backend.register_storable_function( - table_name=func_uuid, - result_type=func.result_type - ) - func.set_handler(self) + if add_table: + self.storage.backend.register_storable_function( + table_name=func_uuid, + result_type=func.result_type + ) + + if not func.has_handler: + func.set_handler(self) @property def functions(self): @@ -327,5 +349,9 @@ def update_cache(self, function_results): ) def get_function_results(self, func_uuid, uuid_items): - pass + backend = self.storage.backend + uuids = set(uuid_items.keys()) + uuid_map = backend.load_storable_function_results(func_uuid, uuids) + missing = uuids - set(uuid_map.keys()) + return uuid_map, missing diff --git a/openpathsampling/experimental/storage/storage.py b/openpathsampling/experimental/storage/storage.py index 159e84a1c..d846135b7 100644 --- a/openpathsampling/experimental/storage/storage.py +++ b/openpathsampling/experimental/storage/storage.py @@ -27,7 +27,7 @@ from .serialization_helpers import get_reload_order # from .serialization import Serialization from .serialization import ProxyObjectFactory -from .storable_functions import StorageFunctionHandler +from .storable_functions import StorageFunctionHandler, StorableFunction from .tools import none_to_default try: @@ -166,8 +166,18 @@ def filter_existing_uuids(self, uuid_dict): uuids=list(uuid_dict.keys()), ignore_missing=True ) + + # "special" here indicates that we always try to re-save these, even + # if they've already been saved once. This is (currently) necessary + # for objects that contain mutable components (such as the way + # storable functions contain their results) + # TODO: make `special` customizable + special = set(self._sf_handler.canonical_functions.keys()) + for uuid_row in existing: - del uuid_dict[uuid_row.uuid] + uuid = uuid_row.uuid + if uuid not in special: + del uuid_dict[uuid_row.uuid] return uuid_dict @@ -299,7 +309,15 @@ def load(self, input_uuids, force=False): self.cache.update(new_uuids) results.update(new_uuids) - return [results[uuid] for uuid in input_uuids] + new_results = [results[uuid] for uuid in input_uuids] + + # handle special case of storable functions + for result in new_results: + if isinstance(result, StorableFunction): + self._sf_handler.register_function(result, add_table=False) + + return new_results + def deserialize_uuids(self, ordered_uuids, uuid_to_table, uuid_to_table_row, new_uuids=None): From deac34fdb3d9855982568d13c02224f7fa179b57 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Wed, 17 Jun 2020 17:48:03 +0200 Subject: [PATCH 355/464] storable funcs now seem to work! --- .../experimental/storage/sql_backend.py | 40 +++++++++++++++---- .../storage/storable_functions.py | 25 +++++++++--- .../experimental/storage/storage.py | 26 +++++++++--- 3 files changed, 72 insertions(+), 19 deletions(-) diff --git a/openpathsampling/experimental/storage/sql_backend.py b/openpathsampling/experimental/storage/sql_backend.py index bf3b51d03..a8b8d21ad 100644 --- a/openpathsampling/experimental/storage/sql_backend.py +++ b/openpathsampling/experimental/storage/sql_backend.py @@ -68,6 +68,7 @@ def sql_db_execute(engine, statements, execmany_dict=None): results = results[0] return results + class SQLStorageBackend(object): """Generic storage backend for SQL. @@ -100,6 +101,9 @@ def __init__(self, filename, mode='r', sql_dialect=None, echo=False): self.table_to_number = {} self.number_to_table = {} + # TODO: change this to an LRU cache + self.known_uuids = collections.defaultdict(set) + if self.mode == "w" and os.path.exists(filename): # delete existing file; write after os.remove(filename) @@ -295,14 +299,33 @@ def add_storable_function_results(self, table_name, result_dict): result_dict : Mapping[Str, Any] mapping from UUID to result """ - results = [{'uuid': uuid, 'value': value} - for uuid, value in result_dict.items()] + # anything in the cache doesn't need to be saved + known_uuids = self.known_uuids[table_name] + set_uuids = set(result_dict.keys()) + unknown_uuids = set_uuids - known_uuids + + # now we search the for existing + found_results = self.load_storable_function_results( + table_name, + list(unknown_uuids) + ) + + unknown_uuids -= set(found_results.keys()) + + # only store the results that haven't been stored + results = [{'uuid': uuid, 'value': result_dict[uuid]} + for uuid in unknown_uuids] table = self.metadata.tables[table_name] - with self.engine.connect() as conn: - conn.execute(table.insert(), results) + if results: + with self.engine.connect() as conn: + conn.execute(table.insert(), results) + + # update the cache + self.known_uuids[table_name].update(set_uuids) def load_storable_function_results(self, table_name, uuids): - """ + """Load results for given stored function and input UUIDs. + Parameters ---------- table_name : Str @@ -319,9 +342,12 @@ def load_storable_function_results(self, table_name, uuids): results = [] for uuid_block in tools.block(uuids, self.max_query_size): # logger - uuid_sel = table.select().where(table.c.uuid.in_(uuid_block)) + uuid_sel = table.select( + sql.exists().where(table.c.uuid.in_(uuid_block)) + ) with self.engine.connect() as conn: - res = list(conn.execute(uuid_sel)) + res = conn.execute(uuid_sel) + res = res.fetchall() results += res logger.debug("Found {} UUIDs".format(len(results))) diff --git a/openpathsampling/experimental/storage/storable_functions.py b/openpathsampling/experimental/storage/storable_functions.py index 40482cff4..dbee4e9bd 100644 --- a/openpathsampling/experimental/storage/storable_functions.py +++ b/openpathsampling/experimental/storage/storable_functions.py @@ -1,4 +1,4 @@ -from collections import abc +import collections import warnings import inspect import types @@ -305,6 +305,7 @@ def __init__(self, storage, functions=None, other_codecs=None, self._codec_settings = None self.codec_settings = codec_settings # sets callable_codec self.canonical_functions = {} + self.all_functions = collections.defaultdict(list) for func in functions: self.register_function(func) @@ -323,6 +324,7 @@ def _make_classinfo(self, func): def register_function(self, func, add_table=True): func_uuid = get_uuid(func) + # register as a canonical function if func_uuid not in self.canonical_functions: logger.debug("Registering new function: %s" % func_uuid) self.canonical_functions[func_uuid] = func @@ -332,9 +334,23 @@ def register_function(self, func, add_table=True): result_type=func.result_type ) + # register will all_functions + is_registered = any([func is registered + for family in self.all_functions.values() + for registered in family]) + if not is_registered: + self.all_functions[func_uuid].append(func) + + # set handler if not func.has_handler: func.set_handler(self) + def clear_non_canonical(self): + self.all_functions = collections.defaultdict(list) + for func in self.functions: + # re-registering the canonical func will put it in all_functions + self.register_function(func) + @property def functions(self): return list(self.canonical_functions.values()) @@ -343,15 +359,12 @@ def update_cache(self, function_results): self.register_function(function_results.parent) func = self.canonical_functions[function_results.parent_uuid] func.local_cache.update(function_results) - self.storage.backend.add_storable_function_results( - table_name=function_results.parent_uuid, - result_dict=function_results.result_dict - ) def get_function_results(self, func_uuid, uuid_items): backend = self.storage.backend uuids = set(uuid_items.keys()) uuid_map = backend.load_storable_function_results(func_uuid, uuids) missing = uuids - set(uuid_map.keys()) - return uuid_map, missing + missing_map = {uuid: uuid_items[uuid] for uuid in missing} + return uuid_map, missing_map diff --git a/openpathsampling/experimental/storage/storage.py b/openpathsampling/experimental/storage/storage.py index d846135b7..f481a2bea 100644 --- a/openpathsampling/experimental/storage/storage.py +++ b/openpathsampling/experimental/storage/storage.py @@ -28,7 +28,6 @@ # from .serialization import Serialization from .serialization import ProxyObjectFactory from .storable_functions import StorageFunctionHandler, StorableFunction -from .tools import none_to_default try: basestring @@ -181,9 +180,11 @@ def filter_existing_uuids(self, uuid_dict): return uuid_dict - def save(self, obj_list): + def save(self, obj_list, use_cache=True): if type(obj_list) is not list: obj_list = [obj_list] + + cache = self.cache if use_cache else {} # TODO: convert the whole .save process to something based on the # class_info.serialize method (enabling per-class approaches for # finding UUIDs, which will be a massive serialization speed-up @@ -199,7 +200,7 @@ def save(self, obj_list): logger.debug("Listing all objects to save") uuids = {} for uuid, obj in input_uuids.items(): - uuids.update(get_all_uuids(obj, known_uuids=self.cache, + uuids.update(get_all_uuids(obj, known_uuids=cache, class_info=self.class_info)) logger.debug("Checking if objects already exist in database") @@ -234,8 +235,8 @@ def save(self, obj_list): logger.info("Saving results from %d storable functions", len(func_results)) for result in func_results.values(): - self._sf_handler.update_cache(result) - # TODO: store to backend + func = result.parent + self.save_function_results(func) # TODO: add simulation objects to the cache @@ -261,6 +262,19 @@ def save(self, obj_list): self._simulation_objects.update(by_table[table]) logger.debug("Storing complete") + def save_function_results(self, funcs=None): + if funcs is None: + funcs = list(self._sf_handler.canonical_functions.values()) + + funcs = tools.listify(funcs) + for func in funcs: + self._sf_handler.update_cache(func.local_cache) + result_dict = func.local_cache.result_dict + self.backend.add_storable_function_results( + table_name=get_uuid(func), + result_dict=result_dict + ) + def load(self, input_uuids, force=False): # loading happens in 4 parts: # 1. Get UUIDs that need to be loaded @@ -481,7 +495,7 @@ def __init__(self, sequence=None): self._sequence = [] self._uuid_to_obj = {} self._name_to_uuid = {} - sequence = none_to_default(sequence, []) + sequence = tools.none_to_default(sequence, []) for item in sequence: self.append(item) From 28e50649cad9417551b4a008ae5de6ca60dfe176 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Fri, 19 Jun 2020 02:18:51 +0200 Subject: [PATCH 356/464] start to StorableFunctionConfig --- .../storage/storable_functions.py | 130 ++++++++++++++---- .../experimental/storage/storage.py | 2 + .../storage/test_storable_function.py | 1 + 3 files changed, 108 insertions(+), 25 deletions(-) diff --git a/openpathsampling/experimental/storage/storable_functions.py b/openpathsampling/experimental/storage/storable_functions.py index dbee4e9bd..39d6820d8 100644 --- a/openpathsampling/experimental/storage/storable_functions.py +++ b/openpathsampling/experimental/storage/storable_functions.py @@ -2,6 +2,9 @@ import warnings import inspect import types + +import numpy as np + from .tools import none_to_default from .callable_codec import CallableCodec from .serialization_helpers import get_uuid, has_uuid, default_find_uuids @@ -12,6 +15,92 @@ import logging logger = logging.getLogger(__name__) + +class Processor(StorableNamedObject): + name = None + pre_order = None + post_order = None + def pre_process(self, values): + return values + + def post_process(self, values): + return values + + +class RequiresLists(Processor): + name = "requires_lists" + pre_order = 100 + @staticmethod + def pre_process(values): + # We use the trick that we return a list with one item. That means + # that the for loop over items in _eval will give us what we want. + # This may be a little bit fragile, but I don't foresee problems. + return [list(values)] + + +class ScalarizeSingletons(Processor): + name = "scalarize_singletons" + post_order = 90 + @staticmethod + def post_process(values): + if isinstance(values, np.ndarray): + shape = values.shape + if len(shape) > 1 and shape[1] == 1: + values.reshape(tuple([shape[0]] + list(shape)[2:])) + return values + + +class WrapNumpy(Processor): + name = "wrap_numpy" + post_order = 80 + @staticmethod + def post_process(values): + return np.array(values) + + +class StorableFunctionConfig(StorableNamedObject): + pre_sort_key = lambda x: x.pre_order + post_sort_key = lambda x: x.post_order + def __init__(self, processors=None): + if processors is None: + processors = [] + self.processors = processors + self.processor_dict = {} + self.pre_processors = [] + self.post_processors = [] + for proc in processors: + self.register(proc) + + def register(self, processor): + if processor.name in self.processor_dict: + self.deregister(processor.name) + self.processor_dict[processor.name] = processor + self.processors.append(processor) + self.pre_processors = list( + p for p in self.processors if p.pre_order is not None + ).sort(key=self.pre_sort_key) + self.post_processors = list( + p for p in self.processors if p.post_order is not None + ).sort(key=self.post_sort_key) + + def deregister(self, processor, error_if_missing=True): + name = processor if isinstance(processor, str) else processor.name + to_remove = self.processor_dict.pop(name, None) + if to_remove is None and not error_if_missing: + return + self.processors.remove(to_remove) + + def pre_process(self, values): + for proc in self.pre_processors: + values = proc.pre_process(values) + return values + + def post_process(self, results): + for proc in self.post_processors: + results = proc.post_process(results) + return results + + class StorableFunctionResults(StorableNamedObject): """Cache of results from a function. @@ -24,7 +113,7 @@ def __init__(self, parent, parent_uuid): self.parent = parent self._parent_uuid = parent_uuid # TODO: someday, result_dict may need to be a cache that gets - # emptied (thinking about memory concerns) + # emptied or an LRU cache (thinking about memory concerns) self.result_dict = {} self.local_uuids = set([]) @@ -106,10 +195,14 @@ class StorableFunction(StorableNamedObject): (None) stores source for anything created in ``__main__`` that is not a lambda expression. """ - def __init__(self, func, result_type=None, store_source=None): + def __init__(self, func, result_type=None, func_config=None, store_source=None, **kwargs): super(StorableFunction, self).__init__() self.func = func self.source = None + self.kwargs = kwargs + if func_config is None: + func_config = StorableFunctionConfig() + self.func_config = func_config if store_source is None: is_lambda = (isinstance(func, types.FunctionType) and func.__name__ == "") @@ -121,7 +214,6 @@ def __init__(self, func, result_type=None, store_source=None): except IOError: warnings.warn("Unable to get source for " + str(func)) - # self.input_type = input_type self.result_type = result_type self.local_cache = None # set correctly by self.mode setter self._disk_cache = True @@ -159,6 +251,7 @@ def mode(self, value): if value == 'no-caching': self.local_cache = None + self.disk_cache = False else: self.local_cache = StorableFunctionResults(self, get_uuid(self)) @@ -168,15 +261,15 @@ def to_dict(self): return { 'func': self.func, # made into JSON by CallableCodec 'source': self.source, - # 'input_type': self.input_type, + 'kwargs': self.kwargs, 'result_type': self.result_type, } @classmethod def from_dict(cls, dct): obj = cls(func=dct['func'], - # input_type=dct['input_type'], - result_type=dct['result_type']) + result_type=dct['result_type'], + **dct['kwargs']) if obj.source is None: obj.source = dct['source'] # may still be none @@ -218,9 +311,10 @@ def _eval(self, uuid_items): if self.func is None and uuid_items: raise RuntimeError("No function attached to %s. Can not " + "evaluate for %s." % (self, uuid_items)) - - results = {uuid: self.func(item) - for uuid, item in uuid_items.items()} + preprocessed = self.func_config.pre_process(uuid_items.values()) + values = [self.func(item, **self.kwargs) for item in preprocessed] + postprocessed = self.func_config.post_process(values) + results = dict(zip(uuid_items.keys(), postprocessed)) return results, {} def _get_cached(self, uuid_items): @@ -276,24 +370,13 @@ def __call__(self, items): def storable_function_find_uuids(obj, cache_list): + # TODO: it should be possible to remove this at some point uuids, new_objects = default_find_uuids(obj, cache_list) func_results = obj.local_cache uuids.update({get_uuid(func_results): func_results}) return uuids, new_objects -class SFRClassInfo(ClassInfo): - def __init__(self, table='function_results', - cls=StorableFunctionResults, - serializer=StorableFunctionResults.to_dict, - deserializer=None, find_uuids=default_find_uuids): - deserializer = none_to_default(deserializer, lambda x: x) - super(self, SFRClassInfo).__init__(table=table, cls=cls, - serializer=serializer, - deserializer=deserlializer, - find_uuids=find_uuids) - - class StorageFunctionHandler(object): def __init__(self, storage, functions=None, other_codecs=None, codec_settings=None): @@ -319,9 +402,6 @@ def codec_settings(self, settings): self._codec_settings = settings self.callable_codec = CallableCodec(settings) - def _make_classinfo(self, func): - pass - def register_function(self, func, add_table=True): func_uuid = get_uuid(func) # register as a canonical function @@ -334,7 +414,7 @@ def register_function(self, func, add_table=True): result_type=func.result_type ) - # register will all_functions + # register with all_functions is_registered = any([func is registered for family in self.all_functions.values() for registered in family]) diff --git a/openpathsampling/experimental/storage/storage.py b/openpathsampling/experimental/storage/storage.py index f481a2bea..7181e31db 100644 --- a/openpathsampling/experimental/storage/storage.py +++ b/openpathsampling/experimental/storage/storage.py @@ -263,6 +263,8 @@ def save(self, obj_list, use_cache=True): logger.debug("Storing complete") def save_function_results(self, funcs=None): + # no equivalent load because user has no need -- any loading can be + # done by func, either as func(obj) or func.preload_cache() if funcs is None: funcs = list(self._sf_handler.canonical_functions.values()) diff --git a/openpathsampling/experimental/storage/test_storable_function.py b/openpathsampling/experimental/storage/test_storable_function.py index df6421b4d..c09148a5c 100644 --- a/openpathsampling/experimental/storage/test_storable_function.py +++ b/openpathsampling/experimental/storage/test_storable_function.py @@ -4,6 +4,7 @@ except ImportError: import mock +from .serialization_helpers import get_uuid from .storable_functions import * _MODULE = "openpathsampling.experimental.storage.storable_functions" From 0c1cf23ce7bb5f1fcbef0914c8acab354d71cd77 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Sat, 20 Jun 2020 16:11:55 +0200 Subject: [PATCH 357/464] I think this is working StorableFuncConfig ... with tests! --- .../storage/storable_functions.py | 157 +++++++++++------- .../storage/test_storable_function.py | 114 +++++++++++++ 2 files changed, 209 insertions(+), 62 deletions(-) diff --git a/openpathsampling/experimental/storage/storable_functions.py b/openpathsampling/experimental/storage/storable_functions.py index 39d6820d8..013fc8665 100644 --- a/openpathsampling/experimental/storage/storable_functions.py +++ b/openpathsampling/experimental/storage/storable_functions.py @@ -17,88 +17,120 @@ class Processor(StorableNamedObject): - name = None - pre_order = None - post_order = None - def pre_process(self, values): - return values + """Storable function pre/post processors""" + def __init__(self, name, func, stage): + super(Processor, self).__init__() + self.name = name + self.func = func + stages = ['item-pre', 'list-pre', 'item-post', 'list-post'] + if stage in stages: + self.stage = stage + else: + raise ValueError("Unknown state: '%s'. Allowed stages are: %s" + % (stage, stages)) - def post_process(self, values): - return values + def __call__(self, inputs): + return self.func(inputs) +requires_lists_pre = Processor(name='requires_lists_pre', + func=lambda values: [list(values)], + stage='list-pre') -class RequiresLists(Processor): - name = "requires_lists" - pre_order = 100 - @staticmethod - def pre_process(values): - # We use the trick that we return a list with one item. That means - # that the for loop over items in _eval will give us what we want. - # This may be a little bit fragile, but I don't foresee problems. - return [list(values)] +requires_lists_post = Processor(name='requires_lists_post', + func=lambda results: results[0], + stage='list-post') +def _scalarize_singletons(values): + """Post-processing to scalarize singletons within a list of results. -class ScalarizeSingletons(Processor): - name = "scalarize_singletons" - post_order = 90 - @staticmethod - def post_process(values): - if isinstance(values, np.ndarray): - shape = values.shape - if len(shape) > 1 and shape[1] == 1: - values.reshape(tuple([shape[0]] + list(shape)[2:])) - return values + If each snapshot returns a list, this converts length-1 lists into + scalars. + .. note:: + The current implementation only works on NumPy arrays, and will ignore + all other data. + """ + if isinstance(values, np.ndarray): + shape = values.shape + if len(shape) > 1 and shape[1] == 1: + new_shape = tuple([shape[0]] + list(shape)[2:]) + values.shape = new_shape + return values -class WrapNumpy(Processor): - name = "wrap_numpy" - post_order = 80 - @staticmethod - def post_process(values): - return np.array(values) +scalarize_singletons = Processor(name='scalarize_singletons', + func=_scalarize_singletons, + stage='item-post') + +wrap_numpy = Processor(name="wrap_numpy", + func=lambda values: np.array(values), + stage='list-post') class StorableFunctionConfig(StorableNamedObject): - pre_sort_key = lambda x: x.pre_order - post_sort_key = lambda x: x.post_order + """Manages pre/post processing options for CVs. + + This allows simple :class:`.Processor` instances to be combined in order + to facilitate more complicated pre- and post-processing of inputs to the + evaluation stage. + """ def __init__(self, processors=None): if processors is None: processors = [] - self.processors = processors + self.processors = [] self.processor_dict = {} - self.pre_processors = [] - self.post_processors = [] + self.list_preprocessors = [] + self.item_preprocessors = [] + self.list_postprocessors = [] + self.item_postprocessors = [] for proc in processors: self.register(proc) + def _build_processor_lists(self): + stage_to_list = {'item-pre': self.item_preprocessors, + 'item-post': self.item_postprocessors, + 'list-pre': self.list_preprocessors, + 'list-post': self.list_postprocessors} + for proc_list in stage_to_list.values(): + del proc_list[:] # https://stackoverflow.com/a/1400622 + + for proc in self.processors: + stage_to_list[proc.stage].append(proc) + def register(self, processor): if processor.name in self.processor_dict: self.deregister(processor.name) self.processor_dict[processor.name] = processor self.processors.append(processor) - self.pre_processors = list( - p for p in self.processors if p.pre_order is not None - ).sort(key=self.pre_sort_key) - self.post_processors = list( - p for p in self.processors if p.post_order is not None - ).sort(key=self.post_sort_key) + self._build_processor_lists() def deregister(self, processor, error_if_missing=True): name = processor if isinstance(processor, str) else processor.name to_remove = self.processor_dict.pop(name, None) - if to_remove is None and not error_if_missing: - return + if to_remove is None: + if error_if_missing: + raise KeyError(processor) + else: + return self.processors.remove(to_remove) + self._build_processor_lists() + + @staticmethod + def _process(processors, inputs): + for proc in processors: + inputs = proc(inputs) + return inputs + + def item_preprocess(self, values): + return self._process(self.item_preprocessors, values) + + def list_preprocess(self, values): + return self._process(self.list_preprocessors, values) - def pre_process(self, values): - for proc in self.pre_processors: - values = proc.pre_process(values) - return values + def item_postprocess(self, values): + return self._process(self.item_postprocessors, values) - def post_process(self, results): - for proc in self.post_processors: - results = proc.post_process(results) - return results + def list_postprocess(self, values): + return self._process(self.list_postprocessors, values) class StorableFunctionResults(StorableNamedObject): @@ -284,7 +316,7 @@ def preload_cache(self, storage=None): cache_values = storage.backend.load_storable_function_table(uuid) self.local_cache.cache_results(cache_values) - def is_singular(self, item): + def is_scalar(self, item): """Determine whether the input needs to be wrapped in a list. For performance (especially on analysis), all internal calculations @@ -311,9 +343,11 @@ def _eval(self, uuid_items): if self.func is None and uuid_items: raise RuntimeError("No function attached to %s. Can not " + "evaluate for %s." % (self, uuid_items)) - preprocessed = self.func_config.pre_process(uuid_items.values()) + preprocessed = self.func_config.item_preprocess(uuid_items.values()) + preprocessed = self.func_config.list_preprocess(preprocessed) values = [self.func(item, **self.kwargs) for item in preprocessed] - postprocessed = self.func_config.post_process(values) + postprocessed = [self.func_config.item_postprocess(val) + for val in values] results = dict(zip(uuid_items.keys(), postprocessed)) return results, {} @@ -330,10 +364,10 @@ def __call__(self, items): # important: implementation is that we always try to take an # iterable of items ... this makes, e.g., applying a CV to a # trajectory (especially in analysis) MUCH faster - singular = False - if self.is_singular(items): + scalar = False + if self.is_scalar(items): items = [items] - singular = True + scalar = True uuid_items = {get_uuid(item): item for item in items} # TODO: add preprocessing here? if needed? @@ -360,10 +394,9 @@ def __call__(self, items): break return_list = [result_dict[get_uuid(item)] for item in items] - # result = self.postprocess(return_list) # TODO if needed? - result = return_list + result = self.func_config.list_postprocess(return_list) - if singular: + if scalar: result = result[0] return result diff --git a/openpathsampling/experimental/storage/test_storable_function.py b/openpathsampling/experimental/storage/test_storable_function.py index c09148a5c..d37072c78 100644 --- a/openpathsampling/experimental/storage/test_storable_function.py +++ b/openpathsampling/experimental/storage/test_storable_function.py @@ -4,10 +4,124 @@ except ImportError: import mock +import numpy as np + +from openpathsampling.tests.test_helpers import make_1d_traj + from .serialization_helpers import get_uuid from .storable_functions import * _MODULE = "openpathsampling.experimental.storage.storable_functions" +def test_requires_lists_pre(): + assert requires_lists_pre([1]) == [[1]] + assert requires_lists_pre([1,2]) == [[1,2]] + +@pytest.mark.parametrize('array_input,expected', [ + ([[1], [2], [3]], [1, 2, 3]), + ([1, 2, 3], [1, 2, 3]), + ([[1, 2], [3, 4]], [[1, 2], [3, 4]]), + ([[[1, 2]], [[3, 4]]], [[1, 2], [3, 4]]), +]) +def test_scalarize_singletons(array_input, expected): + np.testing.assert_array_equal( + scalarize_singletons(np.array(array_input)), + np.array(expected) + ) + +def test_wrap_numpy(): + for inp in [1, [1, 2]]: + assert isinstance(wrap_numpy(inp), np.ndarray) + +class TestStorableFunctionConfig(object): + def setup(self): + self.config = StorableFunctionConfig(processors=[ + scalarize_singletons, + wrap_numpy, + requires_lists_pre, + requires_lists_post + ]) + + @staticmethod + def func(values): + return np.array([s.xyz[:,0] for s in values]) + + def test_register(self): + assert len(self.config.processors) == 4 + names = ['scalarize_singletons', 'requires_lists_pre', + 'requires_lists_post', 'wrap_numpy'] + for key in names: + assert key in self.config.processor_dict + assert self.config.item_preprocessors == [] + assert self.config.list_preprocessors == [requires_lists_pre] + assert self.config.item_postprocessors == [scalarize_singletons] + assert self.config.list_postprocessors == [wrap_numpy, + requires_lists_post] + + mock_wrap_numpy = Processor(name='wrap_numpy', + stage='item-pre', + func=lambda x: x) + self.config.register(mock_wrap_numpy) + proc_dict_wrap_numpy = self.config.processor_dict['wrap_numpy'] + assert len(self.config.processors) == 4 + assert proc_dict_wrap_numpy is mock_wrap_numpy + assert proc_dict_wrap_numpy is not wrap_numpy + assert mock_wrap_numpy in self.config.processors + assert wrap_numpy not in self.config.processors + assert self.config.item_preprocessors == [mock_wrap_numpy] + assert self.config.list_preprocessors == [requires_lists_pre] + assert self.config.item_postprocessors == [scalarize_singletons] + assert self.config.list_postprocessors == [requires_lists_post] + + @pytest.mark.parametrize('style', ['obj', 'name']) + def test_deregister(self, style): + dereg = {'obj': wrap_numpy, 'name': 'wrap_numpy'}[style] + assert len(self.config.processors) == 4 + self.config.deregister(dereg) + assert len(self.config.processors) == 3 + assert 'wrap_numpy' not in self.config.processor_dict + assert wrap_numpy not in self.config.processors + + def test_deregister_error(self): + with pytest.raises(KeyError): + self.config.deregister('foo') + + def test_deregister_no_error(self): + # just run it to ensure it doesn't error out + self.config.deregister('foo', error_if_missing=False) + + def test_func(self): + # test of the internally used test func + snap = make_1d_traj([5.0])[0] + assert self.func([snap]) == [[5]] + + def test_list_preprocess(self): + snap = make_1d_traj([5.0])[0] + assert self.config.list_preprocess([snap]) == [[snap]] + + def test_item_preprocess(self): + snap = make_1d_traj([5.0])[0] + assert self.config.item_preprocess(snap) == snap + + def test_item_postprocess(self): + np.testing.assert_array_equal( + self.config.item_postprocess(np.array([[5.0]])), + np.array([5.0]) + ) + + def test_list_postprocess(self): + snap = make_1d_traj([5.0])[0] + values = self.func([snap]) + np.testing.assert_array_equal(self.config.list_postprocess(values), + np.array([5.0])) + + def test_storable_function_integration(self): + snap = make_1d_traj([5.0])[0] + sf = StorableFunction(self.func, result_type='float', + func_config=self.config) + assert sf(snap) == 5.0 + np.testing.assert_array_equal(sf([snap]), np.array([5.0])) + + class TestStorableFunctionResults(object): def setup(self): self.cv = StorableFunction(lambda x: x) From 049d0d03ade281c1fcfd558dbcb1aec8c6cb1954 Mon Sep 17 00:00:00 2001 From: hejung Date: Tue, 23 Jun 2020 11:41:50 +0200 Subject: [PATCH 358/464] support ujson v3 --- openpathsampling/netcdfplus/dictify.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openpathsampling/netcdfplus/dictify.py b/openpathsampling/netcdfplus/dictify.py index 241a5c64f..e1f154649 100644 --- a/openpathsampling/netcdfplus/dictify.py +++ b/openpathsampling/netcdfplus/dictify.py @@ -560,7 +560,7 @@ def _find_var(code, op): def to_json(self, obj, base_type=''): simplified = self.simplify(obj, base_type) - return ujson.dumps(simplified) + return ujson.dumps(simplified, **ujson_kwargs) def to_json_object(self, obj): if hasattr(obj, 'base_cls') \ From d583e79f3602b3053035afc6b5c49784dde190c4 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Wed, 24 Jun 2020 09:34:54 +0200 Subject: [PATCH 359/464] Tests for StorageFunctionHandler --- .../storage/storable_functions.py | 1 + .../storage/test_storable_function.py | 130 ++++++++++++++++-- 2 files changed, 118 insertions(+), 13 deletions(-) diff --git a/openpathsampling/experimental/storage/storable_functions.py b/openpathsampling/experimental/storage/storable_functions.py index 013fc8665..d99f38adb 100644 --- a/openpathsampling/experimental/storage/storable_functions.py +++ b/openpathsampling/experimental/storage/storable_functions.py @@ -141,6 +141,7 @@ class StorableFunctionResults(StorableNamedObject): """ _sanity_checks = True def __init__(self, parent, parent_uuid): + # TODO: why does this require parent_uuid still? super(StorableFunctionResults, self).__init__() self.parent = parent self._parent_uuid = parent_uuid diff --git a/openpathsampling/experimental/storage/test_storable_function.py b/openpathsampling/experimental/storage/test_storable_function.py index d37072c78..aa9dce07e 100644 --- a/openpathsampling/experimental/storage/test_storable_function.py +++ b/openpathsampling/experimental/storage/test_storable_function.py @@ -4,14 +4,35 @@ except ImportError: import mock +import collections + import numpy as np from openpathsampling.tests.test_helpers import make_1d_traj -from .serialization_helpers import get_uuid +from .serialization_helpers import get_uuid, set_uuid from .storable_functions import * _MODULE = "openpathsampling.experimental.storage.storable_functions" + +class MockBackend(object): + def __init__(self): + self.storable_function_tables = {} + self.called_register = collections.defaultdict(int) + + def register_storable_function(self, table_name, result_type): + self.storable_function_tables[table_name] = {} + self.called_register[table_name] += 1 + + def load_storable_function_results(self, func_uuid, uuids): + table = self.storable_function_tables[func_uuid] + found_uuids = [uuid for uuid in uuids if uuid in table] + return {uuid: table[uuid] for uuid in found_uuids} + + def add_storable_function_results(self, table_name, result_dict): + self.storable_function_tables[table_name].update(result_dict) + + def test_requires_lists_pre(): assert requires_lists_pre([1]) == [[1]] assert requires_lists_pre([1,2]) == [[1,2]] @@ -305,19 +326,102 @@ def test_analysis_mode_integration(self, found_in): class TestStorageFunctionHandler(object): def setup(self): - pass + self.backend = MockBackend() + self.storage = mock.NonCallableMock(backend=self.backend) + self.sf_handler = StorageFunctionHandler(self.storage) + self.func = StorableFunction(lambda x: x.xyz[0][0]) + self.f2 = StorableFunction.from_dict(self.func.to_dict()) + set_uuid(self.f2, get_uuid(self.func)) + self.result_dict = {'snap1': 5.0, 'snap2': 3.0} - def test_register(self): - pytest.skip() - pass - - def test_update(self): - pytest.skip() - pass + @staticmethod + def _make_sfr(func, result_dict): + sfr = StorableFunctionResults(func, get_uuid(func)) + sfr.cache_results(result_dict) + return sfr - def test_update_mock_parallel(self): + def test_codec_settings(self): + # TODO: is this actually used? pytest.skip() - # a test to show how this should work if multiple results with same - # CV come in - pass + @pytest.mark.parametrize("add_table", [True, False]) + def test_register_function(self, add_table): + assert not self.func.has_handler + assert len(self.sf_handler.all_functions) == 0 + assert self.sf_handler.functions == [] + self.sf_handler.register_function(self.func, add_table=add_table) + uuid = get_uuid(self.func) + + sf_tables = self.backend.storable_function_tables + if add_table: + assert uuid in sf_tables + else: + assert uuid not in sf_tables + + assert self.func is self.sf_handler.canonical_functions[uuid] + assert self.sf_handler.all_functions[uuid] == [self.func] + assert self.func.has_handler + assert self.func._handler == self.sf_handler + assert self.sf_handler.functions == [self.func] + + # make a copy of the func + assert get_uuid(self.f2) == get_uuid(self.func) + assert self.f2 is not self.func + + # internal checks should ensure that you call add_table False here + expected_calls = {True: 1, False: 0}[add_table] + assert self.backend.called_register[uuid] == expected_calls + self.sf_handler.register_function(self.f2, add_table) + assert self.sf_handler.canonical_functions[uuid] is not self.f2 + assert self.sf_handler.canonical_functions[uuid] is self.func + assert self.sf_handler.all_functions[uuid] == [self.func, self.f2] + assert self.backend.called_register[uuid] == expected_calls + assert self.sf_handler.functions == [self.func] + + def test_update_cache(self): + self.sf_handler.register_function(self.func) + item1, item2 = self.result_dict.items() + sfr1 = self._make_sfr(self.func, dict([item1])) + sfr2 = self._make_sfr(self.f2, dict([item2])) + assert self.func.local_cache.result_dict == {} + self.sf_handler.update_cache(sfr1) + assert self.func.local_cache.result_dict == {'snap1': 5.0} + + # register a new function; models the parallel update + self.sf_handler.update_cache(sfr2) + assert self.func.local_cache.result_dict == self.result_dict + + def test_clear_non_canonical(self): + sf_handler = self.sf_handler + uuid = get_uuid(self.func) + sf_handler.register_function(self.func) + sf_handler.register_function(self.f2) + assert sf_handler.canonical_functions[uuid] == self.func + assert sf_handler.all_functions[uuid] == [self.func, self.f2] + sf_handler.clear_non_canonical() + assert sf_handler.canonical_functions[uuid] == self.func + assert sf_handler.all_functions[uuid] == [self.func] + + @pytest.mark.parametrize('inputs', [['snap1'], ['snap1', 'snap2']]) + def test_get_function_results(self, inputs): + sf_handler = self.sf_handler + sf_handler.register_function(self.func) + uuid = get_uuid(self.func) + registered_values = {uuid: value + for uuid, value in self.result_dict.items() + if uuid in inputs} + self.backend.add_storable_function_results( + table_name=get_uuid(self.func), + result_dict=registered_values + ) + uuid_items = {'snap1': "This is snap1", + 'snap2': "This is snap2"} + expected_found = {uuid: self.result_dict[uuid] for uuid in inputs} + missing_uuids = [uuid for uuid in uuid_items.keys() + if uuid not in registered_values] + expected_missing = {uuid: uuid_items[uuid] + for uuid in missing_uuids} + + found, missing = sf_handler.get_function_results(uuid, uuid_items) + assert found == expected_found + assert missing == expected_missing From 59942a0c1c573fc8255733598d0c503110d6fd1e Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 25 Jun 2020 11:19:53 +0200 Subject: [PATCH 360/464] Add CVs, including MDTrajFunctionCV --- .../storage/collective_variables.py | 112 ++++++++++++++ .../storage/storable_functions.py | 24 ++- .../experimental/storage/storage.py | 1 + .../storage/test_collective_variables.py | 142 ++++++++++++++++++ .../storage/test_storable_function.py | 3 + 5 files changed, 274 insertions(+), 8 deletions(-) create mode 100644 openpathsampling/experimental/storage/collective_variables.py create mode 100644 openpathsampling/experimental/storage/test_collective_variables.py diff --git a/openpathsampling/experimental/storage/collective_variables.py b/openpathsampling/experimental/storage/collective_variables.py new file mode 100644 index 000000000..6675b9560 --- /dev/null +++ b/openpathsampling/experimental/storage/collective_variables.py @@ -0,0 +1,112 @@ +import openpathsampling as paths + +from .storable_functions import ( + StorableFunction, StorableFunctionConfig, wrap_numpy, + scalarize_singletons, requires_lists_pre, requires_lists_post, Processor +) +from openpathsampling.netcdfplus import StorableNamedObject +from .serialization_helpers import get_uuid + +class CollectiveVariable(StorableFunction): + """Wrapper around functions that map snapshots to values. + + This specializes the generic :class:`.StorableFunction` for OPS + snapshots. In particular, it makes it so that trajectories and sampls + are seen as lists of snapshots. + """ + def is_scalar(self, item): + # override is_scalar so that Trajectories and Samples are treated + # as iterables over snapshots + if isinstance(item, (paths.Trajectory, paths.Sample)): + return False + else: + return super(CollectiveVariable, self).is_scalar(item) + + +class ReversibleStorableFunction(StorableFunction): + """Wrapper around functions that don't depend on the arrow of time. + + This is separate from CoordinateFunctionCV because, in principle, both + snapshots and trajectories can be reversed, and some functions of + trajectories (e.g., max value of a CV) can be independent of time. + However, it appears that trajectories do not currently implement the + ability to store the UUID of the reversed partner. + """ + # implementation: here we overload the _get_cached and _get_storage + # methods to also look for the reversed snapshots + # Current implementation (no __init__) also makes this a mix-in + def _get_forward_and_reversed(self, func, uuid_items): + fwd, fwd_missing = func(uuid_items) + reversed_items = [item.reversed for item in fwd_missing.values()] + rev_to_item = {get_uuid(item): get_uuid(item.reversed) + for item in reversed_items} + rev = {get_uuid(item): item for item in reversed_items} + bkwd, missing = func(rev) + results = {rev_to_item[uuid]: item for uuid, item in bkwd.items()} + missing = {rev_to_item[uuid]: item.reversed + for uuid, item in missing.items()} + results.update(fwd) + return results, missing + + def _get_cached(self, uuid_items): + return self._get_forward_and_reversed( + func=super(ReversibleStorableFunction, self)._get_cached, + uuid_items=uuid_items + ) + + def _get_storage(self, uuid_items): + return self._get_forward_and_reversed( + func=super(ReversibleStorableFunction, self)._get_storage, + uuid_items=uuid_items + ) + +class CoordinateFunctionCV(CollectiveVariable, ReversibleStorableFunction): + """For functions independent of arrow of time with snapshot input + + The term coordinate is used here because the most common case is that + the CV is based on coordinates. However, this really implements a + wrapper that can take advantage of cases where a snapshot and its + time-reversed version always give the same function result (e.g., + kinetic energy would also work here). + """ + pass # all the implementation is in the two superclasses + + +class FunctionFactoryCV(CollectiveVariable): + # TODO + pass # this is the GeneratorCV + + +class MDTrajProcessor(Processor): + def __init__(self, topology): + """ + Parameters + ---------- + topology : :class:`.MDTrajTopology + an OPS MDTraj topology wrapper + """ + super(MDTrajProcessor, self).__init__(name='mdtraj', + stage='list-pre', + func=self) + self.topology = topology + + def __call__(self, values): + top = self.topology.mdtraj + return paths.Trajectory(values).to_mdtraj(topology=top) + +class MDTrajFunctionCV(CoordinateFunctionCV): + def __init__(self, func, topology, result_type=None, func_config=None, + **kwargs): + if func_config is None: + func_config = StorableFunctionConfig([ + MDTrajProcessor(topology), wrap_numpy, scalarize_singletons, + ]) + super(MDTrajFunctionCV, self).__init__(func, result_type, + func_config, **kwargs) + self.topology = topology + self.mdtraj_topology = topology.mdtraj + + +class PyEMMAFeaturizerCV(FunctionFactoryCV, CoordinateFunctionCV): + # TODO + pass diff --git a/openpathsampling/experimental/storage/storable_functions.py b/openpathsampling/experimental/storage/storable_functions.py index d99f38adb..e55610dbf 100644 --- a/openpathsampling/experimental/storage/storable_functions.py +++ b/openpathsampling/experimental/storage/storable_functions.py @@ -51,10 +51,11 @@ def _scalarize_singletons(values): all other data. """ if isinstance(values, np.ndarray): - shape = values.shape - if len(shape) > 1 and shape[1] == 1: - new_shape = tuple([shape[0]] + list(shape)[2:]) - values.shape = new_shape + values.shape = tuple(n for n in values.shape if n != 1) + # shape = values.shape + # if len(shape) > 1 and shape[1] == 1: + # new_shape = tuple([shape[0]] + list(shape)[2:]) + # values.shape = new_shape return values scalarize_singletons = Processor(name='scalarize_singletons', @@ -344,7 +345,8 @@ def _eval(self, uuid_items): if self.func is None and uuid_items: raise RuntimeError("No function attached to %s. Can not " + "evaluate for %s." % (self, uuid_items)) - preprocessed = self.func_config.item_preprocess(uuid_items.values()) + values = list(uuid_items.values()) + preprocessed = self.func_config.item_preprocess(values) preprocessed = self.func_config.list_preprocess(preprocessed) values = [self.func(item, **self.kwargs) for item in preprocessed] postprocessed = [self.func_config.item_postprocess(val) @@ -394,11 +396,17 @@ def __call__(self, items): if not missing: break - return_list = [result_dict[get_uuid(item)] for item in items] - result = self.func_config.list_postprocess(return_list) + result = [result_dict[get_uuid(item)] for item in items] + + result = self.func_config.list_postprocess(result) if scalar: - result = result[0] + # TODO: watch to see if this try-catch causes performance issues + try: + result = result[0] + except IndexError: + # this means that the result is already a scalar + pass return result diff --git a/openpathsampling/experimental/storage/storage.py b/openpathsampling/experimental/storage/storage.py index 7181e31db..456a94d64 100644 --- a/openpathsampling/experimental/storage/storage.py +++ b/openpathsampling/experimental/storage/storage.py @@ -263,6 +263,7 @@ def save(self, obj_list, use_cache=True): logger.debug("Storing complete") def save_function_results(self, funcs=None): + # TODO: move this to sf_handler; where the equivalent load happens # no equivalent load because user has no need -- any loading can be # done by func, either as func(obj) or func.preload_cache() if funcs is None: diff --git a/openpathsampling/experimental/storage/test_collective_variables.py b/openpathsampling/experimental/storage/test_collective_variables.py new file mode 100644 index 000000000..256a015b4 --- /dev/null +++ b/openpathsampling/experimental/storage/test_collective_variables.py @@ -0,0 +1,142 @@ +import pytest +try: + from unittest import mock +except ImportError: + import mock + +import numpy as np + +import openpathsampling as paths +from openpathsampling.tests.test_helpers import make_1d_traj, data_filename +from openpathsampling.engines import openmm as ops_omm + +from .collective_variables import * +from .test_storable_function import MockBackend +from .storable_functions import StorageFunctionHandler +from .serialization_helpers import get_uuid + + +try: + import mdtraj as md +except ImportError: + pass +else: + HAS_MDTRAJ = True + + +class TestCollectiveVariable(object): + def setup(self): + self.cv = CollectiveVariable(lambda x: x.xyz[0][0]) + self.traj = make_1d_traj([1.0, 2.0, 3.0]) + ensemble = paths.LengthEnsemble(3) + self.sample = paths.Sample(replica=0, + trajectory=self.traj, + ensemble=ensemble) + self.snap = self.traj[0] + + def test_is_scalar_true(self): + assert self.cv.is_scalar(self.snap) is True + + @pytest.mark.parametrize('inp_type', ['traj', 'samp']) + def test_is_scalar_false(self, inp_type): + inp = {'traj': self.traj, 'samp': self.sample}[inp_type] + assert self.cv.is_scalar(inp) is False + + +# TODO: It turns out that trajectories don't currently store their reversed +# partners. This test won't work until that idea is implemented. +# class TestReversibleStorableFunction(object): + # def setup(self): + # self.func = ReversibleStorableFunction( + # func=mock.MagicMock(return_value=3.0), + # result_type='float' + # ) + # self.traj = make_1d_traj([1.0, 2.0, 3.0]) + # _ = self.func(self.traj) # evaluate once; it should be cached + # # TODO: set up a mock storage, and store results in there + # backend = MockBackend() + # self.storage = mock.NonCallableMock(backend=backend) + # sf_handler = StorageFunctionHandler(self.storage) + # self.storage._sf_handler = sf_handler + # sf_handler.register_storable_function(self.func) + # sf_handler.update_cache(self.func.local_cache) + # pass + + # def test_get_cached(self): + # pytest.skip() + + # def test_get_storage(self): + # # this will first clear the cache on self.func, and then try to load + # pytest.skip() + + +class TestCoordinateFunctionCV(object): + def setup(self): + # On using side_effect: https://stackoverflow.com/a/16162114 + mock_func = mock.MagicMock(side_effect=lambda s: s.xyz[0][0]) + self.func = CoordinateFunctionCV(mock_func) + values = [1.0, 2.0, 3.0] + traj = make_1d_traj(values) + self.inputs = {'traj': traj.reversed, 'snap': traj[0].reversed} + self.expected = {'traj': list(reversed(values)), 'snap': values[0]} + _ = self.func(traj) # run once to cache initial results + mock_func.reset_mock() + + backend = MockBackend() + self.storage = mock.NonCallableMock(backend=backend) + self.storage._sf_handler = StorageFunctionHandler(self.storage) + self.storage._sf_handler.register_function(self.func) + self.storage._sf_handler.update_cache(self.func.local_cache) + + @pytest.mark.parametrize('inp_type', ['snap', 'traj']) + def test_get_cached(self, inp_type): + inputs = self.inputs[inp_type] + expected = self.expected[inp_type] + assert self.func(inputs) == expected + self.func.func.assert_not_called() + loop = {'snap': [inputs], 'traj': inputs}[inp_type] + for item in loop: + assert self.storage.backend.called_load[get_uuid(item)] == 0 + + @pytest.mark.parametrize('inp_type', ['snap', 'traj']) + def test_get_storage(self, inp_type): + self.storage.backend.add_storable_function_results( + table_name=get_uuid(self.func), + result_dict=self.func.local_cache.result_dict + ) + self.func.local_cache.clear() + inputs = self.inputs[inp_type] + expected = self.expected[inp_type] + assert self.func(inputs) == expected + self.func.func.assert_not_called() + loop = {'snap': [inputs], 'traj': inputs}[inp_type] + for item in loop: + assert self.storage.backend.called_load[get_uuid(item)] == 1 + + +class TestMDTrajFunctionCV(object): + def setup(self): + if not HAS_MDTRAJ: + pytest.skip("Unable to import MDTraj") + + self.mdt = md.load(data_filename("ala_small_traj.pdb")) + top = ops_omm.topology.MDTrajTopology(self.mdt.topology) + self.traj = ops_omm.tools.trajectory_from_mdtraj(self.mdt) + self.cv = MDTrajFunctionCV(md.compute_distances, top, + atom_pairs=[[0, 1]]) + + + @pytest.mark.parametrize('inp_type', ['traj', 'snap']) + def test_mdtraj_processor(self, inp_type): + inputs = {'traj': self.traj, 'snap': [self.traj[0]]}[inp_type] + expected = {'traj': self.mdt.xyz, + 'snap': np.array([self.mdt.xyz[0]])}[inp_type] + mdtraj_processor = self.cv.func_config.processor_dict['mdtraj'] + mdtraj_trajectory = mdtraj_processor(inputs) + np.testing.assert_array_equal(mdtraj_trajectory.xyz, expected) + + def test_eval(self): + by_traj = self.cv(self.traj) + by_snap = np.array([self.cv(snap) for snap in self.traj]) + np.testing.assert_array_equal(by_traj, by_snap) + assert by_traj.shape == (len(self.traj),) diff --git a/openpathsampling/experimental/storage/test_storable_function.py b/openpathsampling/experimental/storage/test_storable_function.py index aa9dce07e..ae4d9e035 100644 --- a/openpathsampling/experimental/storage/test_storable_function.py +++ b/openpathsampling/experimental/storage/test_storable_function.py @@ -19,6 +19,7 @@ class MockBackend(object): def __init__(self): self.storable_function_tables = {} self.called_register = collections.defaultdict(int) + self.called_load = collections.defaultdict(int) def register_storable_function(self, table_name, result_type): self.storable_function_tables[table_name] = {} @@ -27,6 +28,8 @@ def register_storable_function(self, table_name, result_type): def load_storable_function_results(self, func_uuid, uuids): table = self.storable_function_tables[func_uuid] found_uuids = [uuid for uuid in uuids if uuid in table] + for uuid in uuids: + self.called_load[uuid] += 1 return {uuid: table[uuid] for uuid in found_uuids} def add_storable_function_results(self, table_name, result_dict): From 36654d56f76f50a8fa810d0ccc43de5b3a66ed67 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 25 Jun 2020 14:07:43 +0200 Subject: [PATCH 361/464] Add SimStore support to ExternalMDSnapshot --- .../external_snapshots/features/file_info.py | 2 + .../storage/test_snapshot_integrations.py | 68 +++++++++++++++++++ 2 files changed, 70 insertions(+) create mode 100644 openpathsampling/experimental/storage/test_snapshot_integrations.py diff --git a/openpathsampling/engines/external_snapshots/features/file_info.py b/openpathsampling/engines/external_snapshots/features/file_info.py index d2a446892..e04d67271 100644 --- a/openpathsampling/engines/external_snapshots/features/file_info.py +++ b/openpathsampling/engines/external_snapshots/features/file_info.py @@ -7,6 +7,8 @@ variables = ['file_name', 'file_position'] +schema_entries = [('file_name', 'str'), ('file_position', 'int')] + def netcdfplus_init(store): store.create_variable( 'file_name', diff --git a/openpathsampling/experimental/storage/test_snapshot_integrations.py b/openpathsampling/experimental/storage/test_snapshot_integrations.py new file mode 100644 index 000000000..299a04d65 --- /dev/null +++ b/openpathsampling/experimental/storage/test_snapshot_integrations.py @@ -0,0 +1,68 @@ +# These are tests of the integration of various engines with the new storage +# system. + +import pytest + +import os + +import numpy as np +import openpathsampling as paths + +from openpathsampling.tests.test_helpers import data_filename + +from openpathsampling.experimental.storage.ops_storage import ( + OPSStorage, ops_class_info, ops_schema +) +from openpathsampling.experimental.storage.sql_backend import SQLStorageBackend + +class TestSnapshotIntegration(object): + # TODO: no use of self anywhere in here; this might become bare test + # functions + + def _make_storage(self, mode): + backend = SQLStorageBackend("test.sql", mode=mode) + storage = OPSStorage.from_backend( + backend=backend, + schema=ops_schema, + class_info=ops_class_info + ) + return storage + + def _make_gromacs_snap(self): + # gromacs-specific + test_dir = data_filename("gromacs_engine") + engine = paths.engines.gromacs.Engine( + gro="conf.gro", + mdp="md.mdp", + top="topol.top", + options={}, + base_dir=test_dir, + prefix="proj" + ) + snap_file = os.path.join(test_dir, "project_trr", "0000000.trr") + + snap = paths.engines.gromacs.ExternalMDSnapshot( + file_name=snap_file, + file_position=2, + engine=engine + ) + return snap + + @pytest.mark.parametrize('integration', ['gromacs']) + def test_integration(self, integration): + make_snap = {'gromacs': self._make_gromacs_snap}[integration] + snap = make_snap() + + storage = self._make_storage(mode='w') + assert not storage.backend.has_table('snapshot0') + storage.save(snap) + assert storage.backend.has_table('snapshot0') + storage.close() + + storage = self._make_storage(mode='r') + assert storage.backend.has_table('snapshot0') + snap2 = storage.snapshot0[0] + + np.testing.assert_array_equal(snap.xyz, snap2.xyz) + + From 0afac9ef9f277465c0ea9bbfa2d9620afca241d3 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Fri, 26 Jun 2020 14:23:38 +0200 Subject: [PATCH 362/464] fixes to get Gromacs traj running with SimStore --- openpathsampling/experimental/storage/callable_codec.py | 5 ++++- .../experimental/storage/collective_variables.py | 5 +++++ .../experimental/storage/storable_functions.py | 8 ++++---- openpathsampling/experimental/storage/storage.py | 2 ++ 4 files changed, 15 insertions(+), 5 deletions(-) diff --git a/openpathsampling/experimental/storage/callable_codec.py b/openpathsampling/experimental/storage/callable_codec.py index 9b17cd6a4..214070332 100644 --- a/openpathsampling/experimental/storage/callable_codec.py +++ b/openpathsampling/experimental/storage/callable_codec.py @@ -101,7 +101,10 @@ def default(self, obj): } # Case 2: arbitrary function - all_globals = dill.detect.globalvars(obj) + if obj.__module__ == "__main__": + all_globals = dill.detect.globalvars(obj) + else: + all_globals = {} errors += self._error_message(GLOBALS_ERROR_MESSAGE, set(all_globals.keys())) diff --git a/openpathsampling/experimental/storage/collective_variables.py b/openpathsampling/experimental/storage/collective_variables.py index 6675b9560..fc400432c 100644 --- a/openpathsampling/experimental/storage/collective_variables.py +++ b/openpathsampling/experimental/storage/collective_variables.py @@ -106,6 +106,11 @@ def __init__(self, func, topology, result_type=None, func_config=None, self.topology = topology self.mdtraj_topology = topology.mdtraj + def to_dict(self): + dct = super().to_dict() + dct.update({'topology': self.topology}) + return dct + class PyEMMAFeaturizerCV(FunctionFactoryCV, CoordinateFunctionCV): # TODO diff --git a/openpathsampling/experimental/storage/storable_functions.py b/openpathsampling/experimental/storage/storable_functions.py index e55610dbf..584c421e2 100644 --- a/openpathsampling/experimental/storage/storable_functions.py +++ b/openpathsampling/experimental/storage/storable_functions.py @@ -301,11 +301,11 @@ def to_dict(self): @classmethod def from_dict(cls, dct): - obj = cls(func=dct['func'], - result_type=dct['result_type'], - **dct['kwargs']) + source = dct.pop('source') + kwargs = dct.pop('kwargs') + obj = cls(**dct, **kwargs) if obj.source is None: - obj.source = dct['source'] # may still be none + obj.source = source # may still be none return obj diff --git a/openpathsampling/experimental/storage/storage.py b/openpathsampling/experimental/storage/storage.py index 456a94d64..723a8d61f 100644 --- a/openpathsampling/experimental/storage/storage.py +++ b/openpathsampling/experimental/storage/storage.py @@ -180,6 +180,8 @@ def filter_existing_uuids(self, uuid_dict): return uuid_dict + + def save(self, obj_list, use_cache=True): if type(obj_list) is not list: obj_list = [obj_list] From 26ea3462b77618b467ca19c40eb7e90ca7e67492 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Tue, 14 Jul 2020 21:28:44 +0200 Subject: [PATCH 363/464] Fixes to test errors introduced in CallableCodec --- .../experimental/storage/callable_codec.py | 7 ++++++- .../experimental/storage/test_callable_codec.py | 11 ++++++++--- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/openpathsampling/experimental/storage/callable_codec.py b/openpathsampling/experimental/storage/callable_codec.py index 214070332..f03bda7a0 100644 --- a/openpathsampling/experimental/storage/callable_codec.py +++ b/openpathsampling/experimental/storage/callable_codec.py @@ -89,6 +89,7 @@ def safemode(self, value): self.settings['safemode'] = value def default(self, obj): + only_req = self.only_allow_required_modules # convenience if not has_uuid(obj) and callable(obj): errors = "" dct = {} @@ -99,6 +100,10 @@ def default(self, obj): '__module__': obj.__module__, '__callable_name__': obj.__name__ } + elif obj.__module__ != "__main__" and only_req: + # else implies root_mod not in required + errors += self._error_message("bar" + UNKNOWN_MODULES_ERROR_MESSAGE, + [obj.__module__]) # Case 2: arbitrary function if obj.__module__ == "__main__": @@ -108,7 +113,7 @@ def default(self, obj): errors += self._error_message(GLOBALS_ERROR_MESSAGE, set(all_globals.keys())) - if self.only_allow_required_modules: + if obj.__module__ == "__main__" and only_req: imported = [instr.argval for instr in dis.get_instructions(obj) if "IMPORT" in instr.opname] diff --git a/openpathsampling/experimental/storage/test_callable_codec.py b/openpathsampling/experimental/storage/test_callable_codec.py index e414cb36a..be56ef248 100644 --- a/openpathsampling/experimental/storage/test_callable_codec.py +++ b/openpathsampling/experimental/storage/test_callable_codec.py @@ -23,6 +23,9 @@ def setup(self): 'use_known_module': _known_module_func, 'use_globals': _globals_using_function, } + for func in ['generic', 'use_known_module', 'use_globals']: + self.functions[func].__module__ = "__main__" + dilled = {key: dill.dumps(func) for key, func in self.functions.items()} self.dcts = { @@ -94,14 +97,16 @@ def test_default_not_mine(self): 'use_known_module']) def test_object_hook(self, func, safe): safemode = {'safemode': True, 'normal': False}[safe] - self.codec.known_modules = ['numpy'] + self.codec.known_modules = ['openpathsampling', 'numpy'] self.codec.safemode = safemode result = self.codec.object_hook(self.dcts[func]) # up to here is smoke test; now we validate expected = None if safemode else self.functions[func] - if not safemode and func != 'generic': - # can't test the recreation of the lambda + untestable = ['generic', 'use_known_module'] + # generic can't be tested for recreastion; use_known_module changes + # the module and therefore can't be tested my memory location + if not safemode and func not in untestable: assert result == expected def test_object_hook_not_mine(self): From 21f4cc09cf860ce6e37991e6e436696cd71c4a50 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Tue, 14 Jul 2020 21:49:19 +0200 Subject: [PATCH 364/464] Remove unused class_idx --- openpathsampling/experimental/storage/ops_storage.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/openpathsampling/experimental/storage/ops_storage.py b/openpathsampling/experimental/storage/ops_storage.py index 29e45c477..338daad54 100644 --- a/openpathsampling/experimental/storage/ops_storage.py +++ b/openpathsampling/experimental/storage/ops_storage.py @@ -50,8 +50,8 @@ 'steps': [('change', 'uuid'), ('active', 'uuid'), #('previous', 'lazy'), ('simulation', 'uuid'), ('mccycle', 'int')], 'details': [('json', 'json_obj')], - 'storable_functions': [('json', 'json_obj'), ('class_idx', 'int')], - 'simulation_objects': [('json', 'json_obj'), ('class_idx', 'int')] + 'storable_functions': [('json', 'json_obj')],#, ('class_idx', 'int')], + 'simulation_objects': [('json', 'json_obj')],#, ('class_idx', 'int')] } # this includes any sql-specific metadata From bf70519c0b5f199ee0e49b3c9104610b30450505 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Fri, 17 Jul 2020 11:42:37 +0200 Subject: [PATCH 365/464] Mostly working memory backend for network xfer Needs tests! --- .../experimental/storage/class_info.py | 11 ++ .../experimental/storage/memory_backend.py | 157 ++++++++++++++++++ .../experimental/storage/ops_storage.py | 10 +- .../storage/serialization_helpers.py | 53 +++--- .../storage/storable_functions.py | 1 - .../experimental/storage/storage.py | 61 ++++--- .../storage/test_serialization_helpers.py | 5 + 7 files changed, 255 insertions(+), 43 deletions(-) create mode 100644 openpathsampling/experimental/storage/memory_backend.py diff --git a/openpathsampling/experimental/storage/class_info.py b/openpathsampling/experimental/storage/class_info.py index efbf20e9d..22e1dbbcd 100644 --- a/openpathsampling/experimental/storage/class_info.py +++ b/openpathsampling/experimental/storage/class_info.py @@ -12,6 +12,7 @@ logger = logging.getLogger(__name__) + class ClassInfo(object): """ Parameters @@ -130,6 +131,16 @@ def add_class_info(self, info_node): if not (reserved and exists): self.table_to_info.update({info_node.table: info_node}) + def copy(self): + # NOTE: subclasses must override if __init__ sig changes + dup = self.__class__( + default_info=self.default_info, + sfr_info=self.sfr_info, + schema=self.schema, + class_info_list=self.class_info_list + ) + return dup + def register_info(self, class_info_list, schema=None): schema = tools.none_to_default(schema, {}) self.schema.update(schema) diff --git a/openpathsampling/experimental/storage/memory_backend.py b/openpathsampling/experimental/storage/memory_backend.py new file mode 100644 index 000000000..cab62619f --- /dev/null +++ b/openpathsampling/experimental/storage/memory_backend.py @@ -0,0 +1,157 @@ +import os +import collections + +from .storage import universal_schema + +import logging +logger = logging.getLogger(__name__) + +UUIDTableRow = collections.namedtuple("UUIDTableRow", ['uuid', 'table_name']) + +class MemoryStorageTable(collections.abc.MutableMapping): + """Simple wrapper for a Dict; transforms Dict values to namedtuple + """ + def __init__(self, table_name, schema_entries): + self.table_name = table_name + self.schema_entries = schema_entries + self.Namespace = self._make_namespace(table_name, schema_entries) + self._dict = {} + + def __reduce__(self): + # remove dynamically created namedtuples + return ( + self.__class__._from_reduce_tuple, ( + self.table_name, + self.schema_entries, + {key: tuple(val) for key, val in self._dict.items()} + ) + ) + + @classmethod + def _from_reduce_tuple(cls, table_name, schema_entries, dct): + obj = cls(table_name, schema_entries) + fields = ['uuid'] + [name for name, _ in schema_entries] + for key, val in dct.items(): + obj[key] = {key: v for key, v in zip(fields, val)} + return obj + + @staticmethod + def _make_namespace(name, schema_entries): + attrs = [attr for attr, _ in schema_entries] + namespace = collections.namedtuple(name, ['uuid'] + attrs) + return namespace + + def __getitem__(self, key): + return self._dict[key] + + def __setitem__(self, key, value): + self._dict[key] = self.Namespace(**value) + + def __delitem__(self, key): + del self._dict[key] + + def __iter__(self): + return iter(self._dict) + + def __len__(self): + return len(self._dict) + + def copy(self): + my_copy = MemoryStorageTable(self.table_name, self.schema_entries) + my_copy._dict = self._dict.copy() + return my_copy + + +class MemoryStorageBackend(object): + """Storage backend for memory. + + This is primarily used for testing and for serialization over a network. + This can be considered as a simplest working example of a backend, and + therefore may be useful for developers. + """ + def __init__(self, mode='w'): + self.mode = mode # technically always 'a', but setup may differ + self.filename = "" + self.schema = {} + self.namedtuples = {} # maps table name to associated namedtuple + self.data = {} # maps table name to Dict[UUID, namedtuple] + self.uuid_table = {} # maps UUID to table name + self._table_to_class = {} + + def close(self): + pass # no such thing as closing here, but may be needed for API + + def register_schema(self, schema, table_to_class, metadata=None): + for table_name, schema_entries in schema.items(): + logger.debug("Registering table: %s" % table_name) + self.data[table_name] = MemoryStorageTable(table_name, + schema_entries) + + self.schema.update(schema) + self._table_to_class.update(table_to_class) + + def has_table(self, table_name): + return table_name in self.data + + def register_storable_function(self, table_name, result_type): + self.data[table_name] = {} + + def add_storable_function_results(self, table_name, result_dict): + # TODO: safety checks that we don't overwrite existing + self.data[table_name].update(result_dict) + + def load_storable_function_results(self, table_name, uuids): + return {uuid: self.data[table_name][uuid] for uuid in uuids} + + def load_storable_function_table(self, table_name): + return self.data[table_name].copy() + + def add_to_table(self, table_name, objects): + uuids = [obj['uuid'] for obj in objects] + # TODO: check for existence (for safety) + self.uuid_table.update({uuid: table_name for uuid in uuids}) + self.data[table_name].update({obj['uuid']: obj for obj in objects}) + + def load_n_rows_from_table(self, table_name, first_row, n_rows): + # not the prettiest implementation, but everything must already be + # in memory here + rows = list(self.data[table_name].values()) + return rows[first_row:first_row + n_rows] + + def load_uuids_table(self, uuids, ignore_missing=False): + exists = [uuid for uuid in uuids if uuid in self.uuid_table] + not_exists = set(uuids) - set(exists) + if not ignore_missing and len(not_exists) > 0: + # at some point we need to raise errors here + pass + + results = [UUIDTableRow(uuid, self.uuid_table[uuid]) + for uuid in exists] + return results + + def load_table_data(self, uuid_table_rows): + results = [self.data[row.table_name][row.uuid] + for row in uuid_table_rows] + return results + + def database_schema(self): + return self.schema + + def get_representative(self, table_name): + return next(iter(self.data[table_name].values())) + + @property + def table_to_class(self): + return self._table_to_class + + def uuid_row_to_table_name(self, uuid_row): + return uuid_row.table_name + + def table_iterator(self, table_name): + return iter(self.data[table_name].values()) + + def table_len(self, table_name): + return len(self.data[table_name]) + + def table_get_item(self, table_name, item): + return list(self.data[table_name].values())[item] diff --git a/openpathsampling/experimental/storage/ops_storage.py b/openpathsampling/experimental/storage/ops_storage.py index 338daad54..07f3248ca 100644 --- a/openpathsampling/experimental/storage/ops_storage.py +++ b/openpathsampling/experimental/storage/ops_storage.py @@ -95,12 +95,16 @@ class OPSSpecialLookup(object): it also acts as a cache to reduce the number of isinstance calls (and hopfully speed up the identification of types) """ + # TODO: overall lookup should be like this: all lookups map a class to a + # lookup function -- often that lookup function just returns the class + # TODO: especially annoying to have StorableFunction as a special special_superclasses = (paths.BaseSnapshot, paths.MoveChange, - paths.Details) + paths.Details, StorableFunction) snapshot_lookup_function = \ lambda self, snap: (get_uuid(snap.engine), snap.__class__) details_lookup_function = lambda self, details: paths.Details movechange_lookup_function = lambda self, change: paths.MoveChange + sf_lookup_function = lambda self, func: StorableFunction def __init__(self): self.secondary_lookups = {} @@ -117,6 +121,8 @@ def __call__(self, item): if isinstance(item, paths.BaseSnapshot): self.secondary_lookups[cls] = self.snapshot_lookup_function + elif isinstance(item, StorableFunction): + self.secondary_lookups[cls] = self.sf_lookup_function elif isinstance(item, paths.MoveChange): self.secondary_lookups[cls] = self.movechange_lookup_function elif isinstance(item, paths.Details): @@ -212,7 +218,7 @@ def _build_ops_serializer(schema, safe_codecs, unsafe_codecs): 'pathsimulators': paths.PathSimulator, 'pathmovers': paths.PathMover, 'networks': paths.TransitionNetwork, - 'cvs': paths.CollectiveVariable, + 'cvs': (paths.CollectiveVariable, StorableFunction), 'engines': paths.engines.DynamicsEngine } # TODO: add more to these diff --git a/openpathsampling/experimental/storage/serialization_helpers.py b/openpathsampling/experimental/storage/serialization_helpers.py index f1051d8f0..ecc66aba1 100644 --- a/openpathsampling/experimental/storage/serialization_helpers.py +++ b/openpathsampling/experimental/storage/serialization_helpers.py @@ -209,22 +209,6 @@ def __call__(self, obj, cache_list): return uuids, new_objects -# TODO: I think this can be removed (only used by get_all_uuid_string) -# def find_dependent_uuids(json_dct): - # dct = json.loads(json_dct) - # uuids = [decode_uuid(obj) for obj in flatten_all(dct) - # if is_uuid_string(obj)] - # return uuids - -# TODO: I think this can be removed (not used?) -# def get_all_uuid_strings(dct): - # all_uuids = [] - # for uuid in dct: - # all_uuids.append(uuid) - # all_uuids += find_dependent_uuids(dct[uuid]) - # return all_uuids - - # NOTE: this only need to find until the first UUID: iterables/mapping with # UUIDs aren't necessary here def replace_uuid(obj, uuid_encoding): @@ -396,7 +380,7 @@ def from_json_obj(uuid, table_row, cache_list): return obj -def _uuids_from_table_row(table_row, schema_entries): +def _uuids_from_table_row(table_row, schema_entries, allow_lazy=True): """Gather UUIDs from a table row (as provided by storage). This organizes the UUIDS that are included in the table row based on @@ -428,8 +412,8 @@ def _uuids_from_table_row(table_row, schema_entries): directly depends on (i.e., everything from ``uuid`` and ``lazy``). """ # take the schema entries here, not the whole schema - lazy = set([]) uuid = set([]) + lazy = set([]) if allow_lazy else uuid for (attr, attr_type) in schema_entries: if attr_type == 'uuid': uuid.add(getattr(table_row, attr)) @@ -447,6 +431,9 @@ def _uuids_from_table_row(table_row, schema_entries): elif attr_type == 'lazy': lazy.add(getattr(table_row, attr)) # other cases aren't UUIDs and are ignored + + if lazy is uuid: + lazy = set([]) # remove all cases of None as a UUID to depend on # TODO: should None be in the UUID list even? # TODO: can we return the set here? @@ -454,13 +441,35 @@ def _uuids_from_table_row(table_row, schema_entries): return (list(uuid), lazy, dependencies) -def get_all_uuids_loading(uuid_list, backend, schema, existing_uuids=None): +def get_all_uuids_loading(uuid_list, backend, schema, existing_uuids=None, + allow_lazy=True): """Get all information to reload from UUIDs. This is the main function for identifying objects to reload from storage. It returns the table rows to load (sorted by table), the UUIDs of objects to lazy-load (sorted by table), and the dictionary of dependencies, which can be used to create the reconstruction DAG. + + Parameters + ---------- + uuid_list : Iterable[str] + iterable of UUIDs + backend : :class:`.Backend` + schema : Dict + existing_uuids : Mapping[str, Any] + maps UUID to the relevant object + + Returns + ------- + to_load : List + list of table rows + lazy : Set[str] + set of lazy object UUIDs + dependencies : Dict[str, List[str]] + dependency mapping; maps UUID of an object to a list of the UUIDs it + depends on + uuid_to_table : Dict[str, str] + mapping of UUID to the name of the table that it is stored in """ if existing_uuids is None: existing_uuids = {} @@ -479,7 +488,11 @@ def get_all_uuids_loading(uuid_list, backend, schema, existing_uuids=None): uuid_list = [] for row in new_table_rows: entries = schema[uuid_to_table[row.uuid]] - loc_uuid, loc_lazy, deps = _uuids_from_table_row(row, entries) + loc_uuid, loc_lazy, deps = _uuids_from_table_row( + table_row=row, + schema_entries=entries, + allow_lazy=allow_lazy + ) uuid_list += loc_uuid lazy.update(loc_lazy) dependencies.update(deps) diff --git a/openpathsampling/experimental/storage/storable_functions.py b/openpathsampling/experimental/storage/storable_functions.py index 584c421e2..7e3bc9414 100644 --- a/openpathsampling/experimental/storage/storable_functions.py +++ b/openpathsampling/experimental/storage/storable_functions.py @@ -310,7 +310,6 @@ def from_dict(cls, dct): return obj def preload_cache(self, storage=None): - # TODO: add support for this to take a storage as argument if storage is None: storage = self._handler.storage diff --git a/openpathsampling/experimental/storage/storage.py b/openpathsampling/experimental/storage/storage.py index 723a8d61f..7117bcdb4 100644 --- a/openpathsampling/experimental/storage/storage.py +++ b/openpathsampling/experimental/storage/storage.py @@ -47,8 +47,8 @@ class GeneralStorage(object): def __init__(self, backend, class_info, schema=None, simulation_classes=None, fallbacks=None, safemode=False): self.backend = backend - self.schema = schema - self.class_info = class_info + self.schema = schema.copy() + self.class_info = class_info.copy() self.mode = self.backend.mode self._safemode = None self.safemode = safemode @@ -61,19 +61,20 @@ def __init__(self, backend, class_info, schema=None, # self._pseudo_tables = {table_name: dict() # for table_name in self.simulation_classes} + self._simulation_objects = {} self._pseudo_tables = {table_name: PseudoTable() for table_name in self.simulation_classes} self._pseudo_tables['misc_simulation'] = PseudoTable() self._storage_tables = {} # stores .steps, .snapshots - self._simulation_objects = self._cache_simulation_objects() - self.cache = MixedCache(self._simulation_objects) # self.serialization = Serialization(self) self.proxy_factory = ProxyObjectFactory(self, self.class_info) + self.cache = MixedCache() if self.schema is None: self.schema = backend.schema self.initialize_with_mode(self.mode) self._stashed = [] + self._reset_fixed_cache() @property def safemode(self): @@ -94,8 +95,10 @@ def initialize_with_mode(self, mode): self.schema.update(missing) table_to_class = self.backend.table_to_class self._load_missing_info_tables(table_to_class) - self._update_pseudo_tables({get_uuid(obj): obj - for obj in self.simulation_objects}) + sim_objs = {get_uuid(obj): obj + for obj in self.simulation_objects} + self._simulation_objects.update(sim_objs) + self._update_pseudo_tables(sim_objs) elif mode == 'w': self.register_schema(self.schema, class_info_list=[]) @@ -145,7 +148,8 @@ def register_schema(self, schema, class_info_list, self.schema.update(schema) for table in self.schema: - self._storage_tables[table] = StorageTable(self, table) + self._storage_tables[table] = StorageTable(self, table, + cache=self.cache) # self.serialization.register_serialization(schema, self.class_info) def register_from_instance(self, lookup, obj): @@ -196,7 +200,7 @@ def save(self, obj_list, use_cache=True): input_uuids = {get_uuid(obj): obj for obj in obj_list} input_uuids = self.filter_existing_uuids(input_uuids) if not input_uuids: - return # exist early if everything is already in storage + return # exit early if everything is already in storage # find all UUIDs we need to save with this object logger.debug("Listing all objects to save") @@ -214,6 +218,7 @@ def save(self, obj_list, use_cache=True): by_table = tools.dict_group_by(uuids, key_extract=get_table_name) # check default table for things to register; register them + # TODO: move to function: self.register_missing(by_table) # TODO: convert to while? if '__missing__' in by_table: # __missing__ is a special result returned by the @@ -230,6 +235,7 @@ def save(self, obj_list, use_cache=True): str(list(missing_by_table.keys()))) by_table.update(missing_by_table) + # TODO: move to function self.store_sfr_results(by_table) has_sfr = (self.class_info.sfr_info is not None and self.class_info.sfr_info.table in by_table) if has_sfr: @@ -249,23 +255,18 @@ def save(self, obj_list, use_cache=True): logger.debug("Storing %d objects to table %s", len(by_table[table]), table) serialize = self.class_info[table].serializer - - # DEBUG - # if table == 'move_changes': - # for o in by_table[table].values(): - # print o - # serialize(o) - storables_list = [serialize(o) for o in by_table[table].values()] self.backend.add_to_table(table, storables_list) # special handling for simulation objects if table == 'simulation_objects': self._update_pseudo_tables(by_table[table]) self._simulation_objects.update(by_table[table]) + self._reset_fixed_cache() logger.debug("Storing complete") def save_function_results(self, funcs=None): # TODO: move this to sf_handler; where the equivalent load happens + # no equivalent load because user has no need -- any loading can be # done by func, either as func(obj) or func.preload_cache() if funcs is None: @@ -279,8 +280,19 @@ def save_function_results(self, funcs=None): table_name=get_uuid(func), result_dict=result_dict ) + self._reset_fixed_cache() - def load(self, input_uuids, force=False): + def load(self, input_uuids, allow_lazy=True, force=False): + """ + Parameters + ---------- + input_uuids : List[str] + allow_lazy : bool + whether to allow lazy proxy objects + force : bool + force reloading this object even if it is already cached (used + for deproxying a lazy proxy object) + """ # loading happens in 4 parts: # 1. Get UUIDs that need to be loaded # 2. Make lazy-loading proxy objects @@ -305,19 +317,22 @@ def load(self, input_uuids, force=False): get_all_uuids_loading(uuid_list=uuid_list, backend=self.backend, schema=self.schema, - existing_uuids=self.cache) + existing_uuids=self.cache, + allow_lazy=allow_lazy) logger.debug("Loading %d objects; creating %d lazy proxies", len(to_load), len(lazy_uuids)) + # to_load : List (table rows from backend) + # lazy : Set[str] (lazy obj UUIDs) + # dependencies : Dict[str, List[str]] (map UUID to contained UUIDs) + # uuid_to_table : Dict[str, str] (UUID to table name) + # make lazies logger.debug("Identifying classes for %d lazy proxies", len(lazy_uuids)) lazy_uuid_rows = self.backend.load_uuids_table(lazy_uuids) lazies = tools.group_by_function(lazy_uuid_rows, self.backend.uuid_row_to_table_name) - # TODO: replace this with something not based on Serialization - # object - # new_uuids = self.serialization.make_all_lazies(lazies) new_uuids = self.proxy_factory.make_all_lazies(lazies) # get order and deserialize @@ -362,12 +377,18 @@ def sync_all(self): pass def _cache_simulation_objects(self): + # backend_iterator = self.backend.table_iterator('simulation_objects') # sim_obj_uuids = [row.uuid for row in backend_iterator] # objs = self.load(sim_obj_uuids) # load up all the simulation objects return {} + def _reset_fixed_cache(self): + self.cache.fixed_cache = {} + self.cache.fixed_cache.update(self._simulation_objects) + self.cache.fixed_cache.update(self._sf_handler.canonical_functions) + def _update_pseudo_tables(self, simulation_objects): # TODO: replace the pseudo_tables code here with a class for uuid, obj in simulation_objects.items(): diff --git a/openpathsampling/experimental/storage/test_serialization_helpers.py b/openpathsampling/experimental/storage/test_serialization_helpers.py index 96e37400c..98409879b 100644 --- a/openpathsampling/experimental/storage/test_serialization_helpers.py +++ b/openpathsampling/experimental/storage/test_serialization_helpers.py @@ -261,6 +261,11 @@ def test_get_all_uuids_loading(): assert dependencies == expected_dependencies assert uuid_to_table == expected_uuid_to_table +@pytest.mark.parametrize('lazy_allowed', [True, False]) +def test_get_all_uuids_loading_lazy_allowed(lazy_allowed): + ... + pytest.skip() + def test_get_all_uuids_loading_with_existing(): pytest.skip() From 68c2d9e8611e2e8b8a67689e49d28831f48ed7f4 Mon Sep 17 00:00:00 2001 From: sroet Date: Mon, 20 Jul 2020 15:11:46 +0200 Subject: [PATCH 366/464] use tobytes() and pep8 --- .../analysis/shooting_point_analysis.py | 20 +++--- openpathsampling/tests/test_network.py | 6 +- openpathsampling/tests/test_pathsimulator.py | 70 +++++++++++-------- .../tests/test_shooting_point_analysis.py | 62 ++++++++-------- 4 files changed, 82 insertions(+), 76 deletions(-) diff --git a/openpathsampling/analysis/shooting_point_analysis.py b/openpathsampling/analysis/shooting_point_analysis.py index d29444e56..2bece39d4 100644 --- a/openpathsampling/analysis/shooting_point_analysis.py +++ b/openpathsampling/analysis/shooting_point_analysis.py @@ -1,8 +1,6 @@ -import openpathsampling as paths import collections import pandas as pd import numpy as np -import matplotlib.pyplot as plt from openpathsampling.progress import SimpleProgress @@ -11,6 +9,7 @@ except ImportError: import collections as abc + # based on http://stackoverflow.com/a/3387975 class TransformedDict(abc.MutableMapping): """A dictionary that applies an arbitrary key-altering function before @@ -72,7 +71,7 @@ class SnapshotByCoordinateDict(TransformedDict): (e.g., committor analysis). """ def __init__(self, *args, **kwargs): - hash_fcn = lambda x : x.coordinates.tostring() + hash_fcn = lambda x: x.coordinates.tobytes() super(SnapshotByCoordinateDict, self).__init__(hash_fcn, *args, **kwargs) @@ -108,7 +107,7 @@ def analyze(self, steps): MC steps to analyze """ for step in self.progress(steps): - total = self.analyze_single_step(step) + self.analyze_single_step(step) def analyze_single_step(self, step): """ @@ -136,7 +135,7 @@ def analyze_single_step(self, step): total = collections.Counter( {state: sum([int(state(pt)) for pt in test_points]) - for state in self.states} + for state in self.states} ) total_count = sum(total.values()) # TODO: clarify assertion (at least one endpoint in state) @@ -197,7 +196,7 @@ def from_individual_runs(cls, run_results, states=None): analyzer = ShootingPointAnalysis(None, states) for step in run_results: key = step[0] - total = collections.Counter({step[1] : 1}) + total = collections.Counter({step[1]: 1}) try: analyzer[key] += total except KeyError: @@ -226,12 +225,13 @@ def committor(self, state, label_function=None): mapping labels given by label_function to the committor value """ if label_function is None: - label_function = lambda s : s + label_function = lambda s: s results = {} for k in self: out_key = label_function(k) counter_k = self[k] - committor = float(counter_k[state]) / sum([counter_k[s] for s in self.states]) + committor = float(counter_k[state]) / sum([counter_k[s] + for s in self.states]) results[out_key] = committor return results @@ -267,8 +267,8 @@ def committor_histogram(self, new_hash, state, bins=10): """ rehashed = self.rehash(new_hash) r_store = rehashed.store - count_all = {k : sum(r_store[k].values()) for k in r_store} - count_state = {k : r_store[k][state] for k in r_store} + count_all = {k: sum(r_store[k].values()) for k in r_store} + count_state = {k: r_store[k][state] for k in r_store} ndim = self._get_key_dim(list(r_store.keys())[0]) if ndim == 1: (all_hist, b) = np.histogram(list(count_all.keys()), diff --git a/openpathsampling/tests/test_network.py b/openpathsampling/tests/test_network.py index f90751fdc..f2cf867cd 100644 --- a/openpathsampling/tests/test_network.py +++ b/openpathsampling/tests/test_network.py @@ -336,13 +336,13 @@ def test_trajectories_strict(self): (self.stateA, self.ifacesA, self.stateC) ], strict_sampling=True) transAB = [trans for trans in strict.sampling_transitions - if (trans.stateA == self.stateA and + if (trans.stateA == self.stateA and trans.stateB == self.stateB)][0] transAC = [trans for trans in strict.sampling_transitions - if (trans.stateA == self.stateA and + if (trans.stateA == self.stateA and trans.stateB == self.stateC)][0] transBA = [trans for trans in strict.sampling_transitions - if (trans.stateA == self.stateB and + if (trans.stateA == self.stateB and trans.stateB == self.stateA)][0] ensAB = transAB.ensembles[0] ensAC = transAC.ensembles[0] diff --git a/openpathsampling/tests/test_pathsimulator.py b/openpathsampling/tests/test_pathsimulator.py index 755db0de2..bcaaa036a 100644 --- a/openpathsampling/tests/test_pathsimulator.py +++ b/openpathsampling/tests/test_pathsimulator.py @@ -7,7 +7,7 @@ from .test_helpers import (raises_with_message_like, data_filename, CalvinistDynamics, make_1d_traj, assert_items_equal) -from nose.tools import (assert_equal, assert_not_equal, raises, +from nose.tools import (assert_equal, raises, assert_almost_equal, assert_true) # from nose.plugins.skip import SkipTest @@ -24,10 +24,11 @@ logging.getLogger('openpathsampling.ensemble').setLevel(logging.CRITICAL) logging.getLogger('openpathsampling.engines').setLevel(logging.CRITICAL) + class TestAbstract(object): @raises_with_message_like(TypeError, "Can't instantiate abstract class") def test_abstract_volume(self): - mover = PathSimulator() + PathSimulator() class TestFullBootstrapping(object): @@ -70,11 +71,11 @@ def test_initial_max_length(self): bootstrap_AB_maxlength = paths.FullBootstrapping( transition=self.tisAB, snapshot=self.snapA, - initial_max_length = 3, + initial_max_length=3, engine=engine ) bootstrap_AB_maxlength.output_stream = open(os.devnull, "w") - gs = bootstrap_AB_maxlength.run(build_attempts=1) + bootstrap_AB_maxlength.run(build_attempts=1) def test_first_traj_ensemble(self): traj_starts_in = make_1d_traj([-0.2, -0.1, 0.1, -0.1]) @@ -147,7 +148,7 @@ def test_run_forbidden_states(self): bootstrap2.output_stream = open(os.devnull, "w") # make sure this is where we get the error try: - gs2 = bootstrap2.run() + bootstrap2.run() except RuntimeError: pass @@ -160,7 +161,7 @@ def test_too_much_bootstrapping(self): engine=engine, ) bootstrap.output_stream = open(os.devnull, "w") - gs = bootstrap.run(max_ensemble_rounds=1) + bootstrap.run(max_ensemble_rounds=1) class TestShootFromSnapshotsSimulation(object): @@ -172,7 +173,7 @@ def setup(self): # As a test system, let's use 1D motion on a flat potential. If the # velocity is positive, you right the state on the right. If it is # negative, you hit the state on the left. - pes = toys.LinearSlope(m=[0.0], c=[0.0]) # flat line + pes = toys.LinearSlope(m=[0.0], c=[0.0]) # flat line topology = toys.Topology(n_spatial=1, masses=[1.0], pes=pes) integrator = toys.LeapfrogVerletIntegrator(0.1) options = { @@ -184,7 +185,7 @@ def setup(self): self.snap0 = toys.Snapshot(coordinates=np.array([[0.0]]), velocities=np.array([[1.0]]), engine=self.engine) - cv = paths.FunctionCV("Id", lambda snap : snap.coordinates[0][0]) + cv = paths.FunctionCV("Id", lambda snap: snap.coordinates[0][0]) starting_volume = paths.CVDefinedVolume(cv, -0.01, 0.01) forward_ensemble = paths.LengthEnsemble(5) backward_ensemble = paths.LengthEnsemble(3) @@ -235,7 +236,7 @@ def setup(self): # As a test system, let's use 1D motion on a flat potential. If the # velocity is positive, you right the state on the right. If it is # negative, you hit the state on the left. - pes = toys.LinearSlope(m=[0.0], c=[0.0]) # flat line + pes = toys.LinearSlope(m=[0.0], c=[0.0]) # flat line topology = toys.Topology(n_spatial=1, masses=[1.0], pes=pes) integrator = toys.LeapfrogVerletIntegrator(0.1) options = { @@ -247,12 +248,12 @@ def setup(self): self.snap0 = toys.Snapshot(coordinates=np.array([[0.0]]), velocities=np.array([[1.0]]), engine=self.engine) - cv = paths.FunctionCV("Id", lambda snap : snap.coordinates[0][0]) + cv = paths.FunctionCV("Id", lambda snap: snap.coordinates[0][0]) self.left = paths.CVDefinedVolume(cv, float("-inf"), -1.0) self.right = paths.CVDefinedVolume(cv, 1.0, float("inf")) - self.state_labels = {"Left" : self.left, - "Right" : self.right, - "None" : ~(self.left | self.right)} + self.state_labels = {"Left": self.left, + "Right": self.right, + "None": ~(self.left | self.right)} randomizer = paths.NoModification() @@ -295,7 +296,7 @@ def test_storage(self): def test_committor_run(self): self.simulation.run(n_per_snapshot=20) assert_equal(len(self.simulation.storage.steps), 20) - counts = {'fwd' : 0, 'bkwd' : 0} + counts = {'fwd': 0, 'bkwd': 0} for step in self.simulation.storage.steps: step.active.sanity_check() # traj is in ensemble traj = step.active[0].trajectory @@ -402,10 +403,10 @@ def test_randomized_committor(self): sim.output_stream = open(os.devnull, 'w') sim.run(50) assert_equal(len(sim.storage.steps), 50) - counts = {'None-Right' : 0, - 'Left-None' : 0, - 'None-Left' : 0, - 'Right-None' : 0} + counts = {'None-Right': 0, + 'Left-None': 0, + 'None-Left': 0, + 'Right-None': 0} for step in sim.storage.steps: step.active.sanity_check() # traj is in ensemble traj = step.active[0].trajectory @@ -422,6 +423,7 @@ def test_randomized_committor(self): assert_true(counts['None-Right'] > 0) assert_equal(sum(counts.values()), 50) + class TestDirectSimulation(object): def setup(self): pes = toys.HarmonicOscillator(A=[1.0], omega=[1.0], x0=[0.0]) @@ -436,7 +438,7 @@ def setup(self): self.snap0 = toys.Snapshot(coordinates=np.array([[0.0]]), velocities=np.array([[1.0]]), engine=self.engine) - cv = paths.FunctionCV("Id", lambda snap : snap.coordinates[0][0]) + cv = paths.FunctionCV("Id", lambda snap: snap.coordinates[0][0]) self.cv = cv self.center = paths.CVDefinedVolume(cv, -0.2, 0.2) self.interface = paths.CVDefinedVolume(cv, -0.3, 0.3) @@ -492,8 +494,8 @@ def test_transitions(self): (self.center, self.extra): 1, (self.extra, self.center): 1}) assert_equal(self.sim.transitions, - {(self.center, self.outside) : [3, 2], - (self.outside, self.center) : [3], + {(self.center, self.outside): [3, 2], + (self.outside, self.center): [3], (self.center, self.extra): [3], (self.extra, self.center): [2]}) @@ -562,18 +564,24 @@ def test_multiple_cv_flux(self): # interface alpha); and `X_ab` (outside interface alpha and beta). cv1 = self.cv cv2 = paths.FunctionCV("abs_sin", - lambda snap : np.abs(np.sin(snap.xyz[0][0]))) - state = paths.CVDefinedVolume(cv1, old_div(-np.pi,8.0), old_div(np.pi,8.0)) - other_state = paths.CVDefinedVolume(cv1, -5.0/8.0*np.pi, -3.0/8.0*np.pi) + lambda snap: np.abs(np.sin(snap.xyz[0][0]))) + state = paths.CVDefinedVolume(cv1, + old_div(-np.pi, 8.0), + old_div(np.pi, 8.0)) + other_state = paths.CVDefinedVolume(cv1, + -5.0/8.0 * np.pi, + -3.0/8.0 * np.pi) alpha = paths.CVDefinedVolume(cv1, float("-inf"), 3.0/8.0*np.pi) - beta = paths.CVDefinedVolume(cv2, float("-inf"), old_div(np.sqrt(2),2.0)) + beta = paths.CVDefinedVolume(cv2, + float("-inf"), + old_div(np.sqrt(2), 2.0)) # approx alpha: x < 1.17 beta: abs(sin(x)) < 0.70 S = 0 # cv1 = 0.00; cv2 = 0.00 - I = old_div(np.pi,5.0) # cv1 = 0.63; cv2 = 0.59 + I = old_div(np.pi, 5.0) # cv1 = 0.63; cv2 = 0.59 X_a = np.pi # cv1 = 3.14; cv2 = 0.00 - X_b = old_div(-np.pi,3.0) # cv1 = -1.05; cv2 = 0.87 - X_ab = old_div(np.pi,2.0) # cv1 = 1.57; cv2 = 1.00 - other = old_div(-np.pi,2.0) # cv1 = -1.57; cv2 = 1.00 + X_b = old_div(-np.pi, 3.0) # cv1 = -1.05; cv2 = 0.87 + X_ab = old_div(np.pi, 2.0) # cv1 = 1.57; cv2 = 1.00 + other = old_div(-np.pi, 2.0) # cv1 = -1.57; cv2 = 1.00 # That hack is utterly crazy, but I'm kinda proud of it! predetermined = [S, S, I, X_a, # (2) first exit S, X_a, # (4) cross A @@ -690,6 +698,6 @@ def all_snaps(sample_set): final_snaps = all_snaps(self.sim.sample_set) assert initial_snaps & final_snaps == set([]) # test time reversal - init_xyz = set(s.xyz.tostring() for s in initial_snaps) - final_xyz = set(s.xyz.tostring() for s in final_snaps) + init_xyz = set(s.xyz.tobytes() for s in initial_snaps) + final_xyz = set(s.xyz.tobytes() for s in final_snaps) assert init_xyz & final_xyz == set([]) diff --git a/openpathsampling/tests/test_shooting_point_analysis.py b/openpathsampling/tests/test_shooting_point_analysis.py index 9ed0a86d0..7b5e1c8d5 100644 --- a/openpathsampling/tests/test_shooting_point_analysis.py +++ b/openpathsampling/tests/test_shooting_point_analysis.py @@ -4,9 +4,8 @@ from builtins import range from past.utils import old_div from builtins import object -from nose.tools import (assert_equal, assert_not_equal, raises, +from nose.tools import (assert_equal, raises, assert_almost_equal, assert_true, assert_in) -from nose.plugins.skip import SkipTest from numpy.testing import assert_array_almost_equal from .test_helpers import (make_1d_traj, data_filename, assert_items_equal, assert_same_items) @@ -30,9 +29,9 @@ class TestTransformedDict(object): def setup(self): - self.untransformed = {(0, 1) : "a", (1, 2) : "b", (2, 3) : "c"} - self.transformed = {0 : "a", 1 : "b", 2 : "c"} - self.hash_function = lambda x : x[0] + self.untransformed = {(0, 1): "a", (1, 2): "b", (2, 3): "c"} + self.transformed = {0: "a", 1: "b", 2: "c"} + self.hash_function = lambda x: x[0] self.empty = TransformedDict(self.hash_function, {}) self.test_dict = TransformedDict(self.hash_function, self.untransformed) @@ -40,24 +39,24 @@ def setup(self): def test_initialization(self): assert_equal(self.test_dict.store, self.transformed) assert_equal(self.test_dict.hash_representatives, - {0: (0,1), 1: (1,2), 2: (2,3)}) + {0: (0, 1), 1: (1, 2), 2: (2, 3)}) def test_set_get(self): - self.empty[(5,6)] = "d" + self.empty[(5, 6)] = "d" assert_equal(self.empty.store, {5: "d"}) - assert_equal(self.empty.hash_representatives, {5: (5,6)}) - assert_equal(self.empty[(5,6)], "d") + assert_equal(self.empty.hash_representatives, {5: (5, 6)}) + assert_equal(self.empty[(5, 6)], "d") def test_update(self): - self.test_dict.update({(5,6): "d"}) + self.test_dict.update({(5, 6): "d"}) assert_equal(self.test_dict.store, - {0 : "a", 1 : "b", 2 : "c", 5 : "d"}) + {0: "a", 1: "b", 2: "c", 5: "d"}) assert_equal(self.test_dict.hash_representatives, - {0: (0,1), 1: (1,2), 2: (2,3), 5: (5,6)}) + {0: (0, 1), 1: (1, 2), 2: (2, 3), 5: (5, 6)}) def test_del(self): del self.test_dict[(0, 1)] - assert_equal(self.test_dict.store, {1 : "b", 2 : "c"}) + assert_equal(self.test_dict.store, {1: "b", 2: "c"}) def test_iter(self): iterated = [k for k in self.test_dict] @@ -69,10 +68,10 @@ def test_len(self): assert_equal(len(self.empty), 0) def test_rehash(self): - rehashed = self.test_dict.rehash(lambda x : x[1]) + rehashed = self.test_dict.rehash(lambda x: x[1]) assert_equal(rehashed.store, {1: "a", 2: "b", 3: "c"}) assert_equal(rehashed.hash_representatives, - {1: (0,1), 2: (1,2), 3: (2,3)}) + {1: (0, 1), 2: (1, 2), 3: (2, 3)}) class TestSnapshotByCoordinateDict(object): @@ -80,8 +79,8 @@ def setup(self): self.empty_dict = SnapshotByCoordinateDict() coords_A = np.array([[0.0, 0.0]]) coords_B = np.array([[1.0, 1.0]]) - self.key_A = coords_A.tostring() - self.key_B = coords_B.tostring() + self.key_A = coords_A.tobytes() + self.key_B = coords_B.tobytes() self.snapA1 = peng.toy.Snapshot(coordinates=coords_A, velocities=np.array([[0.0, 0.0]])) self.snapA2 = peng.toy.Snapshot(coordinates=coords_A, @@ -105,7 +104,7 @@ def setup(self): paths.progress.HAS_TQDM = False # taken from the TestCommittorSimulation import openpathsampling.engines.toy as toys - pes = toys.LinearSlope(m=[0.0], c=[0.0]) # flat line + pes = toys.LinearSlope(m=[0.0], c=[0.0]) # flat line topology = toys.Topology(n_spatial=1, masses=[1.0], pes=pes) descriptor = peng.SnapshotDescriptor.construct( toys.Snapshot, @@ -128,7 +127,7 @@ def setup(self): 'n_steps_per_frame': 5 } self.engine = toys.Engine(options=options, topology=topology) - cv = paths.FunctionCV("Id", lambda snap : snap.coordinates[0][0]) + cv = paths.FunctionCV("Id", lambda snap: snap.coordinates[0][0]) self.left = paths.CVDefinedVolume(cv, float("-inf"), -1.0) self.right = paths.CVDefinedVolume(cv, 1.0, float("inf")) @@ -155,7 +154,7 @@ def teardown(self): self.storage.close() if os.path.isfile(self.filename): os.remove(self.filename) - paths.EngineMover.default_engine = None # set by Committor + paths.EngineMover.default_engine = None # set by Committor def test_shooting_point_analysis(self): assert_equal(len(self.analyzer), 2) @@ -185,7 +184,7 @@ def test_non_shooting_steps(self): ensemble = network.all_ensembles[0] mover = paths.PathReversalMover(ensemble) scheme = paths.LockedMoveScheme(mover, network) - init_conds=scheme.initial_conditions_from_trajectories([init_traj]) + init_conds = scheme.initial_conditions_from_trajectories([init_traj]) assert_equal(len(init_conds), 1) self.storage.close() self.storage = paths.Storage(self.filename, "w") @@ -223,7 +222,7 @@ def test_committor(self): assert_equal(committor_B[snap], old_div(float(self.analyzer[snap][self.right]), 20.0)) - rehash = lambda snap : 2 * snap.xyz[0][0] + rehash = lambda snap: 2 * snap.xyz[0][0] committor_A_rehash = self.analyzer.committor(self.left, rehash) orig_values = sorted(committor_A.values()) rehash_values = sorted(committor_A_rehash.values()) @@ -232,7 +231,7 @@ def test_committor(self): assert_in(rehash(snap), list(committor_A_rehash.keys())) def test_committor_histogram_1d(self): - rehash = lambda snap : 2 * snap.xyz[0][0] + rehash = lambda snap: 2 * snap.xyz[0][0] input_bins = [-0.05, 0.05, 0.15, 0.25, 0.35, 0.45] hist, bins = self.analyzer.committor_histogram(rehash, self.left, input_bins) @@ -244,18 +243,18 @@ def test_committor_histogram_1d(self): assert_array_almost_equal(bins, input_bins) def test_committor_histogram_2d(self): - rehash = lambda snap : (snap.xyz[0][0], 2 * snap.xyz[0][0]) + rehash = lambda snap: (snap.xyz[0][0], 2 * snap.xyz[0][0]) input_bins = [-0.05, 0.05, 0.15, 0.25, 0.35, 0.45] hist, b_x, b_y = self.analyzer.committor_histogram(rehash, self.left, input_bins) - assert_equal(hist.shape, (5,5)) + assert_equal(hist.shape, (5, 5)) for i in range(5): for j in range(5): - if (i,j) in [(0, 0), (1, 2)]: + if (i, j) in [(0, 0), (1, 2)]: pass - assert_true(hist[(i,j)] > 0) + assert_true(hist[(i, j)] > 0) else: - assert_true(np.isnan(hist[(i,j)])) + assert_true(np.isnan(hist[(i, j)])) # this may change later to bins[0]==bins[1]==input_bins assert_array_almost_equal(input_bins, b_x) @@ -264,16 +263,15 @@ def test_committor_histogram_2d(self): @raises(RuntimeError) def test_committor_histogram_3d(self): # only 1D and 2D are supported - rehash = lambda snap : (snap.xyz[0][0], 2 * snap.xyz[0][0], 0.0) + rehash = lambda snap: (snap.xyz[0][0], 2 * snap.xyz[0][0], 0.0) input_bins = [-0.05, 0.05, 0.15, 0.25, 0.35, 0.45] hist, b_x, b_y = self.analyzer.committor_histogram(rehash, self.left, input_bins) def test_to_pandas(self): df1 = self.analyzer.to_pandas() - df2 = self.analyzer.to_pandas(lambda x : x.xyz[0][0]) - assert_equal(df1.shape, (2,2)) + df2 = self.analyzer.to_pandas(lambda x: x.xyz[0][0]) + assert_equal(df1.shape, (2, 2)) assert_items_equal(df1.index, list(range(2))) assert_same_items(df2.index, [0.0, 0.1]) assert_same_items(df1.columns, [self.left.name, self.right.name]) - From 289219d427cf9d1a9f10c626d134ff6cd46bf4c5 Mon Sep 17 00:00:00 2001 From: Andreas Singraber Date: Mon, 20 Jul 2020 19:16:52 +0200 Subject: [PATCH 367/464] Update of PR for reactive flux method - Class ReactiveFluxSimulation added in pathsimulators/reactive_flux.py. - Class ReactiveFluxAnalysis added in analysis/reactive_flux_analysis.py. - Class NonCanonicalConditionalSequentialMover added in pathmover.py. - Class NonCanonicalConditionalSequentialMoveChange added in movechange.py. - Example IPython notebook added: examples/misc/reactive_flux.ipynb. - Nosetests added: class TestReactiveFluxSimulation in tests/test_pathsimultor.py - Nosetests added: class TestReactiveFluxAnalysis in tests/test_reactive_flux_analysis.py - Classes added in __init__.py. --- examples/misc/reactive_flux.ipynb | 753 ++++++++++++++++++ openpathsampling/__init__.py | 9 +- .../analysis/reactive_flux_analysis.py | 229 ++++++ openpathsampling/movechange.py | 12 + openpathsampling/pathmover.py | 19 + openpathsampling/pathsimulators/__init__.py | 1 + .../pathsimulators/reactive_flux.py | 112 +++ openpathsampling/tests/test_pathsimulator.py | 124 ++- .../tests/test_reactive_flux_analysis.py | 214 +++++ 9 files changed, 1471 insertions(+), 2 deletions(-) create mode 100644 examples/misc/reactive_flux.ipynb create mode 100644 openpathsampling/analysis/reactive_flux_analysis.py create mode 100644 openpathsampling/pathsimulators/reactive_flux.py create mode 100644 openpathsampling/tests/test_reactive_flux_analysis.py diff --git a/examples/misc/reactive_flux.ipynb b/examples/misc/reactive_flux.ipynb new file mode 100644 index 000000000..8e15e30e5 --- /dev/null +++ b/examples/misc/reactive_flux.ipynb @@ -0,0 +1,753 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "%matplotlib inline\n", + "import matplotlib.pyplot as plt\n", + "import matplotlib.cm as cm\n", + "import openpathsampling as paths\n", + "import openpathsampling.engines.toy as toys\n", + "import numpy as np\n", + "\n", + "# used for visualization of the 2D toy system\n", + "# we use the %run magic because this isn't in a package\n", + "%run ../resources/toy_plot_helpers.py" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Reactive Flux Simulation\n", + "\n", + "This example demonstrates how a reactive flux simulation is carried out and analyzed in OPS.\n", + "\n", + "## Theory\n", + "\n", + "In transition state theory the rate constant of a rare event can be expressed as a product\n", + "\n", + "$$ k_{AB}^{TST} = \\left< \\dot{\\lambda} \\, \\theta(\\dot{\\lambda}) \\right>_{\\lambda = \\lambda^*} \\cdot \\frac{e^{-\\beta F(\\lambda^*)}}{\\int_{-\\infty}^{\\lambda^*} e^{-\\beta F(\\lambda')} d\\lambda'}\\text{,}$$\n", + "\n", + "where $F(\\lambda)$ is the free energy with respect to a suitable reaction coordinate $\\lambda(x)$ ($x$ is a system state). The dividing surface at $\\lambda = \\lambda^*$ separates the stable states $A$ and $B$, and $\\left<\\ldots\\right>_{\\lambda = \\lambda^*}$ denotes a constrained average at this transition states. The first factor measures an average velocity of the reaction coordinate at the dividing surface when trajectories cross the barrier (note how the $\\theta(\\dot{\\lambda})$ function selects only paths in the direction $A \\rightarrow B$). The second factor is the probability for the system to be at the top of the barrier. This implies knowledge of the free energy curve with respect to the reaction coordinate, a quantity which may be obtained via umbrella sampling techniques.\n", + "\n", + "A rate constant obtained from transition state theory is only correct if the reaction coordinate is chosen in such a way that no recrossings at the dividing surface occur, i.e. $\\left\\{x\\, |\\, \\lambda(x) = \\lambda^*\\right\\}$ corresponds to the *separatrix*. Frequently, for complex systems this requirement cannot be met and one has to correct the above expression with the transmission coefficient $\\kappa(t) = k_{AB} \\, / \\, k_{AB}^{TST}$, where $k_{AB}$ is the true rate constant. Several expressions for $\\kappa$ exist, e.g. the Bennet-Chandler or the positive flux version.\n", + "\n", + "Here, we demonstrate how rate constants can be calculated in OpenPathSampling with the `ReactiveFluxSimulation` and `ReactiveFluxAnalysis` classes. These implement the *effective positive flux* method which is closely related to transition state theory but takes into account barrier recrossings. The above expression is modified to\n", + "\n", + "$$ k_{AB}^{EPF} = \\left< \\dot{\\lambda_0} \\, \\theta(\\dot{\\lambda_0}) \\, \\chi(x_0) \\right>_{\\lambda_0 = \\lambda^*} \\cdot \\frac{e^{-\\beta F(\\lambda^*)}}{\\int_{-\\infty}^{\\lambda^*} e^{-\\beta F(\\lambda')} d\\lambda'}$$\n", + "\n", + "where the first factor (\"*flux*\") is calculated via a shooting algorithm with starting points $x_0$ at the dividing surface. Backward and forward shots are carried out and the function $\\chi$ guarantees that barrier recrossings are correctly handled in the following way: for a trajectory started in $x_0$ the function $\\chi(x_0)$ evaluates to $1$ if the backward shot reaches $A$ before crossing $\\lambda^*$ and the forward shot reaches $B$ before $A$, otherwise $\\chi(x_0) = 0$. Note that this method requires a rather strict definition of the states $A$ and $B$ where both represent clearly separated, long-lived stable states. The computation of $\\dot{\\lambda_0}$ is implemented via the gradient of the reaction coordinate $\\lambda$:\n", + "\n", + "$$ \\dot{\\lambda_0} = \\left.\\frac{d \\lambda}{d t}\\right|_{x_0} = \\nabla \\lambda \\cdot \\left.\\frac{d x}{d t}\\right|_{x_0} = \\nabla \\lambda_0 \\cdot v_0\\text{,}$$\n", + "\n", + "where $v_0$ are the temperature dependent, randomly chosen velocities at the shooting point." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example: Trajectory sampling\n", + "\n", + "First, we set up our simple test system, a single particle in a 2-dimensional potential energy surface consisting of two gaussian wells and outer walls. The particle is propagated with the `LangevinBAOABIntegrator`." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "depth = -0.7\n", + "width = 5.0\n", + "\n", + "gaussian_A_depth = depth\n", + "gaussian_A_alpha = np.array([width, width])\n", + "gaussian_A_center = np.array([-0.5, -0.5])\n", + "\n", + "gaussian_B_depth = depth\n", + "gaussian_B_alpha = np.array([width, width])\n", + "gaussian_B_center = np.array([0.5, 0.5])\n", + "\n", + "pes = (\n", + " toys.OuterWalls([1.0, 1.0], [0.0, 0.0]) +\n", + " toys.Gaussian(gaussian_A_depth, gaussian_A_alpha, gaussian_A_center) +\n", + " toys.Gaussian(gaussian_B_depth, gaussian_B_alpha, gaussian_B_center)\n", + ")\n", + "\n", + "topology = toys.Topology(\n", + " n_atoms = 1,\n", + " n_spatial = 2,\n", + " masses = [1.0],\n", + " pes = pes\n", + ")\n", + "\n", + "dt = 0.02\n", + "temperature = 0.1\n", + "gamma = 2.5\n", + "integ = toys.LangevinBAOABIntegrator(dt, temperature, gamma)\n", + "options = {\n", + " 'integ' : integ,\n", + " 'n_frames_max' : 5000,\n", + " 'n_steps_per_frame' : 1\n", + "}\n", + "\n", + "toy_eng = toys.Engine(\n", + " options = options,\n", + " topology = topology\n", + ")\n", + "toy_eng.initialized = True\n", + "paths.PathMover.engine = toy_eng" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Furthermore we need a method to define states $A$ and $B$, we use circles around the respective gaussian well centers:" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "def circle2D(snapshot, center):\n", + " import math\n", + " return math.sqrt((snapshot.xyz[0][0]-center[0])**2 + (snapshot.xyz[0][1]-center[1])**2)\n", + "\n", + "cv_A = paths.CoordinateFunctionCV(name=\"cv_A\", f=circle2D, center=gaussian_A_center)\n", + "cv_B = paths.CoordinateFunctionCV(name=\"cv_B\", f=circle2D, center=gaussian_B_center)\n", + "\n", + "state_A = paths.CVDefinedVolume(cv_A, 0.0, 0.1)\n", + "state_B = paths.CVDefinedVolume(cv_B, 0.0, 0.1)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Given the symmetry of the system the dividing surface is the line $g$ defined by\n", + "$$g: x - y = 0\\,\\text{.}$$\n", + "Thus, as a reaction coordinate we can use the distance of the particle position $\\vec{r}$ to the center of $A$ normalized by the total distance to both gaussian centers $\\vec{a}, \\vec{b}$:\n", + "$$\\lambda(\\vec{r}) = \\frac{\\left|\\vec{r} - \\vec{a}\\right|}{\\left|\\vec{r} - \\vec{a}\\right| + \\left|\\vec{r} - \\vec{b}\\right|}\\,\\text{.}$$\n", + "This definition will provide $\\lambda = 0.5$ everywhere on the dividing surface and $\\lambda$ will decrease/increase further along paths towards A/B, respectively." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "def flambda(snapshot, center_A, center_B):\n", + " import math\n", + " x = snapshot.xyz[0][0]\n", + " y = snapshot.xyz[0][1]\n", + " dist_A = math.sqrt((x - center_A[0])**2 + (y - center_A[1])**2) \n", + " dist_B = math.sqrt((x - center_B[0])**2 + (y - center_B[1])**2)\n", + " return dist_A / (dist_A + dist_B)\n", + "\n", + "rc = paths.CoordinateFunctionCV(name=\"rc\", f=flambda,\n", + " center_A=gaussian_A_center,\n", + " center_B=gaussian_B_center)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next the initial snapshots are randomly chosen along the dividing surface according to their Boltzmann weight $e^{-\\beta E(x_0)}$ (rejection sampling). Usually these configurations are available from a preceding simulation, e.g. umbrella sampling." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "def Epot(pos):\n", + " toy_eng.positions = np.array([pos[0], pos[1]])\n", + " return pes.V(toy_eng)\n", + "\n", + "# Increase this number to get better statistics!\n", + "num_points = 10\n", + "points = []\n", + "p_max = np.exp(-Epot([0.0, 0.0])/temperature)\n", + "while len(points) < num_points:\n", + " x = np.random.uniform(-1.0, 1.0)\n", + " p = np.random.uniform(0.0, p_max)\n", + " if p < np.exp(-Epot([x, -x])/temperature):\n", + " points += [np.array([[x, -x]])]\n", + "\n", + "template = toys.Snapshot(\n", + " coordinates = np.array([[0.0, 0.0]]),\n", + " velocities = np.array([[0.0, 0.0]]),\n", + " engine = toy_eng\n", + ")\n", + "\n", + "snapshots = [template.copy_with_replacement(coordinates=point) for point in points]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's plot the potential energy and the corresponding weight along the dividing surface:" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Text(0, 0.5, 'exp(-Epot(x, -x) / T)')" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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770Tn7imT49aVa3INePl04bZxKhRcPDBsHat1Y87Dp54IkiylcesWQNPPw0332wBgcPUrWtxhy+/3AICO9Hx1VeW3+3JJ4PbNE737nDllXD44bVIS5JL/PabOXB8/73V27e3qf6NNopSVY3JtWlDN17ZwqRJsMcesHy51bffHj76qMb5uXKVkhJ47TXrICdMSHyvTh3zTLziijREEncqZfJkuOEG800o3WX06QN//zvsv39BPGclMmUK7Lxz8Hfbsye8/35OeiDmmvHKfReZfODbb+GAA4I/gM03t1wPBWa4wAzUIYfYA+yYMWbP45SUwFNPQbducMQR5obvpJdx4+DAA61Pfv75RMO1997wzjvw8cd2+xac4QIbbj73XDDU/PxzOOoom0pw0oobr6j57Tfo3x8WLLD6euvBm29C27bR6ooYEUt5MXYsfPAB/OUvie+/9JINTg880LbaOKlDFd57z77/nXe2FCRhDjjADNY775gBK0ijFeaAA8x9Ns7o0eZamWezWllH1ItuqT5yymHjt98s10M4a+tHH0WtKmuZMEH14IPLOgjEA7mOHRu1wtympET19dctAkp5cQePPNJjVFbKVVclfmnnnptTsdDIMYeNyAWk+sgZ47Vggep22yX2Di++GLWqnGDyZNWjjrKvrHQnu9tuqqNH51SfETlr16o+/7xqz55lv8+iIouKlGeRkNJDSYnqqacmfoFnnZUzcdDceLnxqppffrHI8GHDNWJE1KpyjhkzrGMtKirb6fburTpypBuxyli92lzaO3cu+/3Vr2+u8N98E7XKHGPNmsRA2qA6eHBOGDA3Xm68KuennxLzA4nkZYTqTDJ7tuppp1l08tKdcPfuNqrIgb4jY/z5pyUTbdeu7PfVqJFtOp47N2qVOcyaNarHHpv4xZ56qr2exbjxcuNVMVOnJvYYdeqo/uc/UavKG374QfWvf7Wlw9KdcufOqk88kfX9R1pZsED1H/9QXW+9st9Ps2aql19ukwJOCiguToxCD6r7729PDlmKGy83XuXz8svWQ4QXE55+OmpVecm8eaoXXmhZK0p30ltsoXrXXZbfs1D47jvVc84pP4TT+uurXn+9hetyUkxxsSWuDH/h221nUwVZiBsvN16JrF6tetllWuYxd/ToqJXlPQsW2Ggi/MwQ/gnOO0/166+jVpkeSkpU335b9dBD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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "delta = 0.01\n", + "x = np.arange(-0.81, 0.811, delta)\n", + "y1 = [Epot([x[i], -x[i]]) for i in range(len(x))]\n", + "y2 = [np.exp(-Epot([x[i], -x[i]])/temperature) for i in range(len(x))]\n", + "fig, ax1 = plt.subplots()\n", + "ax1.plot(x, y1, 'b-', lw=3)\n", + "ax1.set_xlabel('x')\n", + "ax1.set_ylabel('Epot(x, -x)', color = 'b')\n", + "ax2 = ax1.twinx()\n", + "ax2.plot(x, y2, 'r-', lw=3)\n", + "ax2.set_ylabel('exp(-Epot(x, -x) / T)', color = 'r')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here is a plot of the current setup with the potential energy surface, the two states A and B, the reaction coordinate and the starting points for the reactive flux shooting." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plot = ToyPlot()\n", + "plot.contour_range = np.arange(-1.5, 1.0, 0.1)\n", + "plot.add_pes(pes)\n", + "plot.add_states([state_A, state_B])\n", + "fig = plot.plot()\n", + "\n", + "ax = fig.get_axes()[0]\n", + "ax.plot([p[0][0] for p in points], [p[0][1] for p in points],'or')\n", + "\n", + "delta = 0.025\n", + "x = np.arange(-1.1, 1.1, delta)\n", + "y = np.arange(-1.1, 1.1, delta)\n", + "X, Y = np.meshgrid(x, y)\n", + "p_xy = [np.array([[i[0], i[1]]]) for i in np.array([X.flatten(), Y.flatten()]).T]\n", + "template = toys.Snapshot(\n", + " coordinates = np.array([[0.0, 0.0]]),\n", + ")\n", + "P = [template.copy_with_replacement(coordinates=xy) for xy in p_xy]\n", + "Z = np.array([flambda(p, gaussian_A_center, gaussian_B_center) for p in P]).reshape(len(X), len(X[0]))\n", + "levels = np.arange(0.0,1.0,0.1)\n", + "CS = ax.contour(X, Y, Z, levels=levels, cmap=cm.viridis)\n", + "manual_locations = [(-0.4, -0.4), (-0.3, -0.3), (-0.2, -0.2), (-0.1, -0.1), (0.6, -0.6),\n", + " (0.1, 0.1),(0.2, 0.2), (0.3, 0.3), (0.4, 0.4)]\n", + "ax.clabel(CS, inline=1, fontsize=12, manual=manual_locations)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Finally, we need a randomizer for velocities and a storage object:" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "randomizer = paths.RandomVelocities(1.0 / temperature)\n", + "storage = paths.Storage(\"rf-2d.nc\", mode=\"w\", template=template)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now all ingredients are combined to form the reactive flux simulation:" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "simulation = paths.ReactiveFluxSimulation(\n", + " storage = storage,\n", + " engine = toy_eng,\n", + " states = [state_A, state_B],\n", + " randomizer = randomizer,\n", + " initial_snapshots = snapshots,\n", + " rc = rc\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Upon calling the `run` method the trajectories are harvested and saved." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Working on snapshot 10 / 10; shot 10 / 10\n", + "CPU times: user 16 s, sys: 720 ms, total: 16.8 s\n", + "Wall time: 16.7 s\n" + ] + } + ], + "source": [ + "%%time\n", + "# Increase this number to get better statistics!\n", + "n_per_snapshot = 10\n", + "simulation.run(n_per_snapshot=n_per_snapshot)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's plot some of the obtained trajectories (one per initial snapshot):" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plot = ToyPlot()\n", + "plot.contour_range = np.arange(-1.5, 1.0, 0.1)\n", + "plot.add_pes(pes)\n", + "plot.add_states([state_A, state_B])\n", + "fig = plot.plot([s.change.trials[-1].trajectory for s in storage.steps[::n_per_snapshot]])\n", + "ax = fig.get_axes()[0]\n", + "ax.plot([p[0][0] for p in points], [p[0][1] for p in points],'oy')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Check whether the maximum trajectory length (5000) is never used:" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "476" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "max([len(s.change.trials[-1].trajectory) for s in storage.steps])" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "storage.close()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example: Reactive Flux Analysis\n", + "\n", + "Given the data from the reactive flux simulation we can now analyze the harvested trajectories. First, open the data file with the previously generated trajectories:" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [], + "source": [ + "storage = paths.Storage(\"rf-2d.nc\", \"r\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To carry out the reactive flux analysis the gradient of the reaction coordinate is required. Given $\\lambda(\\vec{r})$ in the reactive flux simulation section we compute:\n", + "$$\\vec{\\nabla}\\lambda(\\vec{r}) = \\frac{\\frac{\\left|\\vec{r} - \\vec{b}\\right|}{\\left|\\vec{r} - \\vec{a}\\right|}\\left(\\vec{r} - \\vec{a}\\right)-\\frac{\\left|\\vec{r} - \\vec{a}\\right|}{\\left|\\vec{r} - \\vec{b}\\right|}\\left(\\vec{r} - \\vec{b}\\right)}{\\left(\\left|\\vec{r} - \\vec{a}\\right| + \\left|\\vec{r} - \\vec{b}\\right|\\right)^2}\\,\\text{,}$$\n", + "which simplifies at the dividing surface $\\left|\\vec{r} - \\vec{a}\\right| = \\left|\\vec{r} - \\vec{b}\\right|$ to:\n", + "$$\\vec{\\nabla}\\lambda(\\vec{r}) = \\frac{\\vec{b} - \\vec{a}}{4 \\left|\\vec{r} - \\vec{a}\\right|^2}\\,\\text{.}$$\n" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "def dflambda(snapshot, center_A, center_B):\n", + " import numpy as np\n", + " x = snapshot.xyz[0][0]\n", + " y = snapshot.xyz[0][1]\n", + " dist2_A = (x - center_A[0])**2 + (y - center_A[1])**2\n", + " return np.array([(center_B - center_A) / (4 * dist2_A)])\n", + "\n", + "gradient = paths.CoordinateFunctionCV(name=\"gradient\", f=dflambda,\n", + " center_A=gaussian_A_center, center_B=gaussian_B_center)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now start the reactive flux analysis and extract the results:" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "453fafd9a92f4e02a3cbe32d677fd12b", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "HBox(children=(FloatProgress(value=0.0), HTML(value='')))" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "CPU times: user 1.14 s, sys: 371 µs, total: 1.14 s\n", + "Wall time: 1.13 s\n" + ] + } + ], + "source": [ + "%%time\n", + "results = paths.ReactiveFluxAnalysis(steps=storage.steps, gradient=gradient)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The `flux()` method extracts the total *flux*\n", + "\n", + "$$\\left< \\dot{\\lambda_0} \\, \\theta(\\dot{\\lambda_0}) \\, \\chi(x_0) \\right>_{\\lambda_0 = \\lambda^*}$$\n", + "\n", + "averaged over all configurations and a dictionary with per-snapshot values." + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.018745199301442552" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "flux, flux_dict = results.flux()\n", + "flux" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "It's possible to extract raw data for each snapshot with this method (note: ordering may be different than in the original `snapshots` list):" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Counter({'accepted': 0, 'rejected': 10, 'sumflux': 0.0})" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "snapshot = list(flux_dict.keys())[0]\n", + "results[snapshot]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here, the `accepted` and `rejected` counters show how often trajectories from this starting point were accepted and the `sumflux` value is\n", + "$$\n", + "\\sum_{i=0}^{n} \\dot{\\lambda_{0i}} \\, \\theta(\\dot{\\lambda_{0i}}) \\, \\chi(x_{0i}) \\text{,}\n", + "$$\n", + "where $n$ is the number of trial moves and $x_{0i}$ is the initial configuration with randomly selected velocities of trial move $i$. Consequently, the average for this snapshot is:" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.0" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "flux_dict[snapshot]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The `flux_histogram` method can be used to display the results with any bin selection:" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/home/andi/anaconda2/envs/py36/lib/python3.6/site-packages/numpy/lib/stride_tricks.py:257: UserWarning: Warning: converting a masked element to nan.\n", + " args = [np.array(_m, copy=False, subok=subok) for _m in args]\n" + ] + }, + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "hash1D = lambda snap: snap.xyz[0][0]\n", + "bins1D = [-0.525 + i * 0.05 for i in range(22)]\n", + "hist, bins_x = results.flux_histogram(hash1D, bins1D)\n", + "plt.bar(x=bins1D[:-1], height=hist, width=[bins1D[i+1]-bins1D[i] for i in range(len(bins1D)-1)], align=\"edge\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Also 2-dimensional histograms are possible:" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "hash2D = lambda snap: (snap.xyz[0][0], snap.xyz[0][1])\n", + "bins2D = [-0.525 + i * 0.05 for i in range(22)]\n", + "hist, bins_x, bins_y = results.flux_histogram(hash2D, bins2D)\n", + "plt.pcolor(bins_x, bins_y, hist.T)\n", + "plt.clim(0.0, 0.06)\n", + "plt.colorbar();" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "anaconda-cloud": {}, + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.8" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/openpathsampling/__init__.py b/openpathsampling/__init__.py index e2ccdb7a1..49060f71a 100644 --- a/openpathsampling/__init__.py +++ b/openpathsampling/__init__.py @@ -42,6 +42,10 @@ ShootingPointAnalysis, SnapshotByCoordinateDict ) +from .analysis.reactive_flux_analysis import ( + ReactiveFluxAnalysis +) + from .analysis.trajectory_transition_analysis import ( TrajectoryTransitionAnalysis, TrajectorySegmentContainer @@ -76,6 +80,7 @@ from .movechange import ( EmptyMoveChange, ConditionalSequentialMoveChange, + NonCanonicalConditionalSequentialMoveChange, MoveChange, PartialAcceptanceSequentialMoveChange, RandomChoiceMoveChange, SampleMoveChange, SequentialMoveChange, KeepLastSampleMoveChange, @@ -90,6 +95,7 @@ from .pathmover import ( RandomChoiceMover, PathMover, ConditionalSequentialMover, + NonCanonicalConditionalSequentialMover, PartialAcceptanceSequentialMover, BackwardShootMover, ForwardShootMover, BackwardExtendMover, ForwardExtendMover, MinusMover, SingleReplicaMinusMover, PathReversalMover, @@ -108,7 +114,8 @@ from .pathsimulators import ( PathSimulator, FullBootstrapping, Bootstrapping, PathSampling, MCStep, - CommittorSimulation, DirectSimulation, ShootFromSnapshotsSimulation + CommittorSimulation, ReactiveFluxSimulation, DirectSimulation, + ShootFromSnapshotsSimulation ) from .sample import Sample, SampleSet diff --git a/openpathsampling/analysis/reactive_flux_analysis.py b/openpathsampling/analysis/reactive_flux_analysis.py new file mode 100644 index 000000000..4c3874a01 --- /dev/null +++ b/openpathsampling/analysis/reactive_flux_analysis.py @@ -0,0 +1,229 @@ +import openpathsampling as paths +import collections +import pandas as pd +import numpy as np +import matplotlib.pyplot as plt + +from openpathsampling.analysis import ShootingPointAnalysis + +class ReactiveFluxAnalysis(ShootingPointAnalysis): + """ + Container and methods for reactive flux analysis. + + Parameters + ---------- + steps : iterable of :class:`.MCStep` or None + input MC steps to analyze; if None, no analysis performed + gradient : :class:`.CollectiveVariable` + gradient of the reaction coordinate + """ + + def __init__(self, steps, gradient): + # ReactiveFluxAnalysis is inherited from ShootingPointAnalysis but + # overrides the __init__ function. Thus, the call to the + # SnapshotByCoordinateDict __init__ function has to be repeated + # here (ugly)! + paths.SnapshotByCoordinateDict.__init__(self) + #super(ShootingPointAnalysis, self).__init__() + self.gradient = gradient + if steps is not None: + self.analyze(steps) + + def analyze_single_step(self, step): + """ + Adding a single step. + + Parameters + ---------- + step : :class:`.MCStep` + the step to analyze and add to this analysis + + Returns + ------- + list of :class:`.Volume` + the states which are identified as new final states from this + move + """ + key = self.step_key(step) + if key is not None: + # check if trajectory has been accepted + accepted = step.change.canonical.accepted + + dldt = 0.0 + # if yes, calculate time derivative of reaction coordinate + if accepted: + # get shooting point and extract velocities + snapshot = step.change.trials[0].trajectory[-1] + v = snapshot.velocities + + # calculate gradient of reaction coordinate with respect + # to shooting point coordinates + dldx = self.gradient(snapshot) + + # calculate scalar product of gradient and velocities + # = time derivative of reaction coordinate. + # CAUTION: dldx and v are lists of vectors, for each particle + # there is one pair of gradient and velocity vectors. Thus, + # we have to sum over all particles in the end. + dldt = sum([np.dot(a, b.T) for a, b in zip(dldx, v)]) + + # set trial information in a collections.Counter dictionary + total = collections.Counter( + {"accepted" : int(accepted), + "rejected" : int(not accepted), + "sumflux" : dldt} + ) + # sum up Counter for this snapshot + try: + self[key].update(total) + # if Counter does not exist create it + except KeyError: + self[key] = total + else: + total = {} + + return [s for s in total.keys()] + + def flux(self, label_function=None): + """Calculate point-by-point and total flux. + + This calculates the average flux per initial snapshot and the total + flux averaged over all of these configurations. Use `flux_histogram` + for a histogram version. + + Parameters + ---------- + label_function : callable + the keys for the dictionary that is returned are + `label_function(snapshot)`; default `None` gives the snapshot as + key. + + Returns + ------- + tuple + format is (flux, dict) + flux : float + total flux averaged over all shooting points + dict : dictionary + flux per snapshot, mapping labels given by label_function + to the flux value + """ + # set default label_function to identity + if label_function is None: + label_function = lambda s : s + + # initialize result variables and counter + results = {} + flux = 0.0 + num_trials = 0 + + # loop over all keys (this is a dictionary with snapshots + # represented by coordinate hashes!) + for k in self: + # exclude the gradient function + #if k is self.gradient: + # continue + + # set the output key (if label_function=None it is the snapshot) + out_key = label_function(k) + + # look up the collection.Counter object for this snapshot + counter_k = self[k] + + # sum up the total flux and count trial moves + flux = flux + counter_k["sumflux"] + num_trials = num_trials + \ + (counter_k["accepted"] + counter_k["rejected"]) + + # calculate the average flux for this snapshot + flux_per_snap = float(counter_k["sumflux"]) \ + / (counter_k["accepted"] + counter_k["rejected"]) + + # add the flux per snapshot to the output dictionary + results[out_key] = flux_per_snap + + # return tuple with total flux and per-snapshot flux dicationary + return (flux / float(num_trials), results) + + @staticmethod + def _get_key_dim(key): + try: + ndim = len(key) + except TypeError: + ndim = 1 + if ndim > 2 or ndim < 1: + raise RuntimeError("Histogram key dimension {0} > 2 or {0} < 1 " + + "(key: {1})".format(ndim, key)) + return ndim + + def flux_histogram(self, new_hash, bins=10): + """Calculate the histogrammed version of the flux. + + Parameters + ---------- + new_hash : callable + values are histogrammed in bins based on new_hash(snapshot) + bins : see numpy.histogram + bins input to numpy.histogram + + Returns + ------- + tuple : + hist, bins like numpy.histogram, where hist is the average flux + per histogram bin and bins is the bins output from numpy.histogram. + 2-tuple in the case of 1D histogram, 3-tuple in the case of 2D + histogram + """ + # rehash configurations according to provided hash function + rehashed = self.rehash(new_hash) + r_store = rehashed.store + + # collect total number of shots per configuration + shots_dict = {k : r_store[k]["accepted"] + + r_store[k]["rejected"] for k in r_store} + + # collect total flux per configuration + sflux_dict = {k : r_store[k]["sumflux"] for k in r_store} + + # determine dimension of histogram + ndim = self._get_key_dim(list(r_store.keys())[0]) + + # create histograms + if ndim == 1: + (shots_hist, b) = np.histogram(list(shots_dict.keys()), + weights=list(shots_dict.values()), + bins=bins) + (sflux_hist, b) = np.histogram(list(sflux_dict.keys()), + weights=list(sflux_dict.values()), + bins=bins) + b_list = [b] + elif ndim == 2: + (shots_hist, b_x, b_y) = np.histogram2d( + x=[k[0] for k in shots_dict], + y=[k[1] for k in shots_dict], + weights=list(shots_dict.values()), + bins=bins + ) + (sflux_hist, b_x, b_y) = np.histogram2d( + x=[k[0] for k in sflux_dict], + y=[k[1] for k in sflux_dict], + weights=list(sflux_dict.values()), + bins=bins + ) + b_list = [b_x, b_y] + + # divide histograms to determine final result + flux_hist = np.ma.true_divide( + sflux_hist, + np.ma.array(shots_hist,mask=shots_hist==0) + ) + + return tuple([flux_hist] + b_list) + + def committor(self, *args, **kwargs): + raise NotImplementedError("The reactive flux analysis does not" + + " calculate the committor.") + + def committor_histogram(self, *args, **kwargs): + raise NotImplementedError("The reactive flux analysis does not" + + "calculate the committor.") diff --git a/openpathsampling/movechange.py b/openpathsampling/movechange.py index 666f819d1..925bd8b9a 100644 --- a/openpathsampling/movechange.py +++ b/openpathsampling/movechange.py @@ -477,6 +477,18 @@ def __str__(self): MoveChange._indent('\n'.join(map(str, self.subchanges))) +class NonCanonicalConditionalSequentialMoveChange( + ConditionalSequentialMoveChange): + """ Special move change for reactive flux simulation. + + This move change inherits from :class:`.ConditionalSequentialMoveChange` + and returns the outcome of the last subchange. + """ + @property + def canonical(self): + return self.subchanges[-1] + + class SubMoveChange(MoveChange): """ A helper MoveChange that represents the application of a submover. diff --git a/openpathsampling/pathmover.py b/openpathsampling/pathmover.py index edbdcc669..32c39ff94 100644 --- a/openpathsampling/pathmover.py +++ b/openpathsampling/pathmover.py @@ -1979,6 +1979,25 @@ def move(self, sample_set): movechanges, mover=self) +class NonCanonicalConditionalSequentialMover(ConditionalSequentialMover): + """ Special mover for reactive flux simulation. + + This mover inherits from :class:`.ConditionalSequentialMover` and + alters only the `move` method to return the output of the corresponding + :class:`.NonCanonicalConditionalSequentialMoveChange`. + """ + _is_canonical = False + + def move(self, sample_set): + change = super(NonCanonicalConditionalSequentialMover, + self).move(sample_set) + return paths.NonCanonicalConditionalSequentialMoveChange( + subchanges=change.subchanges, + mover=change.mover, + details=change.details + ) + + # class ReplicaIDChangeMover(PathMover): # """ # Changes the replica ID for a path. diff --git a/openpathsampling/pathsimulators/__init__.py b/openpathsampling/pathsimulators/__init__.py index d028f3dd1..e2061a746 100644 --- a/openpathsampling/pathsimulators/__init__.py +++ b/openpathsampling/pathsimulators/__init__.py @@ -5,4 +5,5 @@ from .shoot_snapshots import ( ShootFromSnapshotsSimulation, CommittorSimulation ) +from .reactive_flux import ReactiveFluxSimulation diff --git a/openpathsampling/pathsimulators/reactive_flux.py b/openpathsampling/pathsimulators/reactive_flux.py new file mode 100644 index 000000000..8397a1dfb --- /dev/null +++ b/openpathsampling/pathsimulators/reactive_flux.py @@ -0,0 +1,112 @@ +import logging +import numpy as np +import openpathsampling as paths + +logger = logging.getLogger(__name__) +from .shoot_snapshots import ShootFromSnapshotsSimulation + +class ReactiveFluxSimulation(ShootFromSnapshotsSimulation): + """ Reactive Flux simulations (effective positive flux). + + Parameters + ---------- + storage : :class:`.Storage` + the file to store simulations in + engine : :class:`.DynamicsEngine` + the dynamics engine to use to run the simulation + states : list of :class:`.Volume` + the volumes representing the stable states, first state A then state B + randomizer : :class:`.SnapshotModifier` + the method used to modify the input snapshot before each shot + initial_snapshots : list of :class:`.Snapshot` + initial snapshots to use + rc : :class:`.CollectiveVariable` + reaction coordinate + """ + def __init__(self, storage, engine=None, states=None, randomizer=None, + initial_snapshots=None, rc=None): + + # state definition + self.states = states + state_A = states[0] + state_B = states[1] + + # get min/max reaction coordinate of initial snapshots + self.rc = rc + rc_array = np.array(self.rc(initial_snapshots)) + rc_min = np.nextafter(rc_array.min(), -np.inf) + rc_max = np.nextafter(rc_array.max(), np.inf) + + # define reaction coordinate region of initial snapshots + # = starting_volume + self.dividing_surface = paths.CVDefinedVolume(self.rc, rc_min, rc_max) + + # define volume between state A and the dividing surface (including A) + self.volume_towards_A = paths.CVDefinedVolume(self.rc, -np.inf, rc_max) + + # shoot backward until we hit A but never cross the dividing surface + backward_ensemble = paths.SequentialEnsemble([ + paths.AllInXEnsemble(state_A) & paths.LengthEnsemble(1), + paths.AllInXEnsemble(self.volume_towards_A - state_A) + ]) + + # shoot forward until we hit state B without hitting A first + # caution: since the mover will consist of backward and forward + # shoot in sequence, the starting ensemble for the forward + # shoot is the output of the backward shoot, i.e. a + # trajectory that runs from A to the dividing surface and + # not just a point there. + forward_ensemble = paths.SequentialEnsemble([ + paths.AllInXEnsemble(state_A) & paths.LengthEnsemble(1), + paths.AllOutXEnsemble(state_A | state_B), + paths.AllInXEnsemble(state_B) & paths.LengthEnsemble(1), + ]) + + super(ReactiveFluxSimulation, self).__init__( + storage=storage, + engine=engine, + starting_volume=self.dividing_surface, + forward_ensemble=forward_ensemble, + backward_ensemble=backward_ensemble, + randomizer=randomizer, + initial_snapshots=initial_snapshots + ) + + # create backward mover (starting from single point) + self.backward_mover = paths.BackwardExtendMover( + ensemble=self.starting_ensemble, + target_ensemble=self.backward_ensemble + ) + + # create forward mover (starting from the backward ensemble) + self.forward_mover = paths.ForwardExtendMover( + ensemble=self.backward_ensemble, + target_ensemble=self.forward_ensemble + ) + + # create mover combining forward and backward shooting, + # abort if backward mover fails + self.mover = paths.NonCanonicalConditionalSequentialMover([ + self.backward_mover, + self.forward_mover + ]) + + def to_dict(self): + ret_dict = { + 'states' : self.states, + 'dividing_surface' : self.dividing_surface, + 'volume_towards_A' : self.volume_towards_A, + 'rc' : self.rc + } + return ret_dict + + @classmethod + def from_dict(cls, dct): + rf = cls.__new__(cls) + + # replace automatically created attributes with stored ones + rf.states = dct['states'] + rf.dividing_surface = dct['dividing_surface'] + rf.volume_towards_A = dct['volume_towards_A'] + rf.rc = dct['rc'] + return rf diff --git a/openpathsampling/tests/test_pathsimulator.py b/openpathsampling/tests/test_pathsimulator.py index 755db0de2..83178ea19 100644 --- a/openpathsampling/tests/test_pathsimulator.py +++ b/openpathsampling/tests/test_pathsimulator.py @@ -8,7 +8,7 @@ CalvinistDynamics, make_1d_traj, assert_items_equal) from nose.tools import (assert_equal, assert_not_equal, raises, - assert_almost_equal, assert_true) + assert_almost_equal, assert_true, assert_greater) # from nose.plugins.skip import SkipTest from openpathsampling.pathsimulators import * @@ -422,6 +422,128 @@ def test_randomized_committor(self): assert_true(counts['None-Right'] > 0) assert_equal(sum(counts.values()), 50) + +class TestReactiveFluxSimulation(object): + def setup(self): + # PES is one-dimensional linear slope (y(x) = x) + pes = toys.LinearSlope(m=[-1.0], c=[0.0]) + # one particle with mass 1.0 + topology = toys.Topology(n_spatial=1, masses=[1.0], pes=pes) + integrator = toys.LeapfrogVerletIntegrator(0.02) + options = { + 'integ' : integrator, + 'n_frames_max' : 1000, + 'n_steps_per_frame' : 5 + } + self.engine = toys.Engine(options=options, topology=topology) + # test uses three snapshots with different velocities + # 0: direction ok, velocity too low => falls back to dividing surface + # 1: wrong direction => backward shot towards B + # 2: direction ok, velocity high enough => successfull new trajectory + self.initial_snapshots = [toys.Snapshot( + coordinates=np.array([[0.0]]), + velocities=np.array([[1.0]]), + engine=self.engine), + toys.Snapshot( + coordinates=np.array([[0.0]]), + velocities=np.array([[-1.0]]), + engine=self.engine), + toys.Snapshot( + coordinates=np.array([[0.0]]), + velocities=np.array([[2.0]]), + engine=self.engine)] + # reaction coordinate is just x coordinate + rc = paths.FunctionCV("Id", lambda snap : snap.coordinates[0][0]) + # state A: [-inf, -1] + self.state_A = paths.CVDefinedVolume(rc, float("-inf"), -1.0) + # area between A and dividing surface: [-1, 0] + self.towards_A = paths.CVDefinedVolume(rc, -1.0, 0.0) + # state B: [1, inf] + self.state_B = paths.CVDefinedVolume(rc, 1.0, float("inf")) + # define state labels + self.state_labels = { + "A" : self.state_A, + "B" : self.state_B, + "ToA": self.towards_A, + "None" :~(self.state_A | self.state_B | self.towards_A)} + + # velocities are not randomized + randomizer = paths.NoModification() + + self.filename = data_filename("rf_test.nc") + self.storage = paths.Storage(self.filename, mode="w") + self.storage.save(self.initial_snapshots) + + self.simulation = ReactiveFluxSimulation( + storage=self.storage, + engine=self.engine, + states=[self.state_A, self.state_B], + randomizer=randomizer, + initial_snapshots=self.initial_snapshots, + rc=rc) + self.simulation.output_stream = open(os.devnull, 'w') + + def teardown(self): + if os.path.isfile(self.filename): + os.remove(self.filename) + paths.EngineMover.default_engine = None + + def test_initialization(self): + sim = self.simulation + assert_equal(len(sim.initial_snapshots), 3) + assert_true(isinstance(sim.mover, paths.ConditionalSequentialMover)) + + def test_simulation_run(self): + self.simulation.run(n_per_snapshot=1) + assert_equal(len(self.simulation.storage.steps), 3) + + # snapshot 0, fails at backward shot (falls back to dividing surface) + step = self.simulation.storage.steps[0] + # last mover should be backward_mover of simulation + assert_equal(step.change.canonical.mover, + self.simulation.backward_mover) + # active ensemble should be starting ensemble + assert_equal(step.active[0].ensemble, + self.simulation.starting_ensemble) + # analyze trajectory, last step should be in 'None', the rest in 'ToA' + traj = step.change.trials[0].trajectory + traj_summary = traj.summarize_by_volumes(self.state_labels) + assert_equal(traj_summary[0], ('None', 1)) + assert_equal(traj_summary[1][0], 'ToA') + assert_greater(traj_summary[1][1], 1) + + # snapshot 1, fails at backward shot (wrong direction) + step = self.simulation.storage.steps[1] + # last mover should be backward_mover of simulation + assert_equal(step.change.canonical.mover, + self.simulation.backward_mover) + # active ensemble should be starting ensemble + assert_equal(step.active[0].ensemble, + self.simulation.starting_ensemble) + # analyze trajectory, backwards trajectory reaches immediately 'None' + traj = step.change.trials[0].trajectory + traj_summary = traj.summarize_by_volumes(self.state_labels) + assert_equal(traj_summary[0], ('None', 2)) + + # snapshot 2, is accepted + step = self.simulation.storage.steps[2] + # last mover should be forward_mover of simulation + assert_equal(step.change.canonical.mover, + self.simulation.forward_mover) + # active ensemble should not be starting ensemble + assert_not_equal(step.active[0].ensemble, + self.simulation.starting_ensemble) + # analyze active trajectory, trajectory should start in 'A', end in 'B' + traj = step.active[0].trajectory + traj_summary = traj.summarize_by_volumes(self.state_labels) + assert_equal(traj_summary[0], ('A', 1)) + assert_equal(traj_summary[1][0], 'ToA') + assert_greater(traj_summary[1][1], 1) + assert_equal(traj_summary[2][0], 'None') + assert_greater(traj_summary[2][1], 1) + assert_equal(traj_summary[3], ('B', 1)) + + class TestDirectSimulation(object): def setup(self): pes = toys.HarmonicOscillator(A=[1.0], omega=[1.0], x0=[0.0]) diff --git a/openpathsampling/tests/test_reactive_flux_analysis.py b/openpathsampling/tests/test_reactive_flux_analysis.py new file mode 100644 index 000000000..d2063568c --- /dev/null +++ b/openpathsampling/tests/test_reactive_flux_analysis.py @@ -0,0 +1,214 @@ +from __future__ import division +from __future__ import absolute_import +from builtins import zip +from builtins import range +from past.utils import old_div +from builtins import object +from nose.tools import (assert_equal, assert_not_equal, raises, + assert_almost_equal, assert_true, assert_in, + assert_raises) +from nose.plugins.skip import SkipTest +from numpy.testing import assert_array_almost_equal +from .test_helpers import (make_1d_traj, data_filename, assert_items_equal, + assert_same_items) + +import openpathsampling as paths +import openpathsampling.engines as peng +import numpy as np +import os + +#from openpathsampling.analysis.shooting_point_analysis import * + +import logging +logging.getLogger('openpathsampling.initialization').setLevel(logging.CRITICAL) +logging.getLogger('openpathsampling.storage').setLevel(logging.CRITICAL) +logging.getLogger('openpathsampling.netcdfplus').setLevel(logging.CRITICAL) +logging.getLogger('openpathsampling.ensemble').setLevel(logging.CRITICAL) +logging.getLogger('openpathsampling.engines').setLevel(logging.CRITICAL) +logging.getLogger('openpathsampling.pathmover').setLevel(logging.CRITICAL) +logging.getLogger('openpathsampling.sample').setLevel(logging.CRITICAL) + + +class TestReactiveFluxAnalysis(object): + def setup(self): + import openpathsampling.engines.toy as toys + # PES is one-dimensional linear slope (y(x) = -x) + pes = toys.LinearSlope(m=[-1.0], c=[0.0]) + # one particle with mass 1.0 + topology = toys.Topology(n_spatial=1, masses=[1.0], pes=pes) + integrator = toys.LeapfrogVerletIntegrator(0.02) + options = { + 'integ' : integrator, + 'n_frames_max' : 1000, + 'n_steps_per_frame' : 5 + } + self.engine = toys.Engine(options=options, topology=topology) + # test uses snapshots with different velocities and slightly + # different positions (0, -0.001, 0.001). + # 0, 3, 6: direction ok, velocity too low => falls back to dividing + # surface + # 1, 4, 7: wrong direction => backward shot towards B + # 2, 5, 8, 9, 10, 11: direction ok, velocity high enough => successful + # new trajectory + self.initial_snapshots = [toys.Snapshot( + coordinates=np.array([[-0.001]]), + velocities=np.array([[1.0]]), + engine=self.engine), + toys.Snapshot( + coordinates=np.array([[-0.001]]), + velocities=np.array([[-1.0]]), + engine=self.engine), + toys.Snapshot( + coordinates=np.array([[-0.001]]), + velocities=np.array([[4.0]]), + engine=self.engine), + toys.Snapshot( + coordinates=np.array([[0.0]]), + velocities=np.array([[1.0]]), + engine=self.engine), + toys.Snapshot( + coordinates=np.array([[0.0]]), + velocities=np.array([[-1.0]]), + engine=self.engine), + toys.Snapshot( + coordinates=np.array([[0.0]]), + velocities=np.array([[2.0]]), + engine=self.engine), + toys.Snapshot( + coordinates=np.array([[0.001]]), + velocities=np.array([[1.0]]), + engine=self.engine), + toys.Snapshot( + coordinates=np.array([[0.001]]), + velocities=np.array([[-1.0]]), + engine=self.engine), + toys.Snapshot( + coordinates=np.array([[0.001]]), + velocities=np.array([[8.0]]), + engine=self.engine), + toys.Snapshot( + coordinates=np.array([[0.0]]), + velocities=np.array([[5.0]]), + engine=self.engine), + toys.Snapshot( + coordinates=np.array([[0.001]]), + velocities=np.array([[2.0]]), + engine=self.engine), + toys.Snapshot( + coordinates=np.array([[0.001]]), + velocities=np.array([[9.0]]), + engine=self.engine)] + # reaction coordinate is just x coordinate + rc = paths.FunctionCV("Id", lambda snap : snap.coordinates[0][0]) + # state A: [-inf, -1] + self.state_A = paths.CVDefinedVolume(rc, float("-inf"), -1.0) + # area between A and dividing surface: [-1, 0] + self.towards_A = paths.CVDefinedVolume(rc, -1.0, 0.0) + # state B: [1, inf] + self.state_B = paths.CVDefinedVolume(rc, 1.0, float("inf")) + # define state labels + self.state_labels = { + "A" : self.state_A, + "B" : self.state_B, + "ToA": self.towards_A, + "None" :~(self.state_A | self.state_B | self.towards_A)} + + # velocities are not randomized + randomizer = paths.NoModification() + + self.filename = data_filename("rf_test.nc") + self.storage = paths.Storage(self.filename, mode="w") + self.storage.save(self.initial_snapshots) + + self.simulation = paths.ReactiveFluxSimulation( + storage=self.storage, + engine=self.engine, + states=[self.state_A, self.state_B], + randomizer=randomizer, + initial_snapshots=self.initial_snapshots, + rc=rc) + self.simulation.output_stream = open(os.devnull, 'w') + self.simulation.run(n_per_snapshot=1) + self.analysis = None + + def teardown(self): + if os.path.isfile(self.filename): + os.remove(self.filename) + paths.EngineMover.default_engine = None + + def gradient(self, snapshot): + assert_equal(len(snapshot.xyz), 1) + assert_equal(len(snapshot.xyz[0]), 1) + return np.array([[1.0]]) + + def test_analysis(self): + self.storage = paths.Storage(self.filename, mode="r") + self.analysis = paths.ReactiveFluxAnalysis(steps=self.storage.steps, + gradient=self.gradient) + + # check wrong analyze_single_step() argument + empty_list = self.analysis.analyze_single_step(3.1415) + assert_equal(empty_list, []) + + # dictionary with three entries returned (mind: trajectories start from + # x = -0.001, 0.0, 0.001). + assert_equal(len(self.analysis), 3) + + # get total and per-snapshot flux. + flux, flux_dict = self.analysis.flux() + + # analyze counters + for snapshot in flux_dict.keys(): + if snapshot.xyz[0][0] == -0.001: + assert_almost_equal(flux_dict[snapshot], 4.0 / 3.0) + assert_equal(self.analysis[snapshot]["accepted"], 1) + assert_equal(self.analysis[snapshot]["rejected"], 2) + assert_almost_equal(self.analysis[snapshot]["sumflux"], 4.0) + elif snapshot.xyz[0][0] == 0.0: + assert_almost_equal(flux_dict[snapshot], 7.0 / 4.0) + assert_equal(self.analysis[snapshot]["accepted"], 2) + assert_equal(self.analysis[snapshot]["rejected"], 2) + assert_almost_equal(self.analysis[snapshot]["sumflux"], 7.0) + elif snapshot.xyz[0][0] == 0.001: + assert_almost_equal(flux_dict[snapshot], 19.0 / 5.0) + assert_equal(self.analysis[snapshot]["accepted"], 3) + assert_equal(self.analysis[snapshot]["rejected"], 2) + assert_almost_equal(self.analysis[snapshot]["sumflux"], 19.0) + + # check total flux. + assert_almost_equal(flux, 30.0 / 12.0) + + # check 1D histogram + # use only two bins, so results of two snapshots are combined. + hash1D = lambda snap: snap.xyz[0][0] + bins1D = [-0.0015, 0.0005, 0.0015] + hist, bins_x = self.analysis.flux_histogram(hash1D, bins1D) + for b1, b2 in zip(bins1D, bins_x): + assert_almost_equal(b1, b2) + assert_almost_equal(hist[0], 11.0 / 7.0) + assert_almost_equal(hist[1], 19.0 / 5.0) + + # check 2D histogram + # same bins as in 1D example + hash2D = lambda snap: (snap.xyz[0][0], snap.xyz[0][0]) + bins2D = [-0.0015, 0.0005, 0.0015] + hist, bins_x, bins_y = self.analysis.flux_histogram(hash2D, bins2D) + for b1, b2, b3 in zip(bins2D, bins_x, bins_y): + assert_almost_equal(b1, b2) + assert_almost_equal(b1, b3) + assert_almost_equal(hist[0][0], 11.0 / 7.0) + assert_almost_equal(hist[1][1], 19.0 / 5.0) + + # check failure of 3D histogram + hash3D = lambda snap: (snap.xyz[0][0], snap.xyz[0][0], snap.xyz[0][0]) + bins3D = [-0.0015, 0.0005, 0.0015] + assert_raises(RuntimeError, + self.analysis.flux_histogram, + hash3D, + bins3D) + + assert_raises(NotImplementedError, self.analysis.committor) + assert_raises(NotImplementedError, + self.analysis.committor_histogram, + hash1D, + bins1D) From c420649d4d0f061a9fa0fec34c76693a74f3ceaa Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 30 Jul 2020 12:56:47 +0200 Subject: [PATCH 368/464] Add MDTraj JSON codecs (and tests) --- .../experimental/storage/mdtraj_json.py | 48 +++++++++++++ .../experimental/storage/test_custom_json.py | 7 +- .../experimental/storage/test_mdtraj_json.py | 70 +++++++++++++++++++ 3 files changed, 123 insertions(+), 2 deletions(-) create mode 100644 openpathsampling/experimental/storage/mdtraj_json.py create mode 100644 openpathsampling/experimental/storage/test_mdtraj_json.py diff --git a/openpathsampling/experimental/storage/mdtraj_json.py b/openpathsampling/experimental/storage/mdtraj_json.py new file mode 100644 index 000000000..3fe0be240 --- /dev/null +++ b/openpathsampling/experimental/storage/mdtraj_json.py @@ -0,0 +1,48 @@ +from .custom_json import JSONCodec + +try: + import mdtraj as md +except ImportError: + md = None + HAS_MDTRAJ = False +else: + HAS_MDTRAJ = True + +import pandas as pd + +def _check_mdtraj(): + if not HAS_MDTRAJ: + raise RuntimeError("Unable to import MDTraj.") + +def traj_to_dict(obj): + return {'xyz': obj.xyz, + 'topology': obj.topology, + 'time': obj.time, + 'unitcell_lengths': obj.unitcell_lengths, + 'unitcell_angles': obj.unitcell_angles} + +def traj_from_dict(dct): + _check_mdtraj() + dct = {k: v for k, v in dct.items() + if k not in ['__class__', '__module__']} + return md.Trajectory(**dct) + +def topology_to_dict(obj): + dataframe, bonds = obj.to_dataframe() + return {'atoms': dataframe.to_json(), + 'bonds': bonds} + +def topology_from_dict(dct): + _check_mdtraj() + return md.Topology.from_dataframe( + atoms=pd.read_json(dct['atoms']), + bonds=dct['bonds'] + ) + +if HAS_MDTRAJ: + traj_codec = JSONCodec(md.Trajectory, traj_to_dict, traj_from_dict) + top_codec = JSONCodec(md.Topology, topology_to_dict, topology_from_dict) + mdtraj_codecs = [traj_codec, top_codec] +else: + mdtraj_codecs = [] + diff --git a/openpathsampling/experimental/storage/test_custom_json.py b/openpathsampling/experimental/storage/test_custom_json.py index 4ee683645..d01d0d619 100644 --- a/openpathsampling/experimental/storage/test_custom_json.py +++ b/openpathsampling/experimental/storage/test_custom_json.py @@ -32,8 +32,7 @@ def test_object_hook(self): for (obj, dct) in zip(self.objs, self.dcts): assert self.codec.object_hook(dct) == obj - def test_round_trip(self): - encoder, decoder = custom_json_factory([self.codec]) + def _test_round_trip(self, encoder, decoder): for (obj, dct) in zip(self.objs, self.dcts): json_str = json.dumps(obj, cls=encoder) reconstructed = json.loads(json_str, cls=decoder) @@ -41,6 +40,10 @@ def test_round_trip(self): json_str_2 = json.dumps(obj, cls=encoder) assert json_str == json_str_2 + def test_round_trip(self): + encoder, decoder = custom_json_factory([self.codec]) + self._test_round_trip(encoder, decoder) + def test_not_mine(self): # test that the default behavior is obeyed obj = {'test': 5} diff --git a/openpathsampling/experimental/storage/test_mdtraj_json.py b/openpathsampling/experimental/storage/test_mdtraj_json.py new file mode 100644 index 000000000..996b096ee --- /dev/null +++ b/openpathsampling/experimental/storage/test_mdtraj_json.py @@ -0,0 +1,70 @@ +from .mdtraj_json import * +import pytest + +import numpy as np +import numpy.testing as npt + +from .custom_json import bytes_codec, numpy_codec, custom_json_factory +from .test_custom_json import CustomJSONCodingTest + +from openpathsampling.tests.test_helpers import data_filename + +class MDTrajCodingTest(CustomJSONCodingTest): + def setup(self): + if not HAS_MDTRAJ: + pytest.skip() + + self.filename = data_filename('ala_small_traj.pdb') + + def test_default(self): + # custom for handling numpy + for (obj, dct) in zip(self.objs, self.dcts): + default = self.codec.default(obj) + numpy_attrs = [attr for attr, val in dct.items() + if isinstance(val, np.ndarray)] + other_attrs = [attr for attr, val in dct.items() + if not isinstance(val, np.ndarray)] + for attr in numpy_attrs: + npt.assert_array_equal(default[attr], dct[attr]) + for attr in other_attrs: + assert default[attr] == dct[attr] + + def test_round_trip(self): + codecs = [numpy_codec, bytes_codec] + mdtraj_codecs + encoder, decoder = custom_json_factory(codecs) + self._test_round_trip(encoder, decoder) + + +class TestTopologyCoding(MDTrajCodingTest): + def setup(self): + super(TestTopologyCoding, self).setup() + self.codec = top_codec + top = md.load(self.filename).topology + dataframe, bonds = top.to_dataframe() + self.objs = [top] + self.dcts = [{ + '__class__': 'Topology', + '__module__': 'mdtraj.core.topology', + 'atoms': dataframe.to_json(), + 'bonds': bonds + }] + + +class TestTrajectoryCoding(MDTrajCodingTest): + def setup(self): + super(TestTrajectoryCoding, self).setup() + self.codec = traj_codec + traj = md.load(self.filename) + self.objs = [traj] + self.dcts = [{ + '__class__': 'Trajectory', + '__module__': 'mdtraj.core.trajectory', + 'xyz': traj.xyz, + 'topology': traj.topology, + 'time': traj.time, + 'unitcell_lengths': traj.unitcell_lengths, + 'unitcell_angles': traj.unitcell_angles + }] + + + From 8ad72d2418b8845b475738454925f2777801f0d0 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Tue, 21 Jul 2020 15:15:36 +0200 Subject: [PATCH 369/464] Improvements to gmx engine tools * GroFileEngine is now storable * snapshot_from_gro is in the `engines.gromacs` namespace --- openpathsampling/engines/gromacs/__init__.py | 2 + openpathsampling/engines/gromacs/engine.py | 57 +++++++++++--------- 2 files changed, 34 insertions(+), 25 deletions(-) diff --git a/openpathsampling/engines/gromacs/__init__.py b/openpathsampling/engines/gromacs/__init__.py index 2ec1d851c..986af3faf 100644 --- a/openpathsampling/engines/gromacs/__init__.py +++ b/openpathsampling/engines/gromacs/__init__.py @@ -6,7 +6,9 @@ def requires_mdtraj(*args, **kwargs): # pragma: no cover except ImportError: Engine = requires_mdtraj ExternalMDSnapshot = requires_mdtraj + snapshot_from_gro = requires_mdtraj else: from .engine import GromacsEngine as Engine from .engine import ExternalMDSnapshot + from .engine import snapshot_from_gro diff --git a/openpathsampling/engines/gromacs/engine.py b/openpathsampling/engines/gromacs/engine.py index c9c23f784..53adee969 100644 --- a/openpathsampling/engines/gromacs/engine.py +++ b/openpathsampling/engines/gromacs/engine.py @@ -30,33 +30,40 @@ _debug_open_files, close_file_descriptors ) +class _GroFileEngine(ExternalEngine): + def __init__(self, gro): + self.gro = gro + traj = md.load(gro) + self.topology = MDTrajTopology(traj.topology) + n_atoms = self.topology.n_atoms + n_spatial = self.topology.n_spatial + descriptor = SnapshotDescriptor.construct( + snapshot_class=ExternalMDSnapshot, + snapshot_dimensions={'n_spatial': n_spatial, + 'n_atoms': n_atoms} + ) + super(_GroFileEngine, self).__init__(options={}, + descriptor=descriptor, + template=None) + + def to_dict(self): + return {'gro': self.gro} + + @classmethod + def from_dict(cls, dct): + return cls(dct['gro']) + + def read_frame_data(self, file_name, file_position): + traj = md.load(file_name) + xyz = traj.xyz[0] + vel = np.zeros(shape=xyz.shape) + box = traj.unitcell_vectors[0] + return (xyz, vel, box) + + def snapshot_from_gro(gro_file): - class GroFileEngine(ExternalEngine): - def __init__(self, gro): - traj = md.load(gro) - self.topology = MDTrajTopology(traj.topology) - n_atoms = self.topology.n_atoms - n_spatial = self.topology.n_spatial - descriptor = SnapshotDescriptor.construct( - snapshot_class=ExternalMDSnapshot, - snapshot_dimensions={'n_spatial': n_spatial, - 'n_atoms': n_atoms} - ) - super(GroFileEngine, self).__init__(options={}, - descriptor=descriptor, - template=None) - - # read_frame_data = GromacsEngine.read_frame_data - - def read_frame_data(self, file_name, file_position): - traj = md.load(file_name) - xyz = traj.xyz[0] - vel = np.zeros(shape=xyz.shape) - box = traj.unitcell_vectors[0] - return (xyz, vel, box) - - template_engine = GroFileEngine(gro_file) + template_engine = _GroFileEngine(gro_file) snapshot = ExternalMDSnapshot(file_name=gro_file, file_position=0, engine=template_engine) From 0761836e8ae10613fc2d796b4bc24974f2baca63 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 23 Jul 2020 14:38:48 +0200 Subject: [PATCH 370/464] Modifications to external/gmx for parallelization --- openpathsampling/engines/external_engine.py | 29 ++++++++++++++-- openpathsampling/engines/gromacs/engine.py | 38 ++++++++++++++++----- 2 files changed, 57 insertions(+), 10 deletions(-) diff --git a/openpathsampling/engines/external_engine.py b/openpathsampling/engines/external_engine.py index 5f1eac02d..c2a677d4d 100644 --- a/openpathsampling/engines/external_engine.py +++ b/openpathsampling/engines/external_engine.py @@ -1,3 +1,4 @@ +from openpathsampling.netcdfplus import StorableNamedObject from openpathsampling.engines.dynamics_engine import DynamicsEngine from openpathsampling.engines.snapshot import BaseSnapshot from openpathsampling.engines.toy import ToySnapshot @@ -48,6 +49,28 @@ def _debug_snapshot_loading(snapshot): snapshot.load_details() snapshot.clear_cache() + +class FilenameSetter(StorableNamedObject): + def __init__(self, count=0): + super().__init__() + self.count = count + + def __call__(self): + retval = '{:07d}'.format(self.count) + self.count += 1 + return retval + + +class RandomString(FilenameSetter): + allowed = np.array([a for a in 'abcdefghijklmnopqrstuvwxyz0123456789']) + def __init__(self, length=8): + super().__init__() + self.length = length + + def __call__(self): + return "".join(np.random.choice(self.allowed, self.length)) + + class ExternalEngine(DynamicsEngine): """ Generic object to handle arbitrary external engines. Subclass to use. @@ -62,7 +85,8 @@ class ExternalEngine(DynamicsEngine): 'engine_directory' : "", 'n_spatial' : 1, 'n_atoms' : 1, - 'n_poll_per_step': 1 + 'n_poll_per_step': 1, + 'filename_setter': FilenameSetter(), } killsig = signal.SIGTERM @@ -135,7 +159,8 @@ def start(self, snapshot=None): self._traj_num += 1 self.frame_num = 0 self.n_frames_since_start = 0 - self.set_filenames(self._traj_num) + file_prefix = self.filename_setter() + self.set_filenames(file_prefix) self.write_frame_to_file(self.input_file, self.current_snapshot, "w") self.prepare() diff --git a/openpathsampling/engines/gromacs/engine.py b/openpathsampling/engines/gromacs/engine.py index 53adee969..477b4c805 100644 --- a/openpathsampling/engines/gromacs/engine.py +++ b/openpathsampling/engines/gromacs/engine.py @@ -30,6 +30,10 @@ _debug_open_files, close_file_descriptors ) +def _remove_file_if_exists(filename): + if os.path.isfile(filename): + os.remove(filename) + class _GroFileEngine(ExternalEngine): def __init__(self, gro): self.gro = gro @@ -124,8 +128,9 @@ class GromacsEngine(ExternalEngine): ) GROMPP_CMD = ("{e.options[gmx_executable]}grompp -c {e.gro} " + "-f {e.mdp} -p {e.top} -t {e.input_file} " + + "-po {e.mdout_file} -o {e.tpr_file} " + "{e.options[grompp_args]}") - MDRUN_CMD = ("{e.options[gmx_executable]}mdrun -s topol.tpr " + MDRUN_CMD = ("{e.options[gmx_executable]}mdrun -s {e.tpr_file} " + "-o {e.output_file} -e {e.edr_file} -g {e.log_file} " + "{mdrun_args}") # use these as CMD.format(e=engine, **engine.options) @@ -160,6 +165,8 @@ def __init__(self, gro, mdp, top, options, base_dir="", prefix="gmx"): self.output_file = self.prefix + "_trr/OUTPUT_NAME.trr" self.edr_file = self.prefix + "_edr/OUTPUT_NAME.edr" self.log_file = self.prefix + "_log/OUTPUT_NAME.log" + self.tpr_file = "topol.top" + self.mdout_file = "mdout.mdp" self._mdtraj_topology = None @@ -229,7 +236,7 @@ def read_frame_from_file(self, file_name, frame_num): basename = os.path.basename(file_name) # basename should be in the format [0-9]+\.trr (as set by the # trajectory_filename method) - file_number = int(basename.split('.')[0]) + # file_number = int(basename.split('.')[0]) try: xyz, vel, box = self.read_frame_data(file_name, frame_num) except (IndexError, OSError, IOError) as e: @@ -274,13 +281,27 @@ def write_frame_to_file(self, filename, snapshot, mode='w'): close_file_descriptors(filename) def trajectory_filename(self, number): + # TODO: remove code path allowing ints (API break for 2.0) trr_dir = self.prefix + "_trr/" - return trr_dir + '{:07d}'.format(number) + '.trr' + if isinstance(number, int): + num_str = num_str = '{:07d}'.format(number) + else: + num_str = number + return trr_dir + num_str + '.trr' def set_filenames(self, number): - self.input_file = os.path.join(self.base_dir, "initial_frame.trr") - self.output_file = self.trajectory_filename(number + 1) - num_str = '{:07d}'.format(number + 1) + if isinstance(number, int): + num_str = '{:07d}'.format(number + 1) + self.output_file = self.trajectory_filename(number + 1) + init_filename = "initial_frame.trr" + else: + num_str = number + self.output_file = self.trajectory_filename(num_str) + init_filename = num_str + "_initial_frame.trr" + self.mdout = num_str + "_mdout.mdp" + self.tpr_file = num_str + "_" + "topol.tpr" + + self.input_file = os.path.join(self.base_dir, init_filename) self.edr_file = os.path.join(self.prefix + "_edr", num_str + '.edr') self.log_file = os.path.join(self.prefix + "_log", num_str + '.log') @@ -306,8 +327,9 @@ def prepare(self): # pragma: no cover return return_code def cleanup(self): - if os.path.isfile(self.input_file): - os.remove(self.input_file) + _remove_file_if_exists(self.input_file) + _remove_file_if_exists(self.tpr_file) + _remove_file_if_exists(self.mdout_file) def engine_command(self): # gmx mdrun -s topol.tpr -o trr/0000001.trr -g 0000001.log From 6f78c459eb670bb6af38bf06ac45afc210ef4beb Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Mon, 3 Aug 2020 15:41:41 +0200 Subject: [PATCH 371/464] Add internalized snapshots (& some docstrings) --- openpathsampling/engines/external_engine.py | 33 ++++++++++++++++--- .../engines/external_snapshots/snapshot.py | 29 ++++++++++++++++ openpathsampling/engines/gromacs/engine.py | 4 +-- openpathsampling/engines/snapshot.py | 2 +- .../tests/test_external_engine.py | 25 ++++++++++++++ .../tests/test_external_snapshots.py | 12 +++++++ openpathsampling/tests/test_gromacs_engine.py | 4 +-- 7 files changed, 100 insertions(+), 9 deletions(-) diff --git a/openpathsampling/engines/external_engine.py b/openpathsampling/engines/external_engine.py index c2a677d4d..da323d1fa 100644 --- a/openpathsampling/engines/external_engine.py +++ b/openpathsampling/engines/external_engine.py @@ -51,21 +51,46 @@ def _debug_snapshot_loading(snapshot): class FilenameSetter(StorableNamedObject): + """Just use numbers, as we did previously. + + This is the default for compatibility reasons, but it not recommended. + Generally, we recommend using :class:`.RandomString`. + """ + # the weird use of this as the base class is because engine options has + # some weird type testing that requires replace object to be instances + # of the default def __init__(self, count=0): super().__init__() self.count = count def __call__(self): - retval = '{:07d}'.format(self.count) + retval = self.count self.count += 1 return retval + def reset(self, count=0): + self.count = count + -class RandomString(FilenameSetter): - allowed = np.array([a for a in 'abcdefghijklmnopqrstuvwxyz0123456789']) - def __init__(self, length=8): +class RandomStringFilenames(FilenameSetter): + """Use a random string for filename prefixes. + + This is recommended, and will become the default in future versions of + OpenPathSampling. + + Parameters + ---------- + length : int + number of character in the resulting string + allowed : str + string containing the allowed characters to return + """ + _allowed = 'abcdefghijklmnopqrstuvwxyz0123456789' + def __init__(self, length=8, allowed=None): super().__init__() self.length = length + allowed = allowed if allowed is not None else self._allowed + self.allowed = np.array([a for a in allowed]) def __call__(self): return "".join(np.random.choice(self.allowed, self.length)) diff --git a/openpathsampling/engines/external_snapshots/snapshot.py b/openpathsampling/engines/external_snapshots/snapshot.py index 0c11e1206..19af856d2 100644 --- a/openpathsampling/engines/external_snapshots/snapshot.py +++ b/openpathsampling/engines/external_snapshots/snapshot.py @@ -47,6 +47,8 @@ def __init__(self, file_name=None, file_position=None, engine=None): self._velocities = None self._box_vectors = None + self._internalized = None + def load_details(self): """Cache coords, velocities, box vectors from the external file""" try: @@ -110,3 +112,30 @@ def __repr__(self): args = ", ".join([num_str, pos_str, eng_str]) return "{cls_str}(".format(cls_str=self.cls) + args + ")" + def internalize(self): + if self._internalized is None: + self._internalized = InternalMDSnapshot( + coordinates=self.coordinates, + velocities=self.velocities, + box_vectors=self.box_vectors, + file_name=self.file_name, + file_position=self.file_position + ) + return self._internalized + + +@features.base.attach_features([ + features.engine, + features.coordinates, + features.velocities, + features.box_vectors, + ext_features.file_info +]) +class InternalMDSnapshot(BaseSnapshot): + """ + Internal version of standard external MD snapshot. + + This can be used, for example, to store intial conditions in an OPS + storage file. + """ + pass diff --git a/openpathsampling/engines/gromacs/engine.py b/openpathsampling/engines/gromacs/engine.py index 477b4c805..f0ff57a1f 100644 --- a/openpathsampling/engines/gromacs/engine.py +++ b/openpathsampling/engines/gromacs/engine.py @@ -165,7 +165,7 @@ def __init__(self, gro, mdp, top, options, base_dir="", prefix="gmx"): self.output_file = self.prefix + "_trr/OUTPUT_NAME.trr" self.edr_file = self.prefix + "_edr/OUTPUT_NAME.edr" self.log_file = self.prefix + "_log/OUTPUT_NAME.log" - self.tpr_file = "topol.top" + self.tpr_file = "topol.tpr" self.mdout_file = "mdout.mdp" self._mdtraj_topology = None @@ -294,6 +294,7 @@ def set_filenames(self, number): num_str = '{:07d}'.format(number + 1) self.output_file = self.trajectory_filename(number + 1) init_filename = "initial_frame.trr" + self.filename_setter.reset(number) else: num_str = number self.output_file = self.trajectory_filename(num_str) @@ -332,7 +333,6 @@ def cleanup(self): _remove_file_if_exists(self.mdout_file) def engine_command(self): - # gmx mdrun -s topol.tpr -o trr/0000001.trr -g 0000001.log args = self.options['mdrun_args'].format(prev_traj=self._traj_num-1, next_traj=self._traj_num) cmd = self.MDRUN_CMD.format(e=self, mdrun_args=args) diff --git a/openpathsampling/engines/snapshot.py b/openpathsampling/engines/snapshot.py index fd8f63f9b..0fb830098 100644 --- a/openpathsampling/engines/snapshot.py +++ b/openpathsampling/engines/snapshot.py @@ -130,7 +130,7 @@ def SnapshotFactory( base_class=None): """ Helper to create a new Snapshot class - + Parameters ---------- name : str diff --git a/openpathsampling/tests/test_external_engine.py b/openpathsampling/tests/test_external_engine.py index d91e4203b..9966b5372 100644 --- a/openpathsampling/tests/test_external_engine.py +++ b/openpathsampling/tests/test_external_engine.py @@ -7,6 +7,8 @@ import openpathsampling.engines as peng from openpathsampling.engines.toy import ToySnapshot +from openpathsampling.engines.external_engine import * + import numpy as np import psutil @@ -218,3 +220,26 @@ def test_in_shooting_move(self): for testfile in glob.glob("test*out") + glob.glob("test*inp"): os.remove(testfile) +class TestFilenameSetter(object): + def test_default_setter(self): + setter = FilenameSetter() + assert setter() == 0 + assert setter() == 1 + + def test_specific_number_setter(self): + setter = FilenameSetter(100) + assert setter() == 100 + assert setter() == 101 + + +class TestRandomStringFilenames(object): + def test_default_setter(self): + setter = RandomStringFilenames() + prefix = setter() + assert len(prefix) == 8 + for char in prefix: + assert char in RandomStringFilenames._allowed + + def test_trivial_setter(self): + setter = RandomStringFilenames(2, 'a') + assert setter() == 'aa' diff --git a/openpathsampling/tests/test_external_snapshots.py b/openpathsampling/tests/test_external_snapshots.py index ff075a670..96c27e9e7 100644 --- a/openpathsampling/tests/test_external_snapshots.py +++ b/openpathsampling/tests/test_external_snapshots.py @@ -131,3 +131,15 @@ def test_reversed(self): assert snap._reversed == snap_rev assert snap_rev._reversed == snap + + def test_internalize(self): + snap = self.snapshots[0] + internal = snap.internalize() + np.testing.assert_array_equal(snap.xyz, internal.xyz) + np.testing.assert_array_equal(snap.velocities, internal.velocities) + np.testing.assert_array_equal(snap.box_vectors, internal.box_vectors) + + # the way to do it for a trajectory + traj_i = paths.Trajectory([s.internalize() for s in self.snapshots]) + traj_e = paths.Trajectory(self.snapshots) + np.testing.assert_array_equal(traj_i.xyz, traj_e.xyz) diff --git a/openpathsampling/tests/test_gromacs_engine.py b/openpathsampling/tests/test_gromacs_engine.py index ff69b90dc..c50f0a215 100644 --- a/openpathsampling/tests/test_gromacs_engine.py +++ b/openpathsampling/tests/test_gromacs_engine.py @@ -179,10 +179,10 @@ def test_generate(self): snap = self.engine.read_frame_from_file(traj_0, 0) self.engine.set_filenames(0) - ens = paths.LengthEnsemble(3) + ens = paths.LengthEnsemble(5) traj = self.engine.generate(snap, running=[ens.can_append]) assert_equal(self.engine.proc.is_running(), False) - assert_equal(len(traj), 3) + assert_equal(len(traj), 5) ttraj = md.load(self.engine.trajectory_filename(1), top=self.engine.gro) # the mdp suggests a max length of 100 frames From b66f5de6d3c63326f7f770294b1635e8e90d24fa Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 6 Aug 2020 19:30:57 +0200 Subject: [PATCH 372/464] Add _InternalizedEngineProxy and tests This is needed in order to ensure that each snapshot table has a one-to-one mapping to an engine instance. --- openpathsampling/engines/external_engine.py | 61 ++++++++++++++++++- .../engines/external_snapshots/__init__.py | 2 +- .../engines/external_snapshots/snapshot.py | 45 ++++++++------ openpathsampling/engines/gromacs/engine.py | 15 +++-- .../tests/test_external_engine.py | 2 + .../tests/test_external_snapshots.py | 13 +++- openpathsampling/tests/test_gromacs_engine.py | 25 ++++++++ 7 files changed, 137 insertions(+), 26 deletions(-) diff --git a/openpathsampling/engines/external_engine.py b/openpathsampling/engines/external_engine.py index da323d1fa..8a6f334a1 100644 --- a/openpathsampling/engines/external_engine.py +++ b/openpathsampling/engines/external_engine.py @@ -1,6 +1,6 @@ from openpathsampling.netcdfplus import StorableNamedObject from openpathsampling.engines.dynamics_engine import DynamicsEngine -from openpathsampling.engines.snapshot import BaseSnapshot +from openpathsampling.engines.snapshot import BaseSnapshot, SnapshotDescriptor from openpathsampling.engines.toy import ToySnapshot import numpy as np import os @@ -12,6 +12,10 @@ import shlex import time +import sys +if sys.version_info > (3, ): + long = int + import linecache logger = logging.getLogger(__name__) @@ -95,6 +99,38 @@ def __init__(self, length=8, allowed=None): def __call__(self): return "".join(np.random.choice(self.allowed, self.length)) +class _InternalizedEngineProxy(DynamicsEngine): + """Wrapper that allows snapshots to be "internalized." + + This is needed because the dynamically-registered snapshot tables are + associated to an engine: each engine creates exactly one snapshot table. + We use the internalized engine to create those snapshots. + """ + def __init__(self, engine): + descriptor = SnapshotDescriptor.construct( + snapshot_class=engine.InternalizedSnapshotClass, + snapshot_dimensions=engine.descriptor._dimensions + ) + self.engine = engine + super(_InternalizedEngineProxy, self).__init__(options={}, + descriptor=descriptor) + + def to_dict(self): + dct = super(_InternalizedEngineProxy, self).to_dict() + dct['engine'] = self.engine + return dct + + @classmethod + def from_dict(cls, dct): + # ignore everything except the engine here + dct = {'engine': dct['engine']} + return super(_InternalizedEngineProxy, cls).from_dict(dct) + + def __getattr__(self, attr): + if attr == 'name' and self.engine.name: + return self.engine.name + " (internalized)" + return getattr(self.engine, attr) + class ExternalEngine(DynamicsEngine): """ @@ -128,6 +164,29 @@ def __init__(self, options, descriptor, template, self._traj_num = -1 self._current_snapshot = template self.n_frames_since_start = None + self.internalized_engine = _InternalizedEngineProxy(self) + + def to_dict(self): + dct = super(ExternalEngine, self).to_dict() + # this is a trick to avoid circular references: the idea is that we + # create an identical internalized engine in our __init__ (i.e., the + # engine's from_dict) -- therefore we create it from scratch each + # time and just save/set the UUID + dct.update({ + 'internalized_engine_uuid': str(self.internalized_engine.__uuid__) + }) + return dct + + @classmethod + def from_dict(cls, dct): + dct = dct.copy() + internalized_engine_uuid = dct.pop('internalized_engine_uuid', None) + obj = super(ExternalEngine, cls).from_dict(dct) + if internalized_engine_uuid: + # TODO: in future versions of OPS, get_/set_uuid should always + # return strings + obj.internalized_engine.__uuid__ = long(internalized_engine_uuid) + return obj @property def current_snapshot(self): diff --git a/openpathsampling/engines/external_snapshots/__init__.py b/openpathsampling/engines/external_snapshots/__init__.py index d4d4d7a0e..9a5c3102e 100644 --- a/openpathsampling/engines/external_snapshots/__init__.py +++ b/openpathsampling/engines/external_snapshots/__init__.py @@ -1,2 +1,2 @@ from . import features -from .snapshot import ExternalMDSnapshot +from .snapshot import ExternalMDSnapshot, InternalizedMDSnapshot diff --git a/openpathsampling/engines/external_snapshots/snapshot.py b/openpathsampling/engines/external_snapshots/snapshot.py index 19af856d2..6ff1bdf67 100644 --- a/openpathsampling/engines/external_snapshots/snapshot.py +++ b/openpathsampling/engines/external_snapshots/snapshot.py @@ -7,6 +7,23 @@ import logging logger = logging.getLogger(__name__) + +@features.base.attach_features([ + features.engine, + features.coordinates, + features.velocities, + features.box_vectors, + ext_features.file_info +]) +class InternalizedMDSnapshot(BaseSnapshot): + """ + Internalized version of standard external MD snapshot. + + This can be used, for example, to store intial conditions in an OPS + storage file. + """ + pass + @features.base.attach_features([ features.engine, ext_features.coordinates, @@ -113,29 +130,19 @@ def __repr__(self): return "{cls_str}(".format(cls_str=self.cls) + args + ")" def internalize(self): + """Return a version of this snapshot with storable details. + + This allows these snapshots to be stored internally in OPS storage + files, instead of only in external files. This is convenient to + avoid the need to transfer files to remote computers. + """ if self._internalized is None: - self._internalized = InternalMDSnapshot( + self._internalized = self.engine.InternalizedSnapshotClass( coordinates=self.coordinates, velocities=self.velocities, box_vectors=self.box_vectors, file_name=self.file_name, - file_position=self.file_position + file_position=self.file_position, + engine=self.engine.internalized_engine ) return self._internalized - - -@features.base.attach_features([ - features.engine, - features.coordinates, - features.velocities, - features.box_vectors, - ext_features.file_info -]) -class InternalMDSnapshot(BaseSnapshot): - """ - Internal version of standard external MD snapshot. - - This can be used, for example, to store intial conditions in an OPS - storage file. - """ - pass diff --git a/openpathsampling/engines/gromacs/engine.py b/openpathsampling/engines/gromacs/engine.py index f0ff57a1f..764d1de6b 100644 --- a/openpathsampling/engines/gromacs/engine.py +++ b/openpathsampling/engines/gromacs/engine.py @@ -16,8 +16,8 @@ from openpathsampling.engines import features from openpathsampling.engines.snapshot import BaseSnapshot, SnapshotDescriptor from openpathsampling.engines.openmm.topology import MDTrajTopology -from openpathsampling.engines.external_snapshots import ExternalMDSnapshot -# fro . import features as gmx_features +from openpathsampling.engines.external_snapshots import \ + ExternalMDSnapshot, InternalizedMDSnapshot from openpathsampling.tools import ensure_file import os @@ -35,6 +35,8 @@ def _remove_file_if_exists(filename): os.remove(filename) class _GroFileEngine(ExternalEngine): + SnapshotClass = ExternalMDSnapshot + InternalizedSnapshotClass = InternalizedMDSnapshot def __init__(self, gro): self.gro = gro traj = md.load(gro) @@ -42,7 +44,7 @@ def __init__(self, gro): n_atoms = self.topology.n_atoms n_spatial = self.topology.n_spatial descriptor = SnapshotDescriptor.construct( - snapshot_class=ExternalMDSnapshot, + snapshot_class=self.SnapshotClass, snapshot_dimensions={'n_spatial': n_spatial, 'n_atoms': n_atoms} ) @@ -134,6 +136,8 @@ class GromacsEngine(ExternalEngine): + "-o {e.output_file} -e {e.edr_file} -g {e.log_file} " + "{mdrun_args}") # use these as CMD.format(e=engine, **engine.options) + SnapshotClass = ExternalMDSnapshot + InternalizedSnapshotClass = InternalizedMDSnapshot def __init__(self, gro, mdp, top, options, base_dir="", prefix="gmx"): self.base_dir = base_dir self.gro = os.path.join(base_dir, gro) @@ -174,7 +178,8 @@ def __init__(self, gro, mdp, top, options, base_dir="", prefix="gmx"): first_frame_in_file=True) def to_dict(self): - return { + dct = super(GromacsEngine, self).to_dict() + local_dct = { 'gro': self.gro, 'mdp': self.mdp, 'top': self.top, @@ -185,6 +190,8 @@ def to_dict(self): 'mdp_contents': self.mdp_contents, 'top_contents': self.top_contents, } + dct.update(local_dct) + return dct @classmethod def from_dict(cls, dct): diff --git a/openpathsampling/tests/test_external_engine.py b/openpathsampling/tests/test_external_engine.py index 9966b5372..f0c23babc 100644 --- a/openpathsampling/tests/test_external_engine.py +++ b/openpathsampling/tests/test_external_engine.py @@ -33,6 +33,8 @@ class ExampleExternalEngine(peng.ExternalEngine): """Trivial external engine for engine.c in the tests. """ + SnaphotClass = ToySnapshot + InternalizedSnapshotClass = ToySnapshot def read_frame_from_file(self, filename, frame_num): # under most circumstances, start with linecache.checkcache and # setting the value of the first line diff --git a/openpathsampling/tests/test_external_snapshots.py b/openpathsampling/tests/test_external_snapshots.py index 96c27e9e7..8d63304ab 100644 --- a/openpathsampling/tests/test_external_snapshots.py +++ b/openpathsampling/tests/test_external_snapshots.py @@ -4,13 +4,24 @@ import numpy as np from openpathsampling.engines.external_snapshots.snapshot import ( - ExternalMDSnapshot + ExternalMDSnapshot, InternalizedMDSnapshot ) +from openpathsampling.engines.snapshot import SnapshotDescriptor + +from openpathsampling.engines.external_engine import \ + _InternalizedEngineProxy class MockEngine(object): + SnapshotClass = ExternalMDSnapshot + InternalizedSnapshotClass = InternalizedMDSnapshot def __init__(self, sequences, sleep_ms=0): self.sequences = sequences self.sleep_ms = sleep_ms + self.descriptor = SnapshotDescriptor.construct( + snapshot_class=ExternalMDSnapshot, + snapshot_dimensions={'n_spatial': 2, 'n_atoms': 1} + ) + self.internalized_engine = _InternalizedEngineProxy(self) def read_frame_data(self, filename, position): return self.sequences[filename][position] diff --git a/openpathsampling/tests/test_gromacs_engine.py b/openpathsampling/tests/test_gromacs_engine.py index c50f0a215..e0ad5eeef 100644 --- a/openpathsampling/tests/test_gromacs_engine.py +++ b/openpathsampling/tests/test_gromacs_engine.py @@ -4,6 +4,7 @@ raises, assert_true) from nose.plugins.skip import Skip, SkipTest import numpy.testing as npt +import tempfile from .test_helpers import data_filename, assert_items_equal @@ -303,3 +304,27 @@ def test_clear_cache(self): self._check_none_empty() self.snapshot.clear_cache() self._check_all_empty() + + def test_internalized_storage(self): + internalized = self.snapshot.internalize() + npt.assert_array_almost_equal(internalized.xyz, self.snapshot.xyz) + try: + tmp_dir = tempfile.TemporaryDirectory() + except AttributeError: + # Py2: we'll just skip this test (and not worry when Py2 goes away) + pytest.skip("Test approach only valid in Python 3") + + filename = os.path.join(tmp_dir.name, "test.nc") + filename = "foo.nc" # DEBUG + storage_w = paths.Storage(filename, template=internalized, mode='w') + storage_w.save(internalized) + rl = storage_w.snapshots[0] + storage_w.sync() + storage_w.close() + storage_r = paths.Storage(filename, mode='r') + assert len(storage_r.snapshots) == 2 + reloaded = storage_r.snapshots[0] + npt.assert_almost_equal(internalized.xyz, reloaded.xyz) + assert internalized.__class__ != self.snapshot.__class__ + assert internalized.__class__ == reloaded.__class__ + From 965984bee845f5caeeb941c8026d50cc5140d65f Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Tue, 15 Sep 2020 18:04:52 +0200 Subject: [PATCH 373/464] Fix toy_mstis_3 for change in pandas --- examples/toy_model_mstis/toy_mstis_3_analysis.ipynb | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/examples/toy_model_mstis/toy_mstis_3_analysis.ipynb b/examples/toy_model_mstis/toy_mstis_3_analysis.ipynb index 339739e04..7c2fb13c7 100644 --- a/examples/toy_model_mstis/toy_mstis_3_analysis.ipynb +++ b/examples/toy_model_mstis/toy_mstis_3_analysis.ipynb @@ -681,19 +681,18 @@ } ], "source": [ - "state_pair_names = [(t[0].name, t[1].name) for t in mstis.transitions]\n", - "ctp_by_interface = pd.DataFrame(index=state_pair_names)\n", + "state_pair_names = {t: \"{} => {}\".format(t[0].name, t[1].name) for t in mstis.transitions}\n", + "ctp_by_interface = pd.DataFrame(index=state_pair_names.values())\n", "for state_pair in mstis.transitions:\n", " transition = mstis.transitions[state_pair]\n", " for ensemble_i in range(len(transition.ensembles)):\n", - " state_pair_name = (transition.stateA.name, transition.stateB.name)\n", + " state_pair_name = state_pair_names[transition.stateA, transition.stateB]\n", " ctp_by_interface.at[state_pair_name, ensemble_i] = transition.conditional_transition_probability(\n", " storage.steps,\n", " transition.ensembles[ensemble_i]\n", " )\n", - " \n", - " \n", - "ctp_by_interface " + "\n", + "ctp_by_interface" ] }, { From 87c47dbc08fc6d75fb7af69d885c8291bc8b9d9c Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Wed, 16 Sep 2020 12:16:18 +0200 Subject: [PATCH 374/464] Pin ujson<2; nbconvert<6 --- devtools/testing_requirements.txt | 2 +- docs/requirements.txt | 1 + pinned | 2 +- setup.cfg | 2 +- 4 files changed, 4 insertions(+), 3 deletions(-) diff --git a/devtools/testing_requirements.txt b/devtools/testing_requirements.txt index 78c5ad51d..8434128b2 100644 --- a/devtools/testing_requirements.txt +++ b/devtools/testing_requirements.txt @@ -1,5 +1,5 @@ nose -pytest!=5.3.4 +pytest pytest-cov coveralls ipynbtest diff --git a/docs/requirements.txt b/docs/requirements.txt index 04417adf4..30d411982 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -1,6 +1,7 @@ matplotlib sphinx jupyter +nbconvert<6 jinja2 netcdf4 runipy diff --git a/pinned b/pinned index 8e2d10198..6edcae42f 100644 --- a/pinned +++ b/pinned @@ -1 +1 @@ -pytest!=5.3.4 +ujson<2 diff --git a/setup.cfg b/setup.cfg index 2aa53d196..3c18e6b62 100644 --- a/setup.cfg +++ b/setup.cfg @@ -36,7 +36,7 @@ install_requires = svgwrite networkx matplotlib - ujson + ujson<2 mdtraj # mdtraj is not technically required, but we co-package it because it is # required for many integrations with other packages From 6a835c96aa919cb4d633787dfad6e463934ba2b8 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 17 Sep 2020 00:04:37 +0200 Subject: [PATCH 375/464] Start devtools cleanup --- .project | 17 ----------------- .pydevproject | 8 -------- devtools/conda_install_reqs.sh | 14 +++++++------- pinned | 1 - setup.cfg | 8 ++++++++ 5 files changed, 15 insertions(+), 33 deletions(-) delete mode 100644 .project delete mode 100644 .pydevproject delete mode 100644 pinned diff --git a/.project b/.project deleted file mode 100644 index 94d7fdd4b..000000000 --- a/.project +++ /dev/null @@ -1,17 +0,0 @@ - - - pytis - - - - - - org.python.pydev.PyDevBuilder - - - - - - org.python.pydev.pythonNature - - diff --git a/.pydevproject b/.pydevproject deleted file mode 100644 index 9325a121a..000000000 --- a/.pydevproject +++ /dev/null @@ -1,8 +0,0 @@ - - -python 2.7 -Anaconda Python - -/${PROJECT_DIR_NAME}/src - - diff --git a/devtools/conda_install_reqs.sh b/devtools/conda_install_reqs.sh index d4de581a0..2c51e3253 100644 --- a/devtools/conda_install_reqs.sh +++ b/devtools/conda_install_reqs.sh @@ -21,23 +21,23 @@ fi # always obeys if you explicitly request a pinned version) #conda config --env --add pinned_packages python=$CONDA_PY #cp $DEVTOOLS_DIR/../pinned $CONDA_PREFIX/ -PACKAGES=`python ${DEVTOOLS_DIR}/install_recipe_requirements.py --dry ${DEVTOOLS_DIR}/conda-recipe/meta.yaml | tr "\n" " "` # WORKAROUNDS is normally empty; needed if other pkgs don't list all deps -WORKAROUNDS="pymbar" -TESTING=`cat ${DEVTOOLS_DIR}/testing_requirements.txt | tr "\n" " "` +WORKAROUNDS="" +REQUIREMENTS=`python ${DEVTOOLS_DIR}/setup_cfg_reqs.py` +TESTING=`python ${DEVTOOLS_DIR}/setup_cfg_reqs.py --extra testing` +INTEGRATIONS=`cat {DEVTOOLS_DIR}/tested_integrations.txt | tr "\n" " "` EXTRA=`cat ${DEVTOOLS_DIR}/optional_packages.txt | tr "\n" " "` PY_INSTALL="python=$CONDA_PY" -PINS=`cat ${DEVTOOLS_DIR}/../pinned | tr -d " " | tr "\n" " "` +echo "REQUIREMENTS=$REQUIREMENTS" echo "WORKAROUNDS=$WORKAROUNDS" echo "PY_INSTALL=$PY_INSTALL" -echo "PACKAGES=$PACKAGES" echo "TESTING=$TESTING" -echo "PINS=$PINS" +# TODO: adjust this to be per python version if [ "$CONDA_PY" != "3.7" ]; then - ALL_PACKAGES="$WORKAROUNDS $PACKAGES $TESTING $EXTRA" + ALL_PACKAGES="$WORKAROUNDS $REQUIREMENTS $TESTING $EXTRA" else ALL_PACKAGES="$WORKAROUNDS $PACKAGES $TESTING" # no msmbuilder for py3.7? fi diff --git a/pinned b/pinned deleted file mode 100644 index 6edcae42f..000000000 --- a/pinned +++ /dev/null @@ -1 +0,0 @@ -ujson<2 diff --git a/setup.cfg b/setup.cfg index 3c18e6b62..6e5b489a8 100644 --- a/setup.cfg +++ b/setup.cfg @@ -42,5 +42,13 @@ install_requires = # required for many integrations with other packages packages = find: +[options.extras_require] +testing = + nose + pytest + pytest-cov + coveralls + ipynbtest + [bdist_wheel] universal = 1 From 063d571633a3a8022aa4abaffbeac085de549193 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 17 Sep 2020 00:20:28 +0200 Subject: [PATCH 376/464] More devtools cleanup --- devtools/conda-recipe/README.md | 21 ------------ devtools/conda-recipe/build.sh | 11 ------- devtools/conda-recipe/meta.yaml | 44 -------------------------- devtools/conda-recipe/requirements.txt | 14 -------- devtools/conda_install_reqs.sh | 22 ++++++------- devtools/setup_cfg_reqs.py | 33 +++++++++++++++++++ 6 files changed, 44 insertions(+), 101 deletions(-) delete mode 100644 devtools/conda-recipe/README.md delete mode 100755 devtools/conda-recipe/build.sh delete mode 100644 devtools/conda-recipe/meta.yaml delete mode 100644 devtools/conda-recipe/requirements.txt create mode 100644 devtools/setup_cfg_reqs.py diff --git a/devtools/conda-recipe/README.md b/devtools/conda-recipe/README.md deleted file mode 100644 index 936a04eb2..000000000 --- a/devtools/conda-recipe/README.md +++ /dev/null @@ -1,21 +0,0 @@ -This is a recipe for building the current development package into a conda -binary. - -The installation on travis-ci is done by building the conda package, installing -it, running the tests, and then if successful pushing the package to anaconda -(and the docs to AWS S3). The anaconda auth token is an encrypted environment -variable generated using: - -```bash -anaconda auth -n [token_name] -o omnia --max-age 22896000 -c --scopes api -``` -and then saved in the environment variable `ANACONDA_TOKEN`. You can limit the rights of the token by using `api:write`. The rights of an anaconda token can also be changed in your anaconda profile at [www.anaconda.org](). - -You can set up travis to store an encrypted token via - -```bash -gem install travis -travis encrypt ANACONDA_TOKEN=xx -``` - -where xx is the token output by binstar. The final command should print a line (containing 'secure') for inclusion in your .travis.yml file. diff --git a/devtools/conda-recipe/build.sh b/devtools/conda-recipe/build.sh deleted file mode 100755 index 8f0ef369a..000000000 --- a/devtools/conda-recipe/build.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -# this step is done automatically by conda build -# cp -r $RECIPE_DIR/../.. $SRC_DIR -$PYTHON setup.py install --single-version-externally-managed --record=/tmp/record.txt - -# Add more build steps here, if they are necessary. - -# See -# http://docs.continuum.io/conda/build.html -# for a list of environment variables that are set during the build process. diff --git a/devtools/conda-recipe/meta.yaml b/devtools/conda-recipe/meta.yaml deleted file mode 100644 index 791010cc1..000000000 --- a/devtools/conda-recipe/meta.yaml +++ /dev/null @@ -1,44 +0,0 @@ -package: - name: openpathsampling - version: "1.3.0.dev0" - -source: - path: ../../ - -build: - preserve_egg_dir: True - number: 0 - -requirements: - build: - - python - - future - - setuptools - - run: - - python - - numpy - - scipy - - future - - pandas - - netcdf4 - - openmm - - openmmtools - - jupyter - - mdtraj - - svgwrite - - networkx - - matplotlib - - ujson - - psutil - - pyemma - - py-plumed - -test: - imports: - - openpathsampling - -about: - home: http://github.com/openpathsampling/openpathsampling - license: LGPL 2.1 or later - summary: 'OpenPathSampling: A python package to do path sampling simulations' diff --git a/devtools/conda-recipe/requirements.txt b/devtools/conda-recipe/requirements.txt deleted file mode 100644 index 0efa94d6e..000000000 --- a/devtools/conda-recipe/requirements.txt +++ /dev/null @@ -1,14 +0,0 @@ -python -scipy -pandas -future -jupyter -netcdf4 -openmm -openmmtools -mdtraj -svgwrite -networkx -matplotlib -ujson -pyemma diff --git a/devtools/conda_install_reqs.sh b/devtools/conda_install_reqs.sh index 2c51e3253..4d1023b1d 100644 --- a/devtools/conda_install_reqs.sh +++ b/devtools/conda_install_reqs.sh @@ -9,13 +9,13 @@ DEVTOOLS_DIR=`dirname "${BASH_SOURCE[0]}"` -if [ ! -z "$OPS_ENV" ] -then - conda create -q -y --name $OPS_ENV conda future pyyaml python=$CONDA_PY - source activate $OPS_ENV -else - conda install -y -q future pyyaml # ensure that these are available -fi +#if [ ! -z "$OPS_ENV" ] +#then + #conda create -q -y --name $OPS_ENV conda future pyyaml python=$CONDA_PY + #source activate $OPS_ENV +#else + #conda install -y -q future pyyaml # ensure that these are available +#fi # for some reason, these approaches to pinning don't always work (but conda # always obeys if you explicitly request a pinned version) @@ -26,7 +26,7 @@ fi WORKAROUNDS="" REQUIREMENTS=`python ${DEVTOOLS_DIR}/setup_cfg_reqs.py` TESTING=`python ${DEVTOOLS_DIR}/setup_cfg_reqs.py --extra testing` -INTEGRATIONS=`cat {DEVTOOLS_DIR}/tested_integrations.txt | tr "\n" " "` +INTEGRATIONS=`cat ${DEVTOOLS_DIR}/tested_integrations.txt | tr "\n" " "` EXTRA=`cat ${DEVTOOLS_DIR}/optional_packages.txt | tr "\n" " "` PY_INSTALL="python=$CONDA_PY" @@ -39,8 +39,8 @@ echo "TESTING=$TESTING" if [ "$CONDA_PY" != "3.7" ]; then ALL_PACKAGES="$WORKAROUNDS $REQUIREMENTS $TESTING $EXTRA" else - ALL_PACKAGES="$WORKAROUNDS $PACKAGES $TESTING" # no msmbuilder for py3.7? + ALL_PACKAGES="$WORKAROUNDS $REQUIREMENTS $TESTING" # no msmbuilder for py3.7? fi -echo "conda install -y -q -c conda-forge -c omnia $PY_INSTALL $ALL_PACKAGES $PINS" -conda install -y -q -c conda-forge -c omnia $PY_INSTALL $ALL_PACKAGES $PINS +echo "conda install -y -q -c conda-forge -c omnia $PY_INSTALL $ALL_PACKAGES" +#conda install -y -q -c conda-forge -c omnia $PY_INSTALL $ALL_PACKAGES diff --git a/devtools/setup_cfg_reqs.py b/devtools/setup_cfg_reqs.py new file mode 100644 index 000000000..c5a8dc7dd --- /dev/null +++ b/devtools/setup_cfg_reqs.py @@ -0,0 +1,33 @@ +try: + import configparser +except ImportError: + import ConfigParser as configparser + +import argparse +import os.path + +def make_parser(): + default_setup = os.path.join(os.path.dirname(__file__), "..", + "setup.cfg") + parser = argparse.ArgumentParser() + parser.add_argument('setup_cfg', nargs='?', default=default_setup) + parser.add_argument('--extra', default=None) + return parser + +def clean(string): + return " ".join(string.split("\n")) + +def main(setup_cfg, extra): + config = configparser.ConfigParser() + config.read(setup_cfg) + if extra is None: + reqs = config['options']['install_requires'] + else: + reqs = config['options.extras_require'][extra] + return clean(reqs) + +if __name__ == "__main__": + argparser = make_parser() + args = argparser.parse_args() + print(main(args.setup_cfg, args.extra)) + From 8f01c945d960dcb935441aa024ef184ee0647731 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 17 Sep 2020 00:34:07 +0200 Subject: [PATCH 377/464] more devtools cleanup --- devtools/README.md | 49 +++++-------------- .../autorelease_check.py | 1 - devtools/tested_integrations.txt | 6 +++ 3 files changed, 19 insertions(+), 37 deletions(-) rename autorelease_check.py => devtools/autorelease_check.py (91%) create mode 100644 devtools/tested_integrations.txt diff --git a/devtools/README.md b/devtools/README.md index 0ca5b83c8..bbe01c19f 100644 --- a/devtools/README.md +++ b/devtools/README.md @@ -5,47 +5,24 @@ Assorted notes for developers. How to do a release ------------------- -- Update the whatsnew.rst document. Use the github view that shows all the - commits to master since the last release to write it. -- Update the version number in `setup.py`, change `ISRELEASED` to `True` -- Commit to master, and [tag](https://github.com/SimTk/mdtraj/releases) the - release on github -- To push the source to PyPI, use `python setup.py sdist --formats=gztar,zip upload` -- Conda binaries need to built separately on each platform (`conda build mdtraj; - binstar upload `) -- Make an announcement on github / email -- After tagging the release, make a NEW commit that changes `ISRELEASED` back - to `False` in `setup.py` - -It's important that the version which is tagged on github for the release be -the one with the ISRELEASED flag in setup.py set to true. +1. Make a branch in the upstream `openpathsampling/openpathsampling` + repository. +2. In that branch, change the version in `setup.cfg` to be a release version + (not ending in `.dev0`, etc.) +3. Push that branch and make a PR against the `stable` branch. It should test, + then perform a test deployment to `test.pypi`, then download the test + deployment and run tests again. The logic for this is in the Autorelease + repository. The text of the top post in this PR should be the release notes + (use the write-release-notes script included in Autorelease to do this). +4. Merge the PR. This will create a GitHub release, and then take that release + and push it to pypi. All of this logic is in Autorelease. Docs Building & Hosting ----------------------- After a travis build succeeds, the docs are built with sphinx and pushed to -the mdtraj.org amazon s3 account. The credentials for that account are stored, -encrypted, in the .travis.yml file. +the openpathsampling.org amazon s3 account (owned by John Chodera). The +credentials for that account are stored, encrypted, in the .travis.yml file. (http://docs.travis-ci.com/user/build-configuration/#Secure-environment-variables) - -As of version 0.7-dev (0.8 release) multiple versions of the docs are hosted -online. When a build happens on a version with ISRELEASED==False, it's put into -the "latest" folder on the S3 bucket. If ISRELEASED==True, it's put into a -subfolder with the name of the short release. The relevant logic is in -`tools/ci/push-docs-to-s3.py`. - -In order for the select bar at the bottom of the docs that toggles between -versions to work, these folders MUST match up with the tag names on github. -This is because the list of items to put in that little dropdown menu is -dynamically determined from the github API in the browser. This is the only -way I could think of to make sure the old docs have a link to the latest -version. The logic that populates the version dropdown menu in the browser is in - -`docs/themes/sphinx_rtd_theme-0.1.5/sphinx_rtd_theme/versions.html` - -Specifically note that it goes to https://api.github.com/repos/rmcgibbo/mdtraj/releases, -and uses the `tag_names` to build the links. So these much line up with the -prefix of `mdtraj.version.short_version` used in `tools/ci/push-docs-to-s3.py` -for the links not to break. \ No newline at end of file diff --git a/autorelease_check.py b/devtools/autorelease_check.py similarity index 91% rename from autorelease_check.py rename to devtools/autorelease_check.py index 004f9af7d..e78dee01b 100644 --- a/autorelease_check.py +++ b/devtools/autorelease_check.py @@ -12,7 +12,6 @@ 'package': openpathsampling.version.version, 'netcdfplus': openpathsampling.netcdfplus.version.version, 'setup.py': SETUP_VERSION, - 'conda-recipe': conda_recipe_version('devtools/conda-recipe/meta.yaml'), } RELEASE_BRANCHES = ['stable'] diff --git a/devtools/tested_integrations.txt b/devtools/tested_integrations.txt new file mode 100644 index 000000000..255b10d8c --- /dev/null +++ b/devtools/tested_integrations.txt @@ -0,0 +1,6 @@ +jupyter +openmm +openmmtools +py-plumed +pyemma + From 4b45c0accc21f135d5d8017a02cf0c0d79e0fad8 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 17 Sep 2020 00:50:19 +0200 Subject: [PATCH 378/464] and more cleanup --- .travis.yml | 2 +- devtools/install_recipe_requirements.py | 60 ------------------ setup.yaml | 84 ------------------------- 3 files changed, 1 insertion(+), 145 deletions(-) delete mode 100644 devtools/install_recipe_requirements.py delete mode 100644 setup.yaml diff --git a/.travis.yml b/.travis.yml index d3dfcd4db..98e4f59ce 100644 --- a/.travis.yml +++ b/.travis.yml @@ -36,7 +36,7 @@ before_script: - conda list script: - - python autorelease_check.py --branch ${TRAVIS_BRANCH} --event ${TRAVIS_EVENT_TYPE} + - python devtools/autorelease_check.py --branch ${TRAVIS_BRANCH} --event ${TRAVIS_EVENT_TYPE} - source devtools/ci/pytests.sh - if [ -z "$MINIMAL" ] ; then source devtools/ci/ipythontests.sh; fi diff --git a/devtools/install_recipe_requirements.py b/devtools/install_recipe_requirements.py deleted file mode 100644 index e61852bf9..000000000 --- a/devtools/install_recipe_requirements.py +++ /dev/null @@ -1,60 +0,0 @@ -#!/usr/bin/env python -from __future__ import print_function - -import sys -import tempfile -import argparse - -# This requires that you have already installed conda and pyyaml -# import conda.cli -import yaml - -def parse_arguments(): - parser = argparse.ArgumentParser() - parser.add_argument('recipe_file', default=None, nargs='?', - help="recipe file (use stdin if not given)") - parser.add_argument('--dry', action='store_true', default=False, - help="don't install; print to stdout instead") - parser.add_argument('--individual', action='store_true', default=False, - help="install required packages one at a time") - parser.add_argument('--env', default=None, type=str, - help="if given, an environment file will be created") - return parser.parse_args() - -def read_input(filename): - """Read data from filename if given, stdin otherwise.""" - if filename is None: - file_data = sys.stdin.read() - else: - with open(filename, 'r') as f: - file_data = f.read() - return file_data - -def recipe_to_requirements(recipe_yaml): - reqs = yaml.load(recipe_yaml, Loader=yaml.FullLoader)['requirements'] - required_packages = set(reqs['build'] + reqs['run']) - return required_packages - -if __name__ == "__main__": - # convert the conda recipe to file of dependencies - args = parse_arguments() - recipe_yaml = read_input(args.recipe_file) - required_packages = recipe_to_requirements(recipe_yaml) - req_file_str = "\n".join(required_packages) - - if args.dry: - print(req_file_str) - else: - raise RuntimeError("Only dry run works") - for install in required_packages: - channels = ['conda-forge', 'omnia'] - channel_str = sum([['-c', channel] for channel in channels], []) - sys.argv = ['conda', 'install'] + channel_str + [install] - # print(sys.argv) - conda.cli.main() - - # with tempfile.NamedTemporaryFile() as tmp: - # tmp.write(req_file_str) - # print(tmp.name) - # sys.argv = ['conda', 'install', '--file', tmp.name] - # conda.cli.main('conda', 'install', '--file', tmp.name) diff --git a/setup.yaml b/setup.yaml deleted file mode 100644 index 39dbc680a..000000000 --- a/setup.yaml +++ /dev/null @@ -1,84 +0,0 @@ -name: openpathsampling -version: 0.9.2 - -authors: - - David W.H. Swenson - - Jan-Hendrik Prinz - - John D. Chodera - - Peter Bolhuis - -emails: - - dwhs@hyperblazer.net - - jan.prinz@choderalab.org, - - choderaj@mskcc.org - - p.g.bolhuis@uva.nl - -description: 'OpenPathSampling: A python package to do path sampling simulations' - -long_description: | - OpenPathSampling (http://github.com/choderalab/openpathsampling) is a - python library to do transition interface sampling. - -classifiers: | - Development Status :: 3 - Alpha - Intended Audience :: Science/Research - Intended Audience :: Developers - License :: OSI Approved :: GNU Lesser General - Public License v2.1 or later (LGPLv2.1+) - Programming Language :: C - Programming Language :: Python - Programming Language :: Python :: 2 - Topic :: Scientific/Engineering :: Bio-Informatics - Topic :: Scientific/Engineering :: Chemistry - Operating System :: Microsoft :: Windows - Operating System :: POSIX - Operating System :: Unix - Operating System :: MacOS - -download_url: http://github.com/openpathsampling/openpathsampling -url: http://www.openpathsampling.org - -package_data: - openpathsampling: - - openpathsampling/css/*.css - -packages: - - openpathsampling - - openpathsampling.storage - - openpathsampling.storage.stores - - openpathsampling.tests - - openpathsampling.analysis - - openpathsampling.high_level - - openpathsampling.numerics - - openpathsampling.netcdfplus - - openpathsampling.engines - - openpathsampling.engines.features - - openpathsampling.engines.openmm - - openpathsampling.engines.openmm.features - - openpathsampling.engines.toy - - openpathsampling.engines.toy.features - -platforms: - - Linux - - Mac OS X - - Windows - -released: false - -requires: - - python - - numpy - - scipy - - pandas - - jupyter - - netcdf4 - - openmm - - openmmtools - - mdtraj - - svgwrite - - networkx - - matplotlib - - ujson - -license: LGPL 2.1 or later -license_file: LICENSE From 0a57e912a13a0c63650983cfc03e2d4dbcf9925e Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 17 Sep 2020 00:53:42 +0200 Subject: [PATCH 379/464] =?UTF-8?q?fix=20the=20obvious=20problem=20?= =?UTF-8?q?=F0=9F=99=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- devtools/conda_install_reqs.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/devtools/conda_install_reqs.sh b/devtools/conda_install_reqs.sh index 4d1023b1d..a6fad47f0 100644 --- a/devtools/conda_install_reqs.sh +++ b/devtools/conda_install_reqs.sh @@ -43,4 +43,4 @@ else fi echo "conda install -y -q -c conda-forge -c omnia $PY_INSTALL $ALL_PACKAGES" -#conda install -y -q -c conda-forge -c omnia $PY_INSTALL $ALL_PACKAGES +conda install -y -q -c conda-forge -c omnia $PY_INSTALL $ALL_PACKAGES From bffabb2a0346d22b4d872de1ba4bed8bc7b12874 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 17 Sep 2020 10:14:46 +0200 Subject: [PATCH 380/464] helps if you install the integrations... --- devtools/conda_install_reqs.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/devtools/conda_install_reqs.sh b/devtools/conda_install_reqs.sh index a6fad47f0..94f1786a0 100644 --- a/devtools/conda_install_reqs.sh +++ b/devtools/conda_install_reqs.sh @@ -32,14 +32,15 @@ PY_INSTALL="python=$CONDA_PY" echo "REQUIREMENTS=$REQUIREMENTS" echo "WORKAROUNDS=$WORKAROUNDS" +echo "INTEGRATIONS=$INTEGRATIONS" echo "PY_INSTALL=$PY_INSTALL" echo "TESTING=$TESTING" # TODO: adjust this to be per python version if [ "$CONDA_PY" != "3.7" ]; then - ALL_PACKAGES="$WORKAROUNDS $REQUIREMENTS $TESTING $EXTRA" + ALL_PACKAGES="$WORKAROUNDS $REQUIREMENTS $INTEGRATIONS $TESTING $EXTRA" else - ALL_PACKAGES="$WORKAROUNDS $REQUIREMENTS $TESTING" # no msmbuilder for py3.7? + ALL_PACKAGES="$WORKAROUNDS $REQUIREMENTS $INTEGRATIONS $TESTING" # no msmbuilder for py3.7? fi echo "conda install -y -q -c conda-forge -c omnia $PY_INSTALL $ALL_PACKAGES" From fdeca88504b017a7013593827cfae3edbcf30e49 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 17 Sep 2020 10:36:46 +0200 Subject: [PATCH 381/464] devtools cleanup --- devtools/conda_install_reqs.sh | 25 +++++++++++-------------- devtools/minimal_testing.txt | 2 +- devtools/optional_packages.txt | 0 devtools/setup_cfg_reqs.py | 7 +++++-- devtools/testing_requirements.txt | 5 ----- 5 files changed, 17 insertions(+), 22 deletions(-) delete mode 100644 devtools/optional_packages.txt delete mode 100644 devtools/testing_requirements.txt diff --git a/devtools/conda_install_reqs.sh b/devtools/conda_install_reqs.sh index 94f1786a0..7755d74ea 100644 --- a/devtools/conda_install_reqs.sh +++ b/devtools/conda_install_reqs.sh @@ -9,13 +9,13 @@ DEVTOOLS_DIR=`dirname "${BASH_SOURCE[0]}"` -#if [ ! -z "$OPS_ENV" ] -#then - #conda create -q -y --name $OPS_ENV conda future pyyaml python=$CONDA_PY - #source activate $OPS_ENV -#else - #conda install -y -q future pyyaml # ensure that these are available -#fi +if [ ! -z "$OPS_ENV" ] +then + conda create -q -y --name $OPS_ENV conda future pyyaml python=$CONDA_PY + source activate $OPS_ENV +else + conda install -y -q future pyyaml # ensure that these are available +fi # for some reason, these approaches to pinning don't always work (but conda # always obeys if you explicitly request a pinned version) @@ -27,7 +27,6 @@ WORKAROUNDS="" REQUIREMENTS=`python ${DEVTOOLS_DIR}/setup_cfg_reqs.py` TESTING=`python ${DEVTOOLS_DIR}/setup_cfg_reqs.py --extra testing` INTEGRATIONS=`cat ${DEVTOOLS_DIR}/tested_integrations.txt | tr "\n" " "` -EXTRA=`cat ${DEVTOOLS_DIR}/optional_packages.txt | tr "\n" " "` PY_INSTALL="python=$CONDA_PY" echo "REQUIREMENTS=$REQUIREMENTS" @@ -36,12 +35,10 @@ echo "INTEGRATIONS=$INTEGRATIONS" echo "PY_INSTALL=$PY_INSTALL" echo "TESTING=$TESTING" -# TODO: adjust this to be per python version -if [ "$CONDA_PY" != "3.7" ]; then - ALL_PACKAGES="$WORKAROUNDS $REQUIREMENTS $INTEGRATIONS $TESTING $EXTRA" -else - ALL_PACKAGES="$WORKAROUNDS $REQUIREMENTS $INTEGRATIONS $TESTING" # no msmbuilder for py3.7? -fi +# TODO: allow different installs for different versions +# (needed this when msmbuilder was only available on older pythons; similar +# situations may come up in the future) +ALL_PACKAGES="$WORKAROUNDS $REQUIREMENTS $INTEGRATIONS $TESTING" echo "conda install -y -q -c conda-forge -c omnia $PY_INSTALL $ALL_PACKAGES" conda install -y -q -c conda-forge -c omnia $PY_INSTALL $ALL_PACKAGES diff --git a/devtools/minimal_testing.txt b/devtools/minimal_testing.txt index d5fc7124d..c3f4152f8 100644 --- a/devtools/minimal_testing.txt +++ b/devtools/minimal_testing.txt @@ -1,4 +1,4 @@ nose -pytest!=5.3.4 +pytest pytest-cov coveralls diff --git a/devtools/optional_packages.txt b/devtools/optional_packages.txt deleted file mode 100644 index e69de29bb..000000000 diff --git a/devtools/setup_cfg_reqs.py b/devtools/setup_cfg_reqs.py index c5a8dc7dd..40ce83500 100644 --- a/devtools/setup_cfg_reqs.py +++ b/devtools/setup_cfg_reqs.py @@ -20,10 +20,13 @@ def clean(string): def main(setup_cfg, extra): config = configparser.ConfigParser() config.read(setup_cfg) + # replace get with the __getitem__ syntax when we drop py27 if extra is None: - reqs = config['options']['install_requires'] + # reqs = config['options']['install_requires'] + reqs = config.get('options', 'install_requires') else: - reqs = config['options.extras_require'][extra] + # reqs = config['options.extras_require'][extra] + reqs = config.get('options', 'extras_require', extra) return clean(reqs) if __name__ == "__main__": diff --git a/devtools/testing_requirements.txt b/devtools/testing_requirements.txt deleted file mode 100644 index 8434128b2..000000000 --- a/devtools/testing_requirements.txt +++ /dev/null @@ -1,5 +0,0 @@ -nose -pytest -pytest-cov -coveralls -ipynbtest From 091a949c481a61b81679891855a7a5c143637a42 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 17 Sep 2020 10:44:52 +0200 Subject: [PATCH 382/464] more py27-related fixes --- devtools/setup_cfg_reqs.py | 2 +- setup.cfg | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/devtools/setup_cfg_reqs.py b/devtools/setup_cfg_reqs.py index 40ce83500..40770d56b 100644 --- a/devtools/setup_cfg_reqs.py +++ b/devtools/setup_cfg_reqs.py @@ -26,7 +26,7 @@ def main(setup_cfg, extra): reqs = config.get('options', 'install_requires') else: # reqs = config['options.extras_require'][extra] - reqs = config.get('options', 'extras_require', extra) + reqs = config.get('options.extras_require', extra) return clean(reqs) if __name__ == "__main__": diff --git a/setup.cfg b/setup.cfg index 6e5b489a8..3e463cf40 100644 --- a/setup.cfg +++ b/setup.cfg @@ -38,8 +38,8 @@ install_requires = matplotlib ujson<2 mdtraj - # mdtraj is not technically required, but we co-package it because it is - # required for many integrations with other packages +# mdtraj is not technically required, but we co-package it because it is +# required for many integrations with other packages packages = find: [options.extras_require] From da649e6176de9f0efdaed49185bf4f842ff9e42b Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 17 Sep 2020 11:20:02 +0200 Subject: [PATCH 383/464] testing => test --- devtools/conda_install_reqs.sh | 2 +- setup.cfg | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/devtools/conda_install_reqs.sh b/devtools/conda_install_reqs.sh index 7755d74ea..4f412b9e5 100644 --- a/devtools/conda_install_reqs.sh +++ b/devtools/conda_install_reqs.sh @@ -25,7 +25,7 @@ fi # WORKAROUNDS is normally empty; needed if other pkgs don't list all deps WORKAROUNDS="" REQUIREMENTS=`python ${DEVTOOLS_DIR}/setup_cfg_reqs.py` -TESTING=`python ${DEVTOOLS_DIR}/setup_cfg_reqs.py --extra testing` +TESTING=`python ${DEVTOOLS_DIR}/setup_cfg_reqs.py --extra test` INTEGRATIONS=`cat ${DEVTOOLS_DIR}/tested_integrations.txt | tr "\n" " "` PY_INSTALL="python=$CONDA_PY" diff --git a/setup.cfg b/setup.cfg index 3e463cf40..64edf9e0c 100644 --- a/setup.cfg +++ b/setup.cfg @@ -43,7 +43,7 @@ install_requires = packages = find: [options.extras_require] -testing = +test = nose pytest pytest-cov From 40ca424eab69bc2a94f8e2ebc86c4311d867d86b Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 17 Sep 2020 12:28:43 +0200 Subject: [PATCH 384/464] add pytest.ini Prevents pytest from collecting tests of experimental. --- pytest.ini | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 pytest.ini diff --git a/pytest.ini b/pytest.ini new file mode 100644 index 000000000..cf6b0c3e4 --- /dev/null +++ b/pytest.ini @@ -0,0 +1,2 @@ +[pytest] +norecursedirs = experimental From 0b9ee90a8de406ca61d37c0e53146e9a0f399b58 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 17 Sep 2020 16:51:47 +0200 Subject: [PATCH 385/464] CI section for tests on experimental packages --- devtools/ci/pytests.sh | 14 ++++++++++++++ devtools/conda_install_reqs.sh | 8 +++++--- devtools/experimental_reqs.txt | 1 + 3 files changed, 20 insertions(+), 3 deletions(-) create mode 100644 devtools/experimental_reqs.txt diff --git a/devtools/ci/pytests.sh b/devtools/ci/pytests.sh index 4d92e62e7..0ac6102ee 100755 --- a/devtools/ci/pytests.sh +++ b/devtools/ci/pytests.sh @@ -9,6 +9,20 @@ pytest -vv -s --cov --cov-report xml:cov.xml || testfail=1 COVERALLS_PARALLEL=true coveralls echo travis_fold:end:pytests +if [ $testfail -eq 1 ] +then + exit 1 +fi + +if [ $CONDA_PY != "2.7" ]; then + # experimental does not need to support Python 2 + echo travis_fold:start:experimental + echo Running tests on experimental features + pytest openpathsampling/experimental/ -vv -s || testfail=1 + echo travis_fold:end:experimental +fi + + if [ $testfail -eq 1 ] then exit 1 diff --git a/devtools/conda_install_reqs.sh b/devtools/conda_install_reqs.sh index 4f412b9e5..637822f91 100644 --- a/devtools/conda_install_reqs.sh +++ b/devtools/conda_install_reqs.sh @@ -27,18 +27,20 @@ WORKAROUNDS="" REQUIREMENTS=`python ${DEVTOOLS_DIR}/setup_cfg_reqs.py` TESTING=`python ${DEVTOOLS_DIR}/setup_cfg_reqs.py --extra test` INTEGRATIONS=`cat ${DEVTOOLS_DIR}/tested_integrations.txt | tr "\n" " "` +EXPERIMENTAL=`cat ${DEVTOOLS_DIR}/experimental_reqs.txt | tr "\n" " "` PY_INSTALL="python=$CONDA_PY" +echo "PY_INSTALL=$PY_INSTALL" echo "REQUIREMENTS=$REQUIREMENTS" -echo "WORKAROUNDS=$WORKAROUNDS" echo "INTEGRATIONS=$INTEGRATIONS" -echo "PY_INSTALL=$PY_INSTALL" +echo "EXPERIMENTAL=$EXPERIMENTAL" +echo "WORKAROUNDS=$WORKAROUNDS" echo "TESTING=$TESTING" # TODO: allow different installs for different versions # (needed this when msmbuilder was only available on older pythons; similar # situations may come up in the future) -ALL_PACKAGES="$WORKAROUNDS $REQUIREMENTS $INTEGRATIONS $TESTING" +ALL_PACKAGES="$WORKAROUNDS $REQUIREMENTS $INTEGRATIONS $EXPERIMENTAL $TESTING" echo "conda install -y -q -c conda-forge -c omnia $PY_INSTALL $ALL_PACKAGES" conda install -y -q -c conda-forge -c omnia $PY_INSTALL $ALL_PACKAGES diff --git a/devtools/experimental_reqs.txt b/devtools/experimental_reqs.txt new file mode 100644 index 000000000..39fb2befb --- /dev/null +++ b/devtools/experimental_reqs.txt @@ -0,0 +1 @@ +sqlalchemy From 4b15df4fa52ced331f32034bfbd91b3d0c9e6c66 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 17 Sep 2020 17:36:04 +0200 Subject: [PATCH 386/464] don't run experimental tests in minimal --- devtools/ci/pytests.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/devtools/ci/pytests.sh b/devtools/ci/pytests.sh index 0ac6102ee..862118751 100755 --- a/devtools/ci/pytests.sh +++ b/devtools/ci/pytests.sh @@ -14,7 +14,7 @@ then exit 1 fi -if [ $CONDA_PY != "2.7" ]; then +if [ $CONDA_PY != "2.7" && -z "$MINIMAL" ]; then # experimental does not need to support Python 2 echo travis_fold:start:experimental echo Running tests on experimental features From 0e02c210e6a9a28018f56333e1d7cdb5362116e1 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 17 Sep 2020 22:59:24 +0200 Subject: [PATCH 387/464] use blocksize in storage table iterator --- openpathsampling/experimental/storage/storage.py | 14 +++++++++----- openpathsampling/experimental/storage/tools.py | 10 ++++++++++ 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/openpathsampling/experimental/storage/storage.py b/openpathsampling/experimental/storage/storage.py index 096e08104..08b9a26c9 100644 --- a/openpathsampling/experimental/storage/storage.py +++ b/openpathsampling/experimental/storage/storage.py @@ -406,15 +406,17 @@ def __init__(self, storage, table, cache=None): self.storage = storage self.table = table self.clear_cache_frequency = 1 - self.iter_block_size = 1 + self.iter_block_size = 100 # TODO: base it on the size of an object def __iter__(self): # TODO: ensure that this gives us things in idx order - backend_iterator = self.storage.backend.table_iterator(self.table) - # TODO: implement use of self.iter_block_size + backend_iter = self.storage.backend.table_iterator(self.table) # TODO: implement use of self.clear_cache_frequency - for row in backend_iterator: - yield self.storage.load([row.uuid])[0] + for block in tools.grouper(backend_iter, self.iter_block_size): + row_uuids = [row.uuid for row in block] + loaded = self.storage.load(row_uuids) + for obj in loaded: + yield obj def __getitem__(self, item): row = self.storage.backend.table_get_item(self.table, item) @@ -435,6 +437,8 @@ class PseudoTable(abc.MutableSequence): # TODO: use this in the main code # NOTE: This will require that the storage class append to it """List of objects that can be retrieved by index or name. + + PseudoTables are used to group simulation objects together. """ def __init__(self, sequence=None): self._sequence = [] diff --git a/openpathsampling/experimental/storage/tools.py b/openpathsampling/experimental/storage/tools.py index fcd275688..f5c6dd571 100644 --- a/openpathsampling/experimental/storage/tools.py +++ b/openpathsampling/experimental/storage/tools.py @@ -1,3 +1,4 @@ +import itertools import collections from numpy import ndarray @@ -103,6 +104,15 @@ def block(sliceable, length): max_val += length max_val = min(max_val, max_len) +_no_fill = object() +def grouper(iterable, length, fillvalue=_no_fill): + # based on https://stackoverflow.com/a/10791887 + args = [iter(iterable)] * length + for block in itertools.zip_longest(*args, fillvalue=fillvalue): + if tuple(block)[-1] is _no_fill: + yield tuple(elem for elem in block if elem is not _no_fill) + else: + yield tuple(block) def compare_sets(set1, set2): only_in_1 = set1 - set2 From 1613b3418a5805113150cfcc84c5eba676902d6d Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Wed, 23 Sep 2020 13:43:04 +0200 Subject: [PATCH 388/464] SQL backend fixes that Sander found --- .../experimental/storage/sql_backend.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/openpathsampling/experimental/storage/sql_backend.py b/openpathsampling/experimental/storage/sql_backend.py index 7bb062891..8cd4edba6 100644 --- a/openpathsampling/experimental/storage/sql_backend.py +++ b/openpathsampling/experimental/storage/sql_backend.py @@ -3,7 +3,7 @@ from collections import abc import sqlalchemy as sql from .storage import universal_schema -from .tools import group_by, compare_sets +from .tools import group_by, compare_sets, grouper from . import tools # import ujson as json # ujson is no longer maintained import json @@ -124,7 +124,7 @@ def _initialize_with_mode(self, mode): sql.Column('value', sql.String)) self.metadata.create_all(self.engine) - self.register_schema(universal_schema, {}) + self.register_schema(universal_schema, universal_sql_meta) elif mode == "r" or mode == "a": self.metadata.reflect(self.engine) self.schema = self.database_schema() @@ -216,10 +216,13 @@ def _load_from_table(self, table_name, idx_list): # this is not public API (assumes idx_list, which is reserved by not # guaranteed) table = self.metadata.tables[table_name] - or_stmt = sql.or_(*(table.c.idx == idx for idx in idx_list)) - sel = table.select(or_stmt) + results = [] with self.engine.connect() as conn: - results = list(conn.execute(sel)) + for block in grouper(idx_list, 1000): + or_stmt = sql.or_(*(table.c.idx == idx for idx in block)) + sel = table.select(or_stmt) + results.extend(list(conn.execute(sel))) + return results From 47e0cfed383479a096a3bd73639574ecd37c836f Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Wed, 23 Sep 2020 13:44:01 +0200 Subject: [PATCH 389/464] Update openpathsampling/experimental/storage/serialization_helpers.py Co-authored-by: sroet --- openpathsampling/experimental/storage/serialization_helpers.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openpathsampling/experimental/storage/serialization_helpers.py b/openpathsampling/experimental/storage/serialization_helpers.py index dad410397..407723c16 100644 --- a/openpathsampling/experimental/storage/serialization_helpers.py +++ b/openpathsampling/experimental/storage/serialization_helpers.py @@ -445,7 +445,7 @@ def get_all_uuids_loading(uuid_list, backend, schema, existing_uuids=None): """ if existing_uuids is None: existing_uuids = {} - known_uuids = set(existing_uuids.keys()) + known_uuids = set(existing_uuids) uuid_to_table = {} all_table_rows = [] lazy = set([]) From 0af4f7d401f14b04a9b78f69017c9fd315261358 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Wed, 23 Sep 2020 17:24:14 +0200 Subject: [PATCH 390/464] allow negative indices in tables --- openpathsampling/experimental/storage/storage.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/openpathsampling/experimental/storage/storage.py b/openpathsampling/experimental/storage/storage.py index 08b9a26c9..d2d32a21e 100644 --- a/openpathsampling/experimental/storage/storage.py +++ b/openpathsampling/experimental/storage/storage.py @@ -419,6 +419,13 @@ def __iter__(self): yield obj def __getitem__(self, item): + len_self = len(self) + if not (-len_self <= item < len_self): + raise IndexError("table index out of range") + + if item < 0: + item += len(self) + row = self.storage.backend.table_get_item(self.table, item) return self.storage.load([row.uuid])[0] From 22b63d062f56daf023de57b36c7cf3e8fe586def Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Wed, 22 Jul 2020 17:20:12 +0200 Subject: [PATCH 391/464] Changes to make storage objects storable --- .../experimental/storage/ops_storage.py | 31 ++++++- .../experimental/storage/sql_backend.py | 90 ++++++++++++++----- .../experimental/storage/storage.py | 11 ++- 3 files changed, 106 insertions(+), 26 deletions(-) diff --git a/openpathsampling/experimental/storage/ops_storage.py b/openpathsampling/experimental/storage/ops_storage.py index 07f3248ca..df369ed03 100644 --- a/openpathsampling/experimental/storage/ops_storage.py +++ b/openpathsampling/experimental/storage/ops_storage.py @@ -29,6 +29,8 @@ from .class_info import ClassInfo, ClassInfoContainer +from .sql_backend import SQLStorageBackend # TODO: generalize + from . import snapshots import logging logger = logging.getLogger(__name__) @@ -52,6 +54,7 @@ 'details': [('json', 'json_obj')], 'storable_functions': [('json', 'json_obj')],#, ('class_idx', 'int')], 'simulation_objects': [('json', 'json_obj')],#, ('class_idx', 'int')] + 'storage_objects': [('json', 'json_obj')] } # this includes any sql-specific metadata @@ -99,12 +102,14 @@ class OPSSpecialLookup(object): # lookup function -- often that lookup function just returns the class # TODO: especially annoying to have StorableFunction as a special special_superclasses = (paths.BaseSnapshot, paths.MoveChange, - paths.Details, StorableFunction) + paths.Details, StorableFunction, + storage.GeneralStorage, SQLStorageBackend) snapshot_lookup_function = \ lambda self, snap: (get_uuid(snap.engine), snap.__class__) details_lookup_function = lambda self, details: paths.Details movechange_lookup_function = lambda self, change: paths.MoveChange sf_lookup_function = lambda self, func: StorableFunction + storage_obj_lookup_function = lambda self, func: storage.GeneralStorage def __init__(self): self.secondary_lookups = {} @@ -123,6 +128,8 @@ def __call__(self, item): self.secondary_lookups[cls] = self.snapshot_lookup_function elif isinstance(item, StorableFunction): self.secondary_lookups[cls] = self.sf_lookup_function + elif isinstance(item, (storage.GeneralStorage, SQLStorageBackend)): + self.secondary_lookups[cls] = self.storage_obj_lookup_function elif isinstance(item, paths.MoveChange): self.secondary_lookups[cls] = self.movechange_lookup_function elif isinstance(item, paths.Details): @@ -200,6 +207,11 @@ def _build_ops_serializer(schema, safe_codecs, unsafe_codecs): find_uuids=storable_function_find_uuids, serializer=unsafe_codecs.simobj_serializer, deserializer=unsafe_codecs.simobj_deserializer), + ClassInfo(table="storage_objects", + cls=storage.GeneralStorage, + serializer=safe_codecs.simobj_serializer, + deserializer=safe_codecs.simobj_deserializer, + find_uuids=default_find_uuids), ] ) @@ -240,6 +252,11 @@ def sync_all(self): def from_backend(cls, backend, schema=None, class_info=None, simulation_classes=None, fallbacks=None, safemode=False): + # quick exit if this storage is known + exists = cls._known_storages.get(backend.identifier, None) + if exists is not None: + return exists + obj = cls.__new__(cls) schema = tools.none_to_default(schema, ops_schema) class_info = tools.none_to_default(class_info, ops_class_info) @@ -255,6 +272,18 @@ def from_backend(cls, backend, schema=None, class_info=None, obj.n_snapshot_types = 0 return obj + def to_dict(self): + return {'backend': self.backend, + 'fallbacks': self.fallbacks, + 'safemode': self.safemode} + + @classmethod + def from_dict(cls, dct): + return cls.from_backend(**dct) + + def __reduce__(self): + return (self.from_dict, (self.to_dict(),)) + def register_from_tables(self, table_names, classes): lookups = {} table_to_class = {tbl: cls for tbl, cls in zip(table_names, classes)} diff --git a/openpathsampling/experimental/storage/sql_backend.py b/openpathsampling/experimental/storage/sql_backend.py index bf3749726..96565c3eb 100644 --- a/openpathsampling/experimental/storage/sql_backend.py +++ b/openpathsampling/experimental/storage/sql_backend.py @@ -68,8 +68,8 @@ def sql_db_execute(engine, statements, execmany_dict=None): results = results[0] return results - -class SQLStorageBackend(object): +from openpathsampling.netcdfplus import StorableNamedObject +class SQLStorageBackend(StorableNamedObject): """Generic storage backend for SQL. Uses SQLAlchemy; could easily duck-type an object that implements the @@ -85,14 +85,19 @@ class SQLStorageBackend(object): databases, but keeps the interface consistent sql_dialect : str name of the SQL dialect to use; default is sqlite - echo : bool - whether the engine to echo SQL commands to stdout (useful for - debugging) + + Additional keyword arguments are passed to sqlalchemy.create_engine. Of + particular use is ``echo`` (bool) which echos SQL commands to stdout + (useful for debugging). + + More info: https://docs.sqlalchemy.org/en/latest/core/engines.html """ - def __init__(self, filename, mode='r', sql_dialect=None, echo=False): + def __init__(self, filename, mode='r', sql_dialect='sqlite', **kwargs): + super().__init__() self.filename = filename - sql_dialect = tools.none_to_default(sql_dialect, 'sqlite') + self.sql_dialect = sql_dialect self.mode = mode + self.kwargs = kwargs self.debug = False self.max_query_size = 900 @@ -104,18 +109,58 @@ def __init__(self, filename, mode='r', sql_dialect=None, echo=False): # TODO: change this to an LRU cache self.known_uuids = collections.defaultdict(set) - if self.mode == "w" and os.path.exists(filename): - # delete existing file; write after - os.remove(filename) - # we prevent writes by disallowing write method in read mode; # for everything else; just connect to the database - connection_uri = self.filename_from_dialect(filename, sql_dialect) - self.engine = sql.create_engine(connection_uri, - echo=echo) + self.engine = None + self.connection_uri = None + self._metadata = None + if filename is not None: + if self.mode == "w" and os.path.exists(filename): + # delete existing file; write after + os.remove(filename) + + self.connection_uri = self.filename_from_dialect( + filename, + self.sql_dialect + ) + engine = sql.create_engine(self.connection_uri, **self.kwargs) + self._initialize_from_engine(engine) + + def _initialize_from_engine(self, engine): + self.engine = engine self._metadata = sql.MetaData(bind=self.engine) self._initialize_with_mode(self.mode) + @property + def identifier(self): + return self.connection_uri, self.mode + + def to_dict(self): + return { + 'filename': self.filename, + 'sql_dialect': self.sql_dialect, + 'mode': 'a' if self.mode == 'w' else self.mode, + 'connection_uri': self.connection_uri, + 'kwargs': self.kwargs, + } + + @classmethod + def from_dict(cls, dct): + init_dct = dct.copy() + filename = init_dct.pop('filename') + connection_uri = init_dct.pop('connection_uri') + kwargs = init_dct.pop('kwargs') + init_dct.update(kwargs) + obj = cls(filename=None, **init_dct) + obj.connection_uri = connection_uri + obj.filename = filename + engine = sql.create_engine(connection_uri, **obj.kwargs) + obj._initialize_from_engine(engine) + return obj + + def __reduce__(self): + return (self.from_dict, (self.to_dict(),)) + def _initialize_with_mode(self, mode): """setup of tables; etc, as varies between w and r/a modes""" if mode == "w": @@ -136,7 +181,7 @@ def _initialize_with_mode(self, mode): self.internal_tables_from_db() @classmethod - def from_engine(cls, engine, mode='r'): + def from_engine(cls, engine, connection_uri=None, **kwargs): """Constructor allowing user to specify the SQLAlchemy Engine. The default constructor doesn't allow all the options to the engine @@ -145,14 +190,13 @@ def from_engine(cls, engine, mode='r'): More info: https://docs.sqlalchemy.org/en/latest/core/engines.html """ - obj = cls.__new__(cls) - self._metadata = sql.MetaData() - self.schema = {} - self.table_to_number = {} - self.number_to_table = {} - self.engine = engine - self.mode = mode - self._initialize_with_mode(self.mode) + filename = kwargs.pop('filename', None) + obj = cls(**kwargs) + obj.filename = filename + obj.connection_uri = connection_uri + obj._metadata = sql.MetaData(bind=engine) + obj._initialize_with_mode(self.mode) + return obj def close(self): diff --git a/openpathsampling/experimental/storage/storage.py b/openpathsampling/experimental/storage/storage.py index 144bb9a64..d7ca13c25 100644 --- a/openpathsampling/experimental/storage/storage.py +++ b/openpathsampling/experimental/storage/storage.py @@ -43,13 +43,16 @@ ('class_name', 'str')] } -class GeneralStorage(object): +from openpathsampling.netcdfplus import StorableNamedObject +class GeneralStorage(StorableNamedObject): + _known_storages = {} def __init__(self, backend, class_info, schema=None, simulation_classes=None, fallbacks=None, safemode=False): + super().__init__() + GeneralStorage._known_storages = {backend.identifier: self} self.backend = backend self.schema = schema.copy() self.class_info = class_info.copy() - self.mode = self.backend.mode self._safemode = None self.safemode = safemode self._sf_handler = StorageFunctionHandler(storage=self) @@ -76,6 +79,10 @@ def __init__(self, backend, class_info, schema=None, self._stashed = [] self._reset_fixed_cache() + @property + def mode(self): + return self.backend.mode + @property def safemode(self): return self._safemode From 2c683565270d4341989dfde7280b2b2e82f8e487 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 24 Sep 2020 11:57:05 +0200 Subject: [PATCH 392/464] use mixed cache for existing sim objs --- .../experimental/storage/storage.py | 21 +++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/openpathsampling/experimental/storage/storage.py b/openpathsampling/experimental/storage/storage.py index d2d32a21e..d363f0f00 100644 --- a/openpathsampling/experimental/storage/storage.py +++ b/openpathsampling/experimental/storage/storage.py @@ -63,13 +63,14 @@ def __init__(self, backend, class_info, schema=None, self._pseudo_tables['misc_simulation'] = PseudoTable() self._storage_tables = {} # stores .steps, .snapshots - self._simulation_objects = self._cache_simulation_objects() - self.cache = MixedCache(self._simulation_objects) # self.serialization = Serialization(self) self.proxy_factory = ProxyObjectFactory(self, self.class_info) if self.schema is None: self.schema = backend.schema + self.cache = MixedCache({}) # initial empty cache so it exists self.initialize_with_mode(self.mode) + self._simulation_objects = self._cache_simulation_objects() + self.cache = MixedCache(self._simulation_objects) self._stashed = [] def initialize_with_mode(self, mode): @@ -302,11 +303,19 @@ def sync_all(self): pass def _cache_simulation_objects(self): - # backend_iterator = self.backend.table_iterator('simulation_objects') - # sim_obj_uuids = [row.uuid for row in backend_iterator] - # objs = self.load(sim_obj_uuids) # load up all the simulation objects - return {} + try: + backend_iter = self.backend.table_iterator('simulation_objects') + sim_obj_uuids = [row.uuid for row in backend_iter] + except KeyError: + # TODO: this should probably be a custom error; don't rely on + # the error type this backend raises + # this happens if no simulation objects are given in the + # schema... there's not technically required + objs = [] + else: + objs = self.load(sim_obj_uuids) + return {get_uuid(obj): obj for obj in objs} def _update_pseudo_tables(self, simulation_objects): # TODO: replace the pseudo_tables code here with a class From bc371b11910b7355f55284b7123b878e2d853c90 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 24 Sep 2020 12:12:20 +0200 Subject: [PATCH 393/464] cache clearing when iterating StorageTable --- openpathsampling/experimental/storage/storage.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/openpathsampling/experimental/storage/storage.py b/openpathsampling/experimental/storage/storage.py index d363f0f00..337c9080c 100644 --- a/openpathsampling/experimental/storage/storage.py +++ b/openpathsampling/experimental/storage/storage.py @@ -370,6 +370,9 @@ def __init__(self, fixed_cache=None): self.fixed_cache = tools.none_to_default(fixed_cache, default={}) self.cache = {} + def clear(self): + self.cache = {} + def delete_items(self, list_of_items, error_if_missing=False): for item in list_of_items: if item in self: @@ -414,16 +417,20 @@ class StorageTable(abc.Sequence): def __init__(self, storage, table, cache=None): self.storage = storage self.table = table - self.clear_cache_frequency = 1 + self.clear_cache_block_freq = 100 self.iter_block_size = 100 # TODO: base it on the size of an object def __iter__(self): # TODO: ensure that this gives us things in idx order backend_iter = self.storage.backend.table_iterator(self.table) # TODO: implement use of self.clear_cache_frequency - for block in tools.grouper(backend_iter, self.iter_block_size): + enum_iter = enumerate(tools.grouper(backend_iter, + self.iter_block_size)) + for block_num, block in enum_iter: row_uuids = [row.uuid for row in block] loaded = self.storage.load(row_uuids) + if block_num % self.iter_block_size == 0: + self.storage.cache.clear() for obj in loaded: yield obj From efbf0cb05859dab597a46bc8c43b6ad9ce28cfc7 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 24 Sep 2020 12:40:50 +0200 Subject: [PATCH 394/464] draft StorageTable.cache_all() This would be useful for, e.g, MoveChanges --- openpathsampling/experimental/storage/storage.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/openpathsampling/experimental/storage/storage.py b/openpathsampling/experimental/storage/storage.py index 337c9080c..9ee9ecc81 100644 --- a/openpathsampling/experimental/storage/storage.py +++ b/openpathsampling/experimental/storage/storage.py @@ -448,6 +448,11 @@ def __getitem__(self, item): def __len__(self): return self.storage.backend.table_len(self.table) + def cache_all(self): + old_blocksize = self.iter_block_size + self.iter_block_size = len(self) + _ = list(iter(self)) + def save(self, obj): # this is to match with the netcdfplus API self.storage.save(obj) From 3e4ce6113b1dcdfae88eacfb198e5132f69d5276 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 24 Sep 2020 15:07:24 +0200 Subject: [PATCH 395/464] fix problem with identifier for sqlite :memory: This was mainly causing errors in tests --- openpathsampling/experimental/storage/ops_storage.py | 3 ++- openpathsampling/experimental/storage/sql_backend.py | 5 ++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/openpathsampling/experimental/storage/ops_storage.py b/openpathsampling/experimental/storage/ops_storage.py index df369ed03..809c516a5 100644 --- a/openpathsampling/experimental/storage/ops_storage.py +++ b/openpathsampling/experimental/storage/ops_storage.py @@ -91,6 +91,8 @@ def __call__(self, uuid, table_dct, cache_list): set_uuid(obj, uuid) return obj + + class OPSSpecialLookup(object): """Separate object to handle special lookups @@ -256,7 +258,6 @@ def from_backend(cls, backend, schema=None, class_info=None, exists = cls._known_storages.get(backend.identifier, None) if exists is not None: return exists - obj = cls.__new__(cls) schema = tools.none_to_default(schema, ops_schema) class_info = tools.none_to_default(class_info, ops_class_info) diff --git a/openpathsampling/experimental/storage/sql_backend.py b/openpathsampling/experimental/storage/sql_backend.py index 96565c3eb..25d4d0254 100644 --- a/openpathsampling/experimental/storage/sql_backend.py +++ b/openpathsampling/experimental/storage/sql_backend.py @@ -133,7 +133,10 @@ def _initialize_from_engine(self, engine): @property def identifier(self): - return self.connection_uri, self.mode + if self.connection_uri == "sqlite:///:memory:": + return "sqlite:///{}".format(id(self)), self.mode + else: + return self.connection_uri, self.mode def to_dict(self): return { From b77319cfd1286dd6ff3bebc27bef8d09c7c3c30e Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 24 Sep 2020 16:50:00 +0200 Subject: [PATCH 396/464] Fix a potential bug in saving storage identifiers --- openpathsampling/experimental/storage/storage.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openpathsampling/experimental/storage/storage.py b/openpathsampling/experimental/storage/storage.py index 8699a0ad7..b7ad41042 100644 --- a/openpathsampling/experimental/storage/storage.py +++ b/openpathsampling/experimental/storage/storage.py @@ -49,7 +49,7 @@ class GeneralStorage(StorableNamedObject): def __init__(self, backend, class_info, schema=None, simulation_classes=None, fallbacks=None, safemode=False): super().__init__() - GeneralStorage._known_storages = {backend.identifier: self} + GeneralStorage._known_storages[backend.identifier] = self self.backend = backend self.schema = schema.copy() self.class_info = class_info.copy() From 65f71e160d8fdbbc96beb61ec82e2df5bd9cb499 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 24 Sep 2020 18:54:59 +0200 Subject: [PATCH 397/464] fix obvious mistake --- openpathsampling/experimental/storage/storage.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/openpathsampling/experimental/storage/storage.py b/openpathsampling/experimental/storage/storage.py index 9ee9ecc81..ffe61746c 100644 --- a/openpathsampling/experimental/storage/storage.py +++ b/openpathsampling/experimental/storage/storage.py @@ -415,6 +415,9 @@ class StorageTable(abc.Sequence): # NOTE: currently you still need to be able to hold the whole table in # memory ... at least, with the SQL backend. def __init__(self, storage, table, cache=None): + if cache is None: + cache = MixedCache({}) + self.cache = cache self.storage = storage self.table = table self.clear_cache_block_freq = 100 @@ -429,7 +432,7 @@ def __iter__(self): for block_num, block in enum_iter: row_uuids = [row.uuid for row in block] loaded = self.storage.load(row_uuids) - if block_num % self.iter_block_size == 0: + if block_num % self.clear_cache_block_freq == 0: self.storage.cache.clear() for obj in loaded: yield obj From 592429edcf816534158743d2c32e364921961413 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 24 Sep 2020 22:02:40 +0200 Subject: [PATCH 398/464] Remove cache from StorageTable.__init__ (unused) --- openpathsampling/experimental/storage/storage.py | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/openpathsampling/experimental/storage/storage.py b/openpathsampling/experimental/storage/storage.py index ffe61746c..6d79bc496 100644 --- a/openpathsampling/experimental/storage/storage.py +++ b/openpathsampling/experimental/storage/storage.py @@ -414,10 +414,7 @@ def __iter__(self): class StorageTable(abc.Sequence): # NOTE: currently you still need to be able to hold the whole table in # memory ... at least, with the SQL backend. - def __init__(self, storage, table, cache=None): - if cache is None: - cache = MixedCache({}) - self.cache = cache + def __init__(self, storage, table): self.storage = storage self.table = table self.clear_cache_block_freq = 100 @@ -426,7 +423,6 @@ def __init__(self, storage, table, cache=None): def __iter__(self): # TODO: ensure that this gives us things in idx order backend_iter = self.storage.backend.table_iterator(self.table) - # TODO: implement use of self.clear_cache_frequency enum_iter = enumerate(tools.grouper(backend_iter, self.iter_block_size)) for block_num, block in enum_iter: From c3fbbe0ed9b24af86a3e9db4923066f1432ebc11 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 24 Sep 2020 22:38:17 +0200 Subject: [PATCH 399/464] Update openpathsampling/experimental/storage/storage.py Co-authored-by: sroet --- openpathsampling/experimental/storage/storage.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openpathsampling/experimental/storage/storage.py b/openpathsampling/experimental/storage/storage.py index 6d79bc496..20acacf5e 100644 --- a/openpathsampling/experimental/storage/storage.py +++ b/openpathsampling/experimental/storage/storage.py @@ -428,7 +428,7 @@ def __iter__(self): for block_num, block in enum_iter: row_uuids = [row.uuid for row in block] loaded = self.storage.load(row_uuids) - if block_num % self.clear_cache_block_freq == 0: + if block_num % self.clear_cache_block_freq == 0 and block_num != 0: self.storage.cache.clear() for obj in loaded: yield obj From 1295837cd857df7f3a3189d9709ff5a844eefd59 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Fri, 25 Sep 2020 02:14:06 +0200 Subject: [PATCH 400/464] Rename and reduce system --- .../{storage => simstore}/backend.py | 0 .../{storage => simstore}/class_info.py | 0 .../{storage => simstore}/class_lookup.py | 0 .../{storage => simstore}/custom_json.py | 0 .../{storage => simstore}/my_types.py | 0 .../{storage => simstore}/serialization.py | 0 .../serialization_helpers.py | 0 .../{storage => simstore}/sql_backend.py | 0 .../{storage => simstore}/storage.py | 0 .../{storage => simstore}/test_backend.py | 0 .../{storage => simstore}/test_class_info.py | 0 .../{storage => simstore}/test_custom_json.py | 0 .../test_serialization.py | 0 .../test_serialization_helpers.py | 0 .../{storage => simstore}/test_sql_backend.py | 0 .../{storage => simstore}/test_storage.py | 0 .../{storage => simstore}/test_tools.py | 0 .../{storage => simstore}/test_utils.py | 0 .../{storage => simstore}/tools.py | 0 .../experimental/storage/__init__.py | 13 +++----- .../experimental/storage/mdtraj_json.py | 2 +- .../experimental/storage/ops_storage.py | 32 +++++++++---------- .../experimental/storage/snapshots.py | 4 +-- .../experimental/storage/test_mdtraj_json.py | 4 +-- .../experimental/storage/test_snapshots.py | 2 +- 25 files changed, 26 insertions(+), 31 deletions(-) rename openpathsampling/experimental/{storage => simstore}/backend.py (100%) rename openpathsampling/experimental/{storage => simstore}/class_info.py (100%) rename openpathsampling/experimental/{storage => simstore}/class_lookup.py (100%) rename openpathsampling/experimental/{storage => simstore}/custom_json.py (100%) rename openpathsampling/experimental/{storage => simstore}/my_types.py (100%) rename openpathsampling/experimental/{storage => simstore}/serialization.py (100%) rename openpathsampling/experimental/{storage => simstore}/serialization_helpers.py (100%) rename openpathsampling/experimental/{storage => simstore}/sql_backend.py (100%) rename openpathsampling/experimental/{storage => simstore}/storage.py (100%) rename openpathsampling/experimental/{storage => simstore}/test_backend.py (100%) rename openpathsampling/experimental/{storage => simstore}/test_class_info.py (100%) rename openpathsampling/experimental/{storage => simstore}/test_custom_json.py (100%) rename openpathsampling/experimental/{storage => simstore}/test_serialization.py (100%) rename openpathsampling/experimental/{storage => simstore}/test_serialization_helpers.py (100%) rename openpathsampling/experimental/{storage => simstore}/test_sql_backend.py (100%) rename openpathsampling/experimental/{storage => simstore}/test_storage.py (100%) rename openpathsampling/experimental/{storage => simstore}/test_tools.py (100%) rename openpathsampling/experimental/{storage => simstore}/test_utils.py (100%) rename openpathsampling/experimental/{storage => simstore}/tools.py (100%) diff --git a/openpathsampling/experimental/storage/backend.py b/openpathsampling/experimental/simstore/backend.py similarity index 100% rename from openpathsampling/experimental/storage/backend.py rename to openpathsampling/experimental/simstore/backend.py diff --git a/openpathsampling/experimental/storage/class_info.py b/openpathsampling/experimental/simstore/class_info.py similarity index 100% rename from openpathsampling/experimental/storage/class_info.py rename to openpathsampling/experimental/simstore/class_info.py diff --git a/openpathsampling/experimental/storage/class_lookup.py b/openpathsampling/experimental/simstore/class_lookup.py similarity index 100% rename from openpathsampling/experimental/storage/class_lookup.py rename to openpathsampling/experimental/simstore/class_lookup.py diff --git a/openpathsampling/experimental/storage/custom_json.py b/openpathsampling/experimental/simstore/custom_json.py similarity index 100% rename from openpathsampling/experimental/storage/custom_json.py rename to openpathsampling/experimental/simstore/custom_json.py diff --git a/openpathsampling/experimental/storage/my_types.py b/openpathsampling/experimental/simstore/my_types.py similarity index 100% rename from openpathsampling/experimental/storage/my_types.py rename to openpathsampling/experimental/simstore/my_types.py diff --git a/openpathsampling/experimental/storage/serialization.py b/openpathsampling/experimental/simstore/serialization.py similarity index 100% rename from openpathsampling/experimental/storage/serialization.py rename to openpathsampling/experimental/simstore/serialization.py diff --git a/openpathsampling/experimental/storage/serialization_helpers.py b/openpathsampling/experimental/simstore/serialization_helpers.py similarity index 100% rename from openpathsampling/experimental/storage/serialization_helpers.py rename to openpathsampling/experimental/simstore/serialization_helpers.py diff --git a/openpathsampling/experimental/storage/sql_backend.py b/openpathsampling/experimental/simstore/sql_backend.py similarity index 100% rename from openpathsampling/experimental/storage/sql_backend.py rename to openpathsampling/experimental/simstore/sql_backend.py diff --git a/openpathsampling/experimental/storage/storage.py b/openpathsampling/experimental/simstore/storage.py similarity index 100% rename from openpathsampling/experimental/storage/storage.py rename to openpathsampling/experimental/simstore/storage.py diff --git a/openpathsampling/experimental/storage/test_backend.py b/openpathsampling/experimental/simstore/test_backend.py similarity index 100% rename from openpathsampling/experimental/storage/test_backend.py rename to openpathsampling/experimental/simstore/test_backend.py diff --git a/openpathsampling/experimental/storage/test_class_info.py b/openpathsampling/experimental/simstore/test_class_info.py similarity index 100% rename from openpathsampling/experimental/storage/test_class_info.py rename to openpathsampling/experimental/simstore/test_class_info.py diff --git a/openpathsampling/experimental/storage/test_custom_json.py b/openpathsampling/experimental/simstore/test_custom_json.py similarity index 100% rename from openpathsampling/experimental/storage/test_custom_json.py rename to openpathsampling/experimental/simstore/test_custom_json.py diff --git a/openpathsampling/experimental/storage/test_serialization.py b/openpathsampling/experimental/simstore/test_serialization.py similarity index 100% rename from openpathsampling/experimental/storage/test_serialization.py rename to openpathsampling/experimental/simstore/test_serialization.py diff --git a/openpathsampling/experimental/storage/test_serialization_helpers.py b/openpathsampling/experimental/simstore/test_serialization_helpers.py similarity index 100% rename from openpathsampling/experimental/storage/test_serialization_helpers.py rename to openpathsampling/experimental/simstore/test_serialization_helpers.py diff --git a/openpathsampling/experimental/storage/test_sql_backend.py b/openpathsampling/experimental/simstore/test_sql_backend.py similarity index 100% rename from openpathsampling/experimental/storage/test_sql_backend.py rename to openpathsampling/experimental/simstore/test_sql_backend.py diff --git a/openpathsampling/experimental/storage/test_storage.py b/openpathsampling/experimental/simstore/test_storage.py similarity index 100% rename from openpathsampling/experimental/storage/test_storage.py rename to openpathsampling/experimental/simstore/test_storage.py diff --git a/openpathsampling/experimental/storage/test_tools.py b/openpathsampling/experimental/simstore/test_tools.py similarity index 100% rename from openpathsampling/experimental/storage/test_tools.py rename to openpathsampling/experimental/simstore/test_tools.py diff --git a/openpathsampling/experimental/storage/test_utils.py b/openpathsampling/experimental/simstore/test_utils.py similarity index 100% rename from openpathsampling/experimental/storage/test_utils.py rename to openpathsampling/experimental/simstore/test_utils.py diff --git a/openpathsampling/experimental/storage/tools.py b/openpathsampling/experimental/simstore/tools.py similarity index 100% rename from openpathsampling/experimental/storage/tools.py rename to openpathsampling/experimental/simstore/tools.py diff --git a/openpathsampling/experimental/storage/__init__.py b/openpathsampling/experimental/storage/__init__.py index 9f43144ba..672448c4a 100644 --- a/openpathsampling/experimental/storage/__init__.py +++ b/openpathsampling/experimental/storage/__init__.py @@ -1,13 +1,8 @@ # TODO: improve the imports here -from . import backend -from . import class_info -from . import my_types -from . import ops_storage -from . import serialization -from . import serialization_helpers from . import snapshots -from . import sql_backend -from . import storage -from . import tools from . import monkey_patches from . import dict_serialization_helpers + +from .ops_storage import ( + Storage, OPSClassInfoContainer, ops_schema, ops_class_info +) diff --git a/openpathsampling/experimental/storage/mdtraj_json.py b/openpathsampling/experimental/storage/mdtraj_json.py index 3fe0be240..2b287ce5f 100644 --- a/openpathsampling/experimental/storage/mdtraj_json.py +++ b/openpathsampling/experimental/storage/mdtraj_json.py @@ -1,4 +1,4 @@ -from .custom_json import JSONCodec +from ..simstore.custom_json import JSONCodec try: import mdtraj as md diff --git a/openpathsampling/experimental/storage/ops_storage.py b/openpathsampling/experimental/storage/ops_storage.py index ba7a3dacd..71742e539 100644 --- a/openpathsampling/experimental/storage/ops_storage.py +++ b/openpathsampling/experimental/storage/ops_storage.py @@ -1,30 +1,30 @@ -from . import storage -from . import sql_backend +from ..simstore import storage +from ..simstore import sql_backend -from .serialization_helpers import to_json_obj as json_serializer -from .serialization_helpers import from_json_obj as deserialize_sim -from .serialization_helpers import import_class -from .serialization_helpers import get_uuid, set_uuid -from .serialization_helpers import default_find_uuids +from ..simstore.serialization_helpers import to_json_obj as json_serializer +from ..simstore.serialization_helpers import from_json_obj as deserialize_sim +from ..simstore.serialization_helpers import import_class +from ..simstore.serialization_helpers import get_uuid, set_uuid +from ..simstore.serialization_helpers import default_find_uuids -from .class_lookup import ClassIsSomething +from ..simstore.class_lookup import ClassIsSomething import openpathsampling as paths from openpathsampling.netcdfplus import StorableObject -from . import tools +from ..simstore import tools -from .custom_json import ( +from ..simstore.custom_json import ( JSONSerializerDeserializer, numpy_codec, bytes_codec, uuid_object_codec, ) -from .serialization import ( +from ..simstore.serialization import ( ToDictSerializer, SchemaSerializer, SchemaDeserializer, SimulationObjectSerializer ) -from .class_info import ClassInfo, ClassInfoContainer +from ..simstore.class_info import ClassInfo, ClassInfoContainer from . import snapshots import logging @@ -190,12 +190,12 @@ def _build_ops_serializer(codecs): } # TODO: add more to these -class OPSStorage(storage.GeneralStorage): +class Storage(storage.GeneralStorage): def __init__(self, backend, schema, class_info, fallbacks=None, safemode=False): # TODO: this will change to match the current notation - super(OPSStorage, self).__init__(backend, schema, class_info, - fallbacks) + super(Storage, self).__init__(backend, schema, class_info, + fallbacks) self.n_snapshot_types = 0 @@ -212,7 +212,7 @@ def from_backend(cls, backend, schema=None, class_info=None, class_info = tools.none_to_default(class_info, ops_class_info) simulation_classes = tools.none_to_default(simulation_classes, ops_simulation_classes) - super(OPSStorage, obj).__init__( + super(Storage, obj).__init__( backend=backend, schema=schema, class_info=class_info, diff --git a/openpathsampling/experimental/storage/snapshots.py b/openpathsampling/experimental/storage/snapshots.py index 88f4fd304..57ddf503d 100644 --- a/openpathsampling/experimental/storage/snapshots.py +++ b/openpathsampling/experimental/storage/snapshots.py @@ -1,7 +1,7 @@ # NOTE: this is part of the OPS-specific stuff -from .class_info import ClassInfo +from ..simstore.class_info import ClassInfo -from .serialization_helpers import get_uuid +from ..simstore.serialization_helpers import get_uuid def _nested_schema_entries(schema_entries, lazies): """Recursive algorithm to create all schema entries diff --git a/openpathsampling/experimental/storage/test_mdtraj_json.py b/openpathsampling/experimental/storage/test_mdtraj_json.py index 996b096ee..f3c57c4ad 100644 --- a/openpathsampling/experimental/storage/test_mdtraj_json.py +++ b/openpathsampling/experimental/storage/test_mdtraj_json.py @@ -4,8 +4,8 @@ import numpy as np import numpy.testing as npt -from .custom_json import bytes_codec, numpy_codec, custom_json_factory -from .test_custom_json import CustomJSONCodingTest +from ..simstore.custom_json import bytes_codec, numpy_codec, custom_json_factory +from ..simstore.test_custom_json import CustomJSONCodingTest from openpathsampling.tests.test_helpers import data_filename diff --git a/openpathsampling/experimental/storage/test_snapshots.py b/openpathsampling/experimental/storage/test_snapshots.py index 1b520129b..e879b51c6 100644 --- a/openpathsampling/experimental/storage/test_snapshots.py +++ b/openpathsampling/experimental/storage/test_snapshots.py @@ -3,7 +3,7 @@ import openpathsampling as paths from openpathsampling.tests.test_helpers import make_1d_traj -from .serialization_helpers import get_uuid +from ..simstore.serialization_helpers import get_uuid from .snapshots import * From 3e371b59e2e2465c7e9e083ec7712df7618f5708 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Fri, 25 Sep 2020 11:51:11 +0200 Subject: [PATCH 401/464] Finish renaming and cleaning __init__.py --- .../{storage => simstore}/dict_serialization_helpers.py | 0 .../{storage => simstore}/test_dict_serialization_helpers.py | 0 openpathsampling/experimental/storage/__init__.py | 5 ++++- openpathsampling/experimental/storage/monkey_patches.py | 2 +- 4 files changed, 5 insertions(+), 2 deletions(-) rename openpathsampling/experimental/{storage => simstore}/dict_serialization_helpers.py (100%) rename openpathsampling/experimental/{storage => simstore}/test_dict_serialization_helpers.py (100%) diff --git a/openpathsampling/experimental/storage/dict_serialization_helpers.py b/openpathsampling/experimental/simstore/dict_serialization_helpers.py similarity index 100% rename from openpathsampling/experimental/storage/dict_serialization_helpers.py rename to openpathsampling/experimental/simstore/dict_serialization_helpers.py diff --git a/openpathsampling/experimental/storage/test_dict_serialization_helpers.py b/openpathsampling/experimental/simstore/test_dict_serialization_helpers.py similarity index 100% rename from openpathsampling/experimental/storage/test_dict_serialization_helpers.py rename to openpathsampling/experimental/simstore/test_dict_serialization_helpers.py diff --git a/openpathsampling/experimental/storage/__init__.py b/openpathsampling/experimental/storage/__init__.py index 672448c4a..f5a3bb6a2 100644 --- a/openpathsampling/experimental/storage/__init__.py +++ b/openpathsampling/experimental/storage/__init__.py @@ -1,8 +1,11 @@ # TODO: improve the imports here from . import snapshots from . import monkey_patches -from . import dict_serialization_helpers from .ops_storage import ( Storage, OPSClassInfoContainer, ops_schema, ops_class_info ) + +from .monkey_patches import ( + monkey_patch_saving, monkey_patch_loading, monkey_patch_all +) diff --git a/openpathsampling/experimental/storage/monkey_patches.py b/openpathsampling/experimental/storage/monkey_patches.py index 43fa4f0a7..5a696214e 100644 --- a/openpathsampling/experimental/storage/monkey_patches.py +++ b/openpathsampling/experimental/storage/monkey_patches.py @@ -1,5 +1,5 @@ import openpathsampling as paths -from .dict_serialization_helpers import ( +from ..simstore.dict_serialization_helpers import ( tuple_keys_to_dict, tuple_keys_from_dict ) From ec5213d6ddc9d670ebce5315c7ba3f293bc3022c Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Fri, 25 Sep 2020 12:22:07 +0200 Subject: [PATCH 402/464] correct test with && in bash --- devtools/ci/pytests.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/devtools/ci/pytests.sh b/devtools/ci/pytests.sh index 862118751..97fe8c8e0 100755 --- a/devtools/ci/pytests.sh +++ b/devtools/ci/pytests.sh @@ -14,7 +14,7 @@ then exit 1 fi -if [ $CONDA_PY != "2.7" && -z "$MINIMAL" ]; then +if [ $CONDA_PY != "2.7" ] && [ -z "$MINIMAL" ]; then # experimental does not need to support Python 2 echo travis_fold:start:experimental echo Running tests on experimental features From fbe2b05d6d60753260510ca7d0fa58bd76807294 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Fri, 25 Sep 2020 12:29:54 +0200 Subject: [PATCH 403/464] add simstore __init__ --- openpathsampling/experimental/simstore/__init__.py | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 openpathsampling/experimental/simstore/__init__.py diff --git a/openpathsampling/experimental/simstore/__init__.py b/openpathsampling/experimental/simstore/__init__.py new file mode 100644 index 000000000..ba0d474fc --- /dev/null +++ b/openpathsampling/experimental/simstore/__init__.py @@ -0,0 +1,7 @@ +from . import tools +from .storage import ( + GeneralStorage, MixedCache, StorageTable, PseudoTable, universal_schema +) +from .class_info import ClassInfoContainer, ClassInfo +from .sql_backend import SQLStorageBackend +from . import dict_serialization_helpers From dc455c75b55e30957301972ec1d5e7cac353b18d Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Fri, 25 Sep 2020 12:59:42 +0200 Subject: [PATCH 404/464] fix (most) test issues after renaming --- openpathsampling/experimental/simstore/__init__.py | 5 +++++ .../experimental/{storage => simstore}/callable_codec.py | 0 .../experimental/{storage => simstore}/memory_backend.py | 0 .../{storage => simstore}/storable_functions.py | 0 .../{storage => simstore}/test_callable_codec.py | 0 .../{storage => simstore}/test_storable_function.py | 2 +- .../experimental/storage/collective_variables.py | 4 ++-- openpathsampling/experimental/storage/ops_storage.py | 9 ++++----- .../experimental/storage/test_collective_variables.py | 6 +++--- .../experimental/storage/test_snapshot_integrations.py | 6 +++--- 10 files changed, 18 insertions(+), 14 deletions(-) rename openpathsampling/experimental/{storage => simstore}/callable_codec.py (100%) rename openpathsampling/experimental/{storage => simstore}/memory_backend.py (100%) rename openpathsampling/experimental/{storage => simstore}/storable_functions.py (100%) rename openpathsampling/experimental/{storage => simstore}/test_callable_codec.py (100%) rename openpathsampling/experimental/{storage => simstore}/test_storable_function.py (99%) diff --git a/openpathsampling/experimental/simstore/__init__.py b/openpathsampling/experimental/simstore/__init__.py index ba0d474fc..137f052fb 100644 --- a/openpathsampling/experimental/simstore/__init__.py +++ b/openpathsampling/experimental/simstore/__init__.py @@ -5,3 +5,8 @@ from .class_info import ClassInfoContainer, ClassInfo from .sql_backend import SQLStorageBackend from . import dict_serialization_helpers +from .storable_functions import ( + Processor, StorableFunctionConfig, StorableFunctionResults, + StorableFunction, StorageFunctionHandler, storable_function_find_uuids +) +from .callable_codec import CallableCodec diff --git a/openpathsampling/experimental/storage/callable_codec.py b/openpathsampling/experimental/simstore/callable_codec.py similarity index 100% rename from openpathsampling/experimental/storage/callable_codec.py rename to openpathsampling/experimental/simstore/callable_codec.py diff --git a/openpathsampling/experimental/storage/memory_backend.py b/openpathsampling/experimental/simstore/memory_backend.py similarity index 100% rename from openpathsampling/experimental/storage/memory_backend.py rename to openpathsampling/experimental/simstore/memory_backend.py diff --git a/openpathsampling/experimental/storage/storable_functions.py b/openpathsampling/experimental/simstore/storable_functions.py similarity index 100% rename from openpathsampling/experimental/storage/storable_functions.py rename to openpathsampling/experimental/simstore/storable_functions.py diff --git a/openpathsampling/experimental/storage/test_callable_codec.py b/openpathsampling/experimental/simstore/test_callable_codec.py similarity index 100% rename from openpathsampling/experimental/storage/test_callable_codec.py rename to openpathsampling/experimental/simstore/test_callable_codec.py diff --git a/openpathsampling/experimental/storage/test_storable_function.py b/openpathsampling/experimental/simstore/test_storable_function.py similarity index 99% rename from openpathsampling/experimental/storage/test_storable_function.py rename to openpathsampling/experimental/simstore/test_storable_function.py index ae4d9e035..ce841c53e 100644 --- a/openpathsampling/experimental/storage/test_storable_function.py +++ b/openpathsampling/experimental/simstore/test_storable_function.py @@ -12,7 +12,7 @@ from .serialization_helpers import get_uuid, set_uuid from .storable_functions import * -_MODULE = "openpathsampling.experimental.storage.storable_functions" +_MODULE = "openpathsampling.experimental.simstore.storable_functions" class MockBackend(object): diff --git a/openpathsampling/experimental/storage/collective_variables.py b/openpathsampling/experimental/storage/collective_variables.py index fc400432c..a13a9dba4 100644 --- a/openpathsampling/experimental/storage/collective_variables.py +++ b/openpathsampling/experimental/storage/collective_variables.py @@ -1,11 +1,11 @@ import openpathsampling as paths -from .storable_functions import ( +from ..simstore.storable_functions import ( StorableFunction, StorableFunctionConfig, wrap_numpy, scalarize_singletons, requires_lists_pre, requires_lists_post, Processor ) from openpathsampling.netcdfplus import StorableNamedObject -from .serialization_helpers import get_uuid +from ..simstore.serialization_helpers import get_uuid class CollectiveVariable(StorableFunction): """Wrapper around functions that map snapshots to values. diff --git a/openpathsampling/experimental/storage/ops_storage.py b/openpathsampling/experimental/storage/ops_storage.py index aee7769b4..9a022c35c 100644 --- a/openpathsampling/experimental/storage/ops_storage.py +++ b/openpathsampling/experimental/storage/ops_storage.py @@ -9,7 +9,7 @@ from ..simstore.class_lookup import ClassIsSomething -from .storable_functions import ( +from ..simstore import ( StorableFunction, StorableFunctionResults, storable_function_find_uuids ) @@ -23,16 +23,15 @@ numpy_codec, bytes_codec, uuid_object_codec, ) -from .callable_codec import CallableCodec +from ..simstore import CallableCodec from ..simstore.serialization import ( - ToDictSerializer, SchemaSerializer, SchemaDeserializer, - SimulationObjectSerializer + ToDictSerializer, SchemaSerializer, SchemaDeserializer ) from ..simstore.class_info import ClassInfo, ClassInfoContainer -from .sql_backend import SQLStorageBackend # TODO: generalize +from ..simstore import SQLStorageBackend # TODO: generalize from . import snapshots import logging diff --git a/openpathsampling/experimental/storage/test_collective_variables.py b/openpathsampling/experimental/storage/test_collective_variables.py index 256a015b4..814c654e9 100644 --- a/openpathsampling/experimental/storage/test_collective_variables.py +++ b/openpathsampling/experimental/storage/test_collective_variables.py @@ -11,9 +11,9 @@ from openpathsampling.engines import openmm as ops_omm from .collective_variables import * -from .test_storable_function import MockBackend -from .storable_functions import StorageFunctionHandler -from .serialization_helpers import get_uuid +from ..simstore.test_storable_function import MockBackend +from ..simstore import StorageFunctionHandler +from ..simstore.serialization_helpers import get_uuid try: diff --git a/openpathsampling/experimental/storage/test_snapshot_integrations.py b/openpathsampling/experimental/storage/test_snapshot_integrations.py index 299a04d65..ba2f68342 100644 --- a/openpathsampling/experimental/storage/test_snapshot_integrations.py +++ b/openpathsampling/experimental/storage/test_snapshot_integrations.py @@ -11,9 +11,9 @@ from openpathsampling.tests.test_helpers import data_filename from openpathsampling.experimental.storage.ops_storage import ( - OPSStorage, ops_class_info, ops_schema + Storage, ops_class_info, ops_schema ) -from openpathsampling.experimental.storage.sql_backend import SQLStorageBackend +from openpathsampling.experimental.simstore import SQLStorageBackend class TestSnapshotIntegration(object): # TODO: no use of self anywhere in here; this might become bare test @@ -21,7 +21,7 @@ class TestSnapshotIntegration(object): def _make_storage(self, mode): backend = SQLStorageBackend("test.sql", mode=mode) - storage = OPSStorage.from_backend( + storage = Storage.from_backend( backend=backend, schema=ops_schema, class_info=ops_class_info From 1513273e23626cc0faa7bfc26c449ecb4f6d9706 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Fri, 25 Sep 2020 13:05:11 +0200 Subject: [PATCH 405/464] StorageTable no longer takes a cache --- openpathsampling/experimental/simstore/storage.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/openpathsampling/experimental/simstore/storage.py b/openpathsampling/experimental/simstore/storage.py index 91d415fd4..796d0ac63 100644 --- a/openpathsampling/experimental/simstore/storage.py +++ b/openpathsampling/experimental/simstore/storage.py @@ -158,8 +158,7 @@ def register_schema(self, schema, class_info_list, self.schema.update(schema) for table in self.schema: - self._storage_tables[table] = StorageTable(self, table, - cache=self.cache) + self._storage_tables[table] = StorageTable(self, table) # self.serialization.register_serialization(schema, self.class_info) def register_from_instance(self, lookup, obj): From 1c63186ce92e364d9af0f5cb43da2e265381a459 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Sat, 26 Sep 2020 14:00:44 +0200 Subject: [PATCH 406/464] Release 1.3.0 Also bump autorelease travis version --- .travis.yml | 2 +- openpathsampling/netcdfplus/version.py | 2 +- setup.cfg | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index 98e4f59ce..4c3bda8b3 100644 --- a/.travis.yml +++ b/.travis.yml @@ -66,4 +66,4 @@ env: - secure: "kb37xmsSV3pEnESnINzwlW2Cju/UFzA/G+m+NsihAwO8RMPZwKCrZK/rptgkUDACXJxom5M690WEukQkHnOt+OTrWhu7WKZgYeVuWUs2++RohYv/m5npaOHMMn+uYmF328v4PvPmXxbD02zzg5Tgdn82x8oa6J8BKX8ohOQ6Xpg=" import: - - dwhswenson/autorelease:autorelease-travis.yml@v0.1.2 + - dwhswenson/autorelease:autorelease-travis.yml@v0.2.1 diff --git a/openpathsampling/netcdfplus/version.py b/openpathsampling/netcdfplus/version.py index 7acb45721..7ab6c549c 100644 --- a/openpathsampling/netcdfplus/version.py +++ b/openpathsampling/netcdfplus/version.py @@ -1,4 +1,4 @@ -short_version = '1.3.0.dev0' +short_version = '1.3.0' version = short_version full_version = short_version git_revision = 'alpha' diff --git a/setup.cfg b/setup.cfg index 64edf9e0c..8fe3a40e8 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,6 +1,6 @@ [metadata] name = openpathsampling -version = 1.3.0.dev0 +version = 1.3.0 description = A Python package for path sampling simulations long_description = file: README.md long_description_content_type = text/markdown From ed47cc34954b62196d7e6aafa1f31628fbdeb9b5 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Sat, 26 Sep 2020 15:11:05 +0200 Subject: [PATCH 407/464] Bump version to 1.4.0.dev0 --- openpathsampling/netcdfplus/version.py | 2 +- setup.cfg | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/openpathsampling/netcdfplus/version.py b/openpathsampling/netcdfplus/version.py index 7ab6c549c..d12a2b750 100644 --- a/openpathsampling/netcdfplus/version.py +++ b/openpathsampling/netcdfplus/version.py @@ -1,4 +1,4 @@ -short_version = '1.3.0' +short_version = '1.4.0.dev0' version = short_version full_version = short_version git_revision = 'alpha' diff --git a/setup.cfg b/setup.cfg index 8fe3a40e8..24ce95ef7 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,6 +1,6 @@ [metadata] name = openpathsampling -version = 1.3.0 +version = 1.4.0.dev0 description = A Python package for path sampling simulations long_description = file: README.md long_description_content_type = text/markdown From 956fa9c3da1cd8a2be6d3a495e84f6a7e36bd439 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Sat, 26 Sep 2020 20:29:49 +0200 Subject: [PATCH 408/464] Add CLI docs to core --- docs/cli.rst | 185 +++++++++++++++++++++++++++++++++++++++++++++++++ docs/index.rst | 1 + 2 files changed, 186 insertions(+) create mode 100644 docs/cli.rst diff --git a/docs/cli.rst b/docs/cli.rst new file mode 100644 index 000000000..04acd2911 --- /dev/null +++ b/docs/cli.rst @@ -0,0 +1,185 @@ +.. _cli: + +Command Line Interface +====================== + +A separate command line tool for OpenPathSamplng can be installed. It is +available via either ``conda`` (channel ``conda-forge``) or ``pip``, with +the package name ``openpathsampling-cli``. + +Once you install this, you'll have access to the command +``openpathsampling`` in your shell (although we recommend aliasing that to +either ``paths`` or ``ops`` -- save yourself some typing!) + +This command is a gateway to many subcommands, just like ``conda`` and +``pip`` (which have subcommands such as ``install``) or ``git`` (which has +subcommands such as ``clone`` or ``commit``). You can get a full listing all +the subcommands with ``openpathsampling --help``. For more information on +any given subcommand, use ``openpathsampling SUBCOMMAND --help``, replacing +``SUBCOMMAND`` with the subcommand you're interested in. + +Here, we will provide a description of a few of the subcommands that the CLI +tool provides. This documentation may not be fully up-to-date with the more +recent releases of the CLI, so use the CLI help tools to get a fuller +understanding of what is included. + +For more details on how the CLI interprets its arguments, and to learn how +to develop plugins for the CLI, see its documentation. The CLI subcommands +are defined through a plugin system, which makes it very easy for developers +to create new subcommands. + +* CLI documentation: https://openpathsampling-cli.readthedocs.io/ +* CLI code repository: https://github.com/openpathsampling/openpathsampling-cli/ + +Workflow with the CLI +--------------------- + +As always, the process of running a simulation is (1) set up the simulation; +(2) run the simulation; (3) analyze the simulation. The CLI is mainly +focused on step 2, although it also has tools that generally help with OPS +files. + +To use it, you'll want to first set up your simulation, e.g., in a Jupyter +notebook, and save the simulation objects to a storage file with +``storage.save(obj)``. You should tag you initial conditions with, e.g., +``storage.tags['initial_conditions'] = init_conds``. + +Close that storage file when you're ready to run the simulation, and then +you can run it with, e.g., + +.. code:: bash + + openpathsampling pathsampling setup.nc -o output.nc --nsteps 1000 + +If the file you created, ``setup.nc`` has exactly one move scheme and has a +sample set tagged as ``initial_conditions``, the CLI will figure that out. +Your output will be in ``output.nc``, and you can analyze it in a Jupyter +notebook, just as before. + +Note that this can be especially useful when computing remotely. You can set +up on your local machine, and then you just need to transfer the +``setup.py`` to the remote machine (assuming you use internally-stored +snapshots). + +Finding your way around the CLI +------------------------------- + +Like many command line tools, the OPS CLI has the options ``-h`` or +``--help`` to get help. If you run ``openpathsampling --help`` you should +see something like this + +.. code:: none + + Usage: openpathsampling [OPTIONS] COMMAND [ARGS]... + + OpenPathSampling is a Python library for path sampling simulations. This + command line tool facilitates common tasks when working with + OpenPathSampling. To use it, use one of the subcommands below. For + example, you can get more information about the pathsampling tool with: + + openpathsampling pathsampling --help + + Options: + --log PATH logging configuration file + -h, --help Show this message and exit. + + Simulation Commands: + visit-all Run MD to generate initial trajectories + equilibrate Run equilibration for path sampling + pathsampling Run any path sampling simulation, including TIS variants + + Miscellaneous Commands: + contents list named objects from an OPS .nc file + append add objects from INPUT_FILE to another file + +The ``--log`` option takes a logging configuration file (e.g., `logging.conf +`_, +and sets that logging behavior. If you use it, it must come before the +subcommand name. + +You can find out more about each subcommand by putting ``--help`` *after* +the subcommand name, e.g., ``openpathsampling pathsampling --help``, which +returns + +.. code:: none + + Usage: openpathsampling pathsampling [OPTIONS] INPUT_FILE + + General path sampling, using setup in INPUT_FILE + + Options: + -o, --output-file PATH output ncfile [required] + -m, --scheme TEXT identifier for the move scheme + -t, --init-conds TEXT identifier for initial conditions (sample set or + trajectory) + -n, --nsteps INTEGER number of Monte Carlo trials to run + -h, --help Show this message and exit. + +Here you see the list of the options for the running a path sampling +simulation. In general, path sampling requires an output +file, a move scheme and initial conditions from some input file, and the +number of steps to run. Note that only the output file is technically +required: the CLI will default to running 0 steps (essentially, testing the +validity of your setup), and it can try to guess the move scheme and initial +conditions. In general, the way it guesses follows the following path: + +1. If there is only one object of the suitable type in the INPUT_FILE, use + that. +2. If there are multiple objects of the correct type, but only one has a + name, use the named object. +3. In special cases it looks for specific names, such as + ``initial_conditions``, and will use those. + +Full details on how various CLI parameters search the storage can be seen in +the `Parameter Interpretation +`_ +section of the CLI docs. + +Simulation Commands +------------------- + +One of the main concepts when working with the CLI is that you can create +all the OPS simulation objects without running the simulation, save them in +an OPS storage file, and then load them again to actually run your +simulation. For simulation commands, the options all deal with loading +simulation objects from storage. + +Here are some of the simulation commands implemented in the OPS CLI: + +* ``visit-all``: create initial trajectories by running MD until all states + have been visited (works for MSTIS or any 2-state system); must provide + states, engine, and initial snapshot on command line +* ``equilibrate``: run equilibration for path sampling (until first + decorrelated trajectory); must provide move scheme and initial conditions + on the command line +* ``pathsampling``: run path sampling with a given move scheme (suitable for + custom TPS schemes as well as TIS/RETIS); must provide move scheme, + iniital conditions, and number of MC steps on command line + +Miscellaneous Commands +---------------------- + +Even for users who prefer to develop their OPS projects entirely in Python, +foregoing the CLI tools to run simulations, some of the "miscellaneous" +commands are likely to be quite useful. Here are some that are available in +the CLI: + +* ``contents``: list all the named objects in an OPS storage, organized by + store (type); this is extremely useful to get the name of an object to use +* ``append`` : add an object from once OPS storage into another one; this is + useful for getting everything into a single file before running a + simulation + +Customizing the CLI +------------------- + +The OPS CLI uses a flexible plugin system to enable users to easily add +custom functionality. This way, you can create and distribute custom +plugins, giving more functionality to other users who would benefit from it, +without adding everything to the core package and thus overwhelming new +users. + +Installing a plugin is easy: just create the directory +``$HOME/.openpathsampling/cli-plugins/``, and copy the plugin Python script +into there. For details on how to write a CLI plugin, see the `CLI +development docs `_. diff --git a/docs/index.rst b/docs/index.rst index b51e5a147..89a27e31b 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -63,6 +63,7 @@ For Users examples/index topics/index videos + cli faq From 899029b3cfef1f75d1ea1baa931f08351cada958 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Sun, 27 Sep 2020 17:45:01 +0200 Subject: [PATCH 409/464] fix for py27 --- openpathsampling/engines/external_engine.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openpathsampling/engines/external_engine.py b/openpathsampling/engines/external_engine.py index 8a6f334a1..02667a1f8 100644 --- a/openpathsampling/engines/external_engine.py +++ b/openpathsampling/engines/external_engine.py @@ -91,7 +91,7 @@ class RandomStringFilenames(FilenameSetter): """ _allowed = 'abcdefghijklmnopqrstuvwxyz0123456789' def __init__(self, length=8, allowed=None): - super().__init__() + super(RandomStringFilenames, self).__init__() self.length = length allowed = allowed if allowed is not None else self._allowed self.allowed = np.array([a for a in allowed]) From b2fdfad03bb824309250d6f521ca581cc70c136f Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Sun, 27 Sep 2020 17:55:26 +0200 Subject: [PATCH 410/464] missed one --- openpathsampling/engines/external_engine.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openpathsampling/engines/external_engine.py b/openpathsampling/engines/external_engine.py index 02667a1f8..951c86638 100644 --- a/openpathsampling/engines/external_engine.py +++ b/openpathsampling/engines/external_engine.py @@ -64,7 +64,7 @@ class FilenameSetter(StorableNamedObject): # some weird type testing that requires replace object to be instances # of the default def __init__(self, count=0): - super().__init__() + super(FilenameSetter, self).__init__() self.count = count def __call__(self): From 55e2888d2d87a1b21e7204468d65d280266d00db Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Tue, 29 Sep 2020 23:33:02 +0200 Subject: [PATCH 411/464] add some tests --- openpathsampling/engines/gromacs/engine.py | 4 +++- openpathsampling/tests/test_gromacs_engine.py | 16 +++++++++++++++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/openpathsampling/engines/gromacs/engine.py b/openpathsampling/engines/gromacs/engine.py index 764d1de6b..74b2f2dc8 100644 --- a/openpathsampling/engines/gromacs/engine.py +++ b/openpathsampling/engines/gromacs/engine.py @@ -30,7 +30,9 @@ _debug_open_files, close_file_descriptors ) -def _remove_file_if_exists(filename): +def _remove_file_if_exists(filename): # pragma: no cover + # not requiring coverage here because it's part of Gromacs integration; + # gets covered if gmx is installed though if os.path.isfile(filename): os.remove(filename) diff --git a/openpathsampling/tests/test_gromacs_engine.py b/openpathsampling/tests/test_gromacs_engine.py index e0ad5eeef..c3308312a 100644 --- a/openpathsampling/tests/test_gromacs_engine.py +++ b/openpathsampling/tests/test_gromacs_engine.py @@ -129,7 +129,7 @@ def test_write_frame_to_file_read_back(self): if os.path.isfile(traj_50): os.remove(traj_50) - def test_set_filenames(self): + def test_set_filenames_int(self): test_engine = Engine(gro="conf.gro", mdp="md.mdp", top="topol.top", base_dir=self.test_dir, options={}, prefix="proj") @@ -153,6 +153,20 @@ def test_set_filenames(self): assert_equal(test_engine.log_file, os.path.join(self.test_dir, "proj_log", "0000100.log")) + def test_set_filenames_fixed(self): + test_engine = Engine(gro="conf.gro", mdp="md.mdp", top="topol.top", + base_dir=self.test_dir, options={}, + prefix="proj") + test_engine.set_filenames('foo') + assert test_engine.input_file == \ + os.path.join(self.test_dir, "foo_initial_frame.trr") + assert test_engine.output_file == \ + os.path.join(self.test_dir, "proj_trr/foo.trr") + assert test_engine.edr_file == \ + os.path.join(self.test_dir, "proj_edr/foo.edr") + assert test_engine.log_file == \ + os.path.join(self.test_dir, "proj_log/foo.log") + def test_engine_command(self): test_engine = Engine(gro="conf.gro", mdp="md.mdp", top="topol.top", base_dir=self.test_dir, options={}, From e6c9943b611c219ef551de6b06487d326a6bcfc6 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 1 Oct 2020 18:38:03 +0200 Subject: [PATCH 412/464] more testing for gmx updates --- openpathsampling/engines/external_engine.py | 6 ++-- openpathsampling/engines/gromacs/engine.py | 3 +- openpathsampling/tests/test_gromacs_engine.py | 34 ++++++++++++++++++- 3 files changed, 39 insertions(+), 4 deletions(-) diff --git a/openpathsampling/engines/external_engine.py b/openpathsampling/engines/external_engine.py index 951c86638..0c6379acf 100644 --- a/openpathsampling/engines/external_engine.py +++ b/openpathsampling/engines/external_engine.py @@ -126,9 +126,11 @@ def from_dict(cls, dct): dct = {'engine': dct['engine']} return super(_InternalizedEngineProxy, cls).from_dict(dct) + @property + def name(self): + return self.engine.name + " (internalized)" + def __getattr__(self, attr): - if attr == 'name' and self.engine.name: - return self.engine.name + " (internalized)" return getattr(self.engine, attr) diff --git a/openpathsampling/engines/gromacs/engine.py b/openpathsampling/engines/gromacs/engine.py index 74b2f2dc8..8c6d73960 100644 --- a/openpathsampling/engines/gromacs/engine.py +++ b/openpathsampling/engines/gromacs/engine.py @@ -336,7 +336,8 @@ def prepare(self): # pragma: no cover return_code = psutil.Popen(run_cmd, preexec_fn=os.setsid).wait() return return_code - def cleanup(self): + def cleanup(self): # pragma: no cover + # tested when traj is run, which we don't on CI _remove_file_if_exists(self.input_file) _remove_file_if_exists(self.tpr_file) _remove_file_if_exists(self.mdout_file) diff --git a/openpathsampling/tests/test_gromacs_engine.py b/openpathsampling/tests/test_gromacs_engine.py index c3308312a..90c256943 100644 --- a/openpathsampling/tests/test_gromacs_engine.py +++ b/openpathsampling/tests/test_gromacs_engine.py @@ -43,6 +43,36 @@ devnull.close() +class TestGroFileEngine(object): + def setup(self): + self.gro = os.path.join(data_filename("gromacs_engine"), "conf.gro") + self.engine = paths.engines.gromacs.engine._GroFileEngine( + self.gro + ).named("gro") + + def test_storage(self): + tmpdir = tempfile.mkdtemp() + storage_file = os.path.join(tmpdir, "test.nc") + storage = paths.Storage(storage_file, mode='w') + try: + storage.save(self.engine) + reloaded = storage.engines['gro'] + assert self.engine == reloaded + finally: + storage.close() + os.remove(storage_file) + os.rmdir(tmpdir) + + def test_read_frame_data(self): + if not HAS_MDTRAJ: + pytest.skip("MDTraj not installed.") + mdt = md.load(self.gro) + # frame number unused here + xyz, vel, box = self.engine.read_frame_data(self.gro, 9) + npt.assert_array_equal(xyz, mdt.xyz[0]) + npt.assert_array_equal(box, mdt.unitcell_vectors[0]) + + class TestGromacsEngine(object): # Files used (in test_data/gromacs_engine/) # conf.gro, md.mdp, topol.top : standard Gromacs input files @@ -248,7 +278,7 @@ def setup(self): top="topol.top", options={}, base_dir=self.test_dir, - prefix="proj") + prefix="proj").named('gmx') self.snapshot = ExternalMDSnapshot( file_name=os.path.join(self.test_dir, "project_trr", "0000000.trr"), @@ -322,6 +352,8 @@ def test_clear_cache(self): def test_internalized_storage(self): internalized = self.snapshot.internalize() npt.assert_array_almost_equal(internalized.xyz, self.snapshot.xyz) + assert internalized.engine.name == \ + self.snapshot.engine.name + " (internalized)" try: tmp_dir = tempfile.TemporaryDirectory() except AttributeError: From f2a4e4685e0a48bd6a17699dc8ced8a608bd0d8c Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 1 Oct 2020 18:57:50 +0200 Subject: [PATCH 413/464] fix TestGroFileEngine for CI --- openpathsampling/tests/test_gromacs_engine.py | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/openpathsampling/tests/test_gromacs_engine.py b/openpathsampling/tests/test_gromacs_engine.py index 90c256943..47ef386c8 100644 --- a/openpathsampling/tests/test_gromacs_engine.py +++ b/openpathsampling/tests/test_gromacs_engine.py @@ -45,10 +45,10 @@ class TestGroFileEngine(object): def setup(self): + if not HAS_MDTRAJ: + pytest.skip("MDTraj not installed.") self.gro = os.path.join(data_filename("gromacs_engine"), "conf.gro") - self.engine = paths.engines.gromacs.engine._GroFileEngine( - self.gro - ).named("gro") + self.engine = snapshot_from_gro(self.gro).engine.named("gro") def test_storage(self): tmpdir = tempfile.mkdtemp() @@ -64,8 +64,6 @@ def test_storage(self): os.rmdir(tmpdir) def test_read_frame_data(self): - if not HAS_MDTRAJ: - pytest.skip("MDTraj not installed.") mdt = md.load(self.gro) # frame number unused here xyz, vel, box = self.engine.read_frame_data(self.gro, 9) From 29da5dcbcd67671f6eebf64060d780d48f531fc6 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 1 Oct 2020 19:57:43 +0200 Subject: [PATCH 414/464] add dict serialization cycle test for GroFileEng --- openpathsampling/tests/test_gromacs_engine.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/openpathsampling/tests/test_gromacs_engine.py b/openpathsampling/tests/test_gromacs_engine.py index 47ef386c8..f735927d4 100644 --- a/openpathsampling/tests/test_gromacs_engine.py +++ b/openpathsampling/tests/test_gromacs_engine.py @@ -50,6 +50,13 @@ def setup(self): self.gro = os.path.join(data_filename("gromacs_engine"), "conf.gro") self.engine = snapshot_from_gro(self.gro).engine.named("gro") + def test_dict_cycle(self): + cls = self.engine.__class__ + dct = self.engine.to_dict() + deser = cls.from_dict(dct) + dct2 = deser.to_dict() + assert dct == dct2 + def test_storage(self): tmpdir = tempfile.mkdtemp() storage_file = os.path.join(tmpdir, "test.nc") From e220a9af8bf50100f756c78b496f8ad23688f1ff Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Tue, 13 Oct 2020 15:18:18 +0200 Subject: [PATCH 415/464] clearer error message --- openpathsampling/netcdfplus/stores/attribute.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/openpathsampling/netcdfplus/stores/attribute.py b/openpathsampling/netcdfplus/stores/attribute.py index d06a2d6e8..e464d25f3 100644 --- a/openpathsampling/netcdfplus/stores/attribute.py +++ b/openpathsampling/netcdfplus/stores/attribute.py @@ -128,8 +128,9 @@ def add_diskcache( else: raise RuntimeError( - 'Need either at least one stored snapshot or a ' - 'template snapshot to determine type and shape of the CV.') + 'Need either at least one stored object to use as a ' + 'template to determine type and shape of the CV. ' + 'No items in store: ' + str(self.key_store(cv))) self.key_store(cv).add_attribute( ValueStore, From a2706ccb5a70b5db2e3a4ab9719aa11e0c5a75b0 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Tue, 13 Oct 2020 18:40:24 +0200 Subject: [PATCH 416/464] build index on uuid table on creation --- openpathsampling/experimental/simstore/sql_backend.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/openpathsampling/experimental/simstore/sql_backend.py b/openpathsampling/experimental/simstore/sql_backend.py index 8cd4edba6..f3023ff0d 100644 --- a/openpathsampling/experimental/simstore/sql_backend.py +++ b/openpathsampling/experimental/simstore/sql_backend.py @@ -125,6 +125,10 @@ def _initialize_with_mode(self, mode): self.metadata.create_all(self.engine) self.register_schema(universal_schema, universal_sql_meta) + uuid_table = self.metadata.tables['uuid'] + index = sql.Index('uuids_index', *uuid_table.c, unique=True) + index.create(self.engine) + elif mode == "r" or mode == "a": self.metadata.reflect(self.engine) self.schema = self.database_schema() From bc9766313eac05eeb8e1f02a307d09704fa56279 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Wed, 14 Oct 2020 13:58:50 +0200 Subject: [PATCH 417/464] start to using nbsphinx for notebooks --- docs/conf.py | 11 ++- docs/examples/AD_tps.rst | 19 +--- docs/requirements.txt | 5 +- .../AD_tps_1_trajectory.ipynb | 68 +++++++++++--- .../AD_tps_1b_trajectory.ipynb | 93 +++++++++++++------ .../AD_tps_2a_run_flex.ipynb | 93 +++++++++++++------ .../AD_tps_2b_run_fixed.ipynb | 93 +++++++++++++------ .../AD_tps_3a_analysis_flex.ipynb | 66 ++++++++++--- .../AD_tps_3b_analysis_fixed.ipynb | 70 +++++++++++--- .../AD_tps_4_advanced.ipynb | 78 ++++++++++++---- 10 files changed, 431 insertions(+), 165 deletions(-) diff --git a/docs/conf.py b/docs/conf.py index 557ae0cba..ef9ca7035 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -14,6 +14,7 @@ import sys import os +import shutil # we use these to get the version import pkg_resources @@ -31,6 +32,13 @@ sys.path.insert(0,os.path.abspath('../openpathsampling/')) #sys.path.append(os.path.abspath('_themes')) +# -- Copying examples over into the docs/examples ------------------------- +try: + shutil.copytree(os.path.abspath("../examples/alanine_dipeptide_tps"), + os.path.abspath("examples/alanine_dipeptide_tps")) +except OSError: + pass # there should be a backup here.... + # -- General configuration ------------------------------------------------ # If your documentation needs a minimal Sphinx version, state it here. @@ -53,7 +61,8 @@ # 'matplotlib.sphinxext.plot_directive', # 'numpydoc' # 'sphinxcontrib.napoleon' - 'sphinx.ext.napoleon' + 'sphinx.ext.napoleon', + 'nbsphinx' ] # Napoleon settings diff --git a/docs/examples/AD_tps.rst b/docs/examples/AD_tps.rst index eb0493fae..04aacdffb 100644 --- a/docs/examples/AD_tps.rst +++ b/docs/examples/AD_tps.rst @@ -7,19 +7,8 @@ This example shows how to set up, run, and analyze a 2-state TPS simulation. The system studied is alanine dipeptide, a standard test system for rare events. ???TODO: say more??? ------ - -.. notebook:: examples/alanine_dipeptide_tps/AD_tps_1_trajectory.ipynb - :skip_exceptions: - ------ - -.. notebook:: examples/alanine_dipeptide_tps/AD_tps_2a_run_flex.ipynb - :skip_exceptions: - ------ - -.. notebook:: examples/alanine_dipeptide_tps/AD_tps_3a_analysis_flex.ipynb - :skip_exceptions: - +.. toctree:: + alanine_dipeptide_tps/AD_tps_1_trajectory + alanine_dipeptide_tps/AD_tps_2a_run_flex + alanine_dipeptide_tps/AD_tps_3a_analysis_flex diff --git a/docs/requirements.txt b/docs/requirements.txt index 30d411982..4655d03ac 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -1,10 +1,11 @@ matplotlib sphinx jupyter -nbconvert<6 +nbconvert<6 # TODO: remove +nbsphinx jinja2 netcdf4 -runipy +runipy # TODO: remove openmm pytables scikit-learn diff --git a/examples/alanine_dipeptide_tps/AD_tps_1_trajectory.ipynb b/examples/alanine_dipeptide_tps/AD_tps_1_trajectory.ipynb index 0de76b7e3..ecb82575c 100644 --- a/examples/alanine_dipeptide_tps/AD_tps_1_trajectory.ipynb +++ b/examples/alanine_dipeptide_tps/AD_tps_1_trajectory.ipynb @@ -1,5 +1,12 @@ { "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Obtaining an initial trajectory for TPS" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -14,13 +21,6 @@ "We assume at this point that you are familiar with the basic concepts of OPS. If you find this file confusing, we recommend working through the toy model examples." ] }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Imports" - ] - }, { "cell_type": "code", "execution_count": 1, @@ -315,7 +315,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## Equilibrate TPS\n", + "## Equilibrating for TPS\n", "\n", "This is, again, a simple path sampling setup. We use the same `TPSNetwork` we'll use later, and only shooting moves. One the initial conditions are correctly set up, we run one step at a time until the initial trajectory is decorrelated.\n", "\n", @@ -681,21 +681,63 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 2", + "display_name": "Python 3", "language": "python", - "name": "python2" + "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", - "version": 2 + "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", - "pygments_lexer": "ipython2", - "version": "2.7.15" + "pygments_lexer": "ipython3", + "version": "3.7.3" + }, + "toc": { + "base_numbering": 1, + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": true, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": true + }, + "varInspector": { + "cols": { + "lenName": 16, + "lenType": 16, + "lenVar": 40 + }, + "kernels_config": { + "python": { + "delete_cmd_postfix": "", + "delete_cmd_prefix": "del ", + "library": "var_list.py", + "varRefreshCmd": "print(var_dic_list())" + }, + "r": { + "delete_cmd_postfix": ") ", + "delete_cmd_prefix": "rm(", + "library": "var_list.r", + "varRefreshCmd": "cat(var_dic_list()) " + } + }, + "types_to_exclude": [ + "module", + "function", + "builtin_function_or_method", + "instance", + "_Feature" + ], + "window_display": false } }, "nbformat": 4, diff --git a/examples/alanine_dipeptide_tps/AD_tps_1b_trajectory.ipynb b/examples/alanine_dipeptide_tps/AD_tps_1b_trajectory.ipynb index 77cbb6c14..8488c33a7 100644 --- a/examples/alanine_dipeptide_tps/AD_tps_1b_trajectory.ipynb +++ b/examples/alanine_dipeptide_tps/AD_tps_1b_trajectory.ipynb @@ -1,5 +1,12 @@ { "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Obtaining an initial trajectory for fixed-length TPS" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -46,9 +53,7 @@ { "cell_type": "code", "execution_count": 3, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "engine = old_storage.engines[0]\n", @@ -76,9 +81,7 @@ { "cell_type": "code", "execution_count": 4, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "network = paths.FixedLengthTPSNetwork(C_7eq, alpha_R, length=400)" @@ -87,9 +90,7 @@ { "cell_type": "code", "execution_count": 5, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "name": "stdout", @@ -114,9 +115,7 @@ { "cell_type": "code", "execution_count": 6, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "# raises an error if we still haven't found a suitable trajectory\n", @@ -148,9 +147,7 @@ { "cell_type": "code", "execution_count": 8, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -192,9 +189,7 @@ { "cell_type": "code", "execution_count": 9, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "# save stuff\n", @@ -204,9 +199,7 @@ { "cell_type": "code", "execution_count": 10, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -233,9 +226,7 @@ { "cell_type": "code", "execution_count": 11, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "storage.sync()" @@ -253,23 +244,65 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 2", + "display_name": "Python 3", "language": "python", - "name": "python2" + "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", - "version": 2 + "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", - "pygments_lexer": "ipython2", - "version": "2.7.12" + "pygments_lexer": "ipython3", + "version": "3.7.3" + }, + "toc": { + "base_numbering": 1, + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": true, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": true + }, + "varInspector": { + "cols": { + "lenName": 16, + "lenType": 16, + "lenVar": 40 + }, + "kernels_config": { + "python": { + "delete_cmd_postfix": "", + "delete_cmd_prefix": "del ", + "library": "var_list.py", + "varRefreshCmd": "print(var_dic_list())" + }, + "r": { + "delete_cmd_postfix": ") ", + "delete_cmd_prefix": "rm(", + "library": "var_list.r", + "varRefreshCmd": "cat(var_dic_list()) " + } + }, + "types_to_exclude": [ + "module", + "function", + "builtin_function_or_method", + "instance", + "_Feature" + ], + "window_display": false } }, "nbformat": 4, - "nbformat_minor": 0 + "nbformat_minor": 1 } diff --git a/examples/alanine_dipeptide_tps/AD_tps_2a_run_flex.ipynb b/examples/alanine_dipeptide_tps/AD_tps_2a_run_flex.ipynb index 132c98b0e..8e07de03a 100644 --- a/examples/alanine_dipeptide_tps/AD_tps_2a_run_flex.ipynb +++ b/examples/alanine_dipeptide_tps/AD_tps_2a_run_flex.ipynb @@ -1,5 +1,12 @@ { "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Running a TPS simulation" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -34,9 +41,7 @@ { "cell_type": "code", "execution_count": 2, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "old_storage = paths.Storage(\"tps_nc_files/alanine_dipeptide_tps_equil.nc\", \"r\")" @@ -45,9 +50,7 @@ { "cell_type": "code", "execution_count": 3, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "engine = old_storage.engines[0]\n", @@ -62,9 +65,7 @@ { "cell_type": "code", "execution_count": 4, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "name": "stdout", @@ -97,9 +98,7 @@ { "cell_type": "code", "execution_count": 5, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "network = paths.TPSNetwork(C_7eq, alpha_R)" @@ -108,9 +107,7 @@ { "cell_type": "code", "execution_count": 6, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "scheme = paths.OneWayShootingMoveScheme(network, selector=paths.UniformSelector(), engine=engine)" @@ -119,9 +116,7 @@ { "cell_type": "code", "execution_count": 7, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "name": "stdout", @@ -139,9 +134,7 @@ { "cell_type": "code", "execution_count": 8, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "storage = paths.Storage(\"tps_nc_files/alanine_dipeptide_tps.nc\", \"w\", template)\n", @@ -160,9 +153,7 @@ { "cell_type": "code", "execution_count": 9, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "name": "stdout", @@ -192,23 +183,65 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 2", + "display_name": "Python 3", "language": "python", - "name": "python2" + "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", - "version": 2 + "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", - "pygments_lexer": "ipython2", - "version": "2.7.12" + "pygments_lexer": "ipython3", + "version": "3.7.3" + }, + "toc": { + "base_numbering": 1, + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": true, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": true + }, + "varInspector": { + "cols": { + "lenName": 16, + "lenType": 16, + "lenVar": 40 + }, + "kernels_config": { + "python": { + "delete_cmd_postfix": "", + "delete_cmd_prefix": "del ", + "library": "var_list.py", + "varRefreshCmd": "print(var_dic_list())" + }, + "r": { + "delete_cmd_postfix": ") ", + "delete_cmd_prefix": "rm(", + "library": "var_list.r", + "varRefreshCmd": "cat(var_dic_list()) " + } + }, + "types_to_exclude": [ + "module", + "function", + "builtin_function_or_method", + "instance", + "_Feature" + ], + "window_display": false } }, "nbformat": 4, - "nbformat_minor": 0 + "nbformat_minor": 1 } diff --git a/examples/alanine_dipeptide_tps/AD_tps_2b_run_fixed.ipynb b/examples/alanine_dipeptide_tps/AD_tps_2b_run_fixed.ipynb index 4e552bda5..8dd5158c0 100644 --- a/examples/alanine_dipeptide_tps/AD_tps_2b_run_fixed.ipynb +++ b/examples/alanine_dipeptide_tps/AD_tps_2b_run_fixed.ipynb @@ -1,5 +1,12 @@ { "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Running a fixed-length TPS simulation" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -33,9 +40,7 @@ { "cell_type": "code", "execution_count": 2, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "old_storage = paths.Storage(\"tps_nc_files/alanine_dipeptide_fixed_tps_traj.nc\", \"r\")" @@ -44,9 +49,7 @@ { "cell_type": "code", "execution_count": 3, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "engine = old_storage.engines[0]\n", @@ -61,9 +64,7 @@ { "cell_type": "code", "execution_count": 4, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "name": "stdout", @@ -91,9 +92,7 @@ { "cell_type": "code", "execution_count": 5, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "network = paths.FixedLengthTPSNetwork(C_7eq, alpha_R, length=400)" @@ -102,9 +101,7 @@ { "cell_type": "code", "execution_count": 6, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "scheme = paths.OneWayShootingMoveScheme(network, selector=paths.UniformSelector(), engine=engine)" @@ -113,9 +110,7 @@ { "cell_type": "code", "execution_count": 7, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "name": "stdout", @@ -133,9 +128,7 @@ { "cell_type": "code", "execution_count": 8, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "sampler = paths.PathSampling(storage=paths.Storage(\"tps_nc_files/alanine_dipeptide_fixed_tps.nc\", \"w\", template),\n", @@ -158,9 +151,7 @@ { "cell_type": "code", "execution_count": 10, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "name": "stdout", @@ -189,23 +180,65 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 2", + "display_name": "Python 3", "language": "python", - "name": "python2" + "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", - "version": 2 + "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", - "pygments_lexer": "ipython2", - "version": "2.7.12" + "pygments_lexer": "ipython3", + "version": "3.7.3" + }, + "toc": { + "base_numbering": 1, + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": true, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": true + }, + "varInspector": { + "cols": { + "lenName": 16, + "lenType": 16, + "lenVar": 40 + }, + "kernels_config": { + "python": { + "delete_cmd_postfix": "", + "delete_cmd_prefix": "del ", + "library": "var_list.py", + "varRefreshCmd": "print(var_dic_list())" + }, + "r": { + "delete_cmd_postfix": ") ", + "delete_cmd_prefix": "rm(", + "library": "var_list.r", + "varRefreshCmd": "cat(var_dic_list()) " + } + }, + "types_to_exclude": [ + "module", + "function", + "builtin_function_or_method", + "instance", + "_Feature" + ], + "window_display": false } }, "nbformat": 4, - "nbformat_minor": 0 + "nbformat_minor": 1 } diff --git a/examples/alanine_dipeptide_tps/AD_tps_3a_analysis_flex.ipynb b/examples/alanine_dipeptide_tps/AD_tps_3a_analysis_flex.ipynb index 65b992acb..0ef1ecd8a 100644 --- a/examples/alanine_dipeptide_tps/AD_tps_3a_analysis_flex.ipynb +++ b/examples/alanine_dipeptide_tps/AD_tps_3a_analysis_flex.ipynb @@ -1,5 +1,12 @@ { "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Analyzing the flexible path length simulation" + ] + }, { "cell_type": "code", "execution_count": 1, @@ -15,13 +22,6 @@ "from IPython.display import SVG" ] }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Analyzing the flexible path length simulation" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -873,21 +873,63 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 2", + "display_name": "Python 3", "language": "python", - "name": "python2" + "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", - "version": 2 + "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", - "pygments_lexer": "ipython2", - "version": "2.7.15" + "pygments_lexer": "ipython3", + "version": "3.7.3" + }, + "toc": { + "base_numbering": 1, + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": true, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": true + }, + "varInspector": { + "cols": { + "lenName": 16, + "lenType": 16, + "lenVar": 40 + }, + "kernels_config": { + "python": { + "delete_cmd_postfix": "", + "delete_cmd_prefix": "del ", + "library": "var_list.py", + "varRefreshCmd": "print(var_dic_list())" + }, + "r": { + "delete_cmd_postfix": ") ", + "delete_cmd_prefix": "rm(", + "library": "var_list.r", + "varRefreshCmd": "cat(var_dic_list()) " + } + }, + "types_to_exclude": [ + "module", + "function", + "builtin_function_or_method", + "instance", + "_Feature" + ], + "window_display": false } }, "nbformat": 4, diff --git a/examples/alanine_dipeptide_tps/AD_tps_3b_analysis_fixed.ipynb b/examples/alanine_dipeptide_tps/AD_tps_3b_analysis_fixed.ipynb index f70e1a699..9ae4d8385 100644 --- a/examples/alanine_dipeptide_tps/AD_tps_3b_analysis_fixed.ipynb +++ b/examples/alanine_dipeptide_tps/AD_tps_3b_analysis_fixed.ipynb @@ -1,5 +1,14 @@ { "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Analyzing the fixed path length simulation\n", + "\n", + "We start with the same sorts of analysis as we did in the flexible path length example: we get an overview of the file, then we look at the acceptance ratio, and then we look at the move history tree and the decorrelated trajectories." + ] + }, { "cell_type": "code", "execution_count": 1, @@ -27,15 +36,6 @@ "logging.config.fileConfig(\"timed_logging.conf\", disable_existing_loggers=False)" ] }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Analyzing the fixed path length simulation\n", - "\n", - "We start with the same sorts of analysis as we did in the flexible path length example: we get an overview of the file, then we look at the acceptance ratio, and then we look at the move history tree and the decorrelated trajectories." - ] - }, { "cell_type": "code", "execution_count": 3, @@ -550,21 +550,63 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 2", + "display_name": "Python 3", "language": "python", - "name": "python2" + "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", - "version": 2 + "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", - "pygments_lexer": "ipython2", - "version": "2.7.15" + "pygments_lexer": "ipython3", + "version": "3.7.3" + }, + "toc": { + "base_numbering": 1, + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": true, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": true + }, + "varInspector": { + "cols": { + "lenName": 16, + "lenType": 16, + "lenVar": 40 + }, + "kernels_config": { + "python": { + "delete_cmd_postfix": "", + "delete_cmd_prefix": "del ", + "library": "var_list.py", + "varRefreshCmd": "print(var_dic_list())" + }, + "r": { + "delete_cmd_postfix": ") ", + "delete_cmd_prefix": "rm(", + "library": "var_list.r", + "varRefreshCmd": "cat(var_dic_list()) " + } + }, + "types_to_exclude": [ + "module", + "function", + "builtin_function_or_method", + "instance", + "_Feature" + ], + "window_display": false } }, "nbformat": 4, diff --git a/examples/alanine_dipeptide_tps/AD_tps_4_advanced.ipynb b/examples/alanine_dipeptide_tps/AD_tps_4_advanced.ipynb index 0f97dbe9a..470b35c37 100644 --- a/examples/alanine_dipeptide_tps/AD_tps_4_advanced.ipynb +++ b/examples/alanine_dipeptide_tps/AD_tps_4_advanced.ipynb @@ -1,5 +1,18 @@ { "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Advanced analysis techniques\n", + "\n", + "Now we'll move on to a few more advanced analysis techniques. (These are discussed in Paper II.)\n", + "\n", + "With the fixed path length ensemble, we should check for recrossings. To do this, we create an ensemble which represents the recrossing paths: a frame in $\\beta$, possible frames in neither $\\alpha$ nor $\\beta$, and then a frame in $\\alpha$.\n", + "\n", + "Then we check whether any subtrajectory of a trial trajectory matches that ensemble, by using the `Ensemble.split()` function. We can then further refine to see which steps that included trials with recrossings were actually accepted." + ] + }, { "cell_type": "code", "execution_count": 1, @@ -15,19 +28,6 @@ "from IPython.display import SVG" ] }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Advanced analysis techniques\n", - "\n", - "Now we'll move on to a few more advanced analysis techniques. (These are discussed in Paper II.)\n", - "\n", - "With the fixed path length ensemble, we should check for recrossings. To do this, we create an ensemble which represents the recrossing paths: a frame in $\\beta$, possible frames in neither $\\alpha$ nor $\\beta$, and then a frame in $\\alpha$.\n", - "\n", - "Then we check whether any subtrajectory of a trial trajectory matches that ensemble, by using the `Ensemble.split()` function. We can then further refine to see which steps that included trials with recrossings were actually accepted." - ] - }, { "cell_type": "code", "execution_count": 2, @@ -805,21 +805,63 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 2", + "display_name": "Python 3", "language": "python", - "name": "python2" + "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", - "version": 2 + "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", - "pygments_lexer": "ipython2", - "version": "2.7.15" + "pygments_lexer": "ipython3", + "version": "3.7.3" + }, + "toc": { + "base_numbering": 1, + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": true, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": true + }, + "varInspector": { + "cols": { + "lenName": 16, + "lenType": 16, + "lenVar": 40 + }, + "kernels_config": { + "python": { + "delete_cmd_postfix": "", + "delete_cmd_prefix": "del ", + "library": "var_list.py", + "varRefreshCmd": "print(var_dic_list())" + }, + "r": { + "delete_cmd_postfix": ") ", + "delete_cmd_prefix": "rm(", + "library": "var_list.r", + "varRefreshCmd": "cat(var_dic_list()) " + } + }, + "types_to_exclude": [ + "module", + "function", + "builtin_function_or_method", + "instance", + "_Feature" + ], + "window_display": false } }, "nbformat": 4, From 0cb85b20ac72120bf0cfb6cad924808f243e099c Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Wed, 14 Oct 2020 17:01:34 +0200 Subject: [PATCH 418/464] Update openpathsampling/engines/external_engine.py Co-authored-by: sroet --- openpathsampling/engines/external_engine.py | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/openpathsampling/engines/external_engine.py b/openpathsampling/engines/external_engine.py index 0c6379acf..28d7e660c 100644 --- a/openpathsampling/engines/external_engine.py +++ b/openpathsampling/engines/external_engine.py @@ -116,16 +116,10 @@ def __init__(self, engine): descriptor=descriptor) def to_dict(self): - dct = super(_InternalizedEngineProxy, self).to_dict() - dct['engine'] = self.engine + # We only need the engine to load again + dct = {'engine': self.engine} return dct - @classmethod - def from_dict(cls, dct): - # ignore everything except the engine here - dct = {'engine': dct['engine']} - return super(_InternalizedEngineProxy, cls).from_dict(dct) - @property def name(self): return self.engine.name + " (internalized)" @@ -321,4 +315,3 @@ def engine_command(self): """Generates a string for the command to run the engine.""" raise NotImplementedError() - From f0c5e51abee56ae3a9d2e60b09f1970aa45554dc Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Fri, 16 Oct 2020 10:03:05 +0200 Subject: [PATCH 419/464] some nbsphinx integration; improve docs/examples --- docs/Makefile | 4 + docs/conf.py | 3 + docs/copyfiles/copyfiles.py | 79 ++++ docs/copyfiles/notebooks.yml | 23 ++ docs/examples/AD_tps.rst | 13 +- docs/examples/index.rst | 30 +- docs/examples/mstis.rst | 33 +- docs/topics/common_setups.rst | 23 +- .../AD_tps_1_trajectory.ipynb | 354 ++++++------------ .../AD_tps_2a_run_flex.ipynb | 25 +- .../AD_tps_3a_analysis_flex.ipynb | 6 +- openpathsampling/step_visualizer_2D.py | 2 +- 12 files changed, 283 insertions(+), 312 deletions(-) create mode 100644 docs/copyfiles/copyfiles.py create mode 100644 docs/copyfiles/notebooks.yml diff --git a/docs/Makefile b/docs/Makefile index 86918ef62..582e7536f 100644 --- a/docs/Makefile +++ b/docs/Makefile @@ -6,6 +6,8 @@ SPHINXBUILD = sphinx-build PAPER = BUILDDIR = _build +COPYFILES = copyfiles/copyfiles.py + # User-friendly check for sphinx-build ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1) $(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/) @@ -52,7 +54,9 @@ clean: rm -rf $(BUILDDIR)/* html: + python $(COPYFILES) --copy copyfiles/notebooks.yml $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html + python $(COPYFILES) --delete copyfiles/notebooks.yml @echo @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." diff --git a/docs/conf.py b/docs/conf.py index ef9ca7035..a57b96510 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -65,6 +65,9 @@ 'nbsphinx' ] +# +nbsphinx_execute = "never" + # Napoleon settings napoleon_google_docstring = False napoleon_numpy_docstring = True diff --git a/docs/copyfiles/copyfiles.py b/docs/copyfiles/copyfiles.py new file mode 100644 index 000000000..a7735c95c --- /dev/null +++ b/docs/copyfiles/copyfiles.py @@ -0,0 +1,79 @@ +import pathlib +import yaml +import argparse +import shutil +import urllib.request +import tempfile + +def parse_conf(): + parser = argparse.ArgumentParser() + parser.add_argument('conf') + parser.add_argument('--copy', action='store_true') + parser.add_argument('--delete', action='store_true') + opts = parser.parse_args() + if opts.copy == opts.delete: + raise RuntimeError("Must set exactly one of --copy or --delete") + action = 'copy' if opts.copy else 'delete' + with open(opts.conf, mode='r') as f: + conf = yaml.load(f.read(), yaml.SafeLoader) + return conf, action + +def copy_local(source, dest, files): + source = pathlib.Path(source) + dest = pathlib.Path(dest) + for f in files: + print("cp " + str(source / f) + " " + str(dest / f)) + shutil.copy(source / f, dest / f) + +def copy_gitlab(source, dest, files): + middle_str = "/-/raw/master/" + dest = pathlib.Path(dest) + for f in files: + url = source + middle_str + f + print(url) + urllib.request.urlretrieve(url, dest / f) + +DISPATCH = { + 'local': copy_local, + 'gitlab': copy_gitlab +} + +def make_copies(fileset): + dispatch_keys = set(DISPATCH) + set_keys = set(fileset) + set_types = list(dispatch_keys & set_keys) + if len(set_types) != 1: + raise RuntimeError("Bad yaml") + dirs = fileset.get('mkdirs', []) + for d in dirs: + pathlib.Path(d).mkdir(parents=True) + source = set_types[0] + DISPATCH[source](fileset[source], fileset['target'], fileset['files']) + +def delete_files(fileset): + dest = pathlib.Path(fileset['target']) + for f in fileset['files']: + print(dest / f) + (dest /f).unlink() + for d in reversed(fileset['mkdirs']): + print(d) + try: + pathlib.Path(d).rmdir() + except OSError: + pass # guess we can't delete this one yet + + +def main(): + conf, runtype = parse_conf() + func = {'copy': make_copies, 'delete': delete_files}[runtype] + for fileset in conf['copyfiles']: + func(fileset) + + +if __name__ == "__main__": + main() + + + + + diff --git a/docs/copyfiles/notebooks.yml b/docs/copyfiles/notebooks.yml new file mode 100644 index 000000000..0c8ed1a41 --- /dev/null +++ b/docs/copyfiles/notebooks.yml @@ -0,0 +1,23 @@ +copyfiles: + - local: ../examples + target: examples + mkdirs: + - examples/alanine_dipeptide_tps + - examples/toy_model_mstis + files: + - alanine_dipeptide_tps/AD_tps_1_trajectory.ipynb + - alanine_dipeptide_tps/AD_tps_2a_run_flex.ipynb + - alanine_dipeptide_tps/AD_tps_3a_analysis_flex.ipynb + - toy_model_mstis/toy_mstis_1_setup.ipynb + - toy_model_mstis/toy_mstis_2_run.ipynb + - toy_model_mstis/toy_mstis_3_analysis.ipynb + - gitlab: http://gitlab.e-cam2020.eu/dwhswenson/ops_tutorial + target: examples/ops_tutorial + mkdirs: + - examples/ops_tutorial + files: + - 1_tps_sampling_tutorial.ipynb + - 2_tps_analysis_tutorial.ipynb + - 3_committor_analysis_tutorial.ipynb + - 4_mstis_sampling_tutorial.ipynb + - 5_advanced_customize_shooting.ipynb diff --git a/docs/examples/AD_tps.rst b/docs/examples/AD_tps.rst index 04aacdffb..744bd18bf 100644 --- a/docs/examples/AD_tps.rst +++ b/docs/examples/AD_tps.rst @@ -4,8 +4,17 @@ Flexible Length TPS on Alanine Dipeptide ======================================== This example shows how to set up, run, and analyze a 2-state TPS simulation. -The system studied is alanine dipeptide, a standard test system for rare -events. ???TODO: say more??? +The system studied is alanine dipeptide, which Peter Bolhuis likes to say is +"the hydrogen atom of biomolecules" -- it has enough complexity to +illustrate the ideas of biomolecular simulation, but is small enough that +even when solvated, a full TPS simulation can run on a laptop and be +converged overnight. + +This example consists of three notebooks: one to create an initial +trajectory from a high-temperature run, one to run TPS, and one to analyze +the TPS results. These notebooks can be found in the `OpenPathSampling +GitHub repository +`_. .. toctree:: diff --git a/docs/examples/index.rst b/docs/examples/index.rst index bce119ce2..7684ccd66 100644 --- a/docs/examples/index.rst +++ b/docs/examples/index.rst @@ -18,26 +18,40 @@ them in our `GitHub repository .. note:: It's a *lot* more fun to run these examples live than to just read them here! +Tutorial +-------- + +One of the best ways to get familiar with OPS is our tutorial, which has +been used in several workshops and classrooms over the years. The main part +of the tutorial (notebooks numbered 1-3) is essentially the same as the +alanine dipeptide TPS example, and usually takes no more than 90 minutes to +complete. It can be downloaded at the link below; see the readme file for +details: + +* http://gitlab.e-cam2020.eu/dwhswenson/ops_tutorial + +There's also a `YouTube video of the tutorial +`_ as it was presented at a +workshop in 2017. + + Introductory Examples --------------------- -These examples give the entire process of a path sampling simulation: going +The next examples give the entire process of a path sampling simulation: going from an initial frame to a set of initial trajectories, performing the path sampling, and the analyzing the results. .. toctree:: :maxdepth: 1 - mstis AD_tps + mstis We recommend beginning with those two examples: they cover most of the -essential points of using OPS. Additionally, there's a `tutorial version of -the alanine dipeptide TPS example -`_, if you prefer a -version where *you* have to add the missing pieces to make it run. -We also have several other examples which show how to use these approaches -for specific cases. Here are several of those: +essential points of using OPS. We also have several other examples which +show how to use these approaches for specific cases. Here are several of +those: .. toctree:: :maxdepth: 1 diff --git a/docs/examples/mstis.rst b/docs/examples/mstis.rst index b38767a5a..64aae0b4a 100644 --- a/docs/examples/mstis.rst +++ b/docs/examples/mstis.rst @@ -5,7 +5,7 @@ Multiple State TIS on a Toy Model This example covers the use the multiple state TIS on a simple toy model. We recommend new users start by working through these notebooks because (1) -these notebooks have the most details discussion, and (2) the systems are +these notebooks have the most detailed discussion, and (2) the systems are simple enough that the simulations can be run interactively. This example consists of three notebooks: one to obtain initial @@ -16,31 +16,8 @@ For more advanced techniques based on the same system, see the subsequent notebooks in the `directory containing these examples `_. -* :ref:`Obtaining the first trajectories for a toy model - ` -* :ref:`Running an MSTIS simulation ` -* :ref:`Analyzing the MSTIS simulations ` - -.. _toy-mstis-first-traj: - ------ - - -.. notebook:: examples/toy_model_mstis/toy_mstis_1_setup.ipynb - :skip_exceptions: - -.. _toy-mstis-running: - ------ - - -.. notebook:: examples/toy_model_mstis/toy_mstis_2_run.ipynb - :skip_exceptions: - -.. _toy-mstis-analysis: - ------ - -.. notebook:: examples/toy_model_mstis/toy_mstis_3_analysis.ipynb - :skip_exceptions: +.. toctree:: + toy_model_mstis/toy_mstis_1_setup + toy_model_mstis/toy_mstis_2_run + toy_model_mstis/toy_mstis_3_analysis diff --git a/docs/topics/common_setups.rst b/docs/topics/common_setups.rst index 926d39e67..6f11cbb0f 100644 --- a/docs/topics/common_setups.rst +++ b/docs/topics/common_setups.rst @@ -99,10 +99,9 @@ Move schemes for TPS ==================== Often, when using TPS (and especially when using flexible-length TPS), the -entire move scheme consists of a single shooting mover. Currently, OPS only -supports one-way shooting. A move scheme consisting of a single one-way -shooting move can be created with the :class:`.OneWayShootingMoveScheme`. -The common way to set this up is: +entire move scheme consists of a single shooting mover. A move scheme +consisting of a single one-way shooting move can be created with the +:class:`.OneWayShootingMoveScheme`. The common way to set this up is: .. code-block:: python @@ -136,11 +135,10 @@ transition listed: .. code-block:: python - network = paths.MISTISNetwork([(A, interfacesAB, orderparameterAB, B)]) + network = paths.MISTISNetwork([(A, interfacesAB, B)]) -This will sample the transition from ``A`` to ``B`` using the list of -``interfaces``, and the resulting analysis will be based on the collective -variable ``orderparameter``. +This will sample the transition from ``A`` to ``B`` using the +:class:`.InterfaceSet` ``interfaces``. .. _bidirectional-TIS: @@ -155,8 +153,8 @@ simpler, and gives completely equivalent results: .. code-block:: python - network = paths.MSTISNetwork([(A, interfacesA, orderparameterA), - (B, interfacesB, orderparameterB)]) + network = paths.MSTISNetwork([(A, interfacesA), + (B, interfacesB)]) Multiple-state TIS @@ -204,7 +202,4 @@ This move scheme is generated with scheme = paths.DefaultScheme(network, engine) -Single replica TIS ------------------- - -Any move scheme can be converted to a single replica move scheme with ??? +.. TODO: SRTIS diff --git a/examples/alanine_dipeptide_tps/AD_tps_1_trajectory.ipynb b/examples/alanine_dipeptide_tps/AD_tps_1_trajectory.ipynb index ecb82575c..06942a55a 100644 --- a/examples/alanine_dipeptide_tps/AD_tps_1_trajectory.ipynb +++ b/examples/alanine_dipeptide_tps/AD_tps_1_trajectory.ipynb @@ -4,7 +4,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Obtaining an initial trajectory for TPS" + "# Obtaining an equilibrated initial trajectory" ] }, { @@ -27,6 +27,7 @@ "metadata": {}, "outputs": [], "source": [ + "from __future__ import print_function\n", "%matplotlib inline\n", "import matplotlib.pyplot as plt\n", "import openpathsampling as paths\n", @@ -46,7 +47,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## Setting up the engine" + "## Setting up high-temperature engine" ] }, { @@ -92,16 +93,14 @@ { "cell_type": "code", "execution_count": 3, - "metadata": { - "collapsed": true - }, + "metadata": {}, "outputs": [], "source": [ "template = omm.snapshot_from_pdb(\"../resources/AD_initial_frame.pdb\")\n", "openmm_properties = {'OpenCLPrecision': 'mixed'}\n", "engine_options = {\n", " 'n_steps_per_frame': 10,\n", - " 'n_frames_max': 2000\n", + " 'n_frames_max': 20000\n", "}" ] }, @@ -147,8 +146,10 @@ "outputs": [], "source": [ "# define the CVs\n", - "psi = paths.MDTrajFunctionCV(\"psi\", md.compute_dihedrals, template.topology, indices=[[6,8,14,16]])\n", - "phi = paths.MDTrajFunctionCV(\"phi\", md.compute_dihedrals, template.topology, indices=[[4,6,8,14]])" + "psi = paths.MDTrajFunctionCV(\"psi\", md.compute_dihedrals,\n", + " topology=template.topology, indices=[[6,8,14,16]])\n", + "phi = paths.MDTrajFunctionCV(\"phi\", md.compute_dihedrals,\n", + " topology=template.topology, indices=[[4,6,8,14]])" ] }, { @@ -166,8 +167,10 @@ " period_min=-np.pi, period_max=np.pi)\n", ").named(\"C_7eq\")\n", "# similarly, without bothering with the labels:\n", - "alpha_R = (paths.PeriodicCVDefinedVolume(phi, -180/deg, 0/deg, -np.pi, np.pi) &\n", - " paths.PeriodicCVDefinedVolume(psi, -100/deg, 0/deg, -np.pi, np.pi)).named(\"alpha_R\")" + "alpha_R = (\n", + " paths.PeriodicCVDefinedVolume(phi, -180/deg, 0/deg, -np.pi, np.pi) &\n", + " paths.PeriodicCVDefinedVolume(psi, -100/deg, 0/deg, -np.pi, np.pi)\n", + ").named(\"alpha_R\")" ] }, { @@ -202,18 +205,32 @@ "cell_type": "code", "execution_count": 9, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/dwhs/miniconda3/envs/dev/lib/python3.7/site-packages/mdtraj/utils/validation.py:116: TypeCastPerformanceWarning: Casting unitcell_vectors dtype=float64 to \n", + " TypeCastPerformanceWarning)\n" + ] + } + ], "source": [ "# generate trajectory that includes frame in both states\n", "trajectory = hi_T_engine.generate(hi_T_engine.current_snapshot, [init_traj_ensemble])" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Plotting the trajectory" + ] + }, { "cell_type": "code", "execution_count": 10, - "metadata": { - "collapsed": true - }, + "metadata": {}, "outputs": [], "source": [ "# create a network so we can use its ensemble to obtain an initial trajectory\n", @@ -230,7 +247,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "[Trajectory[30]]\n" + "[Trajectory[117]]\n" ] } ], @@ -239,14 +256,7 @@ "subtrajectories = []\n", "for ens in tmp_network.analysis_ensembles:\n", " subtrajectories += ens.split(trajectory)\n", - "print subtrajectories" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Plotting the trajectory" + "print(subtrajectories)" ] }, { @@ -257,7 +267,7 @@ { "data": { "text/plain": [ - "[]" + "[]" ] }, "execution_count": 12, @@ -266,12 +276,14 @@ }, { "data": { - "image/png": "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\nANzd3Zk4cSIPPvggkyZNYuLEiXh5eQE/jRHJy8ujqKiIjIwMEhMTue6668z+DLfeeit79zZvyi3d\nOaI3kIRDCHHJzLkTq5+fHwltWgV6clt5o9HIwoULSUlJ4cyZMwQFBbFmzRqefvppamtrsbGxYcyY\nMdx4440899xzTJo0iSFDhnTYggPtW5AqKiq4+eabufHGG/n++++Jiooy67OcO5i1bUuLEJYgs1SE\nEL1KV2eOmENUVFS7abL29vYsWrSISZMmMWnSJMaOHYuDg8NlX7+qqor58+eze/du1q1bx4wZM7oj\n7PMopXB0dKS2trZd+WOPPcaLL77Y5Vk84uons1SEENesyx1X0h3O7b7x9/c/b++JK+Hs7My6detY\nuHAh8+bN45tvvuGmm27qtuuftX37dmpra4mIiKCmpgZfX19mzZrFa6+9xtq1a/n444+5/vrru/2+\nQlxIz22CIIQQvdy53Tfm6M5xdHRk7dq1zJw5k/nz5190PZLL8dFHHxESEkJKSgoZGRkkJCTwwgsv\nkJycjLe3N9OmTeM3v/kN1dXV3X5vITojCYcQQrSIj49Hr9cTEhKCXq/v1rEpbTk4OBAfH8+cOXNY\nuHAhX3/9dbddu7y8nDVr1nD33Xeft2ZJWFgY27dv54033uDDDz9k1KhRbOmGTfCE6ApJOIQQosXZ\n7pyMjAx27Nhh1rEj9vb2rFmzhoULF7J48WLWrFnTLdddvXo1dXV1xMbGdvi+tbU1y5cvJyUlBT8/\nP2bMmMFDDz3Ubll5IcxBEg4hRJ9jNBqJiooiNDSUqKio8/aE6StsbW357LPPuO2227j99tv57LPP\nrviaH330EXPnzsXf3/+C9YYMGcLWrVt5++23WblyJSNHjmTTpk1XfH8hOiMJhxCiz1m4cCEJCQlk\nZmaSkJBAdHS0pUO6bDY2NqxatYply5axdOlSVq5cednXOnjwIPv27ePuu+/uUn0rKyseffRRDh48\nSFBQELNmzeL++++noqLismMQojOScAgh+gSTycSmTZv4xS9+cd6S4WlpaRQUFFgositnbW3NRx99\nxL333stdd93F3//+98u6zkcffYSPjw+33HLLJZ0XGhrKpk2beP/99/nkk0+IiIjghx9+uKwYhOiM\nJBxCiF7t6NGjPPvss61/ge/Zs4fAwMB2dUpLSwkICODmm2/miy++OG/9ib7AysqKDz74gIcffpj7\n7ruP999//5LOr62t5ZNPPiE2NhZbW9vLuv+DDz5IamoqQ4YMYfbs2dxzzz3tNqsT4kpIwiGE6HVK\nS0v54IMPmDx5MmFhYaxYsYJ58+axa9cu0tPT2bt3b7vZJOnp6bz33nuUlJTw85//HF9fX+677z52\n7txJX1rcUNM03nnnHR577DEefvhh3nzzzS6f+/XXX1NSUsKvfvWrK4ohKCiIjRs38re//Y0vvviC\niIgIvv/++yu6phBA84p0ffkAxgEqKSlJCSH6roaGBrVu3Tq1ePFiZW9vr6ytrdW8efPUv//9b3Xm\nzJkuX+fo0aPq2WefVYGBgQpQQ4YMUS+++KI6efKkGaPvXiaTST399NMKUK+88kqXzpk1a5bS6/Xd\nGkd2dra66aabFKBiY2NVSUlJt15fWF5SUpICFDBOmfv72tw3MPsDSMIhRJ+WkpKiHnvsMTVgwAAF\nqJEjR6q//OUvymAwXNF1m5qa1KZNm1RsbKxycnJSgJo+fbr65z//qSoqKropevMxmUzq+eefV4B6\n4YUXlMlk6rRuVlaWAtTHH39sljg++ugj5eLionQ6nVq7dm2330NYjiQcknAIcVUzGo3qrbfeUmPG\njFGAsrGxUS4uLmr06NGqoKCg2+9XWVmp4uLi1MyZM5WmacrR0VEtXbpUbdiwQTU2Nnb7/brTyy+/\nrAD1zDPPdJp0/OEPf1DOzs6qsrLSbHHk5uaquXPnKkAtXbpUFRcXm+1eouf0ZMIhm7cJYUFGo5GY\nmBiLbFTW0+rq6vjPf/5DXFwc3333HZqmceutt5KWlkZaWlprPXd3d2bMmIG9vT329vY4ODi0+3k5\nZW1/LywsZPXq1cTFxXHs2DECAgL4xS9+QWxsLMOGDbPgJ9S5N998k8cff5zHH3+cP//5z+12p21q\naiI4OJg5c+Zc9uyWrlJKsWrVKn77299ib2/PBx98wMKFC816T2FePbl5myQcQphRZWUlBoOBgoIC\nDAZD63H2dUJCAjU1Na319Xq9xTYuMwelFPv27SMuLo7Vq1dTUlLChAkTiI2N5fbbb8fT05PQ0FAy\nMzMv6brOzs7U19dTX19/WXFZW1tjb2/f7rNvKyIiAj8/v25JcC5W1tnW9ud67733eOSRR7j77rtJ\nT09vTVIffvhhlixZQmJiIpMmTbqsz+NS5efnc//99/Ptt99y++238+677+Ll5dUj9xbdS3aLFaKX\n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\n", + "image/png": "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\n", "text/plain": [ - "" + "
" ] }, - "metadata": {}, + "metadata": { + "needs_background": "light" + }, "output_type": "display_data" } ], @@ -284,7 +296,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## Setting up another engine\n", + "## Setting up the production engine\n", "\n", "We'll create another engine that uses a 300K integrator, and equilibrate to a 300K path from the 500K path." ] @@ -307,15 +319,14 @@ " integrator, \n", " openmm_properties=openmm_properties,\n", " options=engine_options\n", - ")\n", - "engine.name = '300K'" + ").named('300K')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "## Equilibrating for TPS\n", + "## Using TPS to equilibrate\n", "\n", "This is, again, a simple path sampling setup. We use the same `TPSNetwork` we'll use later, and only shooting moves. One the initial conditions are correctly set up, we run one step at a time until the initial trajectory is decorrelated.\n", "\n", @@ -325,9 +336,7 @@ { "cell_type": "code", "execution_count": 14, - "metadata": { - "collapsed": true - }, + "metadata": {}, "outputs": [], "source": [ "network = paths.TPSNetwork(initial_states=C_7eq, final_states=alpha_R)\n", @@ -360,30 +369,60 @@ { "cell_type": "code", "execution_count": 16, - "metadata": { - "collapsed": true - }, + "metadata": {}, "outputs": [], "source": [ "# check that initial conditions are valid and complete (raise AssertionError otherwise)\n", "scheme.assert_initial_conditions(initial_conditions)" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can create a `StepVisualizer2D`, which plays the simulation as it is running. It requires CVs for the $x$ direction and the $y$ direction, as well as bounds of the plot. You can set the `background` attribute to an existing matplotlib `Figure`, and the simulation will plot on top of that. See the toy model MSTIS example for an example of that.\n", + "\n", + "This isn't necessary, and isn't even a good useful for long simulations (which typically won't be in an interactive notebook), but it can be fun!" + ] + }, { "cell_type": "code", "execution_count": 17, "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "visualizer = paths.StepVisualizer2D(network, phi, psi, xlim=[-3.14, 3.14], \n", + " ylim=[-3.14, 3.14])" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, "outputs": [], "source": [ - "sampler = paths.PathSampling(storage=paths.Storage(\"tps_nc_files/alanine_dipeptide_tps_equil.nc\", \"w\", template),\n", + "sampler = paths.PathSampling(storage=paths.Storage(\"alanine_dipeptide_tps_equil.nc\", \"w\", template),\n", " move_scheme=scheme,\n", " sample_set=initial_conditions)\n", - "sampler.live_visualizer = paths.StepVisualizer2D(network, phi, psi, [-3.14, 3.14], [-3.14, 3.14])" + "sampler.live_visualizer = visualizer" ] }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 19, "metadata": {}, "outputs": [ { @@ -392,7 +431,7 @@ "True" ] }, - "execution_count": 18, + "execution_count": 19, "metadata": {}, "output_type": "execute_result" } @@ -405,14 +444,14 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 20, "metadata": {}, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ - "" + "
" ] }, "metadata": {}, @@ -422,126 +461,45 @@ "name": "stdout", "output_type": "stream", "text": [ - "DONE! Completed 10 Monte Carlo cycles.\n" + "Step 8: All trajectories decorrelated!\n" ] - }, - { - "data": { - "image/png": "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\nBOe8+eerAAAAAElFTkSuQmCC\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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\nAAAAAElFTkSuQmCC\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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\nAAAAAElFTkSuQmCC\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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\nAAAAAElFTkSuQmCC\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAf8AAAFdCAYAAAANJWRbAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAAPYQAAD2EBqD+naQAAHWRJREFUeJzt3XmUHXWd9/H3NwsgEJolgIBskkGDDGi3rI+APCg+MiKL\nbI0cFJeZIMiYQUEZnQEOiOtABAMOiITFKzAcJOhRGI3KqpFuRYUwD5HF+ABhCTRrICS/549ft92d\ndLpvJ1237k29X+fUyb11q+r3pU7Ip5Zf/SpSSkiSpOoYV3YBkiSpsQx/SZIqxvCXJKliDH9JkirG\n8JckqWIMf0mSKsbwlySpYiaUXcBAEbEJ8D7gEWBxudVIktRS1gG2A25JKT0z3IJNFf7k4L+m7CIk\nSWphHwa+P9wCzRb+jwBcffXVTJ06ddgFp0+fzvnnn9+Imlqa+6l+7qv6uJ/q436qj/upPvXsp3nz\n5nHcccdBb5YOp9Dwj4hpwInkyxAA9wFnp5R+upJVFgNMnTqV9vb2Ybfd1tY24jJyP42G+6o+7qf6\nuJ/q436qzyj304i3zYvu8LcAOB3o6J3mADdFxPCn9ZIkqTCFnvmnlH683KwvRsSJwJ7AvCLbliRJ\nQ2vYPf+IGAccBawL3N2odiVJ0mCFh39E7EwO+3WAF4DDUkoPrO52Ozs7V3cTleB+qp/7qj7up/q4\nn+rjfqrPWO+nSCmN6QZXaCBiArANsCHwIeCTwL5DHQBERDvQte+++9LW1jbot87OTv+SSJIE1Go1\narXaoHk9PT3cdtttAB0ppe7h1i88/FdoMOK/gfkppROH+K0d6Orq6rL3pyRJo9Dd3U1HRwfUEf5l\nDO87Dli7hHYlSRLFP+d/LvAT8iN/k8ijDu0HHFhku5IkaeWK7vC3OXAlsAXQA/wBODClNKfgdiVJ\n0koU/Zz/J4rcviRJGj1f6StJUsUY/pIkVYzhL0lSxRj+kiRVjOEvSVLFGP6SJFWM4S9JUsUY/pIk\nVYzhL0lSxRj+kiRVjOEvSVLFGP6SJFWM4S9JUsUY/pIkVYzhL0lSxRj+kiRVjOEvSVLFGP6SJFWM\n4S9JUsUY/pIkVYzhL0lSxRj+kiRVjOEvSVLFGP6SJFWM4S9JUsUY/pIkVYzhL0lSxRj+kiRVjOEv\nSVLFGP6SJFWM4S9JUsUY/pIkVYzhL0lSxRj+kiRVjOEvSVLFGP6SJFWM4S9JUsUY/pIkVUyh4R8R\nX4iIuRHxfEQsjIgbI2LHItuUJEnDK/rMfx/gQmAP4D3ARODWiHhDwe1KkqSVmFDkxlNKBw38HhEf\nBZ4EOoA7imxbkiQNrdH3/DcEErCowe1KkqReDQv/iAjgAuCOlNL9jWpXkiQNVuhl/+XMBHYC/lcD\n25QkSctpSPhHxEXAQcA+KaXHR1p++vTptLW1DZrX2dlJZ2dnQRVKktQ6arUatVpt0Lyenp6614+U\n0ljXNLiBHPyHAPullB4aYdl2oKurq4v29vZC65IkaU3S3d1NR0cHQEdKqXu4ZQs984+ImUAn8EHg\npYjYvPennpTS4iLbliRJQyu6w980YAPgl8BjA6ajCm5XkiStRNHP+Tt8sCRJTcZwliSpYgx/SZIq\nxvBvFX/+MyxZUnYVkqQ1gOHf7BYvhrPOgp12ggsuKLsaSdIawPBvdvffn8P/tdfgzDPh0UfLrkiS\n1OIM/2bX3g4nnZQ/v/wynHJKufVIklqe4d8KzjkH3vjG/Hn2bLjppnLrkSS1NMO/FbS1Db7f/+lP\nw4svllePJKmlGf6t4qij4MAD8+cFC/L9f0mSVoHh3yoiYOZMWHvt/P2CC+Dee8utSZLUkgz/VrLD\nDvDFL+bPS5fCtGmwbFm5NUmSWo7h32o+9zl4y1vy51//Gi69tNx6JEktx/BvNWuvDRdf3P/985+H\nhQvLq0eS1HIM/1a0//5w/PH583PPwWc/W249kqSWYvi3qq9/HTbaKH+++mr4+c/LrUeS1DIM/1a1\n2Wbw1a/2fz/xxPweAEmSRmD4t7KPfxz23jt/fvDBwQcDkiSthOHfyl58Ed70pv7v3/1uebVIklqG\n4d+qbrwRpk6F667rn7fPPuXVI0lqGYZ/q/nrX+HQQ+Hww+Gxx/K8ddeFb34TZs0qtzZJUkuYUHYB\na7zXXsuX5198EV54of/z8t+H+23g9+efHzyq3/vfn4f93W670v4TJUmtxfAfK+eeCzffvGKgL1lS\nTHubbw4zZuQX/kQU04YkaY1k+I+Fhx/uH3N/rEXA+uvnadKk/Od++8GXvtT/nL8kSaNg+I+FLbfM\nj9zdddfg+WutBbvtlkO7L7gHhvhQ35f/bd11PbOXJI0pw38srL02/PKXcP75cOaZ8Moref5rr8EG\nG8C3vw3bb19mhZIk/Y29/cfKxIlw2mlw//3wD//QP/8nP4G3vQ3OOy8fDEiSVDLDf6xtt13u+HfD\nDbDVVnneK6/AGWfAO94Bt99eanmSJBn+Yyml/GdEfg5/3jz4zGdgXO9uvv9+2HffPCzv00+XV6ck\nqdIM/7GwbFkeeGfcuBz8fdMGG8AFFwx+Lh/g8sth003hkkv6DxgkSWoQO/yNhSeegJtuGv16J56Y\np222yc/tT56cDwomT4YddoDjjssHEJIkjSHDfyxsuWV+o97pp6/a+n/5S56Wd/75ue/ALrusXn2S\nJA3gZf+xctpp+RJ+Svky/xNPwJw5cNFF8KlPwbvfnc/uhzJ58tDP8s+fD3vuCVddVWjpkqRq8cy/\nCBE56DffHPbfv751li6FZ5+Fp57KL+z53Ofgd7/LTwocf3weQOiCC/KYApIkrQbP/JvF+PH5CsDU\nqXDAATnsP/GJ/t8vuQTe9S549NHyapQkrREM/2a1zjpw6aX5yYB11snz7rkH2tvhpz8ttzZJUksz\n/JvdCSfA3XfDm9+cvy9aBAcdlIcRXv4RQkmS6mD4t4K3vz2f9b/tbfl7SnDWWXDZZeXWJUlqSYZ/\ns3v1VZg1Kz8tcN99g39bvLiUkiRJrc3e/s1q0aLcye+ii+Dxxwf/tu22cOqpcNJJ5dQmSWpphYZ/\nROwDfA7oALYADk0pzS6yzZaXUn6u/5//GZ57bvBve+yRQ/+ww2CCx22SpFVTdIKsB/weuBy4oeC2\nWt9jj8E//RP86Ef98yJy2J96Kuy9d3m1SZLWGIWGf0rpp8BPASKGGsJOQD7bv/pqOOWUwWf7xx4L\nZ5+dx/mXJGmMeO24bI8/DtOmwewBd0M23xy+8x045JDy6pIkrbHs7V+WlOCaa/LjewOD/9hjc69+\ng1+SVJCmPPOfPn06bW1tg+Z1dnbS2dlZUkVj7Ikn8qt8f/jD/nmbbZZ79x92WHl1SZJaQq1Wo1ar\nDZrX09NT9/qRUhrrmoZuKGIZI/T2j4h2oKurq4v29vaG1NVQKcEPfgAnn5wf5etzzDFw4YV5bH9J\nklZBd3c3HR0dAB0ppe7hlm3KM/810sKF+Wz/xhv75226aT7bP/zw8uqSJFVO0c/5rwdMAfp6+r85\nInYFFqWUFhTZdtNICa67Lg/I88wz/fOPOioP4LPppuXVJkmqpKLP/N8J/AJIvdM3e+fPAj5WcNvl\ne/JJ+NSn4IYBQxxMngwXXwxHHFFeXZKkSiv6Of9fUdUnCvrO9p9+un/ekUfCt7/t2b4kqVTVDOai\nnXEGHH10f/BPngzXXpsPCAx+SVLJ7PBXhOuu6/+81lrwi1/AzjuXV48kSQN45l+E886DiRPz59de\ng/e/H+65p9yaJEnqZfgX4cgj4Ve/gi22yN//+ld417tg1qxy65IkCcO/OHvtBV1d/W/ie/VV+OhH\n88t7liwptTRJUrUZ/kXaYot8v3/atP55F14I73lPfgxQkqQSGP5FW2ut/Fz/pZfmzwC33QYdHfYD\nkCSVwvBvlE98Yuh+AD/6Ubl1SZIqx/BvpD33zP0A9tgjf3/1VTjnnHJrkiRVjuHfaJtumsf777Pf\nfuXVIkmqJMO/0WbOhLlz+78vWgRXXQUPPADLlpVXlySpMhzhr9H++MfB3y+7LE8AG2wA73wn7LZb\n/7T11hCx4nYkSVpFhn+j/du/wdKlcPvtMH/+4N+efx7mzMlTn802ywcBu+/ef0AweXJja5YkrVEM\n/0bbemu4/PL8+dln8+N+v/1tnubOhcceG7z8k0/Cj3+cpz7bbTf4gKC9HSZNath/giSptRn+Zdpo\nI3jve/PU57HH+g8G+qZnnx283iOP5On66/P3CJg6tf/KwO67wy67wNprD17v9dfhhRcGTw89BDNm\nDO6HMNBZZ8Hpp6+4LUlSy4o0sOd5ySKiHejq6uqivb297HKaQ0rw5z8PPhjo6oJXXhl+vYkTYcoU\nWLy4P+hffXXVavj+96Gzc9XWlSQ1RHd3Nx0dHQAdKaXu4Zb1zL/ZReQQnzKlP4Bffx3uv3/wAcEf\n/pDn91myBObNG5saXnwx91MYP35stidJKpXh34omTMiX9XfZBT7+8Txv8WL4/e8HHxA8+iistx6s\nv37uEzDUtP76uT/BvfeuvL1//Ef4whfgoIPgAx+A970P2toa898qSRpzXvZXv5Tgvvvg5pvzsMN3\n3z14QKI+EybkwYk+8AE4+GDYYYfG1ypJGmQ0l/0d5Ef9ImDnnfNZ/p13wsKFcMUVcMQRg58meP11\n+PnPYfr0fDti++3htNPy44sDbz1IkpqS4a+V23RT+MhH8lMFTz8Nt94Kp5yy4nKPPAJf/zrsu2/u\naHjkkXDttdDT0/CSJUkjM/xVn7XWyo8kzpgB3/jG8Mv+13/BMcfAhhvm9b761RUHNJIklcbw1+id\nemp+H8H664+87JIl8PnPw9/9Xb6tsPfe8LOfeXtAkkpk+GvVHHcc/O53eVCh0bj77nwFYeLEfDDw\nmc/AU08VU6MkaUiGv1bdlClwxx25s9/yjjwS/vM/Rz44mDEjv78gAq65ppg6JUmDGP5aPX339G+9\nNX/uc/31eXyA667LryqePz8vN5zjjvMqgCQ1gOGv1ffaa/CnP+U/l7f99vDd7+axAE47LY8bsGxZ\nHk/gmGMGLztlCrzhDY2pWZIqzPDXqksJbrgBdtoJ/uVfVr7cJz8Jf//3/QMGReR1arX+g4H58/MB\nQT2dCCVJq8Xw16qZOzc/13/EEfnFQ32OPx4WLMi3AQb6059g3Dh45pkVtxWRrwwMvG0gSSqM4a/R\neeSR/IKhPfbInf36vPvd+W2Ds2bBm96Ue/QPNcjPSPf9JUmFM/xVn54eOP10eOtb4Qc/6J//lrfA\n7NkwZw4s/z6GDTbIl/WPP75/npf1Jal0vtVPI7v9djj88DzEb5/Jk+HMM3OP/okTh19/1iw4/3x4\n4AHYa69CS5Ukjczw18i+/OXBwb/99vnFP1tsUf82Nt44j+4nSSqdl/01so9+dPDZ/cMP50v8M2cO\n/XifJKmpGf4a2dFHw//8T37D37jevzJPPAEnnZT7AFx1FSxduuJ6zz2XH+OTJDUVw1/12X57uOIK\n+OMf8/3/Pg8/nDv07bor/PCH/c/yn3MObLQRHHtsKeVKklbO8Nfo7LRTHthn7tz8OF+f++6Dww6D\nPffMnfu+9KU8/9pry6lTkrRShr9WzW675YF85szJgd9n7tzhR/uTJJWuIeEfESdFxMMR8UpE/Doi\nRvkeWDWt/feHu+6Cm26CnXde8fdNNml8TZKkYRUe/hFxNPBN4N+BdwD3ArdExOSi21aDRMAHPwi/\n+tWKv+2wQ+PrkSQNqxFn/tOB76SUrkwpPQBMA14GPtaAttVIZ501+Puxx8K3vlVOLZKklSp0kJ+I\nmAh0AF/um5dSShHxM8Ch3tYk994LF12UP6+7LsybB9tsU25NkqQhFX3mPxkYDyxcbv5C4I0Ft61G\nWbYsP/Pf90z/F79o8EtSEytreN8A0sp+nD59Om1tbYPmdXZ20tnZWXRdWhVXXZWH+wXYcUd7+0tS\nwWq1GrVabdC8nqHepLoSkdJKM3i19V72fxn4UEpp9oD5VwBtKaXDllu+Hejq6uqiffk3xKk5Pfts\nfrPfU0/l77fcAgceWG5NklRB3d3ddHR0AHSklLqHW7bQy/4ppSVAF3BA37yIiN7vdxXZtgr0wgtw\nyil51L+tt+4P/kMOMfglqQU04rL/fwCzIqILmEvu/b8ucEUD2tZYe+GF/FreefNWHLd/3rz8+6RJ\n5dQmSapL4Y/6pZSuA04FzgZ+B+wCvC+l9FTRbasA//qvQwc/wPz5ubOfJKmpNWSEv5TSzJTSdiml\nN6SU9kop3dOIdlWAm29e+Zv6li2D2bOH/k2S1DQc21/1SwmWLBl+mSVL+t/sJ0lqSoa/6hcBEycO\nv8zEiXk5SVLTMvw1OgcfDONW8tdm3Lg8xr8kqakZ/hqdc8+FqVNXPAAYNy7PP+eccuqSJNXN8Nfo\nTJoEd98NJ58M220HW22V/zz55Dzfx/wkqemVNbyvWtmkSTBjRp5S8h6/JLUYz/y1egx+SWo5hr8k\nSRVj+EuSVDGGvyRJFWP4S5JUMYa/JEkVY/hLklQxhr8kSRVj+EuSVDGGvyRJFWP4S5JUMYa/JEkV\nY/hLklQxhr8kSRVj+EuSVDGGvyRJFWP4S5JUMYa/JEkVY/hLklQxhr8kSRVj+EuSVDGGvyRJFWP4\nS5JUMYa/JEkVY/hLklQxhr8kSRVj+EuSVDGGvyRJFWP4S5JUMYa/JEkVY/hLklQxhr8kSRVTWPhH\nxBkRcWdEvBQRi4pqR5IkjU6RZ/4TgeuAiwtsQ5IkjdKEojacUjoLICI+UlQbkiRp9LznL0lSxRj+\nkiRVzKjCPyLOi4hlw0xLI2LHooqVJEmrb7T3/L8BfG+EZR5axVr+Zvr06bS1tQ2a19nZSWdn5+pu\nWpKkller1ajVaoPm9fT01L1+pJTGuqbBDeQOf+enlDauY9l2oKurq4v29vZC65IkaU3S3d1NR0cH\nQEdKqXu4ZQvr7R8RWwMbA9sC4yNi196f5qeUXiqqXUmSNLzCwh84Gzh+wPe+o5D9gdsKbFeSJA2j\nsN7+KaUTUkrjh5gMfkmSSuSjfpIkVYzhL0lSxRj+kiRVjOEvSVLFGP6SJFWM4S9JUsUY/pIkVYzh\nL0lSxRj+kiRVjOEvSVLFGP6SJFWM4S9JUsUY/pIkVYzhL0lSxRj+kiRVjOEvSVLFGP6SJFWM4S9J\nUsUY/pIkVYzhL0lSxRj+kiRVjOEvSVLFGP6SJFWM4S9JUsUY/pIkVYzhL0lSxRj+kiRVjOEvSVLF\nGP6SJFWM4S9JUsUY/pIkVYzhL0lSxRj+kiRVjOEvSVLFGP6SJFWM4S9JUsUY/pIkVYzhL0lSxRj+\nkiRVTGHhHxHbRsRlEfFQRLwcEQ9GxJkRMbGoNiVJ0sgmFLjttwIBfBL4M7AzcBmwLnBage1KkqRh\nFBb+KaVbgFsGzHokIr4BTMPwlySpNI2+578hsKjBbUqSpAEaFv4RMQU4GbikUW1KkqQVjfqyf0Sc\nB5w+zCIJmJpS+r8D1tkK+AlwbUrp8pHamD59Om1tbYPmdXZ20tnZOdpyJUla49RqNWq12qB5PT09\nda8fKaVRNRgRmwCbjLDYQyml13uX3xL4BXBXSumEEbbdDnR1dXXR3t4+qrokSaqy7u5uOjo6ADpS\nSt3DLTvqM/+U0jPAM/Us23vGPwf4LfCx0bYlSZLGXmG9/SNiC+CXwCPk3v2bRQQAKaWFRbUrSZKG\nV+Rz/gcCb+6dFvTOC3KfgPEFtitJkoZRWG//lNKslNL45aZxKSWDX5KkEjm2vyRJFWP4S5JUMYa/\nJEkVY/hLklQxhr8kSRVj+EuSVDGGvyRJFWP4S5JUMYa/JEkVY/hLklQxhr8kSRVj+EuSVDGGvyRJ\nFWP4S5JUMYa/JEkVY/hLklQxhr8kSRVj+EuSVDGGvyRJFWP4S5JUMYa/JEkVY/hLklQxhr8kSRVj\n+EuSVDGGvyRJFWP4S5JUMYa/JEkVY/hLklQxhr8kSRVj+EuSVDGGvyRJFWP4S5JUMYa/JEkVY/hL\nklQxhr8kSRVj+EuSVDGGvyRJFWP4S5JUMYWGf0TcFBGPRsQrEfFYRFwZEVsU2aYkSRpe0Wf+c4Aj\ngR2Bw4EdgOsLblOSJA1jQpEbTynNGPB1QUR8BbgxIsanlJYW2bYkSRpaw+75R8TGwIeBOw1+SZLK\nU3j4R8RXIuJF4Glga+DQotuUJEkrN+rwj4jzImLZMNPSiNhxwCpfA94OvBdYClw1RrVLkqRVECml\n0a0QsQmwyQiLPZRSen2IdbcCFgB7pZR+M8Tv7UDXvvvuS1tb26DfOjs76ezs/Nv3Wq026LuG5n6q\nn/uqPu6n+rif6uN+qs/y+6lWq1Gr1QYt09PTw2233QbQkVLqHnaDKaWGTcA2wDJg35X83g6krq6u\nNJKDDz54xGXkfhoN91V93E/1cT/Vx/1Un3r2U1dXVwIS0J5GyOPCevtHxG7A7sAdwLPAFOBs4EHg\n7qLalSRJwyuyw98r5Gf7fwY8AFwK/B54d0ppSYHtSpKkYRR25p9S+hNwQFHblyRJq6bQQX5WwToA\n8+bNG3HBnp4euruH788g99NouK/q436qj/upPu6n+tSznwZk5zojbW/Uvf2LFBHHAteUXYckSS3s\nwyml7w+3QLOF/ybA+4BHgMXlViNJUktZB9gOuCWl9MxwCzZV+EuSpOI1bGx/SZLUHAx/SZIqxvCX\nJKliDH9JkirG8JckqWLWiPCPiJsi4tGIeCUiHouIKyNii7LraiYRsW1EXBYRD0XEyxHxYEScGRET\ny66t2UTEGRFxZ0S8FBGLyq6nWUTESRHxcO//Z7/ufX+HBoiIfSJidkT8v95XnH+w7JqaTUR8ISLm\nRsTzEbEwIm5c7jXwAiJiWkTcGxE9vdNdEfF/xmr7a0T4A3OAI4Edye8T2AG4vtSKms9bgQA+CewE\nTAemAeeWWVSTmghcB1xcdiHNIiKOBr4J/DvwDuBe4JaImFxqYc1nPfI7TE4iv11NK9oHuBDYA3gP\n+f+3WyPiDaVW1XwWAKcDHb3THOCmiJg6FhtfI5/zj4iDgRuBtVNKS8uup1lFxGeBaSmlKWXX0owi\n4iPA+SmljcuupWwR8WvgNymlf+79HuR/nL6VUvpaqcU1qYhYBhyaUppddi3NrPcA8knyq97vKLue\nZhYRzwCfTSl9b3W3taac+f9NRGwMfBi40+Af0YaAl7U1rN5bQx3Az/vmpXzW8DNgr7Lq0hpjQ/JV\nEv8tWomIGBcRxwDrAnePxTbXmPCPiK9ExIvA08DWwKEll9TUImIKcDJwSdm1qOlNBsYDC5ebvxB4\nY+PL0Zqi9wrSBcAdKaX7y66n2UTEzhHxAvAqMBM4LKX0wFhsu2nDPyLO6+0ws7Jp6XKdRL4GvB14\nL7AUuKqUwhtsFfYTEbEV8BPg2pTS5eVU3lirsp80osD72lo9M8l9kI4pu5Am9QCwK7l/xMXAlRHx\n1rHYcNPe8+99yc8mIyz2UErp9SHW3Yp8P3KvlNJviqivWYx2P0XElsAvgLtSSicUXV+zWJW/T97z\nz3ov+78MfGjg/euIuAJoSykdVlZtzcx7/sOLiIuAg4F9Ukp/KbueVhAR/w3MTymduLrbmjAG9RSi\n941Ew76VaBjje/9ce4zKaVqj2U+9B0VzgN8CHyuyrmazmn+fKi2ltCQiuoADgNnwt8u1BwDfKrM2\ntabe4D8E2M/gH5VxjFGuNW3416v3WePdgTuAZ4EpwNnAg4xRx4g1Qe+4B78kvy75NGCz/O83pJSW\nv5dbaRGxNbAxsC0wPiJ27f1pfkrppfIqK9V/ALN6DwLmkh8VXRe4osyimk1ErEf+Nyh6Z7259+/P\nopTSgvIqax4RMRPoBD4IvBQRm/f+1JNS8lXuvSLiXPLt2QXAJHJH9v2AA8dk+8162b9eEbEzMAPY\nhfyM7ePkHXZuSunxMmtrJr2XsJe/vx/kjtvjh1ilsiLie8DxQ/y0f0rptkbX0ywi4lPkA8fNyc+y\nfzqldE+5VTWXiNiPfFtt+X9YZ6WUKnW1bWV6b4cMFTwnpJSubHQ9zSoiLgP+N7AF0AP8AfhKSmnO\nmGy/1cNfkiSNTtP29pckScUw/CVJqhjDX5KkijH8JUmqGMNfkqSKMfwlSaoYw1+SpIox/CVJqhjD\nX5KkijH8JUmqGMNfkqSK+f/NfxcIR32APAAAAABJRU5ErkJggg==\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAf8AAAFdCAYAAAANJWRbAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAAPYQAAD2EBqD+naQAAIABJREFUeJzt3Xl8XWWdx/HPrzvFEoSyC5RFsCwqCQgoUBHFEakIo0iU\nAVHQsqhTEXAYnAFGBpdhKLI6IFpBIyAiuACOsskOCaJCGUQEgSJLC2HrRvvMH09icts0uWlzcu/t\n+bxfr/Pqveee5cd5lX7P8jzPiZQSkiSpPEbUugBJkjS8DH9JkkrG8JckqWQMf0mSSsbwlySpZAx/\nSZJKxvCXJKlkRtW6gN4iYm3g/cBjwPzaViNJUkMZB0wCrk8pzelvwboKf3Lw/6DWRUiS1MA+Afyw\nvwXqLfwfA7j00kuZPHlyvwtOnz6dM888czhqamgep+p5rKrjcaqOx6k6HqfqVHOcZs2axcEHHwxd\nWdqfQsM/IqYBR5JvQwA8AJyaUrpuOavMB5g8eTLNzc39brupqWnAZeRxGgyPVXU8TtXxOFXH41Sd\nQR6nAR+bF93g7wngBKCla7oBuDoi+r+slyRJhSn0yj+l9IulZp0UEUcCuwCzity3JEnq27A984+I\nEcCBwHjgjuHaryRJqlR4+EfEduSwHwe8DOyfUnpoZbfb2tq6spsoBY9T9TxW1fE4VcfjVB2PU3WG\n+jhFSmlIN7jMDiJGAZsAawL/CBwB7NHXCUBENAPte+yxB01NTRW/tba2+pdEkiSgra2Ntra2inmd\nnZ3ccsstAC0ppY7+1i88/JfZYcT/Ao+klI7s47dmoL29vd3Wn5IkDUJHRwctLS1QRfjXYnjfEcDY\nGuxXkiRRfD//04BryV3+JpBHHZoC7F3kfiVJ0vIV3eBvPeD7wAZAJ/B7YO+U0g0F71eSJC1H0f38\nDy9y+5IkafB8pa8kSSVj+EuSVDKGvyRJJWP4S5JUMoa/JEklY/hLklQyhr8kSSVj+EuSVDKGvyRJ\nJWP4S5JUMoa/JEklY/hLklQyhr8kSSVj+EuSVDKGvyRJJWP4S5JUMoa/JEklY/hLklQyhr8kSSVj\n+EuSVDKGvyRJJWP4S5JUMoa/JEklY/hLklQyhr8kSSVj+EuSVDKGvyRJJWP4S5JUMoa/JEklY/hL\nklQyhr8kSSVj+EuSVDKGvyRJJWP4S5JUMoa/JEklY/hLklQyhr8kSSVj+EuSVDKFhn9E/EtE3B0R\n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\nl1/kc+WVedChffbJL/uJyFf4s2Yt++a9JUvy/JNOysMCS5JWSltbG21tbRXzOjs7q16/0H7+Xbf9\nXwP+MaV0Ta/53wOaUkr7L7W8/fwb2Wab5dEFl2fSJPjLX4arGkkqlcH08y/0tn9KaRHQDuzVPS8i\nouv77ctbTw0opdylrz+LFi17V0CSNOyG47b/fwMzI6IduJvc+n888L1h2LeGSwSMHt3/MqNHV/cu\nAUlSoQrv6pdSuhw4FjgVuA94K/D+lNIAo8ao4UydCiOW81dqxAj40IeGtx5JUp+GZYS/lNJ5KaVJ\nKaXVUkq7ppTuHY79apiddhpMnrzsCcCIEXn+V79am7okSRWGJfxVEhMmwB13wDHH5MZ9G22U/zzm\nmDx/woRaVyhJwhf7aKhNmJC78511Vm7c5zN+Sao7XvmrOAa/JNUlw1+SpJIx/CVJKhnDX5KkkjH8\nJUkqGcNfkqSSMfwlSSoZw1+SpJIx/CVJKhnDX5KkkjH8JUkqGcNfkqSSMfwlSSoZw1+SpJIx/CVJ\nKhnDX5KkkjH8JUkqGcNfkqSSMfwlSSoZw1+SpJIx/CVJKhnDX5KkkjH8JUkqGcNfkqSSMfwlSSoZ\nw1+SpJIx/CVJKhnDX5KkkjH8JUkqGcNfkqSSMfwlSSoZw1+SpJIx/CVJKhnDX5KkkjH8JUkqGcNf\nkqSSKSz8I+LEiLgtIl6NiLlF7UeSJA1OkVf+o4HLgfML3IckSRqkUUVtOKV0CkBEHFrUPiRJ0uD5\nzF+SpJIx/CVJKplBhX9EnB4RS/qZFkfEVkUVK0mSVt5gn/n/F/DdAZZ5dAVr+bvp06fT1NRUMa+1\ntZXW1taV3bQkSQ2vra2Ntra2inmdnZ1Vrx8ppaGuqXIHucHfmSmltapYthlob29vp7m5udC6JEla\nlXR0dNDS0gLQklLq6G/Zwlr7R8TGwFrApsDIiHhb10+PpJReLWq/kiSpf4WFP3AqcEiv791nIXsC\ntxS4X0mS1I/CWvunlA5LKY3sYzL4JUmqIbv6SZJUMoa/JEklY/hLklQyhr8kSSVj+EuSVDKGvyRJ\nJWP4S5JUMoa/JEklY/hLklQyhr8kSSVj+EuSVDKGvyRJJWP4S5JUMoa/JEklY/hLklQyhr8kSSVj\n+EuSVDKGvyRJJWP4S5JUMoa/JEklY/hLklQyhr8kSSVj+EuSVDKGvyRJJWP4S5JUMoa/JEklY/hL\nklQyhr8kSSVj+EuSVDKGvyRJJWP4S5JUMoa/JEklY/hLklQyhr8kSSVj+EuSVDKGvyRJJWP4S5JU\nMoa/JEklY/hLklQyhYV/RGwaERdFxKMR8VpE/CkiTo6I0UXtU5IkDWxUgdt+CxDAEcCfge2Ai4Dx\nwPEF7leSJPWjsPBPKV0PXN9r1mMR8V/ANAx/SZJqZrif+a8JzB3mfUqSpF6GLfwjYkvgGOCC4dqn\nJEla1qBv+0fE6cAJ/SySgMkppYd7rbMRcC1wWUrp4oH2MX36dJqamirmtba20traOthyJUla5bS1\ntdHW1lYxr7Ozs+r1I6U0qB1GxNrA2gMs9mhK6fWu5TcEbgRuTykdNsC2m4H29vZ2mpubB1WXJEll\n1tHRQUtLC0BLSqmjv2UHfeWfUpoDzKlm2a4r/huAe4BPDXZfkiRp6BXW2j8iNgBuAh4jt+5fNyIA\nSCk9U9R+JUlS/4rs5783sHnX9ETXvCC3CRhZ4H4lSVI/Cmvtn1KamVIaudQ0IqVk8EuSVEOO7S9J\nUskY/pIklYzhL0lSyRj+kiSVjOEvSVLJGP6SJJWM4S9JUskY/pIklYzhL0lSyRj+kiSVjOEvSVLJ\nGP6SJJWM4S9JUskY/pIklYzhL0lSyRj+kiSVjOEvSVLJGP6SJJWM4S9JUskY/pIklYzhL0lSyRj+\nkiSVjOEvSVLJGP6SJJWM4S9JUskY/pIklYzhL0lSyRj+kiSVjOEvSVLJGP6SJJWM4S9JUskY/pIk\nlYzhL0lSyRj+kiSVjOEvSVLJGP6SJJWM4S9JUskY/pIklUyh4R8RV0fE4xExLyJmR8T3I2KDIvcp\nSZL6V/SV/w3AR4GtgAOALYArCt6nJEnqx6giN55SOqvX1yci4mvAVRExMqW0uMh9S5Kkvg3bM/+I\nWAv4BHCbwS9JUu0UHv4R8bWIeAV4HtgY+HDR+5QkScs36PCPiNMjYkk/0+KI2KrXKt8A3g68D1gM\nXDJEtUuSpBUQKaXBrRCxNrD2AIs9mlJ6vY91NwKeAHZNKd3Vx+/NQPsee+xBU1NTxW+tra20trb+\n/XtbW1vFd/XN41Q9j1V1PE7V8ThVx+NUnaWPU1tbG21tbRXLdHZ2cssttwC0pJQ6+t1gSmnYJmAT\nYAmwx3J+bwZSe3t7GsjUqVMHXEYep8HwWFXH41Qdj1N1PE7VqeY4tbe3JyABzWmAPC6stX9E7AS8\nA7gVeAHYEjgV+BNwR1H7lSRJ/Suywd88ct/+XwMPARcCvwPenVJaVOB+JUlSPwq78k8p/RHYq6jt\nS5KkFVPoID8rYBzArFmzBlyws7OTjo7+2zPI4zQYHqvqeJyq43GqjsepOtUcp17ZOW6g7Q26tX+R\nIuLjwA9qXYckSQ3sEymlH/a3QL2F/9rA+4HHgPm1rUaSpIYyDpgEXJ9SmtPfgnUV/pIkqXjDNra/\nJEmqD4a/JEklY/hLklQyhr8kSSVj+EuSVDKrRPhHxNUR8XhEzIuI2RHx/YjYoNZ11ZOI2DQiLoqI\nRyPitYj4U0ScHBGja11bvYmIEyPitoh4NSLm1rqeehERR0fEX7r+P7uz6/0d6iUido+IayLiqa5X\nnH+o1jXVm4j4l4i4OyJeiohnIuKqpV4DLyAipkXE/RHR2TXdHhH/MFTbXyXCH7gB+CiwFfl9AlsA\nV9S0ovrzFiCAI4BtgOnANOC0WhZVp0YDlwPn17qQehERHwPOAP4d2AG4H7g+IibWtLD6szr5HSZH\nk9+upmXtDpwN7Ay8l/z/268iYrWaVlV/ngBOAFq6phuAqyNi8lBsfJXs5x8RU4GrgLEppcW1rqde\nRcSXgGkppS1rXUs9iohDgTNTSmvVupZai4g7gbtSSl/o+h7kf5y+lVL6Rk2Lq1MRsQT4cErpmlrX\nUs+6TiCfJb/q/dZa11PPImIO8KWU0ndXdlurypX/30XEWsAngNsM/gGtCXhbW/3qejTUAvyme17K\nVw2/BnatVV1aZaxJvkviv0XLEREjIuIgYDxwx1Bsc5UJ/4j4WkS8AjwPbAx8uMYl1bWI2BI4Brig\n1rWo7k0ERgLPLDX/GWD94S9Hq4quO0gzgFtTSg/Wup56ExHbRcTLwALgPGD/lNJDQ7Htug3/iDi9\nq8HM8qbFSzUS+QbwduB9wGLgkpoUPsxW4DgRERsB1wKXpZQurk3lw2tFjpMGFPhcWyvnPHIbpINq\nXUidegh4G7l9xPnA9yPiLUOx4bp95t/1kp+1B1js0ZTS632suxH5eeSuKaW7iqivXgz2OEXEhsCN\nwO0ppcOKrq9erMjfJ5/5Z123/V8D/rH38+uI+B7QlFLav1a11TOf+fcvIs4BpgK7p5T+Wut6GkFE\n/C/wSErpyJXd1qghqKcQXW8k6vetRP0Y2fXn2CEqp24N5jh1nRTdANwDfKrIuurNSv59KrWU0qKI\naAf2Aq6Bv9+u3Qv4Vi1rU2PqCv79gCkG/6CMYIhyrW7Dv1pdfY3fAdwKvABsCZwK/IkhahixKuga\n9+Am8uv3B5HWAAABPklEQVSSjwfWzf9+Q0pp6We5pRYRGwNrAZsCIyPibV0/PZJSerV2ldXUfwMz\nu04C7iZ3FR0PfK+WRdWbiFid/G9QdM3avOvvz9yU0hO1q6x+RMR5QCvwIeDViFiv66fOlJKvcu8S\nEaeRH88+AUwgN2SfAuw9JNuv19v+1YqI7YCzgLeS+9g+TT5gp6WUnq5lbfWk6xb20s/3g9xwe2Qf\nq5RWRHwXOKSPn/ZMKd0y3PXUi4g4inziuB65L/vnUkr31raq+hIRU8iP1Zb+h3VmSqlUd9uWp+tx\nSF/Bc1hK6fvDXU+9ioiLgPcAGwCdwO+Br6WUbhiS7Td6+EuSpMGp29b+kiSpGIa/JEklY/hLklQy\nhr8kSSVj+EuSVDKGvyRJJWP4S5JUMoa/JEklY/hLklQyhr8kSSVj+EuSVDL/DyIYtefxfPuyAAAA\nAElFTkSuQmCC\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAf8AAAFdCAYAAAANJWRbAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAAPYQAAD2EBqD+naQAAIABJREFUeJzt3XmYHVWZx/Hvmz3B0AhhFwjLgGFR6QZZhKCD4qhEhFGk\nlWFR0LCIk0FAGZwBRgaXYQiyOiAaQVtAREAFHGWTHboRFcIgIgiEPdAsWUnO/HG67e6k03076ep7\nb9f38zz15N66VXXe1AP51XLqVKSUkCRJ5TGi2gVIkqShZfhLklQyhr8kSSVj+EuSVDKGvyRJJWP4\nS5JUMoa/JEklM6raBXQXEWsBHwQeBxZUtxpJkurKOGAycENK6aW+Fqyp8CcH/w+rXYQkSXXs08CP\n+lqg1sL/cYBLL72UKVOm9LngjBkzOPPMM4eiprrmfqqc+6oy7qfKuJ8q436qTCX7afbs2Rx44IHQ\nkaV9KTT8I2I6cAT5MgTAg8CpKaXrV7DKAoApU6bQ2NjY57YbGhr6XUbup4FwX1XG/VQZ91Nl3E+V\nGeB+6ve2edEd/p4ETgCaOqYbgasjou/TekmSVJhCz/xTSr9YZtZJEXEEsDMwu8i2JUlS74bsnn9E\njAD2ByYAdw5Vu5IkqafCwz8itiWH/TjgNWDflNLDq7rd5ubmVd1EKbifKue+qoz7qTLup8q4nyoz\n2PspUkqDusHlGogYBWwMrAH8I3A4MLW3A4CIaARap06dSkNDQ4/fmpub/Y9EkiSgpaWFlpaWHvPa\n29u59dZbAZpSSm19rV94+C/XYMT/Ao+mlI7o5bdGoLW1tdXen5IkDUBbWxtNTU1QQfhXY3jfEcDY\nKrQrSZIo/jn/04DryI/8TSSPOrQHsFeR7UqSpBUrusPfusAPgPWBduD3wF4ppRsLbleSJK1A0c/5\nH1bk9iVJ0sD5Sl9JkkrG8JckqWQMf0mSSsbwlySpZAx/SZJKxvCXJKlkDH9JkkrG8JckqWQMf0mS\nSsbwlySpZAx/SZJKxvCXJKlkDH9JkkrG8JckqWQMf0mSSsbwlySpZAx/SZJKxvCXJKlkDH9JkkrG\n8JckqWQMf0mSSsbwlySpZAx/SZJKxvCXJKlkDH9JkkrG8JckqWQMf0mSSsbwlySpZAx/SZJKxvCX\nJKlkDH9JkkrG8JckqWQMf0mSSsbwlySpZAx/SZJKxvCXJKlkDH9JkkrG8JckqWQKDf+I+EpE3BMR\nr0bEcxFxVURsWWSbkiSpb0Wf+e8OnA3sBLwfGA38KiLGF9yuJElagVFFbjyl9OHu3yPiEOB5oAm4\nrci2JUlS74b6nv8aQALmDnG7kiSpw5CFf0QEMBO4LaX00FC1K0mSeir0sv8yzgO2Bt4zhG1KkqRl\nDEn4R8Q5wIeB3VNKz/S3/IwZM2hoaOgxr7m5mebm5oIqlCSpfrS0tNDS0tJjXnt7e8XrR0ppsGvq\n2UAO/n2APVJKj/WzbCPQ2traSmNjY6F1SZI0nLS1tdHU1ATQlFJq62vZQs/8I+I8oBn4KPBGRKzb\n8VN7SmlBkW1LkqTeFd3hbzqwOnAzMKfbtH/B7UqSpBUo+jl/hw+WJKnGGM6SJJWM4S9JUskY/vXi\nz3+GxYurXYUkaRgw/GvdggVwyimw9dYwc2a1q5EkDQOGf6176KEc/osWwcknwxNPVLsiSVKdM/xr\nXWMjHHVU/jxvHhxzTHXrkSTVPcO/Hnzta7DeevnzNdfA1VdXtx5JUl0z/OtBQ0PP+/1f+AK8/nr1\n6pEk1TXDv17svz/stVf+/OST+f6/JEkrwfCvFxFw3nkwdmz+PnMmPPBAdWuSJNUlw7+ebL45nHRS\n/rxkCUyfDkuXVrcmSVLdMfzrzXHHwVZb5c933QUXXljdeiRJdcfwrzdjx8L553d9//KX4bnnqleP\nJKnuGP716H3vg4MOyp9feQW+9KXq1iNJqiuGf7361rfgrW/Nny+9FH7zm+rWI0mqG4Z/vVpnHfjG\nN7q+H3FEfg+AJEn9MPzr2Wc/C7vumj//6U89DwYkSVoBw7+evf46vO1tXd+/+93q1SJJqhuGf726\n6iqYMgUuv7xr3u67V68eSVLdMPzrzVNPwcc+BvvtB3Pm5HkTJsAZZ8CsWdWtTZJUF0ZVu4Bhb9Gi\nfHn+9dfhtde6Pi/7va/fun9/9dWeo/p96EN52N/Jk6v2V5Qk1RfDf7Ccdhpce+3ygb54cTHtrbsu\nnHVWfuFPRDFtSJKGJcN/MPzlL11j7g+2CHjLW/I0cWL+c4894Ktf7XrOX5KkATD8B8MGG+RH7u64\no+f8MWNgxx1zaHcGd/cQ7+37sr9NmOCZvSRpUBn+g2HsWLj5ZjjzTDj5ZJg/P89ftAhWXx3OPRc2\n3bSaFUqS9Df29h8so0fD8cfDQw/BRz7SNf+662CbbeD00/PBgCRJVWb4D7bJk3PHvyuvhA03zPPm\nz4cTT4Ttt4ff/raq5UmSZPgPppTynxH5OfzZs+Gf/xlGdOzmhx6CqVPzsLwvvli9OiVJpWb4D4al\nS/PAOyNG5ODvnFZfHWbO7PlcPsDFF8Paa8MFF3QdMEiSNETs8DcYnn0Wrr564OsdcUSeNt44P7c/\naVI+KJg0CTbfHA48MB9ASJI0iAz/wbDBBvmNeiecsHLr//WveVrWmWfmvgPveMeq1SdJUjde9h8s\nxx+fL+GnlC/zP/ss3HgjnHMOHHkkvPe9+ey+N5Mm9f4s/6OPws47wyWXFFq6JKlcPPMvQkQO+nXX\nhfe9r7J1liyBl1+GF17IL+w57ji4//78pMBBB+UBhGbOzGMKSJK0CjzzrxUjR+YrAFOmwJ575rA/\n7LCu3y+4AHbbDZ54ono1SpKGBcO/Vo0bBxdemJ8MGDcuz7vvPmhshOuvr25tkqS6ZvjXukMPhTvv\nhM02y9/nzoUPfzgPI7zsI4SSJFXA8K8H73pXPuvfZpv8PSU45RS46KLq1iVJqkuGf61buBBmzcpP\nCzz4YM/fFiyoSkmSpPpmb/9aNXdu7uR3zjnwzDM9f9tkEzj2WDjqqOrUJkmqa4WGf0TsDhwHNAHr\nAx9LKV1TZJt1L6X8XP8XvwivvNLzt512yqG/774wyuM2SdLKKTpBVgN+B1wMXFlwW/Vvzhz4/Ofh\n5z/vmheRw/7YY2HXXatXmyRp2Cg0/FNK1wPXA0T0NoSdgHy2f+mlcMwxPc/2P/UpOPXUPM6/JEmD\nxGvH1fbMMzB9OlzT7W7IuuvCd74D++xTvbokScOWvf2rJSX44Q/z43vdg/9Tn8q9+g1+SVJBavLM\nf8aMGTQ0NPSY19zcTHNzc5UqGmTPPptf5fuzn3XNW2ed3Lt/332rV5ckqS60tLTQ0tLSY157e3vF\n60dKabBr6r2hiKX009s/IhqB1tbWVhobG4ekriGVEvz4x3D00flRvk4HHABnn53H9pckaSW0tbXR\n1NQE0JRSautr2Zo88x+Wnnsun+1fdVXXvLXXzmf7++1XvbokSaVT9HP+qwFbAJ09/TeLiHcCc1NK\nTxbZds1ICS6/PA/I89JLXfP33z8P4LP22tWrTZJUSkWf+e8A3ASkjumMjvmzgM8U3Hb1Pf88HHkk\nXNltiINJk+D88+HjH69eXZKkUiv6Of9bKOsTBZ1n+y++2DXvE5+Ac8/1bF+SVFXlDOainXgifPKT\nXcE/aRJcdlk+IDD4JUlVZoe/Ilx+edfnMWPgpptg222rV48kSd145l+E00+H0aPz50WL4EMfgvvu\nq25NkiR1MPyL8IlPwC23wPrr5+9PPQW77QazZlW3LkmSMPyLs8su0Nra9Sa+hQvhkEPyy3sWL65q\naZKkcjP8i7T++vl+//TpXfPOPhve//78GKAkSVVg+BdtzJj8XP+FF+bPALfeCk1N9gOQJFWF4T9U\nDjus934AP/95deuSJJWO4T+Udt459wPYaaf8feFC+NrXqluTJKl0DP+htvbaebz/TnvsUb1aJEml\nZPgPtfPOg3vu6fo+dy5ccgk8/DAsXVq9uiRJpeEIf0PtD3/o+f2ii/IEsPrqsMMOsOOOXdNGG0HE\n8tsZCg8+mEcr3GEHmDatOjVIkgad4T/U/u3fYMkS+O1v4dFHe/726qtw44156rTOOvkg4N3v7jog\nmDSpuPqWLoVf/QrOPDP/2enzn4eZM2HcuOLaliQNCcN/qG20EVx8cf788sv5cb97783TPffAnDk9\nl3/+efjFL/LUafLkngcEjY0wceKq1TVvXr79cNZZMHv28r9/5zu51iuugE03XbW2JElVZfhX01vf\nCh/4QJ46zZnTdTDQOb38cs/1Hn88T1dckb9HwJQpXVcG3v1ueMc7YOzYnuu9+Sa89lrP6fbb4Utf\n6rvOiNxJsbU1j09wySXwkY+s6t9eklQlkbr3PK+yiGgEWltbW2lsbKx2ObUhJfjzn3seDLS2wvz5\nfa83ejRssQUsWNAV9AsXrlwNJ5wAP/lJrqPTiSfCKafAKI8fJakWtLW10dTUBNCUUmrra1n/5a51\nETnEt9gCmpvzvDffhIce6nlA8Pvf5/mdFi/u/fL9yth883xL4rDD4Kqr8rz//E+4805oaYF11x2c\ndiRJQ8JH/erRqFH5sv5nPwsXXJCvBLS0wHbbwTbbwHvfC29/O4wfnzsHTp6cf9too5Vr73Ofgy23\nhNVW6xqgCPJ7C7bfHm67bTD+VpKkIWL4DwdLl8LBB+fHCB98EG6+OR8gHH107hfwyCP5ysC998KE\nCV3rvfWt8MQT+dZCSnk7f/hDPqvfddeejxi+9BJceincfXfPtp95Jh9snHFGz8GLJEk1y3v+w0FK\nsMYa+VHB3qy+eu5U+OEP55cLHXVU17J/93dw/fWw2WbLr/fCC/DLX+b3D9xwQ+430Je1186DFa25\nZu+/L1y4fCdESdKgGMg9f8N/uHjPe+COO/Ln7baDP/5xxWfiEyf2DPJ11skhn/+j6d2iRfnFRD//\nOXz7233XsuWWcOqp8A//AA0N+YrCtGm5jYkTYeON8y2I7lPnvLe9Ld+ukCQNiB3+ymjbbbvC//zz\nYaut8tn6L3+Zz+znzu1adtkz+Oefz+8Y+MlPcmD3ZsyYrscSN96478cDH3kEDjig6/vf/33XwEWv\nvZZvTTz4YGV/rw03zAcEe+4JX/2qgwxJ0iAw/IeL7bbr+rzbbjByZB5JEOALX8hPClx3XT4YaG1d\nfv033oC994a77srD+fbl2GNzD/8jjoDXX++/tu4jFg7U00/n6e67c1+EGrpSJUn1yg5/w8WOO/b8\n3hn8AGef3XUp/r77cie9738f9t8/X5bvvs6991bW3oEHwv33L9+uJKnmGf7DxU475cF4ejN9es9O\neOutl58OuOwyePHF/J6Bf/3X/N6BQw+tvM0ttsiP+R1//KrV3t0nP7ni3449dvDakaQS87L/cLBk\nSR57/3/+p+f8KVPyWf+ee6543VGj8m2C3XZbubbHjIFvfCPfyz///OV/f9e74He/q3x7l13W+/yt\ntsqX/SVJq8zwr3e3356f5+8esBMnwskn53v9o0cX2/6CBXDccb0HP+S6Lrww9w244oquTokDNXNm\nPtCQJK0yw79etbfncL/kkp7zR43Kl85feQX+4z8Gts1NN4VPf7rykH300dxv4P77u+ZNmwbXXttz\nucMPz1cfbrsNnnoKrrwSvvzlyt81sPfeK34KQZI0YIZ/vfryl5cPfsjj+1900cpvd+HC3EegPz/+\ncR72t/OxwbFj8/P/hx2WnzRY1m9+AyNG5JEC3/Oenh0S+/PKK/DAA/DOd1a+jiRphezwV6/WW2/w\ntxmRn6vvy/z58PnP50cHO4N/q63yi38+97kc8J3P4vf2wp9vfCO/trj7S4j6c9ttue/AAQf4qJ8k\nDQLP/OvVV7+ah+t9+eWe8998M1+Gv+WWfH/9jTf63s5b3pLPxPfYAz70oRyyKzJ7dr7M/8c/ds37\np3+C887L2+k0fnzuC7D66vDss7Dffl1vA3zLW/KtgVmz8pgCTz+dbwU8/TQ891zftV52We4/MHFi\n38tJkvpk+NerESPyM/aLFuVn92+5JU+33973wDsNDbD77jnsp06FxsbcT6A/s2bBkUfCvHn5+4QJ\ncO65cMghyy87fnw+KJk/P3//6U/z5f7/+z/YZZd8heGgg/LU3aJFeQyCzoOBp57Krw3+yU/y72ed\nZfBL0iAw/OvNggV5tLvOsL/zzq6Q7c1aa+WQ32OPPG23Xe/35Pvyi18sH/JnnZXP+nvTOTZ/97rW\nWgt23jkfCEycCHvttfx6Y8bAJpvkSZJUGMO/Xvzud/Av/5LP7Bct6nvZyZNzD/m9986D/0ycOPDA\n7+7555efd/jheWCgvfeGffbJY/53hv6y4f/mm3D66XkQoU7XXpvXlSQNOcO/Xpx0Etx0U2XLPv44\nnHNOnjqttlq+B7/NNvms+4MfzFcBIvrf3sEH5wOOH/4wH3wsXZrnP/88XHxxnsaPz9vdZ5+ufgbz\n5uVBho45ZvltrrZaZX8XSdKg85W+9eJ738v33BcsGLxtrr9+14HARz6SDw7688IL+TbA1VfDr37V\n1QdgIL74xTxojyRp0Azklb6Gfz1ZsCA/8/7aa/DqqwP/86WXVtyjfvx42HfffJa/556V3SaYPx9+\n/et8IHDttb3fHuhu++3h5psrO8iQJA3IQMLfy/71ZNy4/Hz/yj7jnxI88gjccEOebr6568x9/nz4\n0Y/ytMEGeaS/gw/OtwlWZPz4/NjetGl50J677sqX/V96qedyEfk1wttvv3J1S5IG1ZAM8hMRR0XE\nXyJifkTcFRG+B7YaIvKAPMccky/dz52bz9yPPLLnW//mzIFvfQu23RaamvLIfS+80Pe2Z8/ObxVc\nNviPPRYWLzb4JamGFB7+EfFJ4Azg34HtgQeAGyJiUtFtqx9jx+ZL/OeemwP/pz/NZ+7dn/tva8v3\n6DfYIP925ZU9x+R/440c+ttvnzsDLuuQQ1btSQNJ0qAbijP/GcB3Uko/SCk9DEwH5gGfGYK2Vamx\nY/M9/5/9LA+08+1vww47dP3+5ptwzTXw8Y/njoJHHgnf/S5svTV885tdw/VuvjmssUbXenvtla80\ndA4FLEmqukLDPyJGA03AbzrnpdzD8NfALkW2rVUwaVJ+Y+C998KDD+Yz++5j/r/8cn6F72GHwV//\nmueNGQNf+Uo+iHjlla5ln3kmX1nYZRcPACSpRhR95j8JGAks28X8OaCAN9No0G29NXz96/DEE/nR\nvgMP7BrEp9P735/H+3/9dXj44eW3sXRp7hNw0klDU7MkqU+FPuoXEesDTwO7pJTu7jb/m8BuKaVd\nl1m+EWidOnUqDQ0NPbbV3NxMc3NzYbVqAF57Ld/7v+mm/HKh/ffPnQk33TQPMLQikyfDX/4yVFVK\n0rDV0tJCS0tLj3nt7e3ceuutUO3n/Dsu+88D/jGldE23+d8HGlJK+y6zvM/516uUYKON8gt5VmTD\nDeHJJysbVVCSNCADec6/0Mv+KaXFQCuwZ+e8iIiO73cU2baGWASMHt33MqNHG/ySVAOGorf/fwOf\ni4iDIuLtwAXABOD7Q9C2htK0aflVw70ZMQI++tGhrUeS1KvCwz+ldDlwLHAqcD/wDuCDKaV+Ro1R\n3TntNJgyZfkDgBEj8vyvfa06dUmSehiSEf5SSuellCanlManlHZJKd03FO1qiE2cCHfeCUcfnTv3\nbbhh/vPoo/P8iROrXaEkCcf212CbOBHOOitPKXmPX5Jq0JCc+aukDH5JqkmGvyRJJWP4S5JUMoa/\nJEklY/hLklQyhr8kSSVj+EuSVDKGvyRJJWP4S5JUMoa/JEklY/hLklQyhr8kSSVj+EuSVDKGvyRJ\nJWP4S5JUMoa/JEklY/hLklQyhr8kSSVj+EuSVDKGvyRJJWP4S5JUMoa/JEklY/hLklQyhr8kSSVj\n+EuSVDKGvyRJJWP4S5JUMoa/JEklY/hLklQyhr8kSSVj+EuSVDKGvyRJJWP4S5JUMoa/JEklY/hL\nklQyhr8kSSVj+EuSVDKFhX9EnBgRt0fEGxExt6h2JEnSwBR55j8auBw4v8A2JEnSAI0qasMppVMA\nIuLgotqQJEkD5z1/SZJKxvCXJKlkBhT+EXF6RCztY1oSEVsWVawkSVp1A73n/1/A9/pZ5rGVrOVv\nZsyYQUNDQ495zc3NNDc3r+qmJUmqey0tLbS0tPSY197eXvH6kVIa7Jp6NpA7/J2ZUlqzgmUbgdbW\n1lYaGxsLrUuSpOGkra2NpqYmgKaUUltfyxbW2z8iNgLWBDYBRkbEOzt+ejSl9EZR7UqSpL4VFv7A\nqcBB3b53HoW8D7i1wHYlSVIfCuvtn1I6NKU0spfJ4JckqYp81E+SpJIx/CVJKhnDX5KkkjH8JUkq\nGcNfkqSSMfwlSSoZw1+SpJIx/CVJKhnDX5KkkjH8JUkqGcNfkqSSMfwlSSoZw1+SpJIx/CVJKhnD\nX5KkkjH8JUkqGcNfkqSSMfwlSSoZw1+SpJIx/CVJKhnDX5KkkjH8JUkqGcNfkqSSMfwlSSoZw1+S\npJIx/CVJKhnDX5KkkjH8JUkqGcNfkqSSMfwlSSoZw1+SpJIx/CVJKhnDX5KkkjH8JUkqGcNfkqSS\nMfwlSSoZw1+SpJIx/CVJKhnDX5Kkkiks/CNik4i4KCIei4h5EfGniDg5IkYX1aYkSerfqAK3/XYg\ngMOBPwPbAhcBE4DjC2xXkiT1obDwTyndANzQbdbjEfFfwHQMf0mSqmao7/mvAcwd4jYlSVI3Qxb+\nEbEFcDRwwVC1KUmSljfgy/4RcTpwQh+LJGBKSumRbutsCFwHXJZSuri/NmbMmEFDQ0OPec3NzTQ3\nNw+0XEmShp2WlhZaWlp6zGtvb694/UgpDajBiFgLWKufxR5LKb3ZsfwGwE3AHSmlQ/vZdiPQ2tra\nSmNj44DqkiSpzNra2mhqagJoSim19bXsgM/8U0ovAS9VsmzHGf+NwL3AZwbaliRJGnyF9faPiPWB\nm4HHyb3714kIAFJKzxXVriRJ6luRz/nvBWzWMT3ZMS/IfQJGFtiuJEnqQ2G9/VNKs1JKI5eZRqSU\nDH5JkqrIsf0lSSoZw1+SpJIx/CVJKhnDX5KkkjH8JUkqGcNfkqSSMfwlSSoZw1+SpJIx/CVJKhnD\nX5KkkjH8JUkqGcNfkqSSMfwlSSoZw1+SpJIx/CVJKhnDX5KkkjH8JUkqGcNfkqSSMfwlSSoZw1+S\npJIx/CVJKhnDX5KkkjH8JUkqGcNfkqSSMfwlSSoZw1+SpJIx/CVJKhnDX5KkkjH8JUkqGcNfkqSS\nMfwlSSoZw1+SpJIx/CVJKhnDX5KkkjH8JUkqGcNfkqSSMfwlSSoZw1+SpJIpNPwj4uqIeCIi5kfE\nnIj4QUSsX2SbkiSpb0Wf+d8IfALYEtgP2By4ouA2JUlSH0YVufGU0lndvj4ZEV8HroqIkSmlJUW2\nLUmSejdk9/wjYk3g08DtBr8kSdVTePhHxNcj4nXgRWAj4GNFtylJklZswOEfEadHxNI+piURsWW3\nVb4JvAv4ALAEuGSQapckSSshUkoDWyFiLWCtfhZ7LKX0Zi/rbgg8CeySUrq7l98bgdapU6fS0NDQ\n47fm5maam5v/9r2lpaXHd/XO/VQ591Vl3E+VcT9Vxv1UmWX3U0tLCy0tLT2WaW9v59ZbbwVoSim1\n9bnBlNKQTcDGwFJg6gp+bwRSa2tr6s+0adP6XUbup4FwX1XG/VQZ91Nl3E+VqWQ/tba2JiABjamf\nPC6st39E7Ai8G7gNeBnYAjgV+BNwZ1HtSpKkvhXZ4W8++dn+XwMPAxcCvwPem1JaXGC7kiSpD4Wd\n+aeU/gjsWdT2JUnSyil0kJ+VMA5g9uzZ/S7Y3t5OW1vf/RnkfhoI91Vl3E+VcT9Vxv1UmUr2U7fs\nHNff9gbc279IEfEp4IfVrkOSpDr26ZTSj/paoNbCfy3gg8DjwILqViNJUl0ZB0wGbkgpvdTXgjUV\n/pIkqXhDNra/JEmqDYa/JEklY/hLklQyhr8kSSVj+EuSVDLDIvwj4uqIeCIi5kfEnIj4QUSsX+26\naklEbBIRF0XEYxExLyL+FBEnR8ToatdWayLixIi4PSLeiIi51a6nVkTEURHxl47/z+7qeH+HuomI\n3SPimoh4uuMV5x+tdk21JiK+EhH3RMSrEfFcRFy1zGvgBUTE9Ih4ICLaO6Y7IuIfBmv7wyL8gRuB\nTwBbkt8nsDlwRVUrqj1vBwI4HNgamAFMB06rZlE1ajRwOXB+tQupFRHxSeAM4N+B7YEHgBsiYlJV\nC6s9q5HfYXIU+e1qWt7uwNnATsD7yf+//Soixle1qtrzJHAC0NQx3QhcHRFTBmPjw/I5/4iYBlwF\njE0pLal2PbUqIr4ETE8pbVHtWmpRRBwMnJlSWrPatVRbRNwF3J1S+mLH9yD/4/TtlNI3q1pcjYqI\npcDHUkrXVLuWWtZxAPk8+VXvt1W7nloWES8BX0opfW9VtzVczvz/JiLWBD4N3G7w92sNwMva6lPH\nraEm4Ded81I+a/g1sEu16tKwsQb5Kon/Fq1ARIyIiAOACcCdg7HNYRP+EfH1iHgdeBHYCPhYlUuq\naRGxBXA0cEG1a1HNmwSMBJ5bZv5zwHpDX46Gi44rSDOB21JKD1W7nloTEdtGxGvAQuA8YN+U0sOD\nse2aDf+IOL2jw8yKpiXLdBL5JvAu4APAEuCSqhQ+xFZiPxERGwLXAZellC6uTuVDa2X2k/oVeF9b\nq+Y8ch+kA6pdSI16GHgnuX/E+cAPIuLtg7Hhmr3n3/GSn7X6WeyxlNKbvay7Ifl+5C4ppbuLqK9W\nDHQ/RcQGwE3AHSmlQ4uur1aszH9P3vPPOi77zwP+sfv964j4PtCQUtq3WrXVMu/59y0izgGmAbun\nlP5a7XrqQUT8L/BoSumIVd3WqEGopxAdbyTq861EfRjZ8efYQSqnZg1kP3UcFN0I3At8psi6as0q\n/vdUaimlxRHRCuwJXAN/u1y7J/Dtatam+tQR/PsAexj8AzKCQcq1mg3/SnU8a/xu4DbgZWAL4FTg\nTwxSx4ijMkawAAABR0lEQVThoGPcg5vJr0s+Hlgn//sNKaVl7+WWWkRsBKwJbAKMjIh3dvz0aErp\njepVVlX/DczqOAi4h/yo6ATg+9UsqtZExGrkf4OiY9ZmHf/9zE0pPVm9ympHRJwHNAMfBd6IiHU7\nfmpPKfkq9w4RcRr59uyTwERyR/Y9gL0GZfu1etm/UhGxLXAW8A7yM7bPkHfYaSmlZ6pZWy3puIS9\n7P39IHfcHtnLKqUVEd8DDurlp/ellG4d6npqRUQcST5wXJf8LPsXUkr3Vbeq2hIRe5Bvqy37D+us\nlFKprratSMftkN6C59CU0g+Gup5aFREXAX8PrA+0A78Hvp5SunFQtl/v4S9JkgamZnv7S5KkYhj+\nkiSVjOEvSVLJGP6SJJWM4S9JUskY/pIklYzhL0lSyRj+kiSVjOEvSVLJGP6SJJWM4S9JUsn8PyKv\nuuiV0jarAAAAAElFTkSuQmCC\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, + } + ], + "source": [ + "sampler.run_until_decorrelated()" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ { "data": { - "image/png": "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\nD7HVK7CDAAAAAElFTkSuQmCC\n", "text/plain": [ - "" + "False" ] }, + "execution_count": 21, "metadata": {}, - "output_type": "display_data" + "output_type": "execute_result" } ], "source": [ - "# this is a trick to take the first decorrelated trajectory\n", - "while (initial_conditions[0].trajectory.is_correlated(sampler.sample_set[0].trajectory)):\n", - " sampler.run(1)" + "# now we have decorrelated: no frames are in common\n", + "initial_conditions[0].trajectory.is_correlated(sampler.sample_set[0].trajectory)" ] }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 22, "metadata": {}, "outputs": [ { "data": { - "image/png": "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\nRK5CYII=\n", + "image/png": "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\n", "text/plain": [ - "" + "
" ] }, "metadata": {}, @@ -551,108 +509,8 @@ "name": "stdout", "output_type": "stream", "text": [ - "DONE! Completed 20 Monte Carlo cycles.\n" + "DONE! Completed 17 Monte Carlo cycles.\n" ] - }, - { - "data": { - "image/png": "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\nD7HVK7CDAAAAAElFTkSuQmCC\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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\nAElFTkSuQmCC\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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\nSUVORK5CYII=\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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\nSUVORK5CYII=\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAf8AAAFdCAYAAAANJWRbAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAAPYQAAD2EBqD+naQAAHXhJREFUeJzt3XmcXXV9//HXJwtLIEzYtwpUFg0PFZwR+NGWoLK4/Mqi\nFOsotj9RBH+AdgrVoraoBUFWWYobLUJpp1WRAiqroBBA0ZmiFUMFYmSLbIEhhERC8u0f3xlmJrPd\nSebce2e+r+fjcR733nPPPd9PDiHvs3zP90RKCUmSVI5pjS5AkiTVl+EvSVJhDH9Jkgpj+EuSVBjD\nX5Kkwhj+kiQVxvCXJKkwMxpdwEARsTnwNmARsKKx1UiSNKlsAOwE3JhSema0BZsq/MnB/6+NLkKS\npEns/cC/jbZAs4X/IoArr7ySuXPnjrpgR0cH559/fj1qmtTcTrVzW9XG7VQbt1Nt3E61qWU7LViw\ngKOOOgp6s3Q0lYZ/RBwHfJR8GgLgPuDzKaUbRvjJCoC5c+fS2to66rpbWlrGXEZup/FwW9XG7VQb\nt1Nt3E61Ged2GvOyedUd/h4BPgm09U63AtdExOiH9ZIkqTKVHvmnlL63xqzPRMRHgf8DLKiybUmS\nNLy6XfOPiGnAe4BZwN31aleSJA1WefhHxOvIYb8BsBR4V0rp/nVdb3t7+7quoghup9q5rWrjdqqN\n26k2bqfaTPR2ipTShK5wSAMRM4AdgDnAEcAxwLzhdgAiohXomjdvHi0tLYO+a29v9y+JJElAZ2cn\nnZ2dg+b19PRw++23A7SllLpH+33l4T+kwYibgQdTSh8d5rtWoKurq8ven5IkjUN3dzdtbW1QQ/g3\nYnjfacD6DWhXkiRR/X3+pwPXk2/5m00edWh/4OAq25UkSSOrusPf1sAVwLZAD/AL4OCU0q0VtytJ\nkkZQ9X3+H65y/ZIkafx8pK8kSYUx/CVJKozhL0lSYQx/SZIKY/hLklQYw1+SpMIY/pIkFcbwlySp\nMIa/JEmFMfwlSSqM4S9JUmEMf0mSCmP4S5JUGMNfkqTCGP6SJBXG8JckqTCGvyRJhTH8JUkqjOEv\nSVJhDH9Jkgpj+EuSVBjDX5Kkwhj+kiQVxvCXJKkwhr8kSYUx/CVJKozhL0lSYQx/SZIKY/hLklQY\nw1+SpMIY/pIkFcbwlySpMIa/JEmFMfwlSSqM4S9JUmEMf0mSCmP4S5JUGMNfkqTCVBr+EXFKRNwT\nEc9HxBMRcXVE7FZlm5IkaXRVH/nvB1wE7AMcCMwEboqIDStuV5IkjWBGlStPKb1z4OeI+H/Ak0Ab\nML/KtiVJ0vDqfc1/DpCAJXVuV5Ik9apb+EdEAF8C5qeUflWvdiVJ0mCVnvZfwyXA7sAf17FNSZK0\nhrqEf0RcDLwT2C+ltHis5Ts6OmhpaRk0r729nfb29ooqlCRp8ujs7KSzs3PQvJ6enpp/Hymlia5p\ncAM5+A8D9k8pLRxj2Vagq6uri9bW1krrkiRpKunu7qatrQ2gLaXUPdqylR75R8QlQDtwKLAsIrbu\n/aonpbSiyrYlSdLwqu7wdxywCfBD4PEB03sqbleSJI2g6vv8HT5YkqQmYziXbPlyOPVUuOmmRlci\nSaqjet7qp2by6KOw336waBHsuiv893/D+us3uipJUh145F+q7beHP/iD/P6BB+DccxtbjySpbgz/\nUkXAP/4jTJ+eP592Gjz8cGNrkiTVheFfsje8AU44Ib9fvhw6OhpbjySpLgz/0n3uc7B17/AL3/kO\n3HhjY+uRJFXO8C9dSwucfXb/5xNPhN//vnH1SJIqZ/gLjjoK/uRP8vsHHoDzzmtsPZKkShn+Gtr5\n7x/+wc5/kjSFGf7K3vAGOP74/N7Of5I0pRn+6mfnP0kqguGvfnPm2PlPkgpg+GswO/9J0pRn+Gsw\nO/9J0pRn+GuoNTv//fVfN7YeSdKEMvw1vIGd/666ys5/kjSFGP4a3pw5cNZZ/Z/7Ov8tXw6XXQbf\n/jak1Lj6JElrzfDXyD7wgcGd/z79aZg1C44+Go48Erq7G1ufJGmtGP4aWQRcfDFM6/1rcu65g7/f\ndtv61yRJWmeGv0a3xx7wkY8Mnf+Zz8B229W/HknSOpvR6ALU5H7/e7jvvsHzvvIVOPbYxtQjSVpn\nhr9GtmIFHHEE3HFH/7z//E847LDG1SRJWmeGv4a3fDm86139t/jNmgXf/S685S2NrUuStM4Mfw31\n4otw+OFw883580Ybwfe/D/PmNbYuSdKEsMOfBnvqKTjkkP7g33hjuOEGg1+SphCP/JUtXAg77zx4\n3uzZ+bT/vvs2piZJUiU88hf8+MdDg3+TTfLRv8EvSVOO4V+6K68cPuBvuQX22af+9UiSKmf4l2r1\najjllDyE75q6umCvvepfkySpLrzmX6KlS+Goo+Daa4d+97OfQWtr/WuSJNWNR/6lWbQI/viPhwb/\n3Lnwve9BW1tDypIk1Y9H/iWZPz8P3PP00/lzSwt885tw8MGNrUuSVFeGf7N7/vk8vv566/VP06eP\nfz2XXZbH41+5Mn/edVe47jp4zWsmtl5JUtMz/JvZRRdBRwesWjV4/rRp/TsC668/eMdguGnlSvjh\nD/t/f+CB+Yh/003r+seRJDUHw7+Z3Xzz0OCH3FN/xYo8jdeJJ8J558EM/9NLUqlMgGZ2zjn59ZZb\n8oN2xrLeejnUX3oJXn558HebbAJf/CIcd9zE1ylJmlQM/2a22265V/7y5XD77fnhOtdfDw88MPzy\nq1fD3nvDO94Bb3tbvp7/0kt5mj07XyKQJBXPW/0mgw03zGF+wQXw61/n8L/wwhzyG2zQv9zLL+dr\n+5/8JOy5Z+7Ud/LJcMcdeQdAkiQM/8lpl13ytfvvfx+WLMmvJ5wwdHz+Rx+Fr38d3v1u2HxzeOtb\n4eyz4Ze/hJQaU7skqeEqDf+I2C8iro2IxyJidUQcWmV7Rdpww3wG4KKL4MEH85mBL30pnykYeJp/\n5Uq47Tb4xCfg9a/P37sDIElFqvrIfyPgXuB4wKSph113hY99LF8iOO002GKL4Ze7+WZ46qn61iZJ\nagqVdvhLKd0A3AAQEVFlW8VbvBh+8IM83XJLPuU/kp12ypcNttqqbuVJkpqHvf0nq+efhx/9CK66\nCi6/fPRlN9sMDjggD+5z4IHw6lfXp0ZJUlMy/CeTVavg+OPhq18de9mDD+4P+z32yKMCSpJEk4Z/\nR0cHLS0tg+a1t7fT3t7eoIqaxBVX1Bb8LS1wzTWDbwOUJE0ZnZ2ddHZ2DprX09NT8+8j1anHd0Ss\nBg5PKQ3zEPlXlmkFurq6umj1mfJD3XEH7L//0F76RxyRH8Xbd80f8k7CRz5S/xolSQ3R3d1NW34s\ne1tKqXu0ZZvyyF8j2G8/ePJJeOihPIjPmiP2HXQQ7LVXfn/uufDhD3u6X5I0RNX3+W8UEXtExJ69\ns17d+/lVVbY76SxblkfiO+YY+NrX4N57h47N32eLLWCffYYfqvdNb4I3vzm///Wv8yN7JUlaQ9VH\n/m8CbiPf45+Ac3vnXw4cXXHbk8cJJ8A3vpHfX3ppft1ww3wqf++9+6eddoKx7pg8+eT+x/eefTYc\ndlhFRUuSJquq7/P/EQ4hPLrrr+8P/oGWL4f58/PUZ8stB+8M7LVXHrZ3oHe8A3bfHX71K7jzTrj7\nbth330r/CJKkycVr/o3U05NP9fc59dT86N177snTb34zePmnnoLvfS9PfXbeOe8I7LNPft1zTzjp\nJPjQh/L355yTxwKQJKmX4d9IJ50Ejz2W3x98cA7/gaf1n3oKfvrT/p2Be+6BZ54ZvI6HHspT3y0f\nM2bkR/n2ufrq/BTAXXet9s8iSZo0DP9GufFG+Kd/yu9nz85P31vzev6WW8I735knyLf4LVw4eGeg\nuxtWrOj/zcsvw3339X9OCS6+OI/1L0kShn9j9PTk2/D6nHMO7LDD2L+LyKf5d94Z+gY8WrkyP6K3\nb2fgJz/J1/sHjgXwu99NbP2SpEnN8G+Ev/mb/gfvHHjg4Ov+4zVzJrzxjXk69tg8b+lS6OrKOwPP\nPQfHHbfuNUuSpgzDv95uuimf4gfYeOP+0/0pwQsvwJIlQ6dnn82vK1bAe98Lf/RHo7cxe3a+37/v\nnn9JkgYw/Ovp+ecHH+XPmAFvf3t/wI80sM9A3/nO6I/rlSRpDIZ/PX372/Dww/2fn3suT+OxzTYT\nW5MkqTiGfz3NnZuP9gce4W+yCWy2WZ423bT//cDPp5/ef8//SSc1pnZJ0pRh+NfTvvvme/effDIH\n+5w5ucPeaH7xi8GD/Zx1Fvz7v8N228H22w993XTTsYcAliQVzfCvtzlz8lSrgffsQ37oz733jrz8\nBhvkHYGRdg76vps1a+3qlyRNeoZ/szv8cDj++Hz//uOP53v2V68eefkVK/JAQAsXjr7elpY83gDA\n5z6XOyJuu+3E1S1JalqGf7PbcMM8Ql+fl1/Olw0eeyzvDIz0+uyzo6+3L/ghDyt86qn5/ZFH5p2B\nuXMn/s8iSWoKhv9kM2NG/6n70bz4IixePPIOwh13DP+7b30rT5BHErz44vzcgWk+nFGSpgrDf6qa\nNat/KOCRXHAB/NVfjfz9Qw/lRwT3OfNM+PjHc78CSdKk5eFcyT7+8Tyy4LJl8IUvjL383/5tvgwR\nAX/2Z4PHLJAkTRqGv/JZglNOyTsCS5bAhReO/ZurroIdd4T99oOXXqq+RknShDH8Ndimm8KJJ+Yd\ngUcfhfPOG30sgvnz4e//PvcxkCRNCoa/skWL4LbbYMGCfKdASnlcgI6OfGT/P/8Dn/3s8LcDfvGL\nsNVW8IEPwPXX58cMS5Kalh3+BP/1X/CmNw0eP2C99fJzBLbdNr/2TX/3d/mOgVtvzY8M7huqeNky\nuPLKPG2xBbznPdDenp9A6J0CktRUDH/lIYfXHDjopZdyh7616dT39NNwySV52mGHvBPwvvfB61/v\n0MOS1AQ8JBMccEAO5j7bbZc/b7nluq/74YfzZYE99oBPfWrd1ydJWmce+QumT88d+w46KH9+/PF8\njX/jjfP1+6eeysMK902LFw/+3De98MLo7Xz3u3DGGdX/eSRJozL8lR144ODPO+yQb/ubObO2EQUh\nh/8TTwzdKVi8OD9z4Nhjq6ldkjQuhr+G9+yz8Nvf5nv5a7XxxnkabVRBSVLDec1f/bbeevDn++9v\nTB2SpEoZ/spWrcrX9vsccwy89a2Nq0eSVBlP+yt7+un+2/3+9E/ha19rbD2SpMp45K/sd7/rf7/m\n6X9J0pRi+Ct74on+99ts07g6JEmVM/yVDTzyN/wlaUoz/JV52l+SimH4K/O0vyQVw/BX5pG/JBXD\n8Ffmkb8kFcPwV9Z35L/hhjB7dmNrkSRVyvBX1hf+W28NEY2tRZJUKcNf+bG9zzyT33vKX5KmvLoM\n7xsRxwMnA9sAPwdOTCn9tB5tqwZPPtn//v774aCD8qn/jTce+rrmvDlz8uN+N9/cMwaSNElUHv4R\n8efAucBHgHuADuDGiNgtpfR01e2rBi+91P/+uefgllvGv4711ss7AdtvP/xr3/uNNpq4uiVJa6Ue\nR/4dwFdTSlcARMRxwP8FjgbOqkP7GstOO8GHPgSdnfDii2u3jpdegkWL8jSaTTYZfsdghx3yGYdZ\ns9aufUlSzSoN/4iYCbQBX+ibl1JKEXELsG+VbWscIuDSS/O0ahUsWwZLl8ILL+RpuPd9r888A48/\nDo89ll/7+g6M5Pnn87RgwdDvDjhg7c46SJLGpeoj/y2A6cATa8x/AnhNxW1rbUyfno/ON9lk7X6/\nYgUsXty/MzDwdeD75cuH/vY3v1m32iVJNalLh79hBJBG+rKjo4OWlpZB89rb22lvb6+6Lq2rDTaA\nP/zDPI0kJejpyTsCN9wAJ52U5+/rySBJqkVnZyednZ2D5vX09NT8+6rD/2lgFbDmeLFbMfRswCvO\nP/98Wltbq6xLjRSR7xKYMweuu65//v77N64mSZpEhjsg7u7upq2trabfV3qff0ppJdAFHNA3LyKi\n9/NdVbatSeL22/vfz5vXuDokqSD1OO1/HnB5RHTRf6vfLOAbdWhbzWzVKpg/P7/femvYbbfG1iNJ\nhag8/FNK34yILYDPk0//3wu8LaX0VNVtq8nde2/u+Q/5qN9BgiSpLurS4S+ldAlwST3a0iQy8JS/\n1/slqW4c21+N86Mf9b83/CWpbgx/Ncbq1XDHHfn9ZpvB7rs3th5JKojhr8a47z5YsiS/nzcPpvlX\nUZLqxX9xVV9Ll8LHPgZvfnP/vKefzvMlSXXRqBH+VKKlS/MofgsW5NP+fe66K8+/++78mGBJUqU8\n8lf9fPrTQ4Mf8ucFC+Azn2lMXZJUGMNf9XPddUODv8/q1XDttfWtR5IKZfirPlKClStHX2blyryc\nJKlShr/qIwJmzhx9mZkzHeVPkurA8Ff9HHLIyLf0TZsGhx5a33okqVCGv+rn9NNh7tyhOwDTpuX5\np53WmLokqTCGv+pn9ux8O98JJ8BOO8H22+fXE07wNj9JqiPv81d9zZ4NF1yQp5S8xi9JDeCRvxrH\n4JekhjD8JUkqjOEvSVJhDH9Jkgpj+EuSVBjDX5Kkwhj+kiQVxvCXJKkwhr8kSYUx/CVJKozhL0lS\nYQx/SZIKY/hLklQYw1+SpMIY/pIkFcbwlySpMIa/JEmFMfwlSSqM4S9JUmEMf0mSCmP4S5JUGMNf\nkqTCGP6SJBXG8JckqTCGvyRJhaks/CPiUxFxZ0Qsi4glVbUjSZLGp8oj/5nAN4EvV9iGJEkapxlV\nrTil9DmAiPjLqtqQJEnj5zV/SZIKY/hLklSYcYV/RJwREatHmVZFxG5VFStJktbdeK/5nwNcNsYy\nC9eylld0dHTQ0tIyaF57ezvt7e3rumpJkia9zs5OOjs7B83r6emp+feRUpromgY3kDv8nZ9S2qyG\nZVuBrq6uLlpbWyutS5KkqaS7u5u2tjaAtpRS92jLVtbbPyJeBWwG7AhMj4g9er96MKW0rKp2JUnS\n6CoLf+DzwF8M+Ny3F/IW4PYK25UkSaOorLd/SumDKaXpw0wGvyRJDeStfpIkFcbwlySpMIa/JEmF\nMfwlSSqM4S9JUmEMf0mSCmP4S5JUGMNfkqTCGP6SJBXG8JckqTCGvyRJhTH8JUkqjOEvSVJhDH9J\nkgpj+EuSVBjDX5Kkwhj+kiQVxvCXJKkwhr8kSYUx/CVJKozhL0lSYQx/SZIKY/hLklQYw1+SpMIY\n/pIkFcbwlySpMIa/JEmFMfwlSSqM4S9JUmEMf0mSCmP4S5JUGMNfkqTCGP6SJBXG8JckqTCGvyRJ\nhTH8JUkqjOEvSVJhDH9Jkgpj+EuSVJjKwj8idoyISyNiYUS8GBEPRMRnI2JmVW1KkqSxzahw3a8F\nAjgGeAh4HXApMAv4RIXtSpKkUVQW/imlG4EbB8xaFBHnAMdh+EuS1DD1vuY/B1hS5zYlSdIAdQv/\niNgFOAH4Sr3alCRJQ437tH9EnAF8cpRFEjA3pfTrAb/ZHrge+I+U0j+P1UZHRwctLS2D5rW3t9Pe\n3j7eciVJmnI6Ozvp7OwcNK+np6fm30dKaVwNRsTmwOZjLLYwpfRy7/LbAbcBd6WUPjjGuluBrq6u\nLlpbW8dVlyRJJevu7qatrQ2gLaXUPdqy4z7yTyk9AzxTy7K9R/y3Aj8Fjh5vW5IkaeJV1ts/IrYF\nfggsIvfu3yoiAEgpPVFVu5IkaXRV3ud/MPDq3umR3nlB7hMwvcJ2JUnSKCrr7Z9SujylNH2NaVpK\nyeCXJKmBHNtfkqTCGP6SJBXG8JckqTCGvyRJhTH8JUkqjOEvSVJhDH9Jkgpj+EuSVBjDX5Kkwhj+\nkiQVxvCXJKkwhr8kSYUx/CVJKozhL0lSYQx/SZIKY/hLklQYw1+SpMIY/pIkFcbwlySpMIa/JEmF\nMfwlSSqM4S9JUmEMf0mSCmP4S5JUGMNfkqTCGP6SJBXG8JckqTCGvyRJhTH8JUkqjOEvSVJhDH9J\nkgpj+EuSVBjDX5Kkwhj+kiQVxvCXJKkwhr8kSYUx/CVJKozhL0lSYSoN/4i4JiJ+GxHLI+LxiLgi\nIratsk1JkjS6qo/8bwWOBHYD3g3sDHyr4jYlSdIoZlS58pTSBQM+PhIRZwJXR8T0lNKqKtuWJEnD\nq9s1/4jYDHg/cKfBL0lS41Qe/hFxZkS8ADwNvAo4vOo2JUnSyMYd/hFxRkSsHmVaFRG7DfjJWcCe\nwEHAKuBfJqh2SZK0FiKlNL4fRGwObD7GYgtTSi8P89vtgUeAfVNKPxnm+1aga968ebS0tAz6rr29\nnfb29lc+d3Z2Dvqs4bmdaue2qo3bqTZup9q4nWqz5nbq7Oyks7Nz0DI9PT3cfvvtAG0ppe5RV5hS\nqtsE7ACsBuaN8H0rkLq6utJYDjnkkDGXkdtpPNxWtXE71cbtVBu3U21q2U5dXV0JSEBrGiOPK+vt\nHxF7AXsD84FngV2AzwMPAHdX1a4kSRpdlR3+lpPv7b8FuB/4OnAv8OaU0soK25UkSaOo7Mg/pfRL\n4ICq1i9JktZOpYP8rIUNABYsWDDmgj09PXR3j96fQW6n8XBb1cbtVBu3U23cTrWpZTsNyM4Nxlrf\nuHv7Vyki3gf8a6PrkCRpEnt/SunfRlug2cJ/c+BtwCJgRWOrkSRpUtkA2Am4MaX0zGgLNlX4S5Kk\n6tVtbH9JktQcDH9Jkgpj+EuSVBjDX5Kkwhj+kiQVZkqEf0RcExG/jYjlEfF4RFwREds2uq5mEhE7\nRsSlEbEwIl6MiAci4rMRMbPRtTWbiPhURNwZEcsiYkmj62kWEXF8RPym9/+zH/c+v0MDRMR+EXFt\nRDzW+4jzQxtdU7OJiFMi4p6IeD4inoiIq9d4DLyAiDguIn4eET29010R8faJWv+UCH/gVuBIYDfy\n8wR2Br7V0Iqaz2uBAI4Bdgc6gOOA0xtZVJOaCXwT+HKjC2kWEfHnwLnAqcAbgZ8DN0bEFg0trPls\nRH6GyfHkp6tpqP2Ai4B9gAPJ/7/dFBEbNrSq5vMI8EmgrXe6FbgmIuZOxMqn5H3+EXEIcDWwfkpp\nVaPraVYRcTJwXEppl0bX0owi4i+B81NKmzW6lkaLiB8DP0kpfbz3c5D/cbowpXRWQ4trUhGxGjg8\npXRto2tpZr07kE+SH/U+v9H1NLOIeAY4OaV02bqua6oc+b8iIjYD3g/cafCPaQ7gaW2NqvfSUBvw\ng755KR813ALs26i6NGXMIZ8l8d+iEUTEtIh4LzALuHsi1jllwj8izoyIF4CngVcBhze4pKYWEbsA\nJwBfaXQtanpbANOBJ9aY/wSwTf3L0VTRewbpS8D8lNKvGl1Ps4mI10XEUuD3wCXAu1JK90/Eups2\n/CPijN4OMyNNq9boJHIWsCdwELAK+JeGFF5na7GdiIjtgeuB/0gp/XNjKq+vtdlOGlPgdW2tm0vI\nfZDe2+hCmtT9wB7k/hFfBq6IiNdOxIqb9pp/70N+Nh9jsYUppZeH+e325OuR+6aUflJFfc1ivNsp\nIrYDbgPuSil9sOr6msXa/H3ymn/We9r/ReCIgdevI+IbQEtK6V2Nqq2Zec1/dBFxMXAIsF9K6eFG\n1zMZRMTNwIMppY+u67pmTEA9leh9ItGoTyUaxfTe1/UnqJymNZ7t1LtTdCvwU+DoKutqNuv496lo\nKaWVEdEFHABcC6+crj0AuLCRtWly6g3+w4D9Df5xmcYE5VrThn+teu813huYDzwL7AJ8HniACeoY\nMRX0jnvwQ/Ljkj8BbJX//YaU0prXcosWEa8CNgN2BKZHxB69Xz2YUlrWuMoa6jzg8t6dgHvIt4rO\nAr7RyKKaTURsRP43KHpnvbr378+SlNIjjauseUTEJUA7cCiwLCK27v2qJ6Xko9x7RcTp5MuzjwCz\nyR3Z9wcOnpD1N+tp/1pFxOuAC4A3kO+xXUzeYKenlBY3srZm0nsKe83r+0HuuD19mJ8UKyIuA/5i\nmK/eklK6vd71NIuI+P/kHcetyfeyn5hS+lljq2ouEbE/+bLamv+wXp5SKups20h6L4cMFzwfTCld\nUe96mlVEXAq8FdgW6AF+AZyZUrp1QtY/2cNfkiSNT9P29pckSdUw/CVJKozhL0lSYQx/SZIKY/hL\nklQYw1+SpMIY/pIkFcbwlySpMIa/JEmFMfwlSSqM4S9JUmH+F8UrN7scQyyuAAAAAElFTkSuQmCC\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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\nSZryDP92cu21Wwf/okXDw/6gg/LDfiRJ2kaGfzvp7ob/+I/cqQ9yh75TT623JknStONDftrJUUfB\nBRcMTp95JvzsZ/XVI0malgz/dvOXfwnvfGceX7cOjjsOnnyy3pokSdOK4d9uIuDyy6GzM0+vXAlv\nf/vYnQAlSZoAw78d7bRT7vw3f36e/va34ayz6q1JkjRtGP7tar/94F/+BWYN9Mn87GfhK1+ptyZJ\n0rRg+LezpUvhkksGp9/7Xrj77vrqkSRNC4Z/uzvttBz6AOvXw7veNfYT/yRJGofh3+4i4NJL4aUv\nzdO9vfCZz9RbkyRpSjP8p4KddoIvfQlmzszTn/pUfua/JEnbwPCfKl75Sjj77Dy+cWM+/f/ss/XW\nJEmakip9vG9ELAE+BHQBewPHpZSuq7LNKW/jRnj0UXjoIXj44fxz8/jKlYPLrVgBF14If/M39dUq\nSZqSqn62/y7AXcAXgGsqbmvqeuopeP/74Y474JFH8g5AM371q2rrkiRNS5WGf0rpBuAGgAhfRTeq\n7u58T/945szJ9/8vXJg7AH7oQ9XXJkmadnyrX91+8AO46qo8vsMO8Ad/kMN9c8gPHZ8/39f5SpK2\nm+Ffpw0b4PTTB6cvvnj4tCRJFWjL8O/u7qajo2PYvEajQaPRqKmiilx6Kfz853m8qwtOOaXeeiRJ\nU0JPTw89PT3D5vX39zf9/UgpTXZNIzcUsYlxevtHRCfQ29vbS+fmt9pNV488kq/br1uXT+Xfdhu8\n6lV1VyVJmqL6+vro6uoC6Eop9Y21rPf516W7Owc/wKmnGvySpJap+j7/XYCDgM291A6MiEOAJ1NK\nq6psu63deONg7/758+Hcc+utR5JUlKqv+b8S+B6QBobPDsy/Cji54rbb0/r1cMYZg9N/93fw4hfX\nV48kqThV3+f///DSwnAXXAD33ZfHlyzJj+mVJKmFDOZWuv/+wTfyzZwJl13mffuSpJYz/FslpXy6\n/7nn8vTJJ+cH+kiS1GJteZ//tHT77XDDDYPTn/98fk3vwoWw//4jD3vu6ZkBSdKkM/xbZdYIm3r9\nevjlL/MwkjlzRt45OOYY2G236mqVJE1rhn+rdHXlt/Z9//vw4IODwwMPwDPPjPyd0XYO5s/Pr/id\nM6famiVJ05Lh30qvfGUehkoJ1qwZ3BEYumOwedhy56C/P88z/CVJ28Dwr1sE7L57HrbcMYC8c/C3\n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\nbgAAAABJRU5ErkJggg==\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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\nSZryDP92cu21Wwf/okXDw/6gg/LDfiRJ2kaGfzvp7ob/+I/cqQ9yh75TT623JknStONDftrJUUfB\nBRcMTp95JvzsZ/XVI0malgz/dvOXfwnvfGceX7cOjjsOnnyy3pokSdOK4d9uIuDyy6GzM0+vXAlv\nf/vYnQAlSZoAw78d7bRT7vw3f36e/va34ayz6q1JkjRtGP7tar/94F/+BWYN9Mn87GfhK1+ptyZJ\n0rRg+LezpUvhkksGp9/7Xrj77vrqkSRNC4Z/uzvttBz6AOvXw7veNfYT/yRJGofh3+4i4NJL4aUv\nzdO9vfCZz9RbkyRpSjP8p4KddoIvfQlmzszTn/pUfua/JEnbwPCfKl75Sjj77Dy+cWM+/f/ss/XW\nJEmakip9vG9ELAE+BHQBewPHpZSuq7LNKW/jRnj0UXjoIXj44fxz8/jKlYPLrVgBF14If/M39dUq\nSZqSqn62/y7AXcAXgGsqbmvqeuopeP/74Y474JFH8g5AM371q2rrkiRNS5WGf0rpBuAGgAhfRTeq\n7u58T/945szJ9/8vXJg7AH7oQ9XXJkmadnyrX91+8AO46qo8vsMO8Ad/kMN9c8gPHZ8/39f5SpK2\nm+Ffpw0b4PTTB6cvvnj4tCRJFWjL8O/u7qajo2PYvEajQaPRqKmiilx6Kfz853m8qwtOOaXeeiRJ\nU0JPTw89PT3D5vX39zf9/UgpTXZNIzcUsYlxevtHRCfQ29vbS+fmt9pNV488kq/br1uXT+Xfdhu8\n6lV1VyVJmqL6+vro6uoC6Eop9Y21rPf516W7Owc/wKmnGvySpJap+j7/XYCDgM291A6MiEOAJ1NK\nq6psu63deONg7/758+Hcc+utR5JUlKqv+b8S+B6QBobPDsy/Cji54rbb0/r1cMYZg9N/93fw4hfX\nV48kqThV3+f///DSwnAXXAD33ZfHlyzJj+mVJKmFDOZWuv/+wTfyzZwJl13mffuSpJYz/FslpXy6\n/7nn8vTJJ+cH+kiS1GJteZ//tHT77XDDDYPTn/98fk3vwoWw//4jD3vu6ZkBSdKkM/xbZdYIm3r9\nevjlL/MwkjlzRt45OOYY2G236mqVJE1rhn+rdHXlt/Z9//vw4IODwwMPwDPPjPyd0XYO5s/Pr/id\nM6famiVJ05Lh30qvfGUehkoJ1qwZ3BEYumOwedhy56C/P88z/CVJ28Dwr1sE7L57HrbcMYC8c/C3\n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\nbgAAAABJRU5ErkJggg==\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" } ], "source": [ @@ -672,9 +530,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": true - }, + "metadata": {}, "outputs": [], "source": [] } diff --git a/examples/alanine_dipeptide_tps/AD_tps_2a_run_flex.ipynb b/examples/alanine_dipeptide_tps/AD_tps_2a_run_flex.ipynb index 8e07de03a..8422c19be 100644 --- a/examples/alanine_dipeptide_tps/AD_tps_2a_run_flex.ipynb +++ b/examples/alanine_dipeptide_tps/AD_tps_2a_run_flex.ipynb @@ -4,16 +4,17 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Running a TPS simulation" + "# Running the production TPS simulation" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "This is file runs the main calculation for the flexible length TPS simulation. It requires the file `alanine_dipeptide_tps_equil.nc`, which is written in the notebook `alanine_dipeptide_tps_first_traj.ipynb`.\n", + "This is file runs the main calculation for the flexible length TPS simulation. It requires the file `alanine_dipeptide_tps_equil.nc`, which is written in the notebook `AD_tps_1_trajectory.ipynb`.\n", "\n", "In this file, you will learn:\n", + "\n", "* how to set up and run a flexible length TPS simulation\n", "\n", "NB: This is a long calculation. In practice, it would be best to export the Python from this notebook, remove the `live_visualizer`, and run non-interactively on a computing node." @@ -35,7 +36,9 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## Load engine, trajectory, and states from file" + "## Load simulation objects from file\n", + "\n", + "In setting up the equilibration simulation, we've already defined everything we need for path sampling. One of the big strengths of OPS is that all simulation objects are saved in the storage file. This means that you can easily reload them for other simulations, and you have a clear chain of provenance, so you know that settings are *exactly* the same." ] }, { @@ -83,7 +86,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## TPS\n", + "## Run TPS\n", "\n", "As always, the process for setting up a simulation is:\n", "\n", @@ -153,7 +156,9 @@ { "cell_type": "code", "execution_count": 9, - "metadata": {}, + "metadata": { + "scrolled": true + }, "outputs": [ { "name": "stdout", @@ -167,7 +172,6 @@ } ], "source": [ - "#sampler.live_visualizer = paths.StepVisualization2D(network, phi, psi, [-3.14, 3.14], [-3.14, 3.14])\n", "sampler.run(10000)" ] }, @@ -177,8 +181,15 @@ "collapsed": true }, "source": [ - "With this done, you can go on to do the flexible-length parts of the analysis in `alanine_dipeptide_tps_analysis.ipynb`." + "With this done, you can go on to do the flexible-length parts of the analysis in `AD_tps_3a_analysis_flex.ipynb`." ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { diff --git a/examples/alanine_dipeptide_tps/AD_tps_3a_analysis_flex.ipynb b/examples/alanine_dipeptide_tps/AD_tps_3a_analysis_flex.ipynb index 0ef1ecd8a..b04661d70 100644 --- a/examples/alanine_dipeptide_tps/AD_tps_3a_analysis_flex.ipynb +++ b/examples/alanine_dipeptide_tps/AD_tps_3a_analysis_flex.ipynb @@ -171,7 +171,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "#### Replica history tree and decorrelated trajectories\n", + "## Replica history tree and decorrelated trajectories\n", "\n", "The `ReplicaHistoryTree` object gives us both the history tree (often called the \"move tree\") and the number of decorrelated trajectories.\n", "\n", @@ -606,7 +606,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "#### Path length distribution\n", + "## Path length distribution\n", "\n", "Flexible length TPS gives a distribution of path lengths. Here we calculate the length of every accepted trajectory, then histogram those lengths, and calculate the maximum and average path lengths.\n", "\n", @@ -650,7 +650,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "#### Path density histogram\n", + "## Path density histogram\n", "\n", "Next we will create a path density histogram. Calculating the histogram itself is quite easy: first we reload the collective variables we want to plot it in (we choose the phi and psi angles). Then we create the empty path density histogram, by telling it which CVs to use and how to make the histogram (bin sizes, etc). Finally, we build the histogram by giving it the list of active trajectories to histogram." ] diff --git a/openpathsampling/step_visualizer_2D.py b/openpathsampling/step_visualizer_2D.py index 43e241e66..f08bd4b04 100644 --- a/openpathsampling/step_visualizer_2D.py +++ b/openpathsampling/step_visualizer_2D.py @@ -13,7 +13,7 @@ def __init__(self, network, cv_x, cv_y, xlim, ylim, output_directory=None): self.xlim = xlim self.ylim = ylim self.output_directory = output_directory - self.background = None + self.background = plt.subplots()[0] self._save_bg_axes = None self.fig = None From fcc39dc2b2342de4659f2fce100c078709030efd Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Fri, 16 Oct 2020 12:38:32 +0200 Subject: [PATCH 420/464] pretty much ready to re-run the AD TPS now --- .../AD_tps_1_trajectory.ipynb | 72 ++++++++------- .../AD_tps_2a_run_flex.ipynb | 89 ++++++++++--------- openpathsampling/step_visualizer_2D.py | 32 ++++--- 3 files changed, 108 insertions(+), 85 deletions(-) diff --git a/examples/alanine_dipeptide_tps/AD_tps_1_trajectory.ipynb b/examples/alanine_dipeptide_tps/AD_tps_1_trajectory.ipynb index 06942a55a..aaffbe568 100644 --- a/examples/alanine_dipeptide_tps/AD_tps_1_trajectory.ipynb +++ b/examples/alanine_dipeptide_tps/AD_tps_1_trajectory.ipynb @@ -40,7 +40,10 @@ "\n", "import mdtraj as md\n", "\n", - "import numpy as np" + "import numpy as np\n", + "\n", + "import os\n", + "initial_pdb = os.path.join(\"..\", \"resources\", \"AD_initial_frame.pdb\")" ] }, { @@ -67,7 +70,7 @@ "source": [ "# this cell is all OpenMM specific\n", "forcefield = app.ForceField('amber96.xml', 'tip3p.xml')\n", - "pdb = app.PDBFile(\"../resources/AD_initial_frame.pdb\")\n", + "pdb = app.PDBFile(initial_pdb)\n", "system = forcefield.createSystem(\n", " pdb.topology, \n", " nonbondedMethod=app.PME, \n", @@ -96,7 +99,7 @@ "metadata": {}, "outputs": [], "source": [ - "template = omm.snapshot_from_pdb(\"../resources/AD_initial_frame.pdb\")\n", + "template = omm.snapshot_from_pdb(initial_pdb)\n", "openmm_properties = {'OpenCLPrecision': 'mixed'}\n", "engine_options = {\n", " 'n_steps_per_frame': 10,\n", @@ -220,6 +223,16 @@ "trajectory = hi_T_engine.generate(hi_T_engine.current_snapshot, [init_traj_ensemble])" ] }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "visit_all = paths.VisitAllStatesEnsemble([C_7eq, alpha_R])\n", + "trajectory = hi_T_engine.generate(hi_T_engine.current_snapshot, [visit_all])" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -234,7 +247,7 @@ "outputs": [], "source": [ "# create a network so we can use its ensemble to obtain an initial trajectory\n", - "# use all-to-all because we don't care if initial traj is A->B or B->A: it can be reversed\n", + "# use all-to-all because initial traj can be A->B or B->A; will be reversed\n", "tmp_network = paths.TPSNetwork.from_states_all_to_all([C_7eq, alpha_R])" ] }, @@ -247,7 +260,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "[Trajectory[117]]\n" + "[Trajectory[7]]\n" ] } ], @@ -267,7 +280,7 @@ { "data": { "text/plain": [ - "[]" + "[]" ] }, "execution_count": 12, @@ -276,7 +289,7 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -288,7 +301,7 @@ } ], "source": [ - "plt.plot(phi(trajectory), psi(trajectory), 'k.-')\n", + "plt.plot(phi(trajectory), psi(trajectory), 'k.')\n", "plt.plot(phi(subtrajectories[0]), psi(subtrajectories[0]), 'r')" ] }, @@ -296,7 +309,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## Setting up the production engine\n", + "## Setting up the normal temperature engine\n", "\n", "We'll create another engine that uses a 300K integrator, and equilibrate to a 300K path from the 500K path." ] @@ -339,10 +352,11 @@ "metadata": {}, "outputs": [], "source": [ - "network = paths.TPSNetwork(initial_states=C_7eq, final_states=alpha_R)\n", + "network = paths.TPSNetwork(initial_states=C_7eq,\n", + " final_states=alpha_R).named('tps_network')\n", "scheme = paths.OneWayShootingMoveScheme(network, \n", " selector=paths.UniformSelector(),\n", - " engine=engine)" + " engine=engine).named('equil_scheme')" ] }, { @@ -382,27 +396,14 @@ "source": [ "We can create a `StepVisualizer2D`, which plays the simulation as it is running. It requires CVs for the $x$ direction and the $y$ direction, as well as bounds of the plot. You can set the `background` attribute to an existing matplotlib `Figure`, and the simulation will plot on top of that. See the toy model MSTIS example for an example of that.\n", "\n", - "This isn't necessary, and isn't even a good useful for long simulations (which typically won't be in an interactive notebook), but it can be fun!" + "This isn't necessary, and isn't even a useful for long simulations (which typically won't be in an interactive notebook), but it can be fun!" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "visualizer = paths.StepVisualizer2D(network, phi, psi, xlim=[-3.14, 3.14], \n", " ylim=[-3.14, 3.14])" @@ -449,7 +450,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -461,7 +462,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Step 8: All trajectories decorrelated!\n" + "Step 13: All trajectories decorrelated!\n" ] } ], @@ -497,7 +498,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -509,7 +510,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "DONE! Completed 17 Monte Carlo cycles.\n" + "DONE! Completed 22 Monte Carlo cycles.\n" ] } ], @@ -518,13 +519,22 @@ "sampler.run(10)" ] }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [], + "source": [ + "sampler.storage.close()" + ] + }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ - "From here, you can either extend this to a longer trajectory for the fixed length TPS in the `alanine_dipeptide_fixed_tps_traj.ipynb` notebook, or go straight to flexible length TPS in the `alanine_dipeptide_tps_run.ipynb` notebook." + "From here, you can either extend this to a longer trajectory for the fixed length TPS in the `AD_tps_1b_trajectory.ipynb` notebook, or go straight to flexible length TPS in the `AD_tps_2a_run_flex.ipynb` notebook." ] }, { diff --git a/examples/alanine_dipeptide_tps/AD_tps_2a_run_flex.ipynb b/examples/alanine_dipeptide_tps/AD_tps_2a_run_flex.ipynb index 8422c19be..dd801b068 100644 --- a/examples/alanine_dipeptide_tps/AD_tps_2a_run_flex.ipynb +++ b/examples/alanine_dipeptide_tps/AD_tps_2a_run_flex.ipynb @@ -15,7 +15,8 @@ "\n", "In this file, you will learn:\n", "\n", - "* how to set up and run a flexible length TPS simulation\n", + "* how to load simulation objects from a file and reuse them\n", + "* how to run a production simulation\n", "\n", "NB: This is a long calculation. In practice, it would be best to export the Python from this notebook, remove the `live_visualizer`, and run non-interactively on a computing node." ] @@ -23,9 +24,7 @@ { "cell_type": "code", "execution_count": 1, - "metadata": { - "collapsed": true - }, + "metadata": {}, "outputs": [], "source": [ "%matplotlib inline\n", @@ -38,7 +37,9 @@ "source": [ "## Load simulation objects from file\n", "\n", - "In setting up the equilibration simulation, we've already defined everything we need for path sampling. One of the big strengths of OPS is that all simulation objects are saved in the storage file. This means that you can easily reload them for other simulations, and you have a clear chain of provenance, so you know that settings are *exactly* the same." + "In setting up the equilibration simulation, we've already defined everything we need for path sampling. One of the big strengths of OPS is that all simulation objects are saved in the storage file. This means that you can easily reload them for other simulations, and you have a clear chain of provenance, so you know that settings are *exactly* the same. This is why we name OPS objects using the `.named()` method -- it makes it easy to load them up later.\n", + "\n", + "In this example, we'll create a new scheme. This scheme is actually identical to our equilibration scheme, so we could have just reused that old one. However, in many situations, you might use a different move scheme for equilibration than for production. For example, you might use only one-way shooting to equilibrate a TIS network, and but then use a full RETIS move scheme for the production run." ] }, { @@ -47,7 +48,7 @@ "metadata": {}, "outputs": [], "source": [ - "old_storage = paths.Storage(\"tps_nc_files/alanine_dipeptide_tps_equil.nc\", \"r\")" + "old_storage = paths.Storage(\"alanine_dipeptide_tps_equil.nc\", mode='r')" ] }, { @@ -56,30 +57,21 @@ "metadata": {}, "outputs": [], "source": [ - "engine = old_storage.engines[0]\n", - "C_7eq = old_storage.volumes.find('C_7eq')\n", - "alpha_R = old_storage.volumes.find('alpha_R')\n", - "traj = old_storage.samplesets[len(old_storage.samplesets)-1][0].trajectory\n", - "phi = old_storage.cvs.find('phi')\n", - "psi = old_storage.cvs.find('psi')\n", - "template = old_storage.snapshots[0]" + "network = old_storage.networks['tps_network']\n", + "engine = old_storage.engines['300K']\n", + "last_result = old_storage.steps[-1].active" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "300K\n" - ] - } - ], + "outputs": [], "source": [ - "print engine.name" + "# note that we could have loaded other things from storage, for example:\n", + "#C_7eq = old_storage.volumes['C_7eq']\n", + "#alpha_R = old_storage.volumes['alpha_R']\n", + "# however, we don't need to, since all the information is in the network" ] }, { @@ -104,22 +96,15 @@ "metadata": {}, "outputs": [], "source": [ - "network = paths.TPSNetwork(C_7eq, alpha_R)" + "scheme = paths.OneWayShootingMoveScheme(network, \n", + " selector=paths.UniformSelector(),\n", + " engine=engine)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, - "outputs": [], - "source": [ - "scheme = paths.OneWayShootingMoveScheme(network, selector=paths.UniformSelector(), engine=engine)" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, "outputs": [ { "name": "stdout", @@ -131,7 +116,18 @@ } ], "source": [ - "initial_conditions = scheme.initial_conditions_from_trajectories(traj)" + "initial_conditions = scheme.initial_conditions_from_trajectories(last_result)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "storage = paths.Storage(#\"tps_nc_files/\n", + " \"alanine_dipeptide_tps.nc\", \"w\")\n", + "storage.save(initial_conditions); # save these to give storage a template" ] }, { @@ -140,7 +136,18 @@ "metadata": {}, "outputs": [], "source": [ - "storage = paths.Storage(\"tps_nc_files/alanine_dipeptide_tps.nc\", \"w\", template)\n", + "# note that we can only close the old storage after we've saved the initial\n", + "# conditions -- this is because details of the snapshot aren't loaded until\n", + "# needed\n", + "old_storage.close()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ "sampler = paths.PathSampling(storage=storage,\n", " move_scheme=scheme,\n", " sample_set=initial_conditions).named(\"Flexible_TPS_Sampling\")" @@ -155,7 +162,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 10, "metadata": { "scrolled": true }, @@ -164,15 +171,15 @@ "name": "stdout", "output_type": "stream", "text": [ - "Working on Monte Carlo cycle number 10000\n", - "Running for 26886 seconds - 0.37 steps per second\n", - "Expected time to finish: 2 seconds\n", - "DONE! Completed 10000 Monte Carlo cycles.\n" + "Working on Monte Carlo cycle number 100\n", + "Running for 1 minute 20 seconds - 0.81 seconds per step\n", + "Estimated time remaining: 0 seconds\n", + "DONE! Completed 100 Monte Carlo cycles.\n" ] } ], "source": [ - "sampler.run(10000)" + "sampler.run(100)#00)" ] }, { diff --git a/openpathsampling/step_visualizer_2D.py b/openpathsampling/step_visualizer_2D.py index f08bd4b04..b09866114 100644 --- a/openpathsampling/step_visualizer_2D.py +++ b/openpathsampling/step_visualizer_2D.py @@ -13,7 +13,8 @@ def __init__(self, network, cv_x, cv_y, xlim, ylim, output_directory=None): self.xlim = xlim self.ylim = ylim self.output_directory = output_directory - self.background = plt.subplots()[0] + is_interactive = matplotlib.is_interactive() + self.background = None self._save_bg_axes = None self.fig = None @@ -77,18 +78,23 @@ def draw_trials(self, change): def draw_background(self): # draw the background - if self.background is not None: - if self._save_bg_axes is None: - self._save_bg_axes = self.background.axes - self.fig = self.background - for ax in self.fig.axes: - self.fig.delaxes(ax) - for ax in self._save_bg_axes: - self.fig.add_axes(ax) - self.ax = self.fig.axes[0].twinx() - self.ax.cla() - else: - self.fig, self.ax = plt.subplots() + ax = None + if self.background is None: + self.fig, ax = plt.subplots() + self.background = self.fig + ax.set_xlim(self.xlim) + ax.set_ylim(self.ylim) + + if self._save_bg_axes is None: + self._save_bg_axes = self.background.axes + self.fig = self.background + for ax in self.fig.axes: + self.fig.delaxes(ax) + for ax in self._save_bg_axes: + self.fig.add_axes(ax) + + self.ax = self.fig.axes[0].twinx() + self.ax.cla() self.ax.set_xlim(self.xlim) self.ax.set_ylim(self.ylim) From db3f5c392f749417329ac2cc11def1ec129bc408 Mon Sep 17 00:00:00 2001 From: sroet Date: Sat, 17 Oct 2020 12:14:29 +0200 Subject: [PATCH 421/464] solve another depr warning --- openpathsampling/sample.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/openpathsampling/sample.py b/openpathsampling/sample.py index 4447c750c..d4f83a0fb 100644 --- a/openpathsampling/sample.py +++ b/openpathsampling/sample.py @@ -7,7 +7,8 @@ from openpathsampling.tools import refresh_output -from collections import Counter, Mapping +from collections import Counter +from collections.abc import Mapping logger = logging.getLogger(__name__) From fcff10b0e82042f20668042f2e10775cb0433af8 Mon Sep 17 00:00:00 2001 From: sroet Date: Sat, 17 Oct 2020 12:29:49 +0200 Subject: [PATCH 422/464] allow python27 --- openpathsampling/sample.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/openpathsampling/sample.py b/openpathsampling/sample.py index d4f83a0fb..17164f6bf 100644 --- a/openpathsampling/sample.py +++ b/openpathsampling/sample.py @@ -8,7 +8,13 @@ from openpathsampling.tools import refresh_output from collections import Counter -from collections.abc import Mapping + +import sys +if sys.version_info > (3, ): + from collections.abc import Mapping +else: + from collections import Mapping + logger = logging.getLogger(__name__) From 76b2f88c831f4fa6aca690ecc719a951035d3757 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Sat, 17 Oct 2020 13:56:00 +0200 Subject: [PATCH 423/464] Update and re-run AD TPS example (flex-length) --- .../AD_tps_1_trajectory.ipynb | 124 ++-- .../AD_tps_2a_run_flex.ipynb | 53 +- .../AD_tps_3a_analysis_flex.ipynb | 682 ++++++++---------- .../AD_tps_A1_pub_pathdensity.ipynb | 457 ++++++++++++ 4 files changed, 844 insertions(+), 472 deletions(-) create mode 100644 examples/alanine_dipeptide_tps/AD_tps_A1_pub_pathdensity.ipynb diff --git a/examples/alanine_dipeptide_tps/AD_tps_1_trajectory.ipynb b/examples/alanine_dipeptide_tps/AD_tps_1_trajectory.ipynb index aaffbe568..2712bcf11 100644 --- a/examples/alanine_dipeptide_tps/AD_tps_1_trajectory.ipynb +++ b/examples/alanine_dipeptide_tps/AD_tps_1_trajectory.ipynb @@ -149,10 +149,14 @@ "outputs": [], "source": [ "# define the CVs\n", - "psi = paths.MDTrajFunctionCV(\"psi\", md.compute_dihedrals,\n", - " topology=template.topology, indices=[[6,8,14,16]])\n", - "phi = paths.MDTrajFunctionCV(\"phi\", md.compute_dihedrals,\n", - " topology=template.topology, indices=[[4,6,8,14]])" + "psi = paths.MDTrajFunctionCV(\n", + " \"psi\", md.compute_dihedrals,\n", + " topology=template.topology, indices=[[6,8,14,16]]\n", + ").enable_diskcache()\n", + "phi = paths.MDTrajFunctionCV(\n", + " \"phi\", md.compute_dihedrals,\n", + " topology=template.topology, indices=[[4,6,8,14]]\n", + ").enable_diskcache()" ] }, { @@ -192,45 +196,30 @@ "\n", "So the trick we'll use is to build the trajectory by using the fact that the shorter trajectories are in the complement of `goal_ensemble`, which is given by `complement = AllOutXEnsemble(stateA) | AllOutXEnsemble(stateB)`. The `generate` function will stop when that is no longer true, giving us the trajectory we want. This can be directly generalized to more states.\n", "\n", - "Note that here we're not even using the `can_append` function. That happens to be the same as the ensemble itself for this particular ensemble, but conceptually, we're actually using the test of whether a trajectory is in the ensemble at all." + "Note that here we're not even using the `can_append` function. That happens to be the same as the ensemble itself for this particular ensemble, but conceptually, we're actually using the test of whether a trajectory is in the ensemble at all.\n", + "\n", + "```python\n", + "init_traj_ensemble = paths.AllOutXEnsemble(C_7eq) | paths.AllOutXEnsemble(alpha_R)\n", + "trajectory = hi_T_engine.generate(hi_T_engine.current_snapshot, [init_traj_ensemble])\n", + "````" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, - "outputs": [], - "source": [ - "init_traj_ensemble = paths.AllOutXEnsemble(C_7eq) | paths.AllOutXEnsemble(alpha_R)" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, "outputs": [ { - "name": "stderr", + "name": "stdout", "output_type": "stream", "text": [ - "/Users/dwhs/miniconda3/envs/dev/lib/python3.7/site-packages/mdtraj/utils/validation.py:116: TypeCastPerformanceWarning: Casting unitcell_vectors dtype=float64 to \n", - " TypeCastPerformanceWarning)\n" + "Ran 2143 frames. Found states [alpha_R,C_7eq]. Looking for [].\n" ] } ], - "source": [ - "# generate trajectory that includes frame in both states\n", - "trajectory = hi_T_engine.generate(hi_T_engine.current_snapshot, [init_traj_ensemble])" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], "source": [ "visit_all = paths.VisitAllStatesEnsemble([C_7eq, alpha_R])\n", - "trajectory = hi_T_engine.generate(hi_T_engine.current_snapshot, [visit_all])" + "trajectory = hi_T_engine.generate(hi_T_engine.current_snapshot, [visit_all.can_append])" ] }, { @@ -242,7 +231,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 9, "metadata": {}, "outputs": [], "source": [ @@ -253,14 +242,14 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "[Trajectory[7]]\n" + "[Trajectory[33]]\n" ] } ], @@ -274,22 +263,22 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "[]" + "[]" ] }, - "execution_count": 12, + "execution_count": 11, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -316,7 +305,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 12, "metadata": {}, "outputs": [], "source": [ @@ -348,7 +337,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 13, "metadata": {}, "outputs": [], "source": [ @@ -359,9 +348,16 @@ " engine=engine).named('equil_scheme')" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The move scheme's `initial_conditions_from_trajectories` method will take whatever input you give it and try to generate valid initial conditions. This includes looking for subtrajectories that satisfy the ensembles you're sampling, as well as reversing the trajectory. If it succeeds, you'll see the message \"No missing ensembles. No extra ensembles.\" It's also a good practice to use `scheme.assert_initial_conditions` to ensure that your initial conditions are valid. This will halt a script if the initial conditions are not valid." + ] + }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 14, "metadata": { "scrolled": true }, @@ -382,7 +378,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 15, "metadata": {}, "outputs": [], "source": [ @@ -401,7 +397,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 16, "metadata": {}, "outputs": [], "source": [ @@ -411,11 +407,11 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 17, "metadata": {}, "outputs": [], "source": [ - "sampler = paths.PathSampling(storage=paths.Storage(\"alanine_dipeptide_tps_equil.nc\", \"w\", template),\n", + "sampler = paths.PathSampling(storage=paths.Storage(\"ad_tps_equil.nc\", \"w\", template),\n", " move_scheme=scheme,\n", " sample_set=initial_conditions)\n", "sampler.live_visualizer = visualizer" @@ -423,7 +419,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 18, "metadata": {}, "outputs": [ { @@ -432,7 +428,7 @@ "True" ] }, - "execution_count": 19, + "execution_count": 18, "metadata": {}, "output_type": "execute_result" } @@ -445,12 +441,12 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 19, "metadata": {}, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -462,7 +458,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Step 13: All trajectories decorrelated!\n" + "Step 6: All trajectories decorrelated!\n" ] } ], @@ -472,7 +468,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 20, "metadata": {}, "outputs": [ { @@ -481,7 +477,7 @@ "False" ] }, - "execution_count": 21, + "execution_count": 20, "metadata": {}, "output_type": "execute_result" } @@ -493,12 +489,12 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 21, "metadata": {}, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -510,7 +506,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "DONE! Completed 22 Monte Carlo cycles.\n" + "DONE! Completed 15 Monte Carlo cycles.\n" ] } ], @@ -521,7 +517,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 22, "metadata": {}, "outputs": [], "source": [ @@ -530,19 +526,10 @@ }, { "cell_type": "markdown", - "metadata": { - "collapsed": true - }, + "metadata": {}, "source": [ "From here, you can either extend this to a longer trajectory for the fixed length TPS in the `AD_tps_1b_trajectory.ipynb` notebook, or go straight to flexible length TPS in the `AD_tps_2a_run_flex.ipynb` notebook." ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] } ], "metadata": { @@ -561,7 +548,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.3" + "version": "3.7.8" }, "toc": { "base_numbering": 1, @@ -604,8 +591,15 @@ "_Feature" ], "window_display": false + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } } }, "nbformat": 4, - "nbformat_minor": 1 + "nbformat_minor": 4 } diff --git a/examples/alanine_dipeptide_tps/AD_tps_2a_run_flex.ipynb b/examples/alanine_dipeptide_tps/AD_tps_2a_run_flex.ipynb index dd801b068..f9e54be34 100644 --- a/examples/alanine_dipeptide_tps/AD_tps_2a_run_flex.ipynb +++ b/examples/alanine_dipeptide_tps/AD_tps_2a_run_flex.ipynb @@ -11,14 +11,14 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "This is file runs the main calculation for the flexible length TPS simulation. It requires the file `alanine_dipeptide_tps_equil.nc`, which is written in the notebook `AD_tps_1_trajectory.ipynb`.\n", + "This is file runs the main calculation for the flexible length TPS simulation. It requires the file `ad_tps_equil.nc`, which is written in the notebook `AD_tps_1_trajectory.ipynb`.\n", "\n", "In this file, you will learn:\n", "\n", "* how to load simulation objects from a file and reuse them\n", "* how to run a production simulation\n", "\n", - "NB: This is a long calculation. In practice, it would be best to export the Python from this notebook, remove the `live_visualizer`, and run non-interactively on a computing node." + "NB: This is a long calculation. In practice, it would be best to export the Python from this notebook and run non-interactively on a computing node, or to use save the setup to a file and use the [OpenPathSampling CLI](http://openpathsampling.org/latest/cli.html)." ] }, { @@ -48,7 +48,7 @@ "metadata": {}, "outputs": [], "source": [ - "old_storage = paths.Storage(\"alanine_dipeptide_tps_equil.nc\", mode='r')" + "old_storage = paths.Storage(\"ad_tps_equil.nc\", mode='r')" ] }, { @@ -125,8 +125,7 @@ "metadata": {}, "outputs": [], "source": [ - "storage = paths.Storage(#\"tps_nc_files/\n", - " \"alanine_dipeptide_tps.nc\", \"w\")\n", + "storage = paths.Storage(\"ad_tps.nc\", \"w\")\n", "storage.save(initial_conditions); # save these to give storage a template" ] }, @@ -136,9 +135,8 @@ "metadata": {}, "outputs": [], "source": [ - "# note that we can only close the old storage after we've saved the initial\n", - "# conditions -- this is because details of the snapshot aren't loaded until\n", - "# needed\n", + "# we can only close the old storage after we've saved the initial conditions -- \n", + "# this is because details of the snapshot aren't loaded until needed\n", "old_storage.close()" ] }, @@ -171,32 +169,32 @@ "name": "stdout", "output_type": "stream", "text": [ - "Working on Monte Carlo cycle number 100\n", - "Running for 1 minute 20 seconds - 0.81 seconds per step\n", - "Estimated time remaining: 0 seconds\n", - "DONE! Completed 100 Monte Carlo cycles.\n" + "Working on Monte Carlo cycle number 10000\n", + "Running for 3 hours 29 seconds - 1.08 seconds per step\n", + "Estimated time remaining: 1 second\n", + "DONE! Completed 10000 Monte Carlo cycles.\n" ] } ], "source": [ - "sampler.run(100)#00)" + "sampler.run(10000)" ] }, { - "cell_type": "markdown", - "metadata": { - "collapsed": true - }, + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], "source": [ - "With this done, you can go on to do the flexible-length parts of the analysis in `AD_tps_3a_analysis_flex.ipynb`." + "storage.close()" ] }, { - "cell_type": "code", - "execution_count": null, + "cell_type": "markdown", "metadata": {}, - "outputs": [], - "source": [] + "source": [ + "With this done, you can go on to do the flexible-length parts of the analysis in `AD_tps_3a_analysis_flex.ipynb`." + ] } ], "metadata": { @@ -215,7 +213,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.3" + "version": "3.7.8" }, "toc": { "base_numbering": 1, @@ -258,8 +256,15 @@ "_Feature" ], "window_display": false + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } } }, "nbformat": 4, - "nbformat_minor": 1 + "nbformat_minor": 4 } diff --git a/examples/alanine_dipeptide_tps/AD_tps_3a_analysis_flex.ipynb b/examples/alanine_dipeptide_tps/AD_tps_3a_analysis_flex.ipynb index b04661d70..0bb2f10da 100644 --- a/examples/alanine_dipeptide_tps/AD_tps_3a_analysis_flex.ipynb +++ b/examples/alanine_dipeptide_tps/AD_tps_3a_analysis_flex.ipynb @@ -13,6 +13,7 @@ "metadata": {}, "outputs": [], "source": [ + "from __future__ import print_function\n", "%matplotlib inline\n", "import openpathsampling as paths\n", "import numpy as np\n", @@ -34,15 +35,6 @@ "execution_count": 2, "metadata": {}, "outputs": [], - "source": [ - "filename = \"tps_nc_files/alanine_dipeptide_tps.nc\"" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [], "source": [ "# note that this log will overwrite the log from the previous notebook\n", "#import logging.config\n", @@ -51,26 +43,27 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "CPU times: user 46.1 s, sys: 3.84 s, total: 50 s\n", - "Wall time: 1min 16s\n" + "CPU times: user 1min 2s, sys: 3.52 s, total: 1min 6s\n", + "Wall time: 1min 6s\n" ] } ], "source": [ "%%time\n", - "flexible = paths.AnalysisStorage(filename)" + "flexible = paths.AnalysisStorage(\"ad_tps.nc\")\n", + "# opening as AnalysisStorage is a little slower, but speeds up the move_summary" ] }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -80,86 +73,59 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "File size: 18.19GB for 10001 steps, 961458 snapshots\n" + "File size: 18.65GB for 10001 steps, 985686 snapshots\n" ] } ], "source": [ - "print \"File size: {0} for {1} steps, {2} snapshots\".format(\n", + "print(\"File size: {0} for {1} steps, {2} snapshots\".format(\n", " flexible.file_size_str,\n", " len(flexible.steps),\n", " len(flexible.snapshots)\n", - ")" + "))" ] }, { - "cell_type": "code", - "execution_count": 7, + "cell_type": "markdown", "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "25802.1073791995" - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - } - ], "source": [ - "# rough estimate of total time\n", - "sum(step.change.details.timing for step in flexible.steps if step.change.details is not None)" + "That tell us a little about the file we're dealing with. Now we'll start analyzing the contents of that file. We used a very simple move scheme (only shooting), so the main information that the `move_summary` gives us is the acceptance of the only kind of move in that scheme. See the MSTIS examples for more complicated move schemes, where you want to make sure that frequency at which the move runs is close to what was expected." ] }, { "cell_type": "code", - "execution_count": 8, - "metadata": {}, + "execution_count": 6, + "metadata": { + "scrolled": true + }, "outputs": [ { "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "6d9ea6ac33644ce4a0bd7cd57a00a0c1", + "version_major": 2, + "version_minor": 0 + }, "text/plain": [ - "" + "HBox(children=(HTML(value=''), FloatProgress(value=0.0, max=10001.0), HTML(value='')))" ] }, - "execution_count": 8, "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "step = flexible.steps[1]\n", - "step.change.details" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "That tell us a little about the file we're dealing with. Now we'll start analyzing the contents of that file. We used a very simple move scheme (only shooting), so the main information that the `move_summary` gives us is the acceptance of the only kind of move in that scheme. See the MSTIS examples for more complicated move schemes, where you want to make sure that frequency at which the move runs is close to what was expected." - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": { - "scrolled": true - }, - "outputs": [ + "output_type": "display_data" + }, { "name": "stdout", "output_type": "stream", "text": [ - "shooting ran 100.000% (expected 100.00%) of the cycles with acceptance 5639/10000 (56.39%)\n" + "\n", + "shooting ran 100.000% (expected 100.00%) of the cycles with acceptance 5529/10000 (55.29%)\n" ] } ], @@ -175,20 +141,20 @@ "\n", "The `ReplicaHistoryTree` object gives us both the history tree (often called the \"move tree\") and the number of decorrelated trajectories.\n", "\n", - "A `ReplicaHistoryTree` is made for a certain set of Monte Carlo steps. First, we make a tree of only the first 50 steps in order to visualize it. (All 10000 steps would be unwieldy.) \n", + "A `ReplicaHistoryTree` is made for a certain set of Monte Carlo steps. First, we make a tree of only the first 25 steps in order to visualize it. (All 10000 steps would be unwieldy.) \n", "\n", - "After the visualization, we make a second `ReplicaHistoryTree` of all the steps, in order to count the number of decorrelated trajectories." + "After the visualization, we make a second `PathTree` of all the steps. We won't visualize that; instead we use it to count the number of decorrelated trajectories." ] }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ - "+BFFBBBBFFBBcorstep024578131415182324" + "]]>+BFBBFBBFFBBcorstep01481112171819202224" ], "text/plain": [ "" ] }, - "execution_count": 26, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" } @@ -368,7 +334,7 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 8, "metadata": {}, "outputs": [], "source": [ @@ -379,217 +345,38 @@ }, { "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [ - { - "data": { - "image/svg+xml": [ - "+BFFBBBBFFBB{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}corstep024578131415182324" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 12, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "tree.options.movers['default']['new'] = 'single'\n", - "tree.options.css['scale_x'] = 3\n", - "tree.options.css['horizontal_gap'] = 0.1 # True is the same as 0.05\n", - "SVG(tree.svg())" - ] - }, - { - "cell_type": "code", - "execution_count": 15, + "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Decorrelated trajectories: 2\n" + "Decorrelated trajectories: 3\n" ] } ], "source": [ - "print \"Decorrelated trajectories:\", len(tree.generator.decorrelated_trajectories)" + "print(\"Decorrelated trajectories:\", len(tree.generator.decorrelated_trajectories))" ] }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "All decorrelated trajectories: 893\n" + "All decorrelated trajectories: 846\n", + "CPU times: user 1min 22s, sys: 321 ms, total: 1min 22s\n", + "Wall time: 1min 22s\n" ] } ], "source": [ + "%%time\n", "full_history = ops_vis.PathTree(\n", " flexible.steps,\n", " ops_vis.ReplicaEvolution(\n", @@ -599,7 +386,7 @@ "\n", "n_decorrelated = len(full_history.generator.decorrelated_trajectories)\n", "\n", - "print \"All decorrelated trajectories:\", n_decorrelated" + "print(\"All decorrelated trajectories:\", n_decorrelated)" ] }, { @@ -615,35 +402,37 @@ }, { "cell_type": "code", - "execution_count": 17, - "metadata": { - "scrolled": false - }, + "execution_count": 11, + "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Maximum: 505 (10.1 ps)\n", - "Average: 82.10 (1.642 ps)\n" + "Maximum: 449 (8.980 ps)\n", + "Average: 84.56 (1.691 ps)\n" ] }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] }, - "metadata": {}, + "metadata": { + "needs_background": "light" + }, "output_type": "display_data" } ], "source": [ "path_lengths = [len(step.active[0].trajectory) for step in flexible.steps]\n", "plt.hist(path_lengths, bins=40, alpha=0.5);\n", - "print \"Maximum:\", max(path_lengths), \"(\"+str(max(path_lengths)*engine.snapshot_timestep)+\")\"\n", - "print \"Average:\", \"{0:.2f}\".format(np.mean(path_lengths)), \"(\"+(np.mean(path_lengths)*engine.snapshot_timestep).format(\"%.3f\")+\")\"" + "print(\"Maximum:\", max(path_lengths), \n", + " \"(\"+(max(path_lengths)*engine.snapshot_timestep).format(\"%.3f\")+\")\")\n", + "print (\"Average:\", \"{0:.2f}\".format(np.mean(path_lengths)),\n", + " \"(\"+(np.mean(path_lengths)*engine.snapshot_timestep).format(\"%.3f\")+\")\")" ] }, { @@ -657,7 +446,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 12, "metadata": {}, "outputs": [], "source": [ @@ -666,7 +455,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 13, "metadata": {}, "outputs": [], "source": [ @@ -677,7 +466,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 14, "metadata": {}, "outputs": [], "source": [ @@ -688,32 +477,33 @@ }, { "cell_type": "code", - "execution_count": 21, - "metadata": {}, - "outputs": [], - "source": [ - "# TODO: can we pre-cache all the trajectories, too? That might make this faster....\n", - "flexible.trajectories.cache_all()" - ] - }, - { - "cell_type": "code", - "execution_count": 17, + "execution_count": 15, "metadata": {}, "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "48a614f7c58f423682e8b13a43f44b05", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "HBox(children=(HTML(value=''), FloatProgress(value=0.0, max=10001.0), HTML(value='')))" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, { "name": "stdout", "output_type": "stream", "text": [ - "CPU times: user 7min 7s, sys: 1.74 s, total: 7min 8s\n", - "Wall time: 7min 9s\n" + "\n" ] } ], "source": [ - "%%time\n", - "path_dens_counter = path_density.histogram([s.active[0].trajectory for s in flexible.steps])\n", - "# TODO: for the real thing, run over *all* steps -- just takes 10 times longer" + "path_dens_counter = path_density.histogram([s.active[0].trajectory for s in flexible.steps])" ] }, { @@ -725,17 +515,19 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 16, "metadata": {}, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAAD8CAYAAABn919SAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAABDwklEQVR4nO29e5QkV3Wn++2IyEdVdVX1U8/WEwSyzAIZZGEbPwCPPZIAC2zPNfjBMjbWxUbGzL14bM+sYe6Ml++1L14z2DMyWrJ4mGUb7AsIs2wB5toXY/OyBEiyhAQjxKv16m61urrrlZkRse8f58SJk9lVXZnV1d2VVfvrlasjI05EnIzM+sWOffbeR1QVwzAMY/xJznYHDMMwjI3BBN0wDGOLYIJuGIaxRTBBNwzD2CKYoBuGYWwRTNANwzC2CCMLuoi0ReSfReReEXlARP7zCm2uFJHPikhHRN6ywvZURL4kIn+93o4bhmEY/WTr2KcDvFRV50WkAfyTiHxUVT8XtTkCvAl45SrH+DXgQWBmHec3DMMwVmBkC10d8/5tw790oM1BVb0L6A3uLyL7gZcBt4/eXcMwDGM11mOhIyIp8AXgmcAtqvr5EXZ/O/DvgOmTHP8m4CaAqampFzz72Veup5uGYWwzvvjFLxxW1X2ncox05hLVfGmotrp06OOqet2pnG8jWZegq2oBXC0iO4E7ROQ5qnr/WvuJyMuBg6r6BRF58UmOfxtwG8ALXnCNfvrzd6+nm4ZhbDMmGvLNUz2G5ku0nv2/DNV2+Z5b9p7q+TaSU4pyUdWjwCeBYe9QLwJ+TES+AbwfeKmI/Omp9MEwDGNjEZBkuNcmYz1RLvu8ZY6ITAD/CnhomH1V9bdUdb+qXgq8Gvh7Vf3ZUftgGIZx2hAgSYd7bTLW43I5H/gT70dPgL9U1b8WkTcAqOqtInIecDcuiqUUkTcDV6nqsQ3qt2EYxulD5Gz3YF2MLOiqeh/wXSusvzVafgLYv8ZxPolz1xiGYWwiZFO6U4ZhXYOihmEYW5rtYqEbhmFsaQSz0A3DMLYGYha6YRjGlmETRrAMgwm6YRhGHzYoahiGsTUQzOViGIaxZTAL3TAMYytgLhfDMIytgQCpDYoahmFsDcbUhz6ezxWGYRinjY2rtigi14nIV0TkYRH5zRW2/4yI3OdfnxGR50XbviEi/yIi94jIUDXEzUI3DMMYZAMsdF/A8BbgR4ADwF0i8hFV/XLU7OvAD6nq0yJyPW4eiBdG21+iqoeHPacJumEYxiAbMyh6LfCwqj4CICLvB24EgqCr6mei9p9jjaKGa2EuF8MwjBiR4V+wV0Tujl43RUe6EPh29P6AX7cavwh8NHqvwN+KyBcGjrsqZqEbhmEMMnzq/2FVvWaVbSv5bXTFhiIvwQn690erX6Sqj4nIOcAnROQhVf3UyTpjFrphGEYfGzYoegC4KHq/H3jshLOJPBe4HbhRVZ+q1qvqY/7/g8AdOBfOSTFBNwzDGGR4l8vJuAu4QkQuE5EmbtrNj/SfRi4GPgT8nKp+NVo/JSLT1TLwo8D9a53QXC6GYRgxG1QPXVVzEbkZ+DiQAu9S1Qfi6TqBtwJ7gD8Sd4PIvQvnXOAOvy4D/lxVP7bWOUcWdBG5CHgvcB5QArep6h8MtLkR+G2/PQferKr/5LftxD1ePAfnT/oFVf3sqP0wDMM4PWxc6r+q3gncObAunq7z9cDrV9jvEeB5g+vXYj0Weg7876r6Rf9I8AUR+cRAbOXfAR9RVfX+ob8ErvTb/gD4mKr+pH8MmVxHHwzDME4f26Ueuqo+Djzul4+LyIO4UJw4tnI+2mUKP7IrIjPADwI/79t1ge46+24YhnF62I6p/yJyKfBdwOdX2PYqEXkI+BvgF/zqy4FDwLtF5Esicrt3+BuGYWwOZONS/8806+6RiOwAPojzjx8b3K6qd6jqlcArcf50cE8EzwfeoarfBSwAK9U3uKkK1D90+NB6u2gYhrE+NibK5YyzLkEXkQZOzP9MVT90srY+EP4ZIrIXF5d5QFUri/4DOIEf3Oc2Vb1GVa/Zt3fferpoGIaxbkRkqNdmY2RBF/cp3gk8qKr/dZU2z/TtEJHnA03gKVV9Avi2iDzbN/1hIt+7YRjG2cbNQDeegr6eKJcXAT8H/IuI3OPX/XvgYgghOT8BvFZEesAS8FOqWqW8/irwZz7C5RHgdevvvmEYxgYjgiSbT6yHYT1RLv/EyjUK4ja/B/zeKtvuAVarfWAYhnHW2YzW9zBYpqhhGMYAJuiGYRhbBBN0wzCMrYCwhlN582KCbhiGESFszgiWYTBBNwzDGCBJNl8W6DCYoAOqmzLpyzCMs4RZ6IZhGFsB86GPF6NY5FU61JjesA3DWAdmoY8Zg0Idvx83EV/tBmWuJMMYHRsU3aQMClqp9YTbEj1TlaokvmHcRrVuFx9rteUzQdS9cN5xvAkZxmZm26T+jxOx0Cn9Qu3n3KBXaN8UgqXWbQUhSer9ytL9n4j0CT964pd/OoS175RoLeIDDr+y9P0X6dvndPbNMLYMYi6Xs06f2MVWtv9fgKKs1xeD1rrfptTjISWKFvVx4u94Jcu/qtJWrYuFtrpJJJHIDv5mquMkJ/kxhRvTgLhXp9IyWq8a+hMvG4Zxcsb1b2XLCLphGMZGYYJ+FlHtd6mUkZulsoYTETq5M1/zUmmk7gvLC6WRJnS8P2XQOq7eK7WfXUTJfOKBan3mRASp3DWykpvHWf3ByI4eBwZ9+sF3P3CM8PQQfeY0EfKiPm9sxGdJvVx1wvn9+58e4s9t/nhjO2ODomeBE3zDlWBq7XJRiIROWe55/wkS2hSl0snLcLwsrcWxmdXLjTSh1XBf8nKvpBVduTCgGol1ItI3aFn9POJ+l6qI1jeJJHKPxC6hOGktdhuFRa1vXPH2NBHyyp8eXao08Z8/WrnSYKthbFvG9G9gbAU9HvDMy9px3Ms1+KLzUoNw54XS8+Lc6eU0G4lfLunlZZ+vvRLBiWZK6ke7hYK0U3/LRTMFCNsBWlkSxHDQaq7EOi/Lvn3C4KpCKfVyn+8/8uP3ivqzRh+7FvLIQk9ToTpVLNiNNHGi7vdJU+l7EiDcZDCM7YdY6v8ZYzDSwy8EES7KSNALJfcC2M3L4HJZ7BRkXadWiQidXsGyb7eY58w2GwD08jI8ejUjsZ5spSx2nMqmidCKbg6VWKuWQdCzVMh9n0rVIMSNVOj6PolQu3Gobz5ZUkfUlGUt3EninhSqPlQ3rkQk3Dw6vTIIeiOt+98rSkoVstBXE2/DiDGXyxmg1Mh0pY5UySM3A9Sit9QtgvXe7ZVBAHtlydFO7trkBakIc92ea1eWLPTctokspZU6S7xdpLS8QzpNJCwXpRNOcALt9ZluIbUlXkRx69Q3ouVcg6gWZe0SisMie5E7RaPPmudluDH0ijLyuZek/mRJIrVbhtqcTwdibBPtX1eFaqpGYwgm+sZ2Ykx/62Ml6IZhGGeCbWOhi8i7gJcDB1X1OStsfzHwV8DX/aoPqep/EZFnA38RNb0ceKuqvn3oc1P7ektn6gZCBEtRBqs0SWBpuQht5nvOCl/KC55a7gIwt5zTzhK+caQDwK7JjGTKte8WJUnirPVWkjDtXTHHuz12NNzyVDutreNGEn4IjZTafy21v1sVSOvBT9XKt67BKOgWJc3qCaCoXUhFqSSRm6R6EnGRNhodn3DM2PJupPW+8VNNltVt3ABu7UO3iBdjuyGyvaJc3gP8D+C9J2nzj6r68niFqn4FuBpARFLgUeCOdZwfcGKZxxEjZeVzToLrYqlbsNh1y4t5zqFFJ9pHl3OOex94ocqDTy4F0ewUysF5J/xpIpw37YS7nQlPd9z68ybbTGWu/cJyQVaFQJYlE43UL0OjTHxfhbQKH1TIS9c+SyUMcmZJ7U9PRVjy/S4j4U0SCZ+tKDUIel5oENxEhG5R+9OrNlkqdN29iTQRJhppHUqpkETDsNo3JFv3e0x/44YxMttG0FX1UyJy6Sme94eBr6nqN4c7p/tfJArVo5abIrJEl3tlbX2qE3KAQ4sd5rzffDkvg7X61ccXKVXphQHTnIVl127PdKsyprl0d4sdXqxF4Lj3s2eJMJ00Qj8rUW5mSRDjRqO+42ephHPVUevuYSOJrOlqSaQW+iIadO3mZfDdZ0l9/CR14wUAjSwJ7Ze6RbjZiLgbWUrtv5dU6vMGf7+atW5sS6yWSz/fKyL3Ao8Bb1HVBwa2vxp432o7i8hNwE0AF118cX8hLN9GqQdFlf7464rlXhmiRZJEmPdW+eHFnKOLTpC7ecnRhS7zS8767vUK9p+zA4CDc8v1AGuv5LI9LdemVPbvmHTHFVjyVnOjlBCpAtDyAlqULs68+gyxyFYRMsvdOnRSdbCcgFufFyVLXQ3LHW/dt9Lavm6Thj6XUZRLmtTWuoiQNaRPmMPAq2gUtlhb6y7Z4oRLbBhbko2y0EXkOuAPcI7Q21X1dwe2/wzwG/7tPPDLqnrvMPuuxOkQ9C8Cl6jqvIjcAHwYuKLaKCJN4MeA31rtAKp6G3AbwAtecE1cmiUIV1wcq8/9UNaWa1HWvuVDC12OLjnhne8ULHn/Q16UHFvo0vJx5QcOzIXj7phq1sIqwuNzvbCt1AUA9rRb4Rx72i0a3h/diMIci7IOn2w2khV9/1mSBFWN4+dLJexbRk8AQIi0We6VfXHk1Q0jkfh61ctZKn1JV42sfvJJVGJPy4p1Zcz9YmxpZGME3buWbwF+BDgA3CUiH1HVL0fNvg78kKo+LSLX43TvhUPuewIbHj2vqsdUdd4v3wk0RGRv1OR64Iuq+uRGn9swDONUqZ6Kh3mtwbXAw6r6iKp2gfcDN8YNVPUzqvq0f/s5YP+w+67EhlvoInIe8KSqqohci7tpPBU1eQ0ncbesfEz3/0C2ep0pWpR9LpfKiu0WdUp/r9AQib3YyZlbcFEuh48ukaYJ3/r2XDhmr1cnDU21nX+8KJWn/UBlr1SetS/xy2VIGlouCqRb96/tXS4kzmJ3J3D9Ahf5EiJhstqyVjS0ESQsV9uq/lRPIs004akld+LJRhrcTOdMtki9bzxNogHYwmWQVu6hsnS+9/qCV9dXia947H4xjK3LhkW5XAh8O3p/AHjhSdr/IvDRde4LrC9s8X3Ai4G9InIA+E9AA0BVbwV+EvhlEcmBJeDV6v0HIjKJe4T4X0c9b0Wl232lcEtCmF83L0PUyZNLyyz6wcs0ERa8D/3p+S5H550A7phq8sST8yF0ryjg0CHnTsmyhEe8WF+8bwetzKneromM5bxOUpptOdFvJEkUStgfoVK5NxQNiT+NTKLSAvXgZ17U/pFeWdZuFq1FeK7TCWMIc91euDHMdXpM+H4u5yUt/xDWSKNMVO0vaJZGfn8lrvteX/c4nNEwtjrJ8IOie0Xk7uj9bd5lDCunJ5042AeIyEtwgv79o+4bs54ol9essf1/4MIaV9q2COwZ9ZzR/n3WeiWeaVLHVS92CxZ8NMuOLOOIt1wXukUIBezmBYW3Vp88uEy7nQVL/qmDh2m2mwAsL+dM73ADod8+vMDVF+8E4OmlnEKdaO5u11E1k400fA1lqWGwtJWlod/BascJauGFfrKVhCxTVe17yqjaIIQImWaaBP97K0044uPqdzT6v9L5bh2NU9088gKyRMNNUFEaXtQlKipm+m1sS4Zzp1QcVtVrVtl2ALgoer8fFyjSfzqR5wK3A9er6lOj7DvI2GWKhrjqqPgVuHos4ARvsYo6SSVEgjy1kHN00YneUqdgbm4ZgE6noNcrmHvaWeWNZiMMSD59ZCkI/fR0i695y/3CXRPBrXG8m9NIqzIAtUgu52VdqEvqmjDaqEVcpBbZ40t5aFOoBlcJBSzm/vMkCcd8iYJSNZT8XejlwS3TKUp2+SeG5aJguum+4m5eBrdP1pC+H22a1OGTYxqtZRgbhjCShX4y7gKuEJHLcHk3rwZ+uu9cIhcDHwJ+TlW/Osq+KzEWgh7C7ahFKC621c1LFquolVKZ9rVtn5hfDu6NUqFb1UpJJHxhSSIcP7YUKg/mRc6+82YBZ6EfPboEwK5dE8wvOzF9/KhwxbkunfTIYgG4G8XOVoNmz9d+yZLgoonrr3fzMrg+XGx3bX2HwltRLZcsSUK9l8U8p+tFvJkkNPz6RiL4hw+KUjnarROjqt/ldLMRkpKqp4TKI9QrlGZa/4CDdRK50AfL6250TPpKU+WdbixS50TOxvewEWz0d7kRx1PVXERuBj6OCz18l6o+ICJv8NtvBd6K81r8kTfoclW9ZrV91zrnWAi6YRjGmWSj4tB9pN+dA+tujZZfD7x+2H3XYtMLep/BIJBQxVgL7UaVWg/LPW/1osxVSUJlGZKJilKZmXS+8eNLPTp+/dJih7IoWTjm3CndpSW63h+tqpxzoXP5Hz26xKKPVZ9oZnz98CIA33PpbHCzPLGwzJ6287m30ibL3mxuN9MQYdJqZHVse/Th4jotRaGhPG8SZceqwoSv/vh0txsGXZ9a6jHhr8V8t2DPZB2ZU7mc6PbYO9nqu7DVTzZL+mvkVNc4nnVpMLFoM1pEo3I6rdFxtf7Htd8bymg+9E3Fphd0iLJDtY4WyaLMRyBkXJZaBPdGM62jN9JEgvD2egV79kwA8D8PHiXv5fS8m4Ijj7EoPhS06HFssg1At9tm5063XJbK9IQTzS8fXOLKc9z6Xe1G8FlnUenaXl4y0YzS7qNBzipyJEuT4B7pQkhQWugUoXzBQi+v66qX9axGU82Uo0uuzXQrrcMiG7Ds/e9p5K+vwhHrsE8N59MBN0u49lKX8d0K0S4niyPeCKE/1WOMq6BsBQSxCS5OF85v7i3XsgzTsZVl/aOPZwRKEwmCM9fpBSu+3Uj41uGu31f59ree9ssl3U6XpBrYnNgBRx93B57aRWfJFfSa3jnFkaecVT411Qxp/RdEA6SNRDjs2++fngz+cUmSoIyJCL2owHldtEtZrOq1R5EtIu5JAyBXZW65GhSFwwt1BEscn753h7vZdPKCGV8hcle7GfrQzBKSpLa4m1l9M0lT6RPs7Sgsp+Mzjyrw4+rLPhucju9rXH/3m17QIYrGEOmfa1Mq10AtTrHQTzYyvnnUCexCp6gjUJZzCj9AuHh8EY4+AS1Xm4XmJMm0c7OU3WVaE85NcfzoAjtmXZunnlpk1oczPtVIaHvrtpUm7PbujqOdLm3vHmk2kiDQXamjXwRCdE6aSnChlCXBVZKXddz6RJqCexjgyGKPc3a4r2+hW+IjNdkz1QjXp5EmTPkwxuPdXvj81bWrqy1qeJoQERKpo3A2WljG9Q/lVNmun3tc2TbVFg3DMLY05kM/vZQrmImK9s0j2hdW5//vlWXI6OzkZQjby/OSheNuEJTuEmgJR31pmXMvp/TLzX0X0u04N02z3Qzn2LVrIrgoilLZM+Uu46Wzk+Tqznesm9NoO4t4oVME109RavCnd6JY9bKsO+6yMk/87KnU6fu9UjnqJ+8QJHzO452Cne00XIcl70OvskfBl9JtQdOviytAllqX+UpPQ3ZonKF6ptkKvn+j5nSJbuzmHTc2vaC7MTovNmiU7VhXJBT667pUyTdHl3shymW5V4Q650lUhjCZmIpm28QJ/NQud25VFh4/AMDSzB527XFldScnGiEb9fJzp6kCSTpFEdxACbXve7EoaKQuwqbVrAct49/Mcq92CTXSepKOiSzlySWXBFWWGmq6H13KmfQ3ieOdkmZWC/Ix/5mzJGG3v6lMZmldZkDcBBfxzE7xGFBwZZ0mARxXYR3lRnQ2P+OYatGmYlyv4aYX9DiZCK0nZO6bwJha3AFScerUyhLaVY2XXsGM92/PNdNQwL7sdiFrQsvPO3fsMM2LnuX2OXoYJncCsPf8vSHUsdMt2DXtfOhPHF3iHD8I+ej8MhfPuOiZotSQdr+73Qo3kG40uQZRxEsrKqtblBqSjxZ6ORf72uvfml9kqlnXWH90zj09TDWTcENrZ0k4vgDzvpbNrolm8NG3JxLyUkP53ZjYt67SP8HFdmccb0QbNQay3b7/DcoUPeNsekGHKCuR2jXQycu+P68qVb5XaMisTEXY0XICODvV5Emf9ZmmCRNTTng7c0eht1wPhLamnJADPPE12H8VAHkvZ8oPhO6eaTHhwxPPnW0H90s7q4V1Z6tZF+FK6sHcFGW5V0ewVCLbkjS4Zbp5GUIVlTqWfHeryaO5+wyL3ZJdEz6tvyhDpmdeahD9ZpqQ+Ztbp1cyO1nPrOQiW+rrFIQbkPGM2DJWYFyFeK0b0Wn9XGIulzODEKXE15ZkKsKin2C0mSU8seBEr5kmtBv1F1P5n7vdgqwS5GdcypNf+wZl7uPQOwtw3NfH2XW+s96BY0eOBZfLscUeu724H1vqMeN91jOF1m6WPOecCReSkpcafOtFT8NUcBPNNIj+cq+uqigi7Jtyx1/qFRz1oYpHO12aSfX0ESf6JH01WOa8aylv1kW3sqiB4It8eQu9KUmUWCQnVFk0jDPN2fzd9XkFxozxEnTDMIzTzobVQz/jjIWg1z50qadEk7qYlVIXv+qIc3cALOZ1tcQ0ESZ90a5OJ6fp28zPzUNZuMFQcMvVTp1FWDwKwOz5zySvaqD3ihBhs6OdsdCtY8YXvM+6WyQs5y6SZkejziCdbGRhSjmo0/rzogxuGaEuztUpymD1t7OUTsdZ67sms+BDbyQSasAfXSq4dJez7rNEQnRLs1FPWi3i2mdR5mjlsoqnnLPkFmO7MqZ6Ph6CXhHXQ88LDaI3OOdo9T6ecCIvNExqMTXV5Omn5gFcJmiSMnv+eQDMPfoo7HLLHD8SDjY/N0/DZ10WRckxX4q3KEqyaeda2T1RJ/WI1DXaRerwwcVewYWzzn/f7ZXhJoMQ3COlKovdOmW/Wr+YF8xXZRWB86b9YOxcl4ZPYjp/phHKB083MyYzd/yiVKaDD13JC608LpQKGXXqf5yBaxjbDrFB0dNKGY2KilaWZC3cE82U5V412bKEQcHjvXp0b26xG76kbrcI5XI7Rw5B2mDu8FHXMEldXDrQuOByGlVt8YXlEEmjWpegvfL8HRyad1b5gblO8KfvaKbs9hNltNO0bwCyiOLnq7K/Qp0peqzbC6KciISnj6IsuWja3QwePDzPRNN9vt2TWRDfpV7Jvil33oQ61C6Rumb8TFS8C1zd+HqykHpswgTd2I5YHPppJI5DV7RPZKrlTl7XeOkVGsRwrtsL4n7u7ERwdRwSQtgiaQMabXjKxZvTaMLsuQAUeRFqvGTNjLa3wPO8ZN4PPD7w6HGuONcNljYz4fwdzlpfynN6XiSPdrq0vAU9kaUh9FKEEKqoUfr9bKtJMynCZz7o68N0ipL5nlveM9UILpfzphuhnsyuyYyOfxoQkRC2ONXM6kk2VOsng3Cdq5tMNM9ptH0cQ/a2E2crWetMcDZ+e9tG0EXkOuAPcEXXb1fV3x3Y/uvAz0TH/w5gn6oeEZFfA34JdxP8Y1V9+5rno9+HXsmMSDCkyYsyfOlJUif0TKQpIs7nvNjJwxR0c3OdINTp5A6KxXnY4ZKJZGIa7bgiXNnMLJ1jx9xx2xP1dHGTjVBtsd1MObzgznHF3jZzPrN0IktDP2abjWD17p1qBau8LOvok6l2FvrXSJNwgzq61AsVE3PVYPUfOL7ElLfQF3sli96PX6iGUrqzrYyW/5y9or7p5aVzV1UzLcWFuuIyubH7xdjcnA7RWylD+2xwNm5W4/q7HyniWERS4BbgeuAq4DUiclXcRlXfpqpXq+rVwG8B/+DF/Dk4Mb8WeB7wchG5YgM+g2EYxobiCv6t/dpsjGqhXws8rKqPAIjI+4EbgS+v0v41wPv88ncAn/MTRSMi/wC8Cvi/hz25UrslymiANBEh9wn8rSwN1kozTUKJ2f27Wix5y3hmpsXx427fqZkpjnW7IcpFEkEbzm1S5AWz550Tzl9Fghw+vMC+nc6XTRcu3+uWG2kdSVICM35AspEkIYJlsZuH/k20kpAROr+c90WYHPWTdHSLkp3ej394qcMjT/sSvs2EVque1KKuAS+c52u4SzTQGvvGqxj+agq/iWjiaojq4ohFuhgnkmxCIdtQZHwt9FEF/ULg29H7A8ALV2ooIpPAdcDNftX9wO+IyB5gCbgBuHuVfW8CbgK46OKL60e/yAWQioTJHrJUWK7ygvIi+M2PdrrBLfHkfI/UuxgmJrIwV+jkjkmOHTwMTz4C+MfMvW6y7SJrMtf184Wes4ennjwKwFXP3V/PRjSV0vVJTb2iDH2aSFKWijpSpRLlotSQEbrULUBdm7jE7mI3D+GGrTTh8UVXy2Vnq0k3qpP++DH3oZ+xux1uGMtRlunOVjNM8pGIhFmQACabWci6jSe3PvG7WHG1YWxZ3AQX4/nDH1XQV/qUq9lwrwA+rapHAFT1QRH5PeATwDxwL5CvtKOq3gbcBvCCF1yjdc2WaFJlauuxLCGvJoEotM+CqAT94LEOi526OFc1I8ljX34ImpNwzqX+YIV7+eXmhLO+kzRhx6Qb/JybW6bprdqpdhbCB493ilBqYCkvmPQRL2kiwbqXUvomaw73qmimoJS6VMB8L2fa1zR/arkTBHZHM+MZu93xF/OCKd+fXvT5m2ldiqCVJbSbdRXGTl4w3a7DLEOhs+jamZgb25VxfQoZVdAPABdF7/cDj63S9tXU7hYAVPWdwDsBROT/9McbieBmSYSiVyX0lGFquk6v30I95CNEgOByaTazMJ1c9/LLOfzNb5NOu0HR9mSbpXlnvZfLCyEapsgLyoY7344dTaba7tJNNdMQzbLQLUIZ250TGYt+MHO22eTJBWdlnzvVpin1QGXlcmmkSUgO6uYlebcOW6wGRc+fmuCgt9Y7RRkGPI93irB87o4WO7yrZ76bM+NvNkkiobTAdDujVEI0TJYkJGEKOh1b68QwNoox1fORBf0u4AoRuQx4FCfaPz3YSERmgR8CfnZg/TmqelBELgZ+HPjetU4YJwq5MD8vsFoGASw0qS3XdkYz91b5wnJwK+ybboVY66/NzbGw4FwpuQ/rK578FgALU7Nk0zsBKJsTtL0/uixKJvwk08vLeRDHNBEWvPj2CmWm7c63o5GGsrzLeRESfI51euz2syAlWhcS6+QFS93qM9cukBmpregqHBNgptkIj0ZX7JrieM+5XybSNPjTW1nmarb4a7e7ik9PTswKDXHoUmepjquVYhingmyX4lyqmovIzcDHcWGL71LVB0TkDX77rb7pq4C/VdWFgUN80PvQe8AbVfXpU+u+YRjGxjOuD6kjx6Gr6p3AnQPrbh14/x7gPSvs+wOjni++roOz3YTJJMRFtwAsdPJgYbbSNAwunrOjwbf8JM87Z9ocPOjuNWVZMrV3Lwsdf+9ZnqeYmHbLR59g0af7z+6dDREs3W4Rsi4Pz3dpJM7iXuyVTHsf+nJRhvk8oY43P9bNg78/jayAVITC2/TNtI6Kycsy1IHJkoQ9pbOyu1GNlycXl8O5StWQZNTOknC1BGHejyFMS4N2IwluqiyFRlQzNyRyWRy6sU0ZV7fjps8UhQFR8S6Xepi0P6mimSUcq0L+yiLUUAGY9S6TpU7O7t1+Ioq8ZO6pOeh6X7uWpP4mkF1waXC5iAizs255ZqbF5ec60Z9uZ2G2oB2tBrsm3SXNS+Xwojvm3t2tcPPZ2WrWKfeNWribWUKzUYtqJbbNLAkJR6p18a9UkpB9urPVrJOYWo1QYrdXKju8r1+1Dk8sSiVLJbijkr6BUDERN7Y1wvhmRo+FoMfUg6KEqd8UDY9IpSqT3qJ9utPl8WPOMZ1GQrXULehVtV8aKRM7JuieezEAjWaDnp/Cbvnpp9gxewkArXaTnrfKi0LDTeO8mVaYFWn/bItGNRMSsOj7PNftMt1ohP5P+OUk6tNEK6Xr+9Qr6ixO1Xr2ojQR9ky6p4GirIuTTWuDIx1383AFwby4txuhTSNNgl+wmckJBbnCBBzROIUJu7FdGVMDffwEPSaUY0mErIoxp57WbSJLucRHszxyZDm4TPZMt1jygeuHDx0nSRLOv8RVWOx1cxaPOymWmSlXjRG45LLdHD7s1u+dbQcr+4ljHWZ8GYDzphuUXgynm40woUYrSZmMrOPqt3J0qcus37eX166kOC5cFRpZ9VRS/8qStF4+1umxp+2EvleWoX5LI0mChZ6lEkITi9IVAiuTerKQMG9rCanNWGRsZzZpFugwjJ2gVxEviQidsp5ftLr+y70yuBLaaRpcLmkCU74g1VK3YMbPODQ51WZiImPZF9taWO6Gc7UmWuzZ62cpOtah7cVxuVuwa0fzhL4dXS44368/1u0x6/3veyabISqmmSbMTjV8n2q3h6JhwGCimYZCYs1GQjtxN4OyVBZ8ctBUOw03gaksCxb2bLtBs+unnStKZqoqj9G5WlnS5yOMQuD9GIX50I3tzbj+7sdO0A3DME4nwviG7I6doIdJLUqCnzlNNAwiNlIJkzAnIpw/5cvZ9srgcz+y0A3VEnfubKOqLC72wjn2nb8TgJmZNvPzzuXSbGacu28KcBUW9037WYFSCZmivUJZ8E8EzSShU9QDstWAZJJI8JU3siREvySJBBdNkkDpc2i7eZ18lCTClI+i6eX1uEGrkYYKjnGt9rQowzGzQvom2G4iJD6yJVEJE0P3D5AO5AAYxjbBolzOEJUo5UU0e1GuoTRsq5GEAl7T7Yw5P2XbvqkmXznkSuHunmpy4IjzhzebKb1ewcxMK7yvpprL85IFXxp3z56pIJS7ppohqemSna2QyLOcl7SiSZmrUEJVaDWr1Pwy+MfzUkNkS1H011Np+fVZWmd4qtYFwoqyzuhsp0KS+On1emVwLZVlnbjUzctwvSabmZ84ox5sjdEoesiE3NhuyDYqzrVpSBMJ8dwisSjV82vOL2soTgVw+W4n2o/OddnpQxiPL/UoWxkdHxrY6eRcfqkrA/D03DL7988CMNnO2BFNMbfDC/Rir+TCCXes2VYWLNx2mpJ5s7eTl4gvW9NupmFyjNmpRrC+i7IIcendouyrcjhRnatTBHFvZEk0nlCHOZal9s0+VMWkT7bScENqpE6og99cCTfEeODVfOjGdmWjXC5DzB9xJfBu4PnAf1DV34+2fQM4DhRArqrXrHW+sRV0kToxJ6d2ubQaSZ24k0gQ9Ik05fxpJ7wTjSTM9nN8uceR4x2mJtylaDWnw4DkzHQr3BwaacJ5s+6GMN8pODTvLPd2IwlRIXsnGyHaZLbVCHVX9k62guujl5fB3ZOKhH3TREJ0TpYk9LRqr+6ngBvMrMS61LogmSB91n1lYU800zBYmkQp/aUPhazuGYn0C3k8wYVhbEc2Qs6j+SN+BFe36i4R+YiqxuXGjwBvAl65ymFeoqqHhz3n2Ap6XJ2wkSZBMOMvohlZsb2ypFsJdSvjqYbPmmw3mG43gvB97bFjwZVx8Tk7OOp96NMTDeZ9hMlMOwtVHC+YaQa3xkSWhqzO6XZGO3M+915RBhfKVCsLLho3dV4dzli5U1IRvCHeN9l0UdaVFJU4Vh2kcjNNZMwvuc/WQ8O5SlVSqdvnRRludqXWNdCz9ERhN4ztxgaFLa45f4SqHgQOisjLNuKEFnFsGIYR4aJchnsBe0Xk7uh1U3SoleaPuHCErijwtyLyhYHjrsrYWuiDERhVFMlyL7I8M4KFum+izUTm3CSPzS8Hd825M00OL/QQbxGfu3uCBe/jbmVJPXdoNKtPOxOW/Bye082Mw4t+EoxWg45/Cuj2yuDSaDfS4ONvZkmwuNOkro2eF7W/X6SO4ClLDSV8y7KoM9hEgv+9kxfhyWS5W4bHlNjI6OUlnepJopmSRVE1rSQJ/StVV3S/GMa2QUaa4OLwSXzbKx1kFEfmi1T1MRE5B/iEiDykqp862Q5jK+hQ+31FQrY6WSp08tpXXEV85GWvz61Q1S2fbae0IpGNw/6OzHdCBmojS9g1URXAIsxM9ORChz1e9CezLEz51inKvunfKmF0YYiVX17w0YbOj11F7ZT1mICrT+7Wp6mE9YlICIt0tVmq0Eal7Wu8iLjMT3A3kspdI7hiZvFMUKtNcBH70U3cje3CBrlcRpk/4gRU9TH//0ERuQPnwtmagh5XXlSt49NF6hHqeGb76VbWF/GSz7r2Dz+1TF5o8Fk3GwmPH3UhjZfs2xEKY6UiLHirfM9UFmK4UxFmm81wvq6f7WjnRDucKx6wzIs69X+pW/vWE6nn+JxqZiT+kSERCZUdm2lCURShvVYCHVdtTCQMnKJ1FUpVDYOoSsJyrwjXJkkkqsrYj4m4sd2oXC4bwFDzR6zYB5EpIFHV4375R4H/stZ+YyfosZslnr4ttiQr98FMuxFm+4m/oKlGFsIOn3feFF94dJ6dE+79Y0fzYKEvdvIwKUQ7S5jwA6F7JrNgZe+frmcRumDHBM0oTb96bDshxd/3tdBa3LNUQjLRcl70JSJVOxRlHcK43Cv7bhSV60aoa9k0G0m40fXyMuxb3QA1HLeO6Y9viIaxXdkIC32Y+SNE5Dzc3MozQCkibwauAvYCd/h+ZMCfq+rH1jrn2Am6YRjG6WajTJq15o9Q1SdwrphBjgHPG/V8YyfofTHSkVVeWaJZIsGN0cvrcDylTuedamQhi3Ou0+PKcyb45tMuPHGylfH0gk/3z1Iu2+Piyg8ez0Oo4s52xoK3iA8tddjZ8lZ8mkYDm7XrQ9FQdqCMpp1rpkkIpWykSRjAFSGKN69DFUvRYDm0G/1+/zjbs5HVn7+q1T7RSsMgaqlKJkko7pUltVUeu6/GNf3ZME6F/kTF8WLsBL0ijs8mEjQZGMlre3EX6mxKcO4RcCJ8YH4p7HLBTING6iosLnaLsP6inU2e9MlEC70iCOC+iVaIbElFglujKLQvMiak3UfrFEiiyoaVCyVJqOcsXWWOz1I0fLZS6RtEra5FURbBFTPZaoYbRpa4uP0q5jwvy1D2txnNchTfTAxjO7FtyucOkcoqfvsNuDkefl5VvzjMvqNQRsLVb6lHWY+RRYvUg6iTrZRDPmGoUOXCqYmQELToa4kDnHPeRAhPbKbC1X6WoiOdbgh7XMwLzvUDoFVEDbiCWVUhrW5e9mWcVt3Li5JuXmV11uvTRMIkHUu9+qbSbiQsBV+5BKvfPZFUU1LXkTBZIuFpYGE5Z8L3RzLpE+6iVFJvyXfzklZ1YxnTH7VhnCrj+tMfSdCHTGW9HrjCv14IvAN44ZD7rslK1mpeagi7ow7495EgbjkVYeekCy/s5CUXZs5C7+Uly72SdtdXKJwUWpmLcrlseoojHRdj3o3mCD1vql0/HVDHjIvUA5KtrI5lnWpnfTefEIWCMN1OQ59aXlTdjEWuRTNNyH3Ey3KvqAdCtY6Kia3yY4s9pqpp50hC2KLS/8QQ00jrdq1oGjyr5WJsRwQZW2NmVAt9zVRW//696hT2cyKyU0TOBy4dYt+TUkaulHg5SQjKrdBXv6TKhW016joo7UaK+Dpbznou+0Ign7lzR9h2ni+/28yi+T/TJBS96uYl7WZVYEuZmYyml/P908h1IYmQ+r4mSe0qaWW1hd5K65IFjQzKXu0374SoHWHGx8X3ijIUF5to1fHl0+0sPGGoaqhRk6VJn48wjpOP3VKthlj5XGP7IeP7ex819X+YVNbV2gydBisiN1WptIcOHxqxi4ZhGKeG+Gno1nptNka10IdJZV2tzdBpsKp6G3AbwAtecE1os9pjUJxkBAS/cTw3Z6dXImFQUIK7opEltJtpNPlDXcY2mahL8eaFMtusXRZVdErWkyg5qPZZxyn+iRAiTOIx20YmVIdczsu+WPk4Fb8VBnYlGvDUevKKJGG6XQ+uVgOqRalMtuq4+PizxBNDZ4mEz5xlEiz5vKj3MfeLsV0Q6kqu48aogj5MKutqbZpD7LsuROo7Q0IdFdJIkyD0raye+MLVSvGiLT7V32+b0rQva7L6Xhtp7bJJEqHta9oWzTopJ77hxC4eouNkSdLnLqru8hONNAh6oVrXPY/cL0pdBiCLsl7TqC6LmzDbu3eoQyeTtO5fq+FuDIn3mw9miqaRiA/23zC2A2MatTiyoA+TyvoR4GbvI38hMKeqj4vIoSH2XTdxXZdKndKk9gGXEAYa3XzMvpRs6ot7VeGG0QQRWSrBys7S2jrui1HN+gdq4+zVWFj7MjE12j842mtxF637U5Z1m7hkcNyPoqwLexXaP6lHdeNSnJVeLav2PzXEz0p1id6VB6ENY6uzLQR9mFRWXFbUDcDDuLDF151s3436IHHCUSw+ITkmqiKoon1JM4kImnjh1lqUi1Kpgkqa0eQSsXAnCSF8UKjn5lytaqEgtasj7Rf2MlpfLbubUvRoEd0AwsxEUlvY8bIM3DcqyxvvbkmiEZTqegxa5TbJhbHdcFPQjaeijxyHPkQqqwJvHHbf00H8XdTRjNH8mCpBzOKKg9W+fREgUeJPvD4+RxpZtNXqRGTVkrTJKkPRfRM0x08cVR9iM1oI1RzLqCaM0B9dE6z+WJwFUqnPoeiq0SxxoTOz0o3twraw0A3DMLYD42q7bHlBX+uLqSz3MKg6UIq2QtE+q7nPNRFb+ytYuvExNcpkPVnkSJ+7JHLXrOQCiV1A/ceTYNX3PaEAaP8Ti2EYDgGyMVX0LSfow3wPK7VZyZ0QC/dq7oYTXBSRL3olkY2PuZ7fzDA3gL51q4j1qOeOJ5k214ux1RnXn/iWE/RRWdOCH0FA+3zgJznumfyxDHuucf0BG8ZGI7J9Uv+NLciwv10bIDW2C+P68zZBN0bGxNzY6liUi2EYxhZAsAkuDMMwtgZiFrphGMaWIU4EHCdM0A3DMCIEs9ANwzC2DCbohmEYW4RtU5zLMAxjK+MK9J3tXqwPE3TDMIwBxjXXwgTdMAwjwgZFDcMwthBjaqCboBuGYfQjJBaHbhiGMf4I42uhjzSWK44/FJGHReQ+EXn+Ku3+UUTu8a/HROTDfv0uEbnD7/vPIvKcDfgMhmEYG4dAlshQr83GqBb69cAV/vVC4B3+/z5U9QeqZRH5IPBX/u2/B+5R1VeJyJXALcAPr6PfhmEYp4VtY6EDNwLvVcfngJ0icv5qjUVkGngp8GG/6irg7wBU9SHgUhE5d+ReG4ZhnEYSP8nFWq+1EJHrROQr3qvxmytsv1JEPisiHRF5yyj7rtjvoT+h40Lg29H7A37darwK+DtVPebf3wv8uO/stcAlwP7BnUTkJhG5W0TuPnT40IhdNAzDODVEhnud/BiS4rwQ1+OM2deIyFUDzY4AbwJ+fx37nsCogr7SR1hh2uLAa4D3Re9/F9glIvcAvwp8CchPOKDqbap6japes2/vvhG7aBiGsX4EJ4zDvNbgWuBhVX1EVbvA+3FejoCqHlTVu4DeqPuuxJo+dBF5I/BL/u1dwEXR5v3AY6vst8d36lVR548Br/PbBfi6fxmGYWwOZKRM0b0icnf0/jZVvc0vr+TROGHMcRXWte+agq6qt+BMf0TkZcDNIvJ+f/A5VX18lV3/DfDXqrpcrRCRncCiv+O8HvhU5I4xDMM467hM0aEF/bCqXnOSQw1yMo/GKe87qsvlTuAR4GHgj4FfCWcXuVNELojavpp+dwvAdwAPiMhDON/Qr414fsMwjNOODPlagwMM6dHYqH1HCltUVQXeuMq2Gwbev3iFNp/FhTwahmFsWjYobPEu4AoRuQx4FGfk/vTp3NcyRQ3DMPqQDamHrqq5iNwMfBxIgXep6gMi8ga//VYROQ+4G5gBShF5M3CVqh5bad+1zmmCbhiGEVFFuWwEqnonzlUdr7s1Wn6CFUK3V9t3LUzQDcMwBrB66IZhGFsBsSnoDMMwtgQb6XI505igG4ZhDGAWumEYxhZhPOXcBN0wDKMPAVKz0A3DMLYGY6rnJuiGYRj9CDKmThcTdMMwjAHMQjcMw9gCuLDF8VR0E3TDMIyYIWYj2qyYoBuGYQxgqf+GYRhbADfBxdnuxfowQTcMwxjAolwMwzC2CGPqcTFBNwzDGGRcLfSRioqJyJUi8lkR6YjIW07S7j0i8nURuce/rvbrfz1ad7+IFCKy+xQ/g2EYxoZR+dCHeW02RrXQjwBvAl45RNtfV9UPxCtU9W3A2wBE5BXAv1XVIyP2wTAM4/QhMrZRLiNZ6Kp6UFXvAnobcO7XAO/bgOMYhmFsKDLka7NxOuu4/46I3Cci/01EWvEGEZkErgM+uNKOInKTiNwtIncfOnzoNHbRMAyjH+dykaFem43TJei/BVwJfDewG/iNge2vAD69mrtFVW9T1WtU9Zp9e/edpi4ahmGszJa10EXkjdFA5gXDHFRVH1dHB3g3cO1Ak1dj7hbDMDYrY6roaw6KquotwC2jHFREzlfVx8XN4/RK4P5o2yzwQ8DPjtZVwzCMM8NmdKcMw0hRLiJyHnA3MAOUIvJm4CpVPSYidwKvV9XHgD8TkX24e9g9wBuiw7wK+FtVXdiA/huGYWw44ynnIwq6qj4B7F9l2w3R8ktPcoz3AO8Z5byGYRhnlDFVdMsUNQzDiHDu8fFUdBN0wzCMGKuHbhiGsXUYUz03QTcMw+hHkDE10U3QDcMwBhhTPTdBNwzDiNmkOUNDcTpruRiGYYwnG5QpKiLXichXRORhEfnNFbaLiPyh336fiDw/2vYNEfkXn6V/9zDdNgvdMAxjgI0IWxSRFJdl/yPAAeAuEfmIqn45anY9cIV/vRB4h/+/4iWqenjYc5qFbhiGMYDIcK81uBZ4WFUfUdUu8H7gxoE2NwLv9bWvPgfsFJHz19tvE3TDMIyYIcXcC/reqtS3f90UHelC4NvR+wN+HUO2UeBvReQLA8ddFXO5GIZhDDCCy+Wwql6z6mFOREdo8yJVfUxEzgE+ISIPqeqnTtYZs9ANwzAihA1zuRwALore7wceG7aNL3SIqh4E7uDEMuQnYIJuGIYxwAYFudwFXCEil4lIEzcPxEcG2nwEeK2PdvkeYM6XHp8SkWkAEZkCfpSoDPlqmMvFMAxjkA0IRFfVXERuBj4OpMC7VPUBEXmD334rcCdwA/AwsAi8zu9+LnCHz1jNgD9X1Y+tdU4TdMMwjAE2aoILVb0TJ9rxulujZQXeuMJ+jwDPG/V8JuiGYRgDjGumqAm6YRjGIGOq6CbohmEYEeM8wcVIUS4i8jO+3sB9IvIZEVnRxyMi7xSRe327D4jIjmjbi31tggdE5B9O9QMYhmFsKKMlFm0qRg1b/DrwQ6r6XOC3gdtWafdvVfV5vt23gJsBRGQn8EfAj6nqdwL/Zl29NgzDOI1sUNjiGWfUSaI/E739HKtPGH0MXCUxYII68+mngQ+p6rd8u4OjdtgwDOP0Mr4TXJxKYtEvAh9dbaOIvBt4ArgS+O9+9bOAXSLySV+f4LWncH7DMIzTwnZxuQAgIi/BCfpvrNZGVV8HXAA8CPyUX50BLwBeBvxr4D+KyLNWOP5NVbGbQ4cPraeLhmEY62JYd8sm1PO1BV1E3ugHMe8RkQtE5LnA7cCNqvrUyfZV1QL4C+An/KoDwMdUdcHX+P0UKwTPq+ptqnqNql6zb+++UT+TYRjGqTGmir6moKvqLap6tapejbOwPwT8nKp+daX2vibBM6tl4BXAQ37zXwE/ICKZiEziCrk/eOofwzAMY+OQIf9tNkaNQ38rsAf4Iz9okFelI0XkTuD1OL/5n4jIDO4edi/wywCq+qCIfAy4DyiB21V1zYIzhmEYZ5LN6B8fhlGjXF6PE+2Vtt0QvX3RSY7xNuBto5zXMAzjjCGQbAdBNwzD2B6Mp6KboBuGYURUE1yMIybohmEYA4ypnpugG4ZhDGIWumEYxhZhXFP/TdANwzAGGE85N0E3DMPoY7PWaRkGE3TDMIwBNmMW6DCYoBuGYQwynnpugm4YhjHImOq5CbphGEY/QjKmTnQTdMMwjIhxzhQ9lRmLDMMwjE2EWeiGYRgDjKuFboJuGIYxgIUtGoZhbAUsscgwDGNrMM6DoibohmEYA5jLxTAMY4swrhb6SGGLInKjiNwnIveIyN0i8v2rtLtZRB4WERWRvSts/24RKUTkJ9fbccMwjNOFDPla8zgi14nIV7we/uYK20VE/tBvv09Enj/svisxahz63wHPU9WrgV8Abl+l3aeBfwV8c4UPkAK/B3x8xHMbhmGcGTZA0b3W3QJcD1wFvEZErhpodj1whX/dBLxjhH1PYCRBV9V5VVX/dgrQVdp9SVW/scphfhX4IHBwlHMbhmGcCQRIRIZ6rcG1wMOq+oiqdoH3AzcOtLkReK86PgfsFJHzh9z3BEb2oYvIq4D/CzgHeNmI+14IvAp4KfDdJ2l3E+5uBdCZaMj9o/bzNLAXOGx9ADZHPzZDH2Bz9GMz9AE2Rz+efaoH+OIXv/DxicaJruJVaIvI3dH721T1Nr98IfDtaNsB4IUD+6/U5sIh9z2BkQVdVe8A7hCRHwR+G+daGZa3A7+hqsXJpnjyF+Q2ABG5W1WvGbWfG81m6Mdm6MNm6cdm6MNm6cdm6MNm6ceAuK4LVb1uI/rCyk6ZQa/Gam2G2fcE1hR0EXkj8Ev+7Q2q+hiAqn5KRJ4hIntVddi78jXA+72Y7wVuEJFcVT885P6GYRjjwgHgouj9fuCxIds0h9j3BNb0oavqLap6tR8InRSvxn40tgk8tdYxomNdpqqXquqlwAeAXzExNwxji3IXcIWIXCYiTeDVwEcG2nwEeK2PdvkeYE5VHx9y3xMYNcrlJ4D7ReQe3AjsT1WDpCJyp4hc4JffJCIHcHeV+0RktWiYYbht7SZnhM3Qj83QB9gc/dgMfYDN0Y/N0AfYHP3YDH0AQFVz4GZcRN+DwF+q6gMi8gYReYNvdifwCPAw8MfAr5xs37XOKXXQimEYhjHOWD10wzCMLYIJumEYxhbhrAr6ZiglICI/4/twn4h8RkSet0q7d4rIvb7dB0RkR7Ttxf4zPCAi/zBqH/wxrhSRz4pIR0TecpJ27xGRr/vz3SMiV/v1vx6tu99fj90j9mHVNOSBdv8YnesxEfmwX79LRO7w+/6ziDxnlPNHxz+j6dLr7MOq11tEfs2ve0BE3nwKfXiXiBwUWTkPw//u5qJ+vNWvf3a07h4RObbefojIRSLy/4nIg/7z/NoKbVb9OxaRnf7v5SF/jO9dZz/a/jd1r+/Hf16hzUn/hkQkFZEvichfr6cPY4GqnrUXsIPaj/9c4KFV2n0XcCnwDWDvwLYU+Hvc4MJPrqMP3wfs8svXA59fpd1MtPxfgd/0yzuBLwMX+/fnrPNanINLtvod4C0nafeetT4n8Arg79fRhxuAj+JiYL9ntWsxsM8Hgdf65bcB/8kvXwn83Tr6kAJfAy7HRVHdC1w1TD+H2Xej+rDa9QaeA9wPTOLCgv9f4Ip1/iZ+EHg+cP8q218M/PUQn+UJ4JJ19uF84Pl+eRr46grfx6p/x8CfAK/3y01g5zr7IcAOv9wAPg98z0Cbk/4NAf8b8OdrXbNxfp1VC103QSkBVf2Mqj7t334OF5mzUrtj4KxDYCLq608DH1LVb/l26+3HQVW9C+itZ/8BXgO8bx37rZaGvCIiMo3L+v2wX3UVrt4PqvoQcKmInDtiH854uvQ6+xATX+/vAD6nqovqIhX+AZcdPTKq+ingyHr2jfhh4GuqekJdpSH78LiqftEvH8dFXFw40GbFv2MRmcHdlN7p23VV9eg6+6GqOu/fNvxLB9qs+jckIvtxme2nEnG36TnrPnQReZWIPAT8Da7g1yj7VqUEbt2g7vwizvJb7Xzvxlk7VwL/3a9+FrBLRD4pIl8QkdduUF9Oxu/4R9z/JiKtgT5OAtfhbnKjsloa8mq8CmeFH/Pv7wV+3PfjWuASVrlBnmIfRkmXPln/T6UPwIrX+37gB0Vkj992A/0JIhvN93o3xEdF5DtX2P5q1ndzPwERuRT3tPz5Fbat9Hd8OXAIeLd3ddwuIlOncP5UXMj0QeATqnpCP07C24F/B5TrPf84cNYFXVXvUNUrgVfiSgmMwtvxpQROtR8i8hKcoP/Gam1U9XXABTgr5af86gx4Ae7u/6+B/ygizzrV/pyE38LdUL4b2L1Cf18BfFpV12PZjZpuPPgk8Lu4m9s9uCenLwH5aejDhqZLr7MPFX3XW1UfxFUT/QTwMdxNbtRrMCxfxLlSnoczMD4cbxSXkPJjwP9zqicSN2b0QeDN0Q08sMrfcYZzGb1DVb8LWADWPa6hqoW6BMf9wLXDjtGIyMuBg6r6hfWee1w444IuIm+MBmsuqNb7x8tnyAqDniehKiXwDeAngT8SkVeO2gcReS7uUexGVT1p5qu/efwFLskKnPX2MVVdUFcC4VPAigOra/VjmH38I7Cqagd4N849EDOSRRb3AZdaPFS6sYjs8ef+m6hvx1T1df6P7rXAPuDrw/bFcyrp0sPsu1F9qDjheqvqO1X1+ar6gziXyf9cRx/WxF/veb98J9AY+Pu5Hviiqj55KucRkQZOzP9MVT+0Rp/iv+MDwIHIkv4ATuBPCe+2+STuyWgYXgT8mNeJ9wMvFZE/PdV+bErOpgMfeCb1YMrzgUer96u0/wYDg6LRtvewvkHRi3FZWt93kjYCPDNa/n3g9/3778D5jTPcQNj9wHNO4Zr8H5x8UPT8qB9vB3432jaLE5CpdZ77ZfQPNv7zSdq+AfiTgXU7gaZf/iWcn3vUPmS4zLnLqAckv3OYfg6z70b14WTXGz8w7n9bD+EH3df5nVzK6oOi50V/P9cC34r/fnDi9br1njv6nb0XePtJ2qz6dwz8I/Ds6Lf9tnX2Yx9+QBU3hvWPwMtXabvq3xBDDCSP8+vsnty5Cx4A7gE+C3x/tO1O4AK//Cbc3T7HWUq3r3Cs97A+Qb8deNr34R7g7sE+4J5kPg38C06w/4z+qJdfx0W63I97JF3PtTjPf8ZjwFG/PLPCtfj7qB9/ih/599t+Hnj/KXwfgivp8DV/jmtW+j78+08C1w3s/704a/Qh4EOsU8hwfuev+n78B7/uDcAbhujnCfuejj6c7Hp7sfky7kbww6fQh/cBj+MG+Q7gXILxdbjZ//3cixvQ/75o30lcnaXZ9Z7fH+f7ce6m+6K/kRsG+nGyv+Orgbv9/h8+hd/Ec3EuvPv8b/+tK/wuVv0bio7zYrawoFvqv2EYxhbhrA+KGoZhGBuDCbphGMYWwQTdMAxji2CCbhiGsUUwQTcMw9gimKAbhmFsEUzQDcMwtgj/P+V8Xt+X1+cnAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, - "metadata": {}, + "metadata": { + "needs_background": "light" + }, "output_type": "display_data" } ], @@ -748,127 +540,57 @@ "ax = plotter.plot(cmap=\"Blues\")" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Convert to MDTraj for analysis by external tools\n", + "\n", + "The trajectory can be converted to an MDTraj trajectory, and then used anywhere that MDTraj can be used. This includes writing it to a file (in any number of file formats) or visualizing the trajectory using, e.g., NGLView." + ] + }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 17, "metadata": {}, "outputs": [ { "data": { - "image/png": "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\n", "text/plain": [ - "
" + "" ] }, + "execution_count": 17, "metadata": {}, - "output_type": "display_data" + "output_type": "execute_result" } ], "source": [ - "# this is the figure we actually publish\n", - "# change xlim and ylim (which are in radians) to get the figure you want\n", - "xlim = (-np.pi, 0)\n", - "ylim = (-np.pi/2, np.pi)\n", - "#xlim = ylim = (-np.pi, np.pi)\n", - "\n", - "state_color = (0.953, 0.867, 0.878)\n", - "plt.rcParams.update({'font.size': 14})\n", - "\n", - "# main plotting\n", - "ax = plotter.plot(xlim=xlim, ylim=ylim, cmap=\"Blues\")\n", - "trajA = flexible.steps[3000].active[0].trajectory\n", - "trajB = flexible.steps[2000].active[0].trajectory\n", - "plotter.plot_trajectory(trajA, '-k', lw=0.5)\n", - "plotter.plot_trajectory(trajB, '-r', lw=0.5)\n", - "plt.xlabel(\"$\\phi$\")\n", - "plt.ylabel(\"$\\psi$\")\n", - "\n", - "# adding something to show the states\n", - "alpha_R_xywh = (-180, -100, 180, 100)\n", - "\n", - "# our states are rectangular, so we make rectangular patches\n", - "from matplotlib.patches import Rectangle\n", - "def state_patch(x, y, w, h):\n", - " xy = np.array([x, y]) / deg\n", - " wh = np.array([w, h]) / deg\n", - " plot_xy = [plotter.to_bins(val, i) \n", - " for (i, val) in enumerate(xy)]\n", - " plot_w, plot_h = wh / plotter.histogram.bin_widths\n", - " return Rectangle(plot_xy, plot_w, plot_h, color=state_color)\n", - "\n", - "ax.axes.add_patch(state_patch(-180, -100, 180, 100)) # alpha_R\n", - "ax.axes.add_patch(state_patch(-180, 100, 180, 100)) # C7eq\n", - "ax.axes.add_patch(state_patch(-180, -260, 180, 100)) # C7eq, wrapped around\n", - "\n", - "plt.text(x=plotter.to_bins(-100/deg, 0), \n", - " y=plotter.to_bins(-60/deg, 1),\n", - " s=\"$\\\\alpha_R$\")\n", - "plt.text(x=plotter.to_bins(-100/deg, 0),\n", - " y=plotter.to_bins(130/deg, 1),\n", - " s=\"$C_{7eq}$\")\n", - "\n", - "# now we're going to clean up so our axes are in degrees\n", - "# save limits\n", - "xlim = plt.xlim()\n", - "ylim = plt.ylim()\n", - "\n", - "# convert labels back to degree\n", - "def degree_ticks(locs_labels):\n", - " locs, labels = locs_labels\n", - " new_labels = []\n", - " for label in labels:\n", - " numeric = float(label.get_text())\n", - " label.set_text(\"{:.0f}\".format(numeric*deg))\n", - " new_labels.append(label)\n", - " return locs, labels\n", - " \n", - "xlocs, xlabels = degree_ticks(plt.xticks())\n", - "plt.xticks(xlocs, xlabels)\n", - "ylocs, ylabels = degree_ticks(plt.yticks())\n", - "plt.yticks(ylocs, ylabels)\n", - "plt.xlim(*xlim)\n", - "plt.ylim(*ylim);\n", - "\n", - "plt.tight_layout()\n", - "plt.savefig(\"AD_tps_pathdensity.pdf\")" + "ops_traj = flexible.steps[1000].active[0].trajectory\n", + "traj = ops_traj.to_mdtraj()\n", + "traj" ] }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 18, "metadata": {}, "outputs": [], "source": [ + "# Here's how you would then use NGLView:\n", "#import nglview as nv\n", - "#nv.show_mdtraj(traj.to_mdtraj())" + "#view = nv.show_mdtraj(traj)\n", + "#view" ] }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 19, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 28, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "trajA.to_mdtraj()" + "flexible.close()" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] } ], "metadata": { @@ -887,7 +609,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.3" + "version": "3.7.8" }, "toc": { "base_numbering": 1, @@ -930,8 +652,202 @@ "_Feature" ], "window_display": false + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": { + "072e689f3ff442098bfbb72d7bfe0128": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "layout": "IPY_MODEL_ba6f4a4a33ca449fafed2501220630fa", + "style": "IPY_MODEL_076f3b6e16cf41669e6836684364f4a4", + "value": " 10001/10001 [02:01<00:00, 82.01it/s]" + } + }, + "076f3b6e16cf41669e6836684364f4a4": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "description_width": "" + } + }, + "0ceb43b5a8ec4110a0c7d255faaeccf0": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "description_width": "" + } + }, + "1c7a82694e9e4b8984c2784a2be65b3b": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "2ec07b6f4e0543a280aa283c9b502b76": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "bar_style": "success", + "layout": "IPY_MODEL_b6e930bc9ceb43c4b7fd9cde02008310", + "max": 10001, + "style": "IPY_MODEL_cf10d2fa4b0a40cca143fae16c41c342", + "value": 10001 + } + }, + "38a10ee289aa486ebe0cec8e2ce74d4c": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "48a614f7c58f423682e8b13a43f44b05": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HBoxModel", + "state": { + "children": [ + "IPY_MODEL_517e0f594e9b40138cc997d371a9d141", + "IPY_MODEL_2ec07b6f4e0543a280aa283c9b502b76", + "IPY_MODEL_c42228d3aa6744b2b3789f702c706030" + ], + "layout": "IPY_MODEL_c162e8a3a8884efa9ffde682f591cfe1" + } + }, + "517e0f594e9b40138cc997d371a9d141": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "layout": "IPY_MODEL_864991f30c684ec4a4adb30e084b7de3", + "style": "IPY_MODEL_0ceb43b5a8ec4110a0c7d255faaeccf0", + "value": "100%" + } + }, + "610249cfd1ba4df48aeb805331c087f7": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "description_width": "" + } + }, + "6486501647e4483c8d6d56521b987909": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "6d9ea6ac33644ce4a0bd7cd57a00a0c1": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HBoxModel", + "state": { + "children": [ + "IPY_MODEL_9fd2d9446de14152a348e8cbe8f694f1", + "IPY_MODEL_705206a17997442fa15856bf4a49cf9f", + "IPY_MODEL_072e689f3ff442098bfbb72d7bfe0128" + ], + "layout": "IPY_MODEL_6486501647e4483c8d6d56521b987909" + } + }, + "705206a17997442fa15856bf4a49cf9f": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "bar_style": "success", + "layout": "IPY_MODEL_38a10ee289aa486ebe0cec8e2ce74d4c", + "max": 10001, + "style": "IPY_MODEL_c626d27db8044405bea559fb5162f882", + "value": 10001 + } + }, + "780c392f82404ce3b5049dbde4461d4c": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "description_width": "" + } + }, + "864991f30c684ec4a4adb30e084b7de3": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "9fd2d9446de14152a348e8cbe8f694f1": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "layout": "IPY_MODEL_fa8db0dff6f3467eb1b850fcdd0794d7", + "style": "IPY_MODEL_610249cfd1ba4df48aeb805331c087f7", + "value": "100%" + } + }, + "b6e930bc9ceb43c4b7fd9cde02008310": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "ba6f4a4a33ca449fafed2501220630fa": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "c162e8a3a8884efa9ffde682f591cfe1": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "c42228d3aa6744b2b3789f702c706030": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "layout": "IPY_MODEL_1c7a82694e9e4b8984c2784a2be65b3b", + "style": "IPY_MODEL_780c392f82404ce3b5049dbde4461d4c", + "value": " 10001/10001 [02:29<00:00, 67.01it/s]" + } + }, + "c626d27db8044405bea559fb5162f882": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "description_width": "" + } + }, + "cf10d2fa4b0a40cca143fae16c41c342": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "description_width": "" + } + }, + "fa8db0dff6f3467eb1b850fcdd0794d7": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + } + }, + "version_major": 2, + "version_minor": 0 + } } }, "nbformat": 4, - "nbformat_minor": 1 + "nbformat_minor": 4 } diff --git a/examples/alanine_dipeptide_tps/AD_tps_A1_pub_pathdensity.ipynb b/examples/alanine_dipeptide_tps/AD_tps_A1_pub_pathdensity.ipynb new file mode 100644 index 000000000..c7bb2008b --- /dev/null +++ b/examples/alanine_dipeptide_tps/AD_tps_A1_pub_pathdensity.ipynb @@ -0,0 +1,457 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Publication-ready path density figure\n", + "\n", + "This notebook shows how to create a path density plot with custom ticklabels, states shown as shaded regions, and representative trajectories.\n", + "\n", + "Most of this just illustrates some fancier things that can be done with matplotlib, and isn't specific to OpenPathSampling." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import openpathsampling as paths\n", + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "from tqdm.auto import tqdm\n", + "\n", + "from openpathsampling.numerics import HistogramPlotter2D" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "CPU times: user 12.5 s, sys: 1.31 s, total: 13.8 s\n", + "Wall time: 13.8 s\n" + ] + } + ], + "source": [ + "%%time\n", + "flexible = paths.Storage(\"ad_tps.nc\", mode='r')" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "psi = flexible.cvs['psi']\n", + "phi = flexible.cvs['phi']\n", + "deg = 180.0 / np.pi" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "path_density = paths.PathDensityHistogram(cvs=[phi, psi],\n", + " left_bin_edges=(-180/deg,-180/deg),\n", + " bin_widths=(2.0/deg,2.0/deg))" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "021719bc6ef14f0cbfe1c85d57b45e2c", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "HBox(children=(HTML(value=''), FloatProgress(value=0.0, max=10001.0), HTML(value='')))" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], + "source": [ + "# it takes a little time to load the trajectories from disk\n", + "trajectories = [s.active[0].trajectory for s in tqdm(flexible.steps)]" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "ad673d5e348e4e0ca9fd90e4b19ada87", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "HBox(children=(HTML(value=''), FloatProgress(value=0.0, max=10001.0), HTML(value='')))" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], + "source": [ + "path_dens_counter = path_density.histogram(trajectories)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "tick_labels = np.arange(-np.pi, np.pi+0.01, np.pi/4)\n", + "plotter = HistogramPlotter2D(path_density, \n", + " xticklabels=tick_labels,\n", + " yticklabels=tick_labels, \n", + " label_format=\"{:4.2f}\")" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# this is the figure we actually publish\n", + "# change xlim and ylim (which are in radians) to get the figure you want\n", + "xlim = (-np.pi, 0)\n", + "ylim = (-np.pi/2, np.pi)\n", + "#xlim = ylim = (-np.pi, np.pi)\n", + "\n", + "state_color = (0.953, 0.867, 0.878)\n", + "plt.rcParams.update({'font.size': 14})\n", + "\n", + "# main plotting\n", + "ax = plotter.plot(xlim=xlim, ylim=ylim, cmap=\"Blues\")\n", + "trajA = flexible.steps[1000].active[0].trajectory\n", + "trajB = flexible.steps[6500].active[0].trajectory\n", + "plotter.plot_trajectory(trajA, '-k', lw=0.5)\n", + "plotter.plot_trajectory(trajB, '-r', lw=0.5)\n", + "plt.xlabel(\"$\\phi$\")\n", + "plt.ylabel(\"$\\psi$\")\n", + "\n", + "# adding something to show the states\n", + "alpha_R_xywh = (-180, -100, 180, 100)\n", + "\n", + "# our states are rectangular, so we make rectangular patches\n", + "from matplotlib.patches import Rectangle\n", + "def state_patch(x, y, w, h):\n", + " xy = np.array([x, y]) / deg\n", + " wh = np.array([w, h]) / deg\n", + " plot_xy = [plotter.to_bins(val, i) \n", + " for (i, val) in enumerate(xy)]\n", + " plot_w, plot_h = wh / plotter.histogram.bin_widths\n", + " return Rectangle(plot_xy, plot_w, plot_h, color=state_color)\n", + "\n", + "ax.axes.add_patch(state_patch(-180, -100, 180, 100)) # alpha_R\n", + "ax.axes.add_patch(state_patch(-180, 100, 180, 100)) # C7eq\n", + "ax.axes.add_patch(state_patch(-180, -260, 180, 100)) # C7eq, wrapped around\n", + "\n", + "plt.text(x=plotter.to_bins(-100/deg, 0), \n", + " y=plotter.to_bins(-60/deg, 1),\n", + " s=\"$\\\\alpha_R$\")\n", + "plt.text(x=plotter.to_bins(-100/deg, 0),\n", + " y=plotter.to_bins(130/deg, 1),\n", + " s=\"$C_{7eq}$\")\n", + "\n", + "# now we're going to clean up so our axes are in degrees\n", + "# save limits\n", + "xlim = plt.xlim()\n", + "ylim = plt.ylim()\n", + "\n", + "# convert labels back to degree\n", + "def degree_ticks(locs_labels):\n", + " locs, labels = locs_labels\n", + " new_labels = []\n", + " for label in labels:\n", + " numeric = float(label.get_text())\n", + " label.set_text(\"{:.0f}\".format(numeric*deg))\n", + " new_labels.append(label)\n", + " return locs, labels\n", + " \n", + "xlocs, xlabels = degree_ticks(plt.xticks())\n", + "plt.xticks(xlocs, xlabels)\n", + "ylocs, ylabels = degree_ticks(plt.yticks())\n", + "plt.yticks(ylocs, ylabels)\n", + "plt.xlim(*xlim)\n", + "plt.ylim(*ylim);\n", + "\n", + "plt.tight_layout()\n", + "plt.savefig(\"AD_tps_pathdensity.pdf\")" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "flexible.close()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.8" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": { + "021719bc6ef14f0cbfe1c85d57b45e2c": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HBoxModel", + "state": { + "children": [ + "IPY_MODEL_3f009aca89844224a4a2d4bf587382ca", + "IPY_MODEL_b2dd024bd32a425daa4f306ccc66eee6", + "IPY_MODEL_02801bc578174741997a830143c77562" + ], + "layout": "IPY_MODEL_9aaeaa69bbf146cd8b0061e3b4cfd324" + } + }, + "02801bc578174741997a830143c77562": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "layout": "IPY_MODEL_a10b0014e64f4a3bad17b572c1edc33b", + "style": "IPY_MODEL_88a025068a164d9fb44b57761bfb03be", + "value": " 10001/10001 [07:01<00:00, 23.72it/s]" + } + }, + "28fdf17053a8446caa26c55a15dac2b0": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "3ad5e00e0db44fe3a9d17980661b60bf": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "3f009aca89844224a4a2d4bf587382ca": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "layout": "IPY_MODEL_af22aaecb5454a51afd3d2240d8dba1f", + "style": "IPY_MODEL_797605b1fae049f6941b3bdf6f1880c7", + "value": "100%" + } + }, + "4a5ad8080a7546ddb3056a408270a2fe": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "description_width": "" + } + }, + "66f813e697674e8fa36f04dcffe8337a": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "797605b1fae049f6941b3bdf6f1880c7": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "description_width": "" + } + }, + "827ccc9b2d9145ecb38ea0b2f44c4067": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "8895b2ea79f748bb9ed326f24c74de49": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "layout": "IPY_MODEL_3ad5e00e0db44fe3a9d17980661b60bf", + "style": "IPY_MODEL_9a8c70ff412d48f79c54e5b6e0d09197", + "value": " 10001/10001 [02:32<00:00, 65.79it/s]" + } + }, + "88a025068a164d9fb44b57761bfb03be": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "description_width": "" + } + }, + "8cc17e971af740f4a4b9ce259683ebaf": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "description_width": "" + } + }, + "95a17063932a41418beacd2c9ee48f02": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "bar_style": "success", + "layout": "IPY_MODEL_827ccc9b2d9145ecb38ea0b2f44c4067", + "max": 10001, + "style": "IPY_MODEL_8cc17e971af740f4a4b9ce259683ebaf", + "value": 10001 + } + }, + "9a8c70ff412d48f79c54e5b6e0d09197": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "description_width": "" + } + }, + "9aaeaa69bbf146cd8b0061e3b4cfd324": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "a10b0014e64f4a3bad17b572c1edc33b": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "ad673d5e348e4e0ca9fd90e4b19ada87": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HBoxModel", + "state": { + "children": [ + "IPY_MODEL_eea743a1100344949717f85bcb1ded79", + "IPY_MODEL_95a17063932a41418beacd2c9ee48f02", + "IPY_MODEL_8895b2ea79f748bb9ed326f24c74de49" + ], + "layout": "IPY_MODEL_c4ee019e58f044ff85da586d650deec6" + } + }, + "aee52ecf9f0f4601b0028d30d66dcd83": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "description_width": "" + } + }, + "af22aaecb5454a51afd3d2240d8dba1f": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "b2dd024bd32a425daa4f306ccc66eee6": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "bar_style": "success", + "layout": "IPY_MODEL_66f813e697674e8fa36f04dcffe8337a", + "max": 10001, + "style": "IPY_MODEL_4a5ad8080a7546ddb3056a408270a2fe", + "value": 10001 + } + }, + "c4ee019e58f044ff85da586d650deec6": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "eea743a1100344949717f85bcb1ded79": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "layout": "IPY_MODEL_28fdf17053a8446caa26c55a15dac2b0", + "style": "IPY_MODEL_aee52ecf9f0f4601b0028d30d66dcd83", + "value": "100%" + } + } + }, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} From 03408fca32e191fa9726ec0edca5c5cd550a27c9 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Sat, 17 Oct 2020 14:53:16 +0200 Subject: [PATCH 424/464] move discussion of visit all ensemble to topics --- docs/topics/ensemble_tricks.rst | 67 +++++++++++++++++++ docs/topics/index.rst | 1 + .../AD_tps_1_trajectory.ipynb | 19 +----- 3 files changed, 70 insertions(+), 17 deletions(-) create mode 100644 docs/topics/ensemble_tricks.rst diff --git a/docs/topics/ensemble_tricks.rst b/docs/topics/ensemble_tricks.rst new file mode 100644 index 000000000..c217afc11 --- /dev/null +++ b/docs/topics/ensemble_tricks.rst @@ -0,0 +1,67 @@ + +.. _ensemble-tricks: + +.. currentmodule:: openpathsampling + +============================== +Advanced Uses of OPS Ensembles +============================== + +One of the novelties of OpenPathSampling is the new set-theoretic treatment +of path ensembles. The second paper on OPS contains more details. This +section will illustrate a few uses of that approach. + + +Visit all states +---------------- + +We want a path which contains at least one frame in each state. The question +is, what ensemble can we use to create such a trajectory? + +The first obvious thought would be: + +.. code:: + + goal_ensemble = PartInXEnsemble(A) & PartInXEnsemble(B) + +(which can, of course, be further generalized to more states). However, +while that *is* the ensemble we want to eventually satisfy, we can't use its +``can_append`` to create it, because its ``can_append`` always returns +``True``: the trajectory will go on forever! + +But we can use a trick: since what we want is the first trajectory that +satisfies ``goal_ensemble``, we know that every shorter trajectory will not +satisfy it. This means that the shorter trajectories must satisfy the +*complement* of ``goal_ensemble``, and the trajectory we want will be the +first trajectory that does *not* satisfy the complement! + +So the trick we'll use is to build the trajectory by using the fact that the +shorter trajectories are in the complement of ``goal_ensemble``, which is +given by: + +.. code:: + + complement = AllOutXEnsemble(A) | AllOutXEnsemble(B) + +The ``generate`` function will stop when that is no longer true, giving us the +trajectory we want. This can be directly generalized to more states. + +Here we're not even using the ``can_append`` function. That happens to be +the same as the ensemble itself for this particular ensemble, but +conceptually, we're actually using the test of whether a trajectory is in +the ensemble at all. + +.. code:: + + init_traj_ensemble = paths.AllOutXEnsemble(A) | paths.AllOutXEnsemble(B) + trajectory = engine.generate(engine.current_snapshot, [init_traj_ensemble]) + +Those two lines are the entirety of what you need to do to generate a +trajectory that visits both states. + +Note that this functionality has been implemented in OPS as the +:class:`.VisitAllStatesEnsemble`. When using that, you *should* use the +``can_append`` method. That ensemble adds progress reporting functionality +to show how many frames have been run and what states have been found so +far, so it is more pleasant to use. However, this idea is what underlies its +implementation. diff --git a/docs/topics/index.rst b/docs/topics/index.rst index deeffd0c0..ad104290c 100644 --- a/docs/topics/index.rst +++ b/docs/topics/index.rst @@ -24,6 +24,7 @@ providing this here the unorganized form. which_network transitions_and_networks tis_analysis + ensemble_tricks how_use .. troubleshooting .. error_messages diff --git a/examples/alanine_dipeptide_tps/AD_tps_1_trajectory.ipynb b/examples/alanine_dipeptide_tps/AD_tps_1_trajectory.ipynb index 2712bcf11..3cfd1cdd1 100644 --- a/examples/alanine_dipeptide_tps/AD_tps_1_trajectory.ipynb +++ b/examples/alanine_dipeptide_tps/AD_tps_1_trajectory.ipynb @@ -186,22 +186,7 @@ "source": [ "## Getting a first trajectory\n", "\n", - "The idea here is a little subtle, but it makes nice use of our generalized path ensemble idea.\n", - "\n", - "We want a path which contains at least one frame in each state. The question is, what ensemble can we use to create such a trajectory?\n", - "\n", - "The first obvious thought would be `goal_ensemble = PartInXEnsemble(stateA) & PartInXEnsemble(stateB)` (which can, of course, be further generalized to more states). However, while that *is* the ensemble we want to eventually satisfy, we can't use its `can_append` to create it, because its `can_append` always returns `True`: the trajectory will go on forever!\n", - "\n", - "But we can use a trick: since what we want is the first trajectory that satisfies `goal_ensemble`, we know that every shorter trajectory will not satisfy it. This means that the shorter trajectories must satisfy the *complement* of `goal_ensemble`, and the trajectory we want will be the first trajectory that does *not* satisfy the complement!\n", - "\n", - "So the trick we'll use is to build the trajectory by using the fact that the shorter trajectories are in the complement of `goal_ensemble`, which is given by `complement = AllOutXEnsemble(stateA) | AllOutXEnsemble(stateB)`. The `generate` function will stop when that is no longer true, giving us the trajectory we want. This can be directly generalized to more states.\n", - "\n", - "Note that here we're not even using the `can_append` function. That happens to be the same as the ensemble itself for this particular ensemble, but conceptually, we're actually using the test of whether a trajectory is in the ensemble at all.\n", - "\n", - "```python\n", - "init_traj_ensemble = paths.AllOutXEnsemble(C_7eq) | paths.AllOutXEnsemble(alpha_R)\n", - "trajectory = hi_T_engine.generate(hi_T_engine.current_snapshot, [init_traj_ensemble])\n", - "````" + "We'll use the `VisitAllStatesEnsemble` to create a high-temperature trajectory that visits all of our states. Here we only have 2 states, but this approach generalizes to multiple states." ] }, { @@ -548,7 +533,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.8" + "version": "3.7.3" }, "toc": { "base_numbering": 1, From 3fc22d3c75eb94972eb9af2a92ef43683f15a14a Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Tue, 20 Oct 2020 13:43:47 +0200 Subject: [PATCH 425/464] Apply suggestions from code review Co-authored-by: sroet --- docs/examples/index.rst | 2 +- openpathsampling/step_visualizer_2D.py | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/examples/index.rst b/docs/examples/index.rst index 7684ccd66..1d4790442 100644 --- a/docs/examples/index.rst +++ b/docs/examples/index.rst @@ -28,7 +28,7 @@ alanine dipeptide TPS example, and usually takes no more than 90 minutes to complete. It can be downloaded at the link below; see the readme file for details: -* http://gitlab.e-cam2020.eu/dwhswenson/ops_tutorial +* https://gitlab.e-cam2020.eu/dwhswenson/ops_tutorial There's also a `YouTube video of the tutorial `_ as it was presented at a diff --git a/openpathsampling/step_visualizer_2D.py b/openpathsampling/step_visualizer_2D.py index b09866114..91f420739 100644 --- a/openpathsampling/step_visualizer_2D.py +++ b/openpathsampling/step_visualizer_2D.py @@ -78,7 +78,6 @@ def draw_trials(self, change): def draw_background(self): # draw the background - ax = None if self.background is None: self.fig, ax = plt.subplots() self.background = self.fig From 723e8bfcb32f40a8bda9fb8175d80ba038d2c8a4 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Tue, 20 Oct 2020 17:20:06 +0200 Subject: [PATCH 426/464] fix existing storage loading fixes notebook tests --- openpathsampling/experimental/storage/ops_storage.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/openpathsampling/experimental/storage/ops_storage.py b/openpathsampling/experimental/storage/ops_storage.py index 9a022c35c..60a3ebc7f 100644 --- a/openpathsampling/experimental/storage/ops_storage.py +++ b/openpathsampling/experimental/storage/ops_storage.py @@ -257,7 +257,9 @@ def from_backend(cls, backend, schema=None, class_info=None, simulation_classes=None, fallbacks=None, safemode=False): # quick exit if this storage is known - exists = cls._known_storages.get(backend.identifier, None) + exists = None + if backend.identifier[1] != 'w': + exists = cls._known_storages.get(backend.identifier, None) if exists is not None: return exists obj = cls.__new__(cls) From 7f52f0c6b55c20313b950b7d96eabad90a91b307 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 22 Oct 2020 09:11:11 +0200 Subject: [PATCH 427/464] OpenMM inst temp should work if positions not set --- .../features/instantaneous_temperature.py | 18 +++++++++---- .../tests/test_openmm_snapshot.py | 26 ++++++++++++------- 2 files changed, 29 insertions(+), 15 deletions(-) diff --git a/openpathsampling/engines/openmm/features/instantaneous_temperature.py b/openpathsampling/engines/openmm/features/instantaneous_temperature.py index b1d06ff83..126b13496 100644 --- a/openpathsampling/engines/openmm/features/instantaneous_temperature.py +++ b/openpathsampling/engines/openmm/features/instantaneous_temperature.py @@ -18,7 +18,7 @@ def n_degrees_of_freedom(snapshot): if system.getParticleMass(i) > 0*u.dalton]) dofs_constaints = system.getNumConstraints() dofs_motion_removers = 0 - if any(type(system.getForce(i)) == mm.CMMotionRemover + if any(type(system.getForce(i)) == mm.CMMotionRemover for i in range(system.getNumForces())): dofs_motion_removers += 3 dofs = dofs_particles - dofs_constaints - dofs_motion_removers @@ -34,9 +34,16 @@ def instantaneous_temperature(snapshot): """ # TODO: this can be generalized as a feature that works with any # snapshot that has features for KE (in units of kB) and n_dofs - old_snap = snapshot.engine.current_snapshot - snapshot.engine.current_snapshot = snapshot - state = snapshot.engine.simulation.context.getState(getEnergy=True) + + # if no engine, error here; don't get caught in try/except below + engine = snapshot.engine + try: + old_snap = engine.current_snapshot + except Exception: # openmm doesn't use a custom exception class yet + # Exception: Particle positions have not been set + old_snap = None + engine.current_snapshot = snapshot + state = engine.simulation.context.getState(getEnergy=True) # divide by Avogadro b/c OpenMM reports energy/mole ke_in_energy = state.getKineticEnergy() / u.AVOGADRO_CONSTANT_NA ke_per_kB = ke_in_energy / u.BOLTZMANN_CONSTANT_kB @@ -44,6 +51,7 @@ def instantaneous_temperature(snapshot): dofs = snapshot.n_degrees_of_freedom temperature = 2 * ke_per_kB / dofs - snapshot.engine.current_snapshot = old_snap + if old_snap is not None: + engine.current_snapshot = old_snap return temperature diff --git a/openpathsampling/tests/test_openmm_snapshot.py b/openpathsampling/tests/test_openmm_snapshot.py index 4237f0cab..b7a2ea5d8 100644 --- a/openpathsampling/tests/test_openmm_snapshot.py +++ b/openpathsampling/tests/test_openmm_snapshot.py @@ -8,6 +8,8 @@ from nose.plugins.skip import SkipTest from .test_helpers import data_filename, assert_close_unit, u +import pytest + try: import openmmtools as omt except ImportError: @@ -38,30 +40,34 @@ def setup(self): integrator=omt.integrators.VVVRIntegrator() ) self.n_atoms = self.engine.topology.n_atoms - self.engine.current_snapshot = self.template + self.test_snap = omm_engine.Snapshot.construct( + coordinates=self.template.coordinates, + box_vectors=self.template.box_vectors, + velocities=self.template.velocities, + engine=self.engine + ) + # self.engine.current_snapshot = self.template def test_masses_from_file(self): masses = self.template.masses assert_equal(len(masses), self.n_atoms) def test_masses_from_simulation(self): - sim_snap = self.engine.current_snapshot - masses = sim_snap.masses - assert_equal(len(masses), self.n_atoms) + assert len(self.test_snap.masses) == self.n_atoms def test_n_degrees_of_freedom(self): - assert_equal(self.engine.current_snapshot.n_degrees_of_freedom, 51) + assert self.test_snap.n_degrees_of_freedom == 51 def test_instantaneous_temperature(self): vel_unit = u.nanometers / u.picoseconds new_velocities = [[1.0, 0.0, 0.0]] * self.n_atoms * vel_unit - self.engine.current_snapshot = omm_engine.Snapshot.construct( - coordinates=self.engine.current_snapshot.coordinates, - box_vectors=self.engine.current_snapshot.box_vectors, + test_snap = omm_engine.Snapshot.construct( + coordinates=self.template.coordinates, + box_vectors=self.template.box_vectors, velocities=new_velocities, engine=self.engine ) - test_snap = self.engine.current_snapshot + expected_ke = sum( [m * vel_unit**2 for m in test_snap.masses], 0.0*u.joule @@ -86,7 +92,7 @@ def test_mdtraj_trajectory(self): assert_is_not(traj_1.xyz, None) assert_is(traj_1.unitcell_vectors, None) - snap_2 = self.engine.current_snapshot + snap_2 = self.test_snap traj_2 = snap_2.md assert_equal(len(traj_2), 1) assert_is_not(traj_2.xyz, None) From f62b4b42cc6fb625c3cb740ce50fd0bc1a25aaeb Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 22 Oct 2020 09:19:48 +0200 Subject: [PATCH 428/464] remove commented code --- openpathsampling/tests/test_openmm_snapshot.py | 1 - 1 file changed, 1 deletion(-) diff --git a/openpathsampling/tests/test_openmm_snapshot.py b/openpathsampling/tests/test_openmm_snapshot.py index b7a2ea5d8..2b96a7198 100644 --- a/openpathsampling/tests/test_openmm_snapshot.py +++ b/openpathsampling/tests/test_openmm_snapshot.py @@ -46,7 +46,6 @@ def setup(self): velocities=self.template.velocities, engine=self.engine ) - # self.engine.current_snapshot = self.template def test_masses_from_file(self): masses = self.template.masses From 25b3a41e8e3d993fc67a1d0362e57f678fcce41c Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Fri, 23 Oct 2020 06:09:44 +0200 Subject: [PATCH 429/464] Update fixed-len AD TPS example --- .../AD_tps_1b_trajectory.ipynb | 135 ++-- .../AD_tps_2b_run_fixed.ipynb | 102 ++- .../AD_tps_3b_analysis_fixed.ipynb | 182 ++++-- .../AD_tps_4_advanced.ipynb | 584 +++++++++++++----- 4 files changed, 684 insertions(+), 319 deletions(-) diff --git a/examples/alanine_dipeptide_tps/AD_tps_1b_trajectory.ipynb b/examples/alanine_dipeptide_tps/AD_tps_1b_trajectory.ipynb index 8488c33a7..5f61dfe72 100644 --- a/examples/alanine_dipeptide_tps/AD_tps_1b_trajectory.ipynb +++ b/examples/alanine_dipeptide_tps/AD_tps_1b_trajectory.ipynb @@ -11,7 +11,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "This notebook is part of the fixed length TPS example. It requires the file `alanine_dipeptide_tps_equil.nc`, which is written in the notebook `alanine_dipeptide_tps_first_traj.ipynb`.\n", + "This notebook is part of the fixed length TPS example. It requires the file `ad_tps_equil.nc`, which is written in the notebook `AD_tps_1_trajectory.ipynb`.\n", "\n", "In this notebook, you will learn:\n", "* how to set up a `FixedLengthTPSNetwork`\n", @@ -22,11 +22,13 @@ { "cell_type": "code", "execution_count": 1, - "metadata": { - "collapsed": true - }, + "metadata": {}, "outputs": [], "source": [ + "from __future__ import print_function\n", + "%matplotlib inline\n", + "import matplotlib.pyplot as plt\n", + "\n", "import openpathsampling as paths" ] }, @@ -36,18 +38,16 @@ "source": [ "## Loading from storage\n", "\n", - "First, we open the file we made in `alanine_dipeptide_tps_first_traj.ipynb` and load various things we need from that." + "First, we open the file we made in `AD_tps_1_trajectory.ipynb` and load various things we need from that." ] }, { "cell_type": "code", "execution_count": 2, - "metadata": { - "collapsed": true - }, + "metadata": {}, "outputs": [], "source": [ - "old_storage = paths.Storage(\"tps_nc_files/alanine_dipeptide_tps_equil.nc\", \"r\")" + "old_storage = paths.Storage(\"ad_tps_equil.nc\", \"r\")" ] }, { @@ -56,13 +56,14 @@ "metadata": {}, "outputs": [], "source": [ - "engine = old_storage.engines[0]\n", - "C_7eq = old_storage.volumes.find('C_7eq')\n", - "alpha_R = old_storage.volumes.find('alpha_R')\n", - "traj = old_storage.samplesets[len(old_storage.samplesets)-1][0].trajectory\n", - "phi = old_storage.cvs.find('phi')\n", - "psi = old_storage.cvs.find('psi')\n", - "template = old_storage.snapshots[0]" + "engine = old_storage.engines['300K']\n", + "C_7eq = old_storage.volumes['C_7eq']\n", + "alpha_R = old_storage.volumes['alpha_R']\n", + "traj = old_storage.samplesets[-1][0].trajectory\n", + "\n", + "# load CVs for plotting\n", + "phi = old_storage.cvs['phi']\n", + "psi = old_storage.cvs['psi']" ] }, { @@ -84,7 +85,8 @@ "metadata": {}, "outputs": [], "source": [ - "network = paths.FixedLengthTPSNetwork(C_7eq, alpha_R, length=400)" + "network = paths.FixedLengthTPSNetwork(C_7eq, alpha_R,\n", + " length=400).named('fixed_tps_network')" ] }, { @@ -92,6 +94,14 @@ "execution_count": 5, "metadata": {}, "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/scratch/dswenson/miniconda/envs/dev/lib/python3.7/site-packages/mdtraj/utils/validation.py:116: TypeCastPerformanceWarning: Casting unitcell_vectors dtype=float64 to \n", + " TypeCastPerformanceWarning)\n" + ] + }, { "name": "stdout", "output_type": "stream", @@ -109,7 +119,7 @@ " bkwd_traj = engine.generate(traj[0], [lambda traj, foo: len(traj) < max_len], direction=-1)\n", " new_traj = bkwd_traj[:-1] + traj + fwd_traj[1:]\n", " trajectories = network.sampling_ensembles[0].split(new_traj)\n", - " print trajectories" + " print(trajectories)" ] }, { @@ -128,50 +138,39 @@ "source": [ "## Plot the trajectory\n", "\n", - "This is exactly as done in `alanine_dipeptide_tps_first_traj.ipynb`." + "This is exactly as done in `AD_tps_1_trajectory.ipynb`." ] }, { "cell_type": "code", "execution_count": 7, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "# Imports for plotting\n", - "%matplotlib inline\n", - "import matplotlib.pyplot as plt" - ] - }, - { - "cell_type": "code", - "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "[]" + "[]" ] }, - "execution_count": 8, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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\nrkJggg==\n", + "image/png": "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\n", "text/plain": [ - "" + "
" ] }, - "metadata": {}, + "metadata": { + "needs_background": "light" + }, "output_type": "display_data" } ], "source": [ - "plt.plot(phi(trajectory), psi(trajectory))\n", + "plt.plot(phi(trajectory), psi(trajectory), '.k')\n", "plt.plot(phi(traj), psi(traj))" ] }, @@ -181,65 +180,38 @@ "source": [ "## Save stuff\n", "\n", - "When we do path sampling, the `PathSampling` object automatically handles saving for us. However, we can also save things explicitly.\n", - "\n", - "Saving works in two steps: first you mark an object as being something to save with `storage.save(object)`. But at this point, the object is not actually stored to disk. That only happens after `storage.sync()`." + "When we do path sampling, the `PathSampling` object automatically handles saving for us. However, we can also save things explicitly. If you save an object that contains another object, the inner object will be saved. For example, saving the network will also save both of the stable states (which, in turn, save the CVs)." ] }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 8, "metadata": {}, "outputs": [], "source": [ - "# save stuff\n", - "storage = paths.Storage(\"tps_nc_files/alanine_dipeptide_fixed_tps_traj.nc\", \"w\", old_storage.snapshots[0])" + "storage = paths.Storage(\"ad_fixed_tps_traj.nc\", \"w\")" ] }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 9, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(store.trajectories[Trajectory],\n", - " 0,\n", - " UUID('6ed57670-7dbd-11e6-8cea-000000002014'))" - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "storage.save(engine)\n", - "storage.save(C_7eq)\n", - "storage.save(alpha_R)\n", - "storage.save(phi)\n", - "storage.save(psi)\n", - "storage.save(trajectory)" + "storage.save(trajectory)\n", + "storage.save(network)\n", + "storage.save(engine); # not technically required, saved with trajectory" ] }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 10, "metadata": {}, "outputs": [], "source": [ - "storage.sync()" + "storage.close()\n", + "old_storage.close()" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [] } ], "metadata": { @@ -258,7 +230,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.3" + "version": "3.7.8" }, "toc": { "base_numbering": 1, @@ -301,8 +273,15 @@ "_Feature" ], "window_display": false + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } } }, "nbformat": 4, - "nbformat_minor": 1 + "nbformat_minor": 4 } diff --git a/examples/alanine_dipeptide_tps/AD_tps_2b_run_fixed.ipynb b/examples/alanine_dipeptide_tps/AD_tps_2b_run_fixed.ipynb index 8dd5158c0..b464c69a0 100644 --- a/examples/alanine_dipeptide_tps/AD_tps_2b_run_fixed.ipynb +++ b/examples/alanine_dipeptide_tps/AD_tps_2b_run_fixed.ipynb @@ -22,11 +22,10 @@ { "cell_type": "code", "execution_count": 1, - "metadata": { - "collapsed": true - }, + "metadata": {}, "outputs": [], "source": [ + "from __future__ import print_function\n", "import openpathsampling as paths" ] }, @@ -43,7 +42,7 @@ "metadata": {}, "outputs": [], "source": [ - "old_storage = paths.Storage(\"tps_nc_files/alanine_dipeptide_fixed_tps_traj.nc\", \"r\")" + "old_storage = paths.Storage(\"ad_fixed_tps_traj.nc\", \"r\")" ] }, { @@ -52,32 +51,9 @@ "metadata": {}, "outputs": [], "source": [ - "engine = old_storage.engines[0]\n", - "C_7eq = old_storage.volumes.find('C_7eq')\n", - "alpha_R = old_storage.volumes.find('alpha_R')\n", - "traj = old_storage.trajectories[0]\n", - "phi = old_storage.cvs.find('phi')\n", - "psi = old_storage.cvs.find('psi')\n", - "template = old_storage.snapshots[0]" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "300K\n", - "0.02 ps\n" - ] - } - ], - "source": [ - "print engine.name\n", - "print engine.snapshot_timestep" + "engine = old_storage.engines['300K']\n", + "network = old_storage.networks['fixed_tps_network']\n", + "traj = old_storage.trajectories[0]" ] }, { @@ -91,25 +67,18 @@ }, { "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [], - "source": [ - "network = paths.FixedLengthTPSNetwork(C_7eq, alpha_R, length=400)" - ] - }, - { - "cell_type": "code", - "execution_count": 6, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ - "scheme = paths.OneWayShootingMoveScheme(network, selector=paths.UniformSelector(), engine=engine)" + "scheme = paths.OneWayShootingMoveScheme(network,\n", + " selector=paths.UniformSelector(),\n", + " engine=engine)" ] }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 5, "metadata": {}, "outputs": [ { @@ -127,30 +96,28 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 6, "metadata": {}, "outputs": [], "source": [ - "sampler = paths.PathSampling(storage=paths.Storage(\"tps_nc_files/alanine_dipeptide_fixed_tps.nc\", \"w\", template),\n", - " move_scheme=scheme,\n", - " sample_set=initial_conditions)\n", - "#sampler.live_visualizer = paths.StepVisualizer2D(network, phi, psi, [-3.14, 3.14], [-3.14, 3.14])" + "storage = paths.Storage(\"ad_fixed_tps.nc\", \"w\")\n", + "storage.save(initial_conditions); # save these to give storage a template" ] }, { "cell_type": "code", - "execution_count": 9, - "metadata": { - "collapsed": true - }, + "execution_count": 7, + "metadata": {}, "outputs": [], "source": [ - "#sampler.live_visualizer = None" + "sampler = paths.PathSampling(storage=storage,\n", + " move_scheme=scheme,\n", + " sample_set=initial_conditions)" ] }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 8, "metadata": {}, "outputs": [ { @@ -158,8 +125,8 @@ "output_type": "stream", "text": [ "Working on Monte Carlo cycle number 10000\n", - "Running for 124921 seconds - 0.08 steps per second\n", - "Expected time to finish: 12 seconds\n", + "Running for 10 hours 43 minutes 11 seconds - 3.86 seconds per step\n", + "Estimated time remaining: 3 seconds\n", "DONE! Completed 10000 Monte Carlo cycles.\n" ] } @@ -168,11 +135,19 @@ "sampler.run(10000)" ] }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "old_storage.close()\n", + "storage.close()" + ] + }, { "cell_type": "markdown", - "metadata": { - "collapsed": true - }, + "metadata": {}, "source": [ "With this done, you can go on to do the fixed-length parts of the analysis in `alanine_dipeptide_tps_analysis.ipynb`." ] @@ -194,7 +169,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.3" + "version": "3.7.8" }, "toc": { "base_numbering": 1, @@ -237,8 +212,15 @@ "_Feature" ], "window_display": false + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } } }, "nbformat": 4, - "nbformat_minor": 1 + "nbformat_minor": 4 } diff --git a/examples/alanine_dipeptide_tps/AD_tps_3b_analysis_fixed.ipynb b/examples/alanine_dipeptide_tps/AD_tps_3b_analysis_fixed.ipynb index 9ae4d8385..b7ebc3ca3 100644 --- a/examples/alanine_dipeptide_tps/AD_tps_3b_analysis_fixed.ipynb +++ b/examples/alanine_dipeptide_tps/AD_tps_3b_analysis_fixed.ipynb @@ -15,6 +15,7 @@ "metadata": {}, "outputs": [], "source": [ + "from __future__ import print_function\n", "%matplotlib inline\n", "import openpathsampling as paths\n", "import numpy as np\n", @@ -31,9 +32,8 @@ "outputs": [], "source": [ "# note that this log will overwrite the log from the previous notebook\n", - "import logging.config\n", - "#logging.config.fileConfig(\"../resources/logging.conf\", disable_existing_loggers=False)\n", - "logging.config.fileConfig(\"timed_logging.conf\", disable_existing_loggers=False)" + "#import logging.config\n", + "#logging.config.fileConfig(\"../resources/logging.conf\", disable_existing_loggers=False)" ] }, { @@ -45,14 +45,14 @@ "name": "stdout", "output_type": "stream", "text": [ - "CPU times: user 40.4 s, sys: 6.01 s, total: 46.5 s\n", - "Wall time: 13min 3s\n" + "CPU times: user 40.2 s, sys: 4.36 s, total: 44.5 s\n", + "Wall time: 45 s\n" ] } ], "source": [ "%%time\n", - "fixed = paths.Storage(\"tps_nc_files/alanine_dipeptide_fixed_tps.nc\", 'r')" + "fixed = paths.Storage(\"ad_fixed_tps.nc\", 'r')" ] }, { @@ -64,7 +64,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "File size: 75.05GB for 10001 steps, 3988906 snapshots\n" + "File size: 74.98GB for 10001 steps, 3985370 snapshots\n" ] } ], @@ -72,33 +72,38 @@ "engine = fixed.engines[0]\n", "fixed_scheme = fixed.schemes[0]\n", "\n", - "print \"File size: {0} for {1} steps, {2} snapshots\".format(\n", + "print(\"File size: {0} for {1} steps, {2} snapshots\".format(\n", " fixed.file_size_str,\n", " len(fixed.steps),\n", " len(fixed.snapshots)\n", - ")" + "))" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, - "outputs": [], - "source": [ - "# rough estimate of total time\n", - "#sum(step.change.details.timing for step in fixed.steps[1:])" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "0407d78543af4309aecd48a6aaa1377c", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "HBox(children=(HTML(value=''), FloatProgress(value=0.0, max=10001.0), HTML(value='')))" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, { "name": "stdout", "output_type": "stream", "text": [ - "shooting ran 100.000% (expected 100.00%) of the cycles with acceptance 5004/10000 (50.04%)\n" + "\n", + "shooting ran 100.000% (expected 100.00%) of the cycles with acceptance 5045/10000 (50.45%)\n" ] } ], @@ -108,20 +113,20 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "17\n" + "15\n" ] }, { "data": { "image/svg+xml": [ - "+BFBFBFFBBFBFFFFFcorstep0125891112131416181920212224" + "]]>+BBFFBBFFFFFBFFcorstep0124567910111321222324" ], "text/plain": [ "" ] }, - "execution_count": 7, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" } @@ -295,20 +300,20 @@ " replica=0\n", " )\n", ")\n", - "print len(list(history.samples))\n", + "print(len(list(history.samples)))\n", "\n", "SVG(history.svg())" ] }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ - "+BFBFBFFBBFBFFFFFcorstep0125891112131416181920212224" + "]]>+BBFFBBFFFFFBFFcorstep0124567910111321222324" ], "text/plain": [ "" ] }, - "execution_count": 8, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" } @@ -482,7 +487,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 8, "metadata": {}, "outputs": [], "source": [ @@ -492,7 +497,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 9, "metadata": {}, "outputs": [ { @@ -504,19 +509,19 @@ } ], "source": [ - "print \"Decorrelated trajectories:\", len(history.generator.decorrelated_trajectories)" + "print(\"Decorrelated trajectories:\", len(history.generator.decorrelated_trajectories))" ] }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "All decorrelated trajectoriesL: 409\n" + "All decorrelated trajectories: 443\n" ] } ], @@ -530,7 +535,7 @@ "\n", "n_decorrelated = len(full_history.generator.decorrelated_trajectories)\n", "\n", - "print \"All decorrelated trajectories:\", n_decorrelated" + "print(\"All decorrelated trajectories:\", n_decorrelated)" ] }, { @@ -564,7 +569,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.3" + "version": "3.7.8" }, "toc": { "base_numbering": 1, @@ -607,8 +612,109 @@ "_Feature" ], "window_display": false + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": { + "0407d78543af4309aecd48a6aaa1377c": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HBoxModel", + "state": { + "children": [ + "IPY_MODEL_f20d8012bcc443498f642fe9d992e177", + "IPY_MODEL_e8a2aa8b5fc74559af6567a5cfc99f9a", + "IPY_MODEL_87fa839151194ca4a738c621627a69ac" + ], + "layout": "IPY_MODEL_6462018156714cb99c123cac21602d17" + } + }, + "10dc2a3c3cfc443593a98b10c19d2173": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "description_width": "" + } + }, + "5e287118a01c46dea7187ad6ac0e7119": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "description_width": "" + } + }, + "6462018156714cb99c123cac21602d17": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "87fa839151194ca4a738c621627a69ac": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "layout": "IPY_MODEL_959e02c10e3846bdbba0405bcce24e6f", + "style": "IPY_MODEL_5e287118a01c46dea7187ad6ac0e7119", + "value": " 10001/10001 [09:47<00:00, 17.03it/s]" + } + }, + "959e02c10e3846bdbba0405bcce24e6f": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "9a810ffe610643d7b5ba43d9bff6ed6f": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "d4efd0a24943475d8a6fb10a37a443da": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "e8a2aa8b5fc74559af6567a5cfc99f9a": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "bar_style": "success", + "layout": "IPY_MODEL_d4efd0a24943475d8a6fb10a37a443da", + "max": 10001, + "style": "IPY_MODEL_10dc2a3c3cfc443593a98b10c19d2173", + "value": 10001 + } + }, + "f20d8012bcc443498f642fe9d992e177": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "layout": "IPY_MODEL_9a810ffe610643d7b5ba43d9bff6ed6f", + "style": "IPY_MODEL_ff88b91061594bd08f86b328fad57a37", + "value": "100%" + } + }, + "ff88b91061594bd08f86b328fad57a37": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "description_width": "" + } + } + }, + "version_major": 2, + "version_minor": 0 + } } }, "nbformat": 4, - "nbformat_minor": 1 + "nbformat_minor": 4 } diff --git a/examples/alanine_dipeptide_tps/AD_tps_4_advanced.ipynb b/examples/alanine_dipeptide_tps/AD_tps_4_advanced.ipynb index 470b35c37..81420cd94 100644 --- a/examples/alanine_dipeptide_tps/AD_tps_4_advanced.ipynb +++ b/examples/alanine_dipeptide_tps/AD_tps_4_advanced.ipynb @@ -19,10 +19,12 @@ "metadata": {}, "outputs": [], "source": [ + "from __future__ import print_function\n", "%matplotlib inline\n", "import openpathsampling as paths\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", + "from tqdm.auto import tqdm\n", "import os\n", "import openpathsampling.visualize as ops_vis\n", "from IPython.display import SVG" @@ -37,14 +39,14 @@ "name": "stdout", "output_type": "stream", "text": [ - "CPU times: user 11 s, sys: 1.87 s, total: 12.8 s\n", - "Wall time: 1min 57s\n" + "CPU times: user 8.36 s, sys: 1.61 s, total: 9.97 s\n", + "Wall time: 34.6 s\n" ] } ], "source": [ "%%time\n", - "flexible = paths.Storage(\"tps_nc_files/alanine_dipeptide_tps.nc\")" + "flexible = paths.Storage(\"ad_tps.nc\")" ] }, { @@ -56,14 +58,14 @@ "name": "stdout", "output_type": "stream", "text": [ - "CPU times: user 39.8 s, sys: 10.3 s, total: 50.1 s\n", - "Wall time: 14min 25s\n" + "CPU times: user 24.6 s, sys: 5.35 s, total: 30 s\n", + "Wall time: 1min 40s\n" ] } ], "source": [ "%%time\n", - "fixed = paths.Storage(\"tps_nc_files/alanine_dipeptide_fixed_tps.nc\")" + "fixed = paths.Storage(\"ad_fixed_tps.nc\")" ] }, { @@ -72,8 +74,7 @@ "metadata": {}, "outputs": [], "source": [ - "flex_scheme = flexible.schemes[0]\n", - "fixed_scheme = fixed.schemes[0]" + "flex_network = flexible.networks['tps_network']" ] }, { @@ -81,19 +82,10 @@ "execution_count": 5, "metadata": {}, "outputs": [], - "source": [ - "# TODO: cache trajectories too?" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [], "source": [ "# create the ensemble that identifies recrossings\n", - "alpha = fixed.volumes.find('C_7eq')\n", - "beta = fixed.volumes.find('alpha_R')\n", + "alpha = fixed.volumes['C_7eq']\n", + "beta = fixed.volumes['alpha_R']\n", "recrossing_ensemble = paths.SequentialEnsemble([\n", " paths.LengthEnsemble(1) & paths.AllInXEnsemble(beta),\n", " paths.OptionalEnsemble(paths.AllOutXEnsemble(alpha | beta)),\n", @@ -103,15 +95,30 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 6, "metadata": {}, "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "246784e0794347ffb070136d42a07e74", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "HBox(children=(HTML(value=''), FloatProgress(value=0.0, max=10001.0), HTML(value='')))" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, { "name": "stdout", "output_type": "stream", "text": [ - "CPU times: user 32min 45s, sys: 26.7 s, total: 33min 12s\n", - "Wall time: 38min 8s\n" + "\n", + "CPU times: user 27min 18s, sys: 7.71 s, total: 27min 26s\n", + "Wall time: 27min 54s\n" ] } ], @@ -119,7 +126,7 @@ "%%time\n", "# now we check each step to see if its trial has a recrossing\n", "steps_with_recrossing = []\n", - "for step in fixed.steps:\n", + "for step in tqdm(fixed.steps):\n", " # trials is a list of samples: with shooting, only one in the list\n", " recrossings = [] # default for initial empty move (no trials in step[0].change)\n", " for trial in step.change.trials:\n", @@ -132,7 +139,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 7, "metadata": {}, "outputs": [], "source": [ @@ -141,21 +148,21 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Trials with recrossings: 493\n", - "Accepted trials with recrossings: 109\n" + "Trials with recrossings: 532\n", + "Accepted trials with recrossings: 113\n" ] } ], "source": [ - "print \"Trials with recrossings:\", len(steps_with_recrossing)\n", - "print \"Accepted trials with recrossings:\", len(accepted_recrossings)" + "print(\"Trials with recrossings:\", len(steps_with_recrossing))\n", + "print(\"Accepted trials with recrossings:\", len(accepted_recrossings))" ] }, { @@ -174,32 +181,34 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "[]" + "[]" ] }, - "execution_count": 10, + "execution_count": 9, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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\nRK5CYII=\n", + "image/png": "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\n", "text/plain": [ - "" + "
" ] }, - "metadata": {}, + "metadata": { + "needs_background": "light" + }, "output_type": "display_data" } ], "source": [ - "psi = fixed.cvs.find('psi')\n", + "psi = fixed.cvs['psi']\n", "trajectory = accepted_recrossings[0].active[0].trajectory\n", "in_alpha_indices = [trajectory.index(s) for s in trajectory if alpha(s)]\n", "in_alpha_psi = [psi(trajectory)[i] for i in in_alpha_indices]\n", @@ -220,7 +229,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 10, "metadata": {}, "outputs": [], "source": [ @@ -232,41 +241,41 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "[1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]\n" + "[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]\n" ] } ], "source": [ - "print recrossings_per" + "print(recrossings_per)" ] }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "114\n", - "109\n", - "5\n" + "113\n", + "113\n", + "0\n" ] } ], "source": [ "# these numbers come from accepted trial steps, not all steps\n", - "print sum(recrossings_per)\n", - "print len(recrossings_per)\n", - "print len([x for x in recrossings_per if x==2])" + "print(sum(recrossings_per))\n", + "print(len(recrossings_per))\n", + "print(len([x for x in recrossings_per if x==2]))" ] }, { @@ -281,20 +290,36 @@ "execution_count": 13, "metadata": {}, "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "378f736f3e634a37aa8eb9a6bbe73b88", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "HBox(children=(HTML(value=''), FloatProgress(value=0.0, max=10001.0), HTML(value='')))" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, { "name": "stdout", "output_type": "stream", "text": [ - "CPU times: user 6h 8min 38s, sys: 2min 58s, total: 6h 11min 37s\n", - "Wall time: 6h 33min 14s\n" + "\n", + "CPU times: user 6h 11min 58s, sys: 1min 21s, total: 6h 13min 20s\n", + "Wall time: 6h 16min 54s\n" ] } ], "source": [ "%%time\n", "# transition path length distribution\n", - "flex_ens = flex_scheme.network.sampling_ensembles[0]\n", - "fixed_transition_segments = sum([flex_ens.split(step.active[0].trajectory) for step in fixed.steps],[])\n", + "flex_ens = flex_network.sampling_ensembles[0]\n", + "fixed_transition_segments = sum([flex_ens.split(step.active[0].trajectory)\n", + " for step in tqdm(fixed.steps)],[])\n", "fixed_transition_length = [len(traj) for traj in fixed_transition_segments]" ] }, @@ -316,12 +341,12 @@ "name": "stdout", "output_type": "stream", "text": [ - "10240\n" + "10232\n" ] } ], "source": [ - "print len(fixed_transition_length)" + "print(len(fixed_transition_length))" ] }, { @@ -331,19 +356,21 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYoAAAD8CAYAAABpcuN4AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAHntJREFUeJzt3X2QVdW55/HvL7wmUVGRGAEdSCRzQ5zExMYYjVSMo6Jz\nR7TUaxvLl5IJVyNl4p3UCDel5XBjRTMQrm+RoBJfYgKGxErfDISrQmJ8AxrFF0RNB1BbjBIkot4B\nbXnmj7MaD4dzdu9+O6dffp+qU7332muv8+xN00+vtfZZrYjAzMysko/UOgAzM+vZnCjMzCyTE4WZ\nmWVyojAzs0xOFGZmlsmJwszMMjlRmJlZJicKMzPL5ERhZmaZBtY6gK5wwAEHxJgxY2odhplZr7J6\n9eq/RsSItur1iUQxZswYGhsbax2GmVmvIumlPPU89GRmZpmcKMzMLJMThZmZZeoTcxRm1r+9//77\nNDc3s3379lqH0iMNHTqU0aNHM2jQoA6d70RhZr1ec3Mze++9N2PGjEFSrcPpUSKCLVu20NzczNix\nYzvUhoeezKzX2759O8OHD3eSKEMSw4cP71Rvy4nCzPoEJ4nKOntvnCjMzCxTrjkKSZOA64EBwG0R\ncW3J8SHAXcARwBbg7IjYKGk4sAiYANwREdNS/b2BPxY1MRr4WUR8R9KFwP8BXk3HboqI2zp4fWbW\nD825/8Uube/yEz6Tq94NN9zALbfcwrZt2zj99NO56aab2v1ec+fO5WMf+xjnn38+X/va15g1axZ1\ndXW71bnjjjtobGzsUPsd0WaikDQAuBk4AWgGVklqiIjniqpNAbZGxKGS6oHrgLOB7cCVwGHpBUBE\nvA0cXvQeq4FfF7W3sDWp9DjLf7D7/nEzahOHmfU4P/7xj1myZAl/+MMfOrxaxMUXX9zFUXVenqGn\nI4GmiFgfEe8BC4DJJXUmA3em7UXA8ZIUEe9GxMMUEkZZksYBn2D3HoaZWa9y8cUXs379ek499VS2\nbt26q3zz5s2cccYZTJgwgQkTJvDII48AcNlllzFz5kwAli5dysSJE9m5cydXX301s2bN2nX+z372\nM44++mgOO+wwVq5cucf7Vmq/K+UZehoFvFK03wx8uVKdiGiR9BYwHPhrjvbPodCDiKKyMyRNBF4E\nLo+IV8qf2su4N2LWZ82dO5ff/e53LF++nN/+9re7yr/97W9z+eWX89WvfpWXX36Zk046iXXr1nHt\ntdcyYcIEjj32WC677DIWL17MRz6y5+/u7777Lo8++igPPfQQF110Ec8+++xuxyu135XyJIpy0+XR\ngTqV1APnFe3/G/CLiNgh6WIKPZWv7xGUNBWYCnDIIYfkfCszs+p64IEHeO65D0fqt23bxttvv83e\ne+/NrbfeysSJE5kzZw6f/vSny55/zjnnADBx4kS2bdvG3/72t9ztd5U8iaIZOLhofzSwqUKdZkkD\ngWHAm201LOkLwMCIWN1aFhFbiqrcSmG+Yw8RMQ+YB1BXV5c3KZmZVdXOnTt57LHH+OhHP7rHsWee\neYbhw4ezaVPpj9QPlT7aWrqf1X5XyTNHsQoYJ2mspMEUegANJXUagAvS9pnAspKhpErOAX5RXCDp\noKLdU4Gu7UOZmVXRiSeeuNvTSWvWrAHgpZdeYvbs2Tz55JMsWbKEFStWlD1/4cKFADz88MMMGzaM\nYcOG5Wq/K7XZo0hzDtOApRQej50fEWslzQQaI6IBuB24W1IThZ5Efev5kjYC+wCDJZ0GnFj0xNQ/\nAKeUvOVlkk4FWlJbF3bi+sysH8r7OGs13HDDDVx66aV8/vOfp6WlhYkTJ3LLLbcwZcoUZs2axciR\nI7n99tu58MILWbVq1R7n77fffhx99NFs27aN+fPn52p/7ty5XXoNyveLf89WV1cXVfvDRaUT0qWy\nJqg9mW3WLdatW8dnP/vZWofRo5W7R5JWR0RdhVN28SezzcwskxOFmZllcqIwM7NMThRmZpbJf7io\nqxVPWHuy2sz6APcozMwsk3sUZtb3tPUYe3vlHB1oXWb8L3/5C1dccQXTp0/v9FvvtddevPPOO51u\npzOcKLpTV3+zmlmP1rrMeEf/NnVP5aEnM7MuULzM+Jw5c5g2rfAndSZPnsxdd90FwE9+8hPOPfdc\nAP785z8zadIkjjjiCI499lief/55ADZs2MBXvvIVJkyYwJVXXlmbiynhRGFm1gXmzp3LyJEjWb58\nOfvtt9+u8nnz5jFz5kz++Mc/Mnv2bG688UYApk6dyo033sjq1auZNWsW3/rWt4DCsuGXXHIJq1at\n4pOf/GRNrqWUh57MzLrRgQceyMyZMznuuOO477772H///XnnnXd49NFHOeuss3bV27FjBwCPPPII\nv/rVrwA477zzuOKKK2oSdzEnCjOzbla6nPjOnTvZd999K670WrqUeK156MnMrButXLmSJUuW8OST\nTzJr1iw2bNjAPvvsw9ixY/nlL38JQETw1FNPAXDMMcewYMECAO65556axV3MPQoz63t6yIddd+zY\nwTe/+U1++tOfMnLkSGbPns1FF13EsmXLuOeee7jkkkv4/ve/z/vvv099fT1f+MIXuP766/nGN77B\n9ddfzxlnnFHrSwC8zHj7deUjrz3km9mst/My423zMuNmZtZtnCjMzCyTE4WZ9Ql9YRi9u3T23jhR\nmFmvN3ToULZs2eJkUUZEsGXLFoYOHdrhNvzUk5n1eqNHj6a5uZnNmzfXOpQeaejQoYwePbrD5+dK\nFJImAdcDA4DbIuLakuNDgLuAI4AtwNkRsVHScGARMAG4IyKmFZ3ze+Ag4P+lohMj4o1KbXX4Cs2s\nzxs0aFCfW4ivJ2lz6EnSAOBm4GRgPHCOpPEl1aYAWyPiUGAOcF0q3w5cCXy3QvPnRsTh6fVGG22Z\nmVkN5JmjOBJoioj1EfEesACYXFJnMnBn2l4EHC9JEfFuRDxMIWHkVbatdpxvZmZdKE+iGAW8UrTf\nnMrK1omIFuAtYHiOtn8qaY2kK4uSQUfbMjOzbpAnUZT7bb700YI8dUqdGxH/BTg2vc5rT1uSpkpq\nlNToCSwzs+6TJ1E0AwcX7Y8GNlWqI2kgMAx4M6vRiHg1fX0b+DmFIa7cbUXEvIioi4i6ESNG5LgM\nMzPriDyJYhUwTtJYSYOBeqChpE4DcEHaPhNYFhkPNEsaKOmAtD0I+Hvg2Y60ZWZm3avNx2MjokXS\nNGAphcdj50fEWkkzgcaIaABuB+6W1ETht//61vMlbQT2AQZLOg04EXgJWJqSxADgAeDWdErFtszM\nrPpyfY4iIhYDi0vKrira3g6cVXpeOjamQrNHVKhfsa2a6MrVYs3MeiEv4WFmZpmcKMzMLJMThZmZ\nZXKiMDOzTE4UZmaWyYnCzMwyOVGYmVkmJwozM8vkRGFmZpmcKMzMLJMThZmZZXKiMDOzTE4UZmaW\nyYnCzMwyOVGYmVkmJwozM8vkRGFmZpmcKMzMLJMThZmZZXKiMDOzTLkShaRJkl6Q1CRpepnjQyQt\nTMdXSBqTyodLWi7pHUk3FdX/mKT/K+l5SWslXVt07EJJmyWtSa//0fnLNDOzjmozUUgaANwMnAyM\nB86RNL6k2hRga0QcCswBrkvl24Erge+WaXpWRPwd8EXgGEknFx1bGBGHp9dt7boiMzPrUnl6FEcC\nTRGxPiLeAxYAk0vqTAbuTNuLgOMlKSLejYiHKSSMXSLiPyJiedp+D3gCGN2J6zAzs26SJ1GMAl4p\n2m9OZWXrREQL8BYwPE8AkvYF/jvwYFHxGZKelrRI0sF52jEzs+6RJ1GoTFl0oM6eDUsDgV8AN0TE\n+lT8b8CYiPg88AAf9lRKz50qqVFS4+bNm9t6KzMz66A8iaIZKP6tfjSwqVKd9MN/GPBmjrbnAX+K\niH9tLYiILRGxI+3eChxR7sSImBcRdRFRN2LEiBxvZWZmHZEnUawCxkkaK2kwUA80lNRpAC5I22cC\nyyIis0ch6fsUEsp3SsoPKto9FViXI0YzM+smA9uqEBEtkqYBS4EBwPyIWCtpJtAYEQ3A7cDdkpoo\n9CTqW8+XtBHYBxgs6TTgRGAb8D3geeAJSQA3pSecLpN0KtCS2rqwi67VzMw6oM1EARARi4HFJWVX\nFW1vB86qcO6YCs2Wm9cgImYAM/LEZWZm3c+fzDYzs0xOFGZmlsmJwszMMjlRmJlZJicKMzPLlOup\nJ+smy3+w+/5xftjLzHoeJ4oaemz9lt32v3JcjQIxM8vgoSczM8vkHkU32qPH8KlcC+qamfUo7lGY\nmVkmJwozM8vkoaeexE9BmVkP5ETRmxUnFicVM+smThQ9iB+XNbOeyHMUZmaWyYnCzMwyOVGYmVkm\nJwozM8vkRGFmZpmcKMzMLJMThZmZZcqVKCRNkvSCpCZJ08scHyJpYTq+QtKYVD5c0nJJ70i6qeSc\nIyQ9k865QZJS+f6S7pf0p/R1v85fppmZdVSbiULSAOBm4GRgPHCOpPEl1aYAWyPiUGAOcF0q3w5c\nCXy3TNO3AFOBcek1KZVPBx6MiHHAg2m/13hs/ZZdLzOzviDPJ7OPBJoiYj2ApAXAZOC5ojqTgavT\n9iLgJkmKiHeBhyUdWtygpIOAfSLisbR/F3AasCS19bVU9U7g98AV7b2wnsjJw8x6ozxDT6OAV4r2\nm1NZ2ToR0QK8BWT98YVRqZ1ybR4YEa+ltl4DPlGuAUlTJTVKaty8eXOOyzAzs47IkyhUpiw6UKcz\n9fesHDEvIuoiom7EiBHtOdXMzNohT6JoBg4u2h8NbKpUR9JAYBjwZhttjq7Q5utpaKp1iOqNHDGa\nmVk3yZMoVgHjJI2VNBioBxpK6jQAF6TtM4FlEVGxh5CGlN6WdFR62ul84Ddl2rqgqNzMzGqgzcns\niGiRNA1YCgwA5kfEWkkzgcaIaABuB+6W1EShJ1Hfer6kjcA+wGBJpwEnRsRzwCXAHcBHKUxiL0mn\nXAvcK2kK8DJwVldcqJmZdUyuv0cREYuBxSVlVxVtb6fCD/SIGFOhvBE4rEz5FuD4PHGZmVn38yez\nzcwskxOFmZllcqIwM7NMThRmZpbJicLMzDLleurJeoY597+42/7l/tczsypwj8LMzDI5UZiZWSYn\nCjMzy+RR7h6sdE7CzKwW3KMwM7NM7lH0EW31Pi4/4TNVisTM+hr3KMzMLJN7FH3EUS/P223/8UOm\n1igSM+tr3KMwM7NMThRmZpbJQ0+92GPrt9Q6BDPrB9yjMDOzTE4UZmaWyUNP/cQeK8/6cxVmllOu\nHoWkSZJekNQkaXqZ40MkLUzHV0gaU3RsRip/QdJJqew/S1pT9Nom6Tvp2NWSXi06dkrXXKqZmXVE\nmz0KSQOAm4ETgGZglaSGiHiuqNoUYGtEHCqpHrgOOFvSeKAe+BwwEnhA0mci4gXg8KL2XwXuK2pv\nTkTM6vzlmZlZZ+XpURwJNEXE+oh4D1gATC6pMxm4M20vAo6XpFS+ICJ2RMQGoCm1V+x44M8R8VJH\nL8LMzLpPnkQxCnilaL85lZWtExEtwFvA8Jzn1gO/KCmbJulpSfMl7VcuKElTJTVKaty8eXOOyzAz\ns47IM5mtMmWRs07muZIGA6cCM4qO3wL8S6r3L8Bs4KI9GomYB8wDqKurK42nTypdpsPMrBry9Cia\ngYOL9kcDmyrVkTQQGAa8mePck4EnIuL11oKIeD0iPoiIncCt7DlUZWZmVZSnR7EKGCdpLIVJ53rg\nGyV1GoALgMeAM4FlERGSGoCfS/oRhcnsccDKovPOoWTYSdJBEfFa2j0deLZ9l2Qd4cdnzaySNhNF\nRLRImgYsBQYA8yNiraSZQGNENAC3A3dLaqLQk6hP566VdC/wHNACXBoRHwBI+hiFJ6n+seQtfyjp\ncApDTxvLHDczsyrK9YG7iFgMLC4pu6poeztwVoVzrwGuKVP+HxQmvEvLz8sTk5mZVYeX8DAzs0xe\nwqOfautPp5qZtXKPwszMMjlRmJlZJg89dZL/eJCZ9XVOFFZW8RyGP1Nh1r956MnMzDI5UZiZWSYn\nCjMzy+Q5ih7Mq8WaWU/gHoWZmWVyojAzs0xOFGZmlsmJwszMMnkyu48qnQh//JCpNYrEzHo79yjM\nzCyTE4WZmWVyojAzs0xOFGZmlsmT2f2EJ7fNrKNyJQpJk4DrgQHAbRFxbcnxIcBdwBHAFuDsiNiY\njs0ApgAfAJdFxNJUvhF4O5W3RERdKt8fWAiMATYC/xARWztxjdbFSv+MqpchN+vb2hx6kjQAuBk4\nGRgPnCNpfEm1KcDWiDgUmANcl84dD9QDnwMmAT9O7bU6LiIOb00SyXTgwYgYBzyY9s3MrEbyzFEc\nCTRFxPqIeA9YAEwuqTMZuDNtLwKOl6RUviAidkTEBqAptZeluK07gdNyxGhmZt0kT6IYBbxStN+c\nysrWiYgW4C1geBvnBvDvklZLKh4wPzAiXkttvQZ8It+lmJlZd8gzR6EyZZGzTta5x0TEJkmfAO6X\n9HxEPJQjnsIbFpLLVIBDDjkk72lmZtZOeRJFM3Bw0f5oYFOFOs2SBgLDgDezzo2I1q9vSLqPwpDU\nQ8Drkg6KiNckHQS8US6oiJgHzAOoq6srTVzWhUonr82sf8kz9LQKGCdprKTBFCanG0rqNAAXpO0z\ngWUREam8XtIQSWOBccBKSR+XtDeApI8DJwLPlmnrAuA3Hbs0MzPrCm32KCKiRdI0YCmFx2PnR8Ra\nSTOBxohoAG4H7pbURKEnUZ/OXSvpXuA5oAW4NCI+kHQgcF9hvpuBwM8j4nfpLa8F7pU0BXgZOKsL\nr9cSf67CzPLK9TmKiFgMLC4pu6poezsVfqBHxDXANSVl64EvVKi/BTg+T1xmZtb9vISHmZll8hIe\n1mn+pLZZ3+YehZmZZXKiMDOzTE4UZmaWyXMU1uU8Z2HWt7hHYWZmmZwozMwskxOFmZll8hxFOz22\nfkutQzAzqyr3KMzMLJMThZmZZfLQk3W79jwu60drzXoe9yjMzCyTE4WZmWXy0FMb/JSTmfV37lGY\nmVkmJwozM8vkRGFmZpmcKMzMLFOuRCFpkqQXJDVJml7m+BBJC9PxFZLGFB2bkcpfkHRSKjtY0nJJ\n6yStlfTtovpXS3pV0pr0OqXzl2k9yZz7X9ztZWY9W5tPPUkaANwMnAA0A6skNUTEc0XVpgBbI+JQ\nSfXAdcDZksYD9cDngJHAA5I+A7QA/zMinpC0N7Ba0v1Fbc6JiFlddZFmZtZxeR6PPRJoioj1AJIW\nAJOB4kQxGbg6bS8CbpKkVL4gInYAGyQ1AUdGxGPAawAR8bakdcCokjatio56ed5u+48fMrVL6ppZ\n75cnUYwCXinabwa+XKlORLRIegsYnsofLzl3VPGJaZjqi8CKouJpks4HGin0PLbmiNN6KQ8/mfVs\neeYoVKYsctbJPFfSXsCvgO9ExLZUfAvwaeBwCr2O2WWDkqZKapTUuHnz5uwrMDOzDsuTKJqBg4v2\nRwObKtWRNBAYBryZda6kQRSSxD0R8evWChHxekR8EBE7gVspDH3tISLmRURdRNSNGDEix2WYmVlH\n5EkUq4BxksZKGkxhcrqhpE4DcEHaPhNYFhGRyuvTU1FjgXHAyjR/cTuwLiJ+VNyQpIOKdk8Hnm3v\nRVnnHfXyvF0vM+vf2pyjSHMO04ClwABgfkSslTQTaIyIBgo/9O9Ok9VvUkgmpHr3UpikbgEujYgP\nJH0VOA94RtKa9Fb/HBGLgR9KOpzCENVG4B+78HrNzKydci0KmH6ALy4pu6poeztwVoVzrwGuKSl7\nmPLzF0TEeXlisv7Bf5/CrPa8eqy1ycNPZv2bl/AwM7NM7lFYp1XzA3jtHYrK+oyGh7HM8nGisC5X\ny09u+8N7Zl3PicK6XVcmjtK25tzv5UPMupvnKMzMLJMThZmZZfLQk/Vb/oyGWT7uUZiZWSb3KKzq\nOvO3L8ys+tyjMDOzTE4UZmaWyUNP1qP0pKGmtia7PRlu/YUThfVbeyalWZn12/up7+L6TiLWmzlR\nWM31pF5Etbg3Yr2JE4VZ0p3rRHX3GlTuvVh3cqKwXq2WCxB2pbYSiX/4Wy05UZh1kWquXOtVcq2a\nnCisT+svPQ6z7uREUWr5D2odgdVIX00qHrayzsqVKCRNAq4HBgC3RcS1JceHAHcBRwBbgLMjYmM6\nNgOYAnwAXBYRS7PalDQWWADsDzwBnBcR73XuMs2sVWcSSWeTkJNY79RmopA0ALgZOAFoBlZJaoiI\n54qqTQG2RsShkuqB64CzJY0H6oHPASOBByS1fmdUavM6YE5ELJA0N7V9S1dcrFln9JYeR2c/H9KZ\nxFGqvX+qtppJy/LL06M4EmiKiPUAkhYAk4HiRDEZuDptLwJukqRUviAidgAbJDWl9ijXpqR1wNeB\nb6Q6d6Z2nSgsl97ymYzOJp32nN+ZDwpWm+dieqY8iWIU8ErRfjPw5Up1IqJF0lvA8FT+eMm5o9J2\nuTaHA3+LiJYy9avisfVbqvl2VmVdmUja01ZbiaCttrqy99JWkuktPac9lMwvzmk5Y7f9rCVY2lqe\npS3t6Tn1xp5PnkShMmWRs06l8nKLEWbV3zMoaSrQ+h38jqQXytXL4QDgrx08tzs5rvbphrhmd0Uj\nKa7OttXW+VnHKx7LGVvHY/+njp3WoX/LPd/rn3PHkjPOinG15zo7eE+ydOZ7/z/lqZQnUTQDBxft\njwY2VajTLGkgMAx4s41zy5X/FdhX0sDUqyj3XgBExDyg078eSmqMiLrOttPVHFf7OK7266mxOa72\nqUZceZYZXwWMkzRW0mAKk9MNJXUagAvS9pnAsoiIVF4vaUh6mmkcsLJSm+mc5akNUpu/6fjlmZlZ\nZ7XZo0hzDtOApRQeZZ0fEWslzQQaI6IBuB24O01Wv0nhBz+p3r0UJr5bgEsj4gOAcm2mt7wCWCDp\n+8CTqW0zM6uRXJ+jiIjFwOKSsquKtrcDZ1U49xrgmjxtpvL1fPhkVDX01MdkHFf7OK7266mxOa72\n6fa4VBjtMTMzK89/CtXMzDL160QhaZKkFyQ1SZpe41g2SnpG0hpJjalsf0n3S/pT+rpfFeKYL+kN\nSc8WlZWNQwU3pPv3tKQvVTmuqyW9mu7ZGkmnFB2bkeJ6QdJJ3RjXwZKWS1onaa2kb6fymt6zjLhq\nes8kDZW0UtJTKa7/ncrHSlqR7tfC9JAL6UGYhSmuFZLGVDmuOyRtKLpfh6fyqn3vp/cbIOlJSb9N\n+9W9XxHRL18UJtH/DHwKGAw8BYyvYTwbgQNKyn4ITE/b04HrqhDHROBLwLNtxQGcAiyh8PmXo4AV\nVY7rauC7ZeqOT/+eQ4Cx6d95QDfFdRDwpbS9N/Biev+a3rOMuGp6z9J175W2BwEr0n24F6hP5XOB\nS9L2t4C5abseWNhN96tSXHcAZ5apX7Xv/fR+/wT8HPht2q/q/erPPYpdS5NEYdHB1qVJepLJFJYx\nIX09rbvfMCIeovDkWp44JgN3RcHjFD4Dc1AV46pk19IxEbEBKF46pqvjei0inkjbbwPrKKwmUNN7\nlhFXJVW5Z+m630m7g9IrKCzdsyiVl96v1vu4CDheUrkP5nZXXJVU7Xtf0mjgvwG3pX1R5fvVnxNF\nuaVJqrpcSIkA/l3SahU+dQ5wYES8BoX/+MAnahRbpTh6wj2clrr+84uG5moSV+rmf5HCb6M95p6V\nxAU1vmdpGGUN8AZwP4XeS6Wle3ZbHghoXR6o2+OKiNb7dU26X3NUWCl7t7jKxNzV/hX4X8DOtJ+1\n1FG33K/+nChyLxdSJcdExJeAk4FLJU2sYSx51foe3gJ8GjgceI0P15qoelyS9gJ+BXwnIrZlVS1T\n1m2xlYmr5vcsIj6IiMMprLxwJPDZjPeuWVySDgNmAH8HTKDwpw+uqGZckv4eeCMiVhcXZ7x3t8TV\nnxNFnqVJqiYiNqWvbwD3UfgP9HprdzZ9faNG4VWKo6b3MCJeT/+5dwK38uFQSVXjkjSIwg/jeyLi\n16m45vesXFw95Z6lWP4G/J7CGP++Kiz/U/reu+LS7ssDVSOuSWkIL6KwAvZPqf79OgY4VdJGCsPj\nX6fQw6jq/erPiSLP0iRVIenjkvZu3QZOBJ5l96VRarmcSaU4GoDz0xMgRwFvtQ63VEPJmPDpFO5Z\na1zllo7pjhhEYfWAdRHxo6JDNb1nleKq9T2TNELSvmn7o8B/pTB/UmnpnkrLA1UjrueLkr0ozAMU\n369u/3eMiBkRMToixlD4GbUsIs6l2verq2ble+OLwpMLL1IYI/1eDeP4FIUnTp4C1rbGQmFs8UHg\nT+nr/lWI5RcUhiTep/DbyZRKcVDo5t6c7t8zQF2V47o7ve/T6T/IQUX1v5fiegE4uRvj+iqFrv3T\nwJr0OqXW9ywjrpreM+DzFJbmeZrCD92riv4PrKQwif5LYEgqH5r2m9LxT1U5rmXpfj0L/IwPn4yq\n2vd+UYxf48Onnqp6v/zJbDMzy9Sfh57MzCwHJwozM8vkRGFmZpmcKMzMLJMThZmZZXKiMDOzTE4U\nZmaWyYnCzMwy/X9DvDckIcoihgAAAABJRU5ErkJggg==\n", + "image/png": "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\n", "text/plain": [ - "" + "
" ] }, - "metadata": {}, + "metadata": { + "needs_background": "light" + }, "output_type": "display_data" } ], "source": [ "bins = np.linspace(0, 400, 80);\n", - "plt.hist(flexible_transition_length, bins, alpha=0.5, normed=True, label=\"flexible\");\n", - "plt.hist(fixed_transition_length, bins, alpha=0.5, normed=True, label=\"fixed\");\n", + "plt.hist(flexible_transition_length, bins, alpha=0.5, density=True, label=\"flexible\");\n", + "plt.hist(fixed_transition_length, bins, alpha=0.5, density=True, label=\"fixed\");\n", "plt.legend(loc='upper right');" ] }, @@ -373,7 +400,7 @@ "outputs": [], "source": [ "# first, we fully subdivide the Ramachandran space\n", - "phi = fixed.cvs.find('phi')\n", + "phi = fixed.cvs['phi']\n", "deg = 180.0/np.pi\n", "nml_plus = paths.PeriodicCVDefinedVolume(psi, -160/deg, -100/deg, -np.pi, np.pi)\n", "nml_minus = paths.PeriodicCVDefinedVolume(psi, 0/deg, 100/deg, -np.pi, np.pi)\n", @@ -470,18 +497,18 @@ "name": "stdout", "output_type": "stream", "text": [ - "increasing: 6670\n", - "decreasing: 3570\n", + "increasing: 7185\n", + "decreasing: 3047\n", " multiple: 0\n", " None: 0\n" ] } ], "source": [ - "print \"increasing:\", len(categorized[increasing])\n", - "print \"decreasing:\", len(categorized[decreasing])\n", - "print \" multiple:\", len(categorized['multiple'])\n", - "print \" None:\", len(categorized[None])" + "print(\"increasing:\", len(categorized[increasing]))\n", + "print(\"decreasing:\", len(categorized[decreasing]))\n", + "print(\" multiple:\", len(categorized['multiple']))\n", + "print(\" None:\", len(categorized[None]))" ] }, { @@ -519,10 +546,10 @@ } ], "source": [ - "print \"increasing:\", len(flex_categorized[increasing])\n", - "print \"decreasing:\", len(flex_categorized[decreasing])\n", - "print \" multiple:\", len(flex_categorized['multiple'])\n", - "print \" None:\", len(flex_categorized[None])" + "print(\"increasing:\", len(flex_categorized[increasing]))\n", + "print(\"decreasing:\", len(flex_categorized[decreasing]))\n", + "print(\" multiple:\", len(flex_categorized['multiple']))\n", + "print(\" None:\", len(flex_categorized[None]))" ] }, { @@ -539,18 +566,20 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ - "" + "
" ] }, - "metadata": {}, + "metadata": { + "needs_background": "light" + }, "output_type": "display_data" } ], "source": [ - "plt.hist([len(traj) for traj in flex_categorized[decreasing]], bins, alpha=0.5, normed=True);\n", - "plt.hist([len(traj) for traj in categorized[decreasing]], bins, alpha=0.5, normed=True);" + "plt.hist([len(traj) for traj in flex_categorized[decreasing]], bins, alpha=0.5, density=True);\n", + "plt.hist([len(traj) for traj in categorized[decreasing]], bins, alpha=0.5, density=True);" ] }, { @@ -562,10 +591,8 @@ }, { "cell_type": "code", - "execution_count": 29, - "metadata": { - "collapsed": true - }, + "execution_count": 26, + "metadata": {}, "outputs": [], "source": [ "full_fixed_tree = ops_vis.PathTree(\n", @@ -577,14 +604,14 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 27, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "115\n" + "114\n" ] } ], @@ -595,7 +622,7 @@ "decorrelated_transitions = sum([flex_ens.split(traj) for traj in fixed_decorrelated], [])\n", "# find the A->B transition from these which are decreasing\n", "decorrelated_decreasing = sum([decreasing.split(traj) for traj in decorrelated_transitions], [])\n", - "print len(decorrelated_decreasing)" + "print(len(decorrelated_decreasing))" ] }, { @@ -609,22 +636,24 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 28, "metadata": {}, "outputs": [ { "data": { - "image/png": "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\nTkSuQmCC\n", + "image/png": "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\n", "text/plain": [ - "" + "
" ] }, - "metadata": {}, + "metadata": { + "needs_background": "light" + }, "output_type": "display_data" } ], "source": [ - "plt.hist([len(traj) for traj in categorized[increasing]], bins, normed=True, alpha=0.5, color='g');" + "plt.hist([len(traj) for traj in categorized[increasing]], bins, density=True, alpha=0.5, color='g');" ] }, { @@ -636,10 +665,8 @@ }, { "cell_type": "code", - "execution_count": 32, - "metadata": { - "collapsed": true - }, + "execution_count": 29, + "metadata": {}, "outputs": [], "source": [ "def find_switches(ensembles, trajectories):\n", @@ -663,10 +690,8 @@ }, { "cell_type": "code", - "execution_count": 33, - "metadata": { - "collapsed": true - }, + "execution_count": 30, + "metadata": {}, "outputs": [], "source": [ "switches = find_switches([increasing, decreasing], fixed_transition_segments)" @@ -674,19 +699,19 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": 31, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "[0, 14, 406, 443, 458, 512, 669, 784, 972, 986, 1010, 1136, 1672, 1984, 1998, 2018, 2115, 2154, 2379, 2519, 2682, 2743, 2930, 3038, 3090, 3093, 3307, 3339, 3538, 3884, 3974, 3981, 4255, 4332, 4370, 4560, 4825, 4884, 4885, 4886, 4887, 4888, 4988, 4998, 5027, 5105, 5370, 5414, 5533, 5638, 5657, 5701, 5752, 5761, 6124, 6151, 6322, 6634, 7042, 7114, 7441, 7494, 7521, 7584, 7767, 7839, 7944, 7950, 8321, 8414, 8615, 8719, 9610, 9611, 9972, 10055, 10106, 10175] 10230\n" + "[0, 2, 39, 78, 394, 513, 584, 636, 711, 718, 1359, 1392, 1504, 1623, 1952, 2225, 2339, 2438, 2633, 2639, 2642, 2705, 2925, 2977, 3160, 3295, 3296, 3371, 3723, 3812, 4094, 4208, 4942, 4955, 5005, 5232, 5245, 5349, 5511, 5520, 5576, 5655, 5697, 5745, 5839, 5848, 5931, 5958, 6000, 6012, 6214, 6244, 6485, 6503, 6538, 6545, 6629, 6635, 6905, 7338, 7756, 7775, 7967, 7974, 8008, 8049, 8065, 8296, 8524, 8530, 8539, 8591, 9051, 9252, 9287, 9293, 9343, 9349, 9634, 9637, 9912, 10088] 10232\n" ] } ], "source": [ - "print [switch[1] for switch in switches], len(fixed_transition_segments)" + "print([switch[1] for switch in switches], len(fixed_transition_segments))" ] }, { @@ -707,10 +732,8 @@ }, { "cell_type": "code", - "execution_count": 48, - "metadata": { - "collapsed": true - }, + "execution_count": 32, + "metadata": {}, "outputs": [], "source": [ "every_50th_trajectory = [step.active[0].trajectory for step in fixed.steps[::50]]" @@ -718,10 +741,8 @@ }, { "cell_type": "code", - "execution_count": 49, - "metadata": { - "collapsed": true - }, + "execution_count": 33, + "metadata": {}, "outputs": [], "source": [ "# make a set to remove duplicates, if trajs aren't decorrelated\n", @@ -731,67 +752,57 @@ }, { "cell_type": "code", - "execution_count": 50, + "execution_count": 34, "metadata": {}, "outputs": [ { - "name": "stderr", + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "d3576e09dc5547b68ab1a1f47e3865e4", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "HBox(children=(HTML(value=''), FloatProgress(value=0.0, max=79884.0), HTML(value='')))" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", "output_type": "stream", "text": [ - "No handlers could be found for logger \"openpathsampling.engines.dynamics_engine\"\n" + "\n" ] } ], "source": [ - "# this is ugly as sin: we need a better way of doing it (ideally as a snapshot feature)\n", - "\n", - "# dof calculation taken from OpenMM's StateDataReporter\n", - "import simtk.openmm as mm\n", - "import simtk.unit\n", - "dof = 0\n", - "system = engine.simulation.system\n", - "dofs_from_particles = 0\n", - "for i in range(system.getNumParticles()):\n", - " if system.getParticleMass(i) > 0*simtk.unit.dalton:\n", - " dofs_from_particles += 3\n", - "dofs_from_constraints = system.getNumConstraints()\n", - "dofs_from_motion_removers = 0\n", - "if any(type(system.getForce(i)) == mm.CMMotionRemover for i in range(system.getNumForces())):\n", - " dofs_from_motion_removers += 3\n", - "dof = dofs_from_particles - dofs_from_constraints - dofs_from_motion_removers\n", - "#print dof, \"=\", dofs_from_particles, \"-\", dofs_from_constraints, \"-\", dofs_from_motion_removers\n", - "\n", - "kinetic_energies = []\n", - "potential_energies = []\n", - "temperatures = []\n", - "R = simtk.unit.BOLTZMANN_CONSTANT_kB * simtk.unit.AVOGADRO_CONSTANT_NA\n", - "for snap in every_50th_traj_snapshots:\n", - " engine.current_snapshot = snap\n", - " state = engine.simulation.context.getState(getEnergy=True)\n", - " ke = state.getKineticEnergy()\n", - " temperatures.append(2 * ke / dof / R)" + "temperatures = [snap.instantaneous_temperature for snap in tqdm(every_50th_traj_snapshots)]" ] }, { "cell_type": "code", - "execution_count": 51, + "execution_count": 36, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Mean temperature: 300.33 K\n" + "Mean temperature: 300.40 K\n" ] }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAhoAAAFkCAYAAABmeZIKAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAAPYQAAD2EBqD+naQAAIABJREFUeJzt3Xm41NT5B/DvCxQURGhFQH6isoiiuMAVxQUQUUDrvrSi\ntu6taxVrpaiIG2JtBcSFulZZilVaqygKKihSEOVeQJRFkVWQVbhsslzu+/vjJE4mk8xk5k4mM3O/\nn+fJM5PkJDlnsr05OcmIqoKIiIgoDDWizgAREREVLwYaREREFBoGGkRERBQaBhpEREQUGgYaRERE\nFBoGGkRERBQaBhpEREQUGgYaREREFBoGGkRERBQaBhpEREQUmrQCDREZICKVrm6eY3wdEXlaRNaL\nyBYRGSsijV3zaC4i74jINhFZLSKPiQgDHiIioiJUK4NpvgTQHYBY/RWOcUMBnAngIgCbATwN4N8A\nOgOAFVCMB7AKQCcAzQCMBLALwL0Z5IWIiIjymKTzp2oiMgDAearawWPcvgDWAbhUVd+whh0GYD6A\nTqr6mYicCeAtAAeo6norze8BPApgf1WtcM+XiIiIClcmtywOFZGVIvKtiIwSkebW8BKYGpIP7YSq\nuhDAcgAnWoM6AZhrBxmWCQAaADgyg7wQERFRHkv31smnAK4CsBDAAQDuBzBFRNoBaApgl6pudk2z\nxhoH63ONx3h73ByvhYrIfgB6AlgKYEeaeSYiIqrO9gJwCIAJqroh1wtPK9BQ1QmO3i9F5DMAywD8\nCv4BgAAIcn8mWZqeAEYHyiQRERF5uRzAP3O90Ewag/5EVctF5GsArQF8AKC2iOzrqtVojFitxWoA\nHV2zaWJ9ums6nJYCwKhRo9C2bduqZDnv9enTB0OGDIk6G6FjOYsLy1l8qktZq0M558+fjyuuuAKw\nzqW5VqVAQ0T2AdAKwCsASmGeQOkOwG4M2gbAQQCmWZNMB3C3iDRytNPoAaAcwDz42wEAbdu2RYcO\nCe1Qi0qDBg2KvowAy1lsWM7iU13KWl3KaYmk6UFagYaI/BXAOJjbJf8H4AGY4OJVVd0sIi8CGCwi\nGwFsATAMwP9U9XNrFhNhAoqRItIXpp3HQwCeUtXd2SgQERER5Y90azQOhLm/sx/Mo6xTYR5dtRuX\n9AGwB8BYAHUAvAfgZntiVa0UkbMBDIep5dgG4GUAAzIvAhEREeWrdBuD9k4xfieAW63OL80KAGen\ns1wiIiIqTHz1d57p3TtpLFc0WM7iwnIWn+pS1upSziil9WbQqIhIBwClpaWl1anRDhERUZWVlZWh\npKQEAEpUtSzXy2eNBhEREYWGgQYRERGFhoEGERERhYaBBhEREYWGgQYRERGFhoEGERERhYaBBhER\nEYWGgQYRERGFhoEGERERhYaBBhEREYWGgQYRERGFhoEGERERhYaBBhEREYWGgQYRERGFhoEGERER\nhYaBBhEREYWGgQYRERGFhoEGERERhYaBBhEREYWGgQYRERGFhoEGERERhYaBBhEREYWGgQYRERGF\nhoEGERERhYaBBhEREYWGgQYRERGFhoEGERERhYaBBhEREYWGgQYRERGFhoEGEREVvdNOA268Mepc\nVE8MNIiIqOhNngz8/e9R56J6YqBBREREoWGgQURERKFhoEFEREShYaBBREREoWGgQURERKFhoEFE\nREShYaBBREREoWGgQURERKFhoEFEREShYaBBREREoWGgQURERKFhoEFEREShYaBBREREoWGgQURE\nRKFhoEFEREShYaBBRESBLVoUdQ6o0DDQICKiQKZPBw49FHjnnahzQoWEgQYREQWyfLn5zKRWY/du\nYL/9gEmTspsnyn9VCjREpJ+IVIrIYMewj6xhdrdHRJ5xTddcRN4RkW0islpEHhMRBj1EREVq82bg\nhx+Axx+POieUa7UynVBEOgK4HsAc1ygF8ByA/gDEGrbdMV0NAOMBrALQCUAzACMB7AJwb6b5ISIi\novyTUS2CiOwDYBSA6wBs8kiyXVXXqepaq9vqGNcTwOEALlfVuao6ASYouVlEMg58iIgoXJs3m8+J\nE6PNBxWWTG9XPA1gnKr63W27XETWichcEXlERPZ2jOsEYK6qrncMmwCgAYAjM8wPERGFbOVK8zl+\nfLT5oMKSdg2CiFwK4FgAx/kkGQ1gGcytkaMBPAagDYCLrfFNAaxxTbPGMc59K4aIiCiBqmlkWrt2\n1DmhZNIKNETkQABDAZyhqru90qjqC47er0RkNYAPRaSFqi5JsQhNNrJPnz5o0KBB3LDevXujd+/e\nqTNPRERF5ckngdtuA3buZLBhGzNmDMaMGRM3rLy8PKLcGOnWaJQA2B9AqYjYDT1rAugiIrcAqKOq\n7mBhhvXZGsASAKsBdHSlaWJ9ums64gwZMgQdOnRIM8tERFSMxo0zn6zViPG6+C4rK0NJSUlEOUq/\n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\n", + "image/png": "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\n", "text/plain": [ - "" + "
" ] }, - "metadata": {}, + "metadata": { + "needs_background": "light" + }, "output_type": "display_data" } ], @@ -799,7 +810,7 @@ "plt.plot([T / T.unit for T in temperatures])\n", "mean_T = np.mean(temperatures)\n", "plt.plot([mean_T / mean_T.unit]*len(temperatures), 'r')\n", - "print \"Mean temperature:\", np.mean(temperatures).format(\"%.2f\")" + "print(\"Mean temperature:\", np.mean(temperatures).format(\"%.2f\"))" ] } ], @@ -819,7 +830,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.3" + "version": "3.7.8" }, "toc": { "base_numbering": 1, @@ -862,8 +873,295 @@ "_Feature" ], "window_display": false + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": { + "02c82c7403df4ffaa0068f7a3344ba08": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "layout": "IPY_MODEL_c1c5d6a361654ed0b67b9fa4d3f58600", + "style": "IPY_MODEL_d8fc785dc5504c46bd69c1aefa576332", + "value": "100%" + } + }, + "0585f4a521c0473088c3e00ed7642955": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "description_width": "" + } + }, + "08b5bf06ce474b77a74aaeb364c752fa": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "description_width": "" + } + }, + "0b90f9fbd4bf44e0bdf14919dad0f0aa": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "description_width": "" + } + }, + "10dda674cfad493ab2c98e128648603a": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "layout": "IPY_MODEL_bbb3a00810de43f3b1f3bf5d33b630f6", + "style": "IPY_MODEL_4a3698c04212405a838bc8bb49efe000", + "value": " 10001/10001 [6:44:57<00:00, 2.43s/it]" + } + }, + "110c88f0537a47519a1e9b76c58b8653": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "15666400666841ec897ca54150a0bbcf": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "241ae0f9f3bd4c3692bc8c7e41714d6b": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "layout": "IPY_MODEL_66ef12f9660240d9bbdee5a6edcf5998", + "style": "IPY_MODEL_0585f4a521c0473088c3e00ed7642955", + "value": "100%" + } + }, + "246784e0794347ffb070136d42a07e74": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HBoxModel", + "state": { + "children": [ + "IPY_MODEL_30855b80ca40478a93be6e01f4a6e2e2", + "IPY_MODEL_493e40f93dba41e699cd97e0d889903b", + "IPY_MODEL_c38b78fd34fa4bd4808a5b5d90e240aa" + ], + "layout": "IPY_MODEL_9e55b7f78fa04ec7a6201f526e19fead" + } + }, + "30855b80ca40478a93be6e01f4a6e2e2": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "layout": "IPY_MODEL_9b60bb1c229c401dafce872e434472b1", + "style": "IPY_MODEL_0b90f9fbd4bf44e0bdf14919dad0f0aa", + "value": "100%" + } + }, + "378f736f3e634a37aa8eb9a6bbe73b88": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HBoxModel", + "state": { + "children": [ + "IPY_MODEL_02c82c7403df4ffaa0068f7a3344ba08", + "IPY_MODEL_c0f1af53623a4939a987f2a892816507", + "IPY_MODEL_10dda674cfad493ab2c98e128648603a" + ], + "layout": "IPY_MODEL_67183a3f84ec495187d03ab41b772c26" + } + }, + "48b70d4bc5f24fb1bc23323103de43c9": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "493e40f93dba41e699cd97e0d889903b": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "bar_style": "success", + "layout": "IPY_MODEL_110c88f0537a47519a1e9b76c58b8653", + "max": 10001, + "style": "IPY_MODEL_e22f1fe05d4e43dabb56b7a8301ddb4b", + "value": 10001 + } + }, + "4a3698c04212405a838bc8bb49efe000": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "description_width": "" + } + }, + "572aa795e9d04a4e9d818df6c4f4f89e": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "bar_style": "success", + "layout": "IPY_MODEL_cc38a07d70cb4a1eb975101c9b4e3f8c", + "max": 79884, + "style": "IPY_MODEL_08b5bf06ce474b77a74aaeb364c752fa", + "value": 79884 + } + }, + "63e40d9198334917a8b5a126f7675922": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "description_width": "" + } + }, + "66ef12f9660240d9bbdee5a6edcf5998": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "67183a3f84ec495187d03ab41b772c26": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "761c62d419b945f29573265ff7a8df29": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "95d82d70f5334124be0c4bccef7a707e": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "description_width": "" + } + }, + "9b60bb1c229c401dafce872e434472b1": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "9e55b7f78fa04ec7a6201f526e19fead": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "bbb3a00810de43f3b1f3bf5d33b630f6": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "c0f1af53623a4939a987f2a892816507": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "bar_style": "success", + "layout": "IPY_MODEL_761c62d419b945f29573265ff7a8df29", + "max": 10001, + "style": "IPY_MODEL_63e40d9198334917a8b5a126f7675922", + "value": 10001 + } + }, + "c1c5d6a361654ed0b67b9fa4d3f58600": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "c38b78fd34fa4bd4808a5b5d90e240aa": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "layout": "IPY_MODEL_48b70d4bc5f24fb1bc23323103de43c9", + "style": "IPY_MODEL_d3ef304de0fa49e6b0cafd0b93c0ec62", + "value": " 10001/10001 [1:51:40<00:00, 1.49it/s]" + } + }, + "c85d4a1301c145e795dcdfc21bc9f4c1": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "cc38a07d70cb4a1eb975101c9b4e3f8c": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": {} + }, + "d3576e09dc5547b68ab1a1f47e3865e4": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HBoxModel", + "state": { + "children": [ + "IPY_MODEL_241ae0f9f3bd4c3692bc8c7e41714d6b", + "IPY_MODEL_572aa795e9d04a4e9d818df6c4f4f89e", + "IPY_MODEL_e78d0d5c48584e6b8b4ff7771fc39887" + ], + "layout": "IPY_MODEL_15666400666841ec897ca54150a0bbcf" + } + }, + "d3ef304de0fa49e6b0cafd0b93c0ec62": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "description_width": "" + } + }, + "d8fc785dc5504c46bd69c1aefa576332": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "description_width": "" + } + }, + "e22f1fe05d4e43dabb56b7a8301ddb4b": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "description_width": "" + } + }, + "e78d0d5c48584e6b8b4ff7771fc39887": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "layout": "IPY_MODEL_c85d4a1301c145e795dcdfc21bc9f4c1", + "style": "IPY_MODEL_95d82d70f5334124be0c4bccef7a707e", + "value": " 79884/79884 [1:26:12<00:00, 15.44it/s]" + } + } + }, + "version_major": 2, + "version_minor": 0 + } } }, "nbformat": 4, - "nbformat_minor": 1 + "nbformat_minor": 4 } From 67177a117de98f33fed01387a035d13102ff2b79 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Fri, 23 Oct 2020 15:49:15 +0200 Subject: [PATCH 430/464] add SnapshotsTable class (and tests) --- .../experimental/simstore/storage.py | 4 +- .../experimental/storage/ops_storage.py | 1 + .../experimental/storage/snapshots_table.py | 60 ++++++++++ .../storage/test_snapshots_table.py | 113 ++++++++++++++++++ 4 files changed, 176 insertions(+), 2 deletions(-) create mode 100644 openpathsampling/experimental/storage/snapshots_table.py create mode 100644 openpathsampling/experimental/storage/test_snapshots_table.py diff --git a/openpathsampling/experimental/simstore/storage.py b/openpathsampling/experimental/simstore/storage.py index 796d0ac63..08cbf47b2 100644 --- a/openpathsampling/experimental/simstore/storage.py +++ b/openpathsampling/experimental/simstore/storage.py @@ -577,8 +577,8 @@ def _get_uuid_and_name(obj): def get_by_uuid(self, uuid): return self._uuid_to_obj[uuid] - # NOTE: index can get confusing because you can have two equal volumes - # (same CV, same range) with one named and the other not named. + # NOTE: .index() can get confusing because you can have two equal + # volumes (same CV, same range) with one named and the other not named. def __getitem__(self, item): try: diff --git a/openpathsampling/experimental/storage/ops_storage.py b/openpathsampling/experimental/storage/ops_storage.py index 60a3ebc7f..803ff1091 100644 --- a/openpathsampling/experimental/storage/ops_storage.py +++ b/openpathsampling/experimental/storage/ops_storage.py @@ -234,6 +234,7 @@ def _build_ops_serializer(schema, safe_codecs, unsafe_codecs): 'pathsimulators': paths.PathSimulator, 'pathmovers': paths.PathMover, 'networks': paths.TransitionNetwork, + 'schemes': paths.MoveScheme, 'cvs': (paths.CollectiveVariable, StorableFunction), 'engines': paths.engines.DynamicsEngine } # TODO: add more to these diff --git a/openpathsampling/experimental/storage/snapshots_table.py b/openpathsampling/experimental/storage/snapshots_table.py new file mode 100644 index 000000000..c1239bf89 --- /dev/null +++ b/openpathsampling/experimental/storage/snapshots_table.py @@ -0,0 +1,60 @@ +from collections import abc +import itertools + +from ..simstore import StorageTable + +# we need a separate class for the snapshots table because the snapshots +# table actually combines multiple tables +class SnapshotsTable(abc.Sequence): + def __init__(self, storage): + self.storage = storage + self.tables = {} + self.update_tables() + + def update_tables(self): + backend = self.storage.backend + snapshot_table_names = [table for table in backend.table_to_class + if table.startswith('snapshot')] + new_tables = [table for table in snapshot_table_names + if table not in self.tables] + + self.tables.update({table: StorageTable(self.storage, table) + for table in new_tables}) + + def __iter__(self): + return itertools.chain.from_iterable(self.tables.values()) + + def __getitem__(self, item): + if len(self.tables) == 0: + raise IndexError("index out of range") + + if item < 0: + item += len(self) + + count = 0 + for table in self.tables.values(): + len_table = len(table) + count += len_table + if count > item: + count -= len_table + break + + return table[item - count] + + def __len__(self): + return sum(len(table) for table in self.tables.values()) + + def snapshots_for_engine(self, engine): + engine_dict = {table[0].engine: table + for table in self.tables.values()} + return engine_dict[engine] + + def cache_all(self): + # unit testing this will be hard; prob requires real storage + old_blocksize = self.iter_block_size + self.iter_block_size = len(self) + _ = list(iter(self)) + self.iter_block_size = old_blocksize + + def save(self, obj): + self.storage.save(obj) diff --git a/openpathsampling/experimental/storage/test_snapshots_table.py b/openpathsampling/experimental/storage/test_snapshots_table.py new file mode 100644 index 000000000..9148fd750 --- /dev/null +++ b/openpathsampling/experimental/storage/test_snapshots_table.py @@ -0,0 +1,113 @@ +from .snapshots_table import * +from ..simstore.serialization_helpers import get_uuid +import pytest +from unittest import mock + +from collections import namedtuple + +import numpy as np +from openpathsampling.engines import toy as toys + + +def make_engine(): + pes = toys.LinearSlope([0, 0], 0) + topology = toys.Topology(n_spatial=2, masses=[1.0, 1.0], pes=pes) + integ = toys.LeapfrogVerletIntegrator(dt=0.1) + options = {'integ': integ, 'n_frames_max': 1000, 'n_steps_per_frame': 1} + engine = toys.Engine(options=options, topology=topology) + return engine + +# mocks +UUIDHolder = namedtuple("UUIDHolder", ['uuid']) + +class MockBackend(object): + def __init__(self, tables): + self.obj_tables = tables + self.tables = {} + self.uuid_map = {} + self.saved = [] + self.update() + + def update(self): + self.tables = { + table_name: [UUIDHolder(get_uuid(obj)) for obj in table_list] + for table_name, table_list in self.obj_tables.items() + } + self.uuid_map = {get_uuid(obj): obj + for table in self.obj_tables.values() + for obj in table} + + @property + def table_to_class(self): + return {table: toys.Snapshot for table in self.tables} + + def table_len(self, table): + return len(self.obj_tables[table]) + + def table_iterator(self, table): + return iter(self.tables[table]) + + def table_get_item(self, table, item): + return self.tables[table][item] + + def load(self, uuids): + return [self.uuid_map[uuid] for uuid in uuids] + + def save(self, snapshot): + self.saved.append(snapshot) + + +class TestSnapshotsTable(object): + def setup(self): + self.engine_1 = make_engine() + self.engine_2 = make_engine() + snap_1_0 = toys.Snapshot(coordinates=np.array([0.0, 0.0]), + velocities=np.array([0.0, 0.0]), + engine=self.engine_1) + snap_1_1 = toys.Snapshot(coordinates=np.array([1.0, 0.0]), + velocities=np.array([1.0, 0.0]), + engine=self.engine_1) + snap_2_0 = toys.Snapshot(coordinates=np.array([0.0, 0.0]), + velocities=np.array([0.0, 0.0]), + engine=self.engine_2) + self.all_snaps = [snap_1_0, snap_1_1, snap_2_0] + + backend = MockBackend({'snapshot0': [snap_1_0, snap_1_1], + 'snapshot1': [snap_2_0]}) + self.storage = mock.Mock(backend=backend, load=backend.load, + save=backend.save) + + self.snapshots = SnapshotsTable(self.storage) + + def test_initialization(self): + assert len(self.snapshots.tables) == 2 + + def test_iter(self): + for truth, beauty in zip(self.all_snaps, self.snapshots): + assert truth == beauty + + def test_getitem(self): + for num, obj in enumerate(self.all_snaps): + assert self.snapshots[num] == obj + + def test_len(self): + assert len(self.snapshots) == 3 + + @pytest.mark.parametrize('engine_num', [1, 2]) + def test_snapshots_for_engine(self, engine_num): + engine = {1: self.engine_1, 2: self.engine_2}[engine_num] + snaps = {1: self.all_snaps[:2], 2: self.all_snaps[2:]}[engine_num] + snapshot_table = self.snapshots.snapshots_for_engine(engine) + for truth, beauty in zip(snaps, snapshot_table): + assert truth == beauty + + def test_cache_all(self): + pytest.skip() + + def test_save(self): + new_snap = toys.Snapshot(coordinates=np.array([-1.0, -1.0]), + velocities=np.array([0.0, 0.0]), + engine=make_engine()) + assert self.storage.backend.saved == [] # mock + self.snapshots.save(new_snap) + assert self.storage.backend.saved == [new_snap] From e32c198a9d70bb53e85d21d49350d4603c53048a Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Fri, 23 Oct 2020 16:27:42 +0200 Subject: [PATCH 431/464] integrate SnapshotsTable into storage --- openpathsampling/experimental/storage/ops_storage.py | 12 +++++++++++- .../storage/test_snapshot_integrations.py | 2 +- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/openpathsampling/experimental/storage/ops_storage.py b/openpathsampling/experimental/storage/ops_storage.py index 803ff1091..a38820e8b 100644 --- a/openpathsampling/experimental/storage/ops_storage.py +++ b/openpathsampling/experimental/storage/ops_storage.py @@ -34,6 +34,8 @@ from ..simstore import SQLStorageBackend # TODO: generalize from . import snapshots +from .snapshots_table import SnapshotsTable + import logging logger = logging.getLogger(__name__) @@ -248,6 +250,8 @@ def __init__(self, backend, schema, class_info, fallbacks=None, fallbacks, safemode) self.n_snapshot_types = 0 + self.snapshots = SnapshotsTable(self) + self.snapshots.update_tables() def sync_all(self): self.save(self._stashed) @@ -264,10 +268,12 @@ def from_backend(cls, backend, schema=None, class_info=None, if exists is not None: return exists obj = cls.__new__(cls) + obj.n_snapshot_types = 0 schema = tools.none_to_default(schema, ops_schema) class_info = tools.none_to_default(class_info, ops_class_info) simulation_classes = tools.none_to_default(simulation_classes, ops_simulation_classes) + obj.snapshots = None super(Storage, obj).__init__( backend=backend, schema=schema, @@ -275,7 +281,8 @@ def from_backend(cls, backend, schema=None, class_info=None, simulation_classes=simulation_classes, fallbacks=fallbacks ) - obj.n_snapshot_types = 0 + obj.snapshots = SnapshotsTable(obj) + obj.snapshots.update_tables() return obj def to_dict(self): @@ -303,6 +310,8 @@ def register_from_tables(self, table_names, classes): class_info=self.class_info, table_name=table )) + if self.snapshots is not None: + self.snapshots.update_tables() logger.info("Found {} possible lookups".format(len(lookups))) logger.info("Lookups for tables: " + str(lookups.keys())) class_info_list = [ClassInfo(table=table, @@ -326,4 +335,5 @@ def register_from_instance(self, lookup, obj): self.register_schema(schema, class_info_list) self.n_snapshot_types += 1 + self.snapshots.update_tables() diff --git a/openpathsampling/experimental/storage/test_snapshot_integrations.py b/openpathsampling/experimental/storage/test_snapshot_integrations.py index ba2f68342..36976c402 100644 --- a/openpathsampling/experimental/storage/test_snapshot_integrations.py +++ b/openpathsampling/experimental/storage/test_snapshot_integrations.py @@ -61,7 +61,7 @@ def test_integration(self, integration): storage = self._make_storage(mode='r') assert storage.backend.has_table('snapshot0') - snap2 = storage.snapshot0[0] + snap2 = storage.snapshots.tables['snapshot0'][0] np.testing.assert_array_equal(snap.xyz, snap2.xyz) From 04a8a606ca118973a088288e12926f1eed1b1002 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Fri, 23 Oct 2020 18:52:20 +0200 Subject: [PATCH 432/464] update filenames in example text --- .../AD_tps_2b_run_fixed.ipynb | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/examples/alanine_dipeptide_tps/AD_tps_2b_run_fixed.ipynb b/examples/alanine_dipeptide_tps/AD_tps_2b_run_fixed.ipynb index b464c69a0..116e3956b 100644 --- a/examples/alanine_dipeptide_tps/AD_tps_2b_run_fixed.ipynb +++ b/examples/alanine_dipeptide_tps/AD_tps_2b_run_fixed.ipynb @@ -11,9 +11,10 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "This is file runs the main calculation for the fixed length TPS simulation. It requires the file `alanine_dipeptide_fixed_tps_traj.nc`, which is written in the notebook `alanine_dipeptide_fixed_tps_traj.ipynb`.\n", + "This is file runs the main calculation for the fixed length TPS simulation. It requires the file `ad_fixed_tps_traj.nc`, which is written in the notebook `AD_tps_1b_trajectory.ipynb`.\n", "\n", "In this file, you will learn:\n", + "\n", "* how to set up and run a fixed length TPS simulation\n", "\n", "NB: This is a long calculation. In practice, it would be best to export the Python from this notebook, remove the `live_visualizer`, and run non-interactively on a computing node." @@ -62,7 +63,7 @@ "source": [ "## TPS\n", "\n", - "The only difference between this and the flexible path length example in `alanine_dipeptide_tps_run.ipynb` is that we used a `FixedLengthTPSNetwork`. We selected the `length=400` (8 ps) as a maximum length based on the results from a flexible path length run." + "The only difference between this and the flexible path length example in `AD_tps_2a_run_flex.ipynb` is that we used a `FixedLengthTPSNetwork`. We selected the `length=400` (8 ps) as a maximum length based on the results from a flexible path length run." ] }, { @@ -149,8 +150,15 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "With this done, you can go on to do the fixed-length parts of the analysis in `alanine_dipeptide_tps_analysis.ipynb`." + "With this done, you can go on to do the fixed-length parts of the analysis in `AD_tps_3b_analysis_fixed.ipynb`." ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { @@ -169,7 +177,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.8" + "version": "3.7.3" }, "toc": { "base_numbering": 1, From 7e3a5be64d7cfe0e7b26de3a245ee997537b3e8a Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Sat, 24 Oct 2020 08:05:22 +0200 Subject: [PATCH 433/464] fix error in finding UUIDs in no-caching mode --- openpathsampling/experimental/simstore/storable_functions.py | 5 +++-- .../experimental/simstore/test_storable_function.py | 2 ++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/openpathsampling/experimental/simstore/storable_functions.py b/openpathsampling/experimental/simstore/storable_functions.py index 7e3bc9414..f5b90136e 100644 --- a/openpathsampling/experimental/simstore/storable_functions.py +++ b/openpathsampling/experimental/simstore/storable_functions.py @@ -413,8 +413,9 @@ def __call__(self, items): def storable_function_find_uuids(obj, cache_list): # TODO: it should be possible to remove this at some point uuids, new_objects = default_find_uuids(obj, cache_list) - func_results = obj.local_cache - uuids.update({get_uuid(func_results): func_results}) + if obj.local_cache is not None: + uuids[get_uuid(obj.local_cache)] = obj.local_cache + return uuids, new_objects diff --git a/openpathsampling/experimental/simstore/test_storable_function.py b/openpathsampling/experimental/simstore/test_storable_function.py index ce841c53e..c5f074aa7 100644 --- a/openpathsampling/experimental/simstore/test_storable_function.py +++ b/openpathsampling/experimental/simstore/test_storable_function.py @@ -247,6 +247,7 @@ def _set_cache(func, mode, found_in, expected): pass else: func.local_cache.clear() + pytest.skip() pass @staticmethod @@ -319,6 +320,7 @@ def test_to_dict_from_dict_cycle(self): pass def test_full_serialization_cycle(self): + pytest.skip() pass @pytest.mark.parametrize('found_in', ['cache', 'storage', 'eval']) From 14d991389c57b798981f5a69f4cd1a6f34af4026 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Sat, 24 Oct 2020 08:34:17 +0200 Subject: [PATCH 434/464] add simstore support to interface sets --- openpathsampling/high_level/interface_set.py | 34 ++++++++++++++++---- 1 file changed, 27 insertions(+), 7 deletions(-) diff --git a/openpathsampling/high_level/interface_set.py b/openpathsampling/high_level/interface_set.py index 3a7aa1e1a..1b3a192b4 100644 --- a/openpathsampling/high_level/interface_set.py +++ b/openpathsampling/high_level/interface_set.py @@ -3,6 +3,29 @@ import collections import copy +from functools import partial + +def _cv_max_func(trajectory, cv): + return max(cv(trajectory)) + +def _netcdfplus_cv_max(cv): + return paths.netcdfplus.FunctionPseudoAttribute( + name="max " + cv.name, + key_class=paths.Trajectory, + f=_cv_max_func, + cv=cv + ).with_diskcache(allow_incomplete=True) + + +def _simstore_cv_max(cv): + from openpathsampling.experimental.simstore import StorableFunction + return StorableFunction( + func=_cv_max_func, + result_type='float', + cv=cv + ).named("max " + cv.name) + + class InterfaceSet(netcdfplus.StorableNamedObject): """List of volumes representing a set of interfaces, plus metadata. @@ -24,6 +47,7 @@ class InterfaceSet(netcdfplus.StorableNamedObject): # This is a class variable because more than one interface set may use # the same CV (with different interface values) -- common in testing. _cv_max_dict = {} + simstore = False def __init__(self, volumes, cv=None, lambdas=None, cv_max=None, direction=None): @@ -37,13 +61,9 @@ def __init__(self, volumes, cv=None, lambdas=None, cv_max=None, self.cv_max = self._cv_max_dict[self.cv] # NOTE: If KeyError occurs, see InterfaceSet._reset() elif self.cv is not None: - cv_max_func = lambda t, cv_: max(cv_(t)) - self.cv_max = paths.netcdfplus.FunctionPseudoAttribute( - name="max " + self.cv.name, - key_class=paths.Trajectory, - f=cv_max_func, - cv_=self.cv - ).with_diskcache(allow_incomplete=True) + factory = {True: _simstore_cv_max, + False: _netcdfplus_cv_max}[self.simstore] + self.cv_max = factory(cv) else: self.cv_max = None else: From 8dac4c5e1fdb9052db589b4b8d240df4ce199551 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Sat, 24 Oct 2020 11:18:09 +0200 Subject: [PATCH 435/464] fixes for correctly recreating names --- openpathsampling/experimental/simstore/custom_json.py | 6 ++++++ openpathsampling/high_level/transition.py | 4 ++++ 2 files changed, 10 insertions(+) diff --git a/openpathsampling/experimental/simstore/custom_json.py b/openpathsampling/experimental/simstore/custom_json.py index fd4297e2e..6e91bd2c7 100644 --- a/openpathsampling/experimental/simstore/custom_json.py +++ b/openpathsampling/experimental/simstore/custom_json.py @@ -20,9 +20,12 @@ def deserialize(self, uuid, table_row, cache_list): # TODO: is uuid input necessary here? dct = self.json_decoder(table_row['json']) cls = do_import(dct.pop('__module__'), dct.pop('__class__')) + name = dct.pop('name', None) dct = from_dict_with_uuids(dct, cache_list) obj = cls.from_dict(dct) set_uuid(obj, uuid) + if name: + obj.name = name return obj @@ -197,6 +200,9 @@ def uuid_object_to_dict(obj): dct = replace_uuid(dct, uuid_encoding=encode_uuid) dct.update({'__class__': obj.__class__.__name__, '__module__': obj.__class__.__module__}) + name = getattr(obj, 'name', None) + if name and 'name' not in dct: + dct['name'] = name return dct # we ignore all dicts on reserialization because we need to use the custom diff --git a/openpathsampling/high_level/transition.py b/openpathsampling/high_level/transition.py index 8b07a63b0..7a65d9503 100644 --- a/openpathsampling/high_level/transition.py +++ b/openpathsampling/high_level/transition.py @@ -68,6 +68,8 @@ def to_dict(self): @classmethod def from_dict(cls, dct): + if 'name' not in dct: + dct['name'] = None mytrans = TPSTransition(dct['stateA'], dct['stateB'], dct['name']) mytrans.ensembles = dct['ensembles'] return mytrans @@ -500,6 +502,8 @@ def to_dict(self): @classmethod def from_dict(cls, dct): + if 'name' not in dct: + dct['name'] = None mytrans = TISTransition( stateA=dct['stateA'], stateB=dct['stateB'], From b3de2522f1ef85d2da6b637797589a2cc25d593c Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Sat, 24 Oct 2020 13:34:46 +0200 Subject: [PATCH 436/464] better treatment of problems with name params --- openpathsampling/experimental/simstore/custom_json.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/openpathsampling/experimental/simstore/custom_json.py b/openpathsampling/experimental/simstore/custom_json.py index 6e91bd2c7..f050ea99c 100644 --- a/openpathsampling/experimental/simstore/custom_json.py +++ b/openpathsampling/experimental/simstore/custom_json.py @@ -1,5 +1,6 @@ import json import functools +import inspect from collections import namedtuple, defaultdict from .tools import none_to_default from .serialization_helpers import ( @@ -20,7 +21,12 @@ def deserialize(self, uuid, table_row, cache_list): # TODO: is uuid input necessary here? dct = self.json_decoder(table_row['json']) cls = do_import(dct.pop('__module__'), dct.pop('__class__')) - name = dct.pop('name', None) + + # TODO: this is a hack around some objects having name params + has_name_param = 'name' in inspect.signature(cls).parameters + name = None if has_name_param else dct.pop('name', None) + # should just be dct.pop('name', None) + dct = from_dict_with_uuids(dct, cache_list) obj = cls.from_dict(dct) set_uuid(obj, uuid) From 2b46284e5eb68b89af82829e2da0f8dbaa1363f8 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Mon, 26 Oct 2020 15:18:22 +0100 Subject: [PATCH 437/464] Minor improvements on CLI docs --- docs/cli.rst | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/docs/cli.rst b/docs/cli.rst index 04acd2911..22e4e1bf3 100644 --- a/docs/cli.rst +++ b/docs/cli.rst @@ -4,8 +4,13 @@ Command Line Interface ====================== A separate command line tool for OpenPathSamplng can be installed. It is -available via either ``conda`` (channel ``conda-forge``) or ``pip``, with -the package name ``openpathsampling-cli``. +available via either ``conda`` or ``pip``: + +.. code:: bash + + conda install -c conda-forge openpathsampling-cli + # or + pip install openpathsampling-cli Once you install this, you'll have access to the command ``openpathsampling`` in your shell (although we recommend aliasing that to @@ -58,7 +63,7 @@ notebook, just as before. Note that this can be especially useful when computing remotely. You can set up on your local machine, and then you just need to transfer the -``setup.py`` to the remote machine (assuming you use internally-stored +``setup.nc`` to the remote machine (assuming you use internally-stored snapshots). Finding your way around the CLI From ea4d6bb25b54830ae3579b76ec54ed2bfeb7f338 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 29 Oct 2020 12:47:26 +0100 Subject: [PATCH 438/464] Initial support for tags in SimStore --- .../experimental/simstore/custom_json.py | 22 ++-- .../experimental/simstore/sql_backend.py | 12 ++- .../experimental/simstore/storage.py | 3 +- .../experimental/simstore/tags_table.py | 39 +++++++ .../experimental/simstore/test_sql_backend.py | 3 +- .../experimental/simstore/test_tags_table.py | 101 ++++++++++++++++++ 6 files changed, 166 insertions(+), 14 deletions(-) create mode 100644 openpathsampling/experimental/simstore/tags_table.py create mode 100644 openpathsampling/experimental/simstore/test_tags_table.py diff --git a/openpathsampling/experimental/simstore/custom_json.py b/openpathsampling/experimental/simstore/custom_json.py index f050ea99c..23bc5adf1 100644 --- a/openpathsampling/experimental/simstore/custom_json.py +++ b/openpathsampling/experimental/simstore/custom_json.py @@ -24,7 +24,7 @@ def deserialize(self, uuid, table_row, cache_list): # TODO: this is a hack around some objects having name params has_name_param = 'name' in inspect.signature(cls).parameters - name = None if has_name_param else dct.pop('name', None) + name = None if has_name_param else dct.pop('name', None) # should just be dct.pop('name', None) dct = from_dict_with_uuids(dct, cache_list) @@ -48,13 +48,19 @@ class JSONSerializerDeserializer(object): codecs supported """ def __init__(self, codecs, named_codecs=None): - self._serializer = None - self._deserializer = None - self._sim_serialization = None self.named_codecs = none_to_default(named_codecs, {}) self.codecs = [] for codec in codecs: self.add_codec(codec) + self._set_serialization() + + def _set_serialization(self): + encoder, decoder = custom_json_factory(self.codecs) + self._serializer = functools.partial(json.dumps, cls=encoder) + self._deserializer = functools.partial(json.loads, cls=decoder) + self._sim_serialization = SimulationObjectSerialization( + self._serializer, self._deserializer + ) def add_codec(self, codec): """Add a new codec to the supported codecs @@ -69,12 +75,8 @@ def add_codec(self, codec): if codec is not None: self.codecs.append(codec) - encoder, decoder = custom_json_factory(self.codecs) - self._serializer = functools.partial(json.dumps, cls=encoder) - self._deserializer = functools.partial(json.loads, cls=decoder) - self._sim_serialization = SimulationObjectSerialization( - self._serializer, self._deserializer - ) + + self._set_serialization() def replace_named_codec(self, codec_name, codec): self.named_codecs[codec_name] = codec diff --git a/openpathsampling/experimental/simstore/sql_backend.py b/openpathsampling/experimental/simstore/sql_backend.py index dd8118f8f..64722737f 100644 --- a/openpathsampling/experimental/simstore/sql_backend.py +++ b/openpathsampling/experimental/simstore/sql_backend.py @@ -38,7 +38,7 @@ def make_columns(table_name, schema, sql_schema_metadata): columns = [] - if table_name not in ['uuid', 'tables']: + if table_name not in universal_schema: columns.append(sql.Column('idx', sql.Integer, primary_key=True)) columns.append(sql.Column('uuid', sql.String)) @@ -302,7 +302,7 @@ def register_schema(self, schema, table_to_class, raise TypeError("Schema registration problem. Your schema " "may already have tables of the same names.") - if table_name not in ['uuid', 'tables']: + if table_name not in universal_schema: self._add_table_to_tables_list(table_name, schema[table_name], table_to_class[table_name]) @@ -412,6 +412,14 @@ def load_storable_function_table(self, table_name): return {row['uuid']: row['value'] for row in self.table_iterator(table_name)} + def add_tag(self, table_name, name, content): + table = self.metadata.tables[table_name] + + with self.engine.connect() as conn: + conn.execute(table.insert(), [{'name': name, + 'content': content}]) + + def add_to_table(self, table_name, objects): """Add a list of objects of a given class diff --git a/openpathsampling/experimental/simstore/storage.py b/openpathsampling/experimental/simstore/storage.py index 08cbf47b2..3587f724e 100644 --- a/openpathsampling/experimental/simstore/storage.py +++ b/openpathsampling/experimental/simstore/storage.py @@ -40,7 +40,8 @@ universal_schema = { 'uuid': [('uuid', 'uuid'), ('table', 'int'), ('row', 'int')], 'tables': [('name', 'str'), ('idx', 'int'), ('module', 'str'), - ('class_name', 'str')] + ('class_name', 'str')], + 'tags': [('name', 'str'), ('content', 'uuid')] } from openpathsampling.netcdfplus import StorableNamedObject diff --git a/openpathsampling/experimental/simstore/tags_table.py b/openpathsampling/experimental/simstore/tags_table.py new file mode 100644 index 000000000..0fa833f35 --- /dev/null +++ b/openpathsampling/experimental/simstore/tags_table.py @@ -0,0 +1,39 @@ +from .wrapper import SimStoreWrapper +from .storage import StorageTable +from .serialization_helpers import get_uuid + +from collections import abc + +class TaggedObject(SimStoreWrapper): + pass # subclass simply so it can be recognized distinct from wrapper + + +class TagsTable(abc.Sequence): + # we inherit from Sequence, not MutableSequence, because delitem and + # insert don't make sense here + def __init__(self, storage): + self.storage = storage + self.table = 'tags' + self.tagged_objects = self._load_tags() + + def _load_tags(self): + backend_iter = self.storage.backend.table_iterator(self.table) + tagged_objects = {row.name: row.content for row in backend_iter} + return tagged_objects + + def __len__(self): + return len(self.tagged_objects) + + def __getitem__(self, tag): + uuid = self.tagged_objects[tag] + wrapped = self.storage.load([uuid])[0] + return wrapped.content + + def __setitem__(self, tag, obj): + if tag in self.tagged_objects: + raise RuntimeError("A tag named '%s' already exists." % tag) + wrapped = TaggedObject(obj).named(tag) + self.storage.save(wrapped) + wrapped_uuid = get_uuid(wrapped) + self.tagged_objects[tag] = wrapped_uuid + self.storage.backend.add_tag(self.table, tag, wrapped_uuid) diff --git a/openpathsampling/experimental/simstore/test_sql_backend.py b/openpathsampling/experimental/simstore/test_sql_backend.py index 6578799cf..8e424d740 100644 --- a/openpathsampling/experimental/simstore/test_sql_backend.py +++ b/openpathsampling/experimental/simstore/test_sql_backend.py @@ -16,7 +16,8 @@ def setup(self): self.table_to_class = {'samples': tuple, 'snapshot0': tuple, 'snapshot1': tuple} - self.default_table_names = {'uuid', 'tables', 'schema', 'metadata'} + self.default_table_names = {'uuid', 'tables', 'schema', 'metadata', + 'tags'} def _sample_data_dict(self): sample_list = [(0, 'ens1', 'traj1'), diff --git a/openpathsampling/experimental/simstore/test_tags_table.py b/openpathsampling/experimental/simstore/test_tags_table.py new file mode 100644 index 000000000..10cc27eb2 --- /dev/null +++ b/openpathsampling/experimental/simstore/test_tags_table.py @@ -0,0 +1,101 @@ +import pytest +from .storage import GeneralStorage +from .sql_backend import SQLStorageBackend +from .class_info import ClassInfo, SerializationSchema +from .custom_json import JSONSerializerDeserializer, uuid_object_codec +from .serialization_helpers import default_find_uuids + +from openpathsampling.netcdfplus import StorableObject + +from .tags_table import * + +class IntHolder(StorableObject): + def __init__(self, value): + super().__init__() + self.value = value + +class TestTagsTable(object): + def setup(self): + json_ser = JSONSerializerDeserializer([uuid_object_codec]) + # TODO: add tags to serialization schema + serialization_schema = SerializationSchema( + default_info=ClassInfo( + table='simulation_objects', + cls=StorableObject, + serializer=json_ser.simobj_serializer, + deserializer=json_ser.simobj_deserializer, + find_uuids=default_find_uuids + ), + sfr_info=None, + schema={'int_holders': [('value', 'int')], + '_tagged_content': [('json', 'json_obj')] + }, + class_info_list=[ + ClassInfo(table='int_holders', cls=IntHolder), + ClassInfo(table='_tagged_content', cls=TaggedObject, + serializer=json_ser.simobj_serializer, + deserializer=json_ser.simobj_deserializer, + find_uuids=default_find_uuids) + ] + ) + for info in serialization_schema.class_info_list: + info.set_defaults(serialization_schema.schema) + backend = SQLStorageBackend(":memory:", mode='w') + self.storage = GeneralStorage(backend, serialization_schema, + serialization_schema.schema) + + self.tags_table = TagsTable(self.storage) + + def test_init(self): + assert self.tags_table.tagged_objects == {} + + def _set_info_in_storage(self): + wrapped_holder = TaggedObject(IntHolder(10)).named('with-uuid') + tagged_num = TaggedObject(5).named('no-uuid') + self.storage.save([wrapped_holder, tagged_num]) + self.storage.backend.add_tag('tags', 'with-uuid', + get_uuid(wrapped_holder)) + self.storage.backend.add_tag('tags', 'no-uuid', + get_uuid(tagged_num)) + assert self.storage.backend.table_len('_tagged_content') == 2 + assert self.storage.backend.table_len('int_holders') == 1 + assert self.storage.backend.table_len('tags') == 2 + + def test_load_tags(self): + self._set_info_in_storage() + tags_table = TagsTable(self.storage) + assert len(tags_table.tagged_objects) == 2 + + def test_len(self): + assert len(self.tags_table) == 0 + self._set_info_in_storage() + tags_table = TagsTable(self.storage) + assert len(tags_table) == 2 + + def test_getitem(self): + self._set_info_in_storage() + tags_table = TagsTable(self.storage) + assert tags_table['no-uuid'] == 5 + with_uuid = tags_table['with-uuid'] + assert isinstance(with_uuid, IntHolder) + assert with_uuid.value == 10 + + def test_setitem(self): + self.tags_table['no-uuid'] = 5 # JSON-serializable data + self.tags_table['with-uuid'] = IntHolder(10) # UUID objects + assert len(self.tags_table.tagged_objects) == 2 + assert self.storage.backend.table_len('_tagged_content') == 2 + assert self.storage.backend.table_len('int_holders') == 1 + assert self.storage.backend.table_len('tags') == 2 + + def test_setitem_name_error(self): + self.tags_table['foo'] = 5 + with pytest.raises(RuntimeError): + self.tags_table['foo'] = 6 + + def test_set_get_cycle(self): + wrapped = IntHolder(10) + self.tags_table['no-uuid'] = 5 + self.tags_table['with-uuid'] = wrapped + assert self.tags_table['no-uuid'] == 5 + assert self.tags_table['with-uuid'] == wrapped From 0877580c0ed49162351a9cb63562da49ad485376 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Sat, 31 Oct 2020 13:44:43 +0100 Subject: [PATCH 439/464] docstrings; fix up things for SimStore on CLI --- .../experimental/simstore/custom_json.py | 2 +- .../simstore/storable_functions.py | 1 + .../experimental/simstore/storage.py | 2 ++ .../experimental/simstore/tags_table.py | 35 +++++++++++++++---- .../experimental/simstore/wrapper.py | 13 +++++++ .../experimental/storage/ops_storage.py | 8 +++++ 6 files changed, 54 insertions(+), 7 deletions(-) create mode 100644 openpathsampling/experimental/simstore/wrapper.py diff --git a/openpathsampling/experimental/simstore/custom_json.py b/openpathsampling/experimental/simstore/custom_json.py index 23bc5adf1..ab3bd5ddd 100644 --- a/openpathsampling/experimental/simstore/custom_json.py +++ b/openpathsampling/experimental/simstore/custom_json.py @@ -208,7 +208,7 @@ def uuid_object_to_dict(obj): dct = replace_uuid(dct, uuid_encoding=encode_uuid) dct.update({'__class__': obj.__class__.__name__, '__module__': obj.__class__.__module__}) - name = getattr(obj, 'name', None) + name = getattr(obj, '_name', None) if name and 'name' not in dct: dct['name'] = name return dct diff --git a/openpathsampling/experimental/simstore/storable_functions.py b/openpathsampling/experimental/simstore/storable_functions.py index f5b90136e..feb5c858e 100644 --- a/openpathsampling/experimental/simstore/storable_functions.py +++ b/openpathsampling/experimental/simstore/storable_functions.py @@ -303,6 +303,7 @@ def to_dict(self): def from_dict(cls, dct): source = dct.pop('source') kwargs = dct.pop('kwargs') + dct['store_source'] = False obj = cls(**dct, **kwargs) if obj.source is None: obj.source = source # may still be none diff --git a/openpathsampling/experimental/simstore/storage.py b/openpathsampling/experimental/simstore/storage.py index 3587f724e..c0fba85e2 100644 --- a/openpathsampling/experimental/simstore/storage.py +++ b/openpathsampling/experimental/simstore/storage.py @@ -28,6 +28,7 @@ # from .serialization import Serialization from .serialization import ProxyObjectFactory from .storable_functions import StorageFunctionHandler, StorableFunction +from .tags_table import TagsTable try: basestring @@ -78,6 +79,7 @@ def __init__(self, backend, class_info, schema=None, self.schema = backend.schema self.cache = MixedCache({}) # initial empty cache so it exists self.initialize_with_mode(self.mode) + self.tags = TagsTable(self) self._simulation_objects = self._cache_simulation_objects() self.cache = MixedCache(self._simulation_objects) self._stashed = [] diff --git a/openpathsampling/experimental/simstore/tags_table.py b/openpathsampling/experimental/simstore/tags_table.py index 0fa833f35..7194105e4 100644 --- a/openpathsampling/experimental/simstore/tags_table.py +++ b/openpathsampling/experimental/simstore/tags_table.py @@ -1,5 +1,4 @@ from .wrapper import SimStoreWrapper -from .storage import StorageTable from .serialization_helpers import get_uuid from collections import abc @@ -8,22 +7,46 @@ class TaggedObject(SimStoreWrapper): pass # subclass simply so it can be recognized distinct from wrapper -class TagsTable(abc.Sequence): - # we inherit from Sequence, not MutableSequence, because delitem and - # insert don't make sense here +class TagsTable(abc.Mapping): + """StorageTable-like object for tags. + + Tags allow storage of arbitrary objects. The ``tags`` table can contain + any JSON-serializable object, or any UUID-containing object that can + otherwise be stored by SimStore. Usage is dict-like, using a string name + for the tag, e.g., ``tags['initial_conditions'] = data`` to set or + ``data = tags['initial_conditions']`` to load. + + Parameters + ---------- + storage: :class:`.GeneralStorage` + the storage object associated with this table + """ + # we inherit from Mapping, not MutableMapping, because delitem, pop, + # popitem, etc don't make sense here def __init__(self, storage): self.storage = storage self.table = 'tags' self.tagged_objects = self._load_tags() def _load_tags(self): - backend_iter = self.storage.backend.table_iterator(self.table) - tagged_objects = {row.name: row.content for row in backend_iter} + # TODO: maybe I should just make the table? Need better way for that + if self.storage.backend.has_table(self.table): + backend_iter = self.storage.backend.table_iterator(self.table) + tagged_objects = {row.name: row.content for row in backend_iter} + else: + tagged_objects = {} return tagged_objects + def __iter__(self): + for name in self.tagged_objects: + yield self[name] + def __len__(self): return len(self.tagged_objects) + def keys(self): + return self.tagged_objects.keys() + def __getitem__(self, tag): uuid = self.tagged_objects[tag] wrapped = self.storage.load([uuid])[0] diff --git a/openpathsampling/experimental/simstore/wrapper.py b/openpathsampling/experimental/simstore/wrapper.py new file mode 100644 index 000000000..e102ca8fa --- /dev/null +++ b/openpathsampling/experimental/simstore/wrapper.py @@ -0,0 +1,13 @@ +from openpathsampling.netcdfplus import StorableNamedObject + +class SimStoreWrapper(StorableNamedObject): + """Wrapper to add UUID to and JSON-serializable content. + + Parameters + ---------- + content : Any + the JSON-serializable thing to wrap + """ + def __init__(self, content): + super().__init__() + self.content = content diff --git a/openpathsampling/experimental/storage/ops_storage.py b/openpathsampling/experimental/storage/ops_storage.py index a38820e8b..6029214a2 100644 --- a/openpathsampling/experimental/storage/ops_storage.py +++ b/openpathsampling/experimental/storage/ops_storage.py @@ -297,6 +297,14 @@ def from_dict(cls, dct): def __reduce__(self): return (self.from_dict, (self.to_dict(),)) + @property + def movechanges(self): + return self.move_changes + + @property + def samplesets(self): + return self.sample_sets + def register_from_tables(self, table_names, classes): lookups = {} table_to_class = {tbl: cls for tbl, cls in zip(table_names, classes)} From bd0cd6436ad8a2f030ef33921765677b4db832c3 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Sun, 1 Nov 2020 10:23:35 +0100 Subject: [PATCH 440/464] Add type_ident and tests --- .../experimental/simstore/test_type_ident.py | 43 +++++++ .../experimental/simstore/type_ident.py | 105 ++++++++++++++++++ 2 files changed, 148 insertions(+) create mode 100644 openpathsampling/experimental/simstore/test_type_ident.py create mode 100644 openpathsampling/experimental/simstore/type_ident.py diff --git a/openpathsampling/experimental/simstore/test_type_ident.py b/openpathsampling/experimental/simstore/test_type_ident.py new file mode 100644 index 000000000..02b9a8815 --- /dev/null +++ b/openpathsampling/experimental/simstore/test_type_ident.py @@ -0,0 +1,43 @@ +import pytest +from .type_ident import * + +from .test_utils import MockUUIDObject + +_TYPES = ['int', 'float', 'str', 'ndarray', 'bool', 'uuid'] + +class TestStandardTyping(object): + # this tests everything in STANDARD_TYPING; it's a little more + # integration test than unit, but the individual tests ensure that each + # unit is tested + def setup(self): + self.objects = { + 'int': ('int', 5), + 'float': ('float', 2.3), + 'str': ('str', "foo"), + 'ndarray': ('ndarray.float64(2,3)', + np.array([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]])), + 'bool': ('bool', True), + 'uuid': ('uuid', MockUUIDObject(name='int', normal_attr=5)), + } + + @pytest.mark.parametrize('example', _TYPES) + def test_identify(self, example): + string, obj = self.objects[example] + assert STANDARD_TYPING.identify(obj) == string + + @pytest.mark.parametrize('example', _TYPES) + def test_parsing(self, example): + string, _ = self.objects[example] + assert STANDARD_TYPING.parse(string) == example + + def test_error_register_existing(self): + with pytest.raises(RuntimeError): + STANDARD_TYPING.register(int_type_id) + + def test_error_identify(self): + with pytest.raises(TypeIdentificationError): + STANDARD_TYPING.identify(object()) + + def test_error_parse(self): + with pytest.raises(TypeStringError): + STANDARD_TYPING.parse('foo') diff --git a/openpathsampling/experimental/simstore/type_ident.py b/openpathsampling/experimental/simstore/type_ident.py new file mode 100644 index 000000000..45dfa18d5 --- /dev/null +++ b/openpathsampling/experimental/simstore/type_ident.py @@ -0,0 +1,105 @@ +import re +import numbers +import numpy as np +from .serialization_helpers import has_uuid + +class TypeStringError(RuntimeError): + pass + +class TypeIdentificationError(RuntimeError): + pass + +class TypingManager(object): + def __init__(self, type_ids): + self._type_ids = {} + for type_id in type_ids: + self.register(type_id) + + def register(self, type_id, force=False): + if not force and type_id.name in self._type_ids: + raise RuntimeError("Type identifier for %s already exists. " + "Use `force=True` to override." + % type_id.name) + self._type_ids[type_id.name] = type_id + + def _typing_func(self, inp, func_name): + for type_id in self._type_ids.values(): + func = getattr(type_id, func_name) + result = func(inp) + if result is not None: + break + return result + + def parse(self, string): + result = self._typing_func(string, 'parse') + if result is None: + raise TypeStringError("Unable to parse type string: ", string) + return result + + def identify(self, obj): + result = self._typing_func(obj, 'identify') + if result is None: + raise TypeIdentificationError("Unable to identify backend type " + "for object of type " + + str(type(obj))) + return result + + +class StandardTypeIdentifier(object): + """TypeIdentifier for most simple types. + + Simple types are types where there is only one string identifier for the + type, and where that string can be determined using ``isinstance``. + """ + # NOTE: Current implementation uses isinstance, which might be slow. + # Performance could be improved by using ClassIsSomething, if needed. + # However, expectation is for identify to be rarely used. + def __init__(self, name, cls): + self.name = name + self.cls = cls + + def parse(self, string): + if string == self.name: + return self.name + + def identify(self, obj): + if isinstance(obj, self.cls): + return self.name + + +class NumpyTypeIdentifier(object): + ndarray_re = re.compile( + "ndarray\.(?P[a-z0-9]+)(?P\([0-9\,\ ]+\))" + ) + def __init__(self): + self.name = 'ndarray' + + def parse(self, string): + m_ndarray = self.ndarray_re.match(string) + if m_ndarray: + return self.name + + @staticmethod + def identify(obj): + if isinstance(obj, np.ndarray): + dtype = str(obj.dtype) + shape = "(" + ",".join(str(a) for a in obj.shape) + ")" + return "ndarray." + dtype + shape + + +class UUIDTypeIdentifier(StandardTypeIdentifier): + def identify(self, obj): + if has_uuid(obj): + return self.name + + +int_type_id = StandardTypeIdentifier('int', numbers.Integral) +float_type_id = StandardTypeIdentifier('float', numbers.Real) +str_type_id = StandardTypeIdentifier('str', str) +bool_type_id = StandardTypeIdentifier('bool', bool) +numpy_type_id = NumpyTypeIdentifier() +uuid_type_id = UUIDTypeIdentifier('uuid', cls=None) + + +STANDARD_TYPING = TypingManager([bool_type_id, int_type_id, float_type_id, + str_type_id, numpy_type_id, uuid_type_id]) From 934c4bb4dd104bd0a86095720ffe5efb71b2c9c9 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Sat, 7 Nov 2020 16:21:13 +0100 Subject: [PATCH 441/464] Fix bug in SimStore when appending to non-existent --- .../experimental/simstore/memory_backend.py | 8 +++++++- .../experimental/simstore/sql_backend.py | 8 +++++++- .../experimental/simstore/storage.py | 6 +++--- .../experimental/simstore/test_sql_backend.py | 19 +++++++++++++++---- .../experimental/simstore/tools.py | 12 ++++++------ 5 files changed, 38 insertions(+), 15 deletions(-) diff --git a/openpathsampling/experimental/simstore/memory_backend.py b/openpathsampling/experimental/simstore/memory_backend.py index cab62619f..cd44eb766 100644 --- a/openpathsampling/experimental/simstore/memory_backend.py +++ b/openpathsampling/experimental/simstore/memory_backend.py @@ -1,6 +1,12 @@ import os import collections +try: + from collections import abc +except ImportError: + # Py27 + abc = collections + from .storage import universal_schema import logging @@ -8,7 +14,7 @@ UUIDTableRow = collections.namedtuple("UUIDTableRow", ['uuid', 'table_name']) -class MemoryStorageTable(collections.abc.MutableMapping): +class MemoryStorageTable(abc.MutableMapping): """Simple wrapper for a Dict; transforms Dict values to namedtuple """ def __init__(self, table_name, schema_entries): diff --git a/openpathsampling/experimental/simstore/sql_backend.py b/openpathsampling/experimental/simstore/sql_backend.py index 64722737f..fe0800f61 100644 --- a/openpathsampling/experimental/simstore/sql_backend.py +++ b/openpathsampling/experimental/simstore/sql_backend.py @@ -115,16 +115,22 @@ def __init__(self, filename, mode='r', sql_dialect='sqlite', **kwargs): self.connection_uri = None self._metadata = None if filename is not None: - if self.mode == "w" and os.path.exists(filename): + file_exists = os.path.exists(filename) + if self.mode == "w" and file_exists: # delete existing file; write after os.remove(filename) + if self.mode == 'a' and not file_exists: + # act as if the mode is 'w'; note we change this back later + self.mode = 'w' + self.connection_uri = self.filename_from_dialect( filename, self.sql_dialect ) engine = sql.create_engine(self.connection_uri, **self.kwargs) self._initialize_from_engine(engine) + self.mode = mode # in case we changed when checking existence def _initialize_from_engine(self, engine): self.engine = engine diff --git a/openpathsampling/experimental/simstore/storage.py b/openpathsampling/experimental/simstore/storage.py index c0fba85e2..9d2705e5e 100644 --- a/openpathsampling/experimental/simstore/storage.py +++ b/openpathsampling/experimental/simstore/storage.py @@ -104,7 +104,7 @@ def initialize_with_mode(self, mode): self.register_schema(self.schema, class_info_list=[], read_mode=True) missing = {k: v for k, v in self.backend.schema.items() - if k not in self.schema} + if k not in self.schema and k not in universal_schema} self.schema.update(missing) table_to_class = self.backend.table_to_class self._load_missing_info_tables(table_to_class) @@ -151,11 +151,11 @@ def register_schema(self, schema, class_info_list, # info.set_defaults(schema) # self.class_info.add_class_info(info) - if not read_mode: - # here's where we add the class_info to the backend + if not read_mode or self.backend.table_to_class == {}: table_to_class = {table: self.class_info[table].cls for table in schema if table not in ['uuid', 'tables']} + # here's where we add the class_info to the backend self.backend.register_schema(schema, table_to_class, backend_metadata) diff --git a/openpathsampling/experimental/simstore/test_sql_backend.py b/openpathsampling/experimental/simstore/test_sql_backend.py index 8e424d740..b592d77a5 100644 --- a/openpathsampling/experimental/simstore/test_sql_backend.py +++ b/openpathsampling/experimental/simstore/test_sql_backend.py @@ -60,8 +60,10 @@ def _default_database(self): @staticmethod def _delete_tmp_files(): - if os.path.isfile("test.sql"): - os.remove("test.sql") + tmp_files = ['test.sql', 'test1.sql', 'test2.sql'] + for f in tmp_files: + if os.path.isfile(f): + os.remove(f) @pytest.mark.parametrize('test_input,expected', [ (("file.sql", "sqlite"), "sqlite:///file.sql"), @@ -79,13 +81,22 @@ def _col_names_set(self, table): meta = self.database.metadata return set([col.name for col in meta.tables[table].columns]) - def test_setup(self): - table_names = self.database.engine.table_names() + @pytest.mark.parametrize('db', ['memory', 'write', 'append']) + def test_setup(self, db): + database = { + 'memory': self.database, + 'write': SQLStorageBackend('test1.sql', mode='w'), + 'append': SQLStorageBackend('test2.sql', mode='a'), + }[db] + table_names = database.engine.table_names() assert set(table_names) == self.default_table_names assert self._col_names_set('uuid') == {'uuid', 'table', 'row'} assert self._col_names_set('tables') == {'name', 'idx', 'module', 'class_name'} assert self._col_names_set('schema') == {'table', 'schema'} + for f in ['test1.sql', 'test2.sql']: + if os.path.isfile(f): + os.remove(f) def test_register_schema(self): new_schema = { diff --git a/openpathsampling/experimental/simstore/tools.py b/openpathsampling/experimental/simstore/tools.py index f5c6dd571..b3c533810 100644 --- a/openpathsampling/experimental/simstore/tools.py +++ b/openpathsampling/experimental/simstore/tools.py @@ -5,7 +5,7 @@ import logging logger = logging.getLogger(__name__) -class SimpleNamespace(collections.MutableMapping): +class SimpleNamespace(collections.abc.MutableMapping): # types.SimpleNameSpace in 3.3+ # this variants acts as either a dict or a namespace for getting def __init__(self, **kwargs): @@ -46,10 +46,10 @@ def is_string(obj): return isinstance(obj, basestring) def is_mappable(obj): - return isinstance(obj, collections.Mapping) + return isinstance(obj, collections.abc.Mapping) def is_iterable(obj): - return isinstance(obj, collections.Iterable) and not is_string(obj) + return isinstance(obj, collections.abc.Iterable) and not is_string(obj) def is_numpy_iterable(obj): return isinstance(obj, ndarray) @@ -138,15 +138,15 @@ def flatten_iterable(ll): return flatten(ll, lambda x: x, (list, tuple, set)) def flatten_all(obj): - is_mappable = lambda x: isinstance(x, collections.Mapping) + is_mappable = lambda x: isinstance(x, collections.abc.Mapping) return flatten(obj, lambda x: x.values() if is_mappable(x) else x.__iter__(), - (collections.Mapping, collections.Iterable), + (collections.abc.Mapping, collections.abc.Iterable), (basestring, ndarray)) def nested_update(original, update): for (k, v) in update.items(): - if isinstance(v, collections.Mapping): + if isinstance(v, collections.abc.Mapping): original[k] = nested_update(original.get(k, {}), v) else: original[k] = v From aa1a7c5fe6e782e3e53c0e452e86c0c118593693 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Mon, 9 Nov 2020 14:16:35 +0100 Subject: [PATCH 442/464] Integrate type IDing with function result storage Note: tests haven't been updated yet, and will fail based on these changes. --- .../experimental/simstore/sql_backend.py | 6 ++-- .../simstore/storable_functions.py | 32 +++++++++++-------- .../experimental/simstore/storage.py | 23 ++++++++++--- .../simstore/test_storable_function.py | 3 ++ 4 files changed, 44 insertions(+), 20 deletions(-) diff --git a/openpathsampling/experimental/simstore/sql_backend.py b/openpathsampling/experimental/simstore/sql_backend.py index dd8118f8f..58f46df37 100644 --- a/openpathsampling/experimental/simstore/sql_backend.py +++ b/openpathsampling/experimental/simstore/sql_backend.py @@ -328,13 +328,13 @@ def register_storable_function(self, table_name, result_type): the name for this table; typically the UUID of the storable function result_type : Str - string name of the result type; must match one of the keys of - ``sql_type`` + string name of the result type """ logger.info("Registering storable function: UUID: %s (%s)" % (table_name, result_type)) + col_type = sql_type[backend_registration_type(result_type)] columns = [sql.Column('uuid', sql.String, primary_key=True), - sql.Column('value', sql_type[result_type])] + sql.Column('value', col_type)] try: table = sql.Table(table_name, self.metadata, *columns) except sql.exc.InvalidRequestError: diff --git a/openpathsampling/experimental/simstore/storable_functions.py b/openpathsampling/experimental/simstore/storable_functions.py index f5b90136e..80b8e77c7 100644 --- a/openpathsampling/experimental/simstore/storable_functions.py +++ b/openpathsampling/experimental/simstore/storable_functions.py @@ -140,7 +140,7 @@ class StorableFunctionResults(StorableNamedObject): The function will be associated with a cache like this, and this is the first place it will look for results (in order to avoid recalculating). """ - _sanity_checks = True + _sanity_checks = False # off by default; can't work with ndarray def __init__(self, parent, parent_uuid): # TODO: why does this require parent_uuid still? super(StorableFunctionResults, self).__init__() @@ -223,13 +223,12 @@ class StorableFunction(StorableNamedObject): Parameters ---------- func : Callable - result_type store_store : Union[bool, None] Whether to store the source for this function. Default behavior (None) stores source for anything created in ``__main__`` that is not a lambda expression. """ - def __init__(self, func, result_type=None, func_config=None, store_source=None, **kwargs): + def __init__(self, func, func_config=None, store_source=None, **kwargs): super(StorableFunction, self).__init__() self.func = func self.source = None @@ -248,7 +247,6 @@ def __init__(self, func, result_type=None, func_config=None, store_source=None, except IOError: warnings.warn("Unable to get source for " + str(func)) - self.result_type = result_type self.local_cache = None # set correctly by self.mode setter self._disk_cache = True self._handler = None @@ -296,7 +294,6 @@ def to_dict(self): 'func': self.func, # made into JSON by CallableCodec 'source': self.source, 'kwargs': self.kwargs, - 'result_type': self.result_type, } @classmethod @@ -444,17 +441,26 @@ def codec_settings(self, settings): self._codec_settings = settings self.callable_codec = CallableCodec(settings) - def register_function(self, func, add_table=True): + def register_function(self, func, add_table=True, example_result=None): func_uuid = get_uuid(func) + + # add table to backend if needed + needs_table = not self.storage.backend.has_table(func_uuid) + add_table = needs_table and (example_result is not None) + if needs_table and not add_table: + logger.info("Result type unknown; unable to create table") + elif add_table: + identify = self.storage.type_identification.identify + result_type = identify(example_result) + self.storage.backend.register_storable_function( + table_name=func_uuid, + result_type=result_type + ) + # register as a canonical function if func_uuid not in self.canonical_functions: logger.debug("Registering new function: %s" % func_uuid) self.canonical_functions[func_uuid] = func - if add_table: - self.storage.backend.register_storable_function( - table_name=func_uuid, - result_type=func.result_type - ) # register with all_functions is_registered = any([func is registered @@ -463,8 +469,8 @@ def register_function(self, func, add_table=True): if not is_registered: self.all_functions[func_uuid].append(func) - # set handler - if not func.has_handler: + # set handler; only if the table exists + if not func.has_handler and (add_table or not needs_table): func.set_handler(self) def clear_non_canonical(self): diff --git a/openpathsampling/experimental/simstore/storage.py b/openpathsampling/experimental/simstore/storage.py index 08cbf47b2..0c40c372e 100644 --- a/openpathsampling/experimental/simstore/storage.py +++ b/openpathsampling/experimental/simstore/storage.py @@ -28,6 +28,7 @@ # from .serialization import Serialization from .serialization import ProxyObjectFactory from .storable_functions import StorageFunctionHandler, StorableFunction +from .type_ident import STANDARD_TYPING try: basestring @@ -56,6 +57,7 @@ def __init__(self, backend, class_info, schema=None, self._safemode = None self.safemode = safemode self._sf_handler = StorageFunctionHandler(storage=self) + self.type_identification = STANDARD_TYPING # TODO: copy # TODO: implement fallback self.fallbacks = tools.none_to_default(fallbacks, []) @@ -283,12 +285,25 @@ def save_function_results(self, funcs=None): funcs = tools.listify(funcs) for func in funcs: + # TODO: XXX This is where we need to use type identification + # 1. check if the associated function is registered already + # 2. if not, extract type from the first function value self._sf_handler.update_cache(func.local_cache) result_dict = func.local_cache.result_dict - self.backend.add_storable_function_results( - table_name=get_uuid(func), - result_dict=result_dict - ) + table_name = get_uuid(func) + if not self.backend.has_table(table_name): + if result_dict: + example = next(iter(result_dict.values())) + else: + example = None + self._sf_handler.register_function(func, + example_result=example) + + if result_dict: + self.backend.add_storable_function_results( + table_name=table_name, + result_dict=result_dict + ) self._reset_fixed_cache() def load(self, input_uuids, allow_lazy=True, force=False): diff --git a/openpathsampling/experimental/simstore/test_storable_function.py b/openpathsampling/experimental/simstore/test_storable_function.py index c5f074aa7..9edf6059b 100644 --- a/openpathsampling/experimental/simstore/test_storable_function.py +++ b/openpathsampling/experimental/simstore/test_storable_function.py @@ -21,6 +21,9 @@ def __init__(self): self.called_register = collections.defaultdict(int) self.called_load = collections.defaultdict(int) + def has_table(self, table_name): + return table_name in self.storable_function_tables + def register_storable_function(self, table_name, result_type): self.storable_function_tables[table_name] = {} self.called_register[table_name] += 1 From dace6e8d49b0db133f5a6a72bd3b774f00c1fc2d Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Mon, 9 Nov 2020 14:34:15 +0100 Subject: [PATCH 443/464] Update openpathsampling/experimental/simstore/test_sql_backend.py Co-authored-by: Sander Roet --- openpathsampling/experimental/simstore/test_sql_backend.py | 4 ---- 1 file changed, 4 deletions(-) diff --git a/openpathsampling/experimental/simstore/test_sql_backend.py b/openpathsampling/experimental/simstore/test_sql_backend.py index b592d77a5..4173b87cb 100644 --- a/openpathsampling/experimental/simstore/test_sql_backend.py +++ b/openpathsampling/experimental/simstore/test_sql_backend.py @@ -94,9 +94,6 @@ def test_setup(self, db): assert self._col_names_set('tables') == {'name', 'idx', 'module', 'class_name'} assert self._col_names_set('schema') == {'table', 'schema'} - for f in ['test1.sql', 'test2.sql']: - if os.path.isfile(f): - os.remove(f) def test_register_schema(self): new_schema = { @@ -258,4 +255,3 @@ def test_table_getitem(self): expected = tuple(samp_dct[k] for k in ['replica', 'ensemble', 'trajectory']) assert row[2:] == expected - From 4a77d33d759f6e87507541acbef89e702ea176ed Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Mon, 9 Nov 2020 14:34:34 +0100 Subject: [PATCH 444/464] consistently use `from collections import abc` --- .../experimental/simstore/memory_backend.py | 7 +------ openpathsampling/experimental/simstore/tools.py | 13 +++++++------ 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/openpathsampling/experimental/simstore/memory_backend.py b/openpathsampling/experimental/simstore/memory_backend.py index cd44eb766..f6bb4dd03 100644 --- a/openpathsampling/experimental/simstore/memory_backend.py +++ b/openpathsampling/experimental/simstore/memory_backend.py @@ -1,11 +1,6 @@ import os import collections - -try: - from collections import abc -except ImportError: - # Py27 - abc = collections +from collections import abc from .storage import universal_schema diff --git a/openpathsampling/experimental/simstore/tools.py b/openpathsampling/experimental/simstore/tools.py index b3c533810..fb8a87a4f 100644 --- a/openpathsampling/experimental/simstore/tools.py +++ b/openpathsampling/experimental/simstore/tools.py @@ -1,11 +1,12 @@ import itertools import collections +from collections import abc from numpy import ndarray import logging logger = logging.getLogger(__name__) -class SimpleNamespace(collections.abc.MutableMapping): +class SimpleNamespace(abc.MutableMapping): # types.SimpleNameSpace in 3.3+ # this variants acts as either a dict or a namespace for getting def __init__(self, **kwargs): @@ -46,10 +47,10 @@ def is_string(obj): return isinstance(obj, basestring) def is_mappable(obj): - return isinstance(obj, collections.abc.Mapping) + return isinstance(obj, abc.Mapping) def is_iterable(obj): - return isinstance(obj, collections.abc.Iterable) and not is_string(obj) + return isinstance(obj, abc.Iterable) and not is_string(obj) def is_numpy_iterable(obj): return isinstance(obj, ndarray) @@ -138,15 +139,15 @@ def flatten_iterable(ll): return flatten(ll, lambda x: x, (list, tuple, set)) def flatten_all(obj): - is_mappable = lambda x: isinstance(x, collections.abc.Mapping) + is_mappable = lambda x: isinstance(x, abc.Mapping) return flatten(obj, lambda x: x.values() if is_mappable(x) else x.__iter__(), - (collections.abc.Mapping, collections.abc.Iterable), + (abc.Mapping, abc.Iterable), (basestring, ndarray)) def nested_update(original, update): for (k, v) in update.items(): - if isinstance(v, collections.abc.Mapping): + if isinstance(v, abc.Mapping): original[k] = nested_update(original.get(k, {}), v) else: original[k] = v From 44c6b298064b4c60da04f1c9ad835c0a7f916c42 Mon Sep 17 00:00:00 2001 From: Bradley Dice Date: Mon, 16 Nov 2020 19:13:53 -0600 Subject: [PATCH 445/464] Fix SyntaxWarning (resolves #943). --- openpathsampling/engines/features/numpydoctools.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openpathsampling/engines/features/numpydoctools.py b/openpathsampling/engines/features/numpydoctools.py index 3902c5079..924fceee5 100644 --- a/openpathsampling/engines/features/numpydoctools.py +++ b/openpathsampling/engines/features/numpydoctools.py @@ -204,7 +204,7 @@ def _docs(self): while doc and doc[0] == '': doc.pop(0) - if section is not 'HEAD': + if section != 'HEAD': cap = ' '.join([s[0].upper() + s[1:].lower() for s in section.split(' ')]) doc = [ cap, From a883e196d1c71929273d45557a5080c237b6cc43 Mon Sep 17 00:00:00 2001 From: hejung Date: Tue, 17 Nov 2020 23:04:13 +0100 Subject: [PATCH 446/464] fix for filname counter of gromacs engine --- openpathsampling/engines/gromacs/engine.py | 2 +- openpathsampling/tests/test_gromacs_engine.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/openpathsampling/engines/gromacs/engine.py b/openpathsampling/engines/gromacs/engine.py index 8c6d73960..a1555cdfd 100644 --- a/openpathsampling/engines/gromacs/engine.py +++ b/openpathsampling/engines/gromacs/engine.py @@ -303,7 +303,7 @@ def set_filenames(self, number): num_str = '{:07d}'.format(number + 1) self.output_file = self.trajectory_filename(number + 1) init_filename = "initial_frame.trr" - self.filename_setter.reset(number) + self.filename_setter.reset(number + 1) else: num_str = number self.output_file = self.trajectory_filename(num_str) diff --git a/openpathsampling/tests/test_gromacs_engine.py b/openpathsampling/tests/test_gromacs_engine.py index f735927d4..39eaac993 100644 --- a/openpathsampling/tests/test_gromacs_engine.py +++ b/openpathsampling/tests/test_gromacs_engine.py @@ -90,7 +90,7 @@ def setup(self): self.engine = Engine(gro="conf.gro", mdp="md.mdp", top="topol.top", - options={}, + options={'mdrun_args': '-nt 1'}, base_dir=self.test_dir, prefix="project") @@ -227,7 +227,7 @@ def test_generate(self): traj_0 = self.engine.trajectory_filename(0) snap = self.engine.read_frame_from_file(traj_0, 0) - self.engine.set_filenames(0) + self.engine.filename_setter.reset(0) ens = paths.LengthEnsemble(5) traj = self.engine.generate(snap, running=[ens.can_append]) From bf3861049ecf6c8c317e59e629b471c58efddf51 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Sat, 28 Nov 2020 12:30:04 +0100 Subject: [PATCH 447/464] Finish type ident in storable funcs --- .../simstore/storable_functions.py | 2 +- .../experimental/simstore/storage.py | 2 +- .../simstore/test_storable_function.py | 40 ++++++++++++------- .../storage/collective_variables.py | 5 +-- .../storage/test_collective_variables.py | 1 + openpathsampling/high_level/interface_set.py | 1 - 6 files changed, 30 insertions(+), 21 deletions(-) diff --git a/openpathsampling/experimental/simstore/storable_functions.py b/openpathsampling/experimental/simstore/storable_functions.py index 80b8e77c7..390b8a99a 100644 --- a/openpathsampling/experimental/simstore/storable_functions.py +++ b/openpathsampling/experimental/simstore/storable_functions.py @@ -441,7 +441,7 @@ def codec_settings(self, settings): self._codec_settings = settings self.callable_codec = CallableCodec(settings) - def register_function(self, func, add_table=True, example_result=None): + def register_function(self, func, example_result=None): func_uuid = get_uuid(func) # add table to backend if needed diff --git a/openpathsampling/experimental/simstore/storage.py b/openpathsampling/experimental/simstore/storage.py index 0c40c372e..7e763b861 100644 --- a/openpathsampling/experimental/simstore/storage.py +++ b/openpathsampling/experimental/simstore/storage.py @@ -372,7 +372,7 @@ def load(self, input_uuids, allow_lazy=True, force=False): # handle special case of storable functions for result in new_results: if isinstance(result, StorableFunction): - self._sf_handler.register_function(result, add_table=False) + self._sf_handler.register_function(result) return new_results diff --git a/openpathsampling/experimental/simstore/test_storable_function.py b/openpathsampling/experimental/simstore/test_storable_function.py index 9edf6059b..705e69ead 100644 --- a/openpathsampling/experimental/simstore/test_storable_function.py +++ b/openpathsampling/experimental/simstore/test_storable_function.py @@ -4,7 +4,8 @@ except ImportError: import mock -import collections +from collections import defaultdict +import itertools import numpy as np @@ -17,9 +18,9 @@ class MockBackend(object): def __init__(self): - self.storable_function_tables = {} - self.called_register = collections.defaultdict(int) - self.called_load = collections.defaultdict(int) + self.storable_function_tables = defaultdict(dict) + self.called_register = defaultdict(int) + self.called_load = defaultdict(int) def has_table(self, table_name): return table_name in self.storable_function_tables @@ -143,8 +144,7 @@ def test_list_postprocess(self): def test_storable_function_integration(self): snap = make_1d_traj([5.0])[0] - sf = StorableFunction(self.func, result_type='float', - func_config=self.config) + sf = StorableFunction(self.func, func_config=self.config) assert sf(snap) == 5.0 np.testing.assert_array_equal(sf([snap]), np.array([5.0])) @@ -352,25 +352,35 @@ def test_codec_settings(self): # TODO: is this actually used? pytest.skip() - @pytest.mark.parametrize("add_table", [True, False]) - def test_register_function(self, add_table): + @pytest.mark.parametrize('has_table, with_result', + itertools.product([True, False], + [True, False])) + def test_register_function(self, has_table, with_result): + uuid = get_uuid(self.func) + if has_table: + self.storage.backend.storable_function_tables[uuid] = {} + + example = 1.0 if with_result else None + unable_to_register = example is None and not has_table + add_table = not has_table and not unable_to_register + assert not self.func.has_handler assert len(self.sf_handler.all_functions) == 0 assert self.sf_handler.functions == [] - self.sf_handler.register_function(self.func, add_table=add_table) - uuid = get_uuid(self.func) + self.sf_handler.register_function(self.func, example) sf_tables = self.backend.storable_function_tables - if add_table: + if not unable_to_register: assert uuid in sf_tables else: assert uuid not in sf_tables assert self.func is self.sf_handler.canonical_functions[uuid] assert self.sf_handler.all_functions[uuid] == [self.func] - assert self.func.has_handler - assert self.func._handler == self.sf_handler - assert self.sf_handler.functions == [self.func] + if not unable_to_register: + assert self.func.has_handler + assert self.func._handler == self.sf_handler + assert self.sf_handler.functions == [self.func] # make a copy of the func assert get_uuid(self.f2) == get_uuid(self.func) @@ -379,7 +389,7 @@ def test_register_function(self, add_table): # internal checks should ensure that you call add_table False here expected_calls = {True: 1, False: 0}[add_table] assert self.backend.called_register[uuid] == expected_calls - self.sf_handler.register_function(self.f2, add_table) + self.sf_handler.register_function(self.f2, example) assert self.sf_handler.canonical_functions[uuid] is not self.f2 assert self.sf_handler.canonical_functions[uuid] is self.func assert self.sf_handler.all_functions[uuid] == [self.func, self.f2] diff --git a/openpathsampling/experimental/storage/collective_variables.py b/openpathsampling/experimental/storage/collective_variables.py index a13a9dba4..39d778c1c 100644 --- a/openpathsampling/experimental/storage/collective_variables.py +++ b/openpathsampling/experimental/storage/collective_variables.py @@ -95,14 +95,13 @@ def __call__(self, values): return paths.Trajectory(values).to_mdtraj(topology=top) class MDTrajFunctionCV(CoordinateFunctionCV): - def __init__(self, func, topology, result_type=None, func_config=None, + def __init__(self, func, topology, func_config=None, **kwargs): if func_config is None: func_config = StorableFunctionConfig([ MDTrajProcessor(topology), wrap_numpy, scalarize_singletons, ]) - super(MDTrajFunctionCV, self).__init__(func, result_type, - func_config, **kwargs) + super(MDTrajFunctionCV, self).__init__(func, func_config, **kwargs) self.topology = topology self.mdtraj_topology = topology.mdtraj diff --git a/openpathsampling/experimental/storage/test_collective_variables.py b/openpathsampling/experimental/storage/test_collective_variables.py index 814c654e9..333367510 100644 --- a/openpathsampling/experimental/storage/test_collective_variables.py +++ b/openpathsampling/experimental/storage/test_collective_variables.py @@ -83,6 +83,7 @@ def setup(self): mock_func.reset_mock() backend = MockBackend() + backend.register_storable_function(get_uuid(self.func), 'float') self.storage = mock.NonCallableMock(backend=backend) self.storage._sf_handler = StorageFunctionHandler(self.storage) self.storage._sf_handler.register_function(self.func) diff --git a/openpathsampling/high_level/interface_set.py b/openpathsampling/high_level/interface_set.py index 1b3a192b4..f0c27eebb 100644 --- a/openpathsampling/high_level/interface_set.py +++ b/openpathsampling/high_level/interface_set.py @@ -21,7 +21,6 @@ def _simstore_cv_max(cv): from openpathsampling.experimental.simstore import StorableFunction return StorableFunction( func=_cv_max_func, - result_type='float', cv=cv ).named("max " + cv.name) From a67f1644bd1fcceb4cc8185dc50e23c64b41244c Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Tue, 1 Dec 2020 16:33:00 +0100 Subject: [PATCH 448/464] Refactor for attribute handler factories --- .../simstore/attribute_handlers.py | 34 +++++++++++++++++ .../experimental/simstore/serialization.py | 37 ++++++++++++++----- 2 files changed, 61 insertions(+), 10 deletions(-) create mode 100644 openpathsampling/experimental/simstore/attribute_handlers.py diff --git a/openpathsampling/experimental/simstore/attribute_handlers.py b/openpathsampling/experimental/simstore/attribute_handlers.py new file mode 100644 index 000000000..4c97ad825 --- /dev/null +++ b/openpathsampling/experimental/simstore/attribute_handlers.py @@ -0,0 +1,34 @@ +from .my_types import parse_ndarray_type + + +class HandlerFactory(object): + def is_my_type(self, type_str): + pass + + def serializer(self, type_str): + pass + + def deserializer(self, type_str): + pass + +class NDArrayHandlerFactory(HandlerFactory): + def is_my_type(self, type_str): + as_ndarray = parse_ndarray_type(type_str) + + def serializer(self, type_str): + as_ndarray = self.is_my_type(type_str) + if as_ndarray: + dtype, shape = as_ndarray + handler = lambda data, _: \ + np.fromstring(data, dtype=dtype).reshape(shape) + return handler + + def deserializer(self, type_str): + as_ndarray = self.is_my_type(type_str) + if as_ndarray: + dtype, shape = as_ndarray + return lambda arr: \ + arr.astype(dtype=dtype, copy=False).tostring() + + + diff --git a/openpathsampling/experimental/simstore/serialization.py b/openpathsampling/experimental/simstore/serialization.py index da4ac03fd..52564021a 100644 --- a/openpathsampling/experimental/simstore/serialization.py +++ b/openpathsampling/experimental/simstore/serialization.py @@ -1,6 +1,7 @@ import numpy as np from .my_types import parse_ndarray_type from . import serialization_helpers as serialization +from .attribute_handlers import NDArrayHandlerFactory import json import logging @@ -96,6 +97,9 @@ def make_all_lazies(self, lazies): class SchemaDeserializer(object): + handler_factories = [ + NDArrayHandlerFactory(), + ] default_handlers = { 'lazy': serialization.search_caches, 'uuid': serialization.search_caches, @@ -113,9 +117,15 @@ def __init__(self, schema, table, cls): self.attribute_handlers = self.init_attribute_handlers() # TODO: move this external - @staticmethod - def make_numpy_handler(dtype, shape): - return lambda data, _: np.fromstring(data, dtype=dtype).reshape(shape) + # @staticmethod + # def make_numpy_handler(dtype, shape): + # return lambda data, _: np.fromstring(data, dtype=dtype).reshape(shape) + + def get_handler_from_factories(self, type_name): + for factory in self.handler_factories: + handler = factory.serializer(type_name) + if handler is not None: + return handler def init_attribute_handlers(self): attribute_handlers = {} @@ -124,10 +134,11 @@ def init_attribute_handlers(self): if type_name in self.default_handlers: handler = self.default_handlers[type_name] else: - as_ndarray = parse_ndarray_type(type_name) - if as_ndarray: - (dtype, shape) = as_ndarray - handler = self.make_numpy_handler(dtype, shape) + handler = self.get_handler_from_factories(type_name) + # as_ndarray = parse_ndarray_type(type_name) + # if as_ndarray: + # (dtype, shape) = as_ndarray + # handler = self.make_numpy_handler(dtype, shape) if handler: attribute_handlers[attr] = handler return attribute_handlers @@ -158,9 +169,15 @@ class ToDictSerializer(SchemaDeserializer): # TODO: move this external; that will allow us to remove this class # (use it as input to SchemaSerializer or a class factory for that) - @staticmethod - def make_numpy_handler(dtype, shape): - return lambda arr: arr.astype(dtype=dtype, copy=False).tostring() + # @staticmethod + # def make_numpy_handler(dtype, shape): + # return lambda arr: arr.astype(dtype=dtype, copy=False).tostring() + + def get_handler_from_factories(self, type_name): + for factory in self.handler_factories: + handler = factory.serializer(type_name) + if handler is not None: + return handler def __call__(self, obj): dct = obj.to_dict() From 51cbccdb7945061fcb9de634e28b716b7f7290a3 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 3 Dec 2020 11:38:04 +0100 Subject: [PATCH 449/464] redo attribute handlers; integrate for ndarray --- .../simstore/attribute_handlers.py | 91 +++++++++++++++---- .../experimental/simstore/class_info.py | 15 ++- .../experimental/simstore/sql_backend.py | 9 +- .../experimental/simstore/test_class_info.py | 4 +- .../simstore/test_serialization.py | 4 +- .../experimental/simstore/test_tags_table.py | 4 +- 6 files changed, 98 insertions(+), 29 deletions(-) diff --git a/openpathsampling/experimental/simstore/attribute_handlers.py b/openpathsampling/experimental/simstore/attribute_handlers.py index 4c97ad825..dc2a12906 100644 --- a/openpathsampling/experimental/simstore/attribute_handlers.py +++ b/openpathsampling/experimental/simstore/attribute_handlers.py @@ -1,34 +1,85 @@ from .my_types import parse_ndarray_type +import numpy as np -class HandlerFactory(object): - def is_my_type(self, type_str): +class AttributeHandler(object): + def __init__(self, type_info): + self.type_info = type_info + + @staticmethod + def is_my_type(type_str): + """Returns type info (possibly tuple) if true, None if false""" + raise NotImplementedError() + + @classmethod + def from_type_string(cls, type_str): + type_info = cls.is_my_type(type_str) + if type_info: + return cls(type_info) + + def serialize(self, obj): + return obj + + def deserialize(self, data, caches=None): + return data + + +class StandardHandler(AttributeHandler): + standard_types = ['str', 'int', 'float', 'function'] + def __init__(self, type_info): + super().__init__(type_info) + self.backend_type = type_info + + @classmethod + def is_my_type(cls, type_str): + if type_str in cls.standard_types: + return type_str + + +# TODO: these have not yet been implemented, but this is how it should all +# work -- everything should be managed through attribute handlers, instead +# of separate functions for serialize/deserialize +class UUIDHandler(StandardHandler): + standard_types = ['uuid', 'lazy'] + def serialize(self, obj): pass - def serializer(self, type_str): + def deserialize(self, data, caches=None): + pass + + +class ListUUIDHandler(StandardHandler): + standard_types = ['list_uuid'] + def serialize(self, obj): + pass + + def deserialize(self, data, caches=None): + pass + + +class JSONObjHandler(StandardHandler): + standard_types = ['json_obj'] + def serialize(self, obj): pass - def deserializer(self, type_str): + def deserialize(self, data, caches=None): pass -class NDArrayHandlerFactory(HandlerFactory): - def is_my_type(self, type_str): - as_ndarray = parse_ndarray_type(type_str) - def serializer(self, type_str): - as_ndarray = self.is_my_type(type_str) - if as_ndarray: - dtype, shape = as_ndarray - handler = lambda data, _: \ - np.fromstring(data, dtype=dtype).reshape(shape) - return handler +class NDArrayHandler(AttributeHandler): + def __init__(self, type_info): + super().__init__(type_info) + self.dtype, self.shape = type_info + self.backend_type = 'ndarray' - def deserializer(self, type_str): - as_ndarray = self.is_my_type(type_str) - if as_ndarray: - dtype, shape = as_ndarray - return lambda arr: \ - arr.astype(dtype=dtype, copy=False).tostring() + @classmethod + def is_my_type(cls, type_str): + return parse_ndarray_type(type_str) + def serialize(self, obj): + return obj.astype(dtype=self.dtype, copy=False).tostring() + def deserialize(self, data, caches=None): + return np.fromstring(data, dtype=self.dtype).reshape(self.shape) +DEFAULT_HANDLERS = [NDArrayHandler, StandardHandler] diff --git a/openpathsampling/experimental/simstore/class_info.py b/openpathsampling/experimental/simstore/class_info.py index 22e1dbbcd..1a3b7a337 100644 --- a/openpathsampling/experimental/simstore/class_info.py +++ b/openpathsampling/experimental/simstore/class_info.py @@ -7,6 +7,8 @@ from .serialization_helpers import get_all_uuids from .my_types import uuid_types, uuid_list_types, json_obj_types +from . import attribute_handlers + import json @@ -46,15 +48,15 @@ def __init__(self, table, cls, serializer=None, deserializer=None, self.lookup_result = lookup_result self.find_uuids = find_uuids - def set_defaults(self, schema): + def set_defaults(self, schema, handlers): table = self.table if self.table in schema else None self.serializer = tools.none_to_default( self.serializer, - SchemaSerializer(schema, table, self.cls) + SchemaSerializer(schema, table, self.cls, handlers) ) self.unsafe_deserializer = tools.none_to_default( self.unsafe_deserializer, - SchemaDeserializer(schema, table, self.cls) + SchemaDeserializer(schema, table, self.cls, handlers) ) self.safe_deserializer = tools.none_to_default( self.safe_deserializer, @@ -98,8 +100,11 @@ class might be used to represent data with different dimensions, and with specialized information. """ def __init__(self, default_info, sfr_info=None, schema=None, - class_info_list=None): + class_info_list=None, handlers=None): class_info_list = tools.none_to_default(class_info_list, []) + handlers = tools.none_to_default(handlers, + attribute_handlers.DEFAULT_HANDLERS) + self.attribute_handlers = handlers self.schema = {} self.lookup_to_info = {} self.table_to_info = {} @@ -145,7 +150,7 @@ def register_info(self, class_info_list, schema=None): schema = tools.none_to_default(schema, {}) self.schema.update(schema) for info in class_info_list: - info.set_defaults(schema) + info.set_defaults(schema, self.attribute_handlers) self.add_class_info(info) def set_safemode(self, mode): diff --git a/openpathsampling/experimental/simstore/sql_backend.py b/openpathsampling/experimental/simstore/sql_backend.py index 41c663a6a..a32b1b9d5 100644 --- a/openpathsampling/experimental/simstore/sql_backend.py +++ b/openpathsampling/experimental/simstore/sql_backend.py @@ -101,6 +101,11 @@ def __init__(self, filename, mode='r', sql_dialect='sqlite', **kwargs): self.debug = False self.max_query_size = 900 + # maps a specific type name, to generic type info, e.g. + # 'ndarray.float32(1651,3)': 'ndarray' + # keys here are in the schema, values are (sql_type, size) + self.known_types = {k: (k, None) for k in sql_type} + # override later if mode == 'r' or 'a' self.schema = {} self.table_to_number = {} @@ -286,8 +291,10 @@ def _load_from_table(self, table_name, idx_list): return results - ### FROM HERE IS THE GENERIC PUBLIC API + def register_type(self, type_str, backend_type): + self.known_types[type_str] = backend_type + def register_schema(self, schema, table_to_class, sql_schema_metadata=None): """Register (part of) a schema (create necessary tables in DB) diff --git a/openpathsampling/experimental/simstore/test_class_info.py b/openpathsampling/experimental/simstore/test_class_info.py index 321af618d..b2c51d403 100644 --- a/openpathsampling/experimental/simstore/test_class_info.py +++ b/openpathsampling/experimental/simstore/test_class_info.py @@ -7,6 +7,8 @@ from .serialization_helpers import default_find_uuids +from .attribute_handlers import DEFAULT_HANDLERS + class MockSpecialSerializationSchema(SerializationSchema): def is_special(self, item): return isinstance(item, ExtraMockDataObject) @@ -30,7 +32,7 @@ def test_init_default_setup(self): cls=MockUUIDObject ) schema = {'mock': MockUUIDObject.schema} - class_info.set_defaults(schema) + class_info.set_defaults(schema, DEFAULT_HANDLERS) assert class_info.table == "mock" assert class_info.cls == MockUUIDObject assert isinstance(class_info.serializer, SchemaSerializer) diff --git a/openpathsampling/experimental/simstore/test_serialization.py b/openpathsampling/experimental/simstore/test_serialization.py index fb839d612..4a062a9b4 100644 --- a/openpathsampling/experimental/simstore/test_serialization.py +++ b/openpathsampling/experimental/simstore/test_serialization.py @@ -7,6 +7,8 @@ from . import class_info +from .attribute_handlers import DEFAULT_HANDLERS + class TestGenericLazyLoader(object): def setup(self): @@ -123,7 +125,7 @@ def test_make_all_lazies(self): cls=MockSimulationObject, find_uuids=default_find_uuids) mock_info = class_info.ClassInfo(table='mock', cls=MockUUIDObject) - mock_info.set_defaults(schema) + mock_info.set_defaults(schema, DEFAULT_HANDLERS) serialization_schema = class_info.SerializationSchema( default_info=sim_info, schema=schema, diff --git a/openpathsampling/experimental/simstore/test_tags_table.py b/openpathsampling/experimental/simstore/test_tags_table.py index 10cc27eb2..020145eb2 100644 --- a/openpathsampling/experimental/simstore/test_tags_table.py +++ b/openpathsampling/experimental/simstore/test_tags_table.py @@ -5,6 +5,8 @@ from .custom_json import JSONSerializerDeserializer, uuid_object_codec from .serialization_helpers import default_find_uuids +from .attribute_handlers import DEFAULT_HANDLERS + from openpathsampling.netcdfplus import StorableObject from .tags_table import * @@ -39,7 +41,7 @@ def setup(self): ] ) for info in serialization_schema.class_info_list: - info.set_defaults(serialization_schema.schema) + info.set_defaults(serialization_schema.schema, DEFAULT_HANDLERS) backend = SQLStorageBackend(":memory:", mode='w') self.storage = GeneralStorage(backend, serialization_schema, serialization_schema.schema) From 31892e986fc31041115e9923224424d9b134f4fc Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 3 Dec 2020 12:17:45 +0100 Subject: [PATCH 450/464] complete transition to attribute handlers (numpy) --- .../experimental/simstore/attribute_handlers.py | 2 ++ .../experimental/simstore/class_info.py | 8 ++++++++ .../experimental/simstore/serialization.py | 16 +++++++--------- .../experimental/simstore/sql_backend.py | 10 +++++++--- .../experimental/simstore/storage.py | 6 ++++++ 5 files changed, 30 insertions(+), 12 deletions(-) diff --git a/openpathsampling/experimental/simstore/attribute_handlers.py b/openpathsampling/experimental/simstore/attribute_handlers.py index dc2a12906..1ec0b5ab7 100644 --- a/openpathsampling/experimental/simstore/attribute_handlers.py +++ b/openpathsampling/experimental/simstore/attribute_handlers.py @@ -29,6 +29,7 @@ class StandardHandler(AttributeHandler): def __init__(self, type_info): super().__init__(type_info) self.backend_type = type_info + self.type_size = None @classmethod def is_my_type(cls, type_str): @@ -71,6 +72,7 @@ def __init__(self, type_info): super().__init__(type_info) self.dtype, self.shape = type_info self.backend_type = 'ndarray' + self.type_size = None # TODO: change this based on dtype/shape @classmethod def is_my_type(cls, type_str): diff --git a/openpathsampling/experimental/simstore/class_info.py b/openpathsampling/experimental/simstore/class_info.py index 1a3b7a337..460469d24 100644 --- a/openpathsampling/experimental/simstore/class_info.py +++ b/openpathsampling/experimental/simstore/class_info.py @@ -146,6 +146,14 @@ def copy(self): ) return dup + def backend_type(self, type_name): + for handler in self.attribute_handlers: + if handler.is_my_type(type_name): + handler_obj = handler.from_type_string(type_name) + return handler_obj.backend_type, handler_obj.type_size + # current default is to return the input; may change + return type_name, None + def register_info(self, class_info_list, schema=None): schema = tools.none_to_default(schema, {}) self.schema.update(schema) diff --git a/openpathsampling/experimental/simstore/serialization.py b/openpathsampling/experimental/simstore/serialization.py index 52564021a..ca53544e4 100644 --- a/openpathsampling/experimental/simstore/serialization.py +++ b/openpathsampling/experimental/simstore/serialization.py @@ -1,7 +1,7 @@ import numpy as np from .my_types import parse_ndarray_type from . import serialization_helpers as serialization -from .attribute_handlers import NDArrayHandlerFactory +from . import attribute_handlers import json import logging @@ -97,16 +97,13 @@ def make_all_lazies(self, lazies): class SchemaDeserializer(object): - handler_factories = [ - NDArrayHandlerFactory(), - ] default_handlers = { 'lazy': serialization.search_caches, 'uuid': serialization.search_caches, 'list_uuid': load_list_uuid, } - def __init__(self, schema, table, cls): + def __init__(self, schema, table, cls, handlers): self.schema = schema self.table = table if table is not None: @@ -114,6 +111,7 @@ def __init__(self, schema, table, cls): else: self.entries = [] self.cls = cls + self.handler_factories = handlers self.attribute_handlers = self.init_attribute_handlers() # TODO: move this external @@ -123,9 +121,9 @@ def __init__(self, schema, table, cls): def get_handler_from_factories(self, type_name): for factory in self.handler_factories: - handler = factory.serializer(type_name) + handler = factory.from_type_string(type_name) if handler is not None: - return handler + return handler.deserialize def init_attribute_handlers(self): attribute_handlers = {} @@ -175,9 +173,9 @@ class ToDictSerializer(SchemaDeserializer): def get_handler_from_factories(self, type_name): for factory in self.handler_factories: - handler = factory.serializer(type_name) + handler = factory.from_type_string(type_name) if handler is not None: - return handler + return handler.serialize def __call__(self, obj): dct = obj.to_dict() diff --git a/openpathsampling/experimental/simstore/sql_backend.py b/openpathsampling/experimental/simstore/sql_backend.py index a32b1b9d5..73e9a6bc5 100644 --- a/openpathsampling/experimental/simstore/sql_backend.py +++ b/openpathsampling/experimental/simstore/sql_backend.py @@ -36,14 +36,17 @@ 'tables': {'name': {'primary_key': True}} } -def make_columns(table_name, schema, sql_schema_metadata): +def make_columns(table_name, schema, sql_schema_metadata, backend_types): columns = [] + type_mapping = {k: v[0] for k, v in backend_types.items()} + # TODO: use size_info for fixed-width columns + size_info = {k: v[1] for k, v in backend_types.items()} if table_name not in universal_schema: columns.append(sql.Column('idx', sql.Integer, primary_key=True)) columns.append(sql.Column('uuid', sql.String)) for col, type_name in schema[table_name]: - col_type = sql_type[backend_registration_type(type_name)] + col_type = sql_type[type_mapping[type_name]] metadata = extract_backend_metadata(sql_schema_metadata, table_name, col) columns.append(sql.Column(col, col_type, **metadata)) @@ -308,7 +311,8 @@ def register_schema(self, schema, table_to_class, """ for table_name in schema: logger.info("Add schema table " + str(table_name)) - columns = make_columns(table_name, schema, sql_schema_metadata) + columns = make_columns(table_name, schema, sql_schema_metadata, + self.known_types) try: table = sql.Table(table_name, self.metadata, *columns) except sql.exc.InvalidRequestError: diff --git a/openpathsampling/experimental/simstore/storage.py b/openpathsampling/experimental/simstore/storage.py index 9f9ffc828..51d54b1c3 100644 --- a/openpathsampling/experimental/simstore/storage.py +++ b/openpathsampling/experimental/simstore/storage.py @@ -153,6 +153,12 @@ def register_schema(self, schema, class_info_list, # info.set_defaults(schema) # self.class_info.add_class_info(info) + schema_types = [type_str for attr_list in schema.values() + for _, type_str in attr_list] + for type_str in schema_types: + backend_type = self.class_info.backend_type(type_str) + self.backend.register_type(type_str, backend_type) + if not read_mode or self.backend.table_to_class == {}: table_to_class = {table: self.class_info[table].cls for table in schema From 1a2ae80626904f212d0fb736623989a605e185dd Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 3 Dec 2020 12:53:04 +0100 Subject: [PATCH 451/464] support for simtk units (needs tests) --- .../experimental/simstore/class_lookup.py | 8 ++ .../experimental/storage/ops_storage.py | 18 +++- .../experimental/storage/simtk_unit.py | 95 +++++++++++++++++++ .../experimental/storage/snapshots.py | 2 +- 4 files changed, 117 insertions(+), 6 deletions(-) create mode 100644 openpathsampling/experimental/storage/simtk_unit.py diff --git a/openpathsampling/experimental/simstore/class_lookup.py b/openpathsampling/experimental/simstore/class_lookup.py index 800110a5c..5fecd3fa4 100644 --- a/openpathsampling/experimental/simstore/class_lookup.py +++ b/openpathsampling/experimental/simstore/class_lookup.py @@ -14,6 +14,14 @@ def __init__(self, check_method): self._true_set = set() self._false_set = set() + def force_true(self, cls): + self._false_set.discard(cls) + self._true_set.add(cls) + + def force_false(self, cls): + self._true_set.discard(cls) + self._false_set.add(cls) + def __call__(self, obj): key = obj.__class__ if key in self._false_set: diff --git a/openpathsampling/experimental/storage/ops_storage.py b/openpathsampling/experimental/storage/ops_storage.py index 6029214a2..58d015330 100644 --- a/openpathsampling/experimental/storage/ops_storage.py +++ b/openpathsampling/experimental/storage/ops_storage.py @@ -1,6 +1,8 @@ from ..simstore import storage from ..simstore import sql_backend +from ..simstore.attribute_handlers import DEFAULT_HANDLERS + from ..simstore.serialization_helpers import to_json_obj as json_serializer from ..simstore.serialization_helpers import from_json_obj as deserialize_sim from ..simstore.serialization_helpers import import_class @@ -36,6 +38,8 @@ from . import snapshots from .snapshots_table import SnapshotsTable +from .simtk_unit import simtk_quantity_codec, SimtkQuantityHandler + import logging logger = logging.getLogger(__name__) @@ -65,7 +69,9 @@ ops_schema_sql_metadata = {} # this defines the simulation object serializer for OPS -CODECS = [numpy_codec, bytes_codec, uuid_object_codec] +CODECS = [numpy_codec, bytes_codec, uuid_object_codec, simtk_quantity_codec] + +HANDLERS = DEFAULT_HANDLERS + [SimtkQuantityHandler] UNSAFE_CODECS = CODECS + [CallableCodec()] SAFE_CODECS = CODECS + [CallableCodec({'safemode': True})] @@ -74,11 +80,12 @@ class MoveChangeDeserializer(SchemaDeserializer): # in general, I think it would be better to reorg MoveChange to only be # one class, but this is aimed at fixing problems with reloading # MoveChange objects - def __init__(self, schema, table): + def __init__(self, schema, table, handlers): super(MoveChangeDeserializer, self).__init__( schema=schema, table=table, - cls=None + cls=None, + handlers=[] ) def __call__(self, uuid, table_dct, cache_list): @@ -202,7 +209,8 @@ def _build_ops_serializer(schema, safe_codecs, unsafe_codecs): ClassInfo(table='move_changes', cls=paths.MoveChange, deserializer=MoveChangeDeserializer( schema=schema, - table='move_changes' + table='move_changes', + handlers=HANDLERS )), ClassInfo(table='steps', cls=paths.MCStep), ClassInfo(table='details', cls=paths.Details, @@ -222,7 +230,7 @@ def _build_ops_serializer(schema, safe_codecs, unsafe_codecs): ) for info in ops_class_info.class_info_list: - info.set_defaults(schema) + info.set_defaults(schema, HANDLERS) return ops_class_info diff --git a/openpathsampling/experimental/storage/simtk_unit.py b/openpathsampling/experimental/storage/simtk_unit.py new file mode 100644 index 000000000..72081d9d2 --- /dev/null +++ b/openpathsampling/experimental/storage/simtk_unit.py @@ -0,0 +1,95 @@ +from openpathsampling.experimental.simstore.custom_json import JSONCodec +from openpathsampling.experimental.simstore.attribute_handlers import ( + AttributeHandler, NDArrayHandler +) +import re + +try: + import simtk.unit +except ImportError: + HAS_SIMTK = False +else: + HAS_SIMTK = True + # note that we need to force simstore to not treat this as an iterable + from openpathsampling.experimental.simstore.class_lookup import \ + is_storage_iterable + is_storage_iterable.force_false(simtk.unit.Quantity) + +### JSON SERIALIZATION ################################################### + +def unit_to_dict(obj): + return {p.name: int(power) + for p, power in obj.iter_base_or_scaled_units()} + +def unit_from_dict(dct): + unit = simtk.unit.Unit({}) + for u_name, u_power in dct.items(): + unit *= getattr(simtk.unit, u_name) ** u_power + return unit + +def quantity_to_dict(obj): + return { + 'value': obj.value, + '__simtk_unit__': unit_to_dict(obj.unit)} + +def quantity_from_dict(dct): + unit = unit_from_dict(dct['__simtk_unit__']) + return dct['value'] * unit + + +if HAS_SIMTK: + simtk_quantity_codec = JSONCodec( + cls=simtk.unit.Quantity, + to_dict=quantity_to_dict, + from_dict=quantity_to_dict, + is_my_dict=lambda x: '__simtk_unit__' in x + ) + +### DIRECT SERIALIZATION ################################################# +_simtk_re = re.compile("simtk\((.*)\)\*((ndarray|float).*)") + + +def simtk_unit_from_string(unit_str): + # TODO: add safety checks; parse the AST and ensure that all attributes + # are of `unit` and that all operations are mul/div/pow + from simtk import unit + return eval(unit_str, {'unit': unit}) + + +class SimtkQuantityHandler(AttributeHandler): + # NOTE: only supports ndarrays and floats for now + def __init__(self, type_info): + super().__init__(type_info) + self.unit_str, self.wrapped_type = type_info + self.unit = simtk_unit_from_string(self.unit_str) + if self.wrapped_type == 'float': + self.inner_serialize = lambda x: x + self.inner_deserialize = lambda x, _: x + self.backend_type = 'float' + self.type_size = None + else: + np_handler = NDArrayHandler.from_type_string(self.wrapped_type) + self.inner_serialize = np_handler.serialize + self.inner_deserialize = np_handler.deserialize + self.backend_type = np_handler.backend_type + self.type_size = np_handler.type_size + + @staticmethod + def is_my_type(type_str): + m_simtk_quantity = _simtk_re.match(type_str) + if m_simtk_quantity: + unit = m_simtk_quantity.group(1) + wrapped_type = m_simtk_quantity.group(2) + return unit, wrapped_type + + def serialize(self, obj): + unwrapped = obj.value_in_unit(self.unit) + return self.inner_serialize(unwrapped) + + def deserialize(self, data, caches=None): + unwrapped = self.inner_deserialize(data, caches) + return self.unit * unwrapped + + + + diff --git a/openpathsampling/experimental/storage/snapshots.py b/openpathsampling/experimental/storage/snapshots.py index 57ddf503d..e2e38231e 100644 --- a/openpathsampling/experimental/storage/snapshots.py +++ b/openpathsampling/experimental/storage/snapshots.py @@ -96,7 +96,7 @@ def snapshot_registration_info(snapshot_instance, snapshot_number): attr_infos = [] for table in [tbl for tbl in schema.keys() if tbl != 'snapshot']: obj = getattr(snapshot_instance, table) - attr_infos.append(ClassInfo(table=real_table, + attr_infos.append(ClassInfo(table=real_table[table], cls=obj.__class__, lookup_result=(engine_uuid, obj.__class__))) From c4d0aded64cc077beb218df3a0720d609bfff179 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Fri, 4 Dec 2020 14:55:18 +0100 Subject: [PATCH 452/464] most of the way to storing OpenMM snapshots --- openpathsampling/engines/features/kinetics.py | 9 +++++++++ openpathsampling/engines/features/statics.py | 14 ++++++++++++-- .../experimental/storage/ops_storage.py | 8 +++++++- 3 files changed, 28 insertions(+), 3 deletions(-) diff --git a/openpathsampling/engines/features/kinetics.py b/openpathsampling/engines/features/kinetics.py index bce4b4f65..7dbf89397 100644 --- a/openpathsampling/engines/features/kinetics.py +++ b/openpathsampling/engines/features/kinetics.py @@ -7,6 +7,15 @@ dimensions = ['n_atoms', 'n_spatial'] +_vel_unit = "simtk(unit.nanometer/unit.picosecond)" +_vel_str = "ndarray.float32({{n_atom}},{{n_spatial}})" +schema_entries = [( + 'kinetics', [ + ('velocities', _vel_unit + "*" + _vel_str), + ('is_reversed', 'bool'), # I think is_reversed can be removed... + ] +)] + def netcdfplus_init(store): kinetic_store = KineticContainerStore() diff --git a/openpathsampling/engines/features/statics.py b/openpathsampling/engines/features/statics.py index 701fd59a2..ae4d9a37e 100644 --- a/openpathsampling/engines/features/statics.py +++ b/openpathsampling/engines/features/statics.py @@ -10,9 +10,19 @@ dimensions = ['n_atoms', 'n_spatial'] +_length_unit = "simtk(unit.nanometer)" +_array32 = "ndarray.float32" schema_entries = [( - 'statics', [('coordinates', 'ndarray.float32({n_atoms},{n_spatial})'), - ('box_vectors', 'ndarray.float32({n_spatial},{n_spatial})')] + 'statics', [ + ('coordinates', + '{length_unit}*{array32}({{n_atoms}},{{n_spatial}})'.format( + length_unit=_length_unit, array32=_array32 + )), + ('box_vectors', + '{length_unit}*{array32}({{n_spatial}},{{n_spatial}})'.format( + length_unit=_length_unit, array32=_array32 + )) + ] )] diff --git a/openpathsampling/experimental/storage/ops_storage.py b/openpathsampling/experimental/storage/ops_storage.py index 58d015330..57fc65780 100644 --- a/openpathsampling/experimental/storage/ops_storage.py +++ b/openpathsampling/experimental/storage/ops_storage.py @@ -76,6 +76,11 @@ UNSAFE_CODECS = CODECS + [CallableCodec()] SAFE_CODECS = CODECS + [CallableCodec({'safemode': True})] +DATA_CONTAINER_CLASSES = ( + paths.engines.features.shared.KineticContainer, + paths.engines.features.shared.StaticContainer, +) + class MoveChangeDeserializer(SchemaDeserializer): # in general, I think it would be better to reorg MoveChange to only be # one class, but this is aimed at fixing problems with reloading @@ -103,7 +108,6 @@ def __call__(self, uuid, table_dct, cache_list): return obj - class OPSSpecialLookup(object): """Separate object to handle special lookups @@ -319,6 +323,8 @@ def register_from_tables(self, table_names, classes): for table in table_names: logger.info("Attempting to register missing table {} ({})"\ .format(table, str(table_to_class[table]))) + if issubclass(table_to_class[table], DATA_CONTAINER_CLASSES): + raise RuntimeError("TODO") if issubclass(table_to_class[table], paths.BaseSnapshot): lookups.update(snapshots.snapshot_registration_from_db( storage=self, From d4546e21d61167e4c6d35a04a65ec0eb830994ad Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Fri, 4 Dec 2020 15:29:47 +0100 Subject: [PATCH 453/464] Add engine to StaticContainer/KineticContainer Ran tests and reloaded old files, so this shouldn't break things --- openpathsampling/engines/features/shared.py | 67 ++++----------------- 1 file changed, 11 insertions(+), 56 deletions(-) diff --git a/openpathsampling/engines/features/shared.py b/openpathsampling/engines/features/shared.py index 6e9b69cda..232f40225 100644 --- a/openpathsampling/engines/features/shared.py +++ b/openpathsampling/engines/features/shared.py @@ -27,6 +27,7 @@ def unmask_quantity(quantity): return quantity return np.array(quantity.value_in_unit(q_unit)) * q_unit + # ============================================================================= # SIMULATION CONFIGURATION # ============================================================================= @@ -36,53 +37,24 @@ class StaticContainer(StorableObject): Simulation configuration. Only Coordinates, the associated boxvectors and the potential_energy - Attributes + Parameters ---------- coordinates : simtk.unit.Quantity wrapping Nx3 np array of dimension length atomic coordinates box_vectors : periodic box vectors the periodic box vectors - + engine : :class:`.DynamicsEngine` + the engine that creating this data """ # Class variables to store the global storage and the system context # describing the system to be saved as configuration_indices - def __init__(self, coordinates, box_vectors): - """ - Create a simulation configuration from either an OpenMM context or - individually-specified components. - - Parameters - ---------- - coordinates - box_vectors - """ - + def __init__(self, coordinates, box_vectors, engine=None): super(StaticContainer, self).__init__() - self.coordinates = copy.deepcopy(coordinates) self.box_vectors = copy.deepcopy(box_vectors) - - # if self.coordinates is not None: - # # Check for nans in coordinates, and raise an exception if - # # something is wrong. - # if type(self.coordinates) is unit.Quantity: - # coords = self.coordinates._value - # else: - # coords = self.coordinates - # - # if np.any(np.isnan(coords)): - # bad_atoms = [i for i in range(len(coords)) - # if np.any(np.isnan(coords[i]))] - # raise ValueError("Coordinates went 'nan' for atoms: " + - # str(bad_atoms)) - - return - - # ========================================================================= - # Comparison functions - # ========================================================================= + self.engine = engine @property def n_atoms(self): @@ -91,10 +63,6 @@ def n_atoms(self): """ return self.coordinates.shape[0] - # ========================================================================= - # Utility functions - # ========================================================================= - def copy(self): """ Returns a deep copy of the instance itself using a subset of coordinates. @@ -112,6 +80,7 @@ def copy(self): ) def to_dict(self): + # note: to_dict not used here in SimStore, so no need to change return { 'coordinates': self.coordinates, 'box_vectors': self.box_vectors @@ -214,26 +183,14 @@ class KineticContainer(StorableObject): ---------- velocities : simtk.unit.Quantity wrapping Nx3 np array of dimension length atomic velocities - + engine : :class:`.DynamicsEngine` + the engine that creating this data """ - def __init__(self, velocities): - """ - Create a simulation momentum from either an OpenMM context or - individually-specified components. - - Parameters - ---------- - velocities - """ - + def __init__(self, velocities, engine=None): super(KineticContainer, self).__init__() - self.velocities = copy.deepcopy(velocities) - - # ========================================================================= - # Utility functions - # ========================================================================= + self.engine = engine def copy(self): """ @@ -245,9 +202,7 @@ def copy(self): Momentum() the shallow copy """ - this = KineticContainer(velocities=self.velocities) - return this def to_dict(self): From b8fa05d7eaac8e7c75fb66a6cf56025ad3462c27 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Sat, 5 Dec 2020 14:16:35 +0100 Subject: [PATCH 454/464] Seems like I can store/load OpenMM snapshots now! --- openpathsampling/engines/features/kinetics.py | 15 +-- openpathsampling/engines/features/shared.py | 10 +- openpathsampling/engines/features/statics.py | 19 +-- openpathsampling/engines/openmm/snapshot.py | 9 +- openpathsampling/engines/openmm/tools.py | 6 +- .../experimental/simstore/sql_backend.py | 1 + .../experimental/simstore/storage.py | 46 ++++--- .../experimental/storage/ops_storage.py | 119 ++++++++++-------- .../experimental/storage/snapshots.py | 12 +- 9 files changed, 141 insertions(+), 96 deletions(-) diff --git a/openpathsampling/engines/features/kinetics.py b/openpathsampling/engines/features/kinetics.py index 7dbf89397..cf969aa89 100644 --- a/openpathsampling/engines/features/kinetics.py +++ b/openpathsampling/engines/features/kinetics.py @@ -8,13 +8,14 @@ dimensions = ['n_atoms', 'n_spatial'] _vel_unit = "simtk(unit.nanometer/unit.picosecond)" -_vel_str = "ndarray.float32({{n_atom}},{{n_spatial}})" -schema_entries = [( - 'kinetics', [ +_vel_str = "ndarray.float32({n_atoms},{n_spatial})" +schema_entries = [ + ('kinetics', [ ('velocities', _vel_unit + "*" + _vel_str), - ('is_reversed', 'bool'), # I think is_reversed can be removed... - ] -)] + ('engine', 'uuid'), + ]), + ('is_reversed', 'bool'), +] def netcdfplus_init(store): @@ -59,7 +60,7 @@ def velocities(self): @velocities.setter def velocities(self, value): if value is not None: - kc = KineticContainer(velocities=value) + kc = KineticContainer(velocities=value, engine=self.engine) else: kc = None diff --git a/openpathsampling/engines/features/shared.py b/openpathsampling/engines/features/shared.py index 232f40225..4849bf351 100644 --- a/openpathsampling/engines/features/shared.py +++ b/openpathsampling/engines/features/shared.py @@ -76,8 +76,8 @@ def copy(self): """ return StaticContainer(coordinates=self.coordinates, - box_vectors=self.box_vectors - ) + box_vectors=self.box_vectors, + engine=self.engine) def to_dict(self): # note: to_dict not used here in SimStore, so no need to change @@ -118,7 +118,8 @@ def _load(self, idx): if not np.count_nonzero(box_vectors): box_vectors = None - configuration = StaticContainer(coordinates=coordinates, box_vectors=box_vectors) + configuration = StaticContainer(coordinates=coordinates, + box_vectors=box_vectors) return configuration @@ -202,7 +203,8 @@ def copy(self): Momentum() the shallow copy """ - this = KineticContainer(velocities=self.velocities) + this = KineticContainer(velocities=self.velocities, + engine=self.engine) return this def to_dict(self): diff --git a/openpathsampling/engines/features/statics.py b/openpathsampling/engines/features/statics.py index ae4d9a37e..0d832f66e 100644 --- a/openpathsampling/engines/features/statics.py +++ b/openpathsampling/engines/features/statics.py @@ -12,8 +12,8 @@ _length_unit = "simtk(unit.nanometer)" _array32 = "ndarray.float32" -schema_entries = [( - 'statics', [ +schema_entries = [ + ('statics', [ ('coordinates', '{length_unit}*{array32}({{n_atoms}},{{n_spatial}})'.format( length_unit=_length_unit, array32=_array32 @@ -21,9 +21,10 @@ ('box_vectors', '{length_unit}*{array32}({{n_spatial}},{{n_spatial}})'.format( length_unit=_length_unit, array32=_array32 - )) - ] -)] + )), + ('engine', 'uuid'), + ]), +] def netcdfplus_init(store): @@ -62,7 +63,9 @@ def coordinates(snapshot): @coordinates.setter def coordinates(self, value): if value is not None: - sc = StaticContainer(coordinates=value, box_vectors=self.box_vectors) + sc = StaticContainer(coordinates=value, + box_vectors=self.box_vectors, + engine=self.engine) else: sc = None @@ -87,7 +90,9 @@ def box_vectors(snapshot): @box_vectors.setter def box_vectors(self, value): if value is not None: - sc = StaticContainer(box_vectors=value, coordinates=self.coordinates) + sc = StaticContainer(box_vectors=value, + coordinates=self.coordinates, + engine=self.engine) else: sc = None diff --git a/openpathsampling/engines/openmm/snapshot.py b/openpathsampling/engines/openmm/snapshot.py index 6d81d5aff..e5e47aa06 100644 --- a/openpathsampling/engines/openmm/snapshot.py +++ b/openpathsampling/engines/openmm/snapshot.py @@ -93,10 +93,15 @@ def construct( if statics is None: statics = Snapshot.StaticContainer( coordinates=coordinates, - box_vectors=box_vectors) + box_vectors=box_vectors, + engine=engine + ) if kinetics is None: - kinetics = Snapshot.KineticContainer(velocities=velocities) + kinetics = Snapshot.KineticContainer( + velocities=velocities, + engine=engine + ) return Snapshot( engine=engine, diff --git a/openpathsampling/engines/openmm/tools.py b/openpathsampling/engines/openmm/tools.py index a9c7df62d..3d0390c70 100644 --- a/openpathsampling/engines/openmm/tools.py +++ b/openpathsampling/engines/openmm/tools.py @@ -256,9 +256,11 @@ def trajectory_from_mdtraj(mdtrajectory, simple_topology=False, statics = Snapshot.StaticContainer( coordinates=coord, - box_vectors=box_v + box_vectors=box_v, + engine=engine ) - kinetics = Snapshot.KineticContainer(velocities=vel) + kinetics = Snapshot.KineticContainer(velocities=vel, + engine=engine) snap = Snapshot( statics=statics, diff --git a/openpathsampling/experimental/simstore/sql_backend.py b/openpathsampling/experimental/simstore/sql_backend.py index 73e9a6bc5..dd02dc74b 100644 --- a/openpathsampling/experimental/simstore/sql_backend.py +++ b/openpathsampling/experimental/simstore/sql_backend.py @@ -28,6 +28,7 @@ 'float': sql.Float, 'function': sql.String, 'ndarray': sql.LargeBinary, + 'bool': sql.Boolean, #TODO add more } diff --git a/openpathsampling/experimental/simstore/storage.py b/openpathsampling/experimental/simstore/storage.py index 51d54b1c3..0438b62b7 100644 --- a/openpathsampling/experimental/simstore/storage.py +++ b/openpathsampling/experimental/simstore/storage.py @@ -46,6 +46,7 @@ 'tags': [('name', 'str'), ('content', 'uuid')] } + from openpathsampling.netcdfplus import StorableNamedObject class GeneralStorage(StorableNamedObject): _known_storages = {} @@ -205,6 +206,24 @@ def filter_existing_uuids(self, uuid_dict): return uuid_dict + def _uuids_by_table(self, input_uuids, cache, get_table_name): + # find all UUIDs we need to save with this object + logger.debug("Listing all objects to save") + uuids = {} + for uuid, obj in input_uuids.items(): + uuids.update(get_all_uuids(obj, known_uuids=cache, + class_info=self.class_info)) + + logger.debug("Checking if objects already exist in database") + uuids = self.filter_existing_uuids(uuids) + + # group by table, then save appropriately + # by_table; convert a dict of {uuid: obj} to {table: {uuid: obj}} + by_table = collections.defaultdict(dict) + by_table.update(tools.dict_group_by(uuids, + key_extract=get_table_name)) + return by_table + def save(self, obj_list, use_cache=True): if type(obj_list) is not list: @@ -222,30 +241,21 @@ def save(self, obj_list, use_cache=True): if not input_uuids: return # exit early if everything is already in storage - # find all UUIDs we need to save with this object - logger.debug("Listing all objects to save") - uuids = {} - for uuid, obj in input_uuids.items(): - uuids.update(get_all_uuids(obj, known_uuids=cache, - class_info=self.class_info)) - - logger.debug("Checking if objects already exist in database") - uuids = self.filter_existing_uuids(uuids) - - # group by table, then save appropriately - # by_table; convert a dict of {uuid: obj} to {table: {uuid: obj}} - get_table_name = lambda uuid, obj_: self.class_info[obj_].table - by_table = tools.dict_group_by(uuids, key_extract=get_table_name) # check default table for things to register; register them # TODO: move to function: self.register_missing(by_table) # TODO: convert to while? - if '__missing__' in by_table: + get_table_name = lambda uuid, obj_: self.class_info[obj_].table + by_table = self._uuids_by_table(input_uuids, cache, get_table_name) + old_missing = {} + while '__missing__' in by_table: # __missing__ is a special result returned by the # ClassInfoContainer if this is object is expected to have a # table, but the table doesn't exist (e.g., for dynamically # added tables) missing = by_table.pop('__missing__') + if missing == old_missing: + raise RuntimeError("Unable to register: " + str(missing)) logger.info("Registering tables for %d missing objects", len(missing)) self.register_missing_tables_for_objects(missing) @@ -254,6 +264,12 @@ def save(self, obj_list, use_cache=True): len(missing_by_table), str(list(missing_by_table.keys()))) by_table.update(missing_by_table) + # search for objects inside the objects we just registered + next_by_table = self._uuids_by_table(missing, cache, + get_table_name) + for table, uuid_dict in next_by_table.items(): + by_table[table].update(uuid_dict) + old_missing = missing # TODO: move to function self.store_sfr_results(by_table) has_sfr = (self.class_info.sfr_info is not None diff --git a/openpathsampling/experimental/storage/ops_storage.py b/openpathsampling/experimental/storage/ops_storage.py index 57fc65780..bc2b22b89 100644 --- a/openpathsampling/experimental/storage/ops_storage.py +++ b/openpathsampling/experimental/storage/ops_storage.py @@ -1,3 +1,5 @@ +import collections + from ..simstore import storage from ..simstore import sql_backend @@ -15,6 +17,7 @@ StorableFunction, StorableFunctionResults, storable_function_find_uuids ) + import openpathsampling as paths from openpathsampling.netcdfplus import StorableObject @@ -76,7 +79,8 @@ UNSAFE_CODECS = CODECS + [CallableCodec()] SAFE_CODECS = CODECS + [CallableCodec({'safemode': True})] -DATA_CONTAINER_CLASSES = ( +ENGINE_LOOKUP_CLASSES = ( + paths.BaseSnapshot, paths.engines.features.shared.KineticContainer, paths.engines.features.shared.StaticContainer, ) @@ -108,54 +112,61 @@ def __call__(self, uuid, table_dct, cache_list): return obj -class OPSSpecialLookup(object): - """Separate object to handle special lookups - - This is separate because, in addition to the functionality it encodes, - it also acts as a cache to reduce the number of isinstance calls (and - hopfully speed up the identification of types) - """ - # TODO: overall lookup should be like this: all lookups map a class to a - # lookup function -- often that lookup function just returns the class - # TODO: especially annoying to have StorableFunction as a special - special_superclasses = (paths.BaseSnapshot, paths.MoveChange, - paths.Details, StorableFunction, - storage.GeneralStorage, SQLStorageBackend) - snapshot_lookup_function = \ - lambda self, snap: (get_uuid(snap.engine), snap.__class__) - details_lookup_function = lambda self, details: paths.Details - movechange_lookup_function = lambda self, change: paths.MoveChange - sf_lookup_function = lambda self, func: StorableFunction - storage_obj_lookup_function = lambda self, func: storage.GeneralStorage - - def __init__(self): +SpecialLookup = collections.namedtuple("SpecialLookup", + ['cls', 'secondary_lookup']) + +def engine_secondary_lookup(obj): + return (get_uuid(obj.engine), obj.__class__) + +SPECIAL_LOOKUPS = [ + SpecialLookup(paths.BaseSnapshot, engine_secondary_lookup), + SpecialLookup(paths.engines.features.shared.KineticContainer, + engine_secondary_lookup), + SpecialLookup(paths.engines.features.shared.StaticContainer, + engine_secondary_lookup), + # most of the rest of these are just to map weird subclasses + SpecialLookup(paths.MoveChange, lambda change: paths.MoveChange), + SpecialLookup(paths.Details, lambda details: paths.Details), + SpecialLookup(storage.GeneralStorage, + lambda st: storage.GeneralStorage), + SpecialLookup(StorableFunction, lambda sf: StorableFunction), +] + +class SpecialLookups(object): + # TODO: looks like we can move Specials over to SimStore + def __init__(self, lookups=None): + lookups = tools.none_to_default(lookups, []) + self.lookups = [] + self.superclass_secondary_lookups = {} + self.special_superclasses = [] self.secondary_lookups = {} - # self.special_classes = set() - # self.non_special_classes = set() - is_special_func = lambda obj: \ - isinstance(obj, self.special_superclasses) - self.is_special = ClassIsSomething(is_special_func) - - def __call__(self, item): - cls = item.__class__ + self._is_special = None + for lookup in lookups: + self.register(lookup) + + def register(self, lookup): + self.lookups.append(lookup) + self.special_superclasses.append(lookup.cls) + self.superclass_secondary_lookups[lookup.cls] = lookup.secondary_lookup + self._is_special = ClassIsSomething( + lambda obj: isinstance(obj, tuple(self.special_superclasses)) + ) + + def is_special(self, obj): + return self._is_special(obj) + + def __call__(self, obj): + cls = obj.__class__ if cls in self.secondary_lookups: - return self.secondary_lookups[cls](item) - - if isinstance(item, paths.BaseSnapshot): - self.secondary_lookups[cls] = self.snapshot_lookup_function - elif isinstance(item, StorableFunction): - self.secondary_lookups[cls] = self.sf_lookup_function - elif isinstance(item, (storage.GeneralStorage, SQLStorageBackend)): - self.secondary_lookups[cls] = self.storage_obj_lookup_function - elif isinstance(item, paths.MoveChange): - self.secondary_lookups[cls] = self.movechange_lookup_function - elif isinstance(item, paths.Details): - # TODO: this should be removed, since all Details classes are - # equivalent -- unfortunately, JHP's LoaderProxy breaks in that - # case - self.secondary_lookups[cls] = self.details_lookup_function - - return self.secondary_lookups[cls](item) + return self.secondary_lookups[cls](obj) + + for lookup in self.lookups: + if isinstance(obj, lookup.cls): + self.secondary_lookups[cls] = lookup.secondary_lookup + break + + return self.secondary_lookups[cls](obj) + class OPSClassInfoContainer(ClassInfoContainer): def __init__(self, default_info, sfr_info=None, schema=None, @@ -163,9 +174,11 @@ def __init__(self, default_info, sfr_info=None, schema=None, super(OPSClassInfoContainer, self).__init__(default_info, sfr_info, schema, - class_info_list) + class_info_list, + HANDLERS) self.n_snapshot_types = 0 - self.special_lookup_object = OPSSpecialLookup() + # self.special_lookup_object = OPSSpecialLookup() + self.special_lookup_object = SpecialLookups(SPECIAL_LOOKUPS) def is_special(self, item): return self.special_lookup_object.is_special(item) @@ -323,9 +336,7 @@ def register_from_tables(self, table_names, classes): for table in table_names: logger.info("Attempting to register missing table {} ({})"\ .format(table, str(table_to_class[table]))) - if issubclass(table_to_class[table], DATA_CONTAINER_CLASSES): - raise RuntimeError("TODO") - if issubclass(table_to_class[table], paths.BaseSnapshot): + if issubclass(table_to_class[table], ENGINE_LOOKUP_CLASSES): lookups.update(snapshots.snapshot_registration_from_db( storage=self, schema=self.schema, @@ -336,11 +347,13 @@ def register_from_tables(self, table_names, classes): self.snapshots.update_tables() logger.info("Found {} possible lookups".format(len(lookups))) logger.info("Lookups for tables: " + str(lookups.keys())) + # TODO: no, this is wrong; we need custom lookup class_info_list = [ClassInfo(table=table, cls=table_to_class[table], lookup_result=lookups[table]) for table in lookups] - self.class_info.register_info(class_info_list, self.schema) + # self.class_info.register_info(class_info_list, self.schema) + self.register_schema(self.schema, class_info_list, read_mode=True) # for info in class_info_list: # info.set_defaults(self.schema) # self.class_info.add_class_info(info) diff --git a/openpathsampling/experimental/storage/snapshots.py b/openpathsampling/experimental/storage/snapshots.py index e2e38231e..54ab7685d 100644 --- a/openpathsampling/experimental/storage/snapshots.py +++ b/openpathsampling/experimental/storage/snapshots.py @@ -73,12 +73,12 @@ def snapshot_registration_from_db(storage, schema, class_info, table_name): lookup_result = (engine_uuid, cls) proposed_lookups = {table_name: lookup_result} attributes = schema[table_name] - for (attr, type_name) in attributes: - is_object = type_name in ['lazy', 'uuid', 'uuid_list'] - is_table = attr in schema - if is_object and is_table: - cls = storage.backend.table_to_class[attr] - proposed_lookups[attr] = (engine_uuid, cls) + # for (attr, type_name) in attributes: + # is_object = type_name in ['lazy', 'uuid', 'uuid_list'] + # is_table = attr in schema + # if is_object and is_table: + # cls = storage.backend.table_to_class[attr] + # proposed_lookups[attr] = (engine_uuid, cls) return proposed_lookups From 1523850f292bc1397848434d09b830570a11ec40 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Sat, 12 Dec 2020 22:33:03 +0100 Subject: [PATCH 455/464] move proxy and UUID stuff to their own files --- .../experimental/simstore/proxy.py | 86 +++++++++++++++++++ .../experimental/simstore/serialization.py | 85 +----------------- .../simstore/serialization_helpers.py | 46 ++-------- .../experimental/simstore/uuids.py | 49 +++++++++++ 4 files changed, 146 insertions(+), 120 deletions(-) create mode 100644 openpathsampling/experimental/simstore/proxy.py create mode 100644 openpathsampling/experimental/simstore/uuids.py diff --git a/openpathsampling/experimental/simstore/proxy.py b/openpathsampling/experimental/simstore/proxy.py new file mode 100644 index 000000000..f1c107ad2 --- /dev/null +++ b/openpathsampling/experimental/simstore/proxy.py @@ -0,0 +1,86 @@ +from .uuids import get_uuid, set_uuid + +import logging +logger = logging.getLogger(__name__) + +def unproxy(uuid_mapping): + """This is a convenience for unproxying a lot of objects at once. + """ + for uuid, obj in uuid_mapping.items(): + if isinstance(obj, GenericLazyLoader): + uuid_mapping[uuid] = obj.load() + +def make_lazy_class(cls_): + # this is to mix-in inheritence + class LazyLoader(GenericLazyLoader, cls_): + pass + return LazyLoader + +class GenericLazyLoader(object): + def __init__(self, uuid, class_, storage): + set_uuid(self, uuid) + self.storage = storage + self.class_ = class_ + self._loaded_object = None + + def load(self): + if self._loaded_object is None: + self._loaded_object = \ + self.storage.load([get_uuid(self)], force=True)[0] + if self._loaded_object is None: + raise RuntimeError("UUID not found in storage: " + + get_uuid(self)) + return self._loaded_object + + def __getattr__(self, attr): + # apparently IPython pretty-printing looks for a bunch of + # attributes; this means we auto-load if we try to autoprint the + # repr in IPython (TODO) + return getattr(self.load(), attr) + + def __getitem__(self, item): + return self.load()[item] + + def __iter__(self): + return self.load().__iter__() + + def __len__(self): + return len(self.load()) + + def __str__(self): + if self._loaded_object: + return str(self._loaded_object) + else: + return repr(self) + + def __repr__(self): + if self._loaded_object: + return repr(self._loaded_object) + else: + return ("") + + +class ProxyObjectFactory(object): + def __init__(self, storage, serialization_schema): + self.storage = storage + self.serialization_schema = serialization_schema + self.lazy_classes = {} + + def make_lazy(self, cls, uuid): + if cls not in self.lazy_classes: + self.lazy_classes[cls] = make_lazy_class(cls) + return self.lazy_classes[cls](uuid=uuid, + class_=cls, + storage=self.storage) + + def make_all_lazies(self, lazies): + # lazies is dict of {table_name: list_of_lazy_uuid_rows} + all_lazies = {} + for (table, lazy_uuid_rows) in lazies.items(): + logger.debug("Making {} lazy proxies for objects in table '{}'"\ + .format(len(lazy_uuid_rows), table)) + cls = self.serialization_schema.table_to_info[table].cls + for row in lazy_uuid_rows: + all_lazies[row.uuid] = self.make_lazy(cls, row.uuid) + return all_lazies diff --git a/openpathsampling/experimental/simstore/serialization.py b/openpathsampling/experimental/simstore/serialization.py index ca53544e4..44b8dc550 100644 --- a/openpathsampling/experimental/simstore/serialization.py +++ b/openpathsampling/experimental/simstore/serialization.py @@ -17,84 +17,6 @@ def load_list_uuid(json_str, cache_list): for uuid in uuid_list] -def make_lazy_class(cls_): - # this is to mix-in inheritence - class LazyLoader(GenericLazyLoader, cls_): - pass - return LazyLoader - - -class GenericLazyLoader(object): - def __init__(self, uuid, class_, storage): - serialization.set_uuid(self, uuid) - self.storage = storage - self.class_ = class_ - self._loaded_object = None - - def load(self): - if self._loaded_object is None: - self._loaded_object = \ - self.storage.load([serialization.get_uuid(self)], - force=True)[0] - if self._loaded_object is None: - raise RuntimeError("UUID not found in storage: " + - serialization.get_uuid(self)) - return self._loaded_object - - def __getattr__(self, attr): - # apparently IPython pretty-printing looks for a bunch of - # attributes; this means we auto-load if we try to autoprint the - # repr in IPython (TODO) - return getattr(self.load(), attr) - - def __getitem__(self, item): - return self.load()[item] - - def __iter__(self): - return self.load().__iter__() - - def __len__(self): - return len(self.load()) - - def __str__(self): - if self._loaded_object: - return str(self._loaded_object) - else: - return repr(self) - - def __repr__(self): - if self._loaded_object: - return repr(self._loaded_object) - else: - return ("") - - -class ProxyObjectFactory(object): - def __init__(self, storage, serialization_schema): - self.storage = storage - self.serialization_schema = serialization_schema - self.lazy_classes = {} - - def make_lazy(self, cls, uuid): - if cls not in self.lazy_classes: - self.lazy_classes[cls] = make_lazy_class(cls) - return self.lazy_classes[cls](uuid=uuid, - class_=cls, - storage=self.storage) - - def make_all_lazies(self, lazies): - # lazies is dict of {table_name: list_of_lazy_uuid_rows} - all_lazies = {} - for (table, lazy_uuid_rows) in lazies.items(): - logger.debug("Making {} lazy proxies for objects in table '{}'"\ - .format(len(lazy_uuid_rows), table)) - cls = self.serialization_schema.table_to_info[table].cls - for row in lazy_uuid_rows: - all_lazies[row.uuid] = self.make_lazy(cls, row.uuid) - return all_lazies - - class SchemaDeserializer(object): default_handlers = { @@ -165,11 +87,8 @@ class ToDictSerializer(SchemaDeserializer): 'list_uuid': serialization.to_bare_json } - # TODO: move this external; that will allow us to remove this class - # (use it as input to SchemaSerializer or a class factory for that) - # @staticmethod - # def make_numpy_handler(dtype, shape): - # return lambda arr: arr.astype(dtype=dtype, copy=False).tostring() + # TODO: I think this class can be basically remobed; need to transfer + # inherited func and attribs to SchemaSerializer def get_handler_from_factories(self, type_name): for factory in self.handler_factories: diff --git a/openpathsampling/experimental/simstore/serialization_helpers.py b/openpathsampling/experimental/simstore/serialization_helpers.py index e491c910a..aa3526c97 100644 --- a/openpathsampling/experimental/simstore/serialization_helpers.py +++ b/openpathsampling/experimental/simstore/serialization_helpers.py @@ -9,6 +9,11 @@ from .tools import is_iterable, is_mappable, is_numpy_iterable from . import tools from .class_lookup import is_storage_iterable, is_storage_mappable +from .proxy import GenericLazyLoader +from .uuids import ( + has_uuid, get_uuid, set_uuid, encode_uuid, decode_uuid, encoded_uuid_re, + is_uuid_string +) # UUID recognition and encoding ##################################### # Things in here might be modified for performance optimization. In @@ -19,43 +24,6 @@ unicode = str long = int -def has_uuid(obj): - return hasattr(obj, '__uuid__') - - -def get_uuid(obj): - # TODO: I can come up with a better string encoding than this - try: - return str(obj.__uuid__) - except AttributeError as e: - if obj is None: - return obj - else: - raise e - -def set_uuid(obj, uuid): - obj.__uuid__ = long(uuid) - - -def encode_uuid(uuid): - return "UUID(" + str(uuid) + ")" - - -def decode_uuid(uuid_str): - return uuid_str[5:-1] - - -# use the regular expression when looking through an entire JSON string; use -# the is_uuid_string method for individual objects -encoded_uuid_re = re.compile("UUID\((?P[\-]?[0-9]+)\)") - - -def is_uuid_string(obj): - return ( - isinstance(obj, (str, unicode)) - and obj[:5] == 'UUID(' and obj[-1] == ')' - ) - # Getting the list of UUIDs bsed on initial objets ################### def caches_contain(key, cache_list): @@ -165,6 +133,10 @@ def get_all_uuids(initial_object, known_uuids=None, class_info=None): # found_objs += collections.Counter(o.__class__.__name__) # for o in objects) for obj in objects: + # TODO: this might be slow; check performance + if isinstance(obj, GenericLazyLoader): + obj = obj.load() + # TODO: find a way to ensure that objects doesn't go over # duplicates here; see lprofile of default_find_uuids to see how # often abort due to being in cache in there, and whether we diff --git a/openpathsampling/experimental/simstore/uuids.py b/openpathsampling/experimental/simstore/uuids.py new file mode 100644 index 000000000..64997f18f --- /dev/null +++ b/openpathsampling/experimental/simstore/uuids.py @@ -0,0 +1,49 @@ +# UUID recognition and encoding ##################################### +# Things in here might be modified for performance optimization. In +# particular, it might be worth using a string representation of the UUID +# whenever possible (dicts with string keys have a special fast-path) + +import re +import sys +if sys.version_info > (3, ): + unicode = str + long = int + +def has_uuid(obj): + return hasattr(obj, '__uuid__') + + +def get_uuid(obj): + # TODO: I can come up with a better string encoding than this + try: + return str(obj.__uuid__) + except AttributeError as e: + if obj is None: + return obj + else: + raise e + +def set_uuid(obj, uuid): + obj.__uuid__ = long(uuid) + + +def encode_uuid(uuid): + return "UUID(" + str(uuid) + ")" + + +def decode_uuid(uuid_str): + return uuid_str[5:-1] + + +# use the regular expression when looking through an entire JSON string; use +# the is_uuid_string method for individual objects +encoded_uuid_re = re.compile("UUID\((?P[\-]?[0-9]+)\)") + + +def is_uuid_string(obj): + return ( + isinstance(obj, (str, unicode)) + and obj[:5] == 'UUID(' and obj[-1] == ')' + ) + + From 7224f2e9ee2ddb45872376faae722796134d3a9a Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Sat, 12 Dec 2020 22:33:53 +0100 Subject: [PATCH 456/464] Fix test for new file locs --- openpathsampling/experimental/simstore/test_serialization.py | 1 + 1 file changed, 1 insertion(+) diff --git a/openpathsampling/experimental/simstore/test_serialization.py b/openpathsampling/experimental/simstore/test_serialization.py index 4a062a9b4..902ee0000 100644 --- a/openpathsampling/experimental/simstore/test_serialization.py +++ b/openpathsampling/experimental/simstore/test_serialization.py @@ -1,4 +1,5 @@ from .serialization import * +from .proxy import * # TODO: move this elsewhere import pytest from .serialization_helpers import get_uuid, default_find_uuids From 4e292696b5b4beca047d052601ec659cf04fdb12 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Sat, 12 Dec 2020 22:35:06 +0100 Subject: [PATCH 457/464] docstrings --- .../simstore/attribute_handlers.py | 57 +++++++++++++++++++ .../experimental/simstore/class_info.py | 19 +++++++ 2 files changed, 76 insertions(+) diff --git a/openpathsampling/experimental/simstore/attribute_handlers.py b/openpathsampling/experimental/simstore/attribute_handlers.py index 1ec0b5ab7..1e23bb027 100644 --- a/openpathsampling/experimental/simstore/attribute_handlers.py +++ b/openpathsampling/experimental/simstore/attribute_handlers.py @@ -3,6 +3,16 @@ class AttributeHandler(object): + """Abstract object to handler a given attribute type. + + Each attribute in a schema entry will generate an instance of this for + the appropriate type. Different subclasses handle different types that + are supported by SimStore. + + Note that you'll usually use this with the :method:`.from_type_string` + constructor, which returns None if the type string doesn't match what + this class handles. + """ def __init__(self, type_info): self.type_info = type_info @@ -13,18 +23,58 @@ def is_my_type(type_str): @classmethod def from_type_string(cls, type_str): + """Generate attribute handler based on a given type string. + + Parameters + ---------- + type_str: str + the specific type string in a format understood by SimStore + + Returns + ------- + :class:`.AttributeHandler` or None: + an attribute handler for the given type string, or None if this + class doesn't know how to handle that type + """ type_info = cls.is_my_type(type_str) if type_info: return cls(type_info) def serialize(self, obj): + """Serialize the object. + + Default serialization just returns the object. + + Parameters + ---------- + obj : Any + object to be serialized + + Returns + ------- + Any: + version ready to be written to disk; typically str or bytes but + standard types are also allowed (bool, float, int, etc.) + """ return obj def deserialize(self, data, caches=None): + """Deserialize the serialized form. + + Parameters + ---------- + data: Any + bytes to deserialize (usually as str or bytes) + caches: Dict + mapping of identifiers to known objects that might be components + of this object; mainly used when deserializing UUID objects. + """ return data class StandardHandler(AttributeHandler): + """Attribute handler for common standard types + """ standard_types = ['str', 'int', 'float', 'function'] def __init__(self, type_info): super().__init__(type_info) @@ -68,6 +118,13 @@ def deserialize(self, data, caches=None): class NDArrayHandler(AttributeHandler): + """Attribute handler for NumPy ndarrays. + + Parameters + ---------- + type_info: Tuple + dtype and shape of the array + """ def __init__(self, type_info): super().__init__(type_info) self.dtype, self.shape = type_info diff --git a/openpathsampling/experimental/simstore/class_info.py b/openpathsampling/experimental/simstore/class_info.py index 460469d24..2b560dc19 100644 --- a/openpathsampling/experimental/simstore/class_info.py +++ b/openpathsampling/experimental/simstore/class_info.py @@ -147,6 +147,25 @@ def copy(self): return dup def backend_type(self, type_name): + """Obtain the general type name from a specific type string + + Example: this tells that no matter what the specific shape of a + numpy array is, the backend should register it as a NumPy array. In + addition, this can (in the future will) provide a length value to + tell the backend how many bytes to allocate for an array. + + Parameters + ---------- + type_name: str + specfic type string for an attribute + + Returns + ------- + Tuple[str, Any] + the type name as known to the backend, and the length + information for fixed length columns (length aspect not yet + implemented) + """ for handler in self.attribute_handlers: if handler.is_my_type(type_name): handler_obj = handler.from_type_string(type_name) From c5b6f785ccf12fc008397df2f6991442bed2682c Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Sat, 12 Dec 2020 22:35:59 +0100 Subject: [PATCH 458/464] Misc fixes to get the new tutorial to work --- .../experimental/simstore/custom_json.py | 21 ++++++++++++++- .../simstore/storable_functions.py | 7 ++++- .../experimental/simstore/storage.py | 15 ++++++++++- .../experimental/storage/monkey_patches.py | 17 ++++++++---- .../experimental/storage/ops_storage.py | 15 +++++------ .../experimental/storage/snapshots.py | 6 +++-- openpathsampling/high_level/move_scheme.py | 26 +++++++++---------- 7 files changed, 76 insertions(+), 31 deletions(-) diff --git a/openpathsampling/experimental/simstore/custom_json.py b/openpathsampling/experimental/simstore/custom_json.py index ab3bd5ddd..1b8cfeaf5 100644 --- a/openpathsampling/experimental/simstore/custom_json.py +++ b/openpathsampling/experimental/simstore/custom_json.py @@ -181,6 +181,19 @@ def object_hook(self, dct): return obj return dct +def iterable_to_dict(obj): + return {'as_list': list(obj)} + +def iterable_from_dict(dct, iterable_type): + return iterable_type(dct['as_list']) + +tuple_codec = JSONCodec(tuple, iterable_to_dict, + functools.partial(iterable_from_dict, + iterable_type=tuple)) +set_codec = JSONCodec(set, iterable_to_dict, + functools.partial(iterable_from_dict, + iterable_type=set)) + def bytes_to_dict(obj): return {'bytes': obj.decode('latin-1')} @@ -221,4 +234,10 @@ def uuid_object_to_dict(obj): is_my_obj=has_uuid, is_my_dict=lambda x: False) -# TODO: simtk.unit.Quantity (in the OPS storage, though) +DEFAULT_CODECS = [ + uuid_object_codec, + bytes_codec, + tuple_codec, + set_codec, + numpy_codec, +] diff --git a/openpathsampling/experimental/simstore/storable_functions.py b/openpathsampling/experimental/simstore/storable_functions.py index 048ba72ea..09992fad7 100644 --- a/openpathsampling/experimental/simstore/storable_functions.py +++ b/openpathsampling/experimental/simstore/storable_functions.py @@ -51,7 +51,12 @@ def _scalarize_singletons(values): all other data. """ if isinstance(values, np.ndarray): - values.shape = tuple(n for n in values.shape if n != 1) + shape = tuple(n for n in values.shape if n != 1) + if shape == tuple(): + values = values.__float__() + else: + values.shape = shape + # shape = values.shape # if len(shape) > 1 and shape[1] == 1: # new_shape = tuple([shape[0]] + list(shape)[2:]) diff --git a/openpathsampling/experimental/simstore/storage.py b/openpathsampling/experimental/simstore/storage.py index 0438b62b7..59de2e795 100644 --- a/openpathsampling/experimental/simstore/storage.py +++ b/openpathsampling/experimental/simstore/storage.py @@ -26,7 +26,7 @@ from .serialization_helpers import get_all_uuids_loading from .serialization_helpers import get_reload_order # from .serialization import Serialization -from .serialization import ProxyObjectFactory +from .proxy import ProxyObjectFactory, GenericLazyLoader from .storable_functions import StorageFunctionHandler, StorableFunction from .tags_table import TagsTable from .type_ident import STANDARD_TYPING @@ -214,6 +214,10 @@ def _uuids_by_table(self, input_uuids, cache, get_table_name): uuids.update(get_all_uuids(obj, known_uuids=cache, class_info=self.class_info)) + logger.debug("Found %d objects" % len(uuids)) + logger.debug("Deproxying proxy objects") + uuids = self._unproxy_lazies(uuids) + logger.debug("Checking if objects already exist in database") uuids = self.filter_existing_uuids(uuids) @@ -224,6 +228,14 @@ def _uuids_by_table(self, input_uuids, cache, get_table_name): key_extract=get_table_name)) return by_table + def _unproxy_lazies(self, uuid_mapping): + lazies = [uuid for uuid, obj in uuid_mapping.items() + if isinstance(obj, GenericLazyLoader)] + logger.debug("Found " + str(len(lazies)) + " objects to deproxy") + loaded = self.load(lazies, allow_lazy=False) + uuid_mapping.update({get_uuid(obj): obj for obj in loaded}) + return uuid_mapping + def save(self, obj_list, use_cache=True): if type(obj_list) is not list: @@ -256,6 +268,7 @@ def save(self, obj_list, use_cache=True): missing = by_table.pop('__missing__') if missing == old_missing: raise RuntimeError("Unable to register: " + str(missing)) + missing = self._unproxy_lazies(missing) logger.info("Registering tables for %d missing objects", len(missing)) self.register_missing_tables_for_objects(missing) diff --git a/openpathsampling/experimental/storage/monkey_patches.py b/openpathsampling/experimental/storage/monkey_patches.py index 5a696214e..b6c5e128c 100644 --- a/openpathsampling/experimental/storage/monkey_patches.py +++ b/openpathsampling/experimental/storage/monkey_patches.py @@ -50,8 +50,12 @@ def inner(cls, dct): def monkey_patch_saving(paths): paths.netcdfplus.FunctionPseudoAttribute.to_dict = \ function_pseudo_attribute_to_dict - paths.TPSNetwork.to_dict = \ - tuple_keys_to_dict(paths.TPSNetwork.to_dict, 'transitions') + paths.TPSNetwork.to_dict = tuple_keys_to_dict( + paths.TPSNetwork.to_dict, 'transitions' + ) + paths.MISTISNetwork.to_dict = tuple_keys_to_dict( + paths.MISTISNetwork.to_dict, 'input_transitions' + ) return paths def monkey_patch_loading(paths): @@ -62,9 +66,12 @@ def monkey_patch_loading(paths): attr_name='key_class' )) # classmethod(function_pseudo_attribute_from_dict) - paths.TPSNetwork.from_dict = \ - classmethod(tuple_keys_from_dict(paths.TPSNetwork.from_dict, - 'transitions')) + paths.TPSNetwork.from_dict = classmethod(tuple_keys_from_dict( + paths.TPSNetwork.from_dict, 'transitions' + )) + paths.MISTISNetwork.from_dict = classmethod(tuple_keys_from_dict( + paths.MISTISNetwork.from_dict, 'input_transitions' + )) return paths def monkey_patch_all(paths): diff --git a/openpathsampling/experimental/storage/ops_storage.py b/openpathsampling/experimental/storage/ops_storage.py index bc2b22b89..b3e8858cf 100644 --- a/openpathsampling/experimental/storage/ops_storage.py +++ b/openpathsampling/experimental/storage/ops_storage.py @@ -24,8 +24,7 @@ from ..simstore import tools from ..simstore.custom_json import ( - JSONSerializerDeserializer, - numpy_codec, bytes_codec, uuid_object_codec, + JSONSerializerDeserializer, DEFAULT_CODECS ) from ..simstore import CallableCodec @@ -72,8 +71,7 @@ ops_schema_sql_metadata = {} # this defines the simulation object serializer for OPS -CODECS = [numpy_codec, bytes_codec, uuid_object_codec, simtk_quantity_codec] - +CODECS = DEFAULT_CODECS + [simtk_quantity_codec] HANDLERS = DEFAULT_HANDLERS + [SimtkQuantityHandler] UNSAFE_CODECS = CODECS + [CallableCodec()] @@ -274,10 +272,13 @@ def __init__(self, backend, schema, class_info, fallbacks=None, super(Storage, self).__init__(backend, schema, class_info, fallbacks, safemode) - self.n_snapshot_types = 0 self.snapshots = SnapshotsTable(self) self.snapshots.update_tables() + @property + def n_snapshot_types(self): + return len(self.snapshots.tables) + def sync_all(self): self.save(self._stashed) self._stashed = [] @@ -293,7 +294,6 @@ def from_backend(cls, backend, schema=None, class_info=None, if exists is not None: return exists obj = cls.__new__(cls) - obj.n_snapshot_types = 0 schema = tools.none_to_default(schema, ops_schema) class_info = tools.none_to_default(class_info, ops_class_info) simulation_classes = tools.none_to_default(simulation_classes, @@ -369,6 +369,5 @@ def register_from_instance(self, lookup, obj): ) self.register_schema(schema, class_info_list) - self.n_snapshot_types += 1 - self.snapshots.update_tables() + self.snapshots.update_tables() # increments snapshot types, too diff --git a/openpathsampling/experimental/storage/snapshots.py b/openpathsampling/experimental/storage/snapshots.py index 54ab7685d..061fbe96c 100644 --- a/openpathsampling/experimental/storage/snapshots.py +++ b/openpathsampling/experimental/storage/snapshots.py @@ -1,7 +1,7 @@ # NOTE: this is part of the OPS-specific stuff from ..simstore.class_info import ClassInfo - -from ..simstore.serialization_helpers import get_uuid +from ..simstore.uuids import get_uuid +from ..simstore.proxy import GenericLazyLoader def _nested_schema_entries(schema_entries, lazies): """Recursive algorithm to create all schema entries @@ -96,6 +96,8 @@ def snapshot_registration_info(snapshot_instance, snapshot_number): attr_infos = [] for table in [tbl for tbl in schema.keys() if tbl != 'snapshot']: obj = getattr(snapshot_instance, table) + if isinstance(obj, GenericLazyLoader): + obj = obj.load() attr_infos.append(ClassInfo(table=real_table[table], cls=obj.__class__, lookup_result=(engine_uuid, diff --git a/openpathsampling/high_level/move_scheme.py b/openpathsampling/high_level/move_scheme.py index 0a5a5f663..67a180891 100644 --- a/openpathsampling/high_level/move_scheme.py +++ b/openpathsampling/high_level/move_scheme.py @@ -244,6 +244,7 @@ def __init__(self, network): self._mover_acceptance = None # used in analysis def to_dict(self): + self.move_decision_tree() # always build before save ret_dict = { 'movers': self.movers, 'network': self.network, @@ -591,7 +592,6 @@ def initial_conditions_from_trajectories(self, trajectories, check_initial_conditions assert_initial_conditions """ - if sample_set is None: sample_set = paths.SampleSet([]) @@ -664,15 +664,12 @@ def assert_initial_conditions(self, sample_set, allow_extras=False): initial_conditions_report """ (missing, extras) = self.check_initial_conditions(sample_set) - msg = "" - if len(missing) > 0: - msg += "Missing ensembles: " + str(missing) + "\n" - if len(extras) > 0 and not allow_extras: - msg += "Extra ensembles: " + str(extras) + "\n" - if msg != "": + if len(missing) > 0 or (len(extras) > 0 and not allow_extras): + msg = self.initial_conditions_report(sample_set, + report_correct=False) raise AssertionError("Bad initial conditions.\n" + msg) - def initial_conditions_report(self, sample_set): + def initial_conditions_report(self, sample_set, report_correct=True): """ String report on whether the given SampleSet gives good initial conditions. @@ -684,6 +681,9 @@ def initial_conditions_report(self, sample_set): ---------- sample_set : :class:`.SampleSet` proposed set of initial conditions for this movescheme + report_correct : bool + whether to report when there are no missing/extra ensembles; + default True Returns ------- @@ -693,16 +693,16 @@ def initial_conditions_report(self, sample_set): """ (missing, extra) = self.check_initial_conditions(sample_set) msg = "" - if len(missing) == 0: + if len(missing) == 0 and report_correct: msg += "No missing ensembles.\n" - else: + elif len(missing) > 0: msg += "Missing ensembles:\n" for ens_list in missing: - msg += "* [" + msg += "* [" msg += ", ".join([ens.name for ens in ens_list]) + "]\n" - if len(extra) == 0: + if len(extra) == 0 and report_correct: msg += "No extra ensembles.\n" - else: + elif len(extra) > 0: msg += "Extra ensembles:\n" for ens in extra: msg += "* " + ens.name + "\n" From 1bf7a16d4418baa8cff1ec7a9043aeaa5de5c7a8 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Sat, 19 Dec 2020 07:13:06 +0100 Subject: [PATCH 459/464] tests for attribute_handler.py --- .../simstore/test_attribute_handlers.py | 50 +++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 openpathsampling/experimental/simstore/test_attribute_handlers.py diff --git a/openpathsampling/experimental/simstore/test_attribute_handlers.py b/openpathsampling/experimental/simstore/test_attribute_handlers.py new file mode 100644 index 000000000..244d720a4 --- /dev/null +++ b/openpathsampling/experimental/simstore/test_attribute_handlers.py @@ -0,0 +1,50 @@ +import pytest + +import numpy as np + +from .attribute_handlers import * + +class TestStandardHandler(object): + def setup(self): + self.obj = {'str': 'foo', + 'int': 42, + 'float': 3.14159, + 'function': lambda x: x} + + @pytest.mark.parametrize('type_str, expected', [ + ('str', 'str'), ('int', 'int'), ('float', 'float'), + ('function', 'function'), ('ndarray.float32(3,2)', None), + ]) + def test_is_my_type(self, type_str, expected): + assert StandardHandler.is_my_type(type_str) == expected + + @pytest.mark.parametrize('type_str', ['str', 'int', 'float', 'function']) + def test_serialization_cycle(self, type_str): + handler = StandardHandler(type_str) + data = self.obj[type_str] + ser = handler.serialize(data) + deser = handler.deserialize(ser) + reser = handler.serialize(deser) + assert data == deser + assert ser == reser + + +class TestNDArrayHandler(object): + def setup(self): + self.data = np.array([[0.0, 1.0, 2.0], [3.0, 4.0, 5.0]]) + self.ndarray_handler = NDArrayHandler(('float32', (2,3))) + + @pytest.mark.parametrize('type_str,expected', [ + ('str', None), + ('ndarray.float32(3, 2)', (np.float32, (3, 2))), + ('ndarray.float32(3,2)', (np.float32, (3, 2))), + ]) + def test_is_my_type(self, type_str, expected): + assert NDArrayHandler.is_my_type(type_str) == expected + + def test_serialization_cycle(self): + ser = self.ndarray_handler.serialize(self.data) + deser = self.ndarray_handler.deserialize(ser) + np.testing.assert_equal(deser, self.data) + reser = self.ndarray_handler.serialize(deser) + assert ser == reser From 9e901bfcdae481c046a00de4a99a68204e98f350 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Sat, 19 Dec 2020 07:36:24 +0100 Subject: [PATCH 460/464] Additional test for scalarize_singletons np.array with no shape should return float --- .../experimental/simstore/test_storable_function.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/openpathsampling/experimental/simstore/test_storable_function.py b/openpathsampling/experimental/simstore/test_storable_function.py index 705e69ead..2c6c57e05 100644 --- a/openpathsampling/experimental/simstore/test_storable_function.py +++ b/openpathsampling/experimental/simstore/test_storable_function.py @@ -56,6 +56,13 @@ def test_scalarize_singletons(array_input, expected): np.array(expected) ) +def test_scalarize_singletons_to_float(): + arr = np.array([1.0]) + arr.shape = tuple() + scalarized = scalarize_singletons(arr) + assert not isinstance(scalarized, np.ndarray) + assert isinstance(scalarized, float) + def test_wrap_numpy(): for inp in [1, [1, 2]]: assert isinstance(wrap_numpy(inp), np.ndarray) From 8f97732091cc9c01cda4db30888b371cead9c85d Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Sun, 20 Dec 2020 06:16:31 +0100 Subject: [PATCH 461/464] tests for simstore/simtk-quantity serialization --- openpathsampling/experimental/storage/simtk_unit.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/openpathsampling/experimental/storage/simtk_unit.py b/openpathsampling/experimental/storage/simtk_unit.py index 72081d9d2..b805fa27e 100644 --- a/openpathsampling/experimental/storage/simtk_unit.py +++ b/openpathsampling/experimental/storage/simtk_unit.py @@ -28,8 +28,7 @@ def unit_from_dict(dct): return unit def quantity_to_dict(obj): - return { - 'value': obj.value, + return {'value': obj.value_in_unit(obj.unit), '__simtk_unit__': unit_to_dict(obj.unit)} def quantity_from_dict(dct): @@ -41,7 +40,7 @@ def quantity_from_dict(dct): simtk_quantity_codec = JSONCodec( cls=simtk.unit.Quantity, to_dict=quantity_to_dict, - from_dict=quantity_to_dict, + from_dict=quantity_from_dict, is_my_dict=lambda x: '__simtk_unit__' in x ) From 62d09d66b7c54236f2e4c41f59216718488cfc5e Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Sun, 20 Dec 2020 07:01:03 +0100 Subject: [PATCH 462/464] integration tests for openmm snapshots --- .../experimental/storage/simtk_unit.py | 4 ---- .../storage/test_snapshot_integrations.py | 16 +++++++++++++--- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/openpathsampling/experimental/storage/simtk_unit.py b/openpathsampling/experimental/storage/simtk_unit.py index b805fa27e..979ce00f6 100644 --- a/openpathsampling/experimental/storage/simtk_unit.py +++ b/openpathsampling/experimental/storage/simtk_unit.py @@ -88,7 +88,3 @@ def serialize(self, obj): def deserialize(self, data, caches=None): unwrapped = self.inner_deserialize(data, caches) return self.unit * unwrapped - - - - diff --git a/openpathsampling/experimental/storage/test_snapshot_integrations.py b/openpathsampling/experimental/storage/test_snapshot_integrations.py index 36976c402..138b9eebd 100644 --- a/openpathsampling/experimental/storage/test_snapshot_integrations.py +++ b/openpathsampling/experimental/storage/test_snapshot_integrations.py @@ -18,8 +18,8 @@ class TestSnapshotIntegration(object): # TODO: no use of self anywhere in here; this might become bare test # functions - def _make_storage(self, mode): + Storage._known_storages = {} backend = SQLStorageBackend("test.sql", mode=mode) storage = Storage.from_backend( backend=backend, @@ -48,9 +48,19 @@ def _make_gromacs_snap(self): ) return snap - @pytest.mark.parametrize('integration', ['gromacs']) + def _make_openmm_snap(self): + mm = pytest.importorskip('simtk.openmm') + traj_file = data_filename('ala_small_traj.pdb') + traj = paths.engines.openmm.tools.ops_load_trajectory(traj_file) + snap = traj[0] + return snap + + @pytest.mark.parametrize('integration', ['gromacs', 'openmm']) def test_integration(self, integration): - make_snap = {'gromacs': self._make_gromacs_snap}[integration] + make_snap = { + 'gromacs': self._make_gromacs_snap, + 'openmm': self._make_openmm_snap, + }[integration] snap = make_snap() storage = self._make_storage(mode='w') From 42674561687d770f213fe44c22a2a67f78473988 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Mon, 21 Dec 2020 16:36:09 +0100 Subject: [PATCH 463/464] simplify constructor for OPS Storage --- .../experimental/storage/ops_storage.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/openpathsampling/experimental/storage/ops_storage.py b/openpathsampling/experimental/storage/ops_storage.py index 6029214a2..8c1f610e4 100644 --- a/openpathsampling/experimental/storage/ops_storage.py +++ b/openpathsampling/experimental/storage/ops_storage.py @@ -243,11 +243,18 @@ def _build_ops_serializer(schema, safe_codecs, unsafe_codecs): class Storage(storage.GeneralStorage): - def __init__(self, backend, schema, class_info, fallbacks=None, - safemode=False): + def __init__(self, filename, mode='r', fallbacks=None, safemode=False): # TODO: this will change to match the current notation - super(Storage, self).__init__(backend, schema, class_info, - fallbacks, safemode) + backend = sql_backend.SQLStorageBackend(filename, mode=mode) + self.snapshots = None + super(Storage, self).__init__( + backend=backend, + schema=ops_schema, + class_info=ops_class_info, + simulation_classes=ops_simulation_classes, + fallbacks=fallbacks, + safemode=safemode + ) self.n_snapshot_types = 0 self.snapshots = SnapshotsTable(self) From 6b0ff891c614964009da243273f7d44ebed39f8f Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Wed, 23 Dec 2020 07:02:51 +0100 Subject: [PATCH 464/464] Revert "Added Bolhuis example to PES presets for my own uses, probs shouldn't be put on master" This reverts commit c2d47f055712bc339356ffe9701e4de74375f116. --- openpathsampling/engines/toy/__init__.py | 2 +- openpathsampling/engines/toy/pes.py | 51 ------------------------ 2 files changed, 1 insertion(+), 52 deletions(-) diff --git a/openpathsampling/engines/toy/__init__.py b/openpathsampling/engines/toy/__init__.py index 5ad019635..ed3f6602f 100644 --- a/openpathsampling/engines/toy/__init__.py +++ b/openpathsampling/engines/toy/__init__.py @@ -1,6 +1,6 @@ from .integrators import (LangevinBAOABIntegrator, LeapfrogVerletIntegrator) from .pes import Gaussian, HarmonicOscillator, LinearSlope, OuterWalls, \ - PES_Add, PES_Combination, PES_Sub, PES, BolhuisExample + PES_Add, PES_Combination, PES_Sub, PES from .engine import ToyEngine as Engine from .engine import ToyEngine diff --git a/openpathsampling/engines/toy/pes.py b/openpathsampling/engines/toy/pes.py index a85909633..5eddc6ab1 100644 --- a/openpathsampling/engines/toy/pes.py +++ b/openpathsampling/engines/toy/pes.py @@ -368,54 +368,3 @@ def dVdx(self, sys): """ # this is independent of the position return self._local_dVdx - -class BolhuisExample(PES): - r"""Creates an x**4 - 2 x**2 1 dimensional PES - - Parameters - ---------- - None - """ - def __init__(self): - super(BolhuisExample, self).__init__() - self._local_dVdx = np.zeros(1) - - def __repr__(self): # pragma: no cover - return "The x**4 - 2 x**2 example in Bolhuis papers potential" - - def V(self, sys): - """Potential energy - - Parameters - ---------- - sys : :class:`.ToyEngine` - engine contains its state, including velocities and masses - - Returns - ------- - float - the potential energy - """ - dx = sys.positions - myV = 0.0 - for i in range(len(dx)): - myV += dx[i]**4 - 2 * dx[i]**2 - return myV - - def dVdx(self, sys): - """Derivative of potential energy (-force) - - Parameters - ---------- - sys : :class:`.ToyEngine` - engine contains its state, including velocities and masses - - Returns - ------- - np.array - the derivatives of the potential at this point - """ - dx = sys.positions - for i in range(len(dx)): - self._local_dVdx[i] =4*dx[i]**3 - 4*dx[i] - return self._local_dVdx

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

`a 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%0DF-A0Ee~0L~ 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 z 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